2011
Enterprise distributed real-time and embedded (DRE) systems are
increasingly being developed with the use of component-based software
techniques. Unfortunately, commonly used component middleware platforms
provide limited support for event-based publish/subscribe (pub/sub)
mechanisms that meet both quality-of-service (QoS) and configurability
requirements of DRE systems. On the other hand, although pub/sub technologies,
such as OMG Data Distribution Service (DDS), support a wide range of QoS
settings, the level of abstraction they provide make it hard to configure them
due to the significant source-level configuration that must be hard-coded at
compile time or tailored at run-time using proprietary, ad hoc configuration
logic. Moreover, developers of applications using native pub/sub technologies
must write large amounts of boilerplate ``glue'' code to support run-time
configuration of QoS properties, which is tedious and error-prone. This paper
describes a novel, generative approach that combines the strengths of
QoS-enabled pub/sub middleware with component-based middleware technologies.
In particular, this paper describes the design and implementation of DDS4CIAO
which addresses a number of inherent and accidental complexities in the DDS4CCM
standard. DDS4CIAO simplifies the development, deployment, and configuration
of component-based DRE systems that leverage DDS's powerful QoS capabilities by
provisioning DDS QoS policy settings and simplifying the development of DDS
applications.
publication
Acoustic Shooter Localization with a Minimal Number of Single-Channel Wireless Sensor Nodes
Acoustic shooter localization systems are being rapidly deployed in the field. However, these are standalone systems—either wearable or vehicle-mounted—that do not have networking capability even though the advantages of widely distributed sensing for locating shooters have been demonstrated before. The reason for this is that certain disadvantages of wireless network-based prototypes made them impractical for the military. The system that utilized stationary single-channel sensors required many sensor nodes, while the multi-channel wearable version needed to track the absolute self-orientation of the nodes continuously, a notoriously hard task. This paper presents an approach that overcomes
the shortcomings of past approaches. Specifically, the technique requires as few as five single-channel wireless sensors to provide accurate shooter localization and projectile trajectory estimation. Caliber estimation and weapon classification are also supported. In addition, a single node alone can provide reliable miss distance and range estimates based on a single shot as long as a reasonable assumption holds. The main contribution of the work and the focus of this paper is the novel sensor fusion technique that works well with a limited number of observations. The technique is thoroughly evaluated using an extensive shot library.
publication
External smart microphone for mobile phones
publication
RF angle of arrival-based node localisation
Complexity of software systems has reached the point where we need run-time mechanisms that can be used to provide fault management services. Testing and verification may not cover all possible scenarios that a system can encounter, hence a simpler, yet formally specified run-time monitoring, diagnosis, and fault mitigation architecture is needed to increase the software system's dependability. The approach described in this paper borrows concepts and principles from the field of `Systems Health Management' for complex systems and implements a two level health management strategy that can be applied through a model-based software development process. The Component-level health management (CLHM) for software components provides a localized and limited functionality for managing the health local to a component. It also reports to the higher-level System Health Manager (SHM) which manages the health of the overall system. SHM consists of a diagnosis engine that uses the timed fault propagation (TFPG) model based on the component assembly. It reasons about the input alarms reported by CLHM and hypothesizes about the possible fault sources. Thereafter, necessary system level mitigation action can be taken. However, system-level mitigation approaches are subject of ongoing investigations and have not been included in this paper. We conclude the paper with case study and discussion.
publication
A Capacity Planning Process for Performance Assurance of Component-Based Distributed Systems
For service providers of multi-tiered component-based applications, such as web portals, assuring high performance and availability to their customers without impacting revenue requires effective and careful capacity planning that aims at minimizing the number of resources, and utilizing them efficiently while simultaneously supporting a large customer base and meeting their service level agreements. This paper presents a novel, hybrid capacity planning process that results from a systematic blending of 1) analytical modeling, where traditional modeling techniques are enhanced to overcome their limitations in providing accurate performance estimates; 2) profile-based techniques, which determine performance profiles of individual software components for use in resource allocation and balancing resource usage; and 3)
allocation heuristics that determine minimum number of resources to allocate software components.
Our results illustrate that using our technique, performance (i.e., bounded response time) can be assured while reducing operating costs by using 25% less resources and increasing revenues by handling 20% more clients compared to traditional approaches.
In model-based development, verification techniques can be used to check whether an abstract model satisfies a set of properties. Ideally, implementation code generated from these models can also be verified against similar properties. However, the distance between the property specification languages and the implementation makes verifying such generated code difficult. Optimizations and renamings can blur the correspondence between the two, further increasing the difficulty of specifying verification properties on the generated code. This paper describes methods for specifying verification properties on abstract models that are then checked on implementation level code. These properties are translated by an extended code generator into implementation code and special annotations that are used by a software model checker.
2010
The complexity of software systems has reached the point where we need run-time mechanisms that
can be used to provide fault management services. Testing and veri fication may not cover all possible
scenarios that a system can encounter, hence a simpler, yet formally specifi ed run-time monitoring,
diagnosis, and fault mitigation architecture is needed to increase the software system's dependability.
The approach described in this paper borrows concepts and principles from the field of `Systems Health
Management' for complex systems. The paper introduces the fundamental ideas for software health
management, and then illustrates how these can be implemented in a model-based software development process, including a case study and related work.