SOA!!!
Sun Tech Days で SOA 関連のセッションで紹介されていた BPEL など SOA
関連の技術が思っていたよりわかりやすかった。また、NetBeans 6 ではその
開発を補助する機能がそろっているという事でチュートリアルをみながら
試してみた。
以前、Axis を活用しようと思ったときに、XML Schema や WSDL の手書きに
ウンザリしたので、少し敬遠していたけれど、NB6 ではこれらのファイルも
IDE の管理下で作れるらしい。
チュートリアル概要
HelloWorld は単純すぎるので Loan のサンプルの概要を書いておく。
BPEL モジュールの作成
New Project > SOA > BPEL Module で作成できる。
- XML Schema の作成
サービス呼び出しの際に簡単な文字列をひとつ渡すだけであれば、これは
おそらく必要がない。実際には何らかのデータ構造を渡すことになるであろうし、
それには、それなりの型を持たすことがわかりやすい。そうするためには XML
Schema で complex type を定義することになる。
実際の操作は画面右側のパレットから Complex Type を Editor の Complex Types
のところにドロップすることで型が作れる。さらにそれぞれの型に Element icon
をドロップして要素を作っていく。
もうひとつ行うことは Complex Type を決めてから、それらをグローバルエレメントに
登録すること。やり方は Element icon を Editor の Elements のところにドロップ
して名前をつけて、Definition で Complex Types に作った型の名前をセットする。 - WSDL の作成
Process Files の下に WSDL document を作成する。独自の XML Schema を使う場合には
Import XML Schema File(s) チェックボックスをチェックして先に定義したものや、
ネームスペースを利用して、インポートできる。
次は Editor の Partner タブでメッセージの名前や、型を決める。In/Out の最低2つは
あるので、リクエストの名前をわかりやすいものに変え、型を決める。型はダイアログの
中から選ぶだけなので簡単。XML Schema をインポートしておけばその中で決めた型を
引数の型に使える。この際の型の名前は complex type の名前ではなく Elements に
登録した名前になる。IDE が選択肢を示してくれるので簡単だが、うろ覚えで手書きだと
とてもはまるかも知れない...
オプショナルで LoanProcessor EJB モジュールを作る。ユーザー情報をもとに Loan の
可否を判定する。必然的に Web Service のインターフェイスを持つことになる。
Web Service のフォルダを右クリックして Web Service を作れる。そのあと、その
Web Service を右クリックして Add Operation で操作を追加する。その際にパラメータも
定義する。結果として @WebService アノテーションを使った java ソースができる。
作成時に Session Bean にデリゲートすることもできるようだ。
本当に EJB じゃないといけないのかと疑問に思った。なぜなら EJB Container が
前提といわれると困るから。結果として、これは杞憂。できたのは本当にクラスを
まとめただけの jar ファイルだった。wsdl もこの時点では存在しない。 - BPEL process の作成
Process Files に BPEL Process を作るとフローチャートのような画面が現れる。
まずはここに入力として request の wsdl, Loan のチェックを行う web service
を登録する。後者に関しては wsdl は自動生成されるようだ。このステップは
モジュールのドラッグでできる。
この次のステップとして、receive, invoke, reply をパレットからドラッグして、
サービスと関係付けていく。プロセスの最初は、receive で始まる。リクエスト待ちの
先頭というわけだ。
Assign 要素で変数を作る。関連づけは BPEL Mapper でソースとデスティネーションを
つなぐだけだ。 - Composite Application の作成
別プロジェクトとして Composite Application を作る。この定義ファイルは *.casa.
この JBI モジュールとして、作成した BPEL module をドラッグ&ドロップで登録。
これに consumer としての SOAP アダプターを登録する。 - テストの作成、登録
composite application の Test folder にテストを作れる。リクエストのパラメータを
埋めるだけでテストになる。1回目の実行結果が正しい実行結果とされ、以後のテストと
比較される。結果を消す、クリアしてしまえば正しいテスト結果を変えられるということか? - JBI とは
NB6 の Composite Application が JBI の実装ということかなと思う。JSR 208 という
事だが、これには IBM, BEA は賛同していないらしい。BPEL まではいいが、その上は
まだ議論の余地があるということか....ということはこれらのベンダのBusiness Process
Integration は propretary ???
0 件のコメント:
コメントを投稿