Projektarbeit 2000

59
Projektarbeit 2000 Anrufumleitung über WAP Dokumentation Urs Bosshard, Iwan Eberhart IT3b

Transcript of Projektarbeit 2000

Page 1: Projektarbeit 2000

Projektarbeit 2000

Anrufumleitung über WAP

Dokumentation

Urs Bosshard, Iwan Eberhart IT3b

Page 2: Projektarbeit 2000

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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156.2.1 HTTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156.2.2 WAP, WML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156.2.3 Java-Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

7. DATENBANK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

7.1 Entitäts Typen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177.1.1 Mitarbeiter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177.1.2 Destination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177.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 -

Page 3: Projektarbeit 2000

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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

9.2 Login . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

9.3 Statusanzeige . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

9.4 Auswahl der Umleitziele. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

9.5 Umleitung AUS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

9.6 Umleitung „normal“ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

9.7 Umleitung „Benutzerdefiniert“ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

9.8 Kommentar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

10. KURZANLEITUNG FÜR DIE INBETRIEBNAHME DES SYSTEMS. . . . . . . . . 25

10.1 Installation Java Servlet Development Kit . . . . . . . . . . . . . . . . . . . . . 25

10.2 Installation Apache Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

10.3 Installation Apache JServ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

10.4 Kopieren der Config-Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

10.5 Kopieren der HTML- und WML Dateien. . . . . . . . . . . . . . . . . . . . . . . 27

10.6 Kopieren der Bilder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

10.7 Kopieren der Servlets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

10.8 Einbinden der Datenbank . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

10.9 Test der Funktionalität . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

11. BETRIEBSANLEITUNG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

11.1 Seite anwählen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

11.2 Login . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

11.3 Umleitung ändern (Normal) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

11.4 Umleitung ändern (Benutzerdefiniert) . . . . . . . . . . . . . . . . . . . . . . . . 31

11.5 Umleitung ausschalten. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

12. ENTWICKLUNGSTOOLS UND WAP-BROWSER . . . . . . . . . . . . . . . . . . . 35

12.1 Nokia WAP Toolkit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

12.2 Kawa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

12.3 pic_2_wbmp. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

12.4 WinWAP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

12.5 YOURWAP.com. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

12.6 Nokia 7110. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

- II - Projektarbeit 2000

Page 4: Projektarbeit 2000

Inhaltsverzeichnis

13. GRUNDLAGEN ZU WML. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

13.1 Links. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

13.2 Tabellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

13.3 Textauszeichnungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

13.4 Einbindung von Bildern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

13.5 Menü/Buttons. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

13.6 Formulare. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

13.7 Eingabefelder (Input) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

13.8 Ereignisbehandlung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

13.9 Auzeichnungsbefehle. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5315.1.1 „normale“ Umleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5315.1.2 benutzerdefinierte Umleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

15.2 CD-ROM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

Projektarbeit 2000 - III -

Page 5: Projektarbeit 2000

Anrufumleitung

- IV - Projektarbeit 2000

Page 6: Projektarbeit 2000

Zusammenfassung

1. ZusammenfassungDer heutigen Gesellschaft rast die Zeit davon. Arbeitsabläufe werden und müssen im-mer schneller werden. Der Schwachpunkt im System ist der Mensch, der alles voran-treibt 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 Ge-schwindigkeit der Entwicklungen gebremst und wir stehen eines Tages in einer Sack-gasse.

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 bei-nahe auf der ganzen Erde erreicht werden. Die Mobiltelefonie hat sich in der Gesell-schaft 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 sen-den. 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 tau-sende Mitteilungen pro Tag über die Mobiltelefonie verschickt.

Seit dem 01. Februar 2000 bietet die Swisscom AG einen neuen Service auf dem Mo-bilnetz 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 Bei-spiele:• 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 Anrufumlei-tung von einem Telefonapparat auf ein anderes beliebiges Gerät erlaubt. Der Service soll einer berufstätigen Person erlauben, ihren Büroanschluss auf verschiedene ande-re 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ön-lichen Festanschluss umleiten zu lassen.

Winterthur, Mai 2000

Urs Bosshard Iwan Eberhart

1. SMS = Short Message Service2. WAP = Wireless Application Protocol

Projektarbeit 2000 - 1 -

Page 7: Projektarbeit 2000

Anrufumleitung

- 2 - Projektarbeit 2000

Page 8: Projektarbeit 2000

Projektbeschreibung

2. ProjektbeschreibungAuf einem Schul- oder Firmenareal sind viele Leute häufig unterwegs und deshalb sel-ten 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-Infra-struktur relativ aufwändig ist, bieten sich heute als Alternative sogenannte Corporate Mobile Networks an, die auf der vorhandenen GSM-Infrastruktur eines Providers auf-setzen. 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 Festnetztele-fon 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 Aus-wahl von möglichen Endgeräten an, auf welche ankommende Anrufe umgeleitet wer-den 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üh-rung 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 Gate-way / 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 / LinksZHWAP KommunikationsprojektBlockdiagramm, (Abbildung: 2.3 - 1)Nokia Wap Toolkit 1.3 betahttp://www.forum.nokia.com/developers/wap/wap.html Apache Web Serverhttp://www.apache.org

Projektarbeit 2000 - 3 -

Page 9: Projektarbeit 2000

Anrufumleitung

Abbildung: 2.3 - 1

- 4 - Projektarbeit 2000

Page 10: Projektarbeit 2000

Pflichtenheft

3. PflichtenheftMit 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 rea-lisiert werden. In einer späteren, möglichen Arbeit könnten die Zustände aus der Da-tenbank 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 -

Page 11: Projektarbeit 2000

Anrufumleitung

- 6 - Projektarbeit 2000

Page 12: Projektarbeit 2000

Problemanalyse, Lösungskonzept

4. Problemanalyse, LösungskonzeptAnhand 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 / PearlJava-Servlet und Pearl kamen in die engere Auswahl, um eine dynamische WML-Seite 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 eig-neten 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.

• WMLDa 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ög-lich 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 Ver-sion 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 unse-rem 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 -

Page 13: Projektarbeit 2000

Anrufumleitung

• Adobe FrameMaker / WordBis heute schrieben wir unsere Dokumentaionen ausschliesslich mit Word. Im Ver-laufe 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 ZeitplanUm 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 Arbeitsplatz

Analyse

Pf lichtenhef t

Tools testen

Apache Server / Jserv

Lernen Java

Lernen WML

Lernen Framemaker

Datenbank

Design WML

Dokumentation

Ferien

- 8 - Projektarbeit 2000

Page 14: Projektarbeit 2000

Funktionsprinzip

5. Funktionsprinzip

5.1 Aufruf von Index.wmlDer WAP-Browser sendet einen Request an die Adresse des WAP-Servers. Dieser schickt als Antwort das Index.wml zurück. (Abbildung: 5.1 - 1)

5.2 LoginDer Benutzer füllt das Loginformular aus und sendet sein Loginname und sein Pass-wort an das WAPServlet. Er bekommt als Anwort eine Anzeige mit seinem Name, Vor-namen und dem aktuellen Umleitstatus. (Abbildung: 5.2 - 1)

WAP-Adresse

index.wml

Abbildung: 5.1 - 1

DB

WAPServlet

ChangeServlet

DefServlet

Index.wml

WAP-Server

Login, Passwort

Abbildung: 5.2 - 1

DB

WAPServlet

ChangeServlet

DefServlet

Index.wml

WAP-Server

Login, Passwort

Name, Vorname,StatusName, Vorname,Status

Projektarbeit 2000 - 9 -

Page 15: Projektarbeit 2000

Anrufumleitung

5.3 Lesen der UmleitzieleDanach 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)

5.4 Generieren des Eintrags „Benutzerdefiniert“In einem weiteren Schritt überprüft das WAPServlet, ob für den angemeldeten Benut-zer das Umleitziel „Benutzerdefiniert“ in der Datenbank eingetragen ist. Meldet sich der Benutzer das erste Mal an, generiert das WAPServlet den Eintrag automatisch (Abbil-dung: 5.4 - 1). Wird der Eintrag neu generiert, liest das WAPServlet die vorhandenen Umleitziele erneut aus der Datenbank. (Abbildung: 5.3 - 1)

Abbildung: 5.3 - 1

DB

WAPServlet

ChangeServlet

DefServlet

Index.wml

WAP-Server

Login

vorhandene Umleitziele

Abbildung: 5.4 - 1

DB

WAPServlet

ChangeServlet

DefServlet

Index.wml

WAP-Server

generiert Eintrag „Benutzerdifiniert“

- 10 - Projektarbeit 2000

Page 16: Projektarbeit 2000

Funktionsprinzip

5.5 Ändern des UmleitzielsWählt nun der Benutzer den Link „aendern“, schickt das WAPServlet ein Auswahlmenü der möglichen Umleitungen zurück. (Abbildung: 5.5 - 1)

Der Benutzer schickt anschliessend das gewählt Umleitziel an das ChangeServlet (Ab-bildung: 5.5 - 2). Ist das gewählt Umleitziel ungültig (bei der Auswahl des bereits aktu-ellen Umleitziels), bedient sich das ChangeServlet dem aktuellen Status aus der Datenbank (gestrichelte Pfeile).

