Post on 21-Jan-2016
transcript
Discussion how to model Operations
Joerg Swetina (NEC)
[NEC Group Internal Use Only]
ARC-2015-2070
ARC-2015-2070-Discussion_on_modelling_operations
2 © NEC Corporation 2015 NEC Group Internal Use Only
What is an Operation?
▌An application entity (AE) produces / consumes data that are read/written by other entities in the oneM2M systemThe physical device behind the AE may be a (RESTful) oneM2M applicationOrA device – with possibly non-RESTful RPC style communication - from an external
system (e.g. Area Network) that is interworked via an Interworking Proxy Entity (IPE)
▌An AE uses child-containers of its <AE> resource for data exchangeThe Operation and its input/output data need to be such resources
▌An Operation is a set of1.Input data to the AE2.State information from the AE3.Output data from the AE
▌An operation ‘lives’ (a) while preparing input data, (b) while processing the data, (c) while output data are generated▌An operation is ‘finished’ when (d) no more output data are produced
3 © NEC Corporation 2015 NEC Group Internal Use Only
CSE
oneM2Mentity
Mca(c)<AE>
<container>
attribute
attribute
<container>
<container>
CRUDN
<container>•For data (e.g. state-information)•For commands•For input/output parameters
Communicating with oneM2M Devices
<AE> of device
AE
Device
Hardware
4 © NEC Corporation 2015 NEC Group Internal Use Only
Some observations on an operation
▌An operation has an operation-type, that distinguishes it from other types of operationsE.g. for a device that provides temperature and pressure the operation type for
reading temperature is different from operation type for reading pressure
▌All input parameter values of an operation need to be provided to the AE as a groupThis implies that an AE can retrieve a all input data values (or references to
them) in a single CRUD operation
▌All output parameters of an operation are provided by the AE as a groupThis implies that a oneM2M entity can retrieve a all output data values (or
references to them) in a single CRUD operation
In both cases data values may be created (by the AE or M2M entity) before the CRUD operation groups them as in/output
Data for in/output may be used in other operations too
▌Input and output may consist of 0, 1 or multiple values
5 © NEC Corporation 2015 NEC Group Internal Use Only
AreaNetwork
AreaNetwork
nativeDevice
Middle Node
MN-CSE
MN-AE
Mca
IPE
<AE>
<container>
attribute
attribute
<container>
<container>
CRUDN
Operations of a (native) Device in an Area Network:all Message-Exchange Patterns (MEPs) may be possible :•In-Only•[Robust In-Only, In-Optional-Out]•In-Out•Out-Only •[Robust Out-Only Out-Optional-In]•Out-In
<container>•For data (e.g. state-information)•For commands•For input/output parameters
Interworking with non-oneM2M Devices(example for a Middle Node)
<AE> of proxied
device
IPE proxies native Device into proxied
Device
6 © NEC Corporation 2015 NEC Group Internal Use Only
Why do we need to model an operation?
Disclaimer: In oneM2M in general there is no need to specify how an operation is modelled. This is up to the manufacturer of the device.
▌However, in the case of interworking with external systems, when oneM2M specifies the (oneM2M part of the) IPE, we need also to specify how to model operations.
▌Apart from interworking it is also desirable to provide a blueprint for modelling operations that can be used by developers.
7 © NEC Corporation 2015 NEC Group Internal Use Only
Proposal for modelling an operation
<AE>
<container>
<container>
<container>
<container>
<container>
<container>
<container>
<co
nte
ntI
nst
ance
>
<co
nte
ntI
nst
ance
>
<co
nte
ntI
nst
ance
>
Input-variable 1
Input-variable n
…
Output-variable a
Output-variable z
…Operation
<container> Operation-state
<co
nte
ntI
nst
ance
>
<co
nte
ntI
nst
ance
>
<co
nte
ntI
nst
ance
>
<container> Input-variable 1 value pointer<container> Output-variable z value pointer
<co
nte
ntI
nst
ance
>
<co
nte
ntI
nst
ance
><
conte
ntI
nst
ance
>
<co
nte
ntI
nst
ance
>
<co
nte
ntI
nst
ance
>
… values of Input-variable 1
… values of Output-variable z
… values of Operation-state
8 © NEC Corporation 2015 NEC Group Internal Use Only
Timeline of the operation
“Input” and “Output” variables as well as “Operation” are child resources of the <AE> resource.1.The oneM2M entity creates input-values as new contentInstances of the “Input” variable containers2.The oneM2M entity UPDATEs the “Operation” container by
a. Creating a child-conainer of “Operation”: „Input-variable 1 value pointer“ whose contentInstance is a pointer to the newly created contentInstance for Input-variable 1 ... And similarly for all other input variables
b. Creating a child-conainer of “Operation”: „Output-variable z value pointer“ whose contentInstance is a pointer to Output-variable z [but not yet to a specific contentInstance of Output-variable z] ... And similarly for all other output variables
c. Creating a child-container “Operation-state” of “Operation” whose contentInstance contains a value „Operation_initiated“
3.The AE has subscribed to changes of the “Operation” child-resource and gets notified of the UPDATE4.The AE retrieves the contentInstance of the “Input” variables that are referenced by the „Input-variable 1 value pointer“... And similar for other input variables
5.The AE creates a new contentInstance for “Operation-state” with a value „Operation_Input_received“
9 © NEC Corporation 2015 NEC Group Internal Use Only
Timeline of the operation (continued)
6. The AE starts executing its service logic and creates a new contentInstance for “Operation-state” with a value „Operation_Executing“
a. After starting execution the AE may provide additional, service logic specific contentInstances for “Operation-state”.=> this might probably be better done in a separate state variable
7. The AE creates output values as new contentinstances of child-conainer of “Operation”: „Output-variable z value pointer“... And similar for other Output variables
8. The AE creates a new contentInstance for “Operation-state” with a value „Operation_Output_created_at_[time]“
Steps 7 and 8 and optionally 6a may be repeated The output values that were created can be correlated to the corresponding
“Operation-state” through their timestamps
9. When the operation is finished and no new sets of output values need to be created the AE creates a new contentInstance for “Operation-state” with a value „Operation_Ended_at_[time]“