Technical Field
[0001] The present invention relates to determining or setting charges in respect of printing
and photocopying for example, for devices such as printers in a hierarchical system.
Background
[0002] Many modern day electronic devices, such as printers and multi-function devices (MFDs)
such as multi-function printers (MFPs) are provided with network connections so that
multiple devices can be more easily managed and controlled through a network. A common
method for assigning a large number of devices to a network (for example, 500 or more)
is to map each device to a hierarchical structure that mirrors a company's hierarchical
infrastructure and/or working environment. Figure 1 shows an example of such a hierarchical
structure network. Typically, a hierarchical structured network of devices such as
that shown in Figure 1 will be controlled by a centralised system, and data for each
of the devices will be stored in the form of a table (or "dataset"), the "main table",
within a database. The main table will usually contain a Device ID for each device
within the hierarchical structure mapped to corresponding data values for said device,
such as "counter values" (e.g. number of pages printed) and hierarchical data which
can be used to find the exact location of a device within the hierarchy. An example
of part of a main table is shown in Table 1. The hierarchical data in Table 1 is shown
using the nested-set model, but other forms may be used, for example an adjacency
list model. Table 1 is a representation of the information that is available and stored
on the database. The data does not necessarily have to be in tabular form, but it
is easiest to represent the data in this way for the sake of this description. Table
1 should therefore, be viewed as a denormalized and grouped representation of data
from the database.
[0003] Printing charges are often assigned to the devices within a network, such that a
charge or cost can be associated with printing from each of the devices. For a hierarchical
structure, such as that shown in Figure 1, each device could fall within one of three
charging systems. These are:
- 1. Device-based charging
- 2. Group based charging
- 3. System based charging
[0004] Device based charging is a charging system that can be assigned to specific types
of device. This print charging system is beneficial as the running and printing costs
for a high speed MFP may be considerably more than that for a normal desktop laser
printer. The device based charging system may also assign different charging levels
for different devices. For example, the charge for printing by a high speed MFP could
be higher than the charge for printing by a low speed MFP, but both high and low speed
MFPs are still assigned a device based charging system.
[0005] Group based charging is a charging system that can be assigned to specific groups
within the hierarchy. Groups can be defined to suit the requirements of the hierarchical
system. For example, a group could be defined as any device under a specific hierarchical
level, such as Tokyo. In this instance, the 150 devices shown in Figure 1 would be
assigned the same group-based charging system. There may be more than one group, with
different groups having different charging levels. It may also be that certain groups
have priority over others, such that if a device could fall within two or more groups,
the group with the highest priority will be used to assign the charging system. For
example, in addition to the Tokyo group-based charging system, another special group
could be defined as all devices belonging only to Section A. In this instance, there
are three devices belonging only to Section A (10-(2+3+2)=3) which are assigned the
special group based charging system, and all other devices (including those found
in Teams 1, 2 and 3) are assigned the Tokyo group charging system.
[0006] System based charging is a charging system that can be assigned to all other devices
within the hierarchy that do not fall within either of the device based or the group
based charging systems.
[0007] Typically the order of importance of the systems, and the order in which they would
be assigned, is as follows:
Device-based > Group-based > System-based
[0008] This means that neither a group-based nor a system-based charging system would be
applied to a device to which a device-based charging system applied, and a system-based
charging system wouldn't be applied to a device to which a group-based charging system
applied.
[0009] These charging systems are extremely beneficial, but applying the correct charging
system to each device can be a long and potentially difficult process, especially
if the hierarchy contains a large number of devices and there are a number of different
levels of device- and group-based charging systems. Printing charging systems are,
at present, assigned to devices manually, with each device being assigned a charging
system by, for example, user. This makes the process extremely costly, both financially
and in terms of time, as well as potentially vulnerable to human error.
[0010] An improved method of assigning printing charges to multiple devices in a network
is therefore greatly needed.
Summary
[0011] It is an object of the present invention to provide a quicker and more efficient
way of assigning print charging systems to multiple networked printing devices within
a hierarchical system.
[0012] According to a first aspect of the invention there is provided a system for determining
charges in a hierarchical system, comprising: a data storage structure for storing
one or more datasets for each of a plurality of devices within the hierarchical system,
the one or more datasets comprising hierarchical location information and device IDs
for each of the plurality of devices; and a crawler system comprising at least one
crawler configured to crawl through the one or more datasets stored in the data storage
system to determine which of a number of possible charging systems is to be assigned
to each device within the plurality of devices.
[0013] Embodiments of the present invention may provide an automatic system for determining
which of a number of print charging systems should be applied to each of a number
of printing devices within a hierarchical structure, and may further provide an automatic
system for assigning said determined print charging system to said devices.
[0014] The crawler system may comprise two crawlers: a first crawler which crawls through
the data from the bottom of the hierarchical system to the top, and a second crawler
which crawls through the data from the top of the hierarchical system to the bottom.
[0015] The first crawler may define which pathways down the hierarchy the second crawler
should take.
[0016] The second crawler may determine and assign a charging system to each of the devices
in the hierarchical system.
[0017] The datasets within the data storage structure may be modifiable to include an indication
of which charging system has been determined for each device.
[0018] The at least one crawler may be implemented as a single SQL statement.
[0019] The at least one crawler may refer to at least one dataset containing charging-relevant
information to determine which charging system to apply to a device.
[0020] The plurality of devices within the hierarchical system may be multi-function devices,
printers and/or copiers.
[0021] The number of possible charging systems may comprise device-based, group-based and
system-based charging systems.
[0022] The charging system assigned to a device may further comprise an indication of which
of a number of pricing tables to use when calculating charging costs for jobs carried
out by that device.
[0023] According to a second aspect of the invention there is provided a method of determining
charges in a hierarchical system, the method comprising: in a data storage structure,
storing one or more datasets for each of a plurality of devices within the hierarchical
system, the one or more datasets comprising hierarchical location information for
each of the plurality of devices; providing a crawler system having at least one crawler;
and configuring the at least one crawler to crawl the one or more datasets in the
data storage system to determine which of a number of possible charging systems to
apply to each of the plurality of devices.
[0024] The crawler system may comprise two crawlers: a first crawler which crawls through
the data from the bottom of the hierarchical system to the top, and a second crawler
which crawls through the data from the top of the hierarchical system to the bottom.
[0025] The first crawler may define which pathways down the hierarchy the second crawler
should take.
[0026] The second crawler may determine and assign a charging system to each of the devices
in the hierarchical system.
[0027] The method may further comprise modifying a dataset to include the determined charging
system for each device.
[0028] The number of possible charging systems may comprise device-based, group-based and
system-based charging systems.
[0029] The crawler system may be implemented as a single SQL statement.
[0030] The crawler system may be configured to refer to at least one dataset containing
charging-relevant information to determine which charging system to apply to a device.
[0031] The plurality of devices within the hierarchical system may be multi-function devices,
printers and/or copiers.
[0032] The step of using the crawler system to crawl the datasets in the data storage system
to determine which of a number of possible charging systems should be applied to each
of the plurality of devices may further comprise providing an indication of which
of a number of pricing tables to use when calculating charging costs for jobs carried
out by that device.
Brief Description of the Drawings
[0033] Further aspects, features and advantages of the invention will become apparent to
the reader of the following description of specific embodiments of the invention,
provided by way of example only, with reference to the accompanying drawings, in which:
Figure 1 is a hierarchical graph showing an example of a hierarchical system of networked
printing devices; and
Figure 2 is a schematic illustration of a database management system.
Detailed Description
[0034] As discussed above, it is extremely beneficial to be able to assign print charging
systems (sometimes referred to as policies) to printing devices within a network.
However, it can be difficult to assign the charging systems when there are a large
number of printing devices within a hierarchically structured network.
[0035] A new system and method will now be described, with reference to the figures, which
can automatically judge which charging system is relevant to each of all the printing
devices within a hierarchical structure, and then apply said relevant charging system
accordingly.
[0036] The method comprises using one or more hierarchical "crawlers" to check which print
charging system applies to the devices and then assign the correct one accordingly.
A crawler is a term used in computer science to describe algorithmic behaviour, such
as the ability to navigate data structures from one data node to another and perform
functions on or with said data, for example analysing or processing the data as it
progresses.
[0037] A crawler may also be able to amend or add to the data if required. Typically there
are two crawlers: a "Top-Down" crawler (TDC) and a "Bottom-Up" crawler (BUC). The
TDC works from the top of the hierarchy down to the bottom, whereas the BUC works
from the bottom up to the top.
[0038] In addition to the crawlers, a number of tables (or "datasets") can be provided that
contain charging-relevant information. There are two main categories of table that
contain charging-relevant information: a pricing assignment table and a pricing table.
[0039] Table 2 shows a modified version of the main table. As previously explained, this
table is merely a representation of information that is available and stored on the
database. In this modified version, the hierarchical data has been used to generate
Group_IDs that are provided in the middle column. Group_IDs are an indication of which
group (or "branch") of the hierarchy a device belongs to. For example, one branch
of the hierarchy of Figure 1 might be Tokyo.
[0040] A pricing assignment table (an example of which is shown in Table 3) maps each of
the possible charging systems with a specific instance of a pricing table. For example,
Table 3 states that pricing table PT9 should be used to resolve the pricing for each
device that is assigned the Device 2 charging system. The group charging systems provided
in the pricing assignment table will correspond with the Group_IDs that are provided
in the modified main table of table 2. For instance, "Group 1" in table 3 will correspond
to Group_ID 1 in table 2, and "Group 2" in table 3 will correspond with Group_ID 2
in Table 2. However, not all Group_IDs will have an associated group charging system.
[0041] Pricing tables are the tables that contain the actual pricing information. Pricing
tables may be relevant to, for example, a specific device ID (for device-based charging),
a Group ID (indicating a group covered by group-based charging), or the rest of the
system (system based charging). This relationship is attained through the use of a
pricing assignment table. There may be one or more pricing tables depending on the
complexity of the charging systems required within a hierarchy. The reason that multiple
pricing tables may be required is, for example, that one group of devices having a
first group-based charging system assigned to them may work from a different pricing
table to another group of devices that have a second group-based charging system assigned
to them. A typical corporate infrastructure will require a number of pricing tables
in order to provide maximum flexibility for pricing schemes; the pricing tables will
typically contain pricing factors for each activity that is possible for a given device.
For example, the table may contain the cost of printing, copying scanning, faxing
etc for a single sheet of paper of a specific size. Table 4 is a representation of
an example pricing table, PT2. The activity for which pricing is relevant is provided
in the left column, and the associated price factor for the unit of activity is then
mapped to it in the right hand column.
[0042] The BUC can be used to determine the absolute top of the hierarchy, or, in the case
where only a portion of the hierarchy is of interest to a client (for example, when
assigning printing charges only to devices within a given country / office location),
an upmost node in the hierarchy that is, in essence, the root of the section hierarchy
of interest to which the reported devices are registered. It starts at the devices
located at the bottom of the hierarchy (or the bottom of the area of interest within
the hierarchy) and works its way up the hierarchy until the desired top level is reached.
The BUC may be instructed by a separate crawler that is itself instructed based on
the users input to find all hierarchical nodes within the area of the user's interest
that have devices attached, and to propagate each hierarchical node to the end of
their hierarchies (i.e. each individual level will be followed to the end provided
there are devices registered to it). Alternatively, the BUC simply uses information
provided by the user. The user will typically be aware of their company's hierarchical
infrastructure and/or working environment, and so will be able to specify the bottom
level of the hierarchy of interest.
[0043] During its journey up the hierarchy, the BUC defines for the TDC crawler which hierarchical
paths it should take down the hierarchy. The crawlers are able to follow all pathways
up an down the hierarchy in parallel, and so only one journey up the hierarchy is
required from the BUC in order to determine all possible pathways. The uppermost hierarchical
level reached by the BUC is the point at which the TDC starts. For example, in the
hierarchical structure shown in Figure 1, the uppermost hierarchical level will be
determined to be JAPAN at Absolute Level A.
[0044] The TDC, starting from the uppermost hierarchical level determined by the BUC, works
its way down the hierarchical structure, down through the groups ("branches"), and
uses the information from the main table and the pricing assignment table to first
determine if any devices on any given level should be assigned a device-based charging
system, and if so, then determines which pricing table to use to assign charges for
said devices using the information from the pricing assignment table.
[0045] Once it has completed a first trip down the hierarchy assigning device-based charging
systems, it repeats the journey, but this time assigning group-based charging systems,
and subsequent pricing tables for each different group. Group-based charging systems
can be propagated down the hierarchy. For example, if the pricing assignment table
specifies a group-based charging system for a device at the RICOH level (B) and but
no charging system for a device at Tokyo level (C), then (depending on the requirements
provided by the client) the Tokyo level may also adopt the group-based charging system
of level B. If, however, the client's requirements specify that Tokyo level has its
own group-based charging system it would not adopt the same charging system as B.
A group-based charging system will be propagated down the hierarchy from level to
level unless it a) comes to the end node in the hierarchy, or b) reaches a level that
is provided with another group-based charging system. This is known as "rolling ball
propagation", as the process closely resembles heavy ball rolling down a staircase:
it will continue until it finishes at the end of the staircase or until it is stopped
by hitting another ball which continues the journey down the staircase in its place.
[0046] After the second trip down the hierarchy, the TDC performs a third trip down the
hierarchy to assign a system based charging system (and relevant pricing table) to
all remaining devices which have not already had a charging system applied to them.
[0047] Table 5 shows a representation of the end result of the process. Once the crawlers
have gone through the system, it is then known which pricing table should be used
for each of the devices within the hierarchy. The table 5 would not typically be output
in any such form, but instead the system simply associates the correct pricing table
to each device internally.
[0048] The TDC is described above as carrying out three "cycles" in order to assign the
three possible charging systems to each device in the hierarchy. However, it is understood
that alternative crawlers could perform the task without the need to carry out multiple
cycles through the hierarchical data.
[0049] The example above describes the use of two crawlers; however it will be appreciated
that the same method can be carried out by using a single crawler that performs one
task after another or potentially both tasks in parallel.
[0050] Data for each device within a hierarchical system is kept in a database. The data
can be stored in special hierarchical formats, for example adjacency lists and/or
nested set models. It is this data that the crawlers move through, and when a device
is assigned a charging system, then this additional information can be stored in the
database alongside the existing information.
[0051] The tables that contain charging relevant information, i.e. the modified main table
(e.g. table 2), the pricing assignment table (e.g. table 3), the individual pricing
tables (e.g. table 4), and the final resulting device assignment table (e.g. Table
5) can be stored in the same database as the main table. As previously explained,
and will be understood by database experts, this information may not in fact be stored
in tabular form, but the information shown in these tables will be available within
the database.
[0052] In one embodiment, the crawlers are implemented as a single Structured Query Language
(SQL) statement that encompasses both the TDC and BUC crawlers. SQL is particularly
beneficial as it is a set orientated language and can therefore provide automatic
query optimization and also parallelisation functionalities. As the SQL statement
crawls through the hierarchical format data stored in the main table, the correct
printing charge will be determined using parameters within the SQL statement and the
information provided in the database, and the database will be updated to include
the determined printing policy for each device.
[0053] Most modern relational database management systems (RDBMS) provide automatic query
optimization and parallelization functionalities, which means that different parts
of a single SQL query code can be executed in parallel (depending on the hardware
environment and RDBMS system settings), allowing for different "branches" or pathways
through the hierarchy to be analysed in parallel. The crawlers are implemented as
a single SQL statement will therefore be efficiently executed at run time, and the
system can automatically coordinate both the TCD and BUC crawlers.
[0054] Figure 2 schematically shows a database management system 200, which functions to
collect and store data regarding networked printing devices 220 within a hierarchical
infrastructure 222. The database management system can be controlled and maintained
by an administrator, for example from a computer terminal 218 connected to the network
216. The database management system 200 comprises a database server 202 and a data
storage system 204, though these do not have to be separate sub-systems as shown.
Furthermore, any separation need not be "physical", i.e. they may be integrated.
[0055] The database server 202 comprises network protocols 206, and a charge determining
engine 208 which further comprises a crawler module 209. The network protocols 206
provide the functions of connection handling, authentication, security, and so forth
over network 216. The network 216 can be a wide area network such as the Internet.
The charge determining engine 208 is responsible for assigning each device with a
print charging system. Its components can comprise a crawler module 209 that runs
data crawlers through the hierarchical structure data stored in the data storage system
204. These crawlers are used to determine a charging system for each of the printing
devices 220 within the hierarchical structure 222. Once the correct charging system
for a device has been determined, this information can be saved back to the database
212.
[0056] The data storage system 204 comprises a storage engine 210, which is responsible
for the efficient storage and retrieval of data from the database 212. For hierarchical
structures of networked printing devices, the database 212 will typically contain
a main table 214 that stores information on each device (e.g. Device ID, hierarchical
format data, counter values etc) such as that shown in Table 1. Further information
can also be stored in the main table, or alternatively in separate auxiliary tables
(not shown). Examples of further information that may be stored are: toner level,
event statuses (e.g. low paper, paper jam, cover open, online, offline, service call,
etc) and various device counters (e.g. absolute number of pages printed for a different
set of counter types - black and white, colour, simplex, duplex etc). Other tables
that may be stored in the database 212 are, for example, a pricing assignment table
and pricing tables such as those described above. These tables are representations
of the information that can be stored in the database. The actual data may not necessarily
be stored in tabular form, but they are described as such herein in order to more
easily describe the concepts.
[0057] The database server 202 communicates with the storage engine 210 through a storage
engine application programming interface (API) (not shown). The data storage system
204 may include a network interface for transmitting and receiving data via network
216 (i.e. not through database server 202) to and from the printing devices 220. Systems
202, 204 may be implemented as a data processing system having at least one processor.
In one embodiment, the at least one processor is a conventional processing device,
such as a general-purpose microprocessor. The data processing system also includes
a memory, which includes program instructions or functional units that implement the
aforementioned features, such as the charge determining engine 208 and the storage
engine 210.
[0058] It will be appreciated by the person of skill in the art that various modifications
may be made to the above described embodiments without departing from the scope of
the present invention.
Table 1
| Device ID |
Hierarchical data |
| 1 |
[6;7] |
| 2 |
[11;12] |
| 3 |
[9;10] |
| ... |
... |
| 788 |
|
| 789 |
|
| 790 |
|
| 791 |
|
| ... |
... |
| 985 |
|
| 986 |
|
| 987 |
|
| 988 |
|
| 989 |
|
| ... |
... |
Table 2
| Device ID |
Group_ID |
Hierarchical data |
| 1 |
1 |
[6;7] |
| 2 |
2 |
[11;12] |
| 3 |
1 |
[9;10] |
| ... |
... |
... |
| 788 |
|
|
| 789 |
|
|
| 790 |
|
|
| 791 |
|
|
| ... |
|
... |
| 985 |
|
|
| 986 |
|
|
| 987 |
|
|
| 988 |
|
|
| 989 |
|
|
| ... |
|
... |
Table 3
| Charging System |
Pricing table identifier |
| System |
PT1 |
| Group 1 |
PT2 |
| Group 2 |
PT3 |
| ... |
... |
| Device 1 |
PT8 |
| Device 2 |
PT9 |
| ... |
... |
| Device 18 |
PT34 |
| ... |
... |
Table 4
| Pricing Table: PT2 |
| Activity |
Associated price (£) |
| Printing B&W per sheet |
0.02 |
| Printing colour per sheet |
0.07 |
| Scanning per sheet |
0.00 |
| Faxing per sheet |
0.12 |
Table 5
| Device ID |
Assigned Pricing Table |
| 1 |
PT2 |
| 2 |
PT3 |
| 3 |
PT34 |
| ... |
... |
| 788 |
PT1 |
| 789 |
PT1 |
| 790 |
PT1 |
| 791 |
PT1 |
| ... |
... |
| 985 |
PT5 |
| 986 |
PT5 |
| 987 |
PT8 |
| 988 |
PT5 |
| 989 |
PT9 |
| ... |
... |
1. A system for determining charges in a hierarchical system, comprising:
a data storage structure for storing one or more datasets for each of a plurality
of devices within the hierarchical system, the one or more datasets comprising hierarchical
location information and device IDs for each of the plurality of devices; and
a crawler system comprising at least one crawler configured to crawl through the one
or more datasets stored in the data storage system to determine which of a number
of possible charging systems is to be assigned to each device within the plurality
of devices.
2. A system according to claim 1, wherein the crawler system comprises two crawlers:
a first crawler which crawls through the data from the bottom of the hierarchical
system to the top, and a second crawler which crawls through the data from the top
of the hierarchical system to the bottom.
3. A system according to claim 1 or 2, wherein the at least one crawler is implemented
as a single SQL statement.
4. A system according to any preceding claim, wherein the at least one crawler refers
to at least one dataset containing charging-relevant information to determine which
charging system to apply to a device.
5. A system according to any one of the preceding claims, wherein the charging system
assigned to a device further comprises an indication of which of a number of pricing
tables to use when calculating charging costs for jobs carried out by that device.
6. A method of determining charges in a hierarchical system, the method comprising:
in a data storage structure, storing one or more datasets for each of a plurality
of devices within the hierarchical system, the one or more datasets comprising hierarchical
location information for each of the plurality of devices;
providing a crawler system having at least one crawler; and
configuring the at least one crawler to crawl the one or more datasets in the data
storage system to determine which of a number of possible charging systems to apply
to each of the plurality of devices.
7. A method according to claim 6, wherein the crawler system comprises two crawlers:
a first crawler which crawls through the data from the bottom of the hierarchical
system to the top, and a second crawler which crawls through the data from the top
of the hierarchical system to the bottom.
8. A method according to claim 7, wherein the first crawler defines which pathways down
the hierarchy the second crawler should take.
9. A method according to claim 7 or 8, wherein the second crawler determines and assigns
a charging system to each of the devices in the hierarchical system.
10. A method according to any one of claims 6 to 9, wherein the method further comprises
modifying a dataset to include the determined charging system for each device.
11. A method according to any one of claims 6 to 10, wherein the number of possible charging
systems can comprise device-based, group-based and system-based charging systems.
12. A method according to any one of claims 6 to 11, wherein the crawler system is implemented
as a single SQL statement.
13. A method according to any one of claims 6 to 12, wherein the crawler system is configured
to refer to at least one dataset containing charging-relevant information to determine
which charging system to apply to a device.
14. A method according to any one of claims 6 to 13, wherein the plurality of devices
within the hierarchical system are multi-function devices, printers and/or copiers.
15. A method according to any one of claims 6 to 14, wherein the step of using the crawler
system to crawl the datasets in the data storage system to determine which of a number
of possible charging systems should be applied to each of the plurality of devices
further comprises providing an indication of which of a number of pricing tables to
use when calculating charging costs for jobs carried out by that device.
Amended claims in accordance with Rule 137(2) EPC.
1. A system for determining charges in a hierarchical system, comprising:
a data storage structure for storing one or more datasets for each of a plurality
of devices within the hierarchical system, the one or more datasets comprising hierarchical
location information and device IDs for each of the plurality of devices; and
a crawler system comprising at least one crawler configured to crawl through the one
or more datasets stored in the data storage system to determine which of a number
of possible charging systems is to be assigned to each device within the plurality
of devices,
wherein at least one crawler in the crawler system is configured to crawl in a bottom-to-top
hierarchical direction to define all possible pathways down the hierarchy, and at
least one crawler is configured to crawl in a top-to-bottom hierarchical direction
following the defined pathways to check which charging system applies to each device
on those pathways and assign it accordingly.
2. A system according to claim 1, wherein the crawler system comprises two crawlers:
a first crawler which crawls through the data from the bottom of the hierarchical
system to the top, and a second crawler which crawls through the data from the top
of the hierarchical system to the bottom.
3. A system according to claim 1 or 2, wherein the at least one crawler is implemented
as a single SQL statement.
4. A system according to any preceding claim, wherein the at least one crawler refers
to at least one dataset containing charging-relevant information to determine which
charging system to apply to a device.
5. A system according to any one of the preceding claims, wherein the charging system
assigned to a device further comprises an indication of which of a number of pricing
tables to use when calculating charging costs for jobs carried out by that device.
6. A method of determining charges in a hierarchical system, the method comprising:
in a data storage structure, storing one or more datasets for each of a plurality
of devices within the hierarchical system, the one or more datasets comprising hierarchical
location information for each of the plurality of devices;
providing a crawler system having at least one crawler; and
configuring the at least one crawler to crawl the one or more datasets in the data
storage system to determine which of a number of possible charging systems to apply
to each of the plurality of devices,
wherein the step of configuring the at least one crawler comprises configuring at
least one crawler to crawl in a bottom-to-top hierarchical direction to define all
possible pathways down the hierarchy, and further configuring at least one crawler
to crawl in a top-to-bottom hierarchical direction following the defined pathways
to check which charging system applies to each device on those pathways and assign
it accordingly.
7. A method according to claim 6, wherein the crawler system comprises two crawlers:
a first crawler which crawls through the data from the bottom of the hierarchical
system to the top, and a second crawler which crawls through the data from the top
of the hierarchical system to the bottom.
8. A method according to claim 7, wherein the first crawler defines which pathways down
the hierarchy the second crawler should take.
9. A method according to claim 7 or 8, wherein the second crawler determines and assigns
a charging system to each of the devices in the hierarchical system.
10. A method according to any one of claims 6 to 9, wherein the method further comprises
modifying a dataset to include the determined charging system for each device.
11. A method according to any one of claims 6 to 10, wherein the number of possible charging
systems can comprise device-based, group-based and system-based charging systems.
12. A method according to any one of claims 6 to 11, wherein the crawler system is implemented
as a single SQL statement.
13. A method according to any one of claims 6 to 12, wherein the crawler system is configured
to refer to at least one dataset containing charging-relevant information to determine
which charging system to apply to a device.
14. A method according to any one of claims 6 to 13, wherein the plurality of devices
within the hierarchical system are multi-function devices, printers and/or copiers.
15. A method according to any one of claims 6 to 14, wherein the step of using the crawler
system to crawl the datasets in the data storage system to determine which of a number
of possible charging systems should be applied to each of the plurality of devices
further comprises providing an indication of which of a number of pricing tables to
use when calculating charging costs for jobs carried out by that device.