• Nenhum resultado encontrado

A partir do surgimento e da consolidac¸˜ao de tecnologias que viabili- zam o desenvolvimento de sistemas distribu´ıdos dinˆamicos, como as descritas na Sec¸˜ao 2.4, aumentaram os estudos nesta ´area de pesquisa. Como n˜ao exis- te uma definic¸˜ao universalmente aceita para sistemas distribu´ıdos dinˆamicos, cada trabalho define e adota um modelo particular que muitas vezes n˜ao con- templa todas as caracter´ısticas de um sistema distribu´ıdo dinˆamico. Na ver- dade, n˜ao existe um consenso sobre um modelo formal que contemple todos os aspectos de um sistema distribu´ıdo dinˆamico. Alguns trabalhos visam de- finir tais modelos, como os apresentados na Sec¸˜ao 2.3, por´em, estes modelos ainda n˜ao est˜ao sendo completamente adotadas nos trabalhos nesta ´area.

Uma estrat´egia muito utilizada nos trabalhos sobre sistemas distribu´ı- dos dinˆamicos (LYNCH; SHVARTSMAN, 2002; MARTIN; ALVISI, 2004;

RODRIGUES; LISKOV, 2004) ´e a de dividir o ciclo de vida do sistema em per´ıodos (ou ´epocas), dentro dos quais o conjunto de participantes n˜ao sofre alterac¸˜oes e algumas premissas s˜ao assumidas para o correto funcionamento do sistema, como por exemplo, o n´umero m´aximo de participantes que po- dem falhar ou sair do sistema. Para trocar de per´ıodo, o sistema sofre uma reconfigurac¸˜ao, onde o conjunto de participantes ´e atualizado para compu- tar as entradas e sa´ıdas de n´os no sistema. Al´em disso, alguns parˆametros tamb´em s˜ao reconfigurados. Estes parˆametros podem variar de aplicac¸˜ao para aplicac¸˜ao, mas alguns deles s˜ao comuns para a maioria das aplicac¸˜oes. Este ´e o caso do n´umero m´aximo de processos que podem falhar ou deixar o sis- tema (o parˆametro f ). No novo per´ıodo, o limite f pode ser reconfigurado em um valor diferente daquele assumido no per´ıodo anterior. Esta estrat´egia emprega o modelo de chegadas infinitas M2f inito de participantes (Tabela 1), onde a concorrˆencia ´e desconhecida mas limitada.

Outros trabalhos consideram um sistema formado por uma rede desco- nhecida (CAVIN et al., 2004, 2005; GREVE; TIXEUIL, 2007), onde inicial- mente os processos n˜ao possuem conhecimento algum sobre a composic¸˜ao do sistema. No entanto, antes de realizar qualquer computac¸˜ao cada processo obt´em uma vis˜ao parcial sobre a composic¸˜ao do sistema, que representa o conjunto de entidade com quem tal processo pode colaborar. Estas vis˜oes s˜ao obtidas no in´ıcio de cada execuc¸˜ao, definindo o modelo de chegada finita M1(Tabela 1), pois novas chegadas apenas ser˜ao consideradas nas execuc¸˜oes

seguintes quando as vis˜oes parciais ser˜ao redefinidas.

Este cap´ıtulo apresentou alguns conceitos relacionados com os siste- mas distribu´ıdos dinˆamicos. Estes conceitos s˜ao fundamentais para entender como estes sistemas funcionam e observar as diferenc¸as existentes entre es- tes ambientes e os cl´assicos sistemas distribu´ıdos est´aticos. Para facilitar a compreens˜ao, foram apresentados alguns exemplos de sistemas distribu´ıdos dinˆamicos, os quais tamb´em s˜ao ´uteis para entender quais s˜ao as tecnologias que est˜ao relacionadas com estes sistemas.

3 SEGURANC¸ A DE FUNCIONAMENTO EM SISTEMAS DISTRIBU´IDOS DIN ˆAMICOS

Este cap´ıtulo apresenta os principais conceitos sobre seguranc¸a de fun- cionamento em sistemas distribu´ıdos dinˆamicos (SDD). As principais vulne- rabilidades a que est˜ao sujeitas as aplicac¸˜oes distribu´ıdas nestes ambientes tamb´em s˜ao descritas. Al´em disso, os problemas fundamentais, que formam a base para o desenvolvimento de aplicac¸˜oes distribu´ıdas com atributos de seguranc¸a de funcionamento, s˜ao tamb´em objeto deste cap´ıtulo. Alguns tra- balhos que prop˜oem soluc¸˜oes para estes problemas em sistemas distribu´ıdos dinˆamicos s˜ao apresentados, evidenciando-se suas principais caracter´ısticas.

3.1 INTRODUC¸ ˜AO

Para que um sistema seja seguro e confi´avel ´e necess´ario que o mesmo apresente propriedades de seguranc¸a de funcionamento (dependability) (AVI- ZIENIS et al., 2004). Um sistema com seguranc¸a de funcionamento possui um comportamento que evolui segundo suas especificac¸˜oes, mesmo diante da ocorrˆencia de falhas, ataques e intrus˜oes no sistema. A importˆancia de um sistema ser seguro e confi´avel reside no fato de que, por exemplo, um sistema desprotegido pode ser completamente comprometido por um ataque bem sucedido resultando ent˜ao numa intrus˜ao neste sistema. Neste caso, o invasor poderia obter o completo controle do sistema.

V´arios problemas comuns s˜ao encontrados no desenvolvimento de aplicac¸˜oes distribu´ıdas que apresentam requisitos de seguranc¸a de funciona- mento. Estes problemas foram definidos como blocos b´asicos de construc¸˜ao (building blocks), justamente por se tratarem de pec¸as fundamentais e comuns no desenvolvimento de aplicac¸˜oes distribu´ıdas seguras e confi´aveis. Assim, a construc¸˜ao destas aplicac¸˜oes envolve a utilizac¸˜ao de protocolos desenvolvi- dos para solucionar estes problemas.

A complexidade da soluc¸˜ao destes problemas ´e variada e depende de uma s´erie de fatores, geralmente definidos no modelo de sistema ao qual cada protocolo ´e enderec¸ado. No entanto, esta complexidade aumenta na medida em que se consida um sistema distribu´ıdo dinˆamico, que adiciona uma s´erie de incertezas que devem ser suportadas por estes protocolos b´asicos. Em vista disso, a quantidade de soluc¸˜oes para estes problemas em ambientes est´aticos ´e muito superior `as encontradas para ambientes dinˆamicos. No entanto, ´e im- prescind´ıvel a utilizac¸˜ao de protocolos que tratem destes problemas em am- bientes dinˆamicos, para que aplicac¸˜oes atendam aos requisitos de seguranc¸a

de funcionamento tamb´em nestes ambientes.

Este cap´ıtulo primeiramente descreve algumas vulnerabilidades ine- rentes aos sistemas distribu´ıdos dinˆamicos, para ent˜ao discutir as proprie- dades que devem ser garantidas para um sistema (ou protocolo) apresentar seguranc¸a de funcionamento. Ap´os isso, apresenta alguns conceitos sobre to- lerˆancia a faltas e intrus˜oes, cujas t´ecnicas baseadas em replicac¸˜ao formam a sustentac¸˜ao das propriedades de seguranc¸a de funcionamento. Al´em disso, este cap´ıtulo discute os principais problemas fundamentais encontrados no desenvolvimento de aplicac¸˜oes distribu´ıdas. Estes problemas s˜ao abordados considerando as especificac¸˜oes e conceitos pr´oprios e, tamb´em, o contexto de ambiente dinˆamico considerado. As principais dificuldades encontradas na soluc¸˜ao de cada problema nestes ambientes s˜ao apresentadas, onde s˜ao discutidas as principais soluc¸˜oes propostas para os mesmos.