iso/iec sc 25/wg 1 iso/iec 18012-2: codebase tag discussion ron ambrosio ibm tj watson research...

10
ISO/IEC SC 25/WG 1 ISO/IEC 18012-2: CodeBase Tag Discussion Ron Ambrosio IBM TJ Watson Research Center

Upload: shanon-harris

Post on 03-Jan-2016

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ISO/IEC SC 25/WG 1 ISO/IEC 18012-2: CodeBase Tag Discussion Ron Ambrosio IBM TJ Watson Research Center

ISO/IEC SC 25/WG 1

ISO/IEC 18012-2:CodeBase Tag Discussion

Ron Ambrosio

IBM TJ Watson Research Center

Page 2: ISO/IEC SC 25/WG 1 ISO/IEC 18012-2: CodeBase Tag Discussion Ron Ambrosio IBM TJ Watson Research Center

2

Review of 18012

Information Model & Programming Abstraction• Application-level abstraction, not device-level

• XML description of building blocks and types: Sensor/Actuator/Control objects

• XML description application graph: Binding Map

• Declarative, meta-Info based integration model

• Separation of integration/composition from component design and implementation

• Event Bus as basic event signaling and interaction model

Page 3: ISO/IEC SC 25/WG 1 ISO/IEC 18012-2: CodeBase Tag Discussion Ron Ambrosio IBM TJ Watson Research Center

3

Guiding Architectural Principles

Two communities of developers being supported:• Object/device/service developers (“building the widgets”)• Solution builders/integrators (“composing the widgets into solutions”)

Maintain separation of:• Application object abstraction from application object implementation• Logical application topology from physical device/network topology

Maximize solution correctness and efficiency via both the development and runtime environments

Treat time as a fundamental primitive in the programming model Enable higher-level abstraction and integration of Operations

Domain systems and components through encapsulation• Accommodate heterogeneity rather than eliminate it• Minimize impact on existing Operations Domain systems and skills

Page 4: ISO/IEC SC 25/WG 1 ISO/IEC 18012-2: CodeBase Tag Discussion Ron Ambrosio IBM TJ Watson Research Center

4

Important to establish certain separations in the programming abstraction

• Separation of Object Implementation from Composition and Integration• Minimizes interference between the two communities of programmers:

• Component Developers• System Integrators

• Allows event flow of application to be modified with no impact on Object Implementation

• Separation of application topology from device topology• Minimizes impact of device evolution and reconfiguration• Simplifies reconfiguration of application for tuning, etc.• Increases level of reusability of Objects

XML Object Model

Model Object

Application Data/Event Flow Path

Model Developer

Model & ApplicationIntegrator

18012runtime

implemtation

Define & Code

Declare Construct &Validate

Construct, Schema Validation,& Code Assembly

Page 5: ISO/IEC SC 25/WG 1 ISO/IEC 18012-2: CodeBase Tag Discussion Ron Ambrosio IBM TJ Watson Research Center

5

Software representations of abstract control system objects (control loops, sensors, actuators)

Provide a necessary level of homogeneity across disparate control environments

Allow identification and capture of meta-information (such as latency requirements, data freshness requirements, etc.)

Establish data-typing framework

<?xml version="1.0" encoding="UTF-8"?><controlModel id="cm01" name="cm01" xmlns="http://www.ibm.com/idacs/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-

instance" xsi:schemaLocation="http://www.ibm.com/idacs/xml controlModel.xsd"> <inputs> <input> <dataPoint id="i1" name="i1" xsi:type="Boolean"/> </input> <input> <dataPoint id="i2" name="i2" xsi:type="Integer"/> </input> </inputs> <outputs> <output> <dataPoint id="o1" name="o1name" xsi:type="String"/> </output> </outputs> <properties> <property name="cm01_prt1" value="value of prt1"/> <property name="cm01_prt2" value="vlaue of prt2"/> </properties> <codeBase> <codeType>JAVA</codeType> <codeLocation>com.ibm.idacs.algorithm.NullControlAlgorithm</codeLocation> <idlLocation>PIDTemperatureControl.wsdl</idlLocation> </codeBase></controlModel>

Model Object SchemasSensor, Control/Decision, Actuator Objects

Page 6: ISO/IEC SC 25/WG 1 ISO/IEC 18012-2: CodeBase Tag Discussion Ron Ambrosio IBM TJ Watson Research Center

6

DataPoint

AnalogPointDigitalPointLength

MassSIMultiple

OnOff-State

Occupancy SIUnit

UnitMultipleTime

Temperature

ElectricCurrent

SubstanceAmount

LuminousIntensity

Motor-Speed

RelativeHumidity

TranslationalSpeed

AngularSpeed

