Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
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 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 In mobile environments this is not always desired Location transparency in RPC/RMI 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 WAE Middleware .NET Objects IPv6 mobility, HIP XML J2ME Symbian Wireless CORBA Plain IPv4 MIP NAF Mobility Secure mobile XML routing Security 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 Client Web Browser encoded request wireless encoded response Gateway Server request Encoders Decoders Protocol Gateways HTTP Server response CGI,.. Web Access Data transformation Data compression User profile and device characteristics are stored in the WAP gateway Security Technique are used for dealing with images and other graphics Adaptability WAP gateway performs data transformation between WML (or XHTML) and HTML 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 Comparison HTML/JS WAE Other Session Layer (WSP) HTTP TLS - SSL TCP/IP UDP/IP 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 cutdown 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 Security and Trust Services JSR-177 J2ME Client Provisioning JSR-124 allows the invocation of J2ME platform applications from native applications and vice versa 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 Application Program with a user interface Runs in user mode in its own process Server Manages and controls access to hw Hw-supported privileges, kernel mode 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 & ConnecGraphics Srv. tivity Srv. Base Services Kernel Services & Hardware Abstraction MAEMO Open Source development platform for Nokia Internet Tablets and other Linuxbased 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 Three basic requirements Wireless CORBA specification 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 • Redirects requests for Architecture services on the terminal • Abstract transport-independent • Keeps track of the current • Encapsulates, forwards or ignores tunnel for GIOP messages • Other side end of the Access Bridge access bridge incoming GIOP messages • Concrete tunnels for TCP/IP, • Encapsulate/decapsulates msgs • Decapsulates andWDP. forwards UDP/IP andevents WAP • Generates mobility messages from reliable the GIOP tunnel • Protocol requires and • Generates mobility events ordered delivery • Lists available services Handoffs Network initiated handoff Terminal initiated handoff started by an external application optional to support make-before-break 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 Network Initiated Handoff 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/m obile-web-server/index.html Overview Webserver 2 Browser 1 3 2.5/3G Operator Firewall DNS Gateway By courtesy of Johan Wikman Presented in EuroOSCON 2006 Internet Pervasive computing middleware Projects Key Issues UIC Heterogeneity of devices and networks: It helps users to specialize to the particular properties of different devices and network environments X-Middle Disconnected operations in mobile applications: It allows mobile users to share data when they are connected, or replicate the data and perform operations on them off-line when they are disconnected; data reconciliation takes place when user gets reconnected Gaia Dynamic adaptation to the context of mobile applications: It supports the development and execution of portable applications in active spaces Lime Programming constructs which are sensitive to the mobility constraints: It explores the idea by providing programmers with a global virtual data structure and a tuple space (Tspace), whose content is determined by the connectivity among mobile hosts Tspaces Asynchronous messaging-based communication facilities without any explicit support for context-awareness: It explores the idea of combination of tuple space (Tspace) and a database that is implemented in Java. Tspace targets nomadic environment where server contains tuple databases, reachable by mobile devices roaming around L2imbo QoS monitoring and control by adapting applications in mobile computing environment: It provides the facilities of multiple spaces, tuple hierarchy, and QoS attributes Aura Distraction-free pervasive computing: It develops the system architecture, algorithms, interfaces and evaluation techniques to meet the goal of pervasive computing Fuego Core (HIIT) Mobile and wireless environments have different requirements than desktop systems Vision: A service application is distributed among various application servers, network elements and terminals Three year Tekes project (2002-2004) User mobility, terminal mobility, connectivity, device characteristics, dynamic environments 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 Data synchronization Efficient wireless SOAP Efficient content-based routing (asynchronous events) 3-way XML document merging XML-aware distributed file system Applications Presence service, mobile ticker, image-album Ubiquitous and Pervasive software MobileServices Services Mobile MobileApplications Applications Mobile PresenceService Service Presence PresenceClient Client Presence Sync. File System Sync.Filesystem system Sync.File Event Service Filter Service Event Bus Filter Service Jetty Jetty WirelessSOAP SOAP Wireless HTTP1.1 1.1 HTTP BEEP BEEP Servlets Servlets ApacheAxis Axis Apache Jetty Jetty WirelessSOAP/SOAP SOAP/SOAP Wireless HTTP1.1 1.1 HTTP BEEP BEEP TCP Host Identity Protocol (HIP) IP IP Mobile Clients Distributed Servers Automatic reconciliation of XML documents Ubiquitous and Pervasive software Optimized storage of XML Expressive async. communication MobileServices Services Mobile Ad-hoc file sharing Content-based routing using filters Presence service based on events Integrates with existing file systems (NFS) / mobility support Event attribute buffering MobileApplications Applications Control of presence visibility Mobile PresenceService Service Presence Support for context-aware operation PresenceClient Client Presence Sync. File System Event Service Efficient sync/async messaging Sync.File system Filter Service Sync.File systemEfficient XML serialization Bus Persistent Event connections across mobility Servlets ApacheAxis Axis Reliable messaging Filter Service Servlets Apache Multiplexing multiple connections on TCP Prioritization of connections Jetty Jetty Wireless SOAP of hosts WirelessSOAP/SOAP SOAP/SOAP Jetty Jetty SOAP Wireless End-to-endWireless authentication Encryption of network traffic using IPsec HTTPMobility 1.1 BEEP HTTP1.1 1.1 BEEP HTTP 1.1 BEEP HTTP BEEP and multihoming support Resilient sockets TCP Host Identity Protocol (HIP) IP IP Mobile Clients Distributed Servers FUEGO DEMO 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