Unified Data Integration Platform (UDIP)  Specification

 

 

 


Contents

1     UDIP (Unified Data Integration Platform) 1

1.1     Technical Realization. 1

1.1.1     WebService Interface Overview.. 1

1.1.2     Security Mechanism... 2

2     Interface based on MultiSpeak Specification.. 2

2.1     Integration Specification. 2

2.2     Integration Scenario. 5

2.2.1     MDM & MS Interfacing Scenario. 5

2.2.1.1... GetHistoryLogByMeterNo  5

2.2.1.1.1     Scenaro Introduction. 5

2.2.1.1.2     Interface Specification. 5

2.2.1.2... GetLatestReadingByMeterNo  7

2.2.1.2.1     Scenaro Introduction. 7

2.2.1.2.2     Interface Specification. 8

2.2.1.3... GetReadingsByDate  11

2.2.1.3.1     Scenaro Introduction. 11

2.2.1.3.2     Interface Specification. 11

2.2.1.4... GetReadingsByMeterNo  14

2.2.1.4.1     Scenaro Introduction. 14

2.2.1.4.2     Interface Specification. 14

2.2.1.5... InitiateConnectDisconnect 17

2.2.1.5.1     Scenaro Introduction. 17

2.2.1.5.2     Interface Specification. 17

2.2.1.6... DisconnectionStatesChangedNotification  19

2.2.1.6.1     Scenaro Introduction. 19

2.2.1.6.2     Interface Specification. 19

2.2.2     MDM & CB Interfacing Scenario. 20

2.2.2.1... CustomerChangedNotification  21

2.2.2.1.1     Scenaro Introduction. 21

2.2.2.1.2     Interface Specification. 21

2.2.2.2... MeterChangedNotification  24

2.2.2.2.1     Scenaro Introduction. 24

2.2.2.2.2     Interface Specification. 24

2.2.2.3... ServiceLocationChangedNotification  27

2.2.2.3.1     Scenaro Introduction. 27

2.2.2.3.2     Interface Specification. 27

2.2.2.4... InitiateConnectDisconnect 31

2.2.2.4.1     Scenaro Introduction. 31

2.2.2.4.2     Interface Specification. 31

2.2.2.5... CDStatesChangedNotification  33

2.2.2.5.1     Scenaro Introduction. 33

2.2.2.5.2     Interface Specification. 33

2.2.2.6... ReadingChangedNotification  35

2.2.2.6.1     Scenaro Introduction. 35

2.2.2.6.2     Interface Specification. 35

3     Interface based on Non-MultiSpeak Specification.. 38

3.1     Component Model 39

3.2     Component Characteristics. 40

3.2.1.1... Metering system(MS)- Date collection  40

3.2.1.2... Metering system(MS)- Control and Reconfiguration  41

3.2.1.3... Load Control 41

3.2.1.4... Load Management System (LMS) 41

3.2.1.5... Meter Asset Management (MAM) System    41

3.2.1.6... Meter Data Management (MDM) System    42

3.2.1.7... Customer Information System (CIS, or CRM&Billing) 42

3.2.1.8... Outage Management System (OMS) 42

3.2.1.9... Network Operations (NO) 42

3.2.1.10... Meter Maintenance (MM) 42

3.2.1.11    Planning  43

3.2.1.12... Work Management(WM) 43

3.2.1.13... Point of Sale (POS) 43

3.2.1.14... Demand Response Management System (DRMS) 43

4     Case Introduction.. 43

4.1     Project Overview.. 43

4.2     Integration details: 44


1       UDIP (Unified Data Integration Platform)

For electric power utility systems, agile and rapid data exchange among all information systems is the key point for fast and efficient business operations. UDIP (Unified Data Integration Platform) provides a unified and highly efficient data exchange platform for MDM, and acts as the connection pivot for AMI data integration. It adopts widely used integration open standardsMultiSpeakIEC61968-9 as the basis to support dynamic connectivity and interoperability of messages, events and service levels among all applications. It is a standard integration mode between loose-coupling service and applications. Moreover, it can eliminate the technique difference among different applications, and enable coordinated operating of different application servers to achieve communication and aggregation among different services.

1.1    Technical Realization

The data integration platform is designed in accordance with multilayer distributed systems, including data layer and data transmission logic layer. In this data integration platform design, data transmission layer is mainly used to pack data that from system database which requires data exchange adopting WebService technical standard. And then form a WebService interface adaptor to be responsible for data exchange with other systems.

WebService is an application program which is platform-independent, low coupled, self-contained, and based on programmable web. It enables different applications running on different servers to achieve data exchange or integration without assistance or using third-party software or hardware. For those applications running according to WebService specification, no matter what language, platform or protocols is adopted, data exchange is supported. WebService is a self-described and self-contained available network module which executes the specific business functions. Each system extracts functions that require information exchange and release in the integration platform after packing with WebService interface specification. Standard XML can be used for data description. In this way, it is able to eliminate complicated coupling relationship among business systems and in the other hand, it guarantees relative independence, integrity and security among business systems.

1.1.1   WebService Interface Overview

WebService interface is realized by Apache Axis (version 1.4It is a WebService framework that supports SOAP, Simple Object Access Protocol) technique. Clients and servers interact adopting SOAPSimple Object Access Protocolvia HTTP. Clients generate SOAP request messages based on WSDL description document and send to server-side. Then the server analyzes the received SOAP requests, invokes WebService and generates corresponding SOAP response back to the client.

1.1.2   Security Mechanism

All WebService service can be invoked only by authentication (some need authorization). Once WebService service receives a request, it acquires username and password from Soap header for authentication. After authentication, it invokes the specific service.

As a client, the application program code (wrote by Axis’ client programming model) should set username and password into SOAPHeader. The namespace of SOAPHeaderElement is defined as Authorization while localPart is defined as username and password.

AddHeader of org.apache.axis.client.Call methodsAccording to different language and invoking of client as well as different settings, the following cases explain that the client language is java and the invoking is dynamic call:

call.addHeader(new SOAPHeaderElement("Authorization","username",username));

call.addHeader(new SOAPHeaderElement("Authorization","password",password));

 

2        Interface based on MultiSpeak Specification

The solution could realize application integration and data exchange based on MultiSpeak specification, which defines standard data interfaces among software applications that commonly used by electric utilities. The achievement of this integration means to help utilities acquire cost-effective and integrated software products from a variety of vendors without extensive customer interface development.

MultiSpeak specification defines software interfaces, data objects and message structures among software applications and contains guidelines on how those interfaces should be implemented to maximize the potential for compatible programs, developed by different software vendors, to inter-operate.

2.1    Integration Specification

The purpose of the integration scenarios is to summarize graphically the data exchanges that shall be supported at interface between MDM and CRM&Billing.

The interfaces established in the MultiSpeak specification are defined on the basis of information flows among software functions, and the purpose is to give flexibility to model a number of different product types. But the application provided may fulfill the role of one or more MultiSpeak functions. Each function is referred to by a function name, the detailed description of Multispeak function described in the following table.

Function

Function Definitions

CB

Customer Billing Database. Includes a customer information database, customer billing and accounting for electrical usage.

CD

Connect/Disconnect/Power Limitation. Control remote switches or power limiting devices installed at customer services.

CRM

Customer Relationship Management. Enables tracking customer care activities for individual end-use customers.

EA

Engineering Analysis. Includes all engineering analysis functions, such as voltage drop and fault study capabilities.

LM

Load Management. Accepts information about required power system curtailments and manages those curtailments by communicating with remote devices, such as load control switches.

LP

Load Profile. Exchanges information about how metered loads change over time by saving information about such loads periodically.

MR

Meter Reading. Collects information from remote meters, typically revenue meters, and presents it to other system for analysis.

OA

Outage Analysis. Accepts outage information from outage detection sources.

OD

Outage Detection. Includes any means by which information about outages is stored on a computerized server.

 

The detailed description of Multispeak process model shows as following:

The MultiSpeak process model data exchanges and direction shows as following:

Data Flow No.

Linked Functions

Data Exchanged

Direction

1

CB-LM

Customer and service information

CB-->LM

Load management devices

LM-->CB

2

CB-MR

Meter readings/characteristics, service status, phasing, meter history logs

MR-->CB

Customer, service, meter and location info

CB-->MR

3

CB-CD

Connect/disconnect and power limitation commands; customer, meter, service

CB-->CD

Acknowledge connect/disconnect, power limitation commands

CD-->CB

4

LP-CB

Load profile data

LP-->CB

Meters

CB-->LP

5

MR-EA

Customer metered load, measurement, meter, phase

MR-->EA

Meter connectivity and circuit elements

EA-->MR

6

OD-OA

Status change event, device information

OD-->OA

Outage status

OA-->OD

7

EA-OA

Connectivity file

EA-->OA

8

CB-OA

Customer connect/disconnect, power limitation command

CB-->OA

Customer meter data, customer and service information

OA-->CB

9

CB-EA

Billing account load information

CB-->EA

Connectivity

EA-->CB

10

CB-OD

Customer, meter and service information

CB-->OD

11

OA-MR

Customers affected by outage, outage events and meter connectivity

OA-->MR

12

CB-CRM

Customers, services, transformers, meters

CB-->CRM

 

Specification

1Protocol

UDIP provides interfaces which comply with specification of Multispeak.

2Security

Security complies with safety specification of MultiSpeak.

3Method of calling

Method of calling is based on WebService Document/Literal, calling type is synchronization.

 

2.2    Integration Scenario

2.2.1   MDM & MS Interfacing Scenario

Figure B-1. MultiSpeak Approch to MDM&MS Interfacing

2.2.1.1  GetHistoryLogByMeterNo

2.2.1.1.1      Scenaro Introduction

MDM requests MS of a history log in the customer object by sending meter No.. MS responds identification of meter and list of historical meter event according to meter No., start time and end time, the returned meter identifier as well as meter event history.

2.2.1.1.2      Interface Specification

Table of specification:

Item

Description

Method

GetHistoryLogByMeterNo

URL

[httpSchema]://[IP]:[Port]/xxx/multispeak/services/ v3.0/mdm?wsdl

Request

Header

<?xml version="1.0" encoding="utf-8"?>

<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">

  <soap:Header>

    <MultiSpeakMsgHeader Version="string" UserID="string" Pwd="string" AppName="string" AppVersion="string" Company="string" CSUnits="feet or meters or USSurveyFeet or other" CoordinateSystem="string" Datum="string" SessionID="string" PreviousSessionID="string" ObjectsRemaining="integer" LastSent="string" RegistrationID="string" xmlns="http://www.multispeak.org/Version_3.0" />

  </soap:Header>

  <soap:Body>

    <GetHistoryLogByMeterNo xmlns="http://www.multispeak.org/Version_3.0">

      <meterNo>string</meterNo>

      <startDate>dateTime</startDate>

      <endDate>dateTime</endDate>

    </GetHistoryLogByMeterNo>

  </soap:Body>

</soap:Envelope>

Response

Body

<?xml version="1.0" encoding="utf-8"?>

<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">

  <soap:Header>

    <MultiSpeakMsgHeader Version="string" UserID="string" Pwd="string" AppName="string" AppVersion="string" Company="string" CSUnits="feet or meters or USSurveyFeet or other" CoordinateSystem="string" Datum="string" SessionID="string" PreviousSessionID="string" ObjectsRemaining="integer" LastSent="string" RegistrationID="string" xmlns="http://www.multispeak.org/Version_3.0" />

  </soap:Header>

  <soap:Body>

    <GetHistoryLogByMeterNoResponse xmlns="http://www.multispeak.org/Version_3.0">

      <GetHistoryLogByMeterNoResult>

        <historyLog>

          <meterID>string</meterID>

          <eventList>

            <event xsi:nil="true" />

            <event xsi:nil="true" />

          </eventList>

        </historyLog>

        <historyLog>

          <meterID>string</meterID>

          <eventList>

            <event xsi:nil="true" />

            <event xsi:nil="true" />

          </eventList>

        </historyLog>

      </GetHistoryLogByMeterNoResult>

    </GetHistoryLogByMeterNoResponse>

  </soap:Body>

</soap:Envelope>

 

 

2.2.1.2  GetLatestReadingByMeterNo

2.2.1.2.1      Scenaro Introduction

MDM requests MS meter data in real time, including meter reading, meterNo, readingDate, posKWh, negKWh, kWDateTime, momentaryOutages, momentaryEvents, TOUReadings, readingValues. MDM requests MS of last meter reading in the customer object by sending meter No.. MDM returns the most recent meter reading data for a given MeterNo.

2.2.1.2.2      Interface Specification

Table of specification:

Item

Description

Method

GetLatestReadingByMeterNo

URL

[httpSchema]://[IP]:[Port]/xxx/multispeak/services/ v3.0/ms?wsdl

Request

Header

Content-Type: text/xml; charset=utf-8

Content-Length: length

SOAPAction: "http://www.multispeak.org/Version_3.0/GetLatestReadingByMeterNo"

Request

Body

<?xml version="1.0" encoding="utf-8"?>

<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">

  <soap:Header>

    <MultiSpeakMsgHeader Version="string" UserID="string" Pwd="string" AppName="string" AppVersion="string" Company="string" CSUnits="feet or meters or USSurveyFeet or other" CoordinateSystem="string" Datum="string" SessionID="string" PreviousSessionID="string" ObjectsRemaining="integer" LastSent="string" RegistrationID="string" xmlns="http://www.multispeak.org/Version_3.0" />

  </soap:Header>

  <soap:Body>

    <GetLatestReadingByMeterNo xmlns="http://www.multispeak.org/Version_3.0">

      <meterNo>string</meterNo>

    </GetLatestReadingByMeterNo>

  </soap:Body>

</soap:Envelope>

Response

Body

<?xml version="1.0" encoding="utf-8"?>

<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">

  <soap:Header>

    <MultiSpeakMsgHeader Version="string" UserID="string" Pwd="string" AppName="string" AppVersion="string" Company="string" CSUnits="feet or meters or USSurveyFeet or other" CoordinateSystem="string" Datum="string" SessionID="string" PreviousSessionID="string" ObjectsRemaining="integer" LastSent="string" RegistrationID="string" xmlns="http://www.multispeak.org/Version_3.0" />

  </soap:Header>

  <soap:Body>

    <GetLatestReadingByMeterNoResponse xmlns="http://www.multispeak.org/Version_3.0">

      <GetLatestReadingByMeterNoResult>

        <meterNo>string</meterNo>

        <deviceID>string</deviceID>

        <readingDate>dateTime</readingDate>

        <posKWh>integer</posKWh>

        <negKWh>integer</negKWh>

        <kW>float</kW>

        <kVAr>float</kVAr>

        <kWDateTime>dateTime</kWDateTime>

        <phase>A or B or C or AB or AC or BC or ABC or Unknown</phase>

        <momentaryOutages>integer</momentaryOutages>

        <momentaryEvents>integer</momentaryEvents>

        <sustainedOutages>integer</sustainedOutages>

        <TOUReadings>

          <TOUReading>

            <extensions xsi:nil="true" />

            <extensionsList xsi:nil="true" />

            <ratePeriod>integer</ratePeriod>

            <kWh>integer</kWh>

            <kW>float</kW>

            <kWDateTime>dateTime</kWDateTime>

          </TOUReading>

          <TOUReading>

            <extensions xsi:nil="true" />

            <extensionsList xsi:nil="true" />

            <ratePeriod>integer</ratePeriod>

            <kWh>integer</kWh>

            <kW>float</kW>

            <kWDateTime>dateTime</kWDateTime>

          </TOUReading>

        </TOUReadings>

        <readingValues>

          <readingValue>

            <extensions xsi:nil="true" />

            <extensionsList xsi:nil="true" />

            <units>string</units>

            <value>string</value>

            <readingType>string</readingType>

            <readingValueType>bytes</readingValueType>

            <name>string</name>

            <dateTime>dateTime</dateTime>

          </readingValue>

          <readingValue>

            <extensions xsi:nil="true" />

            <extensionsList xsi:nil="true" />

            <units>string</units>

            <value>string</value>

            <readingType>string</readingType>

            <readingValueType>bytes</readingValueType>

            <name>string</name>

            <dateTime>dateTime</dateTime>

          </readingValue>

        </readingValues>

      </GetLatestReadingByMeterNoResult>

    </GetLatestReadingByMeterNoResponse>

  </soap:Body>

