← Back to Patent Explorer
US5546584A Expired / Lapsed US ⏱️ 0.0 years remaining

System and method for establishing communication protocols between application programs

Assignee: Individual
•
Filing: 1995-04-13
•
Granted: 1996-08-13
•
Expires: 2015-04-13
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A method and system for implementing a common protocol for communication of data between a first application program and a second application program. The method and system uses a high level interface specification that is created in a computer program language-independent fashion using an object oriented paradigm. The high level interface specification is used to define the common protocol, and to generate first and second protocol interfaces. Either of the generated first and second protocol interfaces is capable of performing the services of a client or server, and are inserted into the first and second application programs respectively. The first and second protocol interfaces are executed by the first and second application programs for communication of data between them using the common protocol.

Inventors

  • 👤 Kenneth Lundin
  • 👤 Lars-Erik Wiman
  • 👤 Mats Svensson

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-23 22:19
CPC Classifications
G; G06; G06F; G06F8/00; G06F8/30; G06F8/38; H; H04; H04L; H04L69/00; H04L69/30; H04L69/32; H04L9/00; H04L9/40

Claims Analysis

Total Claims: 38
Claim 1
Independent Claim 298 words
A method for generating and monitoring the interaction of a plurality of a dynamically varying set of software modules, in a computing system having one or more processors, wherein each of said software modules is capable of interactively creating and manipulating objects belonging to one or more object classes, each of said object class being automatically generated from an interface specification, said method comprising the steps defining a computer-language-independent interface specification to govern the interaction of said plurality of software modules across one or more processors by the steps of; providing a unique name for said interface specification; providing a list of one or more in instance variables which define the characteristics of a class of objects; providing zero or more interaction variables specifying the public or private interaction of a group of said objects; and specifying constraints if any, on the interaction of said software modules; converting said computer-language-independent interface specification into a computer-language-specific interface implementation for a specific computing system using at least the following information; a name of a communications protocol to be used for the interchange of data between said software modules; an identification of the software modules that need to exchange data to interactively create and manipulate objects; an operational command set for each such software module: and the constraints, if any, on the interaction of said software modules; creating a plurality of functional software modules that are capable of interacting or communicating with each other using said computer-language-specific interface implementation; regulating the interaction of said software modules such that any of said plurality of software modules is permitted to initiate or respond to communications from any other software module; and executing said plurality of software modules on said computing system using said computer-language-specific interface implementation for communicating data between said software modules.
Claim 2
Independent Claim 298 words
A method for generating and monitoring the interaction of a plurality of a dynamically varying set of software modules, in a computing system having one or more processors, wherein each of said software modules is capable of interactively creating and manipulating objects belonging to one or more object classes, each of said object class being automatically generated from an interface specification, said method comprising the steps defining a computer-language-independent interface specification to govern the interaction of said plurality of software modules across one or more processors by the steps of; providing a unique name for said interface specification; providing a list of one or more in instance variables which define the characteristics of a class of objects; providing zero or more interaction variables specifying the public or private interaction of a group of said objects; and specifying constraints if any, on the interaction of said software modules; converting said computer-language-independent interface specification into a computer-language-specific interface implementation for a specific computing system using at least the following information; a name of a communications protocol to be used for the interchange of data between said software modules; an identification of the software modules that need to exchange data to interactively create and manipulate objects; an operational command set for each such software module: and the constraints, if any, on the interaction of said software modules; creating a plurality of functional software modules that are capable of interacting or communicating with each other using said computer-language-specific interface implementation; regulating the interaction of said software modules such that any of said plurality of software modules is permitted to initiate or respond to communications from any other software module; and executing said plurality of software modules on said computing system using said computer-language-specific interface implementation for communicating data between said software modules.
Claim 3
Dependent Claim 46 words
The method of claim 1 wherein the definition of said computer-language-independent interface specification governing the interaction of said plurality of software modules across one or more processors further comprises: providing the name of a parent specification whenever said interface specification is based upon said parent specification.
Claim 4
Dependent Claim 36 words
The method of claim 1 wherein said step of converting said computer-language-independent interface specification into said computer-language-specific interface implementation performed using a stub-code generation tool, regardless of whether said software modules are linked statically or dynamically.
Claim 5
Dependent Claim 80 words
The method of claim 1 wherein said step of defining a computer-language-independent interface specification further comprises the steps of: grouping the operations of said interface specification into a plurality of two-party communications protocols, each of said two-party communications protocols specifying the communication between a pair of software modules that are parties to a communications contract; and specifying the constraints, if any, on the interaction of each of the pairs of software modules that are the parties to said communications contract.
Claim 6
Dependent Claim 77 words
The method of claim 4 wherein the specification of each of said two-party communications protocols further includes: a name of said two-party communications protocol; a name of a first software module; an operational command set for said first software module; a name of a second software module; an operational command set for said second software module; and the constraints, if any, on the interaction of the two software modules that are the parties to said communications contract.
Claim 7
Dependent Claim 20 words
The method of claim 1 wherein the functional software modules created from said interface specification further comprises an interface agent.
Claim 8
Dependent Claim 52 words
The method of claim 6 wherein said interface agent additionally comprises a despatcher that receives a signal from a communication party, parses said signal into an address and a message, strips said address from said signal and distributes said message of said signal based upon said address to a recipient software module.
Claim 9
Dependent Claim 36 words
The method of claim 1 wherein the functional software modules created from said interface specification additionally includes a protocol supervisor operating as a state machine that supervises obedience to protocol rules predefined in said interface specification.
Claim 10
Dependent Claim 42 words
The method of claim 1 wherein information about all interfaces that have been implemented for software modules within said computing system is stored centrally in a trader module that is part of the kernel of the operating system of said computing system.
Claim 11
Independent Claim 304 words
A system for generating and monitoring the interaction of a plurality of a dynamically varying set of software modules in a computing system having one or more processors, wherein each of said software modules is capable of interactively creating and manipulating objects belonging to one or more object classes, each of said object class being automatically generated from an interface specification, said system comprising: means for defining a computer-language-independent interface specification to govern the interaction of said plurality of software modules across one or more processors by the steps providing a unique name for said interface specification; providing a list of one or more instance variables which define the characteristics of a class of objects; providing zero or more interaction variables specifying the public or private interaction of a group of said objects; and specifying constraints, if any, on the interaction of said software modules; means for converting said computer-language-independent interface specification into a computer-language-specific interface implementation for a specific computing system using at least the following information; a name of a communications protocol to be used for the interchange of data between said software modules: an identification of the software modules that need to exchange data to interactively create and manipulate objects; an operational command set for each such software module; and the constraints, if any, on the interaction of said software modules; means for creating a plurality of functional software modules that are capable of interacting or communicating with each other using said computer-language-specific interface implementation; means for regulating the interaction of said software modules such that any of said plurality of software modules is permitted to initiate or respond to communications from any other software module; and means for executing said plurality of software modules on said computing system using said computer-language-specific interface implementation for communicating data between said software modules.
Claim 12
Independent Claim 304 words
A system for generating and monitoring the interaction of a plurality of a dynamically varying set of software modules in a computing system having one or more processors, wherein each of said software modules is capable of interactively creating and manipulating objects belonging to one or more object classes, each of said object class being automatically generated from an interface specification, said system comprising: means for defining a computer-language-independent interface specification to govern the interaction of said plurality of software modules across one or more processors by the steps providing a unique name for said interface specification; providing a list of one or more instance variables which define the characteristics of a class of objects; providing zero or more interaction variables specifying the public or private interaction of a group of said objects; and specifying constraints, if any, on the interaction of said software modules; means for converting said computer-language-independent interface specification into a computer-language-specific interface implementation for a specific computing system using at least the following information; a name of a communications protocol to be used for the interchange of data between said software modules: an identification of the software modules that need to exchange data to interactively create and manipulate objects; an operational command set for each such software module; and the constraints, if any, on the interaction of said software modules; means for creating a plurality of functional software modules that are capable of interacting or communicating with each other using said computer-language-specific interface implementation; means for regulating the interaction of said software modules such that any of said plurality of software modules is permitted to initiate or respond to communications from any other software module; and means for executing said plurality of software modules on said computing system using said computer-language-specific interface implementation for communicating data between said software modules.
Claim 13
Dependent Claim 49 words
The system of claim 10 wherein said means for defining computer-language-independent interface specification to govern the interaction of said plurality of software modules across one or more processors further comprises: means for providing the name of a parent specification whenever said interface specification is based upon said parent specification.
Claim 14
Dependent Claim 35 words
The system of claim 10 wherein said means for converting said computer-language-independent interface specification into said computer-language-specific interface implementation comprises a stub-code generation tool, regardless of whether said software modules are linked statically or dynamically.
Claim 15
Dependent Claim 81 words
The system of claim 10 wherein said means for defining a computer-language-independent interface specification further comprises: means for grouping the operations of said interface specification into a plurality of two-party communications protocols, each of said two-party communications protocols specifying the communication between a pair of software modules that are parties to a communications contract; and means for specifying the constraints, if any, on the interaction of each of the pairs of software modules that are the parties to said communications contract.
Claim 16
Dependent Claim 96 words
The system of claim 13 wherein the means for specifying each of said two-party communications protocols further comprises: means for providing a name for said two-party communications protocol; means for providing a name of a first software module; means for providing an operational command set for said first software module; means for providing a name of a second software module; means for providing an operational command set for said second software module; and means for specifying the constraints, if any, on the interaction of the two software modules that are the parties to said communications contract.
Claim 17
Dependent Claim 22 words
The system of claim 10 wherein said means for creating functional software modules from said interface specification further comprises an interface agent.
Claim 18
Dependent Claim 52 words
The system of claim 15 wherein said interface agent additionally comprises a despatcher that receives a signal from a communication party, parses said signal into an address and a message, strips said address from said signal and distributes said message of said signal based upon said address to a recipient software module.
Claim 19
Dependent Claim 38 words
The system of claim 10 wherein said means for creating functional software modules from said interface specification additionally includes a protocol supervisor operating as a state machine that supervises obedience to protocol rules predefined in said interface specification.
Claim 20
Dependent Claim 45 words
The system of claim 10 further comprising central storage means within a trader module that is part of the kernel of the operating system of said computing system for storing information about all interfaces that have been implemented for software modules within said computing system.
Claim 21
Dependent Claim 24 words
The system of claim 10 wherein said computing system is a distributed or modular computing system of the type commonly used in telecommunications environments.
Claim 22
Independent Claim 314 words
A method for generating and monitoring the interaction of a plurality of a dynamically varying set of software modules in a computing system having one or more processors, wherein each of said software modules is capable of interactively creating and manipulating objects belonging to one or more object classes, each of said object class being automatically generated from an interface specification, said method comprising the steps of: defining a computer-language-independent interface specification to govern the interaction of said plurality of software modules across one or more processors by the steps of: providing a unique name for said interface specification; providing a list of one or more instance variables which define the characteristics of a class of objects; providing zero or more interaction variables specifying the public or private interaction of a group of said objects; and specifying constraints, if any, on the interaction of said software modules; converting said computer-language-independent interface specification into a computer-language-specific interface implementation for a specific computing system using at least the following information: a name of a communications protocol to be used for the interchange of data between said software modules; an identification of the software modules that need to exchange data to interactively create and manipulate objects; an operational command set for each such software module; and the constraints, if any, on the interaction of said software modules; creating a plurality of functional software modules that arc capable of interacting or communicating with each other using said computer-language-specific interface implementation; regulating the interaction of said software modules such that only one of each pair of software modules is permitted to initiate communication with the other, and the other software module of said pair is only permitted to respond to queries of said initiating software module; and executing said plurality of software modules on said computing system using said computer-language-specific interface implementation for communicating data between said software modules.
Claim 23
Independent Claim 314 words
A method for generating and monitoring the interaction of a plurality of a dynamically varying set of software modules in a computing system having one or more processors, wherein each of said software modules is capable of interactively creating and manipulating objects belonging to one or more object classes, each of said object class being automatically generated from an interface specification, said method comprising the steps of: defining a computer-language-independent interface specification to govern the interaction of said plurality of software modules across one or more processors by the steps of: providing a unique name for said interface specification; providing a list of one or more instance variables which define the characteristics of a class of objects; providing zero or more interaction variables specifying the public or private interaction of a group of said objects; and specifying constraints, if any, on the interaction of said software modules; converting said computer-language-independent interface specification into a computer-language-specific interface implementation for a specific computing system using at least the following information: a name of a communications protocol to be used for the interchange of data between said software modules; an identification of the software modules that need to exchange data to interactively create and manipulate objects; an operational command set for each such software module; and the constraints, if any, on the interaction of said software modules; creating a plurality of functional software modules that arc capable of interacting or communicating with each other using said computer-language-specific interface implementation; regulating the interaction of said software modules such that only one of each pair of software modules is permitted to initiate communication with the other, and the other software module of said pair is only permitted to respond to queries of said initiating software module; and executing said plurality of software modules on said computing system using said computer-language-specific interface implementation for communicating data between said software modules.
Claim 24
Dependent Claim 46 words
The method of claim 20 wherein the definition of said computer-language-independent interface specification governing the interaction of said plurality of software modules across one or more processors further comprises: providing the name of a parent specification whenever said interface specification is based upon said parent specification.
Claim 25
Dependent Claim 37 words
The method of claim 20 wherein said step of converting said computer-language-independent interface specification into said computer-language-specific interface implementation is performed using a stub-code generation tool, regardless of whether said software modules are linked statically or dynamically.
Claim 26
Dependent Claim 20 words
The method of claim 20 wherein the functional software modules created from said interface specification further comprises an interface agent.
Claim 27
Dependent Claim 52 words
The method of claim 23 wherein said interface agent additionally comprises a despatcher that receives a signal from a communication party, parses said signal into an address and a message, strips said address from said signal and distributes said message of said signal based upon said address to a recipient software module.
Claim 28
Dependent Claim 36 words
The method of claim 20 wherein the functional software modules created from said interface specification additionally includes a protocol supervisor operating as a state machine that supervises obedience to protocol rules predefined in said interface specification.
Claim 29
Dependent Claim 42 words
The method of claim 20 wherein information about all interfaces that have been implemented for software modules within said computing system is stored centrally in a trader module that is part of the kernel of the operating system of said computing system.
Claim 30
Independent Claim 321 words
A system for generating and monitoring the interaction of a plurality or a dynamically varying set of software modules in a computing system having one or more processors, wherein each of said software modules is capable of interactively creating and manipulating objects belonging to one or more object classes, each of said object class being automatically generated from an interface specification, said system comprising: means for defining a computer-language-independent interface specification to govern the interaction of said plurality of software modules across one or more processors by the steps of: providing a unique name for said interface specification: providing a list of one or more instance variables which define the characteristics of a class of objects; providing zero or more interaction variables specifying the public or private interaction of a group of said objects; and specifying constraints, if any, on the interaction of said software modules; means for converting said computer-language-independent interface specification into a computer-language-specific interface implementation for a specific computing system using at least the following information: a name of a communications protocol to be used for the interchange of data between said software modules; an identification of the software modules that need to exchange data to interactively create and manipulate objects; an operational command set for each such software module; and the constraints, if any, on the interaction of said software modules; means for creating a plurality of functional software modules that are capable of interacting or communicating with each other using said computer-language-specific interface implementation; means for regulating the interaction of said software modules such that only one of each pair of software modules is permitted to initiate communication with the other, and the other software module of said pair is only permitted to respond to queries of said initiating software module; and means for executing said plurality of software modules on said computing system using said computer-language-specific interface implementation for communicating data between said software modules.
Claim 31
Independent Claim 321 words
A system for generating and monitoring the interaction of a plurality or a dynamically varying set of software modules in a computing system having one or more processors, wherein each of said software modules is capable of interactively creating and manipulating objects belonging to one or more object classes, each of said object class being automatically generated from an interface specification, said system comprising: means for defining a computer-language-independent interface specification to govern the interaction of said plurality of software modules across one or more processors by the steps of: providing a unique name for said interface specification: providing a list of one or more instance variables which define the characteristics of a class of objects; providing zero or more interaction variables specifying the public or private interaction of a group of said objects; and specifying constraints, if any, on the interaction of said software modules; means for converting said computer-language-independent interface specification into a computer-language-specific interface implementation for a specific computing system using at least the following information: a name of a communications protocol to be used for the interchange of data between said software modules; an identification of the software modules that need to exchange data to interactively create and manipulate objects; an operational command set for each such software module; and the constraints, if any, on the interaction of said software modules; means for creating a plurality of functional software modules that are capable of interacting or communicating with each other using said computer-language-specific interface implementation; means for regulating the interaction of said software modules such that only one of each pair of software modules is permitted to initiate communication with the other, and the other software module of said pair is only permitted to respond to queries of said initiating software module; and means for executing said plurality of software modules on said computing system using said computer-language-specific interface implementation for communicating data between said software modules.
Claim 32
Dependent Claim 50 words
The system of claim 27 wherein said means for defining said computer-language-independent interface specification to govern the interaction of said plurality of software modules across one or more processors further comprises: means for providing the name of a parent specification whenever said interface specification is based upon said parent specification.
Claim 33
Dependent Claim 35 words
The system of claim 27 wherein said means for converting said computer-language-independent interface specification into said computer-language-specific interface implementation comprises a stub-code generation tool, regardless of whether said software modules are linked statically or dynamically.
Claim 34
Dependent Claim 22 words
The system of claim 27 wherein said means for creating functional software modules from said interface specification further comprises an interface agent.
Claim 35
Dependent Claim 52 words
The system of claim 30 wherein said interface agent additionally comprises a despatcher that receives a signal from a communication party, parses said signal into an address and a message, strips said address from said signal and distributes said message of said signal based upon said address to a recipient software module.
Claim 36
Dependent Claim 38 words
The system of claim 27 wherein said means for creating functional software modules from said interface specification additionally includes a protocol supervisor operating as a state machine that supervises obedience to protocol rules predefined in said interface specification.
Claim 37
Dependent Claim 45 words
The system of claim 27 further comprising central storage means within a trader module that is part of the kernel of the operating system of said computing system for storing information about all interfaces that have been implemented for software modules within said computing system.
Claim 38
Dependent Claim 24 words
The system of claim 27 wherein said computing system is a distributed or modular computing system of the type commonly used in telecommunications environments.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1999-08-13 2000-02-12 2000-08-13 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2003-08-13 2004-02-12 2004-08-13 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2007-08-13 2008-02-12 2008-08-13 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag