Best Practices for SOA-based integration and composite applications development