Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
1 Einleitung
2 Webbrowser
3 JavaScript einbauen
4 Programmieren mit JavaScript
5 Datum
6 Zufall
7 Browserinformationen
8 Fenster
9 Formulare
10 Frames und Iframes
11 Grafiken
12 Cookies
13 Objekte und Arrays
14 Ereignisbehandlung
15 Fehlerbehandlung
16 DOM
17 DHTML und CSS
18 AJAX
19 XML
20 Web Services
21 AJAX-Frameworks
22 Plugins
23 Multimedia
24 Java
25 Serverseitige Technologien
26 JavaScript goes .NET
27 Code schützen
28 Top Secret: Passwortschutz
29 Signierte Skripte
30 JavaScript und Sicherheit
31 Navigation
32 Warenkorb
33 JavaScript-Bibliotheken
34 Referenz
35 Quellen im Web
36 Die Zukunft von JavaScript
Index
Download: - ZIP, ca. 9,2 MB
Buch bestellen
Ihre Meinung?
<< zurück | Galileo Computing / <openbook> / JavaScript und AJAX | vor >>
JavaScript und AJAX von Christian Wenz Das umfassende Handbuch
JavaScript und AJAX 839 S., mit DVD, 39,90 Euro Galileo Computing ISBN 3-89842-859-1 |
| Kapitel 20 Web Services
|  | 20.1 Was sind Web Services?
|  |  | 20.1.1 Verteiltes Arbeiten
|  |  | 20.1.2 WSDL
|  |  | 20.1.3 Web Services aufrufen
|  | 20.2 Web Services mit JScript.NET
|  |  | 20.2.1 Installation
|  |  | 20.2.2 Programmierung
|  | 20.3 Mit dem Internet Explorer auf Web Services zugreifen
|  | 20.4 Mit Mozilla auf Web Services zugreifen
## 20.2 Web Services mit JScript.NET Ich habe es bereits angedroht – ich komme noch einmal auf die .NET-Technologie von Microsoft zurück. Der Grund: Damit sind Web Services besonders einfach zu erstellen. Keine Sorge: Jede halbwegs moderne Webtechnologie bietet Web Services an, aber mit .NET ging es eben (noch) besonders fix. Außerdem unterstützt .NET eine Reihe von Programmiersprachen, unter anderem JScript (es heißt dort JScript.NET oder JScript .NET, die Microsoft-Dokumentation ist in Hinblick auf die Frage »mit oder ohne Leerzeichen?« auch nicht konsistent). Da JScript unserer Lieblingssprache JavaScript sehr ähnelt, liegt ein Einsatz von JScript (.NET) für Web Services also nahe. Als Beispiel haben wir, wie bereits erwähnt, eine Applikation ersonnen, die überprüft, ob ein übergebener Parameter eine Primzahl ist oder nicht. Das Problem ist nämlich, dass ein Web Service erstellt werden musste, der gegebenenfalls schon an anderer Stelle in ähnlicher Form existiert. Leserinnen und Leser, die das Beispiel nicht nachstellen können (beispielsweise weil kein entsprechender Server zum Testen zur Verfügung steht), haben dann immerhin die Möglichkeit, den Web Service an einer öffentlich zugänglichen Stelle zu testen. Das folgende Beispiel ist zwar auch im Internet verfügbar, allerdings nicht auf einem eigenen Server des Autors, weswegen nicht sichergestellt werden kann, dass das Beispiel permanent von der angegebenen Adresse abrufbar ist. ### 20.2.1 Installation Wenn Sie mit .NET arbeiten, gibt es zunächst zwei Möglichkeiten: .NET 1.x oder .NET 2.0. Die folgenden Beispiele sind mit beiden Versionen möglich. Beginnen wir mit .NET 1.x: Zunächst benötigen Sie einen Internet Information Server (IIS, das steht mittlerweile für Internet Information Services, aber »Server« ist knackiger) von Microsoft. Dieser ist Bestandteil der Betriebssysteme Windows NT Server, Windows 2000 Professional/Server/Advanced Server, Windows XP Professional, Windows 2003 Server und diverser Ausgaben von Windows Vista. Überprüfen Sie zuerst, ob der Server bereits installiert ist, ansonsten installieren Sie ihn über die Systemsteuerung (Start N Systemsteuerung N Software N Windows-Komponenten hinzufügen/entfernen) nach. Hier klicken, um das Bild zu Vergrößern Abbildung 20.1 Der IIS muss installiert sein. Als Nächstes müssen Sie das .NET Framework, also die .NET-Klassenbibliothek von Microsoft, herunterladen. Unter http://www.asp.net/download.aspx haben Sie die Möglichkeit, zwischen zwei Paketen zu wählen:
| Das .NET Framework Redistributable (etwa 21 MByte). Dieses Paket enthält schon alles, was Sie zur Erstellung eines Web Service benötigen.
| Das .NET Framework SDK (etwa 131 MByte). Dieses Paket ist mehr als sechsmal so groß wie das Redistributable, enthält dafür aber unter anderem eine Unmenge an Dokumentation. Wenn es Ihre Internet-Anbindung erlaubt (oder Sie jemanden mit schneller Anbindung und CD-Brenner kennen), sollten Sie dieses Paket einsetzen.
Laden Sie nun eines der beiden Pakete herunter, und starten Sie die Installation. Sie benötigen dazu Administratorrechte. Am Ende der Installation sollten Sie unter http://msdn.microsoft.com/net noch nachsehen, ob mittlerweile ein Update zum .NET Framework erschienen ist. Wenn Sie mit .NET 2.0 arbeiten möchten, gibt es prinzipiell ebenfalls ein Redistributable und ein Framework SDK, aber Sie sollten am besten gleich ein komplettes Entwicklerpaket installieren. Mit dem Visual Web Developer Express Edition (kurz: VWD) bietet Microsoft eine professionelle Entwicklungsumgebung (IDE) für ASP.NET-Anwendungen an, mit der Sie auch Webseiten erstellen können. Das Beste daran ist, dass Sie nicht einmal einen IIS benötigen, denn bei VWD ist bereits ein Test-Webserver dabei. Dieser Webserver erlaubt keinen Zugriff von außen, ist aber zum Testen hervorragend geeignet. Unter http://www.microsoft.com/germany/msdn/vstudio/products/express/vwd/ erhalten Sie den Visual Web Developer, entweder als schlanken Installer (siehe Abbildung 20.2), der die restlichen Daten aus dem Web herunterlädt, oder als großes ISO-Image zum Auf-die-CD-brennen. Nach der Installation können Sie eine neue Website anlegen (siehe Abbildung 20.3) und innerhalb der Site auch einen Web Service erzeugen. Hier klicken, um das Bild zu Vergrößern Abbildung 20.2 Der Installer des Visual Web Developer Express Edition Hier klicken, um das Bild zu Vergrößern Abbildung 20.3 Die Startseite von Visual Web Developer ### 20.2.2 Programmierung Einen Web Service mit JScript.NET zu erstellen ist eine ziemlich einfache Sache. Da Web Services ein integraler Bestandteil der .NET-Strategie sind, ist viel Funktionalität vorhanden, die sich im Hintergrund um die Kommunikation mit dem Web Service kümmert; bei anderen serverseitigen Technologien müssen Sie (noch) vieles von Hand erledigen. Es ist aber zu erwarten, dass sich das mittelfristig ändern wird. Wie bei HTML-Dokumenten auch, reicht ein einfacher Editor, um den Web Service zu erstellen. Bei Verwendung von ASP.NET 2.0 in Verbindung mit dem Visual Web Developer ist das natürlich besonders einfach: Legen Sie eine neue Datei vom Typ Webdienst an; die Dateiendung muss .asmx sein. Zunächst müssen Sie dafür sorgen, dass Sie JScript überhaupt als Sprache verwenden dürfen. Die Standardsprache bei .NET ist nämlich Visual Basic; Sie müssen diesen Vorgabewert ändern. Außerdem müssen Sie den Compiler noch darauf hinweisen, dass es sich um einen Web Service handelt und er (also die übergeordnete Klasse, nicht die einzelne Funktion) Primzahlen heißt. Dies alles geht mit folgender Anweisung, die in der ersten Zeile des Dokuments stehen muss:
    <%@ WebService Language="JScript" Class="Primzahlen" %>
