Storage Device Management and Real-Time Reporting/Analytics Solution
The customer is a leading player in the Enterprise storage space and their Software Defined Storage products is used over a fifth of Fortune 500 companies.
The customer was building a next generation Management and Reporting Solution for their storage product. The product would replace an existing thick client solution. Some of the key requirements were:
- The product would be a Web-based and ease-of-use, advanced reporting and visualizations, intelligent insights and monitoring would be the key product differentiators
- The application needed to be able to scale to hundreds of storage devices and retrieve, analyze and display data in real-time
- The key differentiator of the product would be the advanced reporting engine, which would be fronted by a easy-to-use web based front-end to create complex and smart reporting rules.
- An multi-channel alerting engine that could be configured to deliver alerts to users in real-time based on configured criteria
- Predictive analytics to help customers predict and analyze usage patterns and take intelligent decisions
- A mobile counterpart to the desktop web application, which would allow users to use the key functionality on the go
The Solution in Brief
DeviceDriven successfully developed and deployed a solution that comprised of the following:
- HTML5, AngularJS based Desktop Web application: The application front-end was developed a rich-web SPA (Single Page Application) based on the Angular JS framework. The application used secure REST API's to interact with the back-end.
- J2EE Web App Module: The back-end web application was based on Java 8/J2EE stack comprising Spring/JPA/Hibernate. Spring Data with its rich data repository abstractions and dynamic querying capabilities was used in the data access layer. The app provides a REST based JSON API using Spring MVC for interaction with the front-end
- CEP Engine: A CEP Engine is used for rolling window and other complex event processing on the incoming data
- Time Series Data and Reporting: Elastic Search was chosen as the data store for the time series data based on its proven stability and ease of scale-out
- Queued Data Connectors: The application interfaces with the various storage devices through persistent AMQP messages
- Security and Access Control: A role-privilege based security model was developed using Spring Security and the REST API was secured using corresponding spring security annotations
- UX - Widgets, Visualizations and Reporting: One of the key challenges was the development of a consistent and intuitive interaction interface that could scale across the myraid of features of the underlying storage device. A custom developed widgeting framework with support for drag-and-drop, positoning and state management was used, besides other extensions like Gridster and RxJS.
- Machine Learning Algorithms for Capacity Forecasting: A Predictive/Capacity Forecasting model was developed based on machine learning algorithms that allowed customers to predict future usage patterns based on historic trends.
- Performance and Big Data: One of the key challenges was to ensure that the application would be able to handle large volumes of data, without suffering any degradation to its real-time capabilities. This was ensured by a combination of In-Memory Computing and various architectural choices.
- iOS/Android Mobile Apps: An iOS and Android app that provided a range of reporting capabilities was developed as an companion to the desktop app.
- Once the product was successfully delivered, DeviceDriven supported the client through its launch and continued customer roll-out over multiple quarters. DeviceDriven also worked with the customer to further develop and maintain the product across multiple versions.
- The project was successfully delivered and maintained by a small closely knit team of Developers, Architects and QA, who worked remotely with various customer teams and departments remotely over a multi-year time span.
- Tags: HTML5, AngularJS, Bootstrap, Angular Gridster, RxJS, HighCharts, Spring, Spring Data, Hibernate, PostGres, ElasticSearch, AMQP, Machine Learning Algorithms, CEP, Time-Series Data, Big Data, Data Analytics