• Sonuç bulunamadı

– Sermaye, Yedekler ve Diğer Özkaynak Kalemleri

Para possibilitar o entendimento minucioso do segundo aspecto da instanciação do UbiParking Client, o de tratamento de exceções sensível ao contexto, é necessário demonstrar exemplos detalhando três particularidades de implementação do mecanismo de tratamento de exceções contextuais proposto, incorporadas no FRonTES.

A primeira delas diz respeito a especificação de exceções contextuais que podem afetar a uma determinada tarefa. Conforme já apresentado na Sub-subseção 4.3.1.1, é possível se especificar em cada passo de uma tarefa um conjunto de exceções contextuais, cujos valores atribuídos às informação de contexto serão avaliados como expressões booleanas.

As exceções do conjunto atribuído a um passo de tarefa são avaliadas de forma disjunta, caso ocorram alterações de contexto que disparem essa ação. Já os valores das informações de contexto, atribuídos para cada exceção contextual, são interpretados como um contexto de ativação da exceção e são avaliados de forma conjuntiva. Todavia, ao ser detectado a ativação de uma exceção contextual (com um retorno verdadeiro da avaliação de uma expressão), é interrompida a análise do restante do conjunto de exceções atribuído a um passo. Assim, o fluxo de execução dessa tarefa é direcionado para o tratamento excepcional.

No algoritmo 5.4 é apresentado um trecho de código com um novo recorte sobre a especificação programática do terceiro passo da tarefaP❛r❦✐♥❣❚❛s❦. Nesse trecho de código é destacado a especificação de apenas uma exceção contextual. Na linha 6 deste algoritmo, é definida esta exceção passado como parâmetro a especificação das informações contextuais que a ativam. No caso, apenas a informação representada pela chave “vaga<número da vaga>” e pelo valor “bloqueada”.

Algoritmo 5.4: Trecho de código especificando uma exceção contextual para o terceiro passo da tarefaP❛r❦✐♥❣❚❛s❦. 1 ❚❛s❦❙t❡♣ ❢✐♥❛❧✐③❛❊st❛❝✐♦♥❛♠❡♥t♦❙t❡♣ = new ❚❛s❦❙t❡♣ (" S t e p 3 ") { 2 ❅❖✈❡rr✐❞❡ 3 p r o t e c t e d ❙❡t <? e x t e n d s ❈♦♥t❡①t✉❛❧❊①❝❡♣t✐♦♥ > ❣❡t❊①❝❡♣t✐♦♥❛❧❈♦♥t❡①t ( ) { 4 ●❡♥❡r❛❧❈♦♥t❡①t ❡①❝❡♣t✐♦♥❛❧❈♦♥t❡①t = new ●❡♥❡r❛❧❈♦♥t❡①t ( ) ; 5 ❡①❝❡♣t✐♦♥❛❧❈♦♥t❡①t . ❛❞❞❈♦♥t❡①t■♥❢♦r♠❛t✐♦♥ (new ❈♦♥t❡①t■♥❢♦r♠❛t✐♦♥ (" vaga "+(❙tr✐♥❣ ) ←֓ ❣❡t❇✉♥❞❧❡ ( ) . ❣❡t (" vaga ") , " b l o q u e a d a ") ) ; 6 ❈♦♥t❡①t✉❛❧❊①❝❡♣t✐♦♥ ❝ = new ❈♦♥t❡①t✉❛❧❊①❝❡♣t✐♦♥ ( ❡①❝❡♣t✐♦♥❛❧❈♦♥t❡①t ) ; 7 ❍❛s❤❙❡t<❈♦♥t❡①t✉❛❧❊①❝❡♣t✐♦♥ > s❡t❊①❝❡♣t✐♦♥s❚❤❛t❈❛♥❇❡❘❛✐s❡❞ = new ❍❛s❤❙❡t<←֓ ❈♦♥t❡①t✉❛❧❊①❝❡♣t✐♦♥ > ( ) ; 8 s❡t❊①❝❡♣t✐♦♥s❚❤❛t❈❛♥❇❡❘❛✐s❡❞ . ❛❞❞ ( ❝ ) ; 9 r e t u r n s❡t❊①❝❡♣t✐♦♥s❚❤❛t❈❛♥❇❡❘❛✐s❡❞ ; 10 } 11 12 ❅❖✈❡rr✐❞❡ 13 p r o t e c t e d v o i d ❞♦❲❤✐❧❡❊①❡❝✉t✐♥❣st❡♣ ( ) t h r o w s ■♥t❡rr✉♣t❡❞❊①❝❡♣t✐♦♥ {

14 ( . . . ) 15 }

16 } ;

