Labor für Softwaretechnologie und verteilte Systeme

Labor für Softwaretechnologie und verteilte Systeme

  • Entwicklung adaptiver Prozesse mit domänenspezifischen Prozessbausteinen unter Verwendung des normativen BPM-Systems Bonita
  • Steuerung eines durch Bonita Open Solution automatisierten Tutorenantragsprozesses mittels einer nativen Android App
  • Entwicklung einer Prozessvisualisierung mit Java EE Prozesssteuerung und -visualisierung mit Android
  • Prozessautomatisierung mit Bonita Open Solution unter Verwendung von Enterprise Java Beans, Java Persistence API und Web Services anhand des Beispiels Tutorenantragsprozess
  • Entwicklung eines Studenteninformationssystems mit Android
  • Implementierung einer Workflowsteuerung für einen Softwareentwicklungsprozess
  • Entwicklung eines Prototyps zur automatisierten Klassifizierung von Objekten mit Hilfe von Ontologien für Sehbehinderte
  • Konzept und Realisierung einer Orientierungshilfe für sehbehinderte Menschen auf Basis der Microsoft Kinect
  • Entwicklung eines Vorgehensmodells für die Anwendung der agilen Methoden Scrum und Extreme Programming unter Berücksichtigung des PMBOK-Standards
  • Adresskonzept und sicherheitsrelevante Aspekte zur Einführung von IPv6 bei der Deutschen Börse AG
  • Konzeption und Prototyping eines elektronischen Schichtprotokoll- und Informationssystems im Bereich der Fahrzeugfertigung Montagen, Volkswagen AG
  • Wirtschaftlichkeitsbetrachtung der Live-Migration virtueller Maschinen, Conet Solutions GmbH
  • Modellierung und Umsetzung eines Matching-Modells mit Scoring-Ansatz mit Hilfe von Information-Retrieval aus heterogenen Datenquellen, interne Masterarbeit THM
  • Aufbau einer Produktlinie für ein Geoinformationssystem und Bereitstellung unterstützender Werkzeuge, Fraunhofer-Institut für Graphische Datenverarbeitung (IGD)
  • Kombination von OGC-konformen Geodiensten mit WSMO, Fraunhofer-Institut für Graphische Datenverarbeitung (IGD)
  • Optimierung von Verarbeitungsprozessen und Erstellung einer Cloud-Architektur für ein Geoinformationssystem, Fraunhofer-Institut für Graphische Datenverarbeitung (IGD)

 


Die im Labor erworbenen Erfahrungen wurden unter anderem genutzt, um in verschiedenen Firmen die Automatisierung von Prozessen zu begutachten :


IBM, Engineering & Technology Services, Mainz

  • Automatisierung Prozess Festplatteninspektion mittels Bildverarbeitung
  • Automatisierung Prozess Festplattenproduktion


IMSTec, Mainz

  • Automatisierung Produktionsprozesse


Carl Zeiss SMS GmbH, Roßdorf

  • Automatisierung Mask Repair Prozess für Photomasken


Institut für Graphische Datenverarbeitung, Abteilung Geoinformationsmanagement, Darmstadt

  • Nutzung Semantischer Webservices in einem 3D-Geoinformationssystem
  • Semantische Harmonisierung von Geodaten mittels Schema-Mapping

Betreiber

Prof. Dr. K. Kremer
Dipl.-Ing. N. Müller
Dipl.-Ing. I. Scheffler

B.Sc. A. Gohlke
B.Sc. M. Lang

Konzeption und Ziele

Das Labor bietet die Möglichkeit zur

  • Durchführung von Bachelor-, Master- und Projektarbeiten
  • Erarbeitung neuer Technologien an Hand vorliegender Tutorials und Referenzapplikationen
  • Evaluation neuer Soft- und Hardware

Einige der in diesem Labor durchgeführten Projekte dienen der Automatisierung von Verwaltungsprozessen im Fachbereich MND mit Hilfe einer Prozess-Engine. Sie organisieren und überwachen z.B. die verwaltungstechnische Abwicklung der berufspraktischen Phase von Studierenden der Wirtschaftsinformatik und deren Abschlussarbeiten.

Darüber hinaus wird das Labor für die Entwicklung von komponentenbasierter Software genutzt.
So werden im Labor Systeme entwickelt, die von einem Benutzer ohne IT Kenntnisse in einem gewissen Sinne "smart" durch Zusammensetzen von Software Komponenten per Drag&Drop konfigurierbar sind.

Es werden verteilte und parallele Anwendungen unter Verwendung geeigneter Programmier-Plattformen für Systeme mit verteiltem bzw. gemeinsamem Speicher entwickelt. Hierbei werden neben herkömmlich über LAN vernetzten Systemen mit Cluster-Architektur auch Infrastrukturen mit Cloud-Architektur in Hinblick auf Entwicklung, Installation, Betrieb und Nutzung von Anwendungen untersucht.

Einen weiteren Schwerpunkt bildet die Untersuchung von Semantic Web-Anwendungen.


1. Prozessautomatisierung

Das Projekt „Prozessautomatisierung“ beabsichtigt die Automatisierung von Verwaltungsprozessen im Fachbereich MND mit Hilfe einer Workflow-Engine.

Der erste Prototyp organisiert und überwacht die verwaltungstechnische Abwicklung der Berufspraktischen Phase von Studierenden der Wirtschaftsinformatik (BPP-Prozess für Wirtschaftsinformatik) z. B. in Form von Online-Formularen und Email-Erinnerungen.

 

BPP Prozess (Beispiele zur berufspraktischen Phase)

3-1-1

 

Z.B. Subprozess „Zulassung beantragen“

3-1-2

Web Visualisierung

Zulassung beantragen

Android Visualisierung

3-1-3

 

2. EBStock (Elektronischer Blindenstock)

Patentanmeldung EP 12181321.6, “Sensor basierte interaktive Sehhilfe“ in 2012.

Das System ermöglicht in einem gewissen Sinne die "smarte" Modellierung der komponentenbasierten "Welt" eines Sehbehinderten durch einen Helfer und die anschließende Erkennung von Hindernissen.

Innentreppe aufwärts

3-2-1

Modellierung

3-2-2

Analyse Schnitt in x-Richtung

3-2-3

3. ROCK (Relation Oriented Construction Kit)

 Verfahrens-Patent (Nr 100 13 137) in 2005, Verfahren zur bildgesteuerten technischen Prüfung und/oder technischen Bearbeitung von Produkten oder Produktteilen.

ROCK bezeichnet ein Sytem aus Softwarekomponenten, genannt Blocks, mit einer ganz speziellen relationsorientierten Verbindungstechnik.

Es ermöglicht beliebige mit den ROCK Noppen ausgestattete Software Blocks grafisch interaktiv zu erzeugen und zu verdrahten. Das erlaubt in der Praxis eine schnelle Anpassung z.B. einer industriellen Prüfsoftware an ein verbessertes Produkt.

desktopframe

4. Multiagenten-Systeme als Peer to Peer-Systeme mit Künstlicher Intelligenz

In diesem Projekt geht es darum, mehrere autonome Bearbeiter (Agenten oder Peers) ihre lokalen Probleme lösen zu lassen, um ein globales Problem zu lösen.

Gegenüber Systemen zur verteilten Problemlösung kann sich bei MAS die Problemstruktur und die Umgebung zur Laufzeit des Systems ändern. Mit MAS wird eine verbesserte Anpassung an sich ändernde Umgebungen und Robustheit gegen Störungen erzielt. Die Lösung des Problems ist aufgrund der Dynamik allerdings u.U. weniger effizient als beim verteilten Problemlösen.

Die dynamische globale Theorie wird durch die Vereinigungsmenge der lokalen Theorien angemeldeter Peers gebildet. Hierbei ist das Ziel, eine möglichst hohe Flexibilität der globalen Theorie durch An- und Abmelden von Peers zum Gesamtsystem zu erreichen. Hierbei gibt es allerdings folgende Probleme:

  • Es gibt keine Kenntnis gemeinsamer Informationen von Peers, die sich neu angemelden.
  • Es kann widersprüchliche lokale Theorien geben.

Da nicht ausgeschlossen werden kann, dass es widersprüchliche lokale Theorien geben kann, wird beim Reasoning angenommen, dass herleitbares Wissen immer gültig ist. Dies kann falsch sein, stellt aber den Kompromiss zu Gunsten der Performance dar, da sonst alle lokalen Theorien untersucht werden müssten.

Beim Reasoning-Prozess wird dazu Wissen in Form von Regeln und Fakten zwischen den Peers transferiert:

3-4-1

Allerdings ist die vollständige Untersuchung aller lokalen Wissensbasen in der Regel zu aufwändig und auch nicht notwendig. Daher werden Verfahren zur Performance-Verbesserung entwickelt.

Eine Möglichkeit ist hierbei die Mediation, bei der über den Erfolg der Reasoning-Prozesse in entfernten Wissensbasen in jedem Peer Buch geführt wird. In erster Linie werden zunächst entfernte Peers mit hohen Erfolgsraten ansgesprochen.

Die Mediation nutzt hierbei ein Verfahren aus der Schwarm-Intelligenz. Die Idee entspricht dem Futterverhalten einer Ameisenkolonie. Auf dem Weg vom Nest zur Futterquelle hinterlässt jede Ameise eine Pheromonspur, die sich mit der Zeit verflüchtigt:

3-4-2

Zum Zeitpunkt t1 ist die Wegwahl zufällig.Zum Zeitpunkt t2 ist die Intensität der Pheromonspur auf dem kürzeren Weg intensiver, da sich dort weniger Pheromon verflüchtigt hat. Zum Zeitpunkt t3 steigt die Wahrscheinlichkeit, dass Ameisen den kürzeren Weg wählen. Zum Zeitpunkt t4 hat die Ameisengemeinschaft eine effziente Lösung gefunden.

Die Pheromonspur der Ameisen entspricht nun den Routen zwischen den Agenten bei der Inferenz. Es wird der Erfolg der Inferenz beim Weiterleiten an die Nachbar-Agenten protokolliert, wobei neuere erfolgreiche Inferenzen einen höheren Erfolgswert als ältere beisteuern.

Die einzelnen Agenten sind wie im folgenden Bild aufgebaut:

3-4-3

Jeder Agent verfügt über eine lokale Inferenzmaschine. Diese empfängt Anfragen und sendet Ergebnisse als Antwort an Anfragesteller zurück.

Der Controller im Agenten steuert die Abarbeitung der Anfrage: Hierbei wird zunächst mit der lokalen Inferenzmaschine gearbeitet. Wenn Anfrage oder Teilanfrage lokal nicht ermittelt werden kann, entscheidet der Controller auf der Basis von Erfahrungen über andere Agenten, ob und, wenn ja, an welche enfernten Agenten die Anfrage oder Teilanfrage aufgrund der Erfolgswerte in der Agent Map gesendet wird.


Unterstützte Technologien

Softwareentwicklung und -architektur:

  • Design Patterns für konkurrierende und verteilte Objekte sowie Architekturen
  • Prozesssteuerung
  • Service Oriented Architecture
  • Aspect Oriented Programming
  • Model Driven Architecture
  • UML Software Modellierung mit dem IBM Rational Software Architect
  • Projektmanagement mit IBM Rational (Agile) Unified Process und Microsoft Office Project

Programmierplattformen und Infrastrukturen

Als Programmier-Plattformen für Systeme mit gemeinsamem Speicher werden verwendet:

  • Multithreading: POSIX-C Multithreading, Java Multithreading
  • OpenMP (Open Multi Processing) für Multiprozessoren (openmp.org) z.B. in Microsoft Visual C++ und Gnu CC implementiert
  • CUDA (Compute Unified Device Architecture) von Nvidia für Grafikprozessor (GPU) (www.nvidia.de/object/cuda-parallel-computing-de.html)
  • Unified Parallel C (UPC) (https://upc-lang.org)
  • Ada (www.ada-europe.org)
  • MPI (Message Passing Interface)
  • Parallel Virtual Machines
    • C: PVM (www.csm.ornl.gov/pvm)
    • Java: JPVM (www.cs.virginia.edu/~ajf2j/jpvm.html)
  • Systeme mit virtuell gemeinsamem Speicher (Virtual Shared Memory)
    • Tuple Space (Linda)
    • Java Spaces

Im Cloud-Computing werden neben proprietären Systemen wie Amazon Web Services, Google App Engine und Microsoft Azure zunehmend freie Cloud-Lösungen verwendet wie z.B.:

  • OpenStack für Infrastruktur (www.openstack.org)
  • CloudFoundry als Plattform in Ruby und Go (Google) implementiert (cloudfoundry.org)
  • Docker als Container-Technologie zur Optimierung des Applikations Deployment (https://www.docker.com)
  • Apache Mesos als Lastverteilungssystem (mesos.apache.org)

Für SOA Architekturen wird verwendet:

  • Android
  • Bonita
  • Java Server Faces mit Facelets
  • Enterprise Java Beans
  • Java Persistence API

Application-Server:

  • JBoss
  • Tomcat