1 Alaska Software Internet Technologien



Ähnliche Dokumente
2. Kommunikation und Synchronisation von Prozessen 2.2 Kommunikation zwischen Prozessen

4D Server v12 64-bit Version BETA VERSION

ARCHITEKTUR VON INFORMATIONSSYSTEMEN

Step by Step Webserver unter Windows Server von Christian Bartl

Online-Publishing mit HTML und CSS für Einsteigerinnen

TimeMachine. Time CGI. Version 1.5. Stand Dokument: time.odt. Berger EDV Service Tulbeckstr München

Man liest sich: POP3/IMAP

Systemvoraussetzungen:

COSA. Portal Client Installation JAVA J2SE / JRE Version 1.4.2_09, Stand Copyright

OP-LOG

4. Network Interfaces Welches verwenden? 5. Anwendung : Laden einer einfachen Internetseite 6. Kapselung von Paketen

Step by Step Remotedesktopfreigabe unter Windows Server von Christian Bartl

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank

Universal Dashboard auf ewon Alarmübersicht auf ewon eigener HTML Seite.

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

Online Banking System

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015

PHP Kurs Online Kurs Analysten Programmierer Web PHP

Proseminar: Website-Management-Systeme

Guide DynDNS und Portforwarding

Konfiguration VLAN's. Konfiguration VLAN's IACBOX.COM. Version Deutsch

Um ein solches Dokument zu erzeugen, muss eine Serienbriefvorlage in Word erstellt werden, das auf die von BüroWARE erstellte Datei zugreift.

ITF2XML. Transferservice. Version 1.1. Tel.: 044 / Fax: 044 / CH-8005 Zürich

BSV Software Support Mobile Portal (SMP) Stand

EasyWk DAS Schwimmwettkampfprogramm

Kompatibilitätsmodus und UAC

Powermanager Server- Client- Installation

Schiller-Gymnasium Hof

Ursprung des Internets und WWW

Gefahren aus dem Internet 1 Grundwissen April 2010

Installation der SAS Foundation Software auf Windows

Installationsanleitung für CashPro im Mehrbenutzerzugriff/Netzwerkbetrieb

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt

php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick Parameterübergabe...

Publizieren von Webs mit SmartFTP

Update und Konfiguraton mit dem ANTLOG Konfigurations-Assistenten

LabView7Express Gerätesteuerung über LAN in einer Client-Serverkonfiguration. 1. Steuerung eines VI über LAN

Helmut Kleinschmidt. Pflicht ab

Einrichten eines Postfachs mit Outlook Express / Outlook bis Version 2000

MC-Hx 006. Einbindung des MC-Hx Modul als MODBus TCP Slave. MB DataTec GmbH. Stand:

Internet und WWW Übungen

Stammdaten Auftragserfassung Produktionsbearbeitung Bestellwesen Cloud Computing

Installation und Inbetriebnahme von SolidWorks

ITF2XML. Transferservice. Version 1.0. infogrips GmbH, Zürich client10.doc, Revision 1.1. Tel.: 01 / Fax: 01 /

Handbuch. timecard Connector Version: REINER SCT Kartengeräte GmbH & Co. KG Goethestr Furtwangen

Tutorial -

Lizenzen auschecken. Was ist zu tun?

Synchronisations- Assistent

ISi. ISi Technologie GmbH. MET -Schnittstelle zu Davis WeatherLink Version 5.7

Kleines Handbuch zur Fotogalerie der Pixel AG

2 Die Terminaldienste Prüfungsanforderungen von Microsoft: Lernziele:

Web Visu Tutorial. Hipecs Web Visu. Übersicht

pro4controlling - Whitepaper [DEU] Whitepaper zur CfMD-Lösung pro4controlling Seite 1 von 9

Client-Server mit Socket und API von Berkeley

Datenbank-basierte Webserver

Wo finde ich die Software? - Jedem ProLiant Server liegt eine Management CD bei. - Über die Internetseite

Lizenz-Server überwachen

OS IDE Webserver Integration des Webservers in die IDE Wireshark Webserver II Dynamisches Webprojekt in Eclipse

ObjectBridge Java Edition

Rechnernetzwerke. Rechnernetze sind Verbünde von einzelnen Computern, die Daten auf elektronischem Weg miteinander austauschen können.

