Michael Schröpl: Schnittstelle lokal und Internet-Server

Beitrag lesen

Hi Andreas,

Erstmal stellt sich die Frage, welche Programmiersprache,

Keineswegs.

Zuerst solltest Du die Aufgabenstellung spezifizieren.

In Deinem Falle willst Du ein Kommunikationsproblem lösen - ich würde also damit anfangen, mich für ein passendes Protokoll und eine passende lokale Datendarstellung zu entscheiden, welche der Semantik der Aufgabenstellung gerecht werden.
Dazu aber brauche ich eben eine Aufgabenstellung, was Du mit Deinen lokalen Daten alles tun können willst ... und zwar eine _sehr_ exakt definierte. So exakt, daß ich aus ihr die zu verwendenden Werkzeuge nahezu zwingend ableiten kann.

und wo diese ausgeführt werden soll/kann.

Du machst Dich viel zu früh von einer konkreten Installation abhängig.
Die Herleitung der Aufgabenstellung könnte dazu führen, Dir eine bestimmte Vorgehensweise vorzuschreiben - und diese wiederum könnte PHP grundsätzlich als Lösungsweg disqualifizieren.

Da ich zur Zeit noch ziemlich auf PHP fixiert bin,

Eben. Deine Vorgehensweise lautet: "Ich habe einen Dosenöffner. Wie repariere ich damit jetzt ein Auto?" So herum kann es nicht funktionieren.
Beginne damit, "reparieren" zu definieren, indem Du eine Spezifikation schreibst, welche erklärt, was das Auto alles können muß ... definiere "fahren" und "kaputt" und solche Dinge.
Schreibe ein Benutzerhandbuch für Dein Produkt - dazu muß noch keine einzige Code-Zeile davon existieren!

Nur erscheint mir das seeeeehr unsicher. Da kann ja Hinz
und Kunz an meine DB!

Ah! Jetzt geht es also doch langsam los mit dem Anforderungskatalog.
Was genau bedeutet in Deinem Falle "sicher"?

Dort solltest Du die Zeit investieren - nicht bei Lösungsversuchen, die Dich in eine beliebige Richtung rennen lassen.
Merkregel: Der Anteil der Implementierung während eines Projektes nennenswerter Größe übersteigt 30% der Projektgesamtdauer nicht sehr oft. (Je größer das Projekt, um so wahrer diese Aussage.)

Eine weitere Lösung wäre auch ein Script auf dem lokalen
Server auszuführen, und die Daten dann per SSL-gesicherte
Socket Verbindung hin und her zu schicken.

Du bist immer noch dabei, eine Lösung auszuwürfeln und dann zu hoffen, daß sie zufällig alle "gewünschten" Eigenschaften haben könnte - ohne über diese Eigenschaften bereits nachgedacht zu haben.

Gibt es da noch eine bessere Möglichkeit Daten hin und her
zuschicken, DBs zu synchroniesieren, halt über das Internet
und möglichst mit PHP?

Ändere Deine Sichtweise. Vergiß PHP und schreibe eine Aufgabenstellung.
Brauchst Du denn lokal eine Datenbank? Warum? Welche Funktionen willst Du dort realisiert sehen?

Sagen wir mal ich hätte lokal nur eine Access DB oder
vergleichbares, jedenfalls ein einziges Programm.

Ein einziges Programm, das Du seinem eigentlichen Vewendungszweck widersprechend einsetzt, kann sehr viel schwieriger zu bändigen sein als fünf hochspezialisierte Tools in der richtigen Zusammensetzung und mit "etwas shell drum herum".

Es ist die Natur Deiner Aufgabe, ob sie mit einem oder mit vielen verschiedenen Werkzeugen am besten zu lösen ist - nicht Dein zufälliger Wissensstand über eine zufällige Programmiersprache oder ein zufälliges Produkt eines bestimmten Herstellers.

Wie könnte man hier mit einer MySQL DB im Internet
kommunizieren?

Das ist alles immer noch hoffnungslos unterspezifiziert - es gibt zahlreiche Möglichkeiten dafür, dies zu tun, sowohl mit den Mitteln der Datenbank selbst als auch mit entsprechenden Interface-Programmen.
Du sagst immer noch nicht, was Du _erreichen_ willst.

In VB kann ich nämlich bedeutend weniger als in PHP!

Das ist alles reichlich irrelevant.

Algorithmische Sprachen wie VB und PHP sind im Wesentlichen untereinander austauschbar - aber die Nicht-Existenz von Konzepten ist nicht durch den Einsatz von Werkzeugen kompensierbar.

Oder gibt es in PHP einfachere Wege Daten zu speichern,
als auf einem MySQl DB Server(außer txt-Dateien)?

Löse Dich von Produkten - denke in Problemstellungen!

Beispielsweise: Was heißt "synchronisieren"? In welchem Zeitrhythmus? Über welchen Kommunikationsweg? Darf Dein Prozeß uneingeschränkt auf die zu kopierende Dateninstanz zugreifen, oder besteht die Gefahr, daß sich deren Inhalt während Deines Synchronisationslaufs ändern? Brauchst Du eine "konsistente Sicht" auf das zu synchronisierende Objekt, also ein Transaktionskonzept?
Das sind Fragen, die geklärt sein _müssen_, bevor Du über den Namen eines Produkts oder einer Programmiersprache auch nur nachdenken darfst ... weil jeder dieser Punkte die Verwendung eines bestimmten Produktes kippen kann.

Viele Grüße
      Michael
(Systemanalytiker)