Die Zusammenarbeit zwischen zwei (oder mehreren) Prozessen in der der eine Prozess (der Client) Resourcen anfordert und Diensten die der andere Process (der Server) zur Verfügung stellt. Die beiden Prozesse können auf einer Maschine laufen oder auf getrennten Maschinen die über ein Netzwerk zusammenarbeiten.
Zum Beispiel nutzt ein Datenbank-Server den PC für die Ausgabe (User Interface) und die Verarbeitung einer Applikation, während der Server selbst das Datenmanagement beisteuert. Andererseits nutzt ein Applikationsserver einen PC für die Ausgabe, während der Server sowohl die Verarbeitung als auch das Datenmanagement übernimmt.
Darüberhinaus gibt es Aufteilungen in drei und mehr Schichten sowie Mischformen.
Immer mehr Kunden wollen ihre Applikationen mit externen Außenstellen betreiben, die oft lediglich über Telefonleitungen angeschlossen sind. Jeder, der sich schon einmal mit dieser Problematik beschäftigt hat weiß, daß die Antwortzeiten gegen unendlich gehen. Mit Standard-VFP ist dies also normalerweise ein hoffnungsloses Unterfangen. Diese Session zeigt, wie eine FoxPro-Anwendung zur C/S-Applikation wird, ohne SQL Server, Oracle oder andere C/S-Datenbanken einsetzen zu müssen.
Wie können wir nun das gestellte Problem lösen, sprich, die Außenstelle unseres Kunden mit einem vertretbaren Aufwand anbinden?
VFP als Frontend, SQL-Server, Oracle, etc. als Backend. Remote Views, SQL Pass Through.
Datenzugriff über HTML, XML, RDO.
Der Client instantiiert DCOM-Objekte über das WAN. Die DCOM Objekte greifen auf die Daten zu und schicken nur die benötigten Informationen zurück an den Client.
Eine dedizierte Workstation die Anforderungen der Clients abarbeitet. Die Kommunikation zwischen Außenstelle und Job-Server kann z.B. über eine Task-DBF abgewickelt werden.
Die bisher aufgezeigten Wege bedingen die weitgehende Neuprogrammierung einer herkömmlichen VFP-Anwendung. Das bedeutet i.d.R. enormen Zeitaufwand und Kosten die unser Kunde nicht bereit ist in voller Höhe zu bezahlen.
Es geht aber auch ohne Neuprogrammierung:
Das Programm wird in der Außenstelle installiert. Bei Bedarf wird über das Dial Up Netzwerk (RAS) oder Drittanbieter-Produkte wie AVM NetWAYS eine Verbindung zum Server aufgebaut.
Der Pferdefuß dieser Lösung ist, daß VFPs Datenbankzugriffe nur schnell sind, solange genügend Bandbreite zur Verfügung steht. Auf einer ISDN-Leitung ist die sonst geschwindigkeitessteigerne Rushmore Technologie eher ein Bremser. Auch das Anfügen eines neuen Datensatzes oder einfache Satzsperren dauern viel zu lange um mit der VFP Anwendung am Client noch zügig arbeiten zu können.
Der Client in der Außenstelle wählt sich mit Hilfe dieser Software auf einer dedizierten Workstation im Netz der Zentrale ein. Diese Workstation wird von ihm ferngesteuert.
Die Probleme dieser Lösung sind: Langsamer Bildschirmaufbau, teilweise mit verfälschten Farben, umständliches Drucken am Client. Es ist technisch möglich, daß sich mehrere Clients einer Außenstelle eine Telefonleitung teilen. Leider ist das aber für die masssiven Grafikausgaben von VFP zu langsam. Wir erinnern uns: Aus Sicht von Windows und damit auch aus Sicht der Remote Access Software ist eine VFP Form nur eine einzige große Bitmap. Wenn sich in dieser "Bitmap" etwas ändert, dann muß die "Bitmap" komplett neu übertragen werden. Die Erfahrung zeigt auch, daß Lösungen dieser Art i.d.R. zu einem erhöhten Supportaufkommen führen, das immer wieder zu Unstimmigkeiten mit unseren Kunden führen kann ("Sie haben gesagt, daß das funktioniert...").
Die einzige Variante die weder Ihren Kunden noch Sie auf Dauer zuviel Geld kostet ist folgende:
Dabei handelt es sich ursprünglich um ein OS/2 Produkt der 1989 gegründeten Fa. Citrix namens WinView. 1992 lizenzierte Citrix den NT 3.51 Quellcode von Microsoft. Daraus entstand 1995 der erste Terminal Server für Windows: Citrix WinFrame. 1997 lizenzierte Citrix große Teile seiner WinFrame Technologie an Microsoft und half Microsoft bei der Entwicklung des "Windows NT Server 4.0, Terminal Server Edition". Microsoft lizenzierte allerdings nicht das von Citrix verwendete ICA (Independent Computing Architecture) Protokoll, sondern setzte sein eigenes RDP (Remote Desktop Protokoll) ein. Es ist dem mit NetMeeting verwendeten Protokoll sehr ähnlich. Als nächstes entstand Citrix MetaFrame. Es ist sozusagen die Ergänzung des NT4 Terminal Servers um die Teile die Microsoft nicht lizenziert hat. Im Windows 2000 Server hat Microsoft seine beiden Server-Linien zusammengeführt und den Terminal Server als einfach zu nutzenden Dienst ins Betriebssystem integriert. Citrix entwickelt sein Produkt MetaFrame weiter um die Windows 2000 Terminal Services zu ergänzen.
Entsprechend der Definition handelt es sich bei dieser
Lösung um eine Client/Server Lösung. J Der Zugriff über die Windows 2000 Terminal Services
vereint die Vorteile der Lösungen "VFP über WAN" und "Remote
Access Software" ohne ihre Nachteile. Am besten Sie stellen es sich vor
wie pcAnywhere
ohne Ruckeln ohne einen fernzusteuernden
PC in der Zentrale stabiler integriert in die
NT-Security Die Anforderungen an die Hardware definieren sich aus den
Anforderungen für die das Betriebssystem Windows 2000 Server stellt plus
den zusätzlichen Anforderungen die der Terminal-Dienst stellt. Nehmen Sie
also einen PC den sie mit gutem Gewissen als Windows 2000 Server verwenden würden.
Spendieren Sie ihm mindestens 128 MB RAM für das Betriebssystem und die
Terminal Services.
Überprüfen Sie auf einer Workstation ihres Kunden
im NT Task Manager wieviel Speicher der Prozess ihrer Anwendung belegt nachdem
der Anwender längere Zeit damit gearbeitet hat. In der Regel sind das zwischen
15 und 35 MB. Multiplizieren Sie diese Zahl mit der Anzahl Clients die gleichzeitig
von der Außenstelle aus mit dem System arbeiten sollen. Diesen Speicherbedarf
müssen Sie zu den o.g. 128 MB hinzufügen.
Die untere Grenze definiert ein Pentium 100. Er kann unter
Windows for Workgroups 3.11 oder jedem später auf den Markt gekommenen
Microsoft Windows Betriebssystem laufen. Der Hauptspeicherbedarf richtet sich
nach dem Bedarf des verwendeten Betriebssystems.
Bei Neuanschaffungen sollte man sogenannte "echte"
Terminals in die engere Wahl ziehen, wie sie für andere Betriebssysteme
schon seit längerem gebaut werden. Es gibt sie inzwischen auch mit Boot-PROM
für Windows 2000. Der bekannteste Hersteller ist wohl Wyse. Laut Presseberichten
verursachen diese Terminals auf Dauer geringere Kosten bei ihrem Kunden als
ein PC.
Eine ISDN-Leitung mit 64Kbit/sec. kann problemlos 2 Clients
bedienen solange sie nicht gleichzeitig drucken. Wenn es unbedingt mehr als
2 Clients sein müssen oder ständig in der Außenstelle gedruckt
werden muß, versprechen Sie ihrem Kunden nichts sondern ermitteln Sie
in der Praxis wann es ihren Anwendern zu langsam wird.
TCP/IP. Und sonst nichts. Bei Workstations unter Windows
3.11 für Workgroups muß es sogar der original Microsoft 32Bit TCP/IP
Stack sein. Das sollte aber kein Problem darstellen, da dieses Protokoll nur
für die Verbindung zwischen den Terminal Anwendern und dem Terminal Server
verwendet werden muß. Auf der anderen Seite, innerhalb des LANs ihres
Kunden kann jedes Protokoll laufen das von Windows 2000 unterstüzt wird.
Müssen Sie unbedingt auf der Client-Seite andere Protokolle
verwenden (z.B. IPX) dann brauchen Sie die oben erwähnte Zusatzsoftware
Citrix MetaFrame.
Eine Windows 2000 Terminal Client Lizenz kostet derzeit
ca. 450 DM. Die laufenden Kosten sind geringer als bei allen vergleichbaren
Lösungen.
Es ist weder schwierig noch langwierig, wenn man es mal
gesehen hat. Allerdings würden die Screenshots den Rahmen dieses Skripts
sprengen. Ich zeige die komplette Installation in meinem Vortrag.
Software die für Terminal User zur Verfügung
stehen soll kann auf zwei Arten installiert werden:
Start > Einstellungen
> Systemsteuerung > Software - im DOS-Fenster
eingeben:
change
user /install - Software
wie gewohnt installieren
- im DOS-Fenster
eingeben: change
user /execute
Diese Vorgehensweise ist notwendig, damit Registry-Einträge
im richtigen Ast landen und somit von allen Usern gesehen werden.
Die Windows 2000 Terminal Dienste sind da nicht wählerisch.
Sie funktionieren nicht nur mit VFP-Anwendungen, sondern genauso mit Anwendungen
die in FPW oder FPD geschrieben sind. Auch MS Office und andere Standard Software
läuft.
Einschränkungen gibt es bei hoher Farbanzahl, Bildbearbeitungssoftware,
Streaming Video und Streaming Audio.
Citrix MetaFrame bietet Umgehungsmöglichkeiten dieser
Einschränkungen. Bedenken Sie aber, daß sie für Anwendungen
mit diesen Anforderungen wesentlich mehr Bandbreite benötigen, als sie
im WAN oder auf einer ISDN Leitung normalerweise zur Verfügung haben.
Der Datenaustausch mit lokalen Anwendungen über die
Zwischenablage ist möglich, ebenso das Nutzen lokaler Drucker. Der entsprechende
Druckertreiber muß auf dem Terminal Server installiert werden.
Die Nutzung lokaler Diskettenlaufwerke und Festplatten
für Applikationen die im Terminal-Fenster laufen kann vom Administrator
freigegeben werden. Untersuchungen haben aber gezeigt, daß das in den
meisten Fällem nicht sinnvoll ist. Es führt hauptsächlich zu
geringerer Produktivität beim Anwender und Mehrarbeit für den Administrator.
Selbst das früher beliebte Disketten-Clearing mit der Bank kann heute bequemer,
schneller und sicherer mit einer entsprechenden Software der Bank erledigt werden.
Die Kommunikation mit der Bank erfolgt über ISDN/Modem oder Internet.
Es ist möglich den Terminal Client so einzurichten,
daß Anwendungen des Terminal Servers aussehen als würden sie direkt
in einem Fenster des lokalen PCs laufen. In dem Fall wird aber pro Anwendung
eine eigene Verbindung zum Terminal Server benötigt. Es hängt von
der verfügbaren Bendbreite ab, ob diese Option sinnvoll ist.
Bei Windows 2000 Server Service Pack 1 wird ein ActiveX
Control mitgeliefert, mit dessen Hilfe das möglich ist. Nach bisheriger
Kenntnis funktioniert das aber nur mit dem Microsoft Internet Explorer.
Das macht eine Applikation auf dem Terminal Server langsam:
unnötige Refresh()-Aufrufe-
unnötige LockScreen=.F. Grafiken mit mehr als 256 Farben- eine Bitmap die auf dem animierte Grafiken- Farbverläufe
(GradientFill) Die neue Einstellung BITMAP=OFF in der Datei Config.fpw
soll zu Geschwindigkeitsvorteilen beim Betrieb im Terminal Server führen.
Die Session zeigt, was VFP mit dieser Einstellung anders macht.
Empfehlenswerte
Literatur zum Thema: "Windows NT Terminal Server and Citrix MetaFrame"
von New Riders Publishing (www.newriders.com),
ISBN 1-56205-944-0
1. Windows 2000 Terminal Services in der Theorie
Anforderungen an die Server-Hardware
Anforderungen an die Client-Hardware
Anforderungen an die Datenleitung
Welche Protokolle können verwendet werden
Kosten
2. Windows 2000 Terminal Services in der Praxis
Installation der Terminal Services auf Server und Client (16bit und 32bit)
Software-Installation
Was ist mit anderer Software die die Anwender des Kunden nutzen wollen?
Nutzung lokaler Resourcen
Seamless Desktop Integration
Zugriff übers Internet mit dem Browser:
Was kann ich als VFP-Programmierer falsch machen?
VFP-Screen gekachelt wirdWas bringt die Terminal Server Unterstützung in VFP6 Service Pack 4?