Results 1 - 10
of
16
A Formal Approach to Software Architecture
, 1997
"... As software systems become more complex, the overall system structure---or software architecture---becomes a central design problem. A system's architecture provides a model of the system that suppresses implementation detail, allowing the architect to concentrate on the analyses and decisions that ..."
Abstract
-
Cited by 258 (14 self)
- Add to MetaCart
As software systems become more complex, the overall system structure---or software architecture---becomes a central design problem. A system's architecture provides a model of the system that suppresses implementation detail, allowing the architect to concentrate on the analyses and decisions that are most crucial to structuring the system to satisfy its requirements. Unfortunately, current representations of software architecture are informal and ad hoc. While architectural concepts are often embodied in infrastructure to support specific architectural styles and in the initial conceptualization of a system configuration, the lack of an explicit, independently-characterized architecture or architectural style significantly limits the benefits of software architectural design in current practice. In this dissertation, I show that an Architecture Description Language based on a formal, abstract model of system behavior can provide a practical means of describing and analyzing softwar...
Multi-Model Parallel Programming In Psyche
- Proceedings of the Second ACM Symposium on Principles and Practice of Parallel Programming
, 1990
"... Many different parallel programming models, including lightweight processes that communicate with shared memory and heavyweight processes that communicate with messages, have been used to implement parallel applications. Unfortunately, operating systems and languages designed for parallel programmin ..."
Abstract
-
Cited by 37 (12 self)
- Add to MetaCart
Many different parallel programming models, including lightweight processes that communicate with shared memory and heavyweight processes that communicate with messages, have been used to implement parallel applications. Unfortunately, operating systems and languages designed for parallel programming typically support only one model. Multi-model parallel programming is the simultaneous use of several different models, both across programs and within a single program. This paper describes multi-model parallel programming in the Psyche multiprocessor operating system. We explain why multi-model programming is desirable and present an operating system interface designed to support it. Through a series of three examples, we illustrate how the Psyche operating system supports different models of parallelism and how the different models are able to interact. 1. Introduction The widespread use of distributed systems since the late 1970's and the growing importance of multiprocessor systems ...
Semantics for communication primitives in a polymorphic language
- In Proc. 20th ACM Symp. on Principles of Programming Languages
, 1993
"... We propose a method to extend an ML-style polymorphic language with transparent communication primitives, and give their precise operational semantics. These primitives allow any polymorphic programs de nable in ML to be used remotely in a manner completely transparent to the programmer. Furthermore ..."
Abstract
-
Cited by 35 (7 self)
- Add to MetaCart
We propose a method to extend an ML-style polymorphic language with transparent communication primitives, and give their precise operational semantics. These primitives allow any polymorphic programs de nable in ML to be used remotely in a manner completely transparent to the programmer. Furthermore, communicating programs may be based on di erent architecture and use di erent data representations. We de ne a polymorphic functional calculus with transparent communication primitives, which we call dML, as an extension of Damas and Milner's proof system for ML. We then develop an algorithm to translate dML to a \core " language containing only low-level communication primitives that are readily implementable in most of distributed environments. To establish the type safety of communicating programs, we de ne an operational semantics of the core language and prove that the polymorphic type system of dML is sound with respect to the operational semantics of the translated terms of the core language.
Coordinating MultiTransaction Activities
, 1990
"... Data processing applications must often execute collections of related transactions. We propose a model for structuring and coordinating these multi-transaction activities. The model includes mechanisms for communication between transactions, for compensating transactions after an activity has faile ..."
Abstract
-
Cited by 32 (2 self)
- Add to MetaCart
Data processing applications must often execute collections of related transactions. We propose a model for structuring and coordinating these multi-transaction activities. The model includes mechanisms for communication between transactions, for compensating transactions after an activity has failed, for dynamic creation and binding of activities, and for checkpointing the progress of an activity.
Constructing a Configurable Group RPC Service
- In Proceedings of the 15th International Conference on Distributed Computing Systems
, 1995
"... Current Remote Procedure Call (RPC) services implement a variety of semantics, with many of the differences related to how communication and server failures are handled. The list increases even more when considering group RPC, a variant of RPC often used for fault-tolerance where an invocation is se ..."
Abstract
-
Cited by 24 (14 self)
- Add to MetaCart
Current Remote Procedure Call (RPC) services implement a variety of semantics, with many of the differences related to how communication and server failures are handled. The list increases even more when considering group RPC, a variant of RPC often used for fault-tolerance where an invocation is sent to a group of servers rather than one. This paper presents an approach to constructing group RPC in which a single configurable system is used to build different variants of the service. The approach is based on implementing each property as a separate software module called a micro-protocol, and then configuring the microprotocols needed to implement the desired service together using a software framework based on the x-kernel. The properties of point-to-point and group RPC are identified and classified, and the general execution model described. An example consisting of a modular implementation of a group RPC service is given to illustrate the approach. Dependency issues that restrict c...
A Software Platform for Constructing Scientific Applications from Heterogeneous Resources
- Journal of Parallel and Distributed Computing
, 1994
"... Support for heterogeneous processing is useful for increasing the functionality available to designers of scientific applications. For example, rather than implement an application requiring remote vector processing and local visualization as two separate programs, such support allows an alternative ..."
Abstract
-
Cited by 17 (7 self)
- Add to MetaCart
Support for heterogeneous processing is useful for increasing the functionality available to designers of scientific applications. For example, rather than implement an application requiring remote vector processing and local visualization as two separate programs, such support allows an alternative structure in which the application is a single logical program with transparent transfer of control and data between phases. In addition to being simpler and more intuitive, such structuring makes it feasible to enhance the way in which users interact with the application to do, for instance, model steering. Here, a software platform that facilitates the construction of this type of scientific application is described. Its key component is Schooner, an interconnection system that includes an intermediate data representation, a simple specification language, and a heterogeneous remote procedure call (RPC) facility; to provide sophisticated visualization capabilities and an execution framewor...
Smart Remote Procedure Calls: Transparent Treatment of Remote Pointers
, 1994
"... Remote procedure call (RPC) systems have been proven to be a practical basis for building distributed applications. The RPC technique abstracts a typical communication pattern to an ordinary procedure call. Compared with an ordinary procedure call, however, the conventional RPC technique has one evi ..."
Abstract
-
Cited by 17 (6 self)
- Add to MetaCart
Remote procedure call (RPC) systems have been proven to be a practical basis for building distributed applications. The RPC technique abstracts a typical communication pattern to an ordinary procedure call. Compared with an ordinary procedure call, however, the conventional RPC technique has one evident restriction; pointers (addresses) cannot be passed to remote procedures without the explicit and nontrivial programming effort. This paper presents a method that eliminates this restriction. The method enables transparent treatment of pointers in RPC by combining three key techniques: virtual memory manipulation, pointer swizzling, and coherency protocol. The experiments performed using an implementation of the method show that the method provides performance that is scalable to the access ratio of the remotely referenced data. 1 Introduction Remote procedure calls (RPCs) are a key technique for building distributed systems and applications. They provide message-passing semantics for t...
SUPRA-RPC: SUbprogram PaRAmeters in Remote Procedure Calls
- University of Geneva, Switzerland
, 1994
"... this paper focuses on SUPRA 's novel treatment of the first two ..."
Abstract
-
Cited by 14 (1 self)
- Add to MetaCart
this paper focuses on SUPRA 's novel treatment of the first two
Using Schooner to Support Distribution and Heterogeneity in the Numerical Propulsion System Simulation Project
- IN THE NUMERICAL PROPULSION SYSTEM SIMULATION PROJECT. CONCURRENCY: PRACTICE AND EXPERIENCE
, 1994
"... The Numerical Propulsion System Simulation (NPSS) project has been initiated by NASA to explore the use of computer simulation in the development of new aircraft propulsion technology. With this approach, each engine component is modeled by a separate computational code, with a simulation executive ..."
Abstract
-
Cited by 11 (5 self)
- Add to MetaCart
The Numerical Propulsion System Simulation (NPSS) project has been initiated by NASA to explore the use of computer simulation in the development of new aircraft propulsion technology. With this approach, each engine component is modeled by a separate computational code, with a simulation executive connecting the codes and modeling component interactions. Since each code potentially executes on a different machine in a network, a simulation run is a heterogeneous distributed program in which diverse software and hardware elements are incorporated into a single computation. In this paper, a prototype simulation executive that supports this type of programming is described. The two components of this executive are the AVS scientific visualization system and the Schooner heterogeneous remote procedure call (RPC) facility. In addition, the match between Schooner's capabilities and the needs of NPSS is evaluated based on our experience with a collection of test codes. The basic conclusion i...
Translator-Based Multiparadigm Programming
- Journal of Systems and Software
, 1993
"... Better programming productivity may be obtained by choosing suitable programming paradigms. For development of complex software systems, multiparadigm programming would usually be appropriate. However, its use may be hindered by a lack of languages and programming support tools. As this paper argues ..."
Abstract
-
Cited by 4 (0 self)
- Add to MetaCart
Better programming productivity may be obtained by choosing suitable programming paradigms. For development of complex software systems, multiparadigm programming would usually be appropriate. However, its use may be hindered by a lack of languages and programming support tools. As this paper argues, multiparadigm programming may be supported by translators that convert programs written in one language to another language based on a different paradigm. Keywords and Key Phrases: Programming Paradigm, Multiparadigm Programming, Object-Oriented Programming. 1

