Konzeption und Realisierung der Integration von realen Kommunikationsendgeräten in virtuelle Umgebungen DIPLOMARBEIT



Ähnliche Dokumente
Objektorientierte Programmierung für Anfänger am Beispiel PHP

Übung: Verwendung von Java-Threads

Agenten und Mentale Modelle: Neue Wege im Kommunikations- und Entscheidungstraining. Ralf Dörner Fraunhofer AGC Frankfurt am Main

Robot Karol für Delphi

In 12 Schritten zum mobilen PC mit Paragon Drive Copy 11 und Microsoft Windows Virtual PC

Installation und Inbetriebnahme von Microsoft Visual C Express

Die Programmiersprache Java. Dr. Wolfgang Süß Thorsten Schlachter

Lizenzierung von System Center 2012

In 15 einfachen Schritten zum mobilen PC mit Paragon Drive Copy 10 und Microsoft Windows Virtual PC

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.

Kurzfassung der Studienarbeit

Autorisierung. Sicherheit und Zugriffskontrolle & Erstellen einer Berechtigungskomponente

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken

4D Server v12 64-bit Version BETA VERSION

Konzeption und Realisierung der Integration von realen Kommunikationsendgeräten in virtuelle Umgebungen

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen

VB.net Programmierung und Beispielprogramm für GSV

ObjectBridge Java Edition

Matrix42. Use Case - Sicherung und Rücksicherung persönlicher Einstellungen über Personal Backup. Version September

2 Die Terminaldienste Prüfungsanforderungen von Microsoft: Lernziele:

Microsoft PowerPoint 2013 Folien gemeinsam nutzen

Einführung in Eclipse und Java

Programmieren in Java

Softwaretests in Visual Studio 2010 Ultimate Vergleich mit Java-Testwerkzeugen. Alexander Schunk Marcel Teuber Henry Trobisch

I N F O R M A T I O N V I R T U A L I S I E R U N G. Wir schützen Ihre Unternehmenswerte

Windows Server 2012 R2 Essentials & Hyper-V

2 DAS BETRIEBSSYSTEM. 2.1 Wozu dient das Betriebssystem. 2.2 Die Bildschirmoberfläche (Desktop) Themen in diesem Kapitel: Das Betriebssystem

ICS-Addin. Benutzerhandbuch. Version: 1.0

TTS - TinyTimeSystem. Unterrichtsprojekt BIBI

Microsoft SharePoint 2013 Designer

Use Cases. Use Cases

MetaQuotes Empfehlungen zum Gebrauch von

1 Mathematische Grundlagen

Komponenten- und ereignisorientierte Softwareentwicklung am Beispiel von Borland-Delphi

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank

Anhand des bereits hergeleiteten Models erstellen wir nun mit der Formel

OP-LOG

Die Beschreibung bezieht sich auf die Version Dreamweaver 4.0. In der Version MX ist die Sitedefinition leicht geändert worden.

Lizenzierung von SharePoint Server 2013

Stand vr bank Südthüringen eg 1 von 10. Smart TAN plus Umstellungsanleitung VR-NetWorld Software

Schritt-Schritt-Anleitung zum mobilen PC mit Paragon Drive Copy 10 und VMware Player

Content Management System mit INTREXX 2002.

Workshop: Eigenes Image ohne VMware-Programme erstellen

Kap. 35 Swing: Grundlagen Kap Swing: Hauptfenster

IT-Governance und Social, Mobile und Cloud Computing: Ein Management Framework... Bachelorarbeit

Mediator 9 - Lernprogramm

Patch-Management. Leibniz-Akademie Hannover Wirtschaftsinformatik B. Sc. Praxisreflexion im Bereich Management im SS 2011

Wissenschaftlicher Bericht

Gruppenrichtlinien und Softwareverteilung

Klausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

Qt-Projekte mit Visual Studio 2005

IRF2000 Application Note Lösung von IP-Adresskonflikten bei zwei identischen Netzwerken

Whitepaper. Produkt: combit Relationship Manager / address manager. Dateiabgleich im Netzwerk über Offlinedateien

Ein mobiler Electronic Program Guide

KURZANLEITUNG CYBERDUCK MIT CLOUD OBJECT STORAGE

Prozessbewertung und -verbesserung nach ITIL im Kontext des betrieblichen Informationsmanagements. von Stephanie Wilke am

Saxonia Forum 2015: SMART BUSINESS APPLIKATIONEN: ZIELGRUPPENORIENTIERTE SOFTWARELÖSUNGEN

3. GLIEDERUNG. Aufgabe:

Einführung zum Arbeiten mit Microsoft Visual C Express Edition

Upgrade auf die Standalone Editionen von Acronis Backup & Recovery 10. Technische Informationen (White Paper)

1 Dokumentenmanagement

Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress.

Stammdaten Auftragserfassung Produktionsbearbeitung Bestellwesen Cloud Computing

Step by Step Remotedesktopfreigabe unter Windows Server von Christian Bartl

Diplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008

IBM Software Demos Tivoli Provisioning Manager for OS Deployment

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

Software-Validierung im Testsystem

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

ERPaaS TM. In nur drei Minuten zur individuellen Lösung und maximaler Flexibilität.

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

Virtual Desktop Infrasstructure - VDI

Anleitung zur Verwendung der VVW-Word-Vorlagen

In 15 Schritten zum mobilen PC mit Paragon Drive Copy 14 und VMware Player

Web Services stellen eine Integrationsarchitektur dar, die die Kommunikation zwischen verschiedenen Anwendungen

Konfiguration eines DNS-Servers

Novell Client. Anleitung. zur Verfügung gestellt durch: ZID Dezentrale Systeme. Februar ZID Dezentrale Systeme

