The main problems faced by instant messaging are several mainstream protocols, AOL, Yahoo and MSN use their respective protocols on their own network. In order to solve this problem, Jabber Software Foundation proposes its own protocol and implementing this protocol's architecture, so when it comes to Jabber, it is usually a two-piece thing. First, the Jabber protocol, the other is the Jabber system.
The Jabber protocol is a series of source code open, XML-based protocols. Jabber Software Foundation previously submits Jabber 1.2 to the IETF (The Internet Engineering Task Force), with the purpose of intending to make it a general standard. It should be noted that due to the Jabber open source code, the current Jabber protocol is more than one implementation, and the agreement itself is still developing.
The main idea of Jabber has two aspects. Let users who use different instant messaging protocols free to communicate.
Jabber architecture and characteristics
Now, first analyze the Jabber's architecture. The Jabber system includes the client and server side, in Jabber, the user is called nodes, the server side is divided into three parts: host (Host), the server, service, and gateway. We will introduce the specific functions of each part later.
Jabber's client software is generally very simple, as long as it can establish TCP channels with the server, and understand the Jabber message. Because of the Jabber open source, anyone can rewrite the user-end software to contain a lot of functions. Jabber's design philosophy is simple, the server is complex, so the benefit is that if Jabber develops more features as needed, all work is on the server side, and users don't have to download new Jabber software.
The JABBER server-side architecture has the following main features: 1. All Jabber messages are based on XML. 2.jabber system is a dispersion system, that is, Jabber's server is distributed across the network. 3.jabber protocol is open, the program opens the source code. 4.jabber system is modular, and Jabber's design specifically emphasizes how to achieve scalability, security, and scalability, so that more features can be developed on the Jabber platform.
Instant messaging system mode and architecture
The instant messaging system has two modes, one is the user / server mode, that is, the user and the user and the receiving end user must communicate through the server. The other is the user / user mode, that is, the server creates a TCP channel to each pair of users, and their communication is performed on this TCP without passing the server. Jabber uses the user / server mode, and all Jabber messages must pass through the server (ie Host) to pass from one user to another. It should be noted that any Jabber user can establish a direct contact channel to the server application and another user, but this channel can only be used for specific file transfer.
In terms of network architecture design, Jabber has largely referred to the email system, so each user's JabBer address is like his email address. At the same time, in the Jabber system, each server is responsible for receiving all messages transmitted to the local user, and the server exchanges the message that needs to be sent in real time. Each Jabber server is operated independently, so the Jabber system can increase or reduce the number of servers based on the requirements of instant communication, according to the network where the network is located. Jabber's host consists of several components, which implements some basic functions required by the Jabber system. These basic features include: session management, user, and server communication, communication, DNS conversion, storage users, personal information and friends list, keep users received messages received when the user is underline, user registration, user identity And authority certification, filter messages and system records according to user requirements. In addition, the instant messaging system is to be close to real-time message transmission, and you must always know if the host is online (Presence). In the communication feature between the server and the server, a module of the host is responsible for exchange information for users online in real time in real time.
Due to the modularization of the Jabber server, their features can be extended as needed, which is implemented in the Jabber server. The extension features include multi-user conferencing (Multi-to-many communication in instant messaging), integration with other security detection software, and connections to the database, and more. For safety factors, the Jabber server must be trusted by the host (Trusted). This requirement can be implemented by the public key management system. In addition to this request, Jabber has no other restrictions between them, and Jabber's system administrators can connect them together in a variety of ways as needed.
In addition, Jabber has highlighted features to exchange messages and users online status with other instant messaging systems. Due to different agreements, Jabber and other system exchange messages must be implemented through the conversion of the protocol. At present, several mainstream instant messaging protocols are not disclosed, so the Jabber server does not implement and converts other protocols, but its architecture allows conversion implementation . The server that implements this special feature is called Gateway in the Jabber architecture. Currently, some people have implemented a protocol conversion of AIM, ICQ, ICQ, IRC, MSN Messager, RSS (RICH Site Summary) and Yahoo Messager. Due to Gateway's existence, Jabber architecture is in fact compatible with all other instant messaging networks, which undoubtedly greatly improves Jabber's flexibility and scalability.
JABBER protocol analysis
As mentioned earlier, the Jabber protocol is based on XML, so the Jabber message can not only be a simple text (Text), but also carry complex data and various format files, this is to say that jabber can not only be used in people. Communication between people and can achieve communication between software and software or software. This function of Jabber has greatly extended the application range of instant messaging.
Reprinted from http://www.anyq.net/jabber.htm