Keywords

1 Introduction

Recently, popularity of cloud computing has facilitated the companies like Google, Amazon to provide reliable and cost-effective services [1]. Unlike semantic web, cloud computing does not possess a semantic base even if it is enriched with features like on-demand self-service, resource pooling, rapid elasticity, and so on. So, in order to provide an environment for automatic searching of services, across various cloud computing platforms, intelligent ontology-based cloud service registry is highly essential. As a whole, cloud services are published in the Internet by the service providers, which can be accessed by the consumers using Web portals. As of now, however, no efficient cloud discovery mechanisms are available to facilitate search across different cloud services that trigger the consumers of services to rely upon manual search while requesting for a cloud. Consumers may use the generic search engines that are available in the internet, but, however, these search engines may return the URLs in anticipation to a user’s request those may not be possibly meeting the service requirements of the requester. Consequently, traversing all possible Web pages could be significantly time consuming. Even powerful search engines such as Amazon, Google, MSN, etc., do not possess the capability of reasoning about similar cloud services so as to determine the most appropriate service for a requester taking into account the specified service requirements.

An agent-based approach could be useful for dynamically searching for a cloud service. Agents can represent autonomous service consumers and providers as well as collaborate to dynamically configure and reconfigure service-based software applications.

In this paper, we present a multi-agent framework integrated with ontology for cloud service description and discovery. The rest of the paper is structured as follows: Sect. 2 describes the fundamentals of cloud computing. Cloud service life cycle management is explained in Sect. 3. Section 4 outlines literature survey on service discovery in cloud computing environment. Section 5 explains our proposed multi-agent framework based on ontology for cloud service description and discovery. Section 6 outlines the implementation details, and finally, Sect. 7 presents the conclusion and future work.

2 Cloud Computing

The idea of cloud computing as a service in the form of utility was foreseen by John McCarthy in 1960s [13]. Lack of standard definition of cloud computing may result in market hype that triggers the researchers to work on it. In this work, we use the definition of cloud computing as adopted by the National Institute of Standards and Technology (NIST) [4].

“Cloud computing is a model for enabling convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction.”

Cloud computing incorporates a service-driven business model, wherein resources such as hardware, platform, and software as services are made available to requester on an on-demand basis. As practices reveal, the services offered by clouds can broadly fall into the categories: software as a service (SaaS), platform as a service (PaaS), and infrastructure as a service (IaaS).

  • Software as a service: In this category, applications are made available to customers on demand. To the category of SaaS belong the applications like Salesforce.com, Rackspace, gmail, etc.

  • Platform as a service: Platform-level resources such as operating system and varieties of software development frameworks can also be provided on demand. PaaS refers to providing platform layer resources, including operating system support and software development frameworks. Google App Engine, Microsoft Windows Azure, and Force.com, etc., are the examples of PaaS.

  • Infrastructure as a service: IaaS refers to on-demand provisioning of infrastructural resources, usually in terms of VMs. The cloud owner who offers IaaS is called an IaaS provider. Examples of IaaS providers include Amazon EC2, GoGrid, and Flexiscale.

3 Cloud Service Life Cycle Management

The life cycle of a cloud service comprises of five separate phases like requirements, discovery, negotiation, composition, and consumption [5].

3.1 Service Requirements Phase

In this phase, the consumer needs to specify the technical, functional, and non-functional details of the requested cloud service. A request for service (RFS) can be issued only after the service requirements are identified and classified.

3.2 Service Discovery Phase

With reference to the specifications detailed in RFS along with the service descriptions, the provider can be discovered in the phase of service discovery.

3.3 Service Negotiation Phase

In service negotiation phase, the service provider and the consumer need to arrive to an agreement on the service delivered and the acceptance criteria of it.

3.4 Service Composition Phase

The service components from different service providers are integrated to a single service and delivered to the requester in the phase of service composition.

3.5 Service Consumption/Monitoring Phase

The service is delivered to the consumer based on the delivery mode agreed upon between the provider and the consumer that may be synchronous/asynchronous, real-time, batch mode, etc. Payment is made for the same after the service is delivered to the consumer, with respect to the pricing model specified in the SLA. The consumer then begins consuming the service.

4 Literature Survey

A large spectrum of literature related to service computing encompasses service discovery under a generic service-oriented framework [6]. Most of these can be applied in principle with suitable modifications for cloud service discovery since the technical foundations of cloud computing are the same as that of service-oriented architecture (SOA) [7]. In modern literature, variety of approaches and frameworks suitable for cloud service discovery using agents, QoS, and ontology have been proposed by researchers.

4.1 Agent

An agent represents a computational entity that acts on behalf of another entity (or entities) to execute a task or to achieve a specified goal. Although a single agent is capable of performing a given task, the agent paradigm was conceived as a distributed computing model where a set of agents (multi-agent) interact among each other by exchanging information and cooperating to perform complex tasks [8, 9]. Agent-based cloud computing [10, 11], a novel paradigm can provide agent-based solutions based on the design and development of software agents for improving cloud resources, service management, discovery, SLA negotiation, and service composition.

4.2 Ontology

Ontology, the knowledge representation technology for semantic web [12], facilitates the search for contents and information and improves crawling procedure too. A number of definitions for ontology can be found currently in the literature. As per Gruber [13], “An ontology is a formal and explicit specification of a shared conceptualization.” In cloud ontology [14, 15], the hierarchical relations of cloud concepts are defined. For instance, the concept “Cloud system” has three different children nodes (IaaS, PaaS, SaaS). By consulting cloud ontology, similarity reasoning can be performed.

4.3 Quality of Service

Quality of service (QoS) includes the non-functional attributes (e.g., cost, response time, availability, security, etc.) that may influence the overall performance of any cloud service. QoS can be described in the user preferences to express their expectations. It can be included in a service advertisement when different service providers that present diverse versions of services to answer varying requirements of their customers. User preferences and service offerings have both functional and complex non-functional aspects that require to be matched against each other [16].

4.4 Related Work on Cloud Service Discovery

Sim [10], Kang and Sim [17] presented a cloud service discovery system (CSDS) that aims at enabling the cloud users in finding a cloud service over the Internet. The CSDS interacts with cloud ontology to identify the similarities among different services. It builds an agent-based discovery system that consults with ontology during information retrieval about cloud services. This work desires to launch a generic search engine to search required cloud services before reasoning suitable service for a client, which is time consuming. An ontology-based agent generation framework, proposed in [18], focuses at dynamically and fully automatically generating mobile agent for retrieving desired information on cloud platforms without user’s intervention. However, this framework does not support the service discovery mechanism for cloud environment. A mobile agent-based service discovery framework integrated with ontology along with a prototype for service discovery for cloud is proposed by authors in [19]. It mainly assists users to discover suitable service on demand. Recall and precision are evaluated to test the accuracy of the system. However, this work lacks the implementation of service discovery to handle dynamic constraints and preferences as specified by the requesters. OWL-S-based semantic cloud service discovery and selection system is proposed by the authors in [20] that supports dynamic semantic matching of cloud services specified with complex constraints. This may pose challenges if part of the service descriptions is in free text, or if some cloud providers adopt custom ontologies. Therefore, ontology learning and alignment methods are required to address these issues. Ding et al. [21] proposed a hybrid technique based on syntactic and semantic of input and output of services for cloud service discovery. However, this approach is based on IO matching alone. Rehman et al. [22] and Wang et al. [23] introduced cloud service selection based on QoS parameters like cost, performance, response time, throughput, reputation, availability, reliability, etc. However, it is based on the typical QoS criteria adopted from Web service selection algorithms.

Based on the comparative study and analysis of different cloud service discovery approaches, we conclude that cloud service discovery technique should be automatic and dynamically providing ample scope to the customers to find the required services in ease by providing least intelligence and effort. Similarly, the service provider must get ample flexibility toward easy up gradation of their services from time to time. The discovery technique must ensure that neither any service provider nor any service consumer suffers due to the inefficient discovery technique used in the service discovery framework.

