Service Component Architecture for Building Cloud Services



Similar documents
The Service, The Cloud & The Method: The Connection Points

SOA CERTIFIED JAVA DEVELOPER (7 Days)

Service Oriented Architecture 1 COMPILED BY BJ

SOA and Cloud in practice - An Example Case Study

Service-Oriented Architectures

2 (18) - SOFTWARE ARCHITECTURE Service Oriented Architecture - Sven Arne Andreasson - Computer Science and Engineering.

supporting required flexibility, scalability, and allowing change in environment.

Integration Architecture & (Hybrid) Cloud Scenarios on the Microsoft Business Platform. Gijs in t Veld CTO BizTalk Server MVP BTUG NL, June 7 th 2012

SOA Architect Certification Self-Study Kit Bundle

Service-Oriented Computing and Service-Oriented Architecture

ITU-T Kaleidoscope Conference Innovations in NGN. Managing NGN using the SOA Philosophy. Y. Fun Hu University of Bradford

4/6/2009 CLOUD COMPUTING : PART I WHY IS CLOUD COMPUTING DISTINCT? INTRODUCTION: CONTINUE A PERSPECTIVE STUDY

Cloud Computing: Computing as a Service. Prof. Daivashala Deshmukh Maharashtra Institute of Technology, Aurangabad

Myths About Service-Oriented Architecture Demystifying SOA. producers can coexist, and still have no dependence on each other.

SOA Myth or Reality??

Guiding SOA Evolution through Governance From SOA 101 to Virtualization to Cloud Computing

Cloud Computing Service Models, Types of Clouds and their Architectures, Challenges.

How To Understand Cloud Computing

A Study on Service Oriented Network Virtualization convergence of Cloud Computing

A Quick Introduction to SOA

Platform Autonomous Custom Scalable Service using Service Oriented Cloud Computing Architecture

SOA CERTIFIED CONSULTANT

Six Strategies for Building High Performance SOA Applications

CLOUD SECURITY SECURITY ASPECTS IN GEOSPATIAL CLOUD. Guided by Prof. S. K. Ghosh Presented by - Soumadip Biswas

Cloud Based Architectures in Ground Systems of Space Missions

Cloud Computing Technology

Service Oriented Architecture and Its Advantages

Platform Autonomous Custom Scalable Service using Service Oriented Cloud Computing Architecture

Service Mediation. The Role of an Enterprise Service Bus in an SOA

Introduction to Service Oriented Architectures (SOA)

Service Virtualization andRecycling

CHAPTER 8 CLOUD COMPUTING

Trust and Dependability in Cloud Computing

Cloud Computing An Introduction

Logical Data Models for Cloud Computing Architectures

Service-Oriented Architecture and its Implications for Software Life Cycle Activities

ASCETiC Whitepaper. Motivation. ASCETiC Toolbox Business Goals. Approach

Chapter 2: Cloud Basics Chapter 3: Cloud Architecture

Quattra s Cloud Vision & Framework Value

Infrastructure as a Service (IaaS)

Tales of Empirically Understanding and Providing Process Support for Migrating to Clouds

A Proposed Case for the Cloud Software Engineering in Security

CLOUD COMPUTING AND PUBLIC SAFETY SERVICES

Cloud Based E-Government: Benefits and Challenges

Service-Orientation and Next Generation SOA

PaaS Cloud Migration Migration Process, Architecture Problems and Solutions. Claus Pahl and Huanhuan Xiong

A standards-based approach to application integration

What You Need to Know About Transitioning to SOA

Avoiding the Accidental SOA Cloud Architecture

Architectural Implications of Cloud Computing

Understanding Service-Orientation Part II: The Principles

Service Computing: Basics Monica Scannapieco

Sentinet for BizTalk Server SENTINET

SERVICE-ORIENTED MODELING FRAMEWORK (SOMF ) SERVICE-ORIENTED SOFTWARE ARCHITECTURE MODEL LANGUAGE SPECIFICATIONS

An Oracle White Paper October Maximize the Benefits of Oracle SOA Suite 11g with Oracle Service Bus

SOACertifiedProfessional.Braindumps.S90-03A.v by.JANET.100q. Exam Code: S90-03A. Exam Name: SOA Design & Architecture

