eprosima rpc over dds - omg june 2013 berlin meeting
DESCRIPTION
DDS is being increasingly selected as the foundation of many mission- and business-critical systems. Some of these systems are designed to be completely data-centric and asynchronous, while others prefer to maintain some interactions (such as placing an order, performing a computation, etc.) as traditional client/server, request/reply, interactions. As such, many DDS users would like to define Services as a collection of operations/methods, and invoke methods using DDS as the transport for requests, replies and exceptions. This talk will introduce eProsima RPC for DDS, a high performance Remote Procedure Call framework based on DDS, 100% standards-based and open source.TRANSCRIPT
eProsima RPC over DDS
OMG Technical Meeting, Berlin
18/06/2013
Jaime Martin LosaCEO eProsima
[email protected]+34 607 91 37 45 www.eProsima.com
Agenda
eProsima RPC over DDS– RPC over DDS
Introduction Performance Standarization Hands on Example Interoperability Demo!
About eProsima eProsima Success Cases
eProsima RPCover DDS
DDS
DDS uses the concept of Global Data Space. In this Space we define topics of data, and the publishers publish samples of these topics. DDS distributes these samples to all the subscribers of those topics. Any node can be a publisher or a subscriber.
No Remote Procedure Calls
RPC over DDS
DDS implements a pub/sub model, but no a direct way to do Remote Procedure Calls (RPC)
DDS Can be used though for RPC with some effort: – We could create a couple of topics, one for the in
parameters of the function we want to call, and the other one for the out parameters, and then implement the client-server interaction through a couple of pub-sub.
Client-Server comms over DDS
myService.idl:interface myService{
funReturnValueDataType Fun(DataType1 parameter1,
DataType2 parameter2…);
}
Client-Server comms over DDS: Manual Steps
Common: – Client main, Server main.– Client and Server code for data flow management, initialization
and setup of DDS entities, server threading…
For each operation: – Request and Reply topics– Client and Server code to manage function calls/return-values,
parameters...
Client-Server comms over DDS: Automatic (using eProsima RPC over DDS) A parser creates all the stuff you need. For each operation, just implement the behavior.
eProsima RPC: Advantages
Allows to the developer focus in the development of his application.
Approach similar to Apache Thrift, but easier to use and with configurable QoS
Transparent. Multithreaded Server. Automatic Generation of:
– Client and Server Code.– Request and Reply Topic– Development enviroment files: Visual Studio
projects or makefiles
eProsima RPC: Features
Open Source: LGPL– Support available
Main Features:– Windows and Linux support (32 and 64 bits)
Project and makefile generation for VS2010 & gcc 4.x
– Synchronous, asynchronous and one way operations– Different Server threading models
Single threaded, thread by request and thread pool
– Internet enabled: udp (unicast/multicast) and TCP support
– 100% Standard: ISO C++ and OMG DDS RTI DDS and OpenDDS supported
Performance vs Web Services (Throughput)
10 100 200 300 400 5000
100
200
300
400
500
600
700
eProsima RPC vs Web Services (25 Clients)
eProsima RPCWeb Services
Request Payload (bytes)
Re
qu
es
ts/s
ec
Performance vs Apache Thrift (One to One Latency)
100 250 5000
100
200
300
400
500
600
700
One to One Latency
eProsima RPC over DDS
Apache Thrift
Request/Reply Size (bytes)
Lat
ency
(M
icro
Sec
on
ds)
Performance vs Apache Thrift (Many to One Latency)
100 250 5000
200
400
600
800
1000
1200
1400
Four to One Latency
eProsima RPC over DDS
Apache Thrift
Request/Reply Size (bytes)
Lat
ency
(M
icro
Sec
on
ds)
Standarization
OMG Standard ongoing– RPC for DDS RFP (public)– eProsima, RTI, PrismTech– Revised Submission : May, 20, 2013– To discuss in this OMG meeting
June 17,18 – Berlin See www.eprosima.com for more info.
Hands on: A First Example
Install the software:– DDS
http://www.rti.com/downloads/connext.html
– eProsima RPC over DDS http://www.eprosima.com/index.php/en/downloads-all
Windows and Linux (32 & 64) supported
Hands On: Calculator
Create Calculator.idl
Generate Interface Support :
///////////////////////////// KIARA Webinar Example /////////////////////////////
interface Calculator {float sum (in float x,in float y); // x+yfloat substract (in float x,in float y); // x-yfloat multiply (in float x,in float y); // x*y
};
rpcddsgen -ppDisable -example x64Win64VS2010 Calculator.idl
Hands On: Calculator
Edit the Example:– Client.cxx
– CalculatorServerImpl.cxx
// Call to remote procedure "sum". try { sum_ret = proxy->sum(2, 2); std::cout << “Server Says 2+2=" << sum_ret << std::endl; }
DDS_Float CalculatorServerImpl::sum(/*in*/ DDS_Float x, /*in*/ DDS_Float y) { DDS_Float sum_ret = 0; sum_ret = x+y; return sum_ret;}
Hands On: Calculator
Run the Client and the Server– Same or different connected machines
– Remember to disable/setup firewall
D:\KIARA_Webinar_Examples\math\objs\x64Win64VS2010>CalculatorClientServer says 2+2=4D:\KIARA_Webinar_Examples\math\objs\x64Win64VS2010>
Interoperability DemoCalculatorServer (Linux, OpenDDS)
CalculatorServer (Linux, RTI Connext DDS)
CalculatorClient (Windows, OpenDDS)
CalculatorClient (Windows,
RTI Connext DDS)
RPC over DDS
Features Summary:– Easy RPC framework– High Perfomance– Windows/Linux Support– 100% Standards Based– Open Source: LGPL
Support Available
– Interoperable!
About eProsima
About eProsima
Experts on middleware, focused on DDS. OMG Members. RTI Services Partner and Distributor.
About eProsima: Products And Services
eProsima Products:– DDS based: Plugins, add-ons, adaptors, etc
Services:– Communication modules, App development, DDS
training, Support. R&D:
– R&D Projects with enterprises and universities. Quality: ISO 9001
– Design, Development, Marketing and Support of Software.
Customers (I)
Amper Programas:– BMS– Simacet (Main Spanish C2 System)
Cassidian: – UAVs - Neuron, Atlante
Ground Station Comm Server
– Comfut INDRA:
– Defense (BMS, UAV PASI)– Air Traffic Control, – SESAR, ATC Interoperability– Energy (InSpeed)
Spanish Army:, – IDT :Tactical Data Interface
Customers (II)
Isdefe Spanish Army: JCISAT, DGAM CATEC-FADA: R&D Aerospatial Santa Barbara: Armoured Vehicles RTI GMV
Customers (III)
Tecnobit: COSMOS, Reserved Projects. IKERLAN: R&D. Navantia: F105 (Aegis) Boeing: Atlantida, Swim suit
eProsima Products.- Index
eProsima RPC over DDS:– Remote procedure calls framework over DDS.
eProsima Fast Buffers.– Serialization engine. Now in beta.
eProsima DDS Non-Intrusive Recorder.– Stores DDS communication history in a data base.
Ongoing Project
FP7: KIARA, Future Internet Middleware– FI-WARE 1st open call– Based on eProsima RPC over DDS & OMG DDS– Lots of new features:
Improved IDL Direct Use of Application native types New formats of marshalling (SOAP, RestFul) Web Services compatibility Protocol negotiation Extended transport support High performance dispatching agent (RPC)
eProsimaSuccess Cases
RTI DDS DIL Plugins:Disconnected and Intermitent Links
eProsima developed the plugins for the Spanish Army Tactical Radios, and later were adquired by RTI.
Allow the use of DDS in very low bandwidth links, such as Tactical Radios and Satellite.– Tested from 2400 bps
Tactical Data Interface: Spanish Army
C2 Interoperability Comm layer:– Tactical Radios
From 2400bps
– Satellite
Mandated for all the Spanish Army C2 systems.– Already implemented in the
their main C2 systems
eProsima developed the army C2 comm layer using RTI Connext DDS optimized for low bandwidth enviroments. The project included the design of the Data Model and QoS requisites for the Army.
C2 Systems: INDRA & Amper
eProsima Provides a DDS based comm layer for INDRA and Amper C2 Systems.
eProsima implemented the mandated Spanish Army Tactical Data Interface for Simacet (Main Spanish Army C2 System, Amper) and BMS (Tanks C2 System, INDRA & Amper)
SESAR - INDRA ATC
eProsima provides middleware research and prototyping for ATC Interoperability
Among the different middleware technologies studied, DDS and WS are the SESAR proposed technologies for ATC interoperability.
Cassidian: nEURon and Atlante GS
eProsima provides the comm layer for the ground station comm server.
eProsima Non-Intrusive Recorder is used to record the communications for later analisys.
FI-WARE Middleware
eProsima has been selected to develop Future Internet Middleware in the FI-WARE programme.
DDS will be the core technology
Fi-WARE is a consortium of over more than 30 companies and universities including Telefonica, Siemens, SAP, Atos…
eProsima will partner in this project with the German Universities DKFI and CISPA and the Swiss ZHAW.
Remote Application
Client / Server,Publisher /Subscriber
Application
API / Data Access
Marshalling
TransportMechanism
s
Wire- Protocols
Transport Protocols UDPTCPTLS, DTLS
Shared Memory
Backplane/ Fabric
XML JSON CDR
SDN Plugin
Data Transfer
Compile time orEmbedded Runtime Compiler/Interpreter
Data / Function Mapping
Declarative Data/Function descritption
Security / QoS Policy
Security / QoSParameter
Function
Stub
Function Skleleton
QoS
DataWriter
DataReader
-DDS / RTPS
REST / HTTP
RPC Pub/Sub
Negotiation
Publisher SubscriberRPC
ServerRPC ClientPrepare Initialize
IDLParser
• IDLbased on OMG IDL
• WADL
Security
Dispatching
I2ND GE
FI-WARE Middleware: DDS Based