Thema: Microsoft Project online Welche Version benötigen Sie?

SMART Newsletter Education Solutions April 2015

Online Newsletter III

Step by Step Webserver unter Windows Server von Christian Bartl

Research Note zum Thema: Laufzeit von Support-Leistungen für Server OS

(1) Mit dem Administrator Modul werden die Datenbank, Gruppen, Benutzer, Projekte und sonstige Aufgaben verwaltet.

Datensicherung. Beschreibung der Datensicherung

Software zur Anbindung Ihrer Maschinen über Wireless- (GPRS/EDGE) und Breitbandanbindungen (DSL, LAN)

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

Analyse zum Thema: Laufzeit von Support-Leistungen für ausgewählte Server OS

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes.

Meet the Germans. Lerntipp zur Schulung der Fertigkeit des Sprechens. Lerntipp und Redemittel zur Präsentation oder einen Vortrag halten

FrontDoor/Monitor mehr sehen von FrontDoor

Systeme 1. Kapitel 10. Virtualisierung

1 Einleitung. Lernziele. Symbolleiste für den Schnellzugriff anpassen. Notizenseiten drucken. eine Präsentation abwärtskompatibel speichern

schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv

C++11 C++14 Kapitel Doppelseite Übungen Musterlösungen Anhang

Lizenzen auschecken. Was ist zu tun?

Kurzanleitung. MEYTON Aufbau einer Internetverbindung. 1 Von 11

Transkript:

Technische Universität Darmstadt Konzeption und Realisierung der Integration von realen Kommunikationsendgeräten in virtuelle Umgebungen DIPLOMARBEIT Autor: Oliver Hinz Fraunhofer Institut für Graphische Datenverarbeitung, Darmstadt Betreuer: Dipl.-Inform. Ralf Dörner und Dipl.-Inform. Paul Grimm Prüfer: Prof. Dr.-Ing. Dr. h.c. Dr. E.h. José L. Encarnação Technische Universität Darmstadt

2

Aufgabenstellung: Ein aktueller Trend bei der Gestaltung virtueller Umgebungen ist das Einbeziehen der realen Welt bzw. das Anreichern der realen Welt mit virtuell repräsentierten Informationen (Augmented Reality). Das Verwalten und Einbinden von realen Gegenständen in die Animation einer virtuellen Welt erfordert neue Ansätze und Konzepte. Diese können sich auf bestehende Konzepte zur Animationserstellung abstützen, wie etwa Verhaltensbeschreibung mit einem komponentenbasierten Ansatz. ETOILE (Environment for Team, Organisational und Individual Learning in Emergencies) ist beispielsweise ein derartiges System, das die komponentenbasierte Erstellung von virtuellen Welten für Kommunikationstraining in Notfallsituationen ermöglicht. Anhand des Beispiels eines Telefonapparates soll ein Konzept für eine erweiterte virtuelle Realität entwickelt werden. In einer interaktiven Computeranimation soll das Telefon sowohl virtuell als Gegenstand in der Animation abgebildet als auch ein Interagieren mit dem echten Telefonapparat gestattet werden. Dabei sollen bei der Konzeption bestehende komponentenbasierte Ansätze berücksichtigt werden. Das Konzept ist prototypisch umzusetzen und zu demonstrieren. Schließlich soll der Nutzen, ein Umgehen mit dem realen Gegenstand als Metapher für das Pendant in der virtuellen Welt am Beispiel der ETOILE Trainingsanwendung diskutiert werden. 3

4

Diplomarbeit von Herrn Oliver Hinz Erklärung zur Diplomarbeit gemäß 19 Abs. 6 DPO/AT Hiermit versichere ich, die vorliegende Diplomarbeit ohne Hilfe Dritter nur mit den angegebenen Quellen und Hilfsmitteln angefertigt zu haben. Alle Stellen, die aus Quellen entnommen wurden, sind als solche kenntlich gemacht worden. Diese Arbeit hat in gleicher oder ähnlicher Form noch keiner Prüfungsbehörde vorgelegen. Darmstadt, den 15. August 2000 Unterschrift 5

6

"Welche Veränderungen müssen jetzt eintreten in unserer Anschauungsweise und in unseren Vorstellungen! Sogar die Elementarbegriffe von Zeit und Raum sind schwankend geworden. Durch die Eisenbahn wird der Raum getötet, und es bleibt uns nur noch die Zeit übrig." Heinrich Heine, 1843 7

8

Inhaltverzeichnis ABBILDUNGSVERZEICHNIS... 12 TABELLENVERZEICHNIS... 14 ABKÜRZUNGSVERZEICHNIS... 15 ZUSAMMENFASSUNG... 17 ABSTRACT... 19 1. EINLEITUNG... 21 1.1 KOMPONENTENORIENTIERUNG... 22 1.2 MIXED REALITY... 25 1.3 ZIEL DIESER DIPLOMARBEIT... 27 1.4 AUFBAU DER DIPLOMARBEIT... 28 2. GRUNDLAGEN... 31 2.1 THEORETISCHE GRUNDLAGEN... 31 2.1.1 Interaktion mit der virtuellen Umgebung... 31 2.1.2 Einsatzgebiete von 3D-Systemen... 34 2.1.3 Erweiterung der virtuellen Welt... 36 2.2 TECHNISCHE GRUNDLAGEN... 38 2.2.1 Java Telephony API (JTAPI)... 38 2.2.2 Telephony API (TAPI) und Common-ISDN-API (CAPI)... 44 2.2.3 Java Native Interface (JNI)... 45 2.2.4 JavaBeans... 47 2.2.5 Java3D... 49 2.2.6 Java3D-Beans... 51 2.2.7 Java InfoBus... 53 2.2.8 Remote Method Invocation (RMI)... 55 3. ENTWURF... 58 3.1 INTEGRATION EINER TELEFON-KOMPONENTE IN ETOILE... 58 3.1.1 Vertikaler Entwurf... 64 3.1.2 Horizontaler Entwurf... 70 3.1.3 Verteilte Kommunikation... 80 3.1.4 Zusätzliche Schnittstellendefinition zu ETOILE... 86 9

