Entwurf und Implementierung einer prototypischen Anwendung zur Simulation von Bewegungsabläufen in virtuellen Umgebungen

Größe: px
Ab Seite anzeigen:

Download "Entwurf und Implementierung einer prototypischen Anwendung zur Simulation von Bewegungsabläufen in virtuellen Umgebungen"

Transkript

1 F Entwurf und Implementierung einer prototypischen Anwendung zur Simulation von Bewegungsabläufen in virtuellen Umgebungen Design and Implementation of a Prototypical Application for Movement Simulation in Virtual Environments Andreas Baumann Bachelor-Abschlussarbeit Betreuer: Prof. Dr. rer. nat. Andreas Lux Dipl.-Inform. (FH) Hermann Schloss, M.Sc. Christian Bettinger, B.Sc. Trier, 18. Februar 2009

2 Kurzfassung - Abstract Die vorliegende Arbeit behandelt den Entwurf und die Implementierung einer Mehrspieler-Applikation, die zur Netzwerk-Kommunikation das zugrundeliegende Peer-to-Peer-Netzwerk P-Grid verwendet. Sowohl die Implementierung der Bewegung in einer virtuellen Welt, die Aufteilung selbiger auf mehrere Server, als auch die grafische Darstellung und ein Simulationsmodus mit autonom handelnden Agenten war Teil der Aufgabenstellung. Zur Lösung wurde das von Microsoft entwickelte XNA-Framework in der Version 3.0 herangezogen, welches verschiedenste Spiele-Entwicklungs-Schnittstellen und -Bibliotheken für C# bereitstellt. Die grafische Darstellung erfolgt in zweidimensionaler Vogelperspektive auf einen Teil der Spielwelt. Die Implementierung der autonomen Bewegung wird durch einen endlichen Automaten mit mehreren Zuständen umgesetzt. This thesis deals with the design and implementation of a multiplayer application, which uses the underlying Peer-to-Peer network P-Grid for network communication. The simulation of movement updates, partitioning of the virtual world, as well as the graphical representation and a simulation mode employing autonomously moving agents was part of the problem definition. In the course of this work the XNA framework 3.0 developed by Microsoft, which provides several game development interfaces and libraries for C#, was used in order to solve the above mentioned tasks. The graphical representation follows a two-dimensional bird s eye perspective on a part of the world. The implementation of autonomic movement is realized through a finite state machine with several states.

3 Inhaltsverzeichnis 1 Motivation und Problemstellung Nötige Vorkenntnisse XNA-Framework Funktionsweise des XNA-Frameworks HERA-Framework P-Grid Area of Interest Benutzung Menü Hauptmenü Optionsmenü Mehrspielermenü Server Erstellung Spielteilnahme als Client Entwurf Architektur und Schnittstellen des HERA-Frameworks Nachrichtensystem Application Layer PublicServer Client Simulationsmodus Implementierung GameApplication PublicServer Client Heratronos Participant Events Simulationsmodus

4 Inhaltsverzeichnis IV 6 Konfiguration Einstellung der Verbindungsdaten Server Client Zusammenfassung und Ausblick Literatur Index Inhalt der CD Design Concept

5 Abbildungsverzeichnis 2.1 Vier Schichten des XNA Frameworks Die Funktionsweise der Hauptschleife Lesbare Dateiformate der Content Pipeline Bearbeitungsvorgang beim Einlesen von Medieninhalten Heratronos Hauptmenü Abfrage bei Verlassen des Spiels Optionsmenü zum Einstellen von Farboptionen Mehrspielermenü Menü zur Erstellung eines Servers und Initialisierung des PGrid-Tries Beitritt als Spieler Benutzung eines Powerups Benutzung eines Ausgangs Schichten des HERA-Frameworks Nachrichtenaustausch zwischen zwei Instanzen Klassendiagramm: Application Layer Klassendiagramm: PublicServer Sequenzdiagramm Start AoI-Management am Beispiel einer Welt mit vier Räumen I AoI-Management am Beispiel einer Welt mit vier Räumen II Klassendiagramm: PublicServer, ServerWorldGrid und Partition Klassendiagramm: Client, MultiplayerGameplayScreen, GameObjectCollection, Player Klassendiagramm: Participant, Player und Enemy Übergang AoI-Grenze zwischen zwei Räumen Übergang AoI-Grenze verläuft durch einen Raum Klassendiagramm: Der endliche Automat für den Simulationsmodus Zustandsdiagramm: Zustände des endlichen Automaten Einstellungsdatei settings.xml für PublicServer A.1 Installation des XNA-Frameworks

6 Tabellenverzeichnis 3.1 Mögliche Tastatureingaben im Spielgeschehen Entscheidungstabelle für Weltentstehung Zuständigkeiten der Welt bei vier Räumen Empfangbare Nachrichten eines PublicServers Objekterstellung am Beispiel von vier Räumen

7 1 Motivation und Problemstellung Bereits Anfang der 80er Jahre entstanden die ersten Computer-Rollenspiele, die über ein Netzwerk mit mehreren Teilnehmern spielbar waren. Das Erste seiner Art war das Spiel Multi-User-Dungeon, welches von Roy Trubshaw und Richard Bartle an der Universität von Essex entwickelt wurde [Cuc01]. Obwohl dieses und ähnliche Spiele anfangs nur in geschlossenen Netzwerken mit wenigen Spielern gespielt wurden, entwickelten sie eine gewisse Eigendynamik. So kam es, dass zu Beginn der 90er Jahre aus der inzwischen geläufigen Spiele-Klassifikation MUD, welche eine Abkürzung eben jenes Multi-User-Dungeon darstellt, eine weitere Idee geboren wird: die grafischen Mehrspieler-Rollenspiele [Ken03]. Während Meridian 59 1, das erste grafische Online-Mehrspieler-Rollenspiel, gerade mal bis zu 250 Spieler pro Server 2 aufbieten konnte, wurde diese Grenze in den Folgejahren immer weiter nach oben ausgebaut. Der heutige Genre-Primus World of Warcraft 3 verfügt nach aktuellen Zahlen vom Dezember 2008 weltweit bereits über mehr als 11,5 Millionen Abonnenten 4. Der Trend zeigt weiterhin deutlich ansteigende Tendenz, da immer mehr Spiele-Entwickler am Erfolg der sogenannten Massively Multiplayer Online Games (MMOG) teilhaben wollen und gleichzeitig auch die Zahl der Internet- und Mehrspieler-Nutzer stetig wächst. Die daraus wiederum resultierende Medienwirksamkeit verleitet mehr und mehr Interessierte dazu, sich ebenfalls mit einem Avatar an einer virtuellen Welt zu beteiligen. Dies allerdings führt unweigerlich zu einem großen Problem: Die Spiel-Server, welche für die virtuellen Umgebungen vom Entwickler zur Verfügung gestellt werden müssen, stoßen Leistungs- und Verwaltungstechnisch immer öfter an ihre Grenzen. Diese werden durch umfangreichere, offene Spielwelten ohne große Ladezeiten und dem zusätzlich dazu steigenden Spielinhalt und Nachrichtenverkehr immer schneller erreicht. Nicht selten führt das Erreichen dieser Grenzen dazu, dass gewisse Server überfüllt sind und keine weiteren Spieler dort teilnehmen können und somit eine lange Wartezeit in Kauf nehmen oder auf andere Server ausweichen müssen World of Warcraft von Blizzard Entertainment 4

8 1 Motivation und Problemstellung 2 Aufgrund dessen sind andere Überlegungen notwendig, wie einem solchen Problem der Skalierbarkeit entgegengetreten werden kann. An der Universität Trier und der Fachhochschule Trier wurde folglich der HERA-Prototyp (HyperVerse Experimental Research Applications) entwickelt, welcher, anstatt der üblichen zentralisierten Client-Server Infrastruktur, eine dezentralisierte Peer-to-Peer-Technik bevorzugt und verwendet. Im Vordergrund dieser Arbeit steht der Entwurf und die Implementierung einer Anwendung, welche den erwähnten Ansatz aufgreift und das gewählte Prinzip zu Demonstrations- und Untersuchungszwecken umsetzt. Dabei soll eine prototypische Anwendung entwickelt werden, die darauf ausgerichtet ist, Vor- und Nachteile der Dezentralisierung aufzuzeigen. Dies schließt vor allem den konkurrierenden Bewegungsablauf unterschiedlicher Avatare in der Spielwelt als auch der konkurrierende Zugriff auf gemeinsam genutzte Daten mit den damit verbundenen, möglichen Inkonsistenzen mit ein und stellt den wesentlichen Kern der Aufgabenstellung dar. Die Anwendung soll sich in das HERA-Projekt eingliedern und die zur Verfügung gestellten Schnittstellen und Nachrichtensysteme der unterliegenden Schichten verwenden. Ebenso soll ein Simulationsmodus implementiert werden, der es den Avataren ermöglicht, sich selbstständig und ohne menschliche Einflussnahme in der Spielwelt zu bewegen. Die Spielwelt soll auf bis zu drei Server aufteilbar sein und ein Verfahren für den reibungslosen Übergang von einem auf den anderen Server muss entwickelt werden.

