A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Tratamento de Exceções Sensível a Contexto Karla Nazaré Ferreira Damasceno Orientador: Carlos José Pereira de Lucena Co-orientador:

Apresentações semelhantes


Apresentação em tema: "Tratamento de Exceções Sensível a Contexto Karla Nazaré Ferreira Damasceno Orientador: Carlos José Pereira de Lucena Co-orientador:"— Transcrição da apresentação:

1 Tratamento de Exceções Sensível a Contexto Karla Nazaré Ferreira Damasceno Orientador: Carlos José Pereira de Lucena Co-orientador: Alessandro Fabricio Garcia PUC-Rio, 22 de outubro de 2005

2 Laboratório de Engenharia de Software – PUC-Rio 2 Agenda Principais Conceitos –Tratamento de Exceções (TE) –Sensibilidade ao contexto Descrição do Problema e Proposta de Solução –Mecanismos de TE em Sistemas Multi-Agentes (SMAs) –TE em Middlewares para aplicações sensíveis ao contexto Mobile Collaboration Architecture (MoCA) Algumas discussões sobre TE utilizando MoCA Referências Bibliográficas

3 Laboratório de Engenharia de Software – PUC-Rio 3 Defeito, Erro e Falha Existe defeito (observável externamente) quando: –um componente ele deixa de oferecer as funcionalidades previstas ou faz em desacordo com sua especificação. Existe erro (estático e interno) quando: –existe de um estado interno em um componente, que sob determinadas entradas é propenso a ocorrência de um defeito. Falha é um evento ou seqüência de eventos que propicia o surgimento de um erro. Falha provoca um erro no estado do sistema, que se propaga até afetar o seu comportamento, resultando num defeito.

4 Laboratório de Engenharia de Software – PUC-Rio 4 Exceção Em situações de erro, um componente gera exceções. Exceções podem ser classificadas em: –de interface: sinalizada em resposta a uma requisição que não está conforme a interface do componente; –de defeito: sinalizada se um componente determina que por alguma razão não pode fornecer o serviço especificado; –internas: levantadas pelo componente para chamar sua própria medida interna de tolerância a falhas.

5 Laboratório de Engenharia de Software – PUC-Rio 5 Componente Ideal

6 Laboratório de Engenharia de Software – PUC-Rio 6 O que é Tratamento de Exceção? Capacidade de um software para: –reagir apropriadamente diante da ocorrência de exceções –continuar ou interromper sua execução, para preservar a máxima integridade de dados possível. O código (detecção e tratamento de exceções) em sistemas confiáveis é numeroso e complexo. Projeto dos mecanismos de tratamento de exceções deve ser simples, fácil de usar e fornecer separação entre código normal e excepcional.

7 Laboratório de Engenharia de Software – PUC-Rio 7 Taxonomia de Tratamento de Exceções A1. Representação da Exceção A2. Exceções externas em assinaturas A3. Separação entre exceção externa e interna A4. Localização de Tratadores A5. Associação (Binding) de Tratadores A6. Propagação de Exceção A7. Continuação do Fluxo de Controle A8. Ações de Clean-up A9. Verificações de Confiabilidade A10. Tratamento de Exceções Concorrente

8 Laboratório de Engenharia de Software – PUC-Rio 8 Contexto Informação que permite que um sistema tenha conhecimento de sua situação atual. De acordo com a definição abstrata de Dey et al Contexto é qualquer informação que pode ser usada para caracterizar a situação de uma entidade. Uma entidade é uma pessoa, lugar ou objeto que é considerado relevante para a interação entre um usuário e uma aplicação, incluindo o próprio usuário e a aplicação. Classificação: Dispositivo, Usuário e Ambiente. Exemplos de contextos: –perfil do usuário, localização, altitude, orientação, temperatura, velocidade, memória, bateria do dispositivo, CPU, etc. Contexto (context-aware) x contexto de tratamento de exceções (escopo).

9 Laboratório de Engenharia de Software – PUC-Rio 9 Sistema Sensível a Contexto Sistemas DISTRIBUÍDOS e MÓVEIS são caracterizados por: –Conexão instável e pouca largura de banda –Cenários de execução extremamente dinâmicos –Pouco sentido em esconder completamente informações de contexto e os detalhes de implementação Sistema sensível a contexto possui a habilidade para interpretar e usar contexto situacional para servir de base para um comportamento adaptativo baseado em mudanças neste contexto. De acordo com a definição abstrata de Dey et al: Um sistema é sensível a contexto se ele usa contexto para fornecer informação relevante e /ou serviços para o usuário, onde relevância depende da tarefa do usuário.

