CA2308772C

Method and system for facilitating distributed software development in a distribution unaware manner

Abstract

A system, method, and computer readable-medium for performing operations associated with browser requests are provided. Thesystem includes a plurality of dispatchers coupled to a plurality of web listeners. Each of the dispatchers receives from a correspondingweb listener browser requests received by the corresponding web listener. The dispatchers are configured to send messages through aninter-machine communication mechanism to cartridge instances. The messages cause the cartridge instances to perform the operationsassociated with the browser requests. Each cartridge instances includes a cartridge execution engine and a cartridge. The cartridgeexecution engine handles all inter-machine communication with the dispatchers, and passes the requests to the Lamiides by making callsinto the application programming interface of the cartridge. Consequently, cartridges are isolated from the complexities of inter-machinecommunication, and may therefore be used in a highly distributed system without being distribution-aware.

CA2308772C, drawing sheet 1
Sheet 1 of 13

Term

Term ended

Expired 28 October 2018, 7.9 years ago.

  1. Priority
  2. Filed
  3. Granted
  4. Expired
  5. Today

28 claims: 6 independent, 22 dependent

  1. 1
    CA 02308772 2001-02-20 -29THE EMBODIMENTS OF THE INVENTION IN WHICH AN EXCLUSIVE PROPERTY OR PRIVILEGE IS CLAIMED ARE DEFINED AS FOLLOWS:1. A method for executing an operation in a distributed system, the method comprising the steps of: executing a dispatcher on a first machine;executing a cartridge execution engine on a second machine, wherein said second machine is different from said first machine;said dispatcher receiving from a web listener a first message that requests execution of said operation, wherein said first message was sent to said dispatcher in response to said web listener receiving a browser request from a browser;in response to said first message, said dispatcher sending a second message to the cartridge execution engine over an inter-machine communication mechanism;in response to said second message, said cartridge execution engine passing a third message, through a standard cartridge interface, to a cartridge that is executing on said second machine, wherein said cartridge is one of a plurality of cartridges that each contain routines that are called through the standard cartridge interface, wherein different cartridges of said plurality of cartridges implement said routines differently thereby causing each of said different cartridges to perform different operations in response to calls received through said standard cartridge interface;and in response to receiving said third message, said cartridge executing said operation.
  2. 10
    A computer-readable medium carrying one or more sequences of instructions for executing an operation in a distributed system, wherein execution of the one or more sequences of instructions by one or more processors causes the one or more processors to perform the steps of:executing a dispatcher on a first machine;CA 02308772 2001-02-20 -31executing a cartridge execution engine on a second machine, wherein said second machine is different from said first machine;said dispatcher receiving from a web listener a first message that requests execution of said operation, wherein said first message was sent to said dispatcher in response to said web listener receiving a browser request from a browser;in response to said first message, said dispatcher sending a second message to the cartridge execution engine over an inter-machine communication mechanism;in response to said second message, said cartridge execution engine passing a third message, through a standard cartridge interface, to a cartridge that is executing on said second machine, wherein said cartridge is one of a plurality of cartridges that each contain routines that are called through the standard cartridge interface, wherein different cartridges of said plurality of cartridges implement said routines differently thereby causing each of said different cartridges to perform different operations in response to calls received through said standard cartridge interface;and in response to receiving said third message, said cartridge executing said operation.
  3. 17
    A system for performing operations associated with browser requests, the system comprising:a plurality of dispatchers coupled to a plurality of web listeners;an inter-machine communication mechanism;a plurality of cartridges, wherein each of said cartridges contains routines that are called through a standard cartridge interface, wherein different cartridges perform different operations in response to calls received through said standard cartridge interface;a plurality of cartridge execution engines that communicate with said plurality of dispatchers through said inter-machine communication mechanism and communicate with said plurality of cartridges by making calls to said routines in said plurality of cartridges through said standard cartridge interface;wherein each dispatcher of said plurality of dispatchers is configured to send through said inter-machine communication mechanism a first message to a particular cartridge execution engine of said plurality of cartridge execution engines in response to a web listener receiving a browser request that requires a particular cartridge to perform an operation;and CA 02308772 2001-02-20 -33wherein said particular cartridge execution engine is configured to respond to said first message by calling through said standard cartridge interface a routine in said particular cartridge that performs said operation.
  4. 20
    A method for causing a module of a distributed system to perform operations in a distribution unaware manner, the method comprising the steps of:executing said module on a particular machine;passing through a cartridge execution engine associated with said module requests to said module from other components of said distributed system;passing through said cartridge execution engine associated with said module replies from said module to said other components of said distributed system;wherein said cartridge execution engine and said module are executing on a first machine: and wherein said other components are not executing on said first machine.
  5. 23
    A method for performing operations associated with browser requests, the method comprising the steps of:executing a plurality of dispatchers that are coupled to a plurality of web listeners;executing a plurality of cartridges, wherein each of said cartridges contains routines that are called through a standard cartridge interface, wherein different cartridges perform different operations in response to calls received through said standard cartridge interface;executing a plurality of cartridge execution engines that communicate with said plurality of dispatchers through an inter-machine communication mechanism and communicate with said plurality of cartridges by making calls to said routines in said plurality of cartridges through said standard cartridge interface;wherein each dispatcher of said plurality of dispatchers is configured to send through said inter-machine communication mechanism a first message to a particular cartridge execution engine of said plurality of cartridge execution engines in response to a web listener receiving a browser request that requires a particular cartridge to perform an operation;and wherein said particular cartridge execution engine is configured to respond to said first message by calling through said standard cartridge interface a routine in said particular cartridge that performs said operation.
  6. 26
    A computer-readable medium carrying one or more sequences of instructions for causing a module of a distributed system to perform operations in a distribution unaware manner, wherein execution of the one or more sequences of instructions by one or more processors causes the one or more processors to perform the steps of:executing said module on a particular machine;passing through a cartridge execution engine associated with said module requests to said module from other components of said distributed system;passing through said cartridge execution engine associated with said module replies from said module to said other components of said distributed system;wherein said cartridge execution engine and said module are executing on a first machine;and wherein said other components are not executing on said first machine.