Mobile Services (ST 2010)



Similar documents
Chapter 2 HTML Basics Key Concepts. Copyright 2013 Terry Ann Morris, Ed.D

ICT 6012: Web Programming

WAP 2.x architecture Features, services and functions

Introduction to XHTML. 2010, Robert K. Moniot 1

HTML5 and CSS3 Part 1: Using HTML and CSS to Create a Website Layout

WEB DESIGN LAB PART- A HTML LABORATORY MANUAL FOR 3 RD SEM IS AND CS ( )

Web Design Basics. Cindy Royal, Ph.D. Associate Professor Texas State University

SUBJECT CODE : 4074 PERIODS/WEEK : 4 PERIODS/ SEMESTER : 72 CREDIT : 4 TIME SCHEDULE UNIT TOPIC PERIODS 1. INTERNET FUNDAMENTALS & HTML Test 1

BASICS OF WEB DESIGN CHAPTER 2 HTML BASICS KEY CONCEPTS COPYRIGHT 2013 TERRY ANN MORRIS, ED.D

Website Planning Checklist

Introduction to Web Design Curriculum Sample

Web Development. Owen Sacco. ICS2205/ICS2230 Web Intelligence

AJAX The Future of Web Development?

Oct 15, Internet : the vast collection of interconnected networks that all use the TCP/IP protocols

HTML, CSS, XML, and XSL

Short notes on webpage programming languages

Web Building Blocks. Joseph Gilbert User Experience Web Developer University of Virginia Library

Web. Services. Web Technologies. Today. Web. Technologies. Internet WWW. Protocols TCP/IP HTTP. Apache. Next Time. Lecture # Apache.

EUROPEAN COMPUTER DRIVING LICENCE / INTERNATIONAL COMPUTER DRIVING LICENCE WEB EDITING

Peers Technologies Pvt. Ltd. Web Application Development

Web Development 1 A4 Project Description Web Architecture

TIME SCHEDULE OBJECTIVES

IT3504: Web Development Techniques (Optional)

Mobile Web Development

So we're set? Have your text-editor ready. Be sure you use NotePad, NOT Word or even WordPad. Great, let's get going.

Lehrstuhl für Informatik 4 Kommunikation und verteilte Systeme

JISIS and Web Technologies

10CS73:Web Programming

Fast track to HTML & CSS 101 (Web Design)

Web Development I & II*

The Difference Between WAP And XML

Internet Technologies_1. Doc. Ing. František Huňka, CSc.

Outline of CSS: Cascading Style Sheets

IT3503 Web Development Techniques (Optional)

XHTML vs. HTML - Which is the Best for You?

Course Information Course Number: IWT 1229 Course Name: Web Development and Design Foundation

Developing XML Solutions with JavaServer Pages Technology

Chapter 1 Programming Languages for Web Applications

HTML Basics(w3schools.com, 2013)

Wireless Application Protocol (WAP)

ART 379 Web Design. HTML, XHTML & CSS: Introduction, 1-2

Introduction Designing your Common Template Designing your Shop Top Page Product Page Design Featured Products...

WAP PUSH, UP.NOTIFY, AND SMS Features and Benefits Comparison

Web Design Revision. AQA AS-Level Computing COMP2. 39 minutes. 39 marks. Page 1 of 17

FETAC Certificate in Multimedia Production. IBaT College Swords. FETAC Certificate in Multimedia Production Web Authoring Dreamweaver 3

WAP Push Technology Overview

Web Development. Owen Sacco. ICS2205/ICS2230 Web Intelligence

HTML Forms and CONTROLS

How To Design The Web And The Internet

1. When will an IP process drop a datagram? 2. When will an IP process fragment a datagram? 3. When will a TCP process drop a segment?

1Lesson 1: Overview of Web Design Concepts Objectives

WEB DEVELOPMENT IA & IB (893 & 894)

ISBN-13: ISBN-10: Cengage Learning International Offices

Guide to Wireless Communications. Digital Cellular Telephony. Learning Objectives. Digital Cellular Telephony. Chapter 8

Interwise Connect. Working with Reverse Proxy Version 7.x

The following multiple-choice post-course assessment will evaluate your knowledge of the skills and concepts taught in Internet Business Associate.

WIRIS quizzes web services Getting started with PHP and Java

LAB MANUAL CS (22): Web Technology

Differences between HTML and HTML 5

