OBJECT BASED COMPUTER SYSTEM

Abstract: An object based computer system has the facility to allow multiple viewers to view and manipulate a semantic object concurrently. The semantic object has a table of viewers which are viewing it and all such viewers are sent update messages to allow them to indicate the set of viewers which is concurrently viewing the object.

Description: OBJECT BASED COMPUTER SYSTEM The invention relates to an object based computer system. Object based computer systems facilitate multi¬ tasking and multi-user operations where common data files may be accessed concurrently by different tasks operated from the same terminal or operated by different users employing respective terminals. A windows environment is generally employed in conjunction with an obj-ect based system to enable windows to be allocated to respective concurrent tasks. 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 disk. An object may be INACTIVE, when it is identified simply as a disk file, or ACTIVE, when it has a PROCESS, or executable file, associated with it. When active, at least parts of the object are held in the computer RAM and the object is defined by the state of the associated process rather than by its file. Objects can be LINKED to other objects so that changes in one are reflected in the object or objects with which it is linked by virtue of MESSAGES which are passed between the linked objects. The system is controlled by an OBJECT MANAGER which is an application running in the windows environment and which controls activation and deactivation of objects, and the passage of messages between objects. An object is sometimes a CONTAINER which contains as notional parts other objects. Examples of container objects in a distributed office system are a desktop, folder and a document. A VARIABLE DIMENSION DATA OBJECT (VDO) is a data store of which the values of elements may be viewed and changed directly by a user. Object based systems have suffered the disadvantage common to multi-tasking or multi-user systems sharing data files. This is that although, with careful record-locking procedures, different tasks or 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. We have devised a solution to this problem which depends on splitting an object between 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. 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. 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. in the system of the present invention an object has an implicit presentation, which will look the same however viewed. 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 user of multiple windows in conjunction with an object enables employment of the techniques of sharing (multiple windows to a common object) and distributed (window on one machine and object on another) applications. We define a VIEWER as an object which allows users to access other objects by providing the appearance of the object to the user and accepting user input for data manipulation. Viewers have hitherto been known as TASK WINDOWS, but a window is part only of the viewer. The object being viewed controls its own state and provides the methods for access to and manipulation of that state. When sharing or multi-user operations are being effected, each task or ser associated with a particular object is a REFEREE of that object. It is ensured that each active object retains references to its referees so that they are sent messages to be notified of changes during object processing. The semantic/presentation split allows multiple viewers to be attached to an object. It is important to remember in this case that all viewers are seeing the same object, not a version of it. This is important, as we have a basically 'physical' model of the object world, when a user manipulates an object he is actually physically changing it for everyone. This could lead to conflict when two or more users are trying to manipulate the same thing. The present invention seeks to provide a solution. According to the present invention there is provided an object based computer system having at least one computer with a central processor unit, random access memory and program and data storage facilities, the computer being programmed to run in a windows environment and having an object manager whereby objects are activated, the objects being capable of being linked, objects being subject to a semantic/presentation split whereby multiple viewers can be linked to an object to allow concurrent observation and manipulation, and a presence mechanism being provided whereby referees of an object being viewed are notified of the presence of each other by indications in their respective viewers. Indication of the presence of concurrent viewers of an object greatly facilitates the user's vision of the system and under-pins the user model which the system establishes. Instead of merely observing the effects of his own manipulations of data the user can be aware that other viewers are present and thus capable of separate manipulation of the same data. A user always knows what he has requested by way of a manipulation. This is the local feedback provided by the viewer. The underlying object updates all viewers of its state, thus the user will see the end effect. In such conflict conditions it is not possible to guarantee that the request and the end effect match, but the user will not be misled as to what has happened. One of the important benefits of the presence mechanism is to help explain these situations to the user. The semantic/presentation split also allows viewers to be remote (from the object) , without the user losing the benefit of immediate feedback of his manipulations. Users themselves can move from one terminal to another. The identity of the users is obtained from Personal Identity Cards which they use to log on to the system. In a preferred arrangement, on each viewer are listed the names of owners of the viewers viewing the same object. The presence of the displaying viewer is always shown as the first on the list. The presence indicators also give the colour coding of the viewer (each viewer has a border which is a different colour to all other viewers on that machine) . The object being viewed keeps a list of current viewers and it is the duty of the object to inform each viewer which other viewers are viewin that object. The invention will further be described with reference to the accompanying drawings, of which:- Figure 1 is a schematic diagram of an object based computer system embodying the invention; Figure 2 is a diagram illustrating the user's model of a system which incorporates the invention; Figure 3 is a further diagram illustrating part of the user's model of the system; Figure 4 is a diagram of a user's view of a system having a presence mechanism in accordance with the invention; Figure 5 is a schematic diagram illustrating the presence mechanism of the invention; Figure 6 is a schematic diagram illustrating program procedures of an object being reviewed; and Figure 7 is a schematic diagram illustrating 5 program procedures of a viewer. Referring to Figure 1 there is shown an object based computer system which comprises a network of personal computers PC, each of which has a central processor unit CPU; random access memory RAM; mass 10 storage facilities MS; a visual display unit VDU and a mouse M. In the drawing these units are designated for one computer only. Each computer also has a card reader CR. The mass storage facilities MS constitute domains 15 in the system which are generally associated with the user or users who habitually use that computer. Thus, objects associated with those users are stored there. These objects include, for example, the desk top objects for each habitually local user. 20 Referring to Figure 2 there is shown a model of a distributed office computer system which comprises several computers linked together in a network as in Figure 1. Each computer has the usual input/output facilities of keyboard, mouse and VDU as well as a CPU 25 and hard disk on which are held object files. The core of the system is the object world 1 containing objects to which the users 2 have access. An important aspect of the system is the model of it which the user has. Critical in this is a layered ■ 30 structure which includes an access layer 3 whereby the users gain access to the objects in the object world 1. Figure 3 shows more specifically the access layer including viewers 4 which are window objects and which are able to be navigated to observe and manipulate 35 different objects in the object world. It is important to note the concept of navigation of a viewer between objects in this system. A user does not need to open a new window for each object. The viewers must be regarded as mechanisms in their own right. Since a feature of the system is that multiple viewers may be linked to the same object and each viewer has the capability not only to observe but also manipulate the object, it is possible for a user to observe unexpected results. For example, icons might move or data might change. To facilitate an understanding of such effects the present invention provides viewers with indications of concurrent viewers. This is shown in Figure 4, where there is shown a presentation which has a first window which has been opened on "Desktop on 10" and a second window which has been opened on "Folder on 10" . Both windows have presence bars 5 and 6 respectively. Bar 5 shows only "self" which indicates that no other viewers are open on the object of that window. Bar 6, on the other hand, shows that in addition to "self" there are the viewers of "Joe" and "George". What is immediately clear, therefore, is that users Joe and George will be viewing "Folder on 10" . All three users will observe the same view of "Folder on 10" and will be able to manipulate that object. Each presence indicator has a border of a particular colour corresponding to the viewer in question. The presence of the displaying viewer is always shown as the first in the list. The bar may be switched off by the user to conserve screen space. Referring to Figure 5 there are shown two viewers 7 and 8 open on the same object 9. Presence bars 10 and 11 on the viewers have presence indicators 12 as described above. However, the object 9 being viewed has responsibility for maintaining a list 14 of all viewers currently linked to it and of passing messages to the viewers to notify them of each other's presence. Each user has the facility to select for his viewer an object to be viewed, or to remove the object viewed. As a selection is made, an appropriate message is sent from the viewer to the semantic part of the object concerned. Figure 6 shows schematically the procedures in the process of the semantic part 9 of the object of Figure 5. Referring to Figure 6 there are three procedures 15, 16 and 17 which have the self- explanatory names AddViewerToTable; PresenceChange and RemoveViewerFromTable respectively. Messages from viewers are received and analysed by a switch program structure 18 so that if the message request is to view the object, procedure 15 is implemented whereas if the object is to be removed then procedure 17 is implemented. Object 9 keeps a table 14 of viewers which are viewing it. In adding a viewer to the table, procedure 15 uses a data structure which comprises the following fields: number of viewers; user name; viewer identity; viewer colour; message address and object identity. This data is updated in respect of the new viewer, user and object combination, the number of viewers being incremental by one, for example. The structure is added to an array of such structures which constitutes the viewer table 14. Procedure 15 then calls procedure 16 which sends an update message at 19 to all viewers in table 14 to carry information of the table update to the viewers. In removing a viewer from the table 14, procedure 17 receives a message from the appropriate viewer via the switch structure 18. The message includes viewer identity and user identity information and this is used to search for the appropriate structure in the array of table 14. If found, the structure is cancelled and the number of current viewers is decremented by one. The revised data structure indicating the number of viewers; user name; viewer identity; viewer colour; and object identity is passed to the change procedure 16 which is implemented to pass appropriate messages to the remaining viewers which are viewing the object. Figure 7 is a schematic diagram showing program code procedures effective at a viewer to modify the presentation in accordance with the update messages received from the semantic object 9 described above. There is a viewer list 22 which is an array of data structures, each structure carrying information about a viewer which is viewing the object. List 22 is similar in many respects to list 14 of the semantic object 9 (Figure 6) . List 22 is updated by virtue of the messages passed from the object 9. Such messages are received by a switch program structure 23 and in accordance with the contents of the message are directed to activate an appropriate procedure. Two messages to which the switch structure responds are of particular significance here and are OBJ2WIN_PRESENCE and 0BJ2WIN_VIEWERREM0VED respectively Two procedures 24 , 25 are names AddPresence and Del etePresence respectively . In re spons e to the 0BJ2WIN_VIEWERREM0VED me s s age , pro c edure 25 i s i nvoked . Thi s de termi ne s f rom the me s s age the identity of the viewer to be deleted, searches for it in list 22 and if found deletes it from the list . The effect of the message OBJ2WIN_PRESENCE i s firstly to invoke the DeletePresence procedure 25 and then to invoke the AddPresence procedure 24 which has the effect of adding a new viewer data structure to list 22. The preliminary deletion of the viewer allows changes in the viewer, for example in size and colour, to be catered for. List 22 can be regarded as a list of buttons, since it is used by a procedure 26 to generate on the screen the presence buttons 12 of Figure 5. It is to be noted that the first button on the list, namely the left-most button displayed, is always that associated with the immediate viewer.

Claims: CLAIMS ' 1. An object based computer system having at least one computer with a central processing unit, random 5 access memory and program and data storage facilities, the computer being programmed to run in a windows environment and having an object manager whereby objects are activated, the objects being capable of being linked, objects being subject to a 10 semantic/presentation split whereby multiple viewers can be linked to an object to allow concurrent observation and manipulation, and a presence mechanism being provided whereby referees of an object being viewed are notified of the presence of each other by 15 indications in their respective viewers. 2. An object based computer system as claimed in Claim 1 wherein an object being viewed includes a table of viewers which are viewing it, the table being 20 updated by messages received from viewers and the object sends update messages, corresponding to changes in the table, to the viewers which are viewing the object. 25 3. An object based computer system as claimed in Claim 2 wherein each viewer has a viewer list which is updated by the said update messages to represent the viewers which share the object being viewed. * 30 4. An object based computer system as claimed in Claim 3 wherein the members of the viewer list generate respective buttons which indicate their identities and which are displayed on the viewer. 35

Inventors: ROBSON CHRISTOPHER, ROBSON, CHRISTOPHER
Applicants: HEWLETT PACKARD CO, HEWLETT-PACKARD COMPANY
Application year: 1991
Main classification: G06F9
IPC codes: G06F9