Enterprise Applikation Integration und Service-orientierte Architekturen. 09 Simple Object Access Protocol (SOAP)

Anwendungsprotokolle: HTTP, POP, SMTP


Dieses Dokument soll dem Administrator helfen, die ENiQ-Software als Client auf dem Zielrechner zu installieren und zu konfigurieren.

Anleitung zum Extranet-Portal des BBZ Solothurn-Grenchen

OWASP Stammtisch München Sep 2014 XSS und andere Sicherheitslücken aus der Perspektive des Programmcodes

Installation des Zertifikats am Beispiel eines Exchang -Servers. Voraussetzungen. Zertifikate importieren. Outlook-Webaccess

How-to: Webserver NAT. Securepoint Security System Version 2007nx

Icinga Teil 2. Andreas Teuchert. 25. Juli 2014

HINWEISE ZUR ARBEIT IM LABOR

GEONET Anleitung für Web-Autoren

Artikel Schnittstelle über CSV

Adressen der BA Leipzig

Dieses Dokument beschreibt die Installation des Governikus Add-In for Microsoft Office (Governikus Add-In) auf Ihrem Arbeitsplatz.

Hinweise zum Update des KPP Auswahltools (Netzwerkinstallation) auf Version 7.2

1 Konfigurationsanleitung Hosted Exchange

Dokumentenkontrolle Matthias Wohlgemuth Telefon Erstellt am

Verschlüsselung

STARFACE SugarCRM Connector

FOPT 5: Eigenständige Client-Server-Anwendungen (Programmierung verteilter Anwendungen in Java 1)

Herzlich willkommen im Modul Web-Engineering

Folgende Voraussetzungen für die Konfiguration müssen erfüllt sein: - Ein Bootimage ab Version Optional einen DHCP Server.

Virtual Private Network. David Greber und Michael Wäger

START - SYSTEMSTEUERUNG - SYSTEM - REMOTE

Seminar DWMX DW Session 015

Folgende Einstellungen sind notwendig, damit die Kommunikation zwischen Server und Client funktioniert:

Workflow, Business Process Management, 4.Teil

Mail-Account Unimail mit der Einstellungen für Outlook Express 5.0

e-seal Gebrauchsanweisung für Novartis Mitarbeiter mit Microsoft Outlook e-seal_2_8_11_0154_umol

Installation Wawi SQL in Verbindung mit Microsoft SQL Server 2008 R2 Express with management Tools

Klicken Sie mit einem Doppelklick auf das Symbol Arbeitsplatz auf Ihrem Desktop. Es öffnet sich das folgende Fenster.

Flash, Network und Facebook. Steven Mohr

5. Programmierschnittstellen für XML

Einrichten des IIS für VDF WebApp. Einrichten des IIS (Internet Information Server) zur Verwendung von Visual DataFlex Web Applications

Lizenzierung von System Center 2012

Transkript:

1 Alaska Software Internet Technologien im Überblick Diese Session gibt einen Überblick über Internet-Technologien, die es erlauben mit Xbase++ geschäftskritische Anwendungen für das Internet zu erstellen. Wolfgang Müller

Inhalt Alaska Software Internet Technologien im Überblick von Wolfgang Müller 1 Einleitung...e... 1 2 Grundlagen von Internet Anwendungen... 2 3 Anwendungen benutzen das World-Wide-Web... 5 4 Alaska Software Application Server Technologie... 9 5 Active Xbase++ Pages (AXP)... 10 6 HTML Reflection Framework (HRF)... 12 7 Remote Data Parts (RDP)... 13 8 APPENDIX...e... 14

