# Technologie zum versenden von Objects



## najjannaj (16. Sep 2009)

Hallo,
ich bin dabei ein Eclipse-Plugin zu entwickeln. Dabei möchte ich nun Daten(Objekte) mit einem Server austauschen. Nun ist die Frage als was(XML, JSON, BASE64,..) und auf welche Art ich diese Objekte austauschen soll. Hab schon viel von SIMON gehört oder SOAP, aber bin mir nicht sicher was ihr dabei für die beste Alternative haltet. Die Objekte sind einfache POJOs mit einfachen Attributen. Die Technologie sollte dabei so einfach wie möglich sein.

Ich wäre für jeden Hinweis und Tipp sehr dankbar!
Mit freundlichen Grüßen
najjannaj


----------



## tuxedo (17. Sep 2009)

Naja, das kommt auf deine Anforderungen an.

Wenn auf der anderen Seite kein Java gesprochen wird (z.B. wenn du auch mal nen C++ Server dranhängen willst), dann solltest du darauf achten dass du dich nicht auf Java spezifische Technik versteifst.

Wenn du nicht nur Pojos verschicken willst, sondern auch hier und da ein Methodenaufruf praktisch wäre (ein Login, eine PM schicken, was weiß ich), dann ist RMI oder SIMON wohl eine klassische und elegante Wahl. Über Spring gibts auch RPC techniken. 

Wenn du dein Protokoll selbst definieren willst, dann ist JSON, XML und Konsorten wohl die beste wahl.

Wenn du dir jetzt immer noch nicht sicher bist was du nehmen sollst, solltest du etwas mehr Details verraten...


----------



## najjannaj (17. Sep 2009)

Okay, etwas mehr details:

- Ich möchte reinen Datenaustausch zwischen JAVA.
- Client ist ein EclipsePlugin das vom Server(JAVA) Daten(Objekte) anfordern kann
- Zudem soll der Client dem Server Daten(Objekte) zukommen lassen können, um diese im Server in eine Datenbank zu schreiben
- Bei den Daten(Objekten) handelt es sich um eine Menge von Objekten. Zum Beispiel eine Liste mit Authoren, Verläge oder Buchtiteln.
- So kann der Client eine Liste der eigenen Bücher anfordern und bekommt diese "Book"-Objects dann als Ergebnismenge zurück

Hoffe die Details reichen um eine genauere Technologie vorzuschlagen!
Mit freundlichen Grüßen
najjannaj


----------



## tuxedo (17. Sep 2009)

Okay, jetzt wird's etwas klarer.

Ich würde in dem Fall eine RPC Technik (Rmi, SIMON, Spring RPC, ...) nutzen. Das hat den Vorteil, dass du

a) kein Protokoll basteln musst
b) nicht nur einfach Daten hin und her schieben, sondern auch etwas Logik darüber abfahren kannst. 

Dein Client könnte so bequem über eine 
	
	
	
	





```
public List<Books> getBooks(String author)
```
 Methode Bücher nach deinen Kriterien vom Server holen. 

Die zweite, eher nicht so passende Möglichkeit: Du bastelst dein Protokoll mit JSON, XML etc. selbst.

Dann musst du die ganze Logik selbst basteln und dir überlegen wie dein XML zum anfordern aller Bücher eines bestimmten Autors auszusehen hat, und wie von Java nach XM und zurück konvertiert wird. Hinzu kommt die Kommunikationsschicht, d.h. du musst dich selbst um das Aufbauen der Netzwerkverbindung und das senden der XML Daten etc. kümmern.

Mit RPC kommst du etwas schneller voran. Ob nun RMI, Spring RPC oder SIMON bleibt dir überlassen. Aber ich würde natürlich SIMON benutzen 

Letzte Frage noch: Kommunizieren Client und Server nur via LAN, oder auch via Internet? Wenn's übers Internet geht würd' ich kein RMI benutzen. Wieso steht hier: 
SIMON - Start - root1.de - Software Engineering

- Alex


----------



## najjannaj (17. Sep 2009)

Ja, Client und Server kommunizieren hauptsächlich übers Internet. Dann werd ich mir wohl SIMON mal anschaun 
Vielen Dank


----------



## tuxedo (17. Sep 2009)

Spring RPC könnte aber auch interessant für dich sein ...


----------

