1 Introduction to CAMM

Leaders in today's IT organizations are under tremendous pressure to deliver mission-critical business applications while dealing with constantly evolving business requirements. To overcome these challenges, many have turned to J2EE and service-oriented architecture (SOA) to help them attain higher levels of performance and agility. As IT organizations deploy more J2EE and SOA applications into QA and production, they start to discover that conventional methods of managing application performance, such as JMX data collection and byte-code instrumentation, are no longer adequate.

CAMM is the only intelligent ASM platform available that can effectively overcome the management challenges of today's complex, distributed J2EE and SOA applications. This chapter further expands on the new concept of an intelligent ASM platform.

This chapter provides the following information:

1.1 Overview

Unlike conventional APM toolkits, Oracle Composite Application Monitor and Modeler (henceforth referred to as CAMM) analyzes J2EE and SOA applications to capture the complex relationships among various application building blocks in its AppSchema model - the core of the Oracle intelligent platform.

Using the insights stored in AppSchema, CAMM is able to deliver an ASM environment that self-customizes out-of-the-box, evolves with change, minimizes expert involvement, and delivers a holistic, service-oriented view across heterogeneous environments. Adopting an intelligent platform such as CAMM enables an enterprise to more efficiently manage distributed applications, attain management agility, and lower total cost of ownership.

See the following sections for additional information.

1.1.1 Terminology

The following terminology is used throughout this manual.

Table 1-1 Terminology

Term Definition

ASM

Application Service Management

APM

Application Performance Management

DIY

Do-It-Yourself

ISV

Independent Software Vendor

Request Trace

A single thread executing a request. Shows as a bar in the hierarchy view.

Request Trace Events

The nodes in the left pane

Request Trace Event View

Transaction event view

SLA

Service Level Agreement

SLO

Service Level Objective

SOA

Service-Oriented Architecture

Transaction Analysis

Transaction tracing

Transaction Hierarchy View

The Transaction Hierarchy View displays a complete transaction hierarchy in a Gantt chart representation showing the execution of each transaction on an absolute timeline.

UI

User Interface

WSRP

Web Services Remote Portlets

WSDL

Web Services Description Language


1.1.2 Managing Complex J2EE and SOA Applications

Today's J2EE and SOA applications enable enterprises to deliver mission-critical business functions to key constituencies - most often their customers, partners, and employees. These composite applications are assembled from many different J2EE components and exposed services distributed across a heterogeneous environment. Unlike conventional monolithic applications of yesteryear, the complexity of today's J2EE and SOA applications has grown exponentially for the following reasons:

  • Highly distributed execution

    Interconnected application components executing in different runtime environments significantly increase execution complexity.

  • Significant code generation

    Code generation associated with modern application servers and application development frameworks significantly increases architectural complexity.

  • Rapid application deployments and changes

    Incremental application deployments and changes at a rapid pace significantly increase operational complexity.

Regrettably, conventional application performance management (APM) toolkits cannot effectively overcome the escalating challenges of J2EE and SOA complexity because they share the following flaws:

  • Focus on resource-centric measurements and views

    Conventional APM toolkits associate measurements and views to the individual agents. This approach makes managing applications with highly distributed components and runtimes extremely difficult.

  • Require deep J2EE, SOA, and application expertise

    Configuring conventional APM toolkits to manage today's J2EE and SOA applications requires teams of experts with deep J2EE, SOA, and application knowledge. Based on their knowledge, these experts perform various Do-It-Yourself (DIY) manual tasks. Heavy reliance on experts strains IT resources and increases dependency risks.

  • Depend on repetitive DIY manual processes

    Setting up an effective ASM environment with conventional APM toolkits requires teams of experts to perform DIY manual tasks such as metric selection, metric grouping, threshold setting, alert action configuration, and so on. As new application deployments and updates occur, teams of experts must religiously follow a number of repetitive DIY manual processes to maintain the effectiveness of these APM environments. This manual and expensive approach breaks down and spirals out of control with rising complexity and rapid rate of change.

Given these flaws, enterprises using conventional byte code instrumentation APM toolkits for J2EE must commit significant amount of IT resources to set up and maintain effective APM environments for their distributed J2EE and SOA applications. Clearly, throwing more IT resources to address the complexity problem is not the answer. To be effective at managing today's complex, distributed J2EE and SOA applications across a heterogeneous environment, enterprises must adopt an intelligent ASM platform with the following characteristics:

  • Provides holistic, service-oriented views across heterogeneous environments

    An intelligent ASM platform must provide high-level service-oriented metrics that map to low-level technology-centric metrics. These measurements must be organized in a service-oriented fashion to deliver a unified, holistic view of the numerous interconnected application components deployed across heterogeneous environments.

  • Requires minimal J2EE, SOA, and application expertise

    An intelligent ASM platform must have the ability to capture complex relationships among various interconnected components of today's J2EE and SOA applications. This ability can help minimize reliance on J2EE, SOA, and application experts for setting up and maintaining effective APM environments.

  • Eliminates repetitive DIY manual processes

    An intelligent ASM platform must eliminate repetitive DIY manual processes by delivering the ability to self-customize out-of-the-box and evolve with change. Elimination of these repetitive DIY manual processes is the only way to deal with rising complexity and rapid rate of change with ease.

1.1.3 Delivering a Service-Oriented View Across Environments

Today's mission-critical business functions are powered by J2EE and SOA applications that comprise numerous interconnected components deployed across highly distributed environments. To manage these applications effectively, enterprises must first gain an understanding of the complex relationships among the business functions, associated interconnected components, and the underlying runtime environments. To enable clear and accurate understanding, IT organizations need holistic, service-oriented views that span across heterogeneous environments.

Furthermore, appropriate rendering of these views enables users at different levels of the organization to collaborate with each other and do their respective jobs more efficiently.

Unfortunately, conventional APM toolkits are incapable of providing holistic, service-oriented views due to limitations associated with their management approaches. Let's examine some of these approaches in more detail:

  • Server-centric management

    This is a typical approach used by enterprise system management frameworks to gain visibility into the J2EE tier. This resource-centric approach collects availability and performance measurements from various J2EE containers across the enterprise and organizes them into a single view. While adequate for monitoring the health of various servers, this approach does not provide deep enough visibility for application level management.

  • JVM-centric application management

    Commonly used by conventional APM toolkits for J2EE, this resource-centric approach collects low-level technology-oriented measurements from components running in a single JVM. While these toolkits offer ways for users to arbitrarily group measurements from multiple JVMs into logical units, these groupings are imprecise representations of distributed applications. While this approach has been the most common method for monitoring J2EE applications, it increasingly falls short as J2EE applications become more complex, distributed, and service-oriented.

  • Transaction tracing

    The transaction-centric approach follows the path of a single transaction across multiple resources and collects low-level technology-oriented measurements along the way. While this approach provides sufficient visibility for distributed applications, it incurs significant overhead per trace and is thus not traditionally employed for production environments. Consequently, conventional APM toolkits employ techniques like sampling rate limitation, sampling window reduction, and overflow protection to control overhead. These visibility-limiting techniques and the need to identify target transactions beforehand make this approach less desirable for managing J2EE and SOA applications continuously.

    Oracle developed the only intelligent ASM platform capable of delivering a holistic, service-oriented view across heterogeneous environments for J2EE and SOA applications. CAMM uses the AppSchema modeling technology to capture complex relationships among distributed applications, software components and runtime infrastructure. The semantic mappings stored in the AppSchema model enables CAMM to accurately measure performance of its managed entities across heterogeneous environments in the appropriate context. Moreover, features like AppSchema Visualization and Navigation significantly improve the overall usability. AppSchema Visualization displays these complex relationships in an organized fashion via different visualization techniques.

Figure 1-1 Topology View in CAMM

Surrounding text describes Figure 1-1 .

AppSchema Navigation provides efficient ways for you to access relevant information using techniques like hierarchical traversal, architecture model navigation, string queries, drill down, drill out and more.

Use the URL to search for the most appropriate representation of the AppSchema mode.

Figure 1-2 AppSchema View in CAMM

Surrounding text describes Figure 1-2 .

1.1.4 Avoiding Involvement from J2EE, SOA, and Application Experts

Today's enterprises IT organizations are under constant pressure from corporate leadership to create solutions that enable companies to obtain competitive advantages or maintain parity. To churn out applications that meet these fast changing requirements, enterprise developers and architects have turned to J2EE, SOA, and other application development frameworks to maximize efficiency and flexibility. Over time, these experts with specialized knowledge on the way these frameworks are used in their respective IT organizations become instrumental in the software development lifecycle process.

In recent years, demand for J2EE and SOA applications has increased steadily. As a result, IT organizations are now experiencing expertise shortages as existing specialized resources are stretched to their limits. Consequently, IT organizations are seeking new ways to address expertise shortage, minimize reliance on specialized resources, and give experts more bandwidth to focus on value-added activities.

Unfortunately, conventional APM toolkits only make this problem worse. Setting up and maintaining an effective APM environment with conventional APM toolkits requires deep J2EE, SOA, and application knowledge. With these toolkits, experts are needed to determine the architecture of these distributed applications, figure out the configuration of the runtime environments, and select optimal locations to insert performance measurements. These knowledge-intensive tasks require IT organizations to dedicate even more specialized resources, thus further worsening the expertise shortage problems.

It is very difficult to monitor applications created by third-party ISVs and off-shore development teams with these conventional tools due to lack of in-house knowledge.

To overcome these challenges and manage J2EE and SOA performance effectively, IT organizations must adopt an intelligent platform like CAMM that requires minimal expertise to set up and maintain. Unlike conventional APM toolkits, CAMM does not rely on human expertise to set up and maintain customized APM environments. Instead, CAMM uses a unique model-driven approach that leverages the information stored in its AppSchema model to keep the involvement of experts to the minimum. CAMM's unique ability to self-customize out-of-the-box and evolve with change makes it the perfect solution for managing not only custom enterprise applications, but also applications developed by external parties.

1.1.5 Eliminating Repetitive Do-It-Yourself (DIY) Manual Processes

For years, developers and architects relied on repetitive DIY manual processes to measure application performance. Since the advent of Java byte-code injection techniques in the late 1990s, IT organizations have gradually abandoned the completely manual source-code instrumentation techniques in favor of partially automated byte-code instrumentation techniques. Conventional APM toolkits have capitalized on this trend by offering features that would insert byte-code instrumentation automatically. Regrettably, these conventional APM toolkits did little to reduce the repetitive DIY processes required to set up and maintain effective APM environments.

With conventional APM toolkits, IT organizations must go through the following activities repetitively in order to set up and maintain effective APM environments:

  • Understand application structure and runtime configuration

  • Manually select relevant performance measurements for each application

  • Apply context by creating arbitrary metric groups manually

  • Update the APM environment when changes occur

The demand on today's IT organizations to efficiently churn out enterprise applications has stretched existing IT resources to their limits. To make matters worse, IT organizations are deploying more applications into production faster and making application changes more frequently. These trends combined with expertise shortages make it more difficult for IT organizations to keep their APM environments up-to-date. As a result, IT organizations look for ways to minimize wasteful activities - such as repetitive DIY manual processes associated with conventional APM toolkits.

CAMM can help IT organizations overcome this challenge. Based on a unique model-driven approach, CAMM is the only intelligent ASM platform that eliminates repetitive DIY manual processes. To achieve this level of self-customization and continuous change adoption, CAMM uses its AppsSchema modeling technology to perform the critical task of analyzing application structure and infrastructure configuration. After capturing these insights in the AppSchema model, CAMM leverages this information to establish a fully customized ASM environment. To keep this environment up-to-date, CAMM continuously updates the AppSchema model as new applications are deployed and changes are applied. CAMM's unique ability to self-customize out-of-the-box and evolve with change enables fast time-to-value, low total-cost-of-ownership (TCO), and maximal return-on-investment (ROI).

1.1.6 CAMM Solution

Today's IT organizations leverage J2EE, SOA, and other application development frameworks to efficiently churn out powerful enterprise applications to meet fast changing business requirements. To ensure these mission-critical applications and services are available and performing at the highest level, enterprises must invest in proper application performance management (APM) solutions. Unfortunately, conventional APM toolkits and their repetitive Do-It-Yourself (DIY) manual processes, once suitable for managing monolithic applications, are no longer effectively at managing these fast changing, highly distributed J2EE and SOA applications running in heterogeneous runtime environments.

A far superior approach for managing J2EE and SOA applications is to use an ASM platform intelligent enough that it eliminates repetitive DIY manual processes and reduces the involvement of expert resources. Furthermore, this platform must be able to deliver a holistic, service-oriented view across heterogeneous execution environments by leveraging a metadata based model to capture the complex relationships among various application building blocks. Finally, enterprises require a solution that is sufficiently agile to handle frequent application and infrastructure changes. In short, today's IT organizations need an intelligent APM platform for J2EE and SOA.

Oracle provides the industry's first intelligent ASM platform for J2EE and SOA. Unlike conventional APM toolkits, CAMM analyzes these applications and captures complex relationships among various application building blocks in its AppSchema model - the brain of this intelligent ASM platform.

Using the insights stored in the AppSchema model, CAMM is able to deliver an ASM solution that self-customizes out-of-the-box, evolves with change, minimizes expert involvement, and delivers a holistic, service-oriented view across heterogeneous environments. Adopting an intelligent platform such as Oracle will enable enterprise to more efficiently manage distributed applications, attain management agility, and lower total cost of ownership.

1.2 Architecture

CAMM employs a multi-tier, fully distributed, configurable architecture to provide the scalability and flexibility to meet the changing needs enterprise deployments. CAMM can operate in two main modes: Service Mode and Standalone Application Mode.

In Service mode, CAMM operates as a service on the machine and automatically begins running when the machine first boots, and remains on perpetually. In this mode CAMM is typically installed on its own machine and dedicated to monitor a group of managed application servers.

To allow remote access to CAMM through a browser, a web container is installed. This web container provisions the CAMM UI applets to the browser and maintains communication with these applets.

Figure 1-3 shows CAMM deployed in Service Mode.

Figure 1-3 Service Mode CAMM Topology

Surrounding text describes Figure 1-3 .

In the Application Mode, CAMM runs as an application. When you start the application, CAMM starts, and when the application is closed, CAMM discontinues operation. Application mode is valuable to run as an occasional debugging tool, perhaps on a laptop.

Figure 1-4 shows CAMM deployed in Application Mode.

Figure 1-4 Application Mode CAMM Topology

Surrounding text describes Figure 1-4 .

The following core components are deployed to form the CAMM ASM system in all modes.

1.2.1 CAMM Java Agents

CAMM Java Agents are the data collectors of the CAMM ASM system. CAMM Java Agents are deployed to all managed application servers to perform a series of tasks including collecting performance managements, tracking contextual relationships, and summarizing data in real-time while introducing as little overhead as possible. At the expiration of the predefined aggregation interval, these agents forward the summarized data to CAMM for additional analysis. For various J2EE platforms such as Oracle SOA Suite, Oracle WebLogic, and IBM WebSphere, CAMM leverages their deployment infrastructures to quickly deploy the CAMM Java Agents to all application servers.

1.2.2 CAMM Manager

CAMM Manager is the core analytical engine of the CAMM ASM system. In real-time, CAMM Manager performs complex mathematical modeling and statistical calculations with summarized data from all CAMM Java Agents. CAMM Manager can be configured with a backup to provide higher level of availability.

CAMM Manager can also be configured without the UI component, also known as headless configuration.

1.2.2.1 CAMM Manager and High Availability

Although the CAMM Manager does not have high availability (HA) built into it, administrators can have a backup CAMM Manager installed on a separate machine; this backup CAMM Manager points to the same database but is disabled. If the production CAMM Manager fails, the backup CAMM Manager can then be enabled against the same database. The backup CAMM Manager then rediscovers the application after the agent is redeployed from the backup CAMM Manager, to the managed resources in order to synchronize them. All metrics are preserved, assuming the model does not change in the short timeframe it takes to bring the backup CAMM Manager online.

The key with this backup procedure is to backup the database that CAMM uses as its repository in order to preserve the historical data. On the modeling side, the backup CAMM Manager has to rediscover the application which should happen automatically, as long as the resources are configured and the new agent has been deployed.

If historical data preservation is not a necessity, users can simply have another CAMM Manager and database and swap agents reducing the backup effort considerably.

1.2.3 CAMM Database

CAMM stores its analyzed data and application models in a CAMM Database - an operational data repository. This database is always external to the CAMM installation.

1.2.4 CAMM User Interface

The CAMM User Interface (CAMM UI) is the primary user interface for CAMM users. Users can use CAMM UI to view operational dashboards, set Service Level Objectives (SLOs), define actions, create custom views, analyze monitoring data, and more. The CAMM UI is fully configurable.