• Nenhum resultado encontrado

Exemplo de Aplica¸c˜ ao: Um Planejador de Viagens (Travel Planner )

2.1 Cen´ ario de Aplica¸c˜ ao

2.1.5 Exemplo de Aplica¸c˜ ao: Um Planejador de Viagens (Travel Planner )

Considere um servi¸co web composto chamado de Travel Planner, o qual agrega v´arios ser- vi¸cos web compostos, tais como reserva de passagens a´ereas, seguro viagem, reserva de quarto de hotel, aluguel de carro ou bicicleta, e planejamento de rotas tur´ısticas. Todos estes servi¸cos web podem ser executados sequencialmente ou concorrentemente. O modelo de neg´ocios deste programa mais os outros servi¸cos web s˜ao apresentados na Figura 2.1.7

Um diagrama BPMN simplificado especificando o servi¸co web composto Travel Planer ´e apresentado na Figura 2.1.7. O usu´ario deve definir o destino e datas de partida e retorno no programa, o qual ent˜ao usa estas informa¸c˜oes para determinar quais vˆoos est˜ao dispon´ıveis. O pr´oximo passo envolve escolher um hotel com quartos vagos. V´arias listas de atra¸c˜oes podem ser fornecidas para ajudar a escolher uma viagem t´ıpica. Estas seriam as funcionalidades mais importantes da aplica¸c˜ao Travel Planer.

Neste servi¸co composto, cada elemento do processo de neg´ocios pode ser realizado por um servi¸co web parceiro. Reserva de vˆoo pode ser realizada pelo PackageFlights, acomoda¸c˜oes em hotel poderia ser feita pelo parceiro PackagePartner, e busca de atra¸c˜oes locais poderiam ser implementadas pelo parceiro PackageINFO, conforme mostrado na Figura 2.1.6.

Depois destas opera¸c˜oes de buscas e reservas terem sido completadas, a distˆancia do hotel para o local de atra¸c˜oes poderia ser calculada (CalculateDrivingTime) e um servi¸co de aluguel de bicicleta (BikeRental ) ou de aluguel de carro (CarRental ) poderia ser implementado para completar o planejamento. A Figura-2.1.6 mapeia cada atividade do Travel Planner com res- peito as opera¸c˜oes de cada servi¸co web espec´ıfico. Por exemplo, a atividade “Bycycle Rental ” usa o servi¸co web PackageBicycle, atrav´es das opera¸c˜oes getRentValue e rentBicycle.

5Em engenharia de software, um artefato pode ser, por exemplo, documento de requisitos, c´odigo de programa,

um fluxograma e um diagrama Unified Modeling Language (UML), diagramas de teste, etc. De fato, artefato ´e um nome gen´erico para um produto que ´e encontrado nas fases intermedi´arias e finais do processo de desenvolvimento de software.

Cap´ıtulo 2. Programa¸c˜ao de Servi¸cos Web 11

Figura 2.1.6: Travel Planner mapeado em Servi¸cos Web

Cap´ıtulo

3

Otimiza¸c˜ao Multiobjetivo

Em abordagens modernas para sele¸c˜ao de servi¸cos web, uma estrat´egia de sele¸c˜ao local ´e frequentemente adotada, o qual significa que componentes de servi¸co s˜ao atribu´ıdas a tarefas individuais uma-a-uma. Esta estrat´egia n˜ao suporta restri¸c˜oes ou preferˆencias globais dos usu´a- rios. Por exemplo, o tempo para a execu¸c˜ao de um servi¸co composto pode ser limitado ou o custo total n˜ao pode exceder um or¸camento pr´e-definido.

Servi¸cos componentes que possuem as funcionalidades requeridas s˜ao associados a tarefas individuais do servi¸co composto e invocados durante cada execu¸c˜ao do servi¸co composto. Os servi¸cos dispon´ıveis que atendem a funcionalidade desejada podem ser numerosos e sujeito a mudan¸cas. As abordagens para servi¸cos compostos baseadas em descoberta em tempo de de- sign podem ser inapropriadas. A sele¸c˜ao em tempo de execu¸c˜ao dos servi¸cos componentes ´e a abordagen adotada nesta texto.

Embora os padr˜oes BPMN tenham sido usados para representar processos de neg´ocios, so- mente um pequeno subconjunto dos elementos BPMN s˜ao usados, tais como activity, gateway, begin event, end event, pool e lane. Nesta se¸c˜ao, os elementos pool e lane s˜ao representados por barras paralelas horizontais. Em adi¸c˜ao, um novo elemento ´e introduzido para identificar explicitamente os ramos THEN e ELSE do gateway.

