Cloud Implementation and Cloud Integration

Cloud computing is innovated model which delivers convenient and on-demand computing services over internet to requested end users. Cloud service engineering is a discipline that combines the business and technology thinking for purposes of engineering a cloud. The structure of cloud service engineering plays an important role in order to create usable and economic cloud. The cloud development life cycle (CDLC) is the one of the component in structure of cloud engineering along with Base, Tools & Techniques and Management components. CDLC consists of six phases that are flexible, isolated executable and having feedback. The work of this paper focuses on the cloud Implementation and Integration phase of the CDLC. The cloud implementation is related to actual creation, enablement of the cloud services of a computing system. The cloud integration performs the task of integrating the various cloud solution in one cloud environment and deploys various resource, web service and applications to the cloud.


INTRODUCTION
Cloud computing at its core is a single element by which computing services are delivered over the internet, on demand from a remote location, rather than residing on one's own desktop, laptop or even on an organization's server [1]. In simple words, the cloud computing is combination of a technology, platform, hosting provider, storage services provider on the Internet [2]. To successful implementation and use of services of cloud computing system, a cloud service engineering discipline has become vital important. Cloud service engineering is a discipline that combines business and technology thinking for purposes of engineering a cloud services [3]. In order to engineer a cloud services, it is important to follow a model. Cloud development life cycle (CDLC) is the one of the available component model used in the structure of the cloud engineering [4]. CDLC is linear organized, isolated executable and flexible life cycle model for the systematic and scientifically development, deployment and delivery of cloud services. CDLC contains six phase: Understand Requirement and Analysis; Architect; Implementation and Integration; Quality Assurance and Verification; Deploy, Testing and Improvement; Monitor, Migrate and Audit. All phase given its feedback to Understanding Requirement and Analysis phase [4].
Understanding requirement and analysis is the first step leading towards the engineering a usable and economic cloud. This phase evaluates and understands the needs of end user and network; and analysis it from the prospective of feasibility of solution of a network problem. The Architect phase is related to development of on-premise resource, cloud resources, cloud services, cloud middleware, software components, data server location used for engineering a cloud. The major building blocks of architecture are reference architecture, technical architecture and deployment and operational architecture. Implementation and integration phase is related to actual creation, enablement of the cloud solution, cloud file system while considering implementation issues. This phase has ability to communicate with both source and target systems; and extracting and publishing the data from the source to target system while considering integration patterns. Cloud integration becomes necessary for business and enterprise that adopts a cloud based solution for integrating data in the cloud with on-demand application. The Quality assurance and verification is related to ensure the quality and web service of cloud network; and verify the performance, reliability, availability, elasticity and security of cloud network at the service level against specification, agreement and requirement [5].
Deploy, Testing and Improvement phase uses various platform service providers that significant reduces the deployment cost of the application by pre-building and preconfiguring a stack of application infrastructure. For this the developer chooses one of the available six deployment models. Cloud Testing test the functionality of various cloud services provided that comes between the cloud network and end user. Cloud improvement is the enhancing the entire development, deployment and testing process of cloud environment. Monitor, Migrate and Audit phase of continues monitors the cloud environment so that it can measure the performance of the cloud system. It also discusses the total cost and value that a user bears while evolving and moving to cloud approaches from traditional service-oriented environments and also integration with existing systems. Cloud audit is the audit of cloud for compliance, regulation, security, governance and risk of cloud [5].
In this paper, research focus only at the cloud service Implementation and Integration phase of CDLC. The cloud implementation is related to actual creation, enablement of the private, public, community, inter, hybrid and hosted cloud services of a computing system. The cloud integration performs the task of integrating the various cloud solution in one cloud environment. It deploys various resource, web service and applications to the cloud and also gives cloud training to end user so that user can easily adopt and use the new network system. The whole process of cloud implementation and integration are summarized in the six activities shown in the figure 1.
The first three activities are done in the cloud implementation and last three activates are done in the cloud integration part. Each activity is briefly discussed in section 2 and section 3.

CLOUD IMPLEMENTATION
The cloud implementation is related to actual creation, enablement of the private, public, community, inter, hybrid and hosted cloud service of a computing system. Cloud Implementation mainly performs three tasks. Firstly it addresses the implementation issues such as Cloud Security, Cloud Standard, Cloud legality, Cloud Privacy, Cloud Mentality, Cloud Inter-machine communication [6]. Secondly it deals with the Details and implementation of file system in a cloud and thirdly it implements the Map-Reduce system in a cloud [7]. Factors that affect three tasks are depicted in figure  2 below and brief discussion of each factor is done in the following subsections.

