ユーザーが web ブラウザーからカスタムアプリケーションにアクセスします。
Connect Web Services のアーキテクチャおよび API がどのように機能するかを理解します。
Adobe® Connect™ Web Services は、アプリケーションの Adobe Connect Server スイート上の web サービスレイヤーです。
Web Services を利用して、ポータルや web アプリケーションを構築すると、Adobe Connect の機能とレポート情報をポータル、顧客関係管理システムおよび企業リソースプランニングシステムなどのサードパーティシステムと統合できます。
例えば、LDAP ディレクトリ、Microsoft Active Directory または別のサードパーティシステムなど、ビジネスプロセスに欠かせない中央ユーザー管理システムを使用している場合があります。
Web Services を使用して、システムと 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 と Adobe Real Time Messaging Protocol(RTMP)で接続され、次の表で説明されているパスに従います。
図の番号 |
説明 |
---|---|
1 |
クライアントの web ブラウザーは、ポート HTTP:80 を経由して Adobe Connect 会議またはコンテンツ URL を要求します(接続パスは異なる場合があります)。 |
2 |
web サーバーは、コンテンツ転送で応答するか、クライアントブラウザーに 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 |
クライアントの web ブラウザーは、HTTPS:443 の暗号化された接続を経由して安全な会議またはコンテンツ URL を要求します(接続パスは異なる場合があります)。 |
B |
web/アプリケーションサーバーは、暗号化されたコンテンツ転送で応答するか、クライアントに Adobe Connect に暗号化接続するための情報を提供します。 |
C |
Adobe Connect デスクトップ向けアプリケーションは、RTMPS:443 を経由して Adobe Media Server への暗号化された接続を要求します。 |
D |
Adobe Media Server が応答し、会議のトラフィックをブラウザーにストリーミングするための永続的な接続が開かれます。 |
カスタムアプリケーション
Adobe Connect Web Services では XML API を提供しているため、アプリケーションで、XML over HTTP または XML over HTTPS を使用して Adobe Connect と通信できる必要があります。アプリケーションは、要求 URL を作成し、名前/値のペアまたは XML ドキュメントとして 1 つ以上のパラメーターを渡すことで、API を呼び出します。Web Services は XML 応答を返し、そこから値を抽出することができます。
カスタムアプリケーションは、Adobe Connect データベースからメタデータを取得します。メタデータには、会議やコースの名前と時間、会議室の URL、コンテンツ URL、レポート情報などが含まれます。
データベースからメタデータを取得するカスタムアプリケーションのデータフローは、クライアントの web ブラウザーから、クライアントの web アプリケーションサーバー、XML API、Adobe Connect web アプリケーションサーバー、SQL データベースへと流れて、それが繰り返されます。
カスタムアプリケーションと Adobe Connect 間のデータフローは次のようになっています。
-
-
アプリケーションは、HTTP:80 または HTTPS:443 を経由して XML API を呼び出します。
-
Adobe Connect web アプリケーションサーバーは、アプリケーションとそのユーザーを認証し、SQL データベースからメタデータを取得して、メタデータを返します。
-
クライアント側では、web サーバーやアプリケーションサーバー、XML パーサー、ソフトウェアライブラリなどで応答を処理し、アプリケーションに返します。
-
ユーザーは、カスタムアプリケーションで作業を続け、会議やコンテンツ URL をクリックします。この時点で、ユーザーは Adobe Connect アプリケーションにアクセスして会議室に入り、Adobe Connect アプリケーションとサーバー間の典型的なデータフローが始まります。
Adobe Connect アプリケーション
Adobe Connect アプリケーションは、カスタムアプリケーションから使用するのと同じ Web Services XML API を使用してサーバーを呼び出します。
一般的に、コンテンツは HTTP ポート 80 または HTTPS ポート 443 で転送されます。コンテンツには、スライド、HTTP ページ、SWF ファイルおよびファイル共有ポッドで転送されたファイルなどがあります。これらは、設定可能なデフォルトのポート番号です(詳細については Adobe Connect Server の移行、インストール、および設定を参照してください)。
Adobe Media Server からのストリーミングされたリアルタイム通信は、RTMP ポート 1935 経由で転送されます。ストリーミング通信には、オーディオ、ビデオ(web カメラおよび FLV)、ファイル共有およびチャットが含まれます。会議の状態も RTMP ポート 1935 経由で維持されます。
Adobe Connect のコンポーネント
Adobe Connect は 2 つのサーバーコンポーネントで構成されており、各サーバーは SQL データベースを使用します。
web アプリケーションサーバー
web アプリケーションサーバーは、Adobe Connect の中核をなすものです。ユーザーにコンテンツを提供するのに必要なビジネスロジックをすべて含み、それを実行します。アクセス制御、セキュリティ、割り当て、ライセンス処理およびクラスター構成、フェイルオーバー、複製などの管理機能も備えています。
カスタムアプリケーションや統合されたサードパーティシステムを使用していない場合、組織のコンテンツとユーザーを表示および管理するアプリケーションである Adobe Connect Central も web アプリケーションサーバーで処理します。コンテンツとユーザーを記述したメタデータは、複製された単一または複数の SQL データベースに保存できます。web アプリケーションサーバーはステートレスなので、スケーリングはほぼ直線的に行われます。
Adobe Media Server
Adobe Media Server は、RTMP を使用してオーディオ、ビデオおよびリッチメディアコンテンツをストリーミングします。会議の記録と再生、オーディオとビデオの同期やリアルタイムのスクリーン共有を目的としたコンテンツの変換とパッケージ化などを、Adobe Media Server で行えます。
また、Adobe Media Server は頻繁にアクセスする web ページ、ストリーム、共有データをキャッシュすることで、サーバーの負荷軽減にも重要な役割を果たしています。
SQL データベース
Adobe Connect は、ユーザー、グループ、コンテンツおよびレポート情報など、トランザクションおよびアプリケーションのメタデータの永続的な保存に Microsoft SQL Server データベースを使用します。XML API は、データベースに保存されているメタデータを取得します。データベースは、Microsoft SQL Server Desktop Engine(MSDE)または Microsoft SQL Server 2005 のフルバージョンのいずれかで実装できます。
最初の API 呼び出しの作成
Adobe Connect Web Services は、サーブレットフレームワークを使用して XML API 要求を処理します。データフロー図では、サーブレットフレームワークが API コンポーネントで表されています。API サーブレットは、クライアントから XML 要求を受信し、web アプリケーションサーバーおよびデータベースから XML 応答を返します。
XML API への要求は、API サーブレットが処理する HTTP 要求 URL としてフォーマットされます。要求 URL は、アクション名とパラメーターを名前と値のペアで表したもので、次のようになります。
https://example.com/api/xml?action=sco-info&sco-id=2006334909
API 呼び出しをテストできる Adobe Connect アカウントにアクセスできる場合は、実験することができます。実際のところ、アドビでは、API を学習してアプリケーションを作成しているときに、ブラウザーで API 呼び出しをテストすることを推奨しています。
始める前に、ブラウザーで HTTP 要求および応答ヘッダーを表示できるツールをインストールしておくと便利です。
ブラウザーで common-info を呼び出す
-
(オプション)ブラウザーで HTTP ヘッダーを表示するツールを有効にします。
-
ブラウザーを開き、Adobe Connect ログインページに移動します。
-
ログインせずに、URL のドメイン名以降の部分を削除し、common-info の呼び出しを追加します。
https://example.com/api/xml?action=common-info
common-info からの回答で、サーバーとのセッションに関する情報、特にセッションを識別するクッキーの情報が得られます。
<?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>
アプリケーションからユーザーをログインさせるときは、ユーザーのセッションを識別するためにクッキーの値をサーバーに送り返す必要があります(アプリケーションからのログインを参照してください)。
ブラウザーで principal-list を呼び出す
common-info から BREEZESESSION のクッキーの値を取得すると、ブラウザーは次回の要求時に要求ヘッダーにそれを追加します。
-
web ブラウザーで Adobe Connect にログインします。ブラウザーの URL を変更して、principal-list を呼び出します。
https://example.com/api/xml?action=principal-list
-
要求ヘッダーを確認します。今回は、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
-
サーバー上のすべてのプリンシパルが、それぞれのプリンシパル要素にリストアップされていることを回答から確認します。
<?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(ユーザーのタイプを含まないすべての結果を返します)
sort-name=asc(名前の昇順で並べ替えます)
sort-group-id=desc(グループ ID の降順で並べ替えます)
これらは並べ替えの例のほんの一部です。ブラウザーで並べ替えをテストしてみるか、詳細について並べ替えの定義を参照してください。
フィルターと並べ替えを使用して呼び出しを行う
-
再び 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
今回は、1 つのグループのみが返されます。
<?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>
次のステップ
これで、ブラウザー上で呼び出しのテストを続けて、その動作を観察できるようになりました。自分で実行することは、XML API を学ぶための最良かつ最も簡単な方法です。詳細情報が必要な場合は、以下の情報源を参照してください。