Plattformunabhängige Kommunikation - Protokoll und Standards

Algorithmen, Sprachunabhängige Diskussionen zu Konzepten, Programmiersprachen-Design
Only86
Beiträge: 8
Registriert: Do Aug 11, 2011 2:41 pm

Plattformunabhängige Kommunikation - Protokoll und Standards

Beitrag von Only86 » Do Aug 11, 2011 2:57 pm

Hello World,

für meine Arbeit suche ich eine Möglichkeit einen Server mit einem mobilen Endgerät kommunizieren zu lassen. Der Server wird dabei direkt über WLAN, also kein Webserver, angesprochen.
Meine Frage ist nun, wie ein entsprechendes plattformunabhängiges Kommunikationsprotokoll aussehen müsste.
Meine Idee ist es XML zu nutzen, da es ein festgelegter Standard ist und es Parser in quasi jeder Sprache gibt. Dafür würde sich nach jetzigem Wissensstand eigentlich SOAP eignen. Die entsprechenden Schnittstellen müssten dann für jede (verwendete) Plattform einmal implementiert werden.

Ums mal an einem Prototypen festzumachen. Ich will einen Laptop über WLAN mit einem Android-Smartphone verbinden. Dieses soll dann entsprechende Funktionen einer Serverapplikation auf dem Laptop nutzen. Der Anwendung sollen dann nur eine bestimmte Anzahl von Funktionen zur Verfügung gestellt werden.

Was haltet ihr von dem Ansatz mit SOAP? Verrenne ich mich da irgendwie oder habt ihr da jetzt schon einen enormen Facepalm klatschen lassen?

Ich bin in der Phase in der ich noch offen für Vorschläge, Anregungen oder Jobwechsel bin :-)
Also immer her mit eurem Wissen? Wegweiser wären sehr hilfreich...

CIAO

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8859
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Plattformunabhängige Kommunikation - Protokoll und Stand

Beitrag von Xin » Do Aug 11, 2011 3:14 pm

Only86 hat geschrieben:Hello World,

für meine Arbeit suche ich eine Möglichkeit einen Server mit einem mobilen Endgerät kommunizieren zu lassen. Der Server wird dabei direkt über WLAN, also kein Webserver, angesprochen.
?
WLAN ist ein Übertragungsstandard, also Funk-Ethernet. Darüber läuft vermutlich TCP/IP - nehme ich mal an. Und damit stellst Du wiederum die Anfrage an einen Empfänger (den Server), welcher dann einen Service, z.B. einen Webseiten-Service anbietet, was den Server zum "Webserver" macht.
Only86 hat geschrieben:Meine Frage ist nun, wie ein entsprechendes plattformunabhängiges Kommunikationsprotokoll aussehen müsste.
Meine Idee ist es XML zu nutzen, da es ein festgelegter Standard ist und es Parser in quasi jeder Sprache gibt. Dafür würde sich nach jetzigem Wissensstand eigentlich SOAP eignen. Die entsprechenden Schnittstellen müssten dann für jede (verwendete) Plattform einmal implementiert werden.
SOAP ist quasi XML, das in der Regel über HTTP vermittelt wird.

Plattformübergreifende Implementierungen sollten auffindbar sein.
Only86 hat geschrieben:Ums mal an einem Prototypen festzumachen. Ich will einen Laptop über WLAN mit einem Android-Smartphone verbinden. Dieses soll dann entsprechende Funktionen einer Serverapplikation auf dem Laptop nutzen. Der Anwendung sollen dann nur eine bestimmte Anzahl von Funktionen zur Verfügung gestellt werden.
Only86 hat geschrieben:Was haltet ihr von dem Ansatz mit SOAP? Verrenne ich mich da irgendwie oder habt ihr da jetzt schon einen enormen Facepalm klatschen lassen?
Why not?
Only86 hat geschrieben:Ich bin in der Phase in der ich noch offen für Vorschläge, Anregungen oder Jobwechsel bin :-)
Also immer her mit eurem Wissen? Wegweiser wären sehr hilfreich...
Um das nochmal zusammen zu fassen... Du willst eine Verbindung zwischen zwei Computern über ein Netzwerk machen. Ja, SOAP wäre eine Lösung.

