the ultimate jabber client
  
  Technische Details

Planung und Grundidee

Das Grundziel ist die Entwicklung eines stabilen, leistungsfähigen, aber auch grafisch ansprechenden Jabberclienten. Die Bedienung soll dabei intuitiv sein und an andere Chatprogramme erinnern, um Umsteigern und Normalanwendern die Benutzung zu vereinfachen.
Die Modularisierung erfolgte zunächst auf dem Papier und sieht eine Unterteilung in Jabbermodul und GUI, sowie einige Wrapper vor, die eine Portierung auf andere Umgebungen vereinfachen soll.

Entwicklungsumgebung

Für die Entwicklung von UJC verwenden wir die Borland ® Delphi ® 6 Personal Edition auf einer Windows ® XP Maschine mit Pentium ® 4 und 2000 MHz.

Testumgebung

In der Testumgebung verwenden wir Wildfire (Upgrade auf Openfire steht bevor) als XMPP-Server. Zum Test werden sowohl drahtlose Verbindungen (Verbindungsabbrüche), alsauch WAN- und LAN-Verbindungen benutzt.

Modularisierung

UJC basiert auf diversen Modulen, die vor dem Compilieren beliebig ausgetauscht werden können. Zu nennen wären zum Beispiel diverse Wrapper für grafische Darstellungen, Soundwiedergabe, TCP-Kommunikation, Fensterdesign und Systemfunktionen, sowie das momentan ziemlich simple und langsame XML-Modul, das vor der Erstveröffentlichung erneut überarbeitet werden muss.
Denkbar sind auch Module, die Funktionsaufrufe lediglich an andere Bibliotheken wie das GTK+ umleiten. UJC kann dadurch sowohl als USB-Stick-Version (in nur einer ujc.exe) alsauch als anpassungsfähiges, modulares Programm verwendet werden.

Quellcode

Der Source besteht momentan aus 42137 Codezeilen, wobei das Jabbermodul mit 1415 Zeilen den Löwenteil ausmacht (gefolgt vom Hauptprogramm mit 1086 Zeilen).
Eine Veröffentlichung des Codes wird mit großer Wahrscheinlichkeit erst mit steigender Popularität von UJC erfolgen, um die Entstehung von Parallelprojekten vorerst zu vermeiden. Nichts gegen ideenreiche Bessermacher, aber viele Köche verderben nunmal den Brei ;-)

Das Herzstück: das XML-Modul

Solange nicht klar ist, welches Lizenzmodell für UJC zur Anwendung kommt (es wird auf jeden Fall kostenlos!), sind wir leider auf die Verwendung unseres provisorischen XML-Moduls angewiesen, das zwar seine Aufgabe gut macht, aber gerade bei größen Datenmengen sehr viel Zeit zur Verarbeitung beansprucht. Außerdem können fehlerhafte XML-Pakete im Chaos enden :-(
Die Entscheidung, ob das Modul verbessert oder durch ein fertiges ausgetauscht wird, steht noch an.

Das Gehirn: das Jabbermodul

Unser Jabbermodul bezieht die Pakete selbst von einem TCP-Wrapper und schickt sie durch den XML-Parser, bevor sie ausgewertet werden. Das Jabbermodul stellt sämtliche Funktionen bereit, die für UJC benötigt werden - also von Nachrichtenübertragung über Dateiübertragungen bis hin zu Pings, die zur Verbindungsüberprüfung und -aufrechterhaltung benötigt werden.

Spezifikationen

Wir sind bestrebt UJC so kompatibel wie möglich zu machen und verwenden daher großteils bereits eingetragene XEPs, sowie natürlich die beiden RFCs, die zu XMPP gehören. Die volle Liste der bereits implementierten XEPs ist an anderer Stelle veröffentlicht.