Toward a Unified Ontology of Cloud Computing

Testing as a Service on Cloud: A Review

A Study of Infrastructure Clouds

The Cisco Powered Network Cloud: An Exciting Managed Services Opportunity

How To Understand Cloud Computing

Cloud Computing are you ready?

Improving IT Service Management Architecture in Cloud Environment on Top of Current Frameworks

PERFORMANCE ANALYSIS OF PaaS CLOUD COMPUTING SYSTEM

Understanding and Addressing Architectural Challenges of Cloud- Based Systems

A Review On SLA And Various Approaches For Efficient Cloud Service Provider Selection Shreyas G. Patel Student of M.E, CSE Department, PIET Limda

Cloud computing: A Perspective study

Fundamental Concepts and Models

10 Years of Hype Cycles - Do We Forget Knowledge?

Supply Chain Platform as a Service: a Cloud Perspective on Business Collaboration

How To Understand Cloud Computing

Service-Oriented Architecture for Cloud Computing

Air Force SOA Enterprise Service Bus Study Using Business Process Management Workflow Orchestration for C4I Systems Integration

Subash Krishnaswamy Applications Software Technology Corporation

Service Oriented Architecture (SOA) Architecture, Governance, Standards and Technologies

Five best practices for deploying a successful service-oriented architecture

Middleware and Web Services Lecture 11: Cloud Computing Concepts

Cloud Computing: a Perspective Study

Component-Based and Service-Oriented Software Engineering: Key Concepts and Principles

Federal Enterprise Architecture and Service-Oriented Architecture

TECHNOLOGY GUIDE THREE. Emerging Types of Enterprise Computing

CLOUD COMPUTING: A NEW VISION OF THE DISTRIBUTED SYSTEM

Integration of Cloud Computing and Cloud Storage

Analysis of Cloud Solutions for Asset Management

Extend the value of your core business systems.

How Cisco IT Automated End-to-End Infrastructure Provisioning In an Internal Private Cloud

Secure Cloud Computing through IT Auditing

Have We Really Understood the Cloud Yet?

IBM EXAM QUESTIONS & ANSWERS

Oracle Applications and Cloud Computing - Future Direction

Leveraging Standard Software from the Cloud with Service-Oriented EAM

AN APPROACH TO DEVELOPING BUSINESS PROCESSES WITH WEB SERVICES IN GRID

Grid Computing Vs. Cloud Computing

Key Research Challenges in Cloud Computing

Self-Aware Software and Systems Engineering: A Vision and Research Roadmap

How service-oriented architecture (SOA) impacts your IT infrastructure

INTRODUCTION TO CLOUD COMPUTING CEN483 PARALLEL AND DISTRIBUTED SYSTEMS

Creating Dynamic IT Infrastructure at Reduced Cost with Cloud Computing

REVIEW OF CLOUD TESTING, TYPES, CHALLENGES AND FUTURE SCOPE

Transcription:

