``Collaborative Problem Solving Environments''
Prof. Clifford A. Shaffer
Department of Computer Science
Virginia Tech
Blacksburg, VA 24061
E-mail: shaffer@cs.vt.edu
URL: http://www.cs.vt.edu/~shaffer

Long before digital libraries, code reuse, or the Internet became popular terms --- or even distinct topics of research --- the numerical analysis community created a digital library of reusable code available via the Internet. Netlib is still widely used today by scientists and engineers in a wide range of disciplines. Today, successor efforts such as NetSolve are improving the access of scientists and engineers to high-quality software. It is important to note that, while crucial to the scientific endeavor, these efforts have little to do with numerical analysis or high performance computing. Instead, they have everything to do with marshaling and distributing resources so that a wide community can make the most of its investment in high-quality software.

The scientific computing research community would achieve greater productivity if it can address a complex of process management issues that are endemic to scientific and engineering research. Our next goal should be to provide appropriate software support and process management standards that will allow scientists and engineers to make the most of their existing codes and computing resources.

The experience at Virginia Tech and elsewhere in dealing with large-scale engineering design and analysis problems has demonstrated the following critical problems:

  1. It is difficult to integrate codes from multiple disciplines developed by a diverse group of people on multiple platforms located at widespread locations;
  2. It is difficult to share software between potential collaborators in a multidisciplinary effort --- difficult even for a team to continue using a research code once the author has left the group;
  3. Current tools for synchronous collaboration are inadequate.

Integrating codes from different disciplines raises both pragmatic and conceptual issues. Pragmatically, the issue is how best to support the interoperability of independently-conceived programs residing on diverse, geographically distributed computing platforms. Another pragmatic concern is that large, complicated codes now exist that cannot simply be discarded and rewritten for a new environment. However, interoperability is best achieved by adherence to common protocols of data interchange and the use of clearly identified interfaces. The notions of interfaces and protocols lead directly to the domains of object-oriented software and distributed computing. Thus, a key issue is how to unify legacy codes, tied to specific machine architectures, into an effective whole. Conceptually, the key issue is how to foster coordinated problem solving activities among multiple experts in different technical domains, and leverage existing codes and computer hardware resources connected by the Internet.

Many of these problems can be resolved through the use of collaborative problem solving environments (CPSE). A CPSE is a system that provides an integrated set of high level facilities to support groups engaged in solving problems from a proscribed domain. A CPSE allows users to define and modify problems, choose solution strategies, interact with and manage the appropriate hardware and software resources, visualize and analyze results, and record and coordinate problem solving tasks. Perhaps most significantly, users communicate with a CPSE at a higher level than the language of a particular operating system, programming language, or network protocol. Expert knowledge of the underlying hardware or software is not required.

Key elements to CPSEs include the following:

URLs to Ongoing Work