"The authors have in-depth, firsthand knowledge of the inner workings of SyncML technology. This is an essential guide for anyone building or implementing data synchronization and device management applications."
Director and Chairman of the Board, SyncML Initiative, Ltd.
Introducing SyncML: the new XML-based standard for universal synchronization.
Effective, standards-based data synchronization will make possible a new generation of breakthrough mobile services. Now, there's an XML-based standard that enables synchronization across virtually any device, platform, application, or service: SyncML. In this book, four leaders of the SyncML community offer an insider's guide to SyncML from both a technical and business standpoint. You'll discover why SyncML offers advantages available through no other technology; how SyncML overcomes the traditional obstacles to universal synchronization, and how SyncML can be integrated into end-to-end solutions that deliver a first-class "out of the box" experience.
SyncML is designed for every business and technology professional concerned with mobile applications and synchronization. Decision-makers will learn how SyncML will drive new business models and the delivery of entirely new products and services. Software architects and project managers will discover how SyncML components can be integrated into complete solutions; and developers will learn how to maximize the performance, reliability, and scalability of those solutions.
Foreword by Phillipe Kahn,CEO of LightSurf
Click here for a sample chapter for this book: 0130093696.pdf
1. An Introduction to Data Synchronization.
The Different Topologies. Summary. The Different Usage Modes. Challenges with Data Synchronization. Related Work.
I. SYNCML OVERVIEW.2. SyncML: An Introduction.
The SyncML Initiative. An Overview of SyncML. From an Initiative to a De Facto Standard.3. SyncML Applications.
Coordinating a Busy Family. Supporting Roving Nightingales. The Reach of SyncML Applications.
II. SYNCML IN-DEPTH.4. SyncML Fundamentals.
The Design Goals of SyncML. Architectural Insight into SyncML.5. Synchronization Protocol.
Overview. Phases of Synchronization Protocol. Initialization. Transferring Large Amounts of Data. Mapping of Identifiers and Slow Synchronization.6. Representation Protocol.
Identifiers in SyncML. Operations in SyncML. Representation Protocol Elements. Text and Binary Representation. Static Conformance Requirements.7. Supportive SyncML Components.
SyncML Architecture and Components. Complementary DTD Components. Transport Protocols for SyncML.8. Security and Authentication.
SyncML Authentication. SyncML Authentication Types. Secure Transport. Secure Sockets Layer (SSL).9. Device Management.
Rationale and Overview. SyncML Device Management Technology. Summary and Next Steps.
III. BUILDING SYNCML APPLICATIONS.10. SyncML API and Reference Implementation.
Functionality. Architecture. Installation. Initializing the Reference Implementation. Generating a SyncML Document. Parsing a SyncML Document. Communication Toolkit API. The Future.11. Mobile Devices and SyncML.
Wireless and Mobile Characteristics. SyncML Client Architecture and Implementation. SyncML Enabled Applications. Summary.12. The SyncML Server.
A Generic SyncML Server. Data Paths in Synchronization. Functional Expectations from a SyncML Server. Performance, Scalability, and Reliability.13. Interoperability Verification.
Conformance Testing. Interoperability Testing at SyncFest. Virtual SyncFest. SyncML Interoperability Reference Pool. Recertification.
IV. SUMMARY AND THE FUTURE.14. Summary and the Future.
SyncML History. Current Market Status. Future SyncML Activities. Future Markets.
V. APPENDICES.Appendix A. Bibliography.
Information is the nucleus of today's interconnected economy. We need to be able to access our personal and business information quickly, efficiently, and securely, at any time and at any location, even if this location has no capabilities for wireline or wireless networks to access remote servers.
Pervasive devices like PDAs and mobile phones enable us to remotely use services provided by servers. With these devices we want to access personal or corporate data that we need for our daily business, like contact information of customers, pricelists, or other corporate data.
Data is primarily stored on servers or desktop computers. The mobile device contains a copy of this data and the user needs to be able to manipulate the data on the mobile device. The resulting changes need to be reflected in the source database, without retyping them.
At the same time somebody else could make changes to the data on the server directly. Having two or more copies of a dataset and being able to manipulate the copies independently requires synchronization to reconcile the different changes to form one consistent dataset.
To make all this happen seamlessly, the industry is currently converging upon the required standards. The leading companies in the Information Technology and Mobile Communications industries, like Ericsson?, IBM?, Lotus?, Matsushita?, Motorola?, Nokia?, Palm?, Psion?, and Starfish? founded the SyncML? Initiative as a forum for the definition and promotion of a universal synchronization de facto standard based on XML. Since the first meetings in 2000, SyncML has received a lot of support and the resulting specification has been a great success. All leading companies interested in data synchronization actively participated in the definition and enhancements of the specifications. More importantly, a number of SyncML compliant servers and devices are already available in the market.
This book explains the fascinating characteristics of data synchronization and device management and the solution that SyncML offers to achieve global and interoperable synchronization and device management with first-class out-of-the-box experience.
It comprehensively covers the SyncML specifications and the reference implementations. It describes the ideas and design principles behind the specifications and how they evolved to the current state. There are separate chapters dedicated to the integration of SyncML into mobile devices as well as synchronization servers.
This book has a strong emphasis on the challenges that universal synchronization faces as well as the solutions and opportunities that a global synchronization specification offers. One example of these new opportunities is the new generation of services, which deliver added value to a growing number of customers. There are many industries (such as e-business, private or home, finance, or travel) that will use synchronization as the base infrastructure to efficiently exchange data.
This book contains everything you need to know about SyncML and synchronization. The major goal of this book is to make it easy to understand SyncML, its benefits, and to implement it in solutions, on the client as well as on the server side.
Giving a comprehensive and profound overview of synchronization and especially SyncML makes this book very valuable for a wide audience of readers. Following the main thread of this book a reader will find an easy and quick entry to the topics of his interest.
Business managers and managers responsible for IT systems will learn what impact SyncML and synchronization itself has on economy and society. The knowledge about synchronization paradigms, new business models, and a new generation of applications will affect their work as well as their decisions. They will see where synchronization can help businesses to offer new services and new products or how to improve existing businesses to reach a new range of customers.
Software architects and project managers extending their e-business activities to a new front-end using synchronization will read which components SyncML based solutions are made of and how these building blocks are related to each other. This book gives an overview of state-of-the-art synchronization technology and shows which components are available and what needs to be done to build a complete solution.
Application developers getting involved with SyncML will find an in-depth guide through the different SyncML specifications and paradigms, what needs to be implemented, and how to get a perfectly working, efficient, and scalable SyncML synchronization solution. They will get a very good introduction before digging into the details. They will learn how to rapidly enable applications for the use of SyncML and how to avoid usual pitfalls.
Most of us no longer have the time to read a book cover to cover. Therefore, we have broken this book into parts that may be read in almost any sequence:
In this part, we set the stage by providing an overview of data synchronization in general.
This chapter gives a general overview on data synchronization. It introduces the reader to the basic concepts of synchronization and their advantages or difficulties. It describes its challenges and why SyncML is needed. An overview of the other data synchronization standards, like those used in IrMC or Bluetooth? completes this introductory chapter.
In this part, we give an overview of SyncML, its fundamentals, and typical applications that benefit from using SyncML.
This chapter provides a look behind the scenes of SyncML. It explains what the business motivations were and still are and how it all began. It gives a brief history of the formation of the group, how SyncML evolved from a group of companies jointly developing and promoting SyncML to a real industry initiative with many companies in the IT industry being a member of it.
This chapter introduces the basic concepts behind SyncML and how SyncML fits in a data synchronization solutions.
In this chapter we walk through two applications that SyncML is commonly used for: Personal Information Management, Data Management, and Enterprise. The applications also illustrate the use of device management. It provides insight into how SyncML is used in these applications and how the various players (server and device manufacturers, and most notably, customers) benefit from it.
This part gives in-depth insight into the core specifications that the SyncML standard consists of. It provides valuable information how SyncML can be successfully used and gives insight into the reasons behind different design decisions.
It also explains the knowledge that one needs to build an efficient and working SyncML implementation that resides in different places in the specifications.
This chapter lays the ground for the following parts that give in-depth insight into the different components of SyncML. The key design goals such as interoperability, performance, scalability, and footprint are introduced. The chapter further explains how SyncML matches these goals.
It gives an introduction into the overall SyncML architecture and how the different specifications fit together to a working standard.
The Synchronization Protocol SSP02 needs to be studied to understand the SyncML technology and how different SyncML components interact with each other. This chapter analyzes this protocol, which uses the functionality from most of the other SyncML components, e.g., the Representation Protocol SRP02 or the Meta Information DTD SMI02.
In addition to the phases and features of the Synchronization Protocol, this chapter brings out many crucial issues, which need to be taken into account when implementing this protocol. These can substantially help to achieve a high-quality implementation of a SyncML Client or a SyncML Server.
The Representation Protocol defines the way a SyncML document, which is exchanged using the Synchronization Protocol, has to be built. It defines the DTD on which the SyncML XML document is based. This chapter describes the different commands and DTD elements as a tutorial, using examples and giving hints and tips not found in the specifications themselves.
This chapter covers the Meta Information DTD and the Device Information DTD SDI02 specifications, which support the Synchronization Protocol and the Representation Protocol for enabling complete and fully operational SyncML sessions. These specifications complete the SyncML synchronization framework.
In addition to the above, this chapter provides a comprehensive description of the three SyncML transport bindings, which enable the SyncML functionality over HTTP RFC2616, WSP WSP01, and OBEX OBEX99. By understanding these bindings, SyncML can easily and efficiently be provided in an interoperable manner over the most common transport protocols.
Security is an important aspect in all data processing standards and applications, but especially in cases were data is exchanged using public packet-switched networks, security needs special attention.
This chapter explains the different levels an application using SyncML can secure the exchanged data, it describes SyncML's built-in security features and uses examples to show the different implications in several scenarios. It demonstrates how SyncML security can be enhanced using additional techniques and gives an outlook of possible future enhancements.
The latest major functional addition to the SyncML family of specifications is device management, called SyncML DM SDM02. This chapter gives an introduction to the unique area of managing mobile devices and what this exactly means. It explains how SyncML is used to provision and manage mobile devices providing synchronization and other value-added services. It covers the differences with the data synchronization parts of SyncML and what is needed for a SyncML implementation to manage devices.
This uses a number of illustrative examples and scenarios focusing on the different aspects of this new field for SyncML. In addition, the aspects for achieving interoperable device management systems by leveraging the SyncML Device Management Framework are analyzed and discussed in this chapter.
This part contains tools, hints, and tips that speed up developing SyncML applications on servers as well as on clients.
SyncML provides a Reference Implementation in the C language to help companies to quickly enable their implementations to support SyncML. This chapter describes the modular architectures and how to optimize the Reference Toolkit for different environments. The chapter also explores the design and API of the Reference Toolkit and uses multiple examples to show how to exploit it efficiently.
This chapter describes the special considerations to be made for the efficient use of SyncML in mobile devices. It covers the special characteristics of mobile and wireless devices and how to account for such characteristics to build implementations that perform well, are robust, have small footprints, and interoperate. It explains the design decisions that SyncML chose to enable the development of small and efficient client implementations. It also addresses the issues, which need to be taken into account by the Servers when communicating with the mobile devices.
As with the SynML Client, there are several ways to implement a SyncML Server. Some are more efficient than others. This chapter introduces the components that constitute a SyncML Server and which design decisions need to be taken to build servers that perform well and scale to a large number of SynML Clients.
The success of SyncML is dependant on the ability to synchronize different devices with each other. Customers will use SyncML only if its various implementations are interoperable.
This chapter introduces the SyncML Interoperability Committee, which was created by the SyncML Initiative to develop and coordinate the SyncML Conformance and Interoperability Process. This chapter describes the steps that need to be taken to first obtain the right to use the term "SyncML conformant" and in a second step, get the SyncML Interoperability logo.
This chapter also contains a description of how to use the SyncML Conformance Test Suite and how the SyncFests are organized.
This part describes the possible future directions of SyncML.
This chapter summarizes the content of the book and gives an outlook on future enhancements of SyncML, and applications based on SyncML that might emerge in near future. It describes the missing pieces and what might come in the next version of SyncML.
In this appendix, we reference the sources that we used. In addition, we point to material that is very helpful for learning more about those areas that are not the focus of this book.
The glossary briefly explains some of the most important terms.
A list of trademarks referenced in this book is presented.
The index helps to locate terms used and explained in this book.
Uwe Hansmann is currently a development manager at IBM for various Pervasive Computing projects including the development of the SyncML Reference Toolkit. He was co-chair of the SyncML Core Expert Group. He helped to get several industry initiatives started, was Secretary of the Open Services Gateway Initiative as well as the Secretary and a Board member of the OpenCard Consortium. Uwe received a Master of Science from the University of Applied Studies of Stuttgart in 1993 and an MBA from the University of Hagen in 1998. He joined IBM in 1993 as a software developer and led the technical marketing support team for IBM Digital Library in Europe before joining IBM's Pervasive Computing Division in 1998.
In the past he has written books about Smart Card Application Development Using Java, as well as the Pervasive Computing Handbook. He can be reached via email at
Riku Mettala is currently working as a technology manager for SyncML based application technologies in Nokia Mobile Phones. He has headed the software projects related to SyncML and was also involved in the standardization of SyncML from its very beginning. Before working with SyncML, he took part in the Bluetooth standardization effort and also acted as the chairman of the synchronization expert group within Bluetooth SIG. He has worked for Nokia Mobile Phones since 1998 and before that, he was a part of the Nokia Networks organization. Riku has a Master of Science in computer science, with specialization in the telecommunications area. He studied in Tampere University of Technology, Finland and in Virginia Tech, USA. He can be reached via email at
Apratim Purakayastha is currently a research manager in the IBM Thomas J. Watson Research Center. For the last few years he has engaged in research in the area of mobile computing and in mobile data synchronization. He is one of the founding contributors to the SyncML standard and was involved in SyncML from its nascent stage as the basic notions in SyncML emerged from a project in IBM/Lotus. He has authored numerous research papers in the area of mobile computing and data synchronization. He has also played key roles in IBM's synchronization related activities. He joined IBM in 1996 after completing his Ph.D. in Computer Science from Duke University, USA. He can be reached via email at
Peter Thompson is currently working at Starfish Software as a Senior Software Engineer. He is also the chair of the SyncML Technical Committee and is active in as many of the Expert Groups as he can spare time. Peter is the least educated of the authors with only a Bachelors of Science from the University of California at Berkeley. When not working on SyncML or with other Standards organizations, he also flies his airplane around California. Peter can be reached at