A Software Agent platform for Ubiquitous computing

Indus is an object oriented programming language for concurrent and distributed programming. It enables implementation of software agents and software components - both new abstractions of the language. Software agents 'coordinate' among themselves to collaboratively execute tasks and while doing so, they 'compose' (plug together/ reuse) software components. Coordination and Composition are new language abstractions in Indus. The Indus run time available to the Indus programmer as a set of libraries (some of whom he explicitly uses and some that are always implicitly used) enable agents implemented to be deployed into a Indus container, discover (at run time) other agents/components, route messages intelligently, manage transactions, policies, security, etc. The Indus compiler tool chain generates Java, C and Small C code that enables Indus agents to be executed on a variety of 8/16/32/64 bit hardware platforms. This makes it ideal as a pervasive computing platform.