|
ProjekteMedizinal-Objektmodel-Design
Für einen internationalen Medizinalkonzern im Bereich Radiotherapie wurde das Design des gesamten
Medizinal-Objektmodels hinsichtlich der Effizienz und Sicherheit erweitert und verbessert. Ein
neuer effizienter Cache für Patienten-Bilddaten wurde entwickelt und integriert. Dieses erlaubt es,
konzeptionell beliebig viele und grosse Bilddaten zu bearbeiten - weitaus mehr als im virtuellen und
realen Hauptspeicher Platz haben. Ferner wurde ein klassen-übergreifender Mechanismus zur Kontrolle
und Buchhaltung von Änderungen auf sämtlichen Daten des medizinischen Objektmodels konzipiert und
implementiert. Zusätzlich wurde das Objektmodel im Bereich der Bestrahlungsinformationen neu entworfen,
so dass eine signifikant effizientere Speicherung und Bearbeitung erreicht worden ist. Hochgeschwindigkeits-Datenbank
Für eine Startup-Innovationsfirma im Großraum Zürich wird eine neue Datenbank
entwickelt, welche mittels eines neuen Designs in der Skalierung und Effizienz
herkömmliche Datenbanksysteme substanziell übertrifft. Unter Einsatz von geeigneten
Datenstrukturen wird eine fehlersichere (fault-tolerant) Organisation der Daten
auf Disks für ein schnelles Finden, Einfügen und Löschen erreicht. Durch
Messungen mit umfassenden Datenmengen wird die Effizienz und Skalierung der
Datenbank mit existierenden Systemen verglichen. Medizinaldaten-Import und Export
Für einen führenden Hersteller von Medizinalgeräten wurde ein Import- und
Exportmechanismus von Medizinaldaten entwickelt. Medizinalszenarien können
kompakt und anschaulich in XML beschrieben werden, welche dann mittels des
Imports in Objekte (notwendigerweise komplex und nicht eins-zu-eins) abgebildet
werden. Vom XML aus können existierende Medizinaldaten, welche im Standard-Medizinalformat
vorliegen, selektiv referenziert werden. Mittels eines Plugin-Konzepts ist
der Import und Export erweiterbar und anpassbar. Zusätzlich wurde das bestehende
Medizinalframework dahingehend geändert, dass eine Verwendung ohne Datenbank möglich
wird und der Import und Export ohne Datenbankverbindung eingesetzt werden kann.
Die Datenbankanbindung kann auch zur Laufzeit aktiviert und deaktiviert werden. Persistentes Objektsystem für Medizinalsysteme
Bei der Entwicklung einer neuen Softwaregeneration benötigte ein führender
Anbieter von Medizinalsystemen ein neues Framework für die automatische
persistente Verwaltung von Objekten. Mittels eines kleinen Laufzeitsystems
wurde eine Lösung geschaffen, welche die Medizinalobjekte automatisch bei
Bedarf von der Datenbank lädt und Veränderungen an Medizinalobjekten
automatisch zurückschreibt. Unter anderem werden auch die Beziehungen zwischen
den Objekten aufgrund der Referenzen automatisch konsistent gehalten. Dies
erlaubt es dem Programmierer, die persistenten Medizinalobjekte unter
Transparenz der zugrunde liegenden Datenbank als gewöhnliche .NET Objekte im
Hauptspeicher zu verwenden. Die Abbildung der Objekte auf eine bestehende
relationale Datenbank können separat in XML spezifiziert werden. Prozesssteuerung im Generatorenbereich
Zur Berechnung von neuen Generatoren wurde für einen internationalen
Energiekonzern ein Softwaresystem zur Ausführungsteuerung von
Berechnungsprozessen entwickelt. Die Prozessabläufe werden dabei in XML
beschrieben. Abgesehen von der Prozesssteuerung bietet das System auch
grafische Eingabemasken für Berechnungsparameter, wobei die Masken ebenfalls in
XML konfiguriert werden. Das Projekt umfasst neben der Entwicklung der
Steuerung auch die Migration von bestehenden Java-Programmen sowie die
Integration von bestehenden Fortran-Programmen in das neue System. Design eines zuverlässiges Nachrichtensystems
Für einen internationalen Medizinalkonzern wurde ein Architekturdesign eines
sicheren Peer-to-Peer Nachrichtensystems ausgearbeitet. Das System ist
ausgelegt, um in jeden Fall zuverlässige Ënd-zu-End-Datenübertragung zwischen
Applikationen zu garantieren. Zusätzlich bietet das Systemdesign Redundanz, so
dass bei Ausfall eines System eine automatische Umleitung zu alternativen
Ersatzrechner stattfindet. Das Model basiert auf automatischer Namensauflösung
mit effizienter dezentraler Propagierung von Konfigurationsänderungen und
funktioniert auch über Firewall-Grenzen hinweg. Design eines Medizinal-Überwachungssystems
Für einen internationalen Medizinalkonzern wurde ein Architekturdesign für ein
Überwachungsystem von deren Geräten und Anwendungen im Netzwerk ausgearbeitet.
Die Ereignisse werden lokal aufgezeichnet, gefiltert, und bei Bedarf an einen
oder mehrere zentrale Rechner weitergeleitet. Das Design unterstützt auch eine
automatische Mustererkennung nach dynamisch konfigurierbaren Regeln, so dass
für definierte Ereignisse unmittelbar Alarme ausgelöst werden können. Parallele Verkehrssimulation
Zusammen mit dem Institut für Verkehrstechnik an der TU Berlin wurde ein
neuartiges Simulationssystem entwickelt, in welchem alle Fahrzeuge als
selbständig laufende parallele Objekte modelliert sind. Zu diesem Zweck wurde
die eigens neu entwickelte Programmiersprache der strukturierten nebenläufigen
Komponenten eingesetzt. Umfassende Verkehrsszenarien (z.B. der Großraum
Zürich) wurden mithilfe eines selbst entwickelten kleinen Betriebssystems
berechnet, welches in der Lage ist, Millionen von Leichtgewichtsprozessen
effizient zu unterstützten. Die neue Verkehrssimulation ermöglicht nicht nur
eine natürlichere Modellierung der Fahrzeuge sondern auch eine wesentlich
höhere Ausführungsgeschwindigkeit als klassische Simulationen. Zum Vergleich
wurden deshalb in diesem Projekt auch umfassende Simulationspakete basierend
auf klassischer Simulationstechnik in C++ und C# implementiert. Komponentensprache für strukturierte parallele Programmierung
Im Rahmen der Forschung an der ETH Zürich wurde eine neue Programmiersprache
entwickelt, welches auf einem allgemeinen Begriff der Komponente basiert. Die
Komponenten sind dabei durch drei Beziehungen gekennzeichnet, nämlich (1) die
hierarchische Komposition ohne explizite Referenzen, (2) die Verknüpfung mit
einem dualen Konzept von angebotenen und erforderten Schnittstellen, sowie (3)
die Interaktion durch Kommunikation. Im Vergleich zu heutiger
Objektorientierung ergeben sich daraus wesentliche Verbesserungen: Die neue
Sprache unterstützt allgemeine hierarchische Einkapselung, separate
zustandsbehaftete Kommunikation zwischen den Komponenten, inhärente
Nebenläufigkeit unter Ausschluss von Races, symmetrischer Polymorphismus
getrennt von Code-Wiederverwendung, sowie hierarchische Existenzabhängigkeiten
unter den Komponenten. Letzteres ermöglicht eine sichere dynamische
Speicherverwaltung ohne Garbage Collector. Die Sprache ist durch einen
schnellen Compiler und ein effizientes Laufzeitsystem implementiert. Aufgabenverwaltungssystem
Für einen internationalen Publizisten wurde ein System zur automatischen
Verwaltung von Aufgaben (Tasks) entwickelt. Das System ist in Microsoft Outlook
integriert und kann Tasks aus Excel-Listen und beliebigen E-Mails extrahieren
und mit Datum und Priorität zuteilen. Das System bietet auch besondere
Funktionalität wie zum Beispiel Duplikatenelimination. Betriebssystem für leistungsstarke Nebenläufigkeit
Zur Unterstützung hochgradig nebenläufiger Software wurde ein neues kleines
Betriebssystem (in Oberon) entwickelt (Zielplattform PC IA32). Der Kern des
Systems setzt innovative Konzepte ein, um eine sehr hohe Anzahl an
nebenläufigen Prozessen effizient zu unterstützen. Dies sind zum Beispiel
Leichtgewichtsprozesse mit beliebig kleinen Stacks sowie kosteneffiziente
Kontextwechsel und Preemption basiert auf Code-Instrumentierung. Im Vergleich
zu anderen Systemen weist das neue Laufzeitsystem eine deutlich höhere
Skalierbarkeit und eine wesentlich schnellere Ausführungsgeschwindigkeit für
parallele Programme auf. Komponentenorientiertes Framework für Radiotherapiesysteme
Für einen führenden Hersteller von Medizinalsystemen galt es das bestehende
Softwaresystem für Radiotherapie dahingehend zu ändern, dass ein gezieltes
Ansprechen und Testen der einzelnen Funktionalitäten von außen möglich wird.
Dazu wurde ein komponentenorientiertes Framework in COM entwickelt, welches die
einzelnen Medizinalabstraktionen nach außen hin als Komponenten repräsentiert
und nach innen auf den existierenden Code abbildet. So konnte ohne nennenswerte
Änderung des bestehenden Systems die Medizinalsoftware komponententauglich
gemacht werden. Das heißt, es können nun per Programm oder VB-Script
spezifische Patientenkonfigurationen und Medizinalszenarien erstellt werden, um
diese anschließend automatisch zu testen. Persistente Programmiersprache
Im Rahmen einer Forschungsarbeit an der ETH Zürich ging es um die Entwicklung
einer objektorientierten Programmiersprache mit institutionalisierter
Persistenz. Im Gegensatz zu gängigen Programmiersprachen muss sich der
Programmierer nicht mehr um die Speicherung von Objekten in eine separate
Datenbank kümmern. Stattdessen entsteht die Illusion eines unendlich lang
laufenden Programms, das bei Unterbrüchen den Programmzustand stets beibehält
und nach Neustarts des Rechners weiterläuft. Die Speicherung der Objekte
geschieht dabei hinter den Kulissen des Programmierers. Zu diesem Zweck ist
eine eigene leistungsfähige objektorientierte Datenbank entwickelt worden,
welche im Hintergrund operiert. Um eine effiziente Ausführung zu gewährleisten,
besitzt das Laufzeitsystem ein Caching-Verfahren, das simultan mit einem
inkrementellen Garbage Collector im persistenten Speicher läuft. Die Sprache
und das System basieren auf Active Oberon und sind im Vergleich zu analogen
Entwicklungen mit Java, MySQL und OR-Mapper um Faktor 30 bis 80 schneller. Web-Informationssystem für Sportresultate
Im Auftrag eines Zürcher Werbeunternehmens wurde ein umfassendes
Web-Informationssystem für Resultate im Pferdesport entwickelt. Das System
unterstützt unter anderem auch die Erfassung und Administration über das Web
sowie verschiedene automatische Analyse- und Vorhersagefunktionen.
Generischer Webshop
Mit einem generischen Webshop-System will ein Zürcher Werbeunternehmen der
wiederkehrenden Nachfrage seiner Kunden nach Web-Verkaufssystemen gerecht
werden. Deshalb wurde ein solches System mit einem generischen Datenmodell
unter Verwendung von ASP.NET und einer MS SQL-Datenbank programmiert. Das
Layout des Webshops kann mittels XSL-Stylesheets maßgeschneidert werden. Die
Konfiguration und Administration des Webshops ist ebenfalls via Web realisiert. Kostenoptimale Telefonroutenberechnung
Für einen mittelgroßen Telefonieanbieter wurde ein Tool zur Berechnung der
kostenoptimalen Telefonrouten hergestellt. Das Tool wurde als Office-Plugin
integriert und führte die Berechnungen aufgrund von aktuellen Kostendaten aus
Excel-Tabellen durch. Das Tool erlaubt den Export von Konfigurationen für die
Einstellung des operativen Routingsystems. Komponentenorientiertes Framework zur Entwicklung dynamischer Webseiten
Ziel dieser Arbeit an der ETH Zürich war es, ein einfaches und mächtiges
komponentenorientiertes Framework zur Erstellung von dynamischen Webseiten zu
entwickeln. Das Framework unterstützt sowohl zustandslose und zusandsbehaftete
Oberon Komponenten, die jeweils in XHTML abbilden und als XML-Tags in der
Webseite verwendet werden. Mittels eines Postorder-Traversierung- und
Generierungsverfahrens lassen sich die Komponenten beliebig zusammensetzen,
ohne dass die Überkomponente die Abbildung der Unterkomponente kennen muss. Dokumentenmanager
Für eine bekannte Innovationsfirma wurde ein Tool zur automatischen
Corporate-Design-Anpassung von Office-Dokumenten programmiert. |
|
|
Impressum |