services • Has both loosely and tightly coupled parts • May be distributed or may run in a single process • Often requires integration with legacy and third-party systems • Typically has an interoperability layer (Web Services or REST) as well as an internal communications (MOM) layer
to small, single processes. • Ubiquitous. Deploy standalone, in a Servlet container, in a Java EE application server, as part of an automated test environment (Maven, Ant). • Extensible and customizable. Create features, configure custom runtime profiles. • Standards based. Service Component Architecture, Spring, Web Services, JAX- RS, JPA/Hibernate.
with boilerplate API calls. Remote calls – synchronous and asynchronous – are simple Java invocations. public class ServiceClient {! !@Reference! !protected Service service;! !public void invoke() {! !!Message message = …! !!service.call(message);! !}! }! Service Service Client JMS Web Services Communications Fabric Communications Fabric
integration testing lightweight. Remote services can be mocked. Improved Testability public class ServiceClient {! !@Reference! !protected Service service;! !public void invoke() {! !!Message message = …! !!service.call(message);! !}! }! Remote service is mocked
modularity and communications as well as the ability to holistically design an application architecture. Services can be connected via synchronous request-reply, asynchronous one-way and pub/sub patterns. Architectural Consistency REST Web Services File System Channel Database