Active code

Next Generation Service Description Language (SDL-NG) since 2013

A Ruby-based domain specific language (DSL) to describe service aspects pertinent to businesses.


The SDL-NG framework is one of the results of the TRESOR research project, as well as a cornerstone of my dissertation.

Its main features are:

  • Comprehensive textual domain-specific language for describing services, as well as defining a service vocabulary
  • DSL implemented as Ruby code, allowing flexible use cases (e.g. extracting data from websites)
  • Export of services and vocabulary to XML/XSD and RDF
  • Internationalization of vocabulary descriptions
  • Easy-to-use type system

The main design constraints for the framework are:

  • A text editor should suffice to create service descriptions and vocabulary
  • Compared to other general SDLs, e.g. USDL, Linked-USDL, and OWL-S syntactic and semantic noise should be reduced
  • Concrete serialization technologies should be abstracted, such as XML/XSD, RDF/OWL and EMF/Ecore
  • There is no common answer to “What is a service?”. Therefore the structure of service descriptions should be provided by concrete use cases, and not the framework itself
  • The functionality of the framework should be demonstrated on existing services
  • Using a programming language as textual format should allow both static and dynamic information to be available in the same file



TRESOR Open Service Broker since 2013

An open service broker for cloud services


The TRESOR Open Service Broker is one of the results of the TRESOR research project, as well as a cornerstone of my dissertation. It will be able to match user requirements to capabilities of services, which are described using the SDL-NG. It is currently in alpha quality. In the future, it will provide the basis for the Open Service Compendium



The TRESOR Proxy since 2013

A modular, high-performance Ruby HTTP proxy supporting the Trusted Cloud Transfer Protocol (TCTP)


The motivation for writing the TRESOR proxy was providing an implementation for the Trusted Cloud Transfer Protocol (TCTP), as well as the integration of the other technologies and components used within the TRESOR research project. Therefore, the proxy supports the eXtensible Access Control Markup Language (XACML), which is used to enable fine-grained and location-based access control within TRESOR. At last, the proxy supports claims-based authentication as a way of providing single sign-on functionality.



TCTP Rack Middleware since 2013

Rack Middleware to make any Ruby web application compatible to the Trusted Cloud Transfer Protocol (TCTP)


The TCTP rack middleware was the first implementation of the Trusted Cloud Transfer Protocol.

It enables any Ruby web application compatible to the Rack API to benefit from the additional end-to-end security provided by TCTP.



Historic code

GenerationREST 2013

A prototypical implementation of a model-driven generator framework for platform-independent Cloud API SDKs

GenerationREST is the main contribution of my Master’s thesis. It is able to generate a Java SDK to access Cloud APIs based on a model of the REST API of a cloud service. It was a prototypical redesign of my previous model-driven generator framework, which I did for the Developer Garden. It uses the Eclipse Modelling Framework and Xtext 2.0. Further information about my master’s thesis and its presentation can be found here. I can also supply the code on request.

Call Your Friends Facebook App 2010

A Facebook App showcasing the Developer Garden APIs

The app allowed users to automatically establish a phone connection between two Facebook friends using the Developer Garden APIs. It could also send SMS as well as create a telephone conference between multiple friends. It was featured at the iPhone session V in the Telekom 4010 store in Berlin (video summary) as well as in the official Telekom Headquarter’s showroom. Due to changes in the Developer Garden APIs, as well as a change in company policy, the app is not available anymore.

SendSMS Yahoo Widget 2009

A Yahoo Widget showcasing the Developer Garden APIs

To demonstrate the applicability of the Developer Garden APIs to different use cases, I’ve developed a Yahoo Widget, which can send SMS via the Developer Garden APIs. It also featured the functionality to import contacts from Outlook to be used as a source for the mobile numbers. Information about the widget can be found at the Developer Garden. As the APIs have changed and the code was not updated by my successors, the widget does not function anymore.

Developer Garden TYPO3 extension 2009

An extension for TYPO3 supporting the Developer Garden APIs

The Developer Garden TYPO3 extension did provide an easy way to use the Developer Garden APIs within TYPO3, for example, to implement a “call me back” form, or to send SMS on important events. I used an automated model-driven approach to generate the TYPO3 extension, which is presented in my Bachelor’s thesis.

Tutorial Management System 2006-2008

A Ruby on Rails application for organizing my Java tutorials

At the University of Applied Sciences I held Java tutorials for novice students. As the students were from different study courses and semesters I wanted to find time slots where any student can attend. I’ve therefore written a small Ruby on Rails application, where students could enter their free times into a calendar and be notified when I chose a specific slot. Had I known Doodle in 2007, maybe I would not have started this project. My biggest insight gained through this endeavor was how to optimize my Rails application so it could be run on a low-budget virtual machine (which was not that easy in 2006). I’ve open sourced my application in 2008 and put it on sourceforge.