WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
Object based system comprising user interface permitting manipulation of objects by users    
United States Patent5584035   
Link to this pagehttp://www.wikipatents.com/5584035.html
Inventor(s)Duggan; Hugh (Horfield, GB2); Morel; William (Redmond, WA)
AbstractA distributed object based system includes primary and secondary objects. Primary objects can sustain containership links to other objects in the same storage domain and weak links can exist between objects in different storage domains.
   














 Title Information Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History
Drawing from US Patent 5584035
Object based system comprising user interface permitting manipulation of

     objects by users - US Patent 5584035 Drawing
Object based system comprising user interface permitting manipulation of objects by users
Inventor     Duggan; Hugh (Horfield, GB2); Morel; William (Redmond, WA)
Owner/Assignee     Hewlett-Packard Company (Palo Alto, CA)
Patent assignment
All assignments
Publication Date     December 10, 1996
Application Number     08/495,038
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     June 27, 1995
US Classification     715/765 345/619 715/516 715/804
Int'l Classification     G06F 011/30 G06F 003/14
Examiner     Geckil; Mehmet B.
Assistant Examiner    
Attorney/Law Firm    
Address
Parent Case     This is a continuation of application Ser. No. 07/736,044, filed Jul. 25, 1991, now abandoned.
Priority Data     Jul 31, 1990[EP]90308449
USPTO Field of Search     395/800 395/155 395/159 395/650 395/157 395/158 395/62 395/133
Patent Tags     object based comprising user interface permitting manipulation of objects users
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

Share information and news about this patent, including information and news about the technology, inventors, company, ligation and licensing.

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
5237654
Shackelford
715/804
Aug,1993

[0 after 0 votes]
5140677
Fleming
715/835
Aug,1992

[0 after 0 votes]
5129084
Kelly, Jr.
718/104
Jul,1992

[0 after 0 votes]
5121478
Rao
715/804
Jun,1992

[0 after 0 votes]
5119493
Janis
718/101
Jun,1992

[0 after 0 votes]
5117351
Miller
707/10
May,1992

[0 after 0 votes]
5072412
Henderson, Jr.

Dec,1991

[0 after 0 votes]
5065347
Pajak

Nov,1991

[0 after 0 votes]
5029104
Dodson
709/217
Jul,1991

[0 after 0 votes]
5008853
Bly

Apr,1991

[0 after 0 votes]
4982344
Jordan
715/804
Jan,1991

[0 after 0 votes]
4974173
Stefik
715/751
Nov,1990

[0 after 0 votes]
4937036
Beard
345/156
Jun,1990

[0 after 0 votes]
5185885
Dysart
707/100
Dec,1969

[0 after 0 votes]
 Foreign References
 Other References
 Market Review Submit all comments and votes
   
Market Size
Estimate the gross annual revenues of the relevant market sector:
> $10B
$5B - $10B
$2B - $5B
$500M - $2B
$100M - $500M
$10M - $100M
$1M - $10M
$500K - $1M
$100K - $500K
< $100K
[No votes]
$0
 
$0   $2.5B   $5B   $7.5B   $10B
Market Share
Estimate the percentage of the relevant market sector this invention will capture:
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Reasonable Royalty
What percentage of gross sales should the inventor or assignee be paid?
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

License Availablity
If you are NOT the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
License Availablity
If you ARE the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



[No votes]
Most helpful competitive advantage comment
[No comments]

Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



[No votes]
Most helpful commercial alternative comment
[No comments]

 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


What is claimed:

1. A distributed object based computer system, comprising:

first and second storage domains;

a first host computer operatively coupled to said first storage domain and a second host computer operatively coupled to said second storage domain;

first and second input devices operatively coupled, respectively, to said first and second host computers, said input devices adapted for receiving input signals from users of said first and second computers;

first and second graphic display devices operatively coupled to said first and second host computers, respectively, for displaying representations of objects, said input devices and graphic display devices permitting manipulation of objects by said users;

a plurality of objects, said plurality of objects including first and second primary objects (P.sub.1, P.sub.2), first and second secondary objects (S.sub.1, S.sub.2), first and second window objects (P.sub.1W, P.sub.2W) for viewing said first and second primary objects, respectively, and third and fourth window objects (S.sub.1W, S.sub.2W) for viewing said first and second secondary objects, respectively, wherein each of said objects has its own data and associated processes and wherein said objects are discrete entities that may be individually movable, copyable, viewable and destroyable in response to signals from said input devices, and wherein said objects P.sub.1, S.sub.1, P.sub.1W, and S.sub.1W reside in said first storage domain and said objects P.sub.2, S.sub.2, P.sub.2W, and S.sub.2W reside in said second storage domain; and

linking means for sustaining the following object-object links:

a containership link between said first primary object (P.sub.1) and said first secondary object (S.sub.1), and

a primary-secondary weak link between said first primary object and said second secondary object (P.sub.1 -S.sub.2),

wherein each object P.sub.1,S.sub.2) in said weak link may exhibit different representations and

wherein said weak link (P.sub.1 -S.sub.2) indicates that, if either one of P.sub.1 or S.sub.2 is moved, copied, viewed or destroyed in response to a signal from an input device, the effect on all objects weakly linked to the moved, copied, viewed or destroyed object will be in accordance with a predetermined set of rules wherein

if P.sub.1 or S.sub.2 is moved, P.sub.1 will remain weakly linked to S.sub.2 ;

if P.sub.1 is destroyed, S.sub.2 will be unlinked; and

if S.sub.2 is destroyed, P.sub.1 will be unlinked.

2. A distributed object based computer system as recited in claim 1, wherein said containership link indicates that P.sub.1 and S.sub.1 are in a common storage domain and that S.sub.1 will be destroyed if P.sub.1 is destroyed.

3. A distributed object based computer system as recited in claim 1, further comprising an inactive object and activation means for automatically activating said inactive object in response to said inactive object being sent a message, wherein said inactive object comprises and is fully defined by a file stored in a storage medium.

4. A distributed object based computer system as recited in claim 1, wherein said predetermined set of rules further comprises a rule wherein

if P.sub.1 is copied, the copy of P.sub.1 will not automatically be linked to S.sub.2 ;

if S.sub.2 is copied, P.sub.1 will be automatically weakly linked to both S.sub.2.

5. A distributed object based computer system as recited in claim 1, further comprising selecting means for selecting said second secondary object S.sub.2 in response to a select signal from an input device, and means for automatically displaying said first primary object P.sub.1 in response to said select signal if P.sub.1 is weakly linked to S.sub.2.

6. A distributed object based computer system as recited in claim 22, further comprising distributed storage means for storing a first link record for P.sub.1, a second link record for S.sub.1, a third link record for P.sub.2, and a fourth link record for S.sub.2, wherein said first link record indicates the identity of all objects to which P.sub.1 is linked and the nature of the link(s), said second link record indicates the identity of all objects to which S.sub.1 is linked and the nature of the link(s), said third link record indicates the identity of all objects to which P.sub.2 is linked and the nature of the link(s), and said fourth link record indicates the identity of all objects to which S.sub.2 is linked and the nature of the link(s).

7. A distributed object based computer system as recited in claim 6, wherein each of said link records is stored in the same storage domain as its corresponding object.

8. A distributed object based computer system as recited in claim 1, wherein said linking means includes means for linking only a part of an object to another object.

9. A distributed object based computer system as recited in claim 1,

wherein said containership link indicates that P.sub.1 and S.sub.1 are in a common storage domain and that S.sub.1 will be destroyed if P.sub.1 is destroyed;

further comprising an inactive object and activation means for automatically activating said inactive object in response to said inactive object being sent a message, wherein said inactive object comprises and is fully defined by a file stored in a storage medium; and

wherein the following set of rules is associated with said primary-secondary weak link (P.sub.1 -S.sub.2):

if P.sub.1 or S.sub.2 is moved, P.sub.1 will remain weakly linked to S.sub.2 ;

if P.sub.1 is copied, the copy of P.sub.1 will not automatically be linked to S.sub.2 ;

if S.sub.2 is copied, P.sub.1 will be automatically weakly linked to both S.sub.2 and the copy of S.sub.2 ;

if P.sub.1 is destroyed, S.sub.2 will be unlinked; and

if S.sub.2 is destroyed, P.sub.1 will be unlinked;

further comprising selecting means for selecting said second secondary object S.sub.2 in response to a select signal from an input device, and means for automatically displaying said first primary object P.sub.1 in response to said select signal if P.sub.1 is weakly linked to S.sub.2.

10. A distributed object based computer system as recited in claim 9, further comprising distributed storage means for storing a first link record for P.sub.1, a second link record for S.sub.1, a third link record for P.sub.2, and a fourth link record for S.sub.2, wherein said first link record indicates the identity of all objects to which P.sub.1 is linked and the nature of the link(s), said second link record indicates the identity of all objects to which S.sub.1 is linked and the nature of the link(s), said third link record indicates the identity of all objects to which P.sub.2 is linked and the nature of the link(s), and said fourth link record indicates the identity of all objects to which S.sub.2 is linked and the nature of the link(s); wherein each of said link records is stored in the same storage domain as its corresponding object.

11. A distributed object based computer system as recited in claim 1,

wherein said containership link indicates that P.sub.1 and S.sub.1 are in a common storage domain and that S.sub.1 will be destroyed if P.sub.1 is destroyed;

further comprising an inactive object and activation means for automatically activating said inactive object in response to said inactive object being sent a message, wherein said inactive object comprises and is fully defined by a file stored in a storage medium; and

selecting means for selecting said second secondary object S.sub.2 in response to a select signal from an input device, and means for automatically displaying said first primary object P.sub.1 in response to said select signal if P.sub.1 is weakly linked to S.sub.2.

12. A distributed object based computer system as recited in claim 11, further comprising distributed storage means for storing a first link record for P.sub.1, a second link record for S.sub.1, a third link record for P.sub.2, and a fourth link record for S.sub.2, wherein said first link record indicates the identity of all objects to which P.sub.1 is linked and the nature of the link(s), said second link record indicates the identity of all objects to which S.sub.1 is linked and the nature of the link(s), said third link record indicates the identity of all objects to which P.sub.2 is linked and the nature of the link(s), and said fourth link record indicates the identity of all objects to which S.sub.2 is linked and the nature of the link(s); wherein each of said link records is stored in the same storage domain as its corresponding object.

13. A distributed object based computer system, comprising:

first and second storage domains;

a first host computer operatively coupled to said first storage domain and a second host computer operatively coupled to said second storage domain;

first and second input devices operatively coupled, respectively, to said first and second host computers, said input devices adapted for receiving input signals from users of said first and second computers;

first and second graphic display devices operatively coupled to said first and second host computers, respectively, for displaying representations of objects, said input devices and graphic display devices permitting manipulation of objects by said users;

a plurality of objects, said plurality of objects including first and second primary objects (P.sub.1, P.sub.2), first and second secondary objects (S.sub.1, S.sub.2), first and second window objects (P.sub.1W, P.sub.2W) for viewing said first and second primary objects, respectively, and third and fourth window objects (S.sub.1W, S.sub.2W) for viewing said first and second secondary objects, respectively, wherein each of said objects has its own data and associated processes and wherein said objects are discrete entities that may be individually movable, copyable, viewable and destroyable in response to signals from said input devices, and wherein said objects P.sub.1, S.sub.1, P.sub.1W, and S.sub.1W reside in said first storage domain and said objects P.sub.2, S.sub.2, P.sub.2W, and S.sub.2W reside in said second storage domain; and

linking means for sustaining the following object-object links:

a containership link between said first primary object (P.sub.1) and said first secondary object (S.sub.1), and

a primary-secondary weak link between said first primary object and said second secondary object (P.sub.1 -S.sub.2), wherein said weak link (P.sub.1 -S.sub.2) indicates that, if either one of P.sub.1 or S.sub.2 is moved, copied, viewed or destroyed in response to a signal from an input device, the effect on all objects weakly linked to the moved, copied, viewed or destroyed object will be in accordance with a set of rules, wherein

if P.sub.1 or S.sub.2 is moved, P.sub.1 will remain weakly linked to S.sub.2 ;

if P.sub.1 is copied, the copy of P.sub.1 will not automatically be linked to S.sub.2 ;

if S.sub.2 is copied, P.sub.1 will be automatically weakly linked to both S.sub.2 and the copy of S.sub.2 ;

if P.sub.1 is destroyed, S.sub.2 will be unlinked; and

if S.sub.2 is destroyed, P.sub.1 will be unlinked.

14. A distributed object based computer system as recited in claim 13, wherein said containership link indicates that P.sub.1 and S.sub.1 are in a common storage domain and that S.sub.1 will be destroyed if P.sub.1 is destroyed.

15. A distributed object based computer system as recited in claim 13, further comprising an inactive object and activation means for automatically activating said inactive object in response to said inactive object being sent a message, wherein said inactive object comprises and is fully defined by a file stored in a storage medium.

16. A distributed object based computer system as recited in claim 13, further comprising selecting means for selecting said second secondary object S.sub.2 in response to a select signal from an input device, and means for automatically displaying said first primary object P.sub.1 in response to said select signal if P.sub.1 is weakly linked to S.sub.2.

17. A distributed object based computer system as recited in claim 13, further comprising distributed storage means for storing a first link record for P.sub.1, a second link record for S.sub.1, a third link record for P.sub.2, and a fourth link record for S.sub.2, wherein said first link record indicates the identity of all objects to which P.sub.1 is linked and the nature of the link(s), said second link record indicates the identity of all objects to which S.sub.1 is linked and the nature of the link(s), said third link record indicates the identity of all objects to which P.sub.2 is linked and the nature of the link(s), and said fourth link record indicates the identity of all objects to which S.sub.2 is linked and the nature of the link(s).

18. A distributed object based computer system as recited in claim 17, wherein each of said link records is stored in the same storage domain as its corresponding object.

19. A distributed object based computer system as recited in claim 13, wherein said linking means includes means for linking only a part of an object to another object.
 Description Submit all comments and votes
 


FIELD OF INVENTION

The present invention relates to an object based system and relates particularly but not exclusively to a distributed object based system which is accessible using a windows interface.

BACKGROUND OF THE INVENTION

The term "object based system" is used to mean a system comprising several software components or "objects".

A software object has its own data and associated methods. Objects intercommunicate by sending "messages", i.e., data, instructions, requests, etc, to one another, normally via object management software. An object is initially a data file stored on disc. If object management software wishes to pass a message to it, a process will be initiated which reads the data file as part of its initialization. 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, e.g., it can individually be moved, copied, destroyed, etc.

In this context, in the embodiment to be described, an object is something which has a unique identifier and which can be sent a message.

The term "link" can have several different meanings in relation to objects in an object based system and an introduction to some of the possible meanings follows More will be said about "containership links", other interobject links and "window links" in the specific description with reference to the drawings.

When designing an object based system, as an optimization feature it is possible to define a hierarchical classification system of class objects in which class objects lower down the hierarchy (sub-classes) "inherit" characteristics from their superclasses. An example from the field of biology is shown in FIG. 1a.

The Class Object Animals has certain data and methods associated with it which are generic to all Animal Objects. Its sub-classes, Class Object Vertebrates and Class Object Invertebrates inherit the characteristics of their superclass Animals and, in addition, each contains extra data and/or methods specific to their class and so on down the classification tree. Each of the links in FIG. 1a is an "AKO" (a kind of) link, e.g., a Mammal is a kind of vertebrate and a primate is a kind of mammal.

When it is desired to create an instance of a class, e.g., a particular Kangaroo called Hoppy, this can be done by taking a copy of a Kangaroo Class Object and specifying Hoppy's characteristics of interest, e.g., height, weight or whatever. The Hoppy Object has an "ISA" (is a) link to the Kangaroo Class Object.

Such a system reduces the amount of code needing to be written for new objects since objects automatically use generic code of superclasses (AKO Links) and relevant Class Objects (ISA Links).

As well as ISA and AKO links there may be other kinds of object links designed into a system. One known type of link is a containership link (sometimes referred to as a "parentage" or "ownership" link) which largely determines the location of an object and there need to be rules governing what happens to an object when its container is moved, copied, destroyed, etc. It is with such further types of links that the present application is concerned rather than the basic AKO and ISA links mentioned above which may be inherent in the system design.

In the embodiment to be described, these further links are bidirectional, i.e., both of the objects involved have a record of the link.

Yet another type of link is that between an object and a window viewing that object--a "window link".

Furthermore, windows may also be objects and have inter object links with other windows.

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".

As used herein, a "semantic object" or a "semantic part" of an object is an object or object part which has stored data and which is, by virtue of the stored data, persistent. A "presentation object" or "presentation part" is utilized to present to a user the data of a semantic object or semantic object part and has no persistence in the system on termination of the user session.

The term "click" will be used in this specification to denote a selection made by the user using an input device, such as a mouse.

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.

SUMMARY OF THE INVENTION

An object based computer system in accordance with the present invention comprises a plurality of objects, means for activating the said objects, graphics display means for displaying representations of the objects, linking means for sustaining containership links between a first object in a storage domain and other objects in the same storage domain and for sustaining weak links between the said first object and other objects in different storage domains.

In one embodiment of the present invention the objects include primary objects and secondary objects, wherein only primary objects can contain other objects.

In another embodiment of the present invention each object has no more than one container.

In still another embodiment of the invention the system further comprises means for sustaining either a containership link or a weak link between a primary object and a secondary object in the same storage domain as the primary object.

In yet another embodiment of the present invention the system further comprises means for automatically displaying a primary object when a user selects a secondary object that is weakly linked to the primary object.

In yet another embodiment of the present invention the system further comprises means for sustaining a weak link between a secondary object and another secondary object.

In yet another embodiment of the present invention the system further comprises means for storing in a distributed manner the identity of objects to which an object is linked together with an indication of the nature of each link.

A preferred embodiment of the present invention is primarily concerned with the organization of an object based system that has 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 by a distributed processing network that comprises a number of independent processing units each having a respective station associated with it.

