• Nenhum resultado encontrado

Este capítulo apresentou os conceitos básicos necessários para esta tese. Foram apresentados os fundamentos de serviços web, mais especificamente: processos de negócio, orientação a serviço, padrões de serviços web, interação entre serviços web, qualidade de serviço e contratos eletrônicos. Foi explicada a finalidade do monitoramento de serviços web e como ele pode ser classificado, em relação a: intrusão, carga e tempo. Em seguida foi mostrado o conceito de computação autonômica, assim como suas propriedades e a definição de sistemas auto-adaptativos. E por último, os sistemas fuzzy foram introduzidos, junto com os fundamentos de: conjuntos fuzzy, operações sobre conjuntos fuzzy, variáveis linguísticas, sintaxe e semântica das regras fuzzy, sistemas fuzzy baseados em regras e sistemas fuzzy de classificação.

Capítulo 3

3.

Trabalhos Relacionados

Neste capítulo são apresentados alguns trabalhos que abordam um ou mais assuntos relacionados com esta tese.

O capítulo é dividido pelos assuntos relacionados. Inicialmente são apresentados os trabalhos sobre monitoramento. Depois, são listados os trabalhos com propriedades autonômicas. Na sequência são apresentados trabalhos que utilizam a teoria fuzzy. Em seguida são apresentados alguns trabalhos com arquitetura similar. E por último, são apresentados os trabalhos anteriores ao desta tese, os trabalhos que foram utilizados como base para a arquitetura proposta nesta tese. No final são apresentadas as considerações do capítulo.

3.1. Monitoramento

É possível listar vários trabalhos sobre monitoramento. Um monitoramento levemente intrusivo pode ser encontrado nos trabalhos de Moser et al. (2008) e Michlmayr et al. (2009), e um monitoramento assíncrono pode ser encontrado nos trabalhos de Baresi et al. (2008) e Wetzstein et al. (2009). O trabalho de Magalhães & Silva (2015) apresenta características de monitoramento não-intrusivo e assíncrono.

Moser et al. (2008) apresentam VieDAME, um sistema que substitui serviços de acordo com os atributos de qualidade de serviço. Estes serviços são substituídos em tempo de execução. Cada serviço pode ser marcado como substituível para indicar que serviços

alternativos podem ser configurados e invocados ao invés do serviço original definido no processo.

Cada serviço e todos os seus serviços alternativos são armazenados no repositório de serviços do VieDAME. Se um serviço deve ser substituído dinamicamente por um serviço alternativo durante a execução do processo, o serviço original capturado pela camada de adaptação do VieDAME tem de ser marcado como substituível na interface do VieDAME UI. Serviços alternativos podem ser adicionados a qualquer momento. Suas descrições são fornecidas através da VieDAME UI. Além disto, a VieDAME UI pode ser usada para priorizar os serviços alternativos a serem utilizados. As interfaces dos serviços alternativos não precisam ser iguais à interface do serviço original.

Michlmayr et al. (2009) apresentam um arcabouço para monitorar os valores da qualidade de serviço e as possíveis violações do SLA (Service Level Agreement). O sistema proposto foi chamado de VRESCo (Vienna Runtime Environment for Service-oriented Computing) e visa combinar as vantagens do monitoramento de QoS tanto do lado do serviço como do lado do cliente. Um processamento de eventos é usado para integrar os dois monitoramentos e fornecer os meios para monitorar os SLAs. Se as obrigações do SLA são violadas, notificações são enviadas para os interessados via email ou através de notificações de serviços web.

Por monitoramento do lado do cliente entende-se por enviar sondas de requisição para o serviço que deveria ser monitorado. Estas sondas representam somente o estado em cada sonda. Desta forma, o monitoramento do lado do servidor resolve este problema com o monitoramento constante dos atributos da QoS.

O sistema VRESCo oferece suas principais funcionalidades como serviços web. A máquina de consultas oferece uma consulta segura do conteúdo enquanto a camada de controle de acesso é responsável por permitir somente usuários autorizados e autenticados aos serviços do núcleo VRESCo. A máquina de notificação de eventos pode ser usada para informar aos usuários que os eventos de interesse aconteceram, enquanto todos os eventos são adicionados ao banco de dados de eventos de forma persistente. Esta máquina de eventos é utilizada para o monitoramento da QoS e do SLA.

Os usuários podem especificar o agendamento do monitoramento da QoS definindo qual serviço (ou operação do serviço) deveria ser monitorado e em qual intervalo de tempo. Depois que os valores da QoS são medidos, eles são publicados dentro do VRESCo. Isto é feito por meio do gerente da QoS, que por sua vez, publica os eventos correspondentes a QoS dentro da máquina de notificação de eventos. O monitoramento é feito regularmente a

partir do agendamento de monitoramento definido pelo usuário. O conjunto dos resultados dos eventos de QoS representam a história da informação da QoS como uma coleção de vários instantes independentes da QoS. Para tornar estes valores facilmente acessíveis, eles são agregados por uma tarefa de agendamento agregador da QoS e inserido no serviço (ou operação do serviço) correspondente.

Baresi et al. (2008) apresentam um arcabouço que separa as atividades de coleta de dados, o monitoramento e a recuperação. Separando o monitoramento, é possível utilizar várias abordagens de monitoramento dentro do mesmo arcabouço. O monitor apresenta características de monitoramento assíncrono e leve. Entre as informações coletadas estão: os dados internos, que contêm o estado interno do processo; os dados externos, que fornecem informações do ambiente; e, os dados históricos, que representam as informações de execuções passadas. Abordagens diferentes de monitoramento são capazes de compartilhar os resultados parciais e colaborarem para uma avaliação mais completa. O arcabouço pode aplicar ações corretivas na mesma instância do processo, em instâncias diferentes (de diferentes processos), e também na definição do processo. É permitida uma interação entre as ações síncronas e assíncronas com um mecanismo de resolução de conflitos associado a uma prioridade.

Antes de iniciar a execução de qualquer processo, o supervisor configura os diferentes componentes para que eles executem corretamente as tarefas de supervisão. Após a configuração, toda vez que um processo termina uma atividade, as sondas coletam os dados internos e enviam estes dados para o controlador, que insere estes dados na sua memória de trabalho. Os dados disponíveis na memória de trabalho do controlador podem ativar regras adequadas para que o gerente dos dados recupere os dados externos ou históricos e os armazene em sua memória de trabalho.

Depois que os dados são coletados e armazenados, as regras também são responsáveis por enviar os dados para o monitoramento adequado. Isto cria regras especiais que são disparadas pela máquina de regras do controlador. Para cada tipo de monitoramento utilizado, os projetistas devem especificar asserções que eles querem verificar.

Assim que o resultado do monitoramento é produzido, ele é enviado para o controlador que o insere em sua memória de trabalho. Estes novos dados podem disparar regras para aplicar algumas ações de recuperação, como modificar as instâncias do processo em execução, alterar o funcionamento do controlador, ou modificar as verificações realizadas pelo monitoramento. Neste ponto, o controlador tem todos os resultados do monitoramento e

pode ativar diferentes estratégias de recuperação. A recuperação pode acessar a parte interna do processo usando as sondas.

Wetzstein et al. (2009) apresentam um arcabouço com três camadas bem definidas: camada do processo em execução, camada do monitoramento e camada de análise do processo.

Na camada do processo em execução, os processos de negócio são definidos e executados. Esta camada fornece as informações do processo que são necessárias para o cálculo dos PPMs (Process Performance Metrics) na forma dos eventos dos processos. Na camada de monitoramento, as informações sobre os processos de negócio em execução e sobre os serviços que interagem são coletadas para monitorar os KPIs (Key Performance Indicators), os PPMs e as métricas de QoS. Durante o tempo de execução do processo, o monitor QoS e a máquina do processo publicam os eventos em um canal de publicação/registro na qual a ferramenta de monitoramento está inscrita. O PPM e as métricas da QoS são calculados, armazenados no banco de dados de métricas para análise posterior e disponibilizados no painel do BAM (Business Activity Monitoring). E, na camada de análise do processo, a informação das métricas coletadas é armazenada pelo componente analisador de processo. Quando o usuário está interessado em fazer uma análise de dependência dos KPIs, o analisador de processo reúne os dados necessários da métrica no banco de dados de métricas, prepara os dados, e usa um algoritmo de árvore de decisão para gerar a árvore de dependência que mostra os fatores influentes do KPI. Os resultados da análise são novamente mostrados no painel para os usuários do sistema, que podem usar esta informação para melhorar o processo de negócio.