</soap:Envelope>

 

 

 

2.2.1.3  GetReadingsByDate

2.2.1.3.1      Scenaro Introduction

MDM requests MS of meter reading in the customer object by sending metering date. MS responds identification of meter and meter reading date, active reading, reactive reading, demand reading, occurrence time, disconnection times, meter event times, TOU, power quality and so on.

2.2.1.3.2      Interface Specification

Table of specification:

Item

Description

Method

GetReadingsByDate

URL

[httpSchema]://[IP]:[Port]/xxx/multispeak/services/ v3.0/ms?wsdl

Request

Header

Content-Type: text/xml; charset=utf-8

Content-Length: length

SOAPAction: "http://www.multispeak.org/Version_3.0/GetReadingsByDate"

Request

Body

<?xml version="1.0" encoding="utf-8"?>

<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">

  <soap:Header>

    <MultiSpeakMsgHeader Version="string" UserID="string" Pwd="string" AppName="string" AppVersion="string" Company="string" CSUnits="feet or meters or USSurveyFeet or other" CoordinateSystem="string" Datum="string" SessionID="string" PreviousSessionID="string" ObjectsRemaining="integer" LastSent="string" RegistrationID="string" xmlns="http://www.multispeak.org/Version_3.0" />

  </soap:Header>

  <soap:Body>

    <GetReadingsByDate xmlns="http://www.multispeak.org/Version_3.0">

      <startDate>dateTime</startDate>

      <endDate>dateTime</endDate>

      <lastReceived>string</lastReceived>

    </GetReadingsByDate>

  </soap:Body>

</soap:Envelope>

Response

Body

<?xml version="1.0" encoding="utf-8"?>

<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">

  <soap:Header>

    <MultiSpeakMsgHeader Version="string" UserID="string" Pwd="string" AppName="string" AppVersion="string" Company="string" CSUnits="feet or meters or USSurveyFeet or other" CoordinateSystem="string" Datum="string" SessionID="string" PreviousSessionID="string" ObjectsRemaining="integer" LastSent="string" RegistrationID="string" xmlns="http://www.multispeak.org/Version_3.0" />

  </soap:Header>

  <soap:Body>

    <GetReadingsByDateResponse xmlns="http://www.multispeak.org/Version_3.0">

      <GetReadingsByDateResult>

        <meterRead>

          <meterNo>string</meterNo>

          <deviceID>string</deviceID>

          <readingDate>dateTime</readingDate>

          <posKWh>integer</posKWh>

          <negKWh>integer</negKWh>

          <kW>float</kW>

          <kVAr>float</kVAr>

          <kWDateTime>dateTime</kWDateTime>

          <phase>A or B or C or AB or AC or BC or ABC or Unknown</phase>

          <momentaryOutages>integer</momentaryOutages>

          <momentaryEvents>integer</momentaryEvents>

          <sustainedOutages>integer</sustainedOutages>

          <TOUReadings>

            <TOUReading xsi:nil="true" />

            <TOUReading xsi:nil="true" />

          </TOUReadings>

          <readingValues>

            <readingValue xsi:nil="true" />

            <readingValue xsi:nil="true" />

          </readingValues>

        </meterRead>

        <meterRead>

          <meterNo>string</meterNo>

          <deviceID>string</deviceID>

          <readingDate>dateTime</readingDate>

          <posKWh>integer</posKWh>

          <negKWh>integer</negKWh>

          <kW>float</kW>

          <kVAr>float</kVAr>

          <kWDateTime>dateTime</kWDateTime>

          <phase>A or B or C or AB or AC or BC or ABC or Unknown</phase>

          <momentaryOutages>integer</momentaryOutages>

          <momentaryEvents>integer</momentaryEvents>

          <sustainedOutages>integer</sustainedOutages>

          <TOUReadings>

            <TOUReading xsi:nil="true" />

            <TOUReading xsi:nil="true" />

          </TOUReadings>

          <readingValues>

            <readingValue xsi:nil="true" />

            <readingValue xsi:nil="true" />

          </readingValues>

        </meterRead>

      </GetReadingsByDateResult>

    </GetReadingsByDateResponse>

  </soap:Body>

</soap:Envelope>

 

 

 

2.2.1.4  GetReadingsByMeterNo

2.2.1.4.1      Scenaro Introduction

