全体最適を支えるSOAミドルウェア
富士通は、早くからSOAの有用性に着目し、業務システムに適用できるミドルウェア製品の開発に取り組んできました。前回は富士通のエンタープライズ・サービスバス「Interstage Service Integrator」の特長を「連携性」「生産性」「信頼性」の3つの視点から説明しました。さらに今回は「Interstage Service Integrator」によるサービス連携の実践例をご紹介します。システム再構築において、ともすれば困難に感じられるのが既存システムとのサービス連携ですが、プログラムを変更することなく、わずかなステップで容易に実現できます。
[2008年10月27日掲載]
新規・既存を問わず、複数のサービス(アプリケーションやコンポーネント)を連携してSOAを実現するエンタープライズ・サービスバス(ESB)は、SOAの基盤となるミドルウェアです。富士通は国際標準インターフェースをはじめとする各種プロトコルに対応し、連携機能の充実に努めてきました。それが「Interstage Service Integrator」です。
システム間でやり取りされるメッセージ形式、プロトコルの差異やサービスの所在などを吸収。国際標準のSOAP、JMS(Java Message Service)などに準拠するとともに、OS環境やアプリケーション実行環境(J2EE、.NET Framework)などの違いを超えて、変化に強いシステム構築に対応できます。また、既存システムに多いCORBA、富士通の非同期通信機能であるMQDによる連携も利用でき、バッチ型システムとの連携もFTPによりサポート。既存システムのオープン化の際に懸案となるインターフェースの標準化についても、ESBを導入することで解決できるのです。

【図1 : サービス連携基盤の Interstage Service Integrator により、Webサービス、
各種パッケージ、既存システムなどを、SOAのサービスとして活用できる】
エンタープライズ・
サービスバス:
Interstage Service Integrator
統合開発環境:
Interstage Studio
サービスリポジトリ:
CentraSite
ビジネスプロセス・
マネジメント:
Interstage Business Process Manager Analytics
帳票設計・生成:
Interstage List Creator
「Interstage Service Integrator」を使ったサービス連携は、実はわずかなステップで可能となることも大きな特長の一つです。ここでは、図2の「現在の業務システム」を右側の「SOA適用後の新業務システム」に、「Interstage Service Integrator」を利用して再構築するケースを例に説明します。
既存システムは「受注管理システム」「物流管理システム」「売上管理システム」で構成されており、それぞれのシステム間でCSV形式の業務データをやりとりしています。今回は「受注管理システム」をSOA対応の新システム(「新受注管理システム」)に再構築します。再構築にあたっては、将来に渡って柔軟な連携が可能であることが重要です。そこで新システムのインターフェースは国際標準でもあるSOAPを採用、XML形式でメッセージ連携を行います。システム間連携の中核にはSOA基盤である「Interstage Service Integrator」を導入。これにより「新受注管理システム」側と既存の「物流管理システム」側のインターフェースの差異を吸収でき、既存システム側に手を加えることなく連携できるようになります。
システム再構築の考え方として、コストや構築期間などから投資効果の大きいシステムから順番にオープンシステムへ移行していく手法が採択されることがあります。そのような段階的なシステム構築をする場合には、1システムずつ、「Interstage Service Integrator」の機能を利用しながら再構築していきます。

【図2 : 再構築する業務システムの例】
では、実際にサービス連携に必要な作業フローを見ていきましょう(図3)。 まず「Interstage Service Integrator」にサービスを連携するためのメッセージの出入り口を作成します。この出入り口のことを「Interstage Service Integrator」では、エンドポイントと呼んでいます。エンドポイントには識別するために名前を付けておきます([1]エンドポイント定義の作成)。次にメッセージをどのように変換して連携先システムに渡すのか、その流れ(シーケンス)を定義します([2]シーケンスの作成)。今回の例では三つの段階に分かれています。最初にメッセージを加工・編集する順序を定義し([3]新規シーケンスの作成)、次にメッセージ形式の違いを吸収する変換方法を定義し([4]フォーマット変換定義)、最後に連携先システムへメッセージを送信する際の設定([5]送信先エンドポイント指定)を行います。これらの定義作成は「Interstage Service Integrator」の統合開発環境(Interstage Studio)を使って行います。
今回はサービス連携の中心となる定義作成の作業について説明しますが、実際にはこの後に、作成した定義を配備しテストを行い、課題や障害を解決したら実行のステップに移ることになります。

【図3 : 定義から実行までの作業フロー】
「エンドポイント定義の作成」では、サービスと「Interstage Service Integrator」を連携するための情報を定義します。受信側を「インバウンドエンドポイント」と呼び、メッセージの受信に用いるプロトコルや通信方式を定義します。送信側を「アウトバウンドエンドポイント」と呼び、相手先システムのインターフェースに合わせてプロトコルなどを定義します(図4)。

【図4 : エンドポイント定義の作成】
引き続き、「シーケンスの作成」を行います。シーケンスとは、受信したメッセージを指定した順に加工・編集し、連携する相手先のサービスに結果を送信する一連の流れのことです。今回作り直そうとしているシステムでは、新受注管理システムにSOAPインターフェースを採用することにより、メッセージの形式はXML形式になります。相手先システムは従来通り CSV形式ですから、受け取ったメッセージを「フォーマット変換(XML形式 → CSV形式)」することで連携できるようになります。変換後のメッセージを相手先のサービスに送信するには、「送信先エンドポイントの指定」を行います(図5)。

