Integrated Common Platform of Multiple Cloud API
Cloud computing emerged and acquired huge popularity. Many Cloud Service Providers (CSPs) like, AWS, Rackspace, Azure and many more are facilitating clients with common services (storage, computing, networking, etc.) and thriving for more client by adding new features. So, Cloud Consumer (CC) falls under critical situation to adapt new API and quickly switch to CSP that best suits their business requirement. To solve this perplexity of CC, we introduce a prototype which integrates different Cloud API to an abstract API platform and developed a Proof of concept (PoC) for our platform. Using our single point API CC can quickly switch and get facilitated with the services of different CSP without individual API knowledge.
Background Study
Cloud computing emerged and acquired huge popularity. Cloud Computing is the delivery of on-demand computing resources everything from applications to data centers over the Internet on a pay-for-use basis.
Cloud computing means storing and accessing data and programs over the Internet instead of your computer's hard drive. When we store data on or run programs from the hard drive, that's called local storage and computing. When we store data or run programs over the internet, that’s called cloud storage and cloud computing.
Introduction
Cloud Computing is a model where all the resources are available in the Internet. Just like cooked food, cloud services are prepared dish where all the required ingredients are composed for you. There are three renowned categories of cloud services- Software as a Service (SaaS), Infrastructure as a Service (IaaS) and Platform as a Service (PaaS). SaaS allows accessing the functionality of particular software without worrying about the storage or other issues
1.
IaaS provides the networked computer, along with hardware and virtualized Operating System (OS), running in a hosted environment. Some well-known IaaS Cloud providers are Amazon EC2, Rackspace and Google Computer Engine. PaaS is somewhere in the middle of the other two services, it adds support for the development environment. Some examples of the popular PaaS providers are: Amazon AWS Elastic Beantalk PaaS (supports Java, PHP, Python, .Net and Node.js); Google App Engine
(supports a subset of common Java environments as well as Python and Go),
Cloud Foundry (supports Java, Ruby, Node.js and Scala), Engine Yard (supports Ruby on Rails, PHP and Node.js)
2 What is supported by the platform will obviously impact CCs decision on which platform to use. All CSPs has its own cloud OS to provide the services, such as Eucalyptus which is an open source project for cloud computing. The virtualized OS of CSPs have common orchestration task like storage, compute and network for configuration management; virtual machine (VM) and application instances for provisioning; IT automation and DevOps, security and compliance assessment, monitoring and reporting
3.
Though all the orchestration task of different CSP has same purpose, still there are variations in the service’s feature that distinguish one CSP to others. These differences in the services influence CC‟s choice of cloud vendor. For example, some cloud vendors have non-negotiable contracts for the CCs but there are certain features of the service provided by those cloud vendors that are essential for the CCs business.
In this case the CC prefers to consume two or more cloud vendors‟ services at a time but there is no such platform where more than one cloud vendor’s services can be operated. This paper introduces a prototype of an API that provides an integrated common platform of multiple clouds API from where CC can consume service from numerous CSPs; without being distressed about maintaining many cloud computing vendors. Users of this API are more relaxed and can put their full effort in leveraging the enterprise goal. According to Steve Jobs “I’m convinced that about half of what separates the successful entrepreneurs from the non-stressful one is pure perseverance.”
4. Therefore when all the cooked food is served on a single table than it is more appropriate to give attention in eating the food enjoyably.
Motivation
When we started our studies regarding cloud services we saw that different cloud services have different features. There are few things which are unique, say for example: Eucalyptus has AWS Compatibility, Scalable Object Storage, and Network Options for growth and Cloud account administration whereas OpenStack has ability to manage local area networks, Role-based access control, VNC proxy through a Web browser, Virtual machine image management. So if someone use Eucalyptus they do not have the flexibility to use the features of OpenStack. Thus,
We took the initiative to develop a Universal API which will solve this issue by using the request from Client and convert them as cloud specific requests. So there will be flexibility for the user of using different cloud service software at a time. Besides this will be beneficial for Cloud service model because IaaS is related to PaaS and SaaS.
Key Features and Impact
• Don’t need to learn more API of different cloud platform
• Double authentication process which is more secured then before
• Dynamically switch platform
Difference between Cloud Platform services
Eucalyptus and OpenStack both give many similar services but with different features and facilities. Storage service is one of them. Storage service is really a big concern for any cloud platform. There are possibilities of giving the same storage service but in different process. Object storage is one of the types of storage service. It keeps the data as object and it can store unlimited object in bucket. For retrieving object there is unique developer assigned keys. Most important advantage of it to access objects from anywhere of the bucket and secured from unauthorized access. For maintaining unstructured data or flat structure, web content, documents, sensor data, databases and log files Object storage is really a great option. But for random access data or relational database could not possible in Object storage which is one of its’ weak point. Instead of its Object storage have scalable capacity as well as scalable performance. Even it is durable with low cost and simplified management process.
On the other hand there is another storage service called Block storage. Block storage is usable almost any kind of application including file storage, database storage. Heavy random data access can easily be done in this storage service. Block Storage is persistent storage organized into unstructured "blocks", each the same length. An ordinary disk drive, RAID array, or USB storage key are examples of locally attached "block storage". In Block storage, files are split into evenly sized blocks of data, each with its own address but with no additional information (metadata) to provide more contexts for what that block of data is. In a nutshell, key phrases associated with block storage are granularity, great performance, little or no metadata, and local use. Even Block storage is ideal for databases, since a DB requires consistent I/O performance and low-latency connectivity.
Both of these Storage service have some unique features and the usability of the features varies from user to user. To select a cloud provider or technology, user should understand their requirements in order to list the needed features. All of the quality of storage services is not solely served by either Eucalyptus or OpenStack. So problem arises when user wants to use some combined feature which Eucalyptus or OpenStack won’t be able to fulfill it individually. Previously Customers were not able to use cross platform for multiple features but now through this Universal API there is a possibility for manipulating any features for cross cloud platform which is an undoubtedly a great innovation for upcoming cloud users as well as for providers.
Customer end will always be beneficiated by using Universal API in their application. They will use multiple features from multiple cloud platforms with the same cost just like before.
Methodology
After an immense study on the CSPs‟ services and research on the issues raised by the organizations depending on Cloud Computing, we developed a prototype of an API to resolve the problems by integrating all the CSPs to a common platform. A standard and portable JAX-RS (Java API for RESTful web service) API is designed in order to simplify its development and their clients in Java. The API contains a resource class which is a Java class annotated with JAX-RS annotation to represent a web resource. There is also a root resource class called POJO (plain old Java object) that is annotated with at least one @Path or a request method designator such as @GET, @PUT, @POST, or @DELETE to handle
request on the corresponding resource.
Jersey (Sun's open source, production-quality reference implementation for JAX-RS) and Apache CXF (Apache's Java API for RESTful web services) REST frameworks are used for developing RESTful services in Java. Among these two REST frameworks we preferred to develop our Web Service by Jersey. Jersey RESTful Web Services framework is open source, production quality framework for developing RESTful Web Services in Java that provides support for JAXRS APIs and serves as a JAX-RS (JSR 311 & JSR 339) Reference Implementation.
Apache CXF is an open source services framework. CXF helps you build and develop services using frontend programming APIs, like JAX-WS and JAX-RS. These services can speak a variety of protocols such as SOAP, XML/HTTP, RESTful HTTP, or CORBA and work over a variety of
transports such as HTTP, JMS or JBI.
9 Figure 2 shows the use case diagram of the API, where the user creates a secure account and login to the web service. The web service allows the authenticate user to select a Cloud platform and then select a services of that platform. It also allows the user to shift between the services of different Cloud platforms
Proof Of Concept (PoC)
For the proof of concept of the model, we choose to use two cloud IaaS, AWS for Eucalyptus and Trystack for Openstack, for testing the design. Both AWS and Trystack provide a demo of the corresponding cloud IaaS to the developers without having to commit to a full deployment. AWS is a secure cloud services‟ platform, offering compute power, database storage, content delivery and other functionality to help businesses scale and grow. Explore how millions of customers are currently leveraging AWS cloud products and solutions to build sophisticated applications with increased flexibility, scalability and reliability
10. TryStack is a free and easy way for users to try out OpenStack, and set up their own cloud with networking, storage, and computer instances
11. At first we set up the environment for Jersey framework by importing all the necessary packages to the RESTful Web application. After that by implementing the APIs of the services (such as Nova API, Swift API and Amazon S3) we integrate all the service methods provided by AWS and Trystack.
Web Service Process
The whole process begins when the client sent Http @GET request to the web service. After getting the confirmation of the valid credential from the authentication module, the client gets access to the RESTful Web Service. Our RESTful API gives access to the Cloud platforms that are integrated into the Web Service. Client select a Cloud platform from the Web Service and the Web Service then sent a @GET request to the selected cloud platform’s account. After a proper authentication check from the cloud account a decision parameter is forwarded to a process that decides on which cloud service to access. The Client than have full access to all the services of the chosen Cloud Platform.
Tools Used:
• Eclipse Mars.1
• Apache cxf
• JAX-WS (Jersey)
• AWS
• TryStack
• PHP
• XAMPP
• Brackets(Text Editor for PHP)
• Bootstrap Framework
Experimental Result:
The demo API is tested by implementing it on a client web service. The client web service sends a HTTP request to our API in the server, this API then sends the Access Key and Secret Key to the cloud API to be authenticated for the other service API in the cloud IaaS. The positive result of the experiment proves that the API is implementable to any client service.
Storage service is an important cloud computing service and file uploading from the client site to the server is a major feature, due to security issue the browser do not allow to show the directory location of the file which brings complexity in integrating the Cloud platform. In this case, a temporary folder is created to transect the file from client service to the server.
Reference
1 Cloud Computing. (n.d.). Retrieved March 22, 2016, from
http://www.hcltech.com/technology-qa/what-cloud-computing-what-are-services-offered
2 News and Views - articles and case studies for better strategies. (n.d.).
Retrieved March 22, 2016, from http://www.bitheads.com/what-types-of-cloud-servicesare-available/
3 Shackleford, D. (n.d.). Where The World Talks Security | RSA Conference.
Virtualization and Cloud: Orchestration, Automation, and Security Gaps. Retrieved from http://www.rsaconference.com/writable/presentations/file
upload/csv-r02-virtualizationand-cloud-orchestration-automation-and-securitygaps_v2.pdf
4 S. D. (2016, February). How startups can yield benefits from cloud technology? Retrieved March 22, 2016, from http://www.esds.co.in/blog/how-startupscan-yield-benefits-from-cloud-technology/#sthash.kO0lMd7j.dpbs
5 Lenk, A. (2015). Cloud Standby Deployment: A Model-Driven Deployment Method for Disaster Recovery in the Cloud. 2015 IEEE 8th International Conference on
Cloud Computing. doi:10.1109/cloud.2015.127
6 Types of Cloud Computing. (n.d.). Retrieved April 17, 2016, from https://aws.amazon.com/types-of-cloud-computing/
7 Cloud platform comparison: CloudStack, Eucalyptus, vCloud Director and
OpenStack. (2012). Retrieved April 17, 2016, from
http://www.networkworld.com/article/2189981/tech-primers/cloud-platform-comparison-cloudstack--eucalyptus--vcloud-director-and-openstack.html
45
8 Cloud services for your virtual infrastructure, Part 1: Infrastructure-as-a-
Service (IaaS) and Eucalyptus. (n.d.). Retrieved April 17, 2016, from http://www.ibm.com/developerworks/library/os-cloud-virtual1/
9 Welcome to OpenStack Documentation. (n.d.). Retrieved April 17, 2016, from http://docs.openstack.org/
10 Product Overview. (n.d.). Retrieved April 17, 2016, from
http://www.rightscale.com/products-and-services/products