Conference PaperPDF Available

Arquitetura de Serviços para o Portal de Compras Pervasivo

Authors:

Abstract and Figures

The pervasive computing can be summarized by 3 A's: Anywhere, Anytime and Any device because it intends to make the computational environment available anytime, anywhere and be accessible from any device. The GMob/UFSM group develops a project that adds these features in an existent system. This paper describes the architecture and services required to implement this system. Resumo. A computação pervasiva, pode ser resumida pelos 3 A's: Anywhere, Anytime, Any device, e visa disponibilizar o ambiente computacional do usuário a qualquer tempo, em qualquer lugar, acessando com qualquer dispositivo. O GMob/UFSM desenvolve um projeto que visa adicionar características desse novo ambiente computacional em um sistema legado. Este artigo descreve a arquitetura e os serviços necessários à implementação desse sistema.
Content may be subject to copyright.
Arquitetura de Serviços para o Portal de Compras
Pervasivo
Rafael Pereira Pires, Ricardo Miotto Redin, Rubens Cesar Belusso
João Carlos Damasceno Lima, Iara Augustin
Núcleo de Ciência da Computação – Universidade Federal de Santa Maria (UFSM)
Centro de Tecnologia, sala 336 – 97105-900 – Santa Maria – RS – Brasil
{rafaelpp, redin, belusso, caio, august}@inf.ufsm.br
Abstract. The pervasive computing can be summarized by 3 A’s: Anywhere,
Anytime and Any device because it intends to make the computational
environment available anytime, anywhere and be accessible from any device.
The GMob/UFSM group develops a project that adds these features in an
existent system. This paper describes the architecture and services required to
implement this system.
Resumo. A computação pervasiva, pode ser resumida pelos 3 A's: Anywhere,
Anytime, Any device, e visa disponibilizar o ambiente computacional do
usuário a qualquer tempo, em qualquer lugar, acessando com qualquer
dispositivo. O GMob/UFSM desenvolve um projeto que visa adicionar
características desse novo ambiente computacional em um sistema legado.
Este artigo descreve a arquitetura e os serviços necessários à implementação
desse sistema.
1. Introdução
A Computação Pervasiva é uma área nova da computação [Saha 2003] [Satyanarayanan
2001] que fornece uma visão da computação futura onde a computação estará
totalmente integrada ao ambiente e o poder computacional estará disponível em
qualquer lugar e acessível a qualquer tempo. Este cenário possibilita uma mobilidade
global e é constituído de uma diversidade de dispositivos móveis e estáticos que
dinamicamente se conectam, reagem ao ambiente corrente e se coordenam uns com os
outros e com os serviços de rede para auxiliar o usuário na realização de suas tarefas.
No grupo GMob (grupo de pesquisa em sistemas de computação móvel) está em
desenvolvimento projeto pBuy1, que introduz características de pervasividade em um
sistema legado, chamado Portal de Compras, desenvolvido pela empresa SIG Soluções
em Informática e Gestão (www.sigbrasil.com.br). Dentre os estudos realizados para a
modelagem das novas aplicações do portal de compras, identificou-se que as aplicações
necessitarão de um conjunto de serviços que tratem as características peculiares dos
dispositivos portáteis e do impacto da mobilidade sobre o sistema.
Este artigo aborda a arquitetura dos serviços e discute as questões envolvidas na
modelagem destes. O restante do artigo segue a estrutura: a seção 2 define os principais
conceitos da computação pervasiva; a seção 3 discute a arquitetura de serviços pBuy e
focaliza questões embutidas na modelagem de cada serviço; a seção 4 registra o status
do projeto; a seção 5 relata os trabalhos relacionados e a seção 6 conclui o artigo.
1 Projeto financiado pela FINEP (Financiadora de Estudos e Projetos) com período de realização: 2005 e
2006.
Anais do IV Simpósio de Informática da Região Centro do RS - SIRC/RS 2005 - Santa Maria, novembro de 2005.
2. Caracterizando a Computação Pervasiva
Um novo cenário computacional, conhecido como Computação Pervasiva (Pervasive
Computing2) está surgindo a partir das possibilidades introduzidas pelos equipamentos
portáteis e a comunicação sem fio [Saha, 2003]. Um dos conceitos de computação
pervasiva, sob a visão tecnológica, resume-a em 3 A's: Anywhere, Anytime, Any device,
destacando os aspectos da disponibilização do ambiente computacional do usuário em
qualquer lugar, acessível a qualquer tempo e com qualquer dispositivo.
A computação móvel, considerada a etapa atual da mobilidade computacional,
através da natureza de suas propriedades - portabilidade, mobilidade e conectividade -
introduz restrições aos sistemas e aplicações [Augustin, 2004]. Apesar da evolução
natural da tecnologia, a maioria dos pesquisadores considera que essas limitações
permanecerão, principalmente se comparadas ao ambiente de rede fixa. Então, as
aplicações devem procurar explorar a natureza da mobilidade.
No ambiente considerado pelo pBuy, as aplicações são móveis e distribuídas.
Isto significa que durante a execução da aplicação esta pode se mover entre dispositivos
seguindo a trajetória do usuário (semântica siga-me). Para permitir esta funcionalidade é
necessário que a aplicação se adapte ao ambiente corrente, logo, consciência do
contexto é um requisito importante na modelagem dessas aplicações. Os serviços do
pBuy endereçam essas questões, conforme descrito a seguir.
3. Arquitetura de Serviços pBuy
Nesta fase do projeto, está sendo realizada a modelagem dos serviços considerando o
relacionamento entre as aplicações existentes no Portal de Compras e as novas
funcionalidades exigidas pela computação pervasiva. O conjunto de novos serviços
sendo introduzidos é ilustrado na figura 1.
Figura 1. modelagem de alto nível do sistema pBuy
O software Portal de Compras tem como base um sistema de leilão virtual para a
realização de compras. O leilão é dividido em fases, delimitadas por datas ou ações da
2 Alguns autores usam o termo Computação Ubíqua (Ubiquitous Computing). Atualmente, está-se
considerando esses dois conceitos como únicos, embora a computação ubíqua originalmente denote um
ambiente computacional mais futurista como proposto por Mark Weiser [WEISER 1991].
Anais do IV Simpósio de Informática da Região Centro do RS - SIRC/RS 2005 - Santa Maria, novembro de 2005.Anais do IV Simpósio de Informática da Região Centro do RS - SIRC/RS 2005 - Santa Maria, novembro de 2005.
parte que realiza o leilão, e cada fase gera tanto mensagens do usuário para o sistema
quanto mensagens do sistema para o usuário, sendo que a última deve ser entregue onde
o usuário estiver e no dispositivo em uso no momento por ele.
Essas características geram a necessidade de um serviço de envio de mensagens
(Serviço de Disseminação) para o usuário autenticado pelo sistema (Serviço de
Autenticação) de forma uniforme e independente do dispositivo que será utilizado. O
serviço deve estar ciente do dispositivo do usuário no momento do envio para fazer a
adaptação do conteúdo (Serviço de Apresentação) de forma que o dispositivo aceite e
disponibilize para o usuário, levando em consideração o estado da rede e o tipo de
conexão através do Sistema de Comunicação.
3.1 Serviço de Disseminação de informações independentes de dispositivo
Disseminação de informações, também referenciada como tecnologia push para entrega
de dados é uma resposta para alguns dos problemas introduzidos pela entrega de dados
pull, onde o usuário solicita sob demanda as informações que necessita [Franklin,
1998]. Um desses problemas é que o usuário deve conhecer a priori onde e quando obter
os dados. Quando a volatilidade de dados é alta, os usuários devem buscar dados
freqüentemente, gastando tempo e esforço. O segundo problema é o descompasso entre
a natureza assimétrica de algumas aplicações e a infra-estrutura simétrica da
comunicação. A disseminação de informações procura resolver esses problemas ao
colocar o servidor como ponto de partida do envio dos dados (push), ao invés da
consulta explícita do usuário (pull).
Segundo Henricksen [Henricksen 2001], os usuários da computação pervasiva
são móveis e podem explorar as capacidades de vários dispositivos simultaneamente.
Desta forma, torna-se necessário produzir mecanismos que possibilitem a distribuição e
mobilidade do código/dados também. Estes mecanismos devem ser amplamente
transparentes para os desenvolvedores de software, de modo que os mesmos não tenham
que se preocupar com questões como migração de dados e código e/ou sincronização de
componentes distribuídos. Seguindo esta linha de pensamento, o serviço de
disseminação de dados deve ser transparente para o programador de aplicação, ou seja,
a aplicação deve enviar a mensagem identificando o usuário-destino desta. Assim, o
serviço de disseminação será o responsável por identificar onde o usuário-destino está,
qual equipamento está utilizando no momento e enviar a mensagem de forma adaptada
ao dispositivo.
No pBuy, este serviço interage com os outros serviços de suporte às aplicações
com comportamento pervasivo; em especial, com o serviço de apresentação, que realiza
a adaptação de conteúdo ao dispositivo corrente, e o serviço de autenticação do usuário.
O serviço de disseminação modelado provê um formato de mensagens com as
aplicações através de padrões amplamente utilizados na Internet. Pode-se enumerar os
seguintes padrões que o sistema irá dispor: HTTP, WAP e SOAP. A escolha do HTTP
se justifica por ser um dos protocolos de comunicação mais utilizados e com
implementações para grande parte dos dispositivos-alvo. Por outro lado, escolheu-se
WAP por ser padrão suportado por telefones celulares e dispositivos semelhantes. Para
ter uma forma de comunicação de alto-nível será implementada também a transferência
de dados através de SOAP.
As mensagens enviadas ao serviço de disseminação são endereçadas ao usuário
e não ao dispositivo ou endereço IP (Internet Protocol). O serviço deve encontrar o
dispositivo em uso corrente pelo usuário-destino para enviar a mensagem. Desta forma,
Anais do IV Simpósio de Informática da Região Centro do RS - SIRC/RS 2005 - Santa Maria, novembro de 2005.
o usuário receberá a mensagem independentemente do dispositivo que estiver
utilizando. O serviço modelado implementa esta funcionalidade.
A atribuição de um endereço para o usuário independentemente do dispositivo
que ele ocupe para acessar o ambiente é uma das questões mais relevantes deste serviço,
a qual permite a entrega ao usuário independente do dispositivo em uso, no momento.
A necessidade de um padrão de endereçamento é característica do ambiente
pervasivo. A forma de endereçamento ideal teria que contemplar a total mobilidade do
usuário, tanto dentro dos domínios do ambiente local quanto para fora do mesmo, a
troca de endereços sem a perda da conectividade, intervalo extremamente curto entre as
trocas de endereço, a desconexão do dispositivo sem aviso, etc. No entanto, atualmente,
poucos protocolos de comunicação suportam as necessidades desse ambiente. Dentre os
que possuem algumas das características necessárias ao serviço pBUY estão o DNS
Dinâmico e o Bonjour. Assim, para decisão de modelagem do serviço de disseminação
foram analisadas duas formas de implementação: (i) uma baseada no uso de um
esquema de DNS Dinâmico [RFC 2136], e (ii) outra baseada no protocolo Bonjour
[Apple 2005]. Os resultados dessa análise são relatados a seguir.
3.1.1. DNS Dinâmico
O DNS Dinâmico é um adendo do padrão DNS que permite uma forma de fazer
mudanças em determinados registros da base de dados de um servidor de nomes sem a
necessidade de edição manual do arquivo de zonas do mesmo. Usando tal definição é
possível para máquinas que tem o seu IP atribuído de uma forma dinâmica, i.e., sujeito a
mudar em condições predeterminadas, traduzir este IP em um nome fixo no sistema de
DNS.
Do ponto de vista da computação pervasiva é desejável tal característica, já que
desta forma ter-se-á um acesso uniforme aos dispositivos através de seu nome DNS.
existem no mercado implementações comerciais desse protocolo [No-IP 2005]. O
principal aspecto desfavorável de tais implementações é a exigência de uma latência
relativamente alta entre cada atualização, característica que as desqualifica para uso,
pois um ambiente computacional pervasivo prevê a mobilidade dos usuários de uma
forma não preditiva e livre de requisitos de tempo.
3.1.2. Bonjour
Bonjour é o nome que a Apple deu à evolução do protocolo AppleTalk. Este protocolo,
também conhecido como Rendezvous, tem como princípio a descoberta de serviços e
máquinas em uma sub-rede baseado nos protocolos IP e DNS [DNS Service Discovery
2005] [Multicast DNS 2005], e é a implementação da Apple do protocolo Zeroconf da
Internet Engineering Task Force (IETF). O protocolo tem como ponto forte a
descentralização que permite um aumento de desempenho e o fato de ser adotado por
muitos fabricantes de hardware.
O Bonjour é o protocolo julgado mais adequado para a implementação do
serviço para o projeto pBuy por ser bem documentado e amplamente utilizado. Outra
vantagem é o fato de possuir uma implementação de código aberto. A principal
vantagem do ponto de vista da computação pervasiva é o fato deste protocolo não
utilizar um mecanismo de centralização para responder as requisições, desta forma
temos um aumento do desempenho e também retiramos um ponto único de falha. Ele
também provê uma forma inteligente e não interativa com o usuário de resolução de
Anais do IV Simpósio de Informática da Região Centro do RS - SIRC/RS 2005 - Santa Maria, novembro de 2005.
conflitos de endereços, onde o próprio dispositivo tenta obter um endereço e em caso de
conflito troca o mesmo até obter uma configuração válida da rede.
3.1.3 Funcionamento
Quando uma aplicação deseja enviar uma mensagem para um determinado usuário
através do serviço de disseminação ela deve chamar o método apropriado solicitando o
envio da mensagem para o usuário juntamente com a mensagem. De posse destas
informações o serviço de disseminação, em um caso de uso com sucesso, procede da
seguinte forma:
analisa os requisitos temporais da mensagem para saber se a mesma deve ser
enviada agora ou deve aguardar algum tempo definido pela aplicação que pediu
o seu envio;
caso a mensagem necessite ser enviada agora, faz uma requisição ao serviço de
autenticação solicitando, se o usuário em questão está ativo no momento. O
serviço de autenticação responde com o dispositivo e endereço correspondentes;
o serviço de disseminação chama o serviço de apresentação para que modifique
o conteúdo da mensagem para que o mesmo possa ser entendido pelo dispositivo
do usuário no momento;
é necessária uma nova consulta ao serviço de autenticação, pois o usuário pode
ter mudado de dispositivo ou desconectado do sistema (caso em que a
mensagem deve ser reformatada pelo serviço de apresentação ou agendada para
envio posterior);
verificando que o usuário continua com o mesmo estado, o serviço de
disseminação abre uma conexão do tipo suportado pelo dispositivo do usuário
no momento e envia a mensagem.
Internamente, o serviço guardará em um banco de dados persistente as
informações sobre os usuários e seus dispositivos e as mensagens com requisitos
temporais, isto é, que devem ser enviadas no futuro e/ou tem um prazo de validade para
envio.
3.2 Serviço de Apresentação do Conteúdo Adaptado ao Dispositivo
Adaptação de conteúdo é um aspecto relevante para a computação pervasiva pois
contribui para o aumento da usabilidade das aplicações [Satyanarayanan, 2001].
Adaptação de conteúdo, às vezes chamada de transcodificação, pode ser entendida
como o processo de seleção, geração ou modificação do conteúdo (texto, imagens,
áudio e vídeo) satisfazendo o ambiente computacional e o contexto de seu uso. O
contexto pode ser identificado por qualquer informação que caracteriza o usuário, o
lugar ou até algum outro objeto relevante a interação entre o usuário e a aplicação [Dey,
1999].
A adaptação de conteúdo permite que informações sejam mostradas
corretamente em diversos ambientes. O projeto pBuy tem como característica a
interação com uma enorme quantidade de dispositivos e, portanto, tem a necessidade da
funcionalidade deste serviço. No sistema pBuy, o serviço de apresentação será utilizado
por outros serviços, tais como o serviço de disseminação de informações. O serviço de
disseminação informará o tipo do dispositivo e os dados que sofrerão o processo de
adaptação automática. Os dados adaptados ao dispositivo deverão retornar ao serviço de
disseminação para envio destes na forma de mensagens.
Anais do IV Simpósio de Informática da Região Centro do RS - SIRC/RS 2005 - Santa Maria, novembro de 2005.
O serviço de apresentação deve considerar a heterogeneidade dos dispositivos
portáteis e celulares existentes. Considerando que não foram encontradas soluções
relativas a sistemas móveis para a realização das funcionalidades desejadas, foram
encontradas apenas soluções relativas a web, e não soluções voltadas ao ambiente
pervasivo, concluiu-se que seria necessário desenvolver uma solução própria para
atender aos requisitos funcionais do serviço.
Para o desenvolvimento desta solução será utilizada a tecnologia XSL,
abreviação de eXtensible Stylesheet Language (Linguagem de Folha de Estilos
Extensível)[XSL, 2005]. O XSL foi desenvolvido pela World Wide Web Consortium
(W3C) pela necessidade de uma linguagem de estilos para documentos XML
(Extensible Markup Language), permitindo assim a transformação de documentos XML
em outros tipos de documentos. Neste caso, será armazenada uma única versão com o
conteúdo a ser apresentado, enquanto diferentes formas de apresentação serão geradas
automaticamente a partir deste conteúdo de acordo com o tipo de dispositivo-alvo. Para
isso, o armazenamento do conteúdo é no padrão XML de forma a ser convertido em
formato apropriado ao dispositivo-alvo, fazendo uso da tecnologia XSL. Num primeiro
momento, será realizada a adaptação considerando dois formatos de dados: html e wml
que atendem as necessidades imediatas das aplicações pBuy. Outros formatos poderão
ser tratados na seqüência de execução do projeto.
3.3 Serviço de Comunicação Consciente do Estado da Rede
Na computação pervasiva, onde os elementos computacionais são dispersos e é possível
ter acesso de qualquer lugar e dispositivo, ocorre o deslocamento da computação
centrada no dispositivo para a computação centrada no usuário e suas atividades. Nesta
visão, quem deve ser reconhecido pelo sistema é o usuário e não os equipamentos que
ele porta ou usa (como estão definidos os sistemas computacionais atuais). O usuário
passa a ser o ponto de partida no projeto dos serviços. Assim como a comunicação
humana é caracterizada por interações com um conjunto de objetos em seu ambiente, os
sistemas de comunicação não devem ser construídos baseados em tecnologias
específicas, mas na análise do espaço de comunicação individual. O resultado é um
sistema de comunicação que se adapta às demandas específicas de cada indivíduo (I-
centric) [Zeletin, 2004].
A comunicação no ambiente pervasivo, por causa dos seus requisitos, envolve
várias questões e desafios de pesquisa. Neste cenário, onde desconexões são freqüentes,
faz-se necessário um serviço de comunicação que leve em consideração o estado da
rede e o tipo de conexão. Este serviço está atualmente sendo modelado juntamente com
outros serviços de suporte às aplicações no projeto pBuy. Resultados iniciais da
pesquisa identificaram os requisitos e questões a serem resolvidas.
As desconexões têm várias causas: voluntária, falta de energia, mudança de área
de cobertura (handoff). Os terminais móveis são freqüentemente desconectados da rede,
como uma forma de economizar energia. As unidades móveis podem se desconectar de
uma determinada rede caso não concordem com o nível de serviço disponível ou
queiram economizar energia. A preocupação com a desconexão faz parte do suporte à
computação pervasiva, por isso mecanismos para tratar handoffs, recuperar informações
e consistência de caching são necessários.
O serviço de comunicação estará permanentemente disponível no dispositivo
móvel (PDA, celular) e será a ponte de comunicação das aplicações do pBuy
executando no dispositivo com o mundo externo. Este será responsável por controlar o
Anais do IV Simpósio de Informática da Região Centro do RS - SIRC/RS 2005 - Santa Maria, novembro de 2005.
estado da rede e identificar o tipo de acesso. Estratégias de caching serão utilizadas para
os momentos de desconexões. Outra questão a ser tratada é como fornecer tal
funcionalidade considerando as diferentes capacidades de PDAs e celulares.
4. Status do Projeto
Para o desenvolvimento da solução serão utilizados métodos, técnicas e ferramentas da
Análise e Projeto Orientado a Objetos. Particularmente, usam-se Padrões de Projeto
[Gama, 1997] e Diagramas UML que auxiliam na modelagem do sistema, os quais
facilitam futuras alterações/evoluções. A linguagem adotada para desenvolvimento é a
plataforma Java em suas versões J2SE (standart edition), J2ME (micro edition) e J2EE
(enterprise edition). Esta foi escolhida pela ampla aceitação, facilidades fornecidas para
projetos na área de mobilidade e Web, e pela portabilidade o que facilita a programação
de PDAs. Após a modelagem dos serviços, serão executadas as etapas de
implementação de acordo com as especificações e desenvolvimento e execução de
aplicações-teste com o intuito de validação do sistema e coleta dos resultados.
5. Trabalhos Relacionados
Computação pervasiva é uma área de pesquisa muito recente, derivada de sistemas
móveis e distribuídos. Não são conhecidos outros trabalhos que objetivam a introdução
de características de um ambiente pervasivo em sistemas legados e poucos abordam as
questões identificadas como requisitos de projeto. Para a modelagem dos serviços do
projeto pBuy serão utilizados alguns resultados de pesquisas realizadas em campos co-
relatos, destacados a seguir.
A disseminação de dados em ambiente de computação pervasiva é objeto de
pesquisa do grupo de mobilidade da Universidade Rutgers [DATAMAN 2005]. Os
diversos projetos na área de disseminação de dados em ambientes móveis deste grupo
abordam muitos aspectos relevantes ao tema, dentre os quais: espacialidade do escopo
das informações, roteamento de pacotes em ambiente heterogêneos e efeitos da
mobilidade em sistemas de banco de dados.
O WTP (WebSphere Transcoding Publisher) [WTP, 2005], da IBM, possui uma
série de funcionalidades voltadas à adaptação de conteúdo que podem ser exploradas de
diversas maneiras. O WTP inclui funções para realizar o roteamento de requisições
dinamicamente para o adaptador correspondente, baseado na URL de destino, nas
características e capacidades de cada dispositivo e nas preferências do usuário. Alguns
tipos de adaptação de conteúdo implementados pelo WTP são citados a seguir:
Simplificação do HTML, HTML para WML, XSLT (eXtensible Stylesheet Language
Transcoding) e Fragmentação de documentos.
Operação desconectada é um modo de operação onde o cliente continua a usar
os dados da sua cache durante falhas temporárias da rede ou do servidor. No Coda
[Satyanarayanan, 1990] - sistema de arquivos móveis que aprofundou o estudo da
desconexão planejada - um gerente de cache opera em três estados: (i) hoaring, modo
conectado, onde o gerente guarda dados úteis em antecipação à desconexão; (ii)
emulation, estado em que o cliente está desconectado fisicamente; e (iii) reintegration,
quando reconectado, sincroniza sua cache.
6. Conclusões
A Computação Pervasiva é um novo paradigma que tem despertado muita atenção neste
início de década. Previsto para ser a computação do século 21, somente agora a
Anais do IV Simpósio de Informática da Região Centro do RS - SIRC/RS 2005 - Santa Maria, novembro de 2005.
viabilidade deste cenário computacional começa a ser explorado. Resultados iniciais dos
projetos de pesquisas identificaram os requisitos e questões a serem resolvidas para
concretização desse ambiente computacional. Neste escopo, a arquitetura e os serviços
aqui descritos têm relevância, pois objetivam introduzir características de um ambiente
pervasivo em um sistema legado. O projeto pBuy encontra-se atualmente em fase de
modelagem dos serviços. Os principais requisitos identificados são os serviços de
disseminação de informações, apresentação de conteúdo adaptada ao dispositivo e
comunicação consciente do estado da rede. Espera-se que, ao final do projeto, o sistema
possua características de um ambiente pervasivo como semântica siga-me e consciência
de contexto.
Referências Bibliográficas
Apple Developer Connection – Bonjour, http://developer.apple.com/networking/bonjour/index.html,
acessado em 02/08/2005.
Augustin, I. Abstrações para uma linguagem de programação visando aplicações móveis em um ambiente
de pervasive computing. 2004. Tese (Doutorado em Ciência da Computação) – Universidade Federal
do Rio Grande do Sul.
DATAMAN - Mobile Computing Laboratory, http://www.cs.rutgers.edu/dataman/index.html, acessado
em 03/08/2005.
Dey. A. & Abowd. G.. “Towards a Better Understanding of context and context-awareness” Technical
Report GIT-GVU-99-22. Georgia Institute Technology, June 1999.
DNS Service Discovery (DNS-SD), http://www.dns-sd.org/, acessado em 02/08/2005.
Franklin, M.; Zdonik, S. Data in Your Face: Push Technology in Perspective. ACM SIGMOD
International Conference on the Management of Data. Seattle, WA. Proceedings. Jun. 1998.
Gama, E. et al. Design Patterns: elements of reusable object oriented software. 10th Ed. Reading, MA:
Addison-Wesley, 1997.
Henricksen, K.; Indulska, J.; Rakotonirainy, A. Infrastructure for Pervasive Computing: Challenges. In:
Workshop on Pervasive Computing, Informatik, 2001, Vienna, Austria. Proceedings… [S.l.:s.n.],
2001.
Multicast DNS, http://www.multicastdns.org/, acessado em 02/08/2005.
No-IP - Dynamic DNS, Static DNS for Your Dynamic IP, http://www.no-ip.com/, acessado em
10/09/2005.
RFC 2136 (rfc2136) - Dynamic Updates in the Domain Name System (DNS UPDATE),
http://www.faqs.org/rfcs/rfc2136.html, acessado em 03/08/2005.
Saha, D.; Mukherjee, A. Pervasive computing: a paradigm for the 21st century. IEEE Pervasive
Computing, v.36, n.3, p.25-31. Mar. 2003.
Satyanarayanan, M., Kistler, J. J., Kumar, P., Okasaki, M.E., Siegel, E.H., Steere, D.C. Coda: A Highly
Available File System for a Distributed Workstation Environment. IEEE Transaction on Computers
39(4), April, 1990.
Satyanarayanan, M. Pervasive Computing: Vision and Challenges. IEEE Personal Communications, New
York, 2001.
XSL, eXtensible Stylesheet Language. Disponível em http://www.w3.org/Style/XSL/, acessado em
agosto/2005.
Zeletin, R. P., Steglich, S., Arbanowski, Stefan. Pervasive Communication A Human-centered Service
Architecture. 10th IEEE International Workshop on future Trends of distributed Computing systems,
2004.
WTP, IBM WebSphere Transcoding Publisher, IBM Corporation. Disponível em
http://www.ibm.com/software/Webservers/transcoding/, acessado em julho/2005.
Anais do IV Simpósio de Informática da Região Centro do RS - SIRC/RS 2005 - Santa Maria, novembro de 2005.
Thesis
Full-text available
Este trabalho descreve a elaboração de um serviço de comunicação consciente do estado da rede para dar suporte às aplicações do projeto pBuy. O projeto pBuy busca introduzir características de um ambiente pervasivo a um sistema legado, chamado Portal de Compras, instalado na UFSM. Considerando a instabilidade na comunicação inerente à comunicação sem fio e as desconexões voluntárias causadas pela economia dos restritos recursos dos dispositivos portáteis, situações comuns no ambiente pervasivo, este serviço se faz necessário para permitir o acesso às aplicações do Portal de Compras via dispositivos móveis (PDAs e telefones celulares) e mantê-las funcionais em face a desconexões.
Conference Paper
Full-text available
As mobile and embedded computing devices become more pervasive, it is becoming obvious that the nature of interactions between users and computers must evolve. Applications need to become increasingly autonomous and invisible, by placing greater reliance on knowledge of context and reducing interactions with users. Moreover, applications must cope with highly dynamic environments in which resources, such as network connectivity and software services, frequently vary over time. This paper presents our vision of pervasive computing and enumerates the software engineering challenges involved in realizing this vision. It also evaluates the current state of research and presents an agenda for future investigations in pervasive computing.
Article
Full-text available
This article discusses the challenges in computer systems research posed by the emerging field of pervasive computing. It first examines the relationship of this new field to its predecessors: distributed systems and mobile computing. It then identifies four new research thrusts: effective use of smart spaces, invisibility, localized scalability, and masking uneven conditioning. Next, it sketches a couple of hypothetical pervasive computing scenarios, and uses them to identify key capabilities missing from today's systems. The article closes with a discussion of the research necessary to develop these capabilities
Article
Full-text available
The design and implementation of Coda, a file system for a large-scale distributed computing environment composed of Unix workstations, is described. It provides resiliency to server and network failures through the use of two distinct but complementary mechanisms. One mechanism, server replication, stores copies of a file at multiple servers. The other mechanism, disconnected operation, is a mode of execution in which a caching site temporarily assumes the role of a replication site. The design of Coda optimizes for availability and performance and strives to provide the highest degree of consistency attainable in the light of these objectives. Measurements from a prototype show that the performance cost of providing high availability in Coda is reasonable
Article
Full-text available
Pervasive computing promises to make life simpler via digital environments that sense, adapt, and respond to human needs. Yet we still view computers as machines that run programs in a virtual environment. Pervasive computing presumes a different vision. A device can be a portal into an application-data space, not just a repository of custom software a user must manage. An application is a means by which a user performs a task, not software written to exploit a device's capabilities. And a computing environment is an information-enhanced physical space, not a virtual environment that exists to store and run software. Pervasive computing is close to technical and economic viability.
Conference Paper
The use of context is important in interactive applications. It is par- ticularly important for applications where the user's context is changing rap- idly, such as in both handheld and ubiquitous computing. In order to better un- derstand how we can use context and facilitate the building of context-aware applications, we need to more fully understand what constitutes a context- aware application and what context is. Towards this goal, we have surveyed existing work in context-aware computing. In this paper, we provide an over- view of the results of this survey and, in particular, definitions and categories of context and context-aware. We conclude with recommendations for how this better understanding of context inform a framework for the development of context-aware applications.
Article
The book is an introduction to the idea of design patterns in software engineering, and a catalog of twenty-three common patterns. The nice thing is, most experienced OOP designers will find out they've known about patterns all along. It's just that they've never considered them as such, or tried to centralize the idea behind a given pattern so that it will be easily reusable.