eprosima rpc over dds: integrating services in the …...–apache thrift (facebook) –google...
TRANSCRIPT
![Page 1: eProsima RPC over DDS: Integrating Services in the …...–Apache Thrift (facebook) –Google Protocol Buffers –MessagePack –Apache Avro –… –MQ: RabbitMQ, ActiveMQ, IBM](https://reader030.vdocument.in/reader030/viewer/2022041016/5ec97fea84b30f6adb0c018d/html5/thumbnails/1.jpg)
eProsima RPC over DDS:
Integrating Services in the Cloud
Cloud-based Service Platforms for
the Future Internet
November, 29, 2012
Jaime Martin Losa
CTO eProsima
+34 607 91 37 45
www.eProsima.com
![Page 2: eProsima RPC over DDS: Integrating Services in the …...–Apache Thrift (facebook) –Google Protocol Buffers –MessagePack –Apache Avro –… –MQ: RabbitMQ, ActiveMQ, IBM](https://reader030.vdocument.in/reader030/viewer/2022041016/5ec97fea84b30f6adb0c018d/html5/thumbnails/2.jpg)
Agenda
Introduction
About eProsima
What is DDS?
eProsima RPC over DDS
– Features
– Performance
– RoadMap
DDS DataBus
![Page 3: eProsima RPC over DDS: Integrating Services in the …...–Apache Thrift (facebook) –Google Protocol Buffers –MessagePack –Apache Avro –… –MQ: RabbitMQ, ActiveMQ, IBM](https://reader030.vdocument.in/reader030/viewer/2022041016/5ec97fea84b30f6adb0c018d/html5/thumbnails/3.jpg)
Introduction
![Page 4: eProsima RPC over DDS: Integrating Services in the …...–Apache Thrift (facebook) –Google Protocol Buffers –MessagePack –Apache Avro –… –MQ: RabbitMQ, ActiveMQ, IBM](https://reader030.vdocument.in/reader030/viewer/2022041016/5ec97fea84b30f6adb0c018d/html5/thumbnails/4.jpg)
Introduction
"Cloud Middleware is software used to integrate
services, applications and content available on
the cloud“
The facto standard: Web Services & REST
New tendencies:
– Apache Thrift (facebook)
– Google Protocol Buffers
– MessagePack
– Apache Avro
– …
– MQ: RabbitMQ, ActiveMQ, IBM MQ…
![Page 5: eProsima RPC over DDS: Integrating Services in the …...–Apache Thrift (facebook) –Google Protocol Buffers –MessagePack –Apache Avro –… –MQ: RabbitMQ, ActiveMQ, IBM](https://reader030.vdocument.in/reader030/viewer/2022041016/5ec97fea84b30f6adb0c018d/html5/thumbnails/5.jpg)
About eProsima
![Page 6: eProsima RPC over DDS: Integrating Services in the …...–Apache Thrift (facebook) –Google Protocol Buffers –MessagePack –Apache Avro –… –MQ: RabbitMQ, ActiveMQ, IBM](https://reader030.vdocument.in/reader030/viewer/2022041016/5ec97fea84b30f6adb0c018d/html5/thumbnails/6.jpg)
About eProsima
Experts on middleware, focused on DDS.
OMG Members.
![Page 7: eProsima RPC over DDS: Integrating Services in the …...–Apache Thrift (facebook) –Google Protocol Buffers –MessagePack –Apache Avro –… –MQ: RabbitMQ, ActiveMQ, IBM](https://reader030.vdocument.in/reader030/viewer/2022041016/5ec97fea84b30f6adb0c018d/html5/thumbnails/7.jpg)
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 8: eProsima RPC over DDS: Integrating Services in the …...–Apache Thrift (facebook) –Google Protocol Buffers –MessagePack –Apache Avro –… –MQ: RabbitMQ, ActiveMQ, IBM](https://reader030.vdocument.in/reader030/viewer/2022041016/5ec97fea84b30f6adb0c018d/html5/thumbnails/8.jpg)
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
Spanish Army:,
– IDT :Tactical Data Interface
![Page 9: eProsima RPC over DDS: Integrating Services in the …...–Apache Thrift (facebook) –Google Protocol Buffers –MessagePack –Apache Avro –… –MQ: RabbitMQ, ActiveMQ, IBM](https://reader030.vdocument.in/reader030/viewer/2022041016/5ec97fea84b30f6adb0c018d/html5/thumbnails/9.jpg)
Customers (II)
Isdefe
Spanish Army: JCISAT, DGAM
CATEC-FADA: R&D Aerospatial
Santa Barbara: Armoured Vehicles
RTI
GMV
![Page 10: eProsima RPC over DDS: Integrating Services in the …...–Apache Thrift (facebook) –Google Protocol Buffers –MessagePack –Apache Avro –… –MQ: RabbitMQ, ActiveMQ, IBM](https://reader030.vdocument.in/reader030/viewer/2022041016/5ec97fea84b30f6adb0c018d/html5/thumbnails/10.jpg)
Customers (III)
Tecnobit: COSMOS, Reserved Projects.
IKERLAN: R&D.
Navantia: F105 (Aegis)
Boeing: Atlantida, Swim suit
![Page 11: eProsima RPC over DDS: Integrating Services in the …...–Apache Thrift (facebook) –Google Protocol Buffers –MessagePack –Apache Avro –… –MQ: RabbitMQ, ActiveMQ, IBM](https://reader030.vdocument.in/reader030/viewer/2022041016/5ec97fea84b30f6adb0c018d/html5/thumbnails/11.jpg)
eProsima Products.- Index
eProsima Low Bandwidth Tools for DDS: – Set of plugins to enable DDS communications over low
bandwidth links, optimizing the protocol and compressing the
data.
– Includes a simulation plugin to simulate different links such
Tactical Radios and Satellites
eProsima RPC over DDS:
– Request/Reply over DDS
eProsima DDS-Web Services Bridge
– Enables DDS Enterprise Integration
eProsima DDS Non-Intrusive Recorder.
– Stores DDS communication history in a data base.
![Page 12: eProsima RPC over DDS: Integrating Services in the …...–Apache Thrift (facebook) –Google Protocol Buffers –MessagePack –Apache Avro –… –MQ: RabbitMQ, ActiveMQ, IBM](https://reader030.vdocument.in/reader030/viewer/2022041016/5ec97fea84b30f6adb0c018d/html5/thumbnails/12.jpg)
Ongoing Project
FP7: KIARA, Future Internet Middleware
– Based on DDS & RPC over 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 13: eProsima RPC over DDS: Integrating Services in the …...–Apache Thrift (facebook) –Google Protocol Buffers –MessagePack –Apache Avro –… –MQ: RabbitMQ, ActiveMQ, IBM](https://reader030.vdocument.in/reader030/viewer/2022041016/5ec97fea84b30f6adb0c018d/html5/thumbnails/13.jpg)
What is DDS?
![Page 14: eProsima RPC over DDS: Integrating Services in the …...–Apache Thrift (facebook) –Google Protocol Buffers –MessagePack –Apache Avro –… –MQ: RabbitMQ, ActiveMQ, IBM](https://reader030.vdocument.in/reader030/viewer/2022041016/5ec97fea84b30f6adb0c018d/html5/thumbnails/14.jpg)
DDS
DDS (Data Distribution Service for Real-Time Systems)
is a OMG specification for a pub/sub data centric model
(DCPS, Data Centric Publish/Subscribe) for Real-Time
data comms in distributed systems.
DDS is a networking middleware that:
– Simplifies and Standardizes data flows in distributed real-time
systems.
– Provides robust comms (no single point of failure) and efficient
(minimum latency)
– Provides all kind of QoS to shape the data flows and deliver
predictable results.
![Page 15: eProsima RPC over DDS: Integrating Services in the …...–Apache Thrift (facebook) –Google Protocol Buffers –MessagePack –Apache Avro –… –MQ: RabbitMQ, ActiveMQ, IBM](https://reader030.vdocument.in/reader030/viewer/2022041016/5ec97fea84b30f6adb0c018d/html5/thumbnails/15.jpg)
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.
Global Data Space
Participant Pub
Participant Pub
Sub Participant
Sub
Participant Pub Alarm
Track,2
Track,1 Track,3
Participant Sub
![Page 16: eProsima RPC over DDS: Integrating Services in the …...–Apache Thrift (facebook) –Google Protocol Buffers –MessagePack –Apache Avro –… –MQ: RabbitMQ, ActiveMQ, IBM](https://reader030.vdocument.in/reader030/viewer/2022041016/5ec97fea84b30f6adb0c018d/html5/thumbnails/16.jpg)
eProsima RPC
over DDS
![Page 17: eProsima RPC over DDS: Integrating Services in the …...–Apache Thrift (facebook) –Google Protocol Buffers –MessagePack –Apache Avro –… –MQ: RabbitMQ, ActiveMQ, IBM](https://reader030.vdocument.in/reader030/viewer/2022041016/5ec97fea84b30f6adb0c018d/html5/thumbnails/17.jpg)
RPC over DDS
DDS implements a pub/sub model, but no a
direct way to do Remote Procedure Calls (RPC)
DDS Can be used thought for RPC with some
effort: We can 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 18: eProsima RPC over DDS: Integrating Services in the …...–Apache Thrift (facebook) –Google Protocol Buffers –MessagePack –Apache Avro –… –MQ: RabbitMQ, ActiveMQ, IBM](https://reader030.vdocument.in/reader030/viewer/2022041016/5ec97fea84b30f6adb0c018d/html5/thumbnails/18.jpg)
Client-Server comms over DDS
myService.idl: typedef sequence<octet,128> Key;
interface myService{
long fun1(in Key param1, inout string param2, out string param3);
long fun2(in Key param2);
}
Topic
fun1Reply
myService_ProxymyService_Server
Topic
fun1Request
Publisher
DDS
Subscriber
Publisher Subscriber
![Page 19: eProsima RPC over DDS: Integrating Services in the …...–Apache Thrift (facebook) –Google Protocol Buffers –MessagePack –Apache Avro –… –MQ: RabbitMQ, ActiveMQ, IBM](https://reader030.vdocument.in/reader030/viewer/2022041016/5ec97fea84b30f6adb0c018d/html5/thumbnails/19.jpg)
Client-Server comms over DDS:
Manual Steps
For each interface:
– myService, myServiceSupport, myServicePlugin (ddsgen)
– myServiceProxy, myServiceServer
– Client main, Server main.
– Client and Server code for data flow management, initialization
and setup of DDS entities, server threading…
For each method:
– fun1Request, fun1RequestSupport, fun1RequestPlugin
(rtiddsgen)
– fun1Reply, fun1ReplySupport, fun1ReplyPlugin (rtiddsgen)
– Client and Server code to manage function calls/return-values,
parameters...
![Page 20: eProsima RPC over DDS: Integrating Services in the …...–Apache Thrift (facebook) –Google Protocol Buffers –MessagePack –Apache Avro –… –MQ: RabbitMQ, ActiveMQ, IBM](https://reader030.vdocument.in/reader030/viewer/2022041016/5ec97fea84b30f6adb0c018d/html5/thumbnails/20.jpg)
Client-Server comms over DDS:
Automatic (using eProsima RPC over DDS)
A parser (RPCDDSgen) creates all the stuff you need.
For each method, just implement the behavior.
![Page 21: eProsima RPC over DDS: Integrating Services in the …...–Apache Thrift (facebook) –Google Protocol Buffers –MessagePack –Apache Avro –… –MQ: RabbitMQ, ActiveMQ, IBM](https://reader030.vdocument.in/reader030/viewer/2022041016/5ec97fea84b30f6adb0c018d/html5/thumbnails/21.jpg)
Architecture
Request Topic
Reply Topic
RPC
Publisher Subscriber
STUB
Requester
Proc. Implementation
Publisher Subscriber
Skeleton
Replier
Resource Aware Dispatching Agent
Global Data Space
![Page 22: eProsima RPC over DDS: Integrating Services in the …...–Apache Thrift (facebook) –Google Protocol Buffers –MessagePack –Apache Avro –… –MQ: RabbitMQ, ActiveMQ, IBM](https://reader030.vdocument.in/reader030/viewer/2022041016/5ec97fea84b30f6adb0c018d/html5/thumbnails/22.jpg)
Pub/Sub as Pattern Generator
Publish/Subscribe
Point to Point Request/Reply
![Page 23: eProsima RPC over DDS: Integrating Services in the …...–Apache Thrift (facebook) –Google Protocol Buffers –MessagePack –Apache Avro –… –MQ: RabbitMQ, ActiveMQ, IBM](https://reader030.vdocument.in/reader030/viewer/2022041016/5ec97fea84b30f6adb0c018d/html5/thumbnails/23.jpg)
Combining patterns through Pub/Sub
![Page 24: eProsima RPC over DDS: Integrating Services in the …...–Apache Thrift (facebook) –Google Protocol Buffers –MessagePack –Apache Avro –… –MQ: RabbitMQ, ActiveMQ, IBM](https://reader030.vdocument.in/reader030/viewer/2022041016/5ec97fea84b30f6adb0c018d/html5/thumbnails/24.jpg)
eProsima RPC over DDS: Advantages
Allows to the developer focus in the development of his
application.
Approach similar to CORBA, 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 25: eProsima RPC over DDS: Integrating Services in the …...–Apache Thrift (facebook) –Google Protocol Buffers –MessagePack –Apache Avro –… –MQ: RabbitMQ, ActiveMQ, IBM](https://reader030.vdocument.in/reader030/viewer/2022041016/5ec97fea84b30f6adb0c018d/html5/thumbnails/25.jpg)
eProsima RPC over DDS 1.0
RC1 Available.
– GPL and Commercial licenses.
– GAR Announcement: December 2012
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 26: eProsima RPC over DDS: Integrating Services in the …...–Apache Thrift (facebook) –Google Protocol Buffers –MessagePack –Apache Avro –… –MQ: RabbitMQ, ActiveMQ, IBM](https://reader030.vdocument.in/reader030/viewer/2022041016/5ec97fea84b30f6adb0c018d/html5/thumbnails/26.jpg)
Standarization
OMG Standard ongoing
– RPC over DDS RFP (public)
– eProsima, RTI and Prismtech present submissions
First submission: November, 12th , 2012 (Done!)
Standard due: May 2012
![Page 27: eProsima RPC over DDS: Integrating Services in the …...–Apache Thrift (facebook) –Google Protocol Buffers –MessagePack –Apache Avro –… –MQ: RabbitMQ, ActiveMQ, IBM](https://reader030.vdocument.in/reader030/viewer/2022041016/5ec97fea84b30f6adb0c018d/html5/thumbnails/27.jpg)
Base for FI-WARE Middleware
FP7: KIARA, Future Internet Middleware
– Based on DDS & RPC over 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 28: eProsima RPC over DDS: Integrating Services in the …...–Apache Thrift (facebook) –Google Protocol Buffers –MessagePack –Apache Avro –… –MQ: RabbitMQ, ActiveMQ, IBM](https://reader030.vdocument.in/reader030/viewer/2022041016/5ec97fea84b30f6adb0c018d/html5/thumbnails/28.jpg)
>33 Initial Users!
Telefonica
SAP
IBM
Thales
Atos
Alcatel
Ericsson
Intel
Nec
Nokia
Siemens
…
France telecom
Telecom Italia
Deuche Telecom
Fraunhofer
…
Universities
…
![Page 29: eProsima RPC over DDS: Integrating Services in the …...–Apache Thrift (facebook) –Google Protocol Buffers –MessagePack –Apache Avro –… –MQ: RabbitMQ, ActiveMQ, IBM](https://reader030.vdocument.in/reader030/viewer/2022041016/5ec97fea84b30f6adb0c018d/html5/thumbnails/29.jpg)
eProsima RPC over DDS
Performance
![Page 30: eProsima RPC over DDS: Integrating Services in the …...–Apache Thrift (facebook) –Google Protocol Buffers –MessagePack –Apache Avro –… –MQ: RabbitMQ, ActiveMQ, IBM](https://reader030.vdocument.in/reader030/viewer/2022041016/5ec97fea84b30f6adb0c018d/html5/thumbnails/30.jpg)
Performance
0
100
200
300
400
500
600
700
100 250 500
Late
ncy (
Mic
ro S
eco
nd
s)
Request/Reply Size (bytes)
One to One Latency
eProsima RPC over DDS
Apache Thrift
![Page 31: eProsima RPC over DDS: Integrating Services in the …...–Apache Thrift (facebook) –Google Protocol Buffers –MessagePack –Apache Avro –… –MQ: RabbitMQ, ActiveMQ, IBM](https://reader030.vdocument.in/reader030/viewer/2022041016/5ec97fea84b30f6adb0c018d/html5/thumbnails/31.jpg)
Performance
0
200
400
600
800
1000
1200
1400
100 250 500
Late
ncy (
Mic
ro S
eco
nd
s)
Request/Reply Size (bytes)
Four to One Latency
eProsima RPC over DDS
Apache Thrift
![Page 32: eProsima RPC over DDS: Integrating Services in the …...–Apache Thrift (facebook) –Google Protocol Buffers –MessagePack –Apache Avro –… –MQ: RabbitMQ, ActiveMQ, IBM](https://reader030.vdocument.in/reader030/viewer/2022041016/5ec97fea84b30f6adb0c018d/html5/thumbnails/32.jpg)
RoadMap
![Page 33: eProsima RPC over DDS: Integrating Services in the …...–Apache Thrift (facebook) –Google Protocol Buffers –MessagePack –Apache Avro –… –MQ: RabbitMQ, ActiveMQ, IBM](https://reader030.vdocument.in/reader030/viewer/2022041016/5ec97fea84b30f6adb0c018d/html5/thumbnails/33.jpg)
RoadMap
Rest/Web Services/Thrift Support .- March 2013
Native Data Support .- Jun 2013
Message Persistence (MQ) .- Sep 2013
![Page 34: eProsima RPC over DDS: Integrating Services in the …...–Apache Thrift (facebook) –Google Protocol Buffers –MessagePack –Apache Avro –… –MQ: RabbitMQ, ActiveMQ, IBM](https://reader030.vdocument.in/reader030/viewer/2022041016/5ec97fea84b30f6adb0c018d/html5/thumbnails/34.jpg)
DDS Databus
![Page 35: eProsima RPC over DDS: Integrating Services in the …...–Apache Thrift (facebook) –Google Protocol Buffers –MessagePack –Apache Avro –… –MQ: RabbitMQ, ActiveMQ, IBM](https://reader030.vdocument.in/reader030/viewer/2022041016/5ec97fea84b30f6adb0c018d/html5/thumbnails/35.jpg)
DDS Databus .- Posibilities
DDS DataBus
DDS Apps
DDS
Pub/Sub API)
RPC Apps
eProsima
RPC over
DDS
RPC API
Rest Apps
eProsima
Rest
Rest API
WS Apps
eProsima
WS
WS API
![Page 36: eProsima RPC over DDS: Integrating Services in the …...–Apache Thrift (facebook) –Google Protocol Buffers –MessagePack –Apache Avro –… –MQ: RabbitMQ, ActiveMQ, IBM](https://reader030.vdocument.in/reader030/viewer/2022041016/5ec97fea84b30f6adb0c018d/html5/thumbnails/36.jpg)
Thank you!
Jaime Martin Losa
CTO eProsima
+34 607 91 37 45
www.eProsima.com