Wolfgang Müller 1 1 1 Einleitung Das Internet feierte im Oktober diesen Jahres seinen dreißigsten Geburtstag. Genau am 20. Oktober 1969 ging das erste PING zwischen einem Rechner an der University of California Los Angeles (UCLA) und dem Stanford Research Institute über das Kabel. Damit war die erste Kommunikationsstrecke des Arpanet in Betrieb, dem Vorläufer des heutigen Internet. Zum Massenmedium entwickelte sich das Internet aber erst nachdem 1990 am Genfer CERN mit dem Hypertext-Transfer-Protocol (HTTP) und der Hypertext-Markup-Language (HTML) die Grundlagen für das World-Wide-Web (WWW) geschaffen wurden. Fortan stieg die Zahl der WWW-Server und damit die Zahl der abrufbaren Seiten sowie die Anzahl der Nutzer die HTML Seiten mit ihren Browsern betrachten, Jahr für Jahr mit enormen Zuwachsraten. Unternehmen bieten ihren Kunden immer mehr Dienstleistungen direkt über das Internet an und Wirtschaftsforscher rechnen mit einer stetig steigenden Zahl von geschäftlichen Transaktionen (ecommerce) in den nächsten Jahren. Hierfür wird leitungsfähige Software gebraucht, die nachfolgende Voraussetzungen erfüllen muss, um Anwendungen zum Erfolg zu verhelfen: Schnelligkeit in der Interaktion mit dem Benutzer Zuverlässigkeit Skalierbarkeit Transaktionssicherheit Im Folgenden wird dargestellt, wie Anwendungen das Internet nutzen können, welche Grundlagen dafür unabdingbar sind und welche Technologien Alaska Software bereitstellt um leistungsfähige Internet Anwendungen zu entwickeln.

Alaska Software Internet Technologien im Überblick 2 Grundlagen von Internet Anwendungen 2.1 TCP/IP (Transmission Control Protocol / Internet Protocol) IP dient zum Versenden einzelner Datagramme (IP Pakete). Datagramme enthalten neben den Nutzinformationen u.a. auch Absende- und Empfangsadresse der entsprechenden Hardware, wobei als Empfänger auch eine Gruppe von Adressaten angegeben werden kann (Broadcast). IP sorgt dann dafür, dass die Pakete durch das komplizierte Netzwerk transportiert werden und beim Empfänger ankommen (Routing). TCP, das Transmission Control Program trägt dafür Sorge, dass IP Pakete in der richtigen Reihenfolge beim Empfänger ankommen, dass der Absender eine Quittung für erfolgreich gesendete Pakete erhält und dass im Fehlerfall Pakete erneut übertragen werden. Das Protokoll stellt einen verbindungsorientierten, zuverlässigen Kanal zur Übertragung von Daten bereit. 2.2 HTTP (Hypertext Transfer Protocol) Das Hypertext Transfer Protocol dient vorallem zur Übertragung vom HTML Seiten. Es bildet somit die Grundlage für das World Wide Web. Das Protokoll legt fest, wie ein HTTP-Client (Browser) mit einem HTTP-Server (Web-Server) kommuniziert. Auf eine Request-Nachricht vom Client antwortet der Server mit einer entsprechenden Response Meldung. Beispielsweise antwortet der HTTP Server auf folgenden HTTP-Get-Request, "GET /index.html" indem er die HTML Seite "/index.html" zum Client übertragt. Client und Server nutzen für ihre Kommunikation TCP/IP. 2.3 HTML (Hypertext Markup Language) HTML ist eine Dokumentauszeichnungs-Sprache, welche die Funktion und das Aussehen von Elementen eines Dokuments beschreibt. Für die grosse Verbreitung von HTML sorgte vorallem die Rechner- und Plattformunabhängigkeit der Sprache. HTML-Dokumente sind meist als reine ASCII-Text-Dateien mit entsprechenden Auszeichnungs-Befehlen, den Tags, versehen abgelegt. Damit der Text in seiner definierten Form betrachtet werden kann, benötigt der Anwender einen World Wide Web Browser. Der Browser interpretiert die Tags und setzt den damit versehenden Text in ein entsprechend gestaltetes Dokument um. Die herausragende Fähigkeit von HTML liegt in seiner Hypertext - Fähigkeit. Damit ist es möglich innerhalb eines HTML- Dokuments über Links zu einer anderen Stelle im Dokument zu verzweigen oder zu einem Dokument an einem ganz anderen Ort.

