original in es Juan Pablo Rosas Durán
es to en Miguel Angel Sepúlveda
es to en Javier Palacios Bermejo
en to de Katja Socher
Zur Zeit ist er Systemmanager für "Optica LUX" in Mexico. Er hat seit seinem
dritten Lebensjahr mit Computern zu tun, als er mit den Haufen von Lochkarten von
der Arbeit seines Vaters spielte und Gamma10 Handbücher als Malbücher benutzte.
Seine beruflichen Erfahrungen mit Linux wandelten ihn vollständig und seither
versucht er, Open Source Lösungen (mit einigem Erfolg) überall anzuwenden.
Momentan unterstützt er eine Initiative für die Entwicklung von GPLed
Applikationen für Geschäfte: http://www.pochtecah.org.mx.
Er dankt LinuxFocus für die Möglichkeit, seine Linuxerfahrungen und Open Source
Software zu teilen.
Dieser Artikel diskutiert, wie eine mittelgroße Firma, die sich auf die Entwicklung und Produktion von Brillen spezialisiert hat, Linux und Open Source Software benutzt hat, um ihren Kundendienst zu verbessern.
Óptica LUX ist ein Unternehmen, das sich der Entwicklung und Produktion von kommerziellen Sonnenbrillen und verschriebenen Brillen verschrieben hat. Im März 2000 feierte die Firma ihren 85. Geburtstag und in den letzten acht Jahren hat sich die Zahl ihrer Einzelhandelsläden verdoppelt. Zur Zeit existieren 40 Einzelhandelsläden.
Seit ihren Anfängen hat Óptica LUX eine Politik garantierter Zufriedenheit für ihre Kunden unterstützt und das erfordert den großes Wissen über ihre Kunden, Kundenwünsche und die momentanen Brillengestaltungsvorlieben.
Es wird geschätzt, daß Óptica LUX Ende 1999 Informationen über hunderte ihrer Kunden besaß. Die meisten dieser Informationen bezüglich Statistiken und augenärtztlicher Daten waren auf alten Papierkarteikarten gespeichert. All diese Informationen waren in dieser Form nur von sehr begrenztem Nutzen.
Unser Problem bestand darin, eine Lösung zu finden, um diese Informationen so zu verwalten, daß sie unseren Kundendienst verbessern würden, ohne zu irgendwelchen Verzögerungen in dem bereitgestellten Dienst und seiner Qualität zu führen. All dies sollte ohne zusätzliche Kosten für das Endprodukt geschehen.
Bevor wir anfangen, ist es wichtig, die allgemeinen Schritte, denen ein typischer Kunde von Óptica LUX folgt, zu verstehen, um die Anforderungen für die später beschriebene Anwendung zu verstehen. Wenn ein Kunde zuerst in einen Laden kommt:
Zu unserer Fallstudie, wie ein typischer Kunde in einem Laden bedient wird, müssen wir die folgenden Betrachtungen hinzufügen, um die Dinge in den richtigen Kontext zu setzen, bevor wir die Anwendung schreiben:
Die obige Analyse macht deutlich, daß das benötigte Werkzeug, um unsere Kunden zu unterstützen sehr einzigartig und spezialisiert sein muß.
Von 1990 an haben wir verschiedene proprietäre Systeme, die für den Optikereinzelhandel spezialisiert waren, studiert und getestet, aber keines von ihnen erfüllte wirklich alle oben beschriebenen Anforderungen zufriedenstellend. Eine dieser kommerziellen Lösungen einzuführen, hätte erfordert, die Art,wie Óptica LUX mit seinen Kunden interagiert und ihre Informationen verwaltet, drastisch zu verändern, es hätte bedeutet, doppelt soviel für diese Veränderungen zu zahlen, als der Wert der Software gewesen wäre. Proprietäre Software hat auch noch den zusätzlichen Nachteil, uns von einer dritten Partei, dem Softwareanbieter, abhängig zu machen.
1995 haben wir zum ersten Mal in Betracht gezogen, eine Inhouse-Lösung hausgeschneidert für die Bedürfnisse von Óptica LUX, zu entwickeln. Bei der Abschätzung der Kosten für das Lizensieren der Plattform und Werkzeuge (SCO Unix und Informix) jedoch ergab sich, daß sie äquivalent mit den Kosten für die Eröffnung eines neuen Einzelhandelsladens! einschließlich Installation, augenärtztlicher Ausrüstung und Handelswaren waren!!
Es wurde dann entschieden, daß wir versuchen würden, nach einer durchführbaren Lösung zu schauen, die kein riesiges Investment in Lizenzen erfordern würde. Die Plattformen, die unsere größte Aufmerksamkeit erhielten, waren Coherent, Qnx und Linux.
Wir versuchten, mit coherent Kontakt aufzunehmen, doch hatten sie inzwischen aufgehört, zu existieren.
Qnx hatte ein Büro in Mexico (in der Stadt Monterrey N.L.). Jedoch beschränkte sich ihre Antwort auf das Schicken ihrer Werbebroschüren.
Wir lernten Linux dank eines Artkels mit dem Titel ``Linux una propuesta indecorosa'' (Linux, ein unanständiger Vorschlag), geschrieben von Fernando Magariños (besser bekannt in den Mailinglisten als ``Mancha de la Calabaza que ladra'') kennen. Wir schickten ihm eine Email, die von Miguel de Icaza persönlich beantwortet wurde (ich bezweifle, daß er sich jetzt noch daran erinnert). Er erklärte uns seine Sicht der Dinge, was uns umsomehr in unserem Interesse an Linux bestärkte.
Zuerst wurde Linux für uns hauptsächlich als eine abgabenfreie Plattform interessant. Jedoch wurden seine darunterliegenden Prinzipien, seine Dynamik und der Geist seiner Gemeinde auch sehr wichtige Faktoren.
Die technische Unterstützung, die man für Linux durch Mailinglisten bekommt, ist sehr viel effektiver als die seiner kommerziellen Konkurrenten. Linux ist eine stabile Plattform, die ständig besser wird und hat ein großes Angebot an verfügbaren Anwendungen.
Ein weiterer Faktor ist, daß Informationen über Linux und freie Software viel zugänglicher sind, als solche über proprietäre Konkurrenten, es ist dadurch sehr einfach, sich selbst in der Benutzung von Linux oder seinen Anwendungen zu schulen.
Zur Zeit wird Linux bei Óptica LUX nicht nur in den Läden, sondern auch im Hauptbüro benutzt, besonders auf der Serverseite, um Dateien und Drucker zu teilen und Daten zu speichern und Anwendungen auszuführen, die für andere Unixrechner entwickelt wurden.
Wir benutzen Linux auch, um die grundlegende Kommunikationsinfrastruktur unseres Unternehmens zu unterstützen, wie einen PPP Server, einen Webserver, Email und ftp (unser kleines "Intranet") und auch für die Steuerung und Fragmentierung unseres Netzwerkverkehrs.
Zuletzt haben wir damit begonnen, Linux als eine Desktopplattform für Endbenutzer zu benutzen, aber das ist eine Geschichte für ein anderes Mal :-).
Die ersten Schritte sind niemals leicht und im Fall Óptica LUX war es nicht, das Problem das ausführende Management von der technischen Überlegenheit von Linux als Plattform zu überzeugen, sondern ihnen bewußt zu machen, daß die Kosten, die mit dem Entwickeln eines neuen Systems verbunden sind, besonders einem hoch spezialisierten, sehr hoch sind und das es kein schneller Prozeß ist.
Wir baten sieben Firmen oder Gruppen, uns Vorschläge für das Entwickeln einer auf Linux basierenden Lösung einzureichen, aber ihre Angebote übertrafen bei weitem die Ausgaben für proprietäre Systeme, wie wir sie oben diskutiert haben.
Als nächstes versuchten wir, Entwickler zu rekrutieren, um eine Inhouse-Lösung zu entwickeln. Leider gab es immer noch nur sehr wenige Leute, die auf dieser Plattform wirklich gut waren und der Preis von denen, die verfügbar waren, lag verständlicherweise weit über dem durchschnittlichen Marktpreis.
Heute ist es akzeptiert, daß die Entwicklung von auf Open Source basierenden Lösungen teurer sein kann als proprietäre Systeme, aber die Ergebnisse zufriedenstellender sind. Auf jeden Fall können die Ersparnissse an Lizenzkosten benutzt werden, um die erforderlichen Entwicklungskosten der Anwendung zu zahlen.
Mitte 1999 engagierten wir eine Consultinggruppe, um ein Werkzeug für die Verwaltung unserer Kundendaten basierend auf Linux und der GNU Software zu entwickeln.
Die Entwicklung wurde in einer Reihe von kleinsten Schritten durchgeführt. Eine erste Analyse des Problems ergab:
Basierend auf dieser ersten Analyse entwickelte die Gruppe einen ersten Prototyp, der dann von unseren Expertenaugenärzten getestet wurde. Die Benutzer lieferten interessantes Feedback, das zu Modifikationen in den Anforderungen und zu einem zweiten Prototyp führten. Wir durchliefen einige Verfeinerungszyklen bis wir zu einem zufriedenstellenden Produkt gelangten.
Die Features der Werkzeuge, die bei der Entwicklung benutzt wurden, erlaubten uns, durch erneutes Benutzen und Perfektionieren der Komponenten der Anwendung den Entwicklungsprozeß zu beschleunigen.
Die benutzen Werkzeuge können in zwei Gruppen eingeteilt werden: diejenigen, die während der Analyse, dem Design und der Dokumentation benutzt werden und denjenigen, die während der Entwicklung der Anwendung benutzt wurden.
Es ist schwierig, ein so hochspezialisiertes und komplexes Werkzeug kurz zu beschreiben. Das Skript, das die Datenbank erstellt, hat über 1000 Zeilen SQLcode und die Anwendung selbst über 15 000 Zeilen von Perl. Deshalb werden wir nur die relevantesten Features erwähnen.
Das wichtigste Feature dieser Anwendung ist die Benutzeroberfläche. Um die Benutzbarkeit der Oberfläche zu erleichtern, wurde entschieden, eine sehr einfache und flache Oberfläche zu entwickeln. Die Expertenaugenärzte sollen sich, bei gegebener Erfahrung mit anderer optischer Ausrüstung, angenehm und vertraut damit fühlen, .
Die verschiedenen Elemente der Oberfläche sind in Feldern gruppiert und folgen der Einteilung eines Notizbuches (siehe die folgende Abbildung). Die grafische Oberfläche erfordert vom Benutzer nicht, die Maus zum Eingeben von Daten zu benutzen. Es gibt angenehme Tastaturkürzel, die so angeordnet sind, daß auf jedes Feld im GUI zugegriffen werden kann.
Die Felder in der Anwendung sind wie folgt:
Hiernach werden die wichtigsten Aspekte, die mit diesen Datengruppen zusammenhängen, diskutiert.
Der stärkste Punkt der Felder ist, wie leicht es ist, nach Daten zu suchen (und sie zu finden). Zum Beispiel kann man den Teil eines Stadtteilsnamens eingeben, eine Stadt von der Liste auswählen und die Anwendung liefert dir eine Liste der Postleitzahlen, die beide Kriterien erfüllen.
klick auf das Bild, um eine detailliertere Ansicht zu erhalten
Anstelle des Stadtteils kannst du die Ortschaft eingeben oder beide Namen. In diesem Fall liefert das System eine speziellere Liste.
Die Postleitzahlen, der Stadtteil, Ortschaft und Städte vom ganzen Land sind in der Datenbank mit über 60 000 Einträgen gespeichert. Die längste Suche benötigt nicht länger als 3 Sekunden, um sie durchzuführen und die Postleitzahlen darzustellen.
Die Suchfunktionen sind überall in der Applikation verfügbar. Wenn ein Benutzer eine Person namens "Juan" finden will, dessen Familienname "Perez" oder "Penas" sein könnte, dann schreibt er "Pe" in das Nachnamefeld und "Juan" in das Vornamefeld und nach dem Drücken des "Such"knopfes (oder dem Tastaturkürzel Ctrl-B) liefert ihm das System eine Liste, die jeden Kunden aufführt, der das Kriterium erfüllt.
Von überall innerhalb der Applikation bekommt man durch einfaches Drücken von Ctrl-A ein Fenster mit allen in diesem Moment teilnehmenden Kunden, das es erlaubt, sie mit ihrem Namen zu identifizieren und auf alle ihre Daten zuzugreifen.
klick auf das Bild, um eine detailliertere Ansicht zu erhalten
Dies war mit einer der schwierigsten Felder, die zu entwickeln waren, da es große Änderungen in den pTk widget Quellen implizierte, besonders für den Rahmen "Transparente und externe mittlere Besprechungen".
klick auf das Bild, um eine detailliertere Ansicht zu erhalten
Innerhalb dieses Frames ist der Benutzer in der Lage, jede verfügbare Überprüfung auszuwählen, die begleitet durch eine Liste mit allen möglichen Anomalien für jedes Auge angezeigt wird.
klick auf das Bild, um eine detailliertere Ansicht zu erhalten
Sobald der Augenarzt den "check Knopf" drückt, erscheint ein Kreuz neben dem Label der gewählten Überprüfung. Kennt jemand einen einfachen Weg, das z.B. mit VB zu machen?.
In dem Untersuchungsfeld wird eine eher komplexe Menge von Validierungen durchgeführt. Wenn der Augenarzt die Messungen der Instrumente niederschreibt und über die korrekte Einstellung für den Kunden entscheidet, dann überprüft das System die Korrektheit der Verhältnisse zwischen verschiedenen Daten und warnt den Benutzer, wenn eine Bedingung nicht erfüllt ist.
klick auf das Bild, um eine detailliertere Ansicht zu erhalten
Dies ist das Juwel der Applikation! Dieses Stück Code war eines, das größere Anstrengungn bedurfte und die meisten Diskussionen innerhalb des Entwicklerteams auslöste. Die meisten Leute, die Kontaktlinsen tragen, können sich die Komplexität des höchst erstaunlichen Dings, daß sie in ihren Augen tragen, nicht vorstellen.
Kontaktlinsen sind wie Schuhe. Genauso wie es keine zwei gleichen Füße auf der Welt gibt, gibt es kein Augenpaar mit denselben Sehproblemen.
Die Applikation wurde entwickelt, um dem Augenarzt zu helfen, den besten Typ von Kontaktlinsen für jeden Kunden auszuwählen. Es ist unmöglich für die Applikation, automatisch über die korrekte Einstellung zu entscheiden, weil es so viele nicht meßbare Bedingungen gibt, die in Betracht gezogen werden müssen (z.B. die, die in dem Feld mit optischen Aufzeichnungen gezeigt sind).Jedoch ist das Modul sehr nützlich, um die Auswirkung vieler Faktoren auf die Sehschärfe jedes Auges zu beurteilen.
klick auf das Bild, um eine detailliertere Ansicht zu erhalten
Zum Beispiel für wulstartige Kontaktlinsen gibt die Applikation dem Augenarzt einen Weg, verschiedene Korrekturen für die Abweichung der Kontaktlinsenache (die untere rechte Ecke in der vorherigen Abbildung) zu probieren. Wie vorher schon gesagt, ist jedes Auge einzigartig und die Kontaktlinsen leiden unter kleinsten Abweichungen, um die corneaform zu beherbergen, was die endgültige wirksame Einstellung des Auges verändert.
Es gibt andere Teile der Applikation, die wegen ihrer einzigartigen Charakteristiken erwähnt werden müssen. Eine von ihnen ist der Mechanismus, Datenbanken über das Interent zu duplizieren. Wir suchten nach einer sicheren Übertragung der Daten von jedem Optikergeschäft zur zentralen Datenspeicherung in unserem Hauptbüro.
Dieser Mechanismus wurde durch Benutzen verfügbarer Module von jeder CPAN Mirrorseite und einigem Code, der für den Datenbank PostgreSQL geschrieben wurde, wie in de Abbildung unten gezeigt, implementiert.
klick auf das Bild, um eine detailliertere Ansicht zu erhalten
Tatsächlich enthält diese Entwicklung so viele interessante Aspekte, daß wir hoffen, einen weiteren zukünftigen LinuxFocusartikel darüber schreiben zu können. Wenn die Editoren uns diese Möglichkeit geben :-)
Der letzte zu erwähnende Punkt ist die Benutzung von leichten, kleinen Computern. Wie in der Einführung gesagt, war eine der Anforderungen, Computer mit der kleinstmöglichen Größe zu benutzen. Deswegen war eine wichtige Aufgabe, zu studieren, ob gebrauchte 486, slim und ultra-slim Rechner und Netzwerkrechner die beste Wahl wären.
Die brauchbarsten Alternativen waren:
Da der kritische Punkt der physikalische Platz war, wählten wir Netzwerkcomputer mit 9'' SVGA Bildschirmen, da ihre Größe(19.05x26.67x3.18 cm) es erlaubt, sie irgendwo im Laden aufzustellen.
Die Erfahrungen mit leichten, kleinen Computern hat viele interessante Aspekte, über die wir in einem zukünftigen LinuxFocusartikel schreiben werden.
Wir wollen den Artikel nicht beenden, ohne eine angemessene Anerkennung an die Leute, deren Kreativität und Anstrengungen es ermöglicht haben, die gesamte Applikation auf Linux basieren zu lassen:
Citlali Calderón de Anda: citlali@galois.fciencias.unam.mx
Liliana Araceli Cabello: liliana@galois.fciencias.unam.mx
Juan José Alba
Edgar Raúl Acosta Villaseñor: edgar@galois.fciencias.unam.mx
Gunnar Wolf: gwolf@chmd.edu.mx
Roberto Andrade Fonseca: randrade@abl.com.mx
Wir glauben, daß ein Teil des Codes allgemein interessant sein könnte, wie die Änderungen in den pTk widgets, die verschlüsselt verschickten Emails unter Benutzung von Perl, und die Programme zum Duplizieren und Synchronisieren der PostgreSQL Datenbanken sowie die floppy Bilder für graphische Bootdisketten. Alles wird in Zukunft unter http://www.pochtecah.org.mx/ABL_GNU.html zu finden sein.