Spelling suggestions: "subject:"aspect oriented programming"" "subject:"1spect oriented programming""
101 |
建構可重用與細緻化的剖面導向存取控管框架 / Building a Reusable and Fine-grained Aspect-Oriented Access Control Framework黃植懋, Huang , Chih-Mao Unknown Date (has links)
隨著網路應用的發達與普及,應用系統的安全防護非常重要,但是要將安全方防護方面的設計與製作做好,卻不容易。因為與安全相關的程式碼必須嵌入到應用系統的各個模組中去執行,具有橫跨(cross-cutting)的特性。在設計時,若不加以區分,仍然以一般的物件或是函式模組來將其模組化的話,往往造成系統中反覆出現類似的程式碼以及不同需求的程式碼夾雜不清的現象,當系統愈趨複雜時,這些問題就愈顯嚴重,結果導致系統不易維護且錯誤頻仍。
最近興起的剖面導向程式設計(Aspect-Oriented Programming)基於關注分離的原則(Separation of Concerns),針對像安全這類橫跨性的需求,倡議在原有的物件或函式模組外,另以剖面(aspect)作為這些橫跨性需求的模組單位,以大幅改善應用系統的模組性。近兩三年來,這方面的發展迅速,各種支援方面導向的程式語言與相關工具相繼推出,美國全錄公司柏拉圖實驗室發展的AspectJ語言就是一個具代表性的成果。本論文以剖面導向的原則,以AspectJ及JBossAOP為主要工具,針對Web應用程式在認證與存取控管方面的安全需求,設計與製作一套具重用性且可處理資料內容相關、細緻層級的存取控管框架。 / Access control is a system-wide concern that has both a generic nature and an application dependent characteristic. It is generic as many functions must be protected with restricted access, yet the rule to grant a request is highly dependent on the application state. Hence it is common to see the code for implementing access control scattered over the system and tangled with the functional code, making the system difficult to maintain. This thesis addresses this issue for Web applications by presenting a practical access control framework based on aspect-oriented programming (AOP). Our approach accommodates a wide range of access control requirements of different granularity. AOP supports the modular implementation of access control while still enables the code to get a hold of the application state. Moreover, framework technology offers a balanced view between reuse and customization. As a result, our framework is able to enforce fine-grained access control for Web applications in a highly adaptable manner.
|
102 |
Pattern-based data and application integration in service oriented architecturesKongdenfha, Woralak, Computer Science & Engineering, Faculty of Engineering, UNSW January 2009 (has links)
The success of Web services comes from the benefits that it brings in reducing the cost and the time needed to develop data and applications by reusing them, and simplifying their integrations through standardization. However, standardization in Web services does not remove the need for adapters due to possible heterogeneity among service interface and protocol definitions. Moreover, the current service APIs are targeted toward professional programmers, but not accessible to a wider class of users without programming expertise, but would never the less like to build their own integrated applications. In this dissertation, we propose methods and tools to support both service developers and non-expert users in their data and application integration tasks. To support service developers, we propose a framework that enables rapid development of Web service adapters. We investigate particularly the problem of service adaptation focusing on business interface and protocol layers. Our study shows that many differences between business interfaces and protocols are recurring. We introduce mismatch patterns to capture these recurring differences and provide solutions to resolve them. We present the notion of adaptation aspects, which is based on the aspect-oriented programming paradigm, to enable rapid development and deployment of service adapters. We also present a comparative study between standalone and aspect-oriented adapters development. The study shows that the aspect-oriented approach is preferable in many cases, especially when adapters need to access internal states of services. The proposed approach is implemented in a prototype tool, which is used to illustrate how it simplifies adapters development through a case study. To support users without programming expertise, we propose a spreadsheet-based Web mashups development framework, which enables users to develop mashups in the popular spreadsheet environment. First, we provide a mechanism that makes structured data first class values of spreadsheet cells. Second, we propose a new component model that can be used to develop fairly sophisticated mashups, involving joining data sources and keeping spreadsheet data up to date. Third, to simplify mashup development, we provide a collection of spreadsheet-based mashup patterns that captures common Web data access and spreadsheet presentation functionalities. Users can reuse and customize these patterns to build spreadsheet-based Web mashups instead of developing them from scratch. Fourth, we enable users to manipulate structured data presented on spreadsheet in a drag-and-drop fashion. Finally, we have developed and tested a prototype tool to demonstrate the utility of the proposed framework.
|
103 |
Pattern-based data and application integration in service oriented architecturesKongdenfha, Woralak, Computer Science & Engineering, Faculty of Engineering, UNSW January 2009 (has links)
The success of Web services comes from the benefits that it brings in reducing the cost and the time needed to develop data and applications by reusing them, and simplifying their integrations through standardization. However, standardization in Web services does not remove the need for adapters due to possible heterogeneity among service interface and protocol definitions. Moreover, the current service APIs are targeted toward professional programmers, but not accessible to a wider class of users without programming expertise, but would never the less like to build their own integrated applications. In this dissertation, we propose methods and tools to support both service developers and non-expert users in their data and application integration tasks. To support service developers, we propose a framework that enables rapid development of Web service adapters. We investigate particularly the problem of service adaptation focusing on business interface and protocol layers. Our study shows that many differences between business interfaces and protocols are recurring. We introduce mismatch patterns to capture these recurring differences and provide solutions to resolve them. We present the notion of adaptation aspects, which is based on the aspect-oriented programming paradigm, to enable rapid development and deployment of service adapters. We also present a comparative study between standalone and aspect-oriented adapters development. The study shows that the aspect-oriented approach is preferable in many cases, especially when adapters need to access internal states of services. The proposed approach is implemented in a prototype tool, which is used to illustrate how it simplifies adapters development through a case study. To support users without programming expertise, we propose a spreadsheet-based Web mashups development framework, which enables users to develop mashups in the popular spreadsheet environment. First, we provide a mechanism that makes structured data first class values of spreadsheet cells. Second, we propose a new component model that can be used to develop fairly sophisticated mashups, involving joining data sources and keeping spreadsheet data up to date. Third, to simplify mashup development, we provide a collection of spreadsheet-based mashup patterns that captures common Web data access and spreadsheet presentation functionalities. Users can reuse and customize these patterns to build spreadsheet-based Web mashups instead of developing them from scratch. Fourth, we enable users to manipulate structured data presented on spreadsheet in a drag-and-drop fashion. Finally, we have developed and tested a prototype tool to demonstrate the utility of the proposed framework.
|
104 |
Component-based language implementation with object-oriented syntax and aspect-oriented semanticsWu, Xiaoqing. January 2007 (has links) (PDF)
Thesis (Ph. D.)--University of Alabama at Birmingham, 2007. / Additional advisors: Jeff Gray, Marjan Mernik, Alan Sprague, Murat Tanik. Description based on contents viewed June 25, 2007; title from title screen. Includes bibliographical references (p. 132-138).
|
105 |
AdaptiveRME e aspectCompose: um middleware adaptativo e um processo de composição orientado a aspecto para o desenvolvimento de software móvel e ubíquo / AdaptiveRME and aspectCompose: A middleware adaptative and a guided process of composition the aspects for the development of software móvel and ubiquitousRocha, Lincoln Souza January 2007 (has links)
ROCHA, Lincoln Souza. AdaptiveRME e aspectCompose: um middleware adaptativo e um processo de composição orientado a aspecto para o desenvolvimento de software móvel e ubíquo. 2007. 102 f. Dissertação (Mestrado em ciência da computação)- Universidade Federal do Ceará, Fortaleza-CE, 2007. / Submitted by Elineudson Ribeiro (elineudsonr@gmail.com) on 2016-07-11T18:16:05Z
No. of bitstreams: 1
2007_dis_lsrocha.pdf: 2405680 bytes, checksum: 7063a81265f0d1a3757c5dff48a28581 (MD5) / Approved for entry into archive by Rocilda Sales (rocilda@ufc.br) on 2016-07-18T16:10:13Z (GMT) No. of bitstreams: 1
2007_dis_lsrocha.pdf: 2405680 bytes, checksum: 7063a81265f0d1a3757c5dff48a28581 (MD5) / Made available in DSpace on 2016-07-18T16:10:13Z (GMT). No. of bitstreams: 1
2007_dis_lsrocha.pdf: 2405680 bytes, checksum: 7063a81265f0d1a3757c5dff48a28581 (MD5)
Previous issue date: 2007 / Ubiquitous computing is an extensive computational paradigm, which can provide solutions to regular citizens or can be useful to handle complex medical environment data, for example. This paradigm proposes a new human-computer interaction approach based on the proactivity of computers that makes users’ life easier. However, this approach demands a high level of collaboration and communication among the computational elements that compose the mobile and ubiquitous environments. One of the main challenges is related to the way of conceiving software systems capable of dealing with the high variation of resources and services, along with guaranteeing the interoperability among the diversity of computational elements that compose these environments. Therefore, this work proposes an adaptive middleware for móbile and ubiquitous environments that intends to solve heterogeneity and dynamicity problems. This dissertation also proposes a software composition process to reduce coupling between the proposed middleware and applications. The middleware uses dynamic adaptation and support for context-aware software development mechanisms, and the composition process uses Aspect-Oriented Programming (AOP) techniques. A case study is developed to evaluate the adaptive middleware’s functionalities and demonstrate the composing process. Furthermore, a performance analysis is presented to measure the proposed middleware’s impact in a wireless network. / A computação ubíqua é um paradigma computacional de grande abrangência, com aplicabilidades tanto para o cotidiano de um cidadão comum quanto para o tratamento de informações complexas em ambientes hospitalares. Este paradigma propõe uma nova forma de interação homem-computador baseada na proatividade dos computadores para facilitar a vida dos usuários. Entretanto, tal forma de interação demanda um alto grau de colaboração e comunicação entre os elementos computacionais que compõem os ambientes móveis e ubíquos. Um dos principais desafios está relacionado a maneira de como conceber sistemas de software capazes de lidar com a alta variação de recursos e serviços, além de garantir a interoperabilidade entre os diversos elementos computacionais que compõem estes ambientes. Este trabalho propõe, então, um middleware adaptativo para ambientes móveis e ubíquos com o objetivo de solucionar problemas de heterogeneidade e dinamicidade. Para diminuir o acoplamento entre o middleware proposto e as aplicações que o utilizam, esta dissertação também propõe um processo de composição de software. O middleware utiliza mecanismos de adaptação dinâmica e suporte ao desenvolvimento de software sensível ao contexto, e o processo de composição faz uso de técnicas de Programação Orientada a Aspectos (POA). Um estudo de caso é desenvolvido para avaliar a funcionalidade do middleware adaptativo e demonstrar a utilização do processo de composição. Além disso, uma análise de desempenho é apresentada para medir o impacto provocado pelo uso do middleware proposto em um ambiente de rede sem fio.
|
106 |
Um metamodelo para facilitar a integração de ferramentas de visualização de software e mineração de interesses transversaisTanner, Oscar José Fernandes 22 November 2013 (has links)
Made available in DSpace on 2016-06-02T19:06:13Z (GMT). No. of bitstreams: 1
6078.pdf: 14032295 bytes, checksum: 116eccd4fd841045293650d9b4779ff3 (MD5)
Previous issue date: 2013-11-22 / Financiadora de Estudos e Projetos / A goal of the Object-Oriented Programming is to develop software with better modularization and separation of concerns, although tangling and scattering of some of these concerns cannot be prevented. The Aspect-Oriented Programming was proposed to solve this problem. However, the identification of the scattering and tangling concerns, also known as crosscutting concerns (CC), is not simple. To assist this identification, it is recommended the use of CC Mining tools (MT), but some MTs do not properly display these CCs in the source code. One way to improve the presentation of this CCs is displaying them through software visualization tools. Software visualization aims to abstract the structural information of the software through visual metaphors. However, it is not always simple to integrate CC and visualization tools, because each tool store their results in a specific format that is usually not recognized by the others. In order to solve this problem, this work created a metamodel that facilitates this integration. The results obtained from a MT are transformed to this metamodel format, so they can be processed by a software visualization tool. Presenting the results of a MT through software visualization tools helps the comparison of these results, facilitating the detection of false negatives and the identification of visual patterns that indicate false positives. Four MT and two software visualization tools were integrated to demonstrate the benefits of an integrated environment. Moreover, two experiments were conducted: one to evaluate the use of the proposed metamodel; and another to evaluate the use of the integrated environment. The results revealed that the use of the proposed metamodel facilitates this integration and the software engineer must be a specialist of each of the integrated tools in order to enjoy the benefits from this integration. / Um dos objetivos do desenvolvimento Orientado a Objetos é a construção de software com melhor modularização e separação de interesses, porém não há como evitar que haja entrelaçamento e espalhamento de alguns desses interesses. O desenvolvimento Orientado a Aspecto é uma proposta de solucionar esse problema. Entretanto, a identificação de interesses entrelaçados e espalhados pelo código fonte, conhecidos como interesses transversais (IT), não é simples. Para auxiliar essa identificação é recomendado o uso de ferramentas de mineração de interesses transversais (MIT). Após esses interesses serem identificados, muitas vezes, persiste a dificuldade de visualizá-los adequadamente no código fonte. Uma forma de melhorar a apresentação dos ITs é exibir os resultados das ferramentas de MIT usando as ferramentas de visualização de software. A visualização de software tem como objetivo abstrair as informações estruturais de um software por meio de metáforas visuais. Porém, nem sempre é possível integrar facilmente essas ferramentas, pois cada uma armazena seus resultados em um formato específico que normalmente não é reconhecida pelas demais. Para solucionar esse problema, neste trabalho foi criado um metamodelo que facilita essa integração. Os resultados obtidos a partir de uma ferramenta de MIT são transformados para o formato desse metamodelo, para que sejam processados por uma ferramenta de visualização de software. A exibição dos resultados das ferramentas de MIT por meio das ferramentas de visualização facilita a comparação desses resultados, sendo evidenciados os falsos negativos e facilitada a identificação de novos padrões visuais para falsos positivos. Para mostrar a utilidade de um ambiente integrado, foram utilizadas quatro ferramentas de MIT e duas de visualização de software. Além disso, dois experimentos foram conduzidos: um para avaliar a utilização do metamodelo proposto, e outro para avaliar a utilização do ambiente integrado. Os resultados apontaram que a integração é facilitada com a utilização do metamodelo proposto e que é necessário que o engenheiro de software tenha pleno domínio de cada uma das ferramentas envolvidas, a fim de beneficiar-se dessa integração.
|
107 |
Avaliação de conjuntos de testes funcionais no contexto de programas orientados a objetos e programas orientados a aspectosLevin, Thiago Gaspar 08 January 2015 (has links)
Made available in DSpace on 2016-06-02T19:06:21Z (GMT). No. of bitstreams: 1
6590.pdf: 1739821 bytes, checksum: 376967fb01c5f5d38d60ce523ffa6021 (MD5)
Previous issue date: 2015-01-08 / Universidade Federal de Sao Carlos / Context: Software testing play an important role to reveal faults and increase the quality of developed products. Structural-based testing has shown to be important in the evaluation of both the quality of the software and the quality of the test set itself. Objective: This work reports on the results of an experimental study that aimed to evaluate the quality of test sets which were originally built for a given programming paradigm, when such test sets are adapted and applied to a different paradigm. Besides this, this we also measure the effort to migrate test sets from one paradigm to another. In this work, we considered the object-oriented (OO) and aspect-oriented (AO) paradigms. Method: We evaluated the quality of test sets by analysing the code coverage yielded by test sets within both paradigms; to evaluate the effort required to adapt test sets across paradigms, we performed comparisons of code-related metrics applied to test code. In total, we analysed 12 small-sized applications and one medium-sized application. Results: The achieved coverage for distinct groups of applications did not show expressive differences across the paradigms, particularly for small-sized applications. Only for the medium-sized system tests yielded higher code coverage in the OO implementation. In respect with the test set adaptation effort, migrating OO tests to the AO paradigm required more code additions, whilst migrating AO tests to the OO implementations required more code changes and removals. Conclusion: With the achieved results, we cannot state that there is a difference in the quality of the test sets, in terms of structural coverage, when both paradigms are taken into account. Only for a single application the coverage difference was evident. In regard to the process of migrating tests from one paradigms to another, OO tests have shown to be more concise (in terms of lines of code) and more reusable than OA tests. / Contexto: O teste de software é uma atividade importante para revelar defeitos e aumentar a qualidade nos produtos desenvolvidos. Testes estruturais tem se mostrados bastante importantes para a avaliação da qualidade do software ou mesmo do conjunto de testes utilizado para testá-lo. Objetivo: Este trabalho apresenta um estudo experimental para avaliar a qualidade de conjuntos de testes criados para um paradigma em específico, quando adaptado e aplicado em outro paradigma, avaliando também o esforço para adaptar conjuntos de testes quando ocorre a migração de um paradigma para outro. Os paradigmas considerados são o paradigma orientado a objetos (OO) e o paradigma orientado a aspectos (OA). Metodo: Para a avaliação da qualidade dos conjuntos de testes adaptados foi analisada a cobertura de código atingida em ambos os paradigmas; para a avaliação do esforço na adaptação dos conjuntos de testes, métricas de código foram comparadas em relação a implementações dos testes em cada paradigma considerado. No total, 12 aplicações de pequeno porte e uma aplicação de médio porte foram avaliadas. Resultados: A cobertura de código atingida para diferentes grupos de aplicações não resultou em diferenças expressivas entre os paradigmas, em particular para as aplicações de pequeno porte. Somente no sistema de médio porte o codigo da implementação OO foi mais coberto do que na implementação OA. Em relação ao esforço na adaptação dos conjuntos de testes, os testes OO migrados para as implementações OA necessitaram de mais incrementos de código, enquanto os conjuntos de testes OA migrados para o paradigma OO necessitaram de mais decrementos e modificações. Conclusão: Com os resultados alcançados não e possível afirmar que um conjunto de testes adaptado de um determinado paradigma possui maior qualidade em relação a outro paradigma, com exceção de uma aplicação, em que o conjunto de testes OO se apresentou com qualidade superior ao conjunto de testes OA. Em relação a migração de conjuntos de testes entre paradigmas, os testes OO apresentaram-se mais enxutos (em termos de linhas de código) e mais reutilizaveis do que os testes OA.
|
108 |
UMA LINGUAGEM ESPECÍFICA DE DOMÍNIO PARA CONSULTA EM CÓDIGO ORIENTADO A ASPECTOS / A DOMAIN SPECIFIC LANGUAGE FOR ASPECT-ORIENTED CODE QUERYFaveri, Cristiano de 28 August 2013 (has links)
Ensuring code quality is crucial in software development. Not seldom, developers resort
to static analysis tools to assist them in both understanding pieces of code and identifying
defects or refactoring opportunities during development activities. A critical issue when defining
such tools is their ability to obtain information about code. Static analysis tools depend, in
general, of an intermediate program representation to identify locations that meet the conditions
described in their algorithms. This perspective can be enlarged when techniques of crosscutting
concerns modularization, such as aspect-oriented programming (AOP) is applied. In AOP
applications, a piece of code can be systematically affected, using both static and dynamic
combinations. The main goal of this dissertation is the specification and the implementation of
AQL, a domain-specific language (DSL) designed to search aspect-oriented code bases. AQL is
a declarative language, based on object query language (OQL), which enables the task of querying
elements, relationships and program metrics to support the construction of static analysis
and code searching tools for aspect oriented programs. The language was designed in two steps.
First, we built a framework (AOPJungle), responsible to extract data from aspect-oriented programs.
AOPJungle performs the computation of metrics, inferences and connections between
the elements of the program. In the second step, we built an AQL compiler as a reference implementation.
We adopted a source-to-source transformation for this step, in which an AQL query
is transformed into HQL statements before being executed. In order to evaluate the reference
implementation, we developed a static analysis tool for identifying refactoring opportunities in
aspect-oriented programs. This tool receives a set of AQL queries to identify potential scenarios
where refactoring could be applied. / Assegurar a qualidade de código é um ponto crucial durante o desenvolvimento de software.
Frequentemente, os desenvolvedores recorrem às ferramentas de análise estática para
auxiliá-los tanto na compreensão de código, quanto na identificação de defeitos ou de oportunidades
de refatoração durante o ciclo de desenvolvimento de aplicações. Um dos pontos
críticos na definição de tais ferramentas está na sua capacidade de obter informações a respeito
de código. As ferramentas de análise estática dependem, em geral, de uma representação intermediária
de um programa para identificar situações que atendam às condições necessárias
descritas em seus algoritmos. Esse panorama se amplia com o uso de técnicas de modularização
de interesses transversais, tais como a programação orientada a aspectos (POA), na qual um
código pode ser afetado de forma sistêmica, por meio de combinações estáticas e dinâmicas.
O principal objetivo desta dissertação é a especificação e implementação de AQL, uma DSL
(linguagem específica de domínio) para a realização de busca em código orientado a aspectos.
A AQL é uma linguagem declarativa, baseada em linguagem de busca em objetos (OQL) e
que permite consultar elementos, relações, derivações e métricas de um programa orientado a
aspectos (OA), a fim de apoiar a construção de ferramentas de análise estática e de pesquisa
em código. O projeto de implementação da linguagem foi realizado em duas etapas. Primeiro,
foi criado um framework (AOPJungle) para a extração de dados de programas OA. O AOPJungle
além de extrair dados de programas OA, realiza a computação de métricas, inferências e
ligações entre os elementos de um programa. Na segunda etapa, um compilador de referência
para AQL foi construído. A abordagem adotada foi a transformação fonte a fonte, sendo uma
consulta AQL transformada em uma consulta HQL (Hibernate Query Language) antes de sua
execução. A fim de avaliar a implementação proposta, uma ferramenta de análise estática para
identificação de oportunidades de refatoração em programas AO foi elaborada, usando a AQL
para a busca de dados sobre esses programas.
|
109 |
Seletores de pontos de junção: um mecanismo de extensão para linguagens e arcabouços orientados a aspectos / Join Point Selectors: An Extension Mechanism for Aspect-Oriented Languages and FrameworksCristiano Malanga Breuel 26 March 2008 (has links)
Uma das questões mais importantes nas linguagens e arcabouços orientados a aspectos atuais é a expressividade da linguagem ou mecanismo de definição de pointcuts. A expressividade de uma linguagem de pointcuts impacta diretamente a qualidade dos pointcuts, uma propriedade que pode ser decisiva para a eficácia das implementações de aspectos. Neste trabalho, propomos os seletores de pontos de junção como um mecanismo de extensão simples para enriquecer linguagens de pointcut atuais com elementos que fazem o papel de \"novos pointcuts primitivos\". Os seletores de pontos de junção permitem a criação de pointcuts com maior valor semântico. Apesar de existirem mecanismos similares em algumas abordagens existentes, o conceito subjacente não foi claramente definido ou completamente explorado. Apresentamos também uma arquitetura simples para a adição de seletores de pontos de junção a um arcabouço orientado a aspectos existente, e mostramos exemplos do uso de seletores para melhorar a qualidade de pointcuts e facilitar o desenvolvimento de aspectos. / One of the main issues in modern aspect-oriented programming languages and frameworks is the expressiveness of the pointcut language or mechanism. The expressiveness of pointcut languages directly impacts pointcut quality, a property that can be decisive for the effectiveness of aspect implementations. In this work we propose join point selectors as a simple extension mechanism for enriching current pointcut languages with constructs that play the role of \"new primitive pointcuts\". Join point selectors allow the creation of pointcuts with greater semantic value. Although similar mechanisms can be found in some existing approaches, the underlying concept has not yet been clearly defined nor fully explored. We also present a simple architecture for adding join point selectors to an existing aspect-oriented framework, and show examples of usage of join point selectors to enhance the quality of pointcuts and make aspect development easier.
|
110 |
Ações atomicas coordenadas na plataforma Java EE / Coordinated atomic actions in Java EE platformSantos, Peterson Peixoto dos 15 August 2018 (has links)
Orientador: Cecilia Mary Fischer Rubira / Dissertação (mestrado) - Universidade Estadual de Campinas, Instituto de Computação / Made available in DSpace on 2018-08-15T17:42:34Z (GMT). No. of bitstreams: 1
Santos_PetersonPeixotodos_M.pdf: 1073315 bytes, checksum: 7071b3cca814f678b2dae606f78f6eff (MD5)
Previous issue date: 2010 / Resumo: À medida que os sistemas de software evoluem, precisam garantir requisitos funcionais e de qualidade cada vez mais complexos e com maior rigor de qualidade. Nos _últimos anos, várias abordagens e ferramentas t^em sido propostas para guiar o processo de desenvolvimento de software visando atingir altos níveis de qualidade. O Desenvolvimento Baseado em Componentes (DBC) _e uma das técnicas mais bem aceitas tanto na indústria quanto no meio acadêmico e se propõe a compor sistemas de software a partir de componentes reutilizáveis já prontos e, se possível, de uma relativamente pequena quantidade de linhas de código específicas para a aplicação. Existem diversas plataformas para DBC, das quais Java Enterprise Edition (Java EE) _e uma das mais populares. Por outro lado, tolerância a falhas _e uma das abordagens mais empregadas para construir sistemas que consigam prover seus serviços especificados mesmo na presença de diferentes tipos de falhas de forma a atingir os níveis desejados de confiabilidade. O conceito de Ação Atômica Coordenada (CA Action) foi proposto para prover tolerância a falhas em sistemas concorrentes orientados a objetos, integrando os conceitos complementares de conversação (concorrência cooperativa) e transação atômica (concorrência competitiva) e estabelecendo uma semântica para tratamento de exceções concorrentes (exceções lançadas simultaneamente por threads concorrentes) além de dar suporte ao uso conjunto de recuperação de erro por avanço e por retrocesso. A proposta deste trabalho _e acrescentar _a plataforma de desenvolvimento baseado em componentes Java Enterprise Edition (Java EE) alguns mecanismos de tolerância a falhas propostos pelo conceito de CA Action. A implementação da solução proposta foi baseada em Java, programação orientada a aspectos e no conceito de comunicação assíncrona implementada pelos componentes message-driven beans da plataforma Java Enterprise Edition. A solução foi avaliada através da construção de 2 estudos de caso: (i) uma aplicação JBoss baseada em message-driven beans e (ii) um sistema real de faturamento de energia elétrica. Desta forma, procuramos demonstrar a factibilidade de proporcionar mecanismos simples para adaptações permitindo que aplicações desta plataforma possam usufruir de mais benefícios de tolerância a falhas sem grandes modificações em seu código fonte já previamente implementado e implantado / Abstract: As software systems evolve, they should provide stronger functional and quality requirements. In the last years, many diferent approaches and tools have been proposed to guide software development process aiming to achieve higher quality levels. Component-Based Development (CBD) is one of the most accepted techniques in the academy as well as in the industry and proposes to build software systems from pre-existing reusable components and, if possible, a relative low quantity of application specific glue code. There are many CBD platforms and Java Enterprise Edition (Java EE) is one of the most popular. Fault tolerance is one of the most adopted means to build up systems that are capable of providing their intended service, even if only partially, when faults occur, so as the desired reliability levels be achieved. The Coordinated Atomic Action (CA Action) concept was proposed to provide fault tolerance in concurrent object-oriented software systems and to integrate two complementary concepts, conversations (cooperative concurrency) and transactions (competitive concurrency). It establishes a semantic for concurrent exception handling and also supports the combined use of forward and backward error recovery. This work proposes to extend the component-based development platform Java Enterprise Edition (Java EE) with some of the fault tolerance means proposed by CA Action's concept by incorporating a concurrent exception handling mechanism to the platform. The proposed solution implementation was based on Java, aspect oriented programming and on the asynchronous communication concept implemented by Java EE message-driven bean components. The solution was assessed by two case studies: (i) a JBoss application based on message-driven beans and (ii) a real billing system for electric power companies by which we try to demonstrate the feasibility of providing simple means for adapting Java Enterprise Edition applications in a way that they could appropriate more fault tolerance benefits without big changes in their previously implemented and deployed source code / Mestrado / Engenharia de Software / Mestre em Ciência da Computação
|
Page generated in 0.1165 seconds