RRZE – Projekte & Prozesse (P&P)

Das Blog der RRZE Stabsstelle "Projekte & Prozesse"

Content

FAU.ORG 3.0

FAU.ORG 3.0 Release

English Version

Mit der neuen FAU.ORG Version 3.0 haben wir es geschafft, das gesamte Projekt neu zu gestalten um es so benutzerfreundlicher und einfacher in der Bedienung zu machen. Das Projekt wurde vom Tapestry Framework zum Grails Framework migriert, um eine schnellere und einfachere Entwicklung zu ermöglichen.

In der neuen Version wurden das Web Frontend und das Backend von Grund auf neu entworfen, während dabei alle Funktionen der vorherigen FAU.ORG Version erhalten bleiben. Das Web Frontend wurde auf das aktuelle offizielle FAU Web-Baukasten Design aktualisiert. Durch Entfernen von redundanten und doppelten Änderungsereigniseinträgen wurde darüber hinaus die Datenqualität verbessert. Das Datenbankmodell wurde aktualisiert.

Einige der Veränderungen in dieser Version sind:

  • In der neuen Baumansichtseinstellung können die Benutzer eine maßgeschneiderte Ansicht einrichten, wie sie die FAU.ORG Daten einsehen wollen. Die Benutzer können nun wahlweise Org.-Nummern ausblenden, zwischen den verschiedenen Bezeichnungen wählen und sich die Besetzung in den Knoten des Baums anzeigen lassen. Die Struktur des Baumes kann darüber hinaus auf Basis der Ausstattungsabhängigkeit gebildet werden (Standardeinstellung).
  • In der Detailansicht einer Organisationseinheit können die Nutzer die verschiedenen Attributgruppen in ein- oder zweispaltigem Layout anzeigen lassen und die Reihenfolge der Detailansichten anpassen. Sowohl die übergeordneten als auch Kind- bzw. Geschwisterknoten einer OE sind in einer übersichtlichen Breadcrumb dargestellt und damit leichter navigierbar.
  • Die für die Statistikschlüssel verwendeten Metadaten können jetzt in der Weboberfläche eingesehen und bearbeitet werden, sofern der Benutzer die Rechte dafür besitzt.
  • Das Backend wurde neu implementiert und in das Grails Projekt integriert.
  • Die neue Version ist mit einer feingranularen Zugriffsverwaltung ausgestattet. Die Benutzer können daher nur Attributgruppen bearbeiten für die sie auch verantwortlich sind. Nur Benutzer mit Rechten zur Bearbeitung einer Attributgruppe (z.B.: Beschreibung, Adresse, relevante Informationen) können diese verändern.

Verbesserte Funktionen zu vorherigen FAU.ORG Versionen:

  • Auf der Startseite kann man die zuletzt geänderten OrgEinheiten einsehen.
  • Die Suche nach nicht gesetzten Attributen bzw. Attributgruppen wurde vereinfacht.
  • Sowohl die Ansicht der Änderungshistorie einer OE, als auch die Liste der Änderungen in einem gegebenen Zeitraum wurde verbessert.
  • Der CSV Export wurde um die Klartexte der Statistikschlüssel erweitert.
  • Rekursive Aktualisierung von untergeordneten OE Attributgruppen von übergeordneten OEn (Achtung: bitte vergewissern Sie sich, dass Sie die korrekte unter- und übergeordneten OE ausgewählt haben, bevor Sie Änderungen vornehmen.)

Wie immer, beachten Sie bitte: wenn Sie neue Funktionen testen möchten, benutzen Sie bitte das QA-System:
https://fauorg-qa.zuv.uni-erlangen.de/fauorg/

Wenn Sie Fragen haben, würden wir uns freuen Ihre Anfragen unter support-fauorg@fau.de zu bearbeiten.


FAU.ORG 3.0 Release

With FAU.ORG version 3.0, we have been able to redesign the whole project to make it more user-friendly and easy to use. In terms of development we have migrated from Tapestry Framework to Grails Framework, making the development task faster and easier.

With this release, the web front end and the back-end has been completely redesigned while keeping all the features and functionalities of previous FAU.ORG versions. The web front-end has been updated to the latest official FAU Web-Baukasten design. By removing redundant or duplicate change event entries, the data quality has also been improved. The database model has been updated.

Some of the changes in this version are:

  • Users can setup a custom setting on how they want to view the FAU.ORG data with the new tree view setting. For example, in the OU tree the user can choose to show/hide OU number, prefer short description instead of long description, view the tree based on resource dependency or show staff along with the description. Please note that the default tree view is based on resource dependency.
  • Users can also setup a preferred layout for OU attribute groups with the OU view settings. For example, the user can setup the order in which the attribute groups are displayed. On the OU view page, the user can easily traverse to the parent OU or the child and sibling OUs using the OU breadcrumb instead of going back to the OU tree.
  • The metadata used for the statistic keys can now be viewed and edited (if the user has the right to do so) within the front end.
  • The back-end has been re-implemented and integrated into the Grails project itself.
  • The new version is equipped with fine-grained access management. Users can only change attribute groups which they are responsible for. Only the users with edit right to certain attribute groups (for example: Description, Address, Relevancy info) can change them.

Improved functionalities from previous FAU.ORG versions:

  • The last recently changed OUs are displayed on the start page.
  • Theres is a better possibility to search and edit unset attribute groups per attribute field, for example: find all the OU where print description is not set.
  • Users have a better view on OU change history and can list the changes per attribute group for a given time interval.
  • The CSV export has been enhanced to export certain descriptions for metadata.
  • Users can apply changes recursively to update child OU’s attribute group from parent OU data (Caution: make sure that you have correctly chosen the parent OU and the child OUs before you apply changes).

As always, keep in mind: if you want to try new functions, please use the QA-System:
https://fauorg-qa.zuv.uni-erlangen.de/fauorg/

If you have any questions, we would be glad to entertain your queries at support-fauorg@fau.de

FAU.ORG Release 2.2 – das “druckende und berichtende”

 
English Version
Seit März ist eine Weile vergangen und wir konnten mit FAU.ORG weitere Erfahrungen sammeln.
Auf der Agenda stand der große Punkt “Ausgabe der Daten für Menschen”, sprich die Informationen in FAU.ORG sollten irgendwie in eine Form gebracht werden, dass Menschen die Informationen direkt verwenden können. Bisher gab es dafür nur die Export Funktion aber deren Ergebnisse erforderten eine wie auch immer geartete Aufbereitung. Mit diesem Release hat dieser Missstand ein Ende!

Das Druckende

Mit dieser Version von FAU.ORG haben Sie die Möglichkeit Informationen direkt aus der Anzeige in Ihrem Browser auszudrucken.
Hierfür wurden die Seiten:

  • der Baum
  • Organisationseinheiteninformation sowie
  • Liste der Suchergebnisse

entsprechend angepasst. Alle anderen Seiten wurden vom Produktbesitzer als “nicht druckrelevant” eingestuft. Sollten Sie dennoch einen Bedarf sehen, freuen wir uns auf Ihre Hinweise an fau.org-support@rrze.uni-erlangen.de.

Das Berichtende

Die Spezifikation sieht vor, dass es einen offiziellen Organisationsplan sowie einen internen mit zusätzlichen Informationen geben soll. So wird die offizielle Version nur öffentliche Organisationseinheiten enthalten, während die interne Version auch inoffizielle Organisationseinheiten liefern wird.
So finden Sie nun im Menü auf der rechten Seite den Punkt “Berichte”.
Allerdings wird dieser noch keine aufrufbaren Berichte enthalten, da derzeit das Kanzlerbüro noch an einer Vervollständigung der Daten in FAU.ORG arbeitet. So bald diese Arbeiten abgeschlossen sind, werden die Berichte zur Verfügung gestellt.

Mittelfristig ist es das Ziel die Organisationsstruktur zukünftig automatisch aus FAU,ORG erzeugt.

Und Vieles mehr …

Neben dieser Weiterentwicklung der Funktionalität bringt die neue Version auch zahlreiche kleine Verbesserungen mit, von denen hier nur die wichtigsten Erwähnung finden.

Im Export kann jetzt auch nach dem Publizitätskennzeichen gefiltert werden.

Die E-Mail-Adressen wurden, soweit diese in FAMOS bei einer OE hinterlegt waren, in FAU.ORG bei der jeweiligen OE importiert.

Im Baum und bei der Suche können zukünftige OE explizit ein- und abgelaufene OE explizit ausgeblendet werden.

Unter “Organisationsplaninformationen” gibt es nur noch das Publizitätskennzeichen und das Sortierkennzeichen. Letzteres ist numerisch und bestimmt die Reihenfolge der OE bei der Ausgabe in einem Bericht. Im Baum kann über das Icon “Ordne Kinder” die Sortierreihenfolge per drag-and-drop verändert werden.

Der CSV Export wird an die beim Benutzer hinterlegte E-Mail-Adresse versendet, da das Aufbereiten des Baums die “Geduld” der Browser übersteigt.

Die Statistikschlüssel werden auf Basis der Vorgaben des Bundesamtes für Statistik bzgl. Konsistenz geprüft bzw. bei Eingabe konkludent engeschränkt.

Aus dem Suchergebnissen kann direkt zur OE im Baum gesprungen werden.

Außerdem erfolgte die Behebung kleinerer Fehler wie z.B. Rechtschreibung und noch ein paar “Schmankerl” i.S. Bedienbarkeit und Bequemlichkeit – Wir hoffen Sie finden sie alle (gut und hilfreich).

Zur Erinnerung: Wenn Sie die neuen Funktionen ausprobieren wollen, nutzen Sie bitte das QA-System und nicht das Produktivsystem!


FAU.ORG Release 2.2 – the “printing and reporting one”

It has been a while since march this year and we could gain more experiences with FAU.ORG. One point in our agenda was „ the output of data for people“, which means that the information provided in FAU.ORG should be formed in a way that everybody can use the information directly. Until now there only has been a function for exporting data whose results needed some form of conditioning. With this release that drawback has finally come to an end!

The Printing

With this version of FAU.ORG you have the possibility to print directly from your browser.

For this the pages:

  • the tree
  • Organisational Units aswell as
  • list of results

have been adjusted accordingly. All other pages have been classified as „not relevant for printing“. If you however should see a need, we would be glad to receive notes from you at fau.org-support@rrze.uni-erlangen.de.

The Reporting

The specification scheduled an official organisational plan aswell as an internal plan with additional information. This way the official version only includes public organisational units, while the internal version will also provide non public organisational units.

So you can find in the menu on the right the item „reports“.

However this item will not yet include addressable reports because at the moment the office of the chancellor is still working on a completion of the FAU.ORG data. The reports will be provided as soon as this work is finished.

One goal in the medium term is to generate the organisational structur automatically out of FAU.ORG.

And many more…

Beside these advancements the functionality of the new version brings many small improvements of which only the most important will be mentioned.

The export can now be filtered for the attribute of publicity.

The e-mail adresses have been imported to the particular OU in FAU.ORG as far as they have already been deposited in an OU at FAMOS.

In the tree and during the search there can be future organisational units explicitely be shown and expired OU explicitely be hidden.

Under „Organisational plan information“ there will only be the attribute of publicity and the attribute of sorting. The latter is numeric and affects the order of the OU during the release in a report. In the tree the order of sortment can be changed via drag-and-drop with the icon „arrange children“.

The CSV export will be send to the e-mail adress which has been deposited from the user, because the editing of the tree would „overstrain“ the browsers.

The statistics keys will be proved on the basis of the quidelines from the federal office for statistics according to consitency and respectively implied while entering.

From the search results you can jump directly to the OU in the tree.

Furthermore there have been adjustments on smaller mistakes, for example in writing. There are also some new „goodies“ according to ussability and comfortability – we hope you will find them all (good and helpfull).

Keep in mind: if you want to try the new functions, please use the QA-System and not the productive system!

Sortierbare Elemente in Tapestry per jQuery UI

Problembeschreibung

 
English Version
Zur Sortierung von Elementen in einem Webfrontend kann man sich verschiedene Realisierungen vorstellen. Beispielsweise könnte man für jedes Element eine Textbox bereitstellen, in denen der Benutzer den Index innerhalb der Sortierreihenfolge definiert. Das ist zwar sehr barrierefrei, aber auch unhandlich, wenn man sich vorstellt, dass in einer bestehenden Sortierung das letzte Element weit nach oben verschoben werden soll, da dann viele Indizes angepasst werden müssen. Eine andere Realisierung wären Links mit denen die Elemente jeweils eine Position nach oben oder unten verschoben werden können. Das erfordert jedoch häufiges Neuladen der Seite und ist für den Benutzer nicht sonderlich ästhetisch anzusehen.

Daher wurde für eine konkrete Realisierung des Problems in FAU.ORG auf die wunderbare Welt der AJAX/Javascript Komponenten von jQuery zurückgegriffen. Konkret auf die Komponenten von jQuery UI. Diese Komponentensammlung umfasst sowohl Interactions (also Elemente wie Draggable, Droppable, Sortable, etc.) als auch Widgets (Datepicker, Progressbar, etc.). Die Sortable-Komponente entsprach genau den Anforderungen des oben beschriebenen Problems.

Integration von jQuery:Sortable in Tapestry

Zunächst müssen die notwendigen Javascript-Bibliotheken eingebunden werden:
[html]<link type=”text/css” href=”${asset:jqueryui/themes/base/jquery.ui.all.css}” rel=”stylesheet” />
<script type=”text/javascript” src=”${asset:scripts/jquery-1.4.1.js}”></script>
<script type=”text/javascript” src=”${asset:jqueryui/ui/jquery.ui.core.js}”></script>
<script type=”text/javascript” src=”${asset:jqueryui/ui/jquery.ui.widget.js}”></script>
<script type=”text/javascript” src=”${asset:jqueryui/ui/jquery.ui.mouse.js}”></script>
<script type=”text/javascript” src=”${asset:jqueryui/ui/jquery.ui.sortable.js}”></script>[/html]
Optional kann man die sortierbaren Elemente (die als unordered List gerendert werden) als Kästen formatieren:
[html]<style type=”text/css”>
#sortable { list-style-type: none; margin: 0; padding: 0; float: left; margin-right: 10px; }
#sortable li { margin: 0 5px 5px 5px; padding: 5px; font-size: 1.0em; width: 350px; }
</style>[/html]
Danach wird die Liste um Sortierfähigkeit erweitert und ein Handler entwickelt, der die Sortierergebnisse speichert:
[javascript]<script type=”text/javascript”>
$(function() {
$(“#sortable”).sortable();
$(“#sortable”).disableSelection();
});

function storeOrder() {
var result = $(‘#sortable’).sortable(‘toArray’);
var context = “”;
for (var id in result) {
if (context == “”) {
context = result[id];
} else {
context = context + “_” + result[id];
}
}
window.location = “/${pageName}” + “.save/” + context;
}
</script>
[/javascript]
Schließlich wird die Liste selbst noch eingebunden und ein Speichernlink bereitgestellt:
[html]<ul id=”sortable”>
<li t:type=”loop” source=”elements” value=”element” id=”${element.id}”>${element.name}</li>
</ul>
<a href=”#” id=”prepare” onClick=”storeOrder()”>${message:save}</a>
<t:actionlink t:id=”save” context=”literal:dummy”></t:actionlink>[/html]
Die einzelnen Listenelemente werden durch invisible Instrumentation der Loop-Komponente von Tapestry erzeugt. Die erste Funktion im Javascript-Block sorgt für die Verschiebbarkeit per Maus der Elemente innerhalb der Liste und verbietet deren Selektierbarkeit.

Beim Klicken auf den HTML-Link wird lediglich die Javascript-Funktion storeOrder() aufgerufen. Diese erzeugt ein Array der IDs der Elemente in ihrer vor dem Klicken aktuellen Reihenfolge. Da diese Liste per ActivationContext an einen Actionhandler auf Tapestry-Serverseite übergeben werden soll, kommaseparierte Liste in diesem Kontext jedoch nicht zugelassen sind, wird die Liste in einen String umgewandelt, in dem die Element-IDs per Unterstrich voneinander getrennt vorkommen. Dies kann auf Serverseite durch ein simples String.split() wieder zerlegt werden. Man beachte, dass dafür ebenfalls ein Actionhandler auf Serverseite bereitgestellt werden muss. Dafür wurde der pseudo-Actionlink erzeugt. Der Redirect der storeOrder()-Funktion ruft den Actionhandler mit dem vorbereiteten ActivationContext schließlich manuell auf.

Demo

Eine Demo der Sortable-Komponente von jQuery UI ist hier zu finden.

Sortable Elements in Tapestry with jQuery UI

Problem description

There are many ways to realize sorting elements in a web frontend. One could provide a textbox for every element, which holds the index within the sorting order. This is barrier free to the fullest, but also very inconvenient. Imagine a ordered list, where the last element should be moved to the very top. With this technique almost all element indexes must be adopted. Another realization would be two links on every element. One to move itself upwards and one downwards. This requires a lot of page reloading and is not really state of the art.

To solve the concrete problem within the FAU.ORG project the wonderful AJAX/Javascript components of jQuery were used. More specific the components of jQuery UI. This collection of components includes Interactions (elements like Draggable, Droppable, Sortable, etc.) and Widgets (Datepicker, Progressbar, etc.). The sortable component matched exactly the requirements of the above mentioned problem.

Integration of jQuery:Sortable in Tapestry

First of all one has to include the required Javascript-libraries:
[html]<link type=”text/css” href=”${asset:jqueryui/themes/base/jquery.ui.all.css}” rel=”stylesheet” />
<script type=”text/javascript” src=”${asset:scripts/jquery-1.4.1.js}”></script>
<script type=”text/javascript” src=”${asset:jqueryui/ui/jquery.ui.core.js}”></script>
<script type=”text/javascript” src=”${asset:jqueryui/ui/jquery.ui.widget.js}”></script>
<script type=”text/javascript” src=”${asset:jqueryui/ui/jquery.ui.mouse.js}”></script>
<script type=”text/javascript” src=”${asset:jqueryui/ui/jquery.ui.sortable.js}”></script>[/html]
The next step comprises optional formatting of the elements (which are rendered as an unordered list):
[html]<style type=”text/css”>
#sortable { list-style-type: none; margin: 0; padding: 0; float: left; margin-right: 10px; }
#sortable li { margin: 0 5px 5px 5px; padding: 5px; font-size: 1.0em; width: 350px; }
</style>[/html]
Now the list is enriched to support sortability and a handler is developed, which stores the order of elements:
[javascript]<script type=”text/javascript”>
$(function() {
$(“#sortable”).sortable();
$(“#sortable”).disableSelection();
});

function storeOrder() {
var result = $(‘#sortable’).sortable(‘toArray’);
var context = “”;
for (var id in result) {
if (context == “”) {
context = result[id];
} else {
context = context + “_” + result[id];
}
}
window.location = “/${pageName}” + “.save/” + context;
}
</script>[/javascript]
Finally the list itself must be included and a link to store the changes provided:
[html]<ul id=”sortable”>
<li t:type=”loop” source=”elements” value=”element” id=”${element.id}”>${element.name}</li>
</ul>
<a href=”#” id=”prepare” onClick=”storeOrder()”>${message:save}</a>
<t:actionlink t:id=”save” context=”literal:dummy”></t:actionlink>[/html]
Every list element is created with invisible instrumentation of the Loop-component of Tapestry. The first function in the Javascript-block enables moving elements by mouse within the list and disables selections.

When clicking the HTML-link the storeOrder() Javascript-function is called. This function creates an array of the element-IDs in the most recent defined order. As the list will be handled over to an ActionHandler-function by ActivationContext on Tapestry server-side and comma-separated lists are forbidden within this context, the array is converted to a single string, where the IDs are separated by underscore. This string can easily be converted to an array again with the  String.split() Java-function.  Be aware, that therefore an ActionHandler has to be provided on server-side. To accomplish this a pseudo ActionLink is created within the Tapestry-Template. The redirect of the storeOrder()-function calls the ActionHandler with the given context manually.

Demo

A demo of the Sortable-component of jQuery UI can be found here.

Inside FAU.ORG 2.0

English Version

Der neue Kern von FAU.ORG zeichnet sich durch moderne Technologien, schlankeres Design, verbesserte Modularität und neue Interoperabilität aus. Dieser Artikel stellt die neuen Kernkomponenten aus technischer Sicht vor und gibt einen kleinen Einblick in die Entwicklungsarbeit mit modernen Softwarekonzepten bei P&P.

 

Ein Dinosaurier in neuem Gewandt

Der neue FAU.ORG Kern setzt auf längst Bewährtes auf: relationale Datenbanken. Mit dem Java Content Repository System Jackrabbit als Persistierungs-Backend hatte man zwar Versionierung und dynamische Schemata, es ließen sich Versionen jedoch nur chronologisch geordnet erzeugen. Anders formuliert war es nicht ohne Weiteres möglich in der Vergangenheit zu arbeiten, insbesondere Änderungen der Vergangenheit auf die Gegenwart auswirken zu lassen.

Daher wurde für den neuen Kern ein Konzept entwickelt, was man aus der Videokodierung kennt. Hier werden nicht für jedes Bild (oder auch Frame) des Videos ganze Bilder (Keyframe) gespeichert, sondern nur in bestimmten Abständen. Alle dazwischen liegenden Frames speichern lediglich Änderungungsinformationen von einem Bild zum nächsten. Damit lassen sich die darzustellenden Informationen verlustfrei komprimieren.
In FAU.ORG findet das gleiche Prinzip seine Anwendung.
Der aktuelle Tag liegt immer als vollständige Information in einem klassischen Relationenschema vor. Dabei wurde schlicht davon ausgegangen, dass die meisten Zugriffe auf die Organisationsstruktur zum aktuellen Tag stattfinden und nicht in der Vergangenheit oder Zukunft. Alle Änderungen an Organisationseinheiten werden lediglich als Änderungsinformationen gespeichert. Im Gegensatz zu einem Videocodec allerdings mit dem neuen und dem alten Wert, damit man Zustände von Organisationseinheiten sowohl zeitlich vorwärts als auch rückwärts berechnen kann. Mit dieser Methode ist es möglich geworden, den Zustand des Organisationsbaums zu jedem beliebigen Zeitpunkt zu berechnen. Der Mehraufwand ist dabei verschwindend gering und liefert durch die Verwendung einer relationalen Datenbank mit bedacht gewählten Indizes gute Performance. Die Implementierung verwendet für den Zugriff auf die Datenbank Hibernate, wodurch weitestgehend objektorientierte Datenbankzugriffe verwendet werden konnten und das darunter liegende Datenbanksystem ohne Weiteres ausgetauscht werden kann. Durch Hibernate lassen sich aus einer Datenbank zu ladende Objekte direkt initialisieren, d.h. das Resultat der Abfrage an die Datenbank muss nicht mehr durch den Programmierer in die objektorientierte Welt übersetzt werden, sondern findet im Hibernate Framework selbst statt. Lediglich für die Berechnung eines Zustands in der Vergangenheit oder Zukunft werden die Attributwerte aus den Änderungstabellen geladen und per Java Reflection als Objekte instanziert.

 

Viele kleine Helfer

FAU.ORG wird nicht nur als zentrale Instanz die Organisationsstruktur der Universität Erlangen-Nürnberg verwalten, sondern eine Reihe externer, heterogener Systeme mit den verwalteten Daten provisionieren. Da jede Nacht für den aktuellen Tag der oben beschriebene Keyframe berechnet werden muss, werden gleichzeitig alle Änderungsereignisse, die an diesem Tag gültig werden ausgelesen. Diese Änderungen müssen an die externen Systeme verschickt werden. Um das System später leichter um neue anzubindende Systeme zu erweitern, strebt man eine möglichst generische Architektur an. Daher wurde der neue Kern von FAU.ORG ausschließlich als EJB-Komponenten (Enterprise JavaBean) implementiert. Diese Technologie birgt unter anderem die folgende Vorteile in sich:

  • Implementierung gegen Schnittstellen als Grundlage der Umsetzung
  • losere Kopplung der Komponenten durch kleinere Module, die per Annotationen miteinander verbunden werden können
  • leichteres Neu-Deployen von Komponenten on-the-fly im laufenden Betrieb, wenn Aktualisierungen oder Bugfixes vorliegen
  • einfachere Transaktionsverwaltung out-of-the-box
  • Trennung der Methoden, die durch interne und externe Aufrufe verwendet werden dürfen/können (lokale und entfernte Schnittstelle)
  • andere Projekte aus P&P können diese Komponenten einfach nutzen
  • problemlose Anbindung an einen Enterprise Service Bus (ESB), über den die Exportprozesse für externe Systeme leichter und generischer umgesetzt werden können

Durch die Verwendung von EJBs und dem ESB können Änderungen einfach als Nachrichten über den Bus verschickt und von den verschiedenen Treibern, die externe Systeme anbinden, entgegengenommen und verarbeitet werden. Weiterhin macht diese Methodik die Konfiguration dieser Prozesse einfacher.

 

FAU.ORG setzt also auf Altbewährtes, Aufgebohrtes, Brandneues und lose Gekoppeltes und ist damit gerüstet für alle zukünftigen Aufgaben. 🙂

Inside FAU.ORG 2.0

FAU.ORG’s new core is characterized by its use of modern technologies, a slim design, advanced modularity and new interoperability. This article introduces the new core components from a technical point of view and gives some insight into the developing process with modern software concepts at P&P.

A dinosaur with new clothes.

FAU.ORG’s new core uses a proven system: relational databases. While you already had versioning and dynamic schemata with Java Content Repository System Jackrabbit as a persistance backend, versions could only be created in a chronological order. In other words, you could not simply ?work in the past?, changes in the past with an effect on the present were rather difficult.

So a new concept was created for the core, adapted from video coding. Not every picture (or frame) in the video is saved as a complete picture (or keyframe), instead keyframes are only created in certain intervals. All the frames in between store only changes from one picture tothe next. That way, the information to be displayed can be compressed without loss. FAU.ORG implements the same principle.

The current day always contains the complete information in a classic relational schema. It is assumed that most will access the organisational structure on the current day and not at some point in the past or future. When changes are made to the organisational units, only those changes are stored. The difference to a video codec is that both the new and the old value are saved, so that organisational units’ states can be recreated both forward and backwards in time. With this method, it is possible to create the state of the organisational tree at any point in time. The additional workload is negligible, and by using a relational database with cautiously chosen indices, performance is good. The implementation uses Hibernate for accessing the database, so that most database accesses are object oriented, making sure that the basic database system can easily be exchanged. Hibernate allows direct initialisation of objects loaded from the database, i.e. results from accessing the database do not have to be translated into the object-oriented world, but are used directly within the Hibernate Framework. Attribute values are only loaded from the change tables and instanced via Java Reflection as objects when calculating a state in the future or past.

Lots of little helpers

FAU.ORG is not only going to manage the Universiy Erlangen-Nuremberg’s organisational structure as central instance, it will also provision a number of external, heterogenous systems with the managed data. Since the keyframe mentioned above needs to be constructed every night, all change events relevant for the next day are read. These changes need to be sent to external systems. To ease expansion into new systems later, it was aimed to keep the architecture as generic as possible. FAU.ORG’s core, e.g., was implemented exclusively as EJB components. This technology comes with the following advantages:

  • Implementation against interfaces as basis for the realisation.
  • Loose coupling of components through use of smaller modules, which can be connected via annotations.
  • Easier new deploying of components on-the-fly in a running system, when updates or bugfixes are available.
  • Easier transaction management out-of-the-box.
  • Separation of methods that can be called internally and externally (local and remote interfaces).
  • Other P&P projects can use these components easily.
  • Easy connection to an Enterprise Service Bus (ESB), so that export processes for external systems can be implemented easier and more generically.

By using EJBs and an ESB, changes can be transferred as messages through the bus, and can be accepted by the various drivers that connect external systems. Furthermore, this method makes configuration of the processes easier.

To sum up, FAU.ORG combines things well tried, finely tuned, brand new and losely coupled, and is thus ready for all future tasks.

Friedrich-Alexander-Universität verwaltet ihre Organisationsstruktur jetzt online

English Version

Seit dem 19.01.2010 werden alle Einträge und Änderungen der Organisationsstruktur der Friedrich-Alexander-Universität über die zentrale Webanwendung FAU.ORG online abgewickelt.

Bayerische Hochschulen werden immer stärker in die Pflicht genommen, ihre Zahlungs- und Leistungströme transparent darzustellen. Dies soll durch die Einführung einer bayernweit verbindlichen universitären Kosten- und Leistungsrechnung (KLR) in diesem Jahr erreicht werden, für die wiederum Daten aus den unterschiedlichen Bereichen der Universität zusammengeführt werden. Die KLR setzt eine zentrale Datenbank, die Organisations- und Kostenstellennummern verwaltet voraus. Die technische Implementierung einer entsprechenden webbasierten Anwendung zur Verwaltung der Organisationsstruktur der Friedrich-Alexander-Universität steht im Fokus des Projekts FAU.ORG.

Über die Webanwendung hat derzeit ein noch kleiner Kreis Zugriff auf die Organisationsstruktur der Universität Erlangen-Nürnberg und die Berechtigung zur Datenänderung. Über die E-Mail-Adresse fau.org-support@zuv.uni-erlangen.de eingehende Anfragen und Änderungswünsche werden bearbeitet. Zukünftig werden die Daten automatisiert an die angeschlossenen Systeme übertragen.

Deshalb setzt sich das Projekt FAU.ORG auch in diesem Jahr noch fort. Ein Team aus Mitarbeitern der Zentralen Universitätsverwaltung (ZUV) und des RRZE arbeitet an der Anbindung der Finanz- und Sachmittelverwaltung HIS FSV. Und auch der Identity Management (IdM) Self Service sowie das Informationssystem UnivIS sollen integriert werden. Weitere Systeme folgen nach.

Aktuelle Informationen zur Entwicklung finden Sie hier.

Kontakt

Markus Leber, ORR
Leiter Kanzlerbüro
Markus.Leber@zuv.uni-erlangen.de

Hendrik Eggers
RRZE, Projekte & Prozesse
Hendrik.Eggers@rrze.uni-erlangen.de

Friedrich-Alexander-University introduces online management of organisational structure

Since 19.01.2010, all new entries and changes in the Friedrich-Alexander-University’s organisational structure are conducted online via web application FAU.ORG.

Bavarian universities are increasingly held to make their costs and services transparent. One step in this direction is the introduction of statewide cost and activity accounting (Kosten- und Leistungsrechnung, KLR) for universities. For this, data from various sectors of the university needs to be merged. Using a central database that allows maintenance of organisational numbers and cost units enables KLR to be implemented. FAU.ORG focusses on the creation and technical implementation of a web-based application for managing the Friedrich-Alexander-University’s organisational structure.

So far, a small group of people has access to and permission to change the University Erlangen-Nuremberg’s organisational units. Queries and requests for changes arriving via fau.org-support@zuv.uni-erlangen.de are processed, the resulting data is then transferred to all connected systems.

Project FAU.ORG will continue its work this year. A team consisting of members of the central university management (ZUV) and the RRZE are working on a connection to finance and assets management system HIS FSV. Next in line to be integrated are the Identity Management (IdM) Self Service and the information system UnivIS. Further systems will follow further down the line.

Current information about the development can be found here in the blog.

Contact

Markus Leber, ORR
Head of Chancellor’s office
Markus.Leber@zuv.uni-erlangen.de

Hendrik Eggers
RRZE, Projects & Processes
Hendrik.Eggers@rrze.uni-erlangen.de

Von einer Organisationsstruktur in Raum und Zeit

English Version

Als zentrale Komponente zur Verwaltung der Organisationsstruktur der Universität Erlangen-Nürnberg hat FAU.ORG nun das Release der zweiten Version erreicht. Seit der ersten Version hat sich hier einiges verändert. Die Benutzeroberfläche weist einige Neuerungen und verbesserte Features auf und die Kernkomponente wurde sogar komplett neu entwickelt. Dieser Blogartikel stellt das neue, bessere, schnellere und einfachere FAU.ORG vor.

Neue Datenhaltung

Die neu entwickelte Kernkomponente von FAU.ORG basiert nun auf einer relationalen Datenbank und bietet die folgenden Möglichkeiten:

  • Abbildung der benötigten Informationen in ein geeignetes Entity-Relationship-Schema
  • Persistierung der Daten und Änderungen auf diesen Daten (in separaten Relationen)
  • Unterstützung der temporalen Semantik für die Speicherungen von Änderungen in der Vergangenheit, Gegenwart und Zukunft
  • Volltextsuche in den Daten der Gegenwart

Zunächst wurde aus dem Datenmodell der ersten Version ein Entity-Relationship-Modell (ER-Modell) mit geringen Modifikationen erstellt. Da die meisten Attribute einer Organisationseinheit einwertige Daten enthalten, hätte man nur eine sehr geringe Anzahl an Relationen mit vielen Attributen entwerfen können. Dann wäre es jedoch nicht mehr so einfach gewesen, zusammen gehörende Daten zu gruppieren und später eine feingranulare Zugriffskontrolle auf bestimmte Attributgruppen zu implementieren. Über dies lässt sich mit mehreren Tabellen ein Mechanismus namens Lazy Loading nutzen. Hierbei werden aus der Datenhaltung nicht mehr alle verfügbaren Daten geladen, sondern nur noch das, was der Benutzer gerade benötigt. Das spart Hauptspeicher und ist in den meisten Fällen effizienter.

Neben den Relationen zur Speicherung der eigentlichen Daten, werden in FAU.ORG alle Änderungen von Beginn an auch als Änderungsereignisse in zwei eigenen Tabellen gespeichert. Ein Änderungsereignis bezieht sich auf das Erstellen, Modifizieren und Löschen von Daten einer Attributgruppe. Jedes Änderungsereignis enthält eine Reihe von Änderungseinträgen, die den alten und den neuen Wert des modifizierten Attributs, sowie das Datum der Änderung und das Datum, ab dem die Änderung gültig wird, enthalten. Dadurch ist es möglich in der Zeit zu reisen, da der Zustand jeder Organisationseinheit für jeden beliebigen Zeitpunkt aus dessen Änderungsereignissen berechnet werden kann.

Damit nicht bei jedem Zugriff der Zustand einer Organisationseinheit berechnet werden muss, enthält die Datenbank den Stand der Gegenwart in den eigentlichen Relationen zur Datenhaltung. Diese können schneller ausgelesen werden. Ändert der Benutzer etwas in der Zukunft werden für diese Änderungen lediglich Änderungsereignisse erstellt und gespeichert. Eine eigene Komponente liest jede Nacht die Änderungsereignisse aus, die für den aktuellen Tag gültig werden und setzt diese Änderungen im Stand der Gegenwart um. Damit wird der Zustand in den Tabellen immer up-to-date gehalten. Eine ähnliche Komponente wird in späteren Versionen externe Systeme mit diesen Änderungen provisionieren. Werden die Organisationsdaten in der Vergangenheit geändert, trägt die Datenhaltung diese Änderungen ebenfalls als Änderungsereignisse ein, prüft danach jedoch zusätzlich, ob sich diese Modifikationen auf die Gegenwart auswirken. Dies ist der Fall, wenn das Attribut der betroffenen Organisationseinheit zwischen dem Änderungszeitpunkt der Vergangenheit und dem Stand der Gegenwart nicht noch einmal modifiziert wurde. Die Änderung wird dann dementsprechend in den Relationen der Gegenwart umgesetzt.

Für die Suche wurde in der neuen Datenhaltung wieder eine Volltextindizierung integriert. Das heißt, dass Benutzer nach beliebigen Stichwörtern in allen Attributen suchen können. Die Volltextsuche kann in zukünftigen Versionen so erweitert werden, dass sie auch die Daten der Vergangenheit und Zukunft indiziert.

 

Neue und verbesserte Features in der Weboberfläche

Die Benutzeroberfläche von FAU.ORG hat ebenfalls einige Neuerungen zu bieten. So lassen sich beispielsweise Kontaktdaten, die Anschrift und die Statistikschlüssel rekursiv ändern. Das bedeutet, dass die Änderungen auch bei allen bzw. ausgewählten Kindern dieser Organisationseinheit umgesetzt werden. Das Verschieben von Einheiten ist nun auch problemlos möglich. Der Benutzer muss lediglich eine neue Organisationsnummer vergeben (dazu mehr weiter unten) und die Einheit wird mit allen Kindern im Baum an die entsprechende Stelle verschoben.

An der Benutzerfreundlichkeit der Weboberfläche wurde ebenfalls gearbeitet. Die Übersichtsseite einer Organisationseinheit enthält nun Sprungmarken, damit Benutzer schneller zur gewünschten Information gelangen. Des Weiteren unterstützt FAU.ORG nun die Anmeldung per SSO. Die wichtigsten Funktionen sind nun direkt aus dem Baum der Organisationseinheiten abrufbar. Des Weiteren zeigt der Baum nun die Langbezeichnung der Einheiten, was die Lesbarkeit verbessert.

Für die Integration der temporalen Semantik wurde in die Hauptseite eine Auswahlbox für das Systemdatum eingebaut. Hier wählt der Benutzer das Datum, in dem das System gerade betrieben wird. Damit entscheidet man also, ob man sich in der Vergangenheit, Gegenwart oder Zukunft arbeiten möchte. Die angezeigten Daten entsprechen dem zum ausgewählten Datum gültigen Stand der Organisationsstruktur. Das gewählte Systemdatum wird in allen Seiten in der kleinen Infobox auf der rechten Seite angezeigt.

Die verschiedenen Zustände (oder Versionen) der Organisationseinheiten lassen sich in der Historienansicht abrufen. Hier wird angezeigt, wer die Änderung erstellt hat, wann die Änderung erstellt wurde und zu welchem Zeitpunkt die Änderung gültig werden soll. Diese Ansicht lässt sich auf bestimmte Attributgruppen und Zeiträume filtern. Die Weboberfläche unterscheidet zudem seit der zweiten Version normale und kleine Änderungen. Eine kleine Änderung bezeichnet Modifikationen an den Daten, die lediglich Schreibfehler oder ähnliches betreffen und keine Wertänderung im eigentlichen Sinne darstellen. Kleine Änderungen lassen sich in der Historienansicht ausfiltern, was der Übersichtlichkeit beiträgt.

Das Erstellen von Brücken wird nun vollautomatisch von der Weboberfläche übernommen. Zur Erinnerung: jede Organisationseinheit besitzt eine Organisationsnummer aus fünf zweistelligen Zahlen. Der Organisationsbaum wird nach diesen Nummern aufgebaut und besitzt daher eine maximale Tiefe von fünf Ebenen. Ein Beispiel: der Hauptknoten des RRZE im Baum besitzt die Organisationsnummer 10 11 12 00 00. Dessen Vaterknoten hat dementsprechend die 10 11 00 00 00. Es kann nun vorkommen, dass ein Knoten einem Vaterknoten zugeordnet ist, der mehr als eine Ebene höher im Baum liegt. Mit anderen Worten überspringt ein Kind damit eine oder mehrere Ebenen. Der Datenmanagement-Lehrstuhl der Informatik besitzt beispielsweise die 15 13 00 16 00 und überspringt die dritte Ebene im Baum. Damit der Baum keine Lücken aufweist, existieren an diesen Stellen besondere Knoten, sogenannte Brücken (hier die 15 13 00 00 00), die als letzte definierte Stelle in der Organisationsnummer eine Doppelnull besitzen. Das Erstellen von Brücken wird in der zweiten Version nun vollkommen automatisch übernommen, sobald eine Brücke benötigt wird. Brücken werden ebenfalls automatisch gelöscht, falls sie keine Kinder mehr besitzt.

 

Zu den technischen Finessen werde ich im nächsten Blog-Artikel einen tieferen Einblick in die Umsetzung der Version 2 liefern.

RRZE ? Projects & Processes (P&P): An organisational structure in space and time

An organisational structure in space and time

The University Erlangen-Nuremberg’s central component for managing its organisational structure, FAU.ORG, has released its second version. There have been quite a few changes since the first version was originally released. Several improvements have been made to the user interface, improved features have been added and a new core component has been developed. This articles introduces the new, better, faster and easier-to-use FAU.ORG.

New Data management

FAU.ORG’s newly developed core component is now based on a relational database and offers the following:

  • Mapping the necessary information in a suitable entity relationship schema
  • Both persistance of data and changing the data (in separate relations)
  • Supporting temporal semantics for saving changes in the past, present and future.
  • full-text search in present data.

First, an entity relationship model (ER-model) was created from version 1’s data model with only a few changes. As most of the organisational units’ attributes only contain single values, a system with only few relations and a large number of attributes would have been possible. This would have impeded both the grouping of data belonging together, and a later implementation of access control for attribute groups. Use of several tables also allows use of a method called Lazy Loading. With this method, not all available data is loaded from data storage, but only the items the user needs at the moment. This saves memory and is more efficient in most cases.

In addition to saving the actual data, all changes in FAU.ORG are saved as change events in two tables. A change event is given when an attribute group is created, modified or deleted. Every change event contains a number of change entries with the old and new value of the modified attribute, date of the change and the date the change becomes active. This makes ?time travel? possible, as the state of every organisational unit at any point in time can be recreated from these change events.

To avoid having to create the state of an organisational unit with every access, the database contains the present state in the relations for data storage, as these can be read faster. If a user changes something in the future, change events are created and saved. A separate component reads these change events every night, selects those that become active the next day and includes them in the present state. That way, the tables are kept up to date. A similar component will later provision external systems with these changes. If organisational data is changed in the pats, data storage also enters these changes as change events, but then goes on to check if the modification affects the present state. That is the case if the attribute of the organisational unit in question is not modified again between the time of change in the past and the present state. Then, the change is included in the present relations.

For searching, the new data storage has been provided with a full-text index. That allows the user to search for keywords in all attributes. This can be expanded in future versions to allow indexing of past and future data.

New and improved features in the web interface

There are several improvements in FAU.ORG’s user interface as well. Recursive changing of contact data, mailing address and statistical keys is now possible, allowing changes for all or selected children of an organisational unit. Moving units is also much easier now. The user only needs to enter a new organisational number (more on this further down), and the unit and all its children are moved to a new place in the tree.

The website is now much more user-friendly. The starting page contains new jump labels, allowing users to get to the wanted information more easily. Furthermore, FAU.ORG now supports SSO login. The most important functions are available directly from organisational unit tree. The tree also uses the long description of units now, improving readability.

For better integration of the temporal semantic, the main page now features an entry box for the system date. Here, the user can chose the date at which the system runs. That way, you can chose whether to work in the past, present and future. The data displayed matches the organisational structure valid at the selected date. The system data chosen is always displayed in an info box on the right side of the screen.

The organisational units’ different states (or versions) can be selected in the history view. Here you can see who entered a change, and at what time that change will become active. Filters for attribute groups and time periods can be used in this view. The web interface also differenciates between normal and small changes. A small change indicates minor modifications to data like fixed spelling mistakes. They do not normally represent real changes to the values themselves. These small changes can be filtered out in the history view.

Bridges are now created automatically by the web interface. A reminder: Every organisational unit has its own organisational number, consisting of five two-digit numbers. The organisational tree is created from these numbers and accordingly has a maximum depth of five levels. E.g.: The RRZE’s main node in the tree is organisational number 10 11 12 00 00. Its father node is therefore 10 11 00 00 00. It is possible, however, for nodes to be attached to a father node that is more than one level higher up the tree. In other words, the child jumps one or more levels. Since the tree cannot have any ?gaps? special nodes, so called bridges, are entered in these places. Their last defined digit ist 00 (in our example 15 13 00 00 00). These bridges are now created automatically when they are needed. They are also deleted automatically if they do not have any children.

For the finer technical details, I will use the next blog article to give some insight into version 2’s implementation.

Neues von FAU.ORG

Alles neu macht der Mai!

Hallo, mein Name ist Martin Fischer und ich bin seit dem 1. Mai 2009 beim Regionalen RechenZentrum als Entwickler für das FAU.ORG Projekt angestellt. Die Einarbeitungsphase gestaltete sich recht unkompliziert, da sich Krasimir Zhelev netterweise genügend Zeit nahm, mich in die Architektur und die Sourcecodestruktur einzuarbeiten. Der größte Teil der Einarbeitung machte daher die Installation der benötigten Eclipse-Plugins und der initiale Datenimport, um lokal mit FAU.ORG entwickeln und testen zu können. Mittlerweile ist fast ein Monat vergangen und habe ich mir die Verzeichnisstrukturen verinnerlicht und kann mich auf die eigentlichen Aufgaben konzentrieren.

Ausblick auf Release 2

Nachdem am 24. März die erste Version von FAU.ORG online ging, ist nun das zweite Release in Planung.

Neue Funktionen

In der zweiten Version von FAU.ORG soll es möglich sein, den Baum, der die Organisationsstruktur repräsentiert, zu einem bestimmten Zeitpunkt in der Vergangenheit zu betrachten. Dies betrifft sowohl die Attribute einer Organisationseinheit, als auch die Struktur des Baumes.

Historie

Als Persistierungsschicht wurde mit Jackrabbit ein Java Content Repository verwendet, damit die Datenhaltung versioniert werden kann. Ändern sich Attribute von Organisationseinheiten oder die Struktur des Baumes, wird für jede Änderung eine Version angelegt, die später wieder abgerufen werden kann. Der Benutzer wählt hierzu ein Datum und lässt sich den Baum mit dem Stand zum gewählten Zeitpunkt anzeigen.

Rekursives Ändern von Attributen

Zur Vereinfachung von Änderungsoperationen an Attributen von Organisationeinheiten wird das neue FAU.ORG in der Lage sein, Veränderungen an Attributen von Einheiten rekursiv durch alle Untereinheiten zu propagieren. Damit können Benutzer beispielsweise die Adresse eines Instituts ändern und die Adressen aller untergeordneter Lehrstühle, etc. werden automatisch mitgeändert – versioniert selbstverständlich.

Verschieben oder was der Benutzer dafür hält

Das zweite Release von FAU.ORG soll weiterhin die Möglichkeit enthalten, Organisationseinheiten im Baum zu verschieben. Davon sind natürlich auch alle untergliederten Einheiten der zu verschiebenden betroffen. Der Benutzer wählt lediglich den Knoten aus, der zukünftig als Übergeordnete Einheit fungieren soll und der Teilbaum wird automatisch verschoben. Dabei werden die Organisationsnummern automatisch angepasst.
Im Detail betrachtet ist die Bezeichnung Verschieben jedoch ein wenig irreführend, da eine neue Organisationseinheit angelegt und die alte invalidiert wird. Der Benutzer wählt daher neben dem neuen übergeordneten Knoten auch ein Auslaufdatum für die alte Struktur und ein Einführungsdatum der neuen. Zusätzlich wird ein Datum angegeben, mit dem die alte Einheit ein neues Publikationskennzeichen bekommt. Abschließend wird dem Benutzer eine Liste von Attributen angezeigt, die nach dem Verschieben der Einheit einer Aktualisierung bedürfen. Die Anpassung dieser Attribute kann selbstverständlich rekursiv erfolgen.

Sonstiges

Des Weiteren ist vorgesehen Übersetungen in verschiedene Sprachen besser in das Datenmodell zu integrieren, so dass die gesamte Beschreibung einer Organisationseinheit in unterschiedlichen Sprachen vorliegen kann.

Überdies sind noch kleinere Änderungen geplant, wie zum Beispiel das Breadcrumb-Menu anklickbar zu machen, um Benutzern die Navigation zu vereinfachen.

News from FAU.ORG

The merry month of May!

Hello, I’m Martin Fischer. I was hired as developer for the RRZE’s project FAU.ORG on May 1st 2009. It didn’t take me long to adjust to my new job, since Krasimir Zhelev was kind enough to take the time and introduce me to both architecture and source code structure. Therefore, the biggest adjustment for me was installing the needed Eclipse-Plugins and importing the necessary data to enable me to develop and test FAU.ORG locally. After almost a month, I have now internalised the directory structure and am able to start with the work I was hired for.

Outlook on Release 2

After the first version of FAU.ORG went live on March 24th, the second release is now in design.

New Functionality

FAU.ORG’s second version should offer a view of the organisational tree at points in the past. This includes both attributes of organisational units and the tree’s structure.

History

For use as a persistent layer, we chose to use Jackrabbit as Java Content Repository, to put data storage under version control. As soon as changes to organisational units’ attributes or the tree’s structure occur, every change is saved in a separate version that can be recalled later. The user choses a date, and can view the tree with all attributes that were valid at that time.

Recursive changing of attributes

For easier changes to the attributes of organisational units, the new FAU.ORG will be able to propagate unit attribute changes recursively for all subunits. That allows users to change the adress of an institute, automatically changing all chairs, etc. within the institute as well – versioned, of course.

Moving units – or seeming to

FAU.ORG’s second release should also contain a way to move organisational units within the tree. This affects all subdivisions of that unit, too, of course. The user simply choses the node representing the future superordinate unit, and the relevant part of the tree will be moved, adjusting all organisational numbers as necessary.
Viewed in detail, “moving” is slightly misleading, as a new organisational unit is created and the old one is deleted. Therefore, the user choses a expiration date for the old structure and an introduction date for the new one. A third date is needed, stating when the old unit receives a new sign for publications. Finally, the user is given a list of attributes that need to be brought up to date after the move. These can be adjusted recursively, of course.

Miscellaneous

Translations for different languages will be better integrated into the data modell, making the whole description of an organisational unit available in different languages.

Furthermore, smaller changes are planned, like making the breadcrumb menu clickable for easier navigation.

FAU.ORG Release 1 online

Wie lange angekündigt, wurde heute die erste Version von FAU.ORG – der Webanwendung für das Management der Organisationsstruktur der Friedrich-Alexander-Universität Erlangen-Nürnberg – unter https://www.fauorg.zuv.uni-erlangen.de/ freigegeben.

Funktionsumfang

Als Datenbasis diente eine sinnvolle Mischung der Informationen zur Organisationsstruktur der Uni aus HIS FSV und DIAPERS den die Kollegen Reimer und Deinzer via RRZE Stammdatenbank zur Verfügung gestellt haben. Das war das Aktuellste an Informationen, was digital vorlag.

FAU.ORG zeigt den berechtigten Benutzern diese Daten als Baum an. Für diese Anzeige wie für die gesamte Anwendung gilt in dieser Version, dass JavaScript zwingend (!) für die Bedienung notwendig ist. Eine spätere Version wird annähernd komplett barrierefrei sein.

Über die vorhandenen Daten kann mittels Volltextsuche gesucht werden. In den Suchtreffern werden dabei die gefundenen Stellen fett
hervorgehoben. Kurze Hilfetexte auf vielen Seiten helfen bei der Bedienung. Diese werden sukzessive ausgebaut.

Jeder Eintrag im Baum kann selbst verständlich auch angezeigt werden. Allerdings sind derzeit viele Attribute nicht belegt. Aus dieser Ansicht heraus kann auch jede Organisationseinheit einzeln oder die komplette Organisationsstruktur als csv-Datei exportiert werden.
Gespräche über weitere Exportformate starten am 30.03.09.

Zusätzlich zu dem intern angekündigten Funktionsumfang ist auch das Anlegen neuer Organisationseinheiten möglich. Das können nicht nur OE selbst sein, sondern auch Platzhalter für Ebenen die nur in darunter liegenden Ebenen belegt sind. Diese in der Spezifikation als "Nullknoten" bezeichneten Platzhalter wurden nun politisch korrekter als "Brücken" bezeichnet.

Zum derzeitigen Zeitpunkt vielleicht weniger interessant, dennoch ist auch FAU.ORG – wie jede Anwendung der P&P Software Architektur (kurz PPSA) – komplett zweisprachig (Deutsch, Englisch) ausgelegt. Gerade im Hinblick auf die spätere Öffnung für Endkunden eine kleine aber wichtige Funktion.

Alle Funktionen erreichen Sie derzeit über Textlinks. Zum 01.05.09 wird unser Team aber durch eine Studentische Hilfskraft für Design verstärkt.
Diese wird das RRZE Icon Set um die benötigten Icons erweitern und so die Anwendung aufwerten. Dann dürften sich also auch noch einige Verbesserungen im Design ergeben.

Einschränkungen

Intern war ein Release 2 in drei Wochen ab heute angekündigt in dem das Anlegen und Verschieben von Organisationseinheiten möglich sein sollte. Wie beschrieben funktioniert das Anlegen nun bereits. Das Verschieben bedarf allerdings noch der genauen Spezifikation. Da in nächster Zeit einige Pflichturlaube – es ist noch alter Urlaub da! – anstehen, ist mit einem Abschluss der Spezifikation nicht vor Mai zu rechnen. Entsprechend verschiebt sich die Bereitstellung der Funktion "Verschieben".

Neben Anzeigen und Neuanlage ist selbstverständlich auch das Ändern der Attribute einer Organisationseinheit möglich.
Wie bei einer internen Präsentation am 26.02.09 und verschiedenen nachfolgenden Gesprächen deutlich wurde, mussten aber einzelne Attributgruppen im Release ausgenommen werden, da noch Verfeinerungen der Spezifikation für diese Gruppen notwendig sind.
Hiervon sind betroffen:

  • die Statistikschlüssel
  • die Informationen zur Leitung einer OE
  • die Übersetzungen der OE-Bezeichnung
  • die zusätzlichen Adressen für Lieferanschrift und Postfach-Adresse

Außerdem verfügt FAU.ORG derzeit über keinerlei Eingabeunterstützung. D.H. bei Felder in denen vordefinierte Werte eingetragen werden sollen, werden diese nicht zur Auswahl angeboten. Alle Berechtigten sind dazu aufgerufen auf den Seiten, auf denen Ihnen das Fehlen solcher Eingabeunterstützung auffällt diese per Feedback-Formular (Link oben rechts auf jeder Seite) an den Support zu melden. Bitte beschreiben Sie dabei:

  • für welches Feld, Sie Unterstützung benötigen,
  • was mögliche Auswahlwerte sind oder
  • woher diese bezogen werden können.

Hier sind wir auf die Anwendungserfahrungen aus dem täglichen Betrieb angewiesen.

Aus zeitlichen Gründen war es in dieser Version nicht möglich eine Rollenkonzept komplett zu implementieren. Aus diesem Grund ist der Kreis der Berechtigten sehr klein gehalten. Wer dennoch mal FAU.ORG "anfassen" möchte ohne was kaputt zu machen, der nutze bitte das Entwicklungssystem, die Zugangsdaten gibt es auf persönliche Anfrage bei Hendrik Eggers.

"Aus zeitlichen Gründen" ist dann auch das Stichwort mal über die aufgewendeten Ressourcen zu reden:
 

  • Der Prototyp für die Backend-Funktionen wurde in drei Monaten erstellt.
     
  • Das Release 1 wurde in ca. 7,5 Personenmonate, die in 2 Kalendermonaten erbracht wurden, realisiert. Ein Kraftakt, der nur dank dem Einsatz der Kollegen und der Vernachlässigung der Projekte IdM, CIT, Veranstaltungsverwaltung und DLP möglich war.
     

Darum möchte ich mich ganz herzlich bei

bedanken!

Ihr/Euer Einsatz hat dies alles in kürzester Zeit möglich gemacht. Ohne Euch würde immer noch nichts Laufen – DANKE!!!

Nachspann

Da es eine Namenskollision mit http://www.fau.org/ gibt, rufe ich einen Ideenwettbewerb um einen alternativen Namen aus.
Er sollte sprechend, griffig und politisch korrekt sein.
Ein Beispiel:
HORST – HochschulORganisationsmanagementSysThem – fiel durch, da die FAU eine Universität und keine Hochschule ist.

Vorschläge bitte per E-Mail bitte an mich.

Gute Nachricht zum Schluss

Nach 11 Monaten der Suche wurde HEUTE ein Kandidat für die vakante Entwicklerposition FAU.ORG gefunden.
Wir begrüßen ihn hoffentlich ab 01.05.09 im Team.

FAU.ORG Release 1 online

After having been announced for a long time, the first version of FAU.ORG – our web application for managing the Friedrich-Alexander-University Erlangen-Nuremberg’s organisational structure – has today been released under https://www.fauorg.zuv.uni-erlangen.de/.

Features

Basis for the project’s database is a combination of organisational structure information from HIS FSV and DIAPERS, provided by our colleagues Reimer and Deinzer using the RRZE root database. This was the most up-to-date information digitally available.

To the authorized user, FAU.ORG presents this data as a tree. For this display, as well as for this version’s whole application, JavaScript is obligatory(!). A later version will be almost completely barrier-free.

The available data can be accessed using full-text search. In the results, hits will be marked in bold. Short help texts on a lot of the pages are helpful for smooth operation. They will also gradually be added to.

Every entry within the tree can of course be viewed separately. Several of the available attributes have not been allocated at this time, however. This view allows the export of csv files, either each organisational unit separately, or the organisational structure as a whole. Talks about further export formats will be held starting 30.03.09

In addition to the functions already announced internally, the creation of new organisational units is now also possible. This includes not only organisational units themselves, but also placeholders for units only occupied at lower levels. These placeholders, called "Zero-knots" within the specifications are now called "Bridges", for more political correctness.

It is perhaps not that interesting at this time, but FAU.ORG is designed to be completely bilingual (German and English) – like every application adhering to P&P Software Architecture (PPSA). Especially with regard to our hopes of gaining more customers later, this is a small but important feature.

At the moment, all functions can be reached via text links. Starting in May 2009, our team will be reinforced by a student assistant for design, however. The assistants first task will be to expand the RRZE Icon Set with the necessary Icons, upgrading the application. The work should also result in several advancements in regards to design.

Limitations

Internally, a Release 2 had been announced to go live three weeks from now. It should have contained the creation and moving of organisational units. As has already been mentioned, creation of new units is already possible in the current release, moving however is still in need of more detailed specifications. As several compulsory holidays – still from last year’s holidays – are coming up, the specifications will not be finished before May. This means that the moving function will be delayed as well.

In addition to viewing and creating units, changing an organisational unit’s attributes is also already possible, of course.

As became clear during an internal presentation on the 26.02.09, several attribute groups had to be excluded in this release, as they were still in need of more detailed specifications.
The affected groups are the following:

  • statistical keys
  • information about leadership of an organisational unit
  • translations for the organisational units’ names
  • additional addresses for delivery and post office boxes

Another feature that has not been implemented yet is input support. Fields with predefined values will not show the available values so far. All authorized users are asked to submit missing input support via our feedback form. The link for the form is on the upper right side of every page. Please state the following in your feedback:

  • for which field do you need support?
  • which possible values are there? or
  • where can they be found?

We will rely heavily on user experience from day to day business.

Due to time limitations, implementation of a role concept was not possible for this version. That means that the group of authorized personnel is rather small. If you would like to "touch" FAU.ORG without the danger of breaking anything, feel free to use the developing system. Access data can be obtained from Hendrik Eggers.

"Time limitations" is also our cue for talking about the resources we used:

  • The prototype for the back-end functions was created in three months.
     
  • Release 1 was realised in two months, with a workload of 7,5 months. This was only possible thanks to excellent performance on the part of our colleagues, and by putting IdM, CIT, event management and DLP on a back burner for the time.
     

For this reason, I would like to thank the following:

Your personal engagement made all this possible in the shortest time. Without you, we would still be miles away from the Release. – THANK YOU –

End titles

Because of a naming collision with http://www.fau.org/, I am calling an ideas challenge for an alternative name.
It should be descriptive, meaningful and politically correct.
An example:
HORST – HochschulORganisationsmanagementSysThem – failed, because FAU is a University and not a "Hochschule" (University of Applied science).

Please mail suggestions to Hendrik Eggers.

Good news at last:

After searching for 11 months, we found a new candidate for the vacant position of developer with FAU.ORG TODAY. Hopefully, we will be able to welcome him to the team in May 2009.

FAU.ORG sucht Verstärkung

Das Projekt FAU.ORG sucht noch immer personelle Verstärkung.
Nachdem Krasimir Zhelev wieder komplett bei IDMone gebraucht wird, ruht die Arbeit an FAU.ORG mehr oder minder komplett auf den Schultern von Aneliya Todorova. Als studentische Hilfskraft ist Ihre Arbeitszeit jedoch sehr stark begrenzt, so dass es derzeit nur sehr sehr langsam voran geht.

Nachdem die letzte Ausschreibung keine ausreichende Anzahl qualifizierte Bewerber erbrachte und nicht alle ausgeschriebenen Stellen besetzt werden konnten, hat das RRZE die Personalsuche wieder aktiv aufgenommen.

Gesucht wird ein engagierter Java-Web-Entwickler mit Affinität für Tapestry, JBoss AS, JackRabbit (JSR170), uvm., die oder der Lust hat in einem jungen, kreativen Team aktiv mitzuarbeiten und die Zukunft einer Universität zu gestalten.

Motto: Wissen muss man nicht alles – nur bereit sein das notwendige schnell zu lernen!

Details finden Sie in der offiziellen Stellenausschreibung.

FAU.ORG Recruitment

Project FAU.ORG is still searching for a qualified developer.
Since Krasimir Zhelev is needed full time at the IDMone project again, the whole workload is up to Aneliya Todorova at the moment. SInce she is a student programmer, her ressources are limted and so progress is very slow.

As the last recruitment did not bring in enough skilled devolopers to staff all vacant developer positions at RRZE, we are now starting to search again.

We are looking for a passionate Java web developer with knowledge and interest in Tapestry, JBoss AS, JackRabbit (JSR170), etc., who is also interested in working with a young, creative Team and helping to redesign a German university.
Motto: You don’t have to know everything – but you have the ability to learn the necessary things fast!

Detailed Advertisement can be found here (Sorry, German only). If you need a translation, please do not hesitate to contact me.
Foreign developers with very good English skills are also welcome to apply! We are already bi-lingual as you can see. 😉

FAU.ORG Neustrukturierung

Nachdem ich mich gründlicher mit dem Projekt FAU.ORG befasst habe, habe ich mich entschieden es in kleineren Teilen zu zerlegen. Das Projekt, das mir übergeben wurde, hatte eine monolithische Struktur, die alle Aspekte der Softwareentwicklung in einem Kodebündel zusammenpackte. Es hat sich herausgestellt, dass die Struktur schwer zu verwalten ist, vor allem mit der anwachsenden Anzahl der Artefakte. Zurzeit, als Ergebnis der Neustrukturierung, besteht FAU.ORG aus den folgenden Komponenten:

  • fauorg-core
  • fauorg-web
  • fauorg-identity
  • fauorg-system
  • fauorg-misc

Die Kernfunktionalität von FAU.ORG, die für die Verwaltung und das Wiederabrufen von älteren Zuständen der Univesitätstruktur, sowie für die Generierung von verschiedenen Reporttypen usw. verantwortlich ist, wird derzeit in fauorg-core implementiert. Die Web-Oberfläche , die einen benutzerfreundlichen Zugriff auf die Kernfunktionalität ermöglicht, ist in dem fauorg-web Teilprojekt extrahiert. Das fauorg-identity Teilprojekt befasst sich mit der Benutzerverwaltung innerhalb dieser Applikation, genau so wie mit der Authentifizierung und der Authorisierung der Benutzer. Verschiedene Arten von Rollen und hierarchische Gruppen können modelliert und instanziiert werden. Ausführungsrechte auf existierende Kodeausschnitte könnten auch vergeben werden. Das fauorg-system Teilprojekt ist für die Serverkonfiguration, für den Einsatz der Applikation und für die Verwaltung der einzelnen Teilprojekte verantwortlich. Viele verschiedene Ideen und Tests werden in fauorg-misc Teilprojekt implementiert und dieses dient als Inkubator für neue Funktionen. Derzeit ist noch der Aufbau von einem Teilprojekt vorgesehen und zwar – fauorg-bpms. Es wird sich mit der Funktionalität der Geschäftsprozessmodellierung innerhalb FAU.ORG beschäftigen. Das Ziel ist die konsistente Integration der fauorg-core, fauorg-identitiy und fauorg-web Teilprojekte. Es ist bereits einen rudimentären Prototyp in PPSA entwickelt worden. Am Ende werden alle Teilprojekte in fauorg-web zusammengefasst und diese Zusammenfassung wird dann als FAU.ORG bezeichnet.

Alle Komponenten sind aufgrund der Verfahren und der Prinzipien von PPSA entwickelt worden. Sie sind alle Maven Projekte, die so schnell wie möglich in P&P’s Archiva Repository verfügbar sein werden. Die Teilprojekte werden mit der existierenden Continumm Instalation kontinuierlich getestet. Zusätzliche Information bezüglich der Planung und Spezifikation von FAU.ORG und den einzelnen Teilprojekten wird bald hier gebloggt.

FAU.ORG Restructuring

After gaining some deeper understanding of the FAU.ORG project, I have decided to break FAU.ORG into smaller parts. The inherited project had a monolithic structure, combining all aspects of development into a single code bundle. This structure proved hard to manage, especially with the growing number of artifacts. Presently, as a result of the restructuring, FAU.ORG consists of the following components:

  • fauorg-core
  • fauorg-web
  • fauorg-identity
  • fauorg-system
  • fauorg-misc

The core functionality of FAU.ORG, which is responsible for managing the university structure, retrieving older states of the structure, different types of reports, and so on is currently being implemented in fauorg-core. The web interface, which provides user friendly access to the core functionality, is extracted into the fauorg-web subproject. The fauorg-identity subproject handles user management within the application. It also deals with authentication and authorization of the above mentioned users. Different types of roles and hierarchical groups can be modeled and instantiated with the developed code and rights on executing pieces of code can be granted. fauorg-system subproject is responsible for the server configuration and deployment of the application, as well as managing the subprojects code bundles. Various ideas and tests will be included in fauorg-misc. It will serve as an incubator for new features. Currently, one more subproject is envisioned and namely the fauorg-bpms. It will deal with tasks related to the business process management within FAU.ORG. The goal is to consistently integrate fauorg-core, fauorg-identitiy and fauorg-web. There is a rudimentary prototype developed within the PPSA initiative. At the end of day, all of the subprojects are to be included in fauorg-web, which assembles the final artifact representing FAU.ORG.

All components of FAU.ORG are developed by using techniques and principles established in PPSA. These are all Maven projects which as soon as possible will be available in P&P’s Archiva repository and will be continuously tested with the existing Continuum installation. Further information concerning FAU.ORG – like planning and specification of the whole project and the consistent parts will be soon posted.