Diplomarbeit ISBN: 978-3-8366-0309-6
Benjamin Hauser
Erstellen von dynamischen Websites Einsatz von Webservern & Datenbanken unter Windows CE
Diplom.de
Benjamin Hauser Erstellen von dynamischen Websites Einsatz von Webservern & Datenbanken unter Windows CE ISBN: 978-3-8366-0309-6 Druck Diplomica® Verlag GmbH, Hamburg, 2007 Zugl. Berufsakademie Villingen-Schwenningen, Villingen-Schwenningen, Deutschland, Diplomarbeit, 2006
Dieses Werk ist urheberrechtlich geschützt. Die dadurch begründeten Rechte, insbesondere die der Übersetzung, des Nachdrucks, des Vortrags, der Entnahme von Abbildungen und Tabellen, der Funksendung, der Mikroverfilmung oder der Vervielfältigung auf anderen Wegen und der Speicherung in Datenverarbeitungsanlagen, bleiben, auch bei nur auszugsweiser Verwertung, vorbehalten. Eine Vervielfältigung dieses Werkes oder von Teilen dieses Werkes ist auch im Einzelfall nur in den Grenzen der gesetzlichen Bestimmungen des Urheberrechtsgesetzes der Bundesrepublik Deutschland in der jeweils geltenden Fassung zulässig. Sie ist grundsätzlich vergütungspflichtig. Zuwiderhandlungen unterliegen den Strafbestimmungen des Urheberrechtes. Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. in diesem Werk berechtigt auch ohne besondere Kennzeichnung nicht zu der Annahme, dass solche Namen im Sinne der Warenzeichen- und Markenschutz-Gesetzgebung als frei zu betrachten wären und daher von jedermann benutzt werden dürften. Die Informationen in diesem Werk wurden mit Sorgfalt erarbeitet. Dennoch können Fehler nicht vollständig ausgeschlossen werden, und die Diplomarbeiten Agentur, die Autoren oder Übersetzer übernehmen keine juristische Verantwortung oder irgendeine Haftung für evtl. verbliebene fehlerhafte Angaben und deren Folgen. © Diplomica Verlag GmbH http://www.diplom.de, Hamburg 2007 Printed in Germany
Inhaltsverzeichnis
BIZERBA
Inhaltsverzeichnis 1.
Einleitung ................................................................................................. 1
1.1
Das Unternehmen Bizerba GmbH & Co. KG ....................................................... 1
1.2
Das Projekt „Contents“......................................................................................... 3
1.2.1
Überblick........................................................................................................... 3
1.2.2
Aktueller Stand ................................................................................................. 4
1.3
Zielsetzung und Aufbau der Diplomarbeit............................................................ 4
2.
Dynamische Websites ............................................................................. 5
2.1
Begriffserläuterungen........................................................................................... 5
2.2
Vorteile dynamischer Websites............................................................................ 5
2.3
Voraussetzungen ................................................................................................. 6
2.3.1
Informationsquellen .......................................................................................... 6
2.3.2
Webserver ........................................................................................................ 7
2.3.3
Server-Side Scripting........................................................................................ 8
2.4
ASP als Technologie............................................................................................ 8
2.4.1
Einführung ........................................................................................................ 8
2.4.2
Aufbau eines ASP-Scriptes .............................................................................. 9
2.5
Alternativen zu ASP ........................................................................................... 13
2.5.1
ISAPI-Programmierung................................................................................... 13
2.5.2
Java Applets ................................................................................................... 15
3.
Windows CE ........................................................................................... 17
3.1
Einführung.......................................................................................................... 17
3.2
Webserver unter Windows CE........................................................................... 18
3.2.1
IIS (Internet Information Server) ..................................................................... 18
3.2.2
GoAhead Webserver ...................................................................................... 19
3.2.3
Verwendbarkeit – Ergebnis............................................................................. 19
3.3
Datenbanken unter Windows CE....................................................................... 20
3.3.1
Grundlegendes ............................................................................................... 20
3.3.2
Pocket Access ................................................................................................ 20 I
Inhaltsverzeichnis
BIZERBA
3.3.3
Sybase SQL Anywhere................................................................................... 21
3.3.4
IBM DB2 Everyplace....................................................................................... 22
3.3.5
Oracle Database Lite ...................................................................................... 22
3.3.6
Firebird 1.5 eMbedded Win32-Version ........................................................... 23
3.3.7
Microsoft SQL Server 2000 Windows CE Edition ........................................... 24
4.
Entwicklungsvorschlag......................................................................... 27
4.1
Übersicht über die benötigten Komponenten..................................................... 27
4.2
Anzeige bzw. Präsentationsschicht ................................................................... 28
4.3
Webserver.......................................................................................................... 30
4.3.1
Grundlegendes ............................................................................................... 30
4.3.2
Eigenentwicklung............................................................................................ 30
4.3.3
Alternativen..................................................................................................... 31
4.4
Content Datenbank ............................................................................................ 32
4.5
Verwaltungstool ................................................................................................. 33
4.5.1
Integration in die vorhandenen Tastaturlayouts.............................................. 33
4.5.2
Gestalten der dynamischen Layouts .............................................................. 34
4.5.3
Verwalten der Datenbank ............................................................................... 35
5.
Datenbankentwurf.................................................................................. 37
5.1
Definitionen ........................................................................................................ 37
5.2
Vorüberlegung und Datenanalyse ..................................................................... 38
5.3
Das Entitätsbeziehungsmodell........................................................................... 40
5.4
Relationales Datenbankmodell .......................................................................... 40
6.
Schlussbemerkung................................................................................ 45
II
Erstellung von dynamischen Websites
1.
BIZERBA
Einleitung
1.1 Das Unternehmen Bizerba GmbH & Co. KG
Abbildung 1: Zentralverwaltung der Bizerba GmbH & Co. KG Bizerba ist ein weltweit operierendes, in weiten Bereichen marktführendes Technologieunternehmen für professionelle Systemlösungen auf dem Feld der Wäge-, Informations-, Kommunikations- und Food-Servicetechnik.
Seit 1866 bestimmt Bizerba den technologischen Wandel durch Innovation und Serviceführerschaft maßgeblich mit. Die ständige Bereitschaft zur Veränderung war ein wesentlicher Erfolgsfaktor auf dem Weg zum globalen Hightech- und Software-Hersteller.
Das Lieferantenprogramm für Handel und Handwerk umfasst Elektronik-Ladenwaagen und Systemkassen einschließlich Kommunikationssoftware, Warenwirtschaftssysteme, Etikettendrucker, Preisauszeichner sowie Schneide-, Fleischbearbeitungs- und Verpackungsmaschinen. Als kompetenter Partner der Fleischwirtschaft bietet Bizerba ein Komplettsortiment von effizienten Food-Service-Maschinen. Das Angebot für die produzierende und verarbeitende Industrie besteht aus Warenkennzeichnungs- und Preisauszeichnungssystemen, Checkweigher, Logistik- und Versandsystemen, Industriewäge- und Datentechnik sowie Lastaufnehmer mit elektronischen Auswerteterminals. Hinzu kommen aus eigener spezialisierter Produktion für alle druckenden Systeme Thermo- und Linerless-Bonrollen, Neutral- und Schmucketiketten, Thermotransferbänder und Verpackungsfolien.
1
Erstellung von dynamischen Websites
BIZERBA
Mit knapp 2.600 Mitarbeitern, die mittelbar oder direkt im Dienst am Kunden stehen, 18 eigenen Landesgesellschaften und 67 Ländervertretungen weltweit setzte die Bizerba GmbH & Co. KG 2004 im Konzern rund 343 Mio. EUR um. Der Exportanteil beläuft sich auf 55,6 %, die F&E Investitionen auf 5,8 %. Der Hauptsitz des Unternehmens befindet sich in Balingen. Sitz der Fertigungsstätte für Food-Service-Maschinen ist in Messkirch und die Papier- und Etiketten-Produktion befindet sich in Bochum. Anhaltende Kundenzufriedenheit bedingt neben kontinuierlicher Produktinnovation und höchsten Qualitätsstandards auch optimale Vertriebs- und Service-Strukturen. Die Präsenz und das Leistungspaket in diesem Bereich stellt aus Kundensicht ein maßgebliches Unterscheidungsmerkmal dar und besitzt bei Bizerba seit jeher hohe strategische Bedeutung im umfassenden Leistungsspektrum. Deshalb unterhält Bizerba in Deutschland sechs sogenannte BVC’s (Bizerba Vertriebs- und Service-Center) mit insgesamt 39 Außenstellen.
Die Bizerba Leasing GmbH (BLG) ist eine 100%ige Tochter von Bizerba im Bereich der Finanzdienstleistung. Sie finanziert sowohl Produkte aus dem Bizerba-Lieferprogramm als auch Produkte anderer Firmen, wie z.B. Fahrzeuge, Kommunikationssysteme oder EDV-Anlagen Es wird sowohl Leasing (Voll- oder Teilamortisation) als auch Mietkauf oder Teilzahlung angeboten.
Auch die Bizerba Geschenke-Fabrikations- und Handels- GmbH (Bigefa) ist eine Tochtergesellschaft der Bizerba GmbH & Co.KG, die unter besonderer Überwachung alleine von Auszubildenden geführt wird. Diese können sich somit an einem besonders überschaubaren und dennoch praxisorientierten Beispiel sämtliche Prozesse innerhalb eines Unternehmens verdeutlichen.
Die Bizerba Automotive GmbH (BAG) ist ebenfalls eine Tochtergesellschaft von Bizerba. Sie entwickelt Sensoren für die Autoindustrie, die durch Gewichtskontrolle in naher Zukunft beispielsweise dafür sorgen sollen, dass bei einem Verkehrsunfall der Airbag des lediglich mit einem Kindersitz besetzen Beifahrersitzes nicht voll aktiviert wird. Damit wird gewährleistet, dass ein Airbag keine schädigende Wirkung hat. 2
BIZERBA
Erstellung von dynamischen Websites
1.2 Das Projekt „Contents“ 1.2.1
Überblick
Seit Anfang 2006 beinhaltet das Produkt-Sortiment von Bizerba eine völlig neuartige Generation von Waagen. Es handelt sich hierbei um die Class E-World-Waage CE-H 800 S1. Diese ermöglicht es dem Verkäufer über einen Touchscreen die Waage zu bedienen. Die Innovation dabei ist, dem Personal nicht nur einen einfachen Abverkauf zu ermöglichen, sondern die Waage mit einem Mehrwert auszuliefern, den sogenannten Contents. Über ein völlig neu gestaltetes Konzept wird dem Verkäufer in gewisser Art und Weise eine Verkaufsunterstützung angeboten. Zu jedem Artikel, den der Kunde von Bizerba in seinem Sortiment hat und der über eine Bizerba Waage ausgezeichnet bzw. abgerechnet wird, werden von Bizerba Informationen wie z.B. Rezepte, Produktbeschreibungen oder ergänzende Kaufempfehlungen geliefert. Durch Anwählen des Artikels über die Artikelnummer (bzw. PLU-Nummer) erscheinen die zusätzlichen Informationen direkt auf dem Display des Verkäufers oder sogar für den Endkunden sichtbar auf einem zweiten Display. Mögliche Contents sind: Verkaufsorientiert
Unternehmensorientiert
Warenkunde, Produktzusatzinforma- Unternehmensinformationen, tionen, Verbundartikel, Werbung, …
Hygiene-
vorschriften, Mitarbeiterinformationen,…
Diese Inhalte stehen zum einen dem Bedienpersonal als Verkaufsunterstützung zur Verfügung, es besteht aber auch die Möglichkeit, die Informationen auszudrucken und dem Kunden ein Rezept oder eine Liste mit Verbundartikeln mitzugeben. Beispielsweise werden dem Kunden genau die Artikel aus dem Sortiment des Verkäufers ausgedruckt, die er noch zusätzlich im Markt kaufen könnte.
1
Siehe Abbildung 7: Bizerba CE-H 800 S
3
Erstellung von dynamischen Websites
BIZERBA
Durch diesen neuartigen Mehrwert der Waage erhofft sich Bizerba eine Steigerung von Umsatz, Ertrag und Information. 1.2.2
Aktueller Stand
Zurzeit wird bei Bizerba intensiv daran gearbeitet die „Contents“ für die neu ausgelieferten Produkte aufzubauen. Dabei müssen jedoch die verschiedensten Aspekte berücksichtigt werden – wie z.B. in rechtlicher Hinsicht der Urheberrechtsschutz von Daten, Abbildungen und Bildern allgemein. Derzeit steht jedoch die Verwaltung der neu gewonnenen Informationen im Fokus. Das Warenwirtschaftssystem WinCWS2 von Bizerba ist nicht in der Lage, diese zusätzlichen Informationen gesammelt aufzunehmen und den entsprechenden Artikeln zuzuordnen. Eine Erweiterung dieses Programms ist aus technischen Gründen nicht möglich. Daher müssen die neu gewonnenen Informationen zwangsläufig mittels eines eigenen Contentverwaltungssystemes verarbeitet werden. Das Konzept hierzu muss allerdings erst noch entwickelt werden.
1.3 Zielsetzung und Aufbau der Diplomarbeit In meiner Diplomarbeit werde ich untersuchen, inwiefern es möglich ist, die technische Realisierung dieses Projekts anzugehen und worauf geachtet werden muss. Ferner soll untersucht werden, welche Möglichkeiten Windows CE bietet, da dieses Betriebssystem auf allen neueren Waagen von Bizerba zum Einsatz kommt. Hier ist zu prüfen, ob es bereits Komponenten oder Lösungen für die gewünschten Anforderungen von Bizerba gibt, oder ob eine Eigenentwicklung notwendig ist. Andererseits soll aber auch untersucht werden, wie die „Contents“ verwaltet und verteilt werden könnten. Diese Verwaltung muss möglichst einfach zu handhaben sein, da auch der Endkunde die Daten später selbst pflegen und verändern können sollte. Bei der Darstellung der Inhalte auf der Waage steht vor allem der Wunsch im Vordergrund, die Inhalte mittels dynamischer Webseiten darzustellen. Hier sind sowohl die Möglichkeiten als auch die Vorgehensweise zu überprüfen.
2
4
Siehe: Abbildung 8: Bizerba WinCWS
Erstellung von dynamischen Websites
2.
BIZERBA
Dynamische Websites
2.1 Begriffserläuterungen Dynamische Websites: Websites werden dann als dynamisch bezeichnet, wenn die Inhalte der Seite nicht statisch in einer HTML-Seite verankert sind, sondern dynamisch angezeigt werden. Die Inhalte der Seite werden dabei aus verschiedenen Quellen einbezogen und zur Laufzeit angezeigt. Dies kann in regelmäßigen Abständen erfolgen (jeden Sekunden, jeden Tag), oder aber bei jedem Seitenaufruf, bzw. Seitenaufbau. Web-Anwendung: „Der Begriff Web-Anwendung beschreibt ein Programm, das Webseiten in einem Browser nutzt.“3 Eine Web-Anwendung ist also das Zusammenspiel verschiedener (dynamischer) Websites.
2.2 Vorteile dynamischer Websites Trennung von Design und Inhalt Da dynamische Websites aus verschiedenen Quellen erzeugt werden, ist eine Trennung von Design und Inhalt möglich und auf jeden Fall anzustreben. Die bereitzustellenden Informationen sind in der Regel in strukturierter Form entweder in einer Datenbank oder auch in einer XML-Datei vorhanden. Für die Darstellung werden nun diese Informationen mit einer HTML-Vorlage gemischt und entsprechende Referenzen gesetzt. So entsteht im Browser eine darstellbare HTML-Seite, der Inhaltliche Aufbau der Inhalte ist jedoch vom Aufbau des Designs unabhängig.
Der Aufwand zur Pflege statischer Webseiten mit reinem HTML-Code kann hoch sein, wenn z.B. eine Web-Anwendungsweite Designveränderung durchgeführt werden soll. Bei dynamischen Seiten muss gegebenenfalls nur die HTML-Vorlage oder eine allgemeine Design-Vorschrift geändert werden und alle darauf basierenden Seiten spiegeln diese Änderung sofort wieder.
3
Visual Basic.NET Programmierung S. 499
5
Erstellung von dynamischen Websites
BIZERBA
Interaktivität Die just-in-time Erzeugung der Seiten ermöglicht es diese benutzerspezifisch zu gestalten. Auf eine Eingabe des Benutzers kann Webseiten-spezifisch reagiert und dem User die gewünschten Informationen bereitgestellt werden. Hat sich zum Beispiel der Benutzer durch einen Login-Mechanismus identifiziert, werden ihm wichtige Informationen hervorgehoben; das Seitenlayout entspricht seinen optischen Vorlieben und der Benutzer ist nun nicht mehr „anonym“ auf der Seite unterwegs, sondern wird aktiv in den Darstellungsablauf eingebunden.
Erstellung zur Laufzeit Da Web-Anwendungen mit dynamischen Websites in kurzen Abständen oder gar justin-time erzeugt werden, stellen Sie immer den aktuellsten Stand dar. Ändert sich zum Beispiel ein Bestellstatus im angeschlossenen Online-Shop, so wird dem nächsten Online-Besucher automatisch der aktualisierte Status angezeigt. Sämtliche Änderungen am Rohbestand der Daten wirken sich sofort auf die Seite aus, und die Besucher können immer mit den neuesten Informationen versorgt werden. Sobald die Seite neu geladen wird bzw. ein erneuter Request erfolgt, wird wieder auf den aktuellen und möglicherweise auch aktualisierten Datenbestand zugegriffen.
2.3 Voraussetzungen 2.3.1
Informationsquellen
Definition: „Ursprungsort der Datensendestelle. Der Teil einer Datenendeinrichtung, der Daten an einen Übermittlungsabschnitt liefert oder liefern soll. Die Datenquelle ist normalerweise mit einer standardisierten Übertragungsschnittstelle ausgestattet.”4
Grundvoraussetzung einer dynamisch aufgebauten Website ist eine externe Datenhaltung. Das bedeutet, dass Design und Layout voneinander getrennt sind und das Layout erst zur Laufzeit mit den Inhalten aus einer externen Datenquelle gefüllt wird.
4
6
http://www.itwissen.info/definition/lexikon/tk-endger%E4te/__data%20source_datenquelle.html
Erstellung von dynamischen Websites
BIZERBA
Als mögliche Datenquellen gibt es hierbei: -
Datenbanken
-
Textdateien
-
XML-Dateien
Hierin werden die Informationen gebündelt, sortiert abgelegt und können über eine Schnittstelle abgerufen werden. Somit können Inhalt und Layout getrennt voneinander bearbeitet und auch auf mehrere Personen aufgeteilt werden.
2.3.2
Webserver
Um dynamische Websites darstellen zu können, müssen diese mittels eines Webservers interpretiert und für den Anwender „übersetzt“ werden. Der Anwender stellt dabei eine Anfrage, z.B. durch Klicken eines Links in seinem Browser, an den Webserver. Der Browser leitet dann einen HTTP-Request an den adressierten Webserver. Der Webserver interpretiert – sofern vorhanden – die serverseitigen Skripte, Objekte und Anfragen. Er führt auch eventuelle Abfragen an Datenbanken oder Dateien durch. Als Antwort liefert er dann die zusammengebaute Seite in HTML-Darstellung zurück. Diese ist nun für den Browser lesbar und dieser bereitet sie letztendlich für den Anwender auf. Das ganze System basiert also in der Regel auf einem Drei-Schichten-Modell. Die erste Schicht (der presentation layer) stellt der Browser dar. Er stellt seine Anfragen an die zweite Schicht (den application layer), in welcher sich in der Regel ein WebServer und beispielsweise ein Anwendungsserver befinden. Diese zweite Schicht interpretiert nun die Anfrage des Browsers so weit wie möglich und stellt ihrerseits – sofern nötig – wieder eine Anfrage an die dritte Schicht (den data layer), in der sich die Daten bzw. Informationen befinden. Mit den nun gesammelten Informationen baut der Webserver jetzt eine komplette HTML-Seite zusammen und liefert diese wieder an den Browser zurück.
7
Erstellung von dynamischen Websites
BIZERBA
Abbildung 2: Drei-Schichten-Architektur, Quelle: LOG IN, S. 26 2.3.3
Server-Side Scripting
Um letztendlich dynamische Websites erzeugen zu können, ist es notwendig serverseitige Skripte auszuführen. Der Aufruf dieser Skripte erfolgt clientseitig über den Browser, wie unter Punkt 2.3.2 Webserver beschrieben. Diese sprechen dann die Datenquelle an und sammeln die vom Anwender angeforderten Informationen. Daraus erstellt der Webserver schließlich eine HTML-Datei, welche nun an den Browser zurückgeliefert wird. Ohne diese serverseitigen Skripte ist es nicht möglich, auf Datenquellen zuzugreifen, da sich diese meist auf dem Webserver befinden und keinen clientseitigen Zugriff erlauben.
2.4 ASP als Technologie 2.4.1
Einführung
„Die Active Server Pages, kurz ASP, wurden von Microsoft als eine Erweiterung der Internet Information Servers (IIS), Microsofts Webserver, entwickelt. Sie bieten eine einfache Möglichkeit, auf dem IIS dynamische Internetseiten zu erstellen. ASP werden
8
Erstellung von dynamischen Websites
BIZERBA
also typischerweise von Anwendern eingesetzt, die ihren Internetservice mit MicrosoftTechnologie realisiert haben.“5
ASP selbst ist keine Programmiersprache im eigentlichen Sinne, sondern eher eine Technologie zur Integration von Programmlogik in Webseiten auf dem Webserver. 2.4.2
Aufbau eines ASP-Scriptes
Server-Side Scripting mit VBScript ASP können zusammen mit vielerlei Script-Sprachen verwendet werden. Dazu gehören unter anderem die Sprachen VBScript, JScript, Python oder Perl. In dieser Arbeit möchte ich mich dabei aber auf den Einsatz von VBScript beschränken, da diese Sprache das größte Funktions-Repertoire liefert.
Bei VBScript ist darauf zu achten, dass es 2 Möglichkeiten der Programmierung gibt. Einmal die clientseitige Programmierung, hier wird der Code über die Zeile <script language=”VBScript” > initialisiert. Dies ist aber eher uninteressant, da bei einer clientseitigen Programmierung nicht auf externe Ressourcen, wie z.B. eine Datenbank, zugegriffen werden kann. Ein serverseitiges VBScript wird mit einer der beiden folgenden Zeilen initialisiert: <script language=”VBScript” runat=“server”> Hier erfolgt die Abarbeitung der Anfrage serverseitig und die lokalen Ressourcen auf dem Server sind somit ansprechbar.
Variablen und Co Ein Programm ohne Variablen ist auch nicht in der Lage komplexe Berechnungen oder ähnliches auszuführen. Daher unterstützt natürlich auch VBScript verschiedene Variablentypen. Dies sei an folgendem Script kurz erläutert: In Zeile eins wird dem Webserver mitgeteilt, wie er mit dem folgenden Script-Code umzugehen hat. In diesem Fall weiß er nun, dass es sich um ein VBScript handelt. Die zweite Zeile teilt dem Server mit, dass nun das eigentlich Script beginnt und eine serverseitige Abarbeitung des folgenden Codes zu erfolgen hat. „Option explicit befiehlt, alle variablen explizit zu erstellen.“6 Diese Code-Zeile ist nicht zwingend erforderlich, hilft aber, schon im Voraus eine Großzahl von Fehler zu vermeiden. Variablen, die nicht initialisiert sind können, dann auch nicht verwendet werden. Die Gefahr eines Verwechselns wird minimiert. In der dritten Zeile werden nun zwei Variablen „a“ und „b“ deklariert und Speicherplatz für diese im Arbeitsspeicher festgelegt. In den folgenden beiden Zeilen werden die Variablen mit Werten belegt. Mit dem Befehl „response.write“ kann eine Ausgabe an das Dokument gesendet werden. Hier kann sowohl HTML-Code als auch normaler Text oder der Wert einer Variablen übergeben werden. Die verschiedenen Strings werden mit dem kaufmännischen & logisch miteinander verknüpft. „%>“ teilt dem Webserver mit, dass das VBScript nun abgeschlossen ist und wieder normaler HTML-Code folgt, bzw. das Dokument zu Ende ist.
Datenbankzugriff Herzstück einer jeden dynamischen Webseite ist die Datenbank im Hintergrund. Daher folgt nun ein ASP-Script, in welchem ein Zugriff auf eine Datenbank erfolgt und das Zusammenspiel von HTML und Script-Code verdeutlicht wird.
Mitteilung an den Browser das VBScript folgt. 6
VBScript Handbuch, S. 74
10
Erstellung von dynamischen Websites
BIZERBA
Datenbankzugriff Grundgerüst der HTML-Seite. Mit wird die Seite eingeleitet. im -Bereich stehen die Grundinformationen der Seite wie beispielsweise der (Titel). Nach dem Abschließen des Head-Bereichs wird der -Tag geöffnet, dies ist die eigentliche darstellende Stelle des Dokumentes. Im String “sql” wird das auszuführende SQL-Query gespeichert. In der folgenden Zeile wird nun das oben beschrieben Recordset geöffnet und das „sql“-Query abgefragt.
11
Erstellung von dynamischen Websites
BIZERBA
Kurzer Wechsel in den HTML-Bereich. Es folgt nun eine Tabelle und die erste Zeile wird geöffnet. In dieser Schleife werden die Feldnamen der Tabellenspalten ausgelesen und als Überschrift für die nun darzustellende Tabelle ausgegeben. Als Abbruchbedingung für die „For-Schleife“ wird die Anzahl der Spalten abzüglich dem Wert Eins übergeben, da die Schleife nicht bei Eins sondern bei Null beginnt, um die Daten mittels „rs.Fields(i).name“ korrekt auszulesen.
Schließen der ersten Spalte. Wiederholpunkt der Schleife. Sämtliche Aktionen zwischen Do und Loop werden bis zum Abbruch der Schleife wiederholt.
Abschluss-Tag der ganz zu Beginn des Codes geöffneten Tabelle. Korrektes Schließen des Body-Bereiches dieser HTML-Seite. Mit wird die Seite geschlossen und kann nun vom Webserver an den Browser zurückgegeben werden.
2.5 Alternativen zu ASP 2.5.1
ISAPI-Programmierung
Definition von ISAPI „ISAPI was developed by Process Software in collaboration with Microsoft Corporation and other Web server vendors. ISAPI is a high-performance, scalable solution for developers who want to create dynamic Web sites. These sites have to be able o handle high request rates without degrading HTTP server’s performance.”7
Internet Server API (ISAPI) ist also eine Programmierschnittstelle von Microsoft, die unter anderem im Microsoft Internet Information Server (IIS) verwendet werden kann.
7
Using ISAPI, S. 11
13
Erstellung von dynamischen Websites
BIZERBA
ISAPI-Extensions Sie ermöglichen die bessere Integration einer Webanwendung in den Server. Sie können damit schneller als bspw. CGI-Anwendungen ausgeführt werden. Dies wird dadurch erreicht, dass die Erweiterung bereits beim Start des Servers in den Speicher geladen wird und dort permanent zur Verfügung steht. ISAPI-Filter Filter klinken sich in den Daten-Verkehr eines Webservers oder Proxyservers ein und können alle übertragenen Daten lesen und verändern
Leistungsspektrum von ISAPI ISAPI kann in vielerlei Programmiersprachen, wie Visual Basic, C oder C++ entwickelt werden. Datei wird eine .dll (Dynamic Link Library) Datei erstellt, die beim ersten Aufruf des Webservers in den Speicher geladen wird und dort permanent zur Verfügung steht. Sie kann von nahezu beliebig vielen Usern angesprochen werden und läuft dabei stets nur in einem Prozess ab. Mit ISAPI kann auch auf lokale Ressourcen des Webservers oder auch auf externe Datenbanken zugegriffen werden.
Die Verbreitung von ISAPI kann aus sehr unterschiedlichen Betrachtungsweisen beurteilt werden. Verbreitung hat es im Internet heutzutage fast keine mehr und auch die Weiterentwicklung wurde in der Zwischenzeit eingestellt. Allerdings arbeitet beispielsweise einer der größten Online-Plattformen überhaupt – www.ebay.com – mit diesen ISAPI-Extensions.
Test auf der Waage Die Programmierung der ISAPI-Schnittstelle auf der Waage musste in C++ durchgeführt werden. Nur mit dieser Sprache kann eine unter Windows CE lauffähige Datei kompiliert werden kann. Die erstellte .dll Datei läuft problemlos auf der Waage und kann sämtliche Abfragen recht schnell abarbeiten. Jedoch ist de Programmieraufwand hierbei extrem hoch. So muss fast für jede mögliche Anfrage eine eigene Verarbeitungsprozedur geschrieben und implementiert werden. 14
Erstellung von dynamischen Websites
BIZERBA
Daher können für das Projekt Contents keine ISAPI-Dateien verwendet werden, denn die Programmierung der .dll Datei kann nur von einem „richtigen Programmierer“ vorgenommen werden, nicht aber vom Endkunden. Zwar könnte ein Großteil der möglichen Anforderungen im Vorfeld bereits abgedeckt werden, bei dem gewünschten Funktionsspektrum zum Gestalten der Layout-Dateien kann jedoch nicht jede Möglichkeit explizit ausprogrammiert werden. 2.5.2
Java Applets
Definition: „Ein Java-Applet ist ein kleines Computerprogramm, das in der Programmiersprache Java verfasst wurde. Java-Applets wurden eingeführt, um Programme in Web-Seiten ablaufen lassen zu können, die im Webbrowser (auf der Client-Seite) arbeiten und direkt mit dem Benutzer interagieren können, ohne Daten über die Leitung zum Server versenden zu müssen.“8
Java Virtual Machine: Um Java-Applets darstellen und ausführen zu können ist eine Laufzeitumgebung für diese Komponente erforderlich, die sogenannnte Java Virtual Machine. Die Firma NSIcom ist ein Anbieter solcher Laufzeitumgebungen für Windows CE 4.2. Auf der Seite http://www.nsicom.com/Default.aspx?tabid=220&p=4 kann eine kostenlose 30-Tage Testversion heruntergeladen werden.
Installation: Die heruntergeladene Installationsdatei für den x86-Prozessor, welcher auf den Bizerba Waagen im Einsatz ist, war nicht lauffähig. Eine Installation konnte deshalb nicht erfolgen. Nach einer Support-Anfrage an:
[email protected] kam jedoch innerhalb kürzester Zeit eine Antwort, sowie eine neue lauffähige Version. Die .CAB (komprimierte Installationsdatei) musste lediglich auf der Waage installiert werden. Weitere Komponenten mussten nicht manuell registrieren werden.
8
http://de.wikipedia.org/wiki/Java_Applet, 15.5.2006
15
Erstellung von dynamischen Websites
BIZERBA
Test auf der Waage: Eingebunden werden Java Applets in einer Webseite wie folgt: <param name="Contentid" value="2002"> <param name="Layoutid" value="8"> In dem applet-Tag wird die Referenz auf das Java-Applet hergestellt und angegeben welche Datei geladen werden soll. Das Param-Tag übergibt Parameter an das Applet, mit dem es dann ausgeführt wird. Die Einbindung eines Applets in eine Webseite auf der Waage verlief unproblematisch und auch ein Zugriff auf die lokalen Ressourcen des Rechners war möglich.
Allerdings sind diese Java-Applets nur bedingt einsatzfähig, da sie sehr langsam sind. Für den Einsatz auf einer Waage im laufenden Betrieb z.B. eines Metzgers sind Antwortzeiten von zwei bis drei Sekunden nicht tragfähig und akzeptierbar. Dies kommt sicherlich auch von der recht sparsamen Performance der WaagenProzessoren, aber auch das Grundkonzept der Java-Applets ist nicht auf eine sehr schnelle Bearbeitung ausgerichtet.
Daher scheidet der Einsatz derartiger Java-Applets leider aus.
16
Erstellung von dynamischen Websites
3.
BIZERBA
Windows CE
3.1 Einführung Was ist Microsoft Windows CE überhaupt? „Microsoft Windows CE ist eine offene, skalierbare Windows-Plattform für ein breites Spektrum an Kommunikations-, Unterhaltungs- und Mobile Computing-Geräten. Bei der standardisierten Windows CE-Plattform handelt es sich um ein völlig neuartiges Betriebssystem, das von Grund auf neu konzipiert wurde, um neue Kategorien von Nicht-PC-Geräten für den geschäftlichen und privaten Bereich zu ermöglichen, die miteinander kommunizieren, Informationen mit Windows-PCs austauschen und eine Verbindung zum Internet herstellen können.“9
Dieser Artikel stammt von der Microsoft-Homepage und beschreibt die wesentlichen Grundzüge von Windows CE. Man kann sagen, Windows CE ist eine abgespeckte Version der „Windows Familie“ und versucht, mit minimalem Speicherplatz und Prozessorleistung, ein Maximum des gewohnten Windowsspektrums abzudecken. Es ist allerdings keine Kompatibilität zu anderen Windows Versionen, oder gar zu MSDOS vorhanden, sondern es setzt auf einem eigenen Kern auf. Es unterstützt jedoch sowohl Multithreading, als auch einen gewissen Teil der Win32 API. Ebenfalls unterstützt wird das .NET Compact Framework, welches einen Teil des mächtigen .NET Frameworks von Microsoft repräsentiert.
Warum gerade Windows CE? Windows CE bzw. Windows Mobile kommen in der Regel hauptsächlich im Handysektor zur Geltung. Fast sämtliche Smartphones sowie PDAs (Personal Digital Assistant) laufen heutzutage unter diesem Betriebssystem. Durch den geringen Speicher- und Ressourcenverbrauch läuft es auf nahezu jeder Plattform und ist von den Anforderungen her recht begnügsam.
9
http://www.microsoft.com/germany/msdn/library/mobility/windowsce/HaeufigGestellteTechnisch
eFragenZuMicrosoftWindowsCENET.mspx?mfr=true 20.04.2006
17
Erstellung von dynamischen Websites
BIZERBA
Die Bizerba CE-H 800 S hat einen x86 Prozessor mit 400 Mhz sowie eine integrierte Flash-Speicherkarte von 128 MB als Festplatte. Diese ist jedoch beliebig erweiterbar und in der Regel haben die Geräte mehr als 10 GB Speicherplatz. Allein aufgrund dessen wäre heutzutage Windows CE nicht mehr erforderlich und es könnte auch ein Umstieg auf Windows XP vorgenommen werden. Ein weiterer entscheidender Faktor für Windows CE ist jedoch die niedrige Anfälligkeit für Viren. Durch die geringe Verbreitung dieser Plattform finden sich auch nur wenig gewillte Hacker, die gezielt Schaden anrichten wollen.
3.2 Webserver unter Windows CE 3.2.1
IIS (Internet Information Server)
Unter Windows CE gibt es den von Microsoft mitgelieferten IIS (Internet Information Server). Dieser Webserver ist eine abgespeckte Version des normalen IIS, wie unter Windows XP bekannt. Er unterstützt laut Microsoft rund 75% der Funktionalität, wobei er nur 25% der Ressourcen des großen Bruders verbraucht. Das große Problem liegt jedoch im Server-Side Scripting, welches vom IIS für Windows CE nicht unterstützt wird. “There is no support for server-side scriptlets in Windows CE–based ASP. The <SCRIPTLET> tag and related tags are ignored by Windows CE–based ASP and treated as plain text. How the client browser interprets the <SCRIPTLET> tag is browserspecific.”10 Der IIS unterstützt zwar sowohl VBScript als auch JavaScript, jedoch werden sämtliche Befehle die eine serverseitige Abarbeitung der Programmablaufs ansteuern, wie z.B. <SCRIPT LANGUAGE = VBSCRIPT RUNAT = SERVER> oder , vom Webserver einfach ignoriert. Es erscheint lediglich die Fehlermeldung: „Parse error in script“. Wie auch von Microsoft bestätigt, gibt es also keinerlei Möglichkeit mittels einer ASPSeite auf externe Daten zuzugreifen.
10
http://msdn.microsoft.com/library/default.asp?url=/library/en-
us/wceasp/html/_wcesdk_features_not_supported.asp
18
Erstellung von dynamischen Websites 3.2.2
BIZERBA
GoAhead Webserver
Neben der Microsoftlösung IIS gibt es noch den GoAhead Webserver 2.1. Dies ist eine Entwicklung der GoAhead Software Inc. mit einer Unterstützung für genau die geforderte Komponente der serverseitigen Skriptabarbeitung: „Specifications Dynamic Content -
Active Server Pages
-
In-Process CGI
-
Traditional CGI support
-
Embedded JavaScript
-
Open scripting architecture“11
Ein Test unter Windows CE 3.1 verlief problemlos. Sämtliche gewünschten Funktionen waren verfügbar. Allerdings scheidet ein Einsatz dieses Webservers aufgrund der Einstellung der Entwicklung nach Windows CE 3.1 aus. Leider ist auch keine Aufwärtskompatibilität mit Windows CE 4.2 vorhanden und es konnten keine Seiten dargestellt werden. Die Bizerba Touch Screen Waagen sind allesamt mit Windows CE 4.2 ausgestattet und eine Umstellung auf eine andere Windows CE-Version ist (zeitnah) nicht möglich. 3.2.3
Verwendbarkeit – Ergebnis
Für die effiziente Entwicklung von Active Server Pages, die auf Bizerba-Waagen lauffähig sind, kommt keiner der beiden Webserver in Frage. Der IIS von Microsoft kann die gewünschte Funktionalität eines Server-Side Scripting nicht bereitstellen. Es bietet auch keine ergänzenden Zusatzfeatures. Der GoAhead-Webserver wäre mit einer älteren Version von Windows CE prinzipiell gut geeignet. Allerdings wurde die Entwicklung wie schon bereits erwähnt eingestellt und es wird keine Version für Windows CE 4.2 geben.
11
http://webserver.goahead.com/webserver/wsfeatures.htm
19
Erstellung von dynamischen Websites
BIZERBA
3.3 Datenbanken unter Windows CE 3.3.1
Grundlegendes
Auch wenn die Anzahl der Datenbanken, die auch unter Windows CE lauffähig sind nicht besondern groß ist, so gibt es doch eine ganze Reihe verschiedener Anbieter, die eine Windows CE gerechte Lösung anzupreisen versuchen. Inwieweit diese Datenbanken geeignet sind, soll im Folgenden untersucht werden. 3.3.2
Pocket Access
Überblick Pocket Access, oft auch unter dem Namen CEDB anzufinden, ist eine kleine Datenbank im Access-Stil. Über ActiveSync kann ein Abgleich mit der Desktop-Version von Access vorgenommen werden. Dabei wird die .mdb Datei in eine auf Windows CE lauffähige .cdb umgewandelt und übertragen.
Einschränkungen „Windows CE gives you an entirely unique set of database APIs not available under the other versions of Windows. The database implemented by Windows CE is simple, with only one level and a maximum of four sort indexes, but it serves as an effective tool for organizing uncomplicated data”12 Wie in obigem Artikel beschrieben, handelt es sich bei Pocket Access aber um eine sehr eingeschränkte Datenbank, die lediglich zum Anzeigen und Editieren kleinerer Datenbestände geeignet ist. Es sind nur 4 Suchkriterien möglich und der Zugriff kann nur auf eine Tabelle erfolgen. Eine Abfrage über mehrere Tabellen wird nicht unterstützt.
Bezugsquelle Pocket Access wird von Herstellerseite aus mit dem Produkt ausgeliefert bzw. es kann über den „Microsoft Platform Builder“ zum Kernel hinzugefügt werden. Eine nachträgliche Installation auf dem Gerät ist jedoch nicht möglich. Lizenzgebühren fallen keine an.
12
Programming Microsoft Windows CE.NET, S.439
20
Erstellung von dynamischen Websites 3.3.3
BIZERBA
Sybase SQL Anywhere
Überblick Sybase ist ein weltweit agierender Hersteller unter anderem von Datenbanklösungen. Die eigene Datenbank Sybase SQL Anywhere steht dabei an vorderster Stelle und wird nach eigener Aussage von Sybase weltweit von den zehn größten Banken eingesetzt.
Einschränkungen Prinzipiell hat Sybase SQL Anywhere keinerlei Einschränkungen im Bezug auf das arbeiten mit der Datenbank. Auch ein Synchronisieren mit der Desktop-Version ist problemlos möglich. Lediglich wenige Befehle wie beispielsweise die „DROP DATABASE-Anweisung werden unter Windows CE nicht unterstützt“13
Bezugsquelle Sybase SQL Anywhere kann unter folgender Adresse kostenlos als Testversion heruntergeladen werden: http://www.sybase.com/products/mobilesolutions Unter „Downloads/eShop Try & Buy“ muss hierzu ein Account angelegt werden und anschließend kann das „SQL Anywhere Studio 9.0.2 for Windows x86“ heruntergeladen werden. Nach Ablauf der 30tägigen Testversion ist jedoch eine Gebühr von 377 US-$ pro Einzelplatzlizenz fällig. Die Installation erfolgt mit Hilfe von ActiveSync.
13
http://www.ianywhere.com/developer/product_manuals/sqlanywhere/0902/de/html/dbfgde9/00
000097.htm
21
Erstellung von dynamischen Websites 3.3.4
BIZERBA
IBM DB2 Everyplace
Übersicht Nachdem IBM mit seiner DB2 Datenbank lange Zeit nur Großrechner vorbehalten und nicht auf dem Windows-Markt verfügbar war, bietet IBM nun mit der DB2 Everyplace auch eine Lösung für mobile Geräte an.
Einschränkungen Ein Synchronisieren der Datensätze mit einem anderen Server von IBM ist Grundsätzlich möglich, allerdings erst ab der Express- oder Enterprise Edition. Ansonsten deckt DB2 Everyplace sämtliche Bereiche ab und arbeitet ohne Einschränkungen auch unter Windows CE.
Bezugsquelle Die verschiedenen Versionen von IBM DB2 Everyplace können unter http://www306.ibm.com/software/data/db2/everyplace/ in elektronischer Form bestellt werden. Die Lizenzgebühr für eine standalone Datenbankversion beträgt 116 EUR. Die Enterprise Edition, welche für ein Synchronisieren mit einem Desktop-PC erforderlich ist, kostet 558 EUR. Die Kosten fallen jeweils für eine Jahreslizenz an.
3.3.5
Oracle Database Lite
Übersicht “The Oracle Lite Database is a small footprint, Java enabled, secure, relational database management system created specifically for laptop computers, handheld computers, PDAs, and information appliances. Oracle Lite Database runs on Windows 98/NT/2000/XP, Windows CE/Pocket PC, Palm OS and Embedded Linux.”14
Somit bietet auch Oracle eine mobile Variante der hauseigenen Datenbank und versucht damit auch in diesem Sektor Fuß zu fassen.
14
Oracle Database Lite 10g Technical White Paper, S. 5
22
Erstellung von dynamischen Websites
BIZERBA
Einschränkungen „Der Speicherbedarf auf dem Gerät ist mit maximal 1MB sehr dezent ausgefallen und auch die Replikation mit dem >>großen