FREE ELECTRONIC LIBRARY - Theses, dissertations, documentation

Pages:     | 1 || 3 | 4 |   ...   | 5 |

«To cite this version: Zo´ Drey, Charles Consel. Taxonomy-Driven Prototyping of Home Automation Applicae tions : a Novice-Programmer Visual Language ...»

-- [ Page 2 ] --

3.3. Describing the building blocks of an application area A home automation application interacts with entities (e.g., motion detectors, lights, and calendars) whose heterogeneity and low-level implementation make them unusable by a domain expert. To overcome this problem, it is necessary to offer high-level constructs abstracting over the entities low-level details and factoring entity variations. Such abstractions should provide the relevant data to the domain expert.

4. Defining a networked environment

–  –  –

4.1. Environment description An environment description consists of declarations of entity classes, each of which characterizes a collection of entities that share common functionalities. The declaration of an entity class lists how to interact with entities belonging to this class. The generality of these declarations makes it possible to


over a range of variations, enabling the re-use of an environment description.

Furthermore, the declaration of an entity class consists of attributes, defining contextual information about the environment, and methods, accessing the entity functionalities. Entity classes are organized hierarchically, allowing attributes and methods to be inherited. Figure 2 displays a UML-based representation of entity classes for the assisted living area in an impaired person’s apartment. Entity classes can be organized hierarchically, enabling them to share attributes and methods. For example, the Light and the Alarm entity classes inherit the room attribute from the FixedDevice entity class.

The specificity of our approach is that the nature of the context information captured by entities is encapsulated both in their attributes and their methods, as explained next.

Context interface. A class of entities captures context information about a home automation environment. This context information may be fixed (e.g., the location of a light) or vary over time (e.g., a detected badge). In Pantagruel, context information is modeled by the attributes of entity classes.

Context information plays a key role to express the conditions of orchestration rules. If addressed with inappropriate abstractions, it may result in application code bloated with conditionals and data structure operations. Defining a taxonomy thus relies on a thorough analysis of the targeted area. To facilitate this analysis, we propose to classify context information into three categories: constant, external or applicative.

A constant context information is an attribute whose value does not change over time. For example, the FixedDevice entity class declares a room attribute that is constant for a given setting. As such, instances of inherited classes have a constant location.

An external context information is aimed to collect changes in the physical environment. This kind of context information may correspond to sensors (e.g., a device reporting RFID tag location, a temperature sensor) or software components (e.g., a web service reporting the weather of the day). To model an external context information that varies over time, we introduce the notion of volatile attribute. To communicate context information to a Pantagruel program, an external entity updates the value of this attribute. An updated value may then trigger an orchestration rule.

As an example of volatile attribute, consider the TagReader entity class in Figure 2. It defines the detected attribute that corresponds to the identifier of the detected outfit worn by Henrick.

Lastly, an applicative context information corresponds to context data computed by the application. To address applicative context information, we introduce write attributes. In our example, Figure 2 shows the genre attribute of the AlarmClock entity class that can either be JAZZ, COUNTRY or POP, depending on the planned activity of the day. This attribute is updated when the calendar daily activity changes.

By making context information to an abstraction of the Pantagruel language, we facilitate its manipulation, improve readability, and enable program verification.

Functionalities. Entity classes offer a variety of functionalities to perform actions according to the context of a home automation environment. To access these functionalities, an entity class declares method interfaces, each of which abstracting over the implementation of a specific action. For example, the AlarmClock entity class includes a trigger method signature to access the triggering functionality of an alarm clock.

When a method is invoked, it may modify the applicative context. Consider the Light entity class. Instances of this class have a limited life expectancy that depends on the number of times they are switched on and off. To allow the programmer to design rules that control the use of lights, the Light class defines two attributes: state, holding the light status (ON or OFF), and count, counting the number of times the light is activated. For example, this attribute can be used to remind the user to soon change a light bulb. Additionally, the Light entity class includes the on and off method signatures. Turning on/off a light affects the Light attributes, and thus the applicative context. The side-effects of this method are exposed to allow reasoning when invoked in the orchestration logic. To do so, methods declare the list of side-effected attributes.

For example, the on method declaration defines the {state, count} attributes as side-effected.

–  –  –

Figure 3: An excerpt of a concrete environment – datatype instances (top), entities (bottom)

5. Defining orchestration rules We now present our visual language dedicated to the development of orchestration rules.

Following our paradigm, the Pantagruel orchestration language offers a panel divided in three columns: sensors, controllers, and actuators. This panel is depicted in Figure 4.

–  –  –

It is integrated into a visual development editor, as illustrated in the right part of Figure 5.

This visual editor is composed of two parts : the view, containing orchestration rules, and the palette, offering a tool for each Pantagruel visual element. The Pantagruel editor is connected to a 2D editor and simulator called DiaSim [10], offering a 2D model of a concrete environment, defined in the taxonomy language (Figure 5, left part).

Figures 4, 6, 7 and 8 present the orchestration rules of our working example of assisted living.

The first scenario (Figure 4) configures the alarm clock of the impaired person: whether he has to wake up for a work day or for a holiday. The second scenario (Figure 6) handles the management of the person’s tasks, using a time tracker, a calendar, an alarm clock, and a fall sensor. The third scenario (Figure 7) offers assistance to the clothing task of the person, and the fourth scenario (Figure 8) manages the apartment lights.

To develop an application, the programmer starts by defining some conditions on context elements in the sensor column, combining them in the controller column, and triggering actions



–  –  –

in the actuator column. For readability, rules are numbered in the controller column (e.g., R1).

A key feature of our approach is to drive the development of orchestration rules with respect to an environment description. In doing so, the development editor provides the programmer with contextual menus and on-the-fly verification to guide the definition of rules. We further examine the development process using the Pantagruel editor in Section 6.

5.1. Sections as constituent parts of a rule To visually structure the definition of orchestration rules, the development panel is divided into horizontal sections, one for each entity instance involved in the application.

–  –  –

For example, the second section of Figure 4 is defined for the alarmClock entity instance.

Within a section, Pantagruel operations are in the scope of the corresponding entity instance.

For example, the todolist attribute, defined in the TimeTracker class of the environment description (Figure 2), can be manipulated within the timeTracker section. A section is also required to trigger an action on this entity, e.g., updating the task list display (see Figure 6). In contrast, when an attribute is out of the scope of a section, it needs to be explicitly accessed;

this is done with the current attribute of the weatherApp entity (Figure 7) using the notation “attribute of entity ”.

5.2. Refering to entity classes As described above, Figure 4 illustrates a section for the alarmClock entity instance, represented with a single icon. This is needed to operate this specific alarm clock when Henrick has to wake up on time. When a large range of entities are deployed in a home automation environment, orchestration rules as defined so far do not scale up; they need to range over all entities of a class. Moreover, when actual entities are dynamically created (e.g., a new Tag instance appearing in an environment, corresponding to a new outfit), they cannot be explicitly refered to in a rule. To address these issues, we allow a section to refer to all entity instances of an entity class.

The name of such a section is composed of the entity class name (illustrated with a double icon).

When an orchestration rule includes an operation (sensor or actuator) coming from such a section, it is executed over all the instances of the corresponding entity class. For example, Figure 7 includes the Tag section. One of the conditions defined in this section determines whether the outfit worn by Henrick is adequate for the current weather (i.e., weather is current of weatherApp ). This condition enables a rule to apply to any tagged outfit stored in the wardrobe.

–  –  –

5.3. Defining context conditions Sensors consist of conditions defined over context elements, whether constant, external or applicative. Pantagruel provides notations and operators to easily express conditions.

5.3.1. Condition operators Values of context elements can be tested with comparison operators (e.g.,,, is and isnot) and set operators (e.g., has and in). When a sensor operates on an entity class instead of a specific entity instance, it acts as a filter on the instances of this class. For example, in Figure 8 at the Light section, the sensor room is room of MotionSensor collects the lights that are present in the room where Henrick is detected.

A specific construct called changed operates on an external or applicative attribute (see Figure 6). This construct yields true whenever an attribute value changes. As a result, the orchestration rules are completely insulated from the implementation details of the context change; they focus on the logic to react to a context change.

