Transcript Jiniの概要
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