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:
"Part I: SyncML Overview"
"Part II: SyncML In Depth"
"Part III: Building Synchronization Applications"
"Part IV: The Future"
"Part V: Appendices"
In this part, we set the stage by providing an overview of data synchronization in general.
Chapter 1: An Introduction to Data Synchronization
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.
Part I: SyncML Overview
In this part, we give an overview of SyncML, its fundamentals, and typical applications that benefit from using SyncML.
Chapter 2: SyncML: An Introduction
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.
Chapter 3: SyncML Applications
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.
Part II: SyncML In-Depth
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.
Chapter 4: SyncML Fundamentals
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.
Chapter 5: Synchronization Protocol
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.
Chapter 6: Representation Protocol
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.
Chapter 7: Supportive SyncML Components
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.
Chapter 8: Security and Authentication
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.
Chapter 9: Device Management
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.
Part III: Building SyncML Applications
This part contains tools, hints, and tips that speed up developing SyncML applications on servers as well as on clients.
Chapter 10: SyncML API and Reference Implementation
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.
Chapter 11: Mobile Devices and SyncML
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.
Chapter 12: The SyncML Server
As with the SyncML 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 SyncML Clients.
Chapter 13: Interoperability Verification
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.
Part IV: Summary and the Future
This part describes the possible future directions of SyncML.
Chapter 14: Summary and Future
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.
Part V: Appendices
Appendix A: Bibliography
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.
Appendix B: Glossary
The glossary briefly explains some of the most important terms.
Appendix C: Trademarks
A list of trademarks referenced in this book is presented.
The index helps to locate terms used and explained in this book.