Fabric3 is a platform for building distributed applications and integrating loosely coupled systems. Perhaps the best way to describe Fabric3 is to contrast it with other middleware technologies:
- Unlike Java EE app servers, Fabric3 is designed with integration in mind as opposed to autonomous (and often monolithic) applications. Fabric3 is used to assemble applications from loosely-coupled distributed services.
- Dependency injection frameworks such as Spring and Guice assemble local application components; Fabric3 extends assembly from local to distributed services.
- Unlike Enterprise Service Buses (ESB), Fabric3 is not based on a proprietary programming and integration model that sends all communication through a routing and transformation framework. Instead, Fabric3 relies on the OASIS SCA standards to wire application components directly without the complexity and overhead of an intermediary.
- Fabric3 does not compete with messaging middleware (MOM), but uses it for remote communication between services.
- Fabric3 does not replace web services but can be used to expose RESTful resources and WS-* endpoints to external clients.
The following sections explain key concepts used when designing, deploying and maintaining applications with Fabric3..