Enterprise Datenmangement für Embedded Systeme

Veröffentlicht: 26. Nov 2001 | Aktualisiert: 18. Jun 2004

Von Alexander Wechsler

Überblick: Viele der augenblicklich entstehenden Embedded Applikationen und Endgeräte benötigen vermehrt den Zugriff auf Unternehmensdaten, um die sich ihnen heute stellenden Aufgaben zu erfüllen.
Information muss mobil überall verfügbar sein und zuverlässig aktuell wieder zurück ins Backend fließen. Und das unabhängig davon, ob stabile Netzwerkverbindungen bestehen bzw. wie das Endgerät aussieht.
Der Microsoft SQL Server 2000 sowie seine Familienmitglieder, die Microsoft Data Engine und der Microsoft SQL Server 2000 Windows® CE Edition (SQL Server CE), helfen dem Embedded Software Designer und dem Enterprise Anwendungsarchitekten, diese Hürden sicher und effizient zu meistern.

* * *

Auf dieser Seite

Anwendungsentwicklung für verteilte Applikationen Anwendungsentwicklung für verteilte Applikationen
Datenfluss in SQL Server-basierten Lösungen Datenfluss in SQL Server-basierten Lösungen
Grundbegriffe der SQL Server-Replikation  Grundbegriffe der SQL Server-Replikation
Die SQL Server 2000-Familie aus der Embedded Sicht Die SQL Server 2000-Familie aus der Embedded Sicht
SQL Server 2000 Windows CE Edition SQL Server 2000 Windows CE Edition
Zusammenfassung Zusammenfassung

Anwendungsentwicklung für verteilte Applikationen

Der Internetboom hat in den letzten Jahren die Anwendungsentwicklung drastisch verändert.
Entwickler für Embedded Applikationen können sich nicht mehr nur auf "ihr" Gerät bzw. das abgeschlossene System, in dem es eingesetzt wird, konzentrieren. Vielmehr müssen in ihren Anwendungen Schnittstellen zu allen denkbar vorhandenen und auch den noch nicht vorhandenen Kommunikationspartnern vorgesehen werden.

Aber auch die Kollegen von der Server-/Desktop-Entwicklung bleiben nicht verschont. Ausgehend von one-tier-Applikationen auf Hostsystemen (dem Administratoren-Paradies) waren sie gewohnt, ihr Umfeld fest im Griff zu haben und die Umgebungsparameter für ihre Anwendungen auf ein erträgliches Maß zu reduzieren.

Client-/Server-Anwendungen sorgten bei ihnen Anfang der 90-er für den Auszug aus dem Paradies in die komplexere Welt des Desktop Computing. Die Ankunft des Internets verschlimmerte die Situation. Einige, der bis dahin noch nicht in gleichem Maße akuten Probleme bei Internetanwendungen sind:

  • Unbekannte Benutzerzahl für eine Anwendung und damit unbekannte Last

  • Kein Verlass auf eine stabile Netzwerkverbindung (hohe Robustheit der Anwendung erforderlich)

  • Explizite Online-/Offline-Szenarien (Replikationskonflikte)

  • Erhöhte Komplexität durch mehrschichtige Anwendungsarchitektur

  • Informationen müssen von unterschiedlichen, auch nicht PC-Geräten zugänglich sein

  • Sicherheitsaspekte (der Feind lauert überall in den Weiten des Netzes)

Die Anbindung von Embedded Geräten an ein unternehmensweites Informationssystem erfordert ein gutes Design der Gesamtapplikation auch für diesen Zweck.
Unternehmensanwendungen sind zumeist datenbankgestützte Anwendungen, deswegen bietet Microsoft mit seiner SQL Server 2000-Familie den Lösungsentwicklern Produkte und Werkzeuge, die ihnen ihre Aufgabe erheblich erleichtern.

Da sind zum einen die SQL Server 2000 Editionen für die Microsoft Server-Betriebssysteme, die Desktop Engine für die PC-Client-Betriebssysteme, die auch für NT Embedded infrage kommt, sowie die Windows CE Edition für alle auf Windows CE basierenden Geräte.

In diesem Artikel wird auf die beiden für den Embedded Bereich besonders wichtigen Fälle der Kommunikation von den Nte/XPe bzw. CE Clients focussiert. Zum Einsatz in End-to-End Lösungen kommen dabei die SQL Server Desktop Edition und SQL Server CE Edition als Frontend sowie die klassischen SQL Server Editionen im Backend.

 

Datenfluss in SQL Server-basierten Lösungen

Der Datenfluss in SQL Server-gestützten Anwendungen variiert vom direkten programmatischen Datenzugriff über die ActiveX Data Objects (ADO) in mehrschichtigen Applikationen, den verschieden Formen der Datenbank- Replikation bis hin zu Export/Import beliebiger Formate über die Data Transformation Services.

Embedded Anwendungen die an eine Unternehmensdatenbank angebunden sind, arbeiten zumeist mit Daten-Ausschnitten derselben oft auch in On-/ Offline-Szenarien.

Das Problem ist es in diesem Fall, Änderungen sowohl im Backend als auch auf den Clients zu synchronisieren und auftretende Konflikte zu lösen, um die Daten konsistent zu halten. Aus diesem Grunde lohnt es sich, einen Blick auf die SQL Server-Daten-Replikation und ihre Mechanismen zu werfen.

 

Grundbegriffe der SQL Server-Replikation

Physikalische Topologie
Die physikalische Topologie orientiert sich an einem dreischichtigen Publisher/Distributor/Subscriber-Modell.

01replikations011
Bild1: SQL Server-Replikationstopologie

Im Hintergrund steht der eigentliche Publisher (die originale Datenquelle), auf dem die Publikation eingerichtet wird. Eine Publikation kann dabei eine ganze Datenbank mit all ihren Objekten, z.B. auch stored procedures, oder nur Teile davon umfassen. Der Publisher verteilt seine Daten an einen oder mehrere Distributoren, die ihrerseits wiederum die Subscriber bedienen.

Der große Vorteil dieses Modells ist die Skalierbarkeit, die man durch den flexiblen Einsatz eines oder mehrerer Distributoren erhält. Bei Wahl des geeigneten Replikationsmechanismus' ist es möglich, steigende Subscriberzahlen linear auf neue Distributoren zu verteilen, ohne mit der wachsenden Last die Leistungsfähigkeit des Publishers zu gefährden.

Bei kleinen Subscriberzahlen ist es aber durchaus zulässig und möglich, Publisher und Distributor auf ein und demselben Server einzurichten.

Replikationsarten
SQL Server unterscheidet drei Arten von Replikation:

  • Snapshot Replikation

  • Transaktionale Replikation

  • Merge Replikation

Bei der Snapshot Replikation wird eine Momentaufnahme der Datenbank an die Subscriber geliefert. Der Datenfluss ist hier unidirektional zum Subscriber und nimmt keine Rücksicht auf Änderungen in dessen Datenbank.

Setzt man auf die transaktionale Replikation werden alle Änderungen im Publisher möglichst synchron auf den Subscriber übertragen, da dieser ein bestmögliches Abbild des Publishers darstellen soll. Dies erfordert eine zuverlässige Netzwerkverbindung mit ausreichender Bandbreite.

Die Merge Replikation ermöglicht es im Gegensatz zu den beiden anderen Replikationsarten, dass Änderungen bidirektional - vom Publisher zum Subscriber und umgekehrt - übertragen werden. Dabei möglicherweise auftretende Replikationskonflikte werden angezeigt und können durch die Definition von Regeln auf Seiten des Publishers aufgelöst werden.

Starten der Replikation
Die Replikation wird entweder durch den Publisher/Distributor als Push- oder durch den Subscriber als Pull-Mechanismus initiiert. Da für eine Push-Subscription einen ständige Netzwerkverbindung erforderlich ist (der Subscriber sollte ansprechbar sein, sonst läuft ein Push ins Leere), wird für die meisten Einsatzszenarien von Embedded Geräten die Pull-Subscription infrage kommen.

 

Die SQL Server 2000-Familie aus der Embedded Sicht

SQL Server 2000 Standard/Enterprise Edition
Die SQL Server Standard/Enterprise Version bildet das Rückgrat einer jeden Enterprise End-to-End-Lösung für Embedded Geräte. Auf ihr laufen die LOB, ERP, Data Warehouse-Lösungen, deren Ausschnitte den Embedded Geräten zur Verfügung gestellt werden sollen, bzw. Subsysteme, die an diese Enterprise-Systeme angebunden sind.
Unterstützt werden neben den hinlänglich bekannten Eigenschaften auch alle der oben beschriebenen Replikationsarten. Mehr Informationen zu den SQL Server-Features finden sich im Internet unter [1].

