The Assurance Monitor Pattern

Some applications require an assurance that certain criteria are violated with only low probability. An alert is generated when the current course of action is likely to violate assurance criteria and the alert results in corrective action. Assurance monitors fuse information from multiple data streams generated by sensors and other sources to estimate the probability distribution of system trajectories. This distribution is used to determine whether an assurance constraint is likely to be violated. The acquisition of data requires resources such as energy, computational power and communication bandwidth which are scarce in many applications. At each point in time the system must decide whether to expend these resources to get more data to improve the confidence in the probability distribution of trajectories. This paper presents a software-design pattern for assurance monitoring and gives examples of its uses, including an application of the pattern to the problem of autonomous navigation of a drone which is required to avoid no-fly zones while using limited resources.

[1]  Gregor Hohpe,et al.  Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions , 2003 .

[2]  Andreas Krause,et al.  Community Seismic Network , 2012 .

[3]  Frank Leymann,et al.  Internet of Things Patterns for Device Bootstrapping and Registration , 2017, EuroPLoP.

[4]  Slim Kallel,et al.  Time patterns for cyber-physical systems , 2016, 2016 IEEE Symposium on Computers and Communication (ISCC).

[5]  Henry Muccini,et al.  Chapter 13 Patterns for Self-Adaptation in Cyber-Physical Systems , 2017 .

[6]  Chen Luo,et al.  CaPSuLe: A camera-based positioning system using learning , 2016, 2016 29th IEEE International System-on-Chip Conference (SOCC).

[7]  Paul B. Monday Exploring the Event Monitor Pattern , 2003 .

[8]  Jeffrey Heer,et al.  Software Design Patterns for Information Visualization , 2006, IEEE Transactions on Visualization and Computer Graphics.

[9]  Opher Etzion,et al.  Event Processing in Action , 2010 .

[10]  Max Jacobson,et al.  A Pattern Language: Towns, Buildings, Construction , 1981 .

[11]  Inder Monga,et al.  Lambda architecture for cost-effective batch and speed big data processing , 2015, 2015 IEEE International Conference on Big Data (Big Data).

[12]  Simon L. Peyton Jones,et al.  Scrap your boilerplate: a practical design pattern for generic programming , 2003, TLDI '03.

[13]  Kenneth P. Birman,et al.  Exploiting virtual synchrony in distributed systems , 1987, SOSP '87.

[14]  D. Luckham The Power of Events , 2002 .

[15]  Eduardo B. Fernandez,et al.  A pattern language for security models , 2001 .

[16]  Nikolai Smolyanskiy,et al.  Toward low-flying autonomous MAV trail navigation using deep neural networks for environmental awareness , 2017, 2017 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS).

[17]  Timon Gehr,et al.  An abstract domain for certifying neural networks , 2019, Proc. ACM Program. Lang..

[18]  Alexandre Alves,et al.  Tutorial on advanced design patterns in event processing , 2012, DEBS.

[19]  Schahram Dustdar,et al.  IoT Design Patterns: Computational Constructs to Design, Build and Engineer Edge Applications , 2016, 2016 IEEE First International Conference on Internet-of-Things Design and Implementation (IoTDI).

[20]  Swarat Chaudhuri,et al.  AI2: Safety and Robustness Certification of Neural Networks with Abstract Interpretation , 2018, 2018 IEEE Symposium on Security and Privacy (SP).

[21]  K. Mani Chandy,et al.  Event Processing - Designing IT Systems for Agile Companies , 2009 .