Your browser doesn't support the features required by impress.js, so you are presented with a simplified version of this presentation.

For the best experience please use the latest Chrome, Safari or Firefox browser.


Liquid Web Services

Cesare Pautasso
http://www.pautasso.info
[email protected]
@pautasso

Liquid Web Services

A metaphor for adaptable systems

A Matter of Style

When the size and complexity of a system grows, we cannot describe its whole architecture, but we can still know its style

Liquid Quality Attributes

Scalability

Adaptability

Flexibility

Elasticity

WWW 2011

Predictable Performance under any workload

Cope with changes in the environment at run-time

Transparent Deployment on any execution platform

Absorb dynamic workload changes

Some Constraints

Fine-grained Decomposition

Global Addressability

Underspecified Communication

Uniform Interface

WICSA 2011

Smaller elements are easier to migrate, replicate and bind

Uniquely identify all elements (and their state)

Elements closer together should interact more efficiently

Predict the impact of each interaction on the state of an element

The S Scripting Language

for Scalable, Stateful, Services

PPOPP 2012

Hello World

service S { 
  res '/hello' on GET { 
  //handle GET request
    respond 'World!'; 
  }
}

Request handlers contain any JavaScript code
(with some S extensions)

Service Composition

service Composition { 
  res '/hello1' on GET { 
    respond get 'http://api.inf.usi.ch/'; 
  }
  res '/hello2' on GET { 
    respond get '/hello1'; 
  }
}

Stateful Services

service Stateful { 
 res '/helloState' {
  state s = 'World'
  on GET { 
    respond 'Hello' + s
  }
  on PUT { 
   s = req.name
  }
 }
}

S Runtime

  • Compiled to JavaScript, S scripts run on the node.js framework
  • The S runtime extends node.js with support for parallelization and automatic reconfiguration
  • Each request handler runs in a separate node.js worker process
    (Global Addressability, Fine-grained Decomposition)
  • Handlers of stateless resources can be replicated and migrated dynamically at will (Uniform Interface)
  • Handlers of stateful resources use a master-slave replication style (Uniform Interface)
  • Communication between node.js processes uses an optimized protocol, while HTTP is used to interact with the external world (Underspecified Communication)

Scalability Experiment (24 cores)

Conclusion

  • The "Liquid" physical properties is a good metaphor for intrinsically adaptable software, which can be seamlessly deployed across heterogeneous execution platforms (Clouds, multicores).
  • The S language extends JavaScript with architectural-level constructs to build RESTful Web services, which also embody the constraints of the liquid architectural style

References

Use a spacebar or arrow keys to navigate