As more and more IT departments deploy multitier middleware platforms and frameworks for the delivery of business-critical application services, they are expecting to garner the well-publicized benefits of a service-oriented Architecture (SOA) approach: agility, flexibility, productivity and extensibility.

 

Traditional application performance management (APM) products provide deep visibility into the performance of an enterprise application’s code components, but these tools usually fail to associate this code performance with visibility to the performance of the application services delivered by these complex composite applications.For example, an application implemented with a portal framework on top of an application server delivers specific application services to end users which are represented on the portal pages by tab and page flow combinations.

 

While a traditional APM solution would generally enable an IT organization to pull metrics on the underlying code supporting an enterprise application, it typically would not allow the IT organization to set a performance metric on that particular application service or business function (i.e., the account balance query) and then provide correlation down to the code components supporting that service.In n-tier composite applications, this correlation from the application services to the code would provide IT organizations with the ability to both diagnose and optimize the performance of their applications on a service-by-service basis.This is critical because one application service on a particular portal page may be performing at an acceptable level while another service leveraging shared application components may be underperforming.

 

The composite applications of the early part of this decade leveraged a relatively simple and static architecture, generally a database with an application server and a graphical user interface.Today’s composite applications are both significantly more complex and dynamic.A typical SOA enterprise application today might leverage a J2EE-based application server with a portal engine, an enterprise service bus (ESB), a Business Process Execution Language (BPEL) engine, and perhaps an alternative integration framework to connect to a legacy back-end.Each of these application components is in its own right an application, and with a SOA-based application, the components are bound to be changing on a regular basis.Further, the shared service code components comprising each of these application components (i.e., entity beans, JSPs, portlets, etc.) support multiple application services, often across multiple applications.

 

Correlating an application service to the underlying shared services code components enabling that service has become all but impossible utilizing traditional APM products.However, this correlation is critical.After all, the very purpose of an enterprise application is to provide business services, and if a problem with the performance or availability of a particular application service supported by a composite application cannot quickly be triaged, the value of the application is soon overcome by the cost of outages, poor performance, and general maintenance chaos associated with supporting the application.Additionally, IT organizations need a dependable means for performing impact analysis.For example, before a planned change is made, IT operations must be able to identify all application processes, application components, systems, etc. that will be impacted by the change; this adds significant value in a way that is not possible without having the necessary context to bridge that IT visibility gap.

 

Today’s composite applications require a new management approach that dynamically correlates application services to the shared code components supporting those services.While a standalone APM approach will suffice for relatively simple J2EE applications, APM alone has become obsolete in managing SOA and other complex composite applications.

 

 

As illustrated in Figure 1, implementing composite applications or SOA is expected to better align IT with the business and quickly adjust to change as competitive pressures arise.However, the legacy application management products currently supporting these critical applications are increasingly hindering organizations from achieving these benefits.

  

Key Application Management Challenges of SOA-Based Composite Applications

 

The loosely coupled nature of SOA enables IT organizations to develop composite applications by combining new code with existing applications, improving the ability to respond to business change.In SOA, existing software modules or applications are encapsulated and exposed publicly as services.Composite application developers then use these services to create new applications.Unfortunately, this shift in the application development paradigm creates new management challenges.

 

 

Challenge #1:Dealing with Complexity and Change to Composite Applications and SOA Infrastructure

 

There is an inherent inverse correlation between flexibility and manageability.For example, as an automotive company increases the number of options offered on its vehicles, the difficulty associated with the management of its manufacturing process and inventory also increases.The same logic applies to SOA-based composite applications.As IT organizations adopt technology platforms and development paradigms to gain agility, management of these applications becomes increasingly difficult.

 

Moreover, infrastructure complexity increases significantly as the software platforms running composite applications become more network-centric and modular in design.This increase in complexity combined with a lack of SOA management expertise, methodology and tools presents a huge barrier to entry for IT organizations wishing to develop and deploy these applications.

 

Challenge #2:How Can You Characterize Application Performance and Provide 24x7 Production Monitoring?

 

For years, software developers followed fundamental object-oriented programming (OOP) concepts, such as inheritance, polymorphism, encapsulation, overriding, etc. to achieve effective software component reuse.Similarly, one of SOA’s objectives is component reuse.The difference between OOP and SOA is that OOP reuses components at the source-code level, and SOA reuses components at runtime.Software component reuse yields benefits, including increased developer productivity and improved software maintainability. Unfortunately, OOP- and SOA-centric software component reuse also contributes to “dirty” performance metrics throughout the enterprise.

 

Accurately measuring performance becomes a problem when multiple applications share a common software component to perform some tasks.Existing APM solutions measure the performance of this shared component at the Java Virtual Machine (JVM) level.This approach pollutes performance metrics because measurements taken at the JVM do not break out an individual composite application’s impact on the shared component.

 

 

In the scenario illustrated in Figure 3, performance metric pollution is unavoidable if measurements are taken at the JVM level.Conventional APM approaches produce metrics that measure invocations and the average response time of various methods in the shared component.The method invocation counts and average response times are polluted because they captured the combined behavior of several components interacting with the shared component.In other words, these metrics represent the performance of the shared component in the context of multiple composite applications.

 

Additionally, performance metric pollution negatively impacts an IT organization’s ability to perform 24x7 production monitoring of its application, as inaccurate measurements trigger alerts and corresponding actions inappropriately.Time, effort and resources are wasted in dealing with false alerts.Finding a way to accurately characterize performance should be the highest priority for IT organizations wishing to establish an effective management system for their SOA environment.

 

Challenge #3: How Can I Quickly Diagnose and Resolve Problems When They Occur?

 

Performance metric pollution also presents a serious problem for IT operations management: how to correctly determine the responsible party when a performance problem is identified in the shared component.To help diagnose the performance problem, owners of applications that use the share component are dragged into a joint-exercise of bottleneck-hunting.Because the shared component can behave differently as part of various composite applications, using polluted measurements that do not break out performance characteristics by application service slows the process of problem diagnosis and resolution.

 

Eliminating performance metric pollution and obtaining accurate performance measurements in the context of specific-calling composite applications are keys to fast problem diagnosis and resolution.

 

Application Service Management (ASM) to the Rescue

 

Multiple layers of abstraction, the need for specialized expertise and the constantly changing nature of SOA environments create an IT visibility gap that cannot be addressed with traditional systems management and APM tools.All of these tools lack the ability to provide the necessary business context to quickly triage and resolve the issues most important to the business.Context is achieved by correlating an application service to the underlying shared services code components enabling that service. This process is known as ASM. Through ASM, it is possible to intelligently identify monitoring points, automatically deploy agents and dynamically display role-based dashboards with relevant metrics within the context of the application services being delivered.

 

It is important to remember that the very purpose of an enterprise application is to provide business services. Additionally, IT organizations need a dependable means for performing impact analysis.For example, before a preplanned change is made, IT operations must be able to identify all application processes, application components, systems, etc. that will be impacted by the change. This adds significant value in a way that is not possible without having the necessary context to bridge that IT visibility gap.

 

How ASM Works

 

The first step in the ASM process is to dynamically build a topological model of the application architecture (see Figure 4).

 

 

By creating a model of a composite application and understanding how business transactions flow through the different layers, companies can automate the key steps of composite application management (setup, analysis, change management and service level reporting).

 

Leveraging this application model, preproduction and production operations users are immediately able to determine the root cause of a performance problem on a particular application service and then determine what other application services might be affected. Moreover, ASM enables IT operations teams to set performance metrics at the application service level, at the code level or anywhere in between.The status of these metrics are automatically correlated and dynamically adjust to relationship changes that occur in the application environment.

 

The combination of multiple layers of abstraction, the need for specialized expertise and constant change creates an IT visibility gap that can only be addressed with ASM.ASM bridges the IT visibility gap inherent in today’s complex composite applications.Without having this context, it has become impossible to effectively diagnose application service problems in enterprise applications that leverage multiple layers of middleware.An unmanageable application, no matter its sophistication or richness of services, provides little value to an organization.Further, an IT operations team must understand an application’s logic to be able to effectively conduct the impact analysis required to stay ahead of potential application problems.

 

In summary, by managing complex composite applications at the application services level, IT organizations can maximize application performance levels, reduce the mean time to resolution and maximize productivity.An ASM approach coupled with fully automated APM will enable IT organizations to achieve the expected ROI from their composite application investments.

Register or login for access to this item and much more

All Information Management content is archived after seven days.

Community members receive:
  • All recent and archived articles
  • Conference offers and updates
  • A full menu of enewsletter options
  • Web seminars, white papers, ebooks

Don't have an account? Register for Free Unlimited Access