IntelliGrid Architecture

 

 

Home

Parent Menu

Analysis Overview
Document Oveview
Architectural Principles
Architectural Analysis
Recommendations
Deployment Scenarios
Benefits
Network Management
Resilient Comm Services
Data Management
Requirements
RM-ODP/UML Overview

Same Level Menu

Requirements Analysis
Common Services
Common Information Models
Generic Interfaces
Conclusion

Child Menu

 

Search IntelliGrid Site

Questions/Comments

Questions

 

Responses

 

Generic Interfaces

The mechanism used to exchange data is determined by an application’s interface.  However, the native interface provided by an application is typically limited.  For example, often legacy interfaces do not provide a means to discover what data is processed by a particular component at run time other than a rudimentary listing of legacy IDs. Furthermore, legacy data cannot typically be viewed within the context of an inter-application data model such as a view of a power system network model

Typically legacy interfaces:

·       Do not expose data within the context of a common inter-application data model.

·       Do not provide a means to discover what business object instances are serviced by a particular component instance other than a rudimentary listing of legacy IDs (tags) that cannot be viewed within the context of an inter-application data model such as a power system network model.

Without a means to discover what data an application processes, plug and play is nearly impossible to achieve.  To address these impediments to plug and play and the need for a common exchange mechanism, or “how” data is exchanged is needed.  The phrase “Generic Interface” is an umbrella term for four interfaces types:

·       An interface for mapping names to ID’s and visa versa.

·       A request/reply oriented interface that supports browsing and querying randomly associated structured data – including schema (class) and instance information.

·       A publish/subscribe oriented interface that supports hierarchical browsing of schema and instance information.  This interface would typically be used as an API for publishing/subscribing to XML formatted messages.

Applications use the standard interfaces to connect to each other directly or to an integration framework such as a message bus or data warehouse. A technology neutral interface allows applications to be designed independently of the capabilities of the underlying infrastructure.

Figure 17 Applications Connect to Off the Shelf Middleware Via the Standard API’s

 

Legacy application interfaces most often are accessed using a variety of interface technologies including:

·       RPC/API based (CORBA, COM, Java, C language)

·       File based

·       W3C Web Services/XML/HTTP based

·       RDBMS/SQL based

A technology neutral generic interface is typically specified using UML.  UML is deployment platform neutral.  The Generic Interface can be realized using a variety of middleware technologies including:

·       RPC/API based CORBA, COM, Java, or C language specializations

·       W3C Web Services/XML/HTTP based

The IntelliGrid Architecture project is focused on deriving common services that facilitate the integration of systems in spite of the above-mentioned discontinuities.  To overcome platform heterogeneity, the common information model and technology independent interface are used.  To overcome semantic heterogeneity a common information model is used.  To overcome data access mechanism heterogeneity a general purpose Generic Interface is used.  The Generic Interface provides access to a common information model.  A common information model is used as the common language that all services use to communicate.  While the different implementations of the common services that expose the generic interface are not necessarily interoperable, “off the shelf”, the mapping from one technology specific implementation to another can be standardized and relatively straight forward.  The diagram below illustrates these concepts:

Figure 18 Applying Technologies to Environments

 

In Figure 18, Application A, B, and C all communicate using the common information models and generic interfaces, but how the common modeling elements are implemented depends on the environment

This section describes how the requirements of the different environments leads to a set of common services and how the functionality associated with each service can be accomplished via the use of the technology independent interfaces.  That is, the functionality associated with each service can be accessed via the manipulation of its portion of a common information model exposed at its interface.  Later sections show how specific technologies can be mapped to the technology independent interfaces to meet the specific requirements of an environment.

Thus, the standard interface can be deployed as an API or as a wire level protocol such as Web Service based messaging. The interface is generic because it can be use to access any application.  This technology independent generic interface is then mapped to specific technologies to accomplish a given service function within the context of an environment’s requirements.  The diagram below includes several scenarios depicting how a generic interface might be used:

Figure 19 Ways That A Generic Interface Can Be Applied

 

Regardless if these interfaces are implemented as an API or on the wire, a generic interface should provide the following key functionality required for creation of a plug and play infrastructure:

·       Interfaces are generic and are independent of any application category and integration technology. This facilitates reusability of applications supporting these interfaces.

·       Interfaces support schema announcement/discovery – The schemas are discoverable so that component configuration can be done programmatically at run time. Programmatically exposing the schema of application data eliminates a great deal of manual configuration.

·       Interfaces support business object namespace presentation – Each component describes the business object instances that it supports within the context of a common namespace shared among all applications such as a power system network model like the EPRI Common Information Model (CIM). It is not enough to merely expose the application data schema, one must also expose what specific breakers, transformers, etc., that an application operates on.  This also eliminates manual configuration as well as provides a means for a power system engineer to understand how enterprise data is organized and accessed.

The advantage of using generic interfaces instead of application-specific ones cannot be over emphasized.  The benefits of using generic interfaces include:

·       The interfaces developed are middleware neutral and were designed to be implemented over commercially available message bus and database technology.  This means a single wrapper can be used regardless on the technology used to perform integration.

·       As application category independent, the same interfaces are used to wrap any application.  This means that new wrappers do not need to be developed every time an application is added to the system.

·       Creates a consistent and easy to use integration framework by providing a unified programming model for application integration.

