Porting VNC to Mobile Platforms



Similar documents
Mobile Testing That s Just a Smaller Screen, Right?

Building Mobile Applications Creating ios applications with jquery Mobile, PhoneGap, and Drupal 7

Statement of Morgan Reed. Executive Director. The Association for Competitive Technology

Developing Applications for ios

A Review of Different Comparative Studies on Mobile Operating System

RDM+ Desktop for Windows Getting Started Guide

Native v HTML5 An Event Planner s Primer

Cell Phone Operating Systems

Navigating the Mobile App Development Landscape

platforms Android BlackBerry OS ios Windows Phone NOTE: apps But not all apps are safe! malware essential

Mobile web apps: The best option for business? A whitepaper from mrc

Enterprise Mobile Application Development: Native or Hybrid?

Smartphone Enterprise Application Integration

Tablets in Data Acquisition

SmartWatch Eco/Eco Compact

GoToMyPC reviewer s guide

Mobile Phones Operating Systems

Here s how to choose the right mobile app for you.

VNC User Guide. Version 5.3. December 2015

Device Independence - BYOD -

Cross-Platform Mobile Apps Solution

Special Report. Choosing the right mobile device platform for your business

CHOOSING CLIENT PLATFORMS IN THE PC+ ERA

Technology Services...Ahead of Times. Enterprise Application on ipad

esarinformation Systems Simplifying your Technology Mobile Applications Development Profile

Information Systems. Connecting Smartphones to NTU s System

Sponsored by: Speaker: Brian Madden, Independent Industry Analyst and Blogger

Top 10 Questions to Ask when Choosing a Secure File Transfer Solution

How to Use? SKALICLOUD DEMO

webmethods Mobile Designer June 2011

Mobile Application Development

LogMeIn Hamachi. Getting Started Guide

History of Mobile Applications

A Parents Guide to ConnectSafely.org saferinternet.org.uk

2X SecureRemoteDesktop. Version 1.1

Take full advantage of IBM s IDEs for end- to- end mobile development

VNC User Guide. Version 5.0. June 2012

Mobile Software Development Services

Developing and deploying mobile apps

Get the most out of your Salesgenie experience. Get the most out of your Salesgenie experience

Integrating Mobile into Your Cross- Platform Strategy with Qt

ipad, a revolutionary device - Apple

Development of mobile applications for multiple platforms

Mobile Development Frameworks Overview. Understand the pros and cons of using different mobile development frameworks for mobile projects.

Systems Manager Cloud Based Mobile Device Management

Example of Standard API

Mastering Mobile Web with 8 Key Rules. Mastering Mobile Web with 8 Key Rules

Fast remote data access for control of TCP/IP network using android Mobile device

The Desktop Sharing Handbook. Brad Hards

Discovering Computers

An introduction to Hosted SQL database applications

Real World Considerations for Implementing Desktop Virtualization

INDEX. Google Android Phone OS application and operation 2. Blackberry Operation System(Software Installation and Operation) 13

Mobile App Infrastructure for Cross-Platform Deployment (N11-38)

Retool your HTML/JavaScript to go Mobile

RhoMobile Suite. Develop applications for the next generation of business mobility

Setting up RDP on your ipad

and installation Enable Choose Enable, that s OK. Port Port for Mobile monitor, default at 34599,if you want to remote view the DVR by

FREE Small Business Advisory Guide: The 7 Most Costly Mistakes Companies Make When Choosing A New Phone System And How To Avoid Them

Here is a demonstration of the Aqua Accelerated Protocol (AAP) software see the Aqua Connect YouTube Channel

How To Protect The Agency From Hackers On A Cell Phone Or Tablet Device

Comparative Study of Different Mobile Operating Systems

Mobile Device Strategy

11 Best Practices for Mobile Device Management (MDM)

Finding the Perfect Cell Phone By: Jacob Patrick

Mobile Device Management and Security Glossary

Mobile Devices and Systems Lesson 02 Handheld Pocket Computers and Mobile System Operating Systems

Install and Configure SQL Server Database Software Interview Questions and Answers

Mobilozophy L.L.C. All Rights Reserved

Intel vpro. Technology-based PCs SETUP & CONFIGURATION GUIDE FOR

Enterprise Mobility Report 06/2015. Creation date: Vlastimil Turzík

Mobile Device Manual for 3G DVRs

Exchange ActiveSync Configurations for GroupWise

GUI/Custom GUI, SIP Stack, Telephony, DB, Sockets, Bluetooth, QT.

Whitepaper. Trans. for Mobile

Aqua Accelerated Protocol (AAP) For Mac User Manual

How to Choose Right Mobile Development Platform BROWSER, HYBRID, OR NATIVE

How To Create A Bada App On Android (Mainfest) On Android And Get A Download Of Bada (For Android) On A Microsoft Gosu 2.5 (For Black

Chapter 5: System Software: Operating Systems and Utility Programs

Mobile Development Discovery Document

Exchange 2010 ActiveSync: Connection

7. Mobile Phone Support

BlackBerry Smartphone Application Development

SYST35300 Hybrid Mobile Application Development

Transcription:

Porting VNC to Mobile Platforms Technical and Political Challenges Dr Andy Harter

What is VNC? The VNC viewer application takes remote control of a device using the VNC server application on the device Views the screen Controls the keyboard and mouse RFB is the protocol used by VNC to communicate between the VNC viewer and VNC server 2

VNC a remote access standard RFB v3 protocol specification freely available RFC published Source code and executables available from RealVNC web site Over 100 million downloads Range of derived open source implementations available Embedded in a range of platforms Apple remote desktop Linux distributions Intel 2010 i5 & i7 chipsets 3

What is VNC Mobile? Controlling PCs from phones... 4

What is VNC Mobile? But also controlling phones from PCs! 5

Why remote access a mobile? Help! Helpdesks Fix Automotive Testing 6

What are phones? Phones usually run a modern multi tasking operating system with memory protection and often even demand paging Some are actually based on popular desktop operating systems e.g. Linux or versions of Windows But they usually expose a smaller set of APIs to application developers: stronger security Challenge: How do you get from having a good solid codebase, to having a good solid codebase which users are running on phones? 20% of the effort is writing the code; 80% of the effort is getting it tested and deployed on phones. 7

#1: what platforms? Figure out requirements Challenges #2: your code Write code #3: testing Test code Sign code Get app store approval Ship! #4: distribution #5: politics! 8

Challenge #1: which platform? What platforms do you choose? 9

VNC viewer platforms Requirements: multi touch and a big screen 10

VNC server platforms Requirements: multi tasking and flexible APIs 11

Thorns in our side Everybody wants VNC servers for iphone and Android but they don t have the APIs we need Next version of Windows Mobile doesn t have multi tasking: we can t write a VNC server. Everybody wants viewers for BlackBerry but they have small screens and no multi touch 12

Challenge #2: your code RealVNC has the most cross platform codebase in the world. Runs on virtually every desktop OS. So you d think it would be easy to port to mobiles...? 13

Which language? Platform UI Back end Java Java or C/C++ Java Java C/C++ C/C++ C/C++ C/C++ Objective C C/C++/Objective C CLR (e.g. C#) CLR (e.g. C#) At least three code-bases needed etc. 14

Java Code Issues Java? Fast these days on PCs. Still not on phones! Android Still interprets each instruction one at a time Replace with native code or wait until they fix Android! BlackBerry Also slow but no chance to use native code Abandon doing our own (a) image compression and (b) encryption; find a way to use whatever OS facilities are provided since they call into native code 15

Native (C/C++) code issues Faster But limited C/C++ libraries Symbian No global variables Weird APIs and memory management techniques Symbian & Android No C++ exceptions Windows Mobile Subset of normal Windows APIs All of them Endianness issues Different ways of handling asynchronous events Limited set of APIs available, for greater security Porting your existing codebase is probably going to be hard, especially if you use C++ 16

Performance & RAM There isn t much RAM. Deal with it. How? How you allocate... Memory leaks? What if the system runs out of RAM? Implication? Symbian Cleanup stack Be ready for each allocation to fail. Keep track of all objects at all times. If anything fails at any point, your program must remain in a consistent state. Or else. Programs must not leak. Ever. An allocation will fail. The perfect program will gracefully degrade and all will be well. No need to kill anything. You the programmer must be perfect (unrealistic!) Code bloat to track each allocation (~10 lines of code for each) Android Memory over commit Dude, don t worry. All your allocations will succeed. Don t be silly, of course they do. The system may suddenly kill a process. Not at allocationtime, mind you: pages of memory are only actually allocated when they are first used. So some process will get killed at some arbitrary point when somebody first uses a variable. You can t build a perfectly predictable system, so don t pretend. See what happens, it s probably fine most of the time. 17

You need a new one. Porting desktop user interfaces just won t work. Completely different user interface APIs on each platform Really high expectations from the users on some platforms especially iphone months of work required for iphone viewer user interface. User interface 18

Challenge #3: testing There are simply lots, and lots, and lots, of phones. And they re all annoyingly different. We test each release on 50+ models Each one takes several days 19

Challenge #4: distribution Getting your application into the user s hands. Varies across the different platforms. Examples: Symbian Signing Nokia Ovi store (optional) Android market (optional) itunes App Store (mandatory!) Customer s phone 20

Who decides what applications are OK? Who buys phones from the phone manufacturers? End users? Wrong! Majority bought by network operators, then sold to end users Network operators specify how the phones should behave How does this affect mobile phone apps? Is British Gas exciting? (Market capitalisation 16b) Is Vodafone exciting? (Market capitalisation 78b) Network operators don t like to think of themselves as mere utilities, but instead as exciting content delivery providers, to keep their shares price up So they really care about apps: they ultimately wield control 21

Distribution: Symbian Still the leading mobile operating system in Europe All applications must go through Symbian Signed procedure All Symbian APIs divided into sets e.g. for network communication, GPS tracking etc. Specify what sets you need and why Some sets of APIs only available with manufacturer/operator permission You submit your application binaries to Symbian Signed They check your application works, and that your justifications stack up, and cryptographically sign your binaries Without that signature, your application can t be installed on a phone. A problem for VNC servers: We need to capture the screen to send to a VNC viewer Operators want to show DRM locked down video without anyone being able to capture it We have workarounds... for now 22

Distribution: Android Very open No signing/approval: you can publish your code however you like But for that reason there are no risky APIs: network operators wouldn t allow developers total unrestricted access Our problem: no way to grab a screenshot of an Android phone 23

Distribution: iphone Apple had a big battle with the network operators and gained control. Go Apple! However, Apple are pretty opinionated themselves: They can (and do) reject apps submitted to the app store Example 1: two weeks ago they forbade anything written in crossplatform toolkits like Adobe Flash Example 2: no porn. Oh, unless it s from big lucrative pornographers Example 3: background apps... Apple s ipad war on Adobe and Flash The Observer, 18 th March 24

iphone Background Apps iphone OS 3: no background apps. iphone OS 4: allowed but only if you fit into one of Apple s seven approved reasons to multi task: Music Voice over IP Location Finishing off downloads Notifying of e mails etc. Err, that s about it. RealVNC may be able to offer a server for the iphone? RealVNC iphone viewers lose their connections when they go to the background 25

Challenge #5: politics! Creating a VNC server for a mobile phone is really tough: We need to grab the screen and we need to control the phone user interface. These APIs are on all desktop platforms but not reliably available on any mobile platform. We rely on contacts and customers. Network operators want to sell to enterprises. Enterprises want to manage their devices from central helpdesks. So we sell to helpdesk operators, and they help us get access to the device APIs. We re going to be producing some cool exciting apps to persuade phone vendors that all this is worth doing. Watch this space! 26

Politics, how to play the game Android: submit lots of patches into opensource project BlackBerry: pay lots of money to be part of their Alliance programmes S60: hire lots of ex Nokia engineers Windows Phone 7: no good plan yet. Their decision not to allow multi tasking seems crazy and we hope they realise that! 27

VNC Mobile Viewers But there s good news! Simple applications like a VNC Viewer are possible on any of these platforms. So long as you don t need multitasking or special APIs, it s quite easy to produce and distribute such things 28

Summary If you plan to produce mobile applications, don t underestimate the time & effort needed to get them tested and published Don t rely on multitasking. Don t rely on having any specific OS APIs. And... You could make money Android Market Developer keeps 70% Development easy Fewer customers? iphone App Store Developer keeps 70% Development harder More customers 29

Summer internships available! Graduate jobs available! careers@realvnc.com 30