ANY2API - Automated APIfication - Generating APIs for Executables to Ease their Integration and Orchestration for Cloud Application Deployment Automation

APIs are a popular means to expose functionality provided by Cloud-based systems, which are utilized to integrate and orchestrate application as well as management functionality in a programmatic manner. In the domain of application management, they are used to fully automate management processes, for example, to deploy Cloud-based Web applications or back-ends for mobile apps. However, as not all required functionality is exposed through an API natively, such processes additionally involve a multitude of other heterogeneous technologies such as scripting languages and deployment automation tooling. Consequently, combining different technologies in an efficient manner is a complex integration challenge. In this paper, we present a generic approach for automatically generating API implementations for arbitrary executables such as scripts and compiled programs, which are not natively exposed as APIs. This APIfication tackles the aforementioned integration challenges by unifying the invocation of heterogeneous technologies while avoiding the costly and manual wrapping of existing executables because it does not scale. We further present the modular and extensible open-source framework ANY2API that implements our APIfication approach. Furthermore, we evaluate the approach and the framework by measuring the overhead of generating and using API implementations. In addition, we conduct a detailed case study to confirm the technical feasibility of the approach.

[1]  Quan Z. Sheng,et al.  Advanced Web Services , 2014, Springer New York.

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

[3]  Mathijs Jeroen Scheepers Virtualization and Containerization of Application Infrastructure : A Comparison , 2014 .

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

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

[6]  Yaron Goland,et al.  Web Services Business Process Execution Language , 2009, Encyclopedia of Database Systems.

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

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

[9]  Ping Pan,et al.  Internet Engineering Task Force , 1995 .

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

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

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

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

[14]  Michael Hüttermann DevOps for Developers , 2012, Apress.

[15]  Mark von Rosing,et al.  Business Process Model and Notation - BPMN , 2015, The Complete Business Process Handbook, Vol. I.

[16]  Alexey Melnikov,et al.  The WebSocket Protocol , 2011, RFC.

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

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

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

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

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