クロスランゲージC#およびJava開発
-
06-07-2019 - |
質問
2つのアプリケーション(1つはC#、もう1つはJava)がデータ交換で互換性があり、 効率的であることを保証する方法についてアドバイスをいただけますか?遭遇した落とし穴はありますか?
シナリオはポイントツーポイントであり、1つのホストがサービスプロバイダーで、もう1つのホストがサービスコンシューマです。
他のヒント
説明的なデータにはJSON、一般的なデータ型にはXML。それが十分に効率的でない場合は、独自のコーデックを展開して C#とJavaのバイト順序の違い。
特定の技術に焦点を当てるのではなく、2つの間のインターフェース(Webサービス、データベース、またはその他すべて)に焦点を当てることが最善のアドバイスです。たとえば、Webサービスの場合は、明確なWDSLドキュメントの作成に焦点を合わせます。インターフェイス、インターフェイス、インターフェイス。ほとんどの場合、一部のプロトタイピング以外では、両端の特定のテクノロジーを無視して、両方の言語が選択をサポートするようにします。
また、主要な障害以外では、効率に焦点を合わせないでください。明快さを重視します。このインターフェースの両端で作業する2つのチーム(つまり、異なる人々)がいる可能性があります。正しく使用することは、少し速くするよりもはるかに重要です。
JavaをWebサーバーとして使用している場合、Jax-WSを使用できます( https:// jax -ws.dev.java.net/ )を使用して、Java Webサーバーに接続する.Net用のWebサービスとWCFを作成します。
XMLのようなものを使用することも(常に効率的とは限りません)、または独自の独自のバイナリ形式を考案する必要があります(効率的ですが、より多くの作業が必要です)。 XMLから始めますが、帯域幅が問題になる場合は、いつでも独自のバイナリ形式に切り替えることができます。
SOAP (Wikipedia)のようなものは、C#とJavaの両方でサポートされています。
WebインターフェースにはC#/ VB.Netを使用し、シッククライアントにはJavaを使用します。 XMLとWebサービスを使用して、データベースとアプリケーションサーバー間で通信します。とてもうまくいきます。
データを通信するために明確に定義されたプロトコルを使用していることを確認し、アプリケーションが契約に従って応答することを確認するためのテストを作成します。
これは非常に広範な質問ですが、両方のプラットフォームに適用される標準に焦点を当てることをお勧めします。 XMLまたは他の標準形式のシリアル化。相互運用が必要な場合はサービスにRESTを使用します。
XMLを使用する場合、実際にデータアクセスをXPathステートメントとして外部化し、両方のアプリケーションで使用される共有リソースに保存できます。それが始まりです。