15. February 2008
Trigger by Steve Clayton post about "Amazon - Where Do You Want To Go Tomorrow?"
A while ago I made a demo with Amazon Web Services, just to show what the limitations are when using models or how models can help to make better designs. Anyway I used the Web Service Software Factory Modeling Edition and Visual Studio Team Architect capabilities to generate the service models and service agents.
This is the application diagram where we have the existing Amazon services with two endpoints, the AWSECommerceService and the MechanicalTurk, and a Windows Client application which consumes them. For this demo I used the conform endpoint to WSDL functionality, but you can also use the Add Existing Service feature.
It looks pretty simple
The next thing I did during the demo is generating the service models and look... this is what you get, allot of shapes. A nice detail is the line between AWSECommerceService and the MechanicalTurk to the same messagecontract. the model generation functionality looks if there are contracts who are used by both services and connects them. [it's the HelpResponse message]
Anyway, I assume everybody agrees this is a useless model and the service agent model even looks more terrible. A real spaghetti model, where nobody can work with.
So, I totally agree with Juval Lowy's guidelines for services.
4. Avoid contracts with one member.
5. Strive to have three to five members per service contract.
6. Do not have more than twenty members per service contract. Twelve is probably the practical limit.
I say proven practice..!