C#、Javascript、Javaで書かれたJavaサーバと複数のクライアントの間で何らかのメッセージを交換するには、javaサーバ<-> C#+ javascript + java + *クライアント
バックグラウンドストーリー:その後の手段によって、いくつかのUIのフロントエンドに「架橋」され、我々はJavaで一般的なUIバックエンドを構築しようとしている当社の現在のプロジェクト(サーバ上で実行されている)で
(クライアント、サーバー、またはその両方で実行されている)異なるUIアダプターの当社のサーバー技術は常にJavaになりますが、C#(Silverlight)、JavaScript、Javaクライアントが存在します。将来的にはもっと多分(別のスマートフォン、タブレット)。
UIバックエンドとUIフロントエンドは、クライアントまたはサーバー上の特定のプロパティ/状態/データ変更をそれぞれカプセル化する多かれ少なかれ単純なメッセージ(ほとんどの場合、名前と値のペア)を介して通信します。単一の要求サイクル内で、そのような単純なメッセージのいくつかは、1つの大きなメッセージに集約され、その後、バックエンドからフロントエンドに、またはその逆に渡されます。現時点では、メッセージの送受信は、クライアントとサーバーの1つのエントリポイントで行われます。したがって、WebServiceなどとして公開されるサーバーメソッドはありません。これは、このケースで最も遅くなるためです。
私たちの現在のプロトタイプは、単にJavaサーバで構成され、Javaのデスクトップクライアント(スイング)およびJava Webクライアント(Vaadin)。バックエンドとフロントエンドの間で交換されるメッセージは、事実上、XMLとの間でシリアライズ/デシリアライズされたPOJO(それぞれ特定の "変更"を表す)のリストです。ここまでは順調ですね。
今C#とJavascriptがテーブルに来ます。各技術で何らかのオブジェクトを扱いたいので、ある種の抽象的な言語でメッセージ/変更/ポポを指定し、各ターゲット言語のオブジェクトを生成することをお勧めします。ある時点で、これらのオブジェクトをシリアル化/デシリアライズして、おそらくhttp/s経由でワイヤを介して送信することができます。この目的のために、私たちはGoogleのプロトコルバッファまたはThriftを考えました。どう思いますか?
現時点では、当社の同期リクエスト・レスポンス・サイクルが十分であるが、我々はかなりすぐに、それぞれ非同期の要求と応答やサーバプッシュが必要になります。だから私たちはActiveMQのようなものをすぐに使うことを考えました。どう思いますか?過度に?そうでない場合は、上記のオブジェクト生成(xsd、jaxb、?for j)をどのように達成できますか?より良い方法がありますか?私はActiveMQを使ったことはありませんでしたが、ウェブサイトによると、Java、C#(Spring.NET)、何らかの形でJavascript(STOMP)でも可能です。しかし、これは
このまたは関連するトピックについての任意のヒント、ヒント、経験やコメントが本当に役立つだろう...私にはかなり複雑なようです。
ありがとうございます。
私が言ったように、現在、サーバー/クライアントには1つのエントリポイントがあります。基本的には、POJOにマップされた複数のメッセージをカプセル化する(HTTP)リクエストが来る場所です。私はWebサービスの専門家ではありませんが、私の理解によれば、目的の言語でオブジェクトを生成するWSDLを取得するために、Webサービス(各変更/ POJOに1つ)としていくつかのメソッドを公開する必要があります。おそらく私は間違っていますが、これは変更ごとに1つのHTTP要求につながり、WSよりもさらに遅くなります。そして、WSDLとJavaScriptはどうですか? – Pauli
あなたのWSを設計することは意味があります。きめ細かな要求が多いわけではありません。いくつかの複雑な要求があります。それに応じてサービスの入力と出力を設計してください。 –