INTERNET
インターネット最新テクノロジー：第22 回

Run anywhere」（一度プログラムを書けば、どのプラットフォームでも動く）がある。これ

すべての機器をネットワークにつなげる

は、Java 言語で書かれたプログラムならば、JiniJavaVM（バーチャルマシン）さえ搭載されていればどのようなアーキテチャーのマイクロプロセッサーを使っているかわからない機器でもプログラムの開発ができるようになる。たとえば、カメラやCDプレイヤー、テレビ、ビデJavaがもたらした衝撃は大きかった。Javaによって開発されたプログラムはCPUのアオといったありとあらゆる機器もJavaVM がーキテチャーに依存しない。そして、この利点はいわゆるコンピュータだけでなく組み込搭載されていれば同じようにプログラムが動くみ機器まで広がろうとしている。Javaが真に目指していたのはネットワークを取り込むわけである。

ことである。今ここに、機器をネットワークにつないで簡単に動作させるためのものがまた、Javaはソフトウェアを簡単に部品化Javaの利用によって実現された。これがJiniである。今回はネットワークの利用を促進でき、この部品化されたソフトウェア（クラさせるJiniを取り上げて解説する。

ス）はネットワークを介してJavaVM 間を移動できる。したがって、クラスはどのマシン上

宇野 浩司 日本サン・マイクロシステムズ株式会社にあってもよく、プログラムは必要なときに必要なクラスを必要な場所にダウンロードして動作できる（図1）。つまり、ネットワークにソフトウェアが分散された環境でもプログラムが動く仕組みを持っているのである。

複雑な垣根を取り払う
冒頭でも述べたが、Jini はさまざまな機器やソフトウェアをネットワーク上で簡単に共有できる技術である。そして、ネットワークに散らばったこれらのものを結び付け、それぞれがうまく機能するようにコーディネートする技
すべてネットワークで制御できれば、今までにさまざまな機器がつながり出す術である。

ない新しい使い方が出てくる。それは、さま言葉を換えて言えば、あるサービスを受け今やコンピュータチップの搭載された機器ざまな機器が相互に結びつくことによって1つようとするものと、そのサービスを提供するもは、特定の専門分野にだけでなくオフィスやのコミュニティーとして働くことになるからでのとの間にある複雑な垣根（たとえば機器の家庭に広く浸透した。そしてコンピュータをある。これを簡単に実現してくれるのが「Jini」

特性やCPUの種類に対応したデバイスドライはじめとする機器を、ネットワークで結ぶことである。

バーのインストール）を取り払い、ネットワによって新しい使い方を生み出そうとしている。
インターネットによってコンピュータ自体のークにつなぐだけで両者のサービスのやり取り

Javaの利点を最大限に利用する

存在意義が変わったように、機器がネットワ

Jiniを理解する前に、まずJava について知ークにつながることによって、今まで持っていらなければならない。なぜなら、Jini はJavaた役割以上の価値が生まれてくるはずである。の技術に基づいたコミュニティーを形成する

たとえば、家庭にあるテレビやビデオ、エアためのアーキテクチャーだからである。

コン、電子レンジ、湯沸し器、洗濯機などが324 INTERNET magazine 1998/11を実現させるのがJini である。機器がネットワーク上のどこにあるのかわからなくても、何ができる機器なのかがわかっていれば、機器同士を簡単に接続できる。
では、このような機能がどのように実現されているのかを解説する。

Java のコンセプトとして「Write Once,

インターネットマガジン／株式会社インプレスR&D©1994-2007 Impress R&Dたいサービス管理者を決め撃ちで選ぶ。もJiniを演じる役者は3人

しくは、サービス管理者のリストから機器Jini では通常三者の間でやりとりが行われを使う人が選択してもいい。

る。三者とはサービス提供者（アクセスされる機器）、サービス利用者（機器に対してア⑦サービス利用者側でサービス管理者を選ぶ

クセスする側）、そしてそれをコーディネートと、自分が利用したいサービスに合致したするサービス管理者である。

サービス提 供 者 のプロキシーをもらう

この三者の動きは次のようになる（図2）。

（LookUp）。

①サービス提供者はネットワークにつながる⑧サービス利用者がプロキシーを受け取るとと、ネットワーク上のサービス管理者を探サービス管理者の役目は終わり、あとはサし出す（Join）。

ービス利用者がプロキシーを使用してサービス提供者とコミュニケーションを直接行②サービス管理者は、サービス提供者のソフう。

トウェアを登録できる環境を持っている。
そこで、「私はあなたのソフトウェアを登録以上が一連の動作であるが、これらは自動できます」という返事をサービス提供者にで行われるためユーザーは何も意識せずにネッ返す。

③サービス管理者は複数いてもいいので、サ

図1

Java の動的なクラスのロードービス提供者は返事をもらったサービス管理者の中からソフトウェアを登録するもの

ローカル
ディスクを1 つ選ぶ。そしてサービス管理者にサーソフトウェア
JavaVM

