It2402 mobile communication unit5
-
Upload
rmk-engineering-college-chennai -
Category
Mobile
-
view
414 -
download
7
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