1、Mobile Middleware Course Mobile Platforms Sasu Tarkoma,Contents,Overview Platforms Research Systems Summary,Mobile Platforms,Collections of central services and libraries with both reactive and proactive functions APIs typically logically centralized Distributed between elements of the environment M
2、ulti-tier client-server Peer-to-peer Hybrids The platform running on the mobile terminal and the characteristics of the device determine how service is rendered for the end user Server side scalability can be achieved by using traditional solutions: clusters, caching, geographical distribution, load
3、 balancing, data centers,Challenges,Fragmentation is a major problem Different types of fragmentation device-level fragmentation standard fragmentation implementation fragmentation Security is also a problem Sandboxed environments and privileged operations require certification Certification is diff
4、icult for developers Current trend is towards application stores and more lightweight certification processes,Examples,WAE Java ME Symbian MAEMO / MeeGo Android Pervasive Computing Middleware Spice Fuego,WAE,Wireless Application Environment (WAE) A suite of protocols and specifications for optimizin
5、g data transfer for wireless communication WAP stack Focus on binary transmission Protocols WSP (Wireless Session Protocol) HTTP replacement, “compressed” WTP (Wireless Transaction Protocol) Request/response, more efficient than TCP WTLS (Wireless Transport Layer Security) Based on TLS, may not be e
6、nd-to-end with a gateway WDP (Wireless Datagram Protocol) UDP replacement,Client,Web Browser,Server,HTTP Server,CGI,Gateway,Encoders Decoders,encoded request,encoded response,request,response,Protocol Gateways,wireless,Web Access,Data transformation WAP gateway performs data transformation between W
7、ML (or XHTML) and HTML Data compression Technique are used for dealing with images and other graphics Adaptability User profile and device characteristics are stored in the WAP gateway Security Secure Enterprise Proxy (SEP) using 128-bit encryption in WAP 1.2 Service discovery and mobility support W
8、APs “walled garden” WAP gateways are provided by ISP such as AOL,Comparison,Transport Layer (WDP,UDP),Bearers: SMS,CDMA,Security Layer (WTSL),Transaction Layer (WTP),Session Layer (WSP),WAE,Other,WAE: current status,WAP Forum now in OMA (Open Mobile Alliance) WAP 2.0, is a re-engineering of WAP usin
9、g a cut-down version of XHTML with end-to-end HTTP Gateway and custom protocol suite is optional. WAP used by many handsets 1.2 version introduced WAP Push (typically using an SMS message) Typically versatile networking stacks with also IPv6 support,Java Micro Edition (Java ME),Java for consumer ele
10、ctronics and embedded devices A virtual machine and a set of APIs Configurations and profiles Configurations two-low level APIs and optimized VMs CDC, CLDC Profiles API specification on top of a configuration for complete runtime CLDC: MIDP CDC: Foundation, Personal Basis, Personal Profiles defined
11、using Java Community Process (JCP),Java Editions,Java Card, which allows small Java-based applications to be executed on smart cards Java ME (Micro Edition, formerly J2ME), which specifies several different profiles,collections of librariesfor devices that are sufficiently limited that it is not fea
12、sible to support the full Java platform on them. Java SE (Standard Edition), which is the platform for general purpose desktop PCs. Java EE (Enterprise Edition), which includes the Java SE and a number of additional APIs for multi-tier client-server enterprise applications.,Servers & enterprise comp
13、uters,Servers & personal computers,High-end PDAs TV set-top boxes Embedded devices,Mobile phones& entry-level PDAs,Smart cards,Optional Packages,Java 2 Platform, Enterprise Edition (J2EE),JVM,Optional Packages,Java 2 Platform, Standard Edition (J2SE),JVM,Optional Packages,Personal Profile,Personal B
14、asis Profile,Foundation Profile,JVM,CDC,Optional Packages,MIDP,CLDC,KVM,Java Card,Card VM,Java Platform, Micro edition (Java ME),Profile (Device-family specific classes,Vendor-specific Classes (OEM),Optional Packages,Applications,Configuration,Native Operating System,Device/Hardware,MIDlet lifecycle
15、,MIDlets follow a specific lifecycle Paused Active Destroyed. While creating the MIDlet, the runtime system calls the constructor of the MIDlet class MIDlets constructor cannot access the Display. When the application receives focus startApp() is executed. Application then should set the desired dis
16、play by calling Display.getDisplay(this).setCurrent() method. When the application loses the focus, the method pauseApp() is called. When paused, the display is not active and it is not shown to the user. While paused, all timers and threads are still running. The application can call setCurrent() t
17、o indicate the screen that should be presented when returning from the Paused state. The method destroyApp() is called when the application is being destroyed.,Destroyed,New,Finished,Active,Paused,startApp(),pauseApp(),destroyApp(),destroyApp(),destroyApp(),In case of exception,Important JSRs,75 Fil
18、e Connection and PIM 82 Bluetooth 120 Wireless Messaging API (WMA) 135 Mobile Media API (MMAPI) Audio, video, multimedia 172 Web Services 177 Security and Trust Services 179 Location API 180 SIP API 184 Mobile 3D Graphics 185 Java Technology for the Wireless Industry (JTWI) General 205 Wireless Mess
19、aging 2.0 (WMA) 211 Content Handler API 226 SVG 1.0 229 Payment API 234 Advanced Multimedia Supplements (AMMS) MMAPI extensions 238 Mobile Internationalization API 239 Java Bindings for the OpenGL ES API 248 Mobile Service Architecture General 256 Mobile Sensor API 287 SVG 2.0,MSA 248 for CLDC,http:
20、/ 3.0,MIDP 3 specified in JSR 271 will specify the 3rd generation mobile APIs. AMS (Application Management System) Multitasking Provisioning and OTA Shared libraries Security and access control Service framework Inter-MIDlet communication User Interface improvements A key design goal of MIDP3 will b
21、e backward compatibility with MIDP2 content,CDC Technology,Connected Device Configuration (CDC); JSR 36, JSR 218 Foundation Profile, (FP); JSR 46, JSR 218 Personal Basis Profile, (PBP); JSR 129, JSR 217 Personal Profile, (PP); JSR 62, JSR 216 J2ME RMI Optional Package, (RMI OP); JSR 66 JDBC Optional
22、 Package for CDC/Foundation Profile API; JSR 169 Java TV API; JSR 927 Java Secure Socket Extension for Connected Device Configuration (JSSE),Symbian,OS for handheld devices with limited resources User interface framework APIs (C+) Tools Operating System Pre-emptive, multitasking, multithreading, mem
23、ory protection Event-based, active objects Memory conservation, reliability, CPU optimizations,Software Components,Kernel Manages and controls access to hw Hw-supported privileges, kernel mode Application Program with a user interface Runs in user mode in its own process Server Program without a use
24、r interface Manages resources, provides interface to clients File server, window server, comms, Engine Application part that manipulates data, typically separate DLL,Key layers,The Symbian OS System Model contains the following layers: UI Framework Layer. Application Services Layer. Java ME. OS Serv
25、ices Layer: generic OS services, communications services. multimedia and graphics services, connectivity services. Base Services Layer. Kernel Services and Hardware Interface Layer.,Symbian OS 9.x,Recently, in Symbian OS 9.x, most applications must be signed using a centralized process provided by S
26、ymbian Ltd. in order to be installable and executable on a mobile phone. An unsigned applications have very limited features and at least in theory cannot perform harmful actions. One motivation for application signature process, called Symbian Signed, is to improve mobile phone security by preventi
27、ng the installation and execution of unknown and possibly hazardous programs. Several viruses and trojan horse programs have been developed for the OS, for example Cabir, which have caused some concerns for the trustworthiness of mobile software and prompted a number of anti-virus products for mobil
28、e phones.,WebKit for S60,The Nokia Web Browser is based on the S60WebKit WebKit contains the WebCore and JavaScriptCore components that Apple uses in its Safari browser. Based on KHTML and KJS from KDEs Konqueror open source project, this software offers improvements inWeb site usability on smartpho
29、nes through the re-use of an existing desktop rendering engine that has been developed and optimized by a large open source community over many years. The Nokia Web Browser supports Dynamic HTML, AJAX applications, and W3Cs XHTML 1.0, DOM, CSS and SVG-Tiny. Other supportedWeb standards include SSL a
30、nd ECMAScript; and Netscape style plug-ins such as Flash Lite and audio.,Windows Mobile,Windows Mobile 6 was released by Microsoft at the 3GSM World Congress 2007 and it comes in three flavours standard version for smartphones a version for PDAs with phone functionality a classic version for PDAs wi
31、thout phone features. Based on the Windows CE 5.0 operating system and has been designed to integrate with Windows Live and Exchange products. Software development for the platform is typically done using Visual C+ or .NET Compact Framework. When native client-side functionality is not needed, serve
32、r-side code can be used that is deployed on a mobile browser, such as the Internet Explorer Mobile bundled with Windows Mobile. Windows Mobile 7 was announced in 2010,Compact Framework,The .NET Compact Framework is a subset of the .NET Framework and shares many components with the desktop software d
33、evelopment environment. The framework includes optimized Common Language Runtime (CLR) a subset of the .NET Framework class library, which supports features such as Windows Communication Foundation (WCF) and Windows Forms. It also contains classes that are designed exclusively for the .NET Compact F
34、ramework. A platform adaptation layer exists between Windows CE and the common language runtime mapping the services and device interfaces required by the CLR and Framework onto Windows CE services and interfaces. The expectation is that managed components developed using .NET languages, such as C#,
35、 are used to create the applications. It is also possible to use the Win32 API with .NET CF, which allows directly to access OS features.,Runtime,The .NET Compact Framework CLR is made up of the following three component: class libraries execution engine platform adaptation layer The purpose of the
36、class libraries is to provide a basic set of classes, interfaces, and value types the foundation for developing applications in .NET. The execution engine is the core component of the CLR. It provides the fundamental services needed for executing managed code. The execution engine includes component
37、s such as a JIT compiler, a class and module loader, and a garbage collector The PAL layer maps calls from the execution engine to the functions of the underlying operating system.,Symbian port of .NET CF,The main differences observed in the porting process were the following: A C+ dialect that rede
38、fines basic language structures. No writable global and writable static variables allowed in DLLs. Extensively used client/server model that, for example, implies constraints for accessing file and networking functions. Event-driven programming model with a focus on non-preemptive multitasking. Symb
39、ians error handling and cleanup model.Concepts from the Unix/Windows world such as environment variables as well as several file and networking functions are missing.,Phone Hardware / Symbian Device Emulator,Native Symbian C+,Applications,3rd Party .NET Libraries,Red Five Labs Class Libraries,Red Fi
40、ve Labs Runtime,.NET CF Apps,S60 / UIQ UI,Symbian OS & Native C+ Libraries,.NET Compact Framework on Symbian OS,iPhone,The iPhone OS is a mobile operating system developed by Apple Inc. for their iPhone and iPod touch products. The OS is derived from Max OS X and uses the Darwin foundation. Darwin i
41、s built around XNU, a hybrid kernel that combines the Mach 3 microkernel, various elements of Berkeley Software Distribution (BSD) Unix, and an object-oriented device driver API (I/O Kit). The iPhone OS is based on four abstraction layers, namely the Core OS layer, the Core Services layer, the Media
42、 layer, and the Cocoa Touch layer.,iPhone OS,The iPhone OSs user interface is based on multi-touch gestures. Interface control elements consist of sliders, switches, and buttons. Interaction with the OS includes gestures such as swiping, tapping, pinching, and reverse pinching. Additionally, using i
43、nternal accelerometers, rotating the device on its y-axis alters the screen orientation in some applications.,GUI (“Aqua”),Hardware,API,Classic,Cocoa,BSD,Quick- time,Quartz,OpenGL,PrintCore,.,Application Services,Core Services,Core foundation,Core services,non-GUI API.,System utilities,Kernel (“xnu”
44、),File systems,Networking NKE,POSIX,1 / 0 kit,Drivers,Java,JRE,JVM,Carbon,Carboncore,Core OS (“Darwin”),iPhone Events,Source: http:/ I,Open Source development platform for Nokia Internet Tablets and other Linux-based devices Maemo SDK www.maemo.org,MAEMO II,The Maemo platform from Nokia includes the
45、 Internet Tablet OS, which is based on Debian GNU/Linux and draws much of its GUI, frameworks, and libraries from the GNOME project. Maemo is based on the Linux operating system kernel, which is a monolithic kernel that supports multiple hardware platforms. It uses the Matchbox window manager, and l
46、ike Ubuntu Mobile, it uses the GTK-based Hildon as its GUI and application framework. The Maemo platform is intended for Internet tablets, which are smaller than laptops, but larger and more versatile than PDAs. A tablet may have a small keyboard, and central characteristics include a stylus and a t
47、ouch-sensitive screen. Graphical interfaces must be designed with the touch screen in mind.,Desktop Widgets and Applications,Maemo API,Maemo OS Base (Linux) and Middleware,Qt 4.6 API,Maemo UI,Runtimes,GTK+/Hildon,X-server,D-BUS,GnomeVFS,SQLite,Qt,Qt is a cross-platform application framework Rapid cr
48、eation of GUIs For Linux and Symbian application development The Qt API is implemented in C+ and most Qt developers use C+ (bindings for other languages) Extensions for using mobile functionality from within Qt codeaccess points, alarms, audio, calendar, camera, contacts, installer, landmarks, locat
49、ion, media, messaging, profile, resource access, sensor, settings, system information, telephony, vibration, other utilities etc.,Android I,Mobile OS and application platform from Google Open Handset Alliance Linux kernel Open Source Uses Java to build applications (Java SE class library parts from Apache Harmony project) Optimized virtual machine called ”Dalvik” Runs .dex files (derived from .class or .jar) Relies on underlying system for process isolation, memory mng, and threading Independent of Sun and JCP Java APIs for basic comms, location, SQLite, OpenGL, SyncML,