WebSphere Enterprise Service Bus バージョン 6.2.0 オペレーティング・システム: AIX、HP-UX、i5/OS、Linux、Solaris、Windows


サービス・コンポーネント・アーキテクチャー

SCA は、さまざまな方法で実装できる抽象化です。 特定のテクノロジー、プログラミング言語、呼び出しプロトコル、あるいはトランスポート・メカニズムを必要とはしません。 SCA コンポーネントを記述するために使用する Service Component Definition Language (SCDL) は、XML ベースの言語です。

SCA コンポーネントには、以下の特性があります。

WebSphere® Integration Developer は、WebSphere Enterprise Service Bus および WebSphere Process Server の以下の実装成果物をサポートします。
表 1. 実装成果物
WebSphere ESB WebSphere Process Server
メディエーション・フロー メディエーション・フロー
プレーン Java™ オブジェクト プレーン Java オブジェクト
  ビジネス・プロセス
  ビジネス・ステート・マシン
  ビジネス・ルール
  ヒューマン・タスク

SCA はビジネス・ロジックをインフラストラクチャーから分離し、アプリケーション・プログラマーがビジネス問題の解決に集中できるようにします。IBM の WebSphere Process Server も、同じ前提に基づきます。 図 1 に、WebSphere Process Server のアーキテクチャー・モデルを示します。

図 1. WebSphere Process Server コンポーネント・ベースのフレームワーク
WebSphere
Process Server コンポーネント・ベースのフレームワーク

WebSphere 環境では、SCA フレームワークは WebSphere Application Server の Java 2 Platform, Enterprise Edition (J2EE) ランタイム環境をベースとします。 全体的な WebSphere Process Server フレームワークは、SOA コア、サポート・サービス、およびサービス・コンポーネントで構成されます。 WebSphere Enterprise Service Bus では、これと同じフレームワークで、特にビジネス・インテグレーションの接続およびアプリケーション統合のニーズをターゲットとした全体的機能のサブセットを使用できます。

SCA コンポーネントのインターフェースは、以下のいずれかとして表すことができます。
SCA モジュールは、参照および実装を直接リンクしてワイヤリングされたコンポーネントのグループです。 WebSphere Integration Developer では、各 SCA モジュールにアセンブリー・ダイアグラムが関連付けられます。アセンブリー・ダイアグラムは統合ビジネス・アプリケーションを表し、SCA コンポーネントとこれらのコンポーネントを接続するワイヤーで構成されます。 統合開発者の主な職務の 1 つは、ソリューションを形成するコンポーネントを接続してアセンブリー・ダイアグラムを作成することです。 WebSphere Integration Developer には、このタスクを支援するグラフィカル・アセンブリー・エディターが用意されています。 アセンブリー・ダイアグラムを作成するときに、統合開発者は以下の 2 つの手法のいずれかを開始できます。 顧客が既存のサービスを持っていて、それらのサービスを再使用して組み合わせたいという場合には、一般的にボトムアップ手法が使用されます。 新しいビジネス・オブジェクトを一から作成する必要がある場合には、トップダウン手法を採用することになります。

SCA プログラミング・モデル: 基本

SCA プログラミング・モデルの基本となるのは、ソフトウェア・コンポーネント の概念です。 前述したように、コンポーネントとは、あるロジックを実装し、そのロジックをインターフェースを介して他のコンポーネントに使用可能にする単位のことです。 コンポーネントには、他のコンポーネントによって使用可能にされたサービスが必要な場合もあります。 その場合、コンポーネントは該当するサービスへの参照 を公開します。

SCA では、すべてのコンポーネントが 1 つ以上のインターフェースを公開する必要があります。図 2 に示すアセンブリー・ダイアグラムには、C1、C2、C3 の 3 つのコンポーネントがあります。 それぞれのコンポーネントのインターフェースは、丸で囲んだ文字 I で表されています。 コンポーネントは他のコンポーネントを参照することもできます。 参照は、四角で囲んだ文字 R で表されています。 参照とインターフェースは、アセンブリー・ダイアグラムでリンクされます。 基本的に、統合開発者は、必要なロジックを実装するコンポーネントのインターフェースに参照を接続することによって参照を「解決」します。

図 2. アセンブリー・ダイアグラム
アセンブリー・ダイアグラム

SCA コンポーネントの呼び出し

呼び出すサービスへのアクセスを提供するために、SCA プログラミング・モデルには ServiceManager クラスが組み込まれます。このクラスは、開発者が名前を基準に使用可能なサービスを検索することを可能にします。 以下は、サービス検索を説明する典型的な Java コード・フラグメントです。 ServiceManager を使用して、BOFactory サービスへの参照を取得します。これはシステム提供のサービスです。

//サービス・マネージャー singleton を取得
ServiceManager smgr = new ServiceManager();
//BOFactory サービスにアクセス
BOFactory bof =(BOFactory)
        smgr.locateService("com/ibm/websphere/bo/BOFactory");
