これから始めるサービス指向型設計――単独システムとは違う世界へようこそ:戦う現場に贈る分散システム構築−開発現場編(7)(2/2 ページ)
中堅メーカーで、複数システムを統合する大役に悪戦苦闘を続けてきた豆成くん。そんな豆成くんは自分が発注する作業を、自分で実行する羽目になろうとしていた!
システム要件定義とは
本連載の特徴であるが、開発作業を実施する対象が単体のシステムではなく複数の既存システムであり、しかも新規開発ではないというおまけ付きである。このような複数の(単体)システムをまたがる大規模なシステムの要件を定めることもまた必要となるだろう。この複数のシステムをまたがる仮想的な大きなシステムのことを「スーパーシステム」(またはメタシステム)と筆者らは呼んでいる。
この要件定義からソフトウェア要件定義・開発までのグレーの部分をカバーし、スーパーシステムの要件を定義するのが、豆成くんたちが次ぎに行うべきシステム要件定義である。システム要件定義は前段に相当する、豆成くんが前回までに実施してきた要件定義を技術的に検証しつつ、技術的な要件に変換する作業となる。
システム要件定義は前段に相当する要件定義と同じく、システム機能要件とシステム非機能要件の2つの側面を持っている。冒頭に蔵田がいったとおり、業務に精通している作業者がシステム機能要件の面を、技術に精通している作業者がシステム非機能要件の面を担当するのが適当だろう。
もし豆成くんが1人でそのすべてを担当することになった場合、業務内容を知らずに設計してしまうことになる。この場合、最悪のケースとして納品時に「想定していたものと違う」というクレームを受けて紛糾してしまうこともあるだろう。この点でも、(偶然とはいえ)豆成くんが業務に精通していた蔵田を引き込んだことは正解だったといえよう。
システム方式設計とサービス指向型設計
その後の作業として、この“開発現場編”の主題でもある「システム方式設計」が待っている。システム方式設計とは、システム要件定義で実装可能な要件として変換されたものに対して、一対一で設計していく作業である。ちなみに「方式」とはArchitectureの訳であり、建築用語の「様式」「思想」などに相当する。転じて、システム全体が持つべき決まりごとや設計方針などを設計し、そのうえに各機能を載せていく作業となる。
本編でこの作業時にテーマとしたいのが、サービス指向型設計である。このサービス指向という単語はSOA(Service Oriented Architecture)ですでにおなじみの言葉ではあるが、残念ながらこの単語自体にはESBやBPMスイートなど製品寄りのイメージがつきまとっている。本編ではそうした製品の話ではなく、純粋に「設計手法としてのサービス指向」として取り上げていきたい。
この「サービス」という言葉であるが、物理的なシステムのサービスという狭い意味合いだけのものではない。業務が実現すべき機能としてのサービスという、より抽象度が高く、論理的な話をも含む。つまり、業務から導き出した要件を基にして、「サービス」の側面からシステム化のための設計を行っていくという手法である。この手法は特に複数のシステムをまたがるスーパーシステムの設計時に有用であると考えている。
このあと豆成くんが前回までに苦労して仕上げた要件定義を基にして、どのようにシステムの設計を行っていくべきなのか。その点を中心にして、次回以降豆成くん+蔵田先輩のコンビが直面する苦難に少しばかりお付き合いいただきたい。
筆者プロフィール
岩崎 浩文(いわさき ひろふみ)
株式会社豆蔵 BS事業部。ITコンサルティング会社にて商用フレームワーク設計・構築およびITアーキテクトとして多数の企業システム設計・構築に携わる。その後、サーバ製品ベンダにてSOAコンサルタントを担当したのち、2005年より現職。現在、方法論「enThology」(エンソロジー)の策定とSOA型システム設計支援の主任担当として多くの現場へ支援を行っている。
- 既存システムという制約とアーキテクチャ――どうつなぎ、うまく再利用するか
- システムアーキテクチャとSOA製品選定――分散するシステムをつなぐ製品について
- 悩ましき分散システムのアーキテクチャ――要件に合致したシステムを設計するために
- これから始めるサービス指向型設計――単独システムとは違う世界へようこそ
- その分散システムは、正しく作られているか?――開発後の検証・受け入れを考えよう
- ここが核心! 各サービスの抽出とサービス統合――SOAサービスの切り出し方とその統合方法
- 理想像と現実のフィット&ギャップを知る――業務分析の成果をシステム統合に活かす
- システム統合になぜ業務分析が必要なのか?――作業の理由とITガバナンス
- システムを統合するために必要な事前知識――必須となる技術要素の整理と整合性について
- 緊急課題! 点在する複数のシステムを統合連携せよ――問題山積! 乱立する情報システムの解法とは?
Copyright © ITmedia, Inc. All Rights Reserved.