A.2.6.2 DomainDownloadType

The DomainDownloadType is a subtype derived from the ProgramStateMachineType. It specifies the use or non-use of optional ProgramStateMachineType components, valid extensions such as subordinate State Machines, and constrained attribute values applied to instances of DomainDownload Programs.

Table A.2 specifies the optional and extended components defined by the DomainDownload Type. Note the references to two sub State Machine Types, TransferStateMachine and FinishStateMachine. The DomainDownloadType omits references to the Reset Program Control Method and its associated state transition (HaltedToReady), which it does not support.

Table A.2 – DomainDownloadType
AttributeValue
Includes all non-optional attributes specified for the ProgramStateMachineType
BrowseNameDomainDownloadType
IsAbstractFalse
References NodeClass BrowseName Data
Type
TypeDefinition Modelling
Rule
HasComponent ObjectTransferStateMachineStateMachineTypeMandatory
HasComponent ObjectFinishStateMachineStateMachineTypeMandatory
HasComponentVariableProgramDiagnosticProgramDiagnostic2TypeMandatory
HasComponentObjectReadyToRunningTransitionType
HasComponentObjectRunningToHaltedTransitionType
HasComponentObjectRunningToSuspendedTransitionType
HasComponentObjectSuspendedToRunningTransitionType
HasComponentObjectSuspendedToHaltedTransitionType
HasComponentMethodStartMandatory
HasComponentMethodSuspendMandatory
HasComponentMethodHaltMandatory
HasComponentMethodResumeMandatory
HasComponentObjectFinalResultDataBaseObjectTypeMandatory

Table A.3 specifies the Transfer State Machine type that is a sub State Machine of the DomainDownload Program Type. This definition identifies the StateTypes that compose the substates for the Program’s Running StateType.

Table A.3 – TransferStateMachineType
AttributeValue
Includes all attributes specified for the FiniteStateMachineType
BrowseNameTransferStateMachineType
IsAbstractFalse
References NodeClass BrowseName Data
Type
TypeDefinition Modelling
Rule
HasComponentObjectOpeningStateType
HasComponentObjectSendingStateType
HasComponentObjectClosingStateType
HasComponentObjectReadyToOpeningTransitionType
HasComponentObjectOpeningToSendingTransitionType
HasComponentObjectSendingToClosingTransitionType
HasComponentObjectSendingToAbortedTransitionType
HasComponentObjectSendingToSuspendedTransitionType
HasComponentObjectSuspendedToSendingTransitionType
HasComponentMethodStartMandatory
HasComponentMethodSuspendMandatory
HasComponentMethodHaltMandatory
HasComponentMethodResumeMandatory

Table A.3 specifies the StateTypes associated with the Transfer State Machine Type. All of these states are substates of the Running state of the base ProgramStateMachineType.

The Opening state is the preparation state for the domain download.

The Sending state is the activity state for the transfer in which the data is moved from the source to destination.

The Closing state is the cleanup phase of the download.

The component Variables of the TransferStateMachineType have additional Attributes defined in Table A.4.

Table A.4 – TransferStateMachineType Attribute values for child Nodes
Source Path Value Attribute Description Attribute
Statenumbers
1
2
3
Transitionnumbers
1
2
3
4
5
6

Table A.5 specifies the Finish State Machine Type that is a sub State Machine of the DomainDownload ProgramStateMachineType. This definition identifies the StateTypes that compose the substate for the Program’s Halted StateType.

Table A.5 – Finish State Machine Type
AttributeValue
Includes all attributes specified for the FiniteStateMachineType
BrowseNameFinishStateMachineType
IsAbstractFalse
References NodeClass BrowseName

Data

Type

TypeDefinition

Modelling

Rule

HasComponentObjectCompletedStateType
HasComponentObjectAbortedStateType

The Aborted state is the terminal state that indicates an incomplete or failed domain download operation.

The Completed state is the terminal state that indicates a successful domain download.

The component Variables of the FinishStateMachineType have additional Attributes defined in Table A.6.

Table A.6 – FinishStateMachineType Attribute values for child Nodes
Source Path Value Attribute Description Attribute
Statenumbers
8
9

Table A.7 specifies the constraining behaviour of a DomainDownload.

Table A.7 – DomainDownloadType Property Attributes variable values
NodeClassBrowseName

Data

Type

Data Value

Modelling

Rule

VariableCreatableBooleanTrue
VariableDeletableBooleanTrueMandatory
VariableAutoDeleteBooleanFalseMandatory
VariableRecycleCountInt320Mandatory
VariableInstanceCountUInt32PropertyType
VariableMaxInstanceCountUInt32500
VariableMaxRecycleCountUInt320

A DomainDownload Program Invocation can be created and also destroyed by a Client. The Program Invocation will not delete itself when halted, but will persist until explicitly removed by the Client. A DomainDownload Program Invocation cannot be reset to restart. The Server will support up to 500 concurrent DomainDownload Program Invocations.

Figure A.3 presents a partial DomainDownloadType model that illustrates the association between the states and the DomainDownload, Transfer, and Finish State Machines. Note that the current state number for the sub State Machines is only valid when the DomainDownload active base state references the sub State Machine, Running for the Transfer current state and Halted for the Finish current state.

Figure A.3 – DomainDownloadType partial state model

Table A.8 specifies the ProgramTransitionTypes that are defined in addition to the ProgramTransitionTypes specified for Programs in Table 7. These types associate the Transfer and Finish sub State Machine states with the states of the base Program.

Table A.8 – TransferStateMachineType Additional References
Source PathReference TypeIs ForwardTarget Path
ToSendingToStateTrueSending
FromStateTrueOpening
HasCauseTrueStart
HasEffectTrueProgramTransitionEventType
HasEffectTrueAuditProgramTransitionEventType
SendingToSendingToStateTrueSending
FromStateTrueSending
HasEffectTrueProgramTransitionEventType
SendingToClosingToStateTrueClosing
FromStateTrueSending
HasEffectTrueProgramTransitionEventType
SendingToAbortedToStateTrueAborted
FromStateTrueSending
HasCauseTrueHalt
HasEffectTrueProgramTransitionEventType
HasEffectTrueAuditProgramTransitionEventType
ClosingToCompletedToStateTrueCompleted
FromStateTrueClosing
HasEffectTrueProgramTransitionEventType
SendingToSuspendedToStateTrueSuspended
FromStateTrueSending
HasCauseTrueSuspend
HasEffectTrueProgramTransitionEventType
HasEffectTrueAuditProgramTransitionEventType
SuspendedToSendingToStateTrueSending
FromStateTrueSuspended
HasCauseTrueResume
HasEffectTrueProgramTransitionEventType
HasEffectTrueAuditProgramTransitionEventType
SuspendedToAbortedToStateTrueAborted
FromStateTrueSuspended
HasCauseTrueHalt
HasEffectTrueProgramTransitionEventType
HasEffectTrueAuditProgramTransitionEventType
ReadyToOpeningToStateTrueOpening
FromStateTrueReady
HasCauseTrueStart
HasEffectTrueProgramTransitionEventType
HasEffectTrueAuditProgramTransitionEventType

Figure A.4 through Figure A.10 illustrate portions of the DomainDownloadType model. In each figure, the referenced tates, Methods, transitions, and EventTypes are identified for one or two state transitions.

Figure A.4 – Ready To Running model

Figure A.4 illustrates the model for the ReadyToRunning Program transition. The transition is caused by the Start Method. The Start Method requires three input arguments. The Method Call service is used by the Client to invoke the Start Method and pass the arguments. When successful, the Program Invocation enters the Running state and the subordinate Transfer Opening state. The Server issues two Event notifications, ReadyToRunning (2), and ToOpening (19).

Table A.9 – Start Method additions
AttributeValue
BrowseNameStart
IsAbstractFalse
References NodeClass BrowseName DataType TypeDefinition ModellingRule
HasPropertyVariableInputArgumentsArgument[]PropertyType

Table A.9 specifies that the Start Method for the DomainDownloadType requires input arguments. Table A.10 identifies the Start Arguments required.

Table A.10 – StartArguments
Name Type Value
Argument 1structure
 nameStringSourcePath
 dataTypeNodeIdStringNodeId
 valueRankInt32-1 (-1 = scalar)
 arrayDimensionsUInt32[]null
 descriptionLocalizedTextThe source specifier for the domain
Argument 2structure
 NameStringDestinationPath
 dataTypeNodeIdStringNodeId
 valueRankInt32-1 (-1 = scalar)
 arrayDimensionsUInt32[]null
 descriptionLocalizedTextThe destination specifier for the domain
Argument 3structure
 nameStringDomainName
 dataTypeNodeIdStringNodeId
 arrayDimensionsUInt32[]null
 valueRankInt32-1 (-1 = scalar)
 descriptionLocalizedTextThe name of the domain

