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 PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operations
- G06F11/1479—Generic software techniques for error detection or fault masking
- G06F11/1482—Generic software techniques for error detection or fault masking using middleware or operating system [OS] functionalities
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/202—Error 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/2023—Failover techniques
- G06F11/203—Failover techniques using migration
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/2097—Error 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44536—Selecting among different versions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0654—Management of faults, events, alarms or notifications using network fault recovery
- H04L41/0668—Management 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
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)
| 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)
| 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)
| 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 |
-
2001
- 2001-11-26 WO PCT/US2001/043154 patent/WO2002044835A2/fr not_active Ceased
- 2001-11-26 AU AU2002232411A patent/AU2002232411A1/en not_active Abandoned
- 2001-11-27 TW TW90129351A patent/TW527545B/zh active
Cited By (65)
| 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 |