![]() ![]() ![]() ![]() |
注意 : | ALSB コントロールは、WebLogic Integration の使用許諾を受けた場合にのみ、BEA WorkSpace Studio で使用できます。 |
ALSB コントロールを使用すると、Web サービスやビジネス プロセスから AquaLogic Service Bus (ALSB) プロキシ サービスを呼び出したり、セキュリティ コンテキストやトランザクション コンテキストの伝播をサポートしたりできます。
AquaLogic Service Bus ユーザーズ ガイド
ALSB コントロールを使用すると、RMI による Service Bus 転送がコンフィグレーションされた ALSB プロキシ サービスを、ビジネス プロセスから呼び出すことができます。また、Web サービス、リモート Web サービス、またはビジネス プロセスにリクエストを送信したり、それらからのコールバックを受信したりできます。
ALSB コントロールはサービス ブローカ コントロールを拡張したもので、サービス コントロールでサポートされる機能は ALSB コントロールでもサポートされます。サービス ブローカ コントロールの詳細については、「サービス ブローカ コントロール」を参照してください。
最初のステップは、ALSB コントロール ファイルの作成です。コントロールは、BEA WorkSpace Studio を使用して、対象のサービス (WSDL ファイル) から自動的に生成できます。また、BEA WorkSpace Studio の データ パレットの [コントロール] セクションにある [追加] 機能を使用して作成することもできます。コントロールのメソッドとコールバックは、対象のサービスのオペレーションとコールバックに対応しています。このコントロール ファイルのインスタンスは対象のサービスを呼び出すために親サービスで使用されます。また、対象のサービスからコールバックを取得するためにも使用されます。ALSB コントロール ファイルでは、対象のサービスがステートフルな場合は、開始メソッドに対してのみセレクタのアノテーションを設定できます。一方、対象のサービスがステートレスな場合は、どのメソッドに対してもセレクタのアノテーションを設定できます。
注意 : | 親プロセスと対象プロセスの両方を、同じプロトコルを使用するようにコンフィグレーションする必要があります。プロトコルの照合と有効化は自動的には処理されません。 |
新しい ALSB コントロールを作成して Web サービスまたはビジネス プロセスに追加するには、[コントロールの挿入 : ALSB] ダイアログを使用します。
注意 : | ビジネス プロセス (Process.java) を参照する ALSB コントロールを作成する場合、そのビジネス プロセスは現在の BEA WorkSpace Studio アプリケーション内になければなりません。 |
注意 : | デザイン ビューが表示されていない場合は、[デザイン] タブをクリックします。 |
新しい ALSB コントロールを作成するには、次の手順に従います。
[データ パレット] ビューが BEA WorkSpace Studio に表示されない場合は、メニュー バーから [ウィンドウ|ビューの表示|データ パレット] をクリックします。
[コントロールの挿入 : ALSB] ダイアログ ボックスが表示されます (図 13-1 を参照)。
[コントロールの挿入 : ALSB] ダイアログ ボックスが表示されます (図 13-2 を参照)。
動的なセレクタ クエリ ビルダを起動した場合は、以下の手順を実行して、クエリを構築してテストします。
TPM
] を選択します。ドメイン全体の DynamicProperties.xml
ファイルで指定した動的プロパティにルックアップ値をバインドするには、[LookupControl] を選択します。ドメインがアクティブでない場合にだけ、DynamicProperties.xml
ファイルを編集してルックアップ値を動的プロパティにバインドしてください。ドメインがアクティブな場合は、WebLogic Integration Administration Console を使用してルックアップ値をバインドすることをお勧めします。
WebLogic Integration Administration Console を使用してルックアップ値を動的プロパティにバインドする方法の詳細については、『WebLogic Integration Administration Console の使用』の「プロセス コンフィグレーション」(下記 URL から入手可能) にある「動的コントロール セレクタの追加または変更」を参照してください。
http://edocs.beasys.co.jp/e-docs/wli/docs102/adminhelp/processconfig.html
WSDL ファイルに ALSB バインディングがコンフィグレーションされていない場合は、[コントロールの挿入 : ALSB] ダイアログ ボックスが表示されます (図 13-5 を参照)。このダイアログ ボックスで以下を行います。
[既存のタイプが見つかりません] ダイアログ ボックスが表示されます (図 13-6 を参照)。
ALSB コントロールが作成され、[パッケージ・エクスプローラー] ペインに表示されます。コントロールのインスタンスも作成され、データ パレットに追加されます。
プロキシ サービスを使用して ALSB コントロールを作成するには、既存の ALSB プロジェクトが必要になります。
[コントロールの挿入 : ALSB] ダイアログ ボックスが表示されます。
[既存のタイプが見つかりません] ダイアログ ボックスが表示されます。
プロキシ サービスを使用して ALSB コントロールが作成され、ビジネス プロセス内 ([パッケージ・エクスプローラー] ペイン) に表示されます。コントロールのインスタンスも作成され、データ パレットに追加されます。
ALSB コントロールは、サービス ブローカ コントロールの拡張です。サービス ブローカ コントロールのアノテーションに加え、要件に応じて以下のアノテーションが追加で提供されています。
サービス ブローカ コントロールのアノテーションの詳細については、「サービス ブローカ コントロールのアノテーションに関する注意」を参照してください。
このアノテーションはマーカ アノテーションで、SOAP 1.1 over RMI をサポートする ALSB コントロールを指定します。このアノテーションは、クラス レベルでのみ指定できます。このアノテーションは、SOAP over RMI をサポートするために使用します。次に、このアノテーションの使用例を示します。
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE})
public @interface RmiSoapProtocol
{
}
注意 : | このアノテーションは、WSDL に基づいて自動生成されます。このアノテーションは変更しないようにしてください。このアノテーションを指定した場合、サービス コントロールでサポートされるアノテーション (HttpSoapProtocol 、HttpSoap12Protocol 、JmsSoapProtocol 、JmsSoapProtocol など) は指定できません。サービス コントロール アノテーション Location は省略可能です。サービス コントロール アノテーション WSDL は必須です。 |
このアノテーションはマーカ アノテーションで、SOAP 1.2 over RMI をサポートする ALSB コントロールを指定します。このアノテーションは、クラス レベルでのみ指定できます。このアノテーションは、SOAP over RMI をサポートするために使用します。次に、このアノテーションの使用例を示します。
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE})
public @interface RmiSoap12Protocol
{
}
注意 : | このアノテーションは、WSDL に基づいて自動生成されます。このアノテーションは変更しないようにしてください。このアノテーションを指定した場合、サービス コントロールでサポートされるアノテーション (HttpSoapProtocol 、HttpSoap12Protocol 、JmsSoapProtocol 、JmsSoapProtocol など) は指定できません。サービス コントロール アノテーション Location は省略可能です。サービス コントロール アノテーション WSDL は必須です。 |
このアノテーションは、SB シン クライアント API で必要になる RMI 関連パラメータを指定するために使用します。このアノテーションは、クラス レベルでのみ指定できます。このアノテーションは、SOAP over RMI、抽象 SOAP over RMI、抽象 XML over RMI をサポートするために使用します。次に、このアノテーションの使用例を示します。
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE, ElementType.FIELD})
public @interface SBTransport
{
String serviceURI();
boolean execute() default true;
String jndiURL() default “”;
表 13-1 は、SBTransport アノテーションのフィールドを示しています。
注意 : | このアノテーションは、必ず RmiSoapProtocol または RmiSoap12Protocol と一緒に指定します。サービス コントロール アノテーション Location は省略可能です。サービス コントロール アノテーション WSDL は必須です。 |
このアノテーションは、SB 転送にカスタム ヘッダを指定するために使用します。このアノテーションは、クラス レベルで指定できます。このアノテーションは、SOAP over RMI をサポートするために使用します。次に、このアノテーションの使用例を示します。
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE})
public @interface CustomHeader
{
String name;
String value;
}
表 13-2 は、CustomHeader アノテーションのフィールドを示しています。
注意 : | このアノテーションは、必ず RmiSoapProtocol または RmiSoap12Protocol と一緒に指定します。 |
このアノテーションは、SB 転送に複数のカスタム ヘッダを指定するために使用します。このアノテーションは、クラス レベルで指定できます。このアノテーションは、SOAP over RMI、抽象 SOAP over RMI、抽象 XML over RMI をサポートするために使用します。次に、このアノテーションの使用例を示します。
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE})
public @interface CustomHeaders
{
CustomHeader[] headers;
}
このアノテーションのフィールドは headers で、名前/値ペアの配列を表します。
注意 : | このアノテーションは、必ず RmiSoapProtocol または RmiSoap12Protocol と一緒に指定します。 |
このアノテーションはマーカ アノテーションで、RMI による抽象 XML メッセージの転送をサポートする ALSB コントロールを指定するために使用します。このアノテーションは、クラス レベルでのみ指定できます。このアノテーションは、抽象 SOAP over RMI および抽象 XML over RMI をサポートするために使用します。次に、このアノテーションの使用例を示します。
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE})
public @interface RmiXmlProtocol
{
}
注意 : | このアノテーションを指定した場合は、RmiSoapProtocol 、RmiSoap12Protocol 、およびサービス コントロールでサポートされるどのアノテーションも指定できません。SBTransport アノテーションを指定する必要があります。この場合、ALSB コントロール内にいかなるコールバック インタフェース (@EventSet アノテーション) も含めることはできません。 |
このアノテーションはマーカ アノテーションで、一方向のオペレーションを指定するために使用します。このアノテーションは、メソッド レベルでのみ指定できます。このアノテーションは、抽象 SOAP over RMI および抽象 XML over RMI をサポートするために使用します。次に、このアノテーションの使用例を示します。
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD})
public @interface OneWay
{
}
注意 : | このアノテーションは、RmiXmlProtocol が指定されている場合にのみ指定できます。 |
このアノテーションを指定した場合、それぞれのメソッド シグネチャは以下のようになります。
ALSB コントロールでは、ビジネス プロセス内のメソッド レベルで、トランザクション コンテキストの伝播がサポートされています。特定のメソッドのトランザクション コンテキストを伝播するか、あるいは Transactional
アノテーションを使用しないかを指定できます。このアノテーションでは、トランザクション コンテキストが伝播されない場合に備え、RMI 呼び出しのタイムアウトも指定します。
transaction
アノテーションは、コントロール レベルで指定した場合はコントロール内のすべてのメソッドに適用され、メソッド レベルで指定した場合はメソッド レベルで適用されます。
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE, ElementType.METHOD})
public @interface Transactional
{
boolean value() default true;
int timeout() default 60;
}
表 13-3 に、Transactional アノテーションのフィールドを示します。.
注意 : | このアノテーションは、必ず ALSB コントロールに定義されているアノテーションと一緒に指定します。このアノテーションを指定しない場合のデフォルトでは、トランザクション コンテキストが ALSB に伝播されます。 |
SBTransport
アノテーションの一部としてプリンシパルおよび資格を指定した場合は、それらの資格がリモート JNDI プロバイダでの認証に使用されます。セキュリティ コンテキストの伝播は、SBTransport
アノテーションの execute
属性に応じ、ALSB へのメッセージの転送中に以下の説明に従って発生します。
import com.bea.control.SbTransportControl;
import org.apache.beehive.controls.api.events.EventSet;
import org.apache.beehive.controls.api.bean.ControlExtension;
@SbTransportControl.SBTransport(serviceURI = "/MyAddProxy", jndiURL = "t3://localhost:7001")
@SbTransportControl.RmiSoapProtocol
@SbTransportControl.SOAPBinding(style = SbTransportControl.SOAPBinding.Style.DOCUMENT, use = SbTransportControl.SOAPBinding.Use.LITERAL, parameterStyle = SbTransportControl.SOAPBinding.ParameterStyle.WRAPPED)
@SbTransportControl.WSDL(path = "../requestquote/AddPro_proxy.wsdl", service = "AddPro")
public interface ALSBControl extends SbTransportControl
static final long serialVersionUID = 1L;
public int addNumbers(int num1_arg,int num2_arg);
/** このイベントは、onAsyncFailure イベントのサポートを提供するインタフェースを設定する。
public interface Callback extends SbTransportControl.Callback {};
public ALSBControl create(); }
![]() ![]() ![]() |