Erfahrungen mit Firebird Server über das Internet mit mehreren Clients?

8

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.

    
pragmatic_programmer 09.04.2012, 22:15
quelle

5 Antworten

7

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.

    
WarmBooter 10.04.2012, 00:12
quelle
4

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 Ссылка

    
Mariuz 13.04.2012 13:29
quelle
3

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.

    
Harriv 10.04.2012 05:12
quelle
0

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.

    
moualek adlene 04.03.2014 07:28
quelle
-2

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:

  • Borland Datenbankmodul
  • DBExpress
  • kbmMemTable
  • SQLite3

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.

  • Unified Remote-Methodenaufruf
  • vereinheitlichte Remote-Dataset-Abfrage, Ausführen und Ändern der Datenänderung
  • vereinheitlichte Datenbank Metadaten Handhabung und Erstellung (Tabellen, Felder, Indizes, Generatoren / Sequenzer)
  • optionales automatisches Proxying von Anfragen an einen anderen Server und Proxy-Ergebnisse zurück zum ursprünglichen Requester
  • vollständige native XML-DOM- und SAX-Unterstützung
  • vollständige Dataset-Aktenkofferunterstützung als CSV oder binäre Daten
  • erweiterter, aber einfach zu verwendender Assistent zum Erstellen neuer Anwendungsserverdienste

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

    
Kim Madsen 25.04.2012 17:56
quelle

Tags und Links