Frage

Ich würde gerne wissen, wie ich Remote-Büros an eine zentrale Datenbank verbinden kann.

Hier ist das Szenario:

Büro mit mehreren Benutzern arbeiten auf einer Windows-Desktop-Anwendung

Diese Anwendung ihm der Daten aus der Datenbank in dem Office-Server erhalten.

Jetzt 1 oder entfernteren (Büros, Läden, was auch immer) Notwendigkeit, den Zugang zu den gleichen Daten haben.

Wie können wir das erreichen?

Manchmal müssen wir Echtzeit

Manchmal ist es nicht so wichtig.

War es hilfreich?

Lösung

Sie könnten leicht benutzen DataSnap oder TClientDataset . Es gibt Ihnen die Möglichkeit, Ihre Remote-Systeme zu betreiben, ohne Zugriff auf die Master-Datenbank hat, sowie die Menge des Verkehrs zu reduzieren, die über den Draht geliefert wird (Sie filtern und sortieren vor Ort).

Aktualisieren Ein großer Teil der Leistung wird von der Geschwindigkeit des Back-End-Servers und die Art und Menge der Daten basiert Ihre Übertragung. Es ist schnell genug für die meisten Zwecke, und wenn Sie sich eine Menge Daten auf das Rohr senden zu müssen, habe ich es die Mühe wert, zu tun einig Client-Caching gefunden. Durch das Hinzufügen eines Update-Trigger einen aktualisierten Zeitstempel auf jedem Datensatz zu setzen, können Sie den Cache aktualisieren, indem nur anfordernden Aufzeichnungen neuer als die letzt Sie erhalten hat.

Andere Tipps

Aufgrund der Sicherheit müssen Sie irgendeine Art von Mittelschicht zwischen dem Client und der Datenbank. Es ist sehr gefährlich, die Datenbank direkt mit dem Internet verfügbar zu machen. Viele Anwendungen verwenden SOAP in diesem Szenario, da es weithin angenommen wird. Sie machen einen SOAP-Dienst, definieren das Protokoll und Funktionen und der Kunde ruft dann die. Andere Möglichkeiten sind, dass Sie einen REST basierten Dienst / Server machen, die das gleiche tut, oder sogar eine einfache TCP / IP-Schicht machen. So Sie Optionen sind:

  1. SOAP-Dienst als mittlere Schicht
  2. REST HTTP-basierte mittlere Schicht
  3. XML-RPC-basierte mittlere Schicht
  4. reine TCP / IP mittlere Schicht
  5. VPN-Verbindung für Kunden

Wenn Sie machen eine VPN-Verbindung vom Client, dann können Sie einen direkten Zugriff auf die Datenbank haben, aber das ist wahrscheinlich für die Kunden specialy acward, wenn sie nicht von Ihrem Unternehmen sind. Ich würde personaly wahrscheinlich gehen mit 2 oder 3, aber nur, weil ich nicht wie SOAP zu viel. Die meisten, wenn gefragt würde SOAP Ich denke, es vorziehen.

EDIT:

Da ich sehe, sind diese Remote-Büros können Sie eine permanente VPN-Verbindung prüfen. Die meisten Router sind in diesen Tagen die fähig. Dann bewerben Sie können aus der Ferne auf die gleiche Weise arbeiten, wie es localy der Fall ist.

Es gibt 3 mögliche Lösung Routen:

  1. Schreiben Sie eine normale Desktop-Anwendung und veröffentlichen diese Anwendung mit Terminal Services (Remote Desktop Services) oder Citrix XenApp (oder Web-Basis machen)
  2. (Re) Design Ihre Anwendung über die Arbeit (möglichst langsam und / oder unzuverlässig) WAN-Verbindung)
  3. eine Art von Datenbank-Replikation implementieren und eine separate Datenbank (Server) an jedem Büro implementieren

Ein Kriterium zu entscheiden, was zu verabschieden ist die Verbindungsgeschwindigkeit, Zuverlässigkeit und Kosten zwischen Remote-Standorten und dem zentralen Server. Wenn die Geschwindigkeit angemessen ist, die Zuverlässigkeit ist in Ordnung und die Kosten sind flach VPN ist der Weg zu gehen. Es wird keine Änderungen an Ihre Anwendung benötigen (wenn es nicht geschrieben wird, um die gesamte Datenbank zum Download ...) Es wird auch die Authentifizierung und Verschlüsselung Ihrer Daten umgehen. Wenn VPN nicht eine Wahl ist, eine der Remote-Techniken in der Runner Antwort verwenden kann, aber sie erfordern in der Regel neu zu gestalten (und schreiben), um die Anwendung, ist das Modell ein wenig anders als eine „klassische“ Client / Server-Anwendung. HTTP (S) basiert sind in der Regel keine Probleme mit Firewalls haben, aber in der Regel staatenlos sein müssen und unterstützen Rückrufe nicht benötigt Sicherheitszertifikat Generierung und Bereitstellung. Andere Arbeiten mit anderen Protokollen (d DCOM, dbExpress DataSnap) sind flexibler, aber komplizierter Aufbau und / oder sichern richtig sein können. Wenn die Verbindung nicht schnell und zuverlässig genug ist, oder zu teuer ist, können Sie lokalen Caches mit dem Remote-Server synchronisiert müssen richtig -. Und das kann nicht leicht zu erreichen sein, je nach Anwendungsbedarf

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top