aendernt

Abbildung: 5.5 - 1

DB

WAPServlet

ChangeServlet

DefServlet

Index.wml

WAP-Server

Auswahlmenü der mögli-chen Umleitzeile

Umleitziel

Abbildung: 5.5 - 2

DB

WAPServlet

ChangeServlet

DefServlet

Index.wml

WAP-Server

Auswahlmenü der mögli-chen Umleitzeile

Login

Status

Projektarbeit 2000 - 11 -

Page 17: Projektarbeit 2000

Anrufumleitung

5.6 Update der Datenbank auf das gewählte UmleitzielDas ChangeServlet ändert nun das vom Benutzer gewählte Umleitziel in der Daten-bank. (Abbildung: 5.6 - 1)

5.7 BestätigungsanzeigeDas ChangeServlet bestätigt nun die gewählte Umleitung mit dem Umleitziel und der dazugehörigen Rufnummer (Abbildung: 5.7 - 1). Bei dem „Benutzerdefinierten“ Umleit-ziel führt das ChangeServlet die unter “5.8 Benutzerdefiniertes Umleitziel“ erklärte Ak-tion aus.

Abbildung: 5.6 - 1

DB

WAPServlet

ChangeServlet

DefServlet

Index.wml

WAP-Server

Login, Umleitziel

Abbildung: 5.7 - 1

DB

WAPServlet

ChangeServlet

DefServlet

Index.wml

WAP-Server

Bestätigung mit Umleitziel und Rufnummer

- 12 - Projektarbeit 2000

Page 18: Projektarbeit 2000

Funktionsprinzip

5.8 Benutzerdefiniertes UmleitzielWählt der Benutzer das „Benutzerdefinierte“ Umleitziel, wird er aufgefordert, die Ruf-nummer einzutragen. (Abbildung: 5.8 - 1)

Der Benutzer schickt die eingegebene Rufnummer an das DefServlet. Dieses aktuali-siert die Datenbank mit dem neuen Eintrag. (Abbildung: 5.8 - 2)

Auch bei diesem Schritt wird zum Abschluss eine Bestätigung an den Benutzer gesen-det. Hier erfolgt die Bestätigungsanzeige aber durch das DefServlet und nicht durch das ChangeServlet, was bei “5.7 Bestätigungsanzeige“ der Fall war.

Abbildung: 5.8 - 1

DB

WAPServlet

ChangeServlet

DefServlet

Index.wml

WAP-Server

Aufforderung zur Rufnum-mereingabe

Login, Rufnummer

Abbildung: 5.8 - 2

DB

WAPServlet

ChangeServlet

DefServlet

Index.wml

WAP-Server

Login, Rufnummer

Projektarbeit 2000 - 13 -

Page 19: Projektarbeit 2000

Anrufumleitung

- 14 - Projektarbeit 2000

Page 20: Projektarbeit 2000

Server

6. Server

6.1 Apache WebserverWir haben uns nach einigen Überlegungen und verschiedenen Diskussionen darauf geeinigt, den Webserver von Apache für die Realisierung unseres Projektes zu ver-wenden. Die überzeugendsten Vorteile waren die gute und relativ verständliche Doku-mentation, 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 Konfiguration6.2.1 HTTPDie 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, WMLDamit der Server auch WAP-Seiten darstellen kann, müssen die MIME-Types ange-passt 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 fol-gendes hinzugefügt werden:

...application/vnd.wap.wbxmlapplication/vnd.wap.wmlc wmlcapplication/vnd.wap.wmlscriptc wmlsc...text/vnd.wap.wml wmltext/vnd.wap.wmlscript wsctext/vnd.wap.wmlscript wmlstext/vnd.wap.wmlscript wmlsc...6.2.3 Java-ServerDer Apache ist von Haus aus noch nicht Java-Servlet fähig und so muss der ApacheJ-Serv 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 -

Page 21: Projektarbeit 2000

Anrufumleitung

- 16 - Projektarbeit 2000

Page 22: Projektarbeit 2000

Datenbank

7. DatenbankWir 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 MitarbeiterJeder Mitarbeiter, der die WAP-Anrufumleitungsanwendung benutzen will, muss zu-erst 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 DestinationIn dieser Entität sind die Umleitungsinformationen gespeichert. Der Administrator der Datenbank muss hier die verschiedenen Umleitungen eintragen, die ein Benutzer ha-ben will oder haben darf. So kann vermieden werden, dass der WAP-Anwender Um-leitungen 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 StatusIm 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 -

Page 23: Projektarbeit 2000

Anrufumleitung

7.2 ER-Schema1

