• Nenhum resultado encontrado

Segundo Tsai (2005) computação orientada a serviços preocupa-se fundamentalmente com a garantia de que software orientado a serviços atenda às necessidades da organização. Portanto, seu foco também está na especificação de tolerância a falhas, verificação e validação de modelos de avaliação de interdependência entre componentes de software e hardware.

O contexto de construção de sistemas fundamentados em Arquitetura SOA envolve a descrição de serviços atômicos e compostos, bem como sua orquestração para formação de aplicações distribuídas. Segundo Horrocks et al (2004), as últimas pesquisas realizadas têm dado foco primariamente em melhorias de serviços web (web-services), porém neste trabalho estenderemos um pouco este conceito e utilizaremos um estudo de caso que apresenta externalização de serviços de negócios utilizando padrões tecnológicos distintos:

♦ implementação de serviços por meio da configuração de um enterprise service bus;

♦ implementação de uma infra-estrutura de mensageria, e;

♦ pela implementação de serviços web (web services).

Tomando como base estes argumentos, torna-se necessária à formalização da análise de confiabilidade dos serviços de negócio implementados, sendo estes, atômicos ou compostos . Neste trabalho determinamos a disponibilidade dos serviços a partir de normas padronizadas de qualidade de produtos. A disponibilidade dos produtos é medida a partir do uso da norma ISO/IEC 9126-2 (2002) que fornece um conjunto de atributos de qualidade aplicáveis a estes serviços. A norma ISO/IEC 14598 (2002) será utilizada como elemento guia para o processo de planejamento e execução da avaliação da qualidade dos serviços.

Serviços Atômicos: São serviços visíveis diretamente para um consumidor de serviços (ou agente) por meio

de interface única e descrito por um serviço único que não utilizam ou interagem com outros serviços (OASIS, 2008). São serviços de granularidade-fina, que oferecem um grau de abrangência funcional suficiente para realizar funcionalidades específicas de um processo de negócio (EMIG et al ,2007). Serviços atômicos geralmente são caracterizados por serem pequenas unidades funcionais e trocam pequenas quantidades de dados (SCHMELZER, 2008).

Serviços Compostos: São serviços visíveis para um consumidor de serviços (ou agente) por meio de uma

interface única e descrito por um serviço único que é a agregação ou composição de um ou de vários outros serviços. Esses serviços podem ser atômicos ou outros serviços compostos, ou mesmo uma combinação de ambos (OASIS, 2008). São serviços montados e orientados por um processo visando implementar de forma integral, automatizada e reusável um processo de negócio (EMIG et al, 2007).

O processo de avaliação é iniciado a partir da seleção de atributos externos de qualidade de produtos fundamentados pela norma de qualidade de produtos ISO/IEC 9126-1 (2001). Com base nos conceitos apresentados pela avaliação com base na matriz para análise de impacto de falhas de componentes CFIA (ITIL, 2003). Para construção da matriz de análise de impacto, selecionamos os componentes, ou serviços, classificados como críticos, pois representam pontos únicos de falha “Single Point of Failure – SPOF” para a aplicação (ITIL, 2003). Fundamentados nos conceitos apresentados pelo framework ITIL em seu capítulo de

Software Delivery, um ponto de falha de uma aplicação é qualquer componente que quando apresenta uma falha ou tem seu funcionamento interrompido provoca impacto no negócio ou na utilização da aplicação pelos usuários.

A elaboração da tabela de inter-relacionamento de serviços é feita com base nas propriedades de atomicidade e composição dos serviços de negócio. A partir do cálculo individual dos índices de disponibilidade dos serviços atômicos, apresentados pela norma ISO/IEC 9126-2 (2002), poderemos avaliar a confiabilidade, disponibilidade e recuperabilidade dos serviços da aplicação. As informações relativas aos tempos de funcionamento e intervalos de falha dos serviços atômicos deve ser feita com base nos “logs de execução” da aplicação.

Este método proporciona a possibilidade de uma análise cruzada entre os índices de disponibilidade dos serviços (atômicos e compostos), possibilidade de geração de informações de sobre o grau de disponibilidade dos serviços, análise do tempo médio entre falhas e do nível de recuperabilidade dos serviços (O’Brien, 2005);

Poderemos, ainda, fazer uma análise preditiva de disponibilidade de serviços de negócio ainda não implementados. A partir da composição de serviços de negócio, feita com base na orquestração ou coreografia de serviços atômicos, e, fundamentados no cálculo da probabilidade de disponibilidade definido por Soong (2004), poderemos calcular o índice de disponibilidade de serviços compostos, ou de negócio, mesmo antes de sua implementação real. Este método trás um diferencial de informação aos gestores de negócio no processo de tomada de decisão, tanto para construção de novas funcionalidades, quanto para o reuso de serviços existentes no legado.

O método de análise de alta disponibilidade de serviços críticos, proposto neste estudo, está fundamentado na norma ISO/IEC 14598-5 (2002), que apresenta uma divisão de atividades em cinco etapas, conforme descrição na figura 22, que são:

Análise de Requisitos da Avaliação

Os requisitos de avaliação foram identificados a partir da análise de alguns fatores relativos aos serviços da aplicação:

♦ Pesquisa de informações relativas à criticidade dos serviços dentro da aplicação - Segundo Papazoglou (2003) e Tsai (2005), serviços classificados como críticos são aqueles que demandam alta necessidade de administração e verificação de qualidade, pois são identificados como pontos de falha da aplicação (ITIL, 2003).

♦ Identificação da atomicidade dos serviços da aplicação - Deve ser feita com base na especificação arquitetural da aplicação (OASIS, 2008 ; EMIG et al, 2007 ; SCHMELZER, 2008);

♦ Pesquisa de regras de composição dos serviços de negócio - Deve ser feita a partir da orquestração ou coreografia de serviços especificada na definição dos processos de negócio da organização (ERL, 2008);

♦ Levantamento das informações de funcionamento e interrupção dos serviços - Identificadas a partir dos logs de execução da aplicação (ISO/IEC 9126-2, 2002);

Em nosso estudo de caso consideramos apenas informações relativas a avaliação da qualidade e disponibilidade de serviços críticos para o negócio, não estão sendo consideradas ou analisadas informações relativas ao processo de aquisição e operação dos sistemas.

Especificação da Avaliação

Nesta fase formalizamos os atributos de qualidade a serem medidos na aplicação. No caso deste estudo foram escolhidos os atributos externos de qualidade relativos a: Disponibilidade; Confiabilidade (MTBF) e; Recuperabilidade (MTTR) dos serviços.

Para avaliação da qualidade dos serviços, serão calculados os índices de disponibilidade (ISO/IEC 9126-2, 2002 ; SAF, 2008), tempo médio de ocorrência entre falhas - MTBF (ISO/IEC 9126-2, 2002) e o tempo médio de recuperação de falhas - MTTR (ISO/IEC 9126-2, 2002). Para maiores detalhes consultar Quadro 10.

Projeto da Avaliação

Para avaliação da disponibilidade dos serviços são utilizados os seguintes procedimentos:

1. Classificação dos serviços em relação a sua criticidade com base nos atributos especificados na fase de analise de atributos de avaliação;

2. Levantamento das informações de tempos de execução e interrupção de funcionamento dos serviços, com base nos logs de execução da aplicação; 3. Cálculo dos índices de disponibilidade dos serviços atômicos identificados

com base na norma ISO/IEC 9126-2 (2002) e fundamentado pelo Fórum de Disponibilidade de serviços – SAF (2008). Para maiores detalhes consultar os itens: 7.1 – Análise com base no Cálculo da Disponibilidade, 7.2 – Análise com base no Tempo Médio entre Falhas e 7.3 – Análise com base no Tempo Médio de Reparo.

4. Construção da tabela de análise de impacto – CFIA (ITIL, 2003) a partir das regras de composição dos serviços de negócio.

5. Cálculo dos índices de disponibilidade, MTBF e MTTR de cada serviços atômico.

6. Cálculo do índice de disponibilidade previsto para os serviços de negócio. Como recursos necessários para realização desta fase, serão utilizados os logs de execução da aplicação, documentação de arquitetura do sistema e das informações produzidas na fase de especificação dos requisitos de avaliação.

Execução da Avaliação

A avaliação foi feita com base nas informações de disponibilidade dos serviços especificadas na fase de requisitos de avaliação e executadas de acordo com os procedimentos definidos na fase de projeto de avaliação.

Conclusão da Avaliação

Nesta fase o avaliador deve produzir um relatório com informações de disponibilidade e intervalo médio de falhas e recuperação dos serviços críticos da aplicação.

A análise de qualidade dos serviços existentes na aplicação, bem como a viabilidade de desenvolvimento de novos serviços, construídos a partir do reuso de componentes do legado, deve ser feita diretamente pelo gestor tomando como base as informações cruzadas dos índices de qualidade contidos neste relatório.

7.1 – Análise da Qualidade com base no Cálculo da Disponibilidade

Para realização da fase de Execução da Avaliação, descrita acima, deve ser utilizada a regra de cálculo do índice de disponibilidade sugerido pela norma ISO/IEC 9126-2 (2002), onde se pode estabelecer os seguintes cenários:

Onde:

D – Índice de disponibilidade do serviço To – Tempo total de operação

1- Análise de Melhor Caso de Disponibilidade: Neste caso a base para cálculo do índice de disponibilidade de serviços de negócio (serviços compostos) é fornecida pelo maior dos tempos de reparo dos serviços atômicos;

2- Análise de Pior Caso de Disponibilidade: Neste caso a base para cálculo do índice de disponibilidade de serviços de negócio (serviços compostos) é obtida pela soma dos tempos de reparo dos serviços atômicos;

Para exemplificarmos vamos utilizar um serviço de negócio composto por três serviços atômicos, sendo executados por um período de 166 minutos.

Tomamos como premissa que, a funcionalidade requerida pelo serviço de negócio é obtida quando ocorre a execução com sucesso de todos seus serviços atômicos.

SNi To Tr D

SA1 166 5 0.9707

SA2 166 3 0.9822

SA3 166 8 0.9540

Onde:

D – Índice de disponibilidade do serviço To – Tempo total de Operação

Tr – Tempo total de reparo (tempo de falha) SNi – Serviço de negócio ou Serviço Composto SAn – Serviço atômico

Observação: Para cálculo do índice de disponibilidade deve ser utilizado o momento de início de execução do serviço de negócio, e não do momento de invocação individual dos serviços atômicos dentro do processo de negócio.

Temos então:

Melhor caso de disponibilidade: Tomando o serviço 3, que apresenta o maior tempo

de reparo, teremos o melhor caso fundamentado na hipótese dos três serviços serem executados ao mesmo tempo:

Dmc = 166 / (166 + 8); Dmc = 0.9540 ou

95.4 % de disponibilidade

Pior caso de disponibilidade: Tomando a soma dos tempos de reparo dos três

serviços, e considerando a hipótese dos três serviços apresentarem problemas em momentos distintos:

Dpc = 166 / (166 + 16); Dpc = 0.9120 ou

91.2 % de disponibilidade

Como última etapa analisaremos os resultados de disponibilidade tomando como referência os valores representados pelo intervalo entre o pior e o melhor caso de disponibilidade. Desta forma, o gestor de tecnologia poderá extrair informações importantes para uma melhor tomada de decisão na modelagem de processos críticos negócio da organização.

7.1.1 – Modelo de Probabilidade da Disponibilidade

Considerando a premissa de que a funcionalidade negocial estará completa apenas se todos os serviços atômicos forem executados, e fundamentados nos conceitos de Independência Estatística (SOONG, 2004), que define que a probabilidade de ocorrência de dois eventos independentes (um e outro), pode ser determinada pelo produto das probabilidades destes eventos. Considerando que a probabilidade de ocorrência de um evento é dada pela razão entre o número de resultados favoráveis pelo número de resultados possíveis (SOONG, 2004), temos :

PD = TD / TO TD = ( HF – HIE)

Onde:

PD – Probabilidade da disponibilidade do serviço de negócio TD – Tempo de disponibilidade do serviço de negócio (resultados favoráveis)

TO – Tempo total de operação - tempo de medição

(resultados possíveis)

HF – Horário da falha do serviço (momento de falha)

HIE – Horário de início da execução do serviço (início da execução, ou momento de reinicio após a falha)

No nosso exemplo:

Melhor caso de disponibilidade

TD = 166 – 8 tempo total de operação menos o tempo total de reparo TD = 158 tempo total de disponibilidade

PD = 158 / 166 tempo de disponibilidade (favorável) / tempo total PD = 0.951 ou

95.1% de disponibilidade

Comparando com o Melhor Caso de Disponibilidade teríamos uma diferença de apenas 0.003 pontos ou 0.3% no índice de disponibilidade.

Pior caso de disponibilidade

TD = 166 – 16 tempo total de operação menos o tempo total de reparo TD = 150 tempo total de disponibilidade

PD = 150 / 166 tempo de disponibilidade (favorável) / tempo total PD = 0.9036 ou 90.36% de disponibilidade PSA1 = 161 / 166 = 0.969 PSA2 = 163 / 166 = 0.981 PSA3 = 158 / 166 = 0.951

Considerando as definições de SOONG (2004), temos:

P(SNi) = P(SAi) * P(SAi+2) *…* P(SAi+n)

Onde:

P(SNi) – Probabilidade da disponibilidade do serviço de negócio i; P(SAi) – Probabilidade da disponibilidade do serviço atômico i;

PSNi = (PSA1) * (PSA2) * (PSA3) PSNi = 0.969 * 0.981 * 0.951 PSNi = 0.904 ou

90,4% de disponibilidade

Comparando com o cálculo do Pior Caso de Disponibilidade teríamos uma diferença de apenas 0.008 pontos ou 0.8% no índice de disponibilidade.

A diferença entre o índice de disponibilidade calculado com base na norma ISO/IEC 9126-2 (2002) e o cálculo da probabilidade da disponibilidade do serviço de negócio, em função de seus serviços atômicos, varia entre 0.3% no melhor caso de disponibilidade e 0.8% no pior caso de disponibilidade.

Considerando que se trata de um cálculo probabilístico contra um cálculo absoluto, feito com base na análise do Log de falhas dos serviços atômicos, podemos considerar satisfatória a determinação do índice de disponibilidade de um serviço de negócio em função dos índices de disponibilidade de seus serviços atômicos.

7.1.2 – Equivalência de Cálculo do Índice de Disponibilidade

Para cálculo do índice de disponibilidade de um serviço atômico pode-se utilizar qualquer uma das fórmulas apresentadas anteriormente, que são: (a) Norma ISO/IEC 9126-2 (2002), (b) Forum de Alta Disponibilidade (SAF, 2008) ou (c) Cálculo fundamentado pela teoria da probabilidade de eventos independentes (SOONG, 2004), pois os métodos de cálculo se equivalem matematicamente.

Este fato fornece uma flexibilidade adicional ao método, pois de acordo com os dados que estão disponíveis pode-se utilizar a fórmula de cálculo mais adequada.

