Tuesday, November 26, 2013

SOA Governance Projects and Organizational Roles

In large organizations building and maintaining services is not a one man job, instead it is a process that touches many people in the organization. Figure 1 is a copy of figure 5.6 on page 95 of the 'SOA Governance' book by Thomas Erl et al.

Figure 1. Common associations of organizational roles with different SOA project stages.

With this many people and roles involved, how to you manage a project like this? Especially since in a large organization you will have many of these project running simultaneously. We would have loved to implement a full project workflow based on the figure 1 process, but two things are currently standing in our way: time and real world input. Who is going to pick up the challenge?

To get you started we created a 'Simplied Project Lifecycle Workflow' demo that implements just 3 boxes; Requirements gathering, Service Design and Service Implementation, with one role responsible for each stage, which are a Business Analyst, SOA Architect and SOA Developer. Each role can be fulfilled by more then one person. In the demo we assigned all three roles to the 'admin' user so we don't have to log in and out as different users all time. The demo uses the workflow shown in Figure 2. Each column represents one of the phases. The first phase being Business Analysis. The hope is this demo provides you with the building blocks to create the real world implementation we talked about earlier.

Figure 2. Simplified Project Lifecycle Workflow.

Some benefits of using this workflow are:
  • Helps your organization with adoption of SOA by following proven processes. It is clear who is responsible for approval.
  • Provides insight in where your projects are.
  • Helps your organization work together in different teams.
  • Audit features allow full history tracking.
  • Released artifacts are in the repository, the artifact is automatically in escrow this way, and documentation and sources are stored along side the binaries all in one place.
Some optional benefits:
  • It is possible to send a BPMN event at the end of the workflow (or from anywhere else), which can kick off a release workflow to automate deployment. Though one could also write a governance query looking for a service implementation artifact with classification #ImplPass.
  • Easy integration with other systems (think bug track systems, or time management systems)

If you want to follow along with the demo you should

1. Have DTGov running; see http://jboss-overlord.blogspot.com/2013/11/bleeding-edge-governance-getting-started.html.

2. Install the Eclipse BPMN2 Modeler into your Eclipse IDE, or you can try the early access JBoss Developer Studio.

Enjoy

Thursday, November 21, 2013

Customize Managed Deployments Workflow


DTGov ships with a number of BPMN2 based processes that you may want to update so they fit your business processes. In this demo we will update the 'Manage Deployments' workflow. It is recommended you go over the Managed Deployments usinf DTGov demo if you haven't already done so.

If you want to follow along with the demo you should

1. Have DTGov running; see http://jboss-overlord.blogspot.com/2013/11/bleeding-edge-governance-getting-started.html.

2. Install the Eclipse BPMN2 Modeler into your Eclipse IDE, or you can try the early access JBoss Developer Studio.

Wednesday, November 20, 2013

Managed Deployments using DTGov

DTGov ships with a workflow to perform deployments of released artifacts to the dev, qa, stage and prod runtime. Some benefits of using this workflow are:
  • Releases artifacts are in the repository before they go to a runtime, the artifact is automatically in escrow this way, and the sources are stored along side the binaries.
  • Automated deployments (using file copy, RHQ RestAPI, or JBoss Domain RestAPI).
  • Email notifications.
  • Sign off using Human Tasks in the workflow. Users and roles can be tailored to fit your organization. The sign off enhances the visibility of the where an artifact is in the deployment lifecycle.
  • Audit features allow full history tracking of the artifacts.
  • One repository for everything; so things can be found easily. This answers the "Where is my stuff" question. The XPath like query language of S-RAMP can used for searching.
If you want to follow along with the demo you should

1. Have DTGov running; see http://jboss-overlord.blogspot.com/2013/11/bleeding-edge-governance-getting-started.html.

2. Install the Eclipse BPMN2 Modeler into your Eclipse IDE, or you can try the early access JBoss Developer Studio.

Enjoy

Friday, November 1, 2013

Bleeding Edge Governance - Getting Started

We just completed an ant script that will help you get started with the latest Governance code in five easy steps and a bit of building time (your mileage may vary depending on the speed of your machine).


First download the latest script overlord.zip script (or if you prefer to use git: https://github.com/KurtStam/overlord)

Project Overlord consists of a repository (S-RAMP), Design Time Governance (DTGov) and Run Time Governance (RTGov). This script will build S-RAMP and DTGov. Both of these projects have a GUI component. All components share login information using SAML bearer tokens. The SSO code lives in a shared project called overlord-commons. Because of these SSO complexities we currently only support deploying to JBossEAP.

1. Check out the code from Governance on Github

This clones overlord-commons, s-ramp and dtgov from github. If you want to check out your own clones, then you can update the urls in the build.properties file.
ant clone
going forward you can update using ant pull.

2. Dowload JBossEAP-6.1

Navigate to http://www.jboss.org/jbossas/downloads, login and download JBoss-6.1.0.Final.zip to this directory.

3. Build

While your download is running you can kick off the build
ant install
 

4. Deploy to JBossEAP

When both 2 and 3 are finished you can deploy to JBossEAP by running
ant deploy
When ready start of EAP in standalone mode (jboss-eap-6.1/bin/startalone.sh) using a different shell.

5. Seed

You can now add the following section to your .m2/settings.xml
<server>
   <id>local-sramp-repo-snapshots</id>
   <username>admin</username>
   <password>your-admin-password</password>
</server>
<server>
   <id>local-sramp-repo-snapshots</id>
   <username>admin</username>
   <password>your-admin-password<</password>
</server>
 
Insert the admin password you supplied during step 4.
Make sure JBossEAP is fully booted up before you start the seeding
ant seed
This will upload the ontologies as well as the workflows. You can verify success using the s-ramp-ui. For now you will need to reboot JBossEAP to activate the workflows.
Good luck!
Please use the overlord user forum if you need help or have any other questions. We hope you will become part of our community and start writing your own extensions. Looking forward to seeing some good Git pull requests.
Cheers,
The Overlord team.