Future directions in software technology

Dr James Coggins (coggins@cs.unc.edu)
Mon, 09 Oct 1995 16:59:22 +0100

The problems identified with monolithic packages in previous
submissions are shared in my research in image analysis. About 8 years
ago, I pioneered for our lab the development of shared C++ class
libraries to replace the development of ad hoc monolithic programs
for our experiments. The class library model has provided the
advantages we claimed for it, but it now is choking from its own
success. The large class libraries are now so large that linking
against them and adding to them are inconvenient enough to create
resistance in the community to their further development.

I have now defined and we are implementing a distributed system
architecture (the ARCTIC Environment) that I hope will soon become the
normal, natural way our lab develops software. The ARCTIC Environment
architecture responds to several problems and potential problems: the
excessively large base library; the difficulty of reaching standards
agreements over a large, diverse community; the need to disseminate
bodies of code while maintaining control over it during the rapid
maintenance updates; and the need to provide access via Internet to
unique resources (e.g. instruments, specialized algorithm
implementations). The distributed approach also brings some
advantages of its own: each distributed component executes in its own
address space and potentially on different machines; but each is tied
to its user in such a way that one does not need to fear the
proliferation of dead processes on cooperating machines on the
network; parallel or sequential processing of subproblems is easily
handled.

Of particular interest in this discussion is that my plan for the
ARCTIC environment rather neatly sidesteps the issue of data
standards. FITS is great (and I have raised it to people in several
other fields as a model of what benefits a community can obtain with a
little cooperation among participants). In the ARCTIC, the developer
of a database can provide a server to read it and a method for
communicating it that can be easily used by others.

The idea of distributed systems is not new, but the success of the
World Wide Web, the increased pervasiveness of Internet, and the
organizing principle of object-oriented programming are converging
to make distributed architectures a practical and desirable mode
of operation.

I will be prepared to discuss this further at ADASS V, including
describing the ARCTIC Environment in whatever detail is of interest.
If I get a chance to contribute to this discussion again before then,
I will try to do so.

-- 
Dr. James M. Coggins
Associate Professor & Associate Chairman for Academic Affairs
Department of Computer Science  E: coggins@cs.unc.edu
University of North Carolina	V: 919-962-1738    F: 919-962-1799
Chapel Hill, NC 27599-3175	W: http://www.cs.unc.edu/~coggins/