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.
4. 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
5. 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.
7. 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...
8. 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.
9. 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
10. 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
11. Performance vs Web Services
(Throughput)
0
100
200
300
400
500
600
700
10 100 200 300 400 500
Requests/sec
Request Payload (bytes)
eProsima RPC vs Web Services (25 Clients)
eProsima RPC
Web Services
12. Performance vs Apache Thrift
(One to One Latency)
0
100
200
300
400
500
600
700
100 250 500
Latency(MicroSeconds)
Request/Reply Size (bytes)
One to One Latency
eProsima RPC over DDS
Apache Thrift
13. Performance vs Apache Thrift
(Many to One Latency)
0
200
400
600
800
1000
1200
1400
100 250 500
Latency(MicroSeconds)
Request/Reply Size (bytes)
Four to One Latency
eProsima RPC over DDS
Apache Thrift
14. 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.
15. 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
16. Hands On: Calculator
Create Calculator.idl
Generate Interface Support :
///////////////////////////
// KIARA Webinar Example //
///////////////////////////
interface Calculator {
float sum (in float x,in float y); // x+y
float substract (in float x,in float y); // x-y
float multiply (in float x,in float y); // x*y
};
rpcddsgen -ppDisable -example x64Win64VS2010 Calculator.idl
18. Hands On: Calculator
Run the Client and the Server
– Same or different connected machines
– Remember to disable/setup firewall
D:KIARA_Webinar_Examplesmathobjsx64Win64VS2010>CalculatorClient
Server says 2+2=4
D:KIARA_Webinar_Examplesmathobjsx64Win64VS2010>
20. RPC over DDS
Features Summary:
– Easy RPC framework
– High Perfomance
– Windows/Linux Support
– 100% Standards Based
– Open Source: LGPL
Support Available
– Interoperable!
27. 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.
28. 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)
30. 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
31. 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.
32. 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)
33. 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.
34. 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.
35. 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.
36. Remote
Application
Client /
Server,
Publisher /
Subscriber
Application
API / Data Access
Marshalling
Transport
Mechanis
ms
Wire- Protocols
Transport Protocols UDPTCP
TLS, DT
LS
Shared
Memory
Backplane/
Fabric
XML JSON CDR
SDN
Plugin
Data Transfer
Compile time or
Embedded Runtime
Compiler/Interpreter
Data / Function
Mapping
Declarative
Data/Function
descritption
Security /
QoS Policy
Security / QoS
Parameter
Function
Stub
Function
Skleleton
QoS
Data
Writer
Data
Reader
-
DDS /
RTPS
REST /
HTTP
RPC Pub/Sub
Negotiation
Publisher Subscriber
RPC
Server
RPC
Client
Prepare Initialize
IDL
Parser
• IDL
based
on OMG
IDL
• WADL
Security
Dispatching
I2ND GE
FI-WARE Middleware: DDS Based
Key phrases:1.- We are goingtopresent a short introductionabouteProsima, and godirecltyto RPC over DDS2.- Wewillseeanintroduction,some performance graphs, showinghowstrikingfastis, comparingitto Web Servicesor Apache Thrift,theongoingstandarizationeffort, a quickexample, to show youhoweasyis use thisproduct, and a coolinteroperability demo, showingtheRequest/ReplyinteractionusingClients and Servers basedondifferentimplementations.
Web Services: GsoapServer: Regular Dual Core1.- In thisGraphwe are measuringthenumber of request per second per client in anscenarioconsisting in 25 clients and a server2.- In the case of WS we are usingGsoap, a veryfastimplementation of WS. The machines are just dual-core machines.3.- We can seeeProsima RPC for DDS isprocessingaround ten times more requeststhan WS.
1.- Herewe are measuringthelatency, and comparingto Apache Thrift, a substitute of WS and CORBA, usedinternallybyfacebook and gaininglots of fans in thelastyear2.- We are in thesameorder of magnitude, and betterfromparametersizes of 200 bytes. Thisisbecause Apache Thrift uses TCP and no protocolheaders, so a littleadvantagewhentheparametes are small, butfor regular operationssettingconfigurations, orgettingdatabase data, orsendingparameterstructswewould be faster
1.- Sameexample, with 4clients and 1 server
1.- RPCover DDS is in theprocess of standarizationnow2.- eProsima, RTI and Prismtechpresentedsubmissions3.- And wewilldiscussthesubmissionstomorrow.
1.- To do a quickexample, justdownload and installthe software. RTI Connext DDS and OpenDDSsupported at thispoint, and I wastalkingto Nina thismorningtoalsosupportCoreDx, itshould be ready in a weekor so.2.- Let’screatetheexample (nextslide)
1.- The IDLcompilergeneratesallweneed: A proxy, anskeleton, and thecorresponding visual studioprojects2.- Weneedtomodifyjust a couple of lines of thegeneratedcodetoimplementthebehaviour: Ourremoteprocedurecall in theclient, and thebehaviour of theoperations in the server skeleton.(show the VS)
1.- Nowwe compile and executethe server and theclient2.- Show thecmds and execute3.- And now, let’sseeaninteroperability demo for RPC over DDS
1.- eProsima RPC over DDS uses just standard DDS, so itis interoperable out of the box.2.- We are goingto show theCalculatorExamplewehave done interoperatingthisway:A calculator Server usingOpenDDS in a Linux MachineA calculator Server using RTI Connext DDS in a Linux MachineA CalculatorClientusingOpenDDSA CalculatorClientusing RTI Connext DDS 3.- Show, let’srunthe demo (Jaime, usa esta secuencia)-- WeStarttheCalculatorServerusingOpenDDS-- WeStarttheCalculatorClientusingOpenDDS and wewait a little bit fordiscovery-- -- Wehave a service selector toswitchbetweentheCalculatorOpenDDS Server and theCalculator RTI Connext DDS Server-- -- Wewill be usedtheopendds server first, -- -- We sum 1+1-- WeStarttheCalculatorServerbasedon RTI Connext DDS and wewait a little bit fordiscovery-- -- This time we are using DDS interoperability, theclientisusingopenDDS and the Server RTI-- -- Weswitchto RTI Connext Server-- -- We sum 2+2-- WeStarttheCalculatorClientbasedon RTI Connext DDS-- -- Wewait a little bit-- -- We open theservice selector-- -- We sum 3+3 using RTI Connext DDS based server-- -- And finallywe sum 4+4 usingtheopenDDSbased ServerSo, missionaccomplished.
1.-Wehaveseen in thispresentation, thefolowingfeatures:eProsima RPCisveryeasyto useHigh Perfomance, asfast as thelatest RPC frameworksfrom Facebook and othersWindows & Linux are SupportedItis 100% StandardsBased and Open Source: LGPL Butwith Support ContractsAvailableAnd it comes withInteroperabilityout of the boxQuestions?
1.-Also, we are developingrightnowanimportantprojectbasedon RPC over DDS and DDS2.- An FP7 programtodevelopwhattheycalltheFuture Internet Middleware3.- Wewilldevelop a lot of new featureson top of DDS.