Page outlining some of the use cases surrounding the managability of JBoss AS 5.0
An administrator uses a Management Tool to:-
U1) List the Component which are deployed in the Server
a) List the types of Component which are deployed in the Server
b) List all the Components of a particular type which are deployed in the Server
U2) List the Properties of a Component and their current values
U3) Update a Property of a Component
U4) See the current state of a Component
U5) Add Components to the System
U6) Remove Components from the System
U7) Stop Components which are currently running in the Server
U8) Start Components which are current deployed in the Server but are stopped
C1) Changes to Components should be persistent across Server restarts.
C2) Virtually all operations should work whether the Server is running or not. Obviously trying to start a Component will fail if the Server is not running, but updates to properties, should work fine and be picked up when the Server starts up again.
C3) Handle concurrent access, e.g. if you call getComponents() with the intention of updating a Component, then somebody else calls update(Component) before you do, then your call should fail with an appropriate exception.
C4) When making multiple calls to update the Server we should support basic transaction semantics, e.g. when making two updates, if the second fails the first one should be "rolled back".
These initial uses case should be familiar to anyone who has reviewed http://www.jboss.com/index.html?module=bb&op=viewtopic&t=77898.
The term Component was used to represent something running/can run within the Server, rather than the terms Service or Deployment which have there own meaning as talked about in the above thread.
It is envisaged that from the Management Tool perspective a Component could represent any of the following: JMS Queue, DataSource, EJB, EJB Container. Obviously with respect to Components such as an EJB container it won't be possible to "Add" one to the Server, but it should still be possible to configure properties on it that users care about.