SQL Server 2000 Desktop Engine (MSDE 2000)
Das Beste vorneweg, die Benutzung der MSDE 2000 auf dem Embedded Device ist kostenfrei!
Für den Zugriff auf einen Backend Server zur Datenreplikation muss jedoch eine Client Access Licence (CAL) für diesen vorhanden sein, was dem gängigen Lizenzmodell entspricht.
Die MSDE ist eine auf fünf gleichzeitige Benutzer und zwei GB maximale Datenbankgröße gedrosselte SQL Server Engine. Dies hat den Vorteil, dass sowohl im Backend als auch auf dem Client für den Datenzugriff derselbe Code zum Datenzugriff verwendet werden kann.
Im Vergleich zu der in der Praxis häufigen Verwendung File-basierter Datenbanken (Access etc.) auf dem Client, bedeutet dies eine enorme Produktivitätssteigerung, da SQL-Abfragen und stored procedures identisch nach unten übernommen werden können. Der Entwickler erspart sich die zeitraubende Anpassung seiner SQL-Statements auf die Client-Datenbank.
Es ist zudem möglich, stored procedures über Replikation an die Clients im Feld zu senden.
Der Wartbarkeit einer solchen Anwendung werden damit neue Dimensionen erschlossen.
Zudem bedeutet die hundertprozentige Kompatibilität zum SQL Server auch Skalierungssicherheit für die Anwendung, falls die Benutzerlast die fünf gleichzeitigen Benutzer übersteigt. Die MSDE kann durch eine Standard/Enterprise Version ersetzt werden, ohne dass Codeänderungen vorgenommen werden müssen.
Die Beschränkung auf fünf gleichzeitige Benutzer bedeutet im Übrigen nicht, dass weitere User abgewiesen werden. Der Workload Governor der MSDE drosselt aber die Gesamtperformance, so dass eine dauerhafte Überlastung zu keinem ansprechenden Antwortzeitverhalten der Anwendung führt.
Obwohl im Installationspaket nicht mit eingeschlossen, kann die MSDE mit dem Enterprise Manager und anderen Werkzeugen der SQL Server Standard/Enterprise Version administriert werden. Vor allem während der Anwendungsentwicklung ist dies eine große Erleichterung.
Betrachtet man die Replikationsfähigkeiten der Data Engine näher, so werden als Subscriber alle Replikationsarten unterstützt, als Publisher jedoch nur die Snapshot und die Merge Replikation. Dies bedeutet für den Einsatz in Embedded Geräten keine große Limitierung, da eine Kaskadierung der Replikation wohl nur in den seltensten Fällen notwendig ist.
Weitere Eigenschaften umfassen die Möglichkeit, bis zu 16 Instanzen der MSDE parallel auf einem Rechner laufen zu lassen, eine Command Line Utility (Osql.exe) um interaktive SQL-Statements zu starten sowie die Unterstützung für DTS Pakete.
DTS Pakete sind die Export-/Import-Routinen der Data Transformation Services, die in der MSDE gestartet, aber nicht erzeugt werden können, da der notwendige DTS Designer nur in den SQL Server-Vollversionen vorhanden ist.

Obwohl die MSDE ab Windows 98 auf allen Microsoft Desktop Betriebssystemen läuft, ist im professionellen Embedded Umfeld der Einsatz auf NT/XP embedded, NT bzw. Windows NT/2000/XP am Besten geeignet, da diese Betriebssysteme weitere hier wichtige Eigenschaften z.B. Stabilität, Wartbarkeit, Sicherheit, Domänenintegration etc. aufweisen.

Mit der MSDE bleibt man aus Sicht eingebetteter Systeme auf Standard PC-Hardware und die Intel x86 Prozessorfamilie limitiert. Eine Einschränkung, die jedoch von der folgenden SQL Server Version überwunden wird.

 

SQL Server 2000 Windows CE Edition

