DesignXMPP arch

Version 28 (Anonymous, 03/07/2012 04:53 pm)

1 1
2 28
h1. Gateway Architecture
3 1
4 28
5 28
6 28
7 24 Adrian Georgescu
Due to the dedicated server architecture of XMPP and requirements for availabiliy of public DNS entries for the target domain, is not possible to position the gateway between two clients. The architecture of the SIP-XMPP gateway can be modeled in two different ways, both dependent on the way XMPP server is deployed:
8 1
9 28
* Based on an XMPP server (using server-to-server communication)
10 28
* Based on an XMPP component connected to an existing XMPP server
11 1
12 1
These approaches are not mutually exclusive, they could potentially be implemented and decide which one to use by setting a configuration option.
13 1
14 1
15 1
16 1
17 28
h2. XMPP Server Based Architecture
18 1
19 1
20 28
!{}xmppgw-arch-server.png!
21 1
22 28
* SIP Application server which is also a XMPP server
23 28
* SIP proxy (registration, AAA and routing)
24 1
25 1
26 28
h2. XMPP Component Based Architecture
27 1
28 21 Adrian Georgescu
29 28
!{}xmppgw-arch-component.png!
30 28
31 28
* XMPP server (ejabberd for example)
32 28
* XMPP server plugin (divert stanzas to offline users to a given component)
33 28
* SIP Application server which is also a XMPP component
34 28
* SIP proxy (registration, AAA and routing)
35 28
36 28
37 28
h2. Chosen Architecture
38 28
39 28
40 28
After experimenting with both models the chosen model to be implemented first is the *XMPP server based architecture*. The component based approach could be added at a later time.
41 28
42 6
The server based architecture model has a number of advantages / disadvantages:
43 6
44 28
* Advantages
45 28
** Less network elements involved
46 28
** Full control over XMPP routing since the server is customized
47 28
** No need for developing plugins for any XMPP server
48 28
* Disadvantages:
49 28
** Inability to use an XMPP client in the local domain
50 1
51 1
The critical factor when making this choice is the fact that if a custom XMPP server is built all the routing logic can be customized without the need of running an extra XMPP server and writing a plugin for it. Thus, this approach is more sustainable over time.
52 1
53 1
The aforementioned disadvantage would also disappear if the chosen library implemented accepting XMPP client connections, which is likely to happen in the future.