Wolfgang Müller 1 3 2.4 CGI, Apache Modules, NSAPI, ISAPI, etc. Statisch abgelegte und vom Web-Server verschickte HTML Seiten lassen nur wenig Interaktion mit dem Benutzer zu. Lediglich das Anfordern einer weiteren Seite über einen entsprechenden Link ist möglich. Mit Techniken wie CGI (Common Gateway Interface) ist es möglich, dynamisch HTML Seiten zu erzeugen, sodass eine weitergehende Interaktion mit dem Benutzer möglich ist. Über das FORM Tag von HTML wird ein CGI Script angesprochen: <FORM ACTION="/cgi-bin/waa1gate.exe" METHOD=post> <INPUT TYPE=hidden NAME="WAA_PACKAGE" VALUE="alaska1"> <INPUT TYPE=hidden NAME="WAA_FORM" VALUE="dbedit"> <INPUT TYPE=hidden NAME="WAA_OPTIONS" VALUE="RO,CUST_ID,COMPANY"> <INPUT TYPE=hidden NAME="WAA_USE"VALUE="customer.dbf"> Read-only Edit view: <INPUT TYPE=submit VALUE="Go Get It"> </FORM> Drückt der Benutzer den SUBMIT Button (<INPUT TYPE=submit...>) startet der Web-Server das Programm waa1gate.exe in seinem (meist virtuellen) Verzeichnis /cgi-bin. Dieses Programm nimmt über Environment Variablen die Werte der CGI-Variablen (hier im Beispiel: WAA_PACKAGE, WAA_FORM, WAA_OPTIONS und WAA_USE) entgegen und liefert eine komplette HTML Seite über den Standard-Ausgabe-Kanal an den Web-Server zurück. Der Web-Server schickt diese Seite dann weiter an den Web-Browser des Benutzers. Apache Modules, NSAPI und ISAPI Extensions arbeiten auf ähnliche Weise. Der Web-Server führt beim Aufruf jedoch keine externen Programme aus, sondern ruft Funktionen in dynamisch ladbaren DLLs aus. 2.5 Scripting beim Web-Client CGI Programme werden stets auf dem Web-Server ausgeführt, dementsprechend können z.b. Validierungen der Benutzereingabe auch nur auf dem Server durchgeführt werden. Gibt der Benutzer beispielsweise ein ungültiges Datum in einer CGI Eingabemaske an, muss zuerst eine komplette HTML Seite erzeugt werden, die den Benutzer darauf hinweist, dass die Eingabe nicht korrekt war. Mit Techniken wie JavaScript kann der Benutzer bereits bei der Eingabe auf ein fehlerhaftes Datum hingewiesen werden. Mit Hilfe von Client-seitigem Scripting können nicht nur Eingabemasken überprüft werden, sondern es kann ebenso direkt das Erscheinungsbild einer HTML Seite im Browser verändert werden (DHTML).

Alaska Software Internet Technologien im Überblick 2.6 Scripting beim Web-Server HTML Seiten müssen häufig dynamisch, d.h. in Abhängigkeit von Benutzereingaben, vom Web- Server erzeugt werden. Mit Techniken wie CGI ist dies durchaus möglich, jedoch muss für jede Abfrage einer Seite auch ein entsprechendes CGI Script und ein Stück HTML Code, mit dem dieses Script aufgerufen werden kann, vorhanden sein. Die Implementation einer solchen Lösung erfordert einen entsprechend hohen Aufwand. Technologien wie PHP, ASP oder AXP reduzieren den Aufwand zur Erstellung dynamischer Web-Seiten erheblich. Dabei arbeiten diese Werkzeuge wie HTML Prä-Prozessoren. Stellt der Web-Server fest, dass eine angeforderte Seite einen Dateinamen mit einer bestimmen Extension (".php3", ".asp", ".axp", etc.) besitzt, wird der dafür registrierte Prozessor aufgerufen, der die speziellen Konstrukte in der HTML-Seite übersetzt. Dieser in HTML übersetzte Code wird zusammen mit dem Rest der Seite an den Web-Client geschickt. <p> Kundenliste: <% USE Customer %> <% DO WHILE!EOF() %> <br> <%? FIELD->name %> <% SKIP 1 %> <% ENDDO %>

