疑問2:今さらだけどSOAって何のこと?
SOAとは、システムを「業務の視点」で、「受注」「顧客情報」「在庫照会」「商品発送」などの「サービス」 というシステム機能の単位に「部品化」し、これを必要に応じて組み合わせることで、急な業務の変更に対しても迅速かつ柔軟に、社内や企業間のシステム構築を行う仕組み、または手法のことだ。業務プロセスは、実行エンジンにサービスの実行順序を定義する形で実装する(プロセスの部品化についての解説は連載の第6回を参照)。
従来型のシステム構築においては、IT側やシステム担当者の都合で、業務システム全体の構造が決まってしまうということも少なからずあった。SOAでは、業務のユーザー側に理解されるような視点で部品単位に整理し、それを業務プロセスの視点で組み合わせて利用することがポイントとなる。
ただし、SOAは「アーキテクチャ」というだけあって、あくまでも情報システム構築側の考え方であり、一方のBPMはビジネス構築側の考え方という決定的な違いがある。両者は非常に密接な関係にありながら、明確な境界線が引かれているのである。
しかし、SOAがBPMにおけるIT側の仕掛けとして適切なものとなるよう、要素技術や標準仕様が整備されてきている。その一例が、BPEL(Business Process Execution Language、業務プロセス実行言語)だ。
BPELは、システム側の部品であるサービスをビジネスプロセスに従って記述・設計するための言語という側面のほか、ビジネスプロセス・エンジン(オーケストレーション・エンジン)と呼ばれる実行環境で、サービスの連携順序を記述し、実行するスクリプト言語としての側面も併せ持つ。また、WSDL(Web Services Description Language)と呼ばれる、Webサービスを記述するためのXMLをベースとした言語で、記述されたサービスの呼び出し、データの操作、障害通知、例外処理などの処理を結び合わせる。
このBPELという仕掛けと、業務視点でまとめられたサービス群をうまく活用することで、BPMのPDCAサイクルを回していく仕組みが整えられるのである。