【レポート】

Oracle OpenWorld Tokyo 2006 - SOA実現の鍵"BPEL"テクノロジー徹底解説

杉山貴章  [2006/03/01]

3月1日から3日までの3日間、Oracleは東京国際フォーラムにおいてOracle OpenWorld Tokyo 2006を開催している。初日に実施された「SOAエンジニア必見! BPELテクノロジー徹底解説」と題されたセッションでは、Webサービス規格であるBPEL(Business Process Execution Language)に関する技術的な解説が行われた。講師は日本オラクルでテクノロジ・エバンジェリストを務める佐藤直生氏。

OracleはBPEL仕様に準拠したBPM(Business Process Manager)製品として「Oracle BPEL Process Manager」をリリースしており、セッションもOracle BPEL Process Managerによるスクリーンショットやデモを交えながらの解説となった。なおOracleはSOAを実現させるためのソリューションとしてミドルウェア製品群「Oracle Fusion Middleware」を構成しているが、Oracle BPEL Process Managerはそのビジネスプロセス・オーケストレーションのパートに位置づけられており、SOA実現のための不可欠な存在となっているという。

BPELはもともとBPEL4WSと呼ばれていたワークフローを記述するための言語仕様であり、現在はWS-BPELとして標準化団体OASISによって仕様の標準化が進められている。BPELでは、Webサービス記述言語であるWSDL(Web Service Definition Language)で記述されたインタフェースを利用して複数のWebサービスを連携させることで、様々なプロセスのワークフローを表現することができるようになっている。現在主に使用されているバージョンはIBMやマイクロソフト、BEAシステムズなどによって提案されたBPEL 1.1で、OASISではそれを元にBPEL 2.0としてBPELの標準仕様が検討されている。

佐藤氏はまず上記のようなBPELの概要を簡単に紹介した上で、BPELの詳細を主に次の5つの項目に分類して解説した。

  1. メッセージ交換の基本パターン
  2. プロセスフォルト
  3. 補償(補正)
  4. イベント処理
  5. 非同期メッセージ間の相関

まずメッセージ交換について、WSDL 1.1仕様ではメッセージ交換パターン(MEP: Message Exchange Patterns)として一方向(One-way)、要求/応答(Request-response)、送信請求/応答(Solicit-response)、通知(Notification)の4種類があることに言及した。それに対してBPELでは一方向、要求/応答(同期型)、そして非同期型というMEPが定義されているという。この非同期型のパターンがBPELの特徴で、これは一方向型のメッセージを2つ組み合わせることで実現されている。例えば要求の受信に対して応答を送信するまでに大きなタイムラグがあるケースや予期しないエラーに対する例外処理などは、従来の同期型メッセージでは実現が難しかった。BPELは非同期型パターンを採用することでよりスマートにサービスの結合を記述できるようになっている。

BPELではメッセージ交換はinvoke、receive、replayなどのアクティビティによって動作する。実際のプロセス定義はXMLで記述することになるが、佐藤氏はこれをOracle BPEL Process Desinerを使用して作成するデモを見せてくれた。Oracle BPEL Process Desinerは同社のIDE"JDeveloper"にプラグインとして付属するツールで、同期型や非同期型のBPEL、WSDLをマウス操作によって自動的に生成することができるという。その他、各種アクティビティもウィザードを使用して容易に記述することができる。

BPELプロセスフォルトとはいわゆる例外処理のことで、BPELではサービスの同期呼び出し、BPELサーバやネットワークの障害などでフォルトが発生する可能性がある。フォルトの送信は同期型プロセスのリプライや非同期型プロセスのコールバックとして行われ、BPELフォルトハンドラによって処理される。

補償(補正)とは実行済みのアクティビティの影響を取り消すため、いわゆるロールバック機能である。これを実現するトランザクション・モデルにはACIDモデルと補償モデルの2種類があるという。特徴的なのは補償モデルで、実行済みのアクティビティそのものを取り消すのではなく、取り消すための処理を行うトランザクションを新たに実行することで補正を実現するらしい。セッションでは、補償(補正)についても補償ハンドラを定義するデモが行われた。

イベント処理では、BPELにはメッセージ・イベントとアラーム・イベントという2種類のイベントがあることが説明された。BPELではメッセージの着信をイベント発生とみなし、それを処理するためのアクティビティが用意されている。

メッセージの相関とは、プロセス間のステートフルな対話を実現するためのメカニズムで、非同期メッセージを適切なインスタンスに配信するために使用される。この処理はWS-Addressingプロトコルを通じて自動的に行われるという。

セッションの最後に、Webサービス呼び出しを行うためのフレームワークであるWSIF(Web Services Invocation Framework)と、OASISで仕様策定中のBPEL 2.0について簡単な紹介が行われた。WSIFはBPELと直接関係しているわけではないが、SOAPを使用しないでWebサービス以外のリソースへアクセスする手段を提供するため、プロセス統合のためには重要なフレームワークである。なお、現在のBPELではヒューマン・ワークフローまではサポートしておらず、BPEL 2.0でもその予定は無いという。ヒューマン・ワークフローについては、ビジネスプロセスにヒューマン・タスクを埋め込む拡張としてBPEL4Peopleが公開されている。

1時間のセッションにしては非常にボリュームのある内容であったが、BPELが実世界のプロセスを適切にモデリングできる言語であることを実感することができた。



IT製品 "比較/検討" 情報

転職ノウハウ

あなたが本領発揮できる仕事を診断
あなたの仕事適性診断

シゴト性格・弱点が20の質問でサクッと分かる!

「仕事辞めたい……」その理由は?
「仕事辞めたい……」その理由は?

71%の人が仕事を辞めたいと思った経験あり。その理由と対処法は?

3年後の年収どうなる? 年収予報
3年後の年収どうなる? 年収予報

今の年収は適正? 3年後は? あなたの年収をデータに基づき予報します。

激務な職場を辞めたいが、美女が邪魔して辞められない
激務な職場を辞めたいが、美女が邪魔して辞められない

美人上司と可愛い過ぎる後輩に挟まれるエンジニアの悩み

人気記事

一覧

イチオシ記事

新着記事

女性起業家を支援する都市、総合1位はNY - 東京は?
[07:30 6/29] マネー
脳神経外科医が貯蓄方法を提案! 『そのお金のムダづかい、やめられます』
[07:30 6/29] マネー
【レポート】マイカー or レンタル or シェアリング、一番お得なのは?
[07:30 6/29] マネー
【連載】1コマ漫画 ホモサピエンス取扱説明書 第699回 殺意のベクトルを間違ってはいけない
[07:30 6/29] 趣味
正しいサイコロはどれ?自分自身で気付いていない“潜在能力”をチェック
[07:00 6/29] エンタメ

求人情報