1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Obj-C -> EJB zugreifen

Dieses Thema im Forum "OS X-Developer" wurde erstellt von tommy, 06.03.08.

  1. tommy

    tommy Jamba

    Dabei seit:
    27.08.05
    Beiträge:
    59
    Hallo,

    ich entwickel gerade einen grafischen Client der auf eine Java Enterprise Bean zugreifen soll. Da die Java Brücke ja "tot" ist, und nicht gerade zukunfts-sicher ist wollte ich dies auch nicht benutzen. Meine erste Wahl fiel da auf Objective-c, nur man wird ja sicher auch Java vermutlich benötigen. (grafische Oberfläche = mit obj-c nib)

    Erste Idee:
    JNI in einer Dynlib benutzen und zur Laufzeit laden.

    Aber vielleicht kennt ihr ja noch eine bessere Lösung für mein Problem.

    mit besten Gruß, Tommy
     
  2. pepi

    pepi Cellini

    Dabei seit:
    03.09.05
    Beiträge:
    8.741
    Eclipse?

    Wird zwar scheiße fürchterlich aussehen, so wie alle Java Applikationen und sich auch schrecklich anfühlen (so wie alle Java Applikationen) und glazial langsam sein (so wie alle Java Applikationen), aber Du kannst es in Java schreiben.
    Gruß Pepi
     
  3. tommy

    tommy Jamba

    Dabei seit:
    27.08.05
    Beiträge:
    59
    das ist mein bedenken an der Geschichte! Wenn ich mir jetzt größere GUI Applikationen anschaue die auf Java basieren, sind sie nicht gerade was Geschwindigkeit angeht ganz oben.
    Daher war ja meine Idee das wesentliche mit Obj-c und C zu schreiben. Dieses Programm lädt dann eine Bibliothek nach die über JNI eine EJB callt.
    Das dürfte ja die Geschwindigkeit wesentlich verbessern, nur das Stichwort "Portierung" kann man dann vergessen.

    Eine andere Idee wäre noch einen Terminal Client in Java zu schreiben der Befehle entgegen nimmt. Nur da auch größere Daten gesendet werden wäre dies nicht gerade sehr speicherschonend, wenn es 2 Clients gibt.

    Gruß, Tommy
     
  4. appahappa

    appahappa Ingrid Marie

    Dabei seit:
    28.03.07
    Beiträge:
    270
    Zunächst einmal bin ich nicht der Meinung, dass Java langsam ist - d.h. ich würde auch für das UI Java benutzen. Aber wenn man unbeding ein Cocoa-Frontend haben will, würde ich Backend-Funktionalität als Webservices zur verfügung stellen und im Frontend konsummieren. Mit JEE 5 ist es ein Kinderspiel Webservices zu schreiben - nur paar Annotations und schon wird aus einem EJB ein Webservice. Dann braucht man gar kein Java auf dem Client. Die Lösung mit JNI ist eine ganz haarige Geschichte, davon würde ich persönlich abraten.
     
  5. tommy

    tommy Jamba

    Dabei seit:
    27.08.05
    Beiträge:
    59
    Dankeschön erst einmal für die tollen Ratschläge! :)
    Diese Webservices funktionieren in der Regel über SOAP|RMI, oder? Sind Java Webservices kompatibel zu anderen Bibliotheken? Ich könnte mir vorstellen wenn diese auf RMI basieren, das es da Probleme geben könnte. Ganz die Möglichkeit auf Windows oder Linux dies zu portieren möchte ich natürlich auch nicht verlieren. Ich wollte schon das dieses Frontend sich der Umgebung von Mac OS optisch anpasst.

    Noch etwas zur Geschindigkeit:
    Ob es nun am Backend oder Frontend liegt weis ich auch nicht so genau. Eclipse ist meines erachtens mindestens 5 schneller als Netbeans. Allerdings finde ich Netbeans von der ganzen Oberfläche her besser, und nehme dies in Kauf.

    Grüße, Tommy
     
  6. appahappa

    appahappa Ingrid Marie

    Dabei seit:
    28.03.07
    Beiträge:
    270
    Seit Netbeans 6 draussen ist, benutze ich Eclipse ueberhaupt nicht. Ich bin mit Netbeans einfach viel produktiver, das ist das einzige was zaehlt. Ob Eclipse wirlich so schnell ist, wenn man alles installiert, was Netbeans "out of the box" kann? Und so schlimm sieht Netbeans auf dem Mac auch nicht aus. Netbeans sieht fuer mich nicht weniger nativ aus als Logic Pro oder Final Cut.

    Ich bin kein grosser Webservice-Experte, habe bisher nur in einem Projekt damit gearbeitet. Habe lediglich fuer ein bestehendes JEE5-Backend Webservices geschrieben - war ein Kinderspiel mit NetBeans, WSDLs usw. automatisch generiert - und dann einen passenden Client auf der NetBeans Rich Client Plattform aufbauend. Ein anderer Mitarbeiter hat auch einen funktionierenden Cocoa-Prototypen gebaut, dieser wurde aber verworfen, da die Vorteile minimal waren. Der Aufwand war aber etwas groesser.

    Was man nun nimmt um WebServices zu konsummieren, haengt ganz allein von den Anforderungen ab. Wenn der Client irgendwas mit Multimedia zu tun hat, so wie iTunes, dann ist Cocoa natuerlich besser, man hat aber auch einen groesseren Aufwand, wenn man Kunden mit anderen Betriebssystemen bedienen will. Fuer "normale" Anwendungen wuerde ich persoenlich Java nehmen. Es hat sich noch nie ein Kunde bei uns ueber Geschwindigkeit beschwert. Mac-User bekommen ganz "normal" eine dmg-Datei, womit das Programm entwickelt wurde ist denen sowas von egal.
     
  7. tommy

    tommy Jamba

    Dabei seit:
    27.08.05
    Beiträge:
    59
    Also die Integration von Netbeans was die Server Geschichte angeht finde ich schon besser. Das Profiling in Netbeans ist einfach super!

    Ich denke den Endkunden wirds nie interessieren in was das ganze geschrieben ist. Höstens obs erweiterbar ist, und das rein wirtschaftlich. Ein Freund von mir, die setzen auch WebServices bei der Kummunikation mit MDE-Geräten und Server ein. Allerdings meinte er auch, das die Daten nicht gerade top schnell unterwegs sind. Könnte natürlich auch an den kleinen Geräten liegen (Win-CE) :-D

    Ich habe momentan die ganze Cocoa Geschichte verworfen, und nun Java Swing genommen. Ich hoffe es kommt nicht der Punkt wo ich's bereue. Die Geschwindigkeit ist momentan ganz OK, und wäre mit Objective-C denke ich auch nicht wesentlich schneller, wenn man den Entwicklungsaufwand besieht. Falls ich doch noch einmal native-Code bräuchte habe ich ja immer noch mein JNI :)
     
    #7 tommy, 08.03.08
    Zuletzt bearbeitet: 08.03.08

Diese Seite empfehlen