3.2 INTEGRATION VON REALEN KOMMUNIKATIONSENDGERÄTEN... 88 3.2.1 Einsatz der Beans in anderen Applikationen... 89 3.2.2 Allgemeingültiges Integrationsmodell... 93 4. VALIDIERUNG... 95 4.1 FUNKTIONSWEISE DER BEANS IN ETOILE... 95 4.1.1 Die Klasse EtAppTrainer... 95 4.1.2 Die Klasse EtAppLearner... 96 4.1.3 Die Klasse EtCommunication und EtMessage... 96 4.1.4 Nutzung der ETOILE-Architektur... 97 4.2 2D- UND 3D REPRÄSENTATION... 98 4.3 DYNAMISCHE SAMMLUNG DER PHONEBEANS-DATEN... 100 4.4 DIE KLASSE ETTELEPHONESERVICES... 101 4.5 DAS INTERFACE ETREMOTETELEPHONESERVICES... 104 4.6 DIE KLASSE ETREMOTETELEPHONESERVICESIMPL... 105 4.7 ANMELDUNG DER ISDN-SERVER... 107 4.8 BEISPIEL: ABSETZEN EINES ANRUFES... 108 5. IMPLEMENTIERUNG... 110 5.1 ALLGEMEINE INFORMATIONEN... 110 5.2 IMPLEMENTIERUNG DER JTAPI-FUNKTIONALITÄT... 110 5.3 IMPLEMENTIERUNG DES 2D-TEILS... 113 5.4 IMPLEMENTIERUNG DES 3D-TEILS... 116 5.5 VERÄNDERUNGEN AN ETOILE... 118 5.6 PROBLEME IN DER IMPLEMENTIERUNGSPHASE... 118 6. EVALUIERUNG... 120 6.1 PRAKTISCHER EINSATZ... 120 6.1.1 Verwendung der Telefonkomponente in ETOILE... 120 6.1.2 Probleme... 126 6.1.3 Ausbaufähige Features... 127 6.2 VERBESSERUNGSVORSCHLÄGE... 127 6.3 SCHLUßFOLGERUNG... 128 7. ZUSAMMENFASSUNG UND AUSBLICK... 129 7.1 ZUSAMMENFASSUNG... 129 7.2 AUSBLICK... 130 LITERATURVERZEICHNIS... 132 10

11

Abbildungsverzeichnis ABBILDUNG 1: EXCEL-ARBEITSBLATT IN EINEM WORD-DOKUMENT... 23 ABBILDUNG 2: SPEKTRUM DER MIXED REALITY [DRA96]... 26 ABBILDUNG 3: MIT INFORMATIONEN ANGEREICHERTER STERNENHIMMEL [SPO99]... 26 ABBILDUNG 4: VIRTUELLER KONTROLLRAUM DER BNFL [AND00]... 35 ABBILDUNG 5: DAS JAVA TELEPHONY CALL-MODELL [JTS00]... 40 ABBILDUNG 6: JTAPI-KOMPONENTEN VON COREPOINT TECHNOLOGIES [COR00]... 43 ABBILDUNG 7: ERSTELLEN EINER JTAPI-APPLIKATION MIT DRAG & DROP [COR00]... 44 ABBILDUNG 8: DIE TAPI-ARCHITEKTUR... 45 ABBILDUNG 9: JUGGLER ALS DEMONSTRATION FÜR JAVABEANS... 48 ABBILDUNG 10: JAVA3D MOLECULAR VISUALISATION SYSTEM [DCS00]... 50 ABBILDUNG 11: VIRTUELLES AQUARIUM IN BOSTON [TCM00]... 51 ABBILDUNG 12: 3D-BEAN ERSTELLT MIT DER 3D-BEANBOX... 52 ABBILDUNG 13: BEISPIEL EINES SZENENGRAPHES IN JAVA3D... 53 ABBILDUNG 14: NUTZUNG DES JAVA INFOBUS... 55 ABBILDUNG 15: ZUGRIFF ÜBER RMI... 56 ABBILDUNG 16: FALL 1 (AGENT-MENSCH-GESPRÄCH)... 61 ABBILDUNG 17: FALL 2 (MENSCH-AGENT-GESPRÄCH)... 62 ABBILDUNG 18: FALL 3 (MENSCH-MENSCH-GESPRÄCH)... 62 ABBILDUNG 19: IP-TELEFONIE... 64 ABBILDUNG 20: VERTIKALER ENTWURF... 64 ABBILDUNG 21: AUFBAU DES TELEFON-BEANS... 65 ABBILDUNG 22: BEISPIEL ANKOMMENDER ANRUF... 69 ABBILDUNG 23: TELEFON-TASTATUR... 71 ABBILDUNG 24: MODELL IN 3D STUDIO MAX [STU00]... 73 ABBILDUNG 25: JTAPI-/TAPI-BINDING... 75 ABBILDUNG 26: BINDING-ÜBERSICHT... 75 ABBILDUNG 27: SYSTEMEIGENSCHAFTEN UNTER WIN98 MIT MODEM WAVE DEVICE... 78 ABBILDUNG 28: SCREENSHOT ETOILE... 86 ABBILDUNG 29: WIN3D-DESKTOP VON CLOCKWISE [CLO00]... 91 ABBILDUNG 30: EINSATZ DER TELEFON-BEANS IN ETOILE... 98 ABBILDUNG 31: ANMELDUNG DER TELEFON-BEANS BEI DER TRAINERAPPLIKATION... 101 ABBILDUNG 32: ANMELDUNG DER ISDN-SERVER... 108 ABBILDUNG 33: TAPI SERVICES FÜR CAPI [AVM00]... 111 ABBILDUNG 34: DIALOGFENSTER BEI TAPI-AUFRUF... 112 ABBILDUNG 35: INSTANZ DER KLASSE PHONEKEYBOARD... 114 12

