(19)
(11)EP 2 639 708 B1

(12)EUROPEAN PATENT SPECIFICATION

(45)Mention of the grant of the patent:
22.05.2019 Bulletin 2019/21

(21)Application number: 12159331.3

(22)Date of filing:  13.03.2012
(51)International Patent Classification (IPC): 
G06F 17/30(2006.01)

(54)

Method and system for storing and retrieving data

Verfahren und System zum Speichern und Abrufen von Daten

Procédés et système de stockage et de récupération de données


(84)Designated Contracting States:
AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR

(43)Date of publication of application:
18.09.2013 Bulletin 2013/38

(73)Proprietor: Ricoh Company, Ltd.
Tokyo 143-8555 (JP)

(72)Inventor:
  • The inventor has waived his right to be thus mentioned.

(74)Representative: White, Duncan Rohan et al
Marks & Clerk LLP Fletcher House (2nd Floor) Heatley Road The Oxford Science Park
Oxford OX4 4GE
Oxford OX4 4GE (GB)


(56)References cited: : 
WO-A2-2008/065638
US-A1- 2009 150 289
  
      
    Note: Within nine months from the publication of the mention of the grant of the European patent, any person may give notice to the European Patent Office of opposition to the European patent granted. Notice of opposition shall be filed in a written reasoned statement. It shall not be deemed to have been filed until the opposition fee has been paid. (Art. 99(1) European Patent Convention).


    Description

    FIELD



    [0001] Embodiments described herein generally relate to storing and retrieving data, particularly, but not exclusively, data about networked office equipment.

    BACKGROUND



    [0002] Many modern day electronic devices, such as printers, copiers, scanners, and multifunction devices (MFDs) have the ability to generate device usage and other data. Often, such devices are provided with network connections so that the data can be periodically transmitted to a central database for subsequent analysis. As the number of devices, as well as the number of device parameters to which the data pertains, can be large, the amount of data collected over time can be vast.

    [0003] Although many conventional systems in widespread use today, such as relational database management systems, have the ability to store vast amounts of data collected over time (i.e. time-varying data), the rules governing transactions in relational databases offer very little built-in support to adequately analyse it. In other words, queries for historical data are difficult in a relational database. To resolve this issue, separate analytical structures are often used. Thus, the data can be stored in a relational database, whereas the analysis is performed by a tightly coupled analytical counterpart. However, existing implementations, particularly those for enterprise printing systems, make use of vendor-specific and/or complex queries that consume computer resources to a degree that significantly reduces system performance.

    [0004] Methods for associating particular data elements with a time point to create a timeline such as those described in WO 2008/065638 are well known. However, such a timeline requires association of each data element with the timeline. Although this means that the data elements are now ordered it is still difficult to provide any analysis of the data stored within the timeline without requiring the use of significant resources.

    [0005] It is therefore desirable to provide improved systems and methods for management and analysis of data.

    SUMMARY



    [0006] One aspect of the invention provides a database management system, comprising: a first data storage structure for storing one or more datasets for each of a plurality of devices, each dataset comprising unordered timestamped data elements that indicate statuses of a particular device related condition at different points in time; a second data storage structure for storing and mapping between: device identifiers that identify the devices, condition identifiers that identify the device related conditions, and timestamps that identify when two temporally consecutive data elements of a given dataset indicate different statuses, wherein the data storage management system is operable to update the second data storage structure whenever a new data element of one of the datasets indicating a status different from the status indicated by a temporally preceding data element of said one of the datasets is stored in the first data storage structure; and data access means for, in response to receiving a request for data in respect of a specified time period and at least one device related condition of at least one device, using the second data storage structure to identify when one or more status changes occurred within the specified time period for said at least one device related condition.

    [0007] Using the second data storage structure enables status changes (two temporally consecutive data elements indicating different statuses) to be efficiently and straightforwardly determined, at minimal cost of an update to the second data storage structure when new data indicating a different status is stored in the first data storage structure.

    [0008] In one embodiment, at least some of the timestamps are associated as pairs in the second data storage structure, the pairs comprising a first timestamp indicating a change from a first status to a second status and a second timestamp indicating a change from the second status to the first status. For example, the first timestamp may indicate the detection of a problem and the second timestamp may indicated a resolution of that problem.

    [0009] In one embodiment, the update comprises modifying the stored timestamps or adding new timestamps.

    [0010] In one embodiment, the status indicated by the new data elements corresponds to a device related condition for which no condition identifier is currently stored, the database management system operable to add a new condition identifier to the second data storage structure.

    [0011] In one embodiment, the database management system comprises a relational database management system in which the first data storage structure comprises a relational data storage structure.

    [0012] In one embodiment, the request comprises a structured query language, SQL, query. The use of open database standards such as SQL allows the database management system to be widely implemented.

    [0013] In one embodiment, the database management system is operable to receive new data elements from the plurality of devices over a network via a network interface. The network may be a wide area network such as the Internet or a local area network.

    [0014] Efficiency gains may be especially pronounced when the number of devices and/or conditions is large, for example when each of the number of devices and the number of the device related conditions is in the tens, hundreds, thousands or more.

    [0015] One aspect of the invention provides a method of accessing data in a database management system, the method comprising: in a first data storage structure, storing one or more datasets for each of a plurality of devices, each dataset comprising unordered timestamped data elements that indicate statuses of a particular device related condition at different points in time; in a second data storage structure, storing and mapping between: device identifiers that identify the devices, condition identifiers that identify the device related conditions, and timestamps that identify when two temporally consecutive data elements of a given dataset indicate different statuses; receiving a new data element indicating a status of one particular device related conditions; storing the new data element in the first data storage structure; determining whether or not the status indicated by the new data element is different from the status indicated by a temporally preceding data element stored in first data storage structure; and updating the timestamps if the determination is positive.

    [0016] In one embodiment, the update comprises modifying the stored timestamps or adding new timestamps.

    [0017] In one embodiment, the status indicated by the new data elements corresponds to a device related condition for which no condition identifier is currently stored, the method further comprising adding a new condition identifier to the second data storage structure.

    [0018] In one embodiment, the method further comprises: in response to receiving a request for data in respect of a specified time period and at least one device related condition of at least one device, using the second data storage structure to identify status changes occurring within the specified time period for said at least one device related condition.

    [0019] Embodiments can be in the form of a hardware implementation, a software implementation, or a mixture of both. Thus any of the 'means', 'components' and 'parts' defined herein can be implemented as code modules in different combination in a computer.

    [0020] Embodiments encompass a computer programme provided as a computer programme product on a carrier medium which can include a storage medium and a transient medium or signal. The computer programme can be stored on a storage medium such as a solid state memory, an optical disc, a magnetic disc, or tape device. The computer programme can be provided on a transient medium or signal in the form of an optical signal, acoustic signal, magnetic signal, radio frequency signal, or electrical signal such as a TCP/IP signal carrying code over the Internet. The computer programme product can be involved in the implementation of an embodiment, either as a complete set of computer executable instructions capable of configuring, on its own, the performance of one or more of the embodiments, or as a set of instructions engaging pre-existing operable software components on a computer, to cause the configuration of the computer in the desired manner. The computer programme product may be directly executable, or may require local processing, such as decoding, decompression, or compilation, before it is in an executable condition.

    BRIEF DESCRIPTION OF THE DRAWINGS



    [0021] 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:

    Figures 1a to 1d schematically shows status data values for different device related conditions, according to an embodiment;

    Figure 2 schematically shows a database management system, according to an embodiment;

    Figure 3 schematically shows data storage structures, according to an embodiment;

    Figure 4 is a flow chart of a method of updating a data structure, according to an embodiment.


    DETAILED DESCRIPTION



    [0022] Printing devices may maintain a set of internal, digitally controlled "gauges", also known as "sensors". Such sensors detect, either directly or indirectly, events occurring at the devices. Such events are often software events, such as the triggering of signals (warning signals, fault signals and so on), generated by software applications or software modules of the device. The software events, in turn, reflect detected hardware events, such as scanning, printing and copying events. The occurrences (or not) of these events can be indicative of the operational statuses of the printing devices, and in particular may reflect the operational statuses of different device related conditions of the printing devices at different points in time.

    [0023] Printing devices may transmit data about the events to a data repository where it is stored for later data processing, thereby enabling analysis of the operational statuses of the printing devices as a function of time.

    [0024] Figure 1 schematically shows data corresponding to four different device related conditions of a printer device, for a reporting time period 101 covering fourteen days, each day being represented as an ordinal integer. It will be appreciated that, in practice, other reporting time periods are possible, that time intervals other than days may be used, and that timestamps may be used instead of ordinal integers. Data elements are denoted by lined, dotted, cross-hatched, solid shaded and solid white blocks. The data elements may be logically grouped based on the device related condition. In this particular example, group 102 corresponds to a "printer cover" condition, group 104 corresponds to a "paper quantity" condition, group 106 corresponds to a "toner quantity" condition, and group 108 corresponds to a "service call" condition. Thus, the lined blocks of group 102 represent data elements corresponding to the detection of a "printer cover open" status, the dotted blocks of group 104 represent data elements indicating the detection of a "paper level low" status, the cross-hatched blocks of group 106 represent data elements indicating the detection of a "toner level low" status, and the solid shaded blocks of group 108 represent data elements indicating the detection of a "service call" status. The solid white blocks of the groups are data elements indicating statuses different from the statuses noted above, for example a "printer cover closed" status, a "paper level acceptable" status, a "toner level acceptable" status, and a "no service call made" status, respectively. It will be appreciated that, in some cases, a status may not have a direct counterpart. As such, the solid white blocks for each group may simply indicate a "recovered" status, i.e. "paper jam recovered" or "service call recovered".

    [0025] While the status indicated by a data element may be determined based on a detection of the status at the device, the absence of such detection may be an indication that the status has not changed or that the status information was not available. Furthermore, there may be more than two statuses, for example "paper low", "paper out" and "paper full", in the case of the paper quantity condition.

    [0026] Although the regularity with which devices transmit their data may be controlled, predicting the nature and timing of events occurring at the printing devices is, in general, not possible. For example, while the lifecycle of a hardware component may be known, and although it may be assumed that failure rates are high at the end of the lifecycle (wear-out), predicting exactly when a failure may occur is difficult. Similarly, although it may be assumed that failure rates of software components drop over time (as more bugs are detected and removed), random failures cannot be predicted. This unpredictability means that, for any given point in time (or period of time), it is difficult to determine the operational status or statuses of the printing devices without reference to the stored data. In particular, determining whether or not a status change has occurred generally requires a search for a data element indicative of a first status, and a search for another data element indicative of a second status.

    [0027] Searching vast amounts of data collected over time is computationally expensive, and this problem increases multiple-fold when searches need to be performed in respect of multiple devices and/or multiple device related conditions. More specifically, extending the search operation to N printing devices each having M independent device related conditions could require at least NxM2 searches, as the data for each condition could require M2 searches. That is because a search operation does not search for a single data element, but rather pairs of data elements (contiguous in time), in order to determine whether the status of the Mth condition of the Nth device has changed from a first status to a second status. For example, M searches are performed to find the mth data element indicative of the current status for each of the M conditions, and then a further M searches are performed to find the data element indicative of the preceding status for each of the M conditions, i.e. the (m-1)th data element, in order to determine whether or not there has been a change. (In figure 1, M=4 and m=14.) This requires MxM searches, so that NxM2 is the minimum amount of searches that need to be performed given that two "passes" are required to determine changing conditions.

    [0028] However, the process may need to be repeated for other data element pairs, for example (m-1, m-2), (m-2, m-3), (m-3, m-4) and so on, until two data elements indicating a status change are found. Further still, for a given reporting time period, multiple status changes may occur, so that all of the data elements for that reporting time period need to be searched since status changes may occur randomly. Although the precise mathematical details are beyond the scope of this disclosure, other than to say that one or another form of quadratic dependency may be involved, it will be appreciated the aforementioned searching renders the method computationally unfeasible, especially when dealing with large numbers of printing devices and device related conditions, e.g. N = 100... 1000 and M > 30. Also, it will be appreciated that a search may require reading many thousands of data values not necessarily ordered with regard to time. For example, relational data structures assume the data has no structure or relationship other than those explicitly defined in the database. In other words, relational data structures have no "understanding" that the stored data is part of time-varying data collection.

    [0029] Figure 2 schematically shows a database management system 200, which, broadly speaking, functions to collect and store data obtained from printing devices 220 of an infrastructure 222, and to provide a means of accessing the stored data by the end-user 218 in a computationally efficient manner. 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.

    [0030] The database server 202 comprises network protocols 206, a query engine 208 and a reporting application 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 query engine 208 is responsible for query optimization and execution. Its components may comprise a parser, a query optimizer, and a query executor (not shown). In brief, the parser primarily functions to check query syntax. The query optimizer determines how to retrieve the data as quickly and efficiently as possible. It may, for example, choose from among several different ways to execute the query, and then creates a plan of execution that can be understood by the query executor. The query executor then interprets the execution plan and, based on the information it has received, makes requests of the other components of the system, such as the storage engine 210 of the data storage system 204, to retrieve the data. Once the data is retrieved, it is passed to the reporting application 209 for presentation to the end-user.

    [0031] The data storage system 204 comprises a storage engine 210, which is responsible for the efficient storage to and retrieval of data from the first and second data storage structures 212, 214. 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. Systems 202, 204 may be implemented as 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 query engine 208 and the storage engine 210.

    [0032] In order to generate a report, the end-user 218 formulates and submits a query to database server 202. In embodiments, the database management system 200 uses the Structured Query Language (SQL). In SQL, queries refer to a widely available set of SQL commands called clauses. Each clause (command) performs some sort of function against the database. In one embodiment, the query comprises a SQL SELECT clause. The query specifies some criteria by which the database server should select data from among all of the data contained in the database system, in one embodiment, the query may specify certain devices and a certain time period. The database server receives and executes the query. In executing the query, the database server forms a result set and sends the result set to the reporting application for 209 for presentation to the end-user. The result set is a selected subset of all of the data in the database system (This is described in more detail below). The result set consists only of the data that satisfied the criteria specified in the query.

    [0033] Figure 3 schematically shows first and second data storage structures 212, 214 according to embodiments.

    [0034] In one embodiment, first data storage structure 212 is a relational data structure. This is a logical data structure in which data is stored in the form of tables. In one embodiment, the first data storage structure 212 stores data values for device related conditions. In Figure 3, the data values are represented as "blocks", though it will of course be understood that this is just for the purposes of clarity. For example, the first data storage structure 212 may store the data in columns of a table named Printing Device ID, Status Data Value, and Time Stamp, respectively. Thus, in one embodiment, each row is a record comprising three fields, storing a device identifier, a data value of the status, and timestamp values. Each record includes one or more fields whose content is an index or key, to be used in uniquely identifying the record, i.e. its address. In Figure 3, the data values for the four device related conditions described with reference to Figure 1 (printer cover condition, paper quantity condition, toner quantity condition, and service call condition) are shown for two devices N1, N2.

    [0035] The data values can be collected repeatedly over time at arbitrary or fixed intervals. The frequency, or "granularity", of the time intervals can be seconds, minutes, hours, days, weeks, months, or years, for example every two hours. This may depend on how often the sensors at the devices monitor the device related conditions. Alternatively, or in addition, data values can be collected whenever a sensor detects the occurrence of an event. In all cases, the data value is associated with a point in time, for example by use of timestamps.

    [0036] In one embodiment, the second data storage structure 214 stores and maps between device identifiers, condition identifiers (shown as the aforementioned "blocks" for convenience), and timestamps. The timestamps that are stored corresponds to time points associated with status changes for the device related conditions. For example, in respect of the service call condition (shaded blocks) of the first device N1, the time data comprises time values "5" and "10", corresponding to the time points of a change from a first status (e.g. service call detected) to a second status (e.g. service call resolved), and then back to the first status, respectively. This renders the aforementioned searching obsolete, as the database management system 200 is able to directly determine the time points at which changes between states have occurred. In one embodiment, when database server 202 receives an SQL query from the end-user 218 via network 216 and network protocols 206, the SQL query is passed to the query engine 208, where it is parsed, optimized and executed. The statuses of the device related conditions are then determined by the storage engine 210 of the data storage system 204 using the second data storage structure 214 and in particular the time data to identify the time points at which events have occurred. The results passed back to the reporting application 209 where it is prepared for presentation to the end-user 218.

    [0037] In embodiments, the second data storage structure 214 is updated in response to new data being written to the first data storage structure 212. A flowchart of this process is shown in Figure 4, which begins at step S402 with the detection of a data write operation in the primary data storage structure. At step S404, a comparison of the status of the new data with the status of the previous data is performed. Then, one of the following can occur:
    1. 1) If the status indicated by the new data element is different from the status indicated by the previous data element, i.e. a problem has been resolved, then the timestamp corresponding to that status change is updated (a delta function) or a further timestamp may be stored (step S406). The process returns to step S402.
    2. 2) If the status indicated by the new data element does not have a status condition entry, then a new entry is created in the second data storage structure, preferably for each of the M statuses and N devices (step S406). The process returns to step S402.
    3. 3) If the status indicated by the new data element is the same as the status indicated by the previous data element, i.e. no status change has occurred, the process returns to step S402.


    [0038] In this way, significant reduction in search time can be achieved with only a relatively inexpensive data write operation. It also reduces the computational time of the whole process. In particular, the complexity of the search is reduced from NxM2 search operations on the data stored in the first data storage structure to NxM look-up operations in the second data storage structure. This is because there is now no need to search for data element pairs indicating that a status change has occurred.

    [0039] Although in foregoing embodiments the primary data storage structure in which the status data for each device related condition is stored in a column, in other embodiments the status data for each device related condition can be stored as a dedicated table, as a set of rows in a shared table, or as a single row in a shared table.

    [0040] Although in foregoing embodiments, the database system is implemented in the context of networked office devices such as printers, copiers, and facsimile devices (or devices providing a combination thereof), it will be appreciated that the database system is relevant to other kinds of devices. Broadly speaking, these kinds of devices provide, or rather posses, different kinds of information in a machine readable digital format, as well as digitally-aware devices, which represent the kinds of devices that possess information content that can be digitised. For example, these sorts of devices can contain, for example optical, mechanical and other data which can be measured, evaluated and converted into a machine-readable electronic format.

    [0041] Although in foregoing embodiments the timestamps are associated with time points (i.e. a specific instant in time, based on the precision of the data type), in other embodiments the timestamp may be associated with time intervals.

    [0042] Although in foregoing embodiments SQL queries are used to specify information to be retrieved, in other embodiments the queries can be formulated in other query languages.

    [0043] It will be understood that a storage location address may not describe a physical location; instead, it used as a means to request information from a controller. The controller converts the request from a logical to a physical address that is able to retrieve the data from an actual physical location on the storage device.

    [0044] In the foregoing detailed description of embodiments, references to "one embodiment", "an embodiment", "an example embodiment", etc., indicate that the embodiment described may include a particular feature, structure, or characteristic, but every embodiment may not necessarily include the particular feature, structure, or characteristic. Moreover, such phrases are not necessarily referring to the same embodiment. Further, when a particular feature, structure, or characteristic is described in connection with an embodiment, it is submitted that it is within the knowledge of one skilled in the art to effect such feature, structure, or characteristic in connection with other embodiments whether or not explicitly described.

    [0045] Although the present invention has been described hereinabove with reference to specific embodiments, it will be apparent to a skilled person in the art that modifications lie within the scope of the appended claims.


    Claims

    1. A database management system (200) for storing and retrieving data of networked office equipment, comprising:

    a first data storage structure (212) for receiving and storing one or more datasets for each of a plurality of devices (220), each dataset comprising unordered timestamped data elements that indicate statuses of a particular device related condition at different points in time, wherein in the first data storage structure, determining whether or not a status change has occurred requires a search for a data element indicative of a first status, and a search for another data element indicative of a second status;

    a second data storage structure (214) for storing and mapping between:

    device identifiers that identify the devices (220),

    condition identifiers that identify the device related conditions, and

    timestamps that identify when two temporally consecutive data elements of a given dataset indicate different statuses,

    wherein the data storage management system is operable to update the second data storage structure (214) whenever a new data element of one of the datasets indicating a status different from the status indicated by a temporally preceding data element of said one of the datasets is stored in the first data storage structure (220); and

    data access means (208) for, in response to receiving a request for data in respect of a specified time period and at least one device related condition of at least one device (220), using the second data storage structure (214) to identify when one or more status changes occurred within the specified time period for said at least one device related condition.


     
    2. A database management system (200) according to claim 1, wherein at least some of the timestamps are associated as pairs in the second data storage structure (214), the pairs comprising a first timestamp indicating a change from a first status to a second status and a second timestamp indicating a change from the second status to the first status.
     
    3. A database management system (200) according to claim 1 or claim 2, wherein the update comprises modifying the stored timestamps or adding new timestamps.
     
    4. A database management system (200) according to claim 1 or claim 2, wherein when the status indicated by the new data elements corresponds to a device related condition for which no condition identifier is currently stored, the database management system (200) operable to add a new condition identifier to the second data storage structure (214).
     
    5. A database management system (200) according to any one of the preceding claims, wherein the database management system (200) comprises a relational database management system in which the first data storage structure (220) comprises a relational data storage structure.
     
    6. A database management system (200) according to any one of the preceding claims, wherein the request comprises a structured query language, SQL, query.
     
    7. A database management system (200) according to any one of the preceding claims, wherein the database management system (200) is operable to receive new data elements from the plurality of devices (220) over a network (216) via a network interface.
     
    8. A method in a database management system (200) of storing and retrieving data of networked office equipment, the method comprising:

    in a first data storage structure (220), receiving and storing one or more datasets for each of a plurality of devices (220), each dataset comprising unordered timestamped data elements that indicate statuses of a particular device related condition at different points in time, wherein in the first data storage structure, determining whether or not a status change has occurred requires a search for a data element indicative of a first status, and a search for another data element indicative of a second status;

    in a second data storage structure (214), storing and mapping between: device identifiers that identify the devices (220), condition identifiers that identify the device related conditions, and timestamps that identify when two temporally consecutive data elements of a given dataset indicate different statuses;

    receiving a new data element indicating a status of one particular device related condition;

    storing the new data element in the first data storage structure (220);

    determining whether or not the status indicated by the new data element is different from the status indicated by a temporally preceding data element stored in first data storage structure (220) and updating the timestamps if the determination is positive; and

    in response to receiving a request for data in respect of a specified time period and at least one device related condition of at least one device (220), using the second data storage (214) structure to identify status changes occurring within the specified time period for said at least one device related condition.


     
    9. A method according to claim 8, wherein the update comprises modifying the stored timestamps or adding new timestamps.
     
    10. A method according to claim 8, wherein the status indicated by the new data elements corresponds to a device related condition for which no condition identifier is currently stored, the method further comprising adding a new condition identifier to the second data storage structure (214).
     
    11. A method according to any one of claims 8 to 10, further comprising: in response to receiving a request for data in respect of a specified time period and at least one device related condition of at least one device (220), using the second data storage (214) structure to identify status changes occurring within the specified time period for said at least one device related condition.
     
    12. A carrier medium carrying computer readable code for controlling a computer to carry out the method of claims 8 to 11.
     
    13. A carrier medium carrying computer readable code for configuring a computer as the database management system (200) according to any one of claims 1 to 7.
     


    Ansprüche

    1. Datenbankmanagementsystem (200) zum Speichern und Abrufen von Daten von vernetzter Bürotechnik, umfassend:

    eine erste Datenspeicherstruktur (212) zum Empfangen und Speichern von einem oder mehreren Datensätzen für jedes aus einer Vielzahl von Geräten (220), wobei jeder Datensatz ungeordnete zeitgestempelte Datenelemente umfasst, die Status eines bestimmten gerätebezogenen Zustands zu verschiedenen Zeitpunkten anzeigen, worin in der ersten Datenspeicherstruktur das Bestimmen, ob eine Statusänderung stattgefunden hat oder nicht, eine Suche nach einem Datenelement, das einen ersten Status anzeigt, und eine Suche nach einem anderen Datenelement, das einen zweiten Status anzeigt, erfordert;

    eine zweite Datenspeicherstruktur (214) zum Speichern und Zuordnen zwischen:

    Gerätekennungen, welche die Geräte (220) identifizieren,

    Zustandskennungen, welche die gerätebezogenen Zustände identifizieren, und

    Zeitstempeln, die identifizieren, wenn zwei zeitlich aufeinanderfolgende Datenelemente eines gegebenen Datensatzes unterschiedliche Status anzeigen,

    worin das Datenspeicherverwaltungssystem betriebsfähig ist, die zweite Datenspeicherstruktur (214) immer dann zu aktualisieren, wenn ein neues Datenelement aus einem der Datensätze, das einen Status anzeigt, der sich von dem durch ein zeitlich vorhergehendes Datenelement des einen der Datensätze angezeigten Status unterscheidet, in der ersten Datenspeicherstruktur (220) gespeichert wird; und

    Datenzugriffsmittel (208) zum als Reaktion auf das Empfangen einer Datenanforderung in Bezug auf einen angegebenen Zeitraum und mindestens einen gerätebezogenen Zustand mindestens eines Geräts (220) erfolgenden Verwenden der zweiten Datenspeicherstruktur (214), um zu identifizieren, wann eine oder mehrere Statusänderungen innerhalb des angegebenen Zeitraums für den mindestens einen gerätebezogenen Zustand aufgetreten sind.


     
    2. Datenbankmanagementsystem (200) nach Anspruch 1, worin mindestens einige der Zeitstempel als Paare in der zweiten Datenspeicherstruktur (214) zugeordnet sind, wobei die Paare einen ersten Zeitstempel, der einen Wechsel von einem ersten Zustand zu einem zweiten Zustand anzeigt, und einen zweiten Zeitstempel, der einen Wechsel vom zweiten Zustand zum ersten Zustand anzeigt, umfassen.
     
    3. Datenbankmanagementsystem (200) nach Anspruch 1 oder Anspruch 2, worin die Aktualisierung umfasst: Modifizieren der gespeicherten Zeitstempel oder Hinzufügen neuer Zeitstempel.
     
    4. Datenbankmanagementsystem (200) nach Anspruch 1 oder Anspruch 2, worin, wenn der durch die neuen Datenelemente angezeigte Status einem gerätebezogenen Zustand entspricht, für den derzeit keine Zustandskennung gespeichert ist, das Datenbankmanagementsystem (200) betriebsfähig ist, der zweiten Datenspeicherstruktur (214) eine neue Zustandskennung hinzuzufügen.
     
    5. Datenbankmanagementsystem (200) nach einem der vorhergehenden Ansprüche, worin das Datenbankmanagementsystem (200) ein relationales Datenbankmanagementsystem umfasst, in dem die erste Datenspeicherstruktur (220) eine relationale Datenspeicherstruktur umfasst.
     
    6. Datenbankmanagementsystem (200) nach einem der vorhergehenden Ansprüche, worin die Anforderung eine Abfrage in der strukturierten Abfragesprache, SQL, umfasst.
     
    7. Datenbankmanagementsystem (200) nach einem der vorhergehenden Ansprüche, worin das Datenbankmanagementsystem (200) betriebsfähig ist, neue Datenelemente von der Vielzahl von Geräten (220) über ein Netzwerk (216) über eine Netzwerkschnittstelle zu empfangen.
     
    8. Verfahren in einem Datenbankmanagementsystem (200) zum Speichern und Abrufen von Daten von vernetzter Bürotechnik, wobei das Verfahren umfasst:

    in einer ersten Datenspeicherstruktur (220) erfolgendes Empfangen und Speichern von einem oder mehreren Datensätzen für jedes aus einer Vielzahl von Geräten (220), wobei jeder Datensatz ungeordnete zeitgestempelte Datenelemente umfasst, die Status eines bestimmten gerätebezogenen Zustands zu verschiedenen Zeitpunkten anzeigen, worin in der ersten Datenspeicherstruktur das Bestimmen, ob eine Statusänderung stattgefunden hat oder nicht, eine Suche nach einem Datenelement, das einen ersten Status anzeigt, und eine Suche nach einem anderen Datenelement, das einen zweiten Status anzeigt, erfordert;

    in einer zweiten Datenspeicherstruktur (214) erfolgendes Speichern und Zuordnen zwischen: Gerätekennungen, welche die Geräte (220) identifizieren, Zustandskennungen, welche die gerätebezogenen Zustände identifizieren, und Zeitstempeln, die identifizieren, wenn zwei zeitlich aufeinanderfolgende Datenelemente eines gegebenen Datensatzes unterschiedliche Status anzeigen,

    Empfangen eines neuen Datenelements, das einen Status eines bestimmten gerätebezogenen Zustands anzeigt;

    Speichern des neuen Datenelements in der ersten Datenspeicherstruktur (220);

    Bestimmen, ob der durch das neue Datenelement angezeigte Status sich von dem durch ein zeitlich vorhergehendes Datenelement, das in der ersten Datenspeicherstruktur (220) gespeichert ist, angezeigten Status unterscheidet oder nicht, und Aktualisieren der Zeitstempel, wenn die Bestimmung positiv ist; und

    als Reaktion auf das Empfangen einer Datenanforderung in Bezug auf einen angegebenen Zeitraum und mindestens einen gerätebezogenen Zustand mindestens eines Geräts (220) erfolgendes Verwenden der zweiten Datenspeicherstruktur (214), um Statusänderungen zu identifizieren, die innerhalb des angegebenen Zeitraums für den mindestens einen gerätebezogenen Zustand auftreten.


     
    9. Verfahren nach Anspruch 8, worin die Aktualisierung umfasst: Modifizieren der gespeicherten Zeitstempel oder Hinzufügen neuer Zeitstempel.
     
    10. Verfahren nach Anspruch 8, worin der durch die neuen Datenelemente angezeigte Status einem gerätebezogenen Zustand entspricht, für den derzeit keine Zustandskennung gespeichert ist, wobei das Verfahren ferner umfasst: Hinzufügen einer neuen Zustandskennung zu der zweiten Datenspeicherstruktur (214).
     
    11. Verfahren nach einem der Ansprüche 8 bis 10, ferner umfassend: als Reaktion auf das Empfangen einer Datenanforderung in Bezug auf einen angegebenen Zeitraum und mindestens einen gerätebezogenen Zustand mindestens eines Geräts (220) erfolgendes Verwenden der zweiten Datenspeicherstruktur (214), um Statusänderungen zu identifizieren, die innerhalb des angegebenen Zeitraums für den mindestens einen gerätebezogenen Zustand auftreten.
     
    12. Trägermedium, tragend computerlesbaren Code zum Steuern eines Computers, um das Verfahren nach Anspruch 8 bis 11 auszuführen.
     
    13. Trägermedium, tragend computerlesbaren Code zum Konfigurieren eines Computers als das Datenbankverwaltungssystem (200) nach einem der Ansprüche 1 bis 7.
     


    Revendications

    1. Système de gestion de base de données (200) pour stocker et récupérer des données d'un équipement de bureau en réseau, comprenant :

    une première structure de stockage de données (212) pour recevoir et stocker un ou plusieurs jeux de données pour chacun d'une pluralité de dispositifs (220), chaque jeu de données comprenant des éléments de données estampillés temporellement non ordonnés qui indiquent des états d'une condition particulière rapportée à un dispositif à différents instants temporels, dans lequel, dans la première structure de stockage de données, la détermination de si oui ou non un changement d'état s'est produit nécessite une recherche d'un élément de données qui est indicatif d'un premier état et une recherche d'un autre élément de données qui est indicatif d'un second état ;

    une seconde structure de stockage de données (214) pour stocker et réaliser une cartographie entre :

    des identifiants de dispositif qui identifient les dispositifs (220) ;

    des identifiants de condition qui identifient les conditions rapportées aux dispositifs ; et

    des estampilles temporelles qui identifient lorsque deux éléments de données consécutifs temporellement d'un jeu de données donné indiquent des états différents ;

    dans lequel le système de gestion de base de données est opérationnel pour mettre à jour la seconde structure de stockage de données (214) chaque fois qu'un nouvel élément de données de l'un des jeux de données qui indique un état qui est différent de l'état qui est indiqué par un élément de données temporellement précédent dudit un des jeux de données est stocké dans la première structure de stockage de données (220) ; et

    un moyen d'accès aux données (208) pour, en réponse à la réception d'une requête demandant des données en relation avec une période temporelle spécifiée et au moins une condition rapportée à un dispositif d'au moins un dispositif (220), utiliser la seconde structure de stockage de données (214) pour identifier quand un ou plusieurs changements d'état se sont produits à l'intérieur de la période temporelle spécifiée pour ladite au moins une condition rapportée à un dispositif.


     
    2. Système de gestion de base de données (200) selon la revendication 1, dans lequel aux moins certaines des estampilles temporelles sont associées en tant que paires dans la seconde structure de stockage de données (214), les paires comprenant une première estampille temporelle qui indique un changement d'un premier état à un second état et une seconde estampille temporelle qui indique un changement du second état au premier état.
     
    3. Système de gestion de base de données (200) selon la revendication 1 ou la revendication 2, dans lequel la mise à jour comprend la modification des estampilles temporelles stockées ou l'ajout de nouvelles estampilles temporelles.
     
    4. Système de gestion de base de données (200) selon la revendication 1 ou la revendication 2, dans lequel, lorsque l'état qui est indiqué par les nouveaux éléments de données correspond à une condition rapportée à un dispositif pour laquelle aucun identifiant de condition n'est présentement stocké, le système de gestion de base de données (200) est opérationnel pour ajouter un nouvel identifiant de condition à la seconde structure de stockage de données (214).
     
    5. Système de gestion de base de données (200) selon l'une quelconque des revendications qui précèdent, dans lequel le système de gestion de base de données (200) comprend un système de gestion de base de données relationnelle dans lequel la première structure de stockage de données (220) comprend une structure de stockage de données relationnelle.
     
    6. Système de gestion de base de données (200) selon l'une quelconque des revendications qui précèdent, dans lequel la requête comprend une interrogation en langage d'interrogation structuré, SQL.
     
    7. Système de gestion de base de données (200) selon l'une quelconque des revendications qui précèdent, dans lequel le système de gestion de base de données (200) est opérationnel pour recevoir de nouveaux éléments de données en provenance de la pluralité de dispositifs (220) sur un réseau (216) via une interface de réseau.
     
    8. Procédé, dans un système de gestion de base de données (200), de stockage et de récupération de données d'un équipement de bureau en réseau, le procédé comprenant :

    dans une première structure de stockage de données (220), la réception et le stockage d'un ou de plusieurs jeux de données pour chacun d'une pluralité de dispositifs (220), chaque jeu de données comprenant des éléments de données estampillés temporellement non ordonnés qui indiquent des états d'une condition particulière rapportée à un dispositif à différents instants temporels, dans lequel, dans la première structure de stockage de données, la détermination de si oui ou non un changement d'état s'est produit nécessite une recherche d'un élément de données qui est indicatif d'un premier état et une recherche d'un autre élément de données qui est indicatif d'un second état ;

    dans une seconde structure de stockage de données (214), le stockage et la réalisation d'une cartographie entre : des identifiants de dispositif qui identifient les dispositifs (220), des identifiants de condition qui identifient les conditions rapportées aux dispositifs et des estampilles temporelles qui identifient lorsque deux éléments de données consécutifs temporellement d'un jeu de données donné indiquent des états différents ;

    la réception d'un nouvel élément de données qui indique un état d'une condition particulière rapportée à un dispositif ;

    le stockage du nouvel élément de données dans la première structure de stockage de données (220) ;

    la détermination de si oui ou non l'état qui est indiqué par le nouvel élément de données est différent de l'état qui est indiqué par un élément de données temporellement précédent qui est stocké dans la première structure de stockage de données (220) et la mise à jour des estampilles temporelles si la détermination est positive ; et

    en réponse à la réception d'une requête demandant des données en relation avec une période temporelle spécifiée et au moins une condition rapportée à un dispositif d'au moins un dispositif (220), l'utilisation de la seconde structure de stockage de données (214) pour identifier des changements d'état qui se sont produits à l'intérieur de la période temporelle spécifiée pour ladite au moins une condition rapportée à un dispositif.


     
    9. Procédé selon la revendication 8, dans lequel la mise à jour comprend la modification des estampilles temporelles stockées ou l'ajout de nouvelles estampilles temporelles.
     
    10. Procédé selon la revendication 8, dans lequel l'état qui est indiqué par les nouveaux éléments de données correspond à une condition rapportée à un dispositif pour laquelle aucun identifiant de condition n'est présentement stocké, le procédé comprenant en outre l'ajout d'un nouvel identifiant de condition à la seconde structure de stockage de données (214).
     
    11. Procédé selon l'une quelconque des revendications 8 à 10, comprenant en outre : en réponse à la réception d'une requête demandant des données en relation avec une période temporelle spécifiée et au moins une condition rapportée à un dispositif d'au moins un dispositif (220), l'utilisation de la seconde structure de stockage de données (214) pour identifier des changements d'état qui se sont produits à l'intérieur de la période temporelle spécifiée pour ladite au moins une condition rapportée à un dispositif.
     
    12. Support informatique porteur d'un code pouvant être lu par un ordinateur pour commander un ordinateur pour qu'il mette en oeuvre le procédé selon les revendications 8 à 11.
     
    13. Support informatique porteur d'un code pouvant être lu par un ordinateur pour configurer un ordinateur en tant que le système de gestion de base de données (200) selon l'une quelconque des revendications 1 à 7.
     




    Drawing

















    Cited references

    REFERENCES CITED IN THE DESCRIPTION



    This list of references cited by the applicant is for the reader's convenience only. It does not form part of the European patent document. Even though great care has been taken in compiling the references, errors or omissions cannot be excluded and the EPO disclaims all liability in this regard.

    Patent documents cited in the description