OpenSmallOffice - Das System

aus openSUSE, der freien Wissensdatenbank


Bild:OSo_logo_-_titel.png

Autor: Thomas Lodewick

Inhalt

oSo - Das System

Das System oSo im Gesamten betrachtet besteht aus einer Reihe von Prozessen, die einigen grundlegenden Prinzipien folgen, die im Bereich der Programmierung von Programmen allgemein bekannt und anerkannt sind. Diese mögen sich unter Umständen widersprechen, dennoch versuche ich, die besten Teile aus den jeweiligen Prinzipien im Gesamten in Einklang zu bringen:

  • Datensatzorientiert

Wie aus den Anforderungen auf der Serverseite ersichtlich, benötigt OpenSmallOffice eine Datenbank als Backend zur Datenspeicherung, und folgt damit dem klassischen Prinzip, für die Verarbeitung der Daten Formulare zur Ein- und Ausgabe zu nutzen. Formulare können dabei den Inhalt aus einer oder mehrere Tabellen zusammenfassend darstellen bzw. die eingegebenen Daten über eine oder mehrere Tabellen hinweg speichern. Transaktionen ( also die Zusammenfassung mehrerer Speichervorgänge in mehr als einer Tabelle oder Datenbank ) werden soweit möglich unterstützt, um so mögliche Fehler bei der Datenspeicherung zu verhindern.

  • Dokumentenorientiert

Ein direkter Widerspruch an sich zur Datensatzorientierung stellt die Dokumentenorientierung dar. Dabei werden Daten nicht in Datenbanken gespeichert und on-the-fly zur Ausgabe abgerufen, sondern statisch in einzelnen Dateien abgelegt. Ein Öffnen eines solchen Dokuments liefert demnach auch nur die Daten wieder, die im Dokument gespeichert sind. Wie passen diese beiden Ansätze zusammen ? Nun, dies geht auf die ( in Deutschland gesetzliche ) Forderung zurück, das sämtlicher Schriftverkehr im gewerblichen Rahmen eine vorgegebene Zeitspanne aufbewahrt und zu eventuellen Prüfzwecken durch behördliche Stellen elektronisch vorgehalten werden müssen. In unserem Fall heißt dies, das zwar Dokumente auf Grundlage der Daten in den Datenbanken erstellt werden können, aber sobald diese zum Beispiel in Form von Angeboten, Aufträgen oder auch Rechnungen an Kunden versendet wurden, werden diese Dokumente so gespeichert, wie sie versendet wurden. Ergeben sich zum Beispiel im Angebot Änderungen, werden diese in der Datenbank vorgehalten, und über ein neues Dokument an den Kunden übermittelt. Auch dieses neue Dokument wird wieder wie das Ursprüngliche abgelegt.

  • Komponentenbasiert

In einem komponentenbasierten System werden Teile des Ganzen in kleinere, logisch mehr oder minder geschlossene Einheiten geteilt, die über eine dokumentierte Schnittstelle angesprochen werden können und so ihre Funktionalität nach Außen hin anbieten. Soweit der theoretische Grundsatz. In der Praxis bedeutet dies zum Beispiel, das eine Komponente zur Ausgabe eines einzelnen Datensatzes so mit einer Komponente zur tabellarischen Ausgabe verknüpft wird, das sich die hierarchische Verknüpfung der Daten ( hier: 1 zu vielen bzw. 1:n ) wiederspiegelt. Die Einteilung in Komponenten speilt demnach eine (dann auch sichtbare ) Rolle im Zusammenhang mit dem Portal, in dem die eigentliche Ein- und Ausgabe von oSo abläuft.

  • Ereignisgesteuert

In einem ereignisgesteuerten System bedarf es das Eintreffen eines bestimmten Ereignisses, um eine bestimmte Reaktion auszulösen - im Bereich der Programmierung wäre dies zum Beispiel das Klicken auf einen Button, der das Ereignis onClick auslöst, das als Reaktion darauf zum Beispiel eine Meldung auf dem Bildschirm auslöst. Im System von OpenSmallOffice hat dies eine ähnliche Bedeutung: bestimmte Ereignisse wie zum Beispiel das Ändern eines Datensatzes können Reaktionen wie zum Beispiel das Aktualisieren weiterer Datensätze in anderen Tabellen auslösen. Man spricht in diesem Zusammenhang auch vom Workflow, dem ( kontrollierten ) Abarbeiten bestimmter Arbeitsschritte als Reaktion auf andere, zuvor getätigte Schritte. Auslösende Ereignisse können zum Beispiel die schon angesprochenen Änderungen von Teilen eines Datensatzes sein, das Eintreffen einer neuen eMail, das Verstreichen von Zeit- oder Datumsgrenzen, das Unter- oder Übersteigen bestimmter Mindest- oder Höchstgrenzen, der Wechsel des Status eines Datensatzes zum Beispiel von neu auf gelesen oder einer Kategorie zum Beispiel von Neukunde auf Bestandskunde etc. Reaktionen auf Ereignisse können zum Beispiel sein: die schon genannte Meldung auf dem Bildschirm des Anwenders ( "Eine neue eMail ist eingetroffen" ), das ( halbautomatische ) Anlegen und Versenden neuer Dokumente, das ( halbautomatische ) Anlegen von zum Beispiel Wiedervorlagen oder eMails zur Benachrichtigung, das Aktualisieren von RSS-Feeds wenn diese als Liste von zu beobachtenden Datensätzen genutzt werden oder auch das ( halbautomatische ) Ändern eines Status oder Kategorie. Halbautomatisch finden Sie in dieser Liste, weil ich nur ein bedingter Freund davon bin, alles zu Automatisieren. Sie haben daher je nach Konfiguration die Möglichkeit, vor dem Starten der eigentlichen Reaktion auch immer noch ein OK von einem Anwender einzuholen, um dann die Reaktion wirklich zu starten, sie zu einem späteren Zeitpunkt zu verschieben oder auch zu verwerfen. Gesteuert wird das Ganze über einen Serverprozess, der dazu Ihre in XML-Dateien gespeicherten Vorgaben verarbeitet - der sogenanten Workflow-Engine. Diese wird nicht nur die beiden Punkte Ereignis und Reaktion kennen, sondern auch Bedingungen, das heißt das Auslösen einer Reaktion als auch die Abarbeitung derselbigen kann über sogenannte Conditions von weiteren Bedingungen abhängig und über diese gesteuert werden.

Folgendes Beispiel zur Verdeutlichung:

Gegeben sei der Auftrag eines Kunden, der an eine bestimmte Uhrzeit gebunden ist. Im Zuge dieses Auftrags haben wir den Einsatz einer unserer Angestellten geplant sowie ein Partnerunternehmen mit der Stellung eines Fahrzeugs beauftragt, Nun ändert der Kunde zu seinem Auftrag besagte Uhrzeit ( = auslösendes Ereignis ). In Folge müssen wir die Planung des Angestellten anpassen ( = 1. Reaktion ) sowie die neue Uhrzeit an das Partnerunternehmen kommunizieren ( = 2. Reaktion ). Außerdem können Conditions berücksichtigen, ob der geplante Angestellte zu der neuen Uhrzeit überhaupt zur Verfügung steht ( in diesem Fall muss der Zeitplan des Angestellten nur entsprechend angepasst werden ) oder ein anderer Angestellter den Auftrag übernimmt ( was eine Löschung des Auftrags im Zeitplan des ursprünglichen Angestellten bedeutet sowie ein Neueintrag des Auftrags im Zeitplan des nun eingesetzten Angestellten ). Alle Reaktionen erfordern zum einen das Ändern und / oder Anlegen neuer Datensätze sowie die Weitergabe entweder der Änderung an den Angestellten / dem Partnerunternehmen oder die Weitergabe der kompletten Informationen zu diesem Auftrag an einen anderen Angestellten - jeweils in Form eines Dokuments, das aufgrund der Datenbasis erstellt und anschließend per eMail versendet wird.

  • Modellgerieben

Bei der Erstellung einer Anwendung, die auf mehr als einer Tabelle zur Datenspeicherung zurückgreift, kommt man um den Begriff modellgetrieben fast nicht herum - und so wundert es auch nicht, das auch oSo Modelle nutzt - eben eine Model Driven Architecture oder kurz MDA, wie man es in der Fachliteratur nennt. Allerdings weicht es von dem klassischen Ziel des MDA aus der Welt der Programmierer in dem Sinne ab, das es nicht darum geht, aus den Modellen heraus Quellcode zu erzeugen, sondern Formulare sowie den Basiseinstellungen für den Workflow-Prozess.



zurück zu |◄ Einführung

weiter zu oSo - Das Portal ►|

Hinweis in eigener Sache: mit der Freigabe der Entwicklerversion zu openSUSE Version 10.2 Alpha3 fand auch eine Namensänderung der Distributionen von SUSE Linux nach openSUSE statt. Unabhängig davon, ob Sie nun als Distribution SUSE Linux bis Version 10.1 oder openSUSE ab Version 10.2 nutzen, werde ich im Verlauf des Projekts immer openSUSE als Bezeichnung der Distribution benutzen. Ich bitte um Nachsicht, das ich diesbezügliche Hinweise per eMail nicht weiter beachte.


Hintergrund

Als öffentliche Begleitung zu einem realen Projekt haben wir auch spezifische Anforderungen:


Bevor Sie beginnen

Wenn Sie ein komplett neues System aufsetzen wollen und noch keine Erfahrungen damit haben, sollten Sie folgende Hinweise beachten:

Netzwerk-Tipps

openSUSE-Basis

Eingesetzte Serversoftware Sie finden von dieser Übersichtsseite ausgehend eine kurze Beschreibung zur Serversoftware, wie Sie die Software nachinstallieren können und wie sie bei uns konfiguriert ist. Dazu zählen


Rechtliches

Beachten Sie bitte das Copyright, die Lizenz sowie Haftung unter Rechtliches. Beim Einsatz des Projekts ( im Ganzen oder in Teilen davon ) werden diese ausdrücklich anerkannt.

Siehe auch

innerhalb von openSUSE

Weblinks

Artikel bei Wikipedia