wiki:ExecutionManager

Version 11 (modified by jochen.bauknecht, 14 years ago) (diff)

Request Management and Request Monitoring desription added

Execution Manager Cookbook

This document includes instructions about installing and running the SENSEI Execution Manager.

Table of Contents

  1. Introducion
    1. Request Management
    2. Request Monitoring
  2. Installation
    1. Requirements
    2. Software Download
    3. MYSQL Setup
    4. Execution Manager Configuration
  3. Run the Execution Manager
    1. Startscripts
    2. Interfaces
    3. Example of REI Request

Introducion

The Execution Manager executes Execution Plans that the SQR created as a result of requests from Resource Users. The requests are either for retrieving information or executing actuation tasks. As the Figure shows, the Execution Manager consists of two logical internal components, the Request Management that executes the Execution Plan and the Request Monitoring that monitors the request execution in case of long-term requests.

Request Management

The Request Management executes short term requests received via the requestInformation operation as well as long term requests received via the requestSubscription or updateSubscription operations. The Request Management will process the requests and in the first case return information received from the Resources and in the second case set up sessions between Resources and Resource Users.

Request Monitoring

The Request Monitoring monitors the availability and reliability of REPs in order to provide a good quality of long term requests. After set up the a long term subscription by the Request Management, the Request Monitoring will set up the needed subscriptions to monitor the intended resources. When the Request Monitoring is notified that a change happened, it will notify the requesting ressource user.

Installation

Requirements

For the Execotion Managet, the following aditional Software is required:

Software Download

The Execution Manager and additional needed software packages are available from the following links:

MYSQL Setup

First create a new database with the name sensei_em.

MYSQL Command:
mysql --user YOURMYSQLUSERNAME -p -e"create database sensei_em;"

Then add mysql structure as defined in file doc/database.sql. This can be done with the command

mysql --user YOURMYSQLUSERNAME -p sensei_em < database.sql

Execution Manager Configuration

open the File xml/EmConfigs.xml and change the lines

        <mysqluser>root</mysqluser>
        <mysqlpassword>root</mysqlpassword>

according to your mysql settings, and the lines

        <Domain>localhost</Domain>
        <Port>8180</Port>

according to your preferences, where the REI Interface shall be deployed.

Run the Execution Manager

Startscripts

For your conveniance, start scripts for the Execution Maganer had beed created. For staring the Execition Manager, change to the Directory scripts and execute the command following command on Linux:

./runExecutionManager.sh

or on Windows:

runExecutionManager.bat

Interfaces

The Execution Manager provides the REI interface on the given IP Adress and Port as defined in the Configuration File. Therefore, the REI interface of the Execution Manager can be accesed on the URL

http://IP_OF_EM:PORT_OF_EM/subscribe

Example of REI Request

An example of a subscription request with one REP on the REI interface can be seen here. Thix XML Structure is tranmitted via http POST or GET to the REI interface of the execution manager. It can be seen that the TaskPlan? is embedded in a REI and a RequestSubscription? structure.

<?xml version="1.0" encoding="UTF-8"?>
<REI xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="REI_TaskPlan.xsd">
<RequestSubscription>
<TaskPlan>
  <TaskPlanNode>
    <ResourceType>WKRT_SENSOR</ResourceType>
    <ResourceID>0</ResourceID>
    <ResourceDescriptionID>0</ResourceDescriptionID>
    <RequestSpecification xsi:type="SubscriptionSpecification">
    	<Selector xsi:type="ContextSelector">
    		<EntityID>Room123</EntityID>
    		<EntityType>http://sensei/Room</EntityType>
    		<ContextAttribute>
    			<AttributeName>http://sensei/hasIndoorTemperature</AttributeName>
    		</ContextAttribute>
    	</Selector>
    	<Restriction/>
    	<Scope/>
    	<NotificationConditionSpecification>
    		<Period>10000.0</Period>
    		<OnlyOnChange>true</OnlyOnChange>
    		<ThresholdSpecification>
    			<Operation>GREATER_THAN</Operation>
    			<ThresholdValue>25</ThresholdValue>
    		</ThresholdSpecification>
    	</NotificationConditionSpecification>
    	<Callback>http://localhost:8179/notify/input0/SID00</Callback>
    	<Lifetime>100000</Lifetime>
    	<Contextualize>false</Contextualize>
    </RequestSpecification>
    <Operation>POST</Operation>
    <OperationURL>http://localhost:8190/s/temp123</OperationURL>
    <OperationParameters xsi:type="WKRTSensorSubscription">
		<URL>http://localhost:8179/notify/input0/SID00</URL>
		<Period>10000</Period>
		<OnlyOnChange>1</OnlyOnChange>
		<Threshold>
			<Operation>1</Operation>
			<Value>25</Value>
		</Threshold>
    </OperationParameters>
  </TaskPlanNode>
</TaskPlan>
</RequestSubscription>
</REI>

Attachments (1)

Download all attachments as: .zip