Login
Newsletter
Werbung

So, 29. März 2009, 00:00

C.U.O.N. und mobile Dienste

Das C.U.O.N.-System sowie der Client pyCuon ist eine Auftragsbearbeitung, Warenwirtschaft und allgemeine Datenverwaltung. Außerdem beinhaltet es ein Document Management System (DMS). Das komplette System steht unter der GPLv3. Moderne mobile Datendienste sind ein wichtiges Thema und ich möchte hier eine etwas außergewöhnliche Antwort geben.

Vorwort

Nach jetzt neun Jahren Entwicklung ist C.U.O.N. hervorragend geeignet für den Einsatz auf dem Linux-Desktop. Von Anfang an wurde die Entwicklung auf ein Thin-Client-System optimiert. Der Großteil der Arbeit wird im Server erledigt, aber gleichzeitig wird auch das alte Linux-Prinzip der Zusammenarbeit vieler Programme genutzt. So nutzt der C.U.O.N.-Client eine Office-Suite, meistens OpenOffice, Dia, xemacs, vim, Musikplayer für Sprachnotizen, Google Earth, Webbrowser, PDF-Viewer und vieles mehr zur bestmöglichen Darstellung und Bearbeitung der Daten.

Auf dem Handy, PDA oder Netbook sieht die Sache anders aus. Zwar kann der C.U.O.N.-Client an sehr viele Gegebenheiten angepasst werden, also auch an eine Auflösung, wie sie die Netbooks haben. Aber beim PDA und Handy oder anderen mobilen Internet-Geräten sieht das schon schlechter aus. Und hier setzt mein neues Lösungskonzept an.

Das Handy-Problem

Im realen Unternehmen gibt es eine Reihe von Problemen mit Handys, PDAs und Netbooks. Alle diese Geräte spielen eine große Rolle, wenn es um den Zugang zu Firmen-Daten geht. Das sind häufig recht profane Dinge. Als virtuelle Mitarbeiterin Celia wollen wir uns eine Firmenchefin oder eine Außendienstmitarbeiterin einer fiktiven Firma vorstellen.

Da wären z.B. einfachste Dinge wie Telefonnummern und Adressen. Celia benötigt sie auf ihr Handy, da sie viel unterwegs ist. Probleme mit dem Synchronisieren der Daten gab es immer wieder in Verbindung mit den Linux-Desktop, die Situation hat sich aber gewaltig verbessert. Aber es ist halt so, das es viel Arbeit macht, aus zehntausenden von Adressdaten die für uns wichtigen zu selektieren und aufs Handy zu übertragen. Auch spielt natürlich die Aktualität eine Rolle, aktualisiert man wirklich jeden Tag?

Der normale Cuon-Client, Adressverwaltung

Jürgen Hamel

Der normale Cuon-Client, Adressverwaltung

Das nächste sind die Daten selber. Eine Adresse und Telefonnummer sind schön, aber evtl. benötigen wir die E-Mail Adresse, die Durchwahl eines Gesprächspartners, unsere Notizen zu diesem Kunden, die Termine, die andere Mitarbeiter nächstens bei diesem Kunden haben, usw. Und was ist mit Artikeln, wenn Celia um 17.15 beim Kunden ist, Infos zu einem Artikel benötigt und kein Mitarbeiter mehr am Arbeitsplatz ist, weil eben Feierabend ist?

Der Kunde möchte genau wissen, wie weit wir mit seinem Projekt sind, oder was letzten Monat an Leistungen für diesen Kunden erbracht wurde. Bei der heutigen Datenflut müssten wir bergeweise Ordner oder eben ein Notebook mit Cuon-Client haben. Dazu kommen eingescannte Dokumente, Geschäftsberichte, usw. Ohne Laptop bieten die derzeitigen Möglichkeiten nur einen äußerst eingeschränkten Zugriff auf die Daten.

Eine Intelligente Lösung

Also, wir haben eine riesige Datenmenge in unseren SQL-Server und können auch vom C.U.O.N.-Client von einem normalen Linux-, Windows- oder Mac-Desktop darauf zugreifen. Nur von unterwegs, mit Handy oder PDA, im Internet-Café usw. haben wir so gut wie keinen Zugriff. Für jedes der verschiedenen Handys einen Client zu programmieren, wäre ein ungeheuer großer Aufwand.

Viele Handys bieten inzwischen einen günstigen Internet-Zugang mit den verschiedensten Internet-Programmen, so fast immer einen Webbrowser und sehr oft einen Messenger. Das Nachinstallieren von Programmen ist ebenso oft möglich.

Seit einiger Zeit drängte sich daher folgender Gedanke auf:

Wenn ich meinem C.U.O.N.-Server eine Nachricht zukommen lasse, z.B. »Suche mir die Adresse von Müller, Anton« und mein Server dies empfangen und verstehen, d.h. in einen SQL-Befehl umsetzen kann, und aus dem Ergebnis eine Antwort erzeugen kann - ja, das könnte eine Lösung sein.

Das neue Konzept

Jabber

Nach einigem Suchen schien mir Jabber ein viel versprechender Kandidat für dieses Lösungskonzept zu sein. Die Vorteile liegen auf der Hand:

  • Einfache Erstellung eines Python-Clients für den Server
  • Jabber-Clients für die verschiedenen Handys und PDAs sind vorhanden
  • Webinterfaces mit Jabber Zugang sind vorhanden
  • Das Jabber Protokoll ist offen
  • Dateitransfer wird unterstützt

Mit Jabber wäre es also möglich, einen eigenen Client für den C.U.O.N.-Server zu entwickeln und auch einfach mit Hilfe der Linux-Distribution einen eigenen Jabber-Server aufzusetzen. Der eigene Server ist zwar nicht notwendig, aber für Firmen bietet das viele Vorteile. Ich erinnere mich noch gut daran, das vor einigen Tagen plötzlich der Zugang von Pidgin zu ICQ nicht mehr funktionierte. Da war es dann doch besser, gleich einen eigenen Jabber-Server aufzusetzen, als alle zwei Minuten ein Anruf wegen fehlendem ICQ zu bekommen.

Die AI

Ich bezeichne das Expertensystem in C.U.O.N. gerne als AI (Artificial Intelligence - künstliche Intelligenz), obwohl es sich natürlich nur um eine simple AIML-Implementierung handelt. Nichtsdestotrotz kann es unterschiedliche Sätze richtig interpretieren.

Sätze wie »Suche mir die Adresse von Müller, Anton«, »suche Telefon Müller, Anton«, »suche mir bitte die Telefonnummer von Müller, Anton«, »st Müller, Anton« werden zum AI-Server gesendet und mit Hilfe von AIML-Regeln umgewandelt und zum C.U.O.N.-Server zurückgeschickt. Dieser bildet daraus eine SQL-Abfrage.

Um das alles auch mehrsprachig hinzubekommen, habe ich eine Zwischenschicht mit AIML-Regeln. Diese übersetzen z.B. Deutsch (also die Lokale) nach Englisch, dann wird Englisch nach »CUON« übersetzt.

Wichtig war mir vor allem, dass die AI lernfähig ist und sich einfach anpassen lässt. Dadurch wird der Anwender nicht in ein Computer-Korsett gepresst, also kein »Drücke CTRL-2, dann F2, dann zweimal ESC und dann Müller, Anton«. So sehr ich dies bei meinem Editor (ERIC4 mit xemacs-Tastenbelegung :-) ) akzeptiere, ist es für den normalen Benutzer nicht intuitiv genug. Außerdem soll die AI mehr oder weniger komplexe Sätze verstehen und umwandeln, »Nenne mir den günstigsten Preis und Lieferanten für gelbe Kunstrosen« sollte also verstanden werden und dann eine sinnvolle Rückantwort geschickt werden.

Der Jabber-Client

Hiermit ist der Empfänger für den C.U.O.N.-Server gemeint. Da die Server-Module auf Python und Twisted basieren, bot sich hier »Twisted-Words« an, mit dem ein Jabber-Empfänger mit wenigen Zeilen realisiert werden konnte, der reine Empfänger-Teil waren keine 15 Zeilen.

Als erstes erwartet der Empfänger einen Login, also eine Nachricht mit folgenden Aufbau:

login username,password,mandanten-ID
Eine Jabber-Session mit C.U.O.N.

Jürgen Hamel

Eine Jabber-Session mit C.U.O.N.

Wenn alles OK ist, erfolgt die Rücksendung »Authentication successful«. Es wird eine Session-ID erzeugt und diesem Absender zugeordnet. Nach einer festgelegten Zeit wird die Session-ID ungültig. Nun werden andere Sätze akzeptiert und zum C.U.O.N.-Server weitergeleitet, dort ausgewertet und die Ergebnisse zum Sender zurückgeschickt.

Kommentare (Insgesamt: 0 )
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung