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 2024 ExpyDoc