Enhancing Collaboration in a Scenario of Ubiquitous Computing

9
Enhancing Collaboration in a Scenario of Ubiquitous Computing Incrementando a Colaboração em um Cenário Ubíquo Cassia Nino, Jorge Barbosa, Sérgio Crespo C. S. Pinto Universidade do Vale do Rio dos Sinos São Leopoldo, Brasil [email protected], {jbarbosa, crespo}@unisinos.br Débora Barbosa Centro Universitário La Salle Canoas, Brasil [email protected] Abstract—Collaboration between people has the communica- tion as element key. However this interaction needs a process of searching for collaborators, as well as the determination of what communication channel can be used by the participants, and these are the essential steps of a collaboration. These two steps can be increased when they are embedded in a ubiquitous computing scenario. In this kind of scenario, new possibilities of collaboration are open and the context awareness can increase the selection of peers and communication channels. But solutions that take advantage of these possibilities have not yet been fully exploited. This paper presents MaPS, a framework for collaborative applications that uses context awareness to optimize the initial steps of a collaboration. Keywords—collaboration; peer selection; context awareness Resumo—A colaboração entre pessoas tem como elemento chave a comunicação. Mas para que haja esta interação, um processo de busca por colaboradores é necessário, assim como a determinação do canal de comunicação a ser utilizado pelos par- ticipantes, e estes são os passos primordiais de uma colaboração. Estas duas etapas podem ser incrementadas quando estão imbuí- das em um cenário de computação ubíqua. Neste tipo de cenário, novas possibilidades de colaboração são abertas e características como a ciência do contexto podem incrementar a seleção de pares e canais de comunicação. Contudo, soluções que tirem proveito destas possibilidades ainda não foram completamente exploradas. Este artigo apresenta o MaPS, um framework direcionado para aplicações colaborativas que faz uso da ciência do contexto para otimizar os passos iniciais de uma colaboração. Palavras-chave— colaboração; seleção de pares; ciência do contexto I. I NTRODUÇÃO Aplicações de groupware podem ser definidas como "sis- temas baseados em computador que suportam um grupo de pessoas envolvidas em uma tarefa, ou objetivo, comum e que provêem uma interface compartilhada para seus participantes" [1]. Neste tipo de aplicação, a comunicação é um elemento chave, pois a interação entre as pessoas é permanente. Soma- se isto ao fato de a computação prover cada vez mais tec- nologias para interação entre pessoas e tem-se que hoje, o computador desempenha um papel importante na comunicação entre indivíduos, não sendo exclusivo a esta categoria de sistemas. Contudo, como observado por Stahl [2], o potencial do computador como ferramenta de suporte tende a ser mais proveitoso para grupos do que para indivíduos, uma vez que a comunicação entre os participantes sempre sofreu diversas restrições, mas que agora podem ser flexibilizadas com este tipo de suporte. O suporte computacional para a colaboração é descrito pelo modelo 3C proposto por Fuks et al. [3], onde são apresentados os três aspectos para o suporte: comunicação, coordenação e cooperação. Seguindo este modelo, em uma colaboração, os participantes devem dialogar (comunicação), organizar-se (coordenação) e trabalhar em conjunto em um espaço compar- tilhado (cooperação) [4]. E para iniciar este processo, é neces- sário estar ciente da presença de outras pessoas, e encontrá-las, este é o primeiro passo para a colaboração. Este processo de busca e seleção de usuários é crucial na colaboração [5]. Outro ponto crítico nestes primeiros passos de uma colaboração é o tipo de mídia de comunicação utilizada [3]. Neste cenário, a computação ubíqua, em sua visão de mobilidade livre de usuário e invisibilidade da computação [6], surge como um elemento potencializador. Por sua característica de heteroge- neidade de dispositivos e redes sem fio, o ambiente ubíquo apresenta novas oportunidades para o trabalho colaborativo [7], visto que suas tecnologias associadas, como dispositivos móveis e adaptação ao contexto [8], permitem incrementar a qualidade do processo de busca por pessoas. Desta forma, a noção de colaboração ubíqua vêm ganhando destaque nos últimos anos. A maior motivação desse tipo de colaboração é permitir uma continuidade do trabalho colaborativo através de um acesso pervasivo à informações compartilhadas, facilidades de comunicação e serviços de groupware. Uma importante característica neste ponto está em ter ciência de outros colaboradores [9], [10], entretanto o processo de seleção destas pessoas para uma possível cola- boração é uma questão que não está completamente resolvida, como observado por [5]. Mesmo projetos posteriores ao estudo destes autores [11], [12], [13], ainda não atendem totalmente a este problema de pesquisa, especificamente, quando imerso em um ambiente ubíquo. Este trabalho apresenta o framework MaPS (Matching Pe- ople to Share), um framework de suporte no desenvolvimento de aplicações colaborativas em ambientes ubíquos. MaPS tem como escopo os primeiros passos de uma colaboração: a busca por pessoas e por canais de comunicação que possam ser utilizados na interação entre os participantes. A arquitetura proposta visa considerar critérios de pesquisa e informações de contexto para as buscas por pessoas em um ambiente ubí- quo. O framework auxilia no desenvolvimento de aplicações 2009 Simpósio Brasileiro de Sistemas Colaborativos 978-0-7695-3918-8/09 $29.00 © 2009 IEEE DOI 10.1109/SBSC.2009.24 44

Transcript of Enhancing Collaboration in a Scenario of Ubiquitous Computing

Enhancing Collaboration in a Scenario of Ubiquitous Computing

Incrementando a Colaboração em um Cenário Ubíquo

Cassia Nino, Jorge Barbosa, Sérgio Crespo C. S. PintoUniversidade do Vale do Rio dos Sinos

São Leopoldo, [email protected], {jbarbosa, crespo}@unisinos.br

Débora BarbosaCentro Universitário La Salle

Canoas, [email protected]