Creating HTML authored webpages using a text editor

Outline. CIW Web Design Specialist. Course Content

Lesson Review Answers

sessionx Desarrollo de Aplicaciones en Red Web Applications History (1) Content History (2) History (3)

Multimedia Applications. Mono-media Document Example: Hypertext. Multimedia Documents

ITNP43: HTML Lecture 4

Semantic HTML. So, if you're wanting your HTML to be semantically-correct...

Web Design with Dreamweaver Lesson 4 Handout

Comparison of WAP Push and Short Message Service (SMS)

The World Wide Web: History

Beginning Smartphone Web Development

WHITEPAPER. Skinning Guide. Let s chat Velaro info@velaro.com by Velaro

WWW. World Wide Web Aka The Internet. dr. C. P. J. Koymans. Informatics Institute Universiteit van Amsterdam. November 30, 2007

Web Design Specialist

Network Technologies

Step into the Future: HTML5 and its Impact on SSL VPNs

HTML CSS Basic Structure. HTML Structure [Source Code] CSS Structure [Cascading Styles] DIV or ID Tags and Classes. The BOX MODEL

Lesson Overview. Getting Started. The Internet WWW

JavaScript By: A. Mousavi & P. Broomhead SERG, School of Engineering Design, Brunel University, UK

Script Handbook for Interactive Scientific Website Building

Mobile Web Applications. Gary Dubuque IT Research Architect Department of Revenue

Professional & Workgroup Editions

ETSI TS V3.0.1 ( )

QQ WebAgent Quick Start Guide

Xtreeme Search Engine Studio Help Xtreeme

HTTP State Management

Module 6 Web Page Concept and Design: Getting a Web Page Up and Running

Secure Architecture for the Digital Rights Management of the M-Content

Basic Internet programming Formalities. Hands-on tools for internet programming

SmartTV User Interface Development for SmartTV using Web technology and CEA2014. George Sarosi

HTML TIPS FOR DESIGNING

Accessibility in e-learning. Accessible Content Authoring Practices

CS412 Interactive Lab Creating a Simple Web Form

CSE 3. Marking Up with HTML. Tags for Bold, Italic, and underline. Structuring Documents. An HTML Web Page File

Internet Technologies. World Wide Web (WWW) Proxy Server Network Address Translator (NAT)

Chapter 2: Interactive Web Applications

Saucon Valley School District Planned Course of Study

Further web design: HTML forms

Oracle Communications Network Charging and Control. Session Initiation Protocol (SIP) Protocol Implementation Conformance Statement Release 5.0.


The Internet. Chapter 10. Learning Objectives. Chapter Outline. After reading this chapter, you should be able to:

Transcription:

Mobile Services (ST 2010) Chapter 5: Mobile Web Axel Küpper Service-centric Networking Deutsche Telekom Laboratories, TU Berlin

Mobile Services Summer Term 2010 5 Mobile Web 5.1 WAP Architecture and Protocols 5.2 From HTML to XHTML-MP 5.3 Content Adaptation 5.4 Push Services 2

5.1 WAP Architecture and Protocols Overview WAP Forum and Open Mobile Alliance WAP Forum formed to address the standardization and interoperability issues that emerged. Group consisting of representatives from various world wide organizations: Terminal (Phone) Manufacturers Network Operators Systems Developers (Microbrowsers & Operating Systems) Application Developers (WAP Applications) World s Experts in: Hardware, Software, Data Networks, Security & Future Internet visionaries Adopted by OpenMobileAlliance (OMA) OMA - http://www.openmobilealliance.org/ Wireless Application Protocol (WAP) 1.0 Wireless Application Environment Wireless Markup Language (WML) WML Script Wireless Telephony Application... Wireless Protocols Wireless Session Protocol Wireless Transport Layer Security Protocol Wireless Transaction Protocol Wireless Datagram Protocol WAP 1.0 suffered from a bad user experience and less compatibility with existing Web standards WAP2.0 Standardized since 2000 and supported by all mobile devices since 2003 Main elements: XHTML-MP, HTTP-MP, TCP- MP 3

