PEX ビジネス・サービス
ビジネス・サービスは外部システムと接続し、そこから受信アダプタを経由してメッセージを受信します。外部言語で記述されたすべてのプロダクション・コンポーネントに関する一般情報は、"ビジネス・ホストおよびアダプタの概要" を参照してください。
ビジネス・サービスの開発
外部言語でビジネス・サービスを記述するには、以下のいずれかのクラスを拡張します。
言語 | クラス |
---|---|
Java | com.intersystems.enslib.pex.BusinessService |
.NET | InterSystems.EnsLib.PEX.BusinessService |
Python | iris.pex.BusinessService |
ビジネス・サービスを実装する方法は、次の 3 通りあります。
-
アダプタを使用してビジネス・サービスをポーリングする — プロダクション・フレームワークがアダプタの OnTask() メソッドを定期的に呼び出します。このメソッドは、受信データをビジネス・サービスの ProcessInput() メソッドに送信し、それを受けて ProcessInput () メソッドはビジネス・サービス・コードが設定された OnProcessInput メソッドを呼び出します。アダプタからのデータを処理するには、カスタム・コードに ProcessInput ではなく OnProcessInput メソッドを実装する必要があります。
-
既定のアダプタを使用するビジネス・サービスをポーリングする — この場合、プロダクション・フレームワークは、データを指定せずに既定のアダプタの OnTask メソッドを呼び出します。次に、OnProcessInput() メソッドがアダプタの役割を実行し、外部システムにアクセスしてデータを受信します。
-
ビジネス・サービスをポーリングしない — プロダクション・フレームワークは、ビジネス・サービスを開始しません。代わりに、長時間実行されるプロセスか、定期的に開始されるプロセスのカスタム・コードが、Director.CreateBusinessService() メソッドを呼び出すことで、ビジネス・サービスを開始します。詳細は、"Director" を参照してください。
抽象メソッドの実装
PEX クラスを拡張した後に、ビジネス・サービス用に抽象メソッドを実装する必要があります。
アダプタを使用したポーリング・ビジネス・サービスを開発する場合、OnProcessInput() はアダプタから任意のオブジェクトを取り、任意のオブジェクトを返します。これらの任意のオブジェクトは、永続的である必要はありません。
実装する必要のある抽象メソッドの詳細は、"PEX API リファレンス" を参照してください。
受信アダプタの使用法
プロダクション内では、ビジネス・サービスは、受信アダプタを使用してプロダクションの外部のシステムと通信します。PEX ビジネス・サービスの開発時に、リモート・クラスに特殊なメソッドを組み込んで、ビジネス・サービスでどの受信アダプタを使用するかを定義できます。この受信アダプタとしては、PEX アダプタまたはネイティブ ObjectScript アダプタのいずれかを使用できます。
PEX ビジネス・サービスの受信アダプタを指定するために使用するメソッドは、getAdapterType() です。例えば、PEX ビジネス・サービスでカスタム PEX 受信アダプタを使用する場合、リモート・クラスに以下のようなコードを含めます。
public String getAdapterType() {
return "com.demo.pex.MyInboundAdapter";
}
public override string getAdapterType() {
return "Demo.PEX.MyInboundAdapter";
}
def getAdapterType():
return "demo.PEX.MyInboundAdapter"
PEX アダプタを使用する場合、getAdapterType メソッドで、アダプタの登録時に指定された ObjectScript プロキシ・クラスの名前を返す必要があります。既定では、このプロキシ名はリモート・クラスの名前と同じですが、カスタム名が定義されている場合があります。
リモート・クラスに getAdapterType を含めない場合は、標準の Ens.InboundAdapter アダプタがビジネス・サービスで使用されます。ビジネス・サービスでアダプタを使用しない場合、空の文字列が返されます。
ビジネス・サービスの使用法
PEX ビジネス・サービスのリモート・クラスの開発が完了したら、以下の手順に従って、ビジネス・サービスを相互運用プロダクションに統合できます。
-
[相互運用性] > [構成] > [Production EXtensions Components] に移動して、PEX ビジネス・サービスを登録します。詳細は、"PEX コンポーネントの登録" を参照してください。
-
プロダクションを開き、標準のウィザードを使用して、ビジネス・サービスを追加します。[サービスクラス] フィールドで、PEX コンポーネントの ObjectScript プロキシ・クラスを選択します。既定では、このプロキシ・クラスの名前はリモート・クラスの名前と同じですが、コンポーネントの登録時にカスタム名が定義されている場合があります。