This is my take on some of the ideas we talked about. Please edit it as you will. -- RonGoldman
One of the key contributors to the success of Java as a programming language was it's support of network computing: architecture neutral, portable, secure, and standard library !APIs for both low-level and high-level network operations. By making it easier for developers to write programs that used the network, Java both insured its own success and also helped fuel the dot-com boom.
Today a major problem holding back development is how to deal with the complexity of the current generation of distributed, network applications-in particular how to reliably offer network services. Any help that Sun can give developers to make their software more robust will increase Sun's mindshare and create product opportunities.
We propose to look at current software systems and practices to try to determine ways to develop more robust software. We expect that the outcome of this will be:
Our approach is to look outside of the standard computer science paradigm. We seek inspiration from the study of biological systems, from the Sante Fe Institute's work on complex adaptive systems, from the principles and techniques used in high-reliability telecom networks, and other areas outside the normal software development world.
In particular we are focused on the question of how do systems actively work to sustain/maintain their activity. In living systems a large fraction of the overall system activity is concerned with preservation, conservation and repair, while only a small amount takes care of the basic functionality. However for that basic functionality to be performed robustly seems to require the system devote the bulk of its resources to self-sustaining activities. This is in vivid contrast to typical software where basic functionality makes up most of the code with a small amount devoted to error detection and correction.
For further working with the above see GroupProposal....