9 2 Nötige Vorkenntnisse 2.1 XNA-Framework 3.0 Das XNA 1 -Framework 3.0 ist eine, von Microsoft bereitgestellte, Sammlung von Spiele-Entwicklung-Schnittstellen zur Entwicklung von Computer- und Videospielen für die Windows- und XBOX360-Plattform. Das Framework wurde geschaffen, um sowohl einen schnelleren Entwicklungsprozess zu ermöglichen als auch für Einsteiger eine vereinfachte und kostengünstige Möglichkeit zur Entwicklung von Spielen zu bieten, die sogar auf eine Spielkonsole portiert werden können. Im Gegensatz zum DirectX-Framework zielt XNA darauf ab, neben den eigentlichen Schnittstellen auch Werkzeuge bereitzustellen, die den Entwicklungsvorgang unterstützen und beschleunigen. Die erste finale Version XNA Game Studio Express 1.0 kam mit einer eigenen Entwicklungsumgebung (IDE) daher, welche auf der Visual C# 2005 Express Umgebung aufbaut. Ab Version 2.0 ist auch die Benutzung von Visual Studio 2005 möglich, die in dieser Arbeit eingesetzte Version 3.0 setzt Visual Studio 2008 oder Visual C# 2008 Express voraus Funktionsweise des XNA-Frameworks Die einfachste Möglichkeit, den Aufbau von XNA zu verstehen, ist das Framework in mehreren Schichten ([Kon07]) zu betrachten (Abb. 2.1). Platform Die unterste Schicht bezeichnet man als Platform und beinhaltet die niedrigstufigen nativen APIs 2. Zu diesen APIs gehören unter anderem Direct3D: XNA verwendet zur Ausgabe von zweidimensionalen und dreidimensionalen Grafiken die Direct3D-Schnittstelle XACT: Als XACT wird die plattformübergreifende Schnittstelle zur Audio-Wiedergabe bezeichnet. 1 XNA steht für XNA s Not Acronymed. Bei Benutzung des Begriffs XNA ist in Zukunft immer das XNA-Framework gemeint wenn nicht anders vermerkt 2 Application Programming Interfaces

10 2.1 XNA-Framework Abbildung 2.1. Vier Schichten des XNA Frameworks XInput: XInput ist verantwortlich für die Kommunikation mit den verschiedensten Eingabegeräten. Darunter fallen Maus, Tastatur und auch Gamepads. XContent: Ein Teil der Content Pipeline (siehe 2.1.1). Core Framework Die Schicht des Core Frameworks ist, wie der englische Begriff vermuten lässt, der Kern von XNA. Dabei stellt XNA viele Hilfsmittel zur Verfügung, um Grafik- und Audiodaten zu verwalten und auszugeben und um Eingabegeräte anzusprechen. So zählt unter anderem die Bibliothek für mathematische Berechnungen wie Matrixmultiplikationen zu den immensen Erleichterungen in der Grafikberechnung. Extended Framework Als vorletzte Schicht ist das Extended Framework nicht weniger erwähnenswert, denn es ist neben dem Core Framework der Punkt, welcher die Spiele-Entwicklung deutlich vereinfacht. Die Schicht besteht hierbei aus zwei wesentlichen Komponenten: Application Model Mit Hilfe des Application Model soll sichergestellt werden, dass die Entwickler sich keine Gedanken über die Plattform machen müssen, auf der das Spiel lauffähig sein

11 2.1 XNA-Framework soll, sondern sich auf die Entwicklung des Spiels als solches fokussieren können. Es besteht beispielsweise keine Notwendigkeit zur expliziten Implementierung eines Applikationsfensters oder einer logischen Uhr, die den Ablauf koordiniert. All diese Funktionen werden bereits durch XNA bereitgestellt und können direkt verwendet werden. Das Application Model generiert die Hauptschleife (engl.: Main Loop oder auch Game Loop, siehe Abb. 2.2), welche den Ablauf der Anwendung bestimmt, übernimmt die Darstellung eines Fensters unter Windows und initialisiert alle notwendigen Daten. Abbildung 2.2. Die Funktionsweise der Hauptschleife Die Hauptschleife setzt sich aus folgenden Methoden zusammen: Initialize(): Dient zur Initialisierung von Diensten und Daten, die nicht grafisch sind. Der Aufruf erfolgt, nachdem das Spiel gestartet, aber bevor LoadContent aufgerufen wurde. LoadContent(): In der LoadContent-Methode findet die Initialisierung aller möglichen grafischen Daten statt. Die Methode wird von der vorher ausgeführten Initialize-Methode aufgerufen. Ein erneuter Aufruf findet immer dann statt, wenn die grafischen Daten erneut geladen werden müssen (zum Beispiel nach einem Zurücksetzen des Grafik-Gerätes).

12 2.1 XNA-Framework Update(GameTime gametime): Wird aufgerufen, sobald das Spiel feststellt, dass Spielberechnungen durchgeführt werden müssen. Jegliche logische Operationen, die für die Klasse oder das Spiel relevant sind, werden hier berechnet. Dies beinhaltet sowohl die Verwaltung der Spiel-Zustände als auch die Bearbeitung der Nutzereingaben und die Erneuerung von spielrelevanten Daten. Der Parameter gametime gibt Aufschluss über die Zeitspanne, die seit dem letzten Aufruf der Update-Methode vergangen ist. Draw(GameTime gametime): Wird aufgerufen, sobald das Spiel feststellt, dass die grafische Ausgabe neu gezeichnet werden muss. Das Ergebnis dieser Prozedur wird als Frame bezeichnet. Der Parameter gametime gibt Aufschluss über die Zeitspanne, die seit dem letzten Aufruf der Draw-Methode vergangen ist. UnloadContent(): Das Gegenstück zur LoadContent-Methode. Wird aufgerufen, sobald die grafischen Ressourcen entladen werden müssen. XNA verwendet die Technik der halbentkoppelten Engine-Komponenten. Dies bedeutet, die Logikberechnungen (KI 3, Benutzereingaben) in der Methode Update sind von der Grafikdarstellung der Methode Draw entkoppelt. Damit wird erreicht, dass Draw so oft wie möglich aufgerufen wird. Content Pipeline Bei der üblichen Spiele-Entwicklung ist es häufig nicht ganz einfach, Inhalt in ein Spiel zu integrieren. Oftmals fehlen nötige Import-Werkzeuge und müssen mühsam gesucht oder selbst implementiert werden. Zugleich ist es auch notwendig, dass die zu importierenden Daten noch aufbereitet werden müssen. Dies erfolgt bei größeren Unternehmen in der Regel von eigenen Arbeitsgruppen, die sich nur auf diese Aufgabe spezialisiert haben. Da XNA darauf abzielt, möglichst viele Dinge der Entwicklung zu vereinfachen, stellt die Content Pipeline einen großen Teil dieser Bemühung dar. Sie ermöglicht eine relativ einfache Integration der Daten in das Spiel, wenn diese in den Dateiformaten aus Abbildung 2.3 vorliegen. Sowohl Texturen, Grafikmodelle, Effektmaterialien oder Audiodateien können durch die Benutzung der Content Pipeline geladen und aufbereitet werden, sodass die Konsole diese versteht. Dies geschieht während des Kompiliervorgangs der Anwendung wie folgt: Nachdem der Importer die Dateien eingelesen hat, befinden sich die Daten im Content DOM 4. Der zuständige Prozessor übernimmt wiederum die Daten vom DOM und erstellt entsprechende Datenobjekte, welche daraufhin zur Laufzeit ohne erneute Aufbereitung benutzt werden können (Abb. 2.4). Dies hat zur Folge, dass der Entwickler sich nicht mehr um alle Eventualitäten beim Einbringen von Inhalt in das Spiel kümmern muss. Um den Inhalt später im Spiel benutzen zu können wird der 3 Bei Benutzung der Abkürzung KI ist in Zukunft immer der Begriff künstliche Intelligenz gemeint 4 Der Begriff DOM bedeutet Document Object Model und stammt aus dem HTML/XML Bereich

13 2.2 HERA-Framework 7 Abbildung 2.3. Lesbare Dateiformate der Content Pipeline Content Manager benötigt. Diese Komponente wurde entwickelt, um die Medieninhalte einfach und problemlos zu laden und stellt sicher, dass alle assoziierten Inhalte zur gleichen Zeit geladen werden. [Tea06] Abbildung 2.4. Bearbeitungsvorgang beim Einlesen von Medieninhalten Games Die oberste und zugleich letzte Schicht dient schlussendlich dem Zweck, vom Entwickler mit Inhalt gefüllt zu werden. Die Anwendung dieser Arbeit ist somit Teil dieser Schicht und nutzt zur Umsetzung hauptsächlich die unterliegenden Schichten Core Framework (siehe 2.1.1) und Extended Framework (siehe 2.1.1). 2.2 HERA-Framework Das HERA-Framework wurde entworfen, um zu untersuchen, welche Chancen und Möglichkeiten eine dezentralisierte Infrastruktur für Mehrspieler-Spiele bereitstellt und welche Probleme diese aufwerfen kann. Bei diesen Untersuchungen steht viel mehr die Evaluierung diverser Algorithmen im Vordergrund, als eine aufwändige grafische Repräsentation. Da der Aufbau des Frameworks modular und generisch gestaltet ist, können die eingesetzten Verfahren unkompliziert durch andere ersetzt werden, ohne das gesamte System anpassen zu müssen. Das in der hier vorliegenden Version des Frameworks eingesetzte Verfahren zur Datenverwaltung ist P-Grid.