Abstract—Collaboration between people has the communica-tion as element key. However this interaction needs a processof searching for collaborators, as well as the determination ofwhat communication channel can be used by the participants,and these are the essential steps of a collaboration. These twosteps can be increased when they are embedded in a ubiquitouscomputing scenario. In this kind of scenario, new possibilities ofcollaboration are open and the context awareness can increasethe selection of peers and communication channels. But solutionsthat take advantage of these possibilities have not yet beenfully exploited. This paper presents MaPS, a framework forcollaborative applications that uses context awareness to optimizethe initial steps of a collaboration.

Keywords—collaboration; peer selection; context awarenessResumo—A colaboração entre pessoas tem como elemento

chave a comunicação. Mas para que haja esta interação, umprocesso de busca por colaboradores é necessário, assim como adeterminação do canal de comunicação a ser utilizado pelos par-ticipantes, e estes são os passos primordiais de uma colaboração.Estas duas etapas podem ser incrementadas quando estão imbuí-das em um cenário de computação ubíqua. Neste tipo de cenário,novas possibilidades de colaboração são abertas e característicascomo a ciência do contexto podem incrementar a seleção de parese canais de comunicação. Contudo, soluções que tirem proveitodestas possibilidades ainda não foram completamente exploradas.Este artigo apresenta o MaPS, um framework direcionado paraaplicações colaborativas que faz uso da ciência do contexto paraotimizar os passos iniciais de uma colaboração.

Palavras-chave— colaboração; seleção de pares; ciência docontexto

I. INTRODUÇÃO

Aplicações de groupware podem ser definidas como "sis-temas baseados em computador que suportam um grupo depessoas envolvidas em uma tarefa, ou objetivo, comum e queprovêem uma interface compartilhada para seus participantes"[1]. Neste tipo de aplicação, a comunicação é um elementochave, pois a interação entre as pessoas é permanente. Soma-se isto ao fato de a computação prover cada vez mais tec-nologias para interação entre pessoas e tem-se que hoje, ocomputador desempenha um papel importante na comunicaçãoentre indivíduos, não sendo exclusivo a esta categoria desistemas. Contudo, como observado por Stahl [2], o potencialdo computador como ferramenta de suporte tende a ser maisproveitoso para grupos do que para indivíduos, uma vez quea comunicação entre os participantes sempre sofreu diversasrestrições, mas que agora podem ser flexibilizadas com este

tipo de suporte.O suporte computacional para a colaboração é descrito pelo

modelo 3C proposto por Fuks et al. [3], onde são apresentadosos três aspectos para o suporte: comunicação, coordenaçãoe cooperação. Seguindo este modelo, em uma colaboração,os participantes devem dialogar (comunicação), organizar-se(coordenação) e trabalhar em conjunto em um espaço compar-tilhado (cooperação) [4]. E para iniciar este processo, é neces-sário estar ciente da presença de outras pessoas, e encontrá-las,este é o primeiro passo para a colaboração. Este processo debusca e seleção de usuários é crucial na colaboração [5]. Outroponto crítico nestes primeiros passos de uma colaboração é otipo de mídia de comunicação utilizada [3]. Neste cenário,a computação ubíqua, em sua visão de mobilidade livre deusuário e invisibilidade da computação [6], surge como umelemento potencializador. Por sua característica de heteroge-neidade de dispositivos e redes sem fio, o ambiente ubíquoapresenta novas oportunidades para o trabalho colaborativo[7], visto que suas tecnologias associadas, como dispositivosmóveis e adaptação ao contexto [8], permitem incrementar aqualidade do processo de busca por pessoas.

Desta forma, a noção de colaboração ubíqua vêm ganhandodestaque nos últimos anos. A maior motivação desse tipode colaboração é permitir uma continuidade do trabalhocolaborativo através de um acesso pervasivo à informaçõescompartilhadas, facilidades de comunicação e serviços degroupware. Uma importante característica neste ponto estáem ter ciência de outros colaboradores [9], [10], entretantoo processo de seleção destas pessoas para uma possível cola-boração é uma questão que não está completamente resolvida,como observado por [5]. Mesmo projetos posteriores ao estudodestes autores [11], [12], [13], ainda não atendem totalmentea este problema de pesquisa, especificamente, quando imersoem um ambiente ubíquo.

Este trabalho apresenta o framework MaPS (Matching Pe-ople to Share), um framework de suporte no desenvolvimentode aplicações colaborativas em ambientes ubíquos. MaPS temcomo escopo os primeiros passos de uma colaboração: a buscapor pessoas e por canais de comunicação que possam serutilizados na interação entre os participantes. A arquiteturaproposta visa considerar critérios de pesquisa e informaçõesde contexto para as buscas por pessoas em um ambiente ubí-quo. O framework auxilia no desenvolvimento de aplicações

2009 Simpósio Brasileiro de Sistemas Colaborativos

978-0-7695-3918-8/09 $29.00 © 2009 IEEE

DOI 10.1109/SBSC.2009.24

44

colaborativas, incrementando e definindo estes processos depesquisa.

Para avaliar a proposta do framework, uma aplicação foidesenvolvida e experimentos foram realizados, considerando-se mídias de comunicação heterogêneas. O restante do artigoencontra-se organizado da seguinte forma: após breve introdu-ção do tema e conceitos de colaboração ubíqua, são apresen-tados os fundamentos do MaPS, descrevendo sua arquiteturae principais elementos. A seguir é apresentada a metodologiado experimento relatado no presente artigo e sua execução,juntamente com seus resultados. Logo, são exibidos projetosrelacionados ao MaPS, avaliando-se os mesmos e comparando-os com o framework proposto. Por fim, são apresentadasalgumas considerações, contribuições e trabalhos futuros.

II. COLABORAÇÃO UBÍQUA

Conceito introduzido por Mark Weiser [6], a computaçãoubíqua, também referenciada como computação pervasiva(Pervasive Computing), surge para integrar diversas tecno-logias e idéias já existentes. Diferentemente da computaçãobaseada em desktop, que possui uma abordagem estática, acomputação ubíqua vale-se da mobilidade do usuário atravésde dispositivos móveis e também de serviços providos pelasredes sem fio. De acordo com este paradigma, portanto, ousuário é livre para se mover para qualquer lugar, em qualquertempo, utilizando o dispositivo que desejar, sendo que sempreestará inserido em um ambiente que dispõe de um poder com-putacional [14], [8], [15]. É justamente esta possibilidade de seusar a computação de forma integrada às nossas atividades dodia-a-dia que faz com que ela desapareça, do ponto de vistado usuário[6]. Nesse sentido, considerando a grande hetero-geneidade dos dispositivos e volatilidade dos elementos quecompõem o ambiente ubíquo, em grande parte causada pelamobilidade, uma das principais técnicas de suporte consisteem construir sistemas (aplicações e serviços) que são cientesdo seu contexto de utilização [16]. Um dos principais objetivosde uma aplicação ciente do contexto [17] é atender cada umde seus usuários de uma forma personalizada. Para tanto,não apenas diferencia-os através de perfis [18], mas tambémfornece informações pertinentes a cada um destes, levandoem consideração o ambiente físico em que se encontram nomomento (localização) .

Neste cenário, a adaptação é um elemento chave [19],sendo provida em função do contexto dos usuários [20].A ciência do contexto pode ser implementada combinandoinformações como localização do usuário e suas preferências[21]. Esse modelo computacional, denominado de ciente docontexto, se beneficia do uso de informações contextuaispara aprimorar a interação com seus usuários. Uma dessasinformações é a localização do usuário, fator importante paradeterminar a sua mobilidade. Os sistemas de localização [22]estão viabilizando o desenvolvimento de sistemas cientes daposição física do usuário (computação ciente da localização).Assim, aplicações podem explorar tanto informações explícitasfornecidas pelo sistema, como também informações implícitasprovenientes do contexto físico e computacional do ambiente e

Figura 1. Passos para a colaboração

seus usuários. Dessa forma, essas tecnologias vêm permitindoo desenvolvimento de sistemas ubíquos cientes da localizaçãodo usuário (contexto geo-físico) e da situação onde estão inse-ridos (contexto social), tirando vantagem destas informaçõespara configurar-se dinamicamente de um modo distribuído,adaptando-se as necessidades do usuário.

Estas características permitem que sejam criados cenáriosque propiciam a colaboração, onde o deslocamento do usuárioe a adaptação do ambiente ao mesmo são fatores que auxi-liam no processo de busca por colaboradores. Considerandoos aspectos da computação ubíqua, a mobilidade facilita oacesso do usuário a recursos dos quais ele necessita. Assim,utilizando-se desta tecnologia, criam-se novas oportunidadesde interação e colaboração entre pessoas. Já a ciência docontexto [17] permite que possam ser utilizados elementosdo ambiente no qual os participantes estão, com o objetivode otimizar os processos de busca. Esta otimização podeser obtida, por exemplo, em função de informações comolocalização dos usuários e dispositivos que eles portam. Comisso, o sistema pode configurar-se a estas informações dinami-camente de modo a adaptar-se ao usuário [23], exibindo emum resultado de busca, por exemplo, as pessoas mais indicadaspara cada situação. E ainda, a invisibilidade computacionalgarante a utilização de computação pelos usuários de modo,praticamente, imperceptível [24]. Com esta característica, ouso da computação nas atividades rotineiras torna-se natural eintuitivo.

III. FRAMEWORK MAPS

MaPS tem como escopo os primeiros passos de uma co-laboração: a busca por pessoas e por canais de comunicaçãoque possam ser utilizados na interação entre os participantes(figura 1). O framework incrementa o processo de colaboração,auxiliando o desenvolvimento de aplicações através da tomadade decisão nestes dois pontos críticos. O uso do MaPSautomatiza e otimiza assim, as etapas de seleção de pares e decanais de comunicação, sugerindo as opções mais adequadaspara o usuário em função do ambiente (contexto) em que elese encontra.

Uma das motivações do MaPS é a definição de uma solução

45

que viabilize a sua utilização em diferentes cenários de cola-boração em ambientes ubíquos. Contudo, existem requisitosbásicos que devem ser atendidos pelo ambiente no qual o sis-tema que utiliza o framework será executado. Estes requisitoscompreendem funcionalidades não cobertas pelo framework,mas que são necessárias a sua operação, como: (i) um serviçode gerenciamento de perfis de pessoas; (ii) um serviço deinformações de contexto; e (iii) um serviço de base de dadoslexicais.

MaPS não requer um modelo específico de perfil de usuá-rios, contudo há um conjunto de informações básicas quedevem ser contempladas pelo perfil utilizado pela aplicação.A aplicação que utilizar o MaPS deve possuir informaçõesequivalentes a estas apresentadas:• Nome: nome/identificação pelo qual o usuário será reco-

nhecido no sistema por outros participantes;• Identificador: identificador único, de uso da aplicação,

que é utilizado para diferenciar os usuários;• Conhecimentos: lista de conhecimentos que o usuário

tem;• Canais de comunicação: lista de canais de comunicação

que o usuário possui;• Preferência de canais de comunicação: lista de canais de

comunicação que o usuário tem preferência em usar.Ressalta-se aqui que o dado de canal de comunicação deveindicar ao menos que tipo de canal está sendo tratado (porexemplo, e-mail ou telefone) e qual a forma de comunicaçãoutilizada (síncrona ou assíncrona).

As informações de contexto utilizadas pelo framework sãodefinidas em função do tipo de aplicação que faz uso do MaPS.Por exemplo, para uma aplicação que almeje como resultadofinal o encontro físico de usuários colaboradores, a localizaçãoé um dado importante no processo de busca por pessoas. Jáuma aplicação que visa somente a interação virtual entre osparticipantes, localização não é um item vital a ser levadoem consideração. Sendo assim, não é definido um conjuntomínimo de dados que o serviço de contexto deve prover. Cabeao desenvolvedor determinar a lista de informações necessáriase com isso, escolher um serviço de contexto que atenda às suasexpectativas.

Tanto na seleção de pares, quanto na seleção de canaisde comunicação, elementos do contexto de todos usuáriosenvolvidos podem ser levados em consideração, refinando-sea consulta. Neste caso, é importante ressaltar que a seleçãodestes elementos vai ser influenciada pelo cenário no qual oframework está instanciado.

