| Nome: | Descrição: | Tamanho: | Formato: | |
|---|---|---|---|---|
| 1.15 MB | Adobe PDF |
Orientador(es)
Resumo(s)
The growing demand for continuous development and deployment is causing many to
steer away from the traditional monolithic architectural style and opt instead for Service-
Oriented Architectures (SOAs). Adopting an architecture that is based on loosely-coupled
services leads to enhanced modularity and flexibility, further translated into a philosophy
of iterative, evolutionary development. The benefits of this development pattern
were also made available in the OutSystems low-code platform, with the introduction of
services as a new development building-block.
Moreover, the independence innate to the multiple services that comprise a SOA hints
at possible opportunities for task parallelism: as long as different remote calls to services
don’t interfere with each other, they could be performed in parallel. As an immediate
result, there could be speedups in multiple parts of an application’s layers. Idle time
waiting for data could be reduced, along with internal business logic that could be carried
out faster, factors that would positively impact the overall flow of any application.
In this thesis we propose the design and implementation of an optimization process
that targets the heart of the SOA: the orchestrator itself, the conductor of service interaction
that enables the different business processes involved in a software system. The
work produced comprises a set of data analysis and representation techniques that work
together with the goal of detecting and informing opportunities for safe parallelism in the
interaction and composition of the services that make up software factories. The formal
definition of the algorithm is accompanied with a prototype that targets the OutSystems
platform, with the achievement of considerable speedups in common scenarios. The
results obtained suggest the viability of such a mechanism in the world of SOAs.
Descrição
Palavras-chave
OutSystems OutSystems Platform Data-Flow Analysis Control-Flow Analysis Parallelization Techniques Dependence Analysis
