I'm currently working as a Services Architect/Analyst in an environment build on top of a JBoss ESB, with all the business logic orchestrated using either actions provided within the ESB or our own set of Generic actions (DB accessors, simplified content based routers, etc.).
In order to have a clear specification/documentation of our business flows and implementations I have spent some time looking for some tool which would allow me to Graphically model the Message Flows within our system and which would allow me to define not only "which services" are used in these flows, but also design the Inner service structure (actions, listeners, mep, etc.).
However, after having tried many options (JBpm, BPMN 2.0, UML, SoaML, TOGAF) within Eclipse or using external tools, such as Modelio, I have found nothing suitable enough, since BPM oriented tools focus on Services Orchestration without making it easy to define inner details of each service and UML oriented tools focus on the action/class details but do not provide an easy to understand Flow Overview.
By way of example, here you have a skeleton with three services and a brief of what they do (so this is the exact information I need to document):
> Service: clientDetails
- One Way
- XPath: Get Client Details
- Set ReplyTo: requestDetails
- StaticRouting: authenticate
> Service: authenticate
- DB: Validate Client Details
- If Invalid throw Error: "Authentication failure".
> Service: requestDetails
.- Clear ReplyTo.
- XPath: Get Request Details
- DB: Get Request Availability
- If Unavailable throw Error: "Request unavailable"
- StaticWiretap: processRequest
- Respond OK.
And the corresponding BPMN model, created with Modelio:
What I expect is something like this model but which allows me to either:
- introduce the service details (actions, etc.) into each one of the Subprocess boxes (servies), so a Business Manager can understand the Process Steps inside our system while the Developer has all the information needed to develop the services.
- link each subprocess box to some Service Modeling diagram, so the Developer can double click each service to find out the implementation details.
Is there any tool or modeling language out there which provides such an overview of the flows but allows at the same time to define Service details?
I must confess that although I have checked all the named tools I have not been able to explore all their possibilities so maybe one of them is the clue.
Thanks in advance, at least for reading the long post!
I have to ask because I don't see it in the list of things you've tried - but have you tried the JBoss ESB plugin within JBoss SOA Tooling (http://www.jboss.org/tools/) or (http://www.jboss.com/products/devstudio/)? I don't think it will complete your full set of requirements that you've laid out here, but it will make it a lot easier to define the inner workings of each service.
Thanks for your response Tom, but if you mean the xml graphical editor which shows the Services tree, I also tried it and found that it has too much detail to have a complete overview of the business flow.
And, on the other hand, when working on the implementation I prefer editing direclty the xml, since once you get used to it you can "read" the services/actions tree directly from it. So, at the end it wasn't much helpfull.
However, if you meant another feature let me know and I'll gladly give it a try.