Overview of the Book Content
This is a short overview of the order and content of the different chapters
and how the ROAF software evolves towards the end of the book.
Part I: From Vision to Mission
Chapter 1: Software Objects and Real-World Representations
The first chapter resumes the history of 'objects' an their intentions in software development. The programming language Java was initially designed to control electronic devices via software interface. This idea is then applied to real objects - physical objects.
Chapter 2: The Vision of a Real-World Simulator
The idea to program physical objects leads to the vision to simulate the world. A rudimentary GPS smartphone could be attached to any thing to transmit live data to a server. A server application can collect the telemetric data of the remote objects and validate them against each other. After all our world is defined by the objects surrounding us and the more objects are projected into a virtual world the more realistic this world will become.
Chapter 3: Applying OOA&D Methodologies
With the background of software objects (Chp 1) and physical objects as their Real World Representations Object Oriented Methodologies can be applied to get a grip on the system to be modeled. With OO Analysis the system is subdivided into three major components: a Real Object client, a Real Object Application server and the Real Object Application Framework.
Part II: Global Positioning
Chapter 4: Space & Time
In order to synchronize remote objects and validate them against each other GPS (WGS84) coordinates and universal time (UTC) are introduced as the fundamental ROAF coordinates for space & time. The roaf.gps package is developed step by step. Geographical coordinates are implemented in a simple class, an interface is derived to create 'collecting' classes for GPS routes and traces. Finally the classes are assembled to a virtual GPS unit. All ROAF components somehow relate to this unit as the common standard.
Chapter 5: From Geography to Cartography
With the coordinates supplied from chapter 4 the programming with the Java Swing Framework is demonstrated. This chapter provides the background of transforming geographical coordinates (angles!) to cartographic projections (distances) on a plane. The roafx.gui.map package provides a GUI to the ROAF.
The GPXviewer is a simple application composed of the first two packages introduced and may serve as a template for further implementations.
Part III: ROs - RealObjects
Chapter 6: Objects in Motion
The idea of the ROAF is to create Java Objects as physical objects or things called Real Objects (ROs) and to test these Real Objects in a (dedicated) real world scenario.
every Java Object is extending the java.lang.Object
every Real Object is extending the roaf.ros.RealObject
The RealObject is the root object for every Real Object Client running inside the ROAF. With the GPSunit developed in Chapter 4 the RealObject gets a clock and can always be located with WGS84 coordinates. The GUI developed in Chapter 5 is used to trace a number of motorcycles moving on a map image.
MovingObjects is the first small real-world scenario to support the idea of real world applications.
Chapter 7: Processing Digital Maps
Chapters 7 & 8 provide the background to processing digital map data, also called Spatial Data. Digital Maps are gigantic chunks of information and has to be processed in consecutive steps towards a target application. This is achieved by setting up a 'map compiler'. The Map Compiler should be able to transform a Map Delivery into the Physical Storage Format (PSF) required by an application, for example a navigation system.
The reader can follow the steps to build his own Map Compiler for OpenStreetMap (OSM) Data of his own area. The map product can be used in later chapters for his personal version of the ROAF reference application. The book introduces some OSM tools and demonstrates how you can add your own mapping tools with the OSMparser. The parser can be used to manipulate a map delivery with regular expressions.
Chapter 8: Making Maps Navigable
As long as digital map data is only used to render map images there is no need to identify paths. A more sophisticated application of digital maps is a navigation system. In order to navigate along the roads of a map the 'road network' has to be extracted to a readable format. This is demonstrated with the map compiler and by programming a NavigableMap, which internally creates a graph of the network to support routing algorithms.
In the context of the ROAF project, digital maps are vital for the orientation of real objects. Digital maps bind real objects and real-object applications together. Externally, the map describes the object's environment, while the object can internally make a decision in which direction to go.
Chapter 9: Navigating Objects
This chapter wraps up everything developed in the previous chapters by implementing a simple navigation system in 'navigating objects'. These objects have a small degree of freedom as they can 'decide' which way to choose. This decision is supported by a graph, which is practical representation of a network. The Navigator wraps up all lessons about GPS coordinates, traces, digital maps and navigating objects in one simple application.
Part IV: ROApps - RealObject Applications
Chapter 10: RO Client and ROApp Server
The previous chapters have implemented the prerequisites for space & time in the RealObject class. This chapter introduces Java RMI as the technology to seperate client and server software. With RMI client and server objects can invoke methods on each other to form one distributed application.
For a better understanding of different techniques of server programming it is advised to install the Real Object reference Application LondonChase before reading the details in Chapters 11 to 13.
Chapter 11: Client Server Architecture
With a good understanding and technical specication of the RealObject client it is now time to consider the server architecture. The server has to be able to identify, authorize, and handle a large number of clients. A Real Object Server is implemented with the technical prerequisites for every real-object application.
Chapter 12: Application Design
After defining a server architecture and implementing the vital components the application layer is finally rolled out. The mission to create an executable demonstration prototype can finally be completed. All components developed in the course of the book are now being put together to one game application. As a simple scenario the game of Scotland Yard serves as a guideline for development.
Chapter 13: Mission Accomplished - Time to Play
This chapter marks the end of the implementation phase and the beginning of the exploration phase. It provides some introductory instructions to create different players, play against automated players and then modify the game scenario with additional rule sets.
For teachers the Chapter can mark the beginning of a programming class. read more about 'teaching Java' ...
Part V: ROAF - The Real Object Application Framework
Chapter 14: Evolution
The final part of the book resumes the vision estabished in the first part of the book and points out how the Real Object Application Framework can evolve to a live real world simulation. And it marks the birth of this website as a platform for readers and developers to exchange ideas, discuss implementations and contribute code to the framework.