Streamlining APIfication by Generating APIs for Diverse Executables Using Any2API

For many of today’s systems, diverse application and management functionality is exposed by APIs to be used for integration and orchestration purposes. One important use case is the implementation of fully automated deployment processes that are utilized to create instances of Web applications or back-ends for mobile apps. Not all functionality that needs to be integrated in this context is exposed through APIs natively: such processes typically require a multitude of other heterogeneous technologies such as scripting languages and deployment automation tooling. This makes it hard to seamlessly and efficiently combine and integrate different kinds of building blocks such as scripts and configuration definitions that are required. Therefore, in this paper, we present a generic approach to automatically generate API implementations for arbitrary executables such as scripts and compiled programs, which are not natively exposed as APIs. This APIfication enables the uniform invocation of various heterogeneous building blocks, but aims to avoid the costly and manual wrapping of existing executables. In addition, we present the modular and extensible open-source framework any2api that implements the previously introduced APIfication approach. We evaluate the APIfication approach as well as the any2api framework by measuring the overhead of generating and using API implementations. Moreover, a detailed case study is conducted to confirm the technical feasibility of the presented approach.

[1]  Oleg Sukhoroslov,et al.  MathCloud: Publication and Reuse of Scientific Applications as RESTful Web Services , 2013, PaCT.

[2]  Frank Leymann,et al.  ANY2API - Automated APIfication - Generating APIs for Executables to Ease their Integration and Orchestration for Cloud Application Deployment Automation , 2015, CLOSER.

[3]  Leonard Richardson,et al.  RESTful Web APIs , 2013 .

[4]  Michael Httermann,et al.  DevOps for Developers , 2012 .

[5]  Oliver Kopp,et al.  OpenTOSCA - A Runtime for TOSCA-Based Cloud Applications , 2013, ICSOC.

[6]  Xiaoyu Yang,et al.  Guide to e-Science, Next Generation Scientific Research and Discovery , 2011, Guide to e-Science.

[7]  Oliver Kopp,et al.  Winery - A Modeling Tool for TOSCA-Based Cloud Applications , 2013, ICSOC.

[8]  Sriram Krishnan,et al.  Design and Evaluation of Opal2: A Toolkit for Scientific Software as a Service , 2009, 2009 Congress on Services - I.

[9]  P. Mell,et al.  The NIST Definition of Cloud Computing , 2011 .

[10]  Gilbert Moïsio,et al.  Internet Engineering Task Force , 2014 .

[11]  Oliver Kopp,et al.  TOSCA: Portable Automated Deployment and Management of Cloud Applications , 2014, Advanced Web Services.

[12]  Navin Sabharwal,et al.  Automation through Chef Opscode: A Hands-on Approach to Chef , 2014 .

[13]  Oliver Kopp,et al.  Unified Invocation of Scripts and Services for Provisioning, Deployment, and Management of Cloud Applications Based on TOSCA , 2014, CLOSER.

[14]  Navin Sabharwal,et al.  Automation through Chef Opscode , 2014, Apress.

[15]  Sam Newman,et al.  Building Microservices , 2015 .

[16]  Erik Wilde,et al.  A resource oriented architecture for the Web of Things , 2010, 2010 Internet of Things (IOT).

[17]  Jez Humble,et al.  Continuous Delivery: Reliable Software Releases Through Build, Test, and Deployment Automation , 2010 .

[18]  Oleg Sukhoroslov,et al.  Everest: A Cloud Platform for Computational Web Services , 2014, CLOSER.

[19]  Frank Leymann,et al.  Standards-Based DevOps Automation and Integration Using TOSCA , 2014, 2014 IEEE/ACM 7th International Conference on Utility and Cloud Computing.

[20]  Mark Masse,et al.  REST API Design Rulebook , 2011 .