Hipoteticamente, pode-se considerar o caso onde, para uma instância da tarefa P❛r❦✐♥❣❚❛s❦, a vaga 9 de um estacionamento qualquer foi recomendada para um usuário. Enquanto o usuário se dirige até a vaga especificada, pode ocorrer dessa vaga sofrer uma alteração na sua disponibilidade tornando-a “bloqueada”. Desse modo a informação de contexto “vaga 9 = bloqueada”, deverá ativar a exceção contextual.

Embora o protótipo desenvolvido conte com exceções contextuais definidas apenas no terceiro passo da tarefa P❛r❦✐♥❣❚❛s❦, simplificando a PoC, outras exceções contextuais podem ser lançadas e detectadas durante a execução deste ou dos demais passos da tarefa. Neste caso, as exceções serão as do tipo globais. Como já apresentado na seção 4.2, o componente ❊①❝❡♣t✐♦♥▼❛♥❛❣❡r❙❡r✈✐❝❡ será o responsável por detectar as exceções desse tipo no ambiente e propagar até as instâncias de tarefa em execução.

Como já apresentado na seção 4.2, O tratamento destas exceções deve ser espe- cificado no❉❡❢❛✉❧t❈♦♥t❡①t✉❛❧❊①❝❡♣t✐♦♥❍❛♥❞❧❡r, implementado no FRonTES através da classe ❉❡❢❛✉❧t❈♦♥t❡①t✉❛❧❊①❝❡♣t✐♦♥❍❛♥❞❧❡r❙❡r✈✐❝❡. No algoritmo 5.5, é mostrado um exemplo da utilização desta classe. A partir deste trecho de código, é possível perceber que esta classe implementa uma interface comum para os tratadores, chamada■❈♦♥t❡①t✉❛❧❊①❝❡♣t✐✲ ♦♥❍❛♥❞❧❡r❙❡r✈✐❝❡.

Esta interface possui apenas a assinatura do método ❤❛♥❞❧❡❈♦♥t❡①t✉❛❧❊①❝❡♣✲ t✐♦♥, recebendo como parâmetro uma instância de tarefa e uma exceção contextual. É neste método onde os tratamentos para as exceções contextuais globais devem ser especificados. Neste caso, o tratamento de uma exceção contextual global pode levar a uma adaptação no fluxo de execução de uma tarefa, como exibido na linha 11 do algoritmo 5.5. Por outro lado, caso a exceção não seja do tipo global, verificado através da instrução da linha 7, deverá ser propagada até a instância da tarefa em questão. Já na tarefa, são buscados tratadores específicos para a exceção detectada, que se presentes serão ativados, caso contrário a exceção é simplesmente ignorada.

Os tratadores específicos, por sua vez, podem ser especificados em uma instância de tarefa através do método s❡t❯s❡r❉❡❢✐♥❡❞❈♦♥t❡①t✉❛❧❊①❝❡♣t✐♦♥❍❛♥❞❧❡r, como mostrado no algoritmo 5.3.

Algoritmo 5.5: Trecho de código especificando o tratamento para exceções contextuais globais.

1 p u b l i c c l a s s ❉❡❢❛✉❧t❈♦♥t❡①t✉❛❧❊①❝❡♣t✐♦♥❍❛♥❞❧❡r❙❡r✈✐❝❡ i m p l e m e n t s ←֓ ■❈♦♥t❡①t✉❛❧❊①❝❡♣t✐♦♥❍❛♥❞❧❡r❙❡r✈✐❝❡{ 2 3 ❅❖✈❡rr✐❞❡ 4 p u b l i c v o i d ❤❛♥❞❧❡❈♦♥t❡①t✉❛❧❊①❝❡♣t✐♦♥ ( ❚❛s❦ t❛s❦ , 5 ❈♦♥t❡①t✉❛❧❊①❝❡♣t✐♦♥ ❡①❝❡♣t✐♦♥ ) { 6 7 i f(❡①❝❡♣t✐♦♥ . ❣❡t❈❧❛ss ( ) . ❣❡t❙✐♠♣❧❡◆❛♠❡ ( ) . ❡q✉❛❧s ( ●❧♦❜❛❧❈♦♥t❡①t✉❛❧❊①❝❡♣t✐♦♥ .c l a s s. ←֓ ❣❡t❙✐♠♣❧❡◆❛♠❡ ( ) ) ) { 8

9 / / D e f i n i r t r a t a m e n t o e x c e p c i o n a l p a r a c a d a t i p o de e x c e ç ã o g l o b a l 10 ( . . . ) 11 t❛s❦ . ❛❞❛♣t❈♦♥tr♦❧❋❧♦✇ ( ♥❡✇❋❧♦✇ ) ; 12 13 }e l s e { 14 15 ( . . . ) 16 / / P r o p a g a e x c e ç ã o p a r a t a r e f a 17 t❛s❦ . ♣r♦♣❛❣❛t❡❊①❝❡♣t✐♦♥❚♦❯s❡r❉❡❢✐♥❡❞❍❛♥❞❧❡r ( ❡①❝❡♣t✐♦♥ ) ; 18 } 19 20 } 21 22 } 5.4 Conclusão

