2.0 System Decomposition

2.1 System Decomposition


The OWL system is broken down into eight separate subsystems: Control, Database, Facility Mangement, Notification, Simulation, Site Editor, User Interface and Visualization.

















The subsystems communicate with each other through an implementation of the CORBA software bus developed by Iona called CorbixWeb. CorbixWeb allows subsystems to access objects from other subsystems and remotely call methods of those objects.

Control

One of the two main purposes of the Control Subsystem is to read data from the sensors, and to pass the information received from the sensors to the database. The other activity of the Control Subsystem is to provide an interface for the shades, louvres, and other light manipulation devices. Extensibility for temperature control and other sensors is included in the design models so it can be added in the future.

Database

The Database Subsystem provides services for storage and retrieval of any persistent data in the OWL project. These services are provided through a CORBA interface. This subsystem will behave as a server in most instances. Other subsystems will call the public methods of Database Subsystem and process the returned data. The only client behavior will be in the form of data triggers. An example of a data trigger is as follows:

When the Facilities Manager updates the floor layout in the site editor and commits the updated layout to the database, the database will announce (via the notification sytem) that the layout has been altered. The Visualization subsystem, for example, will react to that notification by retrieving a new copy of the layout and rebuilding its VRML model.

In addition, the Database group will provide a minor subsystem which will retrieve weather forecast data from the Internet and store it for later retrieval. This subsystem will behave as a client in two client/server relationships. The first relationship is between a weather information server and the subsystem. The subsystem will query that server and retrieve a weather forecast. The second relationship is between the subsystem and the database server. The subsystem will store the retrieved weather forecast in the database by calling a public method on the Database Subsystem.

Facility Management

The Facility Management Subsystem (FMS) is meant to assist Facility Managers with modifying floorplans, scheduling room reservations, and maintaining inventory control information.

To do this task, the FMS will be interracting with UI in a client/server relationship, with the FMS being an information provider and providing a CAD tool to allow Facility Managers to modify floorplans.

The FMS will also be interacting with the Database subsystem in a client/server relationship. The Database subsystem will be taking care of all the FMS's long term data storage needs. There is some interaction between the FMS and the Control Subsystem, this will be clairified in the near future.

Within the FMS there are two major divisions: the reservation facility and the controls for building editing and inventory control. The reservation facility is a facility that provides the ability to schedule reservations in rooms. The controls for building editing and inventory control provide and interface to allow modifications to the building, and since the act of moving items is close to inventory control, it has been decided to group these two into one facility. These two facilities interact based upon the creation and deletion of rooms which allow reservations.

A final division is outside the FMS proper: a CAD tool interface. This tool is something needed by multiple groups (FMS and Simulation) to access the CAD tool. This interface is used by the controls for building editing and inventory control.

Notification

The Notification Subsystem provides the service of notifying other subsytems when an event has occurred. The subsystems can create events, subscribe to an event and notify other subsystems when an event has occurred. The implementation of the Notification Subsystem will use a previously implemented notification system based on either the COSS Event Server from Iona or a similar subsystem used for the JEWEL System.

The Notification Subsystem is always a server to the other subsystems and only calls another subsystem when an event has occurred which that subsystem has subscribed to.

Simulation

The Simulation Subsystem provides a service through which simulations can be run on a site. Currently design is only for an interface to a pair of existing simulators, however the design is easily expandable to include other simulators as they become available.

Site Editor

The Site Editor Subsystem is a CAD tool used by the Facility Management Subsystem and the Simulation Subsystem. The CAD tool is Microstation. The Facility Management Subsystem uses the Site Editor to change floorplans. The Simulation Subsytem uses the Site Editor to edit the floorplan and attributes of a site (such as the Intelligent Workplace) which influence the results of the simulations.

The Site Editor is a server to the User Interface. Simulation and Facility Management provide server functionality to the Site Editor.

User Interface

The User Interface Subsystem is responsible for providing the means of communication between the OWL system and the users of the system. The design is aimed towards the goal of having multimodal input (speech and gesture as well as mouse and keyboard).

Visualization

The visualization subsystem provides a three-dimensional interface to the Intellegent Workplace, which runs inside of the user interface subsystem. It recieves some model of the current Intellegent Workplace layout, which is stored in the system database in some generic format, and converts it into VRML 2.0 for display using a Liquid Reality browser. In addition it will send some signal to the user interface subsystem if the user enters or leaves a room.

This subsystem has a peer-to-peer relationship with the user interface subsystem. This is becuase it will recieve input from the user via the user interface subsystem, and it will notify the user interface subsystem about user actions and position. At the same time, it will have a client-server relationship with the database subsystem. Their interaction is restricted to the database replying to data requests from the visualization subsystem.

Summary of Communication Relationships


Figure 2.1.1: Communication Relationships between the subsystems. The tail represents the client side of the relationship and the head the server side. A two-headed arrow indicates a peer-to-peer relationship

2.1.1 Layers & Partitions

Control


Figure 2.1.1.1: Control Subsystem Structure

The Control Subsystem depends on the Database Subsystem for the default and user defined lighting levels. The Facility Management subsystem depends on the Control Subsystem for maintaining the required levels. The Control Subsystem depends on the User Interface Subsystem for the new lighting levels. The Database Subsystem depends on the Control Subsystem for providing it with the new lighting levels that originated from the User Interface Subsystem.

Database

Database Team Layers

Figure 2.1.1.2: Database Team Layers

The Database team is responsible for two subsystems, the Database Subsystem and the Weather Forecast subsystem. The layering of the Database Subsystem is as follows:

The layering of the Weather Forecast subsystem is as follows:

Facility Management


Figure 2.1.1.3: Facility Management Subsystem Structure

The FMS depends on the existance of the database server, and will await the return of the database server, should that server ever be unreachable.

Notification


Figure 2.1.1.4: Notification Subsystem Structure

The Notification Subsystem does not depend on any other subsystem. However, if there are no other subsystems then Notification has nothing to do. It is a basic service for all other subsystems.

This subsystem is simply an interface added on top of existing code. It has yet to be determined whether that existing code will be an implementation of the COSS Event Server created by Iona or a notification subsystem used for the JEWEL System.

Simulation


Figure 2.1.1.5: Simulation Subsystem Structure

The Simulation subsystem is an interface to external simulators. Currently there are only two existing simulators (called NODEM and CASCADE). The only subsystems which are depended on by the Simulation Subsystem are the Site Editor which allows changes to be made to the model that is used in the simulation and Database which provides the models for the simulation.

Site Editor


Figure 2.1.1.6: Site Editor Subsystem Structure

The Site Editor Subsystem depends on both Simulation and Facility Management. The models which are edited through Microstation are provided through those two subsystems.

User Interface


Figure 2.1.1.7: User Interface Subsystem Structure

The User Interface Subsystem depends on Visualization to determine the location of the user when they are using the 3 Dimensional Interface.

Visualization


Figure 2.1.1.8: Visualization Subsystem Structure

The visualization subsystem dempends on two other subsystems. It depends on the Database Subsystem for the object model of the Intellegent Workplace, and User Interface subsystem for user input. At the same time, the User Interface Subsystem depends on visualization to tell it when a user enters/leaves a room.

2.1.2 System Topology


The information flow in the system is implemented using Java interface objects interconnected through CorbixWeb (an implementation of CORBA).

Data Flow Diagram

Example Scenario:
The Liquid Reality browser sits upon a graphics library and the java virtual machine. Inside when the user requests to view the three dimensional model, several stubs are called. One will be dedicated to the walls, one to the furnature, etc., decomposing the system by parts of the Intellegent Workplace model. Each of these stubs connect to a geometry server which keeps a cached copy of the current model in memory. The geometry server checks the database periodically and re-caches the model if it has changed. If the model has changed in the database, the geometry server calls a thread to generate the VRML text for the objects requested by the client. If the model hasn't changed, the geometry server sends the cached VRML representation of the requested objects back to the client.


Return to the main System Document Page