Space Based Architecture
   HOME

TheInfoList



OR:

A Space-based architecture (SBA) is an approach to distributed computing systems where the various components interact with each other by ''exchanging'' tuples or entries via one or more shared spaces. This is contrasted with the more common
Message queuing service A message queueing service is a message-oriented middleware or MOM deployed in a compute cloud using software as a service model. Service subscribers access queues and or topics to exchange data using point-to-point or publish and subscribe pat ...
approaches where the various components interact with each other by ''exchanging'' messages via a message broker. In a sense, both approaches exchange messages with some central agent, but how they exchange messages is very distinctive. An analogy might be where a message broker is like an
Academic conference An academic conference or scientific conference (also congress, symposium, workshop, or meeting) is an event for researchers (not necessarily academics) to present and discuss their scholarly work. Together with academic or scientific journals an ...
, where each presenter has the stage, and presents in the order they are scheduled; whereas a tuple space is like an
Unconference An unconference is a participant-driven meeting. The term "unconference" has been applied, or self-applied, to a wide range of gatherings that try to avoid hierarchical aspects of a conventional conference, such as sponsored presentations and top ...
, where all participants can write on a common whiteboard concurrently, and all can see it at the same time. * Tuple Spaces ** each space is like a 'channel' in a message broker system that components can choose to interact with ** components can write a 'tuple' or 'entry' into a space, while other components can read entries/tuples from the space, ''but using more powerful mechanisms than message brokers'' ** writing entries to a space is generally not ordered as in a message broker, but can be if necessary ** designing applications using this approach is less intuitive to most people, and can present more cognitive load to appreciate and exploit * Message Brokers ** each broker typically supports multiple 'channels' that components can choose to interact with ** components write 'messages' to a channel, while other components read messages from the channel ** writing messages to a channel is generally in order, where they are generally read out in the same order ** designing applications using this approach is more intuitive to most people, sort of the way that
NoSQL A NoSQL (originally referring to "non- SQL" or "non-relational") database provides a mechanism for storage and retrieval of data that is modeled in means other than the tabular relations used in relational databases. Such databases have existed ...
databases are more intuitive than SQL A key goal of both approaches is to create loosely-coupled systems that minimize configuration, especially shared knowledge of who does what, leading to the objectives of better availability, resilience, scalability, etc. More specifically, an SBA is a distributed-computing architecture for achieving linear
scalability Scalability is the property of a system to handle a growing amount of work by adding resources to the system. In an economic context, a scalable business model implies that a company can increase sales given increased resources. For example, a ...
of stateful, high-performance applications using the
tuple space A tuple space is an implementation of the associative memory paradigm for parallel/distributed computing. It provides a repository of tuples that can be accessed concurrently. As an illustrative example, consider that there are a group of process ...
paradigm. It follows many of the principles of representational state transfer (REST),
service-oriented architecture In software engineering, service-oriented architecture (SOA) is an architectural style that focuses on discrete services instead of a monolithic design. By consequence, it is also applied in the field of software design where services are provide ...
(SOA) and
event-driven architecture Event-driven architecture (EDA) is a software architecture paradigm promoting the production, detection, consumption of, and reaction to events. Overview An ''event'' can be defined as "a significant change in state". For example, when a consumer p ...
(EDA), as well as elements of
grid computing Grid computing is the use of widely distributed computer resources to reach a common goal. A computing grid can be thought of as a distributed system with non-interactive workloads that involve many files. Grid computing is distinguished from co ...
. 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 Shared may refer to: * Sharing * Shared ancestry or Common descent * Shared care * Shared-cost service * Shared decision-making in medicine * Shared delusion, various meanings * Shared government * Shared intelligence or collective intelligence ...
(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.


History

Space-based architecture (SBA) was originally invented and developed at Microsoft in 1997–98. Internally at Microsoft it was known as Youkon Distributed Caching platform (YDC). First large web projects based on it were MSN Live Search (released in Sept. 1999) and later MSN Customer marketing data store (multi-terabyte in-memory DB shared by all MSN sites) as well as a number of other MSN sites released in late 1990s and early 2000s. See US patents 6,453,404 and 6,449,695: and other patents based on these:


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 The Spring Framework is an application framework and inversion of control container for the Java platform. The framework's core features can be used by any Java application, but there are extensions for building web applications on top of the Java ...
. ;Virtual middleware: A common runtime and clustering model, used across the entire
middleware Middleware is a type of computer software that provides services to software applications beyond those available from the operating system. It can be described as "software glue". Middleware makes it easier for software developers to implement co ...
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.


See also

*
Tuple space A tuple space is an implementation of the associative memory paradigm for parallel/distributed computing. It provides a repository of tuples that can be accessed concurrently. As an illustrative example, consider that there are a group of process ...
*
Blackboard system A blackboard system is an artificial intelligence approach based on the blackboard architectural model, where a common knowledge base, the "blackboard", is iteratively updated by a diverse group of specialist knowledge sources, starting with a pro ...


References


Literature

Articles/papers, technical: * * {{cite web , last = Engelhardtsen , first = Fritjof Boger , author2=Tommy Gagnes , year = 2002 , url = http://www.nik.no/2002/Engelhardtsen.pdf , title = Using JavaSpaces to create adaptive distributed systems , publisher = Agder University College, Norway Distributed computing architecture Middleware Cluster computing Grid computing Distributed data storage