The Role of Middleware in Architecture-Based Software Development
Software architectures promote development focused on modular functional building blocks (components), their interconnections (configurations), and their interactions (connectors). Since architecture-level components often contain complex functionality, it is reasonable to expect that their interactions will be complex as well. Middleware technologies such as CORBA, COM, and RMI provide a set of predefined services for enabling component composition and interaction. However, the potential role of such services in the implementations of software architectures is not well understood. In practice, middleware can resolve various types of component heterogeneity — across platform and language boundaries, for instance — but also can induce unwanted architectural constraints on application development. We present an approach in which components communicate through architecture-level software connectors that are implemented using middleware. This approach preserves the properties of the architecture-level connectors while leveraging the beneficial capabilities of the underlying middleware. We have implemented this approach in the context of a component- and message-based architectural style called C2 and demonstrated its utility in the context of several diverse applications. We argue that our approach provides a systematic and reasonable way to bridge the gap between architecture-level connectors and implementation-level middleware packages.

title: Principled design of the modern Web architecture
abstract: The World Wide Web has succeeded in the large part because its software architecture has been designed to meet the needs of an Internet-scale distributed hypermedia system. The modern Web architecture emphasizes scalability of component interactions, generality of interfaces, independent deployment of components, and intermediary components to reduce interaction latency, enforce security, and encapsulate legacy systems. We introduce the Representational State Transfer (REST) architectural style, developed as an abstract model of the Web architecture to guide our redesign and definition of the Hypertext Transfer Protocol and Uniform Resource Identifiers. We describe the software engineering principles guiding REST and the interaction constraints chosen to retain those principles, contrasting them to the constraints of other architectural styles. We then compare the abstract model to the currently deployed Web architecture in order to elicit mismatches between the existing protocols and the applications they are intended to support.

title: Reuse of off-the-shelf components in C2-style architectures
abstract: Reuse of large-grain software components offers the potential for significant savings in application development cost and time. Successful component reuse and substitutability depends both on qualities of the components reused as well as the software context in which the reuse is attempted. Disciplined approaches to the structure and design of software applications offers the potential of providing a hospitable setting for such reuse. We present the results of a series of exercises designed to determine how well “offthe-shelf” components could be reused in applications designed in accordance with the C2 software architectural style. The exercises involved the reuse of two user-interface constraint solvers, two graphics toolkits, a World Wide Web browser, and a persistent object manager. A subset of these components was used to construct numerous variations of a single application (thus an application family). The exercises also included construction of a simple development environment for locating and downloading a component off the Web and incorporating it into an application. The paper summarizes the style rules that facilitate reuse and presents the results from the exercises. The exercises were successful in a variety of dimensions; one conclusion is that the C2 style offers significant reuse potential to application developers. At the same time, wider trials and additional tool support are needed.1 Index Terms -software reuse, architectural styles, messagebased architectures, component-based development, graphical user interfaces (GUI).

title: Anomaly Detection in Concurrent Software by Static Data Flow Analysis
abstract: Algorithms are presented for detecting errors and anomalies in programs which use synchronization constructs to implement concurrency. The algorithms employ data flow analysis techniques. First used in compiler object code optimization, the techniques have more recently been used in the detection of variable usage errors in dngle process programs. By adapting these existing algorithms, the sane classes of variable usage errors can be detected in concurrent process programs. Important classes of errors unique to concurrent process programs are also described, and algorithms for their detection are presented.

title: Architectural support for trust models in decentralized applications
abstract: Decentralized applications are composed of distributed entities that directly interact with each other and make local autonomous decisions in the absence of a centralized coordinating authority. Such decentralized applications, where entities can join and leave the system at any time, are particularly susceptible to the attacks of malicious entities. Each entity therefore requires protective measures to safeguard itself against these entities. Trust management solutions serve to provide effective protective measures against such malicious attacks. Trust relationships help an entity model and evaluate its confidence in other entities towards securing itself. Trust management is, thus, both an essential and intrinsic ingredient of decentralized applications. However, research in trust management has not focused on how trust models can be composed into a decentralized architecture. The PACE architectural style, described previously [21], provides structured and detailed guidance on the assimilation of trust models into a decentralized entity's architecture. In this paper, we describe our experiments with incorporating four different reputation-based trust models into a decentralized application using the PACE architectural style. Our observations lead us to conclude that PACE not only provides an effective and easy way to integrate trust management into decentralized applications, but also facilitates reuse while supporting different types of trust models. Additionally, PACE serves as a suitable platform to aid the evaluation and comparison of trust models in a fixed setting towards providing a way to choose an appropriate model for the setting.

title: Advanced workflow management technologies
abstract: manrand r rackSummary Process, workflow, and groupware projects both in the commercial research worlds have each approached the problem of human communication and dination with different sets of tools and technologies implemented from different pe spectives. Activity dependencies and the philosophical assumptions about how wo performed are managed differently in each discipline. While most of these tools re sent promising approaches, they have yet to be widely adopted, particularly in the of increased usage of online information through the WWW and computer network Electronic information coming to the individual and into the corporation is becomin increasingly unmanageable. People are able to create information regardless of th location or method of access due to increasing mobility and interoperability of the t they use. Because of the common concerns, trends are moving towards overlap an vergence of requirements. However, these communities have yet to identify the uni cross-discipline requirements for a supporting technical infrastructure addressing t level of flexibility, scalability, and support for evolution over time required in these re world settings. This paper surveys the current approaches to project communicatio coordination, details the range of requirements across several related disciplines, identifies various tradeoffs and trends which may effect the adoption, design, and e tion of an advanced technical workflow infrastructure.

title: Interference-Free Insertion of a Solid Body Into a Cavity: An Algorithm and a Medical Application
abstract: This article presents a novel algorithm for efficiently computing an interference-free insertion path of a body into a cavity and shows its practical use in the insertability analysis of custom orthopedic hip implants. The algorithm is designed to handle tightly fit, very complex three-dimensional bodies requiring fine, complex, coupled six-degree-of-freedom motions in a preferred direction. It provides a practical method for efficiently handling the geometric complexity of tight-fit insertions. The algorithm computes an insertion path consisting of small interference-free body motion steps. It formulates local, linearized configuration space constraints derived from the shapes and computes suc cessive motion steps by solving a series of linear optimization problems whose solution corresponds to the maximum allowed displacement in a preferred direction satisfying the constraints. It either finds a successful insertion path or a stuck conftgura tion. We demonstrate the algorithm with EXTRACT, a program for analyzing the insertability of cementless custom orthopedic hip implants. EXTRACT computes interference-free insertion paths for tightly fit implant and canal shapes described with 10,000 facets to an accuracy of 0.01 inch in 30 minutes on a workstation. It has been successfully tested on 30 real cases provided by a medical equipment manufacturer.

title: Multi-modal Interface for Fluid Dynamics Simulations Using 3-D Localized Sound
abstract: Multi-modal capabilities can be added to a simulation system in order to enhance data comprehension. We describe a system for adding sonification capabilities to a real-time computational fluid dynamics (CFD) simulator. Our system uses Max/MSP modules to add sonic properties to CFD solutions. The enhancements described in this paper allow users to locate sound sources in a 3---D environment using stereo auditory cues to identify data features.

title: Visualizing Emotion in Musical Performance Using a Virtual Character
abstract: We describe an immersive music visualization application which enables interaction between a live musician and a responsive virtual character. The character reacts to live performance in such a way that it appears to be experiencing an emotional response to the music it ‘hears.' We modify an existing tonal music encoding strategy in order to define how the character perceives and organizes musical information. We reference existing research correlating musical structures and composers' emotional intention in order to simulate cognitive processes capable of inferring emotional meaning from music. The ANIMUS framework is used to define a synthetic character who visualizes its perception and cognition of musical input by exhibiting responsive behaviour expressed through animation.

title: Authenticating Pollock paintings using fractal geometry
abstract: Jackson Pollock's paintings are currently valued up to US$75M, triggering discussions that attributation procedures featuring subjective visual assessments should be complimented by quantitative scientific procedures. We present a fractal analysis of Pollock's patterns and discuss its potential for authenticity research.

title: Using Music to Interact with a Virtual Character
abstract: We present a real-time system which allows musicians to interact with synthetic virtual characters as they perform. Using Max/MSP to parameterize keyboard and vocal input, meaningful features (pitch, amplitude, chord information, and vocal timbre) are extracted from live performance in real-time. These extracted musical features are then mapped to character behaviour in such a way that the musician's performance elicits a response from the virtual character. The system uses the ANIMUS framework to generate believable character expressions. Experimental results are presented for simple characters.