pr

システム連携の在り方を変える
SOA開発・実行プラットフォーム

 

 ソフトウェア開発ではそのごく初期のころから再利用が重要なテーマとなってきた。プログラミングではサブルーチン、ライブラリ、モジュール、コンポーネントなどの概念が導入され、実行環境においては共通機能を切り出してI/Oサブシステム、OS、ミドルウェアなどのソフトウェアスタック(階層)が積み上げられてきた。最近ではSOAが提唱され、“サービス”というレイヤーが追加された。

 これらはすべて重複開発を避けるための措置だ。複数のソフトウェアが同じような機能を持っている場合、これを独立したコンポーネントにして共通利用することでシステムの肥大化を回避し、メンテナンスポイントを最小化するわけだ。しかし、こうしたレイヤーが増えることのデメリットもある。

 まず、コンポーネント間のやりとりによるオーバーヘッドの発生がある。また、コンポーネントを再利用するためのテクノロジが数多くあると、エンジニアはそれらの仕様や規則をいちいち覚えなければならず、学習コストが増加する。

 さらに全体と部分の両方を見据えて、最適な設計を行うことは極めて高いスキルを要し、実際のシステム開発ではどうしても目の前の機能を実現するための単体システムで考えてしまう傾向がある。すると、後に他システムとの連携が必要になったときには別途つなぎ開発を行うことになる。

 今日のシステム開発では連携は繰り返し発生するため、こうした個別のつなぎ開発を続けていくとシステム全体の見通しが悪くなり、連携の整合性を維持するのが次第に困難になる。その結果、ちょっとしたプロセス変更が大規模なシステム改修になってしまう。

 こうした問題を解決するものとして、今回はインターシステムズのSOAプラットフォーム「InterSystems Ensemble®(アンサンブル)」を紹介しよう。

単一アーキテクチャで“4つのシステム連携”を実現

 SOA(サービス指向アーキテクチャ)は、システム連携の問題を解決する考え方として登場した。インターシステムズのEnsembleは、SOA=統合システムで一般的に見られる「データ連携」「BPM&ワークフロー」「複合アプリケーション」「BAM(ビジネスアクティビティ・モニタリング)」をサポートする。その最大の特徴は、これらを1つのアーキテクチャで実現している点だ。つまり、Ensembleの使い方を1回学習すれば、これらをすべて実現できるのだ。

Ensembleアーキテクチャ
Ensembleアーキテクチャ

 Ensembleはインターシステムズのオブジェクト指向データベース「InterSystems Caché®」を使って作られている。言語エンジンには永続データストレージ機構が組み込まれており、プログラミング言語とデータベースが1つのプロセスで動く。統合に必要な機能がオブジェクト・フレームワークとして提供されるので、首尾一貫した方法でSOAシステムの構築・運用が可能となっている。

 データ連携の機能は、一種のESB(エンタープライズ・サービスバス)として提供される。外部システムはEnsembleにアタッチするだけで相互に接続される。データのフォーマット変換やメッセージのタイミング調整などはEnsemble側で行う。

 異なるシステム同士の連携では一般にメッセージのタイミングを計ったり、障害が発生した場合の対策を講じるのはかなりの手間がかかる。例えば、キューイングを実現しようとすると、何らかの形でメッセージを持続する機構を構築しなければならない。障害対策ならばログを取得する機能を新たに組み込まなければならないかもしれない。

 Ensembleではその上を流れるメッセージは、すべて永続データとして扱われる。メッセージを最初から永続化(ディスクに保持)しているため、キューイングやバッファリングなどメッセージのタイミングを計るような機能を実現したい場合も比較的簡単に開発できる。システム間のやりとりで障害があった場合もディスクに記録されているメッセージをトレースすればよく、原因追究のための特別な機構を用意しなくてもよい。

ビジネスプロセス制御も同じ基盤から実現

 BPMやワークフローも同じテクノロジで実現する。ビジネスプロセスのルーティングや分岐ルールは、多くの場合XMLやファイルで管理するがこの方法だと管理が極めて煩雑になる。Ensembleではこれらのメタデータを内蔵する「組み込み永続データストレージ」で管理する。

 ビジネスプロセスのモデリングやフローを作成するためのツールも用意されており、ビジュアルにフローを定義できる。また、プロセス分岐などはルール(if-thenルール)で表現可能だ。Ensembleは、ここで定義したフローやルールなどのメタデータからコードを生成し、実行する。

画面
ビジネスプロセス定義画面

 BAMは、Ensemble内を流れるデータを常時監視し、その結果をダッシュボード画面にビジュアル化して表示する機能。販売金額や在庫数量など、ビジネス上のKPIが閾(しきい)値を超えた場合、即座にそれを知ることができる。これも永続データストレージ機構ゆえの機能だ。

PDCAサイクルによる改善を支援するBI機能「DeepSee」

 永続データストレージ機構は開発を行う際にも利点がある。プログラミングするとき、変換テーブル、メモリマップなどデータベースのようなものがあった方が便利な場合がある。またシステム間で状態情報を渡したいとき、シーケンシャルファイルで渡すか、パイプを使うか、あるいは共有メモリにするか、いろいろな実現方法があるがそれが統一されていないとメンテナンス性の低いシステムになってしまう。Ensembleならこれらを永続データという1つの仕組みで実現できるので、複合アプリケーションを作る場合も全体の構成が分かりやすいものとなる。

 データベースとしてのEnsembleの特徴としては、極めて柔軟なデータモデルを扱えることが挙げられる。欧米の医療界では標準的なメッセージ交換フォーマットである「HL7」を標準サポートしているが、これは非常に複雑なデータ構造を持つ。この柔軟性は他業種でも活かされるはずだ。

 さらにEnsembleは、組み込みビジネスインテリジェンス機能「DeepSee」をオプションで提供する。いくらSOAでビジネスプロセスを柔軟に変更できるといっても、その変更が効果のないものであれば意味がない。DeepSeeは、ビジネス効果を測定するためのデータウェアハウス/多次元分析機能だ。上述のBAMはある一時点におけるスナップショット情報を表示するものだが、DeepSeeはそれらの情報を時系列に蓄積して、いろいろな切り口での分析を可能にする。

 EnsembleはSOAプラットフォームとしては後発だが、それだけに一貫したアーキテクチャに則って、整合性の高い開発・実行環境を提供する。標準でメタデータリポジトリを備え、開発から運用まで一元的な構成管理が行えるのも魅力だ。“寄せ集め”ではない、真のシステムインテグレーションを実現するプラットフォームとして大いに注目したい。


関連リンク


提供:インターシステムズジャパン株式会社
企画:アイティメディア営業企画
制作:@IT情報マネジメント編集部
掲載内容有効期限:2009年11月25日