Monday, October 15, 2007

The End of Tier-Based Computing - SBA

Today in the technology space new ways (SOA/Grid Computing) are emerging to create linearly-scalable systems at lower cost. But these architectural ways are not aligned with the existing tier bases application model, which by definition central and static.

SBA (Space-Based Architecture) is the new approach to transforming existing tier based applications into linearly and dynamically scalable services.

SBA represents a new model that combines and integrates distributed caching (“Data Grid”), contentbased distributed messaging (“Messaging Grid”) and parallel processing (“Processing Grid”) into a powerful new computing paradigm.

These new middleware components are implemented on top of a distributed shared memory space that provides a common platform for clustering, high availability, location transparency and consistency services across all tiers.

The power of spaces comes from not having to separate various parts of an application into discrete physical runtimes — and then wiring those together in complex, hard-to-scale, and performanceconsuming tangles of middleware. A space doesn’t care if an application has been “tiered.” Whether it has or not, the same program code will instantiate multiple times on the same machine or on multiple machines automatically — and even dynamically - in response to runtime parameters like CPU utilization.

Instances communicate through the space, just as if they were talking to middleware. In fact, they can use the same middleware APIs they always have — except now the middleware’s role has become virtualized, meaning that all physical message and data exchanges are handled transparently by the space.

Why We Need it:

Today the environment and and requirement for the distributed applications are changing. Processing the high volume of information at fast rate and low cost is not possible by adjusting the existing architectures to the requirements. Most of the architectures are based on the assumptions of the network capacity and and the memory available which are not true for the current scenario.

Due to large scale, low cost memory resources and new networking technologies like infiniband calls the change in the current middleware components to leverage these changes and enable applications to exploit the potential of previously unavailable resources to address the growing business need.

SBA

SBA is based on the Tuple Space model.The tuple space represents a logical shared address space via which distributed applications share information, coordinate actions (workflow) and deliver messages using a very simple set of APIs for manipulating objects in shared memory. In late 90s, Sun Microsystems introduced a specification named JavaSpaces™, which is an object-oriented implementation of the Tuple Space model.

SBA is a logical architecture that combines the different patterns mentioned above - caching,
messaging and parallel processing - for building high- performance, stateful SOA applications. SBA is aimed at providing a broader conceptual architecture and is not restricted to the JavaSpaces API.

Components of SBA

An application built on the principles of space-based architecture typically has the following components:

  • Processing Unit – the unit of scalability and fail-over. Normally, a processing unit is built out of a Plain Old Java Object container (POJO)
  • Virtual Middleware – a common runtime and clustering model, used across the entire middleware stack. The core middleware components in a typical SBA architecture are:
Messaging Grid:
Handles the flow of incoming transaction as well as the communication between services

Data Grid
Manages the data in distributed memory with options for synchronizing that data with an underlying database

Processing Grid
Parallel processing component based on the master/worker pattern that enables parallel processing of events among different services

  • POJO-Driven Services Model – A lightweight services model that can take any standard Java implementation and turn it into a loosely coupled distributed service. The model is ideal for interaction with services that run within the same processing-unit.
  • SLA-Driven Container – The SLA-driven container enables the deployment of the application on a dynamic pool of machines based on Service Level Agreements. SLA definitions include the number of instances that need to run in order to comply with the application scaling and fail-over policies, as well as other policies.

No comments: