Synopses & Reviews
Jabber is a set of protocols expressed in XML, and an extensible framework that allows people and applications to exchange all sorts of information, from simple text messages to being used to extend the backbone of an enterprise data system. Jabber gives you the power to build applications that have identity, presence, and that can take part in conversations.
Programming Jabber offers developers a chance to learn and understand the Jabber technology and protocol from an implementer's point of view. Detailed information of each part of the Jabber protocol is introduced, explained, and discussed in the form of mini-projects, or simple and extended examples. Programming Jabber provides this foundation by:
- Showing you how to install and configure the Jabber server
- Providing a detailed overview of the server architecture and configuration options
- Covering the core Jabber technologies such as XML streams and Jabber identifiers
- Referencing all of Jabber's XML namespaces
- Examining the client registration and authentication phases
- Showing how to deploy your own Jabber-based messaging solutions
- Demonstrating how to embed XML-RPC-style call mechanisms into Jabber
Programming Jabber is divided into two parts. The first part serves as an introduction to Jabber; you'll learn about its features, why it's more than an IM system, and how to install and configure a Jabber server of your own. The second part provides detailed information about the Jabber protocol, and a series of practical examples, which can be used to solve everyday problems. The examples, in Perl, Python, and Java, use various Jabber features as a way of illustrating parts of the protocol.
Programming Jabber provides the foundation and framework for developers to hit the ground running, and is the essential book on Jabber.
Synopsis
This book will offer programmers a chance to learn and understand the Jabber technology and protocol from an implementer point of view. Every detail of every part of the Jabber client protocol is introduced, explained, discussed, and covered in the form of recipes, mini-projects or simple and extended examples in Perl, Python, and JavaTM.
About the Author
DJ Adams is an old SAP hacker who still thinks JCL and S/370 assembler are pretty cool. In recent years he's been successfully combining open source software with R/3 to produce hybrid systems that show off the power of free software. He's the author of O'Reilly's Programming Jabber book, contributes articles to O'ReillyNet's P2P site, and has to own up to being responsible for the Jabber::Connection, Jabber::RPC and Jabber::Component::Proxy modules on CPAN.
Table of Contents
Preface; The History of Jabber; IM System Features; What's Inside; Software Used in This Book; Where to Go for More Information; Conventions Used in This Book; How to Contact Us; Acknowledgments; Part I: Getting Started with Jabber; Chapter 1: Introducing Jabber; 1.1 Imaginary Jabber Conversation; 1.2 A Simple Script; Chapter 2: Inside Jabber; 2.1 XML-Based; 2.2 Asynchronous Nature; 2.3 Messaging; 2.4 Payload Carrier; 2.5 Request/Response; 2.6 Component/Service Architecture; 2.7 Custom Clients; 2.8 XML-RPC and SOAP; 2.9 Browsing; Chapter 3: Installing the Jabber Server; 3.1 Downloading the Jabber Server; 3.2 Installing the Server; 3.3 Configuring the Jabber Server; 3.4 Starting and Stopping the Jabber Server; 3.5 Monitoring and Troubleshooting the Server; Chapter 4: Server Architecture and Configuration; 4.1 An Overview of the Server Architecture; 4.2 Server Configuration; 4.3 A Tour of jabber.xml; 4.4 Component Instance: sessions; 4.5 Component Instance: xdb; 4.6 Component Instance: c2s; 4.7 Logging Definition: elogger; 4.8 Logging Definition: rlogger; 4.9 Component Instance: dnsrv; 4.10 Component Instance: conf; 4.11 Component Instance: jud; 4.12 Component Instance: s2s; 4.13 The io Section; 4.14 pidfile Section; 4.15 Managing the Configuration; 4.16 Server Constellations; Part II: Putting Jabber's Concepts to Work; Chapter 5: Jabber Technology Basics; 5.1 Jabber Identifiers; 5.2 Resources and Priorities; 5.3 XML Streams; 5.4 Jabber's Building Blocks; Chapter 6: Jabber Namespaces; 6.1 Namespace Usage; 6.2 The IQ Namespaces; 6.3 The X Namespaces; 6.4 The X::IQ Relationship; 6.5 Miscellaneous Namespaces; Chapter 7: User Registration and Authorization; 7.1 XML Stream Flow; 7.2 User Registration; 7.3 User Authentication; 7.4 User Registration Script; Chapter 8: Using Messages and Presence; 8.1 CVS Notification via Jabber; 8.2 Dialup System Watch; 8.3 Presence-Sensitive CVS Notification; Chapter 9: Groupchat, Components, and Event Models; 9.1 Keyword Assistant; 9.2 Connecting Devices to Jabber; 9.3 An RSS News Agent; 9.4 A Simple Headline Viewer; Chapter 10: Pointers for Further Development; 10.1 A Simple Jabber-Based Address Book; 10.2 XML-RPC over Jabber; 10.3 Browsing LDAP; 10.4 Building an ERP Connection; Appendix A: The jabber.xml Contents; Appendix B: The IQRPC Classes for JabberRPCResponder; B.1 The IQRPC Class; B.2 The IQRPCBuilder Class; Colophon;