37
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

eProsima RPC over DDS - OMG June 2013 Berlin Meeting

Embed Size (px)

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.

Citation preview

Page 1: eProsima RPC over DDS - OMG June 2013 Berlin Meeting

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

Page 2: eProsima RPC over DDS - OMG June 2013 Berlin Meeting

Agenda

eProsima RPC over DDS– RPC over DDS

Introduction Performance Standarization Hands on Example Interoperability Demo!

About eProsima eProsima Success Cases

Page 3: eProsima RPC over DDS - OMG June 2013 Berlin Meeting

eProsima RPCover DDS

Page 4: eProsima RPC over DDS - OMG June 2013 Berlin Meeting

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

Page 5: eProsima RPC over DDS - OMG June 2013 Berlin Meeting

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.

Page 6: eProsima RPC over DDS - OMG June 2013 Berlin Meeting

Client-Server comms over DDS

myService.idl:interface myService{

funReturnValueDataType Fun(DataType1 parameter1,

DataType2 parameter2…);

}

Page 7: eProsima RPC over DDS - OMG June 2013 Berlin Meeting

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...

Page 8: eProsima RPC over DDS - OMG June 2013 Berlin Meeting

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.

Page 9: eProsima RPC over DDS - OMG June 2013 Berlin Meeting

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

Page 10: eProsima RPC over DDS - OMG June 2013 Berlin Meeting

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

Page 11: eProsima RPC over DDS - OMG June 2013 Berlin Meeting

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

Page 12: eProsima RPC over DDS - OMG June 2013 Berlin Meeting

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)

Page 13: eProsima RPC over DDS - OMG June 2013 Berlin Meeting

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)

Page 14: eProsima RPC over DDS - OMG June 2013 Berlin Meeting

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.

Page 15: eProsima RPC over DDS - OMG June 2013 Berlin Meeting

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

Page 16: eProsima RPC over DDS - OMG June 2013 Berlin Meeting

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

Page 17: eProsima RPC over DDS - OMG June 2013 Berlin Meeting

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;}

Page 18: eProsima RPC over DDS - OMG June 2013 Berlin Meeting

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>

Page 19: eProsima RPC over DDS - OMG June 2013 Berlin Meeting

Interoperability DemoCalculatorServer (Linux, OpenDDS)

CalculatorServer (Linux, RTI Connext DDS)

CalculatorClient (Windows, OpenDDS)

CalculatorClient (Windows,

RTI Connext DDS)

Page 20: eProsima RPC over DDS - OMG June 2013 Berlin Meeting

RPC over DDS

Features Summary:– Easy RPC framework– High Perfomance– Windows/Linux Support– 100% Standards Based– Open Source: LGPL

Support Available

– Interoperable!

Page 21: eProsima RPC over DDS - OMG June 2013 Berlin Meeting

About eProsima

Page 22: eProsima RPC over DDS - OMG June 2013 Berlin Meeting

About eProsima

Experts on middleware, focused on DDS. OMG Members. RTI Services Partner and Distributor.

Page 23: eProsima RPC over DDS - OMG June 2013 Berlin Meeting

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.

Page 24: eProsima RPC over DDS - OMG June 2013 Berlin Meeting

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

Page 25: eProsima RPC over DDS - OMG June 2013 Berlin Meeting

Customers (II)

Isdefe Spanish Army: JCISAT, DGAM CATEC-FADA: R&D Aerospatial Santa Barbara: Armoured Vehicles RTI GMV

Page 27: eProsima RPC over DDS - OMG June 2013 Berlin Meeting

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.

Page 28: eProsima RPC over DDS - OMG June 2013 Berlin Meeting

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)

Page 29: eProsima RPC over DDS - OMG June 2013 Berlin Meeting

eProsimaSuccess Cases

Page 30: eProsima RPC over DDS - OMG June 2013 Berlin Meeting

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

Page 31: eProsima RPC over DDS - OMG June 2013 Berlin Meeting

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.

Page 32: eProsima RPC over DDS - OMG June 2013 Berlin Meeting

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)

Page 33: eProsima RPC over DDS - OMG June 2013 Berlin Meeting

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.

Page 34: eProsima RPC over DDS - OMG June 2013 Berlin Meeting

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.

Page 35: eProsima RPC over DDS - OMG June 2013 Berlin Meeting

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.

Page 36: eProsima RPC over DDS - OMG June 2013 Berlin Meeting

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

Page 37: eProsima RPC over DDS - OMG June 2013 Berlin Meeting

Thank you!

Jaime Martin LosaCTO eProsima

[email protected]+34 607 91 37 45 www.eProsima.com