Europäisches Patentamt

FALLSTUDIE »OCR-Gateway«

Den Haag (NL), 2011-2012 – Freiberufliche Tätigkeit als Software Architekt am Europäischen Patentamt. Verantwortlich für Design, Umsetzung, Dokumentation und Inbetriebnahme eines OCR Dienstes.

Gefordert wurde die Erschaffung einer Schnittstelle, der beliebigen Anwendungen einen einfachen und fairen Dienst zur Erkennung von Symbolen (Schriftzeichen, Formeln et cetera) anbietet, wobei besonderen Wert auf eine selbständige und eigenverantwortliche Arbeitsweise gelegt wurde. Der Dienst nahm zu Anfang Mai 2012 erfolgreich und fristgerecht den Betrieb auf.

Der Dienst basiert auf einem Backend-Cluster zur Texterkennung. Auf den Knoten wird kommerzielle Software (ABBYY RS) eingesetzt, deren Schnittstelle jedoch nicht die geforderten Eigenschaften aufweist (Fairness). Infolgedessen wurde von mir eine asynchrone Schnittstelle mit allen erforderlichen Eigenschaften (u.A. Hochverfügbarkeit) entworfen, die die Architektur des Webs nutzt (REST) und unabhängig des Herstellers ist.

Nach einer erfolgreichen prototypischen Implementierung (Javascript/NodeJS) wurde der Dienst von mir in Java/Java EE implementiert, durch alle Testinstanzen hindurch verantwortlich begleitet sowie dokumentiert.

Technologien

OCR (ABBYY RS 3.0, CVISION, Iris), Java EE (JBoss AS), REST (Jersey), DB (Berkeley DB SE), Distributed Caching (JBoss Cache), Buildumgebung (Maven, Jenkins/Hudson, Nexus, Subversion), Projektmanagement (Jira), Wiki (Confluence), OS (Windows Server 2008 R2, Windows 7, GNU/Linux SLES, MacOS X), Virtualisierung (VMWare), IDE (Eclipse), XML (XSLT, STX, JAXB), Profiling (YourKit), Test (HP Loadrunner), Dokumentation(ASCIIDoc, DocBook, XeTeX, TkiZ), Sonstiges (NodeJS, JSON, IIS).

FALLSTUDIE »Infrastructure Engineering«

Den Haag (NL), 2010-2011 – Freiberufliche Tätigkeit als Software Architekt im Application Engineering Umfeld am Europäisches Patentamt.

Umstellung der bisherigen, teilweise veralteten, teilweise proprietären Infrastruktur zur agilen Softwareentwicklung auf gängige Komponenten (Subversion, Maven, Jenkins/Hudson, Nexus Pro, SonarJ, Fisheye und Crucible). Design, Dokumentation, Präsentation und Implementierung des neuen Release-Prozesses. Planung der stufenweisen Stilllegung des bis dato aktuellen Infrastruktur.

Technologien

Buildumgebung (Maven, Jenkins/Hudson, Nexus Pro, Subversion), Projektmanagement (Jira), Wiki (Confluence), OS (Windows XP, GNU/Linux SLES, MacOS X), Virtualisierung (VMWare), IDE(Eclipse), Sonstiges (Java, Groovy, Ruby, GNU/Emacs, XSLT/XPATH, REST).

FALLSTUDIE »Darwin«

Den Haag (NL), 2005-2009 – Freiberufliche Position als System Architekt und Softwareentwickler in der Abteilung Architektur und Forschung am Europäischen Patentamt.

Das Versionsmanagement ist ein herausforderndes Problem in der Erzeugung komponentenbasierter Softwaresysteme. Eine veraltete Version wird typischerweise spät, durch funktionale Tests bestätigt und verursacht Auslieferungsverzögerungen.

Meine Aufgabe bestand in der Analyse, Konzeption und Bereitstellung einer Lösung für dieses Problem. Ich löste diese Aufgabe durch die Inbetriebnahme eines vollautomatischem, agilem Buildsystems, welches unter dem Namen “Darwin” bekannt wurde.

Ein fundamentaler Designaspekt Darwins war die Forderung, daß Entwickler sich nicht um die Version kümmern. Das gesamte Versionensmanagement wurde komplett und automatisiert von Darwin übernommen.

Um dies zu erreichen musste CruiseControl wesentlich erweitert werden, wobei ein großer Teil der komplexen Versionsverwaltung in der Skriptsprache Python realisiert wurde. Ferner wurde ein Framework entwickelt, welches alle Buildskripte (Ant) auf die Angabe versionsloser Abhängigkeiten reduzierte und dadurch einen homogenenBau meherer hundert Softwareprojekte garantierte.

Darwin ist die de-facto Standard-Buildumgebung am Europäischen Patentamt.

Technologien

Java, CruiseControl, Ant, CVS, Maven, Tomcat, XML, Linux, Windows, Eclipse, REST, Python, JSP, XSLT/XPATH, graphviz.