The Architecture of the Arcadia-1 Process Centered Software Environment
Arcadia is a research project aimed at producing process-centered software environments. The project  is organized as a consortium of six universities and corporations, collaboration on parallel research in five major areas of importance to software environments: environment architecture, software process, software object management, user interfaces, and measurement and evaluation. Arcadia will produce Arcadia, 1 a prototype process-centered software environment that integrates componentry from each of these parallel research activities. The integration effort provides experimental evaluation of the separate research activities as well as a working prototype environment. A process-centered environment in one that supports the activities of its users by proactively coordinating the actions of tools and humans in the execution of software processes that are explicitly represented by executable code contained within the environment. Arcadia- I incorporates executable processes coded primarily in the Appl/A language [2, 11. The processes coded are expected to include requirements specification, design, testing, and certain management functions. Our research has indicated that research and prototype development in process programming languages, object management, user interfaces, and measurement and evaluation are all critical to being able to support the proactive execution of these process programs. Fitting components resulting from these various separate research activities together into a working whole environment represents a great challenge as well. In Arcadia we have devoted a considerable amount of work to identification of the key components and the specification of interfaces to them. Our hope is that we will be able to establish an open architecture for process centered software environments so as to create a marketplace for supporting componentry. The attached diagram represents a distillation of our current thinking about this architecture. The diagram depicts a layered virtual machine view of Arcadia-1. It indicates four distinct conceptual layers-the project programming layer, process programming layer, environment building layer, and underlying operating system layer. Each layer is to be thought of as a virtual machine that is responsible for supporting the execution of programs written at the layer above it. Hence each layer presumes the complete and correct functioning of the virtual machine below it. Each layer’s support is provided through a set of interfaces. The diagram shows each layer as a set of boxes, depicting the major modular components implementing the layer’s virtual machine. Each layer is bounded at the top by a horizontal line, with imbedded boxes. Each box represents a separate, specific interface through which the support services of the layer are furnished. Each interface is at the head of one or more arrows whose tails are at the various modular components responsible for furnishing the services provided through that interface. In turn, each modular component is at the head of one or more arrows whose tails This work was supportedin part by the National Science Foundation under grants CCR-8704311, CCR 8996102, and CCR-8521398 with cooperation from the Defense Advanced Research Projects Agency.

title: On the role of software architectures in runtime system reconfiguration
abstract: Society's increasing dependence on software-intensive systems is driving the need for dependable, robust, continuously available systems. Runtime system reconfiguration is one aspect of achieving continuous availability. We present an architecture-based approach to runtime software reconfiguration, highlighting the beneficial role of architectural styles and software connectors in facilitating runtime change. We conclude by describing the implementation of our tool suite, called ArchStudio, that supports runtime reconfiguration using our architecture-based approach.

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: An infrastructure for the rapid development of XML-based architecture description languages
abstract: Research and experimentation in software architectures over the past decade have yielded a plethora of software architecture description languages (ADLs). Continuing innovation indicates that it is reasonable to expect more new ADLs, or at least ADL features. This research process is impeded by the difficulty and cost associated with developing new notations. An architect in need of a unique set of modeling features must either develop a new architecture description language from scratch or undertake the daunting task of modifying an existing language. In either case, it is unavoidable that a significant effort will be expended in building or adapting tools to support the language. To remedy this situation, we have developed an infrastructure for the rapid development of new architecture description languages. Key aspects of the infrastructure are its XML-based modular extension mechanism, its base set of reusable and customizable architectural modeling constructs, and its equally important set of flexible support tools. This paper introduces the infrastructure and demonstrates its value in the context of several real-world applications.

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: 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: A High-Performance Flexible Architecture for Cryptography
abstract: Cryptographic algorithms are more efficiently implemented in custom hardware than in software running on general-purpose processors. However, systems which use hardware implementations have significant drawbacks: they are unable to respond to flaws discovered in the implemented algorithm or to changes in standards. In this paper we show how reconfigurable computing offers high performance yet flexible solutions for cryptographic algorithms. We focus on PipeRench, a reconfigurable fabric that supports implementations which can yield better than custom-hardware performance and yet maintains all the flexibility of software based systems. PipeRench is a pipelined reconfigurable fabric which virtualizes hardware, enabling large circuits to be run on limited physical hardware. We present implementations for Crypton, IDEA, RC6, and Twofish on PipeRench and an extension of PipeRench, PipeRench+. We also describe how various proposed AES algorithms could be implemented on PipeRench. PipeRench achieves speedups of between 2x and 12x over conventional processors.

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.

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.