I see that you mentioned patterns and models a number of times in different answers.
1) With regards to patterns - Does SOAD follow any specific catalog for these patterns?
Personally I'm aware of the soapatterns.com and the associated book by Erl. Are there any other catalogs?
2) Can you please elaborate on SOA design models?
The soapatterns.org and the associated book by Thomas Erl are a great source for creating SOA Solutions. I'm a big fan of patterns and have previously written on the topic (check out http://patternsbasedengineering.net/). There are additional SOA patterns out there, IBM DeveloperWorks has some articles on sets of patterns, and there are a number of RedBooks that discuss patterns.
Another interesting approach to using patterns and automation is found in the SOI-Toolkit (http://code.google.com/p/soi-toolkit/). The SOI-Toolkit is an opensource project for the MuleESB product, and much like we've done with the Model Accelerator, they've taken a set of patterns and automated the use and application.
So where did the patterns we automated come from? There are a number of elements that came into the identification and then codification of the patterns: experiences of the team, reference materials such as Rational SOMA, the SoaML specification, and input from the community. I've been working on best practices in this area for many years now (projects, articles, RedBooks, presentations, courses). The patterns bringing these ideas together in a manner that is consumable (and with the reports, shareable!).
In the book we talk about some of the important ideas around models. In the past, I've run across many that question the value of using models. But when you examine the approach taken to modeling, they are essentially drawing their code. As such, it is easy to see why they question the value :-)
A good place to start is to use models for understanding, communicating and generating. In doing so, we use abstraction, automation and perspectives to gain value from our efforts:
- Domain specific languages such as SoaML help with the abstraction, as do patterns
- Automating patterns rather than trying to apply them manually is also very helpful (goes more quickly & consistent).
- Using diagrams on top of models to provide different perspectives depending on the purpose and audience of communication
Also, having a model means that we can use that information to support traceability analysis and generate reports (at anytime, in seconds, providing an accurate view). Using a drawing tool or creating a presentation limits how we communicate and as a result we often skip important inspection and design activities.
Joined: May 29, 2008
Thanks for the detailed answer. I'll check the mule link.