2011-01-18 16 views
1

私は次のようなアーキテクチャを使用してWebアプリケーションを作成したい:アーキテクチャ:技術質問

Architecture of my app

「ビジネスロジック」モジュール(1)内にカプセル化されているwhiсh一部の機能が、あります。 MongoDBをデータストア(5)と外部(コマンドライン)アプリケーション(4)として使用します。

アプリケーションの機能は、二つのチャネルを介してエンドユーザにもたらされる。

  1. ウェブアプリケーション自体(2)及び
  2. パブリックAPI(3)、サードパーティのアプリケーションとモバイルを可能にしますデバイスがビジネスロジック機能にアクセスすることができます。

ウェブアプリケーションはJavaで書かれ、Vaadinプラットフォームに基づいています。現在、Jetty Webサーバーで動作しています。

重要な要件の1つ:Webアプリケーションはスケーラビリティが必要です。 e。新しいハードウェアを追加することによってサービスできるユーザー/トランザクションの数を増やすことが可能でなければなりません。どのような技術は、ビジネスロジックの一部を実装するために使用することができます

  1. 私は、このアーキテクチャの技術的な実装に関する質問を次がありますか? SCALABLEアプリケーションサーバーを作成するための賢明な選択肢は何ですか?

  2. スケーラブルにするためにWebインターフェイスパート(2)に使用できるWebサーバーは何ですか?オプションは何ですか?

  3. 外部システム(4)で実行される計算では、CPUを多用する可能性があります。したがって私は非同期的なやり方でそれらをやりたいのです。 e。

    b)の要求は、次いで、キューに入れられること

A)ユーザが上記画像に、ウェブインターフェースまたはパブリックAPIを介して(この操作を要求する2および3)、

c)CPUを大量に計算して、

d)ある時点でユーザーに回答が送信されます。

(JMS以外の)このキューイングを実装するための技術的オプションはありますか?誰も私の質問に答えていないので、私はそれを自分でやる事前に

おかげ

ドミトリ

+0

ここに私の最初のこの質問に答える試みがあります:http://dl.dropbox.com/u/11776689/pcc/2011_01_19_architecture.png –

答えて

0

。外部との相互作用をスケーリングするための

1)ビジネスロジックのための春(1)

2)GridGainやApache Hadoopの:私は次のような技術は、このアーキテクチャを実装するために使用することができることを学んだ他のリソースから

システム(4)

3)Webアプリケーションをスケーラブル(2、サーバー側のセッション)にするためのヘーズキャスト。

1

あなたはDroolsグリッド、AkkaまたはJPPFを見ていますか? ウェブアプリケーションをスケーラブルにするために、TerracottaやGlassfishのクラスタリング機能を見てみましょう(私がよく覚えていれば、Vaadinはglassfishパートナーです)。