Sonntag Okt 12, 2008

Versonsverwaltung von Modellen

Die kommende Version 1.6.2 des IX JEE Worklfow Systems wird die Verwaltung verschiedener Versionsstände eines Modells unterstützen. Dadurch ist es möglich Geschäftsprozesse in unterschiedlichen Versionen parallel zu betreiben. Gerade bei langlaufenden Geschäftsprozessen ist diese Funktion unabdingbar, um die Nachvollziehbarkeit eines Vorgangs bei gleichzeitiger Veränderung der betrieblichen Bedingungen zu gewährleisten.

Ermöglicht wird dies durch die vom IX Modeller unterstützte Verwaltung von Versionsnummern.

 

Durch die Vergabe einer Versionsnummer werden künftig alle Modell Objekte über das Attribut $ModelVersion gekennzeichnet.

Weist bei der Verarbeitung eines WorkItems dieses ebenfalls das Attribut $ModelVersion auf, versucht der IX JEE WorkflowManager das Workitem mit einem entsprechenden Versionsstand zu verarbeiten. Falls kein passender Versionsstand im WorkflowSystem verwaltet wird, greift der WorkflowManager automatisch auf den höchsten verfügbaren Versionsstand zu. Dadurch ist vor allem auch die Abwärtskompatibilität bestehender Systeme gewährleistet. Nach Erfolgreicher Verarbeitung wird ein Workitem immer mit dem zuletzt verwendeten Versionsstand gekennzeichnet.

Einsatzszenarien

Durch die Unterstützung von Versionsständen der Modelle können verschiedene Szenarien abgebildet werden. So können wie bereits oben angesprochen künftig Geschäftsmodelle während der Laufzeit angepasst und verändert werden, ohne dass bereits laufende Vorgänge davon betroffen sind. Darüber hinaus ist auch eine automatische Aktualisierung eines Geschäftsprozesses jederzeit möglich. Über den IX Modeller können unterschiedliche Versionsstände eines Modells bequem über eine Versionsverwaltung wie z.B. Subversion oder CVS verwaltet werden.
Ein weiteres Einsatzgebiet sind komplexe Anwendungssysteme mit unterschiedlichen Geschäftsprozess- gruppen, die in Abhängigkeit eines Bearbeitungsstandes zum Einsatz kommen können. Hier steuert die Applikation durch Selektion einer bestimmten Modellversion das Verhalten eines Vorgangs.

Anforderungen

Die Verwaltung unterschiedlicher Versionsstände ist aber der IX JEE Workflow Version 1.6.2 und Verwendung des IX Modellers ab der Version 2.2.5 sowie die IX Modeller Webservice Schnittstelle 1.3.1 verfügbar. Die Web Service Schnittstelle kann über den Updateservice problemlos aktualisiert werden. Eine Anpassung von Applikationen ist nicht erforderlich. Eine aktualisierte Version des IX JEE Admin Interfaces erlaubt darüberhinaus auch die Verwaltung von Modellversionen über einen Webbrowser.

Die Versionen werden ab November 2008 zur Verfügung gestellt.


Montag Sep 01, 2008

Neue Version 1.6 - Imixs IX JEE Workflow

Aktuell arbeiten wir an der neuen Version 1.6 der Imixs IX Workflow API wie auch der IX JEE Workflow Server Implementierung.

Die neue Version beinhaltet einen Report Service. Der Report Servier stellt eine mächtige Report Funktion bereit welche die dynamische Abfrage von Geschäftsprozessen erlaubt. Der Report Service wird mit den bestehenden IX REST Services verbunden so dass eine sehr einfache Anwendung von Reports gewährleistet ist.

Auch der IX Workflow Modeller wird um einen Report Editor erweitert der die Erstellung und Verwaltung von *.ixr files direkt in einem Eclispe Projekt erlaubt.

Insgesamt stellt das neue Release eine deutliche Erweiterung des IX Workflow dar. Der Source code der neuen Version 1.6 kann über das subversion repository in einer pre-beta Version abgerufen werden:

https://ix-workflow.dev.java.net/source/browse/ix-workflow/

Freitag Aug 29, 2008

Dynamische Abfragen mit EQL

Das Imixs IX Workflow System stellt eine flexible Funktion für dynamische Abfragen von Geschäftsdaten bereit. Zum Einsatz kommt hier die sogenannte Entity Query Language - kurz EQL. EQL ist vergleichbar mit SQL und der neuste JEE Standard für die Abfrage objekt-relationaler Daten.

Eine typische EQL Abfrage hat dabei folgende Form und gleicht damit einem typischen SQL Statement:

 SELECT project from Entity AS project

Mit Hilfe der WHERE Klausel können - analog zu SQL - Abfragen verfeinert und erweitert werden. Damit ist es möglich beliebige Daten aus einem Datenbanksystem zu selektieren, um diese dann weiter zu verarbeiten.

Der Imixs IX EntityService stellt neben den Standardmethoden auch Methoden für EQL Abfragen bereit. Auch hier wird auf die JEE Implementierung des EJB Containers zugegriffen. Im Gegensatz zu dem von der Java Persistence API bereitgestellten EntityManager verfügt der Imixs IX EntityService aber über eine wichtige Erweiterung: Der IX EntityService erlaubt einen gesicherten Zugriff auf Datensätze.

Dazu werden bei jeder EQL Abfrage die individuellen Benutzerrechte geprüft und durch das IX Workflow System nur Daten selektiert; die vom betreffenden Anwender auch gelesen werden dürfen. D.h. die Abfrage erfolgt ausschließlich mit den Benutzerrechten des aktuell angemeldeten Users und garantiert so die korrekte Abfrage von geschützten Daten. Ein unerlaubter Zugriff auf geschützte Daten wird somit verhindert. Da über das IX Workflow Management System festgelegt werden kann, welche Daten von welchen Benutzern zu einem bestimmten Zeitpunkt gelesen werden dürfen, kann das Abfrage Ergebnis einer EQL Abfrage durch den IX EntityServer für unterschiedliche Benutzer unterschiedlich aussehen. Das IX Workflowsystem erlaubt also nicht nur die Abfrage von Daten, sondern vielmehr den dynamischen Zugriff auf Geschäftsprozesse und deren Daten.

Indexe

Damit Daten mit Hilfe von EQL ausgelesen werden können, müssen im IX Workflow System entsprechende Indexe auf einzelne Felder exisiteren. Diese Indexe werden in der Regel durch die entsprechende Anwendung erzeugt bzw. werden von IX Worklfow Manager und IX Model Manager automatisch bereitgestellt. Jeder so erzeugte Index kann dann in ein EQL Statement aufgenommen werden.

 

EQL Beispiele

Mit Hilfe unterschiedlich komplexer EQL Abfragen lassen sich beliebige Daten aus einem Workflow System selektieren. Die nachstehenden Beispiele sollen einen Eindruck vermitteln wie Abfragen aufgebaut und eingesetzt werden können. Dabei wird davon ausgegangen, dass durch das Workflowsystem Indexe auf die Felder "type", "namcreator", "namteam", "txtname" existieren.

Einfache Abfrage

Diese Abfrage selektiert alle Vorgänge vom Type "project". Dazu wird das Attribut "type" auf einen bestimmten Wert abgefragt:

 SELECT project from Entity AS project
 JOIN project.textItems AS t
 WHERE t.itemName = 'type'
 AND t.itemValue = 'project'

Sortierung einer Abfrage

Die nächste Abfrage ist ähnlich mit der vorhergenden, sortiert aber zusätzlich das Ergebnis alphabetisch nach dem Attribut "txtname":

  SELECT project FROM Entity AS project 
 join project.textItems AS t1
 join project.textItems AS t2
 WHERE t1.itemName = 'type'
 AND t1.itemValue = 'project'
 AND t2.itemName = 'txtname'
 ORDER BY t2.itemValue ASC

Abfrage mit Mehrfachbedingungen

Das nächste Beispiel zeigt, wie mit sogenannten multiple joins unterschiedliche Bedingungen abgefragt werden können. Der "IN" Operator erlaubt die Abfrage nach unterschiedlichen Werten mit einer Oder-Verknüpfung. Es werden dabei alle Datensätze vom Typ "project" abgefrage bei denen der Username "ronny" entweder der Ersteller ist oder ein Teammitglied ist. Auch hier wird das Egebnis zusätzlich sortiert:

  SELECT project FROM Entity AS project 
 JOIN project.textItems AS t1
 JOIN project.textItems AS t2
 JOIN project.textItems AS t3
 WHERE t1.itemName = 'type'
   AND t1.itemValue = 'project'
   AND t3.itemName = 'txtname'
 AND  t2.itemName IN ('namcreator','namteam')
      AND t2.itemValue = 'ronny'
 ORDER BY t3.itemValue ASC

Zu beachten ist hier, dass bei zunehmender Komplexität einer Abfrage die Antwortzeit - also die Dauer bis die selektierten Daten vom System berechnet sind - zunimmt.

Zeiträume Abfragen

Das letzte Beispiel zeigt, wie Zeiträume abgefragt werden können. Auch hier kann auf Attribute vom Typ Date zugegriffen werden, sofern dazu ein Index exisitert. Das IX Workflow System verfügt aber bereits über fest definierte Attribute, die das Erstellungsdatum bzw. das letze Änderungsdatum eines Vorgangs festhalten.

Die folgende Abfragte selektiert alle Vorgänge vom Typ "project", welche nach dem 1. August 2008 erzeugt wurden:

 SELECT project FROM Entity AS project
 JOIN project.textItems AS t1
 JOIN project.textItems AS t2
 WHERE t1.itemName = 'type'
   AND t1.itemValue = 'project'
   AND t2.itemName = 'txtname'
 AND  project.modified>='2008-08-01'
 ORDER BY t3.itemValue ASC

Nützliche Links

Weitere Informationen über EQL sind auf folgenden Webseiten zu finden:

 

 

 

Sonntag Aug 03, 2008

Workflow Anwendungen einfach entwickeln....

Ein neues dreiteiliges Tutorial zeigt wie schnell man mit Hilfe der IX Open Source Workflow Komponenten selbst eine lauffähige Workflow Anwendung realisieren kann. Das englisch sprachige Tutorial ist in drei Teile aufgeteilt:

Das Tutorial setzt Kenntnisse in der Java Programmierung voraus. Durch den Einsatz von Maven können aber auch Einsteiger schnell eine funktionierende Anwendung realisieren.

Über Fragen und Anregungen und Kommentare freuen wir uns natürlich.

Samstag Jul 19, 2008

Geschäftsprozessmanagement mit lizenzkostenfreier Software

Open Source ist mittlerweile etabliert und eine anerkannte Art Software zu entwickeln und einzusetzen. Nicht nur Linux hat gezeigt, wie man mit Offenheit gute Software erstellen kann, die auch hohen Anforderungen gerecht wird.

Auch im Geschäftsprozessmanagement ist Open Source wichtig. Open Source Software kann hier entscheidend dazu beitragen Geschäftsprozesse schneller und besser umzusetzen und darüber hinaus Einsparungen bei den hohen Lizenzkosten zu erzielen. Aber warum ist das so?

Open Source Software hat zwei wesentliche Faktoren die hier genauer betrachtet werden sollen: Zum einen ist es die Offenheit, die ja schon durch den Namen zum Ausdruck kommt, zum anderen ist es die Qualität die Open Source Projekte heute so erfolgreich machen.

Offenheit

Der freie Zugang zu Softwarequellen (Open Source = offene Quelle) erlaubt es, Software besser zu verstehen. Dies ist in einer Zeit, in der sich die Technologien extrem schnell wandeln und weiterentwickeln, sehr wichtig geworden.

Software, die unter dem Open-Source-Etikett vertrieben wird, muss mehrere Kriterien erfüllen:

  • Freie Weiterverbreitung:
    Jeder darf Open-Source-Software nutzen und beliebig weiterverteilen.

  • Verfügbarkeit des Quellcodes:
    Das Software-Paket muss den Quellcode enthalten oder angeben, an welcher frei zugänglichen Stelle dieser zu erhalten ist.

  • Änderungen am Quellcode:
    Der Quellcode darf an eigene Bedürfnisse angepasst und in dieser veränderten Form weitergegeben werden.

Die Vorteile von Open-Source resultieren aus diesen drei Kernprinzipien. Jeder kann Open Source Software beliebig erweitern, verbessern und den individuellen Bedürfnissen anpassen. Fehler und Sicherheitslücken können schneller aufgespürt und behoben werden.

Qualität

Der zweite entscheidende Faktor bei Open Source Software ist die Qualität. Nicht nur Linux zeigt wie hoch die Qualität offener Software heute ist. Softwaresysteme müssen flexibel und anpassbar sein. Es müssen verschiedene Verfahren und Technologien abgebildet werden. Die Qualität der Software kommt darin zum Ausdruck wie offen diese in Hinblick auf diese Anforderungen ist. Es geht also nicht nur darum den Quell Code einer Software offen zu legen , sondern – was viel wichtiger ist – auch die Verfahren und Konzepte erfolgreich zu veröffentlichen. Nur so können die Vorteiler offener Software durch ein Unternehmen optimal genutzt werden.

Open Source im Geschäftsprozessmanagement

Die hier beschriebenen Ansätze gelten auch für Softwarelösungen im Geschäftsprozessmanagement. Geschäftsprozesse müssen schnell, flexibel und jederzeit erweiterbar sein. Eine hohe Qualität bei Workflow Management Lösungen ist unabdingbar. Die hinter der IT liegenden Konzepte müssen darüber hinaus auch verstanden werden und die Lösung muss den hohen Anforderungen heutiger Softwaretechniken gerecht werden.

Ändern sich die Rahmenbedingungen für einen Geschäftsprozess, muss darauf flexibel regiert werden können ohne die bisherigen Systeme neu entwickeln zu müssen. Flexibilität meint aber nicht alle heute bekannten Schnittstellen zu unterstützen, sondern vielmehr auf Technologien zu reagieren die erst in der Zukunft zu einem Hype werden könnten. Geschäftsprozesslösungen, die auf Open Source Software basieren, können dies weitaus besser, weil sie weniger stark an kommerzielle Konzepte gebunden sind. Es geht nicht darum ein einmal entwickeltes System möglichst oft bei unterschiedlichen Kunden einzusetzen, sondern für jede Anforderung die optimale Lösung auf Basis der bestmöglichen Technologie zu erstellen.

Lizenzkosten senken

Durch den großen Erfolg vieler Open Source Projekte in der jüngsten Vergangenheit hat sich heute ein Markt gebildet in dem reine Open Source Projekte mit kommerziellen Produkten konkurrieren. Im Gegensatz zu letzteren fallen aber bei Open Source Projekten in der Regel keine Lizenzkosten an. Die Kosten, die für die Realisierung kalkuliert werden müssen, beschränken sich auf die reinen Implementierungs- bzw. Anpassungskosten. Ist ein Geschäftsprozess auf Basis offener Software einmal realisiert, kann dieser leichter und kostengünstiger an neue Technologien und Softwaretrends angepasst werden. Open Source steht dann auch für Offenheit gegenüber neuen Trends. Dies soll an einigen Beispielen verdeutlicht werden:

Enterprise Application Server GlassFish

Ein Enterprise Application Server stellt ein Softwaresystem dar, das es erlaubt verschiedene Anwendungen und Geschäftsprozesse auf einer einheitlichen Server-Plattform zu betreiben. Die Server-Plattform stellt dabei alle notwendigen Technologien bereit, die für die Ausführung von geschäftskritischen Anwendungen im Unternehmen benötigt werden. Derartige Plattformen weisen heute ein Vielzahl an wichtigen Technologien wie zum Beispiel Sicherheit, Transaktionskontrolle und Skalierbarkeit auf.

Das Open Source Projekt GlassFish stellt eine solche Plattform bereit, die gleichzeitig den neuesten Stand der Technik darstellt. Das Projekt wurde von Sun initiiert um die als Industriestandard anerkannte Java Enterprise Technologie (JEE) als eigenständige Server-Plattform weiterzuentwickeln. Heute können Unternehmen diese Plattform nutzen, um damit Geschäftsanwendungen und Geschäftsprozesse in einem modernen Server Umfeld abzubilden.

JSF – MyFaces

Der Großteil heutiger Anwendungen wird als sogenannte Webanwendung realisert. D.h. die Anwendung kann einfach mit und über einen Webbrowser bedient werden. Eine aufwendige Installation am Arbeitsplatz des Mitarbeiters ist nicht mehr erforderlich.

Es gibt verschiedene Technologien für die Umsetzung derartiger Anwendungen. Eine der erfolgreichsten Technologien ist hier die JSF Technologie. Es handelt sich um eine komponentenorientierte Architektur die es erlaubt einzelne Teile einer Anwendung wiederzuverwenden. Das Open Source Projekt „MyFaces“ stellt eine Vielzahl sogenannter Eingabelelemente (Widgets) bereit,die es erlauben alle Arten von Formularen und Webseiten schnell zu realisieren. Wichtige Anforderungen an eine Anwendung wie einegute Bedienbarkeit und Internationalisierung sind damit gewährleistet.

MySQL und JavaDB

Auch im Datenbankmarkt sind Open Source Projekte längst etabliert. Zu den lizenzkostenfreien Datenbanklösungen zählen MySQL und JavaDB. Mit diesen Datenbanken können Anwendungsdaten verwaltet werden und mit der Datenbanksprache SQL abgefragt werden.

Diese Datenbanken werden in der Regel mit Applikationsservern kombiniert um die Geschäftsdaten zu verwalten.


Eclipse

Die Entwicklerplattform Eclipse hat sich in den letzten Jahren zum Standard in der Softwareentwicklung etabliert. Zunächst war das Open Source Projekt hauptsächlich für Softwareentwickler gedacht. Durch den großen Erfolg des Projekte sind nun aber auch viele andere Bereiche von diese Plattform durchdrungen. Vor allem im Bereich der Modellierung von Softwaresystemen und Geschäftsprozessen hat sich Eclipse als offene Plattform bewährt. So gibt es eine Vielzahl von sogenannten Plugins um Modelle für Geschäftsprozesse und Abläufe zu erstellen und untereinander auszutauschen.


Kombination von Technologieen

Diese Beispiel zeigen, dass es heute möglich ist moderne Softwarearchitekturen im Unternehmen aufzubauen ohne das dadurch unnötige Lizenzkosten entstehen. Die Kombination verschiedener Technologien wird dabei gerade erst durch Open Source möglich. Die unterschiedlichen Projekte nutzen dabei die Vorteile der Offenheit und ergänzen sich so gegenseitig. So verwendet beispielsweise der Applikationsserver GlassFish die Datenbank JavaDB zur Verwaltung von Geschäftsdaten und stellt JSF als Basis Technologie für die Erstellung von Webanwendungen bereit. Entwickeln sich diese Technologien weiter fließen die Ergebnisse auch in das Glassfish Projekt mit ein. So stellt die Kombination dieser Technologien eine Plattform bereit, die auch für das Geschäftsprozessmanagement von Unternehmen sehr erfolgreich genutzt werden kann.

Imixs IX Open Source Workflow

Auch die Imixs Software Solutions GmbH, die sich auf die Programmierung von Workflow-Systemen spezialisiert hat, stellt einen wesentlichen Teil seiner Technologie unter Open-Source (www.imixs.org).

Bei imixs.org handelt es sich um ein Open Source Projekt, das die Entwicklung eines Open Source Workflow Systems auf Basis des JEE Standards zum Ziel hat. Die Ergebnisse des imixs.org Projektes unterliegen dem GPL Lizenzmodell.