Summary
SOA Environments
An SOA environment is composed by services, processes and resources with clearly defined dependencies. A service depends on pre defined libraries where a process depends on versioned services implemented in its steps.
Deployment Package projects needs to be capable of assembling ALL artifacts that need to be deployed in order to construct a complete runtime environment.
ESB Deployments
With Sonic ESB, they easiest (and recommended) way to do deployments is with the Sonic Deployment Manager (SDM). In order to deploy artifacts, an SDM model has to be prepared. In large projects, the maintenance of these Deployment Models becomes a very intensive manual task that introduces many points of possible human errors.
Dependency Management through Maven and the Plugins
In order to create order in the chaos, the PSO Team started using Maven in order to automate the Build Cycle of all ESB Artifacts. The PSO Team developed Maven Plugins that understand the ESB Environment and allow to build and assist in the assembly/Deployment process. These plugins are capable of the following:
- ESB Service Types
- Define Dependencies on the used libraries
- Define the Classpath of the Service Types
- Insert the dependent libraries in the Directory Service
- Create Snippets for use at a later stage that define the init-parameters
- Build and version these artifacts for use by team members
- ESB Process
- Define dependencies on the used ESB Service Types
- Export the used artifacts to xml for head-less builds
- Define extra artifacts to be exported that cannot be located through the ESB Dependencies
- Analyse the output and define Snippets to hold information on used queues and instances
- Package the complete set into a versionable ESB Process Artifact that can be used by team members
- SDM Deployment Packages
- Define Dependencies on the ESB Processes to be deployed
- Assemble all dependend packages for the deployment
- Create ESB Containers based on descriptive xml file
- Tailor the properties of the ESB Container
- Tailor the properties of the Service Instances
- Create templates for all Parameters that are tailored for substitution
- Insert the used Queues in the Model file
- Tailor the Queues to be created on different brokers
- Package the Deployment and version it
As a result, the Maven environment allows you to keep control over the build-cycle and greatly simplify the dependency management and the Team Development within the Workbench.