Bonotel - Sprint 26 - XML Revamp Phase1#
Objective of this document is to describe the development scope, test scope, and deployment plan and dependencies of XML revamp project phase 1. In additionally document includes gathered information during the analysis and R&D of phase 1.
- Separate XML Search module as an independant code.
- Lightweight XML Search module a. Remove EJB dependencies b. Remove unwanted classes/packages. c. Remove unwanted common libraries/jars
- Upgrade java (latest stable Java version 126.96.36.199) a. Upgrade postgresql JDBC driver (42.0.0) b. Upgrade apache commons DBCP c. Upgrade Jedis (Redis client)
- Automate - Create deployment artifacts
- Automate - Setting up Tomcat
- Automate - Application deployment
- Implement CICD pipeline
- Setting up monitorings (Nagios)
- Better resource utilization over hardware
- Decoupling of XML Search module
- Lightweight XML Search module
- Simplify deployment automation
- Flexibility to further revamping
- Java upgrade
- Enables opportunity of identify performance bottlenecks with less effort with use of latest profiling tools.
- Enables opportunity to upgrade other dependable libraries
- JDBC 4.2 (Latest postgres drivers)
- DBCP drivers
- Jedis client (Redis access)
- Enables opportunity to use Java 8 new features(specially for concurrency)
Design of Remove EJB Utilities#
Web controllers (struts)
Does the connection between controllers and business classes. Service factory creates an instance of IMPL class based on the controller requested.
Business objects and data layer.
Existing Service layer - BonotelEJBService.jar#
- Consist 100+ classes bundled to a jar
- Provides RMI connectivity (web controllers to inject Business objects)
- Server startup, loads all IMPL instances into JVM memory
New Service layer - ServiceConnector.jar#
- Consist less than 10 classes(only required classes)
- ServiceFactory provides relevant instance of the Business object when the web controller requires. Same design will be used for remove EJB utilities and dependencies of other modules in future phases