Wolfgang Müller 1 5 3 Anwendungen benutzen das World-Wide-Web Internet bzw. World-Wide-Web Anwendungen sind idealerweise immer als Client / Server Systeme aufgebaut. Für das User-Interface (Client) wird in der Regel ein Web-Browser verwand, der über TCP/IP und HTTP auf den Server zugreift. Der Server besteht üblicherweise aus zwei Komponenten. Einer Komponente, die als HTTP-Server die Kommunikation mit dem Client bewerkstelligt und einer Komponente, die als Applikations-Server die gesamte Logik der Anwendung und die Datenbankanbindung enthält. 3.1 Anwendung als CGI-Script Abbildung 1:Anwendung als CGI-Script Die gesamte Anwendungslogik ist hier in einem Programm untergebracht, dass vom Web-Sever aus aufgerufen wird. Das CGI-Script erhält seine Eingabe-Parameter über Umgebungsvariablen vom Web-Server. Die vom CGI-Script erzeugte Ausgabe wird über den Standard-Ausgabe- Kanal an den Web-Server zurückgeschickt, der die Ausgabe an den Client weiterleitet. Das CGI-Script wird immer auf dem Rechner ausgeführt, auf dem auch der Web-Server läuft. Für jeden Client muss vom Web-Server ein neues Programm gestartet und ausgeführt werden. Das führt, vorallem auf Windows-Plattformen, schnell dazu, dass die Hardware zu 100% ausgelastet ist, wenn viele Nutzer gleichzeitig von der Anwendung Gebrauch machen. Für jede neue Anwendung muss ein neues CGI-Script implementiert werden.

Alaska Software Internet Technologien im Überblick 3.2 Anwendung als spezialisierter Application Server Abbildung 2: Anwendung als spezialisierter Application Server Die Anwendung läuft in diesem Fall als dedizierter Server, der über TCP/IP und Remote- Procedure-Calls (RPC) mit dem Web-Server kommuniziert. Der Application Server kann sowohl auf dem Rechner auf dem auch der Web-Server läuft installiert werden, als auch auf einem anderen Rechner innerhalb des Netzwerks. Durch die "physische" Trennung ergeben sich viele Vorteile: z.b. wird die Verfügbarkeit von Web-Server und App.-Server erhöht, weil beide unabhängig voneinander arbeiten können. Ebenso steht der Application Server für die Nutzung von mehreren Web-Servern zur Verfügung. Ein leistungsfähiger Application Server muss neben der Anwendungslogik, die Kommunikation über RPCs, die Datenbankanbindung und effizientes Multithreading für das Abarbeiten von möglichst vielen Transaktionen gleichzeitig zu ermöglichen. Für jede neue Anwendung muss ein neuer Application Server implementiert werden, der ebenfalls wieder alle oben genannten Schnittstellen enthalten muss.

Wolfgang Müller 1 7 3.3 Anwendung als Application Server Package Abbildung 3 :Anwendung als Package in einem generischen Application Server Statt in jedem Application Server immer die gleichen Standardfunktionalitäten einzubauen, wird in diesem Modell ein generischer Applikation-Server als zentrale Instanz für die Kommunikation mit dem bzw. den Clients verwendet. Die Anwendungslogik ist in sogenannten Packages (einer dynamisch ladbaren DLL) enthalten. Diese Packages können zur Laufzeit vom Application Server geladen und entladen werden. Der Web-Application-Adaptor (WAA) von Alaska Software ist ebenfalls ein generischer Application Server. Er besteht im wesentlichen aus zwei Komponenten: Dem Requester, der ankommende Aufträge entgegennimmt und diese in einer Job-Warteschlange ablegt. Und dem Scheduler, der die Aufträge in der Job-Warteschlange an den zur Verfügung stehenden Pool von sogenannten Worker-Threads verteilt. Diese Worker-Threads wiederum führen den Code der Web-Applikation der in den Packages enthalten ist aus. 3.4 Anforderungen an die ideale Application Server Plattform effizientes Multithreading Um schnelle Reaktionszeiten und ein zeitlich definiertes Verhalten der Anwendung gewährleisten zu können. Persistenz von Datentypen Zum Austausch von Daten, z.b. über RPC müssen Daten (Array, Codeblöcke, Objekte, etc.) serialisierbar sein.

Alaska Software Internet Technologien im Überblick Ausführung von dynamischen bzw. aktiven Inhalten Um auf Benutzeranfragen flexibel reagieren zu können. leistungsfähige Datenbank Die Datenbank soll schnell und mit wenig Workload möglichst viele Transaktionen abwickeln. Dabei sollte die Schnittstelle unabhängig von der gewählten Datenbank sein, sodass ein Austausch der Datenbank möglich ist. Xbase++ bietet für diese Anforderungen optimale Unterstützung. Multithreading wird durch die Klasse Thread effektiv und mit wenig Aufwand unterstützt. Alle Datentypen der Sprache einschliesslich Arrays, Codeblöcken und Objekten können abgespeichert und wieder geladen werden. Somit können sie einfach z.b. als Parameter in Remote- Procedure-Calls verwendet werden. Durch die dynamische Evaluierung von Macros und Codeblöcken sowie die Active Xbase Pages (AXP) können aktive Inhalte zur Laufzeit ausgeführt werden. Mit Xbase++ werden leistungsfähige und zur Laufzeit auswechselbare Datenbankmaschinen geliefert, die tranparenten Zugang zu verschiedenen Datenbank-Architekturen erlauben. SQL vs. INDEX Das Internet und die damit verbundenen Anwendungen führen in letzter Zeit zu einer Renaissance von index-sequentiellen Datenbanken. Ein Grund hierfür könnte der wesentlich höhere Workload sein, den eine SQL Abfrage im Gegensatz zu einer Abfrage an eine satz-orientierte Datenbank auf dem Datenbank-Server erzeugt. D.h. um eine gleichgroße Anzahl an Anfragen zu beantworten muss die Hardware für eine SQL-Datenbank um ein mehrfaches leistungsfähiger sein. Appendix A, enhält Tabellen aus "The Benchmark Handbook for Database and Transaction Processing Systems" die diese Aussage bestätigen.

Wolfgang Müller 1 9 4 Alaska Software Application Server Technologie Der Web-Application-Adaptor von Alaska Software ist eine erste Implementierung eines generischen Application Servers. Er bietet bereits alle wesentlichen Merkmale die ein Entwickler benötigt um möglichst einfach Web-Applikationen z.b. für ecommerce zu erstellen. Der Entwickler kann sich dabei voll auf die Implementierung seiner Anwendung konzentrieren, denn alle Aufgaben z.b. für die Kommunikation mit dem Web-Server, oder der gleichzeitige Zugriff von mehreren Benutzern werden zentral vom Application Server gehandhabt. Dabei spielt es keine Rolle ob die Anwendung, standalone auf einem Rechner, im firmeninternen Intranet, oder weltweilt über das Internet verteilt ist. Die neue Version 1.3 des WAA erlaubt Session-Management, Datei-Upload sowie das verschicken von Emails. Diese Version ist weiterhin kostenlos erhältlich. Die nachfolgend aufgeführten Leistungsmerkmale sind in der Produkt-Version des Application- Servers enthalten. Dadurch wird die Implementierung von Internet-Anwendungen noch einfacher und zugleich leistungsfähiger. Integration aller wichtigen Internet-Protokolle HTTP und SMTP (simple mail transfer protocol) sind bereits enthalten; hinzukommen POP (post office protocol) und FTP (file transfer protocol) Unterstützung für AXP und RemoteDataParts Siehe Abschnitte 5 und 7. Verschlüsselung Unterstützung von SSL (secure socket layer); in folgenden Versionen auch SET (secure electronic transaction) Clustering von Servern automatisches Load-Balancing zur gleichmässigen Verteilung von Aufträgen unter mehreren Internet Application Servern; Spiegelung von Application Servern, sodass bei Ausfall eines Servers ein anderer Server die Aufgaben übernehmen kann

Alaska Software Internet Technologien im Überblick 5 Active Xbase++ Pages (AXP) Alaska Software bietet mit AXP eine komfortabele Scripting-Engine für Xbase++. Mit Hilfe von AXP lassen sich schnell und leicht Web-Applikationen zusammenbauen, die auf der Xbase++ Sprache basieren. AXP Code wird in einer HTML Seite zwischen <% und %> Tags eingebettet. Die Verarbeitung geschieht auf dem Web-Server. Die AXP Scripting-Engine erhält vom Web- Server eine Active Xbase++ Page, führt den darin enthaltenen Code aus und liefert eine HTML Seite zurück. Hier ein Beispiel: <html> <head> <title>active Xbase++ Pages</title> </head> <body> <p> Kundenliste: </p><hr> <table border="1" width="100%"> <tr> <td width="20%" bgcolor="#cccccc"> CUST_ID </td> <td width="40%" bgcolor="#cccccc"> COMPANY </td> <td width="40%" bgcolor="#cccccc"> CONTACT </td> </tr> <% USE customer // Datenbank öffnen DO WHILE!Eof() // für jeden Record eine HTML-Tabellen-Zeile erzeugen %> <tr> <td width="20%"><%? customer->cust_id%></td> <td width="40%"><%? customer->company%></td> <td width="40%"><%? customer->contact%></td> </tr> <% SKIP 1 ENDDO USE %> </table> </body> </html>

