Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Datenaustausch mit der "Cloud" (https://www.delphipraxis.net/169378-datenaustausch-mit-der-cloud.html)

Nersgatt 16. Jul 2012 12:42

Datenaustausch mit der "Cloud"
 
Moin,

ich habe eine konzeptionelle Frage.
Wir haben eine (Delphi-) Software die Daten mit mobilen Geräte austauscht. Dies sind vor allem Geräte, die mit Windows mobile oder Windows CE laufen. Die Anwendung darauf ist mit VB.net geschrieben. Die Geräte haben eine GSM-Karte und kommen so ins Internet.
Nun ist es so, dass bei den Kunden eine Serversoftware von uns installiert wird. Dazu werden dann über DynDNS, NO-IP, etc. Portweiterleitungen eingerichtet, damit die mobilen Geräte den Server erreichen.

Und genau mit diesem Punkt haben wir immer wieder Probleme. Unsere Kunden sind kleine Firmen. Da gibts folgende Probleme:
  1. Die haben keine Netzwerkadmin, sondern entweder ne Fremdfirma, die sowas einrichtet. Oder das macht der Sohn des Schwagers aus 2. Ehe, weil der sich total gut mit Computerkrams auskennt.
  2. Und die haben keinen Ciscorouter dort stehen, sondern irgendeine Kiste, die beim DSL-Vertrag halt dabei war.
  3. Die Serversoftware ist im Prinzip ein Indy-FTP-Server mit ein paar Spezialitäten. Wir haben festgestellt, dass es bei einigen Mobilfunkprovidern aufgrunddessen Probleme gibt. Da wird FTP gesperrt. Insbesondere in der Schweiz haben wir das Problem. Und mit der Telekom in D hatten wir das Problem bei einer bestimmten Vertragsvariante.
  4. Die Kunden haben keine Leistungsfähige Internetverbindung, sondern oftmals nur DSL 2000 oder gar noch schlechter. Ländlicher Raum.

Nun besteht folgende Idee:
Wir mieten uns irgendwo einen Server (Cloud). Darauf lassen wir einen Server laufen, mit dem die Clients per REST kommunizieren können. Dort können sie also ihre Daten abliefern, bzw. sich neue Stammdaten abholen. Der Server beim Kunden würde sich auch mit diesem REST-Server verbinden und dort die Daten der Mobilgeräte abholen oder dort Stammdaten bereitstellen.
Ich erhoffe mir daraus, dass ich das Problem 1 und 2 löse (keine Portumleitung nötig). Und das Problem 3 (REST = HTTP statt FTP).

Hat jemand schon mal sowas gemacht?
Kann man sich z.B. bei Amazon einen Server (bzw. eine Serverinstanz) mieten, womit ich dann machen kann, was ich will? In diesem Fall eine eigene Software = REST-Server installieren? Und hätte diese Serverinstanz dann eine öffentliche IP?
Und wie wäre das ganze skalierbar? Wir arbeiten sehr saisonal. D.H. unsere Kunden arbeiten 3 Monate im Jahr auf 120% Volldampf und den Rest des Jahres dümpeln die so rum. Bei der Anzahl Clients (Mobilgeräte) muss man in der Hauptzeit von deutlich 3-stelligen Zahlen ausgehen. Von den Geräten muss der Server die Daten annehmen und ausliefern (wobei die Datenmengen im Kilobytebereich liegen).

Wie wäre das Softwaremäßig anzugehen? Ich habe schon bei diversen Vorträgen Datasnapserver gesehen, die REST-Services bereitstellen. Aber so richtig habe ich das nicht verstanden, weil es mich damals wohl auch nicht so recht interessiert hat. Würde man dann einen Dienst erstellen, der auf dem Server läuft?
Was kostet mich der Spaß?

Hinweise, Tipps, andere Wege?

Danke!
Jens

BUG 16. Jul 2012 12:58

AW: Datenaustausch mit der "Cloud"
 
Ich würde überlegen, keine Instanzen bei Amazon zu mieten (teuer wenn sie dauernd laufen, Verwaltungsaufwand), sondern direkt einen Datenbankdienst oder einen Filestorage. Dann brauchst du dich um Skalierung wenig zu kümmern.

Zugegriffen wird darauf über eine REST-Schnittstelle.

EDIT: Allerdings könnte es Probleme mit dem Datenschutz geben, da Amazon ein US-Unternehmen ist. Da musst du dich auf jeden Fall nochmal schlau machen.

jobo 16. Jul 2012 13:03

AW: Datenaustausch mit der "Cloud"
 
graue Theorie (Stand letztes Jahr)
Bei Amazon kannst Du für einige Zeit kostenlos testen(1 Jahr?), brauchst glaub ich ne Kreditkarte, um den Account anzulegen.

Du kannst da machen, was Du willst, aber Du zahlst (später) den gesamten Traffic. Also auch den Traffic, der beim Setup des Servers (von außen) entsteht. Es gibt aber irgendeine Plattform, wo Du Dir fertige Serverimages kopieren kannst (also innerhalb der amazon cloud, kostenfrei?).

Man kann also erstmal recht locker experimentieren, wenn ich das richtig in Erinnerung hab.

jaenicke 16. Jul 2012 13:22

AW: Datenaustausch mit der "Cloud"
 
Die Cloud-Unterstützung bringt Delphi ab der Enterprise Edition bereits direkt mit, ja. Das Prinzip ist hier z.B. erklärt:
http://www.youtube.com/watch?v=BRFbiRcLtkc
http://docwiki.embarcadero.com/RADSt...g_mit_DataSnap
...

Das ganze lässt sich relativ schnell und einfach umsetzen. Ich habe das zwar bisher nur mit XE gemacht, aber mit XE2 soll es ja sogar noch schöner gehen.

bernau 16. Jul 2012 13:53

AW: Datenaustausch mit der "Cloud"
 
Frage die mich immer wieder interessiert:

Warum Cloud? Warum nicht einen eigenen Rootserver anmieten. Beim Rootserver weist du wo er steht. Bei Cloud bekomme ich immer irgendwie Bauchschmerzen.



Habe einige Rootserver für meine Internetseiten und für Backup der Kundendaten. Eigendlich laufen die recht Wartungsarm.

Ich überlege mir schon seit Wochen, ob ich nun die Kundendaten nicht mehr lokal speichere, sondern auf den Internetservern und diesen Dienst meinen Kunden vermiete. Vorteil ist natürlich, daß man von überall auf die Daten zugreifen kann. Nachteil: Ich muss mich um die Sicherheit der Daten kümmern.

Die Frage ist auch, wie kann ich offline weiterarbeiten, falls mal das Internet ausfällt? Alles noch nicht ausgegoren. Aber dennoch kam mir nie die Idee, die Daten in die Cloud auszulagern.

Nersgatt 16. Jul 2012 13:56

AW: Datenaustausch mit der "Cloud"
 
Filestorage (Amazon S3) in Verbindung mit der Cloudunterstützung von Delphi klingt höchst interessant. Passt wie Ar... auf Eimer. :thumb:
Und ist erstaunlich günstig. Auf jeden Fall eine Richtung, in die ich weiter forschen werde.
Danke!

@bernau: warum mit Kanonen auf Spatzen schießen? In meinem Fall würde mir das Filestorage ausreichen. Und wenn ich mal die Kosten pro Monat überschlage, komme ich auf erstaunlich niedrige Beträge.
Und außerdem spare ich den Verwaltungsaufwand für den Server.

jaenicke 16. Jul 2012 14:46

AW: Datenaustausch mit der "Cloud"
 
Zitat:

Zitat von bernau (Beitrag 1174816)
Die Frage ist auch, wie kann ich offline weiterarbeiten, falls mal das Internet ausfällt? Alles noch nicht ausgegoren.

Wieso? Genau das ist doch mit Multi-Tier Anwendungen mit DataSnap möglich.

Sprich ich habe z.B. die Struktur Client <--> lokaler Server <--> Netzwerkserver <--> Internetserver <--> Datenbankserver. Fällt nun der Internetserver aus, übernimmt der Netzwerkserver die Verwaltung und reicht die Daten weiter, wenn der Internetserver wieder erreichbar ist. Ebenso bezogen auf den Client.

Die Logik dahinter muss man sich allerdings sehr gut überlegen. Einfach ist das nicht. Aber wenn man das dann erst einmal so umgesetzt hat, hat man ein extrem flexibles und robustes System um die Ausfallzeiten beim Arbeiten an den Clients so gering wie möglich zu halten. Der Kunde soll schließlich immer weiterarbeiten können trotz z.B. eines Internetausfalls.

Zitat:

Zitat von bernau (Beitrag 1174816)
Warum Cloud?

  • Einfache und schnelle Anbindung, Delphi kann das ja z.B. wie schon erwähnt direkt
  • Sehr gute Skalierungsmöglichkeiten (viele Zugriffe abfedern, ...)
  • In der Regel sehr viel günstiger als eigene Server, je nach Anwendungszweck
  • Kaum eigener Aufwand was die Verwaltung der Server angeht
  • Hochverfügbarkeit, also sehr gut gegen Datenverlust gesicherte Daten (unabhängig von einer eigenen zusätzlichen Sicherung), die zudem selbst bei Festplattenausfällen noch aus gespiegelten Daten verfügbar sind
  • ...
Insofern stellt sich eher die Frage: Warum nicht Cloud?

Klar, der Serverstandort ist ein wichtiger Punkt bei gewissen Daten, aber sonst?

Uwe Raabe 16. Jul 2012 14:50

AW: Datenaustausch mit der "Cloud"
 
Sicher gibt es bei Cloud-Lösungen einiges zu bedenken, was gar nicht mit der Implementierung selbst zu tun hat. Ein schlagendes Argument ist aber eindeutig die hohe Verfügbarkeit, die Skalierbarkeit und die fehlende Notwendigkeit zur Adminstration.

(Shameless plug:) Wer wissen will, wie es mit Microsoft Azure geht, möge doch mal bei den Delphi-Tagen vorbeischauen...:angel2:

bernau 16. Jul 2012 16:34

AW: Datenaustausch mit der "Cloud"
 
Zitat:

Zitat von jaenicke (Beitrag 1174820)
Wieso? Genau das ist doch mit Multi-Tier Anwendungen mit DataSnap möglich.

Sprich ich habe z.B. die Struktur Client <--> lokaler Server <--> Netzwerkserver <--> Internetserver <--> Datenbankserver. Fällt nun der Internetserver aus, übernimmt der Netzwerkserver die Verwaltung und reicht die Daten weiter, wenn der Internetserver wieder erreichbar ist. Ebenso bezogen auf den Client.

Das hört sich allerdings wiederum interessant an. Aber wenn ich von verschiedenen Standorten auf den Internetserver zugreifen will, dieser ausfällt und mit dem Netzwerkserver des jeweiligen Standortes weitergearbeitet wird, was passiert, wenn die Netzwerkserver mit dem Internetserver abgleicht, und an verschiedenen Standorten der gleiche Datensatz geändert wurde?

jaenicke 16. Jul 2012 16:42

AW: Datenaustausch mit der "Cloud"
 
Zitat:

Zitat von bernau (Beitrag 1174834)
Das hört sich allerdings wiederum interessant an. Aber wenn ich von verschiedenen Standorten auf den Internetserver zugreifen will, dieser ausfällt und mit dem Netzwerkserver des jeweiligen Standortes weitergearbeitet wird, was passiert, wenn die Netzwerkserver mit dem Internetserver abgleicht, und an verschiedenen Standorten der gleiche Datensatz geändert wurde?

Ohne tiefer ins Detail zu gehen:
Wir lösen das so, dass Verantwortlichkeiten definiert sind. Ich weiß also z.B., dass Anlage A gerade für Bereich A und B zuständig ist. Reißt nun die Verbindung ab, kann ich darauf auch weiterarbeiten. Ich kann aber nicht in fremde Bereiche gehen, da ich mir die Verantwortlichkeit dafür nicht vom Server geben lassen kann.
Am Server wiederum besteht die Möglichkeit die Verantwortlichkeit gewaltsam zu entreißen (z.B. wenn Anlage A ausgefallen ist).

Auf diese Weise lässt sich das ganze regeln, vorausgesetzt man kann eine solche Struktur auf die Gegebenheiten anwenden.

Dazu kommt dann noch eine ausgefeilte Logik, falls es doch zu Konflikten kommen sollte. Diese müssen dann natürlich ggf. manuell aufgelöst werden, aber es wird versucht auch das automatisch zu machen. Bei einem notwendigen manuellen Eingriff müssen die vorliegenden Daten natürlich so aufbereitet werden, dass ein normaler User damit klar kommt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:44 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz