OBJECT BASED COMPUTER SYSTEM

Abstract: An object based computer system has objects and object parts which are either (a) semantic, being persistent in relating to stored data or (b) presentation, being transient. Multiple presentation objects, or viewers, can be linked to a particular semantic object and an intelligible user's model of the system results. Representation objects provide particular forms of presentation of data so that alternative and multiple representations of the data of a semantic object are possible.

Description: OBJECT BASED COMPUTER SYSTEM The invention relates to an object based computer system. There follows an overview of an object based system in a windows environment which will help define terms used herein. An "object" is a combination of data and method code which is normally stored on disc. Objects intercommunicate by sending "messages", ie, data, instructions, requests, etc, to one another, normally via object management software ("object manager") . If object management software wishes to pass a message to an object, a process will be initiated which reads the data file as part of its initialisation. If an object is fully defined by its disc file and has no process associated with it, it is said to be "inactive". If an object has a process associated with it and is defined by the state of that process then it is said to be "active". Generally, an object can be regarded as a discrete entity, eg, it can individually be moved, copied, destroyed, etc. In this context, in the embodiment to be described, an object has a unique identifier and it can be sent a message. Objects can be "linked" to other objects so that information is passed back and forth by messages in a predetermined manner dependent on the nature of the link. The term "link" can have several different meanings in relation to an object based system. Furthermore, windows may also be objects and have inter object links with other windows. More will be said about "containership links", other interobject links and "window links" in the specific description with reference to the drawings. For the purposes of defining the present invention, the consequence of linking two objects is that one is notified of changes made to the other during object processing. This "updating" link may be bidirectional. In this specification, when there is a risk of confusion between window objects and other objects the latter will be termed "semantic objects". Generally, however, the term "object" means "semantic object". An object can be thought of as comprising a semantic part (which defines the state of the object) and a presentation part (for presenting to a user the state of the object) . Indeed, conceptually one can think of there being separate semantic objects and presentation objects. In addition, when using a windows user interface, there are windows for viewing objects and facilitating multi-tasking, in this specification, the presentation part or presentation object is something which is utilised by a window and forms part of the window for the time in which the window is viewing the object in question and generally a distinction between the window and the presentation part or object will not be made. It is known to provide multiple concurrent presentations of a semantic object. Semantic objects have data stored in a particular storage domain. A storage domain may be regarded as closely equivalent to a storage medium such as a hard disc or floppy disc in the sense that all objects in a given storage domain are on-line together or are off-line together. Consequently, a single machine may support a plurality of storage domains. It is convenient to use a graphical user interface such as a windows interface. In such a system it is possible to open one or more windows on each object. The windows manage the display and input/output (lexical) interaction in the system. The use of multiple windows in conjunction with an object enables employment of the techniques of sharing (multiple windows to a common object) and distributed applications (window on one machine and object on another) . The present invention could be applied in a single computer having one or more storage domains but is primarily concerned with an object based system having a plurality of user stations. Such a system may be provided by a single central processing device having • a plurality of user stations coupled to it, or it may be provided by a distributed processing network consisting of a number of independent processing units each having a respective station associated with it. A difficulty in existing systems is that, although with careful record-locking procedures, different users can, in concurrent sessions, alter data in the same data file (or object) each alteration and display is effectively carried out independently. The users do not have immediate cross references and updating to changes made by other users to the data file at the same time. The present invention seeks to provide an improvement. According to the invention there is provided an object based computer system having an object manager for activating objects, the objects being capable of being linked and including at least one representation object which, in use, is interpretive of the data of an object to which it is linked and which takes some or all of its state from that object and means for presenting the representation object to a user. The present invention has the advantage of enabling the provision of a graphical representation, such as a pie chart or bar chart, which is driven by the data of an object to which it is linked. Preferably, the system comprises means for concurrently linking a plurality of representation objects to the same object for interpreting the data of that object. In this way, concurrent users are made aware of changes made by each other to an object. Also, sometimes it is desirable to present data from an object in different ways. For example, a visible data object (VDO) (to be more fully described) may have several dimensions, or vectors and there may be a requirement to show data therein as a bar chart, or a pie chart. Two or more different representation objects may be linked to the same semantic object to give different concurrent representations (say a bar chart and a pie chart) of the same data. Preferably, the system comprises means for concurrently linking a plurality of representation objects to different parts of the same object for interpreting different parts of the data of that object. In the embodiment to be described, the system comprises means for providing a plurality of concurrent presentations of a representation object. Two or more windows may be opened on a representation object. it will be seen that the representation/semantic split extends the principle of the semantic/presentation split to higher levels in the system. Also in the embodiment to be described, the system comprises means for changing the data of an object by changing a representation object linked to that object. Thus it is by changing the representation object that a user can alter the data in the semantic object to which the bar chart, table or whatever is linked. It is envisaged that the semantic object may itself be linked to a further semantic object and take some or all of its state from that further object. In this way the number of levels between an underlying semantic object holding data and the representation of the data to a user can be chosen according to requirements. The system to be described has a windows user interface in which Task Windows can be switched by a user to be linked to chosen semantic objects in turn so as to provide a user model of the system in which the Task Windows are navigable viewers of the object world. The user's access mechanisms are Task Windows (or "Viewers") which have an existence in their own right and which are navigated to look at the objects in the world. A Task Window may be directed to focus on different objects in turn and sometimes a Task Window may be looking at no object at all. The Task Window presents the appearance of the object to the user and accepts the user's input. It is important to note that an object has an implicit appearance and will look the same in all Task Windows. The semantic/presentation split allows multiple Task Windows to be attached to an object. It is important to note that all Task Windows are seeing the same object - not a version of it. When a user manipulates an object he changes it for everyone. The semantic object updates all Task Windows of its state. Thus the user will see the end effect. It has not been the practice to regard windows as objects, but by treating them as a special class of object certain benefits follow. As a class of object, windows differ from other objects in that they are not stored on disc as data files and they are always transient and active. They are processes which have transient data associated with them. It is convenient to provide a hierarchy of objects (including windows) with rules which determine their interaction. Thus, there may be "primary objects" otherwise known as "high level objects" which can be linked to a "primary window" or "Task Window". Such primary objects may thus be viewed by their windows independently of other objects of which they may notionally be part. On the other hand, "secondary objects", or "low level" objects" may be viewed only by way of "Secondary Windows" which are governed by a Task Window linked to an object of which the secondary object is notionally part. A representation object is a secondary object in the embodiment to be described. It is preferred that the system is a network system with multiple computers in respective locations. With such a system the invention allows interactive manipulation and display of data across a network, it being possible for different users to have different types of representations of the same or different parts of an object. Any change to the contents of the object effected by one user will be reflected in the presentations to the other users, whatever type of representation object they are employing and whether they are viewing the same section of the object or not. This is a significant extension to the "what you see is what I see" idea and yet is achieved with simple object linking and messaging. The invention will further be described by way of example with reference to the accompanying drawings, of which:- Figure 1 ,is a diagram showing the software components of the system; Figure 2 * shows the System Window; Figures 3 & 3a show a typical Task Window; Figure A shows a Task Window subsystem; Figure 5 shows a dynamic link library subsystem; Figure 6 is a schematic diagram illustrating representation/semantic object split; Figure 7 is a screen representation showing a linking operation; Figures 8-10 are screen representations. Referring to Figure 1, the software components of a distributed object based system 10 according to the invention are shown. The system 10 may run on networked personal computers each provided with a hard disc, a flexible disc drive and a networking card. Each PC is loaded with the following software components: operating system software 12, MSDOS in this example; windows interface software 14, Microsoft Windows in this example; object management software (Object Manager (OM) ) 16; distributed message switching software 18; local area networking software 20; windows software 22, in this case MS Windows Applications; semantic objects software 24. The OM. 16 controls the sending and receiving of messages by objects and maintains a catalogue of objects which reside on the machine. In addition, the OM 16 activates an inactive object if a message is received for it and deactivates objects when system memory runs short. The OM 16 also acts as a library to provide primitive utility functions to objects and other processes. In this embodiment, the OM 16 is an MS Windows application although it has no window and therefore cannot be viewed. The distributed message switching software (Distributed Message Switch (DMS)) 18 is a terminate and stay resident program and functions as a message router used by the OM 16 to send messages to the correct destinations. The DMS 18 will route messages to a local or remote OM as appropriate. In this embodiment, the local area networking software 20 comprises two terminate and stay resident programs - one according to IEEE 802.3 standard and the other providing IEEE 802.2 Class I and III services. The windows software 22 comprises a system window application (System Window) and window applications for displaying window objects (Task Windows) . The System Window is a process which controls a user session. The objects software 24 comprises the semantic objects of the system 10, each of which includes a set of stored data. An object may be active or inactive as defined above. Every object in the entire distributed system has its own unique identifier. Each object identifier has a part indicating in which storage domain the object was created and a part unique within that storage domain. This identifier does not change if the object subsequently moves to a different storage domain. The objects in the system 10 are mobile and may be moved, copied and otherwise manipulated by any user irrespective of where in a physical sense the user and the objects are located. Such manipulation is achieved in a manner which is consistent for all object types. In other words, the network is transparent to a user of the system. An object, or part of an object may be viewed by a plurality of Task Windows (belonging to one or more users) at the same time, and will have the same appearance in each Task Window. In this embodiment there are two types of semantic object - primary objects and secondary objects. All objects, except the Desktop, have a container. Some primary objects can contain other semantic objects and can be viewed by Task Windows in isolation from their containers. However, there are some primary objects which cannot contain other objects, eg, the ChessBoard and the Visible Data Object (VDO) . Primary objects have an icon which consists of a small picture representing the primary object and a title. The icon, or miniaturised version of the primary object is seen when the container of the primary object is viewed. Icons can be used ' to move or copy the associated primary object and double-clicking on an icon causes the Task Window in which the icon was seen to change to view the selected primary object. Examples of primary objects are a Folder, a Document, a Visible Data Object, (VDO) . The VDO acts as a store for data and its dimensions are set by the user. The structure of a VDO can be viewed by the user but the actual data stored in the VDO cannot be viewed directly. In this embodiment, secondary objects cannot contain other objects. They can only be viewed as part of their container oBject - they do not have miniaturised (iconic) states. They are used to supplement their container by providing an annotation or more complex representation as will be explained. The types of object will now be more fully described, firstly window objects and secondly semantic objects. Window objects also have the basic features of data and associated methods together with a unique identifier and the ability to receive and respond to messages from other objects. However, they differ from semantic objects in that they are transient, ie, not stored to disc whereas semantic objects are stored so that they persist even when the relevant machine is switched off. Window objects obtain their data from the System Window and the semantic object which they are viewing rather than from disc. There are three types of window objects, namely, the System Window, Task Windows and Secondary Windows. Each Window Object has its own unique object identifier. This identifier has an element identifying the storage domain on which the window was created and an element which is unique within that storage domain. The System Window is started automatically by the OM 16 and remains in memory while the system 10 is running, controlling the creation, destruction, opening and closing of Task Windows. The System Window also handles a user logging in and out of the system 10. Figure 2 shows the System Window 30 which covers the whole screen and acts as a background once a user has logged into the system. There is an "Activities" Menu bar 31 at the top of the System Window. The System Window 30 simply gives the user the option of entering the system or exiting. The user can control the size and position of a Task Window as well as choosing which object the Task Window is to view. Figure 3 shows a typical Task Window 32. The title 33 of the Task Window 32 shows the name (Eric's Desk) of the object which the Task Window 32 is viewing and the name of the machine (Machine B) on which that object resides. The Task Window 32 has a menu bar 34 which offers a "GOTO" pull-down menu as well as "CONFIGURE", "PRESENCE" and "CREATE" pull down menus. In the example of Figure 3, the Desktop object is seen to contain three objects - Colleagues, Supplies and PJetWork (which is a folder object) . A Task Window may be either visible (open) or invisible (closed) . The System Window 30 controls the opening and closing of Task Windows and the user can close a Task Window by double-clicking its "system box" 35. In this way a user may have several tasks running in the background and switch rapidly between them. A Task Window can only view one primary object at a time. By clicking on an icon or button (see section entitled "Semantic Objects") the Task Window can be switched to view a different object. Each user has up to seven Task Windows available. The user can view up to seven primary objects at the same time by creating the required number of Task Windows and navigating these to chosen objects. The System Window stores data for each Task Window that it controls, namely: a) Task Window Object ID; b) Window Handle (an internal identifier used for the windows software 22) ; c) Border Colour; d) Open/Closed Flag; e) Window Icon Flashing Flag; f) Object ID of object being viewed by Task Window; g) Icon and title of viewed object. To create a Task Window 32, a user selects the "Create" item from the "Activities" menu shown at 31a in Figure 3a. The System Window 30 updates its internal window information and sends a Window Create message to the new Task Window 32 containing the above information. New Task Windows start by viewing the Desktop. The System Window 30 disables all user input before sending this message and re-enables it on receiving a Window Create Done reply message from the new Task Window. There is a Task Window subsystem which handles all operations forming part of the viewing mechanism such as moving and sizing the window, shutting the window, changing the object viewed, etc. Operations which are specific to the object viewed are handled by a dynamic link library suitable for that class of object. The dynamic link library is unloaded when the Task Window is no longer viewing that object. Each Task Window stores the Object ID of the primary object which it is viewing and information about which part of that object is being viewed. The Task Window also stores the name of the relevant dynamic link library for the object which is being viewed. There can be more than one Task Window viewing an object at any one time so that, in a distributed system, a plurality of users can view the same object at the same time. Figure 4 depicts a Task Window subsystem 36 comprising a main program 37 for activating Task Windows and a supporting library 38. The subsystem 36 is linked to one of a set of dynamic link libraries 39 for different classes of object. For example, the set 39 includes dynamic link libraries for VDO, Folder and ChessBoard primary objects referenced 39a, b and c respectively. These are the presentation parts for the respective semantic objects. The dynamic link library 39 caches information enabling the repainting of the relevant presentation object, or part of it as appropriate, without the need for communication with the semantic object. During operation, the Task Window sends generic information to the Task Window subsystem 36 and sends information specific to the particular presentation object to the relevant dynamic link library 39. A Task Window 32 can display any type of semantic object and it is a Primary Window in the sense that it can be linked to any primary object type, eg. Folder, VDO, etc. If the primary object which a Task Window is viewing contains a secondary object, eg, a Bar Chart, the Task Window creates a Secondary Window and links it to the secondary object as will be described. These Secondary Windows are created automatically when the user moves the Task Window from the container. Task Windows are linked to semantic objects by a GOTO operation. This will often involve a GOAWAY operation. The first step in the GOTO operation is for the Task Window to send an AddViewer message to the desired object. This object will store the Task Window ID and reply with a Here Contents message. The first part of the Here Contents message provides information on the object ID, class, icon and the relevant dynamic link library 39. This causes the subsystem 36 to load the relevant dynamic link library 39. The remainder of the Here Contents message is private to the object and is passed to the dynamic link library 39. If the object to be viewed contains any secondary objects, the Task Window creates a Secondary Window for each secondary object. A Secondary Window is a child window used to display and interact with a secondary object on the surface of a. primary object which contains it. Secondary Windows differ from Task Windows in that they are created to view one object and are destroyed when that view is no longer needed whereas Task Windows are used to view many objects in succession. When a dynamic link library 39 for a primary object initially receives a Here Contents message, that will include a list of contained secondary objects. Referring to Figure 5, the dynamic link library 39 uses a support library 40 to provide it with utility functions including the creation and registration of Secondary Windows for any contained secondary objects and their position in the primary object. An Add Viewer message is sent to each such secondary object. In due course each such Secondary Window will receive its own Here Contents message including the name of the secondary object dynamic link library 41, for it to use. This secondary object dynamic link library is then loaded and all messages for the Secondary Window are passed to a window procedure in the secondary object dynamic link library 41. The GOAWAY operation starts by the Task Window sending a Remove Viewer message to the viewed object. If the Task Window has created Secondary Windows, this message is also broadcast to them causing them to destroy themselves. All objects which receive the Remove Viewer message update their list of windows and reply with a Viewer Removed message. The Task Window knows how many replies to expect and, when these are received the GOAWAY operation is complete. The Task Window may then view another object, or shutdown or destroy itself. To destroy a Task Window, the user selects the Destroy item from the Activities menu 31. The mouse can then be moved and clicked anywhere on the screen, but all other user input is temporarily disabled. If the mouse is clicked over a Task Window, the System Window sends a Window Destroy message to that Task Window which replies with a Window Destroy Done message. The Window Destroy message causes the Task Window to initiate a GOAWAY operation as described above. Figure 6 shows a VDO which comprises a 3x3 table having integers 1, 3, 6, 8, 4, 9, 3, 2, 7. The VDO is a semantic object which is linked, by simple binding and messaging techniques to be described, to the semantic parts FR and SR of first and second representation objects. FR is a bar chart representation object and SR is a pie chart representation object. The semantic parts are split from the representation parts. In this way not only can separate presentation windows Wl and W2 be opened on FR, but also the different representation objects can be linked simultaneously to the VDO. The presentation window on SR is shown at W3. Windows Wl and W2 show the bar chart of integers 1, 3 and 6 and Window W3 shows the pie chart of integers 3, 4 and 2. The user is able to link a secondary object to a primary object in the course of a user session. Figure 7 shows a screen with a view of part of a folder 60 containing a Visible Data Object (VDO) 62 (a primary object) and a Bar Chart 64 (a secondary object) . Each secondary object has a border 66 which appears when the input device, eg, mouse cursor, is positioned over it. The border has a link box 68, an unlink box 70, and two 14 size boxes 72 and 74. The Bar Chart 64 is linked to the VDO 62 by clicking the mouse over the link box 68 and dragging the mouse to the VDO and releasing the mouse. This causes a "Chain" 76 to appear on the screen. On releasing the mouse, the Secondary Window (SW) viewing the Bar Chart 64 queries the Primary Window (PW) viewing the VDO 62 whether the VDO will accept a link from a Bar Chart. A negative response would cause the operation to be aborted. However, in this case the link is acceptable and a LINK fTarget Object) message is sent by the Secondary WindoW to the Bar Chart. If the Bar Chart 64 is already linked, it sends an UNLINK message to the object to which it is currently linked. The Bar Chart 64 then updates its link data and sends a LINK message to the VDO. The VDO then updates its link data and sends a LINK message to the VDO. The VDΘ then-updates its link data to include the Bar Chart. ϊh the particular case of a VDO linking to a representation object, the link must be to a specific part of the VDO. Therefore, the Bar Chart 64 sends a Get VDO Info mess u age to the VDO 62. This causes the VDO to send a description of itself to the Bar Chart. The secondary window SW then displays a dialogue to enable the user to select the part of the VDO to which the Bar Chart is to be linked. The effect of the Bar Chart 64 being linked to the VDO 62 is that any changes in the relevant part of the VDO are automatically reflected in the Bar Chart. Also, the data in the VDO can be changed by making alterations to the Bar Chart. Other representation Objects such as Pie Charts and Tables can be linked to a VDO in a similar manner. The Bar Chart and the VDO may be in different storage domains in a distributed system. A plurality of representation objects can be linked concurrently to the same or different parts of a VDO in this manner. In addition, a plurality of users may concurrently view a representation object. To unlink a secondary object, the user selects its unlink box 70. This causes the secondary window SW viewing the secondary object to send an UNLINK message to the object. The secondary object clears its link data and sends an UNLINK message to the primary object to which it is linked. The primary object then amends its list of linked objects. In the event of a primary object to which a secondary object is linked being destroyed, the secondary object receives an UNLINK memssage and clears its link data. If a representation object, such as a bar chart, is unlinked, it will retain the values and labels which it last received from the VDO to which it was linked. These values can still be changed by a user but such changes will no longer update the VDO. During a user session optional selections may be made by a user. The following description discusses the passage of messages in a system according to the invention in respect of editing the VDO description and representation range and changing the VDO values. The description of a VDO (the number and names of its dimensions, and the number and names of the indices within each dimension) may be edited by a user in the primary window viewing it, but no messages will be sent until the user clicks the "OK" or "Cancel" buttons which are displayed to the user. If the "Cancel" button is clicked, the window will restore the original (pre-edit) description. It does this by sending WIN2VDO_GIVEDESCRIPTION message to the VDO, which then replies with VD02WIN_NEWDESCRIPTION. The second message includes a full description of the state of the VDO, which the window uses to restore its appearance. If the user clicks "OK" to make a change to the VDO's description, then the window sends WIN2VD0_NEWDESCRIPTI0N (New Description) to the VDO. When the VDO receives this, it updates its description. It is to be noted that the VDO's description is altered but the data it stores is not, though the amount of data may be altered. For instance, if a 3x3 VDO is altered to become a 4x2x2 VDO, then some data elements, the bottom 3x2, will be unchanged. One row of the original 4x2 table will be deleted, and a new zero- initialised 4x2 table will be added to make the VDO 3- dimensional. Having adjusted itself, the VDO must tell any object that might be interested in the change. Firstly, the altered VDO informs all its Task Windows by sending them VD02WIN_NEWDESCRIPTION messages. Each window that receives this message updates its appearance from the description given in the message. Then, the VDO broadcasts VD02 REP_NEWDESCRIPTION to all its linked representations. A representation which receives this message updates its own records, and converts and forwards the change to its Task Windows by sending them REP2WIN_CHANGEREP. Predictably, windows which receive such a message update their state and repaint. When a user wishes to edit the particular range of a VDO which is being shown by a representation, he/she CTRL- clicks on the representation window. The window must get a description of the VDO in order to put up a dialogue (which will enable the user to choose a part of the VDO to link the representation to) , and here there is a slight inconvenience. The window does not know about the VDO, nor does the VDO know about the window. Therefore, all communication between them must be sent via the representation object. The user's Ctrl-click causes the window to send WIN2REP_GETVDOINFO to the representation. If the representation is not linked to VDO,it replies with REP2WIN_NOVDOLINK, and nothing further occurs. If the representation is linked to a VDO, then it forwards the request for information to the VDO by sending a L02HI_GETVDOINFO message. On receiving this message, the VDO sends a HI2LO_HEREVDOINFO message back to the representation object, which forwards it to the requesting window with a L02WIN_HEREVDOINFO message. Note that the identity of the source window of the request is passed as part of the message, and is not stored by the representation object; therefore each message is a complete transaction that does not rely on any state of any of the objects involved. This means that there is no problem if several such operations interleave on the same objects. Once the requesting window has the description of the VDO, it puts up a dialogue to enable the user to select a range. If the user cancels this dialogue, then the operations terminates. Otherwise (the user presses the "OK" button) , the window sends WIN2LO_CHANGEREP to the representation object. Here again, there is a complication. If the representation updated its range from this message, it would not know the correct data for that range (only the VDO knows the correct data) . Rather than make a partial update like this, the representation forwards the new range to the VDO by sending it REP2VDO_CHANGEREP. The VDO does not alter its state on receiving this message, instead it fills in the data values for the selected range and replies to the representation with VD02REP_CHANGEREP. On receiving this message, the representation updates its state (both range selected and data values for that range) , and informs its windows by sending them REP2WIN_CHANGEREP. These windows, of course, update their data and repaint themselves. A user can alter data held by the VDO by altering the data displayed by a representation object linked to the VDO, eg, by changing the heights of the bars in a bar chart. Referring to Figure 8, the user is viewing a VDO in a Task Window 80 which shows the dimensions and indices of the VDO but not the actual data. The System Window 30 is visible in the background. Figures 9 and 10 each show a Bar Chart secondary object 82 linked to the VDO being viewed in a Secondary Window 84 in the Task Window 80 and a Table secondary object 86 being viewed in a secondary Window 88 in another Task Window 90 which is also linked to the VDO. Figures 9 and 10 show how altering an entry in the Table (for Admin Department Travel) causes a corresponding change in the Bar Chart owing to a change in the data held by the VDO. Whenever a user alters data displayed by a representation window, the NewValue operation occurs. First, the window checks to see whether it has sent an update to that data element which has not yet been acknowledged. If the last change has not been acknowledged yet, then the window does nothing until that acknowledgement arrives. Then, it compares the value returned by the acknowledgement message with the current value of the data, and if they are different it sends another change message. If no r. acknowledgements are outstanding, then the window will tell the representation to change the value of the data element by sending it a WIN2LO_NEWVALUE message. This message will have a unique tag which the window also storesε this allows the window to match future acknowledgement messages to those it is expecting. A representation object which receives a WIN2LO_NEWVALUE message will either translate the index from its own indices into VDO indices and forward the change by sending REP2VD0_NEWVALUE (if it is linked to a VDO), or send L02 WIN_NEWVALUE to all its viewers (if it is not) . If a VDO receives REP2VDO_NEWVALUE, it will update its data and send .VD02REP_NEWVALUE to all its linked representations. Each representation which receives this message will check to see if the changed element is within the range which it has selected; if not, it will take no further action. Otherwise, it will check the tag on the update message. If the representation is waiting for an acknowledgement to a previous update for the data element and this message is not that acknowledgement, then the representation will take no further action (there is no point in changing a data element when another change to it is expected anyway) . If the representation does decide to take action, it will update its own data and inform its windows by sending them L02WIN_NEWVALUE. Each window which receives this message will also check the tag, as the representation does, and will either ignore the update or repaint the data element. It is envisaged that the VDO may itself be linked to a further object, eg, a database, from which it obtains data and indeed that there may be several levels of objects linked by updating links below a representation object displayed to a user. The invention is not restricted to the details of the foregoing description made with reference to the accompanying drawings. For example, an MS DOS system is described operating under Microsoft Windows. Other operating systems, graphical user interfaces and networks may be employed. In one example, Os/2 is used with it Presentation Manager and a LAN. This package of software would replace, in Figure 1, the integers 12, 14, 18 and 20. The system described with reference to the accompanying drawings is a networked system of multi-tasking personal computers. The PC's themselves are not multi-user, but the networked system is. The invention is applicable also to a multi-user computer running, for example, under UNIX and having multiple terminals.

Claims: -2.0- CLAIMS 1) An object based computer system having an object manager for activating objects, the objects being capable of being linked and including at least one representation object which, in use, is interpretative of the data of an object to which it is linked and which takes some or all of its state from that object and means for presenting the representation object to a user. 2) A system according to claim 1 comprising means for concurrently linking a plurality of representation objects to the same object for interpreting the data of that object. 3) A system according to claim 2 comprising means for concurrently linking a plurality of representation objects to different parts of the same object for interpreting different parts of the data of that object. 4) A system according to any preceding claim comprising means for providing a plurality of concurrent presentations of a representation object. 5) . A system according to any preceding claim comprising means for changing the data of an object by changing a representation object linked to that object. 6) A system according to any preceding claim wherein said object is linked to another object and takes some or all of its state from that further object.

Inventors: DUGGAN HUGH, MOREL WILLIAM, DUGGAN, HUGH, MOREL, WILLIAM
Applicants: HEWLETT PACKARD CO, HEWLETT PACKARD COMPANY
Application year: 1990
Main classification: G06F9
IPC codes: G06F9