ElectricVoltage

Frequency

Force

Pressure

Energy

EnergyPower

HeatCapacity

baseTypes.xsd

derivedTypes.xsd

industryTypes.xsdPhysicalPointLogicalPoint

DataVector

DataUncertainty

...

...

CustomerSat

$/BTU

XML Schema: Data Point, Type and Physical Unit

Page 7: ISO/IEC SC 25/WG 1 ISO/IEC 18012-2: CodeBase Tag Discussion Ron Ambrosio IBM TJ Watson Research Center

7

Data

DataPoint

AnalogPointDigitalPoint

Length

Mass

OnOff-State

Occupancy

Time

Temperature

ElectricCurrent

SubstanceAmount

LuminousIntensity

TranslationalSpeed

AngularSpeed

ElectricVoltage

Energy

Force

Pressure

PhysicalPointLogicalPoint

...

CustomerSat

$/BTU

P/E Ratio

KPI

......

StringByte Boolean

Integer Long Float DoubleShort

Decimal

Business Physical

Programming

Com

putin

gA

pplic

atio

n

• Data type framework to map to computing space from application domain(s)

• Data types are extensible through XML schema to different industries and application domains

• Provides data type platform for Model Object Inputs/Outputs

XML Schema: Data Point, Type and Physical Unit

Page 8: ISO/IEC SC 25/WG 1 ISO/IEC 18012-2: CodeBase Tag Discussion Ron Ambrosio IBM TJ Watson Research Center

8

<<complexType>>

controlModel

<<complexType>>

inputs

<<complexType>>

input

<<complexType>>

outputs

<<DataPoint>>

dataPoint

<<complexType>>

QoIRequirement

<<DataPoint>>

dataPoint

<<complexType>>

output

<<complexType>>

codeBase

<<string>>

description

<<enumeration>>

codeType

<<string>>

codeLocation

<<string>>

idlLocation

<<complexType>>

properties

<<simpleType>>

properties

controlModelTypes.xsd

commons.xsd

<<complexType>>

QoI

XML Schema: Control Model Object example

Page 9: ISO/IEC SC 25/WG 1 ISO/IEC 18012-2: CodeBase Tag Discussion Ron Ambrosio IBM TJ Watson Research Center

9

Runtime Control Model Object

4. Vildate Trigger Conditionfor AlgorithmEvent()

0. queueInputEvent()

<<Control Model>>

1. queueInputEvent()via Callback

Input Data/Event Queue

Model Algorithm

Model Processor

i1

i2

i3

i4

o1

o2

Event Bus Agent

3. unpackage data() / update()

4. Validate Trigger Rules

2. de-queueInputEvent()

5.2 updatevariables

7. read() / package data()

8. pub()

6. Validate DataPublish Rules

workThreadCallback

Inputs DescriptionTable

Outputs DescriptionTable

Inp

ut

Dat

aVar

Set

Ou

tpu

t D

ataV

arS

et

DataSubscribeMap DataPublishMap

InputDataNameMap

5. execute / callback

Event Correlation

Event Bus

9. publish Event/Data to Event Bus

0. Data/Event from Event Bus

Page 10: ISO/IEC SC 25/WG 1 ISO/IEC 18012-2: CodeBase Tag Discussion Ron Ambrosio IBM TJ Watson Research Center

10

Example Control Model Description using Java<?xml version="1.0" encoding="UTF-8"?>

<controlModel id="cm01" name="cm01" xmlns="http://www.ibm.com/idacs/xml" xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance xsi:schemaLocation="http://www.ibm.com/idacs/xml controlModel.xsd"> <category>category</category> <inputs> <input> <dataPoint id="i1" name="i1" xsi:type="Boolean"/> </input> <input> <dataPoint id="i2" name="i2" xsi:type="Integer"/> </input> <input> <dataPoint id="i3" name="i3name" xsi:type="Float"/> </input> <input> <dataPoint id="external_timer" name="external_timer" xsi:type="Long"/> </input> </inputs> <outputs> <output> <dataPoint id="o1" name="o1name" xsi:type="String"/> </output> </outputs> <modelProperties> <property name="trigger_mode" value="1"/> <property name="trigger_time_period" value="10000"/> <property name="trigger_time_delay" value="10000"/> </modelProperties> <codeBase> <codeType>JAVA</codeType> <codeLocation>com.ibm.idacs.algorithm.NullControlAlgorithm</codeLocation> <codeProperties> <property name="cm01_alg_prty1" value="valueOfAlgPrt1"/> <property name="cm01_alg_prty2" value="vlaueOfAlgPrt2"/> </codeProperties> <idlLocation>PIDTemperatureControl.wsdl</idlLocation> </codeBase></controlModel>