Traditional enterprise integration deployments are based on the "centralized server" physical deployment model. This deployment model all started with the success of big Relational Database Management Systems (RDBMS) for centralized management of data, extended into the application server tier with big Java EE Application Servers for centralized management of applications, and finally into the integration tier with big Business Process Management Server / Enterprise Services Bus Servers for centralized management of the integration tier.
The cloud (whether it be private, public, or hybrid) allows for massively parallel, horizontal scale-out architectures. This is radically different from the centralized, vertical scale-up architectures that have evolved from the original success of big-RDBMS on physical hardware. In putting together its Cloud Application Platform, named vFabric, VMware has made two key acquisitions over the past year to enable Spring Applications deployed on tc Server to be scaled elastically within the cloud:
- , an in-memory data fabric that goes well beyond typical caching of data allowing for fast read/write of globally distributed data across a heterogeneous environment; and
- , a lightweight message broker, based on the AMQP standard, allowing for fast asynchronous, reliable messaging over the TCP protocol within a globally distributed, heterogeneous environment
Spring Integration is an embedded message bus that runs within any Spring application context and an application integration framework that connects to other systems via adapters. It is built on the Core Spring programming model and provides a couple of key abstractions that can enable systems integrators even greater flexibility to continually evolve their solutions as technology and business requirements change:
-
Message: a payload can be any object, and header values are stored in a simple map
-
Message Channel: a portable abstraction over the messaging transport being used that allows the application developer to change between multiple channel adapters (i.e. JMS, AMQP, REST) as a matter of configuration, not code
-
Message Endpoint: delegate a received message to any Spring-managed object for handling
-
Message Store: a portable abstraction over the data store (i.e. RDBMS, Cache) being used to track a message as it passes through the loosely coupled messaging system
In this discussion, we'll talk about the newest support for Caching and AMQP within Spring Integration and how application developers are building a new class of enterprise integration applications that are purpose-built for elastic scalability within the cloud.