Schnittstelle lokal und Internet-Server
Andreas Korthaus
- programmiertechnik
Hallo nochmal!
Noch eine Frage hätte ich da an die fachkundige Leserschaft:
Mein Problem: Daten von einem extern gehosteten Webserver(Unix) auf einen loaklen Rechner(win) oder in ein LAN importieren, bzw. von lokal auf den Webserver exportieren, und kpl. Datenbestände zu synchronisieren.
Ich bin schon länger auf der Suche nach einer praktikablen Lösung hierfür, aber so richtig glücklich bin ich bis heute nicht. Erstmal stellt sich die Frage, welche Programmiersprache, und wo diese ausgeführt werden soll/kann. Da ich zur Zeit noch ziemlich auf PHP fixiert bin, habe ich das hiermit versucht. Die einigermaßen funktionierende Lösung, ich habe auch lokal einen MySQL Server(wie im Internet) installiert, dann führe ich auf dem externen Webserver ein Script aus, welches sowohl DB-"Transaktionen" auf dem externen(eigenen), wie dem lokalen Server durchführt. Nur erscheint mir das seeeeehr unsicher. Da kann ja Hinz und Kunz an meine DB! 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.
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?
Aber am liebesten wäre mir eine Lösung ohne MySQL/Apache/PHP lokal, gibt es da eine Möglichkeit? Sagen wir mal ich hätte lokal nur eine Access DB oder vergleichbares, jedenfalls ein einziges Programm. Wie könnte man hier mit einer MySQL DB im Internet kommunizieren? Müßte man das mit VB machen, auch Socket-verbindung... geht das bzw. ist das sehr kompliziert? In VB kann ich nämlich bedeutend weniger als in PHP!
Oder gibt es in PHP einfachere Wege Daten zu speichern, als auf einem MySQl DB Server(außer txt-Dateien)?
Viele Grüße
Andreas
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)
Hi Michael!
Erstmal vielen, vielen Dank für die beiden super-ausführlichen Antworten!
Aber zunächst muß ich einen wichtigen Unterschied zwischen uns beiden herausstellen: Du verfügst über sehr viel Erfahrung auf dem Gebiet, außerdem kennst Du zig Programmiersprachen, könntest Dir wenns sein muß wahrscheinlich auch mal eine "so eben" aneignen, das ist bei mir anders. Ich hab noch nie sowas gemacht und kann nur PHP und das auch nur sehr begrenzt, aber ich könnte nicht mal eben auf PERL/C/VB... ausweichen! Bei mir ist PHP so zu sagen eine Restriktion! Und wenn irgendwein Feature damit nicht realisierbar ist(was ich nicht glaube) muß darauf erstmal verzichten.
Zur Aufgabe: Ich hatte die fürs erste etwas außen vor gelassen, da es mir nur auf die Komunikation zw. lokal und Webserver ankam, aber Du hast Recht, die Angabenstellung braucht man.
Da die "Endlösung" (kpl. Synchronisation, d.h. ein paar mal am Tag per Knopfdruck alle Tabellen der Datenbank miteinander abgleichen, genaueres später!) meine PHP-Kenntnisse vor arge Probleme stellte, war ich halt erstmal mit einer einfacheren Lösung zufrieden, in der einfach einige Tabellen nur in eine Richtung aktualisiert wurden - da wurden die halt auch dem entsprechend nur verändert.
Im Detail soeht das so aus, das der DB-Server im Internet neue Einträge über das Internet erhält, aber keine Änderungen erfolgen, die neuen Datensätze sollen auf die Lokale DB übertragen werden, wo dafür alle Datensätze verändert werden können, und die geänderten sollen aktualisiert werden.
Zur zeit behelfe ich mir damit, das ich in jeder Tabelle einen timestamp habe, und sowohl auf Server und Client den letzte Synchronisationszeitpunkt in einer Tabelle logge, und bei der nächsten Synchronisation alle Datensätze, die nach der letzten Synchronisation laut Timestamp verändert - je nachdem - per Update oder Insert entsprechend einfüge. Ist bei vielen tabellen wohl recht kompliziert.
Also zusammengefaßt: Im Internet kommen neue Datensätze, die auf dem lokalen Recvhner eingefügt werden sollen, und auf diesem rechner führe ich änderungen durch, die ins Internet sollen. Außerdem können auch lokal Datensäzue eingefügt werden, das mache ich dann mit einer eigenen Datensatz ID auf dem Client, zusätzlich zu dem Webserver im Internet.
Der Internetserver ist wie gesagt ein gehosteter Webserver, habe also begrenzte Rechte, lokal gehe ich über einen Route, der Anfragen an den Port 80 auf dieser IP an den Apache im LAN weiterleitet, wo dann die Abfragen vom entfernten Webserver aus ausgeführt werden.
Besteht so überhaupt die Möglichkeit sowas mit MySQL - Tools zu machen?
Meine Variante läuft halt in PHP. Jetzt hatte ich halt überlegt, ob ich die Abfragen, die ich sonst direkt quer über das Netz ausführe, ob ich die nicht mit einer Socket-Verbundung im POST Header in einem Arrray verschicke, und so nur auf dem jeweiligen Server ausführe. Ist das wohl besser/sicherer?
Sorry, etwas wirr, aber ist sehr kompliziert und etwas spät:) Zu den anderen Sachen schreibe ich dann morgen was!
Grüße
Andreas
Hi Andreas,
Ich hab noch nie sowas gemacht und kann nur PHP und das
auch nur sehr begrenzt, aber ich könnte nicht mal eben
auf PERL/C/VB... ausweichen! Bei mir ist PHP so zu sagen
eine Restriktion! Und wenn irgendwein Feature damit nicht
realisierbar ist(was ich nicht glaube) muß darauf erstmal
verzichten.
wenn irgend ein Feature mit _keiner_ Sprache realisierbar ist,
dann ist das eine viel schlimmere Restriktion.
Da die "Endlösung" (kpl. Synchronisation, d.h. ein paar mal
am Tag per Knopfdruck alle Tabellen der Datenbank
miteinander abgleichen, genaueres später!)
Trotz alledem: Damit solltest Du anfangen.
Werden beide Datenbanken unabhängig voneinander geändert? Auch derselbe Datensatz? Wenn ja, wie willst Du die Änderungen in diesem Falle zusammenführen?
Das sind alles immer noch Themen, die von einer Programmiersprache völlig unabhängig sind.
Im Detail soeht das so aus, das der DB-Server im Internet
neue Einträge über das Internet erhält, aber keine
Änderungen erfolgen, die neuen Datensätze sollen auf die
Lokale DB übertragen werden, wo dafür alle Datensätze
verändert werden können, und die geänderten sollen
aktualisiert werden.
Und dann? Während Du lokal alles änderst, können im Internet auch schon wieder Änderungen erfolgt sein. Wie willst Du diese zusammenführen? Soll alles verloren gehen, was während der lokalen Änderungsphase im Internet geschehen ist?
Zur zeit behelfe ich mir damit, das ich in jeder Tabelle
einen timestamp habe, und sowohl auf Server und Client den
letzte Synchronisationszeitpunkt in einer Tabelle logge,
und bei der nächsten Synchronisation alle Datensätze, die
nach der letzten Synchronisation laut Timestamp verändert -
je nachdem - per Update oder Insert entsprechend einfüge.
Kannst Du Deine "lokale" Änderung denn nicht direkt in der produktiven Datenbank vornehmen?
Wenn Du sie dort als Transaktion abwickelst, sparst Du Dir sämtliche Synchronisationen.
Also zusammengefaßt: Im Internet kommen neue Datensätze,
die auf dem lokalen Recvhner eingefügt werden sollen, und
auf diesem rechner führe ich änderungen durch, die ins
Internet sollen.
Warum? Das ist die entscheidende Frage im Moment. Macht Deine Vorgehensweise so überhaupt Sinn? Wäre es nicht viel geschickter, alles in einer einzigen Datenbank abzuwickeln?
Der Internetserver ist wie gesagt ein gehosteter Webserver,
habe also begrenzte Rechte
Aber offenbar hast Du das Recht, per Programm darauf zuzugreifen - und das sollte für Deinen Fall ausreichen.
Was kannst Du bei Deinen lokalen Änderungen tun, was auf der "Produktions-Datenbank" im Internet nicht geht?
Sind die Felder, die lokal bzw. im WWW geändert werden, disjunkt? (Wenn ja: Lassen sich diese in zwei getrennte Tabellen aufteilen, um überlappende Updates zu vermeiden? Wenn nein: Wie erkennst bzw. behandelst Du Kollisionen?)
Viele Grüße
Michael
Hallo!
Kannst Du Deine "lokale" Änderung denn nicht direkt in der produktiven Datenbank vornehmen?
"Können" schon, nur ist das LAN über DSL ans Internet angebungen, wohl gemerkt T-DSL(!!!) und könntest Du Deinem Kinden ruhigen Gewissens empfehlen, dass er an die wichtigen Daten nur kommt, wenn es der Telekom paßt? Also wenn mehr oder weniger zufällig alles funktioniert? Klar funktioniert das meistens, aber eben nicht immer. Ich würd das vielleicht sogar trotzdem machen, aber die höchste Prämisse ist, dass alle Daten Lokal im LAN verfügbar sein müssen. Außerdem teile ich mir im Internet den MySQL-Server mit vielen andern, hab nur die DSL Anbindung für alle Mitarbteiter... das ist bedeutend langsamer als im LAN! Außerdem ist der Hoster ein weiteres vermeidbares Ausfallrisiko.
Wenn Du sie dort als Transaktion abwickelst, sparst Du Dir sämtliche Synchronisationen.
Transaktionen mit MySQL (stabel release)?
Also zusammengefaßt: Im Internet kommen neue Datensätze,
die auf dem lokalen Recvhner eingefügt werden sollen, und
auf diesem rechner führe ich änderungen durch, die ins
Internet sollen.
Warum? Das ist die entscheidende Frage im Moment. Macht Deine Vorgehensweise so überhaupt Sinn? Wäre es nicht viel geschickter, alles in einer einzigen Datenbank abzuwickeln?
Wie oben gesagt ist die Internet-DB nur dazu da, die lokalen Datensätze auch über eine Homepage anzeigbar zu machen. Es geht darum Datensätze(Immobilien-Objekte) die man im lokalen Bereich verwendet für Exposés..... im Internet einfach aktualisieren zu können. D.h. die DB ist hauptsächlich für Offline-Anwendungen gedacht, bzw. LAN. Das mit der DB auf dem Webserver ist nur ein Zusatz für die einfache Pflege der Objekte auf der Homepage.
Der Internetserver ist wie gesagt ein gehosteter Webserver,
habe also begrenzte Rechte
Aber offenbar hast Du das Recht, per Programm darauf zuzugreifen - und das sollte für Deinen Fall ausreichen.
Ja klar, per PHP z.B. aber von besagtem Webserver aus. Ich bezog mich auf MySQL, ich denke nicht das ich da werweißwas für aktionen starten könnte, vor allem kann man nur über PHP auf selbigem webserver... drauf zugreifen, nicht direkt.
Was kannst Du bei Deinen lokalen Änderungen tun, was auf der "Produktions-Datenbank" im Internet nicht geht?
Wie gesagt braucen da keine Änderungen gemacht werden, nur ein Abbild der Datensätze auf dem lokalen Db-Serve - zum Anzeigen ständig aktueller Datensätze auf der Homepage.
Ich weiß, das ist jetzt eine etwas andere Richtung als ich vorher beschrieben habe, aber mir geht es erstmal darum, wie ich die Datenübertragung und Aktalisierung am besten durchführe. Ich bin dabei an PHP gebunden. Was gibt es da überhaupt für Möglichkeiten?
1. Ein Script(PHP) auf dem externen Webserver, das sowohl auf die DB auf dem Webserver zugreift und SQL-Abfrage ausführt, und die auch über die die aktuelle IP auf den lokalen Rechner zugreift und auch Abfragen ausführt. Aber das empfinde ich als sehr unsicher, funktioniert aber:)
2. Hatte ich daran gedacht, die Daten mit Socket-verbidungen vom Externen Werserver per Post-Header zum lokalen Webserver zu schicken, da verarbeiten, und die Updates... wieder per Socket an den externen Webserver zu schicken...
wäre das denkbar?
Was gäbe es noch für Möglichkeiten in PHP? Oder was bietet MySQL für Möglichkeiten und wie sicher ist das quer über das www?
Ich weiß das Du lieber einen anderen Ansatz verfolgst, aber ich habe halt einige Restriktionen, die ich nicht umgehen kann! Da zur Zeit Möglichkeit 1. im Einsatz ist, siche ich halt dringend nach einer besseren Möglichkeit, und ich weiß halt nicht ob Möglichkeit 2. das so viel besser ist, oder ob es da nicht noch ganz andere Mechanismen gibt, die da sehr viel besser für geeignet sind.
Viele Grüße
Andreas
Hi,
Ich weiß, das ist jetzt eine etwas andere Richtung als ich
vorher beschrieben habe, aber mir geht es erstmal darum,
wie ich die Datenübertragung und Aktalisierung am besten
durchführe.
Nein. Es geht darum, ob es überhaupt Sinn macht, in diese Richtung zu denken.
Du hast eine Datenhaltung in einer Datenbank. Du hast zwei Anwendungen, die auf besagte Datenbank zugreifen:
a) Ändern der Daten
b) Anzeigen der Daten als Web-Seiten im Internet.
Nun erkläre mir bitte, wieso das nicht mit derselben Datenbank auf demselben Rechner möglich sein soll.
Daß das eine im Internet und das andere im Intranet angesprochen werden soll, ist kein Argument:
a) Deine Intranet-Benutzer könnten auch einen internen Zugang
zum Internet-Server haben (und das Änderungs-Skript in einer
geschützten Umgebung laufen lassen), und
b) auch umgekehrt könnte der im lokalen Netz stehende
Datenbank-Server zusätzlich über eine Standleitung Deiner
Firma auch im Internet sichtbar sein.
Technisch sehe ich keinen Grund für zwei Datenbanken - und damit auch keinen Grund für Dein gesamtes Projekt mit Übertragung, Synchronisation usw.
Viele Grüße
Michael
Hi!
Du hast eine Datenhaltung in einer Datenbank. Du hast zwei Anwendungen, die auf besagte Datenbank zugreifen:
a) Ändern der Daten
b) Anzeigen der Daten als Web-Seiten im Internet.
Nun erkläre mir bitte, wieso das nicht mit derselben Datenbank auf demselben Rechner möglich sein soll.
Ganz einfach - sicher ist das möglich, der Weserver im Intranet ist soger auch über das Internet erreichbar, mit dem einen kleinen Haken: T-DSL! Das Problem ist das für beide von Dir vorgeschlagenen Lösungen eine Standleitung vernünftiger Bandbreite notwendig ist.... mit allen vor allem finanziellen Konsequenzen.
Wenn ich sowas hätte, dann würde ich gar nicht überlegen! Außerdem müßte der Server ununterbrochen laufen... dazu haben wir auch keine entsprechende Hardware - klar teoretisch geht es, aber aufgrund der Kosten und Ausfallrisiken soll darauf verzichtet werden.
Technisch sehe ich keinen Grund für zwei Datenbanken - und damit auch keinen Grund für Dein gesamtes Projekt mit Übertragung, Synchronisation usw.
jaja, wenn nur alle Überlegungen technischer Natur wären, hätte ich schon einen Hubschrauber um zur Arbeit zu gelangen, ist deutlich schneller als mein Golf! Außerdem gibts da oben keine Staus :)
Ich kann ja nochmal die Grenzen zusammenfassen:
Ich habe schon selbst deutlich gespürt, was diese Restriktionen für Nachteile haben. Aber zur Zeit funktioniert es ja(mit direktem Zugriff auf MySQL im Intranet vom externen Webserver aus)! Nur suche ich nach einer besserern und sicheren Lösung. Wie gesagt stand die Lösung mit Socket-Verbindungen zur Debatte, aber interessant wäre evtl eine MySQL Funktion, die das kann, oder sonst würde es mich interessieren, ob es in PHP bessere Möglichkeiten gibt, zwischen 2 Scripten zu ineragieren als mit Sockets, bzw. ob das überhaupt so geht, wie ich es mir vorstelle!
Ich hoffe Du kannst mir jetzt zustimmen, das diese zugegeben etwas umständliche Synchronisation leider irgendwie so oder so ähnlich erfolgen muß.
Jedenfalls vielen Dank für Deine Hilfe,
Grüße
Andreas
Hi Andreas,
Das Problem ist das für beide von Dir
vorgeschlagenen Lösungen eine Standleitung
vernünftiger Bandbreite notwendig ist.... mit
allen vor allem finanziellen Konsequenzen.
Richtig. Aber wenn Du keine zuverlässige Kommunikationsverbindung hast, dann wird das Deine geplante Synchronisationslösung ebenfalls massiv behindern, weil Du Dich mit einer Menge Zeug herumschlagen mußt, die andernfalls nicht notwendig gewesen wäre.
Ich denke übrigens, daß die Bandbreite für die interne Anbindung nicht sonderlich hoch sein müßte.
Und es gäbe sicherlich auch noch die Möglichkeit, die "internet" Anbindung über einen normalen Internet-Zugang zu erledigen, den die betroffenen Arbeitsplätze möglicherweise ohnehin bereits besitzen.
Außerdem müßte der Server ununterbrochen laufen...
Angenommen, er tät das nicht - was tut dann Deine Synchronisationsfunktion, wenn ihre Betriebsvoraussetzungen nicht erfüllt sind?
jaja, wenn nur alle Überlegungen technischer Natur
wären, hätte ich schon einen Hubschrauber um zur
Arbeit zu gelangen, ist deutlich schneller als mein
Golf! Außerdem gibts da oben keine Staus :)
Ich fürchte, Deine Synchronisationslösung wird sowohl teurer als auch instabiler als eine Standleitung.
- Homepage mit DB-Anbindung auf externem Webserver
beim Provider
Eben. Die Bandbreite nach außen ist gegeben - jetzt müssen nur noch die drei Heinze für die vier Änderungen am Tag per irgendwas auf diesen Server zugreifen können.
- Anbindung des LAN ans WAN über T-DSL Flat
Ja, und? Reicht das nicht, um den Inhalt zu pflegen?
- MySQL auf dem Webserver nur über Apache
erreichbar, nicht direkt,
Verstehe ich nicht. "Apache" ist keine Programmiersprache - der startet nur Programme, welche "direkt" auf die Datenbank zugreifen.
Außerdem kannst Du eine mySQL-Datenbank auch rechnergrenzenüberschreitend ansprechen.
Du brauchst nur eine stabile Verbindung zu ihr ...
Ich hoffe Du kannst mir jetzt zustimmen, das diese
zugegeben etwas umständliche Synchronisation leider
irgendwie so oder so ähnlich erfolgen muß.
Mir erscheint das Gesamtkunstwerk immer noch sehr aufwändig und in der Summe auch nicht gerade billig.
Die Leistungskosten sind in den letzten Jahren deutlich gesunken ... die manpower zur Pflege Deiner Lösung dagehen ist eher teurer geworden ...
Wenn es zwei mySQL-Datenbanken sind, würde ich mir mySQL 4.0 ansehen, das soll selbst eine interne Llösung zum Synchronisieren von Datenbanken haben. (Leider bisher nur Pre-Releases, wir warten selbst auf so etwas.)
Lieber etwas Bewährtes nehmen als etwas programmieren, was niemand außer Dir versteht und warten kann.
Viele Grüße
Michael