Software Development
Solution Delivery
ISSUE

The client is a leading wind energy producer in the US. The IT group inherited a program named Data Shipping from the Wind Operations department. Data Shipping sends meter data at 5- or 10-minute intervals to external customers via SFTP. The program requires high availability since one customer uses the data to generate forecasts for the client’s Real Time Trading desk. Data Shipping was developed by an outside vendor using technologies (Microsoft Web Server, SQL Server Database, SSIS processing, non-corporate network and physical servers) that do not follow the IT group’s software development standards making it a challenge to maintain internally. The client required that the program be re-written to follow the group’s standards (PostgreSQL Database, Java/C#.Net, WildFly Web Server, corporate network and virtual servers) while ensuring high availability.

 

SOLUTION

MidDel was asked to re-write the program by performing all steps of the Software Development Life Cycle, Project Management and independently meeting with Business users for testing and sign-off. The project’s kick-off meeting with MidDel, IT and the Business users affirmed requirements, roles and expectations. Our consultant created a multi-threaded program to handle the shipping of meter data to clients.  The program runs on a primary server with a secondary server standing by in case the primary server goes down. A heartbeat program was also developed to ensure that data is being produced by the primary or secondary server. A GUI was developed on WildFly to enable the Business users and IT to configure and monitor jobs.

 

RESULT

The data from the original software was perceived to be potentially unreliable and operating in an unstable environment, therefore, creating risks to the Business users and traders.

The rewritten software eliminates the prior risk by providing a more reliable software. The approach taken followed the client’s standards while producing software that was more reliable, transparent and maintainable than the original program. The rewritten program addressed the following issues from the original.

Original Program

Re-write Program

Runs on one server.

Can run on one of two servers with automatic failover.

Runs on a physical server.

Runs on virtual servers backed up nightly for easy restore.

A read only GUI with limited information runs on Microsoft Web Server.  IT must run SQL to create/update jobs and monitor job activity.

GUI runs on WildFly web server supports reading and write to the database.  Allows Business and IT to create, update and monitor jobs.

Alert emails sent to IT only.  For troubleshooting purposes, IT needs to log into server.

Alert emails sent to the Business users and IT.  Email in most cases contains sufficient information for user to identify issues without requiring a login.

Code written in SSIS.  No one in IT was familiar with SSIS, so issues required extended maintenance hours.

Code written in Java and C#.Net.  In-house developers are more familiar with and can easily and better maintain.

Runs on network that must adhere to rigorous NERC standards.  New/updated code must be assessed and approved by network owners prior to deployment. 

Code runs on Corporate network.  Only Business users must approve planned changes and IT can make emergency changes at will on servers on the Corporate network.

Database is Microsoft SQL Server which requires a license at a cost.  DBAs in IT group are not trained to support Microsoft SQL Server.

Database is PostgreSQL which is supported by IT DBAs.

The next day’s job schedules are created at noon the day prior.  If the program is down at noon, no job schedules are created for the next day requiring manual intervention on the Admin’s part.

The next hour’s job schedules are created the hour before.  In the event the program is down, it will create missed schedules upon start up.

The client was extremely impressed with the MidDel professional’s ability to handle all aspects of the project independently and to deliver a solution early and under-budget. The client is confident that it is well prepared to maintain the solution and can easily recover from various hurdles like network outages, VM issues, etc.