A representa¸c˜ao de um processo de neg´ocios pode ser vista como um grafo dirigido, mais conveniente para descrever problemas de otimiza¸c˜ao. As regras de convers˜ao s˜ao como se se- gue. Primeiro, se o diagrama original contem decis˜oes gateway, ent˜ao o programa1 de pr´e- processamento gera dois grafos, um para o ramo THEN e outro para o ramo ELSE. Segundo, os elementos pool e lane (ou barras paralelas horizontais para sincroniza¸c˜ao de tarefas) n˜ao s˜ao re- presentadas graficamente, pois uma busca em profundidade pode encontrar todos os caminhos. Terceiro, os elementos activit y, begin event, e end event s˜ao mapeados como tarefas dos grafos. Os activities do diagrama BPMN s˜ao mapeados em tarefas no modelo de qualidade do servi¸co web. Em (Ardagna & Pernici 2005, Zeng et al. 2004), diferentes mapeamentos foram usados.

Um conceito que n˜ao ´e incluido em BPMN, mas ´e necess´ario para completar o modelo matem´atico ´e o de frequˆencia de execu¸c˜ao. Quando um gateway ´e encontrado, ´e necess´ario gerar um n´umero real entre 0 e 1 associado com a frequˆencia relativa da execu¸c˜ao das alternativas THEN e ELSE. Durante a implementa¸c˜ao real, esta frequˆencia seria obtida de dados hist´oricos. Um processo de neg´ocios pode ser representado como um task graph, uma terminologia adotada em (Sinnen 2007), mais conveniente para descrever problemas de otimiza¸c˜ao. Dado que uma representa¸c˜ao de neg´ocios pode conter constru¸c˜oes IF-THEN-ELSE, uma possibilidade seria

1Este ´e um programa Java que automatiza a convers˜ao de grafos dirigidos BPMN. 13

gerar dois task graphs com frequˆencias de execu¸c˜ao espec´ıficas. Um execution path pode incluir atividades paralelas, mas n˜ao atividades em ambos os ramos THEN e ELSE simultaneamente. A Figura 3.1.1 ilustra a convers˜ao de um diagrama BPMN em dois tasks graphs.

As regras de convers˜ao propostas nesta pesquisa seriam como se segue. Em primeiro lu- gar, se um diagrama BPMN original contem decis˜oes gateway, ent˜ao um programa de pr´e- processamento – um programa Java que converte o diagrama BPMN em um task graph – gera dois grafos, um para o ramo THEN e outro para o ramo ELSE. Em segundo lugar, os elementos pool e lane (ou as barras horizontais paralelas usadas para sincroniza¸c˜ao de tarefas) n˜ao s˜ao representadas graficamente porque uma busca em profundidade pode encontrar todos os cami- nhos de execu¸c˜ao. Em terceiro lugar, os elementos activity, begin e end s˜ao representados como n´os no task graph. Os elementos do grafo s˜ao, por sua vez, convertidos em modelos matem´aticos de otimiza¸c˜ao, os quais consideram todos os crit´erios de qualidade (desempenho) selecionados. Modelos diferentes de otimiza¸c˜ao s˜ao usados em (Ardagna & Pernici 2005) e (Zeng, Benatallah, Dumas, Kalagnanam & Sheng 2003).

Um conceito n˜ao inclu´ıdo nos padr˜oes BPMN, mas necess´ario para completar o modelo matem´atico ´e o de frequˆencia de execu¸c˜ao. Quando um gateway origina elementos THEN e ELSE, ´e necess´ario gerar um n´umero real entre 0 e 1 associados com a frequˆencia relativa da execu¸c˜ao daquele elemento. Em implementa¸c˜oes pr´aticas, as frequˆencias de execu¸c˜ao s˜ao obtidas de dados gravados.

3.1

Modelo de Qualidade para Servi¸cos Web

No presente estudo, um modelo de qualidade do servi¸co web baseado em cinco objetivos – tempo de execu¸c˜ao, pre¸co, reputa¸c˜ao do servi¸co, confiabilidade e disponibilidade – ´e conside- rado. Este modelo de qualidade ´e usado para criar um modelo global para selecionar servi¸cos. Restri¸c˜oes de qualidade e preferˆencias s˜ao associadas a servi¸cos compostos ao inv´es de as tarefas individuais dentro do servi¸co composto. O problema da sele¸c˜ao de servi¸co ´e ent˜ao formulado como um problema de otimiza¸c˜ao matem´atica.

Documentos relacionados