Wolfgang Müller 1 11 Die AXP Sprache umfasst den gesamten Umfang von Xbase++, bis auf wenige Ausnahmen wie BEGIN SEQUENCE, RECOVER, etc. oder @ x, y SAY... GET. AXP bietet sowohl die Möglichkeit individuelle Fehlermeldungsseiten zu erzeugen, wie auch vorgefertigte Fehlerseiten zu verschicken. Mit der Funktion CreateObject() können ausserdem Objekte erzeugt werden. Damit ist der Zugriff auf alle Klassen der Xbase++ Laufzeitbibliothek ebenso möglich, wie das Erzeugen von sogenannten Proxy-Objekten. Diese Objekte dienen zur Verbindung mit Objekten die ausserhalb des Prozessraumes der Scripting Engine liegen. Dadurch kann mit AXP auf Anwendungen die unter der Hoheit des Application Servers laufen zuzugriffen werden. AXP ist plattformunabhängig. Neben einer Version für den Windows Scripting Host (WSH) ist für LINUX und OS/2 ebenfalls eine Version erhältlich. Die Scripting Engine steht ebenfalls als Apache Module und als NSAPI (Netscape) Extension zur Verfügung.

Alaska Software Internet Technologien im Überblick 6 HTML Reflection Framework (HRF) Das HTML Reflection Framework besteht im wesentlichen aus einer Reihe von Xbase++ Klassen, die es ermöglichen, eine komplette HTML Seite als Menge von Xbase++ Objekten abzubilden. Der Programmierer kann damit HTML Dokumente einlesen oder auch erzeugen, durch HTML Dokumente navigieren, HTML-Elemente und Inhalt hinzufügen, löschen oder ändern. Mit dem HRF liefert Alaska Software das erste Language-Binding der Xbase Sprachfamilie für das Document Object Model (DOM) des W3C. // // Titel der HTML-Seite 'chtmlfilename' auf 'cnewtitle' setzen // und 'alten' Titel zurückgeben // FUNCTION ChangeDocumentTitle(cHTMLFileName, cnewtitle) LOCAL ohtml := HTMLDocument():new() LOCAL coldtitle ohtml:open(chtmlfilename) coldtitle := ohtml:gettitle() ohtml:settitle(cnewtitle) ohtml:close() RETURN coldtitle Zusätzlich enthält das HRF Klassen und Methoden, die es sehr einfach erlauben bereits auf der Client-Seite Eingabevalidierungen oder Plausibilitätsprüfungen vorzunehmen, ohne das hierfür Kenntnisse in JavaScript o.ä. notwendig sind. Durch weitere Methoden lassen sich z.b. Tabellen mit den entsprechenden Remote Data Parts (siehe nächster Abschnitt) verbinden.

