Resource Manager Design:
This is a preliminary design for the PTP Resource Management system.
This is the design of the first phase product, which is limited in
scope to viewing the state of the resource manager. This includes the
machines, jobs, queues, and nodes that are under the resource
manager's control.
After having discussed the design with Nathan I've made changes to the
package and names of the major interfaces. The classes currently in
PTP will implement these new interfaces in addition to their
previously implemented interfaces.
I have included an updated diagram.
I've included a brief Classes-Responsibilities-Collaboration (CRC)
"card" for the interfaces and classes in the design.
For interfaces and abstract classes, the responsibilities and
collaborations refer to concrete objects that are implementations of
the interface or abstract class.
Package resourcemanager
Interface: IRMResourceManager
Responsibilities: Proxy used to connect to the
ResourceManagerHost's
actual resource manager (ARM).
Retrieve list of machines, nodes, jobs, process,
and queues from ARM
Notify registered objects that the lists have changed,
either in composition, or in their element's attributes
due to changes propagated from the ARM
Collaborations: IRMResourceManagerHost
IRMResourceManagerListener
IRMResourceManagerEvent
IRMMachine, IRMNode, IRMJob, IRMQueue
----------------------------------------------------------------------
---------
Interface: IRMResourceManagerListener
Responsibilities: Registration site for Observer pattern to allow
objects to be notified of changes in the
IRMResourceManager's status
Collaborations: IRMResourceManager
IRMEvent
----------------------------------------------------------------------
---------
Interface: ResourceManagerEvent
Responsibilities: Determine type of changed in the
IRMResourceManager's
state
Collaborations:
----------------------------------------------------------------------
---------
Class: ResourceManagerHost
Responsibilities: Determine which remote (or local) host's
resource
manager to proxy
Determine which resource manager on the host to
proxy
Collaborations:
----------------------------------------------------------------------
---------
Interface: IRMMachine
Responsibilities: Provide the status information, i.e. attributes,
for the ARM's associated machine
Provide specific attributes for a given
attribute description
List all nodes associated with ARM's
machine
Collaborations: IAttribute
IAttrDesc
----------------------------------------------------------------------
---------
Interface: IRMQueue
Responsibilities: Provide the status information, i.e. attributes,
for the ARM's associated queue
Provide specific attributes for a given
attribute description
List all nodes that may have jobs dispatched
from this queue
Collaborations: IAttribute
IAttrDesc
----------------------------------------------------------------------
---------
Interface: IRMNode
Responsibilities: Provide the status information, i.e. attributes,
for the ARM's associated node
Provide specific attributes for a given
attribute description
List all jobs associated with ARM's
node
List all queues that can run jobs on this
node
Collaborations: IAttribute
IAttrDesc
----------------------------------------------------------------------
---------
Interface: IRMJob
Responsibilities: Provide the status information, i.e. attributes,
for the ARM's associated job
Provide specific attributes for a given
attribute description
List all processes associated with ARM's
job
Collaborations: IAttribute
IAttrDesc
----------------------------------------------------------------------
---------
Interface: IRMProcess
Responsibilities: Provide the status information, i.e. attributes,
for the ARM's associated process
Provide specific attributes for a given
attribute description
Collaborations: IAttribute
IAttrDesc
----------------------------------------------------------------------
---------
Interface: IAttribute
Responsibilities: Maintain the relationship between an attribute's
value
and its description
Specifies a strict-weak ordering of itself and
other attributes
Provide a string representation of the attribute
Collaborations: IAttrDesc
----------------------------------------------------------------------
---------
Interface: IAttrDesc
Responsibilities: Provide a string description of the attribute
Provide a name of the attribute
Know the actual type of the attribute
Create new attributes of the correct type
Collaborations: IAttribute
----------------------------------------------------------------------
---------
Regards,
Randy
<resourcemanager.pdf>
_______________________________________________
ptp-dev mailing list
ptp-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/ptp-dev