Während man sich bei Embedded NT-Systemen immer streiten kann, ob es sich um "richtige" Embedded oder eher abgespeckte PC-Systeme handelt, so ist dies bei Systemen die auf Windows CE basieren keine Frage.
Diese Geräte befinden sich oft im mobilen Einsatz und haben nur sehr begrenzte Systemressourcen und Stromversorgung.
Die Hardware ist dabei von Gerät zu Gerät äußerst unterschiedlich. Beginnend bei den verschiedenen Prozessorfamilien, kommen im Vergleich zur PC-Welt sehr verschiedene Chipsets und Peripheriegeräte zum Einsatz.
Ziel bei der Entwicklung der SQL Server 2000 Windows CE Edition (SSCE) war es, für diese Plattformen eine sehr kompakte, aber dennoch leistungsfähige Storage Engine zu entwickeln, mit der sich schnell und effizient Applikationen erstellen lassen.
Sie sollte sich zudem an die von der Standard Version bekannten APIs und Entwicklungstechniken halten, um die für die Anwendungsentwickler notwendige Lernkurve so flach wie möglich zu halten.
Diese Vorgaben wurden in zwei ressourcensparenden Dlls umgesetzt, die je nach verwendetem Prozessor zwischen 800 KByte und 1,3 MByte Speicherplatz benötigen. Dabei handelt es sich bei der einen um die Engine (Ssce10.dll) bei der anderen um den Client Agent (Ssceca10.dll), ein ActiveX Control, das die Kommunikation mit dem Server-Backend kapselt. Die maximale Größe für eine CE-Datenbank unter Verwendung der SSCE beträgt 2 GByte.
Das Lizenz- und Kostenmodell ist ähnlich dem der MSDE, auf dem CE-Gerät darf die Datenbank kostenlos verwendet werden, für den Zugriff ins Backend ist jedoch eine Client-Lizenz nötig.
SSCE-Anwendungen werden mithilfe der Embedded Visual Tools in Embedded Visual Basic oder Embedded Visual C erstellt. Dabei wird auf vom Desktop her altbekannte Datenzugriffsmechanismen wie ADO und OLEDB in ihrer Erscheinungsform für Windows CE (ADOCE und OLEDBCE) zurückgegriffen. Der Entwickler muss sich deshalb weniger den programmiertechnischen, als den durch Formfaktor des Gerätes (kleines Display, geringer Speicher etc.) bedingten Herausforderungen stellen.
Wichtig dabei ist auch, dass die SSCE fast alle vom SQL Server bekannten SQL Statements der DML (Data Modeling Language) und DDL (Data Definition Language) verwendet, so dass Datenbankentwickler an dieser Stelle einen nahtlosen Übergang finden.
SSCE gewährleistet referentielle Integrität sowie transaktionale Sicherheit für die von den Anwendungen durchgeführten Datenbankoperationen. Dabei wird die hohe Performance durch die Verwendung von Datenbank-Indizes und einen speziellen Query Optimizer erreicht, der im Gegensatz zur SQL Server-Vollversion rein auf Geschwindigkeit und nicht auf beste Lastverteilung bei konkurrierenden Zugriffen optimiert.

Für die Kommunikation in Backend-Systeme stehen der SSCE zwei mächtige Transfermechanismen zur Verfügung. Der erste heißt Remote Data Access und erlaubt den Zugriff auf Daten, die sich in SQL Server-Systemen ab Version 6.5 befinden. Möglich ist dabei der Datendownload und deren Manipulation auf dem Client sowie der anschließende Upload in die Serverdatenbank. Darüber hinaus können SQL-Statements auch direkt abgesetzt werden. In der Backend-Datenbank selbst entsteht dabei kein Konfigurationsbedarf.
Der zweite Mechanismus ist die Merge Replikation, die es dem CE-Gerät ermöglicht, sich als Subscriber an eine bestehende SQL Server-Publikation anzuschließen und die lokale Datenbank mit der Serverdatenbank zu synchronisieren. Vorraussetzung hierfür ist eine SQL Server 2000-Version im Backend. Mit früheren SQL Server-Versionen funktioniert dieses Verfahren nicht.

