Patent ID: 7870096

Claim:
A method of matching and composing assets, the method comprising: employing a processor executing computer-executable instructions stored on a computer-readable storage medium to implement the following acts: accessing a plurality of asset specifications, the plurality of asset specifications each including metadata describing compositional properties of respective assets and ports that support composition; responsive to a composition request, searching the plurality of asset specifications, and the metadata therein, to match a service provided by a first asset with a requirement of a second asset by: generating a first n-bit hash code for a service section of an interface of a port of the first asset, the service section including service metadata stored in a first asset specification of the plurality of asset specifications that describes the service provided by the first asset, the service metadata including a list of service ground predicates; generating an additional n-bit hash code for each service ground predicate in the list of service ground predicates; generating a second n-bit hash code for a requirement section of an interface of a port of the second asset, the requirement section including requirement metadata stored in a second asset specification of the plurality of asset specifications that describes the requirement of the second asset, the requirement metadata including a list of requirement ground predicates; generating a further n-bit hash code for each predicate in the list of requirement ground predicates; using a matching algorithm to compare the first n-bit hash code and the second n-bit hash code; and determining that the second n-bit hash code and the first n-bit hash code are a match based on the matching algorithm; upon determining that the second n-bit hash code matches the first a n-bit hash code, using another algorithm to identify any matches between the additional predicate n-bit hash codes and the further n-bit hash codes; and responsive to the composition request, based at least in part upon the second n-bit hash code matching the first n-bit hash code, and based at least in part upon any matches between the additional n-bit hash codes and the further n-bit hash codes, composing an application by linking the ports of the first and second assets.