TOP
>
設計・移行・活用
> IdbAの特徴
IdbAで構築する生産性が高いリッチクライアント
第2回:リッチクライアントとIdbA
著者:
サイオ 菅野 正樹、柏 貴光
2005/9/27
前のページ
1
2
3
4
次のページ
IdbAの特徴
通常のリッチクライアントはアプリケーションを1つの画面として作成するのに対して、IdbAではコンポーネントを単位として作成していきます。コンポーネントとは、アプリケーションを機能単位に分割した中の1つを指すとお考えください。
例えば、何かデータを受け取ってそれを一覧表示して演算を行う表だとか、あるいはデータそのものでもかまいません。IdbAは、これらのコンポーネントをクライアント側で
実行中に動的に追加して
アプリケーションを組み上げていくことができます。
これらの動的に追加更新可能なコンポーネントを、IdbAではオートコンポーネントと呼んでいます。このオートコンポーネントがクライアント側のUIを提供することにより、クライアント側で操作性の高いアプリケーションを動作させることができます。
また、機能単位に分割されたオートコンポーネントにバージョンアップが発生した場合やまったく新しい機能をもったオートコンポーネントが公開された場合は、その機能の差分だけをアプリケーション実行中に追加・更新が可能です。
さらに、これらのオートコンポーネントはユーザの意思で追加・更新・削除を行うことができます。つまりこれは、ユーザ側で能動的に機能を取捨選択が可能で、より柔軟なアプリケーションになれるということを意味しています。
また、IdbAはオートコンポーネントを管理し、動的に連携させるアプリケーションプラットフォームです。ということは、オートコンポーネントの作成方法がわかっており、アプリケーションの作成者が機能を追加するためのコンポーネントの仕様を公開していれば、第三者が便利な機能を作成・提供してくれる可能性も広がります。
第三者から動的にコンポーネントを追加するとなると、気の利く方であればそのコンポーネントの安全性が気になることと思います。この問題について、IdbAは「ユーザが信頼する作成者が提供するコンポーネントのみ動作させる」ことで、悪質なコンポーネントが紛れ込むことを防いでいます。
図3:コンポーネントの配布
このように、IdbAは通常のリッチクライアントプラットフォームの利便性を持ちながら、さらにコンポーネントの差分配信・動的な結合という優位性が備わっています。これはすなわち、低運用コストと高い保守性を意味していることに他なりません。
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を構築していきます。
図4:IdbAのユーザインターフェイス
(画像をクリックすると別ウィンドウに拡大図を表示します)
サーバ上のプロセスとして利用するなどSwingが必要ない場合は、起動時の引数でSwing関連の処理を抑制することができます。
前のページ
1
2
3
4
次のページ
著者プロフィール
株式会社サイオ 菅野 正樹
同社の設立に参加し、1998年より現職に就任。代表取締役社長の安田とは1985年より株式会社ワイエス及び同社のプロジェクトを共にし、安田のソフトウェア構想の具現化に尽力する。東京都生まれ。
著者プロフィール
株式会社サイオ 柏 貴光
大阪の大学を卒業後、SI企業に入社。SEとしてオープン系システムの設計、開発から導入までを幅広く行う。2005年4月にサイオへ入社し、IdbAの可能性を世に広めるためライセンシング事業の立ち上げに尽力する。IdbA製品企画を担当する傍ら、同社のメールサービス「SCIO RHYTHM」の編集長も手がける。また、Linuxコンソーシアム運営委員メンバーとして広報を兼任、同コンソーシアムが発行するメールマガジンの編集長を担当。
INDEX
第2回:リッチクライアントとIdbA
現状のシステムが抱える問題
IdbAの特徴
オートコンポーネントの種類とコンポーネント間の連携
開発時のポイント