* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download C10-Support_for_Mobi..
SIP extensions for the IP Multimedia Subsystem wikipedia , lookup
Zero-configuration networking wikipedia , lookup
Wireless security wikipedia , lookup
Cross-site scripting wikipedia , lookup
Piggybacking (Internet access) wikipedia , lookup
Recursive InterNetwork Architecture (RINA) wikipedia , lookup
Cracking of wireless networks wikipedia , lookup
Internet protocol suite wikipedia , lookup
Remote Desktop Services wikipedia , lookup
Mobile Communications Chapter 10: Support for Mobility File systems Data bases WWW and Mobility WAP (Wireless Application Protocol), i-mode & Co. S. K. Nayak PEEC 5409 10.1 Mobile, bearable multimedia equipment … S. K. Nayak PEEC 5409 10.2 File systems - Motivation Goal efficient and transparent access to shared files within a mobile environment while maintaining data consistency Problems limited resources of mobile computers (memory, CPU, ...) low bandwidth, variable bandwidth, temporary disconnection high heterogeneity of hardware and software components (no standard PC architecture) wireless network resources and mobile computer are not very reliable standard file systems (e.g., NFS, network file system) are very inefficient, almost unusable Solutions replication of data (copying, cloning, caching) data collection in advance (hoarding, pre-fetching) S. K. Nayak PEEC 5409 10.3 File systems - consistency problems THE big problem of distributed, loosely coupled systems are all views on data the same? how and when should changes be propagated to what users? Weak consistency many algorithms offering strong consistency (e.g., via atomic updates) cannot be used in mobile environments invalidation of data located in caches through a server is very problematic if the mobile computer is currently not connected to the network occasional inconsistencies have to be tolerated, but conflict resolution strategies must be applied afterwards to reach consistency again Conflict detection content independent: version numbering, time-stamps content dependent: dependency graphs S. K. Nayak PEEC 5409 10.4 File systems for limited connectivity I Symmetry Client/Server or Peer-to-Peer relations support in the fixed network and/or mobile computers one file system or several file systems one namespace for files or several namespaces Transparency hide the mobility support, applications on mobile computers should not notice the mobility user should not notice additional mechanisms needed Consistency model optimistic or pessimistic Caching and Pre-fetching single files, directories, subtrees, partitions, ... permanent or only at certain points in time S. K. Nayak PEEC 5409 10.5 File systems for limited connectivity II Data management management of buffered data and copies of data request for updates, validity of data detection of changes in data Conflict solving application specific or general errors Several experimental systems exist Coda (Carnegie Mellon University), Little Work (University of Michigan), Ficus (UCLA) etc. Many systems use ideas from distributed file systems such as, e.g., AFS (Andrew File System) S. K. Nayak PEEC 5409 10.6 File systems - Coda I Application transparent extensions of client and server changes in the cache manager of a client applications use cache replicates of files extensive, transparent collection of data in advance for possible future use („Hoarding“) Consistency system keeps a record of changes in files and compares files after reconnection if different users have changed the same file a manual reintegration of the file into the system is necessary optimistic approach, coarse grained (file size) mobile client application S. K. Nayak cache server PEEC 5409 10.7 File systems - Coda II Hoarding States of a client user can pre-determine a file list with priorities contents of the cache determined by the list and LRU strategy (Last Recently Used) explicit pre-fetching possible periodic updating hoarding disconnection weak connection write disconnected Comparison of files connection asynchronous, background system weighs speed of updating against minimization of network traffic strong connection disconnection emulating Cache misses modeling of user patience: how long can a user wait for data without an error message? function of file size and bandwidth S. K. Nayak PEEC 5409 10.8 File systems - Little Work Only changes in the cache manager of the client Connection modes and use Connected Method normal Partially Connected delayed write to the server continuous bandwidth Network continuous requirements high bandwidth Application office, WLAN packet radio S. K. Nayak Fetch only Disconnected optimistic replication of files connection on demand abort at cache miss none cellular systems (e.g., GSM) with costs per call independent PEEC 5409 10.9 File systems - further examples Mazer/Tardo file synchronization layer between application and local file system caching of complete subdirectories from the server “Redirector” responses to requests locally if necessary, via the network if possible periodic consistency checks with bi-directional updating Ficus not a client/server approach optimistic approach based on replicates, detection of write conflicts, conflict resolution use of „gossip“ protocols: a mobile computer does not necessarily need to have direct connection to a server, with the help of other mobile computers updates can be propagated through the network MIo-NFS (Mobile Integration of NFS) NFS extension, pessimistic approach, only token holder can write connected/loosely connected/disconnected S. K. Nayak PEEC 5409 10.10 Database systems in mobile environments Request processing power conserving, location dependent, cost efficient example: find the fastest way to a hospital Replication management similar to file systems Location management tracking of mobile users to provide replicated or location dependent data in time at the right place (minimize access delays) example: with the help of the HLR (Home Location Register) in GSM a mobile user can find a local towing service Transaction processing “mobile” transactions can not necessarily rely on the same models as transactions over fixed networks (ACID: atomicity, consistency, isolation, durability) therefore models for “weak” transaction S. K. Nayak PEEC 5409 10.11 World Wide Web and mobility Protocol (HTTP, Hypertext Transfer Protocol) and language (HTML, Hypertext Markup Language) of the Web have not been designed for mobile applications and mobile devices, thus creating many problems! Typical transfer sizes HTTP request: 100-350 byte responses avg. <10 kbyte, header 160 byte, GIF 4.1kByte, JPEG 12.8 kbyte, HTML 5.6 kbyte but also many large files that cannot be ignored The Web is no file system Web pages are not simple files to download static and dynamic content, interaction with servers via forms, content transformation, push technologies etc. many hyperlinks, automatic loading and reloading, redirecting a single click might have big consequences! S. K. Nayak PEEC 5409 10.12 WWW example Request to port 80: or: GET / HTTP/1.0 GET / HTTP/1.1 Host: www.inf.fu-berlin.de Response from server non persistent HTTP/1.1 200 OK Date: Wed, 30 Oct 2002 19:44:26 GMT Server: Apache/1.3.12 (Unix) mod_perl/1.24 Last-Modified: Wed, 30 Oct 2002 13:16:31 GMT ETag: "2d8190-2322-3dbfdbaf" Accept-Ranges: bytes Content-Length: 8994 Connection: close Content-Type: text/html <DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>FU-Berlin: Institut für Informatik</TITLE> <base href="http://www.inf.fu-berlin.de"> <link rel="stylesheet" type="text/css" href="http://www.inf.fuberlin.de/styles/homepage.css"> <!--script language="JavaScript" src="fuinf.js"--> <!--/script--> </head> <body onResize="self.location.reload();"> ... S. K. Nayak PEEC 5409 10.13 HTTP 1.0 and mobility I Characteristics stateless, client/server, request/response needs a connection oriented protocol (TCP), one connection per request (some enhancements in HTTP 1.1) primitive caching and security Problems designed for large bandwidth (compared to wireless access) and low delay big and redundant protocol headers (readable for humans, stateless, therefore big headers in ASCII) uncompressed content transfer using TCP huge overhead per request (3-way-handshake) compared with the content, e.g., of a GET request slow-start problematic S. K. Nayak DNS lookup by client causes additional traffic PEEC 5409 10.14 HTTP 1.0 and mobility II Caching quite often disabled by information providers to be able to create user profiles, usage statistics etc. dynamic objects cannot be cached numerous counters, time, date, personalization, ... mobility quite often inhibits caches security problems how to use SSL/TLS together with proxies? today: many user customized pages, dynamically generated on request via CGI, ASP, ... POSTing (i.e., sending to a server) can typically not be buffered, very problematic if currently disconnected Many unsolved problems! S. K. Nayak PEEC 5409 10.15 HTML and mobile devices HTML designed for computers with “high” performance, color highresolution display, mouse, hard disk typically, web pages optimized for design, not for communication Mobile devices often only small, low-resolution displays, very limited input interfaces (small touch-pads, soft-keyboards) Additional “features” animated GIF, Java AWT, Frames, ActiveX Controls, Shockwave, movie clips, audio, ... many web pages assume true color, multimedia support, highresolution and many plug-ins Web pages ignore the heterogeneity of end-systems! S. K. Nayak e.g., without additional mechanisms, large high-resolution pictures would be transferred to a mobile phone with a low-resolution display causing high costs PEEC 5409 10.16 Approaches toward WWW for mobile devices Application gateways, enhanced servers simple clients, pre-calculations in the fixed network compression, filtering, content extraction automatic adaptation to network characteristics Examples picture scaling, color reduction, transformation of the document format (e.g., PS to TXT) detail studies, clipping, zoom headline extraction, automatic abstract generation HDML (handheld device markup language): simple language similar to HTML requiring a special browser HDTP (handheld device transport protocol): transport protocol for HDML, developed by Unwired Planet Problems proprietary approaches, require special enhancements for browsers heterogeneous devices make approaches more complicated S. K. Nayak PEEC 5409 10.17 Some new issues that might help mobility? Push technology HTTP/1.1 real pushing, not a client pull needed, channels etc. client/server use the same connection for several request/response transactions multiple requests at beginning of session, several responses in same order enhanced caching of responses (useful if equivalent responses!) semantic transparency not always achievable: disconnected, performance, availability -> most up-to-date version... several more tags and options for controlling caching (public/private, max-age, no-cache etc.) relaxing of transparency on app. request or with warning to user encoding/compression mechanism, integrity check, security of proxies, authentication, authorization... Cookies: well..., stateful sessions, not really integrated... S. K. Nayak PEEC 5409 10.18 System support for WWW in a mobile world I Enhanced browsers mobile client integrated enhancement Pre-fetching, caching, off-line use e.g. Internet Explorer browser web server Additional, accompanying application Pre-fetching, caching, off-line use e.g. original WebWhacker mobile client browser additional application web server S. K. Nayak PEEC 5409 10.19 System support for WWW in a mobile world II Client Proxy mobile client Pre-fetching, caching, off-line use e.g., Caubweb, TeleWeb, Weblicator, WebWhacker, WebEx, WebMirror, ... browser client proxy web server Network Proxy adaptive content transformation for bad connections, pre-fetching, caching e.g., TranSend, Digestor mobile client browser network proxy web server S. K. Nayak PEEC 5409 10.20 System support for WWW in a mobile world III Client and network proxy mobile client combination of benefits plus simplified protocols e.g., MobiScape, WebExpress Special network subsystem adaptive content transformation for bad connections, pre-fetching, caching e.g., Mowgli Additional many proprietary server extensions possible “channels”, content negotiation, ... S. K. Nayak browser client proxy web server network proxy mobile client browser client proxy web server network proxy PEEC 5409 10.21 WAP - Wireless Application Protocol Goals deliver Internet content and enhanced services to mobile devices and users (mobile phones, PDAs) independence from wireless network standards open for everyone to participate, protocol specifications will be proposed to standardization bodies applications should scale well beyond current transport media and device types and should also be applicable to future developments Platforms e.g., GSM (900, 1800, 1900), CDMA IS-95, TDMA IS-136, 3rd generation systems (IMT-2000, UMTS, W-CDMA, cdma2000 1x EV-DO, …) Forum was: WAP Forum, co-founded by Ericsson, Motorola, Nokia, Unwired Planet, further information www.wapforum.org now: Open Mobile Alliance www.openmobilealliance.org (Open Mobile Architecture + WAP Forum + SyncML + …) S. K. Nayak PEEC 5409 10.22 WAP - scope of standardization Browser “micro browser”, similar to existing, well-known browsers in the Internet Script language similar to Java script, adapted to the mobile environment WTA/WTAI Wireless Telephony Application (Interface): access to all telephone functions Content formats e.g., business cards (vCard), calendar events (vCalender) Protocol layers S. K. Nayak transport layer, security layer, session layer etc. PEEC 5409 10.23 WAP 1.x - reference model and protocols Internet HTML, Java A-SAP WAP additional services and applications Application Layer (WAE) S-SAP Session Layer (WSP) HTTP TR-SAP Transaction Layer (WTP) SEC-SAP SSL/TLS Security Layer (WTLS) T-SAP TCP/IP, UDP/IP, media Transport Layer (WDP) WCMP Bearers (GSM, CDPD, ...) WAE comprises WML (Wireless Markup Language), WML Script, WTAI etc. S. K. Nayak PEEC 5409 10.24 WAP - network elements fixed network Internet HTML wireless network WML HTML filter WAP proxy Binary WML WML HTML web server HTML filter/ WAP proxy WTA server Binary WML Binary WML PSTN Binary WML: binary file format for clients S. K. Nayak PEEC 5409 10.25 WDP - Wireless Datagram Protocol Protocol of the transport layer within the WAP architecture uses directly transports mechanisms of different network technologies offers a common interface for higher layer protocols allows for transparent communication using different transport technologies (GSM [SMS, CSD, USSD, GPRS, ...], IS-136, TETRA, DECT, PHS, IS-95, ...) Goals of WDP create a worldwide interoperable transport system with the help of WDP adapted to the different underlying technologies transmission services such as SMS, GPRS in GSM might change, new services can replace the old ones Additionally, WCMP (wireless Control Message Protocol) is used for control/error report (similar to ICMP in the TCP/IP protocol suite) S. K. Nayak PEEC 5409 10.26 WDP - Service Primitives T-SAP T-DUnitdata.req (DA, DP, SA, SP, UD) T-SAP T-DUnitdata.ind (SA, SP, UD) T-DUnitdata.req (DA, DP, SA, SP, UD) T-DError.ind (EC) S. K. Nayak PEEC 5409 10.27 Usage of WDP Wireless Data Gateway WTLS WDP & Adaptation SMS GSM-SMS Tunnel WTLS WDP & Adaptation Tunnel Subnetwork Subnetwork SMS WAP Proxy GSM-CSD WTLS Internet Service Provider Remote Access Service UDP IP PPP CSD-RF S. K. Nayak Interworking Function CSD-RF PSTN Circuit IP PPP PSTN Circuit UDP IP Subnetwork PEEC 5409 WTLS 10.28 Subnetwork WTLS - Wireless Transport Layer Security Goals data integrity privacy prevention of tapping authentication prevention of changes in data creation of authenticated relations between a mobile device and a server protection against denial-of-service attacks protection against repetition of data and unverified data WTLS is based on the TLS (Transport Layer Security) protocol (former SSL, Secure Sockets Layer) optimized for low-bandwidth communication channels S. K. Nayak PEEC 5409 10.29 Secure session, full handshake originator SEC-SAP SEC-Create.req (SA, SP, DA, DP, KES, CS, CM) peer SEC-SAP SEC-Create.ind (SA, SP, DA, DP, KES, CS, CM) SEC-Create.res (SNM, KR, SID, KES‘, CS‘, CM‘) SEC-Create.cnf (SNM, KR, SID, KES‘, CS‘, CM‘) SEC-Exchange.req SEC-Exchange.ind SEC-Exchange.res (CC) SEC-Commit.req SEC-Exchange.cnf (CC) SEC-Commit.ind SEC-Commit.cnf S. K. Nayak PEEC 5409 10.30 SEC-Unitdata - transferring datagrams sender SEC-SAP SEC-Unitdata.req (SA, SP, DA, DP, UD) S. K. Nayak receiver SEC-SAP SEC-Unitdata.ind (SA, SP, DA, DP, UD) PEEC 5409 10.31 WTP - Wireless Transaction Protocol Goals different transaction services, offloads applications application can select reliability, efficiency support of different communication scenarios class 0: unreliable message transfer class 1: reliable message transfer without result message class 2: reliable message transfer with exactly one reliable result message supports peer-to-peer, client/server and multicast applications low memory requirements, suited to simple devices (< 10kbyte ) efficient for wireless transmission segmentation/reassembly selective retransmission header compression optimized connection setup (setup with data transfer) S. K. Nayak PEEC 5409 10.32 Details of WTP I Support of different communication scenarios Class 0: unreliable message transfer Example: push service Class 1: reliable request An invoke message is not followed by a result message Example: reliable push service Class 2: reliable request/response An invoke message is followed by exactly one result message With and without ACK Example: typical web browsing No explicit connection setup or release is available Services for higher layers are called events S. K. Nayak PEEC 5409 10.33 Details of WTP II Used Mechanisms Reliability Unique transaction identifiers (TID) Acknowledgements Selective retransmission Duplicate removal Optional: concatenation & separation of messages Optional: segmentation & reassembly of messages Asynchronous transactions Transaction abort, error handling Optimized connection setup (includes data transmission) S. K. Nayak PEEC 5409 10.34 WTP Class 0 transaction initiator TR-SAP TR-Invoke.req (SA, SP, DA, DP, A, UD, C=0, H) S. K. Nayak responder TR-SAP TR-Invoke.ind (SA, SP, DA, DP, A, UD, C=0, H‘) PEEC 5409 10.35 WTP Class 1 transaction, no user ack & user ack initiator TR-SAP TR-Invoke.req (SA, SP, DA, DP, A, UD, C=1, H) responder TR-SAP TR-Invoke.ind (SA, SP, DA, DP, A, UD, C=1, H‘) TR-Invoke.cnf (H) initiator TR-SAP TR-Invoke.req (SA, SP, DA, DP, A, UD, C=1, H) TR-Invoke.cnf (H) S. K. Nayak responder TR-SAP TR-Invoke.ind (SA, SP, DA, DP, A, UD, C=1, H‘) TR-Invoke.res (H‘) PEEC 5409 10.36 WTP Class 2 transaction, no user ack, no hold on initiator TR-SAP TR-Invoke.req (SA, SP, DA, DP, A, UD, C=2, H) TR-Invoke.cnf (H) responder TR-SAP TR-Invoke.ind (SA, SP, DA, DP, A, UD, C=2, H‘) TR-Result.req (UD*, H‘) TR-Result.ind (UD*, H) TR-Result.res (H) S. K. Nayak TR-Result.cnf (H‘) PEEC 5409 10.37 WTP Class 2 transaction, user ack initiator TR-SAP TR-Invoke.req (SA, SP, DA, DP, A, UD, C=2, H) TR-Invoke.cnf (H) TR-Result.ind (UD*, H) TR-Result.res (H) S. K. Nayak responder TR-SAP TR-Invoke.ind (SA, SP, DA, DP, A, UD, C=2, H‘) TR-Invoke.res (H‘) TR-Result.req (UD*, H‘) TR-Result.cnf (H‘) PEEC 5409 10.38 WTP Class 2 transaction, hold on, no user ack initiator TR-SAP TR-Invoke.req (SA, SP, DA, DP, A, UD, C=2, H) TR-Invoke.cnf (H) responder TR-SAP TR-Invoke.ind (SA, SP, DA, DP, A, UD, C=2, H‘) TR-Result.req (UD*, H‘) TR-Result.ind (UD*, H) TR-Result.res (H) S. K. Nayak TR-Result.cnf (H‘) PEEC 5409 10.39 WSP - Wireless Session Protocol Goals HTTP 1.1 functionality Request/reply, content type negotiation, ... support of client/server, transactions, push technology key management, authentication, Internet security services session management (interruption, resume,...) Open topics S. K. Nayak QoS support) Group communication Isochronous media objects management PEEC 5409 10.40 WSP protocols WSP Connection mode (uses WTP) Connectionless mode (uses WDP or WTLS) • Session Management (class 0, 2) • Method Invocation • Method Invocation (Kl. 2) • Push • Error Report (in general unreliable) • Push (class 0) • Confirmed Push (class 1) • Session suspend/resume (class 0, 2) S. K. Nayak PEEC 5409 10.41 WSP/B session establishment client S-SAP server S-SAP S-Connect.req (SA, CA, CH, RC) S-Connect.ind (SA, CA, CH, RC) S-Connect.res (SH, NC) S-Connect.cnf (SH, NC) WTP Class 2 transaction S. K. Nayak PEEC 5409 10.42 WSP/B session suspend/resume client S-SAP server S-SAP S-Suspend.req S-Suspend.ind (R) S-Suspend.ind (R) S-Resume.req (SA, CA) WTP Class 0 transaction ~ ~ S-Resume.ind (SA, CA) S-Resume.res S-Resume.cnf WTP Class 2 transaction S. K. Nayak PEEC 5409 10.43 WSP/B session termination client S-SAP server S-SAP S-Disconnect.req (R) S-Disconnect.ind (R) S. K. Nayak S-Disconnect.ind (R) WTP Class 0 transaction PEEC 5409 10.44 WSP/B method invoke client S-SAP server S-SAP S-MethodInvoke.req (CTID, M, RU) S-MethodInvoke.ind (STID, M, RU) S-MethodInvoke.res (STID) S-MethodInvoke.cnf (CTID) S-MethodResult.req (STID, S, RH, RB) S-MethodResult.ind (CTID, S, RH, RB) S-MethodResult.res (CTID) S-MethodResult.cnf (STID) WTP Class 2 transaction S. K. Nayak PEEC 5409 10.45 WSP/B over WTP - method invocation client S-SAP initiator TR-SAP responder TR-SAP server S-SAP S-MethodInvoke.req TR-Invoke.req TR-Invoke.ind S-MethodInvoke.ind TR-Invoke.res S-MethodInvoke.res S-MethodInvoke.cnf TR-Invoke.cnf TR-Result.req S-MethodResult.req S-MethodResult.ind TR-Result.ind S-MethodResult.res TR-Result.res TR-Result.cnf S-MethodResult.cnf S. K. Nayak PEEC 5409 10.46 WSP/B over WTP - asynchronous, unordered requests client S-SAP server S-SAP S-MethodInvoke_1.req S-MethodInvoke_2.req S-MethodInvoke_2.ind S-MethodInvoke_1.ind S-MethodInvoke_3.req S-MethodResult_1.ind S-MethodResult_3.ind S-MethodResult_1.req S-MethodInvoke_3.ind S-MethodResult_3.req S-MethodResult_2.req S-MethodInvoke_4.req S-MethodInvoke_4.ind S-MethodResult_4.ind S-MethodResult_4.req S-MethodResult_2.ind S. K. Nayak PEEC 5409 10.47 WSP/B - confirmend/non-confirmed push client S-SAP S-Push.ind (PH, PB) server S-SAP S-Push.req (PH, PB) WTP Class 0 transaction client S-SAP S-ConfirmedPush.ind (CPID, PH, PB) server S-SAP S-ConfirmedPush.req (SPID, PH, PB) S-ConfirmedPush.res (CPID) S-ConfirmedPush.cnf (SPID) WTP Class 1 transaction S. K. Nayak PEEC 5409 10.48 WSP/B over WDP S-Unit-MethodInvoke.req (SA, CA, TID, M, RU) client S-SAP server S-SAP S-Unit-MethodInvoke.ind (SA, CA, TID, M, RU) S-Unit-MethodResult.req (CA, SA, TID, S, RH, RB) S-Unit-MethodResult.ind (CA, SA, TID, S, RH, RB) S-Unit-Push.req (CA, SA, PID, PH, PB) S-Unit-Push.ind (CA, SA, PID, PH, PB) WDP Unitdata service S. K. Nayak PEEC 5409 10.49 WAE - Wireless Application Environment Goals network independent application environment for low-bandwidth, wireless devices integrated Internet/WWW programming model with high interoperability Requirements device and network independent, international support manufacturers can determine look-and-feel, user interface considerations of slow links, limited memory, low computing power, small display, simple user interface (compared to desktop computers) Components S. K. Nayak architecture: application model, browser, gateway, server WML: XML-Syntax, based on card stacks, variables, ... WMLScript: procedural, loops, conditions, ... (similar to JavaScript) WTA: telephone services, such as call control, text messages, phone book, ... (accessible from WML/WMLScript) content formats: vCard, vCalendar, Wireless Bitmap, WML, ... PEEC 5409 10.50 WAE logical model Origin Servers web server other content server Gateway response with content push content request S. K. Nayak encoders & decoders Client encoded response with content encoded push content encoded request PEEC 5409 WTA user agent WML user agent other WAE user agents 10.51 Wireless Markup Language (WML) WML follows deck and card metaphor WML document consists of many cards, cards are grouped to decks a deck is similar to an HTML page, unit of content transmission WML describes only intent of interaction in an abstract manner presentation depends on device capabilities Features text and images user interaction navigation context management S. K. Nayak PEEC 5409 10.52 WML – example I <?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml"> <wml> <card id="card_one" title="simple example"> <do type="accept"> <go href="#card_two"/> </do> <p> This is a simple first card! <br/> On the next one you can choose ... </p> </card> S. K. Nayak PEEC 5409 10.53 WML – example II <card id="card_two" title="Pizza selection"> <do type="accept" label="cont"> <go href="#card_three"/> </do> <p> ... your favorite pizza! <select value="Mar" name="PIZZA"> <option value="Mar">Margherita</option> <option value="Fun">Funghi</option> <option value="Vul">Vulcano</option> </select> </p> </card> <card id="card_three" title="Your Pizza!"> <p> Your personal pizza parameter is <b>$(PIZZA)</b>! </p> </card> </wml> S. K. Nayak PEEC 5409 10.54 WMLScript Complement to WML Provides general scripting capabilities Features validity check of user input access to device facilities hardware and software (phone call, address book etc.) local user interaction check input before sent to server interaction without round-trip delay extensions to the device software S. K. Nayak configure device, download new functionality after deployment PEEC 5409 10.55 WMLScript - example function pizza_test(pizza_type) { var taste = "unknown"; if (pizza_type = "Margherita") { taste = "well... "; } else { if (pizza_type = "Vulcano") { taste = "quite hot"; }; }; return taste; }; S. K. Nayak PEEC 5409 10.56 Wireless Telephony Application (WTA) Collection of telephony specific extensions Extension of basic WAE application model content push server can push content to the client client may now be able to handle unknown events handling of network events table indicating how to react on certain events from the network access to telephony functions any application on the client may access telephony functions Example calling a number (WML) wtai://wp/mc;07216086415 calling a number (WMLScript) WTAPublic.makeCall("07216086415"); S. K. Nayak PEEC 5409 10.57 WTA logical architecture other telephone networks WTA server client WML scripts WTA & WML server mobile network WTA user agent WAP gateway repository WML decks WTA services network operator trusted domain third party servers S. K. Nayak encoders & decoders other servers device specific functions firewall PEEC 5409 10.58 Voice box example WTA-User-Agent WTA-Gateway WTA-Server Mobile network Indicate new voice message Voice box server Generate new deck Service Indication Display deck; user selects WSP Get Binary WML Display deck; user selects WSP Get Binary WML Push URL HTTP Get WML Respond with content HTTP Get WML Respond with card for call Play requested voice message Wait for call Call setup Setup call Setup call Accept call Accept call Accept call Voice connection S. K. Nayak PEEC 5409 10.59 WTAI - example with WML only <?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml"> <wml> <card id="card_one" title="Tele voting"> <do type="accept"> <go href="#card_two"/> </do> <p> Please choose your candidate! </p> </card> <card id="card_two" title="Your selection"> <do type="accept"> <go href="wtai://wp/mc;$dialno"/> </do> <p> Your selection: <select name="dialno"> <option value="01376685">Mickey</option> <option value="01376686">Donald</option> <option value="01376687">Pluto</option> </select> </p> </card> </wml> S. K. Nayak PEEC 5409 10.60 WTAI - example with WML and WMLScript I function voteCall(Nr) { var j = WTACallControl.setup(Nr,1); if (j>=0) { WMLBrowser.setVar("Message", "Called"); WMLBrowser.setVar("No", Nr); } else { WMLBrowser.setVar("Message", "Error!"); WMLBrowser.setVar("No", j); } WMLBrowser.go("showResult"); } S. K. Nayak PEEC 5409 10.61 WTAI - example with WML and WMLScript II <?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml"> <wml> <card id="card_one" title="Tele voting"> <do type="accept"> <go href="#card_two"/> </do> <p> Please choose your candidate! </p> </card> <card id="card_two" title="Your selection"> <do type="accept"> <go href="/myscripts#voteCall($dialno)"/> </do> <p> Your selection: <select name="dialno"> <option value="01376685">Mickey</option> <option value="01376686">Donald</option> <option value="01376687">Pluto</option> </select> </p> </card> <card id="showResult" title="Result"> <p> Status: $Message $No </p> </card> </wml> S. K. Nayak PEEC 5409 10.62 WAP push architecture with proxy gateway Push Access Protocol Content transmission between server and PPG First version uses HTTP Push OTA (Over The Air) Protocol Simple, optimized Mapped onto WSP Client User Agents S. K. Nayak Push OTA Protocol Push Proxy Gateway Push Access Protocol Push Initiator Server application Coding, checking PEEC 5409 10.63 Push/Pull services in WAP I Service Indication Service announcement using a pushed short message Service usage via a pull Service identification via a URI <?xml version="1.0"?> <!DOCTYPE si PUBLIC "-//WAPFORUM//DTD SI 1.0//EN" "http://www.wapforum.org/DTD/si.dtd"> <si> <indication href="http://www.piiiizza4u.de/offer/salad.wml" created="2002-10-30T17:45:32Z" si-expires="2000-10-30T17:50:31Z"> Salad special: The 5 minute offer </indication> </si> S. K. Nayak PEEC 5409 10.64 Push/Pull services in WAP II Service Loading short message pushed to a client containing a URI User agent decides whether to use the URI via a pull Transparent for users, always looks like a push <?xml version="1.0"?> <!DOCTYPE sl PUBLIC "-//WAPFORUM//DTD SL 1.0//EN" "http://www.wapforum.org/DTD/sl.dtd"> <sl href="http://www.piiiizza4u.de/offer/salad.wml"> </sl> S. K. Nayak PEEC 5409 10.65 Examples for WAP protocol stacks (WAP 1.x) WAP standardization WAE user agent outside WAP WAE WSP transaction based application WTP WTP WTLS datagram based application WTLS WTLS UDP WDP UDP WDP UDP WDP IP non IP IP non IP IP non IP (GPRS, ...) (SMS, ...) (GPRS, ...) (SMS, ...) (GPRS, ...) (SMS, ...) 1. 2. 3. typical WAP application with complete protocol stack S. K. Nayak pure data application with/without additional security PEEC 5409 10.66 i-mode – first of all a business model! Access to Internet services in Japan provided by NTT DoCoMo Services Big success – more than 30 million users Email, short messages, web, picture exchange, horoscope, ... Many use i-mode as PC replacement For many this is the first Internet contact Very simple to use, convenient Technology 9.6 kbit/s (enhancements with 28.8 kbit/s), packet oriented (PDC-P) Compact HTML plus proprietary tags, special transport layer (Stop/go, ARQ, push, connection oriented) mobile terminal mobile network cHTML + tags HTTP(S) TL TL PDC-P PDC-P S. K. Nayak TCP IP L2 L1 gateway TCP IP L2 L1 TCP IP L2 L1 content provider cHTML + tags HTTP(S) TCP IP L2 L1 PEEC 5409 10.67 Email example: i-mode push with SMS application WSP WTP Popular misconception: WAP was a failure, i-mode is different and a success – wrong from a technology point of view, right from a business point of view… WDP SMS Operator sends an SMS containing a push message if a new email has arrived. If the user wants to read the email, an HTTP get follows with the email as response. S. K. Nayak i-mode as a business model: - content providers get >80% of the revenue. - independent of technology (GSM/GPRS in Europe, PDC-P in Japan – but also UMTS!) PEEC 5409 10.68 i-mode protocol stack based on WAP 2.0 user equipment gateway server cHTML cHTML HTTP HTTP SSL SSL WTCP WTCP TCP TCP IP IP IP IP L2 L2 L2 L2 L1 L1 L1 L1 i-mode can use WAP 2.0/Internet protocols (example: i-mode in Germany over GSM/GPRS) S. K. Nayak PEEC 5409 10.69 i-mode – technical requirements Functions Descriptions WEB Access Portal Site / Internet Access M i-mode HTML (cHTML+tags) E-mail Internet e-mail and inter-terminal email M HTTP 1.1 Security End-End security O SSL (Version 2, 3), TLS 1 Java Java application made available O Compatible i-mode JAVA Ringing tone download Ringing melody download M SMF based Image download Stand-by screen download M GIF (O: JPEG) Voice call notification during imode session Voice termination notified and responded during i-mode communications M 3GPP standard system Content charge billing Per content charge billed to user M Specifications depend on each operator’s billing system Third party payment collection Content charge collection on behalf of Content Provider M Specifications depend on each operator’s billing system Reverse billing Packet usage charges can be billed to third party O Specifications depend on each operator’s billing system Subscriber ID transmission Hashed subscriber ID from the operator’s portal to the CP transmission on each content access M The ID generation algorithm should be determined by each operator and has to be secret Number of characters per email Number of characters (byte) per e-mail M To be defined by operators (e.g. 500 byte, 1K byte, 10K byte) Character code set supported Character code set supported by browser and used to develop content M To be defined by operators User Agent Browser specifications to be notified M HTTP 1.1 i-mode button Dedicated button O Hard or soft key S. K. Nayak Status PEEC 5409 Requirement 10.70 i-mode examples I S. K. Nayak PEEC 5409 10.71 i-mode examples II S. K. Nayak PEEC 5409 10.72 i-mode examples III S. K. Nayak PEEC 5409 10.73 WAP 2.0 (July 2001) New for developers XHTML TCP with „Wireless Profile“ HTTP New applications Color graphics Animation Large file download Location based services Synchronization with PIMs Pop-up/context sensitive menus Goal: integration of WWW, Internet, WAP, i-mode S. K. Nayak PEEC 5409 10.74 External services EFI Crypto libraries WAE/WTA User Agent (WML, XHTMLMP) Push Provisioning Authentication Identification Service Lookup PKI Secure transport Secure bearer Push OTA Cookies Synchronisation Hypermedia transfer (WTP+WSP, HTTP) CSD IPv6 S. K. Nayak MMS Connections (TCP with wireless profile) Datagrams (WDP, UDP) IPv4 Streaming Transport Navigation Discovery Capability Negotiation USSD SMS GPRS FLEX ... MPAK PEEC 5409 ... 10.75 Protocol framework Content formats Session Multimedia Messaging (Email) Transfer Security services Bearer Service discovery Application framework WAP 2.0 architecture WAP 2.0 example protocol stacks WAP device WAE WSP WTP WTLS WDP bearer WAP gateway WSP WTP WTLS WDP bearer Web server WAE HTTP HTTP TLS TCP IP TLS TCP IP WAP 1.x Server/Gateway/Client WAP device WAE HTTP TLS TCP‘ IP WAP proxy TCP‘ IP TCP IP Web server WAE HTTP TLS TCP IP WAP Proxy with TLS tunneling S. K. Nayak WAP device WAE HTTP‘ TCP‘ IP WAP proxy HTTP‘ TCP‘ IP HTTP TCP IP Web server WAE HTTP TCP IP WAP HTTP Proxy with profiled TCP and HTTP WAP device WAE HTTP TCP IP IP router IP IP WAP direct access PEEC 5409 10.76 Web server WAE HTTP TCP IP Java 2 Platform Micro Edition „Java-Boom expected“ (?) Desktop: over 90% standard PC architecture, Intel x86 compatible, typically MS Windows systems Do really many people care about platform independent applications? BUT: Heterogeneous, “small“ devices Internet appliances, cellular phones, embedded control, car radios, ... Technical necessities (temperature range, form factor, power consumption, …) and economic reasons result in different hardware J2ME Provides a uniform platform Restricted functionality compared to standard java platform (JVM) S. K. Nayak PEEC 5409 10.77 Applications of J2ME Example cellular phones NTT DoCoMo introduced ippli Applications on PDA, mobile phone, ... Game download, multimedia applications, encryption, system updates Load additional functionality with a push on a button (and pay for it)! Embedded control Household devices, vehicles, surveillance systems, device control System update is an important factor S. K. Nayak PEEC 5409 10.78 Characteristics and architecture Java Virtual Machine Applications Virtual Hardware (Processor) KVM (K Virtual Machine) Profile (MIDP) Min. 128 kByte, typ. 256 kByte Optimized for low performance devices Might be a co-processor Configurations Subset of standard Java libraries depending technical hardware parameters (memory, CPU) CLDC (Connected Limited Device Configuration) Basic libraries, input/output, security – describes Java support for mobile devices Profiles Configurations (CDC, CLDC) Java Virtual Machine (JVM, KVM) Operating system (EPOC, Palm, WinCE) Interoperability of heterogeneous devices belonging to the same category MIDP (Mobile Information Device Profile) S. K. Nayak Hardware (SH4, ARM, 68k, ...) Defines interfaces for GUIs, HTTP, application support, … PEEC 5409 10.79 Hardware independent development S. K. Nayak PEEC 5409 10.80 Summary J2ME Idea is more than WAP 1.x or i-mode Full applications on mobile phones, not only a browser Includes system updates, end-to-end encryption Platform independent via virtualization As long as certain common interfaces are used Not valid for hardware specific functions Limited functionality compared to JVM Thus, maybe an intermediate solution only – until embedded systems, mobile phones are as powerful as today’s desktop systems S. K. Nayak PEEC 5409 10.81