Topics
Enterprise Architecture
初めてのWebLogic Event Serverアプリケーションの作成
Pages:
1,
2
図5に、HelloWorldイベント処理ネットワーク(アプリケーション)を構成するコンポーネントを示します。
図5:HelloWorldイベント処理ネットワーク
このアプリケーションには次のコンポーネントが含まれています。
以下に、
HelloWorldBeanのコードを示します。
public class HelloWorldBean implements EventSink {
public void onEvent(List newEvents) throws RejectEventException {
for (Object event: newEvents) {
HelloWorldEvent helloWorldEvent = (HelloWorldEvent) event;
System.out.println("Message Robin: " + helloWorldEvent.getMessage());
}
}
}
コード例2:HelloWorldBeanクラス
コード例2に示されているように、どのイベントハンドラも単純に
EventSinkインタフェースを実装する必要があります。次に、
onEvent()メソッドが呼び出されます。このメソッドがイベントの
Listを引数とすることに注意してください。これは、EPLステートメントでは関連するイベントオブジェクトを複数生成できるためです。ただし、このHelloWorldの例では、リスト内に1つのイベントのみを受け取ります。
イベントを生成する
HelloWorldAdapterは非常にシンプルです。300ミリ秒ごとにイベントを生成するメソッドを呼び出すだけにすぎません。
public class HelloWorldAdapter extends ActiveAdapter {
/* ... */
private void generateHelloMessage() {
List eventCollection = new ArrayList();
String message = this.message + dateFormat.format(new Date());
HelloWorldEvent event = new HelloWorldEvent();
event.setMessage(message);
eventCollection.add(event);
fireEvent(eventCollection, null);
}
}
コード例3:HelloWorldAdapterクラスからの抜粋
ご覧のように、メッセージの送信は単に、サブクラス
ActiveAdapterで
Eventインスタンスを作成し、それに値を代入してから
fireEvent()を呼び出すことで実行されます。
ソフトウェアが正常にインストールされたら、Eclipseで[File]->[New]->[Project]を選択し、[Event Server Application Project]を選択すると作業を開始できます(図6を参照)。
図6:WebLogic Event Serverプロジェクトの開始
これ以降のウィザードの操作は直観的に行うことができますが、詳細については、BEAソフトウェアに付属の EventServerToolingPreview.Getting.Started.Guide.pdfを参照してください。
ウィザードの手順に従って新しいアプリケーションの名前とTarget WebLogic Event Serverのランタイムを指定し、 さらに重要な作業として、[include the HelloWorld source code]ボックスを選択します。数秒後に、完全に機能するソリューションのデプロイ(公開)に必要なすべてのアーティファクトを備えた新規プロジェクトが、動的に作成されます。
この複合イベント処理ネットワークという新しい世界を自由に探訪していただく前に、Eclipse IDE Event Serverプラグインを使用して作成されるアーティファクトの一部を紹介し、推奨事項について少しばかり説明します。
図7:Eclipse IDEによる迅速なアプリケーション開発
[src]セクションに、Event ServerプロジェクトのJavaコードがあります(HelloWorldソースが表示されない場合、ウィザードで「helloworld」テンプレー トのオプションを選択してこのプロジェクトに追加されるようにしていないと考えられます)。作成したJavaコードを実装するには、まず helloworldBean.javaに移動し、必要に応じてイベントに関連するメッセージ出力を変更します。
[META-INF]セクションの[Spring]の下に、Application Spring Assemblyファイルがあります。ソリューションに含まれるさまざまなノードは、すべてここで結合されます。このファイルでは、強力なコード補完 IDE機能を使用して複合イベント処理ネットワークへの追加項目を作成できます。
最後に、[META-INF]セクションの[wlevs]の下に、EPL定義ファイルがあります。ここでは、数多くのステートメントとそれに関連する句を指定して、(1つ以上のアダプタ経由で)このアプリケーションに入力されるデータに対するクエリを実行できます。
アプリケーションの構築は非常に困難な場合があります。特に、WebLogic Event Serverの機能を詳しく知れば知るほど、EDAでOSGiバンドル、Springアセンブリファイル、EPN、その他の複数のコンポーネントを一緒に してナビゲートする必要があるため、楽ではありません。しかし、この最初のプラグインと、まもなく公開される進化した新しいIDE機能セットを使用すれ ば、開発者は新しいWebLogic Event Serverアプリケーションの動的な作成とデプロイを簡素化できるようになります。
この新しいJavaアプリケーションサーバとツールにより、BEAはアーキテクトや開発者に対し、効果的に機能するイベント駆動型SOAソリュー ションを一定のコストおよびインフラストラクチャの範囲内で配備できるような仕組みを提供しています。BEAは、IT部門が新しい種類のサービスやSLA を採用し、それによって収益を向上できるようにサポートします。EDSOAがあるとプロアクティブなオペレーションによって俊敏性が向上するため、組織は 競争力を強化できるとともに運用コストを削減できます。この独自の新しいランタイムとインフラストラクチャがあれば、迅速な開発が可能になり、市場投入ま での時間を大幅に短縮できます。
Robin Smithは、BEA SystemのWebLogic Time and Event Drive(TED)製品ファミリ担当のシニア エンジニアリング プロダクト マネージャです。