Debugging client server programs from third party workstations

A debugging apparatus for debugging a particular application, session or transaction in a computer network environment. The environment includes a plurality of clients in processing communication with one another. The apparatus comprises identifying means for identifying a debugging mechanism to the computing environment, a debug table accessible to the debugging apparatus for storing any pertinent information relating to said debugging apparatus, identifying means for identifying at least one client present in the environment. The debug table stores any and all pertinent information about any identified clients as well as whether or not a particular application, session or transaction needs to be debugged. A determining means is also provided for determining if a particular application, session or transaction needs debugging so that debugging operation can be started accordingly.

FIELD OF INVENTION
 The present invention relates to a method of providing debugging operations
 in a complex computing network environment.
 BACKGROUND OF THE INVENTION
 The complex computing network environments of today connect a multitude of
 mini computing sub-environments to one another. These sub-environments can
 include several main frame computers as well as many smaller and less
 sophisticated workstations. Each computing component of the environment is
 considered to be a distinct client. One example of such network
 environment is the internet where many different users and servers come
 together and share data and exchange information.
 In such complex environments many applications are running concurrently and
 similar commands are being processed on different clients at the same
 time. Unfortunately, however, when a processing problem is encountered, it
 has become a challenge to identify and debug the particular application or
 client that is having the problem. Even when problems do not occur, it may
 be desirable to debug a particular application for a variety of reasons.
 The challenge lies in identifying the particular application as well as
 the client, server, server session, and appropriate communication
 protocol. Many clients can run the same identical application, but it is
 often the case that only one of these clients will encounter a problem.
 Determining which client and which application are experiencing the
 problem is a complicated and time consuming task.
 As a consequence, it is desirable to develop a system and method of
 debugging clients and applications in a complex networking environment by
 identifying the particular application and/or client that requires the
 debugging operation.
 This application is being filed on the same date as related application
 Ser. Nos. 09/129,824 and 09/129,555.
 SUMMARY OF THE INVENTION
 A debugging apparatus for debugging a particular application, session or
 transaction in a computer network environment. The environment includes a
 plurality of clients in processing communication with one another. The
 apparatus comprises identifying means for identifying a debugging
 mechanism to the computing environment, a debug table accessible to the
 debugging apparatus for storing any pertinent information relating to said
 debugging apparatus, identifying means for identifying at least one client
 present in the environment. The debug table stores any and all pertinent
 information about any identified clients as well as whether or not a
 particular application, session or transaction needs to be debugged. A
 determining means is also provided for determining if a particular
 application, session or transaction needs debugging so that debugging
 operation can be started accordingly.

DETAILED DESCRIPTION OF THE INVENTION
 FIG. 1 illustrates a sample computing network system environment. A
 plurality of hosts 101, 102, 103, and 110 and a plurality of terminals
 120, 121 and workstations 130, 131 are in processing communication with
 one another via a network shown at 150. As is shown in the FIG. 1, by way
 of example, any one of the clients such as the host shown at 110 can form
 a sub-environment by being further connected to other workstations, shown
 at 112 and LANs or local Area Networks, shown at 111.
 FIG. 2 is an illustration of a computing sub-environment such as the one
 provided in FIG. 1 by host 110. The host in FIG. 2 is shown at 202. The
 host is in processing communication, via a network shown at 210, with a
 plurality of workstations shown at 230 and 240 respectively. The host in
 this example can be a mainframe computer.
 When a multitude of clients are in processing communication with one
 another as shown in FIG 1, a plurality of sessions are established using
 the network. On a mainframe computer such as the host of FIG. 2, one
 application can be processing thousands of requests each second. If only
 one application, request or sessions is experiencing a problem, it becomes
 desirable to only debug that particular application, request or session
 without interfering with the process of the entire environment or
 sub-environment. Even when there are no problems, it may become necessary
 to debug a particular application or client without affecting other
 clients and/or applications present in the environment.
 FIG. 3 illustrates an embodiment of the present invention. The network
 shown at 310 connects a host at 301 to a plurality of terminals such as
 the one provided at 320. A debug workstation is connected directly to the
 host as shown at 350. The debug workstation and the host can also be in
 processing communication with another terminal as shown at 360. In an
 alternate embodiment (not shown), the debug workstation can be connected
 indirectly to the environment. For example, it can be connected to the
 host(s) via the network 310. The location or the manner of connection of
 the debug workstation to the rest of the computing environment is not of
 any particular importance and different processing arrangements can be
 made in alternate embodiments. While it is preferred that the debug
 mechanism be located on a separate workstation other than the client or
 server machine, it is even possible in some embodiments to have the debug
 mechanism as a part of the particular client or server machine.
 The debug mechanism or workstation is identified to the system environment
 at any time. It can be registered to the environment initially when it is
 introduced to the environment or at any later time. In a preferred
 embodiment where a debug workstation is used, the workstation sends a
 trace entry to the host in order to identify itself. Nonetheless, there
 are many other ways that the debug workstation can be identified, for
 example by using the defined communication protocol. In another embodiment
 of the present invention where TCP/IP is the communication protocol
 utilized, a debug workstation and server are identified by their TCP/IP
 addresses.
 Each client present in the computing environment is also identified and
 pertinent information about each client is stored in a debug table
 accessible by the debug mechanism. As it was the case before, each client
 can be identified to the environment at initialization time or later as
 the client joins the environment, or the client can register at any other
 point in time as a need arises or when debugging procedure is to be
 initiated on that client. At the same time, a client can also un-register
 at any point in time and in one embodiment pertinent data relating to that
 unregistered client is then removed from the debug table until the next
 time when the client re-registers again.
 The information stored about each client not only will include the address
 of the client and the server used, but also the communication protocol
 utilized in establishing a particular session. It is even possible to
 define different protocols such TCP/IP, SNA, TPF LNIATA etc., for
 different sessions, each time also providing the correlated client
 terminal address.
 FIG. 4 is an illustration of a screen that may be provided at time of
 debugging mechanism's registration at initialization time. In the
 embodiment shown in FIG. 4, the screen includes such information as the
 TCP/IP address and Port number for the host and the workstation debugged
 as well as type of communication protocol used, information about any
 program masks or user tokens. (Although TCP/IP is used in this example,
 other communications besides TCP/IP are supported and can be used.)
 When any application is started on a particular client (or all clients if
 desired), a debug table is set up for that application. The debug table,
 besides having information about the application itself, also retrieves
 information about the location and address of the client, server used and
 the communication protocol used for that client. The debug table can also
 include an option providing information pertaining to the desirability of
 performing a debug for a particular client or application. At the onset of
 any application, the debug table is searched to determine if the
 particular application needs to be debugged for the particular client
 server session. If the application needs to be debugged, the debugged is
 started on the workstation (or location) identified to run the debugged.
 One of the benefits of using a separate debugging workstation is to provide
 the debug program and run it on terminals other than the one currently in
 use. When debugging is being performed at a separate location than the
 application (including both the client and the server), the client/user
 and server/host can continue performing other tasks while being unaware of
 the debugging/recovery efforts. In addition, the debug terminal can have
 display abilities, such as a graphical interface, that may not be
 available on the client or the server.
 While the invention has been described in detail herein in accordance with
 certain preferred embodiments thereof, many modifications and changes
 therein may be effected by those skilled in the art. Accordingly, it is
 intended by the appended claims to cover all such modifications and
 changes as fall within the true spirit and scope of the invention.