Dissertação para obtenção do Grau de Mestre em
Engenharia InformáticaEnterprises typically have their data spread over many software systems, such as
custom made applications, CRM systems like SalesForce, CMS systems, or ERP systems
like SAP. In these setting, it is often desired to integrate information from many data
sources to accomplish some business goal in an application. Data may be stored locally
or in the cloud in a wide variety of ways, demanding for explicit transformation processes
to be defined, reason why it is hard for developers to integrate it. Moreover, the amount
of external data can be large and the difference of efficiency between a smart and a naive
way of retrieving and filtering data from different locations can be great. Hence, it is
clear that developers would benefit greatly from language abstractions to help them build
queries over heterogeneous data sources and from an optimization process that avoids
large and unnecessary data transfers during the execution of queries.
This project was developed at OutSystems and aims at extending a real product, which
makes it even more challenging. We followed a generic approach that can be implemented
in any framework, not only focused on the product of OutSystems