Your SlideShare is downloading. ×
Cloud computing writeup
Upcoming SlideShare
Loading in...5

Thanks for flagging this SlideShare!

Oops! An error has occurred.


Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

Cloud computing writeup


Published on

  • Be the first to comment

  • Be the first to like this

No Downloads
Total Views
On Slideshare
From Embeds
Number of Embeds
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

No notes for slide


  • 1. CLOUD COMPUTING VIJAYA KUMAR S. M.Sc. (Computer Application), Roll No: 4864 I.A.S.R.I., Library Avenue, New Delhi-110012 Abstract Cloud computing is the metaphor to the internet and it is a recent technology whose aim is to deliver IT services on demand on pay per usage basis to the masses. The essential key characteristics of cloud computing providers are scalability, availability, reliability, flexibility, security and serviceability etc. Clouds can be classified into three types, Public, Private and Hybrid clouds as per the deployment model. According to services provided by the cloud computing it is categorised into Infrastructure as a Service (IaaS), Platform as a Service (PaaS) and Software as a Service (SaaS). IaaS supports operations, including storage, hardware, servers and networking components. The service provider owns the equipment and is responsible for housing, running and maintaining it E.g. AWS, IBM etc. PaaS is the second model in cloud computing which acts as an intermediate between IaaS and SaaS by giving support to the IaaS to avail the services of SaaS to the end users. Platform as a Service (PaaS) is an application development and deployment platform delivered as a service to the developers over the web, e.g. Google Apps Engine, Windows Azure. Third model is SaaS where users simply make use of a web-browser to access software that others have developed and offer as a service over the web. At the SaaS level, users do not have control or access to the underlying infrastructure being owned by the host. SaaS is service model where application services are delivered over the network on a subscription and on-demand basis e.g. Google Docs, etc. Benefits of cloud computing is reduction of capital investment, automated update of the services, pay per use, more storage and mobility. The main demerits are dependent on internet connections, abiding of service provider rules and regulation at any cost and security implications. Keywords: Cloud computing, IaaS, PaaS, SaaS, Google Apps Engine, Windows Azure
  • 2. Cloud Computing 1. Introduction With the significant advances in Information and Communications Technology (ICT) over the last half century, there is an increasingly perceived vision that computing will one day be the 5th utility (after water, electricity, gas and telephony). This computing utility, like all other four existing utilities, will provide the basic level of computing services that is considered essential to meet the everyday needs of the general community. To deliver this vision, a number of computing paradigms have been proposed, of which the latest one is known as ‘Cloud Computing’. Cloud computing is a recent technology trend whose aim is to deliver on demand IT resources on a pay per usage basis. Previous trends were limited to a specific class of users, or focused on making available on demand a specific IT resource for computing. Cloud computing is oriented to provide services to the masses, ranging from the end user which hosts its personal documents on the Internet, to enterprises outsourcing their entire IT infrastructure to the external data centres. Everyone has an opinion on what is cloud computing. It can be the ability to rent a server or a thousand servers and run the application on the most powerful systems available anywhere. It can be the ability to rent a virtual server, load software on it, turn it on and off at will, or clone it ten times to meet a sudden workload demand. It can be storing and securing immense amounts of data that is accessible only by authorized applications and users. 1.1 Definition The term ‘cloud’ is not at all new to the computing community. For many years, ‘cloud’ is being used as a symbol in typical network diagrams to refer to the internet or the components of the network which are managed outside the environment of any IT organization. Even though cloud computing has started taking shape in very recent years, some computer scientist has given the clear cut definition about the cloud computing some of them are follows: Gartner (2008), defines Cloud computing as "a style of computing where massively scalable IT- enabled capabilities are delivered 'as a service' to external customers using Internet technologies." “Common, Location-independent, Online Utility that is available on Demand” (Chan, 2009). Brown (2009), defines cloud computing as, a data-processing infrastructure in which the application software—and often the data itself—is stored permanently not on your PC but rather a remote server that’s connected to the Internet. An emerging model of computing where machines in large data centers can be dynamically provisioned, configured, and reconfigured to deliver services in a scalable manner, for needs ranging from scientific research to video sharing to e–mail (Jaeger, et al., 2009).
  • 3. Finally the most accepted definition of cloud computing is given by the National Institute of Standards and Technology (NIST). Cloud computing is a model for enabling convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction. Cloud services can be illustrated in the Figure 1 given below: In the below diagram middleware is the interface between the cloud vendors and the end users. The middleware can either be cloud operating platform or storage or service etc. For e.g. Windows Azure gives the services as Platform to deploy the application to the application developers. Similarly, IBM Cloud gives the Infrastructure by giving the storage and Google Apps gives Software services like Apps, Gmail, Calendar etc. to the end users. In cloud computing environment users may be the commercial IT Company or non commercial government department or may be individuals. Figure 1. Cloud Services 2. Need for cloud computing 2.1 Innovate to Survive The companies like Google, Hotmail and Yahoo sustained through the dotcom burst. They began innovating further to attract more number of users. Cloud computing has its roots in the strategies adopted by these internet giants. Most of these internet companies would face unpredictable demand in seasonality due to the very nature of their operations. These vendors needed to ensure
  • 4. optimum response time even at the highest hit-rate. To achieve this, these vendors went on expanding their infrastructural capacity by adopting cloud technology. 2.2 Generalize to Proliferate In this Internet era, generalising one’s own innovation is very easy. In early days of computing evolution, technology companies such as IBM provides newer technologies and sell it at a premium cost after securing its intellectual property rights over that technology. On the contrary some web service providers innovated their technologies and used for their own business use, later which would be bundled and make it available to the public at an affordable price. E.g. Google offers Google Apps Engine platform to deploy up to ten application with free of cost, and Amazon offers software development and database storage management services etc. The necessity of the cloud computing can be explained by taking an example. Let’s say there is an executive at a large corporation. His/her particular responsibilities include making sure that all of his/her employees have the right hardware and software they need to do their jobs. Buying computers for everyone isn't enough – He/she also has to purchase software or software licenses to give employees the tools they require. Whenever executive have a new hire, he/she has to buy more software or make sure your current software license allows another user. This would increase the capital investment furthermore. Instead of installing a suite of software for each computer, we'd only have to load one application. That application would allow workers to log into a Web-based service which hosts all the programs the user would need for his or her job. Remote machines owned by another company would run everything from e-mail to word processing to complex data analysis programs. It's called cloud computing, and it could change the entire computer industry. The noticeable example of cloud computing in our day today life is e-mail. We have an e-mail account with a Web-based e-mail service like Hotmail, Yahoo! Mail or Gmail, then we've had some experience with cloud computing. Instead of running an e-mail program on our computer, we log in to a Web e-mail account remotely. The software and storage for your account doesn't exist on our computer -- it's on the service's computer cloud. It's called cloud computing because the data and applications exist on a "cloud" of Web. 3. Essential characteristics of the cloud environment 3.1 Scalability Applications designed for cloud computing need to be scaled with workload demands so that performance with service levels remains on target. In order to achieve this, applications and their data must be loosely coupled to maximize scalability. 3.2 Reliability Reliability means that applications do not fail and most importantly the data should not lose. The way that architecture addresses this characteristic today is to design applications so that it should continue to operate and user’s data remains intact despite the failure of one or more of the servers or virtual machines onto which service provider decomposed.
  • 5. 3.3 Security Applications need to provide access only to authorized, authenticated users, and those users need to be able to trust that their data is secure. This is true whether the application helps individual users on the Internet prepare their tax returns, or whether the application exchanges confidential information between a company and its suppliers. Security in today’s environments is established using strong authentication, authorization, and accounting procedures, establishing security of data at rest and in transit, locking down networks, and hardening operating systems, middleware, and application software. 3.4 Flexibility and agility These characteristics are increasingly important, as business organizations find themselves having to adapt even more rapidly to changing business conditions by increasing the velocity at which applications are delivered into customer hands. Cloud computing stresses getting applications to market very quickly by using the most appropriate building blocks to get the job done rapidly. 3.5 Serviceability Once an application is deployed, it needs to be maintained and updated as a dew course. Without disrupting the service availability and security, to the customer, cloud provider should update or even replace the application’s infrastructure components if it demands. 3.6 Efficiency An application should deploy in the cloud quickly and easily, as we moves our service on pay per basis. 3.7 Ubiquitous network access Availability of the network and it should be accessed through standard mechanisms that promote use by heterogeneous clients. 3.8 Location-independent resource pooling It is no matter where we are residing, and where we are accessing the data. The data should be available when we require it and should be accessed in independent of location. The customer generally has no control or knowledge over the exact location of the provided resources but may be able to specify location at a higher level of abstraction (e.g., country, state, or data centre). Examples of resources include storage, processing, memory, network bandwidth, and virtual machines. 3.9 Measured service Resource usage can be monitored, controlled, and reported by providing transparency of the utilized service for both the provider and consumer.
  • 6. 4. Types of clouds Cloud model is categorized into three types as Public, Private and Hybrid clouds according to the users as per deployment model. 4.1 Public Clouds Public clouds are run by third parties, and applications from different customers are likely to be stitched together on the cloud’s servers, storage systems and networks. Public clouds are most often hosted away from customer premises, and they provide a way to reduce customer risk and cost by providing a flexible, even temporary extension to enterprise infrastructure. If a public cloud is implemented with performance, security and data locality in mind, the existence of other applications running in the cloud should be transparent to both cloud architects and end users. Figure 2. Public Cloud 4.2 Private clouds The cloud infrastructure is operated solely for an organization. It may be managed by the organization or a third party, and may exist on or off the premises. Private clouds are built for the exclusive use of one client, providing the utmost control over data, security, and quality of service. The company owns the infrastructure and has control over how applications are deployed on it. Private clouds may be deployed in an enterprise data center. Private clouds can be built and managed by a company’s own IT organization or by a cloud provider.
  • 7. Figure 3. Private Cloud 4.3 Hybrid clouds The cloud infrastructure is a composition of two clouds (private and public) that remain unique entities but are bound together by standard technology that enables data and application portability. Hybrid clouds combine both public and private cloud models. Hybrid clouds introduce the complexity of determining how to distribute applications across both a public and private cloud. Hybrid cloud will be suitable for the small data which demands more application processing. If the data is large and it demands less application, then the data will be transferred to the public cloud for processing. Figure 4. Hybrid Cloud
  • 8. 5. Service model of the cloud computing architecture There are three service models in cloud computing architecture a) Infrastructure as a Service(IaaS) b) Platform as a Service(PaaS) c) Software as a Service(SaaS) 5.1 Infrastructure as a service (IaaS) Infrastructure as a Service is a provision model in which an organization outsources the equipment used to support operations, including storage, hardware, servers and networking components. The service provider owns the equipment and is responsible for housing, running and maintaining it. IaaS clouds provide a set of building blocks or basic services, such as virtual servers, data storage and databases. We can stitch these services together into a platform for deploying and running our applications. Infrastructure as a Service is sometimes referred to as Hardware as a Service (HaaS). Some Important Cloud Infrastructure as a Service Provider 5.1.1 Architecture of IaaS The fundamental building block of an infrastructure as a service in the cloud is workload. Workload is the amount of work done by the server with the given amount of resources allocated to it. Those resources encompass processing (CPU & RAM), data (throughput), and networking (latency & throughput). Mostly, cloud workloads are delivered in virtual servers. Workload might be delivered using a single virtual server spanning a variety of physical resources including compute, storage, and networking. A workload can also be an application or part of an application given by the cloud provider. Examples of workloads include: • Transactional Database • Fileserver • Application Server • Web Server A workload can be the one of the above mentioned example. If the workload is transactional database then it provides service in the DBMS(Data Base Management System) if it is a file server then it will provides the document related applications, application server will provide the on-demand request in the analysis of data, and web server gives services as web services related application.
  • 9. A database may require large amounts of CPU & RAM, fast storage, and low latency networking, while an application server might require large amounts of CPU & RAM only. Web servers need very little resources other than networking. Requesting and accessing services Step 2 Step 1 Figure 5. Infrastructure as aService Architecture IaaS is entirely based on the server virtualization concept, as the IaaS provides the vast variety of services. In figure 5 the request made by the Users directly ( In step 1)to the IaaS provider for any application with in the service limit of IaaS cloud, the host will allow to access the services to the user. This application will be running on the VM of the host. In the second step application developer stands as a middle man for the end user to access the services from the IaaS provider and serve back to the user what they demands. In IaaS, user can access the services directly or indirectly to the IaaS provider. IaaS gives users more flexibility than PaaS as it allows the user to deploy any software which they demands. Amazon Web Services’ EC2 and S37 are very popular IaaS examples. 5.1.2 In the IaaS cloud architecture there are five important components which controls the entire IaaS Architecture I. Cloud Controller (CLC) II. Cluster Controller(CC) III. Node Controller (NC) IV. Walrus (W) V. Storage Controller (SC)
  • 10. I .Cloud Controller (CLC) Within IaaS cloud, this is the main controller component responsible for managing the entire system. It is the main entry point into the cloud for all users and administrators. All clients will communicate only with the CLC using API. II.Cluster Controller (CC) The controller component within cloud responsible for managing the entire virtual instance network. Requests are communicated to the CC using API. The CC maintains all the information about the Node Controllers that run in the system and is responsible for controlling the life cycle of the instances. III.Node Controller (NC) This controls the host operating system and the corresponding hypervisor (Xen with support for VMware on the horizon e.g. In Eucalyptus). You must run an instance of the NC on each machine that will be hosting the actual virtual instances instantiated upon request from a CC. IV.Walrus (W) The controller component that manages access to the storage services within cloud. Requests are communicated to Walrus using API. V.Storage Controller (SC) SC is used for storing and accessing virtual machine images. The VM images can be public or private and are initially stored in compressed and encrypted form. The images are decrypted only when a node needs to start a new instance and requests access to the image. 5.1.3 Topology of a single-cluster cloud installation A single-cluster installation, as shown in Figure 2, will consist of at least two machines: one running the CC, SC, and CLC, and the other one running the NC. We can simplify this even further by combining everything onto a single machine, but we will need hefty machine specifications to pull it off. Figure 4. Single Cluster Cloud Installation
  • 11. 5.1.4 Topology of a multi-cluster cloud installation A multi-cluster installation can situate each of the components (CC, SC, NC, and CLC) on separate machines. This is the preferred way to configure our cloud if we intend to do serious work with it. The multi-cluster installation also gives you the opportunity to significantly enhance performance by selecting machines that complement the type of controller running on it. For instance, we can select a machine with a super-fast CPU for running the CLC. The choice of multiple clusters will result in higher availability and in distribution of load and resources across the clusters. The concept of a cluster is similar to the concept of an availability zone in Amazon EC2. We distribute resources across multiple availability zones so that a failure in one does not affect our application. Figure 7. Multi Cluster Cloud Installation Amazon Elastic Compute Cloud (Amazon EC2) is a web service that provides resizable compute capacity in the cloud. It is designed to make web-scale computing easier for developers. Amazon Simple Storage Service (Amazon S3) enables storage in the cloud. 5.2 Platform as a service (PaaS) The next layer after the IaaS in the cloud computing architecture is Platform as a Service (PaaS). This is the layer which acts as an intermediate between IaaS and SaaS by giving support to the IaaS to avail the services of SaaS to the end users. Platform as a Service (PaaS) is an application development and deployment platform delivered as a service to developers over the Web. Marc Andreessen, who coined the phrase “Web as Platform”, once wrote: “platform is a system that can be programmed and therefore customized by outside developers — users — and in that way, adapted to countless needs and niches that the platform’s original developers could not have possibly contemplated, much less had time to accommodate. If you can program it, then it’s a platform. If you can’t, then it’s not.
  • 12. 5.2.1 Architecture of Platform as a service in the cloud computing In Platform as a Service (PaaS), applications are developed using a set of programming languages and tools that are supported by the PaaS provider. PaaS provides users with a high level of abstraction that allows them to focus on developing their applications and not worry about the underlying infrastructure. Just like the SaaS model, users do not have control or access to the underlying infrastructure being used to host their applications at the PaaS level. Google App Engine and Microsoft’s Windows Azure are popular PaaS examples. PaaS provides support the use of the application by many concurrent users, by providing concurrency management, scalability and security. The architecture enables defining the trust relationship between users in security, access, distribution of source code, user (people and device) profiles, interaction and application usage. End user Application Developer PaaS providers offering middleware to the Application developer. Figure 8. Architecture of PaaS As shown in the Fig 8. There are three layers present in the architecture of PaaS. The first layer in architecture is PaaS provider Layer. This layer consists of OS server which may or may not include virtualization technique such as Virtual Machine hypervisor software. The inclusion of virtualization technique will depends upon the capital investment and volume of service given by the PaaS providers. Second layer is Middleware which gives the platform to the application developer to develop the application for their customer (end user). This layer includes application servers and technologies such as service-oriented architecture (SOA), business process management (BPM), user interface (UI) technologies, and identity management. Upon this middleware layer the end users layer resides, where the application developed by the application developers will be accessed by the end users by just giving the request on demand. 5.2.2 Characteristics PaaS typically provide some level of support to ease the creation of user interfaces, either based on standards language such as HTML, JavaScript or Python etc. This platform consists of
  • 13. infrastructure software, and typically includes a database, middleware and development tools. Some PaaS have a specific programming language. Google App Engine  Built on Google infrastructure platform (i.e. No commercially available server operating system).  Choice of either Python or Java run-time for running web applications. Other pre- selected applications are available via services (e.g. Mail, Memcache).  Application development tightly confined to Google’s Software Development Kit (SDK).  Tightly integrated with Google’s web services APIs (e.g. for authenticating users and sending email).  Free quotas for applications limited to: 500MB of persistent storage and CPU width for approximately 5 million page views a month. Microsoft’s Windows Azure  Operates on Microsoft’s virtualized 64-bit Windows Server 2008 operating system.  Support for .NET applications, as well as other third party applications available for the same OS running on a standard server.  Application development tightly integrated with Microsoft’s Visual Studio, in addition to having its own Software Development Kit (SDK).  Fully pay-per-use service for the application developer’s on-demand basis. 5.3 Software as a service (SaaS) In the architectural layer of the cloud computing, this is the last layer where users simply make use of a web-browser to access software that others have developed and offer as a service over the web. At the SaaS level, users do not have control or access to the underlying infrastructure being owned by the host. SaaS is service model where application services are delivered over the network on a subscription and on-demand basis. Google Docs is popular examples that use the SaaS model of cloud computing. Software as a Service (SaaS), also sometimes referred to as Service or Application Clouds. NIST has defined SaaS as the capability provided to the consumer and is the use of the provider’s applications running on a cloud infrastructure and accessible from various client devices through a thin-client interface such as a web browser (e.g., web-based e-mail). The consumer does not manage or control the underlying cloud infrastructure, network, servers, operating systems, storage, or even individual application capabilities, with the possible exception of limited user-specific application configuration settings.
  • 14. 5.3.1 Architecture of SaaS Figure 9. Software as Service Architecture SaaS applications requested by the end user can provide single sign-in authentication through the use of a federation server within the customer's network that interfaces with the customer's own enterprise user-directory service. This federation server has a trust relationship with a corresponding federation server located within the SaaS provider's network. When an end user attempts to access the application, the enterprise federation server authenticates the user locally and negotiates with the SaaS federation server to provide the user with a signed security token, which the SaaS provider's authentication system accepts and uses to grant the user access. The important thing to be noted while designing architecture for SaaS is Multi tenancy. Multitenancy refers to a principle in software architecture where a single instance of the software runs on a (SaaS) vendor's servers, serving multiple client organizations (tenants or users). Multitenancy is often contrasted with a multi-instance architecture where separate software instances (or hardware systems) are set up for different client organizations. In SaaS model, the application or service is deployed from a centralized data center across a network providing access and use on a recurring fee basis. The core value of SaaS is providing access to a commercially available application. This service is different from business process outsourcing (BPO), for instance, where the outsourcing contract encompasses management of entire business processes such as HR or Finance, where the focus of the service is management of the network and servers. The SaaS solution offers the opportunity for companies to select their information technology priorities and then choose from the growing menu of applications now being offered via service providers. An outsourced service can also provide a superior infrastructure with improved business agility and scalability, and rapid deployment. SaaS is generally requires much shorter
  • 15. time to install and implement new software applications to establish new department in the enterprise As SaaS is directly contact with the application user so it involves five types of cost model to be paid by the users to the SaaS provider. I. Subscription-Based Model: Monthly payment is calculated on the software actually used, and includes a commitment as to the actual number of users. Subscriptions are usually written on a per-seat or named user basis. II. Usage-Based Model: Payment is determined by application usage and is typically related to peak or near peak levels of usage. Payment may be tied to the number of CPUs (customers are charged for every computer that runs the hosted application). It may also be a written for number of concurrent users. III. Transaction-Based Model: ASPs that provide online scheduling and similar products sometimes charge customers for each business transaction: purchasing one introductory relational database class is one service; two classes are two services, and so on. IV. Value-Based Model: Premised on the provision of whatever software is needed to achieve business goals, and payment is linked to the achievement of those goals. V. The Fixed-Fee Model: An emerging option, users generally pay a predetermined monthly fee based on number of users supported, which application modules are rented and service and support levels specified by the customer. Though these cost models are for the professional enterprises, Google Apps gives SaaS in free of cost for their range of services. Google Apps is a powerful set of tools and user friendly that Google has bundled together to meet the needs of businesses, schools, government agencies, and other organizations of any size. Gmail: An e-mail app based on Google’s popular Gmail platform. Calendar: A calendar and scheduling app that allows easy collaboration. Talk: Instant messaging, available directly from within Gmail or as a standalone software application. Talk also allows voice calls, voice mail, and file sharing. Docs: A simple, yet powerful, set of word processing, spreadsheet, and presentation apps. The Start Page: An app that you can personalize by adding gadgets to access any or all of the other Google Apps, as well as news, weather reports, entertainment information, and more from one place.
  • 16. 6. Benefits of cloud computing  Upfront infrastructure investment If you have to build a large-scale system it may cost a fortune to invest in hardware (racks, machines, routers, backup power supplies), hardware management (power management, cooling), and operations personnel. In cloud computing, there is no or less fixed cost.  More efficient resource utilization System administrators usually worry about hardware procuring (when they run out of capacity) and better infrastructure utilization (when they have excess and idle capacity). With Cloud Architectures they can manage resources more effectively and efficiently by having the applications request and relinquish resources only what they need (on-demand).  Usage-based costing Utility-style pricing allows billing the customer only for the infrastructure that has been used. The customer is not liable for the entire infrastructure that may be in place. This is a subtle difference between desktop applications and web applications. A desktop application or a traditional client-server application runs on customer’s own infrastructure (PC or server), whereas in a Cloud Architectures application, the customer uses a third party infrastructure and gets billed only for the fraction of it that was used.  Potential for shrinking the processing time Parallelization is the one of the great ways to speed up processing. If one compute-intensive or data intensive job that can be run in parallel takes 500 hours to process on one machine, with Cloud Architectures, it would be possible to spawn and launch 500 instances and process the same job in 1hour. Having available an elastic infrastructure provides the application with the ability to exploit parallelization in a cost-effective manner reducing the total Processing time.  Increased storage Organizations can store more data than on private computer systems with affordable cost.  Highly Automated No longer do IT personnel need to worry about keeping software up to date.  More Mobility Employees can access information wherever they are, rather than having to remain at their desks.
  • 17. 7. Demerits  Depending on third-party to ensure the security and confidentiality of data and information.  Without internet access cloud service is no longer possible.  If the cloud service providers increase the cost for their services then we have to abide their rules and conditions if we had an agreement with them, moreover our data are entangled with them. References: 1. 2. Toby Velte, Anthony Velte, Robert C. Elsenpeter, (2009), Cloud Computing: A Practical Approach, McGraw Hills Publications. 3.,00.html 4. 5. 6. Architectural strategies for cloud computing [online] oud_computing.pdf 7. 8. Introduction to Cloud Computing Architecture, [online] tematicos/teste-dossier-tematico-no-7-cloud-computing/tecnologia/introduction-to- cloud-computing-architecture 9. Cisco Cloud Computing -Data Center Strategy, Architecture, and Solutions, [online] 10. 11. Research Agendas In Cloud Technologies [online] 12. Cloud Architectures [online] 13. Cloud Computing and Emerging IT Platforms: Vision, Hype, and Reality for Delivering Computing as the 5th Utility [online] 14. 15. 16. mputing.pdf 17. 18. 19. 20. 21. 22.