« 動的参照関係を「宣言的」に扱えるか | トップページ | バリデーションの双方向性問題を解く »

2012.01.04

企業システムの基本構造を理解しよう

 企業システムには次図で示すような基本構造がある。実際のシステムは固有の経緯にもとづく物理構造をとるが、それを「基本構造からの逸脱」として理解することで特性を把握しやすくなる。システムの統合や刷新といったさまざまな文脈でも役立つ知識なので、理解しておこう。

20120103

 含まれている5つのモジュール(a,b,c,d,e)を説明しよう。まず、共通データ管理(a)のモジュールでは、企業システム全体で共有されるべきDBが管理される。企業名や住所、ユーザ、取引先、消費税率といった企業システム全体で利用される情報がそれには含まれる。

 営業管理(b)はいわゆる「基幹システム」と呼ばれるモジュールだ。売上・仕入・在庫といった営業活動にともなう会計情報がここで管理される。業種毎に大きく変わる部分で、製造業では「生産管理システム」、金融・保険業では「契約管理システム」などと呼ばれる。売掛金に対する入金、買掛金に対する出金に関する情報を、dとやりとりする。

 人事給与(c)では、従業員や給与などの情報が管理される。「従業員」と、aで扱われる「ユーザ」とは似て非なる概念で、システムを利用しない(つまりユーザでない)従業員も存在するし、従業員と対応しないユーザ定義(アドミニストレータ)も存在する。cは、b,d,eの各モジュールに従業員や組織に関する情報を提供するほか、bからは業績査定のための営業担当者別の売上情報を受け取ったり、dに対して給与の出金指示情報を渡したりする。

 「語られないアーキテクチャの謎」でも説明したように、財務管理モジュール(d)と会計データ管理モジュール(e)とを異なるモジュールとして置いているのはわざとである。前者は「財務情報」を管理するいっぽう、後者は「会計情報」を管理する。会計システムパッケージは、これらを単一のモジュールとして実装したものだ。論理的には、制度会計や管理会計や税務管理のためのモジュール(e)は、レイヤ2の3モジュール(b,c,d)とは別のレイヤを成すと考えるほうがエレガントだ。eはそれ以外のすべてのモジュールのデータを参照するからだ。

 現実には、図中の5つのモジュールがそれぞれ独立した形できれいに実装されるケースはほとんどない。上述したようにdとeとが融合しているケースがほとんどであるほか、aを独立させているケースもそれほど多くない。また、ほんらいならば単一であるはずのモジュールが複数に泣き別れになっているケースもある。たとえば製造業において、bが「製造管理」と「販売管理」に別れているケースも少なくない。「生産管理システム」がことさら「製販統合システム」と呼ばれることがあるのはそんな事情からだ。bは事業毎に1個用意されるのが、ほんらいの姿である。

 これらのモジュールが「疎結合」した形で動作する点にも注意してほしい。ここでの疎結合の意味は、各モジュールで管理されている情報が他のモジュールから参照されるのみで、更新されることがないということだ(図上の矢印は参照の方向を示している)。「疎」のままにしておくことで、モジュール内の個別の事情をより効果的に隠蔽できるようになる。結果的に、システム全体の保守性が高まる。

 疎結合の鍵となるモジュール間の情報のやりとりに関しても、さまざまなバリエーションがある。ほんらいなら、他のモジュールで管理されているテーブルであっても、モジュール内のテーブルと同様に手軽に読取できたほうがよい(機密保護はまた別の課題だ)。したがって、各モジュールの開発基盤は異種DB(異種RDBMS)の統合手段を提供できなければいけない。

 とはいえ、それぞれのDBがそれぞれのモジュールの事情に応じて運用されているからには、バッチ処理のような非同期方式が適している場合もある。たとえば、b,c,dで発生する会計情報(仕訳の元ネタ)は、バッチ処理でeに渡される形式でよい。自由なタイミングで参照できるようにすると、締めの問題からかえって問題が生じてしまう。

 このようにほんらいの姿と異なるケースが多いとはいえ、「基本形」を理解しておくことは有意義だ。ネズミとクジラが哺乳類として同類であると私たちが理解できるのは、「哺乳類の基本形」の知識のおかげだ。「基本形からの逸脱」が生物種にも企業システムにも個性を与えている。その個性はしばしば環境変化への対応の鈍重さとして働くが、生き残るための武器となるケースもある。現実をより深く理解するために、まずは「基本形」を理解しておこう。

|

« 動的参照関係を「宣言的」に扱えるか | トップページ | バリデーションの双方向性問題を解く »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック


この記事へのトラックバック一覧です: 企業システムの基本構造を理解しよう:

« 動的参照関係を「宣言的」に扱えるか | トップページ | バリデーションの双方向性問題を解く »