Enterprise Integration Using IEC

Similar documents
: ESB Implementation Profile

IEC : Implementation Profile

IEC Implementation Profiles for IEC 61968

Naming & Design Requirements (NDR)

IEC Overview CIM University UCAIug Summit Austin, TX. 18 November 2011

Introduction to IEC Landis+Gyr May 27, 2015

Implementing a Ground Service- Oriented Architecture (SOA) March 28, 2006

Distributed Systems. Web Services (WS) and Service Oriented Architectures (SOA) László Böszörményi Distributed Systems Web Services - 1

Goal: Offer practical information to help the architecture evaluation of an SOA system. Evaluating a Service-Oriented Architecture

DS 2009: middleware. David Evans

Oracle SOA Suite 11g: Build Composite Applications

CIM in HAN. CIMug Meeting Prague, Czech Republic May 10, Systems Integration Specialists Company, Inc.

Connecting ESRI to Anything: EAI Solutions

Chapter 2 Distributed Computing Infrastructure

02267: Software Development of Web Services

Asynchronous Web Services: From JAX-RPC to BPEL

describe the functions of Windows Communication Foundation describe the features of the Windows Workflow Foundation solution

This presentation is a primer on WSDL Bindings. It s part of our series to help prepare you for creating BPEL projects. We recommend you review this

Design Patterns for Net- Centric Applications

XML Web Service? A programmable component Provides a particular function for an application Can be published, located, and invoked across the Web

Services Oriented Architecture and the Enterprise Services Bus

A Messaging-Based Integration Architecture for Print Production Workflow Systems

Sun Java TM Composite Applications Platform Suite Implementing Selected EAI Patterns

SOA Distilled. Udi Dahan The Software Simplist..NET Development Expert & SOA Specialist Microsoft Solutions Architect MVP

IBM Software Group. IBM WebSphere MQ V7.0. Introduction and Technical Overview. An IBM Proof of Technology IBM Corporation

Architectural patterns and models for implementing CSPA

An introduction API testing with SoapUI

Lesson 3 SOAP message structure

Introduction and Technical Overview

PASS4TEST. IT Certification Guaranteed, The Easy Way! We offer free update service for one year

Using CIMTool. The Standards Based Integration Company. Systems Integration Specialists Company, Inc.

Oracle Application Integration Architecture - Foundation Pack 2.5: Concepts and Technologies Guide

SHORT NOTES / INTEGRATION AND MESSAGING

Web Services Development for IBM WebSphere Application Server V7.0

Getting Started with Web Services

SEMI North America XML Messaging with E128

CO Java EE 7: Back-End Server Application Development

Lesson 15 SOA with REST (Part II)

DYNAMIC CONFIGURATION OF COLLABORATION IN NETWORKED ORGANISATIONS

Simple Object Access Protocol (SOAP) Reference: 1. Web Services, Gustavo Alonso et. al., Springer

Industry Training Register. Guide to integration for ITOs

(9A05803) WEB SERVICES (ELECTIVE - III)

Data Management in Application Servers. Dean Jacobs BEA Systems

Web service design. every Web service can be associated with:

BEAAquaLogic. Service Bus. JPD Transport User Guide

MOM MESSAGE ORIENTED MIDDLEWARE OVERVIEW OF MESSAGE ORIENTED MIDDLEWARE TECHNOLOGIES AND CONCEPTS. MOM Message Oriented Middleware

Service Interface Design RSVZ / INASTI 12 July 2006

Using BMC SRM OOB Web Services

Solace JMS Broker Delivers Highest Throughput for Persistent and Non-Persistent Delivery

European Sky ATM Research (SESAR) [5][6] in Europe both consider the implementation of SWIM as a fundamental element for future ATM systems.

Software MEIC. (Lesson 20)

Overview SENTINET 3.1

What protocol to choose

Oracle Exam 1z0-478 Oracle SOA Suite 11g Certified Implementation Specialist Version: 7.4 [ Total Questions: 75 ]

Oracle Service Bus Integration Implementation Guide Oracle FLEXCUBE Universal Banking Release [April] [2014]

