...
markt: I'd like to see a little more high level architecture to steer development. For example, is there a common core of management functionality that we then wrap with a web-based GUI and a CLI? That would allow others to write other wrappers to plug this into other tools.
vlad: I would like to provide as much detail as you need, but I'm afraid I still I don't quite understand exactly what you do you refer as the architecture. Anyway, below is a general overview of the software modules and their responsibilities.
TomcatGridSoftwareModules.png
_The modules are:
- Core module: Shared logic to be used by all other modules.
- Core data types, such as "Machine", "Instance".
- Share core logic. For example, grid configuration file parsing/update.
- Defines the Grid Agent functions (as interfaces), but does not implement them. These are used by all Managers modules.
- Common utility classes.
- Common exceptions.
- Web Manager module: A JEE Web application that includes:
- Includes a simple Managing web GUI: web pages, navigation logic.
- Uses the Core module for functions such as:
- Load Grid Configuration,
- Interact with grid agents.
- CLI Manager module: A java command-line program:
- Command-line interface: command parsing, text output.
- Uses the Core module for functions such as:
- Load Grid Configuration,
- Interact with grid agents.
- Any other Manager module: Any future module that needs to connect to Grid Agents to manage Tomcat instances.
- Grid Agent module: Responds to Managers calls and controls local Tomcat instances.
- Listen to Manager requests.
- Implements the Grid Agent interfaces.
- Includes the high-level interaction with Tomcat intances.
- Defines and uses the Tomcat Management Primitives (as interfaces), but does not implement them.
- Receives content (deployables, grid configuration changes) and applies them.
- Grid Agent Primitives for Linux:
- Implements the Tomcat Management Primitives for Linux OS.
- Implements the Tomcat Management Primitives for Linux OS.
- Grid Agent Primitives for Windows:
- Implements the Tomcat Management Primitives for Windows OS.
- Implements the Tomcat Management Primitives for Windows OS.
- Grid Agent Primitives for Mac:
- Implements the Tomcat Management Primitives for Mac OS.
- Implements the Tomcat Management Primitives for Mac OS.
- Grid Agent Primitives for Other:
- Implements the Tomcat Management Primitives for Other OS.
- Implements the Tomcat Management Primitives for Other OS.
The executables themselves are comprised of several modules each that are assembled during the build.
- The Grid Web Manager Executable (a WAR) includes:
- Core module
- Web Manager module
- The Grid CLI Manager Executable (a JAR) includes:
- Core module
- CLI Manager module
- The Grid Agent Executable (a JAR) includes:
- Core module
- Grid Agent module
- Grid Agent Primitives for Linux
- Grid Agent Primitives for Windows
- Grid Agent Primitives for Mac
- Grid Agent Primitives for Other_
Phase 1 - Core Grid Operation
...