The cloud computing model and cloud implementation are based on the principles of following a whole set of standards.

Standards of cloud terminology, organization, and architecture are defined in [18–20]. I am trying to use the cloud terminology standards throughout the book; however, it does not appear to be stabilized yet.

There is a draft standard for InterCloud, a “cloud of clouds,” intended for the future integration of clouds provided by different companies. In this prospective role, the InterCloud standard is very important. However, currently the situation in cloud computing is far from the cloud integration stage. It can be characterized as active and aggressive development of many competitive cloud platforms.

For software components interaction in the cloud, the following standards are used, as explained subsequently.

HTTP – the hypertext transfer protocol, the basic networking protocol of the Web. The methods of HTTP have the format of HTTP Method_Name URI_Address and are as follows:

  • GET – gets and displays in the client Web browser the requested HTML Web page (referenced by a URI address) from the Web server to the Web client
  • POST – sends the filled out Web form from the Web client to the Web server
  • HEAD – gets and displays in the client browser only the header of the requested Web page (without the body of the HTML page)
  • PUT – uploads the content of the request to the URI address of the resource; if the resource with such URI is missing, it is created
  • PATCH – updates a fragment of the resource, similar to PUT
  • DELETE – deletes the given resource
  • TRACE – traces the changes or additions of the intermediate servers (if any)
  • OPTIONS – checks the functionality of the Web server by returning the HTTP methods the server supports
  • CONNECT – converts the request connection to a transparent TCP/IP tunnel, to support SSL connection (https) via an unencrypted proxy.

At the end of any HTTP request, there can be a part starting with “?”. After the “?” sign the Web client can provide parameters for the HTTP method performed by the Web server. For example, the request http://my/cloud/service?wsdl asks the given cloud service to return its Web methods if the service is implemented according to the WSDL standard.

The HTTP protocol is well suited for traditional non-grouped actions on the cloud, for example, for visualizing a cloud Web page. As for operations on big data (which are especially important now), the HTTP protocol is not fast enough and special; more efficient protocols should be used instead.

XML (extensible markup language) is used in cloud computing to represent Web configuration files (such as Web.config in .NET applications [14]), and to serialize data for their transfer via the network. One of the forms of networking data serialization in XML format is referred to as SOAP (Simple Object Access Protocol). In SOAP standard, objects are represented and transferred via the network in the form of specific XML files referred to as envelopes (the soap:envelope XML tag is used to distinguish between SOAP and other files). XML is used also to specify the interface of Web services in the format referred to as WSDL However, SOAP and WSDL are slower to use, as compared to REST [22]; so cloud providers prefer to use REST in their cloud access APIs. The calls of RESTful APIs do not require XML format and are almost as simple as the basic methods of the HTTP protocol.

XMPP (Jabber) is one of the widely used standards to send and receive instant messages from one computing device (typically a laptop, tablet or smartphone) to another. The standard is based on using the XML format to represent instant messages, which corresponds well to the spirit and standards of the Web. The XMPP protocol plays a central role in the InterCloud standard [21]: according to this draft standard, the clouds in the near future should communicate and configure their interaction using XMPP. However, to my mind XMPP-based style of cloud interaction may work slow (especially when processing big data) because of its verbosity caused by using XML.

SSL (Secure Socket Layer) is a standard of the secure use of sockets, which is especially important to securely transfer confidential information (such as people names, credit card numbers, mobile phone numbers, and so on) via the Web in encrypted form. The SSL standard is used in the https protocol.

AJAX (Asynchronous JavaScript and XML) is a standard to efficiently use Web browsers when the number of the Web pages and possible redirections from one to the other may be big. Cloud computing is based on very intensive use of Web browsers, so using AJAX on the client side can dramatically improve the Web connection performance. The AJAX standard and technology are based on the use of JavaScript and XML to reduce the amount of redirections between Web pages. AJAX implementation uses the idea for preliminary grouping of related sets of Web pages that are likely to be used together, and to transfer such a group via the Web by one GET command, instead of spending dozens of GETs for each individual page. The usability of AJAX for large Web applications can be confirmed by my own experience of developing commercial Web software products.

HTML 5 is the latest version of the hypertext markup language used on the Web, finally standardized in 2014. This new version is especially important for cloud computing, due to a number of new features of HTML 5: offline clients (including offline databases) used in cloud sessions; support of the use fromsmartphones; extended support to represent multimedia information (e.g., the new <video> and <audio> tags). These new features of HTML allow the users to refer to it as a special new version of HTML for cloud computing. HTML 5 is also considered as a potential candidate for cross-platform mobile applications. HTML 5 features were designed with considerations of being able to run on mobile devices (smartphones or PDAs) and on tablets. Also, the Document Object Model (DOM) that allows to represent documents as objects became an inherent part of HTML 5 specification (with previous versions of HTML, it was used just as some extension). So HTML 5 is suitable for use in cloud computing with mobile devices.

OMF (Open Media Framework) is a standard used in cloud computing for representing and transferring multimedia files, for example, video and audio.

OVF (Open Virtualization Format, or Open Virtual Machine Format) is an open standard for organization of virtual machines that play such a key role in cloud computing. The first version of the standard was developed by Microsoft, HP, Dell, IBM, and VMware in 2007, before the cloud era. The current version of the standard, OVF 2.0, accepted by the Distributed Management Task Force(DMTF), is targeted at cloud computing. The standard defines the structure of an OVF package that contains information on the packaged virtual machines. The OVF package contains an OVF descriptor– an XML file that describes the packaged virtual machine. The OVF package also contains disk imagesof the virtual machine, and may contain certificate files and other auxiliary files. The OVF format is approved by many software companies. For example, it is used in Microsoft System Center Virtual Machine Manager, in IBM Smart Cloud, and in Oracle VM.

Virtual Hard Disk (VHD) is a file format and standard used by Microsoft for representing virtual hard disks. The format was used since 2003 in Microsoft Virtual PC – the virtualization software product, a predecessor of Microsoft Hyper-V (hypervisor). Currently the VHD format is used in Microsoft Azure cloud for representing virtual hard disks in Azure virtual machines, and for representing large multimedia files in Azure multimedia services.

REST (Representational State Transfer,  is a standard used in cloud computing to efficiently organize Web cloud services. As mentioned before, with such standard, information on the state of the Web service is passed via the arguments and results of a Web method. Also, Web methods are called asynchronously. So the REST standard is a good basis for efficient use of cloud services. The advantages of REST for cloud computing are as follows [22]:

  • REST uses a standard HTTP protocol without additional messaging layers that would make it more “heavyweight.”
  • REST uses URI addresses to access Web (cloud) resources.
  • REST uses the standard set of HTTP operations on Web resources: GET, POST, PUT, DELETE, and HEAD.
  • RESTful Web services are fully stateless, that is, they do not explicitly keep information on their state. This can be tested by restarting the cloud server and checking its availability using REST APIs.
  • RESTful Web services support caching infrastructure using HTTP GET method (for most servers). This can improve the performance if the data the RESTful Web service returns is not changed frequently and is not dynamic in nature. For example, RESTful services are well suitable to communicate to a cloud database, which is not too big and which is not at generation stage. For example, using RESTful services to get from the cloud or transfer to the cloud some big data may appear not so efficient.
  • The RESTful service producer and service consumer need to keep a common understanding of the context as well as the content being passed along, since there is no standard set of rules to describe the RESTful Web services interface.
  • REST is especially useful for restricted-profile devices such as smartphones and PDAs, for which the overhead of additional parameters such as headers and other SOAP elements are less.
  • RESTful services are easy to integrate with the existing Web sites and are exposed with XML so that the HTML pages can consume the same with ease. There is no need to refactor the existing Web site architecture. This increases the productivity of software developers, since they will not have to rewrite everything from scratch and just need to add the existing functionality.