DesignXMPP analysis

Version 14 (Adrian Georgescu, 04/01/2012 05:20 pm) → Version 15/17 (Adrian Georgescu, 04/01/2012 05:20 pm)


h1.
= Software Candidates Analysis

=

[[TOC(DesignXMPP, DesignXMPP_analysis, DesignXMPP_arch, DesignXMPP_im, , DesignXMPP_conference, DesignXMPP_presence, DesignXMPP_jingle,DesignXMPP_ft, depth=2)]]

In this phase the existing XMPP libraries will be analyzed and one will be chosen to be used throughout the project.

h2.


==
Requirements

==

* Written in Python (C/C++ could also be used, but a wrapper would need to be written)

* Support for XMPP server and/or component

* Ability to use it with the current model used by SylkServer
**

*
Green threads
**

*
Callback based IO

h2.


==
Software Libraries Evaluation

==

The following aspects were considered when evaluating a given library:



* Met requirements stated above

* Is it actively maintained?

* Example use cases

* Deployments in real-world scenarios

* Perceived complexity to integrate it with SylkServer architecture

List on xmpp.org http://xmpp.org/xmpp-software/libraries/


h2.


==
Selected XMPP library

==

After analyzing candidate libraries *Wokkel* '''Wokkel''' was the chosen one for the following reasons:



* Implemented on top of Twisted, which makes integration with SylkServer straightforward

* Support for both component and XMPP server models, allowing for flexibility in implementation

http://wokkel.ik.nu/



* Plugin architecture, 'subprotocols' implementing different XEPs

* Client and server component support

* XMPP server-to-server support (s2s)

* Designed to be used with Twisted (reactor model)

* Active development

h2.


==
Selected SIP Library

==

SIP SIMPLE SDK http://sipsimpleclient.com used by SylkServer