41 |
Tratamento de exceções no desenvolvimento de sistemas tolerantes a falhas baseadas em componentes / Exception handling in the development of fault-tolerant component-based systemsLima Filho, Fernando Jose Castor de 30 November 2006 (has links)
Orientador: Cecilia Mary Fischer Rubira / Tese (doutorado) - Universidade Estadual de Campinas, Instituto de Computação / Made available in DSpace on 2018-08-10T07:04:57Z (GMT). No. of bitstreams: 1
LimaFilho_FernandoJoseCastorde_D.pdf: 5063998 bytes, checksum: 8bfec9185fab14cb08c2a8b2ce7391a9 (MD5)
Previous issue date: 2006 / Resumo: Mecanismos de tratamento de exceções foram concebidos com o intuito de facilitar o gerenciamento da complexidade de sistemas de software tolerantes a falhas. Eles promovem uma separação textual explícita entre o código normal e o código que lida com situações anormais, afim de dar suporte a construção de programas que são mais concisos fáceis de evoluir e confáveis. Diversas linguagens de programação modernas e a maioria dos modelos de componentes implementam mecanismos de tratamento de exceções. Apesar de seus muitos benefícios, tratamento de exceções pode ser a fonte de diversas falhas de projeto se usado de maneira indisciplinada. Estudos recentes mostram que desenvolvedores de sistemas de grande escala baseados em infra-estruturas de componentes têm hábitos, no tocante ao uso de tratamento de exceções, que tornam suas aplicações vulneráveis a falhas e difíceis de se manter. Componentes de software criam novos desafios com os quais mecanismos de tratamento de exceções tradicionais não lidam, o que aumenta a probabilidade de que problemas ocorram. Alguns exemplos são indisponibilidade de código fonte e incompatibilidades arquiteturais. Neste trabalho propomos duas técnicas complementares centradas em tratamento de exceções para a construção de sistemas tolerantes a falhas baseados em componentes. Ambas têm ênfase na estrutura do sistema como um meio para se reduzir o impacto de mecanismos de tolerância a falhas em sua complexidade total e o número de falhas de projeto decorrentes dessa complexidade. A primeira é uma abordagem para o projeto arquitetural dos mecanismos de recuperação de erros de um sistema. Ela trata do problema de verificar se uma arquitetura de software satisfaz certas propriedades relativas ao fluxo de exceções entre componentes arquiteturais, por exemplo, se todas as exceções lançadas no nível arquitetural são tratadas. A abordagem proposta lança de diversas ferramentas existentes para automatizar ao máximo esse processo. A segunda consiste em aplicar programação orientada a aspectos (AOP) afim de melhorar a modularização de código de tratamento de exceções. Conduzimos um estudo aprofundado com o objetivo de melhorar o entendimento geral sobre o efeitos de AOP no código de tratamento de exceções e identificar as situações onde seu uso é vantajoso e onde não é / Abstract: Exception handling mechanisms were conceived as a means to help managing the complexity of fault-tolerant software. They promote an explicit textual separation between normal code and the code that deals with abnormal situations, in order to support the construction of programs that are more concise, evolvable, and reliable. Several mainstream programming languages and most of the existing component models implement exception handling mechanisms. In spite of its many bene?ts, exception handling can be a source of many design faults if used in an ad hoc fashion. Recent studies show that developers of large-scale software systems based on component infrastructures have habits concerning the use of exception handling that make applications vulnerable to faults and hard to maintain. Software components introduce new challenges which are not addressed by traditional exception handling mechanisms and increase the chances of problems occurring. Examples include unavailability of source code and architectural mismatches. In this work, we propose two complementary techniques centered on exception handling for the construction of fault-tolerant component-based systems. Both of them emphasize system structure as a means to reduce the impactof fault tolerance mechanisms on the overall complexity of a software system and the number of design faults that stem from complexity. The ?rst one is an approach for the architectural design of a system?s error handling capabilities. It addresses the problem of verifying whether a software architecture satis?es certain properties of interest pertaining the ?ow of exceptions between architectural components, e.g., if all the exceptions signaled at the architectural level are eventually handled. The proposed approach is based on a set of existing tools that automate this process as much as possible. The second one consists in applying aspect-oriented programming (AOP) to better modularize exception handling code. We have conducted a through study aimed at improving our understanding of the efects of AOP on exception handling code and identifying the situations where its use is advantageous and the ones where it is not / Doutorado / Doutor em Ciência da Computação
|
42 |
Um ambiente para ensino de algoritmos de consensoSeabra, Isana Luzia 24 October 2004 (has links)
Orientador: Luiz Eduardo Buzato / Dissertação (mestrado profissional) - Universidade Estadual de Campinas, Instituto de Computação / Made available in DSpace on 2018-08-06T02:03:04Z (GMT). No. of bitstreams: 1
Seabra_IsanaLuzia_M.pdf: 1123422 bytes, checksum: 35a2333550e0c4f62cff398bdfa965f2 (MD5)
Previous issue date: 2004 / Resumo: Sistemas distribuídos são aqueles em que vários processos autônomos são executados em máquinas distintas de uma rede de computadores para a realização de uma tarefa conjunta, sendo que a comunicação entre eles é através de troca de mensagens. Uma das principais características, cada vez mais presente nesses sistemas, é o compartilhamento de informação. Isso implica que eles devem garantir que o valor dessa informação é consistente para todos os processos - podemos citar, por exemplo, a manutenção de réplicas de base de dados. Para garantir uma informação consistente, todos os processos devem convergir para um mesmo valor, obtendo um valor de consenso para a informação. Na presença de falhas, sejam elas provenientes de processo ou de comunicação, a literatura nos mostra que obter consenso torna-se um problema de solução não trivial. Dada a importância desse assunto nas aplicações atuais e a vasta literatura que dificulta o início de seu estudo, este trabalho tem como objetivo oferecer um material sucinto e didático que venha facilitar o estudo inicial sobre algoritmos distribuídos para o problema de consenso, tendo como foco principal os alunos de graduação. Para tanto, contextualizamos o problema de consenso em sistemas distribuídos; descrevemos alguns algoritmos com características semelhantes; propomos um estudo detalhado do algoritmo definido por Pease, Shostak e Lamport [1], que chamamos de Algoritmo Fundamental; e apresentamos uma arquitetura em Java como subsídio para a implementação desses algoritmos, juntamente com uma implementação exemplo do Algoritmo Fundamental / Abstract: Distributed systems are those systems in which many autonomous processes are executed in different machines that belong to a computer network for the accomplishment of a cooperative task; the communication among them is carried out strictly through the exchange of messages. One of the main characteristics of these systems is replicated information sharing which means that they should guarantee that the value of this information is consistent for all the processes that have access to it. To guarantee consistency of information, all the processes should agree on the use of a same value for it. In the presence of partial failures, either caused by process or communication problems, the literature shows that reaching consensus becomes a problem of non-trivial solution. Due to its difficulty and practical importance consensus has gained momentus within the community of researchers and spawn a vast literature that makes it difficult for an undergraduate student to start its study. This research has the objective of offering some concise and didactic material to ease the initial studies of distributed consensus. In order to do that, we have contextualized the consensus problem in distributed systems; described some algorithms with similar characteristics; proposed a detailed study of the algorithm defined by Pease, Shostak e Lamport [1], which we call Fundamental Algorithm; and presented a Java based architecture as a subsidy for the implementation of these algorithms where the Fundamental Algorithm has been implemented. / Mestrado / Engenharia de Computação / Mestre Profissional em Computação
|
43 |
Arquitetura de software para recuperaçao de falhas utilizando checkpointing quase-sincrono / Software architecture for fault-recovery using quasi-synchronous checkpointingSilva, Ulisses Furquim Freire da 05 May 2005 (has links)
Orientadores: Islene Calciolari Garcia / Dissertação (mestrado) - Universidade Estadual de Campinas, Instituto de Computação / Made available in DSpace on 2018-08-06T15:21:09Z (GMT). No. of bitstreams: 1
Silva_UlissesFurquimFreireda_M.pdf: 705102 bytes, checksum: 5b4ebc6853f67fd40696b21c87297f43 (MD5)
Previous issue date: 2005 / Resumo: Um sistema distribuído tolerante a falhas que utilize recuperação por retrocesso de estado deve selecionar os checkpoints dos seus processos que serão gravados. Além dessa seleção, definida por um protocolo de checkpointing, o sistema precisa realizar uma coleta de lixo, para eliminar os checkpoints que se tornam obsoletos à medida que a aplicação executa. Assim, na ocorrência de uma falha, a computação pode ser retrocedida para um estado consistente salvo anteriormente. Esta dissertação discute os aspectos teóricos e práticos de um sistema distribuído tolerante a falhas que utiliza protocolos de checkpointing quase-síncronos e algoritmos para a coleta de lixo e recuperação por retrocesso. Existem vários protocolos de checkpointing na literatura, e nesta dissertação foram estudados os protocolos de checkpointing quase-síncronos. Esses protocols enviam informações de controle juntamente com as mensagens da aplicação, e podem exigir a gravação de checkpoints forçados, mas não necessitam de sincronização ou troca de mensagens de controle entre os processos. Com base nesse estudo, um framework para protocolos de checkpointing quase-sincronos foi implementado numa biblioteca de troca de mensagens chamada LAM/MPI. Além disso, uma arquitetura de software para recuperação de falhas por retrocesso de estado chamada Curupira também foi estudada e implementada naquela biblioteca. O Curupira_e a primeira arquitetura de software que n~ao precisa de troca de mensagens de controle ou qualquer sincronização entre os processos na execução dos protocolos de checkpointing e de coleta de lixo / Abstract: A fault-tolerant distributed system based on rollback-recovery has to checkpoints of its processes are stored. Besides this selection, that is controlled checkpointing protocol, the system has to do garbage collection, in order to eliminate that become obsolete while the application executes. The garbage collection because checkpoints require the use of storage resources and the storage has limited capacity. So, when some fault occurs, the whole distributed be restored to a consistent global state previously stored. This dissertation practical and theoretical aspects of a fault-tolerant distributed system quasisynchronous checkpointing protocols and also garbage collection and algorithms. There are several checkpointing protocols proposed in the literature, quasisynchronous ones were studied in this dissertation. These protocols information in the application's messages and can induce forced checkpoints, need any synchronization or exchanging of control messages among on that study, a framework for quasi-synchronous checkpointing implemented in a message passing library called LAM/MPI. Moreover, a based on rollback-recovery from faults named Curupira was also implemented in that library. Curupira is the _rst software architecture exchanging of control messages or any synchronization among the execution of the checkpointing and garbage collection protocols / Mestrado / Sistemas Distribuidos / Mestre em Ciência da Computação
|
44 |
Adaptação de componentes de software para o desenvolvimento de sistemas confiaveisWeiss, Gerson Mizuta 13 June 2001 (has links)
Orientador: Cecilia Mary Fischer Rubira / Dissertação (mestrado) - Universidade Estadual de Campinas, Instituto de Computação / Made available in DSpace on 2018-07-29T00:28:53Z (GMT). No. of bitstreams: 1
Weiss_GersonMizuta_M.pdf: 3249749 bytes, checksum: 3ff530151ac4b2a4a10dcdc424738e42 (MD5)
Previous issue date: 2001 / Resumo: O desenvolvimento de software baseado em componentes tem como objetivo a diminuição dos custos de desenvolvimento através da composição de componentes de software reutilizáveis. Normalmente, um componente de software deve ser adaptado a fim de adequá-Io às características impostas pelo projeto do sistema em desenvolvimento. A adaptação de componentes busca aumentar o grau de reutilização dos componentes de software e ajudar os desenvolvedores de sistemas na composição dos componentes adquiridos de terceiros. Este trabalho propõe uma técnica de adaptação de componentes de software que utiliza conceitos de reflexão computacional para realizar adaptações de maneira transparente, onde o cliente do componente adaptado não tem conhecimento acerca das adaptações realizadas. Além disso, não é necessário o acesso ao código fonte do componente e nem a presença de um sistema executivo que controle a execução da aplicação. A técnica de adaptação proposta foi implementada para atuar sobre componentes desenvolvidos em J ava. São apresentados alguns exemplos nos quais a técnica de adaptação proposta é utilizada para adicionar propriedades não-funcionais, como tolerância a falhas e segurança, aos componentes de software / Abstract: The component-based software development aims at the reduction of the development costs through the composition of reusable software components. Usually a software component must be adapted in order to agree with the design of the system. The adaptation of software components is a manner to increase the reuse of components and help developers in the composition of third-party software components. This work presents a software component adaptation technique based on computational reflection that makes transparent adaptations, where the client of the adapted component does not have knowledge about the adaptations made. Besides that, the technique does not need to acess the component's source code and it is not necessary the presence of an executive system that controls the system's execution. The technique proposed is implemented to adapt software components developed in Java. The technique was used to add non-functional properties, such as fault tolerance, security and exception handling, to software components / Mestrado / Mestre em Ciência da Computação
|
45 |
Protocolos multicoordenados de acordo e o serviço de log / Multicoordinated agreement problems and the log serviceCamargos, Lásaro Jonas 12 December 2008 (has links)
Orientador: Edmundo R. M. Madeira, Fernando Pedone / Tese (doutorado) - Universidade Estadual de Campinas, Instituto de Computação / Made available in DSpace on 2018-08-13T10:28:10Z (GMT). No. of bitstreams: 1
Camargos_LasaroJonas_D.pdf: 1941705 bytes, checksum: 23f0f1380c7d6262497ec13b43519301 (MD5)
Previous issue date: 2008 / Resumo: Problemas de acordo, como Consenso, Terminação Atômica e Difusão Atômica, são abstrações comuns em sistemas distribuídos. Eles ocorrem quando os componentes do sistema precisam concordar em reconfigurações, mudanças de estado ou em linhas de ação em geral. Nesta tese, investigamos estes problemas no contexto do ambiente e aplicações em que serão utilizados. O modelo geral é o assíncrono sujeito a quebras com possível posterior recuperação. Nossa meta é desenvolver protocolos que explorem esta informação contextual para prover maior disponibilidade, e que se mantenham corretos mesmo que algumas das prerrogativas do contexto tornem-se inválidas. Na primeira parte da tese, exploramos a seguinte propriedade: mensagens difundidas em pequenas redes tendem a ser entregues ordenada e confiavelmente. Nós fazemos três contribuições nesta parte da tese. A primeira é a transformação de algoritmos conhecidos para o modelo quebra-e-pára, que utilizam a propriedade de ordenação mencionada, em protocolos práticos. Isto é, protocolos que toleram perda de mensagens e recuperação após a quebra. Nossos protocolos garantem progresso na presença de falhas, contanto que mensagens sejam espontaneamente ordenadas freqüentemente. Na ausência de ordenação expontânea, outras prerrogativas são necessárias para contornar falhas. A segunda contribuição é a generalização de um dos algoritmos citados acima em um modo de execução "multi-coordenado" em um protocolo híbrido de consenso, que usa ou ordenação expontânea ou detecção de falhas para progredir. Em comparação a outros protocolos, o nosso provê maior disponibilidade sem comprometer resiliência. A terceira contribuição é a utilização do modo multi-coordenado para resolver Consenso Generalizado, um problema que generaliza uma série de outros e que, portanto, é de grande interesse prático. Além disso, fizemos diversas considerações sobre aspectos práticos da utilização deste protocolo. Como resultado, nosso protocolo perde desempenho gradualmente no caso de condições desfavoráveis, permite o balanceamento de carga sobre os coordenadores, e acessa a memória estável parcimoniosamente. Na segunda parte da tese, consideramos problemas de acordo no contexto de redes organizadas hierarquicamente. Em específico, nós consideramos uma topologia usada nos data centers de grandes cooporações: grupos de máquinas conectadas internamente por links de baixa latência, mas por links mais lentos entre grupos. Em tais cenários, latência é claramente um fator importante e reconfigurações, onerosas aos protocolos, devem ser evitadas tanto quanto possível. Nossa contribuição neste tópico está em evitar reconfigurações e melhorar a disponibilidade de um protocolo de acordo que é rápido a despeito de colisões. Isto é, um protocolo que consegue chegar a uma decisão em dois passos inter-grupos mesmo quando várias propostas são feitas concorrentementes. Além do uso da técnica de multicoordenação, nós usamos primitivas de multicast e consenso para conter algumas reconfigurações dentro dos grupos, onde seus custos são menores. Na última parte da tese nós estudamos o problema de terminação de transações distribuídas. O problema consiste em garantir que os vários participantes da transação concordem em aplicar ou cancelar de forma consistente as suas operações no contexto da transação. Além disso, é necessário garantir a durabilidade das alterações feitas por transações terminadas com sucesso. Nossa contribuição neste tópico é um serviço de log que abstrai e desassocia a terminação de transações dos processos que executam tais transações. O serviço funciona como uma caixa preta e permite que resource managers lentos ou falhos sejam reiniciados em servidores diferentes, sem dependências na memória estável do servidor em que executava anteriormente. Nós apresentamos e avaliamos experimentalmente duas implementações do serviço. / Abstract: Agreement problems are a common abstraction in distributed systems. They appear when the components of the system must concur on reconfigurations, changes of state, or in lines of action in general. Examples of agreement problems are Consensus, Atomic Commitment, and Atomic Broadcast. In this thesis we investigate these abstractions in the context of the environment in which they will run and the applications that they will serve; in general, we consider the asynchronous crash-recovery model. The goal is to devise protocols that explore the contextual information to deliver improved availability. The correctness of our protocols holds even when the extra assumptions do not. In the first part of this thesis we explore the following property: messages broadcast in small networks tend to be delivered in order and reliably. We make three contributions in this part. The first contribution is to turn known Consensus algorithms that harness this ordering property to reach agreement in the crash-stop model into practical protocols. That is, protocols that tolerate message losses and recovery after crashes, efficiently. Our protocols ensure progress even in the presence of failures, if spontaneous ordering holds frequently. In the absence of spontaneous ordering, some other assumption is required to cope with failures. The second contribution of this thesis is to generalize one of our crash-recovery consensus protocols as a "multicoordinated" mode of a hybrid Consensus protocol, that may use spontaneous ordering or failure detection to progress. Compared to other protocols, ours provide improved availability with no price in resilience. The third contribution is to employ this new mode to solve Generalized Consensus, a problem that generalizes a series of other agreement problems and, hence, is of much practical interest. Moreover, we considered several aspects of solving this problem in practice, which had not been considered before. As a result, our Generalized Consensus protocol features graceful degradation, load balancing, and is parsimonious in accessing stable storage. In the second part of this thesis we have considered agreement problems in wide area networks organized hierarchically. More specifically, we considered a topology that is commonplace in the data centers of large corporations: groups of nodes, with large-bandwidth low-latency links connecting the nodes in the same group, and slow and limited links connecting nodes in different groups. In such environments, latency is clearly a major concern and reconfiguration procedures that render the agreement protocol momentarily unavailable must be avoided as much as possible. Our contribution here is in avoiding reconfigurations and improving the availability of a collision fast agreement protocol. That is, a protocol that can reach agreement in two intergroup communication steps, irrespectively to concurrent proposals. Besides the use of a multicoordinated approach, we employed multicast primitives and consensus to restrict some reconfigurations to within groups, where they are less expensive. In the last part of this thesis we study the problem of terminating distributed transactions. The problem consists of enforcing agreement among the parties on whether to commit or rollback the transaction and ensuring the durability of committed transactions. Our contribution in this topic is an abstract log service that detaches the termination problem from the processes actually performing the transactions. The service works as a black box and abstracts its implementation details from the application utilizing it. Moreover, it allows slow and failed resource managers be re-started on different hosts without relying on the stable storage of the previous host. We provide two implementations of the service, which we evaluated experimentally. / Doutorado / Doutor em Ciência da Computação
|
46 |
Uma ponte entre as abordagens sincrona e quase-sincrona para checkpointing / Bridging the gap between synchronous and quase-synchronousSakata, Tiemi Christine 21 December 2006 (has links)
Orientador: Islene Calciolari Garcia / Tese (doutorado) - Universidade Estadual de Campinas, Instituto de Computação / Made available in DSpace on 2018-08-08T07:37:22Z (GMT). No. of bitstreams: 1
Sakata_TiemiChristine_D.pdf: 843635 bytes, checksum: 7f950e8bee6e5c7a1dfb19c6212897c2 (MD5)
Previous issue date: 2007 / Resumo: Protocolos de checkpointing são responsáveis pelo armazenamento de estados dos processos de um sistema distribuído em memória estável para tolerar falhas. Os protocolos síncronos minimais induzem apenas um número minimal de processos a salvarem checkpoints durante uma execução do protocolo bloqueando os processos envolvidos. Uma versão não-bloqueante desta abordagem garante a minimalidade no número de checkpoints salvos em memória estável com o uso de checkpoints mutáveis, checkpoints que podem ser salvos em memória não-estável. Porém, a complexidade deste protocolo e o fato de ele tolerar apenas a presença de uma execução de checkpointing a cada instante nos motivou a procurar soluções para estes problemas na teoria desenvolvida para os protocolos quase-síncronos. A nova abordagem nos permitiu fazer uma revisão de alguns protocolos síncronos bloqueantes existentes na literatura que até então eram considerados minimais. Nesta mesma linha, obtivemos novos resultados na análise de minimalidade dos protocolos síncronos não-bloqueantes, ao considerarmos a aplicação como um todo e também a existência de execuções concorrentes de checkpointing. Ao estabelecermos esta ponte entre as abordagens para checkpointing, conseguimos desenvolver dois novos protocolos síncronos não-bloqueantes. Ambos fazem uso de checkpoints mutáveis, permitem execuções concorrentes de checkpointing e possuem um mecanismo simples de coleta de lixo. No entanto, o fato de cada um dos protocolos derivar de classes diferentes de protocolos quase-síncronos leva a comportamentos distintos, como evidenciado por resultados de simulação / Abstract: Checkpointing protocols are responsible for the selection of checkpoints in fault-tolerant distributed systems. Minimal checkpointing protocols minimize the number of checkpoints blocking processes during checkpointing. A non-blocking version of this approach assures a minimal number of checkpoints saved in stable memory using mutable checkpoints, those checkpoints can be saved in a non-stable storage. However, the complexity of this protocol and the absence of concurrent checkpointing executions have motivated us to find new solutions in the quasi-synchronous theory. The new approach has allowed us to review some blocking synchronous protocols existent in the literature which were, until now, considered as minimals. In the same way, we present new results analysing the minimality on the number of checkpoints in nonblocking synchronous protocols, considering the whole application and also the existence of concurrent checkpointing executions. On bridging the gap between the checkpointing approaches we could develop two new non-blocking synchronous protocols. Both use mutable checkpoints, allow concurrent checkpointing executions and have a simple mechanism of garbage collection. However, since each protocol derives from a diferent class of quasi-synchronous protocols, they present distinct behaviours, which are evident in the simulation results / Doutorado / Sistemas Distribuidos / Doutor em Ciência da Computação
|
47 |
Modularização de tratamento de exceções usando programação orientada a aspectosFerreira, Raquel de Albuquerque Maranhão 24 February 2006 (has links)
Orientador: Cecilia Mary Fischer Rubira / Dissertação (mestrado profissional) - Universidade Estadual de Campinas, Instituto de Computação / Made available in DSpace on 2018-08-08T18:11:26Z (GMT). No. of bitstreams: 1
Ferreira_RaqueldeAlbuquerqueMaranhao_M.pdf: 440934 bytes, checksum: f6d34e1edb2b80cf97eea73766e5621f (MD5)
Previous issue date: 2006 / Resumo: Programação Orientada a Aspectos (POA) tem sido considerada uma abordagem interessante para modularizar o comportamento excepcional de um sistema. Porém, ainda existem algumas questões em aberto sobre o uso de POA com este objetivo. Nenhum trabalho na literatura tentou verificar se POA realmente promove melhorias em atributos de qualidade quando usada para modularizar código de tratamento de exceções não-trivial, objetivando: avaliar a escalabilidade dos aspectos ao modularizar tratamento de exceções em sistemas com um número significativo de tratadores; e avaliar a interação entre aspectos de tratamento de exceções e aspectos de outros interesses como, por exemplo, distribuição, persistência, segurança etc. Este trabalho apresenta um estudo quantitativo da adequação de POA para modularizar código de tratamento de exceções em sistemas que possuem um número significativo de tratadores não-triviais, e também em sistemas nos quais interesses transversais diferentes de tratamento de exceções, no caso distribuição e persistência, já foram modularizados com aspectos. Este estudo consistiu na refatoração de dois sistemas orientados a objetos e um sistema orientado a aspectos, que tiveram seu código responsável pelo tratamento de exceções movido para aspectos. Foi utilizado um conjunto de métricas para avaliar atributos de qualidade das versões original e refatorada desses sistemas. Observou-se que POA promoveu a separação de interesses entre o código de tratamento de exceções e o código normal dos sistemas. Porém, contradizendo a intuição geral, a versão orientada a aspectos desses sistemas não apresentou ganhos significativos para as métricas de tamanho empregadas / Abstract: Aspect-Oriented Programming (AOP) has usually been considered as an approach to modularize the exceptional behavior of a system. However, there are questions related to possible trade-offs involved in using AOP with this objective that are not yet well known. To the best of our knowledge, no work in literature has attempted to assess whether AOP really promotes an enhancement in well-understood quality attributes, when used for modularizing nontrivial exception handling code with focus on: evaluation of the scalability of aspects for modularizing exception handling in systems with a significant number of handlers; and evaluation of interactions between exception handling aspects and aspects implementing other concerns like distribution and persistence. This work presents a quantitative study of the adequacy of AOP for modularizing exception handling code in systems with a significant number of nontrivial handlers, and also in systems possessing aspects implementing other concerns. The study consisted of refactoring two object-oriented and one aspect-oriented systems so that the code responsible for handling exceptions was moved to aspects. It was employed a suite of metrics to measure quality attributes of the original and refactored systems. It was found that AOP improved separation of concerns between exception handling code and normal application code. However, contradicting the general intuition, the aspect-oriented version of the system did not present significant gains for any of size metrics employed. / Mestrado / Mestre Profissional em Computação
|
48 |
Um sistema de transações adaptavel para o ambiente de comunicação sem fioRocha, Tarcisio da 12 October 2003 (has links)
Orientador: Maria Beatriz Felgar de Toledo / Dissertação (mestrado) - Universidade Estadual de Campinas, Instituto de Computação / Made available in DSpace on 2018-08-03T22:05:46Z (GMT). No. of bitstreams: 1
Rocha_Tarcisioda_M.pdf: 524832 bytes, checksum: e48d1d2ef3454a5ab4bbf824469d8251 (MD5)
Previous issue date: 2004 / Resumo: Recentes avanços nas tecnologias de telecomunicação e de dispositivos de computação portáteis possibilitaram o surgimento da Computação Móvel. Assim, dispositivos como laptops e PDA¿s equipados com interfaces de comunicação sem fio ganharam a capacidade
de participar de computações distribuídas mesmo estando em movimento ou desconectados. Apesar da computação móvel ser muito atraente, ela impõe uma série de obstáculos aos sistemas distribuídos. Dentre estes obstáculos está a baixa largura de banda das redes de comunicação sem fio, desconexões inesperadas e escassez de recursos do dispositivo de computação móvel (como energia e espaço em disco). Diante deste contexto, esta dissertação apresenta um sistema de transações que possui a capacidade de adaptação diante dos obstáculos impostos pelo ambiente de comunicação sem fio. Esta adaptação é obtida através da colaboração entre as transações e um sistema de apoio. O sistema de apoio é responsável pelo monitoramento dos recursos do ambiente, por notificar as transações sobre as mudanças ocorridas no ambiente e por prover mecanismos de adaptação às transações. Cada transação pode reagir às mudanças ocorridas no ambiente de acordo com a sua política de adaptação. Basicamente, os mecanismos de adaptação providos pelo sistema são os modos de operação e os níveis de isolamento. Para a validação do modelo proposto, esta dissertação apresenta também um protótipo que foi implementado usando as tecnologias Java e CORBA / Abstract: Recent advances in telecommunication technologies and portable computing devices have made possible the appearance of Mobile Computing. Thus devices like laptops and PDAs equipped with wireless communication interfaces have acquired the capacity to participate
in distributed computing while moving or disconnected. Although attractive, mobile computing imposes a set of obstacles to distributed computing. Among these obstacles is the low bandwidth of the wireless communication networks, unexpected disconnections, and lacking of resources in mobile computing devices (such as power and disk space). In this context, this dissertation presents a transaction system that can adapt in the face
of the obstacles imposed by the wireless communication environment. This adaptation is acquired through the collaboration between transactions and the underlying system. The underlying system is responsible for monitoring of resources, notifying transactions about changes in the environment and providing adaptation mechanisms. Each transaction may react to environmental changes according to its own adaptation policy. The provided adaptation mechanisms are operation modes and isolation levels. Moreover, this dissertation presents a prototype developed for the validation of the
proposed model. The prototype was implemented using Java and CORBA technologies / Mestrado / Ciência da Computação / Mestre em Ciência da Computação
|
49 |
Consistencia de dados em um ambiente de computação movelConceição, Dario Vieira 25 July 2018 (has links)
Orientador: Ricardo de Oliveira Anido / Dissertação (mestrado) - Universidade Estadual de Campinas, Instituto de Computação / Made available in DSpace on 2018-07-25T02:30:47Z (GMT). No. of bitstreams: 1
Conceicao_DarioVieira_M.pdf: 2160223 bytes, checksum: ebf18e2f4e144875c36dd8c5da967522 (MD5)
Previous issue date: 1999 / Resumo: A rápida expansão da tecnologia de comunicação sem fio e dos serviços de satélite proporcionaram o aparecimento de um novo paradigma no campo da ciência da computação, chamado computação móvel Nos sistemas móveis as soluções para o problema de distribuição diferem das existentes em computação distribuída convencional, devido a características intrínsecas do ambiente móvel, tais como: desconexão, mobilidade, estreita banda passante, alta latência, baixa capacidade de armazenamento e consumo de energia. Assim, embora as soluções básicas de problemas distribuídos sejam bem entendidas, uma análise de algumas destas em relação ao ambiente de computação móvel pode ser de vital importância na busca de novas soluções, adequadas a este ambiente. Esta dissertação analisa aspectos de um problema específico em sistemas distribuídos - consistência de dados - no contexto de computação móvel. São apresentados um novo modelo de execução de transação e um novo protocolo de gravação e recuperação de estados globais consistentes, ambos formando um arcabouço de consistência de dados adequado ao ambiente de computação móvel. / Abstract: The fast advance in wireless communication technologies and satellites service have enabled the appearance of a new paradigm in computer science, called mobile computing. Solutions to problems in mobile computing are different from those to traditional distributed systems, due to a set of inherent characteristics of mobile environment, like: mobility, frequent disconnection, low bandwidth, high latency, reduced storage capacity-limited battery life and small screen sizes. Therefore, although the basic issues in the traditional distributed environment are well understood, a review of some of these issues with respect to the mobile environment are useful to comprehend those characteristics. In this dissertation it is proposed a new transaction model and a new checkpoint protocol for the mobile environment. The transaction model and checkpoint protocol form an adequate framework for data consistency to mobile computing environment. / Mestrado / Mestre em Ciência da Computação
|
50 |
Estados globais consistentes em sistemas distribuidosGarcia, Islene Calciolari, 1971- 27 July 1998 (has links)
Dissertação: Luiz Eduardo Buzato / Dissertação (mestrado) - Universidade Estadual de Campinas, Instituto de Computação / Made available in DSpace on 2018-07-23T19:40:36Z (GMT). No. of bitstreams: 1
Garcia_IsleneCalciolari_M.pdf: 2272722 bytes, checksum: 40ccc8d3db214888d670f87260cf1134 (MD5)
Previous issue date: 1998 / Resumo: Estados globais consistentes são fundamentais para a solução de uma série de problemas em sistemas distribuídos, em especial para a monitorização e reconfiguração de aplicações distribuídas. A construção assíncrona de estados globais consistentes permite maior eficiência e flexibilidade a sistemas de monitorização. Consideramos aplicações distribuídas construídas sobre o modelo de processos e mensagens (MPM) e sobre o modelo de objetos e ações atômicas (MOA). Enquanto para o primeiro modelo vários algoritmos foram desenvolvidos para a obtenção de estados globais consistentes, para o segundo a oferta é extremamente reduzida. Estabelecemos correlações entre esse dois modelos e conseguimos o mapeamento de algoritmos para a obtenção de estados globais consistentes do MPM para o MOA. Enquanto grande parte da literatura para a obtenção de estados globais consistentes está voltada para a recuperação de falhas com retrocesso de estado, temos como objetivo a construção de uma visão progressiva da aplicação (consideramos que o monitor deve analisar estados globais consistentes mais recentes que os anteriores). Esta abordagem propiciou a criação de algoritmos originais para a construção de estados globais consistentes a partir de estados de interesse (checkpoints) selecionados pelos componentes da aplicação. / Abstract: Consistent global states are fundamental to solve a large class of problems in distributed systems, especially for monitoring and reconfiguration of distributed applications. The asynchronous construction of consistent global states allows greater efficiency and flexibility to monitoring systems. We consider distributed applications built upon the processes and messages model (MPM) and upon the objects and atomic actions model (MOA). Many algorithms have been designed for the construction of consistent global states in the MPM, but for the MOA the number of algorithms is extremely reduced. We have established correlations between these two models and, using them, we have mapped algorithms to construct consistent global states from the MPM to the MOA. A great part of the literature for the construction of consistent global states is devoted to the backward recovery of failures. Our goal is the construction of a progressive view of the application (we consider that the monitor must analyze consistent global states that are as up-to-date as possible). This approach allowed the creation of new algorithms for the construction of consistent global states using checkpoints; states selected by the application components. / Mestrado / Mestre em Ciência da Computação
|
Page generated in 0.1161 seconds