14 2.2 HERA-Framework P-Grid Der HERA-Prototyp verwendet zur Verwaltung anwendungsrelevanter Daten das Overlay-Netz P-Grid [Abe01], welches wie andere ähnliche Netze (Gnutella [JAB01], Tapestry [ZHS + 04], uvm.) Datenstrukturen und Algorithmen für ein dezentralisiertes Netzwerk definiert. P-Grid basiert auf einem Präfixbaum-Konzept. Dies besagt, dass die Position eines Knotens innerhalb des Baumes durch seinem binären Pfad eindeutig bestimmt ist und ebenso seine Zuständigkeit für Objekte und einen Bereich der Welt durch besagtem Pfad vorgegeben wird. Ein Knoten der noch nicht Teil eines strukturierten P-Grids ist, verfügt über einen leeren Pfad {}. Treffen zwei solche Knoten aufeinander, unterteilen sie den gemeinsamen Suchraum, bei dem ein Knoten den Pfad {0} und der andere den Pfad {1} erhält. Jeder der beiden Knoten ist nun für einen Teil des Suchraums verantwortlich. Trifft nun ein weiterer Knoten mit leerem Pfad auf einen der bereits in einem strukturierten P-Grid vorhandenen Knoten, so wird eine weitere Unterteilung des Suchraums durchgeführt. P-Grid ist ebenso für die Verwaltung von Objekten der Anwendung zuständig. Ein Objekt verfügt über eine beliebige Objektkennung, die auf einen binären String abgebildet werden kann und an einem der Knoten des PGrid-Tries veröffentlicht wird. Der binäre String, welcher zur Bestimmung des zur Veröffentlichung zuständigen Knotens anhand des längsten gemeinsamen Präfixes verwendet wird, ist nicht eindeutig, d.h. die Abbildung mehrerer Objektkennungen können den gleichen binären String ergeben. Somit ist es möglich, dass verschiedene Objekte am gleichen Knoten angemeldet werden. Dieser Knoten verfügt fortan über die notwendigen Referenzen auf das Objekt. Ändert sich die Anordnung des Baumes, kann es möglich sein, dass sich die Zuständigkeit von Knoten für bestimmte Objekte ebenso verändert Area of Interest Die Welt, in der ein Mehrspieler-Spiel ausgetragen wird, ist oftmals relativ umfangreich und enthält sowohl viele Objekte als auch viele andere Daten wie Positionen von Avataren, welche sich in der Welt befinden. Durch diesen Umstand ist es vergleichsweise schwierig, die gesamte Verwaltung einem einzigen Server aufzutragen. Eine Aufteilung der Welt in verschiedene Area of Interests (AoI) hingegen macht es möglich, dass die Welt in kleinere Partitionen geteilt wird, bei der ein Server für die jeweilige Verwaltung zuständig ist. Alle AoIs zusammengefasst bilden somit wieder eine komplette Welt. Der Vorteil dieses Vorgehens besteht darin, dass die Teilbereiche in der Größe variabel sind und bei Bedarf die Welt auf beliebig viele Server unterteilt werden kann. Umso mehr Server die Welt unter sich aufteilen, desto geringer fällt die Größe der einzelnen AoIs aus und desto weniger Verwaltungsaufwand muss ein Server betreiben. Auch die in dieser Arbeit entworfene Anwendung implementiert das Verfahren der AoIs, indem die Welt in mehrere kleinere Partitionen geteilt und auf verschiedene Server verlagert wird. Die Zuteilung eines Abschnittes der Welt zu einem Server erfolgt über die in beschriebene P-Grid-Architektur.

15 3 Benutzung 3.1 Menü Das Spiel setzt sich aus verschiedensten Bildschirmseiten zusammen. Außerhalb vom Spielgeschehen befindet sich der Benutzer in einer Menüstruktur, welche in den folgenden Abschnitten beschrieben wird Hauptmenü Nach Anwendungsstart befindet sich der Benutzer zu allererst im Hauptmenü des Spiels (Abb. 3.1). Abbildung 3.1. Heratronos Hauptmenü

16 3.1 Menü 10 Der Hintergrund besteht hier, wie auch in allen Folgemenüs, aus in einem 3D- Modellierungsprogramm vorgerendertem Bildausschnitt. Der Benutzer kann mit den Pfeiltasten oben und unten auf der Tastatur die einzelnen Menüpunkte markieren und mit der Eingabetaste selbige selektieren. Wird ein Menüpunkt mit der Eingabetaste ausgewählt, erfolgt eine Überführung des Menüs in einen Folgezustand. Einzig der Menüpunkt Exit leitet nicht in ein anderes Menü weiter, sondern öffnet eine Abfrage (Abb. 3.2), ob das Spiel auch wirklich verlassen werden soll. Diese Abfrage ist ebenso durch betätigen der Escape-Taste im Hauptmenü aufrufbar und kann auf gleichem Wege auch wieder geschlossen werden. Abbildung 3.2. Abfrage bei Verlassen des Spiels Optionsmenü Das Spiel bietet dem Anwender im Optionsmenü eine Einstellungsmöglichkeit für die grafische Darstellung. Dem Spieler steht es frei, die Farbgebung seines Avatars in der Spielumgebung selbst zu wählen. Die Farbe bestimmt sich aus dem RGB- Farbraum 1 und kann durch drei verschiedene Farbregler eingestellt werden (Abb. 3.3). Über den Menüpunkt Back oder das Betätigen der Escape-Taste wird der Bildschirm wieder in das Hauptmenü überführt. Abbildung 3.3. Optionsmenü zum Einstellen von Farboptionen Mehrspielermenü Der für die Anwendung wichtigste Teil befindet sich im Mehrspielermenü (Abb. 3.4), in dem die Entscheidung getroffen wird, ob ein Server erstellt oder als Avatar 1 RGB wird bei Farbbildschirmen eingesetzt und bedeutet Rot-Grün-Blau

17 3.1 Menü 11 einem solchen beigetreten werden soll. Die Auswahl des Menüpunktes Join as Client bewirkt eine Verbindung zu dem in Kapitel 6.1 angegebenen Server und resultiert in einem Beitritt zu dem aktuell laufenden Spiel auf selbigem (siehe Kapitel 3.2). Abbildung 3.4. Mehrspielermenü Server Erstellung Im Menü für die Server-Erstellung (Abb. 3.5) muss vor dem eigentliches Starten des Servers die Einstellung erfolgen, wie groß die Spielwelt ausfallen soll. Dazu existiert der Menüpunkt RoomCount, über den man die Anzahl an Räumen festlegen kann, aus denen die Welt gebildet wird. Mit den Pfeiltasten rechts und links auf der Tastatur kann die Anzahl erhöht oder verringert werden. Der Standardwert liegt beim ersten Start der Applikation bei vier Räumen. Sollte eine Veränderung vorgenommen werden, wird diese für spätere Benutzungen abgespeichert. Die Mindestanzahl an Räumen ist der Wert 1, ein Maximalwert ist nicht vorhanden. Aus Gründen des Aufwands wurden nur die Anzahl an Räumen von 1 <= X <= 16 getestet. Verbindet sich der Server zu einem Weiteren, um eine bestehende Spielwelt aufzuteilen, ist die Angabe der Raumanzahl zu vernachlässigen, da diese durch den bestehenden Server und dessen bereits existierende Spielwelt vorgegeben wird und eine erneute Angabe in diesem Fall keine Verwendung findet. Über den Menüpunkt Start wird der Server gestartet und dieser verbindet Abbildung 3.5. Menü zur Erstellung eines Servers und Initialisierung des PGrid- Tries sich, je nach Einstellung, zu einem bereits vorhandenen Server oder generiert die

18 3.2 Spielteilnahme als Client 12 Spielwelt. Ein Fortschrittsbalken der zugrunde liegenden PGrid-Topologie zeigt den aktuellen Status der Server-Erstellung an. 3.2 Spielteilnahme als Client Nachdem der Menüeintrag Join as Client im Mehrspielermenü (siehe Kapitel 3.1.3) ausgewählt wurde, verbindet sich die Anwendung mit dem in der Konfigurationsdatei angegebenen Server und überführt den Bildschirm in das Spielgeschehen (Abb. 3.6). Abbildung 3.6. Beitritt als Spieler Der Avatar in der Spielwelt kann anschließend durch Eingaben über die Tastatur in der Umgebung bewegt werden (Tabelle 3.1). Nach Aktivierung des Simulationsmodus durch Betätigung der F8-Taste wird der Avatar durch eine künstliche Intelligenz gesteuert. Benutzereingaben haben, bis auf das Starten/Stoppen der Fahrzeugbewegung, keine Auswirkungen mehr auf sein Verhalten. Während dieser Zeit bewegt sich der Avatar völlig autonom durch die Spielwelt. Der Modus kann durch erneutes betätigen der F8-Taste wieder deaktiviert werden. In jedem Raum wird an zufälliger Position ein Powerup-Objekt platziert, welches durch den Benutzer eingesammelt werden kann, indem er mit seinem Avatar über dieses fährt. Daraufhin erscheint in der linken oberen Ecke des Bildschirms, im grau umrandeten Feld, ein Fragezeichen. Dies ist ein Indikator dafür, dass man

