1. A software integration architecture comprising: an integration rule set associated with each of a plurality of software components, the integration rule set defining rules associated with access and receipt of resources for a given software component; a negotiation engine that is operative to negotiate dynamically with respective connecting software components to define rules associated with integration of the software components; and an integration sub-component set that provides a selection of data configuration protocols and data transfer protocols that can be employed by the negotiation engine to define flow control, data conversions and communication mechanisms for transferring data and control between the software component and at least one connecting software component