370 likes | 390 Views
T-110.5140 Network Application Frameworks and XML Mobile Middleware 18.3.2008 Sasu Tarkoma. Contents. Mobile Middleware Motivation Examples Summary. Mobile Middleware I. Middleware is typically designed and implemented for fixed-network hosts
E N D
T-110.5140 Network Application Frameworks and XML Mobile Middleware18.3.2008Sasu Tarkoma
Contents • Mobile Middleware • Motivation • Examples • Summary
Mobile Middleware I • Middleware is typically designed and implemented for fixed-network hosts • High bandwidth, low latency, reliable communication • Persistent storage and sufficient computing power • No mobility • Mobile environment requires new solutions • Existing middleware services do not scale • Previous lectures: mobility is challenging • Small devices / embedded systems pose totally different challenges
Mobile Middleware II • Goals for middleware: • fault-tolerance, adaptability, heterogeneity,scalability, resource sharing • Mobile middleware • dynamically changing context • decoupled • events, tuple spaces • Basic solution for wireless • Use a proxy
Reflection • In general, middleware provides transparency to the underlying conditions • Location transparency in RPC/RMI • In mobile environments this is not always desired • Sometimes we need to know about location changes, QoS changes, etc. • Requirement for reflective middleware • Should expose APIs for querying / changing important parameters • Under development
Objects Secure mobile XML routing WAE Middleware XML IPv6 mobility, HIP .NET J2ME Security Mobility NAF Symbian Wireless CORBA Plain IPv4 MIP
Examples • WAE • J2ME • Symbian • MAEMO • Android • Wireless CORBA • Mobile Web Server • Pervasive Computing Middleware • Fuego
WAE • Wireless Application Environment (WAE) • A suite of protocols and specifications for optimizing 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 end-to-end with a gateway • WDP (Wireless Datagram Protocol) • UDP replacement
Programming model encodedrequest Client Gateway Server request Encoders Decoders HTTPServer WebBrowser wireless ProtocolGateways CGI,.. encodedresponse response
Web Access • Data transformation • WAP gateway performs data transformation between WML (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 • WAP’s “walled garden” – WAP gateways are provided by ISP such as AOL
HTML/JS HTTP TLS - SSL TCP/IP UDP/IP Comparison WAE Other Session Layer (WSP) Transaction Layer (WTP) Security Layer (WTSL) Transport Layer (WDP,UDP) Bearers: SMS,CDMA,..
WAE: current status • WAP Forum now in OMA (Open Mobile Alliance) • WAP 2.0, is a re-engineering of WAP using 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 2 Platform Micro Edition (J2ME) • Java for consumer electronics 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 • Specify both APIs and Configurations • Profiles defined using Java Community Process (JCP)
Source: http://developers.sun.com/techtopics/mobility/getstart/articles/survey/
J2ME optional packages • JSR 172: J2ME Web Services Specification • Content Handler API (CHAPI) JSR 211 • allows the invocation of J2ME platform applications from native applications and vice versa • Security and Trust Services JSR-177 • J2ME Client Provisioning JSR-124 • J2ME Client Provisioning Specification defines a server partitioning standard for provisioning applications. • Mobile Media API JSR-135
CLDC Technology • Connected Limited Device Configuration (CLDC); JSR 30, JSR 139 • Mobile Information Device Profile (MIDP); JSR 37, JSR 118 • Information Module Profile, (IMP); JSR 195 • Java Technology for the Wireless Industry, (JTWI); JSR 185 • Wireless Messaging API (WMA); JSR 120, JSR 205 • Mobile Media API (MMAPI); JSR 135 • Location API for J2ME; JSR 179 • SIP API for J2ME; JSR 180 • FileConnection and PIM API (JSR-75) • Security and Trust Services API for J2ME, (SATSA); JSR-177 • Mobile 3D Graphics; JSR-184 • J2ME Web Services APIs, (WSA); JSR 172 • Bluetooth API (JSR-82, Motorola, Java Partner Site) • J2ME Content Handler API, (CHAPI); JSR 211
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 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, memory 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 user interface • Manages resources, provides interface to clients • File server, window server, comms, .. • Engine • Application part that manipulates data, typically separate DLL
Symbian architecture UI Framework Java J2ME Application Services Generic OS Services Comms Services Multimedia & Graphics Srv. Connec- tivity Srv. Base Services Kernel Services & Hardware Abstraction
MAEMO • Open Source development platform for Nokia Internet Tablets and other Linux-based devices • Maemo SDK • www.maemo.org
Android • Mobile OS and application platform from Google • Open Handset Alliance • Linux kernel • Open Source (not yet available) • 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
Wireless CORBA • CORBA does not support accessing mobile objects or wireless communication • Wireless CORBA specification • Three basic requirements • Invocations from mobile objects • Invocations to mobile objects • Wireless communication • Home bridge • Access bridges • Tunnelling over wireless • Handoff protocols
Mobile IP vs. WCORBA • MIP addresses host mobility, not object mobility • MIP does not specifically support wireless protocols • MIP hides all handoff events • location-aware services difficult to implement
Architecture • Redirects requests for • services on the terminal • Keeps track of the current • access bridge • Abstract transport-independent • tunnel for GIOP messages • Concrete tunnels for TCP/IP, • UDP/IP and WAP WDP. • Protocol requires reliable and • ordered delivery • Other side end of the Access Bridge • Encapsulate/decapsulates msgs • Generates mobility events • Encapsulates, forwards or ignores • incoming GIOP messages • Decapsulates and forwards • messages from the GIOP tunnel • Generates mobility events • Lists available services
Handoffs • Network initiated handoff • started by an external application • optional to support make-before-break • Terminal initiated handoff • terminal discovered a new Access Bridge • make-before-break is required • Access recovery • The Home Location Agent is updated • Old Access Bridges are informed • Mobility events are generated in the visited domain and the terminal domain
Mobile Web Server • Port of Apache web server to Symbian S60 • Custom gateway to connect mobile servers with the Internet • The firewall/NAT problem • Link • http://research.nokia.com/research/projects/mobile-web-server/index.html
Overview Browser Webserver 2 1 3 2.5/3G Operator Firewall DNS Internet Gateway By courtesy of Johan Wikman Presented in EuroOSCON 2006
Fuego Core (HIIT) • Mobile and wireless environments have different requirements than desktop systems • User mobility, terminal mobility, connectivity, device characteristics, dynamic environments • Vision: A service application is distributed among various application servers, network elements and terminals • Three year Tekes project (2002-2004) • Industrial partners: Nokia, TeliaSonera, Elisa, Ericsson, Movial • Open source software • Demonstration at WMCSA 2004
Fuego Architecture • The Fuego middleware service set for mobile computing • Data communication • Efficient wireless SOAP • Efficient content-based routing (asynchronous events) • Data synchronization • 3-way XML document merging • XML-aware distributed file system • Applications • Presence service, mobile ticker, image-album
Automatic reconciliation of XML documents Optimized storage of XML Ad-hoc file sharing Integrates with existing file systems (NFS) Expressive async. communication Content-based routing using filters Event buffering / mobility support Support for context-aware operation Presence service based on events Control of presence attribute visibility Efficient sync/async messaging Efficient XML serialization Persistent connections across mobility Reliable messaging Multiplexing multiple connections on TCP Prioritization of connections End-to-end authentication of hosts Encryption of network traffic using IPsec Mobility and multihoming support Resilient sockets
Summary • Mobile middleware • Desktop middleware not usable on small, mobile devices • Special solutions are needed • J2ME, WAE, Wireless CORBA, .. • Current trend • Flexibility, decoupled nature • Convergence / unification