Case Study: Enterprise Knowledge Management System Reengineering

| Vasyl Soloshchuk

Knowledge Management System

The Client

A recognized global engineering services and technology company serving the Automotive, Aerospace, Energy and Consumer Products industries. They offer complete infrastructure and computing tools for new engineering product development.

The Scope

Improving the existing Enterprise Knowledge Management System to correct its stability and performance indicators, continue its further development and enhancement it with new features.

Project Description

The customer’s system was designed as a communication and collaboration platform to enable knowledge exchange between different groups of experts. The system’s functionality included capabilities for capturing, storing and sharing knowledge packages.

The existing system did not meet the needs set by the rapid progress which lead to poor performance and complicated maintenance.

The Challenge

When presented to INSART, the system already provided a number of services. First, INSART started with analyzing its architecture and source code. We then prepared a list of required improvements and suggested system reengineering to the customer with further development. The list contained the following issues:

  • Upgrading the source code language version – The language version used was poorly maintained, its libraries didn’t allow to add new features easily. The challenge was that the system had a large amount of code and needed to save its operability. So, to achieve a safer process, we created a local replication of the system and used it as the groundwork for all future changes.
  • Optimizing the database used – The database structure needed only minor changes, however, the logic of working with the database had to be optimized.
  • Using new technologies – One more challenge was that the existing system used aging technologies. Updating them could solve a range of problems with performance, scalability, stability and further development.

The main challenge was that the system already had a great deal of business logic executed, which is why system architecture could not be changed significantly.

Solution

The legacy Enterprise Knowledge Management System was Java-based. The language version was upgraded from Java 5 up to Java 7, which optimized the use of system resources and increased performance. Plus, supporting Java 7 libraries simplified the process of adding functionality.

Engineering Process

 

To facilitate development, we used Spring framework instead of Java Enterprise and Servlets. This technology proved itself the best for the current project. We used the following features: Spring MVC, Spring IOC, Spring JDBC, Spring Messages. Using Ehcache allowed the system to cache data in clusters and to ensure data consistency in multiple instances. This solution saved system resources, increased performance and system overloads were also reduced.

Upgraded DHTMLX made the system interface more user-friendly, provided a lot of new functionality, better performance and cross-browsing. Fabric.js library helped us in creating a new chart modeling module and using Apache Maven instead of Apache Ant helped to automate the software build process. As a result, a human factor in build processes and risks was nullified. The security framework Apache Shiro was used to make it possible for each corporate user to manage user roles and page access.

Assessment Control Infrastructure

Results

Integrating the Enterprise Knowledge Management System with new technologies made it possible for INSART’s engineers to adapt it to today’s demands and requirements, boost system performance, and scalability. Apart from that, the following business processes were added or updated:

  • Notification tools and growl messages – The system notifies of every action by email or growl message.
  • New modules for working with charts – Some modules were modified, others were created from scratch. The data preparation process and engine for building charts were improved, charts are dynamic.
  • Creating and exporting report tools – The new tools allow us to customize reports and export them in the most convenient form.
  • Customization possibilities – Every user can customize the system according to various activity-specific rules and initiatives to be implemented and used corporate-wide.
  • Multimedia tools – Users can customize the list of allowed file formats by adding new ones. The process of uploading multimedia files was modified significantly.
  • Log system – The modified log system logs all changes at run-time. Error, fault and debug logs can be customized for each module.