![]() |
[2000 年 1 月号] |
![]() |
||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
はじめに | こんにちは。エージェント技術についての連載第三回(最終回)をお送りします。前回はインターネットで活躍するエージェントについてお話しましたが、どうも皆さんの期待されていた内容とは違っていたかもしれません。反省の意味もこめて、今回は少し技術的なお話をします。しかし、技術的なバックグラウンドがどうであれ、エージェントが活躍する舞台は間違いなくインターネットでしょう。その辺りを、エージェントの可能性と併せてお話したいと思います。 | |||||||||||||||
エージェント 指向の歴史 |
最終回になっていまさら、という感もありますが、ここで少しエージェント指向、特にモバイルエージェント技術の歴史についてごくごく簡単に触れておきましょう。モバイルエージェントとは、エージェント技術の中でも核となるもので、自律的にネットワークを移動できるインスタンス(モノ)を作り出す技術です。モバイルエージェントの歴史は古く、もともとは1970年代の終わり頃に立案されたRP(リモートプログラミング)という概念がその起源だとされています。RPとはその名のとおり、サーバ側でクライアントが持ち込んだプログラムを実行させようという技術で、その目的は次のようなものでした。
たとえば、サーバ側で「指定された名前のファイルを削除する」という機能だけが提供されている場合、従来のRPCコールを使ってすべてのファイルを削除しようとすると、ファイルの数だけサーバ機能の呼び出しを行う必要があり、ネットワークの伝播遅延がボトルネックとなってしまいます。このような場合はRPを用い、「すべてのファイルを削除する」プログラムをサーバに送り込めば、パフォーマンスの向上が期待できるでしょう。 このような背景から、1980年代に入って、RPはモバイルエージェント技術として研究されるようになってきました。 |
|||||||||||||||
Telescript |
TelescriptTelescript(テレスクリプト)とは1990年にジェネラル・マジック社(アップル・コンピュ−タ社が設立)が提唱したプログラミング言語で、商用言語として初めてモバイルエージェント技術を実装たものでした。その基本となる概念要素は今でも十分通用するものです。以下で簡単に説明しておきましょう。
|
|||||||||||||||
Java エージェント |
Java説明するまでもないかもしれませんが、Java(ジャバ)とは1995年にサン・マイクロシステムズ社によって発表されたインターネット・イントラネットをターゲットとする汎用言語です。発表当時から一躍脚光を浴び、凄まじい勢いで発展していきました。今やJavaを取り巻く技術は多岐に渡り、EJB(Enterprise Java Beans)やJini(ジニーと発音)などはその最たるものと言えるでしょう。Javaは動作するプラットフォームを選ばないため、マシン間を自由に移動するエージェント技術にとっては実に理想的な動作環境と言えます。ここでは、Javaを用いたエージェント技術を2つ紹介しましょう。 AgletsAgletsはIBM社によって開発されたインターネットエージェントシステムで、Javaのクラスライブラリ上で実装されたものとしては先駆的なものの一つです。そして、Agletsを用いたシステムの開発はAglets Workbench上で実装することができます。Agletsの特徴として、次のようなものが挙げられます。
VoyagerVoyagerはObjectSpace社によって開発された、Java上でモバイルエージェント機能を実現するORBパッケージです。VoyagerはCORBA(Common Object Request Broker)などにも対応しており、セキュリティ機能やHTTPプロトコルへの対応など、インターネットを非常に意識した製品となっています。後のサンプルでは、このVoyagerをモデルに、説明していきたいと思います。 |
|||||||||||||||
その他の エージェント 技術 |
Agent TclAgent TclはSun Microsystemsによって開発された言語であるTcl(Tool Command Language:ティクルと発音)によって実装されているエージェント技術です。Tclのコマンドを使うことで、エージェントは非常に柔軟な処理を行うことが可能になっています。Telescriptほど多くの機能が用意されているわけではありませんが、簡単なコードでエージェントを作成することができるため、プロトタイプ作成などに向いています。以上、紹介した以外にもC, Tcl, Javaなどで動作するAra(Agents for Remove Access)など、たくさんのエージェント技術がリリースされていますが、ここでは紹介を割愛させていただきます。 |
|||||||||||||||
歴史の まとめ |
さて、長々と歴史を紹介してきましたが、現在では、エージェント指向を考える道具としてJavaとインターネットがあれば十分だと考えられます。クロスプラットフォームとインターネットの世界を自由に飛びまわれるエージェントができること・・・そんなエージェントには無限の可能性が秘められていることでしょう(さらに最近ではXMLという共通言語も登場し、エージェント技術の先は明るいとも言えます)。
それでは、エージェント技術について、より具体的に見ていくことにしましょう。 |
|||||||||||||||
エージェント 技術の実際 |
Javaで実装されたエージェントミドルウェアは、IBM社のAgletsやObjectSpace社のVoyagerなど、様々なものがリリースされています。ここでは、Voyagerをベースに、エージェントの実装について軽くふれてみましょう。
例として、毎回登場しているサルの世界を取り上げます。サル山(MonkeyPlace)にいるボスザル(Boss)が子分ザル(Follower)に「バナナ畑(BananaMarket)へ行きバナナを取って来い(getBanana)」と命令する(order)モデルについて考えましょう。
では、子分ザルを作りましょう。子分ザルは普通に 以上、Voyagerの機能を簡単にまとめると次のようになります。
|
|||||||||||||||
オブジェクト 指向と 初期化 |
さて、当たり前のことですが、Javaはオブジェクト指向言語です。C++のようにメモリ管理を厳密に行う必要がないため、非常にプログラミングしやすいのが特徴です。よく、エージェント指向はオブジェクト指向の発展形だと言われることがありますが、私は連載第一回で「オブジェクトはモノとモノが協調する技術、エージェントとは結果を持ちかえるための技術」と位置付けました。何が違うのでしょう?それはオブジェクト指向の設計と深く関わっています。私はオブジェクト指向でプログラミングを行うとき、設計作業が非常に面倒だと思うことがあります。それはオブジェクト指向において、「必要以上のことを知らない」オブジェクトが「周囲と適切に協調」することが美徳とされているためです。周囲と協調するためには、協調する相手を知っていないといけない、協調する相手を知るためには、また別の周囲と協調しなければならない、、、オブジェクト指向の設計は難しいです。協調するために協調する、それは良い世界なのかもしれませんが、面倒な世界であることも確かです。結果が欲しいのなら、エージェント技術に切り替えても損はありません。 | |||||||||||||||
エージェント の活路 |
とは言っても、エージェント技術には様々なリスクがあることを前回説明しました。では、どのような分野でエージェントが活躍できるのでしょうか?エージェント指向の特徴は、オブジェクト指向以上に現実の物理的なモデルを実現できることでしょう。そこで、いかに「現実」をモデル化するか、いかに「現実」を便利にするかが焦点となってきます。これからはEC(Electric Commerce)の分野が伸びると言われていますが、エージェント技術もそのような分野で注目されることになるでしょう。なぜなら、エージェント技術を用いることにより、「顧客ニーズを聞いて適切なサービスを提供する」という現実的なモデルが実現できることにつながるからです。
現在でも某保険会社など、対話的なエージェントを用いてサービスを提供してるサイトも見受けられますが、今後はそれらが本格的なエージェント技術によって支えられる日がくるかもしれません。 たとえば、ショッピングサイトで何か買い物をしたいと思ったとき、あらかじめ価格的な目安が決まっているのに、価格による検索機能がサイトに備わっていなければ、いちいち自分で値段を見て判別しないといけないため、とても面倒な思いをします。そんなとき、何か共通の「お探しエージェント」を受け入れる機能が各サイトに備わっていれば、自分の欲しいものをエージェントに教えるだけで、どのサイトでも、その条件に合うものを検索してくることができるようになることでしょう。 |
|||||||||||||||
パーソナ ライズ |
前回は「ポータル」という言葉について簡単に触れましたが、最近は「パーソナライズ」という言葉も一つのキーワードになっています。つまり、自分の好みに合わせてカスタマイズできるサイトのニーズが高まってきています。My Yahoo!やMy Exciteなども有名で良く利用されている「パーソナライズ」サイトですが、究極のパーソナライズサイトは「My Agent」を利用できるサイトでしょう。現実には、まだそのようなサイトは存在しないようですが、自分のエージェントが、指定のサイトまたは複数のサイトから欲しい情報だけをかき集め、自分の好みのレイアウトで表示してくれる。そんなエージェントがいれば、過剰とも思えるインターネットの情報に呑み込まれることもなく、自分流にインターネットを楽しめることでしょう。
今後はエージェント技術がインターネット上で広く用いられるようになること、それこそがエージェント指向のゴールだと私は考えています。 |
|||||||||||||||
最後に |
さて、エージェント技術について短い連載を行ってきましたが、今回で最終回となってしまいました。連載を通してお読みいただいた皆様には感謝いたします。エージェント指向技術が「産業分野」に活用できるのでは、という視点から連載を読まれた皆様には、インターネットに着目した本連載は少々物足りないものになってしまったかもしれませんが、インターネットで根付いた技術は、他の分野においても標準となる可能性が大きいと感じています。
2000年にはどのような技術がでてくるのか、今から非常に楽しみにしています。 |
© 2000 OGIS-RI Co., Ltd. |
|