Beruflich Dokumente
Kultur Dokumente
1024448
Final Report, December 2011
NOTE
For further information about EPRI, call the EPRI Customer Assistance Center at 800.313.3774 or
e-mail askepri@epri.com.
Electric Power Research Institute, EPRI, and TOGETHERSHAPING THE FUTURE OF ELECTRICITY are
registered service marks of the Electric Power Research Institute, Inc.
Copyright 2011 Electric Power Research Institute, Inc. All rights reserved.
Acknowledgments
iii
Product
Description
Approach
EPRI attempted to obtain input from all organizations that have
been stakeholders in the development of IEC standard 61968, with
the goal of developing interoperability test protocols for the standard.
EPRI worked with the Open Smart Grid (OpenSG) Systems and
Conformity Working Groups as well as the National Institute of
Standards and Technology (NIST) Smart Grid Testing and
Certification Committee to 1) develop a test method, 2) formulate
draft policies, processes, procedures, and goals, 3) develop a test
harness to apply the procedures, and 4) pilot the interoperability
process and apply lessons learned. The conformity/interoperability
test harness was designed to be useful for any semantic level standard
such as Open Automated Demand Response (OpenADR), Open
Automatic Data Exchange (OpenADE), MultiSpeak (a registered
trademark of the National Rural Electric Cooperative Association),
and ZigBees Smart Energy Profile (SEP) 2.0.
Results
Five IEC 61968-9 standard tests have been developed for the
following test cases:
Meter Outage
Abstract
The EPRI Common Information Model (CIM) Interoperability and
Conformance Test Procedure Project designed a method for
developing, documenting, and executing standardized CIM tests
using best-practices system engineering principles. In specific, the
EPRI CIM test project developed test cases and test procedures to
verify and validate International Electrotechnical Commission (IEC)
standard 61968-9 meter reading and control messages. The method
used to develop the 61968-9 tests can be used to develop
standardized interoperability test procedures for other parts of the
CIM as well. The method can also be extended to other semantic
level standards such as Open Automated Demand Response
(OpenADR), Open Automatic Data Exchange (OpenADE),
MultiSpeak (a registered trademark of the National Rural Electric
Cooperative Association), and ZigBees Smart Energy Profile (SEP)
2.0.
vii
Executive
Summary
ix
Table of Contents
Section 1: Introduction ............................................1-1
Section 2: Challenges, Goals and Objectives ............2-1
Section 3: Development of Test Procedures for IEC
61968 ....................................................3-1
Methodology ................................................................... 3-2
Project Participants ........................................................... 3-3
Test Tool Overview ........................................................... 3-4
Test Bed and Test Harness ................................................. 3-5
Section 4: CIM Part 9 Test Suite ...............................4-1
Scheduled Meter Read Tests .............................................. 4-2
ECITP 2.01 Scheduled Meter Read Nominal
Interoperability ........................................................... 4-2
ECITP 2.02 Scheduled Meter Read System Errors ........ 4-2
On Demand Meter Read Tests ........................................... 4-2
2.03 On Demand Meter Read Nominal
Interoperability ........................................................... 4-3
2.04 On Demand Meter Read System Errors ................. 4-3
Meter Outage Tests .......................................................... 4-4
2.05 Meter Outage Nominal Interoperability ................. 4-4
2.06 Meter Outage System Errors ................................ 4-5
Meter Tampering Detection Tests........................................ 4-5
2.07 Meter Tampering Detection Nominal
Interoperability ........................................................... 4-5
2.08 Meter Tampering Detection System Errors .............. 4-6
Meter Disconnect/Reconnect Tests ..................................... 4-6
2.09 Meter Disconnect/Reconnect Nominal
Interoperability ........................................................... 4-6
2.10 Meter Disconnect/Reconnect System Errors............ 4-7
Section 5: Recommendations ...................................5-1
Appendix A: EPRI Interoperability Test Harness
How-To-Deploy Tutorial .......................... A-1
Introduction .................................................................... A-1
xi
Appendix D:
Glossary.......................................... D-1
xii
List of Figures
Figure 3-1 IEC 61968 - 9 Test Cases ....................................... 3-2
Figure 3-2 Test Artifact Development Sequence ........................ 3-3
Figure 3-3 CIM Test Team....................................................... 3-4
Figure 3-4 CIM Test Documentation Set .................................... 3-5
Figure 3-5 CIM Cloud Computing Environment ......................... 3-6
Figure 4-1 CIM Interoperability Test Development Sequence ....... 4-1
Figure A-1 EC2 Instance View................................................ A-2
Figure A-2 Request Instances Wizard, Choose An AMI ............. A-2
Figure A-3 Request Instances Wizard, Instance Details .............. A-3
Figure A-4 Request Instances Wizard, Instance Details,
Advanced ...................................................................... A-4
Figure A-5 Request Instances Wizard, Instance Details, Tags ..... A-5
Figure A-6 Request Instances Wizard, Create Key-Pair.............. A-5
Figure A-7 Request Instances Wizard, Configure Firewall.......... A-6
Figure A-8 Request Instances Wizard, Review.......................... A-7
Figure A-9 Request Instances Wizard, My Instances ................. A-7
Figure A-10 Request Instances Wizard, Vendor Naming ........... A-8
Figure A-11 My Instances, Instance Management..................... A-9
Figure A-12 Specific Instance Details, Showing Public DNS..... A-10
Figure A-13 EC2 instance, Show Master Deployment Server ... A-11
Figure A-14 Putty session, Authentication Tab ........................ A-12
Figure A-15 Putty session, Showing Deployment in Progress .... A-13
Figure A-16 Reporting UI ..................................................... A-13
Figure A-17 Browser View of Web Services .......................... A-14
Figure B-1 List of Available Web Services................................. B-2
Figure B-2 soapUI file browser ................................................ B-2
xiii
xv
Section 1: Introduction
For almost two decades EPRI research has contributed to the development of
International Electrotechnical Commission (IEC) standards such as the
Common Information Model (CIM). The CIM provides the basis for modeldriven information exchange both within and between control centers and other
systems supporting utility operations. The development of a smarter grid depends
on the development of interoperability guidelines such as that which the CIM
provides. Having a universally accepted, well defined, model-driven information
exchange is one key component for reducing cost and risk. A description of the
CIM and its history can be found elsewhere1.
The primary challenge has been to extend CIM beyond the control center and
prove that it is stable and fully implementable. Once the CIM is extended, it is
expected to allow full data management and exchange between the transmission,
distribution, planning, and generation areas of the enterprise and with outside
entities. When new data provided by these systems can be accessed, utilities may
be able to achieve efficiencies that may lower the cost of future system upgrades
and integration.
At present there are two leading efforts for software interoperability in larger
electric utilities: the OpenSG Users Group Enterprise effort and CIM
maintained by Technical Committee 57 (TC57) of IEC. The artifacts from
these groups have been developed by different committees that have some
overlap in membership. As a result, the artifacts from the two groups cover
much of the same material, but in somewhat different manners.
Electric utilities are implementing and rolling out advanced metering
infrastructure (AMI) systems. At the present time there is no common direction
in the integration requirements of the AMI system and other key systems of the
Smart Grid, including: customer information, outage management, meter data
management, load management / demand response, distribution automation,
work management, and remote connect / disconnect systems. Most vendors have
yet to consider how to integrate emerging technologies such as in-home
controllers, home area networks, distributed energy resources, and flexible
demand response systems. Those vendors that are developing and rolling out
AMI systems are not implementing standardized interfaces thus forcing costly
custom integration between vendor products at each utility.
1
Common Information Model Primer: First Edition. EPRI, Palo Alto, CA: 2011.1024449.
1-1
Reduce the cost and time required to add new electric utility applications
WG 13s IEC 61970 and WG 14s IEC 61968 series of standards are intended
to facilitate integration of various distributed software applications supporting the
operation and management of utility electrical networks. The standards specify
the interfaces that an application should implement in order to exchange
information with other applications and/or to access publicly available data in a
standard way. The application interfaces describe the content and format of the
data exchanged as well as the mechanism. For the development of new
applications, the standards enable knowing what and how information is
available for processing from other applications, as well as how the information is
expected to be transmitted and received. For the integration of an existing
application, the standards should enable a single adapter to be supplied off the
shelf for a given infrastructure Technology Platform independent of who
developed the application.
The IEC CIM standards define requirements, integration architecture, and
interfaces for the major utility applications including, but not limited to:
The CIM standards can be applied in any utility domain where a common model
is needed to facilitate interoperability between applications and systems
independent of any particular implementation. While not achieving full plug
and play adaptability, the CIM reduces the distance to integrate 2.
The first objective of the EPRI CIM Test Procedure project was to establish an
interoperability and conformity research facility at EPRIs Knoxville facility. The
EPRI CIM test facility is to be used for basic research on interoperability
between AMI, distribution automation, and various other applications. Goals for
the CIM test facility are to:
Connect physically (via VPN) and logically (via APIs or RPCs) to utility,
vendor, and other servers to establish a virtual lab enabling interoperability
testing with remote CIM-based systems
The first objective has been met and exceeded with a cloud based test harness
hosted by EPRI using Amazon web services. Information on using the test
harness including detailed instructions is contained in Appendices A and B of
this document. With the cloud-based EPRI solution tests can be run both at
EPRI and at any IP-enabled facility.
A second objective of the EPRI CIM Test Procedure project was to develop
interoperability test protocols for IEC 61968. EPRI worked with the OpenSG
Systems and Conformity Working Groups and the NIST Smart Grid Testing
and Certification Committee to:
2-2
performs them. The testing methodology and lessons learned are summarized in
this final report. The test cases, test procedures, and test processes are publically
located on the OpenSG Conformity Working Group web site at
http://osgug.ucaiug.org/conformity/Shared%20Documents/CIM_TestingArtifacts
A third objective of this project is to develop a mapping between OpenSG Users
Group artifacts and the IEC 61968 standard or other CIM standards. This
interoperability mapping is intended to (i) assist utilities in specifying these
standards with confidence as requirements in their RFPs, knowing that IEC
61968-compliant AMI, ADE, and other systems could interoperate with
minimal customization, (ii) permit vendors to develop interfaces that work with
systems compatible with the standards, and (iii) enable SmartGrid solutions to be
delivered rapidly and cost-effectively to the public.
A fourth objective is to provide analysis and harmonization of the OpenSG
artifacts into an IEC TC57 submission package for CIM extensions. This effort
is also expected to include interoperability testing of the harmonization efforts.
Further, the findings and recommendations of this project concerning
interoperability best practices, processes, and procedures are expected to be
included as part of the IEC 61968 submission packages.
The OpenSG Systems and OpenSG Conformity domains have been reviewed in
detail. Common elements in the CIM were identified and gaps in both the
OpenSG domain and the CIM implementation were identified and
recommendations made to enable CIM implementation. The OpenSG domains
include:
SG Systems: OpenAMI-Enterprise
SG Systems: OpenADR
SG Systems: OpenHAN
Relevant CIM and OpenSG requirements were mapped to both the test cases
and to steps in the test procedures.
EPRI plans for each domain to be the focus of this and future phases of this
project. Metering, automatic data exchange and some elements of distribution
automation (i.e. automated outage detection) were the focus of the first phase.
Further phases of the project may address the OpenADR, OpenHAN, or other
domains as progress in these areas makes interoperability testing feasible and
desirable.
2-3
Figure 3-1
IEC 61968 - 9 Test Cases
Methodology
The CIM Interoperability and Conformance Test Procedure project followed
best practice system engineering principals to develop the IEC 61968 - 9 test
cases and test procedures.
Best practice system engineering for test case and test procedure development
includes the following documentation and project development principles:
Test Plan
-
Test Cases
-
Overall plan defining goals, schedule and expected outcome of the test
program
Includes stakeholder roles and responsibilities
Defines test objectives and units under test (UUTs)
Includes test requirements and requirement traceability matrix (RTM)
Test Procedures
-
3-2
Test Report
-
Using the best practices shown above CIM - 9 tests were developed for
Scheduled Meter Read, On Demand Meter Read, Local Area Outage Detected
by Meters, Tampering Detection, and Remote Disconnect/Reconnect
functionality.
The standard sequence, development, and relationship of test documentation is
shown in Figure 3-2.
Figure 3-2
Test Artifact Development Sequence
Project Participants
The CIM Interoperability and Conformance Test Procedure project team was
led by EPRI and included members of the sponsoring utilities American Electric
Power, Consumers Energy, and Southern California Edison as well as other
utilities. Other participants included the OpenSG and CIM Users Groups,
utility system manufacturers, EnerNex, and the Boreas Group.
3-3
Figure 3-3
CIM Test Team
3-4
trace
EPRI CIM Interoperability Abstract Test Cases
trace
trace
EPRI CIM Conformance Abstract Test Cases
trace
Figure 3-4
CIM Test Documentation Set
3-5
Figure 3-5
CIM Cloud Computing Environment
3-6
Figure 4-1
CIM Interoperability Test Development Sequence
4-1
4-2
4-3
4-4
The ability to perform tampering detection to the CIS (or similar system) and to
the Head End (or similar system) is validated for the systems under test.
Standard IEC 61968 - 9 EndDeviceEvent messages from the head-end to the
MDMS and from the MDMS to the CIS (or similar system) are verified for one
or more meters.
Note that the message sent from the meters need not be based upon CIM
standards. Also note the use case only states that the CIS systems have access to
the tampering events and does not specify specific messages. For example, the
head-end could indicate a Cover removal detected tamper event while the
MDMS could indicate to the CIS system a Tamper Indication event.
2.08 Meter Tampering Detection System Errors
The ability to perform tampering detection when system errors are inserted at the
CIS (or similar system) and at the Head End (or similar system) is validated for
the systems under test. Standard IEC 61968 - 9 EndDeviceEvent messages
from the head-end to the MDMS and from the MDMS to the CIS (or similar
system) are verified for one or more meters.
The IEC 61968 - 9 EndDeviceEvent messages are transmitted with errors and
the ability of the systems to tolerate errors is tested. Note that the messages sent
from the meters do need not be based upon CIM standards. Also note the use
case only states that the CIS systems have access to the tampering events and
does not specify specific messages. For example, the head-end could indicate a
Cover removal detected tamper event while the MDMS could indicate to the
CIS system a Tamper Indication event.
Meter Disconnect/Reconnect Tests
The meter disconnect/reconnect tests verify the ability of AMI systems to
perform remote meter disconnects and reconnects under both nominal and error
conditions.
2.09 Meter Disconnect/Reconnect Nominal Interoperability
The ability to remotely disconnect and reconnect meters from the power
distribution system is functionality desired by many utilities. The CIS or similar
system will direct the Meter Data Management System (MDMS) or Head End
(or similar system) to remotely direct the meters to disconnect or reconnect to the
power distribution system. Disconnected meters physically will not allow power
to flow. In the IEC 61968 - 9 disconnect/reconnect examples
EndDeviceControls messages are performed by the Meter Data Management
(MDM) System (MDMS).
The Meter Disconnect/Reconnect Nominal Interoperability Test verifies that the
CIS and related systems can remotely direct meter connections and
reconnections. Actual meters, if available, may be used in the test system. Note
that potential safety hazards associated with disconnecting power e.g. for
4-6
8. The above test sequence is repeated for the meter reconnect message. The
MeterServiceRequest reconnect message is sent from the CIS to the
MDMS.
9.
10. The message traffic is monitored to verify that message retries are attempted
for the meter reconnect message.
11. The communications error is removed and the system monitored to verify
that the MeterReadings message is sent from the MDMS to request meter
usage data for the meter.
12. The CreatedMeterReading is sent from the meter/simulator to the MDMS
and onto the CIS.
13. Another meter reconnect message is sent to a different meter. A
communications error is injected which does not clear simulating a hard loss
of communications.
14. System is monitored to verify that a work order is generated to send a field
technician to the field to manually reconnect the meter.
4-8
Section 5: Recommendations
During the process of developing the CIM test methodology, test procedures,
and test harness, several challenges and potential follow-on efforts were identified
which would help advance the CIM. Challenges to the CIM implementation
and CIM test effort include:
A lack of consensus on whether the CIM should be used on a per utility basis
or across multiple utilities
A lack of a concrete framework for implementing the CIM and the inherent
difficulty of expanding a standard that successfully transfers Transmission
and Distribution system models into one which can transfer T&D
operational, as opposed to system model, information in near real time.
5-2
http://aws.amazon.com/console/
Once you have an account, enable the EC2 feature: simply click on the EC2 tab
and a wizard will walk you through the process to enable your account.
Instance Creation Steps
We will use the Instance Creation wizard to deploy new instances. A complete
walkthrough of the process is given below.
A-1
Figure A-1
EC2 Instance View
To create a new instance, click on the Launch Instance button, indicated by the
red arrow above. This will bring up the Request Instances Wizard page.
Figure A-2
Request Instances Wizard, Choose An AMI
A-2
In the Request Instances Wizard, Choose An AMI step, choose the first option,
Basic 32-bit Amazon Linux AMI Beta.
Figure A-3
Request Instances Wizard, Instance Details
In the next step, Instance Details, select the Instance Type. The test harness uses
the Micro instance. Set Number of Instances to 1, and Availability Zone to No
Preference, then click Continue. This will bring up the Advanced Instance
Options dialog.
A-3
Figure A-4
Request Instances Wizard, Instance Details, Advanced
In this dialog, accept the defaults, but update the User Data section to something
meaningful, like the actual vendor name for this instance (Company1,
Company2, etc). It will make identifying the instance easier, when there are
many listed in the home page. Then click Continue, which will bring up the Key
Tags page.
A-4
Figure A-5
Request Instances Wizard, Instance Details, Tags
This dialog allows the user to enter key-value tags to further help manage the
instances. In this dialog, create a key-value pair called Name, with the same
value that was used in the previous dialog. Click Continue to bring up the
Create KeyPair dialog.
Figure A-6
Request Instances Wizard, Create Key-Pair
A-5
A Key-Pair controls access to the instance. For simplicity, use the same key-pair
for each instance. Then there is no need to hunt down the correct key-pair.
However, separate key-pairs can be set up for each instance if desired. There
should be an existing key-pair called interop_test in the pull-down list. Choose
this entry and click Continue to bring up the Configure Firewall dialog. Once
created download the key-pair for local use.
The EPRI EC2 account has a key-pair already generated, named interop_test.
This key-pair must be used when creating test harness instances, as the
deployment server relies upon it.
Figure A-7
Request Instances Wizard, Configure Firewall
The Configure Firewall dialog controls which ports are open to the instance.
Typical ports are 80(http), 8080(web services), 22(ssh), etc. Your account was
already configured with a SecurityGroup called web services, which opens the
following ports:
22 ssh
80 http
8080 - 8085 web services
3000 UI debugging
Choose the web service security group and click Continue to bring up the Review
dialog.
A-6
Figure A-8
Request Instances Wizard, Review
Click the Launch button to start the instance. This return the user to the EC2
list of instances dialog.
Figure A-9
Request Instances Wizard, My Instances
A-7
The newly created instance will appear in the list with a Name value of the value
entered on the Key-Value page and a Status of pending. The Status value will
eventually change to running.
For easy identification, if the Name field is incorrect, mouse over the Name
and click the pencil icon that appears to edit the text.
Enter the vendor name in the field and choose Save. The Name field will be
changed to the entered value. This is the simplest way to identify each instance
in the list.
Figure A-10
Request Instances Wizard, Vendor Naming
A-8
Figure A-11
My Instances, Instance Management
Available options are indicated by the red arrow and will change, depending on
the current state of the instance. The Terminate option will delete the
instance. Click on the name (but not the edit icon, to display more instance
details.
A-9
Figure A-12
Specific Instance Details, Showing Public DNS
Its important to understand that a new IP address and a new public DNS name
is assigned each time the instance is restarted. The public DNS name is shown
underlined in red. This is the hostname that must be used (as the baseURL
value) in all of the test harness examples. It is the only way for the vendor to
access the test harness. The public DNS name must be given to the vendor as
part of the handoff.
In the future Amazon ElasticIPs could be used to prevent the issue with the
Public DNS name restart. This would require EPRI to allocate some domain
names/hostnames.
Deploying applications to each instance
Now that the instance has been created and is running, the test harness must be
deployed. This is a one time process.
Log into the master deployment server instance - you can see it in the list of
instances on the AWS EC2 page. You will need to know the public DNS name,
which you can determine as shown in the previous section. The same key-pair,
interop_test, can be used to access the master deployment server.
A-10
Figure A-13
EC2 instance, Show Master Deployment Server
A-11
Figure A-14
Putty session, Authentication Tab
A-12
Below is a typical putty session showing the start of a new instance deployment.
Note that it is prompting the user for the Public DNS name of the new instance.
Figure A-15
Putty session, Showing Deployment in Progress
After entering the Public DNS name of the new instance, the script will take
some time to configure the server, at least 10 to 15 minutes. Once complete, the
new instance (and test harness) is ready to use.
Verify Test Harness is Functioning
Verify test harness availability by browsing to the following URLs.
http://Public DNS name of vendor instance
The browser should display the current test harness UI reporting information:
Figure A-16
Reporting UI
A-13
Figure A-17
Browser View of Web Services
A-14
http://baseurl:8080/epriConnect/
The URL should display a page similar to Figure B-1, confirming that the
services are available and ready for use.
B-1
Figure B-1
List of Available Web Services
Figure B-2
soapUI file browser
B-2
Browse to the soapui/ directory and choose one of the project files for this
example, choose MeterConnect-CIS-1.xml. Once loaded, it should appear in the
navigator bar, Figure B-3.
Figure B-3
SoapUI with Project in Navigator Bar
For this interface, there is one incoming message that the test harness will
validate Test package Meter Connect, CIS interface 1. The interfaces have been
numbered for easier reference within the test. In this example, the vendor role is
CIS, with the test harness in the role of MDMS and AMI head-end.
B-3
Figure B-4
Meter Connect package UML diagram
Figure B-4 shows the UML diagram for the Meter Connect test package. Note
interface 1, which involves the CIS vendor sending in a connect/disconnect
request to the MDM (test harness).
Using soapui
EPRI also includes a web-based reporting user interface that displays the results
of test progress. To view the test results, browse to:
http://baseurl.
The URL will display a screen similar to that shown in Figure B-5.
B-4
Figure B-5
Web UI home page
Note that all percentages are currently 0%, as this is the first time using the
instance. There are four boxes on the home page, one for each vendor role
in this example, all roles are enabled.
Each message to be validated has both a successful and unsuccessful test example
in the project. To simulate the message request, go to soapUI and click on the
CreatedMeterServiceRequests TestCase, then on TestSteps.
Figure B-6
SoapUI, meter service requests
B-5
Figure B-7
SoapUI, modifying the endpoint url
Note the endpoint address, highlighted next to the red indicator in Figure B-7.
This endpoint must be modified to point to the actual EC2 instance, using the
base URL.
Click on the endpoint pulldown, and choose add new endpoint from the menu,
as in Figure B-8.
Figure B-8
SoapUI, endpoint menu
B-6
As Figure B-9 shows, in the Add new endpoint popup, replace the hostname
with the base URL name (within the blue highlight), and click OK. The test is
now pointed to the EC2 vendor instance the endpoint for this test will not
need to be changed again. Make sure the endpoint url agrees with the value
specified in the package documentation at the end of this document. The default
soapUI project files should have the correct endpoints already.
Figure B-9
SoapUI, editing the endpoint url
To send the test message to the EC2 instance, click on the green arrow in the left
of the menu bar.
Figure B-10
SoapUI, sending Meter Service request message
The server should respond with the failed message in Figure B-11.
B-7
Figure B-11
SoapUI failed message response
In this example, because there was a problem with the actual formatted .xml
message, the error returned will give the line number of the offending message
data. The error messages do not always pinpoint the exact line number, but
generally give enough information to determine the cause of the problem.
Navigate to the WebUI for the test results and refresh the browser page.
Figure B-12
WebUI, home page with 0% success
Click on the MeterConnect label, to navigate to the detailed log page for the
package, as shown in Figure B-12.
B-8
Figure B-13
WebUI, failed service request in package view
The Package Status displays that the latest invocation of the meter service
request failed. Clicking on the Logs link will display the detailed log view of
the interface.
Figure B-14
WebUI failed service request log listing
Clicking on the Show link will display all details of the logged service call. In
this example, the serviceIn log shows the details of the incoming message, while
the serviceOutFault shows the details of the actual error.
B-9
Figure B-15
WebUI incoming log for failed request
Figure B-16
WebUI response message to failed message
B-10
Note that there is no need to re-add the endpoint, it can be selected from the
pulldown now
Click the green button to send the request to the server. This time, the server
responds with a successful message in Figure B-17.
Figure B-17
SoapUI successful message response
B-11
Figure B-18
WebUI 33% complete
Figure B-19
WebUI success for interface 1.
B-12
Figure B-20
WebUI listing of log entries
Note the latest pair of messages has a value of success in the ResultCode field.
Incoming Messages
In the MeterConnect CIS example, there are 3 messages: one outgoing from
CIS, and two incoming messages. The previous section demonstrates how to
send a message to the EC2 instance to be parsed. For the next two examples
soapUI will be used to request a message to be returned.
Open the MeterConnect CIS -2 project in soapUI. There should be two
projects in the navigation bar, as seen in Figure B-21.
Figure B-21
SoapUI loading MeterConnect CIS-2 project
In order to receive the message, a service must be made available. In soapUI, this
is done by using a mock service.
Important note: The user will need a public IP/hostname in order to receive
a message from the cloud. However, if a static IP is unavailable, or the user
is behind a NAT firewall, port forwarding (See port forwarding section) will
allow the messages to be received. For now, it is assumed that a public
hostname and appropriate open ports are available.
B-13
Figure B-22
SoapUI mock service start
Figure B-23
Mock service options
In the MockService Options dialog, the user can change the port number, as well
as the localhost name. Note them down for the purposes of this test soapUI
will bind to the port on the machine that it executes on by default.
Click the green start arrow in the menu bar to start the mock service. To make
space, minimize the window or, right click in the navigation bar and choose
Start Minimized as in Figure B-24.
B-14
Figure B-24
SoapUI Mock service menu, start minimized
Double-click on the minimized mock services window to expand it. Note that
the message log is empty, as shown in Figure B-25.
B-15
Figure B-25
SoapUI. Mock service, no messages
B-16
Figure B-26
Sending message request, changing reply address
The endpoint must be changed to point to the EC2 instance, as before. In the
actual message body, edit the reply address to the users public hostname or IP
address. This is the address to which the EC2 instance will send the message.
In this case, it will point to the machine running soapUI(and the mock service
which will receive the message).
Note that the opportunity exists to change the meter ID and any other fields
as needed, however for this example, just change the address
Click on the green arrow to send the request to the test harness, which will then
send a message back to the reply address which is being served by the mock
service.
Double-click on the minimized mock services window to display it.
B-17
Figure B-27
SoapUI, mock services showing received message
The highlighted line in this dialog (Figure B-27) indicates that a message was
received. To see the actual message returned, double-click on the line.
B-18
Figure B-28
SoapUI received message from mock service
Note in the WebUI in Figure B-29, the CIS MeterConnect package now
shows 67% complete.
Figure B-29
SoapUI home page showing 67% complete
B-19
Figure B-30
SoapUI package status showing success
All packages are composed of these two types of messages outgoing messages
to be validated by the test harness, or request messages that cause the test
harness to send back a message in response.
B-20
Figure B-31
Meter Connect package, UML diagram
B-21
CIS
1. CIS sends a CREATE(#1 MeterServiceRequest) request
SoapUI Project File:
MeterConnect CIS-1.xml
Tag:
MD_CIS-MDM_Create(MeterServiceRequest)
Endpoint:
http://baseurl:8080/epriConnect/mdms/cis/send
WSDL:
SendMeterServiceRequests
SoapUI:
SendMeterServiceRequests_Binding TestSuite/
CreatedMeterServiceRequests TestCase/
Test Steps/
CreatedMeterServiceRequests
CreatedMeterServiceRequests Fail
2. Provide hook to send meter service request REPLY(#2 MeterServiceRequest)
SoapUI Project File:
MeterConnect CIS-2.xml
Tag:
MD_CISMDM_Request_Reply(MeterServiceRequest)
Endpoint:
http://baseurl:8080/epriConnect/connect/mdms/cis/request
WSDL:
ReplyMeterServiceRequests
Request WSDL:
RequestMeterServiceRequests
SoapUI Mock Service:
ReplyMeterServiceRequests_Binding MockService
SoapUI request:
RequestMeterServiceRequests_Binding TestSuite/
CreateMeterServiceRequests TestCase/
TestSteps/
CreateMeterServiceRequests
3. Provide hook to send updated meter service request Updated(#8
MeterServiceRequest)
SoapUI Project File:
MeterConnect CIS-3.xml
Tag:
MD_CISMDM_Request_Updated(MeterServiceRequest)
Endpoint:
http://baseurl:8080/epriConnect/mdms/cis/requestUpdate
WSDL:
ReplyMeterServiceRequests
Request WSDL:
RequestMeterServiceRequests
SoapUI Mock Service:
ReplyMeterServiceRequests_Binding MockService
SoapUI request:
RequestMeterServiceRequests_Binding TestSuite/
CreateMeterServiceRequests TestCase/
TestSteps/
CreateMeterServiceRequests
B-22
MDMS
1.. Provide hook to generate meter service request CREATE(#1
MeterServiceRequest)
SoapUI Project File:
MeterConnect MDMS-1.xml
Tag:
MD_MDMCIS_Request_Create(MeterServiceRequest)
Endpoint:
http://baseurl:8080/epriConnect/cis/mdms/requestCreate
WSDL:
SendMeterServiceRequests
Request WSDL:
RequestMeterServiceRequests
SoapUI Mock Service:
SendMeterServiceRequests_Binding MockService
SoapUI request:
RequestMeterServiceRequests_Binding TestSuite/
CreateMeterServiceRequests TestCase/
TestSteps/
CreateMeterServiceRequests
2. MDMS sends a REPLY(#2 MeterServiceRequest)
SoapUI Project File:
MeterConnect MDMS-2.xml
Tag:
MD-MDM-CIS_Reply(MeterServiceRequest)
Endpoint:
http://baseurl:8080/epriConnect/cis/mdms/reply
WSDL:
ReplyMeterServiceRequests
SoapUI:
SendMeterServiceRequests_Binding TestSuite/
CreatedMeterServiceRequests TestCase/
Test Steps/
Success
Fail
3. MDMS sends CREATE(#3 EndDeviceControls)
SoapUI Project File:
MeterConnect MDMS-3.xml
Tag:
MD_MDM-AMI_Create(EndDeviceControls)
Endpoint:
http://baseurl:8080/epriConnect/mdms/ami/send
WSDL:
SendDeviceControls
SoapUI:
SendEndDeviceControls_Binding TestSuite
CreatedEndDeviceControls TestCase
Test Steps
Success
Fail
B-23
B-24
B-25
AMI
1. Provide hook to generate CREATE(#3 EndDeviceControls)
SoapUI Project File:
MeterConnect AMI-1.xml
Tag:
MD_AMIMDM_Request_Create(EndDeviceControls)
Endpoint:
http://baseurl:8080/epriConnect/connect/ami/mdms/requestCreate
WSDL:
ReplyEndDeviceControls
Request WSDL:
RequestEndDeviceControls
SoapUI Mock Service:
ReplyEndDeviceControls_Binding MockService
SoapUI Request:
RequestEndDeviceControls_Binding TestSuite
CreateEndDeviceControls TestCase
Test Steps
CreateEndDeviceControls
2. AMI headend sends REPLY(#4 EndDeviceControls)
SoapUI Project File:
MeterConnect AMI-2.xml
Tag:
MD_AMI-MDM_Reply(EndDeviceControls)
Endpoint:
http://baseurl:8080/epriConnect/ami/mdms/reply
WSDL:
ReplyEndDeviceControls
SoapUI:
ReplyEndDeviceControls_Binding TestSuite
CreatedEndDeviceControls
Test Steps
Success
Fail
3. Provide hook to generate CREATE(#5 MeterReadings)
SoapUI Project File:
MeterConnect AMI-3.xml
Tag:
MD_AMIMDM_Request_Created(MeterReadings)
Endpoint:
http://baseurl:8080/epriConnect/connect/ami/mdms/requestMeterReading
WSDL:
SendMeterReadings.wsdl
Request WSDL:
SendMeterReadings.wsdl
SoapUI Mock Service:
SendMeterReadings_Binding MockService
SoapUI Request:
SendMeterReadings_Binding TestSuite
CreateMeterReadings TestCase
Test Steps
CreatedMeterReadings
B-26
B-27
Figure B-32
Meter OnDemand package, UML diagram
B-28
CIS
1. CIS sends GET(#1 MeterReading)
SoapUI Project File:
MeterOnDemand CIS-1.xml
Tag:
OD_CIS-MDM_Get(MeterReadings)
Endpoint:
http://baseurl:8080/epriConnect/
ondemand/cis/mdms/get
WSDL:
GetMeterReadings
SoapUI:
GetMeterReadings_Binding TestSuite
GetMeterReadings TestCase
Test Steps
Success
Fail
2. Provide hook to send reply send REPLY(#2 MeterReading)
SoapUI Project File:
MeterOnDemand CIS-2.xml
Tag:
OD_CIS-MDM_Reply(MeterReadings)
Endpoint:
http://baseurl:8080/epriConnect/ondemand/cis/mdms/requestMeterReading
WSDL:
ReplyMeterReadings
Request WSDL:
RequestMeterReadings
SoapUI Mock Service:
ReplyMeterReadings_Binding MockService
SoapUI Request:
RequestMeterReadings_Binding TestSuite
CreateMeterReadings TestCase
Test Steps
CreateMeterReadings
B-30
MDMS
1. Provide hook to send GET(#1 MeterReading)
SoapUI Project File:
MeterOnDemand MDMS-1.xml
Tag:
OD_MDM-CIS_Get(MeterReadings)
Endpoint:
http://baseurl:8080/epriConnect/ondemand/mdms/cis/requestGet
WSDL:
GetMeterReadings
Request WSDL:
GetMeterReadings
SoapUI Mock Service:
MockService 1
SoapUI Request:
GetMeterReadings_Binding TestSuite
GeMeterReadings TestCase
Test Steps
GetMeterReadings
2. MDMS sends REPLY(#2 MeterReading)
SoapUI Project File:
MeterOnDemand MDMS-2.xml
Tag:
OD_MDM-CIS_Reply(MeterReading)
Endpoint:
http://baseurl:8080/epriConnect/ondemand/mdms/cis/reply
WSDL:
ReplyMeterReading
SoapUI:
ReplyMeterReadings_Binding TestSuite
ReplyMeterReadings TestCase
Test Steps
Success
Fail
3. MDMS sends GET(#3 Meter Reading)
SoapUI Project File:
MeterOnDemand MDMS-3.xml
Tag:
OD_MDM-AMI_Get(MeterReadings)
Endpoint:
http://baseurl:8080/epriConnect/
ondemand/mdms/ami/send
WSDL:
GetMeterReadings
SoapUI:
GetMeterReadings_Binding TestSuite
GetMeterReadings TestCase
Test Steps
Success
Fail
B-31
B-32
AMI
1. Provide hook to generate meter GET (MeterReading)
SoapUI Project File:
MeterOnDemand AMI-1.xml
Tag:
OD_AMI-MDM_Get(MeterReadings)
Endpoint:
http://baseurl:8080/epriConnect/ondemand/ami/mdms/requestGet
WSDL:
GetMeterReadings
Request WSDL:
GetMeterReadings
SoapUI Mock Service:
GetMeterReadings_Binding MockService
SoapUI Request:
GetMeterReadings_Binding TestSuite
GeMeterReadings TestCase
Test Steps
GetMeterReadings
2. AMI sends REPLY(#4 MeterReading)
SoapUI Project File:
MeterOnDemand AMI-2.xml
Tag:
OD_AMI-MDM_Reply(MeterReading)
Endpoint:
http://baseurl:8080/epriConnect/
ondemand/ami/mdms/reply
WSDL:
ReplyMeterReadings
SoapUI:
ReplyMeterReadings_Binding TestSuite
ReplyMeterReadings TestCase
Test Steps
Success
Fail
3. Provide hook to generate meter GET (MeterReading)
SoapUI Project File:
MeterOnDemand AMI-3.xml
Tag:
OD_AMI-CIS_Get(MeterReading)
Endpoint:
http://baseurl:8080/epriConnect/ondemand/ami/cis/requestGet
WSDL:
GetMeterReadings
Request WSDL:
GetMeterReadings
SoapUI Mock Service:
GetMeterReadings_Binding MockService
SoapUI Request:
GetMeterReadings_Binding TestSuite
GeMeterReadings TestCase
Test Steps
GetMeterReadings
B-33
Figure B-33
Meter Scheduled package, UML diagram
B-34
AMI
1. Provide hook to generate CREATE(#1 MeterReadSchedule)
SoapUI Project File:
MeterSchedule MDMS-1.xml
Tag:
MS_AMI-MDM_Create(MeterReadSchedule)
Endpoint:
http://baseurl:8080/epriConnect/schedule/ami/mdms/requestSend
WSDL:
SendMeterReadSchedule
Request WSDL:
SendMeterReadSchedule
SoapUI Mock Service:
SendMeterReadSchedule_Binding MockService
SoapUI Request:
SendMeterReadSchedule_Binding TestSuite
SendMeterReadSchedule TestCase
Test Steps
CreatedMeterReadSchedule
2. Verify that REPLY(#2,MeterReadSchedule) is correct
SoapUI Project File:
MeterSchedule AMI-2.xml
Tag:
MS_AMI-MDM_Reply(MeterReadSchedule)
Endpoint:
http://baseurl:8080/epriConnect/
schedule/ami/mdms/reply
WSDL:
ReplyMeterReadSchedule
SoapUI:
ReplyMeterReadSchedule_Binding TestSuite
CreatedMeterReadSchedule TestCase
Test Steps
Success
Fail
3. Verify that CREATED(#3,MeterReading) is correct
SoapUI Project File:
MeterSchedule AMI-3.xml
Tag:
MS_AMI-MDM_Created(MeterReading)
Endpoint:
http://baseurl:8080/epriConnect/
schedule/ami/mdms/send
WSDL:
SendMeterReadings
SoapUI:
SendMeterReadings_Binding TestSuite
CreatedMeterReadings TestCase
Test Steps
Success
Fail
B-35
MDMS
1. Verify that CREATED(#1,MeterReadSchedule) is correct
SoapUI Project File:
MeterSchedule MDM-1.xml
Tag:
MS_MDM-AMI_Create(MeterReadSchedule)
Endpoint:
http://baseurl:8080/epriConnect/
schedule/mdms/ami/send
WSDL:
SendMeterReadings
SoapUI:
SendMeterReadSchedule_Binding TestSuite
CreatedMeterReadSchedule TestCase
Test Steps
Success
Fail
2. Provide hook to send REPLY(#2 MeterReadSchedule)
SoapUI Project File:
MeterSchedule MDMS-2.xml
Tag:
MS_MDMAMI_Reply(MeterReadSchedule)Endpoint:
WSDL:
ReplyMeterReadSchedule
Request WSDL:
ReplyMeterReadSchedule
SoapUI Mock Service:
ReplyMeterReadSchedule_Binding MockService
SoapUI Request:
ReplyMeterReadSchedule_Binding TestSuite
ReplyMeterReadSchedule TestCase
Test Steps
CreatedMeterReadSchedule
3. Provide hook to send CREATED(#3 MeterReading)
SoapUI Project File:
MeterSchedule MDMS-3.xml
Tag:
MS_MDM-AMI_Created(MeterReading)
Endpoint:
http://baseurl:8080/epriConnect/schedule/mdms/ami/request
WSDL:
SendMeterReadings
Request WSDL:
RequestMeterReadings
SoapUI Mock Service:
SendMeterReadings_Binding MockService
SoapUI Request:
RequestMeterReadings_Binding TestSuite
CreateMeterReadSings TestCase
Test Steps
CreateMeterReadings
B-36
Figure B-34
Meter Tamper package, UML diagram
AMI
1. AMI sends CREATED(#1,EndDeviceEvents)
SoapUI Project File:
MeterTamper AMI-1.xml
Tag:
MT_AMI-MDM_Create(EndDeviceEvents)
Endpoint:
http://baseurl:8080/epriConnect/tamper/ami/mdms/send
WSDL:
SendEndDeviceEvents
SoapUI:
SendEndDeviceEvents_Binding TestSuite/
CreatedEndDeviceEvents TestCase/
Test Steps/
Success
Fail
B-37
MDMS
1. Provide hook to send CREATED(#1EndDeviceEvents)
SoapUI Project File:
MeterTamper MDMS-1.xml
Tag:
MT_MDM-AMI_Request_Created(EndDeviceEvents)
Endpoint:
http://baseurl:8080/epriConnect
/tamper/mdms/ami/requestCreate
WSDL:
SendEndDeviceEvents
Request WSDL:
SendEndDeviceEvents
SoapUI Mock Service:
SendEndDeviceEventsRequest_Binding MockService
SoapUI request:
SendEndDeviceEventsRequests_Binding TestSuite/
CreateEndDeviceEventsRequests TestCase/
Test Steps/
CreateEndDeviceEvents
2. Verify that CREATED(#2,EndDeviceEvents) is correct
SoapUI Project File:
MeterTamper MDMS-2.xml
Tag:
MT_MDM-AMI_Create(EndDeviceEvents)
Endpoint:
http://baseurl:8080/epriConnect/tamper/mdms/cis/send
WSDL:
SendEndDeviceEvents
SoapUI:
SendEndDeviceEvents_Binding TestSuite/
CreatedEndDeviceEvents TestCase/
Test Steps/
Success
Fail
CIS
1. Provide hook to send CREATED(#1EndDeviceEvents)
SoapUI Project File:
MeterTamper CIS-1.xml
Tag:
MT_CISMDM_Request_Created(EndDeviceEvents)
Endpoint:
http://baseurl:8080/epriConnect
/tamper/cis/mdms/requestCreate
WSDL:
SendEndDeviceEvents
Request WSDL:
SendEndDeviceEvents
SoapUI Mock Service:
SendEndDeviceEvents_Binding MockService
SoapUI Request:
SendEndDeviceEvents_Binding TestSuite
CreatedEndDeviceEvents TestCase
Test Steps
CreateEndDeviceEvents
B-38
Figure B-35
Meter Outage package, UML diagram
OMS
1. Provide hook to send CREATED(#2 EndDeviceEvents)
SoapUI Project File:
MeterOutage OMS-1.xml
Tag:
MO_OMS-MDM_Created(EndDeviceEvents)
Endpoint:
http://baseurl:8080/epriConnect/outage/oms/mdm/requestSendEndDev
iceEvents
WSDL:
SendDeviceEvents
Request WSDL:
SendDeviceEvents
SoapUI Mock Service:
SendEndDeviceEvents_Binding MockService
SoapUI Request:
SendEndDeviceEvents_Binding TestSuite
CreatedEndDeviceEvents TestCase
Test Steps
CreatedEndDeviceEvents
B-39
MDMS
1. MDMS sends CREATED(#2,EndDeviceEvents)
SoapUI Project File:
MeterOutage MDMS-1.xml
Tag:
MO_MDM-OMS_Created(EndDeviceEvents)
Endpoint:
http://baseurl:8080/epriConnect/
outage/mdms/ami/send
WSDL:
SendEndDeviceEvents
SoapUI:
SendEndDeviceEvents_Binding TestSuite/
CreatedEndDeviceEvents TestCase/
Test Steps/
Success
Fail
Port Forwarding
When requesting the test harness to send a message to a receiving application, a
reply address (and port) must be supplied in the request message. This address
must be known to the cloud instance, either in the form of a qualified DNS
name, or an IP address. This can be problematic when testing from either a
laptop or development server, which may not have an external IP/public
hostname.
If this is the case, then port-forwarding should solve the problem. Contact your
system administrator for further assistance.
If testing from a home network, most routers have the capability to port forward.
Determine the routers IP address (usually from the status page) and use that as
the reply address.
B-40
C-1
C-2
Appendix D: Glossary
AMI-
AWS-
CIM-
COTS-
DMS-
MDMS-
DNS-
EC2-
OMS-
PUTTYA-
SSH-
Secure Shell
D-1
Program:
IntelliGrid
2011 Electric Power Research Institute (EPRI), Inc. All rights reserved. Electric Power
Research Institute, EPRI, and TOGETHER...SHAPING THE FUTURE OF ELECTRICITY are
registered service marks of the Electric Power Research Institute, Inc.
1024448