19 3.2 Spielteilnahme als Client 13 Tastatureingabe Auswirkung F12 Starten/Stoppen der Fahrzeugbewegung F8 Ein-/Ausschalten der künstlichen Intelligenz (Simulationsmodus) Pfeiltaste links Fahrzeugrichtung um 90 nach links ändern Pfeiltaste rechts Fahrzeugrichtung um 90 nach rechts ändern Eingabetaste Powerup benutzen (falls eingesammelt) Tabelle 3.1. Mögliche Tastatureingaben im Spielgeschehen sich im Besitz eines Powerups befindet und dieses auch nutzbar ist. Durch betätigen der Eingabetaste wird dieses aktiviert und das Fragezeichen weicht einer Zeitangabe, wie lange das Powerup noch aktiviert bleibt; ebenso wird dem Spieler über eine Nachricht mitgeteilt, welchen Typs das Powerup ist (Abb. 3.7). Abbildung 3.7. Benutzung eines Powerups Ferner besteht die Möglichkeit, den Raum durch die Ausgänge, welche sich in allen vier Himmelsrichtungen befinden, zu verlassen. Je nachdem, welcher Raum dem jetzigen in der erwählten Richtung angeschlossen ist, findet ein Übergang dorthin statt. Der Spieler hat bis zu dem Zeitpunkt des Übergangs keinerlei Wissen über die Beschaffenheit des Raums (Abb. 3.8). Abbildung 3.8. Benutzung eines Ausgangs

20 4 Entwurf Entsprechend der Aufgabenstellung soll die entwickelte Anwendung auf vorhandene Schnittstellen des HERA-Prototyps aufbauen und in das Projekt integriert werden. Hierbei ist zu beachten, dass die oberste Schicht durch die Anwendung gebildet und in eine Hierarchie, bestehend aus Client und PublicServer, unterworfen sein wird. Bis zu drei Server sollen die Welt in unterschiedliche AoIs (Kapitel 2.2.2) einteilen können und den Klienten Umgebungsinformationen zur Verfügung stellen. Die dazu benötigten Zuständigkeitsbereiche werden von P-Grid bestimmt. Ein Client repräsentiert einen Avatar in der virtuellen Welt und bestimmt seine Zugehörigkeit zu einem Server über seine Position in jener Welt. Dabei ist es wichtig, einen Weg zu finden, der einen Übergang zwischen den verschiedenen Servern ermöglicht. Aufgrund des Peer-to-Peer Ansatzes ist es zur Untersuchung von Inkonsistenzen erforderlich, eine Anwendung zu implementieren, welche die zwei wesentlich Faktoren des konkurrierenden Bewegungsablaufs und des konkurrierenden Zugriffs auf gemeinsame Objekte berücksichtigt und ermöglicht. 4.1 Architektur und Schnittstellen des HERA-Frameworks Der HERA-Prototyp unterteilt sich in insgesamt drei Schichten (Abb. 4.1). Beginnend auf der untersten Schicht, befindet sich dort das Communication Layer, welches für die Kommunikation verschiedener Knoten untereinander und der dazugehörigen Datenübermittlung über das TCP-Protokoll verantwortlich ist. Darüber ist das Topology Layer angesiedelt. Die Implementierung der dezentralisierten Peer-to-Peer Infrastruktur zur Verwaltung von spezifischen Daten ist für diese Schicht vorgesehen. In der aktuellen Implementierung beruht das Verfahren auf dem Overlay-Netz P-Grid. Als letzte Schicht wird das Application Layer betrachtet, welches für Anwendungen auf Basis der anderen Module gedacht ist. Hierauf wird in Kapitel 4.2 näher eingegangen. Da Peer-to-Peer-Anwendungen in gewissen Situationen mit inkonsistenten Zuständen konfrontiert werden, ist ebenso eine Implementierung zur Berechnung von Konsistenzwerten auf Basis einer Fuzzy-Engine Teil des Frameworks. Der Consistency Provider wird in der Anwendung der Application Layer-Schicht verwendet.

Projekt AGB-10 Fremdprojektanalyse

Projekt AGB-10 Fremdprojektanalyse Projekt AGB-10 Fremdprojektanalyse 17. Mai 2010 1 Inhaltsverzeichnis 1 Allgemeines 3 2 Produktübersicht 3 3 Grundsätzliche Struktur und Entwurfsprinzipien für das Gesamtsystem 3 3.1 Die Prefuse Library...............................

Mehr

Einführung in die OPC-Technik

Einführung in die OPC-Technik Einführung in die OPC-Technik Was ist OPC? OPC, als Standartschnittstelle der Zukunft, steht für OLE for Process Control,und basiert auf dem Komponentenmodel der Firma Microsoft,dem Hersteller des Betriebssystems

Mehr

3. Konzepte der objektorientierten Programmierung

3. Konzepte der objektorientierten Programmierung 3. Konzepte der objektorientierten Programmierung 3.1 Basiskonzepte 3.2 Generalisierung / Spezialisierung 3.3 Aggregation 3.4 Assoziation 3.5 Nachrichten 3.6 Polymorphismus 3. Konzepte der Objektorientierung

Mehr

Von der UML nach C++

Von der UML nach C++ 22 Von der UML nach C++ Dieses Kapitel behandelt die folgenden Themen: Vererbung Interfaces Assoziationen Multiplizität Aggregation Komposition Die Unified Modeling Language (UML) ist eine weit verbreitete

Mehr

Die Hifidelio App Beschreibung

Die Hifidelio App Beschreibung Die Hifidelio App Beschreibung Copyright Hermstedt 2010 Version 1.0 Seite 1 Inhalt 1. Zusammenfassung 2. Die Umgebung für die Benutzung 3. Der erste Start 4. Die Ansicht Remote Control RC 5. Die Ansicht

Mehr

Methoden zur adaptiven Steuerung von Overlay-Topologien in Peer-to-Peer-Diensten

Methoden zur adaptiven Steuerung von Overlay-Topologien in Peer-to-Peer-Diensten Prof. Dr. P. Tran-Gia Methoden zur adaptiven Steuerung von Overlay-Topologien in Peer-to-Peer-Diensten 4. Würzburger Workshop IP Netzmanagement, IP Netzplanung und Optimierung Robert Henjes, Dr. Kurt Tutschku

Mehr

3.9 Grundelemente einer Benutzeroberfläche

3.9 Grundelemente einer Benutzeroberfläche 92 3 Grundlagen einer ios-anwendung 3.8.4 Target-Actions Einer der häufigsten Anwendungsfälle bei einer Oberfläche ist das Betätigen einer Schaltfläche durch einen Anwender, woraufhin eine bestimmte Aktion

Mehr

Grundlagen verteilter Systeme

Grundlagen verteilter Systeme Universität Augsburg Insitut für Informatik Prof. Dr. Bernhard Bauer Wolf Fischer Christian Saad Wintersemester 08/09 Übungsblatt 5 26.11.08 Grundlagen verteilter Systeme Lösungsvorschlag Aufgabe 1: Erläutern

Mehr

PIWIN 1 Übung Blatt 5

PIWIN 1 Übung Blatt 5 Fakultät für Informatik Wintersemester 2008 André Gronemeier, LS 2, OH 14 Raum 307, andre.gronemeier@cs.uni-dortmund.de PIWIN 1 Übung Blatt 5 Ausgabedatum: 19.12.2008 Übungen: 12.1.2009-22.1.2009 Abgabe:

Mehr

White Paper. Embedded Treiberframework. Einführung

White Paper. Embedded Treiberframework. Einführung Embedded Treiberframework Einführung White Paper Dieses White Paper beschreibt die Architektur einer Laufzeitumgebung für Gerätetreiber im embedded Umfeld. Dieses Treiberframework ist dabei auf jede embedded

Mehr

SOFTWARE FÜR PRG-APPLIKATIONEN

SOFTWARE FÜR PRG-APPLIKATIONEN SOFTWARE FÜR PRG-APPLIKATIONEN Autor: Frank Bergmann Letzte Änderung: 04.12.2014 09:09 1 1 Inhaltsverzeichnis 1 Inhaltsverzeichnis... 2 2 Allgemeines... 3 3 Installation und Programmaufruf... 3 4 Einstellungen...

Mehr

Collaborative Virtual Environments

Collaborative Virtual Environments Collaborative Virtual Environments Stefan Lücking Projektgruppe Kreativität und Technik AG Domik WS 02/03 09.01.2003 1/35 Was sind CVE? Versuch einer Definition : Ein CVE ist ein Programm, das eine virtuelle

Mehr

iid software tools QuickStartGuide iid RFID read write unit 13.56 MHz closed coupling RFID iid interface configuration tool

iid software tools QuickStartGuide iid RFID read write unit 13.56 MHz closed coupling RFID iid interface configuration tool iid software tools QuickStartGuide iid software tools RFID read write unit 13.56 MHz closed coupling RFID iid interface configuration tool microsensys Feb 2014 Einleitung Das iid interface configuration

Mehr

Handbuch zu AS Connect für Outlook

Handbuch zu AS Connect für Outlook Handbuch zu AS Connect für Outlook AS Connect für Outlook ist die schnelle, einfache Kommunikation zwischen Microsoft Outlook und der AS Datenbank LEISTUNG am BAU. AS Connect für Outlook Stand: 02.04.2013

