クライアント型SOAの実例
アプリケーション機能の連係
IdbAにはオートコンポーネントを登録することができますが、IdbA自身はオートコンポーネント同士の連係・更新などの管理をつかさどるミドルウェアのため、アプリケーションとしての動作は行いません。
そこで、ECモール向けの機能を実装したオートコンポーネントの機能を連係させる、アプリケーション本体部分の作成が必要になります。本体部分もIdbA配下では配信可能なオートコンポーネントとなっていますが、他のオートコンポーネントの管理するという役割に特化しています。この点がIdbAをミドルウェアとして活かした『速販盛』の核となる部分です。
オートコンポーネントの実装と再利用性
オートコンポーネントをそれぞれ連係して作動させることができるのは、IdbAで構築する生産性が高いリッチクライアントを紹介した「第2回:リッチクライアントとIdbA」を参照していただけるとおわかりになると思います。連係方法は複数用意されていますが、「『速販盛』ではJavaインターフェースを主に利用しています。
実装はJavaによる開発ということもあり、IdbAプラグインをEclipseで利用することで、オートコンポーネントのクラスを簡単に作成することができます。また、オートコンポーネントはECモールの例のように同一レベルでの横並びで設計することが多くなります。1つ雛型となるクラス設計ができあがると、使いまわしが可能になり(再利用性の向上)、生産性の向上が見込めます。
クイック&スモールスタート
社内LANにWebサーバを設置してコンポーネント配信サーバとすることで、Java Web Startにより各クライアントに配信する方式をとりました。初回起動時はjnlpファイルにアクセスするだけで簡単にインストールできます。またアップデート時は、最新モジュールをサーバにアップするだけで完了します。
アプリケーション起動時に新しいコンポーネントが各クライアントに自動で配信されるため、個々の利用者はアップデート処理を意識して行う必要がありません。プログラムの修正度合いにもよりますが、お客様へ配布するまでのタイムラグの短縮に貢献できていると感じています。また比較的規模が大きい修正の場合は、段階的な修正・導入が容易な環境を実現しています。
システム要求に対する柔軟さとメンテナンス性の高さ
インテリアオフィスワン社は、「今後は会計・顧客管理システムなどのバックエンドのシステム導入についてもIdbAを採用し、業務全体の効率を向上させるだけではなく、当社の事業の拡大にあわせてシステムが自在に変化できるシステムを構築したいと考えています」と語っています。
各インターネットショッピングモールに対して個別に行っていた商品登録と受注管理を本システムを構築により一括処理することで、作業負担を1/3に削減可能になりました。そういったことから、IdbAのシステム要求に対する柔軟さとメンテナンス性の高さを評価していただいています。
まとめ
IdbAを用いたクライアント型SOAシステム構築は、従来のJavaコンポーネントベース開発と比べて大きく変わるところはありません。コンポーネント間の連係はIdbAが行ってくれるため、一定の処理の記述方法を覚えればJava開発経験のある方は問題なく開発を行うことができるでしょう。設計フェーズでは、メンテナンス性と再利用性を考慮しながら変化が予想される範囲を見極め、コンポーネントの機能と粒度を設定するポイントに注意さえすれば問題ないでしょう。
今回の事例で追加開発したECモール用コンポーネントは、『速販盛』開発初期に作成した同等のコンポーネントと比較し、開発期間を1/3程度に短縮することができました。システムを拡張しながらも、メンテナンスコストを抑えることに成功しています。今後も多種多様なサービスに対応した連係機能を『速販盛』に搭載することにより、さらなる柔軟性と低コストの両立を進めていきます。