WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
Method and apparatus for extensible object-oriented inter-application link management    
United States Patent5404534   
Link to this pagehttp://www.wikipatents.com/5404534.html
Inventor(s)Foss; Carolyn L. (Palo Alto, CA); Hare; Dwight F. (Menlo Park, CA); McAllister; Richard F. (Palo Alto, CA); Nguyen; Tin A. (Danville, CA); Pearl; Amy (Mountain View, CA); Shaio; Sami (Palo Alto, CA)
AbstractA method and apparatus for extensible inter-application link management is disclosed. The apparatus is independent of the applications that manipulates the anchors linked by the links being managed. Anchors linked may reside on the same or different computers on a network. Links managed comprise navigation links and include links. Links managed may be further extended with application defined links. Application defined links may or may not require support by additional application provided link maker programs. Application defined links may inherit linking operations managed from the navigation link, include link and other existing application defined links with or without override.
   














 Title Information Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History
Drawing from US Patent 5404534
Method and apparatus for extensible object-oriented inter-application

     link management - US Patent 5404534 Drawing
Method and apparatus for extensible object-oriented inter-application link management
Inventor     Foss; Carolyn L. (Palo Alto, CA); Hare; Dwight F. (Menlo Park, CA); McAllister; Richard F. (Palo Alto, CA); Nguyen; Tin A. (Danville, CA); Pearl; Amy (Mountain View, CA); Shaio; Sami (Palo Alto, CA)
Owner/Assignee     Sun Microsystems, Inc. (Mountain View, CA)
Patent assignment
All assignments
Publication Date     April 4, 1995
Application Number     08/252,059
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     June 1, 1994
US Classification     719/315
Int'l Classification     G06F 003/00
Examiner     Kriess; Kevin A.
Assistant Examiner     Backenstose; J. Hall
Attorney/Law Firm     Blakely Sokoloff Taylor & Zafman
Address
Parent Case     RELATED APPLICATIONS This application is a continuation of application Ser. No. 07/657,159, filed Feb. 15, 1991, entitled "A METHOD AND APPARATUS FOR EXTENSIBLE INTER-APPLICATION LINK MANAGEMENT", now abandoned.
Priority Data    
USPTO Field of Search     395/650 395/700
Patent Tags     extensible object-oriented inter-application link management
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

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

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
5212792
Gerety
717/100
May,1993

[0 after 0 votes]
5179708
Gyllstrom
719/314
Jan,1993

[0 after 0 votes]
5095522
Fujita
719/316
Mar,1992

[0 after 0 votes]
5060150
Simor
719/313
Oct,1991

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

[0 after 0 votes]
4412285
Neches
709/252
Oct,1983

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

N/A

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

No, license is not currently available



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

No, license is not currently available



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

No



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

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

No



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

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


What is claimed is:

1. A computer-implemented method for managing inter-application linking of data objects in an extensible manner within an object-oriented computer system, said computer system comprising a plurality of message switches and a plurality of applications having a plurality of processes and a plurality of data objects, said plurality of data objects including a plurality of anchor objects, said method comprising the steps of:

(a) a first plurality of anchor maker processes sending a first plurality of linking operation requests as a first plurality of object-oriented (o-o) messages to a message switch, said first plurality of o-o messages being specifically addressed to a first plurality of link objects, said first plurality of link objects linking said data objects in a first linkage relationship, said first plurality of link objects being target objects of said first plurality of linking operation requests, and Said first plurality of link objects having a first pre-determined link object type;

(b) said message switch delivering said first plurality of o-o messages to a first link maker process, said first link maker process being part of an inter-application link manager supporting said first pre-determined link object type; and

(c) said first link maker process handling said first plurality of link operation requests targeted for said first plurality of link objects in response to said first plurality of o-o messages received from said message switch.

2. The method as set forth in claim 1, wherein,

said step (a) further includes a second plurality of anchor maker processes sending a first plurality of anchor manipulating operation notices as a first plurality of non-object-oriented (n-o-o) messages to said message switch, said first plurality of n-o-o messages being generally addressed to processes interested in receiving such messages;

said step (b) further includes said message switch delivering said first plurality of n-o-o messages to said first link maker process for having previously expressed interest in receiving such messages; and

said step (c) further includes said first link maker process observing said first plurality of anchor manipulating operation notices responsive to said first plurality of n-o-o messages received from said switch.

3. The method as set forth in claim 2, wherein, said method further comprises the steps of:

(d) said first link maker process sending a first plurality of linking operation notices as a second plurality of o-o messages to said switch, said second plurality of o-o messages being specifically addressed to a second plurality of link objects linking said data objects in said first linkage relationship, said second plurality of link objects being target objects of said first plurality of linking operation notices and having said first predetermined link object type;

(e) said message switch delivering said second plurality of o-o messages to said first link maker process; and

(f) said first link maker process observing said first plurality of link operation notices targeted for said second plurality of link objects responsive to said second plurality of o-o messages received from said message switch.

4. The method as set forth in claim 1, wherein,

said step (a) further includes a second plurality of anchor maker processes sending a second plurality of linking operation requests as a second plurality of o-o messages to said switch, said second plurality of o-o messages being specifically addressed to a second plurality of link objects linking said data objects in a second linkage relationship, said second plurality of link objects being target objects of said second plurality of linking operation requests and having a second predetermined link object type;

said step (b) further includes said message switch delivering said second plurality of o-o messages to said first link maker process, said first predetermined link object type being a predecessor object type of said second predetermined link object type from which said second predetermined link object type inherits linking operations of said second linking operation requests without override; and

said step (c) further includes said first link maker process handling said second plurality of link operation requests targeted for said second plurality of link objects responsive to said second plurality of o-o messages received from said message switch.

5. The method as set forth in claim 4, wherein,

said first link maker process of said inter-application link manager supporting said first predetermined link object type is supplied by a vendor of said inter-application link manager; and

said second link maker process of said inter-application link manager supporting said second predetermined link object type is subsequently added to said inter-application link manager by a non-vendor to extend predetermined link types supported by said inter-application link manager.

6. The method as set forth in claim 1, wherein,

said step (a) further includes a second plurality of anchor maker processes sending a second plurality of linking operation requests as a second plurality of o-o messages to said switch, said second plurality of o-o messages being specifically addressed to a second plurality of link objects linking said data objects in a second linkage relationship, said second plurality of link objects being target objects of said second plurality of linking operation requests and having a second predetermined link object type;

said step (b) further includes said message switch delivering said second plurality of o-o messages to a second link maker process of said inter-application link manger supporting said second predetermined link object type, said first predetermined link object type being a predecessor object type of said second predetermined link object type from which said second predetermined link object type inherits linking operations of said second linking operation requests with override; and

said step (c) further includes said second link maker process partially handling said second plurality of link operation requests targeted for said second plurality of link objects responsive to said second plurality of o-o messages received from said message switch.

7. The method as set forth in claim 6, wherein, said method further comprises the steps of:

(d) said second link maker process sending a first plurality of anchor manipulating operation requests as a third plurality of o-o messages to said switch, said third plurality of o-o messages being specifically addressed to a first plurality of anchor data objects and having a first plurality of anchor object types;

(e) said message switch delivering said third plurality of o-o messages to a third plurality of anchor maker processes supporting said first plurality of anchor types; and

(f) said third plurality of anchor maker processes handling said first plurality of anchor manipulating operation requests targeted for said first plurality of anchor data objects responsive to said third plurality of o-o messages received from said message switch.

8. The method as set forth in claim 7, wherein, said method further comprises the steps of:

(g) said second link maker process re-sending said second plurality of linking operation requests as a fourth plurality of o-o messages to said switch, said fourth plurality of o-o messages being specifically addressed to said second plurality of link objects linking said data objects in said second linkage relationship, said fourth plurality of o-o messages further having qualifying message attributes denoting delivery to be made based on said second predetermined link object type's predecessor predetermined link object type;

(h) said message switch delivering said fourth plurality of o-o messages to said first link maker process; and

(i) said first link maker process residually handling said second plurality of link operation requests targeted for said second plurality of link objects responsive to said fourth plurality of o-o messages received from said message switch.

9. The method as set forth in claim 6, wherein,

said first link maker process of said inter-application link manager supporting said first predetermined link object type is supplied by a vendor of said inter-application link manager; and

said second link maker process of said inter-application link manager supporting said second predetermined link object type is subsequently added to said inter-application link manager by a non-vendor to extend predetermined link types supported by said inter-application link manager.

10. The method as set forth in claim 1, wherein,

said step (a) further includes a second plurality of anchor maker processes sending a first plurality of anchor manipulating operation notices as a first plurality of non-object-oriented (n-o-o) messages to said message switch, said first plurality of n-o-o messages being generally addressed to processes interested in receiving such messages;

said step (b) further includes said message switch delivering said first plurality of n-o-o messages to said first link maker process for having previously expressed interest in receiving such messages;

said step (c) further includes said first link maker process observing said first plurality of anchor manipulating operation notices responsive to said first plurality of n-o-o messages received from said switch;

said method further comprises the steps of:

(d) said first link maker process sending a first plurality of linking operation notices as a second plurality of o-o messages to said switch, said second plurality of o-o messages being specifically addressed to a second plurality of link objects linking said data objects in a said second linkage relationship, said second plurality of link objects being target objects of said first plurality of linking operation notices and having a second predetermined link object type,

(e) said message switch delivering said second plurality of o-o messages to said first link maker process, said first predetermined link object type being a predecessor object type of said second predetermined link object type from which said second predetermined link object type inherits linking operations of said first plurality of linking operation notices without override;

(f) said first link maker process observing said first plurality of link operation notices targeted for said second plurality of link objects responsive to said second plurality of o-o messages received from said message switch.

11. The method as set forth in claims 10, wherein,

said first link maker process of said inter-application link manager supporting said first predetermined link object type is supplied by a vendor of said inter-application link manager; and

said second link maker process of said inter-application link manager supporting said second predetermined link object type is subsequently added to said inter-application link manager by a non-vendor to extend predetermined link types supported by said inter-application link manager.

12. The method as set forth in claim 1, wherein,

said step (a) further includes a second plurality of anchor maker processes sending a first plurality of anchor manipulating operation notices as a first plurality of non-object-oriented (n-o-o) messages to said message switch, said first plurality of n-o-o messages being generally addressed to processes interested in receiving such messages;

said step (b) further includes said message switch delivering said first plurality of n-o-o messages to said first link maker process for having previously expressed interest in receiving such messages;

said step (c) further includes said first link maker process observing said first plurality of anchor manipulating operation notices responsive to said first plurality of n-o-o messages received from said switch; said method further comprises the steps of:

(d) said first link maker process sending a first plurality of linking operation notices as a second plurality of o-o messages to said switch, said second plurality of o-o messages being specifically addressed to a second plurality of link objects linking said data objects in a said second linkage relationship, said second plurality of link objects being target objects of said first plurality of linking operation notices and having a second predetermined link object type,

(e) said message switch delivering said second plurality of o-o messages to a second link maker process of said inter-application linking manager supporting said second predetermined link object type, said first predetermined link object type being a predecessor object type of said second predetermined link object type from which said second predetermined link object type inherits linking operations of said first plurality of linking operation notices with override;

(f) said second link maker process partially observing said first plurality of link operation notices targeted for said second plurality of link objects responsive to said second plurality of o-o messages received from said message switch.

13. The method as set forth in claim 12, wherein the method further comprises the steps of:

(g) said second link maker process sending a second plurality of linking operation notices as a third plurality of o-o messages to said switch, said third plurality of o-o messages being specifically addressed to a third plurality of link objects linking said data objects in said second linkage relationship, said third plurality of link objects being target objects of said second plurality of linking operation notices and having said second predetermined link object type, said third plurality of o-o messages further having qualifying message attributes denoting delivery to be made based on said second predetermined link object type's predecessor predetermined link object type;

(h) said message switch delivering said third plurality of o-o messages to said first link maker process;

(i) said first link maker process residually observing said second plurality of link operation notices targeted for said third plurality of link objects responsive to said third plurality of o-o messages received from said message switch.

14. The method as set forth in claim 12, wherein,

said first link maker process of said inter-application link manager supporting said first predetermined link object type is supplied by a vendor of said inter-application link manager; and

said second link maker process of said inter-application link manager supporting said second predetermined link object type is subsequently added to said inter-application link manager by a non-vendor to extend predetermined link types supported by said inter-application link manager.

15. The method as set forth in claim 1, wherein,

said step (a) further includes a second plurality of anchor maker processes sending a second plurality of linking operation requests as a second plurality of o-o messages to said switch, said second plurality of o-o messages being specifically addressed to a second plurality of link objects linking said data objects in a second linkage relationship, said second plurality of link objects being target objects of said second plurality of linking operation requests and having a second predetermined link object type;

said step (b) further includes said message switch delivering said second plurality of o-o messages to a second link maker process of said inter-application link manager supporting said second predetermined link object type; and

said step (c) further includes said second link maker process handling said second plurality of link operation requests targeted for said second plurality of link objects responsive to said second plurality of o-o messages received from said message switch.

16. The method as set forth in claim 15, wherein,

said first link maker process of said inter-application link manager supporting said first predetermined link object type is supplied by a vendor of said inter-application link manager; and

said second link maker process of said inter-application link manager supporting said second predetermined link object type is subsequently added to said inter-application link manager by a non-vendor to extend predetermined link types supported by said inter-application link manager.

17. The method as set forth in claim 1, Wherein,

said step (a) further includes a second plurality of anchor maker processes sending a first plurality of anchor manipulating operation notices as a first plurality of non-object-oriented (n-o-o) messages to said message switch, said first plurality of n-o-o messages being generally addressed to processes interested in receiving such messages;

said step (b) further includes said message switch delivering said first plurality of n-o-o messages to said first link maker process for having previously expressed interest in receiving such messages;

said step (c) further includes said first link maker process observing said first plurality of anchor manipulating operation notices responsive to said first plurality of n-o-o messages received from said switch.;

said method further comprises the steps of:

(d) said first link maker process sending a first plurality of linking operation notices as a second plurality of o-o messages to said switch, said second plurality of o-o messages being specifically addressed to a second plurality of link objects linking said data objects in a said second linkage relationship, said second plurality of link objects being target objects of said first plurality of linking operation notices and having a second predetermined link object type,

(e) said message switch delivering said second plurality of o-o messages to a second link maker process of said inter-application linking manager supporting said second predetermined link object type;

(f) said second link maker process observing said first plurality of link operation notices targeted for said second plurality of link objects responsive to said second plurality of o-o messages received from said message switch.

18. The method as set forth in claim 17, wherein,

said first link maker process of said inter-application link manager supporting said first predetermined link object type is supplied by a vendor of said inter-application link manager; and

said second link maker process of said inter-application link manager supporting said second predetermined link object type is subsequently added to said inter-application link manager by a non-vendor to extend predetermined link types supported by said inter-application link manager.

19. The method as set forth in claim 1, wherein, said method further comprises the steps of:

(d) said first link maker process sending a first plurality of linking operation notices as a second plurality of o-o messages to said switch, said second plurality of o-o messages being specifically addressed to a first plurality of anchor data objects, said first plurality of anchor data objects being target objects of said first plurality of linking operation notices and having a first plurality of anchor types;

(e) said message switch delivering said second plurality of o-o messages to a second plurality of anchor maker processes supporting said first plurality of anchor types; and

(f) said second plurality of anchor maker processes observing said first plurality of link operation notices targeted for said first plurality of anchor objects responsive to said second plurality of o-o messages received from said message switch.

20. The method as set forth in claim 1, wherein,

said step (a) further includes said first link maker process sending a first plurality of anchor manipulating operation requests as a second plurality of object-oriented (o-o) messages to said message switch, said second plurality of o-o messages being specifically addressed to a first plurality of anchor data objects, said first plurality of anchor data objects being target objects of said first plurality of anchor operation requests and having a first plurality of anchor types;

said step (b) further includes said message switch delivering said second plurality of o-o messages to a second plurality of anchor maker processes supporting said first plurality of anchor types; and

said step (c) further includes said second plurality of anchor maker process handling said first plurality of anchor manipulating operation requests responsive to said second plurality of o-o messages received from said switch.
 Description Submit all comments and votes
 


BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to the field of computer systems. In particular, the present invention is a method and apparatus for extensible interapplication link management.

2. Art Background

A link represents a relationship between two or more anchors. An anchor at one of the ends of a link is typically an entity or a portion of a file. An entity of a file is application defined and managed. An application is a computer program that creates and manages files and the entities contained therein, including the linked entities, i.e. the anchors. A file and its entities may be managed by one or more applications. Different files managed by different applications may contain different kinds of entities. For example, an application may be a word processor application or a spreadsheet application. The word processor application manages document files containing sections and paragraphs, whereas the spreadsheet application manages spreadsheet files containing ranges of cells.

The relationship between linked anchors embodied in a link is specified by the link's type. Two link types are common, navigation links and include links.

1. Navigation Links. A navigation link, sometimes called a hypertext link, is a bridge between anchors. A user can "follow" a navigation link from one anchor to another, where "following" means displaying the anchor at the other end of the link. One application of navigation links is cross-referencing. For example, in an article, citation numbers in the text might be linked to bibliography entries. To examine an entry, a reader selects a citation number and directs the linking system to "follow" the link. The linking system displays the entry in the bibliography (the anchor at the other end of the link).

2. Include Links. An include link has the effect of automatically copying the contents of one anchor into another, when the first anchor is changed. For example, a drawing might be incorporated in several documents. Incorporating the documents by means of an include link simplifies updating the documents. Whenever the linked drawing is changed, it is automatically copied into the documents.

Existing linking systems have a number of shortcomings:

1. They provide only a single link type.

2. They are monolithic. There is no separation between an application that uses links and the linking system that implements links. Thus, for an application to use links, it must be tightly integrated with the linking system, which is typically difficult and impractical for proprietary applications.

3. They work on single computers. Anchors stored on different computers in a network cannot be linked.

4. The set of link types is fixed. Programmers who use the linking system cannot create new link types to represent new kinds of relationships between anchors.

These shortcomings have hindered the broad application of linking technology. As will be described, the present invention overcomes the disadvantages of the prior art, and provides a method and apparatus for extensible inter-application link management.

SUMMARY OF THE INVENTION

It is therefore an object of the present invention to provide an independent inter-application link manager uncoupled from the applications using the links being managed.

It is another object of the present invention that more than a single link type is supported, and the link types supported are extensible by the applications using the links being managed.

It is another object of the present invention that anchors may be linked regardless whether the anchors are stored on the same computer or different computers in a network.

These objects are realized by the method and apparatus of the present invention for extensible inter-application link management. The method comprises the steps of merging object type definitions defining link types, and program type definitions defining link maker programs executed by link maker processes of the apparatus for extensible inter-application link management of the present invention managing links having these link types, into merged object type-program type definitions; providing access to the merged object type-program type definitions to an interprocess message switch; sending linking operation requests, linking operation notices and anchor manipulating operation notices from anchor maker processes and link maker processes as request and notice messages to the switch, whereby causing the linking operation request, the linking operation notices and the anchor manipulating notices to be delivered to and managed by the link maker processes of the apparatus for extensible inter-application link management of the present invention.

The apparatus for extensible inter-application link management comprises at least one link maker means for managing linking operation requests, linking operation notices and anchor manipulating operation notices defined for at least one link type. Each of the link maker means comprises a link maker process executing a link maker program. Each of these link maker processes/programs comprises an interface for receiving the request and notice messages from the interprocess message switch. The link types and the link maker programs are defined by the object type definitions and the program type definitions.

Additionally, the method further comprises the steps of merging another set of object type definitions defining anchor types and another set of program type definitions defining anchor maker programs supporting the anchor types, into another set of of merged object type-program type definitions; providing this other set of merged object type-program type definitions to the same switch, whereby causing the linking operation notices and anchor manipulating operation notices to be delivered to and managed by the anchor maker processes. Furthermore, the method further comprises the step of sending anchor manipulating operation requests from anchor maker processes and link maker processes as request and notice messages to the same switch, whereby causing tile anchor manipulating operation requests to be delivered to and managed by the anchor maker processes.

The link types supported by the link maker programs comprise a navigation link type, an include link type and any number of application defined link types. The link maker programs supporting the link types comprise a navigation link maker program, an include link maker program and any number of application provided link maker programs.

Linking operation requests and notices managed for the navigation link type comprise a request of "Create", a request of "Delete", a request of "Update", a request of "Follow", a request of "Check", a notice of "EndChanged" and a notice of "EndDeleted". These linking operation requests and notices are managed for the navigation link type by the navigation link maker program. Additionally, the navigation link maker program manages a number of link type independent anchor manipulating operation notices. The link type independent anchor manipulating operation notices comprise a notice of "ObjChanged", and a notice of "ObjDeleted".

Linking operation requests, linking operation notices and anchor manipulating operation notices managed for the include link type comprises the same requests and notices managed for the navigation link types. These requests and notices for the include link type are also managed by the navigation link maker program except the request of "Create" which is "preprocessed" and "post-processed" by the include link making program, and the notice of "EndChanged" which is managed by the include link maker program.

Each new application defined link type may inherit linking operation requests and notices, managed for the existing navigation, include and application defined link types, by the existing navigation, include and application provided link maker programs. Each of the inherited linking operation requests and notices may be overridden to facilitate "pre-processing" and "post-processing" by the new application provided link maker program.

Linking operation notices managed for various anchor types comprise a notice of "LinkAdded", a notice of "LinkDeleted", and a notice of "LinkChanged". Anchor manipulating operation requests and anchor manipulating operation notices managed for various anchor types comprise a request of "Check", a request of "GetData" and a request of "PutData". These linking operation notices, anchor manipulating operation request and anchor manipulating operation notices are managed by the anchor maker programs with or without "pre-processing" and "post-processing" by other anchor maker programs.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram illustrating the method and apparatus of the present invention for extensible inter-application link management.

FIGS. 2a, 2b, & 2c are block diagrams illustrating the navigation link type definition, the navigation link maker program definition, the include link type definition, the include link maker program definition, an exemplary anchor type definition and an exemplary anchor maker program definition.

FIG. 3 is a block diagram illustrating the link specification and link record format used by the apparatus for extensible inter-application link management of the present invention.

FIG. 4 is a block diagram illustrating routing of linking operation requests, linking operation notices, and anchor manipulating notices managed for the navigation link type.

FIG. 5 is a block diagram illustrating routing of linking operation requests, linking operation notices, and anchor manipulating notices managed for the include link type.

FIG. 6 is a block diagram illustrating routing of linking operation notices, anchor manipulating requests and anchor manipulating notices managed for an exemplary anchor type.

NOTATIONS AND NOMENCLATURE

The detailed description which follows is presented largely in terms of algorithms and symbolic representations of operations on data bits within a computer memory. These algorithmic descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art.

An algorithm is here, and generally, conceived to be a self-consistent sequence of steps leading to a desired result. These steps are those that require physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It proves convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, objects, characters, terms, numbers, or the like. It should be borne in mind, however, that all these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities.

Further, the manipulations performed are often referred to in terms, such as adding or comparing, which are commonly associated with mental operations performed by a human operator. No such capability of a human operator is necessary, or desirable in most cases, in any of the operation described herein which form part of the present invention; the operations are machine operations. Useful machines for performing the operations of the present invention include general purpose digital computers or other similar devices. In all cases, it should be borne in mind that the distinction between the method operations in operating a computer and the method of computation itself. The present invention relates to method steps for operating a computer in processing electrical or other (e.g. mechanical, chemical) physical signals to generate other desired physical signals.

The present invention also relates to apparatus for performing these operations. This apparatus may be specially constructed for the required purposes or it may comprise a general purpose computer as selectively activated or re-configured by a computer program stored in the computer. The algorithms presented herein are not entirely related to any particular computer or other apparatus. In particular, various general purpose machines may be used with programs written in accordance with the teaching herein, or it may prove more convenient to construct more specialized apparatus to perform the required method steps. The required structure for a variety of these machines will appear from the description given below.

DETAILED DESCRIPTION OF THE INVENTION

A method and apparatus for extensible inter-application link management, having particular application to multiprocess applications executing on different computers on a network, is disclosed. In the following description for purposes of explanation, specific numbers, materials and configurations are set forth in order to provide a thorough understanding of the present invention. However, it will be apparent to one skilled in the art that the present invention may be practiced without the specific details. In other instances, well known systems are shown in diagrammatical or block diagram form in order not to obscure the present invention unnecessarily.

1. OVERVIEW:

Referring now to FIG. 1, a block diagram illustrating the preferred embodiment of the apparatus of the present invention for extensible inter-application link management is shown. The apparatus for extensible inter-application link management 10 is shown managing a plurality of links 25 linking a plurality of anchors 45 managed and manipulated by at least one anchor maker process 42.

The links 25 and anchors 45 are managed and manipulated as objects comprising a specification (spec) portion 26, 46 and a data portion 27, 47. The links 25 and anchors 45 being objects, have object types that define object operations for objects of the particular object types. The link types defining linking operations for the links 25 managed, the anchor types defining the anchor manipulating operations for the anchors 45 linked and manipulated, and the programs supporting these linking and anchor manipulating operations are defined through a plurality of definitions 34-38.

