Browse Prior Art Database

Method to implement user transparent debugging in a clustered application server environment

IP.com Disclosure Number: IPCOM000212192D
Publication Date: 2011-Nov-04

Publishing Venue

The IP.com Prior Art Database

Abstract

Disclosed is a method for seamless debugging on a clustered environment where the application developer(s) need not be aware of the remote system on which the application service(s) are invoked.

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 30% of the total text.

Page 01 of 11

Method to implement user transparent debugging in a clustered application server environment

Background

In the today's IT environment, application services are going global and should be available to the customer round the clock supporting business services. So standalone application servers are moved to clustered environment to increase the availability of business services deployed in it. It's also important that the application deployed in clustered environment should be debugged after it is deployed to the cluster besides being tested or developed in a standalone environment.

Typically in a clustered environment, it is expected that the application servers and the clients would spread across different machines. To debug applications in such an environment, distributed debuggers having remote debugging capabilities are used.

A brief introduction to Distributed Debugger:

Distributed debuggers have remote debugging capabilities.

Typically, debuggers having remote debugging capabilities would have two main components -


1) Debug client/User Interface (Debug UI) and


2) Debug engine

The debug client is started by the application developer in their respective desktop/workstation, which would then connect over a appropriate transport protocol (such as TCP/IP, RPC, etc.), to the debug engine. The debug engine would then attach to the relevant process where the application service (or business logic) is invoked for further debugging. Communication across the debug client/UI and debug engine follows as application developer debugs the application. The Figure 1 below would illustrate this:

1


Page 02 of 11

Figure 1: Distributed debugger components and its interactions

A brief introduction to Cluster Gateway (CG)

The Cluster Gateway (CG) is a component within the clustered environment that allows application services to scale up by distributing the incoming requests across a pool of distributed systems - these systems are mostly cloned; providing the same application services in each system.

The Figure below illustrates the components of a typical Clustered Gateway:

2


Page 03 of 11

Typically customers who need to scale up their applications and to meet their availability demands, tend to choose to deploy their applications in a clustered environment.

Usually requests come to a clustered gateway and then based on the workload and affinity and other deciding algorithms the CG routes the requests on an application server.

As application services are invoked through the CG, application debugging becomes a challenge because of the dynamic nature of the CG. The client (or the application developer) would not be aware in advance as to which system the application services will be routed to - hence they would not be able to connect their debug client/UI to the appropriate system where the application service is invoked. So, application developers lose their flexibility to debug application in the cluster environment.

Problem Scenario

For debugging...