10 Laboratório de Engenharia de Software – PUC-Rio 10 Middleware Sensível ao Contexto Sensores: –capturam informações do ambiente e transformam em um formato digital para ser processado pelo ambiente computacional. Provedores de informação de contexto: –populam o sistema com as informações de contexto, geradas a partir dos dados recebidos pelos sensores ou outras informações de contexto. Brokers ou serviços de contexto: –registram os interesses de consumidores e disseminam as informações de contexto. Consumidores: –solicitam as informações de contexto. –são notificados pelo broker sobre a condição de interesse. –podem ser aplicações, serviços ou outros componentes do middleware.

11 Laboratório de Engenharia de Software – PUC-Rio 11 Provedor de informação Sensor A Sensor B Sensor C Broker de Contexto Contexto Consumidor

12 Laboratório de Engenharia de Software – PUC-Rio 12 Agenda Principais Conceitos –Tratamento de Exceções (TE) –Sensibilidade ao contexto Descrição do Problema e Proposta de Solução –Mecanismos de TE em Sistemas Multi-Agentes (SMAs) –TE em Middlewares para aplicações sensíveis ao contexto Mobile Collaboration Architecture (MoCA) Algumas discussões sobre TE utilizando MoCA Referências Bibliográficas

13 Laboratório de Engenharia de Software – PUC-Rio 13 Tratamento de Exceções em SMAs Tratamento de exceções é essencial para incorporação e estruturação das atividades de tolerância à falhas em um sistema de software confiável. Falta de suporte para tratamento de exceções em SMAs, duvidoso que possuam a robustez esperada. SMAs confiáveis requerem mecanismos apropriados considerando suas características particulares.

14 Laboratório de Engenharia de Software – PUC-Rio 14 Mecanismos de TE em SMAs Maior parte dos sistemas utiliza o mecanismo fornecido pela linguagens, o que não é apropriado para TE em SMAs. Existe a necessidade de integrar o TE com abstrações do paradigma de agentes. Tratamento de Exceções em SMAs: –deve envolver problemas de tratamento de exceções da programação seqüencial, concorrente e distribuída, além de novas questões como mobilidade e sensitividade a contexto.

15 Laboratório de Engenharia de Software – PUC-Rio 15 Tripathi e Miller Características Gerais Agente especial guardião atua como tratador de exceções para um conjunto de agentes. Exceções são classificadas em internas e externas ao agente, as externas são propagadas para o guardião. Principal característica: separação e encapsulamento do TE através do agente guardião. Problemas Encontrados Não existe suporte para TE nas colaborações entre os agentes. Desvantagens do guardião: –possibilidade de gerar somente reações gerais para as exceções, devido à impossibilidade de tratadores escritos no contexto da entidade que chamou o serviço; –gargalo criado para o sistema inteiro, pela centralização do tratamento de exceções em uma entidade especializada; Não considera as necessidades de aplicações móveis sensíveis a contexto.

16 Laboratório de Engenharia de Software – PUC-Rio 16 Souchon, Dony, Urtado e Vauttier Características Gerais Considera que mecanismos de TE para SMAs devem: –preservar o paradigma de agentes; –considerar a concorrência e a comunicação assíncrona; –considerar a organização social de agentes (grupos e papéis). Problemas Encontrados Preocupação quase que exclusiva com localização de tratadores. Não possibilita a associação dinâmica entre tratadores e ocorrências de exceção. Não considera as necessidades de aplicações móveis sensíveis a contexto.

17 Laboratório de Engenharia de Software – PUC-Rio 17 Iliasov e Romanovsky Características Gerais Permite recuperação de erros específicos da aplicação, em SMAs baseados em coordenação. Comunicação anônima entre os agentes que lêem tuplas do espaço de tuplas. Separação lógica forte das tuplas normais e excepcionais, usando um espaço de tuplas para exceções. Problemas Encontrados Específico para SMAs com interação baseada em espaços de tuplas. Não considera as necessidades de aplicações móveis sensíveis a contexto.

18 Laboratório de Engenharia de Software – PUC-Rio 18 Mecanismos de TE em SMAs Não tratam requisitos de aplicações sensíveis a contexto: 1.especificar explicitamente contextos excepcionais; 2.determinar a estratégia de tratamento, considerando contextos do agente e do dispositivo móvel; 3.realizar tratamento de contextos excepcionais concorrentes que ocorrem nos agentes e dispositivos móveis; 4.realizar tratamento cooperativo de um contexto excepcional que ocorre durante a execução da aplicação móvel.

19 Laboratório de Engenharia de Software – PUC-Rio 19 TE em Middlewares Sensíveis ao Contexto Arquiteturas existentes para sistemas sensíveis a contexto não se preocupam com a concepção de mecanismos de tratamento de exceções. Utilização apenas do mecanismo de tratamento de exceções fornecido por linguagens de programação.

