PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Java-Framework für verteilte Systeme gesucht


Senior Sanchez
2010-08-05, 23:00:52
Hi,

Für ein Projekt wollen wir ein verteiltes System auf Java-Basis realisieren. Dabei ist auch eine gewisse Dynamik wichtig, also das neue Geräte eingebunden werden können. Zudem soll die Entwicklung möglichst einfach sein und am besten eine Art SOA realisierbar sein.

- RMI scheidet aus, da dazu die Dynamik fehlt
- Bei einem vorherigen Projekt haben wir Jini benutzt. Das ging ganz gut, aber Jini war eben von der Konfiguration und Entwicklung sehr aufwändig. Von daher suchen wir eigentlich was leichteres.

Ich bin jetzt auf cajo (https://cajo.dev.java.net/overview.html) gestoßen.

Hat damit schon mal jemand was gemacht? Ist es zu empfehlen?

Welche Alternativen gibt es bzw. sollten wir uns anschauen?

Vielen Dank

Sephiroth
2010-08-05, 23:08:57
JXTA fiele mir noch ein. Ich selbst hatte bisher nur mit RMI zu tun.

edit: oder Axis2

Shink
2010-08-06, 08:42:00
Cajo kenn ich nicht. Scheint ein Wrapper für RMI zu sein.

CORBA ist der Klassiker; einfach ist aber was anderes.
Restlet ist eine nette Geschichte wenn man es mal mit dem REST-Ansatz versuchen möchte.

Wenn es über Webservices gehen soll:
JAXWS ist das in Java eingebaute Framework für WebServices; wenn man bereits Spring und DI verwendet könnte man sich Spring-WS ansehen.

Tiamat
2010-08-06, 09:59:54
Schau dir mal den Java Message Service (JMS) an.

Senior Sanchez
2010-08-06, 11:00:28
Danke für die Vorschläge.

Shink, das mit Cajo siehst du richtig. Es baut auf RMI auf, erreicht aber nicht den Funktionsumfang von Jini, dass auch auf RMI setzt.

Was haltet ihr davon JXTA zu verwenden? Das ist vielleicht kein ganz klassischer Ansatz, aber es ist noch eine weitere Anforderung hinzugekommen: Idealerweise soll sich das Framework auch auf mobilen Endgeräten, allen voran z.B. Android, direkt nutzen lassen ohne das eine Art Proxy dazwischen gesetzt werden muss. Wenn sich das natürlich nicht realisieren lässt, muss man eben den genannten Umweg gehen. Und für JXTA gibt es aber anscheinend ein Projekt bei Google Code, was sich damit beschäftigt, dass auf Android-Geräte zu bringen.

Frucht-Tiger
2010-08-06, 11:12:25
Ist es nur eine Studie oder wird es dann auch produktiv genutzt?

Wenn letzteres würd ich nur auf weit verbreitete Frameworks setzen, die sich schon bewährt haben. Wenn du auch Mobile Geräte anschließen möchtest, würde ich REST Webservices nehmen. Gerade die ganzen Low-Level RMI Sachen werden wohl nicht auf Android laufen. Um die Webservices zu realisieren, könntest du dir mal das play-Framework anschauen, hab ich zwar noch nie benutzt, macht aber einen ganz netten Eindruck.

Tiamat
2010-08-06, 11:24:45
Kommt drauf an. Strebt ihr bei diesem System P2P-Funktionalität an oder soll das eher ein Client-Server System sein. Beim der CS-Variante ist JXTA natürlich sinnfrei.

Shink
2010-08-06, 11:30:46
Ist es nur eine Studie oder wird es dann auch produktiv genutzt?

Wenn letzteres würd ich nur auf weit verbreitete Frameworks setzen, die sich schon bewährt haben.
Je nach gewünschter Funktionalität würde ich sogar simple Sockets in Betracht ziehen.

Senior Sanchez
2010-08-06, 19:15:50
Es ist ein Forschungsprojekt, wo am Ende ein laufender Prototyp rauskommen soll. Aber natürlich sind da nicht so die Anforderungen an Stabilität, Sicherheit, Performance etc. wie an ein reales Produkt present.

Sockets kann ich ausschließen. Wir wollen schon wirklich ein verteiltes System hochziehen, nach Möglichkeit eben eine Service-Oriented Architecture. Dabei streben wir eben keine klassische Client-Server-Architektur an, sodass es schon in Richtung P2P gehen darf.

Wichtig ist uns eben (neben den ganzen Sachen, die ich oben nannte) vor allem, dass man dynamisch ohne viel Konfiguration ein neues Gerät mit seinen Diensten einbinden kann. Wir suchen daher auch eine Lösung, die mit verschiedenen Geräteklassen (Smartphone bis hoch zum Server) skalieren kann und da sind wir uns zum Beispiel nicht sicher, ob WebServices dann so geeignet sind. Wir haben auch eine begrenzte Kommunikationsbandbreite, da eventuell viele Smartphones über 3G oder WLAN funken und ob da overhead-lastige Techniken wie WebServices die richtige Wahl sind?

Cajo selber klingt eben super, braucht aber RMI. Gerade das gibts z.B. unter Android nicht.
Mit WebServices habe ich noch nicht die Erfahrung und da weiß ich nicht, wie es mit der Dynamik (also dynamisch neue Geräte einbinden) ausschaut.

robobimbo
2010-08-07, 09:58:57
Hm, schau dir mal EJB3.1 an, sind mittlerweile recht einfach zu implementieren und bieten auch REST an, das sollte dann doch von den meisten Clients angesprochen werden können.

Webservices gehen sicher auch, mittlerweile gibts doch eh fast für jedes Wald und Wiesensystem eine WS Implementierung.