Patterns: implementing an SOA using an Enterprise Service Bus