ABBILDUNG 36: INSTANZEN DER PHONE2D-KLASSE (ZUSTAND:IDLE, ACTIVE, RINGING)... 115 ABBILDUNG 37: INSTANZ DER PHONE3D-KLASSE... 117 ABBILDUNG 38: EINFÜGEN VON BEANS IM JBUILDER... 121 ABBILDUNG 39: ANZEIGE DER BEANS IM JBUILDER... 122 ABBILDUNG 40: EINSETZEN DER 2D-TELEFONKOMPONENTE... 122 ABBILDUNG 41: AUSWAHL DES GEWÜNSCHTEN SZENARIOS MIT DER 3D-BEANBOX... 123 ABBILDUNG 42: ETOILE-SZENARIOBEAN IN DER 3D-BEANBOX... 124 ABBILDUNG 43: 3D-PHONEBEAN BEIM EINSETZEN... 125 13

Tabellenverzeichnis TABELLE 1: JTAPI-PACKAGES... 39 TABELLE 2: PHONEBUS-NACHRICHTEN... 68 TABELLE 3: OBJEKTE DES CALL MODELS VON JTAPI... 77 TABELLE 4: RIFF-CHUNKS... 79 TABELLE 5: ZUSÄTZLICHE NACHRICHTEN DES ETOILE-KOMMUNIKATIONSSYSTEMS... 88 TABELLE 6: BEISPIEL TELEFONINITIALISIERUNG... 108 14

Abkürzungsverzeichnis 2D 3D API AR AWT BDK CAPI CORBA CTI DLL DTMF DV ETOILE GUI IP ISDN JAR JDK JMF JNI JTAPI MR OLE OP PBX PC PCM RIFF RMI SV TAPI 2-dimensional 3-dimensional Application Programming Interface Augmented Reality Abstract Window Toolkit Bean Development Kit Common ISDN-API Common Object Request Broker Architecture Computer-Telephony Integration Dynamic Link Library Dual Tone Multi-Frequency Directly-Viewed Environment for Team, Organisational and Individual Learning in Emergencies Graphical User Interface Internet Protocol Integrated Services Digital Network Java Archive Java Development Toolkit Java Media Framework Java Native Interface Java Telephony API Mixed Reality Object Linking and Embedding Operation Private Branch Exchange Personal Computer Pulse Code Modulation Resource Interchange File Format Remote Method Invocation Stereoscopic Video Telephony API 15

TCP TSAPI TSPI VB VM VR VRML Transmission Control Protocol Telephony Services API Telephony Service Provider Interface Microsofts Visual Basic Virtuelle Maschine Virtual Reality Virtual Reality Modeling Language 16

Zusammenfassung In der Entwicklung von großen Softwaresystemen mit wachsender Komplexität, ist es wichtig, das Gesamtsystem in kleine, überschaubare Teile zu zerlegen. Gleichzeitig kann die Wiederverwendung von Komponenten die Produktivität erhöhen und Entwicklungsdauer senken. Auch im Bereich der Graphischen Datenverarbeitung ist eine Bibliothek von Komponenten nützlich, die immer wieder eingesetzt werden können. So können virtuelle Umgebungen möglichst einfach zusammengestellt werden. Aus einfachen Komponenten können durch Verbindung komplexe Welten erstellt werden. Gegenstand dieser Arbeit ist die Konzeption und Realisierung der Integration realer Kommunikationsendgeräte in virtuelle Umgebungen. Mit virtuellen Umgebungen interagiert der Benutzer meist nur durch Eingabegeräte wie Keyboard, Datenhandschuh oder Maus. In wenigen Fällen werden akustische Signale als Input und Stimulanz für die virtuelle Welt genutzt. In dieser Arbeit werden Ansätze vorgestellt, wie reale Kommunikationsendgeräte als zusätzliche Eingabe- und Ausgabegeräte in eine Trainingsanwendung wie ETOILE (Environment for Team, Organisational and Individual Learning in Emergencies) eingebunden werden können. Anhand eines Telefongerätes werden komponentenbasierte Konzepte erarbeitet und prototypisch umgesetzt. Die Prototypen dieser Arbeit bauen auf den im Fraunhofer Institut für Graphische Datenverarbeitung entwickelten Java3D-Beans auf. Die Kommunikation mit der Telefonie-Hardware erfolgt über ein JTAPI/CAPI- Binding. Durch die Einbindung handelsüblicher Kommunikationsendgeräte in eine virtuelle Umgebung entsteht eine zweiseitige Kommunikation zwischen der realen und virtuellen Welt und eine akustische Verschmelzung dieser beiden. Der Umgang mit dem realen Gegenstand als Metapher für das Pendant in der virtuellen Welt fällt dem Benutzer leichter als ein neu-entwickeltes Eingabegerät. Ausgehend von der Einbindung von Kommunikationsendgeräten wird des weiteren die Integration anderer realer Gegenstände in eine virtuelle Umgebung diskutiert. Eine Weiterentwicklung 17

