We describe an architecture-centric design and implementation approach for building self-adapting and self-managing robotics systems. The basis of our approach is the concept of meta-level components, which facilitate adaptation and management of application-level components. Our approach applies two key enhancements to the traditional usage of meta-level components: (1) we utilize three distinct, specialized meta-level components for the three fundamental activities of a robotics system: sensing, computation, and control, and (2) we allow meta-level components to themselves be monitored, managed and adapted by other (higher layer) meta-level components. In this way, our approach flexibly supports adaptive layered architectures of arbitrary depth, the specification of arbitrary system adaptation policies, and the provision of intelligent facilities for constructing adaptation plans on-the-fly. We showcase our approach using a team of autonomous mobile robots that engage in a leader-follower scenario and experience a wide variety of failures, activating distinct recovery mechanisms.
Pervasive systems are rapidly growing in size, complexity, distribution, and heterogeneity. As a result, the traditional practice of developing one-off embedded applications that are often rigid and unmanageable is no longer acceptable. This is particularly evident in a growing class of mobile and dynamic pervasive systems that are highly unpredictable, and thus require flexible and adaptable software support. At the same time, many of these applications are mission critical and have stringent fault tolerance requirements. In this paper, we argue that an effective approach to developing software systems in this domain is to employ the principles of software architecture. We discuss the design and implementation of facilities we have provided in a tool-suite targeted for architecture-based development of fault tolerant pervasive systems.
It has been widely advocated that software architecture provides an effective set of abstractions for engineering (families of) complex software systems. However, architectural concepts are seldom supported directly at the level of system implementation. In embedded environments in particular, developers are often forced to rely on low-level programming languages. While this is conducive to fine-grain control over the system, it does not lend itself to addressing larger issues such as ensuring architectural integrity or managing an application family. In this paper we describe our experience with fundamentally altering the manner in which a family of embedded applications is designed, analyzed, implemented, deployed, and evolved using explicit architectural constructs. We discuss our strategy, the challenges we faced in the course of our project, the lessons learned in the process, and several open issues that remain unresolved.
Software architecture has been widely advocated as an effective abstraction for modeling, implementing, and evolving complex software systems such as those in distributed, decentralized, heterogeneous, mobile, and pervasive environments. Typically, however, architectural abstractions have not been supported directly at the level of system implementation. Instead, even developers with access to state-of-the-art middleware facilities have had to rely on constructs that are at least in part different from those used in the design of their systems. In this paper we argue that it is possible to provide native and flexible software architectural facilities in a middleware platform geared to pervasive environments. We refer to such a platform as "architectural middleware". In support of our argument, we outline the design, implementation, and our experience with a specific architectural middleware platform, which has been used in solving pervasive computing problems in the classroom as well as two industrial domains. We also demonstrate that middleware-level architectural support can be effective, efficient, scalable, and adaptable.
Wireless sensor networks are rapidly being introduced in various application domains, such as medical, defense, and navigation systems. Tremendous advantages of these systems, including cost aspects such as "no-wiring-cost", make these systems persuasive for many industries. However, there are also trade-offs, such as availability (energy consumption) and performance (response time). At the heart of designing suitable software architectures for these systems are conscious decisions about tradeoffs among qualities. This paper outlines some important qualities that are driving the design of a WSN system.
Wireless Sensor Networks are rapidly being introduced in various application domains, such as medical, defense, and navigation systems. Tremendous advantages of these systems, including cost aspects such as “no-wiring-cost”, make these systems persuasive for many industries. However, there are also trade-offs, such as availability (energy consumption) and performance (response time). At the heart of designing suitable software architectures for these systems are conscious decisions about tradeoffs among qualities. This position paper outlines some important qualities that are driving the design of a WSN system.
This paper presents an algorithm for the automatic classification of fast and slow phases during nystagmic eye movements, using a neural network. When a patient is presented with a nonstationary visual field, the resulting eye movements may be used to determine valuable clinical information about patients with vertigo and balance disorders. When the nonstationary visual field is induced by sinusoidally rotating the patient in a chair, the eye movements-collectively referred to as nystagmus-typically consist of short, high-velocity movements (fast phases) which are in the direction of the stimulus and longer, low-velocity movements (slow phases) which are in the direction opposite to that of the stimulus. The slow phases are produced to compensate for the moving visual field. By extrapolating over the fast-phase segments, the slow-phase segments can be pieced together to form a slow-phase response. When the stimulus is sinusoidal, the slow-phase response is also sinusoidal and the magnitude and phase relationships between the stimulus and response may be used to help identify the source of the patient's disorder. Thus, the ability to accurately reconstruct the response from the slow-phase segments is extremely important. This, in turn, necessitates the ability to accurately determine the locations of the fast and slow phases of nystagmus.For the neural network used here, the optimal input feature set and number of hidden units are determined, along with the necessary preprocessing of the network inputs and the postprocessing of the network output data. It is also shown that an effective error-correction algorithm can be applied to the outputs of the neural network to improve its classification ability. Finally, results are presented for the performance of the network on independent sets of test data. The classifications obtained from the neural network when applied to the test data are much more accurate than those obtained using two current classifiers: an algorithm proposed by Wall and Black and an algorithm proposed by Jell, Turnipseed and Guedry.