Keywords

1 Introduction

Cloud computing allows users to remotely access, and use computer hardware and software over the Internet. Users can use a shared pool of computing resources provisioned with their minimal management efforts [1]. It is an open standard model, which can easily and on-demand provide a scalable environment for the benefit of end users by offering Cloud services, which can be categorized by the type of IT resource they offer: Infrastructure-as-a-Service (IaaS), Platform-as-a-Service (PaaS) and Software-as-a-Service (SaaS). IaaS services can provide users with pre-configured hardware resources through a virtual interface, additional storage space for data backups, network bandwidth for servers, and even access to high power computing that previously only accessed with supercomputers. PaaS services deliver a platform to users from which they can develop, initialize and manage applications. PaaS offerings typically include a base operating system and a suite of applications and development tools. Finally, SaaS services deliver to users a fully functional and complete software product through a Web browser.

As the number of providers continues to grow, the number of Cloud services is growing exponentially. However, many issues emerge for users and complicate Cloud service discovery and selection tasks. It stems from the fact that providers use different descriptions, non-standardized naming conventions and diverse types and features for their Cloud services. This lack of a standard Cloud service description makes, on the one hand, the comparison between Cloud offerings a tedious task for users, and on the other hand, prevents the interoperability between Cloud services. Especially that Cloud providers typically publish their services on their websites in various formats. Thus, even if users succeed to discover the services that meet their functional needs, they find a big problem by comparing them according to their requirements in terms of quality of service, price, Cloud characteristics, service credibility, and so on.

Analysis of existing research work on Cloud services revealed some crucial limitations: the need for a unified description of Cloud services covering multiple aspects, and the proposed service descriptions depends solely on QoS parameters. Therefore, we conclude that there is a lack of a standard Cloud service representation that can specify Cloud services from different aspects, against different types of Cloud services (IaaS, PaaS, and SaaS), for different service users, and for different usage requirements.

In order to address the above problems, our purpose in this paper is to describe Cloud services in an informed way. To do this, we propose a Cloud service description ontology according to identified Cloud-specific principles and requirements. The proposed Cloud description ontology is extended from the Linked USDL language [2, 3] by taking into consideration Linked USDL limitations in a Cloud environment.

The remainder of this paper is constructed as follows. In Sect. 2, we present the related works on Cloud service description. In Sect. 3, we introduce the Linked USDL language and specify its limitations in the Cloud environment. An overview of the proposed Cloud service description ontology is outlined in Sect. 4. Finally, Sect. 5 concludes our paper and gives an outlook on possible future research directions.

2 Related Works

Various researches emerged in recent years that attempt at standardizing Cloud service description. In what follows, we briefly review some works.

Zhang et al. [4] proposed a CloudRecommender system that implements a domain ontology, called CoCoOn (Cloud Computing Ontology), in a relational model. The proposed ontology represents the configuration information related to Cloud-based IaaS services including compute, storage, and network. This system uses regular expressions and SQL to match users’ requests to service descriptions in order to discover and to select IaaS services based on their functionality and Quality of Service (QoS) parameters.

Zhou et al. [5] used WSDL-S to semantically describe services that will be discovered. They proposed a P2P-based unstructured method for SaaS discovery. They developed a localized search scheme by using semantic routing protocols and topology reconstruction techniques for service query routing.

Afify et al. [6] proposed a semantic-based system that facilitates the SaaS publication, discovery and selection processes. This system is based on a unified ontology that combines services domain knowledge, SaaS characteristics, QoS metrics, and real SaaS offers.

Nagireddi et al. [7] proposed a Cloud ontology that provides the description of Cloud services and their attributes to facilitate Cloud service discovery. The Cloud ontology is used to order the query, rank services as well as to store the services. They employed the SPARQL query language to extract information from the ontology and match services according to user requests.

Quinton et al. [8] proposed an approach for selecting a Cloud environment, setting the configuration of this environment, and deploying applications. This approach is based on a combination of Software Product Lines (SPLs) and a domain model, enabling the developer to automatically select a Cloud environment that fits a set of requirements, and obtain the description les and executable scripts to configure the related Cloud environment. Authors proposed an extension of feature models (FMs) with cardinalities and attributes as variability models to describe Cloud environment.

Alfazi et al. [9] developed a comprehensive ontology based on the NIST Cloud computing standard to discover and categorize Cloud services in real environments. They used the Cloud service ontology concepts to categorize the Cloud services into several clusters.

Kang et al. [10] presented a four-stage, agent-based Cloud service discovery protocol using Cloud ontology. Indeed, two Cloud ontologies (CO-1 and CO-2) are designed to semantically define the relationship between Cloud services. Whereas CO-1 contains only Cloud concepts, CO-2 contains a set of Cloud concepts, individuals of those concepts, and the relationship among those individuals. The similarity among Cloud services is determined by three kinds of reasoning methods namely concept similarity reasoning, object property similarity reasoning, and datatype property similarity reasoning.

Rekik et al. [11] proposed a comprehensive ontology for Cloud service description that covers the three layers of Cloud models (IaaS, PaaS and SaaS). The proposed ontology treats the functional and non-functional properties of services to help users to discover and select appropriate Cloud services.

Ghazouani et al. [12] proposed a Cloud service description that covers all Cloud service types with all aspects (technical, business, operational, and semantic). The proposed description is based on USDL (Unified Service Description Language) [15] and WSMO (Web Service Modeling Onology) to describe and define semantically Cloud services.

Sun et al. [13] proposed a semantic Cloud Service Description Model called CSDM, which is extended from the basic structure of USDL [15], by defining Cloud-service-specific attributes. CSDM allows the description of different services with different delivery and deployment models. Furthermore, the authors added, in their proposed description, an additional module named transaction module, which models the rating system of Cloud services from several aspects, such as risk, trust, and reputation.

Shetty et al. [14] used XML technology for modeling the infrastructure services. The proposed data representational model helps users to discover services through a hybrid method, which combines both syntactic and semantic approaches of service discovery. The representational model consists of service name, server locations, functional properties, and non-functional properties.

Based on the findings from the comparative study and analysis of different Cloud service description approaches, we can conclude that the Cloud service description should be comprehensive and complete in order to facilitate, on the one hand, the Cloud service discovery and selection tasks to the users, and, on the other hand, the Cloud service publication task to the providers. We notice, from Table 1, that studied works provide interesting solutions for the description of three types of Cloud services (IaaS, PaaS, and SaaS) [7, 9,10,11,12,13]. Moreover, most research works move towards a semantic Cloud service description using ontology [4, 6, 7, 9,10,11,12,13]. As indicated in Table 2, certain works cover all aspects such as functional, technical, operational, business, and semantic aspects [7, 12, 13]. Others give more importance to the business aspect such as QoS, pricing policy, etc. [4, 6, 7, 11,12,13,14]. From Table 3, we notice that only [6] have considered the common characteristics of Cloud services in their SaaS description.

Table 1. Comparison of Cloud service descriptions by type, proposed representation, and approach used.
Table 2. Comparison of the proposed Cloud service descriptions by Functional, Technical, Operational, Business, and Semantic aspects.
Table 3. Comparison of the proposed Cloud service descriptions by Business aspect, and Cloud characteristics.

In summary, we conclude that existing service descriptions are incomplete because they do not cover all the concepts needed to describe the three types of Cloud services (IaaS, PaaS, and SaaS). To address these issues, we propose a Cloud service description ontology that is an extension of the Linked Unified Service Description Language (Linked USDL) [2, 3] for the definition of Cloud services. Our choice is particularly oriented towards Linked USDL for many reasons. First, Linked USDL is the only standardization attempt to express not only the purely technical aspects of the service but also the business and operational aspects. Second, this language goes one step forward in the adoption of Web technologies to embrace the emerging standard approach for data sharing online, namely Linked Data [16]. Moreover, it reuses existing RDF(S) vocabularies such as the Minimal Service Model, GoodRelations, FOAF and SKOS, which simplifies its extension and adaptation. The proposed Cloud service description ontology covers all Cloud service types and merges technical, operational, business and semantic aspects with Cloud characteristics (common and specific) to obtain a complete and comprehensive Cloud service description.

3 An Overview of Linked USDL

The need for service descriptions that address business and operational levels has guided efforts to develop new languages to capture these aspects besides the technical one. The Unified Service Description Language (USDL) [15] is probably the most comprehensive attempt. It supports service description by covering three aspects: technical, operational, and business. USDL aims to offer a platform-neutral language for describing services. However, USDL does not support semantic aspect and is not designed to Cloud Computing domain.

Linked Unified Service Description Language (Linked USDL) [2, 3] is a remodeled version of USDL build upon the Linked Data principles and represented with RDFS. Linked USDL aims to provide a language for an open, adaptable and scalable description of services using decentralized management. Linked USDL is segmented into five modules. Each module is a set of concepts and properties. The purpose of this division is to reduce the overall complexity of service descriptions by allowing providers to use only the necessary modules [17]. The five modules are as follows:

usdl-core. The core module covers the operational aspects of a service, such as interaction points between the provider and consumer that occur during provisioning, as well as the description of the business entities involved.

usdl-price. The pricing module covers a set of concepts that are needed to appropriately describe the price structures of a service.

