隔週で掲載している本ブログ、先々週は社員旅行を理由に1回飛ばさせていただいた。今回は前回に引き続きHUBアーキテクチャの進化形についてのお話しをさせていただき、ひとまずHUBアーキの連載はこの回で終了としたい。前回、前々回ではREPOSITORYも含むHUB単独のメカニズムとそのメリットについてお話した。今回はその応用型として、エンタープライズシステム全体が円滑に機能するための、複数のHUB間の連携について考えてみたい。
最初に、データHUBの「“共通データ”を中心に据えて不特定多数の利用先へ配信する」という機能についてであるが、そもそも“共通”とは何であろうか?どうも漠然としていないか?そう、共通とは「XXXXで共通」という範囲を示す言葉が必要なのが分かる。これを昨今の企業システムに当てはめると、部門共通、全社(1法人)共通、グループ(連結企業)共通、あるいは少し切り口は異なるが国内共通、リージョン(地域)共通、グローバル(地球規模)共通、さらには資本関係のないサプライチェーン企業グループなど様々なレベルの範囲が挙げられる。
もうお分かりであろう。大企業(特にグローバルに事業展開した)におけるエンタープライズHUBには階層が存在するのだ。マスタデータに着目すれば、上位からグローバルHUB⇒リージョンHUB⇒ナショナルHUB⇒ディビジョンHUBなどの全てまたは一部の階層を下って、最下位に位置する個別業務アプリケーションに共通マスタデータが届けられることになる。図1にその有様を描いてみた。さながらシャンパンツリーの如くグローバル共通マスタは最上位から順にHUBを下って個別業務アプリへ、リージョン共通マスタはリージョンHUBから途中乗車し個別業務アプリへとマスタデータが同期連携される。
次に上下階層のHUB連携とは違なり、同一階層(リージョン内など)にあるが種類の異なるHUB連携が考えられる。代表的なデータHUBの種類にマスタデータHUBが挙げられるが、それ以外にも汎化された受払データを中心に据えたSCMトランザクションHUBや会計仕訳データを中心とした会計HUB、さらには印刷データ一式を蓄えたプリントHUBなど、共通データをHUBで共有することでデータ連携パスの最小化やデータ処理部品の共通化を図ることが可能である。これらの共通データHUBを1つの物理的なHUBに集めることも考えられるが、データ流通における輻輳やHUBの役割分業を考えた際に、適度にHUBを分けた分散協調型のアーキテクチャを推奨したい。
以上から、HUBの階層分離、機能分離を踏まえたエンタープライズアーキテクチャは図2のように異なるHUB同士が中核となるデータを互いに連携し合い、その周りに個別アプリケーションが取り巻くといった様相を呈し、あたかも神経伝達システムのシナプスのような絵になる。余談であるが、複雑系の良く出来たシステムにおいて“人体システム”の右に出るものはない。
臓器のバックアップ機能や循環器のバイパスなどは実に良く出来た自然の産物であり、エンタープライズシステムのアーキテクチャ設計に大いに参考になる。例えば、マスタデータHUBが血液を送り出す心臓のメタファーのように。
話を元に戻し、この図2のアーキテクチャは企業にとって主要なデータがお互いに緩やかにシンクロナイズし、それぞれが関係しあって全体として機能していることを示している。また、この主要なデータは周辺の緊密な業務アプリケーションによって最も身近な影響を受けるが、遠く離れたHUBにぶら下がるアプリケーションも少なからず遅れて影響は受けることになる。とめどなく拡大する企業システムでは、まずは社会に対するリスクマネージメントを最優先で考える必要がある。クラウド時代のエンタープライズアーキテクチャには、すぐさまトラブルが全域に波及するガチガチの大規模密結合モデルではなく、全体の規模は大きいが各々のユニットが自律分散協調できる疎結合モデルが適している。
そしてこのアーキテクチャはどこか生物のシステムに似ている。