1 / 12

RDA3 high- level – API & architecture 2 6th JUNE 201 3

RDA3 high- level – API & architecture 2 6th JUNE 201 3. Ilia Yastrebov BE-CO-IN. RDA3 Design Principles. Functional aspects Controls Middleware based on Device / Property model Operations: GET, SET (sync and async ), SUBSCRIBE Enhanced runtime diagnostics & statistics

velma
Download Presentation

RDA3 high- level – API & architecture 2 6th JUNE 201 3

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. RDA3 high-level – API & architecture26thJUNE 2013 • Ilia YastrebovBE-CO-IN

  2. RDA3 Design Principles • Functionalaspects • Controls Middleware based on Device/Property model • Operations: GET, SET (sync and async), SUBSCRIBE • Enhanced runtime diagnostics & statistics • Technical aspects • C++ & Java support • Lightweight (minimum dependencies, small footprint) • Non-blocking communication • QoS guarantees (priorities for clients & subscriptions) • Scalable Half-Sync/Half-Async threading pattern • Sync: Event demultiplexer (Reactor) • Async: Message priority queue + Threadpool (Scheduler) • API based on interfaces and Dependency Injection RDA3 High-Level - API & Architecture

  3. RDA3 Architecture • Transport Layer • Implements P2P non-blocking request-reply communication • Wraps ZeroMQbehind the interface • Detects disconnections / Provides reconnection facilities • High Layer • Client and Server API • Maintains connection state & client sessions • Extensible protocol independent of TL • Serialization • Subscriptions (with notifications ordering) • Processing engine (scheduler) • Integrates with Directory Service and RBAC (authorization) • Implements QoS (client & subscription priorities) Application RDA3 High Layer Transport ZeroMQ RDA3 High-Level - API & Architecture

  4. Client API: Request-Reply (GET & SET) RDA3 High-Level - API & Architecture

  5. Client API: Subscriptions RDA3 High-Level - API & Architecture

  6. Client Flow Diagram RDA3 High-Level - API & Architecture

  7. Subscription States RDA3 High-Level - API & Architecture

  8. Server API: Request-Reply RDA3 High-Level - API & Architecture

  9. Server API: Subscriptions RDA3 High-Level - API & Architecture

  10. Server Flow Diagram RDA3 High-Level - API & Architecture

  11. Serialization • Evaluated several 3rd party solutions • Google Protobuf (IDL based, huge project) • MessagePack (no IDL, many deps, slow for double arrays) • Endedup with home-made serialization • Small project, easy to implement • No dependencies • Performance gain • Data object with 3 arrays (int[], double[], String[]) of 40 elements each.Results for 100000 serialization+deserialization iterations RDA3 High-Level - API & Architecture

  12. Conclusions • Alpha version of RDA3 Client & Server is done for Java • Work on RDA3 C++ Server is in progress • Plan to release alpha version in July 2013 • Work in closecollaboration with users • Regular meetings with most important users • Presented all components of RDA3, approved by clients • API was reviewed and approved by all major users • Questions? RDA3 High-Level - API & Architecture

More Related