Mehr

Bedienungsanleitung für den SecureCourier

Bedienungsanleitung für den SecureCourier Bedienungsanleitung für den SecureCourier Wo kann ich den SecureCourier nach der Installation auf meinem Computer finden? Den SecureCourier finden Sie dort, wo Sie mit Dateien umgehen und arbeiten. Bei

Mehr

Agenda. Clients aus drei verschiedenen Perspektiven: Was ist ein Dialog? Komponentenarchitektur innerhalb eines Dialoges

Agenda. Clients aus drei verschiedenen Perspektiven: Was ist ein Dialog? Komponentenarchitektur innerhalb eines Dialoges Komponentenbasierte Client-Architektur Hamburg, 16.11.2007 Bernd Olleck IT-Beratung Olleck Agenda Clients aus drei verschiedenen Perspektiven: Technische Infrastruktur Fachliche Sicht Aufgaben eines Clients

Mehr

AuReGa (Augmented Reality Game)

AuReGa (Augmented Reality Game) (Augmented Reality Game) Eine Präsentation im Rahmen von NOP Night of Projects Master-Projekt Angewandte Informatik 26.11.2010 Vorstellung des Projektes Beamer projiziert das Spielfeld Personen interagieren

Mehr

Die Bedeutung abstrakter Datentypen in der objektorientierten Programmierung. Klaus Kusche, September 2014

Die Bedeutung abstrakter Datentypen in der objektorientierten Programmierung. Klaus Kusche, September 2014 Die Bedeutung abstrakter Datentypen in der objektorientierten Programmierung Klaus Kusche, September 2014 Inhalt Ziel & Voraussetzungen Was sind abstrakte Datentypen? Was kann man damit grundsätzlich?

Mehr

OPC-Server VM OPC. Anleitung. Installation, Konfiguration, Verwendung. Version 1.01

OPC-Server VM OPC. Anleitung. Installation, Konfiguration, Verwendung. Version 1.01 Installation, Konfiguration, Verwendung Version 1.01 Seite 2 von 20 OPC-Server VM OPC Revision Version Erstellt am Versionsnummer Bemerkung 1.00 26.07.2013 Erstellung 1.01 05.11.2013 2.14 - Reiter der

Mehr

Integration Services - Dienstarchitektur

Integration Services - Dienstarchitektur Integration Services - Dienstarchitektur Integration Services - Dienstarchitektur Dieser Artikel solle dabei unterstützen, Integration Services in Microsoft SQL Server be sser zu verstehen und damit die

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 7. Grafische Benutzeroberflächen

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 7. Grafische Benutzeroberflächen 1 Kapitel 7 Ziele 2 (Graphical User Interfaces) als Anwendungsbeispiel für die objektorientierte Programmierung kennenlernen Benutzung von Vererbung zur Erstellung individueller GUI-Klassen durch Erweiterung

Mehr

webpdf für VMware SoftVision Development GmbH Kurfürstenstraße 15 36037 Fulda, Deutschland Tel.: +49 (0)661 25100-0 Fax: +49 (0)661 25100-25

webpdf für VMware SoftVision Development GmbH Kurfürstenstraße 15 36037 Fulda, Deutschland Tel.: +49 (0)661 25100-0 Fax: +49 (0)661 25100-25 webpdf für VMware SoftVision Development GmbH Kurfürstenstraße 15 36037 Fulda, Deutschland Tel.: +49 (0)661 25100-0 Fax: +49 (0)661 25100-25 E-Mail: sales@softvision.de Web: www.softvision.de Inhaltsverzeichnis

Mehr

C# Tutorial Part 1. Inhalt Part 1. Einleitung. Vorbereitung. Eagle Eye Studios. Einleitung Vorbereitung Das erste Projekt

C# Tutorial Part 1. Inhalt Part 1. Einleitung. Vorbereitung. Eagle Eye Studios. Einleitung Vorbereitung Das erste Projekt Eagle Eye Studios C# Tutorial Part 1 Inhalt Part 1 Einleitung Vorbereitung Das erste Projekt Einleitung Wer sich mit dem Programmieren schon einigermaßen auskennt, kann diesen Abschnitt überspringen. Programmieren,

Mehr

3 Task-Leiste Ziele des Kapitels:

3 Task-Leiste Ziele des Kapitels: 3 Task-Leiste Ziele des Kapitels: $ Die Task-Leiste ist ein zentrales Element von Windows 95. Dieses Kapitel zeigt Ihnen, wie Sie die Task-Leiste bei Ihrer Arbeit mit Windows 95 sinnvoll einsetzen können.

Mehr

Das Interceptor Muster

Das Interceptor Muster Das Interceptor Muster Implementierung des Interceptor Musters basierend auf OSGi and Friends Benjamin Friedrich Hochschule für Technik und Wirtschaft des Saarlandes Praktische Informatik - Entwurfsmuster

Mehr

Mobile Security Configurator

Mobile Security Configurator Mobile Security Configurator 970.149 V1.1 2013.06 de Bedienungsanleitung Mobile Security Configurator Inhaltsverzeichnis de 3 Inhaltsverzeichnis 1 Einführung 4 1.1 Merkmale 4 1.2 Installation 4 2 Allgemeine

Mehr

Server Installation 1/6 20.10.04

Server Installation 1/6 20.10.04 Server Installation Netzwerkeinrichtung Nach der Installation müssen die Netzwerkeinstellungen vorgenommen werden. Hierzu wird eine feste IP- Adresse sowie der Servername eingetragen. Beispiel: IP-Adresse:

Mehr

Gefahren aus dem Internet 1 Grundwissen April 2010

Gefahren aus dem Internet 1 Grundwissen April 2010 1 Grundwissen Voraussetzungen Sie haben das Internet bereits zuhause oder an der Schule genutzt. Sie wissen, was ein Provider ist. Sie wissen, was eine URL ist. Lernziele Sie wissen, was es braucht, damit

Mehr

XNA XNA s Not Acronymed. Vorlesung Virtual Reality Wintersemester 2007/2008 Jonas Schmidt, Martin Schiewe

XNA XNA s Not Acronymed. Vorlesung Virtual Reality Wintersemester 2007/2008 Jonas Schmidt, Martin Schiewe XNA XNA s Not Acronymed Vorlesung Virtual Reality Wintersemester 2007/2008 Jonas Schmidt, Martin Schiewe Überblick I. XNA XNA s Not Acronymed II. III. IV. I. Entwicklung von XNA II. Einordnung in die Microsoft-Welt

Mehr

Internet for Guests. Interfaces. 1.0.0 Deutsch. Interfaces Seite 1/14

Internet for Guests. Interfaces. 1.0.0 Deutsch. Interfaces Seite 1/14 Internet for Guests Interfaces 1.0.0 Deutsch Interfaces Seite 1/14 Inhalt 1. PMS... 3 1.1 Hinweise... 3 1.2 Konfiguration... 4 1.2.1 VIP/Mitgliedschaft: VIP Gast kostenloser Betrieb... 5 1.2.2 VIP/Mitgliedschaft:

Mehr

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI Universität Osnabrück Drei-Schichten-Architektur 3 - Objektorientierte Programmierung in Java Vorlesung 6: 3-Schichten-Architektur Fachkonzept - GUI SS 2005 Prof. Dr. F.M. Thiesing, FH Dortmund Ein großer

Mehr

TimePunch. TimePunch Command. Benutzerhandbuch 14.08.2013. TimePunch KG, Wormser Str. 37, 68642 Bürstadt

TimePunch. TimePunch Command. Benutzerhandbuch 14.08.2013. TimePunch KG, Wormser Str. 37, 68642 Bürstadt TimePunch TimePunch Command Benutzerhandbuch 14.08.2013 TimePunch KG, Wormser Str. 37, 68642 Bürstadt Dokumenten Information: Dokumenten-Name Benutzerhandbuch, TimePunch Command Revisions-Nummer 37 Gespeichert

Mehr

Objektorientiertes Programmieren für Ingenieure

Objektorientiertes Programmieren für Ingenieure Uwe Probst Objektorientiertes Programmieren für Ingenieure Anwendungen und Beispiele in C++ 18 2 Von C zu C++ 2.2.2 Referenzen und Funktionen Referenzen als Funktionsparameter Liefert eine Funktion einen

Mehr

Programmierung über den ARCNET-Bus. Programmiersystem. 907 PC 331 Programmier- und Testsoftware. ABB Schaltund Steuerungstechnik

Programmierung über den ARCNET-Bus. Programmiersystem. 907 PC 331 Programmier- und Testsoftware. ABB Schaltund Steuerungstechnik Programmierung über den ARCNET-Bus Programmiersystem 907 PC 331 Programmier- und Testsoftware ABB Schaltund Steuerungstechnik Inhaltsverzeichnis Einbindung ARCNET-Treiber in 907PC331... 3 1 Allgemeine

Mehr

DIE GRUNDLAGEN DER FERNÜBERWACHUNG

DIE GRUNDLAGEN DER FERNÜBERWACHUNG DIE GRUNDLAGEN DER FERNÜBERWACHUNG Verbraucherleitfaden Version 1.0 Deutsch Einleitung Derzeit sind am Markt zahlreiche Videoüberwachungssysteme erhältlich, die einen digitalen Zugriff über Netzwerkverbindungen