【図5 : シーケンスの作成】
まず「新規シーケンスの作成」を行います。ここでの特色は、メッセージの流れ通りに「Interstage Service Integrator」の連携部品(メディエータファンクション)を並べていくことでシーケンス定義を作成できる点です。図6のように、該当する連携部品をパレット(連携部品の一覧)からドラッグして作業画面上にドロップするだけです。今回のシステム再構築では、受信したXML形式のメッセージをCSV形式にフォーマット変換してから送信する必要があります。そこで1個目は、形式変換を行うための「Formatmanager部品」という連携部品をシーケンス上に配置します。2個目はCSV形式に変換されたメッセージを既存システムに今まで通りのプロトコルで送信するために「SendMessage部品」という連携部品を配置します。このように連携部品を選んで並べるという簡単なマウス操作でシーケンス定義を作成できることが「Interstage Service Integrator」の特長です。

【図6 : シーケンスの作成 - 新規シーケンスの作成 - 】
引き続き、最初に配置した連携部品「Formatmanager部品」のフォーマット変換を具体的に定義して、新システムと既存システムの間で交わされるデータ項目の対応付けをします。 入力側と出力側それぞれのデータ項目の各フィールド同士を一本の線で結ぶことでリンク付けができます。また出力側のデータ項目に対して1項目ずつ変換規則・加工ルールを登録することもできます。図7の例では、入力フォーマットとして新システムから受信するXML形式を、出力フォーマットとして既存システムへ送信するためのCSV形式を登録します。XMLは項目名が、CSVは1行目のデータがそれぞれ表示されています。ここで、XML形式のデータ項目と、CSV形式のデータ項目の両方をクリックで選択しリンクボタンを押すと、入出力の関係を示す線が引かれます。また、新システムと既存システムの商品IDの違いを吸収するために、商品IDというデータ項目に対して、ID変換の規則を登録します。これで、フォーマット変換定義は終了です。実行時の変換処理は「Interstage Service Integrator」で標準提供されている部品が行うので、プログラミングは必要ありません。

【図7 : シーケンスの作成 - フォーマット変換定義 - 】
続いて2個目の連携部品「SendMessage部品」には、相手先の既存システムへメッセージ送信を実施するための設定を行います。具体的には、相手先のシステムで定められているインターフェースに適合する送信先を指定するのですが、最初に行った「エンドポイント定義の作成」で作成しておいたアウトバウンドエンドポイントを一覧から選択するだけで指定できます。
ここで紹介したシステム再構築例では、「Formatmanager部品」と「SendMessage部品」の2つの連携部品(メディエータファンクション)を利用するだけで、新システムと既存システムとの連携を図ることができました。この他にも、「Interstage Service Integrator」には、幅広いシステムで利用できるよう、表1のように多くの連携部品が用意されています。
| 連携部品の名称 | 概要 |
|---|---|
| XML_Validation | XML形式のチェックを行う |
| XML_Operation | XML形式の要素の追加・変更・削除を行う |
| XML_Converter | XML形式間の変換を行う |
| Formatmanager | XML、CSV、FLATの形式変換を行う |
| XML_Emerger | XMLのメッセージからデータを取り出す |
| FLAT_Emerger | テキストからデータを取り出す |
| SendMessage | メッセージを他システムへ送信する |
| SoapGateway | Webサービスの呼び出し |
| ユーザメディエータファンクション | Java、C#などで開発したユーザプログラムの呼び出し |
| モニタリング | Interstage Service Integratorを通過するメッセージを監視する (注)別途、Interstage Business Process Manager Analyticsの導入が必要 |
| 帳票出力 | Interstage Service Integratorを通過するメッセージを帳票(PDF)に出力する (注)別途、Interstage List Creatorの導入が必要 |
国際標準インターフェースを採用した新システムと、既存システムを短期間で確実に連携する「Interstage Service Integrator」を利用した実践例、いかがでしたでしょうか。既存・新規を問わずシステム連携のためのプログラム開発に煩わされることはありません。業務やデータの流れに基づいて、ビジネスの視点でシステム構築が可能です。ご紹介したようにわずかな情報を設定することで素早く連携でき、効率良くSOAの実践を始めることができるのです。
第1回 業務プロセスを「見える化」し改善サイクルを加速する
[2008年7月22日掲載]
第2回 柔軟なシステム連携を実現するSOA基盤
- エンタープライズ・サービスバスの実力 -
[2008年9月19日掲載]
第3回 業務視点による段階的なシステム再構築
- Interstage Service Integrator 適用の実際 -
[2008年10月27日掲載]
第4回 メインフレーム業務はそのままに、オープン環境から活用
- SOA対応メインフレーム連携ソフトウェア「Interstage Host Access Service」 -
[2008年11月21日掲載]
第5回 マッシュアップで既存システムを活用したフロント統合を加速
- Interstage Interaction Managerによるユーザー利便性向上 -
[2008年12月17日掲載]
第6回 業務状況を監視・分析し、問題の早期発見と改善を支援
- Interstage Business Process Manager Analyticsによる業務プロセスの改善 -
[2009年2月2日掲載]
第7回 競争力を高める「タイムリーな情報活用」
- Interstage Data Effectorにより、現場の業務データ活用とコスト削減を実現 -
[2009年3月2日掲載]
エンタープライズ・サービスバス:
Interstage Service Integrator
統合開発環境:
Interstage Studio
サービスリポジトリ:
CentraSite
ビジネスプロセス・マネジメント:
Interstage Business Process Manager Analytics
帳票設計・生成:
Interstage List Creator
【ITpro掲載】
誤解の多いSOA導入
- 課題解決の糸口をたぐり寄せる -
Vol.1 : 富士通が導き出したSOA導入のベストパターン