2009-08-05 14 views
2

私は大きなモノリシックwebappを持っています。ウェブアプリケーションの特定の部分を変更するときには、アプリケーション全体を展開する必要があります。webappを複数の部分に分割する(tomcat)

私はこれを機能に基づいて小規模のチャンクに分割したいと考えています(たとえば、銀行業界のウェブサイトでは、オンラインバンキング機能からの情報を分離したいので、オンラインバンキング機能を変更すると

ここで問題となるのは、アプリケーション全体で共有される共通のクラスのように、Webアプリケーション全体に共通の要素が存在することです。

ウェブアプリケーションの分割を行うさまざまな方法について考えてみましょうか?ありがとう。

答えて

1

これはTomcatに特化したものではありませんが、Webアプリケーションを分割する場合は、分散した部分全体で異なる状態を共有する方法が必要です。セッション情報のデータベースまたはmemcachedストアでこれを行うことができますが、各アプリケーションが共通のセッションデータを読み取ることができるようにしてください(一部のフレームワークはセッションデータを暗号化するためにキーを使用します。それ)。私は、セッション情報のためのほとんどのクッキーストアは、クッキーがアプリケーション間で正しく維持されないようにハッシュするとは思わない。

機能別に分割するのが最も理にかなっています。バックエンドコードをどこに分けることができるか参照してください。素敵な落ち着いたタイプのURLがある場合は、あなたのURLを見て、良いパーティションを判断するのに役立つでしょう。

また、別々に更新している大きな静的セクションがある場合は、おそらくtomcat以外のものによって処理されるはずです。

一般的なクラスでは、クラス実装をtomcat/libフォルダのjarファイルに置くことができます。それらはサーバー全体で使用可能になります。彼らはあなたのWebコンテキスト(あなたがそれらにコンテキストを渡さない限り)にうまく合わせることができず、Tomcatをリロードするためにjarファイルを更新するためにサーバ全体を再起動する必要があります。

おそらく、各パーティションでより独立性を持たせて、何らかの方法で独立してコンパイルできるようにするために、インターフェイスで何かできることでしょう。たぶんRemote Methodの呼び出しによって、共通の関数を単一の.jarまたは.warに移動するのに役立つでしょう。

+0

Danioありがとうございます。私の質問ではっきりしないことを申し訳ありません。セッションは共有されたエンティティの単なる例でした。共有されているコンポーネントを探しています。アプリ全体で使用されるクラスです。 – rubyer

関連する問題