AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein XML Delphi XML als prozessübergreifender Datenaustauschmechanismus
Thema durchsuchen
Ansicht
Themen-Optionen

XML als prozessübergreifender Datenaustauschmechanismus

Ein Thema von MickWedinait · begonnen am 16. Nov 2006 · letzter Beitrag vom 16. Nov 2006
Antwort Antwort
MickWedinait

Registriert seit: 16. Jan 2004
6 Beiträge
 
#1

XML als prozessübergreifender Datenaustauschmechanismus

  Alt 16. Nov 2006, 07:39
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
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#2

Re: XML als prozessübergreifender Datenaustauschmechanismus

  Alt 16. Nov 2006, 07:59
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.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Antwort Antwort


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 12:00 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