Neste capítulo, foi descrito o domínio específico de sistemas de estacionamento ubí- quo, como um dos serviços de uma “cidade ubíqua”. Algumas funcionalidades deste domínio foram escolhidas para compor o cenário analisado. Tais funcionalidades foram reunidas para formar o sistema UbiParking, desenvolvido como uma prova de conceito.

O desenvolvimento desta PoC teve como principal objetivo validar o mecanismo de tratamento de exceções contextuais proposto nesse trabalho de dissertação. Algumas situ- ações excepcionais da tarefa P❛r❦✐♥❣❚❛s❦, principal tarefa do UbiParking e diversas vezes apresentada como exemplo neste trabalho, foram analisadas e implementadas demonstrando o funcionamento do mecanismo proposto. Além disso, foi explicado como este mecanismo pode ser utilizado através do FRonTES e como são implementadas as tarefas.

Em razão do caráter exploratório desta pesquisa, uma análise quantitativa dos benefícios providos pela utilização do mecanismo ou do framework propostos não se faz necessária. Ademais, apesar da simplicidade envolvida nos passos de tarefa implementados na PoC, é possível perceber a simplicidade envolvida na especificação das tarefas, seus contextos excepcionais e os seus tratamentos. Essa simplicidade é atribuída de forma empírica, com base na complexidade de implementação dos algoritmos apresentados no capítulo.

O próximo capítulo sumariza os resultados alcançados neste trabalho, assim como apresenta possíveis linhas de pesquisa a serem consideradas em trabalhos futuros.

6 CONCLUSÃO

Esta dissertação propôs um mecanismo para o tratamento de exceções sensível ao contexto para sistemas ubíquos construídos sob um modelo de desenvolvimento baseado em tarefas. Para facilitar a reutilização deste mecanismo de forma flexível foi também desenvolvido o framework FRonTES.

Na Seção 6.1 estão reunidos os principais resultados alcançados com a conclusão deste trabalho. E na Seção 6.3 são apontadas algumas perspectivas de trabalhos futuros decorrentes desta pesquisa.

6.1 Resultados Alcançados

Diante dos requisitos desafiadores dos sistemas ubíquos, tais como sensibilidade ao contexto, distribuição, autonomicidade, mobilidade e outros, desenvolver sistemas deste tipo torna-se uma atividade complexa. Ao se considerar que sistemas ubíquos podem realizar proativamente tarefas que impactam no cotidiano das pessoas, o requisito de dependabilidade ganha certo des- taque durante o ciclo de vida desses sistemas. O tratamento de exceções é amplamente utilizado como uma estratégia para possibilitar a tolerância a falhas em sistemas computacionais, logo, possibilita também obter melhorias relacionadas aos níveis de dependabilidade desses sistemas. Além disso, em sistemas ubíquos não só faltas relacionadas a software ou hardware podem levá- los a falhar, mas também condições de contexto excepcionais. Nesse âmbito, esta dissertação propôs um mecanismo de tratamento de exceções sensível ao contexto para sistemas ubíquos construídos sob um modelo de desenvolvimento baseado em tarefas.

