Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Event-Driven Services

Avatar for zhouquan zhouquan
October 13, 2016

Event-Driven Services

Avatar for zhouquan

zhouquan

October 13, 2016

Other Decks in Technology

Transcript

  1. ONELAB SLICE-BASED FRAMEWORK SFA Framework Testbeds Testbeds Testbeds ▸ Defines

    the minimal set of interfaces and data types that permit a federation of SFA component from different testbeds to communicate and operate.
  2. ONELAB SLICE-BASED FRAMEWORK Testbeds Testbeds Testbeds API API API ▸

    Defines the minimal set of interfaces and data types that permit a federation of SFA component from different testbeds to communicate and operate. SFA Framework
  3. ▸ SFA components: Authority, Slice, User ▸ SFA Data: Rspec,

    Credential ONELAB SLICE-BASED FRAMEWORK Testbed
  4. ▸ SFA components: Authority, Slice, User ▸ SFA Data: Rspec,

    Credential, Tickets ONELAB SLICE-BASED FRAMEWORK Testbed
  5. ONELAB SLICE-BASED FRAMEWORK ▸ SFA Registry: manages all the records

    inside a testbed. ▸ SFA Aggregate Manager: manages the experiments and resources. Testbed
  6. ▸ A web-based open platform which allows users(experimenters) to discover,

    browser, and reserve the resources among heterogeneous testbeds and conduct experiments. ▸ MySlice, acts as a thin waist layer communicating with the Slice-based Federation(SFA) framework, and hiding the complexity. TEXT WHAT IS ONELAB PORTAL?
  7. Testbed Testbed Testbed PROBLEMS GET RESOURCES RESOURCES FILES GET RESOURCES

    RESOURCES FILES GET RESOURCES OneLab 1. BROWSER RESOURCES
  8. Testbed Testbed Testbed PROBLEMS GET RESOURCES RESOURCES FILES GET RESOURCES

    RESOURCES FILES GET RESOURCES RESOURCES FILES OneLab 1. BROWSER RESOURCES
  9. Testbed Testbed PROBLEMS RESERVE SOME RESOURCE OneLab 2. SYNCHRONOUS &

    BLOCKING User A User B UPDATE THE SLICE RESPONSE
  10. Testbed Testbed PROBLEMS RESERVE SOME RESOURCE OneLab 2. SYNCHRONOUS &

    BLOCKING User A User B UPDATE THE SLICE RESPONSE
  11. PROBLEMS 3. FAULTS AND ERRORS Request Status: PENDING Web RESERVE

    RESOURCE Business Logic XML-RPC Communication User A
  12. PROBLEMS 3. FAULTS AND ERRORS Request Status: ERROR Web RESERVE

    RESOURCE Business Logic XML-RPC Communication ERROR User A OUR WEB SERVER FAILS!
  13. PROBLEMS 3. FAULTS AND ERRORS Request Status: PENDING Web RESERVE

    RESOURCE Manifold Query Business Logic XML-RPC Communication User A
  14. PROBLEMS 3. FAULTS AND ERRORS User A Request Status: ERROR

    Web RESERVE RESOURCE Manifold Query Business Logic XML-RPC Communication ERROR ERROR MANIFOLD FAILS!
  15. Testbed PROBLEMS 3. FAULTS AND ERRORS Request Status: PENDING Web

    RESERVE RESOURCE Manifold Query API Call Business Logic XML-RPC Communication User A
  16. Testbed PROBLEMS 3. FAULTS AND ERRORS User A ERROR Request

    Status: ERROR Web RESERVE RESOURCE Manifold Query API Call Business Logic XML-RPC Communication ERROR ERROR TESTBED GOES DOWN OR FAILS!
  17. MYSLICE V2 MySliceV2 MYSLICE V2 HTTP SFA Framework Testbed Testbed

    Testbed Tornado REST API + Services & Workers MySlicelib API
  18. MYSLICELIB API MYSLICE V2 SFA Client SFA Server Registry Client

    XML-RPC Communication Onelab Server Endpoint(url=“https://portal.onelab.eu:6080”,type="Reg") Generalisation
  19. MYSLICELIB API MYSLICE V2 SFA Client SFA Server AM Client

    XML-RPC Communication Generalisation TestBeds Server Endpoint(url=“https://griffin.ipv6.lip6.fr:8001/RPC2”,type="AM")
  20. MYSLICELIB API MYSLICE V2 s.endpoints = [ Endpoint(url=“https://portal.onelab.eu:6080”,type=“Reg"), Endpoint(url=“https://fuseco.fokus.fraunhofer.de/api/sfa/am/v3”,type=“AM”) ,

    Endpoint(url=“https://194.199.16.164:12346”,type=“AM”,name="IoTLab" ) , Endpoint(url=“https://griffin.ipv6.lip6.fr:8001/RPC2”,type=“AM”,name="NITOS Paris") , ]
  21. MYSLICELIB API MYSLICE V2 MySlicelib API Registry Client AM Client

    AM Client AM Client Onelab Server Testbed Testbed Testbed XML-RPC Communication Actions MYSLICE V2
  22. MYSLICELIB API MYSLICE V2 MySlicelib API Registry Client AM Client

    AM Client AM Client Onelab Server Testbed Testbed Testbed XML-RPC Communication Actions MYSLICE V2 GetResources() Worker
  23. MYSLICELIB API MYSLICE V2 MySlicelib API Registry Client AM Client

    AM Client AM Client Onelab Server Testbed Testbed Testbed XML-RPC Communication Actions MYSLICE V2 GetResources() GetResources() Worker
  24. MYSLICELIB API MYSLICE V2 MySlicelib API Registry Client AM Client

    AM Client AM Client Onelab Server Testbed Testbed Testbed XML-RPC Communication Actions MYSLICE V2 GetResources() GetResources() GetResources() GetResources() GetResources() Worker
  25. MYSLICELIB API MYSLICE V2 MySlicelib API Registry Client AM Client

    AM Client AM Client Onelab Server Testbed Testbed Testbed XML-RPC Communication Actions MYSLICE V2 GetResources() GetResources() GetResources() GetResources() Rspec Rspec Worker
  26. MYSLICELIB API MYSLICE V2 MySlicelib API Registry Client AM Client

    AM Client AM Client Onelab Server Testbed Testbed Testbed XML-RPC Communication Actions MYSLICE V2 GetResources() GetResources() GetResources() GetResources() Rspec Rspec Rspec Worker
  27. MYSLICE V2 RETHINKDB ALL THE RECORDS Sync Worker Onelab Server

    Testbed Testbed Testbed MySlicelib API Sync()
  28. MYSLICE V2 RETHINKDB ALL THE RECORDS Onelab Server Testbed Testbed

    Testbed Sync() MySlicelib API Sync Worker JSON RSpec
  29. MYSLICE V2 RETHINKDB ALL THE RECORDS Onelab Server Testbed Testbed

    Testbed Sync() MySlicelib API Sync Worker JSON RSpec
  30. MYSLICE V2 RETHINKDB ALL THE RECORDS GET Onelab Server Testbed

    Testbed Testbed Sync() Sync Worker MySlicelib API JSON RSpec
  31. MYSLICE V2 RETHINKDB EVENT EVENT SOURCE EVENT CHANNEL EVENT SINKS

    Web Requests Changefeeds Queues & Threads User Services & Workers Authority Services & Workers Slices Services & Workers
  32. MYSLICE V2 RETHINKDB EVENT EVENT SOURCE EVENT CHANNEL EVENT SINKS

    Web Requests Changefeeds Queues & Threads User Services & Workers Authority Services & Workers Slices Services & Workers EVENT id: <uuid> status: action: CREATE logs: <None> object: <User> NEW
  33. MYSLICE V2 RETHINKDB EVENT EVENT SOURCE EVENT CHANNEL EVENT SINKS

    Changefeeds Queues & Threads User Services & Workers Authority Services & Workers Slices Services & Workers EVENT id: <uuid> status: action: CREATE logs: <None> object: <User> Web Requests NEW
  34. MYSLICE V2 RETHINKDB EVENT EVENT SOURCE EVENT CHANNEL EVENT SINKS

    Changefeeds Queues & Threads User Services & Workers Authority Services & Workers Slices Services & Workers EVENT id: <uuid> status: action: CREATE logs: <None> object: <User> Web Requests PENDING
  35. MYSLICE V2 RETHINKDB EVENT EVENT SOURCE EVENT CHANNEL EVENT SINKS

    Changefeeds Queues & Threads User Services & Workers Authority Services & Workers Slices Services & Workers EVENT id: <uuid> status: action: CREATE logs: <None> object: <User> UPDATE Web Requests SUCCESS
  36. MYSLICE V2 RETHINKDB EVENT EVENT SOURCE EVENT CHANNEL EVENT SINKS

    Changefeeds Queues & Threads User Services & Workers Authority Services & Workers Slices Services & Workers EVENT id: <uuid> status: action: CREATE logs: <A set of logs> object: <User> Web Requests ERROR
  37. Backend MYSLICE V2 HTTP Tornado REST API + Frontend ReactJS

    ALT Flux + MYSLICE WEB Event GET GET /api/v1/resources Restful API
  38. Backend MYSLICE V2 HTTP Tornado REST API + Frontend ReactJS

    ALT Flux + MYSLICE WEB Event GET GET /api/v1/resources RESTful API JSON
  39. MYSLICE V2 CONCLUSION & FUTURE WORK ▸ Through the design

    of new architecture and early test, we can expect new portal will performs better. ▸ Future work should consider thread-safety and asynchronous implementations both on client and server side.