@mjustin
Das klingt nicht schlecht - im Grunde, wie ich mir das mit DataSnap vorgestellt habe. Zumindest die Kommunikation wäre m.E. wohl damit realisierbar, aber wohl kein Transaktionsspeicher.
Muss ich mir später mal genauer anschauen.
Grundsätzlich könnte der MainClient (Server) eine Datei öffnen. Später könnten sich dann Clients "anmelden" und sich die aktuellen Objekte schicken lassen. Ab dann werden alle Änderungen an alle Clients weiter geschickt.
@Jumpy
Die Daten liegen in einer Textdatei, die die gesamte Struktur abbildet:
Code:
!ProgramName=Olympic
!ProgramVersion=(V. 0.3.1j-)
!FileVersion=0
<TournamentEvent=20110614204644842-20110614204808441-0000005353
Name=30. Kaltenkirchener Badminton Mannschaftsturnier 2009
<State=20110308225432075-20110308225432422-0000000005
>
<Sport=20100827212547328-20100827212547942-0000000002
Name=Badminton
SportPlaceName=Feld
<NumeratorList=20100827212547328-20100827212547942-0000000003
<Numerator=20100827212547328-20100827212702853-0000000005
Name=Rallypoint
Activate=True
PointName=Bälle
WinSetCount=2
Definition=0..19:21;20..28:+2;29:30
PlanDuration=30
>
<Numerator=20100827212547328-20100827212808350-0000000006
Name=alte Zählweise bis 15
Activate=True
PointName=Bälle
WinSetCount=2
Definition=0..14:15;14..16:17
PlanDuration=40
>
<Numerator=20100827212547328-20100827212845934-0000000007
Name=alte Zählweise bis 11
Activate=True
PointName=Bälle
WinSetCount=2
Definition=0..10:11;10..12:13
PlanDuration=25
>
>
<DisciplineGroupList=20100827212547328-20100827212547942-0000000004
<DisciplineGroup=20100827212547328-20100827212930462-0000000008
Name=2HD, DD, 3HE, DE, Mix
<DisciplineList=20100829114444357-20100829114444984-0000000001
<Discipline=20100829115644843-20100829115652374-0000000001
Name=1.HD
NameMirror=1.HD
GameTypeNumber=1
GameType=gtMD
Numerator=20100827212547328-20100827212702853-0000000005
>
<Discipline=20100829115731646-20100829120222558-0000000001
Name=2.HD
NameMirror=2.HD
GameTypeNumber=2
GameType=gtMD
Numerator=20100827212547328-20100827212702853-0000000005
>
<Discipline=20100829115731646-20100829120226174-0000000002
Name=DD
NameMirror=DD
GameTypeNumber=0
GameType=gtWD
Numerator=20100827212547328-20100827212702853-0000000005
>
...
@omata
Im Grunde ist der "MainClient" nur ein normaler Client, der lediglich die Textdatei geöffnet hat, die die zu nutzenden Daten enthält.
Wird MainClient geschlossen, haben alle anderen Clients noch ihre Objekte in ihrem Speicher und können miteinander kommunizieren (egal, ob z.B. DataSnap oder eine
SQL-Datenbank zum Datenaustausch genutzt wird).
Wie gesagt, ich bin erst mal dabei, mir eine Meinung zu bilden.
Ich will keine weltweite Datenbankanwendung erstellen, sondern eine objektorientierte, normalerweise lokale Anwendung, die aber ihre Daten u.U. mit anderen Clients teilen soll.
Im aktuellen Projekt soll eine Turnierleitung eine Turnierverwaltung abwickeln und 1-2 weitere Rechner als Auskunfssystem für die Spieler bereitgestellt werden. Auch ein zweiter Rechner für eine zweite Turnierleitung wäre denkbar.