1 |
Algoritmos distribuidos para localização de falhas e difusão de mensagens em hipercubos defeituososNascimento, Saulo Rodrigues do 25 February 2000 (has links)
Orientador: Marco A. Amaral Henriques / Dissertação (mestrado) - Universidade Estadual de Campinas, Faculdade de Engenharia Eletrica e de Computação / Made available in DSpace on 2018-07-26T12:11:01Z (GMT). No. of bitstreams: 1
Nascimento_SauloRodriguesdo_M.pdf: 4340507 bytes, checksum: 0281c864c5f8a0ed138e9d720e7c4154 (MD5)
Previous issue date: 2000 / Resumo: Após investigação das soluções existentes na literatura para o problema da difusão de mensagens em máquinas paralelas tipo hipercubo com falhas de enlace e de nó, este trabalho faz uma análise detalhada das mesmas comparando os fatores que determinam qual é mais adequada para cada tipo de aplicação. Em seguida, efetua-se uma pesquisa sobre os métodos existentes para a detecção e localização de falhas em sistemas multicomputadores. Como resultado, constata-se a ausência de um método específico para hipercubos e propõese um algoritmo distribuído que explora as propriedades desta topologia na detecção e localização de enlaces e nós falhos. Finalmente, é proposto um algoritmo tolerante a falhas para difusão eficiente de mensagens, reunindo e superando as características positivas dos melhores algo ritmos existentes. O algoritmo proposto tolera até n-l falhas, sendo elas de enlaces, nós ou uma combinação de ambas, e realiza todo o processo de difusão em no máximo n+2 etapas, para um hipercubo de dimensão n. Um grande número de testes efetuados em um hipercubo comercial atesta a correção desta solução e a sua posição de vantagem em relação às existentes / Abstract: In this work, it is made a detailed analysis of the solutions found in the literature for the problem of broadcasting in hypercube parallel machines with link and node failures, and all the aspects that determine which one fits better to a specific environment and application are compared. Following that, the existing methods used to detect and locate failures in multicomputer systems - major concern in a broadcasting process - are analyzed as well. Based on this research, it is realized the absence of a specific method for hypercubes and a new and distributed algorithm is proposed to fill in this gap. This algorithm takes advantage of the hypercube topology in order to detect and locate faulty links and nodes efficiently. Finally, it is proposed a new and efficient fault tolerant algorithm for broadcasting in hypercube systems, gathering and surpassing the most positive features of the former solutions. This algorithm treats up to n-l failures (links, nodes or both) and finishes the whole process in no more than n+2 broadcasting steps, for an n-dimensional hypercube. Several tests performed on a commercial version of a hypercube-based machine confirms the correctness of this solution and its higher quality compared to the other ones / Mestrado / Mestre em Engenharia Elétrica
|
2 |
Implementação de duas arquiteturas microcontroladas tolerantes a falhas para controle da temperatura /Botta, Gilson Fernando. January 2002 (has links)
Orientador: Deisy Piedade Munhoz Lopes / Banca: Gerson Antonio Santarine / Banca: Ronaldo Guimaraes Correa / Resumo: Os microcontroladores são empregados com freqüência crescente na automação e controle de processos. É fato, que em certos processos, a falha no sistema de controle é inadmissível. Nestes casos, é necessário o emprego de técnicas de tolerância à falhas. Diante disso, duas arquiteturas com base em microcontroladores, foram projetadas, construídas e submetidas a testes. Tanto a Arquitetura em Anel como a Arquitetura TMR implementadas, podem suportar falhas tanto nos nodos da estrutura, como nos arcos, que representam as ligações entre microcontroladores. Os nodos são controlados por protocolos implementados por programação, sem a necessidade de um circuito votante comum, presente na arquitetura TMR clássica, ou de qualquer outro circuito especial, para o controle da redundância dos circuitos. Os sistemas são modulares e podem operar sem um dos módulos ativado. Isso permite que um determinado módulo seja retirado para manutenção e posteriormente reinstalado, de maneira transparente a aplicação. Foram realizados testes nas arquiteturas desenvolvidas, com injeção de falhas físicas e lógicas. Ambas as arquiteturas responderam conforme o desejado, ou seja, detectaram e toleraram as falhas. As duas arquiteturas agregam características de confiabilidade e disponibilidade a sistemas de controle e apresentam-se como opções promissoras para a gestão de processos em tempo real. / Abstract: The microcontrollers are frequently used in automation and process control. It's a fact that in certain processes the failure in the control system it is inadmissible. In these cases it is necessary to make use of the fault-tolerance techniques. Within this context two fault-tolerant architecture based in microcontrollers were project, built and submitted to extensive tests. The implemented Ring Architecture on the TMR Architecture can endure failure, either in the structure nodes (in the microcontrollers) or in the arches, which represent the connections between the microcontrollers. The nodes are controlled by protocols implemented by a program without the need of a common voting circuit, which is present in the classic TMR Architecture, on any other special circuit to control the redundancy of the circuits. Both system are modules and can operate without one been activated. These allow one module to be removed for maintenance and be reinstalled after words. In tests of physics fault and logic were made in the enveloped architecture and both reacted as expected such as detected and endure fault. Both architecture congregated characteristics of reliability and availability to the control systems. / Mestre
|
3 |
Uma arquitetura de software baseada em padrões de projeto para o desenvolvimento de aplicações concorrentes confiaveisBeder, Delano Medeiros 06 August 2001 (has links)
Orientador : Cecilia Mary Fischer Rubira / Tese (doutorado) - Universidade Estadual de Campinas, Instituto de Computação / Made available in DSpace on 2018-07-29T03:01:20Z (GMT). No. of bitstreams: 1
Beder_DelanoMedeiros_D.pdf: 6260164 bytes, checksum: a5ce8b558373ebd1cec526a6993f9999 (MD5)
Previous issue date: 2001 / Resumo: Sistemas computacionais complexos estão sujeitos a diferentes tipos de falhas, e a maneira mais adequada de lidar com tais falhas é aceitar que qualquer sistema pode apresenta-lás e empregar técnicas apropriadas para tolerá-Ias durante a execução do sistema. Desta forma, a abordagem mais apropriada para a construção de sistemas complexos confiáveis consiste na utilização de técnicas de tolerância a falhas que nos permitem definir regiões de confinamento e recuperação de erros. No entanto, técnicas de tolerância a falhas são geralmente utilizadas na fase de implementação do ciclo de desenvolvimento do sistema. Desta forma, não é freqüentemente fácil empregá-las, desde que projetistas necessitam levar em conta muitos detalhes de implementação. Neste contexto, este trabalho faz duas contribuições relevantes. A primeira contribuição é a utilização prática de técnicas recentes de estruturação de sistemas na definição de uma arquitetura de software genérica para introduzir atomicidade, redundância de software, tratamento de exceções e recuperação de erros coordenada no desenvolvimento de sistemas orientados a objetos confiáveis durante o ciclo de desenvolvimento do sistema, iniciando-se na fase de projeto arquitetural passando pelo projeto detalhado e terminando na fase de implementaçãojcodificação do sistema. A segunda contribuição é a definição de um conjunto coeso de padrões de projetos que refinam os elementos arquiteturais da arquitetura de software proposta e provêem uma clara e transparente separação de interesses entre a funcionalidade da aplicação e a funcionalidade relacionada à provisão da confiabilidade do sistema / Abstract: Complex computer systems are prone to errors of many kinds, and the most reasonable way of dealing with them is to accept that any complex system has faults and to employ appropriate features for tolerating them during run time. We claim that the most beneficial way of achieving fault tolerance in complex systems is to use system structuring which has fault tolerance measures associated with it. ln this case, structuring units serve as natural areas of error containment and error recovery. However, these techniques are mainly developed for employment at the implementation phase of the system development. Hence, it is not often easy to apply them correctly, as the designers have to take into account many implementation details. ln this context, this work makes two main contributions. The first contribution is the practical employment of recent system structuring techniques in the definition of a generic software architecture for introducing atomicity, exception handling, and coordinated error recovery into dependable object-oriented systems at the earlier phases of system development. That is, from architectural design, through detailed design to coding. The second contribution is the definition of a set of design patterns which refine the architectural elements of the proposed software architecture and provide a clear and transparent separation of concerns between the application functionality, and the functionality related to providing system dependability / Doutorado / Doutor em Ciência da Computação
|
4 |
Uma arquitetura reflexiva para injetar falhas em aplicações orientadas a objetosRosa, Amanda Cibele Apolinario 09 October 1998 (has links)
Orientador: Eliane Martins / Dissertação (mestrado) - Universidade Estadual de Campinas, Instituto de Computação / Made available in DSpace on 2018-07-24T11:43:47Z (GMT). No. of bitstreams: 1
Rosa_AmandaCibeleApolinario_M.pdf: 3606836 bytes, checksum: 8d71512e46e7927e1bfa6b9564dd7040 (MD5)
Previous issue date: 1998 / Resumo: Injeção de falhas por software é uma técnica que vem sendo muito utilizada para validar as propriedades de segurança de funcionamento (dependability) de sistemas de software. Essa técnica consiste em injetar padrões de erros em um software em execução. Para injetar falhas e monitorizar seus efeitos alguma forma de instrumentação deve ser introduzida na aplicação em teste (aplicação alvo). Essa instrumentação é intrusiva, ou seja, interfere na execução e na estrutura da aplicação alvo. No entanto, um dos objetivos de uma abordagem de instrumentação de software é ser o menos intrusiva possível. Isso requer que a instrumentação seja funcionalmente independente da aplicação alvo. Outras qualidades importantes de uma abordagem de instrumentação são modularidade, a fim de facilitar a incorporação de novas características, reusabilidade, para facilitar a adaptação para sistemas alvos diferentes, e portabilidade, para permitir o uso em plataformas diferentes com mudanças mínimas. Para alcançar esses objetivos é proposto neste trabalho o uso da programação orientada a objetos reflexiva. Reflexão reduz a interferência na aplicação alvo porque provê uma separação clara entre seus aspectos funcionais e não-funcionais, sendo os últimos relacionados aos aspectos de injeção de falhas e monitorização. O projeto de uma arquitetura de injeção de falhas reflexiva, uma ferramenta de injeção reflexiva (FIRE - Fault Injection using a REflective Architecture) e resultados experimentais são apresentados neste trabalho. / Abstract: Software-implemented fault injection is, nowadays, a largely used technique to validate dependability properties of software systems. This technique consists of the injection of error patterns into executing software. To inject faults and monitor their effects some form of instrumentation may be introduced into the system under test (target system). This instrumentation causes some level of intrusiveness, i.e., it imposes some interference upon the target system execution and structure. Therefore, a goal of a software instrumentation approach is to be the least intrusive possible. This requires instrumentation to be functionally independent from the target system. Other important qualities that an instrumentation should present are modularity, in order to allow easy incorporation of new features, reusability, to allow easy adaptation to different target systems, and portability, to allow the use in different hardware/software platforms with minimum changes. To obtain these qualities in this work the use of reflective programming is proposed. Intrusiveness in the target system is reduced, in that it allows a c1ear separation between functional and nonfunctional aspects, the later being related to fault injection and monitoring aspects. The design of a reflective fault injection architecture, a reflective fault injection tool (FIRE Fault Injection using a REflective Architecture) and results of experiments are presented in this work. / Mestrado / Mestre em Ciência da Computação
|
5 |
Implementação de duas arquiteturas microcontroladas tolerantes a falhas para controle da temperaturaBotta, Gilson Fernando [UNESP] 17 December 2002 (has links) (PDF)
Made available in DSpace on 2014-06-11T19:25:32Z (GMT). No. of bitstreams: 0
Previous issue date: 2002-12-17Bitstream added on 2014-06-13T20:33:14Z : No. of bitstreams: 1
botta_gf_me_rcla.pdf: 3393447 bytes, checksum: 9b6a4f451525cffd55d41d150f94c3ce (MD5) / Os microcontroladores são empregados com freqüência crescente na automação e controle de processos. É fato, que em certos processos, a falha no sistema de controle é inadmissível. Nestes casos, é necessário o emprego de técnicas de tolerância à falhas. Diante disso, duas arquiteturas com base em microcontroladores, foram projetadas, construídas e submetidas a testes. Tanto a Arquitetura em Anel como a Arquitetura TMR implementadas, podem suportar falhas tanto nos nodos da estrutura, como nos arcos, que representam as ligações entre microcontroladores. Os nodos são controlados por protocolos implementados por programação, sem a necessidade de um circuito votante comum, presente na arquitetura TMR clássica, ou de qualquer outro circuito especial, para o controle da redundância dos circuitos. Os sistemas são modulares e podem operar sem um dos módulos ativado. Isso permite que um determinado módulo seja retirado para manutenção e posteriormente reinstalado, de maneira transparente a aplicação. Foram realizados testes nas arquiteturas desenvolvidas, com injeção de falhas físicas e lógicas. Ambas as arquiteturas responderam conforme o desejado, ou seja, detectaram e toleraram as falhas. As duas arquiteturas agregam características de confiabilidade e disponibilidade a sistemas de controle e apresentam-se como opções promissoras para a gestão de processos em tempo real. / The microcontrollers are frequently used in automation and process control. It's a fact that in certain processes the failure in the control system it is inadmissible. In these cases it is necessary to make use of the fault-tolerance techniques. Within this context two fault-tolerant architecture based in microcontrollers were project, built and submitted to extensive tests. The implemented Ring Architecture on the TMR Architecture can endure failure, either in the structure nodes (in the microcontrollers) or in the arches, which represent the connections between the microcontrollers. The nodes are controlled by protocols implemented by a program without the need of a common voting circuit, which is present in the classic TMR Architecture, on any other special circuit to control the redundancy of the circuits. Both system are modules and can operate without one been activated. These allow one module to be removed for maintenance and be reinstalled after words. In tests of physics fault and logic were made in the enveloped architecture and both reacted as expected such as detected and endure fault. Both architecture congregated characteristics of reliability and availability to the control systems.
|
6 |
Disponibilidade em um sistema de arquivos distribuído flexível e adaptávelCarvalho, Lúcio Rodrigo de [UNESP] 04 December 2014 (has links) (PDF)
Made available in DSpace on 2015-09-17T15:24:39Z (GMT). No. of bitstreams: 0
Previous issue date: 2014-12-04. Added 1 bitstream(s) on 2015-09-17T15:47:30Z : No. of bitstreams: 1
000844069.pdf: 3912635 bytes, checksum: ba04b4180d0780ce76331a7b3a9824d2 (MD5) / Fundação de Amparo à Pesquisa do Estado de São Paulo (FAPESP) / Um sistema de arquivos distribuído permite que usuários e aplicações possam armazenar e compartilhar dados, acessando tais recursos remotamente como se fossem locais. As características de um sistema de arquivos distribuído podem ser variadas. Assim, é impossível conceber um sistema abrangendo todas as características desejáveis, tais como: transparência, desempenho, escalabilidade, confiabilidade e disponibilidade, por exemplo. O sistema de arquivos distribuído Flexível e Adaptável (FlexA) incorpora importantes características do NFS, AFS, GFS e Tahoe-LAFS. Este sistema elimina a necessidade de um servidor principal (como o master no GFS ou o Introducer no Tahoe-LAFS). Os arquivos são armazenados em dois grupos de servidores: um grupo de leitura, onde somente dados são armazenados, e um grupo de escrita, onde dados e metadados são armazenados. A disponibilidade é provida por um mecanismo semelhante ao apresentado pelo Tahoe-LAFS. No presente estudo são apresentadas as melhorias alcançadas por meio da disponibilidade do FlexA. Os detalhes sobre as modificações no FlexA, bem como os resultados obtidos indicam que o FlexA é uma importante opção de sistema de arquivos distribuído / A distributed file system allows users and applications to store and share data, accessing such resources remotely as if they were local. The characteristics of a distributed file system can be varied. Thereby, it is impossible to design a system covering all desirable characteristics, such as transparency, performance, scalability, reliability and availability, for example. The Flexible and Adaptable distributed file system (FlexA) incorporate important characteristics of NFS, AFS, GFS and Tahoe-LAFS. It eliminates the need for main server (such as the master in GFS or the introducer in Tahoe-LAFS). File storage is provided by two group of server: a reading group, where only data is found, and a writing group, where data and metadata are stored. Availability is provided in FlexA through a mechanism similar to the one presented by Tahoe-LAFS. In the present study the improvements achieved through the availability and performance of FlexA are presented. Details about the changes in the FlexA as well as the obtained results indicate that the FlexA is an important option for distributed file system / FAPESP: 2012/02926-5
|
7 |
Um metodo de testes para componentes tolerantes a falhasRocha, Camila Ribeiro 23 November 2005 (has links)
Orientador: Eliane Martins / Dissertação (mestrado) - Universidade Estadual de Campinas, Instituto de Computação / Made available in DSpace on 2018-08-07T04:49:59Z (GMT). No. of bitstreams: 1
Rocha_CamilaRibeiro_M.pdf: 20985604 bytes, checksum: 50cbb47532e2d8ee64f537135b9d8b89 (MD5)
Previous issue date: 2005 / Resumo: Componentes de software são cada vez mais utilizados no desenvolvimento de sistemas computacionais, incluindo sistemas críticos, dados os benefícios de redução de custo e tempo de desenvolvimento através da reutilização de código. A garantia da qualidade, porém, continua dependente da realização de testes a cada novo contexto, e é dificultada especialmente pela falta de conhecimento sobre o funcionamento do componente. O método proposto tem como foco principal componentes tolerantes a falhas, e busca facilitar a realização de testes caixa preta que exercitem tanto o comportamento normal quanto o comportamento excepcional do componente. O método é voltado para a construção de componentes testáveis, apresentando diretrizes para inclusão de mecanismos de monitoração e de verificação dos contratos dos componentes, mesmo sem a presença de código fonte, com a utilização de programação orientada a aspectos. Para a geração automática de drivers e stubs, são utilizados modelos comportamentais do componente, no formato do diagrama de atividade da linguagem UML. O método de testes pode ser usado paralelamente ao método de desenvolvimento. No trabalho é apresentado o uso do método em conjunto com o Método para Definição do Comportamento Excepcional (MDCE+), proposto em outra dissertação de mestrado do Instituto de Computação da Unicam / Abstract: Nowadays software components are widely used in software development, including critical systems, because of advantages such as time and cost reduction through code reuse.However, quality assurance, although, is still dependent on test execution at every new utilization context of the component, and usually faces difficulties specially related to lack of knowledge about component details. The test method proposed focuses fault-tolerant components, facilitating black-box testing of both normal and exceptional behavior. Aiming testable components development, the method proposed presents guidelines for inclusion of tracking and contract checking mechanisms, source code independently, using aspect-oriented programming. Drivers and stubs are automatically generated from component behavior models, in UML activity diagram form. The test method can be used together with a development method. In this work, the test method use is presented in parallel to Method for the Definition of Exceptional Behavior, proposed in a Master¿s thesis of the Institute of Computing at Unicam / Mestrado / Mestre em Ciência da Computação
|
8 |
Uma abordagem orientada a objetos para programação distribuida confiavelQuadros, Elbson Moreira 09 June 1997 (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-22T09:27:29Z (GMT). No. of bitstreams: 1
Quadros_ElbsonMoreira_M.pdf: 3281148 bytes, checksum: faa27a1326207746a9726049feb65570 (MD5)
Previous issue date: 1997 / Resumo: Este trabalho tem por objetivo aplicar técnicas de orientação a objetos para estruturar aplicações complexas, visando obter uma melhoria da qualidade e confiabilidade dessas aplicações. Várias técnicas orientadas a objetos são exploradas, tais como: abstração de dados, compartilhamento de comportamento (incluindo herança e delegação), classes abstratas, polimorfismo e acoplamento dinâmico. Nós propomos a utilização dessas técnicas na estruturação de aplicações distribuídas, provendo suporte para tolerância a falhas de ambiente através da incorporação disciplinada de redundância, de forma que o impacto dessa redundância na complexidade do sistema possa ser mantido sob controle. Para o entendimento e validação dessas técnicas foi desenvolvido um protótipo de uma aplicação distribuída orientada a objetos: um Controlador de Trens. Além disso, utilizamos duas abordagens promissoras para reutilização de software em grande escala - padrões de projeto e metapadrões - para a construção de um framework orientado a objetos para o subdomínio de controladores de trens / Abstract: The major goal of this work is to apply object-oriented techniques for structuring complex object-oriented applications, and to relate them to the improvement of quality and reliability of large computer applications. We use a collection of object-oriented concepts, features and mechanisms, such as data abstraction, inheritance, delegation, abstract classes, polymorphism and dynamic binding. We propose an approach for the provision of environmental fault tolerance and distribution, based on the incorporation of redundaucy in an incremental way, so that the complexity can be kept under controI. ln addition, we show how such techniques can be used to develop reusable and easier to extend software components. For the understanding and validation of these techniques, we developed a prototype of an object-oriented distributed and dependable railway controller application. Besides, we use design pattems and metapattems - two promising approaches for software reuse - for developing an object-oriented framework for a railway controller subdomain / Mestrado / Mestre em Ciência da Computação
|
9 |
Integração dos mecanismos de recuperação de erros por avanço e por retrocessoBeder, Delano Medeiros 16 May 1997 (has links)
Orientador: Luiz Eduardo Buzato / Dissertação (mestrado) - Universidade Estadual de Campinas, Instituto de Computação / Made available in DSpace on 2018-07-22T20:19:33Z (GMT). No. of bitstreams: 1
Beder_DelanoMedeiros_M.pdf: 2539518 bytes, checksum: f8de2bb8c9b43c6ac841ccd1508e7809 (MD5)
Previous issue date: 1997 / Resumo: Sistemas computacionais têm sido utilizados nas mais variadas aplicações, de eletrodomésticos a satélites e centrais nucleares. Se produtos como televisores, rádios e computadores de uso geral não são confiáveis, então os seus fabricantes serão provavelmente superados pela concorrência e conseqüentemente terão prejuízos. Analogamente, se um banco tem os seus serviços automatizados interrompidos devido a falhas em sistemas computacionais, então perdas financeiras podem ocorrer, com conseqüências desastrosas. Para plantas nucleares, uma falha em sistemas computacionais críticos pode causar a perda de muitas vidas. Portanto, confiabilidade é um requisito importante no desenvolvimento de sistemas computacionais. Em tais cenários, é interessante investigar possíveis alternativas para a integração dos mecanismos de recuperação de estados errôneos por avanço e por retrocesso. É importante que esta integração seja simples, efetiva e não-intrusiva. Nosso trabalho propõe o uso de mecanismos de tratamento de exceções, como encontrado em linguagens de programação orientada a objetos, para integrar estes mecanismos de recuperação de erros. Um ambiente de programação baseado em objetos, ações atômicas e exceções é utilizado para implementar aplicações e validar o modelo proposto. Finalmente, os experimentos realizados fornecem evidências positivas de que o modelo de integração proposto é viável. / Abstract: Computing systems are used in a wide variety of applications, from households appliances to satellites and nuclear plants. If products of daily use like televisions, radios and computers are not reliable, then the competitors will probably throw their manufactures out of the market and, consequently they will be subject to heavy losses. By analogy, if a bank has its automated services interrupted by failure in its computing systems, then financial losses may occur, with desastrous consequences. In the case of nuclear plants, a failure in critical computing systems can cause the loss of many life. Thus, reliability is an important requirement for the development of modern computing systems. In such a scenario, it is interesting to investigate ways of integrating forward and backward error recovery mechanisms. Such integration, to be useful, must be simple, effective and non-intrusive. Our work proposes the use of exception handling mechanisms, as found in object oriented programming languages, to integrate these error recovery mechanisms. A programming environment based on objects, atomic actions and exceptions has been used to implement applications, which test our proposal. Finally, such experiments have provided good evidence in favour our integration proposal. / Mestrado / Mestre em Ciência da Computação
|
10 |
RStabilis : uma maquina reflexiva de buscaSilva, Romulo Cesar 01 September 1997 (has links)
Orientador: Luiz Eduardo Buzato / Dissertação (mestrado) - Universidade Estadual de Campinas, Instituto de Computação / Made available in DSpace on 2018-07-22T23:01:43Z (GMT). No. of bitstreams: 1
Silva_RomuloCesar_M.pdf: 3828593 bytes, checksum: b63a2f18133508ee0c0a3f8887fdd5e6 (MD5)
Previous issue date: 1997 / Resumo: A crescente complexidade e os requisitos de novas capacidades (interoperabilidade, reutilização, escala, transparência, etc) por parte de aplicações impulsionam a pesquisa de técnicas de construção de componentes de software que atendam efetivamente a essas capacidades. Dentro deste contexto, procura-se atualmente somar técnicas já existentes de propósitos distintos, mas que combinadas permitem minimizar a complexidade de construção desses componentes. Uma das grandes dificuldades no desenvolvimento de software é a separação satisfatória das atividades externas do sistema, relacionadas ao domínio da aplicação, das atividades internas, relacionadas à gerência da aplicação. Reflexão computacional é uma técnica que permite separar os mecanismos que controlam as atividades internas e externas da aplicação, de maneira que qualquer dos mecanismos possa ser alterado de forma autônoma e quase transparente. Esta dissertação pesquisa a utilização de reflexão computacional em Stabilis, uma ferramenta para construção de máquinas de busca de objetos. Máquinas de busca de objetos são sistemas de meta-informações que provêem interface orientada a objetos para informações contidas em ambientes distribuídos de grande escala. RStabilis é a versão reflexiva de Stabilis, produzida através da inclusão de mecanismos de reflexão computacional em Stabilis. RStabilis permite a fácil separação dos mecanismos de controle de atividades internas e externas / Abstract: The increasing complexity and the requirement for new capabilities (openess, reusability, scalabity, etc) in applications motivate research of technics for construction of software components that effectively provide these capabilities. In this context, there has been much research towards combining distinct software engineering technics to construct such software components. One of the main obstacles to the construction of flexible components is the separation of the mechanisms that control external activities, related to application's domain, from the mechanisms that control the internal activities of an application. Computational reflection is a software construction technic that seems to be very promising to implement separation of control mechanisms (internal from external), in a way that the internal can be modified without affecting the external, and vice-versa. In this thesis, we research the utilization of computational reflection in Stabilis, a toolkit for construction of object engine. Object engine are metainformation systems that provide object-oriented interface to information contained in network resources of large distributed enviroments. RStabilis is the reflexive version of Stabilis, it allows a clear separation of control mechanisms in the implementàtion of software applications / Mestrado / Mestre em Ciência da Computação
|
Page generated in 0.1455 seconds