7 research outputs found

    Enabling the Refinement of a Software Architecture into a Design

    Full text link

    Using off-the-shelf middleware to implement connectors in distributed software architectures

    No full text

    Utilizando reflexão computacional no desenvolvimento de aplicações distribuídas

    Get PDF
    Dissertação (mestrado) - Universidade Federal de Santa Catarina, Centro Tecnológico. Programa de Pós-Graduação em Ciência da Computação.O desenvolvimento de aplicações distribuídas exige o uso de algum mecanismo que possibilite a comunicação entre os processos cliente e servidor. Tecnologias de distribuição como RMI, CORBA e XML-RPC/SOAP disponibilizam serviços que facilitam esta atividade. Todavia, a implementação baseada nas interfaces de programação destas especificações acaba por misturar o código necessário à distribuição com a funcionalidade da aplicação, tornando-a dependente do mecanismo escolhido. Minimizar o impacto diante de uma troca de tecnologia e, simultaneamente, permitir que o desenvolvedor do software esteja focado em requisitos funcionais, constitui o principal problema desta pesquisa. De forma a possibilitar o desenvolvimento de aplicações distribuídas independentemente da plataforma de distribuição, esta dissertação propõe um framework que isola as especificidades de cada padrão dos componentes funcionais. Técnicas de reflexão computacional são aplicadas na implementação, de maneira a eliminar a codificação de adaptadores e proxies exigida em outras abordagens. Ao separar os elementos necessários à distribuição dos elementos funcionais, o framework possibilita a substituição dos mecanismos através de uma configuração externa ao software, dispensando, desta maneira, alterações no código fonte

    AMBIENT-PRISMA: Distribution and Mobility in Aspect-Oriented Software Architectures

    Full text link
    This thesis presents a framework called Ambient-PRISMA for describing and developing distributed and mobile software systems in an abstract way. Ambient-PRISMA enriches an aspect-oriented software architecture approach called PRISMA with concepts of Ambient Calculus (AC). Ambient Calculus (AC) is a formalism that provides primitives to describe distribution and mobility characteristics in an abstract way. It introduces a concept called ambient which is a bounded place where computation happens. This enrichment is performed by extending the PRISMA metamodel, and Aspect-Oriented Architecture Description Language (AOADL). A case study of an electronic Auction System with mobile agents is used throughout the thesis in order to illustrate the work.Ali Irshaid, N. (2007). AMBIENT-PRISMA: Distribution and Mobility in Aspect-Oriented Software Architectures. http://hdl.handle.net/10251/12900Archivo delegad

    A generic middleware broker for distributed systems integration

    Get PDF
    Seamless middleware integration requires conversion of the message format from the source of the request to that of its target. A number of solutions have been proposed and implemented, but they lack wide applicability and ease of use. This thesis proposes an improved solution based-on dynamic protocol-level systems integration using configuration, rather than programming. This allows large complex enterprises to extend and enhance their existing systems more easily. The major components of this solution are a Middleware Protocol Definition Language (MPDL) based on the Object Management Group (OMG) Interface Definition Language (IDL) that can describe a wide range of protocols declaratively, and a run-time environment, The Ubiquitous Broker Environment (TUBE), that takes these protocol descriptions and performs the necessary mediation and translation. The MPDL can describe a ran ge of synchronous, asynchronous, object-based, and binary and text-based protocols. Each protocol need only be described once, and the framework provides a means to easily implement special extensions to the protocol. Further, this approach can be used as the basis for developing new middleware protocols; the protocol used internally by TUBE is itself defined and executed using this approach. TUBE has been implemented and successfully tested across a range of commonly used middleware, including synchronous, asynchronous, object-based, binary and text-based protocols. Key components of the system are currently in operation in a large Australian corporation

    Exception handling in the development of fault-tolerant component-based systems

    Get PDF
    Orientador: Cecilia Mary Fischer RubiraTese (doutorado) - Universidade Estadual de Campinas, Instituto de ComputaçãoResumo: 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 notDoutoradoDoutor em Ciência da Computaçã

    An Architectural-level Exception-handling System For Component-based Applications

    No full text
    Component-based software systems built out of reusable software components are being used in a wide range of applications which have high dependability requirements. In order to accomplish the required levels of dependability, it is necessary to incorporate into these complex systems means for to cope with software faults. Exception handling is a well-known technique for adding forward error recovery to software systems supported by various mainstream programming languages. However, exception handling for component-based applications at the architectural level introduces new challenges which are not addressed by traditional exception handling systems, such as unavailability of source code, specially when off-the-shelf components are employed. In this paper, we present an exception handling system which adds fault tolerance to component-based systems at the architectural level. Our solution considers issues which are specific to component-based applications, such as unavailability of source code. We also present a framework which implements the proposed exception handling system for applications built using the C2 architectural style. © Springer-Verlag Berlin Heidelberg 2003.2847321340Anderson, T., Lee, P.A., (1990) Fault Tolerance: Principles and Practice, 2nd Edition, , Prentice-HallBrown, A.W., Wallnau, K.C., The Current State of CBSE (1998) IEEE Software, 15 (5), pp. 37-46. , IEEE Computer Society PressPaul, C., (1996) Clements and Linda Northrop: Software Architecture: An Executive Overview, , Technical Report CMU/SEI-96-TR-003. Software Engineering Institute, Carnegie Mellon UniversityCook, J.E., Dage, J.A., Highly Reliable Upgrading of Components (1999) Proceedings of the 21st International Conference on Software Engineering, pp. 203-212Cristian, F., Exception Handling (1989) Dependability of Resilient Computers, , T. Anderson (ed.): BSP Professional BooksDashofy, E.M., Medvidovic, N., Taylor, R.N., Using Off-The-Shelf Middleware to Implement Connectors in Distributed Software Architectures (1999) Proceedings of the 21st International Conference on Software Engineering (ICSE '99), pp. 3-12Garcia, A., Beder, D., Rubira, C., An Exception Handling Mechanism for Developing Dependable Object-Oriented Software Based on a Meta-Level Approach (1999) Proceedings of the 10th International Symposium on Software Reliability Engineering - ISSRE'99, pp. 52-61. , IEEE Computer Society PressGarcia, A., Rubira, C., Romanovsky, A., Xu, J., A Comparative Study of Exception Handling Mechanisms for Building Dependable Object-Oriented Software (2001) Journal of Systems and Software, 59 (2), pp. 197-222. , ElsevierGarlan, D., Monroe, R.T., Wile, D., Acme: Architectural Description of Component-Based Systems (2000) Foundations of Component -Based Systems, pp. 47-67. , Gary T. Levens and Murali Sitaraman (eds.): Cambridge University PressGoodenough, J.B., Exception Handling: Issues and a Proposed Notation (1975) Communications of the ACM, 18 (12), pp. 683-696. , ACM Press, New York, NYGosling, J., Joy, B., Steele, G., (1996) The Java Language Specification, , Addison-WesleyGuerra, P., Rubira, C., De Lemos, R., An Idealized Fault-Tolerant Architectural Component (2002) Proceedings of the 24th International Conference on Software Engineering - Workshop on Architecting Dependable SystemsGuerra, P.A.C., Rubira, C.M.F., De Lemos, R., A Fault-Tolerant Architecture for Component-Based Software Systems (2003) Lecture Notes in Computer Science, , R. de Lemos and C. Gracek and A. Romanosvsky (eds.): Architecting Dependable Systems. to appear. Springer-Verlag, Berlin Heidelberg New YorkGuerra, P., Rubira, C., Romanovsky, A., De Lemos, R., Integrating COTS Software Componentes into Dependable Software Architectures (2003) Proceedings of the 6th International Symposium on Object-Oriented Real-Time Distributed Computing, , IEEE Computer Society PressIssarny, V., Banatre, J.P., Architecture-Based Exception Handling (2001) Proceedings of the 34th Annual Hawaii International Conference on System Sciences, , IEEE Society PressKiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C., Lingtier, J., Irwin, J., Aspect-Oriented Programming (1997) Lecture Notes in Computer Science, 1241. , Proceedings of the European Conference on Object-Oriented Programming. Springer-Verlag, Berlin Heidelberg New YorkKoening, A., Stroustrup, B., Exception Handling for C++ (1990) Jornal of Object-Oriented Programmings, 3 (2), pp. 16-33Lacourte, S., Exceptions in Guide, an Object-Oriented Language for Distributed Applications (1991) Lecture Notes in Computer Science, 512, pp. 268-287. , Springer-Verlag, Berlin Heidelberg New YorkMaes, P., Concepts and Experiments in Computational Reflection (1987) ACM SIGPLAN Notices, 22 (12), pp. 147-155. , ACM PressMedvidovic, N., Oreizy, P., Taylor, R.N., Reuse of Off-the-Shelf Components in C2-Style Architectures (1997) Proceedings of the 1997 Symposium on Software Reusability, pp. 190-198Rakic, M., Medvidovic, N., Increasing the Confidence in Off-the-Shelf Components: A Software Connector-Based Approach (2001) Proceedings of the 2001 Symposium on Software Reusability, pp. 11-18Saridakis, T., Issarny, V., (1999) Fault-Tolerant Software Architectures, , Technical Report 3350. INRIASloman, M., Kramer, J., (1987) Distributed Systems and Computer Networks, , Prentice HallSprott, D., Componentizing the Enterprise Application Packages (2000) Communications of the ACM, 43 (4), pp. 63-69. , ACM Press, New York, NYStavridou, V., Riemenschneider, A., Provably Dependable Software Architectures (1998) Proceedings of the Third ACM SIGPLAN International Software Architecture Workshop, pp. 133-136. , ACM Press(2002) Enterprise Javabeans Specification v2.1, , http://java.sun.com/products/ejb/, Proposed Final DraftTaft, S.T., Duff, R.A., Ada 95 Reference Manual: Language and Standard Libraries, International Standard Iso/Iec 8652:1995(e) (1997) Lecture Notes in Computer Science, 1246. , Springer-Verlag, Berlin Heidelberg New YorkTaylor, R.N., Medvidovic, N., Anderson, K.M., Whitehead Jr., E.J., Robbins, J.E., A Component- and Message- Based Architectural Style for GUI Software (1995) Proceedings of the 17th International Conference on Software Engineering, pp. 295-304ArchStudio 3.0, , http://www.isr.uci.edu/projects/archstudio, Homepag
    corecore