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.
Join the DZone community and get the full member experience.
Join For FreeIntegrating 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:
- 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 the CIS System
Sample Steps According to ERCOT for GB, New Service Gang Base Installation: Workflow
- Locate gang base service line: Use AEGIS with the data tool.
- Create a SMLCOM premise in CC&B.
- Create a service point for the premise.
- Drop an 814_03 MVI transaction.
- Verify 814_03 status: Ensure "Permit Required."
- Enter inspection details in premise characteristics.
- Create ARATE WR and 814_03 MVI in CC&B.
- Dispatch the event to the mobile unit.
- Look for the meter number from Maximo.
- Complete the job in MobileTC with GB service info code and structures FLN-X and FLN-Y.
- Verify work request completion in CC&B.
- Update AEGIS service line and service point with the ESI location.
- Update the WMIS serv_gl table and record the transaction.
- Update FIM extract and finalize the transaction update.
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
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.
Opinions expressed by DZone contributors are their own.
Comments