throbber
Case 6:20-cv-01152-ADA Document 1-4 Filed 12/16/20 Page 1 of 18
`Case 6:20-cv-01152—ADA Document 1-4 Filed 12/16/20 Page 1 of 18
`
`EXHIBIT4
`EXHIBIT 4
`
`

`

`Case 6:20-cv-01152-ADA Document 1-4 Filed 12/16/20 Page 2 of 18
`
`I 1111111111111111 11111 lllll lllll lllll 111111111111111 11111111111 111111111111
`US008572612B2
`
`c12) United States Patent
`Kern
`
`(10) Patent No.:
`(45) Date of Patent:
`
`US 8,572,612 B2
`Oct. 29, 2013
`
`(54) AUTONOl\llC SCALING OF VIRTUAL
`MACHINES IN A CLOUD COMPUTING
`ENVIRONMENT
`
`(75)
`
`Inventor: Eric R. Kern, 01.apel Hill, NC (US)
`
`(73) Assignee: International Business Machines
`Corporation, Armonk, NY (US)
`
`( * ) Notice:
`
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 483 days.
`
`(21) Appl. No.: 12n60,141
`
`(22) Filed:
`
`Apr. 14, 2010
`
`(65)
`
`Prior Publication Data
`
`US 2011/0258621 Al
`
`Oct. 20, 2011
`
`(51)
`
`(2006.01)
`
`Int.Cl.
`G06F 9/455
`(52) U.S. Cl.
`USPC ................................ 718/1; 717/177; 717/178
`(58) Field of Classification Search
`None
`See application file for complete search history.
`
`(56)
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`7,093,086 Bl
`7,370,164 Bl
`7,502,962 B2 *
`7,802,248 B2
`7,831,600 B2
`7,890,613 B2
`7,917,617 Bl
`8,046,473 B2
`8,060,476 Bl
`2005/0198303 Al
`2006/0085792 Al
`2006/0184936 Al
`2007/0130566 Al
`2007/0208918 Al
`
`8/2006 Rietschote el al.
`5/2008 Nagarkar et al.
`3/2009 Yach et al ....................... 714/21
`9/20 1 0 Broquere et al.
`11/2010 Kilian
`2/2011 Tameshige et al.
`3/2011 Ponnapur et al.
`10/20 I 1 Piper et al.
`11/2011 Afonso et al.
`9/2005 Knauerhase et al.
`4/2006 Traut
`8/2006 Abels ct al.
`6/2007 van Rietschote et al,
`9/2007 Harbin et al.
`
`2007/0244938 Al
`2009/0070771 Al
`2009/0113109 Al
`2009/0138541 Al
`2009/0249284 Al
`2009/0288084 Al
`2009/0293056 Al
`2009/0300076 Al
`2009/0300151 Al
`2010/0037038 Al•
`2010/0042720 Al*
`
`10/2007 Michael et al.
`3/2009 Yuyitung et al.
`4/2009 Nelson et al.
`5/2009 Wing et al,
`10/2009 Antosz et al.
`11/2009 Astete et al.
`11/2009 Ferris
`12/2009 Friedman et al.
`12/2009 Friedman et al.
`2/2010 Bieswanger et al. ......... 712/220
`2/2010 Stienhans et al. ... ........ .. 709/226
`(Continued)
`
`OTHER PUBLICATIONS
`
`"System and apparatus for automatic health monitoring and mainte(cid:173)
`nance of virtual machines", IP.com No. IPCOM000191156D, Dec.
`18, 2009.
`
`(Continued)
`
`Primary Examiner - Camquy Truong
`(74) Attorney, Agent, or Firm - Edward J. Lenart; Cynthia
`G. Seal; Biggers & Ohanian, LLP.
`
`(57)
`
`ABSTRACT
`
`Autonomic scaling of virtual machines in a cloud computing
`environment, the cloud computing environment including
`virtual machines ('VMs'), the VMs installed upon cloud
`computers disposed within a data center, also including a
`cloud operating system and a data center administration
`server operably coupled to the VMs, including deploying, by
`the cloud operating system, an instance of a VM, flagging the
`instance of a VM for autonomic scaling; monitoring, by the
`cloud operating system, one or more operating characteristics
`of the instance of the VM; deploying, by the cloud operating
`system, an additional instance of the VM if a value of an
`operating characteristic exceeds a first predetermined thresh(cid:173)
`old value, including executing a portion of the data processing
`workload on the additional instance of the VM; and terminat(cid:173)
`ing operation of the additional instance of the VM if a value of
`an operating characteristic declines below a second predeter(cid:173)
`mined threshold value.
`
`15 Claims, 5 Drawing Sheets
`
`81st
`
`JltoeoW1.~h,_UW.._EIIIMd9f'Ae.llSt!Qfll:lllllll(l(A
`~~a,.t,m.U.9p«:iulinOIA .... .;m.
`
`...........
`
`011loM --°'""
`
`Adil'li:allll'llliru
`
`"'"'"' "'
`
`

`

