DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports
Events Video Library
Refcards
Trend Reports

Events

View Events Video Library

Related

  • 6 Integration Patterns That Look Good on Paper and What Happens When They Hit Production
  • Building End-to-End Payroll Integrations in Workday Using PECI and PICOF
  • Building Reliable Enterprise Systems with Workday: An Architect’s Perspective
  • Integration Reliability for AI Systems: A Framework for Detecting and Preventing Interface Mismatch at Scale

Trending

  • Vercel AI SDK Middleware vs Genkit Middleware: A Hands-On Comparison
  • Spec-Driven Integration: Turning API Sprawl Into a Governed Capability Fleet for AI
  • Monitoring Spring Boot Applications with Prometheus and Grafana
  • Security Readiness Checklist: From AI Threats to Software Supply Chain Defense
  1. DZone
  2. Software Design and Architecture
  3. Integration
  4. The Importance of Middleware in Integrating CIS and GIS Systems

The Importance of Middleware in Integrating CIS and GIS Systems

Learn how middleware facilitates seamless integration between Customer Information Systems (CIS) and Geographic Information Systems (GIS) in utility management.

By 
jaya krishna tummala user avatar
jaya krishna tummala
·
Jan. 16, 25 · Analysis
Likes (2)
Comment
Save
Tweet
Share
5.9K Views

Join the DZone community and get the full member experience.

Join For Free

Integrating Customer Information Systems (CIS) with Geographic Information Systems (GIS) is crucial, as both are Tier 1 applications. CIS serves as the core for customer and billing management, while GIS is essential for infrastructure management. Middleware functions as a vital layer that enables communication and data exchange between these diverse systems, playing a key role in data transformation, protocol mediation, message routing, and transaction management to ensure seamless integration.

This article will delve into the significance of middleware in bridging the gap between CIS and GIS, along with a practical demonstration of its implementation using Python.

Understanding CIS and GIS Integration

CIS systems maintain critical customer-related data, including billing information, service requests, and account details. GIS systems manage spatial data related to infrastructure assets such as substations and service lines. Integrating these systems allows utilities to visualize customer information spatially, optimize field operations, and enhance asset management. However, differences in data formats, protocols, and architectures pose significant challenges to achieving seamless integration.

For instance, when a new service point is created in the CIS, automated processes enable its representation in the GIS. Continuous data flows between the systems depend on updates regarding field activities, such as technician progress (e.g., acknowledgment of field activity, arrival at the facility, and meter installation). Using latitude and longitude data, the GIS can automatically depict the service point and service line, with middleware facilitating this process.

The Role of Middleware

Middleware acts as a bridge, enabling communication and interoperability between CIS and GIS systems. It orchestrates various functions, including:

  1. Maintaining compatibility and data integrity: Ensuring data consistency across systems
  2. Secure and efficient data routing: Directing data to appropriate destinations safely
  3. Protocol mediation: Bridging communication gaps by translating messages between the protocols and standards used by CIS and GIS systems
  4. Transaction integrity: Managing the integrity of transactions during data exchanges

Best Practices for ESB Solution Design

A best practice for designing an ESB solution is to utilize the IBM Integration Bus (IIB). Selecting the appropriate topology — whether physical or logical — for organizing IIB nodes, servers, endpoints, and message flows is critical. Factors such as network latency, load balancing, fault tolerance, redundancy, and modularity should be carefully considered in the design.

To optimize performance, minimize the number of nodes and transformations in your message flows, and use caching and aggregation to reduce external calls. When tuning the configuration, adjust the heap size, thread pool size, and garbage collection policies for your IIB nodes, as well as properties such as transaction mode, audit level, and trace level.

Sample Automation Representations in GIS for the Information Coming From the CIS System

Streetlight


Sample Steps According to ERCOT for GB, New Service Gang Base Installation: Workflow

  1. Locate gang base service line: Use AEGIS with the data tool.
  2. Create a SMLCOM premise in CC&B. 
  3. Create a service point for the premise.
  4. Drop an 814_03 MVI transaction.
  5. Verify 814_03 status: Ensure "Permit Required."
  6. Enter inspection details in premise characteristics.
  7. Create ARATE WR and 814_03 MVI in CC&B.
  8. Dispatch the event to the mobile unit.
  9. Look for the meter number from Maximo.
  10. Complete the job in MobileTC with GB service info code and structures FLN-X and FLN-Y.
  11. Verify work request completion in CC&B.
  12. Update AEGIS service line and service point with the ESI location.
  13. Update the WMIS serv_gl table and record the transaction.
  14. Update FIM extract and finalize the transaction update.

