0

Web アプリケーションのクラウド展開にEIPのソリューションを採用したいと考えています。

  • アプリケーションは、各レイヤー (データ、サービス、Web など) が個別のモジュールおよび成果物として現れるようなアプローチで開発されます。
  • 各レイヤーには、クラウド上の異なる仮想リソースに展開する機会があります。この点で、ウェブノードは関連するサービスノードを見つけ、同様にサービスノードはデータノードに接続されます。
  • サービス層のオブジェクトは、アプリケーション内のサービスへの REST アクセスを提供します。Web レイヤーは、サービス レイヤーからの REST サービスを使用して、アプリケーションのユーザーに対する要求を完了することになっています。

クラウド上で「高度にスケーラブルな」アプリケーションを提供するという上記の要件については、Apache CamelSpring IntegrationMule ESBなどのソリューションが重要な選択肢のようです。

このトピックに関する質問ブログ投稿など、他の議論があるようですが、 「クラウド」でそのような展開スキームを具体的に経験した人はいますか? アイデアや経験の共有に感謝します。ティア。

4

1 に答える 1

1

私には、これはオーバーエンジニアリングのように見えます。これらすべてのレイヤーを分離する必要がある本当の理由はありますか? あなたの説明は、数年前の J2EE アプリケーションによく似ています。

アプリケーションのすべてのレイヤーを各ノードにデプロイし、単純な Java 呼び出しまたは OSGi サービスを使用して通信するのはどうでしょうか。

このアプローチにはいくつかの利点があります。

  • 複雑さの軽減
  • シリアル化または DTO なし
  • トランザクションは簡単 / 分散トランザクションは不要
  • ロード バランシングとフェイルオーバーは、Web レイヤーのみで実行できるため、はるかに簡単です。
  • パフォーマンスはおそらくはるかに高い

このようなアプリケーションは、Spring またはブループリント (OSGi 上) を使用して実装できます。

もう 1 つのオプションは、最新の JavaEE サーバーを使用することです。これが興味深い場合は、Adam Bien のコースをいくつか見てみましょう。彼は、JavaEE を非常に無駄のない方法で使用する方法を示しています。

ノード間の通信については、Camel と CXF で良い経験がありますが、できるだけリモート処理を避けるようにしてください。

于 2012-07-12T15:03:50.727 に答える