Zugriff auf Daten von mehreren Geräten (online)

  • Antworten:8
Matthias
  • Forum-Beiträge: 181

16.09.2011, 08:35:44 via Website

Hi Leute,

in meiner App, die ich momentan entwickle, sollen Daten (genauer genommen ist es nur eine Zahl) mehreren Geräten / Benutzern gleichzeitig (möglichst in Echtzeit) zur Verfügung stehen.

Angenommen 3 Benutzer mit je einem Gerät "arbeiten" zusammen mit dieser Zahl und jeder darf deren Wert verändern. Dann sollte folgendes passieren:

a) Beim Ändern der Zahl wird die neue Zahl online (Datenbank, Webspace o.Ä.) abgelegt bzw. geändert.
b) Auf allen 3 Geräten muss die Zahl möglichst in Echtzeit aktualisiert werden, sodass jeweils der aktuellste Wert auf allen 3 Geräten angezeigt wird.

Welche Möglichkeiten hab ich denn diesbezüglich bzw. was empfiehlt ihr?

— geändert am 16.09.2011, 08:37:43

Antworten
Rafael K.
  • Forum-Beiträge: 2.359

16.09.2011, 10:18:44 via Website

Naja im Grunde hast du nur 2 Paradigmen zur Auswahl und dazu jeweils beliebig viele Möglichkeiten der Umsetzung.

1. Polling
Der Wert wird auf einem zentralen Server von den Geräten gespeichert und jedes Gerät prüft periodisch auf Veräderungen.
Das könntest du mit einem Webspace, oder z.B. mit einer WebApp in der GoogleAppEngine machen.
Vorteil: einfach umzusetzen
Nachteil: Höhere Latenz, mehr Traffic

2. Push
Dazu brauchst du eine statefull WebApp, das kann die GoogleAppEngine leider nicht.
Prinzip: Die Geräte registrieren sich mit ihrer IP, bzw. öffnen einen Socket. Dann schickt der Server an alle registrierten Geräte eine Benachrichtigung, wenn sich der Wert ändert. Ähnlich IMAP mit Push-Email.
Vorteil: niedrige Latenz, weniger Traffic
Nachteil: mehr Aufwand in der Umsetzung

Drittes Paradigma wäre Peer-2-Peer, aber das halte ich in Mobilfunknetzen nicht für umsetzbar, bzw. extrem unzuverlässig.

Antworten
Matthias
  • Forum-Beiträge: 181

16.09.2011, 11:44:28 via Website

Rafael K.
Naja im Grunde hast du nur 2 Paradigmen zur Auswahl und dazu jeweils beliebig viele Möglichkeiten der Umsetzung.

1. Polling
Der Wert wird auf einem zentralen Server von den Geräten gespeichert und jedes Gerät prüft periodisch auf Veräderungen.
Das könntest du mit einem Webspace, oder z.B. mit einer WebApp in der GoogleAppEngine machen.
Vorteil: einfach umzusetzen
Nachteil: Höhere Latenz, mehr Traffic

Ich werde mich dann vermutlich für diese Variante entscheiden. Im Tutorial hier (https://www.nextpit.de/de/android/forum/thread/410944/MySql-Datenbank-in-eine-ListView-auslesen) läuft das ganze ja über JSON. Ist das unbedingt notwendig? Ich erhalte ja immer nur eine Zahl zurück und kein ganzes Dataset.

— geändert am 16.09.2011, 11:50:26

Antworten
Matthias
  • Forum-Beiträge: 181

16.09.2011, 13:04:53 via Website

Ich programmiere sowohl Sender als auch Empfänger. Gebe ich den gewünschten Rückgabewert dann im PHP-Skript mittels
1print $zahl;
aus?

Und wenn ja, wie kann ich diesen Wert dann mit meiner App abrufen?

Antworten
Markus B.
  • Forum-Beiträge: 636

17.09.2011, 00:41:54 via Website

Matthias
Ich programmiere sowohl Sender als auch Empfänger. Gebe ich den gewünschten Rückgabewert dann im PHP-Skript mittels
1print $zahl;
aus?

Und wenn ja, wie kann ich diesen Wert dann mit meiner App abrufen?

Hallo,
such doch einfach mal nach dem Thema REST und Android. Das wurde hier im Forum schon 1000 mal durchgekaut und es gibt Tonnen dazu im Netz. Desweiteren empfehle ich dir dich mal richtig mit der Android-Plattform zu beschäftigen. Also mal ein Buch oder sonst was zum Thema zu lesen. Gerade du als Software Entwickler solltest doch wissen: Erst lesen, denken und dann fragen.
(Diesen Rat möchte ich dir nur aufgrund deiner letzten Threads ans Herz legen. Das soll ihr kein flamen oder sonst was sein. Nur ein Ratschlag, welcher dich weiter bringen wird!)

Gruß,
Markus

— geändert am 17.09.2011, 00:43:10

Antworten
Matthias
  • Forum-Beiträge: 181

17.09.2011, 12:06:04 via Website

Markus B.
Hallo,
such doch einfach mal nach dem Thema REST und Android.

Danke, mir hat einfach die Begrifflichkeit gefehlt. Mit Suchen kenne ich mich als Softwareentwickler ja aus :bashful:.

Antworten