Bonotel - Sprint 26 - XML Revamp Phase1#

Analysis and Design Doc

Introduction#

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.

Scope#

  1. Separate XML Search module as an independant code.
  2. Lightweight XML Search module a. Remove EJB dependencies b. Remove unwanted classes/packages. c. Remove unwanted common libraries/jars
  3. Upgrade java (latest stable Java version 1.8.0.131) a. Upgrade postgresql JDBC driver (42.0.0) b. Upgrade apache commons DBCP c. Upgrade Jedis (Redis client)
  4. Automate - Create deployment artifacts
  5. Automate - Setting up Tomcat
  6. Automate - Application deployment
  7. Implement CICD pipeline
  8. Setting up monitorings (Nagios)

Expected outcome#

  1. Better resource utilization over hardware
  2. Decoupling of XML Search module
  3. Lightweight XML Search module
  4. Simplify deployment automation
  5. Flexibility to further revamping
  6. 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#

Alt

Controllers

Web controllers (struts)

Service Connector

Does the connection between controllers and business classes. Service factory creates an instance of IMPL class based on the controller requested.

Business Service

Business objects and data layer.

Existing Service layer - BonotelEJBService.jar#

New Service layer - ServiceConnector.jar#