My research at IBM is about web APIs. Web APIs provide programmatic access to data and functionalities over networks using web(-related) technologies like HTTP, JSON, or XML. New paradigms like GraphQL stir up the use of web APIs, both public-facing ones as well as those used within (microservice-based) applications.
My research concerns both the provision and consumption of web APIs from a developer's perspective. On the one hand, my research aims to help providers to efficiently create APIs, and then operate and evolve them, including maintaining up-to-date API documentation, preventing misuse, pricing and limiting use, or changing the API with minimal impacts on consumers. These challenges are particularly of interest to me with regards to new API paradigms like GraphQL, for which many of these challenges cannot (yet) easily be solved. On the other hand, my research aims to support consumers of APIs to identify and learn about APIs to use, to assess the quality of service of APIs and deal with insufficient qualities, to quickly write correct code to invoke APIs, and to keep that code up-to-date in light of API evolution.
Some specific threads of my work are:
- Providing GraphQL management facilities with the help of static analysis. I first publicly talked about this work at the API Strategy & Practice conference 2018.
- OASGraph, is an open-sourced library that automatically creates GraphQL wrappers for REST(-like) APIs (design and evaluation published at ICWE 2018).
- API Harmony, where we aim to collect data about public web APIs and provide usage advice that we mine from open source projects in GitHub. Using static analysis, we try to understand the control- and data flow in applications using APIs (published at ICSE 2017).
- I co-authored a book on Cloud Service Benchmarking, published by Springer in 2017. This work relates to a long-term, geo-distributed experiment to benchmark quality characteristics of web APIs, published in a 2016 ICWE paper.
- Automatcally creating and mainting OpenAPI Specifications from sources like online documentation (published at MSR 2018; won an ACM SIGSOFT distinguished paper award) or dynamic traces (e.g., server-logs, published at HotWeb 2015).
- I co-organize the International Workshop on Middleware and Applications for the Internet of Things (M4IoT), where papers address issues from appropriate programming models to concrete implementations of applications that heavily use web APIs.
Before joining IBM Research in October 2014, I finished my Phd at Karlsruhe Institute of Technology (KIT). My dissertation is about Modeling and Selection of Software Service Variants.