O mecanismo proposto, através das suas funcionalidades de detecção de exceções contextuais, propagação e tratamento sensível ao contexto, facilita o desenvolvimento de siste- mas ubíquos orientados a tarefas capazes de lidar com situações indesejadas ou excepcionais. Com a utilização deste mecanismo no desenvolvimento de sistemas ubíquos torna-se mais simples garantir a capacidade de tolerar falhas e situações de contexto indesejadas. Essas funcionalidades foram delineadas e implementadas com a extensão da arquitetura do SysSU, como apresentado na seção 4.2.

A extensão dessa arquitetura permitiu adicionar componentes que colaboram entre si para monitorar o contexto e lançar exceções contextuais, que ocorrem quando o estado de contexto se altera e coincide com algum estado que esteja especificado como excepcional para o sistema, caracterizando a funcionalidade de detecção de exceções contextuais. Já a funcionalidade de tratamento de exceções sensível ao contexto do mecanismo proposto possibilita a adaptação, de acordo com o contexto e o tipo de exceção lançada, do fluxo de execução das tarefas que compõem um determinado sistema. Para lidar com exceções contextuais tanto podem ser realizadas adaptações no fluxo de uma ou várias tarefas quanto podem ser lançadas novas tarefas. É importante também destacar que a funcionalidade de tratamento de exceções sensível ao contexto do mecanismo funciona concomitantemente com o mecanismo de tratamento de exceções tradicional da linguagem Java, adotada na plataforma

(Android), a qual foi utilizada para implementação de referência. Por último, a propagação de exceções contextuais propicia que tratadores existentes no ambiente possam atuar sob exceções que não foram devidamente tratadas. Nesse caso, em consequência da reutilização do SysSU, é possível usufruir das propriedades de comunicação síncrona/assíncrona e desacoplada para possibilitar a implantação de tratadores sem interferir no funcionamento do sistema.

Além do mecanismo proposto, nesta dissertação foi proposto o framework FRon- TES, que através da organização e fornecimento de um conjunto de componentes prontos, torna mais fácil a utilização do mecanismo. Este, por sua vez, foi projetado para facilitar tanto a criação das tarefas que devem compor os sistemas ubíquos instanciados quanto a definição da porção excepcional desses sistemas (relacionada a detecção, propagação e tratamento de exceções contextuais). O framework foi utilizado no desenvolvimento de um protótipo, como prova de conceito, de um sistema ubíquo de controle de estacionamento, dado os cenários de exceções contextuais que podem ser explorados nesse tipo de sistema. Esta prova de conceito permitiu a demonstração das funcionalidades do mecanismo e a forma de utilizá-las, através do framework, aplicadas no tratamento de situações excepcionais. Esta prova de conceito possibilitou ratificar os benefícios e algumas limitações da utilização do mecanismo proposto para o tratamento de exceções contextuais em sistemas ubíquos orientados a tarefas.

Para comparar a proposta desta dissertação com os trabalhos relacionados no Ca- pítulo 3, a tabela 3.1 foi revisitada adicionando o mecanismo de tratamento de exceções sensível ao contexto juntamente ao framework FRonTES, propostos nesta dissertação, ao quadro comparativo. Na tabela 6.1 são então sumarizados novamente os requisitos tratados neste trabalho em comparação aos trabalhos relacionados já descritos no Capítulo 3.

Tabela 6.1: Comparativo entre os trabalhos relacionados e os principais requisitos explorados nesta dissertação. Soluções Requisitos Detecção de Exceções Sensível ao Contexto Seleção Sensível ao Contexto de Tratadores Propagação de Exceções Sensível ao Contexto Tratamento de Exceções

Sensível ao Contexto Orientação a Tarefas Iliasov e Romanovsky (2005)

Ranganathan (2005) Damasceno et al. (2006a) Adams et al. (2007) Kulkarni e Tripathi (2010) Cho e Helal (2011) Leite, Rubira e Castor (2011) Rocha e Andrade (2012)

Mec. Trat. de Exceções Sen. ao Contexto + FRonTES

Possui suporte Possui suporte parcial Não possui suporte

6.2 Limitações

Nos capítulos anteriores foram apresentadas características, funcionalidades e be- nefícios do mecanismo e framework propostos. Entretanto, as limitações deste trabalho, apresentadas de forma dispersa no texto, podem não ter sido percebidas adequadamente. Por

isso, com intuito de deixar explícito as restrições desta pesquisa, são listadas a seguir as suas quatro principais limitações.

• Apenas duas estratégias de fluxo de execução das tarefas são fornecidas no FRonTES, que são as estratégias de fila e lista encadeada. Essas estratégias podem dificultar, por exemplo, a criação de tarefas que exijam a execução de passos em paralelo. Atualmente, para realizar esse tipo de ação em um único passo devem ser criadas Threads diferentes dentro deste passo, onde todo o controle de fluxo ficará a cargo da implementação. • A resolução de exceções concorrentes no mecanismo é limitada, pois exceções concor-

rentes e assíncronas (como pode ser o caso das exceções contextuais) podem caracterizar a ocorrência de uma exceção semanticamente mais relevante. Para ilustrar essa limitação pode-se pensar na ocorrência de uma exceção de fumaça e de temperatura elevada no sistema de estacionamento ubíquo. Nessa situação talvez seja mais apropriado tratar essas duas exceções em conjunto com o tratador da exceção de fogo do que tratar isoladamente fumaça e temperatura elevada. No mecanismo proposto, considera-se que o contexto excepcional deve ser especificado e fornecido adequadamente na implementação de cada tarefa de forma que o tratamento adequado seja associado as exceções detectadas pelo sistema.

• A implementação do framework em um única plataforma (Java) também é uma limitação relacionada ao mecanismo, pois restringe sua reutilização em alguns tipos de dispositivos. • O fornecimento do mecanismo através de um framework exige uma certa curva de aprendizado antes da utilização. Esta limitação apesar de ter um certo destaque é inerente da utilização de qualquer framework, pois seu funcionamento e arquitetura devem ser conhecidos antes da reutilização. Apesar dessa limitação ser relevante, pode ser mitigada através de uma boa documentação e o fornecimento de implementações de exemplos.

Essas limitações são consideradas importantes e mostram pontos de melhoria neste trabalho. Algumas delas são apontadas a seguir como trabalhos a serem investigados pelos autores.

6.3 Trabalhos Futuros

Esta dissertação de mestrado aponta como relevante os seguintes trabalhos futuros relacionados a evolução do mecanismo proposto.

• A criação de uma linguagem de domínio específico (DSL) que possibilite a especificação das tarefas que compõem os sistemas e dos seus possíveis fluxos de execução. Além disso, a DSL criada poderia permitir a definição das exceções contextuais relevantes para o sistema e seus possíveis tratadores. A utilização de uma abordagem generativa para sua instanciação dos sistemas especificados através da DSL tornaria ainda mais fácil o processo de desenvolvimento. Uma DSL pode ser criada através da utilização

de kits de desenvolvimento, como, por exemplo, o Xtext1, onde a partir de uma gramática fornecida em tempo de projeto são gerados todos os elementos necessários para utilização da linguagem específica criada.

• A extensão das estratégias de controle dos fluxos de execução das tarefas, adicionando outros padrões de cadenciamento dos passos a serem executados. Poderiam ser adiciona- dos padrões, por exemplo, que facilitassem a criação de tarefas com fluxos alternativos e concorrentes. Essa extensão das estratégias pode ser obtida através da implementação de outras versões do componente❚❛s❦❈♦♥tr♦❧❋❧♦✇, existente na arquitetura do framework. • A modificação da estratégia de resolução das exceções, acrescentando uma estrutura de árvore para permitir tratar de maneira mais rica exceções contextuais que ocorram de forma concorrente. Essa melhoria pode ser obtida através da modificação da forma como o❊①❝❡♣t✐♦♥▼❛♥❛❣❡r❙❡r✈✐❝❡ resolve e dispara as exceções contextuais detectadas para as tarefas que estão subscritas a ele. Além disso, o❊①❝❡♣t✐♦♥▼❛♥❛❣❡r❙❡r✈✐❝❡ pode se utilizar das funcionalidades de agregação e filtros disponíveis no SysSU para auxiliar na resolução de exceções contextuais de mais alto nível.

• A implementação do FRonTES em outras plataformas, como windows phone e iOS.

Além desses tópicos de trabalhos futuros, é relevante a realização de estudos de casos com o desenvolvimento de sistemas ubíquos mais complexos em situações de desen- volvimento reais, variando como parâmetros a utilização e a não utilização do mecanismo e do FRonTES. Assim, é possível observar mais precisamente os benefícios de utilização dessas contribuições, sem desconsiderar os elementos de contexto de um ambiente de desenvolvimento real.

Por fim, também mostra-se relevante a realização de experimentos que permitam uma análise quantitativa sobre aspectos como a performance e o tempo de resposta do meca- nismo com a utilização do SysSU. A partir dessa análise quantitativa é possível obter valores de parâmetros base, que servirão tanto para indicar a adequação ou não do mecanismo a determinados domínios específicos de sistemas ubíquos quanto para permitir analisar o grau de escalabilidade do mecanismo.

REFERÊNCIAS BIBLIOGRÁFICAS

AALST, W.; ALDRED, L.; DUMAS, M.; HOFSTEDE, A. Design and implementation of the yawl system. In: PERSSON, A.; STIRNA, J. (Ed.). Advanced Information Systems Engineering. [S.l.]: Springer Berlin Heidelberg, 2004, (Lecture Notes in Computer Science, v. 3084). p. 142–159. ISBN 978-3-540-22151-7.

ABOWD, G. D. Software engineering issues for ubiquitous computing. In: Proceedings of the 21st International Conference on Software Engineering. New York, NY, USA: ACM, 1999. (ICSE’99), p. 75–84. ISBN 1-58113-074-0.

ADAMS, M.; HOFSTEDE, A. H. M. T.; AALST, W. M. P. V. D.; EDMOND, D. Dynamic, extensible and context-aware exception handling for workflows. In: Proceedings of the 2007 OTM Confederated international conference on On the move to meaningful internet systems: CoopIS, DOA, ODBASE, GADA, and IS - Volume Part I. Berlin, Heidelberg: Springer-Verlag, 2007. (OTM’07), p. 95–112. ISBN 3-540-76846-7, 978-3-540-76846-3. Disponível em: <http://dl.acm.org/citation.cfm?id=1784607.1784619>.

ARIEF, B.; ILIASOV, A.; ROMANOVSKY, A. On using the cama framework for developing open mobile fault tolerant agent systems. In: Proceedings of the 2006 international

workshop on Software engineering for large-scale multi-agent systems. New York, NY, USA: ACM, 2006. (SELMAS ’06), p. 29–36. ISBN 1-59593-395-6. Disponível em: <http://doi.acm.org/10.1145/1138063.1138070>.

AVIZIENIS, A.; LAPRIE, J.-C.; RANDELL, B. Dependability and its threats: A taxonomy. In: JACQUART, R. (Ed.). Building the Information Society. Springer US, 2004, (IFIP International Federation for Information Processing, v. 156). p. 91–120. ISBN 978-1-4020-8156-9.

Disponível em: <http://dx.doi.org/10.1007/978-1-4020-8157-6_13>.

AVIZIENIS, A.; LAPRIE, J.-C.; RANDELL, B.; LANDWEHR, C. Basic concepts and taxonomy of dependable and secure computing. IEEE Transactions on Dependable and Secure Computing, IEEE Computer Society Press, Los Alamitos, CA, USA, v. 1, n. 1, p. 11–33, 2004. ISSN 1545-5971.

BADRAM, J.; FRIDAY, A. Ubiquitous computing. In: KRUMM, J. (Ed.). Ubiquitous Computing Fundamentals. Redmond, Washington, USA: Chapman and HallCRC, 2010. p. 37–94. ISBN 978-1420093605.

BARDRAM, J. E.; CHRISTENSEN, H. B. Pervasive computing support for hospitals: An overview of the activity-based computing project. IEEE Pervasive Computing, IEEE Educational Activities Department, Piscataway, NJ, USA, v. 6, n. 1, p. 44–51, jan. 2007. ISSN 1536-1268. Disponível em: <http://dx.doi.org/10.1109/MPRV.2007.19>.

BEDER, D. M.; ARAúJO, R. B. de. Towards the definition of a context-aware exception handling mechanism. In: Dependable Computing Workshops (LADCW), 2011 Fifth Latin-American Symposium on. [S.l.: s.n.], 2011. p. 25 –28.

BORCHERS, J.; RINGEL, M.; TYLER, J.; FOX, A. Stanford interactive workspaces: a framework for physical and graphical user interface prototyping. Wireless Communications, IEEE, v. 9, n. 6, p. 64 – 69, dec. 2002. ISSN 1536-1284.

BRITO, P. H. S.; LEMOS, R. D.; RUBIRA, C. M. F.; MARTINS, E. Architecting fault tolerance with exception handling: verification and validation. J. Comput. Sci. Technol., Institute of Computing Technology, Beijing, China, v. 24, n. 2, p. 212–237, mar. 2009. ISSN 1000-9000. Disponível em: <http://dx.doi.org/10.1007/s11390-009-9219-2>.