The present invention is also concerned with an object based system having a plurality of storage domains supported on a single station.

In the context of the present invention, a link is a reference to another object which causes messages to be sent to the other object in certain predefined circumstances.

Weak links between objects can be of different types, i.e., they can have different effects, according to the methods of the linked objects and the nature of the data sent over the link.

Advantageously, the provision of containership links between objects in the same storage domain and a second type of inter-object link, i.e., the weak link, between objects in different storage domains enables object manipulation commands such as Move, Copy, etc, to be interpreted unambiguously and obviates the need for garbage collection.

In a preferred embodiment of the present invention, during a Move operation (which is described below) a containership link between two objects does not guarantee that both objects are in the same storage domain. Otherwise an object and its container can be assumed to be in the same storage domain. This feature is useful for performance, reliability, control and back-up purposes.

In the preferred embodiment to be described, there are certain primary objects which cannot contain other objects, e.g., the Visible Data Object (VDO) and the ChessBoard.

Preferably, each object has no more than one container. When an object is destroyed, so are all of the objects which it contains.

In the embodiment described below, a primary object can be linked to a secondary object in the same storage domain by a containership link or a weak link.

The existence of a weak link between a primary object and a secondary object may have the effect that a user selecting the secondary object causes the primary object to which it is weakly linked automatically to be displayed. This feature permits a chain of links to be constructed so as to facilitate the creation of cross-references between work items by a user and the provision of specialized facilities for the user. Examples of each case are provided below.

The system may be configured so that a secondary object can sustain a weak link to another secondary object. This feature permits greater flexibility for a user, as described below.

Preferably, the system comprises means for storing, in a distributed manner, the identity of objects to which an object is linked together with an indication of the nature of each link. This information can also be stored centrally for all objects rather than in association with each individual object.

The present invention also encompasses methods for operating a computer system comprising a plurality of software components, or objects. Methods in accordance with the present invention include the steps of sustaining containership links between a first object in a storage domain and other objects in the same storage domain, and sustaining weak links between the said first object and other objects in different storage domains.

Other features of the present invention are described below in connection with the detailed description of a preferred embodiment.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1a illustrates an exemplary hierarchical classification system.

FIG. 1 is a diagram showing the software components of a system in accordance with the present invention.

FIG. 2 shows the System Window.

FIG. 3 shows a typical Task Window.

FIG. 4 shows a Task Window subsystem.

FIG. 5 shows a dynamic link library subsystem.

FIG. 6 illustrates links between objects.

FIG. 7 is a schematic representation of links between objects in a single storage domain.

FIG. 8 shows link information for the objects of FIG. 7.

FIG. 9 depicts message transfers in the system.

FIG. 9a shows the information held by an Object Manager.

FIG. 10a illustrates a Move operation performed by a user.

FIG. 10b depicts the objects involved in a Move operation.

FIG. 11 shows a secondary object being linked to a primary object by a user.

FIG. 12a illustrates a Copy operation performed by a user.

FIG. 12b depicts the objects involved in a Copy operation.

FIGS. 13 to 30 are screen representations.

DETAILED DESCRIPTION OF A PREFERRED EMBODIMENT

The embodiment to be described is a distributed object based office system which has a user interface of the graphical, direct manipulation style. The system presents the user with objects on a Desktop and the user can change these objects, rearrange them, create new ones and move objects between containers on his own Desktop and other users' Desktops.

The main components of the system will now be described.

System Components

Referring to FIG. 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 the objects is a set of data tied to an MS Windows executable file. 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.

Generally, 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, e.g., the ChessBoard and the Visible Data Object (VDO). Certain primary objects can also contain primitive information, i.e., data, e.g., text, image, etc.

Primary objects have an icon which consists of a small picture representing the primary object and a title. The icon, or miniaturized 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 view the 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 miniaturized (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

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, i.e., not stored to disc whereas semantic objects are 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. FIG. 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 (NOVA) or exiting.

Each user has up to seven Task Windows at their disposal. The user can control the size and position of a Task Window as well as choosing which object the Task Window is to view. FIG. 3 shows a typical Task Window 32. The title 33 of the Task Window 32 shows the name (Desktop) of the object which the Task Window 32 is viewing and the name of the machine (RS/20) on which that object resides. The Task Window 32 has a menu bar 34 which has a "GOTO" pull-down menu and may have other pull-down menus depending on the type of object being viewed. In the example of FIG. 3, the Desktop object is seen to contain three objects--Colleagues, Supplies and Bin.

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 at their disposal. 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 Color

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. 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.

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 to be 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.

FIG. 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 l