ExsoFlow Workflow & IntegrationServer technische Information
1. ExsoFlow
Workflow- & IntegrationServer
Die Schaffung einer einheitlichen, einfach zu
verwaltenden Lösung für die verschiedensten
Integrationsaufgaben in und zwischen
Unternehmen war unser zweiter Anspruch bei der
Entwicklung von ExsoFlow.
Der erste: eine leistungsstarke Datenhaltungs- und
Workflow-Instanz für ExsoForm-Vorgänge
anzubieten.
Konzept der ExsoForm-Vorgänge
ExsoForm ist eine Workflow-Lösung. Sie basiert auf XMLDatensätzen, die zur Darstellung auf dem Bildschirm mit einem
XSL-Formular verknüpft werden.
Durch dieses flexible Mapping steht bei ExsoForm der Datensatz
oder der „Vorgang“ im Mittelpunkt, nicht (nur) das Formular.
Was dem Anwender gleichgültig sein mag ist für die Integration in
eine neue oder bestehende Softwarelandschaft essentiell: zum einen
kann ExsoForm nicht nur eigens für die Lösung erstellte Daten
anzeigen sondern eben XML-Dateien aus beliebigen Quellen.
Und diese Daten kann ExsoForm natürlich auch wieder an andere
Systeme weitergeben.
ExsoForm ist dokumentenzentriert. Ähnlich einer Tabellenkalkulation oder einer Textverarbeitungslösung werden Dateien also
geöffnet und gespeichert - mit dem Unterschied, dass das Speichern
nicht notwendig in eine Datei erfolgt sondern einen Sendevorgang
an den ExsoFlow-Server darstellt.
ExsoForm bettet die Vorgangsdaten in ein XML-Dateiformat ein,
dass zusätzlich Anlagen und Metadaten enthält - und: eine
Abb.: Das ExsoForm-Datenmodell
komplette Versionierung. Damit ist aus der Vorgangsdatei selbst
jede signierte Vorgangsversion jederzeit ersichtlich.
Gegenüber einem System, das als Browserversion angeboten wird
oder im Client-Server-Betrieb arbeitet bietet das zwei Vorteile:
zum einen kann ein ExsoForm-Vorgang ohne weiteres ohne
Internet-Verbindung - zum Beispiel auf Notebooks - bearbeitet
werden. Sogar ganze Listen von Vorgängen können ausgecheckt,
offline bearbeitet und wieder eingecheckt werden. Das macht
ExsoForm besonders für Einsatzgebiete interessant, bei denen eine
durchgängige Internet-Verbindung nicht oder nur mit geringer
Bandbreite zur Verfügung steht. Das ist beileibe nicht nur bei
Baustellen von Eisenbahntunneln der Fall sondern häufig im
Service- oder Vertriebs-Außendienst. Oder beim Einsatz in
Produktionsstätten. Hier sind WLAN und WiFi oftmals durch
elektrische Felder gestört, die von Maschinen erzeugt werden oder Internet-Verbindungen sind für Außenstehende schlichtweg
nicht erlaubt um Geschäftsgeheimnisse zu schützen.
Wenn Sie sich in Zukunft noch einmal über Leute wundern
sollten, die auf dem Parkplatz von Fastfood-Ketten im Auto sitzen
und mit ihren Notebooks arbeiten ohne etwas zu essen: sie nutzen
deren kostenfreies WLAN für den Zugriff auf ihre Firmendaten
und erfassen dort nach, was sie beim Besuch ihrer Kunden
provisorisch notiert haben. Mit ExsoForm stellen Sie Ihre
Dokumente einfach in die Sendewarteschlange.
Datenhaltung mit dem ExsoFlow-Server
Ab einer bestimmten Größenordnung bekommt die
Datenhaltung der Vorgangsdateien zunehmende Bedeutung.
Dabei geht es um die klassischen zwei Bereiche OnlineTransaktion (also das Verarbeiten von Daten zur Ausführung von
Geschäftsprozessen) und Online-Analyse (oder klassisch:
Statistiken).
Dass die Datenmodelle in ExsoForm flexibel und vor allem leicht
erweiterbar sind sprach im Bereich Speichern und Auffinden von
Vorgängen gegen den Einsatz einer klassischen Datenhaltung auf
SQL-Basis. Ebenso, dass Anlagen zu Vorgängen leicht einige
Megabyte groß sein können - etwa eingescannte Rechnungen,
PDF-Dateien oder Bilder. Eine Ablage im klassischen Dateisystem
stellte vor dem Hintergrund einer einfachen und sicheren
Datensicherung keine Alternative dar.
Die Wahl fiel daher auf die moderne NoSQL-Datenbank
MongoDB, die sich in diversen Großprojekten bis hin zum
Internet-Shop eines großen deutschen Bekleidungs-Versenders
oder diversen Immobilien-Portalen bewährt hat. Dass diese
Lösung zusätzlich hochverfügbar konfiguriert werden kann, stellte
einen weiteren Pluspunkt dar.
Für die Datenanalyse hingegen ist eine NoSQL-Datenbank eher
ungeeignet. Hier wird für die Vorbereitung der
Analysedimensionen üblicherweise mit SQL gearbeitet. Der
2. ExsoFlow-Server bietet mit dem Statistik-Modul daher eine
optionale Funktionalität an, um die Vorgangsdaten auf SQLDatenbanken zu transferieren, wobei die Tabellenschemata anhand
des Datenmodells automatisch gepflegt werden und Master-DetailVerbindungen über Primär- und Fremdschlüssel sauber abgebildet
werden.
Auf diesem Ordner aufbauend können Sichten definiert werden, die
den Ordnerinhalt nach verschiedenen Kriterien filtern. Solche
Kriterien können sein der aktuelle Arbeitsschritt, der Status eines
Dokuments, beliebige Feldinhalte, der letzte oder aktuelle
Bearbeiter etc.
Workflow-Modell
ExsoForm/ExsoFlow bieten ein linearen Workflow mit
Sprungmöglichkeiten an. Ein Vorgang durchläuft also das
Workflow-Modell schrittweise, wobei einzelne Schritte
übersprungen oder wiederholt werden können. Wenn ein Vorgang
in einen anderen Schritt weitergeleitet wird geschieht dies durch
eine Statuszuweisung mit digitaler Signatur. In welche Schritte ein
Vorgang weitergeleitet werden kann richtet sich nach dem aktuellen
Zustand, nach der Berechtigung des Anwenders sowie nach
festzulegenden Feldinhalten, die auch mit Werten des Anwenders
abgeglichen werden können (Beispiel: Freizeichung einer
Eingangsrechnung nur, wenn dem Anwender eine Berechtigung
Abb: Konfigurieren privater Sicht-Ordner
Diese Filter können zum Teil auch dynamisch eingesetzt werden wie
zum Beispiel eine Einschränkung auf Vorgänge des „aktuellen
Benutzers“ oder Vorgänge mit Felddatum „größer 1 Monat“ etc.
Der Zugriff auf diese Sicht-Ordner kann auf bestimmte
Benutzergruppen/Abteilungen eingeschränkt werden, so dass
beinahe alle Berechtigungskonzepte abbildbar sind.
Zusätzlich können Anwender private Sicht-Ordner anlegen um ihre
Arbeitsaufgaben nach Wunsch zu organisieren.
Datumsfelder aus dem Datenmodell können dazu verwendet
werden, Vorgänge in einer Planungstafel zum entsprechenden
Ordner darzustellen (z.B. alle nicht erledigten Supporteinsätze eines
Tages).
Internet,WebServices, Cloud-Computing
Abb: Workflow-Modell in ExsoForm
mindestens in Höhe des Rechnungsbetrags zugewiesen ist).
Die bewusst einfach gehaltene Workflow-Systematik bringt in der
Praxis zwei Vorteile:
? sind die Sachbearbeiter in der Lage, den Workflow
zum einen
grob komplett zu beherrschen und jedenfalls den letzten und den
nächsten Schritt eines von ihnen bearbeiteten Vorgangs zu kennen.
?
zum anderen verleitet die Systematik nicht zu unüberschaubaren
Gestaltungen in der Planungsphase.
Durch die Möglichkeit, Schritte zu überspringen lassen sich
Verzweigungen wie zusätzliche Genehmigungen etc. ohne weiteres
abbilden.
Die Kommunikation zwischen ExsoForm und dem ExsoFlowServer sowie zwischen ExsoFlow-Servern findet über WebServices
mit dem HTTP- bzw. HTTPs-Protokoll statt - also über dasselbe
Protokoll, das auch ein Web-Browser verwendet. Im Grunde stellt
ExsoForm einen auf einen speziellen Zweck hin entwickelten WebBrowser dar - mit leistungsfähigen Erweiterungen.
Der ExsoFlow-Server kann auch als Internet-Service gehostet
werden - stellt also eine „Cloud-Lösung“ dar. So kann ExsoFlow
alternativ zu einer lokalen Installation bei einem externen CloudAnbieter laufen und über verschiedene Abrechnungsmodelle
gemietet werden. ExsoFlow fügt sich dabei beispielsweise
hervorragend in die Serverstruktur von Microsoft Azure ein.
DocumentWriterService
(parallele Pipelines)
Index-Prozessor
erstellt IndexObject
FolderReaderService
ReaderService
(parallele Pipelines)
Folder-Manager
Template-Library
Job-Prozessor
Status/Step startet Job
Template-Folder-Mapper
Folders & Queries
Ordnerstruktur
ExsoForm bietet für die Vorgänge eine verwaltbare Ordnerstruktur
an. Dabei existiert jeweils ein Grundordner, der einen oder mehrere
Vorgangstypen beinhalten kann (z.B. Montagebericht und
telefonischer Support, die sich nur marginal unterscheiden).
Organisationsmanagement
(Rechteverwaltung)
Dokumenten-Datenbank
(MongoDB)
Schematischer Aufbau des ExsoFlow Vorgangs- und Stammdatenprozessors
Abb:Vorgangs- und Stammdatenprozessor in ExsoFlow
3. Senden an den Server und Job-Engine
Domänen
Wird ein Vorgang an ExsoFlow versendet, so wird zunächst einmal
die Vorgangsdatei einfach in der Vorgangsdatenbank abgespeichert,
In der heutigen Unternehmenspraxis sind „einfache“ Unternehmen
(d.h. solche die nur eine rechtliche Gesellschaft darstellen und einen
homogenen Unternehmensgegenstand haben) kaum noch als
Regelfall anzusehen: eine Aufteilung in Produktions- und
Vertriebsgesellschaft ist in der Fertigung üblich, darüber hinaus gibt
es eine Reihe von Unternehmensverbänden mit wechselseitigen
Beteiligungen oftmals in völlig unterschiedlichen Branchen.
Gleichwohl sind gerade die Verbindungen zwischen den
Unternehmen wichtig und es gibt immer wieder Personen an
bestimmten Stellen, die auf die Daten mehrerer Teilstrukturen
dieser Unternehmensverbände zugreifen müssen.
Wollte man diese Strukturen mit einem einzigen Datenpool
versorgen, so ergäben sich mannigfaltige Berechtigungsprobleme.
Schon das Speichern in derselben Datenbank oder auf demselben
Server scheint problematisch, wenn beispielsweise bei einem JointVenture die Vertragspartner in anderen Gebieten zugleich
Wettbewerber sind.
Um solche Strukturen abbilden zu können verfügt ExsoFlow über
ein Domänenkonzept: ein Anwender kann in seinem ExsoFormFrontend völlig getrennte Instanzen von ExsoFlow einhängen und
mit unterschiedlichen Berechtigungen (abgebildet über X509Zertifikate) auf die Vorgänge mehrerer Domänen zugreifen.
So kann der Vertriebsmitarbeiter, der für mehrere Unternehmen
arbeitet, unterschiedliche Vorgangstypen seiner Auftraggeber im
gleichen Frontend abbilden und über den ExsoFlow-Server
gegebenenfalls sogar unternehmens- bzw. instanzübergreifende
Vorgänge auslösen.
Gleichzeitig hat er alle aktuellen Themen im Blick ohne sich ständig
an unterschiedliche Systeme anmelden zu müssen.
Plug-Ins
Eine mächtige Erweiterungsfunktionalität bietet ExsoFlow durch
die Plug-In-Technologie. ExsoForm und ExsoFlow sind komplett in
Java entwickelt. Aus einer frei verfügbaren Java-Basisklasse können
nun beliebige Java-Entwicklungen abgeleitet werden. Diese können
ihrerseits Jobs mit entsprechenden Verwaltungs-Oberflächen sowie
WebServices bereitstellen, die innerhalb des ExsoFlow-Servers
laufen.
Darüber hinaus sind alle Möglichkeiten denkbar, die Java als
ExsoForm
andere
ExsoFlow-Domäne
Scheduler
Built-In
Dokumenten-Datenbank
(NoSQL, MongoDB)
Plug-In 1
Plug-In n
Job- und Temp-Datenbank
(SQL, Apache Derby)
= Webservice via HTTP(S)
Abb: Aufbau des ExsoFlow-Servers
Schematischer Aufbau des ExsoFlow Servers
WebService
Job-Prozessor
JDBC
Watcher
(FileSystem, eMail, DB)
Vorgangs-/StammdatenProzessor
eMail
die Mehrbenutzersperre für diesen Vorgang aufgehoben und ein
Indexobjekt anhand der im Datenmodell gekennzeichneten
Indexfelder erstellt. Damit lassen sich in ExsoFlow die
Anforderungen der GoBS abbilden.
Zusätzlich prüft das System, ob aufgrund des Status und/oder des
Arbeitsschrittes des Vorgangs weitere Aktionen erforderlich sind. Ist
dies der Fall, d.h. ist ein entsprechender Job konfiguriert, wird
dieser Job ausgeführt.
ExsoFlow bietet dazu eine Reihe von Standard-Jobs an. Darunter
sind Jobs zum Abspeichern der XML-Daten in einer SQLDatenbank, das Verschicken von Vorgängen oder daraus generierter
pdf-Dateien per eMail, das Auslesen eines eMail-Postfachs, das
Starten von Anwendungen etc.
Verschiedene Jobs können dabei nacheinander ausgeführt werden.
Damit ist es beispielsweise möglich, einen eingegangenen
ExsoForm-Vorgang zunächst in eine Datenbankstruktur zu
schreiben, diese dann auszulesen und die Daten an ein ERP-System
zu übergeben. Damit kann aus einem ExsoForm-Montagebericht
sofort ein Auftrag in einem ERP-System generiert werden.
Diese Job-Bundles können auch zeitgesteuert ausgeführt werden
und so beispielsweise ein eMail-Postfach mit Eingangsrechnungen
auslesen, daraus automatisch ExsoForm-Vorgänge generieren und in
den Workflow einstellen.
Eine dritte Auslösemöglichkeit stellen sogenannte „Watcher“ dar,
die zum Beispiel ein Windows-Dateisystem überwachen und Jobs
ausführen sobald eine Datei in ein bestimmtes Verzeichnis gestellt
wird. Damit können beispielsweise Auftragsanlagen aus XMLDateien oder einfach Umwandlungen von XML-Formaten
ausgelöst werden.
Mit dem ExsoFlow-JobEngine sind also diverse
Integrationsaufgaben auch über den Einsatz mit ExsoForm hinaus
möglich, man kann ExsoFlow auch komplett ohne ExsoForm als
zentrale Schnittstellenlösung einsetzen.
File
(OS, FTP,
WebDAV)
Abb: Definition eines ExsoFlow Job-Bundles