JFAULT: tolerância a falhas transparente utilizando reflexão e compilação dinâmica no modelo de meta-níveis
Ano de defesa: | 2015 |
---|---|
Autor(a) principal: | |
Orientador(a): | |
Banca de defesa: | |
Tipo de documento: | Dissertação |
Tipo de acesso: | Acesso aberto |
Idioma: | por |
Instituição de defesa: |
Pontifícia Universidade Católica do Rio Grande do Sul
Porto Alegre |
Programa de Pós-Graduação: |
Não Informado pela instituição
|
Departamento: |
Não Informado pela instituição
|
País: |
Não Informado pela instituição
|
Palavras-chave em Português: | |
Link de acesso: | http://hdl.handle.net/10923/7204 |
Resumo: | Fault tolerance has become an important mean to achieve high availability in computational systems. However, building fault tolerant architectures is not a trivial task. Reflection in Meta-level architectures has been used for years as a mean for implementation of nonfunctional requirements. In this way it is possible to have a clear separation of its implementation from the implementation of the business logic itself (functional requirements) in layers or levels. These levels have become known, respectively, as base-level and metalevel and are regularly used in nowadays systems’ architecture since they bring several benefits such as increased reuse and reduced complexity, furthermore, they provide better responsibilities separation among systems’ components. On the other hand, if the meta-level is a useful architecture artifice there is still the need to build the meta-level components that intend to handle fault tolerance in application’s services, the components need to be implemented and integrated to the system’s architecture, which involves some development effort and complexity. This work presents a proposal to build, automatically and in runtime, the meta-level components for fault tolerance handling in application’s services. More precisely, it intends to propose a framework – named JFault – which using reflection and dynamic compilation will leverage those requirements transparently and with minor changes in the system. The framework is implemented in Java, language that supports both reflection and dynamic compilation, but could be built in any programming language that supports such APIs. |