Service Component Architecture for Building Cloud Services by Dr. Muthu Ramachandran, Principal Lecturer in the Computing and Creative Technologies School Abstract: The emergence of cloud computing has resulted in an increase in data centers, primarily due to rising global demand. The newly emerging cloud paradigm is heavily based on the Software-as-a-Service (SaaS) concept that provides services on-demand, utilising resources more effectively within cloud environments. Service component architecture (SCA) has been developed based on software components to build cloud services and architecture. This article discusses SaaS characteristics and how they can be designed with service components. In this research, we have developed a number of component models that have been designed for supporting cloud design characteristics and their associated architectural layers. This work has also developed a series of best practice design guidelines for service component design that support the componentization of cloud applications. Introduction Cloud computing has evolved to address the availability of computing resources which can be accessed from anywhere and anytime. In particular, computing hardware and software often gets outdated and, hence, it is wise to outsource computing resources and to manage their IT infrastructures outside of their company premises, which is more cost-effective than is the case at present. Applications can be leased (like payas-you-go service) rather than being purchased, and companies have increased their data centres due to demand (Amazon, Microsoft, and IBM). Cloud computing is heavily based on software as a service concept and needs high speed Web access. It provides services on demand utilising resources more effectively within the cloud environment. Cloud architecture, its layers, and its composition of components and services need to be designed for scalability and re-configurability, as they support services and their SLAs (service level agreements). The resource management of cloud computing is the key to achieving its potential benefits. Therefore, it is essential to design cloud applications as Web-based service components further based on wellproven CBSE (component based software engineering) methods and techniques (with appropriate security controls). Cloud computing is dependent on Internet technology therefore we need to design cloud services which are designed for security. However, this new trend needs to be more systematic with respect to software engineering and its related process that can be customised for cloud service development. Wand and Laszewski [REF-1] defines cloud computing as a set of network-enabled services which provide scalable, guaranteed QoS (Quality of Service), inexpensive computing platforms on demand, is customisable (personalised), and all of which can be accessed in a simple and pervasive way. An overview of the different cloud computing paradigms are discussed and presented with definitions, business models, and technologies by Wand and Laszewski [REF-1] and by many others [REF 1-2]. One of the main reasons for designing services as components is that the expected cloud characteristics such as flexibility, QoS, elasticity can all be achieved by designing service interfaces. Software components provide a good design rationale supporting various requirements of application development, design flexibility, system composition, testability, reusability, and other design characteristics. Component based designs are customisable and interfaces can be designed supporting SLA (service level agreement). SLAs vary between service providers which need to be customised without much effort. This can only be achieved using a component which has been designed for flexible interface that links to a number of SLAs. Each SLA and business rule can be represented as a set of interfaces that can be mapped onto a knowledge-based database or a data server. This also allows reuse of SLAs for any individual service 1 www.servicetechmag.com

providers. Erl [REF-3] suggests the building blocks of a governance system are precepts, people, processes, and metrics. Some of the important characteristics of cloud computing mentioned are: On demand services Handling wide area network addresses Resource grouping Efficient elasticity Measurable service delivery On demand services need to be managed efficiently as part of the cloud infrastructure management system. Most of the cloud users computers and devices are behind firewalls which have been assigned special IP addresses that can t be directly routed over the Internet. Handling such wide area network addresses need to be managed securely in order to protect cloud content and maintain privacy. Resource grouping is a mechanism by which cloud resources are shared to provide efficient services. Elasticity (meaning a resource can be increased and decreased automatically depending on the need) is one of the key promises of cloud computing benefitting business services. Elasticity can be efficiently managed by integrating compute and storage resources into a common framework to eliminate associated cost of managing cloud resources to scale applications. Service delivery is a key concept in making cloud technology a cost effective business solution for IT systems. Therefore, cloud providers need to cost-effectively scale services, resources, maintain profitability, to meet cloud customer requirements for cost, performance, data-integrity, and end-user experience. Our earlier work described by Ramachandran [REF-4 & REF-5] on component models for Web services and service-oriented architecture (SOA), grid computing, and various other systems can become an integrated aspect of any cloud computing architecture and application design. We also need to understand the basic differences amongst SOA (service-oriented architecture), grid and cloud computing. SOA is to offer services which are based on open standard Internet services, virtualisation technology, and have been running in a different environments. Grid offers services from multiple environments and virtualisation. Cloud can combine both aspects of both grid computing and SOA. We also need to identify a specific development process for capturing requirements, design and implementation strategies, security, and testing cloud applications. The cloud computing paradigm has lots to offer, but at the same time we need to consider building a secured and resilient architecture, and services that are reliable and trustworthy. In this project, a generic component model and a Web service component model has been developed, meeting the design demands for building cloud application architectures. In this research we have also proposed architectural composition strategies which can be customised for various cloud services. A case study on Amazon cloud EC2 has been designed based on a software component model for cloud computing. The results show a number of good practice design guidelines leading to a satisfaction index which is promising. Design of Service Components Some of the main reason for the emergence of service components is for customisation through interfaces, supporting reuse through extensibility by applying building-block concepts, and interoperability, for distributed cloud components. Service level components should support communication and exchange of messages to different systems and services on-the-fly, and therefore, componentising services will satisfy those criteria. Web services and SOA have been well established in the past few years with new technologies and architectures supporting service-oriented paradigms explicitly in the process, and they have also been proven to be a good design model. This section discusses service component models for cloud services and also 2 www.servicetechmag.com