A Comparison of Service-oriented, Resource-oriented, and Object-oriented Architecture Styles

Lab 3: Simple Integration Use Case

C exam. IBM C IBM WebSphere Application Server Developer Tools V8.5 with Liberty Profile. Version: 1.

Getting Started with Web Services

Leveraging Web Services Application Integration. David S. Linthicum CTO Mercator

java message service marek konieczny

Web Services Overview

Utility Operations & Best Practices The CIM: What it is and how it s being used

MTAT Enterprise System Integration. Lecture 2: Middleware & Web Services

Variations Changes to the Network Model. Kendall Demaree - Alstom Grid June 17, 2014 Oslo, Norway

Tackling Application Integration Nightmares with WSO2 ESB. Hiranya Jayathilaka

Overview. Requirements. Aims. Services and messages. Architecture overview. JBossESB. What are the aims behind JBossESB?

Artix Building Service Oriented Architectures Using Artix

COMMUNICATION PROTOCOLS

Enterprise Messaging Infrastructure and use with SIB, MQ, DataPower and WMB

Artix Version Getting Started with Artix: Java

Call: JSP Spring Hibernate Webservice Course Content:35-40hours Course Outline

INTERNATIONAL STANDARD

A Comparative Study of Web Services-based Event Notification Specifications

Scaling Out Tier Based Applications

ActiveVOS Technologies

Towards a Telecommunication Service Oriented Architecture

Lesson 5 Web Service Interface Definition (Part II)

Asynchronous and Synchronous Messaging with Web Services and XML Ronald Schmelzer Senior Analyst ZapThink, LLC

Oracle SOA Suite 12c: Build Composite Applications

Quality - The Key to Successful SOA. Charitha Kankanamge WSO2 February 2011

RESTful CIM using the Open Data Protocol

ACORD Web Services Profile: 2.0 vs. 1.0

CmpE 596: Service-Oriented Computing

02267: Software Development of Web Services

Introduction to Web Services & SOA

This document is for informational purposes. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in

Future, Past & Present of a Message

Jeppesen Solution Integrator Overview DOCUMENT VERSION 1.0

Oracle. Exam Questions 1z Java Enterprise Edition 5 Web Services Developer Certified Professional Upgrade Exam. Version:Demo

RESTful Web services

Broadening Web Service Access through REST and OData?

WSDL. Stop a while to read about me!

Distributed Transactions and PegaRULES Process Commander. PegaRULES Process Commander Versions 5.1 and 5.2

Monitoring Standards for the Producers of Web Services Alexander Quang Truong

Artix ESB. Building Service Oriented Architectures Using Artix ESB. Making Software Work Together. Version 5.0 July 2007

04 Webservices. Web APIs REST Coulouris. Roy Fielding, Aphrodite, chp.9. Chp 5/6

Oliver Wulff / Talend. Flexibles Service Enabling mit Apache CXF

Complex Event Processing with Esper and WSO2 ESB. Paul Fremantle, CTO, WSO2 29 th July 2008

Middleware definitions and overview

Transcription:

Enterprise Integration Using IEC 61968-100 Scott Neumann, UISOL Margaret Goodrich, SISCO Michael Johnson, Elster CIMug Meeting

Introduction The purpose of this presentation is to describe enterprise integration using the IEC 61968-100 (draft) standard IEC 61968-100 is reflective of best practices and integration experiences, and has effectively been in use since 2006 Approach published several years ago as an EPRI report IEC 61968-100 is set for IEC approval in late 2012

Integration Choices Depending upon the integration scenario, there are many factors that may drive the implementation of an information flow Some of the implementation options include: Transactions through an ESB to create, change or delete objects Event notification messages through an ESB that indicate the create, change or delete of objects Messages through an ESB that support query requests, potentially with asynchronous replies Web service requests for queries or transactions Data set exchanges via CIM/XML files Data set updates using incremental CIM/XML Information transfer to a data warehouse using ETL mechanisms HTTP requests There are also a wide variety of technical, performance, availability and security considerations that would need to be factored/addressed for any integration choice