Wolfgang Müller 1 13 7 Remote Data Parts (RDP) Mit den Remote Data Parts von Alaska Software wird es erstmals möglich, mit Objekten über Prozessgrenzen hinaus zu arbeiten. Eine Anwendung kann Nachrichten an Objekte einer anderen Anwendung schicken. Diese Anwendung kann auf einem beliebigen Rechner im Netzwerk laufen. Möglich wird dies durch sogenannte Proxy-Objekte, die als lokaler Stub dafür sorgen das eine Kommunikation mit dem Original Objekt z.b. einer Datenbank-Tabelle auf einem anderen Rechner im Netzwerk stattfinden kann. In der ersten Version stehen die Klassen PagedDataStore und TransactDataStore zur Verfügung. PagedDataStore wird bereits seit längerer Zeit von Alaska Software intern als Datenquelle für den XbpQuickBrowse benutzt. Diese Klasse dient dazu um möglichst schnell und effizient auf Daten in tabellarischer Form (z.b. aus einer Datenbank) zugreifen zu können. Anstatt die Datensätze zeilenweise anzusprechen, wird der Zugriff durch das PagedDataStore Objekt dadurch optimiert, dass jeweils eine ganze Seite (z.b. alle Datensätze im sichtbaren Bereich) in einem Cache gehalten wird. Während die Klasse PagedDataStore einen möglichst schnellen und effizienten Zugriff auf eine Menge von Datensätzen ermöglicht, kann mit der Klasse TransactDataStore der Zugriff auf Satzebene durchgeführt werden. Mit den Methoden insert(), update() und delete(), können Datensätze hinzugefügt, geändert oder gelöscht werden. Die Remote Data Parts sind nicht nur in Xbase++ verfügbar, sondern werden auch als Java/JavaScript Klassen von Alaska Software geliefert. Somit ist eine direkte Anbindung eines Web-Browsers (mit einer Java Virtual Machine) an eine Xbase++ Anwendung möglich. Über Java Proxy-Objekte kann von einem anderen Rechnern aus auf die Applikation zugegriffen werden. Beispielsweise kann ein Java-Applett benutzt werden, um eine Datenbank-Tabelle einer Xbase++ Anwendung in einem Web-Browser darzustellen. Durch die Nutzung von Java und JavaScript ist es möglich eine HTML Seite direkt im Browser zu manipulieren. Die Remote Data Parts nutzen diese DHTML Fähigkeit und sind deshalb in der Lage Tabelleninhalte dynamisch im Browser zu verändern, ohne das für jede Navigation eine neue HTML Seite übertragen werden muss. Die nächsten Versionen der RDP werden weitere Klassen z.b. für das Session-Management enthalten. Ebenso ist geplant die remote access Klassen auch als C++ und Delphi Klassen auszuliefern, sodass Frontends für den Internet Application Server auch in anderen Sprachen entwickelt werden können. Da Alaska Software in der ersten Version die Java-Klassen remotepageddatastore und remotetransactdatastore mit ausliefert besteht für den Programmierer keine Notwendigkeit sich in die Sprache Java einzuarbeiten. Die Einbindung der Remote Data Parts erfolgt am einfachsten, über entsprechende Methodenaufrufe der Klassen aus dem HTML Reflection Framework. Diese sorgen dafür, dass der entsprechende Code in die fertige HTML Seite gelangt.

Alaska Software Internet Technologien im Überblick 8 APPENDIX 8.1 Appendix A Folgende Tabellen sind dem Buch "The Benchmark Handbook for Database and Transaction Processing Systems" von Jim Gray entnommen. Dieses Buch ist erschienen bei Morgan Kaufmann Publishers, Inc. Table 7.5: Cold local database (benchmark elapsed times in seconds) (page 422) Measure Size INDEX OODBMS RDBMS Lookup small 5.4 12.9 27 large 24 32 44 Traversal small 13 9.8 90 large 32 37 124 Insert small 7.4 1.5 22 large 15 3.6 28 Total small 26 24 139 Large 71 73 196

Wolfgang Müller 1 15 Table 7.3: Large remote database (benchmark elapsed times in seconds) (page 420) Measure Cache INDEX OODBMS RDBMS Lookup cold 47 49 212 warm 18 43 24 Traversal cold 56 68 135 warm 41 59 107 Insert cold 20 10 24 warm 18 7.5 24 Total cold 123 127 208 Total warm 77 110 155

Alaska Software Internet Technologien im Überblick 8.2 Appendix B Die aktuelle Version dieses Dokuments sowie zahlreiche Code-Beispiele sind in der FileLibrary unter www.alaska-software.com verfügbar. Über den Autor Nach Abschluß seines Studiums als Diplom-Informatiker (FH) trat Wolfgang Müller 1993 in die Dienste der Alaska Software GmbH ein. Seither ist Wolfgang Müller dort verantwortlich für Xbase ++ Compiler und Linker sowie für alle Technologien, die Xbase ++ mit dem Internet verbinden. Zu erreichen ist er unter: wmueller@de.alaska-software.com