Konzept (PDF)
Konzept (PDF)
Konzept (PDF)
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
<strong>Konzept</strong> AquaWeb<br />
aqua plan GmbH<br />
Aachen, Februar 2003<br />
aqua plan<br />
Ingenieurgesellschaft für Problemlösungen in Hydrologie und Umweltschutz mbH<br />
Goethestr. 5, 52064 Aachen - Tel.: 0241/400 70-0, Fax: 0241/400 70-99<br />
Geschäftsführer: Dipl.-Ing. Gerhard Langstädtler, Markus von Brevern<br />
Amtsgericht Aachen HRB 5290<br />
Bankverbindungen: Postbank Dortmund, Kto. Nr. 814608-469, BLZ 44010046<br />
Sparkasse Aachen, Kto. Nr. 15009905, BLZ 39050000<br />
email: post@aquaplan.de · http://www.aquaplan.de
Inhaltsverzeichnis<br />
1 Motivation 2<br />
2 Aufgaben der Clients und des Servers 2<br />
2.1 Begriffsbestimmung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2<br />
2.2 AquaWeb-Ansatz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3<br />
3 Datentransfer, Caching, Dateneinheiten 4<br />
3.1 Dateneinheiten editieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4<br />
3.2 Aktualisieren der Clients . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5<br />
4 Sicherheit, Abrechnungsmechanismen 5<br />
4.1 Authentifizierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5<br />
4.2 Behinderung des Erspähens . . . . . . . . . . . . . . . . . . . . . . . . . . 5<br />
4.3 Transaktionssteuerung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6<br />
4.4 Überwachung der Zugriffe . . . . . . . . . . . . . . . . . . . . . . . . . . . 6<br />
5 Möglichkeiten der Vernetzung 6<br />
5.1 Internet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6<br />
5.1.1 Anforderungen an Hard- und Software . . . . . . . . . . . . . . . . 6<br />
5.1.2 Datendurchsatz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7<br />
6 Erweiterungsmöglichkeiten 7<br />
6.1 Multiserver-Version . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7<br />
6.1.1 Heimat von Dateneinheiten . . . . . . . . . . . . . . . . . . . . . . 7<br />
6.1.2 Lokaler Zugriff, globaler Zugriff . . . . . . . . . . . . . . . . . . . . 8<br />
6.1.3 Kommunikation zwischen den Servern . . . . . . . . . . . . . . . . . 8<br />
6.1.4 Anforderungen an die Hardware . . . . . . . . . . . . . . . . . . . . 8<br />
7 Fragen und Antworten 10<br />
1
1 Motivation<br />
Vielfach werden beim Einsatz von Informationssystemen Strukturen aufgebaut, die für den<br />
Einzelplatz-Einsatz geeignet sind, im Mehrfach-Nutzer-Betrieb aber zu Behinderungen<br />
führen.<br />
So wird bei existierenden Applikationen oft die gesamte Intelligenz des Datenmanagements<br />
allein auf der Clientseite implementiert und die Server fungieren lediglich als Fileserver.<br />
Um echte Multi-User-Fähigkeit zu gewährleisten, müssen jedoch gewisse Funktionalitäten<br />
in einer zentralen Instanz integriert werden.<br />
Bei reinen Fileservern muss die Synchronisation von Mehrfachzugriffen der Clients von<br />
diesen selbst erfolgen. Die einzige Möglichkeit der Kommunikation untereinander bzw.<br />
den Bedarf einer Änderung von Daten anzumelden besteht allein über das Setzen von<br />
” Marken“ auf dem Fileserver.<br />
Fileserver können die Clients nicht direkt über Datenänderungen informieren. Dies ist<br />
jedoch wünschenswert. Die Möglichkeit einer Kommunikation eröffnet sich durch ein Protokoll,<br />
das Botschaften zwischen Server und Client in beide Richtungen erlaubt. AQTP<br />
ist ein solches Protokoll.<br />
Mit einem Fileserver werden alle Daten, die für die Berechnung notwendig sind, an den<br />
Client übertragen, welcher daraufhin auf diesen Daten arbeitet und die Ergebnisse zurückschickt.<br />
So wird unnötig Bandbreite und Rechenzeit verschwendet.<br />
Erst durch die aktive Kommunikation zwischen Server und Client, wird es möglich, Berechnungen<br />
auf dem Server zu initiieren. Dieser arbeitet dann auf den lokalen Daten und<br />
überträgt lediglich die Ergebnisse oder nur deren graphische Repräsentation.<br />
Die Synchronisation der Daten ist allein Aufgabe des Servers und kann ohne Kommunikation<br />
mit den Clients erfolgen. Der Server koordiniert als zentrale Instanz alle Zugriffe<br />
im Hinblick auf Integrität, Sicherheit und Konsistenz.<br />
Diese Lösung wird im folgenden vorgestellt.<br />
2 Aufgaben der Clients und des Servers<br />
2.1 Begriffsbestimmung<br />
Ein Server ist dadurch definiert, dass er einen gewissen Dienst (Service) bereitstellt. Ein<br />
Rechner kann dabei mehrere Server in sich vereinigen. Diesen Dienst in Anspruch nehmen<br />
die Clients. Grundsätzlich handelt es sich um Programme und nicht um Maschinen.<br />
2
Server und Client können also durchaus auf einem Rechner laufen (z.B. X-Client und<br />
X-Server).<br />
Dienste, die zur Verfügung gestellt werden können, sind unter anderem Filesystemzugriffe,<br />
Datenbankzugriffe, Druckerbereitstellung, email-relays oder http-Zugriffe.<br />
Server des AquaWebstellen mittels des AQTP-Protokolls Zeitreihen, Stammdaten, Geo-<br />
Daten und Funktionen für deren Bearbeitung zur Verfügung. Alle Rechner, auf denen ein<br />
AquaWeb-Client läuft, und die mit dem Rechner, auf dem ein Server läuft, verbunden<br />
sind, können diesen Dienst nutzen.<br />
Der Server-Rechner muss ein Multi-Threading-fähiges Betriebssystem haben und in das<br />
Netz (Intra- oder Inter-) über TCP/IP eingebunden sein. Er muss ausreichend Rechenleistung,<br />
RAM und Festplattenplatz besitzen, um alle Clients gleichzeitig bedienen zu<br />
können. Hierfür kommt vorzugsweise ein schneller Unix-Rechner in Frage (z.B. Solarisoder<br />
HP-UX-Systeme).<br />
Die Clients werden von aqua plan derzeit für Microsoft-Windows und Windows-NT zur<br />
Verfügung gestellt.<br />
Ein Zeitreihensystem lässt sich nur schwer im Kontext einer relationalen Datenbank abbilden.<br />
Deshalb wäre ein Datenbankserver nicht hinreichend für das befriedigende Arbeiten<br />
mit dem System. Das AQTP-Protokoll stellt vielmehr eine völlig neue, auf das Problem<br />
perfekt zugeschnittene Lösung dar.<br />
2.2 AquaWeb-Ansatz<br />
Die Clients des AquaWebbrauchen nur mit geringer Funktionalität ausgerüstet zu sein,<br />
die gesamte Intelligenz ist im Server integriert.<br />
Alle Berechnungen laufen auf dem Server ab, wobei die Daten nur lokal angesprochen<br />
werden. Im Regelfall werden weder Zeitreihen noch Relationen oder Geo-Daten zwischen<br />
Server und Client ausgetauscht.<br />
Der Client übernimmt lediglich die Darstellung der vom Server übermittelten Daten.<br />
Beispielsweise bereitet der Server Zeitreihen-Graphiken auf und überträgt nur die Vektordaten<br />
an den Client. Falls die Übertragung der Zeitreihendaten jedoch schneller ist, oder<br />
diese explizit angefordert werden (z.B. im Wertepaareditor), werden diese an den Client<br />
geschickt.<br />
Ohne den Einsatz einer Client-Server-Architektur ist die Netzverbindung zwischen Client<br />
und Server immer der Flaschenhals der Anwendung.<br />
Mit dem Einsatz des AQTP-Protokolls dagegen wird die Minimierung der zu übertragenden<br />
Daten und damit eine erhebliche Entlastung erreicht.<br />
3
Die verwendete Technik sei hier kurz skizziert:<br />
– Ein Button wird gedrückt<br />
– Die Inhalte aller geänderten Felder der aktuellen Maske werden ausgelesen und über<br />
AQTP an den Server übertragen. Dieser bringt damit seine lokale Repräsentation<br />
der Maske auf den neusten Stand.<br />
– Die mit dem Button verknüpfte Azur-Funktion wird über AQTP an den Server<br />
gesendet.<br />
– Ohne weitere Kommunikation mit den Client führt der Server nun die Azur-Funktion<br />
aus.<br />
– Am Ende werden alle durch die Berechnung veränderten Felder über AQTP auf<br />
dem Client auf den neusten Stand gebracht.<br />
– Sollten neue Graphiken entstehen, so werden diese jetzt an den Client übermittelt.<br />
– Alle Daten, die mit AQTP verschickt werden, sind vorher komprimiert worden.<br />
3 Datentransfer, Caching, Dateneinheiten<br />
Um den Netzzugriff auf ein Minimum zu beschränken, werden auf allen Clients und Servern<br />
Daten zwischengespeichert (gecached). Zur Arbeitsweise eines Multiserver-AquaWebsiehe<br />
Abschnitt 6.1.<br />
Gecached werden Dateneinheiten, die jeweils mit read-only- und uptodate-Flags versehen<br />
sind. Dateneinheiten (DE) sind Zeitreihenausschnitt, Stammdatentupel, Coderelation,<br />
GeoLayer und Vektorgraphiken.<br />
3.1 Dateneinheiten editieren<br />
Möchte ein Client eine DE editieren, so muss er das beim Server anmelden. Der Server<br />
prüft, ob die DE zur Zeit read-only ist und meldet es dem Client. Daraufhin wird die DE<br />
auf read-write gesetzt (gelocked), sodass kein anderer Client sie editieren kann. Befindet<br />
sich die DE nicht im Cache des Clients, überträgt der Server sie an diesen. Hat der Client<br />
die DE editiert, schreibt er sie zurück auf den Server. Dieser setzt wieder das read-only-<br />
Flag der DE.<br />
4
3.2 Aktualisieren der Clients<br />
Der Server verwaltet für jeden Client eine Liste mit DE, die übertragen wurden und<br />
sich also im Cache des jeweiligen Clients befinden können. Ändert ein Client eine DE,<br />
so wird an alle Clients, deren Liste auf dem Server diese DE enthält, eine Botschaft<br />
verschickt. Ist zur Zeit keine Session für einen Client angemeldet, so wird die Botschaft in<br />
eine Warteschlange (message queue) gestellt. Bei Eröffnung der nächsten Session für den<br />
Client wird diese Warteschlange abgearbeitet.<br />
DE im Cache eines Clients, die vom Server die Botschaft erhalten haben, dass diese<br />
DE sich geändert hat, laden die DE nicht sofort nach, sondern löschen lediglich deren<br />
uptodate-Flag. Beim nächsten Zugriff auf die DE wird diese dann nachgeladen.<br />
4 Sicherheit, Abrechnungsmechanismen<br />
4.1 Authentifizierung<br />
Ein Client kann nur mit einem Server Verbindung aufnehmen. Der Client ist dazu auf<br />
dem Server registriert. Clients untereinander können nicht kommunizieren. Server untereinander<br />
übetragen keine Benutzerdaten.<br />
Clients besitzen Seriennummern, Benutzer haben Benutzerkennungen und Passwörter.<br />
Die Clients sind nicht dafür zuständig, die Benutzer zu identifizieren. Daher ist es für<br />
jeden Benutzer möglich, jeden Client zu benutzen. Jeder Client kann jedoch nur maximal<br />
einen Benutzer bedienen.<br />
Zu Beginn einer Sitzung muss sich der Benutzer mit Kennung und Passwort identifizieren.<br />
Bei erfolgreicher Authentifizierung wird eine Server-Session eröffnet, die beim Verlassen<br />
der Sitzung wieder geschlossen wird. Jede Session hat einen konfigurierbaren Time-Out.<br />
Passwörter werden verschlüsselt übertragen.<br />
4.2 Behinderung des Erspähens<br />
Bei der Kommunikation über ein ISDN-Intranet oder über eine geschlossene Benutzergruppe<br />
im Frame Relay (VPN), sind Versuche, die Daten zu erspähen von vornherein so<br />
gut wie ausgeschlossen.<br />
Erfolgt die Verbindung über das Internet, profitieren die AquaWeb-Nutzer von der standardmäßigen<br />
Kompression aller Pakete mit einem nicht frei zugänglichen Algorithmus.<br />
5
4.3 Transaktionssteuerung<br />
Wie aus Abschnitt 2.2 hervorgeht, werden Transaktionen immer vollständig auf dem Server<br />
ausgeführt, ohne Kommunikation mit dem Client.<br />
Transaktionssteuerung ist demnach nicht Aufgabe des AQTP-Protokolls, sondern der<br />
Server-Software. Da die Bearbeitung nur auf lokalen Daten stattfindet, sind keine Probleme<br />
zu erwarten.<br />
4.4 Überwachung der Zugriffe<br />
Die Sessions werden geloggt. Die Anzahl der Pakete, die verbrauchte Server-Zeit und die<br />
Gesamtzeit werden abgelegt. Mittels Skripts können aus den Log-Dateien wichtige Daten<br />
extrahiert werden.<br />
So ist es möglich, den Server hinsichtlich Netzanbindung, Plattenplatz, Rechenleistung<br />
und RAM-Ausbau den Bedürfnissen anzupassen.<br />
Die wichtigsten Skripts stellt die Firma aqua plan zur Verfügung. Ein mit dem UNIX-<br />
System vertrauter Programmierer kann diese jederzeit erweitern.<br />
5 Möglichkeiten der Vernetzung<br />
Die Arbeitsplätze müssen mit dem zuständigen AquaWeb-Server verbunden sein. Das<br />
AQTP-Protokoll benutzt diese Verbindung zum Datenaustausch. Wenn der Server über<br />
das Internet erreichbar ist, genügt es, die Arbeitsplätze ebenfalls an das Internet anzubinden.<br />
Dies ist jedoch nicht die schnellste Alternative, sie erlaubt aber dennoch ein<br />
kontinuierliches Arbeiten.<br />
Server und Arbeitsplätze können auch über ISDN-Router mit 64 oder 128 kBit/s direkt<br />
vernetzt werden. Dies erlaubt viel bessere Übetragungsraten und Antwortzeiten. Die Firma<br />
aqua plan setzt diese Technik seit über vier Jahren ein, um die Filiale in Wien mit der<br />
Zentrale in Aachen zu verbinden, bzw. diese mit diversen Kunden in ganz Deutschland.<br />
5.1 Internet<br />
5.1.1 Anforderungen an Hard- und Software<br />
Jeder PC mit Windows-NT/2000, ist in der Lage, den AquaWeb-Client ablaufen zu<br />
lassen.<br />
6
Notwendig für eine Einzelplatz-Verbindung ist ein PC und eine ISDN-Karte (oder ein<br />
Modem). Soll ein ganzes LAN in das Internet eingebunden werden, so muss ein Router<br />
für den Zugang benutzt werden.<br />
Da die Telefonkosten zum Provider in jedem Fall entstehen, sollte u.U. eine Standleitung<br />
in Erwägung gezogen werden.<br />
Jeder Arbeitsplatz, der an AquaWebteilnehmen will, muss eine eigene IP-Adresse haben,<br />
ein email-Anschluss reicht nicht aus.<br />
5.1.2 Datendurchsatz<br />
Der Datendurchsatz ist nicht durch die Verbindung zwischen Arbeitsplatz und Provider<br />
bestimmt, sondern durch die Netzlast des Internets. In der Praxis hat sicg gezeigt, dass<br />
eine Bandbreite von ca. 5 kB/s für ein relativ flüssiges Arbeiten ausreichend ist. In einem<br />
LAN ist keine Verzögerung zu bemerken, die Anwendung läuft mindestens so schnell wie<br />
lokal.<br />
6 Erweiterungsmöglichkeiten<br />
6.1 Multiserver-Version<br />
In einem Multiserver-AquaWebwerden Dateneinheiten nicht nur zwischen Server und<br />
Client, sondern auch zwischen Servern ausgetauscht. Um die Datenkonsistenz zu gewährleisten,<br />
muss die Struktur der Dateneinheiten erweitert werden.<br />
6.1.1 Heimat von Dateneinheiten<br />
Jede DE ist auf genau einem Server ” beheimatet“. Alle anderen Server können die DE<br />
zwar speichern, sie sind jedoch nicht für deren Verwaltung zuständig. Der Heimatserver<br />
einer DE ist so zu wählen, dass alle Clients der für diese DE zuständigen Dienststelle<br />
möglichst in der Nähe sind (z.B. im gleichen LAN).<br />
Anfragen nach Änderung der DE können nur vom Heimatserver stattgegeben werden.<br />
Dieser schickt bei Änderung einer DE allen Servern eine entsprechende Botschaft (siehe<br />
auch Abschnitt 3.2).<br />
7
6.1.2 Lokaler Zugriff, globaler Zugriff<br />
Jedem Client ist genau ein Server zugeordnet. Ein Zugriff auf andere Server ist nicht<br />
möglich. Möchte der Client auf DE zugreifen, die weder auf seinem Server beheimatet<br />
noch in dessem Cache vorhanden sind, muss dieser eine Anfrage an andere Server stellen.<br />
Diese Anfragen und der damit verbundene Datentransfer ist mit Kosten und Wartezeit<br />
verbunden.<br />
Als Voreinstellung ist es daher sinnvoll, Benutzern den Zugriff auf entfernte DE zu verwehren.<br />
Dieses Recht kann im Benutzerprofil individuell eingestellt werden. Standardmäßig<br />
greifen alle Masken nur auf lokale DE zu. Werden von einem Client nur DE seines Heimatservers<br />
angefordert, so werden unnötige Kosten und Wartezeiten vermieden.<br />
Die logische Vernetzung der Server untereinander muss keinen vollständig verbundenen<br />
Graphen darstellen. Jeder Server ist nur über die Existenz der direkten Nachbar-Server<br />
informiert (siehe Abb. ??, Server 1 ist nicht mit Server 3 verbunden). Eine Anfrage kann<br />
daher über mehrere Zwischenstufen erfolgen.<br />
6.1.3 Kommunikation zwischen den Servern<br />
Wenn ein Client eine DE anfordert, die nicht auf dessen Server (S1) vorhanden ist, stellt<br />
dieser fest, welcher andere Server (S2) die Anfrage befriedigen kann. Daraufhin überträgt<br />
er die DE in seinen Cache und merkt sich deren Ursprung. Dann überträgt er die DE<br />
an den Client. Bei der nächsten Anfrage des Client kann S1 die DE aus seinem Cache<br />
übertragen, ohne auf S2 zuzugreifen. Erst wenn er eine update-Botschaft von S2 bekommt,<br />
muss er die DE neu laden.<br />
Solange eine DE aktuell ist, kann ein Server Anfragen nach ihr aus seinem Cache befriedigen,<br />
auch wenn er nicht deren Heimatserver ist. Das Server-Server-Botschaftensystem<br />
stellt sicher, dass Änderungen an DE sofort mitgeteilt werden. So ist die Kommunikation<br />
zwischen den Servern auf ein absolutes Minimum reduziert.<br />
6.1.4 Anforderungen an die Hardware<br />
Da ein Server eines Multiserver-Verbundes viel weniger Clients und Dateneinheiten verwalten<br />
muss als ein Einzelserver, sind die Anforderungen an die Hardware wesentlich<br />
geringer.<br />
Jeder Server muss Multi-Threading-fähig sein. Ein Windows-Betriebssystem scheidet daher<br />
aus. Unix ist hier das Betriebssystem der Wahl. Die Erfahrungen der letzten Jahre<br />
haben gezeigt, dass ein PC mit Linux einer Unix-Workstation, von der Performance abgesehen,<br />
ebenbürtig ist. Falls der Linux-Rechner über mindestens 256 MB RAM und eine<br />
aktuelle CPU verügt, ist er geeignet einen AquaWeb-Server aufzunehmen.<br />
8
Alle Server sollten jederzeit von den benachbarten Servern aus erreichbar sein. Sind sie es<br />
nicht, so wird das Server-Server-Botschaftensystem blockiert, mit der Folge, dass ganze<br />
Teilsysteme des AquaWebnicht erreichbar sind oder die Aktualität von Daten nicht mehr<br />
gewährleistet ist.<br />
9
7 Fragen und Antworten<br />
Liegen die Programme lokal auf jedem Arbeitsplatz oder werden sie jeweils über das Internet<br />
übertragen?<br />
Auf dem Arbeitsplatz liegt lediglich der AquaWeb-Client. Dieser übernimmt die Eingabe<br />
der Daten und die Darstellung von Ergebnissen auf dem Bildschirm und dem Drucker.<br />
Die Daten liegen auf dem Server auf dem auch alle Auswertungen/Berechnungen laufen.<br />
Wie werden Zugriffsberechtigungen ermöglicht und geprüft?<br />
Jeder Benutzer muss sich zu Beginn einer Sitzung mit seiner Kennung und seinem Passwort<br />
identifizieren. Die dazu nötigen Daten werden auf dem Server vorgehalten. Jedes übermittelte<br />
Paket kann eindeutig einem Benutzer und einem Server zugeordnet werden.<br />
Ist das Arbeiten auch ohne Internet möglich?<br />
Auf das Internet kann verzichet werden. Das Vorhandensein eines Servers ist jedoch Voraussetzung.<br />
Dieser kann auch lokal betrieben werden.<br />
Wie funktioniert der Import/Export von Daten?<br />
Der Import und der Export von Daten ist direkt am Client möglich. Exportdaten werden<br />
vom Server zum Client übermittelt, Importdaten über den Client eingelesen. Die<br />
Daten werden an den Server weitergeleitet und stehen von dort den anderen Clients zur<br />
Verfügung.<br />
Ist die Multi-User-Fähigkeit gewährleistet?<br />
Da der Server alle Zugriffe zentral verwaltet und koordiniert, ist erst mit der AquaWeb-<br />
Lösung eine echte Multi-User-Fähigkeit gegeben.<br />
10
Benötigt jeder Arbeitsplatz eine eigene IP-Adresse?<br />
Ja. Zum Datenaustausch über ein Datennetz muss jeder Platz eine eindeutige Kennung<br />
haben. Da AquaWebTCP/IP-Netze voraussetzt, muss jeder Platz also eine eigene IP-<br />
Adresse haben. Erfolgt die Anbindung an den Server nicht über das Internet, so ist jedoch<br />
keine offizielle IP-Adresse notwendig.<br />
Wieviel Plattenplatz muss auf einem Arbeitsplatz vorgesehen werden?<br />
Die AquaWeb-Software benötigt etwa 8 MByte Plattenplatz auf dem Rechner des Clients.<br />
Darüberhinaus benötigt der Cache Platz. Dieser ist an jedem Arbeitsplatz frei konfigurierbar.<br />
Der Cache sollte, wenn möglich, auf einer lokalen Festplatte eingerichtet werden.<br />
Kann nur über den Server gedruckt werden?<br />
Nein. Die Ausgabe am Client erfolgt wie bei den übrigen Anwendungen über die von dort<br />
aus erreichbaren Drucker.<br />
11