Net Liaison 技術概要 沖電気工業(株) 福田 春生 1 Net Liaisonとは? Jiniを汎用的な分散システム構築のためのインフラストラ クチャとして、利用するためのミドルウェア群 クライアント層: – Service Finderを中心とするクライアント環境 ユーティリティ・サービス層: – 複数のJiniサービス群で構成するAPシステム構築に利用可能な ユーティリティサービス群 管理コンポーネント層: – Jiniサービスを管理するための汎用的な管理項目に対するAPIお よび、APサービスに組み込んで使用するコンポーネント群 2 Net Liaison全体構成 Service Finder クライアント層 ユーティリティ層 Liaison サービス Service UI JavaSpace DOM ストレージ ロケーション サービス 改造版 Lookup サービス rmid 状態管理 Join Manager サービス ラウンチャ 分散イベント 管理 障害管理 サービス 連携管理 ログ管理 リース 管理 JavaSpace モニタ リモートファイル サービス 管理コンポーネント層 アプリケーション・サービス 3 Service UIプロジェクト Jiniサービスが提供するユーザインターフェイス のためのAPIを定義 UIにはGUIだけでなく、音声などの手段も想定 UIはサービスの属性情報として付与 → UIの着脱、3rdパーティによる提供が可能 UI Object Service UI Service Object Service Proxy Jini Service ユーザ 4 Service UI API UIを登録する属性エントリ: UIDescriptor.java public class UIDescriptor implements Entry { // UIの役割. ex. “net.jini.lookup.ui.AdminUI” String role; // 表示に必要なAPI. ex. “javax.swing” String toolkit; // 属性情報の集合. FactoryのTYPE名、利用可能なLocaleなどを設定 Set attributes; // UIコンポーネントを生成するファクトリオブジェクト MarshalledObject factory; } 5 Jini Service Finder 汎用的なJiniクライアント – Lookupサービスが提供す る対話的検索APIをGUIで 表現 Service UI APIに準拠 – UIクラス自体の動的なダウ ンロードおよび表示 SCSLに従って公開 6 Service Finder – 検索パネル Lookupサービスの選択 サービス・タイプによる検 索 属性情報による検索 7 Service Finder – 表示機構 Lookupサービス サービス プロキシ UIDescriptor Service Finder UIDescriptor UIDescriptor Service UI サービス プロキシ Jini サービス JFrameFactory factory = (JFrameFactory) desc.getUIFactory(loader); JFrame frame = factory.getJFrame(serviceItem); 8 Service Finder – UI追加 サービスのI/Fを走査して、 利用可能な代表的なUIを 表示 JoinAdminを用いて、選 択したUI属性を追加 9 Service Finder – 内部構造 Registrar Panel Lookup Discovery Service Service Service Registrar Registrar Registrar Multiple Event Manager Notify Manager Join Manager Jini Service ServiceType Panel Attribute Panel Finder Manager Result Panel JoinAdmin JoinAdmin Panel UI Frame 10 Service Finder – Servlet版 Service Finderのロジックを Servlet上で実現 クライアント環境の自由度 サービス側からのコールバック は受けられない 11 Net Liaison全体構成 Service Finder クライアント層 ユーティリティ層 Liaison サービス Service UI JavaSpace DOM ストレージ ロケーション サービス 改造版 Lookup サービス rmid 状態管理 Join Manager サービス ラウンチャ 分散イベント 管理 障害管理 サービス 連携管理 ログ管理 リース 管理 JavaSpace モニタ リモートファイル サービス 管理コンポーネント層 アプリケーション・サービス 12 Jiniサービス管理 Jini-1.1が規定する汎用的な管理項目 – – – – net.jini.admin.Adminstrable net.jini.admin.JoinAdmin net.jini.admin.DestroyAdmin com.sun.jini.admin.StorageLocationAdmin ただし、仕様化はされていない UIの動的ダウンロード機構による利点 – 管理マネージャに予めUIを登録する必要がない – サービスに固有な管理UIも動的に表示可能 13 Jiniサービス管理 API 管理プロキシによるサービス管理機構 Object admin = ((Administrable) proxy).getAdmin(); JoinAdmin joinAdmin = (JoinAdmin) admin; joinAdmin.addLookupAttributes(attrs); Administrable 管理 クライアント サービス プロキシ Jini サービス 管理 プロキシ サービス毎に管理機 構を定義→ JoinAdmin DestroyAdmin オブジェクトの再利 用性に難 14 管理コンポーネントの構造 Jiniサービス管理APIをそのまま利用 サービス開発に共通な管理機構をUIまで含めて コンポーネントとして提供 Administrable 管理 クライアント サービス プロキシ Jini サービス 管理プロキシ JoinAdmin Join 管理プロキシ Join 管理 コンポーネント DestroyAdmin Destroy 管理プロキシ Destroy 管理 コンポーネント 15 その他の汎用的な管理項目 サービス状態・障害管理 – サービスの状態の参照および強制的な遷移 – 属性情報による障害情報の通知 ログ管理 – サービスが生成するログ情報の動的な設定 サービス間連携管理 – サービス間の依存関係を外部から制御 イベント管理、リース管理 – イベントソース, リース提供者(Lease Grantor)として の動作の制御 16 サービス状態・障害管理 Jini クライアント Lookupサービス 利用可能なサービスだけ を検索対象とする サービス プロキシ 状態情報 障害情報 管理 クライアント Event Mailbox 管理 プロキシ 管理クライアントを常時起 動しておく必要が無い Jiniサービス ・内部状態を表示 ・障害情報の公開 17 ログ管理 サービスが出力するログ情報の出力レベル、出力先 (ファイル、端末、syslogなど)を動的に制御 複数のログ出力ポートを階層的に管理 18 Jini Service Launcher ActivatableなJiniサービス起動のためのユーティ リティおよびライブラリ 機能 – サービス起動に必要な初期情報の収集・設定 – サービスをRMI Activation機構(rmid)に登録 – サービスを起動 効果 – サービス起動方法の統一化 – GUIを使った起動設定 – 起動設定ファイルによる運用の統一化 19 Launcher ー 基本動作 Activation System Launcher Jini Service 初期化情報の雛型を要求 初期化情報の雛型 初期化情報の 収集・設定 Activation Group登録 Activation Group ID サーバ登録(初期化情報) Activation ID サーバ起動要求 起動(コンストラクタ呼出) 20 GUI版 Launcher 21 サービス管理システム構成 管理マネージャ (Finder) 管理マネージャ層 GUI GUI GUI 情報収集層 ネットワーク トポロジ サービス ネットワーク トポロジ情報 ロケーション サービス サービス配置 情報 コード配置 情報サービス ホスト情報 インベントリ情報、 ネットワーク情報 改造版 Lookup サービス 遠隔ファイル 管理サービス 遠隔起動 サービス join 被管理層 機器情報 機器情報 サービス サービス 被管理 被管理 サービス サービス 22 ロケーションサービス UI 23 24 Net Liaison全体構成 Service Finder クライアント層 ユーティリティ層 Liaison サービス Service UI JavaSpace DOM ストレージ ロケーション サービス 改造版 Lookup サービス rmid 状態管理 Join Manager サービス ラウンチャ 分散イベント 管理 障害管理 サービス 連携管理 ログ管理 リース 管理 JavaSpace モニタ リモートファイル サービス 管理コンポーネント層 アプリケーション・サービス 25 ユーティリティ・サービス群 Jiniシステムの開発・管理に有効なサービス群 JavaSpace Monitor – JavaSpaceに対する操作をモニタするサービス Remote File Service – ファイル管理をService UIで行なえるWebサーバ DOM Storage – XMLデータを遠隔からDOM APIを使ってアクセス可能とするサー ビス Liaison Service – Jiniサービスを広域ネットワーク上で利用するためのメッセージン グ機構 26 JavaSpaceモニタ JavaSpace リアルタイム モニタ JavaSpaceモニタ ログ格納 サービス JavaSpace クライアント JavaSpace クライアント JavaSpace クライアント アクセス ログ 27 JavaSpaceモニタの構造 モニタプロキシはJavaSpaceインターフェイスを実装 クライアントはJavaSpaceとしてモニタにアクセス プロキシ内のキュー採用によりモニタによる性能低下を 最小限に抑制 モニタプロキシ JavaSpace クライアント JavaSpace プロキシ JavaSpace JavaSpace モニタ 28 29 Remote File Service Jiniサービスによるファイル管理機能を備 えたWebサーバ – プロキシはjava.io.File継承クラスをクラ イアントに提供 – エクスプローラ風の管理UI Jini/RMIの動的ダウンロード機構に対応 – Manifestファイルのバージョン管理機構 – ManifestファイルのClass-Path属性の解析 30 Remote File Service UI 31 32 Liaisonサービスの目的 低速・不安定なネットワークでの利用を前提とし たメッセージング機構 J2SE以下の小さなJava環境でもサービスが利用 可能な環境 ネットワークを隠蔽化した通信APIと情報収集が 可能な通信管理API Jarファイルのバージョン情報に基づく効率的な 動的クラスロード機構 既存のJiniサービスとの互換性 33 Liaisonサービス例 Rolodex Service Rolodex Proxy Rolodex UI Rolodex Proxy Server-side Liaison Finder クライアント#1 Client-side Liaison Stub クライアント#2 Rolodex UI vCards クライアント#3 vCards Servlet Light Liaison JAR Web Server MIDlet MIDP Emulator 34 Rolodexデモ – 表示例 RolodexUI画面 アドレス表示 検索画面 35 NAIフォーラム http://www.nai-forum.org/ NAIフォーラム:Network Application Interface フォーラム – 発足:2000年5月,会長:慶応義塾大学 松下温教授,幹事/事務局:沖電気工業 (株) – 2000年6月現在:KDD(株),シャープ(株),サン・マイクロシステムズ(株)等 11 社が賛同 NAIフォーラムの目的 – Java/Jini技術を利用した広域網サービスの流通・促進を目指した以下の活動を 行います. • 広域網サービスを構築するために必要なNAI標準仕様を作成・公開します. • NAI標準仕様に基づき構築した広域網サービスを評価できる環境を設置し,実証・デモ ンストレーションを行います. • NAI標準仕様に基づくソフトウェアを,非営利目的での利用に限り無償公開します. – フォーラムは以下のタイプのメンバにより構成され,今後Web等により紹介・募集 を行う計画です. • 新しい広域網サービスの利用を検討しているユーザ. • 新しい広域網サービスの構築・提供を行うキャリア/プロバイダ. • 新しいネットワークデバイスやサーバを開発するメーカ. Net Liaison と NAIフォーラムの関係 – Net Liaison はNAI標準仕様の一つとして,仕様・ソフトウェアを公開する予定で す. • サービス分野としては,モバイル及び情報デリバリサービス等を対象としています. 36
© Copyright 2025 ExpyDoc