Mehr

Buzzword Bingo Game Documentation (Java based Game)

Buzzword Bingo Game Documentation (Java based Game) Buzzword Bingo Game Documentation (Java based Game) Meppe Patrick Djeufack Stella Beltran Daniel April 15, 2011 1 Inhaltsverzeichnis 1 Einleitung 3 2 Aufgabenstellung 3 3 Allgemeines zu Buzzword Bingo

Mehr

Erste Schritte mit HG 2

Erste Schritte mit HG 2 Erste Schritte mit HG 2 Malte Ried FH-Gießen Version: 1.0 21. November 2003 Inhaltsverzeichnis 1 Einführung 2 2 Allgemeines 2 2.1 Koordinaten...................................... 2 2.2 Farben.........................................

Mehr

Das Handbuch zu Vier gewinnt. Martin Heni Eugene Trounev Benjamin Meyer Johann Ollivier Lapeyre Anton Brondz Deutsche Übersetzung: Maren Pakura

Das Handbuch zu Vier gewinnt. Martin Heni Eugene Trounev Benjamin Meyer Johann Ollivier Lapeyre Anton Brondz Deutsche Übersetzung: Maren Pakura Martin Heni Eugene Trounev Benjamin Meyer Johann Ollivier Lapeyre Anton Brondz Deutsche Übersetzung: Maren Pakura 2 Inhaltsverzeichnis 1 Einführung 5 2 Spielanleitung 6 3 Spielregeln, Spielstrategien und

Mehr

Prototypvortrag. Exploiting Cloud and Infrastructure as a Service (IaaS) Solutions for Online Game Service Provisioning. Projektseminar WS 2009/10

Prototypvortrag. Exploiting Cloud and Infrastructure as a Service (IaaS) Solutions for Online Game Service Provisioning. Projektseminar WS 2009/10 Prototypvortrag Exploiting Cloud and Infrastructure as a Service (IaaS) Solutions for Online Game Service Provisioning Projektseminar WS 2009/10 Eugen Fot, Sebastian Kenter, Michael Surmann AG Parallele

Mehr

ANDROID. Analyse der Android Plattform. Andre Rein, Johannes Florian Tietje. 28. Oktober 2010. FH-Gieÿen-Friedberg Android Praktikum

ANDROID. Analyse der Android Plattform. Andre Rein, Johannes Florian Tietje. 28. Oktober 2010. FH-Gieÿen-Friedberg Android Praktikum Analyse der Android Plattform Andre Rein, Johannes Florian Tietje FH-Gieÿen-Friedberg Android Praktikum 28. Oktober 2010 Topics 1 Übersicht Android Plattform Application Framework Activities und Services

Mehr

Business Process Execution Language. Christian Vollmer Oliver Garbe

Business Process Execution Language. Christian Vollmer <christian.vollmer@udo.edu> Oliver Garbe <oliver.garbe@udo.edu> Business Process Execution Language Christian Vollmer Oliver Garbe Aufbau Was ist BPEL? Wofür ist BPEL gut? Wie funktioniert BPEL? Wie sieht BPEL aus?

Mehr

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

Suche schlecht beschriftete Bilder mit Eigenen Abfragen Suche schlecht beschriftete Bilder mit Eigenen Abfragen Ist die Bilderdatenbank über einen längeren Zeitraum in Benutzung, so steigt die Wahrscheinlichkeit für schlecht beschriftete Bilder 1. Insbesondere

Mehr

Installationshinweise zur lokalen Installation des KPP Auswahltools 7.6

Installationshinweise zur lokalen Installation des KPP Auswahltools 7.6 Installationshinweise zur lokalen Installation des KPP Auswahltools 7.6 Installationsvoraussetzungen: Die Setup-Routine benötigt das DotNet-Framework 4.0 Client Profile, das normalerweise über Microsoft

Mehr

- Entwurfsphase: Entwurfsbeschreibung Gesamtsystem - Version: 1.0

- Entwurfsphase: Entwurfsbeschreibung Gesamtsystem - Version: 1.0 Projektbezeichnung Projektleiter Verantwortlich - Entwurfsphase: Entwurfsbeschreibung Gesamtsystem - Version: 1.0 MSP-13 - Integration eines Semantischen Tagging Systems in Microsoft Sharepoint Martin

Mehr

Bedienung von BlueJ. Klassenanzeige

Bedienung von BlueJ. Klassenanzeige Im Folgenden werden wichtige Funktionen für den Einsatz von BlueJ im Unterricht beschrieben. Hierbei wird auf den Umgang mit Projekten, Klassen und Objekten eingegangen. Abgeschlossen wird dieses Dokument

Mehr

ZMI Benutzerhandbuch Sophos. Sophos Virenscanner Benutzerhandbuch

ZMI Benutzerhandbuch Sophos. Sophos Virenscanner Benutzerhandbuch ZMI Benutzerhandbuch Sophos Sophos Virenscanner Benutzerhandbuch Version: 1.0 12.07.2007 Herausgeber Zentrum für Medien und IT ANSCHRIFT: HAUS-/ZUSTELLADRESSE: TELEFON: E-MAIL-ADRESSE: Zentrum für Medien

Mehr

Zeichnen von Graphen. graph drawing

Zeichnen von Graphen. graph drawing Zeichnen von Graphen graph drawing WS 2006 / 2007 Gruppe: D_rot_Ala0607 Christian Becker 11042315 Eugen Plischke 11042351 Vadim Filippov 11042026 Gegeben sei ein Graph G = (V; E) Problemstellung V E =

Mehr

EDV-Hausleitner GmbH Dokumentation Online Bestellungen

EDV-Hausleitner GmbH Dokumentation Online Bestellungen EDV-Hausleitner GmbH Dokumentation Online Bestellungen Von Michael Obermüller Entwicklung EDV Hausleitner GmbH Bürgerstraß 66, 4020 Linz Telefon: +43 732 / 784166, Fax: +43 1 / 8174955 1612 Internet: http://www.edv-hausleitner.at,

Mehr

Einführung in Automation Studio

Einführung in Automation Studio Einführung in Automation Studio Übungsziel: Der links abgebildete Stromlaufplan soll mit einer SPS realisiert werden und mit Automation Studio programmiert werden. Es soll ein Softwareobjekt Logik_1 in

Mehr

Algorithmen für Peer-to-Peer-Netzwerke Sommersemester 2004 04.06.2004 7. Vorlesung

Algorithmen für Peer-to-Peer-Netzwerke Sommersemester 2004 04.06.2004 7. Vorlesung Algorithmen für Peer-to-Peer-Netzwerke Sommersemester 2004 04.06.2004 7. Vorlesung 1 Kapitel III Skalierbare Peer to Peer-Netzwerke Tapestry von Zhao, Kubiatowicz und Joseph (2001) Netzw erke 2 Tapestry

Mehr

Wissenschaftliches Arbeiten mit dem Programm Microsoft Word

Wissenschaftliches Arbeiten mit dem Programm Microsoft Word Wissenschaftliches Arbeiten mit dem Programm Microsoft Word Ein Leitfaden und Ratgeber für Studierende der Hochschule Fulda des Fachbereichs Sozialwesen Inhaltsverzeichnis VORWORT... 1 1. EINRICHTEN DES

Mehr

Installation in Novell NetWare 3 Netzwerken High Speed Connectivity for all Printers and Networks

Installation in Novell NetWare 3 Netzwerken High Speed Connectivity for all Printers and Networks Installation in Novell NetWare 3 Netzwerken High Speed Connectivity for all Printers and Networks High speed data transfer Built-in web server for system-independent management Models for all printers

Mehr

ewon über dynamische Adresszuweisung erreichbar machen

ewon über dynamische Adresszuweisung erreichbar machen ewon - Technical Note Nr. 013 Version 1.3 ewon über dynamische Adresszuweisung erreichbar machen Übersicht 1. Thema 2. Benötigte Komponenten 3. ewon Konfiguration 3.1 ewon IP Adresse einstellen 3.2 ewon

Mehr

UI-Testing mit Microsoft Test Manager (MTM) Philip Gossweiler / 2013-04-18

UI-Testing mit Microsoft Test Manager (MTM) Philip Gossweiler / 2013-04-18 UI-Testing mit Microsoft Test Manager (MTM) Philip Gossweiler / 2013-04-18 Software Testing Automatisiert Manuell 100% 70% 1 Überwiegender Teil der Testing Tools fokusiert auf automatisiertes Testen Microsoft

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

Schulungsunterlagen CoDeSys V3 OPC Server

