Introduction: Let's Jabber | p. 1 |
Jabber Enables Peer-to-Peer Computing | p. 1 |
Jabber Enables an Evolved System Architecture | p. 2 |
Jabber In-Depth | p. 5 |
What Is Jabber Technology? | p. 7 |
Traditional Applications and How They Got That Way | p. 7 |
The Nature of Traditional Tools | p. 8 |
Shortcomings of Traditional Tools | p. 9 |
Jabber Is... | p. 11 |
...Built-in Services... | p. 11 |
Service Discovery | p. 13 |
Server and Client Interactions | p. 14 |
...Client-Based Services... | p. 17 |
...Open... | p. 19 |
...Asynchronous... | p. 19 |
...Extensible... | p. 20 |
...Decentralized... | p. 21 |
...Secure... | p. 22 |
...XML Protocol... | p. 22 |
Riding on TCP/IP | p. 22 |
Provides Real-time Exchange of Messages | p. 22 |
...And Presence Information | p. 23 |
...Between Two Endpoints on the Open Internet | p. 23 |
...And a Corporate Intranet | p. 24 |
A Useful Application to Jump-Start Your Interest | p. 24 |
A Practical User Creation Script (Java version) | p. 25 |
A Practical User Creation Script (Python version) | p. 30 |
Jabber's Open Source Development Heritage (And Its Implications) | p. 33 |
Conclusion (or Rather, The Beginning) | p. 33 |
Installing and Configuring Jabber Software | p. 35 |
Downloading the Server Software | p. 35 |
Installing the Server Software | p. 36 |
Linux and Unix | p. 36 |
Windows | p. 39 |
Initial Server Configuration | p. 40 |
Jabberd Command-line Arguments | p. 40 |
The jabber.xml File | p. 40 |
Starting jabberd | p. 43 |
Service Configuration Details | p. 44 |
Service XDB | p. 44 |
Service io | p. 46 |
Service c2s | p. 48 |
Service s2s | p. 49 |
Service dnsrv | p. 51 |
Log Services | p. 51 |
The Sessions Service | p. 53 |
Common Optional Services | p. 61 |
Jabber User Directory (JUD) | p. 61 |
Conferencing | p. 63 |
Instant Messaging Clients | p. 66 |
Summary | p. 68 |
All About Jabber Clients | p. 69 |
What Is a Jabber Client? | p. 70 |
Session Mechanics | p. 70 |
Protocol Mechanics | p. 70 |
Protocol Details | p. 78 |
The [left angle bracket]stream:stream[right angle bracket] Tag | p. 78 |
The [left angle bracket]iq[right angle bracket] Element | p. 78 |
Jabber Presence | p. 84 |
Presence Attributes | p. 87 |
The [left angle bracket]presence[right angle bracket] Element | p. 87 |
The [left angle bracket]message[right angle bracket] Element | p. 91 |
The [left angle bracket]body/[right angle bracket] Subelement | p. 93 |
Additional [left angle bracket]message/[right angle bracket] Subelements | p. 95 |
Using [left angle bracket]message/[right angle bracket] to Convey Arbitrary Data | p. 99 |
Summary | p. 122 |
Jabber Server Architecture | p. 123 |
High-Level Architecture | p. 123 |
Messages and Sessions | p. 125 |
Remote Messaging | p. 127 |
Client Initialization | p. 130 |
Browsable Agents | p. 142 |
Instant Messaging Gateways | p. 148 |
Summary | p. 153 |
Extending the Jabber Server | p. 155 |
A Database Service | p. 156 |
Configuring the Service | p. 156 |
Code Listing | p. 158 |
Connecting to the Server | p. 166 |
JDBC Survival Skills | p. 167 |
Browsing | p. 169 |
Searching | p. 174 |
A Report Service | p. 179 |
Code Listing | p. 180 |
Registration | p. 186 |
A Small Digression: A Custom Packet Type for JabberBeans | p. 188 |
Custom Storage in XDB | p. 193 |
Timed Report Generation | p. 196 |
An Inventory Management Service | p. 198 |
Decomposing the Inventory Management Service | p. 208 |
Summary | p. 224 |
Jabber Security | p. 225 |
Client Registration | p. 226 |
Disabling Automatic Registration | p. 231 |
Registration Data | p. 232 |
Client Authentication | p. 233 |
Plain Authentication | p. 236 |
Digest Authentication | p. 238 |
Zero-Knowledge Authentication | p. 242 |
A Custom Authentication Component | p. 245 |
Connecting the Authentication Service | p. 246 |
Handling Authorization Packets | p. 247 |
Using SSL for Client Connections | p. 258 |
SSL Overview | p. 258 |
Enabling SSL in the Jabber Server | p. 260 |
Server-to-Server Connection Authentication (Dialback) | p. 265 |
Summary | p. 268 |
Jabber-Based Networked Applications | p. 271 |
What's in a Name: Web Services | p. 273 |
First-Generation Applications: Servers and Glass Terminals | p. 273 |
Second-Generation Applications: Servers and Clients | p. 274 |
Third Generation Applications: Enter the Web | p. 275 |
Fourth-Generation Applications: XML and Web Services | p. 276 |
XML-RPC | p. 278 |
SOAP | p. 283 |
WSDL | p. 284 |
UDDI | p. 285 |
Jabber and XML-RPC | p. 286 |
Jabber-Based RPC | p. 287 |
Jabber RPC Invoker | p. 287 |
Jabber RPC Service Provider (First Version) | p. 289 |
Jabber RPC Service Provider (Second Version) | p. 292 |
Jabber-RPC Object Lessons | p. 296 |
Summary | p. 296 |
Jabber and Conversational Software Agents | p. 299 |
Motivating This Application | p. 300 |
Accomplishing the Objective | p. 300 |
What Is Alice? | p. 300 |
Why Alice Appears to Work | p. 301 |
Alice Design Principles | p. 301 |
The Alicebot Server | p. 302 |
AIML Folder--Alice's Built-in Knowledge | p. 302 |
Lib Folder--Alice ProgramD's Java Library | p. 303 |
Alice Configuration Files | p. 303 |
ALICE Static Knowledge (AIML) Files | p. 306 |
The Category Tag | p. 306 |
The Pattern Tag | p. 306 |
The Template Tag | p. 306 |
The Topic Tag | p. 306 |
Fitting the Pieces Together | p. 316 |
The AliceJabber Mux Code | p. 318 |
Running ALICE with Jabber | p. 324 |
Summary | p. 325 |
Jabber and System Control and Administration | p. 327 |
Jabber for System Event Monitoring | p. 327 |
Jabber for Version Management | p. 338 |
Jabber for Distributed Control | p. 341 |
Jabber for Application Monitoring | p. 350 |
Summary | p. 363 |
Jabber and JXTA | p. 365 |
JXTA Technology Introduction | p. 365 |
Elements of JXTA Technology | p. 366 |
Identifiers | p. 366 |
Advertisements | p. 366 |
Messages | p. 368 |
Peers | p. 368 |
Peer Groups | p. 369 |
Pipes | p. 369 |
Modules (Services) | p. 369 |
Roles for JXTA Peers | p. 370 |
Rendezvous Peers | p. 370 |
Relay Peers | p. 370 |
Proxy Peers | p. 370 |
Trying Out JXTA | p. 370 |
The JXTA Java Binding API | p. 375 |
Example: A Jabber-to-JXTA Bridge | p. 376 |
Details of the talk Protocol | p. 379 |
Summary: Jabber and JXTA as Complimentary Technologies | p. 397 |
Jabber Libraries for Popular Languages | p. 399 |
Jabber-Net--Jabber for the .NET Environment | p. 399 |
Building the Examples | p. 407 |
iksemel--Jabber for C/C++ | p. 408 |
JabberBeans--Jabber for Java | p. 413 |
JabberPy--Jabber for Python | p. 414 |
A Cross-Language Example | p. 414 |
Jabberlib--Jabber for TCL | p. 418 |
Net::Jabber--Jabber for Perl | p. 421 |
Jabber4R--Jabber for Ruby | p. 424 |
Summary | p. 427 |
Appendixes | p. 429 |
Glossary | p. 431 |
XML Basics | p. 435 |
A Simple Document | p. 435 |
Tag Attributes | p. 436 |
Comments | p. 436 |
XML Namespaces | p. 437 |
XML Streams | p. 438 |
Resources | p. 439 |
Jabber Servers | p. 439 |
Jabber Protocol | p. 439 |
Jabber Clients | p. 439 |
Jabber Libraries | p. 440 |
Macromedia Flash | p. 440 |
JabberBeans | p. 440 |
Alicebots | p. 440 |
JabberPy | p. 440 |
Miscellany | p. 441 |
Index | p. 443 |
Table of Contents provided by Ingram. All Rights Reserved. |
The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.
The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.