O próximo serviço externo, a base de dados lexicais, podeser descrito como um repositório de informações que englo-bam não só descrições estáticas dos termos, mas também suaspropriedades e valores associados [25] (através de relaçõessemânticas como hipernímia e hiponímia, por exemplo).

O serviço de base de dados lexicais, assim como o ser-viço de contexto, é um elemento que varia de aplicaçãopara aplicação. Seu maior objetivo é auxiliar nas buscas porcolaboradores, expandindo as possibilidades de resultados deuma requisição. Esta expansão consiste em procurar palavras

Figura 2. Macro arquitetura do MaPS

semanticamente semelhantes àquelas informadas como critériode busca pelo usuário, de forma a abranger um número maiorde resultados. Portanto, o domínio desta base de dados deveestar de acordo com domínio da aplicação. Contudo, como serávisto posteriormente, somente o uso da expansão de critériosde busca não é garantia de uma resposta mais satisfatória.Idealmente, a aplicação deve utilizar este mecanismo somenteem alguns casos, discernindo as melhores situações.

A. Arquitetura

Os conceitos utilizados para construir as duas funcionalida-des do MaPS (escolha de pessoas e de canais de comunicação)estão exibidos na figura 2, que representa a macro arquiteturado framework. A construção da seleção de pares é feita,basicamente, através dos conceitos de (i) perfis que contêminformações de usuários (Profile), (ii) matcher que realizao casamento de perfis (ProfileMatcher), e (iii) critérios dematching que usam operadores predefinidos para especificara busca (Criterion).

Como descrito anteriormente, o ambiente deve prover umserviço de perfis de usuários. Estas informações estão repre-sentadas no elemento Profile, que é disponibilizado através doserviço externo de repositório de perfis (Profile Repository).Cada usuário existente no ambiente é identificado através deum Profile.

ProfileMatcher é o elemento que faz o casamento de Profi-les. Ele utiliza-se de informações provenientes da Knowledge-Base, que representa uma abstração de repositório persistenteque centraliza as informações pertinentes aos processos decolaboração, e ainda informações obtidas através do Context-Provider. Estas informações estão definidas na fase de identi-ficação dos requisitos funcionais do ambiente colaborativo, ecorrespondem aos dados de usuários, base de dados lexicais edados do contexto. O acesso do framework a serviços externos

46

Figura 3. Pipeline de Filtros

se dá através de uma interface (Context Provider e KnowledgeBase) e um adaptador (Context Adapter e Knowledge BaseAdapter).

O elemento ProfileMatcher está construído sob a visão dopadrão de projeto Strategy [26], onde define uma interfacecomum para todas as heurísticas de busca de perfis. Assim,este elemento trata-se de um hot-spot, permitindo que novassubclasses, com diferentes algoritmos de busca, sejam defini-das na instanciação do framework, sendo a utilização de umaheurística específica determinada por uma configuração doframework ou pelo estado do contexto. Por exemplo, se houveruma informação de localização de usuários, o algoritmo podelevar este dado em consideração na hora de selecionar aspessoas.

O framework permite que os elementos ProfileMatcherpossam ser estruturados como um pipeline, fazendo com quea busca por Profiles possa ser refinada por diversos filtrosde forma incremental. A figura 3 ilustra esta idéia. Nela,uma requisição de alto nível feita pelo usuário é mapeadapelo UserAgent (uma entidade genericamente citada aqui, querepresenta um agente que está com o usuário e intermedeia asrequisições realizadas pelo usuário para a aplicação servidor)para uma busca por pessoas, que obedece a um determinadoconjunto de critérios. Este conjunto de critérios é transportadoatravés do pipeline, podendo ser refinado pela heurísticaimplementada em cada estágio. Ao atingir o estágio final,a implementação de ProfileMatcher acessa a KnowledgeBaseretornando uma lista preliminar de usuários que satisfazemaquele conjunto potencialmente expandido de critérios. Alista flui na direção oposta do pipeline, podendo ser filtradanovamente a cada estágio visando melhorar a qualidade doresultado da busca. Por exemplo, um elemento intermediáriodo pipeline pode classificar os elementos da lista em funçãode um atributo de contexto, como localização.

A busca por Profiles é sempre realizada em função decritérios, que podem ser simples ou compostos. Critériossimples são aqueles que relacionam pares de "atributo-valor"através de um operador e que devem ser satisfeitos em uma

consulta. Por outro lado, critérios compostos representam umgrupo de critérios aninhados de forma a especializar umaconsulta. Para capturar esta idéia, MaPS instancia o padrão deprojeto Composite [26], onde a interface Criterion representaum critério em sua forma abstrata, enquanto SimpleCriterione CompositeCriterion representam, respectivamente, critériossimples e compostos. Tal organização é ilustrada na figura 4.

O elemento SimpleCriterion faz uso ainda de operadoresde valor: contains (busca exata), like (busca aproximada, quefaz uso de um serviço externo: a base de dados lexicais), gre-ather_than (valores maiores que os informados), e less_than(valores menores que o informado). Estes operadores atuamsobre os valores especificados em cada critério. Em Composi-teCriterion, um grupo de critérios já criados são organizadosem função de três operadores lógicos: and (indica que todasas condições devem ser atendidas); or (define que pelo menosuma das condições deve ser atendida); e xor (determina queapenas uma das condições deve ser atendida).

Com estes operadores e a possibilidade de se criaremcritérios múltiplos, é possível montar árvores de busca, comoa representada na figura 5.

Neste exemplo, estamos pesquisando por pessoas que aten-dam à seguinte situação: "deseja-se pesquisar pessoas queconheçam Orientação a Objetos e que tenham conhecimentosna linguagem Java ou .NET". Assim, criamos critérios simples(conhecimentos em um determinado domínio) e os conectamosatravés de operadores lógicos, formando um critério múltiplo.

Ressalta-se ainda que uma das principais idéias propostaspelo MaPS é o uso de informações de contexto nos processosde busca, daí a importância de se criarem critérios compostos,que agrupam diferentes tipos de informações para tornar abusca mais eficiente, retornando resultados relevantes.

