Run-Time Conflict Resolution for Personal Features Joanne Atlee Department of Computer Science University of Waterloo University of Waterloo.

Slides:



Advertisements
Similar presentations
Computer Systems & Architecture Lesson 2 4. Achieving Qualities.
Advertisements

Aspire Vertical Markets Executive Suite Solution.
Testing Relational Database
Modelling Features as Statecharts Pourya Shaker and Joanne M. Atlee.
Complex Organizational System A Complex System Model for Organizations, Companies and Social Actions.
Feature Interaction Handling in LESS Xiaotao Wu and Henning Schulzrinne Internet Real Time Laboratory.
Basic I/O Relationship Knowledge-based: "Tell me what fits based on my needs"
ECE 720T5 Fall 2012 Cyber-Physical Systems Rodolfo Pellizzoni.
Case Tools Trisha Cummings. Our Definition of CASE  CASE is the use of computer-based support in the software development process.  A CASE tool is a.
The Role of Software Engineering Brief overview of relationship of SE to managing DSD risks 1.
Temporal Specification Chris Patel Vinay Viswanathan.
Algorithms and Problem Solving-1 Algorithms and Problem Solving.
Quality of Service in IN-home digital networks Alina Albu 23 October 2003.
Algorithms and Problem Solving. Learn about problem solving skills Explore the algorithmic approach for problem solving Learn about algorithm development.
Lecture 23: Software Architectures
1 Computer Systems & Architecture Lesson 1 1. The Architecture Business Cycle.
1 FM Overview of Adaptation. 2 FM RAPIDware: Component-Based Design of Adaptive and Dependable Middleware Project Investigators: Philip McKinley, Kurt.
An Intelligent Broker Architecture for Context-Aware Systems A PhD. Dissertation Proposal in Computer Science at the University of Maryland Baltimore County.
Cracow Grid Workshop 2003 Institute of Computer Science AGH A Concept of a Monitoring Infrastructure for Workflow-Based Grid Applications Bartosz Baliś,
Towards a Logic for Wide- Area Internet Routing Nick Feamster Hari Balakrishnan.
AS Level ICT Mrs. Ghazaal. In the past, when a customer wanted to talk to someone in a company they would usually be able to telephone and be put through.
1 Autonomic Computing An Introduction Guenter Kickinger.
Katanosh Morovat.   This concept is a formal approach for identifying the rules that encapsulate the structure, constraint, and control of the operation.
Chapter 2 The process Process, Methods, and Tools
1 Chapter 11 Implementation. 2 System implementation issues Acquisition techniques Site implementation tools Content management and updating System changeover.
Notes for Chapter 12 Logic Programming The AI War Basic Concepts of Logic Programming Prolog Review questions.
ECE 720T5 Winter 2014 Cyber-Physical Systems Rodolfo Pellizzoni.
Features, Policies and Their Interactions Joanne M. Atlee Department of Computer Science University of Waterloo.
CSCA48 Course Summary.
Chapter 7. BEAT: the Behavior Expression Animation Toolkit
© Copyright 2007 Arbinet-thexchange, Inc. All Rights Reserved. Voice Peering Steve Heap Chief Technology Officer.
Copyright 2001 Prentice-Hall, Inc. Essentials of Systems Analysis and Design Joseph S. Valacich Joey F. George Jeffrey A. Hoffer Appendix A Object-Oriented.
Integrated Development Environment for Policies Anjali B Shah Department of Computer Science and Electrical Engineering University of Maryland Baltimore.
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 Architectural Styles.
What is a Business Analyst? A Business Analyst is someone who works as a liaison among stakeholders in order to elicit, analyze, communicate and validate.
ISM 5316 Week 3 Learning Objectives You should be able to: u Define and list issues and steps in Project Integration u List and describe the components.
Lecture2: Database Environment Prepared by L. Nouf Almujally & Aisha AlArfaj 1 Ref. Chapter2 College of Computer and Information Sciences - Information.
ARTIFICIAL INTELLIGENCE [INTELLIGENT AGENTS PARADIGM] Professor Janis Grundspenkis Riga Technical University Faculty of Computer Science and Information.
1.file. 2.database. 3.entity. 4.record. 5.attribute. When working with a database, a group of related fields comprises a(n)…
Distributed Information Retrieval Using a Multi-Agent System and The Role of Logic Programming.
EIS'2007 (Salamanca, Spain, March 22-24, 2007) 1 Towards an Extended Model of User Interface Adaptation: the ISATINE framework 1 Víctor M. López Jaquero,
Evaluation of Agent Building Tools and Implementation of a Prototype for Information Gathering Leif M. Koch University of Waterloo August 2001.
ESERL Feature Interaction Management in Parlay/OSA Using Composition Constraints and Configuration Rules Alessandro (Alex) De Marco, Ferhat Khendek Dept.
Service Creation Model and Framework Focus: control, redirection services Challenges: –Simplicity, user-friendliness –Flexibility –Robustness (e.g., feature.
By Anthony W. Hill & Course Technology 1 Help Desk Operation Beisse.
A Policy Architecture for Enhancing and Controlling Features Stephan Reiff-Marganiec Kenneth J Turner University of Stirling.
Requirements Engineering Lesson 2. Terminologies:  Software Acquisition is where requirement engineering significantly meets business strategy.  Software.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 13. Review Shared Data Software Architectures – Black board Style architecture.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University IWPSE 2003 Program.
Distributed Models for Decision Support Jose Cuena & Sascha Ossowski Pesented by: Gal Moshitch & Rica Gonen.
September XACML: Consistency analysis Luigi Logrippo Université du Québec University of Ottawa
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
Facilitating testing and monitoring of number entry systems in medical devices Abigail Cauchi, Christian Colombo, Mark Micallef & Gordon Pace.
(1) Introduction to Continuous Integration Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences University of.
Requirements engineering The process of establishing the services that the customer requires from a system and the constraints under which it operates.
Programming Logic and Design Fourth Edition, Comprehensive Chapter 14 Event-Driven Programming with Graphical User Interfaces.
Semantic Web in Context Broker Architecture Presented by Harry Chen, Tim Finin, Anupan Joshi At PerCom ‘04 Summarized by Sungchan Park
Procedure Definitions and Semantics Procedures support control abstraction in programming languages. In most programming languages, a procedure is defined.
1 Security and Dependability Organizational Patterns - A Proof of Concept Demo for SERENITY A. Saidane, F. Dalpiaz, V.H. Nguyen, F. Massacci.
Embedded Real-Time Systems Processing interrupts Lecturer Department University.
Five todos when moving an application to distributed HTC.
Summary for final exam Agent System..
By Hello Team Awesome World™.  To avoid strangers using others’ keys, cards, and passwords to enter the buildings, our team will develop a face recognition-based.
PREPARED BY G.VIJAYA KUMAR ASST.PROFESSOR
Towards Easier Data-Binding for Derived Values in Ecore-based Models
Chapter 8 – Software Testing
Model-Driven Analysis Frameworks for Embedded Systems
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
Algorithms and Problem Solving
Introduction to Data Structure
Presentation transcript:

Run-Time Conflict Resolution for Personal Features Joanne Atlee Department of Computer Science University of Waterloo University of Waterloo

Motivation: Personal Features Trend towards giving users more control over their applications –subscriptions to telephone features –options for customizing game characters –pseudo-database interfaces to information systems Allow users to customize or create their own feature variations –specified using scripts and policies

Problem: Interactions Users will create conflicting features Example: Policies to redirect calls – Redirect long distance calls to another number – Redirect calls from management to secretary – What if a manager calls from long distance? Example: Call Screening vs. Call Transfer – Which calls are screened?

Problem: Interactions Users are not application experts –Currently, systems analysts are responsible for studying how features behaved in combination and for resolving undesired interactions. Users will create conflicting features –Need to help users detect and resolve conflicts Usability is an issue –Features and feedback must be expressed in terms that the user can understand

Conflict Resolution Detect and resolve conflicts at run-time –corrective action only taken in the event of an actual interaction –need not over-constrain features to avoid rare interactions Resolution Strategies –serialize features –impede a feature's progress –inhibit secondary, non-essential actions –query user Predictability is an issue –Resolution strategies must generate sensible resolutions

Topics Feature/Policy Specification Language Proposed Run-Time Architecture Off-Line Analyzer Run-Time System Demonstration of Analyzer Experiments Model Done Doing

Policies - independent rules (data) that manipulate (activate, stimulate, and constrain) features Model Feature Authentication Billing Location Management Data Shared Resources Data Software SW/HW Policies Shared System State Features - independent functions (code) that manipulate shared system variables Users manipulate policies Subscriptions

Feature/Policy Rules Each feature and policy is modelled as a set of conditional rules that define how the feature/policy reacts to the system state. on: event(message) if: condition(predicate on facts) then: actions(add or remove facts) assert: constraint(formula on facts) retract: constraint Example: Notify me when Annie is in her Office if: Where(Annie,AnnieOffice) then: +Message(Jo, “Annie in AnnieOffice”) guard { actions {

Shared System State The rules manipulate the shared system state, which is a database of facts, events, and constraints about user data and feature state. Each fact and event is a tuple (an element of a set, relation, or function): Feature Subscriptions Feature State Events Feature Data

Shared System State The rules manipulate the shared system state, which is a database of facts, events, and constraints about user data and feature state. Each constraint is a named formula on facts or fact patterns Marsha cannot initiate calls; she can only receive them NoCall(Marsha): no c | Originator(c, Marsha) No one on Steve’s screening list may be in Steve’s connection conn1 CSCon(conn1,Steve): all u | not CS_List(Steve,u) or not Connection(conn1,u) Universal quantification

More Feature Rules Call Screening If a caller subscribes to call screening, keep screening list entries out of connection if: Connection(?c,?u) and CS_Subscribe(?u) and: not CSCon(?c,?u) assert: +CSCon(?c,?u) Call Forward to Location Forward my calls to my current location if: Call(?c, ?t, allocate, ?o, Marsha) and: Where(Marsha,?p_room) and Owner(?p,?p_room) then: –Call(?c, ?t, allocate, ?o, Marsha) then: Message(Redirect,?c, ?o, Marsha, ?p) Existential quantification (bound throughout rule)

More Feature Rules Boss in Room If a higher ranking person is in room, forward to voice mail calls destined for me if: Call(?c, ?t, allocate, ?o, Marsha) and: PhoneInRoom(?t, ?t_room) and: Where(Marsha,?t_room) and Where(?p,?t_room) and: Rank(Marsha)<Rank(?p) and Rank(?o)<Rank(?p) then: –Call(?c, ?t, allocate, ?o, Marsha) then: Message(Redirect,?c,?o,Marsha,MarshaVM)

COordinating User-preferences at Run-Time (COURT) Context Connections Organizational Structure Location Permissions Devices Shared Resources Constraints & Policies Feature Policies Feature Facts, Events, Feature interaction manager (FIM) agents implement application/user- specific resolution strategies. Feature Interaction Manager

COURT Arbitration Policies Feature Policies Feature Facts, Events, & Constraints Feature Interaction Manager 1. Features/policies monitor system Policies Feature Policies Feature Facts, Events, & Constraints Feature Interaction Manager 2. Features/policies declare intentions (changes to facts and constraints) Policies Feature Policies Feature Facts, Events, & Constraints Feature Interaction Manager 3. FIMs detect interactions and arbitrate resolutions Policies Feature Policies Feature Facts, Events, & Constraints Feature Interaction Manager 4. Features execute resolutions

COURT Interactions Features/policies interact when the feature’s/policy’s individual actions conflict feature invocations are inconsistent new feature invocation violates constraints new constraint is violated by currently active features constraints are unsatisfiable

COURT Interactions Features/policies interact when the feature’s/policy’s individual actions conflict feature invocations are inconsistent new feature invocation violates constraints new constraint is violated by currently active features constraints are unsatisfiable These interactions should be detected and resolved

COURT Reasoning with Inconsistencies Twist - Tolerating an interaction introduces an inconsistency into the system state (database). The actions of a higher priority feature may violate a constraints of a lower priority feature (e.g., one cannot screen calls from emergency services) A constraint may be unsatisfied when it is introduced (e.g., one can add currently connected parties to a screening list) This means that the system and features must be able to continue to function when the database is inconsistent.

COURT Reasoning with Inconsistencies The only interaction classes we try to detect are inconsistencies among new predicates +Rel(x,y) -Rel(x,y) +Funct(x,y) -Funct(x,y) +Funct(x,y) -Funct(x,z) violations or re-violations of a constraint Let State be the current system state State’ be the system state after some rule State’ contain constraint  i.C(i)  i. ( State C(i) and State’ C(i) ) 

COURT Resolution Big Question: Which resolution strategies generally produce predictable behaviours? abort a feature/policy (e.g., based on priorities) abort a rule abort a rules’ individual actions, constraints specify exceptional rules, behaviour serialize conflicting accesses to shared resources specify resolution policies negotiate a compromise tolerate inconsistency combine the above techniques

Topics Feature/Policy Specification Language Proposed Run-Time Architecture Off-Line Analyzer Run-Time System Demonstration of Analyzer Experiments Model Done Doing

COURT Off-Line Analyzer Analyzer We have implemented a reachability analyzer that composes features according to some encapsulated resolution strategy.

Log of Interactions and Resolutions Event: routeselected World: 18Interaction Occured. ( (lpsf-rule-one 1 Steve Marsha Marsha) (true)) Conflicting Action: (lpsb-rule-one 1 Steve Marsha Marsha) Event: routeselected World: 42Interaction Occured. ( (lpsf-rule-one 1 Steve Marsha Marsha) (true)) Conflicting Action: (lpsb-rule-one 1 Steve Marsha Marsha)

Reachable (conflict-free) State Space User(Bob) User(Ann) User(Sally) CanCall(Sally) CanReceive(Bob) CanReceive(Ann) LPSB(Bob,VM) Where(Bob, AnnOffice) Where(Ann, AnnOffice) Rank(Bob,3) Rank(Ann,4) Rank(Sally,3) InEvent(newcall, Sally) InEvent(dailed, Sally, Bob) InEvent(answer Bob) InEvent(disconnect Bob) InEvent(disconnect Sally) World 1World 3 World 4 World 5... User(Bob) User(Ann) User(Sally) CanCall(Sally) CanReceive(Bob) CanReceive(Ann) LPSB(Bob,VM) Where(Bob, AnnOffice) Where(Ann, AnnOffice) Rank(Bob,3) Rank(Ann,4) Rank(Sally,3) InEvent(newcall, Sally) InEvent(dailed, Sally, Bob) InEvent(answer Bob) InEvent(disconnect Bob) InEvent(disconnect Sally) World 6World 7World 9... World 8 World 29 World 28 World User(Bob) User(Ann) User(Sally) CanCall(Sally) CanReceive(Bob) CanReceive(Ann) LPSB(Bob,VM) Where(Bob, AnnOffice) Where(Ann, AnnOffice) Rank(Bob,3) Rank(Ann,4) Rank(Sally,3) InEvent(newcall, Sally) InEvent(dailed, Sally, Bob) InEvent(answer Bob) InEvent(disconnect Bob) InEvent(disconnect Sally) World World 41

Demo Boss in Room If a higher ranking person is in room, forward to voice mail calls destined for me if: Call(?c, ?t, allocate, ?o, Marsha) and: PhoneInRoom(?t, ?t_room) and: Where(Marsha,?t_room) and Where(?p,?t_room) and: Rank(Marsha)<Rank(?p) and Rank(?o)<Rank(?p) then: –Connection(?c, ?t) then: Message(Redirect,?c,?o,Marsha,MarshaVM) Call Forward to Location Forward my calls to my current location if: Call(?c, ?t, allocate, ?o, Marsha) and: Where(Marsha,?p_room) and Owner(?p,?p_room) then: –Connection(?c,t) then: Message(Redirect,?c, ?o, Marsha, ?p)

Experiments We are experimenting with different resolution strategies, to identify those that are generally effective, computationally feasible, and produce predictable behaviours. Features: POTS Call Screenings Call Forward (U, B, NA, VM) Call Waiting Three-Way Calling Distinct Ringing Automatic Recall Call Return “Boss in Room” “Call Forward to my Location” “Forward Person/Group to Secretary” “Notify me when Person is in Location” “Notify me when Team Members Gather” Resolution Strategies: Feature priority Action priority

Run-Time System Constraints & Policies Feature Policies Feature Facts, Events, Feature Interaction Manager Analyzer detect enabled rules database detect and resolve interactions We’re in the process of distributing the analyzer functionality to run-time agents.

Summary Goals Rapid, modular, dynamic development of features Predictable behaviour of feature combinations Simple, expressive feature modelling language Static analyzer that reports conflict resolutions Experiments to evaluate resolution strategies Run-time system to resolve interactions Done Goals Doing

Information that modifies system behaviour data (cf. program) manipulate features (cf. manipulate variables) specify long-lived goals and constraints Features are no longer invoked and stimulated only by input events or call states Forward calls to voice mail if boss is in the room Notify me when Ann is in her office Policies