dieses Konzeptes könnte zu einem höheren Grad der Immersion führen, wenn über das normale Bürotelefon mit einem Software-Agenten in der virtuellen Umgebung tatsächlich telefoniert werden kann. Diese Arbeit liefert vor allem technische Überlegungen auf dem Weg zu einer neuen Mensch- Maschine-Interaktion. 18

Abstract While developing large software-systems with increasing complexity, it is necessary to divide the application into small, manageable pieces. At the same time the reusability of components can increase productivity and decrease development time. In the field of computer graphics a library of reusable components might be useful. Virtual environments are created easily this way. Complex worlds can be generated by composition of simple components. Topic of this work are conception and implementation of the integration of real communication devices into virtual environments. Usually users interact with virtual environments only by input devices like keyboard, data-glove or mouse. In a few cases only, acoustic signals are used as input to stimulate the virtual world. Integrating real communication devices into a computerbased training system like ETOILE (Environment for Team, Organisational and Individual Learning in Emergencies) is shown by some concepts within this paper. Some component-based concepts and prototypes were put into practice on the basis of a telephone device. These prototypes are based on Java3D-Beans, which were developed by Fraunhofer Institute for Computer Graphics (IGD). Communication with telephony hardware is realised through a JTAPI/CAPI-binding. The integration of standard commercial communication devices into a virtual environment creates a two-sided communication between the real and the virtual world and acoustically melting these two worlds together. Interaction with a real object as metaphor for the counterpart in the virtual world is much easier for the user than a new-developed input-device. A further look at this concept might provide a higher degree of immersion, in case communication with a software-agent in the virtual environment through a standard officephone can be realised. This paper provides mainly technical concepts. 19

20

1. Einleitung Schon 1963 beschrieb Stanislaw Lem den Vorgang der Phantomatisierung. Lem gehört unbestritten mit über 27 Millionen verkauften Büchern in 36 Sprachen zu den erfolgreichsten Sciene-Fiction-Autoren des zwanzigsten Jahrhunderts. Laut Lems Terminologie handelt es sich bei der Phantomatisierung um den Anschluß aller Sinne eines Menschen an einen Computer, der ihn "phantomatisiert", also ihn scheinbar in die fiktive Wirklichkeit eintaucht. Heute setzt Lem die Phantomatisierung mit dem Eintauchen in Virtuelle Realitäten gleich. Er äußert sich allerdings kritisch und spricht von ziemlich bescheidenen Ansätze. Die Person, die in bisherige virtuelle Welten abtaucht, sei sich zu jeder Zeit bewußt, daß es sich um eine Simulation handelt.[lem98] Mit solchen und ähnlichen Kommentaren zählt Lem zu den Kritikern der VR- Technologie. Allerdings spielt das Konzept des willing suspension of disbelief, also dem willentlichen, zeitweiligen Aufhebens des Unglaubens, eine Rolle. Der Begriff wurde im neunzehnten Jahrhundert von dem englischen Dichter Samuel Taylor Coleridge [Col97] geprägt. Es spielt dabei keine Rolle, ob man sich in der Geschichte eines Buches fallen läßt oder bei einem Spaziergang in einer virtuellen Welt die Wirklichkeit vergißt. In dieser Arbeit werden wir ein Konzept erarbeiten, wie man reale Kommunikationsendgeräte in eine virtuelle Umgebung integrieren kann, und somit eine Verschmelzung der realen Welt mit einer virtuellen Welt fördern kann. Dem Benutzer kann bei einer erfolgreichen Umsetzung des Konzepts der Eindruck vermittelt werden, daß Personen aus der virtuellen Umgebung tatsächlich existieren, wenn diese in der Lage sind, z.b. auf dem realen Bürotelefon anzurufen. Mit dieser neuartigen Vorgehensweise soll der Wille des Benutzers zum Fallenlassen in diesem Gemisch aus virtueller Welt und realer Welt gefördert werden. 21

Hauptsächlich soll diese Arbeit technische Aspekte für eine Umsetzung aufzeigen. Einer dieser Aspekte ist die Komponentenorientierung, so daß weitgehende Wiederverwendbarkeit in verschiedenen Applikationen möglich gemacht wird. 1.1 Komponentenorientierung Ende der 60er Jahre entstand aus der sogenannten Softwarekrise der Wunsch, Software wie andere Produkte ingenieurmäßig zu entwickeln. Die sinkenden Kosten für Hardware und die steigende Leistungsfähigkeit der Rechner erhöhten gleichzeitig die Verbreitung und den Bedarf an Softwareprodukten. Zusätzlich wurde verläßliche Software benötigt, da der Anwender im Regelfall nicht mehr der Autor der entsprechenden Software war und Fehler nicht mehr in Eigenregie beseitigt werden konnten. Die Frage, ob die Softwarekrise mittlerweile überstanden sei, wird noch immer kontrovers diskutiert.[asp97] Große Hoffnungen wurden vor allem auf die Objektorientierung gesetzt. Allerdings gelang es mit dieser Methode nicht, den Grad der Wiederverwendbarkeit entscheidend zu erhöhen. Mit der Komponentenorientierung soll schließlich dieses Problem gelöst werden.[nie97] Gerade in der Entwicklung von großen Softwaresystemen mit wachsender Komplexität, ist es wichtig das Gesamtsystem in kleine, überschaubare Teile zu zerlegen. Gleichzeitig kann die Wiederverwendung von Komponenten die Produktivität steigern und damit die Entwicklungskosten und die Entwicklungsdauer senken. Auch Wartung und Veränderungen können leichter durchgeführt werden.[ort99] So können alte Komponenten durch neue, effizientere Komponenten ersetzt werden, ohne daß eine völlige Überarbeitung des Gesamtproduktes notwendig wäre. Komponenten kann man nach [Nie97] unter anderem nach ihrer Granularität unterscheiden: Es gibt sowohl Komponenten mit geringer Granularität (fine- 22

grained) als auch Komponenten mit hoher Granularität (large-grained oder coarse-grained). Komponenten mit geringer Granularität stellen lediglich eine sehr übersichtliche Zahl von Features zur Verfügung. Dazu zählen unter anderem Schaltflächen, Listenfelder und Dialog-Boxen. Viele dieser Komponenten können Elemente einer Komponente mit hoher Granularität sein. Komponenten mit hoher Granularität können ganze Applikationen sein.[lee99] Als Beispiel sei die Einbettung eines Excel-Arbeitsblattes in ein Microsoft Word-Dokument mit Hilfe von OLE genannt, wie in Abbildung 1 zu sehen. Abbildung 1: Excel-Arbeitsblatt in einem Word-Dokument Komponenten können als White-Box - oder Black-Box -Komponenten vorliegen. Bei White-Box -Komponenten ist der Sourcecode frei zugänglich und kann auf beliebige Weise modifiziert werden. Es ist ersichtlich, welche Funktionen auf welche Art implementiert wurden. Bei Black-Box - 23

Komponenten liegt die Komponente vorkompiliert vor. Lediglich aus der Spezifikation ist ersichtlich, welche Funktionen zur Verfügung gestellt werden. In der Literatur findet man außerdem eine Zwischenstufe, die als grey-box bezeichnet wird. Dabei wird der Sourcecode der Komponenten nicht modifiziert, aber die Komponente stellt eine Programmiersprache oder eine spezielle API zur Verfügung [Val95]. In der Regel liegen aber Black-Box - Komponenten vor [Nie97]. Neben den einzelnen Komponenten wird ein Framework, eine Struktur bzw. das Skelett eines Projektes 1, benötigt. Das Framework verleiht den Komponenten ihre Bedeutung. Eine Komponente mit ihren Funktionalitäten alleine ist relativ nutzlos. Erst die Fähigkeit mit anderen Komponenten zu kooperieren und somit in ihrer Gesamtheit ein mächtigeres Ganzes zu bilden, macht sie wertvoll. Aber Komponenten und Framework reichen allein nicht aus. Es wird noch ein Mechanismus benötigt, um Komponenten miteinander zu verbinden. Diesen Mechanismus bezeichnet man als Gluing oder Scripting. Scripting ist kein neuer Mechanismus. Unter UNIX bestehen viele Programme aus Shellscripts. Ein weiteres prominentes Beispiel ist Microsofts Visual Basic. Die VB- Komponenten werden in der Regel in C/C++ implementiert und mit einer Basic-ähnlichen Script-Sprache miteinander verknüpft. JavaBeans (siehe Kapitel 2.2.4) benutzt Java für das Gluing. Spezielle Nachrichtensysteme wie der InfoBus (siehe Kapitel 2.2.7) oder das Beans-Event-Modell erleichtern die Kommunikation unter den einzelnen Beans. Trotz der aufgezählten Vorteile entsteht erst sehr langsam ein attraktiver Komponentenmarkt. Die Hersteller von Komponenten haben Schwierigkeiten, ein geeignetes Geschäftsmodell zu entwickeln, denn Software kann beliebig repliziert werden. Beim Bau einer Maschine müssen Teile erworben werden und wenn eine neue Maschine gebaut werden soll, müssen erneut die Teile 1 Projekt - Projekte sind Vorhaben mit definiertem Aufwand und Abschluß, die durch die Merkmale zeitliche Befristung, Einmaligkeit, Komplexität und Neuartigkeit gekennzeichnet sind. 24

des Zulieferers gekauft werden. Bei Software dagegen reicht der einmalige Erwerb. Verschiedene Lizensierungsverfahren brachten bisher nur Teilerfolge. Der weitere Grund, der die Entstehung eines Komponentenmarktes behindert, ist ebenfalls nicht zu unterschätzen: Viele Softwarekomponenten-Hersteller sind überhaupt nicht daran interessiert, ihre Komponenten zu vermarkten. Das Komponenten-Portfolio eines Unternehmens stellt nämlich ein strategisches Potential für das Unternehmen dar.[gol95] Dennoch scheint sich ein Komponentenmarkt zu etablieren. So finden sich im Internet schon einige Marktplätze, die sich auf den Vertrieb von Software- Komponenten spezialisiert haben (siehe [COM00], [FLA00]). 1.2 Mixed Reality Um die Motivation dieser Arbeit zu verstehen, muß neben der Komponentenorientierung auch auf den Begriff der Mixed Reality eingegangen werden. Unter Mixed Reality versteht man alle Klassen von Anwendungen, in denen virtuelle Realität und wirkliche Welt in irgendeiner Weise miteinander kombiniert werden, das heißt also, daß eine virtuelle Wirklichkeit in Zukunft als eine weitere, andere Realität mit unserer bisherigen Wirklichkeit verschmilzt. Im Gegensatz zur Idee einer stetigen Entfernung von der Ausgangsrealität bis hin zu ihrem Verlust könnte damit die einer immer wieder erweiterten Realität entgegengestellt werden. Die Ausgangsrealität verliert dabei durchaus ihr bisheriges Aussehen. Allerdings wird sie nicht vollkommen aufgehoben, sondern bildet in einem dialektischen Sinne, zusammen mit der neuen, anderen Wirklichkeit eine gemeinsame dritte. Virtuelle Räume und virtuelle Objekte könnten in Zukunft zu einem normalen Bestandteil unserer Wirklichkeit werden.[mor98] Durch die Kombinationen der Vorteile beider Realitäten, verspricht man sich eine dritte, unbeschränktere Wirklichkeit. So wurden eine Reihe von Augmented Virtual Tools entwickelt, die die Beschränkungen der VR 25

