Message-ID: <544012709.39810.1371536329173.JavaMail.email@example.com> Subject: Exported From Confluence MIME-Version: 1.0 Content-Type: multipart/related; boundary="----=_Part_39809_2113272806.1371536329172" ------=_Part_39809_2113272806.1371536329172 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Content-Location: file:///C:/exported.html
ActiveSpace uses the Space abstraction which is a simple JavaSpaces like abstractio= n which sits neatly on a high performance message bus.
The Space API is specifically designed for high performance streaming an= d for lightweight and high throughput SEDA= style architectures.
The Space API simplifies the JavaSpaces API to create a simple yet power= ful API which is capable of reusing all of the features of modern message b= us technologies like hierarchial wildcards, headers, routing, rules and so = forth along with both queues & publish/subscribe and pluggable Quality = of Service features
When using ActiveSpace in a distributed or clustered environment, the cr= eation of a space with or without a predicate will cause the infrastructure= to begin buffering up a number of objects in RAM of the client (assuming t= here are objects availble to be delivered) so that take or listen operation= s are super fast and not require any synchronous networking latency, lockin= g or contention.
To get a better feel for ActiveSpace try the javadoc or browse the source code
The basic idea is to make a Space more capable of its features and confi= guration. A space can use a JMS destination, which supports wildcards for c= reating hierarchies and grouping spaces together. e.g. this allows some con= sumers to look at a sub-space while other consumers look at larger groups o= r hierarchies.
A space can work in two primary modes
Also rather than the template mechanism in JavaSpaces, where you use an = empty object with public fields as a way of querying a space, we use an SQL= 92 query string to filter spaces. So we can create a child space with some= predicate applied.
In addition the space can have additional configuration properties like<= /p>
Finally we can easily support a variety of transaction modes such as
The core put and take operations are quite similar and things work at th= e POJO level so things are nice and simple. There are a few differences how= ever.