IV. EXPERIMENTOS

MaPS é um framework, portanto uma proposta de infra-estrutura. Segundo Edwards et. al. [27] a avaliação de umainfra-estrutura é considerada problemática, uma vez que amesma não é visível para o usuário final. Os autores colocam

47

Figura 4. Elementos de critérios de busca - MaPS

Figura 5. Árvore de busca

em seu trabalho que somente é possível avaliar as funcio-nalidades de um framework construindo aplicações que asutilizem e então avaliá-las, obtendo-se assim, uma avaliaçãoindireta do framework. Contudo, como observado por eles, aoconstruir uma aplicação deve-se ter em mente que os usuáriosnão estarão julgando apenas as características que desejamos,mas o software como um todo.

Desta maneira, uma das avaliações realizadas com o MaPScompreende às funcionalidades que o framework se propõe asuportar em uma aplicação colaborativa: a busca por pessoase formas de comunicação entre estas. Para tanto foram rea-lizados testes com usuários, onde eles executaram atividadesque contemplem a proposta do MaPS.

Primeiramente, é apresentado aos usuários um cenário mo-tivacional. Este descreve brevemente uma possível situaçãode utilização de uma aplicação que use as funcionalidadesprovidas pelo framework. Com isso, os participantes podemcompreender os objetivos do MaPS.

Após a apresentação do cenário, os usuários têm acessoa uma lista de perfis de pessoas e um problema de busca.Este problema consiste no seguinte: uma das pessoas desejaprocurar colaboradores com base em um conjunto de critérios.Assim, é solicitado ao usuário que indique quais pessoas, douniverso apresentado, poderiam retornar nesta busca e por quê.

Após esta participação do usuário, são comparados os re-sultados que ele indicou com os resultados que uma aplicaçãoconstruída com o MaPS retorna, utilizando-se os mesmos

critérios de busca (para este experimento, os participantes nãointeragem diretamente com nenhuma aplicação). Se houveremresultados que a aplicação retorne e o usuário não tenhapreviamente selecionado, é questionado ao mesmo se eleconcorda com a escolha do software. De posse dos dadosfornecidos pelos usuários, é elaborada uma lista unificada desugestões dadas e esta será relacionada com o resultado obtidoatravés do protótipo.

A fim de comparar os resultados obtidos com as respostasdos usuários e o resultado fornecido pela aplicação, optou-sepor utilizar o coeficiente de correlação de Spearman [28], dadaa natureza dos dados dos testes.

Com este teste, espera-se verificar o quão próximo o resul-tado de uma busca feita pela aplicação está do esperado pelosusuários. Ou seja, será testada a capacidade de um softwareque utilize o MaPS retornar resultados satisfatórios.

A. Protótipo de Aplicação

Para este experimento foi desenvolvido um protótipo sim-ples com o objetivo de utilizar o framework MaPS em umprocesso de busca por usuários em um banco de perfis previ-amente populado.

Este protótipo é uma aplicação web, desenvolvida comPHP, que acessa um servidor através de um web service. Oservidor contém uma aplicação Java, que faz uso do MaPSpara oferecer um serviço de busca de pessoas.

Utilizando o aplicativo, o usuário tem a possibilidade deprocurar pessoas que estejam cadastradas no sistema, atravésde uma busca por conhecimentos que eles possuem. Para cadaresultado retornado, é informada uma lista de conhecimentos,além dos tipos de canais de comunicação o usuário podeutilizar para entrar em contato com a pessoa (figura 6). OMaPS foi usado nesta aplicação no modo local, ou seja, háum pipeline de filtros, mas ele está localizado em um local(servidor).

B. Execução e Resultados

Para os experimentos, foram realizados testes com umapopulação de 12 indivíduos.

A fase de coleta de dados com os participantes compreendeutrês etapas:

48

Figura 6. Interface do protótipo de aplicação

• Apresentação do cenário motivacional, relatando a neces-sidade de uma aplicação de busca por pessoas;

• Apresentação de um conjunto de personagens de umambiente, indicando-se que um deles deseja realizar umapesquisa por outros personagens que possuam um deter-minado assunto;

• Participantes selecionam quatro personagens, em ordemdecrescente de importância, que julgam que possuamcondições de colaborar com o personagem que realizaa busca.

Com o intuito de não tornar os testes cansativos para os par-ticipantes, mas ao mesmo tempo, apresentar dados relevantes,foi definido um conjunto de 16 personagens no ambientesimulado. Cada um deles possui um perfil, que pôde serconsultado pelos participantes.

Os perfis dos personagens possuem informações como seuestado no momento (online ou offline), os conhecimentos queestes possuem e que tipos de mídias de comunicação têmdisponível. A figura 7 mostra o modelo de perfil apresentadopara os participantes.

Ao final dos experimentos, foi calculado um nível de aptidãopara cada personagem do ambiente simulado, refletindo apreferência dos indivíduos que participaram do experimento.

Figura 7. Modelo de perfil dos personagens

Para tal, foi desenvolvida e adotada a fórmula

Apt(i) =x∑

n=1

(Fn(i) ∗ 2x−n) (1)

onde, o nível de aptidão do personagem i pertencenteao ambiente simulado (Apt(i)) é calculado pelo somatórioponderado da freqüência com que este indivíduo aparece emcada uma das n posições de preferência (Fn(i)). O pesoatribuído a cada elemento do somatório (2x−n) segue umaprogressão geométrica, visando destacar os elementos mais ap-tos dos demais. Como já citado anteriormente, os voluntáriosselecionaram 4 personagens, portanto x, na fórmula acima,possui este valor.

Por exemplo, considerando as respostas de todos os vo-luntários, o personagem G, do ambiente simulado, obteve aquantidade de votos para cada um das posições apresentadana tabela I.

Tabela IQUANTIDADE DE VOTOS PARA UM PERSONAGEM DADA PELOS

VOLUNTÁRIOS

Quantidade de votosPrimeira posição 3Segunda posição 5Terceira posição 4Quarta posição 0

A tabela indica que 3 pessoas tiveram o personagem Gna primeira posição de suas listas, 5 diferentes pessoas ocolocaram como segunda escolha, 4 o selecionaram comoterceira opção e nenhuma o selecionou na quarta posição.Pode-se notar que este personagem participou da lista de 12pessoas diferentes, ou seja, todos os voluntários o seleciona-ram em alguma posição. Aplicando-se a fórmula de aptidõesaos personagens, em função dos resultados fornecidos pelosvoluntários, obteve-se os valores apresentados no gráfico dafigura 8.

Dos 16 personagens do ambiente simulado, 6 apareceram aomenos uma vez em alguma lista fornecida pelos voluntários. Opersonagem J foi o que apareceu mais vezes e mais próximodas primeiras posições das listas, obtendo o maior valor deaptidão.

49

Figura 8. Aptidões dos personagens

Com base nos valores de aptidão calculados para cada per-sonagem, gerou-se uma lista ordenada resultante das respostasdos voluntários. Os quatro personagens com maior nível deaptidão formam esta nova lista (em ordem de decrescenteimportância: personagem J, G, N e F). Em paralelo a estaatividade, foi executada a mesma ação de busca realizada pelosparticipantes, mas utilizando-se um protótipo desenvolvido.A aplicação utilizou o mesmo conjunto de personagens eo mesmo critério de pesquisa que os apresentados para osusuários dos testes. Como resultado desta pesquisa, obteve-se a seguinte lista (em ordem de decrescente importância):J, G, N e F, que representa a mesma lista resultante dasrespostas dadas pelo usuário. Assim, torna-se desnecessário aaplicação do coeficiente de correlação, já que as duas listas sãosemelhantes. Com isso, verifica-se que o protótipo retornouindicações condizentes e relevantes para o problema proposto.

Confrontando os dados provenientes dos voluntários com oresultado do protótipo, pôde-se obter as seguintes estatísticas:

• 1 (8.33%) pessoa indicou exatamente o mesmo resultadoque o protótipo apresentou;

• 5 (41.67%) pessoas indicaram os mesmos dois primeirosresultados que o protótipo apresentou (não na mesmaordem);

• 7 (58.33%) pessoas indicaram os mesmos três primeirosresultados que o protótipo apresentou (não na mesmaordem);

• todos apresentaram em sua seleção (em alguma posição)o primeiro e o segundo selecionados pelo protótipo;

• 11 (91.67%) pessoas apresentaram em sua seleção (emalguma posição) o primeiro, segundo e terceiro selecio-nados pelo protótipo;

• 7 (58.33%) pessoas apresentaram em sua seleção (emalguma posição) os mesmos resultados que o protótipo.

Com estas métricas, pode-se notar que dentre os partici-pantes do experimento, todos apresentaram em suas listas,em qualquer ordem, as duas primeiras indicações feitas peloprotótipo construído com o auxílio do MaPS. E somente umparticipante não apresentou em sua lista, em qualquer ordem,os três primeiros resultados selecionados pelo protótipo. Isto

significa que para mais de 90% da população do experimentoo MaPS acertou em suas indicações, considerando-se seus trêsprimeiros resultados, de quatro fornecidos.

V. TRABALHOS RELACIONADOS

Atualmente, existem soluções voltadas para o suporte aodesenvolvimento de aplicações colaborativas. Estas soluçõesvão desde frameworks conceituais [5], [29] até plataformasde serviços [30], [31], [32] que têm como intuito otimizar acriação de aplicações deste tipo. Projetos como UbiCollab [31]e Collaborator [33] oferecem um suporte aos desenvolvedores,em forma de API ou ambiente de desenvolvimento, como oMaPS. Contudo, nenhum deles oferecem um apoio explícitoà funcionalidade de seleção de pessoas, tampouco tratamda escolha de canais de comunicação. De forma que existemargem para uma contribuição científica neste assunto.

MaPS vem preencher esta lacuna, oferecendo um suporteespecializado a estes aspectos na criação de software colabo-rativo através do framework MaPS. Na tabela II é apresentadauma comparação entre alguns projetos existentes e o MaPS.

Os itens analisados para cada um dos trabalhos são osseguintes:• Utiliza um modelo de dados do usuário: esta caracterís-

tica indica se o projeto utiliza informações de usuáriosem algumas de suas operações;

• Considera informações de contexto: esta característicaaponta se os projetos utilizam algum tipo de informaçãode contexto a fim de otimizar seus processos;

• Permite a utilização de diversos tipos de canais decomunicação: este item indica se o projeto não restringe ouso de canais comunicação a um conjunto finito imutável,possibilitando que sejam acrescidas novas formas deinteração quando necessário;

• Oferece um mecanismo de busca por pessoas: oferecereste mecanismo significa que o sistema possibilita queseus usuários possam realizar pesquisas por pessoas atra-vés de filtros, restringindo o seu resultado;

• Leva em consideração os canais de comunicação nabusca por pessoas: esta característica indica se o projetoprevê a utilização do tipo de informação "canal de co-municação" como um fator limitante em seus resultadosde pesquisa. Esta informação pode ser obtida atravésde um perfil, onde o usuário selecione as formas deinteração que prefere, ou ainda, determinando-se que tipode dispositivo o usuário carrega consigo, por exemplo;

• Oferece uma biblioteca ou serviços destinados ao desen-volvimento de aplicações: neste ponto são identificadosprojetos que também têm como objetivo oferecer este tipode suporte para desenvolvedores, e não somente proporuma aplicação fechada;

• Pode ser estendido para outros domínios ou tipos deaplicação: este item informa se o trabalho foi projetadopara que seja reutilizado em outros cenários que nãoprevê inicialmente;

Cada coluna da tabela representa um projeto, e o símbolo "x"em cada célula indica que o projeto correspondente contempla

50

a característica informada na linha. O símbolo "o" na célulaindica que o projeto expõe a característica como uma idéia,contudo não a especifica.