注: ServiceManager のパッケージは、com.ibm.websphere.sca です。

開発者は同様のメカニズムを使用して、locateService メソッド内で参照されるサービスの名前を指定することにより、独自のサービスへの参照を取得します。 ServiceManager クラスを使用してサービスへの参照を取得した後は、呼び出しプロトコルや実装のタイプに依存しない方法で、そのサービスで使用可能な任意の操作を呼び出せます。

SCA コンポーネントを呼び出すには、以下の 3 種類の呼び出しスタイルを使用できます。
  • 同期呼び出し: この呼び出しスタイルを使用すると、呼び出し側は応答が返されるまで同期的に待機します。 これは従来からの呼び出しメカニズムです。
  • 非同期呼び出し: このメカニズムを使用すると、呼び出し側は、応答が作成されるまで待機することなく、直ちにサービスを呼び出せます。 応答を受け取る代わりに、呼び出し側は「チケット」を取得します。このチケットを使用して、後で応答を取得することができます。 呼び出し側が応答を取得するために呼び出す特殊な操作は、呼び出し先がこの目的専用に提供する必要があります。
  • コールバックを使用した非同期呼び出し: この呼び出しスタイルは上記のスタイルと同様ですが、応答のリターンは呼び出し先に委任されます。 呼び出し側は、応答の準備ができたときに呼び出し先が呼び出すことのできる特殊な操作 (コールバック操作) を公開する必要があります。

インポート

場合によっては、レガシー・アプリケーションなどの外部システムやその他の外部実装で使用可能なコンポーネントまたは関数によって、ビジネス・ロジックが提供されることがあります。 このような場合、統合開発者は、実装が含まれるコンポーネントに参照を接続するという方法で参照を解決することができません。参照は、該当する外部実装を「指す」コンポーネントに接続する必要があります。 これらのコンポーネントはインポート と呼ばれます。 インポートを定義するときには、外部サービスにアクセスする方法を、ロケーションおよび呼び出しプロトコルという点で指定する必要があります。

エクスポート

同様に、コンポーネントに外部アプリケーションからのアクセスが必要なこともよくあります。その場合には、コンポーネントをアクセス可能にしなければなりません。それには、ロジックを「外部世界」に公開する特殊なコンポーネントを使用します。 これらのコンポーネントはエクスポート と呼ばれます。 これらのコンポーネントは、同期的または非同期的に呼び出すことができます。

スタンドアロン参照

WebSphere ESB では、SCA サービス・モジュールは J2EE EAR ファイルとしてパッケージされます。このファイルには、他の J2EE サブモジュールもいくつか含まれます。 WAR ファイルなどの J2EE エレメントは、SCA モジュールと併せてパッケージできます。 JSP などの非 SCA 成果物も SCA サービス・モジュールと併せてパッケージできます。 このようにすると、これらのエレメントが、スタンドアロン参照と呼ばれる特殊なコンポーネント・タイプを使用した SCA クライアント・プログラミング・モデルによって SCA を呼び出せるようになります。

SCA プログラミング・モデルは厳格な宣言型です。 統合開発者は、呼び出しのトランザクション振る舞い、セキュリティー資格認定の伝搬、宣言による同期呼び出しまたは非同期呼び出しの指定などの側面をアセンブリー・ダイアグラムに直接構成できます。 これらの修飾子で指定された振る舞いを実装する責任は、開発者ではなく、SCA ランタイムにあります。 SCA の宣言に関する柔軟性は、このプログラミング・モデルの最も強力な機能の 1 つです。 開発者は、非同期呼び出しメカニズムに対応できるようにするなどの技術的側面に重点を置く代わりに、ビジネス・ロジックの実装に専念できます。 これらの側面すべては、SCA ランタイムによって自動的に対処されます。

修飾子

修飾子は、サービス・クライアントとターゲット・サービスとの間の相互作用を管理します。 修飾子はサービス・コンポーネント参照、インターフェース、および実装に指定することが可能で、通常は実装外部にあります。

修飾子には以下の各種カテゴリーがあります。

SCA では、これらのサービスの品質 (QoS) 修飾子を宣言によってコンポーネントに適用することができます (プログラミングの必要も、サービス実装コードを変更する必要もありません)。 これは、WebSphere Integration Developer 内で行われます。 通常、QoS 修飾子を適用するのは、ソリューション・デプロイメントを検討する準備が整った時点です。 詳しくは、「サービスの品質修飾子のリファレンス」を参照してください。


concept 概念トピック

ご利用条件 | フィードバック


タイムスタンプ・アイコン 最終更新: 2010/07/05


http://publib.boulder.ibm.com/infocenter/dmndhelp/v6r2mx/topic//com.ibm.websphere.wesb620.doc/doc/cdev_pgsca.html
Copyright IBM Corporation 2005, 2010. All Rights Reserved.
このインフォメーション・センターでは Eclipse テクノロジーが採用されています (http://www.eclipse.org)。