ビス利用者が自分とコミュニケーションすクラス クラス

ネットワーク

クラス クラス

るためのソフトウェア（プロキシー）を登録

クラス クラスする（LookUp）。プロキシーはJava 言語

クラス クラスで書かれたクラスの集まりである。

クラス クラスクラス

クラス クラス④次にサービス利用者がネットワークにつながるとネットワーク上にあるサービス管理者

図2

Jini の動作原理を探す（Discovery）。このとき、無造作にサービス管理者をいくつも探しだしてもいいし、自分が使いたいサービスを登録しコミュニケーション
8

サービス提供者

サービス利用者ているサービス管理者を探し出してもいい。

⑤サービス管理者は、サービス利用者が望ん

1
Join

2

Discovery
3 LookUp
4

だサービスが登録されていれば、「私はあな56

7
LookUp

たが望んだサービスを登録しています」という返事をサービス利用者に返す。
サービス管理者⑥③と同様にサービス管理者が複数いれば、プロキシー

サービス利用者は複数の中から自分が使いインターネットマガジン／株式会社インプレスR&D©1994-2007 Impress R&D

INTERNET magazine 1998/11325

トワークにある資源を利用できる。またJini

Java のクラスが組み込まれている。これがプ環境ではサービスの管理者は必須ではなく、ロキシーとなる。

ネットワーク上に1つも存在しなくても、直接プリンターがネットワークにつながると、ササービスの提供者と利用者がやりとりするこービス管理者（LookUp サーバー）を見つけとによってサービスを提供し利用できる。

出してプロキシーを管理者に登録する（①）
。
コンピュータから文書を印刷する場合、プリンターがあるかどうかをコンピュータがサープリンターから簡単に印刷できるビス管理者に問い合わせる。そして、サービ

この例をネットワークプリンターの場合で考ス管理者が自分に登録されているプリンターえてみる（図 3）。コンピュータがサービス利の一覧をコンピュータに返し、その中からユ用者でプリンターがサービス提供者の場合でーザーは使いたいプリンターを選ぶ。

ある。

コンピュータはユーザーが選んだプリンター

Jini対応のプリンターには、コンピュータののプロキシーをLookUp サーバーを介して受画面イメージを印刷用言語（ポストスクリプ

け取り（②）、プロキシーを実行して画面イトなど）に変えるソフトウェアや自分と通信メージを印刷イメージに変換して直接プリンするための情報（IP アドレスなど）を含むターにその内容を送る（③）
。
このようにコンピュータには印刷のためのデバイスドライバーがインストールされていなくても、プリンターにあらかじめ組み込まれてい図3

Jini を使ったプリンターの例

るプロキシー持ってくることで、印刷というサプリンター

LookUpサーバーービスを実行できる。つまり、Jini の環境さえあれば、ユーザーがプリンターのドライバー1をコンピュータにインストールしたり、ネット2

3ワーク上のどこにあるのかを考えるような複雑な作業がいらなくなる。

役者全員が主役を演じる
ここで、コーディネーターとなるサービス管理者（LookUpサーバー）は巨大な保存領域プロキシーを持つ必要はない。大規模にソフトウェアをコンピュータサービスとして登録するのであれば、巨大なデータベースが必要となるが、単なるサービス
図43 つのコンポーネント

Javaの管理者であれば、PCのようなものでかまわ

インフラ

サービス

プログラミングモデル

ない。もし、家庭のような環境であれば、セJavaVM

JavaAPI

JNDI

ットトップボックスや電話のようなネットワー

RMI

Beans

エンタープライズ Java Beans

クの入り口になるものがその役目を果たしてJavaセキュリティーモデル

........

JTS

Discovery/Join

Leasing

2 Phase Commit マネージャー

もいい。
一連の動作を現在のネットワークと比較しJava＋Jiniてみると、Jiniではコーディネートする管理者
Distributed Security

2 Phase Commit

Java Spaces

LookupEvents..........の役目が終わると、先ほどのコンピュータとプリンターのようにサービス提供者とサービスD

326 INTERNET magazine 1998/11

インターネットマガジン／株式会社インプレスR&D©1994-2007 Impress R&D

利用者間で直接やり取りが行われるピアツー

えると、インフラとはJavaVM やリモートプ

ピアの関係である。つまり、Jini では全員がロシージャーコールのためのRMI、セキュリテ

対等な関係になっている。これに対し、現在ィーを取り決めるJavaセキュリティーである。の特にPCのネットワークでは、機器（プリンそして、プログラミングモデルであるJavaAPI

現在サン・マイクロシステムズではさまざまターなど）は必ず管理者であるサーバーを介やBeans を使ってソフトウェアを作ればすべな企業と提携してJini 対応製品を出していくさなければならない主従関係である。てのプラットフォームで動くものとなる。また、予定である。

さまざまな適用が考えられる

魔法の効力はこれから
Jini はこの8 月に発表されたばかりである。

拡張機能としてJNDI やEnterpriseJava

Jiniはサン・マイクロシステムズのビル・ジ