7.3 Relationales Datenbankmodell

Mitarbeiter

Destination

Status

1. Entity-Relationship Model, nach Elmasri / Navathe

MitarbeiterDestination

PasswortName

Vorname

Login

Key NummerUID

hatUmleitung

1 n

hataktuellen

1

n

Status

Mode

hataktuellen

1

n

Login Passwort Name Vorname Status

Key Nummer UID Ziel

Mode

- 18 - Projektarbeit 2000

Page 24: Projektarbeit 2000

Datenbank

7.4 Einbindung ins SystemDamit 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 -

Page 25: Projektarbeit 2000

Anrufumleitung

- 20 - Projektarbeit 2000

Page 26: Projektarbeit 2000

Programmierung

8. ProgrammierungDie Programmierung besteht aus einer WML-Einstiegsseite (index.wml) und drei Serv-lets (WAPServlet.class, ChangeServlet.class, DefServlet.class). Jedem Servlet wer-den mit „post“ die benötigten Parameter übergeben.

8.1 index.wmlDas 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 Be-tätigung des „Login“-Links werden die Werte der Inputfelder an das „WAPServlet“ ge-postet.

8.2 WAPServlet.classDas WAPServlet überprüft die übergebenen Werte. Werden keine Werte übergeben, sendet das Servlet eine Fehlermeldung an den Benutzer und fordert ihn auf, sich er-neut anzumelden.Werden gültige Daten empfangen, startet das Servlet anhand des Login und des Pass-wortes 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 Um-leitziele, 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 „ChangeServ-let“.

8.3 ChangeServlet.classDas 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 geschrie-ben 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 Ziel-rufnummer einzugeben. Danach postet das Servlet den Loginnamen und die benutzer-definierte Rufnummer an das „DefServlet“.

8.4 DefServlet.classDas 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 ak-tualisiert. Danach wird ein Abschlussbildschirm mit der gewählten Umleitrufnummer angezeigt.

Projektarbeit 2000 - 21 -

Page 27: Projektarbeit 2000

Anrufumleitung

- 22 - Projektarbeit 2000

Page 28: Projektarbeit 2000

Testprotokoll

9. TestprotokollMit 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

9.2 LoginTestuser-Account „Hans Muster“• Es kann mit Login „hm“ und Passwort „test“ korrekt ein-

geloggt 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“ ange-

zeigt. 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 Aus-

wahlmenü angezeigt.• Die möglichen (in der Datenbank definierten) Umleit-

ziele können ausgewählt werden.• Ist in der Datenbank kein Umleitziel definiert (Benutzer

muss aber registriert sein), wird nur „AUS“ und „Benut-zerdefiniert“ 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...“

EF NEF

Nokia 7110 WinWAP

EF NEF

Projektarbeit 2000 - 23 -

Page 29: Projektarbeit 2000

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 Ruf-nummer.

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 NUM-MER“.

• Wird die „Benutzerdefinierte“ Umleitung erneut gewählt, erscheint im Eingabefeld die aktuelle Rufnum-mer der benutzerdefinierten Umleitung.

• Im Eingabefeld für die Rufnummer können nur Zahlen eingegeben werden.

• Wird keine Nummer eingetragen, erscheint die Fehler-meldung „KEINE NUMMER!“

• Wird die Nummer korrekt eingetragen, erscheint der Abschlussbildschirm mit der Rufnummer.

9.8 KommentarEinige 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, ob-wohl das Feld nur Zahlen akzeptieren sollte.

Datum:____________________ Visum:_______________________

EF NEF

Nokia 7110 WinWAP

EF NEF

- 24 - Projektarbeit 2000

Page 30: Projektarbeit 2000

Kurzanleitung für die Inbetriebnahme des Systems

10. Kurzanleitung für die Inbetriebnahme des SystemsJava 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 übli-

cherweise im Verzeichnis \jdk1.2.2\bin befindet. (Abbildung: 10.3 - 1)

Abbildung: 10.3 - 1

Projektarbeit 2000 - 25 -

Page 31: Projektarbeit 2000

Anrufumleitung

• Als nächstes muss der Pfad des „Java Servlet Development Kit“ angegeben wer-den. (Abbildung: 10.3 - 2)

• Weiter muss angegeben werden, wo sich die Config-Files des Apache Server befinden. (Abbildung: 10.3 - 3)

• Nach dem verlangten Reboot des Systems kann der Apache-Server gestartet wer-den.Mit dem Link http://hostname.zhwin.ch/servlets/IsItWorking wird getestet, ob der Server nun servletfähig ist.

Abbildung: 10.3 - 2

Abbildung: 10.3 - 3

- 26 - Projektarbeit 2000

Page 32: 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:\Pro-gramme\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, ChangeServ-

let.class und DefServlet.class) ins Servletverzeichnis kopiert werden (C:\Pro-gramme\Apache JServ 1.1\servlets).

10.8 Einbinden der Datenbank• Für den Zugriff auf die Access-Datenbank muss diese über ODBC ins System ein-

gebunden werden. Dies geschieht in der Systemsteuerung unter ODBC-Daten-quellen. 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 Ver-zeichnis an, in welchem sich das zhwap_database.mdb File befindet. (Abbildung: 10.8 - 1)

Abbildung: 10.8 - 1

Projektarbeit 2000 - 27 -

Page 33: Projektarbeit 2000

Anrufumleitung

10.9 Test der FunktionalitätSind alle Schritte richtig ausgeführt worden, kann mit einem Web-Browser die Seite in-dex.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

Page 34: Projektarbeit 2000

Betriebsanleitung

11. BetriebsanleitungDie 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 WAP-Servers angewählt.(ZHWap: http://ksy119.zhwin.ch/index.wml)

Folgender Begrüssungsbildschirm (Abbildung: 11.1 - 1) er-scheint auf dem WAP-fähigen Browser.

11.2 Login

Nach ca. 3 Sekunden erscheint automatisch das Login-Fen-ster (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)

Wenn das Loginkürzel und das Passwort korrekt eingegeben worden sind, erscheint das Statusfenster (Abbildung: 11.2 - 2), welches den Benutzernamen und den aktuellen Umleitsta-tus anzeigt.

TIP: Bei dieser Seite kann ein Bookmark gesetzt werden. Da-nach ist es möglich, ohne Loginprozedur auf das System zu-zugreifen.

Abbildung: 11.1 - 1

Abbildung: 11.2 - 1

Abbildung: 11.2 - 2

Projektarbeit 2000 - 29 -

Page 35: Projektarbeit 2000

Anrufumleitung

11.3 Umleitung ändern (Normal)

Durch Anwählen des „aendern“-Links gelangt man in das Un-termenü, um die Anrufumleitung zu ändern oder um sie aus-zuschalten. (Abbildung: 11.3 - 1)

Wählt man nun das Feld mit der aktuellen Umleitung aus, er-scheint ein Menü mit den möglichen Umleitungen.(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 „ueber-nehmen“ aktiviert werden. (Abbildung: 11.3 - 3)

Der Server bestätigt die Änderung mit einem Abschluss-Screen (Abbildung: 11.3 - 4). Dieser zeigt die gewählte Umlei-tung mit der Nummer an. Nachdem diese Anzeige erscheint, kann die Verbindung beendet werden.

Abbildung: 11.3 - 1

Abbildung: 11.3 - 2

Abbildung: 11.3 - 3

Abbildung: 11.3 - 4

- 30 - Projektarbeit 2000

Page 36: Projektarbeit 2000

Betriebsanleitung

11.4 Umleitung ändern (Benutzerdefiniert)

Durch Anwählen des „aendern“-Links gelangt man in das Un-termenü, um die Anrufumleitung zu ändern oder auszuschal-ten. (Abbildung: 11.4 - 1)

Wählt man das Feld mit der aktuellen Umleitung aus, er-scheint ein Menü mit den möglichen Umleitungen (Abbildung: 11.4 - 2). Hier wird nun die Umleitung „Benutzerdefiniert“ ge-wählt.

Wurde eine Umleitung „Benutzerdefiniert“ ausgewählt, muss sie mit „uebernehmen“ aktiviert werden. (Abbildung: 11.4 - 3)

Nun gelangt man in das Menü, in welchem die benutzerdefi-nierte Nummer definiert wird (Abbildung: 11.4 - 4). Hier muss eine Rufnummer eingetragen werden. Ist bereits eine Ruf-nummer eingetragen worden, kann sie geändert werden.

Die eingegebene Rufnummer muss mit „uebernehmen“ akti-viert werden.

Abbildung: 11.4 - 1

Abbildung: 11.4 - 2

Abbildung: 11.4 - 3

Abbildung: 11.4 - 4

Projektarbeit 2000 - 31 -

Page 37: Projektarbeit 2000

Anrufumleitung

Der Server bestätigt die Änderung mit einem Abschluss-Screen (Abbildung: 11.4 - 5). Dieser zeigt die gewählte Umlei-tungsnummer an. Nachdem diese Anzeige erscheint, kann die Verbindung beendet werden.

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 Unter-menü, um die Anrufumleitung zu ändern oder auszuschalten. (Abbildung: 11.5 - 2)

Wählt man das Feld mit der aktuellen Umleitung, erscheint ein Menü mit den möglichen Umleitungen. (Abbildung: 11.5 - 3)

Hier kann die Umleitung „AUS“ gewählt werden, um die Um-leitung zu deaktivieren.

Abbildung: 11.4 - 5

Abbildung: 11.5 - 1

Abbildung: 11.5 - 2

Abbildung: 11.5 - 3

- 32 - Projektarbeit 2000

Page 38: Projektarbeit 2000

Betriebsanleitung

Der Zustand „AUS“ muss mit „uebernehmen“ aktiviert werden. (Abbildung: 11.5 - 4)

Der Server bestätigt die Änderung mit einem Abschluss-Screen (Abbildung: 11.5 - 5). Nachdem diese Anzeige er-scheint, kann die Verbindung beendet werden.

Abbildung: 11.5 - 4

Abbildung: 11.5 - 5

Projektarbeit 2000 - 33 -

Page 39: Projektarbeit 2000

Anrufumleitung

- 34 - Projektarbeit 2000

Page 40: Projektarbeit 2000

Entwicklungstools und WAP-Browser

12. Entwicklungstools und WAP-Browser

12.1 Nokia WAP ToolkitFür unser Projekt benutzten wir die Version 1.3beta des Nokia WAP Toolkit. Im Hinter-grund benötigt die Software JavaTM Run Time Envirment 1.2.2.

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 verschieden-farbig dargestellt. Dies ermöglicht eine strukturierte und saubere Darstellung bei der Programmierung. Anschliessen besteht die Möglichkeit, den WML-Code zu compilie-ren 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

Abbildung: 12.1 - 1

Projektarbeit 2000 - 35 -

Page 41: Projektarbeit 2000

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 festgeleg-ten 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 WAP-Seiten auf dem Simulator zu testen. Für einen kon-ventionellen 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 sta-bil.

Dieses Entwicklertool unterstützt auch die Program-mierung vom WML-Script und beinhaltet einen einfa-chen WBMP-Editor. Diese Funktionen wurden aber von uns nicht genutzt.

12.2 KawaDie Servlets programmierten und kompilierten wir mit Kawa, einem konventionellen JAVA-Entwicklertool.

Wir benutzten die Version 3.22 mit JDK 1.2.2.

Abbildung: 12.1 - 2

- 36 - Projektarbeit 2000

Page 42: Projektarbeit 2000

Entwicklungstools und WAP-Browser

12.3 pic_2_wbmpUm BMP-Bilder in WBMP-Bilder zu konvertieren, verwendeten wir pic_2_wbmp Versi-on 1.0 (Abbildung: 12.3 - 1) von Ginco, ein komfortables und einfaches Konventie-rungsprogramm. Das von Nokia im Toolkit 1.3beta integrierte Tool genügte unseren Anforderungen nicht.

12.4 WinWAPWährend der Entwicklung stellte sich heraus, dass sich der PC-basierende WAP-Browser WinWAP (Abbil-dung: 12.4 - 1) von Slob-Trot Software am besten eignete, um die programmierten Sei-ten einfach und schnell zu te-sten. Er ist sehr einfach zu bedienen und es ist möglich, den Source-Code der WML-Seite schnell und unkompli-ziert in einem Textfenster darzustellen. Wir verwendeten die regi-strierte Version 2.3 Light.

Abbildung: 12.3 - 1

Abbildung: 12.4 - 1

Projektarbeit 2000 - 37 -

Page 43: Projektarbeit 2000

Anrufumleitung

12.5 YOURWAP.comEin weiterer WAP-Browser, den wir einsetzten, war YOURWAP.com Version 1.16 (Ab-bildung: 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

Page 44: Projektarbeit 2000

Entwicklungstools und WAP-Browser

12.6 Nokia 7110Mit dem 7110 (Abbildung: 12.6 - 1) brachte Nokia das erste Mo-biltelefon mit WAP 1.1 auf den Markt. Wir nutzten dieses Gerät, um unsere Seiten im Feldversuch zu testen. Unser Testgerät be-dient sich der Firmware Version 4.77. Leider mussten wir fest-stellen, 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 Lay-outs der WML-Seite dienen, nicht unterstützt werden:

FIELDSET, B, U, I, BIG, SMALL, EM, STRONG

Weiter besitzt der WAP-Browser im Nokia 7110 folgende Ein-schrä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:1 2 3A B Img

auf dem Nokia 7110:123ABImg

Diese Einschränkung hat nur das Nokia 7110. Das Ericsson R320s kann diese Tags ohne Probleme verarbeiten. Auch die getesteten PC-basierenden WAP-Browser konn-ten diese Befehle darstellen.Schade, dass Nokia diese „Probleme“ des 7110 bis zum heutigen Tag noch nicht be-seitigen 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.

Abbildung: 12.6 - 1

Projektarbeit 2000 - 39 -

Page 45: Projektarbeit 2000

Anrufumleitung

- 40 - Projektarbeit 2000

Page 46: Projektarbeit 2000

Grundlagen zu WML

13. Grundlagen zu WMLAufgrund 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 ab-gelegt. 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 neh-me 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 an-dere 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 &Uuml;,...) maskiert werden oder man verwen-den 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äh-rend 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 - .wmlimage/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:

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:

���������� �������������������������� ���!""#$�%�&�'""����#'�����""�(��)**+,""�����-+.�/���0"���"���1���������

����������"����

Projektarbeit 2000 - 41 -

Page 47: Projektarbeit 2000

Anrufumleitung

Innerhalb eines Decks befinden sich nun verschiedene Cards. Diese werden ebenfalls über ein Tag abgegrenzt, das folgendermassen aussieht:

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:

Externe Links können natürlich ebenso gesetzt werden. Hierzu verwenden man den re-lativen oder absoluten Pfad, wie von HTML gewohnt.

13.2 TabellenAuch hier gleichen sich HTML und WML sehr. Eine Beispiel-Tabelle sieht wie folgt aus:

Die Angabe der Spalten mit "columns=" ist Pflicht. Das Verschachteln von Tabellen ist laut den Spezifikationen (WML 1.1) nicht erlaubt.

�2-3��3��*�*2-3��*�*������4�2)�.*�3���-3���+��#���0���) *�5� 6��2) �*�3-��� � ����*-4-*6��������*��/�-/.�#'�!7��*� �� �3� �$4-*6*-0�*�)� ���"+��"2-3�

�-�)�.��82-3���9/��-3���"-�

