Adobe Connect 웹 서비스 아키텍처 소개

Connect 웹 서비스의 아키텍처를 이해하고 API의 작동 방식에 대해 알아봅니다.

Adobe® Connect™ 웹 서비스는 Adobe Connect Server 응용 프로그램 제품군의 웹 서비스 레이어입니다.

웹 서비스를 사용하면 포털, CRM(고객 관계 관리) 시스템 및 ERP(엔터프라이즈 리소스 계획) 시스템 등 타사 시스템과 Adobe Connect 기능 및 보고 정보를 통합하는 포털 또는 웹 응용 프로그램을 구축할 수 있습니다.

Adobe Connect 웹 서비스는 XML API를 통해 응용 프로그램에 회의, 교육 및 이벤트 기능을 제공합니다.
Adobe Connect 웹 서비스는 XML API를 통해 응용 프로그램에 회의, 교육 및 이벤트 기능을 제공합니다.

예를 들어 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 및 Adobe RTMP(Real Time Messaging Protocol)를 통해 연결되며 다음 표에 설명된 경로를 따릅니다.

다이어그램 번호

설명

1

클라이언트 웹 브라우저는 HTTP:80 포트를 통해 Adobe Connect 회의 또는 콘텐츠 URL을 요청합니다(연결 경로는 다를 수 있음).

2

웹 서버는 콘텐츠 전송으로 응답하거나 Adobe Connect 입력 정보를 클라이언트 브라우저에 제공합니다.

3

데스크탑용 Adobe Connect 응용 프로그램은 RTMP:1935 및 HTTP:80을 통해 Adobe Media Server에 연결을 요청합니다.

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

클라이언트 웹 브라우저는 HTTPS:443에서 암호화된 연결을 통해 보안 회의 또는 콘텐츠 URL을 요청합니다(연결 경로는 다를 수 있음).

B

웹/응용 프로그램 서버는 암호화된 콘텐츠 전송으로 응답하거나 Adobe Connect에 암호화된 연결을 만들기 위한 정보를 클라이언트에 제공합니다.

C

데스크톱 용 Adobe Connect 응용 프로그램은 RTMPS:443을 통해 Adobe Media Server에 암호화된 연결을 요청합니다.

D

Adobe Media Server가 응답하고 브라우저에 회의 트래픽을 스트리밍하기 위해 영구 연결이 열립니다.

사용자 정의 응용 프로그램

Adobe Connect 웹 서비스는 XML API를 제공하므로 응용 프로그램이 HTTP를 통한 XML 사용 또는 HTTPS를 통해 XML을 사용하여 Adobe Connect와 통신할 수 있어야 합니다. 응용 프로그램은 요청 URL을 구축하고 이름/값 쌍 또는 XML 문서로 하나 이상의 매개 변수를 전달하여 API를 호출합니다. 웹 서비스에서는 값을 추출할 수 있는 XML 응답을 반환합니다.

사용자 정의 응용 프로그램은 Adobe Connect 데이터베이스에서 메타데이터를 검색합니다. 메타데이터는 회의 또는 강좌명 및 시간, 회의실 URL, 콘텐츠 URL 및 보고서 정보를 포함합니다.

데이터베이스에서 메타데이터를 검색하는 사용자 정의 응용 프로그램의 데이터 흐름은 클라이언트 웹 브라우저에서 클라이언트 웹 응용 프로그램 서버, XML API, Adobe Connect 웹 응용 프로그램 서버 및 SQL 데이터베이스로 이동한 다음 다시 돌아갑니다.

사용자 정의 응용 프로그램과 Adobe Connect 간 데이터 흐름은 다음과 같이 작동합니다.

  1. 사용자는 웹 브라우저에서 사용자 정의 응용 프로그램에 액세스합니다.

  2. 해당 응용 프로그램은 HTTP:80 또는 HTTPS:443을 통해 XML API를 호출합니다.

  3. Adobe Connect 웹 응용 프로그램 서버는 응용 프로그램 및 해당 사용자에게 권한을 부여하며, SQL 데이터베이스에서 메타데이터를 검색하고 메타데이터를 반환합니다.

  4. 클라이언트 측에서는 웹 또는 응용 프로그램 서버, XML 파서 및 소프트웨어 라이브러리가 응답을 처리하고 응용 프로그램에 반환합니다.

  5. 사용자는 사용자 정의 응용 프로그램에서 계속 작업하고 회의 또는 콘텐츠 URL을 클릭합니다. 이 시점에서 사용자는 Adobe Connect 응용 프로그램에 액세스하여 회의실에 들어가고 Adobe Connect 응용 프로그램과 서버 간 일반적인 데이터 흐름이 시작됩니다.

Adobe Connect 응용 프로그램

Adobe Connect 응용 프로그램은 사용자 정의 응용 프로그램에서 사용하는 것과 동일한 웹 서비스 XML API를 사용하여 서버를 호출합니다.

일반적으로 콘텐츠는 HTTP 포트 80 또는 HTTPS 포트 443을 통해 전송됩니다. 콘텐츠에는 슬라이드, HTTP 페이지, SWF 파일 및 FileShare 창을 통해 전송된 파일이 포함됩니다. 구성할 수 있는 기본 포트 번호입니다(자세한 내용은 Adobe Connect Server 마이그레이션, 설치 및 구성 참조).