20 Laboratório de Engenharia de Software – PUC-Rio 20 Exemplos de Middlewares MiddlewareModeloInformação de ContextoPrincipais componentes MocaBaseado em eventos ou Publish/Subscribe Dispositivo (como CPU, memória, energia, conexão, etc.) Localização do dispositivo Possibilidade de registro de interesse em eventos da aplicação Conjunto de APIs: cliente, servidor, comunicação síncrona e assíncrona. Conjunto de serviços: Monitor, Configuration Service (CS), Discovery Service (DS), Context Information Service (CIS), Location Inference Service (LIS), Symbolic Region Manager (SRM). LimeEspaço de Tuplas Não se aplica CARISMAReflexivo Recursos do Dispositivo (como energia, poder de processamento, tamanho da tela, memória, etc.) Recursos fora do dispositivo (como largura de banda, conexão da rede, hosts próximos, localização, etc.) Recursos definidos pela aplicação (como atividade e humor do usuário, etc.) Core, trata questões como o suporte p/ comunicação assíncrona e a descoberta de serviços; Context Management, interage com sensores físicos e monitora mudanças de contexto; Application Model, define framework padrão para criar e executar aplicações context-aware. Core Services, responsáveis por responder às requisições de qualidade de serviços definidas no nível de aplicação;

21 Laboratório de Engenharia de Software – PUC-Rio 21 Resumo dos problemas Agentes devem considerar os contextos onde estão atuando e os usuários do sistema onde estão inseridos. Tratamento de exceções deve considerar a variação de tais contextos. Modelos tradicionais de tratamento de exceções negligenciam tais problemas e não fornecem soluções apropriadas.

22 Laboratório de Engenharia de Software – PUC-Rio 22 Objetivos Levantar as propostas para tratamento de exceções para SMAs existentes na literatura; Definir um modelo geral de tratamento de exceções sensível ao contexto; Implementar o modelo utilizando a arquitetura MoCA; Implementar aplicações como estudo de caso.

23 Laboratório de Engenharia de Software – PUC-Rio 23 Agenda Principais Conceitos –Tratamento de Exceções (TE) –Sensibilidade ao contexto Descrição do Problema e Proposta de Solução –Mecanismos de TE em Sistemas Multi-Agentes (SMAs) –TE em Middlewares para aplicações sensíveis ao contexto Mobile Collaboration Architecture (MoCA) Algumas discussões sobre TE utilizando MoCA Referências Bibliográficas

24 Laboratório de Engenharia de Software – PUC-Rio 24 MoCA: Mobile Collaboration Architecture Middleware para desenvolvimento e execução de aplicações colaborativas sensíveis ao contexto: –Estruturado em uma rede wireless (802.11). –Usuários com laptops e palmtops. –Para aplicações intra-domínio (ex. campus de universidade). Provê meios para coletar, armazenar e processar dados de contexto dos dispositivos móveis. Consiste essencialmente em: –serviços centrais que permitem a execução de aplicações sensíveis ao contexto. –APIs que facilitam o desenvolvimento das aplicações e o acesso aos serviços fornecidos. –framework OO para instanciar os proxies para aplicação.

25 Laboratório de Engenharia de Software – PUC-Rio 25 Provedor de informação de contexto Sensor A Sensor B Sensor C Broker de Contexto Provedor Broker Provedor Broker CIS: Context Information Service Virtual Lines LIS: Location Inference Service Server

26 Laboratório de Engenharia de Software – PUC-Rio 26 Serviços DS CIS CS M LIS Server FW Proxy Legenda DS- Discovery Service CIS- Context Information Service (Provedor de contexto e Broker) LIS- Location Inference Service (Consumidor, Provedor de contexto e Broker) CS- Configuration Service M- Monitor (Sensor) Client Core Services Application API

27 Laboratório de Engenharia de Software – PUC-Rio 27 DS CIS CS M Requisição do Monitor: Qual endereço do CIS e sua periodicidade? Qual endereço do DS? requisição Qual Proxy? requisição resposta modificada Evento de Interesse registrar LIS IP e Porta do Proxy Subscrição Conteúdo da Subscrição: Subject: mac address, Expression: EnergyLevel < 10% and FreeMemory < 15000K GetDSAddress? Devices location Sub/Ev Server Proxy Context ClientMonitor FW API Legenda DS- Discovery Service CIS- Context Information Service (Provedor de contexto e Broker) LIS- Location Inference Service (Consumidor, Provedor de contexto e Broker) CS- Configuration Service M- Monitor (Sensor) Padrão Típico de Interações

