Performance Optimization
About Client:
The client is a $71 Million Dollar Company based out of California US. It is a pioneer in providing software solutions for many Fortune 500 and Global 2000 clients such as Electrolux, Coca Cola, P & G, Schneider Electric. Monocept was selected as a long-term partner to service the needs of client’s Fortune 500 and Global 2000 customers.
Project Summary:
The client’s on-demand Optimization Engine software adds the field service capabilities that are delivered in a familiar multi-tenant architecture to its customers. It is a leading provider of on-demand field service software across the world. Monocept accomplished the client’s mission:
- In delivering a ‘go-to’ application for every field service technicians worldwide.
- Through divide and conquer strategy, Monocept has developed a performance-optimized application where the job run time has radically reduced from approximately 7.5 hours to less than 5 minutes.
Challenges:
- A key challenge of FSM is to optimize service routes to cover all the work orders, with minimum resources (in terms of no of resources, cost of travel etc.)
- The route optimization of the Travelling Salesmanship problem (TSP) has multiple time windows and multiple constraints which include:
- The real-life scenarios of field service are more complex which include traffic, travelling cost, break-time etc.
- The time taken by TSP algorithm to compute the route is complex in nature considering the number of technicians and work orders.
- The performance is a bigger challenge for rescheduling appointments for technicians in real-time.
- To handle huge number of requests sent to Google APIs to arrive at an optimized and cost-effective routing algorithm for technicians.
Solutions:
- Implementing multi-tenant architecture that allows serving multiple clients with ease.
- Multiple Divide and Conquer strategies were derived which could be dynamically applied. Each strategy divides the larger sets into smaller subsets of work orders/ technicians and executes each subset independently.
- Implemented a separate server using Memcache (distributed memory object caching system) which greatly reduced the number of requests made to Google APIs which in turn enhanced the performance of the system.
- Implemented a single distribution package which made deployment easy on Amazon EC2 cloud. This cloud deployment allowed on demand load balancing.
- Using their existing Java based platforms, did a lot of fine tuning to increase their scalability issues.
Benefits:
- Achieved amazing performance to complete the optimization cycle in less than 5 Minutes, which used to take 7.5 hours.
- The new caching implementation ensured less than 25,000 requests sent to Google APIs for address resolution and distance matrix calculations.