Es spricht nichts dafür und nichts dagegen, weil mehr Informationen sind eigentlich nicht da. Die Frage ist, was willst Du eigentlich tun. Android Händis werden vermutlich nur kleine Botschaften versenden und auch keine nennenswerten Antworten erwarten. Damit wäre HTTP ein akzeptables Protokoll und SOAP eine akzeptable Nachrichtenkodierung.

Eine E-Mail mit einer INI-Datei wäre prinzipiell auch möglich, aber vermutlich komplizierter.

Man könnte auch was ganz einfaches machen, sich die ganze Seife sparen und einfache Nachrichten "pingen". Bleibt die Frage - was willst Du eigentlich tun? ^^
Ein Protokoll "muss" nicht irgendwie aussehen, das legst Du selbst fest, danach müssen sich aber alle Seiten einig sein. SOAP ist eine Empfehlung neben anderen Empfehlungen und Standards usw.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3123
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: Plattformunabhängige Kommunikation - Protokoll und Stand

Beitrag von cloidnerux » Do Aug 11, 2011 3:26 pm

Zur Verbindung zweier Geräte gibt es 1001 Möglichkeiten, auch Plattform übergreifend.
Die Frage ist also nun nicht, was das beste ist, sonder was du nutzen willst.

Generell ist es egal, was du an Daten überträgst, denn TCP/IP ist standardisiert. Das heißt, dein handy und dein Laptop verstehen sich auch schon so.
Daher musst du nur noch nen Kommunikationskanal öffnen und darauf deine Daten übertragen.
Was nun deine Daten sind, ist egal. Ob XML oder irgendwas anderes.
Du brauchst nicht einmal einen "Standard", denn du hast die Macht dir einen eigenen zu Definieren, der deinen Anforderungen entspricht, du musst ihn dann nur so niederschreiben, das ihn andere auch verstehen können ;)

Für TCP/IP Verbindungen haben Android und Linux/Mac/Windows alle schon Bibilotheken, mit denen das recht komfortabel geht(ich hab mal in 50 Zeilen ne Remote Maus-Steuerung Programmiert).
Das heißt, dir bleibt immer die Lösung, es selber zu machen.

Was du aber Wahrscheinlich suchst, sind Möglichkeiten das noch angenehmer zu gestalten.
Dazu solltest du dir mal SSH oder VNC anschauen.

MfG cloidnerux.
Redundanz macht wiederholen unnötig.
quod erat expectandum

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8859
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Plattformunabhängige Kommunikation - Protokoll und Stand

Beitrag von Xin » Do Aug 11, 2011 4:47 pm

cloidnerux hat geschrieben:Für TCP/IP Verbindungen haben Android und Linux/Mac/Windows alle schon Bibilotheken, mit denen das recht komfortabel geht(ich hab mal in 50 Zeilen ne Remote Maus-Steuerung Programmiert).
Neugier, Zeigen! => Wiki. ^^
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

nufan
Wiki-Moderator
Beiträge: 2558
Registriert: Sa Jul 05, 2008 3:21 pm

Re: Plattformunabhängige Kommunikation - Protokoll und Stand

Beitrag von nufan » Do Aug 11, 2011 4:57 pm

Bin zwar kein Java-Fan, aber ich werfe mal RMI in den Raum ;)
Da könnte ich auch irgendwann (= nach Qt) ein kurzes Tutorial dazu erstellen... ^^

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3123
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: Plattformunabhängige Kommunikation - Protokoll und Stand

Beitrag von cloidnerux » Do Aug 11, 2011 7:11 pm

Neugier, Zeigen! => Wiki. ^^
Ist in C# geschrieben -> Windows, kann ich aber vorstellen.
Redundanz macht wiederholen unnötig.
quod erat expectandum

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8859
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Plattformunabhängige Kommunikation - Protokoll und Stand

Beitrag von Xin » Do Aug 11, 2011 8:10 pm

