My research at IBM concerns web APIs. Web APIs expose data and functionalities over networks using web(-related) technologies like HTTP, XML, or JSON. Such APIs have seen tremendous growth in the public space over the last few years. Whether it is Instagram, Google, Twitter, or IBM Watson - they all make their capabilities available to mobile, web, or any other type of applications via web APIs. At the same time, web APIs are used within organizations, be it to expose internal backend capabilities, or as the service interfaces in microservice architectures.
My research specifically evolves around how to provide and consume web APIs efficiently, from a developers perspective. Having a background in services computing, I am painfully aware of the low adoption rates of well-specified yet complex technologies like SOAP of the WS-*. On the other hand, web APIs follow a much more flexible model: beyond relying on HTTP and nowadays typically JSON as a data exchange format, any design decisions are left to providers (side note: in consequence, some of these APIs fulfill all constraints required to make them RESTful, while most don’t). My research tries to embrace the resulting proliferation of web APIs, which enabled their large uptake, while still providing some of the benefits typically associated with the usage of well-specified, prescriptive technologies.
Some specific threads of work, having the above stated goal in mind, are:
- In API Harmony, we aim to collect public web APIs. In contrast to existing catalogs, which easily become stale, we continuously mine information on web APIs, keeping it up to date.
- Within the context of API Harmony, we try to provide usage advice that we mine from open source projects in GitHub, shedding light on how web APIs are commonly used by other developers. Using static analysis, we try to understand the control- and data flow in example API-using applications. A corresponding paper has been accepted at ICSE 2017.
- In a long-term, geo-distributed experiment we benchmark quality characteristics of web APIs, published in a 2016 ICWE paper.
- To enable various automations during web API provision or consumption, web APIs rely on machine-understandable specifications, like the OpenAPI specification. In our research, we look at automating the creation and maintenance of such specifications from sources like dynamic traces (e.g., server-logs, as published at HotWeb 2015) or from online documentation.
- At this year's 1st International Workshop on Mashups of Things and APIs (MoTA; I am a co-organizer) papers addressed issues from appropriate programming models for to concrete implementations of applications that heavily use web APIs.
In an ideal world, web APIs remain as flexible for providers and easy to use for consumers as they are today, while providing stricter guarantees on their behaviors, both functionally and non-functionally, and higher levels of automation across their life-cycle. You can read more about our research towards that goal at our blog APIful.io!
Before joining IBM Research in October 2014, I finished my Phd at Karlsruhe Institute of Technology (KIT). My dissertation addresses Modeling and Selection of Software Service Variants.