CA2349883C

A smart stub or enterprise javatm bean in a distributed processing system

Abstract

A clustered enterprise Java distributed processing system(380) is provided. The distributed processing system includes afirst and a second computer coupled to a communication medium(305). The first computer includes a Java virtual machine (JVM,354) and kernel software (355) for transferring messages,including a remote Java virtual machine (RJVM). The secondcomputer includes a JVM (354) and a kernel software layer havinga RJVM (356). Messages are passed from a RJVM (365) to the JVM (354) in one computer to the JVM (354) and RJVM (365) inthe second computer. Message may be forwarded through anintermediate server or rerouted after a network reconfiguration. Each computer includes a Smart stub having a replica handler,including a load balancing software component and a failoversoftware component. Each computer includes a duplicated servicenaming tree for storing a pool of Smart stubs at a node. Thecomputers may be programmed in a stateless, stateless factory, ora stateful programming model. The clustered enterprise Javadistributed processing system (380) allows for enhancedscalability and fault tolerance.

CA2349883C, drawing sheet 1
Sheet 1 of 17

Term

Term ended

Expired 21 October 2019, 6.9 years ago.

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

74 claims: 7 independent, 67 dependent

  1. 1
    CA 02349883 2005-06-20 The embodiments of the invention in which an exclusive property or privilege is claimed are defined as follows:1. An article of manufacture including an information storage medium wherein is stored information, comprising: a first set of digital information, including a Java™ virtual machine with a stub having a load balancing software component for selecting a service provider from a plurality of service providers and a failover software component for removing a failed service provider from a list identifying the plurality of service providers, wherein the Java™ virtual machine with the stub is located on a client processing device, wherein the load balancing software selects a particular service provider, from the list of plurality of service providers, if both an affinity exists for the particular service provider and the particular service provider provides a service requested, and, wherein an affinity exists for a particular service provider when that particular service provider, or the server associated with the service provider, is currently participating in a transaction between either of the service provider or server and the client processing device.
  2. 8
    An article of manufacture including an information storage medium wherein is stored information, comprising:a first set of digital information, including a Java™ virtual machine with a Java™ bean object for selecting a service provider from a plurality of service providers;wherein the Java™ bean object has a load balancing software component that selects a particular service provider, from the plurality of service providers, if both an affinity exists for the particular service provider and the particular service provider provides a service requested, and, wherein an affinity exists for a particular service provider when that particular service provider, or the server associated with the service provider, is currently participating in a transaction between either of the service provider or server and the client processing device. CA 02349883 2005-06-20
  3. 19
    An apparatus, comprising:a processor;an instruction store, coupled to the processor, comprising an article of manufacture as recited in claim 1 ;and a data store, coupled to the processor, wherein an application program can be stored.
  4. 20
    ?\n apparatus, comprising:a processor;an instruction store, coupled to the processor, comprising an article of manufacture as recited in claim 8;and a data store, coupled to the processor, wherein an application program can be stored.
  5. 21
    A processing device implemented method, comprising the steps of:obtaining, by a stub, a list of service providers;and selecting a service provider for use in a transaction, by the stub, from the list of service providers wherein the selecting step includes selecting, by the stub, a particular service provider, from the list of plurality of service providers, if both an affinity exists for CA 02349883 2005-06-20 the particular service provider and the particular service provider provides a service requested, and, wherein an affinity exists for a particular service provider when that particular service provider, or the server associated with the service provider, is currently participating in the transaction.
  6. 30
    A processing device implemented method, comprising:obtaining a calling thread;determining, by a client, if the calling thread has an affinity for a server, wherein an affinity exists for a particular server when that particular server is currently participating in a transaction between the server and the client;determining if the server provides a service;obtaining a list of services, wherein the service is in the list of services providers;and, attempting to obtain the service. CA 02349883 2005-06-20
  7. 38
    A method of providing failover in a distributed processing system, to select which service provider within a plurality of service providers should respond to a request from a client to access a service, the method comprising the steps of:determining whether the client has an affinity for a particular service provider within the plurality of service providers;if the client does have an affinity for a particular service provider then the substeps of determining whether the particular service provider can provide the service requested, and, returning the name of that service provider to the client;CA 02349883 2005-06-20 if the client does not have an affinity for a particular service provider, or if the particular service provider is no longer available to provide the service requested, then the substeps of selecting a new service provider from the plurality of service providers, and, returning the name of the new service provider to the client;and, allowing the client to access the service using the named service provider, if the named service provider exists and can provide the service.
  8. 52
    A method of using load balancing and/or failover in a distributed processing system to select which a service provider within a plurality of service providers can respond to a transaction request from a client to access a service, the method comprising the steps of:(A) receiving a transaction request from a client to access a service;(B) determining whether the client has an affinity for a particular service provider within said plurality of service providers;(Cl) if the client does have an affinity for a particular service provider then the substeps of determining whether the particular service provider can provide the service requested, and, returning the name of the particular service provider to the client for use by the client in accessing the service;(C2) if the client does not have an affinity for a particular service provider, then the substeps of selecting a new service provider from the plurality of service providers, determining whether the new service provider can provide the service requested, and, returning the name of the new service provider to the client for use by the client in accessing the service;and, (D) allowing the client to request service from the named service provider, if the named service provider is available and can provide access to the service requested.
  9. 66
    A system for load balancing and failover of requests by a client to access a service in a distributed processing system comprising:a handler for receiving requests from a client to access a service;a plurality of service providers for providing client access to the service;software code that performs the method of determining whether the client has an affinity for a particular service provider within the plurality of service providers;if the client does have an affinity for a particular service provider then the substeps of CA 02349883 2005-06-20 determining whether the particular service provider can provide the service requested, and, returning the name of that service provider to the client;if the client does not have an affinity for a service provider, then the substeps of selecting a new service provider from the plurality of service providers, and, returning the name of the new service provider to the client;and, allowing the client to access the service using the named service provider, if the named service provider exists and can provide the service.