Hierarchical data storage systems

Abstract: A peripheral data storage hierarchy includes three storage levels. The top storage level is a fast accessing direct access storage device(s), such as magnetic disk drives. The intermediate level is an automatic warehouse type library, storing a large plurality of optical disks, which are automatically transferred between storage cells of the library and optical disk drives operatively connected to the host processor. The bottom level of the storage hierarchy includes one or more stand-alone optical disk drives and a shelf unit. Personnel manually carry the the optical disks between the stand-alone drives and the shelf unit upon mount and demount commands received from a host processor. The intermediate library level uses the same type of optical disk as used in the bottom level of the data storage hierarchy. An IO station in each of the automatic libraries enable manual access to the optical disk for transferring same between the intermediate and bottom levels. Preferably, the transfer is only from the intermediate level to the bottom level. Access to named storage objects in disks stored in the bottom level are through the stand-alone drives. A host processor has an independent access path to each level of the data storage hierarchy. A directory and other data structures indicate the number of copies made of each named data object and the location of such copies, such that the host processor 10 can independently access a copy from any level of the data storage hierarchy.

Description: The present invention relates to peripheral data storage hierarchy systems attachable to data processing systems and primarily to those that are capable of storing extremely large quantities of named data objects. Ever since the advent of digital computers with substantial calculation capabilities, data has been stored externally to the host processor. Even with relay computers of the 1940's, both the program and data storage are separate peripheral data storage systems, each of which provided unit record cards readable by card readers or punched paper tape, which are inputs to the relay computers. With the advent of digital electronic circuits, the demand for greater capability of peripheral data storage became intensified. Magnetic tape and magnetic disks are used as peripheral data storage, wherein data stored on the tapes or disks are read into an electronic memory of the host processor. The addressing of all of the above described peripheral data storage used a single address space for addressing the readers or recorders associated with the peripheral record media. As demand for greater storage capacity continued to increase along with increased compute capabilities, the concept of a data storage hierarchy evolved. In larger data processing installations, the plurality of magnetic tape and magnetic disk recorders and reproducers provides a broad single address base peripheral storage for the data processing installation. Often, along side such peripheral equipment is a true peripheral data storage hierarchy. An example of such a data storage hierarchy is the IBM 3850 Mass Storage System. It is to be understood that other data storage hierarchies also have been employed, but which it is believed did not follow the same addressing and access principles described herein. The IBM 3850 is schematically illustrated in the IBM TECHNICAL DISCLOSURE BULLETIN, article by Blinckenstaff et al., entitled" Multi-level Stored Directory Integrity", August 1977, pp. 939-940. In that peripheral data storage hierarchy a lower level of the hierarchy is a magnetic-tape automatic warehouse-type library. The upper level of the peripheral data storage hierarchy consists of a plurality of direct access storage devices (DASD) which is another name for magnetic disk recorders. Addressing in the IBM 3850 is in a single address field, using virtual addressing techniques. Access to all of the data stored in the hierarchy is through the upper level DASD units. Magnetic tape and magnetic disk peripheral storage subsystems often employ removable media. Such media when removed from the recorder/reproducers are often stored on shelves. The removable media are manually transferred between the shelves and the recorder/reproducers. A mount or demount message is supplied by the using host processor to a console adjacent the recorder/reproducers and convenient to the shelf storage. Operators read the host processor messages and manually carry the removable media from the storage shelves and mount same on either the tape drives or disk drives ( drive is another name for recorder/ reproducer). The host processor access to all of the data stored on the removable media is only through tape or disk drives. The addressing is based upon the drive address independent of the access paths which may extend between the host processor and the various drives. Each of the tape reels or disk packs would be assigned a volume serial number, often referred to as VOLSER. In general, the recorded tapes are read in their entirety, in one read operation. Recording on the tape is also effected in a single set of recording operations, i.e. there is no "update in place" on magnetic tape. With the advent of disk drives, having non-removable media and an increasing requirement for fast access to peripherally stored data, a random access semiconductor cache is disposed intermediate the disk drive and the host processor. In some of these cached disk drive subsystems, the only access to the data is through the cache. In other of these cached disk drive subsystems, such as shown by Hartung et al. in US-A-4,500,954, the cache could be bypassed for directly accessing the disk drive for recording or reading data. The addressing field of such subsystems is based upon the address space used for accessing data areas of the disk drive. Any data stored in the semiconductor cache is accessed by using the address of the disk drive by checking the cache to see whether or not the data area is allocated in the cache for such disk drive address. Then, if the cache had an allocated area for such address, the host processor accesses the cache allocated area. The disk drives could also be directly accessed whenever the semiconductor cache is out of operation. In some instances, upon a situation wherein the cache did not have allocated space, the cache is bypassed and all of the data would be read from the disk drive directly. Such an arrangement obviated the need for moving the data from the disk drive to the cache, storing it in the cache and then signalling the host processor to fetch the data or write the data to the cache. Accordingly, copies of the data stored in such cached disk drive subsystems are not always acquired from the level having the fastest access. The Hartung et. al. patent US-A-4,500,954 teaches that recording data into a cached disk drive subsystem may be benefited by not using the cache, i.e. using the cache would degrade performance. Both the cache and disk recorder show host processor access paths; neither the cache nor the disk recorder-have separate and independent access paths to the host recorder. Svoboda, L.: "File Servers for Network-based Distributed Systems" Computing Surveys, Vol. 16 No. 4, December 1984, pages 353-368 discloses a network-based distributed system having a file server. Multiple versions of a file are supported, together with recoverable files. The system also has a directory for providing naming and location of files. It does not provide for independent access paths to multiple copies of the same file stored on levels of storage having different access characteristics. US-A-4,084,231 discloses a peripheral data storage hierarchy having plural levels of storage, including a fastest access top level and a slowest access bottom level. Copies are generated within the system for backup purposes and located in one or more of the levels. Such copies are migrated between the levels and a directory is maintained of the location of the copies. It also does not provide for independent access paths to multiple copies of the same file stored on levels of storage having different access characteristics. In spite of all of the above described peripheral data storage systems, there is still a need for a peripheral data storage system hierarchy that is capable of efficiently storing and retrieving larger amounts of data than previously stored. The present invention provides a peripheral data storage hierarchy for storing named data objects comprising plural levels of storage ranging from a fastest access top level through an intermediate level to a slowest access bottom level, and a system manager controlling operations within the system, such operations including generating copies of named data objects within the system for backup purposes and locating the same in one or more levels thereof; migrating copies of named data objects between the levels thereof; maintaining a directory of the current location of each copy of each named data object within the system; characterised in that each level has an access path independent of the access paths to the other levels, and that the operations further include providing accessibility to data objects within the system by name by reference to the directory and selection of that copy of a sought named data object indicated therein to be in the fastest access level, via the independent access path to that level. In an embodiment of the invention disclosed hereinafter, a peripheral data storage hierarchy has a plurality of data storage levels, each level having a plurality of data storing elements. Each of the storage levels has a different access characteristic, varying from a shortest access at the top of the hierarchy to the longest access at the bottom of the hierarchy. A single directory identifies the location of named data objects and copies thereof which are stored at diverse levels of the peripheral data storage hierarchy. A data object access means, coupled to the directory and to all of the levels through plural independent paths, identifying the level having a copy of the named data object which has the shortest access time. This copy of the named data object is retrieved. Named data objects stored in lower levels of the peripheral data storage hierarchy are accessed directly from such lower levels via one of the independent paths without processing the named data objects through any of the intermediate or higher levels of the data storage hierarchy. The present invention will be described further by way of example with reference to this embodiment thereof, as illustrated in the accompanying drawings, in which: Fig. 1 is a simplified diagram of a peripheral data storage system connected to a host processor; and Fig. 2 is a simplified diagram of accessing data storage areas at various levels of the peripheral data storage hierarchy shown in Fig. 1. A host processor 10 includes, as part of its system manager, an object management program resident in storage area 11 which is a portion of its main memory. Input named image data objects are sequentially received from Image input systems IIS 12. Each data object is an image of a document such as a negotiable instrument, letter, contract, etc. The object management program initially stores the received named data objects in a peripheral disk drive object store 13 (store or drive 13 may in fact be a large plurality of disk drives), which constitutes an upper or first level of the peripheral data storage hierarchy. Double-headed arrow 14 signifies that host processor 10 not only stores the received named data objects in object store 13, but also retrieves same as a work in process data object. Each time a named data object is received, a retentively stored object directory 15 is updated, the directory 15 is stored in peripheral disk drive 16. Object directory 15 includes the name of the received data object, the number of copies stored on all the levels of the peripheral data storage hierarchy, and which levels of the data storage hierarchy have a copy for each and every named data object received from IIS 12. Disk drives 13 and 16 are preferably of the magnetic recording type. The remainder of the peripheral data storage hierarchy stores the received named data objects onto two sided optical write once read many (WORM) disks. Each side of an optical disk stores a volume of data, separately identified by a volume serial number VOLSER. For purposes of brevity, VOLSER A identifies the volume on side 0 of the disk, while VOLSER B identifies the volume on side 1 of the disk. Each of the optical disks constitutes a removable record medium. The bottom storage level of the peripheral data storage hierarchy consists of a storage shelf 20, capable of storing a large number of the optical disks. Stand-alone optical disk recorder or drive 21 is a portion of the third or bottom level of the illustrated peripheral data storage hierarchy. Optical disks in a first embodiment of the invention are manually transferred from shelf unit 20 to the optical drive 21 as indicated by dashed line double-headed arrow 22. Optical drive 21 (there may be in fact several of such stand-alone optical drives) is directly operatively connected to host processor 10 as indicated by double-headed arrow 23. The object management program of the portion 11 of host processor 10 identifies certain ones of the received named data objects for periodic backup after the received named data objects are stored in object store 13. The backup copy of such objects is recorded onto an optical disk (not shown) in recorder 21. Such backup copies are logically outside the data storage hierarchy. Each time an optical disk in recorder 21 is filled to capacity, host processor 10 issues a demount message to the personnel working in the area of shelf 20 to demount the optical disk and to store it at a predetermined slot location in shelf unit 20. Host processor 10 logically divides shelf unit 20 into a backup portion 25 which stores the optical disks recorded on the optical recorder 21 and a primary portion 26 which stores optical disks recorded in an intermediate level of the data storage hierarchy to be next described. It can be expected that backup portion 25 will be remotely located from primary portion 26 for providing enhanced disaster recovery. An intermediate level of the peripheral data storage hierarchy consists of one or more warehouse type optical disk or media libraries 28 and 29. Each of the libraries includes an open sided wall having a large plurality of storage slots or cells for receiving an optical disk for physical storage. In the open sided wall are up to four optical disk recorders (drives) denominated D0, D1, D2, and D3 in library 28; it being understood that library 29 has an identical set of optical disk drives. Each of the optical disk drives D0-D3 is operatively coupled to host processor 10 for exchanging data object copies with object management area 11. The plurality of double-headed arrows 30 signify the individual operative coupling between object management 11 and the eight illustrated optical disk drives in libraries 28 and 29. Additionally, each of the libraries 28 and 29 has an IO station 31 which receives manually carried optical disks for insertion into the automatic warehouse type library and for ejecting optical disks to be manually picked up from the optical disk libraries as indicated by dashed-line double-headed arrow 32. Arrow 32 signifies the manual transport of optical disks between the IO stations 31 of the two libraries 28 and 29 and the primary portion 26 of the storage shelf 20. Each of the libraries includes a travelling elevator which traverses the entire extent of the open face wall for accessing all of the storage compartments or cells, all of the optical disk drives and the IO station 31 for automatically retrieving and storing optical disks. Such a library can be constructed as shown by Cary et al. in US-A-4,608,679. Other warehouse type library configuration can be employed as well. Each of the libraries has a control section C 33 which manages the movements of the travelling elevator in accessing the various storage cells, (not shown), the drives D0-D3 and the IO stations 31. Section C 33 is operatively coupled to host processor 10 library manager portion LM 34 as indicated by double-headed arrow 35. LM 34 operates the library in an efficient manner which is beyond the scope of the present description, it being sufficient to say that the libraries 28 and 29 automatically respond to commands from host processor 10 for inserting and removing optical disk media to and from the various drives for facilitating data transfers between object management 11 and the respective optical disk drives. In an early embodiment of the invention, during a predetermined time of each daily cycle, such as late at night, a copy of all of the named data objects received from IIS 12, during the preceding period and since the last recording, are recorded onto optical disk media in the libraries 28 and 29 as primary copies of the named data objects. At a similar time during the day, the backup copies are separately recorded on recorder 21. The sequence of recording onto the library 28 and 29 drives can be entirely different from the backup sequence of recording data objects into optical disks contained in recorder 21. Not all received named data objects need be recorded in a backup mode. Object management 11 includes a rule for determining which named data objects should be backed up and which named data objects should only have a primary copy made for storage in libraries 28 or 29. Of course, if desired, all received named data objects can have two copies, one a primary copy and the second a backup copy, in addition to the copy residing in the object store 13. Alternately, there may be a class of named data objects with access requirements requiring named data objects in such class will remain in object store 13. Such named objects could have backup copies only; i.e. no primary copies are made in library 28 nor 29. After the primary copy of the received named data object is moved from a library 28, 29-into shelf storage 20, access to that disk is preferably through the stand-alone optical disk drive 21, which provides an independent access to the bottom level of the data-storage hierarchy. As usual, the first level of disk drive 13 has its accesses independent of the other two levels in the hierarchy. In accordance with the invention, the intermediate level, libraries 28, 29, have their respective independent access paths as does the bottom level 20, 21. Except for backup copies, volume table 46 stored in magnetic disk drive 16, is updated each time a new copy is made or deleted and each time the optical disk media (note media is plural of medium) are moved from one location to another, as will become apparent. After a predetermined time, such as one day, one week, one month, or three months, a copy of the received named data object is erased from the top storage level or disk drive 13. This action leaves up to two copies, a primary copy stored in a library 28, 29, and a back up copy stored in bottom level 20. After a further time, the primary copy which is recorded on an optical disk of library 28, 29, is transferred through IO station 31 to the primary portion 26 of the bottom level of the peripheral data storage hierarchy. The sequence of copying named data objects from drive 13 to a library 28, 29 is determined by rules established in object management 11. As an example, negotiable instruments can be clustered onto individual optical disks as letters, contracts etc. are clustered onto other optical disks designated to receive such categories or classes of named data objects. The retention period for primary copies of clustered objects in store 13 varies with each class; e.g. copies of negotiable instruments are removed first, followed by letters, then contracts. Movement of media from an intermediate level library 28 or 29 to bottom level shelf unit 20 varies in a similar manner. As such, the sequences of backup copies and primary copies in the respective optical media are unrelated sequences. While such transferred optical disks could be reinserted into a library 28 or 29, according to the invention it is more efficient to have them manually loaded into optical disk recorder 21 for subsequent named data object retrieval. The reason for such efficiency is that the references by host processor 10 to the older or aged named data objects can be expected to be few with the accesses being spaced apart over substantial periods of time. Further, such access could be for only one or two named data objects on a optical disk which stores a relatively large number of such named data objects. Accordingly, to use the mechanisms of the libraries 28, 29, for accessing but a single named data object is less efficient than manually loading a stand-alone optical disk recorder. The accessing of a recorded named data object is described with particular reference to Figure 2. Host processor 10 first accesses the object catalogue 15 as stored in disk drive 16. In addition to object catalogue 15, which indexes the data stored within the hierarchy, configuration table (not shown but well known) describes the physical configuration of the devices of the hierarchy. Volume table 46 is a part of such a configuration table. Volume table 46 is stored indications of the physical locations of the volumes by VOLSER irrespective of whether stored in a library 28 or 29, or in shelf 20 portions 25 or 26. The object catalogue 15 indicates and identifies where the named data objects are stored in the peripheral data storage hierarchy. When the object catalogue 15 indicates that a copy still resides in the top or first level in disk drive 13, host processor 10 is able to retrieve, as indicated by arrow 41, the named data object directly from disk drive 13. If on the other hand host processor 10 finds that object catalogue 15 signifies that a copy of the named data object is no longer in the top level 13 of the peripheral data storage hierarchy, it accesses volume table 46 to determine the physical location of the containing volume. Depending upon the location of the containing volume, host processor 10 goes to either the intermediate level consisting of libraries 28, 29, or to the bottom level including disk drive 21 and shelf storage unit 20. Arrow 42 indicates that the optical disk storing the requested named data object still has a copy in a library 28 or 29, host processor 10 then actuates LM 34 to fetch the optical disk and insert it into one of the drives D0-D3 of the respective library. Host processor 10 then accesses the named data object from such library drive. On the other hand, volume table 46 may indicate to host processor 10 that the volume containing the primary copy of the named data object is in the bottom level of the data storage hierarchy. This action is indicated by arrow 43 causing host processor 10 to issue a mount message to personnel manning the bottom level of the data storage hierarchy instructing them to move an optical disk stored in the predetermined or addressed storage location in the primary location 26 to optical disk recorder 21. Once mounted, object management 11 accesses the requested optical disk by addressing optical disk drive 21. Thereafter, the reading operation follows usual disk reading procedures. The object directory 15 includes a large plurality of entries. Each entry includes the name of a received named data object, a field indicating whether or not a copy is in the top level 13 and a VOLSER of the volume on the optical disk storing the named data object as a primary copy and a VOLSER of the optical disk storing a backup copy of the named data object. Disk drive 16 further has a volume table 46 retentively stored therein. The volume table 46 includes indexed entry fields in each entry identifying the VOLSER on the A and B sides of the optical disk. The volume table also includes a location byte indicating whether the primary copy still resides in an intermediate level library 28, 29 or is only stored in the bottom or lower level primary portion 26. If the optical disk is still in a library 28, 29, then the cell or slot number, drive, or other location within the library wherein the optical disk currently resides, is indicated in the entry for the volume. This entry also indicates the name of the library 28 or 29 in which the optical disk resides. Internally to the individual libraries, the location within the library of the optical disk having VOLSER A and B can be an address of either the storage cell or slot, whether or not the optical disk is being held by a travelling elevator, whether or not the optical disk is currently residing in a drive of the library or is in an IO station 31. If a location byte of the volume table 46 entry indicates the primary copy is in primary section 26 of the bottom level of the hierarchy, then the actual shelf address of the slot storing the optical disk is indicated. In any event, host processor 10 can automatically cause the optical disk to be moved to one of the optical drives D0-D3 in the intermediate level or send a message to personnel at the shelf unit for mounting the primary optical disk copy onto optical disk recorder 21. Host processor 10 always fetches the named data object from the level having the fastest access response via an independent access path to the level storing a copy of the requested named data object.

Claims: A peripheral data storage hierarchy for storing named data objects comprising: plural levels of storage (13,28,29,20), ranging from a fastest access top level (13) through an intermediate level (28,29) to a slowest access bottom level (21); and a systems manager (11) controlling operations within the system, such operations including: generating copies of named data objects within the system for backup purposes and locating the same in one or more levels (20,28,29) thereof; migrating copies of named data objects between the levels (28,29,20) thereof; maintaining a directory (15) of the current location of each copy of each named data object within the system; characterised in that: each level (13,28,29,20) has an access path (14,23,30) independent of the access paths to the other levels; and that the operations further include providing accessibility to data objects within the system by name by reference to the directory (15) and selection of that copy of a sought named data object indicated therein to be in the fastest access level, via the independent access path (14,23,30) to that level. A system as claimed in claim 1, including input means supplying named data objects to be stored in a sequence of the named data objects; data copying means coupled to the input means for making a plurality of copies of any of the named data objects to be stored in the data storage hierarchy including a copy in more than one level of the plurality of levels, storage in the data hierarchy allowing random access to the data objects; directory means (15) having an entry for each of the named data objects stored in the data-storage hierarchy which includes the name of the data object, the number of copies and the storage locations of each copy in the levels (13, 28, 29, 20); means indicating that one of the named data objects stored in the data storage hierarchy is to be retrieved; and access means (11, 14, 22, 23, 30) including the separate independent access paths (14, 22, 23, 30) to each of the levels (13, 28, 29, 20) and being coupled to the indicating means, to the directory means (15) and to the data copying means (11) or effecting the independent accessing of the levels for storing the plural copies respectively in the levels indicated in the directory means and for accessing that one of the plural copies of the indicated named data object from that one of the levels, which currently store copies thereof, having fastest access characteristic. A system as claimed in claim 2, including primary means (11) in the access means coupled to the data copying means and to the top (13) and intermediate levels (28, 29) of the data storage hierarchy for receiving second and third copies of the named data objects for storing same in the top and intermediate levels at storage locations indicated in the directory means (15) and in a sequence not-identical to the sequence in which the named data objects are received by the data copying means from the input means (12); backup means (11) in the access means and coupled to the data copying means and to one of the levels (28, 29, 21) for receiving one of the copies of predetermined ones of the named data objects as a backup copy and storing the received backup copy directly into the one of the levels (28, 29, 21) in a storage location indicated by the directory means (15); sequencing means (11) in the data copying means for supplying the second copy to the first level (13) substantially at the time when the input means (12) has supplied the respective named data object to the data means, for supplying the first and third copies respectively to the second and intermediate levels at a first predetermined time after the second copy is supplied to the top level (13), a second predetermined time after the first predetermined time moving the third copy from the intermediate level to the one of the levels such that the one of the levels has up to two copies of each named data object; and the access means (11) accessing the third copy of any named data object when stored in the bottom level (20) via (32, 31) either the intermediate level (28, 29) or directly (23, 22) from the third level (20) and accessing (32, 31) the backup copy of any predetermined named data object directly from the bottom level (20). A system as claimed in claim 3, wherein the intermediate (28, 29) and bottom (20) levels of the hierarchy have a multiplicity of movable data storage media, each of the data storage media including a VOLSER identification, the intermediate level (28, 29) has storage cells (26) for respectively storing the media and a plurality of removable media drives (00-03) for receiving and recording and reading the named data objects on and from the media, respectively, and automatic means for moving (32) the media between the storage cells and the drives, the automatic means being coupled (33) to the access means (11) for responding to a need to record or read, to move the media between the storage cells and the drives; the bottom level (20) includes a backup removable media drive (21) operatively coupled to the backup means for receiving a copy of the predetermined named data objects as the backup copies and recording same onto predetermined ones (25) of the record media in the sequence received from the data copying means, and a storage shelf (20) having addressable media storage locations; the access means includes means indicating a desired movement of the predetermined ones of the media between the storage shelf (20) and the backup drive (21); and further means in the primary means for indicating a desired movement of record media recorded in the intermediate level (28, 29) between the storage shelf (20) and the intermediate level (28, 29). A system as claimed in claim 4, wherein each of the record media has its unique address space and the directory means (15) indicates the locations of all of the copies of the named data objects as an address of the top level (13), and as a VOLSER for each copy in one of the record media in each appropriate one of the intermediate (28, 29) and bottom level (20). A method of operating a system as claimed in claim 1, including the steps of: sequentially receiving from an outside source (12) multiplicity of named data objects to be stored in the data peripheral storage hierarchy; establishing rules for making one or more copies of respective ones of the received named data objects; initially storing the received copy of each named data objects in the top level (13); periodically creating backup copies of certain ones of the received named data objects and storing the backup copies in the bottom level (20) of the data storage hierarchy; from time to time, erasing the copy of given named data objects from the top level (13); and characterised in that the method further comprises the steps of: periodically generating primary copies of the received named data objects and storing same in an intermediate level (28, 29); periodically, but less often than is the case with the generation and storing of the primary copies, moving the primary copies from the intermediate level (28, 29) in which they were initially stored to the bottom level (20); keeping a directory identification of each named data object, the number of copies made of each the named data object and the location in the data storage hierarchy of each of the copies, including keeping an address of the copy location in an address field unique to each of the levels, respectively; and accessing the named data object by fetching the copy thereof from the level having a shorter access time than any other level storing a copy of named object directly without moving any accessed copy through any level having a shorter access time than the level being accessed. A method as claimed in claim 6, further including the steps of: supplying a plurality of transportable record media for use in the intermediate (28, 29) and bottom (20) levels such that the record media are usable in any of such levels; for each of the record media, creating a unique VOLSER identification and a separate address space for use within each of the record media; in one of the intermediate levels (28, 29), providing automatic means (32) for moving the record media between passive storage cells (26) and automatic recorder means usable with any of the record media; establishing an address space for the record media in that intermediate level (28, 29); providing, in the bottom level (20), both media storage means and recorder means (21) usable with any of the record media; moving the record media between the automatic means in the intermediate level (28, 29) and the media storage means (20) in the bottom level; recording the primary copies in a first sequence of named data objects and recording the backup copies of the named data objects in a second sequence of data objects unrelated to the first sequence; and accessing the primary copies in the another level using a first predetermined address space and accessing the backup copies in the bottom level using a second predetermined address space.

Inventors: HARDING WARREN BRUCE, TENNISON ROBERT DOUGLAS, VOMASKA WILLIAM OTTO, HARDING, WARREN BRUCE, TENNISON, ROBERT DOUGLAS, VOMASKA, WILLIAM OTTO
Applicants: IBM, INTERNATIONAL BUSINESS MACHINES CORPORATION
Application year: 1989
Main classification: G06F12
IPC codes: G06F3, G06F17, G06F12