aufheben sollten. Zu diesen Beschränkungen gehört das Fehlen des Tastsinnes.[Dra96] Mixed Reality Reality Augmented Reality Augmented Virtual Virtual Reality Reality Abbildung 2: Spektrum der Mixed Reality [Dra96] Augmented Reality beschreibt das linke Spektrum der Abbildung 2. Es wird also die reale Umgebung mit Computer-generierten Bildern oder Informationen erweitert oder angereichert (engl.: to augment = anreichern). So kann man zum Beispiel durch eine Brille sehen, die zusätzlich zu der wirklichen Umgebung weitere Informationen wie die Außentemperatur, den Namen des Gesprächspartners anzeigt oder aber im realen Sternenhimmel die Konstellationen mit virtuellen Verbindungslinien herausarbeitet (siehe Abbildung 3). Abbildung 3: Mit Informationen angereicherter Sternenhimmel [Spo99] 26

Im Gegensatz dazu wird bei der Augmented Virtuality die virtuelle Welt mit Informationen aus der Realität angereichert. Eine solche Anreicherung könnte z. B. in Form von directly viewed (DV) Objekten sein, bei denen der User seinen eigenen Körper anstatt eines virtuellen Körpers in einer computergenerierten Simulation sieht. Eine weitere Anwendung sind stereoscopic video (SV) images. Sie können beispielsweise dazu benutzt werden, die Sicht aus einem virtuellem Fenster darzustellen. Durch das Fenster schaut der Betrachter auf eine Übertragung von Kameraaufnahmen aus der realen Welt. In dieser Diplomarbeit werden wir ebenfalls ein Konzept erarbeiten, wie wir virtuelle Welt und Gegenstände der Realität miteinander verknüpfen können. Mit diesem Basiswissen können wir das Ziel der Diplomarbeit definieren. 1.3 Ziel dieser Diplomarbeit Anhand eines Telefonapparats soll ein Konzept für die Einbindung eines realen Gegenstandes in eine virtuelle Welt erarbeitet werden. Dabei soll das reale Telefon als Metapher für das Pendant in der virtuellen Welt dienen. Es soll nicht nur das Aussehen, sondern auch die Funktionalität in beiden Welten vorhanden sein. Für das Konzept sollen komponentenorientierte Ansätze gewählt werden, so daß die Komponente Telefon in einer 3D- und 2D- Umgebung positioniert werden kann und die entsprechenden Funktionalitäten zur Verfügung stehen. Außerdem sollte es für intelligente Agenten 2 möglich sein, Teilnehmer des Trainingsprogramms auf deren Telefon anzurufen. Ebenso sollen Teilnehmer Agenten des Szenarios anrufen können. Des weiteren muß die Telefon-Komponente auch Gespräche von Teilnehmer zu Teilnehmer ermöglichen. Ziel ist es, ein entsprechendes Konzept zu erarbeiten, das diese Aufgabenstellung lösen kann. Um die Funktionsfähigkeit zu demonstrieren, wird das Konzept prototypisch umgesetzt. 2 intelligente Agenten - intelligente Agenten sind Softwareeinheiten, die eine Menge von Operationen im Auftrag eines Benutzers oder eines anderen Programmes mit einem gewissen Grad von Unabhängigkeit oder Autonomie ausführen und dabei Wissen über die Ziele und Wünsche des Benutzers anwenden. Intelligente Agenten können in einem dreidimensionalen Raum, bestehend aus Agency, Intelligenz und Mobilität beschrieben werden. [IBM00] 27

Schließlich werden aus den Erfahrungen allgemeingültige Überlegungen erarbeitet. 1.4 Aufbau der Diplomarbeit Nachdem wir das Ziel dieser Diplomarbeit im vorangehenden Abschnitt erläutert haben, soll der Aufbau der Arbeit dargelegt werden. In Kapitel 2 werden die Grundlagen gelegt, die zum Verständnis der Arbeit notwendig sind. Dabei unterteilt sich das Kapitel in einen theoretischen und einen technischen Teil. Im theoretischen Teil werden wir auf die Einsatzgebiete von 3D-Systemen eingehen. Wir werden den Begriff Augmented Virtuality definieren, soweit das für die Thematik der Arbeit wichtig ist und schließlich wird Augmented Virtuality im praktischen Einsatz beschrieben. Im technischen Teil des Kapitels werden wir uns vorwiegend mit Standardtechnologien beschäftigen. Es werden verschiedene Java-APIs und Zusatzpakete beschrieben. Die einzelnen Technologien werden im Kern vorgestellt, so daß ausreichend Basiswissen zum Verständnis des Entwurfs vorhanden ist. Aufbauend auf den theoretischen Überlegungen in Kapitel 2, können wir nun in Kapitel 3 schließlich einige Entwurfsalternativen beschreiben. Wir beginnen mit einer Anfoderungsanalyse an eine Telefon-Komponente. Dieses Unterkapitel ist in drei Teile zerlegt. Zunächst werden die einzelnen Ebenen im vertikalen Querschnitt betrachtet. Es bestehen Anforderungen im 2D-, 3Dund im funktionellen Teil. Diese drei Teile müssen letztendlich zu einer einzelnen Komponente fusioniert werden. Außerdem muß die Kommunikation durch die einzelnen Ebenen modelliert werden. Es bestehen aber auch angestrebte Features in der horizontalen Ebene. Im zweiten Abschnitt sollen für die Einzelbausteine, diese horizontalen 28