discusses design rationale. Cloud applications development should primarily focus upon user perspective, their risks, and the design and architectural models should reflect user needs and their risks. Component models and their architecture provide a framework for system composition and integration. A generic component model that is presented in this article provides a unique concept of two distinct set of services: provide and requires. Software components are the basic unit of artefact that supports service composition with the cloud computing architecture and its environment. However, each development paradigm and application demands customisable and extendable component architectures that suit the needs of their applications. Each Web service component interfaces are mapped onto different ports within architectural layers to request for services and offer services as, and when, required at run-time. Service component architecture (SCA) is a set of specifications which describes a model for building applications and systems using a service-oriented architecture (SOA) [REF-2]. SCA extends approaches on software components and builds on open standards such as Web services. The aim is to map business requirements onto a service component that can be designed and implemented. A service component can be defined as the one that configures a service implementation. A service component model (UML based service model) is shown in Figure 8 which reflects service component design principle with a number of plugin type interfaces that allows it to connect other service components, service providertype of interfaces (IServiceInterface1, 2, etc.) and IServiceContract interface, which is a unique concept in our design that allows you to build and reuse business rules. The other types of interface include EntryPort, RejectedMessagePort, and ExitPort. These interfaces reflect WSDL descriptions and can be automatically generated. Figure 1 Component model for SaaS. Service component interface design is a unique solution to much of the larger problem of enterprise spaghetti (connection between system flows across multiple systems thus creating a spaghetti-like connection structure which is unmanageable hence the reason for moving to the concept of Enterprise Service Bus). The ESB builds on the concept of MEM (message-oriented middleware) to provide a flexible, scalable, standards-based integration technology for building a loosely coupled, and highly-distributed SOA [REF-3]. The service contract interface IServiceContract is a complex class as it allows us to build component rules and be able to reuse them in another service implementation where the similar design contract applies. Due to the nature of service complexity, we have designed an independent service component for handling SLAs as shown in Figure 8. The service contract component model provides plugin interfaces IInBoundContratcs which allows a service component to take business contracts/rules as input to the component whereas the provider interface such as IoutboundContracts provides business contract services to other service components. The IQoSContracts 3 www.servicetechmag.com

service provides service contracts on quality of service rules that are embedded within the service component implementation. Figure 2 Component model for service contract interface The service component modelling and design provides a systematic approach to building cloud service components to allow on-the-fly configuration, to discover new business services, and to be able to connect and disconnect service compositions. Service composition is one of the key principles of service design which can t be achieved without a component-based approach. The design principle of component interface allows service flexibility, elasticity, and scalability. A service composition is defined as the development of customised services by discovering, integrating, and executing existing services. Design of service composition is not only to consume services but also to provide services. Cloud service orchestration layer and its principle can also be addressed and achieved using service composition when services are designed as components based on the model as shown here. Service composition and orchestration allows service level reuse to happen. Service reuse is a notion of designing services as generic as possible to be reused in another service invocation. Designing services for reuse is based on SOA design principles: Loose coupling is to limit dependency between service consumers and service providers. This can be achieved by service interface design which has been part of a service component model as discussed. Autonomy is the key principle that enables service reuse. This can be achieved by designing services that can manage their own resources as database and legacies and to maintain by themselves without depending on other services. Service autonomy facilitates service adoption, scalability, QoS, SLA, and virtualisation. Statelessness is the property of a service to have a context but it will not have any intermediary state waiting for an event or a call-back. Granularity has been a prominent design principle of reuse. A large granularity of service component which is self-autonomous can yield higher level of service reuse through service composition. However, a balance must be struck when designing service components and interfaces. Composability is the process by which services are combined and integrated to provide a comprehensive and composite service. This principle is also the key to achieving cloud orchestration. A composite service consists of an aggregation of services that can produce another reusable service (s). 4 www.servicetechmag.com