Als Nächstes müssen Sie die .NET-Klassenbibliothek für Web Services importieren, damit der Compiler später die notwendige Kommunikationsfunktionalität (inklusive SOAP) automatisch hinzufügen kann:
    import System.Web.Services;
Nun erstellen Sie eine Klasse für den Web Service. In der ersten Zeile haben wir der Klasse den Namen Primzahlen gegeben, weswegen diese Bezeichnung sich im Klassennamen wiederfinden muss:
    public class Primzahlen extends WebService {
       // ...
    }
Jetzt fehlt uns eigentlich nur noch der eigentliche Dienst: die Überprüfung, ob eine Zahl eine Primzahl ist oder nicht. Damit diese Funktion als Methode des Web Service erkannt wird, muss ihr das Attribut WebMethodAttribute vorangestellt werden.
    WebMethodAttribute
    function istPrimzahl(zahl:int):boolean {
       // ...
    }
Sie sehen, dass bei JScript.NET Variablen typisiert sind: Das heißt, eine Variable hat einen bestimmten Typ, beispielsweise Integer (int) oder Boolean (boolean). Dieser Typ wird hinter einem Doppelpunkt nach dem Variablennamen angegeben. Die Überprüfung, ob der übergebene Parameter eine Primzahl ist oder nicht, wird wie folgt vorgenommen: Zunächst wird überprüft, ob als Parameter eine Zahl größer als 1 übergeben worden ist. Alle Zahlen kleiner oder gleich 1 sind keine Primzahlen.2
    if (zahl < 2)
       return false;
