Der Software-Bauskasten
OptiBASE OptiSPIDER
OptiSCHEDULE OptiBRIDGE
OptiWILLI Sonstige Tools und Techniken
 
Warum bei der Realisierung technischer Lösungen heute kein Weg mehr an einem Baukasten-System (manche Leute sagen auch Modularität dazu) vorbei führt, ist unter diesem Link ausführlicher beschrieben.
Schwieriger war für uns schon die Frage, wie so ein Baukasten aussehen könnte, wo wir doch kundenspezifische Lösungen anbieten, von denen jede ein Unikat ist, dazu noch für ein relativ breites Anwendungsgebiet mit sehr unterschiedlichen Aufgabenstellungen. 
Hier half nur eingehendes und kritisches Betrachten der zu realisierenden Anforderungen sowie unserer eigenen Entwicklungsprozesse, um herauszufinden, welche identische Strukturen einem Großteil der von uns realisierten Lösungen immer wieder zu Grunde liegen.
Auf diese Weise sind eine Reihe universeller Komponenten entstanden, allerdings - der geforderten Unabhängigkeit von der konkreten Anwendung wegen - auf einem recht hohen Abstraktions-Niveau.
Die wichtigsten dieser  Komponenten sind nachfolgend kurz beschrieben.
 

Eine Beschreibung zu unserem
Hardware-Bauskasten findet sich hier.

Seitenanfang




OptiBASE
OptiBASE ist die zentrale Komponente unserer kundenspezifischen Lösungen. Sie bildet sozusagen das Rückgrat. Alle Kernfunktionen, die Daten- und Datenbankzugriffe betreffen, sind hier implementiert. Außerdem alle wichtigen Kernfunktionen, die ein verteiltes Software-System benötigt, um professionelle Anwendungen damit zu erstellen.
Um das Datenhandling von der jeweils zu realisierenden Anwendung zu lösen, sind die meisten Datenstrukturen (Datenbanktabellen, Sichtweisen für Datenzugriffe, Objektpakete (s.u.), usw.) über Metadaten definiert.
Ein zentrales Konzept von OptiBASE sind Objektpakete. Ein Objektpaket ist eine Struktur, die es erlaubt, eine logisch zusammengehörende Ansammlung von Daten zu beinhalten. Dabei kann es sich um strukturierte und unstrukturierte Daten handeln. Außerdem eine Reihe von Zusatzinformationen, z.B. für den Versand des Objektpakets im Netzwerk oder Status- und Fehlerinformationen.
Objektpakete können innerhalb des Systems beliebig generiert, mit Daten gefüllt, versendet, bearbeitet und vernichtet werden. OptiBASE stellt dafür alle benötigten Funktionen zur Verfügung.
Da ein Objektpaket auch alle Meta-Informationen über seine Daten beinhaltet, und die Datenbank-Funktionen von OptiBASE diese Meta-Informationen auswerten und nutzen, können die meisten Datenbankzugriffe mit dem standardisierten Satz an Datenbank-Funktionen von OptiBASE realisiert werden. 
Übrigens erfolgen die Datenbankzugriffe von OptiBASE über ADO. Damit ist OptiBASE nicht an eine bestimmte Datenbank gebunden. In der Tat setzten die ersten Anwendungen unter OptiBASE hauptsächlich auf Access-Datenbanken auf, während derzeit schwerpunktmäßig der MS SQL-Server verwendet wird.
Eine weitere Einrichtung von OptiBASE ist die TOS (table of symbols). Hierüber werden systemweit gültige Symbolnamen aufgelöst. So werden z.B. beim Einrichten eines Systems symbolische Computernamen vergeben, welche erst über die TOS mit realen (Netzwerk-) Computernamen verknüpft werden. Damit kann die logische Grundkonfiguration eines Systems erhalten bleiben, selbst wenn sich die physikalische Umgebung ändert.
OptiBASE stellt auch umfangreiche und sehr professionelle Logging-Möglichkeiten zur Verfügung. Jede Anwendung kann Anwendungsereignisse und auftretende Laufzeitfehler in je einem privaten und einem globalen Log protokollieren. Diese Kombinationsmöglichkeiten, sowie verschiedene Log-Level sind über die TOS konfigurierbar. Da auftretende Laufzeitfehler immer in eine Log-Datei geschrieben werden, lassen sich eventuell auftretende Fehler schnell und sicher lokalisieren.
Jede Software-Anwendung enthält heute eine Vielzahl von einstellbaren Programm-Parametern. Die Aufruf- und Speichermöglichkeiten für diese Parameter und ebenso ein Editor um diese Parameter zu ändern, sind integraler Bestandteil von OptiBASE.
Sehr häufig kommen auch flache Listen vor, in denen der Anwender eine Reihe von Werten vorgibt, aus denen später, z.B. bei einer Eingabe mittels einer Listbox ausgewählt werden kann. Auch hierfür beinhaltet OptiBASE standardmäßig Speichermöglichkeiten und einen Editor. 
Keine professionelle Anwendung kommt heute noch ohne Benutzerverwaltung aus. Auch diese ist deshalb fester Bestandteil von OptiBASE. Mit der zentralen Benutzerverwaltung lassen sich alle Anwendungen unter OptiBASE verwalten (selbst Anwendungen auf unseren Terminals der OptiTERM-Reihe und auf Funkscannern von Symbol oder BARTEC sind integriert). Für unbegrenzt viele Benutzer lässt sich hier beliebig fein (bis auf jede einzelne Funktion herunter) festlegen, welcher Benutzer was darf und was nicht.
Darüber hinaus stellt OptiBASE eine ganze Reihe sinnvoller Hilfsfunktionen bereit. Als Beispiel sei hier nur die Vergabe von systemweit eindeutigen Nummern (z.B. Chargennummern, o.ä.) erwähnt. Unter OptiBASE können beliebig viele Nummernkreise (aus Präfix, Suffix, Darstellungsformat, Startwert und Offset) parametriert werden, welche dann für die einzelnen Anwendungen auf Anfrage eine systemweit eindeutige Nummer generieren.
Seitenanfang

