ファイアウォールの内側にある LiveCycle Data Services クライアントおよびサーバーの使用

サーブレットベースのエンドポイントは標準の HTTP 要求を使用するので、クライアント側のファイアウォールで必要なポートが開いていれば、通常、ファイアウォールの内側にあるクライアントとの通信は問題なく機能します。多くのファイアウォールでは非標準ポート経由の送信トラフィックをブロックしているので、標準の HTTP ポート 80 および HTTPS ポート 443 を使用することをお勧めします。

NIO ベースのエンドポイントでは、クライアントがファイアウォールの内側にある場合に、RTMP エンドポイントの代わりに AMF エンドポイントおよび HTTP エンドポイントを使用すると、クライアントはブロックされたポートに阻まれずに、クライアント側のファイアウォールを通じてサーバーに接続することができます。この方法により、認識できないパケットをドロップするステートフルプロキシも通過できるようになります。ただし、それには NIO ベースの AMF エンドポイントおよび HTTP エンドポイントを標準の HTTP ポート 80 および標準の HTTPS ポート 443 で公開する必要があります。

NIO ベースの AMF エンドポイントおよび HTTP エンドポイントをロードバランサーと組み合わせて使用することができます。セッション cookie AMFSessionId に基づいて、または J2EE エンコードされた URL の形式に一致するが J2EE jsessionid トークンではなく AMFSessionId トークンを使用する要求 URL に埋め込まれたセッション ID に基づいて、スティッキーセッションを行うようにロードバランサーを設定する必要があります。RTMP エンドポイントでは、負荷分散された RTMP ポートに TCP ラウンドロビン接続を適用します。

サーバー側のファイアウォールは、サーブレットベースの AMF エンドポイントおよび HTTP エンドポイントへのアクセスを許可する場合と同じように設定する必要があります。NIO ベースの AMF エンドポイントおよび HTTP エンドポイントの前で Web サーバー / コネクタを使用するときは次の問題が発生する可能性があることに注意してください。

  • Web サーバー / コネクタが、応答時にストリームチャンクをバッファリングした場合、リアルタイムストリーミングの妨げになることがあります。これは、クライアントへのデータの送信時に必ず完全な HTTP 応答が返されるポーリングまたはロングポーリングでは問題にはなりません。

  • Web サーバー / コネクタは非同期 IO を使用しないことがあります。この場合、単一の Web サーバーまたはコネクタが数千の持続的な HTTP 同時接続にスケールアップしない可能性が高くなります。

様々なクライアントチャンネルが使用するプロトコルはハードコーディングされています。例えば、AMFChannel は常に HTTP を使用し、SecureAMFChannel は常に HTTPS を使用します。SecureAMFChannel と SecureAMFEndpoint を組み合わせて使用する場合は、Internet Explorer で no-cache 応答ヘッダーと HTTPS に関連して発生する問題に注意してください。デフォルトでは、no-cache 応答ヘッダーは HTTP ベースのエンドポイントで有効になっています。これが、Internet Explorer ブラウザーでは問題になります。この応答ヘッダーを無効にするには、次の設定プロパティをエンドポイントに追加します。

<add-no-cache-headers>false</add-no-cache-headers>

SSL を処理するファイアウォール / リバース HTTP プロキシがデプロイメントにある場合は、チャンネルとエンドポイントを混在させる必要があります。次の例に示すように、クライアントが安全なチャンネルを使用し、サーバーが安全性の低いエンドポイントを使用するように設定します。

<channel-definition id="secure-amf" class="mx.messaging.channels.SecureAMFChannel"> 
    <endpoint url="https://<<firewall ip:port>>/{context.root}/messagebroker/amf"                       
        class="flex.messaging.endpoints.AMFEndpoint"/> 
    <properties> 
        <add-no-cache-headers>false</add-no-cache-headers> 
    ...

チャンネルクラスは HTTPS を使用してファイアウォール / プロキシに到達します。エンドポイント URL はファイアウォール / プロキシを指している必要があります。途中で SSL が処理されるので、LiveCycle Data Services が使用するエンドポイントクラスは安全性の低い AMFEndpoint にします。また、ファイアウォール / プロキシは要求を LiveCycle Data Services サーバーの HTTP ポートに返す必要があります。HTTPS ポートに返すのではありません。