Author Name:
Jaya Krishna Tummala
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, 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:
- Maintaining Compatibility and Data Integrity: Ensuring data consistency across systems.
- Secure and Efficient Data Routing: Directing data to appropriate destinations safely.
- Protocol Mediation: Bridging communication gaps by translating messages between the protocols and standards used by CIS and GIS systems.
- 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 CIS system
Streetlight
Sample steps according to ERCOT for GB – New Service Gang Base Installation: Workflow
- Locate Gang Base Service Line – AEGIS using Data Tool
- Create a SMLCOM Premise – CC&B
- Create a Service Point for the Premise
- Drop a 814_03 MVI transaction
- 814_03 Status Permit Required
- Enter Inspection details in Premise Characteristics
- ARATE WR is created and 814_03 MVI is created – CC&B
- Dispatch the Event to Mobile Unit
- Look for meter # from Maximo
- Complete the Job in MobileTC with GB service info code and Structure FLN-X and FLN-Y
- Verify Work Request completion – CC&B
- AEGIS Service Line and Service Point updated with ESI Location
- WMIS serv_gl table updated with transaction
- FIM extract updated with transaction
Sample code for implementation of middleware for CIS-GIS integration using ESB architecture.
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
If the Service Point was not found then a Service Point will be created. 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.
Else
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.
Else
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.
Else
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.
Else
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.
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.
Else
Set the ownership of the Service Line to the located Structure
Complete the processing by calling UpdateTransaction passing the following information:
- Message: ‘Service placed’
- Status: ‘COMPLETED’
Set Status = ‘Success’
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.
About Author
Jaya Krishna Tummala is a highly respected leader with an exceptional track record across business analysis, test management, cloud engineering, and Agile-Scrum. With extensive experience in cutting-edge software solutions and product development, he has demonstrated outstanding leadership in a variety of industries and at renowned organizations. His contributions have consistently yielded remarkable results, establishing him as a true pioneer in the field.
Also Read: Why Should Startups Outsource Software Development?