MDM requests MS of meter reading in the customer object by sending meter No.. MS responds identification of meter and meter reading date, active reading, reactive reading, demand reading, occurrence time, disconnection times, meter event times, TOU, power quality and so on.

2.2.1.4.2      Interface Specification

Table of specification:

Item

Description

Method

GetReadingsByMeterNo

URL

[httpSchema]://[IP]:[Port]/xxx/multispeak/services/ v3.0/ms?wsdl

Request

Header

Content-Type: text/xml; charset=utf-8

Content-Length: length

SOAPAction: "http://www.multispeak.org/Version_3.0/GetReadingsByMeterNo"

Request

Body

<?xml version="1.0" encoding="utf-8"?>

<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">

  <soap:Header>

    <MultiSpeakMsgHeader Version="string" UserID="string" Pwd="string" AppName="string" AppVersion="string" Company="string" CSUnits="feet or meters or USSurveyFeet or other" CoordinateSystem="string" Datum="string" SessionID="string" PreviousSessionID="string" ObjectsRemaining="integer" LastSent="string" RegistrationID="string" xmlns="http://www.multispeak.org/Version_3.0" />

  </soap:Header>

  <soap:Body>

    <GetReadingsByMeterNo xmlns="http://www.multispeak.org/Version_3.0">

      <meterNo>string</meterNo>

      <startDate>dateTime</startDate>

      <endDate>dateTime</endDate>

    </GetReadingsByMeterNo>

  </soap:Body>

</soap:Envelope>

Response

Body

<?xml version="1.0" encoding="utf-8"?>

<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">

  <soap:Header>

    <MultiSpeakMsgHeader Version="string" UserID="string" Pwd="string" AppName="string" AppVersion="string" Company="string" CSUnits="feet or meters or USSurveyFeet or other" CoordinateSystem="string" Datum="string" SessionID="string" PreviousSessionID="string" ObjectsRemaining="integer" LastSent="string" RegistrationID="string" xmlns="http://www.multispeak.org/Version_3.0" />

  </soap:Header>

  <soap:Body>

    <GetReadingsByMeterNoResponse xmlns="http://www.multispeak.org/Version_3.0">

      <GetReadingsByMeterNoResult>

        <meterRead>

          <meterNo>string</meterNo>

          <deviceID>string</deviceID>

          <readingDate>dateTime</readingDate>

          <posKWh>integer</posKWh>

          <negKWh>integer</negKWh>

          <kW>float</kW>

          <kVAr>float</kVAr>

          <kWDateTime>dateTime</kWDateTime>

          <phase>A or B or C or AB or AC or BC or ABC or Unknown</phase>

          <momentaryOutages>integer</momentaryOutages>

          <momentaryEvents>integer</momentaryEvents>

          <sustainedOutages>integer</sustainedOutages>

          <TOUReadings>

            <TOUReading xsi:nil="true" />

            <TOUReading xsi:nil="true" />

          </TOUReadings>

          <readingValues>

            <readingValue xsi:nil="true" />

            <readingValue xsi:nil="true" />

          </readingValues>

        </meterRead>

        <meterRead>

          <meterNo>string</meterNo>

          <deviceID>string</deviceID>

          <readingDate>dateTime</readingDate>

          <posKWh>integer</posKWh>

          <negKWh>integer</negKWh>

          <kW>float</kW>

          <kVAr>float</kVAr>

          <kWDateTime>dateTime</kWDateTime>

          <phase>A or B or C or AB or AC or BC or ABC or Unknown</phase>

          <momentaryOutages>integer</momentaryOutages>

          <momentaryEvents>integer</momentaryEvents>

          <sustainedOutages>integer</sustainedOutages>

          <TOUReadings>

            <TOUReading xsi:nil="true" />

            <TOUReading xsi:nil="true" />

          </TOUReadings>

          <readingValues>

            <readingValue xsi:nil="true" />

            <readingValue xsi:nil="true" />

          </readingValues>

        </meterRead>

      </GetReadingsByMeterNoResult>

    </GetReadingsByMeterNoResponse>

  </soap:Body>

</soap:Envelope>

 

 

 

2.2.1.5  InitiateConnectDisconnect

2.2.1.5.1      Scenaro Introduction

MDM issues connection or disconnection command remotely via MS including service address, customer ID., grid location, meter ID., customer No. disconnection reason, disconnection actions, etc.

2.2.1.5.2      Interface Specification

Table of specification:

Item

Description

Method

InitiateConnectDisconnect

URL

[httpSchema]://[IP]:[Port]/xxx/multispeak/services/ v3.0/ms?wsdl

Request

Header

Content-Type: text/xml; charset=utf-8

Content-Length: length

SOAPAction: "http://www.multispeak.org/Version_3.0/InitiateConnectDisconnect"

Request

Body

<?xml version="1.0" encoding="utf-8"?>