O arcabouço SHõWA proposto por Magalhães & Silva (2015) tem um monitoramento em nível de aplicação durante a execução do processo. É possível monitorar os parâmetros do sistema periodicamente e alertar se algo não está como esperado. Também de forma periódica, é possível fazer uma transação ou um conjunto de transações para verificar a disponibilidade de um serviço, a ocorrência de erros e o seu tempo de resposta. Durante a execução da aplicação são coletados os dados para detectar anomalias de desempenho e identificar se a anomalia foi motivada por uma alteração no sistema, por uma alteração no servidor de aplicação ou por uma alteração na aplicação.

O monitor proposto nesta tese tem três propriedades combinadas: levemente intrusivo, assíncrono e leve/pesado. O monitor suporta tanto o monitoramento leve como o monitoramento pesado. A Tabela 1 mostra os tipos de monitoramento comparando os trabalhos relacionados com esta tese. A diferença entre os trabalhos com monitoramento

assíncrono com o apresentado nesta tese é que os outros descobrem uma falha depois da execução do processo, e o apresentado nesta tese tenta prever uma possível falha em paralelo com a execução do processo. Esta diferença pode ser observada na Tabela 2.

Trabalho

Monitoramento Levemente

Intrusivo Não-Intrusivo Assíncrono Leve Pesado

Moser et al. (2008) X Michlmayr et al. (2009) X Baresi et al. (2008) X Wetzstein et al. (2009) X Magalhães & Silva (2015) X X Tese X X X X Tabela 1: Comparação entre os Trabalhos Relacionados e a Tese com Relação ao Tipo de Monitoramento.

Trabalho Tratamento Falha

Depois Execução Processo Paralelo Execução Processo

Baresi et al. (2008) X

Wetzstein et al. (2009) X

Magalhães & Silva (2015) X

Tese X

Tabela 2: Comparação entre os Trabalhos Relacionados e a Tese com Relação ao Tempo em que é Feito o Tratamento de uma Falha.

3.2. Propriedades Autonômicas

Alguns autores utilizam uma ou mais propriedades autonômicas em seus trabalhos. A propriedade de auto-configuração pode ser encontrada em Al-Oqily & Karmouch (2011) e Mannava & Ramesh (2012), a propriedade de auto-otimização pode ser encontrada em Gounaris et al. (2008), e a propriedade de auto-cura pode ser encontrada em Baresi et al. (2008) e Magalhães & Silva (2015). Ke & Huang (2012) e Alférez et al. (2014) apresentam sistemas auto-adaptativos.

Al-Oqily & Karmouch (2011) propõem uma abordagem de auto-organização, onde as entidades são compostas dinamicamente em serviços específicos. Um novo algoritmo de composição de serviços foi criado para lidar com o problema de compor vários elementos para atingir os objetivos do sistema. O algoritmo combina a composição e a descoberta dos serviços em uma única etapa, conseguindo assim mais eficiência e menos latência. A natureza descentralizada e de auto-organização do algoritmo permite responder rapidamente às mudanças do sistema.

Mannava & Ramesh (2012) propõem uma arquitetura para a configuração dinâmica e composição dos serviços, mantendo a propriedade de auto-configuração. O trabalho se preocupa com a composição de padrões de projetos existentes a partir de vários paradigmas de programação, que são utilizados para as características de auto-configuração e auto-cura nos sistemas de computação autonômica. O foco da arquitetura é introduzir um novo serviço como a composição de dois ou mais serviços para reduzir o número de requisições para controlar.

Gounaris et al. (2008) descrevem um trabalho que minimiza o tempo de resposta total das execuções de chamadas a um banco de dados exposto a um ambiente volátil. Os principais desafios para este problema estão relacionados com a indisponibilidade do modelo, a volatilidade do ambiente e os requisitos para uma rápida convergência para o tamanho ideal do pedido a partir do lado do cliente. Duas soluções são apresentadas, otimização em tempo de execução e alteração para controle extremo. São utilizadas heurísticas para evitar ótimos locais e enfrentar os desafios do problema.

Baresi et al. (2008) apresentam um arcabouço para garantir a propriedade de auto- cura. O arcabouço separa o monitoramento da recuperação. Separando o monitoramento é possível utilizar várias abordagens.

O arcabouço SHõWA proposto por Magalhães & Silva (2015) apresenta a propriedade de auto-cura para aplicações baseadas na web. SHõWA é composto por vários módulos, que monitoram a aplicação, analisando-a para detectar e apontar anomalias, e executar ações de recuperação de forma autônoma. Estas anomalias são detectadas e apontadas por correlação estatística.

Ke & Huang (2012) apresentam um método semântico de correspondência de serviços web auto-adaptativo, o que melhora a precisão da descoberta de serviço. No método proposto, os documentos de requisitos e os perfis do serviço são transformados em uma árvore de ontologias. A árvore é reestruturada de forma auto-adaptativa, para obter uma coleção de serviços finais de uma forma mais precisa.

Alférez et al. (2014) apresentam uma auto-adaptação dinâmica para a composição de serviço. É desejável ter mecanismos autonômicos para orientar a auto-adaptação das composições de serviços de acordo com as mudanças na infraestrutura. A solução é baseada em um modelo de variabilidade semântica para apoiar a adaptação dinâmica das composições de serviço. Quando um evento problemático acontece, o modelo é utilizado para a tomada de decisão. A ativação ou desativação das características no modelo de variabilidade resulta em mudanças no modelo de composição. Estas alterações são refletidas na composição de serviços, que podem ser feitas em tempo de execução.

A arquitetura proposta nesta tese tem três propriedades autonômicas combinadas: auto-configuração, auto-otimização e auto-cura. O diferencial da arquitetura proposta nesta tese é a combinação das três propriedades autonômicas em serviços web, os trabalhos relacionados não apresentam as três propriedades juntas. Esta diferenciação pode ser observada na Tabela 3. Outra diferença é a aplicabilidade, a arquitetura proposta nesta tese foca no monitoramento dos serviços web, os trabalhos relacionados, em sua grande maioria, focam na descoberta/seleção dos serviços web. A Tabela 4 ilustra a diferença na aplicabilidade entre os trabalhos relacionados e esta tese.

Trabalho Configuração Auto- Otimização Auto- Auto-Cura Auto-Adaptação

Al-Oqily & Karmouch (2011) X Mannava & Ramesh (2012) X

Gounaris et al. (2008) X

Baresi et al. (2008) X

Magalhães & Silva (2015) X

Ke & Huang (2012) X

Alférez et al. (2014) X

Tese X X X X

Trabalhos Aplicação

Monitoramento Serviços Descoberta/Seleção Serviços

Al-Oqily & Karmouch (2011) X

Mannava & Ramesh (2012) X

Gounaris et al. (2008) X

Baresi et al. (2008) X

Magalhães & Silva (2015) X

Ke & Huang (2012) X Alférez et al. (2014) X Tese X Tabela 4: Comparação entre os Trabalhos Relacionados e a Tese com Relação à Aplicabilidade na Utilização das Propriedades Autonômicas. 3.3. Teoria Fuzzy

Outros autores têm utilizado a teoria fuzzy em ambientes de serviços web. Os focos dos trabalhos relacionados estão na descoberta/seleção dos serviços web, e não no monitoramento dos serviços web.

O trabalho de Bai & Liu (2008) utiliza teoria fuzzy para melhorar o processo de descobrimento no UDDI (Universal Description, Discovery, and Integration). Um algoritmo baseado em conjuntos fuzzy é proposto, que pode ser utilizado para apoiar o processo de descoberta de serviços de forma automatizada e com veracidade, distinguindo os serviços que são potencialmente úteis dos que são provavelmente irrelevantes, além de ordenar os potencialmente úteis de acordo com a sua relevância nas consultas dos clientes.

Zhao & Tan (2009) avaliam a qualidade de serviço em serviços web. O método deles pode orientar a seleção de serviço e fazer o usuário receber o melhor serviço enquanto está fazendo suas escolhas. Além disso, o método é conveniente para os provedores de serviços para controlar e gerenciar a publicação de serviços, o que melhora a qualidade de serviço.

