Home
Diplomarbeit
Contents
1. aus a zA Z H chstl nge erreicht und GE merken erreicht Zeichen nicht aus a zA Z und Mindestl nge nicht erreicht Zielvariable schreiben l 5 hea Fe ABBILDUNG 9 ABLAUF F R BUCHSTABENFOLGEN Z Bei Buchstabenfolgen Kennung z wird jedes Zeichen eingelesen bis ent weder die H chstl nge erreicht ist oder ein Zeichen auftritt das e a zA z ist Wird ein unzul ssiges Zeichen vor dem Erreichen der Mindestl nge entdeckt ist dies ein Fehler 46 SE Se Yy Y N chstes Zeichen lesen Be _ Sonst See SE ER A Folgezeichen Zeichen f r Zielvariable erkannt H chstl nge erreicht und Mindestl nge merken erreicht Y Zielvariable schreiben ABBILDUNG 10 ABLAUF F R ZEICHENKETTEN S Beim Automat f r beliebige Zeichen Kennung s mit angegebener Minimal und Maximall nge wird solange gelesen bis entweder nach Erreichen der Mindest l nge das auf die Formatierungsangabe folgende Zeichen erkannt wird oder die Ma ximall nge berschritten wird Konstante Ausdr cke werden Zeichen f r Zeichen verglichen und m ssen genau bereinstimmen 6 7 2 3 Formatieren von Zahlen formatno Die in den Variablen angegebenen String werden oft als Zahlen verwendet In dies em Fall wird noch die Aktion formatno ben tigt die den angegebenen String als Zahl interpretiert u
2. Bernhard Adamski Praktisches Arbeitszeitmanagement 2 Auflage Datakontext Verlag K ln 2000 Wolfgang Bauer Skript Nr 358 Systemprogrammierung 2 Eigendruck FH Furtwangen Grady Booch Jim Rumbaugh Ivar Jacobson Das UML Benutzerhandbuch 2 Auflage Addison Wesley Longman Bonn 1999 Hans B hme Wilfried Butzer Matthias Herold Computerunterst tzte Urlaubsanspruchsermittlung Bibliomed Med Verl Ges Melsungen 2001 nicht bekannt BYTE DESIGNS D ISAM User Manual June 14 1993 Byte Designs Ltd Langley BC Kanada 1993 Erich Gamma Richard Helm Ralph Johnson John Vlissides Entwurfsmuster Elemente wiederverwendbarer objektorientierter Soft ware Addison Wesley Longman Bonn 1996 Adele Goldberg David Robson Smalltalk 80 the language Addison Wesley Reading MA USA 1989 Goldberg Katzman Rubin Object Oriented Methology Workshop Course Materials Version 4 0 ParcPlace Systems Inc Sunnyvale CA USA 1992 Helmut Herold Linux Unix Systemprogrammierung 2 Auflage Addison Wesley M nchen 1999 J rgen Junghans Karlheinz Roschmann Zeit und Betriebsdatenerfassung Verlag Moderne Industrie Landsberg Lech 1993 Herbert Kopp Skript Compilerbau Vorlesungsunterlagen Prof Schwegler Lalw1 Lalw2 SchH1 SteR1 SteR2 StrB1 ZeiA1 ZieJ1 12 2 12 2 1 BraT1 BraT2 CzyR1 GroM1 Wilf R Lalonde John R Pugh Inside Smalltalk Volume Prentice Hall Inc Englewood C
3. action interne Verwaltung benutzt des Systems V Eingabeger te controller FL ser 3 l st as GEN ee Za SE N Ke V benutzt Pi D I NM M Ki I R An A ER IN benutzt gt A gt X A Funktionen f r A benutzt _ IN J bentt siele enz ESEL ei Ka Schnittstellen benutzt Men action benutzt z B zum Server Funktionen und eg e Objekte f r die Be Konfiguration config ver ndert Darstellung der Sen CSR Oberfl che SC Dag 5 Ba Zu SC ki Variablen model ABBILDUNG 3 INTERFACE ACTION CONFIG MODELL Mit Interface Action Config entwickelte Programme sind in zwei Module aufgeteilt Das Interface welches die Oberfl chenansicht view und die Eingabe controller einschlie t regelt die Darstellung zum Benutzer hin und die Verarbeitung seiner Ein gaben Die Aktionen action sind von der Oberfl che losgel ste Reaktionen auf Ereignisse die entweder vom Benutzer ber de GUI oder ber externe Schnittstellen ausgel st werden Eine globale Konfiguration config enth lt zweierlei Beschreibungen die Beschreibung wie die Oberfl che aussieht und wie auf Eingaben reagiert werden soll 21 die Beschreibung welche Aktionen durchgef hrt werden k nnen und wie sie hei en Diese beiden Module ben tigen jeweils eine gemeinsame Datenbasis die sie mani pulieren k nnen Diese wird zur Laufzeit hnlich globalen Variablen bzw
4. mierung verwendet sondern ist so intuitiv da ein d nischer Hersteller von Plastik spielzeugen seine Elektronik auf diese Art und Weise programmieren l t Tit Oft ist bei Aufgabestellungen im Bereich der Dateneingabe ein gewisser Ablauf z B in Form eines Diagramms vorgegeben Je nach Eingaben wird dann auf weitere Teilabl ufe verzweigt Eine solche Konfiguration ist bei Interflex schon im Bereich der Betriebsdatenerfassung f r die Modellierung von Abl ufen im Einsatz Sie ist auf ein fachere Hardware ausgerichtet und l t sich in diesem Zusammenhang nicht einset zen da sie auf die Hardware des verwendeten Controllers direkt zugeschnitten ist Diesem Ansatz wurde der Vorzug gegeben da er eine verh ltnism ig einfache Konfiguration des Systems erlaubt und auch mit angemessenem Aufwand realisiert werden kann 16 5 2 1 4 von der Oberfl che ausgehend Browser basiert Skripting Mittels Webtechnik lie sich dieses Problem auch angehen Dabei w rde die Logik auf dem eigentlichen Server angesiedelt und dort ber server seitiges Skripting eine Oberfl che erzeugt Diese w rde dann als HTML Datei an den Client geschickt Nachteil dieser L sung ist da nur auf die Oberfl che reagiert werden k nnte Auf externe Schnittstellen k nnte nicht reagiert werden Der Anschlu eines Ger tes z B eines Ausweislesers wird dadurch erschwert da dieser am Client Rechner bei dem der Benutzer steht angeschlossen ist und ni
5. Kindprogramm erwartet da es Daten von der Standardeingabe lesen soll bis die ses Device geschlossen ist mu der Elternproze nach dem Schreiben aller Daten die Stream Pipe schlie en Ansonsten w rde der Kindproze unendlich auf weitere Daten warten Wird allerdings auf Seiten des Elternprozesses der Deskriptor ge schlossen kann der Elternproze von dort auch keine Daten mehr lesen Alle Aus gaben des Kindprozesses ab diesem Zeitpunkt w re verloren 58 Das genannte Szenario ist realistisch wie sich am Beispiel des cat Befehls belegen l t Dieser liest die Daten zeilenweise von der Standardeingabe und gibt sie gleich an die Standardausgabe weiter Er wird erst beendet wenn die Standardeingabe ge schlossen wird bzw die dort angeh ngte Datei zu Ende ist 7 2 3 L sung Dieses Problem kann nur gel st werden indem es dem Elternproze erm glicht wird weiter zu lesen obwohl er den Schreibdeskriptor geschlossen hat Zu diesem Zweck wird eine zweite Pipe erstellt so da jede nur eine Richtung bedient Elternproze KindprozeR schreibpipe 0 a gt stdin schreibpipe 1 lesepipe 1 EE stdout lesepipe 0 ABBILDUNG 16 KOMMUNIKATION BER ZWEI PIPES In dieser Konstellation kann jetzt der Elternproze den Deskriptor schlie en mit dessen Hilfe er schreibt und dennoch weiterhin von der anderen Pipe lesen 7 3 Kritische Abschnitte An verschiedensten Stellen in dieser Arbeit t
6. Kundensystemidentifikation oder einen Fehlercode Ebenfalls kann ein Ereignis definiert werden das beim Entfernen des Ausweises aus dem Lesebereich ausgel st wird 6 6 3 Schnittstelle zum Anschlu an System 6020 Buchungs schnittstelle ifterapi bzw IfMulterapi Das IfSoftterm sollte alle M glichkeiten eines normalen Terminals bereitstellen Dazu wird die Buchungsschnittstelle zum System 6020 ben tigt Bislang stand allerdings nur unter Windows eine Schnittstelle zur Verf gung Daher wurde zun chst eine ent sprechende Bibliothek unter Unix erstellt und dann in das IfSoftterm eingebunden Die erstellte Bibliothek ist unter 6 8 1 beschrieben Die Parameter der Schnittstelle sind im Knoten general der Konfiguration beschrieben Die Initialisierungsroutine wird gleich zu Beginn des Programms anhand dieser Informationen aufgerufen Da nach steht eine Funktion zur Verf gung die es erm glicht eine Buchung zu senden und eine definierte Zeit auf eine Buchungsantwort zu warten Au erdem kann der Verbindungszustand abgefragt werden Die Behandlung von nicht vorhandenen Ver bindungen zum Server wird durch eine Pufferung innerhalb der Bibliothek gel st 6 6 4 Schnittstelle zum Aufruf von Funktionen in dynamischen Bibliotheken blicherweise werden zum Aufruf von fremden Funktionen dynamische Bibliotheken verwendet Daher erschien es pr fenswert ob nicht auch das IfSoftterm solche auf rufen k nnen soll Ein Pointer a
7. Objekten in einer klassischen Programmiersprache angesprochen Die einzelnen Daten der Da tenbasis werden hier als Variablen bezeichnet Beide Module action und view manipulieren die in den Variablen gespeicherten Daten konkurrierend So kann ein einer Ansicht zugeh riges Steuerelement eine Va riable ndern deren neuer Wert sp ter von einer Aktion verarbeitet wird Schlie lich kommen noch Schnittstellen dazu welche Funktionen f r die Aktionen bzw Views zur Verf gung stellen n mlich beispielsweise de GUI Bibliothek oder die Schnittstelle zum Server System Diese sind dann nur indirekt ber View oder Actions konfigurierbar 22 5 3 2 Ablauf am Beispiel Zeiterfassung Nun wird am Beispiel Zeiterfassung erl utert wie ein solcher Ablauf in der Praxis aussehen k nnte Start Y Ansicht 1 Zwei Buttons Buchung mit Ausweis Buchung mit PIN Code Button Ausweis gedr ckt Ansicht 2 1 Label Bitte Buchungstyp ausw hlen 3 Buttons Kommen Gehen Zutritt Beim Dr cken eines der drei Buttons Y Button PIN Code gedr ckt t Ansicht 3 1 Label Bitte Code eingeben 1 leeres Eingabefeld Nach Eingabe des PIN Codes t nach Ansicht 4 Aktion 1 nach Timeout ee PIN Code an Zutrittssystem schicken Timeout
8. allerdings w rde der Codeteil nicht in Visual Basic geschrieben sondern in der gew hlten Skriptsprache Das Ergebnis k nnte dann von einer eige nen Applikation ausgewertet werden da die frm Dateien von Visual Basic ein defi niertes Format haben Ein Nachteil dieser Variante ist jedoch da ein normaler Mensch der dieses System konfiguriert und der es z B gewohnt ist die Zeiter fassungsapplikation 6020 ber deren VBA Schnittstelle anzusprechen von der Mi schung der Sprachen stark verwirrt w rde 5 2 2 3 Konfigurationsdateien Konfigurationsdateien z B in XML bieten eine gute M glichkeit die Oberfl che zu beschreiben Die einzelnen Steuerelemente oder in der X Server Sprache Widgets k nnten ber eigene Knoten abgebildet werden und mit Attributen versehen werden Diese lassen sich dann flexibel auf dem Bildschirm anordnen Die Reaktionen auf nderungen lassen sich gleich mit angeben Ein Nachteil ist da die Konfiguration von Verzweigungen u nicht so bersichtlich wird 8 2 2 4 HTML Die Entwicklung von Oberfl chen in HTML ist ein stark verbreitetes Verfahren Client seitig l t sich in der Regel auf Standardhilfsmittel zur ckgreifen Bei Oberfl chen f r Touchscreens mu durch geeignete Programmierung daf r Sorge getragen werden da eine Bedienung mittels Fingerdruck m glich ist Ein gr eres Problem stellt es dar da auf dem Client keine vern nftigen oder nur propriet re M glichkeiten zur Ans
9. Arab zur berpr fung ob die T r ge ffnet Bitte Ausweis an Sensor halten H 9 9 werde soll Beim Hinhalten des Ausweises Aktion a Aktion 3 Buchung an Zeiterfassungssystem A e Pr fen ob Antwort korrekt ist absetzen und auf Antwort warten a Nach Erhalt der Buchungsantwort korrekt korrekt Ansicht 5 Ansicht 6 Ansicht 7 i Buchungsantwort Anzeigen da Buchungsantwort anzeigen 3 R S i anzeigen nicht ge ffnet wird Aktion 4 T re ffnen ABBILDUNG 4 BEISPIEL F R DERARTIGE ABL UFE 23 Hier l t sich erkennen wie aus Ansichten Ereignisse verarbeitet werden die wie derum Ansichten anzeigen oder Aktionen ausl sen Letztere k nnen dann ihrerseits weitere Aktionen oder Ansichten aktivieren 5 3 3 Protokollierung Ziel konfigurierbarer Applikationen ist es dem Benutzer einen eingeschr nkte Zugriff auf die Funktionalit t des zugeh rigen Serversystems zu geben Im Fehlerfall ist es wichtig nachvollziehen zu k nnen was der Benutzer in welcher Reihenfolge ge macht hat und welches Resultat er damit erzielt hat So k nnen bei Problemen not falls auch manuell die Daten auf dem Serversystem nachgef hrt werden Es ist in den meisten F llen sinnvoll den Benutzer dar ber zu informieren da die Verbin dung zum Serversystem unterbrochen ist Allerdings kann und soll er dieses Problem nicht selbst beheben Dies sollte vom Administrator vorgenommen werden der dann die Informationen aus dem Logfile ben tigt um die Urs
10. Datenverarbeitung auf mehrere miteinander vernetzte Rechner aufgeteilt wird Der Server stellt Dienste zur Verf gung die der Client dann nutzt Server im Hintergrund spielen im Leben vieler Menschen eine Rolle ohne da sie sich dessen bewu t sind An dieser Stelle seien nur einige Beispiele erw hnt der Webserver im Intranet einer Firma der einem Informationen zur aktuellen Situation liefert der Mailserver von dem man seine Briefe erh lt der Druckerserver im Firmennetzwerk oder das Warenwirtschaftssystem das einem die Produktionsmittel verwaltet Mit all diesen Systemen kommt der normale Anwender nicht direkt in Ber hrung sondern nur ber den Client Er bekommt Benutzerschnittstellen mit deren Hilfe er mit dem System kommuniziert und nimmt nur diese wirklich wahr Eines unter diesen Systemen ist das System 6020 der Firma Interflex das sich mit den Bereichen Zeitwirtschaft Zutrittskontrolle Betriebsdatenerfassung Personalein satzplanung u besch ftigt Auch hier werden Schnittstellen ben tigt mit denen der Mensch mit dem System Daten austauschen kann Bedingt durch die Komplexit t des Systems und aufgrund vieler unterschiedlicher Anforderungen verschiedener Kunden ist es notwendig die Schnittstellen so zu gestalten da sie den Bed rfnissen im Einzelfall angepa t werden k nnen aber auch einen m glichst gro en Teil der Bedienung des Systems abdecken k nnen Die Benutzerstelle sollte konfigurierbar sein so d
11. Dezimal zahl beginnend mit 0 als Oktalzahl oder beginnend mit 0x als Hexadezimalzahl Es gibt dann die zugeh rige UTF 8 Sequenz als Folge von mit h abgeschlossenen Hexadezimalzahlen aus Die Quelltexte dieses Programms liegen dieser Arbeit bei Das Verfahren zur Um wandlung von Unicode nach UTF 8 ist im Anhang in 13 3 beschrieben 6 8 4 Test der seriellen Schnittstelle Das Hilfsprogramm serialtest ffnet die als Kommandozeilenparameter als Ger te datei angegebene serielle Schnittstelle und gibt alle eingelesenen Zeichen hexade zimal aus Das Programm verwendet die interne v24 Bibliothek des Systems 6020 welches die Funktionen zur Kommunikation ber die serielle Schnittstelle zur Verf gung stellt Die Quelltexte des Programms liegen dieser Arbeit bei 55 6 8 5 Aufruf von dynamischen Bibliotheken Das Hilfsprogramm sotest dient zum Test des Aufrufs dynamischer Bibliotheken mit einer erst zur Laufzeit bekannten Anzahl Parameter Es erh lt als erste beiden Kom mandozeilenparameter den Pfad der Bibliothek und den Namen der Funktion bzw des Symbols Alle weiteren Parameter folgen darauf und werden als Long Werte in terpretiert Der R ckgabewert der Funktion wird als Long Wert interpretiert und aus gegeben Im selben Projekt wird noch eine dynamische Bibliothek erzeugt die nur eine einzige Funktion exportiert n mlich die Funktion add Diese nimmt an da der erste Para meter die Anzahl der
12. ber diese Aktion abgewickelt Neben dem Namen der gew nschten Schnittstelle k nnen noch Variablen f r das Speichern der Buchungsantwort sowie Aktionen beim Erhalt von Buchungsantworten oder beim Timeout angegeben werden Die Zeit die maximal auf eine Buchungsantwort ge wartet werden soll ist ebenfalls einstellbar Die Schnittstellenparameter sind in der globalen Konfiguration vgl 6 5 1 7 festge legt 6 5 4 Implementierung mit Hilfe von XML Nachdem die Entscheidung zur Verwendung vom XML gefallen ist mu te eine Bib liothek zum Parsen der XML Konfigurationsdatei ausgew hlt werden Unter Linux ist nur eine Bibliothek weit verbreitet Die Xerces Bibliothek N aus dem Apache Projekt Dar ber hinaus ist sie im Rahmen der Apache Software Licence frei ver wendbar Aus diesen Gr nden wurde der DOM Parser aus dieser Bibliothek einge setzt Die Performance des Parsens spielt nur eine sehr untergeordnete Rolle da das Parsen der Konfiguration nur einmal beim Programmstart durchgef hrt wird 6 5 4 1 berpr fung der Struktur Zun chst einmal wird die syntaktische Richtigkeit der XML Datei mit Hilfe einer Do cument Type Definition DTD berpr ft Dabei handelt es sich um eine Beschrei bung des syntaktisch Zul ssigen in der XML Datei Ein Tutorial zur Verwendung von DTDs ist unter R Verf gbar Der DOM Parser kann optional eine berpr fung der syntaktischen Richtigkeit anhand der DTD vornehmen und die Fehler darstellen Ansc
13. die Systemberater der Firma Interflex so konfiguriert werden kann da ein Einsatz im produktiven Betrieb beim Kunden m glich ist Ein Ziel dieser Arbeit ist die Erstellung eines lauff higen Prototypen der die im Rahmen der Untersuchung des Problems gewonnenen Erkenntnisse anwendet In dieser Ar beit wird f r die Applikation der Arbeitstitel IfSoftterm verwendet Die Ber cksichtigung von Aspekten wie Dialoggestaltung und Softwareergonomie tritt in dieser Arbeit eher in den Hintergrund da dies der Verantwortung des Konfigu rierenden obliegt 4 Grundlagen der Zeiterfassung In dieser Arbeit spielen die Abl ufe und die Terminologie der Zeiterfassung eine grundliegende Rolle Daher werden hier zum besseren Verst ndnis einige Grund begriffe erkl rt 4 1 Betriebsdatenerfassung BDE Betriebsdatenerfassung BDE umfa t die Ma nahmen die erforderlich sind um Betriebsdaten eines Produktionsbetriebs in maschinell verarbeitungsf higer Form am Ort ihrer Verarbeitung bereitzustellen BDE ist daher Oberbegriff f r eine ganze Reihe von einzelnen Erfassungsverfahren wie Maschinendatenerfassung mobile Datenerfassung Proze datenerfassung Qualit tsdatenerfassung Zeitdaten erfassung Auftragsdatenerfassung Lohndatenerfassung u s w Zon BDE ist eine Untermenge des Computer Integrated Manufacturing CIM welches sich mit der Verwendung von Datenverarbeitung im Allgemeinen in der Produktion befa t Ein weiterer Bestandteil des
14. einer Hilfe 6 4 Variablen Wie in 5 3 1 angesprochen ben tigt das Interface eine gemeinsame Datenbasis auf die konkurrierend zugegriffen werden kann Sie wurde durch eine eigene Singleton Klasse implementiert Ein Singleton Entwurfsmuster ist bei F als eine Klasse de finiert die genau ein Exemplar besitzt und einen globalen Zugriffspunkt darauf bereit stellt Es werden folgende Methoden ben tigt ndern einer Variablen Auslesen ei ner Variablen L schen einer Variablen und L schen aller Variablen Da davon ausgegangen werden mu da mehrere Threads gleichzeitig auf die Datenbasis zugreifen ist es notwendig mittels eines kritischen Abschnitts vgl 7 3 sicherzustellen da die Zugriffe auf die Datenbasis nacheinander erfolgen Die Daten selbst werden in den Variablen als Zeichenketten gespeichert Bei Aktio nen die statt dessen Zahlen ben tigen werden diese innerhalb der Aktion konver tiert Ist eine Variable nicht definiert wird eine leere Zeichenkette zur ckgeben leere Zeichenketten und solche die nicht als Zahl erkannt werden werden als Zahl 0 an genommen 31 6 5 Konfiguration XML bietet folgende Vorteile gegen ber anderen Konfigurationsm glichkeiten Im Gegensatz zu einem propriet ren Format l t es sich mit Standardsoftware bearbei ten Den einfachen Textdateien hat es die M glichkeit zur Strukturierung der Daten voraus Weitere Informationen zu den M glichkeiten und der Spezifierung von XM
15. f r Buchungsart und Anzeigetext y Aktionen gotcard Ausweisnummer bestimmen und Buchung absetzten Beim Empfang der Beim Empfang der Buchungsantwort Buchungsantwort Aktionen gettext ShowAnswer GEESS Aktion offline Buchungsantwort parsen y y Ansicht AnswerView Buchungstext und Wert des Standardkontos anzeigen Ansicht OfflineView Anzeigen da keine Buchungsantwort vorhanden ist nach 25s ABBILDUNG 19 BEISPIEL F R EINEN M GLICHEN ABLAUF 81 Die Konfiguration sieht dann folgenderma en aus lt xml version 1 0 encoding I1S0 8859 1 gt lt DOCTYPE prog SYSTEM ifsoftterm dtd gt lt prog gt lt view id Info onidletime 2000 onidleaction Start Kommen Kommen1 gt lt image x 10 y 10 width 620 height 350 picture home ddreher lxembterm ifHintergrund jpeg visible 1 gt lt label x 10 y 360 width 620 height 60 font Sans bold 64 align center text IfSoftterm v 1 0 2 color 0000FF visible 1 gt lt label x 10 y 420 width 620 height 50 font Sans bold 16 align center text a9h 2002 Interflex Datensysteme GmbH amp Co KG visible 1 gt lt view gt lt view id StartView gt lt label x 10 width 620 y 10 height 30 font Sans 14 text Bitte w hlen Sie zun chst ber einen der Kn f6hpfe vis
16. nur Strings speichern wurden diverse Funktion zur Manipulation und Interpretation von Strings ben tigt Zu diesem Zweck wurden die bereits erw hnten Aktionen switch concat scan und calc defi niert Auf das Parsen der mathematischen Ausdr cke bei der calc Aktion wird in 6 8 2 n her eingegangen 6 7 2 1 Zusammensetzen von Strings concat Bei der Aktion concat wird anhand eines Formatierungsstring aus mehreren Varia blen ein neuer String gebildet In Dollarzeichen eingeschlossener Text wird als Varia blenname interpretiert der Name einschlie lich der umschlie enden Dollarzeichen wird dann durch den Inhalt der Variablen ersetzt Folgen die beiden Dollarzeichen direkt aufeinander werden sie durch ein einfaches Dollarzeichen ersetzt Dabei wird entsprechend dem folgenden Automat vorgegangen sonst Zeichen zu Variablennamen hinzuf gen N N Zaff sonst Zeichen beibehalten Anhand des Variablen namens Wert bestimmen und einsetzen falls Variablenname leer ist Dollarzeichen einf gen ABBILDUNG 5 AUTOMAT F R DAS ZUSAMMENSETZEN VON STRINGS Es wird also Zeichen f r Zeichen durchgegangen Au er dem Dollarzeichen werden alle Zeichen in die Zielvariable bernommen Sobald ein Dollarzeichen gefunden wird beginnt das Zusammensetzen des Variablennamens nach dem schlie enden Dollarzeichen kommt die Auswertung der Variablen 43 6 7 2 2 Auswerten von Strings scan Neben dem Zusammensetzen von
17. r Kommazahlen Doft 46 Ablauf f r Buchstabenfolgen Dm 46 Ablauf f r Zeichenketten Defi 47 Formatieren von Zahlen AA 48 Aufbau der Verteilerapplikation IfMulterapi 52 Anschlu eines Terminals an das System GOU20 52 Tunneln von TCP Verbindungen ber GH 53 Stream Pipe e KEE nennen 58 Kommunikation ber zwei pes 59 Aufruf von Aktionen bzw Ansichten nennen 63 Embedded BCEE 66 Beispiel f r einen m glichen Ablaut AAA 81 SCIEEN SNOL INIO tere EE 84 Screen Shot StartView ans einen 85 Screen Shot Answeriew nnn 85 Screen Shot OfflineView 000000004000008Rnn nen nnnnnnnnnnnennnnnn 85 Tabellenverzeichnis Zuordnung Steuerelemente zu Gtk Widgets oeeeeeeeeeeeeeeseeeen 30 Bereichsangaben f r Formatierungsstrings ee gt 44 M gliche Formatierungskonstanten f r Formatierungsstrings 44 Eecape Zeouenzen nt tt rrn eennnn rnnr ene 49 Implementierung von E EI 61 Implementierung von Post 61 Implementierung des Starts eines Threads gt 62 Umwandlung Unicode nach UTE B nennen nenn 86 69 12 Quellen Im Rahmen dieser Arbeit wurden folgende Quellen verwendet 12 1 AdaB1 AdaB2 BauW1 BooG1 B hH1 DISO1 GamE1 GoIA1 GoIA2 HerH1 JunJ1 KopH1 70 B cher und Loseblattsammlungen Bernhard Adamski Die Organisation der computergesteuerten Zeitwirtschaft Datakontext Verlag K ln 1995
18. 57 Dies l t sich dadurch vermeiden da nicht eine einfache Textdatei verwendet wird sondern die einfache DISAM Datenbankl die bei Interflex neben Datenbanksys temen wie Oracle oder Microsoft SQL Server eine Option f r die Speicherung der Daten im System 6020 darstellt Alte S tze k nnen so gel scht werden w hrend pa rallel ein Weiterbetrieb m glich ist 7 2 Aufruf von Unterprogrammen 7 2 1 Implementierung Elternproze Koproze Kindproze P stdin spipe 1 spipe 0 lt gt Stream Pipe stdout spipe 1 ABBILDUNG 15 STREAM Pe D al 5 810 Ziel beim Aufruf von Unterprogrammen ist es diesen Daten an die Standardeingabe zu bergeben und deren Ausgabe einzulesen Nach Me Kap 19 2 jaRt sich dies mit einer sog Stream Pipe zwischen Eltern und Kindproze realisieren Dabei handelt es sich um ein Paar von Unix Domain Stream Sockets Dieses kann dann auf beiden Seiten wie eine Datei auf die sowohl geschrieben als auch gelesen werden kann verwendet werden Der Ablauf ist folgenderma en Der Elternproze baut ein solches Socketpaar auf Dann wird der Kindproze erzeugt der die Deskriptoren erbt Dann schlie t jeder der beiden Prozesse den jeweils anderen der beiden Deskriptoren Der Kindproze leitet die Standardein und ausgabe auf den noch offenen Deskriptor um Dann l dt er das Programm und f hrt es aus 7 2 2 Probleme Unter bestimmten Umst nden funktioniert dieser Mechanismus nicht Wenn das
19. Anpassung von Wochentagen und Monatsnamen an die gew nschte Sprache All diese Texte k nnen mit einem Schl ssel in der Konfiguration abgelegt werden und ber diesen angesprochen werden 33 6 5 1 4 Knoten lt log gt Wichtig bei allen derartigen Systemen ist es im nachhinein nachvollziehen zu k n nen welche Aktionen auf einem solchen ausgef hrt wurden Speziell bei Fehlern las sen sich daraus R ckschl sse f r die Behebung derselben ziehen und die fehlerhaft gewordenen Daten notfalls auch von Hand korrigieren Alle Einstellungen in diesem Zusammenhang z B Pfad der Logdatei oder Loglevel lassen sich hier vornehmen 6 5 1 5 Knoten lt startview gt Im Interface Action Config Modell vgl Abbildung 3 in 5 3 1 wird beim Programm start erst einmal eine Grundansicht aktiviert im Schaubild mit 1 markiert Diese wird in diesem Knoten festgelegt Jetzt folgen diejenigen Knoten die speziell f r das IfSoftterm zum Einsatz kommen 6 5 1 6 Knoten lt device gt An dieser Stelle werden seriell anschlie bare Eingabeger te parametriert Dazu ge h ren z B Ausweisleser oder Barcodeleser 6 5 1 7 Knoten lt ifterapi gt Dieser Knoten besch ftigt sich mit der Parametrierung der Fremdterminal und Buchungsschnittstelle des System 6020 namens ifterapi 6 5 2 Konfiguration der Oberfl che Knoten lt view gt Dieser Knoten enth lt die notwendigen Einstellungen f r eine Ansicht im Sinne des Interface Acti
20. CIMs der auf Daten der BDE angewiesen ist sind die Produktionsplanungs und steuerungssysteme PPS 4 2 Zeitwirtschaft Die verschiedenen Grundbegriffe der Zeitwirtschaft sind folgenderma en definiert zu beachten ist da der Begriff Zeiterfassung oft synonym zu Zeitwirtschaft verwendet wird Zeiterfassung Erfassung nach Zeitarten An und Abwesenheiten und Zeitr umen von Datum Uhrzeit bis Datum Uhrzeit Zeitbewertung AP Soll Ist Vergleich geplante und verfahrene Schicht und Zuordnung der Zeit arten zu Lohnarten Zeitauswertung X Informationen ber An und Abwesenheiten aktuelle Kontenst nde kumulier te Zeitarten summarische Informationen ber Abteilungen Kostenstellen etc Statistiken Personaleinsatzplanung Anpassung des generellen Schichtplans Dienstplans an die aktuellen Gege benheiten Informationen ber wann und wo ben tigten Personalbedarf Konto Der Begriff des Kontos wird in der Zeitwirtschaft hnlich wie in der Betriebs wirtschaft verwendet Allerdings stellen die Konten nicht die Aktiva und Passiva des Betriebs dar sondern verschiedene Aspekte der Arbeitskraft der Mitarbeiter bliche Konten sind die abgeleistete Arbeitszeit oder der restliche Jahresurlaubsanspruch Eine der Interflex Datenbanken F definiert Konto folgenderma en Speicher f r Stunden Tage Eins tze einer Einsatzart oder einer Einsatzarten Kategorie Buchung Eine Buchung ist eine i d R vom Mi
21. Control ver wendet Xerces XML 80 Xerces ist eine Bibliothek die zum Parsen von XML Dateien verwendet wird Sie ist nach der ersten Schmetterlingsart benannt die in Amerika durch Wirken des Menschen ausgestorben ist XMLWW steht f r Extensible Markup Language XML ist eine Weiter entwicklung des SGML Standards Standard Generalized Markup Language Standard f r die Definition von Dokumentenbeschreibungssprachen Sie besteht i w aus in spitzen Klammern eingeschlossenen Tags mit zugeh rigen Attributen sowie Texten die zusammen eine Baumstruktur abbilden 13 2 XML Beispielkonfiguration Zur Illustration der Verwendung des IfSoftterm wird der folgende Ablauf in eine Konfiguration umgesetzt Ansicht Info Interflex Logo Programmname nach 2 Sekunden y Aktion Start Ausweisleser installieren u Ansicht StartView Bildschirm mit Aufforderung zur Wahl des Buchungstyps Uhr Kommen Button Gehen Button Info Button Anzeige des aktuellen Buchungstyps Begr ungsbildschirm mit Lat Click auf kommen Button Ausweis erfa t Click auf Gehen Button C ick auf Gehen Button Se Aktionen Kommen Kommen F lle Variablen f r Buchungsart und Anzeigetext Aktionen Gehen Gehen F lle Variablen f r Buchungsart und Anzeigetext Aktionen Info Info1 F lle Variablen
22. Diplomarbeit zur Erlangung des akademischen Grades eines Diplom Informatikers FH an der Fachhochschule Furtwangen Hochschule f r Technik und Wirtschaft Fachbereich Informatik Studiengang Allgemeine Informatik Thema Embedded PCs und Linux als Benutzerschnittstelle zu einem Server am Beispiel eines Zeiterfassungssystems eingereicht im Sommersemester 2002 von Daniel Dreher Aschenreutestra e 8 78591 Durchhausen erstellt bei der Firma Interflex Datensysteme GmbH amp Co KG Gro wiesenstra e 24 78591 Durchhausen Referent Prof Dr Wolfgang Bauer Koreferent Dipl Ing FH Manfred Klostermeier Eidesstattliche Erkl rung Ich erkl re hiermit an Eides Statt da ich die vorliegende Diplomarbeit selbst ndig und ohne unzul ssige fremde Hilfe angefertigt habe Die verwendeten Quellen und Hilfsmittel sind vollst ndig zitiert Durchhausen den 30 Juli 2002 Daniel Dreher Aschenreutestra e 8 78591 Durchhausen PB od Mech 4 1 4 2 5 1 5 2 5 2 1 5 2 2 5 2 3 5 2 4 5 3 5 3 1 5 3 2 5 3 3 5 3 4 5 3 5 5 4 5 4 1 5 4 2 5 4 3 6 1 6 1 1 6 2 6 2 1 6 2 2 6 3 6 3 1 6 3 2 6 4 6 5 6 5 1 6 5 2 6 5 3 6 5 4 Inhaltsverzeichnis Inbhaltsverzeichnis KENNEN REENEN anne nnn an nnnnn nn Einleitung EEN Nilton ae eeh Ee Grundlagen der Zeiterfassung ee KEEN NRRRREEE 0 Betriebsdatenerfassung BDB ek een Tu E E Konfigurierbare Clients im Allgemeinen PANalyS
23. E 3 M GLICHE FORMATIERUNGSKONSTANTEN F R FORMATIERUNGSSTRINGS Zwei direkt aufeinanderfolgende Prozentzeichen werden als Konstante interpre tiert Intern wird beim Parsen des zu interpretierenden Strings eine Liste von Elementen verwendet die vom Formatierungsstringparser erzeugt wird Jedes Element enth lt entweder einen konstanten String der beim Interpretieren des Strings verglichen wird oder ein Formatierungselement mit Typ Bereichsangabe und Zielvariable 44 Der Automat f r die Analyse des Formatierungsstrings sieht folgenderma en aus nicht angegebene Pfade gehen in den Fehlerzustand ber 0 9 sonst sonst Konstante aufbauen Bereichsangabe Variablenname ag N aufbauen aufbauen l SC SN i Kk 2 We l 0 9 ifsz Onstante als e e Bereichsangabe a N ifsz A No 7 S A N Element speichern aufbauen TP merken merken Nr P Pi me e Kar u x gt konstantes Zeichen hinzuf gen FE eg C J Typund Bereich ohne Variable in Element speichern er Variable mit Typ u und Bereichn Element speichern ABBILDUNG 6 AUTOMAT F R DAS PARSEN DES FORMATIERUNGSSTRINGS Beim Parsen des zu interpretierenden Strings werden Automaten f r die verschiede nen Arten von einzulesenden Strings ben tigt Die Anzahl der bereits abgearbeiteten Zeichen wird jeweils im Automat mitgef hrt Gibt es keine Zeichen mehr bevor die Mindestzahl an Zeichen erreicht wird oder wird die H chstza
24. Frage Position auf dem Bildschirm Gr e Farbgebung Schrift art und gr e Formatpr fungen und Wertebereiche Dazu kommt noch die Defini tion der Aktionen die bei Benutzerinteraktion ausgel st werden 5 4 3 Offline F higkeiten Man kann sich nie wirklich darauf verlassen da Netzwerkverbindungen immer be stehen oder da das Serversystem zu jedem Zeitpunkt l uft Daher mu ein Verhalten f r den Fall ber cksichtigt werden in dem kein Server zur Verf gung steht Was das richtige Verhalten in diesem Fall ist h ngt stark vom kon kreten System ab und wird daher in der Schnittstelle zum Serversystem behandelt werden Ein Zeiterfassungssystem w rde beispielsweise in diesem Fall die vorgenommenen Buchungen puffern und sp ter abliefern w hrend eine Maschinensteuerung in die sem Fall nur anzeigen zu br uchte da zu diesem Zeitpunkt keine Bedienung m glich sei 27 6 bertragung auf das Beispiel Zeiterfas sungssystem Die bei der allgemeinen Betrachtung gewonnenen Erkenntnisse wurden bei der Ap plikation IfSoftterm eingebracht und angewandt 6 1 Analyse 6 1 1 Anforderungen Es sollte eine Applikation geschrieben werden mit deren Hilfe die Funktionalit t be stehender Terminals abgedeckt werden kann Dabei handelt es sich i w um das Ab setzen von Buchungen wie Kommen Gehen oder Arztbesuch Als Zielplattform war ein Embedded PC mit Linux vorgesehen da bekanntlich keine Lizenzkosten entstehen sollten
25. L sind z B bei Ref Verf gbar Eine Beispielkonfiguration f r das IfSoftterm ist im Anhang enthalten Jedes XML Dokument besitzt einen Wurzelknoten lt prog gt dem die drei Knoten typen lt general gt lt view gt und lt action gt untergeordnet sind Diese entsprechen den drei Modulen die dem Interface Action Config Modell sein Namen gaben 6 5 1 Allgemeine Konfiguration Knoten lt general gt In diesem Knoten werden die allgemeinen Konfigurationseinstellungen vorgenom men Dieser Knoten darf nur einmal vorkommen Zun chst werden diejenigen Knoten beschrieben die sich allgemein bei derar tigen Systemen verwenden lassen 6 5 1 1 Knoten lt keyboard gt Diese Knoten stellen jeweils einen Dialog dar der aufgerufen wird um mit einer Bild schirmtastatur Eingaben vorzunehmen Er enth lt einen eindeutigen Bezeichner zur Identifikation und globale Dialogeinstellungen z B die Hintergrundfarbe Er erlaubt es Tastaturen f r die Eingabe frei zu konfigurieren Sie enth lt jeweils frei positionierbar ein Eingabefeld ein Label zur Beschriftung des Eingabefelds ein Label zur Anzeige ob die Eingabe im richtigen Format ist so wie beliebig viele Tasten Die Steuerelemente lt inputfield gt und lt table gt vgl 6 5 2 5 bzw 6 5 2 6 verwenden diese Eingabehilfe und besitzen ein Attribut mit dessen Hilfe sie das gew nschte Ta staturlayout und das Format der Eingabe festlegen k nnen 32 6 5 1 1 1 Knot
26. MENTE ZU GTK WIDGETS Es wurden also die Gtk Standard Widgets in Klassen gekapselt und um die Informa tionen und das Verhalten so erweitert da sie im Interface Action Config Modell ver wendet werden k nnen 6 3 Aktionen 6 3 1 Synchronisation Die Aktionen werden grunds tzlich sequentiell nacheinander ausgef hrt um Seiten einfl sse zu vermeiden Zu diesem Zweck ist die Ausf hrung der Aktionen in die Hauptereignisschleife eingebettet Die Verarbeitung der eigentlichen Oberfl che ist aber h her priorisiert damit der Benutzer nicht den Eindruck bekommt da das Sys tem nicht mehr reagiert Aktionen k nnen ebenso wie Ansichten von jeder Stelle im Programmablauf ausgel st werden Sie werden dann allerdings in einer Warte schlange aufbewahrt damit immer nur eine Aktion gleichzeitig ausgef hrt werden kann 30 6 3 2 Vorhandene Aktionstypen Die folgenden Arten von Aktionen sind im IfSoftterm implementiert Verzweigung in Abh ngkeit einer Variablen Aufruf externer Programm mit bergabe von Daten an das Programm ber die Standardein und ausgabe Absetzen von Buchungen ber eine Fremdterminalschnittstelle des System 6020 Aufruf von beliebigen Funktionen aus dynamischen Bibliotheken Festlegen der Reaktion auf serielle Eingaben z B von Ausweislesern Zusammenfassen von mehreren Variablen Parsen und Aufspalten einer Zeichenkette Einfache Arithmetik Anzeige einer Mitteilung MessageBox Aufruf
27. S tze unterschiedlich gro sein k nnen Genau dieses Problem l sen aber die index sequentiellen Dateien ISAMIP S l die auch eine der m glichen Datenbanken des System 6020 sind ISAM steht f r Indexed Sequential Access Method also um eine Methode Daten satzweise abzulegen und ber Schl ssel darauf zuzugreifen Man kann in Dateien satzweise nach einem Schl ssel sortiert navigieren es gibt einen Lese und einen Schreibzeiger Der Overhead ge gen ber reinen Dateien ist gering Es k nnen Schl ssel definiert werden mit deren Hilfe beispielsweise schnell der erste Satz ab einem bestimmten Datum gefunden werden kann Aus diesen Gr nden wird im Verteiler nun eine ISAM Datei verwendet Einziger Nachteil ist da die Bibliothek nicht thread sicher ist Daher mu die Syn chronisation zwischen Lesen und Schreiben im Verteiler gew hrleistet werden 51 Das folgende Schaubild zeigt den Aufbau der Verteilerapplikation IfMulterapi WorkerLoop zum Terminal terminalWorkerLoop un bedient TCP Verbindung zu einem Terminal eine Instanz 1 Thread pro angeschlossenes Terminal erzeugt AcceptLoop zu den Terminals terminalAcceptLoop immer genau eine Instanz wartet au Verbindungsaufb 1 Thread au der Terminals J _ SE Datei connterm cpp Datei writebuffer cpp Schreibpuffer Datei readbuffer cpp WriteBuffer N E K 6 K2 E s gt gt Puffer Datei Es
28. Strings gibt es auch die M glichkeit einen String anhand eines Formatierungsstrings zu parsen und auf verschiedene Variablen zu verteilen Der Formatierungsstring hat das folgende Format Alles au er der Formatangabe wird als konstanter Text interpretiert Eine Formatangabe beginnt und endet jeweils mit einem Prozentzeichen dazwi schen kommt als erstes optional ein Bereich dann eine Formatierungskonstante und schlie lich optional ein in Dollarzeichen eingeschlossener Variablenname Zwei direktaufeinanderfolgende Prozentzeichen werden als konstantes Prozentzeichen interpretiert Die Bereichsangabe kann eines der folgenden Formate haben in der Tabelle steht i f r eine positive ganze Zahl f r das Minuszeichen Format Interpretation i i es m ssen mindestens so viele Zeichen wie bei der linken Zahl sein und d rfen h chstens so viele wie bei rechten sein i es m ssen genau i Zeichen sein i es m ssen mindestens i Zeichen sein i es d rfen h chstens i Zeichen sien TABELLE 2 BEREICHSANGABEN F R FORMATIERUNGSSTRINGS Falls kein Bereich angegeben ist sind beliebig viele Zeichen m glich Die Formatierungskonstanten bestehen aus genau einem Zeichen Die folgende Ta belle legt die m glichen Werte dar Formatierungskonstante Interpretation i ganze Zahl im Format ee Kommazahl im Format Ee E S beliebiger String z String nur aus lateinischen Buchstaben A Za z TABELL
29. XXp 0000 0800 0000 FFFF 1110xxxxp 1l0xxxxxxp 10XXXXXXp 0001 0000 001F FFFF 11110xxxp l0xxxxxxXp 10XXXXXXp 10XXXXXXp 0020 0000 1 0O3FF FFFFy I111110xxp l0xxxxxxXxp 10XXXXXXp 10XXXXXXp 10XXXXXXp 0400 0000h JEFF FFFF I1111110xy 10xxxxxxy DOXXXXXZo 10XxxxxXxy 10Oxxxxxxp 10XXXXXXp TABELLE 8 UMWANDLUNG UNICODE NACH UTF 8 Das erste Byte bestimmt also wie viele Bytes folgen die alle mit bin r 10 beginnen Die Bits des Unicode Zeichens werden hier in die mit x markierten Bits der UTF 8 Sequenz verteilt wobei immer vom am wenigsten signifikanten zum meist signifikantesten Bit vorgegangen wird Bei der Umwandlung von UTF 8 wird umgekehrt vorgegangen Zun chst wird das erste Byte ausgewertet und die Anzahl der Folgebytes berechnet Dann werden die mit x markierten Bits der Reihe nach auf das Unicode Zeichen aufgerechnet Als Beispiel wird hier das Euro Zeichen von Unicode nach UTF 8 umgewandelt Das Euro Zeichen wird mit 20acn im Unicode codiert P Dies entspricht 00000000 0000000 00100000 10101100 Es liegt im Intervall 0000 0800 0000 FFFF wird also durch drei Zeichen mit folgendem Muster codiert 1110xxxxp 10xxxxxxXp 10XXXXXXp Das Einf llen der Bits von rechts nach links ergibt dann 11100010 10000011 10101100 oder E2 n 83 ACn 86
30. a die vom Serversystem ange nommenen Abl ufe leicht auf dem Client dargestellt werden k nnen wobei die Be d rfnisse des Eingebenden hinsichtlich der Dialoggestaltung ber cksichtigt werden k nnen An dieser Stelle m chte ich mich bei meinen Referenten Prof Dr Wolfgang Bauer und Manfred Klostermeier bedanken Au erdem danke ich der Firma Interflex die mir die Durchf hrung dieser Arbeit erm glichte speziell den Mitarbeitern die mich unterst tzten und stets ein offenes Ohr f r mich hatten Schlie lich danke ich noch allen die gelegentlich einen Blick in meine Arbeit warfen und mich so vor vielen kleinen Fehlern bewahrten Ich danke Konrad Zuse f r die Erfindung des Computers und George Boole daf r da er die mathematischen Grundlagen f r die Informatik gelegt hat 3 Motivation Heutzutage gibt es viele Stellen an denen der Mensch mit einem informationstech nischen System kommunizieren soll Dies gilt auch f r die Applikationen der Firma Interflex die Zeit und Betriebsdaten erfassen und Zutritt regeln Bislang war es zu diesem Zweck blich an den Stellen an denen die Daten anfielen z B am Eingang der Produktionsst tte kleine Terminals aufzuh ngen mit dessen Hilfe der Benutzer mit dem System kommuniziert Die Benutzerschnittstelle war relativ bescheiden Nur wenig Anzeige und ein paar Tasten Solange es nur darum geht dem System mitzuteilen da man gerne eintreten und mit der Arbeit beginnen m chte oder vorh
31. a S Ka Z RI v i Schreibpuffer ReadBuffer rg N WorkerLoop zur 6020 s6020WorkerLoop bedient TCP Verbindung zur 6020 keine Instanz wenn keine NIT Verbindung zur 6020 1 Instanz 1 Thread bei Verbindung zur 6020 J 5 8 5 3 8 vi AcceptLoop zur 6020 SSES s6020AcceptLoop Verbindungsaufbau der 6020 immer genau eine Instanz 1 SE ZE Thread Bi Datei conn6020 cpp ABBILDUNG 12 AUFBAU DER VERTEILERAPPLIKATION IFMULTERAPI Ein weiteres Schaubild beschreibt den gesamten Aufbau des Anschlusses eines Ter minals an das System 6020 Softwareterminal Bibliothek libifmulterapi bietet Schnittstelle zum Buchen puffert Buchungen im Offline bzgl Verteiler Ko s RS Ze gc a S Z Softwareterminal EY ei A Bibliothek ilibifmulterapi A bietet Schnittstelle zum Buchen puffert Buchungen im Offline bzgl Verteiler s Pi empf ngt die Buchungsantworten vom System 6020 und verteilt sie an Verteilerapplikation IfMulterapi sammelt die Buchungen und gibt sie an das System 6020 weiter die angeschlossenen Terminals puffert Buchungen im Offline bzgl Verteiler baut ber TCP Verbindung zum Verteiler auf IM A HDDD DUDU N System 6020 bleibt wie bisher bei der ifterapi ABBILDUNG 13 ANSCHLUR EINES TERMINALS AN DAS SYSTEM 6020 52 6 8 1 3 Datensicherheit bei der bertragung Sofer
32. a eeben E NA E Teen M gliche Modellterungen ken Eeer Oberflache ee Bestehende fertige Modelle AAA En tscheidungsfind nNg D Das Interface Action Config Modell nsssennnnnnn Vorstellung TEE Ablauf am Beispiel Zetertassung nennen nenn Protok llierung er ae ee Debugging eeina ee Problematik der Synchronisation s snensnnneseseeeeeeeerrerrrrrrrrrrrrrrenene Allgemeine L sungsans tze uunsnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn nn Bildschirmi statur zes oscene ea ee ee et dselle Oberfl chenkonfigurierung 2 2 44444444444440HHHHHH HH HH Offline F higkeiten AAA bertragung auf das Beispiel Zeiterfassungssystem ANalySe een Anforder nge Mia EE Benutzerschnittstelle 2 22 20000000000000000n 0000 ERKENNEN KREE Eeer de EE Verschiedene Gieuerelemente nennen nennen nennen AKUONeN EE Synchronisation nr se Vorhandene Aktionstypen nennen VEH EE Konfiguration a aan Allgemeine Konfiguration Knoten general Konfiguration der Oberfl che Knoten view Konfiguration der Aktionen Knoten acHonz Implementierung mit Hilfe von SM 6 6 6 6 1 6 6 2 6 6 3 6 6 4 6 6 5 6 7 6 7 1 6 7 2 6 8 6 8 1 6 8 2 6 8 3 6 8 4 6 8 5 6 9 6 10 7 1 7 2 7 2 1 7 2 2 7 2 3 7 3 7 4 7 4 1 7 5 7 5 1 7 5 2 8 1 8 2 10 11 Kapselung der externen Schnittstellen usz220000 40 Schnittstelle zum Aufruf e
33. ache herauszufinden Es ist nicht damit getan alle m glichen Abl ufe einfach sequentiell in das Logfile zu schreiben Eine Klassifizierung erleichtert die sp tere Auswertung der Datei Folgende Klassen von Nachrichten bieten sich an Fataler Fehler Es ist schwerer Fehler aufgetreten der einen weiteren Pro grammablauf unm glich macht Fehler Es ist ein Fehler aufgetreten bei dem eine gew nschte Funktion nicht ordnungsgem ausgef hrt wurde ein Wie terf hren des Programmablaufs ist m glich Warnung Argumente wurden falsch gesetzt die ignoriert werden Das Programm kann auf diese Art und Weise ausgef hrt werden es erscheint aber nicht sinnvoll Besondere Betriebsmodi werden dokumentiert um sie besser im Logfile zu erkennen Information Alle wichtigen Abl ufe sind erkennbar Detaillierte Information Alle Teilschritte sind erkennbar Trace Alle einzelnen Programmteile und deren Zustand sind nachvollziehbar 24 5 3 4 Debugging Im Interface Action Config Modell werden Aktionen durchgef hrt und Ansichten akti viert Beim Durchf hren einer Aktion oder Wechseln einer Ansicht k nnen sich die In halte der Variablen ndern Der Test der neu erstellten Konfigurationen k nnte durch eine Art Einzelschrittmodus erleichtert werden Bei diesem wird vor und nach jeder Aktion bzw jedem Ansichts wechsel ein Fenster angezeigt mit dessen Hilfe man die Inhalte der einzelnen Varia blen lesen und editieren kann Au
34. ad_create TABELLE 7 IMPLEMENTIERUNG DES STARTS EINES THREADS 62 7 5 Hintereinanderabarbeiten von Aktionen bzw An sichten 7 5 1 berblick Die Verarbeitung von Aktionen und Ansichten findet grunds tzlich sequenitiell statt d h es wird immer nur eine Aktion auf einmal ausgef hrt Dem folgenden Schaubild kann entnommen werden wie ein Aufruf weitergereicht wird Status Be Idie Funktion Thread ee Aufruf einer ead GE d 7 holt die jeweils Aktion bzw Ansicht f aus irgendeiner sequentialisiert die n chste Aktion Stelle des Programms Aktionen und PAV ansjehllaus Ansichten der Warteschlange und f hrt diese SN BR aus Warteschlange ABBILDUNG 17 AUFRUF VON AKTIONEN BZW ANSICHTEN Der Status Thread dient dazu die Aktions bzw Ansichtsaufrufe die von verschiede nen Stellen des Programms kommen k nnen in eine Reihenfolge zu bringen In die ser gelangen die einzelnen Aktionen bzw Ansichten in die Warteschlange Urspr nglich war vorgesehen in einem eigenen Thread blockierend aus der Warte schlange zu lesen und die eigentliche Ausf hrung durchzuf hren Dies h tte zwei Nachteile Die Ausf hrung der Aktionen k nnte viel Rechenzeit ben tigen und die Reaktionen auf Benutzereingaben ausbremsen Au erdem ist es von Seiten der Gtk Bibliothek g nstiger wenn m glichst viele Zugriffe vom Hauptthread durchgef hrt werden Die Synchronisierung ist weniger aufwendig und deshalb performante
35. are und Lehrg nge unentschuldigtes Fehlen Saldoabbau Gleitzeit Gleitzeit ganzer oder halber Tag Freizeitausgleich aus berstunden Freizeitausgleich aus betrieblicher Mehrarbeit Br k kentage sonstige Arbeitszeitverk r zungstage Im Bereich der Zeitwirtschaft bezeichnet Saldo die Differenz zwischen der zu leistenden und der geleisteten Arbeit Es ist blich ihn in einem eigenen Konto zu verwalten 13 5 Konfigurierbare Clients im Allgemeinen 5 1 Analyse Folgende Anforderungen lassen sich f r Applikationen die als konfigurierbare Clients verwendet werden erkennen Ben tigt werden Funktionen zur Darstellung einer Oberfl che einschlie lich der Reaktion auf vorgenommene Eingaben durch den Benutzer zur Durchf hrung von Berechnungen und Manipulationen auf den zugrundelie genden Daten zur Kommunikation mit externen parametrierbaren Schnittstellen zur internen Verwaltung der Applikation selbst Speziell bei der Oberfl che ist zu ber cksichtigen da die Eingabeelemente den Er fordernissen eines Touchscreen Bildschirms angemessen sein m ssen Beispiels wiese f r die Eingabe von Text wird hier eine Bildschirmtastatur ben tigt Bei der Kommunikation mit externen Schnittstellen ist zu ber cksichtigen inwieweit ein Ausfall des Systems zu dem man verbunden ist ber cksichtigt und abgefangen werden sollte Ziel war es einen ersten gut dokumentierten Prototyp zu erstellen der dann zu ei ne
36. at den Betrieb f r einen Dienstgang zu verlassen wird dies auch in Zukunft noch ausreichen M chte man dar ber hinaus noch seine Urlaubsplanung anzeigen lassen oder Produktionsdaten wie eine Projektnummer erfassen sind die Grenzen des bestehenden Systems berschritten F r Firmen bei denen praktisch alle Mitarbeiter ber einen PC am Arbeitsplatz verf gen bietet die Firma Interflex be reits heute Systeme an mit deren Hilfe man von seinem PC aus beispielsweise mit Hilfe eines Browsers diese Aufgaben wahrnehmen kann In der Produktion kommt es jedoch oft vor da nicht jeder Mitarbeiter einen eigenen PC hat Es wird also ein System ben tigt mit dessen Hilfe man seine Aufgaben an einem zentralen Platz z B am Eingang zur Produktionsst tte erledigen kann Ein normaler PC ist hier aus Kostengr nden nicht sinnvoll Au erdem w re er auch zu anderen Zwecken ver wendbar und st nde daher oft nicht f r die buchungswilligen Mitarbeiter zur Ver f gung Ziel ist daher ein Rechner der sich auf die Funktionalit t Bedienung des Zeiterfassungssystems beschr nkt Es gibt verschiedene Platinen mit relativ geringen Abmessungen und Touchscreen Displays die mit Pentium kompatiblen Prozessoren arbeiten Diese lie en sich dann beispielsweise einfach an der Wand am Eingang installieren Sollen derartige Terminals zu einem annehmbaren Preis verkauft werden d rfen keine Lizenzkosten f r das Betriebssystem entstehen da diese bei jedem einzeln
37. ateien realisiert wer den da dies mit normalen PCs nicht sichergestellt werden kann Sie mu ebenfalls die Verbindungen zu den einzelnen Terminals verwalten f r die sie TCP Server ist Dazu wurde ein einfaches Protokoll realisiert welches das Sen den der Buchungen und das Lesen der Buchungsantworten erm glicht Da auch die 50 Buchungss tze im Interflex eigenen Containerformat nur druckbare Zeichen enthal ten wurde es so gestaltet da es zeilenweise im Textmodus eingegeben werden kann und auch die Antwortdaten in einem solchen Format kommen Dies hat den Vorteil da zu Testzwecken auch Standard Telnet Programme verwendet werden k nnen Beim Problem um die Pufferung der Daten handelt es sich um einen Spezialfall des Erzeuger Verbraucher Problems M ten diese nicht aus Sicherheitsgr nden auf Platte gespeichert werden k nnte man einfach eine Message Queue verwenden wobei die Verbindungsthreads zu den Terminals die Daten hineinschreiben und der Verbindungsthread zum System 6020 sie wieder herausholt Wie dieses Problem im allgemeinen gel st werden kann wird in 7 1 n her beschrieben Das Verwenden von normalem Dateizugriff ist nicht praktikabel Die Verwaltung von Lese und Schreibposition mu im Programm geregelt werden da die verwendeten Systeme allesamt nur einen Schreib Lese Zeiger kennen Bei einer Aufforderung zum Abholen alter Buchungen mu der Zeiger von Hand byteweise durch die S tze zur ckgesetzt werden da die
38. chen der Schnittstellen sowie die Darstellung der Oberfl che und die Reaktion auf Eingaben realisiert werden k nnen Heutzutage sind jedoch graphische Benutzerschnittstellen wie Windows oder X11 praktisch alle ereignisorientiert Die Behandlung mehrerer asynchroner Eingabeger te durch ab wechselndes Abfragen aller Ger te ergibt un bersichtliichen Code Eine eigene Skriptsprache m te also entweder die Ereignisorientierung in einen un bersicht lichen sequentiellen Ablauf zw ngen oder das asynchrone Ereignismodell abbilden Im Prinzip m te der Interpreter f r diese Sprache vom Sprachumfang her beinahe so m chtig wie vorhandene Sprachen beispielsweise VBScript oder Perl sein Eine solche Entwicklung w rde den Rahmen dessen was erreicht werden soll bei weitem sprengen Interflex verwendet eine eigene Skriptsprache namens PLI f r die Aufbereitung von Buchungen Sie kann bei dieser Fragestellung nicht verwendet werden da sie weder Oberfl chendarstellung noch Kommunikation ber ein Netz werk unterst tzt 15 5 2 1 3 Konfigurationsdateien Ein weiterer Ansatz ist die Verwendung von Konfigurationsdateien die es erm gli chen aus einem Satz vorhandener Funktionen die dann auch die externen Schnittstellen ansprechen einen Ablauf zusammenzustellen Die Darstellung von Abl ufen durch eine Abfolge von Aktionsbl cken und ein paar Steueranweisungen wie Schleifen oder Verzweigungen wird nicht nur in der strukturierten Program
39. cht am Server In diesem Fall m te der Client selbst wieder Code ausf hren der die Kommunikation mit dem Ausweisleser gew hrleistet Ein Standard Browser ist technisch dazu in der Lage Allerdings l t er sich nicht so einschr nken da Zugriffe des Benutzers auf das normale System verhindert werden k nnen Die Entwicklung eines eigenen Browser der diese Probleme l st bersteigt die M glichkeiten eines solchen Projekts 5 2 2 Oberfl che 5 2 2 1 Skriptsprache Bei der Konfiguration der Oberfl che ber eine Skriptsprache wird man mit dem be reits in 5 2 1 2 beschriebenen Problem konfrontiert da eine Skriptsprache keine Er eignisorientierung zul t sondern immer nur eine Eingabe nach der anderen aus werten kann Auf asynchrone Eingabeger te lie e sich nicht reagieren W rde eine Skriptsprache mit Ereignissteuerung und Nebenl ufigkeit entwickelt w rde dies f r die Konfiguration eines System einen derart hohen Programmieraufwand bedeuten der nicht mehr weit von der generischen Entwicklung des Programms mit einer nor malen Sprache und deren harten Kodierung entfernt ist Dies rechtfertigt den Auf wand nicht in der Internetprogrammierung unter dem Begriff Client seitiges Scripting bekannt 17 5 2 2 2 Das Modell Visual Basic Eine ungew hnliche Idee war es die Entwicklungsumgebung von Visual Basic zu verwenden Die Oberfl che w rde ganz normal mit Hilfe der Entwicklungsumgebung zusammengestellt
40. datenerfassung dazu geh ren Bereiche wie Maschinen datenerfassung mobile Datenerfassung Prozef datenerfassung Qualit ts datenerfassung Zeitdatenerfassung Auftragsdatenerfassung und Lohndaten erfassung Control Dialog Steuerelement einzelner Baustein aus denen die graphische Oberfl che eines Programms zusammengesetzt wird Ein Dialog stellt den komplexen Teil der Benutzeroberfl che dar den der Benutzer zu einem bestimmten Zeitpunkt sieht und mit dem er interagiert DOM Parser 76 Bestandteil der Xerces XML Bibliotheken von Apache Parser f r XML Dateien Embedded PC Von den Ausma en her kleinerer PC der im Prinzip dieselbe Architektur verwendet wie IBM Intel kompatible Systeme aber weniger Platz ben tigt und auch viele Komponenten statt als Einsteckkarten bereits auf der Hauptplatine hat Oft besitzt er zus tzliche Anschl sse wie f r LCD Touchscreen Displays Errorlevel Wert den ein Programm an das Betriebssystem zur ckgibt wird oft f r die Anzeige von Fehlern verwendet Erzeuger Verbraucher Problem fork Gdk Gtk GUI Beim Erzeuger Verbraucher Problem gibt es zwei verschiedene Klassen von Prozessen bzw Threads den Erzeugern die Daten erzeugen und in einem Puffer ablegen und den Verbrauchern die Daten aus dem Puffer entnehmen und verarbeiten Dabei mu der Erzeuger blockiert werden wenn Puffer voll ist und der Verbraucher solange der Puffer leer ist Diese Blockade darf nur s
41. der folgende Absatz darlegt Der Ablauf der Fremdterminalschnittstelle kennt eine Funktion ABU Alte Buchungen abholen mit deren Hilfe das System 6020 die Terminals auffordern kann alle Bu chungen ab einem bestimmten Zeitpunkt erneut zu schicken Auf diese Art und Wie se wird gew hrleistet da auch bei einem Absturz mit kompletten Datenverlust auf dem 6020 Server durch R ckspielen der Datensicherung und anschlie endem er neuten Abholen der Buchungen von den Terminals ein korrekter Datenbestand vor handen ist Dieser Mechanismus wird in der ifterapi von der Applikation welche die Bibliothek einbindet realisiert In diesem Zusammenhang sollte diese Aufgabe vom Verteiler vorgenommen werden Schlie lich mu auch die Kommunikation zwischen Terminal und Verteiler ber TCP abgewickelt werden da eine Bindung als Bibliothek ber entfernte Rechner nicht m glich ist 6 8 1 2 Die neue Schnittstelle IfMulterapi Aus den oben genannten Gr nden wird die bisherige Schnittstelle erg nzt und ange pa t Sie erh lt den Arbeitstitel IfMulterapi Es wird einerseits eine Verteiler Applikation ben tigt Sie verh lt sich gegen ber dem System 6020 wie die alte ifterapi Intern mu sie die Buchungen so speichern da die Daten auch bei Programmabst rzen oder wenn der 6020 Server gerade nicht verf gbar ist erhalten bleiben und der oben genannten ABU Mechnismus Abholen alter Buchungen realisiert werden kann Dies kann nur ber D
42. die allgemein verwendbaren Aktionen beschrieben 6 5 3 1 Knoten lt switch gt Mit Hilfe dieser Aktion wird eine Verzweigung implementiert Eine Variable ist als Testvariable vorgesehen Mit dem Wert dieser Variablen werden dann die in den case Unterknoten festgelegten Vergleichsoperationen abgearbeitet Sobald ein Ver gleich zutrifft wird die im entsprechenden case Unterknoten festgelegte Folgeaktion bzw Folgeansicht ausgef hrt Trifft keiner der Vergleiche in den case Knoten zu wird die im default Knoten festgelegte Aktion bzw Ansicht ausgef hrt 6 5 3 2 Knoten lt concat gt Anhand eines Formatierungsstrings wird aus konstanten Texten und Variablen ein Wert f r eine festgelegte Zielvariable zusammengesetzt 6 5 3 3 Knoten lt scan gt Anhand eines Formatierungsstrings und von Quelldaten i d R in einer Variablen werden letztere geparst und in verschiedene andere Variablen aufgespaltet 6 5 3 4 Knoten lt formatno gt Anhand eines Formatierungsstrings wird der als Zahl interpretierte angegebene Wert formatiert und in eine Variable geschrieben 37 6 5 3 5 Knoten lt calc gt Hier kann eine mathematische Formel aus den Grundrechenarten und gewissen Standardfunktionen z B Quadratwurzel Sinus usw festgelegt werden sowohl kon stante Zahlen als auch Variablen sind m glich Diese Formel wird dann bei der Aus f hrung der Aktion ausgewertet 6 5 3 6 Knoten lt msgbox gt Mit dieser Aktion wird eine wie
43. die das Produkt nicht wettbewerbsf hig gemacht h t ten Zus tzlich zu den Funktionen bestehender Terminals sollte die Verwendung der Pro grammierschnittstelle des System 6020 vorgesehen werden mit deren Hilfe weitere Aktionen wie Auswertung oder Antr ge erm glicht w rden Die Benutzerschnittstelle und die verschiedenen gew nschten Abl ufe sollten m g lichst flexibel konfiguriert werden k nnen Weiterhin werden neben den bereits ge nannten Schnittstellen noch eine Schnittstelle zum Aufruf von anderen Programmen sowie eine Schnittstelle zu Ausweis oder Barcodelesern ben tigt 28 6 2 Benutzerschnittstelle 6 2 1 Bibliotheken Im Rahmen einer z gigen Entwicklung und um gut wartbare Software zu erstellen ist es sinnvoll die Oberfl che mit einer geeigneten Bibliothek zu entwickeln Aus Gr nden der Portabilit t wurde f r die Oberfl che das X11 System verwendet Die SVGA Bibliothek unter Linux die ohne den Overhead eines Windowmanagers auskommt wird nicht verwendet da diese sich nicht automatisch auf ungew hnliche Aufl sungen einstellen l t mit denen bei Touchscreens gerechnet werden mu F r die Programmierung der Oberfl che wurden die beiden gebr uchlichsten Biblio theken das Gtk Toolkit f f0 der Gtk Gruppe und Ode der Firma Trolltech un tersucht 6 2 1 1 Gtk Das Gtk Toolkit bietet die wichtigsten Standardsteuerelemente vorgefertigt an Es bietet M glichkeiten zur Ereignisbehandlung und zum dy
44. dies Parallele Schnittstelle AC97 Audio Connector LDC Verbin dung Hilfsstromversorgung CPU Stromversorgung PC 104 Verbindung Infrarot Verbindung PS2 Anschlu Stromversorgung IDE Controller USB Anschlu Dis ketten Controller Serielle Schnittstelle ATX Standby Verbindung 2 Ethernet An schl sse und Monitor Ausgang Eine Unterst tzung f r LCD Displays ist ebenfalls vorhanden Bez glich der Schnittstellen k nnen solche Rechner sicherlich mit normalen PCs mit halten Als Prozessor wird ein Pentium MMX kompatibler Embedded Prozessor von Cyrix mit 300 MHz verwendet 66 Die Entwicklung fand auf einem normalen PC 1 GHz Athlon mit 512 MB RAM und 40 GB Festplatte statt Der Embedded PC wurde nur zum Testen verwendet Dar ber hinaus stand f r die Tests mit externen seriellen Ger ten der Interflex Be rechtigungsleser P60 USB RS232 RS485 zur Verf gung Er wurde ber die se rielle Schnittstelle des Rechners betrieben da USB Treiber unter Linux noch nicht zur Verf gung stehen 8 2 Betriebssystem und Laufzeitumgebung Auf dem Testsystem wurde eine SuSE Linux Distribution 7 3 mit dem dem Window Manager KDE 2 2 1 verwendet Die letzten Tests wurden mit dem Window Manager fvwm95 durchgef hrt der weniger Overhead erzeugt Dar ber hinaus wurden die Pakete f r das Gtk 2 0 der Xerces XML Parser 1 7 sowie einige Standard Bibliothe ken des System 6020 und die im Rahmen dieser Arbeit entstandene LiblfMulterapi nachinstallier
45. e Buchungen abholen oder ABU bezeichneten Verfahren l t sich sicherstellen da im Falle eines Totalausfalls des Servers die Daten seit der letzten Datensicherung nicht verloren sind Fehlgr nde Im Prinzip werden bei der Zeitwirtschaft zwei Zust nde f r einen Mitarbeiter unterschieden Anwesenheit und Abwesenheit Bei Abwesenheit gibt es neben der normalen Freizeit verschiedenste Gr nde nicht im Betrieb zu sein dabei wird unterschieden ob diese Zeiten bezahlt sind oder nicht Diese Gr nde werden als Fehlgr nde bezeichnet Nach daB gibt es die folgenden sieben Gruppen von Fehlgr nden e Urlaub Tarif _Schwerbehinderten Bil dungs und Erziehungsurlaub Son derurlaub aus verschiedenen Gr n den e Arbeitsunf higkeit Krank ohne Bescheinigung bis 3 Tage Krank Krank ohne Lohnfort zahlung Unfall Arbeits oder Wege unfall privat Kur Arztbesuch e Tarifliche und gesetzliche Freistellung Eigene Eheschlie ung oder Heirat e Betriebsbedingte Abwesenheiten e Aus und Fortbildung e Arbeitsvers umnis e Freizeitausgleich Saldo der Kinder Tod der Eltern Ehegatten oder Kinder Geburt des eigenen Kindes Silberne oder Goldene Hoch zeit Umzug Wehr bung Grund wehr oder Zivildienst Mutterschutz Vorladung zu einer Beh rde Wahr nehmung ffentlicher Ehren mter Ar beitsjubil aum Dienstreise Dienstgang Betriebs bzw Personalratst tigkeit Berufsschule interne und externe Se min
46. ead gestartet der mit sleep wartet und dann signalisiert Solaris pthread sema_wait f r Timeout extra Thread AIX pthread pthread_mutex_lock f r Timeout extra Thread HPUX pthread FSU pthread_mutex_lock f r Timeout Threads unter extra Thread HPUX 10 20 TABELLE 5 IMPLEMENTIERUNG VON WAIT Methode Post Betriebssystem Bibliothek Vorgehen Windows API PulseEvent kernel32 lib Linux pthread sem_post Solaris pthread sema _post AIX pthread pthread_mutex_unlock HPUX pthread FSU pthread_mutex_unlock Threads unter HPUX 10 20 TABELLE 6 IMPLEMENTIERUNG VON POST 61 Die beschriebene Implementierung funktioniert unter AIX bis zur Version 4 2 nicht da die Funktion pthread_mutex_unlock den Fehlercode EPERM zur ckgibt Dieser be deutet bei der Funktion It dessen Manual The calling thread does not own the mutex lock Mar0il Der aufrufende Thread darf den Mutex nicht entblocken da er nicht Eigent mer ist und ihn gesetzt hat Dies unterscheidet die AIX Implementie rung von der gleichaussehenden HPUX Implementierung Dieses Problem tritt offen bar nicht auf wenn der Mutex Typ PTHREAD_MUTEX_NORMAL ist UP Ein Set zen dieses Typs ist aber ab AIX 4 3 m glich Im Rahmen dieser Arbeit stand kein System mit der Betriebssystemversion 4 3 zur Verf gung Daher konnte dies nicht berpr ft werden Thread erzeugen Betriebssystem Bibliothek Vorgehen Windows API CreateThread kernel32 lib Unix pthread pthre
47. en Terminals anfallen In der Vergangenheit hat die Firma Interflex bereits derartige L sungen auf Basis normaler Rechner unter Windows beispielsweise im Bereich der 1 Produkt WebClient der Firma Interflex 8 Personaleinsatzplanung angeboten F r einen gr eren Markt sind die Kosten aber noch zu hoch Daher hat sich Linux als Betriebssystem aufgedr ngt da einerseits keine Kosten entstehen andererseits das System u a aufgrund des verf gbaren Quellcodes so eingeschr nkt und angepa t werden kann da es mit wenig Res sourcen auskommen kann Die oben erw hnten L sungen haben neben der Betriebssystemproblematik einen weiteren Haken Sie sind speziell zugeschnitten und lassen sich nicht parametrieren Daraus ergibt sich f r diese Arbeit die weitere Anforderung die Konfiguration so flexibel zu gestalten da das Produkt in vielen verschiedenen Kontexten ohne nderungen im Quellcode einsetzbar ist Ziel dieser Arbeit ist es also die grunds tzliche Problematik der Anbindung von Embedded PCs unter Linux an ein Serversystem darzulegen und die Konfigurier barkeit zu gew hrleisten Dies wird am Beispiel des Zeiterfassungssystems 6020 der Firma Interflex gezeigt Im Rahmen dessen sollte dann auch eine Applikation ent wickelt werden die es erm glicht eine Benutzerschnittstelle zu konfigurieren welche die Bedienung des Zeiterfassungssystems erm glicht Diese sollte m glichst derartig gestaltet werden da sie durch
48. en lt key gt Hier wird eine einzelne Taste konfiguriert F r sie werden Oberfl cheneigenschaften wie Beschriftung mit Farbe und Schriftart Gr e Position auf dem Bildschirm ein gestellt Dar ber hinaus wird festgelegt welches Zeichen mit ihr eingeben werden soll Alternativ dazu kann sie auch mit einer der folgenden Sonderfunktionen belegt werden Cursor bewegen L schen Eingabe abschlie en Wechsel zwischen Ebe nen z B Shift Taste u 6 5 1 1 2 Knoten lt entry gt Die Attribute dieses Knotens beschreiben das Eingabefeld des Bildschirmtastatur eingabedialogs Diese sind die oben genannten Oberfl cheneigenschaften 6 5 1 1 3 Knoten lt label gt Zum Eingabefeld geh rt auch eine Beschriftung Deren Oberfl cheneigenschaften lassen sich hier festlegen 6 5 1 1 4 Knoten lt oklabel gt Ein weiteres Label dient zur Darstellung von Meldungen inwiefern die Eingabe das richtige Format besitzt 6 5 1 2 Knoten lt msgbox gt Das Anzeigen von Nachrichten mittels entsprechenden Dialogen wird h ufig ben tigt Hierf r ist ein extra Aktionstyp vgl 6 5 3 6 vorgesehen um nicht jedes Mal eine neue Ansicht mit allen Steuerelementen von Hand erstellen zu m ssen Das Ausse hen dieser Standardnachrichtenbox l t sich hier einstellen 6 5 1 3 Knoten lt text gt An vielen Stellen sollten einfach nur bestimmte im konkreten Anwendungsfall feste Texte angezeigt werden sei es bei Fehlermeldungen oder bei der
49. en einzelnen Eingabefeldern zugewiesen werden k nnen Sinn volle Bestandteile eines Layouts sind Position Gr e und Aussehen des Eingabe felds und der Tasten sowie die Wirkung der Tasten Eingabe eines Zeichens oder Sonderaktion wie L schen oder Eingabe beenden Desweiteren sollten noch Posi tion Gr e und Aussehen eines Feldes f r einen Eingabetext sowie einen Kommen tartext ob die Eingabe formal richtig ist konfiguriert werden k nnen 5 4 2 Oberfl chenkonfigurierung Unter fast allen Bibliotheken f r die Erstellungen graphischer Oberfl chen ist es blich die GUI in verschiedene Objekte zu unterteilen die je nach Betriebssystem als Controls Steuerelemente oder Widgets bezeichnet werden Dies gilt z B f r die folgenden Systeme Unix Gtk Windows API Borland TurboVision QT u v a m Dieses Konzept sollte daher auch f r die Konfigurierung einer Ansicht View im Interface Action Config Modell verwendet werden Es werden verschiedene Steuerelemente vorgesehen die dann innerhalb der View positioniert werden k nnen Bei der Implementierung macht es Sinn diese in Klas sen zu kapseln die von einer eigenen Steuerelementbasisklasse abgeleitet sind 26 Bei der Implementierung dieser Klassen k nnen soweit vorhanden dann die Steuerelemente der GUI Bibliothek verwendet werden Die Konfiguration beschreibt dann die einer View zugeordneten Steuerelemente und deren Attribute Als Attribute kommt folgendes in
50. en und panamerikanischen Markt be n tigt man verschiedenste Zeichens tze Die blichen Sprachen in diesem Raum werden allerdings von links nach rechts geschrieben und bestehen aus einzelnen ne beneinander geschrieben Zeichen Allerdings reicht der alte ASCII Zeichensatz mit 7 Bit nicht einmal f r die deutsche Sprache aus Auch mit den 8 bit Zeichens tzen der ISO 8859 Reihel VR l t sich nicht alles abdecken Schon ein Euro Zeichen kann Probleme bereiten Das Gtk die zur Darstellung auf dem X Server verwendete Bibliothek verwendet UTF 8 f r Texte Dabei handelt es sich um eine Codierung die Unicode UCS in normale 8 Bit Zeichen escaped Dies hat den Vorteil da normale Strings zum Speichern der Daten verwendet werden k nnen Texte in 7 bit ASCII Codierung blei ben sogar gleich Eine Konvertierung von den verbreitetsten Codierungen in XML Dokumenten nach UTF 8 ist in den Standardwerkzeugen wie der Xerces Bibliothek R bereits enthal ten F r die Schnittstellen nach au en kann eingestellt werden ob die Ein und Aus gabe in UTF 8 oder ISO 8859 1 codiert ist 42 Mit Hilfe der UTF 8 Codierung ist es nun problemlos m glich alle Sprachen die von links nach rechts geschrieben werden abzudecken Auf die Implementierung von Unterst tzung f r andere Sprachen konnte verzichtet werden da der Kern des Sys tems 6020 dies genausowenig unterst tzt 6 7 2 Parsen von Strings Da die in 6 4 angesprochenen Variablen intern immer
51. erdem kann bestimmt werden ob die folgende Ansicht oder Aktion bersprungen werden soll 5 3 5 Problematik der Synchronisation Bei der bertragung dieses Modells in reale Programme sollte noch folgendes be achtet werden Die X Server Bibliotheken unter Linux sind i d R nicht thread safe Aus diesem Grund mu die Synchronisation zwischen den Threads von Hand erfol gen Es mu sichergestellt sein da immer nur von einem Thread auf einmal auf den X Server zugegriffen wird Dies l t sich mit einem globalen kritischen Abschnitt vgl 7 3 realisieren der z B mit Hilfe eines Mutex realisiert werden kann 25 5 4 Allgemeine L sungsans tze 5 4 1 Bildschirmtastatur Zur Absicherung des Systems ist es von Vorteil keine normale Tastatur zuzulassen da mit Hilfe dieser betriebssystemspezifische Tastenkombinationen gedr ckt werden k nnten die man dann im System abschalten m te Es macht aber Sinn alleine zu Wartungszwecken eine normale Tastatur anschlie en Aus diesem Grund sollte f r die Eingabe von Text eine Tastatur dargestellt werden die dann ber den Touch screen bedient wird Da die verschiedenen Eingabefelder ganz unterschiedliche Anforderungen an die be n tigten Tasten stellen und verschiedene Sprachen unterschiedliche Zeichen ver wenden macht es wenig Sinn nur eine vorgefertigte Universaltastatur zu verwen den Daher sollte vorgesehen werden da verschiedene Layouts konfiguriert werden k nnen die dann d
52. ert m ssen Daten bergeben werden k nnen Dazu bieten sich die Standardein und ausgabe an In der Konfiguration wird festgelegt welche Daten auf die Standardein gabe des Programms geschickt werden und welche von der Standardausgabe einge lesen werden Die Implementierung dieser Schnittstelle ist nicht nur im Projekt IfSoftterm sinnvoll sie ist unter 7 2 beschrieben 6 6 2 Schnittstelle zur Verwendung seriell angeschlossener Ger te Diese Schnittstelle ist speziell zum Ansprechen von Ausweislesern oder Barcode lesern die seriell angeschlossen sind vorgesehen Diese Ger te schicken asyn chron Daten erwarten aber selbst keine Die Schnittstelle l t folgende Einstellun gen zu verwendete Kommunikationsschnittstelle Variablen in die die Daten gespei chert werden auszuf hrende Aktionen Protokolleinstellungen Alternativ zum Spei chern in Variablen ist auch eine Kopplung an ein Eingabefeld m glich 1 wie er in POSIX C z B mit dem system Befehl vorgenommen wird 40 Es ist m glich das Startzeichen STX und das Endzeichen ETX zu definieren ebenso wie eine m gliche feste Satzl nge Implementiert wurde all dies ber einen extra Thread der blockierend von der Schnittstelle liest und dann die entsprechenden Verarbeitungsschritte durchf hrt Die Daten werden in mehreren Formaten gespeichert Rohdaten wie von der Schnittstelle gelesen sowie die einzelnen Protokollbestandteile wie Ausweisnummer mit Version
53. folgenden angibt und addiert diese folgenden Parameter Das Ergebnis der Addition wird zur ckgegeben Die Quelltexte des Programms und der Bibliothek liegen dieser Arbeit bei 6 9 Erweiterbarkeit Wie bei vielen Programmen wird es auch beim IfSoftterm in Zukunft zu Erweiterun gen des Funktionsumfangs kommen Aus diesem Grund wird es notwendig da hnlich wie die bestehenden Aktionen und Steuerelemente implementiert sind sich auch zus tzliche Aktionen und Steuerelemente hinzuprogrammieren lassen Eine Dokumentation die dies beschreibt wurde erstellt 6 10 Tests F r das IfSoftterm wurde eine gro e Anzahl von Testf llen erstellt mit deren Hilfe man einen gro en Teil der Funktionalit t testen kann Im entsprechenden internen Dokument werden die notwendigen Schritte zur Erstellung der Konfiguration sowie die gew nschte Reaktion des Systems beschrieben 56 7 Ausgew hlte Probleme der Systemprogram mierung W hrend der Arbeit am Projekt IfSoftterm traten in gr erem Umfang Probleme aus der Systemprogrammierung auf Um diesem gerecht zu werden sind diese hier be schrieben Viele der Probleme k nnen auch in anderen Gebieten eine Rolle spielen 7 1 Gepuffertes Erzeuger Verbraucher Problem Dieses Problem stellt einen Spezialfall des Erzeuger Verbraucher Problems dar Es wird eine Ressource von zwei Seiten als Warteschlange verwendet Der Erzeuger schreibt Informationen hinein die der Verbraucher wieder ausliest
54. gestellt sondern die aktuelle Uhrzeit Das Format der Anzeige l t sich einstellen 6 5 2 10 Knoten lt image gt Bilder und Graphiken aus Dateien lassen sich mit diesem Element darstellen Eine Reaktion f r das Daraufklicken ist ebenfalls vorgesehen 6 5 2 11 Knoten lt helpbutton gt und lt cancelbutton gt Bei diesen beiden Elementen handelt es sich auch nur um Buttons allerdings mit fest vorgegebenen Reaktionen Beim helpbutton wird der Hilfedialog aufgerufen vgl 6 5 3 7 beim cancelbutton die Standard Reset Aktion durchgef hrt 6 5 3 Konfiguration der Aktionen Knoten lt action gt Der Knoten action enth lt die notwendigen Einstellungen f r eine Aktion im Sinne des Interface Action Config Modells Es k nnen beliebig viele ber einen eindeutigen Bezeichner identifizierbare Ak tionen definiert werden 36 Da oft eine ganze Liste von Aktionen ben tigt wird die hintereinander ausgef hrt werden wird die Konfiguration ber viele Folgeaktionen sehr un bersichtlich Daher ist es an allen Stellen m glich anstelle einer einzelnen Aktion auch eine durch Kom ma getrennte Liste von Aktionen anzugeben die dann in dieser Reihenfolge ausge f hrt werden Sofern die einzelnen Aktionstypen nichts anderes vorsehen kann f r jede Aktion ent weder eine Folgeansicht oder Folgeaktion festgelegt werden die dann im Anschlu ausgef hrt wird Die folgenden Aktionen sind implementiert Zuerst werden wieder
55. h Englisch nicht bekannt PCM 5823 Startup Manual Quellen f r Programmcode Gerhard Stephan Parsen Auswerten von mathematischen Ausdr cken Quelle http www ad factum deltips fparser 19 03 2002 nicht bekannt Kommandozeilenparameter getopt_long f r Plattformen die diese Funktion nicht haben Quelle http lottery merseyworld com Wheel 06 05 2002 12 5 Sonstiges IFd01 Man01 GieT1 Lucia Zeitler et al Datenbank Grundlagen f r IF Produkte Dokument PEP Begriffe gt K nicht bekannt Manual pthread_mutex_unlock Subroutine mit dem AIX Betriebssystem mitgelieferte manpage Thomas Giese It Quelle Quelle http www zugernet ch users f schori komment html 23 04 2002 75 13 Anhang 13 1 Glossar 6020 Die 6020 oder das System 6020 ist ein Zeiterfassungs und Zutrittssystem der Firma Interflex 6020 API ABU BDE Programmierschnittstelle zum System 6020 Sie steht unter Windows in Form einer DLL unter den verschiedenen Unix Derivaten als Shared Object zur Verf gung Abholen alter Buchungen Verfahren zur Erh hung der Ausfallsicherheit eines Gesamitzeiterfassungssystems Dabei werden alle Buchungen auf dem Terminal gespeichert F llt der Server aus kann dieser ja mit dem Stand der letzten Datensicherung versehen werden Dann werden einfach alle Buchungen ab diesem Zeitpunkt erneut von den Terminals angefordert so da wieder alles im System vorhanden ist Betriebs
56. hl an Zeichen erreicht und der Automat ist nicht in einem Endzustand wird dies als Fehler angesehen Eine Besonderheit bei den beiden Automaten f r das Einlesen von Strings ist da diese auch das folgende konstante Zeichen wenn eine Konstante folgt auswerten und dieses als Abbruch der Zeichenfolge interpretieren Nun folgen die Automaten f r die einzelnen Formatierungskonstanten F r Zahlen werden die folgenden beiden Automaten verwendet o Vorzeichen merken zt RS 0 9 ne N Ziffer hinzuf gen Vorzeichen merken A 2 kua pe Se 1 0 9 Pr Ziffer merken er ABBILDUNG 7 AUTOMAT F R GANZE ZAHLEN iY Ganze Zahlen werden eingelesen in dem zun chst ein m gliches Vorzeichen und anschlie end die Ziffern gelesen werden 45 q Vorzeichen merken 2 N m y Vorzeichen merken Zeit KR 0 9 Ziffer merken m Mo 0 9 0 9 Ziffer hinzuf gen Ziffer hinzuf gen Ma 2 gien e zc DCH a N Ne E NL 0 9 Ziffer merken ABBILDUNG 8 AUTOMAT F R KOMMAZAHLEN f Bei Kommazahlen wird ebenfalls zun chst das optionale Vorzeichen eingelesen da nach kommen die Ziffern des ganzzahligen Anteils und schlie lich optional das Dezi maltrennzeichen und die Nachkommastellen F r Zeichenketten werden folgende Abl ufe verwendet N Start Ne 7 N chstes Zeichen lesen a Sonst I Zeichen nicht Zeichen f r Zielvariable
57. hlie en k nnen Ein Mutex wird oft dazu verwendet sicherzustellen da gemeinsam benutzte Variablen von anderen Threads immer in einem konsistenten Zustand gesehen werden Ein Mutex ist vergleichbar mit einem Semaphor oder Lock ef Oberfl cheneigenschaften Diejenigen Attribute eines Steuerelements die f r den Benutzer sichtbar sind Dazu geh ren z B Position Gr e Farbe oder Schriftart PEP Personaleinsatzplanung Anpassung der Arbeitszeiten der einzelnen Mitarbeiter an den Personalbedarf PLI Programmierbare Listen einfache Skriptsprache f r das System 6020 zum Programmieren von Abrechnungen Steuerelement einzelner Baustein aus denen die graphische Oberfl che eines Programms zusammengesetzt wird SSH Tunnel Einbetten von TCP Verbindungen in eine andere verschl sselte Verbindung system Mit diesem API Befehl wird unter Unix ein anderes Programm wie in einer Kommandozeile der Shell gestartet 78 Terminal Bedienungseinheit im Zeiterfassungs und Zutrittssystem Es wird zwischen Hardwareterminals Mikrocontroller mit wenigen Tasten und mehr oder weniger stark beschr nkter Ausgabe und Softterminals auf PCs laufende Applikation mit hnlicher Funktionalit t unterschieden Thread Unter einem Thread zu deutsch Faden versteht man einer von mehreren quasi gleichzeitigen Programmabl ufen innerhalb einer Aufgabe Prozesses Ein Thread wird auch als nebenl ufiger oder leichtgewichtiger Proze bezeichnet Der Ei
58. hlie end mu noch die semantische Richtigkeit berpr ft werden Dazu geh ren solche Dinge wie das Vorhandensein einer Startansicht da konfigurierte Folge ansichten und aktionen auch tats chlich definiert sind oder da ein angegebenes Tastaturlayout auch vorhanden ist 6 5 4 2 Encoding Es k nnen alle Encodings verwendet werden die vom DOM Parser unterst tzt werden Ist keines angegeben wird UTF 8 angenommen Intern werden die Texte 39 immer in das UTF 8 Format umgewandelt welches auch die Oberfl chenbibliothek Gtk verwendet 6 5 4 3 Speicherung der Konfiguration Nach erfolgreichem Abschlu des Parsens werden die Informationen der XML Datei in einer internen Konfigurationsstruktur abgebildet Der Parser wird dann zur Laufzeit nicht mehr ben tigt und kann aus dem Speicher entfernt werden Beim Aufruf einer Aktion wird dann das zugeh rige Konfigurationsobjekt verwendet um den notwendi gen Code auszuf hren 6 6 Kapselung der externen Schnittstellen 6 6 1 Schnittstelle zum Aufruf externer Programm shell Eine der vielf ltigsten Methoden zur Anbindung externer Systeme ist der Aufruf ex terner ausf hrbarer Programme Ist ein solcher m glich kann man das bestehende System problemlos so erweitern da weitere Schnittstellen angesprochen werden k nnen in diesem Fall wird einfach ein zus tzliches Programm geschrieben das die Daten aufnimmt und an die neue Schnittstelle weitergibt Damit dies funktioni
59. hnittstellen dyna mische Bibliotheken ausf hrbare Programme Buchungsschnittstelle ifterapi und 6020 API sind vorhanden Das Projekt IfSoftterm ist auch f r k nftige Erweiterungen gut ger stet Die Doku mentation enth lt Anleitungen mit deren Hilfe zus tzliche Aktionstypen und Steuer elemente hinzugef gt werden k nnen Ein sinnvolle Erweiterung des Projekts w re die Entwicklung einer graphischen Ober fl che mit deren Hilfe sich die Konfiguration durchf hren lie e Alles in allem ist das Projekt IfSoftterm ein Ankn pfungspunkt f r zuk nftige Produk te der Firma Interflex die derartige Funktionalit t ben tigen 68 10 Abbildung 1 Abbildung 2 Abbildung 3 Abbildung 4 Abbildung 5 Abbildung 6 Abbildung 7 Abbildung 8 Abbildung 9 Abbildung 10 Abbildung 11 Abbildung 12 Abbildung 13 Abbildung 14 Abbildung 15 Abbildung 16 Abbildung 17 Abbildung 18 Abbildung 19 Abbildung 20 Abbildung 21 Abbildung 22 Abbildung 23 11 Tabelle 1 Tabelle 2 Tabelle 3 Tabelle 4 Tabelle 5 Tabelle 6 Tabelle 7 Tabelle 8 Abbildungsverzeichnis Model View Controller Modell P nn 19 Model Miew Presenter Model 20 Interface Action Config Modell RR 21 Beispiel f r derartige Abl ufe RR Rn 23 Automat f r das Zusammensetzen von Strings gt 43 Automat f r das Parsen des Formatierungsstrings eeeeeeeeeeee 45 Automat f r ganze Zahlen Bif 45 Automat f
60. ible 1 align left gt lt label x 10 width 620 y 40 height 30 font Sans 14 text die gew fchnschte Aktion und buchen Sie dann mit Ihrem Ausweis visible 1 align left gt lt datetime x 10 width 620 y 140 height 50 font Sans bold 16 format tweekday den d month y h 0m 0s Uhr tz visible 1 align left gt lt label x 10 width 620 y 200 height 60 font Sans bold 24 text Buchungstext visible 1 align left gt lt button x 10 width 200 y 270 height 200 label Kommen onclick Kommen Kommen1 visible 1 gt lt button x 220 width 200 y 270 height 200 label Gehen onclick Gehen Gehenl1 visible 1 gt lt button x 430 width 200 y 270 height 200 label Info onclick Info Infol visible 1 gt lt view gt lt view id AnswerView onidleview StartView onidletime 2500 gt lt label x 10 y 10 width 620 height 460 font Sans bold 24 align center text BuchungsantwortLang visible 1 gt 82 lt view gt lt view id OfflineView onidleview StartView onidletime 2500 gt lt label x 10 y 10 width 620 height 460 font Sans bold 24 align center text Buchung registriert Verbindung offline visible 1 gt lt view gt lt action id Start resetbefore action gettext gotcard type externaldevice device kartenleser cardvar CARD datavar DATA custo
61. in 6 5 1 2 formatierte Nachrichtenbox dargestellt Die Meldung die ausgegeben werden soll kann konfiguriert werden 6 5 3 7 Knoten lt help gt Ein Hilfedialog l t sich mit dieser Aktion darstellen Dabei kann wahlweise eine HTML Datei angegeben werden oder direkt eine berschrift zuz glich zugeh riger Text 6 5 3 8 Knoten lt shell gt Auch der Aufruf externer Shellskripte oder Bin rprogramme ist m glich Dabei kann die Kommandozeile per Attribut festgelegt werden Au erdem k nnen Daten festge legt werden die an die Standardeingabe des Kindprozesses ausgegeben werden und die Standardausgabe desselben sowie dessen Errorlevel kann in Variablen ge speichert werden 6 5 3 9 Knoten lt socall gt Mithilfe dieser Aktion werden Funktionen aus dynamischen Bibliotheken aufgerufen Der Name der Bibliothek und der Funktion wird angegeben Die einzelnen Parameter und der R ckgabewert lassen sich mit deren Typ festlegen Als Typen sind Integer Zahl und String Pointer auf Character Feld m glich Parameter und R ckgabevaria ble werden ber die Untertags lt param gt und lt return gt festgelegt Die Implementierung der Schnittstelle zu dynamischen Bibliotheken ist in 6 6 4 be schrieben 38 Nun folgt die speziell f r das Projekt IfSoftterm vorgesehene Aktion 6 5 3 10 Knoten lt ifterapi gt Das Buchen ber die als IfMulterapi bezeichnete Nachfolgeversion der Interflex Buchungsschnittstelle ifterapi wird
62. ing Anh ngen des Paddings f r die Vorkommastellen F hrendes 0 abschneiden Anh ngen des Paddings f r die Nachkommastellen berz hlige Nachkommastellen hinten abschneiden Vorkommastellen Dezimaltrennzeichen und Nachkommastellen konkatenieren String in Zielvariable schreiben ABBILDUNG 11 FORMATIEREN VON ZAHLEN 48 6 7 2 4 Escape Sequenzen F r den Benutzer ist es umst ndlich nicht auf der Tastatur vorhandene Sonder zeichen in Texte einzuf gen Daher ist es sinnvoll eine M glichkeit zu bieten inner halb der Konfigurationsdatei beliebige Unicode Zeichen zu definieren In der Konfi guration des IfSoftterm ist es daher m glich eine Sequenz zu verwenden die folgen derma en aufgebaut ist Zuerst kommt ein Backslash LU dann eine hexadezimale Zahl die dem gew nschten Unicode Zeichencode entspricht und zum Abschlu das Zeichen h Beim Einlesen der Konfiguration werden dann diese Sequenzen durch die entsprechenden Unicode Zeichen ersetzt Dar ber hinaus sind folgende mit Backslash beginnende Sequenzen definiert Sequenz Bedeutung V VW n Zeilenumbruch r Wagenr cklauf t Tabulator TABELLE 4 ESCAPE SEQUENZEN 6 8 Hilfsprogramme und bibliotheken 6 8 1 ifterapi bzw IfMulterapi Bislang gab es neben dem rohen IT Term Protokoll zum Anschlu von Terminals an das System 6020 nur noch eine Schnittstelle f r die Ve
63. liffs NJ USA 1990 Wilf R Lalonde John R Pugh Inside Smalltalk Volume Il Prentice Hall Inc Englewood Cliffs NJ USA 1991 Herbert Schild C from the ground up Second Edition Osborne McGraw Hill Berkeley CA USA 1998 W Richard Stevens Unix Network Programming Prentice Hall International Englewood Cliffs NJ USA 1990 W Richard Stevens Advanced Programming in the UNIX Environment Addison Wesley Reading MA USA 1992 Bjarne Stroustrup Die C Programmiersprache Addison Wesley M nchen 2000 A Zeidler R Zellner Software Ergonomie Techniken der Dialoggestaltung R Oldenbourg Verlag M nchen Wien 1992 J Ziegler R Ilg Hrsg Benutzergerechte Software Gestaltung R Oldenbourg Verlag M nchen Wien 1993 Internetseiten Einzelne Seiten zu einem speziellen Thema Tim Bray Jean Paoli C M Sperberg McQueen XML 1 0 http www w3 org TR 1998 REC xmI 19980210 04 06 2002 Tim Bray Jean Paoli C M Sperberg McQueen Eve Maler XML 1 0 Second Edition http www w3 org TR 2000 REC xmI 20001006 06 03 2002 Roman Czyborra The ISO 8859 Alphabet Soup http czyborra com charsets is0o8859 html 10 05 2002 Mathias Grohe Programmieren in der Skriptsprache Tcl Tk http www uni muenster de ZIV Mitarbeiter MathiasGroteltcl Tcl html 06 03 2002 71 JelD1 RicN1 RicN2 Unb01 Unb02 Unb03 Unb04 Unb05 Unb06 WhiJ1 72 Dejan Jelovi Using namespaces properly C h
64. m lauff higen Produkt weiterentwickelt werden kann 5 2 M gliche Modellierungen Bei der Modellierung lassen sich zwei Gebiete voneinander unterscheiden die Logik d h die Abl ufe die der Applikation zugrunde liegen die Oberfl che d h den Teil des Programms den der Benutzer sieht Beide Gebiete m ssen konfiguriert werden um den Erfordernissen gerecht zu werden F r die Art und Weise wie die Konfiguration vorgenommen werden k nnte wurden in dieser Arbeit verschiedene Ans tze untersucht 5 2 1 Logik 5 2 1 1 bestehende Skriptsprache Die Konfiguration der Applikation geschieht dadurch da in einer bestehenden Skriptsprache das Notwendige programmiert wird Nur die Schnittstellen zum Server system oder zur Oberfl che werden ber vorhandene oder zu diesem Zweck neu zu programmierende Bibliotheken angesprochen Als Skriptsprachen k men z B Tcl Tk Ref01 Gel ef oder Python R03 in Frage Von einer Realisierung dieses Ansatzes wurde abgesehen da dieses Vorgehen im Prinzip dem harten Kodieren des gesamten Programms entspricht Gerade bei stan dardisierten Aufgaben w re der Aufwand bei der Programmierung gegen ber der h heren Flexibilit t nicht gerechtfertigt Es w re gegen ber dem Status quo direktes Ausprogrammieren von Fall zu Fall keine Verbesserung 5 2 1 2 eigene Skriptsprache Eine Alternative zu vorhandenen Skriptsprachen stellt die Entwicklung einer eigenen Sprache dar Mit ihr m te das Anspre
65. mervar CUSTOMER versionvar VERSION gt lt action id Kommen type concat format Kommen dest Buchungstext gt lt action id Kommenl type concat format 0100 dest Buchungsart view StartView gt lt action id Gehen type concat format Gehen dest Buchungstext gt lt action id Gehenl type concat format 0101 dest Buchungsart view StartView gt lt action id Info type concat format Info dest Buchungstext gt lt action id Infol type concat format 0110 dest Buchungsart view StartView gt lt action id gettext type scan format s r2102 s BuchungsantwortKont0 s gt CompleteAnswer lt action gt lt action id gotcard type ifterapi data Buchungsart 200117 2002 DATE 2003 TIME 2000 CARD S VERSION name server onanswer gettext ShowAnswer action offline timeout 4000 answervar Buchungsantwort completeanswervar CompleteAnswer gt lt action id ShowAnswer view AnswerView type concat dest BuchungsantwortLang format Buchungsantwort BuchungsantwortKonto gt lt action id offline view OfflineView gt lt general mousevisible 0 gt lt device name kartenleser stx x2 etx x3 dev dev ttyS0 baudrate 9600 parity n stopbits 1 bits 8 setlength 14 gt lt ifterapi id server ip 172 18 21 98 port 2003 terminalno 17 gt 83 lt startview gt Info lt startvie
66. n aus Methode ActivateActionEx Aktion Erl uterung P 1 immer nur eine Instanz dieser Funktion darf ausgef hrt werden Aktion eintragen durch diesen Algorithmus gen gt eine einfache Variable f r den Namen der Aktion V 2 dem Status Thread ansto en Status Thread Aktion Erl uterung P 2 Blockieren bis Aktion zur Bearbeitung ansteht Auslesen und Ver Variable enth lt den Namen notwendiger Code wird ausgef hrt arbeiten der Aktion V 1 N chste Aktion erm glichen 64 Die beiden Semaphoren haben also folgenden Sinn Zustand zu n Aktion Programmbeginn Erl uterung 1 entblockt Sicherstellen da immer nur ein Thread aktivieren kann 2 geblockt Blockieren des Status Thread solange nichts zu tun ist 65 8 Embedded PCs Embedded PCs sind normale Intel IBM kompatible PCs mit geringeren Ausma en Die Prozessoren sind i d R etwas langsam als in aktuellen Desktop Rechnern Sie verf gen oft ber ein Vielzahl von Anschlu m jglichkeiten direkt auf der Platine 8 1 Hardware Der im Rahmen der Diplomarbeit verwendete Embedded PC verf gt ber folgende Anschl sse auf der Platine NI CNIS CNIG CN12 CN17 gt i SE oi Hana bitter Bee u D ar D CNA G 0000 gone a mdc ENID Dog OSLO DD OUIHIIAM u Z PCM 5823 A CNB A CNS Ei CNS CNA KS IS 09H DEDDRHTIKDDNHDGOH DER GA A MPNA iR Aapeli Si CNI CHA Ch CN CHA ABBILDUNG 18 EmBEDDED PCOM In diesem Fall sind
67. n das System nicht in gesch tzten Netzen abl uft kann dieses TCP basierende Protokoll auch einfach ber SSH getunnelt werden Dabei wird eine sichere ver schl sselte Verbindung erstellt durch die dann die TCP Daten gesendet werden Das Prinzip des Tunnelns ber SSH wird anhand dieses Schaubilds beschrieben Server Client Applikation Applikation Port 2001 ra Port 4001 g Ent Tunnel Ver schl s Ok Sat zg schl s 4 7 selung selung SSH Server SSH Client ABBILDUNG 14 TUNNELN VON TCP VERBINDUNGEN BER SSH Das SSH Protokoll sieht die M glichkeit vor innerhalb der verschl sselten Verbin dung zwischen zwei Rechnern andere TCP Verbindungen durchzuleiten Soll nun eine Applikation auf dem Client eine sichere Verbindung zu einer Applikation auf dem Server hier zu Port 2001 aufnehmen wird folgenderma en vorgegangen Der Client ffnet eine SSH Verbindung zum Server hier auf Port 22 Beim Aufbau der Verbindung wird angegeben da in diesem Fall der Port 4001 auf dem Client an den Port 2001 auf dem Server weitergegeben werden soll So kann sich die Client Applikation mit Port 4001 auf dem lokalen Rechner verbinden und mit diesem TCP Port so kommunizieren also ob er direkt mit der Server Applikation verbunden w re Die Server Applikation erh lt eine Verbindung zum SSH Server der dann die Daten so bereitstellt wie es auch eine direkt angeschlosse
68. namischen Erzeugen von Widgets Es unterliegt der GNU public licence und kann auch kommerziell ohne Lizenzgeb hren eingesetzt werden 6 2 1 2 Qt Die Qt Bibliotheken der Firma Trolltech haben einen h heren Umfang an vorhande nen Steuerelementen Sie k nnen nur zu nicht kommerziellen Zwecken frei ver wendet werden 6 2 1 3 Wahl der Bibliothek F r die Verwendung mit Touchscreens ist nur ein Teil der Steuerelemente geeignet Es macht beispielsweise keinen Sinn einen Drehknopf oder das Doppelklicken zu verwenden Au erdem kann immer nur eine Untermenge der von der Bibliothek zur Verf gung gestellten Elemente verwendet werden da jedes auch einzeln in die Inter face Action Config Umgebung eingebettet werden mu Da die Gtk Bibliothek alle notwendigen Widgets zur Verf gung stellt und dar ber hinaus kostenfrei ist wurde ihr der Vorzug gegeben 29 6 2 2 Verschiedene Steuerelemente Die folgende Tabelle zeigt welche IfSoftterm Steuerelemente es gibt und mit Hilfe welcher Gtk Widgets sie realisiert wurden IfSoftterm Steuerelement Gtk Widget label GtkLabel checkbox GtkCheckButton radiobutton GtkRadioButton button GtkButton inputfield GtkEntry extra Fenster f r Eingabe table pro Feld ein GtkEntry extra Fenster f r Eingabe listbox GtkCombo progressbar GtkProgressBar datetime GtkLabel image Gtklmage helpbutton GtkButton cancelbutton GtkButton TABELLE 1 ZUORDNUNG STEUERELE
69. nd diese Zahl anhand einer Formatierungsangabe in einen String mit dem angegebenen Format umwandelt und in einer Variablen speichert 47 Die Formatierungsangabe besteht aus folgenden f nf jeweils durch eine Tilde ge trennten Angaben a Zeichen mit dem vor dem Komma auf die gew nschte Minimal L nge aufgef llt wird wird auch als Padding bezeichnet b gew nschte Anzahl Zeichen vor dem Komma als Bereichsangabe Leerstring bedeutet so viele Zeichen wie n tig Position 1 wird dann ignoriert c gew nschtes Dezimaltrennzeichen wird nicht ausgegeben wenn genau 0 Nach kommastellen erwartet werden d gew nschte Anzahl Zeichen nach dem Komma als Bereichsangabe Leerstring bedeutet so viele Zeichen wie n tig Position 1 wird dann ignoriert e Zeichen mit dem nach dem Komma auf die gew nschte Minimal L nge aufge f llt wird Die Bereichsangaben haben dasselbe Format wie oben in Tabelle 2 beschrieben Die Umwandlung der Zahlen l uft nach folgendem Schema ab Quellstring in Flie kommazahl umwandeln Felder der Formatierung auswerten Bereichsangaben parsen Wahr Werden Nachkommastellen ben tigt Falsch Bestimmung der Vorkommastellen und Umwandlung in String Vorkommastellen der Flie kommazahl in ganze Zahl umwandeln Anh ngen des Paddings f r die Vorkommastellen Ganze Zahl in String umwandeln Bestimmung der Nachkommastellen und Umwandlung in Str
70. ne Client Applikation gemacht h tte 53 Der Port der IfMulterapi wird dann f r alle anderen Rechner mit Ausnahme des loka len gesperrt So wird gew hrleistet da kein Unbefugter sich als Pseudo Terminal an das System h ngt und eigene Buchungen absetzt Das Tunneln hat den Vorteil da Standard Software verwendet wird die auch st ndig fehlerbereinigt wird Bei ei nem propriet ren Protokoll w rde dieser Aufwand st ndig auf die Entwicklung von In terflex zukommen Dies ist weder praktikabel noch wirtschaftlich sinnvoll Als Alternative zum Tunneln ber SSH k nnen auch private Netzwerke verwendet werden die auf IP Ebene die komplette Kommunikation verschl sseln Auch dies er fordert keine nderungen an der IfMulterapi Bibliothek 6 8 1 4 Die Bibliothek liblfMulterapi W rde f r jede Softwareterminal Applikation erneut von Hand die Verbindung zur IfMulterapi programmiert w rde dieselbe Arbeit mehrfach gemacht Daher ist eine statische Bibliothek mit dem Arbeitstitel liblfMulterapi vorgesehen die diesen Teil bernimmt Sie kennt neben Verbindungsauf bzw abbau init bzw exit nur noch Funktionen zum Senden einer Buchung sendData lesen der n chsten Bu chungsantwort receiveAnswer einer Kombination aus beiden sendDataWithAnswer sowie einer Abfrage des Verbindungsstatus getStatus Das auf TCP aufsetzende Protokoll wird also mit Hilfe der Biblio thek gekapselt
71. nsatz von Threads entspricht einem Multiprocessing das vom Programm selbst verwaltet wird und in derselben Task Proze abl uft wie das Hauptprogramm ie Touchscreen Bildschirm der auf Ber hrung reagiert Von Seiten des Betriebssystems wird der Touchscreen wie ein Maus verwendet UCS UCS steht f r Universal Character Set und ist auch unter Unicode bekannt Es gibt UCS 2 mit 16 bit und UCS 4 mit 32 bit Unicode UnicodeRe ist eine universelle Repr sentation von Zeichen mit Hilfe eines plattformunabh ngigen Standards Es ist eine Implementierung der ISO 10646 Norm UTF 8 UTF 8 codiert It RFC 2279 UCS Zeichen so da sie in Umgebungen die nur 8 Bit Zeichen zulassen verwendet werden k nnen Die einzelnen UCS Zeichen werden dann entweder auf ein oder eine Folge von 8 Bit Zeichen abgebildet VB Visual Basic Entwicklungsumgebung und Programmiersprache der Firma Microsoft 79 VBA Visual Basic for Applications mit VB verwandte Entwicklungsumgebung und Programmiersprache die in anderen Applikationen integriert ist Beispiels weise l t sich mit ihr Code in die Programme des Office Pakets von Microsoft integrieren Auch das System 6020 der Firma Interflex besitzt eine solche Integration Widget Das Wort Widget setzt sich aus window und gadget zusammen und be deutet einen Baustein einer graphischen Oberfl che Der Begriff stammt aus der Unix X11 Welt unter Windows wird eher Steuerelement bzw
72. olange aufrecht erhalten werden bis die Bedingung nicht mehr vorhanden ist Der Zugriff auf den Puffer selbst ist ein kritischer Abschnitt Zur L sung dieses Problems bedarf es i d R mehrerer Synchronisationsmechanismen nach ah S 52 Mit diesem API Befehl wird unter Unix ein neuer Proze gestartet der i w eine Kopie des aktuellen Prozesses ist Beim Gdk handelt es sich um die auf tieferen Ebenen angesiedelten Funktionen des Gtk Das Gtk GNOME Tool Kit ist eine Bibliothek mit deren Hilfe Benutzeroberfl chen f r das X11 System programmiert werden k nnen Graphical User Interface die Oberfl che die der Benutzer wahrnimmt Ifterapi Schnittstelle zum Anschlu von Fremdterminals an das System 6020 IT Term Protokoll Propriet res Protokoll der Firma Interflex f r die Kommunikation zwischen dem System 6020 und den einzelnen echten Terminals 77 Kritischer Abschnitt Ein kritischer Abschnitt besteht aus den Aktionen die jeweils nur von einem einzelnen Proze oder durchlaufen werden d rfen Ein Beispiel ist der exklusive Zugriff auf Betriebsmittel nach af S 52 Message Queue Nachrichtenwarteschlange verschiedenste Prozesse bzw Threads k nnen Nachrichten eintragen die dann zur Abarbeitung einzeln wieder ausgelesen werden Mutex Mutex ist aus mutal exclusion zu deutsch gegenseitiger Ausschlu zusammengezogen Man versteht darunter ein Synchronisationsobjekt durch das sich Threads gegenseitig aussc
73. on Config Modells Es k nnen beliebig viele Ansichten definiert werden die ber einen eindeutigen Be zeichner identifiziert werden Wie in vielen gebr uchlichen Oberfl chenprogrammierungssystemen wird auch im IfSoftterm eine Ansicht in verschiedene Steuerelemente controls aufgeteilt Aus diesen l t sich dann die Oberfl che zusammensetzen Sie speichern ihre Da ten in Variablen und l sen bei bestimmten Ereignissen Aktionen aus 1 so auch bei Unix X11 Widget Windows oder MacOS Controls 34 Der Knoten view selbst enth lt dar ber hinaus gewisse eigene Parameter wie die Hintergrundfarbe oder das Festlegen einer Reaktion auf Inaktivit t Die folgenden Steuerelemente sind implementiert Sie lassen sich im Prinzip auch allgemein bei derartigen Applikationen einsetzen Es wurde Wert darauf gelegt nur Steuerelemente zu verwenden die sich auch auf einem Touchscreen problemlos be dienen lassen Drehkn pfe Men s oder Tastaturkurzkombinationen brauchen also nicht ber cksichtigt zu werden 6 5 2 1 Knoten lt label gt Dabei handelt es sich um ein auf die Oberfl cheneigenschaften und den Text frei konfigurierbares Beschriftungsfeld 6 5 2 2 Knoten lt checkbox gt Eine Checkbox ist ein Eingabefeld mit zwei Werten aktiv und inaktiv ersteres durch ein H kchen markiert das dar ber hinaus ber einen Beschriftungstext verf gt 6 5 2 3 Knoten lt radiobutton gt Im Gegensatz zur Checkb
74. onen bzw Ansichten 63 lee 63 Sequentialisierung von Ereignissen 2 224 222 2 2 2 2 2 4404400 64 Embedded POS 2 een 66 Hardware nisse nee 66 Betriebssystem und Laufzeitumgebung urrssnsn4sennnnnnn 67 Zusammenfassung und Bewertung 2244440HH0n4RRn0nnnn 68 Abbildungsverzeichnis u4444400H0nnnBRnnnn nn nn nnnn nn nenn 69 Tabellenverzeichnis ia e ee nee 69 12 12 1 12 2 12 2 1 12 2 2 12 3 12 4 12 5 13 13 1 13 2 13 3 Quellen nn nes 70 B cher und Loseblattsammlungen keen 70 Internetseiten sans 71 Einzelne Seiten zu einem speziellen Thema nn 71 Referenzseiten zu gr eren Themenbereichen 73 Dokumente aaa 74 Quellen f r Programmcode ube 74 GERS ee 75 Anhand ass ke 76 E E 76 XML Beispielkonfiguration nnnnnn00nnnnnnnnn nenn 81 UTF 8 odierung 86 2 Einleitung Computer sind dazu da Probleme zu l sen die wir ohne Computer gar nicht h tten Di GieT1 Sicherlich ist dieser Ausspruch nicht hundertprozentig ernst gemeint jedoch birgt er f r viele Menschen ein St ckchen Wahrheit in sich Auch als Informatiker kann man sich ihm leider nicht immer ganz verschlie en Darum sollte man etwas dagegen unternehmen Und was bietet sich dazu besser an als die Schnittstelle zum Benutzer Client Server Architektur P0 ist eine kooperative Informationsverarbeitung bei der die
75. ox werden bei Radiobuttons Gruppen definiert wobei in je der Gruppe immer nur genau ein Knopf aktiv sein kann 6 5 2 4 Knoten lt button gt Dies sind die Standardschaltfl chen die durch Fingerdruck bedient werden 6 5 2 5 Knoten lt inputfield gt Auf diese Art und Weise wird ein einfaches Eingabefeld dargestellt Beim Darauf klicken wird dann der Eingabedialog mit der Tastatur aktiviert wenn das Feld nicht schreibgesch tzt ist Die gew nschte Bildschirmtastatur und das Verhalten bei n derungen k nnen ber ein Attribut angegeben werden Eine Eingabe alleine von externen seriellen Ger ten vgl 6 5 1 6 ist ebenfalls vor gesehen 35 6 5 2 6 Knoten lt table gt Eine Tabelle besteht aus tabellarisch angeordneten verschiedenen Eingabefeldern sowie ggf Labels als Spalten bzw Zeilen berschrift Spalten bzw Zeilenanzahl sind zur Laufzeit nderbar Die Inhalte werden einer Variablen zugeordnet 6 5 2 7 Knoten lt listbox gt Dieses Steuerelement bietet die M glichkeit aus mehreren Elementen einer Liste auszuw hlen Sowohl der ausgew hlte Text als auch der Index des ausgew hlten Elements k nnen gespeichert werden 6 5 2 8 Knoten lt progressbar gt Mit dieser Anzeige l t sich ein Fortschritt anzeigen Eingaben sind nicht vor gesehen 6 5 2 9 Knoten lt datetime gt Dieses Element entspricht von der Konfigurierung her im wesentlichen einem Label Allerdings wird hier nicht ein freier Text dar
76. r In der Gtk Bibliothek gibt es die M glichkeit Idie Routinen zu registrieren die immer dann aufgerufen werden wenn von der Oberfl che keine Ereignisse zur Abarbeitung vorhanden sind Dieser Mechanismus wurde schlie lich verwendet um die genann ten beiden Probleme zu umgehen 63 7 5 2 Sequentialisierung von Ereignissen W hrend des Programmablaufs werden viele asynchrone Ereignisse erzeugt Diese l sen vielfach Aktionen dies gilt nat rlich auch entsprechend f r das Aktivieren von Ansichten aus bevor die Ausf hrung der bisherigen beendet ist Daher mu ein Verfahren angewandt werden das sicherstellt da beliebig oft Aktionen angesto en werden wobei der ansto ende Thread nicht blockiert wird und die Aktionen immer hintereinander abgearbeitet werden Dies wurde folgenderma en implementiert Die Methode zum Ausl sen von neuen Aktionen activateAction startet einen extra Thread mit einer weiteren Methode activateActionEx die das eigentlich Eintragen bernimmt Ein zus tzlicher Status Thread ber nimmt das Auslesen und die Verar beitung der Aktionen Zur Synchronisation werden zwei Semaphoren ben tigt F r sie wurden jeweils die Dijkstra schen P und V Operationen 1 S 779 implementiert Da f r die Implemen tierung von Threads die pthreads Bibliothek verwendet wurde wurde die P Opera tion mit sem_wait und die V Operation mit sem_post implementiert Der Algorithmus sieht nun folgenderma e
77. rat das Problem auf da gewisse Ab schnitte nur von einem Thread durchlaufen werden d rfen beispielsweise wenn ge meinsame Ressourcen verwendet werden Dies ist auch unter dem Begriff Kriti scher Abschnitt bekannt 59 Kritische Abschnitte wurden in folgenden Zusammenh ngen eingesetzt IfSoftterm Sicherstellen da der Eingabebildschirm nur einmal gestartet wird Ressourcen einer Signalbehandlungsroutine gegen erneutes Auftreten des Signals sch tzen Installation externer serieller Ger te sch tzen so da eine neue Installation erst m glich ist wenn die alte abgeschlossen ist ebenso bei der Installation von Timeout Aktionen Warteschlange f r Aktionen bzw Ansichten Interne Strukturen k nnen bei gleichzeitigem Hinzuf gen und L schen zerst rt werden beim Logging mu eine Ausgabe abgeschlossen sein bevor die n chste be ginnen kann Zugriffe auf Variablen d rfen nur hintereinander erfolgen um die internen Strukturen nicht zu zerst ren IfMulterapi Bibliothek und Verteiler Verbindungsaufbau bzw abbau mu beendet sein bevor erneut eine Verbin dung auf bzw abgebaut werden kann der Zugriff auf den aktuellen Zustand der Verbindung mu synchronisiert wer den beim Logging mu eine Ausgabe abgeschlossen sein bevor die n chste be ginnen kann die beiden Seiten des Zugriff auf den Schreib oder auch Lesepuffer m ssen gegeneinander gesperrt werden Der Kritische Abschnitt wurde un
78. rwendung von Fremd bzw Softwareterminals Sie hei t ifterapi und ist eine Bibliothek welche die TCP Verbin dung zu Fremdterminalschnittstelle der 6020 kapselt Es kann immer nur eine Instanz der Verbindung existieren Sie kann nur unter Windows verwendet werden 6 8 1 1 Probleme mit der bestehenden Bibliothek F r den Einsatz im Projekt IfSoftterm ist die bisherige Bibliothek ifterapi aus folgen den Gr nden nicht geeignet Es kann immer nur eine Verbindung vom 6020 Server aus geben da dieser TCP m ig als Client fungiert und die ifterapi als TCP Server Da davon ausgegangen werden mu da mehr als ein Software Terminal ben tigt propriet res Protokoll der Firma Interflex zur Kommunikation zwischen Terminals und dem 6020 Server 49 wird m te ohnehin eine Programm dazwischengeschalten werden das einerseits mittels der ifterapi den 6020 Server bedient andererseits die Verbindung zu den Ter minals aufrechterh lt Dazu kommt da dieser Verteiler am besten auf dem Rechner l uft auf dem auch der Server des System 6020 l uft da die Terminals von der Hardware bei gr eren Systemen zu schwach sind und ein extra Rechner nicht im mer zur Verf gung steht Dieser ist oft aber kein Windows System sondern eine der unterst tzten Unix Plattformen Ein einfaches Portieren des Code der ifterapi schei det deswegen aus weil die neue Verteiler Applikation den bisherigen Ablauf nicht di rekt bernehmen kann wie
79. t Um die Buchungsschnittstelle IfMulterapi zu verwenden mu ein 6020 Server auf ei nem per TCP erreichbaren Rechner installiert sein Auf einem beliebigen per TCP erreichbaren Rechner mu die Verteilerapplikation der IfMulterapi laufen Der 6020 Server mu so konfiguriert sein da er sich auf den Port des Verteilers verbindet F r die Verwendung der 6020 API mu diese auf dem lokalen System laut deren Do kumentation installiert sein Die IfSoftterm Anwendung mu unter demselben Benut zer laufen wie die 6020 API installiert wurde Au erdem m ssen die bei der Installa tion eingetragenen Umgebungsvariablen verf gbar sein Als Pfad der Bibliothek wird dann der Pfad eingetragen in dem die Datei lib6020api so installiert ist 67 9 Zusammenfassung und Bewertung F r die Programmierung von konfigurierbaren Clients f r Client Server Systeme gibt es keine allgemein verbindlichen Regeln Wie im Sprichwort f hren auch in der Soft wareentwicklung viele Wege nach Rom Genau so viele M glichkeiten gibt es auch solche Clients zu programmieren Im Rahmen dieser Arbeit ist mit dem Interface Action Config Modell ein Denkansatz entwickelt worden mit dessen Hilfe eine solche Programmierung erm glicht werden soll Dieser wurde dann am praktischen Beispiel im Projekt IfSoftterm angewandt und erprobt Er wurde den Anforderungen gerecht Es entstand ein lauff higer Prototyp zur Konfiguration von Benutzerschnittstellen Die notwendigen Sc
80. tarbeiter vorgenommene nderung des Kontostandes In der Praxis k nnen verschiedene Buchungsarten vor kommen die dann den aktuellen Zustand des Mitarbeiters z B an oder ab wesend auf Dienstgang beim Arzt krank Urlaub und verschiedene Konten beeinflussen Folgende Buchungsarten sind verbreitet Kommen Gehen Zu tritt Dienstgang Anfang und Ende Kostenstelle ndern Projekt ndern Zutritt Zeitwirtschaft und Zutrittskontrolle sind oft eng miteinander verbunden Da nicht jeder Wechsel eines Raums oder Geb udes gleichzeitig f r die Zeitwirt schaft von Interesse ist ist es in den entsprechenden Systemen vorgesehen Buchungen vorzunehmen bei denen nur die Berechtigung zum Zutritt gepr ft und im Erfolgsfall die T r ge ffnet wird 11 Terminal Buchungen werden von den Mitarbeitern an sog Terminals vorgenommen Dies sind elektronische Ger te oft auf Mikrocontrollern basierend auf wel chen die Buchungen durchgef hrt werden Diese werden dann ber Netz werke an den Zeiterfassungsserver weitergegeben ist dieser oder die Netz werkverbindung nicht verf gbar werden die Buchungen solange auf dem Ter minal zwischengespeichert Das Zeiterfassungssystem der Firma Interflex kennt dar ber hinaus auch die M glichkeit aus den Terminals alte bereits an den Server abgegebene Buchungen erneut abzufragen Diese werden im Rahmen der Systemkapazit t auf den Terminals extra f r diesen Fall gespei chert Mit diesem als alt
81. ter Unix mittels eines Mutexes und unter Windows mit Hilfe eines Events implementiert 7 4 Warten auf Ressource Oft soll ein Thread solange blockiert werden bis eine bestimmte Ressource verf g bar ist oder ein Timeout eingetreten ist Selbst in den F llen in denen eigentlich kein Timeout ben tigt wird ist er sinnvoll da beim Entblocken in die Logdatei geschrieben werden kann da das Programm noch korrekt l uft der Timeout sollte in diesem Fall allerdings so lange gew hlt werden da weder nennenswert Prozessorlast erzeugt wird noch das Logfile zu gro und un bersichtlich wird 60 Zu diesem Zweck wurde eine Klasse Semaphore erstellt die dies realisiert Sie hat zwei Methoden Wait und Post Wait wartet bis entweder die Ressource verf gbar ist oder ein Timeout aufgetreten ist Wait gibt zur ck ob die Ressource verf gbar ist oder nur der Timeout erreicht wurde Post wird verwendet um dem wartenden Thread anzuzeigen da die Ressource verf gbar ist 7 4 1 Implementierung Die beiden Methoden sind unter den verschiedenen unterst tzen Plattformen unter schiedlich implementiert da die verwendeten Mittel der Interproze kommunikation jeweils nur auf einem Teil der Systeme zur Verf gung stehen Methode Wait Betriebssystem Bibliothek Vorgehen Windows API WaitForSingleObject hat Timeout kernel32 lib eingebaut Linux pthread sem_wait f r Timeout wird extra Thr
82. teuerung lokaler Schnittstellen z B Ausweisleser an serieller Schnittstelle bie tet da HTML per se kein Ausf hren von Code vorsieht und ber Client seitiges Scripting kein portabler Code f r verschiedene Plattformen m glich ist 5 2 3 Bestehende fertige Modelle 5 2 3 1 Model View Controller Im Zuge von Smalltalk 80 wurde von Adele Goldberg und anderen ein Framework namens Model View Controller A 1 G0IA2 entwickelt notific ai ons Display Keyboard Mouse UnB01 ABBILDUNG 1 MODEL VIEW CONTROLLER MODELL Es wurde allgemein f r das Erstellen von Programmen mit graphischer Oberfl che entwickelt und nicht speziell f r konfigurierbare Applikationen auf Touchscreens Grundsatz dieses Modells ist die Trennung in die Darstellung der Daten view die Interaktion des Benutzers controller und den internen Zustand der Applikation model 19 5 2 3 2 Model View Presenter Das Model View Controller Modell wurde in den folgenden Jahren weiterentwickelt ABBILDUNG 2 MODEL VIEW PRESENTER MoDeLL UN 02 Der Controller und die View sind in der Praxis oft verbunden vgl Java Swing Daher wurden Controller und Model zum Presenter zusammengefa t TI Die View stellt die Daten des Models dar Der Presenter pa t die Daten im Model aufgrund von Be nutzereingaben an 5 2 4 Entscheidungsfindung In der Praxis lassen sich Oberfl che und Logik nur schwer trennen Derjenige der das System konfig
83. tp www tcl tk net 08 04 2002 nicht bekannt Perl http www perl com 08 04 2002 nicht bekannt Python http www python org 08 04 2002 nicht bekannt XML http www w3 org XML 23 04 2002 nicht bekannt XML http www w3 org TR 1998 REC xmI 19980210 html 04 06 2002 nicht bekannt Apache XML Project u a Xerces http Ixml apache org 05 06 2002 nicht bekannt DTD Tutorial http www w3schools com dtd 07 06 2002 nicht bekannt Gtk http www gtk org 07 06 2002 nicht bekannt QT http doc trolltech com 3 0 07 06 2002 Stefan M nz HTML Dateien selbst erstellen http selfhtml teamone de 10 06 2002 73 Ref11 12 3 HeeD1 IFi01 IFi02 IFi03 IFi04 IFi05 IFi06 IFi07 PCM01 12 4 SteG1 Unb07 74 nicht bekannt Unicode http www unicode org 27 06 2002 Dokumente Dimitri van Heesch doxygen Manual for version 1 2 9 1 Core Team Interflex Beschreibung eines Anwendungsszenarios f r easy production EVA Team Interflex Memorandum easy production Interflex Werkerdialoge Interflex OEM Handbuch f r Berechtigungsleser P60 USB RS 232 485 Stand 4 2002 Interflex Modul 928 Buchungen Online von Fremdterminals lesen und verarbeiten Peter Gabrian 6020 API Application Programming Interface f r System 6020 Version V1 51 Stand 4 2002 Valerie Bory etal Datenbank Grundlagen f r IF Produkte Dictonary German English W rterbuch Deutsc
84. ttp www codeproject com cpp using_namespaces asp 21 06 2002 Norbert Richter DCE Glossar http www fujitsu siemens es servers dce dce_de dcegloss dcegl_m htm 18 07 2002 Norbert Richter DCE Glossar http www fujitsu siemens es servers dce dce_de dcegloss dcegl_t htm 18 07 2002 nicht bekannt Model View Controller http www object arts com EducationCentre Overviews MVC htm 07 03 2002 nicht bekannt Model View Presenter Framework http www object arts com EducationCentre Overviews ModelViewPresenter htm 07 03 2002 nicht bekannt Unicode Code Charts http www unicode org charts 24 04 2002 nicht bekannt Client Server Architektur http gd tuwien ac at study hrh glossar 1 2_17 htm 22 05 2002 nicht bekannt Robolab http www lego com dacta robolab default htm 22 05 2002 nicht bekannt AIX Version 4 3 Base Operating System and Extensions Technical Reference Volume 1 http www Iinl gov computing tutorials workshops workshop pthreads man pthread_mutex_lock html 16 07 2002 E James Whitehead jun Murata Makoto RFC 2376 XML Media Types http www ietf org rfe rfc2376 txt 27 06 2002 YerF1 12 2 2 Refo1 Refo2 Ref03 Ref04 Ref05 Ref06 Ref07 Ref08 Ref09 Ref10 F Yergeau RFC 2279 UTF 8 a transformation format of ISO 10646 http www ietf org rfc rfc2279 txt 10 05 2002 Referenzseiten zu gr eren Themenbereichen nicht bekannt TCL TK ht
85. uf eine Funktion in einer dynamischen Bibliothek kann anhand der Na men der Bibliothek und der Funktion mit Hilfe der API Funktionen dlopen und dlhandle problemlos gewonnen werden Allerdings gibt es unter C zwar die M glichkeit Funktionen mit einer Variablen Anzahl Parameter zu schreiben ber die ANSI C Makros va_list etc allerdings ist es nicht m glich eine beliebige Anzahl 41 Parameter zu bergeben Es g be die M glichkeit die Parameter von Hand auf dem Stack zu legen allerdings m te dies dann in Inline Assembler geschrieben werden So w re die Wartbarkeit und Portabilit t des Programms nicht mehr gew hrleistet Alternativ dazu kann man auch einfach davon ausgehen da alle Parameter 32 bit Werte sind und es nicht mehr als 10 bergabeparameter gibt Dann k nnte man die Prototypen fest mit long Parametern definieren und dann die bergabeparameter auf long casten Dieses Verfahren gen gt f r einen berwiegenden Teil der bestehenden dynamischen Bibliotheken und deckt alle Funktionen der 6020 API ab 6 6 5 Schnittstelle zum Anschlu an die Program mierschnittstelle des System 6020 api6020 Da die 6020 API unter Linux als dynamische Bibliothek implementiert ist deckt die unter 6 6 4 beschriebene Schnittstelle alle notwendige Funktionalit t ab Dies wurde mit einer geeigneten Beispielkonfiguration erfolgreich getestet 6 7 Diverses 6 7 1 Zeichens tze und Unicode Auch bei Beschr nkung auf den europ isch
86. und l t sich unabh ngig von der Kenntnis des Protokolls verwenden Intern wird bei der Initialisierung ein extra Thread generiert der die Verbindung zum Verteiler bedient Er erh lt die Daten mittels derselben Pufferung wie innerhalb des Verteilers Die entsprechenden Klassen k nnen hier wiederverwendet werden und brauchen nur einmal gepflegt werden Au erdem bleiben die Buchungen auch bei einem Abbruch der Verbindung zum Verteiler erhalten und k nnen nach Wiederauf bau nachgesandt werden So sind alle Teile f r sich genommen offline f hig 54 6 8 2 Auswertung mathematischer Ausdr cke F r das Parsen der mathematischen Ausdr cke konnte ich eine frei verwendbare Bibliothek einsetzen Sie deckt den geforderten Umfang voll ab und bietet sogar noch mehr Funktionalit t Die Bibliothek unterst tzt die Grundrechenarten Addition Subtraktion Multiplikation Division einschlie lich richtige Pr zedenz die beiden Vorzeichen die Konstante z die Funktionen Sinus Kosinus Tangens Arcus Sinus Arcus Kosinus Arcus Tan gens Zehnerlogarithmus Quadratwurzel die Operatoren Potenzieren Integer Divi sion Integer Modulo sowie die Zahlen im dezimalen hexadezimalen und bin ren Format Auch das Setzen von Klammern wird unterst tzt 6 8 3 Konvertierung UCS2 nach UTF 8 Das Hilfsprogramm ucs2toutf8 akzeptiert genau einen Kommandozeilenparameter Eine ganze Zahl die von der C Funktion strtol erkannt wird d h normal als
87. und l scht Damit es kein gegenseitiges berschreiben der internen Verwaltungsstrukturen der Liste gibt mu sichergestellt werden da immer nur eine Seite eine nderungsprozedur ausf hrt Diese Problematik wird normalerweise durch Standardwerkzeuge wie die Message Queue oder die Semaphore gel st In diesem speziellen Fall kommt hinzu da die Warteschlange auf der Festplatte ge speichert werden mu um mehr Sicherheit bei Stromausf llen oder Programmab st rzen zu haben Au erdem k nnten auf diese Weise alle Daten gepuffert werden solange keine Verbindung zum Server besteht und sichergestellt werden da die einzelnen Datens tze gleich auf Festplatte protokolliert werden Eine L sung hierf r ist die Daten statt sie im Speicher zu halten satzweise ans En de einer Datei zu schreiben und auf der anderen Seite am Anfang der Datei zu ent nehmen Bereits versandte Dateien k nnen dann im Datensatz gekennzeichnet wer den Bei einem Abbruch des Programms k nnte man dann auf den ersten ungelese nen Satz positionieren und so an der richtigen Stelle weitermachen Die Verwendung von einfachen Textdateien erwies sich als problematisch Da alte S tze irgendwann einmal automatisiert gel scht werden sollen m te die Datei von Hand durchsucht werden bis ein neuerer als der letzte zu l schen Datensatz gefun den werden kann Dazu w re aber die Datei gesperrt und k nnte eine gewisse Zeit nicht f r die Pufferung verwendet werden
88. uriert wei welche Abl ufe es gibt und welche Oberfl chenele mente welche Aktionen ausl sen sollen Dies gilt es auch in der Konfigurierung des Systems abzubilden Die beiden oben genannte Modelle verm gen dies leider nur eingeschr nkt da sie auf die Programmierung im Allgemeinen und nicht auf die Kon figuration von Abl ufen ausgelegt sind Dar ber hinaus sollten folgende Kriterien erf llt sein Die Schnittstellen sollten klar definiert sein von einer richtigen Programmierung sollte zugunsten einer flexiblen Konfiguration abgesehen werden Andererseits m ssen sie so flexibel sein da die Funktionalit t des Systems dahinter auch m glichst weitgehend ausgenutzt werden kann 20 5 3 Das Interface Action Config Modell Zur Bew ltigung all dieser eben genannter Abl ufe habe ich die Modelle Model View Controller und Model View Presenter weiterentwickelt Die reine Aufteilung in die ver schiedenen Module ist noch um einen Ablauf der einzelnen Aktionen erg nzt Es er hielt den Namen Interface Action Config Modell 5 3 1 Vorstellung des Modells A N fe N Start Ende Me d NS I 4e beendan EN Sr N Be N gt Gg Keng ar 4b l st aus wi Benutzerschnittstelle interface 1 aktiviert Ge J a Ansicht der Oberfl che PRESSE SEE E view dai aktiviert H I g T J Aktion Funktionen f r die 2 startet
89. w gt lt text id inputok gt Eingabe in Ordung lt text gt lt text id inputnotok gt Eingabe fehlerhaft lt text gt lt text id fieldname gt Feld lt text gt lt text id Help_Back gt zur ck lt text gt lt msgbox gt lt label x 0 y 0 width 640 height 400 color 0000FF backcolor CCCCCC font sans bold 24 visible 1 align left gt lt okbutton x 0 y 400 width 640 height 80 color FF0000 backcolor 333333 font sans bold 24 label okay visible 1 gt lt msgbox gt lt general gt lt prog gt Dies ergibt dann die folgenden Bildschirme Member of the Ingersoll Rand Group MB IfSoftterm interflex_ A 2002 Interflex Datensysteme GmbH amp Co KG IfSoftterm v 1 0 2 ABBILDUNG 20 SCREEN SHOT INFO 84 ABBILDUNG 21 SCREEN SHOT STARTVIEW ABBILDUNG 22 SCREEN SHOT ANSWERVIEW ABBILDUNG 23 SCREEN SHOT FFLINEVIEW 85 13 3 UTF 8 Codierung Die UTF 8 codiert Unicode Zeichen UCS so da sie mit normalen 8 bit Zeichen dargestellt werden k nnen Eine Beschreibung des Unicode Zeichensatzes kann bei Unb03 heruntergeladen werden Die Umwandlung von Unicode nach UTF 8 und zur ck ist in RFC 2279 Ve folgenderma en definiert Unicode Zeichen UTF 8 Sequenz 0000 0000 0000 0007F OXXXXXXXp 0000 0080 0000 OT7FF 110xxxxxp 10XXXX
90. xterner Programm bell 40 Schnittstelle zur Verwendung seriell angeschlossener Ger te 40 Schnittstelle zum Anschlu an System 6020 Buchungsschnittstelle fterapi bzw IMulterapi u0000040440n nen nnnnnnennnnnnnnnnnnnnnnnnnennn 41 Schnittstelle zum Aufruf von Funktionen in dynamischen Bibliotheken41 Schnittstelle zum Anschlu an die Programmierschnittstelle des Sysiem 5020 apPl6020 u rende 42 Diverses ade 42 Zeichens tze und Unicode AAA 42 Parsen V N STINGS eerste ESLEESE ESEEESCEERLEESLEEELE EES CERERE RENEE 43 Hilfsprogramme und bibliotheken smnnnnBennnnnnn 49 ifterapi bzw WMulterapt o00nnnnn0nnnnnnannnnnnnnnnnnsnnnnnnnnnnnnnnsrnnnensnnrnenennne 49 Auswertung mathematischer Auscrucke AAA 55 Konvertierung UCS2 nach UTF 8 4 204 0000 400 55 Test der seriellen Schnittstelle Rennen 55 Aufruf von dynamischen Bibliotheken AAA 56 Erweiterb rkeil nn 56 KC 56 Ausgew hlte Probleme der Systemprogrammierung 57 Gepuffertes Erzeuger Verbraucher Problem 57 Aufruf von Unterprogrammen ssnnnnn0nnnnnnnnnnn nenn 58 Implementierung WEE 58 Probleme ns ee ee ee ee ee 58 et e EE 59 Kritische Abschnitte u 44404440H0nnnnHRRnnnnn nennen nun 59 Warten auf Ressource uuuuusessennnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn nn 60 Implementierung cs ER 61 Hintereinanderabarbeiten von Akti
Download Pdf Manuals
Related Search
Diplomarbeit diplomarbeit diplomarbeit beispiel diplomarbeit drucken diplomarbeit bbs diplomarbeiten24 diplomarbeit mui diplomarbeit musiktherapie diplomarbeit binden lassen diplomarbeitsthemen diplomarbeit englisch diplomarbeit vorlage diplomarbeitsdatenbank login diplomarbeit drucken lassen diplomarbeit schreiben lassen diplomarbeit datenbank
Related Contents
Cuenta bancaria Beneficiaria Zebra PWRS-14000-251R Samsung Galaxy Note Bruksanvisning Règlement jeu-concours M6 MOBILE BY ORANGE Jeu Sucker SLIDE COMPOUND MITER SAW Model C 12LSH Equip 3m USB 2.0 AM/AF 取扱説明書 Installation Guide for the 2WD Low Range kit for the Copyright © All rights reserved.
Failed to retrieve file