IBME GeometryService

Image:Design_icon.png This page contains the design document for an enhancement or feature. The design should be considered a work in progress and may not represent the final design. As this is a collaborative design, contributions and participation from other developers and users is encouraged. Use the discussion page for providing comments and suggestions.


Contents

[edit] Architecture Diagram

Geometry Service Architecture Diagram
Geometry Service Architecture Diagram

[edit] Description

The Geometry Service(GS) is an application that expands on the functionality of the Geometry Engine (GE) by adding Communications Management, Session Management, Access Controls, and Job Management.


The GS provides:



[edit] Elements

[edit] GeometryService Class

Namespace GeometryService
Stereotype Boundary
Scope Public, Concrete
Description Top level class for the GeometryService Namespace. Provides the static main() function and contains the main loop. Is the anchorning point for singleton classes like: AccessManager, SessionManager, CommunicationsManager and JobManager.

[edit] AccessManager Class

Namespace GeometryService
Stereotype Control
Scope Public, Concrete
Description Singleton. Manages access controls to resources based on authentication.


[edit] SessionManager Class

Namespace GeometryService
Stereotype Control
Scope Public, Concrete
Description Singleton. Manages Session objects and provides access to them.


[edit] Session Class

Namespace GeometryService
Stereotype Entity
Scope Public, Concrete
Description Contains information pertaining to an individual User's current session.


[edit] CommunicationsManager Class

Namespace GeometryService
Stereotype Control
Scope Public, Concrete
Description Singleton. Manages AbstractPortal objects and maintains an Inbox and Outbox queue. Manages Remote Hostname Lists.


[edit] AbstractPortal Class

Namespace GeometryService
Stereotype Control
Scope Public, Abstract
Description Base class for all Portal type objects. Mandates required functionality for subclasses. Allows for extensibility.

[edit] IntraAppPortal Class

Namespace GeometryService
Stereotype Boundary
Scope Public, Concrete
Description Subclass of AbstractPortal. Currently a Stubbed class. Functionality will be to bridge processess on the same physical computer and allow transfer ot NetMsg objects without the need to serialize the data.


[edit] NetSockPortal Class

Namespace GeometryService
Stereotype Boundary
Scope Public, Concrete
Description Subclass of AbstractPortal. Functionality will be to allow external connections over Sockets. Will use libpkg as the underlying data transfer protocol.


[edit] JobManager Class

Namespace Jobs
Stereotype Entity
Scope Public, Concrete
Description Maintains the Job queue and allows for addition of Jobs. Provides management over JobWorkers objects.


[edit] JobScheduler Class

Namespace Jobs
Stereotype Control
Scope Public, Concrete
Description Provides the ability to submit AbstractJobs to the JobManager on a reocurring basis or a single time delayed basis.


[edit] JobWorker Class

Namespace Jobs
Stereotype Control
Scope Public, Concrete
Description Works with the JobManager and executes individual jobs based on priority and Job queue status. Will likely run in its own thread.


[edit] AbstractJob Class

Namespace Job
Stereotype Control
Scope Public, Abstract
Description Bass class that defines the required attributes and operations of any Job.


[edit] NetMsgActionJob Class

Namespace Job
Stereotype Control
Scope Public, Concrete
Description Subclass of AbstractJob. Provides the routine to take a NetMsg, lookup which NetMsgActionDefinition is applicable to the NetMsg's msgType and peform the actions spelled out by the NetMsgActionDefinition. Most often, this will result in the generation of further AbstractJobs being generated.


[edit] NewSessionJob Class

Namespace Job
Stereotype Control
Scope Public, Concrete
Description Subclass of AbstractJob. Executes commands necessary to instantiate a new session.


[edit] NetMsg Class

Namespace GeometryService
Stereotype Entity
Scope Public, Concrete
Description Simple structure type object that contains the contents of a recieved Msg or to be sent Msg via an AbstractPortal.


[edit] NetMsgActionDefManager Class

Namespace NMAD
Stereotype Control
Scope Public, Concrete
Description Manages all NetMsgActionDefinition objects. Maintains a (int)msgType to AbstractNetMsgActionDef& map. Provides for registering and unregistering of NetMsgActionDefinition objects.


[edit] AbstractNetMsgActionDef Class

Namespace NMAD
Stereotype Control
Scope Public, Abstract
Description Abstract Base class that mandates certain attributes and operations required to perform the task of a NetMsgActionDef. A NetMsgActionDef is a definition of commands to be performed when a NetMsg of the appropriate msgType is recieved via an AbstractPortal. This makes the NetMsgActionDef system extensible.


[edit] NewSessionNMAD Class

Namespace NMAD
Stereotype Control
Scope Public, Concrete
Description Subclass of AbstractNetMsgActionDef. Details the actions to be performed in order to instantiate a new session. In specific, this creates a NewSessionJob object and submits it to the JobManager queue for execution.