�-�)�.�����!3�25!:������9/����25�:�"-��-�)�.��)**+,""�-+�)-.-�3�";����������%-)+�- -/5/ .*�3���-) ��"-�

�*-4���*�*������*!�-4������2��/� ��:���*��*3�9�������"*3��*3�9�����:�"*3��"*��*��*3�9�����<�"*3��*3�9�����=�"*3��"*��*��*3�9�����>�"*3��*3�9�����?�"*3��"*��"*-4���

- 42 - Projektarbeit 2000

Page 48: 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 Anbie-tern unterstützt.

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 entnom-men. 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 Ver-fü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-Gra-fiken. 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:

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 zu-sä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 ver-wendet, den Platz für das Bild zu reservieren. Dadurch wird die Card schneller aufge-baut.

�4���������*���3�.�**�@4��3A�3-0�*���*��"4������������*���3�5/���@�*-��2A�- 0�6��0*��"���/���������*��*�/ *�*�2)� ��"/�

���0�2��*�*��4�+��-�*����2)��4/ 0�3�����3���+-2���<��)+-2���>��-��0 ��4�**����)��0)*���>����3*)��:>��

Projektarbeit 2000 - 43 -

Page 49: Projektarbeit 2000

Anrufumleitung

13.5 Menü/Buttons In WML kann auch eine Art Menü erstellt werden. Die Darstellung ist aber dem anzei-genden 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:

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 aller-dings 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.