<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">

  <soap:Header>

    <MultiSpeakMsgHeader Version="string" UserID="string" Pwd="string" AppName="string" AppVersion="string" Company="string" CSUnits="feet or meters or USSurveyFeet or other" CoordinateSystem="string" Datum="string" SessionID="string" PreviousSessionID="string" ObjectsRemaining="integer" LastSent="string" RegistrationID="string" xmlns="http://www.multispeak.org/Version_3.0" />

  </soap:Header>

  <soap:Body>

    <InitiateConnectDisconnect xmlns="http://www.multispeak.org/Version_3.0">

      <cdEvents>

        <connectDisconnectEvent>

          <servLoc>string</servLoc>

          <custID>string</custID>

          <gridLocation>string</gridLocation>

          <accountNumber>string</accountNumber>

          <meterID>string</meterID>

          <loadActionCode>Connect or Disconnect or InitiatePowerLimitation or Open or Closed or Armed or Unknown or Arm or Enable or Disable or Enabled or Disabled</loadActionCode>

          <powerLimitationValue>float</powerLimitationValue>

          <powerLimitationUnits>kW or kWh or A</powerLimitationUnits>

          <reasonCode>NonPayment or ServiceInactive or PaymentAgreement or PaymentReceived or NewCustomer</reasonCode>

          <amountDue>float</amountDue>

          <meterNo>string</meterNo>

        </connectDisconnectEvent>

      </cdEvents>

      <responseURL>string</responseURL>

      <transactionID>string</transactionID>

    </InitiateConnectDisconnect>

  </soap:Body>

</soap:Envelope>

Response

Body

<?xml version="1.0" encoding="utf-8"?>

<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">

  <soap:Header>

    <MultiSpeakMsgHeader Version="string" UserID="string" Pwd="string" AppName="string" AppVersion="string" Company="string" CSUnits="feet or meters or USSurveyFeet or other" CoordinateSystem="string" Datum="string" SessionID="string" PreviousSessionID="string" ObjectsRemaining="integer" LastSent="string" RegistrationID="string" xmlns="http://www.multispeak.org/Version_3.0" />

  </soap:Header>

  <soap:Body>

    <InitiateConnectDisconnectResponse xmlns="http://www.multispeak.org/Version_3.0">

      <InitiateConnectDisconnectResult>

        <errorObject objectID="string" errorString="string" nounType="string" eventTime="dateTime" />

      </InitiateConnectDisconnectResult>

    </InitiateConnectDisconnectResponse>

  </soap:Body>

</soap:Envelope>

 

 

2.2.1.6  DisconnectionStatesChangedNotification

2.2.1.6.1      Scenaro Introduction

Notification of batch disconnection status changes from MS to MDM, including meter, disconnection status and disconnection command ID.

2.2.1.6.2      Interface Specification

Table of specification:

Item

Description

Method

CDStatesChangedNotification

URL

[httpSchema]://[IP]:[Port]/xxx/multispeak/services/ v3.0/cb?wsdl

Request

Header

Content-Type: text/xml; charset=utf-8

Content-Length: length

SOAPAction: "http://www.multispeak.org/Version_3.0/CDStatesChangedNotification"

Request

Body

<?xml version="1.0" encoding="utf-8"?>

<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">

  <soap:Header>

    <MultiSpeakMsgHeader Version="string" UserID="string" Pwd="string" AppName="string" AppVersion="string" Company="string" CSUnits="feet or meters or USSurveyFeet or other" CoordinateSystem="string" Datum="string" SessionID="string" PreviousSessionID="string" ObjectsRemaining="integer" LastSent="string" RegistrationID="string" xmlns="http://www.multispeak.org/Version_3.0" />

  </soap:Header>

  <soap:Body>

    <CDStatesChangedNotification xmlns="http://www.multispeak.org/Version_3.0">

      <stateChanges>

        <CDStateChange>

          <meterID>string</meterID>

          <meterNo>string</meterNo>

          <stateChange>Connect or Disconnect or InitiatePowerLimitation or Open or Closed or Armed or Unknown or Arm or Enable or Disable or Enabled or Disabled</stateChange>

        </CDStateChange>

      </stateChanges>

      <transactionID>string</transactionID>

    </CDStatesChangedNotification>

  </soap:Body>

</soap:Envelope>

Response

Body

<?xml version="1.0" encoding="utf-8"?>

<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">

  <soap:Header>

    <MultiSpeakMsgHeader Version="string" UserID="string" Pwd="string" AppName="string" AppVersion="string" Company="string" CSUnits="feet or meters or USSurveyFeet or other" CoordinateSystem="string" Datum="string" SessionID="string" PreviousSessionID="string" ObjectsRemaining="integer" LastSent="string" RegistrationID="string" xmlns="http://www.multispeak.org/Version_3.0" />

  </soap:Header>

  <soap:Body>

    <CDStatesChangedNotificationResponse xmlns="http://www.multispeak.org/Version_3.0">

      <CDStatesChangedNotificationResult>

        <errorObject objectID="string" errorString="string" nounType="string" eventTime="dateTime" />

      </CDStatesChangedNotificationResult>

    </CDStatesChangedNotificationResponse>

  </soap:Body>

</soap:Envelope>

 

2.2.2   MDM & CB Interfacing Scenario

Figure B-2. MultiSpeak Approach to MDM&MS Interfacing

2.2.2.1  CustomerChangedNotification

2.2.2.1.1      Scenaro Introduction

CB notifies MDM of a change which includes name, address, phone number, billing cycle, etc. in the customer object by sending the changed customer object. MDM returns information about failed transactions using an array of error Objects. The message header attribute 'registrationID' should be added to all publish messages to indicate to the subscriber under which registrationID they received this notification data.

