You are on page 1of 3

- Old Architecture

- Current Architecture
- Proposed Architecture

The current architecture is based on the following steps:

1- Data Analysis: There is a need to analyze the current database(s) used across CPC to
support all the current applications used by the different departments. The analysis
should produce a full detailed report including the below:
a. All defined/used business entities.
b. Common/shared business entities across applications.
c. Potential business entities to be common/shared between multiple
applications.
d. Points of integration with external systems or other government entities.

2- Business Analysis: Identifying common and shared features across the different
departments within CPC. These should include:
a. Common business entities, ex: customer
b. Different types/categories of business processes across CPC.
c. Potential services that can be made common/shared.
d. Defining intersection points between all services with any potential
impact/conflict from the reengineering process.

3- Come up with a definite plan to build a common system (The Foundation Platform)
that encapsulate all shared entities and business actions/operations. The Foundation
Platform is meant to contains all master information/processes that can be exposed
for other applications/services in an easy to use way:
a. This platform will be the organization's (CPC) infrastructure that should all
other applications.

4- All individual applications shall utilize The Foundation Platform for all common
work/services while also can build their specific services per their targeted business
requirements.

5- The Foundation Platform shall provide all the infrastructure work, ex:
authentication/authorization service, enterprise gateway/service bus.

6- Build a well-defined way to allow integration with all external systems/entities that
CPC deals with now or which may come in the future.

7- Provide common UI components that can be used from within any other application
to make sure we are providing the same User Experience across all applications
which makes it easy for users to switch between applications with ease:
a. Ex: Common UI widgets to create customer records or display their
information, common request information widget.
8- All applications/service must be decoupled from each other with no direct
dependencies. All communications must be done through the Enterprise
Gateway/Service Bus. No service/application is allowed to call other
services/applications directly not it should know any information about the other
service location. The only allowed information is the service name along with
gateway/service bus information.

9- Most of business logic/rule engines/validation must be stay out of the database and
be encapsulated into their respective services where they can be utilized by other
services/applications.

10- Once the analysis/design phases of The Foundation Platform are done, work should
start on the data migration project which will take care of transforming all existing
data to the new platform. The data migration project can span multiple phases as
the business needs requires (priorities the data based on their availability from the
new systems).

11- All business processes must be developed atop of a workflow engine instead of the
current ad-hoc style.

12- For the success of this initiative, below points are required:
a. Choose appropriate Enterprise Gateway/Enterprise Service Bus product to
be at the foundation of the platform.
b. Choose appropriate Workflow Engine product to handle all business
processes workflow side.
c. Decide on the common/master Database to be used by the platform.
d. Decide on the Technology Stack for the common platform/applications.

Recommendations:

- Enterprise Gateway/Service Bus:


o Oracle: OEG/OSB.
o Microsoft: BizTalk Server.
o Any other suitable product.

- Workflow Engine:
o Windows Workflow Foundation.
o Documentum.
o Any other suitable product.

- Database:
o Oracle Database.
o Microsoft SQL Server.

- Development Stack:
o Microsoft .NET Core.
o ASP.NET Core (both MVC & Web API).
o Any other suitable UI framework.

- Services Architecture:
o Micro-services architecture with containerization support (Docker based).

- The Foundation Platform will support Single-Sing-On (SSO) to allow users of the
system to sign in once from any application and keep using the other applications
without the need to re-log in again.

- All Workflow transactional information must be separated from main and


permanent data to enhance security and data retention policies.

- Full data logs to be maintained all the times at the database level for all main and
permanent data for security and auditing purposes.

- All read-only services must be separated from write enabled services for increased
security and scalability purposes.
- Deployment:
o Using Docker/.NET Core will allow us to deploy to either Windows Server or
Linux Server Oss:
Some products may support specific OSs only, which should be
checked beforehand at the time of the selection process.