TOPThinkIT News> 「SOAへと繋がるノウハウと経験を培ってきた」 - HITACHI Open Middleware World 2005 Autumn開催
ThinkiIT News
株式会社 日立製作所
株式会社 日立製作所

「SOAへと繋がるノウハウと経験を培ってきた」 - HITACHI Open Middleware World 2005 Autumn開催

2005/12/2
システムのコンポーネント化への取り組み

   株式会社日立製作所 ソフトウェア事業部 Java/XMLソリューションセンタ ソリューションビジネス推進部長 桐越 信一氏は、「日立はSOAが本格的に普及する前から、システムをコンポートネント化して実装することに取り組んできた」と、日立が1999年から取り組んでいるシステムのコンポーネント化への取り組みを説明した。

桐越 信一氏
桐越 信一氏

   プロジェクトは他社(製造業)のSCMシステム構築をJavaベースで刷新したいという要望からはじまったという。当時は現在に比べてJavaで開発する環境が充実していなかったが、それでも無駄を設計工程で3割減、コーディング工程で1割減、テスト工程で2割減したとプロジェクトの成果を語った。

   その結果について桐越氏は、「当時はこれでも立派な成果という意見もあったが、自分では5割〜8割のコスト減ができなければ駄目だと思っていた」と当時を振り返り、プログラム構造がバラバラだったのではないかと述べた。

   その上、いきあたりばったりのコンポートネント開発だったので、再利用性の高いコンポーネントが作れなかったという。

   当時は適用する技術を増やすことでシステムの生産性を多少はあげることができたが、抜本的な解決策になっていなかったことが伺えた。


コンポーネントベースモデリングのアプローチ

   システムの生産性向上への抜本的な解決策として、コンポーネントベースモデリングを行ったと桐越氏は述べた。コンポーネントベースモデリングはビジネスの機能を切り出してコンポートネント化することであり、機能要素に注目することが重要だという。

業務とアプリケーションの構造
図1:業務とアプリケーションの構造
(画像をクリックすると別ウィンドウに拡大表示します)

   続けて桐越氏は「CRMやSCMなどは独立したシステムであるが、業務要素として細かい単位に分けられるのではないかと考えた」と業務とアプリケーション構造の整理をして、各システムで共通する業務を洗い出した。

   例えば販売管理には受注/出荷などの要素があり、わざわざ新しいシステムを作らなくても、共通コンポートネントとしてこれらを連携させればよい。こういったことがSOAへと繋がってくのではないのだろうか。

   そして桐越氏は、「共通コンポートネントをつくるのが当時の目標であり、そのためにも粒度を分ける必要があった」とコンポートネントの粒度について説明した。

コンポートネントの粒度の定義
コンポートネントの粒度の定義
(画像をクリックすると別ウィンドウに拡大表示します)

   「与信」する際には「入力」「チェック」「登録」といった振る舞いがあると在庫管理の例をあげた。サービスの粒度とはビジネス機能の大きさであり、「与信」する際に行う「入力」「チェック」「登録」といった機能は「与信」よりも粒度が小さい。

   それら振る舞いはSOAでいうサービスであり、このように機能要素に着目したことが日立のSOAソリューションのベースとなったのではないのだろうか。


コンポートネント化を実現するモデリング

   講演も後半に入ると、桐越氏は「生産管理システムと資材システムはシステムが違い、当然プロパティは違うがメソッドは同じ」と図2のように業務コンポートネントはシステムコンポートネントに取り入れられると述べた。

   これはSOAで実現できることだが、当時はMDA(注1)とUML(注2)によるモデリングにより実現したという。

※注1: MDA(Model Driven Architecture):モデリングによるシステム開発を実現する手法
※注2: UML(Unified Modeling Language):分析/モデリングの際に利用する言語

   モデリングとは情報システムの開発において複雑な構造を抽象化し、単純化したものを作ることである。このように業務機能を分析していく手法は以前からあることから、SOAの考え自体は新しくはないといえる。

   最後に、桐越氏はコンポーネント化について、次のようにまとめた。

  • 業務分析からのモデリングが必要
  • そのための一貫した分析/開発プロセスと開発支援が必要
  • MDAベースではモデルそのものの再利用も可能となる
  • 作成したコンポートネントを効率よく管理/運用するための体制と仕掛けが必須

表:コンポーネント化に必要なこと

   本講演は重点的にシステムのコンポートネント化について説明であることから、現場で活躍するエンジニアと思われる参加者で賑わっていた。

   また技術的な解説が多く、より現場に一歩踏み込んでいたので、「SOAが普及する以前のプロジェクトから蓄積したノウハウと経験が、SOAを構築する上でいかに役立っているか」ということが参加者に伝わったのではないのだろうか。