Home

mCube - Eldorado

image

Contents

1. Configuration Subcontroller XML B CommandBean gt w A 5 4a 3 Controller 1 Servlet 2 3 Model EJB 4b View T y JSP Container SessionContainer 8b xsl Abbildung 8 3 Unser Model View Controller Konzept Der Browser initialisiert das mCubeServlet und schickt Requests 1 Im Request wird ein Parameter mit dem Namen action und ein Parameter mit dem Namen ausga beformat gesetzt Alle Requests die an das MCubeServlet geschickt werden werden zuvor an eine so genannte Filterklasse weitergeleitet Diese Klasse ist somit in der La ge Requests zu ver ndern oder auch auszusortieren bevor sie tats chlich verarbeitet werden Der Filter sieht im XML Konfigurationsfile nach zu welcher Applikation der Request geh rt Danach werden alle g ltigen HTTP Requests an das Servlet weiterge leitet der Rest wird verworfen Das Servlet sieht nun in einem xml Konfigurationsfile nach 2 und findet einen Eintrag wie den folgenden 8 1 UBERBLICK 49 CommandBean SessionContainer requestSystemOut void execute void sessionObjectHt Hashtable SessionContainer getinstance SessionContainer Javax servlet Filter MCubeFilter HttpServletResponseWrapper CharResponseWrapper ses
2. 103 11 9 3 Probleme ef bse eS RS ade ES 103 11 9 4 Verbesserungs und Erweiterungsmoglichkeiten 104 11 10 104 11 10 1 104 11 10 2Realisierung 0 0 104 11 10 3 Probleme 24 4 2 RR Rare 105 iv INHALTS VERZEICHNIS 12 Installation 107 12 1 Verwendete Software 107 12 2 Installation des BEA Weblogic 108 12 3 Installation der Oracle Datenbank 108 12 4 Konfiguration des BEA Weblogic Servers 109 12 5 Installation des Netscape Directory Servers 110 12 5 1 Erl uterungen zum LDAP Server 111 12 6 Externe Java Libraries 113 13 Benutzerhandbuch 115 13 1 mCube community 115 13 1 1 Neuanmeldung 2 2 2 02 280 Sd 115 13 1 2 LOZIN e 2 Doe Ad Rh we ele OA en 115 13 1 3 Buddyliste 20 4 54 2 22 2 234 shod 828 116 13 1 4 FriendsAround 117 13 1 5 Nachrichten 5 ayy 82 Ra 118 13 1 6 AdmM Pie 118 1337 Prone 2 4 8 24 0 3 Oe a Re akg 119 13 168 Buddychat 2 42 3 Ate ewe RR SR 119 13 2 MCUDE BAME ran an a BE 120 13 2 1 Hauptbildschirm und Navigation 120 1
3. 30 KAPITEL 7 ANFORDERUNGSANALYSE COM F7 Routing Es stehen verschiedene Varian ten zur F hrung zur Verf gung e Ein Nutzer wird an einen bestimmten Ort gef hrt e Zwei Nut zer werden gemeinsam an einen be stimmten Ort gef hrt e Zwei Nutzer werden zusam mengef hrt Der genaue Ablauf dieser F hrung muss noch festgelegt wer den MUSS Das Routing eines Nutzers ist ein zentraler Bestand teil f r Location Based Ser vices der Voraussetzung f r fast alle komplexeren An wendungen sein d rfte COM F7 1 Die Route zu ei nem Ort wird stra Bengenau berechnet und auf einer Kar te und textuell ange zeigt KANN Ohne fremde Komponenten wohl kaum zu realisieren COM F8 An sind Die einzelnen wendungen personalisierbar der Nutzer kann also Einstellungen speichern die beim n chsten Login ber nommen werden MUSS Weniger Eingaben n tig insbesondere bei Handys wertvoll COM F8 1 Alle Anwendungen sind lokalisierbar d h insbesondere die Sprache der Texte ist einstellbar KANN 7 2 ANFORDERUNGEN COMMUNITY BASISDIENSTE 7 2 2 Nicht funktionale Anforderungen 31 Anf Name Aufgabenstellung Typ Begr ndung Anmerkung COM N1 Die bei den funktio MUSS Die von uns entwickelten nalen Anforderungen Komponenten sind Kern identifizierten Kom komponenten f r mobile ponenten m ssen A
4. Abbildung 13 46 Partner gesucht Jeder dieser Punkte hat ein Auswahlmenu oder kann direkt mit Zahlen beschrieben werden Geben Sie ihre Gr e in Zentimetern an und den Suchradius in Kilometern um sich herum Keine Nachkommastellen W hlen Sie die brigen Daten entspre chend ihres Aussehens aus Wenn Sie fertig sind klicken Sie auf den Set Button am unteren Ende des Bildschirms Sie werden danach ber die erfolgreiche Speicherung ihrer Daten informiert werden Die Men punkte am linken Rand sind wieder auf die Standardwerte zur ckgesprungen klicken Sie jetzt auf Suche Sie sehen jetzt wieder ein Auswahlmen hnlich dem Men welches Sie zur Bestim mung ihrer Profildaten vor sich hatten Anders als dort werden Sie allerdings nur bei Suchradius direkt einen Wert angeben k nnen Sie werden feststellen dass hier auch eine Auswahlm glichkeit f r das Alter der gesuchten Person verf gbar ist und deren Geschlecht Dieses Alter wird automatisch aus dem Geburtstag errechnet welchen Sie beim ersten Einloggen in das System angegeben haben Haben Sie die entsprechenden Charakteristika eines Wunschpartners ausgew hlt klicken Sie auf Suche Maay Ergebnisse fuer ihre Suche Suche mCube gt Benutzer hinzufuegen dating gt Suche prototyp1 E y prototyp2 8 _ Powered amigo 3 Abbildung 13 47 Eine Auswahl an Personen Mit etwas Gl ck haben Sie nun eine Liste an Personen vor sich w
5. ea epee kp ee 9 33 mCubevgame Ben ER ee en 10 4 Prozessleitfaden 11 AT Pr jektplan 4 2 2 fee he ewe rat ker 11 SVISO nee Rath bdo Be ne es 12 4 3 Anforderungsanalyse 12 4 4 Analyse und Designphase 12 4 5 Prototyp a De Re A E 13 4 6 Weitere 13 4 6 1 Daserstelnkrement 14 4 6 2 DaszweiteInkrement 14 AT TESTEN a GA ee er ee 8 14 4 8 Zusammenarbeit mit Mobilfunkanbietern 15 5 Qualit tssicherung 17 3 1 Schulungen os sheets ue en la einen 17 5 2 VELSIONIETUNS RA Bae 17 3 3 JavaDoc Au be bk Sag aes th elie ee Be ne 19 5 4 CodeConvention s aie eee ee eee 19 2 9 Assessment Teams re 19 DO TESTS u eee ee ee 19 6 Projektplan 21 ii INHALTSVERZEICHNIS 7 Anforderungsanalyse 25 7 1 Namensschema 00 pee eee eee 25 7 2 Anforderungen Community Basisdienste 25 7 2 1 Funktionale Anforderungen 25 7 2 2 Nicht funktionale Anforderungen 31 7 2 3 Schnittstellenanforderungen 31 7 3 Anforderungen Subsystem mCube game 32 7 3 1 Voraussetzungen 32 732 Spielregeln Sa
6. De ee ep 93 11 4 2 Realisierung 2 2 Coon 93 14 32 Probleme tee sn woe pe ee ne oe 95 11 4 4 Verbesserungs und Erweiterungsmoglichkeiten 95 11 5 Matching Komponente 96 11 5 1 Beschreibung 2 2 2 2 96 1125 2 Realisierung sts ooy e 2 22 ernten 96 11 5 3 Probleme s 2425 3 2ER 97 11 5 4 Verbesserungs und Erweiterungsmoglichkeiten 98 11 6 FriendsAround Komponente 98 11 6 1 Beschreibung 2 2 2 Comm 98 11 6 2 Realisierung ee ie ah rare sr 98 1 1 6 3 Probleme 2 2 2 2252 a ee eier 100 11 6 4 Verbesserungs und Erweiterungsmoglichkeiten 100 11 7 100 11 7 1 Beschreibung 2 Sur ee EB ee 100 11 7 2 Realisierung ssc 2 2 2 sen ee Eo 100 11 7 3 Probleme 2 u a EA en 101 11 7 4 Verbesserungs und Erweiterungsmoglichkeiten 101 11 8 Anwendung mCube community 101 11 8 1 Beschreibung Hee ee aa area 101 116 25 Realisierung fos u Se a wear 3 102 11 8 3 Probleme 222 Dinar ik 2 102 11 8 4 Verbesserungs und Erweiterungsmoglichkeiten 102 11 9 Anwendung mCube game 2 2 CC nn 103 11 9 1 Beschreib ng 2 2 Re ee na 103 11 9 2 Realisierung cs sorea
7. Abbildung 13 8 Administration der pers nlichen Einstellungen 13 1 7 Profile Die pers nlichen Daten des Users k nnen unter dem Men punkt Profile ge ndert werden und zwar der Vor und der Nachname des Users i Abbildung 13 9 pers nlicher Profil 13 1 8 Buddychat Der Buddychat erm glicht eine weitere Art der Kommunikation unter den Buddys Alle Buddys k nnen am Chat teilnehmen Allerdings sollte darauf geachtet werden dass Chatten nur dann reibungslos funktioniert wenn von zwei Usern jeder jeweils in der Buddyliste des anderen eingetragen ist Die Teilnahme am Buddychat funktioniert wie gewohnt Der User schreibt eine Nach richt und sendet diese Anschlie end kann man die gesamte Kommunikation in dem daf r vorgesehenen Feld betrachten wenn man auf Nachrichten abholen klickt p pe Abbildung 13 10 Buddychat 120 KAPITEL 13 BENUTZERHANDBUCH 13 2 mCube game Die Anwendung mCube game verbindet die Konzepte von Sammelkartenspielen und rundenbasierten Kampfspielen Sie basiert auf erweiterbaren Charakteren die gegen einander k mpfen k nnen Die Darstellung ist sowohl auf einem normalen Webbrowser als auch auf einem Handy m glich 13 2 1 Hauptbildschirm und Navigation Spieler Level Entfernung zw lf 1 Nachricht abholen neuer Charakter Charakter bearbeiten Historie mCube gt Game 2003 PG 409 Uni Dortmund Abbildung 13 11 Hauptbildschirm von
8. Grunds tzlich ist einem Gantt Chart nicht zu entnehmen wie die einzelnen Aufgaben zusammenh ngen LRO2 Durch die Benutzung von Microsoft Project hatten wir aber auch diese zus tzliche Funktionalit t zur Verf gung es wurden Pfeile in den Zeitplan eingef gt denen man z B entnehmen konnte dass eine Aufgabe so stark von einer an deren abhing dass sie erst begonnen werden konnte wenn die andere Aufgabe bereits abgeschlossen war Der Zeitplan wurde erst recht grob ber den gesamten Zeitraum der Projektarbeit er stellt und in weiterer Arbeit immer mehr konkretisiert und verfeinert so dass immer ein detaillierter Plan ber die in n herer Zukunft zu erledigenden Aufgaben vorhanden war Die jeweils aktuelle Version war immer online f r alle PG Teilnehmer verf g bar damit sich jeder jederzeit einen berblick ber den Projektstand und die noch zu erledigenden Aufgaben machen konnte 12 KAPITEL 4 PROZESSLEITFADEN 4 2 Vision Am Anfang unseres Projektes stand die Entwicklung einer Vision In einem gemein samen Brainstorming haben wir die Grundideen der zu entwickelnden Anwendung en im Groben festgelegt ohne n her auf die einzelnen Funktionen einzugehen Hierbei stand auch die Ausrichtung auf den Marketinggedanken im Vordergrund da wir die ses Dokument den Mobilfunkbetreibern zur Verf gung gestellt haben um sie von den Vorteilen einer Zusammenarbeit zu berzeugen 4 3 Anforderungsanalyse Anschlie end haben wir
9. te Neuerung ist dabei sicherlich die Ortsabh ngigkeit die eine v llig neue Variante des Datings erschafft Es ist mittels mCube dating m glich kontaktfreudige Personen deren Pers nlichkeitsprofile mit dem des Anwenders zusammenpassen innerhalb einer gewissen Umgebung zu lokalisieren und daraufhin zu kontaktieren Somit ist der An wender in der Lage zu jeder Zeit und an jedem Ort die Person zu treffen die sowohl charakterlich als auch vom u eren Erscheinungsbild seinen W nschen und Vorstel lungen entspricht Dieses Konzept schafft eine sehr gute Basis um jemanden n her kennen zu lernen und k nnte ma geblich zum Erfolg von mCube dating beitragen mCube game Diese Spiel f gt die erfolgreichen Konzepte der Sammelkartenspie le und der Kurzkampfspiele Lycos Pr gelpause zu einer innovativen und attrakti ven Anwendung zusammen Lyc02 Bro97 Basisidee ist ein Rundenkampf der von erweiterbaren Charakteren zun chst ortsunabh ngig zwischen zwei Handybesitzern ausgetragen wird Die Charaktere werden durch sammelbare elektronische Karten um Funktionalit t und St rke erweitert Diese sollen in Aussehen und Aufl sung mit Han dylogos vergleichbar sein Das Sammeln von Logos und Klingelt nen f r Handys und der bisherige Erfolg von Sammelkartenspielen sind Vorbilder f r den erhofften Erfolg des Spielkonzepts F r interessierte Firmen bietet sich die M glichkeit Karten im Rah men von Werbeaktionen zu verschenken 1 2 Ziele der
10. 2x Geschicklichkeit Offensivbonus 3 Defensivbonus 3 Minwert 2 Maxwert 5 Einschr nkung Nur Elf Magier Heiltrank Wirkung 8 Schadenspunkte zur ck Feuerball abh ngig von 2x Intelligenz Offensivbonus 3 Defensivbonus 0 Minwert 1 Maxwert 10 Einschr nkung Magier Amulett der Besonderheit Intelligenz 1 Intelligenz Stab abh ngig von St rke Geschicklichkeit Offensivbonus 0 Defensivbonus 5 Minwert 1 Maxwert 3 Einschr nkung Nur Magier Barbar Ausrutschen Wirkung Gegner f llt hin 3 Schaden spunkte Gegner Lederr stung Defensivbonus 3 Besonderheit Geschicklichkeit 1 Keule abh ngig von 2x St rke Offensivbonus 5 Defensivbonus 0 Minwert 1 Maxwert 10 Einschr nkung St rke gt 7 Paladin Schwert abh ngig von Starke Geschicklichkeit Offensivbonus 2 Defensivbonus 2 Minwert 4 Maxwert 6 Einschr nkung St rke gt 6 Eisenr stung Defensivbonus 5 Besonderheit Geschicklichkeit 2 Mauer Defensivbonus 10 Einschr nkung Elf Magier Paladin 13 2 123 Angenommen Sie entscheiden sich hier f r einen Barbaren so k nnen Sie ihm einen passenden Namen wie z B Olli Kahn geben TT en Game gt Erama p neuer Charakter Name Olli Kahn Charakter erstellen Abbildung 13 14 Eingabe des Namens des neuen Charakters Nachdem Sie den Namen eingegeben haben bekommen Sie eine Statusmeldung dass Thr neuer Charakter erstell
11. Des Weiteren sieht man noch eine Liste mit Spie lern die online sind Diesen kann man Nachrichten schicken Nun beginnt der exemplarische Durchlauf Solange klar ist welchen Link man ver folgen bzw welchen Button man dr cken muss ist dies nicht explizit erw hnt Der exemplarische Durchlauf orientiert sich an der Version f r den Webbrowser Die Ele mente im Handybrowser sind entsprechend vorhanden 13 2 2 Erstellen eines neuen Charakters Bevor Sie spielen k nnen m ssen Sie einen Charakter erstellen der Sie w hrend des Spiels begleitet Dazu gibt es im Men den Punkt neuer Charakter Dort stehen Ihnen vier Charaktere zur Auswahl Me 8 Ei magier barbar Game gt Neuer Charakter Abbildung 13 13 Auswahl eines Charaktertyps fiir den neuen Charakter Jeder dieser Charaktere hat eigene St rken und Schw chen die sich in den Attributen und den Startkarten ausdr cken Charakter Konstitution Geschicklichkeit St rke Intelligenz Elf 3 7 4 6 Magier 3 6 3 8 Barbar 7 3 7 3 Paladin 4 5 6 5 Tabelle 13 1 Werte der Charaktertypen Die Startkarten der Charaktere sind Elf Ausrutschen Wirkung Gegner f llt hin 3 Schaden spunkte Gegner Amulett der Besonderheit Geschicklichkeit 1 Geschick lichkeit 122 KAPITEL 13 BENUTZERHANDBUCH Ritzkihutu abh ngig von
12. daher erbt CBLogIn von CBEJBConnection In dieser Oberklasse ist der Zugriff auf EJBs schon vorimplementiert Werden weitere EJBs be n tigt die noch nicht in einer entsprechenden get Methode zugreifbar sind so sollte man CBEJBConnection so erweitern dass auch die neue EJB ansprechbar ist In der execute Methode berpr ft man per Zugriff auf das Usermanagement oder die Com munity ob der Username und das Passwort zueinander passen Passen sie zueinander ist man fertig man k nnte in die Session schreiben wer jetzt eingeloggt ist aber das ist f r dieses Beispiel nicht wichtig Das Servlet sieht nun nach welche JSP zur Acti on geh rt und verzweigt dann auf die Seite start jsp Nehmen wir nun an das Passwort und der Username passen nicht zueinander Man k nnte nun einfach next Action auf loginfailed setzen Das Servlet berpr ft ob das CommandBean eine next Action ge setzt hat in diesem Fall hat es das Anstatt also start jsp aufzurufen wird die neue Action ausgef hrt Und da hier kein CommandBean angegeben ist wird direkt auf die Seite loginfailed htm verzweigt Wenn ein CommandBean angegeben w re w rde wieder die execute Methode aufgerufen werden 8 1 1 5 Package und Verzeichnisstruktur Die Komponenten des Projektes mCube sind auf verschiedene Packages aufgeteilt um die bersichtlichkeit zu erh hen und um die logische Struktur der Architektur wieder zuspiegeln Im Einzelnen ist folgende Struktur festgelegt worde
13. die Handynummer mit der er mCube Dienste in Anspruch nehmen wird sein Geburtsdatum und die Postleitzahl seines Wohnortes Neben realen Daten sollen solche eingegeben werden die nur f r mCube von Bedeutung sind Hierbei handelt es sich um einen Nickname und ein Passwort das zur Sicherheit wiederholt eingegeben werden soll Nach der Eingabe der Daten geschieht die erste Anmeldung in das System automatisch 13 1 2 Login Bei der Anmeldung in das System werden vom User nur sein Nickname und sein Passwort erwartet Soll mindestens eins von beiden falsch eingegeben werden so er scheint der gleiche Bildschirm noch einmal allerdings mit einer Fehlermeldung Damit 115 116 KAPITEL 13 BENUTZERHANDBUCH Abbildung 13 1 Neuen Benutzer anmelden wird der User aufgefordert die fiir die Anmeldung erforderlichen Daten noch einmal einzugeben Abbildung 13 2 Einloggen 13 1 3 Buddyliste Der erste Bildschirm der dem User nach dem Einloggen erscheint ist die Buddyliste des Users ber diesen wird die Verwaltung der Buddyliste erledigt Abbildung 13 3 Buddyliste Es werden die Namen aller Buddys aufgelistet ebenso die Information ob sich der betreffende Buddy gerade online oder offline befindet Der Status wird insbesondere durch Farben hervorgehoben Durch gr n wird markiert dass sich der entsprechende Buddy online befindet rot bedeutet dass der Buddy offline ist Des Weiteren befindet sich neben einem jeden Bud
14. schl gt fehl Daher haben wir ein weiteres Ant Target erzeugt das die Klassen vor dem Deployen erzeugt Dies gelang durch das Benutzten eines von Weblogic zur Verfiigung gestellten externen Compilers Hier konnten wir den Classpath explizit angeben und die Probleme waren gel st denn nach dem Vorkompilieren deployten die Komponen ten und die Classpath Informationen wurden genutzt 86 KAPITEL 10 ENTWICKLUNGSUMGEBUNG Kapitel 11 Implementierung Wie bereits beschrieben haben wir ausgehend von dem Architekturdokument zun chst einen Durchstichprototypen entwickelt und dann die weitere Implementierung in meh reren Inkrementen daran angeschlossen F r die Entwicklung haben wir uns in Kleingruppen aufgeteilt die jeweils f r einzelne Komponenten verantwortlich waren W hrend der Prototyp Phase hat das Architekturdokument fortw hrend nderungen erfahren die allerdings nur auf der Ebene der einzelnen verwendeten Funktionen statt gefunden haben Daf r wie auch f r die Entwicklung der weiteren Inkremente war die starke Kommunikation unter allen Kleingruppen u erst hilfreich Wir beenden die Projektgruppe mit dem positiven Ergebnis die selbst gestellten Anforderungen wei testgehend erf llt zu haben Im Folgenden wird die Implementierung der einzelnen Komponenten n her erl utert 11 1 Usermanagement Komponente 11 1 1 Beschreibung Die Usermanagement Komponente ist eine Komponente der core Schicht und setzt auf keiner
15. 28 03 03 7 Anforderungsanalyse Die Entwicklung einer umfassenden Anforderungsanalyse war ein wesentlicher Schritt unserer Vorgehensweise Ziel war es alle Grundfunktionalit ten zu entwickeln ohne etwas zu vergessen Daf r haben wir uns nach allgemeinem Brainstorming in kleine Gruppen aufgeteilt die dann jeweils die einzelnen Bereiche aufgearbeitet haben 7 1 Namensschema Die Anforderungen werden zur einfacheren Wiedererkennung systematisch bezeich net Jede Bezeichnung beginnt mit gefolgt von einem K rzel des Anforderungsbe reiches also beispielsweise COM f r den Bereich Community Dann folgen jeweils mit getrennt ein Symbol f r die Art der Anforderung F funktional N nicht funktional S Schnittstelle zusammen mit einer laufenden Nummer sowie eine lau fenden Nummer f r detaillierte Anforderungen Beispiel COM F3 3 steht f r die dritte Anforderung aus dem dritten gro en Paket im Bereich Community 7 2 Anforderungen Community Basisdienste Die Community mCube stellt Basisdienste zur Verf gung die jederzeit von allen Nut zern beansprucht werden k nnen aber auch als Komponenten in gr eren Anwendun gen eingesetzt werden k nnen 7 2 1 Funktionale Anforderungen Anf Name Aufgabenstellung Typ Begr ndung Anmerkung COM F1 Nutzer haben die MUSS Chatten als reine Kommu M glichkeit mit an nikation oder zur Verabre deren angemeldeten dung weiterer
16. 4 Routing Komponente 11 4 1 Beschreibung Die Routing Komponente ist eine Komponente der core Schicht und setzt direkt auf der Locationing Komponente auf Sie bietet die M glichkeit basierend auf der Ortung von Usern oder den Koordinaten von Objekten bzw Treffpunkten relative Positionsdaten zu berechnen Zu diesen relativen Positionsdaten z hlen der Abstand eines Users zu ei nem anderen User oder Objekt der Winkel zwischen ihnen und die Himmelsrichtung in die ein User gehen m sste um einen anderen User oder ein Objekt zu erreichen Dar ber hinaus kann die Komponente die Koordinaten eines optimalen Treffpunkts f r zwei User ermitteln oder ein Objekt als optimalen Treffpunkt f r zwei User aus einer Liste vorgegebener Objekte bestimmen Aufgrund dieser Funktionen bildet die Routing Komponente eine wichtige Basis f r die FriendsAround Komponente 11 4 2 Realisierung Die Routing Komponente wurde als stateless SessionBean implementiert Da die Kom ponente direkt auf der Locationing Komponente aufbaut und daher auf die Funktionen dieser Komponente zugreifen muss wird in der Methode ejbCreate eine Verbindung zum LocationingBean hergestellt Verbindungen zu anderen Beans werden zur Erf l lung der Anforderungen nicht ben tigt Die berechneten Daten werden in Objekten vom Typ RelativePosition gehalten Zu diesen Daten z hlen die IDs der beiden User zwischen denen die relativen Positionsdaten Distanz in Metern Winkel und Him melsrichtu
17. A Ahtiainen L Laitinen S Naghian and V Niemi UMTS LFO2 LRO2 Network Architecture Mobility and Services John Wiley and Sons Ltd 2001 Johannes Link and Peter Fr hlich Unit Tests mit Java dpunkt verlag Januar 2002 Bennet Lientz and Kathryn Rea Project Management for the 2151 Century Academic Press 2002 143 144 Lyc02 Mic03 MMO00 Net03 Nor01 Obj Ses99 Sha01 Sun Sun03a 502036 Sun03c TBO2 LITERATURVERZEICHNIS Lycos Europe BMG und Lycos Europe pushen Online Werbung http www lycos de content service cc press center archive 20020819a html 2002 Abruf 22 02 2003 Microsoft Active directoy http www microsoft com windows2000 tech nologies directory ad default asp 2003 Jack R Meredith and Samuel J Mantel Project Management A Managerial Approach John Wiley amp Sons 2000 Netscape Netscape directory server http enterprise netscape com pro ducts identsvcs directory html 2003 Northstream AB Location Based Services http www northstream se download LocationBasedServices pdf 2001 Abruf 22 02 2003 Object Mentor Incorporated Junit org http www junit org index htm Govind Seshandri Understanding java server pages model 2 architecture exploring the design pattern JavaWorld Dezember 1999 Bill Shannon Java 2 Platform Enterprise Edition Specification v1 3 Sun Microsystems Inc Juli 2
18. Aktionen ist Nutzern zu chatten ein sehr beliebtes Element in Communitys und wird in al len Bereichen ben tigt 25 26 KAPITEL 7 ANFORDERUNGSANALYSE COM F1 1 Es gibt die M g MUSS Zur Gew hrleistung der Pri lichkeit sich mit an vatsph re sind Einzelgespr deren angemeldeten che notwendig Nutzern direkt zu un terhalten COM F1 2 Es gibt verschiedene KANN In themenbezogenen Chats themenbezogene ist es einfach Menschen mit Chats an denen zur gleichen Interessen kennen gleichen Zeit viele zu lernen Nutzer teilnehmen k nnen COM F1 3 Der Nutzer kann MUSS Listen anderer Nut zer verwalten von denen Informationen zu Anmeldestatus und Aufenthaltsort angezeigt werden COM F1 4 Ein Nutzer kann MUSS Durch asynchronen Nach einem anderen eine richtenaustausch k nnen Nachricht schicken auch nicht angemeldete die asynchron gele Nutzer teilnehmen sen und beantwortet werden kann 1 5 Die geschickten KANN Wichtig fiir das Dating Nachrichten k nnen Bilder enthalten COM F1 6 Die geschickten KANN Multimedia Nachrichten Nachrichten k nnen wird ein hohes Potenzial zu Multimediaelemente geschrieben Daher sollten enthalten wir versuchen Unterst t zung daf r anzubieten COM F2 Nutzer haben die MUSS FriendsAround ist ein in M glichkeit die teressanter Location Based Positionen von Service und ein echter Freunden und O
19. Anforderungen Anf Name Aufgabenstellung Typ Begr ndung Anmerkung GAM F1 1 Nutzer haben die MUSS Anforderungen F2 beziehen M glichkeit in den sich auf Aktionen aus dem Hauptbildschirm des Hauptbildschirm heraus Spieles zu wechseln GAM F2 1 Nutzer k nnen in MUSS den Kartenbild schirm wechseln GAM F2 2 Nutzer k nnen das MUSS Wechsel in den Community Spiel beenden bildschirm GAM F2 3 Nutzer k nnen die KANN Anf nglich wahrscheinlich Spielart ausw hlen Beschr nkung auf einen Spielmodus sinnvoll GAM F2 4 Nutzer einen MUSS anderen Nutzer herausfordern dabei kann ein kurzer Text eingegeben werden GAM F2 5 Nutzer k nnen die MUSS Herausforderung ei nes anderen Nutzers annehmen 7 3 ANFORDERUNGEN SUBSYSTEM MCUBE GAME 37 GAM F2 6 Nutzer k nnen nach MUSS Suchparameter k nnten Mitspielern suchen sein Spielstufe Entfernung GAM F2 7 Nutzer k nnen das MUSS Wenn alle notwendigen Ein Spiel beginnen stellungen Mitspieler vor handen GAM F3 1 Nutzer haben die KANN M glichkeit sich Orte anzeigen zu las sen an denen sie sich Karten verdienen k nnen GAM F3 2 Nutzer k nnen durch MUSS ihren Kartensatz bl ttern eine Karte enth lt dabei die in den Spielre geln beschriebenen Informationen GAM F3 3 Nutzer k nnen eine MUSS Auswahl zwischen IR und oder mehrere Kar
20. Attacke gesagt wird 8 2 4 3 M sglicher interner Aufbau GameEngine ist eine Enterprise Java Bean vom Typ Stateful SessionBean Sie muss stateful sein da eine Referenz zu einer bestimmten GameEngine EntityBean gehalten werden muss GameEngineEntity ist eine Enterprise Java Bean vom Typ EntityBean mit Container Managed Persistence das hei t in ihr werden nur Daten gehalten und die Verwaltung der Daten bernimmt der Container UML Klassendiagramm Obige Beschreibung ist in Abbildung 8 9 grafisch darge stellt 8 2 4 4 Anforderungen an andere Komponenten e User Rechtemanagement GameEngine muss die M glichkeit haben ein Datum eines bestimmten Users auszulesen in diesem Fall die Daten aus dem Profil fiir Game e Kommunikation GameEngine ben tigt die Methode sendMessage message userID application void um Kampfauswertungen an einen bestimmten User zu schicken wobei applica tion immer game ist 8 2 DIE ANWENDUNGEN GameEngineBean mcube application game component gameengine GameEngine mcube application game component gameengine GameEngineh ctx SessionContext logger Logger Logger getLogger mcube application game com SAME ENGINE ENTITY String mcube constants Constants G USERMANAGEMENT String mcube constants Constants USE CARDBEAN String mcube constants Constants GAME CARD APPLICATION NAME String mcube constants Constants APP CHANNEL NAME String mcube constants Constants CHANNB
21. Ein erster Prototyp mittels direkter JDBC Verbindung zur Datenbank wurde schnell durch eine EntityBean Va riante ersetzt die nach Erstellen eines geeigneten Deploymentdeskriptors auch sehr gut funktionierte Einzig die M glichkeit verschiedene Objekte an die Nachrichten anzuh ngen musste f r die persistenten Nachrichten aufgegeben werden da hier die Datenbank Probleme aufwarf die in der K rze der Zeit nicht zu l sen waren Es lassen sich derzeit also nur Textnachrichten persistent machen 11 7 4 Verbesserungs und Erweiterungsm glichkeiten Erweiterungsm glichkeiten f r die Communication Komponente bestehen M glich w re eine flexiblere Unterst tzung von Nachrichten gerade der persistenten denkbar Hier wird zur Zeit nur das Senden Empfangen und L schen unterst tzt Au erdem w re zum Beispiel die Einf hrung von Priorit ts und Gelesen Markern sowie die M g lichkeit nur ungelesene Nachrichten oder solche einer gewissen Priorit t abzurufen denkbar Ebenfalls m glich w re eine Unterst tzung von verschiedenen Nachrichten ordnern f r die spezielle Spam Filter eingerichtet werden k nnen oder deren Inhalt nach einer gewissen Zeit gel scht wird Dies setzt eine genauere Betrachtung des Ab senders voraus sowie das Vorhandensein von Zeitstempeln von Nachrichten Au erdem ist es sicher sinnvoll die Nachrichten wieder um die F higkeit zu erweitern beliebi ge Objekte anzuh ngen Gerade in Zeiten von Fotohandy und MMS so
22. Februar 2001 Eugenio G Omodeo Ernst Erich Doberkat Algebraic semantics of ER models from the standpoint of map calculus Part I Static view M rz 2001 Ernst Erich Doberkat An Architecture for a System of Mobile Agents M rz 2001 112 Corina Kopka Ursula Wellen Development of a Software Production Process Model for Multimedia CAL Systems by Applying Process Landsca ping April 2001 113 Ernst Erich Doberkat The Converse of a Probabilistic Relation Oktober 2002 114 Ernst Erich Doberkat Eugenio G Omodeo Algebraic semantics of ER models in the context of the calculus of relations Part Il Dynamic view Juli 2001 115 Volker Gruhn Lothar Sch pe Eds Unterst tzung von verteilten Softwareentwicklungsprozessen durch integrierte Planungs Workflow und Groupware Ans tze September 2001 116 Ernst Erich Doberkat The Demonic Product of Probabilistic Relations September 2001 117 Klaus Alfert Alexander Fronk Frank Engelen Experiences in 3 Dimensional Visualization of Java Class Relations September 2001 118 Ernst Erich Doberkat The Hierarchical Refinement of Probabilistic Relations November 2001 119 Markus Alvermann Martin Ernst Tamara Flatt Urs Helmig Thorsten Langer Ingo R pling Clemens Sch fer Nikolai Schreier Olga Shtern Ursula Wellen Dirk Peters Volker Gruhn Project Group Chairware Intermediate Report November 2001 120 Volker Gruhn Ursula Wellen Autonomies in a Software Process Lands
23. Hauptfunktionalit t der JSP Seiten des Dating besteht darin die Pa rameter bzw Attribute aus dem Request Objekt auszulesen und mit Hilfe von XML Tags zu beschreiben bzw auszuwerten Diese XML Tags werden dann mit Hilfe von XSLT Prozessoren in das HTML oder xHTML Format umgewandelt 11 10 3 Probleme Bei der Implementierung der Dating Komponente traten keine gr eren Probleme auf Es wurden jedoch Anpassungen im Laufe des Entwicklungsprozesses vorgenommen bzw die Architektur wurde leicht ver ndert auf die DatingEntityBean wurde ganz verzichtet was zu leichter Ver nderung der Implementierung f hrte 106 KAPITEL 11 IMPLEMENTIERUNG 12 Installation Dieses Kapitel beschreibt die zum Betrieb der mCube Plattform notwendigen Soft ware Komponenten sowie deren Installation Konfiguration Ausgegangen wird von der Installation auf einer Windows Plattform 12 1 Verwendete Software Es folgt eine kurze Vorstellung der eingesetzten Komponenten Eine genauere Be schreibung der notwendigen Installationsschritte findet in den folgenden Abschnitten statt Folgendende Komponenten wurden verwendet BEA Weblogic Application Server Eingesetzt wurde Version 7 0 Die Kompatibili t t zu vorherigen Versionen bzw zu Application Servern anderer Hersteller wurde nicht getestet Ben tigt wird ein Server der mindestens folgende Technologien unterst tzt e J2EE 1 3 e CMP 2 0 Oracle Database 8i Eingesetzt zur Persistierung
24. Laufe unseres Projekts vollst ndig entwickelt 11 7 Communication Komponente 11 7 1 Beschreibung Die Communication Komponente realisiert die Kommunikation verschiedener Clien ten Sie stellt als Core Komponente die Methoden zur Verf gung mit deren Hilfe die verschiedenen Applikationen den Benutzern eine nachrichtenbasierte Kommunikation erm glichen kann Zu diesem Zweck existieren zwei Nachrichtentypen zum einen ei ne kurzlebige Nachricht die direkt nach dem Empfang vom Server gel scht wird zum anderen eine persistente Nachricht die erst nach explizitem L schen verloren geht 11 7 2 Realisierung Die Communication Komponente besteht aus einer SessionBean die die Methoden zur Nachrichtenverwaltung zur Verf gung stellt und einer EntityBean die die Persistenz der langlebigen Nachrichten gew hrleistet Die SessionBean besitzt Methoden zum Senden und Empfangen von Nachrichten sowie dem L schen persistenter Nachrichten Als Parameter sind immer der Absender und der Applikationsname zu nennen von dem der Methodenaufruf stattfindet Kurzlebige Nachrichten werden mittels des BEA We blogic JMS Server realisiert Hier wird pro Applikation ein so genanntes Topic erstellt und jedem Benutzer ein Subscriber zugeordnet Dies erm glicht eine schnelle Verar beitung der Nachrichten l scht diese allerdings sobald alle zugeordneten Subscriber die Nachricht empfangen haben Diese M glichkeit der Nachrichten bermittlung eig net sich gut f r
25. Rn 81 10 4 Entwicklungswerkzeuge 81 10 4 1 Sun 2 13 1 2 13 82 10 4 2 CVS WinCVS o 2 02 EAE 82 10 4 3 0 2 Hand oak Be 82 10 4 4 Bea Weblogic 7 0 82 10 4 5 Buildprozess mit Ant und CruiseControl 82 10 4 6 Probleme 3 ee eh 84 INHALTS VERZEICHNIS iii 11 Implementierung 87 11 1 Usermanagement Komponente 87 11 1 1 Beschreib ng pp amp seiner se a 87 11 1 2 Realisierung lt o tite 88 11 1 3 Probleme nes Se a 88 11 1 4 Verbesserungs und Erweiterungsmoglichkeiten 89 11 2 Groupmanagement Komponente 89 12 Beschreibung 89 W232 Realisierung stez kacsa ere een ep 89 11 2 3 Probleme 2 4 En Beaded BR 90 11 2 4 Verbesserungs und Erweiterungsmoglichkeiten 91 11 3 Locationing Komponente 000 91 11 3 1 91 11 3 2 Realisierung 26 ooi eS SSE ses 91 11 33 Problemen see en an sr EEE Basen 92 11 3 4 Verbesserungs und Erweiterungsmoglichkeiten 93 11 4 93 Wea Beschreibung
26. Wird als Defaultwert aus der Community tibernommen kann aber bei der Erstel lung des Profils ge ndert werden Diese muss bei der Anwendung mCube dating eindeutig sein und kann sp ter nicht ge ndert werden password String Das Passwort wird initial ebenfalls aus der Community bernommen kann aber auch bei der Registrierung oder im Menu Profil nderung ge ndert werden height int Gr e des Users Angabe in cm haircolor String Haarfarbe des Users e smoker boolean Angabe ob der User Raucher oder Nichtraucher ist partner String Es kann zu jedem Zeitpunkt immer nur ein Partner gesetzt sein Dieser wird be n tigt damit viele Funktionen die sich um den Partner drehen leichter benutzt werden k nnen zum Beispiel um einen Ort zwischen zwei Usern herauszufin den oder dem Partner eine Nachricht zukommen zu lassen blockedUsers LinkedList Diese Liste enth lt alle UserIDs die durch den User gesperrt wurden searchRadius int Der Radius um die eigene Position in der gesucht werden soll Angabe in Me tern messages LinkedList Hier werden die empfangenen Nachrichten gespeichert 8 2 2 3 Anforderungen an die Komponente API UML Klassendiagramm Die Struktur der Anwendung mCube dating ist in Abbil dung 8 7 grafisch dargestellt 58 KAPITEL 8 ARCHITEKTUR SessionBean DatingBean mceube application dating componen mcube application dating componen EntityBean DatingEntity
27. cardName Name der Karte gleichzeitig eindeutiger Key String description Eine Beschreibung des Gegenstands oder der Hand lung String type Der Typ der Karte hier gibt es zun chst folgende Weapon dieser Typ von Karte kann pro Kampfrunde neu gew hlt werden es z h len auch Zauberspr che dazu Event pro Kampfrunde kann eine Event karte eingesetzt werden Armour im Kampf darf hiervon eine getragen KAPITEL 8 ARCHITEKTUR werden Neck alle Dinge die um den Hals getragen werden wie Amu lette im Kampf darf eine Karte dieses Types getragen werden Hand alle Dinge die an der Hand getragen werden meistens Ringe im Kampf diirfen zwei Karten dieses Types getragen werden Belt alle Dinge die am Giirtel getragen werden k nnen wie zum Beispiel Fl schchen mit Heiltr nken im Kampf k nnen zwei Karten dieses Typs getragen werden und Unlimited das sind Karten die in beliebiger Anzahl mit in den Kampf genommen werden k nnen e Voraussetzungen die der Charakter ben tigt int minConstitution Die minimale Konstitution die der Charakter ben tigt um die Karte einzusetzen int maxConstitution Die maximale Konstitution die der Charakter haben darf um die Karte einzusetzen int minStrength Die minimale St rke die der Charakter ben tigt um die Karte einzusetzen int maxStrength Die maximale St rke die der Charakter haben darf um die Karte einzusetzen int minIntell
28. constants Constants ROUTIN routing Routing null CARD String meube constants Constants GAME CARI cardHome CardHome null logger Logger Logger getLogger mcube application ga setSessionContext context SessionContext void ejbActivate void ejbPassivate void ejbRemove void ejbCreate void getCardListForString cards String LinkedList getCardStringForList cards LinkedList String getAttribute userID String attribute String Object addPlayerToOnlineGroup userlD String void removePlayerFromOnlineGroup userlD String void getDistance userlD1 String userlD2 String int sendTradeOffer fromUserlD String toUserlD String me getDirection userID1 String userID2 String String sendBattleInvitation fromUserID String toUserlD String sendMessage fromUserlD String toUserID String mess tradeltems userID1 String userID2 String itemsOfUser l deleteCharacter userID String void createCharacter userID String typeOfCharacter String addUsualCard user String card String void removeUsualCard user String card String void getNextMessage userlD String Message setMaxDistance userID String maxDistance int void setUsualCards userlD String usualCards List void isCardCombinationAllowed userlD String items List bo removeForbiddenCards userID String cards LinkedList isCardAllowed userID String card String boolean getOnlineUsers aktUser String List ctx Enti
29. den spezifischen Fragestellungen die f r die Ar beit der beiden teilnehmenden Projektgruppen zu erwarten waren Die Vortr ge gaben allen Teilnehmern einen ersten Einblick und erm glichten so erste berlegungen f r sp tere Architekturentscheidungen Zudem wurde Fachwissen vermittelt Die Vortr ge unterteilten sich in die Bereiche Softwaretechnische Aspekte Technische Grund lagen und Wirtschaftliche Rahmenbedingungen Im Bereich Softwaretechnische Aspekte wurden Vortr ge zu den Themen e Softwareentwicklungsprozesse e Komponentenmodelle e Konfigurationsverwaltung und Projektdokumentation und e Benutzeroberfl chen gehalten Der Bereich Technische Grundlagen war durch e Applikationsserver e XML basierte Datenaustauschformate e Telematik Mobilfunk und Netzwerktechniken 6 KAPITEL 2 SEMINARPHASE e Sicherheit e UMTS und e Location Based Services vertreten Zum Thema Wirtschaftliche Rahmenbedingungen wir Referate mit den Titeln e E Commerce E Business und e Mobile Commerce Die Folien der Vortr ge sowie die ausf hrlichen schriftlichen Ausarbeitungen sind in elektronischer Form auf der Homepage der Projektgruppe www mcu be verf gbar Im Folgenden werden die Inhalte der Vortr ge kurz beschrieben Softwareentwicklungsprozesse Nach einer kurzen Begriffserl uterung wurden ei nige Prozessmodell
30. des Users der die Informationen abrufen m chte So wird sichergestellt dass ein User alle Daten seines Profils ansehen und ndern kann ein anderer User jedoch nur die Daten erhalten kann die er sehen darf Um den Datenverkehr zu vermindern wurde das Value Object Pattern eingesetzt Will man viele Daten eines Users erhalten z B f r die Anzeige aller Daten in einer ber sicht kann man ein User Objekt anfordern das alle Daten eines Users enth lt So ist nur eine Kommunikation mit dem Server n tig um alle Daten zu erhalten In alle Methoden der Komponente wurde das Logging integriert so dass die einzelnen Arbeitsschritte in der Logdatei des Applicationservers nachvollzogen werden k nnen Hierbei wurden einzelne Stufen des Loggings von Debug ber Info und Error bis Fatal verwendet um den Informationsgehalt richtig einordnen zu k nnen Au erdem verf gt die Komponente ber ein komplettes Exceptionhandling Insgesamt konnten also mithilfe der Anbindung an LDAP alle Anforderungen erf llt werden 11 1 3 Probleme Bei der Implementierung der Usermanagement Komponente traten keine gr eren Pro bleme auf Zun chst mussten wir uns nat rlich in die LDAP Thematik einlesen den Server einrichten und geeignete Java Klassen finden um den Server anzusprechen da es mehrere leicht unterschiedliche Implementierungen gibt Novell Netscape und Sun Nachdem wir den Service eingerichtet hatten und ansprechen konnten mussten wir uns ein
31. die Kommunikation zwischen unterschiedlichen Komponenten Jedoch ist f r einen Nutzer die M glichkeit zur Abspeicherung von Nachrichten sehr wichtig 11 8 ANWENDUNG MCUBE COMMUNITY 101 Zu diesem Zweck haben wir nach dem zweiten Entwicklungsinkrement eine M glich keit zur Speicherung der Nachrichten vorgesehen Diese wurde im weiteren Verlauf durch den Einsatz der EntityBean realisiert Da die urspr ngliche Planung noch keine Unterst tzung von persistenten Nachrichten vorsah konnte das Interface f r die kurzlebigen Nachrichten nicht einfach um einen Parameter f r die Persistenz erweitert werden ohne bei mehreren anderen Komponen ten Fehler zu verursachen So wurden neue Methoden zum Senden und Empfangen von persistenten Nachrichten zum vorhandenen Interface hinzugef gt 11 7 3 Probleme Die Implementierung der kurzlebigen Nachrichten und damit der SessionBean verlief ohne gro e Probleme einzig das Einrichten des JMS Servers barg einige kleinere Pro bleme Probleme tauchten erst bei der Konfiguration des JMS Servers auf Es dauerte einige Zeit bis eine funktionierende Einstellung der Parameter gefunden war Hier half uns die Online Dokumentation von Bea sehr weiter Mehrfach ge ndert wurde auch der Filter der es erm glicht dass ein Nutzer nur die f r ihn bestimmten Nachrichten erh lt Die Anforderungen nach einer persistenten Nachrichtenunterst tzung kam erst sp ter auf so dass die Implementierung in zwei Schritten ablief
32. ist dabei die Ortsbasiertheit die eine v llig neue Variante des Datings erm glicht Mit tels mCube Dating ist es m glich kontaktfreudige Personen deren Profile mit dem des suchenden Benutzers zusammenpassen innerhalb einer gewissen Umgebung zu loka lisieren und daraufhin zu kontaktieren Somit wird der Benutzer in die Lage versetzt zu jeder Zeit und an jedem Ort die Person zu treffen die sowohl charakterlich als auch von den Interessen seinen W nschen und Vorstellungen entspricht Im Detail sieht die Benutzung des Services wie folgt aus 9 10 KAPITEL 3 UBERSICHT Der Anwender hat zun chst die M glichkeit sein Profil ber sein mobiles Endge r t zu erstellen Das Profil gliedert sich dabei in Informationen bez glich des u eren Erscheinungsbildes des Charakters der Hobbys plus weiterer pers nlicher Daten Ebenfalls k nnen hier W nsche und Vorstellungen bez glich des gesuchten Partners gespeichert werden Ist das Profil erst einmal erstellt Kann der Benutzer jederzeit den Service benutzen und somit herausfinden ob sich Personen die seinen Vorstellungen entsprechen innerhalb eines definierten Radius um seinen momentanen Aufenthaltsort befinden Dabei wird der Benutzer ber sein Mobiltelefon geortet und es erfolgt ein Abgleich der Profile des Benutzers mit denen der brigen Community Mitglieder die ebenfalls am dating Service teilnehmen Hierbei besteht die M glichkeit festzulegen wann man von anderen Benutzern lo
33. kann e TradeOffer e BattleInvitation e Standardnachricht Typen von Nachrichten die automatisch gesendet werden e BattleStart e BattleResult Sendet man eine Nachricht an einen Spieler so wird diese so lange im Application Server gespeichert bis der andere Benutzer sie abholt und bearbeitet Um Nachrichten abzuholen gibt es im Hauptbildschirm einen Button Nachricht abholen Je nachdem was es f r ein Typ von Nachricht ist gelangt man auf eine andere JSP Seite Bei einer BattleInvitation gelangt man auf eine Seite auf der die Aufforderung des anderen Spie lers steht und dann zwei Buttons Annahme und Ablehnung Dr ckt man auf Ableh nung so erh lt der andere Spieler eine Standardnachricht mit der Ablehnung Dr ckt man auf Annahme so wird eine Bean GameEngine erstellt Weitere Informationen zum Ablauf des Kampfes siehe Beschreibung von mCube game gameEngine Wenn man ein TradeOffer verschickt so gibt man darin ein Angebot ab Man gibt also bis n Karten an die man selbst besitzt und fordert daf r 0 bis n Karten die der an dere Spieler besitzt Erh lt man ein TradeOffer so gelangt man auf eine Seite auf der der bermittelte Text steht die zu tauschenden Karten und ein Button annehmen bzw ablehnen Dr ckt man auf Annehmen so werden die Karten in den game Profilen ge tauscht und beide Spieler erhalten eine Standardnachricht dass der Tausch funktioniert hat Dr ckt man auf Ablehnen so wird der Tausch nicht durchg
34. mCube game in einem Webbrowser bearbeiten Historie Game Logout Nachricht abholen neuer Charakter Charakter Community Abbildung 13 12 Hauptbildschirm von mCube game in einem Handybrowser Man gelangt ber den Men punkt game der mCube community in das Spiel Nach der Erkl rung des Hauptbildschirms und der Navigation folgt ein beispielhafter Durchlauf durch das Spiel Genauere Ausf hrungen zu den Regeln finden sich in der Anforde rungsanalyse Da mCube game auf mehreren Endger ten l uft gibt es auch mehrere Oberfl chen Hier werden die Handyoberfl che und die Browseroberfl che betrachtet Der Hauptun terschied in der Navigation ist lediglich dass man auf dem Handy weniger Links zur 13 2 121 Navigation zur Verf gung hat Auf dem Handy siehe Abbildung 13 12 befinden sich auf jeder Seite Links zu der Startseite der Community zum Logout und zur Startseite von Game Alle anderen Links dienen der Logik des Spiels Des Weiteren ist es auf dem Handy immer m glich eine Seite zur ck zu gehen Auf einem normalen Web browser siehe Abbildung 13 11 hat man zus tzlich noch die M glichkeit gezielt zu vorhergehenden Seiten zu gehen Verlauf im unteren Teil des Men s Die Men punkte im Hauptbildschirm sind Nachricht abholen neuer Charakter Charakter bearbeiten und Historie Diese Punkte werden im Folgenden in einem exemplarischen Durchlauf erl utert
35. mit dem blocken Knopf von der Buddyliste entfernt wurde wird in eine spezielle Ignoriert Liste aufgenommen S mtliche Nachrichten von diesem Be nutzer werden ignoriert und er kann nicht durch eine erneute Suche wieder in die Bud dyliste aufgenommen werden Diese Liste kann man einsehen indem bei der Ansicht des eigenen Profils siehe 13 3 2 Das eigene Profil auf den Men punkt Ignorelist geklickt wird In dieser Liste befinden sich alle Personen die vorher mit einem Klick 134 KAPITEL 13 BENUTZERHANDBUCH auf den Blocken Knopf von der Buddyliste gel scht wurden hnlich der Buddyliste gibt es auch hier wieder Zusatzoptionen Neben dem Benutzernamen gibt es hier einen Knopf um den entsprechenden Benutzer wieder zu entsperren und ihn wieder in die Buddyliste aufzunehmen 13 3 5 Die Mailbox Nat rlich kann man mit den Personen die mit der Dating Anwendung zu finden sind auch kommunizieren Das Seitenmen bietet dazu den Punkt Mailbox Am Anfang ist die Mailbox nat rlich leer Wenn in der eigenen Mailbox Nachrichten vorhanden sind so werden diese als eine Liste angezeigt hnlich der Buddyliste Mailbox leeren Nachricht schreiben Profil Suche mCube gt dating Nr Absender l schen Nachricht 1 alice K W3C Abbildung 13 42 Eine Nachricht lesen Nachricht beantworten Profil Suche Inhalt der Nachricht 1g gt Mailbox Dies ist eine Beispielnachricht Abb
36. nity 36 GUI Prototyp dating 8 02 07 02 11 07 02 MarioK 37 Entwicklungsumgebung 8 02 07 02 11 07 02 MikaK 38 Durchstichprototyp 8 02 07 02 11 07 02 alle Komponentenbericht M39 Analyse amp Design 1 18 07 02 18 07 02 Phase abgeschlossen 40 Prototypen ent 22 13 06 02 12 07 02 alle 24 wickeln 41 Kommunikation und 22 13 06 02 12 07 02 TobiasH DanielP Chat 42 Dating 22 13 06 02 12 07 02 YoussefK LarsH 43 Community Logging 22 13 06 02 12 07 02 AnnaF MarioK und Timer SebastianR 44 Game 22 13 06 02 12 07 02 TobiasF RobinN 45 UserMatching Friend 22 13 06 02 12 07 02 ChristianL sAround Routing und MikaK Mi Locationing riamL LarsL NilsG 46 1 Inkrement 76 22 07 02 4 11 02 Einteilung wie beim Prototypen 47 Usermanagement und 76 22 07 02 4 11 02 MikaK Christi Groupmanagement anL verfeinern 48 Matching Algorithmus 76 22 07 02 4 11 02 LarsL MiriamL ausarbeiten 49 JavaDoc fiir jede Kom 76 22 07 02 4 11 02 alle ponente erstellen 50 Funktionen insbe 76 22 07 02 4 11 02 core Leute sondere der core Komponenten fertig stellen 51 JUnit Tests f r core 76 22 07 02 4 11 02 core Leute Komponenten 32 Nachbesserung 1 In 29 4 11 02 12 12 02 alle krement M53 Pr sentation 1 Inkre 1 12 12 02 12 12 02 alle ment 54 XSLT L sung f r das 16 16 12 02 6 01 03 NilsG MiriamL Problem unterschiedli cher Endger te erarb
37. und warten 2 Namens und Logofin 1 15 04 02 15 04 02 alle dung 3 Domainreservierung 1 23 04 02 24 04 02 NilsG 4 Kl rung der techni 13 5 15 04 02 02 05 02 YoussefK schen M glichkeiten MikaK LarsL 5 Entscheidung tiber Ent 8 07 05 02 16 05 02 alle wicklungsumgebung und sonst Tools treffen 6 Mapinfo Schulung 1 25 04 02 25 04 02 LarsL durchf hren 7 IAIFX Schulung durch 1 30 04 02 30 04 02 MiriamL Ro f hren binN 8 CVS WinCVS 1 30 04 02 30 04 02 NilsG Schulung durchfiihren 9 J2ME Schulung durch 1 21 05 02 21 05 02 YoussefK f hren 10 EJB Schulung durch 1 16 05 02 16 05 02 ChristianL f hren DanielP 21 22 KAPITEL 6 PROJEKTPLAN 11 Applikationsserver 1 24 06 02 24 06 02 ChristianL 24 Schulung durchf hren DanielP 12 Projektplan erstellen 13 5 15 04 02 02 05 02 MiriamL 13 Projektplan warten 220 15 04 02 28 03 03 MiriamL 14 Visionsdokument 16 5 15 04 02 07 05 02 AnnaF MarioK erstellen LarsL RobinN 15 Webseite erstellen und 418 30 04 02 28 03 03 LarsL aktualisieren 16 Pr sentation Spiel 9 23 05 02 04 06 02 DanielP 17 Pr sentation Dating 9 23 05 02 04 06 02 MarioK MI8 Phase 1 Vorbereitun 1 21 05 02 21 05 02 gen abgeschlossen 19 Anforderungsdokument 19 18 04 02 14 05 02 TobiasH Seba erstellen stianR MarioK DanielP 20 Teilprobleme in die 10 5 1
38. w hlen und sich mit seinem 79 80 KAPITEL 10 ENTWICKLUNGSUMGEBUNG Benutzernamen aus der Dom ne anmelden Das Profil des Users wurde dann auto matisch vom Server geladen wodurch ein arbeitsplatzunabh ngiges Arbeiten gegeben war F r die PG Mitglieder wurde in der Dom ne eine Gruppe PGUser angelegt und die User dieser zugeordnet Diese Gruppe wurde dann f r alle freigegeben n Order zuge lassen Es wurde au erdem automatisch in regelm igen Abst nden ein Backup von allen relevanten Daten Benutzerprofile Projektdateien CVS Repository Datenban ken usw auf eine separate Festplatte durchgef hrt damit es zu keinem Datenverlust kommen konnte F r nahezu alle anderen Dienste konnten sich die PG Mitglieder ebenfalls mit ihren Usern aus der Dom ne anmelden hierunter fallen unter anderen e CVS e WWW e FTP e News Fiir die Dienste Application Server Weblogic Oracle Datenbank und Netscape Di rectory Server wurden separate User eingerichtet da diese Dienste auch standalone auf anderen Server laufen k nnten beispielsweise in einer verteilten Umgebung und sie somit keine Abh ngigkeit vom PDC haben 10 2 Server Wichtigstes Element auf dem Server ist der Bea Weblogic 7 0 als Application Ser ver Wir haben diesen Server gew hlt weil er bereits EJB 2 0 unterst tzt und somit die einfache Entwicklung von Beans mit Container Managed Persistence erlaubt Dies befreit uns von dem Aufwand komplexe SQL Entwicklung zu
39. w re 11 3 2 Realisierung Die zentrale Aufgabe der Positionsbestimmung bernimmt das LocationingBean das als stateless SessionBean implementiert wurde Es nutzt zur Erf llung der an das Be an gestellten Anforderungen drei EntityBeans LocationingCache ObjectPosition und PLZ und die Klasse Position Ein Objekt vom Typ Position beschreibt den Aufenthaltsort einer Person den Stand punkt eines Objektes oder den Ort der durch eine Postleitzahl beschrieben wird mittels der zwei Attribute f r L ngen und Breitengrad der Koordinaten und einem weiteren Attribut das die m gliche Abweichung von den Koordinaten in Metern enth lt Objek te vom Typ Position werden von den Lokalisierungsmethoden returniert w hrend die eigentlichen Koordinaten des Aufenthaltsortes eines Users seine ID seine Handynum mer und der Zeitpunkt seiner letzten Ortung ber das EntityBean LocationingCache gespeichert werden Die komplette Beschreibung eines Objektes inklusive seiner ID seiner Postadresse einer Beschreibung und vor allem der Koordinaten seines Stand punktes wird mit dem EntityBean ObjectPosition persistent gemacht Das EntityBean PLZ speichert zu allen Postleitzahlen in Deutschland die entsprechenden L ngen und Breitengrade In der Methode ejbCreate des LocationingBeans wird daher zun chst eine Verbindung zu den EntityBeans ObjectPosition LocationingCache und PLZ etabliert Au erdem wird noch eine Verbindung zum Usermanagement hergestellt Dies
40. 001 Sun Microsystems Inc Javadoc tool home page http java sun com j2se javadoc Sun Java message service api http java sun com products jms 2003 Sun Microsystems Inc Enterprise javabeanstm technology http java sun com products ejb 2003 Sun Microsystems Inc Java 2 Platform Micro Edition J2ME Sun Micro systems Inc M rz 2003 Jesse Tilly and Eric M Burke Ant The Definitive Guide O Reilly amp As sociates May 2002 Interne Berichte des Lehrstuhls Software Technologie ISSN 0933 7725 99 100 101 102 103 104 105 106 107 108 109 110 111 B hren Cakir E Can A Dombrowski Geist V Gruhn G rgrn S Handschumacher Heller C Lier D Peters G Vollmer U Wellen J von Werne Endbericht der Projektgruppe eCCo PG 315 Electronic Commerce in der Versicherungsbranche Beispielhafte Unterst tzung verteilter Gesch ftsprozesse Februar 1999 A Fronk J Pleumann Der DoDL Compiler August 1999 K Alfert E E Doberkat C Kopka Towards Constructing a Flexible Multimedia Environment for Teaching the History of Art September 1999 E E Doberkat An Note on Categorial Semantics for ER Models November 1999 Christoph Begall Matthias Dorka Adil Kassabi Wilhelm Leibel Sebastian Linz Sascha L decke Andreas Schr der Jens Schr der Sebastian Sch tte Thomas Sparenberg Christian St cke Martin Uebing K
41. 3 2 2 Erstellen eines neuen Charakters 121 13 2 3 Charakter bearbeiten 123 13 2 4 Nachrichten an andere Spieler 125 13 2 5 Kampf zweier Charaktere 127 13 2 6 Historie eines 130 13 2 7 Level ufstieg u aka ee ae 130 13 3 MCube datin8 2 2 aan a ae SR 132 13 3 1 Hauptbildschirm und Navigation 132 13 3 2 a eck wae eS 132 13 3 3 Partner finden lt zu 5 0 4 de eA 133 13 3 4 133 13 35 DieMailboX ep Ae ha eo ee ee y 134 13 3 6 Ein Beispiel Wie man einen Partner findet 135 14 Fazit 139 15 Ausblick 141 1 Motivation mCube dies ist der Name des Produkts das im Rahmen einer einj hrigen Projektgrup penarbeit an der Universit t Dortmund entstanden ist Ziel und Auftrag dieser Projekt gruppe war die Entwicklung von ortsabh ngigen Diensten f r mobile Endger te mCu be steht f r mobile Community for UMTS based Entertainment und beschreibt das entstandene Produkt sehr treffend Es handelt sich um eine Online Community f r Mo bilfunkger te die auf der Basis und unter Aussch pfung der M glichkeiten der UMTS Technologie ortsabh ngige Dienste im Bereich des Entertainments anbieten soll Die Projektarbeit besch ftigt sich somit mit Idee
42. 3 Personen die mit der Erstellung der Arbeit nichts zu tun hatten auf Qualit t und vorher festgelegte Ziele berpr ft z B Inhalt formaler Aufbau inkl Rechtschreibung 5 6 Tests Auf Ebene des Java Source Codes wurde die Funktionst chtigkeit der einzelnen Kom ponenten mit Hilfe des Test Frameworks JUnit Obj berpr ft Damit wurde zum einen das Erstellen der Tests vereinfacht und zum anderen konnten die Tests automati siert durch unseren Build Prozess ausgef hrt werden F r die GUI wurden Use Cases erstellt und von Hand getestet Gefundene Fehler wurden an die zust ndigen Entwick ler gemeldet und von diesen beseitigt Anschlie end wurden die gleichen Tests noch mal durchgef hrt 20 KAPITEL 5 QUALITATSSICHERUNG 6 Projektplan Die folgende Tabelle stellt die wesentlichen Punkte unseres Projektplans dar Dazu geh ren die jeweilige Aufgabe deren Dauer Beginn und Fertigstellung sowie die PG Mitglieder die jeweils f r die Erledigung der Aufgabe verantwortlich waren e Projektstart Montag 15 04 02 e Projektende Donnerstag 28 03 03 Anmerkung VG steht f r Vorg nger fettgeschriebene Tasks haben folgende kur sive Tasks als Unterpunkte mit M gekennzeichnete Tasks sind Milestones Task Task Name Dauer Start Ende Verantwortlich ID in VG Ta gen 1 Software im PG Pool 220 15 04 02 14 02 03 NilsG LarsH installieren
43. 4 05 02 28 05 02 SebastianR Komponenten aufteilen 21 Klassendiagramm 10 5 14 05 02 28 05 02 ChristianL To erstellen biasF TobiasH MarioK Da nielP SebastianR 22 Architektur entwickeln 11 14 05 02 28 05 02 TobiasF Seba stianR DanielP ChristianL M23 Analysephase abge 1 28 05 02 28 05 02 schlossen 24 Entscheidung ber Ap 2 29 05 02 30 05 02 alle 22 plikationsServer 25 Detailliertes Diagramm 15 5 30 05 02 20 06 02 Architekten und mit Methoden erstellen Evangelisten 26 Komplettes Architek 16 30 05 02 20 06 02 TobiasF Sebasti turmodell entwickeln anR ChristianL DanielP 27 GUI Prototypen ent 24 02 05 02 04 06 02 TobiasH Yous wickeln sefK MarioK 28 Pr sentation f r Voda 10 07 06 02 20 06 02 AnnaF MiriamL fone erstellen SebastianR 29 Richtlinien f r die Ent 11 05 07 02 19 07 02 MikaK TobiasF wicklung von Kompo nenten aufstellen 30 Zwischenbericht 8 02 07 02 18 07 02 RobinN Miriam erstellen Lindhorst 31 Vorwort Zielsetzung 8 02 07 02 02 07 02 RobinN Projektplan Architek tur Anforderungen 32 Vorwort Architektur 8 02 07 02 11 07 02 SebastianR Seminarphase 23 33 Prozessmodell Quali 8 02 07 02 11 07 02 MiriamL tdtssicherung 34 GUI Prototyp game 8 02 07 02 11 07 02 YoussefK 35 GUI Prototyp commu 8 02 07 02 11 07 02 TobiasH
44. Bean mceube application dating componen meube application dating componen java lang String ctx SessionContext GROUP String bGROUP String buddylist LinkedList blockedUsers LinkedList dating_msg Message userlD String channellD String rp RelativePosition DATING_NAME String CHANNEL_NAME String USERMANAGEMENT String usm Usermanagement COMMUNICATION String comm Communication GROUPMANAGEMENT String gpm Groupmanagement MATCHING String mat Matching DATINGENTITY String dat DatingEntity setSessionContext void ejbActivate void ejbPassivate void ejbRemove void ejbCreate void getBuddylist LinkedList getBlockedlist LinkedList createProfile void createGroups void setProfile void getProfile Hashtable getAllUser LinkedList blockUser void unblockUser void giveSimilarUsers LinkedList GiveSimilarUsers LinkedList addToBuddylist void removeFromBuddylist void getDistance int getDirection int sendMessage void getMessages LinkedList getNextMessage Message getAllMessages LinkedList deleteMessage void ctx EntityContext userlD String buddylist LinkedList height int haircolor String smoker boolean partner String blockedUsers LinkedList searchRadius int messages LinkedList setEntityContext void unsetEntityContext void ejbActivate void ejbPassivate void ejbRemove void ejbStore void ejbLoad void searchList ejbCreate String ejbPost
45. Benutzerhandluch community community_benutzerhandbuch tex Neue Rechtschreibung modified Mika endbericht architekturichapter_Architektur_subsection_game tex Neue Rechtschreibung modified MikaK endbericht architekturichapter_Architektur tex Neue Rechtschreibung Deployments by this build 2 Building war D programme cruisecontrotmcubeldistichat war Building war D pragramme cruisecontrotyncubelWist mcube war Abbildung 10 1 CruiseControl Webseite In der oberen Leiste finden sich Funktionen zum Neustarten des Bea Weblogic und CruiseControl au erdem ist es m glich Informationen ber die das Logfile und die Gr e der ear Dateien zu sehen und gegebenenfalls eine neue Version zu deployen Am linken Rand findet man eine Auflistung der vorangegangenen Builds Bei einem Klick auf eine bestimmte Version erscheinen im zentralen Frame Informationen zu diesem Durchlauf Ganz oben kann man zun chst das aktuelle Java Doc einsehen Darunter finden sich dann allgemeine Informationen wie Uhrzeit Dauer und Erfolg zu dem Durchlauf Darunter findet man dann die Details Erfolgs oder Fehlermeldungen der Unit Tests eine Auflistung der CVS nderungen seit dem letzten Build und eine Liste der ge n derten Dateien Die von uns angepasste CruiseControl Intranet Seite bietet also einen zentralen Anlauf punkt f r den Entwickler Hier kann man den Fortschritt des Projekts berpr fen und auch die wichtigsten administrativen Dinge f r das Deploymen
46. Besonderheit ist das Speichern von Floats da der von uns verwendete Netscape Directory Server von Haus aus keinen Datentyp Float kennt Um dieses Problem zu umgehen kann an jedes Userobjekt ein weiteres Objekt der Klasse Floatcontainer geh ngt werden Der Name dieses Objekts entspricht dem Namen des zu speichernden Float Attributes Dieses Objekt hat dann ein Attribute float in dem sich der Float Wert befindet 10 Entwicklungsumgebung Die Durchfiihrung des Projektes der Erstellung einer Mobile Community Plattform erforderte weit reichenden Einsatz von Softwarewerkzeugen sowohl zur Planung der Entwicklung als auch bei der Durchf hrung der Entwicklungst tigkeit selbst In die sem Kapitel werden wir die verwendete Entwicklungsumgebung der Projektgruppe vorstellen Die Projektgruppe bekam vom Lehrstuhl 10 der Universitat Dortmund einen Rechnerraum inklusive der zur Entwicklung notwendigen Hardware zur Verfiigung ge stellt zu dem ausschlie lich die Mitglieder der PG 409 und 411 Zugang hatten Da das ben tigte Entwicklungsszenario recht umfangreich war konnte man es schlecht in einen ffentlichen Rechnerpool auslagern Au erdem brachte diese Anordnung den Vorteil ein einmal aufgebautes Entwicklungssystem weit gehend stabil zu halten da es vor Ver nderungen durch fremde Personen gesch tzt ist Jede PG hat jeweils einen eigenen Server die Entwicklungsrechner wurden jedoch gemeinschaftlich genutzt Die gemeinsa
47. ConnectionFactory etc werden aus der Constants Klas se ausgelesen damit die Daten an einem zentralen Ort gepflegt werden k nnen In der Planungsphase waren wir noch davon ausgegangen die Funktionalit t mithilfe von EntityBeans zu implementieren Wir haben uns nach Abw gung der Alternativen daf r entschieden statt dessen eine LDAP Datenbank einzubinden F r diese Entschei dung sprachen im Wesentlichen zwei Faktoren Zum einen bietet jeder LDAP Server Funktionalit ten um sowohl die Passwortverwaltung mit automatischer Verschl sse lung und G ltigkeitszeitr umen von Passw rtern zu unterst tzen als auch die Suche in den Daten mit Stringoperationen zu vereinfachen Zum anderen sprach der Anspruch auf eine leichte Erweiterbarkeit und Zusammenarbeit mit anderen Anbietern die ande re Funktionalit ten beisteuern f r LDAP Da LDAP schon seit langer Zeit ein Standard ist wird er in vielen Bereichen zu Verwaltung der Userdaten eingesetzt Anbieter von Internet Community Diensten oder eMail Provider k nnten ihren Usern so leicht den Zugang zu unseren Systemen erleichtern da einfach die schon vorhandenen User und Logindaten benutzt werden k nnen und nur die neuen Daten zus tzlich gespeichert werden m ssen Alle Methoden gibt es in zwei Ausf hrungen Die eine f hrt jede Aktion ohne jede berpr fung aus und ist f r die Benutzung zu Administrationszwecken gedacht Die andere Methode enth lt als zus tzlichen Parameter jeweils den Namen
48. Create void findByPrimaryKey DatingEntity getUser D String setUserID void getBuddylist LinkedList setBuddylist void getHeight int setHeight void getHaircolor String setHaircolor void getSmoker boolean setSmoker void getPartner String setPartner void getBlockedUsers LinkedList setBlockedUsers void getSearchRadius int setSearchRadius void getMessages LinkedList setMessages void attributes LinkedList listIndex int searchList addAttribute void nextAttribute MatchingAttribute hasNext boolean restart void deleteAll void Location longitude float latitude float Abbildung 8 7 UML Klassendiagramm der Dating Komponente Methoden e logIn userID String password String boolean Zum Anmelden bei mCube dating Nach der Identifikation k nnen alle Attribute 8 2 DIE ANWENDUNGEN 59 des Profils gesetzt werden logOut void Der User wird von mCube dating abgemeldet und wechselt zuriick in die Com munity createProfile userProfile HashTable void Erstellt ein Userprofil fiir mCube dating das ein Subprofil der Community ist Die Attribute werden in einer HashTable tibergeben getProfile userID String HashTable Liefert das Profil eines Users zuriick als HashTable von Attributen Daraus kann das die ben tigte n Attribut e ausgew hlt werden getPassword userID String void Sendet das dating Passwort als Email an den User getAllUser ListOfUser Liefe
49. DUNGEN 65 int additionalLifepoints Die Anzahl der Lebenspunkte die der benutzen de Charakter erh lt Durch dieses Attribut k nnen auch Schadenspunkte an den benutzenden Charakter ver bt werden indem ein negativer Wert ein gestellt wird boolean noDamageForUsingCharacter Falls auf true gibt es in der Runde keine Schadenspunkte f r den benutzenden Charakter boolean noDamageForOpponent Falls auf true gibt es in der Runde keine Schadenspunkte f r den Gegner intmodConstitution Die Ver nderung die die Karte am Konstitutionswert des Charakters ausl st Gilt f r den benutzenden Spieler int modStrength Die Ver nderung die die Karte am St rkewert des Cha rakters ausl st Gilt f r den benutzenden Spieler int modIntelligence Die Ver nderung die die Karte am Intelligenzwert des Charakters ausl st Gilt f r den benutzenden Spieler int modDexterity Die Ver nderung die die Karte am Geschicklichkeits wert des Charakters ausl st Gilt f r den benutzenden Spieler int modConstitutionForOpponent Die Ver nderung die die Karte am Kon stitutionswert des Charakters ausl st Gilt f r den Gegner int modStrengthForOpponent Die Ver nderung die die Karte am St rke wert des Charakters ausl st Gilt f r den Gegner int modIntelligenceForOpponent Die Ver nderung die die Karte am In telligenzwert des Charakters ausl st Gilt f r den Gegner int modDe
50. Funktionalit t der anderen Komponenten auf Abh ngigkeiten zu anderen Komponenten entstehen also indirekt nur durch die Benutzung der Usermanagement funktionalit ten in anderen Komponenten Das Usermanagement bietet Funktionen zum Anlegen Verwalten und L schen von Userdaten Dazu z hlen insbesondere das Verwalten von Logindaten und Sicherheits berpr fungen sowie eine Speicherung der Datenprofile f r die unterschiedlichen An wendungen Es gibt ein festes Datenprofil f r alle blichen Daten wie Name Vorname Handynum mer etc Diese Daten werden im Community Profil gespeichert F r andere Komponen ten kann jeweils ein eigenes Datenprofil definiert werden In unserer Anwendung wur den Datenprofile f r Game und Dating angelegt Diese Komponente dient als Basis f r die userbasierte Datenhaltung in allen Komponenten und arbeitet eng mit der Group management Komponente zusammen mit deren Hilfe man die User auch in Gruppen anordnen und verwalten kann 87 88 KAPITEL 11 IMPLEMENTIERUNG 11 1 2 Realisierung Die Usermanagement Komponente wurde als stateless SessionBean implementiert Da die Komponente keine Funktionalit t anderer Komponenten benutzt m ssen auch kei ne Verbindungen zu anderen Komponenten aufgebaut werden Da wir allerdings eine LDAP Datenbank benutzen muss in der ejbCreate Methode eine Verbindung aufge baut und als Referenz gehalten werden Alle Parameter um die LDAP Datenbank an zusprechen Login Passwort
51. GSANALYSE DAT F10 Es k nnen Dating KANN So kann man zwei Grup Gruppen angelegt pen zusammenf hren oder werden es kann sich jemand ei ner Gruppe anschlie en Es k nnen nur registrierte User einer Gruppe hinzugef gt werden Bei einem Treffen erhalten alle Gruppenmit glieder Cubies gutgeschrie ben DAT F11 Der Kontostand kann MUSS jederzeit eingesehen werden DAT F12 K nnen zwei User MUSS In der Stadt k nnen das 10m n her zusammen und auf dem Land mehre nicht geortet wer re Kilometer sein Da ist es den erhalten beide schon schwieriger den ande diese Nachricht ren zu finden zusammen mit der Entfernung 7 4 2 Nicht funktionale Anforderungen Anf Name Aufgabenstellung Typ Begr ndung Anmerkung DAT N1 Es sollte zu jeder rea len Person nur ein Profil geben MUSS Die Registrierung k nnte per Post gesendet werden Auch eine Person mit zwei Endger ten sollte keine zwei Profile anlegen k nnen 7 5 Anforderungen Subsystem mCube admin mCube admin soll den kompletten Administrationsservice zur Verf gung stellen Die ser ist sowohl f r einen neuen User gedacht der sich an bzw abmelden will als auch f r den Administrator der Einsicht in die verschiedenen Profile erhalten soll 7 5 1 Funktionale Anforderungen Anf Name Aufgabenstellung Typ Begr ndung Anmerkung ADM F1 Der User hat die MUSS M glichkei
52. Jens Schr der A Framework for Lightweight Object Oriented Design Tools April 2003 Alfert A Fronk Ch Veltmann Hrsg Stefan Borggraefe Leonore Brinker Evgenij Golkov Rafael Hosenberg Bastian Krol Daniel M lle Markus Niehammer Ulf Schellbach Oliver Szymanski Tobias Wolf Yue Zhang Endbericht der Projektgruppe 415 Konzeption und Implementierung eines digitalen und hypermedialen Automo bilcockpits HyCop Mai 2003 Volker Gruhn Malte H lder Sami Beydeda Hrsg Endbericht der Projektgruppe 409 Entwicklung von ortsbasierten Diensten f r UMTS Mobilfunkger te mCube Mai 2003
53. M glichkeit Nachrichten mit Buddys auszutau schen Dies bedeutet ein User kann jedem seiner Buddys eine Nachricht schreiben und von seinen Buddys Nachrichten empfangen falls diese von ihm dazu berechtigt worden sind Schl ssel beim Buddy auf dem Bildschirm Buddyliste eingestellt ber den Men punkt Nachrichten gelangt man an ein Bildschirm von dem aus der User neue und gespeicherte Nachrichten lesen und Nachrichten schreiben kann Das Lesen von Nachrichten geschieht wie gewohnt durch das Anklicken der betreffen den Nachrichten Abbildung 13 6 Nachrichten ausw hlen Beim Schreiben von Nachrichten wird aus der Liste aller Buddys der Empf nger aus gew hlt der Text der Nachricht in das daf r vorgesehene Feld geschrieben und die Nachricht anschlie end versendet Abbildung 13 7 Nachricht schreiben 13 1 6 Admin ber den Men punkt Admin kann man die mCube betreffenden Einstellungen n dern Hierbei handelt es sich um die Erlaubnis Detaildaten weiter zu geben Dies be deutet dass der User mit dieser Einstellung angeben kann ob er in der Buddyliste anderer User mit detaillierten Daten auftreten m chte oder ob er die Anzeige seines Vor und Nachnamens verbietet und nur sein Nickname freigibt Des Weiteren kann unter diesem Men punkt das Passwort ge ndert werden Daf r muss das jetzige Passwort eingegeben werden und anschlie end zweimal das neue Passwort 13 1 MCUBE COMMUNITY 119
54. PDF Dokumente anzeigen zu k nnen wird der Acrobat Reader der Firma Adobe bereitge stellt Um schlie lich selber dokumentieren zu k nnen wird zumindest ein Textverar beitungssystem ben tigt Wir haben uns hier f r TEXentschieden es bietet uns eine komfortable M glichkeit unsere Dokumentation in professionellem Layout zu erstel len Au erdem bietet es noch die M glichkeit aus unseren Dokumenten PDF Doku mente zu erzeugen Um mit komprimierten Daten umgehen zu k nnen sind au erdem noch diverse De Komprimierungsprogramme installiert worden Zur berpr fung der vom Application Server gespeicherten Daten wurde au erdem das Datenbanktool Free Toad installiert das direkten Zugriff auf unsere Oracle Datenbank bietet Die Ad ministration des LDAP Servers kann mit dem Java basierten Netscape Tool vorgenom men werden Um die Wartung der Rechner zu vereinfachen wurde f r jeden der beiden Typen von Clientrechnern ein komplettes Image erzeugt das dann nur noch in die anderen Rech ner kopiert werden musste Um die Entwicklung und das Testen insbesondere der EJBs zu vereinfachen wurde au erdem ein Skript geschrieben das eine Kopie des aktuellen Bea Weblogic Servers auch auf dem Client Rechner starten kann Lokale nderungen zum Testen einer Komponente wirkten sich so nicht auf andere Entwickler aus die zur selben Zeit diese Komponente nutzen m chten Eine funktionierende Variante aller Komponenten ist somit jederzeit am zentralen S
55. PG 411 September 2002 Alexander Fronk An Approach to Algebraic Semantics of Object Oriented Languages Oktober 2002 Ernst Erich Doberkat Semi Pullbacks and Bisimulations in Categories of Stochastic Relations November 2002 Yalda Ariana Oliver Effner Marcel Gleis Martin Krzysiak Jens Lauert Thomas Louis Carsten R ttgers Kai Schwaighofer Martin Testrot Uwe Ulrich Xingguang Yuan Prof Dr Volker Gruhn Sami Beydeda Endbericht der PG nightshift Dokumentation der verteilten Gesch ftsprozesse im FBI und Umsetzung von Teilen dieser Prozesse im Rahmen eines FBl Intranets basierend auf WAP und Java Technologie Februar 2003 Ernst Erich Doberkat Eugenio G Omodeo ER Modelling from First Relational Principles Februar 2003 Klaus Alfert Ernst Erich Doberkat Gregor Engels Hrsg Ergebnisbericht des Jahres 2002 des Projektes MuSofT Multimedia in der SoftwareTechnik M rz 2003 Ernst Erich Doberkat Tracing Relations Probabilistically M rz 2003 Timo Albert Zahir Amiri Dino Hasanbegovic Narcisse Kemogne Kamdem Christian Kotthoff Dennis M ller Matthias Niggemeier Andre Pavlenko Alireza Salemi Bastian Schlich Alexander Schmitz Volker Gruhn Lothar Sch pe Ursula Wellen Endbericht der Projektgruppe Com4zBill PG 411 M rz 2003 Klaus Alfert Vitruv Specifying Temporal Aspects of Multimedia Presentations A Transformational Approach based on Intervals April 2003 Klaus Alfert J rg Pleumann
56. Projektgruppe mCube Die Projektgruppe mCube verfolgte mehrere Ziele Da es sich bei der Projektgrup pe um eine Lehrveranstaltung handelt war der Erfahrungsgewinn das wichtigste Ziel Dieser fand auf mehreren Bereichen statt Eine der wichtigsten neuen Erfahrungen war die Konzeption und Realisierung eines gr eren Softwareprojekts Das praktische Erlernen des Softwareentwicklungsprozesses XPM mit inkrementellen Lebenszyklus modell BT75 und die Herausbildung der Teamf higkeit sind hier die wichtigsten Aspekte Des Weiteren sollte auch ordentliche Dokumentation und Qualit tssicherung erlernt werden Da Wirtschaftskontakte f r jede Projektgruppe sinnvoll f r unsere so gar unabdingbar sind waren diese auch ein Ziel der Projektgruppe Die Kontakte an sich waren gut zu kn pfen und mehrere Unternehmen signalisierten Kooperationsbe reitschaft Nachdem die Entscheidung zur Kooperation mit T Mobile getroffen wurde entstand diese leider zu sp t f r einen Nutzungsumfang der ausgereicht h tte um alle konzeptionellen Ziele zu verwirklichen 4 KAPITEL 1 MOTIVATION 1 3 Die Projektgruppe mCube Die Organisation einer Projektgruppe soll in etwa der Organisation von Projekten in der Wirtschaft entsprechen Zur Erreichung dieses Zieles wurden innerhalb der Pro jektgruppe Rollen verteilt Im Gegensatz zur Wirtschaft konnte die Rollenverteilung jedoch nicht haupts chlich auf Kompetenz beruhen Bei unserer Rollenverteilung kam zus tzlich
57. RCHITEKTUR 8 1 1 4 Die Sicht der Clients Die Clients die bedient werden sollen sind sehr verschiedenartig Zum einen unter scheiden sie sich in der Gr e der Darstellungsfl che zum anderen in ihren F higkei ten GPRS Dienste nutzen zu k nnen Dennoch erfolgt der Zugriff auf die Dienste von mCube in aller Regel ber eine einzige Schnittstelle Alle Clients sprechen ein Servlet an das zun chst eine ger teunabh ngi ge Darstellung der erzeugten Daten in XML generiert Diese erstellten XML Dateien werden dann ger teabh ngig in passende Seiten transformiert Die hierbei verwendete Technologie XSLT wird im Bereich Model View Controller Konzept beschrieben Die Nutzung der GPRS Dienste wie die Positionsermittlung muss allerdings auf an deren Wegen erfolgen Hierf r bieten die Mobilfunkbetreiber meist propriet re API s an die von den Komponenten der core Schicht angesprochen werden und deren Funk tionalit t den Anwendungen dann zur Verf gung gestellt wird Das verwendete Model View Controller Konzept Zur Behandlung der Anfragen des Clients benutzen wir ein sogenanntes Model View Controller Konzept Bei diesem Konzept sind die Entgegennahme und Verteilung der Clientanfragen Controller die Business Logik Model und die Darstellung View voneinander getrennt Ses99 Das von uns verwendete Model View Controller Konzept sieht man in Abbildung 8 3 Das zugeh rige Klassendiagramm ist in Abbildung 8 4 dargestellt
58. Schwerpunkt die technische Umsetzung von Location Based Services im UMTS Netzwerk beschrieben Hierbei wurde auch eine Plattform namens miAware er w hnt in der viele der von uns ben tigten Dienste laut Hersteller bereits implementiert und komfortabel nutzbar sind Auch auf die gesellschaftlichen Nutzen und Bedenken von Location Based Services wurde eingegangen E Commerce E Business Nach einer Definition wurden mehrere Ans tze zur Klas sifizierung von E Business vorgestellt die Klassifizierung nach Phasen einer Handel stransaktion und die Klassifizierung nach Art der Akteure Diese wurden an Beispie len erl utert Im Anschluss wurden m gliche Architekturen zur Realisierung von E Business vorgestellt 8 KAPITEL 2 SEMINARPHASE 2 2 Formulierung des Projektes Der PG Antrag legte das Projekt noch nicht auf eine konkrete Anforderung fest son dern forderte lediglich die Umsetzung eines Location Based Services Im Laufe der Diskussion festigte sich die Vorstellung eine Community aufzubauen die um Anwen dungen erg nzt werden kann Als Referenzanwendungen sollte auf jeden Fall ein Da ting Service implementiert werden Dar ber hinaus wurde ber ein Spiel nachgedacht Nachdem in der Seminarphase kein Ergebnis feststand wurde dieses nach der Seminarphase entworfen Weiterhin wurde beschlossen eine Vision unseres Projektes zu erarbeiten was nach der Seminarphase geschah Kapitel 3 Ubersicht Das folgende Kapitel gibt ein
59. String url Url phone int getProfile locationID String HashTable Liefert eine Hashtable mit den Attributen des Ortes zuriick X X x 8 2 DIE ANWENDUNGEN 61 8 2 2 4 M glicher interner Aufbau der Komponente Eine EntityBean mit vorgeschalteter SessionBean worauf die Servlets oder JSP Seiten zugreifen Viele Methoden werden f r dating leicht abgewandelt k nnen dann aber direkt zu der Fassade weitergeleitet werden Weitere Methoden implementieren die Logik der dating Anwendung Hierzu werden Hilfsklassen ben tigt um zum Beispiel das Objektmanagement zu realisieren 8 2 2 5 Anforderungen an andere Komponenten User und Gruppenmanagement Es m ssen User und Gruppen erstellt werden k nnen und die Profile Detailda ten m ssen generell von allen dating Usern abgefragt werden d rfen e Communication Komponente Es m ssen Nachrichten gesendet werden k nnen die eine einfache Textbotschaft sein kann aber auch eine Multimedia Message ein Treffpunkt oder eine Einla dung zum Date Diese werden als Java Objekt an die Communication Kompo nente bergeben So sollte auch abgefragt werden k nnen ob neue Nachrichten in der Mailbox bereit liegen Routing Komponente Es m ssen Treffpunkte zwischen Usern abgefragt und angezeigt werden k nnen Da die Routing Komponente auf die Location Komponente zugreift wird sie gar nicht benutzt da nur Abst nde zwischen zwei Usern ben tigt werden FriendsAround Komponente U
60. UNIVERSITAT DORTMUND Fachbereich Informatik Lehrstuhl f r Software Technologie MEMO Nr 139 Endbericht der Projektgruppe 409 Entwicklung von ortsbasierten Diensten f r UMTS Mobilfunkger te mCube Volker Gruhn Malte H lder Sami Beydeda Hrsg Mai 2003 Internes Memorandum des Lehrstuhls f r Software Technologie Prof Dr Ernst Erich Doberkat Fachbereich Informatik Universit t Dortmund Baroper Stra e 301 D 44227 Dortmund ISSN 0933 7725 Endbericht der Projektgruppe 409 Entwicklung von ortsbasierten Diensten fiir UMTS Mobilfunkger te Anna Feldgun Tobias Flohre Nils Gantef hr Tobias Haltermann Lars Heide Youssef Khlifi Mario Kleine Nathland Mika Kossmann Christian Lambert Miriam Lindhorst Lars Littig Robin Nunkesser Daniel Pieper Sebastian Ridder 20 Mai 2003 Inhaltsverzeichnis 1 Motivation 1 1 1 Konzepte 2 eee wR SERA EEE ee 2 1 1 1 Ortsbasierte Dienste 2 1 1 2 Online Communitys 2 1 1 3 Mobile Community mit ortsbasierten Diensten 2 1 1 4 Die zus tzlichen Anwendungen 3 1 2 Ziele der Projektgruppe 3 1 3 Die Projektgruppe mCube 4 2 Seminarphase 5 2 1 Die Vortr ge se 4 0 SE tem 5 2 2 Formulierung des 8 3 bersicht 9 3 1 Die Community 22 22 2 a Re he oe 9 3 2 mCube dating
61. Versions System eingesetzt und zur Bedienung WinCVS auf den PG 17 18 KAPITEL 5 QUALITATSSICHERUNG Pool Rechnern installiert Dadurch ist eine Riickverfolgung der Anderungen zeitlich und nach Personen genau nachvollziehbar Am Anfang wurden einige Dokumente in MS Word erstellt die im CVS nur bin r ein gecheckt werden k nnen Dadurch waren leider die Hauptfunktionen f r die man ein CVS einsetzt nicht verwendbar Da w ren zum Beispiel die Funktionen wie um Unterschiede zwischen versionierten Dokumenten anzuzeigen oder auch unterschiedli che Dokumente automatisch zusammenzuf gen merge So k nnten h chstens Bin r dokumente im CVS Repository abgelegt und wiedergefunden werden Hierf r allein ben tigt man jedoch kein CVS Das Problem in der PG Startphase bis das CVS installiert funktionsf hig und benutz bar war wurde vor bergehend gel st durch eine Revision History zu Beginn jedes bin ren Dokuments Hier musste eine Versionsnummer eingetragen werden das Da tum der nderung die Namenskennung und eine Beschreibung der durchgef hrten nderungen Doch sind wir schnell dazu bergegangen nur Dokumente im Klartext zu erstellen und im CVS einzuchecken Haupts chlich wurde das CVS f r die Versionierung des Sourcecodes verwendet Es wurde auf den lokalen Systemen programmiert und getestet sodass nur kompilierba re Versionen eingecheckt wurden Bei dem Erreichen von bestimmten Meilensteinen wie den geplanten I
62. Voraussetzungen und Dimensionen hat ist das Konzept der Pro jektarbeit allen Teilnehmern n hergebtracht worden Der Wirtschaftskontakt hat nicht in allen Belangen so funktioniert wie wir uns das vorgestellt haben Zwar war es gut m glich Kontakt zu kn pfen jedoch ist es schwer eine Kooperation aufzubauen von der beide Seiten profitieren Letzten Endes reichte leider die Zeit der Projektgruppe f r eine fr chtetragende Kooperation nicht aus 139 140 KAPITEL 14 FAZIT Kapitel 15 Ausblick Wie im Fazit angedeutet ergeben sich viele M glichkeiten f r eine Weiterf hrung der geleisteten Arbeit Da unsere Architektur modern und flexibel ist kann die Ar beit auch von anderen Personen weitergef hrt werden Notwendig ist hierbei die An bindung an Fremdsysteme die w hrend der Laufzeit der Projektgruppe nicht m g lich war M glich ist eine Erweiterung der Funktionalit t sowohl durch Ausbau der bestehenden Komponenten als auch durch Einbindung neuer Komponenten Bei den bestehenden Komponenten sind in der Anforderungsanalyse siehe Kapitel 7 einige KANN Anforderungen briggeblieben die das System sinnvoll erweitern Die flexible Architektur erlaubt auch die einfache Anpassung an weitere Endger te An vielen Stel len k nnen noch ortsbasierte Dienste eingebaut werden und zu einem Mehrwert des Produkts f hren Es bleibt zu hoffen dass das Projekt in irgendeiner Form weiterge f hrt wird 141 142 KAPITEL 15 AUSBLICK Li
63. Vortrag f r die Arbeit unserer Pro jektgruppe weniger interessant Telematik Mobilfunk und Netzwerktechniken Der Vortrag gliederte sich in die drei recht unabh ngigen Bereiche Telematik Mobilfunktechnik und Netzwerktechnik Im Bereich Telematik wurden nach einer ausf hrlichen Definition m gliche Einsatz bereiche n her erl utert Als Abschluss wurden einige bereits vorhandene System kurz vorgestellt Der Bereich Mobilfunktechnik erkl rte die Funtionsweise von Mobilfunknetzen und erz hlte die historische Entwicklung mobiler Telefonie Im Netzwerkbereich wurden die Modelle ISO OSI und TCP IP erl utert Danach wur den Netzwerktopologien und technologien beschrieben Sicherheit Im Vortrag ber Sicherheit wurde der Unterschied symmetrischer und asymmetrischer Verschl sselungsverfahren erkl rt Danach wurden aus jedem Bereich implementierte Verfahren vorgestellt Als Fazit wurde der Einsatz asymmetrischer Ver fahren als notwendig erachtet Implementierungen sind im aktuellen Java Development Kit der Firma Sun vorhanden UMTS Der Vortrag gab einen ausf hrlichen berblick ber die Technik und die Ar chitektur von UMTS Nach einer Motivation f r die Einf hrung einer neuen Mobil funkgeneration wurde die Architektur des UMTS Netzes und die neue bertragungs technik erkl rt Zum Abschluss wurde die neuartige Dienstarchitektur beschrieben Location Based Services Nach einer Markt bersicht und einer kurzen Marktstudie wurde als
64. able ROOT_TAG String ACTION_TAG String ACTION _NAME_ATTR String FILENAME_TAG String COMMANDBEAN_TAG String uniqueOutputFormatConfig OutputFoil configFile String jspRoot String applicationTable Hashtable ROOT_TAG String APPLICATION String MAPPING String OUTPUT_FORMAT String XSL_FILE String APPLICATION_TAG String ActionConfig getActionConfig ActionConfig getActionHt Hashtable getActionEnum Enumeration getActionNames Enumeration getFilenameForAction String getCommandbeanForAction String getApplicationForAction String setConfigFile void setJspRoot void getConfigFile String OutputFormatConfig getOutputFormatConfig OutputForme getStylesheetName String setConfigFile void setJspRoot void getConfigFile String printTree void Abbildung 8 4 Klassendiagramm zum MVC Konzept lt action name start unsecure true gt lt application gt community lt application gt lt file gt start jsp lt file gt lt commandbean gt mcube application community command CBStart lt commandbean gt lt action gt Steht im unsecure Attribut der Wert false so berpr ft das Servlet ob der Be nutzer der die Anfrage gestellt hat momentan korrekt eingeloggt ist Ist dies der Fall initialisiert das Servlet ein entsprechendes CommandBean und ruft dessen execute Me thode auf 3 die jedes CommandBean besitzen muss Der execute Meth
65. an Spieler Zwolf Tauschangebot abschicken Eigene Karten Lederr stung mCube gt Angebot Ausrutschen Game gt H Nachricht erstellen gt Ritzkinuu Tauschangebot Haren Gegner H Nachfrage Amulett der Geschicklichkeit gt Abbildung 13 27 Das fertige Tauschangebot Fiir zuktinftige Tauschaktionen Sie auch noch einen kurzen Blick darauf wer fen wie das Tauschangebot aussieht wenn es bei Spieler Zw lf ankommt Abbil dung 13 28 Spieler Olli Kahn macht ihnen ein Tauschangebot annehmen Ausrutschen ablehnen Angebot Amulett der Geschicklichkeit Nachfrage Abbildung 13 28 So empf ngt Spieler Zw lf das Tauschangebot Gl cklicherweise nimmt er es an und so k nnen Sie bald die Nachricht abholen dass der Tausch durchgef hrt wurde 13 2 4 3 Kampfaufforderung Nach dieser friedvollen Transaktion wird es jetzt allerdings Zeit f r einen Kampf Zu diesem Zwecke formulieren Sie eine Kampfaufforderung 13 2 5 Kampf zweier Charaktere Nimmt der andere Spieler die Kampfaufforderung an so gelangen Sie beim Abholen von Nachrichten auf die Auswahl unserer Basisausr stung 128 KAPITEL 13 BENUTZERHANDBUCH Spieler Gamemaster Level 42 schreibt Der Tausch zwischen ihnen und Robin wurde durchgef hrt mCube gt Game gt Nachricht abholen Abbildung 13 29 Der Tausch wurde durchgef hrt Kampfaufforderung an Spieler Zw lf Jetzt abe
66. an die Methoden bergeben wird ermitteln Zu diesen relativen Positionsdaten z hlen die Distanz und der Winkel zwischen dem User und seinem Buddy sowie die Himmelsrichtung in die der User gehen m sste um seinen Bud dy aufzusuchen Die Methoden getDistance getAngle und getDirection liefern diese Daten indem sie die entsprechenden Methoden des RoutingBeans aufrufen und dabei die IDs des Users und seines Buddys bergeben Au erdem wird ein hoher Wert f r den QualityOfService bergeben wodurch das RoutingBean angewiesen wird ber 11 6 FRIENDSAROUND KOMPONENTE 99 das LocationingBean auf ltere Positionsdaten aus dem Cache zur ckzugreifen falls diese vorhanden sind lter bedeutet dabei dass die Positionsdaten bis zu 60 Minuten alt sein d rfen Der Grund daf r liegt darin dass die Ortung von Usern nicht zu ver nachl ssigende Kosten verursacht Falls ein User nun herausfinden will welche seiner beispielsweise 50 Freunde in der N he sind w re eine Neubestimmung der Position jedes Users einfach zu teuer und auch nicht n tig da sich die Position eines Users innerhalb einer Stunde oft nicht deutlich ver ndert Es stellt sich nun noch die Frage welche User berhaupt als Buddys des eigentlichen Nutzers der FriendsAround Komponente betrachtet werden Die Antwort darauf lautet dass der User seine Buddys in Listen oder Gruppen verwaltet und jederzeit neue User in diesen Gruppen aufnehmen kann wodurch sie zu Buddys werden Der Begri
67. arakter bearbeiten Abbildung 13 39 Resultat der Steigerung 132 KAPITEL 13 BENUTZERHANDBUCH 13 3 mCube dating Die Anwendung mcube dating erm glicht das Auffinden von Partnern aufgrund von spezifizierbaren Profilen Es ist m glich sich einander Nachrichten zu schicken und sich zu lokalisieren Die Darstellung ist sowohl auf einem normalen Webbrowser als auch auf einem Handy m glich Man gelangt ber den Men punkt Dating der mCube community in das Hauptmen Standardm ig wird hier eine Liste bereits ausgew hlter Partner angezeigt Im Folgen den werden die einzelnen Sektionen in eigenen Abschnitten behandelt Am Ende wird mit einem Beispiel in die Benutzung der Applikation eingef hrt siehe 13 3 6 Wie man einen Partner findet 13 3 1 Hauptbildschirm und Navigation Menu Pref Buddylist von alice Suche Powered by F r diesen User ist die Buddyliste leer 2003 PG 409 Uni Dortmund Abbildung 13 40 Das Hauptmenii 13 3 2 Das eigene Profil Nachdem zum ersten Mal die Dating Anwendung gestartet wurde muss zuerst das Pers nlichkeitsprofil erstellt werden Hierzu klickt man auf den Punkt Profil Ein Hinweis wird beim ersten Mal informieren dass das Profil leer ist Wenn man auf den Punkt Profil neu klickt erscheint ein Dialog in dem die entsprechenden Werte ausgew hlt oder in die entsprechenden Felder eintragen werden k nnen Die Gr e muss hier in Zentimetern ohne Nac
68. ben tigt wird und diese somit neu ausgef hrt werden muss Die ermittelten Koordinaten f r L ngen und Breitengrad werden dann in einem Objekt vom Typ Position returniert und gleichzeitig ber das LocationingCacheBean zusam men mit dem Zeitpunkt der Lokalisierung gespeichert wobei eventuell vorhandene ltere Daten berschrieben werden Ein QoS Wert von 1 oder 2 bedeutet dass die Po sitionsdaten bis zu zehn Minuten bzw bis zu einer Stunde alt sein d rfen Bei einem solchen Wert wird also zun chst gepr ft ob f r den User berhaupt schon Positions daten im LocationingCache vorhanden sind und wenn dies der Fall ist ob diese nicht lter sind als gefordert Finden sich entsprechende Daten werden diese in ein Objekt vom Typ Position geschrieben und returniert andernfalls erfolgt eine Neubestimmung der Position des Users Ist der User aber mit seinem station ren Computer eingeloggt wird die Position seines Wohnortes returniert Dazu sind in einer extra Tabelle in der Datenbank zu allen Post leitzahlen in Deutschland die dazugeh rigen L ngen und Breitengrade Es wird also nun die Postleitzahl des Users mithilfe des Usermanagements ausgelesen und mittels des PLZ EntityBeans die entsprechenden Koordinaten aus der Datenbank ermittelt Die Daten werden ebenfalls in ein Objekt vom Typ Position gekapselt Bei Objekten handelt es sich vornehmlich um m gliche Treffpunkte f r User wie Diskotheken Kinos oder Bars Diese haben nat rlich immer
69. betreiben um unsere Beans persistent zu machen Ein weiteres Argument sind die hervorragenden Tools und Administrationswerkzeuge sowie eine frei verf gbare Dokumentation im Internet Bea03 Von dieser Kombination versprachen wir uns eine deutliche Zeitersparnis ge gen ber der Nutzung anderer Server insbesondere gegen ber Open Source L sungen Die beiden anderen Elemente sind zum einen die relationale Datenbank von Oracle die unsere EntityBeans speichern wird und der Netscape Directory Server der zur Au thentifizierung und Profilverwaltung dient Der Bea Weblogic wurde auf dem PG Server zwei mal installiert Eine erste Instanz stellt den Routine Server dar hier l uft die jeweils aktuelle stabile Version des Pro jektes Die zweite Instanz wird nicht auf dem PG Server gestartet sondern kann von den Arbeitsstationen aus gestartet werden sog privater Server Auf dem PG Server befinden sich also nur die Dateien des Weblogics die ber eine Laufwerksfreigabe von den Clients aus erreichbar sind Die zweite Instanz wurde aber im Gegensatz zur ersten Instanz speziell so modifiziert dass sie ber das Netzwerk ausf hrbar ist und das sie die Projektdaten nicht aus dem Verzeichnis des Programms sondern aus dem Profil des aktuellen Users startet Jeder User hat dazu die Option sich den aktuellen im Live Server deployten Projektstand in seinen privaten Server zu kopieren diesen dann zu starten und dann ausschlie lich mittels seines priva
70. bjek Mehrwert im Vergleich zu ten zu ermitteln nicht mobilen Communitys COM F2 1 Nutzer haben die MUSS M glichkeit die absolute Position und Entfernung eines anderen Nutzers oder Objektes zu ermitteln 7 2 ANFORDERUNGEN COMMUNITY BASISDIENSTE 27 COM F2 2 Ein Nutzer wird alarmiert wenn sich ein anderer Nutzer aus einer definierten Gruppe innerhalb einer gewissen Entfernung aufh lt MUSS So kann man sich mit Freun den treffen wenn diese zu f llig in der N he sind COM F2 3 Die Aufenthaltsorte von anderen Nut zern oder Objekten k nnen live auf einer Karte verfolgt werden Der eigene Aufenthaltsort befin det sich dabei in der Kartenmitte Der Kartenausschnitt kann verschoben und skaliert werden KANN COM F2 4 Zu angezeigten Nut zern oder Objekten k nnen auf der Kar te Zusatzinformatio nen angezeigt wer den KANN Insbesondere bei touristi schen Objekten sind Zusatz informationen n tzlich COM F2 5 Objekte k nnen von Nutzern anhand von Positionsdaten defi niert werden KANN Nutzer k nnen so eigene Le sezeichen auf einer Karte anlegen COM F2 6 Objekte k nnen von neuen Diensten de finiert und in Be nutzungsabl ufe in tegriert werden MUSS COM F2 7 Ein Nutzer kann Ob jekte und Personen suchen die eine ge wisse Entfernung um einen von ihm defi nierten Ort besitzen KANN Nicht immer ist
71. cape Januar 2002 121 Ernst Erich Doberkat Gregor Engels Hrsg Ergebnisbericht des Jahres 2001 des Projektes MuSofT Multimedia in der SoftwareTechnik Februrar 2002 22 Ernst Erich Doberkat Gregor Engels Jan Hendrik Hausmann Mark Lohmann Christof Veltmann Anforderungen an eine eLearning Plattform Innovation und Integration April 2002 23 Ernst Erich Doberkat Pipes and Filters Modelling a Software Architecture Through Relations Juni 2002 24 Volker Gruhn Lothar Sch pe Integration von Legacy Systemen mit Eletronic Commerce Anwendungen Juni 2002 25 Ernst Erich Doberkat A Remark on A Edalat s Paper Semi Pullbacks and Bisimulations in Categories of Markov Processes Juli 2002 26 Alexander Fronk Towards the algebraic analysis of hyperlink structures August 2002 27 Markus Alvermann Martin Ernst Tamara Flatt Urs Helmig Thorsten Langer Ingo R pling Clemens Sch fer Nikolai Schreier Olga Shtern Ursula Wellen Dirk Peters Volker Gruhn Project Group Chairware Final Report August 2002 128 129 130 131 132 133 134 135 136 137 138 139 Timo Albert Zahir Amiri Dino Hasanbegovic Narcisse Kemogne Kamdem Christian Kotthoff Dennis Miller Matthias Niggemeier Andre Pavlenko Stefan Pinschke Alireza Salemi Bastian Schlich Alexander Schmitz Volker Gruhn Lothar Sch pe Ursula Wellen Zwischenbericht der Projektgruppe Com42Bill
72. ch Endwert ben tigt Die Klasse Matching Attribute verf gt nat rlich auch ber entsprechende get und set Methoden um die Attribute zu setzen oder auszulesen Die Klasse MatchingList ist im Prinzip eine LinkedList die Objekte vom Typ Mat chingAttribute h lt und die blichen Methoden zum Verwalten und Iterieren der Liste bereitstellt Es wurde hier eine spezialisierte Liste eingef hrt um l stige Castingope rationen zu verhindern und einen komfortablen Zugriff auf die einzelnen MatchingAt tribute w hrend einer Suche zu gew hrleisten F r die Suche selbst stehen vier verschiedene Methoden zur Verf gung wobei die Me thode getAllSimilarUsers die grundlegendste ist Sie erh lt eine MatchingList mit Mat 11 5 MATCHING KOMPONENTE 97 ching Attributen und konstruiert daraus einen Filterstring der fiir die LDAP Anfrage an das Usermanagement tibergeben wird Returniert wird schlieBlich eine LinkedList mit Usern wobei es sich hier um eine Liste mit UserObjekten handelt und nicht um eine Liste mit den IDs der User wie bei den meisten Routing oder FriendsAround Methoden Bei der Konstruktion des Filterstrings muss darauf geachtet werden dass zwischen Attributen unterschieden wird die nur einen Startwert haben z B Haarfar be und solchen die einen Suchbereich definieren z B Gr e Au erdem muss das Attribut Alter besonders gehandhabt werden da hier von einem Alter in ein entspre chendes Geburtsdatum umgerechnet werden muss G
73. d die Waffenkarte be nutzt werden d rfen Diese Daten werden nun in einem Objekt vom Typ TurnInfo gekapselt In jeder Kampfrunde wird ausgel st durch jeden Spieler einmal die Me thode battle userID turnInfo aufgerufen Die Methode speichert die turnInfo in der entsprechenden Spalte in der Datenbank und setzt gotTurnInfo f r den entsprechenden User auf true Wenn nun schon das turnInfo des anderen Spielers vorhanden ist und der zweite Spieler ruft die Methode battle userID turnInfo auf dann wird der Zug ausgewertet Dazu werden zun chst die Basiswerte des Charakters durch die Modifikationen der Basiskarten ver ndert dann wird der Kampf mit der entsprechenden Waffe wie im Anforderungskapitel erl utert durchgef hrt Dann werden die Lebenspunkte angepasst und in die Datenbank geschrieben falls eine Eventkarte benutzt wurde wird diese aus der Liste der Eventkarten gel scht damit sie in der n chsten Runde nicht mehr benutzt werden kann und schlie lich wird gotTurnInfo f r beide wieder auf false gesetzt Am Ende werden Nachrichten vom Typ BattleResult an die beiden Spieler gesendet in denen die wichtigen Daten die sich ver ndert haben bergeben werden Dies sind 8 2 DIE ANWENDUNGEN 71 die Lebenspunkte und die neue Liste der Eventkarten au erdem wird noch eine Be schreibung der Kampfrunde mitgeschickt und der Spruch den der Gegner das letz te Mal gesagt hat Wichtig ist auch die EntityID der mit dem Kampf verbundenen GameEn
74. dem war der Code noch berschaubar Bereits f r das erste Inkrement wurde begonnen alle bis dahin bestehenden Methoden mit JavaDoc Kommentaren zu versehen Diese wurden w hrend der Entwicklungszeit phasenweise immer wieder aktualisiert und vervollst ndigt 5 4 Code Convention F r ein einheitliches Erscheinungsbild des erzeugten Source Codes wird die Code Con vention von Sun verwendet Unsere Zusammenfassung der Convention wird durch ein 20 Seiten starkes Dokument beschrieben Das Dokument beschreibt Konventio nen bez glich der zuvor beschriebenen CVS Schl sselworte Deklarationen oder Java Befehle wie FOR Schleifen und IF ELSE Anweisungen Ebenso gab es Regeln ber das Einr cken von Anweisungen Leerzeilen und dem Programmierstil Diese eher kleinlichen Regelungen wurden nicht unbedingt eingehalten was damit zu erkl ren ist dass alle PG Teilnehmer schon vor dem Projekt viel programmiert haben und sich je der seinen eigenen Stil angew hnt hat Wobei trotzdem zu sagen ist dass gerade durch die gro e Programmiererfahrung der Teilnehmer sehr gut lesbarer und bersichtlicher Code produziert wurde Deshalb wurde es nicht notwendig die Einhaltung des vorge gebenen Programmierstils zu erzwingen 5 5 Assessment Teams F r die Pr fung der Qualit t von Dokumenten und Berichten wurden Assessment Teams gebildet d h eine umfangreiche abgeschlossene Aufgabe z B Visionsdokument Zwi schenbericht Protokolle wurden von Teams 2
75. den ebenfalls bergeben Kriterien bereinstimmt Dazu werden die Start und gegebe nenfalls die Endwerte der Kriterien auf die Werte des Users gesetzt bevor eine Suchan frage durchgef hrt wird Dabei muss darauf geachtet werden dass diese Attribute ber haupt f r den User definiert sind Diese Methode erlaubt es also beispielsweise User mit hnlichen Interessen oder Eigenschaften zu einem User zu finden und ist daher eher f r die Suche nach Freunden als f r die Suche nach Flirtpartnern geeignet Wiederum wurden Logging und Exceptionhandling integriert Insgesamt erf llt die Matching Komponente alle Anforderungen im Kontext der Suche von Usern Dabei bietet sie ein breites Spektrum der Suche durch die verschiedenen Kombinationsm glichkeiten von Matching Attributen und durch die Methoden mit un terschiedlicher Zielsetzung Es ist ebenfalls jederzeit m glich weitere LDAP Attribute zu erzeugen oder komplett neue Profile f r weitere Applikationen die auf der mCube Plattform aufsetzen zu definieren und dennoch weiterhin die Matching Komponente in vollem Umfang zu nutzen F r den momentanen Stand des Projektes ist sie jedoch vor allem f r die Dating Applikation unverzichtbar 11 5 3 Probleme Bei der Implementierung der Matching Komponente traten keine gr eren Probleme auf Lediglich die Konstruktion des Filterstrings in der Methode getAllSimilarUsers musste intensiv getestet werden da hierbei zum einen auf verschiedenartige Attribu
76. den mit Hilfe von JUnit Tests getestet JUnit ist ein auto matisches Test Framework f r Java Klassen Es werden Testf lle mit erwarteten Ab l ufen erstellt und das Verhalten der getesteten Klasse wird dann mit dem erwarteten Verhalten verglichen 4 6 ZUSAMMENARBEIT MIT MOBILFUNKANBIETERN 15 4 8 Zusammenarbeit mit Mobilfunkanbietern Wir haben uns von Beginn der Projektgruppen an sehr intensiv darum bemiiht einen Partner aus der Mobilfunkbranche zu finden da wie einige unserer Ideen nicht ohne fremde Hilfe realisieren konnten Im Laufe des ersten Semesters haben wir mit mehre ren Mobilfunkunternehmen Kontakt gehabt bis wir uns fiir eine Zusammenarbeit mit T Mobile entschieden hatten In den Gespr chen mit allen Mobilfunkbetreibern stellte sich schnell heraus dass die von uns anvisierte UMTS Technik noch nicht so weit fortgeschritten ist dass wir dar auf aufbauen k nnten Im Laufe dieser Gespr che hat sich aber auch herausgestellt dass wir unser Projekt auch im Rahmen bereits ausgereifter existierender Technologi en realisieren k nnen Bez glich der von uns geplanten ortsbasierten Dienste ist eine Ortung mit UMTS zwar genauer m glich aber die Nutzung der bestehenden M glich keiten unter GSM reichen f r unsere Anforderungen zun chst aus Au erdem ist die Schnittstelle zwischen GSM und UMTS so geplant dass unsere Anwendungen sp ter ohne gr ere Probleme auf UMTS portiert werden k nnen Im weiteren Projektverlauf hat sic
77. den nach Wurf Basis 1 Maxwert Waffe Minwert Waffe 1 100 Basis Schaden Waffe Minwert Waffe F r eine Basis gt 100 z hlt eine 100 dennoch als Erfolg der Minimalschaden anrichtet F r das Beispiel ergibt sich aus der Formel folgende Schadenstabellen Wurf Schaden Keule 48 53 54 58 59 63 64 69 70 74 75 79 80 85 86 90 91 95 96 100 CO NI oa Cy A N 34 Wurf Schaden Schwert 48 65 4 66 83 5 84 100 6 Wurf Schaden Ritzkihutu 48 61 2 62 74 3 75 87 4 88 100 5 Wurf Schaden Stab 48 65 1 66 83 2 84 100 3 Der Schaden wird nun von den Schadenspunkten von Spieler B abgezogen und obige Rechnung fiir die Offensive von Spieler mit A in der Defensive wiederholt Erreichen die Schadenspunkte eines Spielers am Ende einer vollst ndigen Runde 0 so hat er den Kampf verloren Erreichen die Schadenspunkte beider Spieler 0 endet das Spiel unentschieden Der Charakter eines Spieles stirbt nicht die Schadenspunkte eines Spielers wer KAPITEL 7 ANFORDERUNGSANALYSE den bei jedem neuen Kampf voll aufgef llt 7 3 21 Gegenstandskarten Schwert abh ngig von St rke Geschicklichkeit Offensivbonus 2 Defensivbonus 2 Minwert 4 Maxwert 6 Einschr nkung St rke gt 6 Stab abh ngig von St rke Geschicklichkeit O
78. denselben Standpunkt weshalb in der Methode getObjectPosition nur berpr ft wird ob zu der bergebe nen ID eines Objektes Positionsdaten ber das EntityBean ObjectPosition ermittelt werden k nnen Ist dies der Fall werden diese Daten wiederum in ein Objekt vom Typ Position geschrieben und returniert andernfalls wird eine Exception vom Typ ObjectNotFoundException geworfen die eigens f r diesen Fall erzeugt wurde Wiederum wurde wie oben bereits dargelegt das Logging eingebunden Au erdem ver f gt die Komponente ber ein komplettes Exceptionhandling wobei spezielle Fehlerty pen PositioningNotAllowedException und ObjectNotFoundException f r bestimmte F lle erzeugt wurden Insgesamt erf llt die Locationing Komponente alle Anforderungen im Kontext der Po sitionsbestimmung von Objekten und Personen und schafft somit die Grundlage f r weiterf hrende Anwendungen wie das Routing oder FriendsAround Generell ist diese Komponente eine der wichtigsten Komponenten da ohne die Lokalisierung von Per sonen und Objekten die Erzeugung eines ortsabh ngigen Service gar nicht m glich w re 11 3 3 Probleme Bei der Implementierung der Locationing Komponente traten keine gr eren Probleme auf Es wurden jedoch im Laufe des Entwicklungsprozesses Anpassungen vorgenom men die zun chst nicht vorgesehen waren s Verbesserungsm glichkeiten 11 4 ROUTING KOMPONENTE 93 11 3 4 Verbesserungs und Erweiterungsm glichkeiten Besonderes Aug
79. deren Objekten auch von mehreren erben sie geh ren damit zu einer Menge von Klassen und besitzen somit alle Attri bute dieser Menge Die Zuordnung von Attributen zu einem bestimmten Objekt nennt man Schema Beispielsweise sollte ein Objekt welches die Daten eines Benutzers enth lt zu der Klasse Person geh ren und sich unterhalb des Containers People befinden IBM98 Da Attribute nur zur bestimmten Objekten geh ren k nnen man also nicht einem Objekt einer bestimmten Klasse Attribute zuordnen kann die nicht in der Klasse enthalten sind haben wir f r das Projekt mCube eine eigene Klasse de finiert meubeprofil Diese Klasse erbt von der Klasse person und hat zus tzlich folgende optionale Attribute birthdate city cubies dating haircolor dating height dating searchradius dating smoker dating weight e email friendsaroundlist game battlehistory game charactername game charactertype game constitution game dexterity game eventcards game experiencepoints game intelligence 9 3 NETSCAPE DIRECTORY SERVER 77 e game itemcards e game level game lifepoints e game maxdistance e game numberofimproves game strength e game usualcards e game weaponcards isLoggedIn is Validated logintype e plz positioningallowed e sex e street Dies sind alle zurzeit fiir das Projekt mCube notwendigen Attribute Jeder User im mCube Projekt geh rt daher zu folge
80. des Spiels 7 Spielbildschirm Schirm bei laufendem Spiel 8 Kartenbildschirm Anzeige des Kartensatzes 9 Layout Layout eines Schirmes 10 Ort Ort an dem Karten verdient werden k nnen 11 Spiel Status des laufenden Spieles 12 Spielart Art des Spiels Spielregeln 13 Zugeinstellung Einstellung f r den n chsten Zug 14 Zug Besteht aus allen gemachten Zugeinstellungen 7 4 Anforderungen Subsystem mCube dating mCube dating stellt einen Service zur Verf gung mit dem Ziel jemanden un bekannten zu treffen Der Service fiihrt den User von der ersten Kontaktaufnahme bis hin zu einem vom System ausgew hlten Treffpunkt Es werden die Features der darunter liegenden Community genutzt Nicht aufgef hrte Anforderungen die in der Community beschrieben sind k nnen bernommen werden 40 Zur Begriffsdefinition KAPITEL 7 ANFORDERUNGSANALYSE 7 4 1 Funktionale Anforderungen Es wird zwischen Partner und Freund unterschieden da der Dienst mit beiden Suchabsichten umgehen und nat rlich differenzieren k nnen sollte Anf Name Aufgabenstellung Typ Begr ndung Anmerkung DAT F1 Der User hat die MUSS M glichkeit Profile anzulegen DAT F1 1 Eigenes Dating Pro MUSS Das Dating Profil sollte fil anlegen ndern nicht alleine stehen sondern erg nzend zu dem bereits vorhandenen Community Profil sein DAT F1 2 Dating Profil des MUSS Die Profile sollten aus weni zu suchende
81. die aktuel le Position interessant son dern die die man in K rze erreicht COM F3 Der Nutzer kann an dere Nutzer suchen die gewisse Eigen schaften im Profil vorweisen res im Abschnitt Administration MUSS Grundlage beispielsweise f r Dating Anwendungen 28 KAPITEL 7 ANFORDERUNGSANALYSE COM F3 1 Jede Eigenschaft im Profil eines Nutzers kann als Suchkrite rium dienen Zudem k nnen Bereiche und boolesche Funktio nen zur Kombination angegeben werden Eine Eigenschaft ist dabei ausdr cklich auch die Position MUSS COM F3 2 Suchen k nnen abge speichert werden da mit sie sp ter wieder holt ausgef hrt wer den k nnen KANN COM F3 3 Suchen k nnen im Hintergrund aktiviert werden Der Nutzer wird benachrichtigt wenn die Bedingun gen eingetreten sind KANN So kann einfach verfolgt werden ob neu angemeldete Personen den Kriterien ent sprechen COM F4 Nutzer k nnen an deren Nachrichten hinterlassen die aktiviert werden wenn die Adressaten an bestimmten vom Absender definierten Orten sind MUSS Interessante Idee neue Form von Kommunikation COM F4 1 Die hinterlassenen Nachrichten lassen sich an weitere Be dingungen wie Zeit alte Position en oder die gleichzeitige An wesenheit anderer kn pfen KANN Bietet sehr viel mehr M g lichkeiten in Anwendungen COM F5 Es ex
82. dynamen ein Schl ssel gt oder Schlosssymbol Dieses deutet an ob der Buddy dem User Nachrichten senden darf 13 1 MCUBE COMMUNITY 117 Durch einen Klick auf den Buddynamen werden detaillierte Informationen tiber den Buddy angezeigt und zwar seine Vor und Nachnamen Allerdings sind Buddydetails nur dann sichtbar wenn der jeweilige Buddy die Erlaubnis dazu gegeben hat seine pers nlichen Daten anderen Usern zug nglich zu machen Nat rlich ist es m glich die Buddyliste zu ver ndern d h bestehende Buddys aus der Liste zu entfernen und neue Buddys in die Liste hinzuzuf gen Das L schen der Buddys funktioniert auf folgende Art und Weise n mlich durch einen Klick auf das L schsymbol das sich neben dem Namen eines jeden Buddy befindet x Hinzugef gt wird ein Buddy indem auf den Link Buddy hinzuf gen geklickt und anschlie end der Name des neuen Buddys eingegeben wird Abbildung 13 4 neuen Buddy hinzuf gen Weitere Funktionalit ten des Systems sind ber die Men leiste links vom Hauptbild schirm erreichbar 13 1 4 FriendsAround Auf diesem Bildschirm werden alle Buddys des aktuellen Users aufgelistet die zum aktuellen Zeitpunkt online sind Neben dem Namen jedes Buddy steht dessen Entfer nung vom User sowie die Himmelsrichtung in der er sich nun befindet Abbildung 13 5 Friends Around 118 KAPITEL 13 BENUTZERHANDBUCH 13 1 5 Nachrichten Die mCube Community bietet eine
83. e Struktur zur Speicherung der Daten berlegen die sich einerseits schnell durch 11 2 GROUPMANAGEMENT KOMPONENTE 89 suchen l sst und andererseits f r Profile neuer Anwendungen erweiterbar ist Dabei stie en wir auf das Problem dass sich das Schema der LDAP Datenbank nicht ber die Java Ansprache ndern l sst So ist es leider n tig die Anpassungen f r ein neues Profil f r eine zus tzliche Anwendung mithilfe der LDAP Server spezifischen Admini strationskonsole vornehmen zu lassen Da dies nicht so h ufig vorkommt halten wir es allerdings f r eine akzeptable Einschr nkung Zumal f r eine neue Komponente mei stens auch andere Dinge durch den Administrator ge ndert werden m ssen neue JMS Queues neue Datenbanktabellen etc Eine zus tzliche Herausforderung war das Mapping von g ngigen Java Datentypen auf LDAP Attributtypen Denn Java Objekte lassen sich zwar auch direkt im LDAP System speichern aber dann werden sie als Bin rstream gespeichert und k nnen nicht sinnvoll durchsucht werden Also schrieben wir Methoden die bei der Speicherung Java Objekte auf passende LDAP Attributtypen mappen und beim Auslesen aus den LDAP Informationen wieder ein Java Objekt erzeugen Die restlichen Anforderungen konnten ohne gr ere Probleme erf llt werden 11 1 4 Verbesserungs und Erweiterungsm glichkeiten Die Usermanagement Komponente hat alle Anforderungen aus der Planungsphase er f llt dennoch haben wir einige Ideen angesic
84. e Ubersicht auf das mCube System aus der Vogelperspek tive Die einzelnen Module der Community werden kurz vorgestellt die darunter liegenden technischen Aspekte jedoch den weiteren Kapiteln vorbehalten 3 1 Die Community Basis des mCube Systems ist die Plattform mCube community Diese bietet dem Benutzer die Grundfunktionalit ten einer Internet Community also Treffpunkt Informationsaustausch etc sowie die M glichkeit der Ortung befreundeter Personen und andere ortsbasierte Location Based Services Bedingung zur Teilnahme an der Community ist die erfolgreiche Anmeldung unter Angabe pers nlicher Daten in Profilform Danach stehen alle Services in Form eines Internetportals zur Verf gung Beispiele f r exponierte Basisfunktionen die den Mitgliedern die Erlaubnis der betei ligten Benutzer vorausgesetzt zur Verf gung stehen sind die Ortsanzeige befreundeter Personen FriendsAround sowie die Teilnahme an Chats 3 2 mCube dating Eines von zwei auf der Plattform aufsetzenden Modulen die von uns zur Demonstrati on der Funktionsweise des Systems realisiert wurden ist das Dating Modul Hinter diesem Namen verbirgt sich ein 3G Dating Service der mobilen Telekommuni kation In Zeiten in denen die Zahl der Singles kontinuierlich w chst und sich bisheri ge Internet basierte Flirtchats und Dating Services immer gr erer Beliebtheit erfreu en wird diese Applikation auf breite Akzeptanz am Markt treffen Die gr te Neuerung
85. e laufende Anwendung zwangsweise unterbrochen Die Komponente ist in vier Bereiche aufgeteilt Anwendungsintegration Login Ver waltun wendu nenten g und Basisdienste Alle Dienste k nnen und sollen auch von den anderen An ngen genutzt werden Manchmal ist es jedoch sinnvoller direkt auf die Kompo der core Schicht zuzugreifen Abbildung 8 5 gibt einen berblick ber die Struktur der Komponente Client JSP Seite XML Darstellung Anwendungs Login Verwaltung integration Sonstige Basisdienste Abbildung 8 5 Struktur mCube community Logik 8 2 1 2 Anforderungen an die Komponente API Login login userID String password String boolean User wird eingeloggt Stati die den Loginstatus betreffen werden gesetzt Dazu geh ren auch Rechte f r Attribute die nur dann bearbeitet werden d rfen wenn der Nutzer eingeloggt ist True wenn Login erfolgreich war also insbesondere die userID vorhanden und das Passwort korrekt ist Bei R ckgabe false wurde kein Login durchgef hrt createNewUser userID String boolean Versucht einen neuen Nutzer anzulegen Falls der Name schon vergeben ist wird false zur ckgegeben Sonstige Attribute werden hier noch nicht gesetzt Das ist Aufgabe des Bereiches Verwaltung logout userID String void Der Nutzer wird ausgeloggt Alle betreffenden Attribute werden gesetzt Attri bute die nur bearbeitet werden d rfen wenn der Nutzer eingeloggt ist werden ge
86. e void ejbRemove void dontDisplayMyMessages void displayMyMessages void ejbCreate void SessionBean CommunityLoginBean mcube application community component mcube application community component logger Logger EJB_GROUPMANAGEMENT String gmHome GroupmanagementHome ctx SessionContext EJB_USERMANAGEMENT String usmHome UsermanagementHome EJB_COMMUNICATION String comHome CommunicationHome setSessionContext void ejbActivate void addNote void addBuddy void isBuddyBlocked boolean blockBuddy void unblockBuddy void deleteBuddy void getAllNotes LinkedList getAllMessages LinkedList deleteMessage void getAllBuddies LinkedList givePositioning LinkedList userlsLoggedin boolean postMessage void leaveChat void enterChat void updateScreen void sendMessage void mail boolean ejbPassivate void ejbRemove void ejbCreate void createNewUser boolean logout void userlsValidated boolean login boolean isPositioningAllowed boolean setPositioning void ctx SessionContext EJB_COMMUNICATION String comHome CommunicationHome setSessionContext void ejbActivate void ejbPassivate void ejbRemove void ejbCreate void sendMessage void Buddy Buddy Buddy block void distance int userlD String direction String online boolean blocked boolean Abbildung 8 6 UML Klassendiagramm der Komponente c
87. e vorgestellt und auf ihre Tauglichkeit bez glich ihrer Verwendung in einer PG bewertet Prototyping und das Spiralmodell sind dabei als M glichkeiten vorgeschlagen worden XtremeProgramming war in der begleitenden Diskussion sehr umstritten Im weiteren Verlauf vorgestellte Qualit tsmodelle wurden als zu komplex eingestuft Bei der Vorstellung der Notationssprachen UML Petrinetze und EPK sind UML und Petrinetze als anwendbar eingestuft worden Komponentenmodelle Der Vortrag erkl rte die Vorteile komponentenbasierter Soft wareentwicklung und stellte die g ngigsten Komponentenmodelle detailliert vor Der Schwerpunkt lag dabei klar auf Microsofts L sung NET und der Java 2 Enterprise Edition die von Sun vertrieben wird Die Vorteile beim Einsatz von Komponentenmodellen liegen in der Unterst tzung der Punkte Persistenz Skalierbarkeit und Transaktionsmanagement Auf der anderen Seite sind fast alle L sungen plattform und oder herstellerspezifisch Es wurde die Empfehlung ausgesprochen entweder Microsoft oder J2EE zu ver wenden Konfigurationsverwaltung und Projektdokumentation Die Notwendigkeit eines Konfigurationsmanagements in modernen Softwareentwicklungsprozessen wurde mo tiviert Nach einer Einf hrung in die grundlegende Funktionsweise vorhandener Tools wurde eine Markt bersicht ber die verf gbaren Tools gegeben darunter PVCS CVS VSS und ClearCase Die Produkte wurden mit ihren Vor und Nachteilen ausf hrlich vorgeste
88. e werden unter dem Punkt 1 2 Attribute genauer beschrieben Suche Die Suche ist in zwei Bereiche aufgeteilt Man kann nach einem Partner su chen oder einem Ort Bei der Partnersuche werden aus vorgegebenen Variationen von Attributen Partner profile ausgew hlt Zum Beispiel kann bei der Auswahl des Alters ein Bereich vom User definiert werden indem er das Maximal und Minimalalter angibt Bei fehlender Eingabe wird dieses Attribut bei der Suche au er acht gelassen und nur nach berein stimmung mit den restlichen Attributen gesucht Bei Ausf hrung werden die 10 besten passenden User auf das Suchprofil aufgelistet wobei nur User betrachtet werden die Mitglied bei mCube dating sind die Ihre Positionsermittlung erlauben und die sich in dem eingestellten Suchradius befinden dieser wird bei Optionen eingestellt Die ermittelten User k nnen zu der Buddyliste hinzugef gt werden Die Suche nach einem Ort ermittelt die Orte aus der dating Sammlung die m glichst g nstig zwischen den beiden Usern liegen Wenn bei der Suche nach einem Ort das Date Partner Attribut nicht gesetzt ist kann die Suche nicht durchgef hrt werden Liste In diesem Bereich kann man zwei Listen aufrufen Einmal die globale Userli ste von dating und einmal die Buddyliste des aktiven Users Da f r dating je User ein neues Unterprofil erzeugt wird ist es einfach diese beim Usermanagement zu erfragen und eine Liste aller User anzuzeigen Funktionen im Zusammenhang mit de
89. ed a eola a aa ka 32 7 3 3 Funktionale Anforderungen 36 7 34 Nicht funktionale Anforderungen 38 7 3 5 Schnittstellenanforderungen 39 7 3 6 Auftretende Klassen vorl ufig 39 7 4 Anforderungen Subsystem mCube dating 39 7 4 1 Funktionale Anforderungen 40 7 4 2 Nicht funktionale Anforderungen 42 7 5 Anforderungen Subsystem mCube admin 42 7 5 1 Funktionale Anforderungen 42 7 5 2 Nicht funktionale Anforderungen 44 7 5 3 Schnittstellenanforderungen 44 8 Architektur 45 8 1 berblick 46 SLE Architekti 14 ssp maian ele ay eo Ad at 46 8 2 Die Anwendungen s eces sorig a to aoia ag g 51 8 2 1 mCube community 0 0 51 8 2 2 a 55 2 3 MmCub came es 224 DA 61 8 24 mCube game gameEngine 70 9 Technische Infrastruktur 75 9 1 Application Server 2 2 Com 2 0 00 E 75 OD Oracle adore We pte eos Rat pogo Bae eae Pe 75 9 3 Netscape Directory Server 76 10 Entwicklungsumgebung 79 10 1 Betriebssysteme 2 Reh na 79 102 Servei our na re UE AER gee ed AE A A US 80 10 3 2 4 So oR eR Be ee R
90. edList mit den IDs der Buddys ausgibt wobei wiederum eine Funktion des Groupmanage mentBeans aufgerufen wird Dar ber hinaus besteht noch die M glichkeit einzelne Attribute aus dem Profil eines Buddys abzufragen und Nachrichten an Buddys zu senden und zu empfangen Die Attributabfrage erfolgt mittels der Methode get Attribute der das abzufragende Attribut und die ID des Buddys bergeben wird Zur Erf llung der Aufgabe wird eine Methode des Usermanagements verwendet Das Senden und Empfangen von Nachrichten wird durch die Methoden sendMessage und getMessages geregelt die diese Aufgabe durch eine Verbindung zum CommunicationBean die ebenfalls in der Methode ejbCreate etabliert wird erf llen Das Logging mit Log4J wurde in s mtliche Methoden der Komponente eingebunden um einzelne Arbeitsschritte in einer Logdatei die sich auf dem Applicationserver be findet zu sichern Mithilfe dieser Datei kann dann die Arbeitsweise nachvollzogen werden F r das Loggen existieren verschiedene Grade mit denen eine Aussage in einen gewissen Kontext eingeordnet werden kann Au erdem verf gt die Komponente ber ein komplettes Exceptionhandling das insbesondere mit der Groupmanagement Komponente koordiniert ist Insgesamt zeigt die Realisierung der FriendsAround Komponente wie durch B nde lung der Funktionalit t mehrerer core Komponenten in diesem Fall Routing Group management Usermanagement und Communication ein h herwertiger Service kreiert
91. edList mit den IDs von Objekten Diese Objekte k nnen z B Bars Discotheken oder Kinos sein Aus dieser Liste wird dann ein optimaler Treffpunkt f r die beiden User in Abh ngigkeit ihres momentanen Aufenthaltsortes bestimmt Dazu wird zun chst die Position des optimalen Treffpunkts mit der gerade beschriebenen Methode ermittelt und dann das Objekt herausgesucht das zu dieser Position den geringsten Abstand hat Die ID dieses Objekts wird abschlie Bend returniert Logging und Exceptionhandling wurden wie bereits mehrfach dargelegt integriert Insgesamt k nnen also mithilfe der privaten Berechnungsmethoden s mtliche relativen Positionsdaten f r die verschiedensten Anwendungszwecke ermittelt werden Dieser intelligente Aufbau von interner Berechnung Speicherung der Daten in einem speziel len Objekt Zugriff auf einzelne Daten oder das Gesamtobjekt sowie anspruchsvollerer Methoden wie der Ermittlung eines Objektes als optimalem Treffpunkt erm glicht es alle Anforderungen an die Routing Komponente zu erf llen 11 4 3 Probleme Bei der Implementierung der Routing Komponente traten keine gr eren Probleme auf Zun chst musste recherchiert werden um an die geeigneten Formeln zur Berechnung der relativen Positionsdaten zu gelangen Als die interne Berechnung der Daten fertig gestellt war konnten die Zugriffsmethoden leicht implementiert werden Die Zugriffs methoden wurden nachtr glich berladen um auch direkt die Distanz den Winkel u
92. ef hrt Es ist ebenfalls m glich vom Hauptbildschirm in den Schirm Charakter bearbei ten zu wechseln Hier ist es m glich den Charakter zu l schen au erdem kann man sich die Beschreibungen der Karten die der Charakter besitzt durchlesen Desweite ren kann man hier die Basiskarten des Charakters setzen das sind die Karten die der Charakter standardm ig f r einen Kampf voreingestellt hat Au erdem kann man hier die Steigerung in eine neue Stufe siehe Spielregeln durchf hren wenn die Punkte es erlauben Dann wird man in einen Bildschirm gef hrt in dem man die Grundeigen schaft ausw hlen kann die man steigern m chte Nach der Auswahl wird das Attribut numberOflImproves im game Profil um eins gesenkt Des Weiteren gibt es vom Hauptbildschirm einen Link auf eine Seite auf der man sich seine Historie ansehen kann hier stehen kurze Beschreibungen der erfolgten K mpfe L scht man seinen Charakter so wird man aus der Gruppe der Game User entfernt Das Unterprofil mCube game Folgende Daten stehen im Unterprofil mCube game Charakter steht hierbei f r die Spielfigur e String characterName Fantasiename des Charakters 8 2 DIE ANWENDUNGEN 63 int level Level des Charakters int experiencePoints Erfahrungspunkte des Charakters int lifePoints Lebenspunkte des Charakters List of Strings eventCards Eventkarten des Charakters Aus diesen kann sich der Charakter jede Runde eine aussuchen diese ist dann im Kampf
93. egrit t der Daten birgt dieses Vorgehen au erdem einen Performanz Vorteil da die entsprechenden Datens tze nicht auf der Entity Bean Ebene gel scht werden Einen User f gt man mit der Methode addUserToGroup group user hinzu Die Me thode erzeugt dazu ein neues GroupUsers EntityBean mit der Gruppe und dem User Mit deleteUserFromGroup group user kann ein User wieder aus der Gruppe entfernt werden Das entsprechende GroupUsers EntityBean wird gel scht Mit getUsersFromGroup group erh lt man eine Liste mit allen Usernamen die der Gruppe angeh ren Um diese Funktion zu realisieren wurde eine spezielle FindBy Methode mithilfe der in der EJB Spezifikation 2 0 definierten Query Language ge schrieben die alle Datens tze in der Tabelle GroupUsers findet in denen der Gruppen name vorkommt Wenn man eine Liste mit allen Gruppen denen ein User angeh rt haben m chte so muss man die Methode getGroupsFromUser user aufrufen Diese Methode arbeitet hnlich wie getUsersFromGroup nur dass hier eine andere FindBy Methode benutzt wird die nach Datens tze mit dem Usernamen sucht Die Methode isMemberOfGroup group user gibt an ob ein User Mitglied einer Grup pe ist oder nicht Zum Exceptionhandling der Komponente ist noch Folgendes zu sagen Falls einer Me thode als Parameter null statt einem Namen bergeben wird so wird eine Parameterls NullException geworfen Au erdem berpr ft jede Methode ob wirklich eine Gruppe mit dem ber
94. ei ten 55 2 Inkrement 41 25 11 02 20 01 03 alle 24 KAPITEL 6 PROJEKTPLAN schlossen 56 JUnit Tests f r core 21 20 01 03 17 02 03 core Leute Komponenten fertig stellen 57 GUI Browser Handy 33 2 01 03 17 02 03 Anwendungsleute 58 Testen 16 3 02 03 24 02 03 alle M59 Implementierung abge 1 28 02 03 28 02 03 alle schlossen 60 Abschlussbericht 1 16 10 02 03 3 03 03 alle Version 61 Installationshandbuch 16 10 02 03 3 03 03 NilsG DanielP 62 Vorwort Motivation 16 10 02 03 3 03 03 RobinN und Zusammenfas sung Ausblick 63 Benutzerhandbuch 16 10 02 03 3 03 03 NilsG MikaK Administration 64 Benutzerhandbuch 16 10 02 03 3 03 03 Anwendungsleute Bedienung 65 Prozessleitfaden und 16 10 02 03 3 03 03 MiriamL Projektplan 66 Qualit tsmanagement 16 10 02 03 3 03 03 MarioK 67 Entwurf Systemarchi 16 10 02 03 3 03 03 SebastianR tektur insbes auch XSLT 68 Details der Implemen 16 10 02 03 3 03 03 alle tierung 69 Testbeschreibungen 16 10 02 03 3 03 03 alle 70 Entwicklungsumgebung 16 10 02 03 3 03 03 NilsG MikaK 71 Abschlussbericht End 15 10 03 03 28 03 03 DanielP version 72 Abschlussprasentation 15 10 03 03 28 03 03 alle vorbereiten 73 Ergebnis pr sentieren 1 28 03 03 28 03 03 alle M74 Projektgruppe abge 1 28 03 03
95. ein umfassendes Anforderungsdokument erstellt Unter mehr maliger Erweiterung haben wir das Projekt grob in die funktionalen Teilbereiche Com munity Game Dating und Administrationsdienste eingeteilt und dann im Einzelnen alle gew nschten Funktionen festgelegt Dabei wurde f r jede Funktion entschieden inwieweit es sich dabei um eine MUSS Anforderung handelt die auf jeden Fall im plementiert werden muss oder um eine KANN Anforderung die nur realisiert werden soll wenn die zwingenden Funktionen bereits alle funktionieren 4 4 Analyse und Designphase In der Analysephase wollten wir zun chst das klassische objektorientierte Analysemo dell verwenden wobei wir allerdings auf Schwierigkeiten gesto en sind Durch unsere grunds tzliche architekturelle Entscheidung EJB 2 0 zu verwenden die von der Spezi fikation her Vererbung nur unzureichend unterst tzen und aufgrund der Tatsache dass unsere Teilbereiche wenige berschneidungen haben haben wir uns von der klassi schen Modellierung mit der Vererbung einzelner Java Klassen stark entfernt so dass ein bliches UML Klassendiagramm in dem auch die Vererbungsbeziehungen erfasst sind nicht ganz sachgerecht erschien Wir haben daraufhin mit einer Aufteilung unseres Projektes in logische Zusammenh n ge begonnen und diese Zusammenh nge dann direkt in Komponenten umgesetzt Dies war eine direkte Weiterentwicklung aus der groben Unterscheidung der funktionalen Teilbereiche in der Anforderun
96. eine XML Seite die den Inhalt beschreibt und ger teunabh ngig ist Bevor der aufrufende Browser die Seite erh lt 8c wird sie wiederum vom Filter abgefangen der eine XSLT Transformation mittels eines ausgew hlten Stylesheets 8b durchf hrt Das Stylesheet bestimmt sich aus der aktuellen Action und dem gew hlten Ausgabe format XSLT Transformation XSLT steht f r Extensible Stylesheet Language for Trans formations und bezeichnet mehrere Sprachen mit deren Hilfe sich XML Dateien trans formieren lassen XSLT besteht aus den Teilen XSL Transformation von XML in XML XPath Beschreibung von Knoten und Objektpositionen sowie XSL FO Trans formation in beliebige Formate Cla99 Wir ben tigen vor allem die Transformation in andere XML Dateien bzw XML sehr hnlichen Formaten wie HTML und nutzen daher XSL und XPath XSL ist eine funk tionale Programmiersprache Es k nnen Transformationsregeln definiert werden die auf bestimmte Knoten der XML Eingabe angewendet werden Diese Transformations regeln werden in so genannten Stylesheetdateien abgelegt Im Projekt mCube existiert f r jedes Ausgabeformat und jede Anwendung ein sepa rates Stylesheet Bevor der Request zum Browser zur ckgesendet wird ermittelt der Filter anhand der zuvor aufgerufenen Action und des als Parameter bergebenen Aus gabeformates das entsprechende Stylesheet startet einen XSLT Parser und sendet das Ergebnis an den Client zur ck Als XSLT Parser setzen wir Xa
97. elche dem gesuch ten Profil entsprechen Wenn Sie auf einen der Namen klicken werden Sie sich die genauen Profildaten des Benutzers ansehen k nnen Dies ist brigens immer m glich wenn Sie eine Auswahl an Benutzern vor sich sehen ein Klick auf den Benutzernamen zeigt Ihnen immer das entsprechende Profil an Wenn Sie sich eine Person ausgesucht haben klicken Sie auf das kleine M nnchen rechts neben deren Namen Sie werden mit einer Nachricht informiert werden dass die Person erfolgreich hinzugef gt wurde Kehren Sie mit einem Klick auf Dating entweder in der oberen Men leiste oder der Verlaufsanzeige im linken Men zu ihrer Startseite zur ck Sie werden nun eine Liste die Buddyliste mit dem von ihnen ausgew hlten Benutzer 13 3 MCUBE DATING Mailbox Profil Suche 137 Buddylist von alice Benutzer blocken l schen amigo 5 Abbildung 13 48 Gl ckwunsch Sie haben ihren ersten Partner gefunden sehen Gl ckwunsch Sie haben nun einen potenziellen Partner gefunden mit dem Sie Nachrichten austauschen und mit dem Sie sich treffen k nnen 138 KAPITEL 13 BENUTZERHANDBUCH Kapitel 14 Fazit Wir haben die selbst gestellten Anforderungen siehe Kapitel 7 weitestgehend erf llen k nnen Nachteilig ausgewirkt hat sich hierbei dass die Erf llung der Anforderungen in starkem Ma e von der Anbindung an Fremdsysteme abhing Da wir Ortsinformatio nen Shopsysteme und vieles anderes nicht selbst implementieren k
98. en aus o g Verzeichnis in den lib Ordner des in den vorherigen Schritten installierten Application Servers Beispielpfad bea weblogic700 server lib 114 KAPITEL 12 INSTALLATION 13 Benutzerhandbuch Das Benutzerhandbuch gibt einen detaillierten berblick ber die Funktionen der drei Bereiche mCube community mCube game und mCube dating verbunden mit einem exemplarischen Durchlauf eines Spiels bzw einer Partnersuche 13 1 mCube community Die Community dient als Eingangsportal zu den von mCube angebotenen Anwen dungen Dies bedeutet dass die in der Community vorgenommene Anmeldung eben so wie alle anderen Einstellungen in allen Anwendungen giiltig sind Die mCube Anwendungen sind aus der Community tiber die Links auf dem Bildschirm erreichbar allerdings erst nach der Anmeldung Daneben bietet Community eigenst ndige Dienste wie Verwaltung einer Buddyliste und Dienste um Buddys rund herum Auskunft ber FriendsAround d h Buddys die sich zum aktuellen Zeitpunkt in der N he des betroffenen Users befinden Chat mit Buddys M glichkeit Nachrichten an Buddys zu versenden und Nachrichten von Buddys zu empfangen Ebenso werden von der mCube Community Dienste zur Admi nistration der Userdaten zur Verf gung gestellt 13 1 1 Neuanmeldung Der erste Schritt in der Community ist die Neuanmeldung des Users Dabei werden vom User folgende Angaben ben tigt Er soll seinen richtigen Vor und Nachnamen eingeben
99. en beiden ben tigten Beans wird bei der Erzeugung des Groupmanagement Beans hergestellt Das EntityBean Group repr sentiert die Tabelle Groups die als einziges Attribut den Gruppennamen besitzt der zugleich auch Primary Key ist Hier werden also die Na 90 KAPITEL 11 IMPLEMENTIERUNG men aller Gruppen gespeichert Nur mit den hier registrierten Gruppen kann operiert werden Das zweite EntityBean GroupUsers repr sentiert die Tabelle GroupUsers Als Attribute beinhaltet sie den Gruppen und Usernamen Zusammen ergeben sie den Primary Key Ein Datensatz speichert also die Zugeh rigkeit eines Users zu einer Gruppe Damit die Datenintegrit t gesichert ist handelt es sich bei dem Gruppennamen um einen Fremdschl ssel von der Tabelle Groups Somit k nnen User nur zu Gruppen zugeordnet werden die wirklich existieren Hier folgt nun eine detaillierte Beschreibung der Funktionalit t Um eine neue Gruppe anzulegen ruft man die Methode createGroup Gruppennamen auf Falls der Gruppenname schon existiert wird eine DuplicateGroupException ge worfen Andernfalls kann man nun dieser Gruppe User zuordnen Wenn eine Gruppe nicht mehr ben tigt wird sollte diese mithilfe der Methode dele teGroup gel scht werden Hierbei werden auch alle Zuordnungen der User zu dieser Gruppe gel scht Dank der Fremdschl sselvererbung in der Datenbank und Einschal ten der Funktion Cascade Delete wird dies automatisch von der Datenbank bernom men Neben der Int
100. en wer den Auf Grundlage des berechneten Winkels wird User2 in Bezug auf Userl in einen Bereich eingeordnet und somit die Himmelsrichtung ermittelt Die acht verschiede nen Himmelsrichtungen Nord Nordost Ost S dost S d S dwest West Nordwest erstrecken sich dabei jeweils ber einen Winkel von 45 Nach diesen Berechnungen werden die entsprechenden Werte im neu angelegten RelativePosition Objekt gesetzt Es gibt neben den bereits beschriebenen Methoden zum Auslesen von einzelnen Da ten wie Distanz Winkel und Himmelsrichtung auch zwei Methoden die das komplette Objekt vom Typ RelativePosition returnieren Auch hier gibt es die M glichkeit ein Objekt zwischen zwei Usern zu erhalten oder eine LinkedList von Objekten zwischen einem User und einer bergebenen Gruppe von Usern wobei die Gruppe ebenfalls durch eine LinkedList beschrieben wird die die UserIDs h lt Neben der Berechnung der relativen Positionsdaten kann noch mithilfe der Methode getMeetingPlace ein optimaler Treffpunkt f r zwei User deren IDs bergeben wer den ermittelt werden Hierzu ist die Methode getMeetingPlace berladen wobei eine Methode die Koordinaten des g nstigsten Treffpunkts in Form eines Objekts vom Typ 11 4 ROUTING KOMPONENTE 95 Position zurtickliefert Die Koordinaten werden dabei einfach durch Mittelwertbildung von L ngengrad und Breitengrad der beiden Userpositionen bestimmt Die zweite Me thode erh lt neben den beiden UserIDs noch eine Link
101. en wurden ADM F3 Administrator MUSS funktionen ADM F3 1 Benutzerprofil aus MUSS Der Admin soll aus einer Li w hlen ste ein Profil ausw hlen k n nen hierzu soll der Name des Users als Schl ssel die nen 44 KAPITEL 7 ANFORDERUNGSANALYSE ADM F3 2 Benutzerprofil MUSS Der Admin kann das Pro ndern fil eines Users genauso bear beiten wie der User selbst nur das Passwort wird in Klartext dargestellt ADM F3 3 Benutzerprofil MUSS Der Admin kann ein Profil l schen komplett l schen ADM F3 4 Benutzer informieren KANN Der Admin kann dem User eine Nachricht in Form einer Mail zukommen lassen ADM F4 Der User hat die MUSS M glichkeit sich vom System abzu melden ADM F4 1 Vollst ndiges Ab MUSS Der User hat die M glich melden samt l schen keit sich vollst ndig vom aller Profile System abzumelden Hier bei werden alle Profildaten gel scht ADM F4 2 Deaktivieren einzel KANN Der User kann sich von ner Dienste einzelnen Diensten mCube Game oder mCu be Dating abmelden und auf Wunsch diese Unterprofile l schen ADM F5 Kontostand einsehen MUSS Der User hat die M glich keit seinen Cubie Konto stand einzusehen 7 5 2 Nicht funktionale Anforderungen Anf Name Aufgabenstellung Typ Begr ndung Anmerkung ADM N1 Es sollte zu jeder rea len Person nur ein Profil geben MUSS Die Reg
102. enmerk bei der Implementierung wurde auf die Einf hrung eines Qua lityofService in Kombination mit der Speicherung von Positionsdaten ber EntityBeans gelegt was im urspr nglichen Entwurf der Komponente nicht vorgesehen war Diese wichtige Erweiterung entstand im Gespr ch mit einem Unternehmen aus der Telekom munikationsbranche das auf die nicht zu vernachl ssigenden Kosten einer Ortung ver wies Da nicht immer aktuelle Positionsdaten ben tigt werden k nnen durch Abrufen von lteren Daten aus dem Cache Ortungen eingespart werden Au erdem zahlt sich eine Ortung teilweise doppelt aus weil sie zum einen aktuelle Daten liefert wenn ben tigt und zum anderen noch die Daten f r weniger zeitkritische Services liefert Somit wird die Locationing Komponente modernsten Anforderungen realer Telekom munikationsumgebungen gerecht Leider reichte die Partnerschaft mit der Telekommu nikationsbranche nicht soweit dass wir ber Schnittstellen auf Testumgebungen und reale Ortungsverfahren zugreifen konnten Aus diesem Grund mussten wir uns auf die zuf llige Bestimmung von Koordinaten beschr nken die jedoch auf den Gro raum Ruhrgebiet beschr nkt wurden Deshalb w re die gr te Erweiterungsm glichkeit ei ne Anbindung an eine reale Testumgebung in einem Folgeprojekt vorzunehmen Zu diesem Zweck wurde bereits ein Flag definiert welches extern ber ein XML File ge setzt werden kann und die Verwendung von Zufallswerten an oder abschaltet 11
103. er GameEngineEntity getEntityID Integer setEntityID param Integer void getLifePointsUser1 int setLifePointsUser1 param int void setLifePointsUser2 param int void getLifePointsUser2 int setEventCardsUser1 param LinkedList void getEventCardsUser1 LinkedList setEventCardsUser2 param LinkedList void getEventCardsUser2 LinkedList setGotTurnInfoFromUser1 param boolean void getGotTurninfoFromUser1 boolean setGotTurnInfoFromUser2 param boolean void getGotTurninfoFromUser2 boolean setTurninfoUser1 param Turninfo void getTurninfoUser1 Turninfo setTurninfoUser2 param TurnIinfo void getTurninfoUser2 Turninfo getUsedCardsUser1 LinkedList setUsedCardsUser1 param LinkedList void getUsedCardsUser2 LinkedList setUsedCardsUser2 param LinkedList void getUserlD1 String setUserID1 param String void getUserlD2 String setUserlD2 param String void Abbildung 8 9 UML Klassendiagramm der Komponente mCube Game GameEngine 74 KAPITEL 8 ARCHITEKTUR 9 Technische Infrastruktur Dieses Kapitel liefert einen berblick ber die f r den Betrieb von mCube n tige In frastruktur Die Architektur des Projekts mCube besteht aus 3 wesentlichen Teilen BEA Weblogic Application Server 7 0 Oracle Database 8i Netscape Directory Server 6 0 1 9 1 Application Server Zum Betrieb des Application Servers wurde eine JDBC Connection zur Oracle Daten bank eingerichtet wodurch der Ap
104. erver nutzbar 10 4 Entwicklungswerkzeuge F r die Entwicklung werden verschiedene Werkzeuge ben tigt die nachfolgend kurz vorgestellt werden sollen 82 KAPITEL 10 ENTWICKLUNGSUMGEBUNG 10 4 1 Sun JDK 1 3 1 und J2EE 1 3 Die Projektgruppe hat sich bei der Wahl der vorrangig zu benutzenden Programmier sprache fiir Java entschieden Diese Sprache erlaubt volle objektorientierte Program mierung ist plattformunabh ngig kostenlos und lizenzgeb hrenfrei Sie ist au erdem hervorragend dazu geeignet internetbasierte Anwendungen zu konzipieren und erlaubt eine direkte Anbindung an Webbrowser Die Enterprise Edition bietet mit dem Konzept der Enterprise Java Beans ein ideales Komponentenmodell um die Business Logik un serer Anwendung zu realisieren Und auch fiir die Darstellungsschicht bietet sich Java mit dem Konzept der Servlets und JSPs an Es erm glicht die Umsetzung eines MVC Konzeptes und eine einfache Anbindung von unterschiedlichen Clients z B HTML xHTML und WML Wir haben uns bewusst f r die Version 1 3 1 entschieden auch wenn die Version 1 4 bereits erschienen ist Wir m ssen keine neuen Features der Ver sion 1 4 zwingend nutzen und uns sind gravierende Probleme mit dem neuen JDK aufgefallen Interne nderungen f hren zu vielen Inkompatibilit ten mit den Entwick lungsumgebungen und dem Server Somit haben wir uns auf 1 3 1 verst ndigt um un n tiges Fehlersuchen zu vermeiden 10 4 2 CVS WinCVS Um w hrend der E
105. f einmal gel scht werden Hierzu klickt man im Mailbox Hauptmen auf den Punkt Mailbox leeren Anders als beim L schen einzelner Nachrichten wird hier mit einer Sicher heitsabfrage berpr ft ob man wirklich sicher ist Zum L schen muss man nat rlich mit JA antworten 13 3 6 Ein Beispiel Wie man einen Partner findet Bevor Sie Ihre ersten Schritte im Datingbereich unternehmen m ssen Sie erst Daten angegeben die Sie charakterisieren Teile dieser Informationen haben Sie bereits beim ersten Einloggen angegeben wie Ihr Geschlecht Mailbox Profil Haarfarbe blond gt suche Gr e 182 mCube gt Raucher Raucher dating gt Profil Gewicht Fvallschlank Suchradius 2 Poweredby Abbildung 13 45 Was bin ich Der Auswahlbildschirm fiir Ihre Profildaten Diese Daten sind unver nderlich Die Daten die Sie f r Ihr Dating Profil zus tzlich an geben sind dagegen jederzeit ver nderbar Klicken Sie im linken Men auf den Punkt Profil Da dies Ihre erste Sitzung ist werden Sie dar ber informiert werden dass Ihr Profil leer ist Am linken Rand ist daf r der Men punkt Profil neu hinzugekommen Klicken Sie auf diesen 136 KAPITEL 13 BENUTZERHANDBUCH Menu Suche nach neuen Buddies Mailbox Profil Suche Geschlecht m Ko SuchRadius in Km dating Alter E Gr e lt 160 Gewicht schlank gt Powered by Haarfarbe blond m Raucher Raucher z suche
106. ff Gruppe verdeutlicht dabei schon dass hierzu die Funktionalit t des GroupmanagementBeans genutzt wird Zun chst muss eine leere Gruppe angelegt werden wozu die Metho de setFriendsAroundList bereitsteht Diese erzeugt durch Aufruf der Methode create Group des Groupmanagements eine leere Liste mit dem an die Methode bergebenen Namen Au erdem wird ber das UsermanagementBean das Attribut friendsaroundlist des Community Profils f r den User auf den Namen dieser Liste gesetzt In diesem Attribut des Users steht also die Bezeichnung der momentan verwendeten FriendsA round Liste Zus tzlich wird dieser Name noch lokal in der Variablen buddyList ge speichert um nicht jedes Mal ber das Usermanagement auf diesen Namen zugreifen zu m ssen Um die neue Liste mit Buddys zu f llen oder einzelne Buddys wieder zu entfernen gibt es die beiden Methoden addUser und removeUser denen jeweils die ID des Buddys bergeben wird Die Methode addUser ruft eine entsprechende Methode des Groupmanagements auf die den Buddy in die momentan aktuelle FriendsAround Liste einf gt Au erdem wird der Buddy noch mit einer Nachricht dar ber informiert dass er in die Liste des Users aufgenommen wurde Auch die Methode removeUser zum Entfernen eines Buddys aus der aktuellen Liste nutzt eine entsprechende Funktion des Groupmanagements Abgerundet wird diese Gruppenverwaltung durch die Metho de getMembers die s mtliche Mitglieder der aktuellen Liste in Form einer Link
107. ffensivbonus 0 Defensivbonus 5 Minwert 1 Maxwert 3 Einschr nkung Nur Magier Keule abh ngig von 2x St rke Offensivbonus 5 Defensivbonus 0 Minwert 1 Maxwert 10 Einschr nkung St rke gt 7 Ritzkihutu abh ngig von 2x Geschicklichkeit Offensivbonus 3 Defensivbonus 3 Minwert 2 Maxwert 5 Einschr nkung Nur Elf 7 3 ANFORDERUNGEN SUBSYSTEM MCUBE GAME Lederriistung Defensivbonus 3 Besonderheit Geschicklichkeit 1 Eisenriistung Defensivbonus 5 Besonderheit Geschicklichkeit 2 Amulett der Besonderheit Starke 1 Starke Amulett der Besonderheit Konstitution 1 Konstitution Amulett der Besonderheit Intelligenz 1 Intelligenz Amulett der Besonderheit Geschicklichkeit 1 Geschick lichkeit 35 Waffenkarten werden f r jede Runde neu ausgew hlt und d rfen beliebig oft benutzt werden Amulette R stungen Ringe etc geh ren zum Basisinventar und m ssen nicht f r jeden Kampf separat ausgew hlt werden M glich ist hierbei eine Maximalanzahl So k nnen zeitgleich nur eine R stung ein Amulett und zwei Ringe getragen werden 7 3 2 2 Ereigniskarten Heiltrank Wirkung 5 10 Schadenspunkte zu r ck Ausweichen Wirkung kein Schaden 5 Offensivbonus in n ch ster Runde Ausrutschen Wirkung Gegner f llt hin 3 Scha denspunkte Gegner 5 De fensivbonus Gegner in der n chsten Runde Pro Kampfrunde kann eine Ereigniskarte ausgespiel
108. file e game e community e dating Da in USER alle Attribute gespeichert werden kann durch die Zuordnung der Attribute zu dedizierten Profilen in MCUBECONTAINER eine selektive Anzeige angesto en werden Die Daten in MCUBECONTAINER fungieren damit quasi als Zugriffsmaske 12 5 1 1 Attribut Profil Zuordnungen Profil game cn Game ou MCubeContainer mcu dc be Attribute e battlehistory e constitution dextertity 112 eventcards intelligence itemcards level lifepoints maxdistance numberofimproves strength usualcards weaponcards charactertype Profil dating cn Dating ou MCubeContainer mcu dc be Attribute e haircolor e height e searchradius e smoker e weight Profil community cn Community ou MCubeContainer mcu dc be Attribute sn ecn e givenName mobile KAPITEL 12 INSTALLATION 12 6 EXTERNE JAVA LIBRARIES 113 profiles birthdate e city cubies description e email friendsaroundlist isLoggedIn is Validated e plz positioningallowed e sex e street telephonenumber 12 6 Externe Java Libraries Zur korrekten Funktionsweise ben tigt die mCube Plattform diverse Utility Kompo nenten die auf der Installations CD im Ordner 1libs mitgeliefert werden Die Installation Konfiguration dieser Komponenten beschr nkt sich auf das Kopieren aller Datei
109. gebenem Namen existiert Falls nicht wird eine GroupNotFoundExcepti on geworfen Damit ist sichergestellt dass man einen User nicht einer Gruppe zuordnen kann die berhaupt nicht existiert Dieses Vorgehen ist notwendig um die Dateninte grit t zu gew hrleisten Entsprechend der Vorgehensweise im Usermanagement wurde gleicherma en das Log ging integriert 11 2 3 Probleme Bei der Implementierung dieser Komponente traten keine nennenswerten Probleme auf Da diese Komponente ganz unten auf der core Schicht angesiedelt ist ist sie von keiner anderen Komponente abh ngig 11 3 LOCATIONING KOMPONENTE 91 Ein aufgetretenes Problem war dass man einer Gruppe einen User mehrfach zuweisen konnte Dies wurde dadurch gel st dass der Primary Key von einer ID durch einen zusammengesetzten Primary Key ersetzt wurde bestehend aus den Attributen Grup pennamen und Usernamen Mehrfachzuweisungen sind somit nicht mehr m glich 11 2 4 Verbesserungs und Erweiterungsm glichkeiten Eine m gliche Erweiterung w re dass man Untergruppen zulassen k nnte 11 3 Locationing Komponente 11 3 1 Beschreibung Die Locationing Komponente ist eine grundlegende Komponente der core Schicht da sie eine Basisfunktionalit t bereitstellt die von anderen Komponente wie Routing und FriendsAround genutzt wird Diese Basisfunktionalit t ist die Lokalisierung von Perso nen und Objekten ohne die beispielsweise ein FriendsAround Service gar nicht m g lich
110. gen f r einen Kampf gesetzt wer den Hier bergibt man also Karten deren Effekte alle gleichzeitig die Eigen schaften des Charakters ver ndern k nnen Um zu berpr fen ob die Auswahl an Karten gleichzeitig von dem Charakter des Spielers genutzt werden kann wird die folgende Methode benutzt isCardCombinationAllowed userID String items List of Strings boolean Diese Methode berpr ft ob die bergegebenen Karten gleichzeitig vom Cha rakter benutzt werden k nnen Dabei sind folgende m gliche Einschr nkungen zu beachten Die Anzahl von tragbaren Karten eines Typs ist vorgegeben So kann der Charakter nur eine R stung tragen zwei Ringe und eine Kette Sind mehr dieser Items in der Liste so ist false zur ckzugeben Die Karten k nnen auf bestimmte Charaktertypen beschr nkt sein das ist auch zu berpr fen Die Karten k nnen auf bestimmte Eigenschaftswerte beschr nkt sein zum Beispiel St rke gt 6 auch das ist zu berpr fen isCardAllowed userID String card String boolean Mit dieser Methode wird berpr ft ob der Charakter die bergebene Karte be nutzen darf Hier sind folgende Einschr nkungen zu beachten Die Karte kann auf bestimmte Charaktertypen beschr nkt sein das ist zu berpr fen Ritzkihutu nur f r Elf Die Karte kann auf bestimmte Eigenschaftswerte beschr nkt sein zum Beispiel St rke gt 6 auch das ist zu berpr fen getNextMessage userID String Message Diese Methode holt d
111. geschieht aus Gr n den der Sicherheit da ein User die M glichkeit hat durch Setzen des Attributs posi tioningallowed in seinem Community Profil seine Ortung zu genehmigen oder zu un tersagen falls er nicht lokalisiert werden m chte Die Methode isPositioningAllowed fragt dieses Attribut ber eine Methode des Usermanagements ab Die beiden zentralen Methoden des LocationingBeans sind jedoch getUserPosition und getObjectPosition Die Methode getUserPosition erh lt als Parameter die ID des zu lo kalisierenden Users sowie einen Wert f r den QualityofService Zun chst wird mithil fe der gerade beschriebenen Methode isPositioningAllowed gepr ft ob der User seiner 92 KAPITEL 11 IMPLEMENTIERUNG Ortung zustimmt Ist dies nicht der Fall wird unmittelbar eine Exception vom Typ Po sitioningNotAllowedException geworfen die extra fiir das LocationingBean erzeugt wurde Andernfalls h ngt das weitere Vorgehen davon ab ob der User mit seinem Handy oder mit seinem Computer eingeloggt ist Dazu wird beim Einloggen in der Community das Attribut logintype fiir den User gesetzt Das hat den Vorteil dass die se Methode selbstst ndig das richtige Verfahren zur Positionsbestimmung ausw hlen kann und sich die aufrufenden Komponenten nicht darum k mmern m ssen Beim Handy wird die Position des Handys bestimmt unter der Ber cksichtigung des gew nschten QualityofService Hat dieser den Wert 0 bedeutet dies dass eine aktuelle Positionsbestimmung
112. gineEntity Bean damit diese f r die Auswertung der n chsten Kampfrunde wiedergefunden werden kann Falls einer der Spieler weniger als 0 Lebenspunkte ha ben sollte wird die Variable isBattleFinished im BattleResult Objekt auf true gesetzt Au erdem werden dann die Erfahrungspunkte verteilt und eventuell die Steigerungs m glichkeiten erh ht Um die richtige EntityBean wiederzufinden gibt es in der SessionBean die Methode create entityID die abgesehen von der Initialisierung immer benutzt wird um die Bean zu holen 8 2 4 2 Anforderungen an die Komponente API e create userID1 String userID2 String komponente Erzeugt einen Kampf zwischen den beiden tibergebenen Usern Das interne Enti tyBean wird erzeugt und wie oben beschrieben mit Daten gefiillt Eine Nachricht vom Typ BattleStart wird an die beiden Kampfteilnehmer geschickt wobei die eindeutige ID der erzeugten EntityBean mit tibergeben wird create entityID int komponente Diese Methode wird benutzt um die bereits initialisierte Bean zu holen Dafiir wird die entsprechende entityID verwendet die in der BattleResult Nachricht mit tibergeben wird battle TurnInfo turnInfo userID String void Die Zugdaten werden ins EntityBean bernommen und gotTurnInfo auf true ge setzt Es wird tiberpriift ob der andere gotTurnInfo Wert ebenfalls true ist falls ja wird der Zug ausgewertet es werden also alle Berechnungen angestellt die Werte wie oben beschrieben aktualisie
113. gsanalyse die dadurch teilweise abge ndert wurden So wurden z B die Admin Dienste in die Community mit eingegliedert Es handelte sich hierbei um eine haupts chlich architekturelle Aufgabe also haben wir das Ergebnis in einem sog Architekturdokument zusammengefasst Die Komponenten die sich dabei herausgebildet haben sind unterschieden in die Kom ponenten der core Schicht und die eigentlichen Anwendungen Komponenten der core Schicht sind die Folgenden e Usermanagement e Gruppenmanagement e Locationing e Routing e FriendsAround e Matching 4 5 13 e Communication Wir hatten zun chst noch eine Logging Komponente geplant haben dann jedoch den Log4j Logger aus dem Apache Jakarta Projekt benutzt der alle von uns geforderten Funktionalit ten besitzt Log4j erm glicht mit Hilfe von XML Konfigurationsdatei en eine nderung des Loglevels w hrend der Laufzeit so dass gro e Geschwindig keitseinbu en vermieden werden k nnen da die log Statements auch im endg ltigen Code erhalten bleiben und nur nach Bedarf ein oder abgeschaltet werden k nnen Au erdem bietet Log4j eine Vererbungshierarchie f r Logger was ebenfalls die Per formanzkosten minimiert da so fein granular bestimmt werden kann f r welche Kom ponenten die log Statements ausgewertet werden sollen Die Anwendung ist aufgeteilt in e Community e Dating e Game F r jede dieser Komponenten haben wir dann im Architekturdokument nach e
114. h herausgestellt dass die Zusammenarbeit mit ei nem gro en Wirtschaftsunternehmen u erst zeitintensiv ist Den Gro teil unserer An wendungen konnten wir jedoch zun chst ohne weitere Hilfestellungen fertig stellen T Mobile stellte uns dann sp ter eine API f r die ortsbasierten Dienste zur Verf gung Daraufhin konnten wir auch die Anbindung an diese API gr tenteils implementieren Als es darum ging unser System im Live Betrieb zu testen tauchten jedoch einige Probleme auf T Mobile war gro z gigerweise bereit uns den Zugang auf ihren Server und ihre ortsbasierten Daten zu gestatten Wir waren jedoch als studentische Pro jektgruppe bedauerlicherweise nicht in der Lage alle rechtlichen Anforderungen zum Beispiel im Bereich des Datenschutzes zu erf llen so dass wir dieses Angebot leider nicht wahrnehmen konnten Damit existiert jedoch die M glichkeit dieses Projekt weiterzuf hren Mit mehr Zeit k nnen vielleicht alle n tigen Voraussetzungen f r eine weitere Zusammenarbeit mit T Mobile geschaffen werden Dann kann die bereits implementierte Anbindung an die LBS API eingebunden und getestet werden und am Ende k nnte ein erfolgreicher Live Betrieb unseres Projekts stehen KAPITEL 4 PROZESSLEITFADEN Kapitel 5 Qualit tssicherung Wie bereits beschrieben wurde zu Beginn der Projektgruppenarbeit zusammen mit der Projektleitung und mit Zustimmung aller Teilnehmer ein Zeitplan entwickelt um einen berblick ber die noc
115. h zu erledigenden Aufgaben zu erhalten und fr hzeitig einen Verzug erkennen zu k nnen Deswegen konnten sehr gut fr hzeitig Ma nahmen ergriffen werden um die Qualit t der Ergebnisse sicherzustellen Im Folgenden werden die Ma nahmen und unsere Erfahrungen damit beschrieben Im Allgemeinen war diese Vorgehensweise sehr erfolgreich und gestellte Deadlines wur den berwiegend eingehalten Hin und wieder wurde bei sehr umfangreichen oder drin genden Aufgaben eine Deadline unwesentlich berschritten 5 1 Schulungen Um den Wissensstand aller PG Teilnehmer auf ein gleiches Level zu bringen wurden Schulungen in Form von Vortr gen durchgef hrt Einzelne Teilnehmer die sich tiefer mit einem Thema besch ftigt haben ver ffentlichten ihre Erkenntnisse durch Pr sen tationen in den PG Treffen Vortr ge wurden gehalten um Basiswissen in verschiedenen Bereichen zu vermitteln wie die Architektur und Funktionsweise von EJB zusammen mit einem Applikations server sowie die Benutzung von Programmen wie WinCVS funktionieren Im Folgenden sind die Schulungen aufgelistet die w hrend der Anfangsphase der Pro jektgruppenarbeit durchgef hrt wurden e Java 2 MicroEdition SunO3c Schulung e Enterprise Java Beans Sun03b Schulung e Application Server Schulung e CVS und WinCVS Cvs Schulung e Latex und Lyx Schulung 5 2 Versionierung Um die Versionskontrolle von Dokumenten und Source Code durchzufiihren wird das Concurrent
116. hen verschiedenen Zusammenh ngen die Einbindung der Ortsabh n gigkeit einen enormen Mehrwert schaffen kann Aus diesem Grund wurde mit mCube eine Plattform geschaffen ber die der User auf mehrere ortsabh ngige Dienste zugrei fen kann Konkret wurden ein ortsbasiertes Spiel mCube game und ein Datingservice mCube dating realisiert und in diese Plattform mCube community integriert Einen detaillierten berblick ber die Plattform und diese beiden Dienste gibt Kapitel 3 Den zentralen Ausgangspunkt des Projekts mCube bildet ein intelligentes und erfolgver sprechendes Konzept das auf der Zusammenf hrung verschiedener etablierter Systeme beruht und dadurch einen erheblichen Mehrwert schafft Dieses Konzept ist der Ein stiegspunkt f r das Verst ndnis von mCube und wird somit bereits in diesem Kapitel 1 2 KAPITEL 1 MOTIVATION erl utert Insgesamt bietet dieser Endbericht dem Leser die M glichkeit die Realisie rung von mCube nachzuvollziehen und dabei einen Einblick in wichtige Konzepte und zukunftsweisende Dienste der mobilen Telekommunikation zu gewinnen und gleich zeitig ein System kennenzulernen das die Grundlage zur Erschaffung dieser Dienste bietet Der Endbericht beschreibt die Arbeit in der Projektgruppe von der Aneignung von Hintergrundwissen w hrend der einleitenden Seminarphase ber die Analyse und Designphase bis hin zur Implementierung des Projekts Der Schwerpunkt liegt dabei auf der Entwicklungsphase weil die tea
117. hkommastellen angegeben werden Der Suchradius wird in Kilometern ebenfalls ohne Nachkommastellen angegeben Wenn die Auswahl zufrieden stellend ist klickt man auf Set Profil ndern Wenn das Profil sp ter ge ndert werden soll muss genauso wie oben beschrieben vor gegangen werden Der Men punkt Profil neu ist in diesem Fall automatisch durch Profil ndern ersetzt worden Die Vorgehensweise ist dieselbe wie beim Anlegen eines neuen Profils 13 3 MCUBE DATING 133 13 3 3 Partner finden Wenn man auf den Punkt Suche im Seitenmenii klickt wird man mit einer Suchmas ke konfrontiert in welcher die Parameter des gewiinschten Partners identifiziert werden k nnen Die Angaben k nnen jeweils nur in Intervallen angegeben werden Wenn die Auswahl egal getroffen wird wird der jeweilige Parameter nicht bei der Suche nach neuen Partnern ber cksichtigt Nachdem man seine Auswahl getroffen hat klickt man auf Suche Entweder wird jetzt eine Liste mit Benutzern angezeigt die den Suchpa rametern entsprechen oder eine Fehlermeldung dass keine Partner gefunden werden konnten Wenn eine Liste mit potenziellen Partnern angezeigt wird k nnen diese in dem auf das Icon rechts neben dem Namen des Benutzers geklickt wird zur Buddyliste hinzugef gt werden Wenn direkt auf den Namen des Benutzers geklickt wird werden dessen Profildaten angezeigt Um zur Auswahlliste zur ckzukehren kann die Zur ck Funktio
118. hr Schaden richtet man zwar an desto mehr Schaden kann man aber auch erleiden da man dann seine Defensive offen l sst Als Barbar st rt Sie das nat rlich nicht und Sie gehen auf eine Offensive von 98 Als Waffe nehmen Sie Ihre Keule und Ereignisse haben Sie leider nicht mehr Nun gilt es noch einen markigen Kampfspruch einzutragen Sie entscheiden sich f r Auffe Omme Kampf ihres Charakters Olli Kahn gegen Zw lf Lebensenergie 32 Ihr Gegner sagt Rutsch mal sch n Eine Kampfrunde ist vorbeil Weapons Sie haben keine Events Offensivitat feo Kampfspruch Miese Takik o Abbildung 13 34 Zweite Kampfrunde und Ergebnis der vorherigen Runde Hat der andere Spieler ebenfalls seinen Zug vollendet gelangt man ber Nachricht abholen in die zweite Kampfrunde Sie sehen hier dass Sie drei Lebenspunkte verloren haben da Ihr feiger Gegner offen sichtlich Ausrutschen eingesetzt hat Diesmal gehen Sie etwas vorsichtiger zu Werke und beschweren sich noch ber die miese Taktik Dies geht weiter bis einer der Cha raktere keine Lebensenergie mehr hat 13 2 5 3 Kampfergebnis Nachdem einer der Charaktere keine Lebensenergie mehr hat ist der Kampf beendet und der Sieger wird bekannt gegeben Leider haben Sie Ihren ersten Kampf verloren 130 KAPITEL 13 BENUTZERHANDBUCH Der Kampf der Helden ist beendet Gewonnen hat Zw lf mCube gt Game Abbildung 13 35 Das Kampfergebnis 13 2 6 Hi
119. hts der knappen Zeit nicht mehr umsetzen k nnen Die erste Verbesserungsm glicheit w re ein ausgefeilteres Berechtigungssy stem auf Rollenbasis das sich Grundfunktionalit ten der Java Security Mechanismen bedient Die zweite Verbesserungsm glichkeit w re eine Auslagerung der LDAP Kon figuration in eine XML Datei So k nnte die Komponente auch ohne Neukompilierung der Constants Klasse f r einen neuen Server eingerichtet werden Die Anpassungen w ren damit auch f r den Bean Deployer m glich 11 2 Groupmanagement Komponente 11 2 1 Beschreibung Die Groupmanagement Komponente ist in der core Schicht angesiedelt und dient zur Gruppenverwaltung Es k nnen neue Gruppen angelegt und wieder gel scht werden Einer Gruppe k nnen User hinzugef gt und entfernt werden Dabei besteht eine Grup pe nur aus Usern Es gibt also keine Untergruppen Man kann sich sowohl alle User einer Gruppe als auch alle Gruppen zu denen ein User geh rt anzeigen lassen Au er dem kann man berpr fen ob ein User zu einer bestimmten Gruppe geh rt Die Gruppenverwaltung wird beispielsweise von der Community benutzt um die Bud dylisten der User zu verwalten 11 2 2 Realisierung Die Funktionalit t dieser Komponente wird durch ein stateless SessionBean bereitge stellt Au erdem hat die Komponente noch zwei EntityBeans um die Gruppen und die Zugeh rigkeit der User zu diesen Gruppen persistent in der Datenbank speichern zu k nnen Die Verbindung zu dies
120. iche Funk tionalit t der Community Die JSP stellen die Fassade der Komponente dar Durch die se wird die Benutzeroberfl che dargestellt und die vom User eingegebenen Daten und vorgenommenen Aktivit ten unter Benutzung des request Objektes zur Verarbeitung ins Innere weitergeleitet Die Weiterleitung bernimmt dabei die execute Methode der CommandBeans die an JSP ankn pfen Da die mCube Anwendungen sowohl f r das Handy als auch f r das Web gedacht sind sollen diese sowohl in HTML als auch in XHTML dargestellt werden k nnen Dazu wurde das MVC Konzept auf XSLT umgestellt Logging wird mittels Log4J realisiert 11 8 3 Probleme Die meisten Probleme die sich bei der Implementierung ergaben waren nicht mCu be community spezifisch sondern betrafen das gesamte Projekt Dies gilt insbesondere f r den Deployment Prozess Es gab allerdings ein Problem das nur Community betraf Hierbei handelt es sich um die Implementierung des Buddychats Anstatt die core Komponente Chat nutzen zu k nnen mussten wir eine eigene neue Komponente implementieren Implementierung mancher Anforderungen z B des Hinterlassens von Nachrichten an bestimmten Orten wurde aufgrund von fehlender Reife der technischen M glichkei ten oder deren Nicht Einsatz in der Praxis in diesem Fall genauer Ortungsverfahren aufgegeben 11 8 4 Verbesserungs und Erweiterungsm glichkeiten Viele Funktionalit ten die bei der Anforderungsanalyse mit Priorit t kann ge
121. ie n chste Message f r den User ab Es werden hier nur Messages f r Game abgeholt Von der Art der Message h ngt ab in welchen Bildschirm die Applikation wechselt Diese Methode nutzt die Methode get NextMessage userID application aus der Kommunikationskomponente wobei application hier gleich game ist 68 KAPITEL 8 ARCHITEKTUR e getOnlineUsers userID String List of PlayerDataForBuddy List Diese Methode holt die Daten fiir den Startbildschirm Das sind die UserIDs die Charakternamen die Level Entfernungen und Richtungen aller Mitglieder der Gruppe Game User mit Ausnahme des aktuellen Users Diese Daten werden in Form einer Liste von PlayerDataForBuddyList Objekten zur ckgegeben Klasse PlayerDataForBuddyList Diese Klasse kapselt die Daten die auf der Startseite von Game ben tigt werden Dies sind int distance String userID String charactername String direction String level Klasse TradeOffer Diese Klasse erbt von Message und erh lt die zus tzlichen Attribute List of Strings offeredCards List of Strings wantedCards Das in Message vorhandene Feld content wird genutzt um den Slogan unter zubringen Sie wird in der Methode send TradeOffer erstellt und versendet Der Klassenname wird als Markierung benutzt das ist wichtig f r die Weiterverar beitung Klasse BattleInvitation Diese Klasse erbt von Message und erh lt keine zus tzlichen Attribute Der Klas senname wird a
122. igence Die minimale Intelligenz die der Charakter ben tigt um die Karte einzusetzen int maxIntelligence Die maximale Intelligenz die der Charakter haben darf um die Karte einzusetzen int minDexterity Die minimale Geschicklichkeit die der Charakter ben tigt um die Karte einzusetzen intmaxDexterity Die maximale Geschicklichkeit die der Charakter haben darf um die Karte einzusetzen List of Strings allowedCharacterTypes Hier stehen die erlaubten Charak tertypen also die Typen die die Karte einsetzen d rfen e Modifikationen die von der Karte ausgel st werden int offensiveBonus Der Offensivbonus der Karte der f r den benutzen den Charakter gilt haupts chlich ben tigt f r Karten vom Typ Weapon allerdings k nnen auch andere Karten den Offensivbonus eines Charakters ver ndern int defensiveBonus Der Defensivbonus der Karte der f r den benutzen den Charakter gilt haupts chlich ben tigt f r Karten vom Typ Weapon allerdings k nnen auch andere Karten den Defensivbonus eines Charakters ver ndern zum Beispiel eine R stung int offensiveBonusForOpponent Der Offensivbonus der Karte der f r den Gegner gilt int defensiveBonusForOpponent Der Defensivbonus der Karte der fiir den Gegner gilt int additionalDamage Die Anzahl der Lebenspunkte die der Gegner ver liert Durch einen negativen Wert erh lt der Gegner Lebenspunkte hinzu 8 2 DIE ANWEN
123. ildung 13 43 Eine Beispielnachricht Auch hier gibt es wieder die Kennung des Benutzers der die Nachricht geschickt hat Wie in den anderen Listen so ruft ein Klick auf den Namen wieder das pers nliche Profil dieser Person auf Daneben finden sich zum Lesen und L schen der Nachricht Wenn man auf l schen klickt wird die Nachricht ohne R ckfrage ge l scht Wenn man auf lesen klickt wird der Inhalt der Nachricht angezeigt Um di rekt auf die Nachricht zu antworten kann man im Seitenmen den Punkt Nachricht beantworten w hlen 13 3 5 1 Eine Nachricht schreiben Nachdem die Mailbox aufgerufen wurde erscheint im Seitenmen der Men punkt Nachricht schreiben Nachrichten kann man nur an Benutzer schreiben welche in der Buddyliste sind 13 3 MCUBE DATING 135 Empf nger amigo Mailbox Profil Suche send Abbildung 13 44 Eine Nachricht schreiben Am oberen Rand findet sich eine Auswahlbox um den Empf nger aus der Buddyliste ausw hlen zu k nnen Das Hauptfenster darunter ist f r den eigentlichen Nachrichten text Wenn man einen Empf nger ausgew hlt und den Text der Nachricht im Haupt fenster darunter eingegeben hat klickt man auf den Send Knopf Die Nachricht wird jetzt verschickt Falls man brigens vom Empf nger ignoriert wird erh lt man keine Nachricht dar ber 13 3 5 2 Mailbox l schen Statt alle Nachrichten einzeln zu l schen kann auch die gesamte Mailbox au
124. iner kur zen Beschreibung im Einzelnen festgelegt welche Anforderungen an die Komponente gestellt werden und einen m glichen internen Aufbau dargelegt Dabei haben wir be reits eine bersicht ber die Funktionen der jeweiligen Komponente im Sinne einer API entwickelt und auch UML Klassendiagramme f r jede einzelne Komponente an gelegt Auch dieses Architekturdokument hat mehrere Entwicklungsstufen durchlaufen in de nen es immer detaillierter wurde In der Version 2 0 war es soweit fertig dass es als Grundlage f r den Prototypen dienen konnte 4 5 Prototyp Anschlie end haben wir ausgehend von dem Architekturdokument mit der Implemen tierung eines Durchstichprototypen begonnen Daf r haben wir uns in Kleingruppen aufgeteilt die jeweils f r einzelne Komponenten verantwortlich waren Dieser Proto typ sollte einen Cut Through durch alle Ebenen realisieren und die Kommunikation zwischen allen Komponenten testen Dabei hat das Architekturdokument fortw hrend nderungen erfahren die allerdings nur auf der Ebene der verwendeten Funktionen stattgefunden haben Sehr hilfreich war daf r die starke Kommunikation unter allen Kleingruppen die durch die gemeinsame Entwicklung im PG Pool m glich war Mit dem positiven Ergebnis dass der Proto typ unseren Erwartungen weitestgehend entspricht haben wir auch im Nachhinein das Funktionieren unserer Herangehensweise in der Analyse und Designphase gezeigt Mit diesem Prototypen haben wir das er
125. int content Object empfaengerID String messagelD int entitylD String battleSlogan String battleFinished boolean TradeOffer BattleStart BattleStart entityID String TradeOffer offeredCards List wa offeredCards List wantedCards List entitylD String Battlelnvitation Battlelnvitation senderlD String mesi PlayerDataForBuddylist PlayerDataForBuddylist distance int name String userlD String level String direction String Abbildung 8 8 UML Klassendiagramm der Komponente mCube game 8 2 3 4 Anforderungen an andere Komponenten e User Rechtemanagement Game muss die M glichkeit haben ein Datum eines bestimmten Users auszule sen in diesem Fall die Daten aus dem Profil f r Game e Kommunikation Game ben tigt die Methode sendMessage message userID application void um TradeOffers BattleInvitations und Standard Nachrichten an einen be stimmten User zu schicken wobei application immer game ist getNextMessage userID application Message wird ben tigt um Nachrichten abzurufen e Routing Es muss die Entfernung und Richtung zwischen zwei Usern herausgefunden wer den 70 KAPITEL 8 ARCHITEKTUR e Gruppenmanagement Es muss m glich sein ein User einer Gruppe hinzuzuf gen und den User wieder aus der Gruppe zu l schen 8 24 mCube game gameEngine 8 2 4 1 Beschreibung Diese Komponente besteht aus einer EntityBean und einer vorgeschalte
126. ionale Anforderungen Anf Name Aufgabenstellung Typ Begr ndung Anmerkung GAM N1 Das System muss MUSS die G ltigkeit ei nes Spielzuges berpr fen k nnen GAM N2 Das System kann MUSS dem Nutzer den gegnerischen Zug anzeigen GAM N3 Konsequentes KANN Ablehnen von Her ausforderungen wird bestraft GAM N4 Die Kartens tze MUSS der Spieler sind vom Nutzer nicht manipulierbar GAM N5 Der Kartensatz kann KANN lokal gespeichert und damit das Spiel tiber IR auch offline ge spielt werden 7 4 ANFORDERUNGEN SUBSYSTEM MCUBE DATING 39 GAM N6 Bei Gewinnen eines MUSS Spiels erh lt der Nut zer eine in den Spiel regeln festzusetzen de Belohnung GAM N7 Die Tauschfunktio nalit t darf nicht manipulierbar sein MUSS GAM N8 Im Spielbildschirm KANN existiert eine History der zuletzt durchge f hrten Z ge 7 3 5 Schnittstellenanforderungen Anf Name Aufgabenstellung Typ Begr ndung Anmerkung IGAM S1 Die Schnittstellen MUSS m ssen kompatibel zu denen der Com munity Plattform sein Komponentengedanke der Community 7 3 6 Auftretende Klassen vorl ufig 1 Nutzer Der Benutzer des Systems 2 Kartensatz Sammlung der Spielkarten eines Nutzers 3 Karte Spielkarte 4 Chattext Kurznachricht 5 Hotkey Belegt mit Kurznachrichten 6 Hauptbildschirm Hauptschirm
127. ise das Deployment nicht mehr Als diese Struktur nderungen abgeschlossen waren war es m glich mit der Umstellung auf XSLT wie gewohnt fort fahren Bei der Erstellung des XSLT Stylesheets f r den Handy Browser fiel auf dass dieser zu viele Daten im Cache behielt Beim Durchgang durch die Seiten stie man auf alte im 104 KAPITEL 11 IMPLEMENTIERUNG letzten Schritt eingegebene Daten Hier half ein entsprechendes Tag das den Browser veranlasst nicht zu cachen 11 9 4 Verbesserungs und Erweiterungsm glichkeiten Eine Erweiterungsm glichkeit ist eine Einf hrung eines Shop Systems f r Karten da mit diese ge und verkauft werden k nnen Au erdem k nnten weitere M glichkeiten eingef hrt werden mit denen man an Karten gelangen kann Als etwas unpraktisch erwies sich w hrend der Tests auch das System zum Abholen von Nachrichten Hier k nnte man in Zukunft eine Liste von Nachrichten einf hren unter denen man sich eine aussuchen kann die man bearbeiten m chte Des Weiteren k nnte die Anzahl der zur Auswahl stehenden Charaktere erweitert wer den Eine gut zu vermarktende Erweiterung w re die M glichkeit Karten in bestimmten Funkzellen unter bestimmten Umst nden abholen zu k nnen So k nnten Gesch fte Kneipen und Kinos Anreize bieten in ihr Haus zu kommen Durch weitere Erweite rungen k nnten so auch Stadttouren und Schnitzeljagden implementiert werden 11 10 Dating Komponente 11 10 1 Beschreibung Die Da
128. istiert eine W hrung namens Cubies mithilfe derer man besondere Dienste in Anspruch nehmen kann KANN Durch die Einf hrung einer W hrung k nnen kosten pflichtige Dienste erbracht oder Bonussysteme einge f hrt werden 7 2 ANFORDERUNGEN COMMUNITY BASISDIENSTE 29 COM F5 1 Transaktionen und KANN Kontostand k nnen jederzeit auf einem Konto eingesehen werden COM F5 2 Cubies k nnen KANN an andere Nutzer verschenkt werden COM F6 Der Nutzer muss zu MUSS Jeder Mensch hat das Recht jeder Zeit wissen und auf informationelle Selbst kontrollieren k n bestimmung Zum einen nen welche seiner wird diese gesetzlich ge Daten anderen Nut sch tzt zum anderen h ngt zern und dem System die Akzeptanz der Dienste zug nglich sind Zu vom Gef hl der Wahrung diesen Daten z h einer gewissen Privatsph re len Aufenthaltsort ab Anmeldestatus Realname Alias name Pers nliche Daten Kontaktinfor mationen COM F6 1 Der Nutzer kann ein KANN Die Positionsdaten sind sehr sehen wann seine sensible Daten ber die der Positionsdaten abge Nutzer volle Kontrolle ha fragt wurden ben m chte Durch diese Kontrolle ist es nicht m g lich jemanden unbeobachtet auszuspionieren COM F6 2 Der Nutzer kann ein MUSS Durch allzu h ufige Abfra stellen wie h ufig ge der Positionsdaten wird seine Positionsdaten der Stromverbrauch extrem abgefragt werden erh ht
129. istrierung K nnte per Post gesendet werden Auch eine Person mit zwei Endger ten sollte keine zwei Profile anlegen k nnen 7 5 3 Schnittstellenanforderungen Anf Name Aufgabenstellung Typ Begr ndung Anmerkung ADM S1 Sicherheitsaspekte MUSS Kein User darf je Zugriff auf die Benutzerdaten ande rer User haben 8 Architektur Nachdem die Anforderungen an das Projekt formuliert waren galt es eine Architek tur zu entwerfen mit deren Hilfe wir diese Anforderungen erf llen k nnen Besonders nicht funktionale Anforderungen wie Skalierbarkeit und Integrierbarkeit fremder An wendungen in unsere Community waren entscheidend f r unsere Arbeit Auf seiten der Mobilfunkbetreiber werden zumindest zurzeit noch propriet re Proto kolle verwendet Hier haben wir keinen Einblick in die aktuellen Entwicklungen und k nnen auch zuk nftige nicht vorhersehen Es blieb uns also nur die Aufrufe an das Netzwerk zu kapseln und den benutzenden Komponenten eine m glichst gute Schnitt stelle anzubieten Auf der Clientseite also der Verbindung zum Endger t werden die Protokolle und Darstellungssprachen ffentlich diskutiert Hier ist die Vielfalt der Ger te mit unter schiedlichen Darstellungsgr en aber auch Darstellungssprachen ein zu bew ltigendes Problem Da alle momentan im Einsatz befindlichen Ger te XML konforme oder zu mindest zu XML sehr hnliche Sprachen nutzen i
130. kalisiert werden kann und wann nicht Ist die gefundene Person ebenfalls an einem Treffen interessiert haben nun beide die Wahl ob sie sich auf ein Blind Date einlassen wollen oder ob sie vorher mittels der Kommunikationsfunktionalit ten der Communtiy Kontakt aufnehmen wollen 3 3 mCube game Das zweite Modul ist ein Spiel das ortsbasierte Werbeaktionen und ortsbasiertes Spie len unterst tzt Idee hierbei war es mehrere erfolgreiche Konzepte zusammenzuf hren Sammelkarten Spiele Trading Card Games wie z B Pokemon o Kurzkampfspiele Lycos Pr gel pause und die Ortsbasiertheit Grundlage ist der Rundenkampf der von erweiterbaren Charakteren zun chst ortsunabh ngig ausgetragen wird Die Charaktere werden durch sammelbare elektronische Karten um Funktionalit t und St rke erweitert Diese sind in Aussehen und Aufl sung mit Handylogos vergleichbar Die Karten werden sowohl ortsunabh ngig kostenpflichtig Internet als auch in Kooperationen mit interessierten Unternehmen ortsabh ngig also z B in einer Filiale des Unternehmens kostenlos ver trieben Das Spiel selbst basiert auf Charakteren mit den blichen Basiseigenschaften St rke Geschicklichkeit und Intelligenz sowie Konstitution Die Karten k nnen nun verschie dene Funktionen zur Erweiterung des Charakters bernehmen Es gibt Kartentypen die zur Steigerung der Basiseigenschaften dienen sowie Waffenkarten und Karten mit Spezialaktionen Basis f r eine Kampfrunde bi
131. kenn zeichnet wurden sind nicht k nnen aber implementiert werden Dies gilt z B f r ein Shop System mit Cubies Au erdem k nnen bereits bestehende Dienste erweitert werden Z B kann neben des Buddychats ein Topicchat implementiert werden Dieser kann sich zu einer M glich keit entwickeln mit unbekannten Usern ber ein bestimmtes Thema zu chatten und so neue Kontakte zu kn pfen und neue Freunde und Buddies zu gewinnen 11 9 ANWENDUNG MCUBE GAME 103 Desweiteren k nnen detailliertere Profilangaben vom User abgefragt werden Es kann dem User mehr Freiraum gestattet werden indem ihm mehr Punkte geboten werden die er sich selbst einstellen kann 11 9 Anwendung mCube game 11 9 1 Beschreibung Die Anwendung mCube game ist eine Anwendung die auf mCube community auf setzt Abh ngigkeiten bestehen zu den core Komponenten Usermanagement Routing Groupmanagement und Communication In der Anwendung mCube game ist es m glich ein Spiel zu spielen zu den Spielregeln siehe Kapitel Anforderung und Kapitel Bedienungsanleitung Weitere Informationen zu dieser Anwendung finden sich auch im Kapitel Architektur 11 9 2 Realisierung Die Anwendung mCube game wurde mit dem im Kapitel Architektur beschriebenen Model View Controller Konzept und den ebenfalls dort beschriebenen Komponenten realisiert Weitere Informationen finden sich also im Kapitel Architektur und im An hang JavaDocs Logging wurde ebenfalls entsprechend implementiert E
132. lan ein eine freie Implementierung des Apache Pro jektes Was muss getan werden um eine Applikation in das Konzept einzubinden Man definiert bestimmte logische Actions die aus dem Anwendungsfall klar werden Eine Action w re zum Beispiel login Im Request werden der Action Name login und au erdem die zwei Strings UserID und Password bergeben Am Servlet muss nichts ver ndert werden In das xml Konfigurationsfile macht man nun zwei Eintr ge lt action name login unsecure true gt lt application gt NewApp lt application gt lt file gt start jsp lt file gt lt commandbean gt mcube application community command CBLogIn lt commandbean gt lt action gt lt action name loginfailed unsecure true gt lt application gt NewApp lt application gt lt file gt loginfailed htm lt file gt lt action gt Zus tzlich m ssen noch die Attribute unsecure und lt application gt definiert wer den In lt application gt steht der Name der zur Action geh renden Anwendung dies ist f r das Auffinden eines passenden Stylesheets notwendig unsecure enth lt den 8 2 DIE ANWENDUNGEN 51 Wert true falls nicht berpr ft werden soll ob der anfragende Benutzer korrekt eingeloggt ist ansonsten false Das Servlet ruft nun das CommandBean CBLogln auf und startet die execute Metho de Ein Entwickler muss also das CommandBean implementieren In diesem Fall wird Zugriff auf eine EJB ben tigt
133. lativePosition aufrufen die s mtliche relativen Positionsdaten ermittelt und in einem Objekt vom Typ RelativePosition speichert Aus diesem Objekt wird dann mit der entsprechenden Get Methode die gew nschte Gr Be Distanz Winkel oder Himmelsrichtung ausgelesen und returniert Herzst ck der Routing Komponente sind also die privaten Methoden createRelativePosition sowie getAngle und getDirection die die Berechnungen f r den Winkel und die Himmels richtung intern durchf hren Genauer gesagt gibt es zwei createRelativePosition Me thoden wobei die eine zwei UserIDs erwartet und die Position dieser User zun chst ber die Locationing Komponente ermittelt um dann die zweite Methode aufzurufen die zwei Positionsobjekte erwartet und basierend auf diesen die Berechnungen durch f hrt Ein Positionsobjekt h lt die Koordinaten einer Position also L ngen und Breitengrad als Float mit einer Genauigkeit von f nf Nachkommastellen Die Distanz wird dann nach folgender Formel berechnet L2 L1 cos B2 B1 2 B2 B1 60 1852 Dabei ist d die Distanz L2 und L1 bezeichnen den L ngengrad der Position von User2 und Userl und B2 und entsprechen dem Breitengrad der Position von User2 und Userl Die Formel entspricht den g ngigen Methoden zur Navigierung in der Seefahrt Winkel und Himmelsrichtung werden dann in zwei separaten Methoden berechnet wo bei f r die Winkelbestimmung die L ngen und Breitengrade der User verglich
134. laus Alfert Alexander Fronk Ernst Erich Doberkat Abschlu bericht der Projektgruppe PG HEU 326 Oktober 1999 Corina Kopka Ein Vorgehensmodell fiir die Entwicklung multimedialer Lernsysteme M rz 2000 Stefan Austen Wahid Bashirazad Matthais Book Traugott Dittmann Bernhard Flechtker Hassan Ghane Stefan G bel Chris Haase Christian Leifkes Martin Mocker Stefan Puls Carsten Seidel Volker Gruhn Lothar Sch pe Ursula Wellen Zwischenbericht der Projektgruppe IPSI April 2000 Ernst Erich Doberkat Die Hofzwerge Ein kurzes Tutorium zur objektorientierten Modellierung September 2000 Leonid Abelev Carsten Brockmann Pedro Calado Michael Damatow Michael Heinrichs Oliver Kowalke Daniel Link Holger L mkemann Thorsten Niedzwetzki Martin Otten Michael Rittinghaus Gerrit Rothmaier Volker Gruhn Ursula Wellen Zwischenbericht der Projektgruppe Palermo November 2000 Stefan Austen Wahid Bashirazad Matthais Book Traugott Dittmann Bernhard Flechtker Hassan Ghane Stefan G bel Chris Haase Christian Leifkes Martin Mocker Stefan Puls Carsten Seidel Volker Gruhn Lothar Sch pe Ursula Wellen Endbericht der Projektgruppe IPSI Februar 2001 Leonid Abelev Carsten Brockmann Pedro Calado Michael Damatow Michael Heinrichs Oliver Kowalke Daniel Link Holger L mkemann Thorsten Niedzwetzki Martin Otten Michael Rittinghaus Gerrit Rothmaier Volker Gruhn Ursula Wellen Zwischenbericht der Projektgruppe Palermo
135. ld Tool das mit dem bekannten Unix make zu verglei chen ist Es basiert jedoch vollst ndig auf Java und l sst sich daher problemlos auf jeder Plattform einsetzen f r die es eine Java Virtual Machine gibt Dar ber hinaus gibt es viele so genannte Tasks um verschiedene Aufgaben zu erf llen Die Aufga ben lassen sich durch verschiedene Targets gruppieren Ein Target kann beliebig vie le Einzelaufgaben zusammenfassen und zus tzlich kann die Ausf hrung von ande ren Targets abh ngen oder ein Target kann auch andere Targets ausl sen Zus tzlich kann man durch Konfigurationsdateien leicht Angaben von Pfaden etc anpassen Dies war besonders hilfreich da wir so leicht die unterschiedlichen Pfade f r den privaten Testserver und den Liveserver ndern konnten Somit konnten wir leicht Targets f r das Kompilieren der Einzelkomponenten oder auch der gesamten Applikation erstellen und das Deployen in den Server automatisieren Dieses Tool w rde also bei der Nut zung am Arbeitsplatz viele Schritte vereinfachen Da wir jedoch in mehreren Teams arbeiteten wollten wir eine zentrale Kontrolle des Arbeitsfortschritts und der Arbeits f higkeit des Systems Dabei stie en wir auf das Sourceforge Projekt CruiseControl Es unterst tzt die Idee der Continous Integration d h w hrend des gesamten Entwick lungsprozesses werden automatisch und in regelm igen Zeitintervallen alle Teile des Projekts zusammengef gt und getestet FF03 Die auto
136. lden die Eigenschaften des Charakters in Zusammenhang mit der eingesetzten Waffe Nachdem jeder Spieler seine Grundak tion gew hlt hat wird eine Zufallsentscheidung getroffen die den St rkeren bevorzugt Beendet ist der Kampf wenn ein Charakter keine Hitpoints mehr hat Der Charakter kann aber noch weiterhin benutzt werden Kapitel 4 Prozessleitfaden Als eine wesentliche Auspr gung unserer wissenschaftlichen Arbeitsweise bei dem Projekt haben wir uns entschlossen die von uns verwendeten Prozessmuster genau zu dokumentieren Als Prozessmodell haben wir haupts chlich das evolution re Prototyping benutzt Auf bauend auf dem ersten Prototypen haben wir weitere inkrementelle Phasen durchlau fen in denen sukzessive immer mehr jeweils zu Beginn einer Phase festgelegte Funk tionalit ten implementiert wurden Die einzelnen Besonderheiten unseres Prozessver laufs werden im Folgenden n her erl utert 4 1 Projektplan Um einen genauen Zeitplan festzulegen und um jederzeit unsere Fortschritte daran berpr fen zu k nnen haben wir einen detaillierten Projektplan in der Form eines Gantt Charts aufgestellt Gantt Charts wurden bereits 1917 entwickelt MMO0 sind aber auch heute noch eine der n tzlichsten Methoden um einen Zeitplan zu pr sentie ren Sie zeigen Aufgaben und zeitliche Vorgaben sowie zus tzliche Informationen wie z B welche Aufgaben Meilensteine darstellen oder welche Ressourcen PG Teilnehmer jeweils gebraucht werden
137. le notwendigen Programme finden sich auf der mCube Installations CD im Ordner Oracle 81 Notwendige Schritte 1 Entpacken der Datei nt817personal zip in ein tempor res Verzeichnis 2 Ausfiihren der Datei setup exe 12 4 KONFIGURATION DES BEA WEBLOGIC SERVERS 109 3 Standardeinstellungen der Installation beibehalten 4 Das Datenbankskript doschema sql ausf hren 12 4 Konfiguration des BEA Weblogic Servers Zur Konfiguration des Servers muss die Administrationskonsole aufgerufen wer den Diese findet sich wenn man die Standardeinstellungen bei der Installation beibe halten hat als HTML Oberfl che unter http IP Adresse 7001 console Folgende Konfigurationen sind vorzunehmen Einrichten eines JDBC Connection Pools e Name OraclePool e URL jdbc oracle thin IP Adresse 1521 0racle e Driver oracle jdoc driver OracleDriver Einrichten einer Transaction Datasource TX e Name TXOracleSource e Poolname OraclePool Hsenices 8 a Apese E Connection Pools OraclePool E MultiPools E Data Sources ETs Data Sources TxOracleSource Abbildung 12 2 JDBC Einstellungen 110 KAPITEL 12 INSTALLATION JMS Konfiguration e Einrichten eines JMSServers mit Namen MyJMSServer e Einrichten einer ConnectionFactory mit Standardeinstellungen e Einrichten der Destination Mcube_Community e Einrichten der Destination Mcube_Dating e Einrichten der Destination Mcube_Game Gums EI connection Facto
138. leitet Eine solche zus tzliche Schicht ist wartungsintensiv da sie bei jeder nderung in der Schnittstelle einer Komponente angepasst werden muss Sie ist un bersichtlich und hebt die logi sche Trennung der Komponenten auf Innerhalb der core Schicht gibt es keine weitere Struktur jede Komponente kann auf die Funktionalit ten aller anderen zugreifen 8 1 1 3 Die Anwendungen Auf mCube core setzen verschiedene Anwendungen auf die die Schnittstelle zum Nut zer bieten Die Anwendungen k nnen selbst Beans enthalten die n tige Gesch ftslogik implementieren und die Dienste von mCube core nutzen Der Kontakt zum Nutzer er folgt ber JSP Seiten die durch Servlets gesteuert werden Mithilfe dieser Servlets und JSP Seiten werden XML Dateien generiert die im darauf folgenden Schritt per XSLT in beliebige Darstellungssprachen transformiert werden k nnen Im Rahmen der PG erzeugen wir XHTML und HTML Seiten Dieser Me chanismus wird in Abschnitt 8 1 1 4 erl utert Die Anwendung mCube community setzt direkt auf mCube core auf und realisiert die Basisdienste der Community wie Anmeldung Chat und FriendsAround Ebenso wer den die weiteren Anwendungen integriert So wird ein einheitliches Look amp Feel in allen Anwendungen erm glicht und es Drittanbietern mcube thirdparty erleichtert an der Plattform zu partizipieren Die einzelnen Anwendungen community game und dating werden in sp teren Ab schnitten beschrieben 48 KAPITEL 8 A
139. lichst nicht in km son werden soll dern in Stadt oder Stadttei len angegeben werden k n nen DAT F4 Wurde jemand f r MUSS Wurde die Einladung ab ein Date ausgew hlt gelehnt sollte es f r eine kann er annehmen bestimmte Zeit nicht m g oder ablehnen lich sein den Date Part ner nochmals anzuschrei ben Das verhindert Bel sti gungen DAT F5 Es kann mit dem MUSS Es alle Funktionen Date Partner gechat vom Community Chat tiber tet werden nommen werden DAT F6 Date Partner Suche MUSS Mit allen zuvor eingestellten ausf hren Werten DAT F7 Automatische MUSS Von der Community ber Lokalisierung ein nehmen ausschalten DAT F8 Der User kann noch MUSS Mit vollendeter Registrie nicht registrierte rung dieser Person erh lt der Personen zu mCu User eine hohe Anzahl an be dating einladen Cubies auf sein Konto gut geschrieben DAT F9 Zu einem Treffen MUSS Es werden alternative Treff kann ein Treffpunkt punkte in einer Liste darge gew hlt werden stellt DAT F9 1 Als Beweis dass sich KANN Auf diese Weise kann auch zwei User tats ch jedem User Cubies auf deren lich getroffen haben Konten gutgeschrieben wer muss das Treffen be den st tigt werden DAT F9 2 Cubies am KANN Problem ob man das per In Treffpunkt eingel st frarot an der Kasse oder dem werden Barman oder als TAN oder zugesendetem Gutschein 42 KAPITEL 7 ANFORDERUN
140. llt Als Fazit wurde entschieden empfohlen das System CVS einzusetzen da es frei ver f gbar und zuverl ssig sei Benutzeroberfl chen Die Grundlagen zur Gestaltung von Benutzeroberfl chen und deren Bedeutung f r die Akzeptanz eines Softwareproduktes wurden erl utert Am Beispiel des Dialogdesigns wurden diese abstrakten Regeln erl utert Dabei wurden die Probleme beim Einsatz von mobilen Endger ten gesondert betrachtet Neben einer Darstellung des Entwicklungsprozesses f r grafische Oberfl chen wurde auch kurz auf das Testen der Usability eingegangen 2 1 DIE VORTRAGE 7 Applikationsserver Zun chst wurde die historische Entwicklung und die heutige Notwendigkeit von mehrschichtigen Architekturen erl utert Die einzelnen Schichten wurden einzeln vorgestellt Danach wurde die Technologie von Applikationsservern beschrieben Am Beispiel eines J2EE konformen Servers wurden die M glichkeiten und der Aufbau von Applikationsservern dargestellt Als Fazit wurden die Vorz ge beim Einsatz eines Applikationsservers herausgestellt es wurde aber auch vor einem hohen Einarbeitungsaufwand gewarnt Eine Empfehlung f r einen konkreten Server wurde nicht abgegeben XML basierte Datenaustauschformate Nach einer kurzen Einf hrung in den Auf bau von XML wurde vor allem auf dessen Bedeutung f r den Austausch von Daten und das Thema Web Services eingegangen Da insbesondere L sungen im Banken und im E Commerce Umfeld beschrieben wurden war der
141. llte auf diese Option nicht verzichtet werden Hierf r muss allerdings eine L sung des Datenbank problems gefunden werden 11 8 Anwendung mCube community 11 8 1 Beschreibung Die Komponente mCube community ist die Anwendungskomponente der ersten Schicht auf der die weiteren Anwendungen mCube game mCube dating oder Anwendungen 102 KAPITEL 11 IMPLEMENTIERUNG von Drittanbietern basieren In unserem Schichtenmodell bestehen folgende Abh ngigkeiten von mCube community zu anderen Komponenten nach oben zu den Anwendungen nach unten zu Usermana gement Routing Groupmanagement Locationing Buddychat Neben der Funktion als Plattform fiir andere Anwendungen und der Bereitstellung der anwendungs bergreifenden Dienste des Logins und der Verwaltung der pers nlichen Einstellungen und Daten bietet mCube community eigenst ndige Funktionalit ten wie Verwaltung einer Buddyliste Chat und Nachrichtenaustausch unter Buddies 11 8 2 Realisierung Da es sich bei mCube um komponentenbasierte Entwicklung handelt liegt auch der Schwerpunkt der Realisierung von mcube community auf Enterprise Java Beans An dererseits basiert die Realisierung auf dem Model View Controller Konzept Somit ge schah bei der Implementierung die Einteilung in drei Bereiche Enterprise Java Beans CommandBeans und JSP Enterprise Java Beans CommunityManagementBean CommunityLoginBean und Com munityBaseBean bernehmen als das Kernst ck der Komponente die eigentl
142. ls Markierung benutzt das ist wichtig f r die Weiterverarbeitung Das in Message vorhandene Feld content wird genutzt um den Slogan unterzu bringen 8 2 3 3 M sglicher interner Aufbau Game ist eine Enterprise Java Bean vom Typ Stateless SessionBean Dies ist m g lich da keine Daten in der Bean gehalten werden m ssen Bei jeder Anfrage kann also eine beliebige Bean aus dem Pool verwendet werden was die Performanz gegen ber einer Stateful SessionBean erheblich erh ht Card ist nat rlich eine Enterprise Java Bean vom Typ EntityBean mit Container Managed Persistence das hei t in ihr werden nur Daten gehalten und die Verwaltung der Daten bernimmt der Container UML Klassendiagramm Die Struktur der Komponente mCube Game Gameengine ist in Abbildung 8 8 grafisch dargestellt 8 2 DIE ANWENDUNGEN 69 GameBean meube application game component Game meube application game component GameHlome CardBean mcube application game compone mcube application game compone java lang String ctx SessionContext APPLICATION_NAME String mcube constants Constal CHANNEL_NAME String mcube constants Constants ONLINE USER _GROUP String mcube constants Con USERMANAGEMENT String moube constants Consta usm Usermanagement null COMMUNICATION String mcube constants Constants comm Communication null GROUPMANAGEMENT String mcube constants Consi groupm Groupmanagement null ROUTING Strina mcube
143. m die Buddyliste zu realisieren sind s mtliche Funktionen des FriendsAround Dienstes n tig Matching Komponente Es werden die Funktionen ben tigt um die hnlichkeit zwischen zwei Userpro filen zu errechnen Ebenso die hnlichkeit zwischen zwei Gruppen die aus einer Menge von Usern bestehen 8 2 3 mCube game mCube game ist eine der zwei Beispielanwendungen die f r mCube community er stellt wurde Die Spielregeln sind ausf hrlich im Anforderungskapitel beschrieben und werden daher nicht in dieses Kapitel bernommen Diese Anwendung besteht aus zwei Komponenten GameEngine und Game Auf Game gehen wir in diesem Kapitel ein auf GameEngine im n chsten 8 2 3 1 Beschreibung Game ist eine stateless SessionBean die au er der dem Ausf hren eines Kampfes al le Funktionalit t enth lt Die Kampf Funktionalit t befindet sich in der Komponente GameEngine die in Abschnitt 8 2 4 beschrieben wird Im Folgenden stehe Charakter f r die Spielfigur dieses Spieles Im Hauptbildschirm gibt es einen Link zur Charaktererstellung Sobald man einen Charakter erstellt hat 62 KAPITEL 8 ARCHITEKTUR wird man der Gruppe der Game User hinzugef gt Wird der Charakter gel scht so wird der entsprechende Spieler wieder aus der Gruppe der Game User entfernt Im Hauptbildschirm werden alle eingetragenen Spieler mit Charakternamen Level und Entfernung angezeigt Es gibt folgende Typen von Nachrichten die man von dieser Seite an Spieler senden
144. matisierten Tests werden mit Hilfe des Testing Frameworks JUnit durchgef hrt das das Prinzip des Unit Testings unterst tzt LFO2 Die meisten dieser Tools sind zur Unterst tzung des eXtreme pro gramming Entwicklungsmodells entstanden Bec99 Wir haben jedoch nur die Tools genutzt ohne eXtreme programming als Entwicklungsmodell einzusetzen Mit diesem Tool konnten wir nun die Ergebnisse des Vorgangs automatisch auf ei ner Webseite ver ffentlichen Falls ein Test fehlschl gt geht sofort eine Benachrichti gungsmail an die Teammitglieder Somit werden Fehler schnell entdeckt und die Inte gration der Komponenten wird enorm erleichtert Um sich die Nutzung des Tools vorstellen zu k nnen findet sich in Abbildung 10 1 ein Screenshot von unserer Webseite 84 KAPITEL 10 ENTWICKLUNGSUMGEBUNG Cruise Control CruiseControl neustarten Normaler CC Aufruf CruiseCortrol Logfile Gr sse 1019 31 kBytes Gr sse 1019 301 kBytes Status Running Im Live Server deployen Datum 10 03 2003 10 04 41 Datum 19 03 2003 20 04 46 Befehl Stop View Log Deploytes mcube ear Von CruiseControl erzeugtes mcube ear Weblogic P aktuelle JavaDoc cruisecontrol BUILD COMPLETE 1 77 Date of build 03 16 2003 10 01 06 Time to build 3 minutes 14 seconds Last changed 03 16 2003 01 51 38 Last log entry Neue Rechtschreibung Unit Tests 12 All Tests Passed Modifications since last build 3 modified Mikak endbericht
145. me Nutzung des Pools sollte auch dazu dienen Erfahrungen auszutauschen da beide PGs Bea Weblogic und eine Oracle Datenbank einsetzen Im Folgenden wird die verwendete Software genau beschrieben 10 1 Betriebssysteme F r die Einrichtung einer Entwicklungsumgebung sowie f r den Betrieb der eigentli chen Software musste eine Systemarchitektur entworfen und realisiert werden die ei nerseits den stabilen Betrieb der mCube Software inkl aller daf r notwendigen Dienste wie Application Server Datenbanken Directory Services usw gew hrleistet anderer seits eine performante und sichere Entwicklungsumgebung f r alle PG Mitglieder zur Verf gung stellt Um diese hohen Anspr chen erf llen zu K nnen wurde als Betriebs system f r den PG Server ein Windows 2000 Server installiert und konfiguriert F r die Arbeitsstationen wurde dementsprechend Windows 2000 Professional genutzt Al le Rechner wurden ber ein 100MBit Netzwerk verbunden und der Server ber eine Firewall gesch tzt Damit sich sowohl der Mitglieder der PG 409 als auch die Mitglieder der PG 411 an den Arbeitsstationen anmelden k nnen und die Zugriffrechte klar definierbar sind wurden 2 Dom nen eingerichtet und beide PG Server als PDC mit einem gegenseitigem Trust eingerichtet Mic03 Die jeweiligen User wurden dann in die entsprechende Dom ne der PG gehangen und die Profile serverseitig gespeichert Somit konnte man an jeder Arbeitsstation beim Anmelden die gew nschte Dom ne
146. mit der entwickelten Architektur die an sie gestellten Anforderungen So wohl die Schnittstelle zu den Endger ten als auch die Anbindung an Systeme der Mo 45 46 KAPITEL 8 ARCHITEKTUR bilfunkbetreiber ist offen gestaltet so dass wir problemlos auf verschiedene Techniken reagieren k nnten 8 1 berblick 8 1 1 Architektur Als Technik werden die Programmiersprache Java und die von Sun entwickelten Me thoden der J2EE Java 2 Enterprise Edition Sha01 eingesetzt Dies bedeutet den Ein satz eines Applikationsservers der mit Hilfe von Enterprise Java Beans eine Vielzahl von Anfragen verarbeiten kann Als Schnittstelle zum Endger t sollen haupts chlich die Techniken JSPs und Servlets zum Einsatz kommen die die inhaltliche Struktur ei ner Seite erzeugen Diese inhaltliche Repr sentation wird dann mittels XSLT in eine endger teabh ngige Darstellung transformiert Diese Transformation ist f r den An wender weit gehend transparent Die Architektur der Plattform mCube gliedert sich in mehrere Schichten In Abbildung 8 1 ist diese Struktur die im Folgenden n her beschrieben werden soll dargestellt xHTML WML LBS mCube dating mCube thirdparty mCube community Datenhaltung rel Datenbank LDAP Abbildung 8 1 Struktur der Plattform mCube 8 1 1 1 Die Persistenzschicht Als Persistenzmechanismus benutzen wir sowohl ein Relationales Datenbankmanage ment System RDBMS als auch einen LDAP Server Die Nutzerdaten werde
147. morientierte Softwareentwicklung eines der Hauptziele der Projektgruppe darstellte Au erdem steht dem Leser eine Beschreibung der Installation und ein Benutzerhandbuch zur Verf gung Alles in allem besteht al so die M glichkeit entweder die komplette Entstehung von mCube Schritt f r Schritt nachzuvollziehen oder anhand des Inhaltsverzeichnisses die individuell interessante sten Kapitel auszuw hlen und somit selektiv auf das angebotene Hintergrundwissen zuzugreifen 1 1 Konzepte Im Folgenden erl utern wir kurz welche Konzepte wir zusammengef hrt haben und was unser System enth lt und erm glicht 1 1 1 Ortsbasierte Dienste LBS Ortsbasierte Dienste sind f r mobile Endger te konzipiert Die geografische Position des Anwenders wird benutzt um bekannte Dienste aufzuwerten oder auch neue an zubieten Nor01 Voll genutzt werden k nnen diese Dienste erst mit mobilen Endge r ten die eine genaue Ortung erlauben Im Zuge der bevorstehenden Einf hrung von UMTS wird die Ortung zunehmend genauer KAL 01 Aber auch mit der bisherigen Ortungsgenauigkeit sind schon viele ortsbasierte Dienste m glich 1 1 2 Online Communitys Eine Community ist durch eine many to many Interaktion von Benutzern mit gemein samen Interessen ausgezeichnet Eine Online Community bietet diesen Benutzern gr tenteils computergest tzte Interaktionsm glichkeiten wie Chatrooms Message Boards E Mails und Sofortnachrichten Int01 Zus tzlich gibt es
148. mpilieren und im Server zu deployen um sie schlie lich benutzen und testen zu k nnen entstand bei uns der Wunsch diesen Vorgang zu ver einfachen und zu automatisieren Der Vorgang Enterprise Java Beans zu erstellen und zu deployen teilt sich in folgende Schritte 10 4 ENTWICKLUNGS WERKZEUGE 83 Remote Interface Home Interface und Bean Implementierungsklassen erzeugen und konsistent halten Deployment Deskriptoren erzeugen Beans zusammen mit den Deployment Deskriptoren in eine jar Datei packen e JNDI Namen und Classpath so konfigurieren dass sich alle Beans untereinander ansprechen und benutzen k nnen und auch die Webanwendungsschicht Zugriff auf die Beans hat e Alle Beans und die Webanwendung gemeinsam in den Server deployen Da wir f r den Entwurf unsere Komponenten mit dem Softwaretool Together erstellt hatten begannen wir mit diesem Tool auch die Erstellung und Implementierung der Beans Das Programm bot uns gute Hilfestellung und Validierungstools zum Erstellen der Interfaces und der Deskriptoren Uns fehlte also noch eine Automatisierung der Schritte 3 5 F r die restlichen Schritte fanden wir als L sung eine Kombination aus den beiden Open Source Tools Ant und CruiseControl Ant TB02 ist ein Projekt der Apache Foundation die auch den Apache Webserver entwickelt und pflegt Weitere Informationen und Downloads zu diesem Tool findet man auf der Projekthomepage unter http ant apache org Ant ist ein Java basiertes Bui
149. n e Die Komponenten der core Schicht befinden sich im Package mcube core xxx wobei xxx f r den Namen der Komponente steht Die Anwendungen befinden sich im Package mcube application xxx wo bei xxx f r den Namen der Anwendung steht Als Unterpackages existieren hier noch mcube application xxx component mcube application xxx gui und mcube application xxx servlet f r die Model View und Con troller Schichten Das Package mcube util beherbergt Hilfsklassen die im gesamten Projekt re levant sind also beispielsweise Klassen zum Austauschen von Daten mcube util interface enth lt Interfaces die im gesamten Projekt relevant sind na t rlich nicht die EJB Interfaces 8 2 Die Anwendungen 82 1 mCube community 8 2 1 1 Beschreibung Die Community Komponente bildet die grundlegende Anwendung der mCube Platt form Die von ihr dargestellte Grafik sieht der Nutzer bei jedem Login zuerst Von ihr aus k nnen weitere Anwendungen gestartet werden Die Komponente bietet Ba sisdienste wie Chatten FriendsAround und Administrationsdienste an Die Integration der anderen Anwendungen soll sehr eng sein Dies wird zum einen dadurch erreicht 52 dass ei KAPITEL 8 ARCHITEKTUR n Teil der Oberfl che erhalten bleibt egal welche Anwendung gerade l uft In diesem Bereich werden Statusmeldungen wie eingegangene Nachrichten und Naviga tionselemente angezeigt Hier ist immer ein Wechsel zur Community m glich notfalls wird ein
150. n Date gen Bereichen bestehen wie Partners anle u ere Erscheinung Cha gen andern Falls rakter Interessen man jemanden sucht der einem selbst nicht hnlich ist DAT F1 3 Die Items in den KANN Das erleichtert den Abgleich Profilen sollten von Profilen und die Rankin vorgegeben und aus gerstellung einer Combobox gew hlt werden k n nen So k nnte das Date Partner Profil nur aus Angaben gr Ber kleiner j nger lter bestehen DAT F1 4 In den Profilen kann MUSS Um auch Personen suchen Freund oder Partner zu k nnen mit denen man gew hlt werden keine sexuelle Beziehung anstrebt DAT F1 5 In das eigene Pro KANN fil kann ein Foto hochgeladen oder aus einer Menge charakterbeschrei bender Comic Bilder ausgew hlt werden DAT F2 Es gibt eine Dating KANN Hier werden im Dating regi Liste strierte User aufgelistet 7 4 ANFORDERUNGEN SUBSYSTEM MCUBE DATING 41 DAT F2 1 Der User kann seinen KANN So hat der User auch die Date Partner aus der Freiheit manuell zu w hlen Liste w hlen anstatt Schwierig k nnte die Auf ihn suchen zu lassen listung inklusive der Eigen schaften sein DAT F2 2 Man kann seine ei KANN Diese kann angelehnt wer gene Buddyliste an den an ICQ oder MSN Mes legen um potenzielle senger Date Partner zu sam meln DAT F3 Bereich ausw hlen MUSS Die Bereichsangabe sollte in dem gesucht m g
151. n des Browsers benutzt werden 13 3 3 1 Partner lokalisieren Um die Position eines Benutzers ausfindig zu machen klickt man in irgendeiner Benut zerliste auf seinen Namen Das kann die Buddyliste siehe oben die Ignoreliste siehe 13 3 4 Benutzer verwalten oder auch die Ergebnisliste der Partnersuche sein Wenn man auf einen Benutzernamen klickt werden dessen Profildaten angezeigt Im Men erscheint dann der zus tzliche Punkt Lokalisieren Diese Funktion arbeitet nur dann wenn die eigene Lokalisierung und die der anderen Person zugelassen sind Informa tionen dazu finden sich in der Community Anleitung siehe 13 1 Community Wenn die Lokalisierung erfolgreich war wird die Position des anderen Benutzers relativ zur eigenen angezeigt Achtung diese Anzeige wird nicht automatisch aktualisiert 13 3 4 Benutzer verwalten F r den Fall dass ein Benutzer nicht mehr auf der Buddyliste gew nscht wird kann er auch wieder gel scht werden Die Buddyliste bietet bei jedem Eintrag f r einen Benut zer zwei Kn pfe an Der Knopf unter der berschrift l schen entfernt den betreffen den Benutzer wieder von der Liste ohne nachzufragen Soll ein Benutzer nicht blo gel scht sondern sollen in Zukunft auch keine Nachrichten mehr von ihm empfangen werden so w hlt man den Knopf unter blocken Benutzer blocken l schen alice Abbildung 13 41 Die Optionen der Buddyliste Partner ignorieren Eine Person die
152. n in der LDAP Datenbank gespeichert weitere Daten wie Nachrichten oder Buddylisten wer den in einer relationalen Datenbank gehalten Der LDAP Server stellt bereits wichtige Funktionen zur Verwaltung von Nutzerdaten zur Verfiigung eine relationale Daten bank bietet uns dar ber hinaus volle Flexibilit t und hohe Leistung bei der Verwaltung beliebiger sonstiger Daten Die unterschiedlichen Persistenzmechanismen sind nach au en nicht sichtbar Alle not wendigen Funktionen zur Speicherung und Manipulation von Daten werden von Kom ponenten der core Schicht zur Verf gung gestellt 8 1 UBERBLICK 47 8 1 1 2 mCube core Die unterste logische Schicht bilden einige Komponenten die gemeinsam den Titel mCube core tragen Sie bieten alle Funktionen die die Anwendungen ben tigen um ihre spezifizierten Anforderungen zu erfiillen Diese Komponenten bilden daher den Kern des Projektes mCube auf dem alles aufsetzt Ihre Struktur ist in Abbildung 8 2 dargestellt Friends Kommuni Locales User kation Matching Gruppen User Logging management management log4j Dienste von Mobilfunkbetreibern Abbildung 8 2 Struktur mCube core Die Anwendungen die Dienste jeder Komponente aus der core Schicht direkt nutzen Wir haben uns gegen den Einsatz einer Fassade entschieden also einer zu s tzlichen Schicht die oberhalb der core Komponenten liegt Anfragen an diese ent gegennimmt und diese dann an die einzelnen Komponenten weiter
153. n und Konzepten f r die nahe Zukunft der mobilen Telekommunikation was dadurch verdeutlicht wird dass einige Features von mCube mittlerweile von den gro en Unternehmen der Branche f r den breiten Markt realisiert wurden oder sich in der Planungsphase befinden Eine besonders wichtige Rolle spielen in diesem Kontext ortsbasierte Dienste da sie v llig neue Angebote offe rieren und zugleich die neuen technischen M glichkeiten der 3 Generation der mobilen Telekommunikation aussch pfen Zu diesen neuen M glichkeiten z hlen vor allem die verbesserte Daten bertragungsrate sowie die viel genauere Ortung von Mobilfunkteil nehmern Dadurch entsteht eine gegenseitige Abh ngigkeitsbeziehung da zum einen die neue Technik bessere ortsbasierte Dienste erm glicht und im Gegenzug diese Dien ste einen Anreiz zur Nutzung der neuen Technik mit der immense Kosten verbunden sind schaffen m ssen Aus dieser Problematik wird ersichtlich welche entscheiden de Rolle Systeme wie mCube spielen und warum sie ben tigt werden Diese Systeme bilden eine Grundlage der zuk nftigen mobilen Telekommunikation weil sie v llig neue Anwendungen generieren und dadurch neue M glichkeiten schaffen Von ihrem Erfolg und ihrer Marktakzeptanz h ngt deshalb auch zu einem gro en Teil der Erfolg der 3 Generation der mobilen Telekommunikation ab mCube realisiert dabei nicht nur einen dieser erfolgversprechenden innovativen ortsabh ngigen Dienste sondern erforscht in welc
154. nd die Himmelsrichtung zwischen zwei schon bekannten Positionen ermitteln zu k nnen was eine Anforderung der Dating Komponente darstellte Dies ist ein Indiz f r die problemlose Erweiterbarkeit der Komponente und ihr erfolgreiches Wachsen w hrend des Entwicklungsprozesses der Hand in Hand mit der Entwicklung der grundlegenden Locationing Komponente erfolgte was von gro em Vorteil war 11 4 4 Verbesserungs und Erweiterungsm glichkeiten Die Routing Komponente enth lt alle grundlegenden Berechnungs und Zugriffsme thoden um anspruchsvollere Methoden erfolgreich darauf aufsetzen zu k nnen Ein Beispiel ist hierbei die Ermittlung eines Objektes als geeigneten Treffpunkt Durch Kombination all dieser Methoden w re es denkbar ein zielgerichtetes Routing zu ent wickeln das nach Ermittlung von Position und Treffpunkt f r zwei User diese sukzes sive zu diesem Treffpunkt lotst Dies k nnte einfach durch st ndig neue Positionsbe stimmung der User und darauf basierender Neuberechnung der relativen Positionsda ten erfolgen Es ist ferner denkbar diese Daten dann mit Kartenmaterial zu kombinie ren und auf einem mobilen Endger t somit ein Navigationssystem zu schaffen wie es aus Automobilen bereits bekannt ist Dazu w ren allerdings das Know how und die Schnittstelle eines Telekommunikationspartners n tig gewesen was uns leider nicht in vollem Umfang zur Verf gung stand Somit mussten wir uns auf die Implementie rung der Grundlagen besch
155. nd oder JSP Seiten zu Diese Beans nutzen die Methoden der Fassaden und implementieren darauf aufbauend weitere f r die Komponente notwendige Logik Daneben existieren Hilfsklassen die zum Austausch von Daten ben tigt werden Eine bersicht ber den Aufbau gibt das UML Klassendiagramm in Abbildung 8 6 UML Klassendiagramm Die Struktur der Anwendung mCube community istin Ab bildung 8 6 grafisch dargestellt 8 2 1 4 Anforderungen an andere Komponenten Die Community Komponente nutzt fast alle Bereiche von mCube core 8 2 DIE ANWENDUNGEN 55 SessionBean CommunityApplicationintegratio mcube application community compone mcube application community compone SessionBean CommunityManagementBean mcube application community component Community mcube application community component Community SessionBean CommunityBaseBean mcube application community comp mcube application community comp ctx SessionContext setSessionContext void ejbActivate void ejbPassivate void ejbRemove void logger Logger ctx SessionContext EJB_USERMANAGEMENT String usmHome UsermanagementHome EJB_COMMUNICATION String comHome CommunicationHome EJB_GROUPMANAGEMENT String gmHome GroupmanagementHome ejbCreate void swapApplicationin Object swapApplicationOut void getlconsToBeShown LinkedList islconShown boolean setSessionContext void ejbActivate void ejbPassivat
156. nden Klassen e top e person e organizationalPerson e inetOrgPerson e mcubeprofile Um zuordnen zu k nnen welche Attribute zu einem bestimmten Profil geh ren z B alle Attribute des Profils Dating gibt es einen separaten Container mCubeContai Dieser enth lt ein Objekt der Klasse mcubeprofiledefinition pro Profil Diese Objekte enthalten ein Attribut profilattributes in dem sich mehrere Eintr ge befin den n mlich die Namen exakt der Attribute eines Users die zu einem Profil geh ren Das sieht dann zum Beispiel wie folgt aus 78 cn Community ou M CubeContainer dc mcu dc be profilattributes sn KAPITEL 9 TECHNISCHE INFRASTRUKTUR profilattributes profilattributes profilattributes profilattributes profilattributes profilattributes profilattributes profilattributes profilattributes profilattributes profilattributes profilattributes profilattributes profilattributes profilattributes profilattributes profilattributes profilattributes cn givenName mobile profiles birthdate city cubies description email friendsaroundlist isLoggedIn is Validated plz positioningallowed sex street telephoneNumber logintype objectClass top objectClass mcubeprofildefinition Die oben aufgef hrten Attribute profilattributes sind also exakt die Attribute die zum Profil Community geh ren Eine weitere
157. ng F r die core Komponenten ging es darum die Anbindung an die von T Mobile bereit gestellte Location Based Services API zu realisieren Daf r wurde eine neue Klasse entwickelt die sich mit einer SSL gesicherten http Verbindung mit dem T Mobile Server verbinden kann um die Lokalisierungsdaten von dort abzurufen Wir haben die Implementierung dann mit dem vollendeten zweiten Inkrement abge schlossen obwohl zun chst drei Inkremente geplant waren Der Grund daf r ist dass die Komplexit t der einzelnen Inkremente an die sich immer auch noch eine Verbes serungsphase angeschlossen hat gr er war als es bei drei Inkrementen realisierbar gewesen w re Eine Einteilung in Inkremente geringerer Komplexit t h tte dazu ge f hrt dass nicht alle Teilnehmer immer etwas zu jedem Inkrement h tten beitragen k nnen und w re damit dem Charakter der Projektgruppe als Lehrveranstaltung nicht gerecht geworden 4 7 Testen An die Implementierung hat sich eine umfangreiche Testphase angeschlossen F r die Anwendungen wurden Testlisten erstellt in denen jeweils die Aktion und das gew nschte Sollergebnis eingetragen waren Dann haben jeweils Personen die nicht in die jeweilige Implementierung involviert waren die einzelnen Testf lle durchgespielt und das jeweilige Ergebnis in die Testlisten eingetragen Daraufhin wurden soweit n tig Verbesserungen vorgenommen bis alle Testf lle erwartungsgem verliefen Die core Komponenten wur
158. ng berechnet werden Dabei werden die Positionsdaten immer ausgehend von User ermittelt also definiert direction beispielsweise die Himmelsrichtung in die Userl gehen m sste um zu User2 zu gelangen Des Weiteren verf gt ein Objekt vom Typ RelativePosition ber die blichen Set und Get Methoden 94 KAPITEL 11 IMPLEMENTIERUNG Fiir die Berechnung der relativen Positionsdaten stehen jeweils drei verschiedene Me thoden zur Verfiigung Eine berechnet die Distanz den Winkel oder die Himmelsrich tung zwischen zwei Usern deren IDs sowie eine Festlegung des QualityofService tibergeben werden die zweite fiihrt die Berechnung fiir zwei bereits bekannte Posi tionen die als Parameter tibergeben werden durch und die dritte Methode ermittelt die relativen Positionsdaten zwischen einem User dessen ID bergeben wird und ei ner ganzen Gruppe von Usern deren IDs in Form einer LinkedList bergeben werden Auch hier wird ein Wert f r QualityofService mitgegeben der definiert wie aktuell die Positionsdaten der User sein m ssen Beispielsweise kann so definiert werden ob die Ortung eines Users neu durchgef hrt werden muss oder ob auf etwas ltere Positi onsdaten zur ckgegriffen werden kann N heres dazu findet sich in der Beschreibung der Locationing Komponente die diese Funktionalit t implementiert und generell f r die Ortung von Usern verantwortlich ist Allen Methoden ist jedoch gemeinsam dass sie jeweils die private Methode createRe
159. ngs void Diese Methode tauscht die angegebenen Items zwischen den Usern deleteCharacter userID String void Der Charakter des Users wird gel scht Dazu wird das Game Unterprofil ent fernt 8 2 DIE ANWENDUNGEN 67 createCharacter userID String typeOfCharacter String characterName String void Der User erstellt einen neuen Charakter Dazu wird ein Game Unterprofil erstellt und das alte gegebenenfalls gel scht removeForbiddenCards userID String cards List of Strings List of Strings Aus der bergebenen Liste werden alle Karten entfernt die der Charakter des bergebenen Spielers nicht benutzen darf Die erhaltene Liste wird zur ckge geben Beim Entfernen der Karten werden folgende m gliche Einschr nkungen beachtet Die Anzahl von tragbaren Karten eines Typs ist vorgegeben So kann der Charakter nur eine R stung tragen zwei Ringe und eine Kette Sind mehr dieser Items in der Liste so ist false zur ckzugeben Die Karten k nnen auf bestimmte Charaktertypen beschr nkt sein das ist auch zu berpr fen Die Karten k nnen auf bestimmte Eigenschaftswerte beschr nkt sein zum Beispiel St rke gt 6 auch das ist zu berpr fen setMaxDistance userID String int maxDistance void Mit dieser Methode kann die vom Spieler gew nschte maximale Distanz von Spielern eingestellt werden die online sind setUsualCards userID String usualCards List of Strings void Mit dieser Methode k nnen die Voreinstellun
160. nicht mehr einsetzbar List of Strings weaponCards Waffenkarten des Charakters aus diesen kann sich der Charakter in jeder Kampfrunde eine aussuchen List of Strings itemCards brige Karten des Charakters aus diesen kann sich der Charakter eine bestimmte Anzahl zum Anfang eines Kampfes aussuchen die dann den ganzen Kampf ber gelten R stungen Amulette usw List of Strings usualCards Diese Karten sind eine Untermenge von itemCards die als Voreinstellung dienen zum Beispiel Ritterr stung Amulett Zauberring String characterType Typ des Charakters Elf Magier Barbar oder Paladin int intelligence Die Intelligenz des Charakters int strength Die St rke des Charakters int constitution Die Konstitution des Charakters int dexterity Die Geschicklichkeit des Charakters int numberOfImproves Die Anzahl der Steigerungen die ein Charakter noch ausf hren darf List of Strings battleHistory Eine Historie der K mpfe des Charakters zumin dest mit Gegner und Ausgang int maxDistance Die maximale Distanz die ein anderer Online Spieler noch haben kann um in der Liste des Spielers angezeigt zu werden Die Speicherung der Karten Die Daten der Karten werden in Extratabellen gespei chert die zu mCube game und mCube game gameEngine geh ren sie werden in bei den Beans ben tigt so dass die Strings die in den Listen stehen eindeutige Referen zen auf die Karten bilden Allgemeine Daten String
161. nkrementstufen wurden TAGS gesetzt so dass der entsprechende Prototyp Stand jederzeit schnell wiedergewonnen werden konnte Am Anfang jeder Datei wurde folgender Kommentar Kopf eingef gt Der TAG Log wird beim Auschecken durch die gesamte History des Dokuments ersetzt inklusive Revisionsnummer Datum des letzen Eincheckens und Namen des Benutzers sowie dessen Kommentar Beispiel einer History Datei Dateiname java Letzter Bearbeiter Author LarsH Projektgruppe 409 Universit t Dortmund mCube Mobile Community for UMTS Based Entertainment Revision 1 5 2003 03 22 16 43 03 mariokn Zitate hinzugef gt Revision 1 4 2003 03 16 14 52 28 Neue Rechtschreibung Revision 1 3 2003 03 05 16 49 24 SebastianR Beispielcode in verbatim Umgebung verpackt Revision 1 2 2003 03 03 08 43 07 mariokn kleine Verbesserungen Revision 1 1 2003 03 02 19 17 29 mariokn initial 5 3 JAVADOC 19 5 3 JavaDoc Von dem Source Code soll mit JavaDoc Sun eine st ndig aktuelle dokumentierte API generiert werden k nnen Dazu m ssen im Code bestimmte TAGS eingef gt werden Sie beschreiben die Funktionen der Klassen und Methoden zeigen den Autor und die aktuelle Version Wir halten uns an die von Sun definierten TAGS f r JavaDoc 1 3 F r den ersten Prototypen wurde dieses Vorgehen allerdings vernachl ssigt da im Vor dergrund das Erkennen und Beseitigen von sp teren Problemen stand Au er
162. nline Playern hinzugef gt Ab jetzt wird er bei den anderen Spielern angezeigt removePlayerFromOnlinegroup userID String void Wird die Applikation beendet wird er wieder entfernt getDistance userID1 String userID2 String int Gibt die Entfernung zwischen zwei Usern zur ck Wird ben tigt f r die Anzeige im Hauptbildschirm getDirection user1ID String user2ID String String Gibt die Richtung zur ck in die user2 im Verh ltnis zu Userl steht Wird ben tigt f r die Anzeige im Hauptbildschirm sendBattleInvitation fromUserID String toUserID String slogan String void Sendet eine Kampfaufforderung Erl uterung siehe Beschreibung slogan ist da bei eine Textnachricht an den aufgeforderten Spieler geschrieben vom Heraus forderer sendTradeOffer fromUserID String toUserID String slogan String offe redCards List of Strings wantedCards List of Strings void Sendet ein Tauschangebot Erl uterung siehe Beschreibung sendMessage fromUserID String toUserID String slogan String void Sendet eine Standardtextnachricht addUsualCard userID String card String void Zu den Basiskarten des Charakters des bergebenen Benutzers wird die berge bene Karte hinzugef gt removeUsualCard userID String card String void Aus den Basiskarten des Charakters des bergebenen Benutzers wird die ber gebene Karte entfernt tradeltems user1ID String user2ID String itemsOfUser1 List of Strings itemsOfUser2 List of Stri
163. noch Interesse und Engagement hinzu da es f r manche Rollen schlicht weg keine Experten gab Die festen und dauerhaften Rollen sind Projektmanagerin Miriam Lindhorst System Administrator Nils Gantef hr Lars Heide Qualit ts manager Mario Kleine Nathland Marketingexpertin Anna Feldgun und Archi tekt Tobias Flohre Sebastian Ridder Daniel Pieper Christian Lambert Vor berge hende Rollen waren UMTS Experte Mika Kossmann Lars Littig Youssef Khlifi und GUI Designer Tobias Haltermann Mario Kleine Nathland Hinzu kommt die Rolle Entwickler die prinzipiell jeder inne hat Neben diesen Rollen wurden meist Kleingruppen bzw Kleinstgruppen gebildet die Arbeiten bernommen haben 2 Seminarphase Zu Beginn des Projektes wurde eine Seminarphase durchgef hrt innerhalb derer je zwei Personen einen Vortrag zu einem vorgegebenen Thema ausgearbeitet und w h rend eines gemeinsamen Seminarwochendes vorgestellt haben Die Seminarphase wur de zusammen mit der PG 411 durchgef hrt die sich mit dem Thema E Bill Present ment befasst Ziel der Seminarphase war es f r den weiteren Verlauf der PG wichtige Themen zu er arbeiten und die Teilnehmer auf einen gemeinsamen Wissensstand zu bringen Dar ber hinaus erfolgte die erste konkrete Formulierung unserer Projektidee und eine Auftei lung der Teilnehmer in Rollen 2 1 Die Vortr ge Die Themenwahl orientierte sich an
164. noch Suchm glichkeiten nach Benutzern mit gleichen oder hnlichen Interessen Dadurch sind die Benutzer in der Lage andere Benutzer mit gleichen Interessen zu finden und mit ihnen zu inter agieren 1 1 3 Mobile Community mit ortsbasierten Diensten Unser Ansatz ist es nun die Vorz ge von Online Communitys und ortsbasierten Diensten miteinander zu verbinden Es gibt viele ortsbasierte Dienste die gerade in many to many Interaktionen Sinn haben Dazu z hlt zum Beispiel die Anzeige befreundeter Per sonen in geografischer N he Andersherum ist es ein Mehrwert f r eine Online Com munity auf mobilen Endger ten Ortsinformationen bieten zu k nnen Zudem bietet eine Community eine optimale Plattform f r ortsbasierte Dienste mCube community bietet dem Benutzer die Grundfunktionalit ten einer Community sowie Ortung von Universal Mobile Telecommunications System 1 2 ZIELE DER PROJEKTGRUPPE MCUBE 3 befreundeten Personen Eingabe und Abgleich von Profilen Kommunikation und orts basierte Interaktion Durch den komponentenbasierten Aufbau wurden die Vorausset zungen geschaffen damit die Community als Plattform f r Anwendungen dienen kann Diese Anwendungen k nnen dann auch von Fremdanbietern stammen und die Basis dienste nutzen 1 1 4 Die zus tzlichen Anwendungen mCube dating Die Dating Anwendung basiert auf den bekannten und akzeptierten Eigenschaften eines Dating Services und erweitert diese um innovative Features Die gr
165. ntwicklung eine Versionskontrolle durchf hren zu k nnen ben tigt die Gruppe ein Versionsverwaltungssystem CVS ist frei erh ltlich und unterst tzt Cli ent Server basierte Versionskontrolle Es gibt eine Version f r Windows NT so dass wir dieses System auf unserem zentralen Server einsetzen k nnen Clients sind f r verschiedene Betriebssysteme vorhanden z B WinCVS f r Windows 10 4 3 Together 6 0 Um den objektorientierten Entwurf unseres Projekts zu unterst tzen kam f r uns nur die objektorientierte Entwurfsmethode auf Basis von UML infrage Together J erwies sich hier als perfektes Tool In den neuen Versionen wurde die Entwicklung von EJBs immer st rker unterst tzt Daher ist es neben dem Entwurf auch unsere bevorzugte Entwicklungsumgebung f r die Enterprise Java Beans Aus den Komponentenmodel lierungen haben wir direkt die Java Klassen erzeugt und weiterbearbeitet Insbesondere die Hilfe bei der Erstellung der XML Deskriptoren erwies sich als sehr hilfreich 10 4 4 Bea Weblogic Console Builder 7 0 Da Together in der von uns genutzten Version 6 0 leider nicht die zus tzlichen her stellerabh ngigen XML Deskriptoren f r den Bea Weblogic 7 0 erzeugen kann sind wir zus tzlich auf das Deploytool von Bea angewiesen um die letzten Einstellungen an den Beans vorzunehmen 10 4 5 Buildprozess mit Ant und CruiseControl Durch den im Vergleich zu normalen Java Komponenten recht komplizierten Vorgang eine EJB Komponente zu ko
166. nwendungen miissen eine Methode swapApplicationOut userID String Object implementieren die von der Community Komponente aufgerufen wird Ziel ist es der Anwendung mitzutei len dass sie keine Aktionen f r den Nutzer ausf hren kann bis sie wieder aktiv geschaltet wird Das Objekt state und das von der Komponente zur ckgege bene Objekt werden gespeichert und beim Reaktivieren der Komponente wieder bergeben Gleichzeitig kann die Community Komponente ihren Zustand spei chern um bei der Reaktivierung den alten Zustand wieder herstellen zu k nnen Die Methode ist eine Chance f r die Komponente sich auf die Deaktivierung einzustellen Die Community Komponente bernimmt auf jeden Fall die Vor herrschaft und zeichnet ihre GUI Dieser Mechanismus ist voraussichtlich hoch kompliziert im Einsatz und sollte nicht ber mehrere Ebenen hinweg genutzt werden swapApplicationIn userID String componentID String Object Einer angehaltenen Anwendung wird mitgeteilt dass sie wie der laufen kann Diese Komponente muss dazu die Methode swapApplicationIn userID String state Object void implementie ren Ihr wird mitgeteilt dass sie wieder Aktionen mit dem Nutzer durchf hren kann Ein eventuell bergebenes Objekt wird ihr wieder zur ckgegeben 8 2 1 3 Interner Aufbau der Komponente Es existieren vier SessionBeans je eines f r die Bereiche Login Verwaltung Basis dienste und Anwendungsintegration Auf diese Beans greifen ein Servlet u
167. nwendungen und soll einfach in gr e ten daher auch weiterhin Anwendungen genutzt werden k nnen einzubetten sein COM N2 Ein Verbindungsab KANN Da Verbindungsabbr che bruch darf nicht zum bei Einf hrung von UMTS Abbruch eines kom nicht auszuschlie en sind plexen Anwendungs muss besonders darauf falls f hren geachtet werden welche Aktionen abgebrochen und welche aufrechterhalten werden sollten COM N3 Die Konten der elek KANN Heikler Punkt insbesonde tronischen W hrung re wenn Partner Geld damit d rfen nicht manipu verdienen wollen lierbar sein COM N4 Die Darstellung MUSS s mtlicher Inhalte muss sowohl auf einem mobilen End ger t als auch in einem Webbrowser m glich sein 7 2 3 Schnittstellenanforderungen Anf Name Aufgabenstellung Typ Begr ndung Anmerkung COM S1 Die einzelnen Dien ste m ssen Schnitt stellen anbieten um in komplexeren An wendungen wieder verwendet werden zu k nnen Diese Schnittstellen lassen sich bei allen Kom ponenten einheitlich verwenden MUSS Schl sselanforderung um eine Plattform zu schaffen in der weitere Anwendungen entstehen k nnen 32 KAPITEL 7 ANFORDERUNGSANALYSE COM S2 Der Routing Dienst MUSS ben tigt Informatio nen vom Location Server des UMTS Netzes muss also die dort definierte Schnittstelle nutzen 7 3 Anforderungen Subsystem mCube game Die K
168. ode wird das Request und der Name der Action bergeben Jetzt k nnen im CommandBean Busi ness Logik ausgef hrt und Werte in das Request geschrieben werden Hier werden auch die EJBs angesprochen 4 Nachdem die execute Methode ausgef hrt ist ber pr ft das Servlet ob das CommandBean eine Nachfolge Action gesetzt hat 3 Es ist also m glich direkt auf die Bearbeitung einer Action eine weitere Action durchf hren zu lassen Ist eine Nachfolge Action gesetzt so holt sich das Servlet wieder das ent sprechende CommandBean initialisiert es und ruft dessen execute Methode auf Theo retisch kann das ber sehr viele Stationen so laufen Wenn irgendwann keine Nachfol ge Action mehr gesetzt sein sollte sieht das Servlet im xml Konfigurationsfile f r die letzte aufgerufene Action nach 5 auf welche URL sie verzweigt und ruft diese auf 6 In der JSP werden nun eventuell Daten aus dem Request ausgelesen und in eventuell vorhandene Felder gesetzt Daten f r die JSPs k nnen auch von den CommandBeans in den SessionContainer geschrieben werden 4b Dieser dient zum Datenaustausch 50 KAPITEL 8 ARCHITEKTUR von Daten die fiir mehrere JSPs gelten AuBerdem ist noch zu sagen dass eine Action nicht auf ein CommandBean zeigen muss Ist der Eintrag fiir das CommandBean nicht vorhanden wird direkt die fiir die Action angegebene URL aufgerufen Die gef llte JSP Seite wird anschlie end zum Browser zur ckgeschickt 8a Dieser Response ent h lt
169. ommunity 8 2 2 mCube dating 8 2 2 1 Beschreibung und Workflow Diese Komponente setzt auf der Community Plattform mCube auf Die ben tigten Funktionen werden durch den Zugriff auf die Fassade die auch Grundlage der Com munity ist realisiert Mit der Absicht jemand anderen zu treffen k nnen Such Profile erstellt werden wo nach unter allen mCube dating Usern gesucht werden kann Dabei wird das passendste Profil in der n heren Umgebung gesucht Man kann auf diese Weise User aussuchen und in einer eigenen Buddyliste speichern 56 KAPITEL 8 ARCHITEKTUR und kontaktieren Das geschieht ber eine Nachricht asynchron oder ber einen Chat synchron Um sich mit diesem User zu treffen k nnen Orte in der Umgebung gesucht werden Im Folgenden werden die verschiedenen Workflows zu den m glichen Funktionen be schrieben Einige der unten aufgelisteten Methoden k nnen fast unver ndert an die core Kompo nenten weitergeleitet werden Login Registrierung Um sich bei einer auf der Community basierenden Anwen dung einzuloggen muss man notwendigerweise einen Account in der Community ha ben Diese Accountdaten werden als Default Werte f r den Login bei mCube dating verwendet k nnen aber vom User bei der Registrierung ge ndert werden Beim fehl geschlagenen Login erh lt der User die Aufforderung zur Registrierung Bei der erstmaligen Registrierung muss der User erg nzende Profildaten zum Commu nity Profil eingeben Dies
170. omponente mCube game realisiert den Gedanken eines Trading Card hnlichen Spiels aufsetzend auf den in Absatz 3 beschriebenen Community Funktionalit ten 7 3 1 Voraussetzungen Vorausgesetzt wird die vollst ndige Implementierung folgender Funktionalit ten des mCube Systems e Anzeige spielbereiter Teilnehmer unter Angabe derer Entfernung MUSS e Verwaltung von Profilen inkl game relevanter Daten MUSS An die Darstellung unter game werden folgenden Voraussetzungen gestellt e Existenz eines Hauptbildschirms der den Ausgangspunkt bei Wechsel in den Spielmodus aus der Community heraus darstellt e Existenz eines Spielbildschirms der alle Funktionalit ten eines laufenden Spiels darstellt e Existenz eines Kartenbildschirms der zur Darstellung aller verwaltungsspezifi schen Funktionalit ten bez glich des Kartensatzes eines Users dient 7 3 2 Spielregeln Spielcharaktere besitzen vier Grundeigenschaften e Konstitution e Geschicklichkeit e St rke e Intelligenz Es existieren verschiedene Grundcharaktere die sich in der Verteilung von anf ng lich insgesamt 20 Punkten auf oben genannte Grundeigenschaften sowie in der Anzahl und Art der ihnen zu Verf gung stehenden Aktionen unterscheiden Gek mpft wird rundenbasiert solange bis die Anzahl der erlittenen Treffer die Anzahl der dem Charakter zu Verf gung stehenden Schadenspunkte bersteigt Die Scha denspunkte errechnen sich nach der Formel Schadenspunkte 5 K
171. onnten waren wir auf Anbindung angewiesen Leider hat diese im Zeitrahmen der Projektgruppe nicht vollst ndig klappen k nnen was allerdings externe Gr nde hat Allerdings l sst dies viele M glichkeiten f r eine k nftige Weiterf hrung der geleisteten Arbeit zu Die Arbeit und das Klima in der Projektgruppe waren sehr gut Dies l sst sich nat rlich auch darauf zur ckf hren dass ein gro er Teil der Teilnehmer sich schon vorher kann te Zu gr eren Differenzen innerhalb der Projektgruppe kam es nicht Entscheidend hierf r war aber wohl auch dass das Leistungsniveau der Teilnehmer hnlich ist Auf Grund der hnlichen und guten Voraussetzungen gab es auch kaum Zeitverzug bei den Softwareinkrementen Insgesamt hat die Zeitplanung also vor allem auch wegen der Teilnehmer gut funktioniert Die Zuteilung von Rollen war in den meisten F llen sinnvoll Entgegen der urspr ngli chen Planung war es nicht n tig die Rollen zu rotieren Dies lag daran dass die Rollen weder ausgenutzt noch fehlbesetzt wurden Das Erlernen von Projektarbeit ist als Ziel erreicht worden Dies l sst sich auch daran festmachen dass viele Kleingruppen eigenst ndig entwickelt haben und die Zusam mensetzung zu einem Gesamtprodukt keine Probleme machte Des Weiteren wurden die gestellten Anforderungen ohne gro en Zeitverzug erreicht und die Kompetenzen der Rollenzuteilung gr tenteils eingehalten Auch wenn ein Projekt in der Wirtschaft naturgem andere
172. onstitution Vor 7 3 ANFORDERUNGEN SUBSYSTEM MCUBE GAME 33 Charakter Konstitution Geschicklichkeit St rke Intelligenz Elf 3 T 4 6 Magier 3 6 3 8 Barbar T 3 7 3 Paladin 4 5 6 Tabelle 7 4 Initiale Punkteverteilung Charaktere der Ausfiihrung eines Zuges gibt der Spieler an wie offensiv defensiv seine Akti on ausgef hrt werden soll Dazu w hlt er den Offensivwert von 0 100 aus Ein Offensivwert von 0 also die reine Verteidigung kann dabei als Abwehr durch Ge schicklichkeit Ausweichen gewertet werden Der Kampfwert eines Charakters errechnet sich aus den fiir die ausgew hlte Waffe zust ndigen Charakterwerten Offensiv und Defensivwert der Waffe errechnen sich durch Aufschl ge Boni auf den Kampfwert Der Gesamtdefensivwert berechnet sich zu Gesamtdefensivwert R stungsdefensivwert Waffendefensiv wert Beispiel zur Berechnung eines Spielzuges Spieler A hat einen Waffen Offensiv wert von 12 und spielt zu 80 offensiv Spieler B hat einen Gesamt Defensivwert von 18 und spielt zu 50 defensiv 80 von 12 sind 9 6 50 von 18 sind 9 0 Differenz 0 6 Aus der Formel Basis 50 5 Offensivwert Angreifer Defensivwert Verteidiger errechnet sich der Wert 47 Spieler A w rfelt nun mit 1W100 Wertebereich 1 100 Ist das Ergebnis kleiner oder gleich der Basis so war der Angriff erfolglos War der Wurf gr er als die Basis errechnet sich der erzielte Scha
173. plication Server in der Lage ist Java Beans persi stent in der Oracle Datenbank abzulegen Des Weiteren wurde ein JMS Server Java Messaging Service Sun03a im Application Server eingerichtet wodurch Nachrich tenversand innerhalb der Anwendung realisiert wird 92 Oracle Als Datenbank wurde eine Oracle 8 personal edition installiert die vom Application Server benutzte Tabellen enth lt Um manuell auf die Datenbank zugreifen zu k nnen wurde das Tool benutzt Folgende Informationen werden in der Oracle Daten bank gespeichert e Gruppenzugeh rigkeiten der mCube Benutzer e Positions Cache e Zuordnung Postleitzahlen zu Positionen e JMS Nachrichten e Daten der EntityBeans 75 76 KAPITEL 9 TECHNISCHE INFRASTRUKTUR 9 3 Netscape Directory Server Fiir die Verwendung eines Directory Servers haben wir uns entschieden da von einem solchen Dienst bereits alle wichtigen Funktionen zur Benutzerverwaltung zur Verfii gung gestellt werden und man tiber eine einheitliche Schnittstelle LDAP darauf zu greifen kann Net03 Ziel des Directory Servers ist es alle Informationen eines Users darunter fallen Benut zername Vor und Nachname und Passwort aber auch alle mCube spezifischen Daten zu verwalten Grundprinzip eines Directory Servers ist ein Baum Knoten dieses Bau mes nennt man Container Blatter Eintr ge oder Objekte und die Eigenschaften eines Blattes Attribute Objekte k nnen von an
174. r nken die jedoch die Basis f r eine sp tere Erweiterung beispielsweise in einem Folgeprojekt einer anderen Projektgruppe bilden 96 KAPITEL 11 IMPLEMENTIERUNG 11 5 Matching Komponente 11 5 1 Beschreibung Die Matching Komponente ist eine hGherwertige Komponente der core Schicht da sie zur Erfiillung ihrer Aufgabe zwar nur auf die Usermanagement und die Routing Kom ponente zugreifen muss aber dennoch einen Service realisiert der speziell fiir die Da ting Applikation sehr wichtig ist Dieser Service umfasst die Suche nach Usern anhand von vorher definierten Kriterien der so genannten MatchingAttribute Es ist eine Su che nach allen passenden Usern nach einer beschr nkten Anzahl von entsprechenden Usern und nach einer beschr nkten Anzahl von Usern die einem bestimmten User hn lich sind m glich Besonders wichtig ist in diesem Zusammenhang die Option einer ortsabh ngigen Suche Dabei kann ein Suchradius definiert werden innerhalb dessen sich die durch das Matching gefundenen User befinden m ssen um in die Ergebnisliste der Suche aufgenommen zu werden Der Radius wird ausgehend von der Position des suchenden Users angelegt wobei die Position des Users entweder durch Ortung bei Verwendung eines Mobilfunkger tes oder durch seine im Community Profil definierte Postleitzahl bestimmt wird 11 5 2 Realisierung Um diese Anforderungen zu erf llen wurde die Matching Komponente als stateless SessionBean implementiert das sich
175. r K mpfen mCube gt Game gt Nachricht erstellen gt Kampfaufforderung Abbildung 13 30 Kampfaufforderung an Spieler Zw lf 13 2 5 1 Wahl der Basisausr stung Nun k nnen Sie ein letztes Mal vor dem Kampf die Basisausr stung bestimmen Er f r Olli Kahn Kampfstart Items Amulett der Geschicklichkeit z Add Lederrustung Games Basiskarten Remove Charakter bearbeiten gt Basisausr stung Abbildung 13 31 Basisausr stungswahl vor dem Kampf Nat rlich probieren Sie gleich Ihre neue Karte aus und f gen sie Ihrer Basisausr stung hinzu Danach geht es aber zum Kampfstart f r Olli Kahn Kampfstart keine Items Lederr stung NEE Amulett der Geschicklichkeit Basiskarten Remove Game gt Charakter bearbeiten gt Basisausr stung Abbildung 13 32 Die neue Karte bei der Basisausr stung 13 2 129 13 2 5 2 Eine Kampfrunde Menu Kampf ihres Charakters Olli Kahn gegen Zw lf Lebensenergie 35 Der Kampf beginnt W hle Deine Taktik OBER Weapons Keule gt Sie haben keine Events Offensivitat 98 Kampfspruch Auffe Omme Abbildung 13 33 Wahl der Taktik fiir die erste Kampfrunde In der Kampfrunde Sie nun Ihre Taktik festlegen Sie miissen angeben wie offensiv Sie vorgehen wollen Je offensiver man angreift desto me
176. r globa len Liste w ren Profildetails aufrufen online offline als Partner setzen zu Buddyliste hinzuf gen sperren oder entsperren Die Buddyliste wird durch die FriendsAround Komponente realisiert User in der Bud dyliste stellen folgende Funktionen bereit Profildetails aufrufen online offline als Partner setzen sperren entsperren und l schen Message Es ist m glich eine Nachricht asynchron an den Partner zu senden oder mit ihm einen Chat synchron zu er ffnen Kommuniziert werden kann mit allen Usern ber die Community hier jedoch muss immer das Attribut Partner mit dem User ge setzt sein der als Partner ausgew hlt wurde Der Chat wird ebenfalls nur mit dem Partner gef hrt es sei denn man hat ein Gruppendating definiert und der Partner ist eine Gruppe In diesem Fall kann der Chat mit allen Gruppenmitgliedern der Gruppen durchgef hrt werden 8 2 DIE ANWENDUNGEN 57 Date Einladungen Nachrichten usw werden in einem Posteingang Queue von Kom munikation Komponente gesammelt und k nnen abgerufen werden Sie werden dann lokal in der Anwendung gespeichert Optionen Es k nnen Attribute gesetzt oder ge ndert werden Zum Beispiel kann die Ermittlung der eigenen Position verboten werden der Radius des Suchbereichs gesetzt werden oder das eigene Profil editiert werden 8 2 2 2 Attribute Die Attribute erhalten alle Setter und Getter Methoden die allerdings nicht in die API aufgenommen werden e userID String
177. r l schen an der zur Sicher heit einen weiteren Link Charakter endg ltig l schen enth lt Me Charakter endg ltig l schen mCube gt Game gt Charakter bearbeiten gt Charakter l schen Abbildung 13 21 L schen des Charakters 13 2 4 Nachrichten an andere Spieler Nachdem Sie Ihren Charakter nun etwas n her kennen k nnen Sie Kontakt zu anderen Spielern aufnehmen Dazu muss man einfach auf einen Spieler klicken der online ist In diesem Beispiel ist dies der Spieler Zw lf Sie haben drei Nachrichtentypen die Sie verschicken k nnen Eine Standardnachricht ein Tauschangebot und eine Kampfaufforderung 13 2 4 1 Standardnachricht Da Sie den fremden Spieler nicht berrumpeln wollen fragen Sie vielleicht erstmal h flich an ob er zum Tauschen und K mpfen bereit w re Das System teilt Ihnen daraufhin mit ob das Versenden der Nachricht erfolgreich war Ob eine Nachricht f r Sie vorliegt k nnen Sie im Hauptmen mit dem Punkt Nach richt abholen berpr fen Sollte eine Nachricht vorliegen so wird sie sofort angezeigt Gl cklicherweise antwortet Spieler Zw lf schnell und ist zum Tauschen und K mp fen bereit 126 KAPITEL 13 BENUTZERHANDBUCH Nachricht an Spieler Zw lf Tauschangebot Kampfaufforderung Nachricht mCube gt Game gt Nachricht erstellen Abbildung 13 22 Nachricht an Spieler Zw lf Menu Nachricht an Spieler Zw lf Lus
178. ries ElTemplates El Destination Keys E Stores El Distributed Destination servers MyJMSServer E Destinations El Session Pools Abbildung 12 3 JMS Einstellungen 12 5 Installation des Netscape Directory Servers Alle notwendigen Programme Dateien finden sich auf der mCube Installations CD im Ordner Netscape Directory Server 6 01 Notwendige Schritte 1 Entpacken der Datei d601diu zip 2 Ausfiihren der Datei setup exe 3 Standardeinstellungen der Installation beibehalten 12 5 INSTALLATION DES NETSCAPE DIRECTORY SERVERS 111 12 5 1 Erl uterungen zum LDAP Server Zur erfolgreichen Inbetriebnahme des Servers mit der mCube Plattform ist die Einrich tung einer speziellen Datenbankstruktur erforderlich Da diese nur m hsam per Hand vorzunehmen ist wird auf der CD die Datei LDAPImport LDIF mitgeliefert die in der Administrationskonsole des Servers importiert werden kann Die Konfiguration ist damit beendet Import Databases Abbildung 12 4 Netscape Directory Server DB Import Zum besseren Verst ndnis folgt trotzdem eine kurze Beschreibung der verwendeten Struktur Die interne Struktur des Servers ist grob in zwei Bereiche aufgeteilt USER Enth lt die gespeicherte Daten eines User in Attributform z B Alter Ge schlecht MCUBECONTAINER _ Enth lt die Metadaten ber die Profilzugeh rigkeit eines spe ziellen Attributes Zur Zeitpunkt der Dokumentationserstellung existieren folgende Pro
179. rt alle User zuriick die sich in dem eingestellten Bereich befinden blockUser userID String void Sperrt einen User Einladungen und jegliche Kontaktaufnahmeversuche durch diesen User werden automatisch abgelehnt unblock User userID String void Ein gesperrter User kann entsperrt werden giveSimilar Users userProfile HashTable ListOfUsers Benutzt die Methode der Matching Komponente Hier muss die Kooperation zu der Matching Komponente noch genauer ausgearbeitet werden getDistance UserID String int Gibt die Entfernung in Metern zu einem anderen User zuriick getDirection UserID String int Liefert die Himmelsrichtung zur ck in der sich der andere User befindet relativ zu der Eigenen addToBuddylist userID String void F gt einen User in die Buddyliste ein removeFromBuddylist userID String void L scht einen User aus der Buddylist sendMessage userID String msg Object void Sendet eine Nachricht an den durch userID identifizierten User getMessages ListOfMessages Holt die Nachrichten f r die Mailbox bei der Communication Komponente ab Diese k nnen anschlie end in der Anwendung lokal gespeichert werden 60 KAPITEL 8 ARCHITEKTUR openChat groupID String boolean Offnet einen Chat mit einer Gruppe die auch aus nur einem User bestehen kann closeChat boolean Schlie t den aktuellen Chat Es kann immer nur ein ge ffneter Chat bestehen setPartner userID String void Setzt das Attribut Par
180. rt und eine Nachricht vom Typ BattleRe sult an beide Teilnehmer geschickt Die Klasse BattleResult Die Klasse BattleResult erbt von Message Der Klassenname wird als Markie rung benutzt das ist wichtig fiir die Weiterverarbeitung Sie beinhaltet folgende Attribute String description Dieser String beinhaltet eine Beschreibung der vergan genen Kampfrunde Liste von Strings eventcards Diese Liste beinhaltet alle Eventkarten die im weiteren Spielverlauf noch benutzt werden k nnen int lifepoints Die Lebenspunkte die man noch hat String entityID Die ID der EntityBean dieser Komponente String battleSlogan Der Slogan des anderen Spielers wird zur Anzeige mitgeschickt boolean isBattleFinished Zeigt an ob der Kampf beendet ist oder fortge f hrt werden muss 72 KAPITEL 8 ARCHITEKTUR e Die Klasse BattleStart Die Klasse BattleStart erbt von Message Der Klassenname wird als Markierung benutzt das ist wichtig fiir die Weiterverarbeitung Sie beinhaltet folgende Attri bute String entityID Die ID der EntityBean dieser Komponente e Die Klasse TurnInfo Die Klasse TurnInfo beschreibt einen Spielzug den ein Spieler macht Sie bein haltet folgende Attribute int offensive Die Offensivit t des Angriffs in Prozent String event Eine benutzte Eventkarte String weapon Die benutzte Waffe kann auch Zauberspruch sein String slogan Ein Spruch der dem Gegner vor der
181. rund daf r ist dass in der LDAP Datenbank das Geburtsdatum gespeichert ist und in der Suchabfrage der Dating Appli kation ein Altersbereich definiert wird Die Methode getAllSimilarUsers wurde f r eine ortsabh ngige Suche berladen In der zweiten Version erh lt sie als bergabeparame ter neben der MatchingList noch die ID des suchenden Users da um dessen Position der Suchradius gezogen werden muss Dieser Suchradius wird zun chst aus der Liste der Attribute herausgefiltert Anschlie end werden die passenden User mit der gerade beschriebenen ersten Version der Methode getAllSimilarUsers ermittelt Mithilfe der Routing Komponente wird f r jeden dieser User die Distanz zum suchenden User be rechnet und berpr ft ob sich der User innerhalb des Radius befindet Nur wenn dies der Fall ist wird er der Ergebnisliste hinzugef gt Die Methode getSimilarUsers liefert im Prinzip die gleiche Funktionalit t wie die erste Version der Methode getAllSimilarUsers mit dem Unterschied dass hier die Anzahl der Suchergebnisse eingeschr nkt werden kann Dazu werden zun chst mithilfe der Methode getAllSimilarUsers alle User bestimmt und dann die berfl ssigen Ergebnisse aus der LinkedList entfernt Eine andere Funktionalit t bietet die Methode getUserMatching der die ID eines Users und ebenfalls eine Liste von Matching Attributen und eine Ergebnisbeschr nkung ber geben wird Sie sucht nach Usern die mit dem User dessen ID bergeben wurde in
182. s konnte die Anforderung Karten zu verkaufen und zu kaufen nicht erf llt werden da in der Community kein entsprechendes Shop System implementiert wurde Alle weiteren Anforderungen konnten aber erf llt werden 11 9 3 Probleme Die gr te Herausforderung war zu Anfang das Model View Controller Konzept zu implementieren und es durch Entfernen aller Fehler funktionst chtig zu machen Weitere kleinere Probleme gab es mit dem Deployment der Enterprise Java Beans im Application Server dies ist mit jedem neuen Application Server und jeder neuen Komponente eine neue Herausforderung Als das geschafft war gab es zun chst keine nennenswerten Schwierigkeiten mehr Mit Fortgang der Realisierung tauchten kleine Schwierigkeiten auf die h ufig mit den in unteren Schichten liegenden core Komponenten zu tun hatten So funktionierte der Messaging Service der Communication Komponente zu Beginn nicht hundertprozen tig da immer die erste gesandte Nachricht an einen neu erstellten Benutzer diesen nicht erreichte Dieses Problem wurde aber ebenfalls schnell gel st Der eingerichtete Build Prozess erleichterte die Arbeit erheblich da durch den automa tisierten Deployment Prozess die Anwendung mit einer viel gr eren Geschwindigkeit im Application Server zu deployen war Eine Herausforderung wurde die Umstellung des Model View Controller Konzeptes auf XSLT Durch nderungen an der Struktur des Model View Controller Konzep tes funktionierte teilwe
183. sionContainer SessionContainer newAction String addSessionObject void getSessionObject Object olearSessionContainer void init void CBEJBConnection PreCommandBean logger Logger ctx Context logger Logger unsecureActions Hashtable CBEJBConnection getBuddyChatBean BuddyChat isUserLoggedin boolean usermanagement Usermanagement game Game communityApplicationintegrationBean Cor communityBaseBean CommunityBase PreCommandBean preprocess int execute void filUnsecureActions void logger Logger outputFormat String filtermustwork boolean filterConfigFilterConfig actionConfig ActionConfig outputConfig OutputFormatConfig responseWrapper CharResponseWray doFilter void destroy void lookupStyleSheet String output CharArrayWriter toString String CharResponseWrapper writer PrintWriter data String ActionConfig OutputFormatConfig uniqueActionConfig ActionConfig logger Logger communityLoginBean CommunityLogin routingBean Routing HttpServiet McubeServiet locationingBean Locationing context Context initialContext Context logger Logger preCommandBean PreCommandBean init void doGet void doPost void destroy void processRequest void logger Logger configFile String jspRoot String actions Hasht
184. sperrt 8 2 DIE ANWENDUNGEN 53 e userlsValidated userID String void Der User wurde authentifiziert Gibt an ob die bei der Anmeldung angegebenen Daten auch korrekt sind Diese berpr fung muss extern beispielsweise ber einen Adressvergleich erfolgen Verwaltung Methoden zur Verwaltung von Profilen und Objekten sowohl f r Nut zer als auch f r Administratoren Zu jedem Attribut des Profils gibt es eine getXxXX und eine setXXX Methode Diese berpr fen ob die entsprechende Option gerade ge lesen gesetzt werden darf und f hren die Aktion dann aus Durch einzelne Methoden ist der Zugriff auf die Standard Attribute einfacher und unkomplizierter e userIsLoggedIn userID String boolean Gibt zur ck ob ein Nutzer gerade eingeloggt ist givePositioning userID String begin Date end Date LinkedList Gibt eine Liste mit Loggingobjekten zuriick in denen gespeichert ist wann die Position des Nutzers bestimmt wurde begin und end geben den Zeitraum an fiir den die Daten geliefert werden sollen getAllBuddies userID String LinkedList getAllMessages userID String componentID String LinkedList Liefert jeweils eine Liste mit allen speziellen Objekten eines Nutzers Die Defi nition eines Filters ist somit nicht n tig addBuddy userID String buddy String void F gt ein Objekt zur Buddyliste hinzu Basisdienste Die Basisdienste Chat und FriendsAround sind bereits in den ent sprechenden Komponenten realisier
185. st eine dynamische Erzeugung der Seiten passend f r jedes Endger t m glich Die hierbei von uns verwendete Tech nik hei t XSLT Extensible Stylesheet Language for Translations Cla99 Dies ist eine sehr m chtige Sprache zur Formatierung von Inhalten die in XML BPSMO00 beschrieben sind Wir haben uns daf r entschieden komponentenbasiert zu entwickeln Dadurch k nnen wir logische Einheiten separat entwickeln Die Integration von Fremdsystemen ist in jedem Entwicklungsstadium problemlos m glich Die am Markt vorhandenen Kompo nentenmodelle versprechen zudem Skalierbarkeit die als Anforderung f r einen realen Einsatz sehr wichtig ist Unter diesen Voraussetzungen entschieden wir uns f r den Einsatz des Produktes Ja va der Firma Sun in allen Bereichen des Projektes Java bietet f r alle Schichten frei nutzbare Bibliotheken an Wir nutzen unter anderem die Java 2 Enterprise Edition zur komponentenbasierten serverseitigen Entwicklung JDBC als Anbindung an die Da tenbank und vorhandene APT s zur Anbindung an einen LDAP Server Die Technologie Java scheint ausgereift Es stehen etliche Entwicklungsumgebungen und Applikationsserver zur Verf gung die wir nutzen k nnen Zudem vermuten wir dass sich auch im von uns angestrebten Markt Java als Technologie durchsetzen wird Auch die Tatsache dass fast alle PG Teilnehmer bereits intensive Erfahrungen mit Java gesammelt haben hat unsere Entscheidung positiv beeinflusst Wir erf llen
186. ste Semester der Projektgruppe abgeschlossen 4 6 Weitere Inkremente Die weitere Entwicklung unseres Projektes erfolgte in zwei Inkrementen Die einzel nen Anforderungen f r jedes Inkrement wurden jeweils zu Beginn einer neuen Phase ausgehend von dem bisher erreichten Stand festgelegt 14 KAPITEL 4 PROZESSLEITFADEN 4 6 1 Das erste Inkrement Das erste Inkrement setzte direkt auf dem Prototypen auf Hier ging es darum die grundlegenden Funktionen vor allem der core Komponenten zu verbessern Insbeson dere wurden das User sowie das Gruppenmanagement verfeinert und es wurde ein Matching Algorithmus erarbeitet An dieses Inkrement hat sich noch eine kurze Nachbesserungsphase angeschlossen bis wir gegen Mitte des zweiten Semesters das erste Inkrement pr sentieren konnten 4 6 2 Das zweite Inkrement Einer der wichtigsten Punkte des zweiten Inkrementes war die Anpassung der GUI an die unterschiedlichen Anforderungen je nachdem ob man die Anwendungen mit einem normalen oder einem Handybrowser aufruft Hierbei haben wir uns f r den Ein satz von XML und XSLT entschieden was eine gewisse Einarbeitungszeit erforderlich machte Zuerst wollten wir das Apache Cocoon Framework benutzen Dieses erschien dann aber doch als zu umfangreich Schlie lich haben wir uns f r die Benutzung von Filtern Java Servlet Spezifikation 2 3 entschieden Des Weiteren gab es einige funktionale Verbesserungen bei den Anwendungen Com munity Game und Dati
187. storie eines Charakters In der Historie k nnen Sie sich noch einmal Ihre K mpfe ansehen Da der Gegner rot markiert ist werden Sie nochmal an Ihre Schmach erinnert Immerhin k nnen Sie sich jedoch ber f nf Erfahrungspunkte freuen Men Historie Ihres Charakters Olli Kahn Gegner Level Erfahrungsgewinn Zw lf 1 5 mCube gt Game gt Historie Abbildung 13 36 Die Historie des Charakters 13 2 7 _ Levelaufstieg Durch den Kampf von Olli Kahn und Zw lf hat Zw lf 50 Erfahrungspunkte ber schritten und steigt so zum ersten Mal einen Level auf Kartenvorrat Basisausr stung Steigern Charakter l schen pm mCube gt Game gt Charakter bearbeiten Abbildung 13 37 Men punkt Charakter bearbeiten des Charakters Zw lf 13 2 131 Beim Steigern sieht man nun dass Zw lf durch den Levelgewinn einmal steigern darf Als Elf steigert Zw lf nat rlich seine Geschicklichkeit 1 Level 2 M gliche Steigerungen 1 Eigenschaft St rke a Geschicklichkeit 7 mCube gt Intelligenz Game gt a Konstitution Charakter bearbeiten gt Steigern Abbildung 13 38 Steigern eines Charakterwerts Name Zw lf Level 2 Charakter Ei Konstitution asisausrustung Steigern ESOC et 8 Charakter l schen Intelligenz a Erfahrung 58 mCube gt Game gt Ch
188. t ten von der Usermanagement bzw Groupmanagement Komponente erweitert und entsprechend genutzt Weiterhin wurden Methoden der Profilverwaltung implemen tiert Zur Erf llung der Lokalisierungsanforderung wurden Methoden implementiert 11 10 DATING KOMPONENTE 105 die die core Komponenten nutzen Hier wurden besonders die Methoden der Locatio ning bzw Routing Komponenten verwendet Es wurden auch Methoden fiir Nachrichtenaustausch entwickelt die Messages zwi schen zwei Datingusern erm glichen dabei wurden haupts chlich die Methoden der Communication Komponente genutzt und weiter ans Dating angepasst Logging wur de integriert 11 10 22 CommandBeans Die CommandBeans dienen als Datenaustausch Br cke zwischen dem DatingBean und den Java Server Pages Alle CommandBeans haben eine execute Methode die dem Datenaustausch dient Haupts chlich wird in der execute Methode das Request Objekt mit Attributen und Parametern gesetzt die dann in den JSP Seiten ausgelesen und ausgewertet werden k nnen au erdem werden die Methoden des DatingBean auf gerufen Weiterhin k nnen die CommandBeans auf neue CommandBeans verweisen was die Handhabung der Beans vereinfacht 11 10 2 3 Java Server Pages Alle JSP Seiten der Dating Komponente enthalten zum gro en Teil XML Code der zur Vereinfachung der Formattransformation dient Es wurden f r das HTML und xHTML Format die entsprechenden Transformationsregeln in die XSL Dateien ge schrieben Die
189. t auf Kampf Tausch l mCube gt Game gt Nachricht erstellen gt Standardnachricht Abbildung 13 23 Absenden einer Standardnachricht E Ihre Nachricht wurde erfolgreich verschickt mCube gt Game gt Nachricht erstellen Abbildung 13 24 Status der Nachricht Menu Spieler Zw lf Level 1 schreibt Na dann mach doch mal ein Angebot Oder kampf wenn Du Dich traust antworten mCube gt Game gt Nachricht abholen Abbildung 13 25 Antwort von Spieler Zw lf 13 2 4 2 Tauschangebot Als erstes wollen Sie m glicherweise sehen ob Sie von ihm eine gute Karte erhalten k nnen Wenn Sie auf Tauschangebot gehen dann sehen Sie zun chst welche Karten Sie anbieten k nnen und welche Sie vom Spieler erfragen k nnen Beispielsweise bieten Sie dem Spieler Ausrutschen an Button da sich das f r 13 2 127 Tauschangebot an Spieler Zw lf bonm Tauschangebot abschicken Eigene Karten Lederr stung mCube gt keine Angebotskarten Game gt Nachricht erstellen gt Karten Gegner Amulett der Geschicklichkeit gt Tauschangebot keine Nachfragekarten Abbildung 13 26 Tauschangebot an Spieler Zw lf einen Barbaren nun wirklich nicht geh rt und wollen daf r das Amulett der Geschick lichkeit Button das Ihren Charakter ein wenig geschickter machen w rde Si Tauschangebot
190. t ein Pro fil anzulegen 1 1 Neues Anmelden MUSS Ein User muss sich neu an melden k nnen und dabei sein Profil erstellen 7 5 ANFORDERUNGEN SUBSYSTEM MCUBE ADMIN 43 ADM F1 2 Unterprofile er MUSS Sollte der User Interesse an stellen Die Profile mCube Dating oder mCu werden separat ge be game haben so k nnen speichert Ein Zugriff hier auch gleich deren Pro auf das Basispro file bearbeitet werden fil ist m glich so dass Redundanzen vermieden werden ADM F1 3 Nutzungs und MUSS Der User muss ber die Rechtsbelehrung Nutzungsbedingungen informiert werden ein schlie lich Ortung Dieser Dialog muss best tigt wer den soll eine Anmeldung erfolgen ADM F1 4 Neuanmelden best MUSS Der User muss seine Neuan tigen meldung noch einmal best tigen ADM F2 Der User hat die MUSS M glichkeit ein Pro fil zu ndern ADM F2 1 Bestehendes Profil MUSS Hier soll der User in ei bearbeiten nem Formular die M glich keit bekommen sein Profil anzupassen ADM F2 2 Anderungen spei MUSS Sollte der User Anderun chern gen an dem Formular vorge nommen haben sollen diese speicherbar sein ADM F2 3 Anderungen verwer MUSS Der User muss eine am fen Formular vorgenommene nderung wieder verwerfen k nnen JADM F2 4 Verlassen MUSS Das Formular muss auch verlassen werden k nnen ohne das nderungen vorge nomm
191. t erledigen Die neuen Sourcen m ssen nur ins CVS eingescheckt werden und beim n chsten Durchlauf von CruiseControl werden die Komponenten automatisch aktualisiert getestet und gegebe nenfalls auch deployed Das Ant Buildfile alleine kann ohne CruiseControl auch bei der lokalen Entwicklung auf dem privaten Testserver genutzt werden So kann der Komfort des automatischen Kompilierens und Deployens auch lokal genutzt werden 10 4 6 Probleme Bei der Umsetzung dieses Konzeptes hatten wir das Problem dass die Komponenten die Remote Interfaces der anderen Komponenten nicht finden konnten da sie nicht im Classpath waren Dies f hrte dazu dass wir zu Beginn die Remote Interfaces in alle jars hineinkopiert haben Dies war jedoch keine zufrieden stellende L sung da sie durch die mehrfach vorhandenen Interfaces leicht zu Inkonsistenzen und Classpath Problemen f hren k nnte Also entschlossen wir uns dazu alle ben tigten Komponen ten jars und die Webapplication wars in ein so genanntes Enterprise Application Archiv EAR zu packen so kann man in der Manifest Datei des jars den Classpath angeben und auf diesem Wege die ben tigten jars dem Classpath der Komponente hinzuf gen 10 4 ENTWICKLUNGS WERKZEUGE 85 Beim Deployen der Komponenten stellten wir jedoch fest dass die Komponenten zur Erzeugung der Stubs und Skeleton Klassen neu kompiliert werden Dabei werden die Classpath Informationen aus dem Manifest leider ignoriert und das Kompilieren
192. t und werden hier nicht zus tzlich aufgef hrt Eine nochmalige Kapselung w re eine Verschwendung von Zeit und Resourcen Lediglich zus tzlich notwendige oder leicht abge nderte Methoden werden hier zur Verf gung gestellt e sendMessage userID String message Message void Sendet eine Nachricht an einen anderen User der durch seine ID seinen Login Namen gegeben ist Anwendungsintegration e displayMyMessages componentID String iconID String void Zeigt das Icon der Anwendung mit der ID component ID in der Statusleiste der GUI an wenn eine neue Nachricht an diese Komponente f r den Nutzer vorliegt iconID ist die ID eines Bildobjektes das in der Objektdatenbank gespeichert ist dontDisplayMyMessages componentID String void Es wird kein Icon mehr angezeigt wenn eine Nachricht an diese Komponente f r den Nutzer vorliegt 54 KAPITEL 8 ARCHITEKTUR isIconShown componentID String boolean Gibt zur ck ob die Komponente will dass ein Icon bei Nachrichten angezeigt wird getIconsToBeShown userID String LinkedList Gibt eine Liste mit den ID s der Komponenten zuriick fiir die fiir den aktuellen Nutzer Nachrichten vorliegen Eine Komponente ist natiirlich nur dann in der Liste wenn sie auch m chte dass ihr Icon angezeigt wird swapApplicationOut userID String componentID String state Object void Diese Methode versucht eine laufende Anwendung zu unterbrechen oh ne deren Zustand zu verlieren Alle A
193. t werden Eine Ereigniskarte kann pro Kampf nur einmal eingesetzt werden 7 3 2 3 Magiekarten Feuerball abh ngig von 2x Intelligenz Offensivbonus 3 Defensivbonus 0 Minwert 1 Maxwert 10 Einschr nkung Magier Todeshauch abh ngig von 2x Intelligenz Offensivbonus 2 Defensivbonus 0 Minwert 5 Maxwert 5 Einschr nkung Elf Magier Mauer Defensivbonus 10 Einschr nkung Elf Magier Paladin 36 KAPITEL 7 ANFORDERUNGSANALYSE Magiekarten werden wie Waffenkarten eingesetzt sind allerdings auf die magiefahigen Charaktere beschrankt 7 3 2 4 Erfahrungspunkte Die Spieler starten mit 0 Erfahrungspunkten auf Level 1 Pro Kampf erh lt jeder Spieler 5 Erfahrungspunkte Der Sieger erh lt zus tzlich 5 10 Leveldifferenz Erfahrungspunkte wenn sein eige nes Level niedriger ist bei gleichem oder h herem Level erh lt der Sieger 5 Punkte zus tzlich Der Level eines Charakters berechnet sich aus den Erfahrungspunkten die er gesam melt hat Wir definieren einen Levelaufstieg rekursiv folgende Formel ist f r den Spie lablauf sinnvoll und kann so hingenommen werden Levelaufstieg 1 0 Levelaufstieg k Levelaufstieg k 1 1 5 100 f r k gt 2 Daraus ergibt sich Level 1 0 99 Level 2 100 249 Level 3 250 474 Level 4 475 811 Level 5 812 1317 Pro Levelaufstieg darf der Spieler eine Charaktereigenschaft um 1 erh hen 7 3 3 Funktionale
194. t wurde Menu Ihr Charakter Olli Kahn wurde erstellt mCube gt Game gt neuer Charakter Abbildung 13 15 Der neue Charakter wurde erstellt 13 2 3 Charakter bearbeiten en Name Olli Kahn Level 1 a Kern Konstitution asisausr stung Steigern Geschickichkeits Charakter l schen Intelligenz Erfahrung o mCube gt Game gt Charakter bearbeiten Abbildung 13 16 Men punkt Charakter bearbeiten Unter dem Punkt Charakter bearbeiten des Hauptmen s k nnen Sie sich nun ihren neuen Charakter angucken Sie haben hier die M glichkeit sich den Kartenvorrat anzugucken die Basisausr stung festzulegen Steigerungen vorzunehmen falls Sie einen h heren Level erreichen und ihren Charakter wieder zu l schen 124 KAPITEL 13 BENUTZERHANDBUCH 13 2 3 1 Kartenvorrat Im Men punkt Kartenvorrat sehen Sie alle Karten des Charakters Diese sind einge teilt in Gegenst nde Waffen und Ereignisse Diese Einteilung sagt Ihnen wann Sie die Karten benutzen k nnen Gegenst nde k nnen Sie als Basisausr stung an sich tragen falls Ihr Charakter dazu in der Lage ist Waffen k nnen Sie im Kampf w hlen und dort benutzen Ereignisse k nnen Sie einmal pro Kampf anwenden eas Kartenvorrat Weapons Keule Items Lederr stung mCube gt Game gt Events Ausrutschen 7 Charakter bearbeiten 5 Kartenvorrat Abbildung 13 17 Kar
195. te und zum anderen auf die korrekte Ansprache der Attribute in den einzelnen Profilen der LDAP Datenbank geachtet werden musste 98 KAPITEL 11 IMPLEMENTIERUNG 11 5 4 Verbesserungs und Erweiterungsm glichkeiten Die Matching Komponente erfiillt alle grundlegenden Anforderungen beziiglich der Suche von Usern die fiir unser Projekt definiert wurden Dennoch k nnte sie in Fol geprojekten verfeinert werden etwa hinsichtlich eines Rankings von Suchergebnissen Dabei k nnte man sich eine Sortierung der Ergebnisliste nach einem bestimmten Krite rium vorstellen Ebenfalls k nnte man eine Suchfunktion integrieren die einzelne At tribute unterschiedlich stark gewichtet und dann einen Grad der bereinstimmung mit der Suchanfrage berechnet Die Vorbereitung daf r wurden bereits durch das Anlegen entsprechender Eigenschaften der Objekte vom Typ MatchingAttribute getroffen Dies sind jedoch Feinheiten die f r die grundlegende Realisierung einer Matchingfunktion wie sie f r unser Projekt ben tigt wurde nicht n tig waren 11 6 FriendsAround Komponente 11 6 1 Beschreibung Die FriendsAround Komponente ist eine Komponente der core Schicht die direkt auf den weiteren core Komponenten Routing Communication Usermanagement und Group management aufsetzt Der Grund daf r ist dass sich die FriendsAround Komponente der Funktionalit t der anderen Komponenten bedient um die an sie gestellten Anforde rungen zu erf llen Zu diesen Anforderungen
196. ten online Tauschen TBD ausw hlen und die se mit einem ausge w hlten Nutzer tau schen GAM F3 4 Nutzer k nnen MUSS siehe GAM F3 3 tauschwillige Mit spieler suchen GAM F3 5 Nutzer k nnen in KANN Ist wahrscheinlich Grund der Community funktionalit t der Communi ein Tauschangebot ty hinterlassen GAM F3 6 Nutzer k nnen den MUSS Wechsel in Hauptbild Kartenbildschirm schirm verlassen GAM F3 7 Nutzer k nnen direkt MUSS Wechsel in Communitybild in die Community schirm wechseln GAM F4 1 Nutzer k nnen die MUSS Anforderungen F4 beziehen Einstellungen f r sich auf Aktionen aus dem ihren n chsten Zug Spielbildschirm heraus Ab vornehmen die h ngig von Spielregeln sie M glichkeiten f r he 7 3 2 die Beeinflussung eines Zuges erge ben sich aus den Spielregeln 38 KAPITEL 7 ANFORDERUNGSANALYSE GAM F4 2 Nutzer k nnen den MUSS gew hlten Zug durchf hren GAM F4 3 Nutzer k nnen MUSS das Spiel beenden Wechsel in den Hauptbildschirm GAM F4 4 Nutzer k nnen w h KANN Sollte IRC hnlich ausse rend des gesamten hen Spieles Nachrich ten untereinander austauschen GAM F4 5 Dem Nutzer stehen KANN Also Beleidigungen usw Hotkeys mit Stan dardnachrichten zur Verf gung GAM F4 6 Die Hotkeys f r KANN Standardnachrich ten k nnen vom Benutzer angepasst werden 7 3 4 Nicht funkt
197. ten Servers zu entwickeln 10 3 CLIENTS 81 Um die Ergebnisse der Projektgruppe auch anderen Personen zug nglich zu machen wurde von der PG eine Domain registriert mcu be tiber die die Webseiten der PG abgerufen werden k nnen Damit die Teilnehmer auch von au erhalb Zugriff auf den Application Server zu haben ist er auch von au en ber eine gesch tzte Verbindung nutzbar Dies erm glicht mit dem Webinterface des Servers auch die Entwicklung von zu Hause Um die Kommunikation innerhalb der Gruppe zu vereinfachen kommt hier zu noch ein Mailverteiler der daf r sorgt dass einzelne PG Mitglieder bequem alle anderen informieren k nnen Dar ber hinaus gibt es auch einen Mailverteiler um mit der anderen PG zu kommunizieren Dazu kommen dann noch ein News Server ein FTP Server und ein privater Bereich auf der Homepage der zum Beispiel wichtige Literatur und Nachschlagewerke in elektronischer Form bietet Au erdem wurde das Tool CruiseControl eingesetzt n heres dazu findet sich sp ter in einem eigenen Abschnitt 10 3 Clients Auch auf den Clients wurden Tools installiert die zum Arbeiten unverzichtbar sind Dazu geh ren zum Beispiel ein Webbrowser und ein Handyemulator von Nokia der es erm glicht xHTML und WML Seiten darzustellen Ein aktueller Webbrowser wird au Berdem vorausgesetzt um das Webinterface des Bea Weblogic zu benutzen Um die in letzter Zeit vor allem zu Dokumentationszwecken immer h ufiger auftauchenden
198. ten SessionBe an Diese Komponente wird f r einen Kampf zwischen zwei Usern erstellt Sie bein haltet f r jeden der zwei User folgende Attribute e String userID e int lifePoints e List of Strings eventCards e boolean gotTurnInfo e TurnInfo turnInfo AuBerdem besitzt sie eine eindeutige ID Diese Komponente ist fiir die Auswertung eines Kampfes verantwortlich In ihrer create Methode wird sie fiir zwei tibergebene User initialisiert Bei der Initialisierung geschieht Folgendes Die Werte der Lebens punkte und der Eventkarten werden aus dem Usermanagement in diese Komponente bernommen Au erdem erhalten die Spieler eine Best tigung dass das Spiel jetzt losgeht in Form einer Nachricht vom Typ BattleStart Hier wird auch die eindeuti ge ID der EntityBean bergeben Diese BattleStart Nachricht f hrt die Spieler nun in den Startbildschirm des Kampfes in dem beide Spieler noch einmal die Basiskarten angezeigt bekommen also die Item Karten die man vor einstellen kann und die f r den Kampf benutzt werden Die Basiskarten k nnen hier noch einmal ver ndert und so auf den aktuellen Gegner angepasst werden dabei wird immer berpr ft ob die entsprechende Kartenkombination f r den Charakter erlaubt ist Danach starten die normalen Kampfrunden in denen jeweils eine Waffe ausgew hlt wird eventuell eine Event Karte einen Prozentwert f r Offensivit t Defensivit t und einen Kampfspruch Dabei wird berpr ft ob die Eventkarte un
199. tenvorrat des Charakters Sollten Sie sich fiir Ihre neue Waffe interessieren k nnen Sie sich angucken was eine Keule so alles kann Karte Die Keule ist eine Waffe f r Charaktere mit St rke gr er sechs sie hat einen Offensivbonus von f nf und macht zur ck Schaden zwischen eins und zehn mCube gt Game Abbildung 13 18 Ansicht der Karte 13 2 3 2 Basisausriistung Die Basisausriistung tr gt ein Charakter immer bei sich Die Modifikationen zeigen also immer Wirkung f r Olli Kahn Items Lederr stung Add I keine Basiskarten mCube gt Game gt Charakter bearbeiten gt Basisausr stung Abbildung 13 19 Basisausr stung des Charakters Wollen Sie z B Ihre Lederr stung immer tragen damit Ihre Defensive gest rkt ist so w hlen Sie die Karte aus und f gen sie mittels Ihrer Basisausr stung hinzu 13 2 125 E Basis Item Karten f r Olli Kahn keine Items Lederr stung mCube gt Basiskarten Remove Game gt Charakter bearbeiten gt Basisausr stung Abbildung 13 20 Erweiterte Basisausr stung des Charakters 13 2 3 3 Steigern von Attributen Da Sie noch keine Attribute steigern k nnen k nnen Sie an diesem Punkt noch nichts tun 13 2 3 4 Charakter l schen Aus Interesse schauen Sie sich noch den Punkt Charakte
200. teraturverzeichnis Apa 03 99 Apache Project Xalan2 java http xml apache org xalan j index html Bea Weblogic server 7 0 http e docs bea com wls docs70 index html 2003 Kent Beck Extreme Programming Explained Addison Wesley Professio nal 1999 BPSM00 Tim Bray Jean Paoli C M Sperberg and Eve Maler Extensible markup Bro97 BT75 1 99 Cvs FF03 IBM98 Int01 language xml 1 0 second edition http www w3org TR 2000 REC xml 20001006 2000 Zitiert 18 03 2003 V Broady Trading Card Game takes net by storm http www zdnet com anchordesk story story_1299 html 1997 Abruf 22 02 2003 V R Basili and A J Turner Iterative Enhancement A Practical Technique for Software Development In IEEE Trans Software Engineering volume 1 4 pages 390 396 1975 James Clark Xsl transformations xslt version 1 0 http www w3org TR 1999 REC xsit 19991116 1999 Zitiert 18 03 2003 The CvsGui team Cvsgui http www wincvs org Martin Fowler and Matthew Foemmel Continuous integration http www martinfowler com articles continuouslIntegration html M rz 2003 IBM Redbooks Understanding LDAP IBM Corporation 1998 InterMedia Interactive Solutions Inc Driving business profita bility through online community http www intermediainc com flash clienttestpdf perspectives CommunityDrivsProfitability pdf 2001 Abruf 22 02 2003 KAL 01 H Kaaranen
201. ting Komponente ist eine Komponente der Anwendungsschicht die sich auf die Komponenten der core Schicht st tzt Die Funktionalit t der Dating Komponente besteht darin Datingpartner zu suchen zu lokalisieren und anschlie end zusammen zubringen Weiterhin bietet die Komponente Funktionalit ten zur Profilerstellung zum Nachrichtenaustausch zwischen den Datingbenutzern und zur Verwaltung der Buddy listen 11 10 2 Realisierung Die Realisierung der Dating Komponente wurde in drei Bereiche aufgeteilt Enterprise Java Beans CommandBeans und Java Server Pages 11 10 2 1 Enterprise Java Beans Die zentralen Aufgaben der Dating Komponente bernimmt das DatingBean das als stateful SessionBean implementiert wurde so dass es eine Instanz dieser Komponente pro User gibt Dazu wird bei der Erzeugung des Beans der Methode ejbCreate eine UserID bergeben die lokal gespeichert wird Alle weiteren Methodenaufrufe werden daraufhin ausgehend von diesem User betrachtet Da f r die Realisierung des Dating Service die Funktionalit t der core Komponenten Communication Usermanagement Matching und Groupmanagement ben tigt wird wird in der Methode ejbCreate eine Verbindung zu diesen Komponenten etabliert Um die oben genannten Funktionalit ten der Listenverwaltung zu realisieren wurden vier Methoden implementiert die zur Erstellung zum Entfernen zur Blockierung und zum Freigeben von Buddylisten bzw Blockedlisten dienen Dazu wurden die Funktio nali
202. tner auf einen User Dieser wird ben tigt um z B eine Location in der Mitte der beiden User zu berechnen invitePerson email String void Eine Einladung zu einer Person senden die noch nicht Mitglied des mCube dating Service ist searchLocation ListOfProperties ListOfLocationIDs Sucht m gliche Locations Treffpunkte zwischen zwei Usern Der eine User ist der gerade aktive der andere ist das Attribut Partner Dazu wird die Methode meetingPlace der Routing Komponente benutzt getLocation LocationID String Location Liefert das Profil einer Location zur ck d h alle Detaildaten die ber diese Location gespeichert sind confirmMeeting code String boolean Erwartet einen Code des Date Partners womit das Treffen best tigt wird Hilfsklassen Locations Da die Objektverwaltung von jeder Anwendung selbst durchgef hrt wird gibt es die Klasse Locations in der alle Orte die mit dating gefunden werden k nnen gespeichert werden Die Klasse hat noch eine Unterklasse in der die Detaildaten zu jedem Ort gespeichert sind locations List add locationID String locationProfile HashTable void F gt einen Ort hinzu Nur mit Admin Rechten durchzuf hren removeFromList locationID String void L scht einen Ort Nur mit Admin Rechten durchzuf hren getAllOfType type String ListOfLocationIDs Gibt alle Orte eines bestimmten Typs zuriick Bsp Kino interne Klasse Location locationID String coordinates int int type
203. tyContext cardName String minDamage int maxDamage int dependencyAttributes Stringl modificationsNextRound String modDexterityForOpponent int modintelligenceForOpponent in modStrengthForOpponent int modConstitutionForOpponent in modDexterity int modintelligence int modStrength int modConstitution int noDamageForOpponent booleat noDamageForUsingCharacter b additionalLifepoints int additinnalNamana int setEntityContext context EntityC unsetEntityContext void ejbActivate void ejbPassivate void ejbRemove void ejbStore void ejbLoad void T ejbCreate String ejbCreate cardName String desc ejbPostCreate void ejbPostCreate cardName String a findByPrimaryKey pk String Cal 6 getCardName String selCardName param String vi getMinDamage int selMinDamage param int void selMaxDamage param int void getMaxDamage int setDependencyAttributes paran getDependencyAttributes Strit setModificationsNextRound par getModificationsNextRound S selModDexterityForOpponent p getModDexterityForOpponent sefModIntelligenceForOpponen getModintelligenceForOpponen selModStrengthForOpponent p getModStrengthForOpponent communication Message BattleResult Message lokalsender D String lol Message lokalsender D String lol Message toString String BattleResult description description String eventCards List senderlD String lifePoints
204. usm Usermanagement null gameEntity GameEngineEntity null COMMUNICATION String mcube constants Constants COMM comm Communication null cardHome CardHome null setSessionContext context SessionContext void ejbActivate void ejbPassivate void ejbRemove void getLevelForExperience experience int int getCardListForString cards String LinkedList getCardStringForList cards LinkedList String ejbCreate entitylD String void ejbCreate userlD1 String userlD2 String void getUserlD1 String getUserlD2 String battle userlD String turnInfo TurnInfo void Turninfo battleSlogan String weapon String event String offensive int 73 GameEngineEntityBean mcube application game component gameengine Gai mcube application game component gameengine Gai java lang Integer ctx EntityContext entityID Integer lifePointsUser1 int lifePointsUser2 int eventCardsUser1 LinkedList eventCardsUser2 LinkedList gotTurnInfoFromUser1 boolean gotTurnInfoFromUser2 boolean turnIinfoUser1 TurnInfo turninfoUser2 TurnInfo usedCardsUser1 LinkedList usedCardsUser2 LinkedList userlD1 String userlD2 String setEntityContext context EntityContext void unsetEntityContext void ejbActivate void ejbPassivate void ejbRemove void ejbStore void ejbLoad void ejbCreate userlD1 String userlD2 String eventCard ejbPostCreate userlD1 String userlD2 String event findByPrimaryKey pk Integ
205. von Entity Bean sowie der JMS Daten Netscape Directory Server 6 0 1 Eingesetzt zur Persistierung der User Profile MCUBE EAR Enth lt die Business Logik der MCUBE Plattform in Form eines EnterpriseARchives wie im J2EE Standard spezifiziert Die propriet ren Deskrip toren wurden f r die Verwendung im BEA Weblogic Server erstellt Die Verwendung in einem anderen Kontext ist nur nach gesonderter Anpassung m glich Diverse Java Libraries Utility Komponenten die zur korrekten Ausf hrung der Plattform auf dem Application Server ben tigt werden 107 108 KAPITEL 12 INSTALLATION 12 2 Installation des BEA Weblogic Servers Alle notwendigen Programme finden sich auf der mCube Installations CD im Ordner BEA Weblogic 7 0 Notwendige Schritte 1 Ausf hren der Datei weblogic700_win exe 2 Standardeinstellungen der Installation beibehalten 3 Ausf hren des BEA Configuration Wizard 4 Anlegen einer neuen Domain MCUBE Lonturetion Wiad Choose Domain Type and Name Beeta ten pl ade Typical Weblogic with BL Hami Abbildung 12 1 Anlegen einer neuen Domain Obwohl noch einige weitere Einstellungen am Application Server zu t tigen sind wird jetzt zuerst die Installation der Oracle Datenbank beschrieben da sich die dort vorge nommenen Einstellungen teilweise mit denen des Servers bedingen 12 3 Installation der Oracle Datenbank Al
206. werden kann der die an ihn gestellten Anforderungen durch das Zusammenspiel dieser 100 KAPITEL 11 IMPLEMENTIERUNG Komponenten erfiillt 11 6 3 Probleme Bei der Implementierung der FriendsAround Komponente traten keine gr eren Pro bleme auf Einzig der vielfaltige Zugriff auf Funktionen verschiedener anderer core Komponenten gebot eine vorsichtige Implementierung die sich strikt an den in der Ar chitektur und der Anforderungsanalyse herausgearbeiteten Schnittstellen dieser Kom ponenten orientieren musste Die erfolgreiche Entwicklung des FriendsAround Service ist somit ein Indiz dafiir dass in dieser Phase des Projekts gute Arbeit geleistet wurde 11 6 4 Verbesserungs und Erweiterungsm glichkeiten Die FriendsAround Komponente bietet die komplette Basisfunktionalit t und erf llt s mtliche Anforderungen eines grundlegenden FriendsAround Service wie er f r un ser Projekt realisiert werden sollte Dennoch besteht nat rlich die M glichkeit die sen Service in Folgeprojekten zu verfeinern Denkbar ist in diesem Zusammenhang beispielsweise eine Erweiterung des Datenschutzes beim Hinzuf gen von Buddys in die FriendsAround Liste oder beim Auslesen von Profilattributen von Buddys Au er dem k nnte ein Informationsautomatismus entwickelt werden der einem User meldet sobald ein Buddy innerhalb eines definierten Radius auftaucht Dies sind jedoch kei ne grundlegenden Eigenschaften des FriendsAround Service diese wurden bereits im
207. xterityForOpponent Die Ver nderung die die Karte am Ge schicklichkeitswert des Charakters ausl st Gilt f r den Gegner e Spezialfalle String modificationsNextRound Der Name zeigt auf einen weiteren Ein trag in der Tabelle Die Modifikationen die dieser Eintrag verursacht wer den allerdings erst in der n chsten Kampfrunde wirksam So wird die Karte Ausweichen realisiert indem dem Eintrag Ausweichen nur die beiden At tribute noDamageForUsingCharacter und noDamageForOpponent auf true stehen alle anderen Attribute stehen auf bzw einem sinnvollen Wert und unter dem Eintrag der unter modificationsNextRound zu finden ist steht nur offensiveBonus auf 5 List of Strings dependency Attributes Hier stehen alle Attribute die in eine Berechnung eines Kampfwertes eingehen nur ben tigt f r Karten vom Typ Weapon int maxDamage Der maximale Schaden der Karte nur ben tigt f r Karten vom Typ Weapon int minDamage Der minimale Schaden der Karte nur ben tigt f r Karten vom Typ Weapon 66 KAPITEL 8 ARCHITEKTUR 8 2 3 2 Anforderungen an die Komponente API getAttribute userID String attribute String Object Ein Attribut des Users wird ausgelesen und zur ckgegeben In dieser Komponen te werden haupts chlich Daten aus dem Game Profil ben tigt wie zum Beispiel Charaktername Level usw addPlayerToOnlinegroup userID String void Startet jemand diese Methode so wird er automatisch zu den O
208. z hlt die komplette Bereitstellung eines Service der in der mobilen Telekommunikation unter dem Namen FriendsAround be kannt ist Hinter diesem Namen verbirgt sich die M glichkeit eines Users jederzeit herauszufinden welche seiner Freunde in der N he sind um eventuell mit diesen in Kontakt zu treten 11 6 2 Realisierung Um diesen Service realisieren zu k nnen wurde die FriendsAround Komponente als stateful SessionBean implementiert so dass es eine Instanz dieser Komponente pro User gibt Dazu wird bei der Erzeugung des Beans der Methode ejbCreate eine UserID bergeben die lokal gespeichert wird Alle weiteren Methodenaufrufe werden darauf hin ausgehend von diesem User betrachtet Da f r die Realisierung des FriendsAround Service die Funktionalit t der core Komponenten Routing Communication Userma nagement und Groupmanagement ben tigt wird wird in der Methode ejbCreate eine Verbindung zu diesen Komponenten etabliert Bei der Beschreibung des FriendsAround Service wurde bereits erw hnt dass f r die sen Service die M glichkeit herauszufinden welche Freunde in der N he sind es senziell ist Dazu wird die Funktionalit t der Routing Komponente genutzt Das Fri endsAroundBean stellt drei Methoden zur Verf gung die die relativen Positionsdaten zwischen dem eigentlichen User f r den die Instanz des Beans angelegt wurde und dessen ID beim Erzeugen intern gespeichert wird und einem Buddy also einem seiner Freunde dessen ID
209. zus tzlich der Funktionalit t des Usermanage ments und des Routings bedient weshalb in der Methode ejbCreate eine Verbindung zum UsermanagmentBean und zum RoutingBean etabliert wird Au erdem stehen die Klassen MatchingList und MatchingAttribute zur Verf gung Objekte vom Typ MatchingAttribute definieren die Kriterien die einer Suche zu Grun de gelegt werden Jeder User kann bestimmte Werte setzen die in einer LDAP Datenbank gespeichert sind Er hat auf jeden Fall ein allgemeines Community Profil mit Werten wie beispielsweise seiner ID seinem Vor und Nachnamen seinem Geschlecht und sei nem Geburtsdatum Zus tzlich dazu kann er Profile f r die Applikationen Game und Dating anlegen wobei im Zusammenhang mit dem Matching vor allem das Dating Profil eine wichtige Rolle spielt da es Attribute wie Gr e Gewicht und Haarfarbe enth lt Die Objekte vom Typ MatchingAttribute erm glichen nun Kriterien zu de finieren die dann in der Suche mit den LDAP Werten der User verglichen werden Deshalb h lt ein solches Objekt den LDAP Namen eines Attributs das Profil in dem das Attribut vorkommt und nat rlich seinen Wert wobei ein Start und ein Endwert gesetzt werden k nnen Bei einem Attribut wie Haarfarbe spielt nur der Startwert eine Rolle der dann z B den Wert blond hat w hrend der Endwert null ist Wenn aber nach einem Gr enbereich von 170 175cm oder einem Alter von 18 23 Jahren gesucht werden soll werden sowohl Start als au

Download Pdf Manuals

image

Related Search

Related Contents

  2,4-GHz-FUNKFARBKAMERA und EMPFÄNGER AV  SuperMicro SuperServer 5014C-MT  Everite - Descale    

Copyright © All rights reserved.
Failed to retrieve file