O trabalho de Bacciu et al. (2010) é baseado na medida de similaridade de valor fuzzy, tendo como especificação os parâmetros de qualidade de serviço dos consumidores e provedores, para selecionar o serviço mais apropriado entre vários com funcionalidade equivalente. Eles apresentam um monitoramento em tempo de execução para atualização dinâmica do serviço a partir do desempenho atual da qualidade de serviço. O processo de

seleção dos serviços explora a teoria dos conjuntos fuzzy, especificando a QoS, além de criar uma classificação por meio de uma relação de ordem para as soluções aceitáveis.

O trabalho de Châtel et al. (2010) propõe monitorar um conjunto de possíveis serviços candidatos para uma solicitação de qualidade de serviço, e escolher um serviço entre os disponíveis no tempo da chamada do serviço. Isto permite aplicações mais ágeis e robustas, chamadas de processos de negócio adaptáveis. É proposta uma nova abstração de programação, baseada em QoS para invocações de serviços com ligação tardia, permitindo mais agilidade na execução de processos de negócios. Com base nos valores de QoS dos atuais conjuntos de serviços e as preferências dos usuários expressas de forma qualitativa, a seleção de serviço elege e chama a melhor oferta atual, entre os serviços equivalentes, capazes de responder a esta chamada.

Pan et al. (2014) constroem um modelo de otimização fuzzy para resolver o problema de seleção do provedor. A seleção de um provedor que fornece o serviço adequado para o consumidor pode ser considerada um problema de tomada de decisão com múltiplos critérios (MCDM – Multi-Criteria Decision-Making Problem). O consumidor deve ponderar a importância relativa dos fatores relacionados com o serviço, como por exemplo, a qualidade de serviço (QoS). Porém, grande parte dessa informação é incerta. Então o problema de seleção torna-se muito complexo, principalmente em ambientes reais. A proposta do trabalho é combinar recursos para construir um modelo de otimização fuzzy baseado em multi- objetivos para resolver o problema de seleção do provedor.

Pokhrel et al. (2014) propõem um sistema especialista híbrido fuzzy para estimar a QoE (Quality of Experience – Qualidade de Experiência) dos serviços web para a seleção de serviços web. Normalmente os parâmetros de QoS são utilizados para selecionar o serviço web com o melhor desempenho. Porém, estes parâmetros não refletem necessariamente a satisfação do usuário. É necessário estimar a qualidade dos serviços web com base na satisfação do usuário (QoE). Esta estimativa é feita através de um sistema especialista híbrido fuzzy. É apresentado como diferentes parâmetros de QoS impactam na QoE dos serviços web. Shafiq et al. (2014) apresentam uma abordagem fuzzy para a descoberta de serviços web. Isto ajuda os consumidores de serviços a encontrarem os serviços web necessários. Porém, em um cenário real, nem todos os serviços estão sempre disponíveis, o que significa que uma correspondência exata dos serviços nem sempre é possível. A abordagem proposta utiliza fuzzy para construir e representar o processo de negócio, principalmente no descobrimento do serviço web. Isto permite relaxar os critérios de correspondência dos serviços web, fazendo com que os consumidores especifiquem os

requisitos do negócio de uma forma fuzzy, aumentando assim a possibilidade de encontrar serviços web para poderem construir seus próprios processos de negócio.

O trabalho de Fethallah et al. (2015) se concentra no problema da descoberta de serviços web. É apresentada uma abordagem híbrida, que utiliza cinco algoritmos de correspondência. O resultado dos componentes é uma lista ordenada dos serviços. Foi utilizada uma função fuzzy de agregação para cada serviço, separando o serviço atual dos melhores classificados.

Fletcher et al. (2015) apresentam um método para seleção de serviço baseado em lógica fuzzy que considera as preferências personalizadas dos usuários e seus atributos não- funcionais conflitantes durante a seleção do serviço. O método permite aos usuários representar seus requisitos não-funcionais com suas respectivas importâncias. Os atributos não-funcionais considerados para cada serviço são: confiabilidade, disponibilidade, taxa de transferência, tempo de resposta e preço.

Muitos trabalhos utilizam métodos fuzzy para ordenar serviços com base no conjunto de atributos de qualidade desses serviços. E a maioria desses trabalhos avalia todos os serviços candidatos. No entanto, no conjunto desses serviços candidatos podem existir

Documentos relacionados