Jiniテクノロジーによって、各種のデバイスを相互に接続して即興でコミュニティを形成することが可能になります。あらかじめ計画しなくてもその場でコミュニティができあがります。何かをインストールする必要はなく、わざわざ人間の手をわずらわせることもありません。このコミュニティでは、各デバイスは他のデバイスが提供するサービスを利用できます。
Jiniテクノロジーの鍵となっているのはJavaプログラミング言語です。Jiniテクノロジーを採用しているネットワークでは、デバイスはJava Remote Method Invocation(RMI)を使って相互に接続されます。ディスカバリとバインドのプロトコルやルックアップ・サービスは、Java仮想マシン間でJavaオブジェクト(オブジェクトのコードを含む)を移動する機能に依存しています。Jiniの接続テクノロジーが普及するためには、その土台となっているプロトコルとインフラストラクチャが普及しなければなりません。
Jiniの真価は、ネットワーク内の他のデバイスやサービスを発見(ディスカバリ)することではありません。サービス・ディスカバリにはほかにもいろいろな方法があります。Jiniのほんとうの利点は、サービスへのアクセスを可能にするオブジェクト指向のJava実行プログラム(プロキシ・オブジェクト)を検出し、配布できることです。"Write once, run anywhere"(一度書いたら、どこでも実行できる)というJavaのパラダイムに従ってプロキシ・オブジェクトを作成すれば、Javaの世界でいろいろと役に立つことでしょう。しかし、用途がJavaベースのネットワークに限定されているようでは、このテクノロジーの普及も限られたものにしかなりません。
サリュテーション・アーキテクチャには、[DOC Storage]というFunctional Unit(FU) が用意されています。このFUのそもそもの目的は、着信/送信ファックスの一時的な保管場所となり、スキャンしたページや印刷出力のページ・ストアとなることでした。しかし、サリュテーション・アーキテクチャ仕様のバージョン2.0c(www.salutation.org)では、[DOC Storage]が拡張され、デバイス・ドライバ、アプリケーション・プログラム、実行コード、アプリケーション・データなども保管できるようになりました。[DOC Storage] FU Description Recordには、ファイル・タイプ属性が入っており、[DOC Storage]の内容(上述の新しいタイプを含む)を判別します。
この新しい属性を利用することにより、[Client] FUはサリュテーションのQueryCapabilityコマンドを実行して、特定の内容を収納している[DOC Storage] FUを見つけます。FileData属性を問い合わせてデバイス・タイプやOSを限定すれば、このクエリーの範囲をもっと絞ることができます。Jiniプロキシ・オブジェクトがサポートされていれば、[Client] FUはたとえばXYZプリンタのプロキシ・オブジェクトを見つけることができます。
プロキシ・オブジェクトが見つかったら、[Client]はRetrieveDoc [DOC Storage]コマンドを使ってそのプロキシ・オブジェクトを取り出します。取り出されたプロキシ・オブジェクトはインストールされ、デバイスの使用が可能になります。使用後にはプロキシ・オブジェクトをアンインストールして、[Client]のメモリを解放します。
サリュテーションは、メーカーがプロキシ・オブジェクトをアップグレードした場合にも対応しており、StoreDoc [DOC Storage]コマンドを使って、既存のプロキシ・オブジェクトを新しいバージョンで上書きします。
もちろん、[DOC Storage]の内容はJavaプロキシ・オブジェクトだけに限られているわけではありません。たとえば、プリンタに複数の[DOC Storage] FUが用意されており、そのそれぞれに各種のOSに対応したデバイス・ドライバが入っているケースがあります。この場合でも、Javaベースのクライアントは、サリュテーションのコマンドを使ってJavaプロキシ・オブジェクトを検出してロードすることができます。WindowsCEクライアントは自分のプラットフォームに対応するデバイス・ドライバを、PalmOSデバイスはPalmOS用のデバイス・ドライバを検出してロードすることができます。
[DOC Storage] FUの格納先はデバイス本体とは限りません。ネットワークやインターネットに格納しておくことも可能です。サリュテーションはディレクトリ型のネットワークとピア・ツー・ピアのネットワークの両方をサポートしています。したがって、ネットワークの構成、伝送プロトコル、オペレーティング・システムの種類を問わず、Jiniプロキシ・オブジェクトやその他のオブジェクトを検出し、ロードすることができるのです。
サリュテーションは、いろいろなテクノロジーの島と島をつなぐ橋となります。サリュテーションは特定のオペレーティング・システムや伝送プロトコルに依存しないため、単一のサービス・ディスカバリ・プロトコルでそれぞれプロトコルが異なる複数の環境に対応できます。[DOC Storage] FUは特定のデバイス・ドライバやオブジェクト・スキーマへのへの依存を解消します。幅広い可能性を持つサリュテーション・プロトコルでJavaプロキシ・オブジェクトを検出してロードできれば、Jiniルックアップ・テーブルに依存する必要がなくなります。サリュテーションを通じ、Jiniオブジェクトは他のコード・ベースで書かれたオブジェクトやデバイス・ドライバと共存できるようになります。