Adobe Media Server에서 스트리밍 되는 실시간 통신은 RTMP 포트 1935를 통해 전송됩니다. 스트리밍 통신은 오디오, 비디오(웹캠 및 FLV), 파일 공유 및 채팅 등을 포함합니다. 회의 상태는 RTMP 포트 1935에서도 유지됩니다.

Adobe Connect 구성 요소

Adobe Connect는 두 개의 서버 구성 요소로 설계되었으며 각 서버는 SQL 데이터베이스를 사용합니다.

웹 응용 프로그램 서버

웹 응용 프로그램 서버는 Adobe Connect에서 중추적인 역할을 합니다. 사용자에게 콘텐츠를 전달하는 데 필요한 모든 비즈니스 논리를 포함하고 실행합니다. 액세스 제어, 보안, 할당량 및 라이센스는 물론 클러스터링, 장애 조치 및 복제 등의 관리 기능을 처리합니다.

웹 응용 프로그램 서버는 또한 사용자 정의 응용 프로그램이나 통합된 타사 시스템을 사용하지 않을 때 조직의 콘텐츠와 사용자를 확인하고 관리하는 응용 프로그램인 Adobe Connect Central을 처리합니다. 콘텐츠와 사용자를 설명하는 메타데이터는 복제된 단일 SQL 데이터베이스 또는 여러 SQL 데이터베이스에 저장할 수 있습니다. 웹 응용 프로그램 서버는 상태 비저장 서버이므로 크기 조정이 거의 선형으로 이루어집니다.

Adobe Media Server

Adobe Media Server는 RTMP를 사용하여 오디오, 비디오 및 리치 미디어 콘텐츠를 스트리밍합니다. 회의가 레코딩 및 재생되거나, 오디오와 비디오가 동기화되거나 또는 실시간 화면 공유를 위해 콘텐츠가 변환되고 패키징되면 Adobe Media Server가 작업을 수행합니다.

또한 Adobe Media Server는 자주 액세스하는 웹 페이지, 스트림 및 공유 데이터를 캐시하여 서버 부하를 줄이는 데 중요한 역할을 합니다.

SQL 데이터베이스

Adobe Connect는 Microsoft SQL Server 데이터베이스를 사용하여 사용자, 그룹, 콘텐츠 및 보고 정보를 포함한 트랜잭션 및 응용 프로그램 메타데이터를 영구 저장합니다. XML API는 데이터베이스에 저장된 메타데이터를 검색합니다. 데이터베이스는 MSDE(Microsoft SQL Server Desktop Engine) 또는 Microsoft SQL Server 2005의 정식 버전에서 구현할 수 있습니다.

첫 번째 API 호출

Adobe Connect 웹 서비스는 서블릿 프레임워크를 사용하여 XML API 요청을 처리합니다. 데이터 흐름 다이어그램에서 서블릿 프레임워크는 API 구성 요소로 표시됩니다. API 서블릿은 클라이언트에서 XML 요청을 수신하고 웹 응용 프로그램 서버 및 데이터베이스에서 XML 응답을 반환합니다.

XML API에 대한 요청은 API 서블릿이 처리하는 HTTP 요청 URL로 형식이 지정됩니다. 요청 URL에는 다음과 같이 이름/값 쌍의 작업 명과 매개 변수가 있습니다.

 https://example.com/api/xml?action=sco-info&sco-id=2006334909

API 호출을 테스트할 수 있는 Adobe Connect 계정 액세스 권한이 있으면 실험해 볼 수 있습니다. 실제로 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의 응답은 서버와의 세션, 특히 세션을 식별하는 쿠키에 대한 정보를 제공합니다.

     <?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>

    응용 프로그램에서 사용자를 로그인할 때 사용자의 세션을 식별하기 위해 서버에 쿠키 값을 다시 보내야 합니다(응용 프로그램에서 로그인을 참조합니다).

브라우저에서 principal-list 호출

common-infoBREEZESESSION 쿠키 값이 있는 경우 브라우저는 다음 요청 시 요청 헤더에 이 값을 추가합니다.

  1. 웹 브라우저에서 Adobe Connect에 로그인합니다. 브라우저 URL을 변경하여 principal-list를 호출합니다.

     https://example.com/api/xml?action=principal-list
  2. 요청 헤더를 확인합니다. 이번에는 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>

여기서 어디로 이동할까요?

브라우저에서 호출을 계속 테스트하고 작동 방식을 관찰할 수 있습니다. XML API를 학습하는 가장 쉽고 간단한 방법입니다. 추가 정보가 필요한 경우 다음의 소스로 이동합니다.

  • 작업 참조의 API 참조.

  • 로그인 및 요청에서 응용 프로그램의 사용자 로그인 방법에 대한 정보를 확인합니다.

  • 기본 사항에서 API의 기본이 되는 세 가지 기본 개념을 학습합니다.

  • 회의에서는 응용 프로그램에서 회의를 만들고 관리할 수 있습니다.

  • 교육에서는 교육 응용 프로그램을 구축하는 경우 정보를 얻을 수 있습니다.

쉽고 빠르게 지원 받기

신규 사용자이신가요?