Hat jemand echte Erfahrung mit Firebird-Datenbanken über das Internet?
Ich habe eine typische Windows-Buchhaltungs- / ERP-Software (fertig mit Delphi), die ziemlich gut mit dem Firebird-Datenbankserver zusammenarbeitet. Nun wollen meine Benutzer (ca. 300, jetzt sollten sie aber inkrementieren) auch "in der Cloud" arbeiten (Verbindung vom Büro, vom Laptop, vom Haus, etc.). Es ist eine Menge Arbeit, alles zu einer Standard-Webanwendung neu zu erstellen (sagen wir zum Beispiel HTML + CSS + JS + PHP + MySQL), also überlege ich, den Win-Client zu behalten (ich interessiere mich nicht für andere Betriebssysteme) aber statt des Servers, der in den Klienten-LANs lebt, verschiebe ich es zu einem Paar dedizierter Server, die ich zusammenziehen werde (eine primäre und eine sekundäre gegen Fehler zum Starten).
Suche Ich habe diese FAQ Ссылка gefunden, die erklärt, dass das fb-Protokoll nicht ideal für die Arbeit in der Internet, aber immer noch haben alle meine Benutzer heute mindestens eine 1MBbit / sec ADSL-Internetverbindung (ich denke nicht, dass langsam zu sein, wie die FAQ bezeichnet).
Jemand hat das getan? Was war die Erfahrung? Wie sicher sind FB-Server, um offen zu sein für das Internet? Wie gut skalieren sie?
Ich weiß, dass der Aufbau einer "Middleware" mit SOAP zum Beispiel normaler sein wird, aber die Lösung, die ich hier evaluiere, ist viel schneller und einfacher (immer noch habe ich etwas Arbeit mit der Replikation, dem Backup, dem Hearbreath Service, aber es ist viel weniger als alles für das Web neu zu machen).
Danke! Edit: FB-Version: 2.5.
Ich habe versucht, die Firebird Core-Entwickler zu "pushen", um das Firebird-Protokoll zu verbessern, um mit einem Netzwerk mit hoher Latenz (auch bekannt als Internet) schneller zu werden. Kürzlich hat Dmitry Yemanov einige Artikel in seinem Blog zu diesem Thema veröffentlicht ( dyemanov.blogspot.com ). Es scheint, dass es Spielraum für Optimierungen gibt, und ich würde wirklich gerne sehen, dass das in FB 2.5.3 und FB 3.0 kommt, obwohl es keine Garantie dafür gibt, dass dies in diesen Versionen oder zu irgendeinem Zeitpunkt geschieht. Sie können über diese Verbesserung hier abstimmen: Ссылка
Sicherheit? Sie können versuchen, ein VPN einzurichten. Es kann auch mit der Geschwindigkeit helfen, da die meisten der VPN-Software da draußen ( Zebedee , usw.) die Daten komprimieren können übertragen, wodurch die Datenübertragung in einigen Fällen beschleunigt wird.
Einige meiner Kunden verwenden Firebird traditionelles C / S über das Internet. Es ist viel langsamer im Vergleich zum lokalen Netzwerk und natürlich hängt es wesentlich von der Verbindungsgeschwindigkeit und Latenz ab, wie viel langsamer es ist. Sie können einige Optimierungen auch auf der Client-Seite vornehmen, indem Sie Metadaten-Cache usw. verwenden, aber erwarten Sie keine Wunder mit dem aktuellen Protokoll. Ich würde sagen, dass die Verwendung von Terminaldiensten für den gesamten Arbeitstag eine bessere Option wäre.
Die Antwort auf die Skalierungsfrage Firebird läuft in der Produktion auf großen, großen Iron-Servern: 512G RAM 100.000 gleichzeitige Benutzer
Wir betreiben Firebird, um größere Systeme zu betreiben (für 12 Regierungsbehörden) und 3 Banken). Es hat ungefähr 100000 Endbenutzer gemultiplext durch 2500 (max) gepoolte Verbindungen Ссылка
Das Protokoll in Firebird 2.5 ist verbessert, es gibt noch Platz für 3.0, aber Sie können überprüfen was ist schon gemacht
Und die zukünftigen Verbesserungen in 3.0 Ссылка
Um Ihre Verbindung zu schützen, denke ich, dass die beste Wette ssl / ssh Tunnel ist (es kann ein opnvpn sein) mit hoher Kompressionsoption Ссылка
Beim FB-Protokoll-Problem handelt es sich nicht um Bandbreite, sondern um Latenz. Meiner Erfahrung nach können einige Operationen im Vergleich zu LAN oder lokaler Verbindung über Internet / VPN sehr langsam sein. Ich habe das Problem nicht weiter untersucht, da ich Anwendungen nicht wirklich über eine Internetverbindung betreibe.
Ich schlage jedoch ein dreistufiges Modell für die Anwendung vor. Erstellen Sie einen eigenen Anwendungsserver, der auf einem Datenbankserver / demselben Netzwerk ausgeführt wird. Lassen Sie die Clients mit dem Anwendungsserver sprechen und Sie erhalten maximale Leistung.
Es gibt einige N-Tier-Anwendungs- / Middleware-Frameworks für Delphi:
Mit diesen können Sie Datenkompression, Verschlüsselung, binäre Nachrichten (schneller als SOAP) usw.
Sie können die Verschlüsselung / Entschlüsselung von TCP / IP-Paketen direkt in der Firebird-Engine implementieren. Persönlich habe ich den Firebird 2.5-Quellcode heruntergeladen und den sicheren Tunnelisierungscode direkt in seine Low-Level-Kommunikationsschicht (die INET-Socket-Schicht) injiziert. Jetzt wird die Verschlüsselung / Entschlüsselung direkt von der firebird-Engine für jedes TCP / IP-Paket sowohl auf der Serverseite als auch auf der Clientseite (fbclient.dll) durchgeführt. Dann müssen Sie die Clientanwendung nicht neu strukturieren, es sei denn, Sie fügen eine Codezeile hinzu, die den geheimen Schlüssel bereitstellt, den Sie für die Verschlüsselung der Kommunikation mit der Datei fbclient.dll ausgewählt haben. Der gleiche geheime Schlüssel muss in der firebird.conf-Datei Ihrer Serverinstallation deklariert werden. Ich habe auch eine Proxy-Negoziierungslösung in der fbclient.dll implementiert, um zu ermöglichen, dass TCP / IP-Pakete jeden Proxy-Server passieren (wie zum Beispiel Microsoft ISA Server). Diese Architektur ist für uns mehr als ein Jahr in einem realen Produktionssystem funktionsfähig.
kbmMW CodeGear Edition ist kostenlos, aber ohne Quelle. Es kann für kommerzielle Anwendungen verwendet werden. Laden Sie es nach der Registrierung herunter: Ссылка
Falls Sie Zertifikatsfehler sehen (Sie sollten nicht, aber ich weiß, dass wir gehört haben, dass einige das tatsächlich tun), akzeptieren und ignorieren Sie sie. Die Seite ist trotz des cert.error gültig.
kbmMW CodeGear Edition enthält eine Teilmenge der kbmMW Professional Edition, unterstützt jedoch die folgenden Delphi-Datenbank-APIs:
Es unterstützt binäre, binäre HTML-, XML- und SOAP-Protokolle in der Kommunikation mit Clients. Es enthält alles, was Sie brauchen inkl.
Es gibt jedoch einen Vorbehalt. Die neueste Version von kbmMW CodeGear Edition unterstützt immer nur die neueste Version von Delphi. Sie können auch ältere kbmMW CodeGear Editionen herunterladen, die älteren Delphi Versionen entsprechen.
kbMMW Professional Edition und kbmMW Enterprise Edition haben keine derartigen Einschränkungen und unterstützen derzeit D7, D2006, D2007, D2010, DXE, DXE2 zusammen mit Embarcadero C ++ Gegenstücken.
Beste Grüße Kim Madsen www.components4developers.com