throbber
(12) Ulllted States Patent
`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

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