M.Vajnar, M. Sojka, P. Píša Czech Technical University in ......Porting ORTE to Android Overview:...
Transcript of M.Vajnar, M. Sojka, P. Píša Czech Technical University in ......Porting ORTE to Android Overview:...
![Page 1: M.Vajnar, M. Sojka, P. Píša Czech Technical University in ......Porting ORTE to Android Overview: – Update Java Native Interface (JNI) wrapper and make it Android compatible –](https://reader035.fdocuments.net/reader035/viewer/2022062612/613ee6dec500cf75ab362f60/html5/thumbnails/1.jpg)
Porting of Real-Time Publish-Subscribe Middleware to Android
M.Vajnar, M. Sojka, P. Píša
Czech Technical University in Prague
RTLWS15, Lugano-Manno
![Page 2: M.Vajnar, M. Sojka, P. Píša Czech Technical University in ......Porting ORTE to Android Overview: – Update Java Native Interface (JNI) wrapper and make it Android compatible –](https://reader035.fdocuments.net/reader035/viewer/2022062612/613ee6dec500cf75ab362f60/html5/thumbnails/2.jpg)
2/23
Distributed applications – problems
![Page 3: M.Vajnar, M. Sojka, P. Píša Czech Technical University in ......Porting ORTE to Android Overview: – Update Java Native Interface (JNI) wrapper and make it Android compatible –](https://reader035.fdocuments.net/reader035/viewer/2022062612/613ee6dec500cf75ab362f60/html5/thumbnails/3.jpg)
3/23
Distributed applications – problems
![Page 4: M.Vajnar, M. Sojka, P. Píša Czech Technical University in ......Porting ORTE to Android Overview: – Update Java Native Interface (JNI) wrapper and make it Android compatible –](https://reader035.fdocuments.net/reader035/viewer/2022062612/613ee6dec500cf75ab362f60/html5/thumbnails/4.jpg)
4/23
Distributed applications – problems
Redundancy
![Page 5: M.Vajnar, M. Sojka, P. Píša Czech Technical University in ......Porting ORTE to Android Overview: – Update Java Native Interface (JNI) wrapper and make it Android compatible –](https://reader035.fdocuments.net/reader035/viewer/2022062612/613ee6dec500cf75ab362f60/html5/thumbnails/5.jpg)
5/23
Distributed applications – problems
Configuration
![Page 6: M.Vajnar, M. Sojka, P. Píša Czech Technical University in ......Porting ORTE to Android Overview: – Update Java Native Interface (JNI) wrapper and make it Android compatible –](https://reader035.fdocuments.net/reader035/viewer/2022062612/613ee6dec500cf75ab362f60/html5/thumbnails/6.jpg)
6/23
Distributed applications – problems
Scaling
![Page 7: M.Vajnar, M. Sojka, P. Píša Czech Technical University in ......Porting ORTE to Android Overview: – Update Java Native Interface (JNI) wrapper and make it Android compatible –](https://reader035.fdocuments.net/reader035/viewer/2022062612/613ee6dec500cf75ab362f60/html5/thumbnails/7.jpg)
7/23
Outline
Data-Centric Publish Subscribe model
Real-Time Publish-Subscribe protocol
ORTE middleware
Android porting
Demo
![Page 8: M.Vajnar, M. Sojka, P. Píša Czech Technical University in ......Porting ORTE to Android Overview: – Update Java Native Interface (JNI) wrapper and make it Android compatible –](https://reader035.fdocuments.net/reader035/viewer/2022062612/613ee6dec500cf75ab362f60/html5/thumbnails/8.jpg)
8/23
Data-Centric Publish-Subscribe application model
![Page 9: M.Vajnar, M. Sojka, P. Píša Czech Technical University in ......Porting ORTE to Android Overview: – Update Java Native Interface (JNI) wrapper and make it Android compatible –](https://reader035.fdocuments.net/reader035/viewer/2022062612/613ee6dec500cf75ab362f60/html5/thumbnails/9.jpg)
9/23
Data-Centric Publish-Subscribe application model
![Page 10: M.Vajnar, M. Sojka, P. Píša Czech Technical University in ......Porting ORTE to Android Overview: – Update Java Native Interface (JNI) wrapper and make it Android compatible –](https://reader035.fdocuments.net/reader035/viewer/2022062612/613ee6dec500cf75ab362f60/html5/thumbnails/10.jpg)
10/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
![Page 11: M.Vajnar, M. Sojka, P. Píša Czech Technical University in ......Porting ORTE to Android Overview: – Update Java Native Interface (JNI) wrapper and make it Android compatible –](https://reader035.fdocuments.net/reader035/viewer/2022062612/613ee6dec500cf75ab362f60/html5/thumbnails/11.jpg)
11/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
![Page 12: M.Vajnar, M. Sojka, P. Píša Czech Technical University in ......Porting ORTE to Android Overview: – Update Java Native Interface (JNI) wrapper and make it Android compatible –](https://reader035.fdocuments.net/reader035/viewer/2022062612/613ee6dec500cf75ab362f60/html5/thumbnails/12.jpg)
12/23
Minimal ORTE application
ORTEInit();d=ORTEDomainAppCreate(0,NULL,NULL,0);ORTETypeRegisterAdd(d,"HelloMsg",NULL,
NULL,NULL,64);p=ORTEPublicationCreate( d, "Example HelloMsg", // Topic "HelloMsg", // Type &instance2Send, // Data buffer TIME(3,0), // Persistance 1, // Strength NULL, // Callback NULL, // Parameters NULL);...instance2Send = 123;ORTEPublicationSend(p);
ORTEInit();d=ORTEDomainAppCreate(0,NULL,NULL,0);ORTETypeRegisterAdd(d,"HelloMsg",NULL,
NULL,NULL,64);s=ORTESubscriptionCreate( d, IMMEDIATE, BEST_EFFORTS, "Example HelloMsg", // Topic/ "HelloMsg", // Type &instance2Recv, // Data buffer &deadline, &minimumSeparation, recvCB, // callback NULL, IPADDRESS_INVALID); // Multicast
void recvCB(const ORTERecvInfo *info, void *instance, void *param) { switch (info->status) { case NEW_DATA: printf("%s\n",instance); break; case DEADLINE: printf("deadline occurred"); break; }}
![Page 13: M.Vajnar, M. Sojka, P. Píša Czech Technical University in ......Porting ORTE to Android Overview: – Update Java Native Interface (JNI) wrapper and make it Android compatible –](https://reader035.fdocuments.net/reader035/viewer/2022062612/613ee6dec500cf75ab362f60/html5/thumbnails/13.jpg)
13/23
RTPS/ORTE internals
![Page 14: M.Vajnar, M. Sojka, P. Píša Czech Technical University in ......Porting ORTE to Android Overview: – Update Java Native Interface (JNI) wrapper and make it Android compatible –](https://reader035.fdocuments.net/reader035/viewer/2022062612/613ee6dec500cf75ab362f60/html5/thumbnails/14.jpg)
14/23
RTPS/ORTE internals
X
X
X
● Dynamic addition/removal of applications ● No single point of failure● Fault tolerant applications
![Page 15: M.Vajnar, M. Sojka, P. Píša Czech Technical University in ......Porting ORTE to Android Overview: – Update Java Native Interface (JNI) wrapper and make it Android compatible –](https://reader035.fdocuments.net/reader035/viewer/2022062612/613ee6dec500cf75ab362f60/html5/thumbnails/15.jpg)
15/23
ORTE Discovery Protocol
![Page 16: M.Vajnar, M. Sojka, P. Píša Czech Technical University in ......Porting ORTE to Android Overview: – Update Java Native Interface (JNI) wrapper and make it Android compatible –](https://reader035.fdocuments.net/reader035/viewer/2022062612/613ee6dec500cf75ab362f60/html5/thumbnails/16.jpg)
16/23
Participant discovery
![Page 17: M.Vajnar, M. Sojka, P. Píša Czech Technical University in ......Porting ORTE to Android Overview: – Update Java Native Interface (JNI) wrapper and make it Android compatible –](https://reader035.fdocuments.net/reader035/viewer/2022062612/613ee6dec500cf75ab362f60/html5/thumbnails/17.jpg)
17/23
Endpoint discovery
![Page 18: M.Vajnar, M. Sojka, P. Píša Czech Technical University in ......Porting ORTE to Android Overview: – Update Java Native Interface (JNI) wrapper and make it Android compatible –](https://reader035.fdocuments.net/reader035/viewer/2022062612/613ee6dec500cf75ab362f60/html5/thumbnails/18.jpg)
18/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++
![Page 19: M.Vajnar, M. Sojka, P. Píša Czech Technical University in ......Porting ORTE to Android Overview: – Update Java Native Interface (JNI) wrapper and make it Android compatible –](https://reader035.fdocuments.net/reader035/viewer/2022062612/613ee6dec500cf75ab362f60/html5/thumbnails/19.jpg)
19/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
![Page 20: M.Vajnar, M. Sojka, P. Píša Czech Technical University in ......Porting ORTE to Android Overview: – Update Java Native Interface (JNI) wrapper and make it Android compatible –](https://reader035.fdocuments.net/reader035/viewer/2022062612/613ee6dec500cf75ab362f60/html5/thumbnails/20.jpg)
20/23
Performance comparison
`
Android 4.0.3 Android 4.3 Oracle Java
● Reliable publisher and subscriber● Publish as fast as possible● Baseline: C publisher, C subscriber
Tim
e to
pub
lish
10k
inte
ger
valu
es
![Page 21: M.Vajnar, M. Sojka, P. Píša Czech Technical University in ......Porting ORTE to Android Overview: – Update Java Native Interface (JNI) wrapper and make it Android compatible –](https://reader035.fdocuments.net/reader035/viewer/2022062612/613ee6dec500cf75ab362f60/html5/thumbnails/21.jpg)
21/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
![Page 22: M.Vajnar, M. Sojka, P. Píša Czech Technical University in ......Porting ORTE to Android Overview: – Update Java Native Interface (JNI) wrapper and make it Android compatible –](https://reader035.fdocuments.net/reader035/viewer/2022062612/613ee6dec500cf75ab362f60/html5/thumbnails/22.jpg)
22/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)
![Page 23: M.Vajnar, M. Sojka, P. Píša Czech Technical University in ......Porting ORTE to Android Overview: – Update Java Native Interface (JNI) wrapper and make it Android compatible –](https://reader035.fdocuments.net/reader035/viewer/2022062612/613ee6dec500cf75ab362f60/html5/thumbnails/23.jpg)
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!