·       Enhances interoperability by “going the last mile”. Agreement on the “what” of data is not enough to ensure component interoperability. We also need to standardize on “how” data is accessed. To provide a simple analogy, we standardize on a 110/220 volt 60 hertz sine wave for residential electrical systems in the US. This is a standardization of “what”. However, we also standardize the design of the plugs and receptacles. This is a standardization of the “how”. The standardization of plugs and receptacles means that we don’t need to call an electrician every time we want to install a toaster. Similarly with software, standardizing on the interface means a connector does not need to be created from scratch every time we install a new application.

·       Since application vendors can “shrink wrap” a wrapper based on a standard information model and interface, the use of an information model and generic interface can lower the cost of integration to utilities by fostering the market for off-the-shelf connectors supplied by application vendors or 3rd parties. The time and money associated with data warehousing/application integration wrapper development and maintenance is high. Typically, most money spent on integration is spent on the wrappers. An off-the-shelf standard information model/generic interface wrapper can replace the custom-built “Extraction and Transformation” steps of an Extraction/Transformation/Load warehouse process. The availability of off-the-shelf standard information model/generic interface compliant wrappers is a key to lowering application integration and data warehouse deployment and maintenance costs very significantly.

Generic Interfaces support viewing of legacy application data within the context of a shared model. The generic interfaces take full advantage of the fact that an information model is more than just a collection of related attributes – it is a unified data model. Viewing data in a shared model context helps eliminates manual configuration and provides a means for a power system engineer to understand how enterprise data is organized and accessed. The generic interfaces allow legacy data to be exposed within a power system oriented context. This makes data more understandable and “empowers the desktop” by enabling power system engineers to accomplish many common configuration tasks instead of having to rely on IT personnel.

Namespaces

In order to fully enable a common information model, a generic interface needs to specify two related mechanisms. The first specifies a programmatic interface that a component or component wrapper must implement. The second specifies how an information model is exposed via the programmatic interface. The later concept is embodied in the term “namespace”.   A namespace not only includes type information, but also typically includes instance information as shown below:

Figure 20 Example Namespace

 

IntelliGrid Architecture includes a strawman Generic Interface model.  The intent of including this model is not to specify a standard for interoperability, but to more precisely describe what IntelliGrid Architecture architects believe a generic interface should look like. 

The IntelliGrid Architecture Generic Interface Strawman is used to manipulate data at an integration layer.  The IntelliGrid Architecture strawman interface is not a replacement for any existing interface; rather it is used to facilitate integration of previously nonintegrated systems.  For example the Generic Interface would be used to integrate:

·       Utility specific data management

·       Network/system management

·       Security

·       Platform services

 

Analysis of the requirements leads to the conclusion that the Generic Interface should include the following functionality:

·       Create/DeleteNamespaceNode

·       GetNamespaceNodeID/GetNamespaceNodeName

·       Read/QueryNamespace

·       UpdateNamespace

·       Start/StopStream

·       Subscribe/Notify

These methods allow a client to act on an information model presented in a server’s namespace and meet all of the required capabilities.  The diagram below presents a UML diagram of IntelliGrid Architecture Generic Interface Strawman:

Figure 21 Example Generic Interface

 

Figure 21 contains a UML diagram for a strawman generic interface.  In this case, how a client collaborates with a server is described in the two interface classes called Client and Server.  The client implements a single method called OnEvent that allows the server to asynchronously notify the client.  The server implements 10 methods.  The first two methods (CreateNode and DeleteNode) allow a client to create or delete a node from the server’s namespace.  This node could be metadata such as a new breaker type or new instance data such as a specific new breaker installed in a substation. 

The second two methods (GetID and GetName) allow a client to discover the various names for a namespace node.  The ID provides a key to map the names together.  Different names for node typically exist depending on the application and user.  For example, planning may call a bus one name and the EMS may call the same bus something else.  The important thing is that we can manage names for metadata and instance data in a consistent way.

The next three methods (Read, Update, Query) allow a client to read, write or query for node information.  For instance these methods would allow a client to read or write information about a new breaker type of a new breaker instance installed in a substation.

The last two methods (StartStream and StopStream) allow a client to down load files to the server.  These files can be used to update software in the server as well as transfer data files such as oscillographic data.

The last method (GetServerStatus) allows a client to discover application layer status information about the server.  For instance, a client might discover the amount of memory left for events in a protective relay.

Below the interface classes, the class AddressableNode defined the properties every node in a namespace has – a default name and an ID.  Several different types of namespace nodes exist – nodes that represent object types and object instances, as well as property types and relationship types.  These are all addressable; meaning they have their own unique identifies.  Some information in an address space cannot be accessed unless it is by its parent.  This type of information is contained in non-addressable nodes.  For example, the status (a property instance) of a breaker is only accessible via the breaker instance.  It does not make sense to have a status without knowing what the status is about.  Similarly relationships only exist between nodes. 

The last three namespace related classes provide the ability to create type systems.  For exampled, XML Schema, ASN.1 or DNP3 all define a type systems.  Having this information available in the namespace allows different ontologies such as a populated DNP3 namespace be related to another such as a populated CIM model.

In summary, this strawman interface is technology neutral but specifies enough information to ensure interoperability when combined with technology profiles.  The goal of presenting this strawman is not to attempt to influence any particular standard or interface.  Rather it is only intended to show what technology independent might look like for educational purposes.

IntelliGrid Architecture
Copyright EPRI 2004