An architecture for developing a distributed information system comprises
a service definition tool for generating service protocols as a service
definition. Each service protocol includes a plurality of messages. The
messages include incoming messages and outgoing messages. Each message
carries a plurality of data fields. A component development tool
generates a first and a second plurality of components that implement and
consume services. Each component in the first plurality of components
represents a physical entity in the distributed information system. Each
component in the second plurality of components represents a logical
entity in the distributed information system. A system development tool
generates a plurality of component instances based on the first and the
second plurality of components. An engine software program runs on each
of a plurality of networked nodes. The engine software program provides a
programmable run-time environment for hosting the plurality of component
instances and supporting communication between component instances.