2009-05-11 11 views
2

私は長時間実行しているプロセス(「サーバ」と呼ぶことができます)であるJavaアプリケーションを持っています。サーバと通信するためのデスクトップGUIクライアントの作成

  1. 表示状態の更新を
  2. は手動でトリガ」とは、特定与えるアプリケーションから:私はデスクトップのGUI(スイングで最も可能性が高い)を記述する必要があり、このアプリケーションに接続することができ、「クライアント」、それを呼び出すことができますクライアントへのコマンド

クライアントとサーバー間の各対話(会話スレッド)は短いですが、いくつかのメッセージの上下が関係する場合があります。このようなものを実装するためのさまざまなオプションは何ですか?スピードは私にとって大きな懸念事項ではありません。私は、私が会話の詳細に悩まされることなく会話プロトコルを進化させることができるものにもっと興味があります。私が今考えているオプションは、ソケット、RMI、JMS、およびJavaSpacesです。

答えて

0

私は何年もこの種のものをXML-RPCとしています。私はそれがとても好きです。とてもシンプルで、15分以内にあなたを走らせるからです。これはすべてhttpと単純なXMLです。

0

サーバーをRESTful APIで拡張するオプションであれば、クライアントで使用するのが最も簡単な方法でしょう。 URL用語でAPIを単に記述した後、必要に応じてクライアントを他の言語に簡単に切り替えることができます。

0

私はこの問題を、シリアル化コマンドにObjectInputStreamとObjectOutputStreamを使ってソケットで解決しました。

プロトコルには、別のオブジェクトコマンドが必要です(コマンドパターンはここで有効です)。これらのオブジェクトはすべて直列化可能でなければなりません。その後、単にコマンドを送受信できます。 IMHOは最も簡単な方法です(技術的側面と実装上)。

+0

質問は、ObjectInputStreamを提案することによって部分的にしか答えられませんでした。 binilは、配管の詳細に気をつけたくありません。 – Richard

+0

その通りです。会話をできるだけ抽象的に記述することをお勧めします。 –

1

Apache Camel(Java)にピークを迎えます。あなたが言及したすべてのオプションをサポートし、メッセージをルーティングするときにルールを許可します。

スタンドアロンでインストールするか、Apache ActiveMQ(JMSブローカー)に付属してインストールします。

0

私は@Norbert Hartlに同意します。 ApacheにはApache HTTPClientで使用できる単純なXMLRPC実装があります。ライブラリには、XMLRPC要求を受信するためにサーバを使用する例もあります。

関連する問題