Discoverability is an important means of mandating service time (design time reuse and runtime discoverability) notion when designing service components so that component can be called on when required. Service component interface concept allows components to be discovered and connected. Designing reusable services can save cost as it has been a well-known benefit of reuse. Cost reduction is one of the key aspects of cloud computing which aim to reduce cost for consumers by allowing pay-per -use cost model. The design rationale and service component model discussed in this section will help to improve cloud service reuse experiences. A number of SCAs were developed for various layers across three cloud services, SaaS, PaaS, and IaaS, and have been used to analyse the design of a large scale Amazona EC2. For more details on detailed design guidelines and the large scale Amazon EC2 can be found in REF-5. Based our research experiment, we collected those number of components for Amazon EC2 architecture and services it aims to provide. We have also assessed our components against the set of good design characteristics and guidelines. The result shows a number of component guidelines satisfaction index level (we have introduced the notion of guidelines satisfaction level as the measure in percent of a number of good practice guidelines have been met by a component and its interfaces) as percent for Amazon EC2 components for SaaS, PaaS and IaaS Based on our design guidelines and component models,. This has been illustrated in Chart 1. Figure 3 Component guidelines satisfaction index. As shown in Chart 1, best practice design guidelines can help us to improve the implementation of service component quality and thus providing high QoS when delivering services. We believe our approach can be applied across different service components and application domains. Conclusion Cloud computing has emerged supporting cost effective computing and IT systems. Designing cloud services is complex and need to be crafted systematically with good design principles that support cloud criteria and characteristics. Componentisation of cloud services offers software scalability and resiliency. This work has demonstrated a possibility of designing them systematically with specific process and components which can support effort and cost saving. Our previous work software components and best practice guidelines have 5 www.servicetechmag.com

lead to development of embedding best practice and reuse knowledge to be built-in rather than adding them at a later stage in the development. This work has also combined best practice design principles on objectorientation, componentisation, design patterns for composing architectures, service-oriented design strategies, and cloud computing design strategies. All of which has lead to the development of various component architecture for cloud services presented in this article. For cloud computing, the characteristics such as security of services, failover, and availability, can only be achieved if the cloud services are to be developed with those characteristics that can be built-in. Hence, the reason for a number of component based framework and component-based development process for cloud computing architectures have emerged in this project. References [REF-1] Wang, L., and Laszewski, v. G. Scientific Cloud Computing: Early Definition and Experience, http://cyberaide.googlecode.com/svn/trunk/papers/08-cloud/vonlaszewski-08-cloud.pdf, 2008. [REF-2] Service component architecture, http://www.oasis-opencsa.org/sca [REF-3] Erl, T. Service-oriented architecture: concepts, technology, and design, prentice hall, 2005. [REF-4] Ramachandran, M (2008) Software components: guidelines and applications, Nova Publishers, NY. [REF-5] Ramachandran, M (2011) Software components for cloud computing architectures and applications, Springer, Mahmmood, Z and Hill, R (eds.). 6 www.servicetechmag.com

Dr. Muthu Ramachandran Dr Muthu Ramachandran is currently a Principal Lecturer in the Computing and Creative Technologies School as part of the Faculty of Arts, Environment and Technology at Leeds Metropolitan University in the UK. Previously, he spent nearly eight years in industrial research (Philips Research Labs and Volantis Systems Ltd, Surrey, UK) where he worked on software architecture, reuse, and testing. Prior to that he was teaching at Liverpool John Moores University and received his PhD from Lancaster University. His first career started as a research scientist from India Space Research Labs where he worked on real-time systems development projects. Muthu is an author of two books: Software Components: Guidelines and Applications (Nova Publishers, NY, USA, 2008) and Software Security Engineering: Design and Applications (Nova Publishers, NY, USA, 2011). He is also an edited co-author of a book, Handbook of Research in Software Engineering (IGI, 2010) and has edited the book KE for SDLC (2011). He has also widely authored published journal articles, book articles and conferences materials on various advanced topics in software engineering and education. He received his Master s from Indian Institute of Technology, Madras and from Madurai Kamaraj University, Madurai, India. He is a member of various professional organizations and computer societies: IEEE, ACM, Fellow of BCS, and Fellow of HEA. Muthu can be reached at M.Ramachandran@leedsmet.ac.uk SOA speaker profile link: http://www.servicetechsymposium.com/speakers2012.php Contributions Service Component Architecture for Building Cloud Services 7 www.servicetechmag.com