Skip to: Site menu | Main content

fabric3

Vision Statement Print

Introduction

Building and managing applications has grown increasingly difficult. User expectations of application functionality continue to rise. Organizations are requiring more return on their technology investments through greater reuse of systems. To accomodate these demands, organizations have begun to build out service-based architectures.

However, the transition to service-based architectures has been far from straightforward. A number of factors have contributed to the difficulty of making this transition. First, server-side programming models and frameworks have consistently grown in complexity, greatly reducing productivity. Consider the case of an application that needs to expose a web service, process incoming requests, and integrate with enterprise systems via a messaging system. Writing such a system using JEE would require use of the JAX-WS, EJB and JMS APIs.

A second factor contributing to the current difficulty faced by technologists in transitioning to service-based architecures is the proliferation of middleware technologies and lack of an administrative framework capable of handling this heterogeneity. As applications are deployed using a mix of technologies (Web Services, JEE, Spring, scripting languages) on diverse runtimes (JEE application servers, Tomcat, Jetty, OSGi containers, edge devices), there is no common infrastructure for managing this process. Furthermore, there is no mechanism for governing policies - ensuring that security, reliability, and service level agreements are met - accross these environments.

Fabric3 Value

The fundamental premise of Fabric3 is that existing technologies make realizing service-based architectures uneccessarily complex and managing them costly. Fabric3 addresses two key issues:

  • Ease-of-use building services and distributed applications
  • The lack of administrative control across applications running on heterogeneous middleware.

The goal of Fabric3 is to make it easier for developers to build enterprise applications and for administrators to run and manage them. We do this in four ways:

SCA Support

We support SCA, which offers a standard, simplified programming model for distributed applications. Fabric3 also accomodates existing programming models such as Spring, BPEL, and EJBs as well as non-Java ones including Ruby, Groovy and XQuery. Our goal is to allow developers the freedom to choose the programming model that works for them. In addition, Fabric3 provides features aimed at making users more productive such as integration with popular presentation- and data- tier technologies, a lightweight test harness, and development tools.

Provisioning

Fabric3 enables service provisioning across a wide array of middleware. As part of the provisioning process, Fabric3 coordinates the deployment and activation of services on heterogeneous runtimes. Fabric3 supports multiple vendor and open source runtimes, including JBoss, Geronimo, WebLogic, Websphere, Oracle Application Server, Jetty, and Tomcat.

Administrative Control

Fabric3 provides administration, control, evolution, and migration of services across diverse runtimes. Fabric3 is runtime agnostic.

Policy Enablement

Fabric3 provides infrastructure for defining and enabling policy across services running on diverse middleware platforms. Fabric3 enables organizations to define and implement non-intrusive security, quality of service, and reliability guarantees that cut accross applications. Our approach is pragmatic: Fabric3 does not impose top-down development or place heavy requirements on developers. It allows them to get their job done while at the same time meeting the requirements of administrators.

***

Fabric3 is a platform for building and administering service-based systems that is delivered in lightweight, easy-to-use distributions. We are committed to a pragmatic approach that offers flexibility for both developers and administators without sacrificing capability.