28 Laboratório de Engenharia de Software – PUC-Rio 28 Cliente e Servidor APIDescrição ClientAPIFacilita programação da aplicação escondendo alguns detalhes referentes a programação de rede e uso da arquitetura MoCA. Inicia automaticamente o monitor, se desejado. ServerAPIPode ser usada para criar uma aplicação servidor, tal como um novo serviço. Se registra automaticamente no DS.

29 Laboratório de Engenharia de Software – PUC-Rio 29 Infra-estrutura de Comunicação APIDescrição Communication Protocols (Cm) Implementa protocolos para troca de mensagens síncronas e assíncronas entre objetos Java usando TCP ou UDP. Event Communication Interface (ECI) Implementa comunicação baseada em eventos (Publish/Subscribe). API de propósito geral, usada por alguns serviços MoCA, como LIS.

30 Laboratório de Engenharia de Software – PUC-Rio 30 Serviços APIDescrição Context Information Service (CIS Client) Implementa interface com CIS para fazer subscrições de expressões de interesse (SQL-like), e receber notificações quando as variáveis de contexto do dispositivo satisfazem uma expressão interesse. Location Inference Service (LIS) Oferece suporte a notificações (assíncronas) e consultas sobre uma localização ou um dispositivo específicos. Symbolic Region Manager (SRM) Armazena informações sobre hierarquias de regiões simbólicas, baseadas no conjunto de regiões atômicas definidas pelo LIS. Discovery Service (DS) Implementa uma interface com DS para armazenas informações, ou fazer consultas sobre qualquer serviço registrado no middleware.

31 Laboratório de Engenharia de Software – PUC-Rio 31 Dependências entre APIs

32 Laboratório de Engenharia de Software – PUC-Rio 32 Agenda Principais Conceitos –Tratamento de Exceções (TE) –Sensibilidade ao contexto Descrição do Problema e Proposta de Solução –Mecanismos de TE em Sistemas Multi-Agentes (SMAs) –TE em Middlewares para aplicações sensíveis ao contexto Mobile Collaboration Architecture (MoCA) Algumas discussões sobre TE utilizando MoCA Referências Bibliográficas

33 Laboratório de Engenharia de Software – PUC-Rio 33 Aplicação sensível ao contexto desenvolvida utilizando a arquitetura MoCA que realiza o controle de filas virtuais em parques de diversão; Objetivo: impedir que pessoas passem muito tempo esperando nas filas dos brinquedos e aproveitem melhor as atrações existentes no parque. Ao passar próximo de uma atração um usuário móvel pode coletar um ticket virtual que corresponde a um lugar na fila. O sistema avisa ao usuário sobre a proximidade de sua vez, para que ele retorne a tempo de participar. Quando o usuário não retorna a tempo, o sistema emite um alerta para ele avisando que perdeu sua vez na atração. Aplicação Virtual Lines

34 Laboratório de Engenharia de Software – PUC-Rio 34 Contexto Excepcional É necessário especificar situações excepcionais para que sejam devidamente consideradas e tratadas. Programador é responsável por especificar tais situações errôneas. São contextos indesejados ou perigosos, associados aos usuários, agentes da aplicação, ou dispositivo móvel. Têm significado especial e requerem ativação de ações de recuperação. Requerem tratamento imediato por parte aplicação na forma de invocação de tratadores.

35 Laboratório de Engenharia de Software – PUC-Rio 35 Exemplos de contextos excepcionais ou aconselhar que novas pessoas não entrem na fila, oferecer outras atrações próximas. Quando dispositivo entra em uma fila pode informar o horário que irá deixar o parque (escalonamento preferencial) e se eu não fizer de acordo com indicado pode receber uma exceção., algumas pessoas vão desejar sair da fila.

36 Laboratório de Engenharia de Software – PUC-Rio 36 Tratamento Proativo A colaboração é fundamental para que exista proatividade no tratamento de exceções. Utiliza a infra-estrutura de colaboração entre os dispositivos móveis na presença de contextos excepcionais. Parceiros constroem um corpo de conhecimento sobre as exceções conhecidas. Exceções são dinamicamente descobertas com base nos interesses registrados pelos parceiros da colaboração. Proativo: uma exceção desconhecida por um agente pode ser detectada com base nos parceiros na colaboração.

37 Laboratório de Engenharia de Software – PUC-Rio 37 Localização de Tratadores Agente ou dispositivo móvel: –, – Serviço de colaboração: –,. Todos os usuários e serviços de um servidor MoCA: –,. Localização (tratador referente uma região)? – ou.

38 Laboratório de Engenharia de Software – PUC-Rio 38 Associação (Binding) de Tratadores Reconfiguração dinâmica de tratadores de acordo com as informações de contexto., possíveis tratamentos: –oferecer troca com alguém da fila que deseje, –permitir que volte mais tarde se as pessoas na fila concordarem, –(Se perdeu porque estava em outra atração) informar ao próximo da fila e deixar que ele use a atração em seguida. Além disso, poderia considerar informações como: –em quantas filas ele já está aguardando sua vez; –há quanto tempo ele não participa de nenhuma atração, etc., possíveis tratamentos: –notificar a situação, alocar em fila de outra atração, ou manter na fila.

39 Laboratório de Engenharia de Software – PUC-Rio 39 Propagação de Exceção Diferentes estratégias: –classificar exceções de acordo com sua gravidade a fim de entender para qual nível ela deve ser propagada. Quando, pode receber exceções. notificado para os serviços em que ele está colaborando. pode ser propagado para todos os usuários colaborando no serviço. propagado para todos os usuários e serviços do servidor MoCA do parque.

40 Laboratório de Engenharia de Software – PUC-Rio 40 Contextos Excepcionais Concorrentes Suporte a contextos excepcionais concorrentes é um requisito fundamental para aplicações sensíveis ao contexto. É importante que exista: –mecanismo de ação atômica entre os participantes de uma colaboração, para recuperação colaborativa do sistema; –conceito de resolução de exceções concorrentes. Ocorrência de vários contextos excepcionais: decisão sobre qual é mais relevante para ser tratado.

41 Laboratório de Engenharia de Software – PUC-Rio 41 Representação de Contextos no MoCA A representação de contextos excepcionais pode ser similar a representação de contextos normais. Como é representado um contexto no MoCA? –CIS –Novos serviços definidos para aplicações MoCA –LIS Existem algumas diferenças na representação destas informações de contexto para estes serviços!

42 Laboratório de Engenharia de Software – PUC-Rio 42 Representação de Contexto no CIS Formato da subscrição de interesse para o CIS: –ID do dispositivo (endereço mac) + expressão lógica (representa o contexto de interesse sobre do dispositivo). Exemplos de expressões: –"(CPU > 90) –"((OnLine = False) and (DeltaT > 10000))

43 Laboratório de Engenharia de Software – PUC-Rio 43 Comunicação no CIS CIS oferece suporte para: comunicação baseada em eventos (ECI) e comunicação síncrona (communication protocol). Na comunicação síncrona, –responde todas as requisições com a última informação de contexto conhecida sobre o dispositivo. –não fornece suporte para processamento de expressões. Na comunicação assíncrona, –registra os interesses para um dispositivo específico e, sempre que o matching entre a notificação recebida do monitor e a expressão de interesse do cliente é verdadeiro, publica um evento para este cliente.

44 Laboratório de Engenharia de Software – PUC-Rio 44 Exemplo: Cliente Síncrono CIS request = new Request(00:02:2D:A5:06:46); tcpClient = new TCPConnection(); tcpClient.open(serverAddr); tcpClient.send(request); reply = (Reply) tcpClient.nonBlockingReceive(TIMEOUT); if (reply == null) return; if (reply instanceof ContextInformation) { ctx = (ContextInformation) reply; printOutDeviceContext(ctx); } else // if(reply instanceof ErrorMessage) { errorMsg = (ErrorMessage) reply; printOutErrorMessage(errorMsg); }

45 Laboratório de Engenharia de Software – PUC-Rio 45 Exemplo: Cliente Assíncrono CIS cis = new CisSubscriber(protocol,CISAddr,localAddr);... //Subscribe to subject with a specific expression topic1 = cis.subscribe("00:02:2D:A5:06:47","(CPU > 90)"); //Adding listener for the topic listener1 = new MyEventListener(); cis.addListener(listener1,topic1);... class MyEventListener implements EventListener { public void onReceiveData(Event event) { DeviceContext dvcContext = (DeviceContext) event.getData(); DeviceCtxManagement.printOutDeviceContext(dvcContext); }

46 Laboratório de Engenharia de Software – PUC-Rio 46 Representação de Contextos Excepcionais Utilização de uma Tag Especial Exception: sql = Exception(EnergyLevel < 30 and FreeMemory < 7500)"; topic = cis.subscribe("00:02:2D:A5:06:45", sql); Aspecto deve interceptar subscrições: –Verificar se é uma expressão de contexto excepcional, caso afirmativo, armazenar esta informação internamente; –Alterar expressão para retirar a tag Exception; –Realizar normalmente a subscrição no MoCA com a nova expressão; Aspecto deve interceptar os eventos recebidos: –Verificar se o evento é referente a expressão de contexto excepcional; –Se for contexto excepcional, chamar o tratador apropriado. Pode-se pensar em uma expressão de contexto excepcional que está associada a um grupo de dispositivos;