• refreshDieser Task lädt die aktuelle Seite erneut.

• noopDadurch 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.

�3��*B+���-22�+*���-4�����5��� -����#��*����0��)�.��82-3:�"��"3��

�*��+�-*���3��*B+����+*�� ���-4����9//�25�� -����+�����+��"��"3���"*��+�-*��

- 44 - Projektarbeit 2000

Page 50: 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 die-ses Element auch in der Card verwendet.

Zum Überschreiben des allgemeinen do-Elementes wird in der Card ein neues Ele-ment 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-Ele-ment mit dem noop-Task erstellt.

13.6 Formulare In WML können auch Formulare eingesetzt werden. Da die Übermittelung an ein CGI-Skript 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 gespei-chert 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.

Hier wären die Ergebnisvariablen "tier" und der voreingestellte Wert "dog", das ent-spricht 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:

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".

����2*��/�*�+����.-���� -����*�����-�/���3�0����+*�� ��-�/���2-*��C-*6���+*�� ��-�/���3�0��D/ 3��+*�� ��-�/���)�����.�3�"���2*�

E�*F���2*��/�*�+����*/��� -����*����� -����� 3��*������-�/���:F<����+*�� ��-�/���2-*��C-*6���+*�� ��-�/���3�0��D/ 3��+*�� ��-�/���)�����.�3�"���2*�

