|
||||||||||||
| 前のページ 1 2 3 4 次のページ | ||||||||||||
| IdbAの特徴 | ||||||||||||
|
通常のリッチクライアントはアプリケーションを1つの画面として作成するのに対して、IdbAではコンポーネントを単位として作成していきます。コンポーネントとは、アプリケーションを機能単位に分割した中の1つを指すとお考えください。 例えば、何かデータを受け取ってそれを一覧表示して演算を行う表だとか、あるいはデータそのものでもかまいません。IdbAは、これらのコンポーネントをクライアント側で実行中に動的に追加してアプリケーションを組み上げていくことができます。 これらの動的に追加更新可能なコンポーネントを、IdbAではオートコンポーネントと呼んでいます。このオートコンポーネントがクライアント側のUIを提供することにより、クライアント側で操作性の高いアプリケーションを動作させることができます。 また、機能単位に分割されたオートコンポーネントにバージョンアップが発生した場合やまったく新しい機能をもったオートコンポーネントが公開された場合は、その機能の差分だけをアプリケーション実行中に追加・更新が可能です。 さらに、これらのオートコンポーネントはユーザの意思で追加・更新・削除を行うことができます。つまりこれは、ユーザ側で能動的に機能を取捨選択が可能で、より柔軟なアプリケーションになれるということを意味しています。 また、IdbAはオートコンポーネントを管理し、動的に連携させるアプリケーションプラットフォームです。ということは、オートコンポーネントの作成方法がわかっており、アプリケーションの作成者が機能を追加するためのコンポーネントの仕様を公開していれば、第三者が便利な機能を作成・提供してくれる可能性も広がります。 第三者から動的にコンポーネントを追加するとなると、気の利く方であればそのコンポーネントの安全性が気になることと思います。この問題について、IdbAは「ユーザが信頼する作成者が提供するコンポーネントのみ動作させる」ことで、悪質なコンポーネントが紛れ込むことを防いでいます。 ![]() 図3:コンポーネントの配布 |
||||||||||||
| IdbAの基本動作 | ||||||||||||
|
IdbAのオートコンポーネントはコンパイルされたJavaクラスファイルやリソースなどをJar形式で固めた物で、IdbAが提供するクラスを継承したクラスと、そのクラスの名前などをテキスト形式で記述したファイルを含んでいます。IdbAはこのファイルを手がかりにインストールされているオートコンポーネントの一覧を作成して管理します。 また、IdbA本体(IDBA.jar)はJavaの独立したアプリケーションで、直接メインクラスのメソッドを呼び出すことで起動することもできます。しかし事前にセキュリティポリシーの設定が必要になるため、通常は小さなローダ(IDBAboot.jar)を介して間接的に起動します。またJava Web Startからも起動できるので、サーバからIdbA本体やオートコンポーネントの取得、インストールと起動までを自動的に行わせることもできます。 起動用のしくみを経てIdbA本体に制御が移ると、IdbAはまずJavaランタイムのプロパティを元に自分自身の設定を行い、次に前回の動作時に自動的に保存された環境設定を読み込みます。そして、オートコンポーネントのコードが含まれるjarの一覧を読み込みつつそれらのjarファイルを自分自身に登録して行きます。その後、保存されているシリアライズ形式のデータを使いオートコンポーネントの状態を復元して定常状態に移り、オートコンポーネントからの要求を待ちます。 これにより、基本的には前回の終了時の状態を引き継いで処理を続行することになります。この仕様は、IdbAはオートコンポーネントを操作するためのパーソナルな環境として作られていることによります。アプリケーションの性質によってはローカルな細かい状態を引き継ぎたくないこともあると思いますが、その場合はオートコンポーネント側の再起動処理で自身を初期化することで対応できます。 |
||||||||||||
| IdbAのユーザインターフェイス | ||||||||||||
|
通常、IdbAのアプリケーションのUIはSwingを使用して作成します。本体は環境設定やオートコンポーネントのインスタンス化のためにSwingを使用し、各オートコンポーネントもSwingを使用してUIを構築していきます。 サーバ上のプロセスとして利用するなどSwingが必要ない場合は、起動時の引数でSwing関連の処理を抑制することができます。 |
||||||||||||
|
前のページ 1 2 3 4 次のページ |
||||||||||||
|
|
||||||||||||
|
|
||||||||||||
|
||||||||||||
|
|
||||||||||||
|
||||||||||||
|
|
||||||||||||
|
||||||||||||
|
|
||||||||||||
|
||||||||||||
|
|
||||||||||||
|
||||||||||||
|
|
||||||||||||
|
||||||||||||
|
|
||||||||||||
|
||||||||||||




