Driving innovation through progressive Java architecture

Jul 31st, 2018

Patricia Draper, a BBD executive, explains how BBD not only developed a standardised middleware Java layer – with apps that make use of functionality already existing within the business – they also created a single way for the client to consume very complex functions.

“For this incubator project BBD successfully adapted the lessons learnt from previous ingenious projects, and now have two further business clusters within the bank wanting to make use of the framework for their own projects.”

BBD’s Java framework came about after various instances of Java could be found across the client landscape, with no instance of baseline standards.  This inconsistent range of Java versions and development patterns posed a challenge for the client in maintaining their code base. A hybrid team was tasked with investigating options within the open source community, to build a Java development framework that would expedite the development of applications by reusing functionality.

“The framework was based on the core functionalities that every service would require to ensure consistent delivery across different projects, using the same standards and patterns, all leading to predictable outcomes,” clarifies Draper.

A year after the start of the project, the team delivered the first standardised version, to the delight of the client. The capabilities included an initial project template with easy new project creation provided by customer interface customisation, code generators with naming conventions, a centralised code-driven build-and-deploy pipeline plus static code analysis and code coverage tests, and a host of other utilities and components that developers can use.

Draper reiterates how the components are either default or optional and include those for security, business auditing, auditing of incoming and outgoing requests, implicit logging, exception identification, mapping and handling, and web and application caching and configuration management. “Other components include integration test coverage with test data loading and dependent service wire-mocking, generated sequence and class dependency diagrams from integration testing, developer documentation publishing to web, and user presentation documentation generation to web.”

All developer tools were set up to ensure development independence, including the use of Docker to provide dependency services, which allows the developers to build and test services faster.  The base architecture was formed as an amalgam of micro-services and traditional application servers, allowing for services to be deployed in either environment.

BBD also provided an array of reference examples for the developer community, showing how to use the components. These help create an example for each standard or capability and allows for functional and load testing.

Draper believes true innovation comes from a blend of experience, knowledge and ingenuity. “This hybrid team was able to prove their effectiveness by creating leading-edge architecture that caters to the client’s environment while tackling challenges head-on and retaining accountability for the decisions they made. This turned out to be a winning combination for the BBD’s first continuous delivery team.”