2009-07-07 10 views
4

現在、クライアント/サーバアプリケーションを設定しようとしています。私はクライアントをSwingシンクライアントとして書くことを計画しています。私は、サーバー側のアプリケーションをどのように設定するべきかはわかりません。Swingシンクライアントを使用したJava Serverアプリケーションアーキテクチャ

Javaサーバー側のアプリケーションには、アプリケーションのビジネスロジック、データベースアクセスなどがあります。Webフロントエンドを使用するJavaサーバー側アプリケーションの設定については、Web上で多くの情報が参照されています。だから私はTomcatやJBOSSのような完全なアプリケーションサーバーに関する多くの情報を見ています。私はWebフロントエンドを使用するつもりはないので、私はどのようにサーバーを設定するべきか正確にはわかりません。私はSpringとJava EEを見てきました。

これらの最良のオプションはありますか?私が考えていない他の選択肢はありますか?私はそれらを一緒に使うべきか、それとも別に使うことができるのでしょうか?

Java EEのみを使用する場合は、JBOSS、Weblogic、Websphereなどの完全なアプリケーションサーバーが必要ですか?これは強制終了ですか?また、JMSを使用したい場合は、アプリケーションサーバーも使用するのか、それとも代替方法が必要ですか?私の最初の考えは、アプリケーションサーバーは一種の殺害だとはっきりとは分かりません。

あなたのご意見をお寄せいただきありがとうございます。

+0

「スイング」と「シン」は、ジャークではありませんが、文章の中で隣り合って配置されることはめったにありません。 :)あなたはGWTを見ましたか?これは、Webクライアントの本当に薄い性質を持つネイティブクライアントのコーディングフィーリングを持っています。 –

答えて

1

提供されている機能を使用していない場合、アプリケーションサーバーは過剰に停止します。アプリケーションにJSPとサーブレットしかない場合は、Tomcatを使用する方が良い選択です。 EJBを使用する場合は、Jbossのようなアプリケーションサーバーが必要です。

スイングクライアントがサーバーとどのようにやり取りするかは、まず判断する必要があります。 HTTPプロトコル、EJBルックアップ、単純なRMIなどを使用しますか?

サーバーネットワークの外にいる人がクライアントを使用する場合は、HTTPプロトコルを使用してサーブレットを使用することをお勧めします。あなたはwebserviceとしてあなたのサーバーを公開することもできます。クライアントのユーザーがサーバーネットワーク上にある場合は、EJBやソケットプログラミング、ここでもhttpを使用することができます。

あなたは確かにサーバーとクライアントでSpringを使用できます。 Springは大きなフレームワークです。利用したい機能を決定する必要があります。 Springは、サーブレット環境、EJB環境、またはその他の環境で使用できます。

+1

HTTP/HTTPSを使用することは、ファイアウォールやプロキシの問題がはるかに少ないため、確かに通信に適しています。同様の状況(SWT「thin」アプリケーション+ Tomcat)では、クライアントとサーバー間の通信にSpring httpinvokerを使用します。 –

0

httpは、必要な処理を行うことができる、優れた単純なプロトコルです。

インスピレーションを得るには、必要な作業の基礎となるデモアプリケーションの1つとして、Ajaxベースのチャットクライアントが用意されているJettyサーバー(Tomcatの代わり)を試してみてください。

はあなたのすべてを学ぶ必要があるの建築図書館の膨大な数を必要としないので、私はそれをシンプルに保つことをお勧めしhttp://dist.codehaus.org/jetty/jetty-6.1.19/

からバージョン6を取得します。

0

多分、CaptainCasaを見てください。これはかつてJAX会議で見ました。彼らは見た目の良いSwingクライアントを提供するようですが、バックエンドのすべてのロジックを扱います。私はこの製品に個人的な経験はありませんが、彼らが提示したことから、 "ダム"のクライアントにとってはかなり興味深いものでした。

3

私はあなたと同じような状況にいると思います。私はSwing + Spring + JPAを進める予定です。リモート処理は、Spring Http Invokerを使用して行います。唯一の欠点は、HTTP要求をSpring Beanにルーティングするために、TomcatやJettyのようなサーブレットコンテナが必要なことです。しかし、winstone(Hudson CIが使用する)のようなサーバーは非常に軽量で、アプリケーションに組み込むことができます。

Springバックエンドを使用すると、アプリケーションサーバーが不要になります。しかし、将来的にアプリケーションサーバーが必要な場合は、Springもそれをシームレスにサポートします。

0

おそらくアプリケーションサーバーが最も簡単なソリューションになります。サーバー側でRESTfulなAPIを作成することを検討します。これは、アプリケーションサーバー上で春に行うことができます。次に、クライアント側で単純なhttpクライアント・ライブラリーを使用することができます。

関連する問題