Sample CIS-GIS architecture

Sample CIS-GIS architecture


Premise correction information flow

Premise correction information flow


Sample Code for Implementation of Middleware for CIS-GIS Integration Using ESB Architecture

SQL
 
SELECT GEO.PREM_ID,PREM.ADDRESS1, PREM.POSTAL, PREM.CITY, PREM.PREM_TYPE_CD,PREM.COUTY,PREM.IN_CITY_LIMIT,

PREM_CHAR.SRCH_CHAR_VAL, PREM_CHAR.CHAR_TYPE_CD, ESI.CM_ESI_STATUS, SP. SP_TYPE_CD

            FROM CISADM.CM_ESI_ID ESI

JOIN CISADM.CI_PREM_GEO GEO

            ON GEO.GEO_VAL=ESI.CM_ESI_LOC

JOIN CISADM.CI_PREM PREM

            ON PREM.PREM_ID=GEO.PREM_ID

JOIN CISADM.CI_SP SP

        ON SP. PREM_ID=PREM.PREM_ID

JOIN CISADM.CI_PREM_CHAR PREM_CHAR

        ON PREM_CHAR.PREMISE_ID=PREM.PREMISE_ID

WHERE GEO.GEO_CD= 'ESI_LOC'


Sample Logic for Service Line Install Process

1. If the Service Point is not found, create a Service Point.

2. Find the facility that the Service Line will connect to by calling GetConnectingFacility.

  • If there are errors locating the connecting facility, return the message and status received from GetConnectingFacility and exit the method.

3. If the Meter Geocode tolerance is not overridden (g_Meter_Tolerance_Override = 0), validate that the meter geocode location is at a valid location by calling CheckMeterGeocodeLocation.

  • If there are errors validating the meter geocode location, return the message and status received from CheckMeterGeocodeLocation and exit the method.

4. Create the Service Point feature by calling AddServicePoint.

  • If there are errors creating the Service Point, return the message and status received from AddServicePoint and exit the method.

5. Create the Premise record for the Service Point by calling AddPremise.

  • If there are errors creating the Premise record, return the message and status received from AddPremise and exit the method.

6. If not Customer Owned services (CU contains ‘CUSTOMER’), create the Service Line by calling AddServiceLine.

  • If there are errors creating the Service Line, return the message and status received from AddServiceLine and exit the method.

7. Establish the connectivity relationships by calling EstablishConnectivity.

  • If there are errors establishing the connectivity relationships, return the message and status received from EstablishConnectivity and exit the method.

8. Set the ownership of the Service Line to the located Structure.

9. Complete the processing by calling UpdateTransaction, passing the following information:

  • Message: ‘Service placed’
  • Status: ‘COMPLETED’

10. Set Status = ‘Success’

11. Exit the method.

Conclusion

In conclusion, middleware facilitation of CIS-GIS integration helps the utilities to harness the full potential of their systems. By implementing middleware solutions, utilities can streamline operations, improve decision-making, and enhance customer service. However, it's essential to tailor middleware implementations to specific requirements and ensure robustness, scalability, and security in the integration process. With middleware as a cornerstone, utilities can navigate the complexities of CIS-GIS integration with confidence, driving efficiency and innovation in utility management. 

Middleware systems Integration

Opinions expressed by DZone contributors are their own.

Related

  • 6 Integration Patterns That Look Good on Paper and What Happens When They Hit Production
  • Building End-to-End Payroll Integrations in Workday Using PECI and PICOF
  • Building Reliable Enterprise Systems with Workday: An Architect’s Perspective
  • Integration Reliability for AI Systems: A Framework for Detecting and Preventing Interface Mismatch at Scale

Partner Resources

×

Comments

The likes didn't load as expected. Please refresh the page and try again.

  • RSS
  • X
  • Facebook

ABOUT US

  • About DZone
  • Support and feedback
  • Community research

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Core Program
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 3343 Perimeter Hill Drive
  • Suite 215
  • Nashville, TN 37211
  • [email protected]

Let's be friends:

  • RSS
  • X
  • Facebook