5.1 WAP Architecture and Protocols The "Fixed Web" Client Server Web browser Request URL Response (Content) http server Content Fixed Web Architecture for a very flexible and powerful provisioning of content and other functions in a world-wide distributed system Initially designed for fixed access only Web standards Standard naming model: all servers and content are named with Uniform Resource Locators Content typing: all content on the Web is given a specific type thereby allowing web browsers to process it correctly Standard content formats: all web browsers support standard content formats like markup languages (HTML), scripting languages (JavaScript), and a large number of other formats Standard protocols: networking protocols allow interworking between any web browser and any server Most commonly used protocol is the HyperText Transfer Protocol (HTTP), operated on top of the TCP/IP protocol suite

5.1 WAP Architecture and Protocols The "Mobile Web" Client Server WAP Micro Browser with WTA Request URL Response (Content) Push (Content) http server Push initiator Content WAP Model Optimizations and extensions of the original Web model for matching the characteristics of the mobile environment Wherever possible, existing standards have been adopted or have been used as a starting point for the WAP technology Push: content is not explicitly requested (pull), but delivered on the occurrence of predefined events Wireless Telephony Application: integration of telephone functions, e.g. call control functions Standard naming model: Web standard URLs and additional standard URIs for identifying local resources in the device Standard typing: WAP content of a specific type is consistent with WWW typing Standard content formats: based on Web technology and includes display markup, calendar information, electronic business card objects, and scripting language Standard protocols: pull (traditional Web access) and push protocols

5.1 WAP Architecture and Protocols Proxies Client Proxy Server WAP Micro Browser Encoded Request URL Encoded Content http proxy Feature enhancements Request URL Response (Content) http server Push initiator Content Proxies WAP utilizes proxy technology to optimize and enhance the connection between the wireless domain and the Web WAP proxy allows content and applications to be hosted on standard Web servers and to be developed using proven Web technologies Protocol Gateway: translates protocols from a wireless protocol stack (e.g., WAP 1.x) to the Web protocols Content Encoders and Decoders: translate WAP content into a compact format that allows for better utilization of the underlying link due to its reduced size User Agent Profile Management: describes capabilities of the respective mobile device and personal preferences Caching proxy: improves perceived performance and network utilization by maintaining a cache of frequently accessed resources

5.1 WAP Architecture and Protocols Supporting Servers Client Server Supporting Services WAP Micro Browser Request URL Response (Content) http server Content WAP Architecture includes supporting, which provide auxiliary functions to devices, proxies, and servers Supporting services are specific in function, but of general use to a wide variety of applications Supporting Server e.g. PKI Supporting Server e.g. UAProf Examples PKI Portal: allows devices to initiate the creation of new public key certificates UAProf Server: allows applications to retrieve the UE capabilities and personal profiles of user agents and individual users Provisioning Server: supports the automatic configuration of devices, for example, w.r.t. network parameters, with minimal or no user interaction

5.1 WAP Architecture and Protocols WAP Scenario Push proxy WTA server Web server Supporting servers Web server GPRS/UMTS network Master pull proxy Internet Secure full proxy Web server Web server Web server Secure network Web server WAP clients communicate with Web servers through a number of different proxies or directly WAP clients support a proxy selection mechanism for utilizing the most appropriate proxy for a given service or to connect directly to that service if necessary Proxies may be located in a number of places, including mobile network operators in order to provide feature enhancements coupled to the mobile network (e.g., telephony, localization, and provisioning) independent service providers to optimize the communication between device and application server (e.g., protocol translation and cookie caching) secure network to provide a secure channel between UE and the secure network

5.1 WAP Architecture and Protocols Protocol Stacks (I) UE WAE WSP WTP WTLS WDP WSP WTP WTLS WDP WAP Gateway HTTP SSL TCP Web server WAE HTTP SSL TCP WAP 1.x Gateway Protocol stack of the original WAP architecture WAP Gateway converts between datagram-based protocol and connectionoriented protocols Bearer Bearer IP IP UE WAE HTTP(mP) TCP(mP) IP Wireless HTTP(mP) TCP(mP) IP Wireless WAP Proxy HTTP TCP IP Wired Web server WAE HTTP TCP IP Wired WAP HTTP Proxy with Profiled TCP/HTTP Widely used in the Internet for ordinary web access, multimedia data, etc. Like the WAP gateway, proxy is located between wireline and wireless networks to enhance performance by using the wireless profiles of TCP and HTTP Wireless profiled versions are interoperable with TCP and HTTP

