`
`United States Patent
`Colossoetal.
`
`(10) Patent No.:
`(45) Date of Patent:
`
`US 7,962,424 B1
`Jun. 14, 2011
`
`US007962424B1
`
`(54)
`
`(75)
`
`OVERDRAFTLICENSES AND LICENSE
`DISTRIBUTION
`
`Inventors: Juan-Carlos Colosso, Mt. View. CA
`(US); Katherine K. Nadell, Sunnyvale,
`CA (US); Wei Cheng, San Jose, CA
`(US)
`
`(73)
`
`Assignee: Adobe Systems Incorporated, San Jose,
`CA (US)
`
`5/2002 Hillegassetal.
`2002/0065781 Al
`8/2002 Biddleetal.
`2002/01L07809 Al
`11/2002 Yanget al.
`2002/0169625 Al
`3/2004 Stefik etal. wu... 7TOS/SL
`2004/0059678 Al*
`4/2004 Goringeet al.
`2004/0078339 Al
`§/2004 Rajamani
`2004/0088176 Al
`6/2004 Rich etal.
`2004/0117467 Al
`6/2004 Endoh
`2004/0117784 Al
`5/2005 Misra et al.
`2005/0102240 Al
`6/2005 Harperet al.
`2005/0132347 Al
`11/2006 Cutter et al.
`2006/0265334 AQ
`2/2007 Kinsley etal.
`2007/0026942 Al
`FOREIGN PATENT DOCUMENTS
`(*) Notice:—Subject to any disclaimer, the termofthis
`JP
`07200492 A *
`8/1995
`patent
`is extended or adjusted under 35
`U.S.C. 154(b) by 1002 days.
`
`
`
`* cited by examiner
`
`Primary Examiner—James A Reagan
`(21)
`Appl. No.: 11/585,561
`(74) Attorney, Agent, or Firm — Kilpatrick Townsend &
`Stockton LLP
`
`(22)
`
`Filed:
`
`Oct. 24, 2006
`
`(51)
`
`(52)
`
`(58)
`
`(56)
`
`Int. Cl,
`(2006.01)
`GO06F 21400
`DSCs iesscessecievss 705/901; 705/50; 705/51; 705/54;
`705/57; 705/59; 705/902; 705/903; 705/904;
`705/908; 705/911; 380/227; 380/228; 380/229:
`380/230; 380/201; 380/202: 380/203; 380/204
`Field of Classification Search .................... 705/50,
`705/51, 54, 57, 59, 901-904, 908, 911;
`380/227-230, 201-204
`See applicationfile for complete searchhistory.
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`5,204,897 A ™
`5,579,222 A
`5,745,879 A
`6,615,191 Bl
`6,760,324 Bl
`7,035,918 Bl
`7,603,318 Bl
`
`4/1993) Wyman wee 710/200
`11/1996 Bains etal,
`4/1998 Wyman
`9/2003 Seeley
`7/2004 Scott et al.
`4/2006 Reddingetal.
`10/2009 Colosso et al.
`
`(57)
`
`ABSTRACT
`
`In response toreceiving anorder(e.g., including payment for
`one or more software licenses), a license distribution manager
`allocates a specified number of software licenses for distri-
`bution to a corresponding customer’s clients that utilize the
`licenses to operate software associated with a corresponding
`vendor software application. The license distribution man-
`ager can allocate one or more overdraft licenses for distribu-
`tion to the customerin addition to the specified number of
`software licenses associated with the order. Accordingly, the
`license distribution manager can allocate extra software
`licenses (e.g., the overdraft licenses) and distribute moresoft-
`ware licenses than are actually purchased by a respective
`customer. This enables the customerto use one or more pro-
`visional
`licenses (e.g., overdraft
`licenses)
`that support
`restricted use of the vendor's software application such as
`until the customer can replace the provisional licenses with
`corresponding purchased licenses.
`
`26 Claims, 8 Drawing Sheets
`
` NETWOR
`
`(E.G., CUSTOMER MANAGED
`NETWORK ENVIRONMENT}
`
`GOOGLE 1006
`
`GOOGLE 1006
`
`1
`
`
`
`U.S. Patent
`
`Jun. 14, 2011
`
`Sheet 1 of 8
`
`US 7,962,424 BI
`
`
`
`OS9VNVINYOGNSA
`
`
`
`INSLSASSNISN3SON
`
`
`
`YONLSN
`
`y3qYNO
`
`LOW
`
`WALSAS
`
`Set
`
`OFE
`
`‘sD
`
`
`
`(¥aANaS“9'3)
`
`YSAYsaS
`
`oO)
`o_
`
`|
`
`YSOVNViPlas.
`‘isla¥yaeONGgol-3SN30I1i‘,=@a
`inaito|ANAIT9i 0or
` Orr
`O-Soraso|?Z-SOL5LNAId
`
`
`
`
`
`
`GSOVNVINH3SINOLSND“9'3)
`
`
`
`(LNSWNOUIANSHYOMLSEN
`
`2
`
`
`
`
`
`
`U.S. Patent
`
`Jun. 14, 2011
`
`Sheet 2 of 8
`
`US 7,962,424 BI
`
`OL
`
`bLL
`
`O4NI
`
`SAVG021
`
`NOILVuldxX3adsa1gsVvN30319313sYASWNANQ31sVNa-SSN350I1AAAAAS-O€7
`
`
`
`
` dOY38WNNAAAaAS-0r~b-0¢e€-0rec-0breL-OFe
`
`
`
`
`
`v-0€Z€-0€22-082L-0€z
`
`O4NISSYuNLVA4IMS|ONILSOHMSAMaS|SASNSOITIOLOndoud
`
`WNLaduad
`NOLLValdX4
`
`
`Z‘AX'MYSAYSSYHOUNSASw|08LYVBONDVaw”
`ow|S3aYNLV3a4MS
`Qa18VNA
`
`
`
`‘(09LNAWdOTAAACANDV-YSINOLSND
`AdALNOLLNEIMLSIG|GaYyaqYo
`
`SdALNOILNEINLSIO
`
`ONILSOHYSAYSS
`
`YAAYSSYOUNSA
`daL0313s
`
`9SVECL#YAQHOASWHOWNd
`
`LIVYdHAAOLonaoudd
`AlawivAy|GA1aVN3-3SN3011
`
`¢Old
`
`SSSN39I1
`
`3
`
`
`
`
`
`
`
`U.S. Patent
`
`Jun. 14, 2011
`
`Sheet 3 of 8
`
`US 7,962,424 Bl
`
`Ort
`
`‘$9
`
`
`
`(YSAYAS“9*‘3)
`
`ort
`
`YADVNVIN
`
`ASN30N1
`
`sid—_—
`
`
`
`
`
`LNSI19
`
`b-SOL
`
`YsAYSS
`
`oot
`
`€Old
`
`L-S9L
`
`*
`
`LNANS
`
`LNAI
`
`LNaAIND
`
`oeteenenee
`
`cecusenenouee®
`
`4
`
`
`
`
`
`
`
`
`
`U.S. Patent
`
`Jun. 14, 2011
`
`Sheet 4 of 8
`
`US 7,962,424 BI
`
`Y430uO
`
`LOW
`
`WALSAS
`
`Sel
`
`ASNa9N
`
`1sia}aibssai2
`
`
`
`(4Y3AYSS“9'S)
`
`so?YaOVNWWae
`
` Orr
`
`uaAuas
`
`oor
`
`
`
`GSSVNVINYOON3A
`
`
`
`WALSASSNISN39I1
`
`LNAINS
`
`IN-SOL
`
`LN3IT9
`
`e-S9l
`
`LN3hN9
`
`b-SOL
`
`r-Ol4mati,
`
`5
`
`
`
`
`
`
`U.S. Patent
`
`Jun. 14, 2011
`
`Sheet 5 of 8
`
`US 7,962,424 BI
`
`
`
`c-0FlL-OFL
`
`
`
`ASN39INASN39N
`
`
`
`NOILNGIYLSIGNOILNGIYLSIA
`
`
`
`YSaOVNVINYyoW
`
`
`
`Ssa00udNOILVONIddV
`
`
`
`3OWSYSLNI‘WWOO
`
`Sts
`
`
`
`FOVSAYALNIOlYSLNdINOD
`
`OLL
`
`ANOWANa
`
`
`
`(Y3SANRS"9'3)
`
`W3LSAS
`
`6
`
`
`
`
`Sheet 6 of 8
`
`US 7,962,424 BI
`
`9Sls
`
`U.S. Patent
`
`Jun. 14, 2011
`
`GalsiOsdSVWALWOOTIV
`0z9NOILVOIIddSYVMLIOSYHOGN3AAONIGNOdS3yyOoV40NOLLVWeSdOJ1ISVN3OLSASNSOINSYVMLAOS4OYAEWNNGsAlsIOAdSSHLALNGIYLSIG
`
`
`
`
`
`
`SLOSSSN30I1SYVMLAOSJOYAEINNN
`
`
`Gz9NOILWONddVSYWVMLAOS
`LAVYOUSAONVSLVOOTIV NOILNEIYLSIGYO4
`QalslOadSAHLNVHLSHOWJONOILNGINLSIG31GVN3OLYSCHONISSN3911
`
`
`YOONAAONIGNOdS3YyeO)FHL40NOILVWeadOJIGVNAOLSSN39I1LAVYGHAAOSHLSLNEIYLSIO
`
`
`
`
`
`
`
`SASN3OI1TSYWMLIOS40YASWNN
`
`7
`
`
`
`U.S. Patent
`
`Jun. 14, 2011
`
`Sheet 7 of 8
`
`US 7,962,424 BI
`
`L‘Ol4(v)
`
`SYOWHOSNO3LVSHO SLN3I10
`O¢Z\}AYVMLIOSYOONSAODNIGNOdS3SYHODVJONOLLVYAdO3STEYNAOLYSWOLSNDAHLHLIMGSLVIODOSSV
`
`
`
`
` GslslOad$SHLSLNAIYLSIA SheSSSN39MSYVMLAOSJOYAEWANGalslIOSdSSHLYOSLNSWAVd401d/3903Y
`
`
`
`
`
`
`
`
`
`
`\}NOLuWdNi1SW31LWG3SV8SSSN3OMSYVMLIOS4OYSEWNNG3lsIOSdSSHL4ONOILNSINLSIG31aVNAa
`SLN3I19OLNOLLOANNOONHOMLANVYSAOSASNSDI1SYWMLAOSJOYSSWNN
`
`
`
`O&4\)3sNa0ML4vYauSAO3HLONISNLNAIT1DSALLOadS3yVONYS3uidX4SSN3ONLSVYOHSAOSHL
`
`
`
`
`
`
`
`SezNOILVONTIdd¥SYVMLIOSYOONAAONIGNOdS3AYYODAHLJOY3SNSAILOAdS3SYVOL\|SaVIIVAYSuvSSUNLVaSSYVMLIOSANVMOHLIWITOLSSNS90I1L4VYOHSAOSHLSYNDIINOD
`
`
`
`
`
`
`
`
`SHLNVHLSYOWJONOILNGIYLSICSISVNAOLYACHONISSSN3011LAVHOHSAO
`
`
`
`HOIHMYSLSV‘NOILVYNGAWILGSLIWITVHOSGINVA3dOLSSN3ONL4VYGYSAO3HLSYNDISNOD
`
`
`
`
`
`NOILVOIMIddV¥SYVMLSOSYOONAAONIGNOdSSYHODSHLALVesdOYSDNOTONNWO
`
`
`
`
`
`
`OllyNOILNGIYLSIOYOsSAYVMLAOSSASN3ON
`
`
`ASVHOUNVONIAISOSYOLSSNOdS3YNI
`dOYAaWNNNGalsIOAdSVALVOOTIV‘YSWOLSNDVWOYSYSCNO
`
`
`
`
`SHLAGNOLLVOlIdd¥
`
`
`
`
`
`SSSN39I1SYVMLIOSJOYAGINNNGalsiOads
`
`8
`
`
`
`US 7,962,424 BI
`
`
`
`
`
`
`
`
`
`SS/\|39O1SGSSNSSN3OILIVYGHAAOSHLLWHLYO/GNYNOILWOIIddvSYWMLIOSYOGNSAONIGNOdSayYOD
`8Sls 3SN39I1
`3HLJOSOVSNAYVHOdWALAINOS318VN3SSNSONMLAWHYOUSAOSHLLVHLYSWOLSNDSHLASILON
`
`
`
`
`
`
`
`
`
`SYVMLIOSGSSVWHONNdVHLIMGa0V1d3u
`
`YAWOLSNDAHLAdGSSVHOYNd
`
`U.S. Patent
`
`Jun. 14, 2011
`
`Sheet 8 of 8
`
`OS2\,YSWOLSNDSHLOLSSN39NLIVECH3AOSHLJONOLLNEIYLSIGSHLJONOLLVOISILONS0IAOdd
`
`
`
`
`
`
`
`StLNOILWONIddV¥VSYVMLIOS
`‘%YOONSAONIGNOdS3SYYO)SHL40NOILVHSdOSTEVNAOLSSN39I1LIVYOHSAOSHLSLNSIYLSIC
`
`
`
`
`
`SIGVN3 Op,
`SH1LJONOILNEIYLSIODNILOALAGOLSSNOdS3YNISSN3A9NLAVYGUSAOSHLAONOILNGINLSIG
`
`
`
`N33dLONSWHASN391I1LAVYCGHSAOSHLHONOHLN3AR‘SSSN39I1SYVMLAOS4OYASWNNG3IsIO3dS
`
`
`
`
`
`
`
`9
`
`
`
`US 7,962,424 BI
`
`1
`OVERDRAFT LICENSES AND LICENSE
`DISTRIBUTION
`
`RELATED APPLICATIONS
`
`This application is related to U.S. patent applications
`entitled “SURRENDER AND MANAGEMENTOFSOFT-
`WARELICENSES,”(Ser. No. 11/385,512), “LICENSE DIS-
`TRIBUTION,”
`(Ser. No.
`11/585,734),
`“SOFTWARE
`LICENSE DISTRIBUTION AND REGISTRATION
`
`BYPASSING,”(Ser. No. 11/585,559), all of which are being
`filed on the same date as the present application (by the
`commonassignee Adobe Systems, Inc.), the entire teachings
`of all of which are incorporated herein by this reference.
`
`BACKGROUND
`
`Software vendors typically require a purchase of a corre-
`sponding software license in order to enable a respective user
`the right to download, install, and/or use a software applica-
`tion. For example, in a retail setting, a respective user can
`purchase a CD (Compact Disk) or other type of storage
`including a software program for downloading onto a respec-
`tive computer system owned by the user. Such a CD can
`include a serial number. The serial number provided by the
`vendor enables downloading and/or installation ofthe soft-
`ware application stored on the CD.
`As an example, when downloading or attempting to
`execute the software program, a respective installer program
`for installing the software application on the user’s computer
`system may require the user to input the serial number asso-
`ciated with the CD. Uponreceipt of the serial number by the
`installer program, the installer programsendstheserial num-
`ber over a network to a server managed by the vendorofthe
`software program being downloaded or executed. In general,
`the vendor’s server uses the serial numberto track and iden-
`tify which specific copy of the software applicationis being
`downloaded to or executed on a respective computer system.
`In addition to the serial number, the vendor’s server may
`require further input (e.g., a user’s, name, address, business,
`etc.) from a respective user to register the software program
`for use. After obtaining such information from the user, the
`server typically provides an authentication code enabling the
`respectiveuserto install and/or execute the software program
`onthe user’s computer system.
`
`SUMMARY
`
`ay
`
`0
`
`~
`2
`
`a
`
`4
`
`45
`
`Conventional techniques fordistributing software licenses
`enabling operation of a corresponding vendor’s software 5
`application suffer from a number of deficiencies. For
`example, conventional techniques enable a respective orga-
`nization to purchase a numberof software licenses for distri-
`butionto respective clients (e.g., users and/or computer sys-
`tems) associated with the organization. For example, an 5
`organization may require and purchase ten licenses, one for
`each often different users in the organization. A licensing
`server receiving this order can thereafter enable distribution
`of up to the ten purchased software licenses by the organiza-
`tion. Such techniquesare limiting, for example, because con-
`ventional techniques donot take into account that a respective
`purchaser may not properly estimate the numberoflicenses
`needed for the organization. By way of example, the organi-
`zation may actually need twelve software licenses instead of
`ten. In such a circumstance, the organization will have to
`place a new purchase order for the additional number of
`software licenses to accountfor the shortfall. Typically, gen-
`
`60
`
`65
`
`2
`eration of another purchase order for the new licenses
`requires approval at multiple levels of the organization,
`including the organization’s financial department. Thus,
`there may be a lengthy delay betweena timethat the organi-
`zation needs the new licenses andthetimethe organizationis
`actually able to obtain the newlicenses from the software
`vendor. This length delay may impact a development sched-
`ule since software vendors will normally not enable distribu-
`tion of corresponding software licenses until the vendor
`receives the order as well as paymentfor the new licenses.
`One way to overcomethis problemis to order more soft-
`ware licenses than the organization expects to use. For
`example, the organizationcanorderfifteen licenses instead of
`ten. However, this requires that the purchaser(e.g., organiza-
`tion) pay for licenses that the organization may not use, Con-
`sequently, the organization may be reluctant to purchase the
`software licenses because the organization may end up pay-
`ing for licenses that it will not use.
`Techniques discussed herein deviate with respect to con-
`ventional applications such as those discussed aboveas well
`as additional techniques also knownin the prior art. For
`example, certain specific embodiments herein are directed to
`overcoming deficiencies associated with the above-men-
`tioned techniques and/orotherdeficiencies inthe prior art not
`mentioned above.
`Conventional techniques as discussed above have imple-
`mented overdraft licenses for concurrent licensing applica-
`tions. As will be discussed further in this specification, certain
`embodiments herein include issuing time-limited overdraft
`licenses on a per-seat basis. Overdraftlicenses distributed on
`a per-seat basis can have vendor specific policies such as
`duration (as indicated) and persistency (whether they can or
`cannot be reused by clients on the network). For certain
`vendors, overdraft licenses are not persistentin the pool. This
`means that if an overdraft is downloaded to a given client
`machine, that overdraft is “consumed” and will not be re-
`established in the pool. These and other details will be dis-
`cussed below.
`
`In a general embodiment as described herein, a license
`distribution managerreceives a purchase order for a specified
`numberof multiple software licenses. In response to receiv-
`ing the order (e.g., including payment for the licenses), the
`license distribution managerallocates a specified number of
`software licenses for distribution to a corresponding custom-
`er’s clients that utilize the licenses to operate software asso-
`ciated with a corresponding vendor software application. The
`license distribution manager can create one or more extra
`licenses (e.g., overdraft licenses) for distribution in addition
`to the specified numberofsoftware licenses associated with
`the order, Accordingly, the license distribution manager can
`create extra softwarelicenses (e.g., the overdraft licenses) and
`distribute more software licenses thanare actually purchased
`by a respective customer, alleviating a potential problem that
`would otherwise occur if the customer happened to errone-
`ously order fewer licenses than were actually needed by the
`organization. In other words, the overdraft licenses (e.g., one
`or more non-purchased or non-ordered software licenses)
`created and/or supplied by the vendor-operated license dis-
`tribution managerenable the customerto at least temporarily
`use as many software licenses as required by the customer
`until the (provisional) overdraft licenses provided by the
`license distribution manager are replaced with regular soft-
`ware licenses purchased by the customer.
`According to one configuration, a vendor may choosethat
`a number ofoverdraft licenses be automatically added to
`every order of purchased application licenses, with no up-
`front costs to the customer. Other possible implementations
`
`10
`
`10
`
`
`
`US 7,962,424 BI
`
`3
`include automatically provided the overdraft
`may not
`licenses, but rather only for customers who agree to pay a
`given fee for having the option to use a specified numberof
`overdrafts. When suchoptionis exercised, the software ven-
`dor may use the paid fee towards the payment ofthe full
`license or someotherfinancial arrangement.
`The one or more embodiments as described herein contrast
`
`ay
`
`0
`
`wa
`
`licenses associated with an original order have beendistrib-
`uted to the customer’s clients. In additionto or in lieu ofthis
`notification, the network administrator can be notified each 5
`time the license distribution managerdistributes one or more
`ofthe overdraft licenses to the customer’s clients. Accord-
`
`ingly, the customer can be put on notice that the provisional
`licenses (e.g., distributed overdraft licenses) need to be con-
`verted to regular purchased licenses some time in the future.
`Accordingly, the customer will not be surprised of an expira-
`tion ofthe one or more overdraft licenses issued to the cus-
`tomer’s users.
`Embodiments herein can include a configuration of one or
`more computerized devices, workstations, handheld or laptop
`computers, or the like to carry out and/or supportany or all of
`the method operationsdisclosed herein. In other words, one
`
`60
`
`65
`
`11
`
`with conventional license distribution models that only pro-
`vide an amountof licenses as specified by a respective pur-
`chase order. As discussed above, enabling distribution of only
`an ordered amount of licenses can be detrimental to a cus-
`tomerthat needs extra licenses on short order. Conventional
`systems thus do not provide an easy way to allocate additional
`software licenses for distributionto the customer’s clients.
`Models for distributing software licenses can vary depend-
`ing on the application. For example, according to one
`embodiment herein, the license distribution manager is a
`publicly accessible, vendor-managed server that distributes
`the software licenses over a network (e.g., the Internet) to one
`~
`or more clients associated with the customer placing the 2
`order. According to other embodiments herein, the license
`distribution managerdistributes the software licenses from a
`customer-managed server to the one or more customers asso-
`ciated with the client. Additional embodiments provide yet
`other ways to distribute softwarelicenses.
`Overdraft licenses according to embodiments herein can
`provide the sametypeofuserprivilegesas those afforded by
`the original licenses associated with the orderorbe restricted.
`For example, in this latter embodiment, an overdraft license
`can be limited with respect to usage time and/or available
`software features. More specifically, the overdraft licenses
`can be configured to be valid (enabling operation ofcorre-
`sponding vendor software) for a limited time duration, after
`which the overdraft license expires and a respective client
`using the overdraft license can no longer operate the corre-
`sponding vendorsoftware application. In addition to orin lieu
`of modifying a time-based parameter associated with the
`overdraft licenses, the overdraft licenses can be configured to
`limit how many software features are available to a respective
`user of the corresponding vendor software application. Lim-
`iting parameters (i.e., configuring the overdrafi license to
`have a limited operational scope) associated with overdraft
`licenses can provide incentive for a respective customer to
`replace the temporary overdraft licenses with a correspond-
`ing one or more regular software licenses purchased by the
`customer. The number of overdraft licenses allocated and
`thereafter distributed to the customer’s clients can also vary
`depending on the application. For example, larger or loyal
`customers can be afforded a greater number of overdraft
`licenses for use than newer customers.
`In addition to the embodiments as discussed above, the
`customer can receive notification whenall of the software
`
`a
`
`4
`
`45
`
`50
`
`4
`or more computerized devices or processors can be pro-
`grammedand/or configured to operate as explained hereinto
`carry out different embodiments ofthe invention.
`Yet other embodiments herein include software programs
`to perform the steps and operations summarized above and
`disclosed in detail below. One such embodiment comprises a
`computer program product that has a computer-readable
`mediumincluding computer program logic encoded thereon
`that, when performed in a computerized device having a
`processor and corresponding memory, programs the proces-
`sor to performthe operations disclosed herein. Such arrange-
`ments are typically provided as software, code and/or other
`data (e.g., data structures) arranged or encoded on a computer
`readable medium such as
`an optical medium (e.g.,
`CD-ROM), floppy or hard disk or other a medium suchas
`firmware or microcode in one or more ROM or RAM or
`PROMchips or as an Application Specific Integrated Circuit
`(ASIC). The software or firmware or other such configura-
`tions canbe installed onto a computerized device to cause the
`computerized device to perform the techniques explained
`herein.
`Accordingly, one particular embodiment of the present
`application is directed to a computer program product that
`includes a computer readable medium having instructions
`stored thereon for supporting operations suchas distribution
`of one or more overdraft licenses. The instructions, when
`carried out by a processor ofa respective computer device,
`cause the processor to perform the steps of: i) allocating a
`specified number of software licenses for distribution; 11)
`allocating one or more overdraft licenses in order to enable
`distribution of more than the specified number of software
`licenses; iii) distributing the specified number of software
`licenses to enable operation of a corresponding vendorsoft-
`ware application; and iv) distributing the overdraft license to
`enable operation ofthe corresponding vendor software appli-
`cation. The numbering ofthe steps has been added forclarity
`sake, these steps need not be performed in any particular
`order.
`Other embodiments of the present disclosure include soft-
`ware programs to perform any of the method embodiment
`steps and operations summarized above and disclosed in
`detail below.
`
`Also, it is to be understood that the system, method and
`apparatus herein can be embodied strictly as a software pro-
`gram, as software and hardware, or as hardware alone such as
`within a processor, or within an operating system ora within
`a software application. Example embodiments ofthe inven-
`tion may be implemented within products and/or software
`applications such as those manufactured by Adobe Systems,
`Inc. of San Jose, Calif., USA.
`As discussed above, techniques herein are well suited for
`use in distribution of software licenses such as overdraft
`licenses. However,
`it should be noted that embodiments
`herein are not limited to use in such applications and that the
`techniques discussed herein are well suited for other applica-
`tions as well. Note that each ofthe different features, tech-
`niques, configurations, etc. discussed herein can be executed
`independently or in combination. Accordingly, the present
`invention can be embodied and viewed in many different
`ways.
`Notethat this summary does not specify every embodiment
`and/or incrementally novel aspect of the present disclosure or
`claimed invention. Instead, this summary only provides a
`preliminary discussion of different embodiments and corre-
`sponding points of novelty over conventional techniques. For
`additional details and/or possible perspectives (permutations)
`
`11
`
`
`
`US 7,962,424 BI
`
`5
`ofthe invention, the readeris directed to the Detailed Descrip-
`tion section and corresponding figures of the present disclo-
`sure.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`ay
`
`The foregoing and other objects, features, and advantages
`ofthe invention will be apparent from the following more
`particular description of preferred embodiments herein, as
`illustrated in the accompanying drawings in whichlike ref-
`erence characters refer to the same parts throughoutthe dil-
`ferent views. The drawingsare notnecessarily to scale, with
`emphasis instead being placed uponillustrating the embodi-
`ments, principles and concepts.
`FIG. 1 is an example diagram of a computer network envi-
`ronment enabling distribution of overdraft licenses from a
`vendor-managed (remote) server according to embodiments
`herein.
`FIG. 2 is a diagramillustrating an example of ordered
`~
`licenses and overdraft licenses according to embodiments 2
`herein.
`
`0
`
`wa
`
`FIG, 3 is an example diagram of a computer network envi-
`ronment enabling distribution of overdraft licenses froma
`customer-managed (local) server according to embodiments
`herein.
`FIG. 4 is an example diagram illustrating serving of over-
`draft licenses from multiple servers according to embodi-
`ments herein.
`
`FIG, 5 is an example of a computer environment and cor-
`responding computer system for executing a license distribu-
`tion manager application and distribution of overdraft
`licenses according to embodiments herein.
`technique
`FIG. 6 is a flowchart
`illustrating a general
`enabling distribution of overdraft
`licenses according to
`embodiments herein.
`FIGS. 7 and 8 combine to form a flowchart illustrating
`more specific techniques ofdistributing overdraft licenses
`according to embodiments herein.
`
`DETAILED DESCRIPTION
`
`a
`
`4
`
`45
`
`According to an example embodimentas described herein,
`in response to receiving anorder (e.g., including paymentfor
`one or more software licenses), a license distribution manager
`(e.g., a license server) allocates a specified numberof soft-
`ware licenses for distribution to a corresponding customer's
`clients (e.g., employees) that utilize the licenses to operate
`software associated with a corresponding vendor software
`application. The license distribution manager can create and/
`or allocate one or more overdraft licenses for distribution to §
`the customer’s clients in addition to the specified number of
`softwarelicenses associated with the order. Accordingly, the
`license distribution manager can allocate extra software
`licenses (e.g., the overdraft licenses) and distribute more soft-
`ware licenses than are actually purchased by a respective 5
`customer. This enables the customerto use one or more pro-
`visional licenses that support temporary use of the vendor's
`software application such as until the customer can replace
`the provisional
`licenses with corresponding purchased
`licenses.
`Use of overdraft licenses as described herein contrasts with
`conventional license distribution models that only provide an
`amount of licenses as specified by a respective purchase
`order. As discussed above, conventional techniques oflimit-
`ing distribution oflicenses to only those specified in a pur-
`chase order as in conventional distribution models can be
`detrimental to a customer that needs extra licenses on short
`
`60
`
`65
`
`6
`order. Conventional systems thus do not provide an easy way
`to allocate additional software licenses for distributionto the
`
`customer’s clients. (There are multiple non-electronic licens-
`ing models that have the notionofall-you-can-eat licensing,
`with a “pay-up” option every 12 months orso).
`FIG. 1 is a diagram of a computer network environment
`100 supporting distribution ofsoftware licenses according to
`embodiments herein. As shown, computer network environ-
`ment 100 includes network 191, network 190, and a vendor
`managed licensing system 183. The vendor management
`licensing system 183 includes an order management system
`125, repository 180 for storing order information 187, com-
`puter system 110 for executing license distribution manager
`140, and repository 181 for storing license information 170
`(e.g., information associated with a set of purchased, and/or
`ordered licenses) and license information 171 (e.g., informa-
`tion associated with a set of one or more overdraft licenses).
`Network 191 such as a customer-managed network environ-
`mentincludes user 108, display screen 130, computer system
`115, server 160, and clients 165 (e.g., client 165-1, client
`165-2, client 165-3, .. .
`, client 165-M), Computer network
`environment 100 also includes client 165-P, .
`.
`. client 165-Q
`associated with the customer that operates network 191.
`Theselatter clients (namely, clients 165-P .
`.
`. 165-Q) can be
`home-based computers in which a customer’s employees
`work outof their homes and have access to a public network
`such as the Internet.
`In one embodiment, each ofclients 165 (e.g., end users
`such as employees, terminal computer equipment such as a
`personal computer,etc.) includes a computer device operated
`by a respective user in an organization(e.g., a company, firm,
`group of persons, etc.). In order to download and/or execute
`software applications on a respective client, the correspond-
`ing clientfirst obtains a software license provided by a respec-
`tive software vendor, The following disclosure illustrates
`example embodiments in which a user 108 (e.g., a network
`administrator or employee ofan organization purchasing the
`software licenses) orders and/or purchases a respective set of
`software licenses. In response to a respective orderfor soft-
`ware licenses, a license distribution server (e.g., computer
`system 110, server 160, or some other distribution source or
`method) enables distribution of the ordered software licenses
`as well as one or more overdraft licenses.
`Morespecifically, as illustrated in FIG. 1, the user 108
`initially places an order 151 (e.g., a purchase order) for a
`group of software licenses (for distribution to clients 165)
`froma respective software vendor based on communications
`over link 122-1 (e.g., a telephonelink, internet connection,
`postal service, etc.) to order management system 125.
`Assumein this example that the customer places an order for
`one hundred software licenses for use ofa particular software
`application.
`As briefly mentioned above, user 108 (or other represen-
`tative of an organization as the case may be) can place an
`order 151 in many different ways. For example, the user 108
`can communicate over a telephone link to an operator at
`vendorAto place an order for multiple software licenses. As
`another example, the user 108 also can log onto a website
`served by the order management system 125 and submit an
`order for multiple software licenses. As yet another example,
`auser 108 can send an order 151 via a delivery service(e.g.,
`U.S. Postal Service) to order managementsystem 125, and so
`on.
`
`Order management system 125 of vendor managed licens-
`ing system 183 can include people and/or corresponding
`computerresources for managing orders from manydifferent
`customers in addition to the order 151 from user 108. The
`
`12
`
`12
`
`
`
`US 7,962,424 BI
`
`7
`order management system 125 can create the appropriate
`licensing information enabling license distribution manager
`140 or server 160 that later on distributes licenses to clients
`
`165 (165-1... 165-M),.
`As shown, for a specific one of many possible orders
`received from many customers, order management system
`125 stores order information 187 in repository 180 (e.g., a
`database, data storagefacility,memory, etc.). Order informa-
`tion 187 associated with order 151 can include customer
`information such as the name or identifier of a customer
`
`ay
`
`0
`
`placing a purchase order, a purchase order numberassociated
`withan order, a paymentstatus of the order, billing informa-
`tion, authorization information enabling operation of target
`software, a numberoflicenses and corresponding versions/
`features ofthe software licenses being purchased,etc.
`According to one configuration, after approval to grant
`software licenses associated with order 151, the order man-
`agement system 125 communicates with a license distribu-
`tion server such aslicense distribution manager 140 of com-
`puter system 110. Such a communication 152 caninclude an 2
`indicationthat a set of ordered software licenses can be dis-
`
`tributed based on further instructions provided by the cus-
`tomer making the purchase order. For example,
`in one
`embodiment, the order management system 125 confirms
`paymentforthe order(orat least that the order was placed by
`acreditworthy customer) and forwards a pooloflicense infor-
`mation 152 (associated with order 151 by Acme Development
`Company) over a respective network connection(e.g., a local
`area network, public network such as the interne, etc.) to the
`license distribution manager 140.
`Based on receipt of the pool oflicense information, the
`license distribution manager 140, in turn, stores the pool of
`license informationin repository 181 as license information
`170 (e.g., labeled A). In other words, the order management
`system 125 and/orlicense distribution manager 140 allocate a
`numberof overdraft licenses in license information 171 (e.g.,
`license pool A‘) for distribution to clients 165. Recall that in
`the present example, the pool of licenses A as specified by
`license information 170 includes one hundred software
`licenses allocated for use by clients 165 (e.g., computer sys-
`tems and/or employees associated with the customer placing
`order 151)
`in computer network environment 100. An
`approval message received from by the license distribution
`manager 140 fromthe order management system 125 or mere
`receipt of the license information 170 and/or license informa-
`tion 171 can indicate thatthe license distribution manager 140
`is free to enable distribution ofthe softwarelicenses in license
`pool A.
`Via an exchange of messages (e.g., messages 153 and
`messages 154), the license distribution manager 140 can ini-
`tially notify respective user 108 that the software licenses
`associated with the order 151 have been approved and/or are
`ready for distribution based onselection by the user 108. The
`user 108 can specify how to distribute the one hundred
`ordered software licenses via one or moreservers (e.g.,com-
`puter system 110, server 160, etc.) as discussed in related U.S.
`patent application entitled “LICENSE DISTRIBUTION,”
`(Ser. No. 11/585,734), filed on the same date as the present
`disclosure, the entire teachings of which are incorporated
`herein by this reference.
`After selection ofa respective server to distribute a set of
`licenses associated with order 151, the licenses are ready for
`distribution. Assumein the present example that the user 108
`(or other decision-making authority) specifies to have the
`licenses in license pool A distributed from a vendor-managed
`server such as computer system 110. In such an example, the
`license distribution manager 140 enables distribution of soft-
`
`30
`
`4
`
`45
`
`5
`
`5
`
`60
`
`65
`
`8
`ware licenses in license pool A to clients 165. In addition to
`enabling