SlideShare ist ein Scribd-Unternehmen logo
1 von 24
Downloaden Sie, um offline zu lesen
DDS 
RPC 
over 
DDS 
Gerardo 
Pardo-­‐Castellote, 
Ph.D. 
Chief 
Technology 
Officer, 
RTI 
Sumant 
Tambe, 
Ph.D. 
Senior 
SoBware 
Reseach 
Engineer, 
RTI 
October 
2014
© 
2014 
Real-­‐Time 
InnovaJons, 
Inc. 
Outline 
• Goals 
• Background 
• Status 
• Details 
• More 
info
© 
2014 
Real-­‐Time 
InnovaJons, 
Inc. 
Goals 
• Provide 
standard 
and 
interoperable 
way 
means 
to 
support 
“RPC” 
communicaJon 
paQerns 
in 
DDS 
• Support 
the 
PaQers: 
– Request/Reply 
– Service 
InvocaJon 
– Remote 
Procedure 
Call 
– Remote 
Method 
InvocaJon 
• Support 
invocaJon 
of 
IDL-­‐specified 
interfaces 
over 
DDS 
– Provide 
a 
simpler 
way 
to 
migrate 
CORBA 
applicaJons 
to 
DDS 
– Support 
familiar 
“remote 
interface” 
programming 
style 
equivalent 
to 
Java 
RMI 
and 
Apache 
ThriB
Advantages 
of 
RPC 
over 
DDS 
• Client 
and 
Servers 
are 
decoupled 
© 
2014 
Real-­‐Time 
InnovaJons, 
Inc. 
– No 
startup 
dependencies 
• QoS 
enforcement 
to 
support 
service 
SLAs 
– Ownership–Redundant 
pool 
of 
servers 
– Lifespan–request 
is 
only 
valid 
for 
the 
next 
N 
sec 
– Durability-­‐request/replies 
will 
be 
eventually 
received 
and 
processed 
– CancellaJon– 
aBer 
a 
good 
quality 
response 
has 
arrived 
• Data-­‐Centricity 
– Explicit 
trace-­‐ability 
– InteracJon 
state 
can 
be 
Monitored, 
Logged, 
Audited, 
Stored, 
Manipulated 
• Watch 
by 
subscribing 
to 
requests 
and/or 
responses 
(wire-­‐tap) 
• One 
middleware 
– 
leverage 
DDS 
infrastructure 
– Suited 
for 
real-­‐Jme 
systems 
– MulJpla`orm, 
MulJlanguage, 
Interoperable
But 
I 
can 
already 
do 
it... 
True: 
• I 
can 
write 
my 
own 
RCP 
using 
request/reply 
Topics 
© 
2014 
Real-­‐Time 
InnovaJons, 
Inc. 
• RTI 
Connext 
already 
supports 
a 
“Request/Reply” 
equivalent 
to 
RPC 
• Some 
other 
vendors 
do 
similar 
things 
But… 
• The 
mapping 
from 
service 
to 
Topics 
and 
Types 
is 
ad-­‐ 
hoc. 
• These 
approaches 
are 
not 
portable/Interoperable 
• Gebng 
everything 
right 
is 
cumbersome 
at 
best
How 
can 
I 
do 
it 
myself? 
• Map 
Interfaces 
to 
types 
& 
Topics… 
© 
2014 
Real-­‐Time 
InnovaJons, 
Inc. 
– One 
Topic 
per 
interface, 
one 
per 
operaJon? 
– What 
are 
the 
types. 
How 
to 
map 
excepJons, 
output 
parameters, 
… 
– What 
happens 
if 
the 
interfaces 
change, 
e.g. 
operaJon 
is 
added 
or 
moved? 
• Implement 
necessary 
plumbing: 
• Setup 
request 
topic 
and 
type 
• Setup 
reply 
topic 
and 
type 
• Filter 
unwanted 
requests 
• Filter 
unwanted 
replies
But 
RPC 
is 
not 
a 
good/robust 
idea/ 
design 
paQern…. 
• RPC 
versus 
Desired 
State 
PaQern 
Goal 
State 
© 
2014 
Real-­‐Time 
InnovaJons, 
Inc. 
– Insight: 
OBen 
a 
request-­‐reply 
can 
be 
modeled 
as 
stateful 
data-­‐centric 
interacJons 
write 
Current 
State 
Affect 
Service 
Client 
Service 
Provider 
Desired 
State 
read 
write 
read 
read
RPC 
vs 
Desired 
State 
• Desired 
state 
is 
good 
& 
more 
robust 
if 
the 
“request” 
© 
2014 
Real-­‐Time 
InnovaJons, 
Inc. 
actually 
represents: 
– a 
request 
to 
change 
of 
system 
state 
– Take 
a 
long 
Jme 
to 
fulfill 
– Needs 
to 
be 
observable 
by 
others 
• However: 
– Many 
requests 
that 
do 
not 
represent 
changes 
to 
state: 
Database 
Query, 
Read 
a 
File… 
– People 
familiar 
for 
“Service” 
or 
“Request/Reply” 
paQern 
may 
find 
Directed 
State 
cumbersome 
–specially 
if 
extra 
robustness 
is 
unwarranted 
RPC 
over 
DDS 
provides 
best 
of 
both 
worlds!
Example: 
RobotControl 
© 
2014 
Real-­‐Time 
InnovaJons, 
Inc. 
module robot { 
@DDSService 
interface RobotControl 
{ 
void command(Command command); 
float setSpeed(float speed) raises (TooFast); 
float getSpeed(); 
void getStatus(out Status status); 
}; 
}
RobotControl 
Client 
© 
2014 
Real-­‐Time 
InnovaJons, 
Inc. 
import org.omg.dds.rpc.*; 
public class TestRobot { 
static void createRobotClient() { 
RPCRuntime runtime = RPCRuntime.getInstance(TestRobot.class.getClassLoader()); 
ClientParams clientParams = runtime.createClientParams(); // optional 
RobotControlSupport.Client robotClient = 
RobotControlSupport.createClient( 
clientParams.withServiceName(”TestRobot”) 
.withInstanceName(“iRobot”)); // more configs available 
robotClient.waitForService(); // optional 
robotClient.getSpeed(); 
} 
}
RobotControl 
Service 
(Java) 
package robot; 
import robot.RobotControl; 
public class MyRobot implements RobotControl 
{ 
public void command(Command command) { } 
public float setSpeed(float speed) { return 1; } 
public float getSpeed() { return 2; } 
public void getStatus(/* out */ Status status) { } 
© 
2014 
Real-­‐Time 
InnovaJons, 
Inc. 
} 
import org.omg.dds.rpc.*; 
public class TestRobot { 
public static void createRobotServer() 
{ 
RPCRuntime runtime = RPCRuntime.getInstance(TestRobot.class.getClassLoader()); 
MyRobot myRobot = new MyRobot(); 
Server server = runtime.createServer(); // Configurable using ServerParams 
RobotControlSupport.Service service = 
RobotControlSupport.createService(myRobot, server); // Configurable using ServiceParams 
server.run(); // blocking 
} 
}
RobotControl 
Requester 
public class TestRobot { 
static void createRobotRequester() { 
© 
2014 
Real-­‐Time 
InnovaJons, 
Inc. 
RPCRuntime runtime = 
RPCRuntime.getInstance(TestRobot.class.getClassLoader()); 
RequesterParams reqParams = runtime.createRequesterParams(); 
// change params here if you like 
Requester<RobotControlSupport.RequestType, 
RobotControlSupport.ReplyType> 
requester = runtime.createRequester( 
RobotControlSupport.RequestType.class, 
RobotControlSupport.ReplyType.class, 
reqParams); 
RobotControlSupport.RequestType request = 
new RobotControlSupport.RequestType(); 
// populate request 
requester.sendRequest(request); 
} 
}
RobotControl 
Replier 
© 
2014 
Real-­‐Time 
InnovaJons, 
Inc. 
public class TestRobot { 
static void createRobotReplier() { 
RPCRuntime runtime = 
RPCRuntime.getInstance(TestRobot.class.getClassLoader()); 
ReplierParams repParams = runtime.createReplierParams(); 
// change params here if you like 
Replier<RobotControlSupport.RequestType, 
RobotControlSupport.ReplyType> 
replier = runtime.createReplier( 
RobotControlSupport.RequestType.class, 
RobotControlSupport.ReplyType.class, 
repParams); 
Sample<RobotControlSupport.RequestType> 
request = replier.receiveRequest(); 
} 
}
RobotControlSupport 
public abstract class RobotControlSupport { 
public final static class RequestType { 
// omg.dds.rpc.RequestHeader header; 
// robot.RobotControl_Call data; 
© 
2014 
Real-­‐Time 
InnovaJons, 
Inc. 
} 
public final static class ReplyType { 
// omg.dds.rpc.ReplyHeader header; 
// robot.RobotControl_Return data 
} 
public interface Client 
extends RobotControl, 
RobotControlAsync, 
ClientEndpoint 
{ 
} 
public interface Service extends ServiceEndpoint 
{ 
} 
public static final RobotControlSupport.Client createClient(); 
public static final RobotControlSupport.Service createService(RobotControl impl); 
// more client and service factory methods here 
}
What 
needs 
to 
be 
specified 
• Mapping 
to 
DDS 
Topics 
& 
Filters 
© 
2014 
Real-­‐Time 
InnovaJons, 
Inc. 
– Each 
operaJon 
maps 
to 
a 
pair 
of 
topics? 
• Simplicity, 
Flexibility 
vs 
Scalability 
– Each 
interface 
to 
a 
pair 
of 
Topics? 
• What 
are 
the 
types? 
Inheritance? 
– Is 
publish-­‐subscribe 
allowed? 
e.g. 
audiJng, 
monitoring… 
• Mapping 
to 
DDS 
Data-­‐types 
– How 
to 
model 
operaJons? 
Parameters 
(in, 
our) 
return, 
excepJons, 
… 
– Fragility 
upon 
interfaces 
/ 
operaJons 
changes? 
– Describable 
using 
X-­‐TYPES? 
• DDS 
API 
and 
DDS-­‐RTPS 
impact 
– Are 
extensions 
required? 
– Deployment 
on 
top 
of 
exisJng 
DDS 
• Language 
Bindings 
(C, 
C++, 
Java, 
C#, 
…)
Client Application Service 
© 
2014 
Real-­‐Time 
InnovaJons, 
Inc. 
Architecture 
Service 
Implementa8on 
Lang. 
Bind. 
GUID2 
Data 
Writer 
Client-­‐side 
Invoker 
Data 
Reader 
Data 
Reader 
Data 
Writer 
GUID1 
SN1 
Foo 
GUID2 
SN2 
GUID1 
SN1 
Bar 
Message-id1 
Message-id2 
Correlation-id1 
Language 
Binding 
Bar 
Svc.method(in 
Foo); 
Content-­‐based 
Filter 
for 
filtering 
unwanted 
replies 
Foo 
Bar 
GUID1 
Invoke 
Return 
Call Topic 
Return Topic 
Foo 
Bar
Basic 
and 
Enhanced 
Service 
Mappings 
• Basic 
© 
2014 
Real-­‐Time 
InnovaJons, 
Inc. 
– Highest 
portability 
– Enables 
RPC 
on 
top 
of 
exisJng 
(v1.3 
or 
earlier) 
DDS 
ImplementaJons 
• Enhanced 
– Elegant, 
Clean 
– Leverages 
DDS-­‐XTypes 
for 
type 
matching, 
– Adds 
support 
for 
Robust 
service 
discovery, 
Implicit 
request/reply 
correlaJon 
Mapping 
Aspect Basic 
Service 
Mapping 
Profile Enhanced 
Service 
Mapping 
Profile 
Correla8on 
Informa8on 
(request-­‐id) 
Explicitly 
added 
to 
the 
data-­‐type Implicit. 
They 
appear 
on 
the 
Sample 
meta-­‐data. 
Topic 
Mapping One 
request 
topic 
and 
one 
reply 
topic 
per 
interface. 
2*N 
for 
a 
hierarchy 
of 
N 
interfaces. 
One 
request 
and 
one 
reply 
topic 
per 
interface. 
Independent 
of 
interface 
hierarchy. 
Type 
Mapping Synthesized 
types 
compaJble 
with 
l e g a c y 
( p r e 
D D S -­‐ X T y p e s ) 
implementaJons. 
Use 
faciliJes 
of 
DDS-­‐XTypes 
for 
type 
descripJons, 
annotaJons, 
and 
type-­‐ 
compaJbility 
checks. 
Discovery No 
special 
extensions. 
Robust 
service 
discovery 
(no 
sample 
loss 
due 
to 
transient 
states)
Language 
Bindings 
• Two 
© 
2014 
Real-­‐Time 
InnovaJons, 
Inc. 
types 
of 
language 
bindings 
– High-­‐level 
binding 
that 
provide 
func%on-­‐call 
semanJcs 
– Low-­‐level 
binding 
that 
are 
akin 
to 
send/receive 
(but 
sJll 
higher 
level 
than 
raw 
DDS 
read/take/write) 
• Strong 
separaJon 
between 
the 
data 
model 
and 
language 
binding 
Client 
ApplicaJon 
FuncJon-­‐call 
language 
binding 
DDS 
API 
Service 
Specification 
(IDL) 
Client 
ApplicaJon 
Request-­‐Reply 
language 
binding 
DDS 
API 
Service 
ImplementaJon 
FuncJon 
call 
language 
binding 
DDS 
API 
Service 
ImplementaJon 
Request-­‐Reply 
language 
binding 
DDS 
API 
Service-­‐specific 
Interoperable/Evolvable 
Data 
model 
(DDS/RTPS)
© 
2014 
Real-­‐Time 
InnovaJons, 
Inc. 
QoS 
Mapping 
• Default 
strict 
reliable 
(request 
and 
reply) 
– RELIABLE 
reliability 
– KEEP_ALL 
history 
– VOLATILE 
durability 
• Can 
be 
changed 
by 
the 
user 
on 
a 
per-­‐service 
level
© 
2014 
Real-­‐Time 
InnovaJons, 
Inc. 
@DDSService 
interface RobotControl 
{ 
struct 
RobotControl_setSpeed_In 
{ 
long 
s; 
}; 
struct 
RobotControl_getSpeed_In 
{ 
boolean 
return_; 
}; 
float setSpeed(float speed) raises (TooFast); 
float getSpeed(); 
void start(); 
void stop(); 
}; 
@choice 
@autoid 
struct 
RobotControl_Request 
{ 
RobotControl_setSpeed_In 
setSpeed; 
RobotControl_getSpeed_In 
getSpeed; 
RobotControl_start_In 
start; 
RobotControl_stop_In 
stop; 
@empty 
}; 
struct 
start_In 
{ 
octet 
dummy_;}; 
@empty 
struct 
stop_In 
{ 
octet 
dummy_;};
float setSpeed(float speed) raises (TooFast); 
float getSpeed(); 
void start(); 
void stop(); 
© 
2014 
Real-­‐Time 
InnovaJons, 
Inc. 
@DDSService 
interface RobotControl 
{ 
}; 
struct 
RobotControl_setSpeed_Out 
{ 
float 
return_; 
// 
Also 
inout 
and 
out 
params 
}; 
… 
@choice 
@autoid 
struct 
RobotControl_setSpeed_Result 
{ 
RobotControl_setSpeed_Out 
out; 
SystemExcepJonCode 
sysx_; 
TooFast 
toofast_ex; 
}; 
… 
@choice 
@autoid 
struct 
RobotControl_Reply 
{ 
RobotControl_setSpeed_Result 
setSpeed; 
RobotControl_getSpeed_Result 
getSpeed; 
RobotControl_start_Result 
start; 
RobotControl_stop_Result 
stop; 
};
© 
2014 
Real-­‐Time 
InnovaJons, 
Inc. 
Status 
• Ongoing 
standard 
at 
OMG 
• RFP 
was 
issued 
in 
June 
2012 
• IniJally 
2 
compeJng 
submissions: 
1. Joint 
RTI 
+ 
eProsima 
(later 
joined 
by 
TwinOaks) 
2. PrismTech 
• Very 
different 
approaches 
– 
not 
converging 
– EvaluaJon 
team 
represenJng 
5 
companies 
formed 
to 
provide 
feedback 
• RecommendaJon 
was 
to 
simplify 
RTI/eProsima 
submission 
• PrismTech 
dropped 
their 
submission 
and 
joined 
RTI/eProsimas’/TwinOaks 
• Expected 
to 
be 
voted 
and 
adopted 
in 
Dec 
2014 
• Completed 
FuncJon-­‐Call 
and 
Request/Reply 
language 
binding 
– Java 
(hQps://github.com/rJcommunity/dds-­‐rpc-­‐java) 
– C++* 
(hQps://github.com/rJcommunity/dds-­‐rpc-­‐cxx) 
– eProsima 
has 
POC 
implementaJon 
of 
“basic” 
profile 
working 
with 
several 
DDS 
implementaJons
QuesJons? 
© 
2014 
Real-­‐Time 
InnovaJons, 
Inc.
© 
2014 
Real-­‐Time 
InnovaJons, 
Inc. 
Find 
out 
more… 
dds.omg.org 
www.omg.org 
www.rJ.com 
community.rJ.com 
demo.rJ.com 
www.youtube.com/realJmeinnovaJons 
blogs.rJ.com 
www.twiQer.com/RealTimeInnov 
www.facebook.com/RTIsoBware 
www.slideshare.net/GerardoPardo 
www.slideshare.net/RealTimeInnovaJons

Weitere ähnliche Inhalte

Was ist angesagt?

Introduction and Overview of Apache Kafka, TriHUG July 23, 2013
Introduction and Overview of Apache Kafka, TriHUG July 23, 2013Introduction and Overview of Apache Kafka, TriHUG July 23, 2013
Introduction and Overview of Apache Kafka, TriHUG July 23, 2013mumrah
 
How to Implement Domain Driven Design in Real Life SDLC
How to Implement Domain Driven Design  in Real Life SDLCHow to Implement Domain Driven Design  in Real Life SDLC
How to Implement Domain Driven Design in Real Life SDLCAbdul Karim
 
Containerd Internals: Building a Core Container Runtime
Containerd Internals: Building a Core Container RuntimeContainerd Internals: Building a Core Container Runtime
Containerd Internals: Building a Core Container RuntimePhil Estes
 
Distributing Transactions using MassTransit
Distributing Transactions using MassTransitDistributing Transactions using MassTransit
Distributing Transactions using MassTransitChris Patterson
 
소셜게임 서버 개발 관점에서 본 Node.js의 장단점과 대안
소셜게임 서버 개발 관점에서 본 Node.js의 장단점과 대안소셜게임 서버 개발 관점에서 본 Node.js의 장단점과 대안
소셜게임 서버 개발 관점에서 본 Node.js의 장단점과 대안Jeongsang Baek
 
HTTP by Hand: Exploring HTTP/1.0, 1.1 and 2.0
HTTP by Hand: Exploring HTTP/1.0, 1.1 and 2.0HTTP by Hand: Exploring HTTP/1.0, 1.1 and 2.0
HTTP by Hand: Exploring HTTP/1.0, 1.1 and 2.0Cory Forsyth
 
김민욱, (달빛조각사) 엘릭서를 이용한 mmorpg 서버 개발, NDC2019
김민욱, (달빛조각사) 엘릭서를 이용한 mmorpg 서버 개발, NDC2019김민욱, (달빛조각사) 엘릭서를 이용한 mmorpg 서버 개발, NDC2019
김민욱, (달빛조각사) 엘릭서를 이용한 mmorpg 서버 개발, NDC2019min woog kim
 
KVM and docker LXC Benchmarking with OpenStack
KVM and docker LXC Benchmarking with OpenStackKVM and docker LXC Benchmarking with OpenStack
KVM and docker LXC Benchmarking with OpenStackBoden Russell
 
ABS 2013: Dive into Android Networking - Adding Ethernet Connectivity
ABS 2013: Dive into Android Networking - Adding Ethernet ConnectivityABS 2013: Dive into Android Networking - Adding Ethernet Connectivity
ABS 2013: Dive into Android Networking - Adding Ethernet ConnectivityBenjamin Zores
 
2.[d2 오픈세미나]네이버클라우드 시스템 아키텍처 및 활용 방안
2.[d2 오픈세미나]네이버클라우드 시스템 아키텍처 및 활용 방안2.[d2 오픈세미나]네이버클라우드 시스템 아키텍처 및 활용 방안
2.[d2 오픈세미나]네이버클라우드 시스템 아키텍처 및 활용 방안NAVER D2
 
Terraform Modules Restructured
Terraform Modules RestructuredTerraform Modules Restructured
Terraform Modules RestructuredDoiT International
 
Quic을 이용한 네트워크 성능 개선
 Quic을 이용한 네트워크 성능 개선 Quic을 이용한 네트워크 성능 개선
Quic을 이용한 네트워크 성능 개선NAVER D2
 
파이썬 생존 안내서 (자막)
파이썬 생존 안내서 (자막)파이썬 생존 안내서 (자막)
파이썬 생존 안내서 (자막)Heungsub Lee
 
Docker로 서버 개발 편하게 하기
Docker로 서버 개발 편하게 하기Docker로 서버 개발 편하게 하기
Docker로 서버 개발 편하게 하기Dronix
 
AWS와 함께 한 쿠키런 서버 Re-architecting 사례 (Gaming on AWS)
AWS와 함께 한 쿠키런 서버 Re-architecting 사례 (Gaming on AWS)AWS와 함께 한 쿠키런 서버 Re-architecting 사례 (Gaming on AWS)
AWS와 함께 한 쿠키런 서버 Re-architecting 사례 (Gaming on AWS)Brian Hong
 
Real Life Clean Architecture
Real Life Clean ArchitectureReal Life Clean Architecture
Real Life Clean ArchitectureMattia Battiston
 
Defending against Java Deserialization Vulnerabilities
 Defending against Java Deserialization Vulnerabilities Defending against Java Deserialization Vulnerabilities
Defending against Java Deserialization VulnerabilitiesLuca Carettoni
 

Was ist angesagt? (20)

Introduction and Overview of Apache Kafka, TriHUG July 23, 2013
Introduction and Overview of Apache Kafka, TriHUG July 23, 2013Introduction and Overview of Apache Kafka, TriHUG July 23, 2013
Introduction and Overview of Apache Kafka, TriHUG July 23, 2013
 
How to Implement Domain Driven Design in Real Life SDLC
How to Implement Domain Driven Design  in Real Life SDLCHow to Implement Domain Driven Design  in Real Life SDLC
How to Implement Domain Driven Design in Real Life SDLC
 
Containerd Internals: Building a Core Container Runtime
Containerd Internals: Building a Core Container RuntimeContainerd Internals: Building a Core Container Runtime
Containerd Internals: Building a Core Container Runtime
 
Distributing Transactions using MassTransit
Distributing Transactions using MassTransitDistributing Transactions using MassTransit
Distributing Transactions using MassTransit
 
소셜게임 서버 개발 관점에서 본 Node.js의 장단점과 대안
소셜게임 서버 개발 관점에서 본 Node.js의 장단점과 대안소셜게임 서버 개발 관점에서 본 Node.js의 장단점과 대안
소셜게임 서버 개발 관점에서 본 Node.js의 장단점과 대안
 
HTTP by Hand: Exploring HTTP/1.0, 1.1 and 2.0
HTTP by Hand: Exploring HTTP/1.0, 1.1 and 2.0HTTP by Hand: Exploring HTTP/1.0, 1.1 and 2.0
HTTP by Hand: Exploring HTTP/1.0, 1.1 and 2.0
 
김민욱, (달빛조각사) 엘릭서를 이용한 mmorpg 서버 개발, NDC2019
김민욱, (달빛조각사) 엘릭서를 이용한 mmorpg 서버 개발, NDC2019김민욱, (달빛조각사) 엘릭서를 이용한 mmorpg 서버 개발, NDC2019
김민욱, (달빛조각사) 엘릭서를 이용한 mmorpg 서버 개발, NDC2019
 
KVM and docker LXC Benchmarking with OpenStack
KVM and docker LXC Benchmarking with OpenStackKVM and docker LXC Benchmarking with OpenStack
KVM and docker LXC Benchmarking with OpenStack
 
Power-up services with gRPC
Power-up services with gRPCPower-up services with gRPC
Power-up services with gRPC
 
ABS 2013: Dive into Android Networking - Adding Ethernet Connectivity
ABS 2013: Dive into Android Networking - Adding Ethernet ConnectivityABS 2013: Dive into Android Networking - Adding Ethernet Connectivity
ABS 2013: Dive into Android Networking - Adding Ethernet Connectivity
 
MongoDB Backup & Disaster Recovery
MongoDB Backup & Disaster RecoveryMongoDB Backup & Disaster Recovery
MongoDB Backup & Disaster Recovery
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 
2.[d2 오픈세미나]네이버클라우드 시스템 아키텍처 및 활용 방안
2.[d2 오픈세미나]네이버클라우드 시스템 아키텍처 및 활용 방안2.[d2 오픈세미나]네이버클라우드 시스템 아키텍처 및 활용 방안
2.[d2 오픈세미나]네이버클라우드 시스템 아키텍처 및 활용 방안
 
Terraform Modules Restructured
Terraform Modules RestructuredTerraform Modules Restructured
Terraform Modules Restructured
 
Quic을 이용한 네트워크 성능 개선
 Quic을 이용한 네트워크 성능 개선 Quic을 이용한 네트워크 성능 개선
Quic을 이용한 네트워크 성능 개선
 
파이썬 생존 안내서 (자막)
파이썬 생존 안내서 (자막)파이썬 생존 안내서 (자막)
파이썬 생존 안내서 (자막)
 
Docker로 서버 개발 편하게 하기
Docker로 서버 개발 편하게 하기Docker로 서버 개발 편하게 하기
Docker로 서버 개발 편하게 하기
 
AWS와 함께 한 쿠키런 서버 Re-architecting 사례 (Gaming on AWS)
AWS와 함께 한 쿠키런 서버 Re-architecting 사례 (Gaming on AWS)AWS와 함께 한 쿠키런 서버 Re-architecting 사례 (Gaming on AWS)
AWS와 함께 한 쿠키런 서버 Re-architecting 사례 (Gaming on AWS)
 
Real Life Clean Architecture
Real Life Clean ArchitectureReal Life Clean Architecture
Real Life Clean Architecture
 
Defending against Java Deserialization Vulnerabilities
 Defending against Java Deserialization Vulnerabilities Defending against Java Deserialization Vulnerabilities
Defending against Java Deserialization Vulnerabilities
 

Andere mochten auch

sDDS: An Adaptable DDS Solution for Wireless Sensor Networks
sDDS: An Adaptable DDS Solution for Wireless Sensor NetworkssDDS: An Adaptable DDS Solution for Wireless Sensor Networks
sDDS: An Adaptable DDS Solution for Wireless Sensor NetworksReal-Time Innovations (RTI)
 
Approaches for Mitigating Discovery Problems in Larger Systems
Approaches for Mitigating Discovery Problems in Larger SystemsApproaches for Mitigating Discovery Problems in Larger Systems
Approaches for Mitigating Discovery Problems in Larger SystemsReal-Time Innovations (RTI)
 
Component Based DDS with C++11 and R2DDS
Component Based DDS with C++11 and R2DDSComponent Based DDS with C++11 and R2DDS
Component Based DDS with C++11 and R2DDSRemedy IT
 
Application of DDS on modular Hardware-in-the-loop test benches at Audi
Application of DDS on modular Hardware-in-the-loop test benches at AudiApplication of DDS on modular Hardware-in-the-loop test benches at Audi
Application of DDS on modular Hardware-in-the-loop test benches at AudiReal-Time Innovations (RTI)
 
The Inside Story: GE Healthcare's Industrial Internet of Things (IoT) Archite...
The Inside Story: GE Healthcare's Industrial Internet of Things (IoT) Archite...The Inside Story: GE Healthcare's Industrial Internet of Things (IoT) Archite...
The Inside Story: GE Healthcare's Industrial Internet of Things (IoT) Archite...Real-Time Innovations (RTI)
 
DDS: The IoT Data Sharing Standard
DDS: The IoT Data Sharing StandardDDS: The IoT Data Sharing Standard
DDS: The IoT Data Sharing StandardAngelo Corsaro
 
DDS and OPC UA Explained
DDS and OPC UA ExplainedDDS and OPC UA Explained
DDS and OPC UA ExplainedAngelo Corsaro
 
DDS in Action -- Part I
DDS in Action -- Part IDDS in Action -- Part I
DDS in Action -- Part IAngelo Corsaro
 
DDS Advanced Tutorial - OMG June 2013 Berlin Meeting
DDS Advanced Tutorial - OMG June 2013 Berlin MeetingDDS Advanced Tutorial - OMG June 2013 Berlin Meeting
DDS Advanced Tutorial - OMG June 2013 Berlin MeetingJaime Martin Losa
 

Andere mochten auch (17)

DDS Web Enabled
DDS Web EnabledDDS Web Enabled
DDS Web Enabled
 
DDS Security
DDS SecurityDDS Security
DDS Security
 
Demo of RTI DDS toolkit for LabVIEW
Demo of RTI DDS toolkit for LabVIEWDemo of RTI DDS toolkit for LabVIEW
Demo of RTI DDS toolkit for LabVIEW
 
DDS Over Low Bandwidth Data Links
DDS Over Low Bandwidth Data LinksDDS Over Low Bandwidth Data Links
DDS Over Low Bandwidth Data Links
 
Experiencing the Live IIoT
Experiencing the Live IIoTExperiencing the Live IIoT
Experiencing the Live IIoT
 
Is Your Distributed System Secure?
Is Your Distributed System Secure?Is Your Distributed System Secure?
Is Your Distributed System Secure?
 
sDDS: An Adaptable DDS Solution for Wireless Sensor Networks
sDDS: An Adaptable DDS Solution for Wireless Sensor NetworkssDDS: An Adaptable DDS Solution for Wireless Sensor Networks
sDDS: An Adaptable DDS Solution for Wireless Sensor Networks
 
Approaches for Mitigating Discovery Problems in Larger Systems
Approaches for Mitigating Discovery Problems in Larger SystemsApproaches for Mitigating Discovery Problems in Larger Systems
Approaches for Mitigating Discovery Problems in Larger Systems
 
Component Based DDS with C++11 and R2DDS
Component Based DDS with C++11 and R2DDSComponent Based DDS with C++11 and R2DDS
Component Based DDS with C++11 and R2DDS
 
Application of DDS on modular Hardware-in-the-loop test benches at Audi
Application of DDS on modular Hardware-in-the-loop test benches at AudiApplication of DDS on modular Hardware-in-the-loop test benches at Audi
Application of DDS on modular Hardware-in-the-loop test benches at Audi
 
The Industrial Internet of Things and RTI
The Industrial Internet of Things and RTIThe Industrial Internet of Things and RTI
The Industrial Internet of Things and RTI
 
The Inside Story: GE Healthcare's Industrial Internet of Things (IoT) Archite...
The Inside Story: GE Healthcare's Industrial Internet of Things (IoT) Archite...The Inside Story: GE Healthcare's Industrial Internet of Things (IoT) Archite...
The Inside Story: GE Healthcare's Industrial Internet of Things (IoT) Archite...
 
DDS: The IoT Data Sharing Standard
DDS: The IoT Data Sharing StandardDDS: The IoT Data Sharing Standard
DDS: The IoT Data Sharing Standard
 
DDS Security
DDS SecurityDDS Security
DDS Security
 
DDS and OPC UA Explained
DDS and OPC UA ExplainedDDS and OPC UA Explained
DDS and OPC UA Explained
 
DDS in Action -- Part I
DDS in Action -- Part IDDS in Action -- Part I
DDS in Action -- Part I
 
DDS Advanced Tutorial - OMG June 2013 Berlin Meeting
DDS Advanced Tutorial - OMG June 2013 Berlin MeetingDDS Advanced Tutorial - OMG June 2013 Berlin Meeting
DDS Advanced Tutorial - OMG June 2013 Berlin Meeting
 

Ähnlich wie RPC Over DDS

Remote Procedure Call over DDS - London Connext DDS Conference
Remote Procedure Call over DDS - London Connext DDS Conference Remote Procedure Call over DDS - London Connext DDS Conference
Remote Procedure Call over DDS - London Connext DDS Conference Gerardo Pardo-Castellote
 
Overview of Rest Service and ASP.NET WEB API
Overview of Rest Service and ASP.NET WEB APIOverview of Rest Service and ASP.NET WEB API
Overview of Rest Service and ASP.NET WEB APIPankaj Bajaj
 
CON 2107- Think Async: Embrace and Get Addicted to the Asynchronicity of EE
CON 2107- Think Async: Embrace and Get Addicted to the Asynchronicity of EECON 2107- Think Async: Embrace and Get Addicted to the Asynchronicity of EE
CON 2107- Think Async: Embrace and Get Addicted to the Asynchronicity of EEMasoud Kalali
 
Puppet – Make stateful apps easier than stateless
Puppet – Make stateful apps easier than statelessPuppet – Make stateful apps easier than stateless
Puppet – Make stateful apps easier than statelessStarcounter
 
Generating Unified APIs with Protocol Buffers and gRPC
Generating Unified APIs with Protocol Buffers and gRPCGenerating Unified APIs with Protocol Buffers and gRPC
Generating Unified APIs with Protocol Buffers and gRPCC4Media
 
Restful webservices
Restful webservicesRestful webservices
Restful webservicesKong King
 
Semantic Web Servers
Semantic Web ServersSemantic Web Servers
Semantic Web Serverswebhostingguy
 
Web services - A Practical Approach
Web services - A Practical ApproachWeb services - A Practical Approach
Web services - A Practical ApproachMadhaiyan Muthu
 
JavaOne 2009 - TS-5276 - RESTful Protocol Buffers
JavaOne 2009 - TS-5276 - RESTful  Protocol BuffersJavaOne 2009 - TS-5276 - RESTful  Protocol Buffers
JavaOne 2009 - TS-5276 - RESTful Protocol BuffersMatt O'Keefe
 
Communication Protocols And Web Services
Communication Protocols And Web ServicesCommunication Protocols And Web Services
Communication Protocols And Web ServicesOmer Katz
 
Next gen tech from QuickXpert Infotech
Next gen tech   from QuickXpert InfotechNext gen tech   from QuickXpert Infotech
Next gen tech from QuickXpert InfotechNarendra Jakhotia
 
Service Oriented Architecture
Service Oriented Architecture Service Oriented Architecture
Service Oriented Architecture Prabhat gangwar
 
Desktop, Embedded and Mobile Apps with PrismTech Vortex Cafe
Desktop, Embedded and Mobile Apps with PrismTech Vortex CafeDesktop, Embedded and Mobile Apps with PrismTech Vortex Cafe
Desktop, Embedded and Mobile Apps with PrismTech Vortex CafeADLINK Technology IoT
 
Desktop, Embedded and Mobile Apps with Vortex Café
Desktop, Embedded and Mobile Apps with Vortex CaféDesktop, Embedded and Mobile Apps with Vortex Café
Desktop, Embedded and Mobile Apps with Vortex CaféAngelo Corsaro
 

Ähnlich wie RPC Over DDS (20)

Remote Procedure Call over DDS - London Connext DDS Conference
Remote Procedure Call over DDS - London Connext DDS Conference Remote Procedure Call over DDS - London Connext DDS Conference
Remote Procedure Call over DDS - London Connext DDS Conference
 
Switch to Backend 2023
Switch to Backend 2023Switch to Backend 2023
Switch to Backend 2023
 
JAX-RS.next
JAX-RS.nextJAX-RS.next
JAX-RS.next
 
Overview of Rest Service and ASP.NET WEB API
Overview of Rest Service and ASP.NET WEB APIOverview of Rest Service and ASP.NET WEB API
Overview of Rest Service and ASP.NET WEB API
 
Servlet
ServletServlet
Servlet
 
CON 2107- Think Async: Embrace and Get Addicted to the Asynchronicity of EE
CON 2107- Think Async: Embrace and Get Addicted to the Asynchronicity of EECON 2107- Think Async: Embrace and Get Addicted to the Asynchronicity of EE
CON 2107- Think Async: Embrace and Get Addicted to the Asynchronicity of EE
 
Cqrs api
Cqrs apiCqrs api
Cqrs api
 
Puppet – Make stateful apps easier than stateless
Puppet – Make stateful apps easier than statelessPuppet – Make stateful apps easier than stateless
Puppet – Make stateful apps easier than stateless
 
Generating Unified APIs with Protocol Buffers and gRPC
Generating Unified APIs with Protocol Buffers and gRPCGenerating Unified APIs with Protocol Buffers and gRPC
Generating Unified APIs with Protocol Buffers and gRPC
 
Restful webservices
Restful webservicesRestful webservices
Restful webservices
 
Switch to Backend 2023 | Day 1 Part 1
Switch to Backend 2023 | Day 1 Part 1Switch to Backend 2023 | Day 1 Part 1
Switch to Backend 2023 | Day 1 Part 1
 
Semantic Web Servers
Semantic Web ServersSemantic Web Servers
Semantic Web Servers
 
Web services - A Practical Approach
Web services - A Practical ApproachWeb services - A Practical Approach
Web services - A Practical Approach
 
JavaOne 2009 - TS-5276 - RESTful Protocol Buffers
JavaOne 2009 - TS-5276 - RESTful  Protocol BuffersJavaOne 2009 - TS-5276 - RESTful  Protocol Buffers
JavaOne 2009 - TS-5276 - RESTful Protocol Buffers
 
Communication Protocols And Web Services
Communication Protocols And Web ServicesCommunication Protocols And Web Services
Communication Protocols And Web Services
 
Next gen tech from QuickXpert Infotech
Next gen tech   from QuickXpert InfotechNext gen tech   from QuickXpert Infotech
Next gen tech from QuickXpert Infotech
 
Service Oriented Architecture
Service Oriented Architecture Service Oriented Architecture
Service Oriented Architecture
 
Desktop, Embedded and Mobile Apps with PrismTech Vortex Cafe
Desktop, Embedded and Mobile Apps with PrismTech Vortex CafeDesktop, Embedded and Mobile Apps with PrismTech Vortex Cafe
Desktop, Embedded and Mobile Apps with PrismTech Vortex Cafe
 
Desktop, Embedded and Mobile Apps with Vortex Café
Desktop, Embedded and Mobile Apps with Vortex CaféDesktop, Embedded and Mobile Apps with Vortex Café
Desktop, Embedded and Mobile Apps with Vortex Café
 
SOA patterns
SOA patterns SOA patterns
SOA patterns
 

Mehr von Real-Time Innovations (RTI)

Precise, Predictive, and Connected: DDS and OPC UA – Real-Time Connectivity A...
Precise, Predictive, and Connected: DDS and OPC UA – Real-Time Connectivity A...Precise, Predictive, and Connected: DDS and OPC UA – Real-Time Connectivity A...
Precise, Predictive, and Connected: DDS and OPC UA – Real-Time Connectivity A...Real-Time Innovations (RTI)
 
The Inside Story: How the IIC’s Connectivity Framework Guides IIoT Connectivi...
The Inside Story: How the IIC’s Connectivity Framework Guides IIoT Connectivi...The Inside Story: How the IIC’s Connectivity Framework Guides IIoT Connectivi...
The Inside Story: How the IIC’s Connectivity Framework Guides IIoT Connectivi...Real-Time Innovations (RTI)
 
Upgrade Your System’s Security - Making the Jump from Connext DDS Professiona...
Upgrade Your System’s Security - Making the Jump from Connext DDS Professiona...Upgrade Your System’s Security - Making the Jump from Connext DDS Professiona...
Upgrade Your System’s Security - Making the Jump from Connext DDS Professiona...Real-Time Innovations (RTI)
 
The Inside Story: Leveraging the IIC's Industrial Internet Security Framework
The Inside Story: Leveraging the IIC's Industrial Internet Security FrameworkThe Inside Story: Leveraging the IIC's Industrial Internet Security Framework
The Inside Story: Leveraging the IIC's Industrial Internet Security FrameworkReal-Time Innovations (RTI)
 
ISO 26262 Approval of Automotive Software Components
ISO 26262 Approval of Automotive Software ComponentsISO 26262 Approval of Automotive Software Components
ISO 26262 Approval of Automotive Software ComponentsReal-Time Innovations (RTI)
 
The Low-Risk Path to Building Autonomous Car Architectures
The Low-Risk Path to Building Autonomous Car ArchitecturesThe Low-Risk Path to Building Autonomous Car Architectures
The Low-Risk Path to Building Autonomous Car ArchitecturesReal-Time Innovations (RTI)
 
How to Design Distributed Robotic Control Systems
How to Design Distributed Robotic Control SystemsHow to Design Distributed Robotic Control Systems
How to Design Distributed Robotic Control SystemsReal-Time Innovations (RTI)
 
Fog Computing is the Future of the Industrial Internet of Things
Fog Computing is the Future of the Industrial Internet of ThingsFog Computing is the Future of the Industrial Internet of Things
Fog Computing is the Future of the Industrial Internet of ThingsReal-Time Innovations (RTI)
 
The Inside Story: How OPC UA and DDS Can Work Together in Industrial Systems
The Inside Story: How OPC UA and DDS Can Work Together in Industrial SystemsThe Inside Story: How OPC UA and DDS Can Work Together in Industrial Systems
The Inside Story: How OPC UA and DDS Can Work Together in Industrial SystemsReal-Time Innovations (RTI)
 
Space Rovers and Surgical Robots: System Architecture Lessons from Mars
Space Rovers and Surgical Robots: System Architecture Lessons from MarsSpace Rovers and Surgical Robots: System Architecture Lessons from Mars
Space Rovers and Surgical Robots: System Architecture Lessons from MarsReal-Time Innovations (RTI)
 
Learn About FACE Aligned Reference Platform: Built on COTS and DO-178C Certif...
Learn About FACE Aligned Reference Platform: Built on COTS and DO-178C Certif...Learn About FACE Aligned Reference Platform: Built on COTS and DO-178C Certif...
Learn About FACE Aligned Reference Platform: Built on COTS and DO-178C Certif...Real-Time Innovations (RTI)
 
How the fusion of time sensitive networking, time-triggered ethernet and data...
How the fusion of time sensitive networking, time-triggered ethernet and data...How the fusion of time sensitive networking, time-triggered ethernet and data...
How the fusion of time sensitive networking, time-triggered ethernet and data...Real-Time Innovations (RTI)
 
Cybersecurity Spotlight: Looking under the Hood at Data Breaches and Hardenin...
Cybersecurity Spotlight: Looking under the Hood at Data Breaches and Hardenin...Cybersecurity Spotlight: Looking under the Hood at Data Breaches and Hardenin...
Cybersecurity Spotlight: Looking under the Hood at Data Breaches and Hardenin...Real-Time Innovations (RTI)
 
Data Distribution Service Security and the Industrial Internet of Things
Data Distribution Service Security and the Industrial Internet of ThingsData Distribution Service Security and the Industrial Internet of Things
Data Distribution Service Security and the Industrial Internet of ThingsReal-Time Innovations (RTI)
 
Developing Mission-Critical Avionics and Defense Systems with Ada and DDS
Developing Mission-Critical Avionics and Defense Systems with Ada and DDSDeveloping Mission-Critical Avionics and Defense Systems with Ada and DDS
Developing Mission-Critical Avionics and Defense Systems with Ada and DDSReal-Time Innovations (RTI)
 

Mehr von Real-Time Innovations (RTI) (20)

A Tour of RTI Applications
A Tour of RTI ApplicationsA Tour of RTI Applications
A Tour of RTI Applications
 
Precise, Predictive, and Connected: DDS and OPC UA – Real-Time Connectivity A...
Precise, Predictive, and Connected: DDS and OPC UA – Real-Time Connectivity A...Precise, Predictive, and Connected: DDS and OPC UA – Real-Time Connectivity A...
Precise, Predictive, and Connected: DDS and OPC UA – Real-Time Connectivity A...
 
The Inside Story: How the IIC’s Connectivity Framework Guides IIoT Connectivi...
The Inside Story: How the IIC’s Connectivity Framework Guides IIoT Connectivi...The Inside Story: How the IIC’s Connectivity Framework Guides IIoT Connectivi...
The Inside Story: How the IIC’s Connectivity Framework Guides IIoT Connectivi...
 
Upgrade Your System’s Security - Making the Jump from Connext DDS Professiona...
Upgrade Your System’s Security - Making the Jump from Connext DDS Professiona...Upgrade Your System’s Security - Making the Jump from Connext DDS Professiona...
Upgrade Your System’s Security - Making the Jump from Connext DDS Professiona...
 
The Inside Story: Leveraging the IIC's Industrial Internet Security Framework
The Inside Story: Leveraging the IIC's Industrial Internet Security FrameworkThe Inside Story: Leveraging the IIC's Industrial Internet Security Framework
The Inside Story: Leveraging the IIC's Industrial Internet Security Framework
 
ISO 26262 Approval of Automotive Software Components
ISO 26262 Approval of Automotive Software ComponentsISO 26262 Approval of Automotive Software Components
ISO 26262 Approval of Automotive Software Components
 
The Low-Risk Path to Building Autonomous Car Architectures
The Low-Risk Path to Building Autonomous Car ArchitecturesThe Low-Risk Path to Building Autonomous Car Architectures
The Low-Risk Path to Building Autonomous Car Architectures
 
Introduction to RTI DDS
Introduction to RTI DDSIntroduction to RTI DDS
Introduction to RTI DDS
 
How to Design Distributed Robotic Control Systems
How to Design Distributed Robotic Control SystemsHow to Design Distributed Robotic Control Systems
How to Design Distributed Robotic Control Systems
 
Fog Computing is the Future of the Industrial Internet of Things
Fog Computing is the Future of the Industrial Internet of ThingsFog Computing is the Future of the Industrial Internet of Things
Fog Computing is the Future of the Industrial Internet of Things
 
The Inside Story: How OPC UA and DDS Can Work Together in Industrial Systems
The Inside Story: How OPC UA and DDS Can Work Together in Industrial SystemsThe Inside Story: How OPC UA and DDS Can Work Together in Industrial Systems
The Inside Story: How OPC UA and DDS Can Work Together in Industrial Systems
 
Cyber Security for the Connected Car
Cyber Security for the Connected Car Cyber Security for the Connected Car
Cyber Security for the Connected Car
 
Space Rovers and Surgical Robots: System Architecture Lessons from Mars
Space Rovers and Surgical Robots: System Architecture Lessons from MarsSpace Rovers and Surgical Robots: System Architecture Lessons from Mars
Space Rovers and Surgical Robots: System Architecture Lessons from Mars
 
Advancing Active Safety for Next-Gen Automotive
Advancing Active Safety for Next-Gen AutomotiveAdvancing Active Safety for Next-Gen Automotive
Advancing Active Safety for Next-Gen Automotive
 
Learn About FACE Aligned Reference Platform: Built on COTS and DO-178C Certif...
Learn About FACE Aligned Reference Platform: Built on COTS and DO-178C Certif...Learn About FACE Aligned Reference Platform: Built on COTS and DO-178C Certif...
Learn About FACE Aligned Reference Platform: Built on COTS and DO-178C Certif...
 
How the fusion of time sensitive networking, time-triggered ethernet and data...
How the fusion of time sensitive networking, time-triggered ethernet and data...How the fusion of time sensitive networking, time-triggered ethernet and data...
How the fusion of time sensitive networking, time-triggered ethernet and data...
 
Secrets of Autonomous Car Design
Secrets of Autonomous Car DesignSecrets of Autonomous Car Design
Secrets of Autonomous Car Design
 
Cybersecurity Spotlight: Looking under the Hood at Data Breaches and Hardenin...
Cybersecurity Spotlight: Looking under the Hood at Data Breaches and Hardenin...Cybersecurity Spotlight: Looking under the Hood at Data Breaches and Hardenin...
Cybersecurity Spotlight: Looking under the Hood at Data Breaches and Hardenin...
 
Data Distribution Service Security and the Industrial Internet of Things
Data Distribution Service Security and the Industrial Internet of ThingsData Distribution Service Security and the Industrial Internet of Things
Data Distribution Service Security and the Industrial Internet of Things
 
Developing Mission-Critical Avionics and Defense Systems with Ada and DDS
Developing Mission-Critical Avionics and Defense Systems with Ada and DDSDeveloping Mission-Critical Avionics and Defense Systems with Ada and DDS
Developing Mission-Critical Avionics and Defense Systems with Ada and DDS
 

Kürzlich hochgeladen

Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 

Kürzlich hochgeladen (20)

Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 

RPC Over DDS

  • 1. DDS RPC over DDS Gerardo Pardo-­‐Castellote, Ph.D. Chief Technology Officer, RTI Sumant Tambe, Ph.D. Senior SoBware Reseach Engineer, RTI October 2014
  • 2. © 2014 Real-­‐Time InnovaJons, Inc. Outline • Goals • Background • Status • Details • More info
  • 3. © 2014 Real-­‐Time InnovaJons, Inc. Goals • Provide standard and interoperable way means to support “RPC” communicaJon paQerns in DDS • Support the PaQers: – Request/Reply – Service InvocaJon – Remote Procedure Call – Remote Method InvocaJon • Support invocaJon of IDL-­‐specified interfaces over DDS – Provide a simpler way to migrate CORBA applicaJons to DDS – Support familiar “remote interface” programming style equivalent to Java RMI and Apache ThriB
  • 4. Advantages of RPC over DDS • Client and Servers are decoupled © 2014 Real-­‐Time InnovaJons, Inc. – No startup dependencies • QoS enforcement to support service SLAs – Ownership–Redundant pool of servers – Lifespan–request is only valid for the next N sec – Durability-­‐request/replies will be eventually received and processed – CancellaJon– aBer a good quality response has arrived • Data-­‐Centricity – Explicit trace-­‐ability – InteracJon state can be Monitored, Logged, Audited, Stored, Manipulated • Watch by subscribing to requests and/or responses (wire-­‐tap) • One middleware – leverage DDS infrastructure – Suited for real-­‐Jme systems – MulJpla`orm, MulJlanguage, Interoperable
  • 5. But I can already do it... True: • I can write my own RCP using request/reply Topics © 2014 Real-­‐Time InnovaJons, Inc. • RTI Connext already supports a “Request/Reply” equivalent to RPC • Some other vendors do similar things But… • The mapping from service to Topics and Types is ad-­‐ hoc. • These approaches are not portable/Interoperable • Gebng everything right is cumbersome at best
  • 6. How can I do it myself? • Map Interfaces to types & Topics… © 2014 Real-­‐Time InnovaJons, Inc. – One Topic per interface, one per operaJon? – What are the types. How to map excepJons, output parameters, … – What happens if the interfaces change, e.g. operaJon is added or moved? • Implement necessary plumbing: • Setup request topic and type • Setup reply topic and type • Filter unwanted requests • Filter unwanted replies
  • 7. But RPC is not a good/robust idea/ design paQern…. • RPC versus Desired State PaQern Goal State © 2014 Real-­‐Time InnovaJons, Inc. – Insight: OBen a request-­‐reply can be modeled as stateful data-­‐centric interacJons write Current State Affect Service Client Service Provider Desired State read write read read
  • 8. RPC vs Desired State • Desired state is good & more robust if the “request” © 2014 Real-­‐Time InnovaJons, Inc. actually represents: – a request to change of system state – Take a long Jme to fulfill – Needs to be observable by others • However: – Many requests that do not represent changes to state: Database Query, Read a File… – People familiar for “Service” or “Request/Reply” paQern may find Directed State cumbersome –specially if extra robustness is unwarranted RPC over DDS provides best of both worlds!
  • 9. Example: RobotControl © 2014 Real-­‐Time InnovaJons, Inc. module robot { @DDSService interface RobotControl { void command(Command command); float setSpeed(float speed) raises (TooFast); float getSpeed(); void getStatus(out Status status); }; }
  • 10. RobotControl Client © 2014 Real-­‐Time InnovaJons, Inc. import org.omg.dds.rpc.*; public class TestRobot { static void createRobotClient() { RPCRuntime runtime = RPCRuntime.getInstance(TestRobot.class.getClassLoader()); ClientParams clientParams = runtime.createClientParams(); // optional RobotControlSupport.Client robotClient = RobotControlSupport.createClient( clientParams.withServiceName(”TestRobot”) .withInstanceName(“iRobot”)); // more configs available robotClient.waitForService(); // optional robotClient.getSpeed(); } }
  • 11. RobotControl Service (Java) package robot; import robot.RobotControl; public class MyRobot implements RobotControl { public void command(Command command) { } public float setSpeed(float speed) { return 1; } public float getSpeed() { return 2; } public void getStatus(/* out */ Status status) { } © 2014 Real-­‐Time InnovaJons, Inc. } import org.omg.dds.rpc.*; public class TestRobot { public static void createRobotServer() { RPCRuntime runtime = RPCRuntime.getInstance(TestRobot.class.getClassLoader()); MyRobot myRobot = new MyRobot(); Server server = runtime.createServer(); // Configurable using ServerParams RobotControlSupport.Service service = RobotControlSupport.createService(myRobot, server); // Configurable using ServiceParams server.run(); // blocking } }
  • 12. RobotControl Requester public class TestRobot { static void createRobotRequester() { © 2014 Real-­‐Time InnovaJons, Inc. RPCRuntime runtime = RPCRuntime.getInstance(TestRobot.class.getClassLoader()); RequesterParams reqParams = runtime.createRequesterParams(); // change params here if you like Requester<RobotControlSupport.RequestType, RobotControlSupport.ReplyType> requester = runtime.createRequester( RobotControlSupport.RequestType.class, RobotControlSupport.ReplyType.class, reqParams); RobotControlSupport.RequestType request = new RobotControlSupport.RequestType(); // populate request requester.sendRequest(request); } }
  • 13. RobotControl Replier © 2014 Real-­‐Time InnovaJons, Inc. public class TestRobot { static void createRobotReplier() { RPCRuntime runtime = RPCRuntime.getInstance(TestRobot.class.getClassLoader()); ReplierParams repParams = runtime.createReplierParams(); // change params here if you like Replier<RobotControlSupport.RequestType, RobotControlSupport.ReplyType> replier = runtime.createReplier( RobotControlSupport.RequestType.class, RobotControlSupport.ReplyType.class, repParams); Sample<RobotControlSupport.RequestType> request = replier.receiveRequest(); } }
  • 14. RobotControlSupport public abstract class RobotControlSupport { public final static class RequestType { // omg.dds.rpc.RequestHeader header; // robot.RobotControl_Call data; © 2014 Real-­‐Time InnovaJons, Inc. } public final static class ReplyType { // omg.dds.rpc.ReplyHeader header; // robot.RobotControl_Return data } public interface Client extends RobotControl, RobotControlAsync, ClientEndpoint { } public interface Service extends ServiceEndpoint { } public static final RobotControlSupport.Client createClient(); public static final RobotControlSupport.Service createService(RobotControl impl); // more client and service factory methods here }
  • 15. What needs to be specified • Mapping to DDS Topics & Filters © 2014 Real-­‐Time InnovaJons, Inc. – Each operaJon maps to a pair of topics? • Simplicity, Flexibility vs Scalability – Each interface to a pair of Topics? • What are the types? Inheritance? – Is publish-­‐subscribe allowed? e.g. audiJng, monitoring… • Mapping to DDS Data-­‐types – How to model operaJons? Parameters (in, our) return, excepJons, … – Fragility upon interfaces / operaJons changes? – Describable using X-­‐TYPES? • DDS API and DDS-­‐RTPS impact – Are extensions required? – Deployment on top of exisJng DDS • Language Bindings (C, C++, Java, C#, …)
  • 16. Client Application Service © 2014 Real-­‐Time InnovaJons, Inc. Architecture Service Implementa8on Lang. Bind. GUID2 Data Writer Client-­‐side Invoker Data Reader Data Reader Data Writer GUID1 SN1 Foo GUID2 SN2 GUID1 SN1 Bar Message-id1 Message-id2 Correlation-id1 Language Binding Bar Svc.method(in Foo); Content-­‐based Filter for filtering unwanted replies Foo Bar GUID1 Invoke Return Call Topic Return Topic Foo Bar
  • 17. Basic and Enhanced Service Mappings • Basic © 2014 Real-­‐Time InnovaJons, Inc. – Highest portability – Enables RPC on top of exisJng (v1.3 or earlier) DDS ImplementaJons • Enhanced – Elegant, Clean – Leverages DDS-­‐XTypes for type matching, – Adds support for Robust service discovery, Implicit request/reply correlaJon Mapping Aspect Basic Service Mapping Profile Enhanced Service Mapping Profile Correla8on Informa8on (request-­‐id) Explicitly added to the data-­‐type Implicit. They appear on the Sample meta-­‐data. Topic Mapping One request topic and one reply topic per interface. 2*N for a hierarchy of N interfaces. One request and one reply topic per interface. Independent of interface hierarchy. Type Mapping Synthesized types compaJble with l e g a c y ( p r e D D S -­‐ X T y p e s ) implementaJons. Use faciliJes of DDS-­‐XTypes for type descripJons, annotaJons, and type-­‐ compaJbility checks. Discovery No special extensions. Robust service discovery (no sample loss due to transient states)
  • 18. Language Bindings • Two © 2014 Real-­‐Time InnovaJons, Inc. types of language bindings – High-­‐level binding that provide func%on-­‐call semanJcs – Low-­‐level binding that are akin to send/receive (but sJll higher level than raw DDS read/take/write) • Strong separaJon between the data model and language binding Client ApplicaJon FuncJon-­‐call language binding DDS API Service Specification (IDL) Client ApplicaJon Request-­‐Reply language binding DDS API Service ImplementaJon FuncJon call language binding DDS API Service ImplementaJon Request-­‐Reply language binding DDS API Service-­‐specific Interoperable/Evolvable Data model (DDS/RTPS)
  • 19. © 2014 Real-­‐Time InnovaJons, Inc. QoS Mapping • Default strict reliable (request and reply) – RELIABLE reliability – KEEP_ALL history – VOLATILE durability • Can be changed by the user on a per-­‐service level
  • 20. © 2014 Real-­‐Time InnovaJons, Inc. @DDSService interface RobotControl { struct RobotControl_setSpeed_In { long s; }; struct RobotControl_getSpeed_In { boolean return_; }; float setSpeed(float speed) raises (TooFast); float getSpeed(); void start(); void stop(); }; @choice @autoid struct RobotControl_Request { RobotControl_setSpeed_In setSpeed; RobotControl_getSpeed_In getSpeed; RobotControl_start_In start; RobotControl_stop_In stop; @empty }; struct start_In { octet dummy_;}; @empty struct stop_In { octet dummy_;};
  • 21. float setSpeed(float speed) raises (TooFast); float getSpeed(); void start(); void stop(); © 2014 Real-­‐Time InnovaJons, Inc. @DDSService interface RobotControl { }; struct RobotControl_setSpeed_Out { float return_; // Also inout and out params }; … @choice @autoid struct RobotControl_setSpeed_Result { RobotControl_setSpeed_Out out; SystemExcepJonCode sysx_; TooFast toofast_ex; }; … @choice @autoid struct RobotControl_Reply { RobotControl_setSpeed_Result setSpeed; RobotControl_getSpeed_Result getSpeed; RobotControl_start_Result start; RobotControl_stop_Result stop; };
  • 22. © 2014 Real-­‐Time InnovaJons, Inc. Status • Ongoing standard at OMG • RFP was issued in June 2012 • IniJally 2 compeJng submissions: 1. Joint RTI + eProsima (later joined by TwinOaks) 2. PrismTech • Very different approaches – not converging – EvaluaJon team represenJng 5 companies formed to provide feedback • RecommendaJon was to simplify RTI/eProsima submission • PrismTech dropped their submission and joined RTI/eProsimas’/TwinOaks • Expected to be voted and adopted in Dec 2014 • Completed FuncJon-­‐Call and Request/Reply language binding – Java (hQps://github.com/rJcommunity/dds-­‐rpc-­‐java) – C++* (hQps://github.com/rJcommunity/dds-­‐rpc-­‐cxx) – eProsima has POC implementaJon of “basic” profile working with several DDS implementaJons
  • 23. QuesJons? © 2014 Real-­‐Time InnovaJons, Inc.
  • 24. © 2014 Real-­‐Time InnovaJons, Inc. Find out more… dds.omg.org www.omg.org www.rJ.com community.rJ.com demo.rJ.com www.youtube.com/realJmeinnovaJons blogs.rJ.com www.twiQer.com/RealTimeInnov www.facebook.com/RTIsoBware www.slideshare.net/GerardoPardo www.slideshare.net/RealTimeInnovaJons