Введение в архитектуру веб-служб Adobe Connect

Узнайте, как устроена архитектура веб-служб Connect и как работают API-интерфейсы.

Веб-службы Adobe® Connect™ — это уровень веб-служб, который располагается над уровнем пакета приложений Adobe Connect Server.

Веб-службы позволяют создавать порталы или веб-приложения, которые интегрируют функциональные возможности Adobe Connect и данные отчетности в системы сторонних разработчиков, такие как порталы, системы управления взаимоотношениями с клиентами (CRM) и системы планирования ресурсов предприятий.

Веб-службы Adobe Connect обеспечивают функции собраний, обучения и мероприятий для приложений посредством своего API-интерфейса XML.
Веб-службы Adobe Connect обеспечивают функции собраний, обучения и мероприятий для приложений посредством своего API-интерфейса XML.

Например, используется центральная система управления пользователями, такая как каталог 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) могут использовать любые пути потока данных.

Поток данных между Adobe Connect и клиентскими приложениями.
Поток данных между Adobe Connect и клиентскими приложениями.

Поток данных может быть зашифрованным с использованием 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 проходит следующий путь:

  1. Пользователь вызывает пользовательское приложение через веб-браузер.

  2. Приложение вызывает API-интерфейс XML через HTTP:80 или HTTPS:443.

  3. Сервер веб-приложений Adobe Connect авторизует приложение и его пользователей, извлекает и возвращает метаданные из базы данных SQL.

  4. На стороне клиента веб-сервер или сервер приложений, синтаксический анализатор XML и библиотек ПО обрабатывают ответ и возвращают его приложению.

  5. Пользователь продолжает работать в вашем пользовательском приложении и щелкает 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 в браузере

  1. (Необязательно) Включите инструмент для просмотра заголовков HTTP в браузере.

  2. Откройте браузер и перейдите на страницу входа в Adobe Connect.

  3. Не выполняя вход, удалите часть URL-адреса после доменного имени и добавьте вызов common-info:

     https://example.com/api/xml?action=common-info

    Ответ от common-info содержит информацию о сеансе подключения к серверу, в частности файл cookie, идентифицирующий сеанс:

     <?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?> <results> <status code=&quot;ok&quot; /> <common locale=&quot;en&quot; time-zone-id=&quot;85&quot;> <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, браузер добавляет его в заголовок следующего запроса.

  1. В веб-браузере выполните вход в Adobe Connect. Измените URL-адрес в строке браузера, чтобы вызвать principal-list:

     https://example.com/api/xml?action=principal-list
  2. Проверьте заголовок запроса. На этот раз он возвращает серверу значение 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
  3. Проверьте ответ, в котором перечислены все субъекты на сервере, каждый в собственном элементе principal.

     <?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?> <results> <status code=&quot;ok&quot; /> <principal-list> <principal principal-id=&quot;624526&quot; account-id=&quot;624520&quot; type=&quot;user&quot; has-children=&quot;false&quot; is-primary=&quot;false&quot; is-hidden=&quot;false&quot;> <name>joe harrison</name> <login>jharrison@example.com</login> <email>jharrison@example.com</email> </principal> <principal principal-id=&quot;624550&quot; account-id=&quot;624520&quot; type=&quot;user&quot; has-children=&quot;false&quot; is-primary=&quot;false&quot; is-hidden=&quot;false&quot;> <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.

Выполнение вызова с фильтром или сортировкой

  1. Еще раз вызовите principal-list, отображая только группы и сортируя их по имени в алфавитном порядке:

     https://example.com/api/xml?action=principal-list&filter-type=group &sort-name=asc
  2. Чтобы уточнить ответ, выберите группу из списка и выполните фильтрацию по имени:

     https://example.com/api/xml?action=principal-list&filter-name=developers

    На этот раз возвращается только одна группа:

     <?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?> <results> <status code=&quot;ok&quot; /> <principal-list> <principal principal-id=&quot;2007105030&quot; account-id=&quot;624520&quot; type=&quot;group&quot; has-children=&quot;true&quot; is-primary=&quot;false&quot; is-hidden=&quot;false&quot;> <name>developers</name> <login>developers</login> </principal> </principal-list> </results>

Что делать дальше

На этом этапе можно перейти к тестированию вызовов в браузере и проверке их работы. Это самый лучший и простой способ изучения API-интерфейса XML. За дополнительными сведениями обращайтесь к любому из перечисленных ниже источников:

  • Справочник по API-интерфейсу в Справочнике по действиям.

  • Вход и запросы: сведения о выполнении входа для пользователей в приложениях.

  • Основы: сведения о трех базовых понятиях, лежащих в основе API-интерфейса.

  • Собрания: сведения о создании собраний и управлении ими из приложения.

  • Обучение: сведения о создании обучающего приложения.

Логотип Adobe

Вход в учетную запись