Figure A.5 illustrates the model for the Opening To Sending and the Sending to Closing Program transitions. As specified in the transition table, these state transitions require no Methods to occur, but rather are driven by the internal actions of the Server. Events are generated for each state transition (10 to 12), when they occur.

Figure A.5 – Opening To Sending To Closing model

Notice that a state transition can initiate and terminate at the same state (Sending). In this case the transition serves a purpose. The ProgramTransitionEventType effect referenced by the SendingToSending state transition has an IntermediateResultData Object Reference. The IntermediateResultData Object serves to identify two Variables whose values are obtained each time the state transition occurs. The values are sent to the Client with the Event notification. Table A.11 defines the IntermediateResults ObjectType and Table A.12 defines the Variables of the ObjectType.

Table A.11 – IntermediateResults Object
AttributeValue
Includes all attributes specified for the ObjectType
BrowseNameIntermediateResults
IsAbstractFalse
References NodeClass BrowseName

Data

Type

TypeDefinition

Modelling

Rule

HasComponentVariableAmountTransferredLongVariableTypeMandatory
HasComponentVariablePercentageTransferredLongVariableTypeMandatory
Table A.12 – Intermediate result data Variables
Intermediate Result VariablesTypeValue
Variable 1 Structure
 NameStringAmountTransferred
 dataTypeNodeIdStringNodeId
 descriptionLocalizedTextBytes of domain data transferred.
Variable 2Structure
 NameStringPercentageTransferred
 dataTypeNodeIdStringNodeId
 descriptionLocalizedTextPercentage of domain data transferred.

The model for the Running To Suspended state transition is illustrated in Figure A.6. The cause for this transition is the Suspend Method. The Client can pause the download of domain data to the control. The transition from Running to Suspended invokes the Event generation for TransitionEventTypes 5 and 16. Note that there is no longer a valid current state for the Transfer State Machine.

Figure A.6 – Running To Suspended model

The model for the SuspendedToRunning state transition is illustrated in Figure A.7. The cause for this transition is the Resume Method. The Client can resume the download of domain data to the control. The transition from Suspended to Running generates the Event for TransitionEventTypes 6 and 17. Now that the Running state is active, the Sending state of the Transfer State Machine is again specified for the CurrentStateNumber.

Figure A.7 – Suspended To Running model

The model for the Running To Halted state transition for an abnormal termination of the domain download is illustrated in Figure A.8. The cause for this transition is the Halt Method. The Client can terminate the download of domain data to the control. The transition from Running To Halted generates the Event for TransitionEventTypes 3 and 15. The TransitionEventType 15 indicates the transition from the Sending state as the Running State ends and then to the Aborted state as the Halted state is entered.

Figure A.8 – Running To Halted – Aborted model

Figure A.9 illustrates the model for the Suspended To Halted state transition for an abnormal termination of the domain download. The cause for this transition is the Halt Method. The Client can terminate the download of domain data to the control while it is suspended. The transition from SuspendedToHalted invokes the Event notifiers for TransitionEventTypes 7 and 18.

Figure A.9 – Suspended To Aborted model

The model for the Running To Completed state transition for a normal termination of the domain download is illustrated in Figure A.10. The cause for this transition is internal. The transition from Closing To Halted generates the Event for TransitionEventTypes 3 and 14. The TransitionEventType 14 indicates the transition from the Closing state as the Running state ends and then to the Completed state as the Halted state is entered.

The DomainDownloadType includes a component reference to a FinalResultData Object. This Object references Variables that persists information about the domain download once it has completed. This data can be read by Clients who are not subscribed to Event notifications. The result data is described in Table A.13.

Table A.13 – FinalResultData
AttributeValue
Includes all attributes specified for the ObjectType
BrowseNameFinalResultData
IsAbstractFalse
References NodeClass BrowseName

Data

Type

TypeDefinition

Modelling

Rule

HasComponentVariableDownloadPerformanceDoubleBaseDataVariableTypeMandatory
HasComponentVariableFailureDetailsStringBaseDataVariableTypeMandatory

The Domain Download net transfer data rate and detailed reason for aborted downloads is retained as final result data for each Program Invocation.

DownloadPerformance provides the data rate in seconds for domain data transferred.

FailureDetails provides a descriptive reason for an abort.

Figure A.10 – Running To Completed model