Advertisement

Streamlining APIfication by Generating APIs for Diverse Executables Using Any2API

  • Johannes WettingerEmail author
  • Uwe Breitenbücher
  • Frank Leymann
Conference paper
Part of the Communications in Computer and Information Science book series (CCIS, volume 581)

Abstract

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.

Keywords

API APIfication Service Web REST DevOps Deployment Cloud computing 

Notes

Acknowledgement

This work was partially funded by the BMWi project CloudCycle (01MD11023) and the DFG project SitOPT (610872).

References

  1. 1.
    Richardson, L., Amundsen, M., Ruby, S.: RESTful Web APIs. O’Reilly Media Inc., Sebastopol (2013)Google Scholar
  2. 2.
    Rudrakshi, C., Varshney, A., Yadla, B., Kanneganti, R., Somalwar, K.: API-fication - core building block of the digital enterprise. Technical report, HCL Technologies (2014)Google Scholar
  3. 3.
    Guinard, D., Trifa, V., Wilde, E.: A resource oriented architecture for the web of things. In: Internet of Things (IOT), 2010. IEEE (2010)Google Scholar
  4. 4.
    Masse, M.: REST API Design Rulebook. O’Reilly Media Inc., Sebastopol (2011)Google Scholar
  5. 5.
    W3C: SOAP Specification, Version 1.2 (2007)Google Scholar
  6. 6.
    Mell, P., Grance, T.: The NIST Definition of Cloud Computing. National Institute of Standards and Technology (2011)Google Scholar
  7. 7.
    Wettinger, J., Binz, T., Breitenbücher, U., Kopp, O., Leymann, F., Zimmermann, M.: Unified invocation of scripts and services for provisioning, deployment, and management of cloud applications based on TOSCA. In: Proceedings of the 4th International Conference on Cloud Computing and Services Science. SciTePress (2014)Google Scholar
  8. 8.
    Nelson-Smith, S.: Test-Driven Infrastructure with Chef. O’Reilly Media Inc., Sebastopol (2013)Google Scholar
  9. 9.
    Turnbull, J.: The Docker Book. Lulu.com (2014)Google Scholar
  10. 10.
    Wettinger, J., Breitenbücher, U., Leymann, F.: Any2API - Automated APIfication. In: Proceedings of the 5th International Conference on Cloud Computing and Services Science. SciTePress (2015)Google Scholar
  11. 11.
    Hüttermann, M.: DevOps for Developers. Apress, Berkeley (2012)CrossRefGoogle Scholar
  12. 12.
    Humble, J., Farley, D.: Continuous Delivery: Reliable Software Releases Through Build, Test, and Deployment Automation. Addison-Wesley Professional, Boston (2010)Google Scholar
  13. 13.
    Wettinger, J., Breitenbücher, U., Leymann, F.: Standards-based DevOps automation and integration using TOSCA. In: Proceedings of the 7th International Conference on Utility and Cloud Computing (UCC) (2014)Google Scholar
  14. 14.
    Sabharwal, N., Wadhwa, M.: Automation through Chef Opscode: A Hands-on Approach to Chef. Apress, Berkeley (2014)CrossRefGoogle Scholar
  15. 15.
    Pepple, K.: Deploying OpenStack. O’Reilly Media, Sebastopol (2011)Google Scholar
  16. 16.
    OMG: Business Process Model and Notation (BPMN) Version 2.0 (2011)Google Scholar
  17. 17.
    OASIS: Web Services Business Process Execution Language (BPEL) Version 2.0 (2007)Google Scholar
  18. 18.
    Scheepers, M.J.: Virtualization and Containerization of Application Infrastructure: A Comparison (2014)Google Scholar
  19. 19.
    World Wide Web Consortium (W3C): XML Schema (2012)Google Scholar
  20. 20.
    Internet Engineering Task Force: JSON Schema (2013)Google Scholar
  21. 21.
    Binz, T., Breitenbücher, U., Haupt, F., Kopp, O., Leymann, F., Nowak, A., Wagner, S.: OpenTOSCA – a runtime for TOSCA-based cloud applications. In: Basu, S., Pautasso, C., Zhang, L., Fu, X. (eds.) ICSOC 2013. LNCS, vol. 8274, pp. 692–695. Springer, Heidelberg (2013)CrossRefGoogle Scholar
  22. 22.
    Kopp, O., Binz, T., Breitenbücher, U., Leymann, F.: Winery – a modeling tool for TOSCA-based cloud applications. In: Basu, S., Pautasso, C., Zhang, L., Fu, X. (eds.) ICSOC 2013. LNCS, vol. 8274, pp. 700–704. Springer, Heidelberg (2013)CrossRefGoogle Scholar
  23. 23.
    Binz, T., Breitenbücher, U., Kopp, O., Leymann, F.: TOSCA: portable automated deployment and management of cloud applications. In: Bouguettaya, A., Sheng, Q.Z., Daniel, F. (eds.) Advanced Web Services, pp. 527–549. Springer, New York (2014)CrossRefGoogle Scholar
  24. 24.
    Yang, X., Wang, L., Jie, W.: Guide to e-Science. Springer, London (2011)CrossRefGoogle Scholar
  25. 25.
    Afanasiev, A., Sukhoroslov, O., Voloshinov, V.: MathCloud: publication and reuse of scientific applications as RESTful web services. In: Malyshkin, V. (ed.) PaCT 2013. LNCS, vol. 7979, pp. 394–408. Springer, Heidelberg (2013)CrossRefGoogle Scholar
  26. 26.
    Sukhoroslov, O., Afanasiev, A.: Everest: a cloud platform for computational web services. In: Proceedings of the 4th International Conference on Cloud Computing and Services Science. SciTePress (2014)Google Scholar
  27. 27.
    Krishnan, S., Clementi, L., Ren, J., Papadopoulos, P., Li, W.: Design and evaluation of Opal2: a toolkit for scientific software as a service. In: World Conference on Services I. IEEE (2009)Google Scholar
  28. 28.
    Newman, S.: Building Microservices. O’Reilly Media, Sebastopol (2015)Google Scholar
  29. 29.
    IETF: The WebSocket Protocol (2011)Google Scholar

Copyright information

© Springer International Publishing Switzerland 2016

Authors and Affiliations

  • Johannes Wettinger
    • 1
    Email author
  • Uwe Breitenbücher
    • 1
  • Frank Leymann
    • 1
  1. 1.Institute of Architecture of Application SystemsUniversity of StuttgartStuttgartGermany

Personalised recommendations