Linking operations and anchor manipulating operations comprise linking operation requests and notices, and anchor manipulating requests and notices. The apparatus 10 manages linking operation requests, linking operation notices and anchor manipulating notices. The anchor processes 42 manage linking operation notices, anchor manipulating requests and anchor manipulating notices. The linking and anchor manipulation operation requests and notices are selectively routed as request and notice messages 52-58 to components of the apparatus 10 and the anchor maker processes 42 using at least one interprocess message switch 32 having access to the definitions 52-58. The components of the apparatus 10, the anchor maker processes 42 and the switches 32 are executing on any number of computers 20, 30, 40 connected to a network (not shown).

The linking and anchor manipulating operation request and notice messages 52-58 are selectively routed by the switches 32 based on the content of the messages 52-58 and the definitions 34-38. A linking/anchor manipulating operation request/notice message 52-58 is delivered to at most one link maker or anchor maker process 12-16, 42 to handle. Each linking/anchor manipulating operation request message 52-58 also entails a reply to the sending link/anchor maker process 12-16, 42 from the receiving switch 32 based on the selection or handling results.

A linking/anchor manipulating operation request/notice message 52-58 may be addressed to an object, i.e. a link 25 or an anchor 45. An object oriented linking/anchor manipulating operation request/notice message 52-58 comprising an non-overridden inherited object operation is delivered to the predecessor link/anchor maker process 12-16, 42. An object oriented linking/anchor manipulating operation request/notice message 52-58 comprising an overridden inherited object operation is also delivered to the predecessor link/anchor maker process 12-16, 42, if the predecessor attribute is set, otherwise to the overriding inheritor link/anchor maker process 12-16, 42.

A linking/anchor manipulating operation request/notice message 52-58 may be scoped to a particular user session or a non-session message scope e.g. a file 44. Only local link/anchor maker processes 12-16, 42 are eligible to be selected for a request/notice message 52-58 scoped to a user session. Remote link/anchor maker processes 12-16, 42 are also eligible to be selected for a request and notice message 52-58 scoped to a non-session message scope.

For further information on interprocess message switching, including object oriented interprocess message switching and scoped interprocess message switching, see the Specifications in co-pending U.S. patent applications Ser. No. 07/627,735, 07/646,357, and 07/644,942, filed on Dec. 14, 1990, Jan. 25, 1991 and Jan. 23, 1991, assigned to the assignee of the present Application, Sun Microsystems Inc., entitled A Method and Apparatus for Interprocess Message Switching, A Method and Apparatus for Object Oriented Interprocess Message Switching, and A Method and Apparatus for Scoped Interprocess Message Switching.

The apparatus for extensible inter-application link management of the present invention 10 comprises at least one link maker process 12-16 managing linking operation requests, linking operation notices and anchor manipulating notices for at least one link type. The preferred embodiment of the apparatus 10 comprises a navigation link maker process 12, an include link maker processes 14 and any number of application provided link maker processes 16, managing linking operation requests, linking operation notices and anchor manipulating notices for a navigation link type, an include link type and any number of application defined link types. Each of the link maker processes 12-16 comprises an interface (not shown) for receiving the request and notice messages 56 as input. Upon receipt of the request and notice messages 56, the link maker processes 12-16 manage the requests and notices accordingly.

2. NAVIGATION LINK TYPE AND NAVIGATION LINK MAKER PROCESS

Referring now to FIG. 2a, a block diagram illustrating the object type definition for the navigation link type 60 and the program type definition for the navigation link maker program 80 executed by the navigation link maker process is shown. The navigation link type definition 60 defines the linking operation requests and notices 62-74 handled and observed for the navigation link type. The navigation link type definition 60 further defines the link making handler and observer programs for the linking operation requests and notices 62-74 being defined. The navigation link maker program definition 80 defines the start up instructions 82 and the object type independent message signatures 84-86 handled and observed by the navigation link maker program.

The linking operations observed for the navigation link type comprise a linking operation notice of "EndDeleted" 62 and a linking operation notice of "EndChanged" 64. These linking operation notices are to be observed by the navigation link maker program. The linking operations handled for the navigation link type comprise a linking operation request of "Create" 66, a link