Projektarbeit 2000 - 45 -

Page 51: Projektarbeit 2000

Anrufumleitung

13.7 Eingabefelder (Input) Hiermit kann man ein Eingabefeld in die Seite einbauen. Neben den üblichen Eigen-schaften "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 Eigen-schaft "type" ist entweder "text" oder "password".

Mit der Eigenschaft "format" kann man ein bestimmtes Format fest vorgeben. Be-stimmte Zeichen stehen dabei für ganze Gruppen von Buchstaben, Ziffern und Son-derzeichen. 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 "on-pick". 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.

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 We-gen festlegen. Wenn bei Eintreten nur eine URL zu starten ist, kann man diese Varian-te verwenden:

����2*���+*�� �� +�25��)**+,""����*�++!*�25�3�����++E��25��+*�� �� +�25��)**+,""����-5-3�����3���$5-3�����3��"���2*�

�2-3�� � *�.��-3��/����+��D-�����"+��"2-3�

- 46 - Projektarbeit 2000

Page 52: Projektarbeit 2000

Grundlagen zu WML

Die zweite Variante macht genau das Gleiche, bietet aber die Möglichkeit, nicht nur eine URL zu starten:

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.

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 wer-den können.

<!--Kommentar--> - wird wie im HTML zur Kommentierung z.B. nachfolgender Ab-schnitte 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 defi-niert 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 exter-nen 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. 'Cardna-me' wird als 'card id' (siehe weiter hinten) definiert.

�2-3��� ��� *�*B+���� � *�.��-3���0��)�.��/��"��"� ��� *�

�+�D-����"+��"2-3�

�2-3�� *����� ��*���*�����-�/�������"��+�(-2)����2�0�)*������*������"+��"2-3�

Projektarbeit 2000 - 47 -

Page 53: Projektarbeit 2000

Anrufumleitung

<b> - b wie bold - zeichnet einen Text halbfett aus. Wird mit </b> abgeschlossen. Die-ser Befehl wird nicht von allen Anbietern unterstützt.

<big> - kennzeichnet einen besonders gross darzustellenden Text. Wird mit </big> ab-geschlossen. 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. unterein-ander 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. Folg-lich 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 da-nach die nächste Card mit <card> oder der Quellcode eines Decks endet mit </wml>.

<em> - Möglichkeit zur Auszeichnung eines Textabschnitts. Wird mit </em> abge-schlossen. 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 alt-Anweisung MUSS vorgenommen werden, kann allerdings statt der Angabe des Bild-namens 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 meta-names.

<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 Anga-ben <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

Page 54: Projektarbeit 2000

Grundlagen zu WML

<strong> - Möglichkeit zur Auszeichnung eines Textabschnitts. Wird mit </strong> ab-geschlossen. 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 Unterstrei-chung 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 ab-schliesst, so endet mit </wml> jeder WML-Code.

Projektarbeit 2000 - 49 -

Page 55: Projektarbeit 2000

Anrufumleitung

- 50 - Projektarbeit 2000

Page 56: Projektarbeit 2000

Schlusswort

14. Schlusswort

14.1 Bewertung der ArbeitDa 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 er-scheint.

Am 14. März 2000, dem Tag der ersten Besprechung mit dem verantwortlichen Dozen-ten 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 ter-mingerecht abschliessen.

WAP ist ein zukunftsorientiertes Gebiet und ist noch lange nicht an seine Grenzen ge-stossen. Dies motivierte uns immer wieder von neuem: Zum Beispiel merkten wir bei Problemdiskussionen in den Newsgroups und verschiedenen Foren, dass andere Ent-wickler 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 UmfeldDie Schule hat für die Projektarbeiten ein Schulzimmer (E416) umgebaut und mit Com-putern 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 Spie-len :-) ). 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 Ar-beit 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 an-deren zu stören.

An dieser Stelle ein Lob an Cyrus Kazemi und Zeynel Kocaman, die Assistenten, die

Projektarbeit 2000 - 51 -

Page 57: Projektarbeit 2000

Anrufumleitung

uns bei der Arbeit unterstützt haben. Wir konnten zu jeder Zeit einen der beiden errei-chen. Dies klappte dank ICQ sehr gut. Meistens dauerte es auch nicht lange und einer kam vorbei und konnte uns einige Tips geben.

14.3 AusblickUnsere 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

Page 58: Projektarbeit 2000

Anhang

15. Anhang

15.1 Menüführung15.1.1 „normale“ Umleitung

Projektarbeit 2000 - 53 -

Page 59: Projektarbeit 2000

Anrufumleitung

15.1.2 benutzerdefinierte Umleitung

15.2 CD-ROMAuf 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