2.2.2.1.2      Interface Specification

Table of specification:

Item

Description

Method

CustomerChangedNotification

URL

[httpSchema]://[IP]:[Port]/xxx/multispeak/services/ v3.0/mdm?wsdl

Request

Header

Content-Type: text/xml; charset=utf-8

Content-Length: length

SOAPAction: "http://xxx/multiservices/v3.0/CustomerChangedNotification"

Request

Body

<?xml version="1.0" encoding="utf-8"?>

<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">

  <soap:Header>

    <MultiSpeakMsgHeader Version="string" UserID="string" Pwd="string" AppName="string" AppVersion="string" Company="string" CSUnits="feet or meters or USSurveyFeet or other" CoordinateSystem="string" Datum="string" SessionID="string" PreviousSessionID="string" ObjectsRemaining="integer" LastSent="string" RegistrationID="string" xmlns="http://www.multispeak.org/Version_3.0" />

  </soap:Header>

  <soap:Body>

    <CustomerChangedNotification xmlns="http://www.multispeak.org/Version_3.0">

      <changedCustomers>

        <customer>

          <lastName>string</lastName>

          <firstName>string</firstName>

          <mName>string</mName>

          <dBAName>string</dBAName>

          <homeAc>string</homeAc>

          <homePhone>string</homePhone>

          <dayAc>string</dayAc>

          <dayPhone>string</dayPhone>

          <billAddr1>string</billAddr1>

          <billAddr2>string</billAddr2>

          <billCity>string</billCity>

          <billState>string</billState>

          <billZip>string</billZip>

          <contactInfo>

            <phoneList xsi:nil="true" />

            <eMailList xsi:nil="true" />

          </contactInfo>

       

 

 

<extensionsList>

          <ns2:extensionsItem>

             <extName>custId</extName>

              <extValue>string</extValue>

              <extType>string</extType>

          </ns2:extensionsItem>

           <ns2:extensionsItem>

             <extName>owner</extName>

             <extValue>string</extValue>

             <extType>string</extType>

           </ns2:extensionsItem>

      </extensionsList>

</customer>

  </changedCustomers>

    </CustomerChangedNotification>

  </soap:Body>

</soap:Envelope>

Response

Body

<?xml version="1.0" encoding="utf-8"?>

<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">

  <soap:Header>

    <MultiSpeakMsgHeader Version="string" UserID="string" Pwd="string" AppName="string" AppVersion="string" Company="string" CSUnits="feet or meters or USSurveyFeet or other" CoordinateSystem="string" Datum="string" SessionID="string" PreviousSessionID="string" ObjectsRemaining="integer" LastSent="string" RegistrationID="string" xmlns="http://www.multispeak.org/Version_3.0" />

  </soap:Header>

  <soap:Body>

    <CustomerChangedNotificationResponse xmlns="http://www.multispeak.org/Version_3.0">

      <CustomerChangedNotificationResult>

        <errorObject objectID="string" errorString="string" nounType="string" eventTime="dateTime" />

        <errorObject objectID="string" errorString="string" nounType="string" eventTime="dateTime" />

      </CustomerChangedNotificationResult>

    </CustomerChangedNotificationResponse>

  </soap:Body>

</soap:Envelope>

 

 

2.2.2.2  MeterChangedNotification

2.2.2.2.1      Scenaro Introduction

CB notifies MDM of a change in the meter object by sending the changed meter object. MDM returns information about failed transactions using an array of errorObjects. The message header attribute 'registrationID' should be added to all publish messages to indicate to the subscriber under which registrationID they received this notification data.

2.2.2.2.2      Interface Specification

Table of specification:

Item

Description

Method

MeterChangedNotification

URL

[httpSchema]://[IP]:[Port]/xxx/multispeak/services/ v3.0/mdm?wsdl

Request

Header

Content-Type: text/xml; charset=utf-8

Content-Length: length

SOAPAction: "http://xxx/multiservices/v3.0/ MeterChangedNotification"

Request

Body

<?xml version="1.0" encoding="utf-8"?>

<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">

  <soap:Header>

    <MultiSpeakMsgHeader Version="string" UserID="string" Pwd="string" AppName="string" AppVersion="string" Company="string" CSUnits="feet or meters or USSurveyFeet or other" CoordinateSystem="string" Datum="string" SessionID="string" PreviousSessionID="string" ObjectsRemaining="integer" LastSent="string" RegistrationID="string" xmlns="http://www.multispeak.org/Version_3.0" />

  </soap:Header>

  <soap:Body>

    <MeterChangedNotification xmlns="http://www.multispeak.org/Version_3.0">

      <changedMeters>

        <meter>

          <meterNo>string</meterNo>

          <serialNumber>string</serialNumber>

          <meterType>string</meterType>

          <manufacturer>string</manufacturer>

          <sealNumberList>

            <sealNumber>string</sealNumber>

            <sealNumber>string</sealNumber>

          </sealNumberList>

          <AMRType>string</AMRType>

          <AMRDeviceType>string</AMRDeviceType>

          <AMRVendor>string</AMRVendor>

          <nameplate>

            <kh>float</kh>

            <kr>float</kr>

            <frequency>DC or AC 25Hz or AC 50Hz or AC 50-60Hz or AC 60Hz</frequency>

            <numberOfElements>numberOfElements 1 or numberOfElements 1.5 or numberOfElements 2 or numberOfElements 2.5 or numberOfElements 3 or numberOfElements 6

