Patent ID: 8813024

Claim:
A method for cross-platform porting of applications, comprising: extracting a platform independent model (PIM) from an existing composite application running on a given source platform; and transforming the PIM into generated implementation artifacts on another, target platform, wherein the generated implementation artifacts on the target platform leverage existing assets on the target platform thereby making the generated artifacts contextually-aware binding the generated implementation artifacts with an existing service on the target platform by applying a semantic matching algorithm to automatically bind the generated implementation artifacts with the existing service on the target platform; wherein extracting a PIM from an existing composite application further comprises: identifying existing implementation artifacts of the composite application; transforming the identified implementation artifacts for generating a platform specific model (PSM), wherein generating a PSM includes one or more transformations between the implementation artifacts and one or more meta-models of the PSM; and transforming the PSM for generating a PIM, wherein generating a PIM includes one or more transformations between the one or more meta-models of the PSM and one or more meta-models of the PIM; wherein one or more transformations between elements of the one or more meta-models of the PSM and elements of the one or more meta-models of the PIM include one or more mappings that define rules for mapping between the elements of the one or more meta-models of the PSM and the elements of the one or more meta-models of the PIM, and wherein when at least one of the one or more meta-models of the PIM or at least one of the one or more meta-models of the generated PSM are unknown, further comprising automatically creating for each of the unknown meta-models an exemplar that corresponds to the unknown meta-model, and reverse-engineering a known meta-model from the exemplar that corresponds to the unknown meta-model.