- Space-based architecture
Space-Based Architecture (SBA) is a software architecture pattern for achieving linear
scalability of stateful, high-performance applications using the tuple space paradigm. It follows many of the principles ofRepresentational State Transfer , Service-Oriented Architecture and Event-Driven Architecture, 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, 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.
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:* 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.
ee also
* Tuple Space
* JavaSpaces
* Blackboard SystemLiterature
Articles/papers, technical:
*
*
*References
* Bernhard Angerer, [http://www.onjava.com/pub/a/onjava/2003/03/19/java_spaces.html Space-Based Programming]
* Joseph Ottinger, [http://www.theserverside.com/news/thread.tss?thread_id=42928 Space-Based Architecture]
* Julian Browne, [http://www.julianbrowne.com/article/viewer/space-based-architecture-example Space-Based Architecture Illustration]
* Julian Browne, [http://www.julianbrowne.com/article/viewer/space-based-agility Space-Based Agility]
* Julian Browne, [http://www.julianbrowne.com/article/viewer/space-based-archetypes Space-Based Archetypes]
* Nati Shalom, [http://www.gigaspacesblog.com/2006/12/09/sbas-general-principles/ SBA General Principles]
* Owen Taylor, [http://jroller.com/page/owentaylor?entry=space_based_architecture_an_implementation Space-based Architecture — an implementation of TPC]
* Udi Dahan, The Software Simplist, [http://udidahan.weblogs.us/2007/01/20/space-based-architectural-thinking/ Space-Based Architectural Thinking]
* Mike Herrick, [http://fuzzypanic.blogspot.com/2006/12/sba-eda-lessons-learned.html SBA & EDA Lessons Learned]
* Tobin Harris, [http://www.tobinharris.com/2007/5/6/space-based-architecture-one-to-watch Space-Based Architecture — One to Watch]
* Udi Dahan, The Software Simplist, [http://udidahan.weblogs.us/category/space-based-architecture/ Space-Based Architecture]
* Guy Nirpaz (webcast), [http://www.bejug.org/confluenceBeJUG/display/PARLEYS/SBA+-+Scalable+SOA Space-Based Architecture — Scalable SOA]
Wikimedia Foundation. 2010.