22.10.2012 Aufrufe

Konzept (PDF)

Konzept (PDF)

Konzept (PDF)

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!