Vous êtes sur la page 1sur 65

Sistema de Informação no Second Life® Interligando Serviços

Instant Messaging e SMS

Por

Sérgio Ricardo da Silva Valério

Orientador: Doutor Carlos Manuel José Alves Serôdio

Co-orientador: Leonel Caseiro Morgado

Dissertação submetida à
UNIVERSIDADE DE TRÁS-OS-MONTES E ALTO DOURO
para obtenção do grau de
MESTRE
em Engenharia Electrotécnica e de Computadores, de acordo com o disposto
no
DR – I série–A, Decreto-Lei n.º 74/2006 de 24 de Março e no
Regulamento de Estudos Pós-Graduados da UTAD
DR, 2.a série – Deliberação n.º 2391/2007
Orientação Científica:

Carlos Manuel José Alves Seródio


Professor Auxiliar com Agregação do
Departamento de Engenharias da
Escola de Ciência e Tecnologia da
Universidade de Trás-os-Montes e Alto Douro

Leonel Caseiro Morgado


Professor Auxiliar do
Departamento de Engenharias da
Escola de Ciência e Tecnologia da
Universidade de Trás-os-Montes e Alto Douro
Sistema de Informação no Second Life® Interligando Serviços
Instant Messaging e SMS

Sérgio Ricardo da Silva Valério

Submetido à Universidade de Trás-os-Montes e Alto Douro


para o preenchimento dos requisitos parciais para obtenção do grau de
Mestre em Engenharia Electrotécnica e de Computadores

Resumo - Organizações presentes no mundo do Second Life® tipicamente apenas


fornecem uma interacção com os seus funcionários em horários específicos ou não o
fazem de todo. Aqui apresenta-se um sistema que fornece a essas organizações uma
forma simples de manter uma constante interacção com utilizadores do mundo Second
Life, simulando a presença de um funcionário ao introduzir avatares automáticos como
canais de comunicação para o mundo real por meio de mensagens instantâneas e
tecnologia Short Message Service. Os funcionários comunicam com avatares no Second
Life de forma bilateral com base numa hierarquia de um sistema de informação com
prioridades estabelecidas.

Palavras Chave: Second Life, SL, Balcão de atendimento, Short Message Service, SMS,
Mensagens Instantâneas, IM, XMPP

i
ii
Second Life Information Desk System using Instant

Messaging and Short Messaging Service

Technologies

Sérgio Ricardo da Silva Valério

Submitted to the University of Trás-os-Montes and Alto Douro


in partial fulfillment of the requirements for the degree of
Master of Science in Electrical and Computers Engineering

Abstract - Organizations with a presence in the Second Life® world typically only
provide direct user interaction with staff at specific schedules, or not at all. We present a
system that provides organizations with a simple way to enable constant interaction
with users of the Second Life world, by simulatingstaff presence using automated
avatars as communication channels to real-life staff by means of instant messaging and
short message service technologies. Staff members are assigned tocommunication with
Second Life avatars based on a hierarchy of information desk staffing priorities, and
communication is bidirectional.

Keywords: Second Life, SL, Help Desk, Short Message Service, SMS, Instant Messaging,
IM,XMPP

iii
iv
Agradecimentos

Aproveito este pequeno espaço para agradecer às pessoas que me apoiaram no decorrer
desta jornada, aos meus pais que tornaram isto possível a todos os níveis, à minha
namorada Ana Paula pelo apoio e aconselhamento dado, aos colegas pelo
companheirismo demonstrado e finalmente mas sem menor importância aos professores
que devido ao seu profissionalismo, prazer de ensinar e de ver aprender me terem dado
motivação para melhorar a nível académico.

Ao Carlos Manuel José Alves Serôdio, orientador deste


Trabalho, empenho pelo bom nome da universidade e seus formandos, por todo o apoio
prestado no desenvolvimento deste trabalho como em toda uma jornada académica em
que me acompanhou, aconselhou e ajudou nos momentos difíceis.
Ao Professor Leonel Caseiro Morgado, na qualidade de co-orientador, pelas suas ideias
inovadoras, empenho na realização de projectos de excelência e determinação na
exploração de novas ideias para um novo mundo, o mundo virtual.
Ao Professor Pedro Mestre que não fazendo parte da equipa científica, forneceu uma
ajuda indispensável, pelo seu espírito de ensino, motivando e estabelecendo novos
limites aos seus alunos e a todos aqueles que procuram a sua ajuda em momentos de
aperto, recebendo apenas como retorno o meu respeito e profundo agradecimento por
tudo aquilo que representa.

v
vi
Índice

Resumo ........................................................................................................................................... i
Abstract ........................................................................................................................................ iii
Agradecimentos ............................................................................................................................ v
1. Introdução ........................................................................................................................... 10
1.1. Motivação.................................................................................................................... 10
1.2. Objectivos.................................................................................................................... 12
1.3. Organização da dissertação ........................................................................................ 13
2. Mundos Virtuais .................................................................................................................. 14
2.1. Potencialidades dos mundos virtuais .......................................................................... 14
2.2. SL ................................................................................................................................. 15
2.3. Comunicação entre SL e o mundo exterior ................................................................. 16
2.4. Formas de comunicação com o SL .............................................................................. 16
2.4.1. Comunicação por mail............................................................................................. 17
2.4.2. XML-RPC .................................................................................................................. 18
2.4.3. Pedidos HTTP........................................................................................................... 19
2.4.4. Comunicação utilizando um software alternativo de cliente ................................. 19
3. Serviços de mensagens instantâneas e sms ........................................................................ 21
3.1. Sistemas IM ................................................................................................................. 21
3.1.1. Windows Live Messenger........................................................................................ 23
3.1.2. Yahoo! Messenger................................................................................................... 23
3.1.3. AOL Instant Messenger ........................................................................................... 23
3.1.4. Skype ....................................................................................................................... 24
3.1.5. Sapo Messenger ...................................................................................................... 24
3.1.6. Protocolos de mensagens instantâneas .................................................................. 24
3.1.7. MSNP – Microsoft Notification Protocol ................................................................. 24
3.1.8. YMSG – Yahoo! Messenger Protocol....................................................................... 26
3.1.9. XMPP – Extensible Messaging and Presence Protocol............................................ 26
3.1.10. OSCAR - Open System for Communication in Realtime .......................................... 27
3.1.11. Skype Protocol......................................................................................................... 28
3.2. Sistemas IM e o SL ....................................................................................................... 29
3.3. Sistemas de comunicação SMS no SL .......................................................................... 31
4. Sistemas de informação no SL............................................................................................. 33

vii
5. Concepção e utilização do estudo realizado ....................................................................... 36
5.1. Orientações globais ..................................................................................................... 36
5.2. Métodos desenvolvidos .............................................................................................. 36
5.3. Aspectos gerais............................................................................................................ 37
5.4. Estratégias da arquitectura ......................................................................................... 38
5.4.1. Armazenamento de informação ............................................................................. 39
5.5. Interligação tecnológica .............................................................................................. 40
5.6. Arquitectura do sistema .............................................................................................. 41
5.6.1. BotSecondLife.......................................................................................................... 42
5.6.2. Classe ChatClient ..................................................................................................... 45
5.7. Módulos GSM .............................................................................................................. 48
5.7.1. Módulo de Envio SMS ............................................................................................. 48
5.7.2. Módulo de Recepção SMS....................................................................................... 50
5.8. Site ............................................................................................................................... 53
6. Testes, Resultados e Trabalho Futuro ................................................................................. 54
6.1. Funcionamento do sistema ......................................................................................... 54
6.2. Conclusões e Trabalho Futuro..................................................................................... 57
Referências .................................................................................................................................. 59

Índice de Figuras
Figura 1 – Comunicação por e-mail no SL ................................................................................... 17
Figura 2 – Comunicação por XML-RPC no SL............................................................................... 18
Figura 3 – Comunicação por pedidos HTTP no SL ....................................................................... 19
Figura 4 – Penetração de mercado dos serviços IM ................................................................... 22
Figura 5 – Windows Live Messenger da Encarta ......................................................................... 26
Figura 6 - SLeek ........................................................................................................................... 29
Figura 7 – GnomiChat .................................................................................................................. 30
Figura 8 – SL Messenger .............................................................................................................. 30
Figura 9 – Vodafone InsideOut.................................................................................................... 32
Figura 10 – e-Justice Center ........................................................................................................ 33
Figura 11 – Balcão de informação no Dreamland Central Hub ................................................... 34
Figura 12 – Diagrama do funcionamento geral........................................................................... 37
Figura 13 – Diagrama do armazenamento de informação ......................................................... 39
Figura 14 – Interacção com a base de dados .............................................................................. 40
Figura 15 – BotSecondLife (funcionamento geral)...................................................................... 42
Figura 16 – Tratament das mensagens SL ................................................................................... 44
Figura 17 – ChatClient (funcionamento geral) ............................................................................ 46
Figura 18 – Tratamento das mensagens dos messengers e actualização de contactos ............. 48

viii
Figura 19 – Módulo GSM de envio .............................................................................................. 49
Figura 20 – Módulo GSM de recepção ........................................................................................ 51
Figura 21 – Funcionamento geral do site .................................................................................... 53
Figura 22 – Registo de utilizadores e seus dados ........................................................................ 54
Figura 23 – Página de gestão do Bot ........................................................................................... 55
Figura 24 – Balcão de Informação com Bot ................................................................................ 56
Figura 25 – Comparação lado a lado: Cliente SL e Cliente IM ..................................................... 56
Figura 26 – Demonstração da troca entre sessões ..................................................................... 58

Índice de tabelas
Tabela I – Métodos de comunicação presentes no SL ................................................................ 17

ix
1. Introdução

Neste capítulo é feita uma apresentação global do trabalho realizado em três


componentes.
As mais-valias introduzidas pelo estudo realizado, de que forma o sistema de
informação aqui apresentado pode ser importante do ponto de vista empresarial, como
uma ferramenta simples, flexível e prática que reduz a necessidade de recursos
humanos, materiais e transforma a experiência daqueles que interagem com o sistema
tanto como cliente ou fornecedor de serviços.
Os objectivos finais a alcançar, pois é necessário criar um produto que não só
apresente mais-valias, numa óptica dos produtos já existentes, como também se torne
em um produto apelativo de forma a destacar-se da concorrência.
A organização da dissertação permite verificar os temas que irão ser tratados ao
longo deste documento.

1.1. Motivação

A comunicação desempenha um papel essencial na forma como as pessoas


interagem entre si. Com a invenção da internet e tecnologias que dela emergem a Web
que evoluiu para a sua versão 2.0 facilita o acesso a serviços e informação de diferentes
contextos e activamente imergir em interacções online.
Negócios e organizações necessitam de adaptar-se e evoluir dentro deste contexto,
nivelando as oportunidades de reforço e constante interacção com clientes e
utilizadores.
Balcões de informação representam uma situação específica em que organizações
necessitam de interagir em momentos desfasados com um número considerável de
indivíduos, em cada interacção procurando uma oportunidade de concretizar um
negócio ou melhorar o relacionamento com os clientes.
Um balcão de informação pode fornecer informação directamente, ou
direccionando indivíduos para membros específicos da instituição, de modo pessoal ou
remoto, para que possa lidar da melhor forma com as necessidades do cliente.

10
A diferença mais susceptível entre os balcões de informação do mundo físico e
mundo virtual é a típica inexistência de contacto pessoal entre o utilizador e instituição.
Deste modo, os utilizadores familiarizaram-se com uma interacção através da procura
por documentos ou introdução de informação em formulários de pedidos Web que
podem ser tratados com alguma flexibilidade em termos de tempo de resposta.
Mundos virtuais como o Second Life (SL) apresentam-se como um novo desafio
para balcões de informação, em que os utilizadores esperam ocupar um espaço virtual.
Assim, organizações que usem mundos virtuais enfrentam uma nova realidade: a
necessidade de constante animação do espaço virtual em que se encontram através da
constante presença de um funcionário virtual ou defraudar as expectativas fornecendo
um espaço vazio. Esta situação advém do facto que aquando da visita de um Web site o
utilizador não esperar partilhar esta experiencia, mas em um mundo virtual, a constante
sensação de presença num espaço ainda que virtual suscita consigo a noções de
compania e solidão, de espaços vazios e espaços povoados.
Soluções típicas para evitar esta situação envolvem a organização de eventos no
espaço do mundo virtual, de modo a que os utilizadores tenham motivação para visitar o
espaço regularmente, ou mesmo estabelecer áreas específicas para entretenimento.
No entanto, tais soluções não resolvem as expectativas de contacto directo com
um representante da organização. De modo a que um membro do staff esteja online no
SL, ele/ela necessita de ter o software cliente do SL a correr no seu computador,
prestando regularmente atenção ao mesmo, verificando se alguém está a tentar
estabelecer contacto. Para a maioria das organizações, o transito esperado de avatares
provavelmente não justifica a presença constante de alguém em um espaço de negócio e
balcões de informação desta forma.
Vários sistemas permitem aos utilizadores estar presentes no SL sem a
componente 3D, mantendo-se acessível através de mensagens instantâneas, mas isto
expõe os membros internos da organização do balcão de informação aos utilizadores
externos: filas podem formar-se; ou os visitantes serem confrontados com a escolha
entre um número de membros disponíveis para atendimento, ao invés de simplesmente
se aproximarem de um avatar genérico do balcão de informação.
O sistema apresentado aqui permite aos membros do staff interagir com avatares
do mundo virtual sem necessitarem de usar o software cliente do mundo virtual ou
serviços de telefonia móvel SMS. Os mesmos ficam livres de executar outras tarefas
enquanto não existe comunicação no mundo virtual, e poder estabelecer uma conversa

11
simultânea com mais de um utilizador ao mesmo tempo. Também, se demasiadas
conversações estiverem a ser iniciadas, novas podem ser automaticamente distribuídas a
outros membros do staff. Tudo isto ocorre de uma forma transparente aos utilizadores
do mundo virtual; através do seu ponto de vista, eles estão em comunicação directa com
o avatar representativo de um membro do staff da organização.

1.2. Objectivos

Tendo em vista o preenchimento de uma necessidade emergente da presença de


empresas e negócios nos mundos virtuais este produto propõe-se a resolver uma série de
desafios que estas novas tecnologias e meios de comunicação apresentam numa
perspectiva empresarial.
O primeiro passo do sistema é interligar, via mensagens instantâneas, o mundo
virtual SL com os principais messengers existentes no mercando nacional e
internacional. É necessário estabelecer uma comunicação bilateral entre visitantes do
mundo virtual com funcionários responsáveis pela gestão deste mundo.
Para estabelecer este canal de comunicação recorre-se a um protocolo de
comunicação robusto, acessível e capaz de comunicar com os principais serviços de
Messenger, comunicar com MSN/Windows Live Messenger, Yahoo e ICQ/AIM.
Do modo a introduzir uma ainda maior flexibilidade ao sistema será aplicada
alguma portabilidade/mobilidade integrando um sistema de mensagens instantâneas
(SMS) que permite uma interacção com o utilizador empresarial a partir de qualquer
ponto do globo com acesso à rede de telecomunicações móvel.
Com base nestes pontos será possível obter um produto capaz de pegar nos
principais princípios de serviço de Help Desk aplicando-os no mundo virtual,
introduzindo uma flexibilidade de utilização tanto por parte do prestador de serviço que
terá ao seu dispor uma variedade de produtos para a comunicação com o cliente que de
um modo natural aos mundos virtuais poderá estabelecer uma comunicação simples.

12
1.3. Organização da dissertação

O restante texto deste documento encontra-se organizado da forma que é descrita


de seguida.
O capitulo 2 apresenta o conceito de mundo virtual, quais se destacam actualmente
e suas características, focando-se no SL, utilizado no caso de estudo e abordando os
modos de comunicação do mesmo com o mundo exterior.
No capítulo 3 são descritos os programas mais utilizados de mensagens
instantâneas e seus protocolos utilizados assim como sistemas SMS existentes no SL
realizando levantamento das tecnologias possíveis de ser utilizadas.
No capítulo 4 apresentam-se exemplos de sistemas de informação presentes no SL
analisando as suas vantagens e desvantagens mostrando claramente o salto que este
novo sistema introduz no conceito de atendimento ao cliente virtual.
No capítulo 5 mostra a concepção e implementação do estudo realizado, é
realizada uma análise profunda do sistema implementado em todos os seus blocos.
Os testes, resultados e trabalho futuro fazem parte do capítulo 6 onde é permitido
concluir onde se posiciona esta aplicação nos mundos virtuais.

13
2. Mundos Virtuais

Actualmente os mundos virtuais vivem um aumento de utilização sem paralelo,


com milhões de utilizadores em todo o mundo [1], e centenas de produtos disponíveis
[2], incluindo mundos de gráficos tridimensionais imersivos como o anteriormente
mencionado SL e mundos de jogos virtuais como o World of Warcraft [3].
Vai ser dada uma introspectiva do que são os mundos virtuais, o que torna
mundos como o SL especiais e quais os requisitos que os tornam apelativo aos
utilizadores, empresas e alimenta a sua necessidade da criação de um sistema de
informação.
É feita uma análise do potencial do SL para o tipo de sistema que proposto
mostrando a sua flexibilidade em termos de desenvolvimentos com um vasto número de
ferramentas disponíveis ao criador.

2.1. Potencialidades dos mundos virtuais

Os espaços dos mundos virtuais têm sido explorados por organizações, para usos
diversos como contactar clientes potenciais, divulgação de marcas, comércio virtual e
ferramentas de colaboração para empregados ou parceiros comerciais [4;5].
Tecnologias de mundos virtuais podem ser utilizadas para criar mundos virtuais
customizados de raiz dando uso a várias ferramentas [6;7], uma aproximação que
organizações perseguem para aplicações de efeitos especiais para espaços privados para
os seus empregados, mas serviços e aplicações também podem ser construídos sobre
mundos virtuais existentes, sendo através de acordos de desenvolvimento entre
empresas detentoras de mundos virtuais ou através da utilização de componentes e
bibliotecas para conectar a sistemas externos com esses mundos virtuais [8]. Esta última
aproximação nivela o suporte tecnológico para assuntos como a concorrência e largura
de banda de servidor, assim como permite serviços e aplicações ao alcance de
utilizadores já presentes nesse mundo virtual.