5.1 WAP Architecture and Protocols Protocol Stacks (II) UE WAE HTTP TLS TCP(mP) TCP(mP) WAP Proxy TCP Web server WAE HTTP TLS TCP WAP Proxy Support for TLS Tunneling Proxy is used for establishing a connection-oriented tunnel to the web server Allows TLS to provide end-to-end security between UE and origin server IP Wireless IP Wireless IP Wired IP Wired Widely used for enabling end-to-end security in E-Commerce scenarios UE WAE HTTP TCP IP Wireless/wired network border Web server WAE HTTP TCP IP Direct Access UE directly accesses a Web server via the Internet Enables bearer level security (e.g., IPSec) Wireless Wireless Wired Wired Wireless optimizations as defined by the wireless profiles for TCP and HTTP are not available

5.2 From HTML to XHTML-MP Different Appearances of the Same Content HTML 4.01 XHTML-MP HTML 4.01 XHTML 1.0 XHTML-MP 1.0 XHTML 1.0 XHTML-MP 1.0 HTML 4.01 11

5.2 From HTML to XHTML-MP HTML HyperText Markup Language (HTML) Predominant markup language for web pages Enables the creation of structured documents by marking text such as headings, paragraphs, lists, links, quotes, and other items by HTML elements Provides elements for including images and objects as well as for the creation of interactive forms Allows for the loading and execution of scripts (JavaScript) that affect the behavior of HTML web pages May include Cascading Style Sheets (CSSs) to define the appearance and layout of text and other material Originally created by Tim Berners-Lee as an application of SGML Meanwhile standardized by W3C Most common form of an HTML element <tag attribute1="value1" attribute2="value2">content to be rendered</tag> Example <!doctype html> <html> <head> <title>hello HTML</title> </head> <body> <p>hello World!</p> </body> </html> W3C World Wide Web Consortium Maintains Web standards and specifications http://www.w3.org/ 12

5.2 From HTML to XHTML-MP XHTML extensible HyperText Markup Language (XHTML) Intersection of HTML and XML, a more restrictive subset of SGML Stricter than HTML all tags (including empty elements) must be closed and in lower case Because XHTML documents need to be well-formed they can be parsed using standard XML parsers (unlike HTML, which requires dedicated parsers) Tags and attributes must be in lowercase <P ID="p1">XHTML Tutorial paragraph 1</P> <p id="p1">xhtml Tutorial paragraph 1</p> Tags must be closed <p>xhtml Tutorial paragraph 1 <p>xhtml Tutorial paragraph 1</p> <br> <br /> Elements must be properly nested <p><b>xhtml Tutorial paragraph 1</p></b> <p><b>xhtml Tutorial paragraph 1</b></p> Attributes cannot be minimized <select multiple> <option>xhtml Tutorial Part 1</option> <option selected>xhtml Tutorial Part 2</option> <option>xhtml Tutorial Part 3</option> </select> <select multiple="multiple"> <option>xhtml Tutorial Part 1</option> <option selected="selected">xhtml Tutorial Part 2</option> <option>xhtml Tutorial Part 3</option> </select> Attribute values must be enclosed within quotes <p id=p1>xhtml MP tutorial paragraph 1</p> <p id="p1">xhtml MP tutorial paragraph 1</p> 13

5.2 From HTML to XHTML-MP XHTML Basic XHTML Basic Cut-down version of XHTML suitable for devices with limited processing and display capabilities Looks like (X)HTML, but without many features that are hard to support on mobile devices Frames Nested tables Internal Cascading Style Sheets (CSSs) Complex forms and scripting Defined by W3C Module Elements included Structure <body>, <head>, <html>, <title> Text <abbr>, <acronym>, <address>, <blockquote>, <br>, <cite>, <code>, <dfn>, <div>, <em>, <h1>, <h2>, <h3>, <h4>, <h5>, <h6>, <kbd>, <p>, <pre>, <q>, <samp>, <span>, <strong>, <var> Hypertext <a> List <dl>, <dt>, <dd>, <ol>, <ul>, <li> Basic Forms <form>, <input>, <label>, <select>, <option>, <textarea> Basic Tables <caption>, <table>, <td>, <tr>, <th> Image <img> Object <object>, <param> Meta Information <meta> Link <link> Base <base> 14

5.2 From HTML to XHTML-MP XHTML Mobile Profile XHTML Mobile Profile (XHTML MP) Extends XHTML Basic to bring enhanced functions, including additional presentation elements and support for internal style sheets Part of WAP 2.0 and standardized by OMA (Open Mobile Alliance) XHTML XHTML MP XHTML Basic Module Elements included Structure <body>, <head>, <html>, <title> Text <abbr>, <acronym>, <address>, <blockquote>, <br>, <cite>, <code>, <dfn>, <div>, <em>, <h1>, <h2>, <h3>, <h4>, <h5>, <h6>, <kbd>, <p>, <pre>, <q>, <samp>, <span>, <strong>, <var> Presentation <b>, <big>, <hr>, <i>, <small> Style Sheet <style> element and style attribute Hypertext <a> List <dl>, <dt>, <dd>, <ol>, <ul>, <li> Basic Forms <form>, <input>, <label>, <select>, <option>, <textarea>, <fieldset>, <optgroup> Basic Tables <caption>, <table>, <td>, <tr>, <th> Image <img> Object <object>, <param> Extensions Meta Information <meta> compared to Link <link> XHTML Basic Base <base> Legacy <start> attribute on <ol>, value attribute on <li> 15

5.2 From HTML to XHTML-MP Evolution of Wireless Markup Languages by David Höffer, 2007 16

5.2 From HTML to XHTML-MP Cascading Style Sheets (I) Cascading Style Sheets (CSS) Way to define the visual appearance of different (X)HTML elements Maybe used to specify the size, color, and position of standard (X)HTML elements like <body>, <p>, <td> etc. as well as sections that may be defined using a name or id Preferred way of formatting wellstructured (X)HTML code, because it facilitates having standard design throughout the website CSS3 Still subject to standardization Additional features: multi-column layout, box radius, multiple backgrounds, border images,... Will look the same across all borders WAP CSS (WCSS) Used in XHTML MP Subset of CSS2 plus some WAP-specific extensions CSS1 Published by W3C in December 1996 CSS2 Published by W3C in May 1998 Additional features: absolute, relative, fixed positions, new font properties,... (c) Hicksdesign, http://www.hicksdesign.co.uk/boxmodel/ 17

5.2 From HTML to XHTML-MP Cascading Style Sheets (II) Multiple CSS sources CSS style information can be either attached as a separate document or embedded in the HTML document. Multiple style sheets can be imported. Different styles can be applied depending on the output device being used; for example, the screen version can be quite different from the printed version, so that authors can tailor the presentation appropriately for each medium. Priority scheme for CSS sources (from highest to lowest priority): Author styles (style information provided by the web page author), in the form of Inline styles, inside the HTML document, style information on a single element, specified using the "style" attribute. Embedded style, blocks of CSS information inside the HTML document itself External style sheets, i.e. a separate CSS-file referenced from the document User style Local CSS-file specified by the user using options in the web browser, and acting as an override, to be applied to all documents. User agent style Default style sheet applied by the user agent, e.g. the browser's default presentation of elements 18

5.2 From HTML to XHTML-MP Cascading Style Sheets (III) Without CSS: example.html: <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE html PUBLIC "-//WAPFORUM/DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/dtd/xhtml-mobile10.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> With CSS: <head> <title>css Example"</title> <link rel="stylesheet" href="mobile.css" type=text/css" /> </head> <body> <h1>an Example</h1> <p>item 1</p> <p>item 2</p> </body> </html> mobile.css: /* Mobile Style Sheet */ h1 { font-size:xlarge; color:#4040ff; text-align:center; text-decoration:underline } p { border:1px #6060ff solid; background:#f0f0ff; text-align:center; font-size:medium; padding:4px } a { color:black } body { background:#c0c0ff } 19

5.3 Content Adaption Strategies for Adapting a "Fixed Web Site" Going Mobile with Your Web Site Different options for going mobile with a web site initially designed for the Fixed Web Do nothing: just leave the site as it is and let the user's browser render it Remove formatting: simplify the site so that it loads faster and uses less bandwidth, but leave the design the same CSS-based design: use a different CSS file for mobile visitors and define mobile optimized formatting of various page elements through this CSS Create a new site: develop a version of your site tailored for mobile browsers and people on the move 20

5.3 Content Adaption Device Variety Problem Statement No device homogeneity mobile devices significantly vary in a number of features Hardware Screen size Number of colors Type of keypad Number of softkeys... Software and operating system Type of browser Java support WML, HTML, XHTML support CSS support JavaScript/Ajax support... How to design a mobile web site that provides all users a best possible experience depending on the type of device they use 21

