30分で解るJiniTM テクノロジー
~えっ、ドラえもん?~
4D Networks, Inc.
大山弘樹(CTO)
Jiniの目指すもの
使いたいときに、使いたい機能を
いとも簡単に使える。
環境
使いたいときに、使いたい機能を
いとも簡単に使わせる。 枠組み
ドラえもんの4次元ポケット
Jiniの可能性
デバイスのPlug and Play
家電同士の対話(ハード対ハード)
アプリケーションとデバイス(ハード対ソフト)
アプリケーション同士(ソフト対ソフト)
ネットワーク全体をサービスの集合体に
ハードのサービス化
ソフトのサービス化
Jiniの提供するサービス
今までのサービスの提供
Service 1
Service 2
Service 3
Service X
利用者1
利用者2
利用者3
利用者n
Jiniの提供するサービス
Service F
Service A
Service A
Service B
Jini連合体
(フェデレーション)
Service C
Service E
Service D
Service X
Jiniの基礎の前に
Jiniは
Java2じゃないと動作しない
立場によってはJava1.1+αでもなんとか。。。
もっと言うと、Javaじゃなくても。。。。
ネットワークはrmiでつながっている
分散環境のインフラを提供する
プログラミングモデル(作法)がある
みんなで動かす(^_^)
Java RMI
クライアント
メソッド
実装クラス
リモート・インタフェイス
リモート・インタフェイス
スタブ
スケルトン
クライアント
サーバ
RMIの基本動作
④
SecurityManager +
Naming.rebind(名前,Object)
rmiregistry
①
実装
②
Naming.rebind()
①
rmid
クライアント
Activatable
rmi://host:port/名前
UnicastRemoteObject
Naming.lookup(URL)
実装
②
③
③
⑤
Setup
ActivationDesc
Activatable.register()
URL file://location
Naming.lookup(URL)
クライアント
Jiniの基本動作
サービスの提供
Lookup Service
代理人
サービスの登録(提供)
クライアント
サービスプロバイダ
Jiniの基本動作 2
サービスの取得
Lookup Service
代理人
サービスの取得
代理人
サービスプロバイダ
Jiniの基本動作 3
サービスの行使
Lookup Service
サービスの行使
代理人
クライアント
サービス
サービスプロバイダ
Jiniのアーキテクチャ
Jiniの基礎
JiniTM discovery & join
JiniTM distributed lease
JiniTM distributed event
JiniTM entry
JiniTM lookup
JiniTM transaction
JavaSpacesTM
ドラえもん的Jini technology
ドラえもんの道具
どこでもドア
分子直列化電送サービス
スモールライト
一時的分子縮小サービス
たけコプター
反重力及び慣性コントロールサービス
Jiniは4次元ポケットを提供する技術
ドラえもん的Discovery
Discovery
Multicast Discovery
どこにいるか解らないドラえもんを泣いて呼び出す
Unicast Discovery
ほぼ、ドラえもんはのび太の部屋の押入にいるの
で、そこまで行く
ドラえもん的LookupService
Join
サービスをLookupServiceに登録する
未来デパートから道具を購入する
未来デパートはASP事業者でいろいろなサービス(の利用権)を
売っている
ServiceRegistrar
LookupServiceへの窓口
4次元ポケットのインターフェース
ドラえもんの手(ServiceTemplate)にほしい道具を書いて(E
ntry)、ポケットの中を探して(lookup)使う
ドラえもん的Distributes Lease
Lease : 賃貸契約
ネットワーク上のリソースは全てリースをもつ
どこでもドアを使いっぱなしにしたり、置き忘れてく
ると意図していないところに出てしまう
リースは延長契約できる
スモールライトを使用中に、のび太くんのおなかの
中でスモールライトのリースが切れると、のび太君
は間違いなく死んでしまう
ドラえもん的Distributed Event
分散イベント
ネットワーク的に離れたところでもイベントの
確実な伝搬が行える
ネットワークの状態でイベント順が変わっても
シーケンス番号を持っている
サービスを使っているのび太君がむちゃくちゃな操
作をしてドラえもんに文句を言ってものび太君が悪
いと一括できる
ドラえもん的Transaction
Jiniはトランザクション処理のフレームワー
クを提供している
2フェーズコミットのフレームワーク
どこでもドアを使っている最中に分子の転送ホスト
がネットワークの異常を検知し転送処理をロール
バック処理した
この機構がないと、別な場所に体が半分だけ行っ
てしまい半人前になってしまう
Jiniへ参加するプログラム
class Sample implements DiscoveryListener {
private ServiceRegstrar[] sRegistrar;
public Sample(){
LookupDiscovery lookupDisc =
new LookupDiscovery(LookupDiscovery.ALL_GROUP);
lookupDisc.addDiscoveryListener(this)
WAIT!!
Entry[] attr = new Entry[] { new ServiceInfo(…..)}
ServiceItem sItem = new ServiceItem(null, OBJECT, attr);
for( i = 0; sRegistrar.length 回; i++){
ServiceRegistrar r = sRegistrar[i];
ServiceRegistration regt = r.register(sItem,leaseTime);
Lease lease = regt.getLease();
new LeaseRenewer(lease).start();
}
}
public void discovered(DiscoveryEvent e){
sRegistrarr = e.getRegistrars();
}
public void discarded(DiscoveryEvent e){
}
}
リソース
www.jini.org
Java.sun.com/jini
Java.sun.com/docs/books/jini/
The Jini Specification
www.java-conf.gr.jp www.iaj.or.jp
Jini BOF(www.java-conf.gr.jp/wg_bof/jini/
© Copyright 2026 ExpyDoc