Enabling high availability and load balancing for jmx mbeans -> Monitor Keywords
Fresh Patents
Monitor Patents Patent Organizer How to File a Provisional Patent Browse Inventors Browse Industry Browse Agents Browse Locations
site info Site News  |  monitor Monitor Keywords  |  monitor archive Monitor Archive  |  organizer Organizer  |  account info Account Info  |  
11/29/07 - USPTO Class 702 |  54 views | #20070276630 | Prev - Next | About this Page  702 rss/xml feed  monitor keywords

Enabling high availability and load balancing for jmx mbeans

USPTO Application #: 20070276630
Title: Enabling high availability and load balancing for jmx mbeans
Abstract: Provided is a method for programming module load balancing and failover in a distributed computing environment. The Java Management extensions (JMX) specification is enhanced to support load balancing and provide a high-availability of JMX management beans (Mbeans). Also provided are enhancements to the programming model and infrastructure to support the enhanced programming model. Two exemplary approaches for load balancing and failover are provided, one based both upon clustered Mbeans and one based upon unclustered Mbeans. In the unclustered approach, client affinity is supported in that a request from a particular client can be routed to a particular Mbean. In the clustered approach, a specific Mbean can be invoked by providing a special parameter in the Mbean invocation or by adding a special property to the specific Mbean's ObjectName to indicate that during runtime automatic routing should not be employed.
(end of abstract)
Agent: Greg Goshorn, P.C. - Austin, TX, US
Inventors: Michael Cheng, Leigh Allen Williamson, Tom Zhongyu Zhou
USPTO Applicaton #: 20070276630 - Class: 702186000 (USPTO)

Related Patent Categories: Data Processing: Measuring, Calibrating, Or Testing, Measurement System, Performance Or Efficiency Evaluation, Computer And Peripheral Benchmarking
The Patent Description & Claims data below is from USPTO Patent Application 20070276630.
Brief Patent Description - Full Patent Description - Patent Application Claims  monitor keywords

TECHNICAL FIELD

[0001] The present invention relates generally to a computing system and, more specifically, to a method for providing load balancing and resource reliability in a distributed computing environment.

BACKGROUND OF THE INVENTION

[0002] For the past several decades, computers have become increasingly connected. Originally, computers were stand-alone devices, each typically designed and programmed for a specific task. Soon however, the advantages of combining computers into networks became apparent. Networks of computers were able to share resources such as printers and memory and eventually even able to share, or distribute, processing tasks. For example, a search of a large database can often be broken into multiple, mutually exclusive tasks by assigning different processors and/or computers to search different segments of the database.

[0003] As computers have become increasingly interconnected, techniques have been developed to enable multiple computers to work together. One such development is Java, a high-level programming language originally developed by Sun Microsystems, Inc. of Mountain View, Calif. Java enables programmers to develop code that is platform independent. Simply stated, code written in the Java programming language is converted, or "interpreted," into actual computer instructions corresponding to a particular computer by a Java Virtual Machine (JVM) that executes on the computer. In other words, by installing a JVM that corresponds to particular computer hardware and the associated operating system, a programmer can write code without regard to the particular hardware and operating system.

[0004] In addition to the increased connectivity of traditional computers, many devices that incorporate computing components have also become both inter-connected and Java-enabled. Examples include Internet, or "web," telephones, cable boxes and televisions and application clients and servers. To facilitate the management of such Java-enable resources, Java Management Extensions (JMX) has been developed. JMX is a standard for managing and monitoring devices, applications and services in a Java environment. JMX defines a management architecture, design patterns, application programming interfaces (APIs), and services for building web-based, distributes, dynamic and modular solutions to manage Java resources.

[0005] JMX provides for the creation and implementation of Java managed beans, or "Mbeans," which are programming objects that represent objects to be managed. Each Mbean has a management interface that enables a user or program to monitor, manage and be notified of changes to particular configuration parameters of a corresponding resource. For example, an Mbean representing an application may include attributes and methods corresponding to the application's cache size. In this example, reading a "cacheSize" attribute would return the application's cache size and writing a "cacheSize" attribute would update the size of the application's cache, thus changing the application's configuration.

[0006] Although the JMX specification has been updated to include invocation between client and server in a distributed environment, the specification still does not address any type of load balancing or contingencies in the event an Mbean fails to execute. What are needed are techniques to address Mbean load balancing and failover.

SUMMARY OF THE INVENTION

[0007] Provided is a method for programming module load balancing and failover in a distributed computing environment. The following examples address how the Java Management extensions (JMX) specification can be enhanced to support load balancing and provide a high-availability of JMX management beans (Mbeans). Included in the following disclosure are enhancements to the programming model and infrastructure needed to support the enhanced programming model.

[0008] Two exemplary approaches and multiple scenarios for load balancing and failover based upon clustered and unclustered Mbeans respectively are described. In one scenario of the unclustered Mbean approach, there is a single instance of an Mbean in which, when that single instance fails, another instance of the Mbean is created, either on the same or a different server. The new instance of the Mbean is accessed using the same ObjectName as the original Mbean.

[0009] In a second scenario of the unclustered Mbean approach, multiple, similar Mbeans may be instantiated with one of the Mbeans designated to process all requests. The remaining Mbeans serve as backups and, in the event of a processing request failure one of the remaining Mbeans is designated to process requests. Client affinity is supported in that a request from a particular client is routed to a particular Mbean, until such time as that particular Mbean fails. In the unclustered approach, each Mbean is referenced by a unique ObjectName property. However, regardless of the ObjectName used, the invocation reaches the current Mbean processing the requests.

[0010] In one scenario of a clustered approach to load balancing, one or more logical ObjectName properties are employed to identify a cluster of Mbeans. The user of a particular Mbean does not need to be aware of either where an Mbean is located or how many Mbeans are within a particular cluster. A query or command directed to a particular ObjectName results in a single result from a single Mbean.

[0011] In a second scenario of the clustered approach to load balancing, each Mbean in a particular cluster has a unique ObjectName property but each Mbean shares a particular naming pattern. When querying the cluster, all Mbeans whose ObjectName properties that include a pattern of the query may return a result. When invoking an Mbean, all ObjectNames that include a particular pattern are equivalent in that a runtime infrastructure routes a request to an available Mbean, regardless of the ObjectName used for the request. A specific Mbean in a cluster can be invoked by providing a special parameter in the Mbean invocation or by adding a special property to the specific Mbean's ObjectName to indicate that during runtime automatic routing should not be employed.

BRIEF DESCRIPTION OF THE DRAWINGS

[0012] A better understanding of the present invention can be obtained when the following detailed description of the disclosed embodiments is considered in conjunction with the following drawings.

[0013] FIG. 1 is a block diagram of an exemplary computing system that employs the claimed subject matter.

[0014] FIG. 2 is a block diagram of an exemplary computer architecture that executes on the computing system of FIG. 1 and supports the techniques of the claimed subject matter.

[0015] FIG. 3 is a flowchart of an exemplary Mbean Register process for implementing aspects of the claimed subject matter.

[0016] FIG. 4 is a flowchart of an exemplary Invoke Mbean process for implementing aspects of the claimed subject matter.

[0017] FIG. 5 is a flowchart showing an Invocation Recovery path of the Invoke Mbean process of FIG. 4 in more detail.

DETAILED DESCRIPTION OF THE FIGURES

[0018] Although described with particular reference to the Java Management Extensions (JMX) standard, the claimed subject matter can be implemented in any information technology (IT) system in which load balancing and resource reliability is desirable. Those with skill in the computing arts will recognize that the disclosed embodiments have relevance to a wide variety of computing environments in addition to those described below. Further, although described with respect to Java management beans (MBeans) and the JAVA environment, the claimed subject matter also is applicable to modules, applications or any other type of interdependent computer logic. In other words, the disclosed technology is applicable to any situation in which there is interdependent computer code and a user or developer needs or wants to ensure that the computing environment is highly reliable.

[0019] In addition, the methods of the disclosed invention can be implemented in software, hardware, or a combination of software and hardware. The hardware portion can be implemented using specialized logic; the software portion can be stored in a memory and executed by a suitable instruction execution system such as a microprocessor, personal computer (PC) or mainframe.

Continue reading...
Full patent description for Enabling high availability and load balancing for jmx mbeans

Brief Patent Description - Full Patent Description - Patent Application Claims
Click on the above for other options relating to this Enabling high availability and load balancing for jmx mbeans patent application.
###
monitor keywords

How KEYWORD MONITOR works... a FREE service from FreshPatents
1. Sign up (takes 30 seconds). 2. Fill in the keywords to be monitored.
3. Each week you receive an email with patent applications related to your keywords.  
Start now! - Receive info on patent apps like Enabling high availability and load balancing for jmx mbeans or other areas of interest.
###


Previous Patent Application:
Causal ladder mechanism for proactive problem determination, avoidance and recovery
Next Patent Application:
System for measuring vital signs using bilateral pulse transit time
Industry Class:
Data processing: measuring, calibrating, or testing

###

FreshPatents.com Support
Thank you for viewing the Enabling high availability and load balancing for jmx mbeans patent info.
IP-related news and info


Results in 0.23834 seconds


Other interesting Feshpatents.com categories:
Electronics: Semiconductor Audio Illumination Connectors Crypto