TOP設計・移行・活用> オートコンポーネントの種類とコンポーネント間の連携
IdbA
IdbAで構築する生産性が高いリッチクライアント

第2回:リッチクライアントとIdbA
著者:サイオ  菅野 正樹、柏 貴光   2005/9/27
前のページ  1  2  3   4  次のページ
オートコンポーネントの種類とコンポーネント間の連携

   オートコンポーネントには以下の2つの種類があります。
  • ウィンドウ形式
  • アイコン形式

表1:オートコンポーネントの種類

   一般的に、ウィンドウ形式はオブジェクトを操作するためのUIとして提供されます。また、アイコン形式は特定のデータや性質などをカプセル化した物の表現として使用されます。

   これらオートコンポーネントが複数存在する状態で、あるコンポーネントが他のコンポーネントの提供している機能を利用する時のためのしくみが用意されています。機能を提供する側は、プロパティやアクションと呼ばれる形式や、JavaのInterfaceとしてその機能を実装します。

  • プロパティ:他から値を読みだしたり新しい値を書き込んだりする
  • アクション:他から要求された処理を実行することで機能を提供する
  • Interface:Java言語のInterfaceそのものです。

表2:コンポーネント同士が利用する機能

   あるオートコンポーネントが他のコンポーネントの特定の機能を使おうと思った場合は、Interfaceやプロパティ名を引数としてIdbAの検索サービスを呼び出し、対象が見つかったらInterfaceのメソッドをそのまま呼び出し、プロパティの場合はIdbA本体を介して機能を呼び出します。また、対象とするオートコンポーネントのプロパティを監視し、変更が発生した時点でイベントを受け取る、というしくみもあります。


通信機能

   外部との通信にはJavaが提供している機能であれば使えますが、IdbAとして積極的にサポートしている機能がいくつかあります。

   まずHTTP通信のためのプロキシサーバの設定をサポートしています。これはIdbA内に閉じた範囲で気軽に利用できますが、これを使わずにJavaランタイム側の機能を使うこともできます。またIdbA R1.5で機能強化した「Webスクレイピング機能」では、HTTPでHTMLを利用したWebサーバと通信する際に、簡易的なセッション管理とHTML解釈ライブラリを使うことによって接続容易性を格段に高めています。

   また、IdbA上のオートコンポーネントの状態を外部サーバとやり取りするためのしくみがあります。単純なプロパティであれば自動的にそれをXML化して送信したり、外部からXML化ファイルを受信してオートコンポーネントを復元したりするしくみを実装しています。


オートコンポーネントの追加/更新

   さて、既にIdbA上で動作しているオートコンポーネントの機能(実装)をバージョンアップしたい時は具体的にはどうすればよいのでしょうか。IdbAは、バージョンアップのしくみを用途に合わせて複数提供しています。

   1つ目は自動更新機能です。ネットワーク越しに取得されたオートコンポーネントの実装は、次回以降のIdbA起動時に新しいバージョンがあるかをチェックして、あれば取得し、自動的に置き換えられるようにできます。この機能はオートコンポーネント作成者が指定した時のみ有効になります。

   次に、自動的に置き換えるのではなくユーザに判断を委ねたい場合、ユーザ操作でのバージョンアップに対応したしくみがあります。

   例えば、ユーザがバージョンアップしたいオートコンポーネントをWebブラウザからIdbA上にドラッグアンドドロップすることで、まずは手元に新しいオートコンポーネントを追加します。するとその新オートコンポーネントがアイコンとなって表示されるので、それを既存のオートコンポーネントのインスタンスを表すアイコンに重ねてドロップすることで、動作中のオートコンポーネントをその場で、確認しながらバージョンアップすることができます。

   さらに、上記2つの中間的な位置づけとして、新しい実装を自動的に検出した所でユーザに通知し、許可されたらバージョンアップする、というような細かい制御も可能です。


オートコンポーネントの動作制限

   署名されているとはいえ、ユーザはオートコンポーネントがどのようなデータにアクセスするかが気になるところです。IdbAは、オートコンポーネントがセキュリティ上危険が発生する可能性があるリソースにアクセスしないように制限をかけています。デフォルトでは、IdbAの作業領域以外のファイルシステムへのアクセスや任意のプログラムの実行、他のホストとの通信などは許可されません。

   ただし、このような制限のままだと構築できないアプリケーションもありますので、オートコンポーネント単位で制限を部分的に解除するしくみがあります。IdbAは解除が必要なオートコンポーネントを認識すると、その許可をすると共にその情報を内部に蓄積し、ユーザが参照できるようにします。このしくみにより、ユーザはオートコンポーネントがどのようなリソースにアクセスする可能性があるかを確認できます。

   これら動作制限のしくみには、Javaのセキュリティーマネージャの機能を使用しています。

前のページ  1  2  3   4  次のページ


株式会社サイオ 安田 知弘
著者プロフィール
株式会社サイオ  菅野 正樹
同社の設立に参加し、1998年より現職に就任。代表取締役社長の安田とは1985年より株式会社ワイエス及び同社のプロジェクトを共にし、安田のソフトウェア構想の具現化に尽力する。東京都生まれ。


株式会社サイオ 安田 知弘
著者プロフィール
株式会社サイオ  柏 貴光
大阪の大学を卒業後、SI企業に入社。SEとしてオープン系システムの設計、開発から導入までを幅広く行う。2005年4月にサイオへ入社し、IdbAの可能性を世に広めるためライセンシング事業の立ち上げに尽力する。IdbA製品企画を担当する傍ら、同社のメールサービス「SCIO RHYTHM」の編集長も手がける。また、Linuxコンソーシアム運営委員メンバーとして広報を兼任、同コンソーシアムが発行するメールマガジンの編集長を担当。


INDEX
第2回:リッチクライアントとIdbA
  現状のシステムが抱える問題
  IdbAの特徴
オートコンポーネントの種類とコンポーネント間の連携
  開発時のポイント