</numberOfElements>

            <baseType>Base Type 1 or S-base or A-Base or B-Base or K-Base or P-Base or IECBottomConnected or switchboard or rackmount</baseType>

            <accuracyClass>string</accuracyClass>

            <elementsVoltage>ElementVoltage 69.3 or ElementVoltage 72 or ElementVoltage 120 or ElementVoltage 208 or ElementVoltage 240 or ElementVoltage 277 or ElementVoltage 347 or ElementVoltage 480 or ElementVoltage 600 or ElementVoltge120-277 or ElementVoltage120-240</elementsVoltage>

            <supplyVoltage>SupplyVoltage 69.3 or SupplyVoltage 72 or SupplyVoltage 120 or SupplyVoltage 208 or SupplyVoltage 240 or SupplyVoltage 277 or SupplyVoltage 347 or SupplyVoltage 480 or SupplyVoltage 600 or SupplyVoltage120 through 277 or SupplyVoltage120 through 480 or SupplyVoltage48 DC or SupplyVoltage125 DC or SupplyVoltage250 DC

</supplyVoltage>

            <maxAmperage>float</maxAmperage>

            <testAmperage>float</testAmperage>

            <regRatio>float</regRatio>

            <phases>long</phases>

            <wires>long</wires>

            <dials>long</dials>

            <form>string</form>

            <multiplier>long</multiplier>

            <demandMult>float</demandMult>

            <transponderID>string</transponderID>

             <extensionsList>

              <ns2:extensionsItem>

                 <extName>ct</extName>

                  <extValue>string</extValue>

                  <extType>string</extType>

              </ns2:extensionsItem>

               <ns2:extensionsItem>

                 <extName>vt</extName>

                 <extValue>string</extValue>

                 <extType>string</extType>

               </ns2:extensionsItem>

                <ns2:extensionsItem>

                 <extName>dialsReactive</extName>

                  <extValue>string</extValue>

                  <extType>string</extType>

              </ns2:extensionsItem>

               <ns2:extensionsItem>

                 <extName>dialsDemand</extName>

                  <extValue>string</extValue>

                  <extType>string</extType>

              </ns2:extensionsItem>

             </extensionsList>

            </nameplate>

          <utilityInfo>

            <owner>string</owner>

            <district>string</district>

            <servLoc>string</servLoc>

            <accountNumber>string</accountNumber>

            <custID>string</custID>

            <substationCode>string</substationCode>

            <substationName>string</substationName>

            <feeder>string</feeder>

            <bus>string</bus>

            <phaseCd>A or B or C or AB or AC or BC or ABC or Unknown</phaseCd>

            <eaLoc xsi:nil="true" />

            <transformerBankID>string</transformerBankID>

            <meterBaseID>string</meterBaseID>

            <mapLocation xsi:nil="true" />

          </utilityInfo>

          <moduleList>

            <module xsi:nil="true" />

            <module xsi:nil="true" />

          </moduleList>

        </meter>

      </changedMeters>

    </MeterChangedNotification>

  </soap:Body>

</soap:Envelope>  </soap:Body>

</soap:Envelope>

Response

Body

<?xml version="1.0" encoding="utf-8"?>

<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">

  <soap:Header>

    <MultiSpeakMsgHeader Version="string" UserID="string" Pwd="string" AppName="string" AppVersion="string" Company="string" CSUnits="feet or meters or USSurveyFeet or other" CoordinateSystem="string" Datum="string" SessionID="string" PreviousSessionID="string" ObjectsRemaining="integer" LastSent="string" RegistrationID="string" xmlns="http://www.multispeak.org/Version_3.0" />

  </soap:Header>

  <soap:Body>

    <MeterChangedNotificationResponse xmlns="http://www.multispeak.org/Version_3.0">

      <MeterChangedNotificationResult>

        <errorObject objectID="string" errorString="string" nounType="string" eventTime="dateTime" />

        <errorObject objectID="string" errorString="string" nounType="string" eventTime="dateTime" />

      </MeterChangedNotificationResult>

    </MeterChangedNotificationResponse>

  </soap:Body>

</soap:Envelope>

 

 

2.2.2.3  ServiceLocationChangedNotification

2.2.2.3.1      Scenaro Introduction

CB notifies MDM of a change in the serviceLocation object by sending the changed serviceLocation object.MDM returns information about failed transactions using an array of errorObjects. The message header attribute 'registrationID' should be added to all publish messages to indicate to the subscriber under which registrationID they received this notification data.

2.2.2.3.2      Interface Specification

Table of specification:

Item

Description

Method

ServiceLocationChangedNotificat

URL

[httpSchema]://[IP]:[Port]/xxx/multispeak/services/ v3.0/mdm?wsdl

Request

Header

Content-Type: text/xml; charset=utf-8

Content-Length: length

SOAPAction: "http://xxx/multiservices/v3.0/ TransformerBankChangedNotification"

Request

Body

<?xml version="1.0" encoding="utf-8"?>

<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">