Beim Aufruf des Web Service wird automatisch überprüft, ob der übergebene Wert vom erwarteten Typ ist, hier also Integer. Sie müssen daher keine zusätzliche Typüberprüfung vornehmen. Als Nächstes wird überprüft, ob die Zahl einen weiteren Teiler außer 1 und sich selbst hat. Dazu werden alle Zahlen zwischen 2 und der Wurzel der Zahl daraufhin geprüft, ob sie als Teiler in Frage kommen. Zwar könnten auch größere Zahlen getestet werden, die Mathematik lehrt aber, dass es entweder Teiler bis zur Quadratwurzel gibt oder überhaupt keine.
    for (var i=2; i<=Math.sqrt(zahl); i++) {
       if (zahl % i == 0) {
          return false;
       }
    }
Wenn nach dem Durchlaufen dieser Schleife die Funktion immer noch nicht verlassen worden ist, liegt tatsächlich eine Primzahl vor: Es gibt keinen Teiler.
    return true;
Sie sehen also: Besonders aufwändig war das nicht. Hier noch einmal das komplette Listing:
    <%@ WebService Language="JScript" Class="Primzahlen" %>
    import System.Web.Services;

    public class Primzahlen extends WebService {
       WebMethodAttribute
       function istPrimzahl(zahl: int) : boolean {
          if (zahl < 2) {
             return false;
          }
          for (var i=2; i<=Math.sqrt(zahl); i++) {
             if (zahl % i == 0) {
                return false;
             }
          }
          return true;
       }
    }
Speichern Sie diese Datei unter dem Namen Primzahlen.asmx ab. Das Hauptverzeichnis des IIS ist bei einer Standardinstallation c:\inetpub\wwwroot; legen Sie die Datei also in diesem Verzeichnis ab. Mit dem Visual Web Developer legen Sie die Datei einfach im Projektverzeichnis ab, da Sie dort ja keinen ISS benötigen. Sollten Sie die Systemvoraussetzungen für diesen .NET Web Service nicht erfüllen (also beispielsweise keinen IIS besitzen), können Sie den Web Service (momentan) unter der URL http://www6.brinkster.com/wenz/Primzahlen.asmx ausprobieren. Sollte diese URL einmal nicht mehr funktionieren, gehen Sie zu http://www.xmethods.net/. Dort finden Sie eine ganze Reihe von Web Services, unter anderem auch einen Primzahltest. Sie können den Web Service im Folgenden testen. Rufen Sie zunächst direkt die .asmx-Datei auf, indem Sie in Ihren Webbrowser die Adresse http://localhost/Primzahlen.asmx eingeben (oder in Visual Web Developer die Tastenkombination (Strg)+(F5) betätigen). Die Ausgabe sehen Sie in Abbildung 20.4. Der Web Service gibt Auskunft über sich selbst und führt die zur Verfügung stehenden Methoden auf. Hier klicken, um das Bild zu Vergrößern Abbildung 20.4 Die »Hauptseite« des Web Service Wenn Sie dann auf istPrimzahl klicken, erhalten Sie zusätzliche Informationen über die Primzahlprüfung, unter anderem den oder die Parameter (siehe Abbildung 20.5). Wenn Sie in das Texteingabefeld einen Wert eingeben und auf Invoke klicken, wird der Web Service ausgeführt; das Ergebnis des Aufrufs wird in einem neuen Fenster angezeigt. Sie können dies in Abbildung 20.6 sehen. Hier klicken, um das Bild zu Vergrößern Abbildung 20.5 Auskunft über die Methode istPrimzahl Hier klicken, um das Bild zu Vergrößern Abbildung 20.6 Das Ergebnis der Überprüfung für die Zahl 1021 Aufmerksame Leser fragen sich mittlerweile vermutlich, wie das überhaupt funktionieren kann, denn wir haben ja keine WSDL-Beschreibung des Web Service erstellt. Der Grund ist einfach: Wenn Sie einen .NET Web Service erstellen, müssen Sie an die URL der .asmx-Datei einfach den Parameter ?WSDL anhängen, und Sie erhalten automatisch ein WSDL-Dokument zurück. Abbildung 20.7 zeigt diese Beschreibung. Hier klicken, um das Bild zu Vergrößern Abbildung 20.7 Die automatisch erzeugte WSDL-Beschreibung Nach diesem Muster können Sie noch viele weitere und deutlich komplexere Web Services erstellen. Der Titel und das Thema dieses Buches ist jedoch JavaScript, weswegen wir uns jetzt wieder auf clientseitiges Terrain begeben.
<< zurück | <top> | vor >>
Zum Katalog
JavaScript und AJAX bestellen
Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen? Ihre Meinung
Buchtipps
| JavaScript und AJAX - Das Video-Training
| Webseiten programmieren und gestalten
| XHTML, HTML und CSS
| CSS-Praxis
| AJAX
| PHP 5 und MySQL 5
| TYPO3 4.0
Shopping
Versandkostenfrei bestellen in Deutschland und Österreich Info

Copyright © Galileo Press 2007
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

[Galileo Computing]
Galileo Press, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de