Device Status Check

DeviceStatusCheck is used to determine the health of a meter and to test that the meter can be reached on the network.

Composite Properties

Property Name

Default Value

Description

OD_​ServerCallbackEndpoint

http://127.0.0.1:8001/soa-infra/services/DG/DeviceStatusCheck/OA_​ServerService

The default endpoint to which MultiSpeak should send the asynchronous OA_​Server callback.

isExecutingInitODRequest-ReceivedCallout

true

Controls whether the Request Arrived callout executes.

isExecutingInitODEventRequest-Completed

true

Controls whether the Request Completed callout executes.

isExecutingODEventNotification-Arrived

true

Controls whether the ODEventNotification arrival callout executes.

timeout.callback.years

0

The number of years to await a response from the MultiSpeak server. This property only takes effect when the expTime element is not supplied in the input to the service.

timeout.callback.months

0

The number of months to await a response from the MultiSpeak server. This property only takes effect when the expTime element is not supplied in the input to the service.

timeout.callback.days

0

The number of days to await a response from the MultiSpeak server. This property only takes effect when the expTime element is not supplied in the input to the service.

timeout.callback.hours

0

The number of hours to await a response from the MultiSpeak server. This property only takes effect when the expTime element is not supplied in the input to the service.

timeout.callback.minutes

0

The number of minutes to await a response from the MultiSpeak server. This property only takes effect when the expTime element is not supplied in the input to the service.

timeout.callback.seconds

45

The number of seconds to await a response from the MultiSpeak server. This property only takes effect when the expTime element is not supplied in the input to the service.

Composite WSDLs

Composite

Description

OD_​ServerService

Entry point for DeviceStatusCheck. After a synchronous reply, further updates will be sent to the specified location asynchronously using DG-OutageDetectionEventNotification.

OA_​ServerService

MultiSpeak WSDL hosted to received asynchronous ODEventNotification callbacks from the head end system.

OD_​ServerProxy

Reference describing the proxy used to invoke the head end system to initiate a Device Status Check.

OA_​ServerCallout

Reference describing the process callout used when the asynchronous callback from the head end system arrives.

OD_​ServerCallout

Reference describing the process callout used when initiating a Device Status Check.

AuxilaryRoutines

Reference to common helper routines in the Common composite.

DG-OutageDetectionEventNotificationXAI

A reference to an inbound web service capable of processing asynchronous results from a Device Status Check request.

Process Flow

  1. SGG/OUAF Initiates the Outage Detection service using OD_​ServerService

  2. Composite properties are loaded. Local variables are initialized. These mostly include boolean settings describing the state (such as whether or not the synchronous reply from the head-end system returned)

  3. Test whether the input includes a expiration time (expTime element).

    • If Yes: Use AuxilaryRoutines to compute timeout

    • If No: Use composite properties and AuxiliaryRoutines to compute expiration time

  4. Both the Header and Body inputs are transformed to MultiSpeak format. This can be done either through direct mapping or through XSLT. In this instance, XSLT is used to transform the header and the body separately.

  5. If the composite property indicates the process callout should occur, execute the “request arrived” process callout in OD_​CalloutService. Assign updated data to head end request.

  6. Add a callback URL to the head end request. This is the endpoint the head end will use to send the outage detection results. Some head end systems use other approaches, such as pre-configuring the URL for callbacks or allowing polling to find the results. In this case, the URL is configured in a composite property and corresponds to an implementation of the OA_​Server WSDL. When the head end system has results, it will deliver them to this URL using the ODEventNotification method.

  7. Invoke InitiateOutageDetectionEventRequest via the OD_​ServerProxy to the head end system.

  8. Split processing to handle simultaneous activities. The Flow activity does this in BPEL and it makes sense here because one process will handle a synchronous response and return it to the caller. The other process will sleep, or “dehydrate,” until the asynchronous ODEventNotification arrives or until the timeout value is reached.

    • Handle synchronous response to SGG/OUAF

      • If the composite property indicates the process callout should occur, execute the “request completed” process callout in OD_​CalloutService. Assign updated data to head end response.

      • Transform Header and Body head end responses to SGG/OUAF format.

      • Reply to SGG/OUAF with synchronous results.

      • Set boolean variable indicating that the synchronous reply has been returned.

    • Await asynchronous response from head-end system.

      • Receive ODEventNotification from OA_​ServerService. If the timeout period elapses, raise an error and stop waiting.

      • Synchronously reply to the head end with no errors

      • If the composite property indicates the process callout should occur, execute the “data arrived” process callout in OA_​CalloutService. Assign updated data to the incoming request.

      • Transform Header and Body to inbound web service format described in DG-OutageDetectionEventNotification.

      • Invoke the inbound web service with the new data.

  9. Fault Handlers look for any remote Fault returned from the head-end system. The MultiSpeak API does not define named faults, but they are still possible to encounter. For example, a security error or network error could be raised.

    • If the synchronous reply has been sent back to the caller, Terminate the flow. This indicates an error has occurred and more research in Enterprise Manager is warranted.

    • If the synchronous reply has not been sent, stop further processing and compose a reply which contains the fault information.