M.Vajnar, M. Sojka, P. Píša Czech Technical University in Prague Porting of Real-Time Publish-Subscribe Middleware to Android RTLWS15, Lugano-Manno
Distributed applications – problems 2/23
Distributed applications – problems 3/23
Distributed applications – problems Redundancy 4/23
Distributed applications – problems Configuration 5/23
Distributed applications – problems Scaling 6/23
Outline Data-Centric Publish Subscribe model Real-Time Publish-Subscribe protocol ORTE middleware Android porting Demo 7/23
Data-Centric Publish-Subscribe application model 8/23
Data-Centric Publish-Subscribe application model 9/23
How to implement this? RTPS. Real-Time Publish-Subscribe protocol OMG standard – interoperability wire protocol Transport independent part Transport specific part (UDP => control of timing) Implementation freedom – Simple implementation, high network bandwidth demand – Complex implementation, optimized network bandwidth. Utilizes multicast communication (one to many communication) Offers best-effort and reliable communication CDR encoding (endianing) Parts – Data exchange protocol – Discovery protocol 10/23
ORTE – Open Real-Time Ethernet Our open-source implementation of the RTPS protocol One of the first few implementations that supported standardization Uses custom API instead of the DDS API (another OMG standard) C language, based on POSIX IDL compiler to generate (de)serialization functions Suported platforms – Linux, FreeBSD, Mac OS X, Solaris – Windows (MinGW, Cygwin, ReactOS) – RTEMS – BlackBerry – Android 11/23
Minimal ORTE application O R T E I n i t ( ) ; O R T E I n i t ( ) ; d = O R T E D o m a i n A p p C r e a t e ( 0 , N U L L , N U L L , 0 ) ; d = O R T E D o m a i n A p p C r e a t e ( 0 , N U L L , N U L L , 0 ) ; O R T E T y p e R e g i s t e r A d d ( d , " H e l l o M s g " , N U L L , O R T E T y p e R e g i s t e r A d d ( d , " H e l l o M s g " , N U L L , N U L L , N U L L , 6 4 ) ; N U L L , N U L L , 6 4 ) ; s = O R T E S u b s c r i p t i o n C r e a t e ( p = O R T E P u b l i c a t i o n C r e a t e ( d , d , I M M E D I A T E , " E x a m p l e H e l l o M s g " , / / T o p i c B E S T _ E F F O R T S , " H e l l o M s g " , / / T y p e " E x a m p l e H e l l o M s g " , / / T o p i c / & i n s t a n c e 2 S e n d , / / D a t a b u f f e r " H e l l o M s g " , / / T y p e T I M E ( 3 , 0 ) , / / P e r s i s t a n c e & i n s t a n c e 2 R e c v , / / D a t a b u f f e r 1 , / / S t r e n g t h & d e a d l i n e , N U L L , / / C a l l b a c k & m i n i m u m S e p a r a t i o n , N U L L , / / P a r a m e t e r s r e c v C B , / / c a l l b a c k N U L L ) ; N U L L , . . . I P A D D R E S S _ I N V A L I D ) ; / / M u l t i c a s t i n s t a n c e 2 S e n d = 1 2 3 ; O R T E P u b l i c a t i o n S e n d ( p ) ; v o i d r e c v C B ( c o n s t O R T E R e c v I n f o * i n f o , v o i d * i n s t a n c e , v o i d * p a r a m ) { s w i t c h ( i n f o - > s t a t u s ) { c a s e N E W _ D A T A : p r i n t f ( " % s \ n " , i n s t a n c e ) ; b r e a k ; c a s e D E A D L I N E : p r i n t f ( " d e a d l i n e o c c u r r e d " ) ; b r e a k ; } } 12/23
RTPS/ORTE internals 13/23
RTPS/ORTE internals X X X ● Dynamic addition/removal of applications ● No single point of failure ● Fault tolerant applications 14/23
ORTE Discovery Protocol 15/23
Participant discovery 16/23
Endpoint discovery 17/23
Android Android is a Linux-based operating system developed by Google It runs on devices ranging from mobile phones and tablets to home media centers and digital cameras Applications developed in Java or C/C++ using Google toolkits – Android Software Development Kit – Java – Android Native Development Kit – C/C++ 18/23
Porting ORTE to Android Overview: – Update Java Native Interface (JNI) wrapper and make it Android compatible – Fix bugs that have not demonstrated themselves under the Oracle's VM – Add support for Android build system – Make Java version of ORTE Manager application to overcome problems with execution and termination of native processes 19/23
Performance comparison Time to publish 10k integer values ` Android 4.0.3 Oracle Java Android 4.3 ● Reliable publisher and subscriber ● Publish as fast as possible ● Baseline: C publisher, C subscriber 20/23
Future development Make the ORTE compliant with the latest RTPS standard – Data with key • New type of data objects, that allows to distribute a set of data instances under a single topic • The key is used to distinguish between instances – Discovery protocol • Manager is replaced with the Simple Participant Discovery Protocol and the Simple Endpoint Discovery Protocol integrated into an user application – Data fragmentation • Allow a fragmentation of big data instances and sent them as multiple messages. Security 21/23
Demo Application for remote control of a robot Monitors robot's state (battery voltage, speed vector, output of Laser Range Finder) Controls robot's motion (direction and speed) 22/23
Conclusion ORTE can simplify both development and deployment of distributed applications We have successfully ported the ORTE library to Android http://orte.sourceforge.net/ Thank you! 23/23
Recommend
More recommend