Scope of IEC 61968-100 WS - Direct Interaction w/o Integration Layer Web Service Client Web Service Service WS WS Client or Server using another integration technology??? ESB Integration Layer??? Client or Server using another integration technology JMS JMS Application using JMS JMS Direct integration using a JMS server Application using JMS IEC 61968-100 focuses on message-based integration using transport technologies such as JMS and web services 4

Integration Patterns There are many possible integration patterns, but there are several that provide basic building blocks These basic patterns include: Synchronous request/reply Point to point Publish/subscribe Asynchronous request/reply Request/reply patterns can be used to support queries as well as transactions

Basic Integration Patterns Synchronous Request/Reply Callback This is the sort of stuff you can do with even the most basic RPC and functionally limited technologies. Modern integration needs more than this, which is why we see ESBs.

Basic ESB Integration Patterns Synchronous Request/Reply Point-to-Point (One Way) Publish/Subscribe Asynchronous Request/Reply

Request/Reply Implementations JMS Client Basic examples using web services and JMS Web services can either have generic interfaces or be strongly typed Web Service Client WS Interface Request Reply Request JMS Topic or Queue JMS Interface Reply Reply Topic or Queue ESB or standalone JMS JMS can use topics or queues WS Interface Service Request Reply JMS Interface JMS Service 8

Events Events are used to notify potentially interested processes that something has happened Events are best communicated using a publish/subscribe infrastructure such as a JMS implementation Web services need an intermediary service to distribute events Event Listener JMS Interface Event JMS Topic Event JMS Interface Service Event Event Listener JMS Interface ESB or standalone JMS 9

Integration Using an ESB WS Client JMS Client Event Listener Event Listener WS Interface JMS Interface JMS Interface JMS Interface Request Reply Request Event Event WS Interface Prioxy Topic or Queue Router Topic or Queue Topic Request Reply Reply JMS Interfaces Service Event Target service uses JMS Could be topics or queues 10

Another Integration Example WS Client JMS Client Event Listener Event Listener WS Interface JMS Interface JMS Interface JMS Interface Request Reply Request Event Event WS Interface Proxy Request Topic or Queue Router Topic or Queue Topic Event Reply Reply Request Event Publisher Adapter WS Interface Target service uses web services Targets could use other integration technologies as well Request Reply WS Interfaces Service Event 11

Common Message Envelope IEC 61968-100 defines a general approach for transport independent messages that minimally consist of a verb, noun and payload IEC 61968-100 defines a common message envelope (CME) in the form of an XML schema Messages using the CME can be wrapped within other wrappers (e.g. SOAP, WSDL, JMS) Usage of different parts of the CME (e.g. Request, Reply Payload) are dependent upon messaging pattern and verb Payload is defined using an XML Schema any

Message Example <soapenv:envelope> <soapenv:header> </soapenv:header> <soapenv:body> <ns:message> <ns:header> <ns:verb>created</ns:verb> <ns:noun>mybusinessobject</ns:noun> <ns:source>sourceapp</ns:source> <ns:messageid>35337</ns:messageid> <ns:/header> <ns:payload> <bo:mybusinessobject> <bo:stuff>1</bo:stuff> <bo:morestuff>more stuff</bo:morestuff> </bo:mybusinessobject> <ns:/payload> <ns:/message> </soapenv:body> </soapenv:envelope> This design wraps a CME inside the SOAP body This example shows what would be seen on the wire You can t tell if this message was generated using a WSDL or not! The CME even allows for payloads that do not have a corresponding XSD

Verbs Verbs support queries, transactions and events get create get create Get verb is used for queries Create, change, cancel, close and delete verbs are used for transactions Reply verb is used to respond to query and transaction requests Clients (applications issuing requests and/ or listening for events) change cancel delete execute reply Enterprise Service Bus using IEC 61968-100 change cancel delete execute reply Servers (applications accepting requests and/or generating events) Past tense verbs are used to indicate events created changed created changed Execute verb is used for a special case of complex transactions canceled deleted canceled deleted executed executed 14

