The document discusses Cloud Enabling Technologies, focusing on Service-Oriented Architecture (SOA) and virtualization. SOA is a design pattern for building distributed systems through loosely coupled services, while virtualization allows sharing physical resources among multiple users. It also covers various types of virtualization, including server, desktop, and application virtualization, along with their benefits, features, and Google App Engine as a cloud computing platform.
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0 ratings0% found this document useful (0 votes)
7 views40 pages
Unit 4
The document discusses Cloud Enabling Technologies, focusing on Service-Oriented Architecture (SOA) and virtualization. SOA is a design pattern for building distributed systems through loosely coupled services, while virtualization allows sharing physical resources among multiple users. It also covers various types of virtualization, including server, desktop, and application virtualization, along with their benefits, features, and Google App Engine as a cloud computing platform.
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 40
UNIT IV
CLOUD ENABLING TECHNOLOGIES
Service Oriented Architecture A Service-Oriented Architecture or SOA is a design pattern which is designed to build distributed systems that deliver services to other applications through the protocol. It is only a concept and not limited to any programming language or platform. What is Service? A service is a well-defined, self-contained function that represents a unit of functionality. A service can exchange information from another service. It is not dependent on the state of another service. It uses a loosely coupled, message-based communication model to communicate with applications and other services. Service Connections The figure given below illustrates the service-oriented architecture. Service consumer sends a service request to the service provider, and the service provider sends the service response to the service consumer. The service connection is understandable to both the service consumer and service provider. Service-Oriented Terminologies o Services - The services are the logical entities defined by one or more published interfaces. o Service provider - It is a software entity that implements a service specification. o Service consumer - It can be called as a requestor or client that calls a service provider. A service consumer can be another service or an end- user application. o Service locator - It is a service provider that acts as a registry. It is responsible for examining service provider interfaces and service locations. o Service broker - It is a service provider that pass service requests to one or more additional service providers. Characteristics of SOA o They are loosely coupled. o They support interoperability. o They are location-transparent o They are self-contained. Components of service-oriented architecture Web Services • The Internet is the worldwide connectivity of hundreds of thousands of computers belonging to many different networks. • A web service is a standardized method for propagating messages between client and server applications on the World Wide Web. A web service is a software module that aims to accomplish a specific set of tasks. Web services can be found and implemented over a network in cloud computing. • The web service would be able to provide the functionality to the client that invoked the web service. • A web service is a set of open protocols and standards that allow data exchange between different applications or systems. Web services can be used by software programs written in different programming languages and on different platforms to exchange data through computer networks such as the Internet. In the same way, communication on a computer can be inter- processed. Web services functions It is possible to access it via the Internet or intranet network. XML messaging protocol that is standardized. Operating system or programming language independent. Using the XML standard is self-describing. Web Service Components 1. SOAP (Simple Object Access Protocol) 2. UDDI (Universal Description, Search, and Integration) 3. WSDL (Web Services Description Language) 1. SOAP (Simple Object Access Protocol) SOAP stands for "Simple Object Access Protocol". It is a transport- independent messaging protocol. SOAP is built on sending XML data in the form of SOAP messages. 2. UDDI (Universal Description, Search, and Integration) UDDI is a standard for specifying, publishing and searching online service providers. It provides a specification that helps in hosting the data through web services. UDDI provides a repository where WSDL files can be hosted 3. WSDL (Web Services Description Language) The client implementing the web service must be aware of the location of the web service. If a web service cannot be found, it cannot be used. Second, the client application must understand what the web service does to implement the correct web service. web service work
Features of Web Service
(a) XML-based (b) Loosely Coupled (c) Ability to be synchronous or asynchronous (d) Supports remote procedural calls (e) Supports document exchanges Basics of Virtualization Virtualization is the "creation of a virtual (rather than actual) version of something, such as a server, a desktop, a storage device, an operating system or network resources". In other words, Virtualization is a technique, which allows to share a single physical instance of a resource or an application among multiple customers and organizations. It does by assigning a logical name to a physical storage and providing a pointer to that physical resource when demanded. The machine on which the virtual machine is going to create is known as Host Machine and that virtual machine is referred as a Guest Machine
Basic Types of Virtualization:
Hardware Virtualization. Operating system Virtualization. Server Virtualization. Storage Virtualization. Benefits of Virtualization More flexible and efficient allocation of resources. Enhance development productivity. It lowers the cost of IT infrastructure. Remote access and rapid scalability. High availability and disaster recovery. Pay peruse of the IT infrastructure on demand. Enables running multiple operating systems. Characteristics of Virtualization Increased Security: The ability to control the execution of a guest program in a completely transparent manner opens new possibilities for delivering a secure, controlled execution environment.. Managed Execution: In particular, sharing, aggregation, emulation, and isolation are the most relevant features. Sharing: Virtualization allows the creation of a separate computing environment within the same host. Aggregation: It is possible to share physical resources among several guests, but virtualization also allows aggregation, which is the opposite process. Emulation • In computing, the emulator is a hardware or software that enables one device (named Host) to function like other systems (named Guest). • It is a perfect way to execute the hardware and software in any system. Emulation brings greater overhead, but it also has its benefits. • It is relatively inexpensive, easily accessible and allows us to run programs that have become redundant in the available system. • An emulator changes the CPU instructions required for the architecture and executes it on another architecture successfully. • The emulation systems could be accessed remotely by anyone and are very simpler to use. Without affecting the underlying OS, it is an excellent capacity for embedded and OS development. Without considering the host's capabilities, emulation will usually manage the size of the design under test (DUT). Types of Virtualization Application Virtualization Network Virtualization Desktop Virtualization Storage Virtualization Server Virtualization Data virtualization 1. Application Virtualization: Application virtualization helps a user to have remote access to an application from a server. The server stores all personal information and other characteristics of the application but can still run on a local workstation through the internet. 2. Network Virtualization: The ability to run multiple virtual networks with each having a separate control and data plan. It co-exists together on top of one physical network. It can be managed by individual parties that are potentially confidential to each other. Network virtualization provides a facility to create and provision virtual networks, logical switches, routers, firewalls, load balancers, Virtual Private Networks (VPN), and workload security within days or even weeks. 3. Desktop Virtualization: Desktop virtualization allows the users’ OS to be remotely stored on a server in the data center. It allows the user to access their desktop virtually, from any location by a different machine. 4. Storage Virtualization: Storage virtualization is an array of servers that are managed by a virtual storage system. The servers aren’t aware of exactly where their data is stored and instead function more like worker bees in a hive 5. Server Virtualization: This is a kind of virtualization in which the masking of server resources takes place. Here, the central server (physical server) is divided into multiple different virtual servers by changing the identity number, and processors. So, each system can operate its operating systems in an isolated manner. 6. Data Virtualization: This is the kind of virtualization in which the data is collected from various sources and managed at a single place without knowing more about the technical information like how data is collected, stored & formatted then arranged that data logically so that its virtual view can be accessed by its interested people and stakeholders, and users through the various cloud services remotely. Many big giant companies are providing their services like Oracle, IBM, At scale, C data, etc. Uses of Virtualization Data-integration Business-integration Service-oriented architecture data-services Searching organizational data Implementation levels of Virtualization The main function of the software layer for virtualization is to virtualize the physical hardware of a host machine into virtual resources to be used by the VMs, exclusively. This can be implemented at various operational levels, as we will discuss shortly. • Instruction Set Architecture Level At the ISA level, virtualization is performed by emulating a given ISA by the ISA of the host machine. For example, MIPS binary code can run on an x86-based host machine with the help of ISA emulation. With this approach, it is possible to run a large amount of legacy binary code writ- ten for various processors on any given new hardware host machine. • Hardware Abstraction Level Hardware-level virtualization is performed right on top of the bare hardware. On the one hand, this approach generates a virtual hardware environment for a VM. On the other hand, the process manages the underlying hardware through virtualization. • Operating System Level This refers to an abstraction layer between traditional OS and user applications. OS-level virtualization creates isolated containers on a single physical server and the OS instances to utilize the hard-ware and software in data centers. • Library Support Level Most applications use APIs exported by user-level libraries rather than using lengthy system calls by the OS. Since most systems provide well-documented APIs, such an interface becomes another candidate for virtualization. • User-Application Level Virtualization at the application level virtualizes an application as a VM. On a traditional OS, an application often runs as a process. Therefore, application- level virtualization is also known as process-level virtualization. The most popular approach is to deploy high level language (HLL) VIRTUALIZATION STRUCTURES/TOOLS AND MECHANISMS virtualization, and host-based virtualization. The hypervisor is also known as the VMM (Virtual Machine Monitor). They both perform the same virtualization operations. Hypervisor and Xen Architecture Binary Translation with Full Virtualization Para-Virtualization with Compiler Support 1. Hypervisor and Xen Architecture The hypervisor provides hyper calls for the guest OSes and applications. Depending on the functionality, a hypervisor can assume a micro-kernel architecture like the Microsoft Hyper-V. A) The Xen Architecture Xen is an open source hypervisor program developed by Cambridge University. Xen is a micro-kernel hypervisor, which separates the policy from the mechanism. The Xen hypervisor implements all the mechanisms, leaving the policy to be handled by Domain 0 2. Binary Translation with Full Virtualization Depending on implementation technologies, hardware virtualization can be classified into two cate-gories: full virtualization and host-based virtualization. A) Full Virtualization Full virtualization, noncritical instructions run on the hardware directly while critical instructions are discovered and replaced with traps into the VMM to be emulated by software. Both the hypervisor and VMM approaches are considered full virtualization. B) Binary Translation of Guest OS Requests Using a VMM This approach was implemented by VMware and many other software companies. As shown in VMware puts the VMM at Ring 0 and the guest OS at Ring 1. The VMM scans the instruction stream and identifies the privileged, control- and behavior-sensitive instructions. C) Host-Based Virtualization An alternative VM architecture is to install a virtualization layer on top of the host OS. This host OS is still responsible for managing the hardware. The guest OSes are installed and run on top of the virtualization layer. Dedicated applications may run on the VMs. Certainly, some other applications 3. Para-Virtualization with Compiler Support Para-virtualization needs to modify the guest operating systems. A para- virtualized VM provides special APIs requiring substantial OS modifications in user applications. A) Para-Virtualization Architecture When the x86 processor is virtualized, a virtualization layer is inserted between the hardware and the OS. According to the x86 ring definition, the virtualization layer should also be installed at Ring 0. B) KVM (Kernel-Based VM) This is a Linux para-virtualization system—a part of the Linux version 2.6.20 kernel. Memory management and scheduling activities are carried out by the existing Linux kernel. The KVM does the rest, which makes it simpler than the hypervisor that controls the entire machine. C) Para-Virtualization with Compiler Support The guest OS running in a guest domain may run at Ring 1 instead of at Ring 0. This implies that the guest OS may not be able to execute some privileged and sensitive instructions. The privileged instructions are implemented by hypercalls to the hypervisor. After replacing the instructions with hypercalls, the modified guest OS emulates the behavior of the original guest OS. Virtualization of CPU, Memory & I/O Devices o CPU Virtualization A VM is a duplicate of an existing computer system in which a majority of the VM instructions are executed on the host processor in native mode. Thus, unprivileged instructions of VMs run directly on the host machine for higher efficiency. Hardware-Assisted CPU Virtualization This technique attempts to simplify virtualization because full or para virtualization is complicated. o Memory Virtualization Virtual memory virtualization is similar to the virtual memory support provided by modern operat-ing systems. In a traditional execution environment, the operating system maintains mappings of virtual memory to machine memory using page tables, which is a one-stage mapping from virtual memory to machine memory. All modern x86 CPUs include a memory management unit (MMU) and a translation lookaside buffer (TLB) to optimize virtual memory performance. o I/O Virtualization • I/O virtualization involves managing the routing of I/O requests between virtual devices and the shared physical hardware. • At the time of this writing, there are three ways to implement I/O virtualization: full device emulation, para-virtualization, and direct I/O • Full device emulation is the first approach for I/O virtualization. Generally, this approach emulates well-known, real-world devices. Desktop Virtualization Desktop virtualization creates a software-based (or virtual) version of an end user's desktop environment and operating system (OS) that is decoupled from the end user's computing device or client. This enables the user to access his or her desktop from any computing device. 4 Main Types Of Desktop Virtualization Hosted Virtual Desktops Virtual Desktop Infrastructure Remote Desktop Services Local Desktop Virtualization 1. Hosted Virtual Desktops Many employees in the workforce might be residing in different locations, and workforce management then can be difficult. One of the solutions can be an employee management system. 2. Virtual Desktop Infrastructure Like HVDs, Virtual Desktop Infrastructure, or VDI, allows users to approach their desktop or applications remotely from any device. VDI usually works on the servers by creating a virtual machine to host OS systems, applications, and user information. 3. Remote Desktop Services RDS also helps with remote access. However, it can be easily customized for different needs. RDS users can easily reduce or increase the storage capacity, virtualization, and session management. precisely in 2009, Terminal Services was renamed to Remote Desktop Services powered by Windows Server 2008 R2. 4. Local Desktop Virtualization This model does not operate on a physical machine but generally functions on virtual machines created on the end user’s physical machine. It is an independent OS with software, settings, and files. Server Virtualization Server Virtualization Definition Server virtualization is the process of dividing a physical server into multiple unique and isolated virtual servers by means of a software application. Each virtual server can run its own operating systems independently.
Key Benefits of Server Virtualization:
Higher server ability Cheaper operating costs Eliminate server complexity Increased application performance Deploy workload quicker Advantages of Server Virtualization 1. Independent Restart 2. Low Cost 3. Disaster Recovery 4. Faster deployment of resources 5. Security Disadvantages of Server Virtualization 6. The biggest disadvantage of server virtualization is that when the server goes offline, all the websites that are hosted by the server will also go down. 7. There is no way to measure the performance of virtualized environments. 8. It requires a huge amount of RAM consumption. 9. It is difficult to set up and maintain. 10. Some core applications and databases are not supported virtualization. 11. It requires extra hardware resources. Google App Engine Google App Engine is a cloud computing Platform as a Service (PaaS) which provides Web app developers and businesses with access to Google’s scalable hosting in Google managed data centers and tier 1 Internet service. These applications are required to be written in, namely: Java, Python, PHP, Go, Node.JS, . NET, and Ruby. Google App Engine Environments 1) Standard Environment with constrained environments and support for languages such as Python, Go, node.js 2) Flexible Environment where developers have more flexibility such as running custom runtimes using Docker, longer request & response Features of Google App Engine Language support Flexibility Diagnostics Traffic splitting Security Advantages of Google App Engine Easy to build and use the platform Scalability Various API sets Amazon AWS AWS AWS tutorial provides basic and advanced concepts. Our AWS tutorial is designed for beginners and professionals. AWS stands for Amazon Web Services which uses distributed IT infrastructure to provide different IT resources on demand. What is AWS • AWS stands for Amazon Web Services. • The AWS service is provided by the Amazon that uses distributed IT infrastructure to provide different IT resources available on demand. • Amazon launched AWS, a cloud computing platform to allow the different organizations to take advantage of reliable IT infrastructure. Uses of AWS • A small manufacturing organization uses their expertise to expand their business by leaving their IT management to the AWS. • A large enterprise spread across the globe can utilize the AWS to deliver the training to the distributed workforce. • An architecture consulting company can use AWS to get the high- compute rendering of construction prototype. Pay-As-You-Go Computing Programming models Database storage Networking Federation in the Cloud. • Cloud Federation, also known as Federated Cloud is the deployment and management of several external and internal cloud computing services to match business needs. • It is a multi-national cloud system that integrates private, community, and public clouds into scalable computing platforms. • Federated cloud is created by connecting the cloud environment of different cloud providers using a common standard. The architecture of Federated Cloud: 1. Cloud Exchange 2. Cloud Coordinator 3. Cloud Broker Benefits of Federated Cloud: o It minimizes the consumption of energy. o It increases reliability. o It minimizes the time and cost of providers due to dynamic scalability. o It connects various cloud service providers globally. The providers may buy and sell services on demand. o It provides easy scaling up of resources. Federated Cloud technologies: 1. OpenNebula It is a cloud computing platform for managing heterogeneous distributed data center infrastructures. 2. Aneka coordinator The Aneka coordinator is a proposition of the Aneka services and Aneka peer components (network architectures) which give the cloud ability and performance to interact with other cloud services. 3. Eucalyptus Eucalyptus defines the pooling computational, storage, and network resources that can be measured scaled up or down as application workloads change in the utilization of the software.