eprosima rpc over dds: integrating services in the …...–apache thrift (facebook) –google...

36
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 [email protected] +34 607 91 37 45 www.eProsima.com

Upload: others

Post on 22-May-2020

9 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: eProsima RPC over DDS: Integrating Services in the …...–Apache Thrift (facebook) –Google Protocol Buffers –MessagePack –Apache Avro –… –MQ: RabbitMQ, ActiveMQ, IBM

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

[email protected]

+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

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

Introduction

Page 4: eProsima RPC over DDS: Integrating Services in the …...–Apache Thrift (facebook) –Google Protocol Buffers –MessagePack –Apache Avro –… –MQ: RabbitMQ, ActiveMQ, IBM

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

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

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

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

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

Customers (II)

Isdefe

Spanish Army: JCISAT, DGAM

CATEC-FADA: R&D Aerospatial

Santa Barbara: Armoured Vehicles

RTI

GMV

Page 11: eProsima RPC over DDS: Integrating Services in the …...–Apache Thrift (facebook) –Google Protocol Buffers –MessagePack –Apache Avro –… –MQ: RabbitMQ, ActiveMQ, IBM

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

>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

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

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

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

RoadMap

Page 33: eProsima RPC over DDS: Integrating Services in the …...–Apache Thrift (facebook) –Google Protocol Buffers –MessagePack –Apache Avro –… –MQ: RabbitMQ, ActiveMQ, IBM

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

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

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

Thank you!

Jaime Martin Losa

CTO eProsima

[email protected]

+34 607 91 37 45

www.eProsima.com