CA2076463C - Method and system for identifying users in a collaborative computer-based system - Google Patents

Method and system for identifying users in a collaborative computer-based system

Info

Publication number
CA2076463C
CA2076463C CA002076463A CA2076463A CA2076463C CA 2076463 C CA2076463 C CA 2076463C CA 002076463 A CA002076463 A CA 002076463A CA 2076463 A CA2076463 A CA 2076463A CA 2076463 C CA2076463 C CA 2076463C
Authority
CA
Canada
Prior art keywords
user
cursor
data object
computer
shared data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CA002076463A
Other languages
French (fr)
Other versions
CA2076463A1 (en
Inventor
Cary L. Bates
Jeffrey M. Ryan
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CA2076463A1 publication Critical patent/CA2076463A1/en
Application granted granted Critical
Publication of CA2076463C publication Critical patent/CA2076463C/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management

Abstract

The method of the present invention may be utilized for providing identification of blocks of text or other portions of a shared data object in a collaborative computer based system. The collaborative computer based system includes a plurality of workstations. Each workstation includes an output display device and a user input device. The system includes a shared data object, simultaneously accessible by a plurality of users of the system. Responsive to a user obtaining access to the shared data object, the user is assigned a cursor for display on the visual display devices of other users. The assigned cursor has a user related visual characteristic. Responsive to user selection, previously unselected portions of the shared data object may be associated to a user. Upon such association of a portion of the shared data object, a user related visual characteristic of the establishing user is extended to the newly associated portion. Further, a second visual at tribute is extended to the object to identify the nature of the association, such as whether other users are to be locked out of modifying these associated portions.

Description

"

;~i~u~ AND SYSTEM EOR IDEN~IFYING USERS IN A
COLLAB~RATIVE (;~ Lr.~-BAS~D ~Y ~1L. .

BACKGROUND OF THE INVENTION

1. Technical Field:

The invention relates to collaborative computer system and more particularly to a collaborative editing system for ~hared data' objects. Still more particularly, the invention relates to a modified What You See Is What I See (WYSIWIS) interface for a collaborative editor.
2. Description of the Related Art:

A collaborative system may be defined as a real-time computer based environment coordinating individual efforts toward completion of a task. The task or subject of a group s attention may be a document, a production schedule, a computer program, a product design, or even a still or full motion video image or other multimedia related task solution of which is represented by the organized expression of information. Construction of that expression is presumed aided by the efforts o more than one person and particularly by the simultaneous efforts of more than one person.

A computer network i9 typically the vehicle for coordinating work. The subject of the work is typically structured as one or more shared data objects stored in memory accessible over the network. The machine for constructing the data object is software, such as a text editor or data base management facilities. The user accesses the shared data object. through multiuser interface facilities supported by the network. I

A shared data object is one which is simultaneously accessible to a plurality of users over the network. Such data objects can include, for example, word processing documents and spread sheets. A shared data object is a data object to which more than one user at a time is permitted some type of access.
,~' .
Thus, a common issue facing designers of collaborative systems is the type of concurrent access permitted each of a plurality of users. This core issue has a number of subsidiary issues. User access can be limited to the ability to read an object, but more commonly includes some rights to manipulate or change the object. For example:
Who among the users is permitted rights to change the data object? Shall each user be shown the same representation of the data object? How free are users to be in changing their viewpoint of the shared data object?

A user has access to a shared data object through a multiuser interface. The interface typically includes a video monitor under the control of the user s local workstation, through which views of the shared data object are displayed. The interface is supported by software allowing multiple simultaneous access to an object with the right to manipulate the contents of the object. The general characteristics of one category of common multiuser interface are referred to as the What You See Is What I See ~WYSIWIS) concept. In strict form. each user sees exactly the same thing~ from the same viewpoint, with each user being given apparent immediate rights to manipulate the shared object. All user cursors are simultaneously displayed. Updates are transmitted to each participant, allowing the participants to see what is being done as it is done. In practice the WYSIWIS concept is partially relaxed.

For example, users are typically permitted to select their point of view. User selected points of view are known as private views of public objects. In a word processing document a user selects the portion of thel document of current interest to tha-t user as a private view.

While the WYSIWIS concept has been relaxed for convenience sake, it has also been relaxed as a concession to limits in the technology. Consider the example of collaborative worlc on the text of a word processing ~ R09-91-061 2076463 3 document. Each user having current access to the document has a window generated on the video monitor of his or her local workstation, with text taken from the document reproduced in the window. Each user will have one text cursor, indicating the point in the document where the user may make changes. In strict WYSIWIS, all text cursors are to be displayed. In practice, -the inability to distingtlish ownership of a cursor or other sections of the document associated with a. particular user on sight has proven confusing, ' sometimes requiring suppression of private cursors or sections of a document, except the user s own, from a user s video monitor.

Conflicts or collisions i.n user actions, such as simultaneous attempts to change the same word in a word processing document, can also cause problems. In strict WYSIWIS, conflicts are allowed to occur. Each user is given an impression of immediate accessibility. In a setting where the workstations are all in one room, or a form of teleconferencing is occurring, permitting such collisions may be tolerable because the participants can settle the dispute by conversation. Col].isi.ons are much less tolerable where the usual communication between users is that which is implied by changes in the shared document, or where the shared document is complex, such as a graphical image or other use of multimedia +.echnol.ogy~ .or where multiple users are actively editing the same docttment concurrently.

SUMMARY OF THE INVENTION

Thu~ it is an object o the invention to provide a method of enhancing cooperative work in a collaborative computer system.

It is another object the .invention Ito provide a collaborative editing system :~or shared data objects.

It is yet another object of the invention to provide a modified What You See Is What I See (WYSIWIS) interface.

R09-91-061 207~463 4 It is stil] another object of the lnvention to provide a method for tagging ownership of areas associated with a particular user, as well as both cursor and user established lock regions within a shared data object.

The foregoing objects are achieved as is now described.
The method of the present invention may be utilized for providing identification of blocks of text or other portions of a shared data object in a collaborative computer based system. T~e collaborative computer based system includes a plurality of workstations. Each workstation includes an output display device and a user input device. The system includes a shared data object, simultaneously accessible by a plurality of users of the system. Responsive to a user obtaining access to the shared data object, the user is assigned a cursor for display on the visual display devices of other users. The assigned cursor has a user related visual characteristic. Responsive to user selection, previousli unselected portions of the shared data object may be associated to a user. Upon such association of a portion of the shared data object, a user related visual characteristic of the establishing user is extended to the newly associated portion. Further, a second visual attribute is extended to the object to identify the nature of the association, such as whether other users are to be locked out of modifying these associated portions.

The above as well as additional objects, features, and advantages of the invention will become apparent in the following detailed description.

BRIEF DESCRIPTION OF THE DRAWINGS

The novel features be]ieved characteristic,;of the invention are set for~.h in the appended claims. The invention itself however, as well ~8 a preferred mode of use, further objects and advantages thereof, will best be understood by reference to the following detailed description of an illustrative embodiment when read in conjunction with the accompanying drawings, wherein:

Figure 1 is a pictori.al view of a local area network with which the invention is advantageously employed;

Figure 2 is a pictorial view of a window generated by computer graphics system to support the user interface of the invention;

Figure 3 is a pictorial view of a window opened to a target textual obje,ct for editing;

Figure 4-7 are pictorial views of a window opened to a target graphic al object as the window is edited;

Figures 8A-8C are pictorial views of windows opened to select lock modes and user selectable regions for utilization with the system and method of the present invention;

Figure 9 is a pictorial view of a window for a user interface relating to control features of the present invention;

Figure 10 is a pi.ctorial vi.ew of a window for a user interface relating to control features of the present invention;

Figure 11 is a block diagram of a :Local area network illustrating distributioll of data objects supporting the system and method of the presenl, invention;

Figures 12A and 12B are depictions of data records used in practicing first and second embodiments, respectively, of the present invent.ion;

Figure 13 is a high level flow chart de~icting access by a client to a collaborative data processing system;

Figure 14 i 5 a high level flow chart depicting operation of a collaborative editor at a client terminal incorporating the method and system of the present invention;

R09-91-061 6 207~63 Figure lS is a hiah level flow chart depicting operation of a collaborative editor at a server incorporating the method and system of the present invention;

Figure 16 is a flow chart depicting operation of the collaborative editors of Figure~ 14 and 15 relating to response to a command received from a u~er of the system;

Figure,s 17A and 17B are a flow chart relating to update of a cli.ent display in a group editing system provided by the present invention;

Figures 18A and 18B are flow charts relating to determination of whether a cu.rsor position is locked against editing through that cursor in first and second embodiments of the invention;

Figures l9A and l9B are flow charts relating to first and second embodiments of the ;nventiori, respectively, providing for updating of c~lrsor associ.ated lock regions within a shared data object.;

Figures 20A and 20B are flow charts relating to first and second embodiments of the invention, respectively, providing for user se].ection of re~i.ons wi.thin a shared data object;

Figure 21 i.s a flow chart relating user establishment of a lock region from a select region;

Figure 22 is A flow chart relating to user designation of a select region as an associated region;

Figure 23 is a flow chart relatlng to removal of a lock or association deslgnation from a regi.on; and Figures 24A and 24~ ~re 1.ow chart.s relating to first and second embodiments of the .invention providing for detection of lock conflic.t determi.rlations made upon attempts to select a region.

~ R09-91-061 7 2 0 7 6 ~ 6 3 DETAILED DESCRIPTION OF T,~E INVRNTION

With reference now tc~ the figures and in particular with reference to Figure l, tllor~ is depicted a pictorial representation of a local are ~ network which may be utilized in accordance with the method of the present invention. Local area networl~ 8 supports a collaborative computer based editing system relating to a data object stored on a server. Local area network 8 provides data communicati.on over a transmission channel l0 between a plurality of personal computers 1.2. Computers 12 within the depicted system are preferab].y prov.ided by util.izing an IBM~
personal computer, an IBM Personal System/2~ or other similar system. As those skilled itl this art will appreciate, computers 12 generally include a keyboard for receiving user inputs in a video ~isplay device to send messages to the user of the local araa network. One of computers 12 operates as a server for the network 8. The server may, for example~ he a ]arger computer such as the IBM Application System/400~. -Figure 2 depi.ctæ a pictoriAl representation of a windowincluding examples of featureæ of a multiuser interface supported by the present- invention. ~1indow ~8 is a conventional window as would appear on a di.splay screen on a computer 12. A locally generated mouse pointer 22 is available for operating contro] feat~lres of the window.
Window 18 includes a tJtle bar 2~ identifying the shared data object accessed by the nser. Di.æp]ay fi.eld 27 exhibits a private view 28 of a shared data object. Cursors 20 and 26 also appear in diæplay fielcl 27. Cursor 20 is a cursor assigned the user of priv~t.-.~ view 27. Cursor 2~ is a cursor assigned another user who has access to the same shared data object and who, at least in part., is acceæsing a po,rtion of the shared data object extending i.nto private view 28.
Cursor 20 responds position~].]y to movement commands generated by the uæer. Cursor 2~ wi].]. move about the screen and possibly out of the display field 27 depending on commands from a remote ælte. ~Shared data object may be a word processing document represented in portion by lines of R09-91-061 8 207~463 text reproduced in display field 27, but could also be a graphical image or other tyPe of document.

Cursors 20 and 26 have disp]ay attributes resulting in visually distinct appearances~ indicated by the solid shading of cursor 20 and the cross-hatching of cursor 26.
In the preferred embodi.ment~ the cursors appear in distinguishing colors.

Figure 3 is a pictorial view of a window 102 generated on a user display device. A text editor function is associated with window 102. Within a display field 104 is a private view of a target textual object. A user may edit the target textual object by positioning his or her assigned cursor 108 at the point at which the user wishes to make a change or to add material. Cur60r 108 appears embedded in a floating, transitory lock region 106, which extends to the word or word equivalent object in which the cursor is currently located. Cursor 108 and lock region 106 appear as colored areas on a color monitor. with the particular colors of the cursor and lock region and the background appearance of the lock region indicating the owner of the cursor and the lock regi.on~ as we]l as the t,ype of lock region.

" ' A region l10 is marked by coloring unique to a particular user to indicate ~ome association with that user.
Region 110 may identify ownersh;p~ or it may be locked against editing by other users. The second user cursor 114 appears in the view o disp],ay field 104, embedded in a floating lock region 1]2, Again cursor 114 and lock region 112 are of uni~ue colors, identifying the owner of the cursor. Region 110 may be as.sociated with the owner of cursor 108,C114, or some third ctlrrent or past client of the collaborative editor. ;~

Figure 4 is a pictorial view of a windowl116 opened to a shared graphical object for editing using a collaborative graphic editor. ~hree users, represented through cursors 130, 138 and 140, appear in the view of the shared graphical object appearing in display field 117, A plurality of sub-objects appear in the view including a text segment 118, R09-91-061 9 207~6~

a line drawing 120 of a train, a second text segment 1~2, a line drawing 123 around spacecraft object 124, moon object 125, space traveler object ]26 and planet object 127, as well as a third text segment 128. ~ visual attribute of each region, or its border, indicates some associational status between the region and a user. Regions 142, 134 and 123 are user selected regions and may be cancelled by their respective establishing users at any time. The user selected regions may be locked against manipulation by other users, or may be u6ed to mere]y indicate ownership.

Each user cursor 130, 138. and 140 has its own distinguishing color. Each cursor appears within one of cursor lock regions 132, 136 and 144, which also have di~tinguishing visual attributes, preferably a unique color.
Again, the cursor lock reglons are floating and transitory, arising when a cursor is free of the user selected region or cursor lock region of another. The shape and size of cursor lock regions are selectable by the user. For example, the owner of cursor 138 has se]ected a circular cursor lock region 136, while the owner of ctlrsor 140 has selected a square cursor lock region .L44. Tlle owner of cursor 130 has selected an object lock regio~ 2 which takes on the shape of underlying object 1.~5.

Figure 5 is a pictorial Vi ew i. llustrating entry of a fourth user, represented by cu~sor 146, to the view of display field 117. The user ~f ~ursor 146 has initiated selection of a new regi.on by qenerati.1lg a select point 145, indicated by an "X" displayed ill display field 117. Cursor 146, like other cursors, is identified as to i.ts user by a color . It is surrounded by a square cursor lock region 148, which is also identifie~ by color as to owner.

Figure 6 is a pict.orial view i.l].~strating completion of a select region by the user of ctlr~or 1~6. By selection of a second select point 147 and by request of construction of a rectangle, a select region 15() i.s pai.nted to display field 117. Select regi.on 150 is indicated by close hatching in the figure, and like other user associated regions, has some visually distinguishing attribute to identify it to other 2~7646~

users as to owner and type. A display style is preferred for making this indication.

Figure 7 is a pictorial vlew illustrating selection by the user of cursor 146 of an associational type for select region 150. Again, such a type may be simple "ownership" or creation of a user select lock regi.on. The associational change is indicated by a change in the visual attribute, or display style, of the region, here for a user select lock region 151~ Different types of associations may also be given different visual attribtltes sllch as different forms of cross-relating or color shading.

Figures 8A-8C are pictorial views of two windows 152 and select mode window 154 opened to control features for selecting cursor lock mode parameters. Referring to Figure 8A, through display field 153 and mouse pointer 22 a user may select to have a lock region automatically at-tach to his or her assigned cursor in a text application by selection of the ON or OFF buttons. Upon selection of automatic association, the user selects a mode of lock. Character, word and line modes are gene ra]]y appropriate for text editing. Although one being skil]ed in the art will appreciate that other modes such ~s sentence, paragraph or page may be utili~ed. Eigllre ~ depicts the selection of a lock region for an image or graphics application. For example, selection of the "POr,Y~ON" button is a mode typically more approprial:e ~r pictorial or graphical editing. The "user defined" mode points a user to define an irregular lock region by specifying various vertices.
Alternatively, an object ContainJng graphical or textual information may be selected as a lock region by selecting the "OBJECT" button. Similar]y, a user may select the "SQUARE" or "CIRCI.E" buttons to elect a ].ock region ln those shapes.
, - Figure 8C shows how a user may define various shapes for a select region. Display field 155 of window 154 includes three buttons selectable by mouse, a "SQUARE"
button, a "CIRCLE" button and a "POLYGON" button. Selection of any of the three requires identif;cation of certain parameters, such as radi.uæ for a circle. A plurality of boundary points will need to be speci.fied for the POLYGON
selection. After specifying a select mode in this manner, subsequent select operations by that user will take on the shape specified by the chosen select mode.

A network server generates defau]t colors for the cursor assigned each user upon log on to the system.
However, the system affords a user the right to locally modify the interface in a number of ways. Such modifications are supported through window 34 of Figure 9 and window 40 of Figure 10. As il]ustrated in Figure 9, a window 34 is labelled in its name bar 36 for "Local Display Options." Four selections are provided relating to color mode 38. The selections are: full. where each user receives a distinct color; "two color", which provides one color for the user s own cursor and another color for all other user cursors; a "grey scale", which varies the intensity of each cursor on a monochrome screen; and a "fill pattern", which uses backgrounds such as hatching, parallel lines or flashing to distinguish one cursor from another.
The color mode se]ected extends to user selected and defined association of lock reglons ~s they occllr within the shared data object and to the cursor assjglled a user.

A palette option 39 relates t.o a selection of colors in the full color mode. The defalllt buttotl invokes the system established colors. A custom palette button generates window 40 illustrated in Figure 10. In window 40, a user can select new co].ors for each IISer. Color selection allows those who are partially color blind to select a palette of distinguishing colors. A user/color table 44 appears in the display field of window 40. Upon selection of a particular user, a particular color may be selected from co~or wheel 46. The intensity of the color may be varied by manipulating a scroll bar 50. Selection is made by button from amend buttons 48. Buttons 48 also include a cancel button and a default selection hutton, which restores the originally assigned color to a partlcular user.

Rog-gl-061 2 0 7 6 4 6 3 12 ~ igure llA depicts a block diagram of local area network 8 for supporting a collaborative computer based editing system 6 in the preferred embodiment. Server 12 communicates with computers 12.a-12n over a communications channel 10~ Local area network 8 is depicted in a token ring geometry however other geometries are possible.
Server 12 is a conventional computer such as an IBM Personal System/2 or AS/400~ system programmed to practice this invention and includes a central processing unit 60 a memory 64 ,and a network adapter 6~ for formatting outgoing transmissions and for deformatting incoming transmissions.
Server 12 includes a hard drive Ulli t 56 storing a plurality of shared data object~ pending a requeæt for access by one or more users. Such a request res~llts in the transfer of the data object to compu~er memory 64 over data bus 58. A
number of objects exist withln memory 64. An operating system and local area network server 66 are represented as one object. An editor program 68 an association/lock list 70 and a cursor list 72 are associated with a particular edit object here a irs1 edit object 7~ to provide a cooperative machine for generation and modification of the shared data ob~ect. Addi1:iona] edit objects may simultaneously exist.

Users access the shared data objects through computers 12a-12n. Computer 12b i8 a typic~l example. A computer 12b operates as a personal workstat.ion communicating with computer 12. Schematica].ly tlle personal workstation 12b is substantially similar to computer 1~ and includes a network adapter 78 a display adapter 8~ a hard drive unit 90 a central processing unit (CPU) 82 and an addressable memory 88. Components of per60nal work~station 12b transfer data over a data bus 83. ~PU 82 directly controls input peripherals 80 which may include a keyboard and a mouse.
Display adapter 84 drives a djsplay device 86 upon which windows are generated. Memory 88 includes alreplica 92 of document 71 accessed by the user of personal workstation 12b. Replica ~2 is accessed to change a user s personal view of the shared datfl object without the necessity of burdening network lO for transfer of the data to support the ~_ R09-91-061 2 0 7 6 4 6 3 13 private view. Also present is a command structure 94 for use in establishing a communications session on network 8.

The machine for effecting changes in first edit object 74 are its associated editor 68, association/lock list 70 and cursor list 72. Document 71 constitutes association/lock list 70, cursor list 72 and a target edit object 74. Cursor lis1: 72 is a record of each user currently accessing the first edit object 74.
Associatio~/lock list 70 incl-ldes Jock regions generated by a movement of a cursor into an unlocked area of edit object 74 and those lock regions as have been eætablished by users as well as other regions associated with users. Cursor list 72 is updated whenever a new uæer accèsses edit object 74 or when a user logs off an edit object. Entry records in association/lock list 70 may vary with movement of cursors and with the exercise of select and deselect operations by users. An association/lock record includes a start point, an end point, an association type and a user identification.

Figure llB depicts a block diagram of an alternate embodiment of supporting collaborat:ive computer-based system 6. Figure llB is sim;lar to ~igure llA, except that replicas 92 of document 71 for clients 12A-1^-2C are contained in memory 64 and executed within server 12.
Input/output processor 61 communicAtes with a plurality of non-programmable workstations (NWS) 85. In this embodiment, ~erver 12 becomes a single computer .system running multiple processes~ such as an IBM Applicat]on System/400 attached to multiple non-programmable workstations. Each non-programmable workstation ~5 has a corresponding replica 92 in memory 64.

Figures 12A and 12B illustrate data records 1,60, 162, 164 and 166 used in practicing first and second embodiments, respectively, of the invention. The embodiments relate to collaborative text editing and collaborative graphical or pictorial editing.

The current user list for a collaborative text editor includes a list of pointers to cursor records 160, one of ~ R09-91-061 2076463 14 which is illustrated in detail. One cursor record exists for each current user. A record 160 includes a unique identifier for the cursor. A current position record indicating the line of text and the offset within the line for the cursor is maintained, subject to update with each command resulting in a change of position. Record 160 includes two related fi.elds utilized in selection of a new region for locking or other purposes. A select on field is a flag indicating. a select region is active. A select region is ~ freshly identified region not identified as to associational type. The select lock field is a pointer to a record for the se]ect region.

- The user lock list is a list of pointers to lock records of regions which are locked against other users.
The cursor lock is field containing a pointer to a lock record for the floating lock associated with the cursor. A
pointer may or may not be present. Finally, an Association region list is a collection of fi.elds containing pointers to "as~ociation/lock" records which are associated in some way with a user, other than by being locked against manipulation by other users.

Record 162 is characteristic of such Association/Lock records. The record includes the identification number of the owning cursor. The association type is identified, e.g.
select lock, user lock, cursor ]ock, ownership, etcetera.
~ields are provided to identi.fy the beginning and end of the region, in terms of line and offset.

Figure 12B illustrates data structure records utilized for a collaborative graphics editor. The current user list for a collaborative graphics editor includes a list of pointers to cursor records 164, one of which is illustrated in detail. One c-lrsor record exists for each~current user.
A record 164 includes a unique identifier for the cursor. A
current position record indicating the X-axis and Y-axis coordinates in the graph or picture for the cursor is maintained, subject to update with each command resulting in a change of position. Record 164 includes two related fields utilized in selection of a new region for locking or R09-91-061 2 0 7 6 4 6 3 ~-5 -other purposes. A select Otl field is a flag indicating a select region iæ active. A select region is a freshly identified region not identified as to associational type.
The select lock fie]d is a pointer to a record for the select region.

The user lock list is a list of pointers to lock records of regions which ~re locked against other users.
The cursor lock is field containing a pointer to a lock record for,the fioating lock associated with the cursor. A
pointer may or may not be present. Finally, an Association region list is a collection of fields containing pointers to "association/lock" recbrds which are associated in some way with a user, other than by being locked against manipulation by other users.

Record 166 is characteristic of Association/Lock records for a collaborative graphics editor. The record includes the identification number of the owning cursor.
The association type is identified, e.g. sélect lock, user lock, cursor lock, ownership, etcetera. A field identifies the shape of the region~ including squares, circles and user defined polygons. A ordered list of defining points, i.e.
vertices, are maintained for the region. The list-ordering i8 provided to identify the seyuence of points connected by the boundary line of the polygon.

Figure 13 is a high ].evel fLow chart illustrating access by a client to a collaborative editing system of either the text or graphics~'pictorial type. The initial state of the system is to have a server waiting for client requests for connection (block 200~. The server is normally blocked and requires little in the way of computation resources of the host machine. Upon a user re~uest, a connection is established. ~ecisio1l block 202 reflects that the user may be a pseudo user, utilized to palss a terminate command to the server by sett.ing ~ terminate flag. The YES
branch from block 202 reflects such a f].ag. More typically however, an actual user is connected, resulting in execution of block 204, which is establishment of an Asynchronous R09-91-061 207~63 Client Manager for the requesting client. The client manager is illustrated in Eigure 15 below.

Referring now to Figure 14 there is depicted a high level flow chart depicting operation of a collaborative editor for either text or graphics app].ication at a client.
The process begins at block 206 with identification of a shared document to edit. Next, at block 208, the client contacts the server and requests the document identified at block 206.' The transmission out of the recluest is indicated by the letter "A". Receipt of the transmission by the server, also indicated by the letter "A", was indicated at block 200 of Figure 13 above. At block 210 the client receives its copy of the document from the server, indicated by the letter "B". The document includes a target object for editing, the cursor list~ cursor records, and association/lock records. The documellt is stored in the client memory. Finally, at block 212 a local editor is initialized. Editing can now begin.

Next, decision block 214 is uti].ized to determine if an input has been received from a user. If so, decision block 216 is utilized to determine if -the command was valid or not. If the command is not valid. the process warns the user from block 218 and returns to block 214 analyze the next user entry. If the command is valid, block 220 is utilized to transmit the edit command to the server. The transfer point between the local editor program and the server editor program is i.ndicated by the letter "C".

Next, response of the local editor to valid commands is detailed. First, block 215 illustrates a determination of whether or not a new cursor has been received from the server, indicated by transfer point "F." If so, the cursor is added to the local dGcumellt~ as depicted at block 217.
If no new cursor is received from the server, the process passes to block 222 where a determination is made as to whether or not an edit command has been received from the server. Edit commands can originate either locally or from another user. However, no edit commancl is acted upon until received by the client from the server. Accordingly, blocks ~ RO9-91-061 2076~63 17 214 and 222 are repeatedly executed for the purpose of identifying commands for transmission to server and for receiving commands from the ser~er.

Upon return of an edit command from a server editor, indicated by an transfer point, "D"~ hlock 224 is utilized to perform the command on the ].oca] document. It will become clear from the discussion below that such commands can come from client managers for othet users. The operations occurring i,n block 224 are explained in detail below with reference to Figures 16-24. They include edit operations, region association operations, c~lrsor movement and other steps. Decision block 226 is utilized to determine if the command is a quit command or an exit command. If so, the process passes to block 227 which illustrates the deletion of the owner s cursor and block 229 depicts a determination of whether or not the cursor deleted was this client s cursor. If not, the process returns to block 214 to await the next command. tf the cursor deleted was this client s cursor,- block 228 is utilized to close the local document and to perform any other loca] cleanup functions, after which the local process is discont;.nued. The MO branch from block 226 returns to hlock 214 and the process awaits the next command.
" ., Figure 15 is a high ]evel flow chart depicting a client manager and collaborative editor being processed at the server. The process begins at b]ock 230, which is utilized to determine if the request target object or document is currently being edited by anyone e]se. If not, block 232 is utilized to open the document and to initialize the appropriate data structures to support collaborative editing. Once an open document is obtained, or if it already existed~ block 234 is utilized to create a cursor record for the new user A copy of the document, including the updated cursor records and ].ock records, Lf such exist, is downloaded to the client terminal, indicated by the transfer point "B ". The new cursor is distributed to all other clients, as indicated by fan-out point "F." Block 236 reflects addition of the new user to the list of clients accessing the document.
, . . . ~ . ~

( R09-91-061 2 0 7 6 4 6 3 18 .

Management of client access -to the target ob~ecl within the document begins at block 238. Upon receipt of an edit command from the client, indJ.cated at exchange point "C", the process utilizes bLock 240 to obtain a semaphore to the server version of the document. Upon obtaining the semaphore, the cli.ent manager has exclusive access to the document files. Access by clients to the document is thus serialized to preserve consistency. Block 242 may now be utilized to perform an edit operation on the server version of the document. These operations are explained in detail below with reference to Figures 16-24. Next, block 246 is utilized to distribute the edit command to the all of the clients attached to the curl^ent document for parallel operation on local versions of the document, as indicated at fan-out point "D." As will now be clear, the client editor depicted in Figure 14 may receive edit commands from a plurality of client managers. Next, block 248 reflects determination of whether last edit command was a quit originating with this client manager s client. If not, the process passes to block 250 which illustrates the release of the semaphore to the document.
.

A client instruction to quit results in utilization of block 252 to remove the client rom the list of clients attached to the document and in deletion of the client s cursor record. Block 254 is lltilized to determine if a client was the on].y remaining cllent attached to a document.
If yes, block 256 is uæed t:o close the document and to perform any required cleanup steps. Next, block 257 illustrates the release of the semaphore for the document.
The client manager for the withdrawing client only is closed.

Figure 16 illustrates operations occurring a,~ blocks 224 and 242 of a client editor running on a local terminal and a client manager running on a server, respectively. The operations are largely paralleJ, how ever, such differences as exist are noted. Referring now to Figure 16, a flow chart depic~ing operati.on of the collaborative editor i8 depicted. The process i.s initiated at block 258 upon receipt of a command and a cursor wi.th which to execute the :; ROg-gl-06l 2076463 ~9 command. Block 260 is utili~ed to determine if the command is one which wi.ll modify the target object of the document in some way.

If a command is one which modifies the target object, block 262 is utilized to determine if the cursor is located at a position in the target object which is locked aqainst that cursor. If not, block 264 is uti.lized to perform the applications command which modifies the target object. This may involv~ commands similar to commands utilized by a graphics editor, such as Coral DrawtM, available from Correlates Corp., or any one of a number of text editors and may include save and edit commands. Appropriate modification of the display is made if the operation is in the client editor s view. Where the target object is locked, the change is not entered and the process is returned to the client editor or client manager, as appropriate. Determination o target object lock status is explained below with reference to Figures 18A and 18B.

Commands which do no1 modify the target object of a document include commands controlling cursor movement and commands involving selection and deselection of regions of the target object for ]ocks or other association- status.
Also among such commands are saves of the target object and quit commands. However, the first group of commands are of primary concern here. Following t:he N0 branch from decision block 260, decision block 266 is utilized to determine if the command was one to move a c:ursor. If so, block 268 is utilized to perform the cursor movement, i.e. to update the cursor record 160 or 164 for the cursor. Next, if the process is operating on a client editor, the display is updated to reflect the new cursor position (See Figures 17A
and 17B). Next, at step 272 t:he cursor lock is updated (for detail se~ Figures l9A and l9B). As explained below a cursor lock may ol^ may 1ot be returned depe~ding upon the new location of the cursor. The process is then returned to the client editor or manager, as appropriate.

If the command was not a cursor movement command, the N0 branch from decision block 266 advances the process to i~ R09-91-061 2 0 7 ~ 4 6 3 20 decision block 274. Block 274 is utilized to determine if the command i8 a select command, which is utilized to identify a portion of a shared data object for some form of association with a user. If so, block 276 is utilized to perform the selection operat.ion (See Figures 20A and 20B
below).

If the command was not a select command, the N0 branch from decision block 274 advances the process to decision block 278.~ Block 278 is utilized to determine if the command is a lock command~ wllich is utilized to convert a select region to a user se]ect lock region in a shared data object. If so, block 280 is utilized to perform the lock operation (See Figure 21 below).

If the command was not a lock command, the N0 branch from decision block 278 advances the process to decision block 282. Block 282 is utilized to determine if the command is an unlock command~ which is utilized to remove a user select lock region in a shared data .object. If so, block 284 is utilized to perform the unlock operation (See Figure 23 below).

If the command was not an unlock command, the ~D branch from decision block 282 advances the process to decision block 286. Block 286 iæ ~Iti.lized to determine if the command ls an associate command. which is utilized to convert a select region to a user association region in a shared data object. If so, b]ock 288 is utilized to perform functions similar to those described above with respect to block 264, including save and edit commands. (See Figure 22 below).

Execution of the rema:ining possible commands, which do not implicate conflict with lock regions, is provided for by utilization of block ~88 to carry out the Icommand. All operations of the process end in return to the client editor or the client manager as appropriate.

Figures 17A and 17B relate to the process of updating a display on a local termina].. Generally no display is R09-91-061 2 0 7 ~ 4 6 3 -provided at a server. A display update occurs after modifications to the document, after a cursor move command, and afte~ an operation relating to user association regions.
The flow chart of Figures ~7A and 17B relates to the latter two cases and may be presumed to be executed after the operations contemplated by blocks 276t 280, 284, or 290.

The process of updating a display begins at decision block 292, which begins again the process of identifying the nature of the edit command received. Decision block 292 is utilized to determine if the command was a move cursor command. If so, a series of blocks 294, 296, 298, 300 and 302 are utilized to identify the owner of the cursor, to determine the color for the owner, to determine the new position of the cursor, to remove the old cursor and to di~play the cursor at its new position in the designated color.

The process of updating a display continues at decision block 304. r~ecision b]ock 304 is utili~ed.to determine if the command is to select a region. I so, a series of blocks 306, 308, 310, 312 and 3~4 are utilized to modify the region to identify it as select.ed and to identify the selecting user. The block.s specifically provlde for identifying the owner of the select region, recovery of a color for the owner, recovery of a "SELECT" display style, determination of the region itl the display for which modification of the appearance is required and, finally, painting the region us;ng the owner s co].or and the SELECT
display style.

The process of updating a display continues at decision block 326. Decision block 326 i.s utilized to determine if the command is a command to lock a region. If so, a series of blocks 328, 330, 332, 334. 336 and 338 are utilized to modify the region to identify it as locked a~d to identify the owner. The blocks speciflcally provide for identifying the owner of the lock region, recovery of a color for the owner, recovery of a "LOCK" display style, determination of the region in the display for which modification of the Rog-gl-061 2 0 7 6 4 ~ 3 appearance is required and, finally, painting the region using the owner s color and the LOCK display style.

The process of updating a display continues at decision block 340. Decision block 340 is utilized to determine if the command is a command to unselect or to unlock a region.
If so, a series of blocks 342, 344, 346 and 348 are utilized to restore the region to a "normal" appearance. The blocks specifically provide for recovery of the normal display color, reco,very of a normaL display style, determination of the region in the display for which modification of the appearance is required and, finally, painting the region using the normal color and display style.
"
~ Referring to Figure 17B, the process of updating a display continues at decision block 350. Decision block 350 is utilized to determine if any other associations are "ON"
in a view. If so, a series of blocks 352, 354, 356 and 358 are utilized to modify the region to .identify the association and to identify the its owner. The blocks specifically provide for recovery of a color for the owner, recovery of an appropriate display style, determination of the region in the displ.ay for which modification of the appearance i8 required and, finally, painting the region using the owner s color and the appropriate association display style.

The process of updating a display continues at decision block 360. Decision block 360 i.s utilized to determine if associations are off for regions in a view. If so, a series of blocks 362, 364, 366 and 368 are utilized to display the , . . ,, ~, ~. , regions in a "normal" appearance. The blocks specifically provide for recovery of the norma] display color, recovery of a normal display style~ determination of the region in the di.splay, and painting the region using the normal color and display style. After completion of a ~isplay update proces~ing is returned to the appropriate location in the local editor.

Figures 18A and 18~ are flow charts relating to determination of whether a cursor is locked against editing , -, ....

~ RO9-91-061 207~63 at its current position. The figures relate to first and second embodiments of the invention, that is a text editor context and a graphics or pictorial editor context, respectively. Referring to Figure 18A, which relates to a text editor, the process begins with utilization of decision block 370 to determine if association/lock records, including cursor lock records, exist which have not been examined. If not, no lock blocks the operation requesting the determination and the process is returned. If records exist howev1er, they must be examined. Next, at block 372, the next record is recovered. Decision block 374 is utilized to determine if the record is a lock type, including user locks, select locks or cursor locks. If not, the record is irrelevant and the process returns to block 370. If the record is a lock type, decision block 375 is utilized to determine if the user is the owner. If so, the record is irrelevant and the process returns to block 370.
Finally, decision block 376 is utilized to compare the position of the cursor and the start and end points of the lock record. If the cursor lies between the start and end points, a lock blocks use of the cursor to modify the document or to establish a select point. A locked indication is returned to the host process. If the cursor lies strictly outside of the start and end point~ of the record, the lock is not effective at the cursor position.
The process returns to block 370 for evaluation of the next record. Only upon clearing al] records is a not locked indication returned.

Referring to Figure 18B. which relates to a graphics editor, the process begins with utilization of decision block 378 to determine if association/lock records, including cursor lock records exlst which have not been examined. If not, no lock b].ocks the operation requesting the determination and the process is returned. If records exist however, they must be examirled. Next,lat block 380, the next record is recovered. Decision block 382 is utilized to determine if the record is a lock type, including either user locks, select lockæ or cursor locks.
If not, the record is irrelevant and the process returns to block 378. If the record is a ]ock type~ decision block 383 ~ ROg-9l-061 2 0 7 6 4 6 3 24 is utilized to determine if the user is the owner. If so, the record is irrelevant and the process returns to block 378. Finally, decision block 384 is utilized to compare the position of the cursor with the bounds of the polygon formed by the boundary points of the lock record. If the cursor lies within the polygon, a lock blocks use of the cursor to modify the document or to establish a select point. A
locked indication is returned. If the cursor lies strictly outside of the polygon, the lock is not effective at the cursor position. The process returns to block 378 for evaluation of the next record. Only upon clearing all records is a not locked indication returned.

Figures l9A and l9B are flow charts relating updating of cursor lock regions within a shared data object upon movement of a cursor. Referring to Eigure l9A, an update process for a lock in a textual target object begins with utilization of decision block 386 to determine if the current cursor lock record is null. If so, operation blocks 388 and 390 are used to generate a new cu~sor lock record and to set a pointer in the cursor record to the new cursor lock record. Once a cursor lock record is available, decision block 392 is utilized to determine if the lock mode for the cursor lock is a character position. If it is, block 394 is utilized to change the start and end fields in the cursor lock record to equal the current position of the cursor. If the lock mode is not a character, the process takes the NO branch from block 392 to decision block 396, which is utilized to determine lf the ]ock mode is equal to a word. If it is, the process takes the YES branch from block 396 to block 398. Block 398 is utilized to retrieve the current line from the target object. Next, block 400 is utilized to determine the offsets of the start and end of the current word. Next, block 402 is utilized to, set the start and end fields in the cursor lock record equal to the start and end of the current word. If~ at block 396 it was determined that the lock mode did not equal a word, it is assumed that the lock mode equalR a ]ine. Along the NO
branch from block 396, -the process uti.lizes block 404 retrieve the current line from the target object. Next, at R09-91-061 207~463 2~

block 406, the cursor lock record fields for the start and end are set equal to the start and end of the current line.

After setting the start and end field~ for the lock record in any mode, decision block 408 is utilized to determine if the new cursor lock record conflicts with any other locks (for details of the ana]ysis see Figure 24A).
If it does conflict, the new cursor lock record is removed from the document data structure (block 410) and the cursor record to ~he po-inter is set to null (block 412). Block 413 then illustrates the updating of the display. The process then returns to the appropriate point in the editing process. If there is no conflict detected at block 408, the process returns directly to the appropriate point in the editor.

An update of a cursor lock in a graphics editing environment is somewhat more complex. Referring to Figure l9B, operation block 414 is initially utilized to create a new, provisional cursor lock record. The pointer field in the cursor record is not changed at this time. Next, decision block 416 is utilized to determine if the lock mode i8 equal to a square. If it is, block 424 is utilized to generate the four absclute coordinate~ of the square centered on the current cursor position in the plane of the view. If the shape of the cursor lock region is not a square, d~cision block 418 is utilized to determine it the shape mode equals a circle. If it is~ block 426 is utilized to determine a set of coordinates for a polygon which approximates a circle, i.e. a set of points equidistant from the cursor in the plane of the view. Some number N of points is selected which, given the resolution of the particular machines used, will look like a circle to the user.
i If at block 418 it was determined that the shape mode was not a circle, decision block 420 isl utilized to determine if the mode is user defined polygon. If so, block 432 is utilized to convert a user definition of points relative to the cursor position to absolute points for the lock record.

RO9-91-061 207~463 26 The graphics editing environment also allows for a cursor lock mode equal to a current object over which the cursor is located. If at block 420 it was determined that the mode was not polygon mode, block 422 is utilized to determine if object mode is in use. If yes, block 430 is utilized to query the display image to determine if the cursor is over an object. If yes, block 432 is utilized to query the object for its abso]ute bounding points, which are used as defining points for a polygon shaped cursor lock record.

From blocks 424, 426, 428 and 432, i.e. from any ,. ,. .~.. _~, ...
definition of the bounds for a cursor lock, decision block 434 is utilized to compare the new lock record to other lock records for a possible conflict (See Figure 24B for details). If no conflict is found the old lock record is removed (block 444) and the pointer field in the cursor record is reset the updating to the new lock record (block 446). Block 447 then illustrates the updating of the display. The process returns to the appropriate point in the editing process. If however~ a conflict is found at decision block 434, or no objec-t :is found below the cursor (block 430), or the lock mode was found to not be in Object mode (block 422, implying that automatic association of a lock to a cursor is off), then block 436 is utilized to delete the newly created lock record. Next, block 438 is utilized to determine if the c~lrrent cursor position is within its own old lock record. If it is, the old lock record is all owed to stand, although visually the cursor is no longer centered in its lock regioII. If the cursor is outside of its old cursor lock, the old cursor lock is eliminated by deletion of the lock record indicated by the cursor lock pointer ln the cursor record (block 440) and resetting that pointer to null. Block 447 then illustrates the updating of the display.

Establishment of a user .select region is a preliminary step to establishment by a useL- of an associational type or user select lock type region. Referring to Figure 20A, a flow chart illustrates establishing a select region i.n a textual document. The per~orm select process is begun by R09-91-061 2 0 7 6 ~ ~ 3 selection of a select pO~ t in the editing process.
Decision block 448 is utili.2.ed to determine if a second point of the select has been entered, which is required to continue the procesæ. If a second select point is not received, the process is returned to the appropriate point in the editing process. A user may select as a second point the same point as was identified as the first select point, permitting creation of a select region of a single character.
. .
From block 450, indicating receipt of a second select point, block 452 is utilized to create an association/lock record having as its start and end, the first and second select points in an appropriate order. The record type is set to "SELECT LOCK". Next, block 454 is utilized to determine if the new select region conflicts with any lock regions (again utilizing the process of Figure 24A). If it does conflict, block 456 i9 utilized to warn the user that the select has failed and to delete the record. The process is then returned to the appropriate point in the editor. If no conflict was found at block 454. block 458 is utilized to set the selection field in the cllrsor record to "ON", block 460 is utilized to add the record to the select lock field and the display is updated (block 462) before return of the process to the appropriate point in the editor.

Referring to Figure ~OB, a flow chart illustrates establishina a select region in a graphlcs document. The perform select process is begun hy selection of a select point during edi.ting. The process is picked up in the flow chart with utilization of block 464 to create a association/].ock record of the select type. It has a shape indicated to be a polygon and its first point is the initial select point. Nextj decisi.on block 466 is utilized to determine if the user has sel.ected a square (or rectangular) shape for select region. If yes, block 468 is utilized to prompt the user to supply a second point to define the region. A user may select as a second point the same point as was identified as the first select point, permitting creation of a select region of a single pixel.

Rog-gl-061 2 0 7 `~ ~ ~ 3 28 If a s~uare shape is not selected, block 470 is utilized to determine if the user has selected a circular shape. If yes, block 472 i6 utilized to prompt the user to supply a radius, from which the next N select points can be generated to complete a substantially circular appearing polygon.

If a circular shape was not determined at block 470, decision block 474 is utilized to determine is a general polygon wa~ selected by the user. If yes, the user is prompted to supply a series of points through block 476. The user may, instead of selection of an additional point signal the machine that all points have been supplied, which is detected utilizing decision block 478. After determining that the user is done, the po]ygon is closed and the process passes out of the loop along the YES branch from decision block 478. As long as the user does not signal completion, or until the user has selected the maximum number of permissible points, the process proceeds along the N0 branch from block 478 to block 480, which adds the most recent selection to the list of points in the association/lock record, and then returns to b]ock 476.

The N0 branch from decision block 474 indicatès that a user has failed to select. a shape for the user select region, resulting in return of the process to the appropriate point in the editing process, after indicating error to the user and deletion of the record created at block 464 (block 482).
.
Upon completion of the boundary points of the user select region, decision block 484 is utilized to determine if the new record conflicts with another lock record (see Figure 24B). If yes, block 492 is utilized to warn the user Next, block 494 is utilized to delete the record created at block 464. The process is thereupon returned to the appropriate point in the editor.

If no conflict is detected at decision block 484, the process passes along the N0 branch to operation block 486, which is utilized to the set selection field in the cursor ~_ R09-91-061 207~463 record to "ON". Next, block 488 is utilized to fill in a pointer field in the association record list of the cursor record. Then, if operation is in the client, block 490 is utilized to update the display to indicate select of a region. The process is then returned to the appropriate point in the editor.

A set lock operation to convert a select region to a user select lock region is the same for both embodiments.
Referring ~to Figure 21, a flow chart relating user establishment of a lock region from a select region is depicted. Upon a request to set a lock, the process utilizes block 496 to determine if the select on field in the cursor record for the user is ON. If not the request is invalid and the process is returned to the appropriate point in the editor without substantial action. If the select on field is on, and if in the client, block 498 is utilized to update the display to remove the select indication from the region pointed to in the cursor record. Block 500 is utilized to remove the record from the select lock field and place it in the user lock list, if such a distinction is maintained in cursor records. Next, block 502 is utilized to reset the type field in the lock record to "user lock".
Then, block 504 is uti].ized to reset the select on fields in the cursor record and the lock record to OFF. Lastly, before return to the editor, block 506 is executed to update the display to reflect the new lock region.

Figure 22 depicts a flow chart relating to user designation of a select region as an associated region.
Upon a rcquest to perform an association operation, the process utilizes block 508 to determine if the select on field in the cursor record for the user is ON. If not, the request is invalid and the process is returned. to the appropriate point in the editor without substantial action.
If the select on field is on, and if the process is in the client, block 510 is utilized to update the display to remove the select indication from the region pointed to in the cursor record. Block 512 is utilized to remove the region from the select lock field and put it in the association list, if such a distinction is maintained in `~RO9-91-061 2~76463 cursor records. Next, block 514 is utilized to reset the type field in the lock record to "user association ". Then, block 516 is utilized to reset the select on fields in the cursor record and the association/lock record to OFF.
Lastly, before return to the editor, block 518 is executed to update the display to reflect the new association region.

,-~~User release of lock and association regions is next ~ illustrated. Referring to Figure 23, a flow chart relating to unlocki'ng or disassociation of regions is illustrated.
The process is initiated at block 520 with the setting of a flag to indicate if an unlock or a di.sassociation operation is being undertaken. The process wi.ll examine each record in the cursor lock and association lists until one is located in which the cursor is located. This process utilizes decision block 522, which determines if records exist in the user select lock list or aæsociation list for possible elimination. If such records exist they are recovered in the order of the list (block 524) and decision block 526 is utilized to determine if the cursor is within the bounds of the record. If not, the process returns to block 522. If a record is found in which the cursor lies, block 527 illustrates a determination o whether or not the current user is the owner of the record. If not, the process returns to block 522. If so, the pointer to the record is removed from the appropriate list in the cursor record. Next, at block 530, the record itself is released.
Lastly, block 532 is uti]ized to update the display (again only in client terminals). The process is then returned to the appropriate poi.nt in the editor.

Figures 24A and 24B are flow charts relating to first and second embodiments of the invention providing for detection of lock conflicts, which are made upon user attempts to select a region or upon an attelmpt to move a cursor lock. Referring to Figure 24A, there is illustrated such a comparisoll for a text editing environment. The process begins with an inquiry relating to the presence of user select lock or cursor lock records. If none exist or remain, the inquiry is complete and the NO branch from block 534 i9 taken back to the requesting routine, indicating to ~ R09-91-061 207~63 31 the requesting routine that no conflict exists. If records remain, the next such record is retrieved utilizing block 536. Decision block 538 is utilized to determine if the current cursor is the owner of the record. If yes, the record can be disregarded and the process returns to block 534 on the YES branch from block 538. Along the N0 branch, decision block 540 is utilized to determine if a the record is a lock of either type. If not, the record may be disregarded and the process returnæ to block 534. If yes, determination is made if the requested select or lock region has common points with the lock record. Decision block 542 is utilized to determine if the lock (select) region input start occurs with or after the recovered lock record start.
If yes, block 546 is utilized to determine if the input record start occurs before or with the end of the recovered lock record end. If it dces, a conflict is present and such indication is returned to the requesting process. If it does not so occur, the process returns to block 534 and examination of the next record. Along the N0 branch from decision block 542, the process utilizes decision block 544 to determine if the input record end occurs after or with the lock record start. If not. no conflict exists and the process returns to block 534. If yes~ a conflict exists and operation is returned to the re~uesting process with an indication of the conf]ict.

Referring to Figure 24B~ there is illustrated such a comparison for a graphics editin~ environment. The process begins with an inquiry relating to the presence of user select lock or cursor lock records. If no records exist or remain, the inquiry is complete and the N0 branch from block 548 is taken back to the requesting routine, indicating to the requesting routine that no conflict exists. If records remain, the next such record is retrieved utilizing block 550. Next, decision block 552 iæ utilized to determine if the current cursor is the owner of the record. If yes, the record can be disregarcled and the process returns to block 548 on the YES branch from block 552. Along the N0 branch, decision block 554 is utilized to determine if a the record is a lock of either type. If not, the record may be disregarded and the process returns to block 548. If yes, ~ R09-91-061 2 0 7 6 ~ 6 3 32 the record and the input region must be compared for possible overlap. Decision block 556 is used to determine such overlap. The test is one to determine if the polygon of the input region overlap the polygon that is returned from the lock record recovered at bLock 550. If they do, a conflict indication is returned to the requesting process.
If no overlap is found, the process returns to block 548 for examination of further records.

Altho~gh the invention has been described with reference to a æpecific embodiment~ this description is not meant to be construed in a limitinc~ sense. Various modifications of the disclosed embodiment as well as alternative embodiments of the invention will become apparent to persons skilled in the art upon reference to the description of the invention. It is therefore contemplated that the appended claims will cover any such modifications or embodiments that fall within the true scope of the invention.

Claims (20)

1. A method of operating a collaborative computer-based editing system having a plurality of display devices for the display of private views of a shared data object, the method comprising the steps performed by a computer of:

establishing, responsive to user selection a user associative region positionally independent of a cursor for the user within the shared data object;

defining a first visually distinguishing characteristic for the user associative region identifying the user;

defining, responsive to user selection of an association type, a second visually distinguishing characteristic for the user associative region identifying the nature of the association; and causing display, on at least a first display device, of a private view of the shared data object including part of the first user associative region, wherein the user associative region is indicated by said first and second visually distinguishing characteristics.
2. A method of operating a collaborative computer-based system as set forth in Claim 1, wherein said first visually distinguishing characteristic is a color associated with the user.
3. A method of operating a collaborative computer-based system as set forth in Claim 1, wherein said second visually distinguishing characteristic indicates the nature of the association with said user is an ownership association.
4. A method of operating a collaborative computer-based system as set forth in Claim 1, wherein said second visually distinguishing characteristic indicates the nature of the association with said user is a cursor lock association.
5. A method of operating a collaborative computer-based system as set forth in Claim 1, wherein said second visually distinguishing characteristic indicates the nature of the association with said user is a user selectable lock association.
6. A method of operating a collaborative computer-based system as set forth in Claim 1, the method comprising the additional step performed by a computer of:

responsive to user movement of a user cursor into a displayed portion of the data object, generating display of the user cursor in the displayed portion.
7. A method of operating a collaborative computer-based system as set forth in Claim 6, the method comprising the additional step performed by a computer of:

applying a color as said first visually distinguishing characteristic to user associative regions and to a cursor associated with a user.
8. A method of operating a collaborative computer-based system as set forth in Claim 7, wherein the collaborative computer-based system is an editor.
9. A computer-based editing system for collaborative user action on a data object, comprising:

a plurality of workstations interconnected for data transmission, each workstation including a display device and a user input device;
a shared data object;

means for presenting private views of the shared data object on the display devices;

means, responsive to user selection of a level of association, for associating segments of the shared data object to particular users which are positionally independent of the cursors for the users; and means for determining a visually distinguishing characteristic for each associated segment based upon the identity of the particular user and the nature of the association.
10. A computer-based editing system for collaborative user action, as set forth in Claim 9, wherein the visually distinguishing characteristic determined for at least a first user is a color associated with the particular user.
11. A computer-based editing system for collaborative user action as set forth in Claim 9, further comprising:

means, responsive to user movement of a cursor into any displayed portion of the data object, for displaying the cursor, wherein the cursor includes a visually distinguishing characteristic associated with its user.
12. A computer-based editing system for collaborative user action as set forth in Claim 11, and further comprising means for applying a color as the visually distinguishing characteristic.
13. A computer-based system for collaborative user action as set forth in Claim 11, and further comprising means for allowing local selection of visually distinguishing characteristics for the users and the association types.
14. A computer-based editing system for collaborative user action as set forth in Claim 13, wherein the computer-based system is a graphics editor.
15. A computer-based editing system for collaborative user action as set forth in Claim 13, wherein the computer-based system is a text editor.
16. A method of providing identification of blocks in a shared data object which are locked against manipulation in a collaborative computer based system, wherein the collaborative computer based system includes a plurality of workstations, each workstation including an output display device and a user input device, the method comprising the steps performed by a computer of:

responsive to a user request, granting access to a user to the shared data object;
responsive to the user obtaining access to the shared data object, assigning the user a cursor available for display on the visual display devices of all users, wherein the assigned cursor has a user related visual characteristic;

responsive to user selection, associating a previously unselected block positionally independent of any cursor in the shared data object with said user; and responsive to associating the block of the shared data object, extending the user related visual characteristic of the current user to the block.
17. A method of providing identification of blocks in a shared data object as set forth in Claim 16, wherein the user related visual characteristics are global and comprising the additional step of:

responsive to local user selection, modifying the user related visual characteristics in accordance with a map on a local terminal.
18. A method of providing identification of blocks in a shared data object as set forth in Claim 16, wherein the user related visual characteristics are colors.
19. A method of providing identification of blocks in a shared data object as set forth in Claim 16, wherein the user related visual characteristics are shades in a gray scale.
20. A method of operating a collaborative computer-based editing system having a plurality of display devices, each of said display devices having access to a shared data object, said editing system also having means for presenting a private view of the shared data object on each of the display devices, the method comprising the steps performed by a computer of:

establishing, responsive to user selection, user associative regions within the shared data object which are positionally independent of any user cursor;

defining a visually distinguishing characteristic for a first user associative region identifying the user; and causing display, on at least a first display device, of a private view of the shared data object including part of the first user associative region, wherein the first user associative region is indicated by said visually distinguishing characteristic.
CA002076463A 1991-12-31 1992-08-20 Method and system for identifying users in a collaborative computer-based system Expired - Fee Related CA2076463C (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US816,623 1991-12-31
US07/816,623 US5337407A (en) 1991-12-31 1991-12-31 Method and system for identifying users in a collaborative computer-based system

Publications (2)

Publication Number Publication Date
CA2076463A1 CA2076463A1 (en) 1993-07-01
CA2076463C true CA2076463C (en) 1996-10-08

Family

ID=25221166

Family Applications (1)

Application Number Title Priority Date Filing Date
CA002076463A Expired - Fee Related CA2076463C (en) 1991-12-31 1992-08-20 Method and system for identifying users in a collaborative computer-based system

Country Status (3)

Country Link
US (1) US5337407A (en)
JP (1) JP2741826B2 (en)
CA (1) CA2076463C (en)

Families Citing this family (111)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5241464A (en) * 1990-08-17 1993-08-31 Moore Business Forms, Inc. Desktop forms order system
CA2072198A1 (en) * 1991-06-24 1992-12-25 Scott C. Farrand Remote console emulator for computer system manager
US6005560A (en) * 1992-10-01 1999-12-21 Quark, Inc. Multi-media project management and control system
AU5294293A (en) * 1992-10-01 1994-04-26 Quark, Inc. Publication system management and coordination
US5561811A (en) * 1992-11-10 1996-10-01 Xerox Corporation Method and apparatus for per-user customization of applications shared by a plurality of users on a single display
SE9300671D0 (en) * 1993-03-01 1993-03-01 Sven Nauckhoff WORK FLOW MANAGEMENT
JPH06266662A (en) * 1993-03-12 1994-09-22 Toshiba Corp Cooperative work support device
US5649104A (en) * 1993-03-19 1997-07-15 Ncr Corporation System for allowing user of any computer to draw image over that generated by the host computer and replicating the drawn image to other computers
EP0622930A3 (en) * 1993-03-19 1996-06-05 At & T Global Inf Solution Application sharing for computer collaboration system.
US5835713A (en) * 1993-03-19 1998-11-10 Ncr Corporation Remote collaboration system for selectively locking the display at remote computers to prevent annotation of the display by users of the remote computers
JPH08509310A (en) * 1993-04-13 1996-10-01 インテル コーポレイシヨン System for collaborative operation with computer support
JP2863428B2 (en) * 1993-05-18 1999-03-03 富士通株式会社 Conversational graphics system
GB9313761D0 (en) * 1993-07-02 1993-08-18 Gay Clive H Method of generating a visual design
US6049334A (en) * 1993-12-20 2000-04-11 International Business Machines Corporation Method and system for graphically indicating the activity of a plurality of users within a shared data collection
US5799292A (en) * 1994-04-29 1998-08-25 International Business Machines Corporation Adaptive hypermedia presentation method and system
US6651050B2 (en) 1994-05-02 2003-11-18 International Business Machines Corporation Co-presence data retrieval system which indicates observers of data
US6243714B1 (en) 1997-04-11 2001-06-05 Ubique Ltd. Co-presence data retrieval system
JPH0822370A (en) * 1994-07-06 1996-01-23 Minolta Co Ltd Information processor
US5913920A (en) * 1994-12-13 1999-06-22 International Business Machines Corporation Indicating updates from a remote display
JP3591917B2 (en) * 1995-06-06 2004-11-24 キヤノン株式会社 Collaborative work support method and system
JPH0934843A (en) * 1995-07-18 1997-02-07 Canon Inc Processing system and processor
GB2303946A (en) * 1995-07-29 1997-03-05 Ibm Data conferencing system
US5706452A (en) * 1995-12-06 1998-01-06 Ivanov; Vladimir I. Method and apparatus for structuring and managing the participatory evaluation of documents by a plurality of reviewers
DE19548397C1 (en) * 1995-12-22 1997-01-23 Siemens Ag Access control system for shared computer programme
US5960173A (en) * 1995-12-22 1999-09-28 Sun Microsystems, Inc. System and method enabling awareness of others working on similar tasks in a computer work environment
US5784056A (en) * 1995-12-29 1998-07-21 Sun Microsystems, Inc. System and method for temporally varying pointer icons
JPH09269931A (en) * 1996-01-30 1997-10-14 Canon Inc Cooperative work environment constructing system, its method and medium
JPH09244980A (en) * 1996-03-05 1997-09-19 Casio Comput Co Ltd Communication data output device
US6570589B1 (en) * 1996-07-02 2003-05-27 Sun Microsystems, Inc. Method and apparatus for associating capabilities with a virtual input device and a display object
US6662210B1 (en) 1997-03-31 2003-12-09 Ncr Corporation Method of remote collaboration system
US5966512A (en) * 1997-06-05 1999-10-12 International Business Machines Corporation Groupware save operation
US5995102A (en) * 1997-06-25 1999-11-30 Comet Systems, Inc. Server system and method for modifying a cursor image
US6691153B1 (en) * 1999-08-30 2004-02-10 Zaplet, Inc. Method and system for process interaction among a group
US6463461B1 (en) * 1999-08-30 2002-10-08 Zaplet, Inc. System for communicating information among a group of participants
AU2022301A (en) * 1999-12-30 2001-07-16 Shlomo Shkolnik Multidisciplinary project integration system
US7810037B1 (en) * 2000-02-11 2010-10-05 Sony Corporation Online story collaboration
WO2002021413A2 (en) * 2000-09-05 2002-03-14 Zaplet, Inc. Methods and apparatus providing electronic messages that are linked and aggregated
JP2002236790A (en) * 2001-02-08 2002-08-23 Fujitsu Ltd Device, method and program for paper deliberation
US7283136B2 (en) * 2001-03-23 2007-10-16 Dassault Systemes Cell descriptor
US7176942B2 (en) * 2001-03-23 2007-02-13 Dassault Systemes Collaborative design
JP2002324037A (en) * 2001-04-24 2002-11-08 Fujitsu Ltd Coordinated display program
US7124362B2 (en) * 2001-08-31 2006-10-17 Robert Tischer Method and system for producing an ordered compilation of information with more than one author contributing information contemporaneously
US6938070B2 (en) * 2001-12-17 2005-08-30 Dassault Systemes Conflict resolution for collaborative work system
US20030131342A1 (en) * 2002-01-08 2003-07-10 International Business Machines Corporation Debugger with activity alert
US7509577B2 (en) * 2002-03-08 2009-03-24 Toshiba Corp Oration Method and system for implementing a clipboard
US7039677B2 (en) * 2002-05-07 2006-05-02 International Business Machines Corporation Threaded text-based chat collaboration
JP4065507B2 (en) * 2002-07-31 2008-03-26 キヤノン株式会社 Information presentation apparatus and information processing method
JP4547990B2 (en) * 2004-05-25 2010-09-22 富士ゼロックス株式会社 Information processing apparatus and information processing program
US8321786B2 (en) * 2004-06-17 2012-11-27 Apple Inc. Routine and interface for correcting electronic text
US20050283727A1 (en) * 2004-06-21 2005-12-22 Large William T Non-resident methods and systems for providing clickless user actuation of a webpage
US7516132B1 (en) * 2004-11-12 2009-04-07 Sun Microsystems, Inc. Mechanism for enabling distributed file sharing among a plurality of nodes in a network
US9009582B2 (en) 2004-11-19 2015-04-14 Google Inc. Converting spreadsheet applications to web-based applications
US7774275B2 (en) * 2005-02-28 2010-08-10 Searete Llc Payment options for virtual credit
US20060190283A1 (en) 2005-02-04 2006-08-24 Searete Llc Participating in risk mitigation in a virtual world
US20090198604A1 (en) * 2004-12-17 2009-08-06 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Tracking a participant loss in a virtual world
EP1672533B1 (en) * 2004-12-20 2013-02-27 Dassault Systèmes Method and computer system for interacting with a database
US7958047B2 (en) * 2005-02-04 2011-06-07 The Invention Science Fund I Virtual credit in simulated environments
US8271365B2 (en) * 2005-02-04 2012-09-18 The Invention Science Fund I, Llc Real-world profile data for making virtual world contacts
US8512143B2 (en) * 2005-07-18 2013-08-20 The Invention Science Fund I, Llc Third party control over virtual world characters
US8457991B2 (en) 2005-02-04 2013-06-04 The Invention Science Fund I, Llc Virtual credit in simulated environments
US8556723B2 (en) 2005-02-04 2013-10-15 The Invention Science Fund I. LLC Third party control over virtual world characters
US8473382B2 (en) * 2006-02-28 2013-06-25 The Invention Science Fund I, Llc Virtual collateral for real-world obligations
US8566111B2 (en) 2005-02-04 2013-10-22 The Invention Science Fund I, Llc Disposition of component virtual property rights
US20080092065A1 (en) * 2005-02-04 2008-04-17 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Third party control over virtual world characters
GB0523703D0 (en) * 2005-11-22 2005-12-28 Ibm Collaborative editing of a document
US20070124370A1 (en) * 2005-11-29 2007-05-31 Microsoft Corporation Interactive table based platform to facilitate collaborative activities
US8924335B1 (en) 2006-03-30 2014-12-30 Pegasystems Inc. Rule-based user interface conformance methods
US8108464B1 (en) * 2006-03-31 2012-01-31 Google Inc. Collaborative workflow through messaging conversations
US8307119B2 (en) 2006-03-31 2012-11-06 Google Inc. Collaborative online spreadsheet application
US20070273695A1 (en) * 2006-05-26 2007-11-29 Stevens Matthew J Mechanism for collaboratively exchanging navigation information in distributed document review
US20080003559A1 (en) * 2006-06-20 2008-01-03 Microsoft Corporation Multi-User Multi-Input Application for Education
US7853886B2 (en) * 2007-02-27 2010-12-14 Microsoft Corporation Persistent spatial collaboration
US7849399B2 (en) * 2007-06-29 2010-12-07 Walter Hoffmann Method and system for tracking authorship of content in data
US7889210B2 (en) * 2007-07-31 2011-02-15 International Business Machines Corporation Visual integration hub
US7941399B2 (en) * 2007-11-09 2011-05-10 Microsoft Corporation Collaborative authoring
JP2009140018A (en) 2007-12-03 2009-06-25 Canon Inc Information processing system and its processing method, device, and program
US20090288041A1 (en) * 2008-05-14 2009-11-19 Amy Herrman Dewar Methodology to Create a Logical Landing Zone Surrounding an Object to React to Determined HTML Events
US8892630B1 (en) 2008-09-29 2014-11-18 Amazon Technologies, Inc. Facilitating discussion group formation and interaction
US8924863B2 (en) * 2008-09-30 2014-12-30 Lenovo (Singapore) Pte. Ltd. Collaborative web navigation using document object model (DOM) based document references
US8706685B1 (en) 2008-10-29 2014-04-22 Amazon Technologies, Inc. Organizing collaborative annotations
US9083600B1 (en) * 2008-10-29 2015-07-14 Amazon Technologies, Inc. Providing presence information within digital items
US9152644B2 (en) * 2008-12-30 2015-10-06 Novell, Inc. Systems and methods for providing collaborative editing
JP2010181978A (en) * 2009-02-03 2010-08-19 Seiko Epson Corp Collaborative work apparatus and method of controlling collaborative work
US20100275130A1 (en) * 2009-04-23 2010-10-28 Mcbride Patrick Thomas Application personas
US8201094B2 (en) * 2009-09-25 2012-06-12 Nokia Corporation Method and apparatus for collaborative graphical creation
US8719294B2 (en) * 2010-03-12 2014-05-06 Fiitotech Company Limited Network digital creation system and method thereof
JP2012038210A (en) * 2010-08-10 2012-02-23 Sony Corp Information processing unit, information processing method, computer program, and content display system
US9383888B2 (en) * 2010-12-15 2016-07-05 Microsoft Technology Licensing, Llc Optimized joint document review
US9118612B2 (en) 2010-12-15 2015-08-25 Microsoft Technology Licensing, Llc Meeting-specific state indicators
US9864612B2 (en) 2010-12-23 2018-01-09 Microsoft Technology Licensing, Llc Techniques to customize a user interface for different displays
US9251130B1 (en) 2011-03-31 2016-02-02 Amazon Technologies, Inc. Tagging annotations of electronic books
US8682973B2 (en) 2011-10-05 2014-03-25 Microsoft Corporation Multi-user and multi-device collaboration
US20130159849A1 (en) 2011-12-20 2013-06-20 Keng Fai Lee Jump to Collaborator Cursor
US9542366B2 (en) 2011-12-20 2017-01-10 Apple Inc. Smart text in document chat
US9158746B2 (en) * 2012-06-13 2015-10-13 International Business Machines Corporation Managing concurrent editing in a collaborative editing environment using cursor proximity and a delay
KR20140034612A (en) * 2012-09-12 2014-03-20 삼성전자주식회사 Display apparatus for multi user and the method thereof
JP2014197256A (en) * 2013-03-29 2014-10-16 エヌ・ティ・ティ・コムウェア株式会社 Editing device, editing method, and program
JP6244902B2 (en) * 2013-12-27 2017-12-13 富士通株式会社 Inter-gadget display cooperation method, inter-gadget display cooperation program, and information processing apparatus
US10270871B2 (en) 2014-04-08 2019-04-23 Dropbox, Inc. Browser display of native application presence and interaction data
US9998555B2 (en) 2014-04-08 2018-06-12 Dropbox, Inc. Displaying presence in an application accessing shared and synchronized content
US10171579B2 (en) 2014-04-08 2019-01-01 Dropbox, Inc. Managing presence among devices accessing shared and synchronized content
US10091287B2 (en) 2014-04-08 2018-10-02 Dropbox, Inc. Determining presence in an application accessing shared and synchronized content
US10469396B2 (en) 2014-10-10 2019-11-05 Pegasystems, Inc. Event processing with enhanced throughput
US9846528B2 (en) 2015-03-02 2017-12-19 Dropbox, Inc. Native application collaboration
US10248933B2 (en) 2015-12-29 2019-04-02 Dropbox, Inc. Content item activity feed for presenting events associated with content items
US10620811B2 (en) 2015-12-30 2020-04-14 Dropbox, Inc. Native application collaboration
US9667676B1 (en) * 2016-01-29 2017-05-30 Dropbox, Inc. Real time collaboration and document editing by multiple participants in a content management system
US10382502B2 (en) 2016-04-04 2019-08-13 Dropbox, Inc. Change comments for synchronized content items
US10698647B2 (en) * 2016-07-11 2020-06-30 Pegasystems Inc. Selective sharing for collaborative application usage
US11048488B2 (en) 2018-08-14 2021-06-29 Pegasystems, Inc. Software code optimizer and method
US11567945B1 (en) 2020-08-27 2023-01-31 Pegasystems Inc. Customized digital content generation systems and methods

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4698752A (en) * 1982-11-15 1987-10-06 American Telephone And Telegraph Company At&T Bell Laboratories Data base locking
US4651299A (en) * 1983-04-27 1987-03-17 Canon Kabushiki Kaisha Data processing apparatus
DE3483025D1 (en) * 1983-06-28 1990-09-27 Fujitsu Ltd ELECTRONIC CONFERENCE SYSTEM.
US4558413A (en) * 1983-11-21 1985-12-10 Xerox Corporation Software version management system
US4635189A (en) * 1984-03-01 1987-01-06 Measurex Corporation Real-time distributed data-base management system
JPS61109093A (en) * 1984-11-02 1986-05-27 日本電信電話株式会社 Image display unit
JPS61275795A (en) * 1985-05-31 1986-12-05 キヤノン株式会社 Document processor
GB2191917A (en) * 1986-06-16 1987-12-23 Ibm A multiple window display system
US5001628A (en) * 1987-02-13 1991-03-19 International Business Machines Corporation Single system image uniquely defining an environment for each user in a data processing system
US4890098A (en) * 1987-10-20 1989-12-26 International Business Machines Corporation Flexible window management on a computer display
US4974173A (en) * 1987-12-02 1990-11-27 Xerox Corporation Small-scale workspace representations indicating activities by other users
US5008853A (en) * 1987-12-02 1991-04-16 Xerox Corporation Representation of collaborative multi-user activities relative to shared structured data objects in a networked workstation environment
US4853843A (en) * 1987-12-18 1989-08-01 Tektronix, Inc. System for merging virtual partitions of a distributed database
JPH01248187A (en) * 1988-03-30 1989-10-03 Toshiba Corp Display system

Also Published As

Publication number Publication date
CA2076463A1 (en) 1993-07-01
US5337407A (en) 1994-08-09
JP2741826B2 (en) 1998-04-22
JPH05242027A (en) 1993-09-21

Similar Documents

Publication Publication Date Title
CA2076463C (en) Method and system for identifying users in a collaborative computer-based system
US5339388A (en) Cursor lock region
US5339389A (en) User selectable lock regions
US5515491A (en) Method and system for managing communications within a collaborative data processing system
KR100324878B1 (en) Method for displaying information in a virtual reality environment
US5107443A (en) Private regions within a shared workspace
JP4076239B2 (en) Information display method and window management apparatus
US5850232A (en) Method and system for flipping images in a window using overlays
CN1130683C (en) Secondary user interface
US6529900B1 (en) Method and apparatus for data visualization
US6353452B1 (en) Data item display method and device, and recording medium storing a program for controlling display of data item
US5544301A (en) Object-oriented view layout system
US5708764A (en) Hotlinks between an annotation window and graphics window for interactive 3D graphics
US6052514A (en) Distributed publication system with simultaneous separate access to publication data and publication status information
CN1030804C (en) Method and apparatus utiliging multi-demensional data icons
EP0542658B1 (en) Method and apparatus utilizing data icons
US5483632A (en) Method and system of help-information control
US5504853A (en) System and method for selecting symbols and displaying their graphics objects in a detail window
US5745714A (en) Method and system in a data processing system for the association and display of a plurality of objects
CA2178585C (en) Object-oriented task security framework
US20030098886A1 (en) User interface and method for maximizing the information presented on a screen
EP0527828B1 (en) Object based computer system
GB2324012A (en) Programming development environments performed by computers
US5737559A (en) Object-oriented view hierarchy framework
US5615326A (en) Object-oriented viewing framework having view grouping

Legal Events

Date Code Title Description
EEER Examination request
MKLA Lapsed