CCOA-Cloud Computing Open Architecture
Cloud Computing is evolving as a key computing platform for sharing resources that include infrastructures, software, applications, and business processes. Virtualization is a core technology for enabling cloud resource sharing. However, most existing Cloud Computing platforms have not formally adopted the service-oriented architecture (SOA) that would make them more flexible, extensible, and reusable. By bridging the power of SOA and virtualization in the context of Cloud Computing ecosystem, this paper presents seven architectural principles and derives ten interconnected architectural modules to form a reusable and customizable Cloud Computing Open Architecture (CCOA). Two case studies on Infrastructure and Business Cloud are used to deliver business and practical value of infrastructure and business process provisioning services over the Internet. We also present some potential valueadded services of the proposed CCOA to guide strategic planning and other consulting practices of Cloud Computing.
As a key service delivery platform in the field of service computing , Cloud Computing provides environments to enable resource sharing in terms of scalable infrastructures, middleware and application development platforms, and value-added business applications. The operation models may include pay-asgo utility models, free infrastructure services with valueadded platform services, fee-based infrastructure services with value-added application services, or free services for vendors but sharing of revenues generated from consumers. As summarized in , typically there are four types of resources that can be provisioned and consumed over the Internet. They can be shared among users by leveraging economy of scale. Provisioning is a way of sharing resources with requesters over the network. One of the major objectives of Cloud Computing is to leverage Internet or Intranet to provision resources to users. The first type of resources is infrastructure resources, which include computing power, storage, and machine provisioning. For example, Amazon EC2 provides web service interface to easily request and configure capacity online . Xdrive Box service provides online storage to users . Microsoft SkyDrive provides free storage service, with an integrated offline and online model that keeps privacy-related files on hard drives, and enables people to access those files remotely . In the area of computing power sharing, the Grid computing initiative has taken it as its major focus to use clustering and parallel computing technologies to share computing power with others, based on task scheduling when computers are idle. The second type of resources in Cloud Computing is software resources including middleware and development resources. The middleware consist of cloudcentricperformance
Computer systems are rapidly changing. Over the next few years, we will see wide-scale deployment of dynamically-scheduled processors that can issue multiple instructions every clock cycle, execute instructions out of order, and overlap computation and cache misses s, application servers, databases, and others. The development resources comprehend design platforms, development tools, testing tools, deployment tools, and open sources-based reference projects. The third type of resources in Cloud Computing is application resources. The leading companies in the information industry are gradually moving applications and related data to the Internet. Software applications are delivered through Software As A Service (SaaS) model or mashups of value-added applications. For example, Google has used Cloud Computing platform to offer Web applications for communication and collaboration . Google docs move productivity applications to the Web, gradually replacing heavy-weighted desktop applications. Therefore, developing a reusable and customizable Cloud Computing Open Architecture for enabling application development environment is a key to success of application sharing over the Internet. The fourth type of resources in Cloud Computing is business processes. Some applications can be exposed as utilities, namely loosely coupled sub-processes or tasks inside customers’ business processes. Business process sharing is the business-driven application outsourcing that supports reuse, composition, and provisioning