Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   XML (https://www.delphipraxis.net/46-xml/)
-   -   Delphi XML als prozessübergreifender Datenaustauschmechanismus (https://www.delphipraxis.net/80834-xml-als-prozessuebergreifender-datenaustauschmechanismus.html)

MickWedinait 16. Nov 2006 06:39


XML als prozessübergreifender Datenaustauschmechanismus
 
Hallo zusammen,

bei mir stellt sich momentan die Problematik, dass ich eine Datenbasis für mehrere Anwendungen schaffen muss.
Ich bin mir nicht ganz sicher, ob es sinnvoll ist diese Datenbasis in Form einer XML-Datei aufzubauen.

Dazu folgende Erläuterungen:
1. Ich habe eine DLL die eine Reihe von Variablen aus einem vordefinierten Variablenpool auf Anfrage eines
"Clients" widerspiegeln soll.
2. Die Werte in diesem "Variablenpool" sollen aus mehreren Prozessen "gesammelt" werden bzw. die Prozesse sollen,
wenn es ihnen notwendig erscheint ein Update bestimmter Variablenwerte vornehmen können.
3. Die Anzahl der Variablen die über den Server verfügbar gemacht werden sollen ist zwar momentan überschaubar, kann
jedoch in Zukunft auch noch beliebig erweitert werden.

Somit müsste es möglich sein, dass ein Programm auf eine bestimmte Variable der XML-Datei zugreift und einen Wert setzt,
während die anderen Programme keinen Schreibzugriff auf die XML-Datei bekommen. Dies erfordert wiederum den Einsatz von
Mutexen bzw. Semaphoren fordert.
Für einen normalen prozessübergreifenden Datenaustausch würden sich z.B. WM_CopyData oder MemoryMappedFile anbieten. Die Konzepte, die dahinterstecken sind mir bekannt.
Was ich bei dem Mechanismus mit einer XML-Datei jedoch sehr reizvoll finde, ist die Tatsache, dass ich in der Datei definieren könnte, wie sich der Variablenpool zusammensetzt und nicht jedesmal eine Anpassung der Records für den Austausch der Werte in den übrigen Anwendungen erfolgen muss, wenn der Variablenpool erweitert wird.

Ich würde dieses Konzept hier gerne zur Diskussion stellen. Habt ihr andere, bessere Vorschläge, wie man den Datenaustausch bewerkstelligen könnte? Auch an eine Datenbank habe ich bereits gedacht, allerdings ist das wiederum "zuviel des Guten".

Gruß
Mick

alzaimar 16. Nov 2006 06:59

Re: XML als prozessübergreifender Datenaustauschmechanismus
 
Eine Datenpool, der wie eine XML-Datei aussieht, ist sicherlich eine Möglichkeit, heterogene Daten zu speichern, die reine XML-Lehre verlangt aber ein wohldefiniertes Schema, sodaß die enorme Flexibilität darunter leidet.

Allerdings kannst Du blind XML einlesen und über die Knoten auf jedes x-beliebige Element zugreifen. Insofern finde ich diesen Ansatz schon sehr gut.

Und wenn Du keine mehrdimensionalen oder strukturierten Daten speichern willst, sondern nur einfache Werte, tut es ein einfach Assoziativspeicher aber auch, z.B. eine TStringList mit seiner 'Value[Name] := Wert' Eigenschaft.

Ich würde aber auch mittlerweile zu XML tendieren, denn dies ist wesentlich mächtiger als die gute alte TStringlist und lässt sich mit Bordmitteln -wupps- einlesen. Alternativ zum MSXML gibt es zudem noch leichtgewichtigere (und wesentlich schnellerer) Alternativen auf dem Delphi-Markt, die zudem noch nichtmal etwas kosten.


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:47 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz