Cloud Application Management for Platforms

Last updated

Cloud Application Management for Platforms (CAMP) is a specification for managing applications in the context of a platform as a service (PaaS) system. CAMP is designed to address the needs of a high-level PaaS system; one in which the consumer (generally a developer or application administrator) provides application artifacts (code, data, graphics, etc.) and specifies which provider-supplied services are required to realize these artifacts as an application. The details of the infrastructure (compute, storage, and networking) used to support these services are hidden from the consumer by the provider of the PaaS system.

Platform as a Service (PaaS) or Application Platform as a Service (aPaaS) or platform-based service is a category of cloud computing services that provides a platform allowing customers to develop, run, and manage applications without the complexity of building and maintaining the infrastructure typically associated with developing and launching an app.

Contents

Paas Model Cloud Application Management for Platform Overview Figure.jpg
Paas Model

CAMP defines the following:

A domain-specific language (DSL) is a computer language specialized to a particular application domain. This is in contrast to a general-purpose language (GPL), which is broadly applicable across domains. There are a wide variety of DSLs, ranging from widely used languages for common domains, such as HTML for web pages, down to languages used by only one or a few pieces of software, such as MUSH soft code. DSLs can be further subdivided by the kind of language, and include domain-specific markup languages, domain-specific modeling languages, and domain-specific programming languages. Special-purpose computer languages have always existed in the computer age, but the term "domain-specific language" has become more popular due to the rise of domain-specific modeling. Simpler DSLs, particularly ones used by a single application, are sometimes informally called mini-languages.

Representational State Transfer (REST) is a software architectural style that defines a set of constraints to be used for creating Web services. Web services that conform to the REST architectural style, termed RESTful Web services (RWS), provide interoperability between computer systems on the Internet. RESTful Web services allow the requesting systems to access and manipulate textual representations of Web resources by using a uniform and predefined set of stateless operations. Other kinds of Web services, such as SOAP Web services, expose their own arbitrary sets of operations.

Motivation

Most PaaS systems provide some form of application management API. These APIs are used to upload applications into the cloud, configure which services will be used to run the application, start the application, monitor the status and performance of the application, stop the application, etc. These APIs are usually hidden behind a web application and/or a command line tool. This kind of API is a "me too" technology; its existence is a necessary prerequisite to providing a workable PaaS system, but there is little advantage in providing a better management API than your competitors. No one ever selected a PaaS offering solely on the strength of its application management API. Meanwhile, the fact that every PaaS system provides a custom application management API creates a number of issues:

In computer programming, an application programming interface (API) is a set of subroutine definitions, communication protocols, and tools for building software. In general terms, it is a set of clearly defined methods of communication among various components. A good API makes it easier to develop a computer program by providing all the building blocks, which are then put together by the programmer.

Command-line interface type of computer interface based on entering text commands and viewing text output

A command-line interface or command language interpreter (CLI), also known as command-line user interface, console user interface and character user interface (CUI), is a means of interacting with a computer program where the user issues commands to the program in the form of successive lines of text. A program which handles the interface is called a command language interpreter or shell.

In software engineering, continuous integration (CI) is the practice of merging all developer working copies to a shared mainline several times a day. Grady Booch first proposed the term CI in his 1991 method, although he did not advocate integrating several times a day. Extreme programming (XP) adopted the concept of CI and did advocate integrating more than once per day – perhaps as many as tens of times per day.

Integrated development environment software application used to develop software

An integrated development environment (IDE) is a software application that provides comprehensive facilities to computer programmers for software development. An IDE normally consists of at least a source code editor, build automation tools, and a debugger. Some IDEs, such as NetBeans and Eclipse, contain the necessary compiler, interpreter, or both; others, such as SharpDevelop and Lazarus, do not.

History

CAMP 1.0

CAMP 1.0 [1] was produced as a collaboration between CloudBees, Cloudsoft Corporation, Huawei, Oracle, Rackspace, Red Hat, and Software AG. [2] It was published in August, 2012.

CAMP 1.1

In August, 2012 CAMP 1.0 was submitted to OASIS CAMP Technical Committee with the intent of producing an OASIS Standard. This Technical Committee has produced an OASIS Committee Specification. [3] As per its charter, the CAMP TC is awaiting evidence of two, interoperable implementations of CAMP v1.1 before asking OASIS to approve the specification as an OASIS Standard.

CAMP Implementations

nCAMP

Developed in tandem with the work of the OASIS CAMP Technical Committee, nCAMP is a proof-of-concept implementation of the CAMP v1.1 specification. nCAMP was not intended to be a useful PaaS system but, instead, to act as a vehicle to test the concepts and constructs of the CAMP specification. nCAMP presents a simple system that uses Tomcat and MySQL to support Java Servlet based web applications that can use MySQL as a database.

Project Solum

Solum is an OpenStack Related Stackforge project designed to make cloud services easier to consume and integrate into the developers application development process. Solum's resource model and plan schema are based on CAMP, but not fully CAMP compliant. Work is currently ongoing to provide an additional, CAMP-compliant API [4] in addition to the native Solum API.

Apache Brooklyn

Apache Brooklyn is a framework for modeling, monitoring, and managing applications through autonomic blueprints. Apache Brooklyn blueprints conform to CAMP v1.1 Public Review Draft 01.

Notes

  1. Cloud Application Management for Platforms Version 1.0, August 2012. https://www.oasis-open.org/committees/download.php/47278/CAMP-v1.0.pdf
  2. InfoQ, "CAMP 1.0 – An Open API for PaaS Application Management", August 31, 2012. http://www.infoq.com/news/2012/08/CAMP-PaaS
  3. Cloud Application Management for Platforms Version 1.1, Committee Specification 01, 9 November, 2014. http://docs.oasis-open.org/camp/camp-spec/v1.1/cs01/camp-spec-v1.1-cs01.pdf
  4. CAMP 1.1 API Support. https://blueprints.launchpad.net/solum/+spec/solum-camp-api

Related Research Articles

An application server is a software framework that provides both facilities to create web applications and a server environment to run them.

In computing, Open Database Connectivity (ODBC) is a standard application programming interface (API) for accessing database management systems (DBMS). The designers of ODBC aimed to make it independent of database systems and operating systems. An application written using ODBC can be ported to other platforms, both on the client and server side, with few changes to the data access code.

The Organization for the Advancement of Structured Information Standards (OASIS) is a global nonprofit consortium that works on the development, convergence, and adoption of open standards for security, Internet of Things, energy, content technologies, emergency management, and other areas.

Mimer SQL is an SQL-based relational database management system produced by the Swedish company Mimer Information Technology AB, formerly known as Upright Database Technology AB. It was originally developed as a research project at the Uppsala University, Uppsala, Sweden in the 1970s before being developed into a commercial product.

Message-oriented middleware (MOM) is software or hardware infrastructure supporting sending and receiving messages between distributed systems. MOM allows application modules to be distributed over heterogeneous platforms and reduces the complexity of developing applications that span multiple operating systems and network protocols. The middleware creates a distributed communications layer that insulates the application developer from the details of the various operating systems and network interfaces. APIs that extend across diverse platforms and networks are typically provided by MOM.

Web Services Discovery provides access to software systems over the Internet using standard protocols. In the most basic scenario there is a Web Service Provider that publishes a service and a Web Service Consumer that uses this service. Web Service Discovery is the process of finding suitable web services for a given task.

Content Repository API for Java (JCR) is a specification for a Java platform application programming interface (API) to access content repositories in a uniform manner. The content repositories are used in content management systems to keep the content data and also the metadata used in content management systems (CMS) such as versioning metadata. The specification was developed under the Java Community Process as JSR-170, and as JSR-283. The main Java package is javax.jcr.

In cryptography, PKCS #11 is one of the Public-Key Cryptography Standards, and also refers to the programming interface to create and manipulate cryptographic tokens.

The Java Persistence API (JPA) is a Java application programming interface specification that describes the management of relational data in applications using Java Platform, Standard Edition and Java Platform, Enterprise Edition.

Knowledge Discovery Metamodel (KDM) is a publicly available specification from the Object Management Group (OMG). KDM is a common intermediate representation for existing software systems and their operating environments, that defines common metadata required for deep semantic integration of Application Lifecycle Management tools. KDM was designed as the OMG's foundation for software modernization, IT portfolio management and software assurance. KDM uses OMG's Meta-Object Facility to define an XMI interchange format between tools that work with existing software as well as an abstract interface (API) for the next-generation assurance and modernization tools. KDM standardizes existing approaches to knowledge discovery in software engineering artifacts, also known as software mining.

WaveMaker

WaveMaker is a private aPaaS software for building and running custom apps. WaveMaker provides Rapid API App Development & Deployment to build enterprise-grade multi-device apps, and leverages Docker containerization for an app-optimized infrastructure.

Open Cloud Computing Interface

The Open Cloud Computing Interface (OCCI) is a set of specifications delivered through the Open Grid Forum, for cloud computing service providers. OCCI has a set of implementations that act as proofs of concept. It builds upon World Wide Web fundamentals by using the Representational State Transfer (REST) approach for interacting with services.

SOA Repository Artifact Model & Protocol (S-RAMP) is a specification of SOA repository released by HP, IBM, Software AG, TIBCO, and Red Hat. The SOA repository provides environments for designing, running and monitoring services. The repository manages artifacts like schemas, service descriptions, business process definitions and policies. The SOA Repository Artifact Model and Protocol (S-RAMP) defines a common data model for SOA repositories as well as an interaction protocol to facilitate the use of common tooling and sharing of data. This ATOM binding specifications documents the syntax for interaction with a compliant repository for create, read, update, delete and query operations. The S-RAMP specification promotes interoperability of SOA Repositories. The S-RAMP specification is one of the SOA standards.

IBM cloud computing is a set of cloud computing services for business offered by the information technology company IBM. IBM cloud includes infrastructure as a service (IaaS), software as a service (SaaS) and platform as a service (PaaS) offered through public, private and hybrid cloud delivery models, in addition to the components that make up those clouds.

JumpSoft Inc is an American software company that provides application performance management (APM) software. JumpSoft is a committee member for several industry web services standards including web services interoperability and cloud application management for platforms. In 2012 JumpSoft co-proposed a new industry web services standard for managing cloud applications on PaaS environments called CAMP.

Cloud Infrastructure Management Interface (CIMI) is an open standard API specification for managing cloud infrastructure.

Cloud management is the management of cloud computing products and services.

Apache Brooklyn is an open-source framework for modeling, deploying and managing distributed applications defined using declarative YAML blueprints. The design is influenced by Autonomic computing and promise theory and implements the OASIS CAMP and TOSCA standards.

Content as a service (CaaS) or managed content as a service (MCaaS) is a service-oriented model, where the service provider delivers the content on demand to the service consumer via web services that are licensed under subscription. The content is hosted by the service provider centrally in the cloud and offered to a number of consumers that need the content delivered into any applications or system, hence content can be demanded by the consumers as and when required.