web-dev-qa-db-ja.com

マイクロサービスと正規モデル

this site でマイクロサービスについて読んでいたときに、以下のステートメントに遭遇しました。正規スキーマとはどういう意味ですか?ドメインモデルと同じではありませんか?

マイクロサービスアーキテクチャパターンは、正規スキーマの概念など、SOAの他の部分も拒否します。

9
Punter Vicky

@ArseniMourzenkoコメントを信頼してくれたことを前もって謝罪しましたが、ウィキペディアを読み始めたとき、すぐに Canonical Schema の意味を理解しました。

ここで本当の疑問に焦点を当てたOPのコメント

マイクロサービスアーキテクチャでも、要求と応答はいくつかのデータモデルに準拠する必要があると思います。

一部のデータモデルはありますが、この記事は2つ以上のサービス間での「共有」または「共通」のデータモデルに言及しているようです。

Canonical Schema は、実行時のデータ変換からサービスを保存するためのパターンです。また、コードを複製する必要もありません。ただし、サービスを外部データモデルにも結合します。(上にリンクされているウィキペディアのページの図を参照してください)

これは、サービス間で共通の一種の「言語」です。

記事は、MSが住んでいる「エコシステム」からのMSの完全な独立に重点を置いているように見えます。

たとえば、ESBについての言及を見てみましょう。

また、ESBの使用を非常に回避し、代わりにマイクロサービス自体にESBのような機能を実装します。

[〜#〜] esb [〜#〜] は通常、バスに接続されているすべての人に共通のエンタープライズデータモデル(メッセージ)を要求します。

したがって、記事に戻ると、著者はMSが外部システム(およびその制約)への接続を拒否するという事実を指摘しているようです。

5
Laiv

マイクロサービスは、緊密な結束と疎結合に関するものです。マイクロサービス内では緊密な結束がありますが、マイクロサービス間では疎結合であるため、共有スキーマやデータコントラクトは避けたいと考えています。共通のスキーマを共有することを要求する方法で相互に同期呼び出しを行うマイクロサービスがあることがわかった場合は、サービス境界を誤って定義したことを示している可能性があります。

マイクロサービスは、ドメイン駆動設計の用語では、境界付きコンテキストと密接に連携する必要があります。

1
pnschofield