Anforderungen beschrieben werden und entsprechende Modelle entworfen werden, wie die Komponenten implementiert werden können. Abschließend müssen noch einige Schnittstellen zu ETOILE definiert werden, damit die Komponente speziell für diese Umgebung optimal einsetzbar ist. Anhand dieses spezifischen Entwurfs wird im zweiten Teil des Kapitels 3 untersucht, welches allgemeingültige Konzept für die Integration realer Kommunikationsendgeräte erarbeitet werden kann. Dabei wird zunächst betrachtet, in welchen anderen Anwendungen die entwickelte Telefon- Komponente eingesetzt werden kann und welche Änderungen dazu vorgenommen werden müssen. Im nächsten Abstraktionsschritt wird dann untersucht wie die Integration anderer Kommunikationsendgeräte oder sogar anderer technischer Geräte in virtuelle Umgebungen allgemein modelliert werden kann. Aus den Überlegungen in Kapitel 2 und 3 resultierend, wird im Kapitel 4 Validierung ein Entwurf vorgestellt, der schließlich prototypisch implementiert wird. In Kapitel 5 wird der Implementierungsvorgang beschrieben. Dabei wird auf alle drei Teile (2D, 3D, Telefonie-Funktionalität) eingegangen. Abschließend werden die implementierten Features vorgestellt. Außerdem werden die Probleme und deren Lösungen beschrieben, die während der Implementierung aufgetreten sind. In der Evaluierung, Kapitel 6, wird der praktische Einsatz der Komponente evaluiert. Es sollen Probleme aufgezeigt werden. Entsprechende Verbesserungsvorschläge sollen diese Beschreibungen ergänzen. Es wird noch einmal gesondert auf nicht implementierte Features hingewiesen, die in einem zukünftigen Ausbau implementiert werden können. 29

Letztendlich wird in Kapitel 7 eine Zusammenfassung von den Ergebnissen und Erfahrungen in diesem Projekt gegeben und mit einem Ausblick wird die Arbeit abgeschlossen. Weiterführende Literatur ist aus dem Literaturverzeichnis zu entnehmen. Unbekannte Abkürzungen können im Abkürzungsverzeichnis am Anfang der Ausarbeitung nachgeschlagen werden. 30

2. Grundlagen In diesem Kapitel sollen die Grundlagen gelegt werden, die für das Verständnis des nachfolgenden Entwurfs und der daraus resultierenden Implementation wichtig sind. Neben dem theoretischen Aspekt der Virtuellen Realität (VR), der uns bei der Konzeption helfen soll, werden in Kapitel 2 auch technische Grundlagen geschaffen, die für das weitere Verständnis nötig sind. 2.1 Theoretische Grundlagen In diesem Kapitel werden wir einige Begriffe erklären. Oft existieren vielfältige Definitionen. Wir werden an dieser Stelle festlegen, welche Definition in dieser Arbeit verwendet wird, falls keine weiteren Angaben gemacht werden. Des weiteren werden wir auf einige Erkenntnisse der Psychologie zurückgreifen und erklären, warum die Einbindung realer Kommunikationsendgeräte in virtuelle Umgebungen von Vorteil ist. In Kapitel 2.1.2 werden die Einsatzgebiete von 3D-Systemen vorgestellt. Dem Leser wird kurz das Trainingssystem ETOILE vorgestellt, das im weiteren Verlauf der Arbeit wichtig ist. In Kapitel 2.1.3 wird das Konzept der Erweiterung der virtuellen Welt vorgestellt. Zwar findet keine klassische Anreicherung der virtuellen Welt mit Informationen statt, aber dennoch entsteht durch Kommunikationsendgeräte wie Telefone eine Erweiterung der virtuellen Welt. 2.1.1 Interaktion mit der virtuellen Umgebung Zunächst wollen wir den Begriff virtuelle Umgebung betrachten. Von Wann und Mon-Williams [Wan96] stammt folgende Definition virtueller Umgebungen: 31

Eine virtuelle Umgebung ermöglicht dem Benutzer Zugriff zu Informationen, die anderenfalls am gegebenen Ort oder zur gegebenen Zeit nicht verfügbar wären, sie stützt sich auf natürliche Aspekte der menschlichen Wahrnehmung, indem sie visuelle Information in drei räumlichen Dimensionen einsetzt, und sie kann diese Information mit weiteren sensorischen Reizen oder zeitlichen Veränderungen anreichern. [übersetzt in [Zwi98]] Zu diesen weiteren sensorischen Reizen können auch akustische Reize gehören. In der Regel werden akustische Signale nur aus der virtuellen Umgebung an den Benutzer z.b. über Lautsprecher ausgegeben. In der Gegenrichtung findet in den meisten Fällen kein Input statt, d.h. der Benutzer kann durch Geräusche seinerseits keine Reaktion der virtuellen Welt stimulieren. Es muß also eine geeignete Mensch-Maschine-Schnittstelle gefunden werden, die dieses Manko beseitigt. Ziel der Entwicklung von Mensch- Maschine-Schnittstellen ist es, von den Eigenschaften der menschlichen Kommunikationskanälen und Fertigkeiten auszugehen und dann Geräte, Interaktionstechniken und Schnittstellen zu entwickeln, die eine effektive wechselseitige Kommunikation mittels dieser Kanäle zulassen.[zwi98] Es muß ein Medium gefunden werden, daß eine optimale Übereinstimmung zwischen dem mentalen Modell des Benutzers und der Repräsentation erzeugt. Wichtige Aufschlüsse aus der Psychologie geben Furness und Barfield [Fur95]. Folgende Merkmale eines idealen Mediums nennen Furness und Barfield [Fur95]: Übereinstimmung mit den sensorischen Fähigkeiten des menschlichen Benutzers; leichte Erlernbarkeit; hohe Bandbreite der Informationsübermittlung zum Gehirn; dynamische Anpassung an die Aufgaben des Benutzers; 32