30 分で解る jini tm テクノロジー ~えっ、ドラえもん ? ~
DESCRIPTION
30 分で解る Jini TM テクノロジー ~えっ、ドラえもん ? ~. 4D Networks, Inc. 大山弘樹 (CTO). Jini の目指すもの. 使いたいときに、使いたい機能を いとも簡単に使える。 環境 使いたいときに、使いたい機能を いとも簡単に使わせる。 枠組み. ドラえもんの 4 次元ポケット. Jini の可能性. デバイスの Plug and Play 家電同士の対話 ( ハード対ハード ) アプリケーションとデバイス ( ハード対ソフト ) - PowerPoint PPT PresentationTRANSCRIPT
30 分で解る JiniTM テクノロジー
~えっ、ドラえもん ? ~
4D Networks, Inc.大山弘樹 (CTO)
Jini の目指すもの
使いたいときに、使いたい機能を いとも簡単に使える。 環境
使いたいときに、使いたい機能を いとも簡単に使わせる。 枠組み
ドラえもんの 4次元ポケットドラえもんの 4次元ポケット
Jini の可能性
デバイスの Plug and Play 家電同士の対話 ( ハード対ハード ) アプリケーションとデバイス ( ハード対ソ
フト ) アプリケーション同士 ( ソフト対ソフト )
ネットワーク全体をサービスの集合体に ハードのサービス化 ソフトのサービス化
Jini の提供するサービス今までのサービスの提供
利用者 1 利用者 2 利用者 3 利用者 n
Service 1 Service 2 Service 3
Service X
Jini の提供するサービス
Service A
Service A
Service F
Service EService DService C
Service B
Service X
Jini 連合体 ( フェデレーション )
Jini の基礎の前に
Jini は Java2 じゃないと動作しない
立場によっては Java1.1+α でもなんとか。。。 もっと言うと、 Java じゃなくても。。。。
ネットワークは rmi でつながっている 分散環境のインフラを提供する プログラミングモデル ( 作法 ) がある みんなで動かす (^_^)
Java RMI
クライアント サーバ
リモート・インタフェイスリモート・インタフェイス
スタブ
クライアント
実装クラスメソッド
スケルトン
RMI の基本動作
rmiregistry
クライアント
実装
クライアント
Naming.rebind( 名前 ,Object)
rmi://host:port/ 名前
②Naming.lookup(URL)
SecurityManager +
①
③
rmid
実装
Setup
Activatable.register()
Naming.rebind()
③
①
②
④
⑤
URL file://location
ActivationDesc
Naming.lookup(URL)
Activatable
UnicastRemoteObject
Jini の基本動作
サービスの提供Lookup Service
クライアント サービスプロバイダ
サービスの登録 ( 提供 )
代理人
Jini の基本動作 2
サービスの取得Lookup Service
サービスプロバイダ
サービスの取得
代理人
代理人
Jini の基本動作 3
サービスの行使Lookup Service
クライアント サービスプロバイダ
サービスの行使
代理人 サービス
Jini のアーキテクチャ
Jini の基礎
JiniTM discovery & joinJiniTM distributed leaseJiniTM distributed eventJiniTM entryJiniTM lookupJiniTM transactionJavaSpacesTM
ドラえもん的 Jini technology
ドラえもんの道具 どこでもドア
分子直列化電送サービス スモールライト
一時的分子縮小サービス たけコプター
反重力及び慣性コントロールサービス
Jini は 4 次元ポケットを提供する技術
ドラえもん的 Discovery
Discovery Multicast Discovery
どこにいるか解らないドラえもんを泣いて呼び出す
Unicast Discovery ほぼ、ドラえもんはのび太の部屋の押入にい
るので、そこまで行く
ドラえもん的 LookupService
Join サービスを LookupService に登録する
未来デパートから道具を購入する 未来デパートは ASP 事業者でいろいろなサービス ( の利
用権 ) を売っている
ServiceRegistrar LookupService への窓口
4 次元ポケットのインターフェース ドラえもんの手 (Service Template ) にほしい道
具を書いて ( Entry ) 、ポケットの中を探して ( 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.orgJava.sun.com/jiniJava.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/