C++, Java oder beides für SOA
-
Servus,
jpi mein erster Beitrag bei euch
Auf geths
Bei einem Hobby-Projekt versuche
ich eine "Verteilte Anwendung" umzusetzen. So weit, so gut
Um höchste Flexibilität und Kompatiblität gewährleisten zu können soll das ganze als SOA (mit SOAP, WSDL, ...) + 5-Schicht-Anwendung umgesetzt werden.
Hierbei ergeben sich ein paar Problemstellungen:
1.) 3D Echzeitvisualisierung: Der Benutzer bedient das Progr. hauptsächlich aus einem 3D-Fenster. Weswegen große Meshes mit 70 fps dargestellt werden müssen2.) Enterprise Biblithek: Java EE bietet eine ordentliche Sammlung an und mit Spring + Hibernate ist es wohl ein großer Favorit in diesem Bereich. Was bietet heri C++ oder müsste ich hier alles selbst implementieren?
3.) Rechenintensive Problemstellung: Im Programmablauf fallen immer wieder rechenintensive Berechnungen an. Diese sollen je nach Art direkt auf dem Client-CPU (vielleicht auf GPU, ein kleiner Missbrauch der GraKa
) berechnet werden und in einigen Fällen sogar auf einem Rechner XYZ im Netzwerk.
Im Enterprise-Bereich sehe ich Java sehr weit vorne, aber ich freue mich über konstruktive Vorschläge über Alternativen.
Bei der 3D Darstellung kommt OpenGL 3.0 zum Einsatz. Leider habe ich in diesem Bereich keine all zu große Vorkenntnisse
und frage mich, ob es überhaupt eine sinnvolle Alternative zu C++ gibt. Und wie würde eine Kommuniktaion zwischen Java und C++ aussehen? JNI und ???
So, und nun das größte Problem. Hier geht es um wirklich häufig auftretende Operationen die erfahrungsgemäß enorm viel Ressourcen fressen. Zumindest in Java. Aber wenn ich das ganze mische tritt in Java ein großer Overhead in der Grabacollection (mist wie schreibt man dieses Wort gleich wieder
) auf. Wenn ich die GUI in C++ implementiere dürfte dieser Effekt deutlich vermindert werden, aber wie siehts dann mit SOA aus?
Achja das hab ich ganz vergessen. Das Projekt soll als OpenSource zur Verfügung stehen und unter GPL v3 stehen.
Was haltet ihr von Qt? Mit diesem Framework habe ich mich noch nie beschäftigt und habe leider keine Erfahrungen damit sammeln können. Welche unterschiede gibt es bei den Versionen "Windows", "Mac" und "X11"?MfG,
Thomas
-
nimm Java und für die rechenintensiven teile C, dass du über's JNI ansprechen kannst: http://en.wikipedia.org/wiki/Java_Native_Interface
für OpenGl und Java gibt's JOGL: http://en.wikipedia.org/wiki/Java_OpenGL
alles komplett in C oder C++ zu bauen wäre der wahnsinn. es sei denn, du hast seeeeeehr viel zeit.