2009-06-12 9 views
1

JMSとWebSphere MQの2つのシステムがあります。 JMSで構成されたトピックにメッセージを送信するクライアントAがあります。 WebSphere MQで構成されたトピックを通じてこのメッセージを受け取る別のクライアントB。プラットフォームに依存しないストリーム

この通信を行うにはどうすればよいですか?この橋を建設する際の考慮事項は何ですか?ブリッジが解決策なら、どのように構築できますか?

+0

そう、@ジェイ。 –

答えて

2

クライアントの1つがJava(JMS)で書かれ、もう1つが他の言語で書かれていて、どちらも同じキューにアクセスできると仮定します。 MQシリーズはキューイング製品であり、JMSはJava APIです(JDBCはリレーショナルデータベースと同じです)。 MQ-SeriesはJMS APIをサポートしているため、メッセージの通信に問題はありません。 JMSはおそらくMQシリーズの機能のサブセットになるでしょう。

コンテンツが両方の当事者によって解釈されることを確認してください。標準的な方法は、メッセージでXMLを使用することです。しかし、両方のクライアントが理解できる他の形式を使用することもできます。 CSV(カンマ区切り値)、JSON(JavaScriptオブジェクト表記)を使用することもでき、ヘッセ行列のようなクロスプラットフォームバイナリ形式もあります。

しかし、参加者やコミュニケーションしたい情報の種類について具体的であれば、より具体的な回答が得られるはずです。

+0

これらのクライアント、リスナー、および受信者は、どのプラットフォームおよびOSでも使用できます。例えばUnix、Solaris、windowsなど...メッセージはバイト形式で送信され、すべてのプラットフォームとOSがバイトをエンコードする独自の方法を持つことができることを理解しています。どのようにコミュニケーションをプラットフォームから独立させることができますか? –

+1

バイトストリームはバイトストリームです。プロトコルを定義するのはあなた次第です。ストリームはすべてのプラットフォームで同じです。プラットフォーム間の違いは、ストリームが例えば以下のように解釈される方法にあります。単語またはダブルワード。ストリーム内でのデータのエンコード方法を指定する場合、他のプラットフォームは仕様に従って実装を調整する必要があります。 Hessianは、例えば、あなたが独自のコンテンツを構築する場合、より高いレベルのバイナリプロトコルの例です。ヘッセ行列(他にも多くの可能性があります)では、行う作業が少なくなります。 –

+0

私はアーキテクチャ中立2進データのパッキングとアンパックについて話すRFC3072を発見しました。 Javaはそれをネイティブな方法でサポートしていますか、またはIIIパーティライブラリを探す必要がありますか? –

関連する問題