クライアント型SOAの実例

2005年10月28日(金)
三野宮 聖二郎中岡 健

変化対象に応じたオートコンポーネントの粒度

オートコンポーネント化に際して、サービスと機能の範囲が限定されることはありませんが、オートコンポーネントの粒度には注意する必要があります。粒度が細かくなると設計・実装の難度があがり、粒度が大きいと保守性が落ちます。

そのためオートコンポーネントの粒度は、変化が予測される部分に応じて設計する必要があります。今回の事例では、ECモールの機能をまとめて1つのオートコンポーネントとしていますが、それぞれの場合に対応して内部の通信部分のみをオートコンポーネントとすれば、その単位での保守・配信も可能になります。

サービスの粒度
図3:サービスの粒度


クライアント型SOA構築時のデータ設計

複数の担当者でデータを共有して利用するということから、データベースを導入するために社内にサーバを設置し、開発の初期段階でデータ分析を行いました。

ここで問題となったのはクライアント型SOAとして実装した場合、IdbAの拡張性をどのように活かすかということです。XMLデータベースやオブジェクト指向型データベースなどの技術も検討しましたが、パフォーマンスと開発メンバーの実績からRDBを採用しました。RDBは「まずデータありき」の世界であり、IdbAの自動配信機能で新たなサービスを導入した場合、新たなテーブルやフィールドを自動で作成することはできません。

そのため拡張が予想されるシステムには、柔軟に利用できるテーブル設計を考える必要がありました。場合によっては、当面不用と思われる領域を用意して将来の拡張に備えるといったことや、テーブルに曖昧なフィールドを定義(利用上での)しておくといった対応をとりました。
 

クライアント型SOA構築時のデータ設計
図4:クライアント型SOA構築時のデータ設計


ユーザインターフェースのバランス

ユーザインターフェースはお客さまからの要望もしくはこちらからの提案により作成しました。オートコンポーネントがユーザインターフェースを保持している場合もあり、統合して出力した際の全体のバランスを調整する必要がありました。
実装はSwingベースで作り込みができるという利点がありますが、時間がかかってしまう場合もありました。IdbA次期バージョンでは拡張したSwingコンポーネントの提供、VisualEditorなどの連携により生産性を向上させていく予定です。
 

『速販盛』画面例
図5:『速販盛』画面例
(画像をクリックすると別ウィンドウに拡大図を表示します)
株式会社サイオ

一括!コマース担当マネージャー
大学を卒業後、SI企業に入社。SEとしてBtoB向けシステムの開発から導入までを行う。その後インターネット関連会社にて商品企画・販促企画に携わり、2005年8月にサイオへ入社。一括!コマース『速販』、『速販盛』の担当として従事。

株式会社サイオ

開発部リーダー
SI会社にて汎用機開発からオープン系システムまで幅広く開発に携わり、プロジェクトリーダーとして業務推進を行う。現在はサイオにて、IdbAを中心と したソリューション開発、システム構築を通して「Rimless Computing」構想の実現を推進している。

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています