.NET und MONO kommunizieren mit JVx

Post to Twitter

Schon seit wir mit der Definition des ISerializer Interface begonnen haben, war der Wunsch nach Technologie unabhängiger Kommunikation vorhanden. Das Thema hat uns immer wieder gestreift, doch die Notwendigkeit einer Java unabhängigen Implementierung war nicht gegeben.

Vor einigen Wochen war es dann so weit. Wir entschieden uns für die Portierung der JVx Objekt Serialisierung nach C#. Natürlich gab es einige Herausforderungen und Probleme, die jedoch keinen Einfluß auf die Funktionswiese hatten. Und im Unterschied zu CORBA, Hessian & Co unterstützen wir ein sehr breites Spektrum an Objekten.

Nun ist endlich so weit und wir können eine funktionierende Kommunikation zwischen JVx und C# vermelden. Sämtliche Objekte werden mit dem UniversalSerializer ausgetauscht. Der C# Serializer arbeitet wie sein Java pendant und ist ebenso mächtig. Die Serialisierung von Objekten unterliegt allerdings den gleichen Einschränkungen wie es auch in Java der Fall ist, allerdings verzichten wir bei unserer Lösung auf das im Normalfall verpflichtende ISerializable Interface.

Um dem ganzen den notwendigen Schliff zu verpassen haben wir auch gleich die Kommunikationsklassen AbstractSerializedConnection, Master- und SubConnection sowie alle abhänigen Klassen portiert. Dadurch ist der Zugriff auf die JVx Business Logik zu 100% gegeben. Wir können nun die komplette Business Logik und alle Server seitigen Actions, auch mit C#, einsetzen und zwar ohne Mehraufwand.

Ein kleines C# Beispiel an dieser Stelle muss natürlich sein:

public void testMetaData()
{
    HttpConnection conDemo = new HttpConnection(new UniversalSerializer(),
                                                "http://localhost/jvx/services/Server")

    MasterConnection appconDemo = new MasterConnection(conDemo);

    appconDemo.ApplicationName = "demo";
    appconDemo.UserName = "demo";
    appconDemo.Password = "demo";
    appconDemo.open();
       
    SubConnection sub = appconDemo.createSubConnection("demo.Company");
    sub.open();
       
    MetaData md = (MetaData)sub.call("company", "getMetaData");
}

Im nächsten Schritt erstellen wir einen Showcase basierend auf Silverlight 4. Demnächst hier mehr dazu.

Leave a Reply

Spam protection by WP Captcha-Free