Grundlagen von CyberEnterprise

 

Einleitung

Allgemein wird man in einem Kapitel über die Grundlagen einer Architektur sicherlich zu Beginn einer Schrift über eine Architektur erwarten. Dieses ist auch hier so und dieses Kapitel soll Einem auch einen ersten Überblick über den Aufbau der Architektur geben.

Mit dieser Schrift wird aber eine spezielle Business Information Technology (BIT) Architektur für eine allgemein gültige Modellierung von Unternehmenslösungen vorgestellt, dieses Kapitel sollte also vor dem Hintergrund eines sehr abstrakt gehaltenen Unternehmensmodells gesehen werden.

Bevor aber das Modell genauer betrachtet wird, könnte es zum besseren Verständnis hilfreich sein, einige der Grundideen für die Modellierung zu erörtern, die bereits während der ersten Konzeptionierungsphase als Teil des Concept classix formuliert worden waren.

Die CyberEnterprise Architektur steht unter dem Primat flexibler Unternehmenslösungen, gleichzeitig ist sie die Basis für eine mögliche Abstraktion.

Baukastenprinzip

Es gibt wiederverwendbare Komponenten1  - auf verschiedenen Ebenen der Komplexität - mit nahezu unbegrenzter Kombinationsmöglichkeit.

Die CyberEnterprise Architektur ist durchgehend Objekt orientiert. Betriebswirtschaftliche Gegebenheiten eines Unternehmens sind als (Geschäfts-)Objekte modelliert. Dies sind die elementaren Bausteine, aus denen zusammen mit Komponenten für das User-Interface wiederverwendbare Teilstücke einer Anwendung aufgebaut werden (Modul). Eine Anwendung entsteht durch die Kombination dieser – ebenfalls Objekt orientierten - Module.

Die Module werden mit dem InstantView RAD Framework erstellt, welches ein integraler Bestandteil der Architektur ist. Als InstantView wird auch die Skriptsprache der Anwendungsmodule und die Runtime des Gesamtsystems bezeichnet.

Die Anwendungsmodule werden im AppsWarehouse verwaltet und stellen als best practices ein Referenzmodell für die eigene Unternehmensmodellierung dar.

Dieser stufenweise Aufbau entspricht einer Softwarearchitektur mit mehreren, deutlich voneinander getrennten Ebenen.

1 Eine Grundvoraussetzung ist ein hohes Abstraktionsniveau der Komponenten, also genau das Gegenteil einer Sammlung von Programmcode für möglichst viele Probleme, der über Parameter gesteuert und mit Schaltern aktiviert/deaktiviert wird.

Mehrschicht-Architektur

Ein wichtiges Merkmal der CyberEnterprise Architektur ist die strikte Trennung zwischen Modell und Oberfläche, d. h. zwischen Geschäftsobjekten und Visualisierung (MVC-Konzept).

Die CyberEnterprise Modellklassen sind eine Sammlung von C++-Klassen. Die Instanzen dieser Klassen – die Geschäftsobjekte – sind die Daten eines Unternehmens und werden direkt in einer objekt-orientierten Datenbank (ObjectStore®) gespeichert.

In der InstantView Softwareschicht finden wir die Komponenten, welche die Interaktion der Geschäftsobjekte untereinander und mit dem Anwender organisieren. InstantView  zeigt sich nach außen als eine einfache Programmiersprache, mit der die gewünschte betriebswirtschaftliche Funktionalität dynamisch beschrieben wird. Hierzu gehört auch eine deklarative GUI zur Modellierung der Anwendungslösung.

Der Name „InstantView“ ist programmatisch gemeint: Ohne großen Aufwand können Mini-Applikationen für den Augenblick (ein bestimmter View auf die Daten) erzeugt werden, um operative Aufgaben schnell zu lösen oder im Rahmen eines rapid prototypings Unternehmenslösungen schneller und zielgerichteter erstellen zu können.

Parallel hierzu gibt es die MorphIT Schicht zur ergonomischen Ausgestaltung der Bedieneroberfläche. Diese Schicht kommuniziert über WebServices mit den Anwendungskomponenten und ist vollständig von der Logik des Unternehmensmodells entkoppelt.

Message Bus

Die Kommunikation der Komponenten untereinander erfolgt ausschließlich über – dynamisch definierbare - Nachrichten. Diese werden über einen message bus miteinander ausgetauscht. Die Anbindung von Events der Bedienereingaben der InstantView Schicht, von externen Ereignissen (z.B. CORBA), sowie von WebServices findet ebenfalls über den message bus statt.

Runtime System

Die System Parameter und die Programmanweisungen der Anwendungsmodule der InstantView Softwareschicht werden vom Runtime System zur Laufzeit dynamisch ausgeführt.

Durch die duale Aufteilung der Programmausführung, Methodenaufruf in den C++ Klassen des CyberEnterprise kombiniert mit dynamisch ausgeführten Anweisungen des InstantView Codes wird eine für Dialogprogramme ausreichende Performanz erreicht.

Nach genügend formulierter Abstraktion ist die Verlagerung von Funktionalität aus dem InstantView Code in die C++ Klassen ein andauernder Prozess.

Das Runtime System ist der eigentliche Garant einer hohen Flexibilität und erlaubt darüberhinaus ein sehr schnelles Customizing.

Customizing

Die Objekt orientierten Standard-Komponenten – seien es die Geschäftsobjekte aus dem CyberEnterprise Unternehmensmodell oder die Anwendungsmodule aus dem AppsWarehouse Referenzmodell - sind so aufgebaut, dass sie je nach Bedarf individualisiert werden können: Die Algorithmen und Programmteile, die stabiles Wissen einer Anwendungsdomäne repräsentieren, können von jenen Bestandteilen einer Komponente, die sich von Anwendung zu Anwendung oder auch von Anwender zu Anwender unterscheiden und der Anpassung an sich ständig wandelnde Gegebenheiten unterliegen, soweit wie möglich getrennt werden.

Hierfür unterstützt die CyberEnterprise Architektur u.a. dynamische Datenfelder (slots) und dynamische Vererbung von Geschäftsobjekten (Pseudo-Klassen) und von Anwendungsmodulen, Eigenschaften auf die später noch genauer eingegangen wird.
Innerhalb der CyberEnterprise Architektur wird eine Anwendungslösung erstellt, in dem

  1. im Idealfall geeignete Module aus dem AppsWarehouse ausgewählt und zusammengestellt werden
  2.  ein nicht ganz passendes Anwendungsmodul durch Vererbung erweitert wird
  3. ein Anwendungsmodul mit InstantView-Code von Grund auf neu geschrieben wird
  4. bei Bedarf das CyberEnterprise durch neue C++-Klassen erweitert wird

Normalerweise bewegt man sich im Bereich von 1. und 2., die Architektur lässt aber eine beliebige Erweiterung durchaus zu. Gerade auch für die Anbindung fremder C++ Bibliotheken steht eine klar definierte Schnittstelle zur Verfügung.

Das Customizing ist in CyberEnterprise so organisiert, dass die Release-Fähigkeit durchgängig erhalten bleibt.

Feste Datenformate sind nicht vorhanden, um das Customizing auf Datenebene ebenfalls zu ermöglichen. Standardmäßig ist daher die Objekt orientierte Datenbank ObjectStore® transparent eingebunden.

Objekt orientierte Datenbank

Gespeicherte Objekte werden nur über Referenzen (Adressen) in der Datenbank erreicht, eine fest vorgegebene Organisation in Tabellen existiert nicht. Dies erlaubt es individuelle Objekte beliebig miteinander verschachteln zu können, Grundlage für eine Format freie Ablage von Daten.

Bei der Arbeit mit persistenten Geschäftsobjekten wird das gesamte Speicherungs- und Transaktionsmanagement automatisch vorgenommen. Aufgrund dieser Abstraktion der Datenspeicherung sind explizite Lese- oder Schreibbefehle nicht vorhanden.

Die Speicherung der Objekte kann logisch in Layer, Domains und Listen (collections) aufgeteilt werden, um z. B. Daten verschiedener Mandanten zu trennen.

Objekte werden in der Datenbank zunächst nur logisch gelöscht, d.h. in einen 'Papierkorb' verschoben, aus dem heraus sie auch wieder reaktiviert werden können.

Internationalisierung

Die Bediener Oberflächen von InstantView und MorphIT als auch die Daten der Anwendung (den Geschäftsobjekten) sind auf beliebig viele Sprachen eingerichtet. Dies gilt selbstverständlich auch für Fehlermeldungen und Hilfetexte. Eine Umstellung der Bedien- und/oder der Datensprache kann zur Laufzeit jederzeit erfolgen.

Locales werden umfassend unterstützt. Jeder Anwendungs-Client kann entsprechend regional geltender Eigenheiten eingestellt werden: Landeswährung, Sprache, Zeitzone, Maßeinheiten, Zahlen- und Datumsformate, Feiertage, (Schul-)Ferien, usw. Die Regionalisierung kann beliebig tief geschachtelt werden (Land, Bundesstaat, Stadt, Unternehmen, Werk, ...).

Skalierbarkeit

Die InstantView Schicht kann verteilt auf Applikationsserver ausgelagert werden. Auch stellt die CyberEnterprise Architektur einen eigenen Server-Prozess zur Verfügung, um z. B. Queries auf dem Datenbank Server ablaufen zu lassen. Somit wird nur noch das Ergebnis einer Query über das Netz zum Client oder Applikationsserver transferiert.