Für den Transport der Daten geht die SSCE im Gegensatz zur herkömmlichen Replikation neue Wege. Zum Einsatz kommt eine nachrichtenbasierte Kommunikationsschicht, die sich rein auf HTTP stützt. Dies hat den Vorteil, dass Firewalls kein großes Hindernis mehr darstellen und durch die Verwendung der Standard-Protokolle der Zugriff von überall aus dem Internet möglich ist.
Um dies zu verwirklichen, wurde auf dem Microsoft Internet Information Server, ein Server-Agent als ISAPI Dll implementiert. Dieser dient als Empfänger der vom Client-Agenten des CE-Gerätes gesendeten Nachrichten. Die Nachrichten sind an die Anforderungen der mobilen Kommunikation sehr gut angepasst: Alle Daten werden komprimiert, abgebrochene Übertragungen können an der Stelle wieder aufgenommen werden, an der sie unterbrochen wurden.
Dies sind Eigenschaften, die eine robuste Kommunikation auch über Mobilfunknetze erlauben.
Der Server-Agent leitet die Anfragen dann an den Datenbank-Server weiter, wo je nach Art der Anfrage ein direkter Datenzugriff oder ein Replikationsvorgang initiiert wird.
Im Gegenzug schickt der Datenbank-Server das Ergebnis zum Server-Agent, der es wieder in eine Nachricht verpackt und zurück zum Client Agent auf das Embedded Gerät sendet. Dort wird diese entpackt und eventuell notwendige Aktionen werden in der lokalen Datenbank ausgeführt, um diese konsistent (Merge-Updates etc.) zu halten.

01replikations012
Bild 2: Architektur SQL Server 2000 Windows CE Edition

Durch diese Architektur gewinnt man außerdem noch einige sehr wichtige Funktionalitäten hinzu. Zum einen können die gesamten Sicherheits- und Skalierungseigenschaften des IIS wie z.B. Secure Socket Layer, User Authentifizierung, Netzwerk Load Balancing zum tragen kommen. Zum anderen muss die Backend-Datenbank auch bei Anbindung einer Applikation für Außendienstmitarbeiter keine direkte Verbindung zum Internet haben. Der IIS kann als Application-Gateway seinen Platz in einer Demilitarisierten Zone (DMZ) zwischen zwei Firewalls finden, während der DB Server optimal geschützt im firmeninternen Hausnetz verbleibt.

Dies lässt Administratoren und IT-Manager in vielen Fällen ruhiger schlafen.
Durch die Kapselung der gesamten Datentransferfunktionen in das Client Agent Control wird dem Anwendungsentwickler ein einfach zu bedienendes, aber sehr leistungsfähiges Framework zur Verfügung gestellt. Er kann damit schnell robuste Anwendungen erstellen, die Entwicklungszeiten werden enorm verkürzt, da die selbst zu schreibende Codemenge um ein Vielfaches geringer ist, als ohne diese Infrastruktur. In gleicher Weise sinkt auch der Testaufwand für die Applikation.

Limitationen findet man bei der SSCE derzeit in ihrer Beschränkung auf einen aktiven Benutzer sowie der fehlenden Transaktionsunterstützung für den Remote Data Access. Ebenso würde die Unterstützung von stored procedures die SSCE vom Bedienkomfort und Effizienz noch näher an ihre "großen" Geschwister heranbringen.

 

Zusammenfassung

Zur Entwicklung datenbankgestützter End-to-End-Lösungen mit Embedded Systemen bietet die Microsoft SQL Server 2000-Familie sowohl für Windows NT/XP Embedded als auch Windows CE sehr leistungsfähige Produkte an. Dabei ergänzen sich die einzelnen SQL Server-Varianten als Bausteine zur Gesamtlösung.
Im Vordergrund stehen dabei optimale Entwickler-Effizienz und Code-Reuse, um die Implementierungszeiten im Development Team so kurz wie möglich zu halten. Nur auf diese Weise kann ein schneller Produktzyklus erreicht werden.
Während die MSDE 2000 unter NT/XP Embedded durch ihre hundertprozentige Kompatibilität zur Vollversion absolut identischen Code auf Client und Server ermöglicht, trägt die SSCE auf dem mobilen Gerät dessen Anforderungen an einen schonenden Umgang mit Ressourcen und den Besonderheiten der mobilen Kommunikation Rechnung. Darüber hinaus bietet sie dem Entwickler die zum Datenaustausch mit dem Server-Backend erforderliche und kostensparende Infrastruktur.

Links:

[1] Microsoft SQL Server https://www.microsoft.com/sql/default.asp

[2] Microsoft SQL Server 2000 Desktop Engine 2000 https://www.microsoft.com/SQL/techinfo/development/2000/msde2000.asp

[3] Microsoft SQL Server 2000 Windows CE Edition https://www.microsoft.com/sql/evaluation/overview/CE/default.asp

[4] SSCE-Dokumentation https://msdn.microsoft.com/library/default.asp?URL=/library/wcedoc/sqlce/portal_6ol0.htm