throbber
US007836452B2
`
`a2) United States Patent
`US 7,836,452 B2
`(0) Patent No.:
`Nov. 16, 2010
`(45) Date of Patent:
`Taylor
`
`(54) SYSTEM, METHOD AND PROGRAM FOR
`ESTIMATING A REQUISITE AMOUNT OF
`SERVER RESOURCES
`
`(75)
`
`ry’
`Inventor: Rick A. Taylor, Placentia, CA (US
`
`(73) Assignee:
`
`International Business Machines
`Corporation, Armonk, NY (US)
`
`(*) Notice:
`
`Subject to any disclaimer, the term ofthis
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 1463 days.
`
`(21) Appl. No.: 11/149,865
`
`(22)
`
`Filed:
`
`Jun. 10, 2005
`
`(65)
`
`Prior Publication Data
`
`US 2006/0282825 Al
`
`Dec. 14, 2006
`
`(51)
`
`Int. Cl.
`(2006.01)
`GO6F 9/46
`(2006.01)
`GO6F 15/173
`(52) U.S.Ccee 718/104; 718/105; 709/226;
`709/2; 709/44
`(58) Field of Classification Search «0.0.0.0... None
`See application file for complete search history.
`
`(56)
`
`References Cited
`U.S. PATENT DOCUMENTS
`
`6,757,689 B2
`6/2004 Battas et al. oe 707/101
`
`7,020,697 B1*
`......0.... 709/223
`3/2006 Goodman etal.
`2003/0217153 Al
`11/2003 Raoetal. we. 709/226
`
`2004/0028070 Al
`...........
`. 370/431
`2/2004 Barr et al.
`
`2004/0034577 Al*
`............ 705/28
`2/2004 Van Hoose et al.
`2004/0049579 Al
`3/2004 Imsetal. oe 709/225
`2004/0111725 Al*
`.......... 718/105
`6/2004 Srinivasan et al.
`
`2004/0267897 AL* 12/2004 Hilletal. oe. 709/217
`
`1/2006 Armington ............00.. 707/204
`2006/0010176 Al*
`
`5/2006 Mangan etal. ......
`. 705/8
`2006/0095309 Al*
`8/2006 Stefaniak et al.
`....
`... 710/15
`2006/0179171 Al*
`
`2006/0242282 AL* 10/2006 Mullarkey .......... 709/223
`2006/0282825 AL* 12/2006 Taylor oe TT/127
`
`2007/0180083 Al*
`
`8/2007 Adametal. ......... 709/223
`
`(Continued)
`OTHER PUBLICATIONS
`
`Urgaonkar et al., “Resource Overbooking and Application Profiling
`in Shared Hosting Platforms”, 2002, ACM,pp. 1-15.*
`
`(Continued)
`
`Primary Examiner—Tuan Q Dam
`Assistant Examiner—Ben C Wang
`(74) Attorney, Agent, or Firm—Arthur J. Samodovitz
`
`(57)
`
`ABSTRACT
`
`System, method and program product for determining if a
`plurality of applications executed on a plurality of servers can
`be executed on a single server. First program instructions
`determine if the single server has sufficient processor power
`to execute the plurality of applications. Second program
`instructions determine if the plurality of applications have a
`same type of operating system on the plurality of servers.
`Third program instructions determineifthe plurality of appli-
`cations have a same type of middleware onthe plurality of
`servers. Thefirst program instructions determine peak pro-
`cessor utilizations and timesofthe peak processorutilizations
`for the plurality of applications, respectively, to determine
`whether the single server has sufficient processor power to
`execute the plurality of applications. Other program instruc-
`tions determine the single server to be a standard vendor
`server which has a smallest processor adequate to support
`processing requirements of the plurality of applications and
`has a predetermined, minimum processing powerin reserve.
`Other program instructions determineifthe plurality of appli-
`cations have a similar function or are identical. Other program
`instructions determine if the plurality of applications have a
`same type of application environment on the plurality of
`servers.
`
`16 Claims, 7 Drawing Sheets
`
`
`
`SERVER RESOURCE
`ESTIMATION PROGRAM
`
`31
`
`VMware, Inc.
`
`Exhibit 1015
`
`Page 1
`
`VMware, Inc. Exhibit 1015 Page 1
`
`

`

`US 7,836,452 B2
`Page 2
`
`U.S. PATENT DOCUMENTS
`
`2008/0282267 Al* 11/2008 Adametal.
`
`.....0.0.. 719/320
`
`OTHER PUBLICATIONS
`
`Stewart et al., “Profile-Driven Component Placement for Cluster-
`Based Online Services”, Oct. 2004, IEEE, vol. 5, No. 10, pp. 1-13.*
`INSPEC: Outsourcing Service Rendering System—AN 7856555;
`Arima, H. 2003.
`
`Globally Distributed Content Delivery—AN 7406544; Dilley, J. et
`al; 2002.
`ACM Digital Library: Managing Energy & Server Resources in
`Hostinng Centers—Chase, JS. et al 2001.
`Sizing DB2 UDB
`Servers
`for
`Workloads—Wasserman,TJ et al 2004.
`A Cost-Oriented Approachfor Infrastructural Design—Ardagna, D.
`et al 2004.
`
`Intelligence
`
`Business
`
`* cited by examiner
`
`VMware, Inc.
`
`Exhibit 1015
`
`Page 2
`
`VMware, Inc. Exhibit 1015 Page 2
`
`

`

`U.S. Patent
`
`Nov. 16, 2010
`
`Sheet 1 of 7
`
`US 7,836,452 B2
`
`
`
`SERVER RESOURCE
`ESTIMATION PROGRAM
`
`3
`
`1
`
`DATABASE
`
`FIG. 1
`
`17
`
`CUSTOMER
`WORKSTATION
`
`20
`
`18
`
`CUSTOMER
`WORKSTATION
`
`19
`
`CUSTOMER
`WORKSTATION
`
`SERVER
`
`26
`
`CUSTOMER
`APPLICATION
`
` VENDOR
`
`VENDOR
`SERVER
`
`27
`
`CUSTOMER
`APPLICATION
`
`VENDOR
`SERVER
`
`98
`
`CUSTOMER
`APPLICATION
`
`13
`
`14
`
`15
`
`VENDOR
`SERVER
`29
`r-GUSTOMER1!
`|APPLICATIONS! |
`4
`
`FIG. 2
`
`VMware, Inc.
`
`Exhibit1015
`
`Page3
`
`VMware, Inc. Exhibit 1015 Page 3
`
`

`

`U.S. Patent
`
`Nov. 16, 2010
`
`Sheet 2 of 7
`
`US 7,836,452 B2
`
`RECEIVE OPERATOR DESCRIPTION OF CUSTOMER'S
`
`CURRENT SERVERS AND THEIR SOFTWARE
`
`100
`
`DETERMINE RELATIVITY VALUE FOR
`CUSTOMER'S CURRENT SERVERS
`
`102
`
`DETERMINE PROCESSOR AND MEMORY
`REQUIREMENTS IN VENDOR SERVERS
`
`104
`
`
`
`
`
`OPERATOR
`CHANGES
`CPU OR MEMORY
`REQUIREMENTS?
`
`
`
`
`
`
`105
`
`YES
`
`
`
`NO
`
`ENFORCE CPU MINIMUMS AND
`MEMORY MAXIMUMS
`
`109
`
`RECOMMEND VENDOR SERVER(S)
`FOR CUSTOMER
`
`110
`
`
`
`DETERMINE IF CUSTOMER'S SERVERS CAN BE
`CONSOLIDATED AND BEST VENDOR SERVER TO
`REPRESENT THE CONSOLIDATED SERVERS
`
`
`
`
`120
`
`
`
`
`
` DETERMINE IF VENDOR SHOULD USE
`
`
`
`
`
`DEDICATED BLADE SERVERS
`
`QUERY OPERATOR FOR OTHER FACTORS
`WHICH WILL AFFECT COST
`
`FIG. 3
`
`300
`
`
`
`310
`
`VMware, Inc.
`
`Exhibit1015
`
`Page 4
`
`VMware, Inc. Exhibit 1015 Page 4
`
`

`

`U.S. Patent
`
`Nov. 16, 2010
`
`Sheet 3 of 7
`
`US 7,836,452 B2
`
`RECEIVE FROM OPERATOR IDENTIFICATION OF TWO OR MORE
`CUSTOMER SERVERS AS CANDIDATES FOR CONSOLIDATION
`
`200
`
`
`
`
`
`120
`
`4
`
`206
`
`COMPARE COMBINED PROCESSOR UTILIZATION OF THE
`TWO OR MORE CUSTOMER SERVER CONSOLIDATION
`CANDIDATES TO THAT OF THE SINGLE VENDOR SERVER
`WITH THE GREATEST PROCESSOR POWER DETERMINED
`IN STEP 104 FOR ANY OF THE CUSTOMER SERVER
`
`CONSOLIDATION CANDIDATES
`
`208
`
`212
`
`210
`
`
`
`
`
`WARN OPERATOR OF
`
`PRIME SHIFT OVERLAP
`
`
`
`
`
`
`
`
`
`
`
`
`VES
`RECOMMENDAGAINST
`<Er5%>CONSOLIDATION WITH
`
`
`
`
`
`
` 214
`
`
`
`THIS SIZE PROCESSOR
`
`
`
`COMPARE PROCESSOR UTILIZATION OF THE
`TWO OR MORE CUSTOMER SERVER
`CANDIDATESTO THAT OF THE SINGLE
`VENDOR SERVER WITH THE NEXT HIGHER
`PROCESSOR POWER
`
`
`
`RECOMMEND AGAINST
`CONSOLIDATION WITH
`
`THIS SIZE PROCESSOR
`
`
`
`QUERY WHETHER
`WORKLOAD/PROCESSOR
`REQUIREMENTS OF THE
`CUSTOMER SERVER
`STEP 230
`224—|CANDIDATES SHOULD BE
`DECREASED
`
`
`
`REPORT THAT A SPECIFIED
`VENDOR SERVER HAS SUFFICIENT
`
`PROCESSOR POWER FOR
`
`
`
`CONSOLIDATION
`
`
`
`
`
`
`DECISION 226
`
`VMware, Inc.
`
`Exhibit1015
`
`Page5
`
`VMware, Inc. Exhibit 1015 Page 5
`
`

`

`U.S. Patent
`
`Nov. 16, 2010
`
`Sheet 4 of 7
`
`US 7,836,452 B2
`
`120
`
`STEP 224
`
`
`REQUIREMENTS ?
`
`
`
`
`
`RECOMMEND AGAINST
`CONSOLIDATION
`
`
`
`
`
`
`STEP 100
`
`227
`
`STEP 300
`
`233
`
`WARN OPERATOR
`
`IDENTIFY SIMILAR AND
`DISSIMILAR APPLICATIONS
`AND FUNCTIONS
`
`QUERY OPERATOR WHETHER
`DISSIMILAR APPLICATION(S)
`CAN BE RELOCATED
`
`234
`
`235
`
`236
`
`YES
`
`STEP 100
`
`NO -
`RECOMMEND AGAINST|—
`CONSOLIDATION
`
`238
`
`STEP 300
`
`\ D
`
`STEP 211
`
`230
`
`
`
`ETERMINE IF SAME
`APPLICATIONS OR SIMILAR
`
`
`FUNCTIONS OF APPLICATIONS
`ON TWO OR MORE CUSTOMER
`SERVER CONSOLIDATION
`CANDIDATES
`
`
`
`
`
`232
`
`
`SAME/SIMILAR ?
`NO
`
`
`
`
`YES
`
`240
`
`
`DETERMINE IF ALL
`
`
`APPLICATIONS ON TWO OR
`
`
`MORE CUSTOMER SERVERS
`ARE COMPATIBLE
`
`242
`
`COMPATIBLE?
`WARN OPERATOR|~24
`oo
`
`YES
`IDENTIFY COMPATIBLE AND|544
`INCOMPATIBLE APPLICATIONS
`AND FUNCTIONS
`
`STEP 250
`
`QUERY OPERATOR WHETHER
`INCOMPATIBLE APPLICATION
`CAN BE RELOCATED
`
`245
`
`246
`
`YES
`
`STEP 100
`
`FIG. 4(B)
`
`NO
`
`STEP 248
`
`VMware, Inc.
`
`Exhibit1015
`
`Page6
`
`VMware, Inc. Exhibit 1015 Page 6
`
`

`

`U.S. Patent
`
`Nov. 16, 2010
`
`Sheet 5 of 7
`
`US 7,836,452 B2
`
`DECISION 246
`
`248
`
`
`
`
`
`RECOMMEND AGAINST
`CONSOLIDATION
`
`STEP 300
`
`120
`
`\
`
`250
`
`
`
`DETERMINE IF APPLICATION
`
`
`ENVIRONMENT, MIDDLEWARE
`AND DATABASE SOFTWARE OF
`
`
`ALL APPLICATIONS ON THE
`
`
`TWO OR MORE CUSTOMER
`SERVERS ARE COMPATIBLE
`
`
`
`252
`NO COMPATIBLE?
`
`
`YES
`
`260
`
`DETERMINE IF TWO OR MORE
`CUSTOMER SERVERS HAVE
`SAME OPERATING SYSTEM
`
`262
`
`NO
`
`YES
`
`STEP 270
`
`253
`
`WARN OPERATOR
`
` 254
`
`
`
`IDENTIFY COMPATIBLE AND
`INCOMPATIBLE
`
`
`ENVIRONMENTS, MIDDLEWARE
`AND DATABASE SOFTWARE
`QUERY OPERATOR WHETHER
`

`
`255
`
`INCOMPATIBLES CAN BE FIXED
`
`YES
`
`256
`
`
`INCOMPATIBILITIES ?
`
`NO
`RECOMMEND AGAINST
`CONSOLIDATION
`
`STEP 100
`
`258
`
`STEP 300
`
`WARN OPERATOR
`
`263
`
`IDENTIFY DIFFERENT
`OPERATING SYSTEMS
`
`264
`
`QUERY OPERATOR WHETHER
`OPERATING SYSTEMS CAN BE
`MADE SAME
`
`265
`
`266
`
`YES
`
`STEP 100
`
`NOTIFY REGARDING EXTRA O/S
`
`NO
`
`268
`
`FIG. 4(C)
`
`VMware, Inc.
`
`Exhibit1015
`
`Page7
`
`VMware, Inc. Exhibit 1015 Page 7
`
`

`

`U.S. Patent
`
`Nov. 16, 2010
`
`Sheet 6 of 7
`
`US 7,836,452 B2
`
`120
`
`270
`
`
`
`
`
`
`
`COMPARE MEMORYUTILIZATION OF THE
`TWO OR MORE CUSTOMER SERVER
`CANDIDATES TO THAT OF SELECTED
`VENDOR SERVER
`
`272
`
`
`
`272
`
`
`RECOMMEND AGAINST
`
`CONSOLIDATION WITH
`THIS SIZE MEMORY
`
`
`COMPARE COMBINED MEMORY
`
`
`UTILIZATION OF THE TWO OR MORE
`
`
`CUSTOMER SERVER CONSOLIDATION
`CANDIDATES TO THAT OF THE SINGLE
`
`
`VENDOR SERVER WITH THE GREATEST
`
`
`MEMORY DETERMINEDIN STEP 104 (OR
`DECISION 280 FOR SUBSEQUENT
`
`
`
`
`ITERATIONS) FOR ANY OF THE
`CUSTOMER SERVER CONSOLIDATION
`
`
`
`CANDIDATES
`
`STEP 300
`
`DECISION 278
`
`FIG. 4(D)
`
`VMware, Inc.
`
`Exhibit1015
`
`Page8
`
`VMware, Inc. Exhibit 1015 Page 8
`
`

`

`Sheet 7 of 7
`
`US 7,836,452 B2
`
`120
`
`4
`
`U.S. Patent
`
`Nov. 16, 2010
`
`278
`
`YES
`
`NO
`
`271
`REPORTTHAT A SPECIFIED
`VENDOR SERVER HAS
`SUFFICIENT MEMORY FOR
`CONSOLIDATION
`
`288
`QUERY OPERATOR WHETHER
`OPERATOR APPROVESTHIS
`VENDOR SERVER
`
`
`
`280
`
`279
`RECOMMEND AGAINST
`CONSOLIDATION WITH
`THIS SIZE MEMORY
`
`
`VENDOR
`SERVER
`YES
`
`
`WITH MORE
`
`
`MEMORY
`
`
`
`CRANEMODTIOWS:]
`
`QUERYWETHER
`
`
`
`
`MEMORY REQUIREMENTS
`OF THE CUSTOMER
`SERVER CANDIDATES
`SHOULD BE DECREASED
`
`STEP 300
`
`
`
`
`
`
`
`
`
`286
`
`
`
`
`YES
`DECREASE
`MEMORY
`
`
`
`
`REQUIREMENTS?
`NO
`
`
`
`287
`
`RECOMMEND AGAINST
`CONSOLIDATION
`
`FIG. 4(E)
`
`VMware, Inc.
`
`STEP 274
`
`STEP 100
`
`Exhibit1015
`
`Page9Q
`
`VMware, Inc. Exhibit 1015 Page 9
`
`

`

`US 7,836,452 B2
`
`1
`SYSTEM, METHOD AND PROGRAM FOR
`ESTIMATING A REQUISITE AMOUNT OF
`SERVER RESOURCES
`
`FIELD OF THE INVENTION
`
`The present invention relates generally to computer sys-
`tems. The present invention relates more specifically to a
`technique to estimate an amountof server resources in an “on
`demand”or “utility” server model required to satisfy needs of
`a customer.
`
`BACKGROUND OF THE INVENTION
`
`An “on demand”or “utility” server model is currently
`known.In this model, a customer does not own, possess or
`maintain servers, such as computer hardware, operating sys-
`tem and certain middleware (whenpart of a predefined “on
`demand”solution), which execute the customer’s applica-
`tions. Rather, a vendor owns, possesses and maintains the
`servers which execute the customer’s applications. Typically,
`the vendor offers one or more standardserversolutions forall
`customers. The vendor’s servers may be dedicated to one
`customeror shared by multiple customers using one of many
`knownvirtualization techniques. Knownvirtualization tech-
`niques include VMWare (tm ofVMWareInc.), virtualization
`on IBM xSeries or IBM Blade Center servers (based on
`Microsoft Windowsoperating systems) and AIX operating
`system’s logical partitioning capabilities on IBM’s pSeries
`servers. The sharing of servers reduces cost when a single
`customer does not have enough workload to occupy a full
`server or when different customers have different times of
`
`peak utilization. Each server has standardized hardware (in-
`cluding processors, memory, storage, etc.), standardized plat-
`form software (including operating systems, management
`software, middleware), and applications for use by the cus-
`tomer(s).
`There are customer-specific applications such as airline
`reservation software, banking software, etc., and general pur-
`pose applications such as database applications. The cus-
`tomeris typically responsible for maintaining its own appli-
`cation(s). Each customer accesses its own applications from
`the vendor’s servers via a network such as a virtual private
`network, point to point network, ISDN,frame relay network
`or the World Wide Web. The vendor measures or meters each
`
`customer’s use of the vendor’s server resources and charges
`each customer based on the customer’s use such as the
`
`amount (numberof gigabytes) of assigned disk storage and
`the number of CPU Hours that the customer utilizes during
`the month. The vendoralso charges the customerfor “fixed
`costs” such as the number of dedicated servers or logical
`partitions on which the customer’s application(s) execute.
`Before a new customeris added to “on demand”or“utility”
`environment,
`typically an operator estimates how much
`server hardware and software the customer will need steady
`state and peak, the peak demand times, and how much and
`whattype of server resources, if any, need to be addedto the
`pool to satisfy the new customer. Typically the customer
`currently ownsits own servers, and the vendor considers the
`capacity ofthe customer’s current servers and their percent of
`utilization to estimate the customer’s current server needs. If
`
`the new customerrequires dedicated servers, then the vendor
`will commission these, and install and execute the customer
`applications on these new servers. If the new customer can
`share an existing vendor server, then the new customer’s
`application can be installed and executed in a shared mode,
`typically on separate LPAR(s), on the existing vendorserver.
`
`2
`It was also knownthat in some cases where the customeris
`currently using two or more of its own servers, these can be
`consolidated into one dedicated server in an “on demand”or
`
`“utility” model. For example, if the customer wasonly using
`a small percentageof the capacity of its current servers, these
`may be consolidated into one vendor server of similar or
`equal powerin an “on demand”or “utility” model. The cost
`savings result from a reduction in (a) numberof operating
`systems, (b) virtual memory, (c) real memory, (d) swap disk
`space, (e) system management software licenses, (f) cus-
`tomerapplication software licenses, (g) systems administra-
`tion and support, (h) floor space, and/or (i) electricity and
`cooling costs.
`An objectof the present inventionis to provide a technique
`to estimate the server resources required by a neworexisting
`customerin an “on demand”or “utility” delivery andbilling
`solution.
`
`Another object of the present invention is to provide a
`techniqueto estimate cost effective server resources required
`by a new or existing customer in an “on demand”or “utility”
`delivery and billing solution.
`
`SUMMARY
`
`The present invention resides in a system, method and
`program product for determining ifa plurality of applications
`executed on a plurality of servers can be executed on a single
`server. First program instructions determine if the single
`server has sufficient processor powerto execute the plurality
`of applications. Second program instructions determine ifthe
`plurality ofapplications have a sametype ofoperating system
`on the plurality of servers. Third program instructions deter-
`mine if the plurality of applications have a same type of
`middleware on the plurality of servers.
`According to a feature of the present invention, the first
`program instructions determine peak processor utilizations
`and times ofthe peak processorutilizations for the plurality of
`applications, respectively, to determine whether the single
`server has sufficient processor powerto execute the plurality
`of applications.
`According to another feature ofthe present invention, other
`program instructions determineifthe plurality ofapplications
`have a similar function or are identical.
`
`According to another feature ofthe present invention, other
`program instructions determineifthe plurality ofapplications
`have a sametype of application environmentonthe plurality
`of servers.
`
`According to another feature ofthe present invention, other
`program instructions determineifthe plurality ofapplications
`are compatible.
`According to another feature ofthe present invention, other
`program instructions determine the single server to be a stan-
`dard vendorserver which has a smallest processor adequate to
`support processing requirements of the plurality of applica-
`tions and has a predetermined, minimum processing powerin
`reserve.
`
`35
`
`40
`
`45
`
`50
`
`55
`
`BRIEF DESCRIPTION OF THE FIGURES
`
`FIG. 1 is a block diagram of a server which includes a
`server resource estimation program, according to the present
`invention, to estimate an amountandtype of server resources
`required in an “on demand”or “utility” environmentto satisfy
`needs of a new customer.
`
`FIG.2 is a block diagram of an “on demand”or “utility”
`environment.
`
`VMware, Inc.
`
`Exhibit 1015
`
`Page 10
`
`VMware, Inc. Exhibit 1015 Page 10
`
`

`

`US 7,836,452 B2
`
`3
`FIG. 3 is a flow chart of the server resource estimation
`program of FIG.1.
`FIGS. 4(A-E) form a flow chart of a server consolidation
`determination function within the server resource estimation
`program of FIG.3.
`
`DETAILED DESCRIPTION OF THE PREFERRED
`EMBODIMENTS
`
`Thepresent invention will now be described in detail with
`reference to the Figures. FIG. 1 illustrates a computer 10
`which includes a server resource estimation program 12 to
`estimate amount and type of server resources (processor
`power, memory and storage) required in an “on demand”or
`“utility” environment to satisfy needs of a new customer.
`From the estimation of the required amount of server
`resources, program 12 determines a type of server to best
`provide these server resources. The type ofserver is based on
`the amount of “on demand” processor power required to
`perform the work currently being done on the customers
`current server(s). The “on demand” servers may be real or
`virtualized. The virtualized servers can be server(s) that are
`divided into logical partitions where each logical partition or
`groups of logical partitions may each be dedicated to separate
`customers and their applications. Alternately,
`the “on
`demand”servers may be dedicated to separate customers and
`their applications. Typically, the “on demand”server pro-
`vider/vendoroffers certain predefined platforms such as Unix
`or Intel based platforms, some of which provide secure logi-
`cal partitioning. Computer 10 also includes a CPU 48, an
`operating system 50, RAM 52, ROM 54, storage 56, and
`TCP/IP adapter card 58 to communicate with Internet 60.
`Asexplained in more detail below, an operator supplies to
`program 12 (a) descriptive information about the customer’s
`current (privately owned, possessed and maintained) server
`hardware, operating system, managementsoftware andappli-
`cations (not shown) such as commercial business applications
`such asairline reservation software, (b) quantitative informa-
`tion about the customer’s current amount of utilization of
`each server such as numberofprocessorutilization hours per
`day, peak utilization periods, and numberof days per week
`with peak utilization, and (c) details about specific middle-
`ware including DB2, Websphere Application Server and
`Websphere MQ,such as number of DB2 database instances
`running on the server. By way of example, the customer’s
`current servers can be UNIX servers or Intel-processor serv-
`ers with Microsoft Windowsoperating systems. Program 12
`also has a database 31 describing the standard typesof servers
`13, 14 and 15 currently maintained by a vendorin an “on
`demand”or “utility” model for existing and new customers.
`By way of example, servers 13, 14 and 15 can be IBM pSeries
`servers, IBM xSeries, or IBM BladeCenterservers. Ifdesired,
`any orall of servers 13, 14 and 15 can be logically divided into
`logical partitions (“‘LPARs”) in a known manner. Each LPAR
`is a logical division of processor and memory resources of a
`server. The logical division of the processor is implemented
`by time slicing the processor, and the logical division of the
`memory is implemented by dividing the allocation of the
`server’s memory to each partition. In this “on demand” or
`“utility” model, customer workstations 17,18, 19 are coupled
`to servers 13, 14 and 15 via a network 20 such as VPN,frame
`relay, ISDN, Point to Point, or World Wide Web/Internet to
`access the customers’ applications 26, 27, 28 which execute
`on servers 13, 14 and 15, respectively. Program 12 also has a
`database describing the current utilization by the existing
`customers of the servers 13, 14 or 15, in case a single server
`can be shared by more than one customer. Program 12 nor-
`
`4
`malizes the relative performance of the new customer’s het-
`erogeneousservers, and calculates the new customer’s fore-
`casted monthly utilization based on prime andoff-primeshift
`utilization percentages provided by the customer. Based in
`part on this information, program 12 determines the number
`ofhours ofutilization required from a new server 16 or shared
`from existing servers 13, 14 or 15 in the “on demand” or
`“utility” model to perform the new customer’s defined work-
`load.If new server 16 is needed (for a new customerapplica-
`tion 29), program 12 also determines the size and type of
`server 16 to best support the new customer’s application 29,
`and the memory and storage required by the new customer.
`The new server 16, if needed, has an operating system 21,
`middleware 22 and customer application 24. The new cus-
`tomeris represented by workstation 23, and can access new
`server 16 via network 20.
`
`FIG.3 illustrates the processing of program 12 in more
`detail for a new customer which has requested and is planned
`to use additional vendor server 16 (which is the same type as
`server 13, 14 or 15) or possibly share one ofthe servers 13, 14
`and 15 with another customer.In this example, the new cus-
`tomeris switching from its privately owned, possessed and
`maintained server(s) to the vendor’s server(s) in an “on
`demand”or “utility” model. In step 100, an operator enters
`the following information about the customer’s current (pri-
`vately owned, possessed and maintained) server(s) and appli-
`cation(s) for each current logical partition or real server
`owned by the customer:
`
`(a) Information describing the customer’s current (privately
`owned, possessed and maintained) servers, such as server
`vendor, model, operating system and version, number ofpro-
`cessors, processor speed, amountofphysical memory, opera-
`tionalstatus of server, server nameor other uniqueidentifier,
`application or other function ofthe customer’s currentserver.
`The following is an example of specific information
`parameters entered by an operator into program 12 for step
`104:
`
`Ideas=the “relativity value”or relative performance value
`of each customer ownedserver, for example, as determined
`by Ideas International.
`EE=Execution Environment, a value of “1” for each cus-
`tomer owned LPARorserver that will be replaced one-for-
`one by a vendor LPARorserver, or=a value of “0” for each
`customer owned LPARorserver that will be consolidated
`
`40
`
`45
`
`with another customer owned LPARorserver into a single
`vendor owned LPARorserver, where the value “EE”for this
`other customer owned LPAR or server will be “1”. An
`
`“Execution Environment” comprises the computer hardware
`and operating system software architecture of a server or
`LPAR.
`
`Ram=amount of real memory actually installed on each
`customer ownedserver.
`
`RamOD=amount of real memory required in the “on
`demand”server.
`
`55
`
`VramOD=amount of real memory required in the “on
`demand” VMWareservers.
`
`PrimHrs=numberofprimeshift (peak utilization) hours on
`each customer ownedserver.
`
`OffPrimHrs=number ofnon-primeshift hours on each cus-
`tomer ownedserver.
`
`PrimUtl=monthly average primeshift utilization percent-
`age on each customer ownedserver.
`OffPrimUtl=monthly average non-prime shift hours on
`each customer ownedserver.
`
`Hrs=Hours of utilization per month of each customer
`ownedserver.
`
`VMware, Inc.
`
`Exhibit1015
`
`Page 11
`
`VMware, Inc. Exhibit 1015 Page 11
`
`

`

`US 7,836,452 B2
`
`5
`CpuHrs=“on demand” server CPU Hourbaseline without
`minimum usage enforced.
`Cpus=Amount of “on demand” CPUs required without
`minimum usage enforced.
`HaType=denotes type of high availability cluster configu-
`ration required.
`HaLpar=Amount of HA LPARsrequired.
`HaNodes=Amountofnodesin the high availability cluster.
`Db2=Number of IBM DB2 database (or equivalent) soft-
`ware instances on each customer ownedserver.
`
`Was=Number of IBM Websphere Application Server (or
`equivalent) instances on each customer ownedserver.
`Mg=Number of Websphere MQ (or equivalent) queues
`running on each customer ownedserver.
`Vm=Selection to deliver on VMWare (or equivalent) Ipar.
`4way=Selection to deliver on 4-way xSeries server, (i.e.
`four processorserver).
`8way=Selection to deliver on 8-way xSeries server (i.e.
`eight processorserver).
`16way=Selection to deliver on 16-way xSeriesserver(i.e.
`sixteen processorserver).
`CpuM=Amountof“on demand” CPUsrequired with mini-
`mum usage enforced.
`VmHrsM=CPU hour total for all on demand VMWare
`
`Ipars with minimum usageenforced.
`4wayHrsM=CPU hour total for all 4way demand Ipars
`with minimum usage enforced.
`8wayHrsM=CPU hour total for all 8way demand Ipars
`with minimum usage enforced.
`16wayHrsM=CPUhourtotal for all 16way demand Ipars
`with minimum usage enforced.
`
`(b) Information describing future server requirements of the
`customer, such as amount of physical memory that the cus-
`tomerwill require and type of operating system to be used.
`
`(c) Indication whether this customer server and another cus-
`tomerserver are currently executing the same application,
`and can be consolidated into one server provided by the
`vendor.
`
`(d) Information describing amountofutilization of custom-
`er’s current server such as the customer’s primeshift utiliza-
`tion hours and days, and numberof prime (or “peak”) utili-
`zation hours of the day (parameter “A” referenced below),
`number of off-prime hours of the day (parameter “Off-
`PrimUtl” defined above in parameter list), and utilization
`percentages for both prime and off-prime hours.
`
`10
`
`20
`
`25
`
`30
`
`35
`
`40
`
`(e) Information describing amount of customer’s current disk
`storage allocation, the server’s function or the server’s pri-
`mary application(s).
`
`50
`
`(f) Information indicating numberof instances of IBM DB2
`(or other vendor-preferred) database software that the cus-
`tomer wants on each server. This number can be zero (if the
`customer wants to use some other database application or no
`database application) or an integer greater than zero (if the
`customer wants to use the vendor-preferred DB2 database
`defined option rate).
`
`(g) Information describing the customer’s high availability
`cluster requirements. The requirements include whether the
`cluster is for Unix server meaning it will require HACMP
`high availability clustering software or whether it is for a
`WindowsInter server meaning high availability clustering
`will be supported by the “on demand” supported version of
`the Windowsoperating system without any additional soft-
`ware. Other required information is the number of nodes
`(servers or LPARs) to be included in the high availability
`
`6
`cluster. Supported high availability cluster configurations are
`2node, 3node and 4nodes. The type of high availability clus-
`ter is required means whetherall nodesin the cluster are doing
`independent work(the user enters this as an “aa” or active-
`active high availability cluster configuration. If one serveris
`doing independent work (called the active server) and the
`other is typically idle (called the passive server) waiting to
`perform the workofthe active, then the user enters this as an
`“ap” or active-passive high availability cluster configuration.
`
`(h) Information indicating numberof instances of IBM Web-
`sphere Application Server software that the customer wants
`on each server. This number can be zero (if the customer
`wants to use some other middleware or no middleware) or an
`integer greater than zero (if the customer wants to use the
`vendor-preferred Websphere Application Server option rate).
`
`(i) Information indicating number of instances of another
`type ofIBM Websphere MQ software that the customer wants
`on each server. This number can be zero (if the customer
`wants to use some other middleware or no middleware) or an
`integer greater than zero (if the customer wants to use this
`vendor-preferred Websphere MQ optionrate).
`
`Gj) Information describing optional support features required
`by the customer such as two levels of production control
`support (i.e. normal number ofjob abends and high percent-
`age of job abends), whether third party software support is
`required, whether third party database software support is
`required, whether user ID support is required, and whether a
`developer’s environmentkit support is required.
`
`(k) Information describing customer’s peak (prime shift)
`hours ofutilization and the days per week that have these peak
`(prime shift) hours.
`
`Typically, the foregoing information (a-k) is based on actual
`information provided by the customer about the customer’s
`current servers and some projections for vendor’s “on
`demand”delivery requirements. However, if such datais not
`available, then the operator can estimate such data based on
`the customer’s environment, operator’s experience, other
`similar environments and other factors.
`
`In step 102, program 12 looks-up (or the operator enters
`into program 12) a “relativity value” for a “performance”
`metric for each of the customer’s current servers. The “rela-
`
`tivity value”indicates a relative performance measurement of
`a common commercial server’s processor power. By way of
`example, a company called Ideas International has analyzed
`different, commonprocessors from Intel, for both Microsoft
`Windows, Linux (tm of Linus Torvalds) operating systems,
`IBM Unix servers, IBM iSeries servers, Dell servers, HP
`servers, Sun Microsystems servers, and Fujitsu servers, and
`providedtheir“relativity values”. For example, the “relativity
`value” may indicate that the customer’s current processoris
`50% as powerful as the processor(s) in one of the vendor’s
`standard servers. This performance metric coupled with the
`customer’s actual amount of utilization of its servers indi-
`cates the processor needs of the customer in the “on demand”
`or “utility” model. However, typically, the vendor provides a
`server with at least 25% moreprocessor powerthan currently
`required by the customer.
`In step 104, program 12 performs the following calcula-
`tions for each current customer server and current customer
`LPARto determine the vendor server resources (i.e. proces-
`sor and memory) required in the “on demand”or “utility”
`model:
`
`The following equation calculates the numberof hours for
`the month specified above based on primeshift utilization and
`VMware, Inc.
`Exhibit1015
`Page 12
`
`VMware, Inc. Exhibit 1015 Page 12
`
`

`

`US 7,836,452 B2
`
`7
`off prime shift utilization (based on the customer’s current
`utilization). Prime shift typically occurs five days per week
`(or twenty two days per month), six days per week (or twenty
`six days per month) or seven days per week (or 30.4 days per
`month). A full month has 730 total hours.
`
`Total number of customer’s current CPU Hours per month
`Customers Utilized CPU Hours=((730-(22* PrimHrs))
`*OffPrimUtl)+(22* PrimHrs* PrimUtl)
`
`Program 12 calculates the actual number of CPU hours
`required in the on demand delivery center to match the cus-
`tomer’s current utilization, based in part on the relativity
`values andutilization information. The “1586.4” value below
`is an example ofthe calibration metric used to normalize the
`constantly changing relativity values from the Ideas Interna-
`tional report. The on demand cost modelers calibrate their
`cost rates to this same 1586.4 metric for the Unix servers. A
`
`slightly different metric is used for the Intel servers. This
`value is comparable to a normalization based on a mainframe
`MIPrating. Program 12 then multiplies the normalizedrela-
`tive performancevalue with the sum from the previous equa-
`tion listed above, i.e. “Total number of customer’s current
`CPU Hours per month”. In this example, the productofthis
`equation is called the “CPU Hour Baseline”.
`CPU Hour Baseline=(Ideas/1586.4)*Hrs
`
`Program 12 usesthe following algorithms/formulasfor deter-
`mining the various CPU Houradder for 2node, 3node and
`4node high availability cluster servers:
`
`If HaType parameter has a value of either ‘aa’ (meaning
`active-active HA configuration) or ‘ap’ (meaning active-pas-
`sive HA configuration) and the number of nodes in the HA
`cluster is more than “1” and less than “5”, then program 12
`will assign a value of “1” to the HaLpar parameter,i.e.
`HaLpar=IF (OR(HaType=“AP”,HaType=“AA”),IF
`(AND(HaNodes>1,HaNodes<5),1,0),0)
`
`If HaNodeshasa value of “2” and HaTypehas a value of‘aa’
`or ‘ap’ then program 12 places a value of the CPU Hour
`Baseline value as the 2node HA

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