BRUMITT, B.; MEYERS, B.; KRUMM, J.; KERN, A.; SHAFER, S. A. Easyliving: Technologies for intelligent environments. In: Proceedings of the 2nd international symposium on Handheld and Ubiquitous Computing. London, UK, UK: Springer- Verlag, 2000. (HUC ’00), p. 12–29. ISBN 3-540-41093-7. Disponível em: <http://dl.acm.org/citation.cfm?id=647986.743885>.

BUTHPITIYA, S.; LUQMAN, F.; GRISS, M.; XING, B.; DEY, A. K. Hermes – a context-aware application development framework and toolkit for the mobile environment. In: Proceedings of the 2012 26th International Conference on Advanced Information Networking and Applications Workshops. Washington, DC, USA: IEEE Computer Society, 2012. (WAINA ’12), p. 663–670. ISBN 978-0-7695-4652-0. Disponível em: <http://dx.doi.org/10.1109/WAINA.2012.43>. CAMPBELL, R. H.; RANDELL, B. Error recovery in asynchronous systems. IEEE Transactions on Software Engineering, IEEE Press, Piscataway, NJ, USA, v. 12, p. 811–826, August 1986. ISSN 0098-5589.

CARRIERO, N.; GELERNTER, D. Linda in context. Commun. ACM, ACM, New York, NY, USA, v. 32, n. 4, p. 444–458, abr. 1989. ISSN 0001-0782. Disponível em: <http://doi.acm.org/10.1145/63334.63337>.

CHEN, C.; XU, Y.; LI, K.; HELAL, S. Reactive programming optimizations in pervasive computing. In: Applications and the Internet (SAINT), 2010 10th IEEE/IPSJ International Symposium on. [S.l.: s.n.], 2010. p. 96 –104.

CHETAN, S.; RANGANATHAN, A.; CAMPBELL, R. Towards fault tolerance pervasive computing. IEEE Technology and Society Magazine, v. 24, n. 1, p. 38–44, March 2005. ISSN 0278-0097.

CHEVERST, K.; DAVIES, N.; MITCHELL, K.; FRIDAY, A. Experiences of developing and deploying a context-aware tourist guide: the guide project. In: Proceedings of the 6th annual international conference on Mobile computing and networking. New York, NY, USA: ACM, 2000. (MobiCom ’00), p. 20–31. ISBN 1-58113-197-6. Disponível em: <http://doi.acm.org/10.1145/345910.345916>.

CHO, E.-S.; HELAL, S. A situation-based exception detection mechanism for safety in pervasive systems. In: Proceedings of the 2011 IEEE/IPSJ International Symposium on Applications and the Internet. Washington, DC, USA: IEEE Computer Society, 2011. (SAINT ’11), p. 196–201. ISBN 978-0-7695-4423-6. Disponível em: <http://dx.doi.org/10.1109/SAINT.2011.35>.

COSTA, C. A. da; YAMIN, A. C.; GEYER, C. F. R. Toward a general software infrastructure for ubiquitous computing. IEEE Pervasive Computing, v. 7, n. 1, p. 64 –73, jan.-march 2008. ISSN 1536-1268.

COULOURIS, G.; DOLLIMORE, J.; KINDBERG, T.; BLAIR, G. Distributed Systems: Concepts and Design. 5th. ed. USA: Addison-Wesley Publishing Company, 2011. ISBN 0132143011, 9780132143011.

DAMASCENO, K.; CACHO, N.; GARCIA, A.; ROMANOVSKY, A.; LUCENA, C. Context-aware exception handling in mobile agent systems: The moca case. In: Proceedings of the 2006 international workshop on Software Engineering for Large-Scale Multi-Agent Systems. New York, NY, USA: ACM, 2006. (SELMAS ’06), p. 37–44. ISBN 1-59593-395-6. DAMASCENO, K.; CACHO, N.; GARCIA, A.; LUCENA, C. Tratamento de exceções sensível ao contexto. In: XX Simpósio Brasileiro de Engenharia de Software (SBES’2006). [S.l.: s.n.], 2006. p. 49–64.

DAMASCENO, K. N. F. Tratamento de Exceções Sensível ao Contexto. Dissertação (Mestrado) — Pontifícia Universidade Católica do Rio de Janeiro - PUC-Rio, 2006.