Presentation is loading. Please wait.

Presentation is loading. Please wait.

SAN FRANCISCO, CA, USA Daniele Bonetta Achille Peternier Cesare Pautasso Walter Binder

Similar presentations


Presentation on theme: "SAN FRANCISCO, CA, USA Daniele Bonetta Achille Peternier Cesare Pautasso Walter Binder"— Presentation transcript:

1 SAN FRANCISCO, CA, USA Daniele Bonetta Achille Peternier Cesare Pautasso Walter Binder http://sosoa.inf.unisi.ch

2 Computing in Heterogeneous, Autonomous 'N' Goal-oriented EnvironmentsSOSOA Self-Organizing Service Oriented Architectures Exploring novel, self-adapting approaches to the design of SOAs Overcome limitations of current SOAs  performance on modern infrastructures Multicore Cloud CHANGE 2012 – San Francisco, CA, USA 2

3 Computing in Heterogeneous, Autonomous 'N' Goal-oriented Environments RESTful Web Services ClientClientClientClient ClientClient Resource Resource Resource Resource HTTPHTTP HTTPHTTP HTTPHTTP CHANGE 2012 – San Francisco, CA, USA Architectural style:  Client/Server architecture  Stateless interaction  Resources URIs  Uniform HTTP interface GET, PUT, POST, DELETE 3

4 Computing in Heterogeneous, Autonomous 'N' Goal-oriented Environments HTTP uniform interface CHANGE 2012 – San Francisco, CA, USA 4 HTTP Verb PropertiesParallelism GET Idempotent, safe, stateless Yes PUT Idempotent, side-effects If stateless DELETE Idempotent, side-effects If stateless POSTside-effectsIf stateless

5 Computing in Heterogeneous, Autonomous 'N' Goal-oriented EnvironmentsGoal “Design a new language to develop and compose RESTful Web Services that automatically scale in the number of clients and cores using safe implicit parallelism” CHANGE 2012 – San Francisco, CA, USA 5 S

6 S framework RESTful Web Services Multicore server

7 S language S compiler S runtime RESTful Web Services Multicore server

8 S language S compiler S runtime RESTful Web Services Multicore server

9 “Node.js is a platform built on Chrome's JavaScript runtime for easily building fast, scalable network applications. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices.” (source: www.nodejs.org)

