【アーキテクチャ アンチパターン】Stovepipe Enterprise

Stovepipe
  • ストーブの煙突.
  • その場しのぎのアーキテクチャで構成されたソフトウェアシステムを表す.
  • こういったシステムは往々にして保守しにくい.

概要

エンタープライズシステムはそのシステムの階層ごとに設計され,それぞれ作られる. 各階層は以下のように分かれている.

  1. Standard and guidlines
  2. Operating environment
  3. Value-added functional services
  4. Mission-specific services

f:id:yusuke_ujitoko:20161123233009p:plain

これらをシステムごとに別々に選んで作ると,ほかのシステムとは全く独立したシステムができてしまう.

どんな問題が起きる?

  • 言語,アプローチ,技術がシステム間で統一されない
  • 脆い,モノリシックなシステムアーキテクチャと書類化されないアーキテクチャができる
  • ビジネスのニーズに対して拡張性がない
  • システム間でなにも再利用できない
  • システム間で相互に機能を使えない
  • 保守コストがかさむ
  • 開発者が離職しやすくなる

どんなときに起きる?

  • 標準で参照する例がないとき
  • システムプロファイルがないとき
    • ※プロファイルとは,標準化により、合意した仕様の部分集合(サブセット)であるか、選択した組み合わせの横顔(profile)の一つである。(wikipedia
  • システム間で協力する意義がないとき
  • システム開発プロジェクト間の意思疎通ができてないとき
  • 標準技術に関して詳しくないとき
  • システムを組み合わせるための,水平方向のインターフェースがないとき

どう解決する?

各レベルにおける基盤的な技術調整を行う.

  • まず基盤となる技術を調整して全体で合わせる
  • 次に共通のオペレーティング環境を確立する.
  • 最後にシステムプロファイルを定義を行う
    • 再利用できる
    • 相互に機能を使える

f:id:yusuke_ujitoko:20161123233829p:plain

Layersアーキテクチャを個々のシステムごとにつくるのではなく, 共通化できる基盤技術のオペレーティング環境などは他のシステムと共通化する. yusuke-ujitoko.hatenablog.com