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 siloed applications. Fabric3 assembles composite applications from distributed services that may be hosted in a vairety of disparate systems.
- Unlike Enterprise Service Buses (ESB), Fabric3 is not based on a proprietary programming and integration model that routes all communication through a messaging abstraction. Instead, Fabric3 relies on the SCA standards to wire application components directly or through typed channels without the complexity and overhead of an intermediary.
- Dependency injection frameworks such as Spring and Guice assemble local application components; Fabric3 extends assembly from local to distributed services.
- Fabric3 does not compete with messaging middleware (MOM), but often 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.
Key Concepts
The following sections explain key concepts used when designing, deploying and maintaining distributed applications with Fabric3.