`Case 6:20-cv-01152-ADA Document 1-4 Filed 12/16/20 Page 3 of 18
`
`US 8,572,612 B2
`Page 2
`
`(56)
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`20I0/0106885 Al
`2010/0107158 Al
`2010/0115332 Al
`2010/0131324 Al
`2010/0205304 Al
`2010/0211829 Al
`2010/0241896 Al
`2010/0293409 Al
`2010/0306379 Al•
`2010/0306382 Al
`2011i0010515 Al
`2011/0022695 Al
`201 l/0022812 Al
`2011/0060832 Al
`2011/0072208 Al
`20 lliO 126275 Al
`20lli0179l 76 Al
`2011/0208908 Al
`201 l/0231696 Al
`
`4/2010 Gao et al.
`4/2010 Chen et al.
`5/2010 Zheng et al.
`5/2010 Ferris
`8/2010 Chaturvedi et al.
`8/2010 Ziskindctal.
`9/2010 Brown et al.
`11/2010 Machida
`12/2010 Ferris ... ......................... 709/226
`12/20 IO Cardosa et al.
`1/2011 Ranade
`1/2011 Dalal et al.
`1/2011 Van der Linden et al.
`3/2011 Govil et al.
`3/2011 Gulati et al.
`5/2011 Anderson et al.
`7/2011 Ravichandran et al.
`8/2011 Chou et al.
`9/2011 Ji et al.
`
`9/2011 Zlati et al.
`20 ll/0231698 Al
`9/2011 Kem
`2011/0238803 Al
`10/2011 Kern
`20 I 1/0246627 Al
`OTHER PUBLICATIONS
`
`Kangarlou et al., "VNsnap: taking snapshots of virtual networked
`environments with minimal downtime", IEEEIIFIP International
`Conference on Dependable Systems & Networks, 2009.
`Office Action, U.S . Appl. 121730,402, Dec. l , 2011 .
`Notice of Allowance, U.S. Appl. No. 121730,402, Apr. 16, 2012.
`Office Action, U.S. Appl. No . 12/752,762, May 31, 2012.
`Office Action, U.S. Appl. No. 12/752,322, May 16, 2012.
`Lagar-Cavilla et al., "SnowFlock: rapid virtual machine cloning for
`cloud computing", 2009, in Proceedings of the 4'" ACM European
`conference on Computer systems (EUroSys '09). ACM, New York,
`NY, USA, 1-12.
`Office Action, U.S. Appl. No. 12/759,976, Aug. 28, 2012.
`Office Action, U.S.Appl. No. 12/760,141, Jul. 10, 2012.
`Final Office Action, U.S. Appl. No. 12/785,322, Aug. 29, 2012.
`Final Office Action, U.S. Appl. No. 12/752,762, Oct. 29, 2012.
`OfficeAclion, U .S. Appl. No. 12/760,141 , Dec. 10, 2012.
`Office Action, U .S. Appl. No. 12/759,976, Mar. 20, 2013.
`
`* cited by examiner
`
`'
`
`

`

`Case 6:20-cv-01152-ADA Document 1-4 Filed 12/16/20 Page 4 of 18
`
`U.S. Patent
`
`Oct. 29, 2013
`
`Sheet 1 of 5
`
`US 8,572,612 B2
`
`-,-··----~-~---·---·---- ···- -··
`
`:(~
`
`VM Template
`11.6.
`
`' ' ' ' ' ' ' ' ' '
`
`••• . •• - -- --- -- •••• !a,. •• -- - -- --
`
`.
`
`'
`' '
`
`Deployment
`VM
`Engine
`Catalog
`I VM Record 202 l
`176
`1aQ
`......................................................•............................. •'
`
`Template,
`User Spec
`182
`
`UUID,
`Address
`184
`
`Cloud Computer .11Q
`
`RAM 168
`
`VM 102
`
`I Application m I
`I UUID 12Q I
`I Network Address izal
`IVMAgent ml
`joperaling System iM:I
`
`Hypervisor 164
`
`Callout ill
`
`CPU
`~
`
`~
`
`Bus
`Adapter
`~
`
`Comm.
`Adapter
`.1fil
`
`•
`rsonal
`mputer ::::::::: •• :
`FIG.1
`
`

`

`Case 6:20-cv-01152-ADA Document 1-4 Filed 12/16/20 Page 5 of 18
`
`U.S. Patent
`
`Oct. 29, 2013
`
`Sheet 2 of 5
`
`US 8,572,612 B2
`
`Receive, Through A User Interface Exposed By A Self Service Portal Of A
`Cloud Operating System, User Specifications Of A VM 302
`
`Deploy, By The Cloud Operating System, An Instance Of The VM 304
`
`Flag The Instance Of The VM For Autonomic Scaling 306
`
`Store, In The Cloud Operating System In Association With An
`Identifier Of The Instance Of A VM, Predetermined Threshold
`Values Of Operating Characteristics, Including Threshold Values
`For Processor Utilization And For Memory Utilization 308
`
`Execute A Data Processing Wor1doad On The Instance Of A VM llQ.
`
`Monitor, By The Cloud Operating System, One Or More
`Operating Characteristics Of The Instance Of The VM
`312
`
`VM Record 202
`
`VM Identifier 204
`Boolean Scalable 2Q§
`CPU Up Threshold 208
`CPU On Threshold 210
`Mem Up Threshold 212
`Mem On Threshold fil
`
`Value Of
`Operating
`Characteristic
`314
`
`---
`
`No:
`Continue
`- -~
`Monitoring
`326
`
`Terminate Operation OfThe
`Additional Instance Of The VM
`336
`
`First
`Predetermined
`Threshold
`Value 316
`
`Yes 322------.
`
`Second
`Predetermined
`Threshold
`Value~
`
`Deploy An Additional
`Instance OfThe VM
`332
`
`Execute A Portion
`Of The Data
`Processing
`Workload On The
`Additional Instance
`OfTheVM
`334
`
`----ontinue Monitoring 3311-.......__ ______________ __. FIG. 2
`
`

`

`Case 6:20-cv-01152-ADA Document 1-4 Filed 12/16/20 Page 6 of 18
`
`U.S. Patent
`
`Oct. 29, 2013
`
`Sheet 3 of 5
`
`US 8,572,612 B2
`
`Receive, Through A User Interface Exposed By A Self
`Service Portal Of A Cloud Operating System, User
`Specifications Of A VM 302
`
`User
`Specifications
`174
`
`Deploy, By The Cloud Operating System, An Instance Of The VM ~
`
`Flag The Instance Of The VM For Autonomic Scaling 306
`
`Execute A Data Processing Workload On The Instance Of A VM filQ,
`
`Pass User Specifications To The Deployment Engine 340
`
`Implement And Pass To The Data Center Administration Server A
`VM Template With The User Specifications 342
`
`Call A Hypervisor On A Cloud Computer To Install The VM Template
`As An Instance Of A VM On The Cloud Computer 344
`
`Monitor, By The Cloud Operating System, One Or More
`Operating Characteristics Of The Instance Of The VM
`312
`
`Threshold
`Value 316
`
`>----Yes 322---~
`
`--- No:
`
`Continue
`Monitoring
`326
`
`Threshold
`Value 328
`
`Yes 330
`
`Terminate Operation Of The
`Additional Instance Of The VM
`336
`
`Deploy An Additional
`Instance Of The VM
`332
`
`Execute A Portion
`Of The Data
`Processing
`Workload On The
`Additional Instance
`Of The VM
`334
`
`ontinue Monitoring 333_...._ _______________ _, FIG. 3
`
`

`

`Case 6:20-cv-01152-ADA Document 1-4 Filed 12/16/20 Page 7 of 18
`
`U.S. Patent
`
`Oct. 29, 2013
`
`Sheet 4 of 5
`
`US 8,572,612 B2
`
`Receive, Through A User Interface Exposed By A Self
`Service Portal Of A Cloud Operating System, User
`Specifications Of A VM 302
`
`User
`Specifications
`174
`
`Monitor, By The Cloud Operating System, One Or More
`Operating Characteristics Of The Instance Of The VM
`312
`
`Deploy, By The Cloud Operating
`System, An Instance OfThe VM
`304
`
`Operating
`Value 314
`
`---
`
`No:
`Continue
`Monitoring
`326
`
`Terminate Operation Yes 330
`Of The Additional
`Instance Of The VM
`336
`
`Threshold
`Value 316
`
`Yes 322------,
`
`Threshold
`Value 328
`
`Deploy An Additional Instance Of The VM
`332
`
`Continue Monitoring 338
`
`Execute A Portion Of The Data Processing Workload On The
`Additional Instance Of The VM 334
`
`Pass User Specifications To The Deployment Engine 346
`
`Implement And Pass To The Data Center Administration
`Server With The User Specifications A Same VM Template
`Used To Deploy A Previous Instance OfThe VM 348
`
`Call A Hypervisor On A Cloud Computer To Install The Same
`VM Template As An Additional Instance Of The VM On The
`Cloud Computer 350
`
`ontinue Monitoring 330--------------
`
`FIG.4
`
`

`

`Case 6:20-cv-01152-ADA Document 1-4 Filed 12/16/20 Page 8 of 18
`
`U.S. Patent
`
`Oct. 29, 2013
`
`Sheet 5 of 5
`
`US 8,572,612 B2
`
`Receive, Through A User lntertace Exposed By A Self
`Service Portal Of A Cloud Operating System, User
`Specifications Of A VM 302
`
`User
`Specifications
`174
`
`Monitor, By The Cloud Operating System, One Or More
`Operating Characteristics Of The Instance Of The VM
`312
`
`Deploy, By The Cloud Operating
`System, An Instance Of The VM
`304
`
`Threshold
`Value 316
`
`Yes 322'----
`
`No:
`Continue
`1------
`- -<
`Monitoring
`326
`
`Yes 330
`
`Threshold
`Value 328
`
`Deploy An Additional
`Instance OfThe VM
`332
`
`Terminate Operation Of The Additional Instance Of The VM
`336
`
`Transmit, By The Self Service Portal To The Data Center
`Administration Server, An Instruction To Terminate The
`Additional Instance OfThe VM 352
`
`I -
`
`Call, By The Data Center Administration Server, A Hypervisor
`On A Cloud Computer To Terminate Operation Of The
`Additional Instance Of The VM On The Cloud Computer 354
`
`i....
`
`-~ -ontinue Monitoring 338:---.&...--------------.....1
`FIG. 5
`
`

`

`Case 6:20-cv-01152-ADA Document 1-4 Filed 12/16/20 Page 9 of 18
`
`US 8,572,612 B2
`
`1
`AUTONOMIC SCALING OF VIRTUAL
`MACHINES IN A CWUD COMPUTING
`EWIRONMENT
`
`BACKGROUND OF THE INVENTION
`
`2
`operating characteristic exceeds a first predetermined thresh(cid:173)
`old value, including executing a portion of the data processing
`workload on the additional instance of the VM; and tenninat(cid:173)
`ing operation of the additional instance of the VMif a value of
`5 an operating characteristic declines below a second predeter(cid:173)
`mined threshold value.
`The foregoing and other objects, features and advantages
`of the invention will be apparent from the following more
`particular descriptions of exemplary embodiments of the
`10 invention as illustrated in the accompanying drawings
`wherein like reference numbers generally represent like parts
`of exemplary embodiments of the invention.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`FIG. 1 sets forth functional block diagrams of example
`apparatus that carries out autonomic scaling of virtual
`machines in a cloud computing environment according to
`embodiments of the present invention.
`FIGS. 2-5 set forth flowcharts illustrating example meth(cid:173)
`ods of autonomic scaling of virtual machines in a cloud com(cid:173)
`puting environment according to embodiments of the present
`invention.
`
`DETAILED DESCRIPTION OF EXEMPLARY
`EMBODIMENTS
`
`1. Field of the Invention
`The field of the invention is data processing, or, more
`specifically, methods, apparatus, and products for autonomic
`scaling of virtual machines in a cloud computing environ(cid:173)
`ment.
`2. Description of Related Art
`The development of the EDVAC computer system of 1948
`is often cited as the beginning of the computer era. Since that
`time, computer systems have evolved into extremely comp Ii- 15
`cated devices. Today's computers are much more sophisti(cid:173)
`cated than early systems such as the EDVAC. Computer sys(cid:173)
`tems typically include a combination of hardware and
`software components, application programs, operating sys(cid:173)
`tems, processors, buses, memory, input/output devices, and 20
`so on. As advances in semiconductor processing and com(cid:173)
`puter architecture push the performance of the computer
`higher and higher, more sophisticated computer software has
`evolved to take advantage of the higher performance of the
`hardware, resulting in computer systems today that are much 25
`more powerful than just a few years ago.
`One of the areas of technology that has seen recent
`advancement is cloud computing. Cloud computing is
`increasingly recognized as a cost effective means of deliver(cid:173)
`ing information technology services through a virtual plat- 30
`form rather than hosting and operating the resources locally.
`Modem clouds with hundred or thousands of blade servers
`enable system administrators to build highly customized vir(cid:173)
`tual machines to meet a huge variety of end user require(cid:173)
`ments. Many virtual machines, however, can reside on a 35
`single powerful blade server. Cloud computing has enabled
`customers to build virtualii.ed servers on hardware over
`which they have absolutely no control. Deploying an appli(cid:173)
`cation in a cloud computing environment simplifies the over-
`all solution because the hardware becomes abstracted behind 40
`the cloud infrastructure. 1be end user, however, loses all
`control over the underlying hardware infrastructure including
`particularly a loss of control over scaling the number of
`virtual machines running an application. In a cloud environ(cid:173)
`ment scaling of an application is currently carried out manu- 45
`ally by a system administrator-only when end users report
`performance degradation. This technique is slow and com(cid:173)
`plex, and it inherently risks a user's experiencing a poor
`quality of service.
`
`'Scaling,' as the term is used here, refers to a desirable
`feature of a cloud computing environment in which the envi(cid:173)
`ronment gracefully handles varying workloads, either
`increasing or decreasing. The notion of grace here refers to
`the ability of the environment to adapt to varying workloads
`transparently, smoothly, and with a minimum of difficulty for
`users of the data processing service provided by such a cloud
`computing environment. 'Autonomic' refers to an ability for
`a cloud computing environment to manage its own operations
`with little or no governance by hand from any user or system
`administer. 'Autonomic scaling' therefore refers to an ability
`of a cloud computing environment to manage its own scaling
`operations with little or no governance by hand from any user
`or system administer. This paper describes autonomic scaling
`in the sense of adding and removing instances of virtual
`machines and their data processing applications as data pro(cid:173)
`cessing workload increases and decreases within a cloud
`computing environment.
`Example methods, apparatus, and products for autonomic
`scaling of virtual machines in a cloud computing environment
`according to embodiments of the present invention are
`described with reference to the accompanying drawings,
`50 beginning with FIG. 1. PIG. 1 sets forth a functional block
`diagram of apparatus that carries out autonomic scaling of
`virtual machines in a cloud computing environment accord(cid:173)
`ing to embodiments of the present invention. The apparatus in
`the example of FIG. 1 implements a cloud computing envi(cid:173)
`ronment (192) that includes virtual machine ('VMs') (102,
`104), where each VM is a module of automated computing
`machinery installed upon a cloud computer (109, 106) dis(cid:173)
`posed within a data center (128).
`The cloud computing environment (192) is a network(cid:173)
`based, distributed data processing system that provides one or
`more cloud computing services. Although shown here, for
`convenience of explanation, with only a few cloud computers
`(106, 109) in the cloud computing environment, such a cloud
`computing environment typically includes, as a practical mat-
`ter, many computers, hundreds or thousands of them, dis(cid:173)
`posed within one or more data centers, with the cloud com-
`puters typically implemented in the blade form factor. Typical
`
`SUMMARY OF THE INVENTION
`
`Methods, apparatus, and computer program products for
`autonomic scaling of virtual machines in a cloud computing
`environment, the cloud computing environment including a 55
`plurality of virtual machines ('VMs'), the VMs composed of
`modules of automated computing machinery installed upon
`cloud computers disposed within a data center, the cloud
`computing environment also including a cloud operating sys(cid:173)
`tem and a data center administration server operably coupled 60
`to the VMs, including deploying, by the cloud operating
`system, an instance of a VM, including flagging the instance
`of a VM for autonomic scaling and executing a data process(cid:173)
`ing workload on the instance of a VM; monitoring, by the
`cloud operating system, one or more operating characteristics 65
`of the instance of the VM; deploying, by tl1e cloud operating
`system, an additional instance of the VM if a value of an
`
`

`