Addresses the Implementation Issues
It addresses and resolves the implementation issues such as cloud security, cloud standards, cloud protocols, cloud legality, cloud privacy, cloud mentality, Inter-machine Communication [6]. Cloud security is the security of all data clusters, infrastructure, Platforms, software and resources implemented on more advanced and sophisticated level. Cloud standard and protocols should be implemented in a systematic way on every aspect of a cloud for issueless execution of a cloud environment. Cloud privacy means that data should be secure in any situation so that all end user pay for their service usage.

Implementation of File System
A file system is the key component of the system to support massive data storage and management. The data on a cloud file system should be scalable and distributed in nature. Each node server in a cloud consists of a single master and multiple chunk servers that can be accessed by multiple clients [7]. A file can be seen as the collection of records with fields and can be of types: master, log, security, library and audit file. A record in a cloud file system can be logical or physical record. Logical record maintains a logical relationship between all data items in the record where as the physical record is the way the how data are record on a storage medium. A cloud file must be organized to ensure the records are available for processing when need by the cloud computing system and has of four types of file organization: heap, sequential, hashing and clustering depends upon the type of application, method of processing, file size, file inquiry capabilities and file volatility. Implementation of file system includes address the issues such as easy file access for on demand and convenient data retrieval by end user from a cloud; and choosing appropriate file system organization and file type.
The files are divided into variable-size chunks. Each chunk is identified by globally unique 64 bit chunk handle assigned by the master at the time of chunk creation. Chunk servers store the chunks on the local disks and read/write chunk data specified by a chunk handle and byte range. For the data reliability, each chunk is replicated three times on multiple chunk servers [7]. The master maintains the metadata of file system, which includes the namespace, access control information, mapping from files to chunks, and current locations of chunks. It also controls system-wide activities such as garbage collection of orphaned chunks, chunk migration between chunk servers [7]. In the Map-Reduce system, the compute nodes and storage nodes are the same and the Hadoop Distributed File System (HDFS) are running on the same set of nodes. This configuration allows the framework to effectively schedule tasks on the nodes where data is already present, resulting in very high aggregate bandwidth across the cluster [8].

Implementation of Map-Reduce Method
Third major task of the cloud implementation is the systematic implementation of Map-Reduce system [7]. Map-Reduce system is another major component of the cloud computing platform. Map-Reduce is a software framework for easily writing applications which process vast amounts of data in-parallel on large clusters of commodity hardware in a reliable, fault-tolerant manner [8]. The architecture of Map-Reduce system is very similar to Hadoop network, which is a typical master-worker-user structure. Master is the manager and controller of the system performing tasks such as data partitioning, task scheduling, load balancing and fault tolerance processing. Workers perform the task of data processing and data computation by fetching the tasks from master, execute them, communicate with other workers for data transfer and give completed work back to master. User is the client or actual user of the cloud system, implements the Map and Reduce functions for computation task, and controls the flow of computation [7].

Figure 3: Map-Reduce System
In a Map step, the master nodes takes the input data set and spilt into independent and smaller sub-problems and distribute these to worker nodes leading to a multi-level tree structure which is processed in a parallel manner. In a reduce step, the worker node processes the smaller problem, and passes the answer back to its master node. Master node combines solution obtained in such a way that forms the one output. Typically both the input and output of the job are stored in a file system [8]. There are three techniques to improve the performance of Map-Reduce system. Firstly, treat intermediate data transfer as an independent task. Secondly, task scheduling is another concern on Map-Reduce system, which helps to commit resources between varieties of tasks and schedule the order of task execution. Thirdly, improvement is on data serialization [7].

CLOUD INTEGRATION
In the current, economy; businesses and enterprises are moving to the cloud computing system due to the lower cost, more scalability, autonomous resources and development resources. To accomplish this task, there should be need for a tangible plan that fits cloud computing system in the context of overall business, enterprise strategy. Cloud integration becomes necessary for business and enterprise that adopts a cloud based solution requires integration of data and interface in the cloud with on-demand application.

Figure 4: Data integration of enterprise with the cloud
Large enterprises, in particular, need to integrate cloud computing system into existing IT systems and applications. Cloud integration performs the task of integrating the various cloud solution in one cloud environment. It deploys various resource, web service and applications to the cloud and also gives cloud training to end user so that user can easily adopt and use the new network system. Furthermore, it gives information about various integration patterns, Integration tools available and Integration procedure that are discussed in following subsections.

Integration Patterns
In the cloud integration, the main purpose is to connect and relate the both source and target system, how to extract data safely from the source system, mediate the semantics and syntax of data, technical differences, and publish the data to the target system. For this, there is strongly need of integration patterns or integration path. Integration path is complex path from which data will flow from source to target or target to source that can span many cloud computing systems on the path. There are three types of integration patterns available till now: cloud to enterprise integration, cloud to cloud integration, and enterprise to enterprise integration pattern. These integration patterns are well understood as depicted by figure-5.
Enterprise to cloud (E2C) integration extends integration and business process management across both private and public clouds, and enterprise data centers and servers. Cloud to cloud (C2C) integration enables various applications to exchange data with other applications results in application integration. This type of integration involves message passing, data routing, and data transformation between various applications.

Worker
Worker Worker

Map & Reduce Communication Communication
Output Control

Integration Tools and Platforms
There are integration tools available which address the integration need, speed delivery of data and minimize management cost of integration projects. There are three types of integration tools which generally used: software based onpremise integration tools, on-premise appliance based integration tools, and cloud-delivered integration tools. Traditional integration server software's running on an onpremise server to drive integration among any number of systems, whether on cloud computing or on-premise. But they are higher in price, more advanced and richer in features, while considering the amount of time they have been around and the number of iterations the integration software has gone through. Currently, there are some vendors that provide the integration tools are IBM, Software AG, Oracle, and Informatica.
A Cloud could not provide all solution, needs of an enterprise. Thus most enterprises have invested and build their in-house systems and servers for their need. However, to adopt public cloud for such enterprises requires platforms that can integrate the public cloud with in-house systems, servers and private clouds. These platforms are known as cloud integration platforms and it also available in the market such as windows azure appfabric, boomi atomsphere, cast iron omni connect systems, amazon simple queue service, google app engine for business [9].

Integration Recommendations and Approaches
Switch their own business to cloud system is not done in one step. It is step by step procedure for adopting or integrates their traditional system with the cloud computing system. Jitterbit [10] share five step recommendations for the cloud integration. These recommendations are based on Jitterbit's direct interactions with enterprises considering or making a move to cloud computing, but concerned about integration [10].
To integrate cloud, it is important to follow the approach so that cloud can be integrated well with database and enterprise. There are three types of approaches for cloud integration that customers can license [11]. In the first approach, enterprise integration tools deployed on-premise with special connectors to access cloud based applications. This approach is used for organizations that have already standardized on an integration tool and want to extend their capability to include cloud applications. The examples of data integration technologies are Informatica's PowerCenter product, message based EAI/ESB technologies, and appliance based integration tools [11]. In the second approach, the enterprise integration tools are hosted in the cloud. This approach is similar to the first approach but in this approach, the equipment for installing the integration software is hosted by a third party provider so that the customer does not have to worry about procuring, managing the hardware and installing the integration software. This approach is fit for IT organizations that have the skills and resources to build integration jobs and manage them on behalf of their end users. An example of a hosted integration technology is Informatica's PowerCenter Cloud Edition on Amazon EC2 [11]. The Third approach offers Integration-as-a-Service or On Demand Integration for applications. These applications designed to deliver integration securely over the internet and are able to integrate cloud applications to on-premise systems, cloud-to-cloud applications, and on-premise to on-premise applications without requiring the users to provide any special access through their firewall. This approach is a fit for companies that care the most about ease of use, ease of maintenance, time to deployment, and are on a tight budget. A good example is Informatica's On Demand Integration Services [11].

Figure 6: Cloud Integration Approaches and Tools
No single approach is a perfect fit for all scenarios. The choice of right approach will depend on some of the factors such as who will build and maintain integration jobs? What is Cloud Integration is about simplifying and democratizing technology so that it could be adopted by a much broader audience [11]. Cloud-based Integration eliminates much of the software and system procurement, deployment and management challenges. It accelerates the implementation process and reduces staff administration requirements. It also reduces the costs and risks associated with adopting new business applications and increases data quality, user productivity, and collaboration and performance measurement capabilities [12].

CONCLUSSION
The cloud service engineering is a new engineering discipline for the development and delivery of cloud computing services. It is important to follow a life cycle model for engineering a cloud. Cloud development life cycle is the one of the available model for this purpose. Cloud implementation and cloud integration is the important and essential step that leads towards the engineering a usable and economic cloud. Cloud implementation works on actual creation, enablement of cloud services of a computing system where as cloud integration performs the task of integrating the various cloud solution in one cloud environment by deploying various resource, web service and applications to the cloud. In the future scope, cloud quality assurance, cloud verification, cloud testing, cloud improvement and cloud audit are the good areas of cloud service engineering which can be explored further.