5.3.2. Flow combination As we collect entities from an entity class, we sometimes need to further refine the filtering and trigger some actions. For example, when Henrick’s outfit is detected by the tag reader, we further need to test whether the outfit is suited for the current weather. To do so, we define an additional condition over the tagReader section that only filters relevant outfit tag(s). Specifically, a tag instance is collected if (1) it corresponds to an outfit matching the current weather (the p2 condition in the Tag section), and (2) Henrick is currently wearing the tagged outfit (the p3 condition in the tagReader section). Filtering clauses can be combined by the AND and OR controllers.

–  –  –

Beyond logical operators, filtering an entity class requires to express clauses that apply to all its instances, or none of them. This filtering is done by the ALL and NONE controllers, prefixed with an entity class or its icon representation (e.g., NONE ). This is illustrated in the R11 rule in Figure 8, where Lights are switched off when none of the motion sensors of a room has detected a presence. These sensors are collected using the MotionSensor entity class. In this case, a flow ordering is applied, first selecting lights and motion sensors, then testing if none of the collected sensors is activated.

5.4. Defining actions When a controller evaluates to true, either a unique action (e.g., a method) is executed, as in the R3 rule, or several actions are performed. In the latter case, the actions may be executed in any order (the R9 rule, Figure 7) or sequentially (the R7 rule, Figure 6). Actions may correspond to attribute assignments, typically needed to update an entity status, as in the alarmClock section in Figure 4. Only write attributes can be assigned a value. The volatile attributes have their value updated externally to Pantagruel. The action part of a rule may also involve method invocations, as required to operate entities from Pantagruel. These invocations conform to the type signature declared in the environment description. When the method of an instance is invoked, it may update one of its attributes as declared in the environment description. For example, when the terminate method is invoked on timeTracker, it may set the todolist write attribute to the empty list (the R6 rule, Figure 6), indicating that no more tasks need to be achieved.

The use of write attributes enables to depict a causal relationship between rule actions. For example, the display of the time tracker is updated only if its todo list has changed (the R5 rule, Figure 6). This status is enabled by the R3, R4, R6, and R8 rules.

5.5. Executing the application : key concepts Pantagruel is a reactive programming language in that it constantly interacts with the environment, by reacting to context changes. We have defined a simplified model of computation,

facilitating the orchestration steps of a program. Our model relies on the following key concepts:

(1) context-centric model, (2) discrete time and parallel mode and (3) non-interference. We now describe these concepts and we relate them to the Pantagruel visual paradigm and its usability.

Pages:     | 1 || 3 | 4 |   ...   | 5 |

Similar works:


«I/O issues in a multimedia system A. L. Narasimha Reddy Jim Wyllie IBM Almaden Research Center 650 Harry Road San Jose, CA 95120. reddy,wyllie@almaden.ibm.com 1 Abstract In this paper, we look at the various I/O issues in a multimedia system. In a multimedia server, the disk requests may have constant data rate requirements and need guaranteed service. We study the impact of the real-time nature of the I/O requests on the various components of the I/O system. We study the impact of disk...»

«Clearfield City’s Down Payment Assistance Program Administered by Davis Community Housing Authority The Davis Community Housing Authority (DCHA) will be administering Clearfield City’s Down Payment Assistance (CCDP) funds. This program is a federally funded grant program that will assist qualified first time home buyers with a maximum grant amount of $5,000 to assist with closing costs or down payment. The home must be a single-family dwelling; meaning a one family residence. The home must...»

«Bienvenidos a Ashfield Hostel Dublín Ashfield Hostel es el hostal de Dublín mejor situado de la zona centro, se encuentra entre el Trinity College y el Puente O’Connell y a 1 minuto andando de Temple Bar, Grafton Street y muchas de las atracciones turísticas de Dublín ¡nuestra ubicación no tiene comparación! Ashfield Hostel ha estado dándoles la bienvenida a visitantes internacionales desde que abrió sus puertas en 1995. Tenemos una gran variedad de habitaciones, desde grandes y...»

«Hypothesizing, Circularity, Neutrality Three Guidelines for the Conductor of the Session Mara Palazzoli Selvini, M.D. Luigi Boscolo, M.D. Gianfranco Cecchin, M.D. Giuliana Prata, M.D. This paper presents the results of our research focused on individuating and elaborating principles and methods that we have found highly productive in interviewing the family. We have synthesized these principles under the headings Hypothesizing, Circularity, and Neutrality, giving conceptual definitions,...»

«The Henderson Repository is a free resource of the Honor Society of Nursing, Sigma Theta Tau International. It is dedicated to the dissemination of nursing research, researchrelated, and evidence-based nursing materials. Take credit for all your work, not just books and journal articles. To learn more, visit www.nursingrepository.org Item type Presentation Title Schoolchildren's Experience of Myopic Prevention and Progression: A Qualitative Study Authors Chiang, Vico C. L.; Kong, Tutti Y. T.;...»

«Automate Configuration Management with ® SolarWinds NCM Learn how SolarWinds Network Configuration Manager (NCM) can help reduce human errors and result in savings Share: “82% of IT Pros have experienced network downtime as a result of human error made while configuring changes to the network core.” The same poll revealed loss in revenue to the tune of $140,000 per incident. The hardest hits were those from the financial services industry, who reported having lost an average of $540,358...»

«CHEMICAL ANALYSIS IN THE NEW ZEALAND DAIRY INDUSTRY Any dairy product is a variable mixture of a large number of different chemical species, which are usually grouped together into broad classes such as moisture, fat, protein (defined as (protein nitrogen (N) + non-protein nitrogen (NPN)) ! 6.38), anhydrous lactose and mineral salts (which includes citrate) for proximate analysis. If all the chemical species present in their native states are designated to a particular class, we would expect...»

«MESSAGE FROM THE CONFERENCE CO-CHAIRS Welcome to the 11th Annual CGC Graduate Conference: Play/Rewind. We are excited to welcome presenters from across Canada and internationally to explore this year’s theme and share their research. With a broad range of academic disciplines and scholarly traditions represented, we would like to thank all of this year’s participants for helping the conference continue to grow in size and stature. This conference is made possible thanks to a great deal of...»

«Algebraically contractible topological tensor network states arXiv:1108.0888v2 [quant-ph] 13 Sep 2011 S J Denny1, J D Biamonte2, D Jaksch1,2 and S R Clark2,1 1 Clarendon Laboratory, University of Oxford, Parks Road, Oxford OX1 3PU, United Kingdom 2 Centre for Quantum Technologies, National University of Singapore, 3 Science Drive 2, Singapore 117543 E-mail: s.denny1@physics.ox.ac.uk Abstract. We adapt the bialgebra and Hopf relations to expose internal structure in the ground state of a...»

«Testimony of a California Dairy Producer RIEN DOORNENBAL R DOORNENBAL RANCHES 19116 LONE TREE RD. ESCALON, CA 95320 Why Now? My name is Rien Doornenbal. My wife Lieske and I own and operate a 1600 cow dairy farm near the town of Escalon, about 120 miles north of here. Our son Pete with his wife Laura and children operate their own dairy farm near Caldwell, Idaho. Our son John with his wife Maryann and children operate their own dairy farm near Middleton, Idaho. Our daughter Tieneke and her...»

«Word & World Volume XVI, Number 1 Winter 1996 Physician-Assisted Suicide: What Is the Pastoral Task? ADELE STILES RESMER The Center for Ethics and Social Ministry Lake Elsinore, California MUCH OF THE DEBATE ABOUT PHYSICIAN-ASSISTED SUICIDE HAS CENTERED ON a question of rights. “Right-to-life” groups face off against “right-to-die” groups, particularly in states where referendums on physician-assisted suicide are being put before voters. Dr. Kevorkian continues to assist people to take...»

<<  HOME   |    CONTACTS
2016 www.theses.xlibx.info - Theses, dissertations, documentation

Materials of this site are available for review, all rights belong to their respective owners.
If you do not agree with the fact that your material is placed on this site, please, email us, we will within 1-2 business days delete him.