モノリスまたはレンガ?

今日、ソフトウェアシステムのアーキテクチャについては、モノリシックまたはモジュール式の小さな哲学があります。 いつ、どのようなモジュール性が有用か、それは常に良いのかそうでないのか。 まあ、より具体的には、ERPシステムについては私たちの身近なトピックです。





定義。



論争の炎をfanく前に、定義に同意する必要があります。



モノリシックシステムは、唯一の構成とプログラムコードの量でのみ機能するソフトウェアパッケージです。 モジュラーシステムは、独立した自己完結型のソフトウェアシステムで構成されるソフトウェアパッケージです。



定義は少しトートロジーを与えますが、モジュール式システムとモノリシックシステムの間に非常に明確な境界線を引くことは不可能です。 ソフトウェアシステムの概念に明確な定義がないためだけに。 ファジーロジックの観点では、モジュールの外部インターフェイスと外部システムへのアクセスの数が減少すると、システムがモノリシックである確率が高くなります。 また、システムは、システムに存在する多数のインターフェイスよりもモジュール化されています。



モノリシックシステムの分離も異なります。モジュールのデータは所有者モジュールのみが利用でき、残りのモジュールは外部インターフェイスを介して情報を受け取ります。 ERPシステムの場合、これはこれらのモジュールをモジュールごとに異なるDBMSまで分離することを意味します。



定義を扱った後、論文に進みます。



ERPシステムの現実には、まさにそのような例があります。既存の集中的に相互作用するサブシステムの機能は変化しています。 中断のコストは非常に高くなります。



ERPシステムは、人類が作成した最も複雑なソフトウェアシステムの1つ(OS、ゲーム、Google、Facebookなど)であり、ビジネスプロセスの変化に伴い変化する必要があるため、他のソフトウェアシステムよりも速く変化します。 そのため、モジュラーシステムは、正式な品質管理メカニズムが不足しているため、交換プロトコルの変更が累積するという大きな問題に直面し始めています。



まとめると、モジュラーシステムは、新しい機能を作成するという形で、システムの機能の増加のみが必要な安定した環境で、安定したアプリケーションのための優れたアーキテクチャソリューションです。



多かれ少なかれ、実際に使用されている(1995年以降に作成された)システムは、モノリシックアーキテクチャを備えているか、モノリシックアーキテクチャに引き寄せられています。



モジュラーアーキテクチャには、実験システム、または一連の買収と購入したソフトウェアシステムのシステムの「モジュール」への変換の結果としてモジュラーアーキテクチャを受け取ったシステムがあります。 そのようなシステムは、最終的に、メッセージの交換、インターフェースの変換、およびモジュール間の相互作用を実装するための他のメカニズムのための非常に洗練された機能を備えています。 私たちの経験では、モジュールの数が増えると複雑さが急速に増大します。



少し前まで、この記事の同僚の1人は、1Cのモジュール性の欠如について不満を述べていました。 1C開発者は、1つまたは別のモジュールの存在に関するあらゆる種類のチェックに満足しているとは思いません。 1Cをサポートしている企業だけが、1つのプログラムではなく、複数のモジュールを一度に構成する必要があり、それらの統合のミドルウェアさえも構成する必要があることを喜ぶでしょう。



モジュールが会計、倉庫、財務管理、従業員などであるモジュラーERPシステムの機能に移りましょう。



少なくとも、ERPシステムは会社の実際の状況を反映する必要があります。 たとえば、商品の在庫量。 または当座預金の金額。 モジュラーシステムは、疎結合および分離されたモジュールにより、情報の複製にすばやくロールオーバーします。 さらに、指標の多様性へ。



たとえば、倉庫モジュールは倉庫から10個の商品を償却します。 金融モジュールは、個別のトランザクションでそれらの価値を相殺する必要があります。 ただし、作業の過程で、重要でないイベントが発生します-チャネル障害、交換プロトコルの変更。 しばらくして、商品が在庫にない-ゼロ個であることが判明し、在庫のこの商品の金融モジュールのデータには100ルーブルがあります。 その結果、財務モジュールに特別な修正が表示され、さらにそのようなエラーがシステム全体に伝播します。 モノリシックシステムでは、倉庫からの償却は、金銭と商品の移動に関する単一の操作(この場合は単一のレコード)であり、データの信頼性が大幅に向上します。



モノリシックシステムのデータは単一のデータベースにあり、参照整合性のすべてのルールが満たされ、データ構造の変更はシステム全体で同じです。 したがって、実際のいくつかのオプションの出現は言うまでもなく、データの歪みの可能性は大幅に減少します。



結論として。



開発者の間(すべての人々、 さらには鳥の間)には、不合理な偏見が多くあります。その中には、ソフトウェアシステムのアーキテクチャがあります。



PS誰もが興味を持っている場合、オペレーターの観点からモジュール性の問題を批判的に見てください



All Articles