私が取り組んでいる分散プラットフォームの正規データ モデルを定義しようとしています。これは、次のアーキテクチャに基づいています。
- クライアントに機能を公開する RESTful API ファサード
- Apache Camel に基づいており、クライアント要求のルーティングと変換に使用される基本的なミドルウェア
- ミドルウェアによって呼び出される RESTful ビジネス サービス
アイデアは、ファサード層が着信要求を共通の情報モデルに変換できるようにすることです。これは、ヘッダーとペイロードを持つカスタム メッセージの形式を持っています。
- ヘッダーには、要求されたワークフローにメッセージをルーティングするために、ミドルウェア (Apache Camel) が必要とする情報が含まれている必要があります (基本的に、ファサードは、クライアントからの各着信要求を処理するためにどのビジネス プロセスを呼び出す必要があるかを認識します)。これは、列挙型マップとして、またはカスタム メッセージを表すクラスの一連の属性としてモデル化できます。
- ペイロードには、着信要求の「ビジネス モデル」を表す適切な Java Bean が含まれている必要があります (TicketOrder または Customer オブジェクトなど)。カスタム メッセージを表すクラスのオブジェクト属性としてモデル化でき、そのメッセージを管理するワークフローに関与する Camel のすべてのプロセッサ/コンバーターは、そのペイロード タイプ (選択された Java Bean) を予期する必要があります。
簡単に言うと、受信リクエストを処理してビジネス サービスにルーティングするために Camel が必要とする関連情報のみを含むミドルウェアのビジネス データ モデルを定義しようとしています。このデータは Java Bean としてモデル化され、ペイロードとしてメッセージに添付されます。メッセージのヘッダーには、Camel にとって意味のあるルーティングの詳細が含まれています。
上記のソリューションをどのように改善しますか?それは良いアプローチであり、十分に柔軟だと思いますか? どうもありがとうございました。