IES Information Enterprise Server – die Technologie-Plattform von Sitepark

Aus SiteparkWiki
(Weitergeleitet von IES)
Zur Navigation springen Zur Suche springen


Logo ies 450.png

Der IES ist ein von Sitepark entwickelter Applikation-Server auf Basis des Jetty. Er ermöglicht Sitepark die Entwicklung von Produkten auf einer einheitlichen Basis und stellt unter anderem ein produktübergreifendes Daten-, und Benutzermanagement bereit.

Persistenz-Schicht
Hier wird die Persistenz der Daten sichergestellt. Die Daten werden in Datenbank (MySQL), Medien-Datenbank (Eigenentwicklung) und Volltext-Index (Lucene) abgelegt.
Steuerungs-Schicht
Hierüber werden Anfragen an den IES abgearbeitet. Darunter fällt z.B. die Prüfung der Rechte, Kapselung der Aktion innerhalb einer Transaktion um Datenkonsistenz sicherzustellen und das Validieren der Daten um ungültige Datensätze zu verhindern.
RPC-Schicht
Diese Schicht enthält Schnittstellen des IES. Über das HTTP-Protokoll werden die RPCs (Remote Procedure Calls) angesprochen. Das Datenaustausch-Format ist JSON. Diese Schicht ermöglicht es auch Browsern über JavaScript die Schnittstellen zu nutzen. Die Schnittstellen sind programmiersprachenunab-hängig. Die RPC- Schicht unterstützt die Entwicklung SOA basierter Produkte.
Client-API-Schicht
Diese Schicht stellt Client-Implementierungen der RPC-Schicht für Java, JavaScript und PHP zur Verfügung.
Abwärtskompatibilitäts-Schicht
Um den IES auf dem aktuellen Stand der Technik zu halten ist eine kontinuierliche Weiterentwicklung erforderlich. Dies macht u.U. Refactoring-Maßnahmen notwendig, bei denen auch veraltete Funktionsteile wegfallen, um die Wartbarkeit der Software zu gewährleisten. Diese Funktionsteile werden in die Abwärtskompatibilität-Schicht verschoben um dennoch die Abwärtskompatibilität sicher zu stellen.
Applikations-Schicht
Auf dieser Schicht befinden sich die Produkte, die auf dieser Technologie-Plattform aufsetzten. Produkte können, wenn nötig, eigene RPC-, API-, Client-API- und Abwärtskompatibilität-Schichten bereitstellen.


Daten-Management

Daten werden im IES als ObjektInstanzen zusammengefasst. Eine ObjektInstanz kann beliebige Felder, beliebige Listen und beliebige unter-Strukturen enthalten. Durch ein generisches Datenmodell ist die Modellierung solcher Objekte ohne Daten-bankanpassungen möglich.

Außer Text, Nummer, Datum, Boolean-Daten und Objekt-Verknüpfungen können auch Binärdaten an Felder von Objekt-Instanzen gespeichert werden. Hier werden die gängigen Bildformate unterstützt. Der Bild-Prozessor des IES generiert Thumbnails, ermittelt Bildformate und Bildgrößen.

Um in dem Datenbestand performant suchen zu können werden die Daten indiziert. Hierbei werden sowohl die einzelnen Werte der Felder und die Relationen der Objekte zueinander indiziert wie auch ein Volltext-Index auf Feldebene aufgebaut.

Zur Kennzeichnung von ObjektInstanzen und zur Verknüpfung von Daten aus Fremd-Systemen können sogenannte Anchor auf ObjektInstanzen gesetzt werden. Diese werden häufig zur Synchronisation mit externen Daten verwendet und bilden eine zusätzliche, frei definierbare, Referenz auf die ObjektInstanz.

ObjektInstanzen werden in hierarchischen Strukturen verwaltet. Sie werden in Gruppen zusammengefasst, wobei Gruppen Unter-Gruppen enthalten können. Gruppen sind ebenfalls ObjektInstanzen in einer erweiterten Form.

ObjektInstanzen müssen immer einer bestimmten Gruppe zugeordnet werden. Über symbolische Links ist es möglich eine ObjektInstanz auch zu mehreren Gruppen zuzuordnen.

Um bestimmte Objekt-Daten oder ganze ObjektInstanzen zu finden wird eine eigene Abfrage-Sprache verwendet.

Die Verwaltung der ObjektInstanzen übernimmt das Repository.

Hierüber können ObjektInstanzen erzeugt, geändert, gelöscht, gesperrt (lock), freigegeben (unlock), versioniert, in andere Gruppen verschoben, in andere Gruppen kopiert, in andere Gruppen verlinkt und durch eine eigene Abfrage-Sprache gesucht werden.

Das Repository verwaltet zusätzlich einen eigenen Cache um eine performante Verarbeitung von ObjektInstanzen zu gewährleisten.

Benutzer-Management

Benutzer sind im IES eine erweiterte Form von ObjektInstanzen. Der Funktionsumfang von ObjektInstanzen gilt im vollen Umfang auch für Benutzer. Benutzer werden in einer erweiterten Form von Gruppen (den Benutzer-Gruppen) organisiert.

Zum Benutzer-Management gehört eine Rechteverwaltung. Für jeden Benutzer und für jede Benutzer-Gruppe können Rechte definiert werden. Mögliche Rechte sind z.B. das anlegen, ändern und löschen von ObjektInstanzen und das anlegen, ändern und löschen von Gruppen. Die Authentifizierung von Nutzern erfolgt wahlweise intern oder gegen ein externes LDAP-System. Ein internes Session-Management übernimmt die Verwaltung der angemeldeten Nutzer.


Modul-Management

Module sind Software-Pakete, die den IES als Plattform verwenden. Dies können sein: komplette Applikationen (wie z.B. Infosite, CityGov, CityCall, …), externe Komponenten (wie z.B. OpenLayers, Zend-Framework), erweiterte Schnittstellen, Dienste, Erweiterungen des Funktionsumfangs von anderen Modulen oder Diensten, kundenspezifische Anpassungen oder Erweiterungen.

Über integrierte Update-Mechanismen können Aktualisierungen über Online-Updates erfolgen oder durch das einspielen einzelner Modul-Pakete. Module unterliegen einem Versions- und Release-Management. Abhängigkeiten von Modulen und Modul-Versionen werden geprüft.

Module können in verschiedene Kategorien aufgeteilt werden:

  • Kern-Module - Funktionen (API, Schnittstellen, Module, Dienste, ....) die im Standard-Lieferumfang immer enthalten sind und direkt zur Verfügung stehen.
  • Optionale-Kern-Module - Funktionen, die im Standard-Lieferumfang immer enthalten sind, aber erst durch eine Konfiguration oder Lizenzierung zur Verfügung stehen.
  • Optionale-Module - Funktionen, die nicht im Standard-Lieferumfang enthalten sind, aber als zusätzliche Pakete eingespielt werden können.
  • Kundenspezifische-Module - Funktionen, die nur für einen Kunden implementiert werden und nicht Teil eines Produktes sind.


Plugin-Konzept

Der IES dient als Plattform für verschiedenste Applikationen. Durch das Plugin-Konzept wird sichergestellt, das Module mit dem IES und Module untereinander interagieren können. Ein Modul kann somit auch nur ein Plugin für eine andere Applikation sein. Die Schnittstellen des IES ermöglichen es den Modulen auf Änderungen von ObjektInstanzen zu reagieren, Funktionen vorhandener Dienste zu erweitern oder zu beeinflussen und Funktionen von vorhandenen Modulen zu erweitern oder zu beeinflussen.


Dienste-Management

Module können als Dienste des IES verwendet oder eigene Dienste bereit stellen. Dienste sind z.B.

  • Scheduler – Einmalige oder wiederkehrende Aktionen zu bestimmten Zeitpunkten
  • Queue – Abarbeitung von Aktionen die sequenziell erfolgen sollen.
  • Publisher – Publizieren von Daten mit Hilfe von Templates als z.B. Datei, E-Mail oder HTTP-Request
  • Messaging – Versenden von Mitteilungen z.B. per E-Mail

Der IES bieten die Funktionen um Dienste zu starten, zu stoppen, anzuhalten, zu überwachen, bestimmte Funktionen manuell auszuführen oder zu konfigurieren.


Mandantenfähigkeit

Auf einem IES können mehrere Mandanten eingerichtet werden, die die oben beschriebenen Funktionalitäten unabhängig voneinander nutzen können. Alle Daten der Mandanten werden separat von einander abgelegt und sind auch untereinander nicht sichtbar. Bei der Anmeldung eines Nutzers am System wird der gewünscht Mandant mit angegeben.


Import- und Export- Werkzeug

Durch den XIP (Export- Import- Prozessor) können Daten in den IES importiert und aus dem IES exportiert werden. Das Austausch-format ist ein auf die Anforderungen des IES ausgerichtetes offenes XML-Format. Die zu exportierenden Daten können über die Angaben von Listen, Gruppierungen oder Suchen definiert werden. Der Importer unterstützt verschiedene Import-Quellen wie LDAP, HTTP-Ressourcen, Datenbanken und XML-Dateien. Nicht XML-Formate werden in XML umgewandelt und können dann über frei definierbare XSLT's in das XIP-Format umgewandelt werden. Mit diesem umgewandelten Format kann dann der Import erfolgen. Das XIP-Werkzeug steht als Web 2.0 - Oberfläche und über die Kommandozeile zur Verfügung.


Administrationswerkzeuge

Zur Verwaltung und Administration der einzelnen System-Teile stellt der IES Administrations-Werkzeuge auf Kommandozeilen-Ebene und als Web-Oberfläche zur Verfügung. Unter anderem werden Werkzeuge für die folgenden Bereiche bereitgestellt:

  • Online-Updates des IES
  • Lizenzverwaltung
  • Modul-Verwaltung (einspielen, löschen, aktualisieren, starten, stoppen, …)
  • Logging-Konfiguration (Einstellungen für Log-Dateien)
  • Datenbank-Verwaltung (anlegen, konfigurieren und löschen von MySQL-Datenbanken und Datenbankverbindungen)
  • Mandanten-Verwaltung (anlegen, konfigurieren und löschen von Mandanten)
  • Dienste-Verwaltung (starten, stoppen, konfigurieren)
  • Backup und Recovery