class 2
TRANSCRIPT
Mobile Systems Engineering
1. Introduction
TopicsIntroduction to Mobile SystemsMobile Systems vs Wireless Systems vs
Embedded SystemsMobile ApplicationsSyllabus, Evaluation and Class Policies
Evolution of the Computing Paradigm
Evolution of the Computing Paradigm
1.Early computers 2.Punch cards 3.Command Line
4. First PC 5. SmartPhone
Evolution of the Computing Paradigm
Evolution of the Computing Paradigm
Mobile Devices
SmartphonesTabletsNetbooksLaptopsE-book readersPDAs
Mobile DevicesThe Players:Google’s AndroidApple’s iPhoneRIMMicrosoftNokia Palm
What is different about Mobile Computing??Is it same as Embedded computing?Is it a special case of Embedded computing?Is it just Wireless communications?
Mobile Systems in perspective
• Mobile Systems = Wireless communication + Computing• Wireless Communication - Is a distinguishing aspect of mobile systems – without wireless, mobile systems can’t communicate (voice or data). Imagine a cell phone without wireless. - Wireless communication is used between fixed devices also that need not necessarily be mobile. For example, home networking where a TV (non mobile device), Audio system (non- mobile), laptop (mobile), Desktop (non mobile), Washing machine etc may be networked.
Embedded Systems - Specialized for the application it caters to as against being general purpose, Often resource (CPU power, memory etc) constrained, characterized by special hardware and associated system software - Need not be mobile and hence may have wired connectivity (eg printer/scanner using a USB)
Mobile Systems in perspective
Applications1. Mobile centric applications – those specialized for mobile scenarios – for example, location dependent services, cell phone telephony based services
2.Applications that may be classified as personal and micro applications – for example, applications that assist in personal finance management, personal diary etc
3. Application architectures specialized for mobile – mobile application design patterns. For example, consider the intersection of cloud and a mobile device where the cloud serves as a backup medium to store data from the mobile device. Another example is that complex computations can be offloaded to cloud, while the rich multimedia capabilities of Smartphones/ Tablets can be leveraged to provide a rich user experience to the client applications
Characteristics of a Mobile SystemPortable: Mobile systems can be carried (In this discussion we
consider the devices that are carried by people and exclude devices such as Robots or missiles that can move without needing to carried by humans)
- Weight, size, form factor, heat dissipation- Resource constraints
Battery Powered : (This discussion is focused on devices that are portable and have a battery that is portable as against car batteries that are huge)
- System software to control energy optimization- Processor support for energy optimization- Application architecture driven optimization- Optimization in communication systems
Characteristics of a Mobile SystemWireless connected
- Different protocols result in different speeds (hence different power requirements), different error rates or reliability and routing requirements
Limitations:Bandwidth: Insufficient bandwidth and hence mobile
internet access is generally slower than wired accessSecurity: Dependency on public networksPower consumption: Dependent on batteryTransmission interferences: Terrain,Weather..
Why Mobile Applications?Most computers will be portableNeed to access network – need wirelessMany people will be mobileConsider air travellers inside an aircraft. This is an example
of a mobile network moving at high speed above the ground – wireless communication is the only mode of data communication.
User Mobility: Refers to a user who has access to same or similar telecommunication services at different places – services follow the user
Device Portability: The communication device moves (with or without the user). Many mechanisms in the network inside and outside the device need to make sure that the communication is still possible while on the move.
The term wireless is used with regard to the devices. This only refers to a way of accessing the network or other communication partners – transmission of electromagnetic waves through “air”
Communication PatternsWireless networking and mobile computing
are related but not identicalFixed and Wired
Eg DesktopMobile and Wired
Eg, laptops carried from one room to another and connected to wired networkFixed and Wireless
Eg, printers connected through wireless, Washing machines that can be
connected through wirelessMobile and Wireless
Eg: Cell phones
ApplicationsVehiclesNomadic userSmart mobile phoneInvisible computingWearable computingIntelligent house or officeMeeting room/conferenceTaxi/Police/Fire squad fleetService workerLonely wolfDisaster relief and Disaster alarmGamesMilitary / Security
Scope of Mobile Systems
Application ArchitectureWork within constraints
- Design Patterns that handle the constraints effectively- Constraints in CPU speed, memory, persistent storage,
network speed, network reliability, power consumption, screen size, input methods
- Push versus pull to handle transmission power, Use the wake_lock effectively, move heavy computation to the server, use the local database effectively to handle network unreliability, backup of device data on server, integration of cloud and device, content adaptation,
- Perform the right trade offs in building applicationsTake advantage of devices
- Devices: Camera, GPS, Compos, Accelerometer, Audio/Speaker/microphone
- New gestures as input/output (eg: multitouch, accelerometer)- New class of applications (mobile video conferencing,
connectivity to social networking)
Build mobility specific and personalized applications- New application scenarios (eg, location aware services –
map/position related services, social applications)
System ArchitectureSystem
Handle constraints: Bionic library (as against a complete libc – make a
measurement of bionic size versus full libc size), utilities and tools that are subset of Linux, DVM to effectively use memory/power, Power management, Network management to take care of reliability and low bandwidth aspectsSupport new devices: Consistent model for accessing
devices, systemguarantees on availability of devices, Interfaces between
devices, libraries and applications, device specific events (eg, camera_ready)Support different wireless protocolsSupport detection of mobility and changes to the
environment
Mobile Operating System ...also known as MobileOS, Handheld OS or Mobile Platform, is the operating system that controls a mobile device.
Why do we need a mobile OS? How do current mobile OSs compare?
Demands from a Mobile OS Short start-up time Quick response to user actions Portable Power efficient Extensible
Characteristics of a Mobile OS Multitasking system – ability to run multiple applications simultaneously, respond to asynchronous events
Memory protection – secure environment for running applications without compromising user privacy and data security
Power conscious Extensible – can run third party applications
Support for wide variety of communication channels
Comparison of Mobile Platforms
Multi-tasking
Java support
Flash support
Browser License
Android Yes Yes Yes WebKit Open source
Blackberry Yes Yes Yes Proprietary Proprietary
iPhone Yes No No WebKit Semi-proprietary
WinMobile Yes Yes Yes IE Proprietary, with partial sources
Comparison of Mobile Platforms - Development Tools
Primary language(s)
Debugger IDE Availability
Android Java (limited C/C++)
ADT Eclipse plugin
ADT Eclipse plugin
Free
Blackberry Java Integrated in JDE
JDE Free
iPhone Objective-C Integrated in XCode IDE
XCode Free on Intel-Mac, fee-based deployment
WinMobile C/C++, C#, VB.Net
Yes Visual Studio, eVC++
Commercial (Visual Studio), free (eVC++)