5 Proposed Framework

The overall architecture of the proposed system is presented in Fig. 1. The various agents used in the discussed framework are as follows:

Fig. 1
figure 1

Proposed multi-agent-based framework

5.1 Provider Agent

This agent helps the service provider to register a new cloud service or to upgrade an existing service. Provider agent has a direct communication with the cloud service provider and keeps track of cloud service popularity from user feedback. It can update the cloud service functionality from time to time dynamically.

5.2 ConsumerAgent

ConsumerAgent provides a user-friendly graphical user interface that can help user to select a query for cloud service. The ConsumerAgent knows how to interact with other agent like DiscoveryAgent in the platform through ACL based on SPARQL and OWL DL. In other words, the ConsumerAgent knows the target of query request and the semantics of communication context with each other.

5.3 DiscoveryAgent

This agent involves discovery of the requested cloud services from the semantic service registry using the information provided by service consumer. The semantic description of cloud service providers and their attributes are provided through service ontologies. Thus, DiscoveryAgents reason about these ontologies, making the discovery of cloud services dynamic and automatic.

6 Implementation

We implement a prototype to demonstrate cloud service description and discovery based on ontology using the proposed framework. The prototyping we exploit using the Jena semantic Web library [24] and the JADE 3.4 agent system [25] for creation of agents. Here, Jena semantic web library allows interconnection of agents and cloud OWL knowledge model. We present a cloud knowledge model called cloud service ontology based on the OWL ontology [26, 27] as shown in Figs. 2 and 3, and we model it in the Protégé 4.3 Ontology editor [28]. Provider agent, ConsumerAgent, and DiscoveryAgent use agent communication language (ACL) message to communicate with each other based on SPARQL and OWL DL.

Fig. 2
figure 2

Cloud service ontology

Fig. 3
figure 3

Setting up the object properties and data properties of Amazon-EC2 cloud service provider

The agents of our framework are created using JADE, which is as shown in the Fig. 4. The user selects a cloud service provider in the ConsumerAgent GUI (Fig. 5) and clicks the search button. The type of the resource is passed to an agent by the XML-RPC method call. One of the ConsumerAgent behaviors is activated and the ConsumerAgent produces the SPARQL query and passes the ACL QUERY message to the DiscoveryAgent. The ConsumerAgent asks the DiscoveryAgent to return to it all instance of the corresponding service provider it has in the memory. The DiscoveryAgent receives an ACL QUERY message and performs an SPARQL query on its memory by consulting with the cloud service ontology. The result is passed as several ACL INFORM messages consisting of the RDF description of requested resource. The DiscoveryAgent creates events in its memory that resources were sent to ConsumerAgent. This way the DiscoveryAgent keeps information about the environment. When the ConsumerAgent receives an ACL INFORM message, it stores its context into its memory model. Events about receiving resources are created in the ConsumerAgent memory. In addition, it adds references to returned resources to the DiscoveryAgent individual resource property. When a user clicks on the “getXML” button (Fig. 5) in the ConsumerAgent GUI, the DiscoveryAgent individual from the ConsumerAgent memory is returned in the XML format. In this XML, we can see cloud service provider instances along with their object and data properties, which are now in the ConsumerAgent memory.

Fig. 4
figure 4

Multi-agent-based platform of our framework

Fig. 5
figure 5

ConsumerAgent GUI for cloud service discovery

7 Conclusion and Future Work

In the paper, we have proposed a framework that integrates multiple agents and ontology and developed a prototype for service description and discovery in cloud environment. The framework mainly assists in describing the cloud service providers and their attributes in a standardized way by using ontology and helps the users in discovering suitable service according to their requirements. User can select his request for discovering required service. The request will be automatically handled by the ConsumerAgent and then in turn the DiscoveryAgent perform the necessary reasoning based on predefined cloud service ontology and reasoning rules. Finally, the result is obtained in terms of XML in an understandable way. In the future, we will aim at implementing the entire system including cloud service composition and negotiation. In addition, we have to do more evaluations and comparison.