47 Laboratório de Engenharia de Software – PUC-Rio 47 Representação de Contexto no LIS Formato da subscrição de interesse para o LIS: –ID do dispositivo + DeviceListener –Nome da região + RegionListener Não existe expressão de interesse. Existem listeners para recebimento de eventos específicos;

48 Laboratório de Engenharia de Software – PUC-Rio 48 Exemplo: Cliente LIS // connect to lis lis = new LocationInferenceService(server, 55021, 55020); //subscribe to device listen DeviceListen deviceListen = new DeviceListen(); lis.subscribe(device, deviceListen); //subscribe to region listen Region[] regions = lis.getAtomicRegions(); RegionListen regionListen = new RegionListen(); for (int i = 0; i < regions.length; i++) { // subscribe for each region to receive an event when a device come in or out of it. lis.subscribe(regions[i].getName(), regionListen); }

49 Laboratório de Engenharia de Software – PUC-Rio 49 Exemplo: Cliente LIS private class DeviceListen implements DeviceListener { public void onRegionChanged(String deviceId, String areaId) { System.out.println(deviceId + "->" + areaId); } private class RegionListen implements RegionListener { public void onDeviceEntered(String regionId, String deviceId) { System.out.println("Device entered: " + regionId + " -> " + deviceId); } public void onDeviceExited(String regionId, String deviceId) { System.out.println("Device exited: " + regionId + " -> " + deviceId); }

50 Laboratório de Engenharia de Software – PUC-Rio 50 Referências Bibliográficas BROWN, P. J. The Stick-e Document: A Framework For Creating Context- aware Applications. In the Proceedings of the Electronic Publishing, pp , Laxenburg, Austria, IFIP. September CAPRA, L. Reflective Mobile Middleware for Context-Aware Applications. October (Ph.D. Thesis), Department of Computer Science, University College London, London. CAPRA, L.; EMMERICH, W. and MASCOLO, C. Exploiting Reflection and Metadata to build Mobile Computing Middleware. In Proc. of Workshop on Middleware for Mobile Computing. Co-located with Middleware Heidelberg, Germany. November CAPRA, L; EMMERICH, W. and MASCOLO, C. CARISMA: Context-Aware Reflexive mIddleware System for Mobile Applications. IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, Vol. 29, Issue 10, October pp CHAN, A. and CHUANG, S. MobiPADS: a reflective middleware for context- aware mobile computing. IEEE Transactions on Software Engineering, 29(12):1072{1085, Dec CHO, S. Y. Framework for the Composition and Interoperation of the Home Appliances based on Heterogeneous Middleware in Residential Networks. IEEE Trans. Consumer Electronics. Vol. 48 – Issue 3, pp

51 Laboratório de Engenharia de Software – PUC-Rio 51 Referências Bibliográficas COUTAZ, J. et al. Context is Key. Communications of the ACM, Special Issue on the Disappearing Computer. March 2005, Vol. 48, Issue 3. pp CUGOLA, G.; NITTO, E. and FUGGETTA, A. The JEDI Event-Based Infrastructure and its Applications to the Development of the OPSS WFMS. IEEE Transactions on Software Engineering, 27(9): 827–850, Sept DAVIES, N.; MITCHELL, K.; CHEVERST, K. and BLAIR, G. S. Developing a Context Sensitive Tourist Guide. Proc First Workshop on Human Computer Interaction for Mobile Devices, Glasgow. March DEY, A.K., and ABOWD, G.D. Towards A Better Understanding of Context and Context-Awareness. In the Workshop on the What, Who, Where, When and How of Context-Awareness. ACM Conference on Human Factors in Computer Systems (CHI 2000), The Hague, Netherlands. April 1-6, DIX, A., RODDEN, T., DAVIES, N., TREVOR, J., FRIDAY A. and PALFREYMAN, P. Exploiting Space and Location as a Design Framework for Interactive Mobile Systems. ACM Transactions on Computer-Human Interaction (TOCHI) FAHY, P.; CLARKE, S. CASS: Middleware for Mobile Context-Aware Applications. MobiSys 2004 Workshop on Context Awareness, Boston, Massachusetts, USA, June 2004.

52 Laboratório de Engenharia de Software – PUC-Rio 52 Referências Bibliográficas FERBER, J. Multi-Agent Systems: An Introduction to Distributed Artificial Intelligence. Addison Wesley Longman, GADDAH, A. and KUNZ, T. A Survey of Middleware Paradigms for Mobile Computing. July Carleton University Systems and Computing Engineering Technical Report. Ottawa, Ontario, Canada. GARCIA, A. F. et al. A Comparative Study of Exception Handling Mechanisms for Building Dependable Object-Oriented Software. Journal of Systems and Software, Elsevier, Vol. 59, Issue 2, November 2001, pp GARCIA, A. F.; BEDER, D. M.; RUBIRA, C. An Exception Handling Software Architecture for Developing Fault-Tolerant Software. 5th IEEE High Assurance Systems Engineering Symposium (HASE'2000), Albuquerque, New Mexico, USA, November GARCIA, A. F.; RUBIRA, C. Exception Handling in Concurrent Object- Oriented Systems. 14th Brazilian Contest on Dissertations and Thesis, CTD'2001, SBC, August Best Dissertation Award (In Portuguese) GARCIA, A. From Objects to Agents: An Aspect-Oriented Approach. Rio de Janeiro, p. Thesis (Doctoral Thesis) - Computer Science Department, Pontifical Catholic University of Rio de Janeiro.

53 Laboratório de Engenharia de Software – PUC-Rio 53 Referências Bibliográficas GARCIA, A., CHOREN, R., LUCENA, C., ROMANOVSKY, A., WEYNS, D., GIESE, H. Software Engineering for Large-Scale Multi-Agent Systems. SELMAS (Post-Workshop Report) ACM Software Engineering Notes, Vol. 30, (To Appear). GARCIA, A; RUBIRA C. Um Mecanismo Orientado a Objetos para Tratamento de Exceções em Software Concorrente Tolerante a Falha. Proceedings of the 8th Brazilian Symposion on Fault-Tolerant Computing, SBC, Campinas, SP, Brazil, June HOHPE, G. Your Coffee Shop Doesnt Use Two-Phase Commit. IEEE SOFTWARE, March - April 2005, vol. 22, n. 2, pp HULL, R.; NEAVES, P. and BEDFORD-ROBERTS, J. Towards Situated Computing. In the Proceedings of the 1st International Symposium on Wearable Computers (ISWC'97), pp , Cambridge, MA, IEEE. October 13-14, ILIASOV, A. & ROMANOVSKY, A. Exception Handling in Coordination-based Mobile Environments. In Proceedings 29th Annual International Computer Software and Applications Conference (COMPSAC), Edinburgh, Scotland, July IEEE CS Press. K¨ONIG-RIES, B. et al. On building an infrastructure for mobile and wireless systems: report on the nsf workshop on an infrastructure for mobile and wireless systems, oct. 15, SIGMOD Rec., 31(2):73–79, 2002.

54 Laboratório de Engenharia de Software – PUC-Rio 54 Referências Bibliográficas KON, F. et al. Monitoring, Security, and Dynamic Configuration with the dynamicTAO Reflective ORB. In Proceedings of the IFIP/ACM International Conference on Distributed Systems Platforms and Open Distributed Processing, pages 121–143, New York, April Springer-Verlag. LAC (Laboratory for Advanced Collaboration). MoCA: Mobile Collaboration Arquiteture. URL: LAMMING, M. and FLYNN, M. Forget-me-not: Intimate computing in support of human memory. In the Proceedings of the FRIEND 21: International Symposium on Next Generation Human Interfaces, pp , Meguro Gajoen, Japan LEDOUX, T. OpenCorba: a Reective Open Broker. In Reflection99, Volume 1616 of LNCS (Saint-Malo, France, July 1999), pp Springer-LEE, P.; ANDERSON, T. Fault Tolerance: Principles and Practice. Springer-Verlag, 2nd edition, Wien, Austria, January LEMOS, R.; ROMANOVSKY, A. Exception handling in the software lifecycle. International Journal of Computer Systems Science & Engineering, CRL Publishing, Vol. 16, Issue 2, March 2001, p LIPPERT, M.; LOPES, C. V. A Study on Exception Detection and Handling Using Aspect-Oriented Programming. In Proceedings of the 22nd International Conference of Software Engineering (ICSE2000), Limmerick, Ireland, June 2000, pp

55 Laboratório de Engenharia de Software – PUC-Rio 55 Referências Bibliográficas LYU, M. R.; CHEN, X.; WONG, T. -Y. Design and Evaluation of a Fault- Tolerant Mobile-Agent System. Intelligent Systems, Special Issue on Dependable Agent Systems, Vol. 19, Issue 5, September - October 2004, pp MEIER, R. and CAHILL, V. STEAM: Event-Based Middleware for Wireless Ad Hoc Networks. In Proceedings of the International Workshop on Distributed Event-Based Systems (ICDCS/DEBS'02). Vienna, Austria, MITCHELL, K. A Survey of Context-Aware Computing. Internal Technical Report, March MITCHELL, K. Supporting the Development of Mobile Context-Aware Computing. January (Ph.D. Thesis), Computing Department, Lancaster University, England, U.K. MURPHY, A. L.; PICCO, G. P.; ROMAN, G. -C. LIME: A Coordination Middleware Supporting Mobility of Hosts and Agents. Technical Report 2004, Washington University, Department of Computer Science, St. Louis, Missouri. PASCOE, J. Adding Generic Contextual Capabilities to Wearable Computers. In the Proceedings of the 2nd IEEE International Symposium on Wearable Computers (ISWC'98), pp , Pittsburgh, PA, IEEE. October 19-20, 1998.

56 Laboratório de Engenharia de Software – PUC-Rio 56 Referências Bibliográficas PIETZUCH, P. and BACON, J. Hermes: A Distributed Event-Based Middleware Architecture. Submitted to the Workshop on Distributed Event- Based Systems (DEBS), PROJETO ASPECTJ, Programming Guide. Disponível em:. Acesso em: 15 ago http://eclipse.org/aspectj/ ROMANOVSKY, A.; KIENZLE, J. Action-Oriented Exception Handling in Cooperative and Competitive Concurrent Object-Oriented Systems. ECOOP Workshop 2000: Advances in Exception Handling Techniques. pp. 147–164. RUBINSZTEJN, H. K. et al. Support for Context-Aware Collaboration. In Proceedings of the First International Workshop on Mobility Aware Technologies and Applications (MATA 2004), Florianópolis, Brasil, September SACRAMENTO, V. et al. MoCA: A Middleware for Developing Collaborative Aplications for Mobile Users. IEEE Distributed Systems Online, Vol.5, Issue 10, October SANTANGELO, G. et al. AJEFW: Um framework orientado a aspectos para tratamento de exceções. Primeiro Workshop Brasileiro de Desenvolvimento de Software Orientado a Aspectos (WASP'04), Brasília, Brasil, Outubro SCHILIT, B. N. and THEIMER, M. Disseminating Active Map Information to Mobile Hosts. IEEE Networks, pages 22-32, October 1994.

57 Laboratório de Engenharia de Software – PUC-Rio 57 Referências Bibliográficas SCHILIT, B. N., Adams, N. I. and Want, R., Context-aware Computing Applications. In the Proceedings of the 1st International Workshop on Mobile Computing Systems and Applications, pp , Santa Cruz, CA, IEEE. December 8-9, SCHMIDT, A., Beigl, M. and Gellersen, H. W. There is More to Context than Location. In Interactive Applications of Mobile Computing, Rostock, Germany, pp , November SERUGENDO, G. Di Marzo; ROMANOVSKY, A. Using Exception Handling for Fault-Tolerance in Mobile Coordination Based Environments in EHOOS03: Proceedings of the ECOOP 2003 Workshop on Exception Handling in Object- Oriented Systems. TR Department of Computer Science, University of Minnesota, Minneapolis, MN SOUCHON, F. et al. A proposition for exception handling in multi-agent systems. In Proceedings of SELMAS'03: 2nd International Workshop on Software Engineering for Large-Scale Multi-Agent Systems at ICSE03, Portland, Oregon, May 2003, pp SOUCHON, F. et al. Improving exception handling in multi-agent systems. In Software engineering for multi-agent systems II, Research issues and practical applications, C. Lucena, A. Garcia, A. Romanovsky, J. Castro and P. Alencar Editors, Springer-Verlag, LNCS 2940, February 2004.

58 Laboratório de Engenharia de Software – PUC-Rio 58 Referências Bibliográficas SOUCHON, F.; DONY, C.; URTADO, C; VAUTTIER, S. Handling exceptions in multi-agent systems: an application to the MADKit plataform. TRIPATHI, A.; MILLER, R. Exception Handling in Agent-Oriented Systems. In Romanovsky, A., Dony, C.,Knudsen, J.L., Tripathi, A., eds.: Advances in Exception Handling Techniques. LNCS (Lecture Notes in Computer Science) 2022, Springer-Verlag (2000). VARSHNEY, U. and VETTER, R. Emerging mobile and wireless networks. Commun. ACM, Vol. 43, Issue 6. pp.73–81, WEISS, G. (Editor). Multiagent Systems: A Modern Approach to Distributed Artificial Intelligence. The MIT Press, WOOLDRIDGE, M. An Introduction to Multiagent Systems, John Wiley & Sons, New York 2002.


Carregar ppt "Tratamento de Exceções Sensível a Contexto Karla Nazaré Ferreira Damasceno Orientador: Carlos José Pereira de Lucena Co-orientador:"

Apresentações semelhantes


Anúncios Google