• Nenhum resultado encontrado

3.3 Limitações do Paradigma de Arquiteturas Orientadas a Serviço

3.3.3 Evolução de Web Services

Em (Papazoglou, 2008) os autores discutem a dificuldade em lidar com as mudanças nos serviços (infra-estrutura, protocolos de negócios, comportamento, política operacional) tornando- se difícil estabelecer um acordo de nível de serviço (SLA). Um SLA deve considerar as mudanças nos serviços e nas decisões a este respeito. Entre eles estão, como o sistema irá responder a uma mudança de serviço, se as mudanças são funcionais (específicas de serviço) ou não funcionais. Outra questão é em relação às versões de serviços. As novas versões precisam considerar as car- acterísticas do antigo e ao mesmo tempo, introduzir novas características que refletem a mudança no serviço. O artigo trata das mudanças que possam ocorrer durante o ciclo de vida de serviços. Tais alterações podem ser de dois tipos:

• Shallow: Envolve mudanças estruturais e mudanças no protocolos de negócios. Ocorre geralmente em serviços simples e de processos de negócio.

• Deep: Envolve alterações determinadas pelas mudanças nas políticas e comportamento op- eracional. Ocorre em processos de negócios. As mudanças profundas são as mais difíceis para lidar, porque envolve problemas como:

– Serviços de Fluxo – Controle de Serviços – Sobreposição de Serviços

– Funcionalidades de Serviços conflitantes – Serviços de entrada e saída

Há uma forte relação entre a evolução de um serviço e o desempenho de um sistema. Portanto, é essencial considerar os aspectos de desempenho para: analisar o sistema, controlar o sistema e também para a melhoria dos processos de negócios. Questões como a evolução dos serviços e gestão de mudanças também precisam ser consideradas. Esses aspectos são importantes na avaliação do desempenho de um sistema. É também necessário lidar com contratos de serviços (exigências funcionais, requisitos não-funcionais, políticas - acordos e suporte).

CAPÍTULO 3. DESEMPENHO EM SOA E QOS EM WEB SERVICES 35

3.3.4 Composição de Web Services

Em uma arquitetura orientada a serviços, Web Services funcionalmente equivalentes com qual- idade diferente podem ser selecionados para juntos realizar uma tarefa de forma dinâmica. Os

Web Services devem ser escolhidos por requisitores com base em suas necessidades. Nesse sen-

tido, a utilização de SLAs pode satisfazer a exigência do solicitante e ser utilizado em um fluxo de composição de Web Services. Em (Dong e Jiao, 2008) os autores propõem um mecanismo de composição de serviços orientados à QoS e estabelecem uma relação entre o espaço vetorial SLA e constroem um serviço composto baseado numa análise funcional dos atributos de QoS. A com- posição de Web Services é um tema importante na literatura uma vez que um único Web Service tem funcionalidade limitada, se comparada com um processo de negócio complexo. Um processo de negócio geralmente envolve mais de uma organização independente que possui serviços que precisam ser integrados e, em seguida, fornecer aos clientes um resultado desejado. Portanto, há uma demanda crescente em pesquisas que envolvem a composição de Web Services e QoS, e como esta parceria pode proporcionar aos clientes um resultado satisfatório para suas necessidades e requisitos para a utilização de um Web Service.

Um dos principais conceitos utilizados para a integração dos processos dentro de Business Pro-

cess Management (BPM) é a composição de Web Services, em que as linguagens Business Pro-

cess Execution Language(BPEL) (Decker et al., 2007) e Yet Another Workflow Language (YAWL)

(van der Aalst e ter Hofstede, 2005) são baseadas. Um aspecto importante do modelo de serviço é que os novos serviços podem ser criados a partir da existência dos outros, sem descuidar do paradigma da arquitetura orientada a serviços (Weerawarana et al., 2005). As dificuldades para a operação dos Web Services em larga escala esbarra em questões tais como: diferentes estraté- gias de composições e linguagens diferentes para concepção da execução de um fluxo. Para lidar com um fluxo de composição complexa (Dustdar e Schreiner, 2005) os autores consideram seis questões essenciais na composição de Web Services: a coordenação, a transação, o contexto, con- versação, execução e infra-estrutura. Por exemplo, a execução de um fluxo composto pode ser centralizada ou distribuída, a abordagem composta pode ser estática ou dinâmica, em tempo de

designou tempo de execução, orientado a modelos ou orientado a regras de negócio, automático

ou manual. Outros desafios incluem: descoberta de serviços, seleção de serviços e mudanças nos serviços. Essas discussões, algumas especificamente relacionadas com a composição de serviços, para não mencionar outras, traz uma reflexão aos muitos desafios pela frente para alcançar um equilíbrio entre desempenho e eficiência tanto para o provedor quanto para o cliente do serviço.

Para a composição de Web Services ser uma ferramenta computacional eficaz é essencial que as interfaces de serviços (WSDL) e motores de processamento de mensagens considerem a semântica dos dados. Composição de Web Services é um tema crucial e tem um grande impacto em diferentes áreas de pesquisa (Dustdar e Schreiner, 2005). O número crescente de dispositivos conectados e os recursos de cliente heterogêneos necessitam que as informações dos serviços sejam acessíveis a partir de qualquer dispositivo (Dustdar e Schreiner, 2005), (Keidl e Kemper, 2004). Muitas são

36 3.3. LIMITAÇÕES DO PARADIGMA DE ARQUITETURAS ORIENTADAS A SERVIÇO as vantagens de ocultar a natureza heterogênea dos dados e fornecer uma interface bem definida para o acesso aos dados, principalmente para dispositivos móveis e sistemas pervasivos (Dustdar e Schreiner, 2005). No entanto, como informações sobre o contexto de serviços tornam-se funda- mentais em futuras aplicações Web, é importante o uso de técnicas que garantam um mínimo de desempenho e qualidade de serviço (QoS). Por exemplo, o uso de agentes móveis para monitorar o

statusdos Web Services para verificar a sua disponibilidade e notificar os participantes, e também

a tomada de decisão quando ocorre algumas mudanças, quando propagá-las, pois as mudanças podem ocorrer antes ou durante a invocação do serviço.