Anais do
III Simpósio Brasileiro de Sistemas Colaborativos
SBSC 2006
Natal, RN - Brasil
20 a 22 de Novembro de 2006
Promoção
Sociedade Brasileira de Computação
Comissão Especial de Sistemas Colaborativos
Realização
Universidade Federal do Rio de Janeiro
Pontifícia Universidade Católica do Rio de Janeiro
Faculdade de Filosofia, Ciências e Letras de Ribeirão Preto / USP
Universidade Federal do Rio Grande do Norte
Editores
Alberto Barbosa Raposo
Flávia Maria Santoro
© Sociedade Brasileira de Computação
Anais do III Simpósio Brasileiro de Sistemas Colaborativos – SBSC 2006
2006 – Direitos desta edição reservados à Sociedade Brasileira de Computação
ISBN 85-7669-097-7
Editores
Alberto Barbosa Raposo
Flávia Maria Santoro
Para cópias adicionais destes anais, enviar pedido para:
Sociedade Brasileira de Computação
Av. Bento Gonçalves, 9500 - Setor 4 - Prédio 43424 - Sala 116
Bairro Agronomia - CEP 91.509-900 - Porto Alegre - RS
Fone/fax: (51) 3316-6835/(51) 3316-7142
http://www.sbc.org.br
CIP - Biblioteca Setorial de Informática da PUC-Rio
S612
Simpósio Brasileiro de Sistemas Colaborativos (3.: 2006, Natal, RN)
Anais do III Simpósio Brasileiro de Sistemas Colaborativos, Natal, RN,
20 a 22 de novembro de 2006 / editores Alberto Barbosa Raposo e Flávia
Maria Santoro. - Porto Alegre: Sociedade Brasileira de Computação, 2006.
ix, 171 p.
SBSC 2006
Realização: Universidade Federal do Rio de Janeiro, Pontifícia
Universidade Católica do Rio de Janeiro, Faculdade Filosofia, Ciências e
Letras de Ribeirão Preto / USP, Universidade Federal do Rio Grande do Norte.
ISBN 85-7669-097-7
1. Cooperação – Processamento de Dados - Congressos. 2. Grupos de
Trabalho– Processamento de Dados– Congressos. I. Raposo, Alberto Barbosa.
II. Santoro, Flávia Maria. III. Universidade Federal do Rio de Janeiro. IV.
Pontifícia Universidade Católica do Rio de Janeiro. V. Universidade de São
Paulo. Faculdade de Filosofia, Ciências e Letras. VI. Universidade Federal do
Rio Grande do Norte.
CDD: 004.3306
Apresentação
CSCW (Computer-Supported Cooperative Work) é uma área de pesquisas cujo foco de estudos
está no uso de computadores como suporte à colaboração entre pessoas. Estes estudos abrangem teoria e
prática do trabalho colaborativo, projeto, desenvolvimento e implantação de sistemas colaborativos e
relação entre aspectos sociais e técnicos. Por lidar com tecnologia e interação entre humanos, a área é
necessariamente multidisciplinar, envolvendo profissionais das áreas de computação, automação,
antropologia, sociologia, psicologia social, economia, teoria organizacional, educação, e de outras áreas
interessadas no estudo do trabalho colaborativo.
O III Simpósio Brasileiro em Sistemas Colaborativos (SBSC 2006) teve suas origens na
organização da Trilha de CSCW no contexto do WebMedia 2003, em Salvador (BA). Dado o número e
natureza das submissões encaminhadas à trilha, foi possível identificar uma comunidade de pesquisa em
CSCW que precisa ser atendida em suas necessidades de discussões e troca de experiências em âmbito
nacional. A partir desta constatação, foram organizados, nos dois anos subseqüentes, o Workshop
Brasileiro de Tecnologias para Colaboração (WCSCW). O I WCSCW 2004 foi novamente realizado em
conjunto ao WebMedia, em Ribeirão Preto (SP) e o II WCSCW 2005 foi realizado junto ao Simpósio
Brasileiro de Informática e Educação (SBIE), em Juiz de Fora (MG).
Em reunião durante o WCSCW 2005, a comunidade presente criou a Comissão Especial em
Sistemas Colaborativos (CESC) junto à SBC. A CESC sugeriu a ampliação do evento, que passou a ser
denominado Simpósio Brasileiro em Sistemas Colaborativos (SBSC), mantendo o rigor científico, a
multidisciplinaridade, a abertura e a transparência, características da CESC.
Em 2006, temos a honra de coordenar o comitê de programa do III SBSC, o primeiro com o
novo nome e regido pela CESC, que se firma como o principal fórum no país na área de sistemas
colaborativos. O número de submissões vem crescendo continuamente, não só quantitativamente, mas
também qualitativamente. Este ano houve 45 submissões, cada uma avaliada por 3 revisores. Os 17
artigos melhor avaliados foram selecionados para publicação.
Este ano o SBSC ocorre em conjunto com o IHC e o WebMedia em Natal (RN). Agradecemos
ao trabalho dos Profs. Jair Leite e Raquel Prates, que tornaram isso possível. A realização conjunta dos
eventos permitiu, pela primeira vez, a realização de minicursos. Foram 38 submissões, dos quais 6 foram
selecionados.
Agradecemos a todos os autores que submeteram seus artigos e minicursos, aos membros do
comitê de programa e aos revisores, por terem dedicado seu tempo ao SBSC 2006. Nossos especiais
agradecimentos aos Profs. Renata Araujo e Cléver Farias, coordenadores da organização do evento e aos
Profs. Hugo Fuks e Marcos Borges, coordenadores da CESC no período 2005-2006.
Agradecemos também aos palestrantes convidados: Profs. Roberto Montezuma (UFPE), Bonnie
Nardi (Universidade da California, Irvine, EUA), Alan Dix (Universidade de Lancaster, Reino Unido) e
Darko Kirovski (Microsoft Research, EUA).
Desejamos que o SBSC 2006 seja um proveitoso fórum de debates e reflexão sobre os temas
mais importantes na área de sistemas colaborativos.
Natal, novembro de 2006.
Alberto Raposo e Flávia Santoro
Coordenadores do Comitê de Programa
iii
SBSC 2006 – III Simpósio Brasileiro de Sistemas Colaborativos
Coordenação Geral:
Cléver Farias (FFCLRP/USP)
Renata Araujo (UNIRIO)
Coordenação do Comitê de Programa:
Alberto Raposo (PUC-Rio)
Flavia Santoro (UNIRIO)
Comitê de Programa:
Alberto Raposo (PUC-Rio)
Ana Carolina Salgado (UFPE)
André Luís Vasconcelos Coelho (UNIFOR)
Autran Macêdo (UFU)
Cláudia Lage Rebello da Motta (UFRJ)
Cleidson de Souza (UFPA)
Cléver Farias (FFCLRP/USP)
Flavia Santoro (UNIRIO)
Hugo Fuks (PUC-Rio)
Jacques Wainer (UNICAMP)
Jano de Souza (UFRJ)
Jauvane Cavalcante de Oliveira (LNCC)
José Maria N. David (FRB)
José Valdeni de Lima (UFRGS)
Karin Becker (PUC-RS)
Marco Aurélio Gerosa (PUC-Rio)
Marco A. S. Mangan (PUCRS)
Marcos R.S. Borges (UFRJ)
Mariano Pimentel (PUC-Rio)
Neide dos Santos (UERJ)
Renata Araujo (UNIRIO)
Rogério Depaula (INTEL)
iv
Avaliadores
Alberto Raposo
Amaury André
Ana Carolina Salgado
André Coelho
Antônio Barros Neto
Autran Macêdo
Borje Karlsson
Cesar T. Pozzer
Cláudia Motta
Cleidson de Souza
Clever Farias
Elmário Dutra Jr.
Enio Russo
Felipe Carvalho
Flávia Santoro
Hugo Fuks
Ivan Ricarte
Jacques Wainer
Jano Souza
Jauvane Oliveira
José Maria David
José Valdeni de Lima
Kelly Hannel
Luciana Lima
Luiz Gonzaga da Silveira Jr
Marco Mangan
Marco Aurélio Gerosa
Marcos Borges
Mariano Pimentel
Neide Santos
Patrícia Tedesco
Pedro Porfirio Farias
Renata Araujo
Roberto Siva Filho
Rodrigo Rech
Rodrigo Reis
Rogério Depaula
Sandra Siebra
Vaninha Vieira
v
SBC – Sociedade Brasileira de Computação
Presidência:
Presidente: Cláudia Maria Bauzer Medeiros (UNICAMP)
Vice-presidente: José Carlos Maldonado (ICMC - USP)
Diretoria:
Administrativa e Finanças: Carla Maria Dal Sasso Freitas (UFRGS)
Eventos e Comissões Especiais: Karin Breitmann (PUC-Rio)
Educação: Edson Norberto Cáceres (UFMS)
Publicações: Marta Lima de Queiros Mattoso (UFRJ)
Planejamento e Programas Especiais: Virgílio Augusto Fernandes Almeida (UFMG)
Secretarias Regionais: Aline dos Santos Andrade (UFBA)
Divulgação e Marketing: Altigran Soares da Silva (UFAM)
Regulamentação da Profissão: Roberto da Silva Bigonha (UFMG)
Eventos Especiais: Carlos Eduardo Ferreira (USP)
Conselho:
Mandato 2003-2007:
Flávio Rech Wagner (UFRGS)
Siang Wu Song (USP)
Luiz Fernando Gomes Soares (PUC-Rio)
Ariadne Maria B. Carvalho (Unicamp)
Taisy Silva Weber (UFRGS)
Mandato 2005 – 2009:
Ana Carolina Salgado (UFPE)
Ricardo de Oliveira Anido (UNICAMP)
Jaime Simão Sichman (USP)
Daniel Schwabe (PUC-Rio)
Marcelo Walter (UFPE)
Suplentes - Mandato 2005-2007:
Robert Carlisle Burnett (PUC/PR)
Ricardo Reis (UFRGS)
José Valdeni de Lima (UFRGS)
Raul Sidnei Wazlawick (UFSC)
vi
CESC – Comissão Especial de Sistemas Colaborativos
Comitê Gestor:
Coordenador: Hugo Fuks (PUC-Rio)
Coordenador Adjunto: Marcos Borges (UFRJ)
Membros 2005-2006:
Alberto Raposo (PUC-Rio)
Cláudia Motta (UFRJ)
Cléver Farias (FFCLRP/USP)
Flávia Santoro (UNIRIO)
Jacques Wainer (UNICAMP)
vii
Sumário
Um Estudo Etnográfico do Processo de Previsao de Tempo
Weverton Cordeiro, Rafael Esteves, Breno França, Cleidson de Souza
1
Método Colaborativo de Observação: Entendendo coletivamente os ambientes complexos
Renata Machado, Marcos Borges, José Orlando Gomes
10
A Process for User Interaction Analysis in Collaborative Environments
Sandra Siebra, Ana Carolina Salgado, Patrícia Tedesco
19
Avaliando os Elementos de Contexto para as Atividades de Coordenação em Pré-reuniões
Márcio Rosa, José Maria David, Flávia Santoro, Marcos Borges
29
Um Sistema de Recomendação de Especialistas Sensível ao Contexto para Apoio à
Colaboração Informal
Helo Petry, Vaninha Vieira, Patrícia Tedesco, Ana Carolina Salgado
38
Percepção de Contextos de Atividade para Identificação de Comunidades Potenciais
Eliane De Bortoli, Cesar Augusto Tacla,, Fabrício Enembreck
48
Modelo 3C de Colaboração para o desenvolvimento de Sistemas Colaborativos
Mariano Pimentel, Marco Aurélio Gerosa, Denise Filippo, Alberto Raposo, Hugo Fuks, Carlos Lucena
58
Um Ambiente para Integração de Aplicações Colaborativas
Roberta Gomes, Guillermo Hoyos-Rivera, Jean-Pierre Courtiat
68
Gestão de Conhecimento sobre Avaliações de Sistemas Colaborativos
Renata Araujo, Flávia Santoro, Fernando Prata, Thalita Moraes
78
PatternFlow: Supporting Standardized Description and Enactment of Business Processes
Marcos Kalinowski, Marcos Borges, Guilherme Travassos
87
Selecting Anomalous Traces from Workflow Event Logs
Fábio Bezerra, Jacques Wainer
98
Distribuição de Tarefas por meio da Seleção Induzida de Recursos
Rogério Silva, Autran Macêdo, Ilmério Reis da Silva, João Souza
107
ThreadMap: Uma Abordagem para Mapeamento de Mensagens de Correio Eletrônico
Hélio Queiroz Jr, Manoel Mendonça
118
NegoSys: um ambiente de suporte à negociação
Melise Paula, Jano Souza
129
Alterando o Grau de Colaboração de uma Ferramenta de Compartilhamento de Desktop
por Meio de Plugins
Eduardo Carlos, Alberto Raposo
140
viii
Desenvolvimento de Aplicações de Democracia Eletrônica em Larga Escala Utilizando
Grades Computacionais
Rogério Rondini, Hermes Senger, Cléver Farias
150
Simbiose Digital e Colaboração em Ambientes 3D
Glauco Todesco, Marcelo Zuffo
161
ix
Um Estudo Etnográfico do Processo de Previsão de
Tempo
Weverton Cordeiro, Rafael Esteves, Breno França, Cleidson R. B. de Souza
Departamento de Informática
Universidade Federal do Pará
Campus Universitário do Guamá, Rua Augusto Côrrea, 01
66075-110 – Belém - Pará - Brasil
[email protected], {esteves, bfranca, cdesouza} @ufpa.br
Desta forma, é imperativa a importância de se considerar aspectos
sociais no projeto de softwares colaborativos, conforme
inicialmente proposto por Suchman [1]. De fato, a adoção da
etnografia no trabalho pioneiro de Suchman influenciou
enormemente a área e deu início a uma série de estudos
etnográficos visando entender o trabalho realizado por diferentes
profissionais. Por exemplo, Heath e Luff [2] identificaram
importantes mecanismos de coordenação utilizados por
controladores do metrô de Londres. De maneira similar, Bentley e
colegas [3] estudaram controladores de trafego aéreo. Grinter [4],
por outro lado, discute como engenheiros de software utilizam
ferramentas de gerência de configuração para coordenar seu
trabalho. Finalmente, Harper [5] discute como o papel não pode
ser facilmente substituído por ferramentas computacionais devido
às suas características físicas que favorecem a colaboração entre
economistas do Fundo Monetário Internacional.
ABSTRACT
This paper presents the results of a field study applied to weather
forecasting using an ethnographic approach. Our goal was to
achieve an understanding of the collaborative aspects that
employees use to get their work done. Through the analysis of the
collected data, we suggest requirements for a software system to
be developed to help these actors work together.
RESUMO
Este artigo apresenta os resultados de um estudo de campo
aplicado ao processo de previsão do tempo utilizando uma
abordagem etnográfica. O principal objetivo era entender os
aspectos colaborativos que os empregados utilizam para cumprir
com seus trabalhos. Através da análise dos dados coletados, foram
sugeridos requerimentos para um sistema de software a ser
desenvolvido para auxiliar esses empregados nas suas tarefas
colaborativas.
Estes estudos e diversos outros demonstram que a etnografia é
uma importante ferramenta na área de CSCW, pois permite a
identificação de requisitos que dificilmente seriam obtidos apenas
observando as regras que devem ser aplicadas em uma
organização. Estes requisitos existem pois em qualquer processo,
diferentes nuances e detalhes são necessários para sua adequada
realização [6]. A etnografia permite entender como os
participantes colaboram visando atingir um objetivo comum e
desta forma revela aspectos existentes em ambientes cooperativos
que devem ser levados em consideração no projeto de um sistema
computacional. Em resumo, a etnografia, no contexto de CSCW,
pode ser vista como uma ferramenta que permite o
desenvolvimento de sistemas computacionais adequados ao
contexto sócio-técnico onde estão inseridos.
Termos Gerais
Human Factors.
Palavras-Chave
Etnografia, Engenharia de Requisitos, Meteorologia, Previsão do
Tempo.
Keywords
Ethnography, Requirements Elicitation, Weather Forecast.
1. INTRODUÇÃO
Um aspecto importante da área de Trabalho Cooperativo Apoiado
por Computador é o entendimento da forma como as pessoas
colaboram para a realização de seu trabalho. Isto inclui a interação
entre os membros de um grupo para alcançar um objetivo comum,
as práticas necessárias para que o trabalho seja executado, as
convenções formais e informais adotadas durante o trabalho, entre
outros aspectos. Tal entendimento é necessário para o projeto de
sistemas computacionais que facilitem o trabalho cooperativo.
O papel da etnografia na área de CSCW tem sido amplamente
discutido na literatura. De um modo geral, entre os resultados que
um estudo etnográfico pode gerar, cabe destacar:
•
A identificação de fluxos de informação não documentados
(isto é, a ordem na qual a informação é transmitida, a mídia
utilizada para a transmissão da informação, os protocolos que
governam esta transmissão, etc.);
•
A identificação da real divisão do trabalho, uma vez que a
divisão é organizada de forma dinâmica, geralmente
contrariando
ou
flexibilizando
os
organogramas
estabelecidos, e que, portanto, não necessariamente seguem
uma forma prescrita;
•
Finalmente, o responsável pela condução do estudo
etnográfico pode representar o usuário final do sistema a ser
desenvolvido, devido ao vasto conhecimento adquirido a
respeito do processo durante o período de realização do
estudo etnográfico. Isso permite que o projeto e
20 a 22 de Novembro de 2006
Natal, RN, Brasil
© Sociedade Brasileira de Computação
Comissão Especial de Sistemas
Colaborativos
Anais do III Simpósio Brasileiro de Sistemas Colaborativos, pp. 1-9.
1
desenvolvimento do sistema possam ser realizados de
maneira mais simples e menos intrusiva: perguntas simples
podem ser respondidas pelo etnógrafo sem interromper o
usuário.
3. O AMBIENTE ESTUDADO
O 2° DISME é distrito do INMET (Instituto Nacional de
Meteorologia), responsável por coletar os dados meteorológicos
provenientes de estações climatológicas situadas em localidades
pertencentes aos estados do Pará, Amapá e Maranhão e, com esses
dados, gerar previsões de tempo para essa região. Para os
objetivos deste estudo, este órgão é formado essencialmente pelo
NUTEL (Núcleo de Telecomunicações) e o SEPRE (Serviço de
Previsão). O DISME também possui outros setores responsáveis
por questões administrativas (controle de funcionários, controle de
material, etc.) e que, portanto, não foram considerados neste
estudo.
O presente artigo apresenta os resultados de um estudo
etnográfico que teve como objetivo entender a forma como o
trabalho é realizado pelos meteorologistas do 2o Distrito de
Meteorologia em Belém-PA (2o DISME). Neste trabalho
procurou-se identificar aspectos implícitos relacionados às
práticas do dia-a-dia dos indivíduos envolvidos no processo
principalmente no que se refere à colaboração. O objetivo final
deste estudo é a identificação de requisitos para uma ferramenta
de apoio ao trabalho de meteorologistas.
O 2o DISME controla um total de 29 estações climatológicas de
superfície, sendo 27 convencionais – que necessitam de um
operador – e 2 automáticas – nas quais a coleta e transmissão dos
dados meteorológicos ocorrem sem intervenção humana. Os
dados das estações climatológicas convencionais são enviados
para o NUTEL, que recebe os dados das observações e os repassa
para o SEPRE, responsável por elaborar a previsão do tempo
propriamente dita.
O restante do artigo está organizado como segue. A metodologia
adotada neste trabalho é descrita na seção 2. Nas seções 3 e 4, o
ambiente e o processo de previsão do tempo são descritos.
Sugestões de requisitos de softwares que consideram os aspectos
específicos do trabalho dos meteorologistas são apresentadas na
Seção 5. Finalmente, a Seção 6 conclui o artigo e apresenta
sugestões para trabalhos futuros.
Trabalham no 2º DISME um total de 96 pessoas, sendo 70
servidores, 5 estagiários e 21 funcionários terceirizados. Um total
de 47 pessoas trabalham nas estações climatológicas de superfície,
com uma média de 2 observadores por estação, que trabalham em
turnos. O NUTEL possui 7 funcionários que são escalados de
acordo com os três horários do dia destinados à recepção dos
dados. Somente um operador recebe os dados, sendo que o mesmo
operador pode trabalhar em mais de uma recepção no mesmo dia.
O Serviço de Previsão conta com 5 meteorologistas e 1 auxiliar
sendo que apenas um meteorologista é responsável pela
elaboração previsão do tempo de cada dia.
2. METODOLOGIA
O estudo etnográfico descrito neste artigo corresponde a um
estudo de campo que visa maximizar o realismo do contexto no
qual as evidências foram adquiridas [7]. Deste modo, para a coleta
de dados foram realizadas diversas visitas ao local de estudo para
observar as práticas e o fluxo de trabalho das pessoas envolvidas
no processo de previsão do tempo. As visitas iniciais foram
realizadas com o objetivo de adquirir um entendimento geral
sobre o processo de geração de previsões do tempo, desde a coleta
de dados até à previsão propriamente dita. Para isso, foram
conduzidas entrevistas semi-estruturadas e não estruturadas [8]
com os envolvidos no processo. Em seguida, partiu-se para a
etapa de observações [9], onde o fluxo de eventos foi registrado
em notas de campo. Os autores se alternaram nas observações nos
diversos setores que participam do processo de previsão. As
observações ocorreram durante um período de um mês, em um
total de 12 visitas ao local de trabalho dos meteorologistas do 2o
DISME e quatro visitas à duas estações climatológicas
controladas pelo 2o DISME. As visitas corresponderam a um total
de 52 horas de pesquisa de campo. Um total de dez entrevistas
foram realizadas distribuídas da seguinte forma: três observadores
alocados nas estações climatológicas de superfície das cidades de
Belém-PA e Itaituba-PA, dois operadores de telecomunicação
(NUTEL), quatro meteorologistas (SEPRE), e o meteorologista
coordenador do 2o DISME. Cada uma das entrevistas durou entre
45 e 60 minutos.
O NUTEL e o SEPRE estão localizados em salas distintas no 2º
DISME, conforme ilustrado na Figura 1. Geralmente só uma
pessoa trabalha no NUTEL. No SEPRE existe uma variação no
número de pessoas que habitam a sala. Normalmente encontra-se
o meteorologista responsável pela previsão daquele dia, um
auxiliar, e outro meteorologista responsável por outras tarefas não
relacionadas à previsão em si.
Análises e interpretações dos dados coletados (notas de campo e
entrevistas transcritas) para identificar aspectos importantes do
trabalho de previsão de tempo foram realizadas. Neste caso, o
principal objetivo era identificar mecanismos que poderiam ser
adotados de modo a facilitar o trabalho dos meteorologistas do 2o
DISME. Além disso, a análise também visou a identificação de
requisitos para um ambiente computacional de auxílio ao trabalho
dos meteorologistas. Uma vez que estes requisitos foram
identificados, novas entrevistas com os meteorologistas foram
conduzidas visando validá-los. Os meteorologistas do 2o DISME
confirmaram e/ou modificaram as sugestões propostas. Os
resultados descritos neste artigo são aqueles já validados pelos
meteorologistas.
Figura 1. Organização dos Setores de Previsão do Tempo do
2o DISME
4. O PROCESSO DE PREVISÃO DO
TEMPO
O estudo etnográfico realizado permitiu a identificação dos
diferentes componentes organizacionais (setores, núcleos, etc.)
2
colhidos estão à pressão atmosférica, umidade relativa do ar,
temperatura do ar, quantidade de chuva, temperatura do ponto de
orvalho, etc. Em seguida, os dados são analisados, transferidos
para uma carta e em seguida transmitidos para o NUTEL, via
telefone. O mesmo fluxo de trabalho ocorre em cada uma das 27
estações convencionais.
envolvidos no processo de elaboração da previsão do tempo. Após
esta identificação, o foco deste estudo visou o entendimento do
funcionamento interno de cada um destes componentes. A partir
de uma série de observações, foi elaborado o diagrama que reflete
o fluxo de informações que ocorre no 2º DISME, apresentado na
Figura 2.
Existem algumas regras que devem ser seguidas pelo observador
durante a coleta dos dados meteorológicos, com o objetivo de não
provocar perturbações nos dados coletados. Por exemplo, os
termômetros de máxima e de mínima devem ser lidos 10 minutos
antes do envio da mensagem para o NUTEL, sendo que a
transmissão da mensagem deve ser realizada exatamente na hora
cheia (termo utilizado pelos meteorologistas para indicar a hora
em ponto). Outros aparelhos observados incluem os termômetros
de bulbo seco e úmido, o hidrógrafo, o termógrafo, o
termidrografo, o pluviografo, o tanque de evaporação, o
heliógrafo e o anenografo.
Figura 2. Fluxo de Informações do 2º DISME
Outro procedimento executado pelo observador é a identificação
de nebulosidade. Um dos meteorologistas informou que para
descrever a nebulosidade ele divide mentalmente o céu em dez
partes e aplica uma série de heurísticas para determinar a
nebulosidade. Por exemplo, se sete das dez partes em que o céu
foi dividido apresentarem o mesmo tipo de nuvem, então apenas
será considerado aquele tipo, em detrimento dos outros tipos que
também podem ser observados. Um outro hábito específico
refere-se à verificação da visibilidade no momento da coleta dos
dados: um outro meteorologista informou que o cálculo da
visibilidade é feito observando-se a parte do horizonte que possui
a maior densidade de nuvens, e a partir da observação fixa para
esta parte do horizonte, estima a distância em metros até onde
existe uma boa visibilidade.
O processo de previsão acontece da seguinte forma: em três
horários distintos do dia (12:00 GMT, 18:00 GMT e 00:00 GMT,
respectivamente 09:00 hs, 15:00 hs e 21:00 hs, horário de
Brasília) os dados são transmitidos das estações climatológicas
através de telefone – no caso das estações climatológicas de
superfície convencionais – para o NUTEL (órgão centralizador
das informações em Belém-PA). Este órgão envia as informações
para Brasília-DF para a elaboração da previsão do tempo em
escala continental. Os dados também são analisados por
meteorologistas do Serviço de Previsão (SEPRE) para a
elaboração da previsão regional. As estações climatológicas de
superfície automáticas coletam e enviam seus dados
constantemente para Brasília e atualmente não são considerados
durante o processo de elaboração da previsão do tempo pelo 2°
DISME.
Tendo terminado a coleta dos dados, o observador se dirige até o
prédio da estação e efetua a transformação de alguns dados,
utilizando mapas, manuais, escalas e outras anotações em papel.
Um exemplo de uma transformação de dados realizada pelo
meteorologista da estação climatológica diz respeito a
representação da pressão atmosférica, a qual deve ser expressa em
relação ao nível do mar. Outra transformação realizada é em
relação à velocidade do vento: lida do anemômetro em
quilômetros por hora, mas expressa em nós (unidade de medida de
velocidade equivalente a uma milha marítima por hora) na carta.
As próximas subseções têm o objetivo de apresentar com uma
maior riqueza de detalhes cada etapa do processo de previsão do
tempo. Mais especificamente serão apresentados os esquemas de
funcionamento interno das estações climatológicas localizadas em
Belém e Itaituba (PA), do Núcleo de Telecomunicações (NUTEL)
e do Serviço de Previsão (SEPRE), os quais são apresentados na
Figura 2, bem como o fluxo de informações entre eles.
4.1. A Coleta de Informações Meteorológicas
Todas as transformações de dados realizadas têm por objetivo a
elaboração da mensagem Synop. A mensagem Synop, Surface
Synoptic Observation [10], é um código numérico utilizado para
reportar observações meteorológicas feitas por estações manuais
ou automáticas. Seu objetivo principal é facilitar a transmissão da
mensagem através de ondas curtas de rádio e o entendimento da
mensagem pelas pessoas que entendam o código. Como a
mensagem Synop constitui um formato internacional de
comunicação de dados meteorológicos, as unidades de medidas
utilizadas para representar a velocidade do vento, pressão
atmosférica, etc., devem ser as unidades de medidas padrão do
Sistema Internacional, tornando assim necessária a transformação
dos dados mencionada anteriormente.
O processo de elaboração da previsão meteorológica referente ao
período de 24 horas do próximo dia tem início com a coleta dos
dados em cada uma das estações climatológicas de superfície
espalhadas pelo Brasil.
As observações meteorológicas na estação climatológica de
superfície são realizadas diariamente, em três períodos diferentes:
às 12:00 GMT, às 18:00 GMT e às 00:00 GMT. Essas
observações são divididas, em um único dia, por até dois
observadores diferentes que trabalharão em horários diferentes.
Nos dias em que as observações são divididas entre dois
observadores, o observador que efetuará a observação das 12:00
GMT também realizará a observação das 00:00 GMT. Essa
divisão dos horários não é uma regra, mas permite que o
meteorologista que fez a primeira leitura de alguns aparelhos
possa ter uma visão mais nítida da tendência observada durante o
dia, quando o mesmo realizar a última leitura do dia.
Uma mensagem Synop consiste de grupos de números (ou barras
quando a informação não está disponível) descrevendo
informações gerais sobre as condições atmosféricas, tais como
temperatura, pressão barométrica e visibilidade na estação onde
foi realizada a leitura. A Tabela 1 a seguir apresenta a mensagem
O trabalho do observador na estação climatológica inicia com a
coleta dos dados meteorológicos nos aparelhos. Entre os dados
3
enviada da estação 82445 (localizada em Itaituba, Estado do Pará)
para o NUTEL em 08 de março de 2006, às 12:00 GMT.
Tabela 1. Exemplo de mensagem Synop
08124 82445 21596 80000 10244 20239
30094 40147 70365 8452/ 333 20234 59004
60074 555 60060
A mensagem Synop apresentada na Tabela 1 permite identificar
algumas peculiaridades da mensagem. O primeiro grupo de cinco
algarismos informa o dia em que a mensagem foi elaborada (08),
a hora a qual se refere a mensagem (12, de 12:00 GMT) e o
algarismo 4 é um algarismo fixo, para controle. O grupo de cinco
algarismos subseqüente é o identificador da estação climatológica
a qual se refere à mensagem. Os dois primeiros algarismos deste
grupo identificam o distrito ao qual a estação climatológica
pertence (2º DISME - 82). Os números que aparecem destacados
nos grupos subseqüentes ao identificador da estação
climatológica, na mensagem Synop, indicam um identificador de
grupo. Os grupos 333 e 555 são utilizados para denotar,
respectivamente, pausa e fim da mensagem iminente. O caractere
‘/’ presente na mensagem indica que a informação não está
disponível devido à ausência do aparelho necessário para fornecer
a informação.
Figura 3. Operador do NUTEL Atendendo o Observador de
uma Estação Climatológica.
Durante um período de 30 minutos, cada estação climatológica
liga para um dos telefones do NUTEL e transmite a mensagem
Synop a ser registrada no sistema. Ao todo, 27 estações
transmitem suas mensagens no período de meia hora. Cada
transmissão dura em média 45 segundos. Quando uma estação
liga para o NUTEL e o operador está ocupado com uma outra
transmissão, o operador atende ao telefone, porém o deixa de
lado, até que a transmissão da mensagem corrente seja finalizada,
conforme pode ser observado na Figura 3.
Os dados coletados de todas as estações climatológicas de
superfície do país, bem como de outras estações climatológicas de
superfície espalhadas ao redor do mundo, permitirão montar a
carta de superfície, um instrumento importante para o processo de
elaboração da previsão do tempo, conforme discutido
posteriormente no artigo.
O processo de transmissão da mensagem Synop utiliza o código Q
de comunicação [11], cuja função é simplificar, dar maior fluidez
e principalmente proporcionar um maior entendimento entre
operadores de radiocomunicação em qualquer idioma, sejam
utilizando a linguagem falada ou utilizando linguagem codificada
em Código Morse. No código Q, as frases que ocorrem
freqüentemente na comunicação entre duas pessoas são
substituídas por um conjunto de três letras, sempre iniciadas pela
letra Q. Alguns códigos utilizados na comunicação entre o
operador do NUTEL e o observador da estação climatológica
podem ser observados na Tabela 2.
A última etapa do processo de coleta de informações
meteorológicas consiste em repassar a mensagem Synop para o
NUTEL do DISME ao qual a estação está subordinada. Este
processo será descrito na próxima seção.
4.2. A Recepção dos Dados das Estações
Climatológicas
Cada DISME possui um NUTEL, o qual é responsável por
receber as mensagens Synop de todas as estações climatológicas
daquele distrito, submeter estas informações ao sistema
computacional INMET – Sistema Nacional de Informação HidroMeteorológica, e repassar um relatório contendo todas as
mensagens Synop coletadas para o SEPRE. O SEPRE é o setor
efetivamente responsável pela elaboração da previsão do tempo.
Tabela 2. Alguns códigos de Comunicação Utilizados.
O período de serviço no NUTEL acompanha o período de serviço
dos observadores nas estações climatológicas. Portanto, são
definidas três escalas de serviços no NUTEL: às 12:00 GMT, às
18:00 GMT e às 00:00 GMT. Ao final de cada escala, que tem
duração de 30 minutos, o operador realiza duas tarefas: enviar os
dados recebidos das estações climatológicas para o INMET e
imprimir um relatório contendo todas as mensagens recebidas
para repassar ao SEPRE.
Código
Mensagem
Código
Mensagem
QAP
Estou na Escuta
QRX
Aguarde
Pouco
QRA
Nome
QSL
Tudo Entendido
QRM
Ruído
Comunicação
na
QSM
Repita
a
Mensagem (RPT)
QRS
Transmitir
Devagar
mais
QTA
Cancele
Mensagem
Anterior
um
A primeira etapa de transmissão da mensagem Synop é a
identificação da cidade onde a estação se localiza. Em seguida, o
observador informa o código identificador da estação, o qual é
composto por cinco algarismos. Depois disso, o observador
informa ao operador os dados da mensagem Synop. A forma
como a mensagem é transmitida também possui um caráter
peculiar: os números correspondentes ao código da estação são
pronunciados como algarismos indo-arábicos; os números
Em cada uma das escalas, apenas uma pessoa trabalha
recepcionando os dados. O responsável na escala atual possui a
sua disposição um computador, dois telefones (um em cada lado),
papel, caneta e impressora, conforme ilustrado pela Figura 3.
4
para gerar a previsão do dia posterior. Com estes dados, o
meteorologista gera a previsão do tempo e a repassa aos órgãos
interessados, como a imprensa, por meio do telefone, e-mail,
boletins de informação meteorológica disponíveis na Internet.
correspondentes ao conteúdo da mensagem são transmitidos como
algarismos ordinais, exceto os números de controle, os quais são
transmitidos como algarismos indo-arábicos. A Tabela 3 ilustra a
conversa ocorrida entre o operador do Nutel e o meteorologista da
cidade de Itaituba-PA, durante a transmissão da mensagem Synop
apresentada na Tabela 1.
A partir do momento em que os dados oriundos do NUTEL
chegam ao SEPRE, eles são repassados para uma pessoa
encarregada de converter as mensagens Synop para um novo
formato. Este novo formato visa facilitar a leitura dos dados por
parte do meteorologista que irá elaborar a previsão do tempo. Os
dados são colocados em planilhas que são divididas de acordo
com o tipo de medida apropriada (temperatura, ventos,
precipitação, nebulosidade, e assim por diante) e agrupadas de
acordo com a região. Vale ressaltar que essa conversão é um
procedimento interno no SEPRE do 2º DISME, pois não possui
caráter oficial, constituindo-se em um instrumento adotado por
estes profissionais para facilitar a realização de seu trabalho. A
Figura 4 ilustra um exemplo desse artefato.
Tabela 3. Conversa enre o Meteorologista e o Operador do
Nutel Durante a Transmissão da Mensagem Synop
Meteorologista (M) - Itaituba.
Operador Nutel (OP) - Pode prosseguir.
(M) - Oito dois quatro quatro cinco
(M) - Segundo primeiro quinto nono sexto
(M) - Oitavo, zero dobrado, zero dobrado
(M) - Primeiro zero segundo quarto dobrado
(M) - Segundo zero segundo terceiro nono
(M) - Terceiro zero dobrado nono quarto
(M) - Quarto zero primeiro quarto sétimo
(M) - Sétimo zero terceiro sexto quinto
(M) - Oitavo quarto quinto segundo diagonal
(M) - Três três três
(M) - Segundo zero segundo terceiro quarto
(M) - Quinto nono zero dobrado quarto
(M) - Sexto zero dobrado sétimo quarto
(M) - Cinco cinco cinco
(M) - Sexto zero dobrado sexto zero
(M) - QSL ?
(OP) - Até mais tarde.
(M) - Até mais.
Os dados coletados pelas estações meteorológicas que chegam ao
SEPRE por meio do NUTEL são conhecidos como dados de
superfície (os quais podem ser obtidos na carta de superfície).
Além dos dados de superfície, existe um outro tipo de informação
que é utilizada na previsão, os dados de altitude (os quais podem
ser obtidos na carta de altitude). Dados de altitude são coletados
através de balões meteorológicos equipados com sensores e
representam medidas de precipitação, trovoadas e outras
informações da atmosfera que são relevantes para a previsão.
Outra ferramenta bastante utilizada pelo meteorologista é o
modelo meteorológico que pode ser de diversos tipos e conter
diferentes tipos de informações. Os modelos meteorológicos
permitem a visualização de informações referentes a diversas
variáveis como: precipitação, ventos, cobertura de nuvens,
temperatura, umidade relativa, etc. Os modelos procuram inferir o
comportamento dessas variáveis para as próximas horas e para os
próximos dias, desta forma eles são ferramentas de apoio à
geração da previsão do tempo. Um dos modelos mais utilizados é
o Modelo Brasileiro de Alta Resolução (MBAR) [8]. A Figura 5
ilustra o MBAR representando a variável precipitação.
A medida que a mensagem SYNOP é transmitida, ela é registrada
no sistema. O objetivo desse procedimento é enviar, ao fim da
escala, todas as mensagens recebidas para o INMET. Após o
envio de todas as mensagens ao INMET, um relatório contendo
todas as mensagens é impresso e enviado ao SEPRE para a
elaboração da previsão do tempo.
4.3. A Elaboração da Previsão do Tempo
A elaboração da previsão do tempo é a etapa final do processo e
consiste na análise e comparação dos dados recebidos para se
chegar a conclusões referentes às condições do tempo no dia
seguinte. A previsão do tempo utiliza dados coletados às 18:00
GMT do dia anterior, e 00:00 GMT e 12:00 GMT do dia atual
Figura 4. Dados Convertidos para Auxílio na Previsão do Tempo.
5
anteriormente, dos dados contidos nas cartas de altitude e da
visualização de diversos modelos meteorológicos e imagens de
satélite. Se houver qualquer diferença entre a previsão e as
condições reais no dia seguinte, a previsão do tempo deverá ser
retificada em um momento posterior.
A experiência do meteorologista influencia de maneira
significativa na previsão do tempo que ele elabora. Para ser mais
preciso, o conhecimento da região e de suas características em
diferentes períodos do ano contribui também para a geração da
previsão do tempo. Por exemplo, se o meteorologista sabe que a
região sob sua responsabilidade está num período do ano em que
são registrados altos índices pluviométricos, ele considerará alta a
probabilidade de que chova para essa região e apenas considerará
a redução da probabilidade caso os dados e modelos
meteorológicos mostrem uma forte tendência de mudança.
No SEPRE existem quatro computadores à disposição do
meteorologista e cada um pode estar exibindo ou não um modelo
meteorológico conforme ilustrado na Figura 7. As previsões são
cadastradas em um sistema que as enviará para um ponto central
em Brasília-DF. Finalmente, o meteorologista gera previsões
simplificadas para outros dias além do dia seguinte –
denominadas prognósticos – e os envia para órgãos interessados,
por exemplo a imprensa local.
Figura 5. MBAR Mostrando a Precipitação no Continente
Sul-Americano.
Imagens de satélite também são utilizadas pelos meteorologistas
em seu trabalho. Essas imagens apresentam dados gerados em
intervalos de tempo regulares e representam variáveis como nível
de vapor de água, temperatura das nuvens, calor, etc. A Figura 6
ilustra uma imagem de satélite que informa o nível de calor
emitido para o continente sul-americano.
Figura 7. Modelos a Disposição do Meteorologista da Escala.
Prognósticos podem ser de curto prazo (6 a 24 horas), médio (72 a
96 horas) e longo prazo (30 a 90 dias) e visam atender
necessidades específicas de organizações e da sociedade em geral.
Por exemplo, uma pessoa pode querer saber como estará o tempo
a curto prazo, para decidir se irá à praia ou não, ou mesmo para
decidir se um determinado evento será realizado ao ar livre ou
não; uma indústria de refrigerantes pode solicitar prognósticos de
temperatura para determinar se a produção de refrigerantes deve
ser aumentada ou reduzida para os próximos dias; também é
interessante para a companhia de energia elétrica saber onde
poderão ocorrer chuvas intensas, para que assim possa deixar suas
equipes de prontidão e acioná-las rapidamente em caso de algum
incidente ocasionado por chuvas ou raios. Os prognósticos
também são importantes para a agricultura, pois permitem ao
produtor tomar decisões em relações as culturas a serem
desenvolvidas de acordo com o volume de água esperado para a
região para os próximos meses.
Figura 6. Imagem de Satélite Mostrando a Energia Emitida
(Calor) no Continente Sul-Americano.
A principal diferença entre as imagens de satélite e os modelos é
que a imagem ilustra fenômenos que já aconteceram ou que estão
acontecendo no momento, enquanto que os modelos
meteorológicos são prognósticos para curto, médio e longo prazo.
Em resumo, o meteorologista emite seu parecer sobre o
comportamento das variáveis meteorológicas no dia seguinte a
partir de diversos dados: a partir dos dados coletados pelas
estações meteorológicas representadas nas planilhas descritas
6
A seguir, um exemplo de previsão do tempo é apresentado para a
cidade de Belém no dia 31 de julho de 2006.
conforme mencionado na seção 4.3, existe uma conversão dos
dados Synop vindos do NUTEL para um formato auxiliar que
servirá de entrada para o meteorologista produzir a previsão.
Esses dados são convertidos em uma planilha e agrupados de
acordo com a variável meteorológica e a região. Esta conversão é
útil em duas perspectivas diferentes:
Segunda, 31 de julho de 2006
CLARO A PARCIALMENTE NUBLADO PASSANDO A
NUBLADO.
•
Permite que os dados possam ser passados para os mapas que
deverão ser enviados para outros setores, o de controle de
qualidade e o de arquivamento de informações;
•
Permite que inconsistências nas mensagens Synop possam
ser verificadas. Um exemplo típico de inconsistência é a
temperatura máxima para o dia estar menor que a
temperatura mínima. Um outro exemplo de inconsistência é
referente à leitura realizada pelo meteorologista não ser
compatível com a série histórica ou com as características
climáticas da região – neste caso o meteorologista
responsável pela coleta será contatado para maiores
esclarecimentos. Por exemplo, a mensagem Synop recebida
de uma estação climatológica de superfície informa que
houve 12 mm de precipitação (chuva) na cidade. Entretanto o
meteorologista do SEPRE que analisou esses dados sabe que
na época do ano em que essa leitura foi realizada a
precipitação dificilmente alcança valores superiores a 6 mm
nessa mesma cidade, ou na região em que essa cidade se
encontra. Portanto, o meteorologista responsável pela leitura
do pluviografo será contatado para confirmar a informação.
Em alguns casos essas inconsistências podem ser indicativas
de fraude, isto é, o meteorologista faltou no serviço, e forjou
dados para enviar ao NUTEL, de modo que a ausência no
trabalho não fosse contabilizada. Como a transmissão dos
dados para o NUTEL é feita por telefone, não há nenhuma
garantia de que o meteorologista realmente esteve na estação
meteorológica para coletar os dados, salvo pela ausência de
erros e inconsistências na mensagem Synop.
TEMPERATURA: ESTÁVEL MAX.: 33°C MIN.: 23°C
VENTO DIREÇÃO: SE-E
INTENSIDADE: FRACOS
NASCER DO SOL: 06:18h - OCASO DO SOL: 18:21h
4.4. Observações Importantes
Observações empíricas realizadas pelos próprios meteorologistas
do 2º DISME sugerem que, entre outros, o maior índice de acertos
na previsão do tempo ocorre quando o mesmo meteorologista
trabalha durante vários dias seguidos. O fato de o meteorologista,
ao estar envolvido por um maior tempo na previsão do tempo,
estar ciente de todas as tendências climatológicas durante aquele
período, contribui para o aumento da probabilidade de acertos,
uma vez que o meteorologista da escala passa a estar ciente das
últimas tendências climáticas.
As práticas utilizadas pelos meteorologistas para minimizar os
efeitos da mudança do meteorologista na escala são o chamado
“briefing” e a observação do trabalho do colega pelo próximo
meteorologista da escala. O briefing é uma conversa entre o
próximo meteorologista da escala e o meteorologista que estava
trabalhando anteriormente sobre como o tempo se comportou até
o momento da troca de serviço. A observação do trabalho do
meteorologista da escala atual pelo próximo meteorologista da
escala é realizada de maneira informal, durante as conversas que
ocorrem no SEPRE. Esta observação não é uma atividade
exclusiva, uma vez que cada meteorologista pertencente ao
SEPRE sempre está desempenhando outras atividades no SEPRE.
Para observar o trabalho do colega, o meteorologista fica sentado
próximo ao auxiliar de meteorologista, conforme disposição
apresentada na Figura 1, prestando atenção nos comentários que o
meteorologista da escala faz a respeito do seu trabalho, ao mesmo
tempo em que conversam informalmente. De maneira análoga, um
comportamento típico do meteorologista que está responsável pela
previsão do tempo na escala atual é narrar o seu trabalho. Isto é, a
medida que a previsão do tempo está sendo elaborada, seus
cálculos e observações vão sendo pronunciados em voz baixa.
Isso permite que o meteorologista da próxima escala possa
acompanhar as tendências climáticas que vão se configurando na
região durante o período de trabalho do colega, sem entretanto
que ele tenha que se concentrar explicitamente neste
acompanhamento. Em alguns momentos o meteorologista da
escala chama explicitamente a atenção dos colegas para algum
evento atípico observado, como por exemplo, um alto índice
pluviométrico em uma determinada cidade.
A partir dessas observações pode-se constatar a importância das
conversões manuais realizadas pelos meteorologistas e, portanto,
sugere-se cautela no processo automático de conversões de dados
meteorológicos. Um software que facilite o trabalho destes
profissionais deve permitir a automação de certas conversões
(como por exemplo para a geração da mensagem Synop), mas ao
mesmo tempo, ele precisa ser flexível para não interromper as
convenções existentes no trabalho dos mesmos [12]. A simples
possibilidade de tornar uma conversão manual em automática não
implica na adoção desta medida, deve-se considerar que esta
conversão permite a detecção de erros, portanto, caso ela seja feita
de maneira automática, novos mecanismos de detecção devem ser
adotados.
5.2. A Experiência dos Meteorologistas
Este mesmo sistema computacional deve fornecer flexibilidade ao
meteorologista para que o mesmo possa utilizar a sua experiência
a respeito do comportamento climático da região. Segundo o
depoimento de um meteorologista:
5. REQUISITOS COMPUTACIONAIS
“Experiência e conhecimento do comportamento da região são
fatores determinantes para a previsão”.
5.1. Automação de Conversões
Por exemplo, apesar de o céu estar claro e ensolarado, a previsão
do tempo para o resto do dia não necessariamente será sol, pois
qualquer meteorologista que trabalhe em Belém, sabe que na
época do inverno a probabilidade de ocorrência de chuva pelo
período vespertino é extremamente alta.
O fluxo de dados entre os setores e núcleos que compõem o 2º
DISME é em sua maior parte efetuado através de documentos. A
importância da troca de dados utilizando esse meio é a de facilitar
a verificação de erros ou inconsistências nos dados. Por exemplo,
7
O conhecimento sobre a região é utilizado pelos meteorologistas
na identificação de inconsistências nos dados: um meteorologista
entrará em contato com um colega para verificar a precipitação
informada de uma cidade em um período somente se ele tiver
conhecimento sobre a precipitação média daquela cidade. Se esta
experiência for limitada ou inexistente, mecanismos de auxílio
devem ser previstos no sistema computacional.
Manaus-AM), são adquiridas apenas através do sistema central de
Brasília-DF. Isto é, não existe nenhum canal permanente de
comunicação entre os meteorologistas do SEPRE de Belém e do
SEPRE de Manaus, exceto através de e-mails. A troca de
informações entre estes distritos é mediada por Brasília.
Entretanto, é importante considerar que uma maior troca de
informações entre os meteorologistas do SEPRE do 2o DISME
com os meteorologistas do SEPRE do 1o DISME seria
extremamente benéfica: ambas as regiões, a Amazônia Oriental e
a Amazônia Ocidental influenciam significativamente as
condições climáticas uma da outra. Atualmente, existe apenas
uma videoconferência com hora marcada entre todos os
meteorologistas do Brasil, para a discussão do comportamento do
tempo no país, mas essa prática requer que os meteorologistas
deixem suas atividades para se dirigir a uma sala específica
durante algumas horas. Os meteorologistas do SEPRE que foram
consultados concordaram que um canal de comunicação
permanente entre os distritos seria uma ferramenta interessante
para auxiliar na interação entre os meteorologistas do Brasil
inteiro e que provavelmente permitiria uma melhoria na
produtividade.
5.3. Coordenação Informal
Durante a realização das atividades do processo de elaboração da
previsão do tempo é comum a existência de conversas informais
sobre assuntos diversos. Por exemplo, na recepção dos dados das
estações, vez ou outra o operador conversa com o observador
acerca de outros assuntos não relacionados à transmissão
propriamente dita. No entanto, essas conversas podem abordar
outros aspectos importantes do trabalho como o estado de tarefas
pendentes, solicitação de algum recurso, documento, ou mesmo
apenas para contribuir na criação de um senso de comunidade que
por sua vez estimula a cooperação. Em outras palavras, as
conversas informais podem auxiliar a coordenação das atividades.
Desta forma, sistemas colaborativos como “media spaces”,
ambientes colaborativos virtuais e salas de bate papo poderiam ser
usados para facilitar a comunicação informal entre
meteorologistas.
Além dos meteorologistas do SEPRE, os meteorologistas que
trabalham nas diversas estações climatológicas espalhadas pelo
estado também consideraram importante a existência de um canal
de comunicação com meteorologistas de outras estações
climatológicas. Isto permitiria a troca de informações que
pudessem ajudar na medição das condições meteorológicas. A
principal queixa feita por um dos informantes consultados é que
essa comunicação existe apenas com o NUTEL de Belém e é
oficialmente restrita à transmissão da mensagem Synop.
5.4. “Awareness”
Um sistema computacional para dar suporte ao trabalho dos
meteorologistas também precisa fornecer facilidades para que os
meteorologistas da escala atual tenham ciência do trabalho do
meteorologista que trabalhou na escala anterior. Para ser mais
específico, esta situação ilustra claramente o conceito de
percepção (em inglês awareness), largamente abordado na área de
CSCW [13]: o meteorologista da próxima escala monitora o
trabalho do meteorologista da escala atual, ao mesmo tempo em
que o segundo informa ou sugere detalhes relevantes dos dados
coletados para o primeiro. Esta situação é basicamente similar
àquela identificada no trabalho seminal de Heath e Luff [2]
quando estudando controladores de trafego aéreo. Deve-se
observar que no caso dos meteorologistas, entretanto, o
monitoramento e a apresentação de informações relevantes não
precisa ser feita em tempo real, como entre os controladores.
Suporte tecnológico para esta característica do trabalho dos
meteorologistas poderia ser obtido através do registro e/ou
anotação de informações relevantes pelo profissional da escala de
maneira não-intrusiva para informar ao próximo profissional
escalado. O aspecto importante neste caso é o aspecto nãointrusivo da tecnologia para permitir que esta solução seja
adotada. Em outras palavras, se o sistema computacional a ser
implantado requerer um alto esforço do profissional da escala para
indicar aspectos importantes para o colega, este sistema estará
fadado ao fracasso [14].
Em resumo, um sistema
meteorologistas deve:
para
apoiar
o
trabalho
dos
•
Oferecer facilidades para a conversão de informações
meteorológicas;
•
Permitir que o meteorologista use sua experiência para
auxiliar o processo de previsão;
•
Facilitar a comunicação informal;
•
Registrar informações sobre o trabalho anterior dos
diversos meteorologistas;
•
Permitir maior integração com outros distritos; e
•
Oferecer melhor
climatológicas.
comunicação
entre as estações
6. CONSIDERAÇÕES FINAIS E
TRABALHOS FUTUROS
Na área de CSCW estudos etnográficos são especialmente
importantes para auxiliar a identificação de requisitos de
aplicações para suporte ao trabalho em grupo. Simplificadamente,
estes estudos permitem que certas características do trabalho
possam ser identificadas assim como a motivação e importância
destas características seja compreendida. Este entendimento
permite identificar que características do trabalho podem e devem
(ou não) ser automatizadas, ou ainda, ele sugere aspectos do
sistema que devem ser mantidos flexíveis para que não
atrapalhem as convenções já adotadas pelos profissionais [12].
5.5. Suporte Explicito a Colaboração
Conforme mencionado na seção 4, os meteorologistas do SEPRE
adquirem os dados a respeito da região sob seu domínio
administrativo a partir dos relatórios enviados pelo próprio
NUTEL. Em contraste, as informações são necessárias para o
trabalho do meteorologista do SEPRE referentes a outras regiões
(como por exemplo, informações meteorológicas provenientes das
estações climatológicas da Amazônia Ocidental, as quais estão
sob o domínio administrativo do 1o DISME, cuja sede é em
A contribuição deste artigo é a apresentação de um estudo
etnográfico visando o desenvolvimento de sistemas colaborativos
para apoiar o trabalho de meteorologistas durante a elaboração de
8
[5] R. Harper. Inside the IMF: Academic Press., 1998.
previsões do tempo. As principais características do trabalho
destes profissionais foram identificadas e traduzidas em requisitos
para um sistema computacional. Em particular deve-se ressaltar o
interesse destes profissionais em colaborar com seus colegas
remotos. Desta forma, no momento estamos avaliando sistemas
colaborativos que poderiam ser implantados para facilitar a
comunicação informal entre estes profissionais.
[6] E. M. Gerson and S. L. Star. Analyzing Due Process in the
Workplace. ACM Transactions on Office Information
Systems, vol. 4, pp. 257-270, 1986.
[7] J. E. McGrath. Methodology Matters: Doing Research in the
Behavioral and Social Sciences, 1994.
7. AGRADECIMENTOS
[8] G. McCracken. The Long Interview: SAGE Publications,
1988.
Nossos agradecimentos aos meteorologistas do 2º Distrito de
Meteorologia – Belém, Pará, pelo apoio dado durante a condução
do estudo etnográfico apresentado neste artigo.
[9] D. L. Jorgensen. Participant Observation: A Methodology
for Human Studies. Thousand Oaks: SAGE publications,
1989.
[10] SYNOP Format (FM-12).
8. REFERÊNCIAS
[11] Código Fonético Internacional, Wikipedia.
[1] L. Suchman. Plans and situated actions: the problem of
human-machine communication. Cambridge: Cambridge
University Press, 1987.
[12] G. Mark. Conventions and Commitments in Distributed
Groups. Computer-Supported Cooperative Work, vol. 11, pp.
349-387, 2002.
[2] C. Heath and P. Luff. Collaboration and Control: Crisis
Management and Multimedia Technology in London
Underground Control Rooms. Computer Supported
Cooperative Work, vol. 1, pp. 69-94, 1992.
[13] K. Schmidt. The Problem with 'Awareness' - Introductory
Remarks on 'Awareness in CSCW'. Journal of Computer
Supported Cooperative Work, vol. 11, pp. 285-298, 2002.
[14] J. Grudin. Why CSCW applications fail: Problems in the
design and evaluation of organizational interfaces. ACM
Conference on Computer-Supported Cooperative Work,
Portland, Oregon, United States, 1988.
[3] R. Bentley, J. Hughes, D. Randall, T. Rodden, P. Sawyer, D.
Shapiro, and I. Sommerville. Ethnographically-informed
systems design for air traffic control. ACM Conference on
Computer Supported Cooperative Work. Toronto, Ontario,
Canada, 1992.
[4] R. Grinter. Supporting Articulation Work Using
Configuration Management Systems. Computer Supported
Cooperative Work, vol. 5, pp. 447-465, 1996.
9
Método Colaborativo de Observação: Entendendo
coletivamente os ambientes complexos
Renata Guanaes Machado, Marcos Roberto da Silva Borges, José Orlando Gomes
Programa de Pós Graduação em Informática - IM & NCE
Universidade Federal do Rio de Janeiro
Rio de Janeiro, RJ, Brasil
[email protected], {mborges, joseorlando}@nce.ufrj.br
RESUMO
Keywords
Os métodos tradicionais de desenvolvimento de sistemas se
baseiam na realização de questionários e entrevistas com usuários
para a análise da situação atual que precede o levantamento de
requisitos. Neste artigo, é feita uma reflexão crítica sobre estes
métodos, e são apresentadas alternativas complementares que
visem reduzir suas deficiências. Estas alternativas se referem à
proposição de um Modelo Conceitual de Observação para a
realização sistemática e estruturada de estudos naturalísticos sobre
uma organização qualquer, e à elaboração de um sistema
colaborativo que apóie este modelo. Este último possui o objetivo
principal de auxiliar a coordenação de atividades de observação
em grupo, a colaboração, interação e comunicação entre os
integrantes durante as atividades de captura e análise, e a
elaboração coletiva de artefatos que retratem os resultados desta
observação em campo.
cognitive systems, collaboration, ethnography, groupware.
1. INTRODUÇÃO
Em geral, os processos de desenvolvimento de sistemas [25, 28]
iniciam-se com a análise da situação atual da organização, onde as
pessoas relatam os problemas e explicitam as suas necessidades
através de técnicas de questionários e entrevistas [12]. Em
seguida, os analistas, com base nestas informações, geram os
requisitos de usuário e de sistema. Entretanto, ocorrem retrabalhos
nas fases subseqüentes destes processos, pois os requisitos estão
falhos, incompletos e ambíguos [3, 10], e ainda, o sistema
implementado pode não atender eficazmente às expectativas dos
usuários [1].
Uma possível alternativa que complemente estes atuais métodos,
para reduzir os problemas de qualidade das informações obtidas, é
a utilização de conceitos ligados à Engenharia Cognitiva e
Etnografia na atividade de análise da situação atual da
organização. O enfoque principal é observar as atividades sendo
executadas no próprio contexto organizacional, inclusive
verificando-se os aspectos cognitivos, sociais e colaborativos
embutidos nestas atividades, difíceis de serem explicitados nas
entrevistas.
ABSTRACT
Traditional methods of system development have been grounded
on user’s interviews and questionnaires, in order to get a broad
picture of the actual work environment, just before the formal
requirements elicitation task. In this article, we are pondering over
these methods in a critical and reflexive way, so as to recommend
complementary approaches that could minimize their faults.
These approaches are related to the proposition of a new
“Observation Conceptual Model” that allows systematic and
organized field studies about any kind of organization, including
the elaboration of a collaborative system that support this
conceptual model. This collaborative system has the main purpose
of facilitating the coordination of observation activities in group,
as well as enhancing the collaboration, interaction and
communication tasks among the participants during information
gathering and analyzing phases, and empowering the collective
elaboration of artifacts that delineate the results of field
observations.
Este artigo apresenta a proposição de um arcabouço conceitual de
análise, denominado de "Modelo Conceitual de Observação". Este
modelo, de natureza sistemática e multidisciplinar, orienta a
observação, captura e análise das informações, durante a fase de
levantamento da situação atual de uma organização, de forma
mais estruturada, completa e produtiva.
Além disso, é apresentada uma ferramenta computacional de
apoio a este modelo, já que a observação deve ser realizada em
equipes, principalmente no caso de atividades organizacionais
complexas e distribuídas. Com isto, é possível a coordenação de
atividades de observação em grupo, a colaboração e comunicação
entre os integrantes, e a elaboração coletiva de artefatos, que
retratem os resultados desta observação em campo, e que levem à
formulação de possíveis requisitos computacionais.
Palavras chave
sistemas cognitivos, colaboração, etnografia, groupware.
Este artigo está estruturado em diferentes seções. A Seção 2
aborda resumidamente alguns métodos de análise da situação
atual. Em seguida, na Seção 3 é apresentada a proposta deste
artigo, que trata da elaboração de um método de observação
coletiva que conta com o apoio de um groupware. A Seção 4 cita
a metodologia de pesquisa pretendida. Finalmente, a Seção 5
resume as principais conclusões e contribuições esperadas deste
trabalho.
20 a 22 de Novembro de 2006
Natal, RN, Brasil
© Sociedade Brasileira de Computação
Comissão Especial de Sistemas
Colaborativos
Anais do III Simpósio Brasileiro de Sistemas Colaborativos, pp. 10-18.
10
de ações e decisões [27], embora a cognição seja cada vez mais
predominante.
2. REVISÃO SOBRE AS ATUAIS BASES
TEÓRICAS
As abordagens cognitivas capturam e analisam uma diversidade
de tópicos, como processos mentais ou de raciocínio, percepção,
interpretação, memória e tomada de decisão, que se encontram
nas atividades de planejamento, execução, elaboração de
diagnósticos e resolução de problemas. Os aspectos sociais, tais
como relacionamentos, colaboração, cooperação e comunicação
são também considerados importantes aspectos cognitivos [21],
inclusive o contexto, que influencia a cognição e performance
humana [31].
Esta seção detalha as fraquezas das técnicas de entrevistas e
questionários, apresenta os principais conceitos das metodologias
de Engenharia Cognitiva, e discute as principais características da
Etnografia. Ao longo da seção, são relatados exemplos de estudos
de caso e ferramentas computacionais de apoio à observação. Ao
final da seção, é apresentado um quadro resumo destas
abordagens.
2.1 Deficiências das Abordagens Tradicionais
Nas técnicas de questionários e entrevistas, as pessoas não relatam
por completo todas as suas atividades, seja por falta de tempo, por
esquecimento, ou mesmo por julgarem alguns detalhes
irrelevantes.
Em virtude da possibilidade de se investigar as diversas variáveis
de cognição, a literatura apresenta uma abrangente coleção de
modelos conceituais e métodos para a captura, análise e avaliação
de dados coletados durante uma investigação, cada qual para uma
determinada finalidade. A seleção de quais métodos empregar
depende dos objetivos do estudo e de quais aspectos cognitivos
que são mais relevantes. Além disso, há um rico relato de
aplicação destes por meio de estudos de caso em campo [16].
Além disso, as pessoas podem não se dar conta ou terem
dificuldades em expressar corretamente as suas habilidades,
práticas e conhecimentos, relacionadas com as suas atividades,
que sejam de natureza altamente tácita e intuitiva. Estas
informações são difíceis de serem levantadas pelos analistas
durante as entrevistas com os usuários.
São discutidos a seguir dois métodos cognitivos, pois a partir
destes é proposta a alternativa complementar de se analisar
situação atual de um ambiente de trabalho.
Por outro lado, mesmo quando as atividades são descritas em um
maior detalhamento, é possível que os analistas e usuários tenham
diferentes entendimentos e interpretações [32], devido aos seus
distintos modelos mentais [29].
2.2.1 Análise do Trabalho Cognitivo (Cognitive
Work Analysis, CWA)
Essa metodologia se apresenta como uma abordagem genérica e
holística para análise e investigação de ambientes de trabalho e
das suas respectivas adaptações frente às complexidades [9], a fim
de gerar requerimentos de sistemas computacionais.
E ainda, muitos analistas não levantam e descrevem os
mecanismos cognitivos presentes nas próprias atividades, como
por exemplo, as maneiras que as pessoas colaboram ou
comunicam entre si, resolvem problemas ou tomam decisões em
grupo, principalmente em situações críticas e imprevisíveis,
difíceis de serem antecipadas. Essas informações são importantes
pois, ao entender como ocorrem essas interações para a realização
de uma atividade, pode-se sugerir e projetar requisitos que apóiem
essas atividades colaborativas.
De acordo com a Figura 1, a metodologia se apresenta em
diferentes níveis de abstração. Estes níveis de abstração diferem
do paradigma de "dividir para conquistar", pois não se quebra o
problema em diferentes partes, mas analisa-se a organização em
diferentes perspectivas: o atual ambiental de trabalho,
organizacional, domínio, atividade e individual (Análise usuários
e Análise ergonômica). Níveis mais baixos são influenciados
pelas características dos níveis mais altos.
Em organizações complexas e de grande porte, é normal que se
estabeleça uma divisão de tarefas de análise entre os analistas, o
que possibilita a ocorrência de divergências ou diferentes pontos
de vista sobre as informações coletadas pela equipe. Como
conseqüência, são necessários esforços adicionais para
confirmação, conciliação e validação dos dados capturados,
muitas vezes voltando-se novamente aos usuários.
Análise do
Domínio
Análise da Atividade
situação da tarefa
meios e fins
Atual
ambiente do
trabalho
Em resumo, as deficiências relatadas não permitem que sejam
captadas as descrições completas e reais das atividades
executadas e de seus mecanismos de cognição e colaboração.
Portanto, torna-se difícil a compreensão dos problemas existentes,
das dificuldades enfrentadas pelas pessoas durante a realização
dessas atividades e das suas efetivas necessidades de
informatização e automação, seja completa ou parcial.
domínio
tom ada de
decisão
estratégias
mentais
Análise
organizacional
divisão do trabalho e
organização social
Análise
usuários
2.2 Valorização das Abordagens Cognitivas
Fatores como o crescente uso da tecnologia de informação,
aumento da automação e a especialização do trabalho, resultam na
atual caracterização das organizações como complexas, dinâmicas
e distribuídas, e no reconhecimento e aumento das tarefas ditas
cognitivas.
Recursos e
Valores do
Ator
Análise
ergonômica
Capacidade de
percepção-ação
Figura 1: Dimensões de Análise (Adaptado de [9])
Por exemplo, no nível ambiental, pode-se analisar as variáveis
externas à organização, como regulamentações; no nível
organizacional, o estilo de gestão e cultura organizacional
existente; no nível de domínio são verificados os objetivos e os
recursos humanos e tecnológicos disponíveis para a execução
Desta forma, a execução de atividades organizacionais, sejam
operacionais ou gerenciais, não envolve somente aspectos físicos
ou cognitivos, e sim ambos [4], sendo possível a simultaneidade
11
são transformados sistematicamente
informações e interfaces.
destes; enquanto que no nível da atividade é realizado o estudo
mais detalhado da interação humana -informação, tais como
estratégias e métodos para a execução das tarefas e decisões.
para
requisitos
de
A metodologia é segmentada em 5 etapas, conforme a Figura 2,
iniciando-se com a representação formal do domínio em uma
Rede de Abstração Funcional [26], semelhante a um modelo
mental de um especialista. Esta rede explicita os objetivos a serem
alcançados e os meios funcionais disponíveis para os mesmos.
Estes níveis não são obrigatórios e fixos, mas escolhidos e
definidos conforme o escopo da investigação. Nestes níveis, o
foco não é a identificação e descrição de variáveis situacionais
que afetam a interação humana -informação no nível mais baixo,
mas sim a descoberta e reflexão dos fatores que delimitam,
formam e influenciam esta interação.
Este domínio, uma vez implementado em um sistema, faz com
que este apresenta as informações necessárias, já filtradas e
tratadas, ao invés de disponibilizar dados que seriam ainda
interpretados e processados pelos usuários. Desta forma, o sistema
intuitivamente se adapta aos seus processos cognitivos,
complementando e apoiando a tomada de decisão humana.
Com isso, avalia-se o sistema sócio-técnico atual no ambiente de
trabalho, para que em seguida sejam geradas recomendações para
novos projetos de sistemas, conforme o contexto estudado. Esta
abordagem difere do típico ciclo de engenharia de software, onde
o sistema é concebido, modificado e testado diversas vezes até
que seja aceito pelo usuário na fase de homologação.
3. Requisitos de Informação /
Relacionamentos:
Definindo o conteúdo necessário para
a efetiva tomada de decisão
Além disso, trata-se de uma abordagem centrada no trabalho e na
atividade. As pessoas que interagem com sistema sócio-técnico
são denominadas de atores envolvidos em suas ações relacionadas
com o trabalho, e não simplesmente como usuários de sistemas. a
Consideram-se certos atributos destes como típicos e
característicos, sendo possível a formulação de um estereótipo.
A abordagem possui enfoque formativo, ao invés de descritivo ou
normativo. Para a execução de uma tarefa, o enfoque descritivo
cita o procedimento mais comum; o normativo constitui o melhor
modo conforme critérios pré-estabelecidos; enquanto que o
formativo apresenta alternativas viáveis, que serão escolhidas
conforme o contexto da situação e perfil de um usuário.
2. Requisitos do Trabalho
Cognitivo:
Identificando as demandas
cognitivas
Desta forma, se for utilizado o enfoque descritivo ou normativo
para a análise da atividade, percebe-se que os sistemas projetados
não serão capazes de apoiar a adaptação humana às situações
inesperadas ou não antecipadas pelos desenvolvedores. Ou seja,
não basta somente descrever as atividades, é preciso predizer o
comportamento humano sob diversas circunstâncias, para
disponibilizar estas alternativas no sistema.
4. Requisitos do
Projeto de
Representação:
Definindo
relacionamentos entre
os requisitos e conceitos
de visualização
5. Conceitos do Projeto
de Apresentação:
Tornando o problema
transparente
1. Rede de Abstração Funcional:
Modelando os mais críticos
relacionamentos do domínio
Figura 2: Processo de Análise (Adaptado de [8])
Desta rede parte-se para as demais etapas, representadas na Figura
2. Na segunda etapa, derivam-se os requisitos de cognição que
caracterizam as atividades de reconhecimento, raciocínio e
decisão para resolução de problemas. Em seguida, na terceira
etapa, são identificadas as informações necessárias para a
resolução de cada requisito de cognição. Finalmente, nas
próximas duas etapas, são definidos os requisitos de projeto, ou
seja, como estas informações devem ser representadas e
implementadas em um sistema de informação.
Como um exemplo da aplicação prática desta metodologia, podese citar a melhora de sistemas de controle de processo térmicohidráulico [15], por meio da análise das dimensões do domínio e
da atividade que levaram aos requisitos de interfaces e de
automação de ações e decisões.
Entretanto, esta metodologia requer a realização de intensivos
estudos em campo e atuação de especialistas; não apresenta
qualquer mecanismo de auxílio à sua execução e prática, seja na
forma de guias, seja através de ferramentas computacionais de
apoio. E o mais importante, não apresenta um processo
sistemático e estruturado para se transformar os resultados da
análise em requisitos formais de sistemas
Como um exemplo da aplicação prática desta metodologia, podese citar a análise do ambiente de trabalho de investigadores
militares, que resultaram na elaboração de um protótipo
computacional, com interfaces inteligentes e intuitivas [23]. O
objetivo deste é apoiar as operações de identificação de possíveis
ataques terroristas, antecipadamente, a fim de garantir a segurança
nacional.
2.2.2 Análise Aplicada do Trabalho Cognitivo
(Applied Cognitive Work Analysis, ACWA)
Trata-se de uma metodologia sistemática e iterativa, com o
objetivo principal de se levantar os requisitos para sistemas de
apoio à decisão [8]. Desta forma, foca-se nas dimensões de
domínio e atividade, pois são as mais relevantes para apoiar a
tomada de decisão.
Entretanto, esta metodologia não especifica como realizar a
elicitação dos conhecimentos do domínio e os estudos em campo,
bem como não utiliza ferramentas computacionais de apoio à
execução da mesma.
Propõe um processo estruturado, que se inicia com a análise do
domínio e finaliza com a geração de uma especificação funcional
para a equipe de desenvolvimento, onde os resultados da análise
2.3 Importância da Abordagem Etnográfica
A abordagem etnográfica é uma metodologia oriunda da
Antropologia Social, onde se procura entender e descrever uma
12
nação, povo ou cultura, até então desconhecida, por meio da
observação natural. Nestes estudos, inclui-se a investigação e
análise dos comportamentos, rituais, técnicas, saberes e práticas
pertencentes a essas culturas. É o caso de missionários que
procuraram entender os povos indígenas para em seguida educálos e catequizá-los, por exemplo.
Diálogos em
andamento
Diálogos
finalizados
Categoria de
Diálogos/
Atores
A etnografia pode ser realizada de diferentes formas além da
observação em campo propriamente dita, como a execução de
variados tipos de experimentos controlados e simulações; uso de
protocolos verbais; uso de equipamentos de áudio, vídeo e
fotografias; participação ativa; e as mais variadas categorias de
entrevistas, como estruturadas e não estruturadas.
Figura 3: Categorização das interações no RATE [13]
Suchman [30] foi a primeira pesquisadora a propor a realização da
abordagem etnográfica em projetos de tecnologias e sistemas,
levando-se em consideração os aspectos sociais e contexto de uso.
Em seguida, muitos outros pesquisadores a adotaram para estudo
e análise dos mais variados domínios de atividades, como controle
de tráfego aéreo, metrô e usinas nucleares, ambiente de
escritórios, entre muitos outros.
Sua utilização é possível em quaisquer domínios, pois a aplicação
é flexível e configurável. Desta forma, esta ferramenta pode ser
adaptada para propósitos de informar requisitos de sistemas de
informação.
Entretanto, a etnografia em geral se apresenta como uma
metodologia não sistemática e cara, pois demanda um longo
tempo de captura e a presença de vários observadores ou
especialistas. Além disso, apresenta os resultados da investigação
no formato discursivo, descritivo e textual, que não atende aos
adjetivos de formalismo e objetividade requeridos pelos
desenvolvedores de sistemas [18].
Desta forma, a adoção da Etnografia é uma alternativa viável de
se informar requisitos de sistemas [17], mais especificamente,
sistemas interativos e de apoio ao trabalho em grupo.
Os analistas observam as atividades sendo executadas no contexto
específico, o que possibilita: a descoberta dos aspectos sociais,
cognitivos e colaborativos, a percepção de como ocorre a
interação com os artefatos existentes, e autêntica identificação das
dificuldades e adaptações das pessoas frente aos problemas.
Como um esforço de organizar e ressaltar os dados mais
relevantes para as equipes envolvidas, cada qual interessada em
certos atributos do ambiente de trabalho, foi criada a ferramenta
computacional Designer´s Notepad [18]. Em resumo, os dados
são apresentados em hipertexto, ocasionando uma navegação
focada no que é considerado importante e possibilitando a
abstração das informações necessárias.
Uma outra potencial contribuição é a melhora da comunicação
entre os usuários e a equipe de analistas e desenvolvedores, já que
a atuação em campo e o maior contato permitem o acesso à
cultura, ao modo real do trabalho das pessoas e ao entendimento
da perspectiva e de seus pontos de vista.
A ferramenta possui como principais elementos: componentes
gráficos, referências cruzadas e notas de texto. Estes elementos,
em conjunto, permitem que o material etnográfico seja
estruturado em diferentes formas de representação e perspectivas,
como por exemplo, apresentando o processo de trabalho formal
ou layout físico de um local de trabalho, conforme a Figura 4. As
referências cruzadas indicam vínculos de entidades para outros
desenhos, e notas de texto são narrativas textuais complementares.
Notas acrescentadas a uma pessoa podem representar transcrições
de entrevistas ou relato de suas reais atividades e ações.
De acordo com os resultados de uma pesquisa [6], as ferramentas
de observação direta, como gravador, vídeo e câmeras digitais,
são amplamente utilizadas em campo, com percentual de uso de
85% a 98%. A utilização de softwares de apoio chega a 50%,
embora focados na observação de fatores fisiológicos e
ambientais, tais como postura e nível de iluminação. Estes
softwares não tratam dos aspectos cognitivos, sendo um
indicativo da contribuição potencial da proposta deste artigo, que
é a elaboração de ferramenta computacional de apoio à discussão
e análise, em grupo, dos fatos observados e registrados.
O software RATE (Remote Analysis of Team Environment) é um
exemplo do uso conjunto de sistemas e equipamentos de áudio e
vídeo como apoio à observação remota de equipes de médicos e
enfermeiras, durante as cirurgias, com o objetivo de analisar e
avaliar os seus aspectos comportamentais e de performance [13].
As imagens de vídeo, uma vez capturadas, são categorizadas,
classificadas e analisadas, durante a própria observação, conforme
a Figura 3. A categorização é feita conforme o tipo de atividade
ou interação ocorrida, como por exemplo, é uma “solicitação de
informação” ou trata-se de “comunicação de um problema”. Já a
classificação se baseia na qualidade da atividade, se realizada com
sucesso ou se com a ocorrência de um erro, por exemplo.
Figura 4. Perspectivas de Visualização da Etnografia
13
Tabela 1. Visão Geral das Abordagens de Análise da Situação Atual
Abordagem
Entrevistas e
Questionários
Análise do
Trabalho
Cognitivo
Análise
Aplicada do
Trabalho
Cognitivo
Etnografia
Principais Características
Reuniões entre analistas e
usuários para levantar problemas
e necessidades.
Análise de ambientes de trabalho
através de níveis de abstração e
enfoque formativo.
Análise do domínio e da atividade
para especificação do processo de
tomada de decisão humana.
Observação natural dos ambientes
de trabalho.
Vantagens
Métodos simples, diretos, rápidos e fáceis
de serem executados.
Abordagem flexível; descoberta dos
fatores que delimitam e influenciam a
interação humana - informação.
Apresenta processo estruturado desde
análise do domínio até requisitos de
sistemas; orienta como gerar artefatos em
cada etapa do processo.
Descoberta dos aspectos sociais,
cognitivos e colaborativos; informações
coletadas são autênticas.
Desvantagens
Informações falhas, incompletas e
ambíguas; Aspectos cognitivos e
sociais não capturados.
Requer intensos estudos em campo;
ausência de apoio e processo para
geração de requisitos de sistemas.
Não especifica como elicitar o
domínio; não orienta como realizar
os estudos em campo.
Técnica não sistemática, de longa
duração e cara; exige vários
observadores; formato textual.
Porém, não são mencionadas as atividades de coordenação e
comunicação entre os observadores durante a etnografia, ou seja,
de que forma estes chegaram aos resultados.
CWA [9], bem como tem um processo de transformação destas
dimensões para a geração de artefatos e requisitos, criado e
adaptado a partir da metodologia ACWA [8].
Por outro lado, a fim de atender às demandas limitadas de tempo e
recursos, foram propostas diferentes abordagens etnográficas para
informar requisitos de sistemas [17], além da etnografia ágil [22].
Esta agiliza a observação através de delimitação do foco; seleção
de pessoas chave; múltiplas observações ou observações
interativas; e uso de métodos analíticos colaborativos, como
elaboração de mapas conceituais e contagem de histórias. O
objetivo não é a definição completa do domínio, mas somente a
identificação dos aspectos de sociabilidade no ambiente de
trabalho, e de que forma estes afetam a eficiência das tarefas.
A partir das Dimensões de Análise, o modelo especifica "o que
observar" e "como observar". O termo "o que observar" se refere
às variáveis do ambiente de trabalho que devem ser capturadas em
campo, principalmente aquelas relacionadas com os aspectos de
cognição. Já o termo "como observar" menciona as formas
possíveis de coletar e registrar as observações, que podem ser
através do uso de equipamentos de áudio e vídeo, múltiplos
observadores no próprio local, cada qual com apoio de artefatos
tecnológicos ou não, como notas em campo, padrões de
observação e computadores portáteis. Os padrões de observação
são formulários prontos onde os observadores checam, verificam
e registram anotações, sendo uma opção mais eficiente à
transcrição manual de eventos ou ações.
3. PROPOSTA DE TRABALHO
São apresentados, nas seções anteriores, breves relatos
explicativos, incluindo estudos de caso e exemplos de
ferramentas, sobre metodologias cognitivas e técnicas
etnográficas, todas predominantemente focadas no objetivo
principal de se levantar requisitos de sistemas.
Múltiplos observadores podem ser utilizados de forma que cada
analista investiga uma diferente perspectiva, ou então, que mais
de um analista capture as mesmas variáveis.
Nem todas as dimensões serão utilizadas em uma etnografia. Com
isso, a decisão de quais dimensões aplicar depende do escopo e da
finalidade da análise, que por si geram diferentes tipos de
artefatos. Por exemplo, no caso de salas de controle de usinas
nucleares, o escopo pode ser a análise de uma atividade
específica, como o controle dos rejeitos nucleares, com a
finalidade de se avaliar a interação dos operadores com as
interfaces representativas dos processos de separação e tratamento
dos rejeitos. Neste caso, uma dimensão de análise relevante é
aquela em que se verificam os mecanismos de percepção: como
operadores detectam um problema e se as interfaces apresentam
informações corretas; ou de tomada de decisão: em que condições
estes seguem procedimentos formais ou recorrem às experiências
anteriores para resolver problemas críticos e imprevisíveis.
Com isso, o objetivo desta seção é mostrar a utilização de um
conjunto de conceitos dos métodos apresentados, acrescentandose demais idéias da área de trabalho colaborativo [2, 19], para a
proposição de uma alternativa complementar para a execução da
atividade de análise da situação atual.
Enfatiza-se que a proposta de trabalho busca a
complementaridade dos atuais métodos de entrevistas e
questionários, e não a sua substituição por esta.
3.1 Modelo Conceitual de Observação
Como forma de superar os problemas de falha, incompleteza e
ambigüidade das informações obtidas em entrevistas e
questionários, a proposta deste trabalho se baseia na elaboração
do arcabouço teórico denominado de “Modelo Conceitual de
Observação”.
Além disso, voltando-se na Figura 5, a partir dos registros destas
observações, armazenados nas bases de informação, o modelo
também descreve "como analisar", direcionando os esforços do
grupo para a elaboração coletiva de levantamentos preliminares,
diagnósticos, ou demais artefatos, de tais ambientes observados,
por meio de processos colaborativos de exposição de idéias,
argumentação, reflexão e negociação de possíveis divergências ou
conflitos de informações.
Este modelo tem a função geral de apoiar a etnografia em grupo,
auxiliando e orientando os analistas a observar, descrever e
analisar certos ambientes de trabalho, de natureza complexa e
distribuída, de forma colaborativa, estruturada e sistemática.
Conforme a Figura 5, este modelo é composto de várias
dimensões de análise, criadas e adaptadas a partir da metodologia
14
vistas ou perspectivas, em interfaces computacionais. A
navegação entre as interfaces permite o acesso às informações
mais relevantes para um determinado usuário, bem como indica a
rastreabilidade dos artefatos gerados para os requisitos de
informação ou de automação.
Sempre que possível ou necessário, pode-se voltar ao campo para
um contínuo refinamento, confirmação das coletas de dados
iniciais ou para maior aprofundamento de variáveis de análise.
Desta forma, a atividade de observação pode ocorrer em todas as
fases de desenvolvimento de um sistema, e não deve limitar-se
somente à etapa de captura ou levantamento inicial.
As diferentes perspectivas, mencionadas na ferramenta Designer´s
Notepad [18] como formas de representação dos resultados da
observação, são adaptadas e consideradas como produtos gerados
da análise colaborativa do grupo de analistas. Cada Dimensão de
Análise gera um determinado artefato. Por exemplo, os analistas
utilizam a dimensão do domínio da organização para a
elaboração, em grupo, da perspectiva denominada de "Modelo
Mental do Domínio".
Com isso, o grupo de analistas tem a percepção tanto da criação
como da evolução dos artefatos, de forma a discutir, validar e
complementar com demais informações. A grande diferença,
deste modelo para os métodos de entrevistas, é que os analistas
terão acesso às informações, coletadas por outros, durante a
elaboração das mesmas, e não quando estas estiverem já
finalizadas em documentos completos.
Nota-se, na Figura 5, que ambas as atividades de "como analisar"
e "como gerar artefatos" contam com o apoio de uma ferramenta
computacional de apoio ao trabalho cooperativo, ou groupware
[19]. Com isso, de forma a propiciar a colaboração, participação e
análise coletiva, o modelo tem também a descrição de possíveis
papéis e responsabilidades para cada analista do grupo de
observadores, que são detalhados na seção seguinte deste artigo,
que trata das principais funcionalidades da ferramenta.
O papel do Processo de Análise é orientar a criação de sucessivos
artefatos, ou seja, quais documentos devem ser produzidos até a
geração dos requisitos. Os processos colaborativos, mencionados
anteriormente, ocorrem repetidamente para cada etapa do
Processo de Análise.
Finalmente, ainda se referindo à Figura 5, após o término das
atividades colaborativas de análise, o modelo apresenta opções de
"como gerar artefatos". Este termo se refere à apresentação das
informações coletadas e analisadas pelo grupo, sob diferentes
Dois importantes pressupostos são seguidos neste modelo de
Processo de Análise
(ACWA)
Dimensões de Análise
(CWA)
Processos Cognitivos
Tomada de Decisão
Colaboração
Comunicação
O QUE observar
ModeloConceitual
Conceitualde
deObservação
Observação
Modelo
COMO analisar
COMO
observar
Observadores
Ambiente de Trabalho
Padrões de
Observação
Exposição de idéias
Argumentação
Reflexão
Negociação
GROUPWARE
Equipamentos
de video
Apoio
tecnológico
ETNOGRAFIA
Bases de Informação
Figura 5. Premissas do Modelo de Observação
15
COMO gerar artefatos
observação. O primeiro é a participação das pessoas da própria
organização, ou seja, do ambiente analisado, que estão sendo
observadas, a fim de que estas possam discutir e validar as
interpretações sobre as atividades, bem como compartilhar demais
conhecimentos ainda não explicitados. Os analistas podem ser os
mais experientes observadores, mas somente as pessoas da
organização contêm os conhecimentos vitais das suas próprias
atividades, sendo sua participação de extrema importância na
análise da situação atual.
destes realizarem tarefas repetitivas. [5]. A gestão das tarefas e a
negociação de conflitos são primordiais para que sejam obtidos o
planejamento eficiente da atividade de observação, o equilíbrio
nos diferentes pontos de vista e o consenso coletivo.
O segundo é que a atividade de análise da situação atual ocorrerá
em organizações que já possuam algum nível de informatização,
ou seja, sistemas já implementados mas que necessitam de
melhorias ou de total substituição por novos sistemas. Com isso,
as atuais atividades executadas não irão sofrer alterações radicais.
Caso contrário, poderá ser desnecessário esse levantamento da
análise da situação atual no ciclo de desenvolvimento de um novo
sistema, já que este mudaria todo o processo de trabalho.
O perfil de administrador tem a permissão de implementar novas
técnicas e ferramentas de análise em uma base de métodos, como
os padrões de observação mencionados anteriormente. A
ferramenta deve ser flexível e configurável, de forma a permitir a
adaptação e alteração destes métodos conforme o ambiente a ser
analisado.
Como forma de permitir tal mecanismo de coordenação na
ferramenta, são criados diferentes perfis de usuários, como por
exemplo: administrador, moderador, editor e usuário, entre outros.
A ferramenta permite a criação de demais tipos de usuários, se
necessário.
O perfil de moderador, semelhante a um gerente de projeto e
adequado para uma pessoa responsável pelo grupo de analistas,
tem vários objetivos: estabelecer as dimensões de análise,
escolher as técnicas e ferramentas de observação disponíveis na
base de métodos, definir as tarefas e os papéis de cada analista,
propor prazos para a geração de artefatos, conduzir a dinâmica
das interações, determinar discussões, gerenciar conflitos de
idéias, formar votações, entre outras inúmeras ações.
3.2 Ferramenta Computacional de Apoio ao
Modelo Conceitual
Com o aumento da complexidade das tarefas organizacionais, que
resulta na especialização do trabalho, torna-se mais clara a
evidência de que as pessoas não trabalham sozinhas, e sim em
equipes de trabalho multidisciplinares, e ainda, dispersas
geograficamente [20]. Desta forma, além da necessidade de se
observar estas equipes, a própria atividade de observação deve ser
realizada por um grupo de analistas.
Ainda para o perfil de moderador, a ferramenta apresenta um
resumo das interações do grupo, como os artefatos inicialmente
criados por cada membro, a quantidade de alterações e a
quantidade de contribuições por artefato, as tarefas cumpridas ou
atrasadas conforme os prazos estipulados, entre outras
informações. Com isto, é possível ao moderador identificar o
andamento geral da análise, cobrar pelas tarefas atrasadas,
motivar aqueles que não contribuíram, além de demais atividades
de monitoramento e controle.
Com isso, a criação de uma ferramenta de apoio ao trabalho em
grupo, denominada de groupware [19], possibilita uma maior
eficiência na execução do método de observação, que já se
pressupõe ser de natureza coletiva. O foco é o uso do computador
não como meio de solução de problemas, mas como meio de
facilitar as interações humanas [7]. Desta forma, a ferramenta,
tem a meta estratégica de minimizar as dificuldades existentes nas
atividades em grupo que são realizadas face-a-face, bem como de
otimizar custos, caso as observações sejam desempenhadas de
forma distribuída, ou a análise destas sejam feitas por pessoas de
diferentes locais.
O perfil de editor tem a responsabilidade de criar uma versão final
de um artefato após a execução de uma análise colaborativa pelo
grupo de analistas.
Ao perfil de usuário, recomendado para aqueles que serão
observados, é permitida a leitura dos artefatos em andamento,
postagem de avaliações e comentários.
Além dessa meta, os principais objetivos da ferramenta são: gerar
um ambiente de trabalho colaborativo, e mesmo de aprendizagem,
já que haverá compartilhamento de conhecimentos e experiências;
possibilitar a coordenação de atividades de observação em grupo;
fomentar a colaboração e comunicação entre os integrantes; e
apoiar a elaboração coletiva de artefatos que retratem os
resultados desta observação em campo.
Em comum, todos os perfis têm a permissão de propor, defender
ou contestar conceitos ou idéias, além de revisar e validar
artefatos finalizados pelo perfil de editor.
Na medida do possível, a ferramenta tem a tarefa de inserir os
dados de contexto para cada artefato, como por exemplo: o nome
do usuário, ações ou alterações realizadas no artefato, data e hora
da sua contribuição. Com isso, é possível o acompanhamento da
criação e evolução coletiva do artefato pelos analistas, sendo
fundamental que cada um receba o retorno dos outros sobre o seu
próprio trabalho ou contribuição individual [11].
A fim de possibilitar a criação de um ambiente colaborativo, cada
novo usuário na ferramenta terá a possibilidade de colocar uma
descrição de seu perfil, como o cadastro de dados pessoais, a sua
formação acadêmica, experiências em projetos e conhecimentos
nos campos da engenharia de software, ergonomia, engenharia
cognitiva e etnografia, por exemplo. O objetivo do detalhamento
deste perfil é propiciar um ambiente de equipe, camaradagem e
confiança uns nos outros [24].
Percepção é o conhecimento a respeito das ações e interações de
outros membros em um espaço compartilhado de trabalho [14]. A
ferramenta implementa a percepção no ambiente de trabalho
colaborativo, de forma a informar as pessoas que estão logadas;
os artefatos que estas estão trabalhando no momento, bem como
as suas atuais tarefas e atribuições; os novos comentários em
cores diferentes para aqueles usuários que ainda não os
visualizaram, entre outras. Com isso, a ferramenta representa
mecanismos de se notar como anda a atividade do grupo,
Já a coordenação de atividades é essencial para que se possa
planejar as tarefas individuais de cada analista para a efetiva
observação, e verificar posteriormente o registro de dados e a
análise dos resultados desta observação. Sem esta coordenação, há
o risco de ocorrerem conflitos e divergências sobre o
levantamento da situação atual por diferentes analistas, bem como
16
que sejam de natureza mais adaptativa e complementar às
capacitações humanas.
atentando-se para evitar a distração dos usuários individuais com
estas representações.
Com relação aos estímulos à comunicação, primordiais para um
trabalho colaborativo, a ferramenta permite a adaptação do tempo
e espaço do grupo de analistas, de forma a admitir a colaboração
síncrona e assíncrona, bem como remota e distribuída, dos seus
membros. São implementadas diversas facilidades de
comunicação do grupo, como e-mails, fóruns de discussão, chat e
quadro de avisos.
5. CONCLUSÃO
Frente à necessidade de se analisar ambientes de trabalho que
cada vez mais se apresentam como complexos, dinâmicos e
distribuídos, ou ainda, compostos de inúmeras variáveis, nós
acreditamos que as abordagens cognitivas e etnográficas possam
trazer importantes resultados, na forma de requisitos mais
completos e menos ambíguos, que serão úteis para os futuros
projetos de sistemas.
Em resumo, a ferramenta implementa efetivamente os
mecanismos de cooperação, colaboração, comunicação e
percepção, características próprias de sistemas de groupware [19].
E ainda, esta ferramenta, uma vez alinhada com o Modelo
Conceitual de Observação, apóia a geração, coordenação,
negociação e compartilhamento dos conhecimentos resultantes da
tarefa de observação de um ambiente de trabalho.
Além disso, a tarefa de observação, uma vez realizada por um
grupo de analistas com diferentes papéis e responsabilidades,
incluindo a participação das pessoas sendo observadas, ocasiona a
geração colaborativa de artefatos, que representem o conjunto de
contribuições e idéias de diferentes observadores e demais
integrantes.
O produto, resultado da aplicação do método e do uso da
ferramenta, é um conjunto de informações gerado a partir de
conhecimentos, idéias e percepções de um grupo formado pelos
analistas e pelas pessoas da organização, servindo de entrada para
o início da proposição de um novo sistema.
Para isso, este trabalho de pesquisa se baseia na proposição de um
método colaborativo apoiado por uma ferramenta computacional,
de forma a especificar como coordenar e realizar a observação em
equipe, bem como proporcionando o fomento à colaboração e à
comunicação durante a atividade de captura e análise.
4. METODOLOGIA DE PESQUISA
Este trabalho traz uma contribuição para o atual campo de
pesquisa, pois conforme observado na literatura, a observação,
apoiada por ferramentas ou não, embora procure analisar as
atividades e a performance de equipes de trabalho, não se
apresenta como uma atividade colaborativa dos próprios
observadores.
Após a elaboração dos produtos deste trabalho, ou seja, do
modelo conceitual e da ferramenta computacional, ambos serão
testados e avaliados em estudos de caso.
O objetivo principal destes estudos é a comprovação da
aplicabilidade desta alternativa de análise da situação atual, isto é,
se esta efetiva a geração completa e menos ambíguas de requisitos
de sistemas, além da verificação da eficácia do próprio trabalho
em grupo, por meio da ferramenta que implementa os conceitos
de groupware.
Até o momento da escrita deste artigo, estamos atualmente em
processo de elaboração, detalhamento e refinamento do modelo,
para que em seguida possamos criar um protótipo computacional
e testá-lo em estudos de campo.
Nós estamos delimitando a elaboração do modelo conceitual e da
ferramenta para aplicação em ambientes de trabalho onde existe a
interação de pessoas com interfaces computacionais de
monitoramento, comando e controle. Exemplos deste ambiente
são: salas de controle de processos industriais, usinas nucleares,
controle de tráfego aéreo, e até mesmo ambientes onde se
monitoram o andamento de ações na bolsa de valores.
6. REFERÊNCIAS
[1] Ackoff, R.L. Management Mis-Information Systems.
Management Science, 14, 1967.
[2] Bannon, L.J., and Schmidt, K. Four characters in search of a
context. In: Bowers, J. M., and Benford, S. D. (Eds.), Studies
in Computer Supported Cooperative Work: Theory, Practice
and Design. Amsterdan, North Holland, 1991.
As salas de controle são caracterizadas por uma variedade de
interfaces, painéis, comandos, controles, sensores e alarmes, além
de soluções tecnológicas e de engenharia. As ações dos
operadores nestes ambientes são normalmente baseadas em
procedimentos operacionais previamente estabelecidos e planos
de segurança. Entretanto, acidentes acontecem devido às falhas
humanas decorrentes de sistemas inadequados, como Three Miles
Island, nos EUA, e Chernobyl, na Ucrânia.
[3] Blaschek, J.R. Gerência de Requisitos, o principal problema
dos projetos de software. Rio de Janeiro, 2003. Disponível
em http://www.bfpug.com.br/isligrio/Downloads/Ger%C3%AAncia%20de%20Requisitoso%20Principal%20Problema%20dos%20Projetos%20de%20
SW.pdf. Acesso em Junho 2006.
[4] Clark, A. Being there: Putting brain, body and world
together again. MIT Press, London, 1997.
O uso de etnografia nestes ambientes se justifica pela necessidade
de se levantar e investigar os meios pelos quais as pessoas
colaboram entre si e se adaptam a situações críticas e imprevistas,
onde os procedimentos não existem, são ineficientes ou
parcialmente aplicados. Estes eventos são de natureza tácita e
emergente, ou seja, não são conhecidos previamente, não são
registrados e são dificilmente reportados em entrevistas.
[5] Cruz, A. J. A. da, Raposo, A. B., e Magalhães, L.P.
Coordination in Collaborative Environments -A Global
Approach. In: Proceedings of the 7th International
Conference on CSCWD 2002. Rio de Janeiro, 2002, 25-30.
[6] Dempsey, P.G., McGorry, R.W., and Maynard, W.S. A
survey of tools and methods used by certified professional
ergonomists. Applied Ergonomics, 36, 4 (July 2005), 489503.
Com isso, nós acreditamos que essa nova alternativa de análise
trará importantes conhecimentos que serão aplicados para a
construção de novos sistemas ou melhora de sistemas existentes,
17
[7] Ellis, C.A., Gibbs, S.J., and Rein, G.L. Groupware: some
issues and experiences. Communications of the ACM, 34, 1,
January 1991, 38-58.
[19] Khoshafian, S., and Buckiewicz, M. Introduction to
Groupware, Workflow, and Workgroup Computing. John
Wiley and Sons, 1995.
[8] Elm, W.C., Potter, S.S., Gualtieri, J.W., Roth, E.M., and
Easter, J.R. Applied cognitive work analysis: a pragmatic
methodology for designing revolutionary cognitive
affordances. In: Hollnagel, E. (Ed.), Handbook for Cognitive
Task Design. Lawrence Erlbaum Associates, London, 2003,
357-382.
[20] Koch, M, and Koch, J. Using component technology for
group editors -The Iris Group Environment". In: Proceedings
of ECSCW'97, OOGP,Workshop, 1997.
[9] Fidel, R., and Pejtersen, A.M. From information behavior
research to the design of information systems: the Cognitive
Work Analysis framework. Information Research, 10, 1
(October, 2004), paper 210. [Available at
http://InformationR.net/ir/10-1/paper210.html]
[22] Millen, D.R. Rapid ethnography: time deepening strategies
for HCI field research. In: Proceedings of the conference on
Designing interactive systems: processes, practices,
methods, and techniques, NY, August 2000, 280-286.
[21] MacLeod, I.S. Real-world effectiveness of Ergonomic
methods. Applied Ergonomics, 34, 5 (September 2003),
465477.
[23] Pfautz, J., and Roth, E. Using cognitive engineering for
systems design and evaluation: A visualization aid for
stability and support operations. International Journal of
Industrial Ergonomics, 36, 5 (May 2006), 389-407.
[10] Freitas, D.P. Ampliando a colaboração no levantamento de
requisitos de sistemas. Dissertação (Mestrado em
Informática). Universidade Federal do Rio de Janeiro, Rio de
Janeiro, 2006.
[24] Pinheiro, M.K., Lima, J.V., e Borges, M.R.S. A framework
for awareness suport in groupware systems. Computers in
Industry, 52, 1, 2003, 47-57.
[11] Fucks, H., and Assis, R. Facilitating perception on virtual
learning based environments. Journal of Systems and
Information Technologies, Vol. 5, no. 1, Edith Cowan
University, 2001, 93-113.
[25] Pressman, R.S. Software Engineering: a practitioner's
approach. 5th ed. McGraw-Hill, New York, 2000.
[12] Goguen, J.A., and Linde, C. Techniques for requirements
elicitation. In: IEEE International Symposium on
Requirements Engineering, 1, San Diego, 1993, 152-164.
[26] Rasmussen, J. Information processing and human-machine
interaction: an approach to cognitive engineering. Elsevier
Science, New York, 1986.
[13] Guerlain, S., Shin, T., Guo, H., Adams, R., and Calland, J.F.
The RATE tool: multimedia observation and analysis of
teams. In: Proceedings of the 46th Annual Meeting of the
Human Factors and Ergonomics Society, Santa Monica,
CA:HFES, 755.
[27] Singleton, W.T. Man-machine systems. Harmondsworth,
Penguin, 1974.
[28] Sommerville, I. Software Engineering. 5th ed. AddisonWesley, 1996.
[14] Gutwin, C., Roseman, M., and Greenberg, S. A usability
study of awareness widgets in a shared workspace groupware
system. In: Proceedings of CSCW'96, Boston,
Massachusetts, November 1996.
[29] Souza, C.S. de, Leite, J.C., Prates, R.O., Barbosa, S.D.J.
Projeto de Interfaces de Usuário: Perspectivas Cognitivas e
Semióticas. Anais da Jornada de Atualização em
Informática, XIX Congresso da Sociedade Brasileira de
Computação, Rio de Janeiro, 1999. Disponível em
http://www.dimap.ufrn.br/~jair/piu/JAI_Apostila.pdf. Acesso
em Junho 2006.
[15] Hajdukiewicz, J.R., and Vicente, K.J. A theoretical note on
the relationship between work domain analysis and task
analysis. Theor. Issues in Ergon. Sci., 5, 6 (December 2004),
527-538.
[16] Hollnagel, E. Handbook for Cognitive Task Design.
Lawrence Erlbaum Associates, London, 2003.
[30] Suchman, L. Plans and situated actions:the problem of
human-machine communication.Cambridge University Press,
Cambridge, 1987.
[17] Hughes, J.A., King, V., Rodden, T., and Andersen, H.
Moving out from the control room: ethnography in system
design. In: Proceedings of the 1994 ACM conference on
Computer supported cooperative work, Chapel Hill, North
Carolina (October 1994), 429-439.
[31] Wilson, J.R., Jackson, S., and Nichols, S. Cognitive Work
Investigation and Design in Practice: The influence of social
context and social work artefacts. In: Hollnagell, E. (Ed.),
Handbook of Cognitive Task Design. Lawrence Erlbaum
Associates, London, 2003, 83-98.
[18] Hughes, J.A., O'Brien, J., Rodden, T., and Rouncefield, M.
Ethnography, Communication and Support for Design.
Technical Report Ref. CSEG/24/1997, Lancaster University,
Lancaster, UK, 1997. [Available at
http://www.comp.lancs.ac.uk/computing/research/cseg/97_re
p.html]
.
[32] Winograd, T., and F. Flores. Understanding Computers and
Cognition. Ablex Publishing, Norwood, NJ, 1986
18
A Process for User Interaction Analysis in Collaborative
Environments
Sandra de A. Siebra
Centro de Informática – UFPE,
Caixa Postal 7851, Cidade
Universitária,
CEP 50732-970 Recife – PE –
Brasil
(55-81) 21018430
[email protected]
Ana Carolina Salgado
Centro de Informática – UFPE,
Caixa Postal 7851, Cidade
Universitária,
CEP 50732-970 Recife – PE –
Brasil
(55-81) 21018430
[email protected]
RESUMO
As interações que ocorrem em Ambientes de Aprendizagem
Colaborativa (AAC) são um dos mais importantes aspectos
visíveis da colaboração. A análise dessas interações pode dar
suporte aos processos de reflexão e auto-avaliação dos
estudantes, assim como às atividades dos professores. Neste
cenário, esse artigo apresenta um processo para análise de
interações que primeiro estrutura as interações, levando em
conta o contexto onde elas estão ocorrendo. Posteriormente, ele
armazena as interações em uma estrutura multidimensional e,
finalmente, usa consultas OLAP para explorar e analisar as
informações armazenadas sob diferentes perspectivas
(dimensões), de acordo com as necessidades dos usuários. O
principal objetivo desse processo é prover feedback imediato de
qualidade para estudantes e professores. Esse artigo também
apresenta uma implementação de parte desse processo e alguns
resultados iniciais dos testes realizados com o mesmo. Os
resultados iniciais se mostraram promissores.
ABSTRACT
Interactions taking place in Computer-Supported Collaborative
Learning Environments (CSCLE) are one of the most important
visible aspects of collaboration. The analysis of these
interactions can provide support for students’ reflection and
self-regulation processes and for teachers’ activities. In this
light, this paper presents a process for interaction analysis that
first structures the interactions, taking into account the context
where the interactions are occurring. After that, it stores the
interactions in a multidimensional structure and, finally, uses
OLAP queries to explore and analyse the stored information
from different perspectives (dimensions), according to the user
needs. The main goal of this process is provide good quality
just-in-time feedback for both students and teachers. This
20 a 22 de Novembro de 2006
Natal, RN, Brasil
© Sociedade Brasileira de Computação
Comissão Especial de Sistemas
Colaborativos
Patrícia A. Tedesco
Centro de Informática – UFPE,
Caixa Postal 7851, Cidade
Universitária,
CEP 50732-970 Recife – PE –
Brasil
(55-81) 21018430
[email protected]
paper also presents an implementation of part of this process
and some first results of the tests. The initial tests have
indicated promising results.
Palavras-Chave
Análise de Interações, Aprendizagem Colaborativa, Contexto,
CSCL
Keywords
Interaction Analysis, Collaborative Learning, Context, CSCL
1
INTRODUCTION
Collaboration is the co-construction of knowledge with the
mutual engagement of participants [31]. Collaborative Learning
is a strategy in which small teams, each with students of
different levels of ability, use a variety of learning activities to
improve their understanding of a subject. As Vygotsky [49]
pointed out, in a collaborative scenario, students interchange
their ideas for coordinating when they work for reaching
common goals. When the learners work in groups they reflect
upon their ideas (and those of their colleagues), explain their
opinions, consider and discuss those of others, and as a result,
they learn. Thus, each learner acquires individual knowledge
from the collaborative interaction.
In general, CSCLE (Computer Supported Collaborative
Learning Environments) can offer greater opportunities to share
and solicit knowledge through the interaction. In most
situations,
externalization,
articulation,
argumentation,
negotiation of multiple perspectives, are considered to be the
main mechanisms that can promote collaborative learning
[4][35][46][47]. In this light, interactions taking place in
CSCLE are one of the most important visible aspect of
collaboration and the analysis of these interactions could
provide information to teachers (so that they are able to follow
the evolution of students in the short, medium and long terms)
and to students so that they can improve their knowledge and
reflect about it.
However, the evaluation, organisation, storage and
management of information related to the interactions that
occur in CSCLE are complex tasks. Furthermore, in order to
understand the meaning of the user interactions it is important
to discover and register the context where each interaction
Anais do III Simpósio Brasileiro de Sistemas Colaborativos, pp. 19-28.
19
generic or limited (for example, only some quantitative values).
In other words even though the environments offer resources
(e.g. communications tools and simple reports), these are often
not enough for learners and teachers to work together in
improving the learning process.
occurred [8]. Context is a collection of relevant conditions and
surrounding influences that make a situation unique and
comprehensive [7]. Thus, to fully understand many
interactions, actions or events, it is necessary to access relevant
contextual information [1][7][40]. For example, understanding
why a student is finding it difficult to complete a task or to
answer a question depends on what his/her knowledge level is,
whether his/her workgroup is good or bad, what is the difficulty
level of the task or question. In the interaction analysis the
more details the system can provide about user’s interactions,
the better support it can give to teachers and students in the
reflection process and to complete their activities based on
historical informations.
The support for teachers and students could be provided by
using information that can be acquired through the evaluation
and diagnosis of interactions that occur among students and/or
students and teacher. Analysing the interactions will allow
teachers, for example, to: (1) find out both the most difficult
and most interesting subjects for a specific student or group of
students; (2) follow the students’ evolution, finding the quicker
learners in each subject, so that they can be used as peer tutors
for students having difficulties; (3) detect apathetic students
who need to be motivated. Moreover, a mechanism to evaluate
the interactions could help the users to reflect on, to discuss
about a specific theme and to collaborate with other users in the
environment.
Although context is a relevant aspect in the learning process, to
the best of our knowledge, there are no CSCLE explicitly using
the concept of context in their development or during the
process of interaction analysis. Moreover, many CSCLEs do
not store the interactions in a repository so that the stored
interactions can be easily explored, can be viewed from
different perspectives and could be presented selectively,
according to users' needs. The current means of interaction
storage (e.g. log files) can make difficult the interaction
analytical analysis.
The lack of a mechanism to evaluate the interactions could
make it more difficult for users to focus their discussion on a
specific topic or collaborating among themselves.
3
In this state of affairs, this paper discusses the benefit of
interaction analysis, shows some related works and presents a
process for user interaction analysis in CSCLE with some
implementation issues. In order to do that, the remainder of
this document is structured as follows: Section 2 discusses the
benefits of interaction analysis. Section 3 presents some
proposals for interaction analysis. Section 4 presents our
process for interaction analysis. Section 5 shows some
implementation issues and our first results and, finally, section
6 presents our conclusions and further works.
2
RELATED WORKS
Interaction Analysis has been acknowledged as a key issue in
Collaborative Learning research [15], as a means for supporting
student self-regulation as well as formative evaluation
processes [33]. There are several proposals of tools for both
approaches: [23][48] are examples of the first, whereas [3][32]
exemplify the latter. Some authors state that these two
approaches rely on the same basic functions [23][25], and that
information obtained by teacher with an evaluation tool, for
example, can be presented to students to achieve, promote selfregulation [2].
Usually, systems perform interaction analysis by applying
methods from Artificial Intelligence that compare the results
with an ideal case, and produce messages to guide students
[13][45]. Alternatively, researchers also do an off-line analysis
of the interaction in order to understand the collaborative
processes [19][47].
BENEFITS OF INTERACTION
ANALYSIS
Despite the fact that recent information and communication
technologies have favoured the appearance of several CSCLE,
such environments still suffer from student’s lack of motivation
and high rates of evasion. Students need feedback and guidance
from the system to learn effectively in groups [43][50].
Moreover, they need some tool that supports them in the
reflection, self-regulation and self-evaluation process.
Other related line of research is the work on Collaborative
Learning Ontologies (e.g. [21]) that construct an ontology to
represent CSCL sessions. The ontology will work as a
vocabulary to describe the session and provide design patterns
referred to during the instructional design process. In their
work, Inaba et al. also present some instructional design
support systems using the ontology as the TIA (Theory-based
Interaction Analysis). The TIA support system will help human
users to analyse complex interaction process in collaborative
learning. It will be useful to interpret what type of collaborative
learning is occurred in the learning session and to identify why
a learning session is not effective.
In this scenario, an extremely important role played by teachers
is to guide and evaluate the students, as well as to mediate and
encourage discussions in CSCLE. However, this task can be
cumbersome when the number of participants and quantity of
interactions increase. Furthermore, teachers generally do not
have enough information to decide when it is the best moment
to interact with students, or to evaluate their learning process
[31]. Consequently, the need for tools that support the teachers
(an aspect almost always neglected) in assessing and observing
the students interaction and individual progress comes to light.
Indeed, most CSCLE do not support teachers in their activities
and necessities in the environment. For example, most CSCLE
do not provide reports about the students’ progress or about
their performance within the environment or during chat
sessions with the teacher. Such systems almost always offer
support only for the student and such support is often quite
In summary, up to now, the interaction analysis approaches
present the following weaknesses:
9
20
To generate feedback based in the interaction analysis,
most of time, just to the student (excluding the teacher’s
needs).
9
To only generate pre-defined reports and they don’t allow
cross informations to create new reports;
9
To neglect the context where the interactions occur. The
analysis should take into account the context where
interaction emerges – the social, cultural and
organisational factors that affect interaction, and on which
the user will draw when making decisions about actions to
take and in interpreting the CSCLE’s and/or user’s
response. Consequently, identifying the contextual
elements (e.g. user knowledge level, group abilities,
exchanged message, related task) relevant to characterise,
enrich and qualify the interaction is very important.
9
To have inadequate mechanisms for interactions’
persistence - group members may find it difficult to recall
and justify their decisions when using interaction
mechanisms with low or no persistence. Important
information may be lost or need to be reproduced several
times in order to achieve the desirable level of common
knowledge [5]. Although many CSCLE [13][16][18][45]
provide a way to store previously sent or received
messages (e.g. by using sequential log files, normally
organized in temporal order), what it is really needed is a
common space (a group memory) to store the information
in order to comfortably refer to it, add new contributions
and analyse the stored information;
4
A PROCESS FOR USER
INTERACTION ANALYSIS
In order to analyse user interactions so that we can support
students’ reflection process and teacher in his/her activities we
have developed a four-stage process (see Figure 1). In our
proposal, we have tried to overcome the weaknesses in the
interaction analysis approaches described in the last section.
Each stage (see Figure 1) of the process will be described in the
following subsections. The subsection 4.1 presents the first step
of the process (structuring interactions), which uses an
argumentation model to classify and relate the interactions.
Subsection 4.2 describes how we are mapping and using the
concept of context. Subsection 4.3 presents our
multidimensional model that gives rise to a group memory that
contains all interactions occurred in the environment. This
group memory will be called Learning Interaction Memory
(LIM). Finally, subsection 4.4 shows the last step of the process
where the interactions presents in the LIM are analysed and
some feedback is generated to the students and teachers, based
in this analysis.
4.1
Structuring Interactions
In Collaborative Learning, the ideas of Vygotsky [49] and his
followers have brought up evidence that we can learn more
when doing it in a group. Interacting with our peers gives us a
forum to discuss our ideas, to take a stand on our views, to
reflect about and to elaborate on them. Consequently, CSCLE
tend to generate a large volume of interactions and the
communication tools must be adapted in a way that facilitates
and organizes the discussion, and supplies instruments to
reduce the information overload on people [20].
An interesting work that it is being done in the area of
interaction analysis is the work of the project named JEIRP
(Jointly Executed Integrated Research Project). They intend to
define a Unified Framework on Interaction Analysis [19],
considering an interaction as an action that affects or can affect
the collaborative process. This framework will be based on
defined concepts and relations, taking into account different
application contexts (e.g. different kinds of technology based
learning environments, simple and complex problem solving
collaborative activities, existence or not of teachers, and
educational level).
A way to achieve some overload reduction is to structure the
discussion and supplying simple and representative pieces of
information about the messages’ contents (as means to that
helps the identification of message’s relevance and context).
Some authors [27][28][34] claim that classifying utterances:
9
Increases the efficiency of online communications by
reducing the cost of message production (saving typing);
Figure 1. Stages of the Process for User Interaction Analysis
21
Figura 2. Example of a discussion graph
9
Increases reflection on the part of interlocutors by
requiring that they identify the intent of their
communications and thereby;
9
Increases the success of online communications by making
intentions more explicit;
9
Reduces the participants’ information overload, since it
supplies information that helps the identification of the
discussion content and structure without read the
messages.
categories and explicit relations among messages to organise
and infer information.
Using an argumentation model, all the user interactions in the
CSCLE’s will be mapped to a discussion graph with a
hierarchical structure (see Figure 2). Thus, the result of this
stage is a complete discussion graph. Based in this discussion
graph, CSCLE can generate reports and statistics about how the
participants use the categories, which can help teachers to
understand behavior and check compliance with tasks.
Other benefits may arise from automated guidance enabled by
tracking the dialogue. The choosing of a category requires an
additional effort in the preparation of a message. In fact, the
author’s concepts, points of view and ideas must be well
thought out in order to express her/himself in a way that
separates her/his discourse into different messages, each one
with its own category. Additionally, the structuring can help to
improve the comprehension of problems, making it easier for
participants to clearly organise their ideas, better understand
others’ points of view and arrive at a consensus more quickly.
4.2
Contextualizing Interactions
In the learning process the more details the system can provide
about the users’ interactions, the more it can support their
reflection and knowledge construction [1]. These details are the
contextual information. Context is a collection of relevant
conditions and surrounding influences that make a situation
unique and comprehensive [7]. In conversation, context plays a
fundamental role in disambiguating utterances. In situations
where geographically separated individuals have to collaborate
(especially asynchronously), technological support for
understanding and storing the contextual information involved
is very important. For instance, the choice of an example must
be relevant in the student’s socio-cultural environment. This
identification of contextual information can help to clarify
users’ utterances, as well as to repair misinterpretations and
provide adequate feedback.
In view of the above, structuring the interactions is the first step
to achieve the interaction analysis because it can make explicit
the intention of the messages and the relations among them.
Thus, in order to structure the interactions, in this our process,
we have proposed an Argumentation Model for collaborative
discussions [41] based on the IBIS argumentation model [28].
In CSCL, we need to identify different types of contexts at
different levels, trying to reach all the elements related to
CSCLE and trying to answer the questions that summarise the
definition of context [6]:
Argumentation Models have been widely employed as a means
to help people to capture and structure informal knowledge
[28]. Moreover, they have often been applied as a mean of
systematizing
the
communication
patterns
(whether
synchronous or asynchronous) between members of a group.
The use of an argumentation model implies in classifying all
elements of discussions in pre-defined abstractions of the model
(e.g. Argument, Explanation, etc) and connecting them via a set
of pre-defined relations (e.g. provokes, generates, etc.). Upon
sending a message, participants have to select the message
category that reflects their intention more closely. In other
words, users need to select one of a pre-defined set of
appropriate utterance categories (e.g. question) that provide
explicit information about the content of their messages. For
example, “QUESTION – Do you know what an argumentation
model is?”. Consequently, the computational environment will
be able to take advantage of the semantic knowledge of the
9 Who? - Information about people
9 When? - Information about Time and Historical
Information
9 Where? - Information about environment
9 How? - Information about user’s action plans
9 What? - Information about users activities in progress
9 Why? - Information about the reasons related to the user
actions
These contexts have not the same granularity [10] and make
difficult a simple representation of the contextual cues in our
22
students when they "contextualize" the plan in order to
tailor the problem solving to the context at hand. In
learning, an interesting side-effect of this approach is to
identify clearly when a learner goes towards a dead-end
way before the learner be in it;
process. Thus, based in the generic conceptual framework for
analysing the use of context in groupware proposed by Rosa,
Borges and Santoro [39], we have organised context in five
different categories [42], described in the following. This
organization will be useful to map out the information that it
must be captured to qualify each interaction.
1)
Information about scheduled tasks (Subject and Task
Contexts) - in CSCLE it is important to know what the
users are doing, what is the subject of the users are
currently studying or about what they are discussing. So,
this category includes:
4)
Information about the environment where the interaction
takes place (Session and Environment Context) - it
consists of information that characterises the environment
and the current session where the interaction takes place
and influences task completion;
5)
Information about tasks and activities already concluded
(History Context) - the information in this category tries to
characterise the interactions that have already occurred. Its
goal is to provide background information about the
experiences learned either from the same group or from
similar tasks performed by other groups. In this category,
all contextual information generated is stored for future
retrieval. It is the repository of the “group memory”
(including contextual elements). In this way a situation can
be reconstructed with the context in which it occurred.
Since the LIM provides historical context, students and/or
teachers can access past incidents. This can also be used to
share the latest news, seek advice and compare notes.
Thus, it might be a source of reflection for both the teacher
and the student.
9 Subject Context – it consists of information about the
subject that the user are currently studying or discussing
about;
9 Task Context - in CSCLE several tasks are possible (for
example, to study a lesson, do exercises, do tests, discuss
about a subject, share files, or draw something). The
elements in this category are necessary to keep
information about these tasks in the LIM in order to
identify what an individual or group is or was doing.
2)
Information about people and groups (Individual and
Group Contexts) - The knowledge about the characteristics
of individuals and the group as a whole is a resource that
can be used by teachers to encourage interaction and
collaboration [36]. This category includes:
9
Group Context – it is important have in the LIM some
knowledge about the group to understand the evolution of
the individuals in CSCLE;
9
Individual Context - the elements in this category help to
characterise the user, as well as let other users better
understand her/his doubts, difficulties and actions in the
CSCLE. Some of the contextual information in this
category can be obtained from the user’s model (generally
present in the CSCLE).
3)
Information about the relationship between people and
tasks (Interaction and Planning Context) - in CSCLE it is
important to know who is doing what, i.e. what the task’s
execution plan and what is being discussed into the
environment. Indeed the interaction analysis is important
for discovering more about the student (e.g. her/his
difficulties or doubts). This type of information is
represented in two kinds of context:
Thus, each interaction structured in the discussion graph (that it
was generated in the last stage) will be enriched with contextual
information. Some contextual information will be captured
implicitly by sensors and monitoring programs (e.g. a Perceptor
Agent) included in the communication tools components of the
CSCLE. Other contextual information will be captured
explicitly (e.g., applying a questionnaire in the beginning of the
interaction session, if the user is logged in the communication
tool for the first time).
4.3
Modelling and Storing Interactions
9 Interaction Context - it has information about the
interactions occurred into the environment and about
users’ behavior when interacting;
After interactions are structured and contextualized, they can be
stored so as to enable a later analysis. Without persistence, the
structured and contextualized interactions are ephemeral and
cannot be shared afterwards with people who were not involved
at the time it occurred [4]. With persistence, the interactions
will constitute an Interaction Memory (IM) mechanism, which
make past information about the interactions readily and
selectively available when required. The IM is the result of a
process of accumulating data generated by group members
during discussions in synchronous or asynchronous tools after
the stages of structuring and contextualization.
9 Planning Context – it consists of information about the
course execution plan (generally present in the
pedagogical model of CSCLE). The Planning Context
could be implemented using the idea of proceduralised
context and contextual graphs presented in [9][10]. The
interest of contextual graphs is to do not limit the
representation of a problem solving to the solution
identified by the teacher, but to account for all the
variants of the learners that lead also to the same
solution. This is the difference between the official plan
(made by the teacher) and the practices developed by
This kind of historical information will be extremely useful to
the analysis stage because it allows following the changes of
social roles, beliefs, conflicts, misconceptions, and views of the
task within the group. Indeed, this dialogue history is viewed as
an important resource in collaborative dialogue since it
provides a common reference to previous activity (unlike most
spoken dialogues) that may encourage reflection and more
effective collaboration [12]. This kind of information would
help teachers to track students’ evolution process. Besides, the
analysis of the interaction memory would enable users to reuse
historical information to solve future problems, reminding
23
participants of previous ideas (encouraging elaboration on
them) and possibly serving as an agenda for further work.
5
For the purpose of facilitating the execution of analytical
analysis, this IM can be modelled in a multidimensional
structure [26]. With multidimensional modelling the IM’s
information can be viewed from different perspectives (e.g.
information can be easily crossed or filtered) and could be
presented selectively, according to users' needs (i.e. depending
on their context, users could access different information).
4.4
IMPLEMENTATION ISSUES
For the purpose of test some ideas, we have implemented a
prototype to put in practice the described process. To simplify,
we have used an Intelligent Chat for Collaborative Discussion
(SmartChat) in the place of the CSCL environment, considering
that a chat environment is a basic component of communication
in any CSCL environment. Whereas the prototype’s
architecture can be seen in the Figure 3.
5.1
Analysing Interactions in a
Multidimensional Way for Generating
Feedback
The Architecture
Figure 3 shows our tool’s agent-based architecture. It consists
of an Agent Society composed by two agents (Perceptor and
Modeller Agents) and four components: Loader Component,
Report Generator, Domain Knowledge Base and the Contextual
User Model. The Agent Society is responsible by structures,
contextualizes and stores structured information in a XML Log
file, during the session of discussion. A session of discussion
starts when the chat room is opened and the students log in and
finished when all students log out.
Multidimensional Analysis is a process that involves organising
and summarising data in a multiple number of dimensions. In
the case of CSCLEs, the interactions data can be organised
through multidimensional models that represent a
conceptualization of the interaction data that is closer to the
way in which the students perceive the discussion.
In the end of the session, the Agent Society group the
interactions related to that session and store them in a Learning
Interaction Memory (LIM) implemented using a Data
Warehouse. The use of Data Warehouse allows Analytical
Queries be executed and that historical information about the
discussions in the CSCL environment be kept. The response of
the analytical queries helps the environment to generate
feedback for both, students and teachers. In the following
paragraphs, we will describe this agent-based architecture in
details.
OLAP [22][26] is the technology that enables users or
applications to efficiently access data in a multidimensional
way. OLAP allows a system to operate on-line queries on the
multidimensional data, enabling the user to create sophisticated
inquiries. Data can be analysed (summarised, consolidated,
consulted and/or processed) along multiple levels of abstraction
and from different perspectives (dimensions), according to the
user needs.
OLAP queries can be used as much by the users (directly) as by
the CSCLE to support students and teachers and generate
reports giving details of how the discussion is progressing and
the different types of learner contributions. In this way, it will
be possible to answer questions such as: which kind of
knowledge has been shared within the environment? Which
members are participating more actively? Which are the most
frequent problems that have been found during the learning
processes via the environment? Which topics are being more
difficult to students? Which students are not motivated? Which
students have already faced the problem Y, considering the
context X?
5.1.1
SmartChat
The chat engine was implemented using RMI (Remote Method
Invocation) [29]. It was developed in Java [29] and uses a
hybrid knowledge base of rules and objects accessed by the
JEOPS inference motor [17]. The domain ontology was
implemented in XML [37] and it covers the subject “ObjectOriented” [44]. SmartChat’s user interface is quite simple and
it is only available in Portuguese, in this first version of the
prototype
Figure 3. Prototype's Architecture
24
5.1.2
In the process of data warehousing, this agent is responsible by
the steps of Extract and Clean [26], considering that it prepares
the informations that the Loader Component will use to load the
data warehouse.
The Agent Society
It consists of an Agent Society composed by two agents
(Perceptor and Modeller Agents) and four components: Loader
Component, Report Generator, Domain Knowledge Base and
the Contextual User Model.
The Modeller Agent is responsible for supporting students’
reflection as well as teachers’ decisions and also for classifies
the users according to their participation level in the
discussions. Thus, it has the following main functions:
The Perceptor Agent is responsible for monitoring all user
interactions occurred in the learning environment and, also,
structures and contextualizes these interactions. In order to do
this, it has the following main functions:
1)
Monitor the user interactions;
2)
Structure the interactions using an argumentation model.
To categorize his/her interaction, the user should choose
one abstraction (e.g. Question, Argument, Proposal,
Justification or Maintenance) that qualifies his/her
interaction. However, since the user sometimes does not
choose the adequate argumentation model abstraction to
categorize her/his message, the Perceptor Agent tries to
infer the intention underlying each utterance. In order to
do so, it uses a parser and a predefined vocabulary of word
categories (for example, the abstraction question can have
words such as: “what”, “why”, “when”, “how”). Whereas
the interactions were categorized, the Perceptor Agent
infers the relation among them using the argumentation
model (e.g. there is a relation between the abstractions
Justification and Question called responds_to).
3)
4)
5)
Capture the initial individual context of the user connect to
the chat - if the user is accessing the environment, for the
first time, the Perceptor Agent shows to the user a
questionnaire to get information about him/her (individual
context). This information is stored in the Contextual User
Model, where all the information about the users that have
already used the chat environment is stored. If is not the
first time that the user is accessing the environment, the
Perceptor Agent, based in the login and password of the
user, load the information store in the Contextual User
Model about him/her. The Contextual User Model is
implemented in XML.
Take into account the context of the interactions
(according to the context categories described in the
section 4.2) before put the interaction in the XML log file.
To contextualized the utterance in this point, it will be
used the Task, Group, Individual, Planning and Interaction
contexts. The Task, Group and Planning Contexts are
captured in the Domain Knowledge Base. The Individual
Context is in the Contextual User Model. The Interaction
Context is captured by this agent.
1)
Classify the users’ participation;
2)
Infer a stereotype to the user according to the Contextual
User Model and the user’s participation in the discussion.
In order to classify the user, the Modeller Agent was
implemented as a thread and “wakes up” each time a
group of ten messages arrives at the chat server. This agent
uses production rules (located in the Contextual User
Model) and the inference motor called JEOPS [17] to
classify the user as one of the stereotypes: challenger,
agreer, remiss, tutor, contributor, questioner, and
unnatentive.
3)
Discover the best strategy to adopt in order to promote
reflection and also generate reports to the users (student
and teachers), based on the analysis of the contextualized
interactions, using the information in the XML Log, in the
Learning Interaction Memory (through analytical queries)
and in the Contextual User Model.
4)
Update the Contextual User Model of the users logged-in
according to their behavior in the chat session.
5)
Decide at what moment to interfere in the conversation The identification of the user’s stereotype allows the
Modeller Agent to interfere in the discussion to perform
one of the three following actions: (a) send support
messages to the users (e.g. “Well done! You’ve got
excellent explanations!” or “You are so laconic, wouldn’t
you like to participate more?”), according to the stereotype
s/he fits in; (b) suggest references related to the subject
being discussed (e.g.,. “If you have doubts about this
subject, then you should consult the X book”); and (c)
name another chat user that may collaborate with the user
having difficulties (e.g., “Look, maybe Joe can help you
with your doubts. Why don’t you talk to him?”). In
motivating the student and striving to stimulate the
collaboration between users, we try to make the
interactions in SmartChat more effective and focused in
the subject being discussed.
The Loader Component is responsible for uploading the
Learning Interaction Memory – LIM (implemented using Data
Warehouse). In the data warehousing process, this component
is responsible by the Load step. For this purpose, in each end of
chat sessions, it takes, processes and stores in the LIM the
information obtained from XML Log file, the Contextual User
Model and the Domain Knowledge Base.
Generate the XML log of the interactions taking place in
the environment with the contextualized and related (using
the argumentation model) interactions;
The Perceptor Agent was implemented as a thread [29] and
constantly monitors the messages sent among users. With each
message sent, the Perceptor executes a parser that processes the
utterance and searches in the Domain Ontology for concepts
related to the subject under discussion. The Domain Ontology
is in the Domain Knowledge Base and it configures the
vocabulary related to the subject to be discussed.
Finally, the Report Generator Component is responsible for
sending information to the CSCL environment. It is also
responsible for issuing different statistical reports for teachers
and students during and at the end of the discussion session.
The teacher report presents general statistics about all the
25
incremental way [27] to keep up with the process stages.
students, indicating the most discussed topic, the most and the
less active students, and the topic that caused more conflicts.
The student report presents her/his individual performance in
relation to the group’s. It is also possible have access to the
interaction history to see the information storage there.
Some feedback is already given to the teacher and students
based on the information in the Contextual User Model and the
XML Log file, using the JEOPS inference motor [17] and a
hybrid knowledge base of rules. Using the rules, the agent
society can identify collaboration opportunities (indicating
someone to help you if you are in troubles), recommend
references (books or links registered in the ontology to each
subject in it) or give some motivation message.
The Contextual User Model has many components: the User
Model (an model based in stereotypes [38]), the users
individual context (store in a XML file), the production rules to
classify the users participation (according to the User Model)
and the production rules to discover the best strategy to adopt to
promote reflection to each user stereotype. Users will be model
through the following stereotypes: challenger, agreer, remiss,
tutor, contributor, questioner, and unnatentive. Students will be
classified in one of these categories by the Modeller Agent. The
stereotypes are based on the idea that the users belong to
homogeneous groups and describe their performance during the
chat session.
5.3
First Results
An important step in the experimentation of the process was to
perform a test with the prototype to check: (1) if the users
would be adequately classified; (2) the correctness of the
discussion graph; (3) the correctness and the level of
acceptance of the feedback produced; and (4) the environment
usability.
The Domain Knowledge Base is composed by the Domain
Ontology (see Figure 4). Initially, the Domain Ontology
employed deals with the subject Object-Oriented [44]. It was
implemented using XML. It acknowledges word variations
used in the discussion (plurals, abbreviations, marks and
synonyms) and each subject in the ontology has registered its
difficulty level, pre-requirements and some indicated reference
(e.g. book or link).
To perform the test, ten people were chosen to participate of a
discussion session using SmartChat. The requirements to select
a participant were, basically, that he/she has some knowledge
about Object-Oriented (domain of our ontology).
During two hours of chat, discussing the chosen themes, the
users could test all the functionalities of the environment and
observe its weak and strong points. First, it was observed that
the system fulfilled the expectancy. The analysis of the
interactions took place correctly, all users were classified
according to the profile presented during the session, and
received appropriate feedback from the Modeller Agent. Also
the discussion graph was generated correctly and the contextual
information was correctly captured (we have checked the files
of the Contextual User Model and XML log).
However, the users have suggested that the feedback should be
improved to offer more information and statistics about the chat
and to help them in their self-evaluation. This will be possible
when the four stage of the process will be implemented, in the
next version of the prototype.
Moreover, it was possible to confirm that the muldimensional
model was correctly filled in.
6
Research [14][46][48] has shown that students learn effectively
in groups, where one encourages the other by asking,
answering, reasoning, explaining, justifying their opinions and
reflecting about what is being discussed. Thus, the interaction
becomes the key element to understand the process of building
knowledge and the role of each student in this process. In this
scenario, the interaction analysis can produce resources for the
system to support individual and group needs as well as to
better assess their behavior, attitudes, knowledge level, and
difficulties.
Figure 4 - Example of the Domain Ontology
5.2
CONCLUSIONS AND FUTURE
WORKS
The Prototype
In the first version of the prototype, we have implemented
stages 1 to 3 of our four-stage process (see Figure 1), in other
words, we have structured, contextualized, modelled and stored
the interactions in the LIM (implemented using data
warehouse). However, we have not yet explored the LIM using
OLAP. This prototype is being developed in an iterative and
In this paper, we have presented a process for Interaction
Analysis. This process uses an argumentation model to
categorise and structure the group interactions as means to
make explicit the intention of the messages and the relations
among them. In the second stage of the process, contextual
26
Editions, Lavoisier, 2002.
information is added to each structured interaction in order to
provide the correct cues to give the right interpretation to it.
Subsequently, the contextualized interactions are modelled and
stored in a multidimensional structure (called Learning
Interaction Memory) for the purpose of facilitating the
execution of analytical analysis. Finally, in the last stage, the
interaction memory is explored (by users or CSCLE) using
OLAP queries [22] to support students and teachers and
generate many kinds of feedback reports.
[9] Brézillon, P. Context dynamic and explanation in
contextual graphs. Modeling and Using Context
(CONTEXT-03), P. Blackburn, C. Ghidini, R.M. Turner
and F. Giunchiglia (Eds.). Springer Verlag, LNAI 2680,
2003, 94-106.
[10] Brézillon, P. Representation of procedures and practices in
contextual graphs. The Knowledge Engineering Review,
18, 2, 2003, 147-174.
We also have presented a context-based analytical tool
prototype, which it has allowed to evaluate in the practice, with
users, the ideas and constructed artifacts (e.g. discussion graph
and multidimensional model).
[11] Brézillon, P.; Borges, M.R.S.; Pino, J.A.; Pomerol, J.C.
Context-based Awareness in Group Work. Proceedings of
the 17th International Flairs Conference, Miami Beach,
Fl, USA, 2004.
Our future research will concentrate on implementing the
OLAP queries to explore the Learning Interaction Memory and
provide good quality just-in-time feedback for both students
and teachers. We also intend to include a feedback area in the
prototype’s interface, in order to inform the students about their
performance in relation to the group.
7
[12] Collins, A; Brown, J.S. The computer as a tool for learning
through reflection. H. Mandl and A. Lesgold (Eds).
Learning Issues for Intelligent Tutoring Systems, SpringerVerlag, New York, 1988, 1-18.
[13] Constantino-González, M.; Suthers, D. Coaching
Collaboration by Comparing Solutions and Tracking
Participation. Eds. P. Dillenbourg, A. Eurelings & K.
Hakkarainen. Proceedings EuroCSCL 2001, Maastricht,
The Netherlands, 2001, 173-180.
ACKNOWLEDGMENTS
Our thanks to ACM SIGCHI for allowing us to modify
templates they had developed.
8
[14] Dillenbourg P. What do you mean by collaborative
learning? Ed. P. Dillenbourg. Collaborative-learning:
Cognitive and Computational Approaches, Oxford:
Elsevier, 1999, 1-19.
REFERENCES
[1] Araujo, R.; Brézillon, P. Reinforcing shared context to
improve collaborative work. Revue d'Intelligence
Artificielle. Special Issue on "Applying Context
Management". S. Schultz, T. Roth-Berghofer & P.
Brézillon (Eds.), 19, 3, 2005, 537-556.
[15] Dillenbourg P.; Self J.A. Designing human-computer
collaborative learning. Ed. C.E. O'Malley. Computer
Supported Collaborative Learning, Springer-Verlag,
Hamburg, 1995, 245-264.
[2] Avouris, N. M.; Dimitracopoulou, A.; Komis, V. On
analysis of collaborative problem solving: An objectoriented approach. Journal of Human Behavior, v. 19, n.
2, 2003, 147-167.
[16] Eleuterio M., Barthès JP, Bortolozzi F. Mediating
collective discussions using an intelligent argumentationbased framework. Proceedings of Computer Supported
Cooperative Learning (CSCL 2002), Boulder, Colorado,
USA, 2002.
[3] Avouris, N. M.; Dimitracopoulou, A.; Komis,V.; Fidas, C.
OCAF: An object-oriented model of analysis of
collaborative problem solving. Proceedings CSCL 2002,
Boulder, Colorado. Hillsdale, NJ: Lawrence Erlbaum
2002.
[17] Figueira Filho, C.; Ramalho G. JEOPS – Java Embedded
Object Production System. Monard, M. C; Sichman, J. S
(Eds). Advances in Artificial Intelligence, International
Joint conference, 7th Ibero-American Conference on AI,
15th Brazilian Symposium on AI, (IBERAMIA-SBIA
2000), Proceedings. Lecture Notes in Computer Science
1952. Springer, 2000, 53-62.
[4] Baker, M. A Model for Negotiation in Teaching Learning
Dialogues. International Journal of Artificial Intelligence
in Education, v. 5, n. 2, 1994, 199-254.
[5] Borges, M. R. S.; Pino, J.A. Requirements for Shared
Memory in CSCW applications. Proceedings of 10th
Annual Workshop On Information Technologies and
Systems (WITS'2000), Brisbane, Australia, 2000, 211-216.
[18] Fuks H.; Gerosa, M.A.; Lucena, C.J.P. Using the AulaNet
Learning Environment to Implement Collaborative
Learning via Internet. In: Innovations 2003 - World
Innovations in Engineering Education and Research,
iNEER, USA, 2003.
[6] Bazire, M.; Brézillon, P. Understanding context before to
use it. Modeling and Using Context (CONTEXT-05), A.
Dey, B.Kokinov, D.Leake, R.Turner (Eds.), Springer
Verlag, LNAI 3554, 2005, 29-40.
[19] Fuks, H.; Laufer, C.; Choren, R.; Blois, M.
Communication, coordination and cooperation in distance
education. Proceedings of the Americas Conference on
Information Systems, Milwaukee, USA, 1999, 130-132.
[7] Brézillon P. Context in problem solving: A survey. The
Knowledge Engineering Review, v. 14, n.1, 1999, 1-34.
[20] Fussel, S. R.; Kraut, R. E.; Lerch, F. J.; Scherlis, W. L.;
Mcnally, M. M.; Cadizz, J. J. Coordination, Overload and
Team Performance: Effects of Team Communication
Strategies. Proceedings of CSCW 1998, 1998, 275-284.
[8] Brézillon P. Making context explicit in communicating
objects. C. Kintzig, G. Poulain, G. Privat and P-N.
Favennec (Eds.), Communicating Objects, Hermes Science
[21] Inaba, A., Tamura, T., Ohkubo, R., Ikeda, M., Mizoguchi,
27
[36] Pinheiro, M. K.; Lima, J. V.; Borges, M. R. S. A
framework for awareness support in groupware systems,
Computers in Industry, Netherlands, v. 52, n. 1, 2003, 4757.
R., & Toyoda, J. ‘Design and Analysis of Learners’
Interaction based on Collaborative Learning Ontology
Proceedings of Euro-CSCL2001, 2001, 308-315.
[22] Inmon, W.H. Building the data warehouse (2nd ed.). New
York: John Wiley & Sons, 1996.
[37] Ray, E. T. Learning XML. O'Reilly and Associates, 2001.
[38] Rich, E. Stereotypes and user modeling. Eds. A. Kobsa &
W. Wahlster, User Models in Dialog Systems, SpringerVerlag, Berlin, Heidelberg, 1989, 35–51.
[23] Interaction & Collaboration Analysis. Supporting Teachers
& Students. Self-regulation Unified Framework on
Interaction Analysis. Available in:
http://www.rhodes.aegean.gr/LTEE/KALEIDOSCOPEICALTS/Publications/D2%20Unified%20Framework%20I
CALTS%20Kal%20www.pdf
[39] Rosa, M. G. P.; Borges, M. R. S.; Santoro, F. M. A
Conceptual Framework for Analyzing the Use of Context
in Groupware. Proceedings of International Workshop on
Groupware, Autrans, France, Lecture Notes in Computer
Science, Berlin, Germany, v. 2806, 2003, 300-313.
[24] Jermann, P. Task and Interaction Regulation in
Controlling a Traffic Simulation. Ed. G. Stahl.
Proceedings of CSCL2002, Boulder, Colorado. Hillsdale,
NJ: Lawrence Erlbaum, 2002, 301-302.
[40] Santoro, F. M.; Brézillon, P. The role of the shared context
in group storytelling. Computers And Informatics, Special
Issue on “Groupware, Context and Design”. M.R.S.
Borges, H. Fuks, S. Lukosh and J.A. Pino (Eds.) (To
apprear), 2006.
[25] Jermann, P.; Soller, A.; Mühlenbrock, M. From Mirroring
to Guiding: a Review of the State of the Art Technology
for Supporting Collaborative Learning. Proceedings of
Euro-CSCL’2001, Maastrich, Holland, 2001.
[41] Siebra, S. A.; Christ, C.; Queiroz, A. E.; Tedesco, P.;
Barros, F. SmartChat – An Intelligent Environment for
Collaborative Discussions. Proceedings of ITS 2004,
Maceió, Al, 2004.
[26] Kimball, R.; Reeves, L.; Ross, M.; Thomthwaite, W. The
data warehouse lifecycle toolkit: tools and techniques for
designing, developing and deploying data warehouses.
New York: John Wiley & Sons, 1998.
[42] Siebra, S. A; Salgado, A.C.; Tedesco, P. A. Structuring
Participants’ Interactions in Collaborative Learning
Environments. Proceedings of WebMedia/LA-Web 2004 WCSCW, Ribeirão Preto, S, Brasil, 2004, 181- 187.
[27] Kruchten, P. The Rational Unified Process. 2nd Edition.
Addison Wesley Longman Inc., 2000.
[28] Kunz, W.; Rittel, H. Issues as Elements of Information
Systems. Technical Report, Paper No. 131. Universität
Stuttgart, Institut für Grundlagen der Plannung, (1970).
[43] Siebra, S. A; Salgado, A.C.; Tedesco, P. A.; Brézillon, P.
A Context-based Analytical Environment for CSCLE.
Internal Report, CIN – UFPE, Recife – PE. Available in:
http://www.cin.ufpe.br/~sas/reports ,2004.
[29] The Source for Java Technology – Available in:
<http://java.sun.com>. (Accessed in July 2006).
[44] Sintes, A. Aprenda Programação Orientada a Objetos em
21 dias, Makron, 1a. edição, 2002.
[30] Levin, J.; Moore, J. Dialogue games: meta-communication
structures for natural language interaction. Cognitive
Science, v. 1, 1977, 395-420.
[45] Soller, A.; Linton, F.; Goodman, B.; Lesgold, A. Toward
Intelligent Analysis and Support of Collaborative Learning
Interaction. Proceedings of the Ninth International
Conference on Artificial Intelligence in Education,
LeMans, France, 1999, 75-82.
[31] Levy, P. Les technologies de l'intelligence. L'avenir de la
pensée à l'ère informatique. La découverte, 1990.
[32] Lipponen, L. Exploring foundations for computersupported collaborative learning. Ed. G. Stahl. Computer
Support for Collaborative Learning: Foundations for a
CSCL community. Proceedings of the Computersupported Collaborative Learning 2002. Hillsdale, NJ:
Erlbaum, 2002, 72-81.
[46] Soller, A.; Wiebe, J. ; Lesgold, A. A Machine Learning
Approach to Assessing Knowledge Sharing During
Collaborative Learning Activities. Proceedings of
Computer Support for Collaborative Learning, Boulder,
CO, 2002, 128-137.
[33] Martinez, A.; Dimitriadis, Y.; Gómez, E.; Rubia, B.; De la
Fuente, P. Combining qualitative and social network
analysis for the study of classroom social interactions.
Computers and Education, v. 41, n. 4, 2003, 353-368.
[47] Veerman, A. L. Computer-Supported Collaborative
learning through argumentation. University of Utrecht,
published PhD. Thesis, 2000.
[48] Vieira, A. C. H. Classificando automaticamente diálogos
colaborativos on-line com o OXEnTCHÊ-Chat.
Dissertação de Mestrado. Cin-UFPE, Recife – PE, 2004.
[34] Martinez, A.; Marcos, J.; Garrachon, I.; de la Fuente, P.;
Dimitriadis, Y. Towards a data model for the evaluation of
participatory aspects of collaborative learning.
Proceedings of the Conference on Computer Support for
Collaborative Learning, Workshop on Designing
Computational Models of Collaborative Learning
Interaction, Boulder, Colorado. Hillsdale, NJ: Lawrence
Erlbaum, 2002, 45-51.
[49] Vygostki, L. Mind and society: The development of higher
psychological processes. Cambridge, MA: Harvard
University Press, 1978.
[50] Zumbach, J.; Hillers, A.; Reimann, P. Supporting
Distributed Problem-Based Learning: The use of Feedback
mechanisms in online learning. Eds. T. Roberts. Online
Collaborative Learning: Theory and Practice. Hershey,
PA: Idea, 2003.
[35] McManus, M.; Aiken, R. Monitoring computer-based
collaborative problem solving. Journal of AI in Education,
v. 6, n. 4, 1995, 307-336.
28
Avaliando os Elementos de Contexto para as Atividades
de Coordenação em Pré-reuniões
Márcio G. P. Rosa
José Maria N. David
Flávia Maria Santoro
Marcos R.S. Borges
Faculdade Ruy Barbosa
Salvador/BA
Faculdade Ruy Barbosa
Salvador/BA
Núcleo de Computação
Eletrônica, UFRJ
[email protected]
[email protected]
Departamento de
Informática
Aplicada,UNIRIO
[email protected]
[email protected]
uniriotec.br
ABSTRACT
Palavras-chave
Designing groupware in order to support pre-meetings activities,
relevant information need to be supplied to the participants of a
group aiming to increase awareness. Some of them are related to
the context information about participants and their activities.
During this meeting cycle phase, awareness elements design could
be supported by a conceptual framework in order to present to the
participants important information related with a specific context.
The goal of this paper is to describe the results obtained through
the application of a conceptual framework throughout awareness
elements design of web-based pre-meeting application. Such
results show the importance of a framework deployment in
contextual elements design, as well as the need to provide
extensions so that other asynchronous activities could be
supported as, for example, the coordination activities.
Contexto, Pré-reunião, Percepção, Coordenação
1. INTRODUÇÃO
Reuniões são geralmente realizadas quando decisões precisam ser
tomadas ou informações necessitam ser distribuídas. Pesquisas
têm sido desenvolvidas com o objetivo de propor soluções para
melhorar não apenas as interações entre os participantes, mas a
coordenação em diferentes fases do ciclo de reuniões. Algumas
delas estão relacionadas à condução da fase de pré-reuniões para
reduzir o tempo e o custo, e para aumentar a produtividade
[10][18].
No projeto dessas aplicações, a colaboração poderia ser
potencializada se fosse disponibilizado um conjunto mais
abrangente de mecanismos de percepção para apoiar a
complexidade das interações.
RESUMO
No projeto de groupware para apoiar as atividades de préreuniões, informações relevantes precisam ser fornecidas aos
participantes de um grupo para potencializar a percepção.
Algumas delas estão relacionadas à informação sobre os contextos
nos quais se inserem estes participantes e as atividades das quais
eles participam. Nesta fase do ciclo de reuniões, o projeto dos
elementos de percepção poderia ser apoiado por um framework
conceitual no intuito de oferecer aos participantes informações
referentes aos diferentes contextos envolvidos. O objetivo deste
artigo é descrever os resultados obtidos através da aplicação de
um framework conceitual no projeto de elementos de percepção
em uma aplicação de suporte a pré-reuniões na web. Tais
resultados sinalizam a importância da utilização de um framework
no projeto de elementos de contexto, bem como a necessidade de
extensões do mesmo para que outras atividades assíncronas
possam ser apoiadas como, por exemplo, as atividades de
coordenação.
Dourish e Bellotti [16] definem percepção como sendo a
compreensão das atividades realizadas por outras pessoas, capaz
de fornecer aos participantes do grupo informações importantes
relacionadas ao contexto de suas atividades. Sem conhecimento
do contexto, participantes do grupo não sabem o que os outros
estão fazendo, podendo isto muitas vezes acarretar retrabalho e
inconsistências, ou então impedir que comunicações espontâneas
possam ser iniciadas. Através da contextualização das atividades,
contribuições relevantes podem ser fornecidas para o grupo e
avaliações podem ser realizadas com informações sobre a
evolução do grupo.
A hipótese considerada é que ao se fornecer elementos de
contexto mais adequados para apoiar aplicações de pré-reuniões, a
percepção poderia ser potencializada. Assim, é proposta a
utilização de um framework conceitual como um guia para apoiar
o projeto de elementos contextuais em aplicações de pré-reuniões.
Keywords
Em uma primeira etapa elementos de percepção, projetados sem o
auxílio de um framework conceitual, foram identificados. Em
seguida, estudos de caso foram conduzidos com o intuito de
identificar as divergências e novos elementos para serem
adicionados a este framework. Posteriormente, tais elementos
foram implementados incluindo aqueles que poderiam oferecer
informações de contexto para os coordenadores. Para avaliar a
hipótese, outro estudo de caso foi conduzido tendo como foco, as
atividades de coordenação e os elementos necessários para
fornecer informações de contexto. Adicionalmente, propôs-se que
este apoio poderia ser estendido para o projeto de outras
aplicações do ciclo de reuniões.
Context, Pre-meeting, Awareness, Coordination
20 a 22 de Novembro de 2006
Natal, RN, Brasil
© Sociedade Brasileira de Computação
Comissão Especial de Sistemas
Colaborativos
Anais do III Simpósio Brasileiro de Sistemas Colaborativos, pp. 29-37.
29
acompanhamento dos itens de discussão – as contribuições dos
participantes, e; (iii) acompanhamento da preparação dos itens –
os participantes responsáveis pela preparação da atividade, seu
percentual de conclusão, prioridade e prazo para a conclusão.
Este artigo está organizado da seguinte forma: a Seção 2 discute
alguns requisitos de percepção e a implementação de aplicações
de pré-reuniões. Na Seção 3 o relacionamento entre elementos de
contexto e percepção é descrito. A Seção 4 analisa os elementos
de contexto em uma aplicação específica. Na Seção 5, os
experimentos de avaliação são descritos. Por fim, a Seção 6
conclui o trabalho e sugere alguns trabalhos a serem realizados.
Adicionalmente, um conjunto de elementos contextuais está
disponível para os participantes de tal forma que os objetivos da
reunião possam ser mais claros e, como resultado, os participantes
podem construir uma lista de itens para serem discutidos na fase
de reunião. Posteriormente, discussões irrelevantes ou
redundantes podem ser evitadas.
2. GROUPWARE PARA APOIO À PRÉREUNIÕES
Muitas reuniões não são bem sucedidas devido à falta de
planejamento e de preparação. A literatura de groupware propõe
sistemas de apoio à pré-reuniões com o objetivo de aumentar a
produtividade das reuniões [3] [10] [18]. Algumas questões,
consideradas básicas, quando respondidas nesta fase, podem
minimizar a ocorrência de erros, otimizar os recursos alocados e
tornar a próxima etapa mais produtiva. Dentre estas questões,
podem ser citadas: (i) quais os participantes da reunião; (ii) quais
os papéis de cada participante?; (iii) quais as técnicas e métodos
que serão utilizados nas discussões?; (iv) qual será a agenda e o
tempo disponível?; (v) quais os resultados esperados? [11].
Entretanto, durante interações mediadas por sistemas de préreuniões, membros de um grupo necessitam acessar um contexto
compartilhado mais rico. Em interações assíncronas, este aspecto
se torna claro considerando que é necessário definir as
informações que devem ser armazenadas. Posteriormente tais
informações precisam estar disponíveis para outros participantes
no espaço de trabalho compartilhado. Neste momento,
provavelmente eles terão diferentes conhecimentos e informações
contextuais. Sem recuperar as informações relacionadas às
interações ocorridas no passado, participantes da pré-reunião,
mais especificamente os coordenadores, podem ter dificuldade
para perceber o contexto, alterar suas posições e comportamentos.
Por exemplo: a partir do momento em que um participante saiu da
aplicação, novos itens de discussão surgiram, outros participantes
foram convidados e novos documentos foram disponibilizados.
Ao retornar à pré-reunião, agora com conhecimentos diferentes,
ele necessita, prontamente, perceber esses elementos contextuais
para aproximar diferentes contextos.
Benefícios adicionais também podem ser obtidos, tais como:
documentação para a reunião poderia ser previamente acessada; e
atividades básicas poderiam ser detectadas e realizadas a fim de
conduzir reuniões posteriores, por exemplo, convidar
participantes imprescindíveis para as discussões. Como resultado,
reuniões poderiam ser mais objetivas e o seu tempo poderia ser
diminuído. Alguns recursos são oferecidos aos participantes da
pré-reunião com o objetivo de apoiar a troca de idéias e aumentar
a participação.
A importância da persistência das interações para recuperar e
analisar elementos contextuais relevantes em ambientes de apoio à
aprendizagem colaborativa é discutida de uma forma mais
abrangente em [24]. Ao armazenar as interações que ocorrem
nestes ambientes, participantes de um grupo podem visualizá-las
em diferentes perspectivas, e, como resultado, contextualizá-las
em processos de aprendizagem.
Sistemas como o SISCO [3][10] e o PRIME [18] foram
implementados para apoiar pré-reuniões assíncronas como
objetivo de preparar participantes para a discussão dos itens da
próxima fase.
Em ambos os sistemas, contribuições disponibilizadas durante a
pré-reunião (questões, posições argumentos e comentários) são
armazenadas na memória de grupo. Assim, o apoio à percepção
no passado é fornecido posteriormente com a apresentação de
eventos no espaço de trabalho compartilhado, a partir do
momento em que o usuário é autenticado no sistema. Para cada
contribuição ele é informado se ela é nova, ou então se ela é nova
e nunca foi lida.
3. MODELO DE CONTEXTO PARA
GROUPWARE
Na literatura relacionada a groupware, são observadas diversas
referências ao termo contexto, normalmente associadas ao
conjunto de informações necessárias para que os membros do
grupo possam se tornar conhecedores do ambiente onde estão
atuando. As áreas de interação humano-computador [8] e de
inteligência artificial [7], bem como aquela relacionada às
aplicações context-aware [15] já elaboraram suas definições para
contexto.
Ao acessar o PRIME o usuário visualiza todas as pré-reuniões
abertas das quais ele participa. Associadas a ela é possível
encontrar: a sua descrição, a quantidade de contribuições, e os
itens a serem discutidos.
Contexto e percepção devem ser considerados sempre em
conjunto no domínio de groupware [9]. Contexto é a
representação do conhecimento que envolve uma situação,
incluindo as informações e eventos necessários para tal.
Percepção é um dos mecanismos que o groupware utiliza para
prover informações de contexto para o grupo. Cada membro pode
perceber a mesma informação de contexto de maneira diferente,
pois o ato de perceber está associado com a cognição do
indivíduo.
O sistema de apoio à pré-reunião COPSE-Web [14] foi
desenvolvido de acordo com uma infra-estrutura oferecida para
apoiar o projeto de aplicações de groupware na web. Além disso,
são disponibilizados pela infra-estrutura elementos que podem ser
instanciados para apoiar a comunicação, a coordenação, a
percepção e a memória de grupo.
Dentre as funcionalidades implementadas na aplicação de préreunião do COPSE-Web pode-se mencionar (i) definição da préreunião – nome e descrição, objetivos, prazos e itens para ser
discutidos posteriormente. Informações do grupo também são
fornecidas, tais como, participantes e seus papéis; (ii)
Quando os membros de um grupo estão trabalhando
colaborativamente, contexto se torna especialmente relevante, , a
30
A terceira categoria diz respeito ao relacionamento entre membros
do grupo e as tarefas agendadas. Seu objetivo é relacionar as
ações de cada membro durante as interações com as tarefas e suas
atividades correspondentes. No escopo deste framework, a
interação que se desenvolve entre os membros do grupo se inicia
com um plano de execução e termina quando a tarefa encerra,
passando pela seqüência de ações necessárias para desenvolver o
plano. Em algumas situações a interação pode ser interrompida
antes que a tarefa seja concluída. A razão para esta conclusão
prematura é também parte do contexto e é relevante para a
compreensão do que justificou a interrupção. Para essa categoria,
são propostos dois tipos de contexto, o primeiro deles é o
contexto da interação, composto de informações que representam
o curso das ações ocorridas durante a realização das tarefas. Essas
informações emergem no momento em que as pessoas começam a
interagir, realizando ações para alcançar seus objetivos. Já o
segundo tipo é o contexto do planejamento, composto de
informações que representam o plano de ação da equipe.
ausência de recursos para acesso a suas informações pode gerar
um trabalho truncado, sem coesão, não representando as idéias do
grupo como um todo, mas somente um conjunto de idéias soltas,
com pouca ou nenhuma ligação entre elas, gerando
inconsistências e contradições.
Alguns autores definiram contexto em atividades colaborativas
[5][20][21]. Rittenbruch [20], por exemplo, considera que o
contexto é uma descrição do conhecimento sobre as
circunstâncias nas quais uma atividade e seus eventos ocorrem.
Naturalmente, este contexto deve ser representado de acordo com
o modelo do usuário, e explicado a fim de que seja acessível e
compreensível por cada participante.
Contexto pode ser considerado como uma construção dinâmica
composta de cinco dimensões: (1) tempo, (2) casos de uso, (3)
interações sociais, (4) objetivos internos, e (5) influências locais
[17]. Embora os elementos contextuais em algumas situações
sejam estáveis, compreensíveis e previsíveis, isto não é sempre
verdade. Casos com aparentemente o mesmo contexto podem ser
diferentes. Membros do grupo não podem interagir efetivamente
se eles não são capazes de compreender as informações
contextuais que estão ao redor e influenciam a interação
[1][2][12].
A quarta categoria reúne informações sobre o ambiente.
Representa os aspectos relacionados ao local onde a interação
acontece. Ela abrange tanto os aspectos organizacionais quanto o
ambiente tecnológico. Isto é, toda a informação fora do projeto,
mas dentro da organização, que pode afetar a maneira na qual as
tarefas são realizadas. O ambiente fornece algumas indicações
adicionais aos membros do grupo sobre como a interação
ocorrerá.
A fim de reduzir a dificuldade para selecionar informações
contextuais relevantes em uma atividade apoiada por groupware,
modelos de representação de contexto são sugeridos [25]. Propõese a utilização de um framework conceitual para identificar e
classificar os elementos contextuais mais freqüentes em
groupware [21]. Um framework conceitual é representado por
quadros conceituais, cujo objetivo é fornecer diretrizes para
pesquisa e desenvolvimento [23].
A última categoria reúne todas as informações sobre as tarefas
concluídas. Seu objetivo é fornecer informações de background
sobre as experiências aprendidas pelo mesmo grupo ou tarefas
similares realizadas por outros grupos. Ela deve incluir toda a
informação contextual sobre os projetos prévios. Denomina-se
este conjunto de informação de “contexto histórico”.
Informações contextuais são organizadas em cinco categorias
principais: (1) informação sobre pessoas e grupos; (2) informação
sobre as atividades programadas; (3) informação sobre o
relacionamento entre pessoas e atividades; (4) informação sobre o
ambiente onde a interação acontece, e; (5) informação sobre
atividades já concluídas. Estas categorias foram derivadas do
Modelo Denver [22] e, em cada uma buscou-se identificar os
aspectos de interação mais relevantes que influenciam o
desempenho das atividades do grupo.
A Tabela 1 resume os sete tipos de contexto e apresenta seus
objetivos bem como os elementos contextuais associados que
podem influenciar as atividades do grupo.
O framework conceitual é uma classificação genérica de
elementos contextuais. Ele não trata todas as peculiaridades de um
domínio particular nem se aplica a um tipo especifico de
groupware. Por ser genérico pode ser um ponto de partida para
uma classificação de elementos contextuais para domínios
particulares, como ferramentas de apoio a pré-reuniões, nos quais
novos elementos podem ser identificados e considerados como
relevantes.
A primeira categoria se relaciona às informações sobre os
indivíduos e os grupos aos quais eles pertencem. O conhecimento
das características dos indivíduos e dos grupos é importante para
o bom desenvolvimento das atividades em equipe, pois estimula a
interação e a comunicação informal entre os membros, facilitando
a cooperação [19]. Posteriormente esta categoria é dividida em
dois tipos de contexto. O primeiro é o contexto individual que
fornece informação sobre o indivíduo que é membro do grupo. O
outro é o contexto do grupo que fornece informações sobre as
características do grupo. Este dado é similar ao contexto
individual, mas agora relacionado ao grupo.
4. ELEMENTOS DE CONTEXTO DE
COORDENAÇÃO
Buscando avaliar contexto em sistemas de pré-reunião, propôs-se
como primeiro passo uma análise baseada no framework
conceitual apresentado [21]. A aplicação escolhida foi a Préreunião COPSE-Web. Tentou-se identificar os elementos de
contexto disponíveis neste groupware de acordo com o framework
(Tabela 1). A seguir, foram realizados dois estudos de caso para
avaliar a relevância destas informações, bem como a necessidade
de acrescentar novos elementos.
A segunda categoria é a informação sobre as tarefas a serem
realizadas. Independentemente da forma como a interação ocorre,
membros do grupo precisam compreender as características das
tarefas. Contexto da tarefa é o nome dado a este contexto.
31
Tabela 1 – Framework conceitual para a análise de contexto em aplicações de groupware [21]
Tipo de
Informação
Contextos
Associados
Indivíduo
Pessoas
Grupo
Tarefas a
serem
realizadas
Tarefa
Interação
(Síncrono)
Relações
entre pessoas
e tarefas
Interação
(Assíncrono)
Planejamento
Ambiente
Tarefas já
realizadas
Ambiente
Histórico
Exemplos de informações contextuais
Objetivo
Identificar
os
indivíduos através da
apresentação de suas
características e dados
pessoais.
Identificar as equipes
através
da
apresentação das suas
características.
Identificar as tarefas
através
da
apresentação das suas
características.
Representar, de forma
detalhada, o curso das
ações
ocorridas
durante a realização da
tarefa.
Representar, através
de uma visão ampla, o
curso
das
ações
ocorridas durante a
realização da tarefa.
Representar o plano de
execução da tarefa a
ser realizado
Representar
o
ambiente onde as
interações
ocorrem.
São características do
meio que influenciam
a execução das tarefas.
Oferecer subsídios aos
componentes do grupo
no entendimento do
processo de realização
de uma tarefa já
concluída.
• Nome
• Habilidades
• Interesses
• Formação
• Experiência
• Nome
• Componentes
• Papéis
• Habilidades
• Interesses
• Nome
• Descrição
• Objetivo
• Prazo
• Pré-requisitos
• Grupo envolvido
• Mensagens trocadas
pelo
grupo
• Noção de presença
• Gestos
executados
pelos indivíduos
• Grupo envolvido
• Ações realizadas
• Autor de cada ação
• Objetivo de cada
ação
• Papéis na interação
• Regras do plano
• Metas
• Responsabilidades
• Padrões de qualidade
• Regras do ambiente
• Procedimentos
padronizados
• Estratégias
padronizadas
• Prazos institucionais
• Nome da tarefa
• Objetivo da tarefa
• Plano de trabalho
• Ações realizadas
• Autor de cada ação
• Objetivo de cada
ação
• Justificativa de cada
ação
• Organização
• Local de Trabalho
• Horário de trabalho
• Dados pessoais
• Página pessoal
• Experiência
• Estrutura
organizacional
• Sede geográfica
• Horário de trabalho
• Homem/hora
• Ações
a
serem
realizadas
• Restrições
• Tecnologia envolvida
• Ações realizadas
• Objetivo de cada
ação
• Justificativa de cada
ação
• Autor de cada ação
• Justificativa de cada
ação
• Versões dos artefatos
• Data de realização de
cada
ação.
• Estratégias
• Procedimentos
de
coordenação
• Plano de trabalho
• Estrutura
organizacional
• Decisões políticas
• Restrições
financeiras
• Plataforma
de
hardware
e
software
• Data de realização de
cada ação
• Versões de artefatos
• Informações
dos
outros contextos que
tenham sido utilizadas
de forma relevante na
execução da tarefa.
elementos em questão estavam relacionados com apoio à
atividade de coordenação, como a quantidade de contribuições e a
participação de cada participante na pré-reunião, e a identificação
de conflitos indesejáveis [13].
Na Tabela 2 são apresentados os elementos de contexto
identificados na versão de Pré-reunião COPSE-Web analisada,
chamada versão A. ‘OK' significa que a aplicação disponibiliza a
informação de contexto, já o ‘X ' que o elemento está ausente no
groupware. Nesta versão, os mecanismos que fornecem estas
informações foram desenvolvidos sem nenhum apoio de um
framework conceitual. Todos os elementos foram baseados em
estudos e análises em ferramentas já desenvolvidas. Na primeira
avaliação observou-se uma carência de informação em vários dos
tipos de contexto propostos. Em contrapartida, foram percebidos
alguns elementos de contexto que não estavam descritos. Os
A partir desta primeira análise percebeu-se que as atividades de
coordenação deveriam ser melhoradas. Uma descrição mais
detalhada desta análise encontra-se em [13]. Este foi o ponto de
partida para a definição de um conjunto de informações de
contexto a ser acrescentado ao framework apresentado, ou seja, o
contexto de coordenação. Esta avaliação pôde ser obtida através
de estudos de casos.
32
de pré-reunião. Uma primeira situação na qual este fato pode
acontecer é quando um coordenador se ausenta por um período de
tempo e, no momento do seu retorno necessita entender, por
exemplo, o motivo pelo qual um participante deixou de interagir.
Outra situação na qual a necessidade de contextualizar as
atividades do coordenador se faz necessária é quando dois
coordenadores não entendem um contexto comum no qual eles
estão atuando, e, como resultado, têm as atenções dirigidas para
aspectos diferentes da pré-reunião. Por exemplo, um coordenador
está acompanhando um eventual conflito entre dois participantes
da pré-reunião. A partir de um determinado instante, este
coordenador necessita interromper as suas atividades. Em seguida,
um segundo coordenador dá continuidade às atividades de
coordenação, porém não identifica prontamente tal conflito. Este
fato se deve a inexistência de mecanismos para revelar possíveis
conflitos indesejáveis, bem como a formas pelas quais eles foram
resolvidos previamente.
Para aumentar a efetividade da coordenação, alguns mecanismos
foram melhorados principalmente em relação à interface como,
por exemplo, o participômetro e o contribuitômetro [6]. Tais
mecanismos foram disponibilizados ao coordenador no sentido de
identificar os percentuais de participação e de contribuição.
Através destes percentuais, o coordenador pode identificar
aqueles participantes que não estão preparados, ou então, estão
desmotivados para a atividade. Quanto mais cedo o coordenador
puder identificar tais índices, atitudes poderão ser tomadas no
sentido de corrigir eventuais falhas.
Outros mecanismos foram implementados, tais como o
“impactômetro” e o “conflitômetro” [6]. O primeiro mecanismo,
juntamente com o “contribuitômetro”, busca qualificar as
contribuições pelo impacto causado por elas. Na aplicação de préreunião este impacto está associado à quantidade de mensagens
geradas por uma contribuição. Já o segundo busca auxiliar o
coordenador na identificação de conflitos indesejáveis como por
exemplo, aqueles que podem polarizar uma atividade de
discussão, ou desviar o seu foco [6].
Sistemas como o SISCO [3][10] oferecem apoio à coordenação
através de mecanismos como o “participômetro” [6]. Tal
mecanismo foi projetado para oferecer informações sobre o
percentual de participações de cada membro do grupo. A partir
dessas informações deve ser possível definir diretrizes para
promover a discussão fornecendo condições para que o percentual
de participação aumente, provavelmente através da motivação dos
membros do grupo. Entretanto, quando alguns coordenadores
estiverem ausentes por um período, ao retornarem eles precisam
obter informações sobre as decisões tomadas previamente. Por
exemplo, por que alguns itens da discussão estão com uma baixa
participação, e quais as decisões já tomadas para aumentar este
percentual?
Além desses, outros mecanismos foram projetados para a geração
de agrupamentos de dados na pré-reunião de acordo com as
necessidades do coordenador. Tais mecanismos podem ser criados
durante a pré-reunião e disponibilizados também a todos os
participantes, se necessário. Dentre eles cabe citar os gráficos para
a visualização dos percentuais das categorias de mensagens
(questões, posições e argumentos) por participante. Desta forma,
diferentes coordenadores podem direcionar as atenções para
percentuais − e as suas evoluções − ao longo da discussão. Além
de reduzir a sobrecarga de informações no espaço de trabalho, tais
agrupamentos têm como objetivo direcionar a atenção dos
participantes para informações relevantes.
Além dessas questões outras precisam ser consideradas, tais
como: por que uma discussão não evoluiu? Por que outros
participantes foram convidados a participarem?
Na nova versão da aplicação de Pré-reunião COPSE-Web,
denominada versão B, também foram disponibilizados outros
elementos de contexto, além dos mecanismos de percepção
citados anteriormente. Dentre eles podemos citar aqueles
relacionados ao contexto individual e ao contexto da interação,
conforme apresentado na Tabela 2. Outros elementos não foram
implementados nesta versão, como por exemplo, aqueles
relacionados ao contexto do ambiente.
5. AVALIANDO CONTEXTO EM
SISTEMAS DE PRÉ-REUNIÃO
Para a condução da pesquisa, dois estudos de casos, anteriormente
referenciados, foram inicialmente realizados. Em ambos a
aplicação de pré-reunião foi avaliada considerando os
mecanismos de percepção projetados anteriormente e os
elementos de contexto inerentes a eles. Procurou-se também
avaliar o framework conceitual de contexto para uma aplicação de
pré-reunião.
O segundo passo na avaliação de elementos de contexto em
sistemas de pré-reunião se deu através de um terceiro estudo de
caso, já com a versão B do sistema de Pré-reunião COPSE-Web.
Neste momento a atenção estava voltada para as informações que
permitissem apoiar as atividades de coordenação. Considerou-se
também que diferentes coordenadores devem possuir mecanismos
para acompanhar o andamento da pré-reunião, e intervir se
necessário em diferentes momentos. Para tanto, procurou-se
identificar se os novos elementos de contexto auxiliaram tais
atividades
Foram utilizadas fontes de dados quantitativas e qualitativas
durante a coleta de dados, são elas: questionários, observações
diretas e entrevistas após os estudos de caso.
No primeiro estudo de caso o grupo era composto de sete
estudantes de graduação. Todos eles foram treinados em conceitos
de groupware bem como em aplicações de suporte a reuniões. Ao
longo de duas semanas, os participantes discutiram como
melhorar infra-estrutura de laboratório de informática utilizado ao
longo do curso. Durante esse período, foram identificados ajustes
necessários no experimento (tempo previsto, tema de discussão, e
tempo de treinamento) como também questões do questionário.
Durante interações assíncronas, nas quais existe mais de um
coordenador, a necessidade de contextualização de uma maneira
rápida e eficiente torna-se imperativa. Situações nas quais
ocorrem perda e conflito de contexto [4] apontam para
necessidades de contextualizações específicas para as aplicações
33
Tabela 2 – Elementos Contextuais identificados na ferramenta Pré-reunião COPSE-Web (adaptado de [21])
Individual
(Síncrono
Assíncrono)
e
Grupo
(Síncrono
Assíncrono)
e
Tarefa
(Síncrono
Assíncrono)
e
Interação
(Síncrono)
Interação
(Assíncrono)
Planejamento
(Síncrono
e
Assíncrono)
Ambiente
(Síncrono
Assíncrono)
Histórico
(Síncrono
Assíncrono)
Organização
Local de trabalho
Horário de trabalho
Dados pessoais
Página pessoal
Experiência
Estrutura organizacional
Sede geográfica
Horário de trabalho
COPSE-Web
Pre-meeting
(versão A)
X
X
X
Ok
X
X
X
X
X
COPSE-Web
Pre-meeting
(versão B)
X
X
X
Ok
X
Ok
X
X
X
Homem/hora necessário
Ações a serem realizadas
Restrições
Tecnologia envolvida
X
Ok
X
Ok
X
Ok
Ok
Ok
Ações realizadas
Autor de cada ação
Objetivo de cada ação
X
X
X
Ok
Ok
Ok
X
Justificativa de cada ação
X
Ok
Ok
Ok
Ok
Ok
Ok
Ok
Justificativa de cada ação
Versão de artefatos
Data de realização de cada
ação
X
X
Ok
X
X
Ok
Objetivo de cada ação
Papéis na tarefa
Regras no plano
Ok
Ok
X
Ok
Ok
X
X
X
Ok
Ok
Metas
Responsabilida-des
Padrões de qualidade
Regras do ambiente
Procedimentos
padronizados
Estratégias
padronizadas
Nome da tarefa
Descrição da tarefa
Objetivo da tarefa
Plano de execução
X
X
X
X
X
Ok
Ok
X
X
X
Estratégias
Procedimentos de
coordenação
Plano de execução
Ok
Ok
Prazos institucionais
Estrutura organizacional
Decisões políticas
X
X
X
Ok
X
X
X
X
Restrições financeiras
X
X
Ok
Ok
Ok
Ok
Ok
Ok
Ok
Ok
Ok
Ok
X
Ok
Ok
Ok
Ok
Ok
Ações realizadas
Ok
Ok
Autor de cada ação
Objetivo de cada ação
Justificativa de cada ação
Data de realização de cada
ação
Informações dos outros
contextos que tenham sido
utilizadas de forma relevante
na execução da tarefa
Ok
Ok
Exemplos de elementos
contextuais
Contextos
e
Nome
Habilidades
Interesses
Formação
Experiência
Nome
Componentes
Papéis
Habilidades
Interesses
Nome
Descrição
Objetivo
Prazo
Pré-requisitos
Grupo envolvido
Noção de presença
Mensagens
trocadas
pelo grupo
Gestos
executados
pelos indivíduos
Grupo envolvido
Ações realizadas
Autor de cada ação
COPSE-Web
Pre-meeting
(versão A)
Ok
X
X
X
X
Ok
Ok
Ok
X
X
Ok
Ok
Ok
Ok
X
X
Ok
Ok
COPSE-Web
Pre-meeting
(versão B)
Ok
Ok
Ok
Ok
Ok
Ok
Ok
Ok
Ok
Ok
Ok
Ok
Ok
Ok
X
Ok
Ok
Ok
X
e
Exemplos de elementos
contextuais
mecanismos de comunicação (Contexto de Interação). Além disso,
ficou claro em todas as fontes de coleta de dados que as atividades
de coordenação necessitavam de um apoio mais intenso
principalmente se considerarmos a necessidade de diferentes
coordenadores atuando em momentos diferentes. Tal fato pôde ser
observado quando um coordenador relatou a dificuldade para
comparar o percentual de participação e de contribuição, a partir
do momento em que aumenta a quantidade de membros do grupo.
Foi sugerido que tais informações fossem ordenadas de acordo
com a necessidade do(s) coordenador(es), por exemplo. Os
resultados destes experimentos encontram-se resumidos na Tabela
3 e discutidos com mais detalhes em [13].
O segundo estudo de caso teve como objetivo avaliar as mesmas
questões do primeiro, agora com os ajustes no experimento já
realizado. Ou seja, o interesse era confrontar resultados obtidos
previamente com o uso do framework e os elementos de contexto
identificados na pré-reunião. Doze participantes interagiram
durante aproximadamente duas semanas. O mesmo item proposto
no primeiro estudo de caso foi novamente discutido. Alguns dos
participantes começaram a discussão enquanto outros não estavam
interagindo no período.No momento em que o segundo grupo foi
convidado a participar, aproximadamente 50% do total dos itens
de discussão já tinham sido postados., o segundo grupo de
estudantes foi convidado a participar na discussão. Este fato
permitiu avaliar a eficácia de alguns mecanismos de percepção
assíncronos e as informações de contexto associadas a eles. De
uma forma geral, estes resultados evidenciaram uma necessidade
de revisão nas informações de contexto do grupo, bem como nos
A partir desses resultados novos mecanismos de percepção foram
implementados considerando-se sobretudo o framework de
elementos de contexto discutido previamente.
34
Tabela 3 – Resultados dos Estudos de Casos
Em percentual: (1) Discordo fortemente, (2) Discordo, (3) Não deseja opinar, (4) Concordo, (5) Concordo Fortemente.
Valor médio (µ) e Desvio padrão (δ).
δ
(5)
(4)
(3)
(2)
(1)
Estudo
Questões do Estudo de Caso
µ
de Caso
Sobre a percepção das atividades (contexto da interação):
(1) Os participantes tiveram dificuldade para identificar os
papéis definidos.
(2) Os mecanismos de percepção disponíveis permitiram
identificar quais são os demais participantes da pré-reunião e
em que ponto, exatamente, cada um estava trabalhando.
(3) Em algum momento, não foi possível identificar uma
determinada contribuição devido ao excesso de informação no
espaço de trabalho.
(4) Foi possível identificar, precisamente, onde cada
participante estava trabalhando.
(5) Foi possível identificar as contribuições de cada
participante
(6) Foi possível identificar as informações relacionadas à préreunião, tais como: objetivo, prazos e coordenador(es).
Sobre as atividades de coordenação (contexto de
coordenação):
(7) Os mecanismos de percepção disponíveis para as
atividades do coordenador/facilitador foram adequados para
conduzir a pré-reunião.
(8) Os mecanismos de percepção disponíveis para os membros
do grupo permitiram uma participação efetiva.
Sobre a comunicação (contexto da interação):
(9) Foi possível estabelecer um canal de comunicação entre os
participantes.
(10) Os mecanismos de comunicação foram suficientes para
estimulara cooperação e para gerar oportunidades de interação.
(11) A categorização de mensagens utilizada na ferramenta
contribuiu para flexibilizar a discussão
(12) A utilização de um espaço de trabalho compartilhado
facilitou o desenvolvimento das atividades de pré-reunião
8.3
16.6
71.4
16.7
42.9
58.3
50.0
28.6
58.3
33.4
58.3
66.7
16.7
66.7
14.3
16.7
33.3
28.6
33.3
16.7
33.3
8.3
-
3.4
2.3
3.0
3.7
4.0
3.3
3.2
3.7
3.8
4.3
2.7
3.5
0.90
0.92
1.51
1.03
1.00
1.49
1.07
1.25
0.92
0.47
1.03
0.76
50.0
50.0
-
-
100.0
100.0
-
-
4.0
4.0
1.5
1.5
-
0.5
0.5
-
28.6
71.4
28.6
8.3
85.7
8.3
16.7
25.0
8.3
16.7
-
28.6
58.3
50.0
28.6
57.1
50.0
33.3
50.0
33.3
28.6
16.7
50.0
14.2
33.3
66.7
14.2
25.0
50.0
3.3
3.8
4.5
2.6
3.6
4.1
4.7
2.4
3.9
4.2
1.49
0.92
0.50
0,90
1.05
0.86
0.47
1.05
0.86
1.07
1˚
2˚
3˚
1˚
2˚
3˚
1˚
2˚
3˚
1˚
2˚
3˚
1˚
2˚
3˚
1˚
2˚
3˚
16.7
28.6
14.3
8.3
-
28.6
58.3
14.3
25.0
16.7
28.6
25.0
33.3
16.7
8.3
8.3
8.3
-
66.7
16.7
1˚
2˚
3˚
1˚
2˚
3˚
50.0
50.0
-
1˚
2˚
3˚
1˚
2˚
3˚
1˚
2˚
3˚
1˚
2˚
3˚
14.3
-
Em seguida, um terceiro estudo de caso foi realizado tendo como
objetivo avaliar as mesmas questões apresentadas anteriormente;
porém, com uma nova versão da aplicação de pré-reunião. Neste
estudo um grupo composto por quatro alunos do programa de
iniciação científica interagiu no sentido de avaliar e propor
mudanças em relação ao programa do qual eles faziam parte.
Além desses alunos dois coordenadores apoiaram as discussões,
em períodos alternados. Tal fato teve como objetivo avaliar os
elementos de contexto fornecidos aos coordenadores para
apoiarem atividades assíncronas.
5.1 Discussões
Considerando os dados coletados principalmente através dos
questionários e resumidos na Tabela 3, as questões (2) e (4)
evidenciam que os elementos de contexto implementados
permitiram melhorar a apresentação das informações no espaço de
trabalho compartilhado.
Particularmente a questão (2) nos sugere que as informações
relacionadas ao contexto do indivíduo contribuíram de alguma
forma para a realização da pré-reunião. Além disso, os resultados
obtidos nas questões (5) e (6), em conjunto com as observações e
as entrevistas, apontam para uma melhoria nas informações sobre
o contexto da interação. Em ambas as questões observamos uma
média (µ) relativamente alta e um desvio padrão (δ) baixo.
Ao término deste período todos os participantes responderam ao
questionário proposto. Adicionalmente, os coordenadores
responderam a um questionário específico no intuito revelar
aspectos relacionados ao contexto de coordenação. Entrevistas e
observações diretas também foram utilizadas neste experimento
como fonte de coleta de dados.
Chamaram a atenção também os valores obtidos na questão (11).
Este resultado nos mostra que houve uma modificação em relação
aos resultados anteriores. Tal fato pode estar relacionado não
35
de participantes relatou que na maioria das vezes se perdia o
contexto no qual a mensagem foi inserida. A forma – hierárquica
– de apresentação das mensagens no espaço de trabalho
dificultava a identificação das novas mensagens principalmente
quando a quantidade de mensagens aumentava. Para solucionar
este fato a inserção de mensagens foi implementada em um outro
espaço de trabalho. Ao mesmo tempo a hierarquia de mensagens
foi mantida aberta indicando o contexto de inserção das mesmas.
apenas às alterações na apresentação das informações no espaço
de trabalho, mas sobretudo ao treinamento realizado previamente.
Esta observação foi confirmada pelas entrevistas informais ao
término do terceiro experimento. Embora os métodos de coleta de
dados utilizados sejam baseados em respostas subjetivas, a
maioria dos participantes informou que os novos mecanismos de
visualização do espaço de trabalho compartilhado também
poderiam reduzir sobrecarga de informação. Entretanto, tal fato
não pôde ser confirmado com os resultados da questão (12) ao
apresentar média e desvio padrão relativamente altos. Esta
informação nos leva a supor que alguns participantes tiveram
dificuldades para interagir através do espaço de trabalho, ou então
não identificaram precisamente o objetivo da questão. Tal fato
pôde ser confirmado através das entrevistas quando alguns
participantes relataram a dificuldade de visualização da discussão
a partir do momento em que a quantidade de mensagens aumenta.
6. CONCLUSÕES E TRABALHOS
FUTUROS
Este artigo discute aspectos do projeto de mecanismos de
percepção em sistema de pré-reunião. A hipótese considerada é a
de que a cooperação pode ser potencializada se elementos de
contexto forem fornecidos de um modo sistemático. Assim, uma
solução que considera um framework conceitual de contexto é
discutida para prover diretrizes para projetos de groupware.
Porém, o framework considerado não enfoca em particularidades
de aplicações específicas. Assim sendo, identificou-se a
necessidade de avaliar a aplicação deste framework para as
aplicações de pré-reuniões. Inicialmente, os elementos de
contexto mais importantes foram identificados, e percebeu-se
através de experimento que havia uma necessidade de
implementar novos elementos de contexto não contemplados na
aplicação, bem como novos mecanismos de coordenação. Estes
últimos poderiam apoiar as atividades de diferentes coordenadores
que, muitas vezes, necessitam interagir assincronamente através
de um mesmo espaço de trabalho. Como resultado eles precisam
de informações capazes de aproximar os diferentes contextos
percebidos por cada um.
Além disso, um percentual alto de mensagens com conteúdos
similares e pouco objetivas foi relatado por um coordenador.
Provavelmente, isto se relaciona à dificuldade de visualização de
mensagens e, consequentemente, a uma divergência de contextos
principalmente entre aqueles que se ausentaram da pré-reunião
por um período, e precisa ser confirmado em estudos posteriores.
Além do contexto da interação, as perguntas (5) e (11) nos
levaram a supor que a visualização das contribuições e a
categorização de mensagens utilizada foram suficientes para esta
aplicação. Porém, a pergunta (2) sugere que são necessárias mais
informações relacionadas ao contexto do indivíduo que
contribuiu. Este fato é associado com o desvio-padrão
relativamente alto obtido. Provavelmente, devem ser projetados
mecanismos adicionais como formas alternativas de visualizar os
relacionamentos entre as contribuições no espaço de trabalho
compartilhado. A forma hierárquica de apresentação das
informações não é a mais adequada para a visualização destes
relacionamentos. Na realidade, esta sugestão foi confirmada pelas
respostas e entrevistas. A maioria dos participantes informou que
os novos mecanismos de visualização do espaço de trabalho
compartilhado também poderiam reduzir sobrecarga de
informação.
Os resultados obtidos através de experimentos apontam para uma
direção na qual elementos de contexto ainda precisam ser
implementados, enquanto outros necessitam de melhorias
principalmente em relação à interface. Dentre os elementos não
implementados, cabe ressaltar aqueles relacionados ao contexto de
ambiente. Certamente eles exercem uma influência sobre os
outros elementos, e, portanto, poderiam enriquecer as informações
oferecidas aos coordenadores. Percebe-se também uma
necessidade de realizar outros experimentos considerando-se
sobretudo um período maior de interação e outras situações de
uso em diferentes grupos e organizações.
Em relação às atividades de coordenação, ambos os
coordenadores informaram através de questionários que os
mecanismos de apoio à percepção tais como, os relatórios de
participação e de contribuição, bem como o mecanismo para
informar os impactos das contribuições auxiliaram na condução
das atividades.
Além disso, é fundamental que sejam feitas outras avaliações com
as aplicações das fases de reunião e pós-reunião, no intuito de
revelar prováveis elementos de contexto ainda não identificados e
implementados.
Esta evidência também foi confirmada através das respostas a
outras questões nos questionários e nas entrevistas. Nos
questionários eles informaram que foi possível identificar
prontamente os percentuais de contribuições e de participações de
cada membro do grupo. Nas entrevistas, entretanto, foi informado
que à medida que a quantidade de participantes aumenta, torna-se
difícil relacionar tais contribuições e participações, bem como
identificar os eventuais conflitos. Assim sendo foi sugerida uma
ordenação dos percentuais para auxiliar as atividades do
coordenador.
7. REFERÊNCIAS
[1] Alarcon, R. A., Guerrero, L. A., Ochoa, S. F., Pino, J.A.
Context in Collaborative Mobile Scenarios. In Fifth
International and Interdisciplinary Conference on Modeling
and Using Context (CONTEXT´05), Workshop on Context
and Groupware. CEUR Proceedings, Vol. 133, Paris, France,
July 2005.
[2] Agostini, A., De Michelis, G., Grasso, M. A., Prinz, W., Syri,
A. Contexts, Work Processes, and Workspaces, Computer
Supported Cooperative Work: The Journal of Collaborative
Computing, Kluwer Academic Publishers, Vol.5, No.2-3,
1996, 223-250.
Também, em relação aos resultados anteriores, foi possível
identificar que a forma pela qual as mensagens foram
apresentadas no espaço de trabalho auxiliou nas atividades de
coordenação. Nos estudos anteriores um percentual significativo
36
[15] Dey, A. K., Salber, D., Abowd, G. D. A Conceptual
Framework and Toolkit for Supporting the Rapid
Prototyping of Context-Aware Applications. In HumanComputer Interaction Journal, 2001, v. 16(2-4), 97-166.
[3] Bellassai, G., Borges, M. R. S., Fuller, D. A., Pino, J. A.,
Salgado, A. C. SISCO: A tool to improve meetings
productivity. In Proc. of the I CYTED-RITOS International
Workshop on Groupware, Lisbon, Portugal, Sept. 1995, 149161.
[16] Dourish, P., Bellotti, V. Awareness and Coordination in
Shared Workspaces. In Proc. ACM Conference on Computer
Supported Cooperative Work (CSCW’92), Toronto, Canada,
Nov. 1992, 107-114.
[4] Borges, M. R. S., Brézillon, P., Pino, J. A., Pomerol, J.-Ch.
Dealing with the effects of context mismatch in group work.
In Decision Support Systems, accepted for publication.
[17] Greenberg, S. Context as a Dynamic Construct. In HumanComputer Interaction, Volume 16 (2-4), Lawrence Erlbaum
Associates Inc., 2001, 257-268.
[5] Borges, M. R. S., Brézillon, P., Pino, J. A. Bringing Context
to CSCW. In Proceedings of the 8th International
Conference on Computer Supported Cooperative Work in
Design. CSCWD´2004, Xiamen, China, May 2004, 161-166.
[18] Guerrero, L. A., Pino, J. A. Preparing Decision Meetings at a
Large Organization. In Proc. of the International Conference
on Decision Making and Decision Support in the Internet
Age (DSIAge’2002), Cork, Ireland, Jul. 2002, 85-95.
[6] Borges, M. R. S., Pino, J. A. Awareness Mechanisms for
Coordination in Asynchronous CSCW. In Proc. 9th
Workshop on Information Technologies and Systems (WITS
1999), Charlotte, North Carolina, Dec. 1999, 69-74.
[19] Pinheiro, M. K., De Lima, J. V., Borges, M. R. S. Awareness
em Sistemas de Groupware. In Proc. of the IDEAS 2001, San
Jose, Costa Rica, Abr. 2001, 323-335.
[7] Brézillon, P. Context in problem solving: A survey. In The
Knowledge Engineering Review, 1999, 14(1), 1-34.
[20] Rittenbruch, M. ATMOSPHERE: A Framework for
Contextual Awareness. In International Journal of HumanComputer Interaction, v. 14(2), 2002, 159-180.
[8] Brézillon, P. Making context explicit in communicating
objects. In Kintzig, C., Poulain, G., Privat, G., Favennec, P.N. (eds), Communicating with Smart Objects, London:
Kogan Page Science, 273-284.
[21] Rosa, M. G. P., Borges, M. R. S., Santoro, F. M. A
Conceptual Framework for Analyzing the Use of Context in
Groupware. In Favela, J., Decouchant, D. (eds), Groupware:
Design, Implementation, and Use. Proceedings of 9th
International Workshop on Groupware (CRIWG’03), Lecture
Notes in Computer Science, v. 2806, ISBN 3-540-20117-3,
Springer-Verlag, Autrans, France, Sept. 28 - Oct. 2. 2003,
300-313.
[9] Brézillon, P., Borges, M. R. S., Pino, J. A., Pomerol, J.-Ch.
Context-Awareness in Group Work: Three Case Studies. In
Proceedings of the IFIP International Conference on
Decision Support Systems, Decision Support in an Uncertain
and Complex Word, 2004, v.1, 115-124.
[10] Borges, M. R. S., Pino, J. A., Fuller, D. A., Salgado, A. C.
Key issues in the design of an asynchronous system to
support meeting preparation. Decision Support Systems –
The International Journal, 27, 1999, 269-287.
[22] Salvador, T., Scholtz, J., Larson, J. The Denver Model for
Groupware Design, SIGCHI Bulletin, Vol. 28, No.1, Jan.
1996, 52-58.
[11] Bostrom, R. P., Anson, R., Clawson, V. K. Group
Facilitation and Group Support Systems. In Jessup, L. M.,
Valacich, J. S. (eds), Group Support Systems – New
Perspectives, chapter 8, Macmillan Publishing Company,
New York, Maxwell Macmillan Canada, Toronto, Maxwell
Macmillan Int., New York, Oxford, Singapore, Sydney,
1993, 146-168.
[23] Santoro, F. M., Borges, M. R. S., Santos, N. Um framework
para estudo de ambientes de suporte à aprendizagem
cooperativa. In Revista Brasileira de Informática na
Educação, n. 04, 1999, 51-68.
[24] Siebra, S. A., Salgado, A. C., Tedesco, P. A., Brézillon, P. A
Learning Interaction Memory using Contextual Information.
In Fifth International and Interdisciplinary Conference on
Modeling and Using Context (CONTEXT´05), Workshop on
Context and Groupware. CEUR Proceedings, Vol. 133,
Paris, France, July 2005.
[12] Brézillon, P., Borges, M. R. S., Pino, J. A., Pomerol, J.-Ch.
Context-Awareness in Group Work: Three case Studies. In
Proc. of the 2004 IFIP Int. Conf. on Decision Support
Systems, Prato, Italy, 2004, 115-124.
[25] Vieira, V., Tedesco, P., Salgado, A. C. Towards an Ontology
for Context Representation in Groupware. In Fuks, H.,
Lukosch, S., Salgado, A. C., (eds.), Groupware: Design,
Implementation, and Use. Proceedings of 11th International
Workshop on Groupware (CRIWG’05), Lecture Notes in
Computer Science, v. 3706, ISBN 3-540-29110-5, SpringerVerlag, Porto de Galinhas, Brazil, Sept. 25 to 29, 2005, 367375.
[13] David, J. M. N., Rosa, M. G. P., Santoro, F. M., Borges, M.
R. S. Considering Context Elements in Pre-meeting Systems.
In Proc. of the 10th International Conference on CSCW in
Design, ISBN: 1-4244-0165-8, Southeast University,
Nanjing, China, May 2006, 209-214.
[14] David, J. M. N., Borges, M. R. S. Designing collaboration
through a web-based groupware infrastructure. In
International Journal of Computer Applications in
Technology, v. 19, n. 3/4, ISSN 0952-8091, Inderscience,
2004, 175-183.
37
Um Sistema de Recomendação de Especialistas Sensível
ao Contexto para Apoio à Colaboração Informal
Helô Petry
Vaninha Vieira
Patricia Tedesco
Ana Carolina Salgado
CIn/UFPE
C.P. 7851, Recife-PE
+55-81-21268430
CIn/UFPE
C.P. 7851, Recife-PE
+55-81-21268430
CIn/UFPE
C.P. 7851, Recife-PE
+55-81-21268430
CIn/UFPE
C.P. 7851, Recife-PE
+55-81-21268430
[email protected]
[email protected]
[email protected]
[email protected]
RESUMO
1. INTRODUÇÃO
Freqüentemente, pessoas precisam, para realização de sua tarefa,
de determinado conhecimento que só pode ser obtido através de
experiência e prática, que elas podem não possuir. Essas pessoas
podem economizar tempo e esforço se puderem interagir,
informalmente, com outras pessoas que já possuam esse
conhecimento. Um desafio da colaboração informal é
justamente identificar esses possíveis colaboradores, em função
de seus interesses, deficiências e contexto atual de trabalho. Este
artigo apresenta o ICARE (Intelligent Context Awareness for
Recommending Experts) um sistema de recomendação de
especialistas que utiliza o contexto do usuário e do especialista
para fazer recomendações mais ajustadas às necessidades do
usuário e, dessa maneira, facilitar a colaboração informal.
A crescente competitividade e exigência de lançamentos em
menos tempo de produtos cada vez melhores têm exigido que as
organizações otimizem seus processos de trabalho e passem a
contar cada vez mais com equipes trabalhando
colaborativamente para desenvolvimento das tarefas.
Uma questão importante quando se pensa em trabalho
colaborativo é como prover meios que melhorem a interação e
colaboração entre os indivíduos. Para que as atividades do grupo
sejam efetivas é necessário que seja viabilizada a comunicação,
o compartilhamento e o reuso de conhecimento entre os
indivíduos [11].
Reusar conhecimento está fortemente relacionado a explorar
melhor o capital humano existente dentro do grupo ou
organização, de modo a evitar gastos de tempo e dinheiro na
aquisição do conhecimento cada vez que ele for necessário.
Porém, o conhecimento nem sempre é algo facilmente acessível,
visto que ele pode estar armazenado como conhecimento tácito,
desorganizado dentro da cabeça dos indivíduos, e sua elicitação
pode não ser trivial [6].
ABSTRACT
Frequently, to better perform their tasks, people need knowledge
that can only be obtained through hands-on experience, which
they might not possess. Such people can save time and effort if
they can informally interact with others that have such
knowledge. A challenge in informal collaboration is to identify
these potential collaborators, taking into account their interests,
deficiencies and current work context. In this light, this paper
presents ICARE (Intelligent Context Awareness for
Recommending Experts), an expert recommendation system that
considers the context of both the user and the expert, in order to
provide recommendations that fit the users’ needs better and, in
this way, enhance the informal collaboration.
Muitas vezes, o indivíduo se depara com tarefas que demandam
conhecimento de um assunto que este não possui. Nessas
situações pode haver ganho de tempo se ele puder interagir com
algum especialista que o auxilie em um primeiro momento. No
entanto, pode ser bastante complexo identificar quem poderia
ser esse especialista, onde está e se está disponível para
colaborar com o indivíduo.
Palavras Chave
Um sistema que perceba esses potenciais colaboradores e os
coloque em contato trará um grande benefício ao trabalho
desenvolvido por ambos. Afinal, a comunicação direta torna
muito mais fácil e efetivo o compartilhamento dos
conhecimentos tácitos e habilidades entre os indivíduos.
Computação ciente de contexto, sistemas de recomendação,
colaboração informal, colaboração contextual.
Keywords
Context-aware
computing,
recommendation
opportunistic collaboration, contextual collaboration
Sistemas de Recomendação de Especialistas (SRE) são sistemas
desenvolvidos para produzir capital social e humano em uma
organização [10]. Eles podem ser vistos como uma tentativa de
oferecer acesso ao conhecimento implícito, difícil de ser
exteriorizado. SRE retornam referências para atores humanos
que são identificados como “especialistas” em um domínio
requerido [10].
systems,
20 a 22 de Novembro de 2006
Natal, RN, Brasil
© Sociedade Brasileira de Computação
Comissão Especial de Sistemas
Colaborativos
SRE podem ser usados para apoiar a colaboração informal
através da identificação de especialistas que possam ajudar
indivíduos na realização de suas tarefas. No entanto, para que
seja efetivo, o SRE precisa conhecer o contexto do especialista
que será recomendado, bem como do usuário que receberá a
Anais do III Simpósio Brasileiro de Sistemas Colaborativos, pp. 38-47.
38
Gutwin et al. apontam algumas observações relacionadas à
colaboração informal [5]: (i) são comuns em grupos colocalizados; (ii) em geral são breves e freqüentes; (iii) se
baseiam na percepção dos indivíduos sobre seu ambiente de
trabalho; (iv) podem ser iniciadas pela percepção de pessoas,
objetos, ações ou outras interações; (v) ocorrem, geralmente, de
forma pensada, de acordo com a necessidade dos participantes;
(vi) são fáceis de iniciar; e (vii) exigem, porém, um processo de
vários passos para que alguém se engaje na interação (e.g.
observar disponibilidade e/ou receptividade).
recomendação, de modo a buscar dentre os especialistas
existentes os mais viáveis para a situação atual do usuário. Outra
funcionalidade interessante é a identificação pró-ativa da
necessidade de recomendar um especialista a um usuário, com
base em seu contexto.
Este artigo apresenta a proposta de um SRE, denominado
ICARE (Intelligent Context Awareness for Recommending
Experts). O objetivo desse sistema é apoiar a etapa inicial de
uma colaboração informal, ou seja, identificar com quem o
usuário pode interagir e como iniciar essa interação. Para isso, o
ICARE recomenda especialistas de acordo com assuntos
relacionados à tarefa do usuário.
Como podemos observar, existem dois aspectos cruciais para
viabilizar a colaboração informal. Primeiro, é necessária uma
percepção sobre o ambiente de trabalho para identificar
indivíduos com os quais se possa colaborar. E, segundo, é
importante verificar a viabilidade dessa interação, seja em
termos da disponibilidade dos envolvidos ou da receptividade
dos indivíduos para essa interação.
O ICARE é um SRE sensível ao contexto dos especialistas e dos
usuários que receberão a recomendação. Ele usa esse
conhecimento contextual para fazer recomendações de acordo
com as necessidades e disponibilidades atuais desses indivíduos.
Os especialistas que podem ser recomendados são classificados
e apresentados, preferencialmente, em função do que será mais
útil para o usuário no momento, como por exemplo, a reputação
do especialista, sua disponibilidade, o nível de especialidade, a
proximidade social, ou a proximidade física.
No entanto, esses potenciais colaboradores podem não estar
fisicamente próximos, de modo a se esbarrar pelos corredores da
empresa, e podem não possuir a priori conhecimento que
permita identificar essa possibilidade de interação. Dessa forma,
faz-se necessário um apoio computacional que viabilize o
estabelecimento desse tipo de colaboração, ou seja, que coloque
os dois indivíduos em contato.
O conhecimento contextual permite que o ICARE faça
recomendações mais adequadas e viáveis a uma colaboração
imediata. Por exemplo, possivelmente não é útil para um usuário
que precise criar um diagrama UML em seu projeto, e que esteja
com problemas no processo RUP, receber a recomendação de
um especialista em RUP que também é gerente de um projeto
com prazo esgotando em dois dias.
Para apoiar a colaboração informal, o sistema deve ter
conhecimento sobre informações relacionadas ao contexto atual
das pessoas, como: onde estão; o que estão fazendo; presença;
disponibilidade; interesses; e habilidades. Informações sobre
artefatos em uso e sobre o ambiente computacional também são
úteis, pois a observação de um artefato, documento, ou software
em execução por um usuário pode conduzir a uma interação. Por
exemplo, João está começando a trabalhar com ontologias e
sabe que o Protégé é uma ferramenta para edição de ontologias,
porém está com dificuldades em sua utilização. Se João percebe
que Paulo trabalha ou está usando o Protégé, essa informação
pode ajudá-lo a ver em Paulo uma pessoa com quem pode
interagir para tirar dúvidas sobre o trabalho com a ferramenta.
O restante deste artigo está organizado como segue: na Seção 2,
serão discutidos aspectos relacionados à colaboração informal; a
Seção 3 expõe o conceito de contexto e como o mesmo pode ser
utilizado para melhorar a colaboração; na Seção 4 são discutidos
os desafios subjacentes aos SRE e são apresentados alguns SRE
existentes na literatura; a Seção 5 descreve a proposta do
ICARE, sua arquitetura e componentes principais; a Seção 6
discute um exemplo de uso; e, finalmente, a Seção 7 apresenta
as considerações finais e direções para trabalhos futuros.
Percebe-se que o conhecimento contextual é fundamental para
viabilizar a identificação e estabelecimento de colaborações
informais. A próxima seção discute o que é contexto e o seu
papel em sistemas colaborativos de modo geral.
2. COLABORAÇÃO INFORMAL
Uma atividade colaborativa pode ocorrer de diversas maneiras.
As pessoas podem agendar reuniões para um trabalho planejado,
podem ser alocadas para tarefas compartilhadas ou podem
simplesmente interagir informalmente quando uma oportunidade
para um trabalho compartilhado se apresente [5]. Colaboração
informal são interações não planejadas e que ocorrem de forma
oportunista.
3. CONTEXTO NA COLABORAÇÃO
Nas mais diversas situações do dia-a-dia as pessoas utilizam
conhecimento do contexto para delimitar e direcionar suas ações
e comportamentos. As mensagens trocadas para comunicação
trazem junto um contexto associado que apóia a compreensão
do seu conteúdo. Contexto ajuda a melhorar a qualidade da
conversação e a compreender certas situações, ações ou eventos.
Contexto é o que está por trás da habilidade de discriminar o que
é ou não é importante e, com isso, permite que os indivíduos
gerenciem a grande quantidade de informação que os cerca em
um dado instante.
Muitas afinidades e oportunidades para colaboração e troca de
conhecimento são descobertas em interações que ocorrem
informalmente, como em conversas na sala do cafezinho da
empresa, ou em happy hours no final do expediente. Um
exemplo é o gerente de uma equipe de desenvolvimento de
software que recebe a solicitação de um novo projeto que exige
conhecimento sobre construção de navios. Em conversas
informais na empresa ele expõe para colegas essa situação para
ver se alguém conhece uma pessoa que tenha essa especialidade.
Durante uma dessas conversas ele se depara com um colega de
outro projeto, que já trabalhou no desenvolvimento de software
para suporte à construção de navios.
Contexto é uma importante ferramenta para apoiar a
comunicação entre pessoas e sistemas computacionais, pois
ajuda a diminuir ambigüidades e conflitos, aumenta a
expressividade dos diálogos, e possibilita a melhoria dos
serviços e informações oferecidos pela aplicação. Sistemas
sensíveis a contexto são aqueles capazes de entender o contexto
39
dos usuários e antecipar suas necessidades, em termos de
serviços e/ou informações relevantes [4].
4. SISTEMAS DE RECOMENDAÇÃO DE
ESPECIALISTAS
Bazire e Brézillon coletaram um conjunto de aproximadamente
150 definições de contexto, vindas de diferentes domínios e
concluíram que o contexto atua como um conjunto de restrições
que influenciam o comportamento de um sistema embutido em
uma dada tarefa e que a definição de contexto depende da área
de conhecimento à qual pertence [1].
Um sistema de recomendação de especialistas (SRE) é um
sistema que retorna referências para atores humanos que são
identificados como “especialistas” no domínio requisitado [10].
Uma vez que conhecimento, em termos de experiência,
habilidades ou interesses, está ligado de forma inerente a atores
humanos, SRE têm surgido, focando na conexão entre pessoas
que precisam trocar informações.
O uso do contexto é bem conhecido e amplamente propagado
em aplicações de computação ubíqua [3]. No entanto, existe um
interesse crescente em utilizar esse conceito em outras áreas,
como sistemas colaborativos para facilitar o entendimento e
cooperação entre os membros do grupo, e ajudar a melhorar a
coesão e eficiência do grupo [2]. Nesses sistemas, o conceito de
contexto já está presente, embora associado a tópicos como
percepção e memória do grupo [2].
Existem diversos SRE desenvolvidos (e.g. [7-10]). Eles utilizam
diversas técnicas de construção de perfis, abordagens de
recomendação e critérios para determinar se uma pessoa é um
especialista e em qual área do conhecimento. Mas nenhum
desses sistemas leva em consideração o contexto do usuário que
receberá a recomendação ou do especialista possivelmente
recomendado. Acreditamos que um SRE sensível a contexto
pode ser mais eficiente e inteligente, pois pode levar em
consideração o contexto do usuário e, portanto, fazer
recomendações mais direcionadas às suas necessidades.
As informações contextuais relevantes para sistemas
colaborativos diferem bastante do seu uso em computação
ubíqua. Nesse último, o contexto se baseia muito em
informações que podem ser adquiridas por meio de sensores
físicos, como localização, dispositivos e informações sobre o
ambiente físico. Em sistemas colaborativos, as informações
contextuais de interesse são relativas ao ambiente virtual de
trabalho, organização do grupo, características e papéis dos seus
membros, artefatos compartilhados, divisão de tarefas, prazos,
objetivos, entre outras.
Um dos desafios enfrentados na recomendação de especialistas é
exatamente a definição do que considerar como especialista. Ou
seja, o que faz uma pessoa ser considerada um especialista? Que
informações são necessárias para se afirmar que uma pessoa seja
um especialista em determinada área do conhecimento? O que
difere um especialista em determinado campo de conhecimento
de uma pessoa leiga nesse campo? Esse problema se reflete nos
SRE existentes. Cada sistema utiliza diferentes indicativos de
especialidade e diferentes fontes dessa informação.
No entanto, essas informações, ao contrário das adquiridas por
sensores físicos, não possuem padrões para sua representação.
Visando estruturar informações de contexto relacionadas a esses
ambientes, Vieira et al. propuseram uma ontologia para
representação de contexto em sistemas colaborativos [12]. Essa
ontologia classifica o contexto em três classes principais:
contexto organizacional, que representa a informação contextual
relativa a toda a estrutura organizacional do grupo, como seus
membros, o papel que cada um desempenha na execução de uma
tarefa, em um projeto específico; contexto da interação, que
indica as informações referentes ao contexto de uma interação
que está acontecendo (síncrona) ou que já ocorreu (assíncrona),
em termos dos estados dos artefatos compartilhados e das
ferramentas utilizadas; e contexto físico, que contém
informações sobre os elementos físicos que caracterizam o
ambiente do usuário.
Por exemplo, a depender do Indicativo de Especialidade (IE)
considerado, um especialista em Ornitorrincologia 1 é:
Devido à natureza da informação contextual, a aquisição do
contexto em sistemas colaborativos exige uma maior
participação do usuário no fornecimento de algumas dessas
informações. Essa demanda extra pode desmotivar o usuário a
utilizar a ferramenta ou pode levá-lo a preencher de forma
errônea ou incompleta. Os benefícios no uso do contexto devem,
pois, ser percebidos logo pelo usuário para motivá-lo a continuar
alimentando o sistema.
1.
Um autor freqüente de artigos
Ornitorrincos (IE = publicações);
2.
Um orientador experiente de trabalhos acadêmicos em
Ornitorrincologia, como dissertações de mestrado e teses
de doutorado (IE = orientações acadêmicas);
3.
Um profissional experiente
(IE = tempo de experiência);
4.
Uma pessoa com vários certificados em Ornitorrincologia
(IE = certificações);
5.
Um profissional que já participou de inúmeros projetos em
Ornitorrincologia e, de preferência, projetos bem
sucedidos (IE = participação em projetos);
6.
Uma pessoa que participa bastante de fóruns on-line e
costuma responder a dúvidas sobre Ornitorrincologia
postadas nesses fóruns (IE = participação em fóruns).
em
científicos
sobre
Ornitorrincologia
Fica evidente que a melhor definição de um especialista vai
depender de quem está buscando o especialista e qual a tarefa
que essa pessoa tem em mãos. Por exemplo, se o SRE está
sendo usado por alguém que precisa escrever um artigo sobre
Web Semântica, a melhor definição de especialista para esse
usuário é a primeira definição dada acima (autor experiente). Já
um programador que pede ao SRE um especialista em
programação distribuída pode preferir um especialista
caracterizado pela 4ª definição (com certificados). Mas os SRE
O conhecimento do contexto dos usuários é fundamental para
viabilizar a colaboração informal, tanto para identificar os
indivíduos com os quais se pode colaborar, quanto para verificar
o melhor momento para solicitar essa interação. A próxima
seção discute os conceitos associados a sistemas de
recomendação de especialistas.
1
40
Área de conhecimento fictícia usada como exemplo
existentes atualmente não possuem essa flexibilidade. São
construídos levando em consideração uma definição e não
permitem que o usuário escolha o tipo de especialista que
melhor lhe convém.
x
Proximidade. Caso a informação de localização das
pessoas envolvidas seja disponível, o SRE pode dar mais
importância para especialistas fisicamente próximos do
usuário. Afinal, um contato físico pode ser mais efetivo.
Outro desafio dos SRE é saber onde procurar pelos especialistas.
Algumas possibilidades são: (i) páginas de publicações
científicas (CiteSeer 2, por exemplo); (ii) fóruns na Internet; (iii)
páginas amarelas da organização/empresa, se disponível.
x
Disponibilidade. Se o SRE puder informar se um
especialista está ocupado (ou quão ocupado), pode dar a
opção de o usuário abordar apenas alguém que tenha mais
tempo para colaborar.
Também podemos perceber que essas fontes de especialistas
mudam de acordo com a definição de especialista utilizada. O
ideal seria que a fonte do SRE também pudesse ser variada, de
acordo com a necessidade atual do usuário. Novamente, os SRE
atuais não atendem essa necessidade, já que mantêm fixa a
origem dos especialistas recomendados.
x
Rede social. O SRE prioriza especialistas que conhecem
algum amigo ou conhecido do usuário, facilitando a
abordagem ao especialista.
4.1 Trabalhos Relacionados
Alguns SRE existentes na literatura são discutidos a seguir.
Essas fontes são utilizadas para gerar um perfil do usuário, ou
seja, definir quais áreas do conhecimento representam as
especialidades ou interesses do usuário. Reichling et al. [10]
apresentam três classes de SRE de acordo com os tipos de dados
utilizados na geração do perfil do usuário:
1.
2.
3.
O TABUMA (Text Analysis Based User Matching Algorithm)
[10] é uma instância do Framework ExpertFinding e utiliza
documentos de texto fornecidos pelo usuário para estimar suas
preferências. O sistema gera perfis de usuários a partir de
documentos de texto através de métodos lingüísticos para
extração de palavras-chave. Dois passos são realizados
assincronamente: (1) criação do perfil a partir de documentos
diversos e (2) matching dos perfis entre si. O passo 1 é uma ação
realizada perifericamente para manter os perfis dos usuários
atualizados. O passo 2 é executado por um pedido do usuário.
Um ponto forte desse sistema é a flexibilidade obtida com a
liberdade de fornecer qualquer tipo de documento de texto. Um
ponto negativo é a necessidade de o usuário deliberadamente
escolher um conjunto de documentos que ele considere
representante do seu conhecimento. Além do custo para o
usuário realizar essa tarefa, esse método pode não ser
completamente confiável.
Dados históricos: lista dos endereços favoritos do usuário
ou histórico de navegação são fontes de dados históricos
do usuário que possivelmente representam os interesses ou
competências do usuário.
Documentos: documentos que são escritos, lidos ou
revisados pelo usuário parecem ser outra fonte de dados
indicativa dos interesses do usuário. ‘Documentos’
incluem documentos de texto, assim como e-mails ou
mensagens para grupos de discussão.
Rede social: analisar o ambiente social do usuário é outro
método de avaliar o usuário. A idéia básica é que usuários
que colaboraram no passado possivelmente colaborarão
com sucesso no futuro.
O Sistema HALe [8] encontra conexões (implícitas e explícitas)
entre pessoas a partir das suas comunicações por e-mail.
Relações entre os usuários e tópicos de interesse também são
extraídos dos textos dos e-mails. São utilizadas técnicas
lingüísticas para minerar essas associações. Portanto, esse
sistema considera especialista uma pessoa que escreve muitos emails sobre o assunto. O ponto forte do HALe é sua
transparência para o usuário, que não tem suas atividades
perturbadas pelo sistema. O ponto negativo é a quebra da
privacidade do usuário, já que seus e-mails são monitorados.
O terceiro desafio dos SRE é a apresentação ao usuário dos
especialistas na área de interesse encontrados. Afinal, a ordem
dos resultados mostrados é importante. O usuário dificilmente
estará disposto a avaliar todos os especialistas encontrados.
Estamos acostumados a receber resultados de consultas
ordenados por relevância. Portanto, é necessário dar prioridade
aos especialistas mais recomendáveis encontrados, ou seja,
aqueles que mais se adequam às necessidades do usuário. Esse
ranking dos especialistas obtidos também pode ser feito de
acordo com diversos critérios, como:
2
x
Grau de especialidade, se disponível. Caso o indicativo de
especialidade utilizado possibilite uma quantificação, além
de uma classificação simples: especialista e não
especialista.
x
Reputação do especialista, calculada em função de
recomendações anteriores e do grau de especialidade. Ou
seja, outra pessoa no passado também procurou um
Ornitorrincólogo e recebeu como resultado uma referência
a José da Silva. O usuário entrou em contato com José da
Silva, tirou todas suas dúvidas e depois afirmou ao SRE
que recomendaria o especialista José da Silva. Assim, a
reputação do especialista José da Silva é melhorada.
O Expertise Recommender (ER) [9] baseia-se na idéia de que
relacionamentos são um fator chave para cooperação dentro de
organizações. O sistema filtra suas recomendações de acordo
com a rede social do requerente. De maneira simplificada, o
processo de recomendação do ER é composto de dois passos.
Primeiro, o ER encontra um conjunto de indivíduos que
provavelmente têm a especialidade necessária. Então, essas
potenciais recomendações são combinadas com a pessoa (que
está procurando a especialidade) usando uma rede social.
Durante a avaliação do sistema, percebeu-se um trade-off entre
recomendar a pessoa mais capacitada ou a pessoa com a qual se
pode interagir mais facilmente. O ponto forte do ER é
considerar o contexto social do usuário e ser flexível quanto aos
indicativos de especialidade utilizados e suas fontes de dados. O
primeiro ponto negativo do ER é utilizar técnicas etnográficas
(caras e demoradas) para levantar as redes sociais existentes na
organização. O segundo ponto negativo do ER é a necessidade
de configuração de acordo com uma heurística específica de
http://citeseer.ist.psu.edu
41
Cada sistema apresentado tem uma visão de especialista
definida a priori e é construído dirigido por essa definição. Ou
seja, um especialista é quem lê muito sobre o assunto, portanto
tem vários documentos sobre esse assunto. Ou um especialista é
quem publica artigos sobre o assunto, portanto aparece em
várias páginas da Internet, inclusive páginas com listas de
publicações.
domínio usada para caracterizar um especialista. Por exemplo,
em uma empresa específica de desenvolvimento de software, o
especialista em determinado código produzido no passado é o
programador que fez a última alteração no código. Nesse caso, o
sistema é configurado para acessar o banco de dados que
registra alterações feitas nos artefatos (assim como o autor e
data das alterações) e obter o nome do funcionário responsável
pela última alteração.
Neste trabalho, propomos o ICARE (Intelligent Context
Awareness for Recommending Experts). ICARE é um SRE que
utiliza o contexto de trabalho do usuário que receberá a
recomendação e do especialista a ser recomendado, se possível
(caso o sistema responsável pela aquisição das informações de
contexto esteja instalado na máquina do especialista). O sistema
utiliza o contexto do usuário (tarefa em que está envolvido,
perfil de interesses e habilidades) para encontrar uma definição
de especialista mais adequada para este contexto. Em função da
definição de especialista, a escolha das fontes de informações
sobre estes é flexibilizada. O contexto também é usado para
ajudar no ranking dos resultados encontrados: dar prioridade aos
especialistas que melhor atendam às necessidades do usuário no
contexto atual.
O ReferralWeb [7] utiliza a rede social do ator para fazer
recomendações. O objetivo é reconhecer comunidades baseadas
na co-autoria de artigos científicos. ReferralWeb considera
como evidência de relacionamento direto entre duas pessoas a
co-ocorrência de seus nomes, localizados próximos um do outro,
em documentos públicos disponíveis na Web. Esses documentos
usados como fontes incluem listas de co-autores em artigos
técnicos e citações de artigos. ReferralWeb assume, por
exemplo, que o nível de especialidade de uma pessoa em um
determinado tópico varia de forma monotônica com o número
de documentos em que as palavras-chave e a pessoa aparecem.
Portanto, um especialista em um assunto é considerado aquele
cujo nome aparece em muitas páginas de Internet junto com o
assunto em questão. Para localizar documentos relevantes para
uma pessoa, o ReferralWeb usa um motor de busca genérico
(AltaVista). Um ponto forte do ReferralWeb é a identificação de
grupos de especialistas e o grau dos relacionamentos entre esses
especialistas. Mas o ReferralWeb não possui um mecanismo de
busca específico para especialistas.
Para obter as informações de contexto necessárias para sua
atividade, o ICARE utiliza os serviços de aquisição, análise e
gerenciamento de contexto providos pelo CoMGroup (do inglês
Context Manager for Groupware) [12]. O CoMGroup é um
gerenciador de contextos responsável por perceber o foco de
trabalho corrente do usuário e prover mecanismos de raciocínio
e inferência que permitam identificar qual o contexto
correspondente a esse foco, a partir da manutenção de uma base
de conhecimento contextual. Essa ferramenta é acoplada ao
ambiente computacional de um usuário para obter seu contexto.
ICARE e CoMGroup possuem uma API de comunicação, como
ilustra a Figura 1, através da qual o ICARE solicita e recebe as
informações de contexto do usuário monitorado pelo
CoMGroup. Portanto, para considerar o contexto de um usuário
ou especialista, este precisa possuir o CoMGroup instalado em
seu ambiente computacional.
A Tabela 1 resume as principais características dos SRE
apresentados, comparando as técnicas utilizadas para construir
os perfis dos usuários e que tipo de informação é considerada
para indicar que uma pessoa é um especialista.
Tabela 1 Sistemas de Recomendação de Especialistas
Ferramenta
Indicador de
especialidade
Técnica para
construção do perfil
do usuário
TABUMA
Arquivos de texto
não-estruturados
fornecidos pelo
usuário
Métodos automáticos
de análise de texto
HALe
Volume de e-mails
enviados sobre o
assunto
Análise lingüística de
e-mails
Expertise
Recommender
Heurística específica
do domínio. Ex:
última pessoa que
alterou um código
Arquitetura deixa a
questão em aberto.
Ex: minerar BD em
busca de registros de
alterações de código
ReferralWeb
Número de páginas
em que as palavraschave e a pessoa
aparecem
Mineração de dados
na Web
Figura 1 Aquisição de Contexto pelo ICARE
O ICARE possui mais uma interface de comunicação, a
Interface de Recomendação (Figura 1), por onde recebe as
solicitações de recomendação e as especialidades requeridas.
Essa Interface pode ser utilizada diretamente pelo usuário,
5. ICARE: UM SRE SENSÍVEL A
CONTEXTO
Avaliando os SRE existentes, verificamos a necessidade de
maior flexibilidade na definição de especialista pelos sistemas.
42
requerido. Portanto, o Recuperador de Especialistas é
responsável por varrer uma lista de pessoas cujas especialidades
são conhecidas (ou calculadas ou inferidas pelo sistema) e
identificar aquelas especialistas no assunto em questão.
através de um módulo de interface gráfica que apenas recebe as
palavras-chave digitadas e as repassa para o ICARE, ou por um
Agente Recomendador. Esse agente obtém o contexto do
usuário através do CoMGroup e decide quando fazer uma
recomendação e em que especialidade.
Essa busca envolve alguns sub-problemas. Primeiro, como
definir um especialista. Como discutido anteriormente, a melhor
definição vai depender do contexto do usuário: em qual
atividade está envolvido e em que o especialista irá colaborar.
Assim, a etapa de recuperação de especialistas utiliza duas
informações de contexto do usuário: seu perfil e atividade atual.
As possíveis informações contextuais obtidas pelo ICARE
variam de acordo com o ambiente computacional e com as
fontes de contexto cadastradas pelo CoMGroup do usuário.
Alguns exemplos de informações de contexto possivelmente
utilizadas pelo ICARE são: (i) o calendário ou agenda do
usuário (e do especialista, se possível); sabendo das atividades
planejadas das pessoas, o sistema pode inferir a disponibilidade
delas; (ii) ferramenta(s) sendo usada(s) no momento, como
navegador, editor de texto, ferramenta de desenvolvimento de
software, visualizador de pdf; de posse dessas informações o
ICARE pode inferir a atividade atual do usuário, como: lendo,
escrevendo ou respondendo e-mails; (iii) perfil do usuário (e.g.
desenvolvedor, estudante, professor, gerente); ajuda a identificar
que tipo de especialista é mais apropriado; (iv) interesses/
habilidades; serve para alinhar o conhecimento do especialista
recomendado com o do usuário, além de possibilitar que o
usuário recebedor da recomendação também possa ser um
especialista a ser recomendado.
O ICARE utiliza uma função de utilidade que leva em
consideração todas essas possíveis definições, dando pesos
diferentes para cada indicativo de especialidade. De acordo com
o contexto do usuário, determinados indicativos terão mais peso
que outros. Por exemplo, se o contexto do usuário é “escrevendo
artigo”, o peso do indicativo “número de publicações” será
maior.
O segundo problema do Recuperador de Especialistas é definir
que fontes de especialistas utilizar. Algumas possibilidades são:
páginas de publicações científicas; fóruns na Internet; páginas
amarelas da organização/empresa; usuários cadastrados no
ICARE (alguém que no passado recebeu uma recomendação no
mesmo assunto pode ter bons conhecimentos no assunto).
Novamente, aqui a melhor fonte de informação vai depender do
contexto e dos indicativos de especialidade utilizados. Por
exemplo, se o contexto do usuário é “escrevendo artigo”, a fonte
de especialista preferencial seriam páginas de publicações
científicas. A arquitetura é flexível para aceitar o cadastro de
várias e diferentes fontes de especialistas. Mas essas fontes
precisam ser previamente cadastradas e os especialistas por elas
fornecidos são armazenados na base de dados de especialistas
do ICARE. Essa carga é feita pelo Gerador da Base de
Especialistas.
A arquitetura do sistema, como mostra a Figura 2 é dividida em
quatro módulos (que serão descritos em detalhes nas subseções a
seguir), cada um responsável por uma etapa da recomendação de
especialistas: Determinador de Especialidade; Recuperador de
Especialistas; Apresentador de Especialistas e Gerador da Base
de Especialistas.
5.1 Determinador de Especialidade
A primeira etapa no processo de recomendação de especialista é
descobrir qual é a especialidade que se deverá buscar, ou seja,
definir a área do conhecimento humano em que se buscará um
especialista. Essa etapa recebe como entrada algumas palavraschave que caracterizam a especialidade desejada e devolve um
conceito ontológico relativo à especialidade classificada. O
Determinador de Especialidade dispõe de uma ontologia de
domínio cuja finalidade é uniformizar os conceitos utilizados
para definir as especialidades. Essa ontologia expressa
conceitualizações das áreas e subáreas de um domínio de
conhecimento.
Uma vez encontrados os especialistas que serão recomendados,
é necessário classificá-los. Afinal, a ordem de apresentação é
importante. Portanto, é necessário dar prioridade aos
especialistas mais adequados ao usuário (ranking).
A classificação dos especialistas pode ser feita de acordo com
diversos critérios. Alguns deles são: grau de especialidade (se
disponível); reputação (em função de recomendações passadas);
proximidade; disponibilidade; rede social (especialista conhece
algum amigo do usuário); indicação de um amigo.
Esse módulo possui um agente inteligente responsável por obter
o contexto relevante do usuário. Para isso, ele se comunica com
o CoMGroup e descobre que o usuário está navegando em
fóruns sobre Oracle Lite, por exemplo. De posse do contexto do
usuário e (possivelmente) analisando bases de casos de
recomendação anteriores <contexto do usuário, recomendação
de especialista feita, avaliação da recomendação pelo usuário>,
o Determinador de Especialidade estima a especialidade que
melhor atende às necessidades do usuário no contexto atual. Ex:
bancos de dados móveis e Oracle.
5.3 Apresentador de Especialistas
A última etapa da recomendação de especialistas é a
apresentação ao usuário dos especialistas descobertos. Nessa
etapa já se tem disponível uma lista de especialistas na área de
interesse. O objetivo é adequar a apresentação dos especialistas
às necessidades, preferências ou contexto do usuário.
O usuário pode preferir receber todos os resultados encontrados
e em formato HTML, com links para a página pessoal ou e-mail
de cada especialista, por exemplo. Ou o contexto do usuário
pode ser “usando PDA” e, portanto, dificilmente ele terá
paciência para esperar baixar uma lista muito extensa de
especialistas. Assim, a apresentação terá que repassar apenas os
primeiros especialistas da lista ordenada recebida.
5.2 Recuperador de Especialistas
Conhecendo-se a especialidade requerida, o próximo passo é
buscar um especialista correspondente. Ou seja, descobrir as
pessoas que possivelmente são especialistas no assunto
43
Figura 2 Arquitetura do ICARE
na Internet como CiteSeer, ele fica apto a utilizar uma fonte ou a
outra, ou ambas, para obter os especialistas.
5.4 Gerador da Base de Especialistas
A base de especialistas utilizada pelo Recuperador de
Especialistas precisa ser populada. Essa carga é feita
previamente à recomendação, de forma que no momento em que
um especialista é requerido a base Especialistas já possui todos
os dados disponíveis. Periodicamente, o Gerador encarrega-se
de atualizar as informações da base de especialistas em função
dos dados das fontes.
Alguns tipos de especialidades são inerentemente relacionadas à
prática de determinada atividade organizacional. Para fazer essa
correlação corretamente, o Gerador utiliza um conjunto de
regras de produção que associam atividades específicas de uma
organização à especialidade correspondente. Por exemplo, um
gerente de projeto pode ser associado às especialidades
“administração de qualidade de projeto” e “administração de
recurso humano de projeto”. Essas regras precisam ser inseridas
no momento do cadastro da fonte.
O Gerador da Base de Especialistas é um componente do
ICARE responsável por: (i) cadastrar as fontes de especialistas
disponíveis; (ii) receber uma configuração de como obter os
especialistas de cada fonte; (iii) guardar na base de dados
correspondente as informações dos especialistas obtidas nessas
fontes.
6. EXEMPLO DE USO
Nesta seção apresentamos um cenário de uso do ICARE para
destacar seus detalhes e funcionalidades.
Na inclusão de uma fonte de especialistas, o Gerador recebe
uma descrição das informações fornecidas pela fonte e como
acessá-las. Por exemplo, o script SQL para consultar a base de
dados de projetos da companhia.
Seja José um programador inexperiente trabalhando em um
projeto (SimpleCode) de desenvolvimento de software realizado
na empresa SOFTDEV, que possui 600 funcionários
distribuídos em dezenas de projetos. A equipe responsável pelo
SimpleCode é composta por 13 pessoas, dentre gerente, líderes
de equipe e desenvolvedores. O SimpleCode é desenvolvido em
C++ e seus componentes são armazenados em um repositório
Portanto, o Gerador tem à disposição todas as fontes cadastradas
e está configurado para acessá-las corretamente. Assim, se ele
possuir duas fontes, digamos uma base organizacional e um site
44
com controle de versões (Concurrent Versions System - CVS).
José é encarregado de codificar um módulo da interface gráfica
do sistema e está usando o ambiente de desenvolvimento Visual
Studio 3.
Uma vez informado de como obter as informações necessárias,
o Gerador consulta a fonte e replica os dados obtidos na Base de
Especialistas, acrescentando o metadado “fonte de origem”.
Assim o ICARE já pode receber pedidos de recomendações.
Durante a realização da sua tarefa, José precisa utilizar um
componente visual específico. Apesar deste ser um componente
simples, não está funcionando como previsto pelos manuais de
C++. José analisa várias vezes o código, mas não consegue
descobrir onde está o erro. Ele utiliza a ajuda do Visual Studio e
procura na Internet, mas não encontra uma solução.
Percebendo o conjunto de informações contextuais de José,
(programando, usando C++, buscando auxílio), o Agente
Recomendador decide recomendar um especialista para ele. Para
isso, ele gera uma lista de palavras-chaves que serão utilizadas
na busca do especialista e chama o ICARE, passando essa lista
de palavras-chave: <C++>.
As informações de contexto do usuário são obtidos pelo
CoMGroup, que monitora o ambiente do usuário. No caso de
José, as informações de contexto obtidas estão descritas na
Tabela 2.
Tabela 3 Fontes de Especialistas da SOFTDEV
Fonte de especialistas
Tabela 2 Contexto do José
Fonte de contexto
Informação contextual
Informação obtida
1 Base de dados de projetos
realizados e em andamento,
com respectivos cronogramas
Participantes envolvidos
nos projetos, seus papéis e
atividades
Certificações e experiência
dos funcionários
Ambiente de desenvolvimento
de software em execução
Programando
2 Base de currículos dos
funcionários
Ambiente Visual Studio em
uso
Linguagem C++
3 Base de pessoas do RH
Dados pessoais e de contato
Última compilação não foi
concluída com sucesso
Problema/dificuldade na
programação
4 Repositórios CVS usados
pelas equipes de
desenvolvimento
Autores de código e
solucionadores de bugs
“Ajuda” do Visual Studio em
uso
Buscando auxílio
5 Banco de horas
Atividades realizadas (e em
andamento) e seus autores
Navegando em fóruns de C++
na Internet
Buscando auxílio
6 Fórum on-line da SOFTDEV
Autores de dúvidas e
soluções
O projeto do Visual Studio em
execução possui formulário(s)
Interface gráfica
7 Currículo Lattes
Pesquisadores brasileiros
BD do departamento de
Recursos Humanos
4 meses de experiência na
SOFTDEV; cargo:
desenvolvedor júnior
8 CiteSeer
Autores de artigos
científicos internacionais
4 meses de experiência
Novato
Cronograma do SimpleCode no
Microsoft Project 4
Prazo de entrega da tarefa
atual: 4 dias
Tarefa atual foi programada
para ser realizada em um mês
Prazo curto
Login na rede interna
Localização: estação 36
Status no MSN
5
O ICARE recebe a chamada de recomendação, juntamente com
a identificação do usuário que receberá a recomendação. O
ICARE utiliza a API de comunicação com o CoMGroup de José
para obter o seu contexto. O módulo Determinador de
Especialidade busca na Ontologia de Especialidades por “C++”
e encontra um conceito relacionado: <programador C++>. O
Determinador de Especialidade também percebe, através da
análise de informações de contexto do usuário, que José está
trabalhando com interface gráfica. Na Base de Casos existem
vários registros de recomendações de especialistas em
programação C++ e interface gráfica. Assim, o Determinador de
Especialidade decide procurar um <programador C++, interface
gráfica>. Essa é a especialidade passada para o módulo
Recuperador de Especialistas.
Disponibilidade: ocupado
O ICARE da SOFTDEV precisa, antes de qualquer coisa,
popular sua base de especialistas, utilizando as fontes de
especialistas disponíveis (Tabela 3). Essa tarefa é feita pelo
Gerador da Base de Especialistas, que cadastra as fontes de
especialistas. Nesse cadastro, cada fonte é associada ao método
utilizado para extração das informações de interesse para o
ICARE. Por exemplo, quando a base de projetos da SOFTDEV
é incluída, o Gerador é informado como obter (consultas SQL)
os dados dos participantes dos projetos, seus cargos e as
especialidades envolvidas no projeto.
O Recuperador de Especialistas recebe a especialidade requerida
e deve buscar na base de especialistas aqueles que melhor se
encaixam com o contexto do usuário (Tabela 2).
Para encontrar os especialistas mais adequados para José, o
Recuperador de Especialistas precisa selecionar, dentre as fontes
de especialistas disponíveis, quais serão utilizadas. As fontes
disponíveis são cadastradas no ICARE e podem ser escolhidas
de acordo com o perfil de especialista requerido pelo contexto
do usuário.
3
http://www.msdnbrasil.com.br/visualstudio/default.aspx
http://office.microsoft.com/project
5
http://www.msn.com
4
45
especialista (valor entre 0 e 1). Assim, o ICARE ordena a lista
de especialistas encontrados dando prioridade às pessoas menos
ocupadas no momento:
As fontes de especialistas disponíveis para o ICARE da
SOFTDEV são apresentadas na Tabela 3. Considerando o
contexto da tarefa e atividade atual de José, o Recuperador de
Especialistas seleciona as fontes 1, 4 e 6. O Recuperador faz,
então, uma busca na base de especialistas do ICARE por
especialistas em <programador C++, interface gráfica> obtidos
das fontes 1 ou 4 ou 6.
1.
2.
A lista ordenada de especialistas é enviada para o módulo
Apresentador de Especialistas, que gera um documento
HTML com a lista dos especialistas e suas informações
disponíveis, como nome, contato (e-mail, ramal, MSN) e
localização, se possível. Por exemplo, o especialista Luciano
está logado na rede interna da SOFTDEV na estação de
trabalho 54 e, segundo o mapa da rede, a estação 54 localiza-se
na sala 5 do 3º andar. Os resultados obtidos também podem ser
apresentados em outros formatos, como XML ou documento de
texto.
A Tabela 4 mostra os especialistas em C++ e interface gráfica
(e respectivas informações disponíveis sobre eles) que podem
ser encontrados nas fontes selecionadas.
Tabela 4 Especialistas em C++ e interface gráfica da
SOFTDEV
Roberto
Souza
Luciano Moraes
Alice Cruz
Contato
E-mail
Tabela 5 Possíveis informações de contexto do especialista
[email protected] [email protected]
[email protected]
[email protected]
[email protected]
794
347
Experiência 3 anos
2 anos
1 ano
Atividade
Escrevendo
relatório
Programando
Programando
Cargo
Gerente de
projeto
Analista
Programador
pleno
Reputação
Ótimo
Muito bom
Muito bom
0.4
0.8
MSN
---
Ramal
513
Fonte de contexto
Contexto
Disponibili- 0.6
dade
Informação contextual
Google Calendar 6
Agenda/atividades
MS Project
Cronograma de trabalho
MSN
Status
Currículo
Experiência
A lista de especialistas resultante da busca, formatada para
apresentação, é devolvida para o Agente Recomendador. Ele
então se encarrega de mostrar para José os especialistas em
programação C++ e interface gráfica disponíveis na SOFTDEV
no momento. José analisa os especialistas encontrados e decide
entrar em contato com Alice porque ela tem boa reputação e
encontra-se mais disponível, além de ter um cargo de nível mais
próximo ao de José. Por MSN, José explica seu problema e pede
a opinião de Alice. Alice se dispõe a olhar o código de José e
marca um horário com ele no dia seguinte. Com vinte minutos
de conversa com Alice em frente ao código, José sana suas
dúvidas e resolve o problema que estava enfrentando.
Considerando que a dificuldade de José requer habilidade
prática em programação C++, o ICARE seleciona apenas
especialistas que estejam em cargos mais parecidos com o de
José e, portanto, executando tarefas mais parecidas. Assim, a
lista de especialistas obtida pelo Recuperador de
Especialistas é a seguinte:
x
x
Alice Cruz
Luciano Moraes
7. CONCLUSÃO E TRABALHOS
FUTUROS
Luciano Moraes
Alice Cruz
No dia-a-dia de trabalho das pessoas, não é raro perder-se
oportunidades de colaboração por simplesmente não se saber
que essas oportunidades existem. Essa colaboração não
planejada ou estruturada é uma forma informal de colaboração,
que pode consistir apenas de uma discussão de idéias ou
conceitos e exposição de dúvidas e sugestões. Mas nada impede
que uma interação desse tipo incentive o surgimento de um
grupo de trabalho organizado com foco em um interesse
comum, descoberto informalmente.
A lista de especialistas obtida precisa então ser ordenada de
forma cômoda para José. Sabe-se pelo contexto dele (Tabela 2)
que José está com um prazo curto para o término de sua tarefa e
que é um novato na empresa. Portanto, é provável que José
precise de um especialista com certa disponibilidade que possa
dar uma ajuda mais próxima de uma tutoria, ou seja, alguém
que possa ajudar mais de perto. Assim, o ICARE decide
ordenar os especialistas encontrados por disponibilidade. Ou
seja, prioriza a apresentação daqueles especialistas que podem
ajudar José de forma mais ágil.
Para favorecer o surgimento desse tipo de interação, propomos
neste trabalho um sistema que utiliza o contexto de trabalho dos
usuários para perceber suas necessidades de colaboração com
outras pessoas e recomendar especialistas em um campo de
conhecimento útil para o usuário no momento.
Mas para isso, o ICARE precisa obter o contexto atual desses
especialistas. O CoMGroup dos especialistas busca
informações como as descritas na Tabela 5. Considerando o
número de atividades em que cada especialista está envolvido e
seus prazos, o ICARE calcula o grau de disponibilidade de cada
6
46
http://www.google.com/calendar
6. Hinds, J. P., Pfeffer, J. "Why Organizations Don't "Know
What They Know": Cognitive and Motivational Factors
Affecting the Transfer of Expertise". In MIT Press, Sharing
Expertise - Beyond Knowledge Management, chapter 1
(2003).
7. Kautz, R., Selman, B., Shah, M. "ReferralWeb: Combining
Social Networks and Collaborative Filtering ",
Communications of the ACM, v. 40, n. 3 (1997), pp. 63-65.
8. McArthur, R., Bruza, P. "Discovery of Implicit and Explicit
Connections between People Using Email Utterance"
(2003), pp. 21-40.
9. McDonald, D. W., Ackerman, M. S. "Expertise
Recommender: A Flexible. Recommendation System and
Architecture" (2000), pp. 231-240.
10. Reichling, T., Schubert, T., Wulf, V. "Matching Human
Actors based on their Texts: Design and Evaluation of an
Instance of the ExpertFinding Framework", New York
(2005).
11. Santoro, F. M., Brézillon, P., Araújo, R. M. "Context
Dynamics in Software Engineering Process", International
Journal of Advanced Engineering Informatics, v. Accepted,
to appear (2005).
12. Vieira, V. "Gerenciamento de Contexto em Sistemas
Colaborativos", Exame de Qualificação e Proposta de Tese
de Doutorado, Centro de Informática-UFPE, Brasil (2006).
13. Vieira, V., Tedesco, P., Salgado, A. C. "Towards an
Ontology for Context Representation in Groupware". In:
Proceedings of the 11th International Workshop on
Groupware (CRIWG'05), Porto de Galinhas, Brasil (2005),
pp. 367-375.
O ICARE (Intelligent Context Awareness for Recommending
Experts) detecta interesses ou problemas do usuário para
recomendar uma pessoa que conheça do assunto e que, portanto,
seja um potencial colaborador informal. Assim, o ICARE
aproxima pessoas buscando informações sobre um determinado
assunto com pessoas que provavelmente possuem conhecimento
sobre o mesmo.
O ICARE utiliza o contexto de trabalho do usuário para definir
que tipo de especialista melhor se adequa às suas necessidades
atuais. Também permite o cadastro de diferentes fontes de
especialistas, que são selecionadas para uso em cada
recomendação de acordo com o contexto do usuário. Por essas
características, o ICARE se destaca em relação aos SRE
comuns, que são inflexíveis quanto à caracterização dos
especialistas e de suas fontes de informações. Além disso, os
SRE existentes não levam em conta quem é a pessoa que vai
receber a recomendação e como essa recomendação pode ser
mais personalizada.
O contexto do especialista também pode ser considerado,
possibilitando que o ICARE classifique os resultados
encontrados segundo diferentes critérios, como disponibilidade
ou proximidade física.
Como trabalhos futuros, pretendemos avaliar a usabilidade do
ICARE através de um estudo de caso em um ambiente
organizacional real. Além disso, planeja-se analisar e melhorar a
cobertura e precisão do Recuperador de Especialistas para
retornar o maior número possível de especialistas que atendam
com exatidão às necessidades do usuário. Também pretendemos
discutir a concordância do especialista em ser recomendado.
Afinal, para que a recomendação seja bem sucedida, o
especialista deve estar disposto a colaborar. Uma idéia inicial é
que o ICARE, uma vez adquirido um e-mail do especialista,
entre em contato de maneira automática. Ou seja, o ICARE
envia um e-mail para cada possível especialista a ser
recomendado explicando o objetivo do sistema e pedindo que
ele responda ao e-mail apenas se desejar ser uma pessoa
recomendada a outras. Se um especialista aceitar, é levado em
consideração pelo Gerador de Base de Especialistas.
REFERÊNCIAS
1. Bazire, M., Brézillon, P. "Understanding Context Before
Using It". In: 5th International and Interdisciplinary
Conference, CONTEXT 2005, v. LNAI 3554, Springer
Verlag, Paris, France (2005), pp. 29-40.
2. Borges, M. R. S., Brézillon, P., Pino, J. A., Pomerol, J.-C.
"Bringing context to CSCW". In: Proceedings of the
Computer Supported Cooperative Work in Design, v. 2,
IEEE Press (2004), pp. 161-166.
3. Chen, H., Finin, T. "An Ontology for Context-Aware
Pervasive Computing Environments", The Knowledge
Engineering Review, v. 18, n. 3 (2004), pp. 197-207.
4. Dey, A. K. "Understanding and Using Context", Personal
and Ubiquitous Computing, v. 5, n. 1 (2001), pp. 4-7.
5. Gutwin, C., Greenberg, S., Blum, R., Dyck, J. "Supporting
Informal Collaboration in Shared-Workspace Groupware"
(2005).
47
Percepção de Contextos de Atividade para Identificação
de Comunidades Potenciais
Eliane Maria De Bortoli
Cesar Augusto Tacla
Fabrício Enembreck
UTFPR
Avenida Sete de Setembro, 3272
Curitiba, Brasil
UTFPR
Avenida Sete de Setembro, 3165
Curitiba, Brasil
PUC-PR
Rua Imaculada Conceição, 1155
Curitiba, Brasil
+55 46 3223-1805
+55 41 3310-4685
+55 41 3271-1669
[email protected]
[email protected]
[email protected]
virtual environments is important in the flow and naturalness of
the work. In order to increase the perception of individuals that
perform great part of their activities in networked computers, this
work presents a computational model that allows to represent the
context of their activities and to put them in correlation to identify
potential communities of employees. The perception model
allows the individuals to perceive others that perform activities
whose contexts are similar. This work distinguishes from others
because it takes into consideration the contents of the documents,
i.e. the traces of an activity in order to build its context.
RESUMO
Através das redes de computadores é possível que colaboradores
de uma organização, física ou geograficamente dispersos,
compartilhem um mesmo ambiente de trabalho de forma virtual.
Interações ocorrem nesses ambientes porque indivíduos realizam
atividades que possuem pontos de intersecção, tais como, relações
pessoais e assuntos de interesse. Nesse caso, a percepção das
atividades de outros indivíduos se torna essencial, pois o fluxo e
naturalidade do trabalho são dificultados em função da distância e
da impessoalidade inerentes. A fim de aumentar a percepção dos
indivíduos que realizam grande parte de suas atividades em
computadores interconectados, esse trabalho visa apresentar um
modelo computacional que permite capturar e representar o
contexto de atividade dos indivíduos e colocá-los em correlação
para identificar comunidades potenciais. O modelo de percepção
permite aos indivíduos perceberem outros que realizam ou
realizaram atividades em contextos similares. Apresenta-se uma
técnica que se distingue das técnicas normalmente empregadas em
percepção, pois a maioria delas não leva em consideração o
conteúdo pertencente ao contexto de trabalho dos indivíduos,
considerando apenas a presença/ausência dos indivíduos ou as
atividades realizadas nesse contexto o que dificulta e torna
imprecisa a identificação de agrupamentos desses indivíduos.
Palavras-chave
Percepção. Contexto de atividades. Identificação de comunidades.
Keywords
Perception. Context of activity. Identification of communities.
1. INTRODUÇÃO
A crescente utilização das redes de computadores na realização de
atividades nas organizações e, especialmente, o uso da Internet
como ferramenta de trabalho tem revelado um ambiente propício
à criação de comunidades, englobando tanto o ambiente interno
como o externo às organizações. LeFever [16] define estas
comunidades virtuais como um grupo de pessoas com interesses
comuns que usam a Internet (sites WEB, e-mail, programas de
mensagens instantâneas) para se comunicar, trabalhar juntos e
perseguir seus interesses através do tempo.
ABSTRACT
Employees, physically or geographically dispersed, of an
organization may share a virtual environment of work.
Interactions in real environments result from individuals having
common points in their activities or by necessity of coordinating
their actions among other reasons. In virtual environments human
perception is limited, and it is necessary to introduce it by some
mechanism. To perceive the activities of other individuals in
A utilização dos computadores em rede permite que
colaboradores de uma organização, física ou geograficamente
dispersos, compartilhem virtualmente um mesmo ambiente de
trabalho. Indivíduos que dificilmente teriam contato, caso não
estivessem interconectados por uma rede, podem se beneficiar de
interações à distância mediadas por computador. Indivíduos
localizados no mesmo ambiente físico, além das interações
habituais do ambiente físico, tais como falar ao telefone, cruzar
com um colega no corredor, no café, escutar a conversa de outros
colegas na mesa ao lado ou “espiar” por cima dos ombros,
também utilizam a modalidade virtual de interação.
20 a 22 de Novembro de 2006
Natal, RN, Brasil
© Sociedade Brasileira de Computação
Comissão Especial de Sistemas
Colaborativos
Há várias pré-condições e motivos para que uma interação ocorra.
Como pré-condição tem-se a existência de um canal de
comunicação e a afinidade entre os indivíduos. Diversos outros
Anais do III Simpósio Brasileiro de Sistemas Colaborativos, pp. 48-57.
48
trabalho cooperativo. Mas a percepção pode ser útil não apenas
quando indivíduos possuem uma meta comum, mas também
quando possuem interesses em comum com o propósito de apoiar
uns aos outros, aprender e promover seu entendimento através de
colaboração eletrônica, empregando práticas comuns, trabalhando
com ferramentas comuns, compartilhando crenças e sistemas de
valores semelhantes [5].
motivos podem levar as pessoas a interagirem: trocar informações
sobre um assunto completamente alheio ao trabalho (ex. lazer) ou
que tenha alguma relação com a atividade da organização (ex.
algum assunto técnico). Indivíduos interagem porque realizam ou
realizaram atividades que tratam de temas comuns ou envolvem
relações pessoais comuns.
Num ambiente virtual a percepção é diminuída, ou seja, não se
pode “espiar” por cima dos ombros, nem escutar conversas de
corredor, observar se um colega está muito atarefado, estressado
ou cansado para, por exemplo, decidir o melhor momento de
interrompê-lo. Não se pode nem mesmo saber o que os colegas
estão fazendo. Afinal, perceber é adquirir conhecimento, por meio
dos sentidos, do que está acontecendo e do que as outras pessoas
estão fazendo, mesmo sem se comunicar diretamente com elas
[1].
Quando duas ou mais pessoas colaboram na realização de alguma
atividade, uma das principais dificuldades encontradas é a falta de
conhecimento do contexto das atividades dos demais indivíduos.
Um contexto consiste em alguma informação que pode ser
utilizada para caracterizar a situação de uma entidade. Uma
entidade é uma pessoa, lugar ou objeto considerado relevante para
os usuários e as aplicações [4].
Usuários que trabalham juntos precisam de informações
adequadas sobre o ambiente cooperativo, tais como: presença de
outros membros e atividades, compartilhamento de artefatos,
entre outros [9]. Informações de percepção tornam os indivíduos
cientes do estado das entidades presentes no ambiente de trabalho
facilitando a interação.
A comunidade de CSCW (Computer Supported Collaborative
Work) [12] vem estudando formas de aumentar ou melhorar a
percepção em sistemas colaborativos com o objetivo de aumentar
a usabilidade de tais sistemas. Sistemas colaborativos devem
prover elementos de percepção de forma a permitir a coordenação
de tarefas cooperativas, principalmente onde a comunicação
direta não ocorre. Além disso, devem prover elementos de
percepção para que indivíduos possam interpretar eventos, prever
possíveis necessidades e transmitir informações de maneira
organizada. Perceber as atividades dos outros indivíduos é
essencial para o fluxo e naturalidade do trabalho e para diminuir
as sensações de impessoalidade e distância, comuns nos
ambientes virtuais [8].
A percepção de contextos de atividades permite que os
indivíduos ajam de forma pró-ativa no intuito de colaborar entre
si. Em se tratando de comunidades virtuais no âmbito de uma
organização, a percepção do contexto de atividades de um grupo
de indivíduos possui papel fundamental na identificação de
pessoas com interesses em comum ou que possuam
conhecimentos ou competências relevantes para os demais
indivíduos da organização.
Pesquisas recentes relatam a importância de se encontrar meios
para facilitar a percepção em ambientes de trabalho locais ou
distribuídos enfatizando a representação de contextos de
atividades [3]. Dessa forma, são necessários meios para a
representação de contextos de atividade facilitando a percepção
de aspectos em comum entre os indivíduos e conseqüentemente a
criação de canais de comunicação, o que pode ser facilitado pela
identificação de comunidades.
A percepção pode ser classificada dentro de quatro categorias
principais [13] apud [11]:
- Informal: a percepção informal é o conhecimento de quem está
ao redor, o que estas pessoas estão fazendo e o que provavelmente
irão fazer. Essas informações podem ser conseguidas a partir do
contexto de trabalho de cada indivíduo. A percepção informal é
um pré-requisito para a interação espontânea.
O objetivo deste trabalho é apresentar resultados de uma pesquisa
em andamento sobre a identificação de comunidades virtuais
baseada em contexto de atividades. Apresenta-se um modelo de
percepção para formalizar os conceitos, relações e processos
envolvidos no problema. Embora o modelo não esteja
completamente acabado, realizou-se uma implementação para
avaliá-lo preliminarmente. Os experimentos e primeiros
resultados são apresentados.
- Social: trata da percepção de diferentes tipos de informações
subjetivas, tais como: interesse, atenção ou estado emocional de
um indivíduo. Isso é freqüentemente percebido através de
estímulos não verbais, ou seja, pelo contato visual, expressão
facial e linguagem corporal.
- Grupo-estrutural: esse tipo de percepção inclui informações
sobre o próprio grupo e seus membros, tais como os papéis e
responsabilidades dos membros, o posicionamento e o estado de
um membro em relação a determinados assuntos, ou em relação a
um artefato compartilhado e os processos do grupo [7].
Inicialmente, na seção 2, são apresentados os conceitos de
percepção e, na seção 3, as definições associadas a comunidades.
Na seção 4 apresentam-se os trabalhos relacionados. A seção 5
descreve o modelo conceitual proposto de percepção e a seção 6,
uma implementação parcial do mesmo. A seção 7 descreve os
experimentos realizados e os resultados obtidos. A seção 8
contém as considerações finais acerca do trabalho e
prosseguimentos da pesquisa.
- Espaço de trabalho: inclui informações sobre o espaço de
trabalho em geral, tais como interações de outros participantes no
espaço compartilhado e os artefatos nele contidos.
O modelo proposto proporciona uma mescla de percepção
informal e do espaço de trabalho conforme ilustrado na Figura 1.
A percepção informal se deve ao fato de que os indivíduos terão a
possibilidade de acompanhar a atuação dos demais pela
representação de seu contexto de trabalho. Já a percepção de
espaço de trabalho se configura pela disponibilidade de
informações sobre o contexto de trabalho dos indivíduos através
de seus artefatos. Estas informações contribuirão para a formação
2. PERCEPÇÃO
As informações de percepção são necessárias para a coordenação
das atividades de uma equipe, bem como a cooperação entre seus
membros, contribuindo também para o aumento da usabilidade do
sistema computacional. A percepção é inerente ao ambiente de
49
religiosos, sociais ou profissionais. Percebe-se então, que
Beamish [2] separa o conceito sob dois aspectos: (i) o do território
como elemento principal na constituição da comunidade e (ii) o
do interesse comum (e neste caso, o território comum não é mais
condição para a existência das relações entre as pessoas) como
núcleo da constituição da comunidade.
de comunidades com o intuito de favorecer a colaboração entre
indivíduos.
Percepção
Informal
Percepção de
Espaço de
Trabalho
Percepção
Grupo
Estrutural
No âmbito da informática, as comunidades são auxiliadas por
sistemas em sua maioria concentrados no processo de construção,
ou seja, que facilitam a busca de indivíduos com interesses
similares. Nos sistemas de groupware, o foco está no processo de
colaboração, ou seja, na sincronização e na troca de informações
no contexto de uma atividade específica de uma equipe.
Percepção
Social
Figura 1. Tipos de percepção aplicados ao modelo
proposto.
Equipes
3. GRUPOS, EQUIPES E COMUNIDADES
Grupos
Os termos grupos, equipes e comunidades se fazem presentes
quando o assunto é colaboração e cooperação entre indivíduos, o
que torna importante defini-los adequadamente, diferenciando-os
um do outro.
Comunidades
Figura 2. Equipes, Grupos e Comunidades.
Segundo Schlichter et al. [20], membros de equipes conhecem uns
aos outros e colaboram para atingir uma meta comum, enquanto
membros de comunidades possuem apenas interesses e
preferências comuns. As equipes são normalmente formadas a
partir de uma decisão de gerenciamento, selecionando os
membros de acordo com seu perfil, competências e potencial de
contribuição para um objetivo específico da equipe. Normalmente
as equipes são agrupamentos cuja interação é forte, e onde os
interesses da equipe prevalecem sobre os interesses pessoais dos
membros.
Existem diversas ferramentas de software que suportam os
processos de construção e de interação de indivíduos em
comunidades. De forma geral, são ambientes com indicadores de
presença e ferramentas de chat integrados a páginas WEB.
As ferramentas de suporte a equipes e a comunidades têm se
desenvolvido independentemente apesar de possuírem em comum
o propósito de facilitar o contato entre indivíduos que se
conhecem ou não. Dessa forma, o modelo de percepção é
proposto como base comum para ambos os tipos de sistemas: nas
comunidades, para mediar a construção de relações interpessoais
e em groupware, para aumentar o compartilhamento de
informações e eventualmente facilitar a coordenação das ações de
uma equipe de trabalho.
Quanto às comunidades, os autores dizem que essas não possuem
uma meta comum e desta maneira, a interação entre os membros
da comunidade normalmente é livre. Na maioria dos casos os
membros não conhecem uns aos outros e os interesses pessoais
prevalecem sobre os interesses da comunidade. Dessa forma,
pode-se utilizar o termo grupos para comunidades onde os
membros conhecem uns aos outros, mas não necessariamente
cooperam. Como exemplos de grupos podem ser citados: grupos
de amigos ou membros de um instituto de pesquisa. O termo
equipe é considerado como a forma mais avançada de
comunidade. A Figura 2 apresenta uma pirâmide representando os
três termos.
4. TRABALHOS RELACIONADOS
Diversos mecanismos são apresentados na literatura para a
formação de comunidades e que se baseiam em percepção, assim
como Cyclades [10], Piazza[14], entre outros. Nesta seção serão
apresentados brevemente alguns de seus pontos mais importantes.
Mediante análise desses mecanismos, é possível classificar as
ferramentas existentes para esse fim em três categorias em função
da forma de representação do contexto:
Muitas são as definições encontradas na literatura para o termo
comunidade. De acordo com Mynatt [17], comunidades são
consideradas como um “agrupamento social que apresenta
diversos níveis: relações compartilhadas no espaço, convenções
sociais, um sentido de parceria limitada e um ritmo progressivo de
interação social”.
- análise de conteúdo: ferramentas que se baseiam na verificação
do conteúdo manipulado pelos usuários;
- análise de localização: ferramentas que se baseiam na estrutura
de hiperlinks referenciados pelos usuários;
- via interface de conexão: ferramentas onde a formação de
comunidades ocorre pela associação voluntária dos usuários
através de um sistema online.
Beamish [2] explica que o significado de comunidade giraria em
torno de dois sentidos mais comuns. O primeiro refere-se ao lugar
físico, geográfico, como a vizinhança, a cidade, o bairro. Dessa
forma, indivíduos que habitam em um determinado lugar
estabelecem relações entre si devido à proximidade física e vivem
sob convenções comuns. O segundo sentido refere-se ao grupo
social de qualquer tamanho que divide interesses comuns, sejam
Dentre as ferramentas que objetivam a formação de equipes ou
comunidades baseando-se no conteúdo dos elementos (ex.
documentos, páginas WEB) pertencentes ao contexto de trabalho
dos usuários, tem-se que a forma como são exploradas as
50
(ii) as que exploram a estrutura de conexão dos recursos, i.e., os
links entre recursos ou usuários.
informações diferem em alguns aspectos. Jena [6] utiliza-se de
ontologias e é direcionado para o gerenciamento de um projeto de
pesquisa científica, o que permite perceber o significado do
conteúdo gerado pelos membros da comunidade.
Nos trabalhos que se preocupam com o conteúdo dos elementos
manipulados pelos usuários em suas sessões de trabalho a maior
dificuldade está na captura de informações utilizadas para
representar o contexto de uma atividade. Como principal
limitação pode-se citar a existência de dados confidenciais dos
indivíduos e da própria organização, os quais normalmente não
são disponibilizados. Essas limitações podem levar a possíveis
inconsistências ao se efetuar o agrupamento dos indivíduos em
comunidades por falta de informação sobre suas atividades reais.
O Cyclades [10] disponibiliza um ambiente de arquivos composto
por um grande número de arquivos multidisciplinares e
heterogêneos. O espaço de percepção explora ligações explícitas
ou tácitas entre membros de organizações que atuam em
atividades semelhantes, através de informações e contatos
pessoais que de outra maneira poderiam perder-se. Dessa maneira,
essas informações e contatos pessoais são captados e armazenados
em bases de dados a fim de tornar os usuários cientes de pessoas
que tenham procurado a mesma informação ou escrito
documentos similares.
O modelo de percepção proposto neste trabalho se baseia na
análise do conteúdo dos documentos eletrônicos manipulados
pelos indivíduos. A abordagem apresenta fortes semelhanças com
CUMBIA [22] e I2I [3], se distinguindo pelo fato de propor uma
análise temporal dos contextos. Isto possibilita traçar a evolução
das comunidades em função de seus interesses ao longo do tempo,
ou seja, detectar os temas que deixam de ser relevantes e os que
passam a serem considerados como tais pelos indivíduos.
Kamahara et al. [15] propuseram um sistema baseado em
filtragem colaborativa – sobre o perfil de usuários - agregada à
filtragem baseada em conteúdo – que é aplicada sobre o perfil dos
demais usuários. Tal sistema, direcionado à recomendação de
programas de televisão, envolve três elementos: os usuários, os
itens (conteúdos multimídia) e as comunidades (grupos de
usuários). Cada elemento possui seus próprios atributos. Os
atributos dos elementos são chamados perfis. Um perfil de usuário
contém suas preferências e é representado por um vetor de
palavras-chave que é usado no cálculo das similaridades. Sendo
assim, os usuários que possuem maior similaridade recebem
recomendações de programas de televisão de seu interesse.
5. MODELO CONCEITUAL PROPOSTO
O modelo de percepção está fundamentado no conteúdo dos
recursos manipulados pelos usuários. A análise destes conteúdos
permite a identificação de comunidades potenciais de indivíduos.
Os recursos principais são os documentos eletrônicos textuais (ex.
arquivos pdf, html) denominados artefatos textuais. Assume-se
que os artefatos textuais são vestígios das atividades executadas
pelos indivíduos e, portanto, podem ser utilizados para reconstruir
o contexto das mesmas. O objetivo é encontrar similaridades entre
os contextos que permitam o agrupamento desses usuários em
comunidades afins.
Piazza [14] é uma ferramenta que permite aos indivíduos estarem
cientes sobre quem trabalha em tarefas similares facilitando
interações involuntárias. Além disso, suporta contatos
intencionais e reuniões de planejamento.
Semelhante ao Piazza [14], Vivacqua et al. [22] propõe o
CUMBIA, um sistema que faz uso de agentes para detectar
oportunidades para colaboração de forma dinâmica. Trata-se de
um framework baseado em agentes onde cada usuário possui um
grupo de agentes para auxiliá-lo na gestão do conhecimento e
tarefas colaborativas. Agentes identificam possíveis situações de
cooperação extraindo informações do contexto de trabalho e do
perfil dos usuários. Mais especificamente, essas informações
envolvem: as tarefas recentes, documentos criados ou acessados
recentemente, histórico de acesso a páginas WEB (tomados a
partir do cache de acesso à Internet e histórico) e atividades de
cada usuário. Os agentes coletam tais informações continuamente
e as enviam aos agentes de outros usuários. Então, é realizada
uma comparação – cálculo da proximidade de um usuário aos
demais - a fim de encontrar similaridades entre seus contextos de
trabalho. Dessa forma, indivíduos que executam tarefas similares
podem ser contatados por outros.
Conceitualmente propõe-se um modelo de percepção que permite
aos indivíduos perceberem outros indivíduos que realizam ou
realizaram atividades em contextos similares como ilustra a
Figura 3.
Uma atividade é definida como um conjunto de ações (ex. abrir
um documento, pesquisar na WEB, conversar com um colega)
realizadas por um indivíduo visando atingir um objetivo (ex. obter
informação, aprender algo, construir um artefato). Dessa forma,
atividade assume aqui um sentido genérico, tais como atividades
profissionais, de lazer, de informação e outras. Um indivíduo
realiza diferentes atividades ao longo do tempo, cada uma delas
em contextos específicos que podem ser reconstruídos a partir dos
artefatos textuais acessados ou produzidos.
A mesma atividade realizada em momentos diferentes pode
apresentar contextos diferentes. Por exemplo, a atividade
“manter-se informado sobre política” pode ser realizada em
contextos diferentes. Em um dia, pode-se acessar as páginas de
política do jornal A porque houve uma notícia sobre um escândalo
de corrupção na câmara dos deputados e, num outro dia, as
páginas de política do jornal B para manter-se atualizado sobre as
atividades dos candidatos à presidência da república. Assim, o
contexto de uma atividade contém informações que descrevem o
cenário no período de execução da atividade. Neste cenário,
encontram-se:
O sistema I2I [3] também se baseia na similaridade de interesses
dos usuários para agrupá-los, mas nesse caso o que os une é o fato
de visitarem páginas WEB com conteúdos similares. O conteúdo
de uma página WEB é representado pelos seus termos mais
representativos.
Considerando os trabalhos apresentados, é possível definir duas
formas de extrair informação para construir contextos de
atividades (que irão determinar perfis de usuários) e, em seguida,
agrupar usuários em comunidades, são elas: (i) as que extraem
informações do conteúdo dos recursos existentes no contexto e
- Data, horário, local geográfico e local físico [9].
51
provavelmente, um membro condutor/líder. O estudo das relações
interpessoais em uma comunidade pode ser aprofundado pelo
emprego de ferramentas de análise de redes sociais. A
identificação da comunidade é apenas o passo inicial.
- Os artefatos manipulados, tais como: documentos, desenhos,
imagens e outros produtos resultantes da utilização de aplicativos
[9].
- As ferramentas utilizadas para manipular os artefatos, tais como,
softwares aplicativos.
- Descoberta de competências: comunidades podem revelar
competências existentes até então desconhecidas na organização.
Os indivíduos podem desenvolver atividades paralelas
relacionadas a temas que podem ser de interesse da organização.
Cabe a esta propiciar meios para a comunidade se desenvolver.
- As pessoas envolvidas na atividade, seus estados emocionais, a
sub-rede social destas pessoas com as relações interpessoais,
informações de reputação e confiança.
- Fatos e eventos que influenciam a execução da atividade:
durante a atividade de redação de um relatório técnico, como por
exemplo, um e-mail do gerente chega adiando a entrega do
mesmo, assim a atividade pode temporariamente ser suspensa [9].
- Mapeamento do capital intelectual: relacionado ao item
anterior, a identificação de comunidades transversais aos
departamentos de uma organização pode mostrar as áreas de
conhecimento da mesma e a quantidade de pessoas
envolvidas/interessadas por área. Uma análise mais detalhada
pode determinar as áreas que necessitam/merecem investimento e
as pessoas chave para desenvolver competências que serão
necessárias à organização.
- Seqüência de ações executadas (operações informáticas, tais
como consultar páginas WEB, abrir, criar ou editar um
documento texto).
O modelo conceitual de percepção proposto visa identificar
comunidades potenciais existentes a partir de uma população de
indivíduos que executam atividades não modeladas à priori. A
identificação de uma atividade é feita pelo contexto da mesma. A
identificação dos membros de uma comunidade ocorre em função
do cálculo da similaridade dos contextos das suas atividades. Em
função do grau de similaridade, um indivíduo pode ser
identificado como participante de nenhuma ou de diversas
comunidades. A análise temporal das comunidades pode revelar
informações importantes sobre o capital intelectual da
organização apontando pessoas-chave para o seu desenvolvimento
e direções para investir em comunidades que atuam áreas de
conhecimento importantes para a organização.
Contextos
atuais e
passados
Contextos
atuais e
passados
Percepção
Contextos
atuais e
passados
Contextos
atuais e
passados
6. IMPLEMENTAÇÃO DO MODELO
Embora o modelo conceitual não esteja completamente maduro,
decidiu-se pela realização de uma implementação parcial para
avaliar a qualidade das comunidades identificadas utilizando um
algoritmo construído pelo nosso grupo de pesquisa (Tacla e
Enembreck [21]).
No estágio atual, a implementação não contempla a representação
do contexto de atividade na sua totalidade. O contexto é composto
pelos dados básicos (data, hora, local) e pelos artefatos textuais,
mais precisamente, por uma representação do conteúdo dos
artefatos textuais (at) – documentos, páginas da WEB e e-mails.
As subseções seguintes detalham a construção do contexto de
atividade e o cálculo de similaridade entre contextos.
Figura 3. Contexto como conceito fundamental da
percepção.
Do ponto de vista de um indivíduo, diversos contextos de
atividades podem coexistir em função das atividades em execução
ou já executadas. Dois indivíduos quaisquer que realizam o
mesmo tipo de atividade dificilmente terão contextos exatamente
iguais. Portanto, a percepção de contextos deve buscar contextos
similares (não exatamente iguais) e deve ser assíncrona (as
atividades não precisam ocorrer ao mesmo tempo).
6.1 Construção de um contexto de atividade
Os contextos de atividades (CAs) são representados como vetores
de termos relevantes. Uma medida comum de relevância para
termos é a TF-IDF (Term Frequency - Inverse Document
Frequency) [18]. TF-IDF especifica que a relevância de um termo
em um artefato textual (at) está em proporção direta para sua
freqüência no at e em proporção inversa à sua incidência em toda
a coleção de ats, representada por AT.
A análise temporal dos contextos que permite o estudo da
evolução (alterações) das comunidades ao longo do tempo, seria
realizada através da coleta dos artefatos textuais dos indivíduos
durante a realização de suas atividades. Essa análise possui
diversas aplicações nas organizações:
O elemento IDF para o i-ésimo termo é dado por log(|AT|/DFi),
onde DFi é a quantidade de ats contendo o termo i. TFi designa a
freqüência do i-ésimo termo em um at particular. A fórmula TFIDF é dada pela equação 1.
- Descoberta de lideranças: uma comunidade que permanece
estável em relação aos seus membros apresenta, muito
52
·
TFIDF(i) TFi u log§¨ | AT |
DFi ¸¹
©
cada termo c1i, o correspondente c’2i é comparado com o c2i.
Quando um termo c1i existe em c2 então c’2i é o resultado de
mínimo(c1i, c2i), caso contrário atribui-se zero à c’2i. Termos
existentes somente em c2 não são copiados parra c’2.
(1)
Um at é representado por um vetor conforme mostra a equação 2.
at={TF1*log(AT/DF1), ..., TFm*log(AT/DFm)}
A similaridade entre c1 e c2 é computada utilizando-se do poder de
discriminação dos termos (pi), de acordo com a equação 5.
Assume-se que o valor máximo de similaridade é alcançado
quando se compara um vetor ci com ele mesmo. Daí a utilização
de mínimo(c1i, c2i) na composição de c’2 no parágrafo anterior.
(2)
Um vetor médio representa o contexto de atividade do usuário. A
equação 3 retorna um vetor c (centróide) para uma coleção AT de
ats pertencente a um certo usuário.
c
1
u ¦ at
| AT | atAT
|c1 |
¦c
1i
(3)
similaridade(c1 , c' 2 , p )
Cada vez que um at é criado, acessado ou modificado durante
uma atividade, torna-se necessário atualizar os vetores de
representação dos ats. Cada vez que um contexto é alterado (o
vetor médio dado pela equação 3), serão alterados os valores de
similaridade entre contextos.
u c ' 2 i u pi
i 1
(5)
| c1 |
O cálculo de similaridade pode ser visto como um algoritmo de
classificação capaz de manipular diversas classes não conhecidas
à priori (algoritmo não supervisionado). A justificativa para isso é
que a aplicação colaborativa pretendida consiste de diversos
usuários, cada usuário representando uma classe (contexto de
atividade) no sistema. Os usuários com contextos similares são os
exemplares a serem classificados. Em tal aplicação a técnica de
classificação deve ser flexível para suportar inserção e remoção
de usuários.
6.2 Cálculo da Similaridade
Os contextos de atividade de cada usuário possuem diferentes
termos e conseqüentemente diferentes dimensões. Naturalmente,
os contextos de atividade podem possuir termos comuns,
dependendo da similaridade dos conteúdos dos seus ats. Mas para
realizar o cálculo da similaridade, primeiramente é preciso
normalizar os contextos de atividade para comparar e descobrir os
termos que melhor discriminam esses contextos. Um termo que é
comum, ou seja, é importante para muitos usuários (ex. “projeto”)
não seria um bom discriminador.
6.3 Exemplo
A Tabela 1 ilustra a representação dos contextos de atividades
para três usuários (c1, c2 e c3). Assim, o usuário 1 possui um
contexto formado pelos termos T1, T2 e T3. Cada posição dessa
tabela contém o valor médio do TF/IDF por termo e por usuário.
Estes valores são calculados com base na equação 3.
6.2.1 Poder de discriminação dos termos
Para medir o poder de discriminação dos termos encontrados nos
contextos de atividade é utilizada a técnica de índice Gini [19].
Considera-se {c1, c2, ...., cm} como sendo um conjunto de
contextos de atividade calculados de acordo com a equação (3) e
Ti, o vetor derivado a partir da relevância do termo i em todos os
contextos tal que Ti = {c1i, c2i,…, cmi}. T’i é o vetor normalizado,
tal que T’i = {c1i / || Ti ||1, c2i / || Ti ||1, cmi / || Ti ||1} e || Ti ||1 é a
norma unitária do vetor Ti (somatório do módulo de todos os
elementos do vetor Ti). O poder de discriminação do termo i –
denominado pi – é dado pela equação 4.
Tabela 1. Contextos das atividades dos usuários 1, 2 e 3.
m
pi
¦T´
2
ji
(4)
Termo
c1
T1
T2
T3
T4
T5
T6
T7
0,6361
3,2283
0,4771
c2
c3
0,9542
0,2347
0,6361
0,4771
0,2347
0,3180
0,6361
Tabela 2. Vetores normalizados T’i e índice Gini.
j 1
Termo
T’1
T’2
T’3
T’4
T’5
T’6
T’7
Para cada termo i, pi é igual ao somatório dos quadrados dos
elementos do vetor T’i. O valor de pi está sempre no intervalo
[1/m, 1]. pi apresenta valor mais baixo quando T’1i = T’2i = … =
T’mi, ou seja, quando o termo possui a mesma relevância em todos
os contextos. O valor mais alto de pi ocorre quando apenas um
contexto de atividade possui o termo i.
6.2.2 Similaridade
Para quantificar a similaridade entre dois contextos de atividade
c1 e c2, é criado um vetor comparável c’2, da seguinte forma. Para
53
c1
1,0000
1,0000
0,3333
c2
0,6667
0,3298
0,7304
c3
pi
0,6702
0,2696
1,0000
1,0000
1,0000
1,0000
0,5555
0,5579
0,6061
1,0000
1,0000
Em seguida, calcula-se o índice Gini (última coluna da Tabela 2)
para cada um dos termos de acordo com a equação 4. Os vetores
T’i, necessários para o cálculo de pi, também estão ilustrados na
Tabela 2 (os elementos da coluna pi não fazem parte dos vetores
T’i). Nota-se que os termos T1, T2, T6 e T7 são os melhores
discriminadores, pois só aparecem em um dos contextos.
- usuários C, D e E: pertencem ao grupo de otimização. Todos
trabalham em otimização de planejamento e organização aplicada
a plantas industriais.
Cada usuário selecionou aproximadamente 10 artefatos textuais
(ats) produzidos ou acessados durante suas atividades de pesquisa
durante 3 (três) meses. Um at típico é um artigo científico
contendo de 6 (seis) a 20 (vinte) páginas na língua inglesa.
Realizaram-se cinco experimentos para avaliar a qualidade dos
resultados produzidos pelo algoritmo apresentado na seção 6 na
identificação dos grupos. Em segundo lugar, desejava-se estudar a
influência da quantidade de termos que representam um contexto
de atividade na identificação dos grupos. Quanto menos termos,
menos recursos computacionais são necessários para construção
dos contextos e cálculo das similaridades. Assim, no primeiro
experimento, foram utilizados 200 termos para representar o
contexto de cada usuário. Nos subseqüentes, foram utilizados 500,
1.000 e 5.000. Para cada contexto de atividade calculou-se a
similaridade com todos os outros produzindo os resultados
mostrados em seguida.
Para calcular a similaridade entre contextos, é preciso construir
vetores comparáveis de mesma dimensão, como indicado na
seção 6.2.2. A Tabela 3 mostra estes vetores tomando-se como
vetor base o contexto do usuário 1 (c1).
Tabela 3. Vetores para comparação com o contexto c1.
Termos
C'1
0,6361
3,2283
0,4771
T1
T2
T3
c'2
c'3
0
0
0,4771
0
0
0
7.1.1 Resultados do Cálculo da Similaridade
Finalmente, pode-se comparar o vetor c1 com os vetores c’i. A
Tabela 4 mostra os resultados da aplicação da equação 5. A maior
similaridade é obtida quando se compara o vetor c1 com ele
mesmo. Em segundo lugar, c1 com c2 e, finalmente, c3, que não
tem nenhum termo comum com c1, apresenta similaridade zero.
A Tabela 5 mostra os valores obtidos a partir do cálculo da
similaridade quando utilizado um vetor de tamanho 200
representando os contextos de atividade. A interpretação da tabela
é feita linha a linha. Assim, para o usuário C, o contexto de
atividade com maior similaridade (exceto para seu próprio
contexto) é D, e o segundo mais similar é E.
Os valores de similaridade são dados pela equação 5. A Tabela 6
mostra os valores de similaridade para contextos representados
com 5.000 termos.
Tabela 4. Cálculo da similaridade.
Termos
T1
T2
T3
c1 x c’1
0,40470
10,4221
0,12646
Similaridade
10,9533
c1 x c’2
c1 x c’3
0
0
0,126469
0
0
0
0,126469
0
Tabela 5. Valores de similaridade para contextos de atividade
com 200 termos. Os contextos mais similares estão em negrito,
e os segundos colocados estão em itálico.
Usuário
7. EXPERIMENTAÇÕES E RESULTADOS
A implementação do modelo contempla a parte de construção dos
contextos de atividades e do cálculo de similaridade. A coleta dos
artefatos textuais foi realizada manualmente assim como a
coordenação dos processos computacionais de construção dos
contextos e de cálculo de similaridade.
7.1 Metodologia
A
B
C
D
E
A
2.41206
0.07356
0.23636
0.07605
0.14382
B
0.06790
2.13679
0.11372
0.07659
0.13650
C
0.09142
0.04534
5.34660
0.48570
0.44361
D
0.02228
0.05716
0.65757
3.33189
0.55121
E
0.02955
0.03785
0.43324
0.26120
3.62506
Tabela 6. Valores de similaridade para contextos de atividade
com 5.000 termos. Os contextos mais similares estão em
negrito e os segundos colocados estão em itálico.
Utilizou-se uma experimentação controlada onde a população
amostrada era conhecida, isto é, os grupos de pertinência dos
indivíduos eram previamente conhecidos. Foram selecionados
cinco usuários (A, B, C, D e E) que participam de dois grupos
distintos de pesquisa: aplicações de sistemas multi-agentes e
otimização em planejamento e organização. Os usuários são assim
classificados:
- usuários A e B: pertencem ao grupo de sistemas multi-agentes.
O usuário A trabalha em CSCW e o usuário B, em problemas de
empacotamento e armazenagem. Até o momento da coleta dos
artefatos textuais, os usuários A e B não haviam trabalhado
especificamente na matéria agentes.
54
Usuário
A
B
C
D
E
A
1.00000
0.08779
0.17062
0.10591
0.06488
B
0.09809
0.62086
0.17059
0.09780
0.07915
C
0.08996
0.07276
0.93100
0.20679
0.12578
D
0.04809
0.04107
0.19441
0.75614
0.09824
E
0.05333
0.07633
0.21551
0.15317
0.83853
uma comunidade porque eles são os mais distantes de cada um
dos outros (B é a maior distância a partir de A e vice-versa).
Considerando o contexto de atividade do usuário C, nota-se que
os contextos de D e E são muito próximos, enquanto os contextos
de A e B não aparecem na Figura 4, pois apresentam distâncias
respectivas de 58,48 e 117,92. O mesmo acontece para os
usuários D e E. Considerando que os contextos dos usuários C, D
e são muito próximos, pode-se dizer que este grupo possui um
alto grau de coesão.
Observa-se que quando o tamanho dos vetores é aumentado
(Tabela 6), ocorreram poucas modificações na posição dos
primeiros e segundos colocados em relação à tabela 5:
- Na Tabela 6, linha A, o contexto D assumiu a segunda
colocação, antes ocupada por E (tabela 5);
- Na Tabela 6, linha B, o contexto C assumiu a primeira posição
no lugar de E. O contexto A assumiu a posição de segundo lugar
antes ocupada por C.
Tabela 7. Distância entre os usuários.
- Nas demais linhas não ocorreram modificações.
Usuário
Quando utilizado um vetor de tamanho 1.000, ocorreu apenas
uma modificação e com vetores de tamanho 500, nenhuma. Isto
pode indicar pouca influência do tamanho do vetor no cálculo da
similaridade, mas o tamanho reduzido da amostra não permite
generalizar o resultado obtido. Contudo foi notado que os valores
de similaridade diminuíram à medida que os tamanhos dos
vetores aumentaram. Quanto maior o número de termos
utilizados, menor a probabilidade de serem bons discriminadores,
menor o índice Gini e, conseqüentemente, os valores de
similaridade.
A
B
C
D
E
A
1,00
32,79
10,21
31,72
16,77
B
31,47
1,00
18,79
27,90
15,65
C
58,48
117,92
1,00
11,01
12,05
D
149,55
58,29
5,07
1,00
6,04
E
122,68
95,77
8,37
13,88
1,00
Comunidades (200 termos)
7.1.2 Identificação de comunidades
Analisando as medidas de similaridade, foi possível identificar os
grupos (caso específico de comunidade) de usuários contendo
contextos similares. Se for tomada a tabela 5 como exemplo, notase que os usuários C e E são mais similares ao usuário A, mas
nem C e nem E tem A entre os dois primeiros mais similares. Isso
significa que embora C e E possam colaborar com A, eles não
formam uma comunidade porque o usuário A não trabalha em um
assunto relevante para C e E.
35
Distância
30
A
25
B
grupo otimização
20
C
15
D
10
E
5
0
Considerando a medida de similaridade dos usuários C, D e E,
pode-se concluir que eles formam uma comunidade. Pode-se
notar que os usuários D e E são mais próximos a C, usuários C e
E aproximam-se de D, e os usuários C e D aproximam-se de E.
Assim, quando a medida de similaridade é recíproca para um
conjunto de usuários pode-se dizer que tal conjunto forma uma
comunidade.
A
B
C
D
E
Usuários
Figura 4. Distância entre os contextos de atividade
Os experimentos realizados sinalizam que o rumo tomado pode
dar bons frutos. Obviamente, experimentos com populações
maiores e mais heterogêneas precisam ser realizados para se
chegar a conclusões mais definitivas.
De fato, essa análise permite dizer que o algoritmo proposto foi
eficiente neste experimento, pois identificou a comunidade de
otimização a partir de seus ats. Não foi possível identificar a
equipe de sistemas multi-agentes porque ambos os usuários
haviam trabalhado em assuntos diferentes.
8. EXPERIMENTAÇÕES E RESULTADOS
Esse trabalho tratou de aspectos relacionados à identificação de
comunidades através da análise do conteúdo dos artefatos textuais
manipulados pelos usuários que fazem uso de computadores
interconectados por uma rede de comunicação. Dessa forma foi
proposto um modelo conceitual que pode ser aplicado como um
mecanismo de percepção para participantes de grupos acerca das
atividades dos seus colegas e, também, na identificação de
comunidades. Um dos elementos que distingue o modelo
conceitual apresentado de trabalhos similares é a análise da
evolução das comunidades ao longo do tempo, embora este
assunto necessite maior aprofundamento.
Outro resultado interessante é que é possível determinar o grau de
coesão de uma comunidade identificada. A figura 4 apresenta no
eixo x os contextos de atividade dos usuários e a distância entre
eles sobre o eixo Y. A distância é dada pela relação
similaridade(ci, ci, pi)/similaridade(ci, cj, pi) obtida na tabela 5,
resultando na tabela 7. O valor mínimo é 1 quando i=j, i.e.,
quando um contexto é comparado com ele próprio (o contexto
mais similar a um contexto é o próprio contexto). O valor máximo
para a distância tende a infinito quando o denominador da
equação se aproxima de zero.
Além do modelo conceitual de percepção proposto, o presente
trabalho apresentou uma implementação parcial do mesmo,
enfatizando uma técnica baseada em processamento estatístico de
textos para construir e comparar contextos de atividades. Os
O gráfico da Figura 4 é a representação gráfica da tabela 7,
eliminando-se as distâncias acima de 35 para destacar as
distâncias entre os usuários. A e B não são identificados como
55
resultados iniciais ainda não permitem generalizar os resultados
obtidos, apenas sinalizam que a direção tomada está correta.
pesquisa científica. Revista do CCEI, Vol. 8, Numero
14, Agosto, 2004.
Os trabalhos futuros incluem experimentos mais aprofundados
utilizando-se uma população maior e mais heterogênea. A coleta
de dados (em andamento) se fará sobre um horizonte de tempo
maior (6 meses) para que se possa avaliar a evolução das
comunidades. Também se encontra em desenvolvimento um
protótipo do sistema que funcione de maneira distribuída em uma
arquitetura peer-to-peer. O protótipo inclui a definição de um
protocolo de notificação aos indivíduos, daqueles que apresentam
contextos similares. A maior dificuldade está na coleta automática
dos artefatos textuais utilizados pelos usuários nas suas atividades
cotidianas devido a questões de direitos de acesso, privacidade e
proteção da informação. Um passo posterior será o estudo de uma
forma gráfica de visualização das comunidades potenciais.
[7] Ellis, C. A.; Gibbs, S. J. e Rein, G. L. Groupware: somes
issues and experiences. Communications of the ACM, New
York, v. 34, n. 1, p. 38.
[8] Fuks, H. and Assis, R. L. Facilitating Perception on Virtual
Learningware-Based Environments, Journal on Systems and
Information Technology, 2001.
[9] Gross, T. and Prinz W. Modelling Shared Contexts in
Cooperative Environments: Concept, Implementation, and
Evaluation. Computer Supported Cooperative Work 13: 283–
303, 2004.
[10] Gross, T., CYCLADES: A Distributed System for Virtual
Community Support Based on Open Archives, Eleventh
Euromicro Conference on Parallel, Distributed, and
Network-Based Processing - PDP 2003 (Feb. 5-7, Genova,
Italy). Clematis, A., ed. IEEE Computer Society Press, Los
Alamitos, CA, 2003. pp. 484-491.
Em relação aos benefícios da aplicação da abordagem proposta,
espera-se:
- agilizar o fluxo de informações interna ou externamente às
organizações, contribuindo para o aumento do compartilhamento
de informações entre indivíduos e por conseqüência o nível de
conhecimento organizacional;
- agilizar os processos de trabalho individuais ou coletivos,
através do compartilhamento de interesses;
[11] Gross, T., Stary, C. and Totter, A. User-Centered Awareness
in Computer-Supported Cooperative Work-Systems:
Structured Embedding of Findings from Social Sciences.
International Journal of Human-Computer Interaction, pp.
323-360, 2005.
- identificar competências inerentes a uma comunidade
pertencente a uma organização - é preciso muitas vezes agregar
competências de um grupo de pessoas ou mesmo descobrir
competências que até então não se tinha ciência de sua existência;
[12] Gutwin, C. and Greenberg, S. A Descriptive Framework of
Workspace Awareness for Real-Time Groupware. Computer
Supported Cooperative Work: The Journal of Collaborative
Computing 11, 3-4 (2002). pp. 411-446.
[13] Gutwin, C., Greenberg, S. and Roseman, M. Workspace
Awareness in Real-Time Distributed Groupware:
Framework, Widgets, and Evaluation. In Proceedings of the
Conference on Human-Computer Interaction: People and
Computers - HCI'96 (Aug. 20-23, London, UK). SpringerVerlag, Heidelberg, 1996. pp. 281-298.
- favorecer a criação de um ambiente de aprendizado, havendo o
desenvolvimento de novas habilidades profissionais, o que pode
ser conseguido, por exemplo, através da transferência de melhores
práticas de trabalho entre os indivíduos.
9. REFERENCIAS
[1] Brinck, T. and McDaniel, S. E. Awareness in Colaborative
Systems, Workshop Report, SIGCHI Bulletin, 1999.
[14] Isaacs, E. A., Tang, J.C. and Morris, T. PIAZZA: A desktop
Environment Supporting Impromtu and Planned Interactions.
Proc. CSCW’96, Cambridge, MA, 1996.
[2] Beamish, A.Communities On-line: A Study of Community –
Based Computer Networks. Tese de Mestrado em
Planejamento de Cidades. Instituto de Tecnologia de
Massachusetts – Estados Unidos. 1995. Disponível em
http://albertimit.edu/arch/4.207/anneb/thesis/toc.html
[15] Kamahara, J., Asakawa, T., Shimojo, S. and Miyahara, H., A
Community-based Recommendation System to Reveal
Unexpected Interests. Proceedings of the 11th International
Multimedia Modelling Conference (MMM’05), IEEE,
2005.
[3] Budzik, J., Bradshaw, S., Fu, X. and Hammond, K. J.,
Clustering for Opportunistic Communication. WWW 2002,
Honolulu, Hawaii, USA. ACM, 2002.
[16] Lefever, L. E-mail Lists and Message Boards – Where is the
Middle Ground? 2003. Disponível em
<http://www.commoncraft.com/archives/000401.html>.
Acessado em 15/09/2006.
[4] Dey, A..K. and Abowd, G..D. Towards a Better
Understanding of Context and Context-Awareness.
Proceedings of the CH12000 Workshop on The What, Who,
Where, When, Why and How of Context-Awareness, April,
2000.
[17] Mynatt, E.; O’Day, V.; Adler, A. and Ito, M., Design for
Network Communities. In Proc. ACM SIGCHI Conf. on
Human Factors in Compt. Syst., 1997.
[18] Salton, G., Automatic Text Processing: The Transformations,
Analysis, and Retrieval of Information by Computer,
Addison-Wesley, 1989.
[5] Dias, M.S., Xeréo, G. Editor Cooperativo para Diagramação
de Software OO. In: XI Simpósio Brasileiro de Engenharia
de Software. Anais. Fortaleza, CE, outubro, 1997. P. 499502.
[19] Shankar, S., and Karypis, G., A Feature Weight Adjustment
Algorithm for Document Categorization, KDD-2000
Workshop on Text Mining, Boston, USA, August 2000.
[6] Dias, A.; Welfer, D. e D´Ornellas, M. C. JENA: uma
ferramenta para desenvolver comunidades virtuais de
[20] Schlichter, J.; Koch, M. and Xu, C., Awareness – The
Common Link Between Groupware and Community Support
56
Cooperative Work in Design Proceedings. 2005. pp. 920925.
Systems. In T. Ishida, editor, Community Computing and
Support Systems, pages pp. 77-93. Springer Verlag, 1998.
[22] Vivacqua, A., Moreno, M. and Souza, J. CUMBIA: An
Agent Framework to Detect Opportunities for Collaboration.
Proceedings of the 9th International Conference on Computer
Supported Cooperative Work in Design. 2005. pp. 417-422.
[21] Tacla, C. A and Enembreck, F. An Awareness Mechanism
for Enhancing Cooperation in Design Teams. The 9th
International Conference on Computer Supported
57
Modelo 3C de Colaboração para o
desenvolvimento de Sistemas Colaborativos
Mariano Pimentel1, Marco Aurélio Gerosa1, Denise Filippo1,
Alberto Raposo2, Hugo Fuks1, Carlos José Pereira de Lucena1
Depto. de Informática, Pontifícia Universidade Católica do Rio de Janeiro (PUC-Rio) – (21) 31141500
R. Marquês de São Vicente, 225 – 22.453-900 Rio de Janeiro - RJ
1
{mariano,gerosa,denise,hugo,lucena}@inf.puc-rio.br
2
[email protected]
funcionalidades que uma aplicação colaborativa deve dar suporte.
Um modelo similar ao Modelo 3C de Colaboração também já foi
usado para guiar a detecção de problemas de usabilidade [17],
levando os avaliadores a focarem a atenção nos aspectos de
comunicação, coordenação e cooperação.
RESUMO
Este artigo apresenta como o Modelo 3C de Colaboração
(Comunicação, Coordenação e Cooperação) tem sido apropriado
por nosso grupo de pesquisa para o desenvolvimento de sistemas
colaborativos. Constata-se que este modelo é útil em diferentes
etapas do processo de desenvolvimento: para auxiliar a análise do
groupware a ser desenvolvido; no estabelecimento do foco para o
desenvolvimento de sucessivas versões do groupware num
processo iterativo e investigativo; e para o desenvolvimento de
arquitetura e componentes 3C.
Nosso grupo de pesquisa investiga o uso sistemático do Modelo
3C de Colaboração no desenvolvimento de sistemas colaborativos
visando à elaboração de uma “Engenharia de Groupware” [9].
Dentre as ações realizadas para alcançar este objetivo, foi
elaborado um processo específico para o desenvolvimento de
sistemas colaborativos denominado RUP-3C-Groupware [19].
Este processo consiste numa extensão do Rational Unified
Process [14] onde foram incorporadas as boas práticas aprendidas
ao longo dos nove anos de experiência com a pesquisa e o
desenvolvimento do AulaNet, que é um sistema colaborativo para
o ensino-aprendizagem pela web [10]. O RUP-3C-Groupware
documenta como o Modelo 3C de Colaboração é
sistematicamente usado nas diferentes etapas do processo de
desenvolvimento de um groupware: na análise de domínio para a
classificação das aplicações groupware e seus elementos (seção
2); no foco a ser dado para o desenvolvimento de uma versão do
groupware (seção 3), e na construção de componentes para a
montagem do groupware (seção 4). Em relação ao
desenvolvimento baseado em componentes [11], foram definidos
kits de componentes 3C que o desenvolvedor usa para montar
uma ferramenta de colaboração. Estas ferramentas, também
classificadas em função do Modelo 3C, são usadas para compor
sistemas colaborativos. Alguns resultados sobre as propostas
apresentadas neste artigo são discutidos na seção 5 e a conclusão
é apresentada na seção 6.
Palavras Chaves
Sistemas Colaborativos, Desenvolvimento de Groupware, Modelo
3C de Colaboração
1. INTRODUÇÃO
A colaboração envolve comunicação, coordenação e cooperação.
Comunicação se realiza através da troca de mensagens;
coordenação se realiza através do gerenciamento de pessoas,
atividades e recursos; e cooperação se realiza através de
operações num espaço compartilhado para a execução das tarefas.
Este modelo, que nosso grupo de pesquisa denomina Modelo 3C
de Colaboração, foi originalmente proposto no artigo de Ellis et
al. [5] com algumas diferenças de nomenclatura.
O Modelo 3C de Colaboração é frequentemente usado pela
literatura para classificar os sistemas colaborativos, tal como
proposto por Teufel et al. [22] e Borghoff & Schlichter [1].
Algumas tentativas têm sido feitas para usar este modelo no
desenvolvimento de groupware. Um exemplo é o modelo de
projeto Clover, que define 3 classes de funcionalidades,
denominadas comunicação, coordenação e produção [15]. O
modelo Clover compartilha da mesma utilidade do Modelo 3C de
Colaboração – ambos lidam com as três classes de
2. ANÁLISE DE GROUPWARE
Para analisar as aplicações colaborativas, um dos primeiros
sistemas de classificação a ficar amplamente conhecido foi a
taxonomia espaço-tempo [3]. Outra proposta foi a classificação
dos sistemas colaborativos ao nível da aplicação, sendo
enunciadas 7 classes de aplicações colaborativas [5]. Estas classes
foram analisadas em função do grau de suporte à comunicação,
coordenação e cooperação, sendo posicionadas no espaço
triangular apresentado na Figura 1 [1, 22].
20 a 22 de Novembro de 2006
Natal, RN, Brasil
© Sociedade Brasileira de Computação
Comissão Especial de Sistemas
Colaborativos
Anais do III Simpósio Brasileiro de Sistemas Colaborativos, pp. 58-67.
58
selecionados serviços como Aulas para disponibilizar conteúdos
(cooperação), Avisos e Exames (coordenação) para coordenar as
atividades da turma e realizar a avaliação dos conteúdos
assimilados por cada aluno – nenhum serviço de comunicação
precisaria ser selecionado uma vez que não se objetiva estabelecer
o diálogo entre os aprendizes (este é o método usado no ensino
tradicional e que não promove a colaboração).
COMUNICAÇÃO
vídeo-conferência
sistemas
de conferência
ferramentas
de comunicação
bate-papo
correio-eletrônico
sistemas
de mensagem
Lista de Discussão
espaços
de informação
compartilhada
Apesar da separação com o propósito de análise, as dimensões
comunicação, coordenação e cooperação não devem ser vistas de
maneira isolada, pois são interdependentes. Um ambiente
colaborativo, como exemplificado pelo AulaNet, deve dar suporte
aos três C’s. O posicionamento dos sistemas colaborativos no
espaço triangular enfatiza a contigüidade entre os 3C’s. Ainda que
o objetivo de uma ferramenta possa voltar-se para o suporte
específico de um dos C’s, ainda assim contemplará aspectos dos
demais C’s. Por exemplo, um sistema de mensagem como o
correio eletrônico, embora projetado para estabelecer a
comunicação, também pode ser usado para distribuir ordens aos
funcionários ou coordenar o trabalho de uma equipe, servindo
assim para também dar suporte à coordenação. É por isso que, no
espaço triangular, a classe Sistemas de Mensagem encontra-se
perto do vértice Comunicação (principal objetivo), mas está
deslocada na direção do vértice Coordenação (possibilita algum
suporte, embora não seja este o seu principal objetivo).
ferramentas de
coordenação
agentes
inteligentes
editores em grupo
salas de reunião
eletrônica
gerência de
workflow
COOPERAÇÃO
COORDENAÇÃO
ferramentas
de cooperação
Figura 1. Classificação 3C dos sistemas colaborativos
Dividindo o espaço triangular em três seções, como apresentado
na Figura 1, obtêm-se a classificação dos sistemas colaborativos
em função do Modelo 3C. Este é o sistema de classificação
adotado para a organização dos serviços de colaboração do
ambiente AulaNet, apresentados na Figura 2.
COMUNICAÇÃO
Síncrona
Assíncrona
Mensagem
C orreio para
Instantânea
Participante
Bate-papo
C orreio p/ Turma
Debate
C onferência
Aulas
Informações
Documentação
Avisos
Bibliografia
Tarefas
Webliografia
Exames
Download
Pesq. Opinião
C o-autoria
Acompanham.
da Participação
Identifica-se que cada ferramenta contém mecanismos para dar
suporte aos 3C’s. Por exemplo, analisando uma ferramenta típica
de bate-papo, Figura 3, são identificados três principais
mecanismos: uma área para digitar a mensagem que possibilita o
usuário se comunicar com os demais participantes, constituindose num suporte à Comunicação; uma lista de participantes
indicando os que estão conectados e disponíveis para a
conversação, constituindo-se num suporte à Coordenação; e uma
área apresentando o registro das mensagens enviadas,
constituindo-se num suporte à Cooperação. A ferramenta de batepapo é um bom exemplo para evidenciar que as ferramentas de
colaboração contêm elementos relacionados aos 3 C’s. Mesmo
sendo uma ferramenta de comunicação, pois seu objetivo é
possibilitar a troca de mensagens entre os membros de um grupo,
uma ferramenta de bate-papo também contém elementos de
coordenação e cooperação que são necessários para organizar e
documentar a comunicação.
Acompanham.
da Navegação
C ertificado
COOPERAÇÃO
COORDENAÇÃO
Figura 2. Serviços 3C do AulaNet 2.1
O AulaNet disponibiliza serviços que podem ser usados num
curso. Os serviços são colocados à disposição do docente durante
a criação e atualização de um curso, possibilitando-o selecionar
quais vão se tornar serviços disponíveis aos aprendizes,
configurando a área de trabalho do curso. Dessa maneira, o
coordenador é levado a observar o grau de suporte que está sendo
oferecido para a comunicação, coordenação e cooperação entre os
aprendizes e mediadores do curso. Como exemplo, no curso TIAE
[16], que objetiva promover aprendizagem colaborativa, são
selecionados serviços relacionados a todos os C’s, tais como:
Debate e Conferência para promover discussão entre os
aprendizes, Acompanhamento da Participação para coordenar a
participação da turma; Tarefas para possibilitar aprendizagem
baseada em projetos, e alguns serviços de cooperação para
organizar os conteúdos trabalhados na turma. Por outro lado,
quando o objetivo é elaborar um curso baseado na transmissão de
informação (em vez aprendizagem colaborativa), então são
59
Suporte à Cooperação
(registro das mensagens publicadas)
O Modelo 3C de Colaboração é usado por nosso grupo de
pesquisa como um guia para analisar um domínio de aplicação
groupware. Os procedimentos para realizar esta análise foram
documentados no detalhe de fluxo “Analisar Domínio” do RUP3C-Groupware, conforme esquematizado na Figura 4 (em
conformidade com a notação do RUP padrão).
Suporte à Coordenação
(lista de participantes)
Suporte à Comunicação
(digitação de novas mensagens)
Figura 3. Elementos 3C de um sistema de bate-papo
Seguindo este tipo de análise, é possível identificar os elementos
constituintes de uma família de aplicação classificando-os em
função do Modelo 3C, tal como apresentado no Quadro 1 para o
domínio das ferramentas de comunicação síncrona.
Cooperação
Coordenação
Comunicação
Quadro 1. Classificação 3C dos elementos das ferramentas de
comunicação síncrona
Linguagem
Principais linguagens da comunicação humana: escrita (texto),
falada (áudio), pictórica (imagens e animações) e gestual
(vídeo e avatar).
Transmissão
Pontual (após o emissor formular toda a mensagem) ou
Contínua (transmissão contínua de vídeo e áudio, ou caractera-caracter enquanto a mensagem está sendo formulada)
Tamanho e
Qualidade
Tamanho: quantidade de caracteres (texto) ou a duração em
segundos (vídeo e áudio). Qualidade do vídeo e do áudio é
geralmente reduzida para a transmissão pela Internet
Estruturação do
discurso
Estrutura linear (uma mensagem apresentada após a outra),
hierárquica (árvore, threads) ou em rede (grafo, mapas)
Categorização
Rótulos para caracterizar as mensagens, tais como: tipo de
fala (sussurra, pergunta, concorda, etc.); tipo de discurso
(direto ou indireto), tipo de emoção (alegre, zangado) etc.
Tópico
Assunto a ser discutido
Sessão
Espaço de tempo para a duração da conversação
Acesso
Quem ou quantos podem participar da conversação
Presença
Quem está participando da conversação
Disponibilidade
Status do participante: presente, ausente, ocupado, etc.
Papéis
Posse da
palavra
Atribuição de papéis: Operador, Mediador, Moderador etc.
Figura 4. Detalhe de fluxo “Analisar Domínio” proposto na
disciplina Modelagem de Negócio do RUP-3C-Groupware
De acordo com este detalhe de fluxo, cabe ao Analista de
Domínio analisar diferentes aplicações do domínio para o qual o
novo groupware está sendo desenvolvido. Este analista deve
consultar diversas fontes de informação tais como especialistas do
domínio, aplicações existentes, publicações e outros documentos
[23]. O analista estabelece comparações entre as aplicações
buscando abstrair os elementos de comunicação, coordenação e
cooperação do domínio. Como resultado desta atividade, objetivase construir um Quadro Conceitual 3C do domínio, ou aperfeiçoar
algum que já esteja em uso no projeto. Ao analisar as aplicações
do domínio, deve-se documentar as principais funcionalidades
classificando-as de acordo com o Quadro Conceitual 3C. O
analista também deve caracterizar o que é uma aplicação típica
daquele domínio, identificando seu conjunto mínimo e relevante
de elementos, o que servirá como base para o desenvolvimento de
sucessivas versões do groupware em busca da solução de
problemas. Alguns problemas e suas soluções naquele domínio já
podem ser conhecidos e devem estar documentados num
repositório, tornando-se útil para auxiliar o analista na seleção ou
especificação de uma variação de solução que já se saiba ser
adequada ao menos em outras aplicações. Deve-se, ainda, contar
com um Analista de Modelo 3C que será responsável pelo uso
consistente deste modelo ao longo do processo de
desenvolvimento do groupware.
Quem pode falar num dado momento
Freqüência
Limite da quantidade de mensagens que podem ser enviadas
num intervalo de tempo
Visibilidade
Pública (visível para todos os participantes) ou particular
(restrita a dois participantes)
Endereçamento
Indicação do
turno-emdesenvolvimento
Avaliação
Indicação do destinatário da mensagem
Registro
Armazenamento das mensagens publicadas
Informação de que o participante está formulando a
mensagem (antes de sua transmissão pontual)
Qualificação das mensagens, dos participantes ou da sessão
Configuração do
Visualização e Recuperação das mensagens publicadas
espaço
Mensagens
preconcebidas
Mensagens pré-elaboradas disponíveis para os participantes
trocarem durante a conversação
60
.1
01
20
isõe
s
HiperDiálogo
Comunicação
Perda de co-texto
Encadeamento de Mensagens
õe
20
v is
02
Re
.2
Desenvolver software, especialmente groupware, é resolver
problemas. Geralmente, um projeto de groupware inicia porque as
aplicações existentes não satisfazem as necessidades de um grupo,
sendo identificado um conjunto de problemas que se deseja
resolver. Uma boa prática é tentar resolver um problema por vez.
A cada versão, seleciona-se um problema específico para o qual
se projeta uma solução a partir da qual são derivados os requisitos
da versão. Quando a versão do groupware tiver sido construída,
desenvolve-se um estudo de caso para avaliar em que medida a
implementação da solução mostra-se adequada na resolução do
problema. A partir da análise de dados coletados do estudo de
caso, pode-se concluir se a versão está suficientemente adequada
para ser liberada para o uso, ou então, identificar modificações
que precisam ser feitas ou novos problemas que ainda precisam
ser resolvidos, dando início a um novo ciclo de desenvolvimento.
Esta é a prática aprendida por nosso grupo de pesquisa para o
desenvolvimento de groupware: desenvolvimento interativo
focando a resolução de um problema por versão.
s
Mediated Chat 2.0
Coordenação
Interrupção da Dinâmica
Técnicas de Conversação
2000.1
2004.1
2006.2
Revisões
Mediated Chat 3.0
Coordenação
Versão: Mediated Chat 1.0
Aspecto 3C: Comunicação
Problema: nenhum
Mecanismo: Framework Canais de
Comunicação
Mediated Chat 6.0
TODOS
Sobrecarga de Mensagens
Fila de Mensagens
04
Re
20
vi s
õe
s
Os mesmos anteriores
Revisão dos anteriores
.2
Mediated Chat 4.0
Coorperação
s
õe
Re
.1
v is
20 0 5
Dificuldades na Leitura e Escrita
Aperfeiçoamentos na Interface
Mediated Chat 5.0
Cooperação
O Modelo 3C de Colaboração tem se mostrado útil para guiar o
estabelecimento do foco a ser dado no desenvolvimento de cada
versão. Cada versão da aplicação groupware é desenvolvida para
resolver ora um problema de comunicação, ora de coordenação,
ora de cooperação, conforme esquematizado na Figura 5. O
desenvolvimento em função do Modelo 3C de Colaboração ajuda
a prever que dimensão da colaboração deve ser observada em
função da modificação de um determinado elemento, auxilia o
projeto da aplicação e a análise dos resultados obtidos de estudos
de caso.
Descontextualização
Registro de Sessão
Figura 6. Desenvolvimento das versões Mediated Chat
O desenvolvimento em sucessivas versões é especialmente útil
para os sistemas colaborativos uma vez que mudanças na
ferramenta geram modificações por vezes imprevistas e
indesejáveis na maneira do grupo trabalhar, sendo adequado rever
a solução implementada numa versão seguinte. O
desenvolvimento da versão Mediated Chat 2.0 exemplifica este
desencadeamento de modificações e revisões. Para diminuir o
problema da Confusão do Bate-papo, foi elaborada uma dinâmica
mais estruturada de conversação. Ao aplicar a dinâmica, foi
observada a ocorrência de um novo problema: os participantes
frequentemente enviavam mensagens inadequadas à etapa de
conversação em vigor, causando a Interrupção da Dinâmica. A
ferramenta Mediated Chat 2.0 foi então desenvolvida com um
conjunto de técnicas de conversação para definir quem pode falar
a cada instante (posse da palavra). Ao realizar um novo estudo de
caso, constatou-se que as técnicas implementadas não
possibilitavam contornar situações excepcionais, gerando novos
problemas. A implementação foi então revisada e integrada na
versão Mediated Chat 6.0.
Comunicação
Processo de Desenvolvimento de Groupware
Cooperação
R ev
3. DESENVOLVIMENTO ITERATIVO E
INVESTIGATIVO FOCANDO UM
PROBLEMA E UM “C” POR VERSÃO
Coordenação
Para o desenvolvimento de groupware, deve-se focar num dos C’s
por versão. Esta estratégia tem guiado o desenvolvimento das
versões Mediated Chat. Por exemplo, na versão Mediated Chat
1.0, o foco foi no estabelecimento da Comunicação; já na versão
3.0, o foco relaciona-se com a Coordenação. Na versão 3.0,
procurou-se resolver o problema denominado “Sobrecarga de
Mensagem”, que ocorre quando várias mensagens são enviadas
num curto intervalo de tempo, o que inviabiliza a leitura de todas
as mensagens potencializando a confusão da conversação. A
solução implementada nesta versão foi a “Fila de Publicação”,
onde o servidor aguarda um intervalo de tempo após publicar uma
mensagem. O intervalo de tempo é proporcional à quantidade de
caracteres, tendo sido empiricamente estimado como suficiente
para a leitura da mensagem recém publicada. Durante este
intervalo de tempo, as novas mensagens enviadas pelos
participantes são enfileiradas no servidor para a posterior
Figura 5. Processo de Desenvolvimento baseado no
Modelo 3C de Colaboração
Esta prática é exemplificada com o desenvolvimento das versões
do Mediated Chat [7], Figura 6. Estas versões têm sido
desenvolvidas para adequar a ferramenta de bate-papo ao uso
educacional. A Confusão do Bate-papo foi a principal limitação
identificada sobre o uso do bate-papo na educação. A Confusão
do Bate-papo é potencializada por um conjunto de problemas
sobrepostos. Procurou-se focar na busca pela solução de um único
problema específico no desenvolvimento de cada versão do
Mediated Chat, o que possibilitou compreender melhor o
problema e a solução implementada, e possibilitou identificar
novos problemas que ainda precisavam ser resolvidos.
61
publicação. Este mecanismo distribui a publicação das mensagens
ao longo do tempo de tal forma que os participantes consigam ler
todas as mensagens sem serem surpreendidos por rajadas de
mensagens.
Nem sempre é possível alterar apenas um dos C’s por versão. Ao
alterar um dos aspectos da colaboração, pode ser necessário
alterar também um outro aspecto. Por exemplo, ainda sobre a
versão Mediated Chat 3.0, com o uso da “Fila de Mensagem”,
uma mensagem com um texto muito longo faria o servidor ficar
suspenso por muito tempo tornando o bate-papo moroso. Para
evitar este novo problema, foi estabelecida uma quantidade
máxima de caracteres por mensagem. Essa limitação relaciona-se
com a Comunicação (ver Quadro 1, elemento “tamanho”).
Portanto, apesar desta versão focar na resolução de um problema
relacionado à Coordenação, foi necessário modificar também um
elemento relacionado à Comunicação. É preciso estar ciente que
os C’s são interdependentes, e alterar um pode requerer a
alteração de outro.
Figura 7. Principais atividades especificadas no detalhe de
fluxo “Analisar Problema” da disciplina Requisitos do
RUP-3C-Groupware
No RUP padrão, os requisitos do sistema são documentados no
artefato Visão durante a atividade Desenvolver Visão que faz uso
das Regras de Negócio e das Solicitações do Interessado. No
RUP-3C-Groupware, como ilustrado na Figura 7, primeiro devese executar a atividade Isolar Problema para documentar os
problemas relatados pelos interessados. Deve-se consultar o
repositório de Problemas e Soluções do Domínio para comparar
os problemas relatados com outros já conhecidos. Se for
identificado um novo problema, deve-se produzir o artefato
Documentação de Problema e cadastrá-lo no repositório.
Formalizados os problemas relatados pelo interessado, deve-se
selecionar um único problema (o de mais alta prioridade) para
desenvolver uma nova versão do groupware. Na atividade
Desenvolver Visão, o artefato visão a ser produzido deve ser
derivado do problema selecionado. Para especificar as
características da versão a ser desenvolvida, que serão usadas para
definir os Requisitos, deve-se partir de uma solução já conhecida,
se existir, ou propor uma variação de alguma solução relacionada.
Ao estabelecer as características da versão a ser desenvolvida a
partir da solução proposta, deve-se considerar as outras
Aplicações do Domínio, o Quadro Conceitual 3C, e os elementos
já existentes na Aplicação Típica (caso seja a primeira versão a
ser desenvolvida) ou numa versão desenvolvida anteriormente.
Também não é necessário resolver um único problema por versão.
Ainda tendo como exemplo a versão Mediated Chat 3.0, ao
projetar funcionalidades para indicar quem está na fila e quem
está falando, também se projetou a indicação de quem está
digitando, pois são os participantes que possivelmente entrarão na
fila de publicação. Este mecanismo acabou resolvendo outro
problema:
Falta-de-visibilidade-do-turno-em-desenvolvimento.
Nesta versão, foi possível lidar com a solução destes dois
problemas, embora tenha ficado mais difícil inferir as influências
dos mecanismos implementados.
A boa prática “focar um único problema e um único ‘C’ por
versão” é uma diretriz para nortear o desenvolvimento, mas não
deve ser seguida invariavelmente. Pode ser que a solução
introduza novos problemas sendo preciso modificar outros
elementos, inclusive de natureza diferente do C originalmente
focado. Pode ser que numa implementação coerente sejam
resolvidos dois problemas ao mesmo tempo. Idealmente, para se
realizar uma pesquisa rigorosa, em cada versão deve-se projetar
uma solução que modifique apenas um elemento do domínio para
facilitar a análise de suas influências. Na prática, este diretriz
deve ser aplicada com bom senso.
O objetivo de se focar num único C é induzir o projetista a
observar os aspectos da colaboração questionando-se de que
maneira o novo mecanismo implementado estará influenciando a
comunicação, a coordenação e a cooperação. A organização dos
elementos do domínio em função do Modelo 3C de Colaboração
ajuda a prever mudanças e auxilia na análise dos resultados
obtidos de estudos de caso.
Num processo de desenvolvimento de groupware, a prática
“desenvolvimento iterativo e investigativo focando um problema
e um C por versão” se realiza nas etapas Requisitos e Testes.
62
Quadro 2. Ferramentas 3C dos ambientes Colaborativos
Coordenação
C
Figura 8. Detalhes do fluxo “Realizar Estudo de Caso”
do RUP-3C-Groupware
Coordenação
Na disciplina Teste, procura-se por erros de implementação e
inferir a conformidade com os requisitos. No RUP-3CGroupware, foi especificado um teste de validação para investigar
a adequação da solução proposta para o problema que originou o
desenvolvimento da versão, o que é realizado através do fluxo
Estudo de Caso apresentado na Figura 8. Embora a realização de
estudo de caso seja uma prática mais específica para o
desenvolvimento de groupware, esta etapa não é influenciada
diretamente pelo Modelo 3C de Colaboração, mas sim por
princípios da pesquisa etnográfica. Este é o detalhe de fluxo que
possibilita o desenvolvimento investigativo de groupware.
4. COMPONENTES 3C
Um sistema colaborativo geralmente integra um conjunto de
ferramentas para colaboração. O Quadro 2 lista diferentes
ferramentas disponíveis em diferentes sistemas colaborativos.
Alguns tipos de ferramenta são usados em diferentes sistemas
colaborativos – por exemplo, a maioria dos sistemas analisados
oferece fórum, bate-papo, agenda, relatórios de atividades,
questionários, gerenciamento de tarefas, votação, repositório e
links. Cada ferramenta pode ser vista de forma relativamente
autônoma dentro do sistema colaborativo. Estas características são
propícias à aplicação de técnicas de desenvolvimento baseado em
componentes, onde as ferramentas são componentes do sistema
colaborativo a serem instanciados e configurados.
Correio
Lista de Discussão
Fórum
Mural
Brainstorming
Bate-papo (chat)
Mensageiro
Agenda
Relat de Atividades
Acomp. da Particip.
Questionário
Tarefas
SubGrupos
Gerenc. de recursos
Orientação
Votação
Conteúdos
Quadro Branco
Busca
Glossário
Links
Jornal Cooperativo
Classificador
Wiki
Gerenc. de contatos
Revisão em pares
FAQ
Anotações
RSS
x x x x
x
x
x x x x x x
x x
x
x x x x x
x
x
x x x x x
x x x x x
x x x
x x
x x x x x x
x x x x x x
x x
x x
BSCW
OpenGroupwar
YahooGroups
Moodle
GroupSystems
WebCT
AVA
TelEduc
AulaNet
Ambientes Colaborativos
x
x
x
x
x
x x x
x
x
x
x x
x
x
x
x
x x x x
x x x x x
x
x
x x
x
x x x
x
x x x x x
x
x
x
x
x
x
x
x
x x
x x
x x x x
x
x
x
x
x
Além dos sistemas colaborativos possuírem ferramentas similares,
tais ferramentas também possuem funcionalidades similares. Por
exemplo, os serviços Conferências e Correio para Turma do
ambiente AulaNet compartilham o suporte ao envio, ao
recebimento e à exibição de mensagens, à categorização, à
avaliação da participação e ao bloqueio do canal de comunicação,
entre outras funcionalidades. Encapsular as funcionalidades
recorrentes em componentes propicia também o reuso do suporte
computacional à colaboração, aumentando o reuso de código.
Passa também a ser possível evoluir, ajustar e construir serviços
variando e reconfigurando os componentes de colaboração.
Estes cenários indicam a utilidade de se adotar o desenvolvimento
de groupware baseado em dois níveis de componentes. O primeiro
nível contempla os componentes que provêem os serviços
colaborativos, usados para oferecer suporte computacional à
dinâmica da colaboração como um todo. O segundo nível
contempla os componentes usados para montar ferramentas de
colaboração, oferecendo suporte a determinados aspectos da
colaboração dentro de uma ferramenta em particular. Nesta
63
abordagem proposta, como ilustrado na Figura 9, os componentes
que implementam as ferramentas colaborativas são chamados de
serviços e os componentes usados para implementar o suporte
computacional à colaboração dos serviços são chamados de
componentes de colaboração. Mesmo um serviço de
comunicação, como uma ferramenta de bate-papo, além dos
componentes de comunicação, também usa componentes de
coordenação e de cooperação. Os componentes de colaboração de
um C são reusados nos serviços dos demais C’s.
Debate
Collaboration Component Framework
Kit e Framework
de Componentes
de Comunicação
Kit e Framework
de Componentes
de Coordenação
Gerenciador
Participantes
Mensagem
Texto
Comunicação
Comunicação
Componente de
Colaboração 1
Gerenciador
de Sessões
Canal
Textual
Serviço A
Registro
Publicador
Componente de
Colaboração 2
Coordenação
Kit e Framework
de Componentes
de Cooperação
Groupware x
Serviço B
Técnicas de
Conversação
Coordenação
Componente de
Colaboração 3
Groupware y
Serviço C
Serviço D
Figura 10. Montagem do serviço Debate a partir dos
kits de componentes baseados no Modelo 3C de Colaboração
Componente de
Colaboração 4
Cooperação
Cooperação
Os componentes do Collaboration Component Kit são usados pelo
desenvolvedor de groupware na composição dos serviços
colaborativos. A Figura 10 ilustra a construção do serviço Debate
no AulaNet 3.0. Para a montagem deste serviço foram
selecionados alguns dos componentes 3C do Collaboration
Component Kit.
Componente de
Colaboração 5
Figura 9. Sistemas colaborativos montados a partir de
serviços, e serviços montados a partir de
componentes de colaboração
4.2 Arquitetura Componentizada
O Modelo 3C de Colaboração é útil nesta abordagem para definir
uma sistemática de classificação para os componentes. A partir de
kits de componentes de colaboração, organizados em função do
Modelo 3C, o desenvolvedor monta um serviço. Cada serviço, por
sua vez também classificado em função do Modelo 3C, pode ser
usado para montar um sistema colaborativo. Além do reuso, esta
abordagem favorece também a capacidade de extensão da solução
ao possibilitar a inclusão de novos componentes. As subseções a
seguir detalham esta abordagem para a montagem de groupware a
partir de componentes 3C.
Para oferecer suporte ao gerenciamento e à execução dos
componentes, são usados component frameworks [21]. Um
component framework é um conjunto de interfaces e regras de
interação que possibilitam a implantação de componentes
aderentes a um padrão. Na arquitetura proposta, é feito uso de um
component framework para cada tipo de componente proposto.
No Service Component Framework são acoplados os serviços,
oferecendo suporte à montagem do sistema colaborativo, e no
Collaboration Component Framework são acoplados os
componentes de colaboração, usados na montagem do serviço. A
Figura 11 ilustra a implantação dos componentes nos component
frameworks correspondentes, que estabelecem as condições
ambientais para as instâncias dos componentes e oferecem
serviços relativos ao ciclo de vida.
4.1 Collaboration Component Kit
Um component kit é um conjunto de componentes interoperáveis
aderentes a uma padronização. De um component kit gera-se uma
família de aplicações, fazendo diferentes arranjos e eventualmente
desenvolvendo alguns sob medida [24]. Para desenvolver um
component kit, são analisadas aplicações similares e são
identificados e generalizados componentes comuns [4]. Os
component kits são extensíveis para acomodar novos
componentes quando necessários. Componentes de software que
sejam realmente reusáveis são refinados iterativamente até atingir
a maturidade, a confiabilidade e a adaptabilidade desejadas [13].
Groupware
Application
Groupware
Component
Framework
Framework
Service
Component
Framework
Service X
Service Y
Collaboration
Component
Framework
.
.
3C Component A
3C Component B
Infrastructure Frameworks
Database
.
Figura 11. A arquitetura de aplicação proposta
Os component frameworks são responsáveis por tratar a
instalação, remoção, atualização, ativação, desativação,
64
localização, configuração, monitoramento, importação e
exportação de componentes. O Service Component Framework
gerencia as instâncias dos serviços e a ligação com os
componentes de colaboração correspondentes. O Collaboration
Component Framework gerencia as instâncias dos componentes
de colaboração, que são provenientes do Collaboration
Component Kit.
Grande parte das funcionalidades dos component frameworks é
recorrente e reusável. Um framework pode ser usado para a
instanciação de uma família de sistemas. Na arquitetura proposta,
é utilizado um framework para instanciar os component
frameworks. Este tipo de framework é chamado de component
framework framework (CFF) [21]. Um component framework
framework é visto como um component framework de segunda
ordem, onde seus componentes são component frameworks. Da
mesma forma que um componente interage com outros
diretamente ou mediado pelo component framework, o mesmo
pode ser dito dos component frameworks, cujo suporte de mais
alto nível é o component framework framework. A Figura 11,
estendendo a notação utilizada por Szyperski [21], ilustra a
arquitetura de aplicação, incluindo o Groupware Component
Framework Framework, como o component framework de
segunda ordem.
Figura 12. Uso do Kit de Componentes 3C
no RUP-3C-Groupware
Num processo sistemático de desenvolvimento, a abordagem
baseada em componentes influencia as disciplinas de Projeto e
Implementação. Como ilustrado na Figura 12, no RUP-3CGroupware, o projetista deve levar em consideração os
componentes de colaboração já existentes ao Projetar Subsistema.
Quando necessário, novos componentes deverão ser projetados,
implementados e catalogados no repositório Kit de Componentes
3C.
A arquitetura elaborada segue uma divisão em camadas,
importante para tratar a complexidade de sistemas
componentizados. A camada de apresentação (não representada
na Figura 11) é responsável pela captura e apresentação de dados
e pela interação com o usuário; a camada de negócio captura o
modelo da lógica de negócio do domínio da aplicação; e a camada
de infra-estrutura implementa os serviços técnicos de baixo nível.
A mesma infra-estrutura desenvolvida para a camada de negócio
pode ser usada para mais de uma apresentação, como por
exemplo, PDA, desktop implementado em HTML e desktop
implementado em Flash (Rich Internet Application). Quando os
serviços da camada de negócio necessitam de acesso remoto,
como por exemplo um cliente PDA, são disponibilizados web
services que encapsulam a fachada da camada de negócio. Nos
demais casos, a apresentação acessa diretamente a fachada do
negócio.
5. RESULTADOS OBTIDOS
Para obter indícios se engenheiros de software (além dos que
constituem a equipe de desenvolvimento do Projeto AulaNet e do
grupo de pesquisa [email protected]) conseguiriam usar o
Modelo 3C Colaboração no desenvolvimento de groupware,
foram realizados Estudos de Caso com os alunos de graduação (2
alunos) e pós-graduação (3 de mestrado e 2 de doutorado) da
disciplina Engenharia de Groupware do Departamento de
Informática da PUC-Rio durante o segundo semestre de 2005.
Dentre os trabalhos integrantes das atividades desta disciplina,
individualmente, os alunos tiveram que selecionar um sistema
colaborativo e analisar suas funcionalidades, classificando-as em
comunicação, coordenação ou cooperação. Numa segunda etapa
do trabalho, tiveram que efetuar um estudo comparativo de
aplicações colaborativas similares à escolhida, propondo
aprimoramentos através de incorporação de serviços e
funcionalidades que estendam e complementem os três C’s
analisados do sistema. Numa terceira parte do trabalho, cada
aluno apresentou uma arquitetura e um protótipo da extensão do
sistema usando a infra-estrutura e os componentes 3C
apresentados neste artigo. Por fim, os alunos executaram algumas
das atividades-chave e produziram alguns artefatos-chave do
processo RUP-3C-Groupware.
O ferramental desenvolvido com esta pesquisa instrumenta o
desenvolvimento da camada de negócio, implementando os
conceitos do Modelo 3C de Colaboração. A arquitetura de
aplicação expressa a estrutura dos componentes do domínio,
representando um projeto lógico de alto nível independente da
tecnologia de suporte [4]. Instrumentado pelo Modelo 3C de
Colaboração, o desenvolvedor modela a aplicação e seus
requisitos, e seleciona os serviços e seus componentes de modo a
oferecer suporte às necessidades de colaboração. O desenvolvedor
seleciona os componentes desejados a partir dos component kits,
implantando-os nos component frameworks correspondentes.
Os resultados dos estudos de caso foram avaliados por observação
direta dos mediadores do curso e pela aplicação de questionários
individuais. Dada a inexperiência da turma em lidar com a
tecnologia de componentes e com o modelo de colaboração, os
76% de acerto foi considerado satisfatório. Os alunos receberam e
responderam um questionário sobre o ferramental disponibilizado.
A maior parte dos alunos avaliou o grau de dificuldade da
utilização do modelo 3C para a análise da aplicação escolhida
como regular, em uma escala de muito difícil a muito fácil. O
entendimento do modelo 3C teve a mesma avaliação. Estes
65
resultados foram considerados satisfatórios, visto que os alunos
tiveram o primeiro contato com o modelo 3C e com a abordagem
durante o curso e não são especialistas em groupware. Com
relação à abrangência do modelo 3C na modelagem do sistema, 5
alunos avaliaram como suficiente e 2 como regular, indicando que
a maior parte das funcionalidades identificadas foram
classificadas. Com relação à utilização dos componentes 3Cs, 5
alunos identificaram a solução como complexa e 2 como normal,
em uma escala de muito simples a muito complexa. Este resultado
também foi considerado satisfatório, dado que, além de não serem
especialistas em groupware, os alunos não são especialistas em
componentes de software. Apesar de a maioria ter classificado a
solução como complexa, todos avaliaram a utilização de
componentes 3C na composição de groupware como bom ou
muito bom. Com relação ao encapsulamento das complexidades
de baixo nível, 3 alunos avaliaram como neutro, 2 como bom e 2
como muito bom. Por fim, ao avaliar o suporte computacional a
groupware utilizando componentes 3C, 2 alunos avaliaram como
neutro e 5 como bom.
a) AulaNet 3.0 para Desktop
Em relação ao uso do processo RUP-3C-Groupware, ao final do
trabalho os alunos deveriam preencher um Questionário avaliando
as atividades e artefatos experimentados, e cada aluno foi
entrevistado durante 15 minutos de acordo com o método de
entrevista de perguntas abertas [18]. Os participantes julgaram
todos os artefatos como sendo muito relevantes para o processo de
desenvolvimento, e que são de entendimento e execução com grau
de dificuldade médio para fácil. Além do julgamento subjetivo
dos participantes, foi analisada a qualidade dos artefatos
produzidos, e constatou-se que os alunos conseguiram produzir
adequadamente a maioria dos artefatos-chave específicos do
processo elaborado. Estes resultados indicam a repetitividade do
processo: Engenheiros de Software conseguem seguir o RUP-3CGroupware.
b) AulaNetM para PDA e Celular
Figura 13. Novas versões do AulaNet
O processo RUP-3C-Groupware encontra-se em sua versão inicial
e, a médio prazo, novas pesquisas devem ser realizadas buscando
a melhoria contínua do processo elaborado. Mesmo em sua versão
inicial, este processo já é útil para auxiliar o desenvolvimento de
groupware, fornecendo diretrizes para: usar o Modelo 3C de
Colaboração na análise e desenvolvimento do groupware;
desenvolver versões do groupware focando um problema por
versão, num processo evolucionário e investigativo que inclui a
realização de estudos de caso; e desenvolver groupware fazendo
uso da abordagem baseada em componentes e orientada ao reuso.
6. CONCLUSÃO
Este artigo mostrou o uso do Modelo 3C de Colaboração em
diferentes etapas do desenvolvimento de groupware: modelagem
de Negócio, Requisitos, Análise, Projeto e Implementação. Nosso
grupo de pesquisa tem mostrado a utilidade deste modelo no
processo de desenvolvimento de groupware [19, 8], no
desenvolvimento de ferramentas de colaboração [7, 12], no
desenvolvimento da versão AulaNet 3.0 (Figura 13.a) [20] e na
versão AulaNetM para equipamentos móveis (Figura 13.b) [6].
7. AGRADECIMENTOS
O Projeto AulaNet é parcialmente financiado pela Fundação
Padre Leonel Franca e pelo Ministério da Ciência e Tecnologia
através do projeto Sistemas Multi-Agentes para a Engenharia de
Software (ESSMA) bolsa nº 552068/2002-0. Também é
financiado pelas bolsas individuais do CNPq: Carlos Lucena nº
30091/2003-6, Hugo Fuks nº 301917/2005-1, Marco Aurélio
Gerosa nº 383719/2006-2 e Mariano Pimentel nº 383718/2006-6.
Denise Filippo recebe bolsa CCPG/VRAc da PUC-Rio.
8. REFERÊNCIAS
[1] Borghoff, U.M. & Schlichter, J.H. Computer-Supported
Cooperative Work: Introduction to Distributed Applications.
Springer, USA, 2000.
[2] Calvary, G., Coutaz, J. & Nigay, L. From Single-User
Architectural Design to PAC*: a Generic Software
Architectural Model for CSCW. Conference on Human
Factors in Computing Systems (CHI’97), 1997. pp 242-249.
66
Monografias em Ciência da Computação, no 07/02,
Departamento de Informática, PUC-Rio, 2002. Também
disponível online: http://groupware.les.inf.pucrio.br/courses/Manual_Aprendiz_TIAE.pdf
[3] DeSanctis, G., Gallupe, B.. A foundation for the study of
group decision support systems. Management Science, v. 33,
n. 5. 1987. p. 589-609.
[4] D’Souza, D.F., Wills, A.C. Objects, Components and
Frameworks with UML: The Catalysis Approach. Addison
Wesley, 1998.
[17] Neale, D.C., Carroll, J.M. & Rosson, M.B. Evaluating
computer-supported cooperative work: models and
frameworks, Proceedings of the 2004 ACM Conference on
Computer Supported Cooperative Work (CSCW '04),
Chicago, Illinois, USA, November 06 - 10, ACM Press, New
York, 2004. pp. 112-121.
[5] Ellis, C.A., Gibbs, S.J. & Rein, G.L. Groupware - Some
Issues and Experiences. In: Communications of the ACM, v.
34, n. 1. 1991, p. 38-58.
[6] Filippo, D., Fuks, H., & Lucena, C.J.P. AulaNetM: Extensão
do Serviço de Conferências do AulaNet destinada a usuários
de PDAs. Anais do XVI Simpósio Brasileiro de Informática
na Educação - SBIE 2005, Juiz de Fora, MG, 9 a 11 de
novembro de 2005, pp. 623-633.
[18] Nicolaci-da-Costa, A. M., Leitão, C. F. e Romão-Dias, D.
Gerando conhecimento sobre homens, mulheres e crianças
que usam computadores: algumas contribuições da
psicologia clínica, IV Workshop sobre Fatores Humanos em
Sistemas Computacionais, Florianópolis, 2001.
[7] Fuks, H., Pimentel, M., Lucena, C.J.P. R-U-Typing-2-Me?
Evolving a chat tool to increase understanding in learning
activities. International Journal of Computer-Supported
Collaborative Learning, v. 1, n. 1, ISSN 1556-1607 (Paper)
1556-1615 (Online). Springer, 21 Março 2006. p 117-142.
Também disponível online:
http://dx.doi.org/10.1007/s11412-006-6845-3
[19] Pimentel, M. RUP-3C-Groupware: um processo de
desenvolvimento de groupware baseado no Modelo 3C de
Colaboração. Tese de Doutorado, Departamento de
Informática, Pontifícia Universidade Católica do Rio de
Janeiro (PUC-Rio), 22 de março de 2006.
[20] Pimentel, M., Gerosa, M.A., Filippo, D., Barreto, C.G.,
Raposo, A., Fuks, H. & Lucena, C.J.P. AulaNet 3.0:
desenvolvendo aplicações colaborativas baseadas em
componentes 3C. WCSCW 2005 - Workshop Brasileiro de
Tecnologias para Colaboração, 7 e 8 de Novembro 2005. Em
Anais XVI Simpósio Brasileiro de Informática na Educação,
v. 2, ISBN 85-88279-48-7. Juiz de Fora - MG: UFJF, 8 a 11
de Novembro 2005. p. 761-770.
[8] Fuks, H., Raposo, A., Gerosa, M.A. & Lucena, C.J.P.
Applying the 3C Model to Groupware Development.
International Journal of Cooperative Information Systems
(IJCIS), v.14, n.2-3, World Scientific, Jun-Sep 2005. pp.
299-328.
[9] Fuks, H., Raposo, A. & Gerosa, M.A. Do Modelo de
Colaboração 3C à Engenharia de Groupware. WEBMIDIA
2003 - Simpósio Brasileiro de Sistemas Multimídia e Web,
Trilha especial de Trabalho Cooperativo Assistido por
Computador, Novembro 2003, Salvador-BA, pp. 445-452.
[21] Szyperski, C. Component Software: Beyond Object-Oriented
Programming, Addison-Wesley, 1997.
[10] Fuks, H., Gerosa, M.A., Lucena, C.J.P. The Development
and Application of Distance Learning on the Internet. Open
Learning - The Journal of Open and Distance Learning, v.
17, n. 1, 2002. p. 23-38.
[22] Teufel, S., Sauter, C., Mühlherr, T., Bauknecht, K.
Computerunterstützte Gruppenarbeit. Bonn: AddisonWesley, 1995 apud Borghoff, U.M. and Schlichter, J.H.,
Computer-Supported Cooperative Work: Introduction to
Distributed Applications. Springer, USA, 2000.
[11] Gerosa, M.A. Desenvolvimento de Groupware
Componentizado com Base no Modelo 3C de Colaboração.
Tese de Doutorado, Departamento de Informática, Pontifícia
Universidade Católica do Rio de Janeiro (PUC-Rio), 16 de
março de 2006.
[23] Werner, C.M.L., Braga, R.M.M. A Engenharia de Domínio e
o Desenvolvimento Baseado em Componentes.
Desenvolvimento Baseado em Componentes: Conceitos e
Técnicas. I.M.Souza Gimenes, E.H.M.Huzita (orgs.) Rio de
Janeiro, Ciência Moderna, 2005. p. 57-103.
[12] Gerosa, M.A., Pimentel, M., Filippo, D., Barreto, C.G.,
Raposo, A., Fuks, H. & Lucena, C.J.P. Componentes
Baseados no Modelo 3C para o Desenvolvimento de
Ferramentas Colaborativas. Anais do 5º Workshop de
Desenvolvimento Baseado em Componentes - WDBC 2005,
7-9 de novembro de 2005, Juiz de Fora, MG, pp. 109-112.
[24] Wills, A.L. Components and Connectors: Catalysis
Techniques for Designing Component Infrastructures, in:
Component-Based Software Engineering: Putting the Pieces
Together, Hineman, G.T. & Councill, W.T. (eds), AddisonWesley, 2001.
[13] Gimenes, I.M.S., Huzita, E.H.M (orgs.) Desenvolvimento
Baseado em Componentes: Conceitos e Técnicas. Rio de
Janeiro: Ciência Moderna, 2005.
[14] Kruchten, P. Introdução ao RUP – Rational Unified Process.
Rio de Janeiro: Ciência Moderna, 2003.
[15] Laurillau, Y. & Nigay, L. Clover architecture for groupware.
Proceedings of the Conference on Computer-Supported
Cooperative Work (CSCW 2002), 2002. pp. 236 – 245
[16] Lucena, C.J.P., Fuks, H. Tecnologias de Informação
Aplicadas à Educação (TIAE): Manual do Aprendiz.
67
Um Ambiente para Integração de Aplicações Colaborativas
Roberta Lima Gomes
Guillermo de J. Hoyos Rivera
Jean Pierre Courtiat
DI/UFES
Vitória-ES
Brasil
+55 (27) 33 35 26 54
Universidad Veracruzana
Vera Cruz
Mexico
+52 (228) 8 17 28 55
LAAS-CNRS
Toulouse
France
+33 (0) 5 61 33 62 63
[email protected]
[email protected]
[email protected]
RESUMO
1. INTRODUÇÃO
As atividades colaborativas são geralmente conduzidas por grupos
de indivíduos apresentando diferentes requisitos e tarefas a serem
executadas.
Conseqüentemente,
diferentes
aplicações
colaborativas devem ser utilizadas a fim de realizar essas
atividades. No entanto, apesar de serem utilizadas durante a
execução de uma mesma atividade colaborativa, as aplicações são
executadas de forma independente. A integração de tais aplicações
permitiria que suas diferentes funcionalidades de colaboração
fossem dinamicamente combinadas e controladas de acordo com
as necessidades dos usuários. Este artigo apresenta um ambiente
de integração, denominado LEICA, que adota uma abordagem
fracamente acoplada permitindo a integração de aplicações
colaborativas existentes. Apesar de sua abordagem fracamente
acoplada, LEICA oferece mais do que uma simples
interoperabilidade entre aplicações, onde o próprio usuário define
a semântica de integração desejada.
Devido ao fato das atividades colaborativas envolverem diferentes
indivíduos, apresentando diferentes tarefas de grupo e requisitos,
o suporte a essas atividades é dificilmente oferecido por um
sistema colaborativo simples. Na verdade, várias funcionalidades
de comunicação, coordenação e cooperação podem ser necessárias
para a realização de tais atividades. Com isso, alguns sistemas de
suporte ao trabalho cooperativo (ou sistema CSCW, Computer
Supported Cooperative Work) procuram combinar diferentes
funcionalidades de forma a oferecer um ambiente único e
completo de suporte à colaboração.
O principal problema desta abordagem está associado ao fato de
que é praticamente impossível prever todas as funcionalidades
necessárias à execução de atividades colaborativas. Devido ao seu
aspecto dinâmico, novas exigências podem surgir ao longo de
uma atividade. Desta forma, dificilmente um sistema colaborativo
será suficientemente apropriado e completo. Com isso, esses
sistemas devem ser flexíveis o suficiente para se adaptarem às
novas exigências dos usuários [17]. No entanto, os níveis de
flexibilidade dos sistemas CSCW atuais são relativamente
restritos. Em geral, para se adicionar uma nova funcionalidade
colaborativa ao sistema, um novo componente ou módulo deve
ser desenvolvido especificamente para este fim.
ABSTRACT
Collaboration activities usually involve several people with
different group tasks and needs. Accordingly, different types of
collaborative applications are usually applied in order to support
group work. But in spite of being used to accomplish a common
collaboration task, these applications are executed independently.
The integration of such applications would allow their different
functionalities to be combined in a controlled way according to
user requirements. In order to achieve integration, we propose
LEICA, a loosely-coupled integration environment which allows
collaborative applications to interact without loosing their
autonomy. Despite been loosely-coupled, LEICA goes beyond
interoperability, allowing users to define integration semantics.
Consequentemente, para se obter um suporte completo à execução
de atividades colaborativas, os usuários decidem utilizar
diferentes aplicações colaborativas independentes (acadêmicas ou
disponíveis no mercado). Mas apesar de serem utilizadas durante
a realização de uma mesma tarefa (ou um conjunto de tarefas),
essas aplicações são executadas lado a lado, mas
independentemente umas das outras. Um ambiente integrado de
colaboração permitiria que as funcionalidades dessas aplicações
fossem combinadas e controladas dinamicamente, de acordo com
a necessidade dos usuários.
Palavras-chave
Aplicações colaborativas; CSCW; ambientes de integração;
aplicações distribuídas; serviços Web.
Com o objetivo de possibilitar a integração de diferentes
aplicações colaborativas existentes, este trabalho propõe o
ambiente LEICA: “Loosely-coupled Environment for Integrating
Collaborative Applications”. LEICA adota uma integração
fracamente acoplada que permite a abstração dos detalhes internos
de cada aplicação, facilitando assim o processo de integração.
Uma outra vantagem desta abordagem é que, uma vez integrada
ao ambiente, a aplicação colaborativa mantém sua autonomia de
execução. Da mesma forma, LEICA mantém-se independente das
aplicações, isto é, novas aplicações podem ser integradas ou
retiradas do ambiente sem comprometer a execução deste último.
Keywords
Collaborative applications; CSCW; integration environments;
distributed applications; Web services.
20 a 22 de Novembro de 2006
Natal, RN, Brasil
© Sociedade Brasileira de Computação
Comissão Especial de Sistemas
Colaborativos
Anais do III Simpósio Brasileiro de Sistemas Colaborativos, pp. 68-77.
68
distintos manipulando os mesmos documentos textuais). O
trabalho se focaliza na integração dos mecanismos de controle de
acesso (ou floor control) empregados pelas diferentes aplicações
acessando um mesmo artefato. Em contrapartida, este trabalho
não considera a integração de aplicações que, embora implicadas
em uma mesma atividade colaborativa, não manipulem os mesmos
artefatos (por exemplo, uma videoconferência e um Whiteboard
compartilhado).
Para implementar uma integração fracamente acoplada, LEICA
define uma arquitetura apoiada em tecnologias de serviços Web e
um Sistema de Notificação de Eventos. Uma vez integradas ao
ambiente, as aplicações colaborativas passam a interagir dentro do
contexto de uma seção colaborativa global, denominada
SuperSession. Essas interações são controladas segundo a Política
de Colaboração definida para a respectiva SuperSession. Através
da Política de Colaboração os usuários especificam como as
diferentes aplicações são coordenadas, definindo assim a
semântica desejada para a integração.
Iqbal et al. [16] propõem um framework de integração de sistemas
CSCW, apoiando-se nos três modelos apresentados por Ellis e
Wainer [8]:
• o modelo de ontologias especifica todos os objetos
compartilhados pela aplicação, suas relações e terminologias;
• o modelo de coordenação especifica a maneira em que as
interações ocorrem no sistema sob forma de fluxo de processos
(ou workflow);
• o modelo de interface de usuário descreve como o sistema é
apresentado ao usuário final.
Este artigo está estruturado em sete seções. A seção 2 apresenta os
trabalhos relacionados. Na seção 3 é introduzida a abordagem
geral de integração. A seção 4 apresenta o processo de
configuração de uma SuperSession, detalhando a especificação de
sua Política de Colaboração. Na seção 5 é detalhada a arquitetura
de LEICA. A seção 6 apresenta a metodologia de análise e projeto
do ambiente, finalizando com a descrição do protótipo
desenvolvido. Na seção 7 são apontadas algumas conclusões e
trabalhos futuros.
O framework apresentado em [16] prevê uma integração no nível
de cada um desses modelos. O processo de integração consiste em
identificar, para cada aplicação, os elementos associados aos três
modelos. Em seguida, no nível de cada modelo, os elementos de
todas as aplicações são agrupados (onde os elementos
equivalentes são “agregados”) de forma a gerar modelos comuns
de ontologias, coordenação e interface de usuário. Deve-se
observar que, apesar de garantir uma integração completa das
aplicações colaborativas, esta abordagem requer um bom
conhecimento interno de cada aplicação. Consequentemente, a
integração de aplicações já existentes, desenvolvidas por terceiros
(acadêmicas ou comerciais) torna-se uma tarefa muito complexa
(ou mesmo impossível) de ser realizada.
2. TRABALHOS RELACIONADOS
Diferentes trabalhos podem ser encontrados na literatura
abordando a integração de aplicações heterogêneas,
principalmente no contexto de sistemas distribuídos. Soluções
genéricas de integração baseadas em middlewares, como CORBA,
DCOM e EJB encontram-se disponíveis, assim como soluções
mais específicas a determinados domínios, como, por exemplo, as
soluções de EAI (Enterprise Application Integration) [1], visando
a integração de sistemas de informação empresariais.
Recentemente, com a emergência dos serviços Web [20], novas
soluções de integração vêm sendo propostas. Devido à utilização
de padrões e protocolos abertos, o conceito de serviços Web tem
se mostrado como uma tecnologia promissora para a integração de
aplicações distribuídas.
Com o objetivo de evitar que os detalhes internos das aplicações
sejam considerados durante o processo de integração (facilitando
desta forma a integração de aplicações existentes), alguns
ambientes propõem uma abordagem de integração dita
“fracamente acoplada”, ou “loosely-coupled”. Esta abordagem
apresenta outros dois aspectos importantes:
• uma vez integrada ao ambiente, a aplicação colaborativa
preserva sua autonomia de execução, isto é, ela pode continuar a
ser utilizada fora do ambiente de integração;
• o ambiente de integração mantém-se independente das
aplicações, e consequentemente, aplicações podem ser integradas
e retiradas do ambiente sem que o comportamento deste último
seja alterado, ou que sua execução seja interrompida.
As categorias de soluções citadas no parágrafo precedente
apresentam na verdade respostas técnicas ao problema da
interoperabilidade entre aplicações heterogêneas. Elas oferecem
mecanismos permitindo que as aplicações se comuniquem e
interajam através da troca de informações. No entanto, essas
soluções garantem unicamente a chamada “interoperabilidade
sintática” ou “syntactic interoperability” [18]. De acordo com
Brownsword et al. [3] a interoperabilidade deve representar mais
do que a capacidade de compartilhar e trocar informações
específicas. As aplicações devem estar de acordo quanto ao
significado (ou à semântica) dessas trocas, e quanto à maneira de
reagir a essas interações. Em outras palavras, deve-se definir uma
semântica de integração.
Esta última característica é particularmente importante se nós
considerarmos que um sistema colaborativo deve ser flexível. De
fato, em um ambiente fracamente acoplado, o conjunto de
aplicações integradas pode ser mais facilmente alterado em função
das necessidades dos usuários.
Na área do CSCW, os pesquisadores chegaram à conclusão de que
esta interoperabilidade sintática não é suficiente para construir um
ambiente de colaboração integrado. Desta forma, alguns trabalhos
foram propostos tendo em vista especificamente a integração de
aplicações colaborativas. Focalizando-se na integração das
funcionalidades de colaboração oferecidas pelas aplicações, estes
ambientes buscam a definição de uma semântica por trás desta
integração.
Os sistemas AREA [11] e NESSIE [19] se apóiam em uma
abordagem fracamente acoplada para realizar a integração de
aplicações colaborativas. Cada um desses sistemas representa um
ambiente colaborativo onde diferentes aplicações independentes
podem compartilhar um espaço de informações comum,
implementado através de uma infra-estrutura de notificação de
eventos. O objetivo é oferecer aos usuários das diferentes
aplicações uma noção global de presença (ou awareness). Os
Dewan e Sharma [6] abordam a integração de aplicações
colaborativas que manipulam de maneira concorrente os mesmos
artefatos (por exemplo, dois editores de textos colaborativos
69
colaborativa integrada, as aplicações colaborativas passam a
interagir utilizando um outro paradigma de comunicação.
usuários podem receber notificações de eventos considerados
pertinentes à atividade colaborativa global, provenientes de
diferentes aplicações (utilizadas por outros membros do grupo).
Um aspecto interessante desses dois sistemas é a utilização de
tecnologias Internet abertas (como HTTP e CGI) para facilitar a
integração de aplicações colaborativas disponíveis no mercado.
No entanto, a maior restrição desses dois sistemas é o fato de que
a semântica de integração é definida estaticamente – as aplicações
colaborativas são integradas com o único objetivo de oferecer
uma noção de presença global aos usuários.
Na próxima seção será apresentada uma visão geral do framework
definindo a abordagem de integração utilizada por LEICA.
3. ABORDAGEM GERAL DE
INTEGRAÇÃO
Antes de descrever o framework sobre o qual se apóia LEICA,
dois cenários de integração são apresentados a fim de ilustrar o
propósito de um tal ambiente de integração.
Uma outra proposta igualmente baseada em uma abordagem
fracamente acoplada é o framework XGSP [10]. XGSP prevê a
integração de aplicações de videoconferência e audioconferência
apoiadas nos padrões SIP, e H.323, assim como as aplicações do
Access Grid [15]. Neste framework, servidores de gerência XGSP
(XGSP collaboration manager servers) são encarregados de
controlar a sessão colaborativa. Para cada tipo de aplicação (isto
é, as aplicações SIP, H.323 e Access Grid) é definido um gateway
capaz de se comunicar com servidores XGSP utilizando um
protocolo comum de sinalização baseado em serviços Web. A
principal limitação de XGSP refere-se ao fato de permitir,
originalmente, apenas a integração de aplicações SIP, H.323 e
Access Grid.
3.1 Cenários de Integração
a) Ferramenta de navegação Web colaborativa integrada a um
Chat
Uma ferramenta de navegação Web colaborativa permite que
diferentes usuários naveguem em grupo a Web. A navegação pode
ser estruturada estaticamente, seguindo a filosofia “mestreescravo”, ou de forma mais dinâmica, como no caso da aplicação
CoLab [12]. Quando um usuário se conecta a uma sessão de
CoLab, ele inicia sua atividade de navegação de forma
independente (ou assíncrona). Durante a sessão, um usuário pode
decidir se sincronizar com outro usuário, perdendo sua autonomia
de navegação, passando a “seguir” a atividade de navegação do
outro usuário. À medida que relações de sincronização são
estabelecidas entre os usuários, árvores de navegação se formam,
onde cada árvore representa um grupo de usuários (cada nó
corresponde a um usuário) cuja atividade de navegação é guiada
pelo usuário que se encontra na raiz.
Dustdar et al. [7] discutem a importância dos serviços Web para
viabilizar a interoperabilidade entre aplicações colaborativas. É
proposta uma arquitetura de gerência e configuração de serviços
Web apresentando uma camada de serviços para o trabalho em
equipe, denominada teamwork services layer. O objetivo desta
camada é oferecer um conjunto de serviços comuns às aplicações
colaborativas (por exemplo, gerência de grupos, gerência de
arquivos, agendas compartilhadas, etc.). Estes serviços podem ser
utilizados de maneira uniforme pelas diferentes aplicações
integradas. No entanto, para que as aplicações colaborativas
possam ser integradas, os autores partem do princípio de que as
mesmas suportam as novas tecnologias de serviços Web. Mesmo
que isso represente uma tendência para as novas aplicações
colaborativas, atualmente apenas um número limitado de
aplicações suporta estas tecnologias.
Um Chat multi-salas poderia ser integrado a CoLab definindo-se
a seguinte semântica de integração: a cada árvore de navegação de
CoLab é associada uma sala de discussão do Chat, permitindo que
os usuários fazendo parte de uma mesma árvore possam discutir
sobre a atividade de navegação; desta forma se, por exemplo, um
usuário deixar uma árvore de navegação para se conectar a uma
outra árvore, ele deve ser automaticamente transferido para a
respectiva sala de Chat.
b) E-learning
Vale ressaltar que, na verdade, a utilização de serviços Web
também pode trazer outros inconvenientes, particularmente
ligados à utilização do protocolo SOAP (Simple Object Access
Protocol [21]). Este protocolo representa uma camada
suplementar, resultando em um atraso adicional no tratamento das
mensagens trocadas entre as aplicações [5]. Com isso, Alonso et
al. [2] sugerem que as tecnologias de serviços Web sejam
utilizadas somente para executar operações consideradas como
coarse-grained, onde o impacto da sobrecarga associada ao
tratamento das mensagens SOAP seja menor.
Os sistemas CSCW têm sido amplamente aplicados no contexto
de E-learning1. Desta forma um cenário integrando diferentes
aplicações pode ser imaginado.
Um CVE (Collaborative Virtual Environment2) pode ser utilizado
para representar o edifício de uma escola, constituído de: um hall
de entrada, duas salas de aula e uma sala de professores. Com a
integração de outras aplicações colaborativas, diferentes
semânticas de integração podem ser imaginadas. Por exemplo,
aplicações colaborativas podem ser associadas às salas do
edifício, como um Chat associado ao hall de entrada, assim como
um Whiteboard compartilhado e uma audioconferência,
associados a cada uma das salas de aula. Em seguida, pode-se
definir que, quando um usuário entra em uma determinada sala,
ele seja automaticamente conectado às aplicações colaborativas
associadas.
Com o objetivo de tornar possível a integração de aplicações
colaborativas existentes, LEICA também define uma abordagem
fracamente acoplada de integração apoiada sobre as tecnologias
de serviços Web. No entanto, de acordo com as recomendações de
Alonso et al., as tecnologias de serviços Web são utilizadas de
forma restrita. Como será apresentado a seguir, LEICA propõe
uma arquitetura híbrida onde serviços Web são utilizados somente
durante as etapas iniciais do processo de integração, assim como
durante a criação e o lançamento da execução de sessões
colaborativas integradas. Durante a execução de uma sessão
1
2
70
O E-learning cooperativo deu origem à área de pesquisa
intitulada Computer Supported Cooperative Learning (CSCL).
Mundo virtual compartilhado geralmente representado em
realidade virtual.
uma atividade colaborativa. Diferentes aplicações colaborativas
podem então ser utilizadas como “suporte” de uma SuperSession,
onde cada aplicação gerencia suas próprias sessões colaborativas,
denominadas specificSessions (por exemplo, sessões de
videoconferência ou de Whiteboard compartilhado).
Neste cenário, tanto o Whiteboard quanto a audioconferência
definem um floor control: quem detém o floor do Whiteboard tem
o direito de editar/modificar o quadro; quem detém o floor da
audioconferência é o único a poder falar. Desta forma, uma outra
semântica de integração podendo ser definida é a vinculação dos
floors (ou floor coupling) dessas duas aplicações, garantindo que
durante uma aula virtual, o usuário que controla o Whiteboard
(por exemplo, o professor) seja o único que possa falar na
audioconferência.
Durante o processo de configuração de uma SuperSession, o SCS
entra em contato com o Wrapper de cada aplicação colaborativa
requisitando: (i) quais são os tipos de dados necessários à criação
de uma nova specificSession para esta aplicação (por exemplo,
uma ferramenta de videoconferência pode informar que ela
precisa de um endereço IP multicast para configurar uma sessão);
e (ii) quais são os tipos de eventos que ela é capaz de notificar,
assim como os tipos de requisições de ação que ela é capaz de
tratar2. Este segundo conjunto de informações será
particularmente necessário durante a especificação da Política de
Colaboração da SuperSession.
3.2 Framework de Integração
A integração de uma aplicação colaborativa a LEICA é realizada
associando-se um Wrapper a esta aplicação. Para tanto, a
aplicação colaborativa deve oferecer uma API (Application
Programming Interface) dando acesso à mesma. Através desta
API o Wrapper será capaz de interagir com a aplicação. Portanto
o nível de interação dependerá diretamente das funcionalidades
oferecidas pela API. Na verdade, acreditamos que os
fornecedores/criadores de aplicações colaborativas estejam
interessados em criar aplicações que possam ser utilizadas tanto
como ferramentas independentes quanto integradas a outras
aplicações (através de uma API que seja a mais flexível possível).
Nós podemos, por exemplo, citar a ferramenta de comunicação
SkypeTM que, recentemente, publicou sua API.
Aplicações integradas a
LEICA
Serviços Web
de
ca ão
líti aç
Po abor
l
Co
Session
Configuration
Service
Servidor Master
Aplicação multiservidores
Wrapper
Wrapper
Wrapper
Servidor
Aplicação cliente/servidor
Wrapper
P2P
Proxy
Peer
Aplicação
P2P
Wrapper
Sistema de Notificação de Eventos
Arquivo de
configuração da
SuperSession
Durante a configuração de uma SuperSession, além de especificar
as informações gerais de gerência, e de escolher e configurar as
aplicações a serem utilizadas como suporte da SuperSession
(dentro do conjunto de aplicações integradas a LEICA), o usuário
deve especificar a Política de Colaboração desejada para esta
SuperSession. Esta Política de Colaboração é constituída de um
conjunto de regras seguindo um modelo eventos-condições-ações.
Essas regras definem como cada aplicação colaborativa deve
reagir quando eventos são notificados por outras aplicações. Em
outras palavras, as regras determinam as ações que as aplicações
(participando de uma SuperSession) devem executar em resposta
às notificações de eventos recebidas. Com isso, a Política de
Colaboração define como as diferentes aplicações são
coordenadas durante a execução de uma SuperSession, oferecendo
aos usuários a flexibilidade de definir a semântica de integração
de acordo com as suas necessidades (sem impor esta semântica).
Uma vez que uma SuperSession foi configurada (e o arquivo de
configuração correspondente foi gerado), o SCS pode finalmente
iniciar sua execução. Inicialmente, ele entra em contato com cada
aplicação colaborativa escolhida para informá-la de que a mesma
será utilizada durante esta SuperSession, repassando as
respectivas informações de configuração (como por exemplo, as
informações para a criação de specificSessions). Em seguida os
Wrappers das aplicações se interconectam através do Sistema de
Notificação de Eventos (a partir deste ponto, as interfaces de
serviços Web não são mais utilizadas).
Figura 1. Princípio arquitetural de LEICA.
Como ilustrado na Figura 1, Wrappers são associados aos
servidores de aplicações cliente/servidor ou multi-servidores, e
aos peers de aplicações peer-to-peer (P2P). Cada Wrapper
associado a um servidor apresenta uma interface de serviços Web
permitindo à respectiva aplicação interagir com LEICA. Mais
precisamente, através de sua interface de serviços Web, a
aplicação pode se registrar junto ao ambiente e interagir em
seguida com o Session Configuration Service (ou SCS). Os
Wrappers associados às aplicações P2P não apresentam uma
interface de serviços Web. Essas aplicações devem passar pelo
P2P Proxy para se registrarem junto a LEICA1. Em seguida, o
P2P Proxy passa a representar essas aplicações interagindo com o
SCS.
Com o decorrer da atividade colaborativa, os Wrappers das
aplicações utilizadas trocam notificações de eventos em modo
P2P. Os Wrappers são igualmente responsáveis pela execução da
Política de Colaboração. Assim, sempre que um Wrapper receber
uma notificação de evento, ele verifica se este evento sensibiliza
alguma regra relativa à aplicação à qual ele encontra-se associado
(isto é, uma regra apresentando uma requisição de ação destinada
a esta aplicação). Se uma sensibilização ocorre, ele envia a
requisição de ação à respectiva aplicação, para que a mesma a
execute.
O SCS é um serviço Web utilizado para (i) configurar novas
sessões colaborativas globais, denominadas SuperSessions, e (ii)
iniciar a execução de SuperSessions. Uma SuperSession é uma
sessão colaborativa integra englobando todos os elementos de
1
LEICA não tem como objetivo ser capaz de considerar a
notificação de eventos físicos de baixo nível (como por exemplo,
Visto que geralmente as aplicações P2P não permanecem
constantemente disponíveis nos computadores dos usuários, foi
decidido que as mesmas não serão expostas como serviços Web.
2
71
Os tipos de eventos e ações estão diretamente relacionados com
a API disponibilizada pela aplicação.
requisição de ação, ou regras mais complexas associando n
notificação de eventos à m requisições de ação.
clique ou movimentos de mouse) nem de eventos de
sincronização apresentando uma frequência elevada (como por
exemplo, a posição atual de um objeto em deslocamento). Na
verdade, LEICA pressupõe que as aplicações colaborativas sejam
capazes de notificar eventos veiculando uma “semântica
aplicativa”, isto é, eventos que possam ser relevantes para a
atividade colaborativa. Fazendo referência ao cenário de Elearning descrito da seção 3.1, exemplos de eventos seriam: o fato
de um usuário entrar em uma sala virtual do CVE; a passagem do
floor do Whiteboard de um usuário a outro.
Para compor estas regras, é necessário conhecer a priori os tipos
de eventos que cada aplicação integrada a LEICA é capaz de
notificar, assim como os tipos de requisições de ação que cada
aplicação é capaz de tratar. É importante ressaltar que cada
aplicação pode definir os tipos de eventos e ações que for
necessário. Os possíveis conflitos na “tipagem” desses
eventos/ações (por exemplo, duas aplicações especificam um
mesmo tipo de evento1) são resolvidos associando-se o
identificador único da aplicação a cada tipo de evento ou ação.
Na próxima seção, o processo de configuração de uma
SuperSession é detalhado, explicando-se como uma Política de
Colaboração deve ser especificada.
A partir da especificação gráfica das regras compondo a Política
de Colaboração, é gerada uma especificação textual
correspondente que é então anexada ao arquivo de configuração
da respectiva SuperSession. A semântica dessas regras de
colaboração é definida por tradução em Redes de Petri. Esta
semântica é implementada por um sub-módulo do Wrapper
responsável pela execução das Políticas de Colaboração.
4. CONFIGURAÇÃO DE UMA
SUPERSESSION
A configuração de uma SuperSession é realizada em duas etapas:
(i) configuração das informações de gerência e (ii) configuração
da Política de Colaboração.
Event
4.1 Configuração das Informações de
Gerência
As informações de gerência a serem configuradas se dividem em
dois grupos:
• GSMinfo (General Session Management information) – este
grupo corresponde às informações de gerência gerais da
SuperSession, tais como nome, propósito, scheduling, os
possíveis participantes (membership), papéis de usuários (ou
roles), etc.
• IAinfo (Integrated Applications information) – para cada
aplicação a ser utilizada como suporte da SuperSession, é
configurada a lista de specificSessions, onde informações
específicas a cada aplicação são fornecidas (por exemplo, para se
configurar uma sessão de videoconferência, será fornecido um
endereço IP multicast).
Predicate
Trigger
Latest
Earliest
Action
to:
from:
type:
type:
Parâmetros
Parâmetros
Coupling interface
Connection point
Figura 2. Policy Widgets.
A Figura 2 ilustra os seis widgets utilizados para a definição das
regras de colaboração. Os widgets podem ser conectados através
de seus respectivos “connection points” ou acoplados através de
suas “coupling interface”. Cada regra é então o resultado da
composição desses diferentes widgets onde o princípio básico de
composição é o seguinte:
(i) as regras são lidas da esquerda para a direita;
(ii) somente widgets que não apresentem connection points nem
coupling interfaces do lado esquerdo (i.e. Event e Trigger) podem
aparecer na extremidade esquerda de uma regra;
(iii) somente widgets que não apresentem connection points nem
coupling interfaces do lado direito (i.e. Action) podem aparecer
na extremidade direita de uma regra;
(iv) cada regra deve ser composta por pelo menos um widget
Event (ou Trigger) e um widget Action.
4.2 Configuração da Política de Colaboração
A associação de uma Política de Colaboração a uma SuperSession
representa um elemento chave do ambiente. É a especificação
dessa política que permite ao usuário definir a semântica de
integração, especificando-se o comportamento desejado para as
aplicações colaborativas durante a execução de uma
SuperSession.
Durante a execução de uma SuperSession, as regras definindo a
sua Política de Colaboração são executadas em paralelo. Uma
regra em execução é dita ativa. Uma regra é sensibilizada quando
todos os seus componentes são sensibilizados.
A Política de Colaboração corresponde a um conjunto de regras
de colaboração, onde cada regra permite associar notificações de
eventos a requisições de execução de ação, sob determinadas
condições. Portanto, através dessas regras é possível vincular as
atividades sendo realizadas em diferentes aplicações
colaborativas.
O widget Event representa uma notificação de evento. Cada Event
é associado a uma aplicação colaborativa e é caracterizado por um
tipo (através dos campos “from” e “type” respectivamente). Ele
apresenta uma lista de parâmetros cujos valores podem ser
filtrados (usando-se matching patterns). O widget Action
representa uma requisição de execução de ação. Cada Action é
destinado a uma aplicação colaborativa (através do campo “to”) e
Procurou-se definir um mecanismo para a especificação de regras
que fosse o mais intuitivo possível para os usuários, e ao mesmo
tempo oferecesse um modelo mais elaborado que o clássico
“evento-condição-ação”. Desta forma foi escolhido um método
gráfico para a especificação das regras de colaboração. Por meio
simples de um editor gráfico, o usuário pode definir regras
compondo elementos gráficos denominados policy widgets.
Através destes widgets é possível definir regras simples,
associando uma única notificação de evento a uma única
1
72
Mesmo que duas ou mais aplicações especifiquem um mesmo
tipo de evento, a semântica associada ao evento será específica a
cada aplicação.
verdadeiro, o widget é sensibilizado (como é o caso nos instantes
t1 et t3 no quadro (b) da Figura 4). Uma outra diferença é que ele
só pode impor condições sobre o estado atual da SuperSession.
Desta forma, o Trigger apresenta uma semântica similar à de um
evento, “notificando” modificações no estado da SuperSession.
é caracterizado por um tipo (através do campo “type”). Este
widget apresenta uma lista de parâmetros cujos valores devem ser
especificados. Vale ressaltar que todos os tipos possíveis de
Events e Actions (assim como seus parâmetros) são conhecidos,
informação esta fornecida pelas próprias aplicações
colaborativas1.
Através dos widgets Earliest e Latest é possível compor diferentes
notificações de eventos dentro de uma mesma regra. Quando
Events são agrupados através de um Earliest, a regra é
sensibilizada assim que um dos eventos especificados for
notificado. Quando Events são agrupados através de um Latest, a
regra é sensibilizada apenas após a notificação de todos os
eventos especificados. A Figura 5 ilustra dois exemplos de regras
utilizando Earliest (a) e Latest (b), ambos associados a um
Predicate. Visto que o Earliest define um comportamento nãodeterminístico (não se sabe previamente qual dos eventos
especificados será notificado), apenas no caso do Latest o
predicado poderá referenciar parâmetros dos eventos notificados.
A Figura 3 ilustra uma regra simples que associa diretamente um
Event a um Action. Esta regra é sensibilizada assim que o evento
especificado for notificado. Ela define que: se a aplicação “CA1”
notificar um evento de tipo “T1” apresentando os parâmetros “a”
com um valor “M*” (uma string cujo primeiro caractere é ‘M’) e
“b” com o valor “>10”, então deve ser enviada à aplicação “CA2”
uma requisição para que a mesma execute a ação de tipo “T2”. O
caracter ‘%’ é um operador de referência, indicando que o
parâmetro “y” deve ter seu valor copiado do parâmetro “a”
presente no widget Event que apresenta o identificador “1”2.
Parâmetros também podem ter seus valores determinados a partir
do estado atual da SuperSession (como no caso do parâmetro “z”
que recebe como valor o número de usuários conectados na
SuperSession no instante em que a regra é sensibilizada).
from: CA1
type: T1
a: M*
b: >10
c:
1
a
from: CA1
type: T1
a: "chair"
b:
c:
1
to: CA2
type: T2
T1
x: "Test"
y: %1.a
z: U.size
b
to: CA2
type: T3
to: CA2
type: T3
a: “start"
b: %1.c
d: "login"
y: "Test"
to: CA2
type: T2
U.size>=10
U.size>=10
x: “wait"
U.size>=10
Figura 3. Exemplo de regra “evento-ação”.
U.size>=10
true
true
CA1.T1
CA1.T1
Através dos widgets Predicate e Trigger é possível impor
condições (sob a forma de predicados) para que uma regra seja
sensibilizada.
t1
3
t4
a
t1
t
t2
t3
b
from: CA1
type: T1
a:M*
b:
c:
1
from: CA1
type: T1
a:
b:
c:
1
from: CA2
from: CA2
type: T1
a:
c:
U.size>=10
2
type: T1
a:
c:
%1.a==%2.a
2
Figura 5. Exemplo de regras utilizando Earliest e Latest.
from: CA1
type: T1
a:M*
b:>10
c:
1
from: CA2
type: T2
x:
y:
2
Ao contrário do Predicate, o predicado especificado pelo widget
Trigger é avaliado de forma contínua, e cada vez que ele se tornar
2
t3
t2
Figura 4. Exemplo de regras apresentando predicados.
O Predicate pode ser associado (acoplado) a todos os outros
widgets, com exceção do Action. O predicado definido deve ser
avaliado sempre que o widget associado for sensibilizado. Em
geral, este predicado pode depender de variáveis do estado global
da SuperSession e de parâmetros de widgets Event presentes na
regra. O quadro (a) da Figura 4 ilustra um exemplo de regra
apresentando um widget Predicate. Esta regra especifica que
sempre que o evento “T1” for notificado por “CA1”, se o
predicado for verdadeiro (i.e. se o número de usuários conectados
for superior ou igual a 10) uma requisição de ação de tipo “T3”
deve ser enviada a “CA2” (como é o caso no instante t3). Uma
particularidade do Predicate é apresentada neste exemplo, onde
um comportamento alternativo (através do connection point
posicionado embaixo do widget) pode ser definido quando o
mesmo for avaliado como falso3. Assim, no instante t1, a regra é
igualmente sensibilizada, mas neste caso uma requisição de ação
de tipo “T2” deve ser envidada a “CA2”.
1
false
false
from: CA1
type: T1
a:N*
b:
c:
3
Existem também tipos de eventos e ações predefinidos pelo
próprio ambiente, como CONNECT e DISCONNECT.
Todo Event é automaticamente associado a um identificador
numérico.
Um comportamento alternativo só pode ser definido quando à
direita do Predicate só houver widgets Action.
to: CA2
type: T2
x: %3.m
to: CA3
type: T2
y: %3.c
to: CA2
type: T3
n: %3.c
Figura 6. Exemplo de regra complexa.
73
t
Como ilustrado na Figura 6, diferentes Earliests e Latests podem
ser combinados a fim de compor regras mais complexas.
Servidor/
Aplicação peer
API
5. ARQUITETURA: DA INTEGRAÇÃO DE
APLICAÇÕES À EXECUÇÃO DE
SUPERSESSIONS
Sentido da comunicação
Application Interface
De acordo com o framework geral de integração apresentado na
seção 3, três etapas principais são necessárias para implementar as
SuperSessions: (i) a integração de aplicações colaborativas a
LEICA, (ii) a criação de novas SuperSessions, e, finalmente , (iii)
a execução das SuperSessions.
Uma vez gerado o Wrapper, o mesmo deve ser integrado à
aplicação (servidor ou peer). Este processo é realizado
manualmente, onde os diferentes métodos da API da aplicação
devem ser associados aos métodos gerados no sub-módulo
Aplication Interface do Wrapper, como ilustrado na Figura 8.
Os demais sub-módulos do Wrapper são gerados estaticamente
(sendo idênticos p/ todos os Server Wrappers ou P2P Wrappers).
O Event Notification Interface implementa a interface de
comunicação entre o Wrapper e o Sistema de Notificação de
Eventos. O Session Manager implementa as funcionalidades
principais do Wrapper: (i) receber e tratar os dados de
configuração das SuperSessions; (ii) decidir quando enviar
notificações de evento; (iii) gerenciar a execução das Políticas de
Colaboração; (iv) gerenciar o estado atual de cada SuperSession.
5.1 Integração de uma Aplicação
Colaborativa a LEICA
Ao integrar uma aplicação apresentando uma arquitetura
cliente/servidor ou multi-servidores a LEICA, um Server Wrapper
deve ser associado ao respectivo servidor (ou servidores). Já no
caso das aplicações distribuídas segundo o paradigma P2P, um
P2P Wrapper é associado a cada aplicação peer. Como ilustrado
na Figura 7, a diferença básica entre esses dois Wrappers
encontra-se na interface de serviços Web (WS Interface), presente
apenas no Server Wrapper. O P2P Wrapper apresenta no lugar
uma interface específica para a comunicação com o P2P Proxy.
Session Manager
WS Interface
P2P Wrapper
Application
Interface
Event
Notification
Interface
Peer
Aplicação
P2P
P2P
Wrapper
Session Manager
registry
P2P
Proxy
publish
Servidor
Aplicação cliente/servidor
Server
Wrapper
fail
Servidor
Aplicação multiServidor Master
servidores
Aplicação multiWrapper
Server
servidores
Wrapper Wrapper
Server
Wrapper
SOAP
Figura 9. Registro de aplicações colaborativas.
P2P Proxy Interface
Uma vez que o Wrapper foi associado à aplicação colaborativa, a
mesma deve se registrar junto a LEICA. Para isso, como ilustrado
na Figura 9, o Wrapper publica seus serviços em um UDDI
Registry privado. No caso de aplicações multi-servidores, apenas
o primeiro Wrapper a ser executado realizará com sucesso esta
operação. Ele é então designado como Master, enquanto os
Wrappers dos demais servidores deverão constatá-lo diretamente.
No caso de aplicações P2P, este registro é realizado através do
P2P Proxy.
Figura 7. Os dois tipos de Wrappers de LEICA.
Com o objetivo de diminuir os esforços de implementação durante
a integração de uma aplicação a LEICA, foi definido um módulo
especial, denominado API Factory. Este módulo, baseado em uma
descrição XML1 da API de uma aplicação, gera automaticamente
um Wrapper adaptado a esta aplicação. Esta adaptação consiste
basicamente em criar (de forma dinâmica) o sub-módulo
Application Interface, definindo dentro deste último um conjunto
de métodos de acordo com a API da aplicação.
5.2 Criação de uma SuperSession
Application Interface é o sub-módulo do Wrapper que deve ser
diretamente interligado à aplicação colaborativa. Através dele, a
aplicação poderá (i) notificar ao Wrapper “o que está
acontecendo” dentro de seu contexto de colaboração, e (ii) receber
requisições de execução de ação (como a criação de uma nova
specificSession).
1
publish
Event
Notification
Interface
Private
UDDI
Registry
sh
bli
pu
Application
Interface
LEICA → Aplicação
(Execução de ações)
Figura 8. Processo de integração do Wrapper à aplicação.
Para melhor ilustrar a arquitetura global do sistema, identificando
precisamente o papel de cada módulo e suas interações, a
arquitetura será apresentada percorrendo-se cada uma das etapas
do framework de integração.
Server Wrapper
Aplicação → LEICA
(Notificação de eventos)
Server Wrapper /
P2P Wrapper
O Session Configuration Service é o módulo responsável por
gerenciar a criação de novas SuperSessions. Ele representa um
serviço Web acessível aos usuários através de uma aplicação Web.
Como ilustrado na etapa (1) da Figura 10, quando esta aplicação é
acessada, ela entra em contato com o SCS para dar início ao
processo de configuração de uma SuperSession.
Em seguida, na etapa (2), enquanto o usuário configura as
informações de gestão geral (GSMinfo), o SCS realiza uma
pesquisa no UDDI Registy para descobrir quais aplicações
colaborativas foram integradas a LEICA. Para cada aplicação, o
SCS recebe a URL associada à interface de serviços Web do
respectivo Wrapper.
Para cada aplicação colaborativa, dois arquivos devem ser
especificados: Specific Data File (um XML Schema), definindo
os tipos de dados que a aplicação necessita para criar
specificSessions; e Attributes and API File, definindo
basicamente os tipos de eventos e ações que a aplicação é capaz
de tratar.
74
2
find
1
Navegador
Aplicação
HTTP
Web
Web
executar o subconjunto de regras que definem requisições de ação
destinadas à aplicação à qual ele está associado. As regras da
Política de Colaboração também orientam os Wrappers durante a
notificação de eventos. Isto é, somente os eventos que podem
sensibilizar alguma regra de colaboração devem ser notificados
pelos Wrappers2.
Servidor
Aplicação cliente/servidor
Server
Wrapper
Private
UDDI
Registry
3
SOAP
Session
SOAP Configuration
Service
Servidor Master
Aplicação multiservidores
Wrapper
Server
Wrapper
O Sistema de Notificação de Eventos definido por LEICA se
baseia no paradigma publish/subscribe [9], que define um modelo
de comunicação bastante adaptado a ambientes fracamente
acoplados. Em geral os assinantes (ou subscribers) registram o
interesse em receber mensagens associadas a um determinado
tópico (ou assunto), mensagens estas enviadas por um conjunto de
publicadores (ou publishers). Este modelo oferece um
desacoplamento entre publicadores e assinantes visto que um não
está ciente da presença do outro.
4
P2P
Proxy
Figura 10. Etapas executadas durante a criação de uma
SuperSession.
Na etapa (3) o SCS entra em contato com cada uma das aplicações
integradas, e com P2P Proxy, requisitando: (i) os tipos de dados
que cada aplicação necessita para criar novas specificSessions, e
(ii) os tipos de eventos e ações que cada uma é capaz de tratar.
Baseando-se nestas informações, durante a etapa (4) o usuário
pode escolher e configurar (especificando o IAinfo) as aplicações
a serem usadas como suporte da SuperSession. Em seguida, ele
especifica a Política de Colaboração da SuperSession. Finalmente
a aplicação Web gera um arquivo de configuração que é enviado
ao SCS para que o mesmo o armazene em um banco de dados
local.
Uma vez que a SuperSession tenha entrado em execução, os
usuários podem finalmente se conectar ao ambiente. Para tanto,
eles devem executar a aplicação LClient. A Figura 12 ilustra as
etapas executadas durante a conexão de um usuário:
Session
Configuration
Service
SOAP
1
Host (usuário)
5.3 Execução de uma SuperSession
3
LClient
O SCS é igualmente responsável por dar início à execução de uma
SuperSession. A execução de uma SuperSession pode ser iniciada
automaticamente (de acordo com o scheduling definido) ou
manualmente, como esquematizado na Figura 11:
(1) O usuário acessa a aplicação Web para iniciar a execução de
uma SuperSession;
(2) O SCS acessa e interpreta o arquivo de configuração da
SuperSession a fim de identificar quais aplicações
colaborativas devem ser utilizadas;
(3) O SCS entra em contato com os Wrappers das aplicações para
informá-los de que elas farão parte de uma SuperSession,
repassando a elas as respectivas informações de configuração
1
;
(4) Finalmente, os Server Wrappers iniciam a execução da
Política de Colaboração da SuperSession e se interconectam
através do Sistema de Notificação de Eventos (não havendo
mais uso das interfaces de serviços Web).
Session
Navegador
Aplicação
HTTP
SOAP Configuration
Web
Web
Service
Cliente
Aplicação
Colaborativa
SOAP
3
4
Sistema de Notificação de Eventos
(1) LClient solicita ao SCS as informações de configuração da
SuperSession selecionada pelo usuário;
(2) Assim como os Wrappers, o LClient executa a Política de
Colaboração da SuperSession, conectando-se em seguida ao
Sistema de Notificação de Eventos.
(3) Sempre que uma regra contendo uma ação de tipo CONNECT
for sensibilizada, o LClient se encarrega de conectar o usuário
executando localmente a respectiva aplicação colaborativa,
podendo ser um cliente ou uma aplicação P2P; no segundo
caso, ele passa ao P2P Wrapper desta aplicação as
informações de configuração da SuperSession;
(4) O P2P Wrapper por sua vez executa a Política de
Colaboração e se conecta ao Sistema de Notificação de
Eventos.
2
Servidor
Aplicação multiServidor Master
servidores
Aplicação multiWrapper
Server
servidores Wrapper
Wrapper
Server
Wrapper
SOAP
À medida que os usuários realizam as atividades colaborativas,
utilizando as diferentes aplicações no contexto de uma
SuperSession, os Wrappers destas aplicações notificam os eventos
relacionados a essas atividades. Em paralelo, a Política de
Colaboração é executada por cada Wrapper e, em função das
notificações de eventos recebidas (e eventualmente de mudanças
no estado da SuperSession), certas regras podem ser sensibilizadas
4
Sistema de Notificação de Eventos
Figura 11. Inicio da execução de uma SuperSession.
A execução da Política de Colaboração de uma SuperSession é
realizada de forma distribuída. Na verdade, cada Wrapper só deve
1
Servidor
Aplicação multiServidor servidores
Master
Aplicação multiWrapper
Server
servidores
Wrapper
Wrapper
Server
Wrapper
Figura 12. Etapas executadas durante a conexão de um usuário
a uma SuperSession.
1
Servidor
Aplicação cliente/servidor
Server
Wrapper
2
Peer
Aplicação
P2P
P2P
Wrapper
Servidor
Aplicação cliente/servidor
Server
Wrapper
2
Apenas os Server Wrappers são contatados inicialmente.
75
Além dos eventos de tipo CONNECT e DISCONNECT.
Após a integração das aplicações ao protótipo, foi criada uma
SuperSession (“CoLab+Chat”) cuja Política de Colaboração
define a mesma semântica de integração descrita anteriormente no
cenário “a” da seção 3.1. A Figura 13 ilustra o comportamento
desta SuperSession: o usuário “D” decide se sincronizar como o
usuário “F” passando a fazer parte da mesma árvore de navegação
que “F” dentro de CoLab; com isso, em resposta à execução da
Política de Colaboração definida, “D” e todos os outros usuários
que pertenciam à árvore de navegação de “D” (neste caso “B”)
são automaticamente transferidos para a mesma sala de Chat de
“F”.
resultando na execução de ações por parte dessas aplicações
(solicitadas através dos Wrappers).
6. ANÁLISE, PROJETO E
IMPLEMENTAÇÃO DO AMBIENTE
Com o objetivo de especificar e mesmo formalizar a estrutura e o
comportamento dos elementos arquiteturais de LEICA, foi
realizada uma modelagem em UML 2.0 (Unified Modeling
Language) do sistema utilizando-se a ferramenta TAU G2 de
TeleLogic.
Foi aplicada uma abordagem top-down durante a análise e o
projeto do ambiente – partiu-se de uma especificação de “nível 0”
sobre a qual foi realizada uma decomposição hierárquica através
de refinamentos sucessivos dos cenários (diagramas de caso de
uso e de sequência) e arquiteturais (diagramas de classe e de
estrutura composta), chegando-se até o “nível 3”. Neste último
nível, foram definidos os comportamentos dos diferentes
componentes e sub-componentes do sistema através de diagramas
de estado especificados em SDL (Specification Description
Language).
CoLab
A
B
CoLab
C
F
E
C
A
B
D
F
Sala: D
Sala: A
Após a sincronização de "D" e "F"
A
Chat
F
D
E
B
Sala: F
A
C
Sala: A
E
F
B
D
Sala: F
Figura 13. Comportamento da SuperSession “CoLab+Chat”.
Com a definição desses comportamentos, o modelo torna-se
“executável”, permitindo assim a execução de simulações
utilizando-se a ferramenta Tau G2. Como resultado das
simulações, são gerados traces sob a forma de diagramas de
sequência, que podem ser então comparados aos diagramas de
sequência definidos inicialmente (durante a fase de análise).
Devido à complexidade de LEICA, foram realizadas simulações
explorando de forma aleatória os diferentes diagramas de estado
(ao invés de simulações exaustivas). Com isso foi aplicada uma
metodologia de validação informal usando-se técnicas de
observação. Procurou-se desta forma tornar a concepção do
ambiente confiável e assegurar a consistência entre a
implementação final e as especificações iniciais.
6.1 Considerações sobre o protótipo
Apesar de representar uma implementação parcial do ambiente, o
protótipo desenvolvido permitiu a concretização dos principais
aspectos da abordagem de integração de LEICA:
a) Integração fracamente acoplada – Esta abordagem contribui
significativamente para a simplicidade e a viabilidade do processo
de integração, sobretudo por permitir uma integração
independente para cada aplicação. Uma desvantagem desta
abordagem está relacionada com a implantação do ambiente nos
hosts dos usuários, onde os clientes (ou os peers) das aplicações
colaborativas devem ser previamente instalados. Uma solução
poderia ser o uso de Java Web Start [13] para permitir uma
implantação dinâmica das aplicações, no entanto isto restringiria o
conjunto de aplicações integradas à tecnologia Java.
Com base no modelo UML especificado, foi desenvolvido um
protótipo de LEICA implementando os principais componentes
do ambiente1. Por questões de portabilidade, JavaTM foi escolhida
como plataforma de desenvolvimento. Algumas tecnologias Java
livres e/ou de código aberto foram igualmente utilizadas:
• Apache jUDDI – implementação do UDDI Registry;
• UDDI4J de IBM – implementação das interações entre o WS
Interface do Wrapper e o UDDI Registry;
• Apache Tomcat 5.0 et Apache SOAP 2.3 – implementação
das interações entre o SCS e os Wrappers (e os LClients);
• Scribe [4] – implementação do Sistema de Notificação de
Eventos; Scribe implementa o paradigma publish/subscribe
baseando-se em um mecanismo de multicast aplicativo eficaz.
b) Uso de serviços Web – Esta tecnologia mostrou-se bastante
adaptada para a implementação de uma comunicação fracamente
acoplada baseada em mensagens. No entanto, foi verificado, em
termos de tempo de resposta, o custo inerente ao emprego de tal
tecnologia. Foram realizadas algumas medidas para se calcular
aproximadamente o tempo adicionado pela camada de serviços
Web. Por exemplo, o tratamento de mensagens SOAP referente
aos métodos da interface do SCS é realizado em média em 35ms,
enquanto que simulando a transmissão de estas mensagens através
de sockets TCP simples, o tempo de tratamento reduz-se a 10ms.
c) Sistema de Notificação de Eventos – A utilização de Scribe
foi de grande importância, sobretudo devido ao seu desempenho.
A título ilustrativo, foi conduzido um experimento em uma LAN
com cinco nós (simulando 5 Wrappers) interconectados através de
Scribe. Cada nó enviava periodicamente notificações de eventos,
dos quais todos os outros nós eram assinantes. A latência média
entre o envio e a recepção foi de 300ms. Testes em grande escala
foram realizados por Castro et al. [4], onde pode-se constatar um
desempenho satisfatório de Scribe (este último mostrou-se apenas
entre 1.59 e 2.2 vezes mais lento do que IP multicast).
A fim de testar as funcionalidades implementadas no protótipo,
duas aplicações colaborativas (ambas cliente/servidor) foram
integradas: (i) CoLab [12], uma ferramenta de navegação web
colaborativa, e Babylon Chat [14], um Chat multi-salas. A
integração de CoLab foi direta uma vez que o mesmo oferece uma
API relativamente simples. No caso de Babylon, que trata-se de
uma aplicação de código aberto, foi necessário desenvolver uma
API para poder integrá-la a LEICA.
1
E
C
Chat
D
Não foram implementados os módulos envolvidos na integração
de aplicações P2P, nem a aplicação Web de acesso ao SCS.
76
[5] Chiu, K., Govindaraju, M., Bramley, R. “Investigating the
limits of SOAP performance for scientific computing” 11th
IEEE International Symposium on High Performance
Distributed Computing (HPDC-11 2002), IEEE Computer
Society Press pp.246-254, Edinburgh (Scotland), 2002.
[6] Dewan, P., Sharma, A. “An experiment in interoperating
heterogeneous collaborative systems” 6th European
Conference on Computer Supported Cooperative Work
ECSCW’99), pp.371-390, Copenhagen (Denmark), 1999.
[7] Dustdar, S., Gall, H., Schmidt, R. “Web services for
Groupware in Distributed and Mobile Collaboration” 12th
Euromicro Conference on Parallel, Distributed and NetworkBased Processing (PDP'04) pp.241-247, Coruna (Spain),
2004.
[8] Ellis, C.A., and Wainer, J. “A Conceptual Model of
Groupware” ACM Conference on Computer Supported
Cooperative Work (CSCW’94), ACM press pp.79-88,
Chapel Hill (USA), 1994.
[9] Eugster, P., Felber, P., Guerraoui, R., Kermarrec, A.-M.
“The many faces of publish/subscribe” ACM Computing
Surveys, ACM press v.35, n.2, pp.114-131, 2003.
[10] Fox, G., Wu, W., Uyar, A., Bulut, H., Pallickara, S. “A Web
services framework for collaboration and videoconferencing”
Workshop on Advanced Collaborative Environments
(WACE’03) Seattle (USA), Jun. 2003.
[11] Fuchs, L. “AREA: a cross-application notification service for
groupware” 6th European Conference on Computer
Supported Coop-erative Work (ECSCW’99) pp.61-80,
Copenhagen (Denmark), 1999.
[12] Hoyos-Rivera, G.J.H., Gomes, R.L.; Courtiat, J.P.; Willrich,
R.. “CoLab A New Paradigm and Tool for Browsing
Collaboratively the Web”. IEEE Transactions on Systems,
Man and Cybernetics. Part A, Systems and Humans, v.36,
n.6, Nov. 2006.
[13] http://java.sun.com/products/javawebstart/
[14] http://visopsys.org/andy/babylon/index.html
[15] http://www.accessgrid.org/
[16] Iqbal, R., James, A., Gatward, R. “A practical solution to the
integration of collaborative applications in academic
environment” 5th International Workshop on Collaborative
Editing Systems, In ECSCW’03 Helsinki (Finland), Sep.
2003.
[17] Kahler, H., Mørch, A., Stiemerling, O., Wulf, V.
“Introduction to the Special Issue on Special Issue on
Tailorable Systems and Cooperative Work” Computer
Supported Cooperative Work: The Journal of Collaborative
Computing, v.9, n.1. pp.1-4, 2000.
[18] Lewis, G., Wrage, L. “Approaches to Constructive
Interoperability” Technical Report CMU/SEI-2004-TR-020
Software Engineering Institute, Carnegie Mellon University
59pp., Pittsburgh (USA), Dec. 2004.
[19] Prinz, W. “NESSIE: an awareness environment for
cooperative settings” 6th European Conference on Computer
Supported Cooperative Work (ECSCW’99), Kluwer
Academic Publishers pp.391-410, Copenhagen (Denmark),
1999.
[20] W3C – “Requirements for the Internationalization of Web
Services” W3C Working Group Note 16 November 2004
http://www.w3.org/TR/ws-i18n-req/
[21] W3C – “SOAP Version 1.2 Part 1: Messaging Framework”
W3C Recommendation 24 June 2003.
7. CONCLUSÕES
Neste artigo foi apresentado LEICA, um ambiente fracamente
acoplado para a integração de aplicações colaborativas. O
ambiente se apóia em tecnologias de serviços Web e um Sistema
de Notificação de Eventos para implementar a abordagem de
integração fracamente acoplada. No contexto de uma
SuperSession, uma atividade colaborativa global é realizada
usando-se diferentes aplicações colaborativas integradas ao
ambiente.
Uma característica chave de LEICA é o fato de que os próprios
usuários podem definir a semântica de integração desejada, em
função de suas necessidades. Esta semântica é definida através da
Política de Colaboração da SuperSession, onde um conjunto de
regras permitem coordenar as interações entre as diferentes
aplicações.
O desenvolvimento do protótipo de LEICA confirmou as
vantagens da abordagem fracamente acoplada, que facilitou o
processo de integração e garantiu uma autonomia às aplicações
integradas. No entanto, a flexibilidade oferecida ao usuário quanto
aos tipos de semânticas podendo ser definidas para a integração
mostrou uma forte dependência das APIs de cada aplicação.
Como trabalhos futuros, novas aplicações devem ser integradas ao
protótipo, como SkypeTM e Asterisk (já iniciada). Além disso,
testes de desempenho devem ser executados para verificar o
comportamento do ambiente em larga escala.
Com relação aos serviços Web, vários esforços vêm sendo
dedicados buscando-se soluções para o problema de desempenho
de SOAP. Com isso, o Sistema de Notificação de Eventos de
LEICA poderia ser igualmente implementado usando-se esta
tecnologia, tornando o ambiente completamente aberto.
Com relação às Políticas de Colaboração, uma vez que a
semântica das regras foi definida usando-se Redes de Petri, uma
verificação baseada neste formalismo poderia ser realizada. Com
isso poderia-se, por exemplo, identificar dentro de uma regra a
existência de possíveis conflitos ou incoerências.
8. AGRADECIMENTOS
CNPq (Bolsa GDE, Roberta Lima Gomes).
CONACyT/PROMEP (Bolsa 70360, Guillermo J. Hoyos Rivera).
9. REFERÊNCIAS
[1] Alonso, G., Casati, F., Kuno, H., Machiraju, V. “Enterprise
Application Integration” In: Web Services – Concepts,
Architectures and Applications, Springer pp.67-92, 2004.
[2] Alonso, G., Casati, F., Kuno, H., Machiraju, V. “Web
Services” In: Web Services – Concepts, Architectures and
Applications, Springer-Verlag pp.123-149, 2004.
[3] Brownsword, L.L. et. al. “Current Perspectives on
Interoperability” Technical Report CMU/SEI-2004-TR-009
Software Engineering Institute, Carnegie Mellon University
51pp., Pittsburgh (USA), Mar. 2004.
[4] Castro, M., Druschel, P., Kermarrec, A.-M., Rowstron, A.
“Scribe: A large-scale and decentralized application-level
multicast infrastructure” IEEE Journal on Selected Areas in
Communications (JSAC), v.20, n.8, pp.1489-1499, 2002.
77
Gestão de Conhecimento sobre Avaliações de Sistemas
Colaborativos
Renata Mendes de
Araujo
UNIRIO
Av Pasteur 458, Urca
RJ 22290-240
(+55)(21)25308088
renata.araujo
@uniriotec.br
Flavia Maria Santoro
Fernando Prata
Thalita Moraes
UNIRIO
Av Pasteur 458, Urca
RJ 22290-240
(+55)(21)25308088
DCC-UFRJ
Caixa Postal 68.530
CEP 21941-590
Rio de Janeiro - RJ
(+55)(21)22908091
DCC-UFRJ
Caixa Postal 68.530
CEP 21941-590
Rio de Janeiro - RJ
(+55)(21)22908091
[email protected]
thalitamoraes
@gmail.com
flavia.santoro
@uniriotec.br
RESUMO
propostas e soluções de apoio à colaboração.
As áreas de pesquisa em CSCW e Groupware vêm apresentando
diversas propostas e soluções de apoio à colaboração. Atualmente,
um dos grandes desafios está em atestar o quanto estas propostas
se mostram efetivas em situações reais. Neste sentido, foi
proposto o projeto CSCWLab, cujo objetivo principal é definir
uma estrutura conceitual para o projeto de avaliações de sistemas
colaborativos. A base desta estrutura é uma ontologia, que
organiza os principais conceitos e elementos de avaliações de
sistemas colaborativos, servindo como uma guia para
pesquisadores no planejamento e execução de avaliações.
Atualmente, um dos grandes desafios da área está em atestar o
quanto estas propostas se mostram efetivas em situações reais.
A necessidade de se estudar mais detalhadamente as questões de
avaliação em groupware pode ser observada pelas publicações e
conferências devotadas a este tema [3]. Pode-se dizer que ainda
nos encontramos longe do consenso sobre como a avaliação de
sistemas colaborativos pode ser conduzida, apesar de propostas
terem sido apresentadas [1][2][3] [4][5][6].
Dentro do contexto de grupos de pesquisa nesta área, ferramentas,
ambientes e protótipos são constantemente especificados e
desenvolvidos como resultado de trabalhos de graduação, pósgraduação e pesquisa. A principal dificuldade enfrentada por estes
grupos está em como realizar a avaliação destes produtos de
forma a verificar a extensão de sua aplicação e apoio à atividade
colaborativa que endereça. Qual o escopo da avaliação, como
definir variáveis para medição de resultados, que instrumentos
devem ser aplicados, como se seleciona participantes e se
configura os grupos que tomarão parte da avaliação, até onde se
deve ir para validar a hipótese proposta?
ABSTRACT
CSCW and Groupware research areas have been presenting many
applications to support collaboration. Currently, one of the great
challenges is in attesting how effective these proposals are in real
situations. The CSCWLab Project presents a conceptual structure
for collaborative systems evaluations planning. The base of this
structure is an ontology that organizes the main concepts and
elements, serving as a guide for researchers in planning and
performance of such evaluations.
Palavras-chave
Neste sentido, foi proposto o projeto de pesquisa CSCWLab
[7][8], cujo objetivo principal é definir uma estrutura conceitual
para o projeto de avaliações de sistemas colaborativos. Como base
desta estrutura conceitual, o CSCWLab propõe a definição de uma
ontologia para avaliações de sistemas colaborativos que organiza
os principais conceitos e elementos de avaliações deste tipo de
sistemas, servindo como uma guia para pesquisadores no
planejamento de avaliações [8][9].
CSCW, groupware, avaliações, gestão de conhecimento,
ontologia.
Keywords
CSCW, groupware, evaluation, knowledge management,
ontology.
1
INTRODUÇÃO
A avaliação de sistemas colaborativos tem se apresentado como
uma questão de pesquisa relevante. Nos últimos anos, as áreas de
pesquisa em CSCW e groupware deram origem a diversas
Por outra perspectiva, percebe-se também a dificuldade em se
acumular conhecimento sobre o uso de sistemas colaborativos de
forma a estabelecer conclusões sobre sua aplicação em contextos
específicos. O desempenho de um sistema colaborativo depende
da variedade de personalidades e comportamento dos membros
dos grupos que o utiliza, o efeito das dinâmicas sociais,
motivacionais, econômicas e políticas. Todas estas questões
interferem na maneira que pessoas se utilizam de sistemas
colaborativos, tornando difícil ou quase impossível obter controle
sobre todas as variáveis relacionadas. Avaliação de groupware,
portanto, é reconhecidamente uma atividade custosa com geração
de resultados com baixo potencial de generalização.
20 a 22 de Novembro de 2006
Natal, RN, Brasil
© Sociedade Brasileira de Computação
Comissão Especial de Sistemas
Colaborativos
Anais do III Simpósio Brasileiro de Sistemas Colaborativos, pp. 78-86.
78
seja, é quase impossível encontrar dois grupos que apresentem os
mesmos valores para atender a variáveis independentes em
experimentos. Além disso, frequentemente não encontramos o
grupo "ideal" para conduzir avaliações. Encontrar ou construir
grupos para a avaliação é difícil e caro. Uma caracterização do
grupo observado é essencial para a interpretação e a discussão do
resultado da avaliação. O contexto do grupo influencia todas as
outras dimensões. Por exemplo, se o grupo for altamente
comprometido para executar uma tarefa, é possível que supere
problemas de usabilidade. O nível de colaboração será elevado,
desde que os membros estejam dispostos a trabalharem juntos e,
finalmente, é também possível que a ferramenta tenha um impacto
positivo no ambiente do trabalho ou da interação.
Sem os mecanismos de avaliação apropriados, a comunidade de
desenvolvimento de sistemas colaborativos não é capaz de
acumular experiência suficiente para aprender e construir sistemas
com maior qualidade [10]. Neste sentido, como evolução e
continuidade do projeto CSCWLab, sugere-se a construção de
uma base de conhecimento, organizada utilizando-se a ontologia
proposta, para a organização colaborativa de planos e resultados
de avaliações realizadas por pesquisadores. Esta base de
conhecimento acumularia, experiências, resultados e reflexões
sobre o planejamento e condução de avaliações, permitindo que o
conhecimento obtido durante a execução desta tarefa não se perca
e possa ser utilizado por outros pesquisadores e desenvolvedores
da área em seus projetos de aplicações ou planejamento de novas
avaliações.
Usabilidade. A usabilidade de uma aplicação determina seu uso
apropriado e também sua aceitação por usuários. A avaliação de
usabilidade de groupware é uma tarefa complexa uma vez que
envolve não somente a avaliação de como um usuário pode usar a
ferramenta, mas também se o grupo pode interagir como esperado
usando a ferramenta.
O objetivo deste artigo é apresentar a especificação e
desenvolvimento desta base de conhecimento, bem como do
sistema que permite seu gerenciamento. Para tal, este artigo
organiza-se em 5 seções. Na Seção 2 apresentamos a proposta do
projeto CSCWLab para orientação na avaliação de sistemas
colaborativos. A Seção 3 descreve a ontologia definida para
organizar o conhecimento gerado por pesquisadores no uso do
CSCWLab para planejamento e execução de avaliações. Na seção
4 é apresentada a implementação e disponibilização da base de
conhecimento, visando o registro e a recuperação de informações.
A Seção 5 conclui o artigo e apresenta trabalhos para
desenvolvimento futuro.
2
Nível de colaboração. A colaboração pode ocorrer em muitos
níveis e depende da natureza e dos objetivos da tarefa do grupo.
Para avaliar a colaboração é necessário especificar as medidas ou
variáveis que determinam como um grupo colabora. Por exemplo,
em um fórum de discussão, uma possibilidade para medir a
colaboração é contar o número das contribuições geradas pelo
grupo. Entretanto, a colaboração em um fórum é somente eficaz
se as contribuições forem não somente introduzidas, mas lidas por
outros participantes. Através de instrumentos como questionários
ou pela observação direta, os avaliadores podem também perceber
a satisfação e a sensação dos participantes sobre a colaboração
que ocorre entre eles.
CSCWLab
A primeira preocupação do pojeto CSCWLab foi focada na
definição de um método para avaliação de groupware que
identificasse os conceitos e dimensões que deveriam ser
consideradas durante a avaliação. Durante a avaliação de
groupware, podemos nos direcionar para: avaliar e descrever o
contexto sobre o qual a aplicação será utilizada; avaliar forças e
fraquezas da usabilidade da aplicação; avaliar o nível de
colaboração atingido durante o uso da aplicação; e avaliar o
impacto cultural e tecnológico alcançado com ela com o tempo.
Cada dimensão (Figura 1) deve ser considerada como passos
subseqüentes de um método de condução de avaliações-piloto [7].
Impacto Cultural. Uma tecnologia pode ter o uso completamente
diferente em contextos diferentes. A dimensão final da avaliação
do grupo é como uma ferramenta do groupware muda a maneira
como as pessoas ou o grupo trabalham, as formas esperadas e as
inesperadas de uso da ferramenta, e também como a organização
ou o grupo começa a sentir ou reconhecer o que a ferramenta nova
introduziu em sua cultura.
A segunda questão tratada pelo CSCW Lab é o estabelecimento
de um ambiente para armazenamento e recuperação de dados
sobre avaliações realizadas em diversos contextos. A inclusão
destas informações em uma base deve ser feita segundo um
modelo, que define os elementos desde o projeto da
experimentação conduzida até os resultados e análise realizados.
Contexto
Usabilidade
Influência
O objetivo deste ambiente é tornar-se um repositório
compartilhado de conhecimento sobre avaliações em groupware.
Pesquisadores da área podem acessar esta base, para obter suporte
na a construção do seu plano de experimentação; e observar
resultados de outras experiências, comparando com os seus
próprios.
Colaboração
Mudanças
Impacto Cultural
3
A ONTOLOGIA
A estratégia escolhida para construir a estruturação do repositório
ou base de conhecimento das avaliações de groupware foi
definida e populada em uma ontologia de domínio [17]. Através
da ontologia desenvolvida, criamos um modelo normativo do
CSCW Lab e uma semântica para o mesmo. As dimensões do
CSCW Lab são o núcleo dessa ontologia, associada com outros
conceitos comuns que existem nas avaliações em geral:
Figura 1 – Dimensões da avaliação de Groupware
Essas quatro dimensões têm um relacionamento estreito com cada
um dos outros termos de avaliação e foram consideradas e
analisadas para a construção da ontologia de domínio
implementada no ambiente do CSCW Lab.
Contexto do grupo. Grupos são completamente originais, ou
79
instrumentos, dados, produtos, interpretações de resultados e
outros.
x Ferramenta de Groupware: objeto de avaliação;
x Plano de Avaliação, que é o detalhamento de como será
O desenvolvimento de uma ontologia é um processo iterativo, que
inclui ciclos de: definição de classes, organização das classes
numa hierarquia taxonômica, definição de atributos (slots) e
descrição de valores permitidos (instâncias) para eles.
conduzida;
x Resultados, que concentra os dados brutos obtidos após a
execução do plano de avaliação e da validação da hipótese;
Para elaboração da ontologia da base de conhecimento do CSCW
Lab, realizamos um brainstorming, seguido de uma seleção mais
criteriosa e conseqüente refino de uma lista dos termos que
gostaríamos de abordar ou explicar a um usuário do CSCW Lab.
A partir dos termos presentes na lista gerada realizamos algumas
reuniões para a criação das classes que representariam esses
termos, apoiados no primeiro esboço da ontologia de domínio
para avaliação de groupware proposto em [9]. A modelagem foi
feita com apoio da ferramenta Protege.
x Questões, que contém os desdobramentos decorrentes da
afirmação da hipótese;
x Dimensão, que apresenta as formas nas quais a avaliação pode
ser direcionada ao ser realizada (Contexto do Grupo,
Usabilidade, Nível de Colaboração, Impacto Cultural).
A classe Plano de Avaliação possui atributos que explicam como
a avaliação será realizada.. Seus relacionamentos são com as
seguintes classes:
As classes foram organizadas dentro de uma taxonomia
hierárquica, utilizando-sw uma abordagem top-down: em um
primeiro momento, consideramos os conceitos mais gerais do
domínio e depois fizemos a especialização subseqüente dos
mesmos.
x Cronograma, onde são organizadas as tarefas e prazos para a
realização da avaliação;
x Cenário de Avaliação, que descreve o conjunto de
características do ambiente onde a ferramenta de groupware
está sendo utilizada e avaliada;
Uma visão geral da ontologia do CSCWLab pode ser obervada na
Figura 2. A classe Avaliação é a principal classe da ontologia
CSCW Lab. Ela se refere à forma como a avaliação da ferramenta
de groupware vai ser conduzida, relacionando-se, através de seus
atributos, com as seguintes classes:
x Grupo, que representa o conjunto de pessoas que participaram
dos experimentos propostos pelo plano de avaliação da
ferramenta;
Figura 2 – Ontologia CSCW Lab
80
x Instrumento, que representa os instrumentos utilizados para
4.1
avaliar o objeto da avaliação;
x Variável, que representa as variáveis utilizadas na medição
qualitativa ou quantitativa das dimensões da avaliação.
As demais classes do modelo são:
x Domínio de Pesquisa, que representa o campo de atuação
onde o pesquisador situa a sua pesquisa e/ou experimento.
No Protegé, os conceitos da ontologia foram definidos como
classes e suas estruturas internas, bem como relacionamentos
foram definidos através de slots. O slot pode representar um valor
simples, como números inteiros e reais, cadeias de caracteres,
valores lógicos ou uma referência a uma instância; este último
tipo foi usado para definição de relacionamentos entre classes e
instâncias. Os atributos da ontologia do CSCW Lab foram
classificados em extrínsecos, intrínsecos ou ainda de
relacionamentos com outras classes ou atributos. Em seguida,
foram definidos os tipos de valor dos atributos, os
relacionamentos entre as classes e suas cardinalidades.
x Hipótese, que representa uma conjectura específica a ser
validada dentro de um domínio de pesquisa.
x Dado, que representa as informações obtidas durante o
experimento e que irão auxiliar na definição de um resultado
para validação de uma hipótese.
x Interpretação, que representa a explicação inferida sobre os
resultados obtidos após a realização da avaliação da
ferramenta.
x Limitações, que representa os problemas que possam aparecer
Para disponibilizar a base de conhecimento através da web, foi
realizada a configuração do ambiente de implementação do plugin Protégé Web Browser. Assim, foi configurado o ambiente para
publicação da ontologia na web [13] (Figura 3)
durante o processo.
x Observações, que representa notas feitas pelo avaliador
durante a realização do projeto de avaliação.
4.2
x Produto, que representa informações obtidas através dos
resultados finais de uma avaliação.
Capturando conhecimento sobre
avaliações
Para a captura de informações sobre avaliações espera-se que os
pesquisadores da área, ao realizarem suas avaliações, possam
registrar na base CSCWLab o planejamento das avaliações
realizadas, bem como os resultados atingidos. O pesquisador
poderá navegar pela ontologia disponibilizada, instanciando suas
classes, seus atributos e relacionamentos. Alguns contextos de
registro de informação sobre avaliações podem ser sugeridos:
As classes especificadas neste modelo representam as entidades
estabelecidas na metodologia da pesquisa científica, aplicadas ao
contexto genérico de uso de groupware. Enquanto um modelo de
conhecimento não é completo, pelo contrário entende-se que deve
estar em constante aprimoramento.
Na medida em que cada tipo de avaliação deverá acontecer em um
domínio específico, e portanto com requisitos de planejamento e
instrumentos próprios, esta ontologia deverá evoluir, tanto no
sentido de incorporar novas entidades, quanto relacionamento. A
intenção é que o projeto se desenvolva no sentido de tornar-se um
fórum aberto para critica e agregação por parte da comunidade de
pesquisa.
4
Implementação da Ontologia
Para o desenvolvimento da base de conhecimento, foram
efetuadas avaliações das ferramentas de construção, publicação e
gestão de conteúdo baseado em ontologias. Como resultado desta
análise, optou-se pela ferramenta Protegé [11], desenvolvida pela
Universidade de Stanford, por ser a mais consolidada, bem
documentada e que oferecia a possibilidade de publicação de
conteúdo na Internet.
x Avaliações de protótipos de projetos de pesquisa: em um
projeto de pesquisa, avaliações planejadas de diferentes
versões de um protótipo ou ferramenta em desenvolvimento
podem ser registradas no CSCWLab. Este registro pode ser
útil não só para a equipe de pesquisadores do projeto como
para a comunidade em geral que passa a ter acesso aos
resultados obtidos.
GESTÃO DE CONHECIMENTO NO
CSCWLab
x Avaliações de protótipos de trabalhos de mestrado/doutorado:
O objetivo da criação da base de conhecimento é gerar um
ambiente que poderá fornecer aos pesquisadores, informações
sobre as avaliações de groupware já realizadas. Sendo assim, será
possível a troca de informações e experiências no assunto, visando
a criação de um consenso, ou padrão, a respeito da metodologia a
ser aplicada para sua realização da avaliação. Para a construção
desta base de conhecimento, optou-se pela implementação da
ontologia em um ambiente que permite a captura, representação e
recuperação de informações sobre o planejamento e condução de
avaliações [12].
dissertações de mestrado e teses de doutorado na área de
CSCW
comumente
incluem
a
especificação
e
desenvolvimento de protótipos de ferramentas/ambientes cuja
validação passa pela necessidade de realização de avaliações.
O registro do plano e resultados destas avaliações na base
CSCWLab, além do registro usual nos textos das dissertações
e teses, ajudam a estruturar o conhecimento do grupo de
pesquisa onde os trabalhos estão inseridos.
x Avaliações comerciais: organizações ou consultores em
sistemas colaborativos podem registrar na base CSCWLab
informações sobre avaliações contínuas sobre o uso de uma
determinada ferramenta em um dado contexto organizacional,
compondo um histórico e conhecimento sobre o uso interno
da ferramenta, ajudando na compreensão e análise de seu uso.
Ressalta-se aqui, para fins de privacidade de informação, que
Entende-se que a captura, representação e recuperação são as
fases principais do processo de gestão de conhecimento [18]. A
ontologia definida estrutura a base de conhecimento do
CSCWLab bem como define um guia para o registro/captura de
conhecimento sobre avaliações e sua posterior recuperação.
81
possuem os campos (atributos) que fazem os relacionamentos com
as outras classes. As “classes externas” são classes mais
específicas, que geralmente se relacionam com apenas uma
“classe interna”, enquanto estas se relacionam com mais de uma
classe “externa” ou “interna”. Por exemplo, classes como
“Interpretação” e “Ferramenta de Groupware” são “classes
externas”, já classes como “Plano de Avaliação” e “Resultado”
são chamadas de “classes internas”.
organizações podem manter bases CSCWLab restritas ao uso
interno de suas corporações.
4.2.1
Exemplo
Nesta seção, cabe a exemplificação do registro de informações na
base CSCWLab, com o intuito de ilustrar os componentes da
ontologia definida. Após a criação da ontologia CSCW Lab no
Protegé e de sua disponibilização na web, foram incluídos dados
de três avaliações realizadas no contexto de dissertações de
mestrado em sistemas colaborativos [14][15][16], gerando as
primeiras instâncias na base de conhecimento. Este processo foi
realizado com o objetivo de validar a ontologia criada bem como
o ambiente construído. Para ilustrar os passos necessários para se
publicar as avaliações na base de conhecimento CSCWLab,
tomamos como exemplo a avaliação realizada em um dos
trabalhos de pesquisa mencionados - “A Reengenharia
Participativa apoiada por uma ferramenta de groupware: CEPE,
um editor cooperativo para a elicitação de processos” [16].
Portanto, a melhor decisão neste ponto é instanciar as “classes
externas”. Desta forma, ao chegarmos no ponto da instanciação
das “classes internas”, já teremos dados suficientes para efetuar
os relacionamentos sem problemas.
Sendo assim, o pesquisador é questionado quanto a buscar
informações sobre uma destas “classes externas”, a classe
“Limitações”. Apesar de ser um dos últimos itens a serem tratados
não apenas neste, mas na maioria das dissertações analisadas,
iremos verificá-la pelo motivo citado anteriormente. No contexto
da pequisad tomada como exemplo, o pesquisador informaria que
foram constatadas as seguintes limitações: pouco tempo
disponível para a tarefa proposta; houve somente um estudo de
caso; impossibilidade de tratar todas as variáveis envolvidas.
Ressalta-se que apesar da avaliação ter sido realizada
anteriormente à disponibilização do ambiente, as informações
solicitadas pela base de conhecimento, com base na ontologia
definida, auxiliam aos pesquisadores na definição e planejamento
de suas avaliações. Simularemos, portanto, nesta ilustração, o fato
de que a inserção de informações na base de conhecimento tivesse
sido feita pelo próprio pesquisador que realizou a avaliação.
A partir deste momento, existem informações suficientes para
criar o plano de avaliação, que tem por objetivo melhorar a
organização e definição da avaliação a ser conduzida. Para criar o
plano de avaliação, segundo a ontologia CSCW Lab, idealmente,
é necessário saber qual grupo estará participando da avaliação,
quais variáveis foram criadas para a avaliação, em que cenário a
avaliação foi realizada, qual o cronograma definido para a
avaliação e qual o instrumento utilizado por ela. Desta forma, foi
utilizado o conteúdo instanciado nas classes “Grupo”, “Variável”,
“Cenário da Avaliação”, “Cronograma” e “Instrumento” para a
criação dos relacionamentos entre estas classes e a classe “Plano
de Avaliação”.
Na ontologia do CSCW Lab, a classe que pode ser chamada de
inicial, é a classe “Domínio de Pesquisa”. Portanto, esta classe é a
primeira a ser definida pelo pesquisador. No caso da pesquisa
deste exemplo, o domínio de pesquisa é a “Reengenharia
Processos” e a ferramenta analisada é o “CEPE”. O CEPE é
descrito como: “CEPE (versão 1). Implementada usando o
groupkit como ambiente de desenvolvimento e a linguagem Tcl
TK”, e também o seu objetivo: “Sistema para edição cooperativa
de textos”, juntamente com o público alvo: “Qualquer tipo de
empresa disposta em efetuar uma reengenharia de processos” e o
tipo da ferramenta: “Comunicação”.
Em seguida, verifica-se a inclusão de informações relacionadas ao
plano da avaliação. A classe “Instrumento”, neste exemplo, será
preenchida com a informação de que a metodologia para a
avaliação foi feita através de questionários. Quanto à instancia a
classe “Cronograma”, o pesquisador informa que o cronograma
foi realizado em duas fases, com o período de duração de quatro
dias cada. A primeira fase foi realizada sem a ferramenta e o
enfoque foi na participação, e foram estabelecidas rotinas de
entrevistas individuais dos membros da equipe pelo consultor. Já a
segunda fase foi realizada com a ferramenta e o enfoque também
foi participativo.
Outro ponto importante dentro da ontologia CSCW Lab é o
registro da hipótese sendo observada pela pesquisa em questão “O enfoque participativo (como método de trabalho) juntamente
com uma ferramenta computacional para apoiar a elicitação de
processos pode melhorar a tarefa de elicitar processos”. Uma
hipótese pertence a um domínio de pesquisa. Por isso, esta classe
possui um relacionamento com a classe “Domínio de pesquisa”,
relacionamento este representado pelo campo “contida_em”.
Neste caso, foi relacionada a hipótese acima com o domínio de
pesquisa “Reengenharia Processos”.
A classe “Variável” representa as variáveis criadas e utilizadas na
medição qualitativa ou quantitativa das dimensões de uma
avaliação: quantidade de mensagens trocadas; quantidade de
contribuições na construção de um produto coletivo;
quantidade/inferência sobre as contribuições de outros membros
do grupo; presença de liderança; envolvimento com a definição do
processo; cumprimento das tarefas; entendimento das tarefas e
suas correlações.
Toda hipótese gera uma série de questões que a subdividem ou
uma questão que a explica de forma mais clara. Neste exemplo, a
hipótese é detalhada na seguinte questão: “Como fazer a
elicitação cooperativa do conhecimento que se encontra
distribuído, tratando as diferentes visões que se tem do mesmo
processo, buscando uma documentação para o mesmo ?”.
Neste ponto, torna-se necessária a verificação de que classe
deverá ser preenchida primeiro. Logo, é importante diferenciar as
classes, para que se facilite a população da base. Para isto, foram
criadas duas nomenclaturas que serão utilizadas, as “classes
internas” e as “classes externas”.
A classe “Dimensão” é uma superclasse das subclasses “Contexto
de grupo”, “Impacto cultural”, “Nível de colaboração” e
“Usabilidade”, que são relacionadas diretamente às variáveis
criadas para a avaliação da ferramenta de groupware, já que estas
são utilizadas na avaliação das dimensões. Neste momento, o
pesquisador pode definir quais dimensões serão endereçadas em
sua avaliação e associar variáveis para sua medição.
As “classes internas” são aquelas que além de possuírem as
informações principais e centrais dentro da ontologia, são as que
82
enriquecimento do relacionamento entre as contribuições
individuais” e “Talvez por tratar-se de pessoas não ligadas à
tecnologia e por desconhecerem os mecanismos que poderiam ser
empregados”.
Criado o plano de avaliação, chega ao momento de verificar a
avaliação propriamente dita. A avaliação é conduzida utilizandose um plano de avaliação como base na sua execução. Além do
plano, é relacionada, a ferramenta que será avaliada, as dimensões
que são utilizadas dentro da avaliação e as questões que são
levantadas para serem respondidas por ela. Cada avaliação possui
um objetivo próprio e um tipo, que pode ser, por exemplo, um
experimento, como é o caso da dissertação citada neste estudo de
caso. Ao final da avaliação, é possível registrar os seus resultados,
que são originados através da execução da avaliação e podem ser
influenciados pelas limitações existentes; eles estão ainda,
associados ao produto da avaliação e aos dados criados por ela.
Ao final da inserção de instâncias na ontologia CSCW Lab, foi
verificado que nem todas as classes tiveram seus atributos
“preenchidos”. Foi verificado que cada avaliador efetua o seu
trabalho seguindo seus próprios instintos e experiências. Desta
forma, é dificultada a pesquisa e a definição de qual a melhor
forma de se fazer uma avaliação. Podemos verificar então a
importância da é fornecer uma ontologia que possa apoiar
pesquisadores e desenvolvedores de groupware na modelagem e
construção de suas ferramentas.
Cada resultado obtido pode ter a sua própria interpretação e
observações. Desta forma, foi utilizado o conteúdo das instâncias
das classes “Avaliação”, “Limitações”, “Produto da Avaliação”,
“Dados”, “Interpretação” e “Observações” para a criação do
relacionamento entre os dados destas classes com a classe
“Resultado”. O pesquisador poderia, por exemplo, registrar as
seguintes conclusões: “A equipe relatou uma sensação de
melhoria nas interações e no entendimento sobre as atividades
executadas dentro da empresa” e “A equipe utilizou pouco o
chat”. A partir da análise destes resultados, as seguintes
interpretações dos resultados podem ser registradas: “Houve um
Para ilustrarmos a interface com a ferramenta para inclusão de
dados na base de conhecimento, a Figura 4 apresenta o exemplo
do registro de uma instância da classe “Avaliação” onde o campo
“Objetivo Da Avaliação” é um atributo texto, de preenchimento
normal, mas o atributo “Conduzida De Acordo Com” (de
relacionamento com a classe “Plano de Avaliação”) e o atributo
“Faz Uso De” (de relacionamento com a superclasse “Dimensão”)
são atributos de relacionamento com outras classes.
Figura 3 – Interface Web da Ontologia CSCW Lab
83
4.3
Recuperando conhecimento sobre
avaliações
5
Para recuperar informações, o pesquisador poderá navegar pelas
classes, seus atributos e relacionamentos, consultando
informações sobre as avaliações registradas e, consequentemente,
o planejamento e resultados de avaliações realizadas por outros
pesquisadores. Alguns cenários de consultas e navegação pela
base podem ser enumerados:
x
CONCLUSÃO
A proposta do CSCW Lab é fornecer um ambiente baseado em
ontologia que possa apoiar pesquisadores e desenvolvedores de
sistemas colaborativos no processo de testes e avaliações de suas
ferramentas, permitindo que o conhecimento obtido durante a
execução desta tarefa não se perca e possa ser utilizado por outros
pesquisadores e desenvolvedores da área em melhorias e trabalhos
futuros.
Além disso, o CSCW Lab visa fornecer uma metodologia de
avaliação mais formal e homogênea que facilite o processo de
planejamento, construção e testes de utilização de sistemas
colaborativos, tornando-os melhores, sobretudo em qualidade e
dessa forma aumentando a utilização destes sistemas pelas
organizações na execução de suas tarefas.
Planejamento de avaliações: para planejar a avaliação de seu
trabalho de pesquisa, o pesquisador pode consultar a base em
busca de avaliações realizadas dentro do mesmo domínio;
avaliações neste ou em outro domínio utilizando a mesma
ferramenta; avaliações que exploraram a mesma dimensão de
avaliação; variáveis definidas etc.
Espera-se com esta proposta ampliar a discussão sobre o uso de
groupware e obter resultados mais sólidos de pesquisa, através do
compartilhamento dos problemas e soluções observados nas
experimentações.
x Comparação de resultados: após concluir sua avaliação,
registrando-a na base de conhecimento do CSCWLab, o
pesquisador pode, a fim de complementar seu trabalho de
pesquisa e argumentação da validação de sua hipótese, fazer
uso das observações, resultados e interpretações de outras
avaliações para comparar com os resultados obtidos,
enriquecendo sua própria análise.
O exemplo construído mostrou o caminho de uso do ambiente no
contexto da gestão de conhecimento em CSCW através do
repositório. Percebe-se a sinalização de questões que podem ter
ficado em aberto ao longo da pesquisa com uma ferramenta, ou
seja, ao criar instâncias a partir de experimentos já realizados, o
pesquisador é levado a refletir sobre seus resultados.
x Especificação de sistemas: pesquisadores com vistas a
especificar novos sistemas de apoio à colaboração podem
navegar pela base de conhecimento do CSCWLab, analisando
os resultados obtidos com as avaliações em um determinado
domínio, subdomínio ou questão, servindo as conclusões aí
registradas como um corpo de conhecimento inicial sobre o
que funciona e o que não funciona, ajudando-o a determinar
requisitos específicos para o sistema em desenvolvimento.
As buscas podem ser feitas sobre planejamentos similares ou
resultados que possam ser complementares. Então, a dificuldade
de replicação de experimentos é parcialmente minimizada, pois o
pesquisador pode partir dos indícios descobertos em outras
pesquisas.
Como trabalhos futuros, podemos enumerar: a evolução da
interface do ambiente de gestão de conhecimento para facilitar a
inclusão de informações de avaliações e direcionar ainda mais o
planejamento de avaliações; a discussão e proposta de heurísticas
para inferências com base no conhecimento coletado; a
divulgação e motivação aos pesquisadores da área para contribuir
para seu corpo de conhecimento; e a análise qualitativa do uso da
base de conhecimento pelos pesquisadores.
Percebe-se, no entanto, que a implementação atual da base de
conhecimento do CSCWLab permite exclusivamente a navegação
pelas informações contidas na base. Ela poderá ser ainda mais útil
aos pesquisadores quando oferecer a possibilidade de realizar
consultas baseadas na semântica definida pela ontologia para
inferir conclusões sobre o conhecimento do grupo ou comunidade
de pesquisa em questão. A possibilidade de inferência e a
qualidade e efetividade dos resultados dependerá, ainda, que a
base de conhecimento armazene um volume de avaliações
suficiente para sua realização.
6
REFERÊNCIAS
[1] Pinelle, D. 2000 A Survey of Groupware Evaluations in CSCW
Proceedings. Research Report 00-1, Computer Science
Department, University of Saskatchewan
[2] Pinelle, D., and Gutwin, C., 2000, A Review of Groupware
Evaluations. In Proceedings of Ninth IEEE WETICE 2000
Workshops on Enabling Technologies: Infrastructure for
Collaborative Enterprises, Gaithersburg, Maryland, Junho.
[3] Nutter, D., Boldyreff, C., 2005, Workshop on Evaluating
Collaborative Information Systems and Support for Virtual
Enterprises – Workshop Report, as part of the 9th Int.
Workshops on Enabling Technologies: Infrastructure for
Collaborative Enterprises, Junho, National Institute of
Standards and Technology, USA. (relatório disponível em:
hemswell.lincoln.ac.uk/%7Ednutter/wetice05-ece/index.php)
Esse seria um grande ganho para os pesquisadores pois pode-se
diminuir a dificuldade de avaliar dentro da área, assim como
fornecer uma metodologia que facilite comparações dos
resultados obtidos pelos mesmos em seus estudos, garantindo-os
como relevantes para a interpretação.
Há dificuldade em se obter informações mais específicas sobre os
efeitos e conquistas do groupware, de caminhos que já foram
seguidos e quais se adequam mais às necessidades e realidade de
pesquisa deste ou daquele pesquisador. Em um dos trabalhos
utilizados como fonte para extração de dados para popular a
ontologia, o autor relata que não atingiu o objetivo pretendido de
forma satisfatória através da avaliação que realizou. Imaginamos
que, para este caso, relatos de experimentações anteriores
poderiam ter ajudado no desenho do seu plano de avaliação,
auxiliando na obtenção de variáveis mais precisas e úteis para
validação da hipótese defendida pelo mesmo.
84
Figura 4 - Tela de criação de registros
[4] McGrath, J.E., Methodology Matters: Doing Research in the
Behavioral and Social Sciences. In Readings in HumanComputer Interaction: Toward the Year 2000, 2nd Ed. Baeker,
R.M., Grudin, J., Buxton, W.A.S., Greenberg, S. (eds.),
Morgan Kaufman Publishers, San Francisco, 1995, 152-169.
[5] Ramage, M., Twidale, M., Sommerville, I., Evaluation of
Cooperative
Systems
Project,
(http://www.comp.lancs.ac.uk/computing/research/cseg/project
s/evaluation/)
[6] Dennis, A., Valacich, J.S., 2001, Conducting Research in
Information Systems, Communications of the Association for
Information Systems, Vol. 7, Article 5, July.
[7] Araujo, R.M., Santoro, F.M., Borges, M.R.S. 2002, The
CSCWLab for Groupware Evaluation. In Proceedings of the
8th International Workshop on Groupware, Lecture Notes in
Computer Science, La Serena, Chile, v. 2440, p. 222-231 2002.
[8] Araujo, R. M., Santoro, F. M., Borges, M. R. S., A conceptual
framework for designing and conducting groupware
evaluations. In Int J Of Computer Applications In Technology,
Inglaterra, p. 139-150, 2004.
[9] Araujo, R. M.; Santoro, F. M. ; Borges, M. R. S., The CSCW
Lab Ontology for Groupware Evaluation. In: Proceedings of
the 8th International Conference on Computer Supported
Cooperative Work in Design, 2004. v. II. p. 611-615.
[10] Baker, K., Greenberg, S., Gutwin, S., 2001, Heuristic
Evaluation of Groupware Based on the Mechanics of
Collaboration. In: Proceedings of the 8th IFIP Working
Conference on Engineering for Human-Computer Interaction
(EHCI´01), Toronto, Canadá.
[11] Protegé. http://protege.stanford.edu/
[12] Moraes, T.M.S., Prata, F.R., 2006, CSCW Lab – Uma
ontologia para avaliação de groupware, Projeto Final de Curso
de Graduação, Departamento de Ciência da Computação,
IM/UFRJ, Rio de Janeiro, RJ, Brasil.
[13]Base
de
Conhecimento
CSCWLab
http://chord1.nce.ufrj.br:8088/webprotege
[14] Meire, A.P.; 2003, Suporte à edição cooperativa de
diagramas utilizando versões. Dissertação (Mestrado em
Informática) - UFRJ – Programa de Pós-Graduação em
Informática - IM/NCE.
[15] Bittes, J.M.; 2004, Um Método de Implantação de Sistemas
Apoiado por Aprendizado Colaborativo. Dissertação
(Mestrado em Informática) - UFRJ – Programa de PósGraduação em Informática - IM/NCE.
[16] Freitas, R. M.; 2003, A Reengenharia Participativa apoiada
por uma ferramenta de groupware: CEPE, um editor
cooperativo para elicitação de processos, Dissertação de
Mestrado, UFRJ – Programa de Pós-Graduação em
Informática - IM/NCE.
[17] Guarino, N., 1997, Understanding, Building and Using
85
Ontologies. In: Int. Journal Human-Computer Studies, 46(2/3),
February/March 1997.
[18] Abecker A., Aitken S., Schmalhofer F., Taitschian B.,
“KARATEKIT: Tools for the knowledge-creating company”,
in: Proceedings of 11th Workshop on Knowledge Acquisition,
Modelling and Management KAW’98, Banff, 1998.
86
PatternFlow: Supporting Standardized Description and
Enactment of Business Processes
Marcos Kalinowski
Marcos R. S. Borges
Guilherme H. Travassos
COPPE – Federal University of Rio
de Janeiro
PO Box 68511 - 21 941-972
Rio de Janeiro - Brasil
NCE – Federal University of Rio de
Janeiro
PO Box 2324 - 20 001-970
Rio de Janeiro - Brasil
COPPE – Federal University of Rio
de Janeiro
PO Box 68511 - 21 941-972
Rio de Janeiro - Brasil
[email protected]
[email protected]
[email protected]
RESUMO
PALAVRAS-CHAVE
O estabelecimento de padrões para tratar requisitos de workflow
de forma sistemática é importante, uma vez que processos, após
sua modelagem, deveriam poder ser descritos e executados por
sistemas de gerenciamento de workflow. Apesar do surgimento de
tais padrões, muitos deles não são apoiados por grande parte das
linguagens de modelagem de workflow e dos sistemas de
gerenciamento de workflow. Além disto, muitos de tais padrões
apresentam soluções para problemas freqüentes durante a
atividade de análise de projetos de workflow, o que realça a
importância de apoiá-los.
Sistemas de Gerenciamento de Workflow, Padrões de Workflow,
Descrição de Processos, Execução de Processos.
Neste artigo apresentamos PatternFlow, uma infra-estrutura para
descrever e executar processos de negócio cujo conjunto de
requisitos foi derivado principalmente de conhecimento adquirido
da análise de padrões de workflow. PatternFlow têm sido
utilizada, entre outros, para implementar ISPIS, uma infraestrutura para apoio ao processo de inspeção de software.
Avaliações de ISPIS na academia e na indústria nos permitiram
obter uma percepção adicional sobre a viabilidade de utilizar
PatternFlow para executar processos em ambientes industriais.
The available workflow management systems present a large
variety of languages, as well as concepts based on different
paradigms [1]. Thus, understanding their main requirements and
how well those requirements are supported by existing workflow
management systems becomes a difficult task. One step towards
facilitating this task was the initiative of establishing workflow
patterns [1, 2, 3, and 4] to systematically address workflow
management system requirements.
KEYWORDS
Workflow Management Systems, Workflow Patterns, Process
Description, Process Enactment.
1. INTRODUCTION
Since the sprouting of the workflow patterns [4], several
workflow management systems have been evaluated considering
them as reference. The evaluation of 15 commercial workflow
management systems, for instance, is described in [1]. In this
evaluation the authors noticed that each of the workflow patterns
was supported in at least one of the systems. However, none of
the systems offered support to all of the patterns. Moreover, most
of them support only a relatively small subset of the more
advanced patterns. Since many of those patterns recur quite
frequently during the analysis phase of workflow projects [1],
some business processes, depending on their complexity, can not
be described nor enacted by any of those workflow management
systems.
ABSTRACT
The establishment of patterns to systematically address workflow
requirements is important, since it should be possible for a
modeled process to be described and enacted by workflow
management systems. Despite the sprouting of those workflow
patterns, many of them are not supported in a great amount of
workflow modeling languages and workflow management
systems. Moreover, many of those patterns recur quite frequently
during the analysis phase of workflow projects, which highlights
the importance of supporting such patterns.
In this paper we present PatternFlow, a framework for describing
and enacting business processes whose requirements set was
derived mainly from knowledge acquired from the analysis of
documented workflow patterns. PatternFlow has been used,
among others, to implement ISPIS, a framework for supporting
the software inspection process. Evaluations of ISPIS in academy
and industry allowed us to gain additional insight regarding the
feasibility of using PatternFlow for enacting processes used in
real industrial environments.
Based on this scenario, we present PatternFlow, a framework for
describing and enacting business processes, whose requirements
were derived mainly from the analysis of the documented
workflow patterns. The initial concept of PatternFlow is described
in [5]. Over the years PatternFlow evolved and has been used,
among others, to implement ISPIS [6], a framework for
supporting the software inspection process. Having a real industry
process described in PatternFlow allowed us to perform
evaluations, in academy and industry [7]. The feedback of those
evaluations helped to gain additional insight into the suitability of
PatternFlow for enacting processes.
20 a 22 de Novembro de 2006
Natal, RN, Brasil
© Sociedade Brasileira de Computação
Comissão Especial de Sistemas
Colaborativos
The remainder of this paper is organized as follows. Section 2
provides an overview of the workflow patterns. Section 3
describes PatternFlow and how the workflow patterns were
supported in it. Section 4 presents the case study of using
PatternFlow for implementing ISPIS, as well as the evaluations
Anais do III Simpósio Brasileiro de Sistemas Colaborativos, pp. 87-97.
87
2. WORKFLOW PATTERNS
Table 1. Workflow Patterns. Adapted from [1].
According to [8] workflow specifications can be understood, in a
broad sense, from a number of different perspectives. The
control-flow (or process) perspective, for instance, describes
activities and their execution ordering through different
constructors. The data perspective adds operational business and
processing data to the control flow perspective. The resource (or
organizational) perspective provides an anchor to the
organizational structure in the form of human and device roles
responsible for executing activities. The operational perspective
describes elementary tasks executed in activities which might
map into underlying applications.
Basic Control Flow Patterns
Sequence: An activity in a process is enabled after the completion of
another activity in the same process.
Parallel Split: A point in the process where a single thread of control
splits into multiple threads of control which can be executed in parallel.
Synchronization: A point in the process where multiple parallel
subprocesses converge into one single thread of control.
Exclusive Choice: A point in the process where, based on a decision or
workflow control data, one of several branches is chosen.
Simple Merge: A point in the process where two or more alternative
branches come together without synchronization. It is an assumption of
this pattern that none of the alternative branches is ever executed in
parallel.
Thus, the control flow perspective provides an essential
understanding into a workflow management system’s
effectiveness, while the data perspective rests on it, and the
organizational and operational perspectives are ancillary.
Therefore the workflow patterns described in [1] focus on the
control-flow perspective. Work related to data and resource
perspectives can be found in [9] and [10], respectively. Regarding
the operational perspective, some focus is given to approaches to
support tool integration, such as [11].
Advanced Branching and Synchronization Patterns
Multiple Choice: A point in the process where, based on a decision or
workflow control data, a number of branches are chosen.
Synchronizing Merge: A point in the process where multiple paths
converge into one single thread. If more than one path is taken,
synchronization of the active threads needs to take place.
Multiple Merge: A point in a process where two or more branches
reconverge without synchronization. If more than one branch gets
activated, possibly concurrently, the activity following the merge is
started for every activation of every incoming branch.
Discriminator: The discriminator is a point in a process that waits for
one of the incoming branches to complete before activating the
subsequent activity. From that moment on it waits for all remaining
branches to complete and "ignores" them.
N-out-of-M Join: N-out-of-M Join is a point in a workflow
process where M parallel paths converge into one. The
subsequent activity should be activated once N paths have
completed. Completion of all remaining paths should be ignored.
An overview of the workflow patterns, grouped by category, with
a description adapted from [1], is presented in Table 1. Further
details (description, synonyms, examples, problem statement, and
potential implementation strategies) and illustrations can be
obtained in [1] [2].
Structural Patterns
3. PATTERNFLOW
Arbitrary Cycles: A point in a workflow process where one or more
activities can be done repeatedly.
Implicit Termination: A given subprocess should be terminated when
there is nothing else to be done.
The workflow patterns were used as the set of control-flow
requirements to be implemented by PatternFlow. Additional
requirements were related to the data, resource, and operational
perspectives. For the data perspective the management of attached
documents should be supported. For the resource perspective it
should be possible to organize users in groups (which could
represent, for instance, their roles in the organization). Finally, for
the operational perspective flexibility for implementing the tasks
to be accomplished in each of the activities (the atomic elements
of the process flow) and integration facilities to other applications
should be provided.
Patterns Involving Multiple Instances
MI without Synchronization: Within the context of a single process
instance multiple instances of an activity can be created, i.e., there is a
facility to spawn off new threads of control. There is no need to
synchronize these threads.
MI with a priori design time knowledge: For one process instance an
activity is enabled multiple times. The number of instances of a given
activity for a given process instance is known at design time. Once all
instances are completed some other activity needs to be started.
MI with a priori runtime knowledge: For one process instance an
activity is enabled multiple times. The number of instances of a given
activity is known at some stage during runtime, before the instances of
that activity have to be created. Once all instances are completed some
other activity needs to be started.
MI without a priori runtime knowledge: For one case an activity is
enabled multiple times. Once all instances are completed some other
activity needs to be started.
The following subsections provide an overview of PatternFlow’s
architecture and main functionalities. Additionally an explanation
of how the workflow patterns are supported is provided.
State Based Patterns
3.1 Architecture
Deferred Choice: A point in the workflow process where one of
several branches is chosen. Several alternatives are offered to the
environment. Once the environment activates one of the branches the
other alternative branches are withdrawn.
Interleaved Parallel Routing: A set of activities is executed in an
arbitrary order: Each activity in the set is executed, the order is decided
at run-time, and no two activities are executed at the same moment
Milestone: The enabling of an activity depends on the process instance
being in a specified state.
The architecture was defined based on the WfMC reference
model [12]. The main components and interfaces of this reference
model are illustrated in Figure 1.
According to [13] some effort has been done on the establishment
of generic interfaces, aiming to allow the exchange of information
in a standardized way and thus enabling interoperability between
different products. For instance, Wf-XML has been developed for
engine-engine interactions, and has recently been used also for
client-engine interactions. However, the generic interfaces are still
a goal to be reached. The components of the reference model, on
the other hand, provide an understanding of the elements that a
workflow management system should have.
Cancellation Patterns
Cancel Activity: An enabled activity is disabled, i.e. a thread waiting
for the execution of an activity is removed.
Cancel Case: A workflow instance is removed completely.
performed in academy and industry. Section 5 concludes this
paper.
88
Basically users have access to groups which have access to
activities which are part of a process description. Each activity
has (1) rules to define the next activities to be enabled whenever
those rules are satisfied (2) a form, describing a dynamic page or
menu with a set of dynamic pages used for accomplishing the
different tasks of the activity, and (3) a list of activities to be
cancelled as soon as the activity is accomplished. An Instance is
in a certain activity of a process and might have attached
documents (besides the history of all activity transitions and
operations on the attachments). If an instance of a process
happens to be in more than one activity then a separate entry for
the instance will exist for each activity in the instance table.
Figure 1. Components and interfaces of the WfMC
reference model.
Based on the components of the reference model, the initial
architecture was defined for PatternFlow as illustrated in Figure 2.
It has two main modules: FlowServer and FlowDeveloper.
Mapping this architecture to the reference model components,
FlowDeveloper implements process definition and administration,
whereas FlowServer implements the workflow engine and allows
monitoring the process. The browser serves as the workflow client
application of the model.
Figure 3. Metadata entity relationship model.
Additionally, besides the basic execution data (owner, arrival
time, how many arrived, etc), an instance has a set of 20 controlflow fields that are used uniquely for the transition rules. Labels
for those fields can be defined during the process description.
3.2 Main Functionalities
The main functionalities of PatternFlow can be divided in two
categories: Process Description and Administration, and Process
Enactment and Monitoring. Those two categories are handled
respectively by FlowDeveloper and FlowServer. An overview of
the functionalities in each of the categories is provided in the
following two subsections.
Figure 2. PatternFlow initial architecture.
Note that the architecture has two data repositories: one for the
metadata and one for operational data. The metadata contains the
description of the modeled processes and is used for their
enactment. Therefore the metadata is used by both modules,
FlowDeveloper (to define the metadata) and FlowServer (which
uses the metadata to enact the process). The operational data
contains application specific data used for implementing the tasks
of a given activity. To implement those tasks PatternFlow allows
linking activities to dynamic pages, or sets of dynamic pages
organized in a menu. Moreover, it allows the integration of other
external applications that might be helpful for accomplishing an
activity by using the integration mechanism described in [11].
3.2.1 Process Description and Administration
To illustrate how processes can be described in PatternFlow we
prepared a small example process concerning the build or buy
decision, which needs to be taken frequently in software
organizations. This process is shown in Figure 4.
In short, once a manager needs to take a build or buy decision he
launches a new analysis, than, two separate groups (called build
evaluator and buy evaluator) start to work in parallel analyzing
the build and the buy decision respectively. Afterwards the results
of the two analyses are merged so that one of the managers can
evaluate both, select one, and approve it or not. Actually, if he
decides to not approve the selection doesn’t really matter. The
two final activities are just to indicate the status in which each
process instance finishes the process.
Figure 3 shows the entity relationship model of the metadata and
how it usually relates to the operational data. Four of the tables
shown in this model are generated each time a new process gets
described. Those tables are related to the instances that are being
enacted and start with the name of the process (wich is
represented in the model as <INSTANCE>). The link to the
operational data is usually done to an instance of the process (but
depends on how the activities themselves are implemented).
Further explanation regarding the metadata follows.
Regarding the workflow patterns presented in section 2, this
process uses the parallel split (also referred to as AND-Split,
indicated by the upper AND), the synchronization (also referred
89
Figure 6. Updating a group in FlowDeveloper.
Moreover, a separate tab, shown in Figure 8, allows (1) defining
the dynamic page (or menu with a set of dynamic pages) that is
used for accomplishing the activity itself, (2) to determine if the
activity enables ad-hoc process flow (selected by the user at
runtime) to an activity or user, and (3) to select the activities for
which the fan-in for an instance should be adjusted according to
the number of destinations determined in runtime for the current
activity (this is done to implement the ‘Synchronizing Join’
pattern, as described in the next section).
Figure 4. Example process: build or buy decision.
to as AND-Join, indicated by the lower AND), and the exclusive
choice (indicated by the XOR and the deviation rules) patterns.
In PatternFlow this process can be defined using FlowDeveloper,
which is linked to the metadata and allows creating and
describing new processes. The main process description screen of
this tool is shown in Figure 5.
Figure 5. FlowDeveloper process description screen.
Figure 7. Describing an activity.
In this screen an empty build or buy process can be created and
then the activities can be added to it. It also allows creating users
and groups. The screen to edit a group is shown in Figure 6.
Basically a group can be associated to the activities to which it
has access and to the users which are part of it. Once a user
becomes part of a group he automatically will be able to access
activities related to the group through the browser (using a URL
to access FlowServer, which will be described in the next
subsection).
The activity described in Figure 7 and 8 is the ‘Launch Analysis’
of our example process. Note that it is classified as a starting
activity (which means that in it a new instance of the process can
be created). The group associated to it is the ‘Manager’ group.
Since it does not synchronize any previous activities its fan-in is
set to 1, and since it does not discriminate remaining arriving
instances the discriminate checkbox is unchecked (refer to the
discriminator pattern for further details on the discriminate
checkbox). Its next activities are ‘Analyze Build Decision’ and
‘Analyze Buy Decision’, and the transition rule for both is
‘always next activity’ (no rule is defined).
One of the main tasks of describing a process in PatternFlow is
describing each of its activities. The screen to describe an activity
is shown in Figure 7. It allows classifying the activity, redefining
the groups associated to the activity, defining synchronization
parameters (fan-in and discriminator), defining the link to the next
activities (with the associated transition rules) and to the activities
it cancels.
90
Figure 10. Showing the example process in EnactPro.
However, EnactPro was developed for its own purposes.
Therefore it has several other features which are not part of the
scope of this paper, but does not explicitly show the implemented
workflow patterns nor the transition rules between activities. To
illustrate the patterns and the transition rules in PatternFlow the
visualization feature would have to be implemented considering
the metadata of PatternFlow itself instead of the XML Schema of
EnactPro.
Figure 8. Defining a form for accomplishing the activity
and if the activity allows an ad-hoc process flow.
Regarding the transition rules, they can be edited by selecting one
of the next activities and then invoking ‘Edit Rule’. The screen
for defining a transition rule between two activities is shown in
Figure 9. It allows mounting a logical expression regarding any
field of the instance table, including the 20 fields uniquely
dedicated to control-flow. Those 20 fields appear in the rule
definition screen with the labels associated to them. The
generated expression can also be directly edited. In Figure 9 the
transition rule ‘Approved = Yes’ was entered to describe the
transition from the ‘Evaluate Analysis Results’ to the ‘Approved’
activity of our example process.
3.2.2 Process Enactment and Monitoring
Once the example process has been described, support to the
activities (the workflows atomic units of work) has to be
implemented. Therefore the dynamic pages (or menus) specified
for the activities need to be developed.
In the case of no need for dynamic processing of operational data
a facility for building static models for the activities is provided
(see [5] for further details on this facility) those models are
interpreted in runtime and are able to update the basic controlflow fields of PatternFlow. However, in general, this is not the
case and dynamic processing of operational data is needed.
Since FlowServer runs on a JEE container the dynamic pages
specified have to be JSP’s or servlets (unless they are processed
on another container), which is a technological constraint to the
default solution. In the case of using a menu several dynamic
pages can be associated to an activity.
A facility for integrating other applications into the activity
implementation is provided using the XMapper integration
mechanism described in [11]. The usage of this mechanism in
PatternFlow is shown in Figure 11. The activity has control over
which applications (external tools) it provides to the user. The
pre-condition for using the integration mechanism is that the tool
should produce an XML artifact. XMapper then uses XML
schemas and ontologies to generate transformation drivers
(XSLT) to convert the XML of the tool into an XML that
conforms to a schema that the activity implementation
understands.
Figure 9. Defining activity transition rules.
To enable visualizing the process being described EnactPro [14]
has been integrated. EnactPro is called as a dynamic link library
and receives a XML description of the process, which
PatternFlow generates according to EnactPro’s XML Schema.
The visualization of the example process in EnactPro is shown in
Figure 10.
91
Figure 11. Using the integration mechanism.
Figure 13. Choosing an activity.
Once the implementation of the support to each activity is done
the process can be enacted and monitored using FlowServer.
Choosing an Activity. The user selects the activity in which he
would like to perform his tasks. As a result FlowServer displays
basic information of all the pending instances of the process
situated in the activity. If the activity was classified as a starting
activity FlowServer also enables creating new instances of the
process. The result of selecting the activity ‘Launch Analysis’ of
our example process is displayed in Figure 14, where, after
selecting the activity a new instance of the process was created, to
analyze whether to build or to buy a calendar component.
FlowServer is available through an URL, displaying an interface
such as shown in Figure 12. This static interface might be
customized according to the process. In Figure 12, for instance we
initialized the right part with an illustration of the build or buy
decision process.
The process is then enacted in FlowServer following 4 main use
cases, described below:
Entering the system. The user provides his username, password
and the process he would like to log in (this last parameter might
be fixed and provided in a hidden way, without the awareness of
the end user). FlowServer then determines the groups to which the
user has access and the activities of the process related to those
groups. As a result a list of activities is shown to the user, as
illustrated in Figure 13, where the activities related to the manager
group of our example are displayed.
Choosing an Instance. The user selects the instance he would like
to work on in the current activity. FlowServer then displays the
implementation (representing the tasks of the activity) associated
to the activity for the chosen instance through a static model,
dynamic page, or menu. In Figure 15, a menu was associated, and
the menu task shown is attaching the documents, which
functionality is provided by FlowServer and does not require any
implementation effort (just has to be associated to the menu,
which can be done following the example of the sample menus).
This functionality uploads the documents to the server and makes
them available in all activities where the functionality is displayed
in the menu.
Figure 12. FlowServer process enactment and
monitoring interface.
Figure 14. Choosing an instance.
92
arrival. Figure 17 shows the instance ‘Calendar Component’
available in activity ‘Analyze Buy Decision’.
Figure 15. The activity implementation.
Accomplishing an Activity. Once all the tasks of an activity have
been performed the user hits the upper right button for finishing
the activity. At this moment FlowServer will process the
transition rules for each of the next (destination) activities. Those
rules are processed as an SQL statement on the instance table,
considering the value of all its fields, including the additional
control-flow fields. As a result, a message displays which
transitions were done. Additionally an e-mail notification is sent
to all members that have access to the destination activities.
Figure 16 shows the message displayed after finishing the
‘Launch Analysis’ activity for the instance ‘Calendar
Component’, were a transition to activities ‘Analyze Buy
Decision’ and ‘Analyze Build Decision’ occurred.
Figure 17. Instance ‘Calendar Component’ available in
activity ‘Analyze Buy Decision’.
The progress of an instance of the process can be monitored
through FlowServer (hitting the ‘Trace’ button instead of logging
into the system). Monitoring enables managers to take corrective
actions in case of deviations from the expected enactment.
Besides monitoring the instance itself, its attachments can also be
monitored, showing when (and by whom) a given document was
removed or added to the instance.
The monitoring instance functionality is shown in Figure 18,
where the transition of our example instance from activity
‘Launch Analysis’ to activities ‘Analyze Build Decision’ and
‘Analyze Buy Decision’ is shown.
After the transitions, if the number of arrivals of the instance at
the destination is smaller than the fan-in of the activity it gets
incremented and, in the case in which other arrivals of the same
instance happened before in the activity, the instance data gets
updated (merged). If the number of arrivals of the instance is
already greater than or equal to the fan-in, another copy of the
instance gets generated at the destination.
Provided the overview of the basic functionalities, the next
section discusses how the workflow patterns were supported in
PatternFlow.
Figure 18. Monitoring the instances.
3.3 Supporting the Workflow Patterns
The description of how the workflow patterns were supported in
PatternFlow is organized in the following subsections according
to the categories of the patterns shown in Table 1.
Figure 16. Accomplishing an activity.
Once the number of arrivals for a process instance is equal to the
fan-in defined for the destination activity the instance is made
available in this activity. In the case of our example the fan-in of
both destination activities was defined as 1 and therefore the
instance becomes immediately available, not waiting for any new
93
The ‘MI with a Priori Design Time Knowledge’ can be described
by associating the same activity several times as the next activity
of its previous one (with the same transition rule). The result
would be a parallel split of the instance. The next activities should
synchronize the different parts of the instance (using the
synchronization pattern).
3.3.1 Basic Control Flow
The basic control flow patterns can be easily described in
FlowDeveloper and are supported by FlowServer. The ‘Sequence’
pattern is described by defining a next activity without a transition
rule (always next activity) to a given activity. The ‘Parallel Split’
can be described by adding more than one next activities without
transition rules to a given activity. The ‘Exclusive Choice’ can be
implemented by defining more than one next activities with
complementary transition rules (like in our example, where
‘Approved = Yes’ and ‘Approved = No’ were used).
Regarding the ‘MI with a Priori Runtime Knowledge’, it can be
described by setting the same activity several times as the next
activity, but with each transition associated to a different rule.
Some hack might have to be implemented in order for the controlflow fields of the instance to reflect the desired runtime
knowledge to be considered. Again, the next activities should
synchronize the different generated parts of the instance (using
the synchronizing merge pattern).
For describing the ‘Simple Merge’ setting the fan-in of an activity
to 1 is enough. For describing the ‘Synchronization’ pattern the
fan-in of the activity should be defined in FlowDeveloper as
being the amount of incoming activities to be synchronized.
3.3.2 Advanced Branching and Synchronization
Finally, the ‘MI without a Priori Known Runtime Knowledge’ is
currently not directly supported. This is because in the current
solution the synchronization of the several instance parts would
not be possible due to the unknown amount of branches to
synchronize.
Below follows a description of how the advanced branching and
synchronization patterns can be described and enacted in
PatternFlow.
The ‘Multiple Choice’ pattern can be described in FlowDeveloper
by defining non complementary transition rules for the next
activities of a given activity. For instance, defining a transition
rule to one destination activity as being ‘Approved = Yes’ and to
another as ‘Decision = Buy’. In this case, if the instance got
approved and the decision was to buy then it would be forwarded
to both destinations.
3.3.5 State Based Patterns
The ‘Deferred Choice’ pattern can be described by having the
accomplishment of each of the activities of the possible branches
canceling the remaining ones.
The ‘Interleaved Parallel Routing’ pattern is not supported yet,
since semaphores are not considered in PatternFlow, only true
parallelism is supported. It is important to mention that this
pattern occurs rarely during the analysis phase of workflow
projects.
The ‘Multiple Merge’ can be described by setting the fan-in of the
destination activity to 1. Once an instance arrives, the number of
arrivals will be equal to the fan-in and therefore, as soon as the
next part of the same instance arrives a new copy of the instance
will be generated.
Regarding the ‘Milestone’ pattern, since PatternFlow keeps the
history of all activity transitions, it could be implemented as part
of the support to the activity, setting the desired milestones into
the control flow fields so that they could be used for describing
the transition rules. No direct support is provided to this pattern
yet.
The ‘Synchronizing Merge’ can be described by setting
PatternFlow to update the fan-in for an instance in other activities
according to the number of destinations found for that instance in
the current activity in runtime. Thus, the fan-in for that instance
will be matching the actual amount of branches taken, assuring
that they will be synchronized. This pattern was not supported in
the initial version of PatternFlow [5].
3.3.6 Cancellation Patterns
For describing the ‘Discriminator’ and ‘N-out-of-M Join’ patterns
the discriminate checkbox has to be checked. Additionally, the
fan-in should be set to 1 or to the number of branches to be
considered, respectively.
The ‘Cancel Activity’ pattern can be described in FlowDeveloper
by creating an activity that, when executed cancels another
activity. The ‘Cancel Case’ pattern is present in FlowServer,
which allows the owner of an instance to cancel it whenever he
wishes.
3.3.3 Structural Patterns
Hence PatternFlow supports most of the workflow patterns
(except ‘MI without a Priori Known Runtime Knowledge’,
‘Interleaved Parallel Routing’, and ‘Milestone’). Moreover, it
supports more patterns than each of the 15 workflow management
systems evaluated in [1].
The ‘Arbitrary Cycles’ pattern can be described without any
restriction, since there is no limitation to which activities can be
chosen as next activities. The ‘Implicit Termination’ is always
present, since an activity in PatternFlow is considered an ending
activity if there are no next activities defined for it.
4. CASE STUDY: ISPIS
3.3.4 Patterns Involving Multiple Instances
PatternFlow has been used, among others, to implement ISPIS
[6], a framework for supporting the software inspection process.
The following subsection provides an overview of this
framework.
The ‘MI without Synchronization’ pattern can be described since
an activity can enable copying the instance in it as many times as
desired by setting a rule which defines it as its own next activity
twice and setting its fan-in to 1. Thus, each time a new copy of
the instance will be created (because arrivals will be greater than
or equal to the fan-in).
4.1 Overview
ISPIS implements the reorganization of the traditional inspection
process described in [15], which introduces changes to reduce the
cost and total time for the accomplishment of a particular type of
94
inspection, the inspections with asynchronous meetings
performed by geographically distributed teams. Many of the
remaining requirements for ISPIS were derived from knowledge
acquired by empirical studies.
Basically the process consists of having a moderator planning the
inspection, inspectors reviewing the artifact and generating
discrepancy lists, the moderator filtering the resulting discrepancy
lists for an asynchronous discrimination with the entire team to
classify discrepancies as defects or false positives. Afterwards,
the author takes the defect list and performs the rework on the
artifact. Finally the moderator evaluates the quality of the
inspection and of the corrected artifact and decides whether to
perform another inspection or not.
Figure 20. ISPIS’s operational data and PatternFlow’s
metadata.
4.2 Evaluations in Academy and Industry
ISPIS has been carefully evaluated in the academic context where
an experimental study and a case study have been conducted [6].
The experimental study was related to specific support provided
by ISPIS to software inspections. The case study, on the other
hand was related to process enactment.
The case study was carried out by conducting a real requirements
document inspection. Subjects (12) were divided in two
inspection teams of 5 members each, one author, and one
moderator. In order to get feedback regarding the integration
mechanism one of the groups used an external tool for the
individual discovery activity. Feedback was gathered through a
follow up questionnaire.
Figure 19. Inspection process and external tool
integration mechanism.
Depending on the type of artifact and the technique to be used for
the defect detection activity, the framework provides external
tools. The discrepancy lists resulting from using those tools are
then integrated into ISPIS using the integration mechanism
described in Section 3. The inspection process and the integration
mechanism are illustrated in Figure 19.
Both treatments (with and without using external tools)
successfully reached the end of the inspection process and
participants’ feedback was positive. The main claims were
regarding specific activity support implementations and not the
process enactment itself.
Results of those evaluation studies showed promising results.
However, the validity of those evaluations was scoped to the
academic context.
Besides describing the process in PatternFlow, operational data
regarding software inspections (discrepancies, discrepancy lists,
etc) was modeled to serve as a basis for implementing the support
to each of the processes activities. The entity relationship model
describing such operational data and how it relates to
PatternFlow’s metadata is shown in Figure 20.
Aiming to introduce ISPIS into the industrial context of Sakonnet
Technology, a geographically distributed software organization, a
comparison of those evaluations and the complete methodology
for introducing software processes described in [16] was
performed. As a result a set of two additional case studies to be
conducted was derived: ‘Use in real life cycle’ and ‘Use in
industry’. The first of those case studies addresses how the
process integrates into a real development lifecycle. The second
one evaluates if the process fits into an industrial setting. Those
case studies were conducted at Sakonnet Technology [7], by
teams distributed between Rio de Janeiro, London, and New
York.
Implementing ISPIS was an opportunity to improve the initial
version of PatternFlow [5]. Support to more of the workflow
patterns was implemented and many other improvements (like,
for instance, multi-language support, allowing to associate menus
to activities, displaying a summary of the pending instances of an
activity instead of just the name, and enhancing the interfaces).
Having a real industry process supported by PatternFlow enabled
us to perform some experimentation in academy and industry. A
short description of those evaluations and the feedback obtained
are described in the following subsections.
Again, results of the studies showed positive feedback regarding
process enactment and only suggestions for improving specific
activity implementations of ISPIS were provided. Figure 21
shows a successfully finished inspection at Sakonnet Technology,
in which 33 defects where found on a requirements document.
95
Regarding process description, it is important to mention that the
patterns can be described using the FlowDeveloper module, but
not through visual modeling. To lower this impact PatternFlow
was integrated into EnactPro [14] to allow the visualization of the
process being modeled. Regarding enactment, the patterns are
supported by the FlowServer module.
Over the years PatternFlow evolved and has been used, for
instance, to implement ISPIS [6], a framework for supporting the
software inspection process. Having a real industry process
described in PatternFlow allowed us to perform evaluations in
academy and industry [7]. Feedback of those evaluations and
other usage experiences suggest the suitability of PatternFlow for
enacting processes in real industrial environments.
6. ACKNOWLEDGMENTS
The authors would like to thank for the contributions of the
experimental software engineering (ESE) team of COPPE/UFRJ
(http://www.cos.ufrj.br/~ese) and the CHORD group of
NCE/UFRJ (http://chord.nce.ufrj.br). Thanks also to CNPq for
financial support.
Figure 21. Follow-up activity of a real inspection using ISPIS
at Sakonnet Technology.
4.3 Other Experiences
Currently PatternFlow is being used to enact several software
inspections accomplished through the ISPIS framework, which
has been used in real projects undertaken by the COPPETEC
foundation.
7. REFERENCES
One recent usage that deserves special attention was a
simultaneous enactment of four inspections, with 5 team members
each, having 20 people using ISPIS at the same time. These
inspections happened in the context of a contest promoted by the
IHC (human computer interfaces) Symposium 2006 to evaluate
the interface of the JEMS (Journal and Event Management
System) system. Fortunately PatternFlow handled the
coordination of the process instances appropriately and the teams
were able to complete their inspections without major problems.
[2] van der Aalst, W.M.P., ter Hofstede, A.H.M., Kiepuszewski,
B., Barros, A.P., Workflow Patterns Home Page,
http://www.workflowpatterns.com, last accessed July 15th
2006.
[1] van der Aalst, W.M.P., ter Hofstede, A.H.M., Kiepuszewski,
B., Barros, A.P., Workflow Patterns, Journal on Distributed
and Parallel Databases, 14, 3 (July 2003), 5-51.
[3] van der Aalst, W.M.P., ter Hofstede, A.H.M., Kiepuszewski,
B., Barros, A.P., Advanced Workflow Patterns, 7th
International Conference on Cooperative Information
Systems (CoopIS 2000), volume 1901 of Leture Notes in
Computer Science, pages 18-29. Springer-Verlag, Berlin,
2000.
5. CONCLUSIONS
[4] van der Aalst, W.M.P., ter Hofstede, A.H.M., Kiepuszewski,
B., Barros, A.P., Workflow Patterns, BETA Working Paper
Series, WP 47, Eindhoven University of Technology,
Eindhoven, 2000.
The establishment of patterns to systematically address workflow
requirements is important, since it should be possible for a
modeled process to be described and enacted by commercial
workflow management systems. The initiative of establishing
those patterns was taken [1, 2, 3, and 4] and helped to understand
in which extent these requirements are addressed in current
workflow management systems.
[5] Kalinowski, M., “PatternFlow: um software de workflow
para a implementação e execução de processos de negócio
padronizados”, Bachelor in Computer Science Conclusion
Project, DCC/UFRJ, 2001.
However, most of the existing workflow solutions support only a
relatively small subset of the more advanced patterns, and even
the basic patterns are not supported by a great amount of them [1].
Since many of those patterns recur quite frequently during the
analysis phase of workflow projects [1], some business processes,
depending on their complexity, can not be described nor enacted
by any of those workflow management systems.
[6] Kalinowski, M., Travassos, G.H., A Computational
Framework for Supporting Software Inspections, 19th IEEE
International Conference on Automated Software
Engineering, pp. 46-55, Linz, Austria, 2004.
[7] Kalinowski, M., Travassos, G.H., Software Technologies:
The Use of Experimentation to Introduce ISPIS - a Software
Inspection Framework - Into the Industry, 2nd Experimental
Software Engineering Latin American Workshop (ESELAW
2005), 2005.
Based on this scenario we implemented PatternFlow, a framework
for describing and enacting business processes. The control-flow
requirements of PatternFlow were derived from the analysis of the
documented workflow patterns and most of them (except ‘MI
without a Priori Known Runtime Knowledge’, ‘Interleaved
Parallel Routing’, and ‘Milestone’) are supported in the resulting
implementation.
[8] Jablonski, S., Bussler, C., Workflow Management: Modeling
Concepts, Architecture, and Implementation. International
Thompson Press, 1996.
96
[9] Russell, N., ter Hofstede, A.H.M., Edmond, D., van der
Aalst, W.M.P., Workflow Data Patterns, QUT Technical
report, FIT-TR-2004-01, Queensland University of
Technology, Brisbane, 2004.
[13] Hollingsworth. D., The Workflow Reference Model 10
Years On, Chapter of the Workflow Handbook 2004,
available at http://www.wfmc.org/, 2004.
[14] Mafra, S.N., Barros, M.O., Travassos G.H., “enactPro:
Automatizando Processos de Software”, In: XVIII Brazilian
Symposium on Software Engineering – Tool Session, Brazil,
2004
[10] Russell, N., ter Hofstede, A.H.M., Edmond, D., van der
Aalst, W.M.P., Workflow Resource Patterns, BETA
Working Paper Series, WP 127, Eindhoven University of
Technology, Eindhoven, 2004.
[15] Sauer, C., Jeffery, D.R., Land, L., Yetton, P., “The
Effectiveness of Software Development Technical Review:
A Behaviorally Motivated Program of Research”, IEEE
Transactions on Software Engineering, 26 (1): 1-14, Jan.
2000.
[11] Spinola, R.O., Kalinowski, M., Travassos, G. H., “Uma
Infra-Estrutura para Integração de Ferramentas CASE”, In:
Proc. of the XVIII Brazilian Symposium on Software
Engineering, pp. 147-162, Brasilia - DF, Brazil, 2004.
[12] WFMC,
Workflow
Management
Coalition,
http://www.wfmc.org/, last accessed July 15th 2006.
[16] Shull, F., Carver, J., Travassos, G.H., "An Empirical
Methodology for Introducing Software Processes." In: Proc.
of European Software Engineering Conference, Vienna,
Austria, pp. 288-296, 2001.
97
Selecting Anomalous Traces
from Workflow Event Logs
Jacques Wainer
Fábio Bezerra
IC – UNICAMP
Caixa Postal 6176
Campinas, SP, Brazil
IC – UNICAMP
Caixa Postal 6176
Campinas, SP, Brazil
[email protected]
[email protected]
RESUMO
Keywords
Este trabalho apresenta um modelo de detecção de traces
anômalos gerados por um sistema gerenciador de processos.
A detecção é baseada no custo de inclusão de um trace sobre um modelo construı́do através de um algoritmo de mineração de workflow que utiliza um conjunto de heurı́sticas. O
cálculo do custo de inclusão é realizado como segue: (i) um
trace do log é removido; (ii) um modelo de workflow baseado
em um subconjunto dos traces restantes é descoberto; e (iii)
o trace removido é adicionado sobre o modelo minerado. O
custo de inclusão representa o tamanho da modificação de
um modelo após a inclusão de um trace no mesmo. Se um
trace modifica o modelo, então ele será selecionado como
anômalo, senão indica uma instância do modelo. Este artigo explica o método proposto, alguns exemplos, bem como
nossa avaliação do método.
Workflow Mining, Anomaly Detection, Information Security
1. INTRODUCTION AND MOTIVATION
Workflow mining [9, 3, 5, 4] is a technique used to reconstruct a workflow model from a set of traces in a log. The
techniques used to mine a workflow trace log can be used to
discover how people work and to support business process
modeling. For example, an ERP system might not enforce a
way of work in some procedures. Then a log of these transactions could be used to model an usage pattern of such system, that is, organizational procedures not strongly defined
can be mined to suggest a process model [8]. Another use of
workflow mining techniques is to construct social networks
as presented in [10].
ABSTRACT
However, current research in workflow mining usually assumes that the log is in some way complete (under some
appropriate definition of completeness [9]) so that the “correct” workflow model can be inferred from the log. The current workflow research also assumes that the log is correct,
that is, all traces in the log were generated from the workflow model which will be discovered by the process mining.
This work challenges this last assumption.
This work shows a model to detect a set of anomalous traces
in a log generated by a business process management system. The detection of an anomalous trace is based on the
inclusion cost of a trace in a workflow model constructed
by workflow mining based on rewriting rules. The inclusion
cost is evaluated as follows: (i) one trace is removed from
log; (ii) a workflow model is mined from a random subset
of remaining traces of log; (iii) the removed trace is merged
over model. The inclusion cost is the amount of modification of a model after the inclusion of trace on it. If a trace
produces a modification on the model, it will be selected as
an abnormal or anomalous trace, otherwise it is an instance
of the mined model. This paper explains how the inclusion
cost works and the proposed model to select the anomalous
traces. Moreover, we comment the results of experiments
and some limitations.
In this work we are interested in applying workflow mining techniques to discover anomalies or outliers in the log.
These anomalies may be exceptional executions, or insecure
executions of the workflow, or even fraud attempts.
Anomaly detection has been the target of most research in
the field of data mining, since many surprising, rare events
are of interest in security, surveillance, epidemiology, fraud
detection and so on. For example, disease outbreak detection has been proposed by detecting anomalies in the event
logs of emergency visits [1], or the retail data for pharmacies [6]. In [2] the association rules are cited as an important
tool to find tendencies in databases. But the huge amount
of rules obtained even for small databases implies serious
drawbacks to this approach. So, they proposed an approach
that discovers anomalous association rules, that can be used
to analyze deviations from normal behavior.
20 a 22 de Novembro de 2006
Natal, RN, Brasil
© Sociedade Brasileira de Computação
Comissão Especial de Sistemas
Colaborativos
Anais do III Simpósio Brasileiro de Sistemas Colaborativos, pp. 98-106.
98
• M ⊕ α denotes the amalgamation of a model M (first
argument) and a trace α (second argument);
In this work we adopt the following rationale to detect anomalies: the traces that are not anomalies when mined should
generate a workflow model, and trying to fit the anomaly
into this model will probably require a lot of structural
changes. The anomaly is then the trace whose inclusion produces a modification to the model generated by the other
traces of the log. In order for this rationale to work, we
need a workflow mining algorithm that is incremental, that
is, which makes it possible to generate a new workflow model
by including a trace into an “old” workflow model. We use
the rewriting rules proposed in [11].
• if α is a model expression, then α is a sequence of
activities that can be generated from α
Structural rules:
S1 α ⊕ α ⇒ α If the new trace can be generated from the
model, there is no need to change the model.
S2 αβ ⊕ γδ ⇒ (α ⊕ γ)(β ⊕ δ) Segmentation of two traces
for an alternative amalgamation.
This paper is organized as follow: in Section 2 we present
the workflow mining method used to implement the anomaly
detection model. A prototype of this model is commented.
In Section 3 we present our proposal model for anomaly
detection, the inclusion cost. Moreover, we present some
examples that illustrate the proposed model and methodology used to validate it. In Section 4 we discuss some related
works and in Section 5 we point at some conclusions and
future works.
S3 α + β ⊕ γ ⇒ (α ⊕ γ) + β An alternative amalgamation
inside an OR block;
S4 αβ ⊕ γ ⇒ (α ⊕ γ)β An alternative amalgamation
inside a LOOP block;
S5 α β ⊕ γδ ⇒ (α ⊕ γ) (β ⊕ δ) An alternative amalgamation inside an AND block;
2. WORKFLOW MINING
In this section we present the rewriting method of workflow
mining, how it works and some issues of its implementation.
Finally, an extended model is presented.
Introduction rules:
Or-I α ⊕ β ⇒ α + β If two traces can’t be merged, a new
model is constructed with an OR operator.
2.1 Rewriting Method
The rewriting method is a technique proposed in [11] for
process mining. This method is considered an incremental
method, because a known model is remodeled or rewritten
based on a given workflow trace that isn’t an instance of
the original model. Then, trace by trace a model could be
incrementally modified.
And-I αβ ⊕ β α ⇒ α β Rule used to generate an AND
operator. The trace β α is an inverted instance of αβ.
And2-I (α β)γ ⊕ α γ β ⇒ (αγ) β Rule used to generate an AND operator.
And3-I γ(α β) ⊕ α γ β ⇒ α (γβ) Rule used to generate an AND operator.
A model is rewritten during its merging with a trace. If the
trace is an instance of the model, nothing is done. Otherwise
the model is modified. The rewritten model is constructed
based on application of a set of rules. Below we list the
notation that we will follow and a revised set of rules that
was originally presented in [11].
Loop-I α ⊕ α βα ⇒ αβ Rule used to generate a LOOP
operator.
Below we illustrate how the application of rules on a given
set of traces T = {abcde, acbe, abce} works. The first two
traces are merged producing a model that is merged with
the third trace.
Notation:
• α, β, γ, δ represent a sequence of activities or structural
blocks (AND, OR, LOOP);
• αβ represents the sequence of α followed by β;
abcde ⊕ acbe ⇒
(a ⊕ a)(bcde ⊕ cbe); S2 rule
• α + β represents the OR-split/OR-join block of
branches α and β;
a(bcde ⊕ cbe) ⇒
a(bcd ⊕ cb)(e ⊕ e); S2 rule
• α β represents the AND-split/AND-join block of
branches α and β;
a(bcd ⊕ cb)e ⇒
a[(bc ⊕ cb)(d ⊕ )]e ; S2 rule
• αβ represents a loop in which α is the main branch,
and β is the alternative path;
a[(bc ⊕ cb)(d ⊕ )]e ⇒
a(b c)(d ⊕ )e ; And-I rule
• ⊕ is the amalgamation operator;
99
a(b c)[(d ⊕ )]e ⇒
a(b c)(d + )e; Or-I rule
if M has less vertices than M’. This approach reduces the
search space and improves the execution time of the rewriting method. However, it is possible that two mined models
have the same number of vertices. This scenario points out
that this algorithm is still a non-deterministic solution, because in this case, it randomly chooses a model.
a(b c)(d + )e ; mined model
a(b c)(d + )e ⊕ abce ⇒
(a ⊕ a)[(b c)(d + )e ⊕ bce]; S2 rule
3. ANOMALY DETECTION
a[(b c)(d + )e ⊕ bce] ⇒
a[(b c) ⊕ bc][(d + )e ⊕ e]; S2 rule
In this section we present our technique to detect anomalous traces based on inclusion cost. First we present how
inclusion cost is evaluated. Then, we explain the proposed
model to select all anomalous traces. Finally, we discuss
some experiments we have conducted.
a(b c)[(d + )e ⊕ e] ⇒
a(b c)[(d + ) ⊕ ](e ⊕ e); S2 rule
a(b c)(d + )e; S1 rule
3.1 Inclusion Cost
a(b c)(d + )e; mined model
The execution trace presented above is one of many possible
execution traces of process mining. For each two merged
trace we can have many models as a solution. The model
obtained in the first step when merged with a third trace
can generate another set of models, and so on.
This property of process mining with rewriting rules has
some limitations. The first limitation is execution time, because many different models could be generated and we are
interested in one of them. The second one is the dependency
of the solution model on the order of the traces. The execution trace shown below illustrates this limitation. Since
we know that the given solution is consistent with all traces
used in process mining, then, both solutions a(b c)(d + )e
and a[(b c) + cbd]e could instantiate the traces of set T
above. The third limitation is related to the previous ones.
It is concerned with the selection criteria that is employed
to choose an appropriate rule among the rules that can be
applied to rewrite the model.
abce ⊕ acbe ⇒ a(b c)e
a(b c)e ⊕ abcde ⇒ a[(b c) + cbd]e
a[(b c) + cbd]e; mined model
The technique for detecting anomalous traces we are proposing is based on the evaluation of the application cost of a
trace over a known workflow model. The inclusion cost is
the difference of size between the two models. The size
of a model is the number of vertices that it has. Figure 2 illustrates how a mining works. The figure shows
three models generated when mining a set of traces T =
{abcd, acbd, abce}. The first trace could be an instance of a
sequential model whose size is four, as depicted. After merging of trace acbd with the sequential model, a bigger model
is generated with size six. Then a third trace is merged,
generating a third model with size nine.
This simple example illustrates how the inclusion of a trace
produces a modification in the model. Each generated model
has to be able to instantiate the same set of traces that constructed it. Therefore, the trace acbd could not be instantiated by sequential model, then a modification was needed.
The same applies to the third trace.
A trace that is an instance of a workflow model does not
modify it, such a trace can not be an anomalous, because
the inclusion cost will be zero. This principle is used by the
workflow mining process based on rewriting rules. During
the mining, a model will not be modified if it is merged with
an instance trace. For example, if we try to introduce the
trace acbe nothing will be done on the last model of Figure
2, because acbe is an instance of the model.
2.2 Extending the Rewriting Model
3.2 Selecting Anomalous Traces
One drawback of mining based on rewriting rules is that
many models could be constructed from a log, because during the amalgamation of a model and a trace, different sequences of rules could be applied. So, many models are generated from the log. To solve this limitation, we developed a
function that makes a global searching in the mined model
space. Figure 1 illustrates an example of global search. The
selection of the smallest model reduces the search space and
is a more deterministic approach to mine a process model.
We select the anomalous traces after calculating the inclusion cost of all different traces of a log. The traces that have
an inclusion cost higher than zero are selected. The important consideration is about the model used to calculate the
inclusion cost after merging. Therefore, the mined model is
constructed based on a set of random chosen traces. We assume that anomalous traces are rare and they are anomalous
because they are not an instance of the workflow model that
generated the “normal” traces. This is not the only possible
definition of anomaly, but is the one we use in this paper.
Our proposed method considers this assumption when selecting the traces of a log to construct the model.
Among all derived models, the function we propose selects
the smallest one. A model M is smaller than a model M’
100
T = { t1, t2, t3 }
M1
t1 + t2
M2
M3
If M31 is the smallest,
M31 is selected
...
If M3 is the smallest,
M3 is selected
M3 + t3
M31
M32
M33
Mn
...
M3n
M31 is the mined model for set T
Figure 1: Global search for traces in set T.
Figure 3 illustrates how a log is preprocessed during execution of proposed method. L is the original log, D is a
set of different traces and R is a set of randomly selected
traces. The random traces are used to mine a model that
will be merged with a trace of D. For each trace of D, a
set R of random traces is generated, a model is mined, and
an inclusion cost for the mined model is calculated. A trace
is selected if it has a non-zero inclusion cost. For example, when a potential anomalous trace Ta is selected from
set D, we remove the first occurrence of Ta in L, and a R
set is generated. Then a model M is mined from R and
merged with trace Ta . If Ta is an anomalous trace, it will
produce a modification over model M and it will be selected
as anomalous. We present a pseudocode for this algorithm
in Figure 4.
Assuming that anomalous traces are rare events, when an
anomalous traces is removed from the log during the anomaly detecting process, it is improbable that the same trace
occurs again in the log. Then, the model will be constructed without instances of the anomalous trace, which
will be modified after the amalgamation. However, if two or
more occurrences of an anomalous trace exist in the log, this
anomalous trace might not be selected as anomalous. We
can minimize this problem defining a small selection factor
(for example, less than 50%).
3.3 Experiments and Methodology
We are interested in discovering an anomalous trace in a log,
but an anomaly is difficult to be defined, mainly in business
processes where a complete definition of model is not well
101
known. Hence, in order to validate the presented method,
we developed three models and populated a log with all
possible traces that these suggested models can instance,
repeating occurrences. We then added some traces which
are not instances of the created models. Using this approach
we can guarantee that an occurrence of a different trace of
the generated possible traces is necessarily an anomalous
one.
Figures 5, 6 and 7 represent the models used. The first
example, Model 01, has seven activities with an ANDSplit/Join block and an OR-Split/Join block, but only six
activities can be instantiated. The second example, Model
02, has five activities, but only four activities can be instantiated. The third example, Model 03, has nine activities
and is a bigger model with nested blocks in it. The possible
traces of these models are represented in Table 1.
We got the possible traces presented in Table 1 and populate
three files with them, generating three logs for experiments.
We generated the files repeating the traces, since repetition
increases the chance of “normal” traces to be selected during
the composition of set R (see Figure 3). Then, three traces
that are not instances of Models 01, 02 and 03 were created
and added to the log files in a random position. Table 2
illustrates the anomalous traces created.
We divided the experiments in three groups. In the first
group we created three log files with possible traces of Table
1, repeating occurrences. Then, in the second group we have
got the log files of the first group and added the anomalous
traces of Table 2. Finally, on the third group we have got the
T = { abcd, acbd, abce }
a
b
a
and
d
c
Size = 4
b
abcd
acbd
and
Size = 6
d
Cost = 2
c
d
b
M
abce
a
and
and
or
or
e
c
Size = 9
Cost = 3
Figure 2: Mining example of a set of traces T.
L
R
a-c-b-d
a-b-c-d
...
a-b-c-d
a-d-e-c
a-b-c-e
...
Selecting
random
traces
a-b-c-d
a-c-b-d
a-b-c-d
a-c-b-e
a-b-d-c
a-b-c-e
...
a-b-c-d
a-c-b-d
a-d-e-c
a-b-c-e
...
D
Filtering
duplicated
traces
a-b-c-d
a-c-b-d
a-c-b-e
a-b-d-c
a-d-e-c
a-b-c-e
...
Figure 3: Preprocessing the log. Random choosing is repeated for each different trace.
log files of the second group and added the anomalous traces
of Table 2 again, generating files with repeated instances of
anomalous traces. The anomalous traces included in the log
files represent at most 4% of all traces. Therefore, we had for
each model: (i) a log with repeated occurrences of possible
traces, (ii) a log with repeated occurrences of possible traces
and one occurrence of each suggested anomalous trace, and
(iii) a log with repeated occurrences of possible traces and
two occurrences of each suggested anomalous trace. After
that, we applied the proposed method on the logs.
3). But, if trace T is not selected during composition of
set R, the remaining “normal” traces can still mine a model
which can generate T as an instance. Figure 8 illustrates
how a log without all the possible traces can mine a model
that will be equal to the model if mined with all possible
traces. For example, the first incomplete log of figure mines
an OR block when the two first traces are merged. Then,
the resulting model is merged with third trace, generating
an AND block, which is equal to the depicted model. On the
other hand, each pair of traces mine a block of the prescribed
model.
3.4 Results of experiments
Others experiments considered logs with anomalous traces,
as shown in Table 2. First we added only one occurrence of
each trace from Table 2 in the log (second group). Then, we
added two repeated occurrence of each anomalous trace in
the log (third group). We got excellent results when applied
the method with logs without repeated instances of anomalous traces, because we detected all anomalous occurrences
inserted in the log and none “normal” trace was detected
as anomalous. We call a “normal” detected trace as false
For each set (possible traces of Models 01, 02 and 03; Table
1) we created a log file with repeated instances in about 100
traces. We applied our method to these logs (first group)
and none anomalous trace was detected. This behavior
was expected because, even removing the first occurrence of
trace T from log L, the resulting set of traces (L = L − T )
has many instances of the same trace T . Therefore, trace T
still has a high chance to be selected during composition of
set R, composed of traces randomically chosen (see Figure
102
d
e
g
a
and
and
b
or
or
h
c
Figure 5: Model 01: a process model with seven activities.
c
a
and
d
and
or
or
b
e
Figure 6: Model 02: a process model with five activities.
L
:= Set of traces from log;
//Set of different traces
D
:= filter(L);
//Selection factor of traces
Factor := 50%;
//Set of anomalous traces, initially empty
A
:= [ ];
for each trace T of D do
L’ := L - T;
R
:= random(Factor, L’);
//Mining a model M1
M1 := mine(R);
CM1 := size(M1);
//Merging M1 and trace T
M2 := mine([M1, T]);
CM2 := size(M2);
if (CM2 - CM1) > 0 then
A := A + T;
end if;
end for;
Model 01
a,
a,
a,
a,
a,
a,
a,
a,
a,
a,
a,
a,
d,
b,
b,
d,
d,
b,
d,
b,
b,
d,
d,
b,
e, b,
d, e,
c, d,
b, e,
b, c,
d, c,
e, b,
d, e,
c, d,
b, e,
b, c,
d, c,
c,
c,
e,
c,
e,
e,
c,
c,
e,
c,
e,
e,
g
g
g
g
g
g
h
h
h
h
h
h
Model 02
a,
a,
a,
a,
a,
a,
b,
b,
b,
b,
b,
b,
e, c, d
e, d, c
c, d, e
c, e, d
d, e, c
d, c, e
e, c, d
e, d, c
c, d, e
c, e, d
d, e, c
d, c, e
Model 03
a, d, c, e, g, h
a, c, d, e, g, h
a, c, e, d, g, h
a, d, c, e, i
a, c, d, e, i
a, c, e, d, i
b, f, g, h
b, f, i
Table 1: Possible traces of models 01, 02 and 03.
Figure 4: A pseudocode for anomaly detection algorithm.
positive. However, even without any occurrences of false
positives in our experiments with complete and correct logs
(that is, logs with only the possible traces), we know that
false positives could occur even in these cases.
Other tests were made on the logs with repeated instances
of anomalous traces. In these experiments the results were
not as good as the tests made on the logs without repetition
of anomalous traces, because some anomalous traces were
not detected. We call these undetected anomalous traces as
103
false negatives and they occur because when T is removed
from log L, there is a 50% chance (which is the selection
factor used) that the same remaining anomalous trace T
in the log is selected. In the experiment with the third
group, our method did not report any false positive. Table
3 summarizes the experiments.
4. RELATED WORKS
The application of process mining techniques on event log
to audit security violations is present in [8]. In this work,
the event log is called audit trail and the process mining
technique is used to discovery a security pattern. Two logs
are used, one to audit and the other to apply the mining
process. This separation guarantees that the second log only
has traces with normal behavior. That is, the log contains
traces that are not considered security violations. Process
c
e
and
a
and
g
d
or
h
or
or
or
i
b
f
Figure 7: Model 03: a process model with nine activities.
a
c
and
and
b
a-b-c
a-b-d
b-a-c
b-a-d
or
or
d
a-b-c
a-b-d
b-a-d
a-b-c
b-a-c
b-a-d
a-b-c
a-b-d
b-a-c
OR (c or d)
AND (a and b)
AND (a and b)
OR (c or d)
OR (c or d)
AND (a and b)
Possible traces
Some incomplete logs
Figure 8: Mining a model with incomplete set of traces.
Model 01
Model 02
Model 03
a, b, c, g, h
a, b, c, d, h, g
a, g, h, b, c, d
a, b, c, d
a, c, d, b
b, c, e
a, c, e, g, h, i
a, c, d, i, g, h
a, b, c, f, i
ments that represents a causal relation in the process. This
causal relation is obtained from the process model mined
with the normal log. However, it is not clear how the causal
relation is generated. Again, we think that the main limitation of this approach is the use of a log only with normal
traces.
Table 2: Anomalous traces for models 01, 02 and 03.
mining is then applied, generating an acceptable model (security pattern) which will be used to detect abnormal traces
in the audit log.
During the detection, if the abnormal traces do not represent
a security violation, they are included in the mining log and
the security pattern evolves. However, comparing with our
work this is a clearing limitation, because a normal log is
known, and therefore a security pattern is not difficult to
find. In our work, we do not known if a log has abnormal
traces, so the inclusion cost method is used to select a trace
if it exists.
Another approach presented in [8] is the conformance test
applied to the audit log. It is similar to our S1 rule, but they
do not consider the whole process model, but some frag-
104
In [7] the author presents two interesting methods to compare the alignment of a prescribed process model and a discovered process model. The first approach is delta analysis
and the second is the conformance testing. The basic idea
of delta analysis is to measure how different a mined process
is from the descriptive one, while the conformance testing is
based on the analysis of an event log with a process model.
This work is not directly related to ours, because the author does not present a solution to detect an abnormal or
an anomalous trace in a log. However, he presents an interesting measure of process alignment, that could be an
alternative method to detect anomalies in a log similarly
inclusion cost.
The inclusion cost approach tries to determine the difference
of two processes based on vertices counting, that is, the number of activities and OR/AND blocks. While our approach
seems simple, it does not consider the existence of a descrip-
Experiment Model Repetition
1st
2nd
3rd
1st
2nd
3rd
1st
2nd
3rd
1st
2nd
3rd
1st
2nd
3rd
1st
2nd
3rd
01
No
01
Yes
02
No
02
Yes
03
No
03
Yes
False negatives
None
None
None
{a, b, c, g, h}, {a, b, c, d, h, g}
{a, b, c, g, h}, {a, b, c, d, h, g}, {a, g, h, b, c, d}
{a, g, h, b, c, d}
None
None
None
{a, c, d, b}, {b, c, e}
{b, c, e}
{a, c, d, b}
None
None
None
{a, c, e, g, h, i}
{a, c, e, g, h, i}, {a, c, d, i, g, h}
{a, c, e, g, h, i}
Table 3: Results of experiments. Logs with anomalous traces.
tive or prescribed model, so if a trace makes a big change
(model size) in a mined model (until now, unknown model),
this trace is possibly a anomalous one. Moreover, the mining method we used, rewriting rules, tries to rearrange a
known model to accommodate the new trace, generating a
new rewritten model.
5. CONCLUSION AND FUTURE WORKS
Process mining techniques are focused on discovering models to support process definitions and discovering a social
network inside an organization. These techniques can help
managers to understand how people work. Workflow trace
log is an interesting source of data that can be used to discover normal patterns. However, little attention has been
paid to the application of process mining techniques on discovery of anomalous traces. Among the applications of this
approach we can cite fraud detections and security violation
attempts.
In this work we have shown how workflow mining based on
rewriting rules can be used to detect anomalous traces. We
presented an algorithm that marks a trace as anomalous if
this trace, when merged with the model mined with rewriting rules, has a non-zero inclusion cost. The mined model
is based on a subset of randomly chosen traces. The inclusion cost is higher than zero if the merged trace forces a
modification on the original model.
The inclusion cost method demonstrated in this work proved
to be a good solution, mainly when applied on the log without repeated occurrences of anomalous traces. However,
an investigation on bigger models has to be done. That
is, models with many activities, loops and deeper nested
105
blocks. Another investigation is about a selection factor
smaller than 50%. In these case we expected to diminish
the occurrence of false negatives, but to present some false
positives.
Our experiments have not presented results with false positives, however we think that false positives occurrences do
not represent a big limitation. The human intervention is
always needed whose could correctly discard a false detection.
The proposed method still has limitations when applied to a
log with repeated instances of anomalous traces. In this case
it is possible that an anomalous trace can not be selected (a
false negative). However, assuming that anomalous traces
are uncommon, successive executions could select this trace,
and a union of results could correctly select all anomalous
occurrences. Another approach is to define a threshold cost,
so the selected anomalous traces will be the ones that have
an inclusion cost which is higher than this threshold.
6. REFERENCES
[1] D. K. Agarwal. An empirical bayes approach to detect
anomalies in dynamic multidimensional arrays. In
ICDM, pages 26–33, 2005.
[2] M.-A. Balderas, F. Berzal, J. C. Cubero, E. Eisman,
and N. Marn. Discovering hidden association rules. In
Proceedings of the KDD 2005 Workshop on Data
Mining Methods for Anomaly Detection, August 2005.
[3] A. de Medeiros, W. van der Aalst, and A. Weijters.
Workflow mining: Current status and future
directions. In R. Meersman, Z. Tari, and D. Schmidt,
editors, On The Move to Meaningful Internet Systems,
volume 2888 of LNCS, 2003.
[4] M. Hammori, J. Herbst, and N. Kleiner. Interactive
workflow mining - requirements, concepts and
implementation. Data Knowl. Eng., 56(1):41–63, 2006.
[5] L. Maruster, W. M. P. van der Aalst, T. Weijters,
A. van den Bosch, and W. Daelemans. Automated
discovery of workflow models from hospital data. In
Krse, B., Rijke, M., Schreiber, G., and Someren, M.,
editors, Proceedings of the 13th Belgium-Netherlands
Conference on Artificial Intelligence (BNAIC 2001),
pages 183–190, 2001.
[6] R. Sabhnani, D. Neill, and A. Moore. Detecting
anomalous patterns in pharmacy retail data. In
Proceedings of the KDD 2005 Workshop on Data
Mining Methods for Anomaly Detection, August 2005.
[7] W. M. P. van der Aalst. Business alignment: using
process mining as a tool for delta analysis and
conformance testing. Requir. Eng., 10(3):198–211,
2005.
[8] W. M. P. van der Aalst and A. K. A. de Medeiros.
Process mining and security: Detecting anomalous
process executions and checking process conformance.
Electr. Notes Theor. Comput. Sci., 121:3–21, 2005.
[9] W. M. P. van der Aalst, T. Weijters, and L. Maruster.
Workflow mining: Discovering process models from
event logs. IEEE Trans. Knowl. Data Eng.,
16(9):1128–1142, 2004.
[10] W. M. van der Aalst Minseok Song. Mining social
networks: Uncovering interaction patterns in business
processes. In J. Desel, B. Pernici, and M. Weske,
editors, Business Process Management: Second
International Conference, volume 3080 of Lecture
Notes in Computer Science, pages pp. 244 – 260, 2004.
[11] J. Wainer, K. Kim, and C. A. Ellis. A Workflow
Mining Method Through Model Rewriting. In H. Fuks,
S. Lukosch, and A. C. Salgado, editors, Groupware:
Design, Implementation, and Use: 11th International
Workshop, volume 3706, pages p. 184–19, Porto de
Galinhas, Brazil, Setembro 2005. CRIWG 2005.
106
Distribuição de tarefas em sistemas de workflow
por meio de seleção induzida de recursos
Autran Macêdo1 , Ilmério R. Silva1 , Rogério S. Silva2 , João N. Souza1
1
2
Faculdade de Computação
Programa de Pós-Graduação em Ciência da Computação
Universidade Federal de Uberlândia
{autran,
ilmerio}@facom.ufu.br
[email protected]
[email protected]
RESUMO
This work presents the use of Link Analysis in Workflow as
a new approach (as far as we know) for task scheduling. The
association between Link Analysis and Workflow is accomplished by considering that resources point to workflow tasks
that they are able to run. We present some implementations
of this approach and we compare them against some related
works. This comparison takes into account quantitative aspect (workflow execution time) and qualitative aspect (product or service delivered according to its requirements). The
experiments have been shown gains around 25% in terms of
quantitative aspect and results slightly superior in term of
qualitative aspect against similar works.
Análise de ligações (Link Analysis) é uma técnica para classificação de documentos (páginas) da web e HITS é um
algoritmo que implementa essa técnica. A classificação
é realizada considerando a “relevância” das páginas. A
relevância de uma página p é determinada pelos seus links
de entrada (outras páginas que apontam para p) e de saı́da
(páginas que são apontadas por p). Este artigo apresenta a
aplicação de análise de links/HITS no contexto de workflow.
A aplicação visa apresentar uma proposta de distribuição de
tarefas considerando que recursos apontam para tarefas, as
quais esses possuem competência para executá-las. São apresentadas algumas abordagens para essa aplicação, que são
comparadas com trabalhos correlatos, em termos quantitativos e qualitativos. O aspecto quantitativo está relacionado
com o tempo de execução do workflow. O aspecto qualitativo está relacionado com o resultado (produto ou serviço)
obtido com a execução do mesmo. Os experimentos realizados mostram que a utilização do HITS na distribuição
de tarefas em workflow representa ganhos da ordem de 25%
em termos quantitativos e resultados ligeiramente superiores
em termos qualitativos, quando comparados com trabalhos
similares.
Palavras-chave:
workflow, distribuição de tarefas, escalonamento, análise de
ligações, hits, hub, autoridade,
Keywords
workflow, task scheduling, link analysis, hits, hub, authority
1. INTRODUÇÃO
Distribuição de tarefas é uma atividade importante em sistemas de workflow. Essa importância está relacionada à
necessidade de se assegurar que uma dada tarefa seja executada pelo recurso correto no tempo devido. A distribuição
de tarefas é uma das atividades realizadas pelos sistemas de
gerência de workflow (SGWf). Em geral, os SGWfs adotam a polı́tica FIFO de distribuição associada a uma das
estratégias abaixo[14]:
ABSTRACT
Link Analysis is a technique for ranking web pages and HITS
is an algorithm that implements this technique. The ranking
is computed by considering the pages relevance. The relevance of page p is determined by its input links (other pages
that point to p) and output links (pages that p points to).
Push - o SGWf seleciona um recurso para executar uma
dada tarefa;
Pull - o SGWf apresenta uma dada tarefa a um conjunto
de recursos; um deles seleciona a tarefa para execução.
20 a 22 de Novembro de 2006
Natal, RN, Brasil
A estratégia Push é mais restritiva do que a Pull, mas há
maior controle sobre execução da tarefa, em termos qualitativos. Considerações inversas podem ser feitas para a estratégia Pull. Alguns trabalhos [11, 13, 15], no entanto,
© Sociedade Brasileira de Computação
Comissão Especial de Sistemas
Colaborativos
Anais do III Simpósio Brasileiro de Sistemas Colaborativos, pp. 107-117.
107
O foco desse trabalho é planejar uma possı́vel seqüência de
tarefas antes do processo ser instaciado. O foco do presente
trabalho está na distribuição de tarefas de processos já instanciados.
têm demonstrado que a adoção de polı́ticas de distribuição
mais sofisticadas promovem maior eficiência no sistema de
workflow como um todo.
Assim sendo, este trabalho apresenta a aplicação da
técnica de Análise de Ligações (Link Analysis [1]), cuja
origem remonta o problema de citações em Biblioteconomia. Essa técnica tem sido aplicada para classificar documentos (páginas) da web [2, 3, 12] conforme suas respectivas
relevâncias.
Kumar, et. al. [11] visualizam a distribuição de tarefas conforme perspectivas de qualidade e desempenho, tentando
criar um balanço entre elas. Nesse trabalho os autores
relacionam a segurança com a qualidade das associações,
considerando que as tarefas são atribuı́das sempre aos recursos altamente capacitados. São apresentados mecanismos
para estimar a aptidão e a taxa de ocupação dos recursos, a
carga de trabalho do sistema e a qualidade de execução dos
casos. Os mecanismos de distribuição propostos – baseados
na estratégia Pull – distribuem as tarefas apresentando-as
para os recursos mais qualificados de acordo com limiares
de adequação. Esses mecanismos possibilitam uma melhor
sintonia entre qualidade e desempenho.
A relevância de uma página é calculada levando-se em conta
as ligações de entrada (in-links) e de saı́da (out-links) de
cada página. Uma página que é apontada por várias outras possui ligações de entrada. Uma página que aponta
para várias outras possui ligações de saı́da. Esse relacionamento de apontamento (ligação) entre páginas web produz
um esquema de propagação em dois nı́veis denominado relacionamento mutuamente reforçado. Isto é, se uma
página é apontada por muitas outras ela é considerada uma
autoridade, e se uma página aponta para muitas autoridades ela é denominada de hub. A figura 1 ilustra esse
relacionamento.
O trabalho de Veloso e Macêdo [15] apresenta uma proposta
de distribução de tarefas tendo como base a aptidão dos recursos. Neste contexto são apresentados três mecanismos
baseados na estratégia Push para a distibuição de tarefas.
Esse trababalho apresentou resultados que demonstraram
ganhos consideráveis relativos ao tempo de execução e à
qualidade em comparação ao trabalho de Kumar et al [11].
Este trabalho utiliza os critérios de qualidade e desempenho
de Kumar, et. al., mas a abordagem baseada no HITS
o torna completamente diferente. Além disso, o trabalho
desses utilizam a estratégia Pull enquanto o presente trabalho utiliza a estratégia Push, com melhores resultados.
Quanto ao trabalho de Veloso e Macêdo, o presente trabalho implementa uma abordagem diferente (HITS) cujos
resultados são melhores do que esse.
3. O ALGORITMO HITS
O algoritmo HITS (Hypertext Induced Topic Selection)
[10] foi proposto originalmente para classificar páginas (documentos) da web. É possı́vel classificar os documentos
considerando-se o grau de autoridade. Isto é, no topo do
ranking estão os documentos com maiores graus de autoridade. Por outro lado, também é possı́vel classificar documentos considerando-se o grau de hub. Neste caso os documentos que estão no topo possuem ligações para os documentos com maior grau de autoridade.
Figura 1: Ligações de entrada e de saı́da entre
páginas da web.
O relacionamento mutuamente reforçado da Análise de
Ligações pode ser percebido em workflow com relação a tarefas e recursos. As tarefas “são apontadas” por recursos cujas
competências os habilitam à execução das mesmas. Por sua
vez, os recursos “apontam” para tarefas as quais eles têm
competência para executar. O algortimo HITS [10], que implementa a técnica de Análise de Ligações, inspira este trabalho para distribuir tarefas em ambientes de workflow. Até
onde se estendeu esta pesquisa, trata-se de uma abordagem
inédita.
2.
O HITS opera sobre um grafo dirigido G = (N, AR), que
representa a ligação (in-links e out-links) entre os documentos. N corresponde ao conjunto de vértices do grafo (documentos) e AR o conjunto de arcos (ligações). O algoritmo
opera sobre dois vetores: H[n] corresponde ao grau de hub
do documento n ∈ N ; e A[n] corresponde ao grau de autoridade do documento n ∈ N . A figura 2 ilustra o algoritmo
HITS proposto originalmente.
TRABALHOS RELACIONADOS
Tramontina [13] propõe uma técnica baseada em algoritmos
genéticos (Guess and Solve) para tratar problemas de incerteza quanto (1) aos tempos de execução de cada atividade
(tarefa) e (2) às rotas de execução de cada caso (processo).
Inicialmente x recebe o número de elementos de N (linha 1)
e cada posição dos vetores H e A é iniciada com 1 (linhas
108
1
2
3
4
5
x ←| N |
H[1..x] ← 1
A[1..x] ← 1
enquanto H e A não convergirem
∀n ∈ N
H[m]
A[n] =
6
∀n ∈ N
H[n] =
(m,n)∈AR
A[m]
(n,m)∈AR
7 Normalize H e A
8 fim enquanto
Recursos
(hubs)
Figura 2: Algoritmo HITS
Tarefas
(autoridades)
Figura 3: Grafo de associação de recursos à tarefas.
2–3). Em seguida, em cada iteração do laço (linhas 4–8),
o grau de autoridade (linha 5) e de hub (linha 6) são calculados. A[n] é igual à soma dos graus de hub de todas os
documentos que apontam para n. H[n] é igual à soma dos
graus de autoridade de todos os documentos para os quais n
aponta. Cada iteração termina com uma normalização, tal
que xi=1 H[i] = 1 e xi=1 A[i] = 1. O laço termina quando
H e A convergirem, isto é quando os valores desses vetores
não tiverem mudança significativa entre a iteração corrente
e a imediatamente anterior. Kleinberg [10] prova essa convergência e experimentalmente mostra que a mesma ocorre
em torno da vigésima iteração.
4.
Tabela 1: Mapeamento entre conceitos de Workflow
e HITS.
HITS
Hub
Autoridade
in-links
APLICAÇÃO
WORKFLOW
DO
HITS
out-links
EM
As ligações (in-links e out-links), no domı́nio do HITS, ocorrem entre objetos do mesmo tipo: documento (página) da
web. As ligações em workflow ocorrem entre objetos de
tipos diferentes: recurso e tarefa. Assim sendo, foi adotado o seguinte critério para as ligações: as tarefas possuem
in-links e os recursos possuem out-links. Deste modo, os
recursos apontam para as tarefas as quais esses possuem
competência para executá-las. Conseqüentemente, as tarefas são apontadas pelos recursos que têm competência para
executá-las. Assim sendo, os recursos possuem graus de hub
e as tarefas graus de autoridade. A figura 3 ilustra essa
relação.
Workflow
Recurso
Tarefa
Tarefa é apontada por
recursos com competência
para executá-la
Recurso aponta para as
tarefas as quais tem competência
para executá-las
e autoridade.
O algoritmo AbsAllocHITS opera sobre um grafo dirigido
G = (N, AR), que representa a ligação entre os recursos e
as tarefas. N corresponde ao conjunto de vértices do grafo,
composto pelo conjunto de recursos R e de tarefas T , portanto, N = R ∪ T . AR corresponde ao conjunto de arcos
(r, t), tal que r ∈ R e t ∈ T . O algoritmo opera sobre dois
vetores H e A que representam, respectivamente, os graus
de hub e de autoridade.
O AbsAllocHITS insere o conceito de “valor de alocação
absoluta” (VAB) [11] que é calculado a partir de alguns
parâmetros relacionados a recursos e tarefas:
O relacionamento mutuamente reforçado do HITS avalia um
hub como “bom” se este aponta para “boas” autoridades.
Por outro lado, uma “boa” autoridade é aquela que é apontada por “bons” hubs. Paralelamente, em workflow, “bons”
hubs são os recursos que têm competência para executar
“boas” autoridades, e “boas” autoridades são as tarefas que
podem ser executadas por “bons” hubs. Uma sı́ntese do mapeamento entre HITS e workflow é apresentada na tabela 1.
disponibilidade - grau de ocupação de um recurso;
adequação (r, t) - grau que indica quão adequado é o recurso r para executar a tarefa t;
urgência (t) - grau que indica a urgência da tarefa t;
conformidade (r, t) - grau que indica a violação de regras
quando o recurso r executa t.
4.1 Algoritmo AbsAllocHITS
Seguindo a linha dos algoritmos propostos por [1, 4, 5, 6, 8,
7, 9, 10, 17], AbsAllocHITS é um algoritmo para a classificação de recursos e tarefas que utiliza os conceitos de hub
O VAB é utilizado para dar peso aos arcos (r, t), conforme
109
proposta similar de uma versão do HITS com peso [19]. O
algoritmo AbsAllocHITS utiliza a função f vab : R × T →
[0, 1], tal que f vab(r, t) retorna o VAB de r em relação a t.
A figura 4 ilustra o algoritmo AbsAllocHITS proposto.
1.
2.
3.
4.
5.
6.
∀r ∈ R
H[r] =
Tarefa C
Papel 2
Papel 3
O processo de negócio adotado neste cenário possui 3 tarefas
em sequência (Tarefa A, Tarefa B e Tarefa C). Uma tarefa
é uma unidade de trabalho que pode ser realizada de forma
manual, semi-automática ou automática. As tarefas estão
associadas respectivemente aos papéis (Papel 1, Papel 2 e
Papel 3). Um papel é um modelo abstrato que reflete os aspectos do sistema, e que agrupa recursos afins. Um recurso
é um participante concreto de um sistema de workflow, ele
é incumbido de executar as tarefas. A cada papel estão associados um conjunto de recursos (cinco neste experimento,
vide tabela 3). Desta forma, um recurso estará apto a executar as tarefas que estão associadas aos papéis os quais ele
pertence.
f vab(r, t).A[t]
∀t|(r,t)∈AR
8.
Normalize H e A
9. fim enquanto
10. Classifique H e A em ordem crescente
Figura 4: Algoritmo AbsAllocHITS
O tempo da tarefa é o tempo definido para que a tarefa seja
executada. Já o tempo do recurso é o tempo que o recurso
demanda para executar uma determinada tarefa. As tarefas
foram definidas com um tempo variando em torno de um
padrão de execução de 10ut(unidades de tempo). Porém
para que o ambiente de simulação se aproximasse mais da
realidade, foram gerados tempos distintos para os recursos.
No algoritmo AbsAllocHITS, inicialmente x recebe o
número de elementos de R (linha 1) e y recebe o número
de elementos de T (linha 2). Cada posição dos vetores H
e A é iniciada com 1 (linhas 2–3). Em seguida, em cada
iteração do laço (linhas 5–9), o grau de autoridade (linha
5) e de hub (linha 6) são calculados. A[t] é igual à soma
do produto entre f vab(r, t) e H[r], para todo arco (r, t).
H[r] é igual à soma do produto entre f vab(r, t) e A[t], para
todo arco (r, t). O laço termina quando H e A convergirem,
isto é quando os valores desses vetores não tiverem mudança
significativa entre a iteração corrente e a imediatamente anterior. Ao final da execução, os vetores de hub e autoridade
são classificados em ordem crescente.
Os experimentos realizados consistiram em gerar automaticamente várias instâncias do processo de negócio apresentado. Cada instância de execução do processo é gerada levando em consideração diferentes cargas de trabalho.
A carga de trabalho (workload ) é considerado um aspecto
crucial no desempenho de um sistema de workflow [13].
Esta é definida como o número de tarefas que estão prontas
para serem executadas no sistema. Foram definidos alguns
parâmetros que afetam diretamente a carga de trabalho das
instâncias para evitar que os experimentos se tornassem homogêneos (Veja tabela 2). A diversificação dos tempos das
tarefas e dos tempos dos recursos tornam o ambiente de experimentação mais heterogêneo.
A ordenação é em ordem crescente porque se quer deixar
a alocação dos “bons” hubs por último. “Bons” hubs são
os recursos versáteis, isto é aqueles que têm competência
para executar diferentes tarefas. Deixando-os por último,
aumenta-se a chance de se encontrar um recurso apropriado
para uma tarefa.
5.
Tarefa B
Papel 1
Figura 5: Processo de negócio utilizado nos experimentos.
x ←| R |
y ←| T |
H[1..x] ← 1
A[1..y] ← 1
enquanto H e A não convergirem
∀t ∈ T
A[t] =
f vab(r, t).H[r]
∀r|(r,t)∈AR
7.
Tarefa A
Tabela 2: Parâmetros de Simulação
baixa média alta
Carga média de sistema
0,2
0,6
1,0
Variabilidade de tarefas
0,2
0,8
1,4
Variabilidade de recursos
0,2
0,8
1,4
EXPERIMENTOS
Nesta seção são apresentados o cenário da proposta, a estratégia para realização dos experimentos, e o ambiente de
simulação adotado.
5.1 Cenário
O parâmetro “carga média de sistema” mede a proporção
com que as tarefas ficam prontas para serem executadas.
Ele determina o fluxo de novas tarefas que chegam ao sistema. Por exemplo, uma carga média de sistema com patamar 0, 2 indica que somente 20% da capacidade do sistema
será utilizada. A diversificação da carga de trabalho das
instâncias de um processo workflow é obtido a partir de uma
Um cenário de workflow foi definido com a intenção de
prover meios para a comparação deste trabalho com os trabalhos de [11, 13, 15]. Para garantir a conformidade dos
experimentos de [11, 15], reproduziu-se o mesmo cenário
utilizado. As definições e os parâmetros adotados também
seguem a linha destes trabalhos. Este cenário é apresentado
na figura 5.
110
distribuição de Poisson com λ = (l.n)/tm, onde l é a carga
média de sistema, n é o numero de recursos e tm é o tempo
médio das tarefas.
Tabela 3: Mapeamento papel x recurso e adequação
recurso x tarefa
O parâmetro variabilidade de tarefas determina como será
a geração da amostra populacional diversificada de tarefas. As tarefas geradas terão um tempo de processamento
variando em torno do valor padrão(10ut). Para a tarefa
tj , a média de tempo de processamento pj é gerada com
base em uma distribuição normal com média tm (tempo
médio das tarefas) e desvio padrão varTarefa. Assim, pj ≈
N (tm, (tm×varT aref a)2). Por exemplo, considerando uma
variabilidade de tarefas 0, 2, teremos um tempo de processamento variando no intervalo [8ut, 12ut].
Papéis
papel1
papel2
A variabilidade dos recursos indica o percentual de variação
dos tempos que os recursos consomem para executar as respectivas tarefas. O cálculo do tempo de processamento Pij
de uma tarefa ti por um recurso rj , ocorre de maneira similar à variação de tarefas. Pij é calculado através de uma
distribuição normal onde pij ≈ N (pj , (pj × varRecurso)2 ).
Por exemplo, caso uma tarefa tenha seu tempo de execução
definido como 10ut e a variabilidade de recursos seja 0, 2, significa que o recurso executará aquela tarefa com um tempo
que irá variar no intervalo [8ut, 12ut].
papel3
Recursos
r1
r2
r3
r4
r5
r6
r7
r8
r9
r10
r11
r12
r13
r14
r15
Tarefa A
1,0
0,9
0,8
0,8
0,8
0
0
0
0
0
0
0
0
0
0
Adequação
Tarefa B Tarefa C
0
0
0
0
0
0
0
0
0
0
0,8
0
0,8
0
0,6
0
1,0
0
0,7
0
0
0,4
0
1,0
0
0,9
0
0,8
0
0,5
5.2 Estratégias para a distribuição de tarefas
Sistemas de workflow realizam a distribuição de tarefas
através dos mecanismos Pull e Push [13]. Estas estratégias
apresentam resultados divergentes em relação a qualidade e
tempo de execução do workflow. Enquanto a estratégia Push
alcança altos nı́veis de qualidade na execução do workflow, a
Pull obtém os menores intervalos de tempo de execução. Por
exemplo, um sistema de workflow que adote o mecanismo
Push de distribuição, devido a caracterı́stica de entregar a
tarefa somente ao recurso mais competente para executá-la,
alcança altos ı́ndices de qualidade em prejuı́zo do tempo de
execução, em contrapartida, o mecanismo Pull apresenta as
tarefas ao conjunto dos recursos, e um destes recursos decide por executá-la, desta forma a distribuição é realizada
em intervalos de tempo menores, porém com baixos nı́veis
de qualidade.
Conforme os parâmetros apresentados na tabela 2, o sistema
tem a capacidade de gerar 540 condições experimentais, ou
seja, para cada uma das 27 combinações possı́veis da tabela
são geradas aletoriamente 20 instâncias de problemas. Cada
estratégia de distribuição será avaliada sob estas condições.
Outros parâmetros para a realização da simulação são a
disponibilidade de cada recurso, a urgência de uma tarefa,
a conformidade de um recurso para com uma tarefa, e a
adequação de um recurso para executar uma determinada
tarefa. Em todos os experimentos, os valores de disponibilidade, urgência, e conformidade seguem [11], onde são
fixados em 1,0, 0,8 e 1,0, respectivamente. Os valores de adequação são apresentados na tabela 3. Esta tabela mostra
também o mapeamento papel x tarefa, associando os recursos pertencentes aos papéis às suas respectivas tarefas. Um
pequeno contingente de recursos (cinco recursos associados
a cada papel) foi adotado para os experimentos. É comum
em uma organização que um número pequeno de recuarsos
seja atribuı́do à cada papel, sendo estes suficientes para a
simulação de um cenário de workflow.
A adoção de somente um dos dois mecanismos para a distribuição não é uma boa estratégia [11, 13, 15]. O sistema
de workflow que adota o mecanismo Push, pode enviar uma
tarefa para um recurso que não está disponı́vel, assim a
tarefa pode permanecer no sistema até que o determinado
recurso esteja novamente disponı́vel, acarretando em filas
de espera. Por outro lado, um sistema que adote somente
o mecanismo Pull pode ter as tarefas executadas por recursos que não são os mais aptos para tal, degradando assim a
qualidade de execução das tarefas.
A adequação é representada na tabela pela intersecção
entre um recurso e uma tarefa (colunas Tarefa A,
Tarefa B, Tarefa C) e indica o quão adequado um recurso é para executar uma determinada tarefa. Os valores de adequação podem estar em um intervalo [0, 1] e
foram atribuı́dos aleatoriamente com valores do conjunto
{0, 4, 0, 5, 0, 6, 0, 7, 0, 8, 0, 9, 1, 0}.
Outros mecanismos de distribuição foram concebidos no intuito de tentar criar um balanço entre qualidade e desempenho. Estes mecanismos foram definidos tendo como base
as estratégias Push e Pull.
São considerados para o nosso experimento 12 estratégias
de distribuição de tarefas. Entre as estratégias adotadas
111
estão inseridas as estratégias Push e Pull, as estratégias
Receptive, Typical e Selective [11], as estratégias Sel-push,
Sel-push-10 e Sel-push-ft [15] e quatro novas estratégias
propostas Full-AbsAllocHITS, Random-AbsAllocHITS,
Selective-AbsAllocHITS e Dynamic-AbsAllocHITS.
Consideramos que as tarefas mais restritivas e os recursos mais especializados trariam maior dificuldade para associação, então estas associações devem ser realizadas logo
de inı́cio. À medida que os recursos vão sendo alocados,
restam no ranking recursos mais versáteis, ou seja, recursos
aptos a executar uma maior quantidade de tarefas distintas. Deste mesmo ponto de vista, a medida que as tarefas
vão sendo executadas, restam tarefas menos restritivas, ou
seja, tarefas que podem ser executadas por uma quantidade
maior de recursos.
Seja R o conjunto dos recusos, tal que, R = {r1 , r2 , ..., rn },
e T o conjunto das tarefas, tal que, T = {t1 , t2 , ..., tm }, os
mecanismos definidos em conformidade com as estratégias
Push, Pull, Receptive, Typical, Selective, Sel-push, Sel-push10 e Sel-push-ft realizam a distribuição da seguinte forma:
A distribuição de tarefas é realizada através de um algoritmo
de distribuição. Este algoritmo obtém um conjunto de tarefas do sistema de workflow, associa os recursos do sistema às
tarefas pertinentes e aplica a classificação por meio do algoritmo AbsAllocHITS apresentado na seção anterior. Após a
classificação é selecionada uma tarefa e alocado um recurso
para realização da tarefa. A seleção de tarefas e alocação de
recursos prossegue iterativamente até que todas as tarefas
sejam alocadas.
• Push: Um recurso r é escolhido pelo sistema para executar uma tarefa t;
• Pull : Uma tarefa t é visı́vel a todos os recursos r ∈
R ⊆ R tal que R é o subconjunto de recursos qualificados a executar t;
• Receptive: Uma tarefa t é visı́vel somente aos recursos
r que possuirem fator de alocação absoluta f vab(t, r)
acima de um limiar 0, 5. Este limiar indica que os
recursos são receptivos;
Variamos o algoritmo de montagem do grafo de entrada e a
forma de seleção das tarefas para alocação, resultando em
quatro estratégias que são descritas a seguir.
• Typical : Uma tarefa t é visı́vel somente aos recursos
r que possuirem fator de alocação absoluta f vab(t, r)
acima de um limiar 0, 4. Este limiar indica que os
recursos são tı́picos;
Full-AbsAllocHITS
A distribuição de tarefas através da estratégia FullAbsAllocHITS é realizada conforme apresentado na figura
6 e descrita a seguir.
• Selective: Uma tarefa t é visı́vel somente aos recursos
r que possuirem fator de alocação absoluta f vab(t, r)
acima de um limiar 0, 6. Este limiar indica que os
recursos são seletivos;
...
• Sel-push: Uma tarefa t é entregue ao recurso r mais
apto, se r estiver disponı́vel. Caso contrário, um recurso disponı́vel com aptidão mais próxima de r é selecionado.
...
a1
a2
...
an
h1
h2
...
hm
Full-AbsAllocHITS
• Sel-push-10 : Uma tarefa t é entregue ao recurso mais
disponı́vel entre o conjunto de recursos em uma vizinhança de 10% do valor f vab(t, r), onde r é o recurso
mais apto.
Figura 6: Estratégia Full-AbsAllocHITS de distribuição de tarefas.
Todas as tarefas coletadas pelo sistema e os recursos associados a pelo menos uma dessas tarefas formam o grafo de
entrada para o algoritmo AbsAllocHITS. Este algoritmo gera
então o raking de tarefas, em ordem crescente de seu grau
de hub e o ranking de recursos, em ordem crescente de seu
grau de autoridade.
• Sel-push-ft: Uma tarefa t é entregue a um recurso r
de forma semelhante à estratégia Sel-push, entretanto
considera a disponibilidade e o tempo restante para
concluir a tarefa atual.
5.3 Estratégias baseadas no algoritmo HITS
A tarefa ti , no topo do ranking é selecionada e removida do
ranking. Então, o ranking de recursos é percorrido à partir do topo até que seja encontrado um recurso que esteja
associados à tarefa ti . Sendo rj este recurso, a tarefa ti é
alocada ao recurso rj . A distribuição prossegue iterativamente com a seleção de novo par (tarefa, recurso) até que
todas as tarefas sejam alocadas.
Quatro estratégias para distribuição de tarefas são propostas
neste trabalho, todas tem como princı́pio a classificação dos
recursos e tarefas através do algoritmo AbsAllocHITS que
gera duas filas, a fila de recursos(hubs) e a fila de tarefas(autoridades). Essas filas estão ordenadas em ordem crescente dos valores de hub e autoridade e aqui são chamadas
de rankings. Os primeiros elementos destes rankings são
respectivamente os recursos mais especializados e as tarefas
mais restritivas.
112
A figura 9 ilustra o funcionamento do simulador Lambari. Inicialmente, o Lambari analisa o arquivo XPDL1 que
contém dados relativos ao processo (fluxo de tarefas), aos
recursos e às tarefas. O Lambari é capaz de simular todas
as estratégias ou uma estratégia especı́fica. Ao final da simulação, o Lambari apresenta o grafo de seqüenciamento de
tarefas, a listagem correspondente a esse grafo, e gráficos
comparativos entre as estratégias simuladas.
Random-AbsAllocHITS
Nesta estratégia, o grafo de entrada para o algoritmo AbsAllocHITS é montado da mesma maneira que na estratéria Full-AbsAllocHITS. Entretanto, após a classificação,
a seleção de uma tarefa ignora a ordem no ranking de tarefas e uma tarefa ti é escolhida aleatoriamente. As demais
etapas são iguais à estratégia Full-AbsAllocHITS.
Selective-AbsAllocHITS
Nesta estratégia, o grafo de entrada para o algoritmo AbsAllocHITS contêm apenas recursos com fator de alocação absoluta maior que o limiar de 0, 6 (absAlloc(taref a, recurso) >
0, 6) (veja figura 7). Recursos com essa caracterı́stica são
chamados recursos seletivos em [11]. As demais etapas são
iguais à estratégia Full-AbsAllocHITS.
...
...
a1
a2
h1
h2
0,6
AbsAlloc
...
...
XPDL
Lambari
an
hm
Figura 9: Funcionamento do Lambari-SWTE
Selective-AbsAllocHITS
A figura 10 mostra o grafo de seqüenciamento de tarefas
oferecido pelo Lambari. O grafo em questão corresponde à
simulação de quatro instâncias do processo da figura 5. Os
vértices do grafo correspondem a tarefas. Os vértices start
e end são tarefas fictı́cias que representam o inı́cio e o fim
de todas as instâncias. Os arcos horizontais ligam tarefas
de uma mesma instância. Assim, a seqüência de instâncias
de tarefa Start, A.1, B.1, C.1, End corresponde à execução
da instância 1 do processo citado. Os arcos verticais indicam que as tarefas ligadas por estas são executadas por
um mesmo recurso (que não é apresentado explicitamente no
grafo). Deste modo, as instâncias de tarefa A.2 e A.4 são
executadas pelo mesmo recurso, assim como as instâncias
B.1 e B.4, e C.3 e C.4. Finalmente, os arcos estão rotulados com o tempo de execução da tarefa. A tarefa Start, por
exemplo, demanda zero unidade de tempo, por sua vez, a
tarefa A.2 demanda 12 (doze) unidades de tempo.
Figura 7: Estratégia Selective-AbsAllocHITS de distribuição de tarefas.
Dynamic-AbsAllocHITS
Nesta estratégia, procura-se inicialmente, montar o grafo
de entrada para o algoritmo AbsAllocHITS com recursos
com fator de alocação absoluta maior que o limiar de 0, 6
(absAlloc(taref a, recurso) > 0, 6). Entretanto, caso não exista recurso com fator de alocação absoluta que se enquadre
neste limiar, o limiar é decrementado em −0, 1, repetindo-se
o decremento até que seja encontrado pelo menos um recurso com fator de associação à tarefa superior ao novo limiar(veja figura 8). As demais etapas são iguais à estratégia
Full-AbsAllocHITS.
...
...
0,6
0,5
0,4
0,1
AbsAlloc
Limiar Dinâmico
a1
a2
...
h1
h2
...
an
hm
Dynamic-AbsAllocHITS
Figura 8: Estratégia Dynamic-AbsAllocHITS de distribuição de tarefas.
Figura 10: Grafo de sequenciamento.
5.4 Ambiente de Experimentação
As estratégias de implementação do AbsAllocHITS foram
simuladas pela ferramenta Lambari-SWTE (Simple Workflow Test Environment) [16]. O Lambari é um simulador de
workflow, implementado em Java, que dá apoio à execução
de vários processos simultâneos.
6. RESULTADOS
As estratégias Full-AbsAllocHITS, Random-AbsAllocHITS,
Selective-AbsAllocHITS e Dynamic-AbsAllocHITS são com1
113
XML Process Definition Language [18]
paradas entre si e contra as estratégias Push e Pull, Receptive e Selective [11], e Sel-push-10 [15].
Qualidade da Distribuicao
0.92
0.9
Foram realizados experimentos para todas estratégias acima
citadas. São apresentadas análises comparando as estratégias propostas neste trabalho com as da literatura. A
primeira análise compara as estratégias baseadas no algoritmo AbsAllocHITS entre si. A segunda compara as estratégias Push, Pull e Selective-AbsAllocHITS. A terceira,
compara as estratégias Selective, Sel-Push-10 e SelectiveAbsAllocHITS. Finalmente, é apresentada uma comparação
global incluindo todas as estratégias acima.
Qualidade
0.88
0.86
0.84
0.82
0.8
0.78
Os gráficos foram traçados a partir da média obtida das
20 simulações realizadas em cada estratégia. Dois tipos de
gráficos são apresentados: tempo de execução e qualidade.
Os gráficos de tempo comparam carga de trabalho do workflow versus tempo de execução. Os gráficos de qualidade
comparam carga de trabalho de workflow versus ı́ndice de
qualidade. A carga de trabalho apresentada no gráfico corresponde àquela apresentada na tabela 2.
0.2,0.2 0.2,0.8 0.2,1.4 0.8,0.2 0.8,0.8 0.8,1.4 1.4,0.2 1.4,0.8 1.4,1.4
Variacoes de carga (Tarefas/Recursos)
Full-AbsAllocHITS
Random-AbsAllocHITS
Selective-AbsAllocHITS
Dynamic-AbsAllocHITS
Figura 12: Gráfico “Qualidade da distribuição” para
as estratégias baseadas no algoritmo HITS.
6.2 Comparação dos resultados das estratégias Pull,
Push e SelectiveAbsAllocHITS
6.1 Análise das estratégias baseadas no algoritmo AbsAllocHITS
As estratégias Push e Pull representam, respectivamente,
limiares de tempo e qualidade. A literatura considera que
a estratégia Push representa um limiar ideal de qualidade,
enquanto a estratégia Pull como um limiar ideal de tempo.
A comparação aqui apresentada tem o objetivo de situar a
estratégia Selective-AbsAllocHITS entre esses limiares. Os
gráficos das figuras 13 e 14 apresentam essa comparação.
Os gráficos das figuras 11 e 12 apresentam a comparação
entre as estratégias propostas neste trabalho. Percebe-se
que a estratégia Full-AbsAllocHITS é a que demanda menor
tempo de execução. Contudo, esta estratégia não apresenta
um bom desempenho em termos de qualidade.
A estratégia que apresenta o melhor compromisso entre
tempo e qualidade é a Selective-AbsAllocHITS. Assim sendo,
esta estratégia foi selecionada como representante desta proposta para ser comparada com as estratégias representantes
dos trabalhos relacionados.
Tempo de execucao
1600
Tempo decorrido (ut)
1400
Tempo de execucao
1600
Tempo decorrido (ut)
1400
1200
1200
1000
800
600
400
1000
200
800
0
600
0.2,0.2 0.2,0.8 0.2,1.4 0.8,0.2 0.8,0.8 0.8,1.4 1.4,0.2 1.4,0.8 1.4,1.4
Variacoes de carga (Tarefas/Recursos)
400
Pull
Push
200
0
Figura 13: Gráfico “Tempo de execução” para as
estratégias Push, Pull e Selective-AbsAllocHITS.
0.2,0.2 0.2,0.8 0.2,1.4 0.8,0.2 0.8,0.8 0.8,1.4 1.4,0.2 1.4,0.8 1.4,1.4
Variacoes de carga (Tarefas/Recursos)
Full-AbsAllocHITS
Random-AbsAllocHITS
Selective-AbsAllocHITS
Full-AbsAllocHITS
Selective-AbsAllocHITS
Dynamic-AbsAllocHITS
Observa-se que a estratégia Selective-AbsAllocHITS apresenta um desempenho acentuadamente superior em termos
de tempo de execução quando comparada à estratégia Push
e apresenta um desempenho próximo ao da estratégia Pull.
Figura 11: Gráfico “Tempo de execução” para as
estratégias baseadas no algoritmo HITS.
114
Em termos de qualidade pode-se perceber que a estratégia
Selective-AbsAllocHITS se coloca entre os limiares estabelecidos pelas estratégias Push e Pull.
Qualidade da Distribuicao
0.91
0.9
Qualidade
Qualidade da Distribuicao
1
0.89
0.88
Qualidade
0.95
0.87
0.9
0.86
0.85
0.2,0.2 0.2,0.8 0.2,1.4 0.8,0.2 0.8,0.8 0.8,1.4 1.4,0.2 1.4,0.8 1.4,1.4
Variacoes de carga (Tarefas/Recursos)
Selective
Sel-Push
0.8
0.2,0.2 0.2,0.8 0.2,1.4 0.8,0.2 0.8,0.8 0.8,1.4 1.4,0.2 1.4,0.8 1.4,1.4
Variacoes de carga (Tarefas/Recursos)
Pull
Push
Selective-AbsAllocHITS
Figura 16: Gráfico “Qualidade da distribuição”
para as estratégias Selective, Sel-Push e SelectiveAbsAllocHITS.
Selective-AbsAllocHITS
Figura 14: Gráfico “Qualidade da distribuição” para
as estratégias Push, Pull e Selective-AbsAllocHITS.
mostra uma vantagem da estratégia Selective-AbsAllocHITS
de aproximadamente 11% sobre a estratégia Sel-Push, no
que se refere a tempo de execução. Por outro lado,
a Selective-AbsAllocHITS apresenta desempenho superior
relação à estratégia Selective de aproxiamadamente 25%.
6.3 Comparação dos resultados das estratégias Selective, Sel-Push e SelectiveAbsAllocHITS
A qualidade da execução da estratégia SelectiveAbsAllocHITS alcançou patamares de aproximadamente
1.5% acima dos resultados dos mecanismos Selective e
Sel-Push. Desta forma, pode-se concluir que a estratégia
Selective-AbsAllocHITS mantém um maior compromisso
entre desempenho e qualidade na execução de instâncias de
workflow quando comparada a essas estratégias.
Uma outra comparação é realizada entre a SelectiveAbsAllocHITS e as estratégias Selective, e Sel-Push, neste
caso, o principal objetivo é de posicionar a estratégia
Selective-AbsAllocHITS entre as melhores estratégias de distribuição apresentadas em trabalhos similares.
Tempo de execucao
6.4 Análise global do tempo de processamento
e da qualidade da distribuição
1600
Tempo decorrido (ut)
1400
As figuras 17 e 18 demonstram os resultados obtidos por
todas as simulações executadas.
1200
1000
O gráfico de tempo de execução apresentado na figura 17
mostra que a estratégia Full-AbsAllocHITS obteve o melhor
desempenho neste quesito, sendo até melhor que a estratégia
Pull citada como limite inferior em [11]. Ainda na figura
17 observa-se que as estratégias Pull, Receptive e SelectiveAbsAllocHITS, nesta ordem, são as que apresentam menores
ı́ndices de tempo para as simulações realizadas. Em contrapartida, o gráfico de qualidade da figura 18 indica que as
estratégias Push, Selective-AbsAllocHITS, Selective e SelPush-10, nesta ordem, obtiveram os melhores patamares de
qualidade do conjunto das estratégias testadas.
800
600
400
200
0
0.2,0.2 0.2,0.8 0.2,1.4 0.8,0.2 0.8,0.8 0.8,1.4 1.4,0.2 1.4,0.8 1.4,1.4
Variacoes de carga (Tarefas/Recursos)
Selective
Sel-Push
Selective-AbsAllocHITS
Figura 15: Gráfico “Tempo de execução” para
as estratégias Selective, Sel-Push e SelectiveAbsAllocHITS.
7. CONCLUSÃO
O presente trabalho associou os conceitos da análise de
ligações (Link Analysis) a conceitos de distribuição de tarefas em sistemas de workflow. Pode-se destacar que a es-
Os gráficos 15 e 16 comparam as estratégias Selective,
Sel-Push e Selective-AbsAllocHITS. O gráfico da figura 15
115
Tempo de execucao
1600
Tempo decorrido (ut)
1400
1200
1000
800
600
400
200
0
0.2,0.2 0.2,0.8 0.2,1.4 0.8,0.2 0.8,0.8 0.8,1.4 1.4,0.2 1.4,0.8 1.4,1.4
Variacoes de carga (Tarefas/Recursos)
Full-AbsAllocHITS
Random-AbsAllocHITS
Selective-AbsAllocHITS
Dynamic-AbsAllocHITS
Push
Pull
Receptive
Selective
Sel-Push-10
Figura 17: Gráfico “Tempo de execução”.
[3] P. Calado, B. Ribeiro-Neto, N. Ziviani, E. Moura, and
I. Silva. Local versus global link information in the
web. ACM Transactions on Information Systems,
21(1):42–63, january 2003.
tratégia Full-AbsAllocHITS obteve tempos de execução inferiores entre aquelas comparadas neste trabalho.
Além disso, o mecanismo Selective-AbsAllocHITS alcançou
o melhor balanceamento entre qualidade e tempo de execução, quando comparado com os trabalhos relacionados
aqui apresentados. Os resultados obtidos com os experimentos mostraram que esta abordagem obteve ganhos de
desempenho de 11% em relação aos resultados apresentados
por Veloso e Macêdo, e de 25% em relação aos resultados de
Kummar et al.
8.
[4] S. Chakrabarti, B. E. Dom, S. R. Kumar,
P. Raghavan, S. Rajagopalan, A. Tomkins, D. Gibson,
and J. Kleinberg. Mining the web’s link structure.
Computer, 32(8):60–67, 1999.
[5] C. Ding, X. He, P. Husbands, H. Zha, and H. D.
Simon. Pagerank, hits and a unified framework for link
analysis. In SIGIR ’02: Proceedings of the 25th annual
international ACM SIGIR conference on Research and
development in information retrieval, pages 353–354,
New York, NY, USA, 2002. ACM Press.
AGRADECIMENTOS
Os dois primeiros autores agradecem à FAPEMIG
(Fundação de Apoio à Pesquisa do Estado de Minas Gerais)
o apoio financeiro parcial a este trabalho no contexto dos
projetos EDT 312/05 e EDT 322/05.
9.
[6] O. Drori. Algorithm for documents ranking: idea and
simulation results. In SEKE ’02: Proceedings of the
14th international conference on Software engineering
and knowledge engineering, pages 99–102, New York,
NY, USA, 2002. ACM Press.
REFERÊNCIAS
[1] A. Borodin, G. O. Roberts, J. S. Rosenthal, and
P. Tsaparas. Link analysis ranking: algorithms,
theory, and experiments. ACM Trans. Inter. Tech.,
5(1):231–297, 2005.
[7] M. Henzinger. Hyperlink analysis on the world wide
web. In HYPERTEXT ’05: Proceedings of the
sixteenth ACM conference on Hypertext and
hypermedia, pages 1–3, New York, NY, USA, 2005.
ACM Press.
[2] S. Brin and L. Page. The anatomy of a large-scale
hypertextual Web search engine. In Proc. of the 7th
International World Wide Web Conference (WWW7),
pages 107–117, Brisbane, Australia, 1998.
[8] M. R. Henzinger. Hyperlink analysis for the web.
IEEE Internet Computing, 5(1):45–50, 2001.
116
Qualidade da Distribuicao
1
Qualidade
0.95
0.9
0.85
0.8
0.2,0.2 0.2,0.8 0.2,1.4 0.8,0.2 0.8,0.8 0.8,1.4 1.4,0.2 1.4,0.8 1.4,1.4
Variacoes de carga (Tarefas/Recursos)
Full-AbsAllocHITS
Random-AbsAllocHITS
Selective-AbsAllocHITS
Dynamic-AbsAllocHITS
Push
Pull
Receptive
Selective
Sel-Push-10
Figura 18: Gráfico “Qualidade da distribuição”.
[15] R. R. Veloso. Distribuição de tarefas em sistemas de
workflow baseada na aptidão dos recursos. Master’s
thesis, Faculdade de Computação, Universidade
Federal de Uberlândia (UFU), Uberlândia, MG,
Brazil, 2006.
[9] J. M. Kleinberg. Authoritative sources in a
hyperlinked environment. In SODA ’98: Proceedings of
the ninth annual ACM-SIAM symposium on Discrete
algorithms, pages 668–677, Philadelphia, PA, USA,
1998. Society for Industrial and Applied Mathematics.
[10] J. M. Kleinberg. Authoritative sources in a
hyperlinked environment. J. ACM-SIAM (Symposium
on Discrete Algorithms), 46(5):604–632, 1999.
[16] R. R. Veloso and A. Macedo. Lambari: Simple
workflow test environment. Technical report,
Faculdade de Computação, Universidade Federal de
Uberlândia, Uberlândia, MG, Brasil, 2005.
[11] A. Kumar, W. M. van der Aalst, and E. M. Verbeek.
Dynamic work distribution in workflow management
systems: How to balance quality and performance?
Journal of Management Information Systems,
18(3):157–193, 2001.
[17] K. Wang and M.-Y. T. Su. Item selection by
“hub-authority” profit ranking. In KDD ’02:
Proceedings of the eighth ACM SIGKDD international
conference on Knowledge discovery and data mining,
pages 652–657, New York, NY, USA, 2002. ACM
Press.
[12] I. Silva, B. Ribeiro-Neto, P. Calado, E. Moura, and
N. Ziviani. Link-based and content-based evidential
information in a belief network model. In Proc of the
23rd ACM SIGIR Conference on Research and
Development in Information Retrieval, Athens,
Greece, 2000. Best student paper.
[18] WfMC. Terminology and glossary. Technical Report
WfMC-TC-1011, Workflow Management Coalition,
Hampshire, Reino Unido, Fevereiro 1999.
[19] W. Xing and A. Ghorbani. Weighted pagerank
algorithm. In CNSR ’04: Proceedings of the Second
Annual Conference on Communication Networks and
Services Research (CNSR’04), pages 305–314,
Washington, DC, USA, 2004. IEEE Computer Society.
[13] G. B. Tramontina. Análise de problemas de
escalonamento de processos em workflow. Master’s
thesis, Instituto de Computação, Universidade de
Campinas (UNICAMP), Campinas, SP, Brazil, 2004.
[14] W. M. P. van der Aalst and K. M. van Hee. Workflow
Management: Models, Methods, and Systems. MIT
Press, 2002.
117
ThreadMap: Uma Abordagem para Mapeamento de
Mensagens de Correio Eletrônico
Hélio Oliveira Queiroz Junior
Manoel Gomes Mendonça Neto
Secretaria da Fazenda do Estado da Bahia - SEFAZ
Avenida 2, 260
Salvador, Ba 41745-003 Brasil
Universidade Salvador – UNIFACS
Rua Ponciano de Oliveira, 126
Salvador, Ba 41950-275 Brasil
[email protected]
[email protected]
exchanged messages, and number of participants involved in a
thread. This paper proposes a solution for thread mapping based
on intercepting messages directly at the e-mail server and on the
analysis of the header of these messages. Beyond the proposal,
this article presents an implementation of the approach for a
well-know e-mail server, an interface for visualizing the mapped
threads and their messages, and a case study on the usage of the
implemented approach. The case study was run in a real
organization, the Technology Sector of the State of Bahia
Revenue Services. The study showed that the proposed solution
was viable and useful.
RESUMO
O correio de eletrônico é a ferramenta de colaboração mais
difundida dentro das organizações, sendo utilizado não apenas
para a comunicação de informativos e recados, mas também
para desenvolver discussões não-presenciais e assíncronas entre
membros de uma equipe. Define-se um thread como um
conjunto de mensagens trocadas entre indivíduos, tipicamente
em torno de um mesmo assunto, em uma ordem cronológica,
através de respostas e encaminhamentos, simulando uma
conversa presencial. Através do mapeamento de threads é
possível identificar características tais como a duração típica
dessas conversas, a quantidade de mensagens trocadas e a
quantidade de participantes envolvidos. Este artigo apresenta
uma solução para o mapeamento de threads baseado na
interceptação direta de mensagens no servidor de correio
eletrônico e nos dados contidos no cabeçalho das mensagens.
Além da solução, este artigo apresenta uma implementação
utilizando um servidor de mercado, uma interface que permite a
visualização dos threads mapeados juntamente com as
respectivas mensagens trocadas, e um estudo de caso realizado
na Gerência de Tecnologia da Secretaria da Fazenda do Estado
da Bahia, que demonstrou a viabilidade da solução proposta.
Keywords
Thread, Electronic Mail, Electronic Message, Visualization,
Mapping.
1. INTRODUÇÃO
Atualmente, o correio eletrônico é uma das ferramentas de
trabalho mais utilizadas dentro das organizações. Muitos dos
processos organizacionais hoje são totalmente dependentes da
troca de mensagens via correio eletrônico. Desde solicitações de
informações e autorizações até decisões importantes estão
registradas nas trocas de mensagens.
Palavras-chave
Eletrônica,
Nesse contexto, milhares de mensagens eletrônicas são trocadas
entre indivíduos, permitindo que estes estejam participando, de
uma forma simultânea e assíncrona, de diversas conversas ou
discussões, entre grupos distintos de pessoas.
The e-mail is widespread in modern organizations. They are
used not only for sending information, but also to develop full
fledge non-presential and asynchronous discussions. These
discussions are commonly referred as threads. Formally, a
Thread is defined as a set of electronic message exchanged
between individuals, typically around a given subject, in
chronological order, through replies and forwards, simulating a
presential conversation. Through thread mapping, it is possible
to analyze features like typical duration of threads, number of
As mensagens trocadas de forma eletrônica simulam uma
conversa presencial, com a vantagem de que toda ela pode ser
armazenada de forma persistente, servindo como uma base de
conhecimento explícito ou meramente um registro da execução
de um processo organizacional.
Thread,
Correio
Eletrônico,
Visualização, Mapeamento.
Mensagem
ABSTRACT
Analisando do ponto de vista da organização, o mapeamento e
visualização dessa troca de mensagens podem ser utilizados para
identificar processos ainda não formalizados, para verificar
como se dá o fluxo de mensagens dentro de um grupo de
trabalho, auxiliar o mapeamento de redes sociais e analisar a sua
interação.
20 a 22 de Novembro de 2006
Natal, RN, Brasil
Para os usuários de correio eletrônico, a possibilidade de
visualizar de forma rápida, integrada e consistente uma trilha de
mensagens minimiza bastante o tempo necessário para o usuário
conseguir se posicionar e interagir dentro da conversa em
andamento, principalmente em função do grande volume de
mensagens de correio eletrônico trocadas diariamente.
© Sociedade Brasileira de Computação
Comissão Especial de Sistemas
Colaborativos
Anais do III Simpósio Brasileiro de Sistemas Colaborativos, pp. 118-128.
118
nosso caso, as mensagens eletrônicas trocadas entre usuários,
disponíveis para esse fim.
Este artigo está organizado em nove seções. Após esta
introdução, serão apresentadas três seções sobre threads de
mensagens e revisão bibliográfica das técnicas de mapeamento e
visualização de threads. As próximas três seções tratam da
solução ThreadMap, de sua implementação utilizando um
servidor de correio eletrônico de mercado e do estudo de caso
realizado. Na seqüência, serão vistas a conclusão do trabalho e
as referências utilizadas.
Quando a técnica de mapeamento de thread utiliza a caixa
postal de um usuário como fonte de informações, os objetivos
estão focados nas necessidades do usuário, principalmente na
interação com o grande volume de mensagens na sua caixa
postal. Neste contexto, através da visualização de threads, tornase mais fácil localizar a seqüência de mensagens trocadas na
conversação, permitindo ao usuário se posicionar na conversa de
forma mais rápida.
2. THREADS DE MENSAGENS
A troca de mensagens, utilizando o correio eletrônico, permite
aos seus usuários a participação em diversas discussões sobre
temas variados, de forma simultânea. Essa troca de mensagens
entre usuários, normalmente sobre o mesmo assunto é chamada
de Thread.
Nesse caso, objetivos organizacionais como identificação de
processos não formais e análise do fluxo de informações dentro
do grupo de trabalho são prejudicadas, pois não existe um
mapeamento global de mensagens. Não há como garantir que o
usuário tenha participado de todo o thread e que ele não tenha
excluído nenhuma mensagem da conversação.
Lewis e Knowles [4] definem um thread como uma conversação
entre duas ou mais pessoas através da troca de mensagens. Para
Palme [8], threads são conjuntos de mensagens que são, direta
ou indiretamente, respostas a outras mensagens.
Uma alternativa é a utilização de técnicas de mapeamento
baseadas no repositório de mensagens trocadas em listas de
discussões. Os algoritmos são basicamente os mesmos utilizados
no processo de mapeamento usando a caixa postal de um
usuário como fonte. Nesse caso, tem-se a garantia de que todo o
thread é mapeado, mas normalmente esses threads são públicos
ou muito abrangentes, dificultando o alcance de objetivos
organizacionais específicos. Outro aspecto importante é que essa
fonte é normalmente associada a um tema, o que dificulta o
mapeamento de troca de informações dentro de um grupo de
trabalho.
De acordo com o conceito de Palme [8], uma vez que as
mensagens de um thread são sempre fruto de respostas a outras
mensagens, um thread pode ser visto como uma árvore, onde a
primeira mensagem do thread é a raiz da árvore, conforme
mostrado na Figura 1.
Outra alternativa é a interceptação do evento de chegada de
mensagens em caixas postais no servidor de correio eletrônico
da organização. Essa técnica não tem as limitações de
abrangência da caixa postal de um usuário, nem tão pouco a
especificidade de uma lista de discussão. Nessa técnica, o thread
é mapeado a cada troca de mensagem dentro de um servidor,
facilitando o alcance dos objetivos organizacionais já discutidos.
Como desvantagem, essa técnica é dependente da existência de
um mecanismo de interceptação de eventos no servidor de
correio eletrônico utilizado.
A Tabela 1 apresenta um resumo sobre as vantagens e
desvantagens de cada uma das alternativas para o mapeamento
de threads.
Figure 1. Exemplo de Thread – Adaptado de Palme[8]
Tabela 1. Vantagens e desvantagens das abordagens de
mapeamento de threads
Segundo Nenkova e Bagga [6], os threads de correio eletrônico
são a forma mais comum de representação e armazenamento de
grupos de discussão ou listas de distribuição, principalmente em
função do grande volume de mensagens trocadas nestes
serviços.
As definições apresentadas por Lewis e Knowles [4] e Palme [8]
sobre a simulação de uma conversa presencial via correio
eletrônico, juntamente com a consideração de Nenkova e Bagga
[6] sobre a representação para grupos de discussão e listas de
distribuição apontam para possibilidade de registro,
mapeamento, e posterior visualização e análise desses threads.
Abordagem
de
Mapeamento
Caixa postal
de
usuário
Vantagens
Desvantagens
* Foco na necessidade
do usuário;
* Auxílio na interação
com o grande volume
de mensagens;
* Facilita a localização
do usuário na
conversação em
andamento.
Lista de
* Garantia de que todo
* Dificuldade na
identificação de
processos não
formais;
* Mapeamento do
thread com a visão
particular do usuário;
* Grande
possibilidade de
perda de trechos do
thread;
* Threads são
3. MAPEAMENTO DE THREADS
O processo de mapeamento de threads de mensagens eletrônicas
pode ser realizado através de diferentes algoritmos, a depender
dos objetivos desse mapeamento e da fonte de informações, no
119
Abordagem
de
Mapeamento
discussão
Vantagens
No caso do algoritmo ORDEREDSUBJECT, as mensagens
pesquisadas são ordenadas pelo assunto base (campo assunto
com a remoção de palavras não significativas) e então pela data
de envio. As mensagens são então agrupadas em threads, onde
cada thread possui o mesmo assunto base.
Desvantagens
o thread é mapeado;
* Mapeamento thread
com visão global;
públicos ou muito
abrangentes;
* Fonte normalmente
associada a um tema
específico.
Interceptação * Garantia de que todo * Dependência de
mecanismo de
o thread é mapeado;
de
interceptação de
* Mapeamento thread
mensagem
mensagens no
com visão global;
servidor de correio
* Não possui o
especificidade das listas eletrônico.
de discussões;
* Auxilia na
identificação de
processos não formais.
Seja qual for a origem da informação, as técnicas de
mapeamento de thread utilizam informações contidas na
mensagem eletrônica. Essas informações podem estar
localizadas no corpo ou no cabeçalho da mensagem.
As mensagens do thread são então ordenadas por data e a
primeira mensagem trocada é considerada a mensagem raiz do
thread. As demais mensagens são todas consideradas filhas da
mensagem raiz, não existindo então mais de um nível no thread
quando o algoritmo ORDEREDSUBJECT é utilizado. Percebese que nessa implementação muitas informações sobre as trocas
de mensagens são perdidas.
O algoritmo REFERENCES é baseado na proposta de Zawinski
[14]. Esse algoritmo agrupa as mensagens, estabelecendo entre
elas um relacionamento pai/filho baseado nas respostas e trocas
de mensagens realizadas. Esse relacionamento pai/filho é
construído usando dois métodos: reconstruindo a árvore
ancestral da mensagem utilizando o campo references do seu
cabeçalho ou tomando como base o assunto (subject) das
mensagens trocadas.
Nas diversas alternativas apresentadas, a solução possui como
requisito a disponibilidade de um repositório com todas as
mensagens a serem mapeadas, o que nem sempre é possível
obter, uma vez que normalmente, vários usuários participam de
uma conversação através do correio eletrônico. Além disso, a
fonte de dados é um retrato (snapshot) da caixa postal de um
usuário e reflete a sua participação, ou seja, a visão que um
indivíduo tem sobre a conversação realmente realizada.
Utilizar as informações contidas no corpo da mensagem permite
a identificação e agrupamento de acordo com o assunto tratado
na mensagem. Como normalmente as ferramentas cliente de
correio eletrônico mantêm o texto original ao enviar uma
mensagem resposta, a análise do corpo da mensagem pode
indicar a que thread ela pertence. Lewis e Knowles [4]
apresentam um estudo onde o thread é mapeado utilizando a
similaridade de vocabulário existente entre os textos das
mensagens trocadas, com uma eficácia de 71% na identificação
das mensagens pai.
Fisher e Moody [1] apresentam um estudo envolvendo a captura
de mensagens trocadas por 74 usuários durante 60 dias,
utilizando como fonte para o mapeamento dos threads uma
cópia da caixa postal de cada usuário e evidências como data e
assunto para associação dessas mensagens aos threads. Além de
dados estatísticos como número médio de mensagens trocadas
nos threads, número de usuários envolvidos e tempo médio de
resposta às mensagens trocadas, a identificação de que cada
usuário possui uma percepção diferente sobre o mesmo thread
merece destaque.
Alguns autores apontam técnicas de mapeamento baseadas no
cabeçalho das mensagens. Por exemplo, Palme [8] apresenta
como alternativa para o mapeamento de threads o uso de
informações contidas no cabeçalho das mensagens eletrônicas
(headers). Nesta técnica, são utilizados os cabeçalhos MessageId, In-Reply-To e References para realizar o mapeamento do
thread.
Pela técnica aplicada, além das diferentes visões, alguns trechos
do thread podem ter sido perdidos, pois algumas mensagens já
podem ter sido excluídas das caixas postais dos envolvidos.
Tudo isso dificulta muito a possibilidade de uso dessas
informações coletadas para a identificação de processos não
formais e análise do fluxo de informações dentro de um grupo
de trabalho.
Zawinski [14] apresenta um algoritmo que também faz uso dos
dados contidos no cabeçalho das mensagens eletrônicas para o
mapeamento de threads. Ele utiliza os campos In-Reply-To,
References e Subject para agrupar as mensagens do mesmo
thread. No caso da manipulação do assunto da mensagem, é
necessária a supressão de prefixos normalmente incluídos pelas
ferramentas clientes de correio eletrônico, nas operações de
resposta e encaminhamento de mensagens. Esses prefixos são:
“Re:”, “Res:”, “Fw:”, “Fwd:”, dentre outros.
As técnicas de mapeamento vistas apresentam em comum a
característica de possuírem como fonte de dados um repositório
com as mensagens já trocadas, ou seja, a montagem do thread é
realizada após a conversação. Como conseqüência da fonte
utilizada, as técnicas apresentam uma visão particular da
conversação, com possibilidade de perda de trechos do thread.
IMAP Extension Work Group [2] trata de uma proposta
elaborada pelo IETF (Internet Engineering Task Force) para
extensão do protocolo IMAP para ordenação e agrupamento de
thread, na execução de buscas de mensagens disponíveis no
servidor de correio eletrônico.
Para minimizar os problemas encontrados, a alternativa de
mapeamento de threads, baseado na interceptação das
mensagens eletrônicas recebidas pelo servidor de correio
eletrônico permitiria o mapeamento de todo o thread,
independente de como essas mensagens estão armazenadas e
organizadas em cada caixa postal de usuário. Essa alternativa,
Essas extensões complementam o comando SEARCH
disponível no protocolo IMAP. Com relação ao agrupamento
dessas mensagens em threads, essa extensão suporta a
implementação de dois algoritmos, definidos pelas palavras
reservadas ORDEREDSUBJECT e REFERENCES.
120
Para permitir uma melhor visualização das relações de tempo
entre as mensagens trocadas, Rohall [10] apresenta uma técnica
chamada TimeLine, onde as linhas verticais representam
fronteiras temporais, no caso, de um dia. O thread é visualizado
como uma árvore disposta na horizontal, onde a dimensão
tempo não é necessariamente linear, ou seja, dias com pouca ou
nenhuma atividade podem ser mostrados de forma comprimida,
permitindo que uma maior faixa de tempo esteja visível na tela
do computador.
entretanto, tem como requisito a captura das mensagens no
momento em que elas são trocadas, não sendo possível a sua
recuperação a posteriori.
Nesse caminho de solução surgem dois desafios: a identificação
do thread, ou seja, a associação correta de cada mensagem
recebida ao seu respectivo thread e qual a posição dessa
mensagem dentro da cadeia de mensagens trocadas, uma vez
que cada mensagem está frequentemente associada (sendo uma
resposta ou encaminhamento) a uma mensagem pai dentro de
um processo assíncrono.
Venólia e Neustaedter [12] apresentam um modelo misto para
visualização de conversação baseada em mensagens eletrônicas.
Esse modelo, segundo os autores, foi desenhado para permitir
que grandes threads de mensagens possam estar disponíveis e
facilmente visíveis para o usuário, com pouca necessidade de
rolamento vertical da tela visual. Essa técnica usa o princípio de
visão geral mais detalhes, onde em uma única janela temos dois
frames, um com os resumos e outro com os detalhes do item
selecionado no frame resumo.
4. VISUALIZAÇÃO DE THREADS
Existem diversas propostas de visualização de threads de
mensagens. Em sua grande maioria, são apresentadas como uma
evolução das ferramentas cliente de correio eletrônico, com o
objetivo de facilitar a participação do usuário na conversação,
assim como também melhorar a visualização global do thread e
sua distribuição no tempo.
Kerr [3] propôs uma técnica de visualização chamada Thread
Arcs, onde cada mensagem do thread é representada por um nó
e os relacionamentos (respostas a mensagens) representados por
arcos interligando os nós.
No caso das listas de discussão, é comum a apresentação de
threads de mensagens sob o formado de árvore, onde cada
mensagem de resposta é organizada de forma endentada e as
mensagens são representadas pelo remetente e horário de
postagem, sendo o título um apontador para o corpo da
mensagem propriamente dito.
Nessa técnica, as mensagens são colocadas em seqüência, da
esquerda para direita, de acordo com a sua ordem cronológica.
Em seguida, os relacionamentos de respostas a mensagens são
adicionados interligando os nós (mensagens) utilizando arcos.
Uma variação dessa estrutura tradicional de árvore foi
apresentada por Newman [7], chamada de Narrow Tree, cuja
representação limita o processo de endentação das mensagens
do thread a apenas um nível. Nessa técnica, as mensagens do
thread são separadas por linhas divisórias de acordo com a sua
posição dentro do thread. Esta técnica permite uma visão geral
do thread e inclui o trecho inicial da mensagem na sua
visualização.
5. A SOLUÇÃO THREADMAP
O ThreadMap é uma proposta de solução para o problema do
mapeamento de threads de mensagens eletrônicas, focada na
interceptação de mensagens no servidor de correio eletrônico
como forma de minimizar os problemas anteriormente
identificados no mapeamento de threads a partir da caixa postal
de um usuário. Seu principal benefício é a capacidade de mapear
toda a conversação, independente da visão de cada usuário, e
minimizando o risco de perda de trechos do thread.
Newman [7] apresenta uma outra técnica de visualização de
threads, ainda baseada na árvore tradicional, mas em uma
estrutura onde as mensagens eletrônicas são organizadas em
linhas e colunas, como em uma tabela chamada TreeTable.
Nela, cada célula representa uma mensagem do thread e as
mensagens que são respostas diretas a uma mensagem pai estão
organizadas em colunas irmãs na linha subseqüente. Todas as
respostas são agrupadas ocupando a mesma área horizontal da
mensagem pai.
5.1 Funcionamento e Algoritmo
Uma solução de interceptação de mensagens possui dois
desafios principais: a identificação do thread, ou seja, a
associação correta de cada mensagem recebida ao seu respectivo
thread; e a identificação da mensagem pai, ou seja, o
posicionamento da mensagem dentro da cadeia de mensagens
trocadas nesse thread, uma vez que toda mensagem está
associada a uma mensagem pai, seja na forma de resposta ou
encaminhamento.
Rohall e Gruen [11] apresentam o ReMail: A reinvented email
prototype, que incorpora novas maneiras de visualizar, gerenciar
e interagir com threads e outros grupos de mensagens
relacionadas.
A proposta de Rohall e Gruen [11] suporta a visualização de
threads em árvores, em paralelo com a mensagem. Quando uma
mensagem é selecionada, as demais mensagens do thread são
mostradas em um tom diferente e o nó correspondente a
mensagem é selecionado na árvore do thread, localizada lado
esquerdo da janela de trabalho do usuário.
Para resolver os problemas acima, essa solução propõe a
inclusão de uma marca na mensagem de forma a identificar o
thread da mensagem atual e a sua posição dentro da cadeia de
mensagens da conversação.
Com essa marca, é possível determinar a qual thread a
mensagem pertence. Além da identificação do thread, a marca
registra qual a mensagem anterior na cadeia de troca de
mensagens, para a correta associação do relacionamento pai e
filho em cada thread. A ausência de marca indica o início de um
novo thread. A Figura 2 apresenta o algoritmo que implanta a
solução proposta.
As formas de visualização apresentadas até o momento possuem
como característica a ênfase no relacionamento pai-filho entre as
mensagens, mas essas técnicas não facilitam a determinação das
relações temporais entre as mensagens trocadas.
121
De acordo com esse algoritmo, para cada mensagem capturada é
verificada a que thread ela pertence e qual a mensagem pai, ou
seja, a mensagem origem a partir da qual um determinado
usuário enviou uma resposta ou um encaminhamento desta. As
informações sobre o thread registram o usuário que o iniciou, a
sua duração (data e hora de início e fim), os usuários
envolvidos, a quantidade de mensagens trocadas e o intervalo
entre elas, o assunto da conversação e quais foram as mensagens
trocadas.
Tabela 2. Fonte das informações colhidas sobre as
mensagens interceptadas
Informação
Identificador da
mensagem
Identificador do thread
Identificador da
mensagem pai (origem)
Assunto
Data e hora da
mensagem
Usuário emissor
Usuários receptores
Existência de arquivos
anexados
Para cada mensagem capturada
Verifica-se se a mensagem capturada já possui a marca do
Thread
Se não possui a marca ( inicio de um novo thread)
Registra o inicio do thread;
Armazena as informações sobre o thread e a
mensagem capturada;
Insere a marca na mensagem capturada, com o
número do novo thread e da mensagem atual,
que será a mensagem pai das respostas e
encaminhamentos;
Fonte
Message-ID (cabeçalho)
Identificador do thread contido
na marca criada pelo algoritmo.
Identificador da mensagem pai
(origem) na marca criada pelo
algoritmo
Subject (cabeçalho)
Date (cabeçalho)
From (cabeçalho)
To e Cc (cabeçalho)
Attachment (cabeçalho)
5.2 Benefícios da solução
Como descrito anteriormente, essa solução apresenta uma
proposta de mapeamento de threads baseado na interceptação de
mensagens no servidor de correio eletrônico, minimizando a
possibilidade de perdas de trechos do thread em função de uma
possível distribuição geográfica desses dados nas diversas caixas
postais dos usuários envolvidos.
Caso contrário (nova mensagem de thread já iniciado)
Obtém a informação do thread atual e da mensagem
pai a partir da marca da mensagem;
Armazena as informações sobre a mensagem
capturada;
Atualiza a marca da mensagem com o novo
identificador da mensagem.
Com base na solução proposta, é possível a realização do
mapeamento completo de todos os threads, cujas mensagens
sejam trocadas no âmbito de um servidor de correio eletrônico.
Esta solução pode ser ampliada para permitir o mapeamento
além das fronteiras de um servidor, desde que instalada em
todos os servidores de correio eletrônico dos usuários
envolvidos e utilizando uma base de dados centralizada. Para
tal, a solução proposta pelo ThreadMap pode ser implementada
para qualquer servidor de correio eletrônico para permita a
interceptação da mensagens e o acesso aos seus dados.
Fim
Figure 2. Algoritmo da solução TheadMap
As informações sobre cada mensagem capturada incluem o
usuário emissor, os usuários receptores (diretos e indiretos), o
assunto, a data e hora do envio, a que thread ela pertence, qual a
sua mensagem pai (origem) e se houve ou não arquivos
anexados. Para preservar a confidencialidade das informações
contidas nas mensagens, essa solução não armazena o conteúdo
da mensagem, sendo todas as informações acima relacionadas
obtidas a partir do cabeçalho da mensagem.
A partir das informações de cada thread, estão disponíveis
dados que permitem mapear a estrutura em árvore de mensagens
trocadas entre os envolvidos.
Além dos dados sobre cada mensagem, podem ser obtidas
informações como a duração de cada thread, a quantidade de
participantes (usuários) envolvidos, a quantidade de mensagens
trocadas de cada thread, e realizar análises sobre a distribuição
estatística desses dados dentro do universo amostrado.
A Tabela 2 mostra as informações colhidas de cada mensagem e
as respectivas fontes nos campos do cabeçalho.
Esta solução se baseia na captura de mensagens e mapeamento
do thread em tempo real e tem como requisito para a sua
implementação que o servidor de correio eletrônico possua um
mecanismo de suporte a eventos que permita a interceptação,
captura e manipulação das mensagens recebidas.
Outro aspecto que pode ser explorado diz respeito à participação
dos indivíduos. Sob essa ótica, é possível mapear a participação
de cada usuário na conversação e o fluxo da comunicação dentro
dos grupos de trabalho, sendo possível identificar os usuários
que mais contribuem nessas comunicações, a intensidade da
comunicação entre dois indivíduos e o tempo médio de resposta
desses usuários no momento de sua contribuição [13].
6. IMPLEMENTAÇÃO THREADMAP
Como já dito anteriormente, a solução ThreadMap pode ser
implementada em qualquer servidor de correio eletrônico que
possua um mecanismo de suporte a eventos, permitindo a
interceptação, captura e manipulação das mensagens recebidas.
122
Transação OLE DB
Base Exchange
3
2
1
Imagem do Item
Disparo de Evento
Eventos Síncronos
(Inicio da Transação)
Primeiro
Imagem do item é
modificada
Último
4
Imagem do Item
(Final)
5
Eventos Síncronos
(Conclusão da Transação)
Primeiro
Item na Base
Último
6
Eventos Assíncronos
Primeiro
Último
Figure 3. Diagrama de disparo dos eventos do MS Exchange Server [5]
Esta seção apresenta uma implementação ThreadMap,
utilizando o servidor MS Exchange Server e utiliza o Exchange
Store Events como mecanismo para interceptação das
mensagens trocadas.
Para permitir a manipulação dos dados contidos na mensagem,
assim como a inclusão de uma marca para registro do
identificador do thread e da mensagem pai (origem), os eventos
síncronos são mais apropriados, visto que são os únicos que
permitem a alteração do conteúdo das mensagens.
6.1 Exchange Store Events
Os event sinks associados aos eventos síncronos são chamados
duas vezes para cada ocorrência, no início e no final do
processamento da mensagem salva ou excluída. Apenas durante
a primeira fase do event sink as mensagens podem ter o seu
conteúdo alterado. Assim, a inclusão da marca que permite a
identificação do thread corrente e da mensagem origem precisa
ser realizada nessa fase.
O MS Exchange Server [5] possui um mecanismo chamado
Exchange Store Event, que permite a programação de regras de
negócio associadas a eventos, como por exemplo: salvar,
excluir, modificar, copiar ou mover itens na base de dados do
MS Exchange Server.
O Exchange Store Event suporta 3 (três) tipos de eventos:
síncronos, assíncronos e de sistema. Os eventos síncronos e
assíncronos são relativos a operações como o armazenamento ou
remoção de itens na base de dados. Os eventos síncronos são
disparados antes da conclusão (commit) da operação, enquanto
que os eventos assíncronos são disparados após a conclusão das
operações de armazenamento ou remoção dos dados. Os eventos
de sistema são disparados em horários programados, ou nos
eventos de partida e encerramento da base de dados do MS
Exchange Server.
A Figura 3 apresenta a seqüência de disparo de eventos
disponíveis no MS Exchange Server:
(1) O evento ocorre na base de dados do MS Exchange
Server;
(2) Uma imagem do item é criada para permitir a sua
manipulação;
(3) Métodos do evento síncrono recebem a notificação de
início de operação. Nessa fase, o item pode ser modificado;
A partir dos eventos disponíveis, é possível a criação de código
aplicativo, sob o formato de Dynamic Link Library (DLL) que
são disparados na ocorrência desses eventos e são chamados de
event sinks. Estes event sinks são então associados aos eventos
disponíveis no MS Exchange Server e às caixas postais dos
usuários. Dessa forma, é possível interceptar eventos e associálos às caixas postais de usuários pré-definidos.
(4) A imagem do item é salva na base de dados do MS
Exchange Server;
(5) Métodos do evento síncrono recebem a notificação da
fase de conclusão da operação;
(6) Métodos do evento assíncrono recebem a notificação de
operação.
123
6.2 Detalhes de implementação
6.3 Interface de visualização - ThreadViewer
A solução ThreadMap aponta para a necessidade de criação de
uma marca na mensagem como solução para os problemas de
identificação do thread e da mensagem origem. Para tal, foi
utilizado um texto padrão, que foi inserido no final do corpo de
cada mensagem interceptada no servidor, com a identificação do
thread corrente e da mensagem pai (origem).
O objetivo da ferramenta ThreadViewer é apresentar uma
interface que permita aos seus usuários visualizar os thread
mapeados com o ThreadMap, possibilitando a localização de um
thread específico e posterior visualização de seus detalhes.
Diferentemente das interfaces discutidas anteriormente, o
ThreadViewer não se propõe a ajudar o usuário de correio
eletrônico a interagir com a conversação em curso. A intenção é
facilitar a busca por threads mapeados, a partir de suas
características, tendo sido criada apenas para permitir a
visualização dos threads mapeados pelo ThreadMap, tendo
apenas algumas funcionalidades para análise visual de threads.
A Figura 4 apresenta o formato da marca inserida no corpo da
mensagem.
........................................
ThreadMap
{THREAD_ID:nnn}
{MSGID_ORIGEM:nnn}
........................................
Para facilitar esse processo de análise, foi mapeado visualmente
o seguinte conjunto de características básicas do thread,
coletados pelo ThreadMap: quantidade de usuários participantes
do thread, quantidade mensagens trocadas, duração, usuário que
iniciou o thread e a sua data de início
Figure 4. Formato da marca ThreadMap
As mensagens interceptadas pelo Exchange Store Events podem
ser manipuladas através de uma fonte OLE DB chamada
ExOLEDB, que juntamente com o uso do modelo de objetos
Microsoft ActiveX Data Objects (ADO), permite o acesso às
mensagens e caixas de correio eletrônico disponíveis no
servidor, através da ligação (bind) desses itens a objetos ADO.
A Tabela 3 apresenta a relação de informações colhidas sobre as
mensagens interceptadas e as suas respectivas fontes.
A Tabela 4 apresenta um resumo dessas características e
descreve a fonte dessas informações. Vale repetir que todos
esses dados estão disponíveis na base do ThreadMap.
Tabela 4. Características dos threads
Característica do
thread
Quantidade de
participantes
Tabela 3. Fonte de informações das mensagens interceptadas
Informação
Identificador da
mensagem
(message_id)
Emissor da
mensagem (from)
Assunto da
mensagem
(subject)
Data da
mensagem (date)
Destinatários da
mensagem
(to e cc)
Existência de
anexos na
mensagem
(attachment)
Corpo da
mensagem
Fonte (URL)
urn:schemas:mailheader:message-id
Quantidade de
mensagens
Duração do thread
urn:schemas:mailheader:from
urn:schemas:httpmail:subject
Usuário início
urn:schemas:mailheader:date
Início do thread
urn:schemas:mailheader:to
urn:schemas:mailheader:cc
Fonte da informação
Quantidade de usuários envolvidos no
thread, obtida a partir das informações
de emissor e receptores da mensagem
(to e cc).
Quantidade de mensagens trocadas e
mapeadas pertencentes ao thread.
Duração do thread, obtido através da
diferença de dados entre a primeira e
última mensagem mapeada do thread.
Usuário que iniciou o thread, ou seja, o
emissor da primeira mensagem do
thread mapeado.
Data em que se iniciou o thread, ou
seja, a data da primeira mensagem do
thread mapeado.
Para apresentar uma interface de localização mais amigável, os
threads são apresentados em um gráfico e foram escolhidas três
dimensões principais para a busca de um thread, são elas: a
duração, a quantidade de participantes e quantidade de
mensagens.
urn:schemas:httpmail:hasattachment
urn:schemas:httpmail:textdescription
urn:schemas:httpmail:htmldescription
A Figura 5 apresenta a interface principal do ThreadViewer,
com os threads desenhados em formato de círculos, em um
gráfico tendo a quantidade de mensagens e de participantes
como eixos X e Y, respectivamente. A duração representa a
terceira dimensão do gráfico e está ilustrada pelo tamanho dos
círculos no gráfico.
Com o uso de objetos ADO ligados às mensagens e caixas
postais no servidor de correio eletrônico, a sua manipulação
pode ser realizada através das referências URL:
"urn:schemas:mailheader” e "urn:schemas:httpmail”. Assim, é
possível acessar os dados da mensagem para registro das
informações na base de dados do ThreadMap e inclusão da
marca de identificação do thread e mensagem origem.
Ao lado do gráfico com os threads desenhados, é
disponibilizado uma paleta com cinco controles que atuam
dinamicamente na seleção dos threads à medida que são
manipulados. Esses controles filtram o conjunto de dados
consultados, conforme descrito a seguir:
124
Figure 5. Interface principal do ThreadViewer
gráficos necessários à visualização dos threads e suas
respectivas mensagens.
• Usuário início – Seleção de um usuário que tenha iniciado
o thread;
• Quantidade de participantes – Seleciona a quantidade de
participantes do thread. Os threads mostrados terão
quantidade de participantes igual ou superior ao valor
selecionado;
7. ESTUDO DE CASO
O estudo de caso apresentado a seguir reflete a utilização da
solução ThreadMap para a interceptação e mapeamento dos
threads de mensagens eletrônicas envolvendo a equipe da
Gerência de Tecnologia (GETEC) da Diretoria de Tecnologia de
Informação (DTI) da Secretaria da Fazenda do Estado da Bahia.
• Quantidade de mensagens – Seleciona a quantidade de
mensagens do thread. Os threads mostrados terão a
quantidade de mensagens igual ou superior ao valor
selecionado;
O processo de coleta e mapeamento dos threads foi realizado
durante o período de 20 de fevereiro de 2006 a 16 de março de
2006, envolvendo os 19 profissionais da GETEC. Durante esse
período foram interceptadas e registradas em banco de dados
7.902 mensagens recebidas e trocadas entre os envolvidos no
estudo de caso.
• Duração do thread – Seleciona o período de duração dos
threads;
• Início do thread – Seleciona os threads que se iniciaram
dentro de um determinado intervalo de tempo.
Após a localização de threads de interesse específico, o usuário
pode visualizar os seus detalhes de um thread específico
clicando sobre o mesmo.
7.1 Protocolo de análise
A análise dos dados coletados foi realizada utilizando como
premissa a não identificação individual dos participantes, assim
como também o não tratamento dos assuntos das mensagens
trocadas durante o período da coleta dos dados.
A Figura 6 apresenta a interface de detalhes do thread, dividida
em três partes: na parte superior, os dados do thread selecionado
(assunto, usuário início, duração, quantidade de participantes e
data de início e fim); no lado esquerdo temos uma árvore
montada a partir das mensagens trocadas com os respectivos
relacionamentos de pai e filho; e à direita, os detalhes da
mensagem selecionada à esquerda (assunto, usuário emissor,
usuários receptores, data da mensagem e se houve ou não
arquivos em anexo).
Dessa forma, os dados apresentados buscam caracterizar o uso
do correio eletrônico neste grupo de trabalho e identificação do
volume de mensagens trocadas, threads mapeados e suas
características. Para tal, foram consideradas três dimensões do
thread: quantidade de indivíduos participantes, quantidade de
mensagens trocadas e duração.
Foram desconsiderados como threads a serem analisados,
aqueles que tiveram apenas uma mensagem trocada, o que
representa apenas o ato de informar ou divulgar algo, não
caracterizando o uso do correio eletrônico como mecanismo de
discussão.
A ferramenta ThreadViewer foi construída utilizando a
linguagem Java, acessando a base de dados do ThreadMap via
Java Database Connectivity (JDBC). Também foram utilizados
os frameworks JFreeChart e JUNG (Java Universal
Network/Graph) para auxiliar no processo de criação dos
125
Figure 6.
Visualização das mensagens do thread no ThreadViewer
Este grande volume de threads com apenas uma mensagem
pode ser atribuído ao grande volume de mensagens spam
recebidas e pelo fato da equipe GETEC utilizar uma ferramenta
de monitoramente e gerenciamento dos servidores e serviços
disponíveis que enviam alertas via correio eletrônico.
Os threads analisados foram agrupados de acordo com a
distribuição apresentada na Tabela 5, em cada uma das
dimensões verificadas.
Tabela 5. Dimensões e agrupamento utilizados para análise
dos dados
Dimensão
Quantidade de mensagens
Quantidade de participantes
Duração
A seguir, iremos detalhar os números obtidos neste estudo de
caso, consolidando a análise a partir das características:
quantidade de mensagens, quantidade de participantes e duração
dos threads.
Agrupamento
2 mensagens
3 a 5 mensagens
6 a 8 mensagens
9 a 12 mensagens
Acima de 12 mensagens
1 a 4 participantes
5 a 8 participantes
9 a 12 participantes
13 a 16 participantes
Acima de 16 participantes
Menor ou igual a 1 dia
Entre 1 e 3 dias
Entre 3 e 5 dias
Entre 5 e 7 dias
Superior a 7 dias
• Quantidade de Mensagens
Dentre os 261 threads analisados, houve o registro de
889 mensagens trocadas, o que perfaz uma média de
3,4 mensagens por thread.
A Figura 7 apresenta a distribuição de threads de
acordo com o agrupamento de quantidade de
mensagens, conforme proposto na Tabela 5.
7.2 Resultados obtidos
Durante o período de realização do estudo de caso da GETEC,
foram interceptadas 7.902 mensagens, agrupadas em 7.288
“threads”. Como para efeito de análise dos resultados obtidos
foram considerados apenas os threads com mais de uma
mensagem, esse universo se resumiu a 261 threads, com um
total de 889 mensagens, ou seja, 11,25% das mensagens
interceptadas e registradas na base de dados do ThreadMap.
126
A Figura 9 apresenta a distribuição de threads de
acordo com o agrupamento de duração, conforme
proposto na Tabela 5.
Threads x Quantidade de Mensagens
3% 2%
7%
2
3a5
Threads x Duração (dias)
6a8
56%
32%
9 a 12
Acima de 12
5%
2% 2%
13%
<= 1
1<x<=3
3 <x<=5
5 <x<=7
Distribuição de threads x mensagens
Figure 7.
>7
78%
• Quantidade de Participantes
Para a análise da quantidade de participantes de cada
thread, foram considerados os envolvidos como
emissor e receptor de mensagens, através dos campos
From, To e CC, contando a sua ocorrência uma única
vez, em todo o thread.
Figure 9. Distribuição de threads x duração
Segundo os dados coletados, dentre os 261 threads analisados,
84, ou seja, 32% destes foram realizados com a troca de apenas
duas mensagens, a participação de até quatro pessoas e duração
máxima de um dia, caracterizando assim este como o thread
típico da equipe GETEC.
O número total de participantes nos threads coletados
foi de 305 pessoas, com uma média de 5,5 por thread.
Vale lembrar que apesar do estudo de caso englobar a
interceptação de mensagens de um grupo de 19
pessoas, esses participantes aqui referenciados
incluem outras pessoas que enviaram e/ou receberam
estas mensagens.
8. CONCLUSÃO
O correio eletrônico é uma ferramenta bastante difundida entre
os usuários consumidores de tecnologia da informação e o seu
uso representa uma importante fonte de informações.
A Figura 8 apresenta a distribuição de threads de
acordo com o agrupamento de quantidade de
participantes, conforme proposto na Tabela 5.
Uma das utilizações comuns do correio eletrônico é possibilitar
a integração de pessoas geograficamente distribuídas,
encurtando as distâncias e facilitando a disseminação e troca de
informações entre grupos de trabalho ou pessoas interessadas
em assuntos em comum. Esta interação propicia a realização de
conversações de uma forma virtual, entre indivíduos
geograficamente espalhados, sem a necessidade de que todos
estejam disponíveis ao mesmo tempo, pelo caráter assíncrono
desta ferramenta.
Threads x Quantidade de Participantes
9%
3%
4%
1a4
5a8
Estas conversações através do correio eletrônico, uma vez
mapeadas, permitem a montagem de uma base de dados que
auxilia as organizações a entenderem o uso desta ferramenta por
suas equipes de trabalho e permite a identificação de fluxos de
informação ainda não conhecidos.
9 a 12
56%
28%
13 a 16
Acima de 16
A solução ThreadMap traz as seguintes contribuições:
Figure 8.
• Trata-se de uma proposta de mapeamento baseada na
interceptação de mensagens no servidor de correio
eletrônico, minimizando a possibilidade de perda de trechos
destes threads;
Distribuição de threads x participantes
• Duração
• Realiza um mapeamento que possibilita a visão global do
thread, ao contrário das soluções de mapeamento que
utilizam as caixas postais dos usuários, que apresentam uma
visão limitada a um dos envolvidos na conversação;
Para a análise da duração, foram consideradas as datas
das mensagens mais antigas e mais recentes de cada
thread. Desta forma, a duração foi calculada a partir
da diferença entre a maior e a menor data das
mensagens de um thread, contada em dias.
• A solução ThreadMap pode ser implementada em qualquer
servidor de correio eletrônico que permita a interceptação e
manipulação das mensagens trocadas entre os usuários.
De acordo com os dados coletados, a duração média
entre os 261 threads mapeados foi de 0,95 dias.
127
Como o conceito do ThreadMap está baseado da possibilidade
de interceptação de mensagens no servidor de correio eletrônico,
a disponibilidade desta captura e o acesso às mensagens são
limitações desta solução.
[6] Nenkova A.; Bagga, A. Facilitating Email Thread Access
by Extractive Summary Generation. In: International
Conference Recent Advances in Natural Language
Processing, 2003, Borovets.
Outra limitação está no fato de que o mapeamento precisa ser
realizado no momento em que as mensagens são trocadas entre
os usuários, não sendo possível a realização deste mapeamento
posteriormente, como são realizados pelas técnicas que utilizam
como fonte de informações, as caixas postais dos usuários.
[7] Newman, P. Treetables and other visualizations for email
threads. Xerox PARC Technical Report, September 2001.
[8] Palme, J. Message Threading in E-mail Software, 1998.
Disponível em: <http://dsv.su.se/jpalme/ietf/messagethreading.pdf>. Acesso em: 12 ago. 2004.
Maiores detalhes deste trabalho podem ser encontrados em [9].
[9] Queiroz Junior, H. ThreadMap – Uma ferramenta para
mapeamento e visualização de threads de mensagens
eletrônicas. 2006. 105f. Dissertação (Mestrado em Redes
de Computadores). UNIFACS, Salvador.
9. REFERÊNCIAS
[1] Fisher, D.; Moody, P. Studies of automated collection of
email records: technical report UCI-ISR-02-4. Institute of
Software Research – University of California, Irvine, 2002.
[10] Rohall, S. Redesigning Email for the 21th Century
Wokshop Position Paper. In: Conference on Computer
Supported Cooperative Work, 2002, New Orleans.
[2] IMAP Extension Work Group. Internet message access
protocol: sort and thread extensions. 2004. Disponível em:
< http://www.ietf.org/internet-drafts/draft-ietf-imapextsort-17.txt>. Acesso em: 5 jan. 2006.
[11] Rohall, S.; Gruen, D. Remail: A Reinvented Email
Prototype. In: Conference on Computer Supported
Cooperative Work, 2002, New Orleans.
[12] Venolia, G.; Neustaedter, C. Understanding Sequence and
Reply Relationships within Email Conversations: a mixedmodel visualization. In: Conference on Human Factors in
Computing System, 2003, Fort Lauderdale.
[3] Kerr, B. Thread Arcs: An Email Thread Visualization. In:
IEEE Symposium on Information Visualization, 2003,
Seattle.
[4] Lewis, D.; Knowles K. Threading electronic mail: a
preliminary study. Information Processing and
Management, mar. 1997.
[13] Wasserman, S.; Faust, K. Social Network Analysis:
Methods and Applications, 1994. Cambridge University
Press.
[5] Microsoft. Microsoft Exchange SDK Development Tools.
2005. Disponível em: <http://www.microsoft.com/>.
Acesso em: 10 mai. 2005.
[14] Zawinski, J. Message Threading, 1997. Disponível em:
<http://www.jwz.org/doc/threading.html>. Acesso em: 20
ago. 2004.
128
NegoSys: um ambiente de suporte à negociação
Melise Maria Veiga de Paula
Jano Moreira de Souza
Faculdade Metodista Granbery
Programa de Engenharia de Sistemas e Computação
(COPPE)
Universidade Federal do Rio de Janeiro, Brasil
Programa de Engenharia de Sistemas e Computação
(COPPE)
Instituto de Matemática
Universidade Federal do Rio de Janeiro, Brasil
[email protected]
[email protected]
between opposing negotiators, facilitating the exchange of
information, communication, and enabling a possible cooperation
between them.
RESUMO
As constantes alterações no cenário social, econômico e político
têm intensificado as atividades de negociação nas organizações e
ampliado o interesse de pesquisadores neste processo. As
tecnologias apresentadas na literatura sobre sistemas de suporte a
negociação apresentam grandes possibilidades para troca de
informação, automatização e suporte à tomada de decisão na
negociação. Entretanto, a despeito do reconhecimento da
necessidade e valorização da gestão do conhecimento, pouco
esforço tem sido realizado no sentido de utilizá-la para capturar e
gerir o conhecimento adquirido durante a negociação. Portanto, o
objetivo deste trabalho é a definição e desenvolvimento de um
ambiente de negociação eletrônica que combina um modelo de
negociação e um modelo de gestão do conhecimento. Este
ambiente deverá ser capaz de gerenciar o conhecimento adquirido
em cada negociação, facilitar a aquisição de novos
conhecimentos, criar meios eficientes de interação entre
negociadores aliados para que eles troquem experiências e
disseminem o conhecimento adquirido e entre negociadores
oponentes, facilitando a troca de informações, a comunicação e
uma possível cooperação entre eles.
Palavras-Chave
Sistemas de Suporte à Negociação, Gestão do Conhecimento,
CSCW.
Key-Word
Negotiation Support Systems, Knowledge Management, CSCW.
1. INTRODUÇÃO
As constantes alterações no cenário social, econômico e político
têm intensificado as atividades de negociação nas organizações e
ampliado o interesse de pesquisadores neste processo.
Por outro lado, a diversidade de aspectos que influenciam as
decisões e os resultados obtidos em uma negociação motiva a
elaboração de visões diferenciadas do processo onde são
considerados diferentes instrumentos teóricos e desenvolvidas
diferentes abordagens de estudo na tentativa de diminuir o efeito
do conflito e facilitar a busca por acordos que maximizem os
ganhos obtidos.
ABSTRACT
The constant changes of the social, economic and political
scenario have intensified negotiation activities in organizations
and increased academic interest in the process. The technologies
presented in the literature on negotiation support systems hold
huge possibilities for the exchange of information,
automatization, and support to decision-making in the negotiation.
However, despite the acknowledgment of the need, and the value
attached to the management of knowledge, little has been done in
the sense of using it to capture and manage the knowledge
acquired during the negotiation. The objective of this work is,
thus, the definition and development of an environment of
electronic negotiation that blends a negotiation model and a
knowledge management model. This environment should be
capable of managing the knowledge acquired at each negotiation,
facilitating the acquisition of new knowledge, creating efficient
means of interaction between allied negotiators so that they can
exchange experiences and disseminate acquired knowledge, and
O caráter pessoal das negociações, a independência dos
participantes na tomada de decisão e a interdependência para
alcançar os objetivos contribuem para a sua complexidade. Como
todo processo de tomada de decisão, um aspecto importante da
negociação é a quantidade e a qualidade das informações obtidas
acerca do processo. Diante da necessidade de processamento e
gerenciamento dos dados, informações e conhecimento
pertinentes ao processo e de uma interação eficiente entre as
partes envolvidas, a aplicação correta da tecnologia se torna
extremamente importante.
As tecnologias apresentadas na literatura sobre sistemas de
suporte a negociação apresentam grandes possibilidades para
troca de informação, automatização e suporte à tomada de decisão
na negociação. Entretanto, a despeito do reconhecimento da
necessidade e valorização da gestão do conhecimento, pouco
esforço tem sido realizado no sentido de utilizá-la para capturar e
gerir o conhecimento adquirido durante a negociação.
20 a 22 de Novembro de 2006
Natal, RN, Brasil
O objetivo deste trabalho é apresentar o NegoSys, um ambiente
de suporte à negociação que foi elaborado a partir de dois
modelos: um modelo de decisão e um modelo de negociação.
© Sociedade Brasileira de Computação
Comissão Especial de Sistemas
Colaborativos
O modelo de decisão foi definido a partir da gestão do
conhecimento, que é usada para prescrever o comportamento dos
negociadores através da captura e reutilização do conhecimento
Anais do III Simpósio Brasileiro de Sistemas Colaborativos, pp. 129-139.
129
adquirido durante a negociação. Já o modelo de negociação do
NegoSys foi baseado em uma adaptação do Modelo 3C.
Estratégias
Preferências
tem
O artigo está organizado como se segue: na seção 2, são
apresentados alguns aspectos teóricos negociação. Na seção 3, é
apresentada a arquitetura do NegoSys, bem como, algumas
considerações sobre os modelos elaborados. Na seção 4, é
apresentado o protótipo implementado e os resultados obtidos
com algumas experiências de utilização do sistema.
geram
Partes
Critério
executadas
Eventos
referem se à
restringidos por
Tarefas
Alternativas
determina
Atributos
conduzidas por
2. NEGOCIAÇÃO
Figura 1 – Entidades e Relacionamentos da Negociação [6]
Historicamente, a negociação vem sendo estudada por diversos
pesquisadores que apresentam diferentes abordagens sobre o
processo. Um aspecto que diferencia essas abordagens é a
distinção entre estudo normativo, descritivo e prescritivo [1].
2.1 Etapas da Negociação
Na literatura sobre negociação, os autores apresentam diferentes
esquematizações para o processo. Para [3] , em um processo de
negociação, podem ser identificadas quatro etapas ou fases:
preparação, criação de valor, divisão de valor e execução. De
acordo com [2], a análise de cada uma dessas etapas, permite
identificar um conjunto de elementos que determinam aspectos
significativos da negociação.
O foco do estudo normativo é modelar o processo assumindo um
comportamento racional dos negociadores. Na abordagem
prescritiva, o objetivo é prescrever o comportamento dos
negociadores, de maneira que os mesmos alcancem bons
resultados durante a negociação e a excelência no processo. Na
abordagem descritiva, os pesquisadores estão interessados em
entender e descrever o comportamento dos negociadores, com o
foco nos aspectos comportamentais e na forma como as decisões
são tomadas efetivamente.
A primeira etapa da negociação é a Preparação. Nesta etapa, o
outro negociador pode ainda não estar presente, pois se trata do
planejamento inicial. As informações relacionadas ao cenário
político, econômico, social e demais fatores externos, bem como
informações sobre as partes envolvidas, ajudam a identificar o
contexto onde a negociação está sendo desenvolvida. Outro
elemento importante é o interesse, que corresponde à relação
entre a necessidade de um negociador e o objeto a ser negociado.
Independente da cultura, idade, raça, cor, religião, as pessoas têm
seus próprios interesses que podem variar em função das
circunstâncias direcionadas pelo contexto. Para cada negociador,
é essencial analisar qual é o seu real interesse e identificar os
interesses da outra parte, uma vez que, para chegar a um acordo,
um negociador deve proporcionar algo que desperte o interesse da
outra parte sem prejudicar seu próprio interesse.
Em [9], o autor apresenta uma abordagem teórica de conexão
entre essas duas perspectivas que foi denominada Perspectiva
Prescritiva/Descritiva. Neste trabalho, o autor descreve e analisa
uma variedade de negociações realizadas em diferentes contextos.
A análise dessas negociações é usada para desenvolver
prescrições aos negociadores. De acordo com essa abordagem, as
prescrições devem ser baseadas na melhor descrição possível do
ambiente da negociação e do comportamento dos negociadores.
Vários autores afirmam que esta abordagem leva a melhores
prescrições do que os modelos tradicionais [1].
No trabalho apresentado por Huang [6], o autor afirma que a
negociação é um processo que envolve um conjunto de entidades
que se relacionam e o final do processo pode, ou não, ser um
acordo. A figura 1 representa a visão do autor. As entidades são
representadas pelos retângulos e os relacionamentos, pelas setas.
Segundo Huang [6], uma negociação inclui um conjunto de
tarefas como, por exemplo: a definição do problema, identificação
e análise das alternativas, especificação das preferências,
interação entre as partes e análise das concessões. Essas tarefas
são conduzidas por eventos (etapas da negociação) e executadas
pelas partes envolvidas na negociação. Cada negociação envolve,
no mínimo, duas partes. Por outro lado, uma negociação envolve
um conjunto de atributos (questões) e cada atributo determina um
conjunto de alternativas e pode ser restringido por um conjunto de
critérios. Por fim, cada parte age segundo uma estratégia para
gerar seu conjunto de preferências em relação às alternativas
referentes a cada atributo e qual a importância desses atributos.
Outro aspecto importante desta etapa se refere à análise das
alternativas. A razão para se negociar mostra-se presente à
medida que um determinado agente (parte) detém algumas
características que, quando comparadas a outros agentes (partes)
com quem se poderia negociar, mostram-se mais vantajosas.
Nesse sentido, quando se está inconsciente das alternativas, não
há como assegurar que, daquela negociação, poderá sair o melhor
acordo para uma parte ou que poderia ser melhor não fechar um
determinado acordo e optar por tentar uma nova negociação. Um
conceito importante para a definição dessa estrutura é a BATNA
que é o acrônimo de “Best Alternative To Negotiation
Agreement”, conceito desenvolvido por [4]. BATNA trata-se do
curso de ação baseado na preferência do negociador, caso não
haja consenso. Conhecer a BATNA significa saber quais são suas
alternativas se não conseguir chegar a um acordo na negociação
em pauta [10].
A etapa posterior à preparação é a Criação de Valor onde os
negociadores já devem estar preparados para uma maior interação
com a(s) outra(s) parte (s). Deste modo, a comunicação e o
relacionamento são os elementos que deverão pautar o tom das
conversas.
A terceira etapa, Divisão de Valor, é por diversas vezes marcada
pela contenda e pela dificuldade de comunicação, pois se trata do
momento em que as partes começam a competir para a troca de
130
classificada como Ganha/Perde (G/P). O negociador com a
postura Ganha/Perde escolhe a competição e relacionamentos de
curto prazo priorizando os resultados. Só opta pela verdade, caso
possa tirar proveito dela e, pelo longo prazo, caso possa criar uma
relação de dependência. Tem como proposição básica obter o
melhor resultado possível. Deste modo, os resultados de uma
parte são prejudicados em detrimento da outra.
valores. Esta etapa se estende até o momento em que as partes
alcançam um acordo, ou quando as partes (ou uma das) concluem
que não existe nenhum acordo possível.
Assim como na Criação de Valor, a comunicação e o
relacionamento entre as partes requerem uma significativa
atenção nesta etapa. As partes envolvidas se comunicam e enviam
suas propostas para tentar encontrar áreas de possíveis acordos.
Portanto, é necessário refletir sobre a formatação dessas propostas
e as possíveis concessões que possam direcionar a concordância
de idéias.
A negociação cooperativa ou integrativa (também conhecida
como negociação colaborativa) é classificada como Ganha/Ganha
(G/G) sendo positiva para ambos os lados. É um processo
cooperativo onde são encontradas alternativas de ganho comum,
isto é, que atendam aos interesses de todas as partes. Na
negociação G/G, a efetividade do acordo deve ser produto da
qualidade pela aceitação, ou seja, os interesses legítimos das
partes foram atendidos e as partes ficaram satisfeitas e se
comprometem com o cumprimento do que foi acordado.
Na Divisão de Valor, é fundamental que, ao apresentar suas
propostas, um negociador considere os padrões analisados durante
a preparação na tentativa de demonstrar como a equidade das
propostas e como elas atendem às necessidades e expectativas da
outra parte. Por fim, as partes devem verificar o que está sendo
definido e formalizar o acordo através da elaboração do Contrato.
Na Execução, é preciso verificar o que foi acordado e tomar as
medidas necessárias para o cumprimento do que foi negociado.
Esta etapa envolve também as discussões sobre as garantias e
mecanismos para assegurar, controlar e monitorar a execução do
acordo.
3. ARQUITETURA DO NEGOSYS
Três elementos são significativos nesta etapa: o relacionamento, o
tempo e a conformidade. A conformidade se refere à
concordância entre o acordo obtido e as atividades a serem
executadas em função deste acordo. Já a análise do tempo deve
considerar as disposições estabelecidas no acordo a fim de
determinar o momento apropriado para a execução dessas
atividades.
O primeiro requisito aponta em direção à elaboração de um
modelo de decisão capaz de capturar a lógica utilizada e o
conhecimento associado à tomada de decisão durante a
negociação, permitindo a posterior recuperação desses elementos.
A partir da análise da literatura sobre negociação, foi possível
identificar dois requisitos básicos para elaboração de um ambiente
de negociação eletrônica: o suporte à decisão e o suporte ao
processo.
O modelo de decisão definido no NegoSys se baseia na
perspectiva Prescritiva/Descritiva proposta por [9], no qual, a
gestão do conhecimento é usada para prescrever o comportamento
dos negociadores através da captura e reutilização do
conhecimento adquirido durante a negociação.
2.2 Classificações da Negociação
Ao invés de definir a negociação, muitos pesquisadores e
profissionais da área têm seguido um caminho que leva à
descrição de dicotomias da negociação, considerando,
principalmente, as formas como as decisões são tomadas e o foco
dos negociadores [8].
O segundo requisito representa a necessidade de definição de um
modelo de suporte ao processo que contemple todos os
componentes necessários para apoiar os negociadores na
execução das atividades intrínsecas ao processo.
No trabalho apresentado por [4], os autores classificam a
negociação em barganha de propostas e negociação baseada em
princípios. De acordo com os autores, a maioria das negociações é
conduzida através da barganha posicional, que, normalmente,
resulta em impasses difíceis de solucionar ou em um acordo que é
percebido por uma das partes como tendo sido imposto devido à
força superior da outra parte. Os autores sugerem que em vez de
se basear em posições, a negociação deve ser baseada em
princípios e deve ter como ênfase os interesses subjacentes que
motivam as partes a assumirem suas posições. Dessa forma,
podem ser desenvolvidas soluções criativas que atendam, pelo
menos em parte, aos interesses subjacentes de cada uma das
partes, permitindo assim uma resolução do conflito baseada em
princípios e mutuamente vantajosa.
Considerando o aspecto social da negociação, foi possível
entender o processo como uma forma específica de trabalho em
grupo, na qual, o objetivo comum é alcançar um acordo
mutuamente aceitável. Mais especificamente, a análise das
características que fundamentam uma negociação cooperativa
induz o entendimento que, neste caso, as partes trabalham
cooperativamente para alcançar o acordo.
O aspecto que corrobora com esta concepção vem de uma
característica singular deste processo: mesmo com a autonomia
em relação à tomada de decisão, independente da estratégia
utilizada e dos interesses dos negociadores, a negociação exige
uma interdependência entre as partes envolvidas, uma vez que um
acordo não pode ser alcançado unilateralmente. Esta
interdependência representa a necessidade de uma participação
conjunta das partes que precisam co-operar para que o acordo seja
alcançado. Além disso, a negociação exige a comunicação entre
as partes e a coordenação das atividades envolvidas.
Outra classificação da negociação encontrada na literatura é
baseada na estratégia adotada pelos negociadores. Na definição da
estratégia, podem existir alguns dilemas, como por exemplo:
cooperação ou competição e curto prazo ou longo prazo. A
resposta para esses dilemas define o tipo da negociação.
Tradicionalmente, existem dois tipos de negociação: competitiva
(distributiva) e cooperativa (integrativa) [9]. A negociação
competitiva ou distributiva (também conhecida como Soma-Zero
no contexto da Teoria do Jogo e Pesquisa Operacional) é
O modelo de negociação do NegoSys foi elaborado baseado na
adaptação do Modelo 3C descrita por [5]. Para negociar, é
necessário trocar informações (comunicação). Para alcançar o
acordo, é necessário executar algumas atividades que requerem a
131
negociadores tenham flexibilidade em relação aos atributos
negociados e à agenda da negociação, durante esta etapa, as
partes envolvidas devem “negociar” quais atributos serão
considerados durante o processo e os prazos estabelecidos
para conclusão da negociação. Vale ressaltar que, na etapa
anterior, os negociadores especificam os atributos que os
mesmos consideram importantes. Entretanto, os atributos
que serão realmente negociados devem ser acordados entre
os negociadores durante esta etapa. Essas informações são
denominadas Parâmetros da Negociação e são visualizadas
por todos os negociadores envolvidos no processo. Nesta
etapa, os negociadores devem interagir através de
mensagens classificadas como “Proposta de Definição”.
Além disso, os negociadores ainda podem argumentar uma
proposta enviada a partir do envio de mensagens do tipo
“Argumentação”, ou ainda, enviar mensagens não
diretamente relacionadas a uma proposta, denominadas
“Conversação”;
operação em conjunto entre as partes (co-operação), além de uma
organização dessas atividades (coordenação). A partir da cooperação e gerenciados pela coordenação das atividades, que
inclui a troca de informações na comunicação, o acordo é definido
e os compromissos são estabelecidos. Além disso, em um
ambiente de negociação eletrônica, a percepção pode interferir
diretamente em um dos elementos da negociação que foi
destacado no capítulo 2, o tempo, uma vez que, a partir da
percepção, os negociadores tomam ciência das atividades a serem
executadas, o que pode acelerar o processo.
No que se refere à comunicação, no NegoSys, os negociadores
podem se comunicar através de ferramentas que apóiam a
comunicação escrita síncrona e assíncrona: mensagens
instantâneas, correio eletrônico e listas de discussão.
A primeira vantagem dessa alternativa é a possibilidade de
realização de diversas conversações simultâneas em paralelo,
enquanto nas conversações por meio da fala, as pessoas atendem a
um protocolo natural de comunicação, aguardando sua vez de
falar. Outra vantagem na comunicação escrita é a possibilidade de
persistência das mensagens ou anotações, facilitando aos
negociadores recuperarem rapidamente uma seqüência de
informação tanto da negociação a qual estão participando, quanto
daquelas as quais não participaram, permitindo a reutilização
dessas informações e a utilização de ferramentas de comunicação
assíncronas.
Em relação à coordenação, foi necessário sistematizar a
negociação e definir o fluxo de atividades a serem executadas no
NegoSys. Para atender esse requisito, foi definido o Workflow da
Negociação que, além de representar o fluxo das atividades
executadas, deve ser capaz de representar a sincronização dessas
atividades e o fluxo de informações. Vale ressaltar que, esta
sistematização e possível automação das atividades da negociação
devem ser flexíveis o suficiente para suportar as diversas
variações e complexidade do processo.
O Workflow da Negociação é composto pelas seguintes etapas:
Proposta de Negociação, Preparação, Definição dos Parâmetros
da Negociação, Negociação dos Atributos, Contrato e Avaliação
da Negociação como ilustrado na figura 2:
x
proposta de negociação: fase inicial do processo de
negociação onde um dos negociadores, após identificar e
definir suas necessidades, deve iniciar o contato com a
outra parte, enviando uma proposta de negociação;
x
preparação: nesta etapa, os negociadores devem se preparar
para a negociação definindo um conjunto de informações
que são essenciais à tomada de decisão durante o processo,
como por exemplo: atributos que considera importante,
valores de reserva e nível de aspiração para cada atributo,
prioridade entre os atributos especificados e análise das
alternativas, interesses e opções. No NegoSys, essas
informações são denominadas Parâmetros do Negociador e
são usadas para o suporte à decisão. Vale ressaltar que, um
negociador não tem acesso aos Parâmetros de outro
negociador, essa informação não é publica;
x
definição dos parâmetros da negociação: nesta etapa, os
negociadores devem interagir para definição das
informações comuns que serão utilizadas pelo sistema para
automação de algumas atividades. Para permitir que os
132
x
negociação dos atributos: nesta etapa, os atributos definidos
na etapa anterior devem ser negociados de forma
seqüencial. Nesta etapa, os negociadores interagem através
do envio de mensagens que são classificadas como: oferta.
Além disso, ainda podem enviar mensagens do tipo
argumentação e conversação. É nesta etapa que os valores
de cada atributo são definidos pelos negociadores. Caso o
acordo seja obtido, começa a etapa denominada Contrato,
onde o contrato resultante do acordo é elaborado.
Entretanto, um negociador pode desistir da negociação e
finalizar o processo sem acordo;
x
contrato: após o acordo, o NegoSys deve gerar um contrato
onde serão especificadas as seguintes informações: dados
dos negociadores, o acordo obtido (atributos negociados e
seus respectivos valores), datas de início e fim da
negociação e observações gerais que pode ser definidas
pelos negociadores;
x
avaliação da negociação: nesta etapa, os negociadores
apresentam suas percepções e julgamentos a respeito da
negociação finalizada, onde devem ser avaliadas a
negociação, o acordo obtido, a contraparte, as práticas
adotadas e decisões tomadas durante a negociação. Estas
informações podem ser utilizadas por negociadores de uma
mesma organização para facilitar a tomada de decisão em
futuras negociações.
A
B
Propor
Negociação
Confirmar
Interesse
Gerência da Negociação
Negociador
Definição dos Parâmetros da Negociação
A
Preparação
proposta de definição
B
• argumentação
• conversação
Negociação dos atributos
A
B
• oferta
• argumentação
• conversação
Execução
Parâmetros do
Negociador
B
Espaço do Negociador
Parâmetros do
Negociador
Negociação dos Atributos
Contrato
Módulo de Avaliação
Workflow da Negociação
•Histórico da Negociação
•Blueprint da Negociação
Módulo de Avaliação
GCN
Negociações Similares
Centro de Melhores e Piores Práticas
Centro de Competências
Páginas Amarelas
Workflow da Negociação
•Histórico da Negociação
•Blueprint da Negociação
Negociações Similares
Módulo de Gestão do
Conhecimento na Negociação
Centro de Melhores e Piores Práticas
Centro de Competências
Páginas Amarelas
Encerramento
Elaboração do Contrato
A
Mensagens
Parâmetros da Negociação
Acordo não
foi possível
Acordo
Gerência da Negociação
Proposta de
Negociação
Espaço do Negociador
Divisão de Valor
Definição ou redefinição
dos Parâmetros da Negociação
Criação de Valor
Negociador
Mesa de Negociação
Proposta de
Negociação
A
Organização A
B
Memória da Negociação
Organização B
Figura 3 – Arquitetura do NegoSys
Os módulos que compõem a Mesa de Negociação são: Gerência
da Negociação e Espaço do Negociador. O Gerente de
Negociação de uma organização é o usuário responsável pela
gerência das informações relacionadas às negociações da
organização. Cabe ao gerente da negociação cadastrar os
negociadores, manter as informações relacionadas à Organização
e enviar propostas de negociação. A figura 4 ilustra o formulário
de acesso ao módulo Gerente de Negociação.
Avaliação
A
B
Figura 2 – Workflow da Negociação
Além do Workflow da Negociação, para utilização da tecnologia
como suporte a coordenação dessas atividades, foi necessário
definir o conjunto de regras que devem ser consideradas. Este
conjunto de regras compõe o Protocolo de Negociação, definido
e elaborado para o NegoSys de forma a garantir que as atividades
exercidas pelos negociadores durante uma negociação sejam
coerentes com o modelo proposto [8] .
No que se refere à percepção, no NegoSys, os negociadores são
notificados à medida que o processo evolui. Estas notificações se
referem a três aspectos diferentes: propostas e mensagens
recebidas, agenda da negociação e inclusão de formas de
conhecimento relevantes ao processo. Como exemplo, considere o
caso onde um negociador A envia uma oferta para um negociador
B. As informações referentes à oferta enviada são visualizadas
somente no NegoSys. Entretanto, o sistema envia,
automaticamente, uma mensagem para o correio eletrônico do
negociador receptor notificando-o do recebimento da oferta.
A arquitetura do NegoSys está representada na figura 3 sendo
dividida em duas camadas: i) Mesa de Negociação (Camada de
Negociação) e ii) GCN (Camada de Gestão do Conhecimento na
Negociação). Na Mesa de Negociação, são definidos os módulos
funcionais relacionados ao suporte ao processo de negociação. No
GCN, são definidos os módulos responsáveis por apoiar à gestão
do conhecimento. Ainda na figura 3, é representada a Memória da
Negociação que ilustra o componente da arquitetura responsável
pelo armazenamento de todas as formas de conhecimento
gerenciadas pelo sistema.
Figura 4 – Módulo de Gerência de Negociação
O módulo Espaço do Negociador, ilustrado na figura 5, representa
a área do sistema que deverá ser usada por um negociador para
que o mesmo tenha acesso as demais funcionalidades do sistema,
sendo composto pelos seguintes sub-módulos: Alterar Perfil,
Mensagens, Negociações Finalizadas, Negociações em
Andamentos e Contratos. Além disso, a partir deste módulo, o
negociador tem acesso à camada de Gestão do Conhecimento
(GCN).
As negociações não finalizadas, nas quais o negociador atua, são
visualizadas a partir do submódulo Negociações em Andamento.
Ao editar (abrir) uma negociação em andamento, o negociador
visualiza algumas informações e tem acesso aos submódulos
133
Parâmetros do Negociador, Parâmetros da Negociação e Histórico
de Propostas.
Definição dos Parâmetros da Negociação (descrita no
Workflow). O negociador que recebe a proposta de definição de
parâmetro pode optar por aceitar ou recusar a proposta.
No submódulo Parâmetros da Negociação, são visualizados todos
os parâmetros que foram definidos (negociados) pelos
negociadores. Portanto, ao ser enviada uma proposta de definição
de parâmetro da negociação, caso o negociador receptor aceite a
proposta recebida, o valor do parâmetro é definido e torna-se
disponível para visualização neste submódulo, conforme ilustrado
na figura 7.
Figura 5 – Módulo Espaço do Negociador
De acordo com as etapas descritas no Workflow, durante a
preparação, os negociadores devem analisar um conjunto de
elementos que resulta em uma série de informações importantes
para negociação atual e que podem ser extremamente úteis nas
futuras negociações, facilitando a tomada de decisão. No
Workflow da Negociação, essas informações foram denominadas
Parâmetros do Negociador e devem ser inseridas no sistema a
partir do submódulo Parâmetros do Negociador, ilustrado na
figura 6.
Figura 7 – Submódulo Parâmetros da Negociação
Além disso, a atividade de Negociação de Atributos, descrita no
Workflow, é realizada a partir da interação do negociador com
este submódulo quando do envio de uma mensagem do tipo
oferta. Neste caso, o negociador deve propor um valor para um
dos atributos listados neste submódulo, iniciando uma rodada de
negociação. A figura 8 ilustra o formulário, no qual, um
negociador elabora uma mensagem do tipo oferta a ser enviada à
sua contraparte.
Figura 6 – Submódulo Parâmetros do Negociador
No formulário representado na figura 6, os negociadores também
terão acesso às seguintes funcionalidades: elaboração da Batna,
análise dos Interesses e análise das Opções.
Tendo definido os Parâmetros do Negociador, que inclui a data
desejável para o término da negociação, tempo máximo desejável
de cada rodada, a descrição da negociação e o conjunto de
atributos negociáveis, o negociador, a partir do envio de uma
proposta de definição de parâmetro, inicia a atividade de
Figura 8 – Elaboração de mensagens do tipo oferta
No submódulo Elaboração do Contrato, é formalizado o contrato
gerado a partir do acordo definido entre os negociadores. As
informações referentes ao contrato devem ser inseridas pelo
134
das atividades que devem ser realizadas durante uma negociação.
As atividades definidas no modelo de negociação são
representadas pelas caixas verdes. Vale destacar que, a atividade
em vermelho representa a atividade em execução no momento.
Cada atividade é composta de tarefas que são classificadas de
acordo com o tipo e o estado da tarefa.
sistema. Cabe aos negociadores aceitar o contrato ou ainda,
propor a inclusão de uma observação de contrato. O módulo
Avaliação é responsável por apoiar o negociador na avaliação da
negociação que inclui a avaliação do acordo, contraparte,
negociação e das estratégias adotadas.
No que se refere à Camada de Gestão do Conhecimento, os
módulos que compõem esta camada são responsáveis por
disponibilizar todas as funcionalidades necessárias à gestão do
conhecimento criado no NegoSys. O conhecimento gerenciado
deve ser capturado durante a interação dos agentes humanos com
o NegoSys (negociador, gerente da negociação e especialistas).
Sendo assim, a Mesa de Negociação pode ser considerada um dos
recursos do sistema para captura do conhecimento. Por outro lado,
não é o único, pois os módulos descritos no GCN poderão ser
manipulados por esses agentes humanos, mesmo quando uma
negociação não estiver sendo executada. Além disso, o GCN é
responsável por facilitar a disseminação do conhecimento entre
negociadores aliados, o que pode ser considerada uma fonte
diferente para a captura do conhecimento.
No que se refere ao tipo, uma tarefa é classificada como padrão
quando se refere a uma das tarefas definidas nas atividades que
compõe o Workflow da Negociação. Por exemplo, a elaboração
do BATNA e a análise dos interesses na atividade de Preparação.
Além disso, durante o andamento de uma atividade do Workflow,
o negociador pode optar por incluir uma tarefa não padrão, ou
seja, uma tarefa não definida no Workflow como, por exemplo,
suponha que um negociador tenha consultado um especialista da
organização ou tenha interagido com uma pessoa externa à
organização obtendo uma informação importante para a tomada
de decisão. O negociador pode inserir esta informação no sistema
a partir da inclusão de uma nova tarefa. Neste caso, a informação
inclui o especialista ou a pessoa com quem o negociador
interagiu. Em relação ao estado, uma tarefa é classificada em: não
iniciada, em andamento e concluída. O estado das tarefas
classificadas como padrão é automaticamente atualizado pelo
sistema. Por outro lado, o estado de uma atividade não padrão é
controlado pelo negociador que é o responsável pela inclusão da
tarefa.
Esta camada é composta pelos seguintes módulos: Workflow da
Negociação,
Centro
de
Competências,
Comunidades,
Negociações Similares, Centro de Piores e Melhores Práticas e
Páginas Amarelas.
O Workflow da Negociação, ilustrado na figura 9, contempla duas
funcionalidades do NegoSys: acesso ao histórico das atividades
realizadas durante a negociação e a visualização do planejamento
Figura 9 – Módulo Workflow da Negociação
135
Figura 10 – Módulo Centro de Melhores e Piores Práticas
Mais detalhes sobre o Vocabulário da Negociação pode
encontrado em PAULA (2006).
No módulo Centro de Melhores e Piores Práticas, ilustrado na
figura 10, os negociadores poderão disponibilizar informações
sobre as práticas adotadas em uma negociação e seus resultados.
Vale ressaltar que, em uma negociação, os erros também são
fontes importantes de aprendizado e uma experiência mal
sucedida deve ser armazenada e documentada para que se evitem
futuros erros. Por isto, neste módulo, os negociadores também
podem cadastrar práticas de negociações mal-sucedidas.
No NegoSys, o módulo Comunidades provê um fórum para troca
e aquisição do conhecimento tácito referente a um domínio,
permitindo que negociadores aliados interajam e troquem
conhecimento. Essa troca e aquisição do conhecimento podem ser
de maneira síncrona ou assíncrona. Na forma síncrona, os
negociadores podem entrevistar e realizar reuniões virtuais com
um especialista através da utilização de ferramentas de reunião
eletrônica. Ou então, uma dúvida é submetida a uma Comunidade,
e algum especialista pertencente a esta comunidade pode
respondê-la posteriormente. Esta é a troca assíncrona de
conhecimento.
No NegoSys, toda prática deve ser associada às seguintes
informações: a negociação que originou a prática, o autor da
prática, a identificação da contraparte que participou da
negociação, a pratica adotada e, caso seja uma prática de sucesso,
que melhorias esta acarretou à negociação e os detalhes sobre o
que foi obtido com a prática como, por exemplo, inovação e
melhoria de estratégias, redução do tempo de negociação,
otimização dos resultados e melhorias no relacionamento com a
outra parte. Por outro lado, caso a prática não tenha obtido bons
resultados, os problemas gerados devem ser especificados.
O módulo Centro de Competências é responsável por permitir a
identificação das competências disponíveis a uma organização. A
partir desta associação, é possível identificar profissionais dentro
da organização, outros negociadores ou não, que podem ser
consultados quando um especialista é necessário para executar
uma tarefa ou resolver um problema ou ainda, encontrar um
negociador com um determinado conhecimento quando o
responsável pela negociação é afastado. Entretanto, para prover
uma identificação do conhecimento, no NegoSys, é possível
executar as seguintes atividades: associar especialistas a
competências; associar as competências com o conhecimento
explícito (documentos que representam uma competência) e
associar uma negociação a competências. A figura 11 ilustra o
Cada prática deve ser associada a um termo-chave que é usado
para descrever certos aspectos da realidade e que tem um
significado para negociação, facilitando o acesso e navegação
pela base de conhecimento. No NegoSys, os termos que
qualificam os itens de conhecimento criados e disponibilizados
foram definidos em um Vocabulário de Negociação elaborado a
partir da pesquisa da literatura do processo. Os termos definidos
no vocabulário são organizados em áreas de competências. Além
disso, cada área está associada a um conjunto de competências.
136
atributos considerados; condição de término da negociação: sem
ou com acordo e data final e inicial da negociação.
formulário, no qual, é possível consultar um especialista
associado a uma determinada competência.
4. PROTÓTIPO
Nesta seção, serão apresentadas algumas considerações sobre o
protótipo do NegoSys que foi implementado a partir da
arquitetura descrita na seção anterior, desenvolvido a partir das
seguintes especificações de software: Microsoft Internet
Information Services – IIS (Servidor Web), Microsoft SQL Server
2000 (Servidor de Banco de Dados), Macromedia Dreamweaver
(Editor HTML/ASP) e Macromedia Fireworks (Editora de
Imagens).
As folhas de estilos (CSS) e todo o código HTML foram
desenvolvidos de acordo com o padrão definido pelo W3C. Além
disso, a organização do código gerado foi estruturada baseada no
padrão de projeto MVC (Model View Controller), dividindo o
código em 3 camadas que foram armazenadas em diretórios
diferentes: classes de domínio, visões e controladores. Esta
estrutura facilitou o processo de desenvolvimento do protótipo,
isolando as regra de negócio da interface.
Figura 11 – Consulta por especialista no Centro de
Competências
4.1 Experimentos Realizados
No atual estágio de desenvolvimento do NegoSys, foi realizada
uma experiência de utilização do sistema a partir da simulação de
um caso fictício de negociação. Nesta experiência, o NegoSys foi
posto em prática na tentativa de validar, principalmente, a
hipótese de que o modelo de negociação elaborado, que foi usado
como base para definição dos componentes de suporte ao
processo, representa uma alternativa viável para efetivar um
processo de negociação. A seguir, serão descritos os recursos
utilizados, o cenário, os participantes e as atividades realizadas
durante as experiências.
O módulo de Páginas Amarelas pode ser usado para localizar
facilmente fornecedores de dados, bem como realizar um controle
da qualidade e periodicidade do dado fornecido.
Para isto, este módulo deve dispor de ferramentas de cadastro,
alteração, edição e busca de fornecedores de dados, periodicidade
que o dado é fornecido, as negociações que utilizaram esses dados
e informações referentes à avaliação do dado. A figura 12 ilustra
o formulário que exibe as informações de um dado cadastrado no
sistema.
x
Recursos utilizados: um questionário para qualificação dos
participantes; um questionário de avaliação do NegoSys; um
documento contendo a descrição do problema (caso de
negociação elaborado); um documento contendo algumas
considerações a respeito da utilização do Negosys;
x
Cenário: foram realizadas 8 negociações considerando o
mesmo caso. Além disso, os negociadores que representaram
as organizações definidas no caso de negociação foram
dispostos em salas diferentes de acordo com a parte que
representavam. Foi solicitado que, durante as negociações, os
participantes que representavam partes oponentes não se
comunicassem, a não ser, a partir do NegoSys.
x
Participantes: foram convidados 8 participantes, entre eles,
dois alunos de doutorado e seis alunos de mestrado do
Programa de Engenharia de Sistemas da COPPE. Algumas
informações a respeito da experiência desses participantes
como negociadores e de utilização de sistemas de suporte à
negociação foram identificadas a partir do questionário de
avaliação. Todos os participantes informaram não possuir
experiência na utilização de sistemas de suporte à
negociação. Três dos oito participantes possuem algum
conhecimento sobre o processo de negociação a partir da
análise de alguns trabalhos da literatura.
x
As etapas realizadas no procedimento foram:
Figura 12 – Módulo Páginas Amarelas
O módulo de Negociações Similares deve permitir a consulta em
negociações anteriores de maneira que o conhecimento criado
possa ser reutilizado para facilitar as atividades do negociador
durante a especificação dessas informações. Para realização dessa
função, no NegoSys, os negociadores podem realizar consultas na
base de negociações baseadas nos seguintes critérios: nome da
organização que participou da negociação; nome da contraparte;
o
137
Preenchimento do questionário de qualificação;
o
Leitura, por parte de cada participante, da descrição da
negociação, considerando as informações particulares;
o
Explicação oral sobre o uso do NegoSys;
o
Negociação usando o NegoSys;
o
Preenchimento do questionário de avaliação do NegoSys
x
A partir destes experimentos inicias, foram identificadas
informações importantes para o aprimoramento do sistema. No
que se refere à facilidade de utilização do NegoSys, basicamente,
os participantes não apresentaram muita dificuldade. Uma
observação importante se refere à utilidade do Workflow da
Negociação que foi considerado pelos participantes um facilitador
para a utilização do sistema, uma vez, que o fluxo de tarefas e a
descrição de cada uma delas estão acessíveis a qualquer momento.
Em relação ao modelo de negociação elaborado, pode-se afirmar
que a hipótese mencionada anteriormente foi confirmada, visto
que, a representação da negociação e o fluxo de atividades
definidas na fase de preparação foram considerados, pela maioria
dos participantes, como sendo de extrema utilidade. Portanto,
pode-se concluir que os componentes de suporte ao processo
definidos no NegoSys representam uma alternativa viável para
efetivação da negociação. Contudo, foram identificadas novas
funcionalidades que podem facilitar esta preparação. Estas
funcionalidades foram traduzidas em novos requisitos funcionais
que vem sendo implementados no sistema.
Coordenação: assim como nos outros SSN analisados,
no NegoSys, foi elaborado um protocolo de negociação
para garantir que as atividades executadas pelos
negociadores sejam coerentes com o modelo de
negociação proposto. Contudo, o protocolo de
negociação do NegoSys, se comparado aos outros
trabalhos, é mais flexível em relação aos seguintes
aspectos:
ƒ
Flexibilidade em relação à escolha dos
atributos considerados
ƒ
Flexibilidade em relação ao momento de
escolha dos atributos (os atributos podem
ser determinados antes ou durante a fase de
negociação dos atributos);
ƒ
Flexibilidade em relação ao cronograma da
negociação;
ƒ
Re-negociação
cronograma
ƒ
Negociação para a inclusão de observação
no contrato
de
atributos
e
do
Ainda no que se refere à coordenação, o Workflow da Negociação
representa três diferencias significativos em relação aos demais
trabalhos. Primeiro, no NegoSys, é possível visualizar o histórico
de todas as atividades realizadas, não somente das propostas
enviadas e recebidas. Segundo, no NegoSys, é possível que os
negociadores façam o registro de outras atividades diferentes das
que foram definidas no Workflow, como por exemplo, a consulta
de especialistas e documentos. Por fim, no NegoSys, ainda é
possível planejar as atividades futuras.
5. CONSIDERAÇÕES FINAIS
Este estudo procurou investigar a negociação e todos os requisitos
necessários para elaboração de um ambiente computacional na
WEB que permita que negociadores utilizem este ambiente e
aprimorem sua capacidade de negociar a partir da reutilização do
conhecimento que é criado durante o processo.
x
Cooperação: a operação em conjunto entre negociadores
oponentes é uma característica comum entre o NegoSys
e os demais trabalhos analisados. Contudo, no NegoSys,
este aspecto é estendido a partir do suporte á
colaboração entre negociadores aliados.
x
As principais contribuições deste trabalho se referem à elaboração
do modelo de negociação e do modelo de gestão do conhecimento
na negociação.
O modelo de negociação foi elaborado de forma a garantir que:
x
As atividades dos negociadores quando da utilização do
NegoSys facilitem o máximo reaproveitamento do
conhecimento gerado durante o processo.
Percepção: assim como nos demais trabalhos, a
percepção no NegoSys é apoiada pelo envio de
notificações. Contudo, no NegoSys, a inclusão de novas
fontes de conhecimento também é notificada,
característica que o diferencia dos demais trabalhos.
x
A colaboração entre negociadores aliados e a
cooperação entre negociadores oponentes seja efetiva e
eficiente.
Ainda em relação ao modelo de negociação, a confiabilidade das
informações foi garantida a partir dos seguintes recursos:
As contribuições deste modelo podem ser categorizadas em
função de quatro aspectos: comunicação, coordenação,
cooperação e percepção.
x
Comunicação: Assim como nos outros SSN analisados,
algumas ferramentas para o suporte ao trabalho em
grupo foram utilizadas. No NegoSys, a utilização destas
ferramentas foi associada às idéias advindas da Teoria
dos Atos de Fala, permitindo a comunicação escrita
entre os negociadores oponentes, que é qualificada de
acordo com a intenção dos mesmos. Contudo, o grande
diferencial em relação aos demais trabalhos é o suporte
à socialização do conhecimento a partir da colaboração
entre os negociadores aliados.
x
Classificação das informações em Parâmetros do
Negociador e Parâmetros da Negociação e o acesso
exclusivo dos negociadores de uma determinada
organização àquelas informações descritas como
parâmetros do negociador
x
Acesso à Memória da Negociação somente com a
permissão do Gerenciador de Negociação
x
Acesso ao ambiente através de senha
No que tange as contribuições do modelo de gestão do
conhecimento, destaca-se a identificação das diversas formas de
conhecimento criadas durante negociação, o que permitiu definir
componentes na arquitetura do NegoSys que garantissem a
138
identificação, captura e armazenamento dessas formas de
conhecimento. Além da identificação das possíveis associações
entre situações de problemas semelhantes para reutilização das
formas de conhecimento disponíveis.
REFERÊNCIAS
[1] Bell, D. E., Raiffa, H. and Tversky, A. Decision making:
Descriptive, normative, and prescriptive interactions.
Cambridge, Eng.: Cambridge University Press, 1989.
[2] Duzert, Y, Paula, M.M.V., Souza, J. M. Case study on
complex negotiation analysis. Relatório Técnico – Programa
de Engenharia de Sistema e Computação, Universidade
Federal do Rio de Janeiro, Versão estendida submetida ao
Negotiation Journal, janeiro/2006. Disponível em:
www.cos.ufrj.br.
[3] Duzert, Y., Ruediger, M.A., Riccio, V, Bulhões, F. Concilier
le Changement et la Contruction de Consensus: le cas des
réformes au Brésil. Revue Française de Gestion, v. 30,
n.153, pp. 173-184. 2005.
[4] Fisher, R., Ury, W. Getting to Yes: Negotiating Agreement
without Giving In, 1 ed, New York, Penguin Books. 1981.
[5] Fuks, H., Gerosa, M.A., Raposo, A.B., Lucena, C.J.P. O
Modelo de Colaboração 3C no Ambiente AulaNet,
Informática na Educação: Teoria e Prática, v 7, n. 1, pp.
25-48, Porto Alegre, UFRGS. 1981.
[6] Huang, P. C. K. A Primitive Study of Logrolling in eNegotiation. In: Proceedings of the 36th Hawaii Conference
on System Sciences (HICSS´03). Hawaii. 2003.
[7] Neale, M. A. and bazerman, M. H. Cognition and Rationality
in Negotiation. New York: The Free Press, 1991.
[8] Paula, M.M.V. NegoSys: um ambiente de gestão do
conhecimento na negociação. Tese de Doutorado. Programa
de Engenharia de Sistemas. COPPE. Universidade Federal
do Rio de Janeiro. 2006.
[9] Raiffa, H. The Art and Science of Negotiation. Cambridge,
MA, Harvard University Press, 1982.
[10] Susskind, L., Cruikshank, J.. Breaking the Impasse:
Consensual Approaches to Resolving Public Disputes. New
York: Basic Book. 1987.
139
Alterando o Grau de Colaboração de uma Ferramenta de
Compartilhamento de Desktop por Meio de Plugins
Eduardo Telles Carlos
Alberto Raposo
Tecgraf / DI / PUC-Rio
R. M. S. Vicente, 225
22453-900 – Rio de Janeiro, RJ
+55 21 2512-5984 - Brasil
Tecgraf / DI / PUC-Rio
R. M. S. Vicente, 225
22453-900 – Rio de Janeiro, RJ
+55 21 2512-5984 - Brasil
[email protected]
[email protected]
variados propósitos, tais como realização de reuniões à distância e
realização de trabalhos entre especialistas remotamente
localizados.
RESUMO
Este artigo apresenta a experiência de desenvolvimento do
VDTool (Virtual Desktop Tool), uma ferramenta para auxiliar
processos colaborativos entre dois participantes, permitindo a
troca de informações via captura e envio de tela. A aplicação
surgiu da necessidade de simplificação de uma ferramenta de
videoconferência existente. A partir de uma versão inicial, foram
desenvolvidos plugins para incluir novos recursos de cooperação
e coordenação na aplicação. O modelo de colaboração 3C serviu
como mecanismo de análise para este desenvolvimento.
Atendendo a essas necessidades, este trabalho iniciou-se com o
desenvolvimento do CSVTool (Collaboration Supported by Video
Tool), uma ferramenta para colaboração baseada em vídeo,
projetada para prover recursos de colaboração para aplicações
com nenhum ou pouco suporte à colaboração [1]. O projeto dessa
ferramenta foi guiado pelas necessidades de uma grande
companhia brasileira, tais como independência de plataforma,
simplicidade de uso e suporte a múltiplos usuários sobre rede sem
suporte a multicast.
ABSTRACT
This paper presents the experience of developing VDTool (Virtual
Desktop Tool), a tool to support collaborative processes between
two participants, providing information exchange by means of
screen capturing and transmitting. The application appeared as a
consequence of the necessity of simplifying an existing
videoconferencing tool. On top of an initial version, plugins were
developed in order to add new cooperation and coordination
facilities to the application. The 3C collaboration model was used
as an analysis tool in this development.
O CSVTool, assim como qualquer outro sistema colaborativo,
pode ser analisado de acordo com o modelo 3C de colaboração
[2]. Este modelo, inicialmente proposto por Ellis [3], entende que
o suporte computacional à colaboração pode ser realizado por
meio da interação entre mecanismos de comunicação,
coordenação e cooperação. Comunicação está relacionada à troca
de mensagens e informações entre as pessoas. Coordenação diz
respeito ao gerenciamento de pessoas, suas atividades e recursos.
Cooperação, por sua vez, se relaciona à produção que ocorre em
um espaço de trabalho compartilhado.
Palavras-Chave
Colaboração, Modelo de Colaboração 3C, Plugins.
Apesar da separação dos 3Cs para fins de análise, comunicação,
coordenação e cooperação não podem ser vistas de forma isolada,
uma vez que existe uma constante interação entre elas [4]. Essa
relação entre os 3Cs do modelo pode ser usada para guiar o
projeto de uma ferramenta colaborativa qualquer, mesmo que ela
esteja mais voltada para um dos 3Cs. Uma ferramenta de chat, por
exemplo, que é uma ferramenta de comunicação, requer
comunicação (troca de mensagens), coordenação (políticas de
acesso) e cooperação (área de compartilhamento e registro das
sessões).
Keywords
Collaboration, 3C Collaboration Model, Plugins.
1. INTRODUÇÃO
Atualmente, com o crescente aumento da capacidade de
processamento dos equipamentos e do desempenho da
comunicação pelas redes, está se tornando cada vez mais viável,
especialmente nas grandes companhias, o uso de ferramentas
colaborativas. Tais ferramentas têm sido usadas para os mais
Da mesma forma, o CSVTool, que também é mais voltado para a
comunicação, possui não apenas recursos de comunicação (troca
de informações por áudio, vídeo e texto), mas também de
coordenação (controle de sessão, controles individualizados da
recepção e envio de áudio/vídeo para cada participante) e
cooperação (transmissão da área de trabalho – desktop).
20 a 22 de Novembro de 2006
Natal, RN, Brasil
O principal objetivo deste artigo é mostrar como a inclusão de
novos “Cs” em uma aplicação colaborativa pode alterar seu grau
de colaboração. Para isso, será apresentado um caso de estudo
com o VDTool (Virtual Desktop Tool), uma ferramenta para
auxiliar processos colaborativos entre dois participantes,
permitindo a troca de informações pelo envio do desktop (via
© Sociedade Brasileira de Computação
Comissão Especial de Sistemas
Colaborativos
Anais do III Simpósio Brasileiro de Sistemas Colaborativos, pp. 140-149.
140
em organizações é um processo muito delicado. Se o software for
vendido da maneira usual, “de prateleira”, ele pode não ser bem
aceito na organização [5]. Na verdade, o processo de adoção de
groupware em organizações é um processo dual, tanto de
adaptação da organização de trabalho às condições da ferramenta,
quanto de adaptação da ferramenta à organização do trabalho na
companhia [6, 7]. Apesar de não discordarmos desta afirmação,
acreditamos que as chances de sucesso na adoção do software
serão maiores se o sistema colaborativo se adaptar completamente
à real organização do trabalho na companhia. Por esta razão, o
desenvolvimento do CSVTool tem apresentado uma natureza
bastante dinâmica e até certo ponto imprevisível, sendo guiado
pelas necessidades demandadas pelo seu uso no “mundo real”.
captura de tela) e por uma ferramenta de bate-papo. Foram
desenvolvidos plugins que implementam serviços de alguns “Cs”,
aumentando o grau de colaboração oferecido pela ferramenta.
Um segundo objetivo do artigo é mostrar que, seguindo o modelo
3C, o caminho nem sempre é unidirecional, i.e., nem sempre o
que ser quer é acrescentar novos “Cs”. Em alguns casos, as
necessidades levam à retirada de “Cs” da ferramenta. Este caso é
ilustrado na próxima seção, onde é explicado como surgiu o
VDTool, que é uma versão simplificada do CSVTool. A Seção 3
apresenta trabalhos relacionados e a Seção 4 retoma a direção da
inclusão de novos “Cs” no VDTool, apresentando os plugins
desenvolvidos. A Seção 5 apresenta as conclusões e trabalhos
futuros.
O surgimento do VDTool é um exemplo da natureza dinâmica do
processo de desenvolvimento do CSVTool. Com o uso do
CSVTool na empresa, o recurso de envio de tela despertou o
interesse de seus usuários para suprir um antigo problema. Em
muitas situações, tais como treinamento e ajuda online,
especialistas precisam demonstrar, de maneira mais clara, o que
acontece em seus desktops, sem a necessidade de um encontro
presencial. Nesses casos, a transmissão de desktop é um recurso
mais importante que a transmissão de áudio e vídeo, visto que os
especialistas geralmente se falam ao telefone durante essas
situações. Esses usuários viram no CSVTool uma possibilidade
para terem seus problemas resolvidos. Porém, alegaram que não
queriam complexidades do sistema de videoconferência, tais
como transmissão de áudio e vídeo (queriam continuar falando ao
telefone) e necessidade de servidor (a colaboração é sempre entre
duas pessoas apenas).
2. DO CSVTOOL AO VDTOOL
O CSVTool é uma ferramenta de videoconferência baseada no
modelo de cliente/servidor, onde o servidor é responsável pelo
gerenciamento dos clientes presentes em uma determinada sessão
de colaboração. Os clientes, por sua vez, comunicam entre si
através de áudio, vídeo e texto (via mensagens instantâneas).
Além desses elementos de comunicação, a ferramenta também
provê a funcionalidade de envio de desktop para visualização.
Toda a interação é configurável, i.e., o participante tem controle
sobre a comunicação, podendo escolher entre o envio/recebimento
de áudio ou vídeo, ou ambos ao mesmo tempo.
Mesmo sendo uma ferramenta prioritariamente voltada para
comunicação, o CSVTool, apresenta elementos de coordenação e
cooperação enquadrando-se assim no modelo 3C [2]. A figura 1
mostra a decomposição das funcionalidades do CSVTool de
acordo com o modelo 3C.
Como este não era o foco do CSVTool, houve a necessidade de
criação de uma nova ferramenta com algumas características da
original, porém menos complexa e que resolvesse o problema em
questão.
Iniciou-se assim o desenvolvimento do VDTool, como uma
versão simplificada do CSVTool, sem suporte a áudio, vídeo e
sem servidor. Atualmente, a ferramenta VDTool auxilia processos
colaborativos entre dois participantes, permitindo a troca de
informações pelo envio do desktop (via captura de tela) e por uma
ferramenta de bate-papo. Voltando à figura 1, o VDTool pode ser
analisado à luz do modelo 3C como sendo apenas o serviço de
cooperação do CSVTool (captura e envio de tela), acrescido de
um serviço de coordenação (monitor de captura) e um serviço de
comunicação (mensagem instantânea). Os demais serviços de
comunicação foram eliminados (áudio e vídeo), bem como os
demais serviços de coordenação (controle de sessão e lista de
participantes, já que a comunicação no VDTool é um-para-um).
Na figura 2, de cima para baixo e da esquerda para direita, temos
a tela remota recebida pelo usuário, a informação da área que está
sendo enviada, a janela de eventos executados e, por fim, a troca
de mensagens textuais do VDTool. Nesse caso, o usuário está
enviando seu desktop e também recebendo o desktop remoto, de
modo que existe tanto a tela remota recebida quanto o monitor de
captura, onde ele vê a área da sua tela que está sendo enviada.
Figura 1- CSVTool e o modelo 3C
A separação das funcionalidades da ferramenta para análise
trouxe uma nova visão para a solução de problemas de
usabilidade e de implementação, mesmo tendo em mente que os
“Cs” têm que interagir entre si, cada qual dando suporte para
outro com a finalidade de aumentar o grau de colaboração.
No momento, o VDTool tem sido usado com sucesso pelo grupo
de usuários que solicitou seu desenvolvimento. Uma das suas
características principais é ser multi-plataforma, atualmente
disponível nas plataformas Windows, Linux, Solaris e Irix.
Porém, a rigor, o VDTool tem poucos recursos de colaboração
O CSVTool vem sendo usado na empresa que financiou seu
desenvolvimento. O processo de adoção de sistemas colaborativos
141
Figura 2 – Visão geral do VDTool
(i.e., poucos “Cs”). Com o intuito de aumentar o grau de
colaboração do VDTool, foram inseridos plugins colaborativos na
ferramenta.
A adição dos plugins trouxe novas funcionalidades para o sistema,
acrescentando novos “Cs” à ferramenta e transformando-a
novamente em uma ferramenta com bom grau de colaboração,
embora com propósito totalmente diferente do CSVTool original.
A figura 3 mostra a decomposição das funcionalidades do
VDTool em relação ao modelo 3C. Nessa figura, os serviços que
aparecem com fundo branco foram herdados do CSVTool,
enquanto os que aparecem com o fundo colorido foram
implementados pelos plugins.
A próxima seção esclarece a idéia dos plugins colaborativos como
parte integrante de ferramentas colaborativas.
3. TRABALHOS RELACIONADOS
Uma vez que o VDTool já atendia os requisitos solicitados, o
próximo passo foi voltar a acrescentar novos “Cs”, tornando-a
uma ferramenta com alto grau de colaboração, embora com
propósito diferente do CSVTool.
Figura 3-VDTool e o modelo 3C
142
como por exemplo, a ausência de mecanismos de coordenação
para evitar “brigas” pelo mouse controlado local e remotamente, e
a ausência de algoritmos de escala na imagem recebida, assuntos
que serão discutidos na Seção 4.1.
Experiências similares, seguindo o modelo 3C, foram realizadas
em [8,9], onde foram adicionados novos serviços de coordenação
e cooperação a ferramentas de comunicação do ambiente
AulaNet. A diferença em termos de implementação é que nos
casos acima, foram adicionados componentes de software
integrados a um framework de componentes. No caso do VDTool,
como a aplicação não foi desenvolvida com o paradigma de
componentes, a solução adotada para o acréscimo de novas
funcionalidades foi o desenvolvimento de plugins.
Outra ferramenta relacionada é o Sun SharedShell [14], que
permitia o compartilhamento de um terminal de comando Unix
(shell) entre usuários remotamente localizados, acrescentando
também recursos de whiteboard compartilhado e gravação da
sessão colaborativa. Seu intuito era permitir que o responsável
pelo suporte Unix visse e interagisse com o terminal de comando
do usuário. Além de restrita a Unix, essa ferramenta parece ter
sido descontinuada.
Um plugin é um programa que deve interagir com outro programa
para prover alguma funcionalidade particular [10]. O software
principal determina a forma pela qual os plugins são incorporados
ao sistema e a maneira que irão trocar informações. Uma das
grandes vantagens do uso de plugins como parte integrante de um
sistema é a não necessidade de recompilação ou substituição de
partes do sistema original, o que pode gerar problemas de versão.
Na maioria das vezes, os sistemas que dão suporte a plugins
disponibilizam uma API que possibilita a interação entre eles. Os
plugins, por sua vez, são implementados na forma de bibliotecas
dinâmicas. Atualmente, vários programas profissionais
disponibilizam APIs para desenvolvedores estenderem as
funcionalidades de seus sistemas, aumentando assim o tempo até
que seus sistemas se tornem obsoletos.
4. PLUGINS COLABORATIVOS
O desenvolvimento dos plugins para o VDTool foi baseado na
idéia do modelo 3C, i.e., cada plugin dando o suporte necessário
para cada um dos “Cs” acrescentado, com a finalidade de
aumentar assim o grau de colaboração. Uma vez implantados, os
plugins têm que manter a coesão entre todos os “Cs” e, quando
incorporados a um determinado sistema colaborativo, não fugir ao
foco principal pelo qual a ferramenta original foi criada.
Seguindo esta idéia, são apresentados a seguir os plugins
desenvolvidos e incorporados na ferramenta VDTool.
Na fase anterior ao desenvolvimento dos plugins, foi feita uma
análise de sistemas colaborativos similares ao VDTool,
explorando seus pontos fortes e fracos. A partir desta análise, foi
possível o desenvolvimento voltado para implementar no VDTool
algumas características interessantes encontradas nos sistemas
analisados e também para suprir algumas limitações encontradas
nos mesmos.
4.1 Controle Remoto de Mouse
O VDTool, por ser uma ferramenta colaborativa, deve prover o
máximo de interação entre os participantes. Antes do
desenvolvimento do plugin em questão, esta ferramenta não
possuía nenhum esquema de acesso remoto, ou seja, não era
possível compartilhar a aplicação remotamente, apenas visualizála. Este foi um dos problemas encontrados que diminuía a
interação entre os usuários.
O VRVS (Virtual Room Videoconferencing System) [11] foi
desenvolvido no início de 1997 e inicialmente usado dentro da
comunidade HENP (High Energy and Nuclear Physics).
Recentemente, o serviço foi estendido para outros grupos
acadêmicos e de pesquisa. O VRVS é um sistema orientado para a
web, para videoconferência e trabalho colaborativo. O
desenvolvimento do sistema inclui hoje milhares de hosts
registrados rodando o software em mais de 60 países. O VRVS
fornece várias funcionalidades colaborativas como: envio e
recebimento de áudio e vídeo, compartilhamento de desktop e
aplicações e chat em várias plataformas. A análise deste software
nos mostrou a dependência de outros sistemas para o
funcionamento, como o MS Internet Explorer e o WinVNC, o que
se torna uma dificuldade a mais para o usuário. Além disso, a
existência de videoconferência, o coloca mais próximo do
CSVTool do que do VDTool, que precisa manter sua
simplicidade.
A idéia do plugin de controle remoto de mouse é disponibilizar a
funcionalidade de controlar uma máquina remota através do
mouse no mesmo ambiente do sistema colaborativo que
incorporará este plugin. A finalidade principal do plugin é poder
ampliar a capacidade do espaço de trabalho compartilhado, sendo
portanto um plugin de cooperação.
A figura 4 mostra os processos envolvidos desde o início da
execução do VDTool até a chamada do plugin de controle remoto
de mouse.
Assim como a maioria dos plugins de outros sistemas, este foi
implementado seguindo a estrutura de biblioteca dinâmica em
Linguagem C. Como o VDTool foi desenvolvido na Linguagem
Java, a incorporação deste utilizou a interface de comunicação
JNI (Java Native Interface) [15]. Com isso, ocorre uma constante
troca de informações entre o plugin e o VDTool.
O RealVNC [12] foi desenvolvido com o intuito de melhorar o
design e a implementação do VNC (Virtual Network Computing)
[13]. O VNC é um sistema de compartilhamento de desktop para
controlar outros computadores remotamente. Além do RealVNC,
existem outras variantes desse sistema, como o TightVNC e o
UltraVNC, que também foram analisadas para este trabalho. Essas
ferramentas têm maior grau de colaboração que o VDTool em seu
estágio antes dos plugins, visto que ele ainda não permitia o
acesso ao desktop remoto, mas apenas sua visualização. Por esta
razão, algumas das funcionalidades dos “VNCs” foram analisadas
para serem incorporadas ao VDTool na forma de plugins.
Algumas deficiências foram encontradas na parte de usabilidade,
Para o desenvolvimento deste plugin, houve o cuidado de se
manter a característica de ser multi-plataforma, uma exigência da
empresa que solicitou o desenvolvimento. Para tal, o código
possui desvios condicionais destinados a cada plataforma.
A primeira informação a ser obtida para o funcionamento do
plugin de controle remoto é a determinação da posição do mouse
no sistema, para que ela possa ser enviada e posteriormente
reconhecida na máquina remota (i.e., a máquina que está tendo
seu desktop controlado). Neste ponto, definimos que uma posição
é válida para ser enviada se o mouse estiver dentro da janela da
143
Figura 4-Diagrama do processo de acesso remoto
animado). Ao fim do controle remoto, as propriedades anteriores
do ponteiro são restabelecidas.
aplicação e sua coordenada seja diferente da última capturada,
como mostrado na figura 5. Analogamente à posição do mouse,
capturamos também os eventos referentes ao clique e drag do
mouse para serem enviados caso a posição seja válida. Essas
informações são então transmitidas via rede para a máquina
remota.
A posição do mouse que chega à máquina remota não representa a
posição real, em virtude da escala que a imagem sofreu na
máquina local (figura 5), onde o usuário recebe toda a área de
trabalho da máquina remota em uma imagem escalada (a escolha
de um algoritmo ótimo para escalar imagens será explorado na
Seção 4.1.1). Com isso a posição deve ser corrigida seguindo a
seguinte fórmula:
Posição_real
§ posição_na_imagem_escalada*dimensão_do_desktop ·
¨
¸
zoom
©
¹
A partir do momento que temos a posição real do mouse
(calculada pela fórmula acima, a partir da posição enviada através
da rede pelo usuário local) na máquina remota e um possível
evento, podemos simular esta ação utilizando funções nativas de
cada plataforma.
Figura 5-Posição válida do mouse (para ser enviada para a
máquina remota)
Neste ponto, o mouse está recebendo informações tanto do
usuário remoto quanto do usuário local, podendo ocorrer uma
“briga” pelo mesmo se os dois mandarem informações diferentes
ao mesmo tempo. Para minimizar este problema, duas abordagens
foram desenvolvidas. A primeira tenta explorar a idéia de
awareness dando um feedback ao usuário remoto, informando que
seu mouse está sendo controlado pelo outro usuário. Este
feedback é dado pela alteração momentânea da aparência do
ponteiro do mouse na máquina controlada (foi utilizado um cursor
Para tentar diminuir mais a possibilidade de “briga” pelo mouse,
foi desenvolvida uma segunda abordagem que explora a idéia de
um segundo ponteiro de mouse para o usuário remoto. A literatura
não disponibiliza muito material para esta abordagem, contudo, o
desenvolvimento do mesmo foi estudado e duas soluções
surgiram: a primeira foi a simulação de um driver virtual USB
que receberia eventos do usuário remoto e responderia às suas
144
desktop perde área na tela, tendo assim que deslocar esta janela
sempre que necessário para desempenhar outras atividades. Este
foi mais um dos problemas identificados na ferramenta VDTool,
que acabam por atrapalhar a colaboração entre os usuários.
ações [16] e a segunda, o desenho de um ponteiro “virtual”
utilizando primitivas de desenho de cada plataforma e
compartilhamento dos eventos de clique com o ponteiro real.
Neste trabalho apenas a segunda idéia foi implementada. Porém,
ao fim do desenvolvimento, verificou-se que os resultados não
foram satisfatórios, pois a operação de redraw das primitivas
nativas de desenho do ponteiro não se mostrou eficiente para
aplicações síncronas. Além disso, como os eventos de clique e
drag do segundo ponteiro eram compartilhados com o ponteiro
real, situações de conflito continuaram a ocorrer na geração
desses eventos.
Por motivos de segurança, o cancelamento do controle remoto na
máquina controlada é feito através da tecla esc, uma vez que
poderia ocorrer “briga” pelo mouse neste momento.
4.1.1 Algoritmo de Escala
A necessidade do algoritmo de escala surgiu para solucionar dois
problemas. O primeiro é que à medida que o usuário decide enviar
uma parcela maior do seu desktop para o outro usuário, a área
capturada que aparece no monitor de captura do VDTool teria que
ser ampliada, aumentando assim o monitor de captura e o tráfego
de dados na rede, o que não é desejado em algumas situações. O
segundo problema é a necessidade de scroll na imagem recebida
pela máquina que está realizando o controle remoto de mouse,
problema que encontramos em ferramentas de acesso remoto,
como os “VNCs” analisados.
Figura 6-Ilustração do algoritmo de escala downsize rought
Algumas soluções foram levantadas, como a diminuição da área
ocupada pelo monitor de captura no desktop. Porém, isto ainda
causaria certo incômodo e perderíamos o poder de awareness dos
elementos da interface gráfica. Outra solução estudada foi fazer o
uso de transparência em cima da janela do VDTool, porém isto
iria impossibilitar o usuário de acessar possíveis elementos que
estejam embaixo da janela. A melhor alternativa encontrada para
tal problema foi o desenvolvimento de um plugin que delimita a
área capturada através do desenho de linhas no próprio
framebuffer do usuário que, ao mesmo tempo em que forneça o
feedback ao usuário, permita que o mesmo minimize o monitor de
captura quando necessário e continue trabalhando com toda a área
de trabalho. Por ter o intuito de ajudar no gerenciamento da
interação entre os usuários e ter funcionalidade complementar à
do monitor de captura, este plugin é considerado um serviço de
coordenação.
Para a escolha do melhor algoritmo de escala de imagem para
ferramentas síncronas foi levado em conta o que tivesse a melhor
relação qualidade vs. desempenho. Foram estudados vários
algoritmos presentes na literatura. Tal estudo identificou que o
algoritmo dct, implementado em C, apresentou melhor qualidade
[17]. Porém, é necessário levar em conta também o tempo de
processamento do algoritmo. O algoritmo de escala deve ser
rápido o suficiente para não se tornar o “gargalo” da aplicação e
ter resultados satisfatórios. Com isso, os algoritmos disponíveis na
Linguagem Java foram descartados, pois têm o tempo de
processamento elevado em virtude da própria linguagem. O dct,
apesar de sua melhor qualidade, também não obteve um
desempenho muito bom. Ao final do estudo, chegou-se à
conclusão que o algoritmo de downsize rought [18] obteve a
melhor relação qualidade vs. desempenho, sendo por este motivo
escolhido para ser incluído no plugin de controle remoto de
mouse. A idéia do algoritmo de downsize rought é fazer uma
média de cada componente RGB presente na imagem de acordo
com um fator entre o tamanho da imagem original e o tamanho da
imagem final como pode ser visto na figura 6. No caso mostrado
na figura, a imagem original tem suas dimensões reduzidas à
metade. Nesse caso, cada pixel da imagem reduzida é obtido
como uma média de uma área de 2x2 pixels da imagem original.
Assim como o plugin de controle remoto de mouse, este foi
implementado em forma de biblioteca dinâmica na Linguagem C
e com diretivas condicionais de compilação para cada plataforma.
A figura 7 mostra a troca de informações entre o VDTool e o
plugin de delimitação de área capturada.
Como o delimitador de área capturada foi implementado
utilizando código nativo na Linguagem C, houve mais uma vez a
necessidade da utilização da JNI para que fosse possível a
comunicação entre o VDTool e o plugin. Nesse ponto houve
alguns problemas relativos à plataforma Unix e à posição do
ponteiro do mouse nas extremidades da tela. No plugin
delimitador de área capturada, as rotinas de desenho no
framebuffer eram chamadas e, posteriormente, o código em Java
era chamado novamente. Este esquema foi válido para a
plataforma Windows, porém inválido para as plataformas Unix,
uma vez que nesta era impossível sair do loop de redraw das
rotinas de desenho no framebuffer e retornar ao código Java. Para
resolver este problema, foram criados executáveis para serem
chamados a partir do código em Java e executados em paralelo
com o código em Java do VDTool. Dessa forma, esses
executáveis desempenham a mesma funcionalidade do plugin
desenvolvido para a plataforma Windows.
4.2 Delimitador de Área Capturada
Para tornar mais claro ao usuário o que está sendo capturado e
enviado da sua máquina para a outra, o VDTool utiliza o monitor
de captura, ilustrado na figura 2. Quando ativo, além de dar o
feedback necessário ao usuário, provê informações sobre o estado
atual do sistema, como a banda passante e também disponibiliza
opções para configuração do sistema, como a qualidade da
imagem enviada. Porém, sua permanência na área de trabalho
gera poluição visual, uma vez que o usuário que está enviando seu
145
Figura 7 – Delimitador de área capturada e o VDTool
possível, tanto para o desenvolvedor quanto para o usuário final,
essa abordagem de usar a própria janela da aplicação não foi
utilizada.
4.3 Transferência de Arquivos
A transferência de arquivos entre usuários é uma funcionalidade
muito comum e útil em ferramentas colaborativas. A maior
motivação para o desenvolvimento desse plugin foi a ausência
desta funcionalidade no VDTool e a presença na maioria das
ferramentas analisadas anteriormente. Porém, em algumas dessas
ferramentas, a transferência de arquivos ocorre em apenas um
sentido, i.e., sendo permitido apenas o envio de arquivos da
máquina que está controlando a outra remotamente (upload de
arquivos). O RealVNC, por exemplo, faz a transferência de
arquivos bidirecional em sua versão comercial, mas não faz
nenhum tipo de transferência em sua versão gratuita.
Para implementação deste plugin foram estudadas duas opções: a
primeira fazendo a transferência de arquivos entre usuários
utilizando drag and drop e a segunda fazendo a transferência
através do context menu do Windows.
A idéia de transferência via drag and drop pode ser vista de duas
formas. A primeira forma é para realizar o upload de arquivos ou
pastas entre o sistema da máquina local (drag) para a janela do
VDTool, representando a máquina remota (drop), como pode ser
visto na figura 8. A segunda forma é para realizar o download de
arquivos ou pastas da máquina remota através da janela do
VDTool (drag) para a máquina local (drop).
Assim como no caso do controle remoto do mouse, o plugin de
transferência de arquivos amplia a capacidade do espaço de
trabalho compartilhado, se enquadrando como um serviço
cooperação no modelo 3C.
Inicialmente, esta seria a única forma de transferência de arquivos
implementada na forma de plugins, porém houve a necessidade de
termos outra forma de transferência devido a problemas
encontrados em testes na parte referente à execução de download
de arquivos ou pastas da máquina remota para a máquina local. A
primeira etapa para realizar a transferência de dados entre a
máquina remota e a máquina local via drag and drop é a
identificação da ação de drag de algum arquivo ou pasta, ou um
conjunto deles. Identificado este evento, executado pelo usuário
A maioria das aplicações colaborativas que disponibilizam a
funcionalidade de transferência de arquivos utiliza a própria
janela da aplicação para realizar essa transferência, i.e., a
transferência é feita a partir de um elemento da interface do
programa. Como um dos focos deste trabalho é o reuso de plugins
colaborativos em diversas ferramentas da forma mais transparente
146
A outra forma de transferência de arquivos implementada para
este plugin foi a utilização do context menu do Windows (figura
10). Desta forma os problemas mencionados anteriormente são
contornados, pois a transferência é iniciada imediatamente após a
sua solicitação. Como esta parte do plugin envolve a inserção de
novas entradas no registro do Windows, ao finalizar a conexão
entre os participantes, o plugin deve ser chamado novamente para
retirar a entrada no registro do sistema operacional.
que está comandando remotamente a outra máquina, a próxima
etapa é disparar o evento de transferência dos elementos que
estejam sofrendo drag. O início deste evento só será efetivado
caso os elementos que estejam sendo “arrastados” passem por
uma das bordas do desktop da máquina controlada ilustrado em
vermelho na figura 9.
Figura 8-Áreas de drag and drop para upload de arquivos
Figura 10-Transferência de arquivos via context menu
Diferentemente dos outros plugins, este só foi implementado para
a plataforma Windows, por ser o sistema operacional mais
utilizado e aparentemente o mais simples para o desenvolvimento,
em uma primeira análise. Para manter o requisito de portabilidade
multi-plaforma, este plugin ainda precisa ser implementado nas
outras plataformas.
5. CONCLUSÕES
A integração visual entre aplicações executadas em locais
distintos permite que profissionais geograficamente distribuídos
trabalhem colaborativamente, reduzindo as barreiras de
comunicação e aumentando a produtividade. Essa possibilidade
tem atraído a atenção das empresas, que cada vez mais buscam
sistemas colaborativos adequados às suas necessidades.
Porém, uma vez adotada nas organizações, a tecnologia só se
torna efetiva se a ela for atribuída um significado e se ela
realmente for utilizada [7]. O exemplo do CSVTool/VDTool
mostra que este “significado”, do ponto de vista dos usuários na
empresa, pode ser surpreendente aos olhos dos desenvolvedores
de groupware. Cabe aos desenvolvedores, portanto, buscar o
entendimento deste significado e encontrar os meios tecnológicos
para implementá-los em suas aplicações.
Figura 9-Área de inicio do download em vermelho
Ao entrar na área delimitada, o plugin identifica o caminho para
todos os elementos que estão sofrendo drag para que
posteriormente possa iniciar a transferência dos mesmos para a
outra máquina. Neste ponto justifica-se a inclusão de uma maneira
alternativa de executar esta funcionalidade, pois nem sempre é
possível identificar o caminho para todos os elementos de maneira
rápida (necessidade em ferramentas síncronas), uma vez que esta
informação é requisitada ao sistema operacional da máquina
remota e não é recebida imediatamente. Esta situação não ocorre
no upload, pois o sistema operacional da máquina remota não
precisa ser consultado.
O modelo 3C, como ferramenta de “engenharia” de domínio, se
mostrou eficiente para ajudar a cobrir a distância existente entre
os requisitos sociais e a viabilidade tecnológica [19]. O caso do
VDTool mostra como a análise, à luz do modelo 3C, revela que a
exclusão e a inclusão de diferentes “Cs” podem alterar
significativamente a funcionalidade de uma aplicação
colaborativa, adequando-a a novos propósitos. Dessa forma, abre-
147
Design and Implementation Issues. In Proceedings of the 9th
International Conference on CSCW in Design (CSCWD
2005) (Coventry, U.K.), 2005, 547-552.
se caminho para que os sistemas colaborativos se adaptem às
necessidades dos usuários, e não o contrário, o que aumenta as
chances de sucesso do software.
[2] Fuks, H., Raposo, A. B., Gerosa, M.A., Lucena, C. J. P.
Applying the 3C Model to Groupware Development.
International Journal of Cooperative Information Systems,
14, 2-3 (Jun.-Sep. 2005), 299-328.
A maneira utilizada para incluir novas funcionalidades
colaborativas no VDTool foi pela implementação de plugins que
realizem tais funcionalidades. Um dos objetivos do
desenvolvimento via plugins é o possível reuso dos mesmos em
outras aplicações colaborativas além do VDTool. Para isso, seria
necessário que a outra aplicação tenha uma API flexível para
interagir com os plugins desenvolvidos. Uma possibilidade
alternativa seria o desenvolvimento baseado em componentes de
software, como realizado em outras aplicações [2]. Entretanto,
essa opção exigiria uma reimplementação do VDTool e por isso
não foi escolhida.
[3] Ellis, C. A., Gibbs, S. J., Rein, G. L. Groupware: Some
Issues and Experiences. Communications of the ACM, 34, 1
(Jan. 1991), 38-58.
[4] Pimentel, M., Fuks, H., Lucena, C.J.P. Mediated Chat 2.0:
Embedding Coordination into Chat Tools. In Conference
Supplement of the 6th International Conference on the
Design of Cooperative Systems (COOP 2004) (Amsterdam,
The Nederlands), 2004, 99-103.
Com relação às outras ferramentas analisadas, pode-se dizer que o
VDTool é diferente de todas elas, embora não necessariamente
“mais colaborativo”. Com relação ao VNC, o VDTool permite a
transferência de arquivos via drag and drop entre a máquina local
e a remota, o que não acontece no VNC, onde o desktop da
máquina local “desaparece” quando se acessa o desktop da
máquina remota. Com relação ao Sun SharedShell, o VDTool
compartilha todo o desktop, e não só uma janela de comandos.
Porém, o VDTool não possui o recurso de gravação de sessão do
Sun SharedShell. Quanto ao VRVS, que é um software mais
abrangente, o VDTool é, por requisito de projeto, mais simples.
Porém, uma possível integração do CSVTool com o VDTool
poderá se aproximar do VRVS, em termos de recursos de
colaboração. Entretanto, independente dos recursos de
colaboração, uma inovação do VDTool é o uso de plugins, que
permitem alterar seu grau de colaboração, inserindo novas
funcionalidades.
[5] Grudin, J. Groupware and Social Dynamics: Eight
Challenges for Developers. Communications of the ACM, 37,
1 (Jan. 1994), 92-105.
[6] Bardram, J.E. Organizational Prototyping: Adopting CSCW
Applications in Organisations, In G. Mark et al. (organizers),
CSCW 96 Workshop: Introducing groupware in
organizations: What leads to successes and failures? 1996.
[7] Orlikowski, W. J. The Duality of Technology: Rethinking
the Concept of Technology in Organizations. Organization
Science, 3, 3 (Ago. 1992), 398-427.
[8] Fuks, H., Raposo, A.B, Gerosa, M.A., Pimentel, M., Lucena,
C.J.P. Suporte à Coordenação e à Cooperação em uma
Ferramenta de Comunicação Textual Assíncrona: Um Estudo
de Caso no Ambiente Aulanet. In Anais do I Workshop
Brasileiro de Tecnologias para Colaboração (WCSCW
2004) (Ribeirão Preto, Brasil), 2004, 173-180.
Voltando a mencionar a dualidade no processo de adoção de uma
tecnologia em uma organização, podemos dizer que a
transformação do CSVTool no VDTool foi uma adaptação da
ferramenta às pessoas. Por outro lado, a implementação dos
plugins para aumentar o grau de colaboração do VDTool está
sendo uma tentativa de oferecer mais recursos aos usuários, que
poderão adaptar seus processos de trabalho a estes novos recursos.
[9] Gerosa, M. A., Raposo, A.B., Fuks, H., Lucena, C.J.P. Uma
Arquitetura para o Desenvolvimento de Ferramentas
Colaborativas para o Ambiente de Aprendizagem AulaNet.
In Anais do Simpósio Brasileiro de Informática na Educação
(SBIE 2004) (Manaus, Brasil), 2004, 168-177.
[10] Plug-in. Wikipedia. Acesso em 25 de Julho, 2006, a partir do
Answers.com Web site:
http://www.answers.com/topic/plugin
Uma das próximas etapas do trabalho é verificar a aceitação
desses novos recursos junto aos usuários, bem como realizar
experimentos que comprovem a alteração (preferencialmente de
forma positiva) no grau de colaboração provido pelos novos
recursos do VDTool. Outra atividade futura será a avaliação da
possibilidade de incluir os plugins do VDTool no CSVTool,
tornando este último uma ferramenta de colaboração mais
completa, com mais recursos de cooperação principalmente, como
a transferência de arquivos e controle remoto de mouse.
[11] Virtual Rooms Videoconferencing System. Acesso em 26 de
Julho de 2006: http://www.vrvs.org
[12] RealVNC. Acesso em 26 de Julho de 2006:
http://www.realvnc.com
[13] Richardson, T., Stafford-Fraser, Q., Wood, K.R., Hopper, A.
Virtual network computing. IEEE Internet Computing, 2, 1
(Jan.-Fev. 1998), 33-38.
6. AGRADECIMENTOS
[14] Yankelovich, N., “Bo” Begole, J., Tang, J. C. Sun
SharedShell tool. In Proceedings of the 2000 ACM
Conference on Computer Supported Cooperative Work
(CSCW 2000) (Philadelphia, USA), 2000, 351.
Agradecemos aos Profs. Marcelo Gattass, coordenador do Tecgraf
(Grupo de Tecnologia em Computação Gráfica) e Hugo Fuks,
coordenador do [email protected], DI, PUC-Rio, DI, PUC-Rio
pelo constante apoio ao desenvolvimento deste trabalho. O
Tecgraf é um grupo prioritariamente financiado pela Petrobras.
[15] Sun Microsystems, Inc. JNI (Java Native Interface)
Specification. Acesso em 25 de Julho, 2006:
http://java.sun.com/j2se/1.4.2/docs/guide/jni/spec/jniTOC.ht
ml
7. REFERÊNCIAS
[1] Pozzer, C. T., Lima, L. S., Raposo, A. B., Vieira, C. J. G., A
Multi-user Videoconference-based Collaboration Tool:
148
[18] Lacroix, D. Resize Images. Acesso em 26 de Julho de 2006:
http://lab.erasme.org/resize_image/index.html
[16] Wierzchowski, G. Second Mouse in X mini-HOWTO. Acesso
em 26 de Julho de 2006: http://www.faqs.org/docs/Linuxmini/XFree86-Second-Mouse.html
[19] Ackerman, M. S. The Intellectual Challenge of CSCW: The
Gap Between Social Requirements and Technical Feasibility.
In Human-Computer Interaction 15, 2&3 (2000), 179-203.
[17] Martucci, S.A. Image resizing in the discrete cosine
transform domain. In Proceedings of the International
Conference on Image Processing (ICIP'95), Volume 2, 1995,
2244-2247.
149
Desenvolvimento de Aplicações de Democracia Eletrônica
em Larga Escala Utilizando Grades Computacionais
Rogério Augusto Rondini
Hermes Senger
Cléver R. G. de Farias
Programa de Mestrado em
Informática
Univ. Católica de Santos
(UNISANTOS)
R. Dr. Carvalho de Mendonça,
144 - 11070-906 - Santos - SP
Programa de Mestrado em
Informática
Univ. Católica de Santos
(UNISANTOS)
R. Dr. Carvalho de Mendonça,
144 - 11070-906 - Santos - SP
Depto. de Fı́sica e Matemática
Univ. de São Paulo
(FFCLRP/USP)
Av. Bandeirantes, 3900 14040-901 - Ribeirão Preto SP
[email protected]
com.br
[email protected]
[email protected]
Resumo
Democracia eletrônica pode ser definida como o uso de Tecnologias de Informação e Comunicação para intensificar a
participação ativa dos cidadãos e dar suporte à colaboração
entre governos e sociedade civil na elaboração de polı́ticas
públicas. Para que ocorra interação entre sociedade civil e
governantes, é necessário a criação de ambientes colaborativos para acesso em larga escala. Tais ambientes podem ser
vistos como um local onde discussões de interesse público
ocorrem e onde o conteúdo dessas discussões possam ser encontrados e acessados por qualquer pessoa em qualquer lugar. A evolução das plataformas de grades computacionais
e das tecnologias de desenvolvimento baseado em serviços
permite a criação de ambientes colaborativos através do
compartilhamento, coordenação e gerenciamento de recursos de diversos tipos. Nesse sentido, este artigo apresenta
a arquitetura e implementação de um conjunto de serviços,
baseados em grades computacionais, para o gerenciamento,
busca e recuperação de informações. Tais serviços são utilizados na construção de uma ferramenta de democracia
eletrônica para dar suporte à colaboração em larga escala.
tween government and citizens, the creation of a wide scale
collaborative environment is necessary. Such environment
can be seen as a place where public discussions take place
and published contents can be found and accessed by everyone and everywhere. The evolution of grid platforms and
service-oriented technologies allows the creation of a collaborative environment through the management, coordination
and sharing of different types of computing resources. This
paper presents the architecture and implementation of a basic set of grid-based services for information management,
search and retrieval. These services are used in the development of e-Democracy application to support wide scale
collaboration.
Palavras-chave
Democracia eletrônica, governo eletrônico, ambientes colaborativos, grades computacionais, colaboração, larga escala.
Keywords
E-Democracy, e-government, collaborative environment, grid
computing, wide scale, collaboration.
Abstract
1. INTRODUÇÃO
Electronic democracy (e-democracy) can be defined as the
use of Information and Communication Technology to improve the participation of citizens in the political process,
as well as to support the collaboration between the different instances of government and community for policymaking purposes. In order to facilitate the interaction be-
A disseminação dos serviços eletrônicos teve um grande impulso com o surgimento e a legalização de identidades digitais e assinaturas eletrônicas, dentre outras técnicas de segurança. Não apenas empresas, mas também governos estão
investindo fortemente no uso de Tecnologias de Informação
e Comunicação (TIC) como forma de oferecer serviços aos
cidadãos. No Brasil existe um número crescente de portais
com serviços oferecidos tanto pelo governo federal quanto pelos governos estaduais e municipais. Através desses serviços,
cidadãos podem pagar impostos, obter licenças, permissões,
dentre outros. Nesse sentido, espera-se também que as TIC
melhorem o relacionamento entre cidadãos (ou seus grupos
de interesse), administrações, polı́ticos e governos.
20 a 22 de Novembro de 2006
Natal, RN, Brasil
Democracia eletrônica pode ser definida como o uso de TIC
e Comunicação Mediada por Computador (CMC) para in-
© Sociedade Brasileira de Computação
Comissão Especial de Sistemas
Colaborativos
Anais do III Simpósio Brasileiro de Sistemas Colaborativos, pp. 150-160.
150
tensificar a participação ativa dos cidadãos e dar suporte à
colaboração entre os diversos atores, tais como cidadãos, governos, Organizações Não Governamentais (ONGs), etc., na
elaboração de polı́ticas públicas [15]. Em função das facilidades advindas do uso das TIC, cidadãos, empresas e outras
organizações têm expectativas crescentes acerca da democracia eletrônica em geral. Dentro de poucos anos, esperase que várias fases do chamado ciclo polı́tico [15] venham
a ser apoiadas por uma plataforma integrada, colaborativa
e eficiente, disponibilizada através da Internet. Nesse sentido, este artigo propõe a adoção de plataformas de grades
computacionais como infra-estrutura de desenvolvimento e
execução de aplicações de democracia eletrônica.
Inicialmente, as tecnologias de grade computacional tiveram
como proposta o compartilhamento de recursos computacionais para o processamento de aplicações paralelas de alto
desempenho. Porém, tais tecnologias evoluiram nos últimos
anos com intuito de promover o compartilhamento, coordenação e gerenciamento de recursos dos mais variados tipos,
permitindo, assim, sua utilização no desenvolvimento de
aplicações não cientı́ficas [26], tais como comércio eletrônico,
governo eletrônico, telecomunicações e aplicações comerciais
em geral.
Grades computacionais permitem criar ambientes colaborativos através de coleções de serviços e abstrações capazes
de integrar os recursos em diferentes nı́veis, desde recursos computacionais, tais como dados e ferramentas de software, até recursos representando conhecimento [25]. Nesse
sentido, plataformas de grades computacionais podem ser
utilizadas para superar muitos dos desafios impostos pelas
aplicações de democracia eletrônica. Por exemplo, atualmente nenhuma infra-estrutura de TIC escala adequadamente para prover nı́veis adequados de colaboração entre
milhões de cidadãos e governantes.
Adicionalmente, a disponibilização de informações a qualquer momento e em qualquer lugar é uma precondição para
a participação dos cidadãos nesse processo. Nesse sentido,
grades computacionais podem ser utilizadas para acessar e
integrar recursos inerentemente distribuı́dos e heterogêneos,
tais como relatórios, bases de dados das agências governamentais, fóruns de discussões e aplicações legadas, nos mais
diversos nı́veis da esfera governamental, como esperado em
grandes aplicações de democracia eletrônica. Nesse tipo de
cenário, é imprescindı́vel a interação entre cidadãos e administrações nos nı́veis municipal, estadual e federal.
Este artigo apresenta um conjunto básico de serviços baseados em grades computacionais para o desenvolvimento de
aplicações de democracia eletrônica. A proposta aqui apresentada envolve a identificação dos requisitos para o desenvolvimento de aplicações de democracia eletrônica, definição
da arquitetura, protótipo e implementação de um conjunto
de serviços que atendam aos requisitos identificados.
O artigo está organizado da seguinte forma: a seção 2 apre-
151
senta uma breve introdução sobre democracia eletrônica e
seus desafios; a seção 3 discute os principais conceitos e a
evolução da tecnologia de grades computacionais; a seção 4
discute a utilização de grades computacionais como mecanismo de suporte à colaboração em larga escala e apresenta
a arquitetura da ferramenta; a seção 5 apresenta alguns trabalhos relacionados; a seção 6 faz uma breve análise do uso
de ferramentas colaborativas em aplicações de democracia
eletrônica; finalmente, a seção 7 apresenta algumas considerações finais e perspectivas de trabalhos futuros.
2. DEMOCRACIA ELETRÔNICA
A adoção de TIC como forma de intensificar a participação
dos cidadãos no processo democrático enfrenta diversos desafios, tecnológicos e também sócio-econômicos. Nesse sentido, ferramentas de TIC terão o papel de auxiliar no rompimento das barreiras organizacionais e culturais inerentes de
cada paı́s que venham adotá-las, além de permitirem a colaboração dos atores envolvidos no processo polı́tico.
A democracia eletrônica pode ser alcançada através de diversas formas de interação colaborativa, tais como: campanhas
eleitorais, pesquisas de opinião, comunicação entre os representantes eleitos e a população em geral, disponibilidade
on-line da legislação e processos legislativos que promovam a
participação dos cidadãos, ao invés da simples disseminação
da informação.
O relacionamento entre governo e sociedade pode ser classificado de acordo com a natureza e direção das interações
estabelecidas durante o chamado ciclo polı́tico. Três tipos
de relacionamentos são freqüentemente encontrados [18, 20,
25]:
• Informação. Relação de sentido único em que o governo fornece informação para uso dos cidadãos;
• Consulta. Relação de sentido duplo entre cidadãos
e governo onde os cidadãos, após consulta, compartilham suas idéias e opiniões;
• Participação ativa. Relação de sentido duplo baseada
em parcerias com o governo, onde os cidadãos participam ativamente na formulação das polı́ticas, por exemplo, definindo agendas e propondo opções de polı́ticas.
A entrega e disseminação da informação são normalmente
alcançadas através do uso de websites e portais do governo.
Contudo, a maior parte dos portais falha ao prover um suporte inadequado a usuários não especializados na busca
por determinada informação ou serviço. Facilidades tais
como mecanismos de busca e esclarecimento de perguntas
freqüentes devem ser providos de modo a facilitar a busca
da informação e a localização dos serviços.
A consulta aos cidadãos pode ser implementada de diferentes formas. Os websites e portais do governo normalmente
provêem endereços eletrônicos que podem ser utilizados para
o envio de comentários e sugestões. Formulários on-line
também podem ser utilizados para coletar informações dos
usuários dos portais. Listas de endereços também podem ser
utilizadas para a circulação de documentos entre possı́veis
interessados e a posterior coleta de comentários. Fóruns de
discussão on-line, chats e grupos de notı́cias também podem
ser utilizados para consulta. Essas ferramentas provêem
uma forma conveniente para a coleta e a entrega aos representantes eleitos de propostas, geradas pelos cidadãos ou
por organizações representativas. Pesquisas de opinião online também podem ser utilizadas na coleta da opinião dos
cidadãos em tópicos especı́ficos.
Finalmente, a participação ativa pressupõe nı́veis mais elevados de envolvimento da população e apresenta maior potencial de influenciar nas decisões polı́ticas. O suporte ferramental para esse tipo de interação inclui não apenas fóruns
de discussão on-line, mas também referendos on-line e requisições eletrônicas ao poder executivo e legislativo.
Em geral, os fatores crı́ticos para o desenvolvimento de ferramentas de democracia eletrônica, e subsequente adoção
por parte dos cidadãos, incluem [22]: usabilidade, acessibilidade e segurança. Nesse sentido, a implementação dessas
ferramentas deve ter como premissas: (i) a possibilidade de
o usuário optar por acesso ao sistema como anônimo ou autenticado, nesse último caso, garantindo segurança das informações pessoais; (ii) balancear a definição de padrões com
a adoção de interfaces genéricas, com o objetivo de atender
a públicos variados; (iii) navegação simplificada através das
informações; e (iv) ser um ambiente seguro e confiável.
Além desses requisitos básicos, a OECD (Organisation for
Economic Co-Operation and Development) identificou outros cinco desafios fundamentais para o sucesso das ferramentas de democracia eletrônica [20, 21, 22]:
1. Problema de Escala - Um dos principais desafios para
implementação de democracia eletrônica é a transformação de discussões de âmbito local em opiniões que possam atingir toda uma nação. Em uma sociedade de
massas, é muito comum que opiniões se percam dentre
as milhões de possı́veis opiniões sobre um mesmo assunto. Nesse sentido, é necessário que ferramentas de
TIC atendam tanto a demanda do cidadão quanto dos
governantes, de modo que as opiniões de cidadãos sejam compartilhadas entre os cidadãos que participam
do processo polı́tico, e, por outro lado, governantes
tenham acesso a todas as opiniões e possam responder a cada uma delas, sem privilegiar indivı́duos ou
grupos.
2. Capacitação e Construção da Cidadania - A capacitação e a construção da cidadania pode se dar de três
maneiras: (i) por um processo de educação formal so-
152
bre a constituição, as leis e as práticas polı́ticas de
cada paı́s; (ii) incentivo à participação no debate das
questões locais; ou (iii), pela participação ativa da
sociedade no processo polı́tico. Nesse sentido, a utilização de ferramentas de TIC tem tanto o desafio,
como a oportunidade de contribuir para uma sociedade
participativa.
3. Garantia de Coerência das Informações - Garantir a
coerência das informações está diretamente relacionado
a conceitos de Gerência de Conhecimento. Durante o
processo de formulação de polı́ticas públicas são gerados centenas ou milhares de documentos e opiniões
que devem ser mantidos durante todo o ciclo. Todo
o conhecimento produzido durante o processo deve estar disponı́vel para consulta dos atores participantes,
de forma que possam ser analisados, alterados e respondidos eletronicamente. Para direcionar esse desafio
pode-se utilizar técnicas de trabalho e argumentação
colaborativa através do uso de computadores. A criação
de vocabulários comuns é muito importante para facilitar o desenvolvimento de ferramentas integradas.
Alguns exemplos de vocabulários comuns são o Dublin
Core Metadata Initiative (DCMI) [3] e o E-Government
Metadata Standard (e-GMS) [12], ambos com semântica
especializada para gerenciamento de conteúdo em aplicações de Governo Eletrônico.
4. Avaliação do Processo - Um dos desafios mais crı́ticos
da adoção de TIC está em medir o impacto de seu
uso. Como avaliar a eficiência das ferramentas de TIC
no processo polı́tico? Conforme o relatório da OECD
[20], o investimento financeiro necessário para avaliar
o uso de TIC é muito menor do que o investimento
para o desenvolvimento de ferramentas. A maioria das
pesquisas são realizadas com a intenção de se conhecer
a satisfação do cidadão, enquanto que o impacto de
suas contribuições no processo polı́tico não tem sido
pesquisado e nem documentado. Esse desafio envolve
não apenas questões tecnológicas, mas também uma
mescla de aspectos técnicos, polı́ticos e sociais.
5. Garantia de Continuidade do Processo - Para responder às expectativas dos cidadãos, é fundamental garantir a disseminação do processo polı́tico, demonstrá-lo
na prática e validá-lo frequentemente, de modo que
pequenas adaptações e evoluções sejam feitas.
Para ilustrar a complexidade desses problemas, tomemos o
Brasil como exemplo, um paı́s de dimensões continentais
com 5560 municı́pios, segundo dados do IBGE de 2004/2005
[23]. Tais municı́pios estão distribuı́dos entre as regiões
norte, com 449 municı́pios, nordeste com 1792, sudeste com
1668 (dos quais 645 apenas em São Paulo), região sul com
1188 e centro-oeste com 463 municı́pios. Esses dados evidenciam a necessidade de escalabilidade e coerência no acesso
às informações publicadas, bem como a necessidade de integração em ambientes possivelmente heterogêneos e com total independência administrativa. Assim, não se espera que
uma única ferramenta seja capaz de prover o suporte adequado para esses diferentes tipos de relacionamentos. Pelo
contrário, espera-se que um conjunto integrado de ferramentas e serviços seja utilizado.
3. GRADES COMPUTACIONAIS
Grades computacionais vêm surgindo como uma nova tecnologia para desenvolvimento de aplicações distribuı́das, permitindo o compartilhamento e disponibilização de recursos sob demanda e em larga escala, através de um novo
paradigma de computação baseado em serviços. Mais do
que compartilhar recursos computacionais para aplicações
paralelas que necessitam de alto poder de processamento, a
adoção de arquiteturas para desenvolvimento de aplicações
baseadas em serviços grid (Grid Services) permite a virtualização de recursos, encapsulando detalhes de implementação
e criando um ambiente colaborativo e geograficamente distribuı́do [2, 8, 9].
As plataformas de grade permitem o compartilhamento de
uma variedade de recursos, tais como servidores, estações de
trabalho, computadores pessoais, dispositivos de armazenamento, ferramentas de software, etc., que podem estar em
localizações geográficas dispersas e sob diferentes domı́nios
administrativos.
Uma grade computacional possui caracterı́sticas especı́ficas,
não presentes em outras plataformas distribuı́das, dentre as
quais destacam-se:
• Escalabilidade e heterogeneidade. Plataformas de grade
podem crescer em número na casa de milhões de recursos, com heterogeneidade de hardware e software,
diferentemente de outros ambientes computacionais distribuı́dos que agregam poucos recursos e tipicamente
homogêneos, tais como clusters;
• Dispersão geográfica. Grades computacionais podem
agregar recursos geograficamente distribuı́dos, atingindo uma escala global;
• Múltiplos domı́nios administrativos. Grades computacionais não possuem um administrador único. Cada
instituição que oferece recursos para uma grade computacional tem total controle sobre sua utilização, definindo polı́ticas de acesso, tanto a recursos quanto a
serviços.
O novo paradigma de computação baseado em serviços aliado à tecnologia de grades computacionais, deu origem ao
padrão Open Grid Service Architecture (OGSA) [10], especificado pelo Global Grid Forum (GGF). O padrão OGSA define mecanismos para implementação de serviços baseado
em protocolos e padrões web, tais como Simple Object Access Protocol (SOAP) e Web Service Description Language
(WSDL).
153
Atualmente, o Globus Toolkit 4 (GT4) 1 é a implementação
de referência do padrão OGSA. O GT4 fornece um conjunto
de bibliotecas e programas com objetivo de resolver problemas comuns na construção de sistemas distribuı́dos [6].
Alguns serviços são disponibilizados pelo GT4, tais como
o gerenciamento e execução de tarefas, implementado pelo
componente GRAM, os serviços de acesso a dados implementados pelos componentes GridFTP (transferência segura
de dados) e RFT (gerenciamento confiável de múltiplas execuções do GridFTP), replicação de dados (RLS e DRS), e o
acesso a bases de dados heterogêneas (OGSA-DAI). O GT4
oferece ainda um serviço de monitoramento e descoberta de
recursos (WebMDS), e serviços de autenticação e controle de
acesso a recursos e serviços na grade (implementados pelo
GSI). Além dos serviços já implementados, o GT4 inclui suporte para desenvolvimento de novos serviços baseados no
padrão Web Services Resource Framework (WSRF), [7].
Tanto em função dos desafios relacionados ao desenvolvimento de aplicações de democracia eletrônica, quanto da
necessidade de estimular o engajamento e a participação
ativa da sociedade no processo polı́tico, faz-se necessário a
utilização de uma tecnologia que permita atender tais requisitos de forma trasparente, criando assim um ambiente
integrado e colaborativo. Em [25], mostramos como uma
plataforma de grade computacional pode ser utilizada para
prover suporte para aplicações de democracia eletrônica.
4. DEMOCRACIA ELETRÔNICA EM GRADES COMPUTACIONAIS
4.1 Cenário
O conceito de democracia eletrônica é muito amplo, possibilitando o desenvolvimento de ferramentas para diversas etapas do ciclo polı́tico [15]. Nesse sentido, este trabalho propõe
a criação de um conjunto de serviços capaz de dar suporte
ao processo de elaboração de novas polı́ticas públicas. Esses
serviços são integrados e disponibilizados como uma ferramenta de fórum de discussões em um ambiente de grade. Na
implementação destes serviços utilizamos o Globus Toolkit
4 (GT4) e seus componentes.
A Figura 1 ilustra o cenário de implementação da ferramenta
de democracia eletrônica. De acordo com este cenário, diversos municı́pios de um paı́s podem ser agrupados em grandes
Áreas Metropolitanas (AM). Cada AM constitui uma Organização Virtual (OV) formada pela congregação de diversos
municı́pios próximos que dispobibilizam recursos computacionais, e implementam e utilizam serviços de democracia
eletrônica. Dessa forma, cada AM possuirá um ou mais
servidores com o GT4 e outras ferramentas necessárias instaladas (servidor web, banco de dados, etc.). O acesso aos
recursos será feito através de um portal Web.
Inicialmente, esta aplicação considera a participarão de três
atores no ciclo polı́tico: Mediador, responsável pela administração de uma AM; Parlamentar (e.g., vereador, deputado,
1
Globus Toolkit 4 website http://www.globus.org
conteúdo publicado, bem como o potencial para integração
de ferramentas de recuperação e troca de informações, são
fundamentais para a criação de tais ambientes.
A democracia eletrônica apresenta novos desafios no que diz
respeito à colaboração em larga escala na Internet. Esperase que milhões de pessoas participem do processo polı́tico
em paı́ses de dimensões continentais como o Brasil. Nesse
sentido, ferramentas de TIC devem estar preparadas para
dar suporte à colaboração, oferecendo mecanismos eficientes
de descoberta e recuperação de informações em ambientes
geograficamente distribuı́dos e, possivelmente, heterogêneos.
Adicionalmente, tais ferramentas devem ser capazes de aproximar pesssoas através do compartilhamento de idéias e opiniões.
A ferramenta apresentada neste trabalho provê um fórum
de discussão baseado no uso de plataformas de grade. As
principais caracterı́sticas da ferramenta e como ela atende
aos requisitos de democracia eletrônica são apresentados a
seguir.
Figura 1: Cenário de implementação
[25]
etc.), pode consultar opiniões, solicitar abertura de novos
fóruns, publicar documentos, interagindo, assim, com a população no processo polı́tico; e Cidadãos, os quais podem ser
cadastrados no sistema ou interagir como anônimos, sem necessidade de autenticação. Toda informação publicada será
tratada como um recurso, podendo este ser uma mensagem,
um tópico de discussão, um documento ou uma agregação
de todos os outros recursos.
Nessa fase do projeto centramos esforços na definição e implementação de um conjunto de serviços que seja capaz de
dar suporte a diferentes aplicações de democracia eletrônica,
possibilitando sua utilização em larga escala. Os serviços implementados e apresentados neste artigo fazem parte da camada de formulação polı́tica. Nosso protótipo ainda disponibiliza um portal web com as funcionalidades básicas, tais
como, publicação de mensagens e documentos, consultas e
acompanhamentos de discussões, criação e encerramento de
fórums, etc.
A definição da arquitetura da ferramenta e seus aspectos
de implementação serão detalhados a seguir. Para a implementação dos serviços foi necessário a definição de um
conjunto de elementos de metadados, os quais foram detalhados em [25].
4.2 Colaboração em Larga Escala
Atualmente a Internet interconecta milhões de computadores no mundo inteiro. O seu crescimento em escala global
possibilita o desenvolvimento de várias aplicações, dentre as
quais estão os ambientes colaborativos. O grande volume de
154
Utilização em Larga Escala: Para explorar as caracterı́sticas
das plataformas de grade referente a escalabilidade, a ferramenta de democracia eletrônica deve ser executada no
âmbito de cada Área Metropolitana (AM), a qual constitui uma Organização Virtual (OV) na grade computacional.
Cada AM possui um servidor principal que implementa um
serviço de informações, no qual são registrados todos os recursos e serviços disponı́veis na mesma AM. Assim, usuários
e serviços que executam na grade podem efetuar consultas
a esse serviço para obter informações sobre a existência e o
estado dos recursos de uma AM. No âmbito de cada AM,
diversos repositórios são implementados para armazenar e
disponibilizar recursos tais como, fóruns de discussão, mensagens e documentos publicados. Sempre que um novo recurso é criado, réplicas serão criadas e armazenadas em
repositórios da mesma AM. O gerenciamento de réplicas é
feito com o suporte do RLS, um componente do GT4 que implementa mecanismos para registro e localização de réplicas
na grade computacional. A replicação, nesse caso, propicia maior disponibilidade dos recursos, permitindo que as
aplicações se adaptem em caso de falhas.
Em algumas situações, aplicações precisam buscar e acessar
recursos pertencentes a outras AMs. Para permitir buscas
em AMs remotas, foi implementada uma estrutura hierárquica, na qual uma AM principal mantém registros sobre outras AMs associadas. Por exemplo, a AM principal pode ser
mantida pelo Governo Estadual ou Federal, e manter registros sobre as demais AMs. Repositórios cache são implementados em cada AM, permitindo que os recursos remotos
(i.e., obtidos de outras AMs) que são utilizados com mais
frequência sejam obtidos com maior rapidez. O controle das
réplicas de recursos remotos que estejam temporariamente
armazenadas no cache local também são feitas pelo RLS. Um
mecanismo de limpeza do cache local é disparado periodicamente, eliminando réplicas que não tenham sido utilizadas
recentemente.
A Figura 2 demonstra o cenário de configuração do ambiente
representando uma AM utilizada para testes. Nesta figura
estão representados um servidor configurado para cache, dois
servidores RLS para catálogo de réplica (LRC), um servidor
RLS para localização de réplicas (RLI) e um servidor principal onde está localizado o Portlet Container, o serviço de
informações (MDS) e a base de dados da aplicação.
ficando informações. Informações localizadas em diferentes
OVs poderão ser consultadas e recuperadas para a OV local através de implementação de serviços de replicação que
fazem acesso aos componentes RLS e GridFTP disponibilizados pelo GT4.
Acessibilidade: O acesso às informações é feito através de
um portal Web. O portal oferece mecanismos de fácil acesso
e navegação. O portal utiliza portlets (veja seção 4.4), permitindo ao usuário personalizar sua área de trabalho através
da seleção dos componentes que deseja acessar.
4.3 Arquitetura da Ferramenta
A arquitetura da ferramenta está baseada na utilização do
Globus Toolkit 4 (GT4) e alguns de seus componentes, estendendo-os para implementação de detalhes especı́ficos da aplicação em questão. A Figura 3 apresenta a arquitetura da
ferramenta de democracia eletrônica.
Figura 2: Cenário de configuração do ambiente
Orientação a Metadados: O protótipo descrito utiliza um
metamodelo de metadados (inicialmente proposto em [25])
baseado nos padrões DCMI [3], e-GMS [12] e v-Card [27],
sendo representados através de Resource Description Framework (RDF) [19]. Metadados permitem melhorar a acessibilidade e usabilidade de recursos, possibilitando maior agilidade e eficiência na descoberta de informações relevantes.
O metamodelo implementado permite que usuários possam
adicionar novos elementos dinamicamente, conforme necessidade. Isto é feito criando-se novos pares de elementos
chave/valor, onde a chave representa o nome do elemento
acrescentado pelo usuário. Tal caracterı́stica permite aos
mediadores, por exemplo, agrupar informações (mensagens,
documentos) e classificá-las com elementos especı́ficos de
metadados, tornando a busca pela informação mais eficiente.
Distribuição e Independência Administrativa: Grades computacionais diferenciam-se de outras plataformas distribuı́das
principalmente por permitirem independência adminstrativa
e pertencerem a regiões geograficamente distantes. A ferramenta de democracia eletrônica explora essas caracterı́sticas
através da configuração de OV em cada Área Metropolitana. Cada OV terá instalado um portal web que permite ao mediador cadastrar usuários e grupos, atribuir permissões e gerenciar conteúdo publicado, agrupando e classi-
155
Figura 3: Arquitetura da ferramenta de democracia
eletrônica
4.3.1 Infra-estrutura Globus
Na camada de mais baixo nı́vel, denominada camada de
infra-estrutura do globus, temos os componentes GT4 utilizados pela ferramenta de democracia eletrônica. Atualmente, os componentes utilizados são o GSI para autenticação, os componentes de acesso a dados RLS para replicação, GridFTP para recuperação de arquivos de conteúdo e o
MDS para descoberta de serviços e recursos computacionais
disponı́veis.
A replicação tem por objetivo melhorar a disponibilidade da
aplicação e prover melhor qualidade na busca de documentos
relevantes, disponibilizados em qualquer uma das OVs. O
RLS é utilizado como mecanismo para registro e descoberta
de réplica dos recursos de democracia eletrônica dentro da
grade. A publicação de qualquer recurso envolve as etapas
de: (i) identificação, atribuindo uma URI que o identificará
unicamente independente de sua localização; (ii) replicação,
onde é feita uma ou mais cópias do recurso; e (iii) registro
dos mapeamentos das cópias em uma coleção de réplicas. As
réplicas são feitas com o suporte do componentes GridFTP
para transporte de arquivos de conteúdo, enquanto o RLS
mantém registro dos recursos e de sua localização fı́sica.
4.3.2 Gerência de Recursos e Metadados
A camada intermediária, denominada gerência de recursos e
metadados (core), é responsável pela manipulação de metadados especı́ficos da aplicação de democracia eletrônica, pelas
estratégias de replicação e cache implementados e pelo acesso
aos serviços de infra-estrutura do GT4. Essa camada implementa o modelo de metadados apresentado em [25].
O componente DMCore encapsula a manipulação e persistência de documentos RDF/XML, ocultando da camada
de serviços os detalhes de implementação. Nessa mesma camada tem-se o componente XML/RDF Parser, que é responsável pela transformação de recursos e metadados em
documentos XML e por gerar o grafo de persitência RDF
para banco de dados relacional. Atualmente utilizamos o
framework Jena 2.32 e o banco de dados Postgres para persistência de conteúdo RDF.
O componente Adaptador GT4 é responsável por prover
acesso aos componentes do Globus Toolkit 4. Esse componente permite encapsular o acesso à infra-estrutura da
grade.
O componente DMCore permite implementar diferentes estratégias de replicação, que podem ser configuradas durante
a implantação da aplicação, bastando apenas que uma nova
estratégia implemente a interface ReplicationStrategy. A
estratégia padrão para replicação seleciona dois LRCs aleatoriamente para criar as cópias. Esse componente é baseado
nos padrões Facade, AbstractFactory e Strategy [11].
4.3.3 Serviços
A camada de mais alto nı́vel, denominada camada de serviços,
provê gerenciamento de sessão e interação com diferentes
tipos de usuários. Nessa camada estão implementados os
serviços necessários para dar suporte à execução da aplicação
de democracia eletrônica em ambiente de grade. Os seguintes
serviços foram implementados como Grid Services utilizando
o padrão WSRF:
• e-Democracy Resource Management Service (DRMS)
- serviço de acesso para manipulação de recursos na
aplicação de democracia eletrônica.
2
Semantic Web Framework, http://jena.sourceforge.net/
156
• e-Democracy Metadata Management Service (DMMS)
- serviço responsável pela manipulação de metadados
especı́ficos da aplicação e pela atribuição aos recursos.
A. DRMS
O DRMS provê suporte à manipulação dos recursos de democracia eletrônica, como fóruns de discussões, mensagens,
documentos e opiniões publicadas pelos atores envolvidos.
Com o suporte do DRMS, mediadores podem criar e encerrar tópicos de discussão, publicar documentos relevantes
para acesso pelos demais atores, aprovar ou rejeitar mensagens publicadas e agrupar e direcionar as mensagens a
pessoas apropriadas da administração pública. Através do
DRMS, cidadãos podem consultar informações e documentos previamente publicados e enviar suas próprias opiniões
sobre os temas em debate, identificando-se ou não; o DRMS
provê mecanismo para cadastramento e identificação de usuários, apenas quando esses queiram se identificar.
As funcionalidades suportadas pelo DRMS incluem:
• Publicação de recursos. O DRMS fornece funcionalidades especı́ficas para publicação de recursos, tais como
mensagens e documentos, bem como criação de tópicos
de discussão. Parlamentares podem solicitar aos mediadores a abertura de novos fóruns e, cidadãos cadastrados na aplicação podem sugerir outros temas para discussão, ambos acessados através do serviço DRMS.
• Recuperação de informações. O DRMS, através da
interação com o serviço DMMS, é acessado pelos atores
para obtenção de informações especı́ficas armazenadas
em bases de dados replicadas.
B. DMMS
Todo recurso publicado na aplicação de democracia eletrônica
será associado a um conjunto de informações de metadados.
O DMMS provê suporte para o armazenamento e a consulta de metadados associados aos recursos publicados na
aplicação. Semelhante a outros serviços de metadados [4],
o DMMS provê um mecanismo para gerenciamento e processamento de metadados especializado para o contexto de
democracia eletrônica. Nesse sentido, o DMMS implementa
um serviço de catálogo de metadados que suporta armazenamento, consulta, classificação e agregação de recursos em
larga escala. Com o suporte do DMMS, mediadores podem contribuir para melhorar a qualidade da informação
disponı́vel on-line, em termos de acessibilidade, relevância
e utilidade para os cidadãos e parlamentares, promovendo
uma melhor comunicação entre cidadãos, parlamentares e
órgãos da administração pública.
O DMMS pode ser acessado pelo DRMS no momento da
publicação de recursos de modo a atribuir os elementos mı́nimos de metadados informado pelos usuários. Outra importante caracterı́stica do DMMS é a possibilidade dos usuários
criarem seus próprios elementos de metadados. Através
do DMMS, mediadores podem criar agrupamento de informações e atribuir novos elementos de metadados para
permitir uma melhor qualificação dos dados. Por exemplo, um mediador pode criar um agrupamento de recursos do tipo mensagem e atribuir um elemento de metadados chamado <escolaridade>, cujo valor do elemento seja
graduado. Dessa forma, uma consulta poderia ser feita
na base de dados RDF do tipo selecione as mensagens
publicadas pelos cidad~
aos graduados. Essa caracterı́stica acrescenta um valor significativo ao conteúdo publicado,
sendo o DMMS flexı́vel o suficente para permitir evoluções
no mecanismo de armazenamento e recuperação de informações armazenadas em RDF/XML.
4.4 Protótipo da Ferramenta
A ferramenta de democracia eletrônica é disponibilizada através de um portal Web, cuja implementação está baseada
em portlets. Portlets são componentes Web com um conjunto bem definido de operações, os quais fornecem interfaces visuais padronizadas e reutilizáveis [13]. Da mesma
forma que um Web Container disponibiliza um ambiente
para execução de aplicações Web, um Portlet Container
gerencia a execução e o ciclo de vida de um Portlet. Nosso
protótipo utiliza o Portlet Container GridSphere 3 . O GridSphere fornece um conjunto básico de componentes necessários para o gerenciamento do portal, como Login/Logout,
gerenciamento de contas e gerenciamento de usuários. O
Portlet Subscription permite que o próprio usuário selecione
os componentes aos quais deseja utilizar, conforme regras de
acesso definidas pelo administrador. A Figura 4 apresenta
a tela de gerenciamento de permissões aplicado a cada portlet. Existem dois grupos de portlets, o primeiro representa
o grupo dos componentes para aplicações de grade em geral
(Grid Portlets), e o segundo, os componentes especı́ficos da
aplicação de democracia eletrônica, cada um com seu nı́vel
de permissão; nesse caso, usuários podem acessar os componentes para acompanhamento de discussões, publicação de
mensagens e publicação de documentos. Outros agrupamentos podem ser criados, inclusive com um portlet participando
de mais de um grupo.
Figura 4: Gerenciamento de permissões do Gridsphere
Adicionalmente, o GridSphere fornece um conjunto de com3
Gridsphere website http://www.gridsphere.org
157
ponentes denominados Grid Portlets [24] (veja o primeiro
grupo de componentes da Figura 4). Tais componentes suportam acesso ao Globus Toolkit 2 (GT2), GT3 e GT4,
oferecendo interface para acesso aos serviços de localização,
submissão de tarefas, FTP, gerenciamento de credencias, autenticação, entre outros.
A camada de acesso aos serviços da ferramenta estão encapsulados em um módulo Web denominado DMWeb. O
DMWeb implementa componentes portlets atômicos, ou seja,
cada portlet disponibiliza uma funcionalidade especı́fica, permitindo uma granularidade mais fina no gerenciamento de
acesso aos serviços. A Figura 5 apresenta a interface da ferramenta de democracia eletrônica. Nesta interface o usuário
pode acompanhar as discussões, consultando as informações
publicadas apartir de palavra-chave, tópicos especı́ficos ou
elementos de metadados.
5. TRABALHOS RELACIONADOS
Atualmente, existem várias formas de interação entre grupos
e espaços para discussões de assuntos de interesse geral. Um
dos meios mais utilizados, e que vem crescendo gradativamente, é a disponibilização de Weblogs [16]. Não somente o
usuário ”comum” da internet pode disponibilizar seu Weblog
para expor suas opiniões, como muitos veı́culos de comunicação, ONGs, jornalistas, parlamentares, etc. publicam
suas idéias e opiniões em tais ambientes, permitindo que
qualquer pessoa interaja e discuta suas opiniões. Além dos
Weblogs e ferramentas de fórum de discussões de interesse
geral, algumas iniciativas veêm sendo tomadas no sentido
de disponibilizar ferramentas especı́ficas para aplicações de
Democracia Eletrônica e criação de ambientes colaborativos
através da internet.
O projeto Webocracy [17] criou a ferramenta denominada
Webocrat para assegurar suporte eficiente à troca de informações entre cidadãos e governos. Além de oferecer módulos como gerenciador de fóruns de discussão, gerenciamento de conteúdo web, consulta e obtenção de documentos
e geração de relatórios, todos acessados através da internet,
o Webocrat está centrado na implementação do Knowledge
Model (KM), responsável por gerenciar ontologias e dar suporte a todos os outros módulos da aplicação. O módulo
KM implementa uma tecnologia de modelagem de conhecimento baseado na organização de informações utilizando
um modelo especı́fico (domain specific knowledge model), o
qual resulta em uma eficiente capacidade de recuperação de
informações.
O projeto DEMOS [29] é um sistema disponibilizado através
da plataforma Wornex’s WorldDirector que provê ambiente para gerenciamento de discussões e tomadas de decisão
através da Internet, suportado por um conjunto de ferramentas integradas e adaptadas para múltiplas linguagens.
O projeto foi validado a partir da utilização em Hamburgo
(Alemanha) e Bologna (Itália). O sistema é disponibilizado
através do modelo Application Service Providers (ASP), o
qual possibilita a locação da aplicação, ao invés da aquisição.
Figura 5: Interface de acompanhamento de discussões
O projeto EURO-CITI [5] explora o potencial da democracia eletrônica através da utilização de serviços como voto
eletrônico, submissão de formulários e documentos e com
consultas aos cidadãos (e-consulting). O sistema oferece
acesso através da Internet ou quiosques localizados em lugares públicos.
O projeto CoFrame [14] implementa um framework para desenvolvimento de aplicações colaborativas, baseado em Grid
Services e no Globus Toolkit 3 (GT3). O CoFrame foi utilizado para implementar, como estudo de caso, um sistema
de educação a distância na China, chamado China Central Radio e TV University (CCRTVU). Adicionalmente,
o CoFrame implementa mecanismos de replicação de informações baseados em três diferentes estratégias: (i) volume de tráfego na rede, (ii) carga dos servidores e (iii) popularidade dos recursos acessados.
Nosso trabalho assemelha-se ao Webocracy quanto à concepção da ferramenta e entendimento dos requisitos de democracia eletrônica. Ambos procuram implementar mecanismos de busca e classificação de informações eficientes.
O trabalho também possui objetivos similares ao projeto
CoFrame, dado que ambos procuram prover ferramentas
que atendam aos requisitos de escala, heterogeneidade, distribuição geográfica e compartilhamento de informações para
construção de ambientes colaborativos de larga escala.
6. AVALIAÇÃO DE RESULTADOS
De modo geral, os potenciais benefı́cios advindos do uso de
tecnologias colaborativas incluem a melhoria da qualidade
158
nas deliberações, maior transparência no processo polı́tico,
e uma participação mais ampla dos cidadãos [20, 21, 22].
Entretanto, pouco se sabe sobre o impacto efetivo do uso de
tais ferramentas colaborativas no ciclo polı́tico.
Avaliar os benefı́cios da democracia eletrônica pode ser bem
mais complexo do que avaliar a acessibilidade ou aceitação
de aplicações que implementam fóruns de discussão na Web.
Por exemplo, tais ferramentas podem envolver diversos canais de interação online e offline entre cidadãos, seus representantes eleitos, e entidades governamentais ou não-governamentais. A adequação das ferramentas à forma como os processos polı́ticos ocorrem na prática também constitui um fator importante a ser observado. A mediação da interação
entre os atores envolvidos no ciclo polı́tico também é de
fundamental importância para que os benefı́cios possam ser
atingidos, e a questão envolve um estudo aprofundado sobre
a forma como as pessoas se comportam no processo polı́tico
(por exemplo, formando parcerias, oposições, lobbies, etc).
Esses e outros aspectos técnicos e sociais têm sido amplamente discutidos na literatura e fóruns especializados em
Sistemas Colaborativos. Sistemas de software cujo objetivo
envolve o estabelecimento ou facilitação da conversação, a
formalização dos papéis dos atores envolvidos em uma interação, o processamento das suas interações, ou ainda, a
provisão de outras formas de suporte têm sido objeto de
estudo há mais de uma década.
Apesar desses aspectos serem amplamente estudados há vários anos, novas oportunidades de pesquisa surgem quando
tais aspectos são trazidos para o contexto da democracia
eletrônica. Nesse sentido, uma das principais dificuldades
atuais é a carência de experimentos e relatos mais completos
e aprofundados, efetivamente ligados a processos polı́ticos
existentes, principalmente envolvendo um número expressivo de atores [1]. Por esses motivos, mais recentemente a
democracia eletrônica tem ganhado importância crescente
nos fóruns especializados em sistemas colaborativos [28].
7. CONCLUSÃO E TRABALHOS FUTUROS
O sucesso do uso de TIC em democracia eletrônica depende
da criação de espaços públicos para discussão, comunicação
interativa entre os atores envolvidos, garantia da qualidade
da informação, permitindo busca, classificação e agregação
de forma eficiente e, garantia de que realidades especı́ficas
de cada região geográfica sejam refletidas no espaço público
bem como a interação entre cidadão de regiões geograficamente distribuı́das.
Uma das principais limitações das ferramentas colaborativas, tais como weblogs e fóruns de discussão, está no tratamento da grande quantidade de informação publicada, que
se perde com o tempo. Para que exista cooperação entre
pessoas e compartilhamento de informações, principalmente
no que se refere à democracia eletrônica, é fundamental
que existam mecanismos para localização e classificação eficientes, de forma que as opiniões publicadas sejam ouvidas
durante o processo de elaboração de polı́ticas públicas.
Nesse sentido, este trabalho procura ocupar a lacuna deixada pelos atuais ambientes públicos de colaboração. Plataformas de grade oferecem capacidade de gerenciamente de
recursos e informações em ambientes geograficamente distribuı́dos e heterogêneos, caracterı́sticas fundamentais para
cooperação em larga escala. Através dos recursos oferecidos
pelas plataformas de grade, especificamente os ambientes
baseados em serviços (Grid Services), torna-se possı́vel o
desenvolvimento de aplicações colaborativas, possibilitando
maior compartilhamento e disseminacão de informações.
Com o protótipo atual da ferramenta, podemos assegurar
uma maior integração dos recursos existentes nas diversas
AMs. Se cada AM disponibilizasse apenas um Web Service comum, terı́amos apenas ”ilhas de recursos”, isoladas
umas das outras. Isso certamente limitaria a escala de colaboração. Com a utilização de Grades computacionais, é
possı́vel integrar recursos disponı́veis em diversas AMs.
Os próximos passos deste projeto envolvem a realização de
experimentos com a implementação atual dos serviços de
gerência de recursos. O objetivo principal de tais experimentos será avaliar a eficiência na busca de informações com a
utilização de semântica RDF como técnica para melhorar a
acessibilidade do cidadão aos recursos publicados. Pretendese ainda, implementar e avaliar um serviço de gerência de
identidade e controle de acesso a recursos, aplicados ao contexto de democracia eletrônica, de modo a ampliar as caracterı́sticas já disponibilizadas pelos Portlets Containers. Adicionalmente, serão avaliados aspectos de acessibilidade das
informações e usabilidade da ferramenta. Por fim, pretende-
159
se disponibilizar a ferramenta para entidades interessadas na
sua utilização em situações reais, de forma que os aspectos
sociais e polı́ticos possam ser avaliados.
8. REFERÊNCIAS
[1] S. Coleman and J. Gøtze. Bowling together: Online
public engagement in policy deliberation. Home Page
em http://bowlingtogether.net/bowlingtogether.pdf,
2001. (acessado em setembro de 2006).
[2] K. Czajkowski, C. Kesselman, S. Fitzgerald, and
I. Foster. Grid information services for distributed
resource sharing. In 10th IEEE International
Symposium on High Performance Distributed
Computing, Los Alamitos, CA, USA, 2001. IEEE
Computer Society Press.
[3] DCMI. Dublin core metadata initiative dcmi. Home
page http://dublincore.org/, 2005. (acessado em
setembro de 2006).
[4] E. Deelman, G. Singh, M. P. Atkinson, A. Chervenak,
N. P. C. Hong, C. Kesselman, S. Patil, L. Pearlman,
and M.-H. Su. Grid-based metadata service. In 16th
Intl. Conf. on Scientific and Statistical Database
Management, page 393, Santorini, Island, Greece,
2004. IEEE Computer Society Press.
[5] EURO-CITI. European cities platform for on-line
transaction services. Home page
http://www.euro-citi.org/, 1999. (acessado em
setembro de 2006).
[6] I. Foster. Globus toolkit version 4: Software for
service-oriented systems. In IFIP International
Conference on Network and Parallel Computing, pages
2–13. Springer-Verlag LNCS, 2005.
[7] I. Foster, J. Frey, S. Graham, S. Tuecke,
K. Czajkowski, D. Ferguson, F. Leymann, M. Nally,
I. Sedukhin, D. Snelling, T. Storey, W. Vambenepe,
and S. Weerawarana. Modeling stateful resources with
web services v. 1.1., março 2004.
[8] I. Foster, C. Kesselman, J. M. Nick, and S. Tuecke.
The physiology of the grid: An open grid services
architecture for distributed systems integration. In
Open Grid Service Infrastructure WG. Global Grid
Forum, junho 2002. (extended version of Grid Services
for Distributed System Integration).
[9] I. Foster, C. Kesselman, and S. Tuecke. The anatomy
of the grid: Enabling scalable virtual organizations.
International Journal of Super-Computer
Applications, 15(3), 2001.
[10] I. Foster, H. Kishimoto, A. Savva, D. Berry,
A. Djaoui, A. Grimshaw, B. Horn, F. Maciel,
F. Siebenlist, R. Subramaniam, J. Treadwell, and
J. V. Reich. The open grid services architecture,
version 1.0. Global Grid Forum (GGF), janeiro 2005.
Informational Document.
[23] L. A. P. Oliveira. Perfil dos municı́pios brasileiros:
Gestão pública 2004/IBGE. Pesquisa de Informações
Básicas Municipais. ISBN 85-240-3837-3, IBGE Instituto Brasileiro de Geografia e Estatı́stica, Rio de
Janeiro, 2005. Coordenação de População e
Indicadores Sociais.
[11] E. Gamma, R. Helm, R. Johnson, and J. Vlissides.
Design Patterns: Elements of Reusable
Object-Oriented Software. Addison-Wesley
Professional, 1995.
[12] GovTalk. e-government metadata standard (e-gms) v.
3.0. Home page
http://www.govtalk.gov.uk/schemasstandards/
metadata document.asp?docnum=872, abril 2004.
(acessado em setembro de 2006).
[24] M. Russell, J. Novotny, and O. Wehrens. The grid
portlets web application: A grid portal framework.
GridSphere Project Website http://www.gridsphere.org/gridsphere/gridsphere?
cid=publications, 2005. (acessado em setembro de
2006).
[13] Java Community Process. Jsr 168: Portlet
specification. Home page
http://www.jcp.org/jsr/detail/168.jsp, 2003.
(acessado em setembro de 2006).
[25] H. Senger, F. Silva, M. Mendes, R. Rondini, and
C. Farias. Grid platforms for e-democracy
applications. In 11th IEEE Symposium in Computer
and Comunications, pages 334 – 339, Pulla, Cagliari,
Junho 2006. IEEE Computer Society Press.
[14] J. Jiang, S. Zhang, Y. Li, and M. shi. Coframe: A
framework for CSCW applications based on grid and
web services. In IEEE Intl. Conf. on Web Services,
pages 570–577. IEEE Computer Society Press, 2005.
[26] F. Silva and H. Senger. The grid: an enabling
infrastructure for future e-commerce, e-business and
e-government applications. In Digital Communities in
a Networked Society: eCommerce, eGovernment and
eBusiness, pages 253 – 265, Dordrecht - Holanda,
2004. Kluwer Academic Publishers.
[15] H. Kubicek, H. Westholm, and R. Winkler. Prisma
strategic guideline 9. Home page http://www.prismaeu.net/deliverables/sg9democracy.pdf, abril 2003.
(acessado em setembro de 2006).
[16] C. Lindahl and E. Blount. Weblogs: Simplifying web
publishing. Computer, 36(11):114–116, Novembro
2003.
[17] M. Mach, T. Cizmarik, F. Dridi, K. Furdik,
J. Gilberg, J. Hreno, S. Hudak, R. Kende,
M. Lumtzer, P. Macej, E. Novacek, I. Palola, T. Sabol,
N. Sansom, and P. Thomson. Webocracy - edited
annual report for publication. Technical report,
Information Society Technologies, dezembro 2003.
[18] A. Macintosh. Characterizing e-participation in
policy-making. In 37th Hawaii Intl. Conf. on System
Sciences, page 50117a, Los Alamitos, CA, USA, 2004.
IEEE Computer Society Press.
[27] Versit. vcard: The electronic business card v. 2.1 - a
versit consortium specification. Home page
http://www.imc.org/pdi/vcardwhite.html, setembro
1996. (acessado em setembro de 2006).
[28] A. Whyte. Conversations with non-human actors in
e-democracy evaluation. In ECSCW e-Democracy
Workshop, Helsinki, Finland, 2003. ECSCW
e-Democracy Workshop.
[29] Wornex. Delphi online mediation system. Home page
http://www.wornex.com/content/view/16/83/, 2002.
(acessado em setembro de 2006).
[19] B. McBride. Rdf primer - w3c recommendation. Home
page http://www.w3.org/TR/rdf-primer/, fevereiro
2004. (acessado em setembro de 2006).
[20] OECD. Citizens as partner information, consultation
and public participation in policy-making. Home page
http://www.oecd.org/dataoecd/53/57/2537528.pdf,
2001. (acessado em setembro de 2006).
[21] OECD. Engaging citizens online for better
policy-making. policy brief. Home page
http://www.oecd.org/dataoecd/62/23/2501856.pdf,
2003. (acessado em setembro de 2006).
[22] OECD. Promise and Problems of e-Democracy.
Challenges of online Citizen Engagement. OECD
Publications Service, Paris - France, 2003. Home page
http://www.oecd.org/publications/ebook/4204011E.pdf (acessado em setembro de
2006).
160
Simbiose Digital e Colaboração em Ambientes 3D
Glauco Todesco
Marcelo K. Zuffo
Universidade de Sorocaba
Rod. Raposo Tavares, KM 92.5
Sorocaba – São Paulo – Brasil
Telefone: (+55 15) 2101-7000
Escola Politécnica da Universidade de São Paulo
Av. Prof. Luciano Gualberto, 158. Trav.3.
São Paulo - SP – Brasil
Telefone (+55 11) 3091-5589
[email protected]
[email protected]
Esse artigo discute sobre as atuais formas de colaboração em
ambientes tridimensionais e propõe um novo paradigma
denominado de Simbiose Digital com suporte a colaboração
baseada na experimentação sensorial coletiva.
Esse artigo discute inicialmente as formas tradicionais de
colaboração baseadas em ambientes tridimensionais. Após essa
discussão é apresentada a definição de Simbiose Digital, bem
como as suas principais características. Um exemplo de aplicação
de Simbiose Digital é apresentado seguido das conclusões.
ABSTRACT
2. COLABORAÇÃO EM AMBIENTES 3D
This paper discusses about the actual forms of collaboration in the
three-dimensional environments and proposes a new paradigm
called Digital Symbiosis that supports collaboration based on
collective sensorial experience.
Segundo Benford et al [1], as aplicações de CSCW podem ser
classificadas espacialmente em cinco categorias: Espaços de
Mídia, Vídeo Conferência Espacial, Ambiente Virtual
Colaborativo, Tele-Presença e Ambiente de Realidade Aumentada
Colaborativo. A dimensão espacial está relacionada ao nível de
suporte das principais propriedades físicas espaciais como
topologia, distância, orientação e movimento. Os espaços de
mídias envolvem a melhoria dos ambientes de trabalho com a
integração da comunicação baseada no uso de áudio e vídeo. As
principais características desse tipo de aplicação estão baseadas
em tentar reunir pessoas em regiões geográficas distintas por um
longo período de tempo, focando em aspectos sociais de
relacionamento, sensação de presença e consciência periférica. A
vídeo conferência tradicional envolve o uso de vídeo e áudio para
suportar encontros, geralmente de curta duração e com propósitos
pré-definidos. As aplicações de Vídeo Conferência Espacial são
uma variação das aplicações tradicionais de vídeo conferência,
porém elas permitem que os usuários tenham a referência espacial
do ambiente compartilhado, como permitir saber quem está
olhando para quem (gaze direction). Os Ambientes Virtuais
Colaborativos são aplicações baseadas no uso de um sistema de
comunicação para o compartilhamento de ambientes sintéticos
3D. Os usuários são representados nesses ambientes virtuais
através da figura de um avatar, podendo interagir com o ambiente
e com os demais avatares de forma independente. A tele-presença
permite que os participantes da aplicação possam remotamente
estar presentes, através do uso de computadores e tecnologias de
comunicação, permitindo que os usuários naveguem pelo
ambiente ou ainda manipulem objetos reais remotamente. As
aplicações de tele-presença são geralmente realizadas através do
uso de um robô que realiza a captura de imagens que podem ser
visualizadas através de um monitor simples, ou ainda através de
dispositivos que permitem a imersão no ambiente remoto.
Geralmente o uso da tele-presença se aplica em regiões onde
existam riscos de vida ou ainda em casos especiais como as
viagens espaciais. Os ambientes colaborativos de realidade
aumentada envolvem sobrepor objetos gráficos dentro do mundo
real, como por exemplo, em ambientes cirúrgicos onde as imagens
gráficas indicam o local de incisão do bisturi no paciente. Os
ambientes colaborativos de realidade aumentada focam o
compartilhamento de um mesmo ambiente físico, permitindo que
vários usuários possam colaborar na execução de uma tarefa.
Cada tipo de aplicação varia entre o nível de artificialidade, que
RESUMO
Palavras Chaves
Simbiose Digital, Trabalho Cooperativo, Realidade Virtual e
Realidade Aumentada.
KeyWords
Digital Symbiosis, Cooperative Work, Virtual Reality and
Argumented Reality.
1. INTRODUÇÃO
Desde o surgimento dos meios de comunicação e dos
computadores, as possibilidades e formas de colaboração
aumentaram exponencialmente. Entre essas formas de
colaboração, esse trabalho discute sobre colaboração em
ambientes tridimensionais. Todas as formas de colaboração
baseadas em ambientes tridimensionais geralmente partem do
principio de manter a individualidade de cada um, principalmente
nas aplicações baseadas em ambientes virtuais colaborativos,
sistemas de tele-presença e ambientes de realidade aumentada
colaborativos. Manter essa individualidade, onde cada um decide
o que vê, com que se relacionada ou que faz, é um reflexo do que
acontece no mundo real e, muitas vezes, manter esse tipo de
relacionamento com os outros participantes e com o ambiente é
interessante. Porém uma área ainda não explorada em ambientes
tridimensionais com suporte a colaboração são aquelas onde a
experimentação sensorial é coletiva, ou seja, a experiência
sensorial de um participante é a mesma para todos os
participantes, sendo essa a principal característica de uma
aplicação de Simbiose Digital.
20 a 22 de Novembro de 2006
Natal, RN, Brasil
© Sociedade Brasileira de Computação
Comissão Especial de Sistemas
Colaborativos
Anais do III Simpósio Brasileiro de Sistemas Colaborativos, pp. 161-171.
161
uma câmera que permite compartilhar a visão com os operadores
remotos. Na arquitetura proposta, os usuários compartilham o
controle do ator remoto através de um navegador WEB. Toda
comunicação é concentrada em um servidor e existe a figura de
um diretor, responsável em intermediar os usuários com o tele
ator. O diretor se comunica com o tele-ator através de uma
interface sem fio (voz). As imagens capturadas pelo ator remoto
são transmitidas aos usuários e o diretor define o que será votado.
Através da interface da aplicação, os usuários possuem um tempo
determinado para votar, através de um clique em uma pessoa,
objeto ou opções do tipo “sim” ou “não”. Assim que o tempo de
votação é esgotado, o resultado é conhecido pelo diretor e esse
transmite ao tele ator e aos participantes.
pode ser desde o ambiente físico até o sintético; e o nível de
transporte que está relacionado na localização remota ou local de
cada usuário (Figura 1).
sintético
Realidade
Aumentada
Realidade
Virtual
Dimensão da
Artificialidade
físico
Realidade
Tele
Física
resença
local
Dimensão de
Transporte
2.3 Conclusões
Todas as formas de colaboração discutidas nesse tópico, exceto o
Tele Ator, partem geralmente do principio em manter a
individualidade de cada participante, ou seja, a experiência
sensorial que cada participante é submetido durante a aplicação
geralmente é individual. Manter essa individualidade, onde cada
um decide o que vê, com que se relacionada ou que faz, é um
reflexo do que acontece no mundo real e, muitas vezes, manter
esse tipo de relacionamento com os outros participantes e com o
ambiente é interessante e fundamental. Porém uma outra forma de
colaboração em ambientes tridimensionais não discutida na
literatura são as que estão baseadas na experimentação sensorial
coletiva. Essa mudança em como ocorre a experimentação
sensorial muda completamente o paradigma de colaboração entre
os participantes de uma aplicação. No próximo tópico é
apresentado e definido o termo Simbiose Digital, que possui como
principal característica a experimentação sensorial coletiva.
remoto
Figura 1 - Classificação Espacial - Benford et al (1998)
2.1 Realidade Mista
A Realidade Mista - RM (Mixed Reality) é definida por Milgram
et al [21] como uma fusão dos mundos reais e virtuais em uma
mesma aplicação. Milgram et al (1994) definiram uma taxonomia
para RM, classificando diferentes tecnologias dentro de um
espectro de acordo com o conceito de realidade-virtualidade
continuada. A Realidade Mista refere-se à classe das aplicações
que cobrem todos os dispositivos de visualização, combinando
elementos do mundo real e virtual necessariamente. A RA está
relacionada ao lado esquerdo do espectro, onde o contexto da
aplicação está associado principalmente ao mundo real, sendo que
esse mundo é “aumentado” com o uso de elementos gráficos
gerados em tempo real. O lado direito do espectro está
relacionado com o uso de elementos gráficos, onde o mundo
virtual é “aumentado” através da adição de elementos ou
sensações do mundo real. Em algumas aplicações, essa separação
é bastante clara, porém em alguns casos, essa classificação não é
trivial, principalmente em ambientes aonde o usuário pode se
locomover livremente, o que termina por levar o usuário aos
extremos do espectro durante a navegação, tornando a
classificação da aplicação como Realidade Mista mais apropriada.
3. SIMBIOSE DIGITAL
Segundo o Happer [10], o termo simbiose advém do grego e é
formado pela junção dos radicais sin (junto) e bios (vida), e
significa “Vida em Conjunto”. Em 1877 esse termo foi utilizado
pela biologia para definir a associação estreita entre dois ou mais
seres vivos de espécies distintas, que estabelecem essa relação
com benefícios mútuos (mutualismo) [10]. Dentro da psicologia,
o termo simbiose é designado para determinar o relacionamento
entre uma mãe e o seu bebê1 e ainda possui o sentido figurado de
associação íntima entre duas pessoas [11]. Duas ou mais pessoas
podem estabelecer uma relação de simbiose para desenvolver
alguma atividade ou ter algum benefício. Geralmente essa relação
está baseada em pessoas que possuam afinidades ou um alto grau
de entrosamento. Essa afinidade ou nível de entrosamento é, na
maior parte das vezes, resultado de um grande tempo de
convivência entre essas pessoas. O termo simbiose foi
inicialmente aplicado na biologia, mas pode ser aplicado em
outros contextos. O termo simbiose foi citado pela primeira vez
dentro do contexto computacional em 1960 por Licklider [18]. Ele
descreveu um relacionamento entre o operador (homem) e um
computador, que são dois sistemas distintos, porém
interdependentes. Homem e máquina cooperam entre si com o
objetivo de resolver alguma tarefa, onde cada componente possui
as suas próprias habilidades. O componente humano é mais
indicado para tarefas que requerem criatividade como a
elaboração de questões importantes e a tomada de decisões
Benford et al [1] definiram Realidade Mista baseada no conceito
do suporte à consciência e a comunicação entre os habitantes de
diferentes espaços, definindo o conceito de fronteiras
transparentes entre o mundo real e virtual. Podem existir várias
fronteiras em uma mesma aplicação, onde o suporte à consciência
e à comunicação entre os participantes deve ser o mais natural
possível. Aplicações colaborativas em ambientes de realidade
mista, como o proposto por Billinghurst e Kato [2], são também
encontradas na literatura. Nesse tipo de aplicação dois ou mais
usuários compartilham o mesmo ambiente físico e colaboram para
a execução de alguma tarefa, através do uso dos conceitos de
realidade aumentada.
2.2 Tele Ator
Goldberg et al [7] propuseram uma interface de votação dinâmica
voltada para ambientes com vários operadores e um único robô.
Esses ambientes podem ser classificados como tele-presença
coletiva. A aplicação coleta os votos dos participantes que elegem
a próxima ação do robô ou ser humano (Tele-Ator), que possui
1
162
http://www.mercksource.com
naturalmente já possui a capacidade de processar e armazenar um
grande conjunto de dados, e conforme as aplicações que ele
executa ou os dados que ele manipula, ele adquire a capacidade
de executar tarefas específicas.
críticas. O computador por sua vez é mais apropriado para a
execução de tarefas que manipulam uma grande quantidade de
dados (armazenamento e recuperação) e que necessitem de
respostas rápidas e precisas. Os operadores humanos e os sistemas
de computadores podem estabelecer um relacionamento de
simbiose que permite um aumento na capacidade em realizar
tarefas complexas.
As atuais aplicações colaborativas focam o compartilhamento de
um mesmo ambiente entre os usuários, onde cada usuário possui a
sua visão do ambiente, principalmente nas aplicações baseadas
em sistemas de Realidade Virtual e Realidade Aumentada. Uma
aplicação de Simbiose Digital visa compartilhar as faculdades
humanas e computacionais. O compartilhamento do ambiente é
uma conseqüência do compartilhamento das faculdades humanas
(visão e audição). Compartilhar as faculdades humanas permite
que as experiências vividas por um participante sejam
compartilhadas com os demais elementos simbiontes, permitindo
que todos os elementos participantes possam colaborar ou apenas
vivenciar essas experiências. Os participantes de uma aplicação
de Simbiose Digital (seres humanos e computadores), podem ser
ativos ou passivos quanto a uma dada faculdade. Os ativos são
aqueles que permitem que uma ou mais faculdades suas, sejam
compartilhadas com os demais participantes. Já os passivos, são
aqueles que tiram algum benefício das faculdades dos
participantes ativos. A simbiose entre homens e computadores,
através do compartilhamento das faculdades naturais e adquiridas,
acrescenta um novo paradigma no modo como um usuário pode
relacionar-se com um computador e com outros usuários ao
mesmo tempo. Isso possibilita que os usuários participantes de
uma aplicação de Simbiose Digital exerçam um ou mais papéis
conforme mostra a Tabela 1. A representação dos papéis pode ser
estática, mudar durante a aplicação ou ainda um papel ou mais
papéis podem ser suprimidos conforme as características de cada
aplicação.
3.1 Definição de Simbiose Digital
Nesse trabalho Simbiose Digital [28] é definida como uma forma
estreita de associação estabelecida entre os seres humanos e os
computadores, através dos meios eletrônicos interativos, com o
objetivo de compartilhar as faculdades humanas e
computacionais. Entendemos por meios eletrônicos interativos
como o acervo tecnológico orientado ao relacionamento sensitivo
multimodal entre o usuário e uma infraestrutura computacional
[32]. O termo faculdade possui vários significados, entre eles,
segundo o dicionário Houaiss [11], o termo faculdade é definido
como a possibilidade, natural ou adquirida, de fazer qualquer
coisa, tendo como sinônimos as palavras capacidade ou poder.
Nesse artigo, o termo faculdade é usado como a capacidade de
fazer qualquer coisa, e tanto o homem como o computador,
possuem faculdades ou capacidades que podem ser
compartilhadas. Na biologia, uma relação de simbiose é uma
forma estreita de associação entre os simbiontes, por existir um
relacionamento baseado no contato físico entre eles. Nesse artigo,
entendemos por forma estreita de associação os relacionamentos
baseados no contato físico e na comunicação entre os
participantes a qualquer momento. Esse estreitamento também é
caracterizado pela característica encontrada em uma aplicação de
Simbiose Digital que é a experimentação sensorial coletiva
discutido a seguir.
3.3 Ambiente de Experimentação Sensorial
Coletiva
3.2 Faculdades
As faculdades envolvidas em uma aplicação de Simbiose Digital
podem ser classificadas em dois grupos: humanas e
computacionais. O homem possui um conjunto de faculdades que
podem ser compartilhadas, direta ou indiretamente, com outros
participantes, entre elas as faculdades físicas, cognitivas,
sensoriais, emocionais, entre outras. As faculdades sensoriais são
consideradas faculdades fundamentais em uma aplicação de
Simbiose Digital, ou seja, toda aplicação de Simbiose Digital
deve compartilhar pelo menos uma faculdade sensorial,
preferencialmente a visão e audição. O computador também
possui faculdades que podem ser compartilhadas. Essas
faculdades tentam aproximar-se, em grande parte, de algumas
faculdades humanas, principalmente as faculdades relacionadas à
memória (recuperação e armazenamento de informações),
cognição (inteligência artificial e redes neurais), raciocínio
(execução de aplicações e tomada de decisões), faculdades
sensoriais (visão computacional e reconhecimento de voz), entre
outras. As faculdades computacionais possuem uma grande
vantagem em relação às faculdades humanas quanto à capacidade
e velocidade no processamento das informações, que são de
grandeza superiores às faculdades humanas.
O compartilhamento das faculdades sensoriais permite que a
experimentação sensorial de um seja a experimentação sensorial
de todos. Um ambiente de experimentação coletiva permite que
dois ou mais usuários sejam submetidos às mesmas experiências
sensoriais. Isso permite a construção coletiva do conhecimento e
que as competências de todos os participantes em conjunto com
os sistemas computacionais sejam agrupadas virtualmente na
execução de alguma tarefa.
A consciência pode ser definida como o atributo pelo qual o ser
humano pode conhecer e julgar sua própria realidade. O nível de
consciência do ambiente de cada usuário está diretamente
relacionado à quantidade de sentidos compartilhados e aos meios
utilizados para permitir a experiência da presença. Um ambiente
de experimentação coletiva é uma das principais características de
uma aplicação de Simbiose Digital. Isso permite que todos os
participantes tenham atenção somente em um único foco, e
juntamente com os sistemas computacionais, proporcionam um
ambiente com características únicas não contempladas totalmente
em outros tipos de aplicações. Dessa forma, a consciência de cada
um sobre o ambiente e sobre os eventos que ocorrem nele pode
ser construída coletivamente.
Uma faculdade por ser adquirida ou natural. O homem já nasce,
normalmente, com o sentido da visão, que é uma faculdade
natural, e ao longo da sua vida pode adquirir outras faculdades,
algumas são adquiridas pelo próprio convívio na sociedade como
falar e andar, outras são adquiridas intencionalmente como o
conhecimento em alguma área da ciência. O computador
163
Conferência, Tele-Presença, Multimídia, RM - Realidade Mista,
entre outras. O uso ou não de cada uma dessas tecnologias
depende das características de cada aplicação, pois podem existir
aplicações de Simbiose Digital puramente baseadas em elementos
reais que usam somente meios de comunicação baseados em
vídeo e áudio, ou aplicações puramente sintéticas, como as
aplicações de RV. Porém o principal requisito de uma aplicação
de Simbiose Digital é permitir que os simbiontes possam
compartilhar das suas faculdades em tempo real de forma natural
e transparente. O compartilhamento das faculdades humanas
permite que todos os usuários da aplicação possam compartilhar
as mesmas experiências sensoriais que um usuário que as esteja
vivenciando em um ambiente real ou sintético, e nesse
relacionamento todos podem colaborar, ter objetivos próprios ou
ainda serem meros espectadores.
Tabela 1 – Tipo de Papéis
Tipos de
Descrição
Papéis
Aprendiz
Esse papel está relacionado aos usuários que
participam do processo colaborativo com
objetivos de aprendizagem ou treinamento.
Colaborador
Esse papel é voltado para usuários que
participam diretamente de algum processo
colaborativo.
Coordenador
Esse papel deve ser representado por usuários
com papel de liderança durante o processo
colaborativo para a tomada de decisões e
atribuições de tarefas.
Facilitador
O papel do facilitador é manter o grupo de
aprendizes interagindo em um processo
colaborativo. Esse usuário deve agir como
líder, mas não deve conduzir o processo
colaborativo.
Observador
O usuário que exerce esse papel não interage
com nenhum dos usuários da aplicação, a não
ser com outros observadores. Ele pode ser
apenas um observador ou ainda ser um
avaliador para os demais usuários da
aplicação ou do próprio sistema.
Professor
O professor, diferente do facilitador, conduz
o processo colaborativo, além de manter a
interação dos usuários.
Suporte
Esse usuário ajuda o professor ou facilitador
no gerenciamento da aplicação, levantamento
de informações adicionais, entre outras
atividades. Ele pode ser ainda um usuário de
área diferente do professor ou facilitador, ou
ainda um psicólogo, terapeuta ocupacional,
sociólogo, etc.
O compartilhamento das faculdades é baseado no uso de
elementos multimídia como vídeo, áudio, texto, gráficos e
imagens geradas em tempo real. Com isso é necessário existir um
comprometimento entre o tempo de resposta e a qualidade da
apresentação, mesmo quando o número de participantes aumenta.
Como em um sistema de Realidade Virtual, as aplicações de
Simbiose Digital deverão ser capazes de reagir às ações dos
usuários, refletindo-as para todos os participantes da aplicação
com latência mínima [22]. Outros requisitos das aplicações de
Sistemas Distribuídos de Realidade Virtual, também podem ser
herdados, como o tratamento de múltiplos dispositivos de E/S
(capacetes, óculos, dispositivos de rastreamento de movimentos,
dispositivos de tato de força, entre outros); suporte a diferentes
tipos de unidades de dados, com requisitos diferentes de
confiabilidade na entrega; taxas rápidas de atualização;
atualização do ambiente a taxas que variam de 10 a 60 qps; entre
outros. Os requisitos herdados das aplicações multimídia
dependem também dos tipos e das características das mídias
utilizadas para o compartilhamento das faculdades humanas. As
mídias utilizadas podem ser baseadas ou não no tempo. As
baseadas no tempo como um vídeo ou um áudio, devem tratar dos
aspectos relacionados em como manter o relacionamento temporal
e o paralelismo durante a reprodução. Do mesmo jeito, os
requisitos para os demais tipos de aplicações como tele-presença,
realidade aumentada, virtualidade aumentada, realidade mista,
entre outros, podem também ser considerados nas aplicações de
Simbiose Digital.
3.4 Ambiente Compartilhado e Localização
dos Usuários
O
compartilhamento
do
ambiente
acontece
pelo
compartilhamento das faculdades humanas, mais especificamente
dos sentidos humanos. Uma aplicação de Simbiose Digital pode
ter mais que um ambiente compartilhado e eles podem ser
ambientes puramente sintéticos (realidade virtual), ambientes
puramente naturais (mundo real) ou ambientes mistos (realidade
mista, realidade aumentada ou virtualidade aumentada).
4. CONSTRUÇÃO DE UMA APLICAÇÃO
DE SIMBIOSE DIGITAL.
Vários tipos de aplicações encontradas na literatura possuem
algumas características relacionadas às aplicações de Simbiose
Digital, como os propostos por Goldberg et al [7], Billinghurst e
Kato [2] e Joseph [16]. Porém elas não contemplam totalmente
todas as características definidas para uma aplicação de Simbiose
Digital, ou não foram construídas com esse objetivo. Em linhas
gerais, uma aplicação de Simbiose Digital disponibiliza um
ambiente de experimentação sensorial coletiva com suporte à
colaboração entre todos usuários em tempo real. Várias aplicações
suportam colaboração, mas cada usuário possui a sua visão do
ambiente, ou seja, não é um ambiente de experimentação
sensorial coletiva. Algumas possuem características de
experimentação coletiva, mas não tem o foco em colaboração
como o Tele Ator [7]. Algumas ferramentas de colaboração
podem ser classificadas como uma aplicação de Simbiose Digital,
Em uma aplicação de Simbiose Digital existem pelo menos dois
usuários participantes. Uma aplicação de Simbiose Digital pode
ser também uma aplicação de tele-presença, porém a diferença é
que ao invés de existir um robô como elemento de atuação,
existirá uma pessoa. Associações de dois ou mais usuários em um
mesmo ambiente também podem acontecer, o que não caracteriza
uma aplicação de tele-presença.
3.5 Requisitos de uma aplicação
Os requisitos de uma aplicação de Simbiose Digital permeiam em
grande parte os requisitos das aplicações de RV, RA, Vídeo
164
como um editor colaborativo, porém o ambiente compartilhado
fica limitado ao da ferramenta (geralmente 2D). A versão de uma
aplicação de Simbiose Digital inicialmente desenvolvida [27], foi
ampliada e será discutida a seguir [28].
aplicação. O HMD possui suporte para visão e áudio estéreo, e
também é alimentado por uma bateria externa. Para interagir com
a aplicação, o usuário possui ainda um mouse de mão sem fio.
4.1 Descrição Geral da Aplicação
Baseado na disparidade binocular [19], as duas câmeras foram
dispostas no capacete, de modo a garantirem uma paralaxe
próxima a visão humana, em torno de 70 milímetros (Figura 2).
Após a captura, as imagens devem ser tratadas devido à natureza
das lentes em relação a dois aspectos: a correção da distorção
radial e o ajuste da luminosidade [29]. Tsai [30] discute
amplamente os aspectos relacionados à calibração da câmera e
também a distorção radial. Para obter todos os parâmetros
necessários para a calibração das câmeras, esse trabalho utilizou a
ferramenta e o método de calibração de Bouguet [3]. Após o
tratamento das imagens, elas podem ser utilizadas localmente e
serem também enviadas para os demais usuários participantes,
sendo necessário aplicar algum método de compressão. Jiang e
Edirinsinghe [14] propuseram um método híbrido utilizando a
codificação JPEG e extração dos contornos e edge de ambas
imagens. Com isso uma baixa taxa de bits pode ser produzida
(alta compressão), porém a um custo computacional proibitivo
para codificação em tempo real. Uma outra abordagem é a técnica
denominada “simulcast”, que é baseada na codificação
independente do olho direito e esquerdo, tendo como ponto
negativo a necessidade da duplicação dos serviços de codificação
e transmissão. Essa técnica é adotada nesse trabalho e também
adotada pelo padrão MPEG-2, porém não é reconhecida como
uma codificação eficiente [13]. Sentinens et al [24],
demonstraram que a codificação JPEG não afeta a percepção de
profundidade do par estéreo. Para alcançar os melhores
resultados, entre a maior taxa de compactação e o menor tempo de
codificação e adequação a largura de banda disponível para a
transmissão das imagens, vários níveis de codificação em relação
à qualidade de codificação que o JPEG foram testados através da
biblioteca libjpeg. Os níveis de qualidade testados foram de
100%, 80%, 60%, 40% e 20% de qualidade. Com as taxas de 20%
e 40%, a percepção da profundidade foi boa, porém a experiência
do usuário em relação à qualidade foi problemática, e a taxa em
quadros por segundo codificadas ficaram em torno de 25. Com o
parâmetro de qualidade de codificação entre 60% e 80%, a
experiência do usuário em relação a qualidade melhorou, com a
percepção de profundidade muito boa e as taxa em quadros por
segundo ficaram em torno de 20. Dois modos de visualização são
definidos pela aplicação: tela cheia e normal. O usuário local deve
operar, preferencialmente, no modo tela cheia, porém o modo
normal oferece opções extras que serão discutidas nos próximos
tópicos. Um menu está disponível em ambos os modos para a
seleção de algumas opções da aplicação que também serão
discutidas nos próximos tópicos. O menu apresentado é um menu
de “rolagem”, onde o usuário pode trocar (rolar) os itens do menu
através das duas setas apresentadas do lado esquerdo do menu
(setas acima e abaixo. Veja Figura 4 e Figura 5).
4.2.2 Aquisição de Imagens Estereoscópicas
A aplicação proposta visa implementar um ambiente de
experimentação coletiva voltado para tele-visitas. Nessa
aplicação, um usuário local compartilha o ambiente com os
demais usuários através da visão, audição e fala com mobilidade
através de uma rede sem fio. A visão do ambiente é única e todos
os usuários podem conversar entre si. Itens, objetos e salas desse
ambiente podem ser identificados através de um marcador
baseado na biblioteca ARTag [6]. A inclusão desses marcadores
permite adicionar funcionalidades importantes como o
rastreamento do usuário local, desenhos de rotas e o acesso às
informações específicas conforme as necessidades e o perfil de
cada usuário ou grupo. Toda experiência é armazenada e pode ser
recuperada pelo usuário em um outro momento. O estudo de caso
define uma ferramenta simples de anotações de vídeo digital
baseado no padrão MPEG-7. Uma anotação define um conjunto
de comentários inseridos em regiões que são destacadas em um
quadro de vídeo. As anotações serão baseadas em segmentos de
textos e permitem a adição de semântica ao conteúdo de um
vídeo.
Todo o sistema de comunicação está baseado na
biblioteca GLASS [8][9]. Nesse estudo de caso, existe somente
um usuário local, os demais usuários são remotos ao ambiente
compartilhado. Os sentidos compartilhados por esse usuário são a
visão, audição e fala.
4.2 Arquitetura de Usuário Local e Remoto
O usuário local difere dos demais usuários, principalmente pela
captura do vídeo e de não possuir um teclado para a entrada de
dados. Os dispositivos utilizados pelos os usuários remotos são
computadores convencionais e não serão discutidos, exceto pelo
uso de um monitor estéreo ativo para visualizar as imagens em
estéreo, porém esse equipamento não é obrigatório.
4.2.1 Hardware - Usuário Local
Todos os componentes de hardware usados são componentes de
mercado o que contribui para o barateamento do sistema e a
produção em escala. O usuário local possui duas câmeras
FireWire IEEE 1394 para compartilhar a sua visão em estéreo
com os demais usuários. Essas câmeras permitem captura imagens
digitais na resolução de 640x480 pontos com taxa de aquisição de
30 quadros por segundos. As duas câmeras são conectadas em um
computador portável (Pentium IV com 512 MB de memória
RAM). Como a maior parte dos computadores portáteis possuem
somente uma porta FireWire IEEE 1394 sem a alimentação, duas
soluções foram necessárias para o funcionamento das duas
câmeras, o uso de uma bateria externa de 12 volts para a
alimentação e o uso de um HUB FireWire para aumentar o
número de portas. Essas duas câmeras estão dispostas em um
capacete (Figura 2), juntamente com um microfone para a captura
da voz e do áudio ambiente. Finalmente, todas as informações são
transmitida por uma rede sem fio IEEE 802.11g, e isso é feito
através de um cartão PCMCIA DLink 802.11 a/b/g, conectado ao
computador portável. Todos esses componentes são alocados em
uma mochila que deve ser carregada pelo usuário local (Figura 3).
O usuário possui um HMD I-Glasses PC 3D para visualizar as
imagens capturadas pelas câmeras e as informações geradas pela
4.2.3 Aquisição e Reprodução de Áudio
Uma solução para tornar a aplicação independente da plataforma
foi a adoção da biblioteca OpenAL – Open Audio Library . Na
aplicação proposta, o áudio capturado possui taxa de amostragem
de 8000Hz, canal mono e quantização de 8 bits. Como a taxa de
bits gerada fica em torno de 7Kbytes por segundo, nenhum tipo de
codificação (compactação) foi aplicado para diminuir o tamanho
165
permitido, cada item ou objeto, devem possuir um ou mais
marcadores. A principal vantagem dessa abordagem é em relação
ao custo financeiro, já que não necessita de nenhum equipamento
especial, só um dispositivo de captura de imagens já utilizado
para a captura das imagens do ambiente local. Nesse tipo de
abordagem, o rastreamento do usuário local é em relação ao
último marcador identificado. Como isso pode causar possíveis
erros de localização, é informado também o tempo, em segundos,
desde o último reconhecimento. Caso o ponto esteja verde, isso
significa que a localização do usuário é precisa. O ponto vermelho
indica o último marcador reconhecido. Todos os usuários podem
realizar operações de zoom-in, zomm-out, translação e rotação no
mapa. Todas as coordenadas referentes ao mapa, marcadores e
informações estão armazenadas em um arquivo de texto e dessa
forma, a alteração do mesmo torna-se simples. Uma outra
característica implementada é a busca pelo menor caminho entre a
sala atual e uma sala ou objeto desejado. Por se tratar de um
problema clássico na literatura, o algoritmo de Dijkstra [23] foi
escolhido para implementar essa funcionalidade. Um grafo com
uma certa quantidade de vértices e o custo entre eles são
definidos, conforme o posicionamento dos marcadores pelas salas.
Dado o vértice inicial e final, o algoritmo identifica o caminho
com o menor custo dentre os vértices existentes.
de banda ocupada pelo áudio durante a transmissão. Apesar de ser
uma qualidade baixa para a reprodução do áudio nos clientes
remotos, não existe nenhuma perda do significado da voz durante
a reprodução, somente alguns eventos de áudio oriundo do
ambiente local ficam prejudicados em relação à qualidade durante
a reprodução. Para o controle a interação por voz, o usuário local
(guia) pode ativar a opção de todos os usuários remotos falarem
ao mesmo tempo ou somente um usuário remoto falar por vez
para evitar confusão. Se a opção de um usuário remoto falar por
vez estiver ativa, um usuário remoto para falar deve primeiro ter o
controle do microfone. Se o microfone estiver disponível, o
usuário remoto pode comunicar-se com os demais, caso contrário,
ele entra na fila de espera. Ao final, o usuário remoto deve liberar
o microfone. Para facilitar essa operação, a aplicação indica se o
microfone está disponível ou não e quantos usuários estão na fila
de espera. A aplicação também mostra a imagem do usuário que
está falando (Figura 4).
4.2.4 Reconhecimento de Padrões
O reconhecimento de padrões ou marcadores é muito utilizado em
aplicações de realidade aumentada. A biblioteca ARTag [6] é
inspirada na biblioteca ARToolKit [2], que foi desenvolvida para
dar suporte ao desenvolvimento de aplicações de realidade
aumentada. A ARTag possui algumas funções que melhoraram o
reconhecimento dos marcadores aumentando a taxa de acerto em
relação a distância e o ângulo da câmera em relação ao marcador,
em comparação a biblioteca ARToolKit [2], porém a biblioteca
ARTag não possui o código fonte aberto e não pode ser usada
para fins comerciais sem a autorização dos autores. Na
implementação proposta, a aplicação ao reconhecer um marcador,
apresenta no canto superior esquerdo a letra “I” de Informação.
Isso indica para o usuário que informações extras estão
disponíveis como imagens, texto, animação e endereços na WEB.
A aplicação WEB recebe o número do marcador e o ID do
usuário, e pode realizar qualquer operação com essas
informações. Como a aplicação WEB é independente da aplicação
gráfica, ela pode ser customizada de várias formas. A letra “I”
possui dois estados indicados pela cor. Verde significa que o
marcador foi reconhecido a menos de 15 segundos. Vermelho
indica que o marcador foi reconhecido a mais de 15 segundos.
Após 40 segundos no estado vermelho, ela desaparece. Dessa
forma, cada usuário poderá selecionar e visualizar em detalhes, as
informações disponíveis dentro do intervalo estipulado. A
visualização dessas informações é feita de forma independente
por cada usuário, ou seja, cada usuário poderá interagir e
visualizar essas informações, sem afetar os demais usuários da
aplicação. Essas informações são replicadas para todos os
usuários e são organizadas em um sistema de arquivos. Um outro
aspecto importante é que as opções do usuário administrador
podem ser diferentes dos demais usuários, como por exemplo,
qual roteiro ele deve seguir pelo museu, dicas sobre as
informações de cada obra, entre outras.
4.2.6 Anotação de Imagens
Descrever um conteúdo multimídia permite a construção de
aplicações voltadas para busca, consulta, filtragem e navegação
desse mesmo conteúdo. As informações utilizadas para fazer a
indexação podem ser obtidas, por exemplo, a partir das
características visuais (movimentação, cor, intensidade, entre
outras) ou do áudio associado ao vídeo. Uma outra forma de obter
essas informações para fazer a indexação, é a partir da semântica
de seu conteúdo representada sob a forma de anotações textuais
[17]. A forma mais eficiente para obter a semântica de um
conteúdo visual é através das anotações textuais, pois a extração
automática da semântica é um problema que continua em aberto.
As anotações textuais são transformadas e estruturadas em
metadados, e associadas ao conteúdo visual. Vários modelos de
metadados são encontrados na literatura, como RDF [4] e o
MPEG-7 [20], sendo o padrão MPEG-7 o utilizado nesse trabalho.
Um simples sistema de anotação colaborativa de imagens foi
implementado baseado no uso do padrão MPEG-7. O sistema
implementado visa somente gerar os metadados e o
armazenamento das experiências colaborativas (vídeo, imagens e
áudio). A biblioteca MPEG-7 Library2, foi utilizada para facilitar
a manipulação dos descritores pela aplicação. Ela é gratuita e é
escrita em C++. Na aplicação proposta, as anotações são feitas
somente sobre uma imagem estática. O usuário local, ao acionar a
opção de anotação, irá congelar o vídeo de todos os participantes.
A anotação é feita sobre uma área retangular definida pelo usuário
e não é permitido realizar anotações simultâneas. Como o usuário
local não possui meios eficientes (teclado) para realizar as
anotações, essa tarefa é destinada somente aos usuários remotos.
As anotações são associadas ao vídeo tomando como referência o
número do quadro e o tempo. Ao finalizar uma anotação, um
arquivo MPEG-7 no formato textual é gerado pela aplicação.
Existem alguns tipos de informações que podem ser geradas
4.2.5 Rastreamento do Usuário Local
Devido às características do estudo de caso proposto, as formas de
rastreamento tradicionais [25] não são adotadas nesse projeto,
pois além dos fatores de custo financeiro e computacional, o
rastreamento do usuário não precisa ser exato. Para isso, os
marcadores também são utilizados para rastrear o usuário local.
Isso permite que todos os participantes possam saber, por
exemplo, em que sala o usuário local está. Para que isso seja
2
166
http://iiss039.joanneum.at/cms/index.php?id=84
das atuais aplicações de CSCW, porém todas elas partilham de
um mesmo meio de comunicação e interação baseados em
elementos multimídia. As aplicações de CSCW podem aplicar um
conceito conhecido por visão convergente ou WYSIWIS (What
You See Is What I See – O que você vê é o que eu vejo). Isso está
próximo ao conceito de experimentação sensorial coletiva quanto
ao sentido da visão discutido nesse trabalho, mas são conceitos
distintos. A visão convergente é uma abstração para a construção
de interfaces gráficas que permitam simular as mesmas
características de um encontro face a face em frente a uma lousa
[26]. O conceito de experimentação sensorial coletiva é mais
amplo. Fazendo uma analogia com o conceito WYSIWIS, a
experimentação sensorial coletiva pode ser definida como: A sua
experiência sensorial é a minha experiência sensorial. As atuais
taxonomias das aplicações colaborativas não mencionam uma
classificação baseada no compartilhamento das faculdades
humanas ou ainda em ambientes de experimentação coletiva
como em [12][15][31]. Um novo elemento pode ser adicionado
nas taxonomias das aplicações colaborativas quanto à experiência
da presença, que pode ser individual ou coletiva. As aplicações de
Simbiose Digital podem englobar todos aspectos relacionados às
cinco categorias descritas por Benford et al [1] e variar, tanto nos
aspectos relacionados à artificialidade como no de transporte.
Uma aplicação de Simbiose Digital pode possuir também as
características das aplicações de Realidade Mista, porém podem
existir aplicações de Simbiose Digital baseadas somente em uma
das extremidades do espectro definido por Milgram et al [2],
usando somente elementos reais ou virtuais dentro do conceito de
realidade e virtualidade continuada, ou seja, não é necessário
existir uma fusão entre o sintético e o real, mas essa fusão é bem
vinda e agrega novos benefícios e possibilidades nas aplicações
de Simbiose Digital. Um outro fato é que em uma aplicação de
Simbiose Digital pode existir uma fusão de ambientes em uma
mesma aplicação.
automaticamente pela aplicação, como data, hora, local,
participantes, entre outras. Porém, informações mais específicas
podem ser geradas automaticamente pela aplicação quando um
marcador for reconhecido. Isso permite adicionar conteúdos
semânticos significantes de forma automática, conforme o
relacionamento de cada marcador com o mundo real. O trecho de
áudio compreendido entre o início e fim da anotação é associado a
essa anotação automaticamente. (Figura 5).
5. CONCLUSÕES
5.1 Considerações sobre Simbiose Digital
Nos vários tipos de aplicações computacionais que possibilitam a
colaboração baseadas em ambientes 3D, cada usuário geralmente
possui o seu ponto de vista e o poder de decidir o que fazer, ou
seja, a experiência da presença deste usuário nesses ambientes
espelha-se no mundo real, sendo isso muitas vezes desejado.
Nessas aplicações o compartilhamento do ambientes é o foco
principal, mas com estreitamento do relacionamento entre
homens, computadores e os meios de comunicação, um novo
paradigma de colaboração pode ser explorado baseado no
compartilhamento das faculdades humanas e computacionais, que
nesse artigo é denominado de Simbiose Digital. Possibilitar a
experiência de presença através do compartilhamento das
faculdades humanas e computacionais permite explorar um novo
universo de aplicações que podem expandir as fronteiras da
colaboração entre homens e computadores. Aplicações com foco
em experimentação coletiva com suporte a colaboração, permitem
maximizar as competências de cada usuário e explorar novas
formas de cognição. As atuais aplicações não focam nos aspectos
relacionados ao compartilhamento das faculdades humanas e
computacionais em uma mesma aplicação ou ainda aspectos
relacionados à experimentação coletiva. Essa mudança de
paradigma do compartilhamento de um ambiente para o
compartilhamento das faculdades humanas e computacionais é a
principal diferença das atuais aplicações para as aplicações de
Simbiose Digital.
A aplicação desenvolvida por Goldberg et al [7] pode ser
considerada um caso particular de uma aplicação de Simbiose
Digital por compartilhar a visão de um usuário com os demais
participantes. A existência do diretor é um elemento de vital
importância para a aplicação, pois ele sugere os próximos passos
para os usuários remotos e para o tele ator, ou seja, o tele ator não
tem um contato direto com os usuários remotos, fazendo apenas o
papel de agente que atua localmente na aplicação, pois ele é
dirigido pelo diretor. Um outro aspecto é que não existe nenhum
tipo de comunicação entre os participantes remotos. Com isso, a
interação entre os participantes e o agente local é direcionada, o
que restringe a liberdade de criação e colaboração dos usuários.
Goldberg et al [7] caracterizam a sua aplicação dentro da
taxonomia proposta por Chong et al [5] para sistemas tele
operados que se dividem em 4 grupos, baseados na quantidade de
operadores e robôs utilizados na aplicação: um para um, vários
para um, vários para vários e um para vários.
Uma aplicação de Simbiose Digital pode ser classificada também
como uma aplicação colaborativa. Uma aplicação de Simbiose
Digital pode possuir as mesmas características das aplicações
citadas por Benford et al [1] e em todas essas aplicações (Espaços
de Mídia, Vídeo Conferência Espacial, Ambiente Virtual
Colaborativo, Tele-Presença e Ambiente de Realidade Aumentada
Colaborativo), cada usuário age de forma independente, imitando
o mundo real. No geral, uma aplicação de Simbiose Digital é mais
indicada quando o objetivo for concentrar todas as atenções e
energias dos participantes em um mesmo foco, através do
compartilhamento das faculdades humanas e computacionais.
Uma aplicação de Simbiose Digital pode também agregar as
características de uma aplicação de tele-presença, porém usa o ser
humano ao invés de um robô como agente de interação com o
meio ambiente compartilhado, permitindo uma interação mais
amigável entre os participantes remotos e locais.
O uso da visão, tato, áudio e elementos gráficos não são
exclusivos das aplicações de Simbiose Digital, porém aqui todas
essas características podem ser reunidas em uma mesma aplicação
e serem usadas de formas diferentes, pois têm o objetivo de
compartilhar as faculdades humanas e computacionais.
Compartilhar um ambiente através das faculdades sensoriais de
uma pessoa permite que um ou mais usuários remotos sejam
expostos às mesmas experiências sensoriais, e isso não é o foco
Dentre todas as aplicações consideradas, nenhuma trata dos
aspectos relacionados ao compartilhamento das faculdades
humanas e computacionais em uma mesma aplicação, ou ainda,
aspectos relacionados à experimentação sensorial coletiva. Essa
mudança de foco do compartilhamento de um ambiente para o
compartilhamento das faculdades humanas e computacionais é a
principal diferença das atuais aplicações para as aplicações de
Simbiose Digital. A experiência de presença através do
compartilhamento das faculdades humanas e computacionais
167
[6] Fiala, M. ARTag Revision 1, A Fiducial Marker System
Using Digital Techniques. Tecnical Report. National Researh
Council Canada. 2004.
permite explorar um novo universo de aplicações que pode
expandir as fronteiras do uso da informática em diversos tipos de
aplicações.
[7] Goldberg, K., Song, D., Khor, Y., Pescovitz, D.,
evandowski, A., Himmelstein, J., Shih, J., Ho, A., Paulos, E.
e Donath, J. “Collaborative Online Teleoperation with
Spatial Dynamic Voting and a Human: Tele-Actor”. IEEE
International Conference on Robotics and Automation, May
2002. p. 1179-1184.
5.2 Considerações sobre a aplicação proposta
A aplicação foi testada em ambiente de laboratório com cinco
usuários, mas está pronta para ser executada em um ambiente real
e pode ser usada, por exemplo, em ambientes de tele-visita a
museus. A aplicação suporta o aumento do número de usuários,
porém o sistema de comunicação por voz pode se tornar crítico
conforme a quantidade de usuários participantes aumenta. Alguns
problemas foram identificados. O movimento da cabeça do
usuário local pode ser critico caso ele mova a cabeça ou ande de
forma rápida e constante. O peso total do equipamento do usuário
local, em torno de 5 kg, pode causar desconforto para experiência
de longa duração, mas isso deve ser relevado por se tratar de um
protótipo. O tempo de vida das baterias também é uma
preocupação. Atualmente o sistema pode trabalhar por um
período de até 2 horas, mas isso pode ser melhorado através do
uso de baterias melhores (maior tempo de vida). A qualidade do
áudio capturado também pode ser crítica conforme o tipo de
experiência desejada. Apesar de ser uma qualidade baixa para a
reprodução do áudio, não existe perda do significado da voz
durante a reprodução e somente alguns eventos de áudio oriundo
do ambiente local ficam prejudicados em relação à qualidade
durante a reprodução. A poluição visual causada pelos
marcadores pode ser inadequada em alguns tipos de ambientes,
mas os marcadores oferecem uma solução simples para o
rastreamento do usuário e obtenção de informações específicas
sobre objetos de um ambiente. O sistema de rastreamento fornece
somente a informação do posicionamento do usuário local, mas
com o uso de marcadores no teto, a orientação do usuário também
pode ser obtida. A ferramenta de anotação textual é simples, mas
define um modelo de anotação colaborativa em tempo real. A área
de cobertura do Ponto de Acesso à rede sem fio limita a
mobilidade do usuário local. Os protocolos WLAN (Wireless
Local Area NetWork) utilizados podem transmitir o vídeo dentro
das necessidades da aplicação entre 22 e 25 quadros por segundo.
A largura de banda e a taxa de quadros por segundo podem ser
melhoradas com a substituição da tecnologia WLAN.
[8] Guimarães, M. et al. Ambientes Virtuais: Projeto e
Implementação. In: Alexandre Cardoso; Cesar Augusto
Camilo Teixeira e Edgard Lamounier Júnior. (Org.). Porto
Alegre. p.114-133, 2003.Suppressed to the blind review.
[9] Guimarães, M Powering Multiprojection Immersive
Environments with Cluster of Commodity Computers .
SIACG, 2002..
[10] Happer, D. Online Etymology
http://www.etymonline.com/
Dictionary.
2001.
[11] Houaiss, A. V. e Villas, M. S. Dicionário Houaiss da Língua
Portuguesa. Objetiva, 2001. 2922 pags.
[12] Jarczyk, A., Löffler, P., Völksen, G.: "Computer Supported
Cooperative Work (CSCW) State of the Art". Version 1.0,
Internal Report, Siemens AG, Munich, 1992.
[13] Javidi, B. and OKANO, F., Three-Dimensional Television,
Video, and Display Technologies, Springer, 2002
[14] Jiangm J. and EDIRISINGHE, E.A., A hybrid scheme for
low bit-rate coding of stereo images, IEEE Transactions on
Image Processing, Volume 11,
Issue 2, pp. 123-134,
February 2002
[15] Johansen, R. Groupware: Computer support for business
teams. New York: The Free Press, 1988.
[16] Joseph, J. K. “Making Scents: aromatic output for HCI”.
IEEE Interactions: Volume 11, Issue 1, January + February
2004, p.48-61
[17] Kokkoras, F., Jiang, H., Vlahavas, I., Elmagarmid, A. K.,
Houstis, E. N. and AREF, W. G. Smart VídeoText: A Video
data model base don conceptual graphs. Multimídia Systems,
July, 2002. p.328 - 338.
6. REFERÊNCIAS
[1] Benford, S. et al. Understanding and Constructing Shared
Spaces with Mixed Reality Boundaries. ACM Transactions
on Computer-Human Interaction (TOCHI) archive Volume
5, Issue 3. p.185-223, 1988.
[18] Licklider, J. C. R. (1960) “Man-Computer Symbiosis”, RE
Transactions on Human Factors in Electronics: volume HFE1, March 1960. p.4–11.
[19] Lipton, L. Stereo3D Handbook. Stereographics Corporation.
1997. Disponível online em: http://www.stereographics.com
[2] Billinghurst, M. e Kato, H. “Collaborative Mixed Reality”.
In Proceedings of the First International Symposium on
Mixed Reality (ISMR’99). Merging Real and Virtual
Worlds. Berlin: Spring Verlag. 1999, p. 261-284.
[20] Manjunath, B. S., Salembier, P; Sikora, T. Introduction to
MPEG-7. Editora: John Wiley & Sons, LTD. 1ºedição.
2002’.
[3] Bouguet, J.-Y. Camera Calibration Toolbox for Matlab,
2004. http://www.vision.caltech.edu/bouguetj/calib doc/
(Acesso em Julho 2004 ).
[21] Milgram, P. et al F. Augmented Reality: A Class of Displays
on the Reality-Virtuality Continuum. In: SPIE Proceedings:
Telemanipulator and Telepresence Technologies . H. Das,
SPIE. 2351, p.282-292, 1994.
[4] Cherry, S.M. Weaving a Web of ideas IEEE Volume 39,
Issue 9, Sep 2002 Page(s):65 – 69.
[22] Pullen, J. M. and Laviano, V. P. A. A Selectively Reliable
Transport Protocol for DIS. 13rd Workshop on Standards for
Interoperability of DIS. Florida: 1995.
[5] Chong, N. et al. Remote coordinated controls in multiple
tele-robot cooperation. In: IEEE International Conference on
Robotics and Automation. p.3138-3343, 2000.
168
Simposio de Realidade Virtual.
Ribeirão Preto. VI
SVR2003. Ribeirão Preto: SBC p.398-400, 2006.
[23] Sedgewick, R. Published by Addison Wesley Professional.
Algorithms in C++ Part 5: Graph Algorithms, 3rd Edition,
2001. pág 528.
[29] Trucco, E. and VERRI, A. Intoductory Techniques for 3-D
Computer Vision, Prentice-Hall, 1998.
[24] Seuntiens, P., Lydia Meesters, and Wijnand A. IJsselsteijn,
Perceptual evaluation of JPEG-coded stereoscopic images,
Stereoscopic Displays and Virtual Reality Systems X,
Proceedings of SPIE, volume 5006, pp. 215-226, May, 2003
[30] Tsai, R.Y. (1987). A Versatile Camera Calibration
Technique for High-Accuracy 3D Machine Vision
Metrology Using Off-the-Shelf TV Cameras and Lenses.
IEEE Journal of Robotics and Automation, Vol. RA-3, No.
4, pp. 323-344
[25] Silva, R. J. M., “Integração de um Dispositivo Óptico de
Rastreamento a uma Ferramenta de Realidade Virtual”, pp.
18-24, novembro/2005.
[31] Völksen, G.: "Approach Strategies to Groupware".
Proceedings Groupware `93 Europe Conferences in
Stockholm, London, Frankfurt, The Conference Group,
Scottsdale, AZ, 1993.
[26] Stefik, M, Bobrow, D. G., Lanning, S., Tatar, D. and Foster,
G. “WYSIWIS Revised: Early Experiences With Multi-User
Interfaces”. In Conference on Computer-Supported
Cooperative Work. Texas, 1986. p276-290.
[32] Zuffo, M. K. A Convergência da Internet e da
Realidade Virtual em Novos Paradigmas de TV Interativa.
Tese (Livre Docência). 2001. Escola Politécnica,
Universidade de São Paulo. São Paulo 2001.
[27] Todesco, G. e Zuffo, M. K. Simbiose Virtual, In: Simposio
de Realidade Virtual. Ribeirão Preto. VI SVR2003. Ribeirão
Preto: SBC p.398-400, 2003.
[28] Todesco, G.; Simbiose Digital. Tese (Doutorado). Escola
Politécnica, Universidade de São Paulo. São Paulo 2006.
Figura 2 – Câmeras montadas no capacete + HMD
169
Figura 3 –Todos os componentes fora da mochila
Microfone não
disponível
Fila de Espera
Quem está
falando?
Informação disponível
Usuários
Marcador
Menu
Figura 4 – Tela da Aplicação – Usuários participantes (Lado Esquerdo) e Disponibilidade do Microfone (canto superior direito)
170
Anotação
Textual
Área de anotação definida
pelo usuário
Figura 5 – Tela da Aplicação - Sistema de Anotação Textual (Modo Normal)
171
Download

Anais SBSC 2006