Thursday, September 19, 2024

JMX Boosts J2EE Application Management

As J2EE adoption grows, the business use and importance of J2EE application deployments are on the rise. Increasingly, mission-critical applications are being built and deployed on J2EE infrastructures. This trend is driving the demand for better administration, monitoring, and management of J2EE applications, as well as the underlying network and systems infrastructure. The software industry has widely recognized the importance of J2EE application management to enterprise IT, and has been seeking ways to address this growing need. However, awareness of enterprise J2EE deployment issues and how to best address this need are only now emerging.

The basic elements of application management include administration and monitoring of the application infrastructure, as well as administration and monitoring of the applications themselves. Not all enterprise J2EE deployments demand sophisticated application management. The extent of the demand for effective application management will be driven by the scale, maturity, and importance of applications to the enterprise. And as J2EE deployments grow in these dimensions, good solutions to address the administration and monitoring of the J2EE applications and infrastructure deployed by enterprise IT are being deemed a priority. And application deployments that integrate well with the J2EE management architecture will be more likely to be successful.

Beyond basic application management, business use of the applications in mission-critical processes drives the demand for management functionality to support the business process and decisions. Applicationand business-specific data needs to be monitored to ensure proper response to changing conditions and dependencies across systems. As one can see from some of the business examples discussed below, the business needs may be specific to the business, but the value of being able to expose and act on application and business data is widely appreciated by business and IT managers. This ability to expose application and business data for management has thus far been difficult for, if not simply unavailable to, managers seeking such visibility.

Payoff Idea
Java Management Extensions (JMX) is a standard being adopted by the Java software industry to meet many of the J2EE application management challenges. Increasingly, mission-critical applications are being built and deployed on J2EE infrastructures. The emergence of this technology and other application infrastructures based on standard component models and “managed code” is in response to the strong needs of enterprise IT for better control of them. This emerging trend is driven by the demand for better administration, monitoring, and management of enterprise J2EE applications, as well as the underlying network and systems infrastructure, with the use of JMX.
The diversity of applications and application infrastructures has always made application management a challenge. Despite the best efforts of management vendors and others, there have been many hurdles in delivering effective application management to meet the needs of enterprise IT. A variety of management standards, technologies, and products have made small dents in the problem, but without widespread success. Meanwhile, the awareness of and business need for application management have been growing. The emergence of J2EE and other standardized application infrastructures with standard component models and “managed code” is in response to the strong need of enterprise IT for better control of application infrastructure. However, J2EE tools currently offered by the J2EE vendors address only a part of the application management problem.

An emerging management standard from the Java community is showing promise in directing us to a solution for both the core application management and business management needs. Java Management Extensions (JMX) is a standard being adopted by the Java industry to meet many of the application management challenges. As will be discussed, the powerful model adopted by JMX for simpler instrumentation and integration with existing management standards makes it a good way to bring together the elements needed to address the management problem.

The following sections describe how JMX is addressing the J2EE application management need and taking application management much further than previously possible. We first look more closely at management of J2EE applications in production, to help understand J2EE application management needs. We then discuss the issues to be addressed to enable effective application management for J2EE applications. Next we discuss JMX technology and how it provides the essential elements for J2EE application management. We show how the JMX model and capabilities can be leveraged to significantly change the usability and applicability of this technology. The automation, ease-of-use, integration, and flexibility make it possible to offer business benefits not previously available. We conclude with a discussion of the business benefits, and some examples of how these business benefits go beyond just the basic application management functions.

Managing J2EE Applications in Production

Enterprise adoption of J2EE has led to increasing deployment of applications built on J2EE in mission-critical business applications. It is useful to understand the different dimensions of management and the drivers for application management in these deployments. This will help provide a better picture of enterprise requirements.

In the early stages of any technology, when deployments are few and small-scale, there is not a lot of focus on ensuring that these applications are well managed. As the technology matures, however, an increasing emphasis is placed on going beyond application features and functionality. Enterprises then focus attention on ongoing operations, administration, and maintenance. As business use matures and scales, managing availability, downtime, upgrades, performance, sizing, security, integration, and other management aspects loom large in enterprise software deployments. As J2EE application deployments are increasingly serving mission-critical business functions, the importance of application management is rapidly growing.

The systems and network infrastructure upon which J2EE applications are deployed needs to be monitored and managed. This is to ensure that the CPU, memory, disk, network, and other resources needed by the applications are available and reliable. As the scale of the infrastructure grows, as well as the criticality of the applications to the business, it becomes more important to proactively manage these elements to ensure availability and sound performance. Not all of these aspects will need tight management in a given environment. For example, abundant network capacity may mean that network performance is not a concern needing proactive management. Therefore, each deployment may have a different set of system and network resources that need to be tightly managed.

In addition to the system and network infrastructure, the J2EE infrastructure – including thread and connection pools, database, Web server, and other software elements – needs to be monitored and managed. Here, the deployment choices will dictate what needs to be managed closely. It is quite useful for managers to be able to track the usage of various resources in the J2EE infrastructure, and be confident it is operating in good condition. Administrators may need to be notified by the management system when specific resources (e.g., connection pools) are running at full capacity to enable prompt action.

Beyond that, the focus typically shifts to end-to-end application performance and identifying performance issues in any part of the application transaction chain. Visibility into different application transactionsand the breakup of different elements of the transaction is useful in isolating performance bottlenecks. Most importantly, IT managers want to measure the end-to-end performance and be confident that the application is responsive to users. Any availability or performance issues need to be promptly reported by the management system so that rapid action can be initiated. Here, managers may not care to monitor everything, but rather focus on a subset of important application transactions.

The administration of a complex deployment becomes another management concern as the scale and diversity increase. While the typical administration console suffices for small deployments, with scale it becomes difficult to use and a source of configuration management problems. An integrated administration and configuration management solution becomes a key management requirement for large deployments. This is most important for large deployments where some aspect of each application or component is being modified frequently. Given the builtin flexibility provided to administrators by J2EE tools, there is a strong need to manage the configurations of all the servers.

Thus, J2EE application management is an important aspect of successful J2EE enterprise deployments. Most enterprises will only see increasing demand for application management tools and solutions as they increase their adoption of J2EE. Enterprise IT managers need the security of strong management solutions before they will widely deploy J2EE applications.

Application Management Challenges

For many application developers, management does not occupy a prominent place on their list of goals. In some cases, these application developers try to anticipate the administration and monitoring needs of their users, and build such administration, logging, and instrumentation capabilities into their applications. How this is done can vary considerably, and typically involves a variety of proprietary mechanisms for consoles, log files, and instrumentation mechanisms. While this seems to fulfill the immediate needs anticipated by application developers, this is usually a poor fit with the real requirements of enterprises that have to deal with a complex integration of many such applications, each with its own way to do administration and monitoring. For these enterprises, managing the diversity of management tools becomes a challenge in its own right.

A lack of perspective may often be the cause for the limited application management capability anticipated by developers. This goes beyond the fact that application developers are rightly focused on their own application. An operational maturity level is required to even feel a need for many of these management capabilities. Without scale and diversity, it is easy to make do without many of these capabilities. It is typical in a small deployment or organization to have no application management tools. However, once an organization experiences scale, diversity, outages, downtimes, and other operational facts of life, all these dimensions of management take on increased importance. It is often a result of experiencing high-profile outages that many of these enterprises have matured their processes and tools.

It is difficult – if not impossible – to anticipate all the management needs of a complex deployment with a diverse set of integrated systems and applications. Management tools address some of the needs some of the time, but it is typically necessary for operations to adapt its people, processes, and homegrown tools to deal with the limitations of available management solutions. IT operations has had to work with imperfect and incomplete management solutions for any complex deployment.

Given the different applications from a range of software vendors, and the multitude of custom-developed J2EE applications, application management vendors are hard-pressed to keep up with the real requirements. Applications evolve and change, and expecting application vendors to fully instrument and manage even the major commercial applications is difficult. They simply cannot serve more than a few select applications in this way. And more significantly, the vast majority of enterprise applications are custom-developed applications that are not instrumented by management vendors.

There is therefore a need for standard instrumentation by applications, such that the management application vendors can focus on using the data effectively from the many applications that expose them. While this has been recognized for some time, the range of approaches that have tried to address this problem over the years is impressive. These include SNMP, DMI, CIM/WBEM, AMI, and a host of other initiatives. Each has made some contribution, but we are left without a good solution to the problem. One cannot overlook the difficulty of instrumentation for application developers as one of the major reasons for the lack of a good solution.

Application developers view management as a chore to be performed as a last priority. They are tasked with focusing on the core application functions. Having them learn the details of management protocols and remote management systems before they can properly do instrumentation is a way to ensure that not much gets done. Therefore, both a limited understanding of the management requirements as well as a lack of efficient ways of getting the job done have hampered application developers. For the Java and J2EE community, JMX provides ways to get beyond these limitations.

JMX is playing a key role in shaping this trend toward better management of applications and application infrastructures. For example, many J2EE application server providers are using this technology for core control and management functions, and have made JMX an essential building block of their products. However, the most interesting aspect of this technology is that it enables powerful management capabilities for the applications themselves, rather than just the J2EE server or other middleware infrastructure. This ability to easily and directly manage the specific applications built on J2EE or other infrastructure is a major benefit of this new technology.

JMX Technology

JMX is a Java Community Process standard that specifies a model and the interfaces for remote or local management of Java applications. An important goal for JMX is to allow a broad range of management systems and applications access to instrumentation and control of the managed applications. JMX achieves this goal with a creative model that uses a common set of application management components and provides access via multiple protocols, such as SNMP and HTTP. With JMX, applications can be instrumented once and be managed via multiple protocols accessing the same management instrumentation. Furthermore, it allows for rapid manageability in ways that no longer require heavy lifting by application developers.

The architecture for JMX is illustrated in Exhibit 1. The goal of enabling remote management from different kinds of management applications and systems is solved with a layered approach.

  • At the application level (called the instrumentation level), components called MBeans provide the application-specific management information. These MBean components, which bear some similarity to Java Beans, provide the essential visibility and control for managing applications. These components interact with the applications and are developed for each application based on its management needs. For example, an MBean may provide a method to shut down an application component.
  • The agent level interfaces to the MBean components and provides a management interface to these components. The MBean server is the key component in this layer, and provides a set of management functions useful for managing MBeans.
  • The connector level, or the protocol level, consists of one or more connector (or protocol adaptor) components that provide access to remote management systems.
  • Depending on the protocols supported by the JMX implementation, remote managers supporting SNMP, HTTP, or other management protocols can access the management information and control exposed by the MBeans for each application. Multiple management systems using different protocols can now simultaneously access the application management capability. Thus, JMX-based application management can be made available to existing enterprise management consoles traditionally used in enterprises.

    By cleanly eliminating protocol and connector dependency from the MBeans and application instrumentation, JMX makes a number of other benefits possible. Management access to information and control of applications has always depended on providing this access through appropriate instrumentation. Through this simple but rich component model for creating this instrumentation, JMX makes it easier for developers. More importantly, it makes possible automated tools to generate instrumentation and radically simplify the burden on the application developer. This new breed of tool empowers the developer to quickly and easily provide the kind of information needed to properly manage his or her application.

    JMX is also designed to meet the trend toward distributing application intelligence, rather than centralizing processing using dumb agents. This trend is driven by commoditization of processor power and memory, enabling more powerful distributed agents. Processing information closer to the source increases the ability to act on information instead of volumes of data and improves responsiveness. JMX is therefore a great fit with the drive to expose the appropriate information for business and service-level management.

    The rise of Java and J2EE for the development of server-based applications has led to standard component models for server-side development. These well-defined component models are widely used by application developers in building applications that are being deployed for mission-critical enterprise functions. JMX, with its model of application instrumentation, is a great fit with these standard ways of building applications in Java and J2EE. Not only does it make it easy for developers to build this application instrumentation, but also gives rise to new ways of automating this task.

    Automating Instrumentation For Application Management

    The industry has long recognized that solving the application management problem would mean finding a good solution for the instrumentation of applications. Application management requires the ability to expose management information and control of applications via instrumentation. However, getting the instrumentation done has been a diffi- cult task, and many of the prior application management efforts have been largely unsuccessful probably for that very reason. Instrumentation is essential to enable effective management of applications and used to require a lot of effort and code by developers to achieve it.

    If the instrumentation problem were made easy, it would open up application management and bring about many more effective solutions. Instrumentation is essentially what allows management solutions to monitor, administer, and manage applications. With good instrumentation, all kinds of management are feasible and the full range of needs is easily met. Management applications such as administration consoles, event consoles, performance management, configuration management, etc. would be easy to deliver, given the range of management frameworks and tools available.

    The JMX model of instrumentation, which decouples the management protocol dependencies from the instrumentation, simplifies the problem. It allows developers to focus on the core instrumentation without having to figure out the details of the remote management protocols. However, the most significant benefit for instrumentation comes from combining JMX with self-describing capabilities within Java components. This enables a level of instrumentation automation that has a significant productivity impact. With standard component models and development architectures, the problem gets further simplified into fewer scenarios where automation is needed.

    Freed of the dependence on management protocols and the specifics of management systems, exposing application management information and control can now be directly based on the application being managed. Tools that analyze the application and generate management are thus possible. And as a result, a new category of automated management tools based on JMX is emerging. This frees the application developer from the burden of building management instrumentation. For example, there is no longer a need for the application developer to manually add instrumentation code to measure the performance of business methods. The only task for the application developer is to select what information and control need to be exposed for management, and the tools and JMX implementation take care of the rest. The tool can generate the management instrumentation code, compile, and even deploy it automatically in many cases.

    An important consequence of this kind of tool is the ability to add and change the management information and control being exposed without touching or disrupting the application code itself. As a result, manageability can be added or changed at any time in the product life cycle. As many application developers know, the management requirements sometimes change when the “rubber meets the road.” This type of tool allows for meeting these changing requirements, without the long delays associated with any change in the application code.

    These benefits make it easy for operations and business staff to drive the capabilities post development, and post deployment. Thus, business and operations managers can react to real operations needs based on actual experience. Just as in software development, for management as well, the waterfall model of anticipating all requirements and capabilities ahead of time is not optimal. An iterative process of adding management capabilities based on needs arising out of ongoing operations is the best approach. The JMX tools make it possible for operations and business managers to quickly react to changing requirements and to have a better understanding of their needs.

    As previously mentioned, this is applicable to more than just measuring availability and performance. Application and business data can be readily monitored along with availability and performance. This may include database, log file, or other sources of application data. The automated JMX tools make it easy for managers to leverage this data for business benefits such as greater operational efficiency, better customer service, and other benefits. The next section describes some of these business benefits.

    Business-Oriented Management

    Given the new ability offered to application developers and others to add manageability to an application at any stage, a number of benefits arise. This ability to quickly and easily overlay access to application management information and control is most valuable to business managers. Once applications become mission critical and widely used, many ideas are generated in the business to improve visibility or use the information in the application to trigger proactive management. However, managers often find that these ideas are bound to the application software development cycle, which has to be a long cycle for any production application. The ability to quickly add manageability will make it possible for short-term projects to mine this information and provide proactive monitoring.

    In today’s information economy, concepts such as business activity monitoring (BAM) and real-time enterprise all capture a common need of enterprises to get rapid access to information and respond quickly based on that information. BAM is a term defined by Gartner for the concept of providing real-time access to critical business performance indicators to improve the speed and effectiveness of business operations. And the real-time enterprise is a similar idea, where the end-to-end business processes in the enterprise are integrated in real-time, reducing lead-times and improving efficiency and responsiveness to customer demands. In a traditional model of changing the application every time a business need is identified, the cycles of implementation are too long. With JMX and the capabilities it opens up, enterprises can quickly overlay management capability on existing applications without disrupting the application development or operation. The business objectives can thus be met in a very timely manner. JMX is therefore another powerful tool in an IT manager’s arsenal to achieve the promise of BAM and real-time enterprises.

    In an enterprise J2EE deployment, application management could thus be used at multiple levels. Once application availability and performance is being monitored, administered, and managed, the IT operations problem can be considered under control. However, the applications and infrastructure are typically being used for a business purpose and the business managers desire visibility as well. As the business use evolves, the business managers would like to monitor and act on specific business data being generated by these applications. This helps drive business decisions and achieve efficiencies and other business benefits. The speci fics vary with each business, but some examples will help illustrate the business benefits.

    Consider the example of a call center where operators work on J2EE applications in each step of their call processing. The process manager needs to monitor many aspects to effect improvements in the process. Sometimes, these needs are anticipated ahead of time and collected in logs or databases for use. However, what needs to be measured often changes as the process manager looks for new efficiencies or tries modi fications to the process. The ability to collect data on time spent in speci fic steps can help in driving and measuring efficiencies through process changes. For example, a process manager may want to know how much time operators spend accessing or searching a specific remote database for information, so that he can evaluate whether to invest in a faster local database optimized for their use. With the JMX tools, this kind of data can be mined at any time without interfering with or depending on the software development cycle of the call center application.

    Another example is an E-commerce site, where customers place online orders for a range of products. For a successful site of any noteworthy scale, application performance is a significant concern, requiring good monitoring and management. Measuring buying patterns along with application performance is useful in knowing when one impacts the other. In addition, there are often cases where application data is very useful to business and IT managers for capacity planning, managing inventory, or almost any aspect driving business decisions. While such capabilities are sometimes built into the core applications, most business applications do not capture all such useful data across all the applications. The availability of application management solutions to provide this kind of data on demand can help drive business decisions for significant benefits. With JMX tools, business managers can ask for and quickly obtain this kind of business data from the application to drive changes.

    Click here to sign up for FREE B2B / tech newsletters from Murdok!

    Tony G. Thomas is CTO of AdventNet, the first independent vendor of JMX technology. AdventNet provides management software products, which includes ManageEngine, a JMX management tool. Thomas is a member of the Java Community Process Expert Group driving JMX standards. Prior to founding AdventNet, he was at AT&T Bell Laboratories where his responsibilities included building and managing OSS software solutions. He obtained his PhD in Engineering from the Johns Hopkins University. He can be reached at tgt@adventnet.com.

    Related Articles

    1 COMMENT

    LEAVE A REPLY

    Please enter your comment!
    Please enter your name here

    Latest Articles