かなり多数の企業間の調整プロセスを目的とするドメインがあります。このプロセスは、要求メッセージと通知メッセージを介して通信し、それぞれが Web サービス (SOAP) 要求を介して転送されます。各企業は、要求メッセージを受信するために独自の SOAP エンドポイントを提供する必要があり、Web サービス クライアントの役割で通知を送信する必要があります。
手元にある仕様はプロセスを説明しており、インターフェースを説明する XSD ファイルと WSDL ファイルがあります。
参加型の実装を設計するための私の好みのアプローチは、ドメインを見て、(仕様に基づいて) ユビキタス言語を作成し、ドメイン モデルを作成することでした。インフラストラクチャ/テクノロジーに関して可能な限り不可知論的にドメインを実装したいと思います.Java EE、JPAをターゲットにしながら、インフラストラクチャの依存関係/ライブラリをコアドメインのコードから除外したいと思います。
このアプローチを適用すると、仕様の言語に非常に適したドメイン モデルを実現できます。スペック的にはかなりぼんやりしている部分も、今の時点で十分に表現されていると思います。ただし、ドメイン モデルが XSD で記述された Web サービス モデルとはかなり異なることは事実です。
注意:システムの将来のユーザーとオペレーター (ドメインの専門家であり、そこに参加しているすべての企業に散在していると想定されます) は、SOAP インターフェース上の要求とメッセージに向けた議論を行う可能性が非常に高くなります。したがって、これら 2 つのモデル間の変換には一定の要件があります。たとえば、システムのユーザーが開発者と話しているとき、誰かがデータベースを直接見ているときなどです。
実行可能な2 番目のアプローチは、Web サービス、ドメイン モデル、および永続性を厳密に調整することです。HyperJAXB3 を使用して、XSD から生成されたクラスを永続化レイヤーにマップすることができます。手作りのモデルで必要に応じて @Embedded を使用し、いくつかのモデル要素を単純化および統合したため、結果のデータベース テーブルの数に約 5 のかなりの違いがあります。これにより、XSD ベースの DB スキーマが難しくなります。把握します。
したがって、私の「単純な」質問は次のとおりです。コミュニケーションが非常に重要であるため、このドメインでのWebサービス、ドメインモデル、および永続性の調整に努めるべきか、それともより表現力豊かなドメインを手作りするという私の(推奨される)ソリューションを継続するべきかモデル?
参照は大歓迎です。