Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Space-based architecture?

One chapter in Pragmatic Programmer recommends looking at a blackboard/space-based architecture + a rules engine as a more flexible alternative to a traditional workflow system.

The project I'm working on currently uses a workflow engine, but I'd like to evaluate alternatives. I really feel like a SBA would be a better solution to our business problems, but I'm worried about a total lack of community support/user base/venders/options.

JavaSpaces is dead, and the JINI spin-off Apache River seems to be on life support. SemiSpace looks perfect, but it's a one-man show. The only viable solution seems to be GigaSpaces.

I'd like to hear your thoughts on space based architecture and any experiences you've had with real world implementations.

like image 966
Robert Campbell Avatar asked Feb 24 '09 10:02

Robert Campbell


People also ask

What is Space-Based Architecture pattern?

A Space-Based Architecture (SBA) implementation is a set of Processing Units, with the following properties: Each processing unit instances holds a partitioned space instance and one or more services that are registered on events on that specific partition. Together they form an application cluster.

Is a spaced based application architecture is the same as a cloud based application architecture?

The space-based pattern (also sometimes referred to as the cloud architecture pattern) minimizes the factors that limit application scaling. This pattern gets its name from the concept of tuple space, the idea of distributed shared memory.

What is a component based architecture?

Component architecture is a framework for building software based on reusable components. Each component encapsulates well-defined functionality into a binary unit that can be stored in a library and dropped into an application without requiring modification of other components.

What is the concept of layers in architectural design?

The layered architecture style is one of the most common architectural styles. The idea behind Layered Architecture is that modules or components with similar functionalities are organized into horizontal layers. As a result, each layer performs a specific role within the application.


2 Answers

Why do you regard Javaspaces as dead, beyond the fact that the Jini 2.1 release was some time ago (October 2005) ? Having used that, I'd suggest that it indicates a mature and complete technology set rather than something abandoned and defunct.

For another implementation of Javaspaces, take a look at Blitz Javaspaces. That's maintained and enhanced more regularly (latest release July 2008) and offers a more performant and manageable Javaspace implementation than the default outrigger supplied by Sun.

like image 119
Brian Agnew Avatar answered Sep 21 '22 18:09

Brian Agnew


Gigaspaces is a successful commercial implementation of JavaSpaces -- so, I wouldn't say JavaSpaces is dead.

You might take a look at Java Shared Data Toolkit (also this article) to see if it meets your requirements.

like image 39
Joshua Fox Avatar answered Sep 19 '22 18:09

Joshua Fox