MaPS foi criado para oferecer um novo modelo de busca depessoas, em um ambiente ubíquo, com o objetivo de colaborar.E para isso, faz uso de informações de contexto e perfis deusuários, a fim de tornar este processo mais eficiente. Outrosprojetos também utilizam dados de perfis de usuários, noentanto, nem todos usam estas informações para a busca deusuários.

uLearning[5], [29] é um projeto que propõe a busca porpessoas, como MaPS, e ressalta a sua importância no processode colaboração. Entretanto, não trata do problema de seleçãode canais de comunicação. Este projeto apresenta um modeloconceitual e descreve uma aplicação pronta que implementaos conceitos propostos, não oferecendo recursos para desen-volvedores.

Outro projeto que apresenta a funcionalidade de busca porpares é o proposto por Chen e Yang [34], [12], que é baseadoem redes sociais. Neste trabalho, o conceito de busca porrecursos (sejam arquivos ou pessoas) está presente e é dadauma grande importância a ele. Todavia, mesmo sendo umaproposta que está inserida em um ambiente ubíquo, esta açãode pesquisa não utiliza informações de contexto, ou seja, nãofaz uso de um recurso que pode estar disponível pelo ambientee que pode incrementar seus resultados.

UbiCollab [31], [32] e Collaborator [33], [30] são projetosque, assim como MaPS, se propõem a fornecer subsídiosaos desenvolvedores para construírem seus próprios siste-mas, aplicando os conceitos apresentados. Contudo, apesar deoferecer uma base para tal, estes ambientes não descrevemexplicitamente um processo de busca por colaboradores. Emum ambiente onde seus usuários não têm conhecimento detodos os participantes envolvidos, esta é uma das funcionali-dades mais básicas para se prover um cenário propício paracolaboração.

VI. CONSIDERAÇÕES FINAIS

Computadores são utilizados como suporte à colaboraçãohá décadas, mas este uso vem sendo adaptado ao longo destetempo em função das tecnologias disponíveis. Nos últimosanos assistimos o desenvolvimento do paradigma da computa-ção ubíqua e como ele pode modificar a forma como tratamos acolaboração. Um ambiente ubíquo pode prover recursos antesnão existentes para a elaboração de sistemas colaborativos.

Mobilidade, poder computacional em qualquer lugar e aqualquer hora, ciência do contexto, estas são apenas algumascaracterísticas que a computação ubíqua disponibiliza para apromoção da colaboração. Contudo, o bom uso destes aspectosainda é um campo de pesquisa vasto na computação.

Neste cenário, MaPS foi pensado para melhor explorar ascaracterísticas providas em um ambiente ubíquo, especifica-mente, nos passos elementares do processo de colaboração. Epara que possa ser possível utilizar este trabalho no desen-volvimento de aplicações, optou-se por concebê-lo através de

uma das técnicas mais utilizadas de reuso de software: umframework.

O diferencial do MaPS em relação a outros projetos quetratam do suporte à funcionalidade de seleção de pessoas parauma colaboração está em considerar informações distintas (nãoutilizando só dados que o usuário informa explicitamente), quemelhoram a qualidade da busca, retornando potenciais colabo-radores que são pertinentes, considerando o contexto em que abusca é realizada. Dados como tipos de canais de comunicaçãodisponíveis, perfis de usuários e localização dos mesmos nãosão consideradas em sua totalidade nos trabalhos relacionados,tratando-se de um aspecto que distingue MaPS dos demaistrabalhos, caracterizando-o por sua principal contribuição.

Com a possibilidade de se utilizar informações de contextonas suas pesquisa, MaPS abre espaço para diversos trabalhosfuturos. Diferentes protótipos que utilizem estes dados (comolocalização, por exemplo) podem ser explorados. Como tra-balho futuro destaca-se ainda uma extensão do MaPS para autilização de sistemas de recomendação, onde os usuários ava-liariam a atuação de seus colaboradores e suas proficiências.Utilizando esta informação como filtro, os processos de buscapodem ser otimizados.

Outro trabalho futuro que visa incrementar a busca por cola-boradores é uma extensão do MaPS onde acesse informaçõesde histórico de colaborações. Estas interações já realizadaspodem servir como informações preferências na momento dese indicar colaboradores para um usuário. Por fim, são válidastambém as extensões do framework para o suporte nativo amais de um tipo de comunicação cliente-servidor. Hoje, MaPSpossui um pacote utilitário para acesso via Java RMI (RemoteMethod Invocation), contudo poderiam ainda ser acrescentadosmecanismos para acesso, por exemplo, via sockets.

VII. AGRADECIMENTOS

Os autores gostariam de agradecer ao Conselho Nacionalde Desenvolvimento Científico e Tecnológico - CNPq - Brasil,pelo apoio recebido através do Edital 15/2007 - Universal.

REFERÊNCIAS

[1] C. A. Ellis, S. J. Gibbs, and G. Rein, “Groupware: some issues andexperiences,” Communications of the ACM, vol. 34, pp. 39–58, 1991.

[2] G. Stahl, “Groupware goes to school,” in 8th International Workshop onGroupware: Design, Implementation, and Use, CRIWG 2002, vol. 2440of Lecture Notes in Computer Science, (La Serena, Chile), pp. 7–24,Berlin: Springer, 2002.

[3] H. Fuks, A. Raposo, M. A. Gerosa, M. Pimental, and C. J. P. Lucena, The3C Collaboration Model, p. 750. Texas A&M International University,USA: Information Science Reference, ned kock ed., Dec. 2007.

[4] M. A. Gerosa, H. Fuks, and C. J. P. Lucena, “Suporte à percepção emambientes digitais de aprendizagem,” Revista Brasileira de Informáticana Educação, vol. 11, Nov. 2003.

[5] G. Zhang and Q. Jin, “Research on collaborative service solution in ubi-quitous learning environment,” in Parallel and Distributed Computing,Applications and Technologies, 2005. PDCAT 2005. Sixth InternationalConference on, pp. 804–806, 2005.

[6] M. Weiser, “The computer for the 21st century,” Scientific American,vol. 265, Sept. 1991.

