Пользователь вызывает пользовательское приложение через веб-браузер.
Узнайте, как устроена архитектура веб-служб Connect и как работают API-интерфейсы.
Веб-службы Adobe® Connect™ — это уровень веб-служб, который располагается над уровнем пакета приложений Adobe Connect Server.
Веб-службы позволяют создавать порталы или веб-приложения, которые интегрируют функциональные возможности Adobe Connect и данные отчетности в системы сторонних разработчиков, такие как порталы, системы управления взаимоотношениями с клиентами (CRM) и системы планирования ресурсов предприятий.
Например, используется центральная система управления пользователями, такая как каталог LDAP, Microsoft Active Directory или другая система сторонних разработчиков, которая интегрирована в бизнес-процессы предприятия.
С помощью веб-служб можно написать приложение, которое синхронизирует пользователей между этой системой и Adobe Connect. Приложение может использовать платформу J2EE или другую предпочитаемую технологию для получения списка пользователей из каталога, его сравнения со списком пользователей Adobe Connect и выполнения запрашиваемых обновлений в хранилище пользователей Adobe Connect, таких как добавление или удаление пользователей или групп.
Поток данных
На приведенной ниже схеме показаны потоки данных между клиентскими приложениями и Adobe Connect. Создаваемые вами пользовательские приложения используют пути из 1 в 2 и из A в B. Приложения Adobe Connect (такие как Adobe Connect Meeting, Adobe Connect Training или Adobe Connect Events) могут использовать любые пути потока данных.
Поток данных может быть зашифрованным с использованием SSL или нешифрованным.
Нешифрованные
Нешифрованные подключения осуществляются через HTTP и RTMP (Adobe Real Time Messaging Protocol) и следуют путям, описанным в таблице.
Номер диаграммы |
Описание |
---|---|
1 |
Клиентский веб-браузер запрашивает собрание Adobe Connect или URL-адрес содержимого через HTTP:80 (порты подключения могут быть разными). |
2 |
Веб-сервер отвечает и передает содержимое или предоставляет клиентскому браузеру информацию для подключения к Adobe Connect. |
3 |
Приложение Adobe Connect для настольных ПК запрашивает безопасное подключение к Adobe Media Server через RTMP:1935 и HTTP:80. |
4 |
Adobe Media Server отвечает и открывает постоянное подключение для потоковой передачи трафика собрания в браузер. |
3a (альтернатива) |
В некоторых случаях приложение Adobe Connect для настольных ПК запрашивает безопасное подключение к Adobe Media Server, но может получить только туннелированное подключение через RTMPT:80. |
4a (альтернатива) |
Adobe Media Server отвечает и открывает туннелированное подключение для потоковой передачи трафика собрания в браузер. |
Шифрованные
Если поток данных шифруется, защищенные подключения осуществляются через HTTPS и RTMPS (Real Time Messaging Protocol over SSL) следующим образом.
Номер диаграммы |
Описание |
---|---|
A |
Клиентский веб-браузер запрашивает защищенный URL-адрес собрания или содержимого через шифрованное подключение на HTTPS:443 (пути подключения могут быть разными). |
B |
Веб-сервер/сервер приложений отвечает и передает шифрованное содержимое или предоставляет клиенту информацию для установки шифрованного подключения к Adobe Connect. |
C |
Приложение Adobe Connect для настольных ПК запрашивает шифрованное подключение к Adobe Media Server через RTMPS:443. |
D |
Adobe Media Server отвечает и открывает постоянное подключение для потоковой передачи трафика собрания в браузер. |
Пользовательские приложения
Веб-службы Adobe Connect предоставляют API-интерфейс XML, поэтому приложение должно иметь возможность обмениваться данными с Adobe Connect с использованием XML через HTTP или XML через HTTPS. Приложение вызывает API-интерфейс, создавая URL запроса и передавая ему один или несколько параметров в виде пар «имя/значение» или в виде документа XML. Веб-службы возвращают ответ XML, из которого можно извлечь значения.
Пользовательские приложения получают метаданные из базы данных Adobe Connect. Метаданные включают названия собраний или курсов, время их проведения, URL-адреса комнат собраний, URL-адреса содержимого и данные отчетов.
Поток данных для пользовательского приложения, извлекающего метаданные из базы данных, исходит из клиентского веб-браузера, направляется к серверу клиентского веб-приложения, затем к API-интерфейсу XML, к серверу веб-приложений Adobe Connect и базе данных SQL — а затем в обратном направлении.
Поток данных между пользовательским приложением и Adobe Connect проходит следующий путь:
-
-
Приложение вызывает API-интерфейс XML через HTTP:80 или HTTPS:443.
-
Сервер веб-приложений Adobe Connect авторизует приложение и его пользователей, извлекает и возвращает метаданные из базы данных SQL.
-
На стороне клиента веб-сервер или сервер приложений, синтаксический анализатор XML и библиотек ПО обрабатывают ответ и возвращают его приложению.
-
Пользователь продолжает работать в вашем пользовательском приложении и щелкает URL-адрес собрания или содержимого. На этом этапе пользователь вызывает приложение Adobe Connect для подключения к комнате собрания, и начинается обычный поток данных между приложением Adobe Connect и сервером.
Приложение Adobe Connect
Приложения Adobe Connect вызывают сервер, используя тот же API-интерфейс XML веб-служб, что и при вызове из пользовательского приложения.
Как правило, содержимое передается через порт HTTP:80 или HTTPS:443. Содержимое включает слайды, страницы HTTP, файлы SWF и файлы, передаваемые через модуль «Обмен файлами». Это номера портов по умолчанию, их можно изменить (подробные сведения см. в разделе Миграция, установка и настройка Adobe Connect Server).
Потоковые коммуникации в реальном времени передаются с сервера Adobe Media Server через порт RTMP:1935. К потоковым коммуникациям относятся аудио, видео (с веб-камеры или FLV), обмен файлами и чат. Состояние собрания также поддерживается через порт RTMP:1935.
Компоненты Adobe Connect
Архитектуру Adobe Connect составляют два серверных компонента, каждый из которых имеет базу данных SQL.
Сервер веб-приложений
Сервер веб-приложений выполняет функцию интеллекта Adobe Connect. Он содержит и выполняет всю бизнес-логику, необходимую для предоставления содержимого пользователям. Он обрабатывает управление доступом, безопасность, квоты, лицензирование и аудит, а также функции управления, такие как создание кластеров, отработка отказа и репликация.
Сервер веб-приложений также обрабатывает Adobe Connect Central, приложение, через которое осуществляется просмотр содержимого и пользователей организации, а также управление ими, когда не используется пользовательское приложение или интегрированная система стороннего поставщика. Метаданные, описывающие содержимое и пользователей, могут храниться в одной или в нескольких реплицированных базах данных SQL. Сервер веб-приложений работает без отслеживания состояний, таким образом масштабирование происходит практически линейно.
Adobe Media Server
Adobe Media Server осуществляет потоковую передачу аудио, видео и мультимедийного содержимого через RTMP. Когда собрание записывается, а затем воспроизводится, аудио и видео синхронизируются, или содержимое конвертируется и упаковывается для общего доступа к экрану в режиме реального времени, все эти задачи выполняет сервер Adobe Media Server.
Adobe Media Server также играет критически важную роль в снижении нагрузки на сервер и его латентности путем кэширования многократно используемых веб-страниц, потоков и общих данных.
База данных SQL
Adobe Connect использует базу данных Microsoft SQL Server для постоянного хранения метаданных транзакций и приложений, включая сведения о пользователях, группах, содержимом и отчетах. API-интерфейс XML извлекает метаданные, хранящиеся в базе данных. Базу данных можно реализовать с использованием Microsoft SQL Server Desktop Engine (MSDE), либо полной версии Microsoft SQL Server 2005.
Выполнение первого вызова API-интерфейса
Веб-службы Adobe Connect используют структуру сервлетов для обработки запросов API-интерфейса XML. На диаграмме потока данных структура сервлетов представлена компонентом API-интерфейса. Сервлет API получает запрос XML от клиентов и возвращает ответы XML от сервера веб-приложений и базы данных.
Запрос в API-интерфейс XML преобразуется в формат URL-адреса запроса HTTP, который обрабатывается сервлетом API. URL-адрес запроса включает название действия и параметры в виде пар «имя/значение», например:
https://example.com/api/xml?action=sco-info&sco-id=2006334909
Если у вас есть доступ к учетной записи Adobe Connect, в которой можно тестировать вызовы API-интерфейса, можно попробовать разные варианты. В действительности, Adobe рекомендует тестировать вызовы API-интерфейса в браузере в процессе изучения API и написания приложений.
Прежде чем начать, полезно установить инструмент, который позволяет просматривать заголовки запросов и ответов HTTP в браузере.
Вызов common-info в браузере
-
(Необязательно) Включите инструмент для просмотра заголовков HTTP в браузере.
-
Откройте браузер и перейдите на страницу входа в Adobe Connect.
-
Не выполняя вход, удалите часть URL-адреса после доменного имени и добавьте вызов common-info:
https://example.com/api/xml?action=common-info
Ответ от common-info содержит информацию о сеансе подключения к серверу, в частности файл cookie, идентифицирующий сеанс:
<?xml version="1.0" encoding="utf-8" ?> <results> <status code="ok" /> <common locale="en" time-zone-id="85"> <cookie>breezbryf9ur23mbokzs8</cookie> <date>2008-03-13T01:21:13.190+00:00</date> <host>https://example.com</host> <local-host>abc123def789</local-host> <url>/api/xml?action=common-info</url> <version>connect_700_r641</version> <user-agent> Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322) </user-agent> </common> </results>
Когда выполняется вход пользователя из приложения, необходимо вернуть значение cookie серверу, чтобы идентифицировать сеанс пользователя (см. Выполнение входа из приложения).
Вызов principal-list из браузера
Получив значение cookie BREEZESESSION из common-info, браузер добавляет его в заголовок следующего запроса.
-
В веб-браузере выполните вход в Adobe Connect. Измените URL-адрес в строке браузера, чтобы вызвать principal-list:
https://example.com/api/xml?action=principal-list
-
Проверьте заголовок запроса. На этот раз он возвращает серверу значение cookie BREEZESESSION:
GET /api/xml?action=principal-list HTTP/1.1 Accept: */* Accept-Language: en-us Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322) Host: example.com Connection: Keep-Alive Cookie: BREEZESESSION=breezbryf9ur23mbokzs8
-
Проверьте ответ, в котором перечислены все субъекты на сервере, каждый в собственном элементе principal.
<?xml version="1.0" encoding="utf-8" ?> <results> <status code="ok" /> <principal-list> <principal principal-id="624526" account-id="624520" type="user" has-children="false" is-primary="false" is-hidden="false"> <name>joe harrison</name> <login>jharrison@example.com</login> <email>jharrison@example.com</email> </principal> <principal principal-id="624550" account-id="624520" type="user" has-children="false" is-primary="false" is-hidden="false"> <name>bob jones</name> <login>bjones@example.com</login> <email>bjones@example.com</email> </principal> ... </principal-list> </results>
Добавление фильтров и порядков сортировки
Многие действия в API-интерфейсе позволяют добавлять фильтр, чтобы возвращать только определенные элементы ответа или сортировку для отображения элементов ответа в определенном порядке.
Фильтр — это специальный параметр, начинающийся с ключевого слова filter, за которым следует необязательный модификатор, а затем имя поля и значение. Ниже приводятся примеры фильтров:
filter-name=jazz doe (возвращаются результаты, содержащие точное соответствие названия jazz doe)
filter-like-name=jazz (возвращаются все результаты, содержащие строку jazz в названии)
filter-out-type=user (возвращаются все результаты, не имеющие типа user)
Это лишь немногие из доступных типов фильтра, остальные см. в разделе filter-definition. Проверьте действие в справочнике (см. Справочник действий) и посмотрите, можно ли отфильтровать его ответ. Как правило, если действие допускает использование фильтров, их можно применять к любому элементу или атрибуту ответа.
Сортировка — это еще один специальный параметр, начинающийся с ключевого слова sort (или sort1 или sort2), за которым следует имя поля, а затем одно из ключевых слов asc или desc, например:
sort-name=asc (для сортировки по возрастанию значения name)
sort-group-id=desc (для сортировки по убыванию значения group-id)
Это лишь несколько из возможных вариантов сортировки. Сортировку можно тестировать в браузере. Дополнительные сведения см. в разделе sort-definition.
Выполнение вызова с фильтром или сортировкой
-
Еще раз вызовите principal-list, отображая только группы и сортируя их по имени в алфавитном порядке:
https://example.com/api/xml?action=principal-list&filter-type=group &sort-name=asc
-
Чтобы уточнить ответ, выберите группу из списка и выполните фильтрацию по имени:
https://example.com/api/xml?action=principal-list&filter-name=developers
На этот раз возвращается только одна группа:
<?xml version="1.0" encoding="utf-8" ?> <results> <status code="ok" /> <principal-list> <principal principal-id="2007105030" account-id="624520" type="group" has-children="true" is-primary="false" is-hidden="false"> <name>developers</name> <login>developers</login> </principal> </principal-list> </results>
Что делать дальше
На этом этапе можно перейти к тестированию вызовов в браузере и проверке их работы. Это самый лучший и простой способ изучения API-интерфейса XML. За дополнительными сведениями обращайтесь к любому из перечисленных ниже источников:
Справочник по API-интерфейсу в Справочнике по действиям.
Вход и запросы: сведения о выполнении входа для пользователей в приложениях.
Основы: сведения о трех базовых понятиях, лежащих в основе API-интерфейса.
Собрания: сведения о создании собраний и управлении ими из приложения.
Обучение: сведения о создании обучающего приложения.