usdl-agreement. The service level agreement module gathers functional and non-functional information on the quality of the service provided, such as availability, response time, and reliability.

usdl-sec. This module describes the main security properties of a service.

usdl-ipr. This module defines the rights and obligations under which services may be consumed.

Linked USDL offers several benefits for service description, including coverage of technical, operational, and business aspects, extensibility, reusability of existing data models, and simplicity in publishing services. However, it does not capture all the concepts necessary to effectively describe Cloud services, such as Cloud characteristics. To address these issues, we extend Linked USDL to describe Cloud services in all respects, including Cloud characteristics. Our contribution aims to develop a standardized description of Cloud service to favor the publication, discovery, and selection of Cloud services. Consequently, we propose a Cloud service description ontology to provide a complete and comprehensive description of Cloud services.

Fig. 1.
figure 1

Linked USDL extension to represent the Cloud characteristics concept.

Fig. 2.
figure 2

Extension code.

4 Cloud Service Description Ontology

In this section, we focus on defining the new concepts of the extended Linked USDL. Therefore, our proposed Cloud service description ontology defines the domain knowledge of the three types of Cloud services (IaaS, PaaS, and SaaS). IaaS is defined as on-demand infrastructure resources delivered as services such as compute, network and storage services. PaaS is essentially defined as on-demand development environments delivered as services such as services for developing, testing, and deploying applications. SaaS is simply defined as on-demand ready-to-use applications delivered as services such as communications, security, accounting and invoicing services [18, 19]. Cloud service description ontology facilitates the publication, discovery, and selection of Cloud services based on their functionality, Quality of Service (QoS), and Cloud characteristics parameters. The ontology is defined in the Web Ontology Language (OWL)Footnote 1. This ontology is designed using the Protégé v4.3 ontology editorFootnote 2.

Therefore, we expand the Linked USDL language by introducing new concepts that describes the Cloud characteristics. Our extension, as shown in Figs. 1 and 2, is defined by the relationship between the Service concept and the Cloud Characteristics concept. This relationship is represented using the Object Property hasCharacteristics. Each instance of Cloud Characteristics is used to represent the characteristics of Cloud services.

In Cloud service description ontology, the characteristics of Cloud services, represented by the Cloud Characteristics concept, provide the necessary information to describe and discover the services searched by the user. These Cloud characteristics are classified into two main concepts: Common_Characteristics and Specific_Characteristics (as shown in Fig. 3). Each of these major concepts is composed of different minor sub-concepts. The required Cloud characteristics are collected from multiple resources such as Cloud taxonomy [20, 21], Cloud ontology [22], and the National Institute of Standards and Technology (NIST) [23]. Common characteristics are shared by IaaS, PaaS, and SaaS Cloud services such as Owner, Creator, License Type, Formal Agreement, and Auto scaling. While, for each category (such as Storage, Compute, CRM, Database, and so on), more specific characteristics are considered.

Fig. 3.
figure 3

Cloud characteristics concepts.

4.1 Common Characteristics

In this section, we introduce the different concepts representing the common characteristics of Iaas, Paas, and SaaS Cloud services. Figure 4 depicts the different common characteristics concepts.

The Creator Concept. This concept represents the name of the person or organization responsible for creating the service.

The Contributor Concept. The person or organization responsible for making contributions to the service.

The Owner Concept A person or organization which the service belongs to.

The Initial_Release Concept. The date of the initial release of the service of which is involved its seniority.

The Language Concept. It represents the list of languages supported by the service.

The License_Type Concept. Few Cloud providers prefer to create their services using open-source software and platforms, while most opt for the proprietary software and licenses. Amazon EC2 and other public Cloud services are largely built with open-source components such as MySQL, JBoss, Tomcat, Xen, and Linux. Nevertheless, their basic Cloud computing service and their additional services are kept closed-source.

The Formal_Agreement Concept. The Service Level Agreement, or SLA, is the formal contract most commonly used in the Cloud. It is a document that defines the specific objectives and the quality of service that a customer is entitled to expect from the provider.

The Auto_Scaling Concept. Auto-scaling services have the ability to increase or decrease resources (scale-up, scale-out) based on fluctuations in demand.

The Intended_User_Group Concept. Some Cloud services make the difference between Individual and Corporate use. Most IaaS and PaaS offerings are for business, while SaaS offerings exist for businesses, individuals, or both. However, this does not imply that business services can not be purchased by individuals.

The Deployment_Model Concept. Cloud computing defines four types of Cloud deployment models: Public Cloud, Private Cloud, Community Cloud, and Hybrid Cloud.

