© 2015 Spazio IT - Soluzioni Informatiche s.a.s.
1
LCM
The Network
Is NOT
Transparent
October 2015
SPAZIO IT LCM - FDIR
Maurizio Martignano
Spazio IT – Soluzioni Informatiche s.a.s
Via Manzoni 40
46030 San Giorgio di Mantova, Mantova
http://www.spazioit.com
© 2015 Spazio IT - Soluzioni Informatiche s.a.s.
2
Agenda
CRETA Platform
LCM
LCM and FDIR
Conclusions
October 2015
© 2015 Spazio IT - Soluzioni Informatiche s.a.s.
3
CRETA Platform
October 2015
© 2015 Spazio IT - Soluzioni Informatiche s.a.s.
4
CRETA Platform – What is it?
Avionics architectures can contain nowadays a variety of communication hardware, e.g.:– AFDX (Avionics Full-Duplex Switched ) Ethernet
– ARINC 429, MIL-STD-1553B,…
– RS 232, RS 422, RS485,…
In turn, different types of computers, controllers, devices etc…, are connected to the communication infrastructure.
Finally various types of software/firmware systems run on the adopted computers and controllers. These systems are not necessarily written in the same programming language.
October 2015
© 2015 Spazio IT - Soluzioni Informatiche s.a.s.
5
CRETA Platform – What is it?
When developing and/or maintaining Software Components belonging to a given architecture it is very important to be able to integrate them with each others and to verify how well they interoperate together.
And the sooner this verification activity is performed, the better.
CRETA (Cross Environment for Test and Analysis) is a software platform simulating both:
– the avionics communication infrastructure
– the various avionics computational environments
October 2015
© 2015 Spazio IT - Soluzioni Informatiche s.a.s.
6
CRETA Platform – What is it?
With CRETA software developers/maintainers can «check» their software component directly on their workstation, on a simulated «testbed».
Tests and verifications on the actual hardware «testbed» can be performed at later time, once the software component has successfully proved its interoperability on CRETA.
Actual hardware can also be integrated to CRETA, as soon as it available (or the other way around: CRETA can be integrated to actual hardware).
October 2015
© 2015 Spazio IT - Soluzioni Informatiche s.a.s.
7
CRETA Platform – Programmatics
CRETA is project under development funded by AIRBUS Helicopters.
The main CRETA Developers are:
– Inopus (http://www.inopus.de/)
– Spazio IT (http://www.spazioit.com)
October 2015
© 2015 Spazio IT - Soluzioni Informatiche s.a.s.
8
CRETA Platform – LCM
Software components «attached» to CRETA can run on different workstations in a networked environment.
CRETA exposes itself to the software component via a «connector», i.e. a standard API.
The «connector» in turn connects to the CRETA system and other software components via an internal middleware based on LCM.
October 2015
© 2015 Spazio IT - Soluzioni Informatiche s.a.s.
9
CRETA Platform – LCM
October 2015
API
LCM
Connector Logic
Software Component
CRETA Platform
© 2015 Spazio IT - Soluzioni Informatiche s.a.s.
10
CRETA Platform – LCM
October 2015
API
Actual Comm. Library
Connector Logic
Software Component
Actual Avionics Platform
© 2015 Spazio IT - Soluzioni Informatiche s.a.s.
11
CRETA Platform – LCM
October 2015
Actual Comm. Library
Communication Bridge
Actual Avionics Platform CRETA Platform
LCM
Analyzers
Filters
Loggers
© 2015 Spazio IT - Soluzioni Informatiche s.a.s.
12
LCM
October 2015
Lightweight Communications and Marshalling
© 2015 Spazio IT - Soluzioni Informatiche s.a.s.
13
LCM
“LCM was created for use on MIT's DARPA Urban Challenge vehicle, with development starting during the summer of 2006.”
LCM is publically available at: https://lcm-proj.github.io/
LCM supported languages are: C, C++, C#, Java, Lua, MATLAB, Python
October 2015
© 2015 Spazio IT - Soluzioni Informatiche s.a.s.
14
LCM – Design Goals
Communication– Supports many-to-many
communication.
– No per-network or per-host daemon needed for relaying data
– Each packet transmitted appears on the wire no more than one time
– Minimal latency
– Scales to high bandwidth
Marshalling– Absolute type-safety
– Platform- and language-independence
– Ease of use
FDIR– Does not guarantee
delivery of a particular message.
– Does not guarantee ordering of messages.
October 2015
© 2015 Spazio IT - Soluzioni Informatiche s.a.s.
15
RPC
(the network is transparent)
October 2015
IIOP, DCE/RPC, HTTP/SMTP
Object
Adapter
Client Server
Stub
(Server Rep.)
Skeleton
(Client Rep.)
IDL
WSDL
...
© 2015 Spazio IT - Soluzioni Informatiche s.a.s.
16
RPC
(the network is transparent)
Local call
…
local_foo();
…
Remote call
…
try {remote_foo();
} catch (Local_Remote Exception ex) {
// Something here// … (but what?)}
October 2015
© 2015 Spazio IT - Soluzioni Informatiche s.a.s.
17
RPC
(the network is transparent)
Characteristics
– Local / Remote Exceptions
– Indirect Memory Allocation
– Blocking Calls
– (Stub / Skeleton Binding at Compile Time)
October 2015
© 2015 Spazio IT - Soluzioni Informatiche s.a.s.
18
LCM
(the network is NOT transparent)
October 2015
LCM(SPY) / UDP - Multicast
«Client» «Server»
Marsh./
Unmarsh.
Marsh./
Unmarsh.
LCM
Types
publish msg
to channel
subscr. to channel
receive msg
© 2015 Spazio IT - Soluzioni Informatiche s.a.s.
19
LCM
(the network is NOT transparent)
Local call
…
local_foo();
…
Message publishing…
example_t msg = new example_t();
// … initialize message
try {
lcm.publish("EXAMPLE", msg);
} catch (LocalException ex) {
// Something here}
October 2015
© 2015 Spazio IT - Soluzioni Informatiche s.a.s.
20
LCM
(the network is NOT transparent)
Characteristics
– Local Exceptions
– No Indirect Memory Allocation
– No Blocking Calls
– (Message Types Binding at Compile Time)
October 2015
© 2015 Spazio IT - Soluzioni Informatiche s.a.s.
21
LCM and FDIR
October 2015
© 2015 Spazio IT - Soluzioni Informatiche s.a.s.
22
LCM and FDIR
LCM does not rely on «servers»:
– Supports many-to-many communication.
– No per-network or per-host daemon needed for relaying data
LCM does not guarantee the communication has taken place:
– Does not guarantee delivery of a particular message.
– Does not guarantee ordering of messages.
October 2015
© 2015 Spazio IT - Soluzioni Informatiche s.a.s.
23
LCM and FDIR
Additionally, “LCM provides several tools useful for logging, replaying, and inspecting traffic.
These tools allow developers to quickly identify many of the most common failures. “ and can be used to implement failure detection mechanisms.
October 2015
© 2015 Spazio IT - Soluzioni Informatiche s.a.s.
24
Conclusions
October 2015
© 2015 Spazio IT - Soluzioni Informatiche s.a.s.
25
Conclusions
Complex software systems can be decomposed in a set of interconnected processes.
The fault isolation provided by a set of processes connected by a proper communication infrastructure can be comparable to the one offered by virtual machines and/or containers.
Not relying on central/critical components as well as non relying on particular assumptions / guarantees increases the overall robustness of the system.
The network is not transparent.
October 2015
© 2015 Spazio IT - Soluzioni Informatiche s.a.s.
26
References
http://people.csail.mit.edu/albert/pubs/2010-huang-olson-moore-lcm-iros.pdf
http://lcm.googlecode.com/svn-history/r452/www/reference/lcm/intro.html
October 2015
© 2015 Spazio IT - Soluzioni Informatiche s.a.s.
27
Thank you for your attention
October 2015