Free Services  

  • MONITOR KEYWORDS
  • Enter keywords & we'll notify you when a new patent matches your request (weekly update).

  • ORGANIZER
  • Save & organize patents so you can view them later.

  • ARCHIVE
  • View the last few months of your Keyword emails.

  • COMPANY DIRECTORY
  • Patents sorted by company.

Follow us on Twitter
twitter icon@FreshPatents

Browse patents:
NextPrevious

Collaborative software debugging in a distributed system with multi-member variable expansion




Title: Collaborative software debugging in a distributed system with multi-member variable expansion.
Abstract: In a distributed system that includes a debug server and debug clients coupled for data communications through a data communications network, where the debug server includes a debug administrator, a message router, a back-end debugger, and a debuggee, collaborative software debugging includes receiving application-level messages, including a request from a requesting debug client to notify other debug clients of an expansion of a multi-member variable; routing the application-level messages among the debug clients, the debug administrator, and the back-end debugger, including providing distributed control of the back-end debugger to the debug clients and distributing, to the other debug clients, a notification of the expansion of the multi-member variable; and returning to the debug clients in response to the application-level messages routed to the back-end debugger, client-specific debug results. ...

Browse recent International Business Machines Corporation patents


USPTO Applicaton #: #20120102463
Inventors: Cary L. Bates


The Patent Description & Claims data below is from USPTO Patent Application 20120102463, Collaborative software debugging in a distributed system with multi-member variable expansion.

BACKGROUND

- Top of Page


OF THE INVENTION

1. Field of the Invention

The field of the invention is data processing, or, more specifically, methods, apparatus, and products for collaborative software debugging in a distributed system.

2. Description Of Related Art

Software source code is increasingly complex and is often developed by various developers, sometimes physically dispersed from one another. One part of software development, source code debugging, is especially complex in today's distributed software development environments. In debugging, it is often useful for two or more developers to work together in real-time to debug the source code. Further, during such debugging, developers may have differing interests in different portions of the source code. At present, there are no debug engines available that enable remotely distributed developers to debug the same source code collaboratively in real-time, while separately viewing different results of the same debugging.

SUMMARY

- Top of Page


OF THE INVENTION

Methods, apparatus, and products for collaborative software debugging in a distributed system are disclosed. In embodiments of the present invention, the distributed system includes a debug server, a plurality of debug clients, and a data communications network. The debug server is coupled for data communications to the plurality of debug clients through the data communications network and the debug server includes a debug administrator, a message router, a back-end debugger, and a debuggee. From the perspective of the debug server, collaborative software debugging in the distributed system according to embodiments of the present invention includes: receiving, by the debug server from the debug clients asynchronously during a debug session of the debuggee, a plurality of application-level messages, including receiving, from a requesting debug client, a request to notify other debug clients of an expansion of a multi-member variable; routing, by the message router in accordance with an application-level message passing protocol, the application-level messages among the debug clients, the debug administrator, and the back-end debugger, including providing distributed control of the back-end debugger to the debug clients with application-level messages routed to the back-end debugger and distributing, to the other debug clients, a notification of the expansion of the multi-member variable; and returning, by the debug server to the debug clients in response to the application-level messages routed to the back-end debugger, client-specific debug results.

From the perspective of the debug clients, collaborative software debugging in accordance with embodiments of the present invention includes: presenting, by each debug client to a user of the debug client, a client-specific graphical user interface (‘GUI’), the client-specific GUI providing a client-specific display of a debug session of the debuggee; detecting, by each debug client, user input through the client-specific GUI, including detecting, by a requesting debug client, user input indicating an expansion of a multi-member variable to view one or more members of the multi-member variable; generating, by each debug client in dependence upon the detected user input, one or more application-level messages, including generating, by the requesting debug client, a request to notify other debug clients of the expansion of the multi-member variable; sending, by each debug client, the application-level messages to the debug server, including sending, by the requesting debug client to the debug server, the request to notify other debug clients of the expansion of the multi-member variable; receiving, by each debug client responsive to the application-level messages, client-specific debug results, including receiving, by the other debug clients, a notification of the requesting debug client's expansion of the multi-member variable; and displaying, by each debug client in the client-specific GUI, the client-specific debug results, including displaying, by each of the other debug clients, a graphical indication of the expansion of the multi-member variable.

The foregoing and other objects, features and advantages of the invention will be apparent from the following more particular descriptions of exemplary embodiments of the invention as illustrated in the accompanying drawings wherein like reference numbers generally represent like parts of exemplary embodiments of the invention.

BRIEF DESCRIPTION OF THE DRAWINGS

- Top of Page


FIG. 1 sets forth a network diagram of a distributed system in which collaborative software debugging is carried out according to embodiments of the present invention.

FIG. 2 sets forth an example client-specific graphical user interface (‘GUI’) presented to a user of a debug client in accordance with embodiments of the present invention.

FIG. 3 sets forth a flowchart illustrating an exemplary method of collaborative software debugging in a distributed system in accordance with embodiments of the present invention.

FIG. 4 sets forth a sequence diagram illustrating a further exemplary method of collaborative software debugging in accordance with embodiments of the present invention in which a debug client requests to join a debug session.

FIG. 5 sets forth a sequence diagram illustrating a further exemplary method of collaborative software debugging in accordance with embodiments of the present invention in which a debug client requests to leave a debug session.

FIG. 6 sets forth a sequence diagram illustrating a further exemplary method of collaborative software debugging in accordance with embodiments of the present invention in which a debug client requests to distribute data other debug clients.

FIG. 7 sets forth a sequence diagram illustrating a further exemplary method of collaborative software debugging in accordance with embodiments of the present invention in which a debug client requests to issue a command to the back-end debugger.

FIG. 8 sets forth a sequence diagram illustrating a further exemplary method of collaborative software debugging in accordance with embodiments of the present invention in which a debug client requests to establish an event notification with the back-end debugger.

FIG. 9 sets forth a sequence diagram illustrating a further exemplary method of collaborative software debugging in accordance with embodiments of the present invention in which a debug client requests to register a group of debug clients.

FIG. 10 sets forth a flowchart illustrating a further exemplary method of collaborative software debugging in a distributed system in accordance with embodiments of the present invention.

FIG. 11 sets forth a flowchart illustrating a further exemplary method of collaborative software debugging in a distributed system in accordance with embodiments of the present invention.

FIG. 12 sets forth a flowchart illustrating a further exemplary method of collaborative software debugging in a distributed system in accordance with embodiments of the present invention.

FIG. 13 sets forth a flowchart illustrating a further exemplary method of collaborative software debugging in a distributed system in accordance with embodiments of the present invention.

FIG. 14 sets forth a flowchart illustrating a further exemplary method of collaborative software debugging in a distributed system in accordance with embodiments of the present invention.

DETAILED DESCRIPTION

- Top of Page


OF EXEMPLARY EMBODIMENTS

Exemplary methods, apparatus, and products for collaborative software debugging in a distributed system in accordance with the present invention are described with reference to the accompanying drawings, beginning with FIG. 1. FIG. 1 sets forth a network diagram of a distributed system in which collaborative software debugging is carried out according to embodiments of the present invention. The term ‘debug,’ and its variations—debugged, debugging, and so on—as used in this specification generally refers to a methodical process of finding and reducing the number of bugs, or defects, in a computer program, that is, in source code of the computer program. Debugging may also be carried out to produce other results—decrease source code size, increase efficiency of the source code, decrease memory use by the executed source code, and so on as will occur to readers of skill in the art. The source code of a software program or application being debugged is referred to in this specification as a ‘debuggee.’

The system of FIG. 1 is a distributed system. The term ‘distributed’ generally describes a system in which elements of the system are coupled for data communications through a data communications network, in many cases, a loosely-coupled data communications network. The distributed system of FIG. 1, for example, includes a debug server (102), a plurality of debug clients (104), and a data communications network (100). The debug server (102) in the example distributed system of FIG. 1 is coupled for data communications to the plurality of debug clients (104) through the data communications network (100). The term ‘distributed’ may also refer, as context requires, to the physical distribution of the debug clients (104). That is, each debug client (106, 108, 110, and 112) may physically remote from each of the other debug clients. Clients (106 and 108) may be located in different states in the United States, while client (110) may be located in China, and client (112) may be located in Japan. The plurality of clients (104) is ‘distributed’ physically in various locations.

In the distributed system of FIG. 1, each of the debug clients (106, 108, 110, and 112) and the debug server (102) is implemented as automated computing machinery, a computer. For clarity of explanation, not limitation, the components comprising the debug server (102) are similar to and bear the same numbers as corresponding components comprising each of the debug clients (104). Similar components may be described below with respect to only one of the debug server (102) or a debug client, but such descriptions applies to components of both the debug server and the debug client.

Each of the debug clients (106, 108, 110, 112) of FIG. 1 includes at least one computer processor (156) or ‘CPU’ as well as random access memory (168) (‘RAM’) which is connected through a high speed memory bus (166) and bus adapter (158) to processor (156) and to other components of the debug clients (106, 108, 110, 112). The debug server (102) includes similar components coupled in similar ways.

Stored in RAM (168) of each debug client (106, 108, 110, 112) is a client debug application (128), a module of computer program instructions that, when executed by the computer processor (156) of the debug client, causes the debug client to carry out client-side collaborative software debugging in accordance with embodiments of the present invention. The client debug application (128) of each debug client, say client (106) as an example, carries out client-side collaborative software debugging in accordance with embodiments of the present invention by: presenting, by the debug client (106) to a user (not shown) of the debug client (106), a client-specific GUI (124). In the example of FIG. 1, the client-specific GUI (124) is a client-specific display of a debug session of the debuggee. The phrase ‘client-specific’ as used here describes a GUI and display of a debug session that may differ from other debug clients\' GUI and display of the same debug session. A debug session is a semi-permanent interactive information interchange between at least one debug client and a debug server for the purposes of a debugging a particular debuggee. A session is set up or established at a certain point in time, and torn down at a later point in time. An established communication session may involve more than one message in each direction.

The client debug application (128) of the debug client (106) may also detect user input through the client-specific GUI, generate, in dependence upon the detected user (100) input, one or more application-level messages (126), and send the application-level messages to the debug server (102). The phrase ‘application-lever’ is used to describe messages that have meaning at a particular level in a data communications protocol model or framework. Consider, as one example of a data communications protocol model, the Open Systems Interconnection model that has seven layers, the application layer being the ‘highest’ and the physical layer being the lowest. Consider also, as another example, the TCP/IP model, which sets forth the application layer at the highest level and a link layer at the lowest level. The relative terms—higher and lower—describe a protocol\'s ‘closeness’ with regard to physical hardware (cables and the like) upon which data communications are passed. Each higher layer is a greater level of abstraction. In both models, the application layer or application-level is the highest level, farthest away from hardware and most abstracted layer. In the examples provided here, the application-level messages are abstracted from the data communications protocols used to transmit the data making up the application-level messages across one or many physical connections.

Detecting user (100) input through the client-specific GUI (124) in the example of FIG. 1 may include detecting, by a requesting debug client—such as client (106) for example—user input indicating an expansion of a multi-member variable to view one or more members of the multi-member variable. A multi-member variable is a variable in source code having a data type that may include more than one member. Examples of such data types include a structure and a union. A structure is a fixed set of labeled members (sometimes called objects, elements, or fields), each of which may have a different data type. A structure, for example, may include a character member, an integer member, a float member, a double member, and so on, at the same time. Although a structure is described here as ‘multi-member,’ readers of skill in the art will recognize that such description is not a limitation but rather a description of capability. The term ‘multi-member’ refers to data types capable of including one or more members—not necessarily more than one member. That is, the term ‘multi-member’ descries data types that are not restricted to a single member, but may in some cases include only one member. A structure, for example, may include any number of members, and each of the members may be a different data type. Once a particular structure is declared—including declaring each member and type of each member—variables may be declared that have the particular structure. Such variables in this specification are referred to as ‘structure variables.’ A structure variable may, at any time, include a value for any number of the members of the structure. That is, each member of a structure variable may store a value regardless of whether other members of a structure variable are also presently storing a value. A structure variable having a structure type with a character member, a float member, and an integer member, may, for example, at any instance include all or some combination of a character value, a float value, and integer value.




← Previous       Next → Advertise on FreshPatents.com - Rates & Info


You can also Monitor Keywords and Search for tracking patents relating to this Collaborative software debugging in a distributed system with multi-member variable expansion patent application.
###
monitor keywords


Browse recent International Business Machines Corporation patents

Keyword Monitor How KEYWORD MONITOR works... a FREE service from FreshPatents
1. Sign up (takes 30 seconds). 2. Fill in the keywords to be monitored.
3. Each week you receive an email with patent applications related to your keywords.  
Start now! - Receive info on patent apps like Collaborative software debugging in a distributed system with multi-member variable expansion or other areas of interest.
###


Previous Patent Application:
Collaborative software debugging in a distributed system with graphic representation of source code ownership assignments
Next Patent Application:
Registration-based remote debug watch and modify
Industry Class:
Data processing: software development, installation, and management
Thank you for viewing the Collaborative software debugging in a distributed system with multi-member variable expansion patent info.
- - -

Results in 0.08753 seconds


Other interesting Freshpatents.com categories:
Nokia , SAP , Intel , NIKE ,

###

Data source: patent applications published in the public domain by the United States Patent and Trademark Office (USPTO). Information published here is for research/educational purposes only. FreshPatents is not affiliated with the USPTO, assignee companies, inventors, law firms or other assignees. Patent applications, documents and images may contain trademarks of the respective companies/authors. FreshPatents is not responsible for the accuracy, validity or otherwise contents of these public document patent application filings. When possible a complete PDF is provided, however, in some cases the presented document/images is an abstract or sampling of the full patent application for display purposes. FreshPatents.com Terms/Support
-g2-0.1521

66.232.115.224
Next →
← Previous

stats Patent Info
Application #
US 20120102463 A1
Publish Date
04/26/2012
Document #
File Date
12/31/1969
USPTO Class
Other USPTO Classes
International Class
/
Drawings
0


Collaborative Software

Follow us on Twitter
twitter icon@FreshPatents

International Business Machines Corporation


Browse recent International Business Machines Corporation patents



Data Processing: Software Development, Installation, And Management   Software Program Development Tool (e.g., Integrated Case Tool Or Stand-alone Development Tool)   Testing Or Debugging   Having Interactive Or Visual  

Browse patents:
Next →
← Previous
20120426|20120102463|collaborative software debugging in a distributed system with multi-member variable expansion|In a distributed system that includes a debug server and debug clients coupled for data communications through a data communications network, where the debug server includes a debug administrator, a message router, a back-end debugger, and a debuggee, collaborative software debugging includes receiving application-level messages, including a request from a |International-Business-Machines-Corporation