Space-based architecture

Space-based architecture (SBA) is a distributed-computing architecture for achieving linear scalability of stateful, high-performance applications using the tuple space paradigm. It follows many of the principles of representational state transfer (REST), service-oriented architecture (SOA) and event-driven architecture (EDA), as well as elements of grid computing. With a space-based architecture, applications are built out of a set of self-sufficient units, known as processing-units (PU). These units are independent of each other, so that the application can scale by adding more units. The SBA model is closely related to other patterns that have been proved successful in addressing the application scalability challenge, such as shared nothing architecture (SN), used by Google, Amazon.com and other well-known companies. The model has also been applied by many firms in the securities industry for implementing scalable electronic securities trading applications.

Space based architecture diagram

Components of space-based architecture

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 POJO (Plain Old Java Object) container, such as that provided by the Spring Framework.
Virtual middleware
A common runtime and clustering model, used across the entire middleware stack. The core middleware components in a typical SBA architecture are:
Component Description
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 (also known as a blackboard 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.
gollark: Oh, that's Rust, not macron.
gollark: `once(0).chain(once(1))` - do you not have `iter([0, 1])` or something?
gollark: Real is an overstatement.
gollark: "Lemongraph"?
gollark: I only trust deterministic ones.

See also

References

Literature

Articles/papers, technical:

  • Xu, Dezheng; Xiaoying Bai; Guilan Dai (2006). "A Tuple-Space-Based Coordination Architecture for Test Agents in the MAST Framework" (PDF). Tsinghua University, China.
  • Engelhardtsen, Fritjof Boger; Tommy Gagnes (2002). "Using JavaSpaces to create adaptive distributed systems" (PDF). Agder University College, Norway.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.