Articles
SOA/BPMの現場から - 日本のお客様事例 -第1回 SOAと4つのソリューションパターンとその効果日本オラクル株式会社 テクノロジーコンサルティング統括本部
十川 亮平(そごう りょうへい) 目次序文自己紹介日本オラクルのTechnology Architectコンサルティング部SOA/BPMチームという部署に所属しています。 コンサルティング部という部署名ではありますが、上流工程だけではなく、SOA/BPMといった領域で実際にシステム設計/開発を行っています。本稿はOracle Direct Seminarで行ったセミナー「SOA最前線!!現場コンサルタントが語るSOA開発の本当のトコロ」を加筆したものであり、これまでの私の所属するSOA/BPMチームでの実績と経験から、SOAを適用したシステム開発の現場について書いておりますので、偏りがあるかも知れませんがご了承下さい。 SOAは死んだのか?2009年の年明けは、"SOA is Dead; Long Live Services" (注)(SOAは死んだ。サービスは永遠に。)でSOA関係のブログは盛り上がりました。確かに一時期のSOAブームは去り、SOAという言葉は、バズワードの代表の様になっています。 皆さんの中にも、キーワードは良く聞くものの、実際にSOAが使われている現場はあるのか、ちゃんと効果はでているのか、と疑問をもたれている方は多いのではないでしょうか。 私は4年ほど前から、SOA技術者としてお客様のプロジェクトに参加させていただいていますが、3年前と現在のプロジェクトを比較してみて、次のようなことに気がつきました。
では、SOAはもう終わったのかというと、私はそうではないと考えています。 最近のプロジェクト現場での傾向以前のようにSOAの標準化プロジェクト、全社SOAプロジェクトといったものも一定数ありますが、3年前と比較しても、顕著に増えているという印象はありません。これは、全社を挙げてSOAに取り組もうというトップの意思があり、そのような体制を取れる企業ばかりではないということかも知れません。 一方、ここ1、2年で特徴的なのは、生産管理や契約処理のような一般的なシステム開発のなかにSOAの考え方が入っているケースが多くなってきているということです。 例えば、次のようなSOAの考え方はSOA以前からも存在していたと思います。
しかし、納期、コスト、設計者の経験、既存システム等の要因により、実践できていない、またはそのような考え方があることも知らなかったというシステム開発の現場も数多くあったでしょう。それが、近年のSOAの認知度の向上により、より多くのシステム開発の場でSOAの考え方が取り入れられたと考えます。 SOAは死んだのか?に対する私の意見は、「SOAというキーワードは終わったのかも知れません。しかし、Service Oriented Architectureという設計の考え方は実際システム開発の現場で使われている」ということです。 それでは、実際にどのようなプロジェクトでSOAの考え方を取り入れ、どのような効果があったのかを次の章から見て行きたいと思います。 SOAと4つのソリューションと実際のメリットどのような案件が多いかこれまで私たちのチームが参画したプロジェクトは様々な要件、機能を持ちますが、パターンに分類して、それぞれを考察してみたいと思います。 多くのプロジェクトは次の4つの要素を持つことが多く、パターンの概要はこのようになります。
次に、それぞれのパターンを持つシステムにおいて、お客様がどのような課題を解決したかったのか、活用した技術要素、システムを構築する上での注意点の3つを実際の事例で見て行きたいと思います。 システムフローパターンこの事例は、公共のお客様が顧客の受付業務をワークフロー化したシステムです。 お客様の課題
これらの課題に対して、BPEL (注)を用いて、受付から各種個別のシステムと連携を行いながら業務処理を進めることで、利用者の登録は受付時のみで、その他の作業を自動化することができました。 注: BPEL(Business Process Execution Language)
実行可能な業務プロセスを記述できるXMLベースの言語 Oracle JDeveloperのようなGUIで定義可能な開発環境と、BPELで定義したプロセスを実行可能な実行エンジンが提供されている 技術要素
設計する上での重要な考慮点業務プロセスからサービスを定められた順番で呼び出していくため、設計時に処理の順序保証、並行処理が可能かなど、プロセス内での各サービス実行の特性を考慮する必要があります。 また、このようなフローを内包するようなシステムでは、一般的にWebアプリケーションと比較すると、1つの業務プロセスが実行され始めてから完了するまでが長期間になります。そのため、業務時間外に業務プロセスの変更を実施する場合でも、古いプロセス定義で実行中のものが大量にあるという状況が有り得、次のようなポイントを要件検討のタイミングから考慮しておく必要があります。
ヒューマンワークフローパターン2つめの事例は、全国に支店を持つ金融業のお客様におけるワークフローのシステムです。 お客様の課題
このシステムでは、システムフローと人間系の承認フローを組み合わせたヒューマンワークフローをプロセスとして定義し、順序性を管理することで業務の人/支店ごとの独自ルールから全社で統制の取れた業務プロセスへと業務改革が行われました。特に、あるべき業務プロセスを検討し、業務のやり方を変えるための道具としてこのシステムが構築されたところに意味がありました。 また、ワークフローを導入することで、タスクがシステム上で管理され、紙書類の移動によるボトルネック解消と、滞留がどこで、どのくらい発生しているのかを可視化することができました。 技術要素
注:EPC、BPMN
いずれも業務フローをモデリングするための記法を定めたものです 設計する上での重要な考慮点人間系の業務をシステム化する場合、案件の承認、回付に関するルールや要件(多段階承認、差し戻し、職制情報との連係など)を十分に分析し、明確化する必要があります。これはシステム構築時のみではなく、運用後の人事異動、部署の新設/廃止も含めて事前に検討しておかないと、業務の変化にシステムがついていけないということにもなりかねません。 また、現状の業務をそのままシステム化するのではなく、手順や規定などの業務プロセスの見直しと、システム化の両方を検討することが重要です。 これらに加えて、業務の順序性、業務が開始されてから終了するまでの時間が長い点はシステムフローと同様ですので、検討しておく必要があります。 メッセージ連携基盤3つめの事例ですが、多くのグループ会社からなる交通・サービス業のお客様におけるメッセージ連携のシステムです。グループごとにシステムが存在するため、非常に連携する対象が多く、各システムが使用するID、コード値なども統一されていないというところがポイントでした。 お客様の課題
技術要素
設計する上での重要な考慮点このようなメッセージ連携では、連携本数がかなり多くなる傾向があります。そのため、次の2点を考慮しながら共通化を進めることで、開発生産性、メンテナンス性を高めることが重要です。
また、仕分け情報や生産管理の情報の中には、メッセージの順序性が大きな意味を持つものがあります。順序性の保証は一般的にスループットの低下を伴いますので、プロジェクトの早期で確認を行う必要があります。 次にデータのサイズですが、開発生産性が高いからといって、画像、データのレプリケーションのような情報をメッセージ連携基盤上に流すことの必要性が本当にあるのかは、十分検討してみて下さい。私は、メッセージ連携基盤はメッセージを配布するためのもので、データを受け渡しするためのものではないと考えています。逆にそれが発注情報のようなメッセージであれば、実態はファイルやデータベースのレコードであっても、メッセージ連携基盤を介して他のシステムに連携されるべきだと思っています。 大きなデータはOracle Data IntegratorのようなWebサービスのインターフェイスを持つETLツールを業務プロセスの中から呼び出すことによる連携や、ファイルをシステム間で共有してアクセスできる場所に配置し、その場所・URLをメッセージとして連携することで解決可能です。 画面統合お客様の課題
技術要素
設計する上での重要な考慮点画面アプリケーションから利用効率性を考えると、画面からの処理要求の粒度を考慮した、ビジネスロジックのサービスとしての切り出しが必要となります。 また、画面統合パターンは他のパターンと異なり、参照系の画面も対象とするため、高トランザクションと高レスポンスを求められます。 SOAにより得られた効果これまでの4つのパターンを実装するのに、SOAの考え方はなくとも構築はできます。ここでは、SOAの考え方を取り入れることでどのような効果があったのかという点を見て行きたいと思います。 業務プロセスの可視化と制御システムフローパターンとヒューマンワークフローパターンの事例では、BPELという言語を使用して業務上の条件分岐、例外業務も含めて複数の部門をまたがる業務プロセスを定義しました。これにより、業務プロセスを可視化することができました。 これまでシステム連携の進化の過程においては、バッチ的な連携方式から、MQ、JMSなどのメッセージング基盤による連携方式が採用されるようになり、リアルタイム性向上、メッセージ保証やルーティングの機能が基盤として用意されるようになりました。 BPELは、このような業務フローを定義するために元々作られた言語であり、BPMNなどの業務フローを記述する仕様とのマッピングがある程度事前に考えられていたり、BPELで記述されたプロセスをビジュアル的に表すツール類が各社から用意されているという特徴があります。 業務フローの改善、効果の評価を繰り返すBPMプロジェクトは、実行可能なプロセスを定義できるBPELと相性が良く、効果が出やすいといえるでしょう。 業務プロセスの個別システムI/Fからの開放同じくシステムフローパターンと、ヒューマンワークフローパターンで紹介したプロジェクトでは、アーキテクチャにESBを採用することで、業務プロセスの実装は個別システムごとのプロトコルを意識させない構成を採りました。この事例ではBPELで実装した業務プロセスは個別システムのOS、実行基盤、プロトコルが何であろうと、WebサービスまたはJMSのインターフェイスのみを対象として連携すればよく、結果として開発コスト、運用コストを下げるメリットがありました。 ワークフローは複数の部門をまたがって行われるケースが多いため、必然的に各部署に存在する様々な基幹システム、データベースなどのデータソースと連携する必要があります。 また、既存システムは定期的な改修、リプレースが行われることが想定されていたため、今後、既存システムに改修がある度に、このコストメリットが得られます。 サービス横断の機能提供による関心の分離ESBを適用した構成では、システム間の連携がESBを介して行われます。そのため、次のような運用系制御をESBが提供することで個別システムがそれぞれに実装する必要がなく、開発工数の圧縮と、個別システムの開発チームに依存しない品質を保つことがメリットとして得られました。
まとめここまで読んでいただいたように、これらの4つのパターンを含むシステムでは、SOAの考え方を採用することでメリットを得やすいと考えています。 最後に、SOAプロジェクトのポイントをおさらいしたいと思います。
SOAとは特別なシステムのためにあるものではなく、今、皆様が関わっているプロジェクトにも有効でありそうということがお分かりいただけたでしょうか。 製品/技術情報
日本オラクルのコンサルティングサービス部門(Oracle Consulting Service Japan [OCSJ])の中で、テクノロジーコンサルティング統括本部では、約200名 のコンサルタントが年間約200プロジェクトでテクノロジー製品全般に関する支援を行っています。 支援対象のシステムには、本稿で紹介したBPMの業務改善プロジェクト、SOAのシステム設計のほか、Oracle WebLogic Server/Oracle データベースを使ったシステム基盤に求められる高可用性、大規模システム、新機能実装システムなどが数多く含まれており、これらシステムの実践的な構築スキルやノウハウを日々蓄積しています。企業システムにおける最適な戦略の企画・策定から、迅速なインプリメンテーション、安定稼働まで、日本オラクルのコンサルティングサービスは、お客様特有のニーズを満たしたサービスを提供します。 日本オラクルのコンサルティングサービスに関するお問い合わせは、 Oracle Direct 0120-155-096 まで。 "SOA/BPMの現場から - 日本のお客様事例 -" インデックスに戻る
|