Considerando que: NF HIE HF MTBF = − NF TR MTTR = ) (MTBF MTTR MTBF idade Disponibil + = Legenda:

MTBF – Mean Time Between Failure MTTR – Mean Time To Repair HF – Horário de Falha do Serviço HIE – Horário de Início da Execução NF – Número de Falhas

TR – Tempo de Reparo

PD – Probabilidade de Disponibilidade TD – Tempo de Disponibilidade TO – Tempo total de Operação

então: NF TR NF HIE HF NF HIE HF idade Disponibil + − − = ) ( ) ( + − − = TR HIE HF HIE HF idade Disponibil ) ( ) ( como: − = −HIE TO TR HF ) ( => TR=TO− (HFHIE) temos: − − + − − = ) ( ) ( ) ( HIE HF TO HIE HF HIE HF idade Disponibil − − + − − = ) ( ) ( ) ( HIE HF TO HIE HF HIE HF idade Disponibil TO HIE HF idade Disponibil = ( − )

de acordo com o item 7.1.1 – Modelo de Probabilidade de Disponibilidade, temos:

TO TD PD = e TD= (HFHIE) então: TO HIE HF PD= ( − ) portanto: PDDisponibilidade

7.1.3 – Relação entre o Índice de Disponibilidade e a Probabilidade de Disponibilidade

Considerando a relação de equivalência entre o Índice de Disponibilidade definido pela Norma ISO/IEC 9126-2 (2002) e a Probabilidade de Disponibilidade de um serviço, suportada pelo conceito de Probabilidade estatística de eventos independentes (SOONG, 2004), temos: TO TD PD = e TD= (HFHIE) ou TD=TOTR então: TO HIE HF PD= ( − ) considerando que: TR TR ≡ e (HFHIE)=TOTR temos: TO TR TO TR TO TO PD idade Disponibil − + = TO TR TO TR TO TO PD idade Disponibil − + = => TR TO TO TR TO TO − ∗ + TR TO TO PD idade Disponibil 2 2 2 − = para TO >> TR , temos: 1 lim 2 2 2 0 = = → TO TR TO PD idade Disponibil TR

Ou seja, para situações onde o Tempo total de Operação (TO) for significativamente maior que o Tempo total de Reparo (TR) a relação entre a Disponibilidade e a Probabilidade de Disponibilidade se aproxima de 1, que seria a representação da disponibilidade total.

Cálculo do Índice de Disponibilidade segundo a Norma ISO/IEC 9126-2 (2002):

) (TO TR TO D + = => D

(

TO+TR

)

=TO TO TR D TO D∗ )+( ∗ )= ( => (DTR)=TO−(DTO) então: D D TO TR= ( −1 ) (1)

Cálculo da Probabilidade de Disponibilidade segundo Soong (2004):

TO TR TO PD= − => PTO =TOTR => TR=TOPTO então: TR=TO(1−PD) (2) D ou PD TR (1) TR (2) TRTR ((12)) 0.99 0.0101 * TO 0.01 * TO 0.990099 0.999 0.001001 * TO 0.001 * TO 0.999000999 0.9999 0.00010001 * TO 0.0001 * TO 0.999900009999 0.99999 0.0000100001 * TO 0.00001 * TO 0.999990000099999

Quadro 12: Equivalência na Relação entre Disponibilidade (ISO/IEC 9126-2, 2002) e Probabilidade da Disponibilidade (SOONG, 2004).

Analisando o Quadro 12 observa-se que quanto menor o valor do tempo total de reparo (TR) mais próximo de 1 fica a relação entre os índices de disponibilidade, demonstrando sua equivalência semântica.

7.2 – Análise com base no Tempo Médio entre Falhas

Para cálculo do tempo médio entre falhas utilizaremos o cálculo apresentado pela norma ISO/IEC 9126-2 (2002).

Vamos utilizar como exemplo um serviço de negócio que seja composto por quatro serviços atômicos, sendo executados por um período de 240 minutos.

Neste caso vamos aceitar a situação onde o serviço de negócio não exija a execução de todos os serviços atômicos, podendo ser executada apenas parte do serviço de negócio.

Temos:

(

HF – HIE) MTBF =

NF

Onde:

MTBF – Tempo médio entre falhas

HF – Horário da falha do serviço (momento de falha)

HIE – Horário de início da execução do serviço (início da execução, ou momento de reinicio após a falha)

NF – Quantidade total de falhas

Observação: Para cálculo do MTBF tomamos como base o momento de início de execução do serviço de negócio, e não do momento de invocação isolada de cada serviço atômico dentro do fluxo de negócio.

No caso da análise de disponibilidade tomando como base o MTBF, que trata dos tempos relativos às falhas, e não do tempo de execução do serviço relativo ao seu tempo de reparo, estamos na verdade, realizando uma análise sobre os intervalos que o serviço apresenta indisponibilidade. Esta métrica nos fornece informações sobre a confiabilidade do software levando em consideração seus fatores de maturidade de funcionamento.

É uma métrica que permite a análise da qualidade na entrega dos serviços aos usuários levando em consideração sua freqüência de falhas. Serviços que apresentam pequenos intervalos de MTBF se apresentam como elementos de contenção computacional, bem como, podem adicionar fatores de impacto em outras dimensões do funcionamento dos serviços, tais como: aumento de tráfego de dados e envio de mensagens, lógica de abertura e fechamento de conexões com diversos dispositivos.

Vamos tomar como exemplo um serviço de negócio composto por quatro serviços atômicos, sendo executado por 4 horas (240 min.):

SNi ( HF – HIE) NF MTBF SA1 190 8 23.75 SA2 220 2 110 SA3 180 12 15 SA4 120 7 17.14 Onde:

MTBF – Tempo médio entre falhas

(HF – HIE) – Representa o tempo total de execução do serviço

NF – Número de falhas

SNi – Serviço de negócio (serviço composto) SAn – Serviço atômico

No caso deste exemplo, tomamos o serviço 2 como sendo o serviço de maior maturidade, pelo fato de apresentar maiores intervalos entre falhas e, o serviço 3 como sendo aquele que apresenta intervalos entre falhas mais curtos, além de ter sido o serviço com o maior número de interrupções no seu funcionamento, portanto, com menor maturidade de execução, interferindo diretamente na confiabilidade do serviço de negócio.

Para a diminuição do intervalo entre falhas de um serviço de negócio, devemos avaliar de forma individualizada fatores que interferem na disponibilidade de cada serviço atômico. A diminuição do MTBF de serviços atômicos, com altos níveis de utilização, pode ter grande impacto na disponibilidade do serviço de negócio como um todo.

7.3 – Análise com base no Tempo Médio de Reparo

O cálculo do tempo médio de recuperação de falhas será feito com base no cálculo apresentado pela norma ISO/IEC 9126-2 (2002).

Vamos utilizar como exemplo um serviço de negócio que seja composto por quatro serviços atômicos, sendo executados por um período de 240 minutos.

Neste caso vamos aceitar a situação onde a funcionalidade do negócio seja realizada apenas com a execução de parte dos serviços atômicos.

Temos:

( TR) MTTR =

NF

Onde:

MTTR – Tempo médio de reparo

TR – Tempo utilizado para reparo do serviço (momento da falha) NF – Número de Falhas

Observação: Para cálculo do MTTR tomamos como base o momento de início de execução do serviço de negócio, e não do momento de invocação isolada de cada serviço atômico dentro do fluxo de negócio.

No caso da análise de disponibilidade tomando como base o MTTR, que trata dos tempos relativos de recuperação de falhas e não do tempo de execução do serviço, fazemos uma análise sobre os períodos de indisponibilidade, desta forma, a melhora da disponibilidade de um serviço de negócio é obtida a partir da diminuição do MTTR de seus serviços atômicos. Esta métrica nos fornece informações sobre a confiabilidade do software levando em

Documentos relacionados