SemiSpace

An introduction

What is?




SemiSpace is a light weight
Open Source interpretation of
Tuple Space / Object Space

Use correct tools (1/2)

Use correct tools (2/2)

Consequences

Suited for

Working with

SemiLease write        (Object obj, long lifeTimeInMs );
Object    read         (Object template, long timeout);
Object    readIfExists (Object template);
Object    take         (Object template, long timeout);
Object    takeIfExists (Object template);
SemiEventRegistration notify
    (Object template,
     SemiEventListener listener,
     long duration);
    

Working with

Working with

Working with

Working with

Working with

Working with

Working with

Working with

Working with

Reasons - SemiSpace (1/2)

Reasons - SemiSpace (2/2)

CometD




CometD
...and the real time web

In the beginning...

Classic web model

Classic web

Next came...

Ajax web model

Ajax web

Comet

Comet web model

Comet web

Integration




SemiSpace + Comet
Distributed JSON

Goals

Connection object

var comet = new semispace.Comet(cometImpl, server);

comet.addMetaListener(function(status, message){
    // server messages and server status
});
    

SemiSpace object

var space = new semispace.SemiSpace(connectionObject);

space.notify(template, listener, duration, callback);

space.write(obj, lifeTimeInMs, callback);

space.read(template, timeout, callback);

space.readIfExists(template, callback);

space.take(template, timeout, callback);
       
space.takeIfExists(template, callback);       
    

Generic JSON

Object:

{"video" : {
    "userid" : "128746311",
    "orgfile" : "holliday.avi",
    "path" : "/data/001/"
}}
    

Templat:

{"video" : {
    "userid" : "128746311"
}}
    

JavaScript to Java

{
    "org_someproject_converter_video" : {
        "userid" : "128746311",
        "orgfile" : "holliday.avi",
        "path" : "/data/001/"
    }
}
    

High scalability

Next step

Demo




Demo time :)