Component Architectures and the LSA

An important new paradigm in software engineering has been the emergence of distributed component architectures. Here components are reusable building blocks for software systems. Such systems for composing components include Microsoft's ActiveX/DCOM and Sun's JavaBeans and JavaStudio. Conceptually, a user has a palette of components from which to choose, and can compose or wire them together to create complete applications. Mechanisms are provided for defining new components which follow standards specifying interfaces, methods by which external codes can interact with the component. A useful model is that of a software integrated circuit; as a hardware IC has a specified set of pins that allow it to be connected with other IC's without requiring details of internal representations or methods, software IC's rely on published interfaces.

Distinction from Other Software Buidling Blocks

Components differ significantly from standard software pieces such as subroutines, libraries, or objects in at least three ways.

Component Systems and Scientific Computing

Although component architectures have revolutionized the desktop business application computing environment, they have made few inroads in problem-solving environments for computational science and engineering. Partly this is because the sheer size of data which typical computational components need to exchange; where a GUI system built from Java Beans may require a few hundred bytes to be sent from one component to another, hundreds of Mbytes are common in scientific computing. Another reason is the variety of data types exchanged in scientific computing. Possibly the most important reason is economic; devising a component architecture for business information systems can have an immediate and profitable return, while scientific and engineering computations are a small part of the computing market.

The LSA As a Component System

The LSA is a scientific computing component system implementing a problem-solving environment. It is an environment for examining and developing solution strategies for large-scale sparse linear systems of equations. It includes an extensible palette of many standard codes for manipulating and solving the linear systems, and a graphical user control system which presents a user with a "canvas" on which to compose components. Each component can be started on any networked computer. This article presents the purpose and design ideas behind the LSA and its architecture, which is designed to be reusable for problem domains beyond the solution of linear systems.

LSA Implications for Component Systems

Although the LSA project is still evolving, it has already revealed some important design issues for component systems in scientific computing:

  • Next page: the problem domain, describing the application problems and methods of the LSA.

    [ IU CS ] [ Extreme! Computing ] [ PSEware ] [ LSA ]

    Last updated: Tue Jan 26 12:26:47 1999