AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Datentransfer von mehreren Clients an einen Server über LAN

Datentransfer von mehreren Clients an einen Server über LAN

Ein Thema von Tempdir · begonnen am 19. Feb 2009 · letzter Beitrag vom 20. Feb 2009
Antwort Antwort
Seite 2 von 4     12 34   
manfred_h

Registriert seit: 4. Nov 2005
Ort: Basel
442 Beiträge
 
Delphi XE2 Enterprise
 
#11

Re: Datentransfer von mehreren Clients an einen Server über

  Alt 19. Feb 2009, 14:40
Hallo Tempdir

schau Dir dochmal Copycat an. http://www.microtec.fr/copycat/

Zitat:
CopyCat is a multi-database replication component suite for Borland Delphi / C++Builder

* Full two-way replication.
* As a Delphi / C++Builder component set, CopyCat allows you to embed and customize replication logic in your own applications.
* Heterogenous replication between Interbase, Firebird, and Microsoft SQL Server.
* Transport layer abstraction allowing to replicate over any supported remoting framework, such as XML-RPC, RTC, RemObjects, KbmMW, etc. This enables both better security and compression.
* Using CopyCat, you can either setup automatic replication of all or part of your database (using triggers), or you can manually synchronize specific records as needed.
* No server-side is needed: thus CopyCat can be used on any MS Windows client, regardless of the OS of the remote server.
* Advanced primary key synchronization techniques, using either a generator, a stored procedure, or a custom SQL expression. This feature is currently available only for Interbase/Firebird
* Advanced conflict management techniques, allowing you to completely avoid the risk of crushing any data in any event changes were made to the same record in both databases.
* Complex replication situations can be resolved using advanced techniques such as stored procedure replication
* Support for limiting the replication of certain tables using a customized WHERE clause.
* Designed for and tested with Interbase 6.0 - 7.5, Firebird 1.x - 2.0 and MS SQL Server 2005.
* Supports C++Builder 5 - 6 and Delphi 5 - 2006.
* Support for many different data-connectivity components: FIBPlus, IBX, IBObjects, UIB, and ADO.
Shalom
Manfred
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.169 Beiträge
 
Delphi 10.4 Sydney
 
#12

Re: Datentransfer von mehreren Clients an einen Server über

  Alt 19. Feb 2009, 14:40
Zitat von Tempdir:
Eine fertige Lösung kommt leider nicht in Betracht da es etwas selbstgeschriebenes sein soll.
Wieso? mit fertig ist gemeint das sowas die DBMS schon von haus mitbringen. Also keine 3th-Party-Lösung installiert werden muss.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.003 Beiträge
 
Delphi 2009 Professional
 
#13

Re: Datentransfer von mehreren Clients an einen Server über

  Alt 19. Feb 2009, 16:02
Zitat von Tempdir:
Bisher ist ein selbstgeschriebenes System im Einsatz welches mit den Delphi-Komponenten "TidTCPServer" und "TidTCPClient" arbeitet. Auf den Clients wird eine kleine *.EXE-Datei gestartet welche die IP des Servers kennt, und dieser findet diese dann automatisch und empfängt die neuen Daten.
Verwaltet werden die verschiedenen Verbindungen über Threads. Zur Sicherung der Übertragung der Daten wird jeder ausgelesene Datensatz in einen Frame verpackt.

So ist es bisher realisiert. Das System soll jetzt überarbeitet werden und daher meine Frage wie man sowas besser bzw. sogar einfacher realisieren könnte
Eine sehr zuverlässige, ausfallsichere und lastverteilte Lösung kann man zum Beispiel mit einem Message Broker realisieren. Clients können auf diesen zugreifen auch wenn das Zielsystem, das die Daten weiterverarbeiten soll, nicht läuft. Der Message Broker puffert die Daten, bei Bedarf auch auf die Festplatte so dass er selber auch ausfallen darf, ohne dass Daten verloren gehen.

Die Empfänger-Anwendung kann dann vom Messagebroker die Daten abholen und weiter verarbeiten. Zur Lastverteilung können auch mehrere Empfänger Anwendungen parallel laufen. Der Broker wird die Daten dann gleichmäßig auf die Empfänger verteilen.

Kostenlose Open Source Implementierungen wie z.B. Apache ActiveMQ sind bereits sehr leistungsfähig, es existieren Clients für viele verschiedene Programmiersprachen, daher sind sie auch sehr gut für die Verbindung bestehender Systeme geeignet.
Michael Justin
habarisoft.com
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#14

Re: Datentransfer von mehreren Clients an einen Server über

  Alt 19. Feb 2009, 16:39
ActiveQ Schnittstelle für Delphi
http://activemq.apache.org/delphi-and-freepascal.html
Markus Kinzler
  Mit Zitat antworten Zitat
Tempdir

Registriert seit: 19. Feb 2009
Ort: Karlsruhe
84 Beiträge
 
RAD-Studio 2009 Pro
 
#15

Re: Datentransfer von mehreren Clients an einen Server über

  Alt 19. Feb 2009, 16:47
Danke für die vielen Tipps!

@Manfred: Die komponente sieht gut aus, allerdings fehlt der Support für D2009 und es sieht so aus als sei das ganze etwas eingeschlafen (letzter Release Ende 2007). Da das ganze aber für ein kleines Projekt in einer Firma sein soll, ist diese somit eher unbrauchbar (Support).

@Bernhard: Wie sieht sowas genau aus? Eine Software die der Datenbank beiliegt bzw. heruntergeladen werden kann?

@mjustin Danke, ich werde mich darüber informieren.



Was haltet ihr von folgender Idee:

Auf jedem PC-Client läuft z.B. ein Firebird SQL-Server.
Jetzt schreib ich in Delphi ein Programm mit den IB-Datenbankkomponenten, welches sich automatisch mit dem jeweiligen Client verbindet, und die neu hinzugekommenen Daten abholt. Dass sie neu sind erkennt das Programm daran, indem die Datensätze die noch nicht abgeholt wurden ein Feld enthalten das z.B. den Wert FALSE (= noch nicht abgeholt) hat.
Somit könnte ich über eine SQL-Query einen Eintrag auslesen, und dann den Wert TRUE (=abgeholt) in das Feld schreiben.

Die IPs der Clients werden in einer Liste angegeben, welche das Programm zyklisch abarbeitet.

Bitte um eure Kommentare - vielen vielen Dank!
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#16

Re: Datentransfer von mehreren Clients an einen Server über

  Alt 19. Feb 2009, 16:49
Dann wäre doch der andere Weg sinnvoller: Der Client verbindet sich mit einem zentralen FireBird Server und gleicht lokalen Bestand ab.
Markus Kinzler
  Mit Zitat antworten Zitat
Tempdir

Registriert seit: 19. Feb 2009
Ort: Karlsruhe
84 Beiträge
 
RAD-Studio 2009 Pro
 
#17

Re: Datentransfer von mehreren Clients an einen Server über

  Alt 19. Feb 2009, 16:56
Aber dann hätte ich wiederum das "Problem", dass sich mehrere Clients gleichzeitig verbinden und gleichzeitig Daten senden (ok ist eigentlich auch Sinn und Zweck eines DB-Servers - aber ich weiß nicht ob und was da schief gehen könnte).
Und ich wüsste nicht ob die Daten in der Firebird-DB gespeichert wurden? Höchstens ich mach eine erneute Anfrage, ob die Daten drin sind.
Ich sollte noch erwähnen, dass auf der Client-Seite die CPU-Last möglichst gering sein sollte. Serverseitig ist es egal.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#18

Re: Datentransfer von mehreren Clients an einen Server über

  Alt 19. Feb 2009, 17:01
Zitat:
Und ich wüsste nicht ob die Daten in der Firebird-DB gespeichert wurden? Höchstens ich mach eine erneute Anfrage, ob die Daten drin sind.
Ich glaube nicht, das irgendwer ein DBMS einsetzen würde, wenn der Client keine Rückmeldung vom Server bekommen würde
Zitat:
Ich sollte noch erwähnen, dass auf der Client-Seite die CPU-Last möglichst gering sein sollte. Serverseitig ist es egal.
Abfragen kann man ja auf den Server verlagern (z.B. in SPs). Zudem würde die Replikation, ja bei Wiederanmelden der Clients an den Server erfolgen.
Markus Kinzler
  Mit Zitat antworten Zitat
Tempdir

Registriert seit: 19. Feb 2009
Ort: Karlsruhe
84 Beiträge
 
RAD-Studio 2009 Pro
 
#19

Re: Datentransfer von mehreren Clients an einen Server über

  Alt 20. Feb 2009, 08:08
Guten Morgen,

also wenn ich die Methode mit dem zentralen Server machen würde, so hätte ich den Vorteil dass ich auf der Client-Seite nur eine Exe starten müsste (welche die DB des Clients ausliest und versendet). Und auf der Empfangsseite (Server) müsste ich einen SQL-Server installieren der die Daten "einsammelt".
Bei dieser Variante könnte man auf dem Server die SQL-Datenbank nicht einfach "anschauen" mit z.B. Notepad. Bei der anderen Variante, wo auf jedem Client ein SQL-Server ist, könnte ich auf der Serverseite die Daten z.B. in ein DataBase File oder CSV speichern.

Spricht viel gegen meine erste Variante von Seite 1 ?
  Mit Zitat antworten Zitat
mquadrat

Registriert seit: 13. Feb 2004
1.113 Beiträge
 
Delphi XE2 Professional
 
#20

Re: Datentransfer von mehreren Clients an einen Server über

  Alt 20. Feb 2009, 08:52
Wie schaut die Verbindung zwischen Clients und Server aus? LAN?

Wir haben eine ähnliche Problemstellung so gelöst:
- Die Tabellen, die übertragen werden sollen haben einen Trigger der bei Inserts, Updates und Deletes anspringt
- Dieser Trigger schreibt einen Datensatz in eine Replikationstabelle mit Operation, Tabelle, Primärschlüssel
- Auf dem Server läuft ein Programm, dass zyklisch bei allen Clients diese Informationen ausliest und entsprechende Selects durchführt
- Die Datensätze werden in einer Zwischendatenbank gepuffert, falls der Zielserver nicht erreichbar ist
- Ist er erreichbar wird die gleiche Operation auf der Zieldatenbank ausgeführt.

Das Zwischenpuffern in der DB ist u.U. nötig da wir sämtliche Datenbanken vollständig untereinander synchronisieren. Fertige Lösung haben wir damals ein oder zwei ausprobiert, aber da hat es uns ein bisschen an Flexibilität gefehlt.

Vorteil der Lösung: An den Clients muss (bis auf die Trigger) überhaupt nichts geändert werden.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:01 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz