1. A method for re-using a software component, the method comprising: publishing metadata for use in conjunction with a re-usable software component, the metadata identifying one or more capabilities of the re-usable software component, identifying one or more other software components with which the re-usable software component can be integrated, and identifying one or more mechanisms for integrating the re-usable software component with the one or more other software components; and integrating the re-usable software component and the one or more other software components based upon the metadata.