The Payment_System Concept. The most commonly used payment system in the Cloud is pay-per-use. Some services use a dynamic (or variable) payment model. Some Cloud services are free.

The Standardization Concept. In Cloud computing, standardization usually refers to the use of APIs (Application Programming Interface), as well as to technical standards approved and maintained by standardization organizations.

The External_Security Concept. In order to secure access to the Cloud, strong authentication and access control with encrypted transmission must be used on all Cloud services.

The Openness_of_Clouds Concept. Four levels of information are considered: The Unknown / Limited level, limited information is provided by the provider on the Cloud service. The Basic level, basic information is available. The Moderate level is similar to the Basic level, however, more details are provided. The most open level is the Complete level, detailed information is available.

Fig. 4.
figure 4

Common characteristics concepts.

4.2 Specific Characteristics

The common Cloud characteristics explained above are not the only type of Cloud characteristics, but there is another type named specific characteristics. Indeed, Cloud services include several Cloud service categories such as data storage, virtual networks, application hosting and more, grouped into three main service models namely IaaS, PaaS, and SaaS. Each category of Cloud services is characterized by a set of specific characteristics. The Specific_Characteristics concept contains all elements needed for describing specific characteristics of Cloud service categories. We distinguish the following three sub-concepts.

The IaaS_Specific_Characteristics concept. This concept describes the specific characteristics for each of the following Cloud service categories: Compute (Server resources for running cloud-based systems that can be dynamically provisioned and configured as needed), Storage (Massively scalable storage capacity that can be used for applications, backups, archival, and file storage), CDN (Content Delivery Networks store content and files to improve the performance and cost of delivering content for web-based systems), Platform_Hosting (It provides the hosting of platforms on virtual servers), Service_Management (Services that manage Cloud infrastructure platforms). These sub-concepts are described in Fig. 5.

Fig. 5.
figure 5

IaaS service categories.

Fig. 6.
figure 6

PaaS service categories.

Fig. 7.
figure 7

SaaS service categories.

Fig. 8.
figure 8

Specific characteristics concepts of compute services.

The PaaS_Specific_Characteristics concept. We define, as shown in Fig. 6, the following categories: Integration (Development platforms for building integration applications in the Cloud and within the enterprise), Development (Platforms for the development of applications), Database (Services offering scalable relational database solutions or scalable no-SQL datastores), Business_Intelligence (Platforms for the creation of applications such as dashboards, reporting systems, and data analysis), and Application_Deployment (Platforms suited for general purpose application development. These services provide databases, web application runtime environments, etc.).

The SaaS_Specific_Characteristics Concept. We define the following sub-concepts as shown in Fig. 7: Document_Management (Applications for managing documents, enforcing document production workflows, and providing workspaces for groups or enterprises to find and access documents), Collaboration (Tools that allows the managing, sharing, and processing of files, documents and other types of data among multiple users within and across enterprises), Content_Management (Services for managing the production of and access to content for web-based applications), CRM (Customer Relationship Management applications for managing the relationships and interactions of a company with its customers or potential customers), ERP (Enterprise Resource Planning, it is a modular software designed to integrate the main functional areas of business processes of a company in a unified system), Invoicing (Application services for managing customer billing based on usage and subscriptions to products and services.), Mailing (Applications for email), Office_Productivity (Applications for word processing, spreadsheets, presentations, etc.), and Social_Network (Social software that establishes and maintains a connection between users to bring people together to discuss, share ideas and interests, or make new friends).

In this paper, we define the specific characteristics of the Compute category as IaaS service. The proposed ontology serves as a semantic-based registry across the publication, discovery and selection processes. As shown in Fig. 8, a group of specific characteristics (e.g. CPU number, memory size, network performance, operating system, instance storage) that are potentially provided by several service providers facilitate the process of selection of Compute services at the IaaS layer.

5 Conclusion

In this work, we proposed a Cloud service description ontology that covers the three layers of Cloud models, namely IaaS, PaaS and SaaS. The proposed Cloud service description ontology that is extended from Linked USDL, merges technical, operational, business and semantic aspects with Cloud characteristics (common and specific) to obtain a complete and comprehensive Cloud service description. In addition, it ensures high interoperability between multiples Cloud infrastructures, platforms, and software providers. Furthermore, it helps users to discover and select the appropriate Cloud services, as well as providers to publish their services. The proposed ontology is based on standards, a literature review, Cloud providers catalogs, analysis and comparisons of existing ontologies and taxonomies of Cloud services.

As a future work, we intend to complete the ontology with the specific characteristics of PaaS and SaaS categories. Moreover, we aim to use the proposed ontology as a standardized Cloud service description in order to discover and select Cloud services according to user requirements.