10 Computing in Heterogeneous, Autonomous 'N' Goal-oriented Environments Single process Based on asynchronous event-loop and callbacks on (‘someEvent’, doSomething(req, res)) on (‘somethingElse’, function(req, res) { //... }) CHANGE 2012 – San Francisco, CA, USA 10

11 Computing in Heterogeneous, Autonomous 'N' Goal-oriented Environments Asynchronous non-blocking I/O ✔ No locks/synchronization ✔ Sequential composition: nested callbacks ✘ Long callbacks problem ✘ Limited support for parallelism ✘ CHANGE 2012 – San Francisco, CA, USA 11

12 S language

13 Computing in Heterogeneous, Autonomous 'N' Goal-oriented Environments S design principles High-level architectural abstractions  Based on services and resources  No threads/processes No synchronization/locks Simple, clean programming model  Allows blocking function calls  Constructs for parallel I/O  REST/HTTP as part of the language CHANGE 2012 – San Francisco, CA, USA 13

14 Computing in Heterogeneous, Autonomous 'N' Goal-oriented Environments S Architecture S Service S Resource NodeJSNodeJSNodeJSNodeJSNodeJSNodeJSNodeJSNodeJSNodeJSNodeJS S IPC Communication Framework Non-blocking I/O S code Asynchronous Non-blocking NodeJS code CHANGE 2012 – San Francisco, CA, USA 14 S language S runtime

15 Computing in Heterogeneous, Autonomous 'N' Goal-oriented Environments S Hello World res ‘/hello’ on GET { respond ‘World!’ } Resource URI HTTP method HTTP method JavaScript or S code CHANGE 2012 – San Francisco, CA, USA 15

16 Computing in Heterogeneous, Autonomous 'N' Goal-oriented Environments S Hello World res ‘/hello’ on GET { respond ‘World!’ } GET /hello HTTP/1.1 User-Agent: curl Accept: */* Host: your.host Client S Service HTTPHTTP CHANGE 2012 – San Francisco, CA, USA 16

17 Computing in Heterogeneous, Autonomous 'N' Goal-oriented Environments S Hello World res ‘/hello’ on GET { respond ‘World!’ } ClientClient S Service HTTP/1.1 200 OK Content-Type: text/plain World! HTTPHTTP CHANGE 2012 – San Francisco, CA, USA 17

18 Computing in Heterogeneous, Autonomous 'N' Goal-oriented Environments S Compositions res ‘/hello1’ on GET { respond get ‘http://www.site.com’ } res ‘/hello2’ on GET { respond get ‘/hello1’ } Native HTTP support Native HTTP support CHANGE 2012 – San Francisco, CA, USA 18

19 Computing in Heterogeneous, Autonomous 'N' Goal-oriented Environments S Compositions res ‘/hello1’ on GET { respond get ‘http://www.site.com’ } res ‘/hello2’ on GET { respond get ‘/hello1’ } Client /hello2 /hello1 www.site.com HTTP CHANGE 2012 – San Francisco, CA, USA 19

20 Computing in Heterogeneous, Autonomous 'N' Goal-oriented Environments Parallel resources Parallel resources Atomic and consistent blocks Atomic and consistent blocks S Parallelism res ‘/res1’ on GET { //... // CPU-bound blocking call: var a = foo() respond a } res ‘/res2’ on GET { //... res r = ‘http://www.google.ch/search=@’ // I/O bound operation: boo = r.get(‘key’) respond boo } CHANGE 2012 – San Francisco, CA, USA 20

21 Computing in Heterogeneous, Autonomous 'N' Goal-oriented Environments Stateful services CHANGE 2012 – San Francisco, CA, USA 21 res ‘/helloState’ { state s = ‘world’ on GET { respond ‘hello’ + s } on PUT { s = req.name } State shared between callbacks Read-only operations Write operations

22 S compiler

23 Computing in Heterogeneous, Autonomous 'N' Goal-oriented EnvironmentsAdaptivity CHANGE 2012 – San Francisco, CA, USA 23 Worker #1 /res Request handler processor Client HTTPHTTP Router Requests Responses HTTPHTTP Client Worker #n … Parallelism degree controller (PI) HTTPHTTP S Worker From other workers HTTPHTTP

24 Computing in Heterogeneous, Autonomous 'N' Goal-oriented Environments I/O-bound operations Synchronous I/O operations are desynchronized by the S compiler using multiple callbacks CHANGE 2012 – San Francisco, CA, USA 24

25 Computing in Heterogeneous, Autonomous 'N' Goal-oriented Environments Sequential composition CHANGE 2012 – San Francisco, CA, USA 25 res ‘/example’ on GET { var a = get ‘www.google.com’ var b = get ‘www.bing.com’ var c = get ‘www.yahoo.com’ respond a+b+c } S

26 Computing in Heterogeneous, Autonomous 'N' Goal-oriented Environments Sequential composition CHANGE 2012 – San Francisco, CA, USA 26 S http.createServer(function(creq, cres) { if (creq.method == ‘GET’ && creq.url == ‘/example’) { var a, b, c = ‘’ startGet(‘www.google.com’, function(req, res) { a = res.body startGet(‘www.bing.com’, function(req, res) { b = res.body startGet(‘www.yahoo.com’, function(req, res) { c = res.body cres.end(a+b+c) }) } })

27 Computing in Heterogeneous, Autonomous 'N' Goal-oriented Environments Parallel composition CHANGE 2012 – San Francisco, CA, USA 27 S res ‘/example’ on GET { par { var a = get ‘www.google.com’ var b = get ‘www.bing.com’ var c = put ‘www.site.com/?d=’+b respond a+c }

28 Computing in Heterogeneous, Autonomous 'N' Goal-oriented Environments Parallel composition CHANGE 2012 – San Francisco, CA, USA 28 res ‘/example’ on GET { par { var a = get ‘www.google.com’ var b = get ‘www.bing.com’ var c = put ‘www.site.com/?d=’+b respond a+c } get var a=… var b=… var c=… put respond

29 Computing in Heterogeneous, Autonomous 'N' Goal-oriented Environments Parallel composition CHANGE 2012 – San Francisco, CA, USA 29 http.createServer(function(req, res) { if (creq.method == ‘GET’ && creq.url == ‘/example’) { var G = {} on (‘done1’, function(result) { G.a = result; emit(‘done3’) }) on (‘done2’, function(result) { G.b = result; startPut(‘www.site.com./d?=‘ + G.b, ‘done4’) }) on (‘done4’, function(result) { G.c = result; emit(‘done5’) }) onAll([‘done3’,‘done5’], function() { res.end(G.a + G.c) }) startGet(‘www.google.com’, ‘done1’) startGet(‘www.bing.com’, ‘done2’) } }) S

30 Computing in Heterogeneous, Autonomous 'N' Goal-oriented Environments Two levels of parallelism CHANGE 2012 – San Francisco, CA, USA 30 Number of Workers Async I/O CPU-bound I/O-bound

31 Computing in Heterogeneous, Autonomous 'N' Goal-oriented Environments Example: Crawler CHANGE 2012 – San Francisco, CA, USA 31 Parallel recursive crawling Result accumulation service crawl { res ‘/crawl‘ on PUT { var filter = require(‘HTMLparser.js’).filter res store = ‘/store?value=@’ res crawl = ‘/crawl?list=@’ pfor(var i in req.list) { var list = filter(get req.list[i]) par { store.put(list) crawl.put(list) } res ‘/store‘ { state s = ‘’ on PUT { s += req.value } on GET { respond s }

32 Computing in Heterogeneous, Autonomous 'N' Goal-oriented Environments Example: Crawler RT CHANGE 2012 – San Francisco, CA, USA 32 L = [url1, url2, …] /store Router State /url Worker #1 Router /crawl … Worker #n Worker #2

33 Computing in Heterogeneous, Autonomous 'N' Goal-oriented Environments Crawler performance CHANGE 2012 – San Francisco, CA, USA 33 24 cores server

34 Computing in Heterogeneous, Autonomous 'N' Goal-oriented EnvironmentsChallenges CHANGE 2012 – San Francisco, CA, USA 34 /res Router … Worker #1 Worker #n /res Router … Worker #1 Worker #n /res Router … Worker #1 Worker #n Monitor and controller CPU I/O

35 Computing in Heterogeneous, Autonomous 'N' Goal-oriented EnvironmentsChallenges CHANGE 2012 – San Francisco, CA, USA 35

36 Computing in Heterogeneous, Autonomous 'N' Goal-oriented EnvironmentsChallenges CHANGE 2012 – San Francisco, CA, USA 36 Client HTTPHTTP

37 Computing in Heterogeneous, Autonomous 'N' Goal-oriented EnvironmentsChallenges CHANGE 2012 – San Francisco, CA, USA 37 Client

38 Computing in Heterogeneous, Autonomous 'N' Goal-oriented Environments Thank you D. Bonetta, A. Peternier, C. Pautasso, W. Binder S: a Scripting Language for High-Performance RESTful Web Services 17th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP 2012), pp. 97-106, New Orleans, LA, USA, 2012 CHANGE 2012 – San Francisco, CA, USA 38 S http://sosoa.inf.unisi.ch

39 Computing in Heterogeneous, Autonomous 'N' Goal-oriented EnvironmentsAppendix CHANGE 2012 – San Francisco, CA, USA 39


Download ppt "SAN FRANCISCO, CA, USA Daniele Bonetta Achille Peternier Cesare Pautasso Walter Binder"

Similar presentations


Ads by Google