0% found this document useful (0 votes)
230 views151 pages

Cloud Computing 2.0

cloud computing

Uploaded by

paln8n7634
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF or read online on Scribd
0% found this document useful (0 votes)
230 views151 pages

Cloud Computing 2.0

cloud computing

Uploaded by

paln8n7634
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF or read online on Scribd
You are on page 1/ 151
ete en wy As per the New Choice Based Credit System (CBCS) Syllabus of Mumbai University w.e.f. academic year 2023 - 2024 Cloud Computing and Web Services (USCS602) (Core Subject) T.Y.B.Sc. (Computer Science) Semester VI Sandeep Kamble SayaliParab Chayan Bhattacharjee Tech Knowledge Publications + Lab Manual —sYC$ au. TANK 26 Cloud Computing and Web Services (USCS602) (Core Subject) ines) effect from Academic Year 2023-2024 Mr. Sandeep Kamble Ph.D. (Pursuing), MH-SET (CSE), SET (Management), M. Tech (CSE), M-E.(E&TC), MBA (Marketing) SPECIME: Asst, Professor SPECIMEN COPY EnR|| REVIEW & Cosmopolitan's Valia College, Andheri (Wes}), REG TIO Co-founder Anantya Education, MMENDATION Head of SLRC ECOSTEM Mumbai, Maharashtra, India Ms. Sayali Parab Mr. Chayan Bhattacharjee (Msc. IT) (Msc. IT) Asst. Professor, Asst. Professor SES's LS. Raheja College, Patkar Varde College, Santacruz (West), Mumbai Goregaon (West), Mumbai MCE38A Price t Tech Knowledge | il | Publications Course Code uscs602 3 Unit Lectures Cloud Computing Basics | Web Services ~ Distributed Computing, Barallel Computing, WSDL structure, SOAP- Structure of SOAP Message (In JAX-WS), SOAP Messaging Architecture, SOAP Header, Client-side SOAP Handler, REST- What is REST? HTTP methods, Java API for RESTful Web Services (JAX-RS) Virtulization : Characteristics of Virtualized Environments.. Pros and Cons of Virtualization. Virtualization using KVM, Creating virtual machines, oVirt - management tool for virtualization environment. (Refer Chapters 1 and 2) Introduction to Cloud Computing: Definition, Types of Clouds, Deployment of software solutions and web applications, Types of Cloud Platforms, Essential characteristics ~ On- demand self-service, Broad network access, Location independent resource pooling Rapid elasticity , Measured service, Comparing cloud providers with traditional IT service providers Cloud Computing Software Security fundamentals : Cloud Information Security Objectives, Confidentiality, Integrity, Availability, Cloud Security Services, Relevant Cloud Security Design Principles, Secure Cloud Software Requirements, Secure Development practices, Approaches to Cloud Software Requirement Engineering, Cloud Security Policy Implementation. (Refer Chapters 3 and 4) Cloud Applications CloudSim : Introduction to Simulator, understanding Cloudsim simulator, Cloudsim . Architecture(User code, CloudSim, GridSim, —SimJava) Understanding Working platform for CloudSim, OpenStack : Introduction to OpenStack, OpenStack test-drive, Basic OpenStack operations, OpenStack CLI and APIs, Tenant model operations, Quotas, Private cloud building blocks, Controller deployment, Networking deployment, Block Storage deployment, Compute deployment, deploying and utilizing OpenStack in production environments, Building a production environment, Application orchestration using OpenStack Heat AWS : Architecting on AWS, Building complex solutions with Amazon Virtual Private Cloud (Amazon VPC). (Refer Chapters 5, 6 and 7) Course Code Course Title uscsP602 Lab Syllabus Cloud Computing and Web Services ~ Practical Define a simple services lke Ce platform like JAVA and .NET Create a Simple SOAP service. Create a Simple REST Service, Develop application to consume Google's search / Google's Map RESTful Web service, Installation and Configuration of virtualization using KVM. Develop application to download image/video from server or upload image/video to server using MTOM techniques. __ | Implement FOSS-Cloud Functionality VSI (Virtual Server Infrastructure) Infrastructure as a Service (laaS), Storage. Implement FOSS-Cloud Functionality - VSI Platform as a Service (PaaS), Using AWS Flow Framework develop application that includes a simple workflow. Workflow calls an activity to print hello world to the console. It must define the basic usage of AWS Flow Framework, including defining contracts, implementation of activities and workflow coordination logic and worker programs to host them. Implementation of Openstack with user and private network creation. Clond Computing and Web Services 1 __ i ~~» — Table of Contents i Chapter 1 :_Web Services FERTEY aa 12 13 14 15 16 eae: cove bods = OND rap, Pucld Ongtdig, WHOL anton BME OPEN of OOF Maa id] Far Goie tasina Pics SORE Geir Cleats GON? Viv GET IRESTIULWed Services (JAX-RS) = REST? HTTP methods, Java API jg) Basic Concept of Distributed System.. 7 LALA Distributed System Architecture un 1M 11.2 Characteristics of a Distributed System .. 13 Blements of Distributed Computing... As 1.2.1 General Concepts and Definitions Distributed Computing... 1s 1.2.2 Components of a Distributed System 1.6 1.2.3 Architectural Styles for Distributed Computing.... ay 124 Technologies for Distributed Computin; 113 1.2.4(A) Remote Procedure Call - 14 1.2.4(B) Distributed Object Frameworks . Pcie ww ll7 Parallel Computin, 13.1 Elements of Parallel Computing. 13.2 Hardware Architectures for Parallel Processing. 1-20 133 Levels of Parallelism. 1-21 Web Services. 122 1.4.1 Web Services Description Language (WSDL) ene DB SOAP 1-24 1.5.1 Structure of SOAP Message (In JAX-WS) 1.5.2 SOAP Messaging Architecture.. 1,53 SOAP Header. 1-26 1.5.4 Client-Side SOAP Handlers. 1-28 REST- What is REST?. 1.29 1.6.1 HTTP Methods. 1.6.2 Java API for RESTful Web Services (JAX-RS) . TechKnowledge Cloud Computing and Web Table of Contents Chapter 2: Virtualization 241029 syisbue Chwactrsies ot Viuaznd Envtonnonts Pros and Gon of Vituateaton Viunizton using KVM Creing vital qnacines,oVilt- management fon for vitualzaton environment —_ _ ma Introduction to Virtualization sn Bel 24.4 Virtualization Bastes vi sR 21.2 Virtualization Approaches 218 Characteristies of Virtualized Environment... “ 7 22 22 Pros and Cons of Virtualization. 25 221 Pros of Virtualization. 25 222 Cons of Virtualization... 25 23° Virtualization using KVM, ws 2-6 24 reat Virtual Machin ee os] 24.1 Tocreate a Virtual Machine using VMware Workstation 27 25 oVirt Management Tool for Virtualization Environment . 28 251 Whats OVI soennnn 2B 25.2 Goals of the oVirt.. eet Chapter 3 :_ Introduction to Cloud Computing 34 to 349 [Syllabus : Introduction to Cloud Computing : Definition, Types of Clouds, Deployment of sofware solutions and web applications [Types of Cioud Platforms, Essential characteristics - On-demand self-service, Broad network access, Location independent resource) ong. Rapid elasticity, Measured service. Comparing cloud providers with racitional IT service providers 3.1 Cloud Computing. ...onen 3.1.1 Cloud Services Models. 32 Types of Cloud... 3.3. Deployment of Software Solutions and Web Applications... 34 Types of Cloud Platform/Reference Models. 34.1 IaaS/HaaS (Infrastructure / Hardware as a Service) 3.4.2 PaaS (Platform as a Service). 343° SaaS (Software as a Service), 3.5 Essential Characteristics of Cloud Computing... an 36 Cloud Provider with Traditional IT Service Provider... oe BS Cloud Computing and Web Services 3 Table of Contents aaa — 3.7 Open Challenges of Cloud Computing. sane 3.8 Cloud Computing Software Security Fundamentals. ale 3.9 Cloud Information Security... 318 ee eeSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS Chapter 4:_Cloud Computing Software Security Fundamentals 441048 |syiabus : Cloud Computing Software Security fundamentals : Cloud Information Security Objectives, Confidentiality, Integy, JAvenabity, Cloud Security Services, Relevant Cloud Security Design Principles, Secure Cloud Software Requirements, Secur| |Develonment practices. Approaches to Cloud Software Requirement Engineering, Cloud Security Policy Implementation, 41 Cloud Information Security : Confidentiality suns 42 Cloud Information Security : Integri 43 Cloud Information Security : Availability... 44 Cloud Security Services. 4S Cloud Security Design Principles. 4.6 Secure Cloud Software Requirements w..u0uu 47 Secure Development Practices. 48 Approaches to Cloud Software Requirement Engineering, 49 Cloud Security Policy Implementation.. Chapter §: Cloud Applications : CloudSim 5:1 to 5:5 ‘syllabus : CloudSim : Introduction to Simulator, understanding CloudSim simulator, CloudSim Architecture (User code, CloudSim, \GréSim, SimJava) Understanding Working platform for CloudSim. 5.1 Introduction to Simulator. 5.2 Understanding CloudSim Simulator. 5.3 CloudSim Architecture... 5.3.1 User Code. 5.32 CloudSim Layer. 533 Gridsim 534 Simjava Understanding Working Platform for CloudSitn 0 cloud Computing and Web Services Table of Contents —_— CO ov'' ‘Chapter 6 : Cloud Applications : Openstack 6-4 t0 6.33 model operations, Quotas, Private cloud buiing blocks, Controller deployment, Networking deployment, Block Storage deployment [Compute deployment, deploying and utizing OpenStack in production environments, Bulding a production environment, Application [orchestration using OpenStack Heat. 61 Introduction to Openstack, GAA OpenStack for Cloud Environment 6.1.2 Component of Openstack. 62 — OpenStack Test-Drive.. 62.1 Openstack Software and APIs. 622 64 OpenStack CLI and APIS enn 64.1 OpenStack Client Command-Line Interface (CLI), = 642 OpenStack Networking Concepts... 6S Tenant Model Operation: 651 — Tenant Networks... 65.2 Provider Networks... 66 — Quotas.. 67 Openstack Private Cloud. 67.1 Openstack Private Cloud Benefits, 68 Private Cloud Building BIOCKS noma 69 Controller Deployment... 69.1 Install and Configure Controller Node.. 69.2 Install and Configure Components 619 69.3 Networks and Network InterfaceSnmnmnsnnnnnnnnnnn 6.10 Block Storage (Cinder)... 6-22 611 — Compute Deployment. 23 642 Ephemeral Storage (Nova) 6-24 4 Tea Table of Contents Cloud Computing and Web Services 5 6.13 Deploying Openstack in a Production Environment 625 6.14 Building a Production Environment. 627 6.29 61S OpenStack Heat Orchestration, Chapter 7 :_Cloud Applications : AWS TA tors [Sytiabus : AWS : Archtecting on AWS, Building complex solutions with Amazon Virual Private Cloud (Amazon VPC) 7. Basics of AWS... nen Toh 7.1.1 Components and services within AWS... = ey 7.2 Architecting on AWS. 7.3. Building Complex Solutions with Amazon Virtual Private Cloud (Amazon VPC).. 7.3.1 Steps to Build Complex Solutions with Amazon Virtual Private Cloud 7.3.2 An Example of Building a Complex Solution using Amazon VPC. eens Web Services Web Services ~ istibuted Computing, Parallel Computing, WSDL structure, SOAP- Structure of SOAP Message {In JAX-WS), SOAP Messaging Architecture, SOAP Header, Client-side SOAP Handler, REST- What is REST? HTTP methods Java APL for RESTUl Web Services (JAX-RS) 1.1__ Basic Concept of Distributed System ‘+ Distributed system is an application that executes a collection of protocols to co-ordinate the actions of multiple Processes on a communication network, such that all components cooperate together to perform a single or small set of related tasks. © The collaborating computers can access remote resources as well as local resources in the distributed system via the communication network. © The existence of multiple autonomous computers is transparent to the user in a distributed system. The user is ‘not aware that the jobs are executed by multiple computers subsist in remote locations. This means that like centralized systems no single computer in the system carries the entire load on system resources that running a ‘computer program usually required. 1.1.1 Distributed System Architecture © Distributed systems are built up on top of existing networking and operating systems software. © A distributed system comprises a collection of autonomous computers, linked through a computer network and distribution middleware. To become autonomous there exist a clear master/slave association between two computers in the network. © The middleware enables computers to coordinate their activities and to share the resources of the system, so that users perceive the system as a single, integrated computing facility. Thus, middleware is the bridge that connects distributed applications across dissimilar physical locations, with dissimilar hardware platforms, network technologies, operating systems, and programming languages. * The middleware software is being developed following agreed standards and protocols. It provides standard services such as naming, persistence, concurrency control to ensures that accurate results for concurrent processes are produced and obtains the results as fast as possible, event distribution, authorization to specify access rights to resource security ete. + The middleware service extends over multiple machines. Fig, 1.1.1 shows a simple architecture of a distributed system, cl joud Computing and Web Serv Web Services ‘Machina G Distributed applications: te Middloware service [stot [woe | Cnes I Fig. 1.1.1 : Architecture of a Distributed System Network ‘The distributed system can be viewed as defined by the physical components or as defined from user or computation point of view. The first is known as the physical view and the second as the logical view. Physically a distributed system consists of a set of nodes (computers) linked together by a communication network, ‘The nodes in the network are loosely coupled and do not share their memory. The nodes in the system communicate by passing messages over the communication network. Communication protocols are used for sending messages from one node to another. ‘The logical model is the view that an application has of the system. It contains a set of concurrent processes and ‘communication channels between them. The core network is treated as fully connected. Processes communicate by sending messages to each other. A system is synchronous if during a proper execution, itll the time performs the intended operation in a known fixed time, otherwise itis asynchronous. In synchronous system the failure can be noticed by a lack of response from the system. Therefore, timeout- based techniques are used for failure discovery. ‘A distributed system can be constructed by means of fully connected networks or partially connected networks. ‘A fully connected network is a network in which each of the nodes is connected to each other. ‘The problem with such a system is that adding new nodes to the system results in the increase of number of nodes connected to the node, Due to this the numbers of file descriptors and complexity for each node to implement the connections are increased heavily. Thus, the scalability (capability of a system to continue to function well when the system is changed in size or volume) of such systems is limited by each node's capacity to open file descriptors and the ability to handle the new connections. ‘The communication cost - the message delay of sending a message from the source to the destination- is low because a message sent from one computer to another one only goes through one link. Fully connected systems are reliable because when a few computers or links fail, the rest of the computers can still communicate with others. Ina partially connected network, direct links exist between some, but not all, pairs of computers. A few of the partially connected network models are star structured networks, multi-access bus networks; ring structured networks, and tree-structured networks. Some of the traditional distributed systems such as client/server paradigm use a star as the network topology. ‘The problem with such a system is that when the central node fails, the entire system will be collapsed. In'# multi-access bus network, a set of clients are connected via a shared communications line, called a bus. TechKnowledst —_ wae Clond Computing and Wob Services 1 Web Services + The bus link becomes the bottleneck and if it fails, all the nodes in the system cannot connect to each other. Another disadvantage is that performance degrades as additional computers are added or on heavy traffic, + Ina ring network ¢ signals through each node. As new nodes are added, the diameter of the system grows as the number of nodes in the system, resulting ina longer message transmission delay. dle connects to exactly two other nodes, forming a single continuous pathway for © Anode failure or ea ible break might isolate every node attached to the ring, In a tre e-structured network (hierarchical network), the nodes are connected as a tree. Each node in the network having a specific fixed number, of nodes associated to it at the next lower level in the hierarchy. + The scalability of the tree-structured network is better than that of the fully connected network, since new node can be added as the child node of the leaf nodes or the interior nodes. ‘+ On the other hand, in such systems, only messages transmitted between a parent node and its child node go though one link, other messages transmitted between two nodes have to go through one or more intermediate nodes. 1.1.2. Characteristics of a Distributed System A distributed system must possess the following characteristics to deliver utmost performance for the users Characteristics of a Distributed System a. Fault-Tolerant b Scalable «6, Predictable Perormance 4. Openness e. Security| {. Transparency Fig. 1.1.2 : Characteristics of a Distributed System (@) Fault-Tolerant * Distributed systems consist of a large number of hardware and software modules that are bound to fail in the long run. Such component failures can escort to service unavailability. Hence, the systems should be able to recover from component failures without performing erroneous actions. The goal of fault tolerance is to avoid failures in the system even in the presence of faults to provide uninterrupted service. ‘© Asystem is said to be fault tolerant if it can mask the presence of faults. The aim of any fault tolerant system is to increase its reliability or availability. The reliability of a system is defined as the probability that the system survives till that time. + Arreliable system prevents loss of information even in the event of component failures. Availability is the fraction of time for which a system is available for use. Usually fault tolerance is achieved by providing redundancy Tec Cloud Computingand Web Services 14 Web Services © Redundancy is defined as those parts of the system that are not needed for its correct functioning. It is of three types ~ hardware, software and time, + Hardware redundancy ts achieved by adding extra hardware components to system which take over the role of failed components in case some faults oceur in them, + Software redundancy includes extra instructions and code included for managing the extra hardware x components, and using them correctly for ininterrupted service, in case of some component failure. In time | redumeaney the same instruction is executed many times, This is used to handle temporary faults in the system, (b) Scalable + Acistributed system can operate correctly even as some aspect of the system is scaled to a larger size, ‘+ Scale has three components : the number of users and other entities that are part of the system, the distance deqween the farthest nodes in the system, and the number of organizations that exert administrative contro] over pieces of the system. + The three elements of scale affect distributed systems in many ways. Among the affected components are naming, authentication for verifying someone's identity, authorization, communication, the use of remote | resources, and the mechanisms by which users observe the system. Three techniques are employed to manage scale : replication, distribution and caching, (©) Predictable Performance + Various performance metrics such as response time (elapsed time between the end of an inquiry or demand on a computer system and the beginning of a response), throughput (the rate at which a network sends or receives data), system utilization, network capacity ete. are employed to assess the performance. + Predictable performance is the ability to provide desired responsiveness in a timely manner. (@) Openness ‘+ The attribute ‘openness’ ensures that a subsystem is continually open to interaction with other systems. Web services are software systems designed to support interoperable machine-to-machine interaction over anetwork. © These protocols allow distributed systems to be extended and scaled. An open system that scales has benefit over a completely closed and self-reliant system. + Adistributed system independent from heterogeneity of the underlying environment such as hardware and software platforms achieves the property of openness, Therefore, every service is equally accessible to every client (local or remote) in the system. ‘The implementation, installation and debugging of new services should not be very complex in a system possessing openness characteristic. (@) Security «Distributed systems should allow communication between programs/users/ resources on different | computers by enforcing necessary security arrangements. + The security features are mainly intended to provide confidentiality, integrity and availability. * Confidentiality (privacy) is protection against disclosure to unauthorized person. Violation of confidentially. ranges from the discomforting to the catastrophic. Cloud Computing and Web Services Web Services + Integrity provides protection against alteration and corruption, Availability keeps the resource accessible, * Many incidents of hacking comprom inst availability. Other Important security concerns are access control and © the Integrity of databases and other resources. "Denial of service” tacks are attacks aga nonrepudiation, ‘+ Maintaining access control facilitates the users to access only those resources and services to which they are entitled. Italso ensures that users are not denied resources that they legitimately can expect to access, + Non-repudiation provides protection against denial by one of the entitles Involved in a communication, The security mechanisms put into practice should guarantee appropriate use of resources by different users in thes (Transparency ributed systems should be perceived by users and application developers as a whole rather than as a collection of cooperating components. * The locations of the computer systems involved in the operations, concurrent operations, data replication, resource discovery from multiple sites, failures, system recovery etc. are hidden from users. ‘+ Transparency hides the distributed nature of the system from its users and shows the user that the system is appearing and performing as a normal centralized system. The transparency can be employed in different ways in a distributed system, 1.2__ Elements of Distributed Computing * A distributed computing system is basically a collection of processors/computers interconnected by a communication network in which each processor has its own local memory and other peripherals, and the communication between any two processors of the system takes place by message passing over the communication network. For a particular processor, its own resources are local, whereas the other processors and their resources are remote © Together, a processor and its resources are usually referred to as a node or site or machine of the distributed computing system. 1.2.1 General Concepts and Definitions Distributed Computing ‘Distributed systems are built up on top of existing networking and operating systems software. © Adistributed system comprises a collection of autonomous computers, linked through a computer network and distribution middleware. To become autonomous there exist a clear master/slave association between two computers in the network. * The middleware enables computers to coordinate their activities and to share the resources of the system, so that users perceive the system as a single, integrated computing facility. Thus, middleware is the bridge that connects distributed applications across dissimilar physical locations, with dissimilar hardware platforms, network technologies, operating systems, and programming languages, ‘+ The middleware software is being developed following agreed standards and protocols. It provides standard services such as naming, persistence, concurrency control to ensures that accurate results for concurrent Processes are produced and obtains the results as fast as possible, event distribution, authorization to specify access rights to resources, security etc, The middleware service extends over multiple machines. Tech) ‘Cloud Computing and Web Services 4:6 Web Servic, 1.2.2 Components of a Distributed System eA distributed system comprises a collection of auto Yomous computers, linked through a computer Network ang distribution middleware, Frameworks for Distributed Programming Middleware NPC Primitives tor ‘Contro! and Data| [Operating System} Fig. 1.2.1 : Cloud computing distributed system + To become autonomous there exist a clear master/slave association between two computers in the network, Fig. 1.2.1 provides an overview of the different layers of a distributed system. + The very bottom layer constitutes the physical infrastructure such as computer and network hardware; these components are directly managed by the operating system, which provides the basic services for Inter-Proces Communication (IPC), process scheduling and management, and resource management in terms of file systen and local devices. + These two layers become the platform on top of which specialized software is deployed to turn a set of networked computers into a distributed system, At the operating system level, IPC services are implemented aa top of standardized communication protocols such Transmission Control Protocol/Internet Protocol (TCP/IP). User Datagram Protocol (UDP) or others. «The middleware enables computers to coordinate their activities and to share the resources of the system, ° that users perceive the system as a single, Integrated computing facility. Thus, middleware is the bridge tht connects distributed applications across dissimilar physical locations, with dissimilar hardware platforms, network technologies, operating systems, and programming languages. | The middleware software is being developed following agreed standards and protocols. It provides standard services such as naming, persistence, concurrency control to ensures that accurate results for concurrest processes are produced and obtains the results as fast as possible, event distribution, authorization to speci rights to resources, security ete, The middleware service extends over multiple machines. «All of them constitute a uniform interface to distributed application developers that is completely independet* from the underlying operating system and hides all the heterogeneities of the bottom layers Cloud Computing and Web Services 17 Web Services 1.2.3 Architectural Styles for Distributed Computing + The cloud is a distributed architecture of individual cloud-native services, providing resources as services in a tiered fashion to construct full technology stack from hardware to middleware platforms to applications. The configuration and deployment af applications and cloud platforms as interdependent adaptive systems can ‘be managed dynamically, responding to changes in both requirements and the execution platform. + The middleware layer of distributed system architecture enables distributed computing, by providing a coherent ‘and uniform runtime environment for applications Following are two major categories of architectural styles : 1 Software Architectural Styles System Architectural Styles 1. Software Architectural Styles ‘+ Software architecture style focuses on logical organization of software components and different patterns of communication between them, + They are helpful because they provide an intuitive view of the whole system, despite its physical deployment. They also identify the main abstractions that are used to shape the components of the system and the expected interaction patterns between them. Table 1.2.1 shows different categories in architectural styles, 1.2.1: Software Architecture Style Sr.No. Category Most Common Architectural Styles 1. | Data-centered Repository Blackboard 2. | Dataflow Pipe and filter Batch sequential 3. | Virtual machine Rule-based system Interpreter 4, | Calland return Main program and subroutine call/top-down systems Object-oriented systems. 5. | Independent components | Communicating processes | Even systems () Data-centered Architectures ‘© Have the goal of achieving the quality of integrability of data. The term Data-centered Architectures refers to systems in which the access and update of a widely accessed data store is an apt description. At its heart, it is nothing more than a centralized data store that communicates with a number of clients. ‘+ The means of communication (sometimes called the coordination model) distinguishes the two subtypes: repository (the one shown) and blackboard. A blackboard sends notification to subscribers when data of : interest changes and is thus active, Tech - ting and Web Services «loud Computing, 1-8 Web Services (ii) Data-Flow Architectures Have the goal of achieving the qualities of reuse and modifiability. The dataflow style is characterized by viewing the system as a series of transformations on st sssive pleces of input data «Data enter the system and then flows through the co final destination (output or a data store), nponents one ata time until they are assigned to some «Architecture style it data-flow can be further categorized as Batch Sequential Style and Pipe-and-Filter Style, A. Batch Sequential 1 is.a classical data processing model, tn which a data transformation subsystem can initiate its process only after its previous subsystem is completely through ~ the processing steps, or components, are independent pnoghams, and the assumption is that each step runs to completion before the next step starts. Each batch of data is transmitted asa whole between the'steps. «The Now of data carries a batch of data as a whole from one subsystem to another. «The communications between the modules are conducted through temporary intermediate files which can be removed by successive subsystems. + Itis applicable for those applications where data is batched, and each subsystem reads related input files and writes output files Typical application of this architecture includes business data processing such as banking and utility billing, Advantages «Provides simpler divisions on subsystems. «Each subsystem can be an independent program working on input data and producing output data. Disadvantages «Provides high latency and low throughput. + Does not provide concurrency and interactive interface. + External control is required for implementation. B. Pipe and Filter Style This approach lays emphasis on the incremental transformation of data by successive component. In this approach, the flow of data is driven by data and the whole system is decomposed into components of data source, filters, pipes, and data sinks, ‘The connections between modules are data stream which is first-in/first-out buffer that can be stream of bytes, characters, or any other type of such kind. The main feature of this architecture is its concurrent and incremented execution. Filter stream transformer or stream transducers. It transforms the data of the input data A filter is an independent data st and writes the transformed data stream over a pipe for the next filter to process. It worksia stream, processes it, ‘an incremental mode, in which it starts working as soon as data arrives through connected pipe. TechKnowledy puptieatiens dl Web Services Cloud Computing and Web Services There are two types of filters (a) Active filter (b) Passive filter (a) Active filter Active filter lets connected pipes to pull data in and push out the transformed data, It operates with passive ling. This mode is used in UNIX pipe and ivipe, which provides read/write mechanisms for pulling and pi ‘Alter mechanism. (D) Passive fitter Passive filter lets connected pipes to push data in and pull data out. It operates with active pipe, which pulls data from a filter and pushes data into the next filter. It must provide read/write mechanism. Advantages + Provides concurrency and high throughput for excessive data processing. + Provides reusability and simplifies system maintenance. ‘+ Provides modifiability and low coupling between filters. * Provides simplicity by offering clear divisions between any two filters connected by pipe. + Provides flexibility by supporting both sequential and parallel execution. Disadvantages ‘+ Not suitable for dynamic interactions. ‘+ Alow common denominator is needed for transmission of data in ASCII formats. + Overhead of data transformation between filters. + Does not provide a way for filters to cooperatively interact to solve a problem. © Difficult to configure this architecture dynamically, (iii) Virtual Machine ‘+ Architectures have the goal of achieving the quality of portability. Virtual machines are software styles that simulate some functionality that is not native to the hardware and/or software on which itis implemented. * Executing a module via a virtual machine adds flexibility through the ability to interrupt and query the Program and introduce modifications at runtime, but there is a performance cost because of the additional computation involved in execution. (iv) Call-and-Return * Architectures have the goal of achieving the qualities of modifiability and solvability. Call-and-Return architectures have been the dominant architectural style in large software systems for the past 30 years. ‘+ However, within this style a number of substyles, each of which has interesting features, have emerged. (V) Main-Program-and-Subroutine ‘+ Architectures is the classical programming paradigm. The goal is to decompose a program into smaller pieces to help achieve modifiability. Tea joud Computing and Web Services 1.10 Web Services + Aprogram is decomposed hierarchically. There Is typically a single thread of control and each component in the hierarchy gets this control (optionally along with some data) from Its parent and passes it along to its children (vi) Remote Procedure Call + Systems are main-program-and-subroutine systems that are decomposed into parts that live on computers a network. The goal Is to increase performance by distributing the computations and taking connected vi advantage of multiple processors. + In remote procedure call systems, the actual assignment of parts to processors is deferred until runtime, canting that the assignment is easily changed to accommodate performance tuning, ‘+ In fact, except that subroutine calls may take longer to accomplish if it is invoking a function on a remote machine, a remote procedure call is indistinguishable from standard main program and subroutine systems, (vii) Object-oriented or Abstract Data Type Systems are the modern version of call-and-return architectures. The object-oriented paradigm, like the abstract data type paradigm from which it evolved, emphasizes the bundling of data and methods ty manipulate and access that data (Public Interface). «The object abstractions form components that provide black-box services and other components that request those services. © The goal is to achieve the quality of modifiability. This bundle is an encapsulation that hides its internal secrets from its environment. + Access to the object is allowed only through provided operations, typically known as methods, which are constrained forms of procedure calls. This encapsulation promotes reuse and modifiability, principally because it promotes separation of concerns. The user of a service need not know, and should not know, anything about how that service is implemented. (viii) Layered Systems ‘Are ones in which components are assigned to layers to control intercomponent interaction. In the pue version of this architecture, each level communicates only with its immediate neighbours. ‘The goal is to achieve the qualities of modifiability and, usually, portability. The lowest layer provides sone core functionality, such as hardware, or an operating system kernel. Each successive layer is built ont hiding the lower layer and providing some services that the upper layers make use of. predecessor, 2. System Architectural Styles «The physical organization of components and processes of a distributed infrastructure is depicted int system architectural style. «They provide a set of reference models for the deployment of such systems and help engineers not only are a common vocabulary in describing the physical layout of systems but also quickly identify the mj advantages and drawbacks of a given deployment and whether it is applicable for a specific cass applications. papticatiel ail Cloud Computing and Web Services it Web Services (Client-Server ‘This architecture is very popular (n distributed computing and is suitable for a wide variety of applications. Aserver and a ellent are the two major components of client-server model, As depicted in Fig Internet isa min icatlon channel between these two components. The communication is half duplex (unidirectional communication) ; The client/server model Is an extension of the modular programming, model Modular programming breaks down the design of a program into individual modules that can be programmed and tested Independently. A modular program consists of a main module and one or more auxiliary modules. Like modular programming model, a client/server model consists of clients and servers. The clients and servers normally run on different computers interconnected by a computer network. The calling component becomes the client and the called component the server. ‘A client application sends messages to a server via the network to request the server for performing a specific task. The client handles local resources such as input-output devices, local disks, and other peripherals. The server program listens for client requests that are transmitted via the network. Servers receive those requests and perform actions. Most of the data is processed on the server and only the results are returned to the client. This reduces the amount of network traffic between the server and the client machine. Thus, network performance is improved further. The server controls the allocation of the information and also optimizes the resource consumption. For the client design, identify two major models can be considered : (a) Thin-client Model © Sometimes also referred as a lean, zero or slim client. In this model, the client component is depending on another computer (its server) to fulfil its computational roles. © The term thin client is also used to describe software applications that use the client-server model in which the server performs all the processing, Thin clients and other lean devices rely on a network ‘connection to a central server for full computing and don't do much processing on the hardware itself © The term is derived from the fact that small computers in networks tend to be clients and not servers ‘and the idea that since the goal is to limit the capabilities of thin clients to only essential applications, the devices tend to be purchased and remain “thin” in terms of the client applications they include, © In general, thin clients are centrally managed, are not as vulnerable to malware attacks, have a longer life cycle, use less power and are less expensive to purchase. Since the idea is to limit the capabilities of thin clients to only essential applications, they tend to be purchased and remain “thin” in terms of the client applications they include. Cloud Computing and Web Services 112 Web Service. CS Throe Tior NTier Serveriaient ‘Server/aient 1.2.2: Client-server Architecture (b) Fat-client Model Also called as heavy, rich or thick client. The client component provides rich functionality independent | of central server. A fat client (sometimes called a thick client) is a networked computer with most resources installed locally, rather than distributed over a network as is the case with a thin client Most PCs (personal computers), for example, are fat clients because they have their own hard drive DVD drives, software applications and So on. Fat clients are almost unanimously preferred by network users because they are very customizable and the user has more control over what programs are installed and specific system configuration. On the other hand, thin clients are more easily managed, are easier to protect from security risks, and offer lower maintenance and licensing costs. Presentation, Application logic, and Data storage are the three major components in the client-server model. In the Thin-client architecture, the client embodies only the presentation component, while the server absorbs the other two. Presentation, application logic, and data storage and maintenance can be seen as conceptual layers, which are more appropriately called tiers. Client-server architecture is usually made up of the; application server, database server and PC. The ‘two main architectures are the 2-tier and 3-tier architecture. A. Two-tier Architecture | This is an architecture which involves only the Database server and a client PC In| 2-tier architecture, the users will run applications on their PC (Client), which connects through # network to the server. The client application runs both the coding and business logic, and then displ | output to the user. Itis also called thick client. | Techie al oud Computing and Web Services 113 Web Services Se © Its considered when the client has access to the database directly without involving any intermediary. Its also used to perform application logic whereby the application code will be assigned to each of the ellent in the workstation, ‘Three-tier architecture/N-tier architecture © This architecture involves the client PC, Database server and Application server. 3-tler architecture can be extended to N-tier whereby it Involves more application servers. In this architecture, the ellent contains presentation logle only, whereby less resources and less coding are needed by the client. It supports one server being In charge of many clients and provides more Fesources in the server, It involves an intermediary (Application server) also known as middleware. © Middleware : The 3-tler architecture involves an application server which serves as a middleware between the client PC and database server. The middleware tier is separate software running on a separate machine and performs application logic © The client-server architecture has been an Important building block of more complex systems. Designing and deploying distributed systems, and several applications with this model gives more feasibility. This model is generally suitable in the case of a many-to-one scenario, where the interaction is unidirectional and started by the clients and suffers from scalability issues, and therefore it is not appropriate in very large systems. (ii) Peer-to-Peer In peer-to-peer model, all the components are called as peers, every peer plays the same role. There is no superior component (main station), each peer incorporates both client and server capabilities. In the common client-server architecture, multiple clients will communicate with a central server. A peer-to- peer (P2P) architecture consists of a decentralized network of peers - nodes that are both clients and servers. . P2P networks distribute the workload between peers, and all peers contribute and consume resources within the network without the need for a centralized server, However, not all peers are necessarily equal. Super peers may have more resources and can contribute more than they consume. Edge peers do not contribute any resources, they only consume from the network. In its purest form, P2P architecture is completely decentralized. However, in application, sometimes there is a central tracking server layered on top of the P2P network to help peers find each other and manage the network. P2P architecture works best when there are lots of active peers in an active network, so new peers joining the network can easily find other peers to connect to. If large number of peers drop out of the network, there are still enough remaining peers to pick up the slack. If there are only a few peers, there are less resources available overall. For example, in a P2P file-sharing application, the more popular a file is, which means that lots of peers are sharing the file, the faster it can be downloaded. 1.2.4 Technologies for Distributed Computing ‘There are several relevant technologies that provide concrete implementations of interaction models, which mostly rely on message-based communication. These technologies include Remote Procedure Call (RPC), Distributed Object Frameworks and Service-Oriented Computing. Tec a raw sama Wa NTO =3s. Wt Serres LDA Remade Prrcediere Gal RR stews Stes ar al gerenitures tm seers TUNING om emo es The Parameners amg esas a packeg ae messages ae ae pate ewe the cHlene ANE The sewer RPL ate oer access Samar AP lene col ‘ocak orem: AME HeMMU read tm the Soe wear Mescage messmg a ACs mesbie ope sear ecg reiny Sten nen ly yeacetures the heme suid amé the severe sah = Dompie L eceme uN PS LL = Sent ame sere CEE muse lin the same gmc whch snecifies The inom of Ge messes ectoney aoe Te TNT GANS Ga TS eg Megs im Dee's ompR, Garses im ASCE fees ESS samen S45 wt) Seeetme ese fe dag endian) The Tana sues mPFC S et or mee extumge eg. TELE FT Neat to est =—— Sep LDS RC emeen 2 chet ant a sewer Sar =e Sec acne 2 Meee Sse = ee Bap 12S. The segs trees 2 eee pe Sess ‘The Ghene graces cals te-chent sum, which Testes with the sienc’s alires Ss ‘The Gear sca sacks che gerumenes imp 2 messes: Ths S salet marshaling The Gent suf hex sees Sesen Gil (@g senie) sent nema ‘The Sierme semis Ghe message ap te “snuer soe ase, ‘Te server seat cecsines dhe maar fam heen ‘Wht server stud unmarsiais the jurueTs oy ® w ‘Die sewer seat calls the desreé graces Glow! Commuting and Web Services 1 Web Services et SS 7. The server process executes the procedure and returns the result to the server stub. 8. The server stub marshals the results into a message and passes the message to the kernel 9. ‘The kernel sents the message to the client machine, 10. The client stub receives the message from the kernel UL. The clients marshals the results and passes them to the calle. Implementing RPC RPC Is generally implemented over a request-reply protocol that supports two-way exchange of messages in client-server Interactions, The protocol is based on 3 communication primitives 1, doOperation : Used by a client to invoke a remote Operation, It sends a request message to the remote server and returns the reply message. 2, getRequest : Used by a server to acquire request messages. 3. sendReply : Used by a server to send the reply message to the client after It has invoked the operation specified in the request message. Node A Node & Procedure A Procedure B PC Library [Program A (RPC Olen | RPC Service rogram C(RPC Server Parameters Marshaling| [Retin Valve |} [Parameter Unnarshaing}{ Relum Vaive : ‘and Procedure Namo{"|Unmarsraing}” |" and tracedre Namo]. Marsalng {~~ : Tc Fig. 1.2.5 : RPC Reference Model 1.2.4(B) Distributed Object Frameworks ‘+ Middleware based on distributed objects is designed to provide a programming model based on object-oriented principles and therefore to bring the benefits of the object-oriented approach to distributed programming. ‘+ Emmerich [2000] sees such distributed objects as a natural evolution from three strands of activity = 1. Indistributed systems, earlier middleware was based on the client-server model and there was a desire for more sophisticated programming abstractions. 2. In programming languages, earlier work in object-oriented languages such as Simula-67 and Smalltalk led to the emergence of more mainstream and heavily used programming languages such as Java and C++ (languages used extensively in distributed systems). complex than standard object-oriented programming, as summarized as follows : | Other differences will emerge when we look in detail at CORBA in these include = 1 6 Web Services In software engineering, significant progress was made in the development of object-oriented design methods, leading to the emergence of the Unified Modelling Language (UML) as an industrial-standarq notation for specifying (potentially distributed) object-oriented software systems. In other words, through adopting an object-oriented approach, distributed systems developers are not only provided with richer programming abstractions (using familiar programming languages such as C+* and Java) also able to use object-oriented design principles, tools and techniques (including UML) in the development of distributed systems software. but ‘This represents a major step forward in an area where, previously, such design techniques were not available jy is interesting to note that the OMG, the organization that developed CORBA, also manages the standardization of | UML | ributed object middleware offers a programming abstraction based on object-oriented principles. Leading | examples of distributed object middleware include Java RMI and CORBA. While Java RMI and CORBA share a log | in common, there is one important difference: the use of Java RMI Is restricted to Java-based development, | whereas CORBA is a multi-language solution allowing objects written in a variety of languages to interoperate. | (Bindings exist for C++, Java, Python and several others.) | It must be stressed that programming with distributed objects is both different from and significantly more | ‘The key differences between objects and distributed objects have already been covered in the context of RMI Class is a fundamental concept in object-oriented languages but does not feature so prominently in distributed object middleware. As noted in the CORBA case study, it is difficult to agree upon a common interpretation of class in a heterogeneous environment where multiple languages coexist. | In the object oriented world more generally, class has several interpretations, including the description of the behaviour associated with a group of objects (the template used to create an object from the class), the place to go to instantiate an object with a given behaviour (the associated factory) or even the group of objects that adhere to that behaviour. While the term ‘class’ is avoided, more specific terms such as ‘factory’ and ‘template are readily used (a factory being an object that will instantiate a new object from a given template). The style of inheritance is particular, distributed object middleware offers interface inheritance, which is a relationship between interfaces whereby the new interface inherits the method signatures of the original interface and can add extra ificantly different from that offered in most object-oriented languages. In ones. In contrast, object-oriented languages such as Smalltalk offer implementation inheritance as a relationship between implementations, whereby the new class (in this case) inherits the implementation (and hence behaviour) of the original class and can add extra behaviour. Implementation inheritance is much more diffct to implement, particularly in distributed systems, due to the need to resolve the correct executable behaviour at runtime. Consider, for example, the level of heterogeneity that may exist in a distributed system, together with the need to implement highly scalable solutions. Inter-object Communication : A distributed object middleware framework must offer one or more mechanisms for objects to communicate in the distributed environment. This is normally provided by remote method invocation, although distributed object middleware often supplements this with other communicators | paradigms (for example, indirect approaches such as distributed events). CORBA provides an event service am | an associated notification service, both implemented as services on top of the core middleware. Cloud es omputing andl Web Services 1.17 Web se + Lifecycle Management : Lifecycle management Is concerned with the creation, migration and deletion of objects, with each step having to deal with the distributed nature of the underlying environment. + Activation and Deactivation sin non-distributed Implementations, it can often be assumed that objects are active all the time while the process that contains them runs. In distributed systems, however, this cannot be assumed as the numbers of abjects may be very large, and hence It would be wasteful of resources to have all objects available at any time, © Inaddition, nod hosting objects may be unavailable for periods of time. Activation is the process of making an ‘object active in the distributed environment by providing the necessary resources for it to process incoming invocations ~ effectively, locating the object in virtual memory and giving it the necessary threads to execute Deactivation is then the opposite process, rendering an object temporarily unable to process invocations, + Persistence : Objects typically have state, and it is important to maintain this state across possible cycles of activation and deactivation and indeed system failures. Distributed object middleware must therefore offer persistency management for stateful objects. 1.3 _ Parallel Computing 1.3.1 Elements of Parallel Computing + Parallel execution of computations depends on the architecture of the execution platform. Processor chips are the key components of computers. ‘+ An important performance factor is the clock frequency of the processor, which determines the cycle time of the processor and therefore the time needed for the execution of an instruction. ‘+ Internally, processor chips consist of transistors. The number of transistors contained in a processor chip can be used as a rough estimate of its complexity and performance. ‘+ The increase of the number of transistors and the increase in clock speed have led to a significant increase in the performance of computer systems. Parallel Processing ‘+ A computer system is said to be Parallel Processing System or Parallel Computer if it provides facilities for simultaneous processing of various set of data or simultaneous execution of multiple instruction, ‘* Ona computer with more than one processor each of several processes can be assigned to its own processor, to allow the processes to progress simultaneously. If only one processor is available the effect of parallel processing can be simulated by having the processor run each process in turn for a short time. ‘+ Parallel processing in multiprocessor computer is said to be true parallel processing and parallel processing in uniprocessor computer is said to simulated or virtual parallel processing. ‘+ Parallel processing provides a cost-effective solution to this problem by increasing the number of CPUs in a computer and by adding an efficient communication system between them. ‘+ The workload can then be shared between different processors, This setup results in higher computing power and performance than single-processor system offers. The development of parallel processing is being {influenced by many factors. Tea Cloud Computing and Web Services 1.18 Web Services (Glouel Computing am Wc STS ES 1.3.2. Hardware Architectures for Parallel ‘The core elements of parallel processing are CPUs. Based on the number of instruction and data streams that can | tye processed simultaneously, computing systems are classified into the following four categories : {a)_ Single Instruction, Single Data (SISD) systems (b) Single Instruction, Multiple Data (SIMD) systems (c) Multiple Instruction, Single Data (MISD) systems Multiple Instruction, Multiple Data (MIMD) systems (a) SISD Systems SISD systems contain one control unit, one processing unit, and one memory unit. « _Inthis type of computers, the processor receives a single stream of instructions from the control unit and operates on @ single stream of data from the memory unit. During computation, at each step, the processor receives one instruction from the control unit and operates ona single data received from the memory unit, isco Seam 2 Data Input Data Output ul 1.3.1: Single Instruction, Single Data (SISD) architecture Prcener (b) SIMD systems | ‘+ SIMD systems contain one control unit, multiple processing units, and shared memory or interconnection | network. Here, one single control unit sends instructions to all processing units. During computation, at each step, all the processors receive a single set of instructions from the control unit and operate on different set of data from the memory unit. ‘* Each of the processing units has its own local memory unit to store both data and instructions. In SIMD Computers, processors need to communicate among themselves. This is done by shared memoryor by interconnection network. ‘+ While some of the processors execute a set of instructions, the remaining processors wait for their next set of instructions. Instructions from the control unit decides which processor will be active (execute instructions) or inactive (wait for next instruction), (© MISD systems * As the name suggests, MISD systems contain multiple control units, multiple processing units and one ‘common memory unit. ‘+ Here, each processor has its own control unit and they share a common memory unit All the processors get instructions individually from their own control unit and they operate on a single stream of data as per the instructions they have received from their respective control units. This processor operates simultaneous. Instruction) 77 [SSB Stroam 1} “Single Data Input Steam ‘Single Data Output Sean) Fig. 2.3.3 : Multiple Instruction, Single Data (MISD) architecture (a) MIMD systems MIMD systems have multiple control units, multiple processing units, and ashared memory or interconnection network. ‘+ Here, each processor has its own control unit, local memory unit, and arithmetic and logic unit. They receive different sets of instructions from their respective control units and operate on different sets of data. ‘+ An MIMD systems that shares a common memory is known as multiprocessors, while those that uses an interconnection network is known as multicomputer. ‘+ Based on the physical distance of the processors, multicomputer are of two types : ()_ Multicomputer : When all the processors are very close to one another (eg, in the same room). n the different (ii) Distributed system : When all the processors are far away from one another (ex. cities) 7 oy Cloud Computing and Web Services Web Services Fig. 1.3.4: Multiple Instruction, Multiple Data (MIMD) architecture Compared to MIMD computers, SIMD computers have the advantage that they are easy to program, since there is only one program flow, and the synchronous execution does not require synchronization at program level, Some processors support SIMD computations as additional possibility for processing large uniform data sets. ‘An example is the x86 architecture which provides SIMD instructions in the form of SSE (Streaming SIMD Extensions) or AVX (Advanced Vector Extensions) instructions. ‘The computations of GPUs are also based on the SIMD concept, MIMD computers are more flexible as SIMD ‘computers, since each processing element can execute its own program flow. IPC Channel IPC Channet Fig. 1.3.5 : Shared MIMD (left), distributed MIMD (right) architecture 1.3.3 Levels of Parallelism ‘+ Levels of parallelism are decided based on grain size. Table 1.3.1 lists categories of code granularity for parallelism. All these approaches have a common goal: to boost processor efficiency by hiding latency. © The idea is to execute concurrently two or more single-threaded applications, such as compiling, text formatting, database searching, and device simulation. © As shown in the table and depicted in Fig. 1.3.6, parallelism within an application can be detected at several levels : Large grain (or task level), Medium grain (or control level), Fine grain (data level) and Very fine grain (multiple-instruction issue) parallelism and distribution at the top two levels, which involve the distribution of the computation among multiple threads or processes. TechKnowledst id omputing and Web Service Lat Web Services Table 1.3.1 : Level of Parallelism Grain stze Code Item Large | Separate and heavy weight process | __ Programmer [Medium Function or procedure Programmer Fine Loop or instruction block Parallelizing complier Very fine | Instruction Processor Messages; 1c Large Level (Processes, Tasks} Shared freon 10) omy eon FO) Fn ce - (Threads, Functions) [Function 1 Function J lO} =... att} el a: a iia Storer sl crs Very Fine Level (Cores, Pipeline, Instructions) Fig. 1.3.6 : Level of Parallelism 14 Web Services * Web services have emerged as the leading technology for implementing SOA (Service-Oriented Architecture) systems and applications. By harnessing the power of Internet technologies and widely accepted standards, they offer a robust solution for building distributed systems. What makes Web services stand out as the technology of choice for SOA? For one, they promote seamless interoperability between diverse platforms and programming Tanguages. Additionally, they are built on established and independent standards like HTTP, SOAP, XML, and WSDL. And they provide a straightforward and user-friendly approach to connecting varied software systems, facilitating the rapid assembly of services within a distributed environment. Most importantly, they offer the essential capabilities necessary for enterprise business applications to thrive in a real-world setting. These include sophisticated features for service discovery, enabling seamless integration within a system. Cloud Comput 1 Web Services ‘+ Web services, based on the simple concept of object-oriented abstraction, offer a range of operations that can be utilized through internet protocols, These method operations support the passing of various parameter types and return values in both complex and simple forms, + Thestandardized use of XML and WSDL ensures the interoperability of web service methods, making it effortless to express a variety of types in a untversal fashion, These services are easily accessible when hosted in a web server, with HTTP being the preferred transport protocol for seamless interactions. ‘© System architects utilize thelr preferred technology to create and implement a Web service. This service can then be accessed through compatible Web or application servers. The detalls of the service are conveyed through a Web Service Definition Language (WSDL) document, which can be added to a global registry or directly attacheg to the service itself. © To find and access these services, users can browse through global catalogs using Universal Description Discovery and Integration (UDI), or more commonly, they can directly retrieve the service's metadata by frst querying the Web service. © The Web service description document provides a helpful function for service consumers by effortlessly generating clients for the specific service and seamlessly embedding them within their current application. Due to the widespread popularity of Web services, they offer bindings for all mainstream programming languages in the form of easily accessible libraries and development tools. 1+ This leads to a seamless and uncomplicated usage of Web services compared to more challenging integration | required by technologies like CORBA. Additionally, the interoperability of Web services makes them a superior choice for Service-Oriented Architecture (SOA) compared to other distributed object frameworks like .NET | Remoting, Java RMI, and DCOM/COMs, which are limited to a single platform or environment. 1.4.1 Web Services Description Language (WSDL) ‘+ WSDL is a vital too! in the world of java web development, serving as an XML format that outlines network | services through a collection of endpoints that operate on messages containing either document-oriented or procedure-oriented information. These operations and messages are described in an abstract manner, and then paired with a specific network protocol and message format to create an endpoint. ‘+ This allows for the creation of abstract and concrete endpoints, which can then be combined into services WSDL's extensibility also makes it possible to describe endpoints and messages regardless of the communication protocols or formats used. However, this document primarily focuses on the use of WSDL with SOAP 1.1, HTT? GET/POST and MIME bindings. WSDL Document Structure WSDL documents serve as essential blueprints for services, grouping together network endpoints, also knownas ports. WSDL cleverly separates the abstract definitions of these endpoints and messages from their concrett deployment on a network or binding of data formats. This results in reusability of abstract definitions such messages, which describe the data being communicated, and port types, which are collections of operations. The beauty of this separation lies in the creation of reusable bindings, where the specific specifications for the protocols and data formats associated with a particular port type can be reused. Ultimately, a service is defined by a group! ports, each with a network address linked to a reusable binding, TechKnowiedtt Cloud Computing and Web Services Web Services Abstract dotintion of service Protocol and physical Focations Fig. 1.4.1 : WSDL Table: 1.4.2 Element Description | Defines the (KML Schema) data types used by the web service. It is a container for data type definitions using some type system (such as XSD).. | Defines the data elements for each operation. It is an abstract, typed definition of the data being communicated. | Describes the operations that can be performed and the messages involved. An abstract set of operations supported by one or more endpoints. | Defines the protocol and data format for each port type. A concrete protocol and data format specification for a particular port type. | Service~a collection of related endpoints. Porta single endpoint defined as a combination of a binding and a network address. 1.5 SOAP ‘+ SOAP, also known as Simple Objects Access Protocol, was developed by Microsoft in 1998 as a web communication protocol. Its primary purpose is to facilitate the transmission of data over HTTP/HTTPS and itis, commonly used to expose web services. + However, its capabilities are not limited to just these functions. Unlike the REST pattern, SOAP only supports _XM1as its data format and rigidly adheres to established standards such as messaging structure, encoding rules, and the format for requesting and responding to procedures. + One of the key advantages of SOAP is its capability to seamlessly create web-based services, making it independent of language and platform when handling communications and generating responses. Despite the Browii due to its robust standardization, potential for automation in certain scenarios, and enhanced security features. popularity of REST as the preferred means of web data exchange, SOAP is expected to remain relevant Tech mw fow x Y clam wi ana inmulununh @¥ ar ‘ Sec cde at ua! Creakuon 5 in joud Computing and Web Services Oat Om Web Services 1 Java API for XML Web Servicus (AKWS), SOAP (Simple Object Access Protocol) MSSOKES APE Used fy communication between web services, These messages have a specific structure defined by the SOAP protocol, jy JAX WS, the structure ofa SOAP message can be represented as follows: JAX-WS works with SOAP messages through generated proxy classes or by using the JAX-WS APIs (Javaxxml yg package) to create, send, and process SOAP messages programmatically, You can generate client oF server code from WSDL (Web Services Description Language) using tools like wsimport to handle SOAP messages ang interact with web services in Java. ~ ‘+ Handling SOAP messages in JAX-WS involves creating request and response objects, setting parameters, invoking methods, and marshalling/unmarshalling the SOAP XML content. The javax.xmlsoap package Provides classes for creating and manipulating SOAP messages and their components. 1.5.2 SOAP Messaging Architecture “Kip Optional Contant or payload of TSP the SOAP message Fig. 1.5.1: SOAP Messaging Architecture ‘* Envelope : The SOAP message begins with an element. This element encapsulates the entire SOAP ‘message and contains namespaces and encoding style declarations. + Header (Optional) : The
element is an optional part of the SOAP message. It contains header information such as authentication details, routing data, or any other metadata related to the message. * Body: The element encapsulates the actual content or payload of the SOAP message. It contains the daa that is being transferred between the client and the web service, + Fault (Optional) : It is used to indicate error messages. In case of errors or exceptions during processing 2 « element may be included within the element. It contains error information including fault codes, fault strings, and fault details. Ifa Fault clement is present, it must appear as a child element of the Body element. A Fault element can onl appear once in a SOAP message. | j Tea J Wu as aking do fi pniieatiel ( Fl j \ ) [aha wali, Cloud Computing and Web Services Web Services Sub elements of SOAP Fault element omtodung Style Sub Element staultcode> | | | information about who caused the fault to happen, sdetails [Holds application specie error information related to the Body element. Syntax. Raid XTIo Oren 1.5.3. SOAP Header ‘+ The
element in a SOAP message is optional, serving to convey application-specific information for SOAP nodes along the message flow. These child elements of
, known as header blocks, act as designated XML elements created by the application. + They logically group data to target SOAP nodes encountered on the message's journey from sender to recipient. SOAP header blocks can be utilized by intermediary and ultimate receiver nodes, but in practice, not all nodes process every block. Instead, each node is designed to handle specific blocks, while each block is intended for processing by certain nodes. ‘+ The SOAP header provides a convenient way to include additional features in a SOAP message, without needing agreement beforehand from the parties involved, Through the use of specific attributes, SOAP clearly outlines how a feature will be handled and whether itis required or not. Such crucial information includes directives and context that are relevant to the message's processing. By incorporating these elements, SOAP messages can be tailored to meet the unique needs of a particular application + Encoding style refers to the guidelines for encoding components of a SOAP message. Unlike the extensive flexibility of XML, SOAP has a more restricted set of rules for encoding data. + This can be seen in its use of the role attribute (in SOAP 1.2) and the actor attribute (in SOAP 1.1). Cloud Computing and Web Services Web Services + In SOAP 1.2, the role attribute specifies whether a particular node is involved in processing the message. If the node's rote matches the role assigned to the header block, It will process the header. However, If the roles do nog match, the node will not process the header block, Similarly, in SOAP 1.1, the actor attribute serves the same purpose. # The mustUnderstand attribute serves the purpose of ensuring that SOAP nodes do not overlook importan, hheader blocks in an application. If a SOAP node plans ta handle a header block based on i actor, it must adhere to the value of “true” for the mustUnderstand attribute. This either process the header block according to its specifications or not at all, resulting in an error. its designated role or means that the node mus, + However, if the attribute is set to “false”, the node has the option to disregard the header block entirely. in essence, the mustUnderstand attribute dictates whether the processing of the header block is required or optional. This attribute has different values depending on the version of SOAP being used: “true” for SOAP 12 and "1" for SOAP 1.1. In both cases, the node must follow the specified action for the header block. © IfmustUnderstanc 11" to a child element of the Header element then it indicates that the receiver processing the Header must recognize the element. If the receiver does not recognize the element it will fail when processing the Header. 3p=" URL of soap-envelope” soap:encodingStyle=""> -">234 -">234 —> 1.5.4 Client-Side SOAP Handlers Client-side SOAP handlers in JAX-WS allows to intercept and manipulate SOAP messages before they are sent by the client. This functionality is useful for tasks such as logging, security, or modifying the SOAP message content | before it’s transmitted to the server. Steps to create a Step1: — Createa Handler Class : Implement a handler by extending javaxxml.ws handler.soap SOAP Handler. ide SOAP handler in JAX-WS This class should implement the necessary methods such as handleMessage() to process the SOAP message. Ss Cloud Computing and Web Services 1.27 Web Services SSS —— Fe Code import javax.xml.ws.handler.soapSOAPHandler; import javax.xml.ws.handler.soap.SOAPMessageContext; public class CustomSOAPHandler implements SOAPHandler ( // \raplement required methods like handleMessage, close, etc. Hom } Step2: Implement Handler Methods : Within the handler class, implement the handleMessage() method to specify the logic for intercepting and processing the SOAP message. This method is invoked when a SOAP message is sent. Code @override public booleanhandleMessage(SOAPMessageContext context) { // Logic to intercept and process the SOAP message before sending He> return true; // Return true to continue processing the message } Step3: Configure the Handler : Attach the handler to the client's service port. This can be done programmatically or through configuration using annotations or a HandlerResolver. Code Www 208g / 00 import javaxxmlws BindingProvider, import javaxxml.ws Service; import javaxxmLws handler. Handler; // Obtain service instance Service service = Service.create(..); // Get the handler chain from the service port ListcHandler>handlerChain = ((BindingProvider) service getPort(..)) getBinding(),getHandlerChain(); // Add the custom SOAP handler to the handler chain handlerChain.add{new CustomSOAPHandler()}; /{ Set the updated handler chain back to the port (CBindingProvider) service getPort(.)) getBindingQ) setHandlerChain(handlerChain}; Step4: Handle SOAP Message : Inside the handleMessage() method, to access and modify the SOAP message useSOAPMessageContext. For example, the SOAP message can be retrieved by inspecting or modifying headers, body, or any other part of the message. Cloud Computing and Wek Code Lan Web Services @0verride Public booleanhindleMossage(SOAPMessageContext context) ( 1/ Access the SOAP message SOAPMessagesoapMessage = contextigetMessage()s 1/ Modify or inspect the SOAP message here a return trie: } Return true to continue processing the message By implem messages, enablin rased on specific requirements before sending itto the server 1.6 _REST- What is REST? REST networked applications, partic protocols o REST is the acronym for Representational State Transfer, and it serves as an architectural style for developing sularly for web services. This approach effectively harnesses the functions and f the internet to enable seamless communication. Key principles of REST include : 5. Client-Server Architecture : REST separates the client and server, enabling them to evolve independently. This separation allows for better scalability and flexibility. Statelessness : Each request from a client to a server must contain all the information necessary to understand a and process the request. The server doesn’t store any client state between requests, making it easier to scale and manage the system. Cacheability : Responses from the server can be labeled as cacheable or non-cacheable. This improves network efficiency and reduces server load by allowing clients to cache responses when appropriate. Uniform Interface : REST emphasizes a uniform interface between components, promoting simplicity and decoupling. It typically includes these constraints: Resource Identification through URIS: Resources are identified by Uniform Resource Identifiers (URIs) such as URLs. Manipulation of Resources through Representations : Clients interact with resources using representations Of the resource (eg, JSON or XML}. The server sends representations of resources to the client, which can then manipulate those resources. Self-descriptive Messages : Messages sent between the client and server should be self-descriptive and contait all the information needed to understand them, renting 2 client-side SOAP handler in JAX-WS, you can intercept and manipulate outgoing SOAP 1g various functionalities like logging, adding security headers, or modifying message content 129 Web Services Cloud Computing and Web ture where components (64, proxies, gateways) can be lability, security, or other concerns without affecting the Layered System : REST allows for a layered arehit added between the client and server to improve se overall system, 9, Code on Demand (Optional) : This constraint ts optional and allows the server to temporarily extend or stomize the functionality of client by sending corde that the client can execute, 1.6.1 HTTP Methods RESTful web services use HTTP methods to perform operations on resources, Following HTTP methods are used: Method Action GET Requests a document from the server | HEAD __| Requests information about a document but not the document itself. POST __| Sends some information from the client to the server PUT Sends a document from the server to the client TRACE _| Echoes the incoming request CONNECT | Reserved OPTION _| Inquires about a available options 1.6.2 Java API for RESTful Web Services (JAX-RS) + Itis a Java programming language API that provides support for creating RESTful web services. It is a part of the Java EE (Enterprise Edition) platform and is used to develop web applications following the REST architectural style, + JAXRS defines a set of APIs and annotations that simplifies the development of RESTful web services in Java. The main components of JAX-RS are : 1. Annotations : JAX-RS provides annotations that can be used to define resources, HTTP methods, parameters, and other aspects of a RESTful service. The javaxws.ts package contains JAX-RS annotations. Annotation Description Path Itidentifies the URI path. It can be specified on class or method. PathParam | Itrepresents the parameter of the URI path. GET itresponds to GET request. Post it responds to POST request. Pur Itresponds to PUT request. HEAD it responds to HEAD request. DELETE it responds to DELETE request. OPTIONS __| itresponds to OPTIONS request. FormParam _| It represents the parameter of the form. TechKnowledge Cloud Computing and Web Services 1 Web Services QueryParam | It represents the parameter of the qi HeaderParam | tt represents the parameter of the header, CookieParam | It represents the parameter of the cookle, Produces It defines media type for the response such as XML, PLAIN, JSON ete, It defines the media type that the methods of a resource class or MessageBodyReader can produce. 2. Resource Classes : These are Java classes that are annotated with JAX-RS annotations to define RESTful resources, These clases contain methods that handle HTTP requests and perform operations on resources, 3, Client API: JAX-RS includes a client API that allows Java applications to consume RESTful web services. The iavaxiwsrselient package provides classes and interfaces to create and send HTTP requests to RESTful services. 44. Providers : JAX-RS supports providers for handling serialization/deserialization of data (eg. JSON, XML), exception mapping, and other aspects. Providers can be used to customize the behavior of the JAX-RS runtime, Common implementations of JAX-RS include: fo Jersey : Reference implementation of JAX-RS provided by Oracle. It's widely used and supports the core JAXRS APIs. © RESTEas} 9 Apache CXF : An open-source web services framework that also supports JAX-RS among other nother popular JAX-RS implementation provided by JBoss/Red Hat. protocols and standards, Example : JAX-RS resource class Code import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.wsrs Produces; import javax.ws.rs.core MediaType; @Path("/hello”) Public class HelloResource { @cET @Produces(MediaType.TEXT_PLAIN) public String sayHello() ( return "Hello, World!”; } * This class defines a resource accessible at the path "/hello” that responds to HTTP GET requests by returning tht text "Hello, World!” in plain text format. Ted Pupiicatte J lod Computing and Weby Web Services views at + IAGRS simplifies the development of RESTIUl services in Java by providing a standardized way to create, deploy, aul consume web services, .1 Describe about distributed system and its architecture. .2 List and explain the characteristics of distributed systems, Q.3 Describe distributed systems and hence discuss about its components. 2.4 Explain Architectural styles for distributed computing. Q.5 Explain briefly about the technologies for Distributed Computing, 2.6 — Explain RPC in deta 2.7 Explain Distributed object frameworks in detail. @.8 Describe parallel computing and hence describe about parallel processing 2.9 Explain hardware Architecture for Parallel Processing. Q.10 Explain the concept of distributed computing Q.14 Explain the level of parallelization @.12 Explain WSOL document structure. .43 What is SOAP? Explain the architecture of SOAP message. Q.14 Explain the SOAP header. Q.15 Whats Client-side SOAP handler? Explain the steps to create Client-side SOAP handlers, 2.16 Explain REST along with its key principals, Q.17 Explain Java API for RESTIul Web Services. goa Virtualization KVM, Creating virtual | Characteristics of Virtualized Environments, Pros and Cons of Virtualization. Virtualization using | machines oVit- management tool for vitualzation environment. 2.1 Introduction to Virtualization | view, It increases the utilization ang Virtualization is a technique of abstracting physical resources into logical capability of IT resource. It also simplifies resource management by pooling and sharing resources. Virtualization helps to significantly reduce downtime. It can be of various categories such as planned and unplanned and it also improved performance of IT resources, Virtualization “Virtualization indicates that an applications can use a resource without any concern for where it resides, what the technical interface is, how it has been implemented, which platform it uses, and how much of itis available.” -Rick F. Van der Lans Five major reasons of virtualization are as follows = 1. Sharing : Break up a large resource which enables large capacity or high-speed. Eg. Servers. 2, Isolation : Protection from other tenants. E.g. Virtual Private Network (VPN). 3. Aggregating : Combine many resources into one. E.g, storage. 4. Dynamics : Fastallocation, Change/Mobility, oad balancing. Eg, virtual machines. 5. Ease of Management : Easy distribution, deployment and testing. Advantages of Virtualization 1. Minimize hardware costs (Capital Expenditure : CapEx). Multiple virtual servers on one physical hardware. Easily move VMs to other data centers, Provide disaster recovery, Hardware maintenance. 6. Follow the sun (active users) or follow the moon (cheap power). 7. Consolidate idle workloads. Usage is bursty and asynchronous. 4. Increase device utilization. 1 B Clond Computing and Web Services 22 Virtualtestion. 9, Conserve power 10. Free up unused physteal resources. 11, Basler automation (Lower OpEx : Operating Expenditure). 12, Simplified provisioning/administration of hardware and software 13. Scalability and flexibility ofmultiple operating systems. 2.1.1 Virtualization Basics ‘+ The term virtualization broadly describes the separation of a resource or request for a service from the underlying physical delivery of that service, With virtual memory, for example, computer software gains access to more memory than is physically installed, via the background swapping of data to disk storage. imilarly, virtualization techniques can be applied to other IT infrastructure layers - including networks, storage, laptop or server hardware, operating systems and applications. «This blend of virtualization technologies provides a layer of abstraction between computing, storage and networking hardware, and the applications running on it. The deployment of virtual infrastructure is non- disruptive, since the user experiences are largely unchanged. + However, virtual infrastructure gives administrators the advantage of managing pooled resources across the enterprise, allowing IT managers to be more responsive to dynamic organizational needs and to better leverage infrastructure investments. 2.1.2 Virtualization Approaches + While virtualization has been a part of the IT landscape for decades, it is only recently(in 1998) that VMware delivered the benefits of virtualization to industry-standard x86-based platforms, which now form the majority of desktop, laptop and server shipments. ‘+ Akey benefit of virtualization is the ability to run multiple operating systems on a single physical system and share the underlying hardware resources - known as partitioning, Virtualization can be applied to a range of system layers, including hardware-level virtualization, operating system level virtualization, and high-level language virtual machines. ‘+ For Unix/RISC and industry-standard x86 systems, the two approaches typically used with software-based partitioning are hosted and hypervisor architectures. A hosted approach provides partitioning services on top of a standard operating system and supports the broadest range of hardware configurations. ‘* In contrast, a hypervisor architecture is the first architecture is the first layer of software installed on a clean x86-based system (hence it is often referred to as a"bare metal" approach). Since it has direct access to the hardware resources, a hypervisor is more efficient than hosted architectures, enabling greater scalability, robustness and performance. 2.1.3 Characteristics of Virtualized Environment Some of the important characteristics of virtualization include the following : 1. Increased Security ‘© The ability to control the execution of a guest programs in a completely transparent manner opens new possibilities for delivering a secure, controlled execution environment. Teck SS Virtwaltzation Cloud Computing and Web Service All the operations of the guest programs are generally performed against the virtual machine, Which the, translates and applies them to the host programs. A virtual machine manager can control and filter the activity of the guest programs, thus preventing some harmful operations from being performed. * Resources exposed by the host can then be hidden or simply protected from the guest. Increased security i. a requirement when dealing with untrusted code, 2. Managed Execution In particular, sharing, aggregation, emulation and isolation are the most relevant features. Fig. 2.1.1 : Characteristics of virtualization (a) Sharing © Virtualization allows the creation of a separate computing environments within the same host. + Thisbasic feature is used to reduce the number of active servers and limit power consumption. () Aggregation + Not only itis possible to share physical resource among several guests, but virtualization also allows aggregation, ‘which is the opposite process. A group of separate hosts can be tied together and represented to guests asa single virtual host. ‘+ This functionality is implemented with cluster management software, which hamesses the physical resources ofa homogeneous group of machines and represents them as a single resource. (©) Emulation * Guest programs are executed within an environment that is controlled by the virtualization layer, which ultimately is a program * Also a completely different environment with respect to the host can be emulated, thus allowing the execution of guest programs requiring specific characteristics that are not present in the physical host. (@) Isolation ‘* Virtualization allows providing guests such as whether they are operating systems, applications, or other entities with a completely separate environment, in which they are executed. ‘+ The guest program performs its activity by interacting with an abstraction layer, which provides access 10 the underlying resources. The virtual machine can filter the activity of the guest and prevent harmful operations against the host. ‘+ Besides these characteristics, another important capability enabled by virtualization is performance tuning This feature is a reality at present, given the considerable advances in hardware and software supporting virtualization. Techiinewiedtt 24 Virtualization + TW hecomes easier to control the performance of the guest by finely tuning the properties of the resources exposed through the virtual environment. This capability provides a means to effectively implement a quality-oF-service (Qos) infrastructure, 3. Probability ‘+ The concept of portability applies in different ways according to the specific type of virtualization considered. In the case of a hardware virtualization solution, the guest is packaged into a virtual image that, {Im most cases, can be safely moved and executed on top of different virtual machines. + In programming-level virtualization which is implemented by the JVM or the NET runtime, the binary code representing application components (jars or assemblies) can run without any recompilation on any implementation of the corresponding virtual machine. Along with these characteristics, it also incorporates the basic characteristics of cloud computing such as: 1, Automatic service on Demand : Computational services are provided automatically, without human intervention over the service provider. Rapid Elasticity : Services must be fast and made available whenever necessary. Users of them must feel as they have unlimited resources, which can be acquired in any amount, anytime. The elasticity property appears in three components : linear scalability, use by demand, and payment of what is consumed. Measurable Services : The management systems used by the cloud must control and monitor each resource, automatically, for each kind of service (storage, processing and bandwidth). This monitoring must be ‘transparent for both entities involved (service provider and user). 4 Multiple Tenants ; In a cloud environment services owned by multiple providers can be located in a singte data- center. With this approach the issues with performance and management of these services can be dealt by all service and the infrastructure providers. The layered architecture offers a natural division of duties, that is, the ‘owner of each layer will have to deal only with the specific goals associated with that layer. Unfortunately, the multiple tenancies also create problems in the understanding and management of the interactions between parts. Sharing of the Pool of Resources : The infrastructure provider offers a pool of resources that can be dynamically allocated to the resource consumers. This capability creates a great flexibility to the cost-effective management of resources. As an example, a service provider can take advantage of the technique of VM migration In order to maximize resource utilization, what implies in the reduction of costs associated with cooling and power consumption. 6. Access through a Worldly Distributed Network : Clouds are usually accessible from the Internet, therefore, any device connected to it, either a cell phone or a desktop, is capable of using the cloud services. Even more, in order to achieve a high performance and availability, many of the current clouds are composed by several datacenters distributed over the world. 7. Service Oriented : Cloud computing adopts a service-oriented operational model, putting a strong emphasis in service management. Each provider offers his service trying to guarantee a Service Level Agreement (SLA), which is negotiated with the users of that service, 8. Dynamic Resource Provisioning : Differently from conventional systems, where resources are fixed, in clouds we have the capability of dynamically adjust the amount of offered resources by the acquisition and publishing of extra resources by the service provider, guided by current demands. Cloud Computing and Web Services 2.5 Virtualization 9. Self-organtzation : The property of dynamte resource provisloning implies in the ability of providers and clients to adjust their resources upon demand, Resources can be allocated or returned to the pool depending on the current needs. This flexibility results in the elasticity property. 10, Price-based Utilities : Cloud computing uses an economical model based in “pay what you use". The exact price of processing may be different for different services, For example, a software provider may rent a VM ina hour basis, while other may charge the service by the number of clients served. Although services priced by-use may reduce client's costs, they introduce difficulties in the management of the whole operation. 2.2 Pros and Cons of Virtualization 2.2.1 Pros of Virtualization 1. It is cheaper : Because virtualization doesn’t require actual hardware components to be used or installed, rr infrastructures find it to be a cheaper system to implement. There is no longer a need to dedicate large areas of space and huge monetary investments to create an on-site resource. Users have to purchase the license or the access from a third-party provider and begin to work, just as ifthe hardware were installed locally. 2. Itkeeps costs predictable : Because third-party providers typically provide virtualization options, individuals and corporations can have predictable costs for their information technology needs. 3 Itreduces the workload : Most virtualization providers automatically update their hardware and software that ‘will be utilized. Instead of sending people to do these updates locally, they are installed by the third-party provider. This allows local IT professionals to focus on other tasks and saves even more money for individuals or corporations. It offers a better uptime : Because of virtualization technologies, uptime has improved dramatically. Some providers offer an uptime that is 99.9999%. Even budget-friendly providers offer uptime at 99.99% today. 5. It allows for faster deployment of resources: Resource provisioning is fast and simple when virtualization is being used. There is no longer a need to set up physical machines, create local networks, or install other information technology components. As long as there is at least one point of access to the virtual environment, it can be spread to the rest of the organization. 6. It promotes digital entrepreneurship : Before virtualization occurred on a large scale, digital entrepreneurship was virtually impossible for the average person. Sites like Fiverr and UpWork make it possible for anyone to set a shingle and begin finding some work to do. 7. It provides energy savings : For most individuals and corporations, virtualization is an energy-efficient system. Because there aren't local hardware or software options being utilized, energy consumption rates can be lowered. Instead of paying for the cooling costs of a data center and the operational costs of equipment, funds can be used for other operational expenditures over time to improve virtualization’s overall ROI. 2.2.2 Cons of Virtualization 1. Itcan have a high cost of implementation : The cost for the average individual or business when virtualization is being considered will be quite low. For the providers of a virtualization environment, however, the impleme devices must either be developed, manufactured, or purchased for implementation, tion costs can be quite high. Hardware and software are required at some point and that means Cloud Computing and Web Services 26 Virtualization 2, Itstill has limitation ‘That means an individual or corporation may require a hybrid system to function properly. This still saves time lot every application or server Is going to work within an environment of virtualization, and money i the long run, but since not every vendor supports virtualization and some may stop supporting it after Initially starting it there is always a level of uncertainty when fully implementing this type of system. W creates @ security risk : Information Is our modern currency. Because data Is crucial to the success of a business, It Is targeted frequently, Just like physical machines, virtual machines also contain a lot of critical, sensitive data such as personal data, user profiles, passwords, license keys, and history. While the risk of data Joss is immense with both physical and virtual machines, the risk Is much greater with virtual machines as itis much easier to move files and images from virtual machines than itis to hack into physical machines via network links.Many images and snapshots are captured by virtual machines in order to deploy or restore system restore and they can be prone to data theft 4 Itcreates an availability issue : If an organization cannot connect to their data for an extended period of time, ‘hey will struggle to compete in their industry. And, since availability is controlled by third-party providers, the ability to stay connected in not in one's control with virtualization. 5. It creates a scalability issue : Virtualization enables rapid creation and addition of new virtual machines Without total automation, this dynamic growth capacity can destabilize security management activities such as system configuration and updates, resulting in vulnerability to security incidents. 6, Itrequires several links in a chain that must work together cohesively : If you have local equipment, then you are in full control of what you can do. With virtualization, you lose that control because several links must work together to perform the same task. Consider the example of saving a document file. With a local storage device, like a flash drive or HDD, you can save the file immediately and even create a backup. Using virtualization, your ISP connection would need to be valid. Your LAN or Wi-Fi would need to be working. Your online storage option would need to be available. If any of those are not working, then you're not saving that file, 7, Ittakes time : Although you save time during the implementation phases of virtualization, it costs users time over the long-run when compared to local systems, That is because there are extra steps that must be followed to generate the desired result. 2.3 _ Virtualization using KVM + KVM is short for Kernel-based Virtual Machine, and currently it has developed one of the most popular Virtual Machines in the world. KVM is a full virtualization solution for Linux on x86 hardware containing virtualization extensions (Intel VT or AMD-V). + It consists of a loadable kernel module, Kvmko, that provides the core virwalization infrastructure and a processor specific module, kvm-intel.ko or kvm-amd.ko. KVM also requires a modified QEMU although work is “underway to get the required changes upstream, a + Using KVM, one can run multiple virtual machines running unmodified Linux or Windows images. Each virtual machine has private virtualized hardware: a network card, disk, graphics adapter, etc. With KVM, multiple virtual machines can run under the unmodified Linux or Win-dows images. Every single virtual machine has its own virtualized hardware, containing network interface card (NIC), storage devices, graphical user interface (CUI), ete. (Red Hat, Ine, 2016). Tec ‘Cloud Computing and Web Servie Compared with VMware and Hyper-V, KVM is open source softwar in mainline Linux, in 2.6.20 and has since been fixed as a part of the kernel. (Red Hat, Inc. 2016.) Benefits of using KVM : 1. Itsupport for any kind of guest OS. 2. iMicient code, 3. KVM is open source and flexible. 4 User doesn’t have to pay for license. 2.4 _ Creating Virtual Machine | 2.4.1 To create a Virtual Machine using VMware Workstation 1. Launch VMware Workstation, 2. Click New Virtual Machine. 43. Select the type of virtual machine you want to create and click Next: [Note : Your choice depends partially on the hardware version you want your virtual machine to have. For more information, |_____see Virtual machine hardware versions (1003746) + Custom : This gives you an option to create a virtual machine and choose its hardware compatibility. You cy) choose from Workstation 14x, Workstation 12x, Workstation 11x, Workstation 10x, Workstation 9, Workstation 8.x, Workstation 6.5 -7.x, Workstation 6, Workstation 5 and Workstation 4. ‘+ Typical :This creates a virtual machine which has the same hardware version as the version of Workstation ye are using, Ifyou are using Workstation 8.x, it creates a virtual machine with hardware version 8. If you ae us Workstation 6.5.x or 7.x, a virtual machine with hardware version 7 is created. 1. Click Next. 2. Select your guest operating system (OS), then click Next. You can install the OS using : (An installer disc (CD/DVD) (1). An installer disc image file (150) (Click Next (ii) Enter your Product Key. (iii) Create a user name and password. (iv) Click Next. (v) Entera virtual machine name and specity a location for virtual machine files to be saved, click Next. (vi) Establish the virtual machine's disk size, select whether to store the virtual disk as a single file or s the virtual disk into 2GB files, click Next. (vii) Verify the other configuration settings for your virtual machine. + Memory : Change the amount of memory allocated to the virtual machine. + Processors : Change the number of process umber of cores per processor, and the virtualization engine — __ Tel oy

You might also like