Tendências em Protocolos de Aplicação para Ambientes Colaborativos Distribuídos


IA368 - Tecnologias da Infra-estrutura de Informação em Ambientes Colaborativos de Ensino
Profs. Ivan Luiz Marques Ricarte e Léo Pini Magalhães

Armando Luiz Nicolini Delgado

Julho 1998

Resumo:

 

Neste final de século a tendência para aplicações computacionais tem se fixado no desenvolvimento de sistemas distribuídos, como forma de otimizar a utilização de recursos e aumentar a confiabilidade das aplicações ([Lewis95]). Atualmente a abordagem mais utilizada para tais sistemas distribuídos tem sido a de cliente/servidor. No entanto, o objetivo para a próxima década é a computação colaborativa baseada em redes de comunicação peer-to-peer ([Lewis95]). Para suportar apropriadamente estas aplicações, novas tecnologias são necessárias, especialmente no que diz respeito a protocolos de comunicação e de aplicação. O objetivo deste trabalho será abordar e analisar as diversas tendências das tecnologias em protocolos para aplicações distribuídas, em especial aplicações e ferramentas voltadas a atividades colaborativas que envolvam hipermedia.

   
1. Introdução

Na década de 60 e 70 o cenário dos ambientes computacionais era dominado pelos mainframes, nos quais se concentravam todas as tarefas e aplicações dos usuários de uma corporação ou empresa. Estas aplicações eram, via de regra, aplicações de banco de dados, acessadas por usuários através de terminais ligados por meio de canais de comunicação ao mainframe ou servidor central.

No entanto, durante este tempo, começaram a surgir os computadores pessoais e estações de trabalho, de modo que a década de 80 assistiu à migração sistemática para PC's de muitas funções antes executadas pelos mainframes. Consequentemente, surgiram aplicações centradas em PC's, mas que necessitavam interagir e obter dados de servidores. Este fato,juntamente com a evolução paralela que ocorria com as tecnologias de transmissão de dados e redes de computadores, desencadeou o estudo e desenvolvimento de sistemas distribuídos, culminando com o aparecimento do modelo cliente/servidor.


  
Figura 1: Evolução de Aplicações
\begin{figure}
\begin{center}
\centerline{\psfig{file=Figs/fig1.ps}}
\end{center}\end{figure}

Na década atual, este modelo tem sofrido mudanças levando ao estabelecimento de uma cena caracterizada por ([Lewis95]):

Assim, a criação de arquiteturas de computação distribuída evolui através dos seguintes passos: centrado em servidor, centrado no cliente e computação colaborativa distribuída peer-to-peer (figuras 1 e 2).


  
Figura 2: Evolução de Sistemas Distribuídos
\begin{figure}
\begin{center}
\centerline{\psfig{file=Figs/fig2.ps}}
\end{center}\end{figure}

Uma série de aspectos caracterizam sistemas distribuídos, e quando a computação colaborativa se junta a estes sistemas, outros fatores surgem alterando de forma significativa os aspectos já existentes. Este artigo irá mostrar os principais aspectos envolvidos em ambientes colaborativos distribuídos, para então dar especial atenção aos aspectos relacionados a protocolos de aplicação que sejam desenvolvidos para este tipo de ambiente. Ao final serão apresentados alguns protocolos que procuram de alguma forma encampar alguns dos aspectos apresentados.

   
2. Ambientes Colaborativos Distribuídos

Ambientes colaborativos distribuídos permitem que um grupo de usuários ou aplicações, disperso geograficamente, possa usar computadores e diversas mídias (texto, audio, vídeo e imagens) para resolver problemas conjuntamente ([Yavat94]). Exemplos de tal tipo de ambiente são ambientes colaborativos de engenharia de software, ambientes de autoria colaborativa e ambientes de ensino a distância.

Em ambientes colaborativos de autoria ou de engenharia de software, por exemplo, um grupo de projetistas localizados em vários pontos colaboram em um documento ou programa usando ferramentas interativas para editar e testar partes do material em desenvolvimento. A interação pode envolver um editor em grupo (baseado em janelas compartilhadas), uma imagem (que mostra o projeto final resultante) e um canal de voz/vídeo que permite aos projetistas visualizar, discutir as sugestões uns dos outros. Além disso, a interação não envolve necessariamente usuários humanos, mas também programas cooperativos que trabalham juntos na automatização de uma tarefa em particular.

O desenvolvimento de tais ambientes envolve aspectos de diversas áreas, incluindo interface com usuário, infraestrutura de comunicação, paradigmas de colaboração, ferramentas para trabalho em grupo e sistemas de objetos compartilhados ([Yavat94]). Podemos sumarizar estes pontos apresentando as seguintes características de ambientes colaborativos distribuídos:

   
Interoperabilidade

Um ambiente colaborativo via de regra utiliza diversos programas de diferentes fabricantes e procedências de forma combinada para atingir algum objetivo ou executar alguma tarefa. Isto exige que estes programas possam trocar informações e se comunicar entre si de forma uniforme. Para isto devem adotar padrões de arquitetura de informação e distribuição que torne a sua utilização independentes de sua procedência e independentes da plataforma em que serão utilizados. Isto caracteriza o que se denomina interoperabilidade e é geralmente atingida pela adoção de protocolos abertos ou pela utilização de um middleware padrão (e.g. OMG/CORBA).

   
Heterogeneidade de dados

Ambientes colaborativos envolvem a manipulação não só de documentos mas também de informações armazenadas em bases de dados que, geralmente, são heterogêneas. O ambiente deve ter suporte para a unificação destas bases de dados e, principalmente, dos modelos de informação ([Singh98]).

   
Mobilidade

Com a disseminação de computadores portáteis, a necessidade de desenvolver sistemas distribuídos que levem em conta a mobilidade do computador e o fato de que um determinado componente do sistema distribuído esteja sujeito a flutuações potencialmente rápidas e significativas no nível de serviço fornecido pela infraestrutura de comunicação ([Davie96] e [Klein96]). Em ambientes colaborativos, a mobilidade ocorre não apenas no contexto da plataforma, mas também do usuário. Assim, fatores como mobilidade do ambiente de trabalho de um usuário e heterogeneidade de recursos para colaboração e visualização (e.g., recursos de janela e gráficos) são também importantes na caracterização de tais sistemas.

Assim, a mobilidade do ambiente computacional ou do usuário envolve a migração de processos e objetos, com os objetivos de migrar o ambiente de trabalho de um usuário, mudar o processamento para uma máquina que mais se adeque a uma performance desejada, ou mover, através dos componentes do ambiente distribuído, processos de gerência do ambiente de distribuição (aplicação e rede).

A essência deste ambiente nômade é automaticamente ajustar os aspectos de computação do usuário, comunicação e armazenamento de modo transparente e integrado com respeito a : localização do usuário, dispositivos de comunicação usado, banda de comunicação disponível, plataforma usada e se o usuário está ou não em movimento.

   
Transações

Tópico exaustivamente pesquisado na área de banco de dados, este aspecto precisa ser refinado no que diz respeito à interoperabilidade e mobilidade ([Dunha95]). Como os dados distribuídos são potencialmente heterogêneos, o controle e gerência de transações distribuídas deve passar por uma solução que envolva um middleware padrão ou um protocolo de aplicação que seja o ponto comum para as implementações de transações dos diferentes banco de dados.

Também conceitos menos convencionais e mais relaxados de transações devem ser adotados para permitir atualizações não consistentes aos dados acessados de modo colaborativo.

   
Reserva de Recursos da Rede

Uma vez que recursos multimedia estejam envolvidos no ambiente colaborativo, é necessário um controle da qualidade de serviço (QoS) oferecida pela infraestrutura de comunicação da rede de computadores. Formas de fazer tal gerenciamento podem ser oferecidas tanto através de protocolos de aplicação ou de gerência ([Vogel95] e ([Liebe95]).

   
Múltiplos Participantes

Ambientes colaborativos eventualmente envolvem programas cooperantes. Atualmente a maioria das aplicações em uso envolvem, em essência, apenas interações com dois participantes (two-party applications). Projetos com múltiplos participantes são muito mais difíceis de desenvolver ([Clark95]). A complexidade de sistemas com múltiplos participantes surge de diversas fontes: a natureza heterogênea dos diversos hosts, que podem ter características funcionais e de performance muito diferentes; diferenças de performance em diferentes partes da rede; e falhas transientes ou persistentes de algum dos participantes no sistema.

   
3. Protocolos de Aplicação

Os aspectos abordados anteriormente impõem uma série de necessidades e restrições sobre os protocolos de comunicação e de aplicação que são utilizados na implantação de ambientes colaborativos. Muitas destas necessidades ainda não são abordadas pelas implementações atuais de protocolos e indicam o caminho a ser seguido em futuras especificações.

   
Suporte a transações distribuídas

Embora existam soluções bem conhecidas para transações distribuídas, são necessários protocolos de aplicação para que a coordenação destas transações entre os diversos componentes do sistema distribuído possa ser feita independentemente do fabricante dos sistemas de banco de dados envolvidos. Protocolos para transações distribuídas contribuem assim para a interoperabilidade entre diferentes banco de dados. Um exemplo deste tipo de protocolo é o TIP - Transaction Internet protocol ([Lyon98]).

Este protocolo é usado pela aplicação com o fim específico de permitir que 2 aplicações possam sincronizar as operações de commit ou abort utilizando protocolo de commit em 2 fases. Na verdade, a aplicação utiliza um Gerente de transações e este é que usa o protocolo TIP. As aplicações distribuídas, além do protocolo de comunicação e aplicação inerentes a elas, usam serviços do gerente de transações através de API's associadas (figura 3).


  
Figura 3: Protocolo TIP
\begin{figure}
\begin{center}
\centerline{\psfig{file=Figs/fig3.ps}}
\end{center}\end{figure}

   
Transferência de informação

Cada vez mais se faz necessária a existência de protocolos de aplicação que permitam uma troca uniforme de dados, especialmente quando estes dados envolvem diversos tipos de mídia, como é o caso de ambientes colaborativos. Um exemplo de tal protocolo é o HTTP e suas contínuas evoluções ([Niels98b,Niels98a,Spero98,Sprei98]). Aprincipal característica destas evoluções é a atenção dada ao melhoramento de performance do protocolo HTTP, de forma a manipular múltiplas requisições de documentos em uma única conexão TCP.

   
Controle de recursos (QoS)

Para controlar e negociar QoS no caso de recursos multimídia, diversas abordagens têm sido desenvolvidas para permitir que aplicações distribuídas possam estabelecer os recursos da rede que desejam para si. Exemplos de tais iniciativas são o QEX, usado no sistema ANSAware ([Davie96]) o Resource Reservation Setup Protocol - RSVP ([Zhang98]), a ser usado na Internet. O primeiro monitora flutuações de QoS no canal de comunicação e ajusta o comportamento da aplicação de acordo. O segundo é uma iniciativa da Internet Engineering Task Force ([IETF]).

   
Tratamento de mobilidade

De um modo geral, aplicações móveis enfrentam desconexões temporárias, um alto grau de variação da banda de comunicação, com períodos longos de baixa banda ([Kottm96]). Desenvolver protocolos de transporte e arquiteturas de distribuição que lidem com esta situação é uma tendência marcante e algumas propostas podem ser encontradas em ([Porta96], [Klein96], [Kottm96], [Durst97] e [Imiel96]).

   
4. Conclusões

Este artigo mostrou as principais características de aplicações colaborativas distribuídas, que consistem essencialmente em ter uma forte necessidade por mecanismos de interoperabilidade, bem como por formas convenientes de tratar mobilidade de ambientes de usuários e hosts, passando por arquiteturas adequadas para lidar com múltiplos participantes em uma tarefa colaborativa.

Para suportar este tipo de aplicação, foi mostrado que na área de protocolos as principais tendências estão em manter sempre a interoperabilidade, com protocolos abertos para, por exemplo, gerência de transações distribuídas, controle de QoS e tratamento de mobilidade.

A principal conclusão a que se chega é que a tendência geral para protocolos de aplicação é garantir mecanismos uniformes e abertos para gerência adequada de QoS e transferência de dados com performance alta, de forma a suportar a colaboração, principalmente com a utilização de recursos multimídia, existindo diversas iniciativas nestas direções para a produção de protocolos adequados.

Agradecimentos

Agradecemos a Luis Fernando Faina pela disponibilização dos elementos gráficos utilizados na figura 1.

Referências

Adler95
Adler, R. M.:
Emerging Standards for Component Software.
Computer IEEE, 28(3):68-77, March 1995.

Clark96
Clark, D.; Pasquale, J.; et al.:
Strategic Directions in Networks an Telecommunications.
ACM Computing Surveys, 28(4):679-690, December 1996.

Davie96
Davies, N.; Friday, A.; Blair, G. S.; and Cheverst, K.:
Dsitributed systems support for adaptative mobile applications.
ACM Mobile Networks and Applications, 1(4):399-408, January 1996.

Dunha97
Dunham, M. H.; Helal, A.; and Balakrishnan, S.:
A mobile transaction model that captures both the data and movement behavior.
ACM Mobile Networks and Applications, 2(2):149-162, October 1997.

Durst97
Durst, R. C.; Miller, G. J.; and TYravis, E. J.:
TCP extensions for space communications.
ACM Wireless Networks, 3(5):389-403, October 1997.

IETF98
IETF:
Internet Engineering Task Force.
Technical report, IETF Home Page (http://www.ietf.org/), April 1998.

Imiel96
Imielinski, T.:
Mobile computing: DataMan project perspective.
ACM Mobile Networks and Applications, 1(4):359-369, January 1996.

Klein96
Kleinrock, L.:
Nomadicity: Anytime, anywhere in a disconnected world.
ACM Mobile Networks and Applications, 1(4):351-357, January 1996.

Kottm96
Kottmann, D. A.; Wittmann, R.; and Posur, M.:
Delegating remote operation execution in a mobile computing environment.
ACM Mobile Networks and Applications, 1(4):387-397, January 1996.

Lewis95
Lewis, T. G.:
Where Is Client/Server Software headed?
Computer IEEE, 28(4):49-55, April 1995.

Liebe95
Liebeherr, J.:
Multimedia networks: Issues and challenges.
Computer IEEE, 28(4):68-69, April 1995.

Lyon98
Lyon, J. and Evans, K.:
Transaction Internet Protocol.
Technical report, IETF/TIP Working Group (http://www.ietf.org/html.charters/tip-charter.html), April 1998.

Niels98a
Nielsen, H. F. and Gettys, J.:
HTTP-NG - The Next Generation.
Technical report, W3 Consortium(http://www.w3.org/Protocols/HTTP-NG/), February 1998.

Niels98b
Nielsen, H. F.; Leach, P.; and Lawrence, S.:
Mandatory Extensons in HTTP.
Technical report, IETF/HTTP-WG Internet Draft (http://www.ietf.org/html.charters/tip-charter.html), March 1998.

Porta96
Porta, T. F. L.; Sabnani, K. K.; and Gitlin, R. D.:
Challenges for nomadic computing: Mobility management and wireless communications.
ACM Mobile Networks and Applications, 1(1):3-16, August 1996.

Singh98
Singh, N.:
Unifying Heterogeneous Information Models.
Communications of the ACM, 41(5):37-44, May 1998.

Spero98
Spero, S.:
HTTP-NG Architectural Overview.
Technical report, W3 Consortium(http://www.w3.org/Protocols/HTTP-NG/http-ng-ar ch.html), February 1998.

Sprei98
Spreitzer, M. and Nielsen, H. F.:
Short- and Long-Term Goals for the HTTP-NG Project.
Technical report, W3 Consortium(http://www.w3.org/TR/1998/WD-HTTP-NG-goals), March 1998.

Vogel95
Vogel, A.; Kerhervé, B.; von Bochmann, G.; and Gecsei, J.:
Distributed Multimedia and QoS: A Survey.
IEEE Multimedia, 2(2):10-19, Summer 1995.

Yavat94
Yavatkar, R. and Lakshman, K.:
Communication support for distributed collaborative applications.
Multimedia Systems, 2:74-88, 1994.

Zhang98
Zhang, L. and Braden, B.:
Resource Reservation Setup Protocol.
Technical report, IETF/RSVP Working Group (http://www.ietf.org/html.charters/rsvp-charter.html), February 1998.



Footnotes

...1
...
computação centrada em documento é aquela em que os documentos e o código necessário para processá-los estão espalhados através de vários sistemas dispostos em uma rede de computadores ([Adler95]).


Armando Luiz Nicolini Delgado
1998-07-07