Project

General

Profile

DesignXMPP arch » History » Version 20

Adrian Georgescu, 03/07/2012 09:30 AM

1 17 Adrian Georgescu
= Gateway Architecture =
2 1
3 19 Adrian Georgescu
[[TOC(DesignXMPP, DesignXMPP_analysis, DesignXMPP_arch, DesignXMPP_im, , DesignXMPP_conference, DesignXMPP_presence, DesignXMPP_jingle, depth=2)]]
4 9
5 20 Adrian Georgescu
The architecture of the SIP-XMPP gateway can be modeled in two ways:
6 1
7 4
 * Based on an XMPP component
8
 * Based on an XMPP server (using server-to-server communication)
9 1
10 15 Adrian Georgescu
These approaches are not mutually exclusive, they can both be implemented at the same time and decide which one to use with a configuration option to allow different deployment scenarios.
11 4
12 15 Adrian Georgescu
== XMPP Component Based Architecture ==
13 2
14 5
[[Image(xmppgw-arch-component.png, 700px, center)]]
15 3
16 1
 * XMPP server (ejabberd for example)
17 5
 * XMPP server plugin (divert stanzas to offline users to a given component)
18 1
 * SIP Application server which is also a XMPP component
19
 * SIP proxy (registration, AAA and routing)
20 4
21 15 Adrian Georgescu
== XMPP Server Based Architecture ==
22 10
23 4
[[Image(xmppgw-arch-server.png, 700px, center)]]
24
25 5
 * SIP Application server which is also a XMPP server
26
 * SIP proxy (registration, AAA and routing)
27 1
28 20 Adrian Georgescu
29 15 Adrian Georgescu
== Chosen Architecture ==
30 6
31 16 Adrian Georgescu
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.
32 6
33 16 Adrian Georgescu
The server based architecture model has a number of advantages / disadvantages:
34 6
35
 * Advantages
36
  * Less network elements involved
37
  * Full control over XMPP routing since the server is customized
38
  * No need for developing plugins for any XMPP server
39
 * Disadvantages:
40
  * Inability to use an XMPP client in the local domain
41
42
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.
43 7
44 1
The aforementioned disadvantage would also disappear if the chosen library implemented accepting XMPP client connections, which is likely to happen in the future.
45 20 Adrian Georgescu
46
> Due to the dedicated server architecture of XMPP, is not possible to have the gateway between two clients.