ISO/IEC JTC 1/SC 25/WG 1 N 1360 Date: 2008-12-17 ISO/IEC JTC 1/SC 25 INTERCONNECTION OF INFORMATION TECHNOLOGY EQUIPMENT Secretariat: Germany (DIN) DOC TYPE: Final Committee Draft (FCD) TITLE: ISO/IEC 18012-2 Information technology —Home electronic system (HES) — Guidelines for product interoperability — Part 2: Taxonomy and Lexicon SOURCE: SC 25/WG 1 N 1360 PROJECT: 25.01.07.01-02 STATUS: The NWIP had been distributed with JTC 1 N 5520. It has been approved as recorded in JTC 1 N 5652 This document is being provided as a Final Committee Draft (FCD) candidate. ACTION ID: Review and ballot DUE DATE: 2009-04-20 REQUESTED: ACTION Review and ballot MEDIUM: Def DISTRIBUTION: ITTF, JTC 1 Secretariat P-, L-, O-Members of SC 25 No of Pages: 54 (including cover) Secretary - ISO/IEC JTC 1 / SC 25 - Dr.-Ing. Walter P. von Pattay Member of ZVEI FV 7 & FV 8, Gotthelfstr. 34, D-81677 München, Germany Tel.: +49 89-923 967 57, Tfx.: +49 89-923 967 59 EM: [email protected] Ftp address: "ftp.iec.ch", login: "sc25mem", password: see SC 25 N 449 Home page: ”http://www.iec.ch/sc25” 1 ISO/IEC 2 18012-2 3 4 Information technology – Home electronic system (HES) 5 6 7 Guidelines for product interoperability – Part 2: Taxonomy and Lexicon 8 9 81894646 1 ISO/IEC CD 18012-2 IEC:2008 2 ISO/IEC JTC 1/SC 25/WG 1 N 1360 2008-12-17 10 CONTENTS 11 12 13 List of table ............................................................................................................................. 3 14 FOREWORD ........................................................................................................................... 5 15 INTRODUCTION ..................................................................................................................... 6 16 1 Scope ............................................................................................................................... 9 17 2 Normative references ..................................................................................................... 10 18 3 Terms, definitions and abbreviations .............................................................................. 10 4 3.1 Terms and definitions ............................................................................................ 10 3.2 Abbreviated terms ................................................................................................. 12 Conformance requirements ............................................................................................. 13 22 23 24 25 26 27 28 29 30 31 32 33 5 4.1 Management ......................................................................................................... 13 4.2 Application interoperability model .......................................................................... 13 4.3 Software logic encapsulation ................................................................................. 13 4.4 Interaction with interworking functions (IWFs) ....................................................... 13 4.5 Multiple bindings for application object event inputs and outputs ........................... 13 4.6 Multiple binding maps per application object ......................................................... 13 4.7 Event timestamps .................................................................................................. 13 4.8 Temporal association of events ............................................................................. 13 4.9 Home electronic system application interoperability taxonomy ............................... 14 4.10 Object schema ...................................................................................................... 14 4.11 Application binding map schema ........................................................................... 14 Application interoperability model ................................................................................... 14 34 6 Interaction model ............................................................................................................ 15 7 6.1 Overview ............................................................................................................... 15 6.2 Application objects ................................................................................................ 16 6.3 Binding map .......................................................................................................... 16 6.4 Events ................................................................................................................... 17 6.5 Event bus .............................................................................................................. 17 Home electronic system application interoperability taxonomy ........................................ 18 19 20 21 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 7.1 7.2 7.3 7.4 81894646 Classification ......................................................................................................... 18 Application domain ................................................................................................ 20 7.2.1 Definition ................................................................................................... 20 7.2.2 Application domain list ............................................................................... 20 Functional object ................................................................................................... 20 7.3.1 Definition ................................................................................................... 20 7.3.2 Functional object structure ........................................................................ 20 7.3.3 Functional action ....................................................................................... 21 7.3.4 Functional object list .................................................................................. 21 Application Object ................................................................................................. 21 7.4.1 Definition ................................................................................................... 21 7.4.2 Application Object Structure ...................................................................... 21 7.4.3 Property .................................................................................................... 21 7.4.4 Property data type primitives ..................................................................... 22 2 ISO/IEC CD 18012-2 IEC:2008 55 56 57 58 8 3 ISO/IEC JTC 1/SC 25/WG 1 N 1360 2008-12-17 7.4.5 Property unit type primitives ...................................................................... 22 7.4.6 Property action primitives .......................................................................... 22 7.4.7 Object types .............................................................................................. 23 Object schema ............................................................................................................... 23 59 60 61 62 63 64 65 66 8.1 8.2 Overview ............................................................................................................... 23 Base objects ......................................................................................................... 23 8.2.1 General ..................................................................................................... 23 8.2.2 Control objects .......................................................................................... 24 8.2.3 Sensor objects........................................................................................... 25 8.2.4 Actuator objects ........................................................................................ 25 8.3 Data type primitives ............................................................................................... 25 Application binding map schema .................................................................................... 26 9 67 68 9.1 Overview ............................................................................................................... 26 Annex A (informative) An interoperability application specification example ......................... 27 69 70 71 72 73 74 75 76 77 78 79 80 A.1 A.2 A.3 A.6 Annex B Lighting application ............................................................................................... 27 Procedure ............................................................................................................. 27 Generic lighting subsystem application model ....................................................... 27 A.3.1 Functional classes ..................................................................................... 27 LonWorks .............................................................................................................. 30 A.4.1 LonWorks: LightSwitch functional profile .................................................... 30 A.4.2 LonWorks LonWorks-IOP interworking function .................................. 30 UPnP .................................................................................................................... 32 A.5.1 UPnP: LightLamp functional profile ............................................................ 32 A.5.2 UPnP UPnP-IOP interworking function ............................................... 33 Interoperable System – Functional Model .............................................................. 35 (normative) Base Object Schema Definitions ......................................................... 37 81 82 83 84 85 86 87 88 B.1 B.2 B.3 B.4 B.5 B.6 B.7 Annex C Commons .............................................................................................................. 37 Base Types ........................................................................................................... 38 Base Definitions .................................................................................................... 39 Control Objects ..................................................................................................... 45 Sensor Objects ...................................................................................................... 45 Actuator Objects .................................................................................................... 45 Application Binding Map ........................................................................................ 46 (informative) Base Object Schema Extension Examples ........................................ 48 89 90 91 C.1 Derived Types (examples) ..................................................................................... 48 C.2 Industry-specific Types (examples) ....................................................................... 50 Annex D (informative) Notes on interoperability ................................................................... 52 92 93 94 95 D.1 General comments on the interoperability framework specification ........................ 52 D.2 Taxonomy definitions ............................................................................................ 52 D.3 Taxonomy of the existing systems ......................................................................... 52 Bibliography .......................................................................................................................... 53 96 97 List of table 98 Table 1 – Application domain list .......................................................................................... 20 99 Table 2 – Property structure ................................................................................................. 22 100 Table 3 – Property unit type primitives .................................................................................. 22 101 Table D.1 – Terminology mapping table ................................................................................ 52 A.4 A.5 81894646 3 ISO/IEC CD 18012-2 IEC:2008 4 ISO/IEC JTC 1/SC 25/WG 1 N 1360 2008-12-17 102 103 List of figures 104 Figure 1 – Two Interoperating Networks ................................................................................ 10 105 Figure 2 – Application interoperability model ......................................................................... 15 106 Figure 3 – Binding map example ........................................................................................... 17 107 Figure 4 – Event bus example ............................................................................................... 18 108 Figure 5 – Interoperable system taxonomy ............................................................................ 19 109 Figure 6 – Object schema structure ...................................................................................... 24 110 Figure A.1 – Lighting application ........................................................................................... 27 111 Figure A.2 – LightSwitch Object ............................................................................................ 28 112 Figure A.3 – LightLamp Object .............................................................................................. 30 113 Figure A.4 – LonWorks LightSwitch Device (Switch Object 32 00) .......................................... 30 114 Figure A.5 – LonWorks InterWorking Function System .......................................................... 31 115 116 Figure A.6 – Functional Mapping LonWorks LightSwitch Device to the Generic LightSwitch ........................................................................................................................... 31 117 Figure A.7 – LonWorks Function Mapping Table ................................................................... 32 118 Figure A.8 – UPnP LightLamp Device ................................................................................... 33 119 Figure A.9 – UPnP InterWorking Function System ................................................................ 34 120 Figure A.10 – Functional Mapping UPnP LightLamp Device to the Generic LightLamp .......... 34 121 Figure A.11 – UPnP Function Mapping Table ........................................................................ 35 122 Figure A.12 – Interoperable System Working Flow ................................................................ 36 123 124 81894646 4 ISO/IEC CD 18012-2 IEC:2008 5 ISO/IEC JTC 1/SC 25/WG 1 N 1360 2008-12-17 125 FOREWORD 126 127 128 129 130 131 132 ISO (the International Organisation for Standardisation) and IEC (the International Electrotechnical Commission) form the specialised system for world -wide standardisation. National bodies that are members of ISO or IEC participate in the development of International Standards through technical committees established by the respective organisation to deal with particular fields of technical activity. ISO and IEC technical committees collaborate in fields of mutual interest. Other international organisations, governmental and non-governmental, in liaison with ISO and IEC, also take part in the work. 133 134 135 136 In the field of information technology, ISO and IEC have established a joint technical committee, ISO/IEC JTC 1. International Standards adopted by the joint technic al committee are circulated to national bodies for voting. Publication as an International Standard requires approval by at least 75% of the national bodies casting a vote. 137 138 139 This part of ISO/IEC 18012 was prepared by Joint Technical Committee ISO/IEC JTC 1, Information technology, Subcommittee SC 25, Interconnection of Information Technology Equipment. 140 141 142 ISO/IEC 18012 consists of the following parts, under the general title Information technology — Interconnection of information technology equipment — Home electronic system — Guidelines for product interoperability: 143 Part 1: Introduction 144 Part 2: Taxonomy and Lexicon 145 Part 3: Application models 146 81894646 5 ISO/IEC CD 18012-2 IEC:2008 6 ISO/IEC JTC 1/SC 25/WG 1 N 1360 2008-12-17 147 INTRODUCTION 148 149 150 151 152 153 154 155 The widespread development of many national and regional home automation specifications, some standard and some proprietary, necessitates a mechanism for interoperability. Interoperability ensures that products from multiple manufacturers (potentially implemented using different automation systems) can interwork. It is desirable that devices needing to interwork do so seamlessly to provide users with a variety of integrated applications without modification of their underlying protocols. Examples of such applications include lighting control, environmental control, energy management, audio/video equipment contr ol, and home security. 156 157 158 159 160 161 162 This International Standard provides a descriptive mechanism at the application level, so that there is a common way of describing applications in any underlying system, and an unambiguous mapping to key implementation items (e.g., d ata type primitives) to allow for transparent interoperability. Application-level interoperability can not be achieved without being able to describe applications. The term “product interoperability” should be considered synonymous with application-level interoperability, since products are developed to implement applications - the value of products derives from their applications. 163 164 165 166 167 168 169 170 Work on this International Standard began with an in-depth review of the following existing systems, to understand the various application, interaction, and implementation models in use: CEBus, LonTalk, KNX, EHS, UPnP, and EchoNet. From that analysis, key similarities were identified between the various approaches and implementations. Those similarities are primarily in the high-level application functions that are being implemented, with differences appearing in the details of how the functions are represented. In short, there is a great deal of semantic similarity between various automation system application functions, but signi ficant differences at the syntactic level. 171 172 173 That observation establishes the approach followed in this International Standard: to facilitate interoperability, it is necessary to define an application model framework with the following characteristics: 174 Allows a rich set of application semantics to be clearly described in a common format 175 176 177 Incorporates a simple but flexible interaction model abstraction that can represent all the potential interactions of the various system implementations ( command/response, shared variable, message-oriented, etc.). 178 179 180 Establishes the minimal set of common data type primitives to support unambiguous mapping of logical application data descriptions into implementation -specific binary representations. 181 182 183 184 185 Interoperability in distributed application systems is defined as the ability of two or more distributed components to communicate and cooperate in predictable ways despite differences in implementation language, execution environment, or model abstractions. Three main levels of interoperability between components in a distributed application can be distinguished: 186 187 Protocol level, where the blocking conditions (synchronous or sequential constraints) are defined. 188 189 Syntactic level, where the ordering between the exchanged messages and where th e names, interfaces, and operation of the components are defined. 190 191 Semantic level, where the meaning of the possible interactions between the components in the distributed application system is defined. 192 193 194 195 With semantic level interoperability, clashes between two application components attempting to cooperate are caused by differences in the lexicon (conceptual schemas) that describe the components. Simply put, a mistranslation may occur between the two systems because of incomplete shared information. The poss ible clashes can be classified into two main groups: 196 197 198 Lossless clashes, those that can be resolved with no loss of information. Some examples in this category include component naming clashes, where the same component/information is represented by different labels; structural clashes, where information elements are 81894646 6 ISO/IEC CD 18012-2 IEC:2008 199 200 7 ISO/IEC JTC 1/SC 25/WG 1 N 1360 2008-12-17 grouped in different ways in different systems, and unit clashes, where some scalar value (e.g. distance or temperature) is represented with different units of measure. 201 202 203 204 205 206 207 208 209 210 211 212 Lossy clashes, which include interoperability clashes for which any transformation available, in either direction, causes loss in the information being communicated between the two application components. These clashes are associated with differing levels of granularity, refinement or precision of the representation of the information. Note that a lossy translation between the two application components may be an acceptable solution, provided that it achieves the desired application behaviour, and does not affect the functional safety of the application, or the system as a whole. One example of a lossy clash would be a light controller with a dimmer function. This controls a light actuator (lamp); the light actuator understands only three levels of dimming, whilst the light controller supports up to 8 different levels. Any interoperability mapping between these two devices would require the mapping of the three levels recognised by the light installation to three out of the eight levels of dimming supported by the light controller. 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 This International Standard is based on understanding the difference in the primitiveness of actions at different levels of object definition (i.e., different levels of abstraction). Furthermore, it is based on separation of the concept of action primitives from the actual implementation of these primitives. For example, if objects (devices) in System -A use <get>/<put> functions to implement local or remote reading and writing of variable values, these are not considered “action primitives” in the context of this International Standard, but rather a programming mechanism used to invoke the application actions. The different actions are caused by <put> ing (setting) the same variable to different values, which means that it is the variable and the value that it contains at a given time that define the application action. This is captured later on in this International Standard by eventing – objects (devices) notify each-other with the values of their parameters, and each device (object) makes its decisions and t akes actions based on these values. During this processing each device may change these values; changes should be notified to all the interested parties. These same actions can be invoked in System-B by performing a (different) remote or local function cal l. In this case it is possible for both systems to implement the same lexicon, but with their own invocation mechanism. 228 229 230 231 232 233 234 For example, one automation system might implement a shared variable space for communication between devices and components. In a simple lighting control example, a user might turn a wall switch on, causing a shared variable in the switch device on the network to change from 0 (off) to 1 (on). A lighting controller component in the system might be subscribed to that shared variable, causing the automation system to notify the lighting controller of the change in the variable’s state. The controller could then take actions as defined by the configuration and programming of the lighting control application. 235 236 237 In a complementary example, based on a command and control-based automation system, the wall switch might cause an “on” command to be sent across the network in a message to the lighting controller component, which would then react appropriately. 238 239 240 241 In both examples, the behaviour of the light ing control application is the same, but the method used to implement it was quite different. This is an example of two systems having the same semantics (meaning and behaviour), but different syntax (implementation and codification or form). 242 243 244 245 246 The interoperable system is generic, and as such it should cater to different interactivity models (as described in the example above). It is assumed that any adaptation necessary from a system-specific interaction model to the eventing interaction adopted by the interoperability model is included in the implementation of the interworking functions provided by the manufacturers (or third party providers) interfacing into the interoperability model. 247 248 249 250 251 252 253 254 The interoperability model in this International Standard addresses the requirements of two developer communities: the component developers (e.g., manufacturers), who develop individual devices and systems, and the solution developers (e.g., integrators or field installers), who provide one (or more) applications that use serv ices provided by the components. The two communities overlap at least partially. For example, a company that develops automation devices would typically provide software routines that link their products to specific application objects, which could be a standardized objects published as part of an application model, or could be something the company defined and published. In the latter 81894646 7 ISO/IEC CD 18012-2 IEC:2008 8 ISO/IEC JTC 1/SC 25/WG 1 N 1360 2008-12-17 255 256 case the object definitions are considered to be standard only upon publication in a registry of interoperable objects. 257 This document comprises the following sections: 258 259 Clauses 1 through 4 are the scope, normative references, terms, definitions and abbreviations, and conformance clauses respectively. 260 Clause 5 describes the application interoperability model. 261 Clause 6 describes the interaction model in terms of an asynchronous event -bus model. 262 Clause 7 describes the taxonomy used for inter-system and intra-system interoperability. 263 Clause 8 describes the object schema framework. 264 Clause 9 describes the application binding map schema framework. 265 Annex A describes an example of an interoperable application specification . 266 Annex B contains the base object schemas. 267 Annex C contains base object schema extension examples. 268 Annex D contains miscellaneous notes on interoperability and related taxonomy terms. 269 81894646 8 ISO/IEC CD 18012-2 IEC:2008 9 ISO/IEC JTC 1/SC 25/WG 1 N 1360 2008-12-17 Information technology — Home electronic System (HES) — Guidelines for product interoperability — Part 2: Taxonomy and Lexicon 270 271 272 1 Scope 273 274 275 276 277 278 279 280 281 282 This part of ISO/IEC 18012 specifies a taxonomy and lexicon for the interoperability of products in the area of home electronic systems. It also specifies an interoperability framework to allow products from multiple manufacturers can work together to provide a specific application. This standard is concerned with layers six (Presentation) and seven (Application) of the OSI Reference Model (ISO 7498), with sufficient detail needed to establish interoperable applications in this domain. Layers one through five are not specified here. The interoperability framework defined here is independent of all layer 1 to layer 5 communication protocol stacks used in a home electronic system (for an example of layers one through five see ISO/IEC 14543). A minimal set of transport layer requirements is specified in ISO/IEC 18012-1. 283 This International Standard is applicable to: 284 285 Single implementation applications. 286 287 Multiple implementation home electronic system networks, connected devices and applications. 288 Automatically configured devices. 289 Installer configured devices. 290 Installer configured groups/clusters of devices. 291 292 293 294 295 This part of ISO/IEC 18012 addresses interoperability for system operation and management of products connected to a single home electronic system or to different home electronic systems. Although a single uniform home system would simplify operations, this International Standard recognises that multiple different networks may co -exist in the same distributed home electronic system. 296 297 298 299 300 301 302 The taxonomy specified here is based on application domain classification criteri a for applications in home electronic systems, as well as a lexicon of objects, events, properties, and primitive actions to effect or otherwise propagate change in the objects (their properties). The full lexicon for the interoperability of home electroni c systems will be defined in Part 3 of this standard, as part of the Application Model specifications. This International Standard enables the specification and implementation of distributed application functions and services within the context of home electronic systems. 303 304 305 306 307 308 This International Standard does not specify how two home electronic systems simultaneously share (i.e. resolve possible contention for) a common resource or how to ensure that two home electronic systems used within the same premises do not interfere with each other. However, note that it is required by Part 1 of this International Standard that two home electronic systems may share a common resource, and that they shall not interfere with one another. 81894646 home electronic system networks, connected devices and 9 ISO/IEC CD 18012-2 IEC:2008 10 ISO/IEC JTC 1/SC 25/WG 1 N 1360 2008-12-17 Gateway Link HGI A Objects on Network A Network A HGI B Network B Objects on Network B 309 Figure 1 – Two Interoperating Networks 310 311 312 313 314 This International Standard applies to application components in operation within networks, between networks, and to components located at the junction of dissimilar networks. Two (or more) dissimilar networks (referring to Figure 1 as an example) that conform to this International Standard, when linked by some communication system, are expected to behave as if both networks were logically the same network from an application per spective. 315 2 316 317 ISO/IEC 646 Information technology — ISO 7-bit coded character set for information interchange 318 319 ISO 7498:1984, Information processing systems – Open Systems Interconnection – Basic Reference Model 320 321 ISO/IEC 18012-1, Information technology — Home electronic system (HES) — Guidelines for product interoperability — Part 1: Introduction 322 323 IEC 60050-714:1992, International Electrotechnical Vocabulary - Chapter 714: Switching and signalling in telecommunications 324 IEC 60559, Binary floating-point arithmetic for microprocessor systems 325 3 326 3.1 327 For the purposes of this International Standard, the following terms and definitions apply. 328 329 330 331 332 3.1.1 application programming interface API collection of invocation methods and associated parameters used by one piece of software to request actions from another piece of software 333 334 335 3.1.2 co-existence two or more networks within a premise that do not interfere with one another Normative references Terms, definitions and abbreviations Terms and definitions 81894646 10 ISO/IEC CD 18012-2 IEC:2008 11 ISO/IEC JTC 1/SC 25/WG 1 N 1360 2008-12-17 336 337 338 3.1.3 component logical subunit of a larger, encom passing concept 339 340 341 342 NOTE The concept of interoperability is broken down into constituent components such as safety, management and operation. These constituent components are further broken down within their respective sections. The term component is also used to refer to logical subunits of system architecture concepts, such as the components of a networking implementation (for example, addressing) . 343 344 345 3.1.4 device distinct physical unit on a network 346 347 NOTE It can either be an end node on the network, or an intermediate node (as in the cas e of a network gateway device connecting two distinct physical networks). 348 349 350 351 3.1.5 event individual output of an application object, typically corresponding to a simple or complex state variable used in the application object 352 NOTE See 6.4: Events. 353 354 355 3.1.6 functional action modelling of functionally composite behaviour within a functional class 356 357 358 359 3.1.7 functional class a collection of objects and actions on objects that models a particular application function within an application domain 360 361 362 3.1.8 intermediate implementation mixed collection of two or more network implementations 363 364 365 NOTE To establish connectivity, an intermediate implementation provides for a common intermediate translation between any two networks, assuring a worst-case translation path of two hops (from any network to the common translation, and then from the common translation to the destination network). 366 367 368 3.1.9 interoperability (1) logical entities functioning together for applications on a network 369 370 371 (2) the ability of two or more distributed components to communicate and cooperate in predictable ways despite differences in implementation language, execution environment, or model abstraction 372 373 374 375 376 3.1.10 interoperability domain ID logical space where interoperable objects seamlessly interact with one-another using an event bus 377 378 379 380 381 3.1.11 interoperability domain interface IDI software object that provides the translation between a generic interoperable object instance and a corresponding system-specific counterpart by using an interworking function 382 383 384 385 3.1.12 interworking ability of two or more devices to support exchange of data and actions between them, having the same communication interface and application data types 81894646 11 ISO/IEC CD 18012-2 IEC:2008 12 ISO/IEC JTC 1/SC 25/WG 1 N 1360 2008-12-17 386 387 388 389 390 391 3.1.13 interworking function IWF software module that provides syntactic and semantic translation service s between a device and its standardised interoperable representation; it resides in an intermediary unit that connects two, possibly different, communication systems 392 393 394 3.1.14 multiple implementation mixed collection of two or more network implementations 395 396 NOTE To establish interoperability, each network has a routing path to every other network in the system. This path may involve one or more hops through multiple intermediate networks. 397 398 399 3.1.15 network distinct interconnection of devices that share a singl e physical layer implementation 400 401 402 3.1.16 object unit of software functionality 403 NOTE This definition is similar to that traditionally used in object-oriented programming. 404 405 406 3.1.17 product device or network that may be purchased to make up a home electronic s ystem 407 3.2 408 For the purposes of this International Standard, the following abbreviated terms apply. 409 410 411 3.2.1 API application programming interface 412 413 414 3.2.2 GL gateway link 415 416 417 3.2.3 HAN home area network 418 419 420 3.2.4 HES home electronic system 421 422 423 3.2.5 HGI home gateway interface 424 425 426 3.2.6 ID interoperability domain 427 428 429 3.2.7 IDI interoperability domain interface 430 431 432 3.2.8 IWF interworking function Abbreviated terms 81894646 12 ISO/IEC CD 18012-2 IEC:2008 13 ISO/IEC JTC 1/SC 25/WG 1 N 1360 2008-12-17 433 4 Conformance requirements 434 4.1 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 Interoperability considerations regarding general management processes in HES are described in ISO/IEC 18012-1. This part addresses only the management aspects related to the operation mode of interoperable HES and does not cover the management processes of individual constituent networks. Examples of these are the device address acquisition and maintenance or resource management processes (contention for gaining exclusive access to some object). Different systems define different management protocols and procedures for realising these. This part only covers, for example, the device management functions pertaining to application configuration. In this context it is assumed that the propagation of the necessary actions to support the operational application object binding further down the protocol stack (for example, device address or network variable number), as well as the provisioning of the necessary conditions are fulfilled by separate management services not described in this part. These functions are standardised or specified in the domain of t he individual networks. As the IWFs are used as the device interface proxy to the interoperability system and are normally provided by the manufacturer of the device (or an intere sted third party provider), these management functions are carried out within the IWF code and are not part of this International Standard. 451 452 453 454 455 456 Further examples of management issues outside the scope of this International Standard include establishing and maintaining connectivity between devices hosting the distributed application objects independently of the fact that the devices belong to the same or different systems. Interoperability management allows for transparency to the native application management support services provided by separate, though interoperable, systems independently of the fact that these services are automatic or installer -based. 457 4.2 458 459 460 An implementation shall conform to the application interoperability model described in Clause 5: Application interoperability model, including the use of an ID and IDIs with appropriate IWFs to achieve interoperability. 461 4.3 462 463 An implementation shall support encapsulating software logic within application objects, as described in subclause 6.2: Application objects. 464 4.4 465 466 An implementation shall support interaction between IWFs and application objects, as described in subclause 6.2: Application objects. 467 4.5 468 469 An implementation shall support the definition of multiple bindings per application object event input or output, as described in subclause 6.3: Binding map. 470 4.6 471 472 An implementation shall support application objects belonging to more than one binding map, as described in subclause 6.3: Binding map. 473 4.7 474 An implementation shall support event timestamps as described in subclause 6.4: Events. 475 4.8 476 477 478 479 An implementation shall support the requirement for multiple events generated concurrently from a single application object to be delivered at the same time to any app lication object that has a binding to two or more of those concurrent events, as described in subclause 6.4: Events. Management Application interoperability model Software logic encapsulation Interaction with interworking functions (IWFs) Multiple bindings for application object event inputs and outputs Multiple binding maps per application object Event timestamps Temporal association of events 81894646 13 ISO/IEC CD 18012-2 IEC:2008 14 ISO/IEC JTC 1/SC 25/WG 1 N 1360 2008-12-17 480 4.9 Home electronic system application interoperability taxonomy 481 482 483 An implementation shall use the taxonomy defined in Clause 7: Home electronic system application interoperability taxonomy when defining interoperable application objects and events. 484 4.10 485 486 An implementation shall use the schema defined in Clause 8: Object schema when defining interoperable application objects, including: 487 488 Conforming to the use of the base objects defined in 8.2 as the foundation for deriving specific application objects. 489 490 Assuring that all events either match a data type primitive defined in 8.3, or are derived from a combination of those primitives that defines a more complex data type. 491 4.11 492 493 494 An implementation shall support a binding map mechanism that conforms to the requirements defined in Clause 9, such that any interoperable application may be fully specified to the interoperability framework implementation. 495 5 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 The application interoperability m odel is based on the definition of one or more application domains, where each domain is identified explicitly in the HES object taxonomy. Each domain is populated with application objects representing sensor, actuator and control devices. These application objects interact with one another by posting and receiving events across a logical event communication bus (the event bus); the event bus provides the communication services to the application objects. An application is formed as a collection of one or more application objects with specified bindings, and with verifiable behaviour. A generic application example is a controller application object instance which collects sensor information from sensor application objects of a pre-defined type, and requests action from actuator application objects, again from a list of pre-defined types. Note that this view does not assume that a physical device (product) will be modelled as only one of these three classes (i.e. a product may be realised as a combined sensor/actuator/controller entity if the particular application requires it to be designed in that way); however, for the purposes of the interoperability framework each of the three functionalities will be presented by different objects when and if they are required to interoperate across system s belonging to different specifications and/or standards. 512 513 514 515 516 517 518 The application objects are programs running on individual devices, for example a temperature sensor device has a corresponding application object that is called TemperatureSensor. The association of interoperable application objects with actual devices is performed through configuration processes which are part of the IWF provided by the device manufacturer or an interested third party. These configuration processes are outside the scope of this International Standard.The interoperable application objects connect to the actual devices they represent via the IWFs. Object schema Application binding map schema Application interoperability model 81894646 14 ISO/IEC CD 18012-2 IEC:2008 15 ISO/IEC JTC 1/SC 25/WG 1 N 1360 2008-12-17 Interoperability Domain Interoperabi lity Object 1 IDI (IWF-A) Device 1-A Network A Interoperabi lity Object 2 IDI (IWF-B) Network B Device 2-B 519 Figure 2 – Application interoperability model 520 521 522 523 524 525 526 527 528 529 530 531 532 533 Figure 2 shows an instantiation of the application interoperability model. Two devices (Device 1-A and Device 2-B) are installed in two different network systems, respecti vely Network A and Network B, and need to interact with each other to provide an interoperable application. The networks are linked together through a logical entity called the interoperability domain (ID). The ID connects with different network systems via a set of interoperability domain interfaces (IDIs). The IDIs are software entities containing software functions that provide any necessary translation between the generic interoperable object instance (e.g. Interoperability Object 1 within the interoperability domain) defined in this International Standard and the corresponding system-specific counterpart (Device 1-A in Network A). These translation services are called Interworking Functions (IWFs). The IDIs maintain the logical connection between the interoperable object instance within the interoperability domain and the corresponding device (or the system-specific counterpart). This includes maintaining object-state consistency between the interoperable object instance and the system-specific counterpart, as necessary; this is performed by the IWF. 534 535 536 Note that both Networks A and B may contain other devices. They will not be represented in the interoperability domain if these devices are not required to interwork in the context of this specification with devices on other different systems and/or networks. 537 538 539 The interoperability domain is a logical entity. It can be implemented on a single physical device/platform, distributed over several devices, or its functionality may be integrated with other functional entities such as a HES Gateway. 540 541 542 Specific network systems shall specify the IWFs to be used for the interoperable object instantiation and running on an interoperability domain for devices that are intended to be interoperable. 543 6 544 6.1 545 546 547 548 An interaction model between the application objects in the interoperability domain is described here for passing application events across a logical event communication path or bus defined within the interoperability domain, known here as the event bus. Event passing is asynchronous, occurring at any time that the application objects require. Interaction model Overview 81894646 15 ISO/IEC CD 18012-2 IEC:2008 16 ISO/IEC JTC 1/SC 25/WG 1 N 1360 2008-12-17 549 550 Events are originated by application objects. It should be noted that an application object is not required to produce outputs: some application objects might only be r eceivers of events. 551 552 553 554 555 556 557 558 559 560 Each application object can have multiple event inputs and event outputs, which correspond to the input and output parameters (as defined in IEC 60050-714:1992, Definition 714-21-08) of that application object’s function or functions. T herefore, the individual function parameters of an application object are being passed across the event bus as separate events. This effectively breaks any tight association between the application object function interfaces (application programming interfaces) and the communication protocol used to move the parameters across the network: the event bus simply moves individual events from a source application object to a destination application object or objects, and is not dependent on future changes to the application object function interfaces. In other words, the event bus communication protocol is completely independent of the applications that it is supporting. 561 562 563 564 565 Event destinations are specified by a binding map that is part of the application interoperability framework definition. The binding map is used to define event connections (bindings) between application objects at the individual event level. These bindings are simply the declaration of a connection from an event output of an application object to one or more event inputs of an application object or objects. 566 567 568 569 570 571 572 573 574 575 It would not be efficient, from a communication channel perspective, to send every individual application object function parameter as a discrete transaction on the event bus. Therefore, it is expected that implementations of this International Standard will make use of both the application object schemas and the binding map information to enable efficient automated aggregations of multiple concurrent events. This means that during execution implementations should group together concurrent events (e.g., event outputs that were generated concurrently by an application object) that have the same destination, and move them across the event bus as a single communication transaction (e.g., a single me ssage payload, a single memory transfer, etc.). See 6.5: Event bus for a further discussion of this concept. 576 577 578 579 580 581 This aggregation of events is independent of the application object function interfaces, and could even allow for the outputs of multiple application objects to be moved across the event bus as a single unit. Upon arriving at the destination, the grouping should be disaggregated into their individual events for posting to the appropriate applicat ion object inputs. This approach enables global system-level optimization of communication bandwidth, rather than individual application-level optimization. 582 6.2 583 584 585 Application objects represent the operational components of an interoperable ap plication. They are software representations of the sensors, actuators, control devices, and higher -level functions in a HES system that must interoperate. 586 587 588 589 590 Depending on their function, application objects can have zero or more event inputs and event outputs. An application object with only event outputs is considered a sensor application object; one with only inputs is considered an actuator application object. Control application objects have one or more event input(s) and one or more event output(s). See Clause 8: Object schema for a complete description. 591 592 593 594 595 596 597 598 Application objects encapsulate software logic appropriate to the component they represent in the system. For example, a temperature sensor application object for a temperature sensor device would receive temperature readings from the device via an IDI using an appropriate IWF that performs any necessary reformatting or translation on the readings to put them in the form of the interoperable properties defined in 7.4.2: Application Object Structure. The temperature sensor application object can then perform any additional application processing desired (if any) before generating an output event on the event bus containing the temperature reading. 599 6.3 600 601 A binding map corresponds to a single application in the interoperability domain. There will typically be many binding maps active, one for each application that is running. Application objects Binding map 81894646 16 ISO/IEC CD 18012-2 IEC:2008 17 ISO/IEC JTC 1/SC 25/WG 1 N 1360 2008-12-17 602 603 604 The binding map defines the connections between the application objects that make up a complete application. A binding identifies the source -end and the destination-end of an event connection. See Figure 4 – Event bus example for a graphical depiction of this concept. 605 606 607 608 There can be multiple bindings from each application object event output, and there can be multiple bindings to each application object event input. In other words, an application object event output can be used as an input by more than o ne application object, and conversely an application object event input can receive events from more than one application object. 609 610 611 612 Also, application objects might be part of more than one application, and as such they might be included in more than one active binding map as shown in Figure 3 – Binding map example. In this simple example Lighting Controller B is part of both the manual lighting switch application and the motion-activated lighting security application. D Security Controller Lamp Control Application Binding Map (A, B, C) B E Lighting Controller Motion Sensor A C Switch Lamp Security Application Binding Map (B, D, E) 613 Figure 3 – Binding map example 614 615 6.4 Events 616 617 618 619 Events correspond to the individual outputs of application objects, and as such the structure of their application-specific content are defined using the application object schema described in Clause 8: Object schema. Events shall also contain a timestamp, as defined by the application object schema. 620 621 622 623 624 At a minimum, there should be a timestamp that corresponds to the time at whi ch an event is placed on the event bus by an application object. In addition, depending on the capabilities of the underlying system implementation, there could be a second timestamp that represents the time when a physical event actually occ urred (e.g., the time that a temperature sensor reading occurred). 625 6.5 626 627 628 The event bus provides the delivery mechanism for events to pass from an application that produces the event to any number of application objects that consume the event and potentially take some action. Events are asynchronous, occurring at any time. 629 630 631 632 633 634 635 636 637 638 The intent is that the event bus model be as simple as possible, allowing it to be implemented on the broadest possible set of underlying communication mechanisms. One implementation might be based on a shared memory for an IG domain that is completely contained in a single processing device such as a simple embedded gateway. A more comprehensive implementation could be a distributed event bus on top of a publish/subscribe transport spanning multiple processing devices (such as a collection of HES-Links or GLs, as defined in ISO/IEC 15045-2, connected over a network), or any combination of such implementations – the event bus does not have to be implemented on a uniform underlying communication mechanism, and in fact is likely to span multiple underlying communication mechanisms as part of building an interoperable HES. 639 640 An important characteristic of the event bus is that multiple events generated at the same time from a single application object must be delivered at the same time to any application Event bus 81894646 17 ISO/IEC CD 18012-2 IEC:2008 641 642 643 644 645 646 647 18 ISO/IEC JTC 1/SC 25/WG 1 N 1360 2008-12-17 object that has a binding to two or more of those concurrent events. The following diagram depicts an application described by a binding map between four application objects (A through D). For this example, assume that the events generated by Object A outputs o2 and o3 were produced at the same time (for example, concurrent sensor outputs in reaction to a change in the physical world). Object D inputs i1 and i3 are bound to those outputs from Object A, and must be delivered to Object D concurrently to maintain correct behaviour of the application. <<Application Object>> <<Application Object>> Object A Object B o1 o2 o3 o4 o1 o2 o3 <<Event Bus>> A 1 4 2 B 3 i1 i2 Object D i3 Output DataVarSet 1 <<Application Object>> i1 i2 i3 3 2 i4 Object C <<Application Object>> 648 Figure 4 – Event bus example 649 650 651 7 Home electronic system application interoperability taxonomy 652 7.1 653 654 655 The HES application interoperability taxonomy is shown in Figure 5Error! Reference source not found.. For purposes of the interoperability specification the HES domain is classified into the following categories: Classification 656 1. Application Domain 657 2. Functional Object 658 3. Application Object 659 4. Functional Actions 660 5. Property 661 6. Property Primitive Actions 81894646 18 ISO/IEC CD 18012-2 IEC:2008 19 ISO/IEC JTC 1/SC 25/WG 1 N 1360 2008-12-17 Application Domain Functional Object Application Object Property Primitive Action Functional Action 662 663 Figure 5 – Interoperable system taxonomy 664 665 666 667 668 669 670 Application Domains are specified in terms of Functional Objects, which repr esent logical grouping of some device functionality. Each Functional Object is specified as a collection of Application Objects (as well as, possibly, objects related to its configuration) that represent application atomic state and functions. This specifi es the semantics of the applications and the components of the Functional Object. Objects in turn are specified as collection of properties, which define the content representation for storage, transport (syntax), and interaction purposes. 671 672 673 674 675 676 677 678 The classification of the HES components into Functional Objects, Application Objects and Properties, as logical entities in the taxonomy, is designed to allow for separation of the syntactic and semantic aspects of the interoperability. Functional Objects model controller entities (hardware or logical devices) in a home electronic system. Application Objects model sensor and actuator entities. Properties are used to specify the syntax, i.e. the data representation of the object information components. This allows for a direct mapping (data type translation and matching) between properties as specified in this International Standard and those specified in other specifications through the use of IWFs. 679 680 681 682 683 684 685 686 687 Objects, in general, represent the semantics of the application, i.e. they represent behaviour, which is exhibited through the interaction with other objects by invoking primitive actions on the properties. The use of both Functional Objects and Operational Objects allows the interoperability, through translation in the IWF, to cater for both variable-oriented and deviceoriented HES specifications. The separation between the semantics (object level) and the syntactic representation of the data (property) allows for flexibility in the definition of the interoperability IWFs. In the simplest case, Application Objects can be used to present a single network variable, and allow the modification of the processing of its value for representation into the Interoperability Framework space. 688 689 690 691 692 As an example, a Functional Object named TemperatureSensor may have an Application Object called RoomTemperature of <Temperature> data type, which is measured in degree celsius (semantic). The Appplication Object in the interoperability specif ication is defined as having a Property called "TempValue", which is of type "Float" that follows the IEC 60559 specification (syntax). 693 Detailed definitions of the framework components are given in the following subclauses. 81894646 19 ISO/IEC CD 18012-2 IEC:2008 20 ISO/IEC JTC 1/SC 25/WG 1 N 1360 2008-12-17 694 7.2 Application domain 695 7.2.1 696 697 698 An application domain serves as context-setting description. It groups together functions that interact in semantically related applications. A non-exhaustive list of application domains is given in 7.2.2. 699 700 701 Application domains are enumerated entities. As part of the taxonomy they can be us ed in word form or represented by the corresponding enumerated value, to form part of the object name for application binding. 702 7.2.2 703 The application domain list provided in Table 1 . The list is not exhaustive.. Definition Application domain list Table 1 – Application domain list 704 Application Domain Name Description 1 General This domain groups together functions that provide generic services to other entities in a home electronic system. Examples include Time/Date, Location, User Interface, etc. 2 Audio/Video This domain groups together functions related to the control of the distribution and consumption of audio and/or visual content in a home elect ronic system. Examples include Audio Amplifier, Tuner, Video-display, Speaker, etc. 3 Lighting This domain groups together functions related to the lighting environment control in a home electronic system. Examples include Light, Light -sensor, Light-switch. etc. 4 Communications This domain groups together functions related to the control of the communication session set up and distribution/transfer around a home electronic system. Examples include an Intercom, DataPoint, etc. 5 Heating This domain groups together functions related to the control of heating sub system, or parts thereof, of a home electronic system. Examples of functions include RoomController or ZoneController, TemperatureSensor, etc. 6 Ventilation This domain groups together functions related to the control of environmental sub-systems (air-conditioning and ventilation). Examples include TemperatureSensor, HumiditySensor, VentilationZoneController, etc. 7 Utility This domain groups together functions related to the management and/or monitoring of utilities such as electricity, water, gas, heating. Examples include UtilityMeter, LoadController, etc. 8 Security This domain groups together functions related to the management and/or monitoring of the security sub-system. Examples include SecuritySensor, WindowSensor, SecurityZoneController, etc. 9 Appliance This domain groups together functions related to the management and/or monitoring of domestic appliances. Examples include Washer, TumbleDryer, Cooker, Oven, … 705 706 7.3 Functional object 707 7.3.1 708 709 710 711 712 713 A functional object is a collection of objects and actions on objects that models a particular application function within the application domain. An instantiation of a functional o bject is a logical device, i.e. a software entity that provides some specific standardised control and/or information functionality in the HES in which it is installed. Functional objects model controller entities (hardware or logical devices) in a home electronic system. Functional objects form the basis of the classification in this International Standard. 714 7.3.2 715 716 717 A functional object has its properties and functional actions. Functional actions are specified as (possibly aggregate) actions on individual objects that lead to a functional operation of the logical device in the system. For example, scene setting requires a series of (inter)actions Definition Functional object structure 81894646 20 ISO/IEC CD 18012-2 IEC:2008 21 ISO/IEC JTC 1/SC 25/WG 1 N 1360 2008-12-17 718 719 720 721 722 723 724 with several sensor and actuator objects (lighting, communication, AV, etc.); a scene setting controller can be modelled as a functional object that has a functional action composed of actions on individual operational objects modelling devices as described abov e. A functional action has contextual meaning, and is specified together with the functional object. The invocation of a functional action leads to a specified series of invocation of component (operative) objects, and results in moving the operational obj ects into a specified, and verified, end state, where applicable. 725 726 727 728 A functional object describes the application layer interface, including input and output operation objects, configuration properties, default and power -up behaviour required on devices for specific commonly used control functions. An instance of a functional o bject is implemented in a physical device as (part of) the application. 729 730 731 732 733 An instance of a functional object is a logical device locally addressed via a functional object identifier. The functional object identifier (FOID) value can be a result of local enumeration, or a global FOID can be used. In any case the mapping between the FOID and the service access point serving this instance of the functional o bject is maintained by the application support layer. 734 7.3.3 735 736 737 738 Functional action allows for modelling of functionally complex behaviour within a functional object (i.e. in a specific context). Functional actions are enumerated entities within a functional object, and have meaning only within that object. An example of a functional action is <SwitchOn> within a LightController functional o bject. 739 740 741 Invoking a functional action means to invoke at least one primitive action on at least one of the properties in at least one operational object within the same functional profile, local or remote. 742 7.3.4 743 744 The functional object list consists of all defined functional classes for each application domain.. 745 7.4 746 7.4.1 747 748 749 750 751 Application objects are self-describing actionable, locally addressable, entities that contain one or more properties. An application object models, through its properties and primitive actions, the most generic behaviour of sensors and actuators in a home electronic system. An object contains basic descriptive properties, configuration properties, and operational properties. 752 7.4.2 753 754 755 Application Objects are collections of one or more properties. Each p roperty is an internally structured self-describing entity that encapsulates some information source (in sensors) or control (in actuators) variable. 756 757 Every application object has a self-description property and an object instance identifier property. 758 759 The object instance identifier can be instantiated dynamically, or seeded with a (defa ult) value specified in the published generic application model. 760 7.4.3 761 762 763 A Property is an atomic actionable structured data entit y that contains a single variable. The structure of a property is given in Table 2 below. They are presented in a simple data format, and are characterised by a data type, methods, and information flow direction (in, out, in/out). 764 The property methods defined implicitly are given in 7.4.6. Functional action Functional object list Application Object Definition Application Object Structure Property 81894646 21 ISO/IEC CD 18012-2 IEC:2008 22 ISO/IEC JTC 1/SC 25/WG 1 N 1360 2008-12-17 Table 2 – Property structure 765 Descrip tion Notation Property_Name Character String Property_Action_List Array of String Coding Property Property Data Type [Array of] Primitives from clause 7.4.4 Number of elements Unsigned Integer Value Value Default Value Application Semantics Value Range Property Unit Type Support (Mandatory / Optional / Conditional) Access (In / Out / IO ), 766 7.4.4 Property data type primitives 767 Character string (ISO/IEC 646) 768 Boolean 769 Integer (Integer8, Integer16, Integer32) 770 Unsigned integer (UInt8, Uint16, Uint32,Uint64) 771 Float (IEC 60559) 772 Date 773 Time (and Date/Time) 774 775 7.4.5 Property unit type primitives 776 These are semantic data units, for example degree Kelvin for temperature semantic data type. 777 These are grouped into basic data units and derived data units. 778 779 780 The basic data units are given in Table 3 below, and outlined in the XML schema file in Annex B.2: Base Types. Using this set of unit type primitives, any physical unit type can be derived. Derived data units will be listed and maintained in the same way the lexicon registry is maintained. Table 3 – Property unit type primitives 781 Property unit type Unit Length Meter Time Second Temperature Kelvin Mass Kilogram ElectricCurrent Ampere SubstanceAmount Mole LuminousIntensity Candela 782 783 7.4.6 Property action primitives 784 The actions allowed on the properties are: 785 GET: the value of the property being queried is returned. 786 SET: the value of the property being accessed is set to the given value. 787 EVENT_REPORT: the value of the property is reported to the subscribed entities. 81894646 22 ISO/IEC CD 18012-2 IEC:2008 23 ISO/IEC JTC 1/SC 25/WG 1 N 1360 2008-12-17 788 789 790 7.4.7 791 792 793 Objects can be classified into two groups: application objects and application management objects (configuration). Only the application objects are addressed by this In ternational Standard. 794 The Object Schema specifies the type of object. 795 8 796 8.1 797 798 799 800 801 802 The object schema design reflects the interaction model described in Clause 6: Interaction model, and emphasises describing the input and output events of objects. This includes the names, the data types, and optionally other characteristics about the inputs and outputs. These other characteristics are an open-ended set that will take the form of metadata elements that extend the input and output elements in the schema, an example of which might be maximum latency requirements on inputs. 803 804 805 806 807 The object schema must also reference the executable logic that implements the object’s functions. This reference is implementation-independent, and needs to be able to support any execution platform and language. The purpose is to enable an interoperability framework implementation to invoke any executable logic for an object, and present the input events that are pending (i.e., that have arrived for the object from the event bus). 808 809 810 There can also be additional, global metadata associated with an object. This might be for configuration parameters affecting the behaviour of the object (versus the individual input or output metadata described above). 811 8.2 812 8.2.1 813 814 815 816 817 There are three types of primitive object types in the schema: sensors, actuators, and control objects. Although these names imply very different types of objects from a conceptual perspective, the functional difference between the three object types in this schema is simply that sensors only have event outputs, actuators only have event inputs, and control objects have both event inputs and outputs. 818 819 820 821 There can be other input and output settings for any of these objects , such as the ability to set or change metadata characteristics to adjust the object configuration, but these would be separate from the asynchronous application event flows. For example, object settings could be managed through a synchronous call interfac e to the object. 822 823 824 Using these three basic building blocks of sensors, actuators, and control objects with asynchronous input and output events, connected together across an event bus, it is possible to construct a description of any automation application o r function. 825 826 827 828 829 830 831 Events do not contain any explicit identification of the type of object that generated the event. This means that any object with an output can be bound to any object with an input. Importantly, it means that control objects can provide inputs to other control objects (i.e., inputs do not have to come from sensor objects). This provides the basis for creating subautomation components in an application description, allowing groups of sensors, actuators, and control objects to appear conceptually as sensor inputs or actuator outputs to higher level control objects in a complex application. 832 833 834 835 836 The intention is that specific types of sensor, actuator, and control object schemas will be derived from the base object schemas, and those specific types can then be further derived into vendor-specific variations if needed. For example, a temperature sensor object schema can be derived from the base sensor schema, defining a single output of type Fahrenheit degrees. A vendor might then further refine the tempe rature sensor schema with vendor- SUBSCRIBE: the operational object updates the list of subscribed entities (objects) for the given/required property. If the list is empty the property changes are not reported. Object types Object schema Overview Base objects General 81894646 23 ISO/IEC CD 18012-2 IEC:2008 24 ISO/IEC JTC 1/SC 25/WG 1 N 1360 2008-12-17 837 838 specific characteristics such as additional features. These can be described by defining global configuration properties or perhaps additional outputs. 839 The Base Object XML schema definitions are shown in Annex B. 840 8.2.2 841 842 843 844 Control objects have any number of inputs and outputs. Conceptually, they are the objects that will contain the core functions of an application: the decision logic, the control loops, etc. This subclause will describe the content of the base control schema. The following subclauses discuss the sensor and actuator schemas. 845 846 847 The block diagram below shows the basic structure of the control object schema. The commons section is shared between the sensor, actuator, and control object schemas. Control objects controlModelTypes controlModel commons inputs outputs codeBase properties description input output property codeType dataPoint QoIRequirement <<complexType>> <<complexType>> eventProperties eventProperties dataPoint QoI <<complexType>> <<complexType>> eventProperties eventProperties codeLocation idlLocation 848 849 Figure 6 – Object schema structure 850 851 852 853 The commons section describes the basic structure of all the objects: inputs, outputs, global object properties (such as configuration settings, etc.), and a reference to the executable code that implements the logic of the control object. The commons section schema is listed in Annex B.1: Commons. 854 The inputs section of the schema is comprised of one or more input elements: 855 856 857 858 859 860 861 862 <xsd:element name="input"> <xsd:complexType> <xsd:sequence> <xsd:element ref="dataPoint"/> <xsd:element ref="QoIRequirement" minOccurs="0"/> </xsd:sequence> </xsd:complexType> </xsd:element> 863 864 865 866 867 It consists of a dataPoint element, which decribes the data type of an input event, and a QoIRequirement or Quality of Information Requirement element, which is used to define other characteristics of the input events, examples of which might be precision, frequency, etc. These are considered metadata that describe things about the input event, rather than describing the event itself. 868 869 870 871 The outputs section is similar in structure and content, with the exception that ins tead of having QoIRequirement metadata, it refers to QoI or Quality of Information metadata, which define other characteristics of the output events, and are suitable for matching or validation against input QoIRequirements. 872 873 Both the QoIRequirement and the QoI metadata are open-ended sets of information, and will be expanded as needed to support different application requirements. 81894646 24 ISO/IEC CD 18012-2 IEC:2008 874 875 876 877 878 879 880 881 882 883 25 ISO/IEC JTC 1/SC 25/WG 1 N 1360 2008-12-17 The codeBase section of the schema is : <xsd:complexType name="codeBase"> <xsd:sequence> <xsd:element name="description" type="xsd:string" minOccurs="0"/> <xsd:element name="codeType" type="codebaseTypes" default="JAVA"/> <xsd:element name="codeLocation" type="xsd:string" minOccurs="1"/> <xsd:element name="codeProperties" type="properties" minOccurs="0"/> <xsd:element name="idlLocation" type="xsd:string" minOccurs="0"/> </xsd:sequence> </xsd:complexType> 884 885 886 887 888 889 890 891 It provides the elements needed to define an unambiguous reference to the executable software that implements the control object’s application logic, such that the interoperability framework runtime system can invoke the executable software . The intention is that any type of executable environment can be referenced, such as C runtime code , Java code, rules engines, etc. The interoperability framework implementation would need to include appropriate language bindings for whatever runtime environments are supported (for example, the implementation might need to use the correct stack structures for invoking C executable modules in memory). 892 893 894 The codeLocation element would typically be a Uniform Resource Locator (URL) reference to the executable logic. This could be a dynamically referenced library routine or other type of runtime code reference. 895 896 897 898 The idlLocation element can be used to reference an optional Interface Description Language (IDL) description if needed as part of the implementation. This would typically be used to provide additional details required by the implementation to support language binding mismatches. 899 The properties section of the schema is comprised of one or more property elements: 900 901 902 903 904 905 <xsd:element name="property"> <xsd:complexType> <xsd:attribute name="name" type="xsd:string"/> <xsd:attribute name="value" type="xsd:string"/> </xsd:complexType> </xsd:element> 906 907 908 It can be used to to define properties that apply to the control object in general, rather than to individual input or output events. A property element consists of a name/value pair. This could include configuration parameters, calibration information, version tags, etc. 909 8.2.3 910 911 Sensor objects are based on the commons section, but only have definitions of the outputs, codeBase, and properties components of the commons. 912 8.2.4 913 914 Actuator objects are based on the commons section, but only have definitions of the inputs, codeBase, and properties components of the commons. 915 8.3 916 917 918 919 920 The purpose of the data type primitives in this International Standard is to support implementation-level interoperability across dissimilar automation systems that are compatible at a semantic level. In other words, to support interoperability of systems that perform the same application functions, but which are implemented differently in ter ms of communication mechanisms, data description methods, and other syntactic details. 921 922 923 924 925 926 The key requirement is that each property unit type listed in 7.4.5: Property unit type primitives must map unambiguously to a single data type primitive in 7.4.4: Property data type primitives. This provides an unambiguous mapping to the underlying execution environment (for example, a C language environment), and allows unambiguous conversion between property unit types in different automation systems (for example, one system may have a temperature sensor that outputs Fahrenheit degrees in floating point representation in C, but 81894646 25 Sensor objects Actuator objects Data type primitives ISO/IEC CD 18012-2 IEC:2008 26 ISO/IEC JTC 1/SC 25/WG 1 N 1360 2008-12-17 927 928 it may need to interoperate with a control object that expects a Celsius degree input in integer representation in Java). 929 930 931 932 933 934 935 936 The baseTypes schema in Annex B.2: Base Types defines the property unit type primitives. Using these physical property unit type primitives, any physical unit can be derived (Annex C.1: Derived Types (examples) contains examples of such derivative definitions). Because an implementation of this International Standard must have an unambiguous mapping from each unit type primitive (i.e., Base Type) to a single data type primitive in the underlying implementation programming language (e.g., integer32), the runtime representation for all unit types (base or derived) is well-defined, and can therefore support automatic conversion between unit type variations (such as between Fahrenheit and Celsius). 937 9 938 9.1 939 940 941 942 The binding map defines the event input/output connections between the sensor, ac tuator, and control object input and output events of an application. A binding between two application objects will name the two objects involved, and also the specific input and output events that are being connected. 943 An example of a portion of a Binding Map is 944 945 946 947 948 949 950 951 952 953 954 955 956 957 … 958 959 960 961 In this example, output o1 from control object cm02 is bound to input i1 of control object cm01 in the first clause. The next clause binds output o1 of control object cm05 to input i1 of actuator object am01, and finally the last clause binds outputs o1 and o2 of sensor object sm02 to inputs i1 and i2 of control object cm06, repectively. 962 963 964 965 966 967 968 969 970 971 972 973 As shown in this example section, it is the individual input and output events that are being bound together over the event bus, and not the sensor, actuator, and control objects. In other words, the binding is at the individual input/output event granularity, and not at the object granularity. This provides a great deal of detail to the interoperability runtime implementation, allowing such optimisations as dynamic message payload construction on the event bus communication links between interoperability domain interfaces (IDIs). Depending on the specific subset of events that need to move from one IDI to another across the event bus, the interoperability framework runtime implementation can assemble message payloads that include all the events that must be transported across the event b us to another device implementing the interoperability domain at a specific point in time (rather than transporting all output events from a sensor, actuator, or control object across the event bus communication links). Application binding map schema Overview <binding source="cm02" target="cm01"> <iomapping from="o1" to="i1"/> </binding> <binding source="cm05" target="am01"> <iomapping from="o1" to="i1"/> </binding> <binding source="sm02" target="cm06"> <iomapping from="o1" to="i1"/> <iomapping from="o2" to="i2"/> </binding> … 81894646 26 ISO/IEC CD 18012-2 IEC:2008 27 ISO/IEC JTC 1/SC 25/WG 1 N 1360 2008-12-17 Annex A (informative) 974 975 976 977 An interoperability application specification example 978 A.1 Lighting application 979 980 NOTE: This example has been prepared by Dr. Young-Sung Son of Korea, and will be inserted when complete. 981 982 This example is taken from ISO/IEC/TR 15067-2 Information technology - Home Electronic Systems (HES) application model - Part 2: Lighting model for HES. 983 A.2 984 985 986 987 988 The procedure followed in this example consists in the definition of a generic lighting subsystem application model (simple case). The components of the system are installed on two different network systems (LonWorks) and System B (UPnP). The components of the framework are exemplified in (a) logical interoperable system, (b) respective functional/device profiles in each system, and (c) examples of the IWFs for each case. Procedure Interoperability Domain Lighting Application Object 1 Object 2 event/data logical bus Standardized event passing interface for “Interworking functions” LonWorks IWF UPnP IWF Object 1 LightSwtich LonWorks LightSwtich Object 2 LightLamp UPnP Light LonWorks Network UPnP Network 989 Figure A.1 – Lighting application 990 991 992 A.3 Generic lighting subsystem application model 993 A.3.1 994 995 The examples will include partial XML schemas for the individual components, and exemplify the interoperability lexicon as outlined in this document. 996 A.3.1.1 997 998 LightSwitch object represents a switch device that includes a functional object, BinarySwitch. BinarySwitch object has two operational objects, SetSwitchValue and GetSwitchValue. Functional classes LightSwitch <function> 81894646 27 ISO/IEC CD 18012-2 IEC:2008 28 ISO/IEC JTC 1/SC 25/WG 1 N 1360 2008-12-17 <functionType>BinarySwitch</functionType> <actionList> <action> <actionId>SetSwitchValue</actionId> <parameterList> <parameter> <parameterId>SwitchValue</parameterId> <dataType>boolean</dataType> <direction>in</direction> </parameter> </parameterList> </action> <action> <actionId>GetSwitchValue</actionId> <parameterList> <parameter> <parameterId>SwitchValue</parameterId> <dataType>boolean</dataType> <direction>out</direction> </parameter> </parameterList> </action> <actionList> <eventList> <event> <eventId>SwitchValue</eventId> <dataType>boolean</dataType> </event> </eventList> </function> Figure A.2 – LightSwitch Object 999 1000 81894646 28 ISO/IEC CD 18012-2 IEC:2008 29 ISO/IEC JTC 1/SC 25/WG 1 N 1360 2008-12-17 1001 A.3.1.2 LightLamp 1002 1003 LightLamp object represents a lamp device that includes a functional object, PowerSwitch. PowerSwitch object has two operational objects, SetSwitchValue and GetSwitchValue. <function> <functionType>PowerSwitch</functionType> <actionList> <action> <actionId>SetSwitchValue</actionId> <parameterList> <parameter> <parameterId>SwitchValue</parameterId> <dataType>boolean</dataType> <direction>in</direction> </parameter> </parameterList> </action> <action> <actionId>GetSwitchValue</actionId> <parameterList> <parameter> <parameterId>SwitchValue</parameterId> <dataType>boolean</dataType> <direction>out</direction> </parameter> </parameterList> </action> <actionList> <eventList> <event> <eventId>SwitchValue</eventId> <dataType>boolean</dataType> </event> </eventList> 81894646 29 ISO/IEC CD 18012-2 IEC:2008 30 ISO/IEC JTC 1/SC 25/WG 1 N 1360 2008-12-17 </function> Figure A.3 – LightLamp Object 1004 1005 1006 A.4 LonWorks 1007 A.4.1 1008 1009 1010 1011 LonWorks LightSwitch device has Switch Object type 3200 that include 4 SNVT (Standard Network Variable Type). Especially, nviLampValue and nvoLampValueFb are SNVT_switch as Mandatory Network Variables. nvoRunHours and nvoEnergyCnt are Optional Network Variables and not used for interoperable application. LonWorks: LightSwitch functional profile S witch Object ty pe 3200 n viLampValue S NVT_switch M a ndatory Ne twork Variables Optional Ne twork Variables n voLampValueFb S NVT_switch n voR unHours S NVT_elapsed_tm n voEnergyCnt S NVT_elec_kwh Con figuration P r operties 1012 Figure A.4 – LonWorks LightSwitch Device (Switch Object 3200) 1013 1014 LonWorks LonWorks-IOP interworking function 1015 A.4.2 1016 1017 1018 1019 1020 1021 The interworking function system has several functions. IOP system also translates control messages because a device in a middleware network understands only its middleware dependent message. The IOP system translates the control message to an standard lighting application model event flow between two different middleware networks from the point of view of the message translation. The message translation between the LonWorks application interface and the standard lighting applicatio n model interface is done in the IWF. 1022 1023 1024 1025 1026 LonWorks IOP system has two middleware stacks as LonWorks PLC middleware and IOP middleware. LonWorks PLC middleware built on LonTalk manages network variables. In order to control LonWorks Devices, LonWorks PLC middle ware generate network variables dynamically. IOP middleware communicates the interoperable system with standard lighting application model event passing on the event bus . 81894646 30 ISO/IEC CD 18012-2 IEC:2008 31 binding ISO/IEC JTC 1/SC 25/WG 1 N 1360 2008-12-17 IWF Interoperable System IWF Dynamic NV ge nerator Global Dispatcher Device Manager Application Func tion Ma pper Event Handler Interoperable System Event DB Local Dispatcher Local Middle ware Ne twork Manage me nt NM layer NM layer TCP/IP LonTalk Ethernet Lig hting Application or LonTalk Lo n Switch De vice 1027 NM transaction PLC Interoperable Protocol System A - Lo nWorks IP ne twork Figure A.5 – LonWorks InterWorking Function System 1028 1029 1030 1031 1032 1033 The following picture describes how to map LonWorks device function to the generic device object. Switch object type 3200’s mandatory network variables are mapped to the generic device objects. nviLampValue SNVT_switch is translated to SetSwitchValue and nvoLampValueFb SNVT_switch is mapped to GetSwitchValue. S witch Object ty pe 3200 n viLampValue S NVT_switch M a ndatory Ne twork Variables Optional Ne twork Variables n voLampValueFb S NVT_switch n voR unHours S NVT_elapsed_tm n voEnergyCnt S NVT_elec_kwh Con figuration P r operties <function> <functionType>BinarySwitch</functionType> <actionList> <action> <actionId>SetSwitchValue</actionId> <parameterList> <parameter> <parameterId>SwitchValue</parameterId> <dataType>boolean</dataType> <direction>in</direction> </parameter> </parameterList> </action> <action> <actionId>GetSwitchValue</actionId> <parameterList> <parameter> <parameterId>SwitchValue</parameterId> <dataType>boolean</dataType> <direction>out</direction> </parameter> </parameterList> </action> <actionList> <eventList> <event> <eventId>SwitchValue</eventId> <dataType>boolean</dataType> </event> </eventList> </function> 1034 1035 Figure A.6 – Functional Mapping LonWorks LightSwitch Device to the Generic LightSwitch 1036 1037 1038 1039 1040 1041 1042 For these mapping, the predefined function mapping table is used. LonWorks function mapping table consists of Device Mapping Table, Function Mapping Table, Action/Event Mapping Table, Parameter Mapping Table. Each Table has two columns, global valu e for generic object and local value for LonWork device information. Whenever LonWorks devices are configured by LonTalk, LonWorks InterWorking Function System searches this function mapping table and recompose the generic object. 81894646 31 ISO/IEC CD 18012-2 IEC:2008 32 ISO/IEC JTC 1/SC 25/WG 1 N 1360 2008-12-17 Property Field Semantic Example Index Generic Device index 0 Virtual/Physical GD or Local Physical Device Local GID Global Generic Device ID LonWorks, NID NID Local (Middleware) ID 0x112233445566 GDType Device Type of GD LIGHTSWITCH LDType Device Type of Local 0x05 0x01 Local address LonWare DB index 1 Function List Available Function List Action List Available Action List De vice Map. Tbl. Function Map. Tbl. Device Mapping Data Structure Action List F1 F2,… … Action/Event Map. Tbl. Global Local Global Local Global LIGHTSW 0x05 0x01 LIGHTSW 1 Update_NV, NV_idx Router 0x01 0x01 DIMMING 2 SetSwitch Value … … … … Dimming Update_NV, NV_idx … … Local Parameter Map. Tbl. Global Local SWITCH_ON 200,1 SWITCH_OFF 0,0 … … Function Mapper 1043 Figure A.7 – LonWorks Function Mapping Table 1044 1045 1046 1047 A.5 UPnP 1048 A.5.1 1049 1050 This is a description of UPnP LightLamp device. UPnP LightLamp is described as a BinaryLight service that includes a DimmingService and SwitchPower. UPnP: LightLamp functional profile <?xml version="1.0" encoding="utf-8" ?> <root xmlns="urn:schemas-upnp-org:device-1-0"> <specVersion> <major>1</major> <minor>0</minor> </specVersion> <device> <deviceType>urn:schemas-upnp-org:device:BinaryLight:1</deviceType> <friendlyName>Light (UPnP)</friendlyName> <manufacturer>Intel Corporation</manufacturer> <manufacturerURL>http://www.intel.com</manufacturerURL> 81894646 32 ISO/IEC CD 18012-2 IEC:2008 33 ISO/IEC JTC 1/SC 25/WG 1 N 1360 2008-12-17 <modelDescription>Software Emulated Light Bulb</modelDescription> <modelName>Intel CLR Emulated Light Bulb</modelName> <modelNumber>XPC-L1</modelNumber> <modelURL>http://www.intel.com/xpc</modelURL> <UDN>uuid:55f52e1b-62a7-4e23-841b-283bca65a3fb</UDN> <serviceList> <service> <serviceType>urn:schemas-upnporg:service:DimmingService:1</serviceType> <serviceId>urn:upnp-org:serviceId:DimmingService.0001</serviceId> <SCPDURL>_DimmingService.0001_scpd.xml</SCPDURL> <controlURL>_DimmingService.0001_control</controlURL> <eventSubURL>_DimmingService.0001_event</eventSubURL> </service> <service> <serviceType>urn:schemas-upnp-org:service:SwitchPower:1</serviceType> <serviceId>urn:upnp-org:serviceId:SwitchPower.0001</serviceId> <SCPDURL>_SwitchPower.0001_scpd.xml</SCPDURL> <controlURL>_SwitchPower.0001_control</controlURL> <eventSubURL>_SwitchPower.0001_event</eventSubURL> </service> </serviceList> </device> </root> Figure A.8 – UPnP LightLamp Device 1051 1052 UPnP UPnP-IOP interworking function 1053 A.5.2 1054 1055 1056 1057 UPnP IOP system has two middleware stacks, UPnP middleware and IOP middleware, on top of TCP/IP. UPnP middleware built on SSDP/GENA/SOAP manages generic control point. Through generic control point, UPnP middleware can control UPnP device. IOP middleware communicates the interoperable system with interoperable protocols. 1058 81894646 33 ISO/IEC CD 18012-2 IEC:2008 34 Ge neric Co ntrol Point Application ISO/IEC JTC 1/SC 25/WG 1 N 1360 2008-12-17 IWF Interoperable System IWF Global Dispatcher Device Manager Function Mapper Event Handler Event DB SSDP/GENA/SOAP SSDP/GENA/SOAP Interoperable System Local Dispatcher Local Middleware Network Management TCP/IP TCP/IP SSDP GENA SOAP Ethernet UPnP Light De vice 1059 Ethernet UPnP Protocol IP ne twork Lig hting Application Interoperable Protocol System B - UPnP IP ne twork Figure A.9 – UPnP InterWorking Function System 1060 1061 1062 1063 1064 1065 The following picture describes how to map a UPnP device description to the generic device object. Light(UPnP) device has two services, DimmingServic:1 and Switc hPower:1. But, SwitchPower is mapped to SetSwitchValue and GetSwitchValue of the generic LightLamp object. <?xml version="1.0" encoding="utf-8" ?> <root xmlns="urn:schemas-upnp-org:device-1-0"> <specVersion> <major>1</major> <minor>0</minor> </specVersion> <device> <deviceType>urn:schemas-upnp-org:device:BinaryLight:1</deviceType> <friendlyName>Light (UPnP)</friendlyName> <manufacturer>Intel Corporation</manufacturer> <manufacturerURL>http://www.intel.com</manufacturerURL> <modelDescription>Software Emulated Light Bulb</modelDescription> <modelName>Intel CLR Emulated Light Bulb</modelName> <modelNumber>XPC-L1</modelNumber> <modelURL>http://www.intel.com/xpc</modelURL> <UDN>uuid:55f52e1b-62a7-4e23-841b-283bca65a3fb </UDN> <serviceList> <service> <serviceType>urn:schemas-upnp-org:service:DimmingService:1</serviceType> <serviceId>urn:upnp-org:serviceId:DimmingService.0001</serviceId> <SCPDURL>_DimmingService.0001_scpd.xml</SCPDURL> <controlURL>_DimmingService.0001_control</controlURL> <eventSubURL>_DimmingService.0001_event</eventSubURL> </service> <service> <serviceType>urn:schemas-upnp-org:service:SwitchPower:1</serviceType> <serviceId>urn:upnp-org:serviceId:SwitchPower.0001</serviceId> <SCPDURL>_SwitchPower.0001_scpd.xml</SCPDURL> <controlURL>_SwitchPower.0001_control</controlURL> <eventSubURL>_SwitchPower.0001_event</eventSubURL> </service> </serviceList> </device> </root> <function> <functionType>PowerSwitch</functionType> <actionList> <action> <actionId>SetSwitchValue</actionId> <parameterList> <parameter> <parameterId>SwitchValue</parameterId> <dataType>boolean</dataType> <direction>in</direction> </parameter> </parameterList> </action> <action> <actionId>GetSwitchValue</actionId> <parameterList> <parameter> <parameterId>SwitchValue</parameterId> <dataType>boolean</dataType> <direction>out</direction> </parameter> </parameterList> </action> <actionList> <eventList> <event> <eventId>SwitchValue</eventId> <dataType>boolean</dataType> </event> </eventList> </function> 1066 1067 Figure A.10 – Functional Mapping UPnP LightLamp Device to the Generic LightLamp 1068 1069 1070 1071 1072 1073 UPnP function mapping table consists of Device Mapping Table, Function Mapping Table, Action/Event Mapping Table, Parameter Mapping Table. Each Table has two columns, global value for generic object and local value for UPnP device information. Whenever UPnP devices are detected by SSDP, UPnP InterWorking Function System searches this function mapping table and recompose the generic object. 81894646 34 ISO/IEC CD 18012-2 IEC:2008 35 ISO/IEC JTC 1/SC 25/WG 1 N 1360 2008-12-17 Property Field Semantic Example Index Generic Device index 0 Virtual/Physical GD or Local Physical Device Local GID Global ID UPnP, NID LID Local (Middleware) ID uuid:55f52e1b GDType Device Type of GD LIGHT LDType Device Type of Local Light Local address Device Description http://xxx.xx.x.x/light.xml Service List Service Table List Action List Action Table List De vice Map. Tbl. Function Map. Tbl. Global Local LIGHT uuid::sche… MS uuid::…. DIMMING … … … Global Local Device Mapping Data Structure Action List F1 F2,… … Action/Event Map. Tbl. Parameter Map. Tbl. Global Local Global Local Power settarget… SWITCH_ON 1 uuid Dimming xxaction… SWITCH_OFF 0 … … … … … SwitchPower uuid Function Mapper 1074 Figure A.11 – UPnP Function Mapping Table 1075 1076 1077 Interoperable System – Functional Model 1078 A.6 1079 1080 1081 1082 1083 1084 1085 1086 1087 Interoperable system has three tables, D evice Table, BindMap Table, EventBus Table. Device Table contains the information of generic device objects. These objects are registered by each IWF system through IOP protocols. BindMap Table is related to interoperable applications. Each interoperable application registers binding of two or more generic objects. Binding means connection from an output set of events in an operational object to an input set of events in an operational object. EventBus Table is used for managing event processing. Whenever device change its status, IWF system catches its behaviour and causes an event to EventBus Table of Interoperable System. In order to serialize multiple event process ing, Interoperable system uses EventQueue with FIFO style. 1088 81894646 35 ISO/IEC CD 18012-2 IEC:2008 36 ISO/IEC JTC 1/SC 25/WG 1 N 1360 2008-12-17 Device Table Interoperable System GD# Object ID Generic Device Type Device Object Action (out) 0 UPnP::LightLamp0 LightLamp Device Object Action (in) 1 LonWorks::LightSwitch0 LightSwitch Bind Map Table Bind Map Manager Lighting Application(101) LightLamp Object(0) Lighting Controller Object(3) LightSwitch Object(1) Appl# Controller Obj# Generic Device Obj# 101 3 0, 1 … Event Bus Table Event Bus Manager Obj# out action Obj# in action 1 LightSwitch. GetSwitchValue1 3 LightingController. SetSwitchValue1 3 LightingController. GetSwitchValue1 0 LightLamp. SetSwitchValue1 Event Queue 35 … Event Queue UPnP Light Event# Source Obj# Destination Obj# Type Value 35 1 0 LightSwitch.GetSwitchValue. SwtichValue, On LonWorks LightSwitch … 1089 Figure A.12 – Interoperable System Working Flow 1090 1091 81894646 36 ISO/IEC CD 18012-2 IEC:2008 37 ISO/IEC JTC 1/SC 25/WG 1 N 1360 2008-12-17 Annex B (normative) 1092 1093 1094 1095 Base Object Schema Definitions 1096 B.1 Commons 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 <?xml version="1.0" encoding="UTF-8"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://<namespace URL>" xmlns="http://<namespace URL>" elementFormDefault="qualified"> <xsd:include schemaLocation="baseTypes.xsd"/> <xsd:include schemaLocation="derivedTypes.xsd"/> <xsd:include schemaLocation="baseDefinition.xsd"/> <!-- Define 'Inputs' element type used by other schema such ControlModel --> <xsd:element name="QoIRequirement"> <xsd:complexType> <xsd:sequence> <xsd:element name="frequency" minOccurs="0"> <xsd:complexType> <xsd:complexContent> <xsd:extension base="Frequency"> <xsd:attribute name="selector" type="LogicExpression"/> </xsd:extension> </xsd:complexContent> </xsd:complexType> </xsd:element> <xsd:element name="maxUncertainty" type="xsd:decimal" minOccurs="0"/> <xsd:element name="dataPricesion" type="xsd:decimal" minOccurs="0"/> <xsd:element name="dataAccuracy" type="xsd:decimal" minOccurs="0"/> <xsd:element name="low" type="xsd:decimal" minOccurs="0"/> <xsd:element name="high" type="xsd:decimal" minOccurs="0"/> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="QoI"> <xsd:complexType> <xsd:sequence> <xsd:element name="frequency" minOccurs="0"> <xsd:complexType> <xsd:complexContent> <xsd:extension base="Frequency"> <xsd:attribute name="selector" type="LogicExpression"/> </xsd:extension> </xsd:complexContent> </xsd:complexType> </xsd:element> <xsd:element name="maxUncertainty" type="xsd:decimal" minOccurs="0"/> <xsd:element name="dataPricesion" type="xsd:decimal" minOccurs="0"/> <xsd:element name="dataAccuracy" type="xsd:decimal" minOccurs="0"/> <xsd:element name="low" type="xsd:decimal" minOccurs="0"/> <xsd:element name="high" type="xsd:decimal" minOccurs="0"/> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="input"> <xsd:complexType> <xsd:sequence> <xsd:element ref="dataPoint"/> <xsd:element ref="QoIRequirement" minOccurs="0"/> </xsd:sequence> </xsd:complexType> </xsd:element> 81894646 37 ISO/IEC CD 18012-2 IEC:2008 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 38 ISO/IEC JTC 1/SC 25/WG 1 N 1360 2008-12-17 <xsd:element name="output"> <xsd:complexType> <xsd:sequence> <xsd:element ref="dataPoint"/> <xsd:element ref="QoI" minOccurs="0"/> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:complexType name="inputs"> <xsd:sequence maxOccurs="unbounded"> <xsd:element ref="input"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="outputs"> <xsd:sequence maxOccurs="unbounded"> <xsd:element ref="output"/> </xsd:sequence> </xsd:complexType> <xsd:element name="property"> <xsd:complexType> <xsd:attribute name="name" type="xsd:string"/> <xsd:attribute name="value" type="xsd:string"/> </xsd:complexType> </xsd:element> <xsd:complexType name="properties"> <xsd:sequence> <xsd:element ref="property" minOccurs="1" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="codeBase"> <xsd:sequence> <xsd:element name="description" type="xsd:string" minOccurs="0"/> <xsd:element name="codeType" type="codebaseTypes" default="JAVA"/> <xsd:element name="codeLocation" type="xsd:string" minOccurs="1"/> <xsd:element name="codeProperties" type="properties" minOccurs="0"/> <xsd:element name="idlLocation" type="xsd:string" minOccurs="0"/> </xsd:sequence> </xsd:complexType> </xsd:schema> 1203 B.2 Base Types 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 <?xml version="1.0" encoding="UTF-8"?> <xsd:schema elementFormDefault="qualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://<namespace URL>" targetNamespace="http://<namespace URL>"> <xsd:include schemaLocation="baseDefinition.xsd"/> <!-- 7 SI Base Quantities --> <xsd:complexType name="Length"> <xsd:complexContent> <xsd:extension base="AnalogPoint"> <xsd:attribute name="unit" fixed="meter"/> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="Time"> 81894646 38 ISO/IEC CD 18012-2 IEC:2008 39 ISO/IEC JTC 1/SC 25/WG 1 N 1360 2008-12-17 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 </xsd:schema> 1271 B.3 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 <?xml version="1.0" encoding="UTF-8"?> <xsd:schema elementFormDefault="qualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://<namespace URL>" targetNamespace="http://<namespace URL>"> <xsd:complexContent> <xsd:extension base="AnalogPoint"> <xsd:attribute name="unit" fixed="second"/> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="Mass"> <xsd:complexContent> <xsd:extension base="AnalogPoint"> <xsd:attribute name="unit" fixed="kg"/> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="Temperature"> <xsd:complexContent> <xsd:extension base="AnalogPoint"> <xsd:attribute name="unit" fixed="kelvin" use="required"/> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="ElectricCurrent"> <xsd:complexContent> <xsd:extension base="AnalogPoint"> <xsd:attribute name="unit" fixed="ampere"/> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="SubstanceAmount"> <xsd:complexContent> <xsd:extension base="AnalogPoint"> <xsd:attribute name="unit" fixed="mole"/> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="LuminousIntensity"> <xsd:complexContent> <xsd:extension base="AnalogPoint"> <xsd:attribute name="unit" fixed="candela"/> </xsd:extension> </xsd:complexContent> </xsd:complexType> Base Definitions <xsd:simpleType name="LogicExpression"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="EQT"/> <xsd:enumeration value="GTT"/> <xsd:enumeration value="GTE"/> <xsd:enumeration value="LTT"/> <xsd:enumeration value="LTE"/> </xsd:restriction> </xsd:simpleType> <xsd:complexType name="dataType"> 81894646 39 ISO/IEC CD 18012-2 IEC:2008 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 40 ISO/IEC JTC 1/SC 25/WG 1 N 1360 2008-12-17 <xsd:simpleContent> <xsd:extension base="xsd:anySimpleType"> <xsd:attribute name="dataType" type="defined_data_types"/> </xsd:extension> </xsd:simpleContent> </xsd:complexType> <xsd:simpleType name="codebaseTypes"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="C++"/> <xsd:enumeration value="JAVA"/> <xsd:enumeration value="XSL"/> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="SIUnit"> <xsd:restriction base="xsd:string"> <xsd:pattern value="((\([0-3]\))(\((\-)?\d{1}(/\d{1})?\)){9})|((\([4-9]\))(\(0\)){9})"/> <!-field #1 : emumeration 0= unit is described by filed #2-#10 1= unit is U/U where U is described by filed #2 -10 2= unit is log10(U) where U is described by filed #2-10 3= unit is log10(U/U) where U is described by filed #2 -10 4= unit is digital data, field #2-10 must be zero 5= arbitrary scale, field #2-10 must be zero 6-9= reserved field field field field field field field field field #2 : radian #3 : steradian #4 : meter #5 : kilogram #6 : second #7 : ampere #8 : kelvin #9 : mole #10: candela - angle - solid angle - length - mass - time - electric current - temperature - amount of substance - luminous intensity --> </xsd:restriction> </xsd:simpleType> <xsd:element name="SIUnit" type="SIUnit"/> <xsd:simpleType name="defined_data_types"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="FLOAT"/> <xsd:enumeration value="INT"/> <xsd:enumeration value="BOOLEAN"/> <xsd:enumeration value="STRING"/> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="SIMultiple"> <xsd:restriction base="xsd:token"> <xsd:enumeration value="exa"/> <xsd:enumeration value="peta"/> <xsd:enumeration value="tera"/> <xsd:enumeration value="giga"/> <xsd:enumeration value="mega"/> <xsd:enumeration value="kilo"/> <xsd:enumeration value="hecto"/> <xsd:enumeration value="deka"/> <xsd:enumeration value="deci"/> <xsd:enumeration value="centi"/> <xsd:enumeration value="milli"/> <xsd:enumeration value="micro"/> <xsd:enumeration value="nano"/> <xsd:enumeration value="pico"/> <xsd:enumeration value="femto"/> 81894646 40 ISO/IEC CD 18012-2 IEC:2008 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 41 ISO/IEC JTC 1/SC 25/WG 1 N 1360 2008-12-17 <xsd:enumeration value="atto"/> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="Multiple"> <xsd:restriction base="xsd:float"/> </xsd:simpleType> <xsd:complexType name="DataValue"> <xsd:simpleContent> <xsd:extension base="xsd:anySimpleType"/> </xsd:simpleContent> </xsd:complexType> <xsd:element name="dataValue" type="DataValue"/> <xsd:complexType name="DataVector"> <xsd:sequence> <xsd:element name="vlaue" minOccurs="2" maxOccurs="unbounded"> <xsd:complexType> <xsd:simpleContent> <xsd:extension base="xsd:anySimpleType"> <xsd:attribute name="id" type="xsd:long"/> </xsd:extension> </xsd:simpleContent> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> <xsd:element name="dataVector" type="DataVector"> <xsd:unique name="onDataValuePerID"> <xsd:selector xpath="dataVector/vlaue"/> <xsd:field xpath="@id"/> </xsd:unique> </xsd:element> <xsd:complexType name="DataUncertainty"> <xsd:simpleContent> <xsd:extension base="xsd:float"> <xsd:attribute name="interpretation" use="optional"> <xsd:simpleType> <xsd:restriction base="xsd:token"> <xsd:enumeration value="ISO_GUIDE"/> <xsd:enumeration value="CUSTOMER"/> </xsd:restriction> </xsd:simpleType> </xsd:attribute> <xsd:attribute name="coverageFactor" type="xsd:float" use="optional"/> <xsd:attribute name="customerFactor" type="xsd:float" use="optional"/> </xsd:extension> </xsd:simpleContent> </xsd:complexType> <xsd:complexType name="DataPoint" abstract="true"> <xsd:simpleContent> <xsd:extension base="xsd:string"> <xsd:attribute name="name" type="xsd:Name" use="optional"/> <xsd:attribute name="id" type="xsd:ID" use="optional"/> <xsd:attribute name="isVector" type="xsd:boolean" use="optional" default="false"/> </xsd:extension> </xsd:simpleContent> </xsd:complexType> <xsd:element name="dataPoint" type="DataPoint"/> <xsd:complexType name="PhysicalDataPoint"> <xsd:simpleContent> <xsd:extension base="DataPoint"> <xsd:attribute name="siunit" type="SIUnit" use="required"/> 81894646 41 ISO/IEC CD 18012-2 IEC:2008 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 42 ISO/IEC JTC 1/SC 25/WG 1 N 1360 2008-12-17 </xsd:extension> </xsd:simpleContent> </xsd:complexType> <!-- Define build-in datatype array, currently, they are not used anywhere --> <xsd:simpleType name="DecimalArray"> <xsd:list itemType="xsd:decimal"/> </xsd:simpleType> <xsd:simpleType name="IntegerArray"> <xsd:list itemType="xsd:integer"/> </xsd:simpleType> <xsd:simpleType name="ShortArray"> <xsd:list itemType="xsd:short"/> </xsd:simpleType> <xsd:simpleType name="ByteArray"> <xsd:list itemType="xsd:byte"/> </xsd:simpleType> <xsd:simpleType name="LongArray"> <xsd:list itemType="xsd:long"/> </xsd:simpleType> <xsd:simpleType name="FloatArray"> <xsd:list itemType="xsd:float"/> </xsd:simpleType> <xsd:simpleType name="DoubleArray"> <xsd:list itemType="xsd:double"/> </xsd:simpleType> <xsd:complexType name="LogicDataPoint" abstract="true"> <xsd:complexContent> <xsd:extension base="DataPoint"/> </xsd:complexContent> </xsd:complexType> <xsd:element name="logicDataPoint" type="LogicDataPoint"/> <xsd:complexType name="String"> <xsd:complexContent> <xsd:extension base="LogicDataPoint"> <xsd:sequence> <xsd:element name="value" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="Boolean"> <xsd:complexContent> <xsd:extension base="LogicDataPoint"> <xsd:sequence> <xsd:element name="value" type="xsd:boolean" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="Decimal"> <xsd:complexContent> <xsd:extension base="LogicDataPoint"> <xsd:sequence> 81894646 42 ISO/IEC CD 18012-2 IEC:2008 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 43 ISO/IEC JTC 1/SC 25/WG 1 N 1360 2008-12-17 <xsd:element name="value" type="xsd:decimal" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="Integer"> <xsd:complexContent> <xsd:extension base="LogicDataPoint"> <xsd:sequence> <xsd:element name="value" type="xsd:integer" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="Int"> <xsd:complexContent> <xsd:extension base="LogicDataPoint"> <xsd:sequence> <xsd:element name="value" type="xsd:int" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="Long"> <xsd:complexContent> <xsd:extension base="LogicDataPoint"> <xsd:sequence> <xsd:element name="value" type="xsd:long" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="Short"> <xsd:complexContent> <xsd:extension base="LogicDataPoint"> <xsd:sequence> <xsd:element name="value" type="xsd:short" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="Byte"> <xsd:complexContent> <xsd:extension base="LogicDataPoint"> <xsd:sequence> <xsd:element name="value" type="xsd:byte" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="Float"> <xsd:complexContent> <xsd:extension base="LogicDataPoint"> <xsd:sequence> 81894646 43 ISO/IEC CD 18012-2 IEC:2008 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 44 ISO/IEC JTC 1/SC 25/WG 1 N 1360 2008-12-17 <xsd:element name="value" type="xsd:float" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="Double"> <xsd:complexContent> <xsd:extension base="LogicDataPoint"> <xsd:sequence> <xsd:element name="value" type="xsd:double" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="AnyURI"> <xsd:complexContent> <xsd:extension base="LogicDataPoint"> <xsd:sequence> <xsd:element name="value" type="xsd:anyURI" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="DigitalPoint"> <xsd:complexContent> <xsd:extension base="PhysicalDataPoint"> <xsd:sequence> <xsd:element name="probability" minOccurs="0"> <xsd:simpleType> <xsd:restriction base="xsd:decimal"> <xsd:minInclusive value="0"/> <xsd:maxInclusive value="1"/> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="value" type="xsd:boolean" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="digitalPoint" type="DigitalPoint"/> <xsd:complexType name="AnalogPoint"> <xsd:complexContent> <xsd:extension base="PhysicalDataPoint"> <xsd:sequence> <xsd:element name="uncertainty" type="xsd:decimal" minOccurs="0"/> <xsd:element name="value" type="xsd:float" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> <xsd:attribute name="unitMultiple" use="optional"> <xsd:simpleType> <xsd:union> <xsd:simpleType> <xsd:restriction base="SIMultiple"/> </xsd:simpleType> <xsd:simpleType> <xsd:restriction base="Multiple"/> </xsd:simpleType> </xsd:union> </xsd:simpleType> </xsd:attribute> 81894646 44 ISO/IEC CD 18012-2 IEC:2008 45 ISO/IEC JTC 1/SC 25/WG 1 N 1360 2008-12-17 1628 1629 1630 1631 1632 1633 </xsd:schema> 1634 B.4 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 <?xml version="1.0" encoding="UTF-8"?> <xsd:schema elementFormDefault="qualified" attributeFormDefault="unqualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://<namespace URL>" targetNamespace="http://<namespace URL>"> <xsd:include schemaLocation="commons.xsd"/> <xsd:include schemaLocation="derivedTypes.xsd"/> <xsd:include schemaLocation="industryTypes.xsd"/> 1660 B.5 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 <?xml version="1.0" encoding="UTF-8"?> <xsd:schema elementFormDefault="qualified" attributeFormDefault="unqualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://<namespace URL>" targetNamespace="http://<namespace URL>"> <xsd:include schemaLocation="commons.xsd"/> <xsd:include schemaLocation="derivedTypes.xsd"/> <xsd:include schemaLocation="industryTypes.xsd"/> 1686 B.6 1687 1688 1689 <?xml version="1.0" encoding="UTF-8"?> <xsd:schema elementFormDefault="qualified" attributeFormDefault="unqualified" </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="AnalogPoint" type="AnalogPoint"/> Control Objects <xsd:element name="controlModel"> <xsd:complexType> <xsd:sequence> <xsd:element name="category" type="xsd:string" minOccurs="0"/> <xsd:element name="inputs" type="inputs" maxOccurs="unbounded"/> <xsd:element name="outputs" type="outputs" maxOccurs="unbounded"/> <xsd:element name="modelProperties" type="properties" minOccurs="0"/> <xsd:element name="codeBase" type="codeBase"/> </xsd:sequence> <xsd:attribute name="name" type="xsd:Name"/> <xsd:attribute name="id" type="xsd:ID"/> </xsd:complexType> </xsd:element> </xsd:schema> Sensor Objects <xsd:element name="sensorModel"> <xsd:complexType> <xsd:sequence> <xsd:element name="category" type="xsd:string" minOccurs="0"/> <xsd:element name="inputs" type="inputs" minOccurs="0" maxOccurs="unbounded"/> <xsd:element name="outputs" type="outputs" maxOccurs="unbounded"/> <xsd:element name="modelProperties" type="properties" minOccurs="0"/> <xsd:element name="codeBase" type="codeBase"/> </xsd:sequence> <xsd:attribute name="name" type="xsd:Name"/> <xsd:attribute name="id" type="xsd:ID"/> </xsd:complexType> </xsd:element> </xsd:schema> Actuator Objects 81894646 45 ISO/IEC CD 18012-2 IEC:2008 46 ISO/IEC JTC 1/SC 25/WG 1 N 1360 2008-12-17 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 </xsd:schema> 1712 B.7 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 <?xml version="1.0" encoding="UTF-8"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://<namespace URL>" targetNamespace="http://<namespace URL>"> <xsd:include schemaLocation="commons.xsd"/> <xsd:include schemaLocation="derivedTypes.xsd"/> <xsd:include schemaLocation="industryTypes.xsd"/> <xsd:element name="actuatorModel"> <xsd:complexType> <xsd:sequence> <xsd:element name="category" type="xsd:string" minOccurs="0"/> <xsd:element name="inputs" type="inputs" maxOccurs="unbounded"/> <xsd:element name="outputs" type="outputs" minOccurs="0" maxOccurs="unbounded"/> <xsd:element name="modelProperties" type="properties" minOccurs="0"/> <xsd:element name="codeBase" type="codeBase"/> </xsd:sequence> <xsd:attribute name="name" type="xsd:Name"/> <xsd:attribute name="id" type="xsd:ID"/> </xsd:complexType> </xsd:element> Application Binding Map <xsd:element name = "application"> <xsd:complexType> <xsd:sequence> <xsd:element ref = "models"/> <xsd:element ref="connections"/> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="models"> <xsd:complexType> <xsd:sequence> <xsd:element ref="model" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name = "model"> <xsd:complexType> <xsd:attribute name = "name" type = "xsd:string"/> <xsd:attribute name = "type" type = "modelType" default = "CM"/> <xsd:attribute name = "filename" type = "xsd:string"/> </xsd:complexType> </xsd:element> <xsd:element name="connections"> <xsd:complexType> <xsd:sequence> <xsd:element ref="connection" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name = "connection"> <xsd:complexType> <xsd:sequence> <xsd:element ref = "source" /> <xsd:element ref = "target"/> 81894646 46 ISO/IEC CD 18012-2 IEC:2008 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 47 ISO/IEC JTC 1/SC 25/WG 1 N 1360 2008-12-17 </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name = "source"> <xsd:complexType> <xsd:sequence> <xsd:element ref = "map"/> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name = "target"> <xsd:complexType> <xsd:sequence> <xsd:element ref = "map" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name = "map"> <xsd:complexType> <xsd:attribute name = "id" type = "xsd:string"/> <xsd:attribute name = "var" type = "xsd:string"/> </xsd:complexType> </xsd:element> <xsd:simpleType name="modelType"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="CM"/> <xsd:enumeration value="DA"/> </xsd:restriction> </xsd:simpleType> </xsd:schema> 81894646 47 ISO/IEC CD 18012-2 IEC:2008 48 ISO/IEC JTC 1/SC 25/WG 1 N 1360 2008-12-17 Annex C (informative) 1791 1792 1793 1794 Base Object Schema Extension Examples 1795 C.1 Derived Types (examples) 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 <?xml version="1.0" encoding="UTF-8"?> <xsd:schema elementFormDefault="qualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://<namespace URL>" targetNamespace="http://<namespace URL>"> <xsd:include schemaLocation="baseTypes.xsd"/> <!-The purpose of this document is to define the derived da ta types of iDACS XML Schema --> <!-- Some Mechnical Quantities --> <xsd:complexType name="TranslationalSpeed"> <xsd:complexContent> <xsd:extension base="AnalogPoint"> <xsd:attribute name="unit" fixed="meter3-sec"/> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="AngularSpeed"> <xsd:complexContent> <xsd:extension base="AnalogPoint"> <xsd:attribute name="unit" fixed="rad-sec"/> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="FlowSpeed"> <xsd:complexContent> <xsd:extension base="AnalogPoint"> <xsd:attribute name="unit" fixed="meter3-sec"/> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="Force"> <xsd:complexContent> <xsd:extension base="AnalogPoint"> <xsd:attribute name="unit" fixed="newton"/> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="Pressure"> <xsd:complexContent> <xsd:extension base="AnalogPoint"> <xsd:attribute name="unit" default="pascal"> <xsd:simpleType> <xsd:restriction base="xsd:token"> <xsd:enumeration value="pascal"/> <xsd:enumeration value="atomoshpere"/> <xsd:enumeration value="bar"/> </xsd:restriction> </xsd:simpleType> </xsd:attribute> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="Energy"> <xsd:complexContent> <xsd:extension base="AnalogPoint"> <xsd:attribute name="unit" fixed="joule"/> </xsd:extension> 81894646 48 ISO/IEC CD 18012-2 IEC:2008 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 49 ISO/IEC JTC 1/SC 25/WG 1 N 1360 2008-12-17 </xsd:complexContent> </xsd:complexType> <xsd:complexType name="EnergyPower"> <xsd:complexContent> <xsd:extension base="AnalogPoint"> <xsd:attribute name="unit" default="watt"> <xsd:simpleType> <xsd:restriction base="xsd:token"> <xsd:enumeration value="watt"/> <xsd:enumeration value="horse-power"/> </xsd:restriction> </xsd:simpleType> </xsd:attribute> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- Electric Quantitiy --> <xsd:complexType name="ElectricVoltage"> <xsd:complexContent> <xsd:extension base="AnalogPoint"> <xsd:attribute name="unit" fixed="voltage"/> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="ElectricResistance"> <xsd:complexContent> <xsd:extension base="AnalogPoint"> <xsd:attribute name="unit" fixed="ohm"/> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="MagneticFlux"> <xsd:complexContent> <xsd:extension base="AnalogPoint"> <xsd:attribute name="unit" fixed="weber"/> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- Others --> <xsd:complexType name="Frequency"> <xsd:complexContent> <xsd:extension base="AnalogPoint"> <xsd:attribute name="unit" fixed="hertz"/> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- //Define some new digital datapoints--> <xsd:complexType name="OnOff-State"> <xsd:complexContent> <xsd:extension base="DigitalPoint"/> </xsd:complexContent> </xsd:complexType> <!-- //Define some logicical datapoints--> <xsd:complexType name="USZipCode"> <xsd:complexContent> <xsd:restriction base="String"> <xsd:sequence> <xsd:element name="value" minOccurs="0" maxOccurs="unbounded"> <xsd:simpleType> 81894646 49 ISO/IEC CD 18012-2 IEC:2008 50 ISO/IEC JTC 1/SC 25/WG 1 N 1360 2008-12-17 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 </xsd:schema> 1966 C.2 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 <?xml version="1.0" encoding="UTF-8"?> <xsd:schema elementFormDefault="qualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http:// <namespace URL>" targetNamespace="http:// <namespace URL>"> <xsd:include schemaLocation="baseTypes.xsd"/> <xsd:include schemaLocation="derivedTypes.xsd"/> <!-The purpose of this docuemnt is to provide space to allow data type to be defined for application specific domain. --> <xsd:restriction base="xsd:string"> <xsd:pattern value="\d{5}"/> </xsd:restriction> </xsd:simpleType> </xsd:element> </xsd:sequence> </xsd:restriction> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="USPhoneNumber"> <xsd:complexContent> <xsd:restriction base="String"> <xsd:sequence> <xsd:element name="value" minOccurs="0" maxOccurs="unbounded"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:pattern value="\d{1}-\d{3}-\d{3}-\d{4}"/> </xsd:restriction> </xsd:simpleType> </xsd:element> </xsd:sequence> </xsd:restriction> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="USCurrency"> <xsd:complexContent> <xsd:extension base="Decimal"> <xsd:attribute name="unit" default="dollar"> <xsd:simpleType> <xsd:restriction base="xsd:token"> <xsd:enumeration value="dollar"/> <xsd:enumeration value="cent"/> </xsd:restriction> </xsd:simpleType> </xsd:attribute> </xsd:extension> </xsd:complexContent> </xsd:complexType> Industry-specific Types (examples) <!-- A digital point that representing state of HVAC-Switch--> <xsd:complexType name="HVAC-State"> <xsd:complexContent> <xsd:extension base="DigitalPoint"> <xsd:attribute name="mode" default="auto" use="optional"> <xsd:simpleType> <xsd:restriction base="xsd:token"> <xsd:enumeration value="heat"/> <xsd:enumeration value="cool"/> <xsd:enumeration value="auto"/> </xsd:restriction> </xsd:simpleType> </xsd:attribute> 81894646 50 ISO/IEC CD 18012-2 IEC:2008 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 2054 51 ISO/IEC JTC 1/SC 25/WG 1 N 1360 2008-12-17 </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="RelativeHumidity"> <xsd:complexContent> <xsd:extension base="AnalogPoint"> <xsd:attribute name="unit" fixed="percent"/> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="Occupancy"> <xsd:complexContent> <xsd:extension base="DigitalPoint"/> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="Motor-Speed"> <xsd:complexContent> <xsd:extension base="AnalogPoint"> <xsd:attribute name="unit"> <xsd:simpleType> <xsd:restriction base="xsd:token"> <xsd:enumeration value="rad-s"/> <xsd:enumeration value="rpm"/> </xsd:restriction> </xsd:simpleType> </xsd:attribute> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="EnergyPrice"> <xsd:complexContent> <xsd:extension base="Double"> <xsd:attribute name="unit" fixed="dolloars-per-mwh"/> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="FuelPrice"> <xsd:complexContent> <xsd:extension base="Double"> <xsd:attribute name="unit" fixed="dolloars-per-gallon"/> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="RFID"> <xsd:complexContent> <xsd:extension base="String"> <xsd:attribute name="standard"> <xsd:simpleType> <xsd:restriction base="xsd:token"> <xsd:enumeration value="epc"/> <xsd:enumeration value="non-epc"/> </xsd:restriction> </xsd:simpleType> </xsd:attribute> </xsd:extension> </xsd:complexContent> </xsd:complexType> </xsd:schema> 81894646 51 ISO/IEC CD 18012-2 IEC:2008 52 ISO/IEC JTC 1/SC 25/WG 1 N 1360 2008-12-17 Annex D (informative) 2055 2056 2057 2058 Notes on interoperability 2059 D.1 General comments on the interoperability framework specification 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 This part defines the interoperability framework specification for describing distributed automation systems. The taxonomy consists of the classification of the applications in a framework that may be used, together with the lexicon, to instantiate an interoperable system composed of components on the same or dissimilar networks. The lexicon is the set of common data type primitives and the associated common action primitives tha t, within the taxonomy framework, can be used to describe a set of application models. The interoperability framework specification operates at the application layer of the OSI reference model. This interoperability framework specification defines a common generic automation system application framework to be used for syntactic translation while maintaining the semantics of the application behaviour, independent of the implementation or mode of operation. 2070 D.2 2071 Application Domain::= SEQ of { Application Model } 2072 Application Model::= SEQ of { Functional Object, Operational Object } 2073 Functional Object ::= SEQ of { Operational Object, Functional Actions } 2074 Object ::= SEQ of { Basic Property, Operational Property, Configuration Property } 2075 2076 2077 Device Profile ::= A document description of the minimum a collection of Functional Class instances that are implemented in a product to allow this product (physical device) to comply with the functionality specified in the Application Model(s). 2078 D.3 2079 2080 The Table D.1 represents a mapping between different entity names into the interoperability taxonomy framework. 2081 Table D.1 – Terminology mapping table Taxonomy definitions Taxonomy of the existing systems LonWorks CEBus ISO/IEC 14543-3-x EHS ISO/IEC 18012-2 Network / Configuration Variable Instance Variable Property Object (Object Type) Property Functional Block Object Object Object Object Functional Profile Context Device Device Functional Class (logical device) ?(Application Model) ? (Application Model / Group) Application Specification Application Model Application Model Device Profile Device Profile Device Profile Device Profile Device Profile 2082 2083 2084 2085 2086 For example, the LonWorks Network Variable is no t strictly an object, according to the definition adopted in this International Standard, as it does not exhibit behaviour. But it is the equivalent of the EHS::Object because it is implicitly accessed at application level through get/set actions, where allowed respectively by the access properties defined in the functional profile for the variable. 2087 2088 Objects may have direction (in/out, producer/consumer - inherited through their properties), access properties, an access list and notify list. 81894646 52 ISO/IEC CD 18012-2 IEC:2008 53 ISO/IEC JTC 1/SC 25/WG 1 N 1360 2008-12-17 2089 Bibliography 2090 2091 ISO/IEC 14543, Information technology — Home electronic system (HES) — Architecture (all parts) 2092 2093 ISO/IEC 15045, Information technology — Home electronic system (HES) — HES Gateway (all parts) 81894646 53
© Copyright 2025 Paperzz