Summary: | O uso de Web Services tem aberto novas possibilidades de desenvolvimento de software, entre elas a composição de serviços. A composição de serviços apresenta novas questões no ambiente computacional, entre elas a execução integral, garantindo consistência e contemplando o controle de concorrência. O workflow é um conjunto de tarefas e interações organizadas de modo que forneça uma funcionalidade ao sistema, provendo a automatização de processos complexos, através da composição de serviços. Tal composição deve ser executada de forma transacional, processando as operações com consistência. A execução de workflows oriundos de domínios diferentes, faz com que os serviços que estão sendo utilizados, não possuam ciência do contexto da execução, podendo gerar atendimentos que não sejam justos, causando situações de deadlock e de starvation. Este trabalho apresenta estratégias para a execução de workflows em domínios distintos, que requisitam múltiplos serviços de um mesmo conjunto, sem a necessidade de um coordenador central, de forma transacional. O atendimento a requisição contempla uma política justa na utilização do recurso que impede a ocorrência de deadlock ou de starvation para os workflows em execução. Os experimentos realizados neste trabalho mostram que o sistema desenvolvido, aplicando as estratégias propostas, executa as composições de serviços de maneira transacional, atendendo as requisições com justiça, livre de deadlock e starvation, mantendo o sistema independente e autônomo. === Web Services are increasing software development possibilities, among then service composition. Service composition introduces new issues on computational environment, such as the whole service execution, ensuring consistency and concurrency control. Workflow is a set of organized tasks and interactions in order to provide functionality to the system, automating complex process through composition service. Such composition must be performed by transactional support, performing operations consistently. The workflow execution from different domain clients sharing the same composition make these clients ignore the execution context. It may cause inconsistencies, from unfair attendance to deadlock or starvation. This work depicts strategies for workflow execution from different domains, requesting multiple services from the same composition, without a centralized coordinator, in transactional way. The request attendance contains a fair policy for resource usage and consumption to avoid deadlock and starvation. Applying the proposed strategy on the experiments performed in this work, it confirms that the developed system executes service composition with transactional support, avoiding deadlock or starvation, keeping the whole system autonomous and independent.
|