5.3 Content Adaption Adaption versus Lowest Common Denominator Adaptation/Multiserving Provides the content tailored to the capabilities of the respective device Techniques used for adaptation Detection Redirection Setting correct MIME types Changing links Removing/scaling graphics Lowest Common Denominator (LCD) Find the lowest common denominator of the capabilities of all target devices one wants to address with the content Works reasonable well for all devices Devices with better capabilities than LCD will see a version of the content that may not be very beautiful How to Adapt? Design alternative CSS Controls the display of elements and images Easiest method Create multiple versions of pages Re-direct the user to a devicespecific version (alteration) Used to get the most control over what is shown to each device Most complex method Automatic adaptation Create content in one format and use a tool to generate devicespecific versions Most elegant method 22

5.3 Content Adaption Progressive Enhancement and Device Plans Progressive Enhancement Method of using web techniques in a layered fashion to allow anyone with any web browser to access the content, regardless of its capabilities Start with encoding the content with a markup language that is all devices can manage (lowest common denominator) Next step: add basic styling techniques Continue to add layers until the best possible user experience is achieved Device plans Useful method: create a device plan at the very start, which encompasses all devices that should be supported Class with the most limited capabilities represents the layer to start progressive enhancement Class Markup CSS JavaScript Class A XHTML, XHTML-MP, HTML5 CSS2, CSS3 Great, includes DHTML, Ajax Class B XHTML, XHTML-MP CSS2 (Decent) Limited, some DHTML Class C XHTML, XHTML-MP CSS2 (Limited) Limited Class D XHTML-MP CSS2 (Basic) None Class E XHTML-MP, WML None None 23

5.3 Content Adaption HTTP Content Negotiation and User Agent Detection HTTP Content Negotiation HTTP header includes content negotiation mechanisms where the browser indicates what type of information it can accept Server decides what type of information to return based on the information received from the browser Accept header of HTTP fixes character set, content codings, and natural language (C) Content Adaptation, MediaLab, TeliaSonera User Agent Detection In addition to ACCEPT headers, clients send a User-Agent header to identify themselves Contains information about the browser, the operating system making the request, and hardware information (C) Content Adaptation, MediaLab, TeliaSonera 24

5.3 Content Adaption CC/PP and UAProf Device Capabilities and Preference Profile Growing number of devices connected to the Internet requires to tailor content to the capabilities of the respective device CC/PP standardized by W3C is a standard way for publishing configuration details and capabilities to servers Extensible framework for communicating the delivery context (screen size, audio capabilities, bandwidth, etc.) from a device to a web server, resulting in the delivery of web content that is usable on a given device User Agent Profile (UAProf) by OMA Concrete CC/PP vocabulary dedicated to mobile phone descriptions Content servers, gateways, and proxies can use this information and optimize the content for the device and the user Supported attributes: Hardware platform screen size, audio capabilities, color capabilities,... Software platform operating system, mime types, character sets, encoders,... Network characteristics GSM/GPRS capability, security support, Bluetooth,... Browser characteristics browser info, HMTL/XHTML, Java, JavaScript, frames, tables,... Push characteristics push content types, push message size,... 25

5.3 Content Adaption UAProf Scenario http header: accept-language: en accept-charset: ISO-8859-1, UTF-8; Q=0.8, ISO-10646-UCS-2; Q=0.6 profile: http://nds.nokia.com/uaprof/n6100r100.xml user-agent: Nokia6100/1.0 (4.02) Profile/MIDP-1.0 Configuration/CLDC-1.0 Client Server http://nds. nokia.com/ WAP Micro Browser Request URL Response (Content) http server Content Request URL Response (Content) Device Profile Repository UAProf files tend to grow large Common practice: only the URL of the device profile is transmitted from the mobile device to the content server Content server fetches the profile from a device profile repository and may store it in its own database for later use WAP gateways and HTTP proxies must support UAProf header forwarding 26

5.3 Content Adaption UAProf Example User Agent Profile for the Nokia 6230 (excerpt): 27

5.3 Content Adaption WURFL http://www.tera-wurfl.com/explore/ http://wurfl.sourceforge.net/ Wireless Universal Resource File (WURFL) XML configuration file which contains information and features of many mobile devices Open source and intended for developers working with WAP and Wireless Includes (and corrects) information from UAProf repositories maintained by the manufacturers Device type is derived from the USER AGENT header sent by the browser WURFL API is available in many programming languages, including Java, PHP,.Net, Ruby, and Phyton 28

5.4 Push Services Pull versus Push Client Server Pull Push Pull model Client requests a service or information from a server which then responds in transmitting information to the client Example: browsing the Web, where the client enters a URL (the requests) and the server answers by sending a Web page (the response) Push model Also based on the client/server model No explicit request from the client before the server transmits its content OMA Push Framework Introduces a means to transmit information to a device without a user request Enables server-to-client content delivery via...... various communication methods (protocols)... interconnection types (point-topoint, point-to-multipoint)... transport bearers (underlying protocols and bearer networks) 29

5.4 Push Services Push Components Multicast/ Broadcast Push Delivery via Push-OTA Protocol Unicast Push Delivery via Push-OTA Protocol Push Proxy Gateway Push Request via Push Access Protocol (PAP) Content provider as Push Initiator Push Proxy Gateway (PPG) Proxy for push operations initiated by external applications Gateway for converting external application and interface operations for delivery via Push Over-the-Air (OtA) Push client registration Push client address translation Push content transformation Store-and-forward support for push Push Initiator (PI) Triggers the delivery of push content transmits the push content and delivery instructions to a PPG Push Client Push software (daemon) at the mobile device permanently listening for incoming push messages Receives content and delivers it to the respective client application 30

5.4 Push Services Delivery of a Push Message Client application Push client 4 Push message delivery Push message OTA delivery Push message delivery confirmation 6 Request validation Push request accepted 2 Request processing 5 3 Result notification Push request 1 1 PI sends a request for delivery of a new or replacement of a prior message Indicates one or several target users and a client application to whom the message is delivered PI may select various options for message delivery 2 PPG sends a confirmation or a reject 3 PPG delivers push message to the push client via Push-OTA protocol 4 Push client confirms delivery 5 PI is notified about the successful delivery of the push message 6 Push client passes the content to the client application (browser, multimedia messaging client, instant messaging client, email client,...) 31

5.4 Push Services Delivery of a Push Message from the PI to the PPG Push message is sent as an HTTP POST to the Push Proxy Gateway POST is a multipart XML document, with the first part being the PAP (Push Access Protocol) Section and the second part being either a Service Indication or a Service Load. POST Contains at a minimum the URL being posted to (this is not standard across different PPG vendors), and the content type PAP PAP XML contains at the minimum, a <pap> element, a <push-message> element, and an <address> element Service Indication PUSH Service Indication (SI) contains at a minimum an <si> element and a <indication> element. HTTP Post PAP XML Service Indication or Service Load XML POST /somelocation HTTP/1.1 Host: ppg.somecarrier.com Content-Type: multipart/related; boundary=someboundarymesg; type="application/xml" --someboundarymesg Content-Type: application/xml <?xml version="1.0"?> <!DOCTYPE pap PUBLIC "-//WAPFORUM//DTD PAP 1.0//EN" http://www.wapforum.org/dtd/pap_1.0.dtd> <pap> <push-message push-id="some_push_id"> <address address-value="wappush=+12065551212/type= PLMN@ppg.somecarrier.com" /> </push-message> </pap> --someboundarymesg Content-Type: text/vnd.wap.si <?xml version="1.0"?> <!DOCTYPE si PUBLIC "-//WAPFORUM//DTD SI 1.0//EN" http://www.wapforum.org/dtd/si.dtd> <si> <indication si-id=345532 href=http://mmsc.somecarrier.com/cfjiojf43f> A new MMS has been received, download? </indication> </si> 32

5.4 Push Services Delivery of a Push Message from the PPG to the Client PPG Delivery to Mobile Station Once a PUSH Message is received from the Push Initiator, the PPG has two options for delivery: Connectionless PUSH PPG has a local SMS queuing mechanism running locally, which is connected to the operator's SMSC Since a WAP PUSH Message can be larger than a single SMS message allows for, the message may be broken up into multiple SMS messages Connection-oriented PUSH Gateway is aware of the handsets IP Address If the gateway is unable to determine the IP Address of the handset, or is unable to connect to the device, the push notification will be encoded and sent as an SMS. Problem: devices while registered to the network, may not have a valid PDP context Other PUSH Attributes Push notifications can be confirmed or unconfirmed. Push notifications can be set to expire if not delivered before a certain time. 33

5.4 Push Services End-to-End Push Framework 34