Chapter 1—Introduction to IM concepts. A non-technical introduction to IM and

Jabber technologies. This is a general overview that helps us to establish a com-
mon vocabulary and introduce basic concepts. If you’re familiar with Jabber IM
you can skip this section.
Chapter 2—Jabber technical fundamentals. A technical overview of the Jabber
architecture and protocols. We also examine the raw communication stream
between the Jabber server and client to illustrate what “raw” Jabber looks like.
Part 2—Building Jabber
Chapter 3—IM concepts and Jabber protocols Examines the details of Jabber streams
and packets. In addition, we write the basic Jabber server that we’ll expand
throughout the book. This chapter is essential for understanding the software we
build in the book.
Chapter 4—The Jabber message protocols. Covers the Jabber message protocol
and implements support for basic messaging in the server. In addition, we
develop a “test Jabber client” to test our evolving Jabber server.
Chapter 5—The presence protocols. Covers the Jabber presence protocols and
shows how they are used in the Jabber groupchat messaging protocol. We imple-
ment a groupchat manager as part of the Jabber server and expand the test client.
Chapter 6—Info/query and client registration. Covers the final core Jabber proto-
col, info/query, used for all protocols not covered by messaging and presence. In
this chapter, we examine its use in the account registration process.
Chapter 7—Client authentication. Covers the Jabber authentication info/query
protocols. The discussion and software cover all aspects of standard Jabber
authentication including the proposed zero-knowledge authentication protocol.
Chapter 8—Roster and user presence. With user accounts firmly established in
chapters 6 and 7, we’re ready to discuss the roster info/query protocol and the
user presence protocols. A user’s roster stores the “buddy list” of subscribers inter-
ested in their presence status. The user presence protocols update the user’s pres-
ence and subscribe users to other users’ rosters.
Chapter 9—Creating a complete Jabber system. Ties up the loose ends for part 2.
There is no way to complete a fully featured or “production ready” server or client
within the book. This chapter describes what remains to be done and suggests ways to
tackle each problem.
Chapter 10—Enterprise Jabber. We end part 2 with a look at advanced forms of
Jabber systems. This includes Jabber as enterprise middleware and how Jabber fits
into the “alphabet soup” of J2EE, JMS, SOAP and .NET. We’ll also look at some exam-
ples of advanced Jabber applications and alternatives to Jabber technology.