Schulungsunterlagen CoDeSys V3 OPC Server Impressum Copyright epis Automation GmbH & Co. KG 2013. Alle Rechte, auch der Übersetzung vorbehalten. Das Kopieren oder Reproduzieren, ganz oder auch nur auszugsweise, in irgendeiner Form (Druck, Fotokopie,

Mehr

1 Verwalten einer Serverumgebung

1 Verwalten einer Serverumgebung Einführung 1 Verwalten einer Serverumgebung Lernziele: Verstehen der Voraussetzungen für die Serververwaltung Erlernen der Remoteverwaltung mit Hilfe der Computerverwaltungskonsole Remoteadministration

Mehr

Kurzanleitung zu WinZeit und dem Scanndy

Kurzanleitung zu WinZeit und dem Scanndy Kurzanleitung zu WinZeit und dem Scanndy Inhaltsverzeichnis Benötigte Materialien Seite 3 Grundlegende Bedienung des Scanndys Seite 4 Die Hauptmenü Punkte Seite 5 Das Drucken mit Barcode Seite 6 Zuordnen

Mehr

ekey TOCAhome pc Software Inhaltsverzeichnis 1. ZWECK DIESES DOKUMENTS... 3 2. VERWENDUNGSHINWEIS ZUR SOFTWARE... 3

ekey TOCAhome pc Software Inhaltsverzeichnis 1. ZWECK DIESES DOKUMENTS... 3 2. VERWENDUNGSHINWEIS ZUR SOFTWARE... 3 Inhaltsverzeichnis Software ekey TOCAhome pc 1. ZWECK DIESES DOKUMENTS... 3 2. VERWENDUNGSHINWEIS ZUR SOFTWARE... 3 3. MONTAGE, INSTALLATION UND ERSTINBETRIEBNAHME... 3 4. VERSION... 3 Version 1.5 5. BENUTZEROBERFLÄCHE...

Mehr

HVS32. ein Versandsystem das immer passt. Dokumentation. SAP-IDoc Schnittstelle

HVS32. ein Versandsystem das immer passt. Dokumentation. SAP-IDoc Schnittstelle ein Versandsystem das immer passt Dokumentation SAP-IDoc Schnittstelle Inhalt 1 HVS32 Anbindung an SAP mit IDocs...2 1.1 Integration...2 1.1.1 HVS32...2 1.1.2 HVS32-Gateway...2 1.2 Ablauf...3 2 IDoc Typen...4

Mehr

Glossarverwaltung GV3

Glossarverwaltung GV3 Glossarverwaltung GV3 Designbeschreibung VQWiki Leszek Kotas Sebastian Knappe Gerrit Mattausch Raimund Rönn 23. Mai 2004 Inhaltsverzeichnis 1 Allgemeines 3 1.1 Kurzcharakteristik.................................

Mehr

LDAP für HiPath OpenOffice ME V1 Installation von ESTOS Metadir unter Windows XP

LDAP für HiPath OpenOffice ME V1 Installation von ESTOS Metadir unter Windows XP LDAP für HiPath OpenOffice ME V1 Installation von ESTOS Metadir unter Windows XP Inhaltsverzeichnis Dokumenteninformation... 2 Voraussetzungen... 2 Einschränkungen... 2 Installation von ESTOS Metadir...

Mehr

Allgemeine Eigenschaften von SESAM Wawi Professional

Allgemeine Eigenschaften von SESAM Wawi Professional SESAM-Warenwirtschaft - die ersten Schritte Seite 1 Allgemeine Eigenschaften von SESAM Wawi Professional SESAM - Wawi Professional ist ein einfach zu bedienendes Programm zum Schreiben und Verwalten von

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

Bäume. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 10: Collections 4. Inhalt. Bäume. Einführung. Bäume.

Bäume. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 10: Collections 4. Inhalt. Bäume. Einführung. Bäume. Universität Osnabrück 1 Bäume 3 - Objektorientierte Programmierung in Java Vorlesung 10: Collections 4 Einführung Bäume sind verallgemeinerte Listenstrukturen Lineare Liste Jedes Element hat höchstens

Mehr

pywares-benutzerhandbuch

pywares-benutzerhandbuch pywares-benutzerhandbuch Lock Your World GmbH & Co.KG Alle Rechte vorbehalten. Hinweis Obwohl angemessene Bemühungen unternommen wurden, um sicherzustellen, dass die Informationen in diesem Dokument zum

Mehr

Musterlösung Klausur SS 2004

Musterlösung Klausur SS 2004 Musterlösung Klausur SS 2004 Fachrichtung: Informatik Lehrveranstaltung: Verteilte Systeme Dozent: Prof. G. Bengel Tag: 15.6.04 Bearbeitungszeit: 90 Minuten Name:... Matr.Nr.:... Punkte:... Note:... Hilfsmittel:

Mehr

Drucken im Netzwerk So wird s gemacht

Drucken im Netzwerk So wird s gemacht NETZWERK-DRUCK ARTICLE Drucken im Netzwerk So wird s gemacht Created: June 2, 2005 Last updated: June 2, 2005 Rev:.0 Inhaltsverzeichnis EINLEITUNG 3 INFRASTRUKTUR DES NETZWERKDRUCKENS 3. Peer-to-Peer-Druck

Mehr

Guideline. Integration von Google Adwords. in advertzoom Version 3.2

Guideline. Integration von Google Adwords. in advertzoom Version 3.2 Guideline Integration von Google Adwords in advertzoom Version 3.2 advertzoom GmbH advertzoom GmbH Stand Juni 2014 Seite [1] Inhalt 1 Google Adwords Schnittstelle... 3 1.1 Funktionsüberblick... 4 2 Externe

Mehr

Oracle 10g und SQL Server 2005 ein Vergleich. Thomas Wächtler 39221

Oracle 10g und SQL Server 2005 ein Vergleich. Thomas Wächtler 39221 Oracle 10g und SQL Server 2005 ein Vergleich Thomas Wächtler 39221 Inhalt 1. Einführung 2. Architektur SQL Server 2005 1. SQLOS 2. Relational Engine 3. Protocol Layer 3. Services 1. Replication 2. Reporting

Mehr

Linux Cluster in Theorie und Praxis

Linux Cluster in Theorie und Praxis Foliensatz Center for Information Services and High Performance Computing (ZIH) Linux Cluster in Theorie und Praxis Monitoring 30. November 2009 Verfügbarkeit der Folien Vorlesungswebseite: http://tu-dresden.de/die_tu_dresden/zentrale_einrichtungen/

Mehr

Scalera Mailplattform Dokumentation für den Anwender Installation und Konfiguration des Outlook Connectors

Scalera Mailplattform Dokumentation für den Anwender Installation und Konfiguration des Outlook Connectors Installation und Konfiguration des Outlook Connectors Vertraulichkeit Die vorliegende Dokumentation beinhaltet vertrauliche Informationen und darf nicht an etwelche Konkurrenten der EveryWare AG weitergereicht

Mehr

Tutoren Simon Andermatt Lukas Beck. Alexis Peter Thomas Ritter

Tutoren Simon Andermatt Lukas Beck. Alexis Peter Thomas Ritter UNIVERSITÄT BASEL Dozent Prof. Dr. Thomas Vetter Departement Informatik Assistenten Brian Amberg Andreas Forster Tutoren Simon Andermatt Lukas Beck Webseite http://informatik.unibas.ch/lehre/hs10/cs101/index.html

Mehr

ALM mit Visual Studio Online. Philip Gossweiler Noser Engineering AG

ALM mit Visual Studio Online. Philip Gossweiler Noser Engineering AG ALM mit Visual Studio Online Philip Gossweiler Noser Engineering AG Was ist Visual Studio Online? Visual Studio Online hiess bis November 2013 Team Foundation Service Kernstück von Visual Studio Online

Mehr

Anleitung für eine Erstinstallation der TAP-Programme

Anleitung für eine Erstinstallation der TAP-Programme Anleitung für eine Erstinstallation der TAP-Programme Die folgende Installationsanleitung bezieht sich auf alle drei TAP-Programme (TAP, KiTAP, TAP-M), da die wesentlichen Schritte identisch sind. Vorbereitung

Mehr

Leitfaden für die Installation der freien Virtual Machine. C-MOR Videoüberwachung auf einem VMware ESX Server

Leitfaden für die Installation der freien Virtual Machine. C-MOR Videoüberwachung auf einem VMware ESX Server Diese Anleitung illustriert die Installation der Videoüberwachung C-MOR Virtuelle Maschine auf VMware ESX Server. Diese Anleitung bezieht sich auf die Version 4 mit 64-Bit C-MOR- Betriebssystem. Bitte

Mehr

KompetenzManager http://www.kompetenzmanager.ch/mah Manual für die Benutzung der Website

KompetenzManager http://www.kompetenzmanager.ch/mah Manual für die Benutzung der Website KompetenzManager http://www.kompetenzmanager.ch/mah Manual für die Benutzung der Website Inhalt Inhalt... 1 1. Anmelden beim Kompetenzmanager... 3 2. Erstellen eines neuen Kompetenzprofils... 4 2.1. Wizard

Mehr

TecLocal 4.0. Neues in Version 4.0 (Freigabeinformationen)

TecLocal 4.0. Neues in Version 4.0 (Freigabeinformationen) TecLocal 4.0 Neues in Version 4.0 (Freigabeinformationen) 22.07.2013 Seite 1 Inhalt 1. Software Voraussetzungen.....3 2. Neue Funktionen......9 3. Zusätzliche Änderungen......14 4. Entfallene Komponenten/Funktionen

Mehr

Einführung in das Microsoft.NET-Framework. Programmiersprache C# MEF Das Managed Extensibility Framework. André Kunz

Einführung in das Microsoft.NET-Framework. Programmiersprache C# MEF Das Managed Extensibility Framework. André Kunz Einführung in das Microsoft.NET-Framework Programmiersprache C# MEF Das Managed Extensibility Framework André Kunz 21.09.2010 1 In dieser Einführung bekommen Sie einen kurzen Einstieg in das.net-framework

Mehr

DESIGN'PATTERN'2011. November. Abstract Factory & Factory Method BEARBEITET VON INHALT [1] Christoph Süsens

DESIGN'PATTERN'2011. November. Abstract Factory & Factory Method BEARBEITET VON INHALT [1] Christoph Süsens November DESIGN'PATTERN'2011 INHALT Intent Motivation Applicability Structure Consequences Implementation Sample Code [1] BEARBEITET VON Christoph Süsens Abstract Factory & Factory Method Inhaltsverzeichnis

Mehr

Dokumentation RabattManagerLX Pro. Version 1.0.901.1

Dokumentation RabattManagerLX Pro. Version 1.0.901.1 Dokumentation RabattManagerLX Pro Version 1.0.901.1 Dokumentation RabattManagerLX Pro Version 1.0.901.1 Was ist RabattManagerLX Pro? RabattManagerLX Pro ist ein Programm um individuelle Warengruppen-Rabatte

Mehr

Entwurfsmuster (Design Pattern) ETIS SS05

Entwurfsmuster (Design Pattern) ETIS SS05 Entwurfsmuster (Design Pattern) ETIS SS05 Gliederung Motivation Pattern allgemein Proxy-Pattern Zusammenfassung 2 Motivation I Wie gut sind eure Programme strukturiert? Wartbarkeit? - Verständlichkeit

Mehr

Handbuch. MiniRIS-Monitor

Handbuch. MiniRIS-Monitor Handbuch MiniRIS-Monitor Ersteller: EWERK MUS GmbH Erstellungsdatum: 09.05.2011 Inhalt 1 Vorwort... 3 2 Installation... 4 2.1 Voraussetzungen... 4 2.2 Installation... 4 3 Einstellungen... 5 4 Handhabung...

Mehr

Grundlagen Funktionsweise Anhang Begriffserklärungen. DHCP Grundlagen. Andreas Hoster. 9. Februar 2008. Vortrag für den PC-Treff Böblingen

Grundlagen Funktionsweise Anhang Begriffserklärungen. DHCP Grundlagen. Andreas Hoster. 9. Februar 2008. Vortrag für den PC-Treff Böblingen 9. Februar 2008 Vortrag für den PC-Treff Böblingen Agenda 1 Einleitung Netzwerkeinstellungen 2 Feste Zuordnung Lease 3 4 Einleitung Einleitung Netzwerkeinstellungen DHCP, das Dynamic Host Configuration

Mehr

Parallele und funktionale Programmierung Wintersemester 2013/14. 8. Übung Abgabe bis 20.12.2013, 16:00 Uhr

Parallele und funktionale Programmierung Wintersemester 2013/14. 8. Übung Abgabe bis 20.12.2013, 16:00 Uhr 8. Übung Abgabe bis 20.12.2013, 16:00 Uhr Aufgabe 8.1: Zeigerverdopplung Ermitteln Sie an folgendem Beispiel den Rang für jedes Listenelement sequentiell und mit dem in der Vorlesung vorgestellten parallelen

Mehr

Objektorientierte Programmierung. Kapitel 12: Interfaces

Objektorientierte Programmierung. Kapitel 12: Interfaces 12. Interfaces 1/14 Objektorientierte Programmierung Kapitel 12: Interfaces Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2012/13 http://www.informatik.uni-halle.de/ brass/oop12/

Mehr

Perzentile mit Hadoop ermitteln

Perzentile mit Hadoop ermitteln Perzentile mit Hadoop ermitteln Ausgangspunkt Ziel dieses Projektes war, einen Hadoop Job zu entwickeln, der mit Hilfe gegebener Parameter Simulationen durchführt und aus den Ergebnissen die Perzentile

Mehr

Browserbasiertes, kollaboratives Whiteboard

Browserbasiertes, kollaboratives Whiteboard WS 2011/12 Bachelorarbeit Browserbasiertes, kollaboratives Whiteboard Sebastian Dorn 1 von 21 Inhalt 1. Motivation 2. Analyse 3. Design 4. Evaluation 5. Fazit Inhalt 2 von 21 Motivation Zusammenarbeit

Mehr

bnsyncservice Installation und Konfiguration bnnetserverdienst Voraussetzungen: KWP Informationssysteme GmbH Technische Dokumentation

bnsyncservice Installation und Konfiguration bnnetserverdienst Voraussetzungen: KWP Informationssysteme GmbH Technische Dokumentation bnsyncservice Voraussetzungen: Tobit DAVID Version 12, DVWIN32: 12.00a.4147, DVAPI: 12.00a.0363 Exchange Server (Microsoft Online Services) Grundsätzlich wird von Seiten KWP ausschließlich die CLOUD-Lösung

Mehr

Use-Cases. Bruno Blumenthal und Roger Meyer. 17. Juli 2003. Zusammenfassung

Use-Cases. Bruno Blumenthal und Roger Meyer. 17. Juli 2003. Zusammenfassung Use-Cases Bruno Blumenthal und Roger Meyer 17. Juli 2003 Zusammenfassung Dieses Dokument beschreibt Netzwerk-Szenarios für den Einsatz von NetWACS. Es soll als Grundlage bei der Definition des NetWACS

Mehr

Smartcard Management System

Smartcard Management System Smartcard Management System Benutzerhandbuch Zertifiziert vom Nationalinstitut für Standardisierung und Technologie der Vereinigten Staaten von Amerika. Certified by the National Institute of Standards

Mehr

Übungspaket 19 Programmieren eigener Funktionen

Übungspaket 19 Programmieren eigener Funktionen Übungspaket 19 Programmieren eigener Funktionen Übungsziele: Skript: 1. Implementierung und Kodierung eigener Funktionen 2. Rekapitulation des Stack-Frames 3. Parameterübergabe mittels Stack und Stack-Frame

Mehr

Script-Sprache für UPT und MKT-View II / III / IV. Einleitung, Anwendungsfälle, Programmierung. MKT Systemtechnik

Script-Sprache für UPT und MKT-View II / III / IV. Einleitung, Anwendungsfälle, Programmierung. MKT Systemtechnik Einleitung, Anwendungsfälle, Programmierung MKT Systemtechnik Autor: Stand: Ablage: Wolfgang Büscher Dipl.-Ing. Soft- und Hardware-Entwicklung buescher@mkt-sys.de 2015-01-21 (JJJJ-MM-DD) art85133_einfuehrung_mktview_scriptsprache.odp/pdf;

Mehr

Basiskurs paedml Linux 6-2. Grundlagen der Virtualisierungstechnik INHALTSVERZEICHNIS

Basiskurs paedml Linux 6-2. Grundlagen der Virtualisierungstechnik INHALTSVERZEICHNIS INHALTSVERZEICHNIS 2.Grundlagen der Virtualisierungstechnik...3 2.1.Strukturen in virtualisierten Systemen...3 2.2.Der Host...7 2.2.1.Die virtuellen Maschinen...7 2.3.Die Virtualisierungssoftware VMware

Mehr

1. Installation und Inbetriebnahme pcon.update

1. Installation und Inbetriebnahme pcon.update Manual pcon.update 1. Installation und Inbetriebnahme pcon.update Unter nachfolgendem Link können Sie die erforderliche Software pcon.update herunterladen. ftp://ftpdownload:download-9200@ftp.weber-os.ch/download/pcon/update/p-up-

Mehr

Folge 19 - Bäume. 19.1 Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12

Folge 19 - Bäume. 19.1 Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12 Grundlagen: Folge 19 - Bäume 19.1 Binärbäume - Allgemeines Unter Bäumen versteht man in der Informatik Datenstrukturen, bei denen jedes Element mindestens zwei Nachfolger hat. Bereits in der Folge 17 haben

Mehr

Installation von Updates

Installation von Updates Installation von Updates In unregelmässigen Abständen erscheinen Aktualisierungen zu WinCard Pro, entweder weil kleinere Verbesserungen realisiert bzw. Fehler der bestehenden Version behoben wurden (neues

Mehr

Klausur Kommunikation I. Sommersemester 2003. Dipl.-Ing. T. Kloepfer

Klausur Kommunikation I. Sommersemester 2003. Dipl.-Ing. T. Kloepfer Kommunikation I 1 Klausur Kommunikation I Sommersemester 2003 Dipl.-Ing. T. Kloepfer Bearbeitungsinformationen Aufbau der Klausur Die Klausur ist wie folgt aufgebaut: Die Klausur ist in 18 Aufgaben unterteilt.

Mehr

Outlook 2000 Thema - Archivierung

Outlook 2000 Thema - Archivierung interne Schulungsunterlagen Outlook 2000 Thema - Inhaltsverzeichnis 1. Allgemein... 3 2. Grundeinstellungen für die Auto in Outlook... 3 3. Auto für die Postfach-Ordner einstellen... 4 4. Manuelles Archivieren

Mehr

Einsatz der Mehrkörpersimulation in Verbindung mit Computertomographie in der Produktentwicklung

Einsatz der Mehrkörpersimulation in Verbindung mit Computertomographie in der Produktentwicklung Einsatz der Mehrkörpersimulation in Verbindung mit Computertomographie in der Produktentwicklung Hintergrund Bei komplexen Baugruppen ergeben sich sehr hohe Anforderungen an die Tolerierung der einzelnen

Mehr