porting of real time publish subscribe middleware to
play

Porting of Real-Time Publish-Subscribe Middleware to Android - PowerPoint PPT Presentation

M.Vajnar, M. Sojka, P. Pa 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


  1. M.Vajnar, M. Sojka, P. Píša Czech Technical University in Prague Porting of Real-Time Publish-Subscribe Middleware to Android RTLWS15, Lugano-Manno

  2. Distributed applications – problems 2/23

  3. Distributed applications – problems 3/23

  4. Distributed applications – problems Redundancy 4/23

  5. Distributed applications – problems Configuration 5/23

  6. Distributed applications – problems Scaling 6/23

  7. Outline  Data-Centric Publish Subscribe model  Real-Time Publish-Subscribe protocol  ORTE middleware  Android porting  Demo 7/23

  8. Data-Centric Publish-Subscribe application model 8/23

  9. Data-Centric Publish-Subscribe application model 9/23

  10. 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

  11. 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

  12. 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

  13. RTPS/ORTE internals 13/23

  14. RTPS/ORTE internals X X X ● Dynamic addition/removal of applications ● No single point of failure ● Fault tolerant applications 14/23

  15. ORTE Discovery Protocol 15/23

  16. Participant discovery 16/23

  17. Endpoint discovery 17/23

  18. 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

  19. 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

  20. 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

  21. 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

  22. 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

  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