cloidnerux hat geschrieben:
Neugier, Zeigen! => Wiki. ^^
Ist in C# geschrieben -> Windows, kann ich aber vorstellen.
Schade, nicht mehr ganz so neugierig, aber würde mich trotzdem über einen cs:artikel:remotemouse begeistern.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Only86
Beiträge: 8
Registriert: Do Aug 11, 2011 2:41 pm

Re: Plattformunabhängige Kommunikation - Protokoll und Stand

Beitrag von Only86 » Fr Aug 12, 2011 7:55 am

Hey,

schon mal danke für die vielen Antworten.
Also, was will ich machen? Ich möchte mich zunächst mit dem Client beim Server authentifizieren. Anschließend werden meist Filterparameter vom Client an den Server übertragen, der einen permanenten STream daraufhin auf bestimmte Signale filtert. Diese Informationen sollen dann wiederum vom Server an den Client übertragen werden. Ein Nachrichtenaustausch geschieht dabei alle paar Sekunden (auch abhängig von den Zykluszeiten der entsprechenden Signale), weshalb ich eine email für ungeeignet halte. Da WLan genutzt wird, sehe ich das mit der Bandbreite im Moment nicht so eng und verschmerze auch den Overhead bei XML. Im Moment sind nur der Client und der Server in diesem angesiedelt. Ich werde natürlich noch untersuchen, wie hoch das Datenaufkommen ist und wie sich dieses reduzieren lassen würde.

Also ich fasse nochmal kurz zusammen. Mögliche Ansätze wären jetzt:
- SOAP
- TC/IP-Sockets
- eigener "Standard" (habt ihr dazu mehr Informationen, Beispiele oder einen Hinweis, weil ich damit nicht viel anfangen kann)
- RMI (ich habs mal kurz nachgeschlagen, aber es sieht aus als wäre es nur für JAVA verfügbar und damit schon ungünstig für meine Zwecke)

Könntet ihr da noch ein paar Begriffe einwerfen? Ich würde dann recharchieren, vergleichen und das Beste für dieses EInsatzgebiet auswählen.

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8859
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Plattformunabhängige Kommunikation - Protokoll und Stand

Beitrag von Xin » Fr Aug 12, 2011 8:53 am

Only86 hat geschrieben:Also, was will ich machen?
Darf ich erstmal fragen, welche Programmiererfahrung Du hast?
Wenn Du dauerhaft aktiv sein möchtest, schreib doch mal eine Uservorstellung und pack die Info rein.
Only86 hat geschrieben:Also ich fasse nochmal kurz zusammen. Mögliche Ansätze wären jetzt:
- SOAP
- TC/IP-Sockets
- eigener "Standard" (habt ihr dazu mehr Informationen, Beispiele oder einen Hinweis, weil ich damit nicht viel anfangen kann)
SOAP wie auch ein eigener "Standard" und auch RMI würden über TCP/IP realisiert.

Über Ethernet (LAN und WLAN) werden Daten über das Protokoll TCP/IP-Datenpakete übertragen. In den Datenpaketen liegen die Daten mittels HTTP, FTP, ..., RMI oder Deine eigene Datenzusammenstellung "Standard" übertragen werden.
Only86 hat geschrieben: - RMI (ich habs mal kurz nachgeschlagen, aber es sieht aus als wäre es nur für JAVA verfügbar und damit schon ungünstig für meine Zwecke)
RMI ist Java only.
Also kein Java.
Only86 hat geschrieben:Könntet ihr da noch ein paar Begriffe einwerfen? Ich würde dann recharchieren, vergleichen und das Beste für dieses EInsatzgebiet auswählen.
listen, bind, socket
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

nufan
Wiki-Moderator
Beiträge: 2558
Registriert: Sa Jul 05, 2008 3:21 pm

Re: Plattformunabhängige Kommunikation - Protokoll und Stand

Beitrag von nufan » Fr Aug 12, 2011 9:38 am

Only86 hat geschrieben:- RMI (ich habs mal kurz nachgeschlagen, aber es sieht aus als wäre es nur für JAVA verfügbar und damit schon ungünstig für meine Zwecke)
Es gibt auch CORBA, das hab ich aber ehrlich gesagt noch nie verwendet.

Antworten