[7] S. Izadi, P. Coutinho, T. Rodden, and G. Smith, “The fuse platform: Sup-porting ubiquitous collaboration within diverse mobile environments,”Automated Software Engineering, vol. 9, pp. 167–186, Apr. 2002.

51

Tabela IITABELA COMPARATIVA - PROJETOS RELACIONADOS

[8] M. Satyanarayanan, “Pervasive computing: vision and challenges,” Per-sonal Communications, IEEE [see also IEEE Wireless Communicati-ons], vol. 8, pp. 10–17, 2001.

[9] J. M. Carroll, D. C. Neale, P. L. Isenhour, M. B. Rosson, and D. S.McCrickard, “Notification and awareness: synchronizing task-orientedcollaborative activity,” Int. J. Hum.-Comput. Stud., vol. 58, pp. 605–632,2003.

[10] E. T. Diamadis and G. C. Polyzos, “Efficient cooperative searchingon the web: system design and evaluation,” International Journal ofHuman-Computer Studies, vol. 61, pp. 699–724, Nov. 2004.

[11] W.-I. Park, S.-J. Kang, Y.-D. Lee, H.-S. Choi, S.-H. Kang, M. Choi,K. Sohn, Y.-K. Kim, and J.-H. Kang, “A context-based collaborationsystem in ubiquitous environments,” in Convergence Information Tech-nology, 2007. International Conference on, pp. 101–107, 2007.

[12] S. J. Yang and I. Y. Chen, “A social network-based system for sup-porting interactive collaboration in knowledge sharing over peer-to-peernetwork,” International Journal of Human-Computer Studies, vol. 66,pp. 36–50, 2008.

[13] B. A. Farshchian and M. Divitini, Collaboration Support for MobileUsers in Ubiquitous Environments. Heidelberg: Springer, 2009.

[14] D. Saha and A. Mukherjee, “Pervasive computing: A paradigm for the21st century,” Computer, vol. 36, pp. 25–31, 2003.

[15] A. C. Yamin, Arquitetura para um Ambiente de Grade Computacio-nal direcionado às Aplicações Distribuídas, Móveis e Conscientes doContexto da Computação Pervasiva. Tese (doutorado em ciência dacomputação), Instituto de Informática, Universidade Federal do RioGrande do Sul, 2004.

[16] B. Schilit, N. Adams, and R. Want, “Contextaware computing applica-tions,” (Santa Crus, CA, US), 1994.

[17] A. K. Dey and G. D. Abowd, “Towards a better understanding of contextand context-awareness,” 1999.

[18] A. Syvanen, R. Beale, M. Sharples, M. Ahonen, and P. Lonsdale,“Supporting pervasive learning environments: adaptability and contextawareness in mobile learning,” in Wireless and Mobile Technologies inEducation, 2005. WMTE 2005. IEEE International Workshop on, p. 3pp., 2005.

[19] M. Satyanarayanan, “Fundamental challenges in mobile computing,”(Philadelphia, Pennsylvania, United States), pp. 1–7, ACM, 1996.

[20] S. Toivonen, J. Kolari, and T. Laakko, “Facilitating mobile users withcontextualized content,” Proceedings of the 1998 Winter SimulationConference Proceedings, pp. 124–134, 2003.

[21] L. Naismith and P. Smith, “Context-sensitive information delivery tovisitors in a botanic garden,” in EDMEDIA World Conference on Edu-cational Multimedia, Hypermedia and Telecommunications, vol. 2004,(Lugano, Switzerland), pp. 5525–5530, 2004.

[22] J. Hightower and G. Borriello, “Location systems for ubiquitous com-puting,” Computer, vol. 34, pp. 57–66, 2001.

[23] D. N. F. Barbosa, Um Modelo de Educação Ubíqua Orientado à Cons-ciência do Contexto do Aprendiz. Doutorado em ciência da computação,Instituto de Informática, PPGC/UFRGS, Porto Alegre, Março 2007.

[24] M. Weiser, “Some computer science issues in ubiquitous computing,”Communications of the ACM, vol. 36, pp. 75–84, 1993.

[25] V. B. Y. Ooi, Computer Corpus Lexicography. Edinburgh: EdinburghUniversity Press, 1998.

[26] E. Gamma, R. Helm, R. Johnson, and J. Vlissides, Padrão de Projetos- Soluções reutilizáveis de software orientado a objetos. Porto Alegre:Bookman, 2000.

[27] W. K. Edwards, V. Bellotti, A. K. Dey, and M. W. Newman, “Thechallenges of user-centered design and evaluation for infrastructure,”(Ft. Lauderdale, Florida, USA), pp. 297–304, ACM, 2003.

[28] M. F. Triola, Introdução à Estatística. Rio de Janeiro: Livros Técnicose Científicos Editora S. A., 7 ed., 1999.

[29] G. Zhang, Q. Jin, and M. Lin, “A framework of social interactionsupport for ubiquitous learning,” in Advanced Information Networkingand Applications, 2005. AINA 2005. 19th International Conference on,vol. 2, pp. 639–643 vol.2, 2005.

[30] F. Bergenti, A. Poggi, and M. Somacher, “A collaborative platformfor fixed and mobile networks,” Communications of the ACM, vol. 45,pp. 39–44, 2002.

[31] M. Divitini, B. A. Farshchian, and H. Samset, “Ubicollab: collaborationsupport for mobile users,” (Nicosia, Cyprus), pp. 1191–1195, ACM,2004.

[32] B. Farshchian and M. Divitini, “Ubicollab: improving collaboration withlocation services,” in Pervasive Services, 2005. ICPS ’05. Proceedings.International Conference on, pp. 417–420, 2005.

[33] F. Bergenti, S. Costico, and A. Poggi, “A portal for ubiquitous collabo-ration,” in Conference on Advanced Information Systems Engineering,(Klagenfurt, Austria), 2003.

[34] I. Chen and S. Yang, “Peer-to-peer knowledge sharing in collaborationsupported virtuallearning communities,” in Advanced Learning Techno-logies, 2006. Sixth International Conference on, pp. 807–809, 2006.

52