<< Chapter < Page Chapter >> Page >

Confiabilidade

Quando afirmamos que um sistema é confiável, estamosafirmando que esse sistema é capaz de manter algum nível de desempenhoquando funcionando sob circustâncias determinadas. A confiabilidadeé normalmente definida sob períodos de tempo. Ou seja, dizer apenasque o SASF deve ser confiável não é suficiente. Temos, por exemplo,que dizer que o SASF é capaz de transmitir vídeos para 6 mil usuáriossimultâneos sob condições normais durante 99% do ano e para mil usuáriossimultâneos durante o 1% do ano reservado para o período de manutençãodos servidores. Vale observar que, para uma loja online , faz mais sentido que a medida deconfiabilidade seja a de servir aos seus usuários com o tempo deespera das operações de compra e busca de 50 milissegundos duranteperíodos normais do ano, mas, durante as semanas próximas ao Natal, tero tempo de espera das mesmas operações em torno dos 150 milissegundos,uma vez que o número de usuários simultâneos nessa época do anoaumenta consideravelmente.

A confiabilidade pode ainda ser dividida nas seguintescaracterísticas:

  • maturidade , ou capacidade de se prevenirde falhas resultantes de faltas de software. Isso é comum emsistemas distribuídos, onde um componente não confia completamenteno resultado provido por outro. Isso pode ser verificado emsistemas com sensores de software, onde um módulo pode ser responsávelpor julgar os valores gerados pelos sensores. Caso os valoressejam julgados inválidos, o módulo pode simplesmente desligaro sensor defeituoso. A medição do grau de maturidade de umsistema é bem difícil, mas podemos ter uma noção ao analisarmosdecisões que foram feitas com este objetivo.

    No caso do SASF, o módulo de transmissão de vídeopode verificar quantas conexões estão abertaspara um mesmo destinatário. Uma grande quantidade deconexões para um mesmo destinatário pode significarum ataque ou mesmo um bug no reprodutor de vídeo no lado do cliente que,eventualmente, pode consumir todos os recursos disponíveispara streaming . Assim, ao detectar esseproblema, o SASF pode recusar abrir novas conexões paraesse cliente, prevenindo-se de um problema maior, comouma completa parada por DoS O Denial of Service ou DoS ocorre quando o sistemanão pode atender a novas requisições porque todosos seus recursos estão sendo consumidos, possivelmentedevido a um ataque de um ou vários agentes maliciosos.

  • tolerância a faltas , ou capacidade de manter algumaqualidade de serviço em caso de faltas de software ou comportamentoimprevisto de usuários, software ou hardware. Em outras palavras,a medida de funcionamento do software, mesmo que de formarestrita, em caso de a parada de servidores, partições derede, falhas de discos rígidos, inserção ou leitura de dadoscorrompidos, etc. Considerando a grande quantidade de eventosque o software deve tolerar, também são muitas as formasde medir o grau de satisfação a este atributo de qualidade.As formas mais comuns são: medir se o serviço continuafuncionando em caso de falha de n servidores, medir qual a variação no tempo de resposta para asoperações mais comuns ou quantos usuários simultâneos o sistemaé capaz de servir em caso de falhas de servidores ou aindaverificar como o sistema se comporta se dados inválidossão inseridos no sistema.

    A forma mais comum de melhorar o grau de tolerância afaltas em um serviço web é fazer com que não dependade um único recurso. Seja esse recurso hardware,como um único processador, roteador ou disco rígido,seja esse recurso software, como depender de um únicobanco de dados, um único serviço de cadastro ouum único serviço de inventário. Assim, o SASF possui seusmódulos replicados em diferentes servidores. Desta maneira,ele evita a dependência de um único recurso, ouo chamado ponto único de falhas e pode continuar a funcionar mesmo que um desses módulospare por completo. Note que para a replicação funcionar,devem ser adicionados à arquitetura módulos responsáveispela verificação de estado dos servidores e, assimque forem detectados problemas em algum servidor, o tráfegopossa ser redirecionado para réplicas sadias. Paraisso ser possível, há ainda outras complicações, comoa manutenção da consistência de estado entre o servidororiginal e sua réplica.Falaremos mais sobre a eliminação do ponto únicode falhas quanto estivermos tratando das diversas técnicaspara a obtenção de atributos de qualidade.

  • recuperabilidade , também chamada de resiliência,é a capacidade de o sistema voltar ao nível de desempenhoanterior a falhas ou comportamento imprevisto de usuários, softwareou hardware e recuperar os dados afetados, caso existam.É comum medirmos o grau de recuperabilidade ao medirmosquanto tempo o sistema leva para voltar aos níveis normaisde desempenho. Quanto menor esse tempo, melhor a qualidadedo sistema neste sentido.

    No SASF, podemos medir o tempo de substituiçãode um servidor de streaming pelo tempo da detecção da falha, somado ao tempode inicialização do servidor e somado ao tempo de redirecionamentodas requisições de transmissão. Uma forma de ter o tempototal de recuperação minimizado seria manter o servidorauxiliar ligado, apenas esperando a detecção dafalha do servidor principal. No entanto, essa decisãosignificaria mais custos, uma vez que seriam doisservidores ligados ao mesmo tempo, gastando mais energia,diminuindo a vida útil do hardware e possivelmenteconsumindo licenças de software.

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Arquitetura de software. OpenStax CNX. Jan 05, 2010 Download for free at http://cnx.org/content/col10722/1.9
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Arquitetura de software' conversation and receive update notifications?

Ask