ゆーたんのつぶやき

株式会社ノークリサーチにてIT関連のシニアアナリストとして活動しています。

リッチクライアントには『プチJ2EE』



先週、IBMWorkplace Forumへ行ってきました。
http://www-06.ibm.com/jp/software/lotus/events/workplace/
ボクの所属する事業部でもWorkplaceと同様に
クライアント側の基盤技術としてEclipse RCP
を採用しているので、そのための勉強と情報の
収集というのが目的でした。


特徴的だなぁと感じたのはWorkspace Managed Clientも
WebSphere Everyplace Deployment Clientも共にJ2EE
のプチ版ともいえるものをクライアント側に持っている点
です。


単にAPサーバーを動かすだけではなく、ローカルデータベース
はもちろん、ローカルEJBコンテナも装備しており、きちんとした
四階層の構造を持っています。アプリケーション開発の際も
ビジネスデリゲートをきちんと挟むことが推奨されています。


こうすることのメリットの一つはサーバー側とのデータ同期や
レプリケーションが実行される場所をローカルデータベースに
集約することで、オフライン対応アプリケーションの開発負荷
が大幅に減ることです。
この手法はブラウザをクライアントとするWebアプリケーション
の場合でも適用ができるので、ユーザー側に「接続できません、
オフラインで作業しますか?」といった無粋なメッセージを表示
せずにスマートにローカルアクセスに切り替えることもできます。


もう一つのメリットは各UIコンポーネントはオンライン時に接続
するサーバー側ビジネスデリゲートであれ、オフライン時に接続
するローカルビジネスデリゲートであれ、同じインターフェース
を見ていさえすれば良いということです。オンライン時とオフラ
イン時でビジネスロジックへのアクセス方法が異なると、それが
開発時には大きな負担になってしまいます。ですがクライアント
側にもサーバーと同様のビジネスデリゲートを持たせることで、
オンライン/オフラインの切り替えがスマートになるのに加えて
UIコンポーネントの再利用性を向上させることができそうです。


クライアントサイドのJ2EEの構成を持たせるというのは大袈裟な
感じがしますが、モバイルデバイスのスペックも徐々に上がって
きていますので、さほど遠くない将来にはオフラインに対応した
アプリ開発の一つのパターンになっているかも知れませんね。