14
Esta aproximação é mais adequada onde a disseminação abrangente é o objectivo
em que existirá um controlo limitado sobre o contexto técnico de utilizador de mundo
virtual, e em que, as actividades pretendem nivelar a destreza dos utilizadores actuais.
O desenvolvimento para mundos virtuais existentes emprega a combinação de
elementos do mundo virtual (software executado dentro dos servidores dos mundos
virtuais), elementos do lado do cliente (software executado no computador dos
utilizadores) e elementos exo-world, software executado em outros servidores (Web
services [9;10].

2.2. SL

De entre as actuais plataformas de mundos virtuais, o SL tem tido a maior


presença nos meios de comunicação, uso empresarial e pesquisa. As empresas e marcas
cada vez mais investem neste mundo virtual (Economist, 2006), criando espaços, lojas e
campanhas de publicidade, embora geralmente não tenham ainda um objectivo preciso a
grande maioria visa apenas afirma a sua participação neste novo desenvolvimento
tecnológico e adquirir know-how quanto a formas de o potenciar.
Ao contrário da maioria dos mundos virtuais, o SL é apresenta uma liberdade de
utilização: utilizadores podem criar os seus próprios conteúdos, protegidos por termos
legais de utilização que lhes permitem deter direitos legais de propriedade do seu
conteúdo. Isto inclui programas que permitem interacção entre utilizadores e objectos
assim como comunicação com servidores externos na internet.
Não é o mundo virtual com o maior número de utilizadores mas ainda assim
apresenta notáveis estatísticas em termos do número médio de utilizadores (Agosto
2008: 46.817 utilizadores/hora) e número de terras virtuais disponíveis (Agosto 2008:
1834 km2) [11].
O SL permite a convergência de meios e ferramentas de comunicação permitindo
assim a interacção activa com este mundo a partir do exterior. O ambiente SL é
constituído por terrenos virtuais denominados sims, podendo conter avatares ou
objectos.
Estes últimos, por sua vez, podem conter variados recursos, incluindo outros
objectos. Entre esses recursos contam-se os scripts, código de programas que se
executam inteiramente dentro do mundo virtual.

15
Por estas razões escolhemos o SL como a plataforma de implementação do
protótipo aqui descrito. Em parte devido ao impacto mediático e por outro lado pelas
características aqui descritas e outras, de modo incremental organizações têm estado a
criar presenças institucionais ou activas no SL (BBC, Cisco, Dell, IBM, Mazda,
Reuters, Universal, Wells Fargo [12], mesmo que em muitos casos o objecto não seja
mais que divulgação da marca.

2.3. Comunicação entre SL e o mundo exterior

Existem duas opções para o estabelecimento de um canal de comunicação entre o


SL e o mundo exterior: utilizando o software de cliente SL para criar objectos
programados activando-os; ou desenvolver programas executados em computadores
externos que acedem ao mundo SL como um sistema cliente automático alternativo.
Utilizando o software de cliente SL é possível comunicar através de E-Mail,
XML-RPC e pedidos http.
Para o desenvolvimento de programas de ligação de clientes alternativo é utilizado
o Libopenmv.

2.4. Formas de comunicação com o SL

O ambiente SL é constituído por terrenos virtuais organizados em regiões e


parcelas, podendo albergar avatares e objectos. Os últimos contêm diferentes recursos,
incluindo scripts que são executados por software nos servidores SL (não o software
cliente).
Os scripts são escritos em Linden Scripting Language (LSL) [13] e entre as suas
capacidades está a comunicação com sistemas externos ao SL.
Scripts podem comunicar de três diferentes formas [14]: enviando e recebendo
mails, respondendo a chamadas externas por meio do mecanismo de procedimento de
chamada externa (XML-RPC), e troca de mensagens utilizando Hyper Text Transfer
Protocol (http). As características destes métodos de comunicação são sintetizadas na
tabela I.

16
Quem inicia a Tamanho
Método Atraso
comunicação Mensagem
Ambos
E-Mail (script/sistema 4096 Caracteres 20 segundos
externo)

XML-RPC Sistema Externo 254 Caracteres 3 segundos

Pedidos HTTP Script LSL 2048 Caracteres Nenhum

Tabela I – Métodos de comunicação presentes no SL

2.4.1. Comunicação por mail

Quando um mail é enviado através de um script LSL [15] (Figura 1) a


identificação do objecto que enviou o mail é incluída no endereço origem do mesmo
(ObjectId@sl.secondlife.com). De forma a responder (ou iniciar uma comunicação mais
tarde), o sistema externo apenas precisa de usar este endereço de mail. O serviço de
mail nos servidores SL também inclui no corpo da mensagem informação como o nome
do objecto que contém o script que gerou o mail assim como a sua localização no
mundo SL.

Figura 1 – Comunicação por e-mail no SL

Os servidores SL limitam a frequência com que o envio de mails para o exterior


pode ser efectuado, devido a questões de largura de banda e para evitar ser usado para
fontes de spam. Consequentemente, para situações em que o atraso ou envio massivo

17
não é necessário este método é adequado, no entanto pelas razões o seu uso para
aplicações interactivas de elevado uso não é adequado.

2.4.2. XML-RPC

O segundo método, XML-RPC é fornecido através de um servidor dedicado


dentro da rede de servidores do mundo SL (Figura 2). Um sistema externo pode utiliza-
lo para invocar um script no SL, usando o protocolo http e mensagens codificadas XML
[16], desde que o script tenha um canal aberto previamente para a recepção da
mensagem.
São várias as desvantagens do uso do XML-RPC no SL. Além do atraso e o
reduzido tamanho das mensagens apresentado na tabela 1, existe um problema de
escalabilidade devido a existência de apenas um servidor no mundo SL para processar
todas as comunicações deste género. Ainda, este servidor apenas consegue processar
uma mensagem por canal de destino, o que significa que sistemas externos têm que
serializar a mensagem antes de a enviar, esperando pela resposta de uma mensagem
antes de enviar a seguinte. Finalmente, um canal aberto XML-RPC pode ser eliminado
em várias situações, tal como actualizações de software no servidor ou reset de servidor
[17]. Isto tudo torna o XML-RPC no SL inadequado para aplicações interactivas de
elevada carga.

Figura 2 – Comunicação por XML-RPC no SL

18
2.4.3. Pedidos HTTP

O terceiro método, comunicação utilizando a troca de mensagens http é aplicada


invocando funções de script LSL para fazer um pedido HTPP e processar respostas http
(Figura 3).
Isto significa que a comunicação por este método deve sempre ser iniciada pelo
script (ainda que planos para aceitar pedidos do exterior foram anunciados pela Linden
Lab, a empresa que desenvolveu e gere o SL). Pedidos HTTP não são afectados pelos
servidores SL em termos de velocidade de comunicação, no entanto, eles estão
limitados a um máximo de 25 pedidos por cada 20 segundos, suportando um ritmo de 1
por segundo ou um 25 seguidos [18].

Figura 3 – Comunicação por pedidos HTTP no SL

2.4.4. Comunicação utilizando um software alternativo de


cliente

O código fonte do software cliente SL é aberto, assim como o protocolo entre os


clientes SL e o servidor. Isto permite aos programadores criar clientes alterados para
propósitos específicos: por exemplo, um sistema de software pode introduzir um cliente
alterado para aceder ao SL como se trata-se de um utilizador humano e realizar qualquer
acção que se encontra disponível para qualquer utilizador. A opção mais utilizada nesta
vertente é introduzir uma biblioteca de software de desenvolvimento em código aberto.
Libopenmv (anteriormente libsecondlife), que oferece a maioria das funcionalidades
presentes no cliente.
Obviamente, comunicações que usam software dependente do libopenmv devem
ser iniciadas por sistemas exteriores ao SL, pois não existe nenhum método interno ao
SL para forçar o login de um avatar.

19
Uma desvantagem do uso do libopenmv relativamente aos métodos que utilizam
scripts LSL é que eventualmente a biblioteca necessita de actualizações. O protocolo de
comunicação entre os clientes SL e os servidores é actualizado regularmente, e por
vezes estas actualizações impõem uma também actualização do software de cliente. Isto
significa que aplicações que usem versões anteriores do libopenmv devem ser
reinstaladas ou reconstruídas usando uma versão actualizada.

20
3. Serviços de mensagens
instantâneas e sms

Os serviços de mensagens instantâneas fazem parte da nossa realidade actual, seja


por uma utilização meramente direccionada ao lazer ou por necessidade de
comunicação empresarial é inegável ignorar o papel que desempenha na nossa
sociedade.
Vão ser analisados os sistemas de Messenger utilizados na internet, assim como
aqueles criados para a utilização com o SL. Os protocolos de comunicação destes
sistemas são analisados de forma a perceber aquele que corresponde da melhor forma à
implementação requerida.
Existem diversos sistemas de SMS emergentes no SL que vão também ser alvo de
análise numa perspectiva de perceber o impacto desta forma de comunicação como
alternativa ao sistema de mensagens instantâneas.

3.1. Sistemas IM

Os serviços de mensagens instantâneas têm vindo a ser usados intensivamente a


nível empresarial (Campbell, 2008) permitindo a profissionais ter noção da presença on-
line de contactos e comunicar instantaneamente, sem impor dedicação exclusiva à
conversação como se verifica no caso das ligações telefónicas.
Os principais serviços de mensagens instantâneas são, por ordem de maior número
de utilizadores (Figura 4), o Windows Live Messenger, que usa o protocolo MSNP
(Microsoft Notification Protocol), o Yahoo Messenger, que usa o protocolo
YMSG(Yahoo ! Messenger Protocol), e o Google Talk que usa o protocolo XMPP
(Extensible Messaging and Presence Protocol). Estes serviços e os respectivos
protocolos são descritos mais a frente.

21
Figura 4 – Penetração de mercado dos serviços IM

[29]

Também há que ter em conta outros serviços como AOL Instant Messenger (AIM)
e o Skype.
Segundo a comScore, em Fevereiro de 2006 o AIM disputava uma fatia de 27% a
37% do mercado norte-americano, sendo OSCAR (Open System for Communication in
Realtime) o protocolo usado.
Segundo o mesmo estudo o Skype é já usado por 14 por cento dos utilizadores a
nível Mundial, sendo que este usa o Skype Protocol. A nível nacional destaca-se o Sapo
Messenger, cujo protocolo usado é o XMPP. Existem ainda outros serviços menos
usados, que usam vários dos protocolos supra referidos. É o caso do Trillian, do Pidgin,
do Adium e do Miranda. Mais não são do que programas que permitem a um utilizador
aceder as diferentes contas de mensagens instantâneas e às respectivas redes (rede do
Live Messenger, do Yahoo Messenger, etc.), permitindo funcionar com os vários
protocolos, conforme a rede pretendida. Existem ainda outros serviços semelhantes a
estes, mas baseados em páginas Web, não em aplicações de computador pessoal. Por
exemplo, os serviços Meebo e eBuddy.

22
3.1.1. Windows Live Messenger

O Windows Live Messenger surgiu por decisão da Microsoft em integrar os


serviços de mensagens instantâneas que já possuía, vulgo MSN, no sistema operativo
Windows. Trata-se portanto da versão actual do conhecido MSN Messenger, mas já
integrada nos serviços on-line da Microsoft – Windows Live (2005). Além do programa
para computadores pessoais, a Microsoft disponibiliza também uma versão online em
interface Web, chamada MSN Web Messenger, que permite utilizar os serviços de
conversação on-line em tempo real usando apenas um navegador da Web.

3.1.2. Yahoo! Messenger

Tal como no caso do Windows Live Messenger, referido acima, a Yahoo!


disponibiliza duas formas de aceder ao seu serviço de mensagens instantâneas: uma
aplicação para computadores pessoais (Yahoo! Messenger) e uma versão on-line em
interface Web, o Yahoo! Messenger for the Web. Segundo a própria Microsoft (2005) é
possível a interoperabilidade entre os serviços Windows Live Messenger e o Yahoo!
Messenger. Desta forma, embora as redes e as aplicações sejam distintas, os utilizadores
de ambos os serviços podem comunicar entre si, além de utilizar outras funcionalidades
associadas aos serviços.

3.1.3. AOL Instant Messenger

Aplicação de mensagens instantâneas para computadores pessoais, usando um


protocolo específico, designado OSCAR. Embora a nível mundial a sua presença não
seja muito significativa em relação ao número de utilizadores, no mercado norte-
americano tem uma presença significativa, competindo com o Windows Live
Messenger ou Yahoo! Messenger [29].

23
3.1.4. Skype

O Skype, embora geralmente visto como programa para comunicação vocal sobre
a Internet, permite também a troca de mensagens instantâneas, através de um protocolo
proprietário.

3.1.5. Sapo Messenger

A nível nacional tem-se vindo a destacar () o Sapo Messenger, com cerca de


650000 utilizadores (2007) segundo fonte oficial da Sapo. Trata-se de uma aplicação
para computadores pessoais baseada no protocolo XMPP, à semelhança do Google
Talk. Ressalve-se que, em virtude de utilizar o protocolo XMPP, a aplicação Sapo
Messenger pode comunicar com os serviços Windows Live Messenger e Yahoo!
Messenger (de momento indisponível a comunicação com o Yahoo) aproveitando
funcionalidades de inter-operação do XMPP para este efeito, como se descreve mais à
frente. Apresenta contudo uma funcionalidade diferenciadora: a possibilidade de envio
de SMS para qualquer rede nacional.

3.1.6. Protocolos de mensagens instantâneas

Vão ser analisados os protocolos de comunicação MSNP – Microsoft Notification


Protocol, YMSG – Yahoo! Messenger Protocol, XMPP – Extensible Messaging and
Presence Protocol, OSCAR - Open System for Communication in Realtime, Skype
Protocol.

3.1.7. MSNP – Microsoft Notification Protocol

Conforme se referiu anteriormente, o Windows Live Messenger usa o protocolo


MSNP. Este funciona sobre TCP (e, opcionalmente, sobre HTTP, se for necessário
passar por proxies ou firewalls) para se conectar ao serviço .NET Messenger Service,
disponibilizado na porta 1863 em messenger.hotmail.com. Está actualmente na versão
15, que é a usada pelo Windows Live Messenger. Relativamente às especificações, estas

24
só são públicas até à versão 2, conhecida por MSNP2. A Microsoft não divulgou
publicamente as versões mais recentes – incluindo a actual 15. Como os actuais
servidores da Microsoft para este serviço só aceitam conexões segundo versões iguais
ou superiores à versão 8 do MSNP, não é possível utilizar qualquer especificação
garantida para esta comunicação, sem recurso a informações proprietárias. Contudo, a
sintaxe e funcionamento das versões actuais do MSNP foram alvo de retro-engenharia,
pelo que é possível encontrar em locais de acesso público informações suficientes para
conseguir utilizar o serviço, embora tal levante questões de ordem jurídica. Não é
contudo necessário actualmente conhecer a especificação MSNP para poder, legalmente
utilizar o serviço Windows Live Messenger. A Microsoft disponibiliza um pacote de
desenvolvimento (SDK, Software Development Kit) que permite criar programas que,
de forma automática, acedam ao serviço. Este integra as aplicações Windows Live
Agents. As aplicações Windows Live Agents funcionam da seguinte forma: após
programadas, acrescentam-se à aplicação Windows Live Messenger, como se fossem
um contacto normal (uma pessoa). O utilizador “conversa” com estes Windows Live
Agents como se fossem pessoas, mas na verdade são programas que, habitualmente,
automatizam alguma tarefa. Por exemplo, um serviço automático de atendimento ao
consumidor, uma interface para efectuar pesquisas em bases de dados, etc.
Como exemplo desta funcionalidade dos Windows Live Agents, apresenta-se na
Figura 5 o agente da Encarta (a enciclopédia multimédia digital da Microsoft).
No entanto a aplicação que permite desenvolver bots ainda se encontra em fase
beta, sendo restrito o acesso público. Ainda não está prevista nenhuma data oficial para
o lançamento final deste produto, sendo no entanto é anunciado que mediante uma
requisição será possível aceder à aplicação, após análise prévia da proposta por parte da
Microsoft.

25
Figura 5 – Windows Live Messenger da Encarta

3.1.8. YMSG – Yahoo! Messenger Protocol

Tal como acontece com o MSNP, o YMSG não é do domínio público, sendo um
protocolo proprietário da Yahoo!. No entanto a Yahoo!, tal como a Microsoft, permite a
construção de aplicações para o seu serviço de mensagens instantâneas. Isto é
conseguido através da utilização do Yahoo! Messenger Plug-in SDK. Esta ferramenta
consiste numa API em JavaScript e C++ que permite adicionar vários recursos sendo
um deles a possibilidade de criar uma aplicação que interaja com contactos do Yahoo,
bastando para isso a adição deste recurso por parte dos utilizadores.

3.1.9. XMPP – Extensible Messaging and Presence Protocol

O XMPP é um protocolo de mensagens instantâneas de código-fonte aberto, não


proprietário e seguro, que recorre a XML, cuja especificação é mantida e regulada pela
XMPP Standards Foundation. Por ser tecnologia de código-fonte aberto e não
proprietária, muitas aplicações distintas têm sido desenvolvidas que o utilizam para
aceder a serviços de mensagens instantâneas, como os casos já referidos do Google Talk
26
e do Sapo Messenger. Quando o utilizador se liga a um servidor, abre-se um fluxo de
dados monodireccional do utilizador para o servidor, e o servidor responde igualmente
através de um fluxo de dados monodireccional do servidor para o utilizador. Em ambis
os casos são utilizados formatos de dados XML. Um aspecto a destacar é que o
protocolo XMPP permite que os servidores facultem aos utilizadores não apenas a
comunicação entre si, mas também sejam portas de ligação (gateways) para outros
servidores XMPP. Desta forma, um utilizador final ligado a um servidor pode
comunicar indistintamente com um utilizador final ligado a outro servidor. O protocolo
permite ainda que os servidores sirvam de portas de ligação para redes que usam outros
protocolos, como os protocolos proprietários já referidos anteriormente, além de
servidores SMS ou de e-mail. Isto é conseguido recorrendo ao uso do Transport ou
Gateway, que é um componente externo ao serviço XMPP. Estas funcionalidades
permitem que uma instituição possa instalar um servidor XMPP privado, para evitar que
as comunicações internas saiam da rede institucional, mas sem perder a faculdade de
comunicação com utilizadores ligados a servidores externos. Qualquer servidor XMPP
pode ser mantido isolado da rede global, através de uma camada de segurança SASL
(Simple Authentication and Security Layer) e do protocolo de encriptação TLS
(Transport Layer Security), integrados no protocolo XMPP. O protocolo XMPP está
assim no cerne de uma rede mundial descentralizada de serviços de mensagens
instantâneas, na qual não existe uma entidade super visionadora de todas as mensagens,
como sucede com os protocolos proprietários, permitindo assim, a criação de soluções
robustas e quase em tempo real de mensagens instantâneas.

3.1.10. OSCAR - Open System for Communication in


Realtime

A empresa AOL permite aos programadores interagir com o protocolo de que é


proprietária. Para o efeito, disponibilizou documentação sobre o protocolo bem como
API (Application Programming Interfaces). Um dos exemplos mais notórios surgiu por
parte da Google, através do uso de uma dessas API. Assim, qualquer utilizador de uma
conta Google pode falar com os respectivos contactos AIM, funcionalidade conseguida
através do Google Chat.

27
3.1.11. Skype Protocol

O protocolo Skype encontra-se neste momento na versão 8. Tal como acontece


com a empresa AOL, a Skype possibilita aos programadores o desenvolvimento de
software, hardware, e serviços que funcionem com Skype, disponibilizando toda a
documentação necessária através de um site de apoio ao programador.

28
3.2. Sistemas IM e o SL

Vários sistemas/produtos existem para a comunicação entre o SL e sistemas


externos de mensagens instantâneas. Possivelmente o mais óbvio é o SLim, um cliente
de propósito especial que acede a rede SL sem a necessidade de um motor 3D e permite
aos utilizadores enviar e receber mensagens instantâneas a outros utilizadores do mundo
virtual [19].

Uma aplicação similar é o SLeek, que permite aos utilizadores executar tarefas
simples além da troca de mensagens como ver o seu inventário [20]. Existem também
alternativas similares mas baseadas em serviços Web, como o ajaxlife.net e o
movablelife.net. Os utilizadores estão para todos os efeitos online enquanto usam o
SLim, SLeek ou as alternativas Web mencionadas e não existe conexão entre redes de
IM não SL, assim os utilizadores necessitam de outro software cliente IM nas suas
máquinas.

Figura 6 - SLeek

Essa conexão é oferecida pelo GnomiChat (anteriormente SL Messenger). Este


produto, além de se conectar ao SL como um cliente SL de utilização especial, permite
ao utilizador importar contactos de contactos de várias redes IM e assim realizar
conversações nessas mesmas aplicações de IM [21].
29
Figura 7 – GnomiChat

Existe também o SL Messenger, que utiliza o mesmo conceito anterior, sendo


apenas vocacionado para um messenger comum onde apenas interage com a sua lista de
contactos de amigos que possui no SL.

Figura 8 – SL Messenger

30
O problema do uso destes sistemas para balcões de informação, no entanto, é que os
mesmos mostram a identidade dos seus utilizadores aos visitantes. Apesar disto, se uma
organização necessita de manter um canal comum entre visitantes para permitir a vários
membros do seu staff o acesso comum à palavra-chave do avatar da organização,
conectando-se e desconectando-se de modo a passar o serviço de um membro do staff
para outro. Na eventualidade de várias pessoas de aproximarem do balcão de
informação ao mesmo tempo, elas terão que esperar pela sua vez, porque para todos os
efeitos existe apenas uma pessoa (avatar) encarregada de todas as comunicações.

A IBM fornece um kit de desenvolvimento de software que emprega bots para


integrar a comunicação entre o SL e o sistema Lotus Sametime. Isto permite criar
objectos SL com scripts para capturar conversações enviando-as para utilizadores do
Lotus Sametime [22]. Esta tecnologia é flexível, pois pode ser utilizada para
desenvolver um sistema similar ao que se propõe aqui.

3.3. Sistemas de comunicação SMS no SL

Uma opção de comunicação de baixa prioridade para um sistema de balcão de


informação aqui é quando não existem funcionários disponíveis para atender os
visitantes através de clientes de IM o sistema depende de mensagens SMS transmitidas
através de dispositivos móveis.

Existem vários sistemas SMS emergentes no SL, desenvolvidos tanto por empresas
de telecomunicações como indivíduos. Estes sistemas tipicamente empregam um
objecto SL programado que um avatar pode utilizar como um “Telefone SL” para
enviar e receber mensagens SMS ou mesmo estabelecer chamadas de voz. Os principais
sistemas são Vodafone InsideOut, Cabines telefónicas móveis da Swisscom, Serviço de
SMS/MMS da telefónica e o Switchboard.

Com o Vodafone insideOut (Figura 9) os utilizadores podem enviar mensagens


entre eles que são encaminhadas pelo serviço através do sistema de mensagens do SL se
ambos os utilizadores se encontrarem conectados no SL, e por SMS caso umas das
partes não esteja conectada. Também permite aos utilizadores SL efectuar chamadas
(por voz) para chamar utilizadores InsideOut offline, em efeito permitindo aos avatares
realizar chamadas telefónicas para telemóveis físicos [23] artigo. Não é possível
comunicar com utilizadores que não estejam registados no InsideOut nem a qualquer
utilizador iniciar uma conversação através de telemóvel.

31
1 – Luz de aviso
2 – Minimizar
3 – Ajuda
4 – Ferramentas
5 – Página principal
6 – Histórico
7 – Contactos
8 – Estado de rede

Figura 9 – Vodafone InsideOut

O Switchboard é um sistema de SMS construído sbore a plataforma de e-learning


SLoodle que também permite aos avatares SL enviar mensagens SMS para telemóveis.
Utilizadores de telemóveis podem responder a estas mensagens sendo essa resposta
enviada para o SL [24] moderada por um interface Web. Não existe a restrição do
utilizador não poder iniciar a conversação. Uma aproximação diferente foi tomada pela
Converse Technology, que desenvolveu o cliente SL capaz de ser executado em
telemóveis, integrando funcionalidades SMS e outras capacidades [25].

Finalmente a empresa espanhola telefónica anunciou no Congresso de


comunicações móveis de 2008 que iria disponibilizar um serviço capaz de enviar e
receber SMS e MMS de e para o SL [26].

Estes serviços ainda não são suficientemente modulares para suportar um sistema de
informação genérico transferindo mensagens de texto entre utilizadores SL e
utilizadores de telemóveis.

32
4. Sistemas de informação no SL

Algumas organizações utilizam balcões de informação no SL. Um exemplo


apresentado na Figura 10 é o e-Justice Centre, uma parceria entre o ministério de justiça
português e duas universidades, incluindo um colégio de advocacia, fornecendo
mediação de conflitos e soluções para utilizadores que se identificam apenas com os
seus avatares [27].

Existem dois métodos de interacção disponíveis. Dentro do horário anunciado, um


membro da equipa está presente no SL, esperando que pessoas apareçam para pedir a
mediação de um conflito ou um simples pedido de informação geral. A outra alternativa
é criar um documento de texto (no SL designado de “notecard”) e inseri-lo numa “drop
box”, que será entregue para processamento.

Figura 10 – e-Justice Center

Obviamente, ter um membro do staff on-line a espera de potenciais utilizadores não


é uma eficiente alocação de recursos de uma organização na obstante da existência de
um tráfego de utilizadores que assim o justifique. A alternativa da caixa de correio,
possivelmente um dos métodos mais comuns utilizados por organizações no SL para
contacto com utilizadores falhando na eficácia que tem o contacto directa e não
contribui para uma experiencia interactiva no mundo virtual.

33
Outra aproximação é deixar os visitantes ter conhecimento de membros da empresa
se encontram online noutra parte do SL. Este método obedece a um sentido mais forte
de actividades em curso, e os visitantes tornam-se conscientes que os membros da
organização se encontram online (assim evitando a sensação de duvida ou se a
organização se encontra comprometida à sua presença no SL). Um sistema do género é
utilizado por Anshe Chung Studios na Dreamland Central Hub (Figura 11). Esta
localização [28] suporta os escritórios virtuais desta empresa. Pessoas interessadas em
comprar ou alugar terrenos deslocam-se a esta localização, onde uma serie de bolas
representativas de cada um dos membros da organização: bolas pretas representam que
o membro específico se encontra offline, quando as mesmas se parecem com a Terra
representam um membro que se encontra online. As bolas também permitem aos
visitantes enviar uma mensagem ao membro da organização correspondente.

Figura 11 – Balcão de informação no Dreamland Central Hub

Um problema desta aproximação é que não fornece um único ponto de contacto para
os novos visitantes. É adequado para o espaço desta empresa pois cada visitante
precisará possivelmente de um acompanhamento personalizado de longo prazo e todos
os membros da organização fornecem o mesmo serviço, mas possivelmente não para a
maioria das organizações.

Um dos problemas com esta abordagem é a necessidade de existir pelo menos um


utilizador online. Enquanto isso é provável para os Anshe Chung Studios, pois o SL é

34
uma área de principal actividade, não é o caso para a maioria das organizações e
certamente não é o caso de alguém pretende criar vários balcões de informação em
vários mundos virtuais.

35
5. Concepção e utilização do
estudo realizado

Vão ser analisados as orientações globais que serviram de molde para o protótipo
realizado, os métodos desenvolvidos e uma visão geral do sistema, sua arquitectura,
armazenamento de informação e para finalizar a explicação detalhada do funcionamento
do processo em quatro partes.

5.1. Orientações globais

O principal objectivo do sistema desenvolvido foi interligar, via mensagens


instantâneas, o mundo virtual Second Life com os principais messengers existentes no
mercado internacional e nacional. Assim a solução mais robusta foi recorrer ao
protocolo XMPP, uma vez que este, pralém de comunicar com qualquer serviço público
XMPP, permitia, através dos transportes, comunicar com MSN/Windows Live, Yahoo e
ICQ/AIM. Para possibilitar a portabilidade do sistema desenvolvido recorreu-se ao uso
de SMS, reaproveitando algum do trabalho desenvolvido para o projecto de interligação
entre sistemas SMS e o sistema de mensagens instantâneas do Second Life. Desta forma
foi possível construir um princípio de serviço de Help Desk que se acredita servir o
propósito definido no início deste projecto, mas tem que se ter sempre em conta que se
trata ainda de um modelo tecnológico, no qual existem algumas limitações que se
devem ter em consideração, sendo descritas posteriormente.

5.2. Métodos desenvolvidos

Para recolher as mensagens instantâneas oriundas do SL recorreu-se a libsecondlife


(C#), uma vez que esta biblioteca permitia aceder ao SL sem ser preciso recorrer ao
cliente oficial. No caso das mensagens oriundas dos messengers recorreu-se a biblioteca
Smack API.

Devido a se ter utilizado 2 linguagens diferentes, C# e Java, teve que se recorrer a


uma base de dados para armazenagem e posterior entrega das mensagens instantâneas,
de forma a possibilitar uma bi-direccionalidade destas.

Para que um determinado administrador de uma empresa pudesse adicionar os


contactos de messaging dos seus respectivos funcionários, foi criado o site, no qual

36
também é responsável por possibilitar o registo e controlo (login/logout) do bot Second
Life que irá atender os clientes in-world.

5.3. Aspectos gerais

O diagrama da Figura 12 apresenta uma visão geral do sistema. O servidor de gestão


integra as várias tecnologias implementadas e serve de host do website de gestão do
administrador, além de incluir programas que controlam os modems GSM, o Second
Life (SL) e Instant Message (IM), e a lógica do sistema.

O sistema global é constituído por quatro partes: o site de registo e gestão, o bot SL,
o bot IM e o software de comunicação com os modems.

Figura 12 – Diagrama do funcionamento geral

37
O controlo do sistema está a cargo do administrador de uma determinada empresa
(cliente do serviço) que terá que se registar no website criado de forma a criar uma lista
de funcionários para o sistema. Para tal basta introduzir o respectivo contacto IM e/ou o
número de telemóvel de cada um, assim como quantos clientes poderá um determinado
funcionário atender em simultâneo. Esta informação será adicionada numa base de
dados, usada pelo bot IM para enviar pedidos de amizade para as contas de IM dos
funcionários especificados.

No corrente protótipo os funcionários podem utilizar este sistema com o Windows


Live Messenger, Yahoo! Messenger, AIM, ICQ e qualquer software de cliente IM que
use o protocolo XMPP, como o Google Talk e Sapo Messenger.

Após completar estes passos, o administrador regista um avatar SL com o servidor


de gestão, de modo a ser utilizado como o bot SL do sistema de informação. O
administrador poderá decidir quando deverá ser realizado o login do avatar.

Quando o bot se liga ao SL, ele recolhe todo o chat a partir dos utilizadores SL
próximos dele, como todas as mensagens IM enviadas directamente para ele,
armazenando-as na base de dados do servidor de gestão. Este passo de armazenamento
intermédio entre o bot SL e o bot IM é feito de modo a simplificar a gestão e supervisão
do fluxo de informação, e consequentemente obter um código de bot mais simples e
leve. Também permite o reencaminhamento de conversações (no caso de um
funcionário ficar off-line a meio de uma conversação).

Como o bot IM, mostrado como um único contacto no Messenger do funcionário


(ou o número de telemóvel do modem, em mensagens recebidas pelos funcionários),
será usado como gateway para múltiplas conversações, o servidor de gestão cria sessões
de conversação quando um visitante se dirige ao bot SL. As sessões estão definidas
usando parâmetros como o estado online e prioridade dos funcionários, e podem ser de
dois diferentes tipos, dependendo do tipo de comunicação utilizado: sessão IM ou Short
Message Service (SMS).

5.4. Estratégias da arquitectura

Diferentes desafios foram colocados de modo a ser possível estabelecer uma


arquitectura de sistema que permitisse o armazenamento e distribuição de informação.

O armazenamento de variadas informações como administradores de empresas,


funcionários e bots necessitou de uma estrutura organizada para lidar com estes dados.

38
5.4.1. Armazenamento de informação

As informações armazenadas incluem o registo de:

- Administradores de empresas;

- Funcionários (e respectivas definições);

- Bots;

Todas estas informações são armazenadas numa base de dados (BD), usando o
MySQL (programa para sistema de gerenciamento de base de dados) como demonstra
Figura 13.

Figura 13 – Diagrama do armazenamento de informação

Todas as acções são controladas por um administrador de uma determinada


empresa, que após se registar poderá adicionar e controlar informações dos funcionários

39
e de um ou mais bots adicionados por ele estando cada uma destas acções relacionadas
com o armazenamento de informações à BD.

5.5. Interligação tecnológica

Devido à existência de diferentes tecnologias implementadas para o estabelecimento de


comunicação entre avatares no SL e para a comunicação entre contas de Messenger foi
necessário estabelecer uma ponte de comunicação entre ambos.

Para a comunicação no SL a utilização do projecto libsecondlife e suas bibliotecas


torna incontornável a utilização da linguagem de programação C# e por outro lado a
comunicação entre messengers utilizando a biblioteca Smack API tornou indispensável
o uso de Java como linguagem de programação.

A solução adoptada para resolver este problema foi a utilização da base de dados
mySQL que faz um armazenamento intermédio da informação para posterior
distribuição por parte de ambos os sistemas. Assim as funções principais de cada um
dos módulos de comunicação são a colocação de mensagens recebidas no seu meio na
BD e a procura temporizada na BD de mensagens provenientes do módulo oposto como
é demonstrado na Figura 14.

Figura 14 – Interacção com a base de dados

40
5.6. Arquitectura do sistema

A arquitectura do sistema é dividida em quatro partes principais:

- O BotSecondlife permite a interacção com o SL, efectua o login do avatar, recebe


e envia mensagens dos visitantes e controla as sessões de conversação

- A classe ChatClient estabelece ligação aos vários serviços de IM conectando os vários


bot correspondentes para cada um deles e permitindo a troca de mensagens entre vários
contactos de IM.

- Os módulos GSM executam o envio e recepção de SMS.

- O site está responsável pelo registo do administrador e utilizadores, controlo do


sistema e armazenamento de toda a informação, desde mensagens, sessões a estado de
conexão do bot SL

41
5.6.1. BotSecondLife

Neste ponto é explicado o funcionamento da classe BotSecondLife responsável pela


interacção no lado do SecondLife com o cliente.

A Figura 15 mostra o funcionamento detalhado desta classe.

Figura 15 – BotSecondLife (funcionamento geral)

42
Após a inicialização do programa é feita uma pesquisa temporizada à base de dados
para procurar um bot cujo seu administrador tenha requerido o login. Caso não seja
encontrado nenhum bot habilitado para efectuar o login o programa adormece durante
dois segundos de modo a evitar pesquisas desnecessárias voltando à fase inicial.

Encontrado um bot candidato a login será tentada a conexão à GRID SL e aguardada


uma resposta em trinta segundos que caso não seja dada nesse período de tempo terá
ocorrido um timeout da ligação que leva a introdução dessa informação na base de
dados e retorno do programa à fase inicial.

Se for recebida uma resposta à tentativa de login ela será analisada para verificar se
o login foi bem ou mal sucedido. Caso o login tenha sido mal sucedido será armazenada
na base de dados a mensagem de erro obtida da GRID SL e o programa retorna à fase
inicial.

Com o login bem sucedido é então armazenada na base de dados essa informação de
modo a informar o administrador via site.

Neste momento o bot encontra-se pronto a receber mensagens de funcionários no


Messenger armazenadas na base de dados para entrega a utilizadores no SL como será
explicado no seguimento da Figura 15, sendo que, este ao mesmo tempo poderá receber
mensagens de utilizadores do SL armazenando-as na base de dados para posterior
entrega a funcionários no Messenger como será mostrado na Figura 15.

No momento em que o bot se encontra pronto para receber mensagens poderá


ocorrer uma desconexão abrupta por parte da GRID SL devido a algum problema no
servidor, sim entre outros o que levará ao armazenamento na BD do estado offline do
bot com a mensagem de desconexão recebida.

O programa neste estado irá efectuar pedidos à base de dados para procura de novas
mensagens e caso não seja encontrada nenhuma irá aguardar 500ms para efectuar uma
nova pesquisa de modo a não sobrecarregar o sistema.

Quando uma nova mensagem é encontrada é verificado se essa mensagem é para ser
transmitida por chat ou instant message no SL. Se for mensagem de chat então ela será
transmitida pelo chat global do bot, caso contrário será transmitida por instant message
até ao avatar destino. Em ambos os casos após o envio da mensagem esta será marcada
na base de dados como entregue.

Finalizado o processo de obtenção e entrega da mensagem o processo é repetido até


ser recebida uma mensagem própria que indica a intenção do administrador de executar
a desconexão do bot.

De seguida é apresentada a Figura 16 que é a continuação do primeiro e mostra


como são tratadas as mensagens recebidas pelo bot no SL.

43
Figura 16 – Tratament das mensagens SL

Quando uma mensagem é recebida é necessário verificar de que tipo de mensagem


se trata, para cada caso existe uma função diferente que trata das mesmas sendo que o
processo em ambas é semelhante.

É necessário saber se o avatar que comunica com o bot já tem uma sessão
estabelecida com um funcionário, pois, se este for o caso as mensagens serão
directamente enviadas para esse funcionário consoante o tipo de sessão estabelecida que
poderá ser IM ou SMS. Se a sessão estabelecida for do tipo IM a mensagem será
armazenada na BD para entrega posterior por Messenger, caso contrário será
armazenada para posterior entrega por SMS pelo modem GSM ligado ao sistema.

Se o avatar ainda não tiver nenhuma sessão estabelecida será procurado um


funcionário disponível para atendê-lo por Messenger e se for encontrado será
adicionada uma sessão entre este avatar e funcionário e a mensagem armazenada na BD
para entrega por Messenger.

44
Caso nenhum funcionário esteja disponível por Messenger será procurado um
funcionário disponível por SMS, se não for encontrado será enviada uma mensagem ao
avatar no SL a avisa-lo que não existe ninguém disponível para o atender. Na situação
de haver um funcionário disponível por SMS é adicionada uma sessão na BD entre o
funcionário e avatar e a mensagem será armazenada na BD para entrega por SMS pelo
modem GSM.

5.6.2. Classe ChatClient

A classe ChatClient é responsável por criar um bot que irá enviar as mensagens
armazenadas do SL e receber as mensagens de qualquer serviço de messaging de forma
a serem também armazenadas para posterior entrega via SL.

45
Figura 17 – ChatClient (funcionamento geral)

Quando se coloca esta classe a correr pela primeira vez num servidor, é feita uma
tentativa de conexão ao servidor XMPP público, neste caso, o Sapo. Caso não seja
possível a conexão, o programa sai, deixando de correr no servidor.

46
No caso de sucesso passa a próxima etapa, o login. No caso de não ser possível
efectuar o login este fica a tentar até conseguir. Quando o login for efectuado com
sucesso, é chamada a função responsável por actualizar a presença de todos os contactos
do bot. Esta função foi criada uma vez que, caso o bot deixasse de correr por alguma
razão no servidor XMPP ou no nosso servidor, não seria possível actualizar todos
contactos, uma vez que o método que é disparado pela alteração de presença só
funciona quando o bot está conectado ao servidor XMPP.

Assim, tendo em conta este factor, a classe executa três funções (enviar mensagens
armazenadas do SL, adicionar e remover contactos) de modo sequencial (após um login
bem sucedido) até ser atingido um determinado valor no contador (ou temporizador).
No entanto estas funções só serão executadas caso se verificar a conexão e login ao
servidor XMPP.

O contador, serve como um relógio, uma vez que a classe executa as três funções de
2 em 2 segundos e quando atinge um determinado valor é efectuado o logout seguido de
uma conexão e login do bot em relação ao servidor XMPP. Nessa sequência, também é
efectuado a actualização de todos os contactos.

Através de uma regra de três simples demonstra-se o porquê do contador só ser


anulado a partir de um certo valor isto é,

1 – 2s

x – 14400s

x = 7200, assim quando o contador atingir o valor 7200 (equivalente a 4h) é


efectuado o processo descrito anteriormente. A reinicialização do bot deve-se a
problemas relacionados com o transporte para outros serviços de messaging, sendo que
esta solução tornou-se eficiente, principalmente para os casos MSN/Windows Live e
Yahoo.

De seguida explica-se o Figura 18, sendo este, parte do Figura 17. Assim pretende-
se dar uma explicação de como é feito o processamento das mensagens recebidas de
qualquer contacto de Messenger, assim como é feito a actualização dos contactos.

Como a classe implementa dois tipos de interface, um de processamento de


mensagens recebidas e outro de actualização dos contactos, existem duas funções que
são disparadas aquando de uma mensagem recebida ou da actualização da presença de
um contacto. No caso de recebimento de uma nova mensagem, esta é analisada, sendo
retirado algumas informações, tais como o conteúdo e a origem de quem a enviou. Após
isso é feito uma analise ao conteúdo para verificar se não se trata de um comando, isto
é, se é um comando para saber quais as sessões activas ou mudança de sessão. Caso não
seja nenhum comanda a mensagem é então armazenada para posterior entrega via SL.

No caso da alteração de presença, é sempre analisado qual o contacto especifico,


sendo a sua presença (online ou offline) actualizada na base de dados. No caso de o

47
contacto estar offline é verificado se existe alguma sessão activa com este. No caso de
existir esta é apagada, uma vez que a conversação estará concluída.

Figura 18 – Tratamento das mensagens dos messengers e actualização de contactos

5.7. Módulos GSM

O funcionamento dos módulos GSM responsáveis pelo envio e recepção de


mensagens SMS são explicados nos seguintes pontos.

5.7.1. Módulo de Envio SMS

O diagrama seguinte mostra o funcionamento do processo de envio de SMS


armazenadas na BD até aos funcionários que se destinam por parte do modem GSM de
envio SMS.

48
Figura 19 – Módulo GSM de envio

Inicialmente o programa estabelece uma ligação para o fluxo de dados com o


modem GSM.

Após o estabelecimento da ligação verifica-se então se o PIN do cartão no modem


GSM já se encontra inserido e caso ainda não tenha sido activado é então activado.

A partir deste momento o programa entra num ciclo de procura temporizada de


novas mensagens na BD para envio e caso nenhuma seja encontrada dá-se uma espera
de dois segundos para uma nova pesquisa de modo a não sobrecarregar o sistema.

Se uma mensagem for encontrada na BD é então enviada para o funcionário destino


com a informação na mesma do avatar que a originou.

49
5.7.2. Módulo de Recepção SMS

Depois do envio a mensagem é marcada como enviada e entra-se num novo ciclo de
procura de mensagens.

A Figura seguinte mostra como novas mensagens recebidas no modem GSM de


recepção são armazenadas na BD.

50
Figura 20 – Módulo GSM de recepção

Tal como para o envio de SMS inicialmente é estabelecida a comunicação com o


modem GSM a partir da porta série e verificado se o PIN já se encontra inserido sendo
neste caso também necessário estabelecer no modem GSM parâmetros para a recepção
correcta de SMS.

51
Assim para cada nova SMS recebida será gerado um evento que permite efectuar de
seguida uma procura no cartão por novas mensagens. Os dados da mensagem precisam
de ser filtrados e de seguida a mensagem ser apagada do cartão de modo a evitar o
esgotamento da sua memória a longo prazo.

Neste momento é necessário verificar se a mensagem recebida é de finalização de


uma sessão com um avatar ou uma mensagem normal para entrega. No caso de ser
finalizada uma sessão o programa volta para a fase em que aguarda a chegada de novas
mensagens.

Seja uma mensagem normal para entrega é verificado se o avatar tem sessão
estabelecida e caso não tenha é assumido que o funcionário introduziu incorrectamente
o nome e será então armazenada uma SMS para entrega ao mesmo a avisar deste facto.

Se o avatar tiver uma sessão a mensagem é então armazenada para posterior entrega
no SL pelo bot.

52
5.8. Site

Como se demonstra pelo diagrama abaixo, foi criado um módulo responsável pelo
registo/actualização dos funcionários (módulo RegistaFuncionarios).

Através deste módulo, são permitidas as operações normais de manutenção de dados


tal como eliminar, adicionar, actualizar e possibilitar a troca de hierarquias dos
funcionários já registados. Tudo isto se faz recorrendo a uma outra base de dados que
não a do site. Isto deve-se a opção por descentralizar os meios, separando-os assim uns
dos outros, não afectando a inter-comunicação entre estes.

Figura 21 – Funcionamento geral do site

De forma a agilizar a relação entre os administradores e os funcionários, alterou-se o


módulo user, pertencente ao núcleo do Drupal. Essa alteração deveu-se ao facto de
evitar que a classe ChatClient (bot de messaging) ao adicionar um novo funcionário na
sua lista de contactos tivesse que recorrer a duas base de dados, uma para obter o nome
do administrador para criar um grupo com esse mesmo nome (base de dados do
Drupal), e outra para obter o nome e email do funcionário a adicionar nesse grupo
existente ou acabado de criar no caso de ainda não existir.

Desta forma a alteração consistiu apenas em, sempre que um administrador se


registe no site, são enviados para a outra base de dados, o respectivo nome e UID (User
ID), para uma tabela destinada a esse fim.

53
6. Testes, Resultados e Trabalho
Futuro

Neste capítulo é mostrado todo o funcionamento do sistema desde a sua fase inicial de
registo do administrador no site até à fase em que se iniciam as conversas entre
visitantes de um espaço virtual no SL e funcionários de um balcão de atendimento

6.1. Funcionamento do sistema

No início do processo o administrador da organização necessita de se registar no site de


gestão (Figura 22). O administrador necessita de se incluir na lista assim como todos os
membros que farão parte da equipa do balcão de informação.

Figura 22 – Registo de utilizadores e seus dados

Após isto o administrador regista um avatar SL no servidor. Este avatar será utilizado
pelo balcão de informação e necessita de ser conectado no SL (Figura 23)

54
Figura 23 – Página de gestão do Bot

No SL, utilizadores no balcão de informação vão ver o bot como se fosse um membro
da equipa de atendimento. Podem interagir com o mesmo por chat ou enviar uma
mensagem privada, como poderiam com um avatar normal. Na figura 9, o bot é o avatar
no centro, e as duas outras pessoas estão a procura de informações. Uma conversa
pública desenvolve-se e também é visível uma mensagem janela de mensagens
privadas.

Estas conversações chegam a um membro da equipa (seleccionado no servidor de


gestão, tendo como variáveis a prioridade, estado online e o limite de conversões
simultâneas) como mensagens de um contacto de instant messanger sl_bot_messengers
(Fig. 10) ou por SMS através do modem.

Quando avatares comunicam via chat ou mensagens privadas, sessões são


automaticamente criadas pelo servidor gestor e apresentadas membros da equipa
identificadas por números. Por exemplo, na figura 11, a sessão 0 é a conversação
publica, a sessão 1 é a conversação privada SL com o avatar de nome Takeda Kanto, e a
sessão 2 é outra conversação privada, com o avatar Chlecer Cuttita.

55
Figura 24 – Balcão de Informação com Bot

Figura 25 – Comparação lado a lado: Cliente SL e Cliente IM

Na mesma Figura, podemos ver que os membros da equipa podem utilizar os números
para definir para onde as mensagens são enviadas (Se não forem especificados números,
é assumido que deve ser usada a mesma sessão activa).

56
6.2. Conclusões e Trabalho Futuro

Foram realizados testes tanto em conversações com um único visitante como com
vários em simultâneo. Confirma-se a correcta operação do sistema prototipo com o
software IM em geral mas com um pequeno atraso para os utilizadores do Windows
Live.

Ainda será necessário realizar testes com equipas reais para estabelecer se o interface
actual (particularmente o mecanismo de gestão de sessões) é adequado, como
determinar outros elementos que podem ser necessários para melhor o comportamento
do bot SL (por exemplo, virar-se para a pessoa com quem está a conversar).
Verificaram-se também alguns problemas com o gateway XMPP (utilizou-se o gateway
publico do SAPO), algum trabalho terá que ser realizado a este nível.

Independentemente do trabalho futuro que possa ser realizado, acredita-se que os


resultados presentes permitem concluir que o sistema demonstra a possibilidade de criar
um balcão de informação para o SL baseado em clientes IM e telemóveis.

57
Figura 26 – Demonstração da troca entre sessões

Este tipo de plataforma é um elemento importante para uma organização de tamanhos


diversos que tenham um espaço virtual no SL e outros mundos virtuais que sejam
interactivos e apresentem aos utilizadores uma sensação de presença no atendimento
nesse estado.

Como apenas o bot SL é específico deste mundo virtual e vários mundos virtuais
permitem a programação de bots similares é exequível que este sistema permita que
organizações facilmente transformem a sensação de presença no atendimento em
variados espaços virtuais ao mesmo tempo, mesmo em mundos virtuais diferentes.

58
Referências

[1] Woodcock, B. S. (2008). “An Analysis of MMOG Subscription Growth – Version 23.0. – April 9th,
2008” [On-line]. http://www.mmogchart.com /(retrieved October 4th, 2008).

[2] Association of Virtual Worlds (2008). “The Blue Book – A Consumer Guide to Virtual Worlds”, 4th
edition, August 2008. Ponte Vedra Beach, Florida, USA: Association of Virtual Worlds

[3] Taylor, Dan (2007). “Second Life in perspective: A round-up of 50 virtual worlds”. Fabric of Folly,
14-10-2007. [On-line] http://www.fabricoffolly.com/2007/10/second-life-in-perspectiveroundup- of.html
(retrieved October 4th, 2008).

[4] Barnes, Stuart (2007). “Virtual worlds as a medium for advertising”. The DATA BASE for Advances
in Information Systems, 38 (4), 45-55.

[5] Reynolds, Roo (2008). “IBM Virtual Worlds 1Q 2008 roundup”. Eightbar, March 25th, 2008 [On-
line]. http://eightbar.co.uk/2008/03/25/ibm-virtual-worlds-1q-2008-roundup/ (retrieved October 4th,
2008).

[6] Activeworlds (2008). “The Active Worlds SDK” [On-line]. http://www.activeworlds.com/sdk/


(retrieved October 4th, 2008).

[7] OpenSimulator (2008). “Main Page – OpenSim” [On-line]. http://opensimulator.org/ (retrieved


October 4th, 2008).

[8] libsecondlife (2008). “libsecondlife” [On-line]. http://www.libsecondlife.org/ (retrieved November


3rd, 2008).

[9] Myrl (2008). “Welcome to – Myrl” [On-line]. http://www.myrl.com/ (retrieved October 4th, 2008).

[10] Sloodle (2008). “Sloodle – Virtual Environment Learning System” [Online]. http://www.sloodle.org/
(retrieved October 4th, 2008).

59
[11] Linden Lab (2008). “Second Life Virtual Economy – Key Metrics – Through August 2008” [On-
line]. http://static.secondlife.com/economy/stats_200808.xls (retrieved November 3rd, 2008).

[12] Wikipedia (2008). “Businesses and organizations in Second Life”. [Online]


http://en.wikipedia.org/wiki/Businesses_and_organizations_in_Second_ Life (retrieved November 4th,
2008).

[13] Linden Research (2008). “LSL Portal”. [On-Line] http://wiki.secondlife.com/wiki/LSL_Portal


(retrieved November 6th, 2007)

[14] Jia, J. (2007). “LSL Communication in Second Life”. [On-Line] http://sljia.wordpress.com/


(retrieved November 28th, 2007)

[15] Anonymous (2006). “LlEmail” [On-line] http://rpgstats.com/wiki/index.php?title=lLEmail (retrieved


November 7th, 2007)

[16] Anonymous (2007). “What is XML-RPC?” [On-line]


