マッシュアップ方式で行った検証内容
――マッシュアップ方式によるWebサービス開発の効率化ということですが、実際にはどのようなことを検証したのですか。
木津氏:検証の流れですが、MashupHubは、非常にビジュアルなインターフェイスで、マッシュアップするデータソースなどを選択したり、関連付けなどの操作ができます。後ほど詳しく説明しますが、SOAPに加えて、データベースのデータ、ActiveDirectoryのデータ、SQL、Accessのデータなども扱うことができます。この機能によって、弊社で稼働しているCIS、GISのWebサービスを組み合わせて新しいWebサービスを構築するというテストを行いました。CIS、GISのWebサービスの組み合わせだけでなく、先ほど述べた各種データソースを利用したWebサービスも構築しました。そのうえで、開発効率や効果の評価を行い、課題など問題点も洗い出しました。
――CIS、GISというのはなんですか。
木津氏:CISはCustomer Information Systemの略で、1,000万件の顧客情報を扱う東京ガスの基幹システムです。ガスの使用量、料金計算、請求などのアカウント管理が主な機能です。CISはリレーショナルデータベースで構築されています。GISはGeographic Information Systemの略になります。こちらは、東京ガスが管理する地中のガス管を調べるためのシステムです。住所等の位置情報からすべてのガス管の配置が分かるようになっています。位置を指定すれば、その周辺の地図とともにどのようにガス管が埋まっているかが分かります。保安、メンテナンス、営業活動の他、防災用の情報としても活用しています。
余談ですが、東京ガスでは1970年代のDEC社のVAXのころからGISの構築を行っており、現在、総延長でおよそ5万キロのガス管をGISで管理しています。
――そのCIS、GISを使ってどのような検証をされたのですか。
有川氏:まず、既存のWebサービスからXMLフィードを作成するサービスを作ります。先ほど木津が説明したGISはSOAPベースのWebサービスです。MashupHubはSOAPクライアントとしてGISと接続され、MashupHubのグラフィカルな機能でGISの情報をXMLでフィードするサービスを構築します。ここでは、既存のWebサービスの2つのメソッドを活用して、住所情報を入力すると、緯度経度をXMLフィードで返してくるサービスと、緯度経度情報を入力すると、周辺の地図画像のURLを返してくるサービスです。このサービスを1番としましょう。
続いて、データソースからXMLフィードを作成するサービスも作ります。こちらは、DBがRDBMSであるCISに対して、MashupHubがJDBCドライバで接続し、CISの情報をXMLフィード化させます。ガスのメータ番号を入力すると、設置されている住所情報を返すサービスです。これを2番とします。
今度は、MashupHubが作成したサービスを組み合わせて、文字通りマッシュアップサービスを作るという検証を行いました。先ほどの1番と2番のサービスなどを組み合わせたマッシュアップフィードを生成するものです。具体的には、ガスのメータ番号からその周辺の地図画像のURLを取得するというアプリケーションです。このメータ番号でCISから住所情報を得て、GISから緯度経度情報を取得し、さらに緯度経度情報から地図画像のURLを得るというものになります。
もう1つ、CISとGISを組み合わせてマッシュアップフィードを作成しました。具体的には、住所と周辺半径のメートル数を入力すると、範囲内にあるメータ番号をすべて返してくるというサービスで、文字情報主体のCISにGISのエリア検索機能を付加することにより実現したサービスです。このサービスも、これまで構築したXMLフィードを利用して構築することができます。
検証結果と今後の課題
――かなり複雑な処理のようですが、実際どれくらいで開発できたのですか。
有川氏:MashupHubはGUI形式で必要なデータソースやサービスを選んで、必要なカラムの編集、データの整形なども指定できます。また、SQLなども記述できるのでクエリ―の結果をフィードさせることも可能です。意外と細かい処理が可能で、今回、CISの問い合わせサービス、GISからのフィード作成などはそれぞれ5分、両者を組み合わせる作業が10分と、合計20分程度でいま説明したメータ番号から地図URLを取得するアプリケーションが構築できました。
――最後に、結果の評価と今後の課題についてお願いできますか。
有川氏:データベースやWebサービスの間にMashupHubが介在してくれるので、SOAPの細かいプログラムやJDBCのプログラムなど作成する必要がありませんでした。この点は開発効率に影響していたと思います。開発生産性は大幅に向上したといってよいと思います。有用性という面では、さまざまなRDBMSと簡単に接続でき、さまざまなWebサービスを構築できるということは、既存のリソースやレガシーシステムを活用する、再利用するという部分で効果が期待できると思っています。
課題については、検証しているときに、Webサービスの配列パラメータに対応していないことに気がついたのですが、サービスを構築するにあたり配列などで大量のデータのやりとりができると、さらに適用範囲が広がると思いました。IBMによれば、配列パラメータ対応は進めているとのことでした。
細かい点では、フィードされるXMLの一部が条件によってエスケープされてしまうという障害がありました。これについては、IBMが調べてくれて、問題点を修正してくれました。本社のエンジニアも協力してくれたようで、対応モジュールの提供を受けました。
あと、エンタープライズ用途ということで、セキュリティは重視しなければならないと思っています。MashupHubで作成したXMLフィードはブラウザさえあれば、データの中身が見えてしまうので、特にセキュリティに注意を払う必要があります。現状でもWAS(WebSphere Application Server)を利用したユーザー認証があるので、内部的な利用ならばある程度のセキュリティは担保されていました。IBMによれば、次のバージョンではIP認証にも対応予定があるそうなので、これも期待したいと思います。
――本日はどうもありがとうございました。