近年、アプリケーションやソフトウェアコンポーネントの機能をサービスという観点で捉える「ソフトウェアサービス」[1,2]の考え方が注目を集めている。インターネット上のソフトウェアサービスはWebサービス[11]とも呼ばれ、サービス定義、登録、探索、結合、メッセージング技術などと共に急速に広まっている。
従来の考え方が実装言語やプラットフォームを強く意識したものであったのに対し、ソフトウェアサービスにおいては、言語やプラットフォームとは独立に、一段抽象度の高いところでソフトウェアの機能を捉える。このため、ソフトウェアサービスに基づく技術を用いれば、さまざまな言語やプラットフォームが混在するオープンなネットワーク環境において、分散したソフトウェア間でデータを交換したり、機能を統合したりすることが可能となる。
インターネット上には既に無数のソフトウェア機能が提供されおり、これらをソフトウェアサービスの考え方によって扱うことができれば、多くの新規機能は既存の機能(サービス)の組合せによって構築可能となる。例えばアグリゲーション・サービスなどは、既存のサービスを組み合せて新規サービスを提供する典型的な例である。
ソフトウェアサービスでは、ひとつひとつのサービスをビルディングブロックと捉え、これらを簡単に組み合せて大きなサービスを構築することを目指す。インターネットのように、オープンで変化の激しいネットワークにおいては、独自の環境上に全てのソフトウェアを時間と労力をかけて構築するのは現実的でない。ソフトウェアサービス技術を用いて新規サービスを短期間で安価に構築し、運用後も客先ニーズやビジネスモデルの変化、環境の変化などに合わせてダイナミックに構成や機能を変更できることが重要である。本章では、エージェント技術を用いたソフトウェアサービスの考え方、事例などを紹介する。
ソフトウェアサービス、Webサービスをインターネット上で実用化する際の課題には以下のものが挙げられる[1]。
(1) 企業間サービス連携: ERP (Enterprise Resource Planning) や SCM (Supply Chain Management) といった業務アプリケーションを企業間で運用する企業間アプリケーション連携 (EAI; Enterprise Application Integration) のニーズが高まっている。このためには、各社が独自に行なう体系化、用語定義、業務フローの違いをうまく吸収する仕組みが必要である。また、ファイヤウォールを超えた処理をセキュアに行なう高度なセキュリティ技術、広域でのトランザクション処理技術も必要となる。
(2) 環境変化への対応: インターネット上では常にネットワーク構成、利用環境、コンテンツやサービス内容がダイナミックに変化し続けている。ソフトウェアサービスは、これらの変化に俊敏に対応できる必要がある。
(3) 真のオープン化: これまでのクライアント/サーバモデルや分散オブジェクトモデルのように、あらかじめ役割を決めてソフトウェア機能を作り込む方法では、オープンな環境におけるサービスの構築は難しくなる。既存、新規を問わず、さまざまなソフトウェア間で柔軟に役割を分担できる仕組みが求められる。
(4) 多様なビジネス形態の支援: ユーザニーズやビジネスモデルの変化によって、ソフトウェアに求められる機能は頻繁に変化する。ユーザの趣味・嗜好に合わせて柔軟に処理を変更する仕組み、ビジネスフローを変更する仕組みが必要となる。
ソフトウェアサービスの考え方を具体化した代表例はWebサービスである。XMLやSOAPといった技術をベースに、Webサービスは急速に広がりを見せている。本節では、Webサービスを支える要素技術をサーベイする[1,2,11]。
CORBA (Common Object Request Broker Architecture) [13]のIDL(Interface Definition
Language) における既存オブジェクトのメソッド変換のように、既存アプリケーションが提供するインタフェースを呼出し形式のみ共通化してそのままの粒度で呼び出す方法では、同様の機能を有する異種アプリケーションを連携させる場合に、異なる呼出し方法・手順を使い分けなければならない。これに対しBee-gentでは、エージェントラッパーが既存アプリケーション独自のAPIを隠蔽し、ACLによる抽象度の高い共通インタフェースを提供する。これにより、モバイル仲介エージェントは、既存アプリケーション固有のアクセス方法を意識することなく、それらを連携させるロジック(連携ロジック)を記述でき、アプリケーション連携による新規サービスの構築や変更が容易となる。図3.2-2にエージェントラッパーが提供するインタフェースの例を示す。図の右側のモバイル仲介エージェントは、REQUESTという共通の通信行為によって異種アプリケーションに対して要求を伝えている。この要求は、それぞれのエージェントラッパーにおいて、アプリケーション固有の呼出し手順に変換される。
Bee-gentのエージェントラッパーは、モバイル仲介エージェントから受け取る要求メッセージに対して、連携ロジックとは独立な自律的対処も行なえる。これにより、エージェントラッパーが多数の要求に対する優先度処理を行なったり、要求の拒否を行なったりすることが可能となる。さらに、要求に情報不足や不明確な部分がある場合などには、単純なエラー処理を行なうだけでなく、対話によって補足的な情報を得ることも可能となる。
モバイル仲介エージェントはモバイルエージェントであると同時に、XML/ACLのリモート通信機能も有する。そこで、エージェントが相手先に移動してローカル通信を行なう方式とエージェントが移動せずにリモート通信を行なう方式を使い分けることで、ネットワーク環境に合わせて効率的な連携処理を行なえる。例えば、特定のアプリケーションとの対話が大量に行なわれる場合には、モバイル仲介エージェントをアプリケーションが稼動中のホストに移動させ、通信負荷を減らすことができる。逆に、対話が少ない場合には、リモート通信によって対話を完了させれば、モバイル仲介エージェントが移動する負荷を発生させずに済む。Bee-gentにおいては、XML/ACLのローカルな通信とリモート通信を動的に切り替え可能なため、状況に応じてダイナミックに動作を変更できる。
また、エージェントラッパーを既存アプリケーションと同一ホストに構築できない場合は、異なるホストにエージェントラッパーを配置し、エージェントラッパーと既存アプリケーション間を専用プロトコルで結ぶことも可能である。これにより、他者が管理するインターネット上のアプリケーションを連携させたり、レガシーシステムを連携させたりすることも可能となる(図3.2-3)。
本節では、Bee-gentを用いたサービス連携の事例として、電子カタログエージェントシステム[6,8]を紹介する。
3.2.6.1 電子カタログサービスの課題
近年、企業間電子商取引が盛んになるにつれ、製品や部品の取引情報の電子化、およびネットワークを通じた流通へのニーズが高まっている。その中で、電子化された製品や部品のカタログ情報、いわゆる電子カタログについては、コンピュータで可読なデータ形式の国際標準規格がISO13584、あるいはPLib(Parts Library) として、ISOにより策定されている[21]。このように、系列取引などの従来の枠組みを超えたオープンな取引環境への期待が高まっている。しかし、PLib標準に基づいた電子カタログサービスのネットワークを通じた流通を実現するに当たっては、以下のような問題が存在する。
・多数の電子カタログDBに対する処理: 電子カタログサービスの利用においては、多様な検索・収集・登録要求に基づいて、ネットワーク上の多数の電子カタログDBを操作する必要がある。これらの操作をすべて人手で行なうのには多大なコストがかかる。自動化する場合も、多種多様な要求を扱うシステムを構築するコストが大きなものとなる。
・多種多様なシステムの扱い: オープンな取引環境実現のためには、ネットワーク上の各電子カタログDBについて、問合せ言語やプロトコルなど、さまざまな異種 DB インタフェースを扱う必要がある。このような多種多様なシステムを統合的に利用するのは困難である。
・頻繁に発生する変更への対処: オープン性のために頻繁なシステム構成の変更が発生する。そのような変更に対処するのは困難である。
これらの課題はソフトウェアサービスにおける課題と共通のものである。以降で、電子カタログが提供するソフトウェアサービスの連携にBee-gentを活用し、これらの課題を解決した事例を紹介する[6,8]。
3.2.6.2 Bee-gentを用いた電子カタログエージェント
開発された電子カタログエージェントシステムは、企業間電子商取引で扱われる製品や部品の電子カタログ情報について、モバイル仲介エージェントが自動的に検索、収集、および登録プロセスを実行するというものである。Bee-gentでは、電子カタログDB などの既存アプリケーションを、エージェントラッパーによりエージェント化する。これにより、エージェントラッパーとモバイル仲介エージェントは、国際標準のエージェント間通信言語XML/ACLで通信可能となり、アプリケーション毎のインタフェースの違いが吸収される。電子カタログシステムの利用手順はモバイル仲介エージェントに組み込まれる。モバイル仲介エージェントは、ネットワーク上を移動しながらこの利用手順を実行することになる。こうして、既存の電子カタログDBには手を加えずに異種の電子カタログDBの連携処理が実現される。システム構成が変更される場合にもモバイル仲介エージェントの変更だけで対応できる場合が多く、変更コストを抑えることが可能である。これにより、ネットワーク上に分散した電子カタログシステムの利用・保守・管理が容易になることが期待できる。図3.2-4に、電子カタログエージェントによる電子カタログ情報の検索・収集・登録の様子を示す。
3.2.6.3 電子カタログエージェントの動作
電子カタログ情報の収集を例に、電子カタログエージェントの動作を説明する。電子カタログ情報収集では、エージェントがネットワーク上の各電子カタログDBに格納された電子カタログ情報を収集し、ユーザの手元にあるDBに登録する。これにより、ユーザの電子カタログDBの新規構築や保守管理を支援する。収集に当たっては、ユーザの目的に即した電子カタログ情報(例えば、特定用途の部品のみ、あるいは特定ベンダの製品のみ)を収集したい、あるいは保守の際には、前回収集時点以降に更新された情報のみ収集したいといった要求がある。したがって、このような要求に基づく検索を、各電子カタログDBに対して行なう必要がある。
モバイル仲介エージェントは、ユーザから検索要求を受け取ることにより生成され、その要求に基づいて検索すべきDBを特定する。次に、これらのDBを順に移動しながら、個々の
DB の検索を行なう。検索においては、各DBのエージェントラッパーに、ユーザの要求を反映した検索のためのXML/ACLメッセージを送信する。すると、エージェントラッパーはこのメッセージをDB独自の検索要求に変換し、検索を実行する。検索結果はまた
XML/ACL メッセージに変換され、モバイル仲介エージェントに返される。検索結果のデータ量は一般に多大なものとなるので、実際には検索結果は一時的な収集用コンテンツファイルとして格納され、モバイル仲介エージェントにはそのファイルへのアクセス方法が返される。最後にモバイル仲介エージェントはユーザのサイトに戻り、DBのエージェントラッパーに、検索結果登録のためのXML/ACLメッセージを渡す。これにより、登録手順が実行される。
3.2.6.4 電子カタログエージェントの効果
電子カタログエージェントにBee-gentを適用したことにより、次のような効果が確認されている。
参考文献
[1]青山幹雄: E-ビジネスを実現する動的ソフトウェアサービス技術と今後の展望,SSR2001 (2001), http://www.iisf.or.jp/SSR/index.html.
[2] 青山幹雄: E-ビジネスのためのサービス提供技術指向,第62回情報処理学会全国大会 (2001).
[3] 川村隆浩,長谷川哲夫,大須賀昭彦,本位田真一: Bee-gent:移動型仲介エージェントによる既存システムの柔軟な活用を目的としたマルチエージェントフレームワーク,信学論, Vol.J82-D-I, No.9 (1999),pp.1165-1180.
[4] Tahara,Y., Ohsuga,A., and Honiden,S.: Agent System Development Method Based on Agent Patterns, in Proc. 20th International Conference on Software Engineering (1999), pp.356-367.
[5] 田原康之,大須賀昭彦,本位田真一: ビヘイビアパターンに基づくモバイルエージェントシステム開発手法,情処論文誌,Vol.40,No.12 (1999), pp.4319-4332.
[6] 田原康之,長野伸一,長谷川哲夫,大須賀昭彦、福田和博、伊藤聡: モバイルエージェントを適用した電子カタログシステムの検索・収集・登録システム,第61回情報処理学会全国大会 (2000).
[7] 長尾確 編: エージェントテクノロジー最前線,共立出版 (2000).
[8] 長野伸一,田原康之,長谷川哲夫,大須賀昭彦,福田和博,大嶽康隆,伊藤聡: マルチエージェントフレームワークBee-gentを利用した電子カタログシステム,第62回情報処理学会全国大会 (2001).
[9] 本位田真一, 大須賀昭彦: オブジェクト指向からエージェント指向へ, ソフトバンク (1998).
[10] 本位田真一, 飯島正, 大須賀昭彦: エージェント技術,共立出版 (1999).
[11]丸山 宏: e-Businessを支える情報技術B2BからWeb サービスへ, http://www.ibm.co.jp/developerworks/webservices/010119/b2b.html.
[12] http://www2.toshiba.co.jp/beegent/.
[13] http://www.omg.org, http://www.corba.org.
[14] http://www.ebxml.org.
[15] http://www.fipa.org.
[16] http://www.rosettanet.org.
[17] http://www.w3.org/TR/2000/NOTE-SOAP-20000508.
[18] http://www.uddi.org.
[19] http://www.ibm.com/developer/webservices.
[20] http://www.w3.org/TR/2000/CR-xmlschema-0-20001024/.
[21] http://www.mel.nist.gov/sc4/www/plibdocs.htm.
[22] 次世代ネットワークと産業フロンティア情報技術に関する調査研究報告書 ネットワークエージェント技術, 日本情報処理開発協会 (2000).