http://www.lslwiki.net/lslwiki/wakka.php?wakka=xmlrpc (retrieved November 28th, 2007)

[17] Gwyneth Llewelyn (2007). “Figuring out your online status revisited” [On-line]
http://gwynetllewelyn.net/2007/08/11/figuring-out-youronline-status-revisited/ (retrieved November 15th,
2007)

[18] Linden Research (2008). “llHTTPRequest”. [On-line]


http://wiki.secondlife.com/wiki/LlHTTPRequest (retrieved April 27th, 2008)

[19] Linden Lab (2008). “Linden Lab Builds Bridge Between Second Life and Real World With New
Voice-Driven Instant Messaging Client” [On-line]. http://lindenlab.com/pressroom/releases/09_03_08
(retrieved November 3rd, 2008).

[20] Czukor, D. (2008). “SLeek” [On-line] http://delta.slinked.net/secondlife/ sleek/ (retrieved November


3rd, 2008).

[21] GnomiVerse (2008). “Gnomichat Features” [On-line]. http://www.gnomiverse.com/ (retrieved


November 3rd, 2008).

60
[22] Chase, N. (2007). “A virtual office: IBM Lotus Sametime chatting and Second Life”. [On-line]
http://www.ibm.com/developerworks/edu/lsdw-ls-stsl.html (retrieved October 20th, 2008).

