Projeto
e
Implementação
de
um
Suporte
para
Aplicações
Cooperativas
do
Tipo
Editor Distribuído
`Dissertação
submetida
à
Universidade
Federal
de Santa
Catalina
para
obtenção
do
grau
de
Mestre
em
Engenharia
Elétrica
Udo
Fritzke
Júnior
Projeto e
Implementação
de
um
Suporte
para
Aplicações Cooperativasdo
Tipo
Editor DistribuídoUdo
FritzkeJúnior
Esta dissertação foi julgada para obtenção
do
títulode
Mestre
em
Engenharia
Eespecialidade
Engenharia
Elétrica,área
de
concentração Sistemasde
Controle,Automação
e Informática Industrial, 'e aprovada
em
sua forma final peloCurso
de Pós-Graduação.Banca
Examinadora:
cv;
_Prof. Jean- arie Farines, gr. Ing.
Orientador _
'
Prof
EnioValmor
Kassick, Dr.Coordenador
do Curso de Pós-Graduação
em
Engenharia Elétricaz‹
A/
Iv/7
.,/
- '- 3. "7
,{4z,/////~7
'f. Joni
da
SivaF
ga, Dr.rof. Carlos
Mazier
, Dr.A
verdadeira existênciahumana
consistena
vivificaçãomútua
entre os semelhantes.AGRADECIMENTOS
Ao
Prof. Dr. Ing. Jean-Marie Farines pelo trabalho de orientação e apoioem
todo
odesenvolvimento deste trabalho.
r
Aos membros
da
banca examinadora pela aceitação de participação e pelas críticas e comentários.Ao
engenheiro José Miguel Eyzell, por nossa amizade e pelas valiosas discussõesque
contribuiram muito para o trabalho. ,
À
minha
prima e acima de tudo sempre amiga, AntonietaE T
Kraus, por todoo
carinho eincentivo recebidos. '
Aos meus
amigos
e companheiros nesta jornada, engenheiros JoãoMarques
Salomão, SílviaGalvão
de Souza, GilmarLopes
Ribeiro e Fernando Passold.Também
a todos os demais colegasde mestrado
que
não estão incluídos nesta lista apenas por motivo de espaço.Ao
estudante de Engenharia Elétrica Sr. FabianoBachmarm
pela colaboração nos testes daimplementação
do
editor distribuído. -Aos meus
amigos
Sidney deM.
Heusi,Edson
Knippenberg,Fernando
Ribeiro, Sérgio deM.
Heusi,
que
mesmo
distantes, sempre se mantiveram por perto. -Aos
colegasdo
Laboratório de Controle e Microinformática(LCMI)
da Universidade Federal deSanta Catarina
(UFSC)
que
ofereceram todo o suporte para a realização deste trabalho.À
UFSC
e àCAPES
pelo suporte material e financeiro.'
Mais
uma
vez quero agradecer aosmeus
pais pelo eternoexemplo
de vida e de luta, aosmeus
irmãos pelo apoio e incentivo e à Margareth, pelo
amor
e carinho compartilhadosem
todos osmomentos.
SUMÁRIO
Listade
Figuras ... _. Lista de Tabelas ... .. Listade
Quadros
... .. IX xi xiiResumo
... .. xiii Abstract ... .. xiv Capítulo 1 -Introdução ... ._ 1.1OProjeto
... .. 1.2 Apresentaçãodo
Trabalho ... .. Capitulo 2 - Trabalho Cooperativo ... .. 2.1 Introdução ... ... .. 2.2 Classificação dos Sistemas de Trabalho Cooperativo ... .. 2.2.1Os
AspectosTemporal
e Espacial dos Sistemas de Trabalho Cooperativo ... .. 2.2.2 Classificação Funcional dos Sistemas de Trabalho Cooperativo ... ._ 2.3 Características Funcionais dos Sistemas Cooperativos ... .. 2.4 Suporte para Aplicações de Trabalho Cooperativo ... .. 2.4.1 Requisitos para o Suporte a Aplicações Cooperativas ... ._ 2.4.2Algumas
Propostas de Suporte Existentes ... .. . 1 .2 .3 .4 1-^\OU\U\J>-B 12 16 2.4.3 Comentários a Respeito dos Suportes Apresentados ... ..24
2.5 Conclusões ... ._
25
Capítulo 3 - Editor Distribuído ... ..26
3. 1 Introdução ... ..
26
3.2 Características de
um
Editor Distribuído ... ... ..27
3.3 Controle de Concorrência
em
Editores Distribuídos ... ..28
3.3.1
Formas
de Controle de Concorrênciaem
Editores Distribuídos ... _.30
3.4 Características
do
Editor DistribuídoImplementado
... _. 333.5 Conclusões.. ... ._ 35
Capítulo 4 -
Uma
Proposta de Suporte para Editores Distribuídos ... _.36
4.1 Introdução ... ._
36
4.2Uma
Proposta de Suporte para Edição Distribuída ... _.37
4.2.1 Serviço de Gerenciamento de
Grupo
... _.37
4.2.2 Serviço de
Comunicação
deGrupo
... ._39
4.2.3 Serviço de
Voto
... ._40
4.2.4 Serviço de Transferência' de Arquivos Multi-destino ... .. 41
4.3
O
Sistema ISIS ... ._42
4.3.1 Características Funcionais
do
Sistema ISIS ... ._42
4.4 Utilização
do
Sistema ISISno
Suporte Proposto ... __46
4.4.1 Serviço de Gerenciamento de
Grupo
... ._46
4.4.2 Serviço de
Comunicação
deGrupo
... _.50
4.4.3 Serviço de
Voto
... __50
4.4.4 Serviço de Transferência de Arquivo Multi-destino ... .. 51
4.5
Comparações
com
Trabalhos Relacionados ... _.52
4.5.1 Plataforma de
Comunicação
deGrupo
de Kirsche ... ..52
'
4.5.2 Objetos Canais para Sistemas de Suporte de
Grupos
... _. 534.5.3 Primitiva
O_Send
... ._ 534.6 Conclusões...' ... ._ 54
Capítulo 5 - Implementação
do
Editor Distribuído edo
seu Suporte ... ._ 555.1 Introdução ... .. 55
5.2 Arquitetura da Implementação ... ._ 55
5.3
Implementação da
Plataforma de Suporte ... _.56
5.3.1
Uso
da Orientação a Objetos na Implementação ... ._ 565.3.2 Arquitetura
do
Suporte Implementado e Interfaceamentocom
a Aplicação _______ _. 575.3.3 Implementação dos Serviços da Plataforma de Suporte ... ._
59
5.3.3.1 Serviço de Gerenciamento de
Grupo
... _.59
5.3.3.2 Serviço de
Comunicação
deGrupo
... _.60
5.3.3.3 Serviço de
Voto
... ._60
5.3.3.4 Serviço de Transferência de Arquivo Multi-destino ... ._ 61
5.4 Implementação
do
Editor Distribuído ... _.62
5.4.1 Lista de Objetos ... _. 63
5.4.3 Janela de Edição
Comum
... .. 685.4.4 Telepointer ... ._
70
5.4.5 Gerenciamento deGrupo
... _. 71 5.5 Conclusões ... .. 72Capítulo 6 - Considerações Finais sobre
o
SuporteImplementado
... 736.1 Introdução ... .. 73
6.2 Aspectos de
Desempenho
do
Serviço deComunicação
deGmpo
... .. 736.2.1 Contexto da Avaliação ... ... ... ..
74
6.2.2 Limites da Avaliação ... .. 75
6.2.3 Resultados da Avaliação ... .. 75
6.3 Aspectos Funcionais dos Serviços Implementados ... ..
78
6.3.1 Serviço de
Comunicação
deGrupo
... ._ 78 6.3.2 Serviço de Gerenciamento deGmpo
... .. 786.3.3 Serviço de
Voto
... ... ..79
6.4 Aspectos da Utilização dos Serviços
no
Editor DistribuídoImplementado
... ..79
6.5 Conclusões ... ... ..
80
Capítulo 7 - Conclusões e Perspectivas ... .. 82'
Referências Bibliográficas ... ..
86
Anexo
A
-Notação
Coad-Yourdon
para a Representação de Classes e Objetos ... .. 91Anexo
B
- Classesem C++
dos Serviços de Gerenciamento deGrupo
e deVoto
... .. 93Anexo
C
- Classesem C++
Utilizadasno
Editor Distribuído ... ..96
Anexo
Da- Tipos, Variáveis e Procedimentos Utilizadosno
Algoritmo de Controle de Concorrência ... .. 100LISTA
DE
FIGURAS
Figura 2.1 - Posicionamento temporal (a) e espacial (b) dos principais tipos
de
sistemascooperativos [Rodden92]. ... ... ..7
Figura 2.2 - Arquitetura geral dos sistemas cooperativos. ... ._ 12 Figura 2.3 -
Comunicação
utilizando Objetos Canais [Pendergast93] ... .. 17Figura 2.4 -
Exemplos
de serviços básicosem
uma
configuração degrupo
[Coulson92] ... .. 23Figura 3.1 - Atualizações concorrentes de
um
objeto replicado: (a) fase de atualização das cópias locais; (b) fase de difusão das atualizações para os demais sítios,onde
ocorre conflito devido a atualizações concorrentes ... ._29
Figura 3.2 - Interfacecom
o usuáriodo
editor distribuído implementado. ... ..34
Figura 4.1 - Estilos de grupos
no
sistema ISIS [Birman91-93] ... ..44
Figura 4.2 - Convite para o ingresso de
um
processoem uma
aplicação cooperativa ... ..49
Figura 4.3 - Pedido de expulsão .de
um
processo deuma
aplicação cooperativa. ... ..49
Figura 4.4 - Entrada de
um
processo antesdo
término deuma
votação: (a) casoonde
o requisitornão pode
terminar a votação; (b) casoonde
onovo
membro
é requisitadotambém
para votar, permitindo assim a finalização da votação ... .. 51Figura 5.1 - Arquitetura dos Sistemas de Trabalho Cooperativo ... ..
56
'Figura 5.2 - Arquitetura da implementação de
uma
aplicação cooperativa sobre a plataforma de suporte proposta. ... ..57
Figura 5.3 - Representação das classes dos serviços da plataforma de suporte. ... .. 58
Figura 5.4 - Notificação de eventos
no
ISIS. ... .. 59Figura 5.6 - Representação
Coad-Yourdon
das classes de objetosque
compõem
o
EditorDistribuído. ... ..
62
Figura 5.7 - Lista encadeada de objetos. ... ..
64
Figura 5.8 - Procedimentos de requisição (a) e de
passagem
(b)do
bastão ... ..66
Figura 5.9 - Procedimentos de recepção da requisição (a) e da
passagem
(b)do
bastão ede
notificação de falha
do
atual detentor (c). ... ._67
Figura 6.1 -
Comparação
dosdesempenhos
da primitivaCBCAST
no
ISIS V2.1 eV3.0
para 1Kbyte
de dados de usuário. ... ..76
Figura 6.2 -
Comparação
dosdesempenhos
da primitivaCBCAST
no
ISIS V2.1 eV3.0
para 7 - Kbytes de dados de usuário ... ..76
Figura 6.3 -
Comparação
entre osdesempenhos
da primitivaCBCAST
para lKbyte
e 7Kbytes
Tabela 6.1 -
Desempenho
do
Serviço deComunicação
deGmpo
do
suporteimplementado
(CBCAST
no
ISIS V2.1). ...Quadro
4.1 -Uso
do
ISIS na primitiva JoinGroup. ... ._Quadro
D.l - Tipos de dados utilizadosno
algoritmo de controle de concorrência.Quadro D.2
- Variáveis globais utilizadasno
algoritmo de controle de concorrência. _Quadro
D.3
-Funçoes que implementam o
algoritmode
controle de concorrência...RESUMO
A
necessidade de ferramentas para serem utilizadas na construção de sistemas de TrabalhoCooperativo
(CSCW
-Computer-Supported
Cooperative Work),têm
despertadoo
interesse nautilização de tecnologias existentes
em
Sistemas Distribuídos. Entretanto, estenovo campo
deaplicação
demanda
aindaum
esforço para a adaptação das tecnologias providas pelos sistemasdistribuídos recentes, tendo
em
vista as fiincionalidades requeridas pelas aplicações cooperativas,no
suporte das interações e na coordenação de seus usuários.Neste
contexto, este trabalhotem
como
meta
principal proporuma
plataforma de. serviçosque
atende aos requisitos para o suporte à construção de aplicações cooperativas
onde
osparticipantes interagem de forma síncrona (ao
mesmo
tempo), distribuída(em
diferentes lugares)e através de informações de natureza discreta (texto e imagens, p. ex.). Utiliza-se nesta
plataforma algumas das funcionalidades oferecidas pelo sistema ISIS.
Os
serviços propostosobjetivam oferecer funcionalidades para
o
gerenciamento de grupos de processosque
compõem
uma
aplicação cooperativa, suporte para comunicação de grupo confiável(com
entrega causal eatômica de mensagens),
mecanismos
de votação e de transferência de arquivos multi-destino.A
aplicação para a qual esta plataforma foi construída e testada éum
editor distribuído parafiguras geométricas.
São
apresentados neste trabalho o projeto e a implementaçãoda
plataformade suporte proposta, e a seguir avaliados os aspectos operacionais (desempenho) e funcionais dos
ABSTRACT
The
need
of
tools for the constructionof
CSC
W
(Computer-Supported CooperatíveWork)
systems,
has
raísed the intereston
the useof
present Distributed Systems technologies.However,
this
new
application fielddemands
for effortson
fitting these technologies according to therequirements
of
cooperative systems,'
in the support
of
the interactionsand
coordinationamong
their users.
T
In this context, this
work
has themain
goalof
proposinga
support service platformwhich
provides the functionalities required for the construction
of
cooperative systems inwhich
participants interact in
a
synchronous (same time)and
distributed (different places) way,and
by
means
of
discrete nature information (e. g. textand
image). This platform hasused
some
of
thefunctionalities
of
the ISIS system. Theproposed
services intend to offer functionalities to themanagement
of
processgroups
whichcompose
a
cooperative application, supportfor
reliablegroup communication
(with causaland
atomic deliveryof
messages),and
votingand
multi-partyfile transfer mechanisms.
This platform
has
been implemented for the supportof
a
distributed editorfor
geometricalshapes,
which
has also been used to test the implemented services. The designand
theimplementation
of
theproposed
support platform are also presented in this work,and
in thefollowing are evaluated the operational (performance)
and
functional aspectsof
theINTRODUÇÃO
A
busca de cooperação, tendoem
vista o alcance de objetivos comuns, e'uma
tendência naturaldas pessoas
em
seu ambiente de trabalho.Com
o desenvolvimento tecnológico dos sistemascomputacionais, principalmente
em
termos de processamento ecomunicação
de dados, tornouéseevidente a utilidade destas tecnologias
no
apoio às interações e ã coordenação de grupos depessoas
em
contextos de colaboração.Com
esta preocupação, passaram a existir sistemascomputacionais cujos objetivos
eram
o de fornecero
suporte para a cooperação entre indivíduos,buscando
tornar o trabalhoem
conjunto mais fmtíferodo
que simplesmente asoma
dos esforçosindividuais.
Groupware
(ou aplicações cooperativas) é adenominação
encontradana
literaturapara estes tipos de sistemas, e o estudo e pesquisa das tecnologias
que
permitirão a construçãodestas aplicações, abrange
um
campo
multi-disciplinarchamado
CSCW
-Computer-Supported
Cooperative
Work
(ou simplesmente Trabalho Cooperativo,como
será utilizado neste trabalho)[E11is91].
O
suporte para a construção de aplicações cooperativas,tem
sidotambém
uma
preocupação
em
sistemas
de
Trabalho Cooperativo.Nos
níveis mais baixos das implementações de aplicaçõescooperativas, os sistemas distribuídos existentes são fortes candidatos para este suporte. Sistemas
baseados
em
redes de alto desempenho, comunicação de grupo, e quepermitam
a manipulação deobjetos multimídia (texto, áudio e vídeo, p. ex.)
vêm
contribuir efetivamenteno
projeto eimplementação destas aplicações [Trevor95]. Entretanto, os sistemas distribuídos atuais
não
podem
diretamente suprir às necessidades de suas aplicações tradicionais e aomesmo
tempo,atender aos requisitos de aplicações cooperativas,
onde
deve ser levadoem
conta essencialmenteo
"porque" de as pessoas trabalharemem
conjunto e freqüentemente,o "como"
este trabalho deveocorrer [Trevor95]. Desta forma,
em
sistemas de Trabalho Cooperativo, funcionalidadesadicionais às providas pelos sistemas distribuídos atuais se
fazem
na maioria das vezes1.1
O
PROJETO
Neste contexto, o trabalho aqui desenvolvido foi motivado principalmente pela necessidade de
serem propostos, e disponibilizados na prática, serviços
que
oferecessem determinadasfuncionalidades desejáveis
em
alguns tipos de aplicações cooperativas. Dentrodo amplo
campo
de aplicação dos sistemas de Trabalho Cooperativo, 'escolheu-se
um
problema particular, para seter, principalmente,
uma
referência mais nítida das funcionalidades de suporte necessárias.Por
este motivo, foi
dada
ênfase para aplicaçõesdo
tipo Editor Distribuído.A
utilização de sistemasdistribuídos
que
mais seadequassem
aosrequisitos existentes,como
o suportede
interações degrupos
de
processos, foitambém
uma
premissa básicano
projeto e implementação dos serviçospropostos. _
~
Desta forma, após
um
estudo a respeito das características funcionais de aplicações de Trabalho Cooperativo edo
levantamento dos requisitos mais importantes paraum
suporte a este tipo deaplicações (considerando
em
especialo
caso dos Editores Distribuídos) [Fritzke95a-95b], propôs-se
um
conjunto de funcionalidades que oferecerão aoprogramador
mecanismos
de:ø gerenciamento
de
grupos de processos quecomporão
uma
aplicação cooperativa,onde
os_. ~
participantes atuarao simultaneamente sobre informaçoes compartilhadas,
podendo
entrar esair à vontade de
uma
sessão de trabalho cooperativo ;o
comunicação
de grupo, que garanta interações consistentes e eficientes entre os processosque
compõem uma
aplicação cooperativa;ø estabelecimento de 'consenso a respeito de questoes semanticamente ligas à aplicaçao, e
que
podem
envolver,ou
não, os usuários da aplicação;o transferência V de arquivos contendo informações geradas
em uma
sessao de ediçãocooperativa, a partir de
um
participante para ogmpo;
'Tendo
em
vistaum
ganho
de experiência prática na implementação de aplicações cooperativas etambém
a possibilidade de se validar os serviços de suporte implementados, colocou-seadicionalmente
como
meta
a construção deum
Editor Distribuído.O
contatocom
questões deimplementação a nível de aplicação, proporcionariam
uma
realmedida
da necessidade dos1.2
APRESENTAÇÃO
Do TRABALHQ
O
texto deste trabalho, será subdivididoem
função dos pontos principaisque foram
desenvolvidos
no andamento do
projeto.Assim, o Capítulo 2 fará
uma
introdução aotema
Trabalho Cooperativo,onde
serão classificadasas aplicações cooperativas e
também
apresentadas as características funcionais mais importantesdestas aplicações.
Em
seguida serão abordados aspectos sobre o suporte para a construção deaplicações cooperativas,
onde
serão apresentados os principais requisitos destes suportes.No
Capítulo 3 será apresentado o Editor Distribuído a ser desenvolvidoem
termos das suasfuncionalidades e características gerais.
O
problema de coordenação das ações concorrentes deindivíduos sobre o estado de
um
documento
compartilhado (controle de concorrência), serátambém
discutidoem
uma
seção específica.'
O
Capítulo 4 apresentará o conjunto de serviços propostos para o suporte para aplicações deTrabalho Cooperativo
do
tipo Editor Distribuído. Inicialmente, cada serviço será descritoem
termos das funcionalidades que deverão ser oferecidas, exemplificando-se
em
cada caso anecessidade destas funcionalidades.
Em
seguida* será apresentadouma
plataforma (sistema ISIS)que
foi utilizada na construção dos serviços propostos. Serátambém
mostradocomo
foi feito omapeamento
destes serviços sobre as funcionalidadesdo
sistema distribuído utilizado.O
Capitulo 5 aborda deforma
detalhada o projeto e a implementação dos serviços da plataformade suporte proposta e
também
dosmódulos
quecompõem
o Editor Distribuído construído.No
Capítulo 6 são apresentadas considerações finais a respeito de suporte,do
ponto de vista dosaspectos operacionais e fimcionais da implementação.
Por fim,
as conclusõesdo
trabalho realizado e as perspectivas de trabalhos futuros serãoTRABALHO
COOPERATIVO
2.1
INTRODUÇÃO
O
termo
Trabalho Cooperativo refere-se aosmecanismos
de coordenação dos esforços e decomunicação
entre indivíduos distribuídos geograficamente,com
O objetivo de se realizaruma
atividade
ou
alcançarum
objetivocomum
aum
grupo de pessoas.As
tecnologias recentes paracomunicação
(p.ex. redes de alta velocidade), manipulação, processamento earmazenamento
denovos
tipos de informações, taiscomo
áudio, voz, vídeo e .imagemtêm
impulsionadoo
desenvolvimento e a difusão de conceitos associados a Trabalho Cooperativo para
um
conjuntocada vez maior de aplicações de sistemas informáticos. Neste contexto, a disciplina de Trabalho
Cooperativo
com
Suporte Computacional (Computer-Supported CooperativeWork
-CSCW),
vem
estudando. aspectos tecnológicos e sociaisdo
Trabalho Cooperativocom
o suporte derecursos computacionais compartilhados [Ellis9l].
Neste
capítulo, são apresentadas inicialmente classificações de sistemas de Trabalho Cooperativoà luz de aspectos temporais e espaciais destes sistemas.
Também
são apresentadas ascaracterísticas funcionais de sistemas de Trabalho Cooperativo.
A
partir destas características sãoentão citados requisitos gerais necessários para o suporte computacional destes sistemas.
São
descritas algumas soluções de suporte utilizadas
em
sistemas de Trabalho Cooperativo,onde
podem
então ser vistas propostas demecanismos
quevêm
a solucionar,em
cada caso, parte dosrequisitos citados.
Ao
final são feitos comentários a respeito dos suportes apresentados ecolocadas conclusões gerais
do
capítulo.2.2
CLASSIFICAÇÃO DOS
SISTEMAS
DE
TRABALHO
COOPERATIVO
Apesar
denão
se poder classificar os sistemas de Trabalho Cooperativo deuma
forma
nítida,estão relacionadas, principalmente,
com as
formas e contextosgeográficos
nos quais osparticipantes cooperam,
conforme
será visto a seguir.2.2.1
Os
Aspectos
Temporal
e Espacial dos'Sistemasde Trabalho Cooperativo
As
aplicações de Trabalho Cooperativovem
sendo analisadas segundo dois aspectos:o
aspectotemporal
que
define as formas de cooperação (ou dos tipos de interação) possíveis e o espacialque
corresponde a disposição geográfica dos participantes [Ellis9l] [Rodden92].Formas
de
cooperação:As
formas pelas quais os participantes interagemem
um
grupo são de dois tipos: síncronaou
assíncrona.
A
interação síncrona requer a presença simultânea de todos os participantesem uma
sessão. Já a interação assíncrona ocorre
em
um
intervalo detempo
maior, e não requer a presençasimultânea dos participantes. Existem
também
aplicações que misturamambos
os tipos deinterações,
como
no
,caso de sistemas de conferência assíncronosque
também
suportam
interações síncronas
com
alguns tipos de mídias(como voz ou
texto, p. ex.).Disposição geográfica: _
Os
participantes deum
sistema de Trabalho Cooperativopodem
estar geograficamentedistribuídos de várias maneiras: todos
em
um
mesmo
local (co-located),com
suas estações detrabalho interligadas por
uma
rede local, e possivelmente compartilhandouma
projeção de tela;em
salas diferentesmas
próximas (virtually co-located), interagindo poruma
rede local e fazendofreqüentemente uso de comunicação -em tempo-real de mídias
como
áudio e vídeo;em
salasdistintas dentro de
um
mesmo
edificio (locally remote), interagindotambém
poruma
ou
maisredes locais, interligadas por
uma
rededo
tipo back-bone;em
lugares distantes (remote),suportados por serviços de telecomunicações.
2.2.2 Classificação
Funcional
dos Sistemasde Trabalho Cooperativo
Pode-se encontrar atualmente sistemas de Trabalho Cooperativo
em
diversas aplicações eambientes.
A
seguir, são apresentadas inicialmente quatro classes clássicas de sistemascooperativos [Ellis9l] [Rodden92] [Williams94]: sistemas de mensagens, de conferência por
computador,
de tomada
de decisão, e de co-autoria e argumentação.Na
figura
2.1 estasaplicações são posicionadas
com
relação aos aspectos temporal e espacial anteriormenteSistemas
de
Mensagens
Baseiam-se na troca de
mensagens
de texto de forma assíncrona entre usuários.Os
sistemasde
mensagens
serviram inicialmente para interação entre usuários deuma mesma
máquina,mas
atualmente,
com
o
suporte de redes de longa distância,permitem
a troca demensagens
entreusuários de
máquinas
distintas.Os
sistemas demensagens
são padronizados peloCCITT,
a partirda
série de padrõesX4OO
(Message Handling
System -MHS).
O
correio eletrônico e os sistemasBBS
(BulletinBoard
Systems), são exemplos tradicionais de sistemas de mensagens.Sistemas
de Conferência por
Computador
Uma
conferência consistetipicamente deum
conjunto demensagens
(textualou
multimídia)trocadas de
forma
assíncrona porum
conjunto de pessoas localizadasem
ambientesremotamente
distribuídos,
normalmente
em
torno dealgum
assunto de interessecomum.
Conversações
sãoentendidas
como
conjuntos de mensagenscom
ligações de comentários(como
p. ex., respostasou
comentários auma
mensagem
prévia).O
acesso auma
conferência, assimcomo
a organizaçãoe controle de conversações (aprovação de novas mensagens,
remoção
das obsoletas), sãonormalmente
controladas porum
ou
mais usuárioscom
direitos especiais (moderadores).O
sistema
SuperKOM
[Palme92] éum
exemplo deste tipo de aplicação.A
atual disponibilidade de redes de altodesempenho tem
possibilitado a existência de sistemas deconferência tempo-'real (real-time conferencing)
com
interações síncronas entre usuáriosem
localizações distintas,
como
é o casono
sistemaRTCAL
(RealTime
Calendar) [Sarin85].Adicionalmente, sistemas de conferência baseados
em
ambientes gráficos de estações de trabalho(desktop conferencing systems),
como
no
casodo
sistema de conferênciaMERMAID
[Watabe90],
permitem
interações de usuários atravésdo
uso de mídiascomo
voz,imagem,
gráficos e desenhos a
mão
livre.Sistemas
de
Tomada
de
Decisão~
Estes sistemas visam aumentar a produtividade
no
processo detomada
de decisao.A
forma
decooperação é síncrona e a localização
pode
serdo
tipo reunião face-a-faceou
em
sítios diferentes.Mecanismos
de controle de acesso e de votação de cada usuário são necessários nestes sistemas.A
sala de reuniõesdo
sistema Colab [Stefik87] éum
exemplo
deste tipo de aplicação,onde
cadaparticipante
tem
uma
estação .de trabalho, sendo estas interconectadas poruma
rede local, esistemas para
o
suporte de múltiplos grupos na solução de problemascomplexos
e obtenção deconsenso, é apresentada
em
[Palmer94].Sistemas
de
Co-autoria eArgumentação
Estes sistemas auxiliam a autoria
em
cooperação dedocumentos
(de textoou
com
recursosmultimídia) e, suportam a negociação e a argumentação envolvidas
em
trabalho cooperativo.Editores cooperativos,
como
os sistemasCoDrafi
[Kirsche93a] eGROVE
[Ellis9l], são sistemasde co-autoria,
onde o
documento
final resulta de contribuições individuais e de negociações entreos participantes.
O
tipo de cooperação é geralmente síncrona e a localizaçãogeográfica
vai deface-a-face a localmente distribuída.
^1:§:§:§:§:§:§:¡:§:§:§:§:§:§rf:f:z:§:f:§:§:§:f:§:f:§:§:§:§:§:{:§:§:§:§:§:§:5:{:§:§i§:§:§:§:§:§:§i{:§:§:§:{:§:E15:E:E:E:5:5:§:5:5:E:{15:§:§:§:§:§:§:§:§:§:§:§:§:§:f:§:§:;:f:f:§:§:{:{:§:§:§;§ âzâzâ
A
SÍHCFOHOS 'V
aSSÍflCrOflOSTempo
ia) ; 1 âzzââââ:äêâââââzâzâzâêâêâââêâââââââzââââââââââêââââââêâââêâêââââââââêâêâââêââââââ iV
co-located 'vírfually co-/ocated loca//y remote mote .
local remoto
Espaço
(b)
Figura 2.1 - Posicionamento temporal (a) e espacial (b)
dos
principais tiposde
sistemasAlém
destas classes de sistemas cooperativos,também
podem
sermencionados
alguns outrosexemplos
de áreas de aplicação nas quais o suporte computacionalpode
trazer beneficiosconsideráveis para a produtividade de grupos de trabalho:
Agentes
Inteligentes e Sistemasde
Coordenação
de
Trabalho Cooperativo
[Ellis91]O
sistemascom
agentes inteligentes baseiam-se na existência de participantes nãohumanos,
como
no
caso de jogos para múltiplos usuáriosem
computador
e agentes inteligentes para monitoraçãode sessões de trabalho cooperativo (p. ex. o agente Liza [Gibbs89]).
Os
sistemasde coordenação
são sistemas de suporte à integração e ao ajuste de ações dos indivíduos
no
sentidode
se alcançarum
objetivocomum.
Em
geral estes sistemas permitem aum
usuário visualizar suas ações assimcomo
ações relevantes de outros usuários,no
contextodo
objetivocomum,
assimcomo
gerarlembretes e alertas aos usuários.
Suporte
aEngenharia de
SoftwareConcorrente
Este tipo de sistema
tem
como
objetivo principal diminuir os custos devidos às interações entre osmembros
de equipesde
desenvolvimento de sofiware. Estas aplicaçõespodem
beneficiar-sede
sistemas cooperativos
do
tipo síncrono e assíncrono,como
sistemas de co-autoria eargumentação, sistemas de mensagens e sistemas de conferência.
Como
exemplo, tem-se osistema Flecse (Flexible
Environment
ƒor Collaborative Software Engineering)[Dewan93], que
apresenta ferramentas para controle distribuído de versões de códigos fontes, teleconferência,
depurador e editor de programas multi-usuários, entre outras.
Automação
Industrial Integrada(CIM-Computer
IntegratedManufacturing)
Sistemas de trabalho cooperativo
vem
também
sendo utilizadoscom
o objetivo de diminuir ointervalo de
tempo
entre a concepção inicial deum
produto, até sua produçãoem
larga escala.Neste
caso, a interação entre engenheiros, especialistas, fornecedores e clientes,vem
demandando
ferramentas assíncronas,
como
correio eletrônico, e síncronas,como
conferênciasem
tempo-real,interfaces multi-usuário
em
software de projeto(CAD, modelagem
2D
e3D)
e esboçosinterativos informais (sistemas de co~autoria).
Como
exemplo de trabalho nesta área pode-se citaro projeto
CAR
(CAD/CAM
in the Automotive industry inRACE
-Research
and
Development on
Advanced
Communications
in Europe) [Joyner90]. Estudos de infra-estruturasde
suportebaseadas
em
redesISDN
faixa-larga na integração de ilhas de fabricaçãoautônomas
earquitetura hierárquica de tecnologias,
que vão
permitir que equipes de engenharia concorrente deprodutos, interagindo localmente, colaborem de forma distribuída.
2.3
CARACTERÍSTICAS
FUNCIONAIS
DOS
SISTEMAS
COOPERATIVOS
As
características funcionais dos sistemas cooperativos estão relacionadascom
aspectos sociaisde grupos de trabalho, tendo influência direta
no
comportamento
e eficiência tantodos
indivíduos,
como
do
grupocomo
um
todo [Ellis91] [Reinhard94].Do
ponto de vista dosusuários,
em
geral os sistemas de Trabalho Cooperativodevem
favorecer sua integração epermitir
um
aumento
de rendimento na execução de tarefas,em
relação ao trabalho individualisolado. Desta forma, estes tipos de aplicações apresentam,
em
conjuntocom
os aspectostemporais e espaciais anteriormente mencionados, os seguintes atributos:
Compartilhamento
de Recursos
eCoordenação
Em
uma
sessão de trabalho cooperativo, os participantes interagem compartilhando recursos(como
p. ex.,um
documento,um
canal de comunicação de voz, etc.) e deforma
coordenada,mesmo
em
distâncias maiores. .Nas
aplicações de Trabalho Cooperativocom
interações síncronas,deve
existirum
compartilhamento forte (strong sharing) [Tou94], tanto dos dados
que
definem
o
estado deuma
sessao de trabalho,
como
das operações sobre estes dados. Isto significaque
os dadoscompartilhados
devem
estar sempre acessíveis aos usuários, assimcomo
os usuáriosdevem
perceber imediatamente o efeito das operações de
um
membrodo
grupo
sobre estes dados.A
coordenaçao visa minimizar as operaçoes antagônicas nas interações entre os usuários eaumentar
a produtividadedo
grupo.A
complexidade da coordenação variade
acordocom
otamanho do
grupo e a tarefa a ser desenvolvida [Reinhard94].Normalmente
grupospequenos
requerem
um
graumenor
de coordenação, devido amenor
incidênciade conflitos entre operaçõesde usuários. Sessões de brainstorming e conferências são exemplos de tarefas
que requerem
mecanismos
de coordenaçao extremos: enquantono
primeiroexemplo
os participantespodem
interagir espontaneamente,
no
segundo caso apenasum
participante secomunica
enquanto osoutros o
ouvem
passivamente.A
característica interativa e coordenada dos sistemas cooperativos éuma
importante diferençacom
relação às aplicaçoes de sistemas distribuídostradicionais,como
sistemas de arquivos e basesSegundo
[Rodden92], o controle das interações entre participantes (coordenação)de grupos
em
sistemas de Trabalho Cooperativo
pode
ainda apresentar-se de duas formas: controle explícito econtrole implícito. .
C
No
primeiro caso, as informações de controlepodem
ser apresentadas e editadas pelosparticipantes,
que
podem
então visualizar e adequar as interações para o contextodo
trabalho aser realizado.
Um
dos exemplos de sistemas baseadosem
controle explicito são os sistemasbaseados
em
teoriasde
ação de linguagem (speach act theory),onde
as pessoascoordenam
seutrabalho a partir de
um
conjunto de ações de linguagem (pedidos, promessas, etc.) e passos deconversação pré-estabelecidos (pedidos
tem
de ser feitos antes da realização deuma
promessa, p.ex.) [Ellis9l]. '
Nos
sistemasque
apresentam controle implícito, não existem formas de representaçãodo
controledas interações
no
grupo. Neste caso, os participantestêm
igualdade de direitos epodem
atuar eusar os sistemas livremente.
Em
contrapartida, o sistema nãoacompanha
as atividadesdo
participantes, não
podendo
então prover suporte de coordenação mais eficiente para o processode trabalho cooperativo.
Os
sistemas de co-autoria e os sistemas deconferência,que
apresentamum
grau reduzido de controle, normalmente efetuado porum
participante apenas (moderador),sao sistemas
onde o
controle é implícito.Grupos
Dinâmicos
Os
participantes entramem uma
sessão de Trabalho Cooperativo segundo políticas pré-estabelecidas, através de convites,
ou
de requisições explícitas de entradaem
um
grupo.Ao
entrar,
um
participante deve poder obter todas as informações públicas compartilhadas, para poder participardo
trabalho nasmesmas
condições que seus colegas (transferência de estado).Em
alguns casos é necessário o estabelecimento de níveis distintos entre osmembros
deum
grupo
com
relação ao acesso as informações compartilhadas [Reir1hard94].A
saída demembros
ocorreespontaneamente
ou
por motivo de falhano
sítioem
que se encontram.Tempos
de Resposta
Baixos _Os
tempos
de respostaem
relação as ações dos usuáriosdevem
ser baixos. Estetempo
deresposta apresenta-se
como
a combinação das seguintes componentes:tempo
de resposta local,que
é atraso entre a ação de modificação deum
dado
compartilhado porum
determinado usuárioaté sua apresentação na interface local, e
tempo
de notificação, que éo
atraso entre a ação deMensagens
Interrelacionadas _As
mensagens
de participantespodem
estar interrelacionadas,como
é o casode
ligações decomentários
em
aplicações assincronasdo
tipo conferência por computador.A
interrelação entremensagens
também
pode
apresentar-se na forma de restrições de ordenaçãode
operações deusuários a nível
do
grupo.Como
por exemplo,em
aplicações síncronasdo
tipo edição distribuída,as operações de usuários sobre informações compartilhadas
devem
ser executadasna
mesma
ordem
por todos os participantes, mantendo-se assim a consistência globaldo
documento.Interações Implícitas e Explícitas
A
Além
de seremdo
ponto de vista temporal, síncronas e assincronas, as interações entre usuáriosde -uma aplicação cooperativa
podem
ser implícitasou
explícitas [Reinhard94].O
primeiro tipotrata da interação através das informações que
compõem
o objetodo
trabalho conjunto,como
no
caso de
um
documento
textualou
gráficonoprocesso
de edição cooperativa.O
segundo
casotrata
da comunicaçao
direta entre os participantes deum
grupo, através de canais de voz, vídeo(como
em
conferênciaem
tempo-real)ou
até através de gestosem
reuniões face-a-face.Interface
Compartilhada
É
desejávelque
as informações públicas compartilhadas sejam apresentadas deforma
consistenteaos usuários.
O
comprometimento
com
esta propriedade, definidaem
[Stefik87]como
WYSIWIS
(What You
See IsWhat
I See),pode
ser verificadaem
diferentes graus: desde oWYSIWIS
estrito,
onde
todos os participantes visualizam informações idênticas, até formas mais relaxadas,onde
as informaçoes sendo visualizadas porum
participante nao precisam ser asmesmas
dosdemais. Neste último caso pode-seter, por exemplo, situações de autores lendo páginas diferentes
de
um
mesmo
documento,em uma
sessão de edição cooperativa,ou
de ter-se diferentes vistas deum
mesmo
documento (como
posições e formatos independentes dos ponteirosdo
,mouse de cadausuário, diferentes contextos de cores, etc).
2.4
SUPORTE PARA
APLICAÇÕES DE
TRABALHO
COOPERATIVO
Neste
trabalho, define-secomo
suporte para- aplicações de trabalho cooperativo, o sistemacomputacional que
vem
oferecer facilidades para a implementação deuma
determinada classe desistema cooperativo,
ou
até deum
conjunto delas, segundo suas características fimcionais.A
[Rodden92]
(figura 2.2),onde
o suporte procura implementar as funcionalidadesnão
oferecidaspelos sistemas de
comunicação
subjacentes.A I Aplicação Cooperativa I I Aplicação Cooperativa | ^P||03Ç3° C°°Pef3ÍlV3
C
I Supone)
(
Suporte)
. . . SUPOYÍG'Sistema de Comunicação lsislema de Comunicação Slsíema de C°mU"|°3Çä°
Figura 2.2 - Arquitetura geral
dos
sistemas cooperativos.Desta forma, a definição e a complexidade resultante de
um
suporte está fortemente ligada aosaspectos funcionais da aplicação
em
questão. Diferentes formas de cooperação e distribuiçõesgeográficas,
vão demandar
diferentes tecnologias de coordenação e comunicação.Como
porexemplo, sistemas
onde
as interações entre os usuários são síncronas e explícitas(como
em
desktop conferencing), requerem
tempos
de respostado
sistema decomunicação
mais estritosdo
que
aqueles requeridos por aplicaçõesonde
os usuários interagem deforma
assíncrona(como
em
conferência por computador). ^
2.4.1 Requisitos
para
oSuporte
a Aplicações CooperativasDe uma
forma geral, as características funcionais dos sistemas cooperativos anteriormenteapresentadas
demandam
as seguintes caracteristicasdo
suporte:Comunicação
de
Grupo
Aspectos
como
as formas de coordenação das interaçoes entre usuários, a natureza dinâmica dos gruposcompostos
por estes usuários, e possíveis relações entre asmensagens
de difiisãolttrocadas por estes, evidenciam a necessidade de
mecanismos
decomunicação
de-grupo que
permitam:
o o uso de endereçamento de grupo, livrando o programador de detalhes de endereçamento dos
processos individuais que
compõem
o grupo (transparência de nomeação).A
naturezadinâmica dos grupos que
compõem
sessões de trabalho cooperativo requerque
o1 Difusão, no contexto deste trabalho, refere-se ao envio de
uma
mensagem para todas as entidades que compõeendereçamento de grupo seja
também
flexívelno
que diz respeito às entradas e saidas departicipantes, e não estático
com
relação à configuração dos sitios de trabalho [Pendergast93].a entrega confiável das
mensagens
para os processos deum
grupo(sem
perdaou
duplicação).a entrega atômica de mensagens para o grupo,
ou
seja,ou
todos os processosdo grupo
recebem
uma
mensagem, ou
nenhum
deles a recebe. Este requisito deve-se à naturezainterativa dos sistemas cooperativos,
onde
atividades deum
usuáriopodem
depender deatividades anteriormente executadas por outros usuários, e
também
da certezade que
estasatividades foram executadas globalmente.
a entrega assíncrona de mensagens, isto é, não bloqueando
o
emissor atéque
a operação deenvio seja completada. Esta_característica,
em
conjuntocom
a habilidadeda
aplicaçao dereceber
mensagens
também
de forma assíncrona(sem
executar operações de recepçãoexplicitamente), tende a diminuir os
tempos
de- resposta de operaçõesde
usuários[Pendergast93].
tornar transparente para a aplicação as operações de inicialização e controle de canais de
comunicação
de grupo [Pendergast93],como
porexemplo
amanutenção
de conexõesindividuais de transporte e controle de restrições de recursos de comunicação;
a entrega de
mensagens
emitidas pormembros
deum
grupo respeitando relações deordenação.
a
manutenção
de históricos de eventos deuma
sessão de trabalho cooperativo, para recuperaro trabalho
em
caso de faltasou
para informaralgum
novo
participante da sessao a respeitodo
trabalho até então realizado. i
obtenção de informações da composição
do
grupo (membership).O
conhecimento
dacomposição do
grupo (saberquem
entrouou
saiudo
grupo, p. ex.) é importante para oandamento do
trabalho cooperativo.As
alterações demembership
porém,devem
serpercebidas pelos usuários de forma consistente, isto é de forma ordenada
com
relação àsmensagens
de difusão.Por
exemplo, o envio deuma
mensagem
de difusão paraum
grupo
com
alteração demembership
em
andamento, deve ser entregue para os processosque
compõem
o grupo antes da alteraçãoou
para aqueles restantes após a alteração,mas
não
paraSuporte de
Tempo-Real
Os
requisitos de tempo-realaumentam
principalmentecom
o grau de sincronismo nas interaçõesentre os usuários e
com
a utilizaçao de mídias contínuas nessas interaçoes.Em
interações síncronas, requer-se que o sistema de Trabalho Cooperativo nao torneo
ritmoindividual de cada
membro
mais lentodo
que se ele estivesse trabalhando de formanão
integrada.Conseqüentemente, o sistema deve reagir de forma suficientemente rápida aos eventos globais
disparados pelas atividades dos usuários.
Por
exemplo, ao ser modificadoum
textoou
um
desenho
em
um
editor cooperativo, cada usuário deve perceber essa modificaçãono
contextodo
documento
globalo
mais rápido possível, para que cadaum
possa prosseguircom
seu trabalho decriação,.ciente de estar manipulando informações atuais.
A
natureza de tempo-real das mídias contínuas (voz, vídeo, áudio, p. ex.), reflete-seem
requerimentos temporais
do
suporte mais estritosque no
caso de mídias discretas (textos,gráficos, etc).
As
midias contínuas são mais sensíveis a atrasos de transporte entre sua geração eapresentação
em
sítios remotos. Para o transporte de informações de natureza contínua, sãonecessários
mecanismos
de sincronização intra-mídiaque procuram
minimizar os efeitos destesatrasos na qualidade de apresentação dessas mídias.
Estes mecanismos, por sua vez, baseiam-se
no
controle das característicasde
Qualidade deServiço
(QoS
- Qualityof
Service) que são requeridas parao
transporte de mídias contínuas.A
noção
deQoS
ocorre verticalmente, a partir da interpretação de parâmetros a nivel' de usuário(qualidade de apresentação de vídeo
ou
de reprodução de áudio, p.ex.) atéo
nível de transporte einferiores.
As
características deQoS
a nível de transporte,podem
ser expressas através de parâmetroscomo
vazão (throughput), faixa-passante (bandwidth), atrasofim-a-fim,
variação deatraso
fim-a-fim
(jitter), taxa de perdas de pacotesou
bits e prioridade, e variamamplamente
segundo o
tipo de midia envolvida [Blair93].Por
exemplo, o transporte de vídeo requer altavazão e garantias de altas faixas-passantes, enquanto conexões de áudio não
requerem
faixas-passantes tão elevadas (p. ex.
220
Mbps
para video nãocomprimido
e64
Kbps
para áudio[Coulson92]);
também,
áudio' e videopodem
suportar certas percentagens de perdas,mas
não
atrasos (semântica better-never-than-late). r
Os
requisitos de tempo-real dos fluxos2 isócronos3em
sistemas multimidia,devem
ser suportadostambém
a nível de sistema operacional, através de garantias de alocação de recursos de2 Fluxo: informação sendo transferida fim-a-fim e que requer sincronização [Escobar9l]. Normalmente está
processamento
que atendam
às restrições temporais na manipulação de amostras, na sua geraçãoe recepção [Coulson92].
A
passagem
de mídias contínuas atravésdo
sistema, requertambém
que
o escalonamentodo
processamento de tarefas seja fortemente coordenado [Blair93], de tal
forma
anão
prejudicar ocomportamento
de tempo-real desejado.Por
exemplo, tarefas de leitura de informações de vídeoem
disco,devem
cooperarcom
módulos
de transporte da informação,sem
violaçãoda
integridade temporal
do
vídeo. VEm
algumas aplicações ainda, é necessário que haja sincronizaçãode
mídias contínuasrelacionadas entre si4.
Como
exemplo, tem-se a sincronização de lábios (líp sync) requeridaem
sistemas de conferência
em
tempo-real devido às relações temporais quedevem
ser mantidasentre os quadros de
voz
e de vídeo, desde sua produção até sua apresentaçãoem
sítios remotos.Desta forma, o suporte deve oferecer recursos de comunicação e sincronização intra-fluxo e inter-
fluxo
compativeiscom
as características dinâmicas das midias contínuas utilizadas.Tolerância a faltas
Além
de
voluntária, a saída deum
membro
deum
grupo de trabalho cooperativopode
ser devidoa falha
do
seu sítio.O
suporte deve termecanismos
que permitam que processosem
um
grupo
percebam
falhas de outros processos de forma consistente.Por
exemplo,quando o
emissor deuma
mensagem
de difusão falha antes que todos os receptoresno
grupo atenham
recebido, énecessário
que
segarantaque
todostenham
amesma
visão global da falha(com
um
outro sítioassumindo as vezes
do
sitio que falhou e continuando a execução da difi1são interrompida,ou
não
entregando a
mensagem
paranenhum
processo, p. ex.).Suporte
àHeterogeneidade
As
diferenças entre os sistemas quepodem
estar interligados por redesde comunicação
(principalmente a longa distância) e a variedade de tipos especializados de
hardware
para osuporte de midias contínuas [Nicolaou90], são fatores
que
contribuem para a heterogeneidade dossistemas cooperativos. Porém, as soluções para o problema de heterogeneidade,
como
a adição de3 Segundo Nicolaou [Nicolaou90], fluxos isócronos são fluxos de amostras de tamanho finito que sao geradas,
transmitidas e recebidas
em
intervalos fixos de tempo, impondoum
conjunto de restrições temporais que nãodevem nunca ser excedidas.
4 Estudos de sincronização temporal de mídias contínuas podem ser encontrados
em
[Leung90], [Little90],camadas
de softwareque
permitam abstraçõeshomogêneas
dos sistemasde comunicação
subjacentes,
devem
respeitarcompromissos
com
odesempenho do
sistema [Coulson92], tendoem
vista principalmente os requisitos de tempo-real dos sistemas cooperativos.2.4.2
Algumas
Propostasde Suporte
ExistentesSuportes para sistemas de Trabalho Cooperativo
têm
sido largamente discutidos na literatura.A
seguir são apresentadas algumas propostas de
mecanismos
de suporte,que
vêm
de
encontro aosrequisitos delineados na seção 2.4.1.
-'
Objetos Canais para
Sistemasde
Suportede
Grupos
Em
[Pendergast93] é propostoum
modelo
de suporte baseado na representaçãode
canais decomunicação
de
grupocomo
Objetos Canais(GSS-CO
-Group
Support SystemsChannel
Objects).
Os
Objetos Canais facilitam a construção de aplicações cooperativasprovendo
conexões virtuais de
mensagens
de difusão ¶(l:N) confiáveis e gerenciamento dinâmico destasconexões
em
função da entrada e saída de participantesem
uma
sessão de Trabalho Cooperativo. Três tipos de objetos (figura 2.3)atuam
na interface entre aplicações e o sistemade
comunicação,mantendo
os Objetos Canais:'NetworkBase
Object -NBO,
Network
Interface Object -NIO,
eName
Server Object -NSO.
O
NBO
é responsável pela conexão das aplicaçõescom
os ObjetosCanais, assim
comopelo
uso destes objetos para transmissão demensagens
e requisição de listade estações
onde
um
determinado Objeto Canal está ativo.O
NIO
manuseia acomunicação
entreestações e encapsula as interações entre o
NBO'
e o sistema de transporte (p. ex., IPX,NETBIOS
ou
TCP/IP
- Transmission Control Protocol/Internet Protocol) utilizado.A
comunicação pode
ser feita através de difusão de datagramas, para situações
onde
a confiabilidadeda comunicação
não e' requerida
(e é desejado maior desempenho), e conexões de sessãof' para difusão confiável,
para os casos
onde
não são toleradas perdas.O NSO
encarrega-se de manteruma
lista atualizadade Objetos Canais e estações
onde
existem instâncias de Objetos Canais ativos,de
talforma
apermitir
ao
NIO
manter as conexões de difusão. `5 Por questões de redução do overhead na criação e manutenção de múltiplas conexões de transporte, todas as
conexões de sessão são multiplexadas sobre
uma
única conexão de transporte confiável, independentemente do-
X.
.z' oooooooooooooo2
x
‹ \ z › 1 4 . × z _ l \ , 1a
|Z' oooooooooooooona
Xi
Í
~Figura 2.3 -
Comunicação
utilizando Objetos Canais [Pendergast93]A
estrutura de comunicação baseada nos Objetos Canaistem
sido utilizada parao
suporte deeditores gráficos l e de esboços distribuídos, sistemas de
tomada
de decisao e sistemascooperativos para projeto de base de dados .
Plataforma
de
Comunicação
de,Grupo
A
plataforma de comunicação de grupo (MultipartyCommunication
Platform) apresentadaem
[Kirsche93a] e [Kirsche93b], define os seguintes serviços de suporte para a implementação de
~
aplicaçoes cooperativas: serviço de Gerenciamento de Grupo, serviço de Difusão
de Mensagens,
serviço de
Voto
e serviço de_Transferência de Arquivo Multi-destino.O
serviço de Gerenciamento deGrupo
oferece as funcionalidades necessárias à criação emanutenção
de grupos de aplicações. Estas funcionalidades são apresentadas através de primitivasde: criação de grupo, convite de novas instâncias de aplicações para participar de
um
grupo,~
requisiçao de entrada
em
um
grupo, requisição de lista atual de aplicações participantesem
um
grupo, saída de
um
grupo e expulsão dealguma
aplicação participante deum
grupo.O
serviço de Difusão deMensagens
permite a difusão demensagens
a todos osmembros
de
um
grupo
com
apenasuma
operação de chamada, de forma ,confiável (evitando erros de bits,duplicação, perda e erro de seqüenciamento de pacotes, a
menos
deuma
falhapermanente do
sítio
ou da
rede) ecom
transparência de nomeação.O
envio dasmensagens pode
ocorrersegundo
três