Frage

Können Sie mir einen Rat geben, wie am besten, um sicherzustellen, dass zwei Anwendungen (ein in C #, die andere in Java) kompatibel sein werden und effizient in dem Datenaustausch? Gibt es Fallstricke, die Sie erlebt haben?

Das Szenario ist Punkt zu Punkt, ein Host ist ein Dienstleister und der andere ist ein Service-Consumer.

War es hilfreich?

Lösung

Hier finden Sie aktuelle protobuf Datenaustauschformat. Eine .NET-Implementierung ist auch verfügbar .

Andere Tipps

JSON für beschreibende Daten und XML für die allgemeinen Datentypen. Wenn das nicht effizient genug für Sie ist, müssen Sie Ihre eigene Codecs rollen die Byteanordnung Unterschied zwischen C # und Java .

Anstatt sich auf eine bestimmte Technologie, der beste Rat den ich geben kann ist Zeit, an der Schnittstelle zwischen den beiden Fokussierung verbringen (ob das ein Web-Service, eine Datenbank oder etwas ganz anderes). Wenn es dich um einen Web-Service, zum Beispiel ist, konzentrieren sich auf ein klares WDSL Dokument zu erstellen. Interface, Schnittstelle, Interface. In den meisten Fällen versuchen die spezifischen Technologien an jedem Ende zu ignorieren, außerhalb einiger Prototypen beide Sprachen unterstützen Ihre Entscheidungen zu gewährleisten.

Auch außerhalb der großen Hindernisse, liegt die Konzentration nicht auf Effizienz. Konzentrieren Sie sich auf Klarheit. Sie müssen wahrscheinlich zwei Mannschaften (das heißt unterschiedliche Personen) an jedem Ende dieser Schnittstelle arbeiten. Sicherstellen, dass sie nutzen es richtig viel wichtiger ist als die Dinge nur ein wenig schneller zu machen.

Wenn Sie Java als Webserver haben, können Sie JAX-WS verwenden ( https: // JAX -ws.dev.java.net/ ) einen Web Service zu erstellen und WCF für .Net auf die Java-Webserver verbinden ..

Sie können so etwas wie XML verwenden (was nicht immer ist, dass effizient) oder Sie müssen mit Ihrem eigenen proprietären Binärformat (effizient, aber viel mehr Arbeit) kommen. Ich würde mit XML starten und wenn der Bandbreite zu einem Problem wird, können Sie immer auf ein proprietäres binäres Format wechseln.

So etwas wie SOAP (Wikipedia) von C # und Java unterstützt wird.

Wir verwenden C # / VB.Net für unsere Web-Schnittstellen und Java für unsere Thick-Client. Wir verwenden XML und Web Service zwischen den Datenbank- und Anwendungsserver zu kommunizieren. Es funktioniert sehr gut.

Stellen Sie sicher, dass Sie ein gut definiertes Protokoll verwenden, um die Daten und Schreibtests, um zu kommunizieren, um sicherzustellen, dass die Anwendungen gemäß Vertrag reagiert.

Dies ist eine so breite Frage, aber ich würde empfehlen, auf Standards konzentrieren, die auf beiden Plattformen anzuwenden; XML oder eine andere Standardform von Serialisierung, mit REST für Dienste, wenn sie zusammenarbeiten müssen.

Wenn Sie XML verwenden, können Sie tatsächlich Ihre Daten zugreifen als XPath-Anweisungen externalisieren, die in einer gemeinsam genutzten Ressource, die von beiden Anwendungen verwendet gespeichert werden können. Das ist ein Anfang.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top