[23] Vodafone D2 Gmbh (2007). “Vodafone – Second Life” [On-line] http://secondlife.vodafone.com/


(retrieved November 7th, 2007)

[24] Global Kids Digital Iniciative (2008). “Crossing the Metaversal Divide: Second Life teens exchange
text messages with Ugandan girl on her cell phone” [On-line]
http://www.holymeatballs.org/2008/09/crossing_the_metaversal_divide. html (retrieved November 4th,
2008)

[25] Reuters (2008). “Comverse demos Second Life on mobile phones” [Online].
http://secondlife.reuters.com/stories/2007/02/08/comverse-demossecond-life-on-mobile-phones/ retrieved
November 3rd, 2008).

[26] Telefónica S.A. (2007). “Telefónica in the Mobile World Congress 2008” [On-line]
http://saladeprensa.telefonica.es/documentos/Dossier_PS_Movistar-O2_eng.pdf (retrieved April 28th,
2008)

[27] E-Arbitration-T (2008). “e-Justice Centre, ODR in Second Life” [Online]. http://www.e-arbitration-
t.com/2008/02/28/e-justice-centre-odr-insecond-life/ (retrieved November 3rd, 2008).

[28] Anshe Chung Studios (2008). “Dreamland Central Hub” [On-line].


http://world.secondlife.com/place/cec95499-eee6-c321-9ae8-11fe7ff8060c (retrieved November 3rd,
2008).

[29] (comScore 2007, seg. Sunshine, 2008)

61

Vous aimerez peut-être aussi