このスクリプトでは、e-docs マニュアルの検索に必要な Google 検索の URL を出力します。
このスクリプトでは、e-docs マニュアルに必要なバナーを出力します。
このスクリプトでは、e-docs マニュアルの検索に必要な Google 検索のパラメータを出力します。
このスクリプトでは、e-docs マニュアルに必要な製品のブレッドクラムを出力します。
>
転送 SDK ユーザーズ ガイド > 転送 SDK のインタフェースおよびクラス
転送 SDK ユーザーズ ガイド
転送 SDK のインタフェースおよびクラス
この章では、転送 SDK で提供されるクラスとインタフェースを示し、それらについて簡単に説明します。カスタム転送プロバイダの開発に必要なインタフェースについては、「転送プロバイダの開発 」を参照してください。
この章の内容は以下のとおりです。
はじめに
この章で説明されているすべてのクラスおよびインタフェースは、パッケージ com.bea.wli.sb.transports
で定義されており、AquaLogic Service Bus のインストール後、システムの CLASSPATH
に示される sb-public.jar
に含まれています。
スキーマで生成されるインタフェース
インタフェースの多くは、XML スキーマ コンパイラ ツールによって XML から生成されます。以下のインタフェースのソース (XML スキーマ) は、ファイル TransportCommon.xsd
で提供されています。このファイルは、サービス エンドポイントのコンフィグレーション用の基本となるスキーマ定義ファイルです。このファイルは、BEA_HOME/weblogic92/servicebus/lib/sb-public.jar
にあります。
ここで、BEA_HOME
は AquaLogic Service Bus をインストールしたディレクトリです。
EndPointConfiguration - エンドポイント コンフィグレーションの基本型。エンドポイントは、メッセージの送信元または送信先となる AquaLogic Service Bus リソースです。EndPointConfiguration は、着信エンドポイントまたは発信エンドポイントのデプロイメントおよび操作に必要なパラメータ一式を示します。
RequestMetaDataXML - 着信要求または発信要求のメタデータの基本型。メタデータは、メッセージのペイロードに含まれず、個別に送信され、メッセージを処理するための「コンテキスト」として使用されます。メタデータとして送信できる情報の例には、Content-Type ヘッダ、セキュリティ情報、ロケール情報などがあります。
RequestHeadersXML - 一連の着信または発信要求ヘッダの基本型。
ResponseMetaDataXML - 着信メッセージまたは発信メッセージの応答メタデータの基本型。
ResponseHeadersXML - 一連の応答ヘッダの基本型。
TransportProviderConfiguration - このプロバイダが (a) エンドポイントのサービスの説明 (WSDL など) を生成するかどうか、(b) 着信 (プロキシ) エンドポイントをサポートするかどうか、または (c) 発信 (ビジネス サービス) エンドポイントをサポートするかどうかをコンフィグレーションできます。
汎用クラスおよびインタフェース
この節では、転送 SDK の汎用クラスおよびインタフェースについて簡単に説明します。
この節の内容は以下のとおりです。
注意 :
この節に示す各クラスおよびインタフェースの詳細については、AquaLogic Service Bus の Javadoc の説明を参照してください。
汎用クラスの概要
TransportManagerHelper クラス - クライアントが転送サブシステムに関する一部の一般的なタスクを実行できるようにするヘルパー クラス。
ServiceInfo クラス - 転送のコンフィグレーションおよびバインディング タイプなどのサービスについての情報を示すラッパー クラス。
TransportOptions クラス - メッセージを送受信に関するオプションを提供します。TransportOptions には、複数行セットアップおよび単一行使用の 2 つの使用スタイルがあります。
EndPointOperations クラス - さまざまなタイプの転送エンドポイントのライフサイクル関連のイベントについて説明します。このイベントによって、転送プロバイダへの通知を行います。ネストされたクラスには、CommonOperation、Create、Delete、EndPointOperationTypeEnum、Resume、Suspend、および Update があります。
Ref クラス - コンフィグレーション システムで管理されるリソース、プロジェクトまたはフォルダをユニークに表します。
TransportValidationContext クラス - エンドポイント コンフィグレーションの検証チェックを実装する際に使用できる情報を転送プロバイダに提供するコンテナ。
Diagnostics クラス - 特定のリソースに関連する Diagnostic エントリの集合が含まれます。
Diagnostic クラス - リソースに関連する特定の検証メッセージを表します。Diagnostic オブジェクトは、リソースに変更があった際に実行される検証の結果として生成されます。このようなシステム内の変更は、変更されたリソース、および変更されたリソースに (過渡的に) 依存するその他のすべてのリソースの検証をトリガします。
EnvValue クラス - コンフィグレーション データ内にある環境依存の値のインスタンスを表します。通常、環境依存の値は、あるドメインから別のドメインにコンフィグレーションが移動された場合に変わります。たとえば、サービスの URI は、テスト ドメインとプロダクション ドメインで異なる場合があります。
汎用インタフェースの概要
Source および Transformer クラスとインタフェース
以下に、Source および Transformer の基本インタフェース、AquaLogic Service Bus で提供される具体的な Source、およびサポート クラスについて説明します。詳細については、「メッセージ コンテンツの設計 」を参照してください。
Source および Transformer インタフェースの概要
Source インタフェース - 任意の形式のソース コンテンツを表します。Source は、Transformer インスタンスを介して他の Source に変換できます。Source は、少なくとも、このインスタンスで定義されている 2 つのメソッドを介して、バイトベースのストリームへの変換をネイティブにサポートする必要があります。Source では、シリアライゼーション中に文字セット エンコーディングなどのさまざまな TransformOptions を考慮することもできます。
SingleUseSource インタフェース - あるタイプの Source が 1 回に限り使用できることを示すマーカー インタフェース。Source がまだ「使用できる」(有効である) かどうかを判断するために使用できる 1 つのヘルパー メソッドも提供します。
Source インタフェースを実装する Source クラスを作成する場合、AquaLogic Service Bus は、最初から入力ストリームを取得するたびに複数回 getInputStream()
メソッドを呼び出すことができます。Source クラスが SingleUseSource を実装する場合、AquaLogic Service Bus は、getInputStream()
を 1 回だけ呼び出します。ただし、この場合、AquaLogic Service Bus は、メッセージ全体をメモリにバッファします。
Transformer インタフェース - あるタイプの Source を別のタイプに変換します。このインスタンスは、どのタイプのソース間で変換できるかを示します。サポートされる入力ソースおよび出力ソースによって示される完全な製品間トランスフォーメーションをサポートするには、トランスフォーマが必要です。つまり、トランスフォーマは、サポートされるすべての入力ソースを、サポートされるすべての出力ソースに変換できる必要があります。
Source および Transformer クラスの概要
StreamSource クラス - InputStream からコンテンツを読み込むバイト ストリーム Source。バイト ストリーム Source であるため、シリアライゼーション メソッドはトランスフォーメーションのオプションを考慮しません。
注意 :
このストリームは InputStream によってバックアップされるため、このソースは 1 回のみ使用するソースとなります。両方のシリアライゼーション メソッドは、基になっている同じ InputStream から取得され、そのコンテンツは 1 度使用すると、失われます。エラーが発生しないことを前提とした場合、プッシュベースの writeTo()
メソッドによりすべてのデータが即時に使用されます。プルベースの getInputStream()
は、実際に基になる InputStream を呼び出し元に直接提供します。
ByteArraySource クラス - バイト配列からコンテンツを読み込むバイト ストリーム Source。バイト ストリーム Source であるため、シリアライゼーション メソッドはトランスフォーメーションのオプションを考慮しません。
StringSource クラス - 単一の String によってバックアップされる Source。シリアライゼーションは、単に、文字セット エンコーディングが設定された文字データです。
XmlObjectSource クラス - Apache XBean の Source コンテンツは Apache XBean として表されます。XBean は、型付きであるため、SchemaType オブジェクトおよび関連する ClassLoader が付随する場合があります。ただし、これらはどちらも省略可能であり、XBean を型なしの XML にすることもできます。
DOMSource クラス - そのコンテンツが DOM ノードに由来する Source。参照されるノードは、独立した org.w3c.dom.Document
である場合も、より大きなドキュメント内の内部ノードである場合もあります。
MFLSource クラス - MFL コンテンツを表します。MFL データは、基本的には、MFL 定義によって論理構造が指定されたバイナリ データです。CSV は MFL データの簡単な例ですが、構造は任意に複雑になる場合もあります。データの論理的表現およびメモリ内表現は、XML ドキュメントですが、シリアライズされた表現は構造化されていない生のバイナリ データです。
SAAJSource クラス - SAAJ SOAPMessage オブジェクトによってバックアップされる Source。通常、SAAJSource は、MessageContextSource および MimeSource との間で変換されます。
MimeSource クラス - ヘッダを持つ任意のコンテンツを示す Source。基本的に、これは MIME の部分を表す Source です。ヘッダは RFC822 に準拠する必要がありますが、Source は任意のタイプのソースでかまいません。この Source のシリアライゼーション形式は、完全準拠の MIME パッケージです。このソースは、Content-Transfer-Encoding にも対応しており、ヘッダがある場合、基になるコンテンツ ストリームを適切にエンコーディングします。これは、コンストラクタに提供されている Source が、まだエンコードされておらず、生の形式である必要があることを意味しています。
MessageContextSource クラス - すべてのメッセージ コンテンツを示す Source。メッセージと添付の Source は、後で処理できるように型なしのままになっています。ただし、最終的に、添付ソースの多くは AttachmentsSource オブジェクトに変換され、メッセージ ソースの多くは、XmlObjectSource や StringSource などの特定の型付きのソースに変換されます。
注意 :
MessageContextSource のシリアライゼーション形式は、メッセージ ソースおよび添付ソースのネイティブのシリアライゼーションにかかわらず、MIME multipart/related パッケージです。ただし、シリアライズされたオブジェクトが複数回必要な場合は、Source を MimeSource に変換する方法が最適です。
AttachmentsSource クラス - 一連の添付を表す Source。このクラスのストリーム表現は、$attachments
変数のストリーム表現と同じです。つまり、ストリーム表現は MIME ではなく XML ということになります。
TransformOptions クラス - 一連のトランスフォーメーションのオプションを表します。このクラスのインスタンスは、Transformer クラスと併せて使用され、入力ソースの出力ソースへの変換方法に影響を及ぼします (たとえば、SHIFT_JIS から EUC-JP への文字セット エンコーディングの変更など)。このクラスは、Source インタフェースの InputStream/OutputStream メソッドでも使用されます。これは、事実上この使用方法が、InputStream/OutputStream における Source とバイトレベルの表現との変換でもあるためです。
要求および応答メッセージのメタデータおよびヘッダの表現
この章では、要求メッセージおよび応答メッセージのメタデータ表現を処理するクラスおよびインタフェースを示します。「メッセージの処理 」および「メッセージ コンテンツの設計 」も参照してください。
この節の内容は以下のとおりです。
メッセージ コンテンツの実行時表現
CoLocatedMessageContext 抽象クラス - 転送レイヤの代わりに Java メソッド呼び出しを実行するために、同じ場所に配置されている発信呼び出しの最適化を実装する転送プロバイダによって拡張される必要があります。実装の例については、com.bea.alsb.transports.sock.SocketCoLocatedMessageContext.java
クラスを参照してください。このクラスは、「転送 SDK のインタフェースおよびクラス 」で説明されているサンプル ソケット転送に組み込まれています。「同じ場所に配置された呼び出し 」も参照してください。
RequestHeaders 抽象クラス - 任意の着信要求メッセージまたは発信要求メッセージの、標準およびユーザ定義のヘッダのユニオンを表します。一連の標準ヘッダは、各転送プロバイダに固有です。これは、それぞれのバージョンの要求ヘッダを実装するために、各転送プロバイダによって拡張される必要のある抽象クラスです。
RequestMetaData<T extends RequestHeaders> 抽象クラス - 着信要求メッセージまたは発信要求メッセージのメタデータ情報 (ヘッダ、要求の文字セット エンコーディングなど) を表します。転送プロバイダは、転送プロバイダに応じたメタデータ情報を追加する、このクラスの拡張を提供します。たとえば、HTTP 転送プロバイダは、get/setQueryString()
メソッド、get/setClientHost()
メソッド、およびその他のメソッドを追加します。
ResponseHeaders 抽象クラス - 任意の着信応答メッセージまたは発信応答メッセージの、標準およびユーザ定義のヘッダのユニオンを表します。一連の標準ヘッダは、各転送プロバイダに固有です。これは、それぞれのバージョンの応答ヘッダを実装するために、各転送プロバイダによって拡張される必要のある抽象クラスです。
ResponseMetaData<T extends ResponseHeaders> 抽象クラス - 着信応答メッセージまたは発信応答メッセージのメタデータ情報 (ヘッダ、要求の文字セット エンコーディングなど) を表します。転送プロバイダは、転送プロバイダに応じたメタデータ情報を追加する、このクラスの拡張を提供します。たとえば、HTTP 転送プロバイダは、get/setHttpResponseCode()
メソッドおよびその他のメソッドを追加します。
インタフェース
ユーザ インタフェースのコンフィグレーション
この節の内容は以下のとおりです。
概要
各転送プロバイダは、永続化するサービス エンドポイント固有のコンフィグレーション プロパティのリストを決定できるため、ユーザが新しいサービス エンドポイントごとの転送固有のコンフィグレーション プロパティを入力できる、柔軟なユーザ インタフェースが必要です。AquaLogic Service Bus のサービス定義ウィザードの一環としてユーザが入力する各転送プロバイダのプロパティを、エクスポーズできるようにする一連のクラスおよびインタフェースを以下に示します。
この節では、新しい転送のユーザ インタフェースを開発するために必要なインタフェースおよびクラスを示します。
UI インタフェースの概要
UI クラスの概要