Automatische datenübertragen zwischen Client und Server

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Automatische datenübertragen zwischen Client und Server

    Hallo,
    und zwar habe ich eine Frage, wie kann man am besten folgendes Szenario umsetzen:

    Ich habe einen normalen Webserver und einen Client. Auf dem Webserver liegt eine Oberfläche mit der man Daten auf den Server hochladen kann, diese Daten sollen dann auf einen Client übertragen werden nachdem man die Daten freigegeben hat. Das ganze muss automatisch ablaufen, sprich ich möchte nichts auf dem Client machen müssen. Das ganze muss natürlich auch sicher sein. Der Client (PC) ist ein Client der irgendwo anders steht und wie gesagt es sitzt niemand an diesem Client. Ich habe als Idee FTP Push, wäre das ne Möglichkeit? Habt ihr noch andere Ideen?

    Schritte:

    1. Daten vom User PC auf Server hochladen
    2. Daten nach Freigabe vom Server auf einen Client PC laden, automatisch, kein Eingriff am Client
    3. Bestätigungsmeldung am Server / Oberfläche

    Ich hoffe ich konnte einigermaßen erklären worum es geht, wenn jemand noch ne Frage hat, einfach Fragen :) Danke vorab für eure Mühen!
  • Mit PHP wirste da nicht weitkommen, da PHP ja eine serverseitige Sprache ist...

    Ohne weiteres ist dein vorahaben also nicht Möglich:

    Entweder du musst es so machen, dass du mittels AJAX alles 10-20 Sekunden den Server fragst hast was neues und die Datei dann manuell speichern musst oder du musst dich mit Java programmierung beschäftigen, wobei man Applets ja auch immer erst manuell aktivieren muss und ich bin mir nicht sicher ob man mit nem Appel so einfach auf die Festplatte zugreifen kann, das ist bestimmt restriktiert.
  • Mmh... Danke erstmal für deine Antwort. Wie gesagt, die Daten sollen "einfach" nur auf die andere Platt geladen werden, daher meine Idee mit dem FTP Push bzw. allgemein mit FTP.

    Dann hätte ich doch die Möglichkeit die Dateien via FTP auf den Client zu laden, natürlich wenn dieser die nötigen Dienste installiert hat.

    Ob mit PHP, Java oder wie auch immer, ist erstmal nicht so relevant ;) Erstmal brauche ich einen Ansatz :)
  • Noch hast du über die Technik nicht viel definiert.

    Ein PUSH Verfahren halte ich für nicht so gut.
    Erstmal müssen sich die "Clients" irgendwie am Masterserver anmelden, damit sie überhaupt über neue Dateien informiert werden.

    Wenn das geschehen ist, hat der Masterserver eine Liste an Clients, an die er die Dateien schickt. Doch was passiert, wenn sich ein Client nach 10 Minuten abmeldet und stattdessen ein fremder Nutzer mit gleicher IP auftaucht. Dann würde der die Dateien später empfangen. Also müsste man vor dem Senden erneut authentifizieren....

    Naja, da wäre es doch viel besser wenn der Server seine Client-Liste nur informiert, dass er Änderungen besitzt und sich die Clients dann selbst mit Dateien versorgen. Und während die Clients nachfragen müssen sich sich jedesmal authentifizieren.

    BTW: FTP ist generell unsicher - aber es gibt ja auch noch FTPS
  • Das hört sich sehr interessant an!

    Wie könnte man das technisch am besten umsetzen? Also was meiner Meinung nach Sinn machen würde. Auf dem Server ist eine DB mit den einzelnen Clients, jeder hat ne ID, der Server aktualisiert seine Liste sobald der User für einen bestimmen Client eine Datei neu hochgeladen hat, der Client mit der jeweiligen IP check alle 15 Minuten auf dem Server ob es "Neuigkeiten" für Ihn gibt, sobald dies gegeben ist, zieht er sich seine "neue" Datei.. Nur was muss man auf dem Client haben damit dieser auch alle 15 Minuten den Server checkt? Der Client soll ja relativ "schlank" sein. Danke vorab..
  • du musst wissen, was mehr Sinn macht.
    Wenn der Server die Clients informiert, wenn es was neues gibt, hast du den Vorteil, dass die Client sofort Bescheid wissen. Allerdings den Nachteil, dass die Clients selbst auf einem offenen Port lauschen müssen.

    Wenn die Clients den Server selbstständig fragen ob es Änderungen gibt, dann musst du dir nur einen realistischen Intervall überlegen. Alle 5 Sekunden wären ziemlich übertrieben und trafficlastig, wenn es nur alle 2 Tage mal eine Änderung gibt.

    Voraussetzungen hast du auch nur wenige. Keine offenen Ports -> keine Probleme mit Firewalls.

    Bleibt die Frage, mit welcher Sprache du es umsetzt. PHP.. naja.. sicherlich möglich, aber ohne Threading Konzept ist das nicht so prickelnd.

    Kannst du denn andere Sprachen? Allein wegen der Einfachheit von Skriptsprachen würde ich dir Python empfehlen. Ansonsten natürlich Java, C#, ...
  • Also ich selbst kann kein Java, hätte da aber jemanden der dies kann. Ich denke die Lösung ohne Ports etc, ist die beste.

    Wenn ich dich richtig verstanden habe, würde bzw. könnte auf dem Client ein Java Programm im Hintergrund laufen, das selbstständig in einem bestimmten Intervall eine Verbindung zum Server macht, dort müssten dann ja nur die Ports frei sein, dort wäre dann zum Beispiel eine XML Datei mit den Informationen und die neuen "Dateien". Der Client würde sich dann die Dateien downloaden über eine FTPS Verbindung als Beispiel, müsste doch dann beste sein oder hat jemand noch ne Idee wie man das sicherer oder besser machen könnte?