`Manduley
`
`US005956505A
`[11] Patent Number:
`[45] Date of Patent:
`
`5,956,505
`Sep. 21, 1999
`
`[54] REMOTE ACTIVATION OF SOFTWARE
`FEATURES IN A DATA PROCESSING
`DEVICE
`
`5/1992 Wilson et al. ........................ .. 364/146
`5,113,222
`5,155,847 10/1992 Kirouac et al. .
`395/600
`5,287,505
`2/1994 Calvert et al. ........................ .. 395/600
`
`[75] Inventor: Flavio M. Manduley, Woodbury, Conn.
`
`[73] Assignee: Pitney Bowes Inc., Stamford, Conn.
`
`[21] Appl. No.1 07/813,080
`[22]
`Filed:
`Dec. 24, 1991
`
`[51] Int. Cl.6 ................................................. .. G06F 15/177
`[52] US. Cl. ........................ .. 395/651; 395/712; 705/410;
`705/416
`[58] Field of Search ................................... .. 395/200, 325,
`395/600, 650, 725, 575, 700; 380/4
`
`[56]
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`2/1974 McFiggins et al. .................. .. 395/200
`3,792,446
`6/1978 Eckert, Jr. et al.
`395/200
`4,097,923
`3/1987 Pailen et al. .... ..
`380/4
`4,652,990
`8/1987 Thomas
`380/4
`4,685,055
`4/1988 William
`395/575
`4,740,890
`4,780,821 10/1988 Crossley ...... ..
`395/650
`4,791,565 12/1988 Dunham et al. ..
`395/575
`4,937,863
`6/1990 Robert et al.
`380/4
`4,941,175
`7/1990 Enescu etal.
`380/4
`5,103,476
`4/1992 Waite et al. .... ..
`380/4
`5,107,455
`4/1992 Haines et al. ......................... .. 395/275
`
`Primary Examiner—Thomas G. Black
`Assistant Examiner—John Loomis
`Attorney, Agent, or Firm—Melvin J. Scolnick; Robert H.
`Whisker; David E. Pitchenik
`[57]
`ABSTRACT
`
`A method is provided for activating an optional feature in a
`data processing device that includes a microprocessor and
`memory. The method includes storing in the memory: a
`number of applications programs, at least one of Which has
`at least one optional feature; application manager software
`for controlling access to the application programs; a com
`munications softWare module, accessed by means of the
`application manager, for controlling data communication by
`the device; and a program activation softWare module,
`accessed by means of the application manager and including
`activation data that indicates Whether each optional feature
`is activated or unactivated. The method also includes receiv
`ing a request to operate one of the optional features, deter
`mining by reference to the activation data Whether the
`feature is activated or unactivated, operating the feature if it
`is activated and otherWise preventing operation of the fea
`ture. The method further includes receiving a request to
`activate the feature (if unactivated) and updating the acti
`vation data to indicate that the feature has been activated.
`
`13 Claims, 9 Drawing Sheets
`
`@
`
`REQUEST TO \
`ACTUATE
`1 00
`APPLICATION
`
`STAND
`ALONE
`SYSTEM?
`
`YES
`
`l /106
`
`SELECT
`FEATURE
`
`I___
`
`104
`
`IS REQUESTED
`APPLICATION
`ACTIVATED?
`
`REQUEST
`ACTIVATION?
`
`108
`
`IS SELECTED
`FEATURE
`ACTIVATED?
`
`IS USER
`AUTHORIZED TO
`REQUEST
`ACTIVATION?
`
`YES
`Y
`SELECT SOFTWARE 112s
`CONFIGURATION _l
`T
`ENTER/ACCESS
`GENERATE
`SOFTWARE
`SYSTEM |.D. ETC. x134
`ACTIVATION
`REQUEST CODE
`1
`
`[L125
`
`IS NECESSARY
`HARDWARE IN
`PLACE’?
`
`YES -—i
`
`GENERATE
`INTEGRATED 1135
`REQUEST CODE
`
`GENERATE
`HARDWARE onozn
`CODE
`\132
`
`Petitioners Ex. 1006 Page 1
`
`
`
`U.S. Patent
`
`Sep.21, 1999
`
`Sheet 1 019
`
`5,956,505
`
`_.-vN
`
`Néw
`
`>mos_m_2
`
`mo_>mo
`
`>mos_m_2
`
`mo_>m_o
`
`«.3
`
`>mos_ms_
`
`mo_>mo
`
`.z-&
`
`5
`
`>mos_ms_
`
`mo_>mo
`
`_..0_n_
`
`E
`
`<»<o
`
`8
`
`
`
`
`
`5>Sn_w_ozo:.<o_z:s=2oo
`
`«N
`
`.
`
`8
`
`E8mmmo<nEm»z_
`
`om<Om>m_xom._<mm_._.__mm.__
`
`Petitioners Ex. 1006 Page 2
`
`Petitioners Ex. 1006 Page 2
`
`
`
`
`U.S. Patent
`
`Sep.21, 1999
`
`Sheet 2 of9
`
`5,956,505
`
`E.
`
`
`
`mmo<z<_2wm<m<._.<D
`
`8
`
`._0_n_ZOO
`
`DEOOMI
`
`8
`
`an
`
`s_<moomn_
`
`20_._.<>_._.O<
`
`.0_._n_n_<
`
`mesa
`
`9..
`
`en
`
`3.
`
`E
`
`_.._m>m._
`
`N._m>m._
`
`n._m>m._
`
`xm.Eo:om
`
`3
`
`E
`
`3
`
`m_m:.p<m"_
`
`mmP2mu_
`
`mm:»<mn_
`
`
`
`m....._D._.<m..._mE..._.<m...
`
`mE:.<m"_
`
`
`
`mE:.Emn_mm:.Emu.
`
`8
`
`mm:»<mn_
`
`manta".
`
`mEF<m.._
`
`Nu
`
`mm
`
`9.
`
`3
`
`zO_._.<O_Z...__2S_O0
`wz:mm“_.z<s_
`
`
`
`0z_mmmmoo<0z_._.2DOOO<
`
`N.0_n_
`
`9.
`
`m_o<n_mm»z_mum:
`
`
`
`mmo<2<_2zo:<o:nE<
`
`Petitioners Ex. 1006 Page 3
`
`Petitioners Ex. 1006 Page 3
`
`
`
`
`
`
`U.S. Patent
`
`Sep.21, 1999
`
`Sheet 3 of9
`
`5,956,505
`
`02
`
`mm;
`
`02
`
`NNF
`
`we
`
`GE
`
`02/
`
`Now
`
`Petitioners Ex. 1006 Page 4
`
`
`
`U.S. Patent
`
`Sep.21, 1999
`
`Sheet 4 of9
`
`5,956,505
`
`FIG. 3-B
`
`IS
`ACTIVATION
`
`UPDATE USAGE
`COUNTER
`
`\114
`
`I
`
`COMPARE USAGE
`COUNTER WITH \116
`ACTIVATION MAP
`
`118
`
`112
`
`USAGE
`EXHAUSTED?
`
`oPERATE
`NO X» FEATURE
`
`YES
`
`DEACTIVATE 1
`FEATURE ON MAP
`12°
`
`Petitioners Ex. 1006 Page 5
`
`
`
`U.S. Patent
`
`Sep.21, 1999
`
`Sheet 5 of9
`
`5,956,505
`
`FIG. 3-C
`
`124
`
`IS USER
`AUTHORIZED TO
`REQUEST
`ACTIVATION?
`
`YES
`Y
`SELECT SOFTWARE H5126
`CONFIGURATION
`I
`GENERATE
`SOFTWARE
`ACTIVATION
`REQUEST CODE
`
`i123
`
`IS NECESSARY
`HARDWARE IN
`PLACE?
`
`YES —-i
`
`NO
`I
`GENERATE
`HARDWARE ORDER
`0005' _
`x132
`
`‘
`
`ENTER/ACCESS
`SYSTEM I.D. ETC. x134
`l
`
`GENERATE
`INTEGRATED \1 35
`REQUEST CODE
`
`Petitioners Ex. 1006 Page 6
`
`
`
`U.S. Patent
`
`Sep.21, 1999
`
`Sheet 6 of9
`
`5,956,505
`
`FIG. 3-D
`
`AUTOMATIC
`COMMUNICATIONS?
`
`YES
`
`ESTABLISH LINK
`\150
`I WITH DATA CENTER
`
`Y
`
`EXCHANGE CODES \152
`
`NO
`I
`DISPLAY
`INSTRUCTIONS FoR \140
`CALLING DATA
`cENTER
`
`\142
`
`I
`DISPLAY LIST OF
`REQUESTED
`FEATURES
`I
`DISPLAY
`INTEGRATED 1144
`REQUEST CODE
`I
`
`ENTER ACTIVATION ~L
`CODE RECEIVED
`146
`FROM DATA
`CENTER
`
`UPDATE
`ACTIVATION MAP \148
`
`Petitioners Ex. 1006 Page 7
`
`
`
`U.S. Patent
`
`Sep.21, 1999
`
`Sheet 7 of9
`
`5,956,505
`
`RECEIVE
`TELEPHONE CALL
`
`FIG. 4-A
`
`AUTOMATIC
`COMMUNICATIONS?
`
`PROMPT USER TO \
`N°—> ENTER REQUEST
`204
`CODE
`
`YES
`
`RECEIVE REQUEST 1
`CODE
`205
`
`Y
`DECRYPT CODE \208
`
`T
`
`CHECK CUSTOMER \
`FILE
`210
`
`212
`
`ISSUE ERROR 1,214
`YES _> MESSAGE
`
`NO 6
`
`Petitioners Ex. 1006 Page 8
`
`
`
`U.S. Patent
`
`Sep.21, 1999
`
`Sheet 8 of9
`
`5,956,505
`
`HARDWARE
`ORDERED?
`
`ISSUE SHIPMENT
`YES" INSTRUCTIONS
`
`\21a
`
`NO
`
`UPDATE \
`CUSTOMER FILE
`220
`I
`ISSUE BILLING \
`INSTRUCTIONS
`222
`I
`GENERATE
`ACTIVATION CODE \224
`I
`ENCRYPT CODE \225
`
`FIG. 4-B
`
`AUTOMATIC
`COMMUNICATIONS?
`
`228
`/
`TRANSMIT c005 TO
`SYSTEM
`YES ‘’
`
`TRANSMIT CODE TO
`USER
`
`Petitioners Ex. 1006 Page 9
`
`
`
`U.S. Patent
`
`Sep.21, 1999
`
`Sheet 9 of9
`
`5,956,505
`
`300
`
`FIG. 5
`
`306
`
`YES
`r
`
`RECOMMEND
`INHIBITED?
`
`TEMPORARY
`ACTIVATION
`AVAILABLE? ,
`
`NO
`
`NO
`
`302
`
`I‘ NO
`
`ALTERNATIVE/
`COMPATIBLE
`FUNCTIONS NOT
`ACTIVATED?
`
`YES
`
`REQUESTED I
`FUNCTION
`
`COMPLETE?
`
`YES
`
`YES
`
`+
`LIST
`REF??qhéh'plféhrlqDsED '\
`AVAILABLE FOR
`308
`TEMPORARY
`ACTIVATION
`
`LIST
`RECOMMENDED
`FUNCTIONS ‘L
`AVAILABLE FOR
`310
`PERMANENT
`ACTIVATION
`
`‘
`
`ADVIsE ON \
`ACTIVATION
`312
`PROCEDURE
`
`Petitioners Ex. 1006 Page 10
`
`
`
`1
`REMOTE ACTIVATION OF SOFTWARE
`FEATURES IN A DATA PROCESSING
`DEVICE
`
`RELATED APPLICATIONS
`
`Reference is made to application Ser. No. 07/812,983,
`noW abandoned, and copending application Ser. No. 07/812,
`982, ?led contemporaneously hereWith and assigned to the
`assignee of this application.
`
`FIELD OF THE INVENTION
`
`This application relates to operation of data processing
`devices and more particularly to such devices that perform
`a plurality of functions under the control of a stored softWare
`program.
`
`BACKGROUND OF THE INVENTION
`
`With the proliferation of microprocessor-based data pro
`cessing devices, there have developed large industries
`devoted to marketing and distribution of computer softWare,
`i.e. programs to control the operation of devices, and data to
`be processed by the devices. The softWare is often compleX
`and is capable in some cases of performing a large number
`of different functions. Processable data may also be provided
`in different varieties that are useful for a number of different
`purposes or tasks. It is also becoming common for the price
`of softWare or data to be based on the “value” to the
`customer. Thus, the marketer may Wish to charge the cus
`tomer a separate amount for each softWare function or each
`variety of data and the customer may Wish to pick and
`choose among the functions and/or varieties. This may be
`the case Whether the softWare or data is sold by itself or
`together With a data processing device.
`A type of data processing device that illustrates the
`foregoing is the computeriZed parcel manifest system, of
`Which Well knoWn examples are the STAR 200 and the
`STAR 110, both marketed by Pitney BoWes Inc., Stamford,
`Conn. These devices are both sold With operating system
`softWare, application softWare that controls the devices so as
`to perform their intended functions, and data to be used by
`the device. The data includes carrier rate data that is used for
`calculating parcel shipping charges. The STAR 200 includes
`an IBM PC-compatible microcomputer interfaced to an
`electronic scale. Also included in the STAR 200 is a cus
`tomiZed keyboard that includes special keys for selecting a
`parcel carrier or class of service. SoftWare and data are
`loaded into the computer for storage on a hard disk.
`The STAR 110 resembles a conventional electronic scale
`in outWard appearance. A microprocessor, memory, Weigh
`ing scale hardWare and softWare, and a keyboard and small
`display, are all integrated into a single housing. Part of the
`device’s memory is a ROM Which stores the operating
`system and application softWare. Thus the softWare is
`“embedded” in the device, Which is sometimes referred to as
`an “embedded system.” Carrier rate data and other infor
`mation are stored on PROMs that are detachably connected
`to the device and are addressable by the microprocessor.
`Both the STAR 110 and STAR 200 are capable of
`performing a number of accounting functions and producing
`printed shipment manifests, shipping forms and labels, and
`a number of different reports by means of a peripheral
`printer or printers. Both also permit processing of parcels in
`accordance With the requirements of several carriers. In
`addition to rate data that is provided as a standard feature of
`these devices, other rate data packages (eg for additional
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`55
`
`60
`
`5 m
`
`5,956,505
`
`2
`carriers or classes of service) are available for an additional
`fee. Since not all customers desire to purchase any or all of
`the available optional rate packages, the supplier of the
`devices must arrange that a variety of sets of rate data
`packages be stored in the devices. For eXample, it has been
`knoWn to install PROMs in the device (if the device is an
`embedded system) or to supply a ?oppy disk (if the device
`is PC-based), containing only the rate packages desired by
`the customer. HoWever, such arrangements may require
`production and storage of a large number of different rate
`PROMs and disks, With attendant eXpense and inconve
`nience. It has also been knoWn to store some or all of the
`possible rate packages on a standard PROM or disk or set of
`PROMs or disks and then to control the device’s access to
`the rate data via “directory” information stored on a direc
`tory PROM or disk. This approach also entails signi?cant
`eXpense and inconvenience. Under both approaches, the
`inconvenience can be increased When the customer Wishes
`to add an optional rate package at some point after initial
`purchase of the device. A signi?cant part of the inconve
`nience arises from the need to keep track of Which customers
`are holding Which optional rates, for purposes of distributing
`rate updates.
`Thus a more convenient and less expensive method of
`distributing rate or other types of optional data packages is
`desirable. It is also desirable to facilitate the distribution of
`applications softWare having optional features for Which
`separate amounts may be charged.
`
`SUMMARY OF THE INVENTION
`According to the invention, a method is provided for
`activating an optional feature in a data processing device
`that has a microprocessor and a memory connected to the
`microprocessor. The method includes:
`(a) storing in the memory a number of applications
`programs, the programs being for controlling the
`microprocessor to carry out intended functions of the
`device, at least one of the applications programs includ
`ing at least one optional feature;
`(b) storing in the memory application manager softWare
`for controlling access to the stored applications pro
`grams;
`(c) storing in the memory a communications softWare
`module that includes a number of communication pro
`tocol submodules, the submodules being for controlling
`the device for data communication With other process
`ing systems; the communications softWare being
`accessed by means of the application manager;
`(d) storing in the memory a program activation softWare
`module, Which is accessed by the application manager
`and includes activation data that indicates for each
`optional feature Whether the feature is activated or
`unactivated;
`(e) receiving a request to operate one of the optional
`features;
`(f) determining by reference to the activation data Whether
`the requested feature is activated or unactivated;
`(g) operating the requested feature if the requested feature
`Was determined to be activated; and
`(h) preventing operation of the request feature if the
`feature Was determined to be unactivated.
`According to another aspect of the invention, the method
`also includes receiving an activation request to activate the
`feature if the feature Was determined to be unactivated, and,
`in response to the activation request, updating the activation
`data to indicate that the feature has been activated.
`
`Petitioners Ex. 1006 Page 11
`
`
`
`5,956,505
`
`3
`According to a further aspect of the invention, the method
`also includes generating an activation request code in
`response to receipt of the activation request, the code
`including information that identi?es the device and the
`feature; transmitting the activation request code to a data
`center; receiving an activation code from the data center in
`response to the transmitting of the activation request code;
`and entering the activation code into the device, the updating
`being in response to entering the activation code; Whereby
`activation of the feature occurs under control of the data
`center.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`FIG. 1 is a block diagram of a data processing device With
`Which the inventive method may be used.
`FIG. 2 is a diagram of the softWare architecture for a
`program that controls the device of FIG. 1.
`FIGS. 3-A, 3-B, 3-C, and 3-D are a How chart of a routine
`for activating an optional program feature in the device of
`FIG. 1.
`FIGS. 4-A and 4-B are a How chart of a routine by Which
`a data center receives a feature activation request and issues
`a feature activation code.
`FIG. 5 is a How chart of a routine Whereby the device of
`FIG. 1 recommends activation of unactivated optional fea
`tures.
`
`DETAILED DESCRIPTION OF THE
`INVENTION
`
`FIG. 1 illustrates in block diagram form a data processing
`device 20 With Which the inventive method may be used.
`Device 20 includes CPU 22, Which may be a conventional
`microprocessor. Connected to CPU 22 are a plurality of
`memory devices 24-1 through 24-N. Memory devices 24
`may include, for example, program memory ROMs, detach
`able PROM paddles, Working RAMs, ?xed and/or ?oppy
`disk drives, CD ROM drives, etc. It Will be appreciated that
`at least some of memory devices are read/Write memory
`While others may be read only.
`Also connected to CPU 22 is a display 26 and a keyboard
`28. There may be associated With keyboard 28 a conven
`tional mouse (not shoWn).
`Among other alternatives, the hardWare just described
`may advantageously be realiZed in a conventional personal
`computer, or may be incorporated in an embedded system
`such as the STAR 110 described above.
`Device 20 also includes one or more peripherals, repre
`sented by block 30, Which are connected to CPU 22 and
`Which may include an electronic scale, a postage meter
`and/or one or more printers. Also connected to CPU 22 is a
`data communication interface 32, Which may be a conven
`tional modem, and Which is capable of establishing a data
`communication path (represented by arroW 34) betWeen
`device 20 and another data processing system (not shoWn).
`FIG. 2 is a schematic illustration of the architecture of
`application program softWare stored in one or more of
`memory devices 24. Block 40 represents user interface
`softWare that alloWs the user to input data into, and control,
`device 20 and to receive information from device 20. The
`user interface softWare also alloWs the user to access appli
`cation manager softWare (block 42), Which, as described
`beloW, enables and controls access to the various applica
`tions resident in device 20.
`Accessed via application manager 42 are one or more
`application programs, such as an accounting program (block
`
`4
`44), an addressing program (block 46), and a manifesting
`program (block 48). It is Within the contemplation of the
`invention that one or more of the applications may comprise
`an expert system. Accounting program 44 preferably com
`prises the functionality of a device such as The Mail
`Management System available from Pitney BoWes Inc.,
`Stamford, Conn. As Will be appreciated by those skilled in
`the art, accounting program 44 contains capabilities for
`keeping track of, and generating reports concerning, mail
`room activities and expenses. Accounting program 44 is
`preferably divided into a plurality of features 50, each of
`Which represents one or more record-keeping and/or report
`generating functions. For example, a ?rst one of features 50
`may consist of capabilities for generating reports of activity
`and expenses on a department-by-department basis. A sec
`ond of features 50 may consist of a capability for generating
`a report that analyZes actual performance vs. budgeted
`performance. A third feature 50 may consist of capabilities
`for generating reports that are broken doWn by class of mail.
`Addressing program 46 preferably includes the function
`ality of the AddressRight system available from Pitney
`BoWes Inc. Thus addressing program 46 preferably includes
`a plurality of features 52 such as mailing list correction,
`duplicate address elimination, merging of tWo or more
`mailing lists, envelope printing or barcode generation.
`Manifesting program 48 preferably includes the function
`ality of the aforesaid STAR 200 parcel manifest system. The
`features 54 making up manifesting program 48 may there
`fore include a plurality of carriers or classes of service for
`Which manifests can be produced and a plurality of account
`ing and reporting capabilities concerning manifesting activi
`ties performed by manifesting program 48.
`Application manager 42 also provides access to commu
`nications softWare module 56 and program activation mod
`ule 58. Communications module 56 is made up of submod
`ules that enable device 20 to utiliZe such Well-knoWn
`communication protocols as 422 (block 60), RS232 (block
`62) and Echoplex (block 64). Program activation module 58
`includes a portion referred to as the “con?guration record”
`(block 66) Which is for storing data concerning the activated
`and activatable softWare options for device 20 and also the
`hardWare con?guration of device 20. Another portion of
`program activation module 58, represented by block 68,
`contains data identifying device 20 and its location. This
`data may include, for example, a device serial number for
`device 20 and the Zip code of device 20’s location. A third
`portion, represented by block 70, contains softWare that
`monitors operation of device 20 and makes suggestions to
`the user concerning unactivated programs or features that
`may be of value to the user. Portion 70, sometimes referred
`to as the “application guide”, Will be discussed in more
`detail beloW.
`Also accessible via application manager 42 is a diagnostic
`softWare module 72 Which includes self-diagnosis softWare
`routines that may be initiated by keyboard input. As illus
`trated in FIG. 2, module 72 includes three diagnostic levels
`74, that might respectively be accessible by an authoriZed
`user, a supervisory user and a service representative. A
`greater or smaller number of levels is also contemplated.
`Completing the softWare architecture of device 20, as
`portrayed in FIG. 2, is a data base manager program,
`represented by block 76. Database manager 76 may be one
`of a number of commercially available database manage
`ment packages and is accessed by accounting program 44,
`addressing program 46 and manifesting program 48 for the
`purpose of performing some of their functions, such as
`
`10
`
`15
`
`25
`
`35
`
`45
`
`55
`
`65
`
`Petitioners Ex. 1006 Page 12
`
`
`
`5,956,505
`
`5
`storing transaction data, generating reports, or accessing an
`address data base.
`FIGS. 3-A, 3-B, 3-C and 3-D are a ?oW chart of a routine
`by Which application manager 42 and program activation
`module 58 control access to, and activation of, the applica
`tion programs and their various features.
`The routine commences With step 100, at Which the user
`requests that an application be actuated. The request may be
`made by entry of appropriate data or selection of a menu
`item through keyboard 28. The request is presented to
`application manager 42 through user interface softWare 40.
`Application manager 42 then determines, at step 102,
`Whether device 20 is a stand alone system, i.e. Whether
`device 20 includes only one application program such as
`accounting program 44. If at step 102 it Was determined that
`device 20 is a stand alone system, the routine proceeds
`directly to step 106. If device 20 is not a stand alone system,
`then it is determined Whether the requested application has
`been activated (step 104). This is accomplished through
`program activation module 58 Which consults a part of
`con?guration record 66 Which is referred to as the “activa
`tion map”. The activation map contains data indicating
`Which application programs, and Which features of the
`programs, have been activated and Whether the activation is
`permanent or temporary.
`If at step 104 it Was determined that the requested
`application Was activated, the user is permitted to select a
`feature of the requested application (step 106). It is then
`determined, again by reference to the activation map,
`Whether the selected feature has been activated (step 108).
`If at step 108 the selected feature Was determined to have
`been activated, it is neXt determined Whether the activation
`Was temporary, again by reference to the activation map
`(step 110, FIG. 3-B). If at step 110 the activation is not found
`to be temporary (i.e., the activation is permanent), applica
`tion manager 42 proceeds to permit operation of the
`requested feature (step 112). For example, if the requested
`application Was accounting program 44, and if the requested
`feature Was a department-by-department report generation
`package, the requested report Would be generated at step
`112. Preferably the operation of device 20’s hardWare is
`sufficiently rapid that steps 102 through 110 are accom
`plished Without a delay that is perceptible to the user.
`Returning noW to step 110, if activation of the requested
`feature Was found to be temporary, program activation
`module 58 updates a usage counter With respect to the
`requested feature to account for the requested use of the
`feature (step 114). Program activation module then com
`pares the updated usage counter With the amount of usage
`alloWed, as stored in the activation map (step 116). It is neXt
`determined, at step 118, Whether the alloWed usage Will be
`eXhausted by the request to operate the feature. If not, the
`routine simply proceeds to step 112, at Which the feature is
`operated as mentioned above. OtherWise, the routine pro
`ceeds to step 120, at Which the activation map is altered to
`indicate that the requested feature is no longer activated. The
`routine then proceeds to step 112, Which Will be the last
`operation of the requested feature, unless that feature is
`reactivated on the activation map, as Will be described
`beloW.
`Upon completion of step 112, the routine ends.
`If the requested application Was found at step 104 not to
`be activated, or if at step 108 the selected feature Was found
`not to be activated, the user is so advised and it is neXt
`determined Whether the user requests activation of the
`application or feature (step 122, FIG. 3-A). If not, the routine
`
`15
`
`25
`
`35
`
`45
`
`55
`
`65
`
`6
`ends. If activation is requested, the routine proceeds to step
`124 (FIG. 3-C) at Which it is determined Whether the user is
`authoriZed to request activation. As Will be Well understood
`by those skilled in the art, device 20 may be arranged so that
`various levels of authority Will be granted to various users,
`under the control of appropriate passWords. Thus a super
`visor or a manager level of authoriZation may be required to
`request activation of an application or a feature. If at step
`124 the user Was found not to be authoriZed, the routine
`ends. OtherWise, the user is prompted to select the program
`or feature that is to be activated (step 126). It Will be
`appreciated that selection of features to be activated may
`conveniently be guided by menus displayed on display 26
`and selection may be implemented by the user via keyboard
`28. With respect to at least some of the features available for
`activation, there may be menu items that indicate that either
`temporary or permanent activation is available. If the user
`selects temporary activation, there may be menu items that
`indicate such options as the number of times the feature Will
`be made available for use, or a length of time during Which
`the feature Will be available. After step 126, program acti
`vation module 58 then proceeds to generate a code that
`represents the applications or features or both for Which
`activation is requested (step 128). It Will be understood that,
`if temporary activation has been selected for some of the
`features, the activation map Will re?ect that fact and also Will
`re?ect the durations or amounts of usage selected for those
`features. Module 58 then proceeds to step 130, at Which it is
`determined Whether all hardWare required for the requested
`application or feature is connected to or included in device
`20. For example, if the requested feature Was the envelope
`printing feature of addressing program 46, program activa
`tion module 58 refers to the con?guration record to deter
`mined Whether an envelope printer is one of peripherals 30.
`If at step 130 it Was determined that hardWare not part of
`or connected to device 20 is required for the requested
`feature or application, program activation module 58 then
`generates a code that represents an order for the necessary
`hardWare (step 132). FolloWing step 132 (or step 130 if all
`necessary hardWare Was found to be in place) is step 134, at
`Which either the user enters data identifying device 20, or
`module 58 accesses such data from portion 68. The accessed
`or entered data may include Zip code or other data identi
`fying the location of device 20.
`FolloWing step 134 is step 136 at Which program activa
`tion module 58 generates an integrated request code that
`re?ects the entered ID. and location data, the softWare
`activation request and any hardWare that is to be ordered. It
`Will be understood that step 136 may include use of an
`encryption algorithm.
`FolloWing step 136 is step 138 (FIG. 3-D) at Which it is
`determined Whether device 20 is arranged for direct data
`communications With the data center. If not, step 140
`folloWs, at Which device 20 displays to the user instructions
`for calling a data center. After step 140 is step 142 at Which
`system 20 displays a list of the features and/or applications
`requested for activation by the user. That list also preferably
`includes all the hardWare Which is being ordered because it
`is required for operation of the requested features or appli
`cations. After step 142 is step 144 at Which device 20
`displays the integrated request code that Was generated at
`step 136. It Will noW be assumed that the user enters into
`communication With a data center in a manner that Will be
`described beloW. It Will further be assumed that, as a result
`of that communication, the user has received from the data
`center an activation code. Thus at step 146, the user enters
`into device 20, via keyboard 28, the activation code received
`
`Petitioners Ex. 1006 Page 13
`
`
`
`5,956,505
`
`7
`from the data center. The entered code is decrypted by
`program activation module 58, Which then updates the
`activation map of con?guration record 66 to re?ect activa
`tion of the programs and or features for Which activation Was
`requested (step 148). With respect to features for Which
`temporary activation Was requested, updating of the activa
`tion map includes storage of data that indicates the selected
`amount or duration of usage of the feature. A selected
`duration may be stored in the form of a deadline; a selected
`amount may be stored in the form of a number of times that
`the feature may be selected for use. It Will be appreciated
`that temporary activation alloWs a user to have use of a
`feature on a rental or free trial basis.
`After step 148, the routine then ends. It Will be understood
`that the user is noW free to request operation of the activated
`programs or features and that such a request Will lead to step
`112, as discussed above.
`Returning noW to step 138, if device 20 Was equipped for
`direct communication With the data center, step 150 Will
`folloW step 138. At step 150 appropriate action is taken
`through communication module 56 to establish a direct data
`link With a data center. Communication via conventional
`telephone, or alternatively cellular telephone or other Wire
`less communication is contemplated. FolloWing step 150 is
`step 152, at Which the integrated request code is transmitted
`from device 20 to the data center. An activation code is then
`received by device 20 from the data center. Step 152 then
`leads to step 148, as described above.
`The data center to Which request codes are to be sent and
`from Which activation codes are received is preferably of the
`same general type as the data center described in US. Pat.
`Nos. 3,792,446 and 4,097,923 in connection With a system
`for remotely charging postage meters. The disclosures of
`those patents are incorporated herein by reference. In addi
`tion to receiving numeric input from a user’s telephone tone
`pad and providing information via a voice ansWer back unit,
`the data center is advantageously also adapted to enter into
`direct data communication With a device 20.
`FIGS. 4-A and 4-B illustrate a softWare routine for
`controlling a data center to receive request codes from users
`or devices 20 and to transmit activation codes to users or
`devices 20. Such a data center may be maintained, for
`example, by a company that manufactures or markets
`devices 20.
`The routine begins With step 200, at Which the data center
`receives a telephone call. The routine then proceeds to step
`202, at Which it is determined Whether there is to be direct
`communication betWeen the data center and a device 20. For
`example, the data center may determine Whether a prede
`termined code has been transmitted, presumably by a device
`20, indicating that automatic communications are to pro
`ceed. If at step 202 it is determined that direct communica
`tion Will not be used, is data center Will then prompt the user,
`by means of a voice ansWer back unit, to enter a request code
`(step 204). Either folloWing step 204, or directly after step
`202 if direct communications or to be used, is step 206, at
`Which the data center receives the request code Which, it Will
`be understood, is either entered via a telephone tone pad by
`the user or is transmitted automatically by a device 20.
`FolloWing step 206 is step 208, at Which the data center
`decrypts the received request code in order to determined
`What programs or features are requested to be activated. It
`Will be recalled that the request code also contains informa
`tion identifying the device 20 for or by Which the request is
`being made. From that information, the data center deter
`mines the identity of the customer holding that device 20 and
`
`10
`
`15
`
`25
`
`35
`
`45
`
`55
`
`65
`
`8
`checks the customer’s ?le to determine Whether the request
`is appropriate (step 210). For example, the data center
`checks to see Whether the request code included a request to
`activate a feature or program that, according to the custom
`er’s ?le, Was already activated.
`FolloWing step 210 is step 212, at Which it is determined