Interoperable Web Services for Building Automation Integrating KNX. KNX Scientific Conference 2006



Similar documents
Interoperability at the Management Level of Building Automation Systems: A Case Study for BACnet and OPC UA

Service Oriented Architecture

Introduction to WebSphere Process Server and WebSphere Enterprise Service Bus

Automation Systems and the IoT Industrial Internet

Developers Integration Lab (DIL) System Architecture, Version 1.0

Secure and Semantic Web of Automation

Introduction to Testing Webservices

Rotorcraft Health Management System (RHMS)

A standards-based approach to application integration

Enterprise Application Designs In Relation to ERP and SOA

Mobility Information Series

Classic Grid Architecture

Lesson 4 Web Service Interface Definition (Part I)

Cloud Storage Standards Overview and Research Ideas Brainstorm

Motivation Definitions EAI Architectures Elements Integration Technologies. Part I. EAI: Foundations, Concepts, and Architectures

Introduction to Service Oriented Architectures (SOA)

Service-Oriented Architecture and Software Engineering

Oracle Service Bus Examples and Tutorials

Combining SAWSDL, OWL DL and UDDI for Semantically Enhanced Web Service Discovery

Easy configuration of NETCONF devices

Jet Data Manager 2012 User Guide

Firewall Builder Architecture Overview

Hyper Historian Redundancy Setup Options

17 March 2013 NIEM Web Services API Version 1.0 URI:

Terms and Definitions for CMS Administrators, Architects, and Developers

A Comparison of Service-oriented, Resource-oriented, and Object-oriented Architecture Styles

iridium for Weinzierl KNX IP BAOS

Digital Signature Web Service Interface

Getting Started with Service- Oriented Architecture (SOA) Terminology

OPC UA vs OPC Classic

A Unified Messaging-Based Architectural Pattern for Building Scalable Enterprise Service Bus

SyncML Device Management

Drupal CMS for marketing sites

Oracle SOA Reference Architecture

Enabling REST Services with SAP PI. Michael Le Peter Ha

Open-source foundations for PC based KNX/EIB access and management

XIII. Service Oriented Computing. Laurea Triennale in Informatica Corso di Ingegneria del Software I A.A. 2006/2007 Andrea Polini

ITU-T Kaleidoscope Conference Innovations in NGN. Managing NGN using the SOA Philosophy. Y. Fun Hu University of Bradford

Middleware Lou Somers

T Network Application Frameworks and XML Web Services and WSDL Tancred Lindholm

Service-Oriented Architectures

CHAPTER 2 MODELLING FOR DISTRIBUTED NETWORK SYSTEMS: THE CLIENT- SERVER MODEL

Reengineering Open Source CMS using Service-Orientation: The Case of Joomla

How To Build A Dog Bus For Your Dog

SCA-based Enterprise Service Bus WebSphere ESB

Web Services Development for IBM WebSphere Application Server V7.0. Version: Demo. Page <<1/10>>

Data Management System - Developer Guide

Licenses of savic-net for Integrated Building Management System, and for FDA Title 21 CFR Part 11 Compliance

WEB SERVICES. Revised 9/29/2015

RTI v3.3 Lightweight Deep Diagnostics for LoadRunner

Research on the Model of Enterprise Application Integration with Web Services

Publish Acrolinx Terminology Changes via RSS

Data Integration using Agent based Mediator-Wrapper Architecture. Tutorial Report For Agent Based Software Engineering (SENG 609.

SOA Planning Guide The Value Enablement Group, LLC. All rights reserved.

Web Services for Management Perl Library VMware ESX Server 3.5, VMware ESX Server 3i version 3.5, and VMware VirtualCenter 2.5

A Quick Introduction to SOA

Literature Review Service Frameworks and Architectural Design Patterns in Web Development

Basic Approach of. Erich W. Gunther. EnerNex Corporation

Design REST Services with CXF JAX- RS implementation: best practices and lessons learned

LinuxWorld Conference & Expo Server Farms and XML Web Services

The C Programming Language course syllabus associate level

BUSINESS PROCESS AND EBXML - WEB SERVICES INTEGRATION PLATFORM, REQUIREMENTS, ARCHITECTURES, SECURITY

XML Signatures in an Enterprise Service Bus Environment

A Data Collection Revolution?

Run-time Service Oriented Architecture (SOA) V 0.1

CHAPTER 1 INTRODUCTION

Network Management (NETW-1001)

Application Centric Infrastructure Object-Oriented Data Model: Gain Advanced Network Control and Programmability

e-gov Architecture Service Interface Guidelines

Licenses of savic-net for Integrated Building Management System for FDA Title 21 CFR Part 11 Compliance

Improving Agility at PHMSA through Service-Oriented Architecture (SOA)

JoramMQ, a distributed MQTT broker for the Internet of Things

IBM SPSS Collaboration and Deployment Services Version 6 Release 0. Single Sign-On Services Developer's Guide

CHAPTER 1: CLIENT/SERVER INTEGRATED DEVELOPMENT ENVIRONMENT (C/SIDE)

Integrating VoltDB with Hadoop

AN-POV-011 SNMP use with POV

IFS-8000 V2.0 INFORMATION FUSION SYSTEM

TMS Phone Books Troubleshoot Guide

Secure Authentication and Session. State Management for Web Services

SOA and Virtualization Technologies (ENCS 691K Chapter 2)

MODULE 7: TECHNOLOGY OVERVIEW. Module Overview. Objectives

OPC Unified Architecture - Connectivity Guide

KNX News. KNX Internet of Things, KNX Secure, ETS Inside

Web Application Development for the SOA Age Thinking in XML

Novell Identity Manager

CONDIS. IT Service Management and CMDB

Leveraging the Web: A Universal Framework for Building Automation

Concepts of Database Management Seventh Edition. Chapter 9 Database Management Approaches

A Survey Study on Monitoring Service for Grid

September 2009 Cloud Storage for Cloud Computing

Client/Server Computing Distributed Processing, Client/Server, and Clusters

Simplifying Processes Interoperability with a Service Oriented Architecture

WCF WINDOWS COMMUNICATION FOUNDATION OVERVIEW OF WCF, MICROSOFTS UNIFIED COMMUNICATION FRAMEWORK FOR.NET APPLICATIONS

ODBC Client Driver Help Kepware, Inc.

YZP : SAUTER Vision Center

Transcription:

Interoperable Web Services for Building Automation Integrating KNX Matthias Neugschwandtner, Georg Neugschwandtner, Wolfgang Kastner Institute of Automation Automation Systems Group Automation Systems Group Vienna Institute University of Automation of Technology Vienna University Vienna, Austria of Technology www.auto.tuwien.ac.at/knx Outline Motivation Why use Web Services? Where are they appropriate? Relevant standards BACnet/WS vs. obix Exposing a KNX system via obix Mapping of data model and services Discovery Prototype implementation Interoperable Web Services for Building Automation: Integrating KNX - 2

Task Integrate datapoints of subsystems at the management level Possibly via an internal network Building Management System Internet Internet Internal Internal network network HVAC HVAC Lighting Lighting Blinds Blinds Security Security Safety Safety Interoperable Web Services for Building Automation: Integrating KNX - 3 Web Services Integration challenges Open standard for exposing subsystem data Today: OPC popular but only for Windows New technology: Web Services Machine to machine communication XML-messages over plain HTTP / SOAP Total platform independence Server Server Web Service XML encoded messages via HTTP, SOAP Client Software Agent Interoperable Web Services for Building Automation: Integrating KNX - 4

Web Services Modular Off-the-shelf standards for transmission, eventing, discovery, security, Support service oriented architectures Self-contained, loose coupling Fine grained services can be flexibly arranged into complex applications (Orchestration) Today: Interoperable access to datapoints Tomorrow: High-level business services (load management, ) Drawback: additional overhead XML encoding, no server push But less an issue at the management level Interoperable Web Services for Building Automation: Integrating KNX - 5 Web Services in building automation The established standard: OPC Initially (and still widely) Based on OLE/DCOM Multiple separate servers: Data Access, Historical Data Access, Alarms and Events, Moving towards XML/Web Services Unified Architecture (OPC UA) Only XML DA already available to the public The challengers: BACnet/WS and obix Specialized on building automation Already include histories, alarms, Drafts freely available from ASHRAE and OASIS obix TC Interoperable Web Services for Building Automation: Integrating KNX - 6

BACnet/WS data model Not limited to BACnet as underlying network Nodes Arranged in tree structure Hold data in attributes Attributes Primitive value types: Boolean, Integer, Real, String, Enumerations and arrays Can be localized Services Operate on attributes Retrieval and manipulation of primitive values Retrieval of entire arrays, value history, locale information Interoperable Web Services for Building Automation: Integrating KNX - 7 BACnet/WS data model Naming via paths According to tree structure URL-styled: / /boiler/temp:value Node types Required attribute Describe semantics of node or sub-tree HVAC system, Point, Determine mandatory attributes e.g., value for Points system node /hvac /hvac/space_t_act_val_1 :reference = /west_wing/hallway/temp reference node root node / /west_wing /hallway area nodes /west_wing/hallway/temp :value = 40 :units = degrees_fahrenheit :InAlarm = true point node Interoperable Web Services for Building Automation: Integrating KNX - 8

obix data model Full-blown object oriented data model Much like object-oriented software Highly extensible: inheritance, custom classes, Everything is an Object Including classes and even method signatures! Just objects composed of other objects Standard library Base object types (classes) Including primitive values (Boolean, Integer, ) Special purpose classes Server functionality: Watch, history, batch operations, Interoperable Web Services for Building Automation: Integrating KNX - 9 obix data model RESTful approach Resource centric architectural style for WS Highly restricted set of operations Resources share a uniform interface Mimics how the Web works only GET, PUT, POST but countless kinds of pages obix services Only three network request types invoke (operation), read/write (any other object) Still, any concept can be described Custom operations, just like any other object Interoperable Web Services for Building Automation: Integrating KNX - 10

obix data model: Object naming Name Identifies a (sub-)object within its encompassing object Internal, programmatic identifier E.g., for overriding inherited sub-objects URI reference Identifies an object globally E.g., for referring to the class of an object For exposing objects for access from outside (client) No higher-level semantics associated with URI namespace Unlike BACnet/WS tree structure! Interoperable Web Services for Building Automation: Integrating KNX - 11 Feature comparison BACnet/WS obix Extensibility Data point representation Services / operations Unit system Protocol bindings Localization Security Static data model Node with value attribute, Normalized points Predefined: attribute access Predefined collection of strings SOAP Support of multiple locales simultaneously Standard Web Service security (HTTP over SSL/TLS, WS-Security) Open, extensible data model Any object, semantic marker for points Individually definable Combination of SI base units SOAP and plain HTTP Left to the HTTP binding In addition: permission based degradation Interoperable Web Services for Building Automation: Integrating KNX - 12

Mapping KNX to obix: Goals Provide a Web Service for datapoint access Allow plain obix client to Monitor and influence the process Set device parameters Mapping of Datapoint types Services for process and management data Leverage native obix language element semantics Event feed for push-style communication, Allow discovery Interoperable Web Services for Building Automation: Integrating KNX - 13 obix base object types obj name: str is: contract removed: bool display: str displayname: str href: uri null: bool icon: uri writable: bool Custom classes val val: <type> list of: contract min: int max: int op in: contract out: contract feed ref err in: contract of: contract bool int real str enum abstime reltime uri range: uri min: int max: int unit: uri min: real max: real unit: uri precision: real min: int max: int range: uri min: abstime max: abstime min: reltime max: reltime Interoperable Web Services for Building Automation: Integrating KNX - 14

obix and XML Object model representation in XML Base object types: <int/>, <str/>, <op/>, Class specified as individual XML elements Other objects: <obj/> Class specified in the is XML attribute ( contract ) Attributes: XML attributes ( facets ) and sub-objects Methods: Network request types and sub-objects Contracts: Template objects Inheritance: Sub-objects of the contract are present in the derived object Contracts can be empty (only describe semantics) Objects can fulfill multiple contracts Interoperable Web Services for Building Automation: Integrating KNX - 15 obix XML example Contract <obj href="def:furnace"> <bool name="burneron"/> <real name="curtemp" is="obix:point"/> <real name="settemp" val="50.0" is="obix:writeablepoint"/> </obj> Object <obj name="furnace" href="myhouse/heating/furnace" is="def:furnace"> <bool name="burneron" val="true"/> <real name="curtemp" val="45.3"/> <real name="settemp" val="50.0"/> </obj> Interoperable Web Services for Building Automation: Integrating KNX - 16

obix: predefined classes Lobby Well known entry point, watch service, batch operation Points Read only: marker contract for base object types Read/write: contract adds write operation Historical trends History record: time stamped point value History object: records and query methods Filters, rollup calculation (e.g. average) Alarms Normalized model to query, watch and acknowledge alarms Support for stateful alarms (e.g. boiler temperature) Interoperable Web Services for Building Automation: Integrating KNX - 17 KNX interworking: necessary facts Functional block Part of a device Consists of datapoints (and behavioural specification) Datapoints Group objects Interface object properties Group communication Based on group addressing Push-style (spontaneous) vs. pull-style (request based) Datapoint types Data type: format and encoding Dimension: range and unit Interoperable Web Services for Building Automation: Integrating KNX - 18

Mapping: datapoint types Data type mapped to Value object types If necessary, with object containment DPT_B1 (Boolean) DPT_B1U3 (Control_Dimming) <bool/> <obj> <bool/> <int max="7"/> </obj> Dimension mapped to Facets: min/max, displayname Range and unit objects Interoperable Web Services for Building Automation: Integrating KNX - 19 Mapping: example DPT contracts Data type <obj href="knx:dpt_b1u3" is="knx:dpt"> <bool name="b1" val="false"/> <int name="u3" min="0" max="7" val="0"/> </obj> Dimension <obj href="knx:dpt_control_dimming" is="knx:dpt_b1u3"> <bool name="b1" displayname="brightness" range="knx:range/incdec"/> <int name="u3" displayname="stepcode"/> </obj> <list href="knx:range/incdec" is="obix:range"> <obj name="true" displayname="increase"/> <obj name="false" displayname="decrease"/> </list> Interoperable Web Services for Building Automation: Integrating KNX - 20

Mapping: process data KNX process communication: via group objects and associated group addresses Object hierarchy based on group object interaction type Group Communication Endpoint description: str groupaddress: GroupAddress Point GCE value: DPT Event Feed GCE values: feed of DPT Command GCE transmit(dpt dp) Writeable Point GCE? value: DPT Request based transmission Data type sub objects with Point semantics Spontaneous transmission No obix Point semantics Interoperable Web Services for Building Automation: Integrating KNX - 21 Mapping: management data KNX management communication: via interface object properties and physical addressing Straightforward mapping: obix Point container objects Interface Object Property description: str physicaladdress: int objectindex: int propertykey: int value: DPT Point IOP Writeable point IOP value: DPT Interoperable Web Services for Building Automation: Integrating KNX - 22

Discovery Which GCEs/IOPs are available on the server? Not built in as in BACnet/WS Group by? Two complementary approaches Device centric Group address centric Interoperable Web Services for Building Automation: Integrating KNX - 23 Discovery device centric Structure based on devices and functional blocks Access parameters & diagnostic data via IOPs: Management view Lobby about: ref batch: op watchservice: ref house: list of Device Device description: str physicaladdress: int functionalblocks: list of FB Functional Block description: str iop: list of IOP go: list of GroupObject IOP Group Object Interoperable Web Services for Building Automation: Integrating KNX - 24

Discovery group address centric Focus on group communication Structure based on functional entities Directory object, groups GCEs by location or purpose Well suited to access process data: Process view Lobby about: ref batch: op watchservice: ref house: list of FE Functional Entity description: str gce: list of GCE subfe: list of FunctionalEntity Group Communication Endpoint description: str address: GroupAddress Interoperable Web Services for Building Automation: Integrating KNX - 25 Implementation Basic process view Group communication only Most popular DPTs Plain HTTP binding Basic obix object access No watches, alarms, batching, history yet Configuration data supplied manually Leverage available open source software obix toolkit on SourceForge Calimero for network access and DPT transcoding Interoperable Web Services for Building Automation: Integrating KNX - 26

Server structure KNXnet/IP Tunneling client DPT encoding LL frame cache group addresses DP values filter engine (permission based degradation) KNXnet/IP KNXnet/IP router router KNX network Static Static project project data data backend XML Object Object broker broker obix objects obix obix server server frontend XML (method calls) frontend HTTP XML HTTP server server (HTTP) obix obix client client Calimero NG obix objects Configuration Configuration tool tool engineer user Interoperable Web Services for Building Automation: Integrating KNX - 27 Outlook Configuration import from ETS XML export format would allow straightforward conversion Functional blocks? Keep an eye on related standards OPC UA, BACnet/WS Develop higher abstractions Enterprise-level Web Services obix V2 abstractions Interoperable Web Services for Building Automation: Integrating KNX - 28