Verb Usage Request Verb Reply Verb Event Verb Usage get reply (none) query create reply created transaction change reply changed transaction cancel reply canceled transaction close reply closed transaction delete reply deleted transaction execute reply executed transaction 15

Patterns and Verbs Queries are indicated by the use of a get verb on the request in a request/reply pattern, where the payload of the response message should return the requested information Transactions are indicated by the use of verbs such as create, change, close, cancel, delete, and could use request/reply or point-to-point patterns Both queries and transactions may result in responses (verb= reply ), which may indicate success or errors Events are indications that something has happened of potential interest, using past tense verbs such as created, changed, closed, canceled, deleted and typically use a multicast pattern

Nouns Nouns identify the type of the payload Many nouns are defined by parts of IEC 61968 (e.g. IEC 61968-9 for integration of metering systems) Nouns may also be defined as needed for products and custom integration projects The data related to a noun is typically, but not always, defined using an XML schema Other XML forms and Non-XML forms are also supported 17

18 Noun Example

19 Example with Verbs and Nouns

Message Correlation CorrelationID is set on initial request Initial CorrelationID is returned on related messages 20

21 Transactions

Transports IEC 61968 is by definition transport independent, but the reality is that a wide range of messaging technologies have largely given way to JMS and HTTP JMS provides a powerful messaging API, where the worst thing about JMS is the name, as it is not limited to use by Java applications HTTP and JMS have some trade-offs: JMS provides a reliable transport with the capability to queue and multicast messages HTTP provides a standard on the wire protocol, but JMS does not SOAP may be layered on both of these transports, where the IEC 61968 message envelope may be placed within the SOAP body When SOAP is used, it can be possible to define a WSDL that also provides a description of the interface Other transports can also be considered, such as AMQP and REST ESBs support the use of intermediaries IEC 61968-100 is being drafted to define specific, transport-dependent implementation profiles and integration patterns

Web Services IEC 61968 messages can be wrapped by a WSDL Two basic approaches: Loose coupled (coarse grained) or tightly coupled (strongly typed, fine grained) For broadest compatibility, WSDL should be WS-I compliant and use document-wrapped style Remember that HTTP is not the only transport possible as JMS can be used to provide delivery guarantees, multicasting and other features not possible with HTTP The use of a SOAP envelope enables the use of many security tools

Names Object naming is an important aspect of integration that is often overlooked especially where all systems do not use common mrids Issues: The same object may be known in different system by different names Messages need to use an identified that is known by source and targets Some systems may need to be aware of multiple identifiers for a single object (e.g. local ID and external ID) Sources and targets MUST agree upon names to be used, or rely upon the use of bilateral mapping tables for object names A naming service could be used for allocating and managing names The performance implications of name lookups needs to be carefully considered Name class introduced in CIM v15 to help address these issues, providing a more realistic and useful model of object naming In theory, an mrid is just another type of name!

CIM Name Class Identified Objects can have many Names Each Name.name instance can be associated with a different NameType NameTypes can be associated with a NameTypeAuthority that can be responsible for allocating Name.name values within a NameType IdentifiedObject.name preserved for legacy reasons

Names in Messages Common usage of Name class in a message XSD NameType often option, but should be provided by source if more than one Name instance provided Target process will map the object using one of the names, as the name is either used locally or defined within a bilateral mapping table

Name Mapping Example Source sends a message related to object ABC Within message Name.name value is set to ABC Name.NameType.n ame can be used to specifically identify the type of name External ID ABC 1 XYZ 2 RTY 345 Local ID INB 67433 MJG 222 ECV 555 GGG 225 Note: This is one example, there are many options Target receives the message Given that the Name.name value is unknown, a table lookup is required to know that object named ABC as provided by the external system is equivalent to locally named object 1 This is a bilateral agreement required for integration where all systems do not share a globally unique ID

More Information IEC TC57 Sharepoint (for CIM UG and IEC TC57 members): http://iectc57.ucaiug.org IEC Web Site: http://www.iec.ch E-mail: sneumann@uisol.com E-mail: margaret@sisconet.com E-mail: michael.s.johnson@us.elster.com Slides Courtesy of Scott Neumann of UISOL 28