Beans といったサービスを提供している。

ョイによって開発された。彼はJini によって変わるネットワークのビジョンを持っている

例としてプリンターを取り上げたが、今まJavaをネットワーク環境向けにでネットワークにつなぐことは考えられていな拡張かったものにもJiniは適用できる。たとえばデJiniでは上記のJavaの環境に次のものが加ィスクやCD-ROM ドライブもそうだが、カメわる。

ラやスキャナー、PDA、はては冷蔵庫やテレビもまったく同じように接続できる。カメラでインフラとして先ほど説明したDiscovery

撮影した、あるいはスキャナーで取り込んだやJoin といったサービス管理者やサービス自画像をネットワーク上のどこかのディスクに保身を探すときに使われる共通のソフトウェア存したり、PDA をネットワークにつなぎアプインターフェイスが用意されている。さらに、リケーションをダウンロードして使ったりする

サービス管理者を見つけたあとにソフトウェアことが簡単にできる。

をアップロードしたりダウンロードしたりする（本誌278 ページ参照）。
Jini の語源はアラジンの魔法のランプから出てくる妖精「ジニー」である。妖精によってネットワークにかけられた魔法、すなわち多くのユーザーが待ち望んでいた「つなぐだけ」のネットワーク環境が何をもたらしてくれるのかは、これからである。
参考 URLjhttp://java.sun.com/products/jini/

ためのLookUpというソフトウェアインターフ

Jini はインターネットやイントラネットのよェイスがある。

うなネットワークから1 台のPC のような小さなモジュール単位のものまで使える技術であプログラミングモデルとしてLeasing といる。Jini 自体はトランスポートの通信プロトうサービスの期間を限定できるインターフェイ

コルに依存せずに、ネットワークを介してリソスがある。Leasing によって、サービス提供ースを共有するアーキテクチャーである。した者がサービスを提供する時間を設定できる。

がって、特定の通信プロトコルでネットワー

ほかには、トランザクションの処理を規定すクの特性を活かした環境を作れば今までになる2 Phase Commit やネットワーク上の事象いものが構築できるだろう。のやり取りを決めるためのEvents がある。
また、サービスとしてすでにあるものが、トランザクションを管理するための2 Phase

Jiniを構成するCommitマネージャーとJava Spacesである。

3つのコンポーネント

Java Spaces は実際のサービス管理者としさらに踏み込んで、Jini に含まれるコンポて、サービス提供者からのサービス（プロキーネントについて解説しよう。

シー）を保存したり取り出したりする役目を

Jiniは3 つのコンポーネントから成り立って果たす。

いる（図4）。3つのコンポーネントとはすなわ

以上のように、JavaはJiniを使うためのイ

ちJiniを使うためのインフラとプログラムを作

ンフラであり、Jini はJava の技術をネットワるうえでの取り決めであるプログラミングモデーク環境でより利用しやすくしたアーキテチャ

ル、そしてこれらの2つを使ったサービスであーの総称であることがわかるだろう。

る。
Java 自体が持っているコンポーネントを考`

インターネットマガジン／株式会社インプレスR&D©1994-2007 Impress R&D

INTERNET magazine 1998/11327

［インターネットマガジン バックナンバーアーカイブ］ ご利用上の注意
この PDF ファイルは、株式会社インプレス R&D（株式会社インプレスから分割）が 1994 年～2006 年まで発行した月刊誌『インターネットマガジン』の誌面を PDF 化し、「インターネットマガジン バックナンバーアーカイブ」として以下のウェブサイト「All-in-One INTERNET magazine 2.0」で公開しているものです。

http://i.impressRD.jp/bn
このファイルをご利用いただくにあたり、下記の注意事項を必ずお読みください。
z 記載されている内容（技術解説、URL、団体・企業名、商品名、価格、プレゼント募集、アンケートなど）は発行当時のものです。
z 収録されている内容は著作権法上の保護を受けています。著作権はそれぞれの記事の著作者（執筆者、写真の撮影者、イラストの作成者、編集部など）が保持しています。
z 著作者から許諾が得られなかった著作物は収録されていない場合があります。
z このファイルやその内容を改変したり、商用を目的として再利用することはできません。あくまで個人や企業の非商用利用での閲覧、複製、送信に限られます。
z 収録されている内容を何らかの媒体に引用としてご利用する際は、出典として媒体名および月号、該当ページ番号、発行元（株式会社インプレス R&D）、コピーライトなどの情報をご明記ください。
z オリジナルの雑誌の発行時点では、株式会社インプレス R&D（当時は株式会社インプレス）と著作権者は内容が正確なものであるように最大限に努めましたが、すべての情報が完全に正確であることは保証できません。このファイルの内容に起因する直接的および間接的な損害に対して、一切の責任を負いません。お客様個人の責任においてご利用ください。

このファイルに関するお問い合わせ先
All-in-One INTERNET magazine 編集部
im-info@impress.co.jp
Copyright © 1994-2007 Impress R&D, an Impress Group company. All rights reserved.