Projektarbeit 2000

Werbung
Projektarbeit 2000
Anrufumleitung über WAP
Dokumentation
Urs Bosshard, Iwan Eberhart IT3b
Inhaltsverzeichnis
1. ZUSAMMENFASSUNG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
2. PROJEKTBESCHREIBUNG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.1 Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.2 Infrastruktur / Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.3 Literatur / Links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
3. PFLICHTENHEFT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
4. PROBLEMANALYSE, LÖSUNGSKONZEPT . . . . . . . . . . . . . . . . . . . . . . . . . 7
4.1 Teilprobleme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
4.2 Lösungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
4.3 Zeitplan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
5. FUNKTIONSPRINZIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
5.1 Aufruf von Index.wml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
5.2 Login . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
5.3 Lesen der Umleitziele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
5.4 Generieren des Eintrags „Benutzerdefiniert“ . . . . . . . . . . . . . . . . . . . . 10
5.5 Ändern des Umleitziels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
5.6 Update der Datenbank auf das gewählte Umleitziel . . . . . . . . . . . . . . 12
5.7 Bestätigungsanzeige . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
5.8 Benutzerdefiniertes Umleitziel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
6. SERVER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
6.1 Apache Webserver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
6.2 Konfiguration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
6.2.1 HTTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
6.2.2 WAP, WML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
6.2.3 Java-Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
7. DATENBANK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
7.1 Entitäts Typen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
7.1.1 Mitarbeiter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
7.1.2 Destination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
7.1.3 Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
7.2 ER-Schema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
7.3 Relationales Datenbankmodell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
7.4 Einbindung ins System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
8. PROGRAMMIERUNG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
8.1 index.wml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Projektarbeit 2000
-I-
Anrufumleitung
8.2 WAPServlet.class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
8.3 ChangeServlet.class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
8.4 DefServlet.class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
9. TESTPROTOKOLL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
9.1 Anwählen der ZHWap-Seite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.2 Login . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.3 Statusanzeige . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4 Auswahl der Umleitziele. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.5 Umleitung AUS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.6 Umleitung „normal“ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.7 Umleitung „Benutzerdefiniert“ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.8 Kommentar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
23
23
23
23
23
24
24
24
10. KURZANLEITUNG FÜR DIE INBETRIEBNAHME DES SYSTEMS . . . . . . . . . 25
10.1 Installation Java Servlet Development Kit . . . . . . . . . . . . . . . . . . . . .
10.2 Installation Apache Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.3 Installation Apache JServ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.4 Kopieren der Config-Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.5 Kopieren der HTML- und WML Dateien. . . . . . . . . . . . . . . . . . . . . . .
10.6 Kopieren der Bilder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.7 Kopieren der Servlets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.8 Einbinden der Datenbank . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.9 Test der Funktionalität . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
25
25
25
27
27
27
27
27
28
11. BETRIEBSANLEITUNG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
11.1 Seite anwählen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11.2 Login . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11.3 Umleitung ändern (Normal) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11.4 Umleitung ändern (Benutzerdefiniert) . . . . . . . . . . . . . . . . . . . . . . . .
11.5 Umleitung ausschalten. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
29
29
30
31
32
12. ENTWICKLUNGSTOOLS UND WAP-BROWSER . . . . . . . . . . . . . . . . . . . 35
12.1 Nokia WAP Toolkit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12.2 Kawa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12.3 pic_2_wbmp. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12.4 WinWAP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12.5 YOURWAP.com. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12.6 Nokia 7110. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
- II -
35
36
37
37
38
39
Projektarbeit 2000
Inhaltsverzeichnis
13. GRUNDLAGEN ZU WML. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
13.1 Links. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13.2 Tabellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13.3 Textauszeichnungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13.4 Einbindung von Bildern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13.5 Menü/Buttons. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13.6 Formulare. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13.7 Eingabefelder (Input) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13.8 Ereignisbehandlung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13.9 Auzeichnungsbefehle. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
42
42
43
43
44
45
46
46
47
14. SCHLUSSWORT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
14.1 Bewertung der Arbeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
14.2 Teamarbeit und Umfeld . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
14.3 Ausblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
15. ANHANG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
15.1 Menüführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
15.1.1 „normale“ Umleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
15.1.2 benutzerdefinierte Umleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
15.2 CD-ROM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Projektarbeit 2000
- III -
Anrufumleitung
- IV -
Projektarbeit 2000
Zusammenfassung
1. Zusammenfassung
Der heutigen Gesellschaft rast die Zeit davon. Arbeitsabläufe werden und müssen immer schneller werden. Der Schwachpunkt im System ist der Mensch, der alles vorantreibt und sich so selber Probleme schafft. Er ist schon lange an seine Grenzen
gestossen und nimmt sich neue Technologien zu Hilfe, welche ihm beim Bewältigen
der täglichen Hürden helfen sollen. Probleme sind dazu da, gelöst zu werden! Es bleibt
uns also nichts anderes übrig, als diese zu bewältigen, denn ansonsten wird die Geschwindigkeit der Entwicklungen gebremst und wir stehen eines Tages in einer Sackgasse.
Vor einigen Jahren wurde der GSM Standard in vielen Ländern der Welt eingeführt.
Von einem Tag auf den anderen war der Mensch „mobil“. Ein Handybesitzer kann beinahe auf der ganzen Erde erreicht werden. Die Mobiltelefonie hat sich in der Gesellschaft etabliert und es wird mobil telefoniert. Der GSM Standard erlaubt jedoch noch
mehr, als einfach zu telefonieren:
Von Anfang an war auch der SMS1 integriert. Dies ist ein Dienst, der es erlaubt, eine
auf 160 Zeichen beschränkte Kurzmitteilung an einen anderen Mobilteilnehmer zu senden. Dies interessierte zu Beginn nur wenige Menschen, denn lange nicht alle Handies
konnten mit diesen Short Messages umgehen. Dies sieht heute ganz anders aus. SMS
ist zu einer Art „Droge“ geworden - vorallem bei den jungen Benutzern. Es werden tausende Mitteilungen pro Tag über die Mobiltelefonie verschickt.
Seit dem 01. Februar 2000 bietet die Swisscom AG einen neuen Service auf dem Mobilnetz der Schweiz an. Dieses Feature nennt sich WAP2. Das Handy soll uns damit
Zugang auf eine Art Internet zur Verfügung stellen. Somit können auch Dienste, wie sie
aus dem Internet bekannt sind, von überall her abgerufen werden. Hierzu einige Beispiele:
• Wetterberichte
• aktuelle Börsenergebnisse
• Programme von Kinos, Theater, Konzerten etc.
Wie beim SMS vor einigen Jahren sind auch hier nicht alle Mobiltelefone fähig, auf das
WAP zu zugreifen. Es wird in Zukunft aber immer mehr Telefone geben, welche dieses
Feature integriert haben.
Unsere Arbeit befasste sich mit einem Dienst, der mit Hilfe von WAP eine Anrufumleitung von einem Telefonapparat auf ein anderes beliebiges Gerät erlaubt. Der Service
soll einer berufstätigen Person erlauben, ihren Büroanschluss auf verschiedene andere Telefonaparate umleiten zu lassen. Sicherlich konnte man das auch schon früher,
nur ist es mit dieser „Anwendung“ jetzt möglich, von einem beliebigen Standort aus, an
welchem der Benutzer natürlich Empfang auf ein GSM-Netz haben muss, den persönlichen Festanschluss umleiten zu lassen.
Winterthur, Mai 2000
Urs Bosshard
Iwan Eberhart
1. SMS = Short Message Service
2. WAP = Wireless Application Protocol
Projektarbeit 2000
-1-
Anrufumleitung
-2-
Projektarbeit 2000
Projektbeschreibung
2. Projektbeschreibung
Auf einem Schul- oder Firmenareal sind viele Leute häufig unterwegs und deshalb selten in ihrem Büro anzutreffen. Sie sind dadurch nur schwer telefonisch erreichbar. Eine
Abhilfe schaffen drahtlose Netze, die häufig auf dem DECT-Standard basieren. Weil
aber die für eine 100%-ige Abdeckung eines Firmengeländes notwendige DECT-Infrastruktur relativ aufwändig ist, bieten sich heute als Alternative sogenannte Corporate
Mobile Networks an, die auf der vorhandenen GSM-Infrastruktur eines Providers aufsetzen. Weil aber erstens der günstige GSM-Tarif nur in einem gewissen Umkreis um
den Firmenstandort gilt und man zweitens nicht unbedingt den ganzen Tag mit dem
Handy telefonieren möchte, sollte eine Anrufumleitungsfunktion auf ein Festnetztelefon oder ein Internet-Phone vorgesehen werden.
Mit einem WAP-fähigen Handy kann die Anrufumleitung auf das gewünschte Endgerät
über die Tastatur des Mobilgeräts vorgenommen werden. Das Display zeigt ein Auswahl von möglichen Endgeräten an, auf welche ankommende Anrufe umgeleitet werden können. Das Symbol des momentan aktiven Endgeräts soll speziell
gekennzeichnet werden.
Im Rahmen dieser Projektarbeit sollen mobilseitig die WAP-Seiten für die Benutzerführung und serverseitig die Verwaltung der gültigen Anrufsumleitungen und des aktuellen
Systemzustands realisiert werden. Das Kernstück der Anwendung bildet dabei eine
Datenbank, die sämtliche statischen und dynamischen Daten nichtflüchtig speichert.
Die eigentliche Anrufumleitung über eine Hicom-Zentrale oder via einen H.323 Gateway / Gatekeeper ist nicht Gegenstand dieser Arbeit.
2.1 Aufgaben
• Einarbeiten in die Server-Skript Thematik (Java Servlet oder Perl CGI-Skript)
• Definition eines Pflichtenhefts auf der Basis von Kundenbedürfnissen
• Erstellen einer SW-Spezifikation auf der Basis des Pflichtenhefts
• Definition der Schnittstellen und Module
• Entwurf der Datenbankstruktur (entity relationships)
• Konzept der WML-basierten Bedienerführung
• Implementation und Austesten der Anwendung
• Dokumentation der Projektarbeit
2.2 Infrastruktur / Tools
• Raum: E416
• Rechner: 2 PCs mit Dual-Boot: SuSE Linux 6.3 / Windows NT 4.0
• SW-Tools: Nokia Wap Toolkit, Apache Web Server, MS Access Datenbank
• CGI-Skripts: ActivePerl oder Java Servlets
2.3 Literatur / Links
ZHWAP Kommunikationsprojekt
Blockdiagramm, (Abbildung: 2.3 - 1)
Nokia Wap Toolkit 1.3 beta
http://www.forum.nokia.com/developers/wap/wap.html
Apache Web Server
http://www.apache.org
Projektarbeit 2000
-3-
Anrufumleitung
Abbildung: 2.3 - 1
-4-
Projektarbeit 2000
Pflichtenheft
3. Pflichtenheft
Mit Hilfe von WAP soll das Aktivieren und Deaktivieren von Anrufumleitungen in einer
Firma ermöglicht werden. Die offizielle Büronummer wird dann automatisch auf die
konfigurierte Rufnummer umgeleitet. Die Schaltung der Umleitung ist aber nicht Teil
dieses Projektes.
In dieser Arbeit soll nur die Benutzerführung und die Änderung in der Datenbank realisiert werden. In einer späteren, möglichen Arbeit könnten die Zustände aus der Datenbank gelesen und in der HiCom-Zentrale geschalten werden.
Folgende Umleitungen sollen realisiert werden:
• Handy
• Home
• VoIP (H.323)
• VoiceMail (z.B. Combox)
• Benutzerdefinierte Umleitung
Bei der benutzerdefinierten Umleitung soll direkt über WAP eine freiwählbare Nummer
konfiguriert werden. Die anderen „festen“ Umleitungen werden direkt in der Datenbank
vorkonfiguriert.
Die Benutzerdaten (Kürzel, Passwort, Name, Vorname, Umleitnummern) sind in einer
einfachen Accessdatenbank gespeichert.
Softwaretools:
Der WAP/WEB-Server wird mit Hilfe des ApacheServer unter Windows NT betrieben.
Mit Hilfe von Servlets wird der Zugriff über JDBC auf die Accessdatenbank realisiert.
Erweiterungsmöglichkeiten:
• gleicher Service auf dem Web (www)
• gleicher Service über SMS
• Accesstool für die Datenbankpflege
• Webtool für Datenbankpflege
• Anbindung an eine Telefonzentrale (HiCom von Siemens)
• Realisierung des Gatekeepers für VoIP
• Abfrage des Status via SMS
Projektarbeit 2000
-5-
Anrufumleitung
-6-
Projektarbeit 2000
Problemanalyse, Lösungskonzept
4. Problemanalyse, Lösungskonzept
Anhand der Aufgabenstellung konnten wir uns schnell vorstellen, auf welches Ziel hin
wir in diesem Projekt arbeiten. Wir konnten uns bereits zu diesem Zeitpunkt vorstellen,
was wir abliefern werden. Wir mussten uns jedoch eine entscheidende Frage stellen:
„Wie kommen wir zu diesem Ziel?“. Wir teilten das Projekt in Teilprobleme auf, die wir
Schritt für Schritt angingen.
4.1 Teilprobleme
• WEB/WAP-Server
Welchen Server setzen wir ein?
• Java-Servlet / Pearl
Wie werden die WML-Seiten dynamisch?
• WML
Wie werden die WAP-Seiten programmiert?
• Datenbank (Access, SQL)
Wie realisieren wir unsere Datenbank? Wie greifen wir darauf zu?
• FrameMaker / Word
Mit welcher Software schreiben wir unsere Dokumentation?
4.2 Lösungen
• WEB/WAP-Server
Wir entschieden uns für den Apache-Webserver. Er eignet sich für unser Projekt
ideal. Zudem ist er der meist verwendete Web-Server auf dem Internet. Durch
Anpassung der MIME-Types wird er auch WAP-fähig.
• Java-Servlet / Pearl
Java-Servlet und Pearl kamen in die engere Auswahl, um eine dynamische WMLSeite zu programmieren. Wir entschieden uns für Java-Servlets, da an der ZHW
einiges Know-How darüber vorhanden und Pearl wenig bekannt ist. Zudem wollten
wir einen Einblick in die Javaprogrammierung bekommen.
Wir mussten uns zuerst mit dem Entwicklertool Kawa vertraut machen, danach eigneten wir uns den grundlegenden Syntax von Java an. Sicher wurden wir durch
diese Arbeit nicht zu Java-Spezialisten, aber ein kleines Grundwissen besitzen wir
jetzt dennoch.
• WML
Da wir uns schon zuvor für WAP und WML interessiert haben, konnten wir unsere
Erfahrungen ins Projekt einfliessen lassen. Wir wussten bereits was mit WML möglich ist und hatten das Grundlagenwissen für eine WML-Seite. Natürlich kamen bei
diesem Projekt einige neue, interessante Funktionen hinzu, mit denen wir unser
Wissen erweitern konnten. Das wichtigste Hilfsmittel war die „WML Reference Version 1.1“.
• Datenbank (Access, SQL)
Wir entschieden uns für eine einfache Access-Datenbank. Wir wollten nicht viel
Zeit mit einem uns unbekannten System verlieren. Access eignet sich für kleine
Datenbanken hervorragend und ist im Microsoft Office Paket integriert. Mit unserem Grundwissen aus dem Fach „Datenbanken“ konnten wir innert kürzester Zeit
unsere Datenbank aufbauen. Auch der Zugriff mit SQL über ODBC erschien uns
als professionelle und sauber Variante. Zudem ist der Zugriff über ein Servlet relativ
einfach zu realisieren.
Projektarbeit 2000
-7-
Anrufumleitung
• Adobe FrameMaker / Word
Bis heute schrieben wir unsere Dokumentaionen ausschliesslich mit Word. Im Verlaufe unserer Projektarbeit mussten mir aber immer wieder feststellen, dass sich
dieses Programm für grössere Dokumentationen mit Bildern und Querverweisen
nicht besonders gut eignet. Wir suchten nach einer alternativen Lösung und die
Assistenten empfohlen uns Adobe FrameMaker. Wir griffen diese Variante auf und
können abschliessend sagen, dass es eine gute Wahl war. Wir kämpften zwar mit
einigen Problemen, doch wir waren in der Lage, genügend Zeit zu investieren, um
sie zu lösen. Mit diesem Wissen über FrameMaker haben wir uns sicher eine gute
Grundlage für die Dokumentation der Diplomarbeit angeeignet.
4.3 Zeitplan
Um die Arbeit gut einteilen zu können, haben wir uns einen Zeitplan zusammengestellt,
in dem wir einige wichtige Termine aufgeführt haben.
Wir konnten uns während diesen acht Wochen sehr gut an diesem Plan orientieren und
so unsere „Meilensteine“ erreichen.
Tätigkeit
Wo 11 Wo 12 Wo 13 Wo 14 Wo 15 Wo 16 Wo 17 Wo 18 Wo 19 Wo 20
Installation A rbeitsplatz
A nalyse
Pf lichtenhef t
Tools testen
A pache Server / Jserv
Lernen Java
Lernen WML
Lernen Framemaker
Datenbank
Design WML
Dokumentation
Ferien
-8-
Projektarbeit 2000
Funktionsprinzip
5. Funktionsprinzip
5.1 Aufruf von Index.wml
Der WAP-Browser sendet einen Request an die Adresse des WAP-Servers.
Dieser schickt als Antwort das Index.wml zurück. (Abbildung: 5.1 - 1)
Index.wml
WAPServlet
WAP-Adresse
DB
ChangeServlet
index.wml
DefServlet
WAP-Server
Abbildung: 5.1 - 1
5.2 Login
Der Benutzer füllt das Loginformular aus und sendet sein Loginname und sein Passwort an das WAPServlet. Er bekommt als Anwort eine Anzeige mit seinem Name, Vornamen und dem aktuellen Umleitstatus. (Abbildung: 5.2 - 1)
Index.wml
WAPServlet
Login, Passwort
Login, Passwort
DB
ChangeServlet
Name, Vorname,Status
Name, Vorname,Status
DefServlet
WAP-Server
Abbildung: 5.2 - 1
Projektarbeit 2000
-9-
Anrufumleitung
5.3 Lesen der Umleitziele
Danach liest das WAPServlet selbständig die vorhandenen Umleitziele, die für diesen
Benutzer in der Datenbank eingetragen sind, und schreibt sie in einen Array.
(Abbildung: 5.3 - 1)
Index.wml
WAPServlet
Login
DB
ChangeServlet
vorhandene Umleitziele
DefServlet
WAP-Server
Abbildung: 5.3 - 1
5.4 Generieren des Eintrags „Benutzerdefiniert“
In einem weiteren Schritt überprüft das WAPServlet, ob für den angemeldeten Benutzer das Umleitziel „Benutzerdefiniert“ in der Datenbank eingetragen ist. Meldet sich der
Benutzer das erste Mal an, generiert das WAPServlet den Eintrag automatisch (Abbildung: 5.4 - 1). Wird der Eintrag neu generiert, liest das WAPServlet die vorhandenen
Umleitziele erneut aus der Datenbank. (Abbildung: 5.3 - 1)
Index.wml
WAPServlet
ChangeServlet
generiert Eintrag
„Benutzerdifiniert“
DB
DefServlet
WAP-Server
Abbildung: 5.4 - 1
- 10 -
Projektarbeit 2000
Funktionsprinzip
5.5 Ändern des Umleitziels
Wählt nun der Benutzer den Link „aendern“, schickt das WAPServlet ein Auswahlmenü
der möglichen Umleitungen zurück. (Abbildung: 5.5 - 1)
Index.wml
WAPServlet
aendernt
DB
ChangeServlet
Auswahlmenü der möglichen Umleitzeile
DefServlet
WAP-Server
Abbildung: 5.5 - 1
Der Benutzer schickt anschliessend das gewählt Umleitziel an das ChangeServlet (Abbildung: 5.5 - 2). Ist das gewählt Umleitziel ungültig (bei der Auswahl des bereits aktuellen Umleitziels), bedient sich das ChangeServlet dem aktuellen Status aus der
Datenbank (gestrichelte Pfeile).
Index.wml
WAPServlet
Umleitziel
Login
DB
ChangeServlet
Auswahlmenü der möglichen Umleitzeile
Status
DefServlet
WAP-Server
Abbildung: 5.5 - 2
Projektarbeit 2000
- 11 -
Anrufumleitung
5.6 Update der Datenbank auf das gewählte Umleitziel
Das ChangeServlet ändert nun das vom Benutzer gewählte Umleitziel in der Datenbank. (Abbildung: 5.6 - 1)
Index.wml
WAPServlet
Login, Umleitziel
ChangeServlet
DB
DefServlet
WAP-Server
Abbildung: 5.6 - 1
5.7 Bestätigungsanzeige
Das ChangeServlet bestätigt nun die gewählte Umleitung mit dem Umleitziel und der
dazugehörigen Rufnummer (Abbildung: 5.7 - 1). Bei dem „Benutzerdefinierten“ Umleitziel führt das ChangeServlet die unter “5.8 Benutzerdefiniertes Umleitziel“ erklärte Aktion aus.
Index.wml
WAPServlet
ChangeServlet
Bestätigung mit Umleitziel
und Rufnummer
DB
DefServlet
WAP-Server
Abbildung: 5.7 - 1
- 12 -
Projektarbeit 2000
Funktionsprinzip
5.8 Benutzerdefiniertes Umleitziel
Wählt der Benutzer das „Benutzerdefinierte“ Umleitziel, wird er aufgefordert, die Rufnummer einzutragen. (Abbildung: 5.8 - 1)
Index.wml
WAPServlet
DB
ChangeServlet
Aufforderung zur Rufnummereingabe
DefServlet
WAP-Server
Abbildung: 5.8 - 1
Der Benutzer schickt die eingegebene Rufnummer an das DefServlet. Dieses aktualisiert die Datenbank mit dem neuen Eintrag. (Abbildung: 5.8 - 2)
Index.wml
WAPServlet
Login, Rufnummer
Login, Rufnummer
ChangeServlet
DB
DefServlet
WAP-Server
Abbildung: 5.8 - 2
Auch bei diesem Schritt wird zum Abschluss eine Bestätigung an den Benutzer gesendet. Hier erfolgt die Bestätigungsanzeige aber durch das DefServlet und nicht durch
das ChangeServlet, was bei “5.7 Bestätigungsanzeige“ der Fall war.
Projektarbeit 2000
- 13 -
Anrufumleitung
- 14 -
Projektarbeit 2000
Server
6. Server
6.1 Apache Webserver
Wir haben uns nach einigen Überlegungen und verschiedenen Diskussionen darauf
geeinigt, den Webserver von Apache für die Realisierung unseres Projektes zu verwenden. Die überzeugendsten Vorteile waren die gute und relativ verständliche Dokumentation, die Kosten (nämlich gratis) und sicherlich auch die Tatsache, dass er der
meistverbreiteste Server auf dem Internet ist.
Wir haben die Version 1.3.12 verwendet.
6.2 Konfiguration
6.2.1 HTTP
Die Konfiguration ist ziemlich einfach. Die Einstellungen stehen alle in einem File mit
dem Namen „httpd.conf“, das im Verzeichnis „*\apache\conf“ zu finden ist. Für unseren
Server haben wir folgende Anpassungen gemacht:
...
# DocumentRoot: The directory out of which you will serve your
# documents. By default, all requests are taken from this directory, but
# symbolic links and aliases may be used to point to other locations.
#
DocumentRoot "G:/ZHWAP"
...
# This should be changed to whatever you set DocumentRoot to.
#
<Directory "G:/ZHWAP">
...
6.2.2 WAP, WML
Damit der Server auch WAP-Seiten darstellen kann, müssen die MIME-Types angepasst werden. Dieses File heisst „mime.types“. Es ist im selben Verzeichnis, wie das
HTTP-Konfigurationsfile zu finden. Um den Server WAP-fähig zu machen, muss folgendes hinzugefügt werden:
...
application/vnd.wap.wbxml
application/vnd.wap.wmlc
wmlc
application/vnd.wap.wmlscriptc
wmlsc
...
text/vnd.wap.wml
wml
text/vnd.wap.wmlscript
wsc
text/vnd.wap.wmlscript
wmls
text/vnd.wap.wmlscript
wmlsc
...
6.2.3 Java-Server
Der Apache ist von Haus aus noch nicht Java-Servlet fähig und so muss der ApacheJServ installiert werden. Dies ist problemlos durchzuführen, denn die Installation nimmt
alle benötigten Einstellungen automatisch vor.
Wir haben die Version 1.1 verwendet.
Projektarbeit 2000
- 15 -
Anrufumleitung
- 16 -
Projektarbeit 2000
Datenbank
7. Datenbank
Wir haben die Datenbank, welche über Servlets (ODCB, JDBC) angesprochen wird,
mit dem Microsoft Access 97 SR-2 realisiert.
Um die Datenbank zu administrieren, muss eine Access Version vorhanden sein, denn
wir haben keine Administrationssoftware oder Tool dafür programmiert.
7.1 Entitäts Typen
7.1.1 Mitarbeiter
Jeder Mitarbeiter, der die WAP-Anrufumleitungsanwendung benutzen will, muss zuerst eingetragen werden.
Die Entität (Tabelle) Mitarbeiter umfasst folgende Attribute (Spalten):
• Login
ist unique und wird durch den DB-Administrator vergeben
• Passwort
wird vom DB-Administrator vergeben
• Name
Nachname des Benutzers
• Vorname
Vorname des Benutzers
• Status
Status der Umleitung, wird von der Entität Status zur Verfügung
gestellt
7.1.2 Destination
In dieser Entität sind die Umleitungsinformationen gespeichert. Der Administrator der
Datenbank muss hier die verschiedenen Umleitungen eintragen, die ein Benutzer haben will oder haben darf. So kann vermieden werden, dass der WAP-Anwender Umleitungen auswählt, welche für ihn gar nicht möglich sind.
Die Entität (Tabelle) Destination umfasst folgende Attribute (Spalten):
• Key
Schlüssel, welcher vom Access automatisch generiert wird
• Nummer
Nummer, auf welche die Umleitung erfolgen soll
• UID
Loginname des Users (es müssen bestehende Kürzel aus der
Relation Mitarbeiter verwendet werden)
• Ziel
Ziel der Umleitung, wird von der Entität Status zur Verfügung gestellt
7.1.3 Status
Im Status wird die Information gespeichert, welche Umleitungen im System überhaupt
möglich sind.
Die Entität (Tabelle) Status umfasst folgenes Attribut (Spalte):
• Mode
Arten, der möglichen Umleitungen
Projektarbeit 2000
- 17 -
Anrufumleitung
7.2 ER-Schema1
Passwort
Nummer
Key
Name
UID
Login
Destination
Mitarbeiter
Vorname
1
hat
Umleitung
n
n
n
hat
aktuellen
hat
aktuellen
1
1
Status
Mode
7.3 Relationales Datenbankmodell
Mitarbeiter
Login
Passwort
Name
Nummer
UID
Vorname
Status
Destination
Key
Ziel
Status
Mode
1. Entity-Relationship Model, nach Elmasri / Navathe
- 18 -
Projektarbeit 2000
Datenbank
7.4 Einbindung ins System
Damit das Servlet auf die Access Datenbank zugreifen kann, muss sie unter den
ODBC-Datenquellen im System eingebunden werden. (Abbildung: 7.4 - 1)
Abbildung: 7.4 - 1
Projektarbeit 2000
- 19 -
Anrufumleitung
- 20 -
Projektarbeit 2000
Programmierung
8. Programmierung
Die Programmierung besteht aus einer WML-Einstiegsseite (index.wml) und drei Servlets (WAPServlet.class, ChangeServlet.class, DefServlet.class). Jedem Servlet werden mit „post“ die benötigten Parameter übergeben.
8.1 index.wml
Das WML-File index.wml dient zum Einstieg in das System. Es zeigt zuerst das
ZHWap-Logo und wechselt nach ca. 3 Sekunden zur Login-Seite.
In zwei Inputfeldern können Loginname und Passwort eingegeben werden. Nach Betätigung des „Login“-Links werden die Werte der Inputfelder an das „WAPServlet“ gepostet.
8.2 WAPServlet.class
Das WAPServlet überprüft die übergebenen Werte. Werden keine Werte übergeben,
sendet das Servlet eine Fehlermeldung an den Benutzer und fordert ihn auf, sich erneut anzumelden.
Werden gültige Daten empfangen, startet das Servlet anhand des Login und des Passwortes eine Datenbankabfrage über SQL. Sind die Loginangaben korrekt, wird dem
Benutzer eine Statusseite mit seinem Namen und dem aktuellen Umleitziel geschickt.
Sind die Loginangaben hingegen falsch, erhält der Benutzer eine Fehlermeldung und
wird aufgefortert, sich erneut anzumelden.
Bei der Anwahl des „aendern“-Links sendet das Servlet eine Liste der möglichen Umleitziele, die es anhand der Datenbankeinträge automatisch generiert. Nachdem der
Benutzer ein Umleitziel ausgewählt hat und den Link „uebernehmen“ aktiviert, schickt
das Servlet den Loginnamen und das gewählte Umleitziel mit post dem „ChangeServlet“.
8.3 ChangeServlet.class
Das ChangeServlet überprüft die übergebenen Werte. Ist das Umleitziel nicht gültig
(kann eintreten, wenn das Umleitziel nicht geändert wird), wird das aktuelle Umleitziel
übernommen. Als nächstes wird das gewählte Umleitziel in die Datenbank geschrieben und die dazugehörige Rufnummer ausgelesen.
Sofern der Benutzer nicht das Umleitziel „Benutzerdefiniert“ ausgewählt hat, wird ein
Abschlussbildschirm mit der gewählten Umleitung und der dazugehörigen Rufnummer
angezeigt.
Wählt der Benutzer das Umleitziel „Benutzerdefiniert“, wird er aufgefordert, eine Zielrufnummer einzugeben. Danach postet das Servlet den Loginnamen und die benutzerdefinierte Rufnummer an das „DefServlet“.
8.4 DefServlet.class
Das DefServlet überprüft die übergeben Werte. Ist die Rufnummer ungültig, wird eine
Fehlermeldung angezeigt. Ist die Rufnummer gültig, wird die Datenbank mit dieser aktualisiert. Danach wird ein Abschlussbildschirm mit der gewählten Umleitrufnummer
angezeigt.
Projektarbeit 2000
- 21 -
Anrufumleitung
- 22 -
Projektarbeit 2000
Testprotokoll
9. Testprotokoll
Mit folgendem Testprotokoll wurde unsere Software auf mögliche Fehler getestet. Als
Referenz benutzten wir das Nokia 7110 und den WinWAP-Browser.
9.1 Anwählen der ZHWap-Seite
• ZHWap-Logo erscheint für ca. 3 Sekunden
• Loginbildschirm erscheint
Nokia 7110
WinWAP
EF NEF
EF NEF
9.2 Login
Testuser-Account „Hans Muster“
• Es kann mit Login „hm“ und Passwort „test“ korrekt eingeloggt werden.
Falscher Login
• Bei der Eingabe eines falschen Loginnamen erscheint
die Fehlermeldung „Falscher Login“.
• Bei der Eingabe eines falschen Passworts erscheint
die Fehlermeldung „Falscher Login“.
• Bei leerem Formular erscheint „Falscher Login“.
9.3 Statusanzeige
• Nach korrektem Login wird der Name, Vorname und
der aktuelle Status angezeigt.
• In der Seitenüberschrift wird „ZHWap: Kürzel“ angezeigt. Testbeispiel „ZHWap: hm“
• Mit „aendern“ erscheint die Seite mit der Auswahl der
möglichen Umleitziele.
9.4 Auswahl der Umleitziele
• Als Standardwert wird die aktuelle Umleitung im Auswahlmenü angezeigt.
• Die möglichen (in der Datenbank definierten) Umleitziele können ausgewählt werden.
• Ist in der Datenbank kein Umleitziel definiert (Benutzer
muss aber registriert sein), wird nur „AUS“ und „Benutzerdefiniert“ angezeigt.
• Wird kein neues Umleitziel gewählt, wird das aktuelle
übernommen.
9.5 Umleitung AUS
• Wird als Umleitziel „AUS“ gewählt, erscheint der
Abschlussbildschirm „Umleitung ausgeschaltet. Sie
koennen die Verbindung jetzt trennen! bye...“
Projektarbeit 2000
- 23 -
Anrufumleitung
9.6 Umleitung „normal“
• Wird ein „normales“ Umleitziel gewählt (z.B. Home,
Handy, usw.), so erscheint der Abschlussbildschirm mit
dem gewählten Umleitziel und der dazugehörigen Rufnummer.
Nokia 7110
WinWAP
EF NEF
EF NEF
9.7 Umleitung „Benutzerdefiniert“
• Wird das Umleitziel „Benutzerdefiniert“ gewählt,
erscheint die Anzeige mit einem Eingabefeld für die
benutzerdefinierte Rufnummer.
• Wird die „Benutzerdefinierte“ Umleitung das erste Mal
gewählt, so erscheint im Eingabefeld „KEINE NUMMER“.
• Wird die „Benutzerdefinierte“ Umleitung erneut
gewählt, erscheint im Eingabefeld die aktuelle Rufnummer der benutzerdefinierten Umleitung.
• Im Eingabefeld für die Rufnummer können nur Zahlen
eingegeben werden.
• Wird keine Nummer eingetragen, erscheint die Fehlermeldung „KEINE NUMMER!“
• Wird die Nummer korrekt eingetragen, erscheint der
Abschlussbildschirm mit der Rufnummer.
9.8 Kommentar
Einige Punkte werden eventuell von andern WAP-Browsern, die sich nicht genau an
die Spezifikationen von WAP 1.1 halten, nicht erfüllt: Zum Beispiel werden beim Nokia
7110 fette Textstellen nicht fett angezeigt, beim WinWAP-Browser ist es möglich, bei
der Eingabe der benutzerdefinierten Rufnummer auch Buchstaben einzugeben, obwohl das Feld nur Zahlen akzeptieren sollte.
Datum:____________________
- 24 -
Visum:_______________________
Projektarbeit 2000
Kurzanleitung für die Inbetriebnahme des Systems
10. Kurzanleitung für die Inbetriebnahme des Systems
Java 2 SDK, Standard Edition Version 1.2.2 muss bereits auf dem System installiert
sein. Sie sollte sich im Verzeichnis c:\programme\jdk1.2.2 befinden.
10.1 Installation Java Servlet Development Kit
• Das File jsdk20-win32.exe ausführen.
• Das Java Servlet Development Kit ins Verzeichnis c:\programme\ installieren.
10.2 Installation Apache Server
• Das File apache_1_3_12_win32.exe ausführen.
• Den Apache Server standardmässig ins Verzeichnis c:\programme\ installieren.
10.3 Installation Apache JServ
• Das File ApacheJServ-1_1.exe ausführen.
• Mit „Java Virtual Machine“ ist das Programm java.exe gemeint, welches sich üblicherweise im Verzeichnis \jdk1.2.2\bin befindet. (Abbildung: 10.3 - 1)
Abbildung: 10.3 - 1
Projektarbeit 2000
- 25 -
Anrufumleitung
• Als nächstes muss der Pfad des „Java Servlet Development Kit“ angegeben werden. (Abbildung: 10.3 - 2)
Abbildung: 10.3 - 2
• Weiter muss angegeben werden, wo sich die Config-Files des Apache Server
befinden. (Abbildung: 10.3 - 3)
Abbildung: 10.3 - 3
• Nach dem verlangten Reboot des Systems kann der Apache-Server gestartet werden.
Mit dem Link http://hostname.zhwin.ch/servlets/IsItWorking wird getestet, ob der
Server nun servletfähig ist.
- 26 -
Projektarbeit 2000
Kurzanleitung für die Inbetriebnahme des Systems
10.4 Kopieren der Config-Files
• In einem weiteren Schritt müssen die beiden Config-Files (httpd.conf und
mime.types) ins Config-Verzeichnis des Apache-Servers kopiert werden. (C:\Programme\Apache Group\Apache\conf\). Die MIME-Type sind in diesen Files bereits
angepasst.
Jetzt sollte der Server auch WAP-fähig sein.
10.5 Kopieren der HTML- und WML Dateien
• Die Dateien index.html und index.wml müssen ins DocumentRoot kopiert werden.
Dieses ist im Config-File httpd.conf als G:\ZHWAP definiert. Bei einem anderen
DocumentRoot Verzeichnis muss dieser Eintrag im httpd.conf geändert werden.
10.6 Kopieren der Bilder
• Die Bilder (ZHWap.gif und ZHWap.wbmp) müssen ins Verzeichnis /pictures im
DocumentRoot kopiert werden.
10.7 Kopieren der Servlets
• Als nächstes müssen die kompilierten Servlets (WAPServlet.class, ChangeServlet.class und DefServlet.class) ins Servletverzeichnis kopiert werden (C:\Programme\Apache JServ 1.1\servlets).
10.8 Einbinden der Datenbank
• Für den Zugriff auf die Access-Datenbank muss diese über ODBC ins System eingebunden werden. Dies geschieht in der Systemsteuerung unter ODBC-Datenquellen. Hier muss eine neue System-DSN angelegt werden. Für den „Data Soure
Name“ muss zwingend zhwap gewählt werden. Unter Database gibt man das Verzeichnis an, in welchem sich das zhwap_database.mdb File befindet. (Abbildung:
10.8 - 1)
Abbildung: 10.8 - 1
Projektarbeit 2000
- 27 -
Anrufumleitung
10.9 Test der Funktionalität
Sind alle Schritte richtig ausgeführt worden, kann mit einem Web-Browser die Seite index.html aufgerufen werden. Diese Seite dient ausschliesslich zum Test. Mit einem
WAP-Browser wird über die Adresse http://hostname.zhwin.ch/index.wml ins System
eingestiegen.
- 28 -
Projektarbeit 2000
Betriebsanleitung
11. Betriebsanleitung
Die WAP-Seite kann auf jedem beliebigen WAP-Browser (Mobiltelefon, Handheld,
usw.) dargestellt werden.
11.1 Seite anwählen
Die Seite wird durch die entsprechende Adresse des WAPServers angewählt.
(ZHWap: http://ksy119.zhwin.ch/index.wml)
Folgender Begrüssungsbildschirm (Abbildung: 11.1 - 1) erscheint auf dem WAP-fähigen Browser.
Abbildung: 11.1 - 1
11.2 Login
Nach ca. 3 Sekunden erscheint automatisch das Login-Fenster (Abbildung: 11.2 - 1). Hier muss das Loginkürzel und das
persönliche Passwort eingegeben werden. Danach werden
die Angaben mit dem „Login“-Link an den Server übermittelt.
(Beispiel: Login = hm, Passwort = test, für Hans Muster)
Abbildung: 11.2 - 1
Wenn das Loginkürzel und das Passwort korrekt eingegeben
worden sind, erscheint das Statusfenster (Abbildung: 11.2 2), welches den Benutzernamen und den aktuellen Umleitstatus anzeigt.
Abbildung: 11.2 - 2
Projektarbeit 2000
TIP: Bei dieser Seite kann ein Bookmark gesetzt werden. Danach ist es möglich, ohne Loginprozedur auf das System zuzugreifen.
- 29 -
Anrufumleitung
11.3 Umleitung ändern (Normal)
Durch Anwählen des „aendern“-Links gelangt man in das Untermenü, um die Anrufumleitung zu ändern oder um sie auszuschalten. (Abbildung: 11.3 - 1)
Abbildung: 11.3 - 1
Wählt man nun das Feld mit der aktuellen Umleitung aus, erscheint ein Menü mit den möglichen Umleitungen.
(Abbildung: 11.3 - 2)
Abbildung: 11.3 - 2
ACHTUNG: Es werden nur die möglichen Umleitungen angezeigt. Es erscheinen nur
die Umleitziele, welche in der Benutzerdatenbank durch den Datenbank-Administrator
definiert wurden.
Wurde eine Umleitung ausgewählt, muss sie nun mit „uebernehmen“ aktiviert werden. (Abbildung: 11.3 - 3)
Abbildung: 11.3 - 3
Der Server bestätigt die Änderung mit einem AbschlussScreen (Abbildung: 11.3 - 4). Dieser zeigt die gewählte Umleitung mit der Nummer an. Nachdem diese Anzeige erscheint,
kann die Verbindung beendet werden.
Abbildung: 11.3 - 4
- 30 -
Projektarbeit 2000
Betriebsanleitung
11.4 Umleitung ändern (Benutzerdefiniert)
Durch Anwählen des „aendern“-Links gelangt man in das Untermenü, um die Anrufumleitung zu ändern oder auszuschalten. (Abbildung: 11.4 - 1)
Abbildung: 11.4 - 1
Wählt man das Feld mit der aktuellen Umleitung aus, erscheint ein Menü mit den möglichen Umleitungen (Abbildung:
11.4 - 2). Hier wird nun die Umleitung „Benutzerdefiniert“ gewählt.
Abbildung: 11.4 - 2
Wurde eine Umleitung „Benutzerdefiniert“ ausgewählt, muss
sie mit „uebernehmen“ aktiviert werden.
(Abbildung: 11.4 - 3)
Abbildung: 11.4 - 3
Nun gelangt man in das Menü, in welchem die benutzerdefinierte Nummer definiert wird (Abbildung: 11.4 - 4). Hier muss
eine Rufnummer eingetragen werden. Ist bereits eine Rufnummer eingetragen worden, kann sie geändert werden.
Die eingegebene Rufnummer muss mit „uebernehmen“ aktiviert werden.
Abbildung: 11.4 - 4
Projektarbeit 2000
- 31 -
Anrufumleitung
Der Server bestätigt die Änderung mit einem AbschlussScreen (Abbildung: 11.4 - 5). Dieser zeigt die gewählte Umleitungsnummer an. Nachdem diese Anzeige erscheint, kann
die Verbindung beendet werden.
Abbildung: 11.4 - 5
11.5 Umleitung ausschalten
Nach dem Login erscheint der Status-Screen.
(Abbildung: 11.5 - 1)
Auch hier gelangt man mit dem „aendern“-Link in das Untermenü, um die Anrufumleitung zu ändern oder auszuschalten.
(Abbildung: 11.5 - 2)
Abbildung: 11.5 - 1
Wählt man das Feld mit der aktuellen Umleitung, erscheint ein
Menü mit den möglichen Umleitungen.
(Abbildung: 11.5 - 3)
Abbildung: 11.5 - 2
Hier kann die Umleitung „AUS“ gewählt werden, um die Umleitung zu deaktivieren.
Abbildung: 11.5 - 3
- 32 -
Projektarbeit 2000
Betriebsanleitung
Der Zustand „AUS“ muss mit „uebernehmen“ aktiviert werden.
(Abbildung: 11.5 - 4)
Abbildung: 11.5 - 4
Der Server bestätigt die Änderung mit einem AbschlussScreen (Abbildung: 11.5 - 5). Nachdem diese Anzeige erscheint, kann die Verbindung beendet werden.
Abbildung: 11.5 - 5
Projektarbeit 2000
- 33 -
Anrufumleitung
- 34 -
Projektarbeit 2000
Entwicklungstools und WAP-Browser
12. Entwicklungstools und WAP-Browser
12.1 Nokia WAP Toolkit
Für unser Projekt benutzten wir die Version 1.3beta des Nokia WAP Toolkit. Im Hintergrund benötigt die Software JavaTM Run Time Envirment 1.2.2.
Abbildung: 12.1 - 1
Nokia stellt ein konfortables Entwicklungstool für die WAP-Programmierung zu Verfügung. Im WML-Editor (Abbildung: 12.1 - 1) werden die Schlüsselwörter verschiedenfarbig dargestellt. Dies ermöglicht eine strukturierte und saubere Darstellung bei der
Programmierung. Anschliessen besteht die Möglichkeit, den WML-Code zu compilieren und die Syntax-Fehler anzuzeigen. Wir benutzten dieses Hilfsmittel, um den von
Hand programmierten WML-Code in den Servlets zu verifiziern. Zum Teil schlichen
sich Syntax-Fehler ein, die beim Betrachten mit einem WAP-Browser nicht sichtbar
Projektarbeit 2000
- 35 -
Anrufumleitung
wurden.
Das Nokia WAP Toolkit bietet weiter die Möglichkeit,
die programmierte WAP-Seite auf einem integrierten
Simulator zu testen. Dieser stellt ein WAP-fähiges
Mobiltelefon dar, welches alle in WAP 1.1 festgelegten Spezifikationen erfüllt.
Wichtig für den Simulator sind folgende Codezeilen:
<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD
WML 1.1//EN" "http://www.wapforum.org/DTD/
wml_1.1.xml">
<!-- Source Generated by WML Deck Decoder -->
Ohne diesen Header ist es nicht möglich, die WAPSeiten auf dem Simulator zu testen. Für einen konventionellen WAP-Browser sind diese Zeilen nicht
notwendig, müssen aber auch nicht entfernt werden.
Das Nokia Toolkit ist sehr benutzerfreundlich und
läuft, obwohl es noch eine Betaversion ist, sehr stabil.
Dieses Entwicklertool unterstützt auch die Programmierung vom WML-Script und beinhaltet einen einfachen WBMP-Editor. Diese Funktionen wurden aber
von uns nicht genutzt.
Abbildung: 12.1 - 2
12.2 Kawa
Die Servlets programmierten
und kompilierten wir mit Kawa,
einem konventionellen JAVAEntwicklertool.
Wir benutzten die Version 3.22
mit JDK 1.2.2.
- 36 -
Projektarbeit 2000
Entwicklungstools und WAP-Browser
12.3 pic_2_wbmp
Um BMP-Bilder in WBMP-Bilder zu konvertieren, verwendeten wir pic_2_wbmp Version 1.0 (Abbildung: 12.3 - 1) von Ginco, ein komfortables und einfaches Konventierungsprogramm. Das von Nokia im Toolkit 1.3beta integrierte Tool genügte unseren
Anforderungen nicht.
Abbildung: 12.3 - 1
12.4 WinWAP
Während der Entwicklung
stellte sich heraus, dass sich
der PC-basierende WAPBrowser WinWAP (Abbildung: 12.4 - 1) von Slob-Trot
Software am besten eignete,
um die programmierten Seiten einfach und schnell zu testen. Er ist sehr einfach zu
bedienen und es ist möglich,
den Source-Code der WMLSeite schnell und unkompliziert in einem Textfenster
darzustellen.
Wir verwendeten die registrierte Version 2.3 Light.
Abbildung: 12.4 - 1
Projektarbeit 2000
- 37 -
Anrufumleitung
12.5 YOURWAP.com
Ein weiterer WAP-Browser, den wir einsetzten, war YOURWAP.com Version 1.16 (Abbildung: 12.5 - 1) von o3sis Information Technology. YOURWAP.com ist ein WEB/
WAP-basierender gratis Dienst. Das gelieferte Programm erlaubt es, auf WEB- und auf
WAP-Seiten zuzugreifen. Wir nutzten dieses Tool hauptsächlich zur Überprüfung der
Darstellung und für die Screen-Shots, die wir in die Bedienungsanleitung einfügten.
Das Programm simuliert das Nokia 7110 ziemlich realistisch. Wir mussten jedoch bei
der Darstellung kleine Abweichungen feststellen.
Abbildung: 12.5 - 1
- 38 -
Projektarbeit 2000
Entwicklungstools und WAP-Browser
12.6 Nokia 7110
Mit dem 7110 (Abbildung: 12.6 - 1) brachte Nokia das erste Mobiltelefon mit WAP 1.1 auf den Markt. Wir nutzten dieses Gerät,
um unsere Seiten im Feldversuch zu testen. Unser Testgerät bedient sich der Firmware Version 4.77. Leider mussten wir feststellen, dass diese Firmware noch nicht stabil läuft. In der
Testphase kam es manchmal sogar zu Totalabstürzen.
Weiter entnahmen wir dem „Service Developer‘s Guide for the
Nokia 7110“, dass folgende Tags, die zur Optimierung des Layouts der WML-Seite dienen, nicht unterstützt werden:
FIELDSET, B, U, I, BIG, SMALL, EM, STRONG
Abbildung: 12.6 - 1
Weiter besitzt der WAP-Browser im Nokia 7110 folgende Einschränkungen:
• Links befinden sich immer auf einer eigenen Zeile.
• Bilder sind immer auf einer eigenen Zeile.
• Bilder sind immer zentriert.
• Der Text ist immer linksbündig.
• Zeilenumbruch erfolgt immer automatisch.
• Inputfelder sind immer auf einer eigenen Zeile.
• Tabellen werden folgendermassen dargestellt:
Beispiel:
123
A B Img
auf dem Nokia 7110:
1
2
3
A
B
Img
Diese Einschränkung hat nur das Nokia 7110. Das Ericsson R320s kann diese Tags
ohne Probleme verarbeiten. Auch die getesteten PC-basierenden WAP-Browser konnten diese Befehle darstellen.
Schade, dass Nokia diese „Probleme“ des 7110 bis zum heutigen Tag noch nicht beseitigen konnte, was dem Telefon natürlich einen Minuspunkt einspielt. Es bleibt zu
hoffen, dass Nokia eine Firmware mit einem neuen WAP-Browser realisiert, der alle
Möglichkeiten der WML-Sprache ausnutzen kann.
Projektarbeit 2000
- 39 -
Anrufumleitung
- 40 -
Projektarbeit 2000
Grundlagen zu WML
13. Grundlagen zu WML
Aufgrund des knappen Platzes auf Handy-Displays wird bei WML-Dokumenten die
Seite (genannt "Deck") in mehrere kleinere Abschnitte unterteilt. Diese heissen "Card".
Wegen der Übertragungsraten wird ein Deck komplett übertragen und im Speicher abgelegt. Die erste "Card" wird angezeigt. Ähnlich wie in HTML innerhalb einer Seite,
kann zwischen diesen Cards gesprungen werden. Da sich diese bereits im Speicher
befinden, ist es unnötig, eine neue Verbindung herzustellen.
Beim Programmieren von WML-Seiten muss man sich folgendes vorstellen: Man nehme einen Stapel von Karteikarten (das Deck). Auf jeder Karte stehen die Informationen
und man kann von Karte (Card) zu Karte springen. Wird ein anderer Stapel (eine andere WML-Seite) genommen, dauert der Sprung länger. Aus diesem Grund sollten die
zusammenhängenden Seiten möglichst in einen Kartenstapel platziert werden.
Bevor wir nun zur Struktur von WML-Seiten und den eigentlichen Befehlen kommen,
ein paar grundsätzliche Richtlinien:
• Endung der WML-Datei ist logischerweise "*.wml".
• Umlaute sind in WML noch gefährlicher als in HTML. Entweder müssen sie mit den
entsprechenden Kodierungen (Ü zu Ü,...) maskiert werden oder man verwenden anstatt Ü - Ue, Ä - Ae,... Es kann aber auch versucht werden, die Umlaute zu
vermeiden, was etwas schwieriger sein sollte.
• WAP-Browser sind nicht sehr tolerant, was die Schreibweise der Tags betrifft. Während viele in HTML die Tags lieber komplett in Grossbuchstaben schreiben (wegen
der besseren Lesbarkeit), sollten dies in WML unterlassen werden. Tags sollten
immer klein geschrieben werden.
• Tags werden meist mit <tag> begonnen und mit </tag> beendet. Benötigt der Tag
kein abschliessendes Element, wird der Schrägstrich bereits in das erste Element
aufgenommen: <tag eigenschaft=""/>.
Für eine Leerzeile brauch man zum Beispiel nur <p/> zu schreiben.
• Es ist kein Extra-Web-Server notwendig, aber zwei Einstellungen müssen dennoch
gemacht werden.
text/vnd.wap.wml - .wml
image/vnd.img.wbmp - .wbmp
Während Header bei einer HTML-Seite noch nicht Pflicht sind, sollten dies bei einer
WML-Seite nicht vergessen werden. Der Header lautet:
"[POYHUVLRQ "!
'2&7<3(ZPO38%/,&:$3)2580'7':0/(1
KWWSZZZZDSIRUXPRUJ'7'ZPOB[PO!
Die erste Zeile weist auf die Abstammung von XML hin. Jeder XML-Browser sollte
auch in der Lage sein, WML-Seiten anzuzeigen.
Ein Deck wird wie folgt gekennzeichnet:
ZPO!
ZPO!
Projektarbeit 2000
- 41 -
Anrufumleitung
Innerhalb eines Decks befinden sich nun verschiedene Cards. Diese werden ebenfalls
über ein Tag abgegrenzt, das folgendermassen aussieht:
FDUGLG WHVWFDUGWLWOH 8HEHUVFKULIWGHU&DUG!
S!:LHJHZRKQWNHQQ]HLFKQHWGDVHLQHQ7H[WDEVDW]'HU7H[WPXVVDXI:0/
6HLWHQLQGHQ$EVDW]WDJVVWHKHQS!
FDUG!
Die "id" sollte nicht länger als 8 Zeichen gross sein. Damit kann dann ähnlich einem
Anker in HTML auf die Card zugegriffen werden, mit "#cardid". Textabsätze werden mit
<p></p> eingefasst. Es kann auch mit 'align=""' die Ausrichtung angegeben werden.
Möglich sind "right", "left" oder "center".
13.1 Links
Dies funktioniert wie in HTML. Interne Links auf anderen Cards eines Decks können so
erreicht werden:
DKUHI FDUG!=XU&DUGD!
Externe Links können natürlich ebenso gesetzt werden. Hierzu verwenden man den relativen oder absoluten Pfad, wie von HTML gewohnt.
DKUHI ZPOGHFNZPO!=XP'HFND!
DKUHI KWWSZDSKDIDVGHZPO!)DKUSODQDXVNXQIWGHU%DKQD!
13.2 Tabellen
Auch hier gleichen sich HTML und WML sehr. Eine Beispiel-Tabelle sieht wie folgt aus:
WDEOHWLWOH 7HVW7DEHOOHFROXPQV !
WU!WG!=HOOHWG!WG!=HOOHWG!WU!
WU!WG!=HOOHWG!WG!=HOOHWG!WU!
WU!WG!=HOOHWG!WG!=HOOHWG!WU!
WDEOH!
Die Angabe der Spalten mit "columns=" ist Pflicht. Das Verschachteln von Tabellen ist
laut den Spezifikationen (WML 1.1) nicht erlaubt.
- 42 -
Projektarbeit 2000
Grundlagen zu WML
13.3 Textauszeichnungen
Ähnlich wie in HTML kann auch in WML Texte in der Form besonders hervorgehoben
werden. Diese Tags werden aber nach unseren Informationen nicht von allen Anbietern unterstützt.
E!'LHVHU7H[WZLUGIHWWEROGGDUJHVWHOOWE!
L!'LHVHU7H[WZLUGNXUVLYLWDOLFDQJH]HLJWL!
X!'LHVHU7H[WLVWXQWHUVWULFKHQX!
Wie in HTML kann die Unterstreichung von Textpassagen zur Verwechslung mit einem
Link führen. Daher sollte man die Verwendung der Unterstreichung vermeiden.
Die Informationen über die WML-Tags haben wir der offiziellen Spezifikation entnommen. Wir wissen aber leider nicht, ob und wie diese Vorgaben von den Anbietern der
WML-Browser (beziehungsweise der Handyhersteller) umgesetzt werden.
13.4 Einbindung von Bildern
Es ist auch möglich, Bilder in die Cards mit einzubeziehen. Allerdings müssen diese
Bilder in einem speziellen Format vorhanden sein: ".wbmp". Es gibt noch sehr wenige
Programme, die dieses Format unterstützen.
Die Grösse solcher Bilder darf sich meist nur in zweistelligen Pixeln bewegen. Das
heisst, dass zum Beispiel für das Nokia 7110 eine solche Grafik nur 84 X 48 gross sein
darf. Das ist natürlich von Handy zu Handy unterschiedlich. Früher oder später werden
auch Palms und andere PDAs WML unterstützen. Dort steht dann mehr Platz zur Verfügung. Am besten man bietet verschiedene Versionen an: eine mit Grafiken und eine
Nur-Text-Version.
Ausserdem haben die Grafiken nur eine Farbtiefe von 1 Bit, also Schwarz-Weiss-Grafiken. Nokia stellt ein Konventierungstool (http://7110.nokia.de/wapkurs/wbmp/
wbmp_tools.zip) zur Verfügung. Dieses Tool arbeitet aber nur auf der Dos-Ebene.
Der Aufbau des Tags ist ähnlich zu HTML, ebenso die möglichen Eigenschaften des
Tags. Hier ein Beispiel:
LPJVUF WHVWZEPSDOW %HVFKUHLEXQJGHV%LOGHV
YVSDFH KVSDFH DOLJQ ERWWRPKHLJKW ZLGWK !
Der Alternativ-Text wird immer dann verwendet, wenn der Browser (zum Beipsiel ein
Handy) keine Bilder darstellen kann oder das Bild nicht vorhanden ist. Weiterhin kann
"vspace" (oben und unten) und "hspace" (links und rechts) verwendet werden, um zusätzlichen Platz um das Bild herum zu reservieren.
Die Eigenschaft "align" dient wie gewohnt zur Ausrichtung des Bildes, "height" und
"width" geben die Höhe und die Breite an. Diese Angabe wird auch in WML dazu verwendet, den Platz für das Bild zu reservieren. Dadurch wird die Card schneller aufgebaut.
Projektarbeit 2000
- 43 -
Anrufumleitung
13.5 Menü/Buttons
In WML kann auch eine Art Menü erstellt werden. Die Darstellung ist aber dem anzeigenden Gerät vorbehalten. Bei Handys wird dies meist am Ende der Seite links und
rechts angezeigt. An der selben Stelle kann mit Extra-Tasten diese Funktionen schnell
ausgewählt werden. Dazu sollte dieser Code am Ende einer Card stehen:
GRW\SH DFFHSWODEHO RNQDPH :HLWHU!
JRKUHI FDUG!
GR!
Die Eigenschaft "type" soll für den Browser ein Hinweis sein, wozu dieser spezielle Link
gedacht ist. Durch die Spezifikationen sind einige Typen vordefiniert. Wie diese allerdings durch die WML-Browser umgesetzt werden, bleibt abzuwarten. Folgende Typen
gibt es:
• accept
Annahme; akzeptieren - dient zum Beispiel der Bestätigung von Abfragen.
• prev
Zurück - Ähnlich dem Back-Buttons in HTML-Browsern.
• help
Hilfe - Hiermit kann zum Beispiel ein Link zu einer Hilfeseite eingebaut werden.
• reset
Zurücksetzen - Zum Beispiel um ein Formular zu löschen.
• options
Optionen - Für zusätzliche Einstellungen.
• delete
Löschen - Zum Löschen eines Elementes oder der aktuellen Auswahl.
Innerhalb des Do-Elementes stehen Tasks. Folgende Tasks sind möglich:
• go
Hiermit wird eine URL oder eine andere Card aufgerufen.
• prev
Damit wird die vorhergehende URL aufgerufen. Ähnlich dem Back-Button bei
HTML-Browsern.
• refresh
Dieser Task lädt die aktuelle Seite erneut.
• noop
Dadurch macht der Browser "nichts". Dies dient zum Löschen von do-Elementen
auf Card-Ebene. Dazu später mehr.
Wollen Sie einen solchen Menüpunkt auf allen Cards eines Decks anzeigen, können
Sie ihn auf Deck-Ebene erstellen. Der folgende Abschnitt muss in diesem Fall vor der
ersten Card stehen, als Vorlage für alle weiteren Cards.
WHPSODWH!
GRW\SH RSWLRQVODEHO =XUXHFNQDPH SUHY!
SUHY!
GR!
WHPSODWH!
- 44 -
Projektarbeit 2000
Grundlagen zu WML
In einer Card können nun diesen Menüpunkt verwendet, überschrieben oder gelöscht
werden. Ist in der Card kein do-Element mit dem gleichen Namen vorhanden, wird dieses Element auch in der Card verwendet.
Zum Überschreiben des allgemeinen do-Elementes wird in der Card ein neues Element mit dem gleichen Namen definiert. Dadurch können verschiedene Optionen für
spezielle Cards festgelegt werden.
Soll ein do-Element auf einer Card nicht angezeigt werden, wird in der Card ein do-Element mit dem noop-Task erstellt.
13.6 Formulare
In WML können auch Formulare eingesetzt werden. Da die Übermittelung an ein CGISkript auch möglich ist, können Datenbankabfragen oder andere dynamisch erzeugte
Seiten auch mit WML erstellt werden. Für Formulare stehen Auswahllisten (Select),
Eingabefelder (Input) zur Verfügung.
Auswahlliste (Select)
In einer Select-Liste können wie in HTML auch mehrere Einträge ausgewählt werden.
Dazu muss ebenfalls 'multiple="true"' in das Select-Tag aufgenommen werden. Mit
"name" können die Ergebnisvariable angegeben werden, in der die Auswahl gespeichert werden soll. Mit "value" kann eine vorgegebene Auswahl angezeigt werden.
Mit "iname" und "ivalue" kann die Indexpositionen genutzt werden. In "iname" gibt man
die Variable an, in der die Indexposition der Auswahl gespeichert wird. Mit "ivalue"
kann man Indexpositionen angeben, die schon beim Anzeigen der Seite ausgewählt
sein sollen. Zur Verdeutlichung ein kleines Beispiel.
VHOHFWPXOWLSOH IDOVHQDPH WLHUYDOXH GRJ!
RSWLRQYDOXH FDW!.DW]H
RSWLRQYDOXH GRJ!+XQG
RSWLRQYDOXH KRUVH!3IHUG
VHOHFW!
Hier wären die Ergebnisvariablen "tier" und der voreingestellte Wert "dog", das entspricht der Auswahl des Listeneintrages "Hund". Wählt man nun "Katze" aus der Liste,
bekommt die Variable "tier" den Wert "cat".
Im folgenden Beispiel kann man mehrere Elemente aus der Liste auswählen:
OWVHOHFWPXOWLSOH WUXHQDPH WLHULQDPH LQGH[WLHULYDOXH !
RSWLRQYDOXH FDW!.DW]H
RSWLRQYDOXH GRJ!+XQG
RSWLRQYDOXH KRUVH!3IHUG
VHOHFW!
Durch ivalue="2;3" werden "Hund" und "Pferd" bereits markiert angezeigt. Wählt der
Benutzer "Katze" und "Pferd" aus, hat die Variable "tier" den Wert "cat;horse" und die
Variable "indextier" hat den Wert "1;3".
Projektarbeit 2000
- 45 -
Anrufumleitung
13.7 Eingabefelder (Input)
Hiermit kann man ein Eingabefeld in die Seite einbauen. Neben den üblichen Eigenschaften "name, type, value" kann man auch das Format der einzugebenden Daten
festlegen.
Mit "name" gibt man die Variable an, in der die Eingabe gespeichert wird. "value" kann
einen Text beinhalten, der beim Aufrufen der Seite im Feld angezeigt wird. Die Eigenschaft "type" ist entweder "text" oder "password".
Mit der Eigenschaft "format" kann man ein bestimmtes Format fest vorgeben. Bestimmte Zeichen stehen dabei für ganze Gruppen von Buchstaben, Ziffern und Sonderzeichen. Nähere Informationen zu möglichen Codes findet man in den
Spezifikationen (WML Reference 1.1, Seite 43).
13.8 Ereignisbehandlung
WML beherrscht auch eine Art von Ereignissbehandlung. Es gibt verschiedene Arten
von Ereignissen (events) "ontimer", "onenterforward", "onenterbackward" und "onpick". Bis auf "onpick" sind die Ereignisse auf Cards bezogen. "onpick" dagegen kann
man nur bei Elementen in Auswahllisten verwenden.
Dabei wird das Ereignis "onpick" jedesmal dann aufgerufen, wenn der Benutzer ein
Element der Auswahlliste markiert. Mit Hilfe des Ereignisses kann eine URL aufgerufen
werden. So kann man "onpick" zur Navigation verwenden.
VHOHFW!
RSWLRQRQSLFN KWWSZZZWLSSVWULFNVGH!7LSSV7ULFNV
RSWLRQRQSLFN KWWSZZZDNDGHPLHGH!$NDGHPLHGH
VHOHFW!
Die Ereignisse "onenterforward" und "onenterbackward" werden ausgelöst, wenn die
Card aufgerufen wird. "onenterforward" wird ausgelöst, wenn die Card mit Hilfe eines
Links oder per Eingabe, also direkt, aufgerufen wird. "onenterbackward" dagegen wird
ausgelöst, wenn die Card über eine Aktion der History (Verlauf) erneut gestartet wird.
Dies kann zum Beispiel mit Hilfe eines prev-Tasks sein.
Was bei Eintreten eines Ereignisses zu tun ist, kann man auf zwei verschiedenen Wegen festlegen. Wenn bei Eintreten nur eine URL zu starten ist, kann man diese Variante verwenden:
FDUGRQHQWHUIRUZDUG XUO!S!+DOORS!FDUG!
- 46 -
Projektarbeit 2000
Grundlagen zu WML
Die zweite Variante macht genau das Gleiche, bietet aber die Möglichkeit, nicht nur
eine URL zu starten:
FDUG!
RQHYHQWW\SH RQHQWHUIRUZDUG!
JRKUHI XUO!
RQHYHQW!
S!
+DOOR
S!
FDUG!
Eine besondere Art eines Ereignisses ist "ontimer". Dieses Ereignis tritt auf, wenn ein
vorher definierter Timer abgelaufen ist. So kann man zum Beispiel die Weiterschaltung
nach X Sekunden etwas einfacher erstellen, ohne Metaangabe.
FDUGRQWLPHU QH[W!
WLPHUYDOXH !
S!
1DFKVHFJHKWHVZHLWHU
S!
FDUG!
Die Angabe "timer value="100"" legt die Zehntel-Sekunden fest, also 10 Sekunden.
13.9 Auzeichnungsbefehle
<?xml version="1.0"?> - definiert als erste Zeile die Kompatibilität zu XML-codierten
Dateien. WML-Code soll auf diesem Weg auch stets als XML-Code interpretiert werden können.
<!--Kommentar--> - wird wie im HTML zur Kommentierung z.B. nachfolgender Abschnitte genutzt. Z.B.: <!--hier beginnt die nächste Card-->.
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://
www.wapforum.org/DTD/wml_1.1.xml"> - diese Zeile ist zwingend die zweite Zeile
in einem WML-Dokument. Entscheident für den WML-Entwickler ist der zweite Teil der
Zeile. Hier ist der Ort definiert, an welchem die WML-Version ihren Inhalten nach definiert ist. An der angegebenen Adresse ist genau definiert, welche Möglichkeiten in der
entsprechenden WML-Version gegeben sind. Das Dokument ist mit einem normalen
Internet-Browser erreichbar.
<a href="http>://www.domain.tld/index.htm">Text</a> - die Definition eines externen Links. Steht ein externer Link innerhalb eines gesamten Absatzes, muss er nicht
mit <p> und </p> umfasst werden.
<ahref="#Cardname">Text</a> - das Nummernzeichen kennzeichnet einen internen
Link. Ein interner Link verweist innerhalb eines Decks auf eine andere Card. 'Cardname' wird als 'card id' (siehe weiter hinten) definiert.
Projektarbeit 2000
- 47 -
Anrufumleitung
<b> - b wie bold - zeichnet einen Text halbfett aus. Wird mit </b> abgeschlossen. Dieser Befehl wird nicht von allen Anbietern unterstützt.
<big> - kennzeichnet einen besonders gross darzustellenden Text. Wird mit </big> abgeschlossen. Der Befehl wird nicht von allen Anbietern unterstützt.
<br/> - bezeichnet einen Zeilenvorschub - der vergrösserte Abstand eines RETURNs
im HTML entsteht bei <br/> nicht. Gleichwohl ist das <br/> schon alleine wegen der
Schreibweise mit einem <br> im HTML zu verwechseln. Soll ein grösserer Abstand
zwischen zwei Inhalten angezeigt werden, muss zweimal <br/> hinter- bzw. untereinander gesetzt werden.
<card id="Cardname"> - wird zur Vergabe von Bezeichnungen für eine einzelne
CARD benötigt. Unter einem DECK befinden sich immer ein oder mehrere Cards. Folglich benötigen die Cards eigene Bezeichnungen, um innerhalb des Decks angesteuert
werden zu können. Cardnamen sollten nicht mehr als acht Zeichen umfassen und die
Bezeichnung eindeutig sein.
</card> - mit diesem Befehl wird der Inhalt einer Card beendet. Entweder beginnt danach die nächste Card mit <card> oder der Quellcode eines Decks endet mit </wml>.
<em> - Möglichkeit zur Auszeichnung eines Textabschnitts. Wird mit </em> abgeschlossen. Dieser Befehl wird nicht von allen Anbietern unterstützt.
<i> - i wie italic - zeichnet einen Text kursiv aus. Wird mit </i> abgeschlossen. Dieser
Befehl wird nicht von allen Anbietern unterstützt.
<img src="Bildname.wbmp" alt="Bildname"/> - so wird eine WBMP-Grafik in einen
WML-Text eingebunden. Das Verfahren ist vom HTML her bekannt. Wichtig: Die altAnweisung MUSS vorgenommen werden, kann allerdings statt der Angabe des Bildnamens auch nur ein Leerzeichen enthalten.
<meta name="..." content="..."> - wie in HTML können/sollten WML-Dokumente
auch meta-tags umfassen. Mutmasslich handelt es sich dabei um die gleichen metanames.
<p align="xxx"> - steht am Anfang eines Absatzes und definiert die Ausrichtung des
nachfolgenden Textes; der Ausdruck xxx ist dabei durch die bekannten Möglichkeiten
left, right, oder center zu ersetzen.
</p> - beendet einen Absatz oder eine eigenständige Auszeichnungszeile. Die Angaben <p align="xxx"> und </p> sind vor und nach einem Absatz zwingend notwendig.
<p> - steht zu Beginn einer eigenständigen Auszeichnungszeile, z.B. eines Links zu
einer anderen Card. Fortlaufender Text wird nur als gesamter Absatz umfasst. Am
Ende einer eigenständigen Zeile steht der Befehl </p>.
<small> - kennzeichnet einen besonders klein darzustellenden Text. Wird mit </small>
abgeschlossen. Der Befehl wird nicht von allen Anbietern unterstützt.
- 48 -
Projektarbeit 2000
Grundlagen zu WML
<strong> - Möglichkeit zur Auszeichnung eines Textabschnitts. Wird mit </strong> abgeschlossen. Dieser Befehl wird nicht von allen Anbietern unterstützt.
<title="Titelzeile"> - ist in ähnlicher Weise vom HTML bekannt. Die Befehle 'card id'
und 'title' werden gemeinsam in einem Klammerausdruck in den Code geschrieben
<card id="Cardname" title="Titelzeile">.
<u> - u wie underlined (oder unterstrichen) - zeichnet einen Text mit einer Unterstreichung aus. Wird mit </u> abgeschlossen. Dieser Befehl wird nicht von allen Anbietern
unterstützt.
<wml> - steht zu Beginn eines Quellcodes, vergleichbar zu <html>.
</wml> - endet der wml-Code. Wie der Begriff </HTML> einen HTML-Code abschliesst, so endet mit </wml> jeder WML-Code.
Projektarbeit 2000
- 49 -
Anrufumleitung
- 50 -
Projektarbeit 2000
Schlusswort
14. Schlusswort
14.1 Bewertung der Arbeit
Da wir schon sehr früh diese Arbeit für uns reserviert hatten, konnten wir das Thema
bearbeiten, welches uns interessiert. Dies war unser grosses Glück, denn es gibt
nichts demotivierenderes, als etwas tun zu müssen, das uns nicht als interessant erscheint.
Am 14. März 2000, dem Tag der ersten Besprechung mit dem verantwortlichen Dozenten A. Steffen, konnten wir uns zuerst kein Bild davon machen, was auf uns zukommen
würde. Diese Unklarheiten wurden dann aber zum Glück durch weitere Überlegungen
und Diskussionen aus der Welt geschafft.
Wir legten uns gleich schon in der ersten Woche richtig ins Zeug und waren auch an
der Schule, wenn der Stundenplan keine Vorlesungen zeigte. Dank den Assistenten
fanden wir schnell den Einstieg und konnten das Projekt voll motiviert angehen und termingerecht abschliessen.
WAP ist ein zukunftsorientiertes Gebiet und ist noch lange nicht an seine Grenzen gestossen. Dies motivierte uns immer wieder von neuem: Zum Beispiel merkten wir bei
Problemdiskussionen in den Newsgroups und verschiedenen Foren, dass andere Entwickler dieselben Probleme hatten, wie wir. Meistens gab dann jemand einen kleinen
Hinweis, der auch funktionierte. Im grossen und ganzen können wir sagen, dass uns
viele kleine „Steine“ im Weg lagen, aber nie riesige, die wir nicht überwinden konnten.
Der geplante Weg konnte so eingehalten werden.
Wir haben sehr viel bei diesem Projekt über WAP und einer Serveranwendung gelernt
und es hat uns Spass gemacht, zusammen zu arbeiten. Wenn wir das abgeschlossene
Projekt betrachten, sind wir ein wenig stolz auf uns. Vor dem Beginn dieser PA hätten
wir nie daran geglaubt, dass wir dies zusammen schaffen würden.
14.2 Teamarbeit und Umfeld
Die Schule hat für die Projektarbeiten ein Schulzimmer (E416) umgebaut und mit Computern ausgestattet. In diesem Raum wurden insgesamt acht Arbeiten durchgeführt, d.
h., es war einiges los, wenn alle Studenten anwesend waren (wenn auch nur zum Spielen :-) ). Es war aus diesem Grund nicht immer einfach, sich zu konzentrieren. Irgend
jemand musste immer etwas diskutieren. Am Anfang ging es besser, weil viele die Arbeit vielleicht ein wenig auf die zu leichte Schulter genommen haben und selten hier
waren. Dies merkte man vorallem nach den Ferien, als die Leute begriffen, dass noch
sehr viel zu tun war und das Schulzimmer plötzlich rege besucht wurde. Aus diesem
Grund war es während den letzten zwei Wochen selten ruhig.
Als wir unsere Computer am ersten Tag zugewiesen bekamen, hatten wir ein bisschen
Bedenken, denn alle Bildschirme waren mit Lautsprechern ausgestattet. Der Lärm war
vorprogrammiert. Wir wurden aber eines besseren belehrt. Die Studenten hatten von
zu Hause Kopfhörer mitgebracht und so konnte jeder seine Musik hören, ohne die anderen zu stören.
An dieser Stelle ein Lob an Cyrus Kazemi und Zeynel Kocaman, die Assistenten, die
Projektarbeit 2000
- 51 -
Anrufumleitung
uns bei der Arbeit unterstützt haben. Wir konnten zu jeder Zeit einen der beiden erreichen. Dies klappte dank ICQ sehr gut. Meistens dauerte es auch nicht lange und einer
kam vorbei und konnte uns einige Tips geben.
14.3 Ausblick
Unsere Arbeit zum Thema Anrufumleitung über WAP könnte man in eine Diplomarbeit
ausweiten, denn wie im Pflichtenheft unter Erweiterungsmöglichkeiten bereits erwähnt,
gibt es viele Dinge, welche zusätzlich implementiert werden könnten. Das bestimmt
wichtigste wäre, die Umleitung über eine Telefonzentrale oder einen Gatekeeper zu
schalten und nicht nur, wie hier bei diesem Projekt, virtuell anzuzeigen.
Wir werden sehen...
- 52 -
Projektarbeit 2000
Anhang
15. Anhang
15.1 Menüführung
15.1.1 „normale“ Umleitung
Projektarbeit 2000
- 53 -
Anrufumleitung
15.1.2 benutzerdefinierte Umleitung
15.2 CD-ROM
Auf dieser mitgelieferten CD befinden sich alle Programme und die dazugehörenden
Config-Files, die wir für diese Projektarbeit verwendet haben. Um die Lizenzierung
nicht zu verletzen, sind keine kostenpflichtige Programme darauf enthalten.
(Abbildung: 15.2 - 1)
Abbildung: 15.2 - 1
- 54 -
Projektarbeit 2000
Herunterladen