PPK: Towards a Kernel for Building PSEs Sanjiva Weerawarana, Elias N. Houstis, John R. Rice, Ann C. Catlin, Margaret G. Gaitatzes, Cheryl L. Crabill, Shahani Markus and Tzvetan T. Drashansky Department of Computer Sciences, Purdue University, West Lafayette, IN 47907-1398, USA. Abstract Problem Solving Environments (PSEs) are very high level software environments that provide all the facilities for dealing with some class of problems. It is clear that building PSEs is a costly endeavor both in terms of the person-years required and the diversity of knowledge and expertise required. This paper is about the Purdue PSE Kernel (PPK), a software framework designed to assist in the development of PSEs. PPK assumes a fairly general model of PSEs where PSEs are viewed as a collection of communicating, coop- erating entities. The architecture of PPK is designed to provide all the infrastructure needed to build application PSEs that adhere to this model. This model is realized in terms of an electronic notebook for user interaction with the PSE, an object manager for storing all the problem and solution components and a software bus for support- ing the communication and integration needs of the com- ponents of the PSE. An embedded, customizable programming language is provided within the electronic notebook to allow users to “program” a problem solving process by specifying a high level script. This base archi- tecture of PPK is augmented with a set of domain-specific toolkits which provide the required infrastructure in key areas such as symbolic computation, computational intel- ligence, computational geometry and numeric computa- tion. In addition, a high level composition framework allows users to compose PSE from existing PSE compo- nents. This paper describes the overall design of PPK and a prototype of the basic PPK framework that we have devel- oped. An example PSE built using PPK has demonstrated its viability as a kernel for building PSEs. 1 Introduction A Problem Solving Environment (PSE) is a computer system that provides all the computational facilities neces- sary to solve a target class of problems [1]. These features include advanced solution methods, automatic and semi- automatic selection of solution methods, and ways to eas- ily incorporate novel solution methods. Moreover, PSEs use the language of the target class of problems, so users can run them without specialized knowledge of the under- lying computer hardware or software. By exploiting mod- ern technologies such as interactive color graphics, powerful processors, and networks of specialized services, PSEs can track extended problem solving tasks and allow users to review them easily. Overall, they create a framework that is all things to all people. They solve simple or complex problems, support rapid prototyping or detailed analysis, and can be used in introductory education or at the frontiers of science. PSEs provide users with tools and facilities for “multifidelity” simulation. That is, initially one may wish to perform con- ceptual, symbolic simulations. Later a preliminary numer- ical simulation may be performed and even later a detailed simulation requiring many hours or days of simulation time may be performed. It is obvious that building such software systems is a monumental task [2]. In addition to the sheer quantity of program code required, the task is further complicated by the diversity of knowledge required to build complex PSEs. It is clear that a strong computer science back- ground is needed to build such PSEs, yet it is not computer scientists who will (or should) be building these PSEs. Application scientists must be able to build (or compose) PSEs for their work without having to spend person-years of effort on computing tasks which have basically nothing to do with their problem domain. Clearly, a solid base infrastructure upon which application scientists can build their PSEs is needed. The Purdue PSE Kernel (PPK) is a software framework (infrastructure) designed to assist PSE builders in their task. PPK assumes a fairly general model of PSEs where PSEs are viewed as a collection of communicating, coop- erating entities. The architecture of PPK is designed to provide all the infrastructure needed to build application PSEs that adhere to this model. This model is realized in