Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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.
  • Grid Agent Primitives for Windows:
    • Implements the Tomcat Management Primitives for Windows OS.
  • Grid Agent Primitives for Mac:
    • Implements the Tomcat Management Primitives for Mac OS.
  • Grid Agent Primitives for Other:
    • 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

...