`Myers et al.
`
`(10) Patent N0.:
`(45) Date of Patent:
`
`US 8,646,093 B2
`Feb. 4, 2014
`
`US008646093B2
`
`8,037,106 B2 * 10/2011 Barrenechea ............... .. 707/803
`
`2005616415131 it: ‘$852 é‘kiyi‘maftfl'
`
`pee er e a .
`
`. . . . .
`
`733/675?
`
`. . . ..
`
`(54) METHOD AND SYSTEM FOR
`
`CONFIGURATION MANAGEMENT
`
`DATABASE SOFTWARE LICENSE
`COMPLIANCE
`
`(75) Inventors: Anthony George Myers, Brooklin
`(CA); Thomas Louis Adrian’ Dublin’
`CA (Us)
`
`_
`(73) Asslgnee: BMC Software, Inc., Houston, TX (U S)
`
`( * ) Notice:
`
`Subject to any disclaimer s the term Ofthis
`patent is eXIended 01‘ adjusted under 35
`U.S.C. 154(b) by 881 days.
`
`(21) Appl. N0.: 12/634,534
`
`(22) Filed:
`
`Dec. 9, 2009
`
`(65)
`
`Prior Publication Data
`
`US 2010/0251379 A1
`
`Sep. 30, 2010
`
`Related U_s_ Application Data
`
`(60) Provisional application No. 61/165,505, ?led on Mar.
`31, 2009.
`(51) Int- Cl-
`G06F 21/00
`(52) us. Cl.
`USPC ................. .. 726/26; 726/6; 726/ 10; 7 13/ 156;
`713/157; 705/59
`
`(201301)
`
`(58) Field of Classi?cation Search
`None
`See application ?le for Complete Search history
`'
`
`(56)
`
`References Cited
`
`US. PATENT DOCUMENTS
`
`7,155,414 B2 * 12/2006 BarritZ et al. ................. .. 705/59
`7,249,107 B2 *
`7/2007 Yaacovi ..... ..
`705/59
`7,761,530 B2 *
`7/2010 Cain et al. ...... ..
`.. 709/213
`7,797,678 B2 *
`9/2010 Moulckers et al. ......... .. 717/121
`
`707/100
`9/2006 Barrenechea .... ..
`2006/0200477 A1 *
`705/29
`2007/0100712 A1* 5/2007 Kilpatrick et al. .
`..... .. 707/5
`2007/0239700 A1* 10/2007 Ramachandran ..
`715/745
`2008/0065993 A1 *
`3/2008 Huang ......... ..
`726/29
`2008/0209575 A1 *
`8/2008 Conrado et al.
`. . . . . .. 726/1
`2008/0256593 A1* 10/2008 Vlnberg et al. . . . .
`709/220
`2009/0019137 A1* 1/2009 Mishra et al. .... ..
`2009/0210435 A1* 8/2009 Akiyama et al. ............ .. 707/100
`OTHER PUBLICATIONS
`
`German, Daniel M.; Hassan, Ahmed E. License Integration Patterns:
`Addressing License Mismatches in Component-Based Develop
`ment. IEEE 31st International Conference on Software Engineering.
`Pub. Date: 2009. Relevant pp. 188-198. Found on the World Wide
`Web
`at:
`http://ieeexploreieee.org/stamp/stamp.
`jsp?tp:&arnumber:5070520.*
`BMC Remedy IT Service Management 7.5.00 Con?guration Guide,
`Jan. 2009, © 1998, 2003, 2005-2006, 2009 BMC Software, Inc.
`BMC Atrium Core 7.5.00 Concepts and Planning Guide,
`Jan. 2009, © 2009 BMC Software, Inc.
`BMC Atrium CMDB 7.5.00 User’s Guide, Jan. 2009, © 2006-2007,
`2009 BMC Software, Inc.
`BMC Remedy Asset Management 7.5.00 User’s Guide, Jan. 2009,
`©1996, 1998-1999, 2002-2006, 2009 BMC Software, Inc.
`
`* cited by examiner
`Zrir'nary lgcaminer * CJOrdeliZhZZcher
`sslslanl xammer * erem1
`very
`(57)
`ABSTRACT
`A softWarc license engine allows an enterprise to model soft
`ware license contracts and evaluate deployment of software
`for compliance with the software license'contracts. Deploy
`ment of software products in the enterpr1se is modeled in a
`con?guration management database. The software license
`engine maintains a license database for connecting software
`license contracts with software deployment modeled by the
`con?guration management database. Users of the software
`license engine may use license types that are prede?ned in the
`software license engine or may de?ne custom license types.
`The software license engine may indicate compliance or non
`compliance with the software license contracts.
`20 Claims, 15 Drawing Sheets
`
`/-100
`
`@)
`
`4l0
`PURCHASE AND
`DE PLOY LICENSES
`
`'- - - - 1
`
`|
`410
`|
`'CNEATE LICENSEI
`'
`TYPE
`I
`
`430
`CREATE LICENSE
`CERTIFICATE
`
`440
`RIIN LICENSE
`ENGINE
`
`@
`
`ServiceNow's Exhibit No. 1001
`
`001
`
`
`
`US. Patent
`
`Feb. 4, 2014
`
`Sheet 1 0f 15
`
`US 8,646,093 B2
`
`5: o: o: o: o:
`
`
`
`
`
`$5.28 $5.228 $528 $528 $528
`
`
`
`
`
`
`
`
`
`$55 $55 $55 $55 $55
`
`
`
`
`
`5 6E
`
`228 2 _
`
`$528
`
`$55
`
`_.||||||||||||||||||
`
`ServiceNow's Exhibit No. 1001
`
`002
`
`
`
`US. Patent
`
`Feb. 4, 2014
`
`Sheet 2 0f 15
`
`US 8,646,093 B2
`
`[-200
`
`2'°—\
`
`WEB
`CLIENT
`
`APPLICATION /—220
`CLIENT
`
`23
`°_\ WEB
`SERVICES
`
`240
`AH /_
`
`CMDB SERVER
`
`4-/—||0
`
`LICENSE ENGINE / 250
`
`FIG. 2
`
`ServiceNow's Exhibit No. 1001
`
`003
`
`
`
`US. Patent
`
`Feb. 4, 2014
`
`Sheet 3 0f 15
`
`US 8,646,093 B2
`
`36
`
`INPUT
`
`DISPLAY
`
`INPUT/
`OUTPUT
`
`[300
`
`PU
`
`MEMORY
`
`NETWORK
`INTERFACE
`
`/—320
`
`/—380
`
`FIG. 3
`
`ServiceNow's Exhibit No. 1001
`
`004
`
`
`
`US. Patent
`
`Feb. 4, 2014
`
`Sheet 4 0f 15
`
`US 8,646,093 B2
`
`[-400
`
`I
`
`START
`
`I
`
`4I0
`PURCHASE AND
`DEPLOY LICENSES
`
`|
`420
`|
`: CREATE LICENSE |
`I
`TYPE
`I
`|
`
`_I
`
`430
`CREATE LICENSE
`CERTIFICATE
`
`440
`RUN LICENSE
`ENGINE
`
`END
`
`FIG. 4
`
`ServiceNow's Exhibit No. 1001
`
`005
`
`
`
`US. Patent
`
`Feb. 4, 2014
`
`Sheet 5 0f 15
`
`US 8,646,093 B2
`
`I
`
`START
`
`I
`
`5I0
`GET LIST OF CIS
`TO PROCESS
`
`520
`EVALUATE
`CORRELATION RULES
`
`550
`EVALUATE
`COMPLIANCE RULES
`
`/—500
`
`540
`EXCEPTION
`PROCESSING
`
`5T0
`EXCEPTION
`PROCESSING
`
`FIG. 5
`
`ServiceNow's Exhibit No. 1001
`
`006
`
`
`
`US. Patent
`
`Feb. 4, 2014
`
`Sheet 6 6f 15
`
`US 8,646,093 B2
`
`.0 6E as :25: N
`
`
`
`MERE mm: :8 Mm: $25: 55.5
`
`
`
`
`
`
`
`52512 $25: ~
`
`. A|
`
`
`2255 3%: N 20 252 $555 N
`5% NENNNM
`
`c8
`
`5m:
`
`:5
`
`NS
`
`$5
`
`03
`
`
`
`$253 m__.=
`
`ServiceNow's Exhibit No. 1001
`
`007
`
`
`
`US. Patent
`
`Feb. 4, 2014
`
`Sheet 7 0f 15
`
`US 8,646,093 B2
`
`N 6E
`
`
`
`E8 Mm: | £25: 55.:
`
`ServiceNow's Exhibit No. 1001
`
`008
`
`
`
`US. Patent
`
`Feb. 4, 2014
`
`Sheet 8 0f 15
`
`US 8,646,093 B2
`
`FIG. 8
`
`
`
`TIE BACK TO SITE
`
`
`
`
`
`INSTALLED PACKAGES SITE LICENSE PURCHASED, ALL
`
`
`
`
`
`
`
`
`
`4 INSTANCES FOUND ALL TIED TO SITEI
`
`660 SWCI
`
`6T0 CERTI
`
`6I0 COMI
`
`
`
`CLIENT LICENSE — SITE (LOCATION)
`
`
`
`
`
`ServiceNow's Exhibit No. 1001
`
`009
`
`
`
`ServiceNow's Exhibit No. 1001
`
`010
`
`
`
`US. Patent
`
`Feb. 4, 2014
`
`Sheet 10 0f 15
`
`US 8,646,093 B2
`
`55.255 muss’: M
`
`52512 325: N
`
`E2522 $253 M
`
`
`
`. r r F h r .r...
`
`3 6E @253 W a 32% 2 Ma magma mm a gag Em gig
`
`
`
`2C 252 $555 m
`
`82
`
`
`
`MERE Mm: ES Mm:
`
`c3
`
`28
`
`ServiceNow's Exhibit No. 1001
`
`011
`
`
`
`US. Patent
`
`Feb. 4, 2014
`
`Sheet 11 0115
`
`US 8,646,093 B2
`
`
`
`52512 $25: N
`
`
`
`225E muss: M 52
`
`
`
`N =0 2.2 QZEE M
`
`2 6E Egg a Q a a g Egg
`
`. r h L a .
`
`8: SEE E: E8 Mm:
`
`6%
`
`IE
`
`NS
`
`$5
`
`o;
`
`28
`
`ServiceNow's Exhibit No. 1001
`
`012
`
`
`
`US. Patent
`
`Feb. 4, 2014
`
`Sheet 12 0f 15
`
`US 8,646,093 B2
`
`
`
`NF 6E magma Egg
`
`
`
`
`
`a gamma 2 z?ggm Egg Egg .gzwmzw Wm
`
`
`
`ESEES 2 9:5: £25: N
`
`Al
`
`82
`
`
`
`MERE Mm: :8 mm:
`
`OS
`
`:5
`
`NS
`
`SE
`
`c;
`
`ES
`
`ServiceNow's Exhibit No. 1001
`
`013
`
`
`
`US. Patent
`
`Feb. 4, 2014
`
`Sheet 13 0f 15
`
`US 8,646,093 B2
`
`ServiceNow's Exhibit No. 1001
`
`014
`
`
`
`US. Patent
`
`Feb. 4, 2014
`
`Sheet 14 0f 15
`
`US 8,646,093 B2
`
`c3
`
`E8
`
`ServiceNow's Exhibit No. 1001
`
`015
`
`
`
`ServiceNow's Exhibit No. 1001
`
`016
`
`
`
`US 8,646,093 B2
`
`1
`METHOD AND SYSTEM FOR
`CONFIGURATION MANAGEMENT
`DATABASE SOFTWARE LICENSE
`COMPLIANCE
`
`CROSS REFERENCE TO RELATED
`APPLICATIONS
`
`This application claims priority to US. Provisional Appli
`cation Ser. No. 61/165,505 entitled “A Method and System
`for Con?guration Management Database Software License
`Compliance” ?led Mar. 31, 2009 and which is incorporated
`by reference in its entirety herein.
`
`BACKGROUND
`
`2
`Veri?cation and compliance processesiVeri?cation and
`compliance of software asset management policies and pro
`cedures.
`Relationship management processesiSoftware contract
`management.
`Conventional CMDBs, however, do not provide adequate
`capability for that an enterprise is in compliance with the
`terms of its software license contracts.
`
`SUMMARY
`
`In one embodiment, a method is disclosed. The method
`comprises storing a ?rst model of deployment of a software
`product in a con?guration management database (CMDB);
`storing a second model of a software license contract for the
`software product in a license database; and evaluating com
`pliance of the software license contract. Evaluating compli
`ance comprises connecting the ?rst model and the second
`model; comparing the ?rst model and the second model; and
`generating an exception indication if the act of comparing the
`?rst model and the second model indicates non-compliance
`with the software license contract.
`In another embodiment, a system is disclosed. The system
`comprises a server computer, which comprises a processor; a
`con?guration database, coupled to the processor; a license
`database, coupled to the processor; and a program store,
`coupled to the processor, on which is stored instructions for
`the processor, wherein the instructions cause the processor to
`perform the method disclosed above.
`In yet another embodiment, a computer readable medium
`is disclosed. The computer readable medium stores instruc
`tions for a programmable control device that cause the pro
`grammable control device to perform the method disclosed
`above.
`In yet another embodiment, a networked computer system
`is disclosed. The networked computer system comprises a
`plurality of computers on which software products are
`deployed; and one or more con?guration management data
`base computers, communicatively coupled to the plurality of
`computers, programmed to perform the method disclosed
`above.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`FIG. 1 shows, in block diagram form, an example of a
`collection of computer systems of an enterprise that are man
`aged by a CMDB according to one embodiment.
`FIG. 2 shows, in block diagram form, a CMDB system
`according to one embodiment.
`FIG. 3 shows, in block diagram form, an example comput
`ing device used for the credential server or client according to
`one embodiment.
`FIG. 4 shows, in ?owchart form, an example technique for
`monitoring and verifying software license compliance
`according to one embodiment.
`FIG. 5 shows, in ?owchart form, an example of a technique
`employed by a license engine according to one embodiment;
`and
`FIGS. 6-15 show, in graph form, examples of compliance
`and non-compliance determined by a license engine accord
`ing to one embodiment.
`
`DETAILED DESCRIPTION
`
`Various embodiments disclosed herein provide the ability
`to use a CMDB to monitor and verify software license com
`pliance in an enterprise. Using a variety of rules related to
`
`This disclosure relates generally to the ?eld of ITIL®
`based (Information Technology Infrastructure Library) Con
`?guration Management Databases (CMDBs). (ITIL is a reg
`istered trademark of The Lords Commissioners of Her
`Majesty’s Treasury acting through The O?ice of Government
`Commerce and Central Computer and Telecommunications
`Agency, United Kingdom.) ITIL-based CMDBs are emerg
`ing as a prominent technology for Enterprise Management
`Software.
`The usefulness of these CMDBs is dependent on the qual
`ity, reliability, and security of the data stored in them. A
`CMDB often contains data about managed resources known
`as Con?guration Items (CIs). ITIL version 3 de?nes a CI as
`“Any Component that needs to be managed in order to deliver
`an IT Service. Information about each CI is recorded in a
`Con?guration Record within the Con?guration Management
`System and is maintained throughout its Lifecycle by Con
`?guration Management. CIs are under the control of Change
`Management. CIs typically include IT Services, hardware,
`software, buildings, people, and formal documentation such
`as Process documentation and [Service Level Agreements].”
`The CMDB serves as a point of integration between various
`IT management processes. Data from multiple sources often
`needs to be managed directly or by reference in commercial
`CMDBs.
`One kind of CI that may be managed in a CMDB is a
`software asset. Organizations can acquire software in differ
`ent manners. Software can be built for a speci?c purpose
`within the company. Software can be purchased from a soft
`ware vendor or outsourcer. Software can be acquired through
`an acquisition or merger between companies, or between
`departments within a single company. Software asset man
`agement is a core component of an overall asset management
`policy. IT Infrastructure Library (ITIL) in the Software Asset
`Management Book de?nes software asset management as
`“all of the infrastructure and processes necessary for the
`effective management, control and protection of the software
`assets within an organiZation, throughout all stages of their
`lifecycle.” ITIL indicates that the following processes make
`up the holistic approach to software asset management:
`Overall management processesiThe management pro
`cesses surrounding the other software assets management
`processes. The overall management processes are related to
`change management.
`Core asset management processesiIdenti?cation of soft
`ware assets, including maintaining this information in the
`con?guration management database (CMDB).
`Logistic processes4Control of the software asset life
`cycle. These processes include procurement, deployment,
`and end of life.
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`ServiceNow's Exhibit No. 1001
`
`017
`
`
`
`US 8,646,093 B2
`
`20
`
`25
`
`30
`
`3
`different license types, a license engine may associate license
`certi?cates with software contracts, and evaluate compliance
`with some of the terms of those contracts. When a non
`compliance event is discovered, the enterprise may take
`appropriate action to bring the software assets represented by
`the CIs in the CMDB into compliance with the license con
`tracts under which the software was acquired.
`In the following description, for purposes of explanation,
`numerous speci?c details are set forth in order to provide a
`thorough understanding of the invention. It will be apparent,
`however, to one skilled in the art that the invention may be
`practiced without these speci?c details. In other instances,
`structure and devices are shown in block diagram form in
`order to avoid obscuring the invention. References to num
`bers without subscripts are understood to reference all
`instance of subscripts corresponding to the referenced num
`ber. Moreover, the language used in this disclosure has been
`principally selected for readability and instructional pur
`poses, and may not have been selected to delineate or circum
`scribe the inventive subject matter, resort to the claims being
`necessary to determine such inventive subject matter. Refer
`ence in the speci?cation to “one embodiment” or to “an
`embodiment” means that a particular feature, structure, or
`characteristic described in connection with the embodiments
`is included in at least one embodiment of the invention, and
`multiple references to “one embodiment” or “an embodi
`ment” should not be understood as necessarily all referring to
`the same embodiment.
`FIG. 1 is a block diagram illustrating a CMDB server 110
`that manages a collection of computer systems 120 for an
`enterprise 100. Each of the computer systems 120 has hard
`ware and software components, including network connec
`tivity components that are modeled as CIs in the CMDB
`server 110. Although illustrated here as a single CMDB
`server 110 for clarity, a CMDB may comprise a plurality of
`35
`computer systems that together provide the services of the
`CMDB server 110. The computer systems 120 may be any
`types of computer systems, including laptop, desktop, blade
`server, and mainframe computers. In addition to modeling the
`organizational structure of the enterprise 100 and the hard
`ware components of the computer systems 120 as CIs, the
`CMDB server 110 may model the software product packages
`or components installed on each of the computer systems 120,
`as well as the software contracts under which that software is
`licensed. Discovery of those hardware and software compo
`nents is preferably an automated process, but the techniques
`for discovering and storing the information modeled by CIs
`for hardware and software components in the CMDB server
`110 is outside the scope of the present invention.
`FIG. 2 is a block diagram illustrating a system 200 accord
`ing to one embodiment with the CMDB server 110 of FIG. 1
`and a pair of clients 210 and 220. The CMDB server 110 may
`comprises a number of software components, including a web
`services component 230 for interacting with a web client
`computer 210, and an Application Programming Interface
`(API) 240 for interacting with an application client computer
`220. The application client computer 220 may be a computer
`running any application designed to interact with the CMDB
`server 110 through the API, including, for example, a desktop
`computer with a CMDB client application running in a
`Microsoft WINDOWS® environment (WINDOWS is a reg
`istered trademark of Microsoft Corporation) that provides a
`graphical user interface (GUI) to the user of the client com
`puter 220; however, an application may interact with the
`CMDB server 110 without a GUI.
`The CMDB server 110 also comprises a license engine 250
`for performing the functionality described in more detail
`
`55
`
`4
`below related to software license compliance. The CMDB
`server 110 may include other software components for pro
`viding CMDB functionality as desired.
`Data for the CMDB server 110 is illustrated as stored in a
`CMDB datastore 260 and a license datastore 270. The CMDB
`datastore 260 comprises the storage for the conventional
`CMDB data, including CIs. Although shown as a single unit
`in FIG. 2, the CMDB datastore 260 may be implemented as a
`plurality of storage units as desired. The techniques for stor
`ing the data in the CMDB datastore 260 are outside the scope
`of the present invention. The license datastore 270 is illus
`trated as a separate datastore for clarity, but may be integrated
`with the CMDB datastore 260. The license datastore 270
`provides storage for to model software contracts, including
`rules against which the CIs are evaluated for software license
`compliance and other information necessary for processing
`those rules. The CMDB datastore 260 and the license datas
`tore 270 may be implemented as a collection of ?at ?les, a
`structured query language database, or in any other way
`desired.
`Referring now to FIG. 3, an example computer 300 for
`providing the CMDB server 110 is shown. Example CMDB
`server computer 300 comprises a system unit 310 which may
`be optionally connected to an input device or system 360
`(e.g., keyboard, mouse, touch screen, etc.) and display 370. A
`program storage device (PSD) 380 (sometimes referred to as
`a hard disc) is included with the system unit 310. Also
`included with system unit 310 is a network interface 340 for
`communication via a network with other computing and cor
`porate infrastructure devices (not shown). Network interface
`340 may be included within system unit 310 or be external to
`system unit 310. In either case, system unit 310 will be com
`municatively coupled to network interface 340. Program stor
`age device 380 represents any form of non-volatile storage
`including, but not limited to, all forms of optical and magnetic
`storage elements including solid-state storage, including
`removable media, and may be included within system unit
`310 or be external to system unit 310. Program storage device
`380 may be used for storage of software to control system unit
`310, data for use by the credential store system 300, or both.
`System unit 310 may be programmed to perform methods
`in accordance with this disclosure (examples of which are in
`FIGS. 4-5). System unit 310 comprises a processor unit (PU)
`320, input-output (I/O) interface 350 and memory 330. Pro
`cessing unit 320 may include any programmable controller
`device including, for example, one or more members of the
`Intel Core®, Pentium® and Celeron® processor families
`from the Intel and the Cortex and ARM processor families
`fromARM. (INTEL, CORE, PENTIUM, and CELERON are
`registered trademarks of the Intel Corporation. CORTEX is a
`registered trademark of the ARM Limited Corporation. ARM
`is a registered trademark of the ARM Limited Company.)
`Memory 330 may include one or more memory modules and
`comprise random access memory (RAM), read only memory
`(ROM), programmable read only memory (PROM), pro
`grammable read-write memory, and solid-state memory. One
`of ordinary skill in the art will also recogniZe that PU 320 may
`also include some internal memory including, for example,
`cache memory.
`Similar computer systems may be used as clients for
`accessing the CMDB server 110, such as the web client 210
`and the application client 220 of FIG. 2.
`FIG. 4 is a ?owchart illustrating a technique 400 for per
`forming software license compliance monitoring and veri?
`cation according to one embodiment. In block 410, the soft
`ware licenses are purchased or otherwise acquired and
`deployed on the computer systems 120 of the enterprise 100.
`
`40
`
`45
`
`50
`
`60
`
`65
`
`ServiceNow's Exhibit No. 1001
`
`018
`
`
`
`5
`Information about the software contracts is stored as CIs in
`the CMDB datastore 260 using one or more of the clients
`210/220. Table 1 illustrates an example of information that
`may be stored about a software contract according to one
`embodiment. The information listed below is illustrative only
`and other collections of information about software contracts
`may be used as desired.
`
`TABLE 1
`
`Software Contract Information
`
`Field name
`
`Description
`
`ID
`Summary
`Term
`
`Status
`
`C ompany
`View
`
`Supplier Name
`Cost Center
`Support Company
`
`Support Organization
`
`Noti?cation Group
`
`Noti?cation Contact
`
`Owner Group
`Owner Contact
`Expiration Date
`
`Noti?cation Date
`
`A unique alphanumeric value.
`Brief description of the contract.
`Select the applicable term:
`Fixed4Contract expires at the expiration
`date.
`Never Ending4Contract never expires.
`Rolling Contract4Contract automatically
`renews at the expiration date
`Select the applicable status of the contract:
`DraftiThe contract has never been executed
`but is going through the process ofbeing
`executed. Draft status may be used for
`contracts that are in negotiation or pending
`signature.
`ExecutediThe contract that is executed and
`valid. Executed contracts include active
`contracts that have started. An executed
`contract may have additional status
`information, including status reasons, such as:
`active, change pending, on hold, requires
`attention, under renegotiation.
`HistoricaliThe contract is not valid.
`Historical contracts include contracts that
`have expired, been terminated, or been
`canceled.
`DeleteiThe contract is scheduled for
`deletion.
`The company associated with this contract.
`Access Select who can view or modify this
`contract:
`PubliciAnyone who can access contracts
`can view or modify the contract.
`Internal4Only people in the support group
`managing this contract can view or modify
`the contract.
`The supplier associated with this contract.
`The cost center that owns this contract.
`The support company associated with this
`contract.
`The support organization associated with this
`contract.
`The noti?cation group associated with this
`contract.
`An individual to receive noti?cations for this
`contract.
`The group responsible for this contract.
`An individual responsible for this contract.
`Date contract expires. When a contract
`expires, individuals are noti?ed ?rst, then
`groups.
`When the contract expires, the noti?cation
`contact and the owner contact are noti?ed on
`this date.
`
`Site
`
`55
`
`Some of the information listed in Table 1 above may be
`optional and omitted as desired when entering information
`about a software contract into the CMDB datastore 260.
`After the information about each software contract
`deployed is entered into the CMDB datastore 260, in one
`embodiment in block 420 a new license type may be created,
`if needed. Block 420 is shown in dashed lines, indicating that
`this block may omitted if all necessary license types have
`already been created or in embodiments which do not provide
`for creation of custom license types.
`
`60
`
`65
`
`US 8,646,093 B2
`
`6
`License types may be used for software license manage
`ment. In one embodiment, a license type wiZard allows
`administrators with appropriate permissions to create custom
`license types for license certi?cates. After the license type
`wiZard has been completed and the license type has been
`saved, the license types are used when a contract manager or
`software asset manager creates certi?cates in block 440, as
`described below.
`When the license engine runs, company and product infor
`mation and answers to correlation rules questions supplied
`when the certi?cate was created are used to determine which
`CIs should be connected to the license certi?cates. Compli
`ance is also calculated based on the answers to questions
`supplied and the con?gured compliance actions that act on
`these values. In one embodiment, a default behavior for con
`nection compares the company information and product cat
`egoriZation in license certi?cates with CIs to determine which
`CIs to connect to a license certi?cate. In one embodiment, a
`default behavior for compliance queries license certi?cates
`that match a license type and tests the result of the query
`against compliance criteria.
`In one embodiment, license types may specify the follow
`ing information:
`(1) What questions a contract manager or software asset
`manager must answer when adding a new software license
`certi?cate.
`(2) How connection questions are used to select CIs from
`the CMDB datastore 260.
`(3) How compliance is computed based on compliance
`questions and actions speci?ed during license type creation,
`such as relating CIs to a license certi?cate or creating excep
`tions.
`In one embodiment, the CMDB server 110 provides a
`default set of pre-de?ned license types, as illustrated in Table
`2 below. These license types are illustrative and by way of
`example only, and other license types may be provided as
`pre-de?ned license types.
`
`TABLE 2
`
`License Types
`
`20
`
`25
`
`30
`
`35
`
`40
`
`Contract type
`
`Description
`
`Enterprise
`
`45
`
`An enterprise license type licenses all of the software
`from a manufacturer that is being used by a given
`company. There is one enterprise license per
`company. Anyone in the company can use the license.
`This license type is set to non-groupable.
`Connection
`
`50
`
`Uses the default certi?cate criteria for connections.
`Compliance
`
`One computed compliance question is speci?ed for
`number of licenses deployed. The certi?cate for this
`license type is always compliant.
`A site license type licenses all ofthe software from a
`manufacturer that is being used by a given site. A site
`license applies to a single site within a company. Ifa
`site license applies to multiple sites within a company,
`the contract manager or software asset manager can
`add a site license certi?cate for each site. This license
`type is set to non-groupable.
`Connection
`
`Uses the default certi?cate criteria for connections.
`In addition, one connection question exists for this
`license type, which is “Enter Certi?cate Site?” When
`the license type is created, this question maps to the
`site of the computer system on which the product is
`installed.
`
`ServiceNow's Exhibit No. 1001
`
`019
`
`
`
`US 8,646,093 B2
`
`7
`TABLE 2-continued
`
`License Tvpes
`
`C ontract typ e
`
`Description
`
`For each product that matches the default certi?cate
`criteria for connections, the site of the computer
`system on which the product is installed is used to
`connect the product to the license certi?cate for that
`site.
`For example, a contract manager creates a license
`certi?cate with the default certi?cate criteria for
`connections:
`Company = XYZ Services
`Manufacturer = Microsoft
`Product = Visio
`The contract manager speci?es this Site license
`certi?cate is for BackOf?ce Support.
`A copy of Microsoft Visio is installed on a computer
`in Frontof?ce Support. That product is not connected
`to the license certi?cate.
`A computer in BackOf?ce Support Services has both
`Microsoft Visio and Microsoft Word installed.
`Microsoft Visio is connected to the site license, but
`Microsoft Word is not (perhaps it is connected to
`an Enterprise license).
`Compliance
`
`One computed compliance question is speci?ed for
`number of licenses deployed. The certi?cate for this
`license type is always compliant.
`Each instance ofthe license is counted as one license
`consumed.
`Any instance of software found requires a license.
`This license type is set to groupable.
`Connection
`
`Uses the default certi?cate criteria for connections.
`Compliance
`
`The following compliance question is asked:
`Number of licenses purchased?
`Breach warning level 1?
`Breach warning level 2?
`Number of licenses deployed (computed question)
`The answers to this question are used to:
`Determine the number of software instances related to
`the certi?cate
`Set the certi?cate to not compliant, if the number of
`software instances related to a certi?cate is greater
`than the number purchased.
`Example
`
`Two instances of BMC Atrium CMDB Enterprise
`Manager were found. In this situation, two licenses are
`required.
`The number of copies per device is counted as one
`license consumed. If the number of copies per device
`is exceeded, the license is out ofcompliance. The per
`device number speci?ed for a license type determines
`how many copies can be installed on each device. This
`license type is set to groupable.
`Connection
`
`Uses the default certi?cate criteria for connections.
`Compliance
`
`The following compliance questions are asked:
`Number of licenses purchased?
`Breach warning level 1?
`Breach warning level 2?
`Number of copies allowed per device?
`Number of licenses deployed (computed question).
`The answers to these questions are used to compute
`compliance:
`If any devices have more than the allowable number
`per device, the certi?cate is marked as not compliant.
`Also, ifthe number of software licenses related to a
`certi?cate is greater than the number purchased, the
`certi?cate is marked as not compliant.
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`Per instance
`
`Per copy per
`device
`
`8
`TABLE 2-continued
`
`License Types
`
`Contract type
`
`Description
`
`Example
`
`Per copy
`
`Fixed
`
`Floating
`
`Two copies ofMicrosoft Word were found on a
`computer, but only one license exists. If the number of
`copies allowed on a device is one, this is not
`compliant.
`This license type is per copy per user. Each unique
`user (since, for example, there could be two software
`items linked to one user) is counted as one license
`consumed. Ifa user is not linked to a license, it is
`assumed that one license is consumed. This license
`type is set to groupable.
`Connection
`
`Uses the default certi?cate criteria for connections.
`Compliance
`
`Compliance is computed based on the number of
`unique individuals using a software product. The
`following compliance question will be asked:
`Number of licenses purchased?
`Breach warning level 1?
`Breach warning level 2?
`Number of licenses deployed (computed question).
`The answers to these questions are used to determine
`the number of unique individuals connected to a
`product. If the number counted is greater than the
`number of licenses purchased, the license certi?cate is
`set to not compliant.
`Example
`
`Two copies of an application were found on separate
`computers owned by one user and only one license
`exists. This situation is compliant, because only one
`license is required.
`This license type requires a license for every user
`using the product.
`Connection
`
`Uses the default certi?cate criteria for connections.
`Compliance
`
`Compliance is computed based on the number of
`individuals using a software product, not the number
`of installations.
`This license type is per concurrent user.
`Connection
`
`Uses the default certi?cate criteria for connections.
`Compliance
`
`Compliance is computed based on the maximum
`number of concurrent users. The number may be
`unlimited.
`
`Preferably, custom license types in addition to the those
`listed in Table 2 above may be de?ned.
`
`After any new license types are created to handle the terms
`of the new software contracts terms, license certi?cates may
`be created in block 430, to link software contracts to C15. A
`license certi?cate indicates the right to deploy software in the
`environment managed by the CMDB server 110. In one
`embodiment, a license certi?cate comprises the information
`listed in Table 3 below. The information disclosed in Table 3
`below is illustrative and by way of example only, and other
`license certi?cate information may be used.
`
`ServiceNow's Exhibit No. 1001
`
`020
`
`
`
`ServiceNow's Exhibit No. 1001
`
`021
`
`
`
`ServiceNow's Exhibit No. 1001
`
`022
`
`
`
`ServiceNow's Exhibit No. 1001
`
`023
`
`
`
`ServiceNow's Exhibit No. 1001
`
`024