Creating applications based on SOA
- Select your implementation technologies carefully. Carefully check if Web services are suitable. Sometimes using traditional methods such as Java RMI, JMS and/or EJB can be more accurate for your use cases than using Web services.
- Create coarse grained services as opposed to fine grained services. Fine grained services may not only adversely affect performance but also can give in hardly coupled services.
- Services need to have well-described interfaces that are implementation independent. An important point of SOA is the separation of the service interface from its implementation. This gives you to modify implementation without splitting the contract. The same interface may be shared by many implementations.
- XML document should be used over Data Transfer Objects (DTOs). Data Transfer Objects must respect some of the principles such as:
- They have to be serializable into XML. Ability to serialize into XML gives platform independence.
- They must not be related of the data source. Do not add any persistence code. SOA does not send with Object-Relational mapping functions.