eProsima RPC over DDS - OMG June 2013 Berlin Meeting


Published on

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.

Published in: Technology
1 Like
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • 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.- First, WeCreate Calculator.idlcontainingan interface withthreebasicoperations.2.- SecondwegenerateRemoteProcedureCallsupportthroughthe IDL compiler(show thecmd)
  • 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.
  • eProsima RPC over DDS - OMG June 2013 Berlin Meeting

    1. 1. eProsima RPC over DDS OMG Technical Meeting, Berlin 18/06/2013 Jaime Martin Losa CEO eProsima JaimeMartin@eProsima.com +34 607 91 37 45 www.eProsima.com
    2. 2. Agenda  eProsima RPC over DDS – RPC over DDS  Introduction  Performance  Standarization  Hands on Example  Interoperability Demo!  About eProsima  eProsima Success Cases
    3. 3. eProsima RPC over DDS
    4. 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. 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.
    6. 6. Client-Server comms over DDS  myService.idl: interface myService{ funReturnValueDataType Fun(DataType1 parameter1, DataType2 parameter2…); }
    7. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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
    17. 17. 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; }
    18. 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>
    19. 19. Interoperability Demo CalculatorServer (Linux, OpenDDS) CalculatorServer (Linux, RTI Connext DDS) CalculatorClient (Windows, OpenDD S) CalculatorClient (Windows, RTI Connext DDS)
    20. 20. RPC over DDS  Features Summary: – Easy RPC framework – High Perfomance – Windows/Linux Support – 100% Standards Based – Open Source: LGPL  Support Available – Interoperable!
    21. 21. About eProsima
    22. 22. About eProsima  Experts on middleware, focused on DDS.  OMG Members.  RTI Services Partner and Distributor.
    23. 23. 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.
    24. 24. 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
    25. 25. Customers (II)  Isdefe  Spanish Army: JCISAT, DGAM  CATEC-FADA: R&D Aerospatial  Santa Barbara: Armoured Vehicles  RTI  GMV
    26. 26. Customers (III)  Tecnobit: COSMOS, Reserved Projects.  IKERLAN: R&D.  Navantia: F105 (Aegis)  Boeing: Atlantida, Swim suit
    27. 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. 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)
    29. 29. eProsima Success Cases
    30. 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. 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. 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. 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. 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. 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. 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
    37. 37. Thank you! Jaime Martin Losa CTO eProsima JaimeMartin@eProsima.com +34 607 91 37 45 www.eProsima.com