OptiSPIDER
Zu beinahe jeder Lösung bei der Daten erfasst werden, sind auch Auswertungen über diese Daten erforderlich. Dafür gibt es unser Report-Tool OptiSPIDER. Über die reinen Report-Funktionen hinaus kann OptiSPIDER die selektierten Daten auch noch in verschiedene Formate umwandeln und für einen Daten-Export zur Verfügung stellen.
Die wichtigsten Funktionalitäten  von OptiSPIDER sind:
- Bereitstellung eines Auswahldialogs für die gewünschte Auswertung.
- Einblenden des zugehörenden Selektions-Dialogs (kann als DLL beliebig hinzugefügt werden).
- Datenselektion (Erzeugung einer Zwischendatei im XML-Format).
- Ggf. Anzeige eines Ausgabe-Dialogs:
- Ausgabe wahlweise auf Bildschirm, Drucker, in eine Datei, oder als zu versendende Viewer-Datei, welche an einem anderen Ort mit dem zugehörigen Viewer angesehen werden kann.
- Alternativ auch Ausgabe als Export-Datei.
- Beliebiges Hinzufügen weiterer Auswertungen zu einer Anwendung im laufenden Betrieb, durch Hinzufügen einiger Dateien.
- Optional: WYSIWIG Designer-Modul für den Entwurf der Ausgabe-Layouts.
 Darstellbar sind:
- fixe und variable Texte in allen Windows-Schriftarten
- Barcodes (alle gängigen Typen)
- Grafische Elemente, wie Linien, Rechtecke und Kreise als Umriss oder als Fläche
- Tabellen
- Grafiken (alle gängigen Typen)
 
Seitenanfang





OptiSCHEDULE
In jedem System fällt eine Reihe zeitabhängiger Aufgaben an. Von der Einmal-Aktion zu einem bestimmten Zeitpunkt, über die tägliche Datensicherung bis hin zum zyklischen Abfragen von Datenquellen im Sekundentakt.
Bei OptiSCHEDULE lassen sich beliebig viele Aufgaben in eine Liste einreihen und die zugehörigen Bearbeitungsintervalle, bzw. -zeitpunkte angeben. Dabei kann auch konfiguriert werden, ob das nächste Intervall sofort, oder erst wieder nach Beendigung der gestarteten Aktivität beginnt. 
Über den integrierten OptiAGENT lassen sich nicht nur Programme, sondern auch Funktionen in DLLs starten, bzw. über COM+/DCOM lokale oder entfernte Objekte instanzieren. 
Über ein Administrations-Programm und integrierte TCP/IP-Funktionalitäten können OptiSCHEDULE-Installationen auf verschiedenen Workstations remote administriert, d.h. parametriert, gestartet, gestoppt, usw. werden.
Seitenanfang

OptiBRIDGE
Mittels OptiBRIDGE sind unsere Lösungen in der Lage, systemübergreifende Kommunikation und Datenaustausch zu betreiben. Module sowohl für die PC-Welt als auch für unsere OptiTERM-Reihe versetzen uns in die Lage, selbst einen Schalter an einer beliebigen Stelle im System so einzubinden, dass z.B. beim Betätigen des Schalters ein bestimmter Eintrag in eine SQL-Datenbank erfolgt.
Über die OptiBRIDGE können alle Modelle der OptiTERM-Reihe, und über deren Schnittstellen und I/Os andere Geräte in Systemlösungen eingebunden werden.
OptiBRIDGE basiert auf dem Standard TCP/IP und benutzt ein eigenes Datenformat, mit dem gleichzeitig Steuerinformationen, strukturierte Daten (z.B. Datensätze) und unstrukturierte Daten (z.B. ein Binärdatenblock) übertragen werden können.
Über ein umfangreiches Set an vordefinierten Funktionen können OptiBRIDGE-Clients vielfältige Funktionen der PC-Welt nutzen, u.a.:
- Datum und Uhrzeit synchronisieren
- Dateien lesen, schreiben, kopieren, verschieben, löschen
- Datenbanken lesen und schreiben, Datenbankabfragen ausführen
- PC-Programme starten
- auf Fremdsysteme (z.B. UNIX oder IBM AS/400) zugreifen
Durch eine ausgeklügelte Struktur können die Aufgaben, welche auf einem PC bei der Anfrage eines OptiBRIDGE-Clients ausgeführt werden, beliebig fein strukturiert werden. Unterschieden wird nach Client, Anwendung, Version und Funktion. So können bestimmte Funktionen differenziert auf Client-Ebene zugeordnet werden, andere global auf Anwendungs-Ebene und ebenso sind gemischte Definitionen möglich.
Durch die Berücksichtigung der Version können bei Weiterentwicklungen Teilsysteme mit unterschiedlichen Versionen parallel betrieben werden.
- Über den integrierten OptiAGENT lassen sich Funktionen in DLLs starten, bzw. über COM+/DCOM lokale oder entfernte Objekte instanzieren. Damit ist das System universell erweiterbar.
 
Seitenanfang





OptiWILLI
OptiWILLI ist ein Makro-Interpreter und wurde ursprünglich für komplexere Aufgaben bei der automatischen Software-Installation entwickelt. Mittlerweile ist er jedoch ein sehr universelles Werkzeug geworden.
OptiWILLI stellt Funktionen auf relativ hohem logischem Niveau zur Verfügung und kann von uns jederzeit beliebig erweitert werden.
Dabei besitzt er eine ganze Reihe von Spezialfeatures, so kann er z.B. an einem bestimmten Punkt der Makro-Ausführung den Rechner neu booten und danach die Ausführung an dieser Stelle fortsetzen. 
Ein wichtiger Anwendungsfall für OptiWILLI ist immer dann gegeben, wenn bestimmte, skriptgesteuerte Abläufe auf keinen Fall vom PC-Anwender manipulierbar sein sollen. Im Gegensatz zu den gängigen Skriptsprachen können die Skripte für OptiWILLI nämlich auch codiert abgelegt werden. Der Interpreter erkennt dies und decodiert die Skripte vor der Ausführung automatisch.
 
Seitenanfang

Sonstige Tools und Techniken
Delimiter-Strings:     Diese von uns entwickelte Technologie ist ein hervorragendes Mittel, wenn es darum geht, Informationen zwischen unterschiedlichen Teilsystemen auszutauschen. Delimiter-Strings sind textbasierende Datenpakete. Sie können außer den Nutzinformationen auch zusätzliche Meta-Daten enthalten (2D-Delimiter-Strings) und müssen sich daher nicht streng an eine Struktur halten.
Delimiter-Strings hatten wir bereits entwickelt, bevor es XML gab, inzwischen kann die Aufgabe der Delimiter-Strings zunehmend durch Einsatz des XML-Formats übernommen werden.  Eine Ausnahme bilden aber weniger leistungsfähige, Mikrocontroller-basierende Clients, für die das XML-Format zu komplex  ist, so dass wir dort bevorzugt immer noch Delimiter-Strings einsetzen. 
RemoteStarter:     ist ein Werkzeug, mit dem sich Anwendungen auf einem PC im Netzwerk von einem anderen PC aus starten lassen. RemoteStarter basiert auf dem Standard-Protokoll TCP/IP und macht die angegebene Funktionalität unabhängig von COM+/DCOM.
Serial-IO:     universelle, umfangreich konfigurierbare Komponente für die Ansteuerung von Geräten mit serieller Schnittstelle, u.a. Scanner, Waagen, Drucker, Magnetkartenleser, ...
OptiAGENT:    Dieser lässt sich mit einer Reihe anderer Werkzeuge aus dem Baukasten von !ASCO kombinieren. Über den OptiAGENT lassen sich Funktionen in DLLs starten, bzw. über COM+/DCOM lokale oder entfernte Objekte instanzieren. Damit sind Teilsysteme, wenn sie die Möglichkeit besitzen, mit OptiAGENT zusammen zu arbeiten, universell erweiterbar.
OptiPRINT:     Diese Komponente ist in der Lage, eine ganze Reihe von Barcode- und Etikettendruckern, welche an sich eine unterschiedliche Druckersprache haben, von einer logisch einheitlichen Schicht aus, anzusteuern. Damit können Anwendungen teilweise von der Hardwareabhängigkeit des verwendeten Druckers entkoppelt werden.
 
Seitenanfang





© Copyright 2003, 2004 by !ASCO - Systemhaus für Automatisierung, Datenerfassung und Kommunikation (Stand 16.03.2004)