Net Liaison 技術概要
description
Transcript of Net Liaison 技術概要
1
Net Liaison 技術概要
沖電気工業 ( 株 )福田 春生
2
Net Liaison とは ?
Jini を汎用的な分散システム構築のためのインフラストラクチャとして、利用するためのミドルウェア群
クライアント層:– Service Finder を中心とするクライアント環境
ユーティリティ・サービス層:– 複数の Jini サービス群で構成する AP システム構築に利用可能
なユーティリティサービス群 管理コンポーネント層:
– Jini サービスを管理するための汎用的な管理項目に対する APIおよび、 AP サービスに組み込んで使用するコンポーネント群
3
ログ管理
JoinManager
改造版Lookup
サービス
状態管理
リース管理
分散イベント管理
サービス連携管理障害管理
リモートファイルサービス
DOMストレージ
サービスラウンチャ
rmid
ロケーションサービス
管理コンポーネント層
ユーティリティ層
クライアント層
Service Finder
Service UI
アプリケーション サービス・
Net Liaison 全体構成
JavaSpaceモニタ
Liaisonサービス
JavaSpace
4
Service UI プロジェクト
Jini サービスが提供するユーザインターフェイスのための API を定義
UI には GUI だけでなく、音声などの手段も想定 UI はサービスの属性情報として付与
→ UI の着脱、 3rd パーティによる提供が可能
ServiceProxy
ServiceUI
JiniService
ユーザ
Service ObjectUI Object
5
Service UI API
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;}
UI を登録する属性エントリ : UIDescriptor.java
6
Jini Service Finder 汎用的な Jini クライア
ント– Lookup サービスが提供
する対話的検索 API を GUI で表現
Service UI API に準拠– UI クラス自体の動的なダ
ウンロードおよび表示 SCSL に従って公開
7
Service Finder – 検索パネル
Lookup サービスの選択 サービス・タイプによ
る検索 属性情報による検索
8
UIDescriptor
Lookup サービス
ServiceFinder
サービスプロキシ
Jini サービス
Service Finder – 表示機構
UIDescriptor
JFrameFactory factory = (JFrameFactory) desc.getUIFactory(loader);JFrame frame = factory.getJFrame(serviceItem);
Service UI
UIDescriptor
サービスプロキシ
9
Service Finder – UI 追加
サービスの I/F を走査して、利用可能な代表的な UI を表示
JoinAdmin を用いて、選択した UI 属性を追加
10
RegistrarPanel
ServiceTypePanel
AttributePanel
FinderManager
ResultPanel
UIFrame
JoinAdminPanel
LookupDiscovery
MultipleEvent
Manager
NotifyManager
Jini Service
JoinManager
ServiceRegistrar
JoinAdmin
Service Finder – 内部構造
ServiceRegistrar
ServiceRegistrar
11
Service Finder – Servlet 版
Service Finder のロジックをServlet 上で実現
クライアント環境の自由度 サービス側からのコール
バックは受けられない
12
ログ管理
JoinManager
改造版Lookup
サービス
状態管理
リース管理
分散イベント管理
サービス連携管理障害管理
リモートファイルサービス
DOMストレージ
サービスラウンチャ
rmid
ロケーションサービス
管理コンポーネント層
ユーティリティ層
クライアント層
Service Finder
Service UI
アプリケーション サービス・
Net Liaison 全体構成
JavaSpaceモニタ
Liaisonサービス
JavaSpace
13
Jini サービス管理
Jini-1.1 が規定する汎用的な管理項目– net.jini.admin.Adminstrable– net.jini.admin.JoinAdmin– net.jini.admin.DestroyAdmin– com.sun.jini.admin.StorageLocationAdmin
ただし、仕様化はされていない UI の動的ダウンロード機構による利点
– 管理マネージャに予め UI を登録する必要がない– サービスに固有な管理 UI も動的に表示可能
14
Jini サービス管理 API 管理プロキシによるサービス管理機構
Object admin = ((Administrable) proxy).getAdmin();JoinAdmin joinAdmin = (JoinAdmin) admin;joinAdmin.addLookupAttributes(attrs);
Jini サービス
管理クライアント
管理プロキシ
サービスプロキシAdministrable
JoinAdmin
DestroyAdmin サービス毎に管理機構を定義→オブジェクトの再利用性に難
15
Jiniサービス
管理クライアント 管理プロキシ
サービスプロキシAdministrable
JoinAdmin
DestroyAdmin
Join管理プロキシ
Join 管理コンポーネント
Destroy管理プロキシ
Destroy 管理コンポーネント
管理コンポーネントの構造
Jini サービス管理 API をそのまま利用 サービス開発に共通な管理機構を UI まで含
めてコンポーネントとして提供
16
サービス状態・障害管理– サービスの状態の参照および強制的な遷移– 属性情報による障害情報の通知
ログ管理– サービスが生成するログ情報の動的な設定
サービス間連携管理– サービス間の依存関係を外部から制御
イベント管理、リース管理– イベントソース , リース提供者 (Lease Grantor)
としての動作の制御
その他の汎用的な管理項目
17
障害情報
サービスプロキシ
Lookup サービス
Jini サービス
管理クライアント
EventMailbox
管理プロキシ
サービス状態・障害管理
状態情報
Jiniクライアント
利用可能なサービスだけを検索対象とする
管理クライアントを常時起動しておく必要が無い
・内部状態を表示・障害情報の公開
18
ログ管理 サービスが出力するログ情報の出力レベル、出力先
( ファイル、端末、 syslogなど ) を動的に制御 複数のログ出力ポートを階層的に管理
19
Jini Service Launcher
Activatable な Jini サービス起動のためのユーティリティおよびライブラリ
機能– サービス起動に必要な初期情報の収集・設定– サービスを RMI Activation 機構 (rmid) に登録– サービスを起動
効果– サービス起動方法の統一化– GUI を使った起動設定– 起動設定ファイルによる運用の統一化
20
Launcher 基本動作ー
LauncherActivation
SystemJini Service
初期化情報の雛型を要求
初期化情報の雛型初期化情報の収集・設定
Activation Group 登録
Activation Group ID
サーバ登録 (初期化情報 )
Activation ID
サーバ起動要求起動 ( コンストラクタ呼出 )
21
GUI 版 Launcher
22
ネットワークトポロジサービス
ロケーションサービス
コード配置情報サービス
改造版 Lookupサービス
管理マネージャ (Finder)
遠隔起動サービス
機器情報サービス
被管理サービス
管理マネージャ層
情報収集層
被管理層
インベントリ情報、ネットワーク情報
ネットワークトポロジ情報
サービス配置情報
ホスト情報
join
GUI GUI GUI
被管理サービス
機器情報サービス
サービス管理システム構成
遠隔ファイル管理サービス
23
ロケーションサービス UI
24
25
ログ管理
JoinManager
改造版Lookup
サービス
状態管理
リース管理
分散イベント管理
サービス連携管理障害管理
リモートファイルサービス
DOMストレージ
サービスラウンチャ
rmid
ロケーションサービス
管理コンポーネント層
ユーティリティ層
クライアント層
Service Finder
Service UI
アプリケーション サービス・
Net Liaison 全体構成
JavaSpaceモニタ
Liaisonサービス
JavaSpace
26
Jini システムの開発・管理に有効なサービス群
JavaSpace Monitor– JavaSpace に対する操作をモニタするサービス
Remote File Service– ファイル管理を Service UI で行なえるWebサーバ
DOM Storage– XMLデータを遠隔から DOM API を使ってアクセス可能とする
サービス Liaison Service
– Jini サービスを広域ネットワーク上で利用するためのメッセージング機構
ユーティリティ・サービス群
27
JavaSpace
JavaSpaceクライアント
JavaSpaceクライアント
JavaSpaceクライアント
リアルタイムモニタ
ログ格納サービス
アクセスログ
JavaSpace モニタ
JavaSpace モニタ
28
JavaSpace
JavaSpaceモニタ
JavaSpaceプロキシ
JavaSpaceクライアント
モニタプロキシ
JavaSpace モニタの構造
モニタプロキシは JavaSpace インターフェイスを実装
クライアントは JavaSpace としてモニタにアクセス プロキシ内のキュー採用によりモニタによる性能低下
を最小限に抑制
29
30
Remote File Service
Jini サービスによるファイル管理機能を備えたWebサーバ– プロキシは java.io.File継承クラスをク
ライアントに提供– エクスプローラ風の管理 UI
Jini/RMI の動的ダウンロード機構に対応– Manifest ファイルのバージョン管理機構– Manifest ファイルの Class-Path属性の解析
31
Remote File Service UI
32
33
Liaison サービスの目的
低速・不安定なネットワークでの利用を前提としたメッセージング機構
J2SE 以下の小さな Java 環境でもサービスが利用可能な環境
ネットワークを隠蔽化した通信 API と情報収集が可能な通信管理 API
Jar ファイルのバージョン情報に基づく効率的な動的クラスロード機構
既存の Jini サービスとの互換性
34
Liaison サービス例
RolodexService
RolodexProxy
RolodexUI
Finder
RolodexProxy
StubRolodex
UI
MIDPEmulatorJAR
vCards
Servlet
MIDlet
Light Liaison
vCards
Server-sideLiaison
Client-sideLiaison
WebServer
クライアント #1
クライアント #2
クライアント #3
35
Rolodex デモ – 表示例
検索画面
アドレス表示RolodexUI画面
36
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標準仕様の一つとして,仕様・ソフトウェアを公開する予
定です.• サービス分野としては,モバイル及び情報デリバリサービス等を対象としていま
す.