WO2002044835A2 - Procede et systeme d'execution d'une multiplicite d'objets logiciels dans une multiplicite de systemes materiels - Google Patents

Procede et systeme d'execution d'une multiplicite d'objets logiciels dans une multiplicite de systemes materiels Download PDF

Info

Publication number
WO2002044835A2
WO2002044835A2 PCT/US2001/043154 US0143154W WO0244835A2 WO 2002044835 A2 WO2002044835 A2 WO 2002044835A2 US 0143154 W US0143154 W US 0143154W WO 0244835 A2 WO0244835 A2 WO 0244835A2
Authority
WO
WIPO (PCT)
Prior art keywords
node
nodes
router
platform
object router
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
PCT/US2001/043154
Other languages
English (en)
Other versions
WO2002044835A3 (fr
Inventor
Gregory L. Gingerich
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to AU2002232411A priority Critical patent/AU2002232411A1/en
Publication of WO2002044835A2 publication Critical patent/WO2002044835A2/fr
Publication of WO2002044835A3 publication Critical patent/WO2002044835A3/fr
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operations
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1482Generic software techniques for error detection or fault masking using middleware or operating system [OS] functionalities
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/203Failover techniques using migration
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2097Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements maintaining the standby controller/processing unit updated
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44536Selecting among different versions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • H04L41/0668Management of faults, events, alarms or notifications using network fault recovery by dynamic selection of recovery network elements, e.g. replacement by the most appropriate element after failure

Definitions

  • This disclosure generally teaches a method and system for deploying and executing software objects in a network of processors.
  • the disclosed techniques are embodied in computer platform systems, methods for creating a computer platform and related computer program products.
  • remote objects While implementations of remote objects have varied, the general approach involves, for example; marshalling objects, method invocations, and data attributes into a byte stream for transit across a network. The byte stream representing the remote object is then demarshalled by another machine and executed 'remotely.
  • Common implementations of such remote object systems include: DCE, CORBA, XML, COM/DCOM, DOM, SOAP, and RMI. These technologies enable machines on a network to execute code remotely located on another machine. This in turn opens possibilities for the creation of scalable systems.
  • an object of the present teaching is to provide a solution that enables systems to remain highly available at all times and eliminates the need to disable system access during upgrades and maintenance.
  • a method for creating a scalable, fault tolerant computing platform on a network comprising a plurality of nodes, said method comprising initiating melding during initialization, wherein during said melding said plurality of nodes are treated as a collection and each node from said plurality of nodes joins said collection, and during melding at least a first object router is assigned; migrating objects between said plurality of nodes; and replicating objects across said plurality of nodes.
  • each node joins the collection using a process comprising: the node finding a nearby object router if the object router can be found, otherwise becoming the object router; and the node reporting available resources to the object router.
  • each node joins the collection using a process further comprising assigning network address for the node; and updating components of the node.
  • the available resources comprise memory, and at least one processor.
  • the available resource comprises network bandwidth.
  • the available resources comprise drive storage space.
  • said updating is done using data stored in a code version server.
  • the object router manages resources and distributes load evenly across the plurality of nodes.
  • the object router maintains knowledge of locations of at least a subset of all nodes in the computing platform.
  • the object router relocates or replicates objects within the plurality of nodes.
  • said migration of an object is performed using a process comprising locking the object; converting the object to a byte stream at a first node in the plurality of nodes; transferring the byte stream across the network; converting the byte stream back to the object at a second node in the plurality of nodes; updating a location of the object in the object router; and unlocking the object.
  • said replication of an object is performed by a process comprising: locking the object at a first node; forming a duplicate object ; locating the duplicate object at a second node; and unlocking the object.
  • the method further comprises subscribing to events associated with the object.
  • said duplication is performed by creating a byte stream from the object and converting said byte stream into a duplicate object.
  • the computing platform allows for evolution, wherein said evolution provides for transitioning of system software and hardware such that a seamless upgrade is possible.
  • Another aspect of the disclosed teachings is a method for performing evolution, said evolution being performed to enable a seamless transitioning of software, said method comprising: evaluating a software or hardware to be installed or upgraded; creating a dependency hierarchy tree of all objects in the computing platform at compile time; performing object class diff comparison between old and new versions of at least one class of objects; creating a transform function for each state variable that is changed; selecting an object that is an instance of the selected object class; locking the selected object; creating uninitialized instance of the new version of the selected object; initializing varialbles of the new object class instance by applying appropriate transform functions to the old object version; unlocking the selected object; and repeating relevant steps for each instance of the object class.
  • the method comprises repeating relevant steps for each object class in the computing platform.
  • the method comprises deploying client-side software.
  • the method comprises destroying older version of the objects if multiple versions of the objects are not required.
  • the object router maintains multiple instances of each of said objects.
  • a failure of a first node from the plurality of nodes is detected when a proxy object from a second node is unable to reach the first node.
  • a failure of a node from the plurality of nodes is detected when the node fails to respond to heartbeat requests from the object router.
  • a failure of node from the plurality of nodes is detected when the node fails to report either status or statistics to the object router.
  • said at least one object router responds using a process comprising: notifying other object routers other than said at least one object router; selecting an object that resided in the failed node; making replicated object corresponding to the selected object residing in nodes other than the failed node primary; locating additional computing resources within the computing platform; creating new replicates for the newly created primary objects and locating them in nodes other than nodes in which they originally resided; and notifying said other object routers of new location of the new replicates.
  • the method comprises notifying a system administrator about the failed node being off-line.
  • the method comprises repeating relevant for all objects in the failed node.
  • the computing platform responds using a process comprising: utilizing services of object routers other than said failed object router; replicating the failed object router to create a replicate object router; locating the replicate object router on at least one functional node ; and notifying at least a subset of the nodes of a new location of the replicate object router.
  • the method comprises notifying at least a subset of other object routers of the new location of the replicate object router.
  • said object router is aware of at least a subset of other object routers.
  • a network computing platform comprising a plurality of nodes, said system comprising: at least an object router, wherein said object router is capable of managing resources and distributing load evenly across the plurality of nodes, and wherein said object router maintains a knowledge of locations of at least a subset of all nodes in the computing platform.
  • the object router relocates objects within the plurality of nodes.
  • the object router maintains multiple instances of each object that is deployed in the platform.
  • each of said nodes comprise: an object melder that treats the plurality of nodes as a collection that performs melding to create said plurality of nodes and said at least one object router.
  • the platform further comprises an object versioner that maintains multiple versions of all objects within the platforms.
  • the platform further comprises an object replicator that replicates an object to maintain a duplicate of the object in a node different from the node in which the object resided.
  • the platform further comprises an object migrator that enables an object to migrate from one node to another.
  • the platform further comprises a resource monitor.
  • the platform further comprises a resource controller.
  • the platform further comprises an application object.
  • each of said nodes further comprise: a class loader that is responsible for loading classes of objects, wherein the class loader permits multiple versions of a same class to co-exist.
  • the platform further comprises an evolution module, wherein the evolution module allows the computing platform to perform evolution, wherein said evolution provides for transitioning of system software and hardware such that a seamless upgrade is possible.
  • a failure of a first node from the plurality of nodes is detected by the platform when a proxy object from a second node is unable to reach the first node.
  • a failure of a node from the plurality of nodes is detected by the platform when the node fails to respond to heartbeat requests from the object router.
  • a failure of node from the plurality of nodes is detected by the platform when the node fails to report status or statistics to the object router.
  • said at least one object router is capable of notifying other object routers other than said at least one object router.
  • said at least one object router is capable of notifying other nodes
  • said at least one object router is capable of making replicated object corresponding to at least a subset of objects residing in nodes other than the failed node primary.
  • said at least one object router is capable of locating additional computing resources within the computing platform and creating new replicates for newly created primary objects and locating them in nodes other than nodes in which they originally resided.
  • the platform is capable of notifying said other object routers of new location of the new replicates.
  • the platform is capable of notifying a system administrator about the failed node being off-line.
  • the computing platform is capable of utilizing services of object routers other than said failed object router.
  • the computing platform is capable of replicating the failed object router to create a replicate object router and locating the replicate object router on at least one functional node.
  • the platform is further capable of notifying at least a subset of the nodes of a new location of the replicate object router.
  • said object router is aware of at least a subset of other object routers.
  • Another aspect of the present invention is an object router for a network computing platform comprising a plurality of nodes, wherein said object router is capable of managing resources and distributing load evenly across the plurality of nodes, and wherein said object router maintain a knowledge of locations of at least a subset of all nodes in the computing platform.
  • the object router relocates objects within the plurality of nodes.
  • the object router maintains multiple instances of each object that is deployed in the platform.
  • the object router is capable of notifying other object routers other than said object router.
  • the object router is capable of making replicated object corresponding to at least a subset of objects residing in nodes other than the failed node primary.
  • the object router is capable of locating additional computing resources within the computing platform and creating new replicates for the new primary objects and locating them in nodes other than nodes in which they originally resided.
  • the object router is aware of at least a subset of other object routers.
  • the disclosed teachings also include a computer program product including a computer-readable medium comprising instructions to enable a computer to implement the disclosed methods.
  • FIG.l (a) shows a general network platform to which the techniques disclosed can be implemented.
  • FIG.1(b) shows a platform embodying the disclosed techniques.
  • FIG.2 shows the architecture of a node with the disclosed platform.
  • FIG.3 (a)-(c) show three examples of replication.
  • FIG.4 shows an object version tree
  • FIG.5 (a)-(b) show an embodiment of embedded object versioning.
  • FIG.6 shows an embodiment of object transformation
  • FIG.7 shows an example of classloader chaining.
  • FIG.8 shows an example of classloader hierarchy with multiple object versions loaded.
  • FIG.9 shows examples of locations where a system embodying the disclosed techniques can be installed.
  • the preferred embodiment described herein creates a highly scalable, fault tolerant computing platform that is as easily maintainable as a Redundant Array of Inexpensive Disks (RAID) based drive array. It could be referred to as a RAICTM "Redundant Array of Inexpensive ComputersTM”.
  • the preferred embodiment incorporates characteristics that allow for dynamic hardware and software reconfiguration and growth. It achieves this by introducing several unique features into the platform as follows: ⁇ Melding: Machine/Node configuration is highly automated.
  • Objects are automatically routed across the nodes to increase scalability and reliability.
  • the computing platform is self-healing in nature, when node or component failure occurs.
  • ⁇ Evolution Through automated management of software versioning and dependencies, the computing platform can be seamlessly upgraded without any noticeable interruption of services to end-users.
  • Operation of the preferred embodiment may be subdivided into a number of composite processes. It should be noted that these composite processes or process steps may be used separately or in combination, as claimed. The scope of the disclosed techniques is not limited to any particular combination.
  • FIG.l A typical network computing platform is shown in FIG.l.
  • a first plurality of gateway nodes 1.2 are connected to the Internet 1.1.
  • a plurality of processing nodes 1.3 are connected to the first plurality of gateway nodes 1.2.
  • a second plurality of gateway nodes 1.4 are connected to the processing nodes 1.3.
  • Legacy Data Sources 1.4, RAID 1.5 and management equipment 1.6 are connected to the second plurality of gateway nodes.
  • FIG.1(b) shows a platform embodying the disclosed techniques.
  • the object routers are marked OR.
  • the objects are marked OJ and replicators are marked V.
  • FIG.2 shows a node architecture for the preferred embodiment.
  • a signaling process called melding occurs.
  • the melding process is performed by a melder.
  • each node discovers other nodes and components present in the network and informs the network of its system resources including processing power, memory, storage space, and network capabilities.
  • Melding also includes the assignment of an object router 2.2 responsible for directing object access requests to and from each node.
  • Object routers monitor resource utilization across all nodes and distribute requests accordingly.
  • Object routers also maintain multiple instances of each object (located on disparate nodes) to prevent single points of failure within the network. It should be noted that in the disclosed system, object routers may serve as a replacement for more primitive remote object lookup services (including but not limited to services such as COSNaming specified by OMG).
  • migration and replication In order to handle the shutdown or failure of an individual node within the network, processes called migration and replication, performed at 2.3, provide fault tolerance and the ability to move live (executing) objects across nodes. Migration is performed by the object migrator. Replication is performed by the object replicator. These processes are also utilized during hardware upgrades, during which time individual nodes are effectively shutdown and unavailable. While individual nodes are unavailable, this remains transparent at the system level and the overall system of nodes remains highly available to all users.
  • a method such as the internet protocol DHCP is utilized to assign IP or other network addresses for each node.
  • each node's core components are updatable from data stored in a "code version server” (http, ftp or other network protocol server enabling data exchange) during startup.
  • the location of an object router is determined. After the node boots, it attempts to find a nearby object router node utilizing multicast packets, broadcast packets, or a "well known" (preconfigured) lookup address (such as in an internet protocol DNS server). If no object router is located, the node loads the 'router module' and becomes an object router node. In the preferred embodiment, it is ensured that at least one router 'mirror' exists at all times.
  • resource reporting is performed.
  • the node reports its available hardware and software resources to its object router .
  • Statistics reported can include available memory, processing units, drive storage space, network bandwidth, software installed, and software versions.
  • the object router keeps track of available resources.
  • the object router tracks utilization of resources within the nodes it manages. It is responsible for distributing load evenly across its nodes.
  • the object router also performs remote object tracking.
  • the object router maintains a knowledge of location of objects located within its nodes. It is responsible for relocating objects across nodes when required. It should be noted that location can include but is not limited to a network address and port number, DNS name, URL, or remote object reference as specified in a remote object system.
  • Resource monitoring is performed by a resource monitor module.
  • Resource control is performed by the node resource controller. Both of these modules are utilized by the object router to monitor and control the state of individual nodes.
  • these modules can be implemented utilizing JNI.
  • standardized interfaces for accessing operating system kernel structures such as process IDs, threads, memory utilization, network activity, disk activity, and related statistics, are created. These interfaces are then implemented with custom JNI wrapper objects.
  • JNI wrapper objects also provide a mechanism to control process priorities, threads, operating system configuration, and system reboot. Such wrapper objects unify these operations across a variety of operating systems.
  • Migration is the process of moving an object from one node to another.
  • Migration is performed by the object migrator.
  • the object is serialized. During this step, the object is converted to a byte stream for transit across the network.
  • the object is relocated.
  • the byte stream is converted back to an object at an available node.
  • Replication is the process of duplicating an object across multiple nodes.
  • FIGs.3(a)-(c) show three embodiments of object replication.
  • FIG.3(a) illustrates one example called "mode 1" of replication whereby an operation is initiated by the client of an object.
  • This client request may come from either objects located on another node or server, or a software application.
  • the operation (or method call) is sent to a local proxy object in the originating node, which (after having obtained location of the remote, replicated objects from an object router), sends that request to the first (or primary) remote object located at Node A.
  • Node A immediately forwards the same marshaled operation to a replicated object at Node B, then the primary object at Node 'A' proceeds to perform the operation, modifying its state as required.
  • the replicated object at Node B simultaneously performs the same operation, and sends any result set (return parameters) back to the proxy object at the node of origination.
  • a checksum value may be calculated at both remote nodes on either the result set, the internal state variables of the object, or both. This checksum step is utilized to detect errors, and correct faults that occur.
  • the mode of replication illustrated in FIG.3(a) has the advantage that it minimizes network traffic between the nodes and reduces the likelihood of network congestion at the originating node. It also "guarantees" (to a degree) that all replicates are kept synchronized with each operation. A potential negative of this approach is increased message latency due to the additional network 'hop' required from Node A to Node B.
  • FIG.3(b) illustrates a second example, called "mode 2", of replication where an operation is initiated by the client of an object (which may come from either objects located on another node or server or a software application).
  • mode 2 a second example, called "mode 2" of replication where an operation is initiated by the client of an object (which may come from either objects located on another node or server or a software application). The operation
  • checksum values of result sets, internal state variables, or both may be sent to the local proxy object, or as a "cross-check" between the remote objects. This checksum value is utilized to detect errors and insure consistency.
  • a third technique involves the proxy object communicating directly with a primary remote object, whose state changes are mirrored to one or more secondary remote object(s) that have 'subscribed' to events reflecting state changes within the primary object. Again, checksum messages can be added to improve system robustness.
  • All three techniques, modes 1-3, utilize a local proxy object in order to isolate the application programmer from the complexities of the replication process.
  • the proxy object serves as a local surrogate for the remote objects, thereby eliminating the need for an application programmer to write network, checksum, and error recovery code that can be handled by the proxy and object router working together.
  • one or more of these techniques may be utilized to maintain replicated state between remote objects, and hybrid approaches may also be feasible.
  • Object locked object is locked to prevent state inconsistency.
  • Object cloned the object is duplicated through serialization.
  • the duplicate object is remotely located at a secondary node.
  • Proxy object / Event subscription object operations are replicated.
  • Object unlocked object is unlocked and made available for use.
  • Evolution is one of the more unique and complex processes within the preferred embodiment platform. It relies on a combination of other features, including object migration, advanced versioning, specialized classloaders, and transform functions.
  • Compiling/ pre-post processor This refers to processes performed either prior/during/or post-compilation.
  • a preprocessor Prior to executing a compiler on the source code, a preprocessor can be executed that parses the source code and inserts additional (source) code within each class that stores information reflecting the version required for each external class utilized by that class. For instance, class 'A' relies on classes 'B', 'C, and 'D.' Prior to compilation, code would be inserted into class 'A' indicating the versions of classes 'B', 'C, and 'D' that are required, along with the version (most likely a computed hash of the class definition) of class 'A'. This type of a process is sometimes referred to as "source code insertion"
  • a specialized source code compiler can be constructed that inserts the versioning information, similar to that shown in FIG.5(a), automatically during the compilation process.
  • the compiler's "external symbol table" contains references to each external class or method referred to by the class being compiled.
  • An extended compiler design would add version information to the external symbol table and store this information in the produced object code for each class. This would be an extension or revision to the language's compiler.
  • Java object bytecodes or other generated object code
  • Java object bytecodes or other generated object code
  • a software tool to perform this process would typically be executed by a software developer or independent software vendor (ISV).
  • ISV independent software vendor
  • Methods 1 and 2 above do not work as well for software without available source code. This could be referred to as "object code insertion.”
  • Java Object ByteCodes are roughly equivalent to assembly/machine code produced by the compilation of C/C++ software. Similar methodologies may apply for non-Java based systems.
  • each node relies on the 'extended versioning' information that is made available for each class to load the appropriate version of each object required in the dependency tree.
  • the Node's Classloader loads Version '1' of Class 'A' it gains the knowledge that it needs to acquire/load version '2' of Class 'B' and version '3' of Class 'C
  • Non-Java based classloaders are not commonplace today, in theory such constructs could be created (i.e., a C++ Classloader or an OracleTM database Classloader) for any object based language.
  • the version numbers of the classes being compiled would be stored along with the version numbers of the external classes.
  • Utilizing computed hash values for each class is a preferred method for producing version numbers (due to uniqueness), although arbitrary version numbers [such as labels from a configuration management products like ClearCase, SourceSafe, CVS, or Continuous could also be utilized]. This process may be used in conjunction with source code repository/configuration management tools - such as the above mentioned products.
  • FIG.5(a) shows an example of version information that may be associated with objects/classes. This is intended to illustrate the relationship between object class versions. Version numbers illustrated in this figure are arbitrary. Every object class is assigned a "VersionID,” however the version table may also be stored externally to the class.
  • the version hierarchy is formed during either: a) The execution of the source code pre-processor b) The execution of the "modified" compiler c) The execution of the object code post-processor.
  • the version hierarchy is normally 'implicitly stored' at runtime/deployment time within the objects:
  • This tree could expand indefinitely - and the 'terminal' nodes of the tree are
  • Object Class 'C may depend on Object Class 'E' which depends on Java JRE 1.2 which depends on Solaris 8, OS patch version 482 which depends on 128MB RAM, 200MB drive storage, and a lOOMHZ SPARC chip version ⁇ ' or later.
  • object dependencies are not normally utilized outside of the compiler and normally do not extend beyond the confines of the language. After compilation, such information is typically discarded.
  • the disclosed system stores and utilizes both object dependencies and versioning information throughout deployment and runtime of the objects. This enables enhanced software object tracking and transitioning.
  • FIG.4 shows an object class version tree. In this figure, "v" represents the version number.
  • Compiler or compiler-like algorithms that ensure method-signature compatibility among objects and components to be deployed.
  • Programmer specified or Configuration Management Tool specified version dependencies (CVS, Continuus, Clearcase, SourceSafe, etc).
  • Information specified by vendors of third party software :
  • FIG.5(b) provides an illustration of how the version table may be stored separately from the object class. This information may be stored in one or more nodes or in an external server or database.
  • a lookup table exists within each object, consisting of a list of all Objects required by this object, and the appropriate version of each object to load. The 'version lookup table' should be apparent from the information provided in the hierarchy and pre-processor sub-sections.
  • the lookup table is a set of relationships between specified Classes and the versions of the
  • a lookup table exists within each object, consisting of a list of all objects required by this object, and the appropriate version of each object required.
  • the lookup table is a set of relationships between specified Classes and the versions of the Classes they depend on. This is stored either: a) within each object to be deployed. b) within one or more node(s).
  • Custom Classloaders Specialized classloaders are utilized that permit simultaneous loading of multiple object versions. Traditional systems (and their classloaders) only permit the loading of a single version of an object class at any given time.
  • FIG.6 illustrates an object/class transform mapping scenario for an object of class "Employee". It should be noted that the transform functions could be combined into a single transform function, or further subdivided into more functions. In this figure, VI is version 1 and V2 is version 2.
  • transform function For each new version of an object, a series of transform functions are created. The purpose of the transform function is to 'translate' an object from a prior version to the current one. For many common transforms, pre-defined functions may exist. For more difficult transforms, programmer intervention may be required.
  • the preferred embodiment incorporates several extensions to objects within the platform to facilitate the mechanisms required for migration and replication.
  • Objects within the preferred embodiment described herein support the following 'base class' extensions:
  • Object locking Objects support distributed read and write locking mechanisms.
  • Change Events Change events are generated when a state change occurs within the object. These change events may be remotely subscribed to across nodes.
  • Versioning of objects Objects are assigned a version ID that is either the computed hash of their interface or an assigned value by either the developer or configuration management tool. Additionally, objects are aware of the version IDs of objects they utilize.
  • Objects serializable Remotely accessed objects have the ability to be converted to a byte stream for transit across a network.
  • a node may require additional memory or a new audio card to support the latest version of Java upon which the application software is based.
  • the disclosed system's dependency tree goes deeper than "software object versions" and extends into language versions, runtime library versions, and Operating System requirements as well. Operating System features may in turn rely on hardware availability. This means that at deployment time, a piece of software may notify the installer that the hardware required to support it is unavailable. This would then lead into the hardware upgrade (mentioned above) required to support the software transition.
  • Classloaders are a mechanism utilized within some object-oriented languages for loading object classes into memory.
  • a common technique for changing the behavior of class loading within such systems is sometimes referred to as "classloader chaining.” Utilizing this technique, varying behaviors can be given to various classes loaded within the system.
  • An example of classloader chaining is shown in FIG. 7.
  • a "Primordial Classloader” 7.1 could be used to load language specific objects and grant these objects maximum permission to access the host system's files, memory, and network.
  • Sub-classloaders which are 'chained' to the parent (primordial) classloader could behave differently.
  • the "BootTime ClassLoader" 7.2 could add the behavior of loading classes stored in a remote server.
  • the ClassLoader associated with Application Objects 7.4 could place security restrictions on those objects, prohibiting them from accessing the local machine's files.
  • One particular limitation of a standard classloader 'chain' is that it provides no mechanism for handling multiple versions of a single object class.
  • FIG.8 shows an example of a classloader hierarchy with multiple object versions loaded. Utilizing a classloader hierarchy permits a host node in the disclosed system to load multiple versions of the same object class simultaneously.
  • JVM Java Virtual Machines
  • APIs are provided for tracking process resource utilization, starting, changing the priority of, and stopping processes.
  • APIs are provided for obtaining greater control over executing system threads.
  • the disclosed technique provides for recovery from failure of object routers. If there are two or more nodes functioning as object routers, each object router will be paired with at least one secondary mirror. Each object router is aware (directly or indirectly through a hierarchy) of other object routers within the system. A failure is detected in a fashion similar to what is described in section IV.I. Upon failure the following steps are performed.
  • the 'replicated' object router is 'cloned' (using techniques similar to the object replication described in section IV. E. above) and activated on at least one secondary node.
  • Node elected to function as object router starts object router module and reads last known state of prior router from a database, set of flat files, or other data server, [if possible]
  • System Administrator is notified of failure.
  • Other systems are notified of failure.
  • Failed object router is requested to reboot into a 'recovery' mode.
  • LV.K. Failure of Node When a node within the disclosed system fails, that failure can be detected through several means including but not limited to:
  • a 'proxy' object from another node is unable to reach the node. The failure is reported to the object router.
  • a node fails to respond to 'heartbeat' requests from the object router.
  • a node fails to report either status or statistics to the object router within a given time span or upon request.
  • the object router responds by:
  • - Object router locates the remaining object 'replicates' and makes at least one additional "clone” / replicate on secondary nodes. notifies other object routers and nodes of the new location of the replicates.
  • all messages and network traffic sent between nodes may be encrypted utilizing techniques including but not limited to: public and private key encryption, digital certificates, digital signatures, secure message digests, and shared private key encryption of data.
  • encryption algorithms and approaches utilized may include but are not limited to: DES, triple DES, BlowFish, RSA public key, SSL, TLS, PKCS, IMAP, LDAP, Kerberos, S/MIME, RC4, Diffie-Hellman, and DSA public key.
  • Various authentication schemes may be utilized. This involves a variety of digital signature and biometric approaches including but not limited to: PGP, LDAP, Kerberos, thumbprint scanners, handprint scanners, retinal scanners, voiceprint recognition, passwords, one-time passwords, hardware based key generators, smart cards, embedded devices, or any combination thereof. Such authentication schemes may be applied at the system, user, transport, object, or binary level.
  • Similar encryption and authentication techniques may also be applied to all messages, checksums, and network traffic sent between components of the system including but not limited to melders, object routers, migrators, replicators, code version servers, classloaders, node controllers, and node resource monitors.
  • messages and network traffic sent to user applications, end-users, and external systems may also be encrypted and authenticated in a similar fashion.
  • FIG.9 shows examples of locations where a system embodying the disclosed techniques can be deployed and utilized.
  • a Client System is described as a machine, computer, device, or software presenting a user interface to an end user of computing services.
  • a Client-Server system that has a client system that interacts with a server system utilizing the disclosed teachings and techniques, and hosting customer's services experiences these benefits.
  • the Client System will not experience performance degradation or failure due to hardware/software upgrades or failures within the Server System.
  • Server-Server system with a server system 'A' interacting with a server system 'B' utilizing the disclosed teachings and techniques, and hosting customer's services experiences these benefits.
  • the Server System 'A' will not experience performance degradation or failure due to hardware/software upgrades or machine failures within the Server System 'B'
  • a Customer of a system that uses the disclosed techniques is a direct purchaser of the system who utilizes it to provide reliable services to end-users.
  • Likely customers include Fortune 500 Corporations, e-commerce/web companies, System Integrators, and Application Service Providers (ASPs).
  • FreeVid.com realizes they are losing money and need to begin charging for their services. While users continue to select and watch videos, the system is evolved and new software is deployed that will require them to enter a credit card number. After the system has completed it's upgrade, users are presented with a screen informing them of the bad news, providing them with credits for 3 free viewings, and requesting payment for continued service.
  • Bill Payment system Users of a Bill Payment system that accesses their checking accounts are logged in and utilizing it's services. While they remain online, the system is upgraded to also accept credit card payments.
  • a customer purchasing a system embodying the disclosed techniques perform the tasks described herein.
  • they log into a system administration console. From the administration console, they will select a software module or set of modules to upgrade/replace. They then initiate the upgrade by pressing a 'start' or 'begin' button. A progress meter will show the upgrade occurring, and upon completion the new feature set will be available. The administrator may then 'turn off or discard prior software modules that are no longer needed.
  • a customer building software to be deployed on a system embodying the disclosed techniques performs the tasks described herein.
  • the developer will construct software modules that comply with the APIs for the disclosed system.
  • Computer program products are also within the scope of the disclosed teaching.
  • These computer program products comprise instructions on a computer readable medium that enable a computer to perform the methods disclosed herein.
  • the instructions are not limited, and include but not limited to, source code, object code and executables.
  • the computers on. which the instructions are implemented include, but not limited to, minis, micros, and mainframes.
  • the computer readable medium includes, but not limited to, floppies, RAMs, ROMs, hard drives, magnetic tapes, cartridges, CDs, DVDs, and internet downloads.
  • the system components and the processes disclosed can be implemented in any way in a selected network system. Though a software implementation is preferable, it can also be implemented by a hardware or a hardware/software combination.
  • a subset of components or processes can be implemented using pure hardware as by using ASICs.
  • software implementation there is no restriction regarding the choice or level of computer languages. For example, higher level languages like Java, C++, etc, could be used or lower level languages including assembly and machine languages could be used. Or else, a combination of computer languages could be used. Though some of the preferred embodiments described herein might appear to reveal a Java-based implementation, this is not meant to be restrictive. The choice of language and implementation would depend on many factors including the needs of the user and availability of resources.
  • compatibility issues should not be treated as being restrictive. For, example, it should be noted that a system embodying the disclosed teachings and techniques might be loaded on existing network systems. This might cause some compatibility issues. However, these compatibility issues can be overcome by a skilled practitioner without deviating from the scope of the disclosed teachings.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Transfer Between Computers (AREA)
  • Hardware Redundancy (AREA)
  • Stored Programmes (AREA)

Abstract

L'invention concerne des procédés servant à créer une plate-forme informatique extensible, insensible aux défaillances sur un réseau, ladite plate-forme étant composée d'une pluralité de noeuds. Ce procédé consiste à effectuer une fusion pendant l'initialisation, ladite pluralité de noeuds étant alors traitée en tant qu'ensemble et chaque noeud de ladite pluralité faisant partie dudit ensemble, et à affecter, pendant cette fusion au moins un premier routeur d'objet, à opérer la migration des objets entre ladite pluralité de noeuds et à répliquer ces objets au travers de ladite pluralité de noeuds. Elle concerne également des systèmes semblables à ces procédés. Elle concerne, de plus, des programmes informatiques mettant en application ces procédés.
PCT/US2001/043154 2000-11-28 2001-11-26 Procede et systeme d'execution d'une multiplicite d'objets logiciels dans une multiplicite de systemes materiels Ceased WO2002044835A2 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU2002232411A AU2002232411A1 (en) 2000-11-28 2001-11-26 A method and system for software and hardware multiplicity

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US72232100A 2000-11-28 2000-11-28
US09/722,321 2000-11-28

Publications (2)

Publication Number Publication Date
WO2002044835A2 true WO2002044835A2 (fr) 2002-06-06
WO2002044835A3 WO2002044835A3 (fr) 2002-08-29

Family

ID=24901362

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2001/043154 Ceased WO2002044835A2 (fr) 2000-11-28 2001-11-26 Procede et systeme d'execution d'une multiplicite d'objets logiciels dans une multiplicite de systemes materiels

Country Status (3)

Country Link
AU (1) AU2002232411A1 (fr)
TW (1) TW527545B (fr)
WO (1) WO2002044835A2 (fr)

Cited By (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005103924A1 (fr) * 2004-04-22 2005-11-03 Waratek Pty Limited Architecture informatique modifiee avec des objets d'initialisation
WO2006110937A1 (fr) * 2005-04-21 2006-10-26 Waratek Pty Limited Architecture d'ordinateur modifiee avec objets coordonnes
AU2005236088B2 (en) * 2004-04-22 2007-01-04 Waratek Pty Limited Modified computer architecture with finalization of objects
AU2005236086B2 (en) * 2004-04-22 2007-01-04 Waratek Pty Limited Multiple computer architecture with synchronization
AU2005236089B2 (en) * 2004-04-22 2007-02-15 Waratek Pty Limited Multiple computer architecture with replicated memory fields
AU2005236085B2 (en) * 2004-04-22 2007-02-15 Waratek Pty Limited Modified computer architecture with initialization of objects
US7581069B2 (en) 2005-10-25 2009-08-25 Waratek Pty Ltd. Multiple computer system with enhanced memory clean up
US7660960B2 (en) 2005-10-25 2010-02-09 Waratek Pty, Ltd. Modified machine architecture with partial memory updating
US7707179B2 (en) 2004-04-23 2010-04-27 Waratek Pty Limited Multiple computer architecture with synchronization
US7761670B2 (en) 2005-10-25 2010-07-20 Waratek Pty Limited Modified machine architecture with advanced synchronization
US7831779B2 (en) 2006-10-05 2010-11-09 Waratek Pty Ltd. Advanced contention detection
US7849151B2 (en) 2006-10-05 2010-12-07 Waratek Pty Ltd. Contention detection
US7849452B2 (en) 2004-04-23 2010-12-07 Waratek Pty Ltd. Modification of computer applications at load time for distributed execution
US7852845B2 (en) 2006-10-05 2010-12-14 Waratek Pty Ltd. Asynchronous data transmission
US7894341B2 (en) 2006-10-05 2011-02-22 Waratek Pty Ltd. Switch protocol for network communications
US7958329B2 (en) 2006-10-05 2011-06-07 Waratek Pty Ltd Hybrid replicated shared memory
US7958322B2 (en) 2005-10-25 2011-06-07 Waratek Pty Ltd Multiple machine architecture with overhead reduction
KR20110086114A (ko) * 2008-10-24 2011-07-27 아이엘티 프로덕션스 에이비 분산형 데이터 스토리지
US7996627B2 (en) 2005-10-25 2011-08-09 Waratek Pty Ltd Replication of object graphs
AU2005236087B2 (en) * 2004-04-22 2011-09-01 Waratek Pty Limited Modified computer architecture with coordinated objects
US8316190B2 (en) 2007-04-06 2012-11-20 Waratek Pty. Ltd. Computer architecture and method of operation for multi-computer distributed processing having redundant array of independent systems with replicated memory and code striping
US8645978B2 (en) 2011-09-02 2014-02-04 Compuverde Ab Method for data maintenance
US8650365B2 (en) 2011-09-02 2014-02-11 Compuverde Ab Method and device for maintaining data in a data storage system comprising a plurality of data storage nodes
US8769138B2 (en) 2011-09-02 2014-07-01 Compuverde Ab Method for data retrieval from a distributed data storage system
US8850019B2 (en) 2010-04-23 2014-09-30 Ilt Innovations Ab Distributed data storage
US8997124B2 (en) 2011-09-02 2015-03-31 Compuverde Ab Method for updating data in a distributed data storage system
US9021053B2 (en) 2011-09-02 2015-04-28 Compuverde Ab Method and device for writing data to a data storage system comprising a plurality of data storage nodes
US9626378B2 (en) 2011-09-02 2017-04-18 Compuverde Ab Method for handling requests in a storage system and a storage node for a storage system
US11304035B1 (en) 2020-11-23 2022-04-12 Motorola Solutions, Inc. Method and system to seamlessly upgrade cloud-based call processing services
US11509766B2 (en) 2020-11-23 2022-11-22 Motorola Solutions, Inc. Method and system to seamlessly upgrade audio services

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8607328B1 (en) 2005-03-04 2013-12-10 David Hodges Methods and systems for automated system support
US8769295B2 (en) 2005-08-01 2014-07-01 Intel Corporation Computing system feature activation mechanism
US8880736B2 (en) 2009-07-09 2014-11-04 Simon Cooper Methods and systems for archiving and restoring securely installed applications on a computing device
JP6602511B2 (ja) * 2017-06-02 2019-11-06 三菱電機株式会社 プログラムコード生成装置およびプログラムコード生成プログラム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2041992A1 (fr) * 1990-05-18 1991-11-19 Yeshayahu Artsy Acheminement d'objets dans des trajets d'intervention dans un systeme informatique reparti
US5708812A (en) * 1996-01-18 1998-01-13 Microsoft Corporation Method and apparatus for Migrating from a source domain network controller to a target domain network controller
US6167427A (en) * 1997-11-28 2000-12-26 Lucent Technologies Inc. Replication service system and method for directing the replication of information servers based on selected plurality of servers load

Cited By (65)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005103924A1 (fr) * 2004-04-22 2005-11-03 Waratek Pty Limited Architecture informatique modifiee avec des objets d'initialisation
JP2007534066A (ja) * 2004-04-22 2007-11-22 ワラテック プロプライエタリー リミテッド 複製メモリフィールドを備えたマルチコンピュータアーキテクチャ
WO2005103927A1 (fr) * 2004-04-22 2005-11-03 Waratek Pty Limited Architecture informatique modifiee avec finalisation d'objets
WO2005103925A1 (fr) * 2004-04-22 2005-11-03 Waratek Pty Limited Architecture de plusieurs ordinateurs avec synchronisation
WO2005103928A1 (fr) * 2004-04-22 2005-11-03 Waratek Pty Limited Architecture a multiples ordinateurs avec des champs de memoire dupliques
CN101908001A (zh) * 2004-04-22 2010-12-08 瓦拉泰克有限公司 具有协作对象的修改后的计算机架构
AU2005236088B2 (en) * 2004-04-22 2007-01-04 Waratek Pty Limited Modified computer architecture with finalization of objects
AU2005236086B2 (en) * 2004-04-22 2007-01-04 Waratek Pty Limited Multiple computer architecture with synchronization
AU2005236089B2 (en) * 2004-04-22 2007-02-15 Waratek Pty Limited Multiple computer architecture with replicated memory fields
AU2005236085B2 (en) * 2004-04-22 2007-02-15 Waratek Pty Limited Modified computer architecture with initialization of objects
WO2005103926A1 (fr) * 2004-04-22 2005-11-03 Waratek Pty Limited Architecture d'ordinateur modifiee avec objets coordonnes
JP2007534063A (ja) * 2004-04-22 2007-11-22 ワラテック プロプライエタリー リミテッド オブジェクトの初期化を伴う改良型コンピュータアーキテクチャ
JP2007534064A (ja) * 2004-04-22 2007-11-22 ワラテック プロプライエタリー リミテッド 同期化を伴う多重コンピュータアーキテクチャ
JP2007534065A (ja) * 2004-04-22 2007-11-22 ワラテック プロプライエタリー リミテッド オブジェクトファイナライズによる改良型コンピュータアーキテクチャ
EA009926B1 (ru) * 2004-04-22 2008-04-28 Ворэтек Пти Лимитед Модифицированная компьютерная архитектура с согласованными объектами
AU2005236087B2 (en) * 2004-04-22 2011-09-01 Waratek Pty Limited Modified computer architecture with coordinated objects
US7849452B2 (en) 2004-04-23 2010-12-07 Waratek Pty Ltd. Modification of computer applications at load time for distributed execution
US7707179B2 (en) 2004-04-23 2010-04-27 Waratek Pty Limited Multiple computer architecture with synchronization
US7788314B2 (en) 2004-04-23 2010-08-31 Waratek Pty Ltd. Multi-computer distributed processing with replicated local memory exclusive read and write and network value update propagation
WO2006110937A1 (fr) * 2005-04-21 2006-10-26 Waratek Pty Limited Architecture d'ordinateur modifiee avec objets coordonnes
US7818296B2 (en) 2005-04-21 2010-10-19 Waratek Pty Ltd. Computer architecture and method of operation for multi-computer distributed processing with synchronization
US8015236B2 (en) 2005-10-25 2011-09-06 Waratek Pty. Ltd. Replication of objects having non-primitive fields, especially addresses
US8122200B2 (en) 2005-10-25 2012-02-21 Waratek Pty Ltd. Modified machine architecture with advanced synchronization
US8209393B2 (en) 2005-10-25 2012-06-26 Waratek Pty Ltd. Multiple machine architecture with overhead reduction
US7761670B2 (en) 2005-10-25 2010-07-20 Waratek Pty Limited Modified machine architecture with advanced synchronization
US8122198B2 (en) * 2005-10-25 2012-02-21 Waratek Pty Ltd. Modified machine architecture with partial memory updating
US7581069B2 (en) 2005-10-25 2009-08-25 Waratek Pty Ltd. Multiple computer system with enhanced memory clean up
US7660960B2 (en) 2005-10-25 2010-02-09 Waratek Pty, Ltd. Modified machine architecture with partial memory updating
US7958322B2 (en) 2005-10-25 2011-06-07 Waratek Pty Ltd Multiple machine architecture with overhead reduction
US7996627B2 (en) 2005-10-25 2011-08-09 Waratek Pty Ltd Replication of object graphs
US7958329B2 (en) 2006-10-05 2011-06-07 Waratek Pty Ltd Hybrid replicated shared memory
US7894341B2 (en) 2006-10-05 2011-02-22 Waratek Pty Ltd. Switch protocol for network communications
US8090926B2 (en) 2006-10-05 2012-01-03 Waratek Pty Ltd. Hybrid replicated shared memory
US7849151B2 (en) 2006-10-05 2010-12-07 Waratek Pty Ltd. Contention detection
US7852845B2 (en) 2006-10-05 2010-12-14 Waratek Pty Ltd. Asynchronous data transmission
US7831779B2 (en) 2006-10-05 2010-11-09 Waratek Pty Ltd. Advanced contention detection
US8316190B2 (en) 2007-04-06 2012-11-20 Waratek Pty. Ltd. Computer architecture and method of operation for multi-computer distributed processing having redundant array of independent systems with replicated memory and code striping
US9329955B2 (en) 2008-10-24 2016-05-03 Compuverde Ab System and method for detecting problematic data storage nodes
WO2010046393A3 (fr) * 2008-10-24 2013-02-21 Ilt Productions Ab Stockage de données distribué
US11907256B2 (en) 2008-10-24 2024-02-20 Pure Storage, Inc. Query-based selection of storage nodes
US11468088B2 (en) 2008-10-24 2022-10-11 Pure Storage, Inc. Selection of storage nodes for storage of data
US10650022B2 (en) 2008-10-24 2020-05-12 Compuverde Ab Distributed data storage
KR20110086114A (ko) * 2008-10-24 2011-07-27 아이엘티 프로덕션스 에이비 분산형 데이터 스토리지
US9026559B2 (en) 2008-10-24 2015-05-05 Compuverde Ab Priority replication
EP2908257A1 (fr) * 2008-10-24 2015-08-19 Compuverde AB Stockage de données distribuées
US9495432B2 (en) 2008-10-24 2016-11-15 Compuverde Ab Distributed data storage
US8850019B2 (en) 2010-04-23 2014-09-30 Ilt Innovations Ab Distributed data storage
US9948716B2 (en) 2010-04-23 2018-04-17 Compuverde Ab Distributed data storage
US9503524B2 (en) 2010-04-23 2016-11-22 Compuverde Ab Distributed data storage
US8843710B2 (en) 2011-09-02 2014-09-23 Compuverde Ab Method and device for maintaining data in a data storage system comprising a plurality of data storage nodes
US10579615B2 (en) 2011-09-02 2020-03-03 Compuverde Ab Method for data retrieval from a distributed data storage system
US9021053B2 (en) 2011-09-02 2015-04-28 Compuverde Ab Method and device for writing data to a data storage system comprising a plurality of data storage nodes
US9626378B2 (en) 2011-09-02 2017-04-18 Compuverde Ab Method for handling requests in a storage system and a storage node for a storage system
US8997124B2 (en) 2011-09-02 2015-03-31 Compuverde Ab Method for updating data in a distributed data storage system
US9965542B2 (en) 2011-09-02 2018-05-08 Compuverde Ab Method for data maintenance
US10430443B2 (en) 2011-09-02 2019-10-01 Compuverde Ab Method for data maintenance
US9305012B2 (en) 2011-09-02 2016-04-05 Compuverde Ab Method for data maintenance
US8769138B2 (en) 2011-09-02 2014-07-01 Compuverde Ab Method for data retrieval from a distributed data storage system
US10769177B1 (en) 2011-09-02 2020-09-08 Pure Storage, Inc. Virtual file structure for data storage system
US10909110B1 (en) 2011-09-02 2021-02-02 Pure Storage, Inc. Data retrieval from a distributed data storage system
US8645978B2 (en) 2011-09-02 2014-02-04 Compuverde Ab Method for data maintenance
US11372897B1 (en) 2011-09-02 2022-06-28 Pure Storage, Inc. Writing of data to a storage system that implements a virtual file structure on an unstructured storage layer
US8650365B2 (en) 2011-09-02 2014-02-11 Compuverde Ab Method and device for maintaining data in a data storage system comprising a plurality of data storage nodes
US11509766B2 (en) 2020-11-23 2022-11-22 Motorola Solutions, Inc. Method and system to seamlessly upgrade audio services
US11304035B1 (en) 2020-11-23 2022-04-12 Motorola Solutions, Inc. Method and system to seamlessly upgrade cloud-based call processing services

Also Published As

Publication number Publication date
AU2002232411A1 (en) 2002-06-11
WO2002044835A3 (fr) 2002-08-29
TW527545B (en) 2003-04-11

Similar Documents

Publication Publication Date Title
WO2002044835A2 (fr) Procede et systeme d'execution d'une multiplicite d'objets logiciels dans une multiplicite de systemes materiels
US20230023262A1 (en) System and method for supporting patching in a multitenant application server environment
US7302609B2 (en) Method and apparatus for executing applications on a distributed computer system
US9690632B2 (en) Method and system for modeling and analyzing computing resource requirements of software applications in a shared and distributed computing environment
US6393485B1 (en) Method and apparatus for managing clustered computer systems
US7260818B1 (en) System and method for managing software version upgrades in a networked computer system
US20070226359A1 (en) System and method for providing java based high availability clustering framework
US6438705B1 (en) Method and apparatus for building and managing multi-clustered computer systems
US7293255B2 (en) Apparatus and method for automated creation of resource types
US20080140760A1 (en) Service-oriented architecture system and methods supporting dynamic service provider versioning
US9648084B2 (en) System and method for providing an in-memory data grid application container
Meling et al. Jgroup/ARM: a distributed object group platform with autonomous replication management
CN117908904B (zh) 一种k8s集群部署及运维管理的方法和系统
CN100394726C (zh) 一种提高基于构件软件系统可靠性的方法
CN118838606A (zh) 一种支持异构和多种操作系统的容器平台离线部署方法
Desertot et al. A dynamic service-oriented implementation for java ee servers
US7188343B2 (en) Distributable multi-daemon configuration for multi-system management
US20250088417A1 (en) Architecture for remote delivery and application of datacenter management configurations
Haddad et al. Ha-oscar: the birth of highly available oscar
Dake et al. The corosync cluster engine
da Silva Costa et al. Diversity on state machine replication
Meling Adaptive middleware support and autonomous fault treatment: Architectural design, prototyping and experimental evaluation
Hamid et al. A fault-tolerance framework for distributed component systems
Frattolillo et al. Parallel and distributed computing on multidomain non-routable networks
De Palma et al. Autonomic Administration of Clustered J2EE Applications.

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ OM PH PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG US UZ VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
121 Ep: the epo has been informed by wipo that ep was designated in this application
REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: COMMUNICATION PURSUANT TO RULE 69 EPC ( EPO FORM 1205A DATED 30.10.2003)

122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP

WWW Wipo information: withdrawn in national office

Country of ref document: JP