Upload
velma
View
31
Download
0
Tags:
Embed Size (px)
DESCRIPTION
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 - PowerPoint PPT Presentation
Citation preview
RDA3 HIGH-LEVEL – API & ARCHITECTURE
26TH JUNE 2013
Ilia Yastrebov BE-CO-IN
RDA3 High-Level - API & Architecture 2
RDA3 Design Principles
Functional aspects 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
26th June 2013
RDA3 High-Level - API & Architecture 3
RDA3 Architecture Transport Layer
Implements P2P non-blocking request-reply communication Wraps ZeroMQ behind 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)
26th June 2013
Application
High Layer
Transport
ZeroMQ
RD
A3
RDA3 High-Level - API & Architecture 4
Client API: Request-Reply (GET & SET)
26th June 2013
RDA3 High-Level - API & Architecture 5
Client API: Subscriptions
26th June 2013
RDA3 High-Level - API & Architecture 6
Client Flow Diagram
26th June 2013
RDA3 High-Level - API & Architecture 7
Subscription States
26th June 2013
RDA3 High-Level - API & Architecture 8
Server API: Request-Reply
26th June 2013
RDA3 High-Level - API & Architecture 9
Server API: Subscriptions
26th June 2013
RDA3 High-Level - API & Architecture 10
Server Flow Diagram
26th June 2013
RDA3 High-Level - API & Architecture 11
Serialization
Evaluated several 3rd party solutionsGoogle Protobuf (IDL based, huge project)MessagePack (no IDL, many deps, slow for double arrays)
Ended up with home-made serializationSmall project, easy to implementNo dependenciesPerformance gain
○ Data object with 3 arrays (int[], double[], String[]) of 40 elements each.Results for 100000 serialization+deserialization iterations
26th June 2013
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 close collaboration with users
Regular meetings with most important usersPresented all components of RDA3, approved by clientsAPI was reviewed and approved by all major users
Questions?
26th June 2013