291 research outputs found

    Enabling Connectors in Hierarchical Component Models

    Get PDF
    The continual growth of computing and storage capabilities enables scientific numerical applications to integrate more and more phenomena in their computations at the price of increased complexity. Hierarchical component models appear as an interesting approach to handle such complexity. However defining and implementing efficient interactions between hierarchical components is a difficult task, especially in the case of parallel and distributed applications. Connectors originating from Architecture Description Languages (ADL) offer a promising solution to this problem. There are however some cases where a simple combination of hierarchy and connectors in a single component model forces users to choose between an efficient implementation of components and their black box behavior. This paper describes HLCM, a model with connectors and hierarchy that provides /open connections/ as a mechanism to describe component interface that enhances encapsulation and eases component implementation replacement while supporting efficient interactions. Complex interactions such as data sharing and parallel method calls are successfully supported by HLCM. An implementation, based on model transformation and on CCM, illustrates its feasibility and benefits.La croissance continue des capacités de calcul et de stockage permet aux applications numériques d'intégrer un nombre croissant de phénomènes dans leurs calculs au prix d'une complexité accrue. Les modèles de composants hiérarchiques apparaissent comme une approche intéressante pour gérer cette complexité. Cependant, définir et implémenter des interactions efficaces entre composants hiérarchiques est une tâche difficile, d'autant plus dans le cas d'applications parallèles et distribuées. Les connecteurs issus des langages de description d'architecture (ADL) offrent une solution prometteuse à ce problème. Il y a cependant des cas où une simple combinaison de la hiérarchie et des connecteurs dans un modèle de composants unique oblige l'utilisateur à faire un choix entre des mises en œuvres efficaces pour les composants et leur comportement «boîte noire». Ce papier décrit HLCM, un modèle avec connecteurs et hiérarchie qui fournit le concept de /connexions ouvertes/ pour decrire les interfaces de composants. Ce méchanisme améliore l'encapsulation et facilite le remplacement des mises en œuvre de composant tout en permettant des interactions efficaces. Des interactions complexes telles que le partage de données ou les invocations de méthodes parallèles sont gérées avec succès par HLCM. Une mise en œuvre basée sur une transformation de modèle et sur CCM est utilisée pour illustrer sa faisabilité et ses bénéfices

    Dimensions of coupling in middleware

    Get PDF
    It is well accepted that different types of distributed architectures require different degrees of coupling. For example, in client-server and three-tier architectures, application components are generally tightly coupled, both with one-another and with the underlying middleware. Meanwhile, in off-line transaction processing, grid computing and mobile applications, the degree of coupling between application components and with the underlying middleware needs to be minimised. Terms such as "synchronous", "asynchronous", "blocking", "non-blocking", "directed", and "non-directed" are often used to refer to the degree of coupling required by an architecture or provided by a middleware. However, these terms are used with various connotations. And while various informal definitions have been provided, there is a lack of an overarching formal framework to unambiguously communicate architectural requirements with respect to (de-)coupling. This article addresses this gap by: (i) formally defining three dimensions of (de-)coupling; (ii) relating these dimensions to existing middleware; and (iii) proposing notational elements to represent various coupling integration patterns. This article also discusses a prototype that demonstrates the feasibility of its implementation

    Performance Evaluation and Comparison of CORBA Implementations for the Java Platform

    Get PDF
    Middleware is a software layer between the applications, services and the operating system that provides an abstraction to the application programmer. It masks the heterogeneous nature of the network and provides such services as remote calls, naming service, transaction process abilities, and security services. Common Object Request Broker Architecture (CORBA) is a middleware design that is implemented through the use of Object Request Broker (ORB), which is a software component that,allows communication between the remote objects and applications that use them in a distributed environment. CORBA applications can run on almost any platform, operating system, and support different languages. There are many types of distributed object middleware on the market such as Sun\u27s Java 2 ORB, Inprises\u27s VisiBroker for Java, IONA\u27s ORBacus for Java, and IONA\u27s Orbix 2000 for Java. Because of these various products, it is difficult to select the product that will provide the specific requirements for one\u27s application. The goal of this project is to evaluate the above-mentioned implementations of the CORBA standards and, additionally, CORBA was compared to LAMIMPI for efficiency. The results of this project should provide developers and novices studying distributed systems the necessary data to evaluate and select the most efficient CORBA product to meet their specific design requirements, and provide a methodology for further evaluation

    MPICH-G2: A Grid-Enabled Implementation of the Message Passing Interface

    Full text link
    Application development for distributed computing "Grids" can benefit from tools that variously hide or enable application-level management of critical aspects of the heterogeneous environment. As part of an investigation of these issues, we have developed MPICH-G2, a Grid-enabled implementation of the Message Passing Interface (MPI) that allows a user to run MPI programs across multiple computers, at the same or different sites, using the same commands that would be used on a parallel computer. This library extends the Argonne MPICH implementation of MPI to use services provided by the Globus Toolkit for authentication, authorization, resource allocation, executable staging, and I/O, as well as for process creation, monitoring, and control. Various performance-critical operations, including startup and collective operations, are configured to exploit network topology information. The library also exploits MPI constructs for performance management; for example, the MPI communicator construct is used for application-level discovery of, and adaptation to, both network topology and network quality-of-service mechanisms. We describe the MPICH-G2 design and implementation, present performance results, and review application experiences, including record-setting distributed simulations.Comment: 20 pages, 8 figure

    Modularity for Large Virtual Reality Applications

    Get PDF
    International audienceThis paper focuses on the design of high performance VR applications. These applications usually involve various I/O devices and complex simulations. A parallel architecture or grid infrastructure is required to provide the necessary I/O and processing capabilities. Developing such applications faces several difficulties, two important ones being software engineering and performance issues. We argue that application modularity is a key concept to help the developer handle the complexity of these applications. We discuss how various approaches borrowed from other existing works can be combined to significantly improve the modularity of VR applications. This led to the development of the FlowVR middleware that associates a data-flow model with a hierarchical component model. Different case studies are presented to discuss the benefits of the approach proposed

    A Performance Analysis of Distributed Algorithms in JavaSpaces, CORBA Services and Web Services

    Get PDF
    Implementation of distributed parallel algorithms on networked computers has always been very difficult until the introduction of service-oriented architectures (SOA) like JavaSpaces service, CORBA services and Web Services. Algorithms of the type Master/Worker pattern are implemented with relative ease using the SOAs. This project analyzes the performance of such algorithms on three contemporary SOAs namely JavaSpaces service, CORBA services and Web Services. These architectures make the implementations of distributed algorithms reasonably fault tolerant and highly and dynamically scalable. Also, the systems built on these architectures are generally loosely coupled and operate asynchronously. In this project we measure and analyze the latency, speed-up and efficiency metrics of an insertion sort of 0 (n^2) complexity on all the three SOAs. We then draw conclusions of overall performance and scalability on all the three architectures

    Numerical Propulsion System Simulation Architecture

    Get PDF
    The Numerical Propulsion System Simulation (NPSS) is a framework for performing analysis of complex systems. Because the NPSS was developed using the object-oriented paradigm, the resulting architecture is an extensible and flexible framework that is currently being used by a diverse set of participants in government, academia, and the aerospace industry. NPSS is being used by over 15 different institutions to support rockets, hypersonics, power and propulsion, fuel cells, ground based power, and aerospace. Full system-level simulations as well as subsystems may be modeled using NPSS. The NPSS architecture enables the coupling of analyses at various levels of detail, which is called numerical zooming. The middleware used to enable zooming and distributed simulations is the Common Object Request Broker Architecture (CORBA). The NPSS Developer's Kit offers tools for the developer to generate CORBA-based components and wrap codes. The Developer's Kit enables distributed multi-fidelity and multi-discipline simulations, preserves proprietary and legacy codes, and facilitates addition of customized codes. The platforms supported are PC, Linux, HP, Sun, and SGI

    Technologies for Ubiquitous Supercomputing: A Java Interface to the Nexus Communication system

    Get PDF
    We use the term ubiquitous supercomputing to refer to systems that integrate low- and mid-range computing systems, advanced networks and remote high-end computers with the goal of enhancing the computational power accessible from local environments. Such systems promise to enable new applications in areas as diverse as smart instruments and collaborative environments. However, they also demand tools for transporting code between computers and for establishing flexible, dynamic communication structures. In this article, we propose that these requirements be satisfied by introducing Java classes that implement the global pointer and remote service request mechanisms defined by a communication library called Nexus. Java supports transportable code; Nexus provides communication support and represents the core communication framework for Globus, a project building infrastructure for ubiquitous supercomputing. We explain how this NexusJava library is implemented and illustrate its use with examples

    Distributed object architectures

    Get PDF
    • …
    corecore