1. A computer-assisted method for creating and maintaining relationships between software applications, the method comprising: determining a meta-model; choosing one or more available artifacts to expose, the artifacts being available from a plurality of software applications, the plurality of software applications including a first software application and a second software application; modeling the one or more chosen available artifacts using the meta-model; receiving the one or more modeled artifacts; using the meta-model to define one or more relationships between the one or more modeled artifacts, wherein each relationship comprises a possible association defined in the meta-model, and wherein each relationship defines an aspect of a first artifact accessible via a second artifact where the first and second artifacts are selected from the one or more modeled artifacts, and wherein the first artifact is associated with the first software application and the second artifact is associated with the second software application; providing, using one or more computers, the one or more relationships to one or more of the plurality of software applications; and defining, during runtime of the first software application, a functional association between a software artifact of a first type corresponding to the first artifact of the modeled artifacts in the meta-model with a software artifact of a second type corresponding to the second artifact of the modeled artifacts in the meta-model using the possible association defined in the meta-model, wherein the software artifact of the first type is associated with the first software application and the software artifact of the second type is associated with the second software application.