`Case 6:20-cv-01152-ADA Document 1-4 Filed 12/16/20 Page 10 of 18
`
`US 8,572,612 B2
`
`3
`examples of cloud computing services include Software as a
`Service ('SaaS') and Platform as a Service ('PaaS'). Saas is
`a model of software deployment in which a provider licenses
`an application to customers for use as a service on demand.
`SaaS software vendors may host the application on their own 5
`clouds or download such applications from clouds to cloud
`clients, disabling the applications after use or after an on(cid:173)
`demand contract expires.
`PaaS is the delivery from a cloud computing environment
`of a computing platform and solution stack as a service. PaaS 10
`includes the provision of a software development platform
`designed for cloud computing at the top of a cloud stack. PaaS
`also includes workflow facilities for application design,
`application development, testing, deployment and hosting as
`well as application services such as team collaboration, web 15
`service integration and marshalling, database integration,
`security, scalability, stomge, persistence, state management,
`application versioning, application instrumentation and
`developer community facilitation. These services are provi(cid:173)
`sioned as an integrated solution over a network, typically the 20
`World Wide Web ('web') from a cloud computing environ(cid:173)
`ment. Taken together, Saas and PaaS are sometimes referred
`to as 'cloudwarc.'
`In adclition to SaaS and PaaS, cloud computing services
`can include many other network-based services, such as, for 25
`example, utility computing, managed services, and web ser(cid:173)
`vices. Utility computing is the practice of charging for cloud
`services like utilities, by units of time, work, or resources
`provided. A cloud utility provider can, for example, charge
`cloud clients for providing for a period oftin1e certain quan- 30
`tities of memory, I/0 support in units ofbytes transferred, or
`CPU functions in units of CPU clock cycles utilized.
`Managed services implement the transfer of all manage(cid:173)
`ment responsibility as a strategic method for improving data
`processing operations of a cloud client, person or organi7,a- 35
`tion. The person or organization that owns or has direct over(cid:173)
`sight of the organization or system being managed is referred
`to as the offerer, client, or customer. The person or organiza(cid:173)
`tion that accepts and provides the managed service from a
`cloud computing environment is regarded as a managed ser- 40
`vice provider or 'MSP.' Web services are software systems
`designed to support interoperable machine-to-machine inter(cid:173)
`action over a network of a cloud computing environment.
`Web services provide interfaces described in a machine(cid:173)
`processable format, typically the Web Services Description 45
`Language ('WSDL'). Cloud clients interact with web ser(cid:173)
`vices of a cloud computing environment as prescribed by
`WSDL descriptions using Simple Object Access Protocol
`('SOAP') messages, typically conveyed using the HyperText
`Transport Protocol ('IITTP') with an eXtensible Markup 50
`Language ('XML') serialization.
`A data center (128) is a facility that is used for housing a
`quantity of electronic equipment, particularly computers and
`communications equipment. Data centers are maintained by
`organizations for the purpose of handling the data necessary 55
`for its operations. A bank, for example, may have data centers
`where all its customers' account information is maintained
`and transactions involving the accounts are carried out. Prac(cid:173)
`tically every company that is mid-sized or larger has at least
`one data center with the larger companies often having doz- 60
`ens of data centers. A cloud computing environment imple(cid:173)
`mented with cloud computers in data centers will typically
`include many computers, although for ease of explanation,
`the cloud computing environment (192) in the example of
`FIG. l is shown with only a few (106,109). 'lbe apparatus in 65
`the example of FIG. 1 includes a data center administration
`server (118), a cloud computer (109) running a cloud operat-
`
`4
`ing system (194), several additional cloud computers (106),
`and a data communications network (100) that couples the
`computers of the cloud computing environment (192) for data
`communications.
`A 'computer' or 'cloud computer,' as the terms are used in
`this specification, refers generally to a multi-user computer
`that provides a service (e.g. database access, file transfer,
`remote access) or resources (e.g. file space) over a network
`connection. The terms 'computer' or 'cloud computer' as
`context requires, refer inclusively to the each computer's
`hardware as well as any application software, operating sys(cid:173)
`tem software, or virtual machine installed or operating on the
`computer. A computer application in this context, that is, in a
`data center or a cloud computing environment, is often an
`application program that accepts connections through a com(cid:173)
`puter network in order to service requests from users by
`sending back responses. The form factor of data center com(cid:173)
`puters is often a blade; such computers are often referred to as
`'blade servers.' Examples of application programs, often
`referred to simply as 'applications,' include file servers, data(cid:173)
`base servers, backup servers, print servers, mail servers, web
`servers, FTP servers, application servers, VPN servers,
`DHCP servers, DNS servers, WINS servers, logon servers,
`security servers, domain controllers, backup domain control(cid:173)
`lers, proxy servers, firewalls, and so on.
`The data center administration server (118) is a computer
`that is operably coupled to VMs in the cloud computing
`environment through data communications network (100).
`The data center administration server (118) provides the data
`center-level functions of communicating withhypervisors on
`cloud computers to install VMs, terminate VMs, and move
`VMs from one cloud computer to another within the data
`center. In addition, data center administration servers (in
`some embodiments support an additional module called a
`VM Manager (126) that implements direct communications
`with VMs through modules called VM agents (122) installed
`in the VMs themselves.
`The example apparatus of FIG. 1 includes a cloud operat(cid:173)
`ing system (194) implemented as a module of automated
`computing machinery installed and operating on one of the
`cloud computers (109). The cloud operating system is in turn
`composed of several submodules: a virtual machine catalog
`(180), a deployment engine (176), and a self service portal
`(172). The self service portal is so-called because it enables
`users (101) themselves to set up VMs as they wish, although
`users specifying VMs through the self service portal typically
`have no knowledge whatsoever of the actual underlying com(cid:173)
`puter hardware in the cloud computing environment-and no
`knowledge whatsoever regarding how their VMs are disposed
`upon the underlying hardware. Any particular VM can be
`installed on a cloud computer with many other VMs, all
`completely isolated from one another in operation. And all
`such VMs, from the perspective of any operating system or
`application running on a VM, can have completely diflerent
`configurntions of computer resources, CPUs, memory, I/0
`resources, and so on. Examples of cloud operating systems
`that can be adapted for use in autonomic scaling of virtual
`machines in a cloud computing environment according to
`embodinients of the present invention include VMware's
`Cloud OS™, the open-source eyeOS™ from eyeOS Forums,
`Xccrions' iCloud™, Microsoft's Windows Live Core™,
`Google's Chrome™, and gOS™ from Good OS.
`In the example cloud operating system (194) of FIG. 1, the
`self service portal (172) exposes user interface (170) for
`access by any user (101) that is authorized to install VMs in
`the cloud computing environment (192). The user may be an
`enterprise Information Technology ('IT') professional, an IT
`
`

`

`Case 6:20-cv-01152-ADA Document 1-4 Filed 12/16/20 Page 11 of 18
`
`US 8,572,612 B2
`
`5
`manager or IT administrator, setting up VMs to run applica(cid:173)
`tions to be used by dozens, hundreds, or thousands of enter(cid:173)
`prise employees. Or the user (101) may be an individual
`subscriber to cloud computing services provided through or
`from the cloud computing environment. The self service por-
`tal (172) receives through the user interface (170) user speci(cid:173)
`fications (174) ofVMs. The user specifications include for
`each VM specifications of computer resources to be provided
`as the VM, types and numbers of computer processors, quan(cid:173)
`tity of random access memory, hard disk storage, input/output 10
`resources, application programs, requirements or specifica(cid:173)
`tions for scaling, and so on. The specifications can also
`include requirements for I/0 response timing, memory bus
`speeds, Service Level Agreements ('SLAs' ), Quality Of Ser(cid:173)
`vice ('QOS') requirements, and other VM specifications as 15
`may occur to those of skill in the art.
`Having received user specifications for a VM, the cloud
`operating system (194) then deploys an instance of the now(cid:173)
`specified VM in accordance with the received user specifica(cid:173)
`tions. The self service portal (172) passes the user specifica- 20
`tion (174) to the deployment engine (176). The VM catalog
`(180) contains VM templates, standard-form descriptions
`used by hypcrvisors to define and install VMs. The deploy(cid:173)
`ment engine (176) selects a VM template (178) that matches
`the user specifications. If the user specified an Intel processor, 25
`the deployment engine selects a VM template for a VM that
`executes applications on an Jntel processor. If the user speci(cid:173)
`fied PCie I/0 functionality, the deployment engine selects a
`VM template for a VM that provides PCie bus access. And so
`on. The deployment engine fills in the selected template with 30
`the user specifications and passes the complete template
`(182) to the data center administration server (118) in the
`local data center (127). The data center administration server
`(118) then calls a hypervisor (164) on a cloud computer (110)
`to install the instance of the VM (102) specified by the 35
`selected, completed VM template. The data center adminis(cid:173)
`tration server (118) records a network address assigned to the
`new instance of the VM as well as a unique identifier for the
`new instance of the VM, here represented by a UUID, and
`returns the network address and the UUID (184) to the 40
`deployment engine (176). The deployment engine (176)
`returns the network address and the UUID (184) to the self
`service portal (172).
`In this example, the cloud operating system deploys an
`instance of a VM (102) on a particular one (110) of the cloud 45
`computers (106). For further explanation, PIG. 1 sets forth in
`a callout (111) a block diagram of some of the components of
`automated computing machinery comprised within cloud
`computer (110). The cloud computer (110) ofFIG. 1 includes
`at least one computer processor (156) or 'CPU' as well as 50
`random access memory ('RAM') (168) which is connected
`through a high speed memory bus (166) and bus adapter (158)
`to CPU (156) and to other components of the cloud computer
`(110). The example cloud computer (110) of FIG. 1 includes
`a communications adapter (167) for data communications 55
`with other computers through data communications network
`(100). Such data communications may be carried out serially
`through RS-232 connections, through external buses such as
`a Universal Serial Bus ('USB'), through data communica(cid:173)
`tions data communications networks such as IP data commu- 60
`nications networks, and in other ways as will occur to those of
`skill in the art. Communications adapters implement the hard(cid:173)
`ware level of data communications through which one com(cid:173)
`puter sends data communications to another computer,
`directly or through a data communications network.
`Examples of communications adapters useful for autonomic
`scaling of virtual machines in a cloud computing environment
`
`6
`according to embodiments of the present invention include
`modems for wired dial-up communications, Ethernet OEEE
`802.3) adapters for wired data communications network com(cid:173)
`munications, and 802 .11 adapters for wireless data commu(cid:173)
`nications network communications.
`Stored in RAM (168) in the example cloud computer (110)
`of FIG. 1 is a hypervisor (164). The hypervisor (164) is a
`mechanism of platform-virtualization, a module of auto(cid:173)
`mated computing machinery that supports multiple operating
`systems running concurrently in separate virtual machines on
`the same host computer. The hypervisor (164) in this example
`is a native or bare-metal hypervisor that is installed directly
`upon the host computer's hardware to control the hardware
`and to monitor guest operating systems (154) that execute in
`virtual machines. Each guest operating system runs on a VM
`(102) that represents another system level above the hypervi-
`sor (164) on cloud computer (110). Examples ofhypervisors
`useful or that can be improved for use in autonomic scaling of
`virtual machines in a cloud computing environment accord(cid:173)
`ing to embodiments of the present invention include IBM's
`z/VMTM, VMware's vCenter™, INTEGRlTY™ from Green
`Hills Software, LynxSecure™ from LynuxWorks, IBM's
`POWER Hypervisor (PowerVM)™, Oracle's VM Server™,
`and Sun's Logical Domains Hypervisor™.
`In the example of PIG. 1, the hypervisor (164) implements
`an instance of a VM (102) in the cloud computer (110). The
`instance of the VM (102) runs an application program (132)
`and an operating system (154). The VM (102) is

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket