It2402 mobile communication unit5

120
05/26/2022 IT 2404 Mobile Communication By Dr T Gnanasekaran 1

Transcript of It2402 mobile communication unit5

Slide 1

12-Feb-16

IT 2404 Mobile Communication ByDr T Gnanasekaran

1

WAP Model- Mobile Location based services WAP GatewayWAP protocols WAP user agent profile- caching model-wireless bearers for WAP - WML WMLScripts WTA - iMode- SyncML.UNIT V APPLICATION LAYER 12-Feb-162

WAP- Wireless Application Protocol12-Feb-163

OverviewWAP IntroductionWAP architecture requirementsArchitecture overviewWorld-wide web modelWAP modelComponents of WAP architectureSample Configuration of WAP technologyUsage, Advantages & Disadvantages of WAPSummary12-Feb-164

WAP- Wireless Application ProtocolAn open, global specification that empowers mobile users with wireless devices to easily access and interact with internet information and services instantly.

The wireless industry came up with the idea of WAP. The point of this standard was to show internet contents on wireless clients, like mobile phones. 12-Feb-165

WAP stands for Wireless Application Protocol WAP is an application communication protocol WAP is used to access services and information WAP is inherited from Internet standards WAP is for handheld devices such as mobile phones WAP is a protocol designed for micro browsers WAP enables the creating of web applications for mobile devices. WAP uses the mark-up language WML (not HTML) WML is defined as an XML 1.0 application12-Feb-166

The WAP specifications continue to be developed by contributing members, who, through interoperability testing, have brought WAP into the limelight of the mobile data marketplace with fully functional WAPenabled devices as shown below:

12-Feb-167

The basic AIM of WAP is to provide a web-like experience on small portable devices - like mobile phones and PDAs.12-Feb-168

Purpose of WAPTo enable easy, fast delivery of relevant information and services to mobile users.Type of devices that use WAPHandheld digital wireless devices such as mobile phones, pagers, two-way radios, smart phones and communicators -- from low-end to high-end.WAP works with most Wireless networks such as:CDPD, CDMA, GSM, PDC, PHS, TDMA, FLEX, ReFLEX, iDEN, TETRA, DECT, DataTAC, Mobitex.12-Feb-169

Operating systems that are compatible with WAP

WAP is a communications protocol and an application environment.

WAP is independent of OS that means WAP can be implemented on any OS.

It can be built on any operating system including Palm OS, EPOC 32, Windows CE, FLEXOS, OS/9, Java OS, etc. It provides service interoperability even between different device families.

12-Feb-1610

WAP Architecture Requirements

Leverage existing standards whenever possibleDefine a layered, scaleable and extensible architectureSupport as many wireless networks as possibleOptimize for narrow-band bearers with high latency12-Feb-1611

WAP Architecture Requirements (Contd.)Optimize for efficient use of device resourcesProvide support for secure applications and communication

12-Feb-1612

Architecture OverviewWWW programming model is optimized and extended to match characteristics of the wireless environment

Utilizes proxy technology to connect between the wireless domain and WWW12-Feb-1613

World-Wide Web Model

CGI, Scripts,Etc.

ContentWeb Server

ClientWebBrowser

Request(URL)Response(Content)12-Feb-1614

WAP Programming Model

CGI, Scripts,Etc.

ContentWeb Server

ClientWAEUserAgentRequest(URL)Response(Content)

GatewayEncodersAnd Decoders

EncodedRequestEncodedResponse12-Feb-1615

WAP Device - Is used to access WAP applications and content. It might be a PDA, handheld computer.

WAP Client - Entity that receives content from Internet via a WAP Gateway. This is usually the WAP Browser.

WAP Content/Origin/Application Server - Element in the network where the information or web/WAP applications resides. 12-Feb-1616

WAP Proxy - Acts both as a client and as a server in the network.Typically hasProtocol gateway : translates requests from the WAP protocol stack to WWW protocol stackContent encoders and decoders : translate WAP content into compact encoded formats to reduce the size of data over the networkIt allows content and applications to be hosted on standard WWW servers and developed using proven WWW technologies such as CGI scripting12-Feb-1617

WAP Gateway - Intermediary element used to connect two different types of network. It receives request directly from the clients as if it actually were the origin server that clients want to receive the information form. The clients are usually unaware that they are speaking to the Gateway.WAP BrowserSoftware running on the WAP device that interprets the WAP content arriving from the internet and decides how to display it on WAP device.

12-Feb-1618

WML WML Wireless Markup Language formerly called HDML (Handheld Devices Markup Language)Is a tag language that allows the text portions of Web Pages to be presented on cellular phones and Personal Digital Assistants (PDAs) via wireless access. WML is used for delivering data to WAP devices, and is HTML- like in its appearance. An alternative to WML is I-Modes cHTML language.12-Feb-1619

WAP Network Example Web ServerWirelessNetworkWAPProxyHTMLFilterWTAServerWAPClient

WMLWMLHTML

12-Feb-1620

WWW Protocol Stack

TCP/IPUDP/IPTLS - SSLHTTPHTMLJava Script12-Feb-1621

Components of WAP ArchitectureOther ServicesAnd Applications

Transport Layer (WDP)Security Layer (WTLS)Transaction Layer (WTP)Session Layer (WSP)Application Layer (WAE)

GSMCDMAPHSIS-136CDPDPDC-PFLEXEtc

Bearers :

TCP/IPUDP/IPTLS - SSLHTTPHTMLJava Script12-Feb-1622

Wireless Application Environment (WAE)General-purpose application environment based on a combination of WWW and mobile telephony technologies.It defines the user interface on the phone. It contains WML and WTA (Wireless Telephony Application).Primary objective interoperable environment.

12-Feb-1623

Wireless Application Environment(Contd.)WAE includes a micro-browser (Client software designed to overcome challenges of mobile handheld devices that enables wireless access to services such as Internet information in combination with a suitable network) server environment which providesWMLWML scriptWTAContent formats12-Feb-1624

Wireless Session Protocol (WSP)The WAP session protocol (WSP) layer provides a lightweight session layer to allow efficient exchange of data between applications.

Application layer with a consistent interface for two session servicesConnection-oriented service that operates above the transaction layer protocol (WTP)Connectionless service that operates above a secure or non-secure datagram service (WDP)

Optimized for low-bandwidth bearer networks with long latency12-Feb-1625

Wireless Transaction Protocol (WTP)Runs on top of a datagram serviceThe WAP transaction protocol (WTP) layer provides transaction support, adding reliability to the datagram service provided by WDP.Light weight transaction-oriented protocol Three classes of transaction servicesUnreliable one-way requestsReliable one-way requestsReliable two-way request-reply transactions12-Feb-1626

Wireless Transport Layer Security (WTLS)Based on industry-standard Transport Layer Security (TLS) protocolOptimized for use over narrow-band communication channelsFeatures:Data integrityPrivacyAuthenticationDenial-of-service protection12-Feb-1627

Wireless Datagram Protocol (WDP)The WAP datagram protocol (WDP) is the Transport layer that sends and receives messages via any available bearer network, including SMS, USSD, CSD, CDPD, IS136 packet data, and GPRS.

Operates above the data capable bearer services supported by various network types.

Provides a common interface to the upper layer protocols and hence they function independent of the underlying wireless network.12-Feb-1628

BearersDiffering levels of quality of service with respect to throughput, error rate, and delaysWAP protocols are designed to compensate for or tolerate these varying levels of serviceWDP specification lists the bearers that are supported and techniques used to allow WAP protocols to run over each bearer12-Feb-1629

Sample WAP StacksNo layerIPNon-IPUDPWDP

WTPWSP/BWAEWTLSWAEUser Agents

No layerIPNon-IPUDPWDPWTPWTLSApplications over transactions

No layerIPNon-IPUDPWDPWTLSApplications over Datagram Transport

WAP TechnologyOutside of WAP 12-Feb-1630

Mobile-Originated Example of WAP ArchitectureThe request from the mobile device is sent as a URL through the operator's network to the WAP gateway, which is the interface between the operator's network and the Internet as shown in the figure below.

12-Feb-1631

FUTURE OF WAPWill WAP comply with Third Generation wireless standards?Yes, WAP has been designed to be as independent as possible from the underlying network technology.Is WAP necessary with higher bandwidth 3G networks?Even as bandwidths increase, the cost of that bandwidth does not fall to zero. These costs result from higher power usage in the terminals, higher costs in the radio sections, greater use of RF spectrum, and increased network loading. In addition, the original constraints WAP was designed for -- intermittent coverage, small screens, low power consumption, wide scalability over bearers and devices, and one-handed operation -- are still valid in 3G networks. Finally, we can expect the bandwidth required by application users to steadily increase. Therefore, there is still a need to optimize the device and network resources for wireless environments. We can expect WAP to optimize support for multimedia applications that continue to be relevant.12-Feb-1632

If WAP is very successful in mass-markets on 2.5G networks, 3G networks may be needed purely for capacity relief.The reasons to migrate to WAP technologyNetwork operators are behind WAPWith minimal risk and investment, WAP enables operators to decrease churn, cut costs, and increase revenues by improving existing, value-added services and offering exciting new informational services.Why are equipment manufacturers interested in WAP?Being a global open specification suite, WAP has generated the critical mass for manufacturers. This has opened up new product and marketing opportunities in the wireless industry and provides new revenue to participating companies.12-Feb-1633

WAP in the Competitive EnvironmentCompetition for WAP protocols could come from a number of sources: subscriber identity module (SIM) toolkitThe use of SIMs or smart cards in wireless devices is already widespread and used in some of the service sectors. Windows CEThis is a multitasking, multithreaded operating system from Microsoft designed for including or embedding mobile and other space-constrained devices. JavaPhoneSun Microsystems is developing PersonalJava and a JavaPhone API, which is embedded in a Java virtual machine on the handset. NEPs will be able to build cellular phones that can download extra features and functions over the Internet; thus, customers will no longer be required to buy a new phone to take advantage of improved features.12-Feb-1634

USAGE- Corporate Applications: Sales force automation where sales people use their WAP enabled handsets to get instant, direct access to the latest pricing, latest news, competitive information any time, anywhere. - Online Services: Banking: Users can get their current balance, transfer funds between accounts and receive fax of a mini-statement.Electronic Commerce: Subscribers can use their handset just like their PC to purchase products and services over the Web.12-Feb-1635

-Tele servicesPrepaid Services: With a WAP-enabled phone, prepaid subscribers can see their current balance with the press of a button. By pressing another button, they can also recharge their account by entering a credit card or voucher number into the handset.

Personal ProductivityEmail: Using WAP users can keep track of their email right from their handset.Others include: Interactive ChatAuctionsGames

12-Feb-1636

The ADVANTAGES that WAP can offer over these other methods are the following: open standard, vendor independent network-standard independent transport mechanismoptimized for wireless data bearers application downloaded from the server, enabling fast service creation and introduction, as opposed to embedded software12-Feb-1637

DISADVANTAGES of WAP

Small screens: For web phones, there's an incredibly small viewing area; palmtops are barely better.Speed of access: All devices have slow access. Limited or fragmented availability: Wireless web access is sporadic in many areas and entirely unavailable in other areas.Price: Many technology limitations are being addressed by higher-end devices and services. But the entry price for a good wireless web palmtop with decent display, keyboard, and speed is easily $700 to $900, not including monthly access.Lack of user habit: It takes some patience and overcoming the learning curve to get the hang of it -- connecting, putting in an address, typing. Users just aren't used to the idea and protocol yet. 12-Feb-1638

Summary WAP provides a markup language and a transport protocol that open the possibilities of the wireless environment and give players from all levels of the industry the opportunity to access an untapped market that is still in its infancy. The bearer-independent nature of WAP has proved to be a long-awaited breath of fresh air for an industry riddled with multiple proprietary standards that have suffocated the advent of a new wave of mobile-Internet communications. WAP is an enabling technology that, through gateway infrastructure deployed in mobile operator's network, will bridge the gap between the mobile world and the Internet, bringing sophisticated solutions to mobile users, independent of the bearer and network. Backed by 75 percent of the companies behind the world's mobile telephone market and the huge development potential of WAP, the future for WAP looks bright.12-Feb-1639

Wireless Application Protocol (WAP)Open standard providing mobile users of wireless terminals access to telephony and information servicesWireless terminals include wireless phones, pagers and personal digital assistants (PDAs)Designed to work with all wireless network technologies such as GSM, CDMA, and TDMABased on existing Internet standards such as IP, XML, HTML, and HTTPIncludes security facilities12-Feb-1640

WAP Protocol Stack

12-Feb-1641

WAP Programming Model

12-Feb-1642

Wireless Markup Language (WML) FeaturesText and image support formatting and layout commandsDeck/card organizational metaphor WML documents subdivided into cards, which specify one or more units of interactionSupport for navigation among cards and decks includes provisions for event handling; used for navigation or executing scripts12-Feb-1643

WML ScriptScripting language for defining script-type programs in a user device with limited processing power and memoryWMLScript capabilities:Check validity of user input before its sentAccess device facilities and peripheralsInteract with user without introducing round trips to origin server12-Feb-1644

WML Script WMLScript features:JavaScript-based scripting languageProcedural logicEvent-basedCompiled implementationIntegrated into WAE12-Feb-1645

Wireless Application Environment (WAE)WAE specifies an application framework for wireless devicesWAE elements:WAE User agents software that executes in the wireless deviceContent generators applications that produce standard content formats in response to requests from user agents in the mobile terminalStandard content encoding defined to allow a WAE user agent to navigate Web contentWireless telephony applications (WTA) collection of telephony-specific extensions for call and feature control mechanisms12-Feb-1646

WAE Client Components

12-Feb-1647

Wireless Session Protocol (WSP)Transaction-oriented protocol based on the concept of a request and a replyProvides applications with interface for two session services:Connection-oriented session service operates above reliable transport protocol WTPConnectionless session service operates above unreliable transport protocol WDP12-Feb-1648

Connection-mode WSP ServicesEstablish reliable session from client to server and releaseAgree on common level of protocol functionality using capability negotiationExchange content between client and server using compact encodingSuspend and resume a sessionPush content from server to client in an unsynchronized manner12-Feb-1649

WSP Transaction TypesSession establishment client WSP user requests session with server WSP userSession termination client WSP user initiates terminationSession suspend and resume initiated with suspend and resume requestsTransaction exchange of data between a client and serverNonconfirmed data push used to send unsolicited information from server to clientConfirmed data push server receives delivery confirmation from client12-Feb-1650

Wireless Transaction Protocol (WTP)Lightweight protocol suitable for "thin" clients and over low-bandwidth wireless linksWTP featuresThree classes of transaction serviceOptional user-to-user reliability: WTP user triggers confirmation of each received messageOptional out-of-band data on acknowledgmentsPDU concatenation and delayed acknowledgment to reduce the number of messages sentAsynchronous transactions12-Feb-1651

WTP Transaction ClassesClass 0: Unreliable invoke message with no result messageClass 1: Reliable invoke message with no result messageClass 2: Unreliable invoke message with one reliable result message12-Feb-1652

WTP PDU TypesInvoke PDU used to convey a request from an initiator to a responderACK PDU used to acknowledge an Invoke or Result PDUResult PDU used to convey response of the server to the clientAbort PDU used to abort a transactionSegmented invoke PDU and segmented result PDU used for segmentation and reassemblyNegative acknowledgment PDU used to indicate that some packets did not arrive12-Feb-1653

Examples of WTP Operation

12-Feb-1654

Wireless Transport Layer Security (WTLS) FeaturesData integrity ensures that data sent between client and gateway are not modified, using message authenticationPrivacy ensures that the data cannot be read by a third party, using encryptionAuthentication establishes authentication of the two parties, using digital certificatesDenial-of-service protection detects and rejects messages that are replayed or not successfully verified12-Feb-1655

WTLS Protocol StackWTLS consists of two layers of protocolsWTLS Record Protocol provides basic security services to various higher-layer protocolsHigher-layer protocols:The Handshake ProtocolThe Change Cipher Spec ProtocolThe Alert Protocol12-Feb-1656

WTLS Protocol Stack

12-Feb-1657

WTLS Record Protocol Operation

12-Feb-1658

Phases of the Handshake Protocol ExchangeFirst phase used to initiate a logical connection and establish security capabilitiesSecond phase used for server authentication and key exchangeThird phase used for client authentication and key exchangeForth phase completes the setting up of a secure connection12-Feb-1659

Wireless Datagram Protocol (WDP)Used to adapt higher-layer WAP protocol to the communication mechanism used between mobile node and WAP gatewayWDP hides details of the various bearer networks from the other layers of WAPAdaptation may include:Partitioning data into segments of appropriate size for the bearerInterfacing with the bearer network12-Feb-1660

Wireless Control Message Protocol (WCMP)Performs the same support function for WDP as ICMP does for IPUsed in environments that dont provide IP bearer and dont lend themselves to the use of ICMPUsed by wireless nodes and WAP gateways to report errors encountered in processing WDP datagramsCan also be used for informational and diagnostic purposes

12-Feb-1661

i-mode12-Feb-1662

OverviewIntroduction to i-modei-mode and mobile technology todayi-mode DevelopmentiHTMLi-modes Business ModelFuture of i-mode

12-Feb-1663

What is i-mode?Service across a wireless network which enables handheld devices (such as cell phones) to access the Internet

Mobile internet service offered by NTT DoCoMoIntroduced in February 1999

Extremely popular in Japan and expanding into EuropeAs of March 31st, 2002, there are approximately 32,150,000 subscribers (in Japan)

Quick Note: Invented by Mari Matsunaga

12-Feb-1664

What Can I do With i-mode?Web-browsing Email (the killer app)Chat, Games

Access to informationTransaction ContentMoney Transfer, Balance Check, Ticket ReservationInformation ContentNews updates, sports news, stock quotesDatabase ContentRestaurant Guide, Telephone Directory

12-Feb-1665

A Look at an i-mode Device

Currently an i-mode device is an equivalent of a very low-end computerAdditional buttons : directional, select and the i button.Must have an iHTML browser.Menu based interface (i-Menu)Try typing in a URL => Its not easy!

12-Feb-1666

i-mode Transmission SystemPacket - switching network information divided into packets when sent and reassembled when received by the i-mode user => faster.i-mode users pay by volume of data downloaded.Code Division Multiple Access method for allocating wireless channel (9.6kbps)

12-Feb-1667

i-mode vs WAPi-mode packet switching networkHandset contains IP stackCommunicates directly using iHTML web sites, through DoCoMos relay centersWAP protocol originally implemented on a circuit switched networkCan be packet switched e.g. GPRSRequires gateway if required to communicate using TCP/IPCan WAP support streaming video?Both i-mode and WAP will be supporting XHTML

Comparing WAP and imode is not straightforward!12-Feb-1668

I-mode's security concerns/solutionsConcern: prank/redirected callsUse SSL since version 3.0 since the medium is the internet and iHTMLJava is more secure and only delegates resources to "trusted" serversHas partnered with major corporations including some Japanese and some in America and EuropeAs of version 3.0, i-mode has 128-bit encryption

12-Feb-1669

DevelopmentThe i-mode handset (Java enabled) use the KVM.Sun has ported the J2ME to i-mode.All Java Network operations in done via HTTPOther companies are porting applications for development including Macromedia, WapProfit, SEGA...It may even be possible to make your own movies that will be playable with 3G and 4G networks through FOMA

12-Feb-1670

iHTMLOriginally named cHTML (compact).

No jpegs, tables, image maps, frames, style sheets, cookies, fonts

Handles GIFs, MIDI, and Java (iAppli)12-Feb-1671

NTT DoCoMo423-4567

iHTML example

DoCoMo Net

NTT DoCoMo
423-4567

12-Feb-1672

Future of i-modeCurrently, transfer rate is 9600 kbps. 3G which is released next year, (new version of i-mode), transfer rate 2 Mbps with streaming video and audio4G (released in 2006), transfer rate is 20 MBps

12-Feb-1673

http://www.palowireless.com/imodehttp://www.eurotechnology.com/imodehttp://www.mobilemediajapan.com http://www.imodelinks.com http://www.nttdocomo.com/html/subscriber_growth.html

http://www.nttdocomo.com/html/imode01_4.html

http://www.wapprofit.com/products/emudownload.htmli-mode Interactive DemoLinksi-mode iHTML Emulator12-Feb-1674

Sync MLSyncML (Synchronization Markup Language) is the former name for a platform-independent information synchronization standard. The project is currently referred to as Open Mobile Alliance Data Synchronization and Device Management. The purpose of SyncML is to offer an open standard as a replacement for existing data synchronization solutions, which have mostly been somewhat vendor-, application- or operating system specific.12-Feb-1675

SyncML is most commonly thought of as a method to synchronize contact and calendar information (personal information manager) between some type of handheld device and a computer (personal, or network-based service), such as between a mobile phone and a personal computer. The new version of the specification includes support for push email, providing a standard protocol alternative to proprietary solutions like BlackBerry.12-Feb-1676

Sync ML

12-Feb-1677

Data Synchronization with SyncML* and sync4j12-Feb-1678

sync4j project homepage: http://sync4j.sourceforge.net/

AgendaData synchronizationSyncMLsync4jQ & A12-Feb-1679

What is data synchronization? Data synchronization is the process of making two sets of data look identical (syncml.org whitepaper)12-Feb-1680

Data SynchronizationConflict resolution

Datastore1

Data modifications

Datastore2ACBCABACB12-Feb-1681

Data modifications: add new record, replace existing record, delete record

What is a data synchronization protocol?Communication syntax and semantics for a data synchronization sessionProtocol includes:naming and identification of recordscommon protocol commandsidentification and resolution of synchronization conflicts12-Feb-1682

SyncML definedSyncML is a new industry initiative to develop and promote a single, common data synchronization protocol that can be used industry-wide. (syncml.org)

SyncML is a specification for a common data synchronization framework and XML-based format [] for synchronizing data on networked devices. (syncml.org)SyncML is a [] protocol for conveying data synchronization operations. (syncml.org)12-Feb-1683

Sync ML sponsors

12-Feb-1684

SyncML: clients & serversSyncMLserver

server modifications

client modifications12-Feb-1685

Client maintains a change log.Server maintains a change log.When they synchronize, the client and server use the change logs to determine what data has changed.Change log must track: replace, addition, deletion.Each piece of data in the datastore has a unique identifier.Client and server can each use their own private identifiers for internal use.The server is responsible for maintaining Mapping Table for mapping

SyncML data identificationLUIDData23A382B61C

GUIDData189A3982B89C

ClientServerGUIDLUID1892339823828961

12-Feb-1686

Explain LUIDs and GUIDs.Each piece of data in a datastore has a unique identifier.Client and server may use their own private data IDs for its own internal use.Server maintains an ID mapping table.

Sync ML Synchronization TypesTwo-way syncSlow syncOne-way sync from client onlyRefresh sync from client only

12-Feb-1687

Sync ML Synchronization Types (cont.)One-way sync from server onlyRefresh sync from server onlyServer alerted sync

12-Feb-1688

Sync ML featuresSynchronize any type of dataMultiple protocol bindingsHTTP, WSP, OBEXSecurityInteroperability12-Feb-1689

Any type of data: calendar data (iCalendar, vCalendar), address book (vCard), email messages, XML documents, binary data, etc.

Data is identified by MIME types.

Sync ML terminologyMessagePackageCommandStatus codeDatastoreDevice InfoMeta InfoCapabilities exchange12-Feb-1690

Sync ML and XMLAbbreviated naming conventionEx: protocol version is XML prolog is not requiredWBXML WAP Binary XML

12-Feb-1691

WBXML: WAP Binary XMLcompact representation for XML documentshttp://www.wapforum.org/

SyncML documents DTDMeta info DTDDevice info DTD12-Feb-1692

document

A SyncML Message is a well-formed, but not necessarily valid, XML document. (syncml.org)Contains data synchronization commands (operations)

12-Feb-1693

element

1.01.0session41msg80386

12-Feb-1694

element

cmd80486

12-Feb-1695

Meta Info documentContains sync session parameters

586

12-Feb-1696

Device Info documentDescribes device capabilitiesFor both client and server 0.993.14pda 12-Feb-1697

SyncML commandsAddAlertAtomicCopyDeleteExecGetMap

PutReplaceResultsSearchSequenceStatusSync12-Feb-1698

sync4jJava implementation of SyncML protocolsync4j client & sync4j Serveropen sourcedesigned for J2SE platformhttp://sync4j.sourceforge.net

12-Feb-1699

Talk about J2SE versus J2ME

Open source licensingLicensing options:GPL?LGPL?BSD?Apache Public License?JDOM public license?Mozilla Public License (MPL)?sync4j license is virtually identical to JDOM license

12-Feb-16100

License details at www.opensource.org

sync4j audiencedevelopers who know Java but dont know SyncMLdevelopers who know SyncML but may not know Javacommercial application developers & open source application developers12-Feb-16101

API design ideasSAX APIstandard set of interfacesmultiple implementationsusage model: callbacksJDOM APIconcrete classes; single implementationroot Document object contains Element objects12-Feb-16102

API design ideas (cont.)Servlet APIusage model: developer builds a new servlet by subclassing HTTPServletAuto-generate classes from DTD using an XML data-binding tool??Suns JAXBEnhydras Zeus

12-Feb-16103

Design goalsHide complexity of the SyncML specification from Java programmersXML documents, XML parsingmultiple transport protocolsA complete SyncML implementationInteroperabilitywith existing SyncML clients & servers

12-Feb-16104

Design goals (cont.)API should be natural and familiar to Java programmersdirect object instantiationexceptionsuse Collection API / arrays, where appropriateevent notification via event listenersfamiliar naming conventions

12-Feb-16105

Design goals (cont.)API must be familiar to developers who already know the SyncML DTDsAPI must enforce any restrictions that are defined in the SyncML specificationTarget platform: J2SE

12-Feb-16106

Design goals (cont.)Modular design:core protocol supporttransport protocol librariesextensible client frameworkextensible server frameworkclient applicationserver application

12-Feb-16107

sync4j implementationImmutable objectsException class for each SyncML status codeDeclaration of constantspublic final static variablesCommand object hierarchy

12-Feb-16108

sync4j command hierarchyAbstractCommandResponseCommandRequestCommandAddCommand, DeleteCommand,ReplaceCommand,

ResultsCommand,StatusCommand,12-Feb-16109

sync4j toolsetToolURLJakarta Antjakarta.apache.orgJDOMwww.jdom.orgApache Xerces-Jxml.apache.orgCVSwww.cygwin.comlog4jwww.log4j.orgJDK 1.3.1java.sun.comJUnitwww.junit.orgSource Forgewww.sourceforge.net

sync4j packagessync4j.coresync4j.clientsync4j.serversync4j.httpsync4j.wspsync4j.obexsync4j.tests12-Feb-16111

sync4j key classesSyncMLMessageDeviceInfoMetaInfoCommand classes:AddCommandDeleteCommandReplaceCommand12-Feb-16112

sync4j.core.SyncMLMessageTwo ways to construct:from a String of XMLfrom more basic sync4j objects

12-Feb-16113

SyncML Message example 1String strXML = ;SyncMLMessage msg;try{ msg = new SyncMLMessage(strXML);}catch (InvalidSyncMLException ex){}catch (XMLSyntaxException ex){}

12-Feb-16114

SyncML Message example 2SyncHeader header = new SyncHeader(...);SyncBody body = new SyncBody(...);SyncMLMessage msg;msg = new SyncMLMessage(header, body);String strXML = msg.toXML();

12-Feb-16115

AlgorithmsBase64encode, decodeWBXMLencode, decodeMD5java.security.MessageDigest12-Feb-16116

sync4j future issuesCompliance testing, interoperability testsmove to JDK 1.4?Assert facilityJava Logging APINew I/O classes: java.nioSSL class library12-Feb-16117

SummarySyncML is both complex and powerfulsync4j hides the complexity of SyncML from Java programmersThe sync4j API is consistent with many familiar Java programming idiomshttp://sync4j.sourceforge.net/12-Feb-16118

ReferencesBook: Wireless Communications and Networks by William Stallings PPT: WilliamStalling.com/StudentsSupport.html.http://www.wirelesscommunication.nl/reference/about.htm

119

THANK YOU120