Modularization
This section explains the design of the Temenos DigitalOrigination app and the process used to achieve the design. The Origination app is designed by using a concept named, Modularization. Modularization is the division of an app into physically and functionally distinct units to allow removal and replacement.
Modularization is achieved on top of the MVC 2.0 framework by adding the logically grouping forms to a module and providing a life cycle to it.
The Temenos DigitalOrigination app contains the following two modules:
- Aggregator Module is a unit that orchestrates the modules and receives their outputs. The Aggregator Module does not know about the functionality of these modules. It only invokes the context and processes the output of the modules.
- Module is a unit that receives the context from the Aggregator Module and transfers the required response to it. A Module is a reusable unit. It has a fixed life cycle and fixed entry and exit points.
In the case of Temenos DigitalOrigination, the Origination app is the Aggregator Module and the various sections across the Origination app are the modules.
The following table contains the details about various modules in Temenos DigitalOrigination and their associated forms.
Aggregator Module | Module | Form Name |
---|---|---|
OnboardingAggregator | InitialDashboardModule | frmLandingDashboard.sm |
frmProductDetails.sm | ||
frmProductGroup.sm | ||
ResumeModule | frmApplicationID.sm | |
frmUpdateTempPassword.sm | ||
ExistingMemberModule | frmExistingCustomer.sm | |
EligibilityCheckModule | frmEligibilityCheck.sm | |
AuthModule | frmLogin.sm | |
OTPVerificationModule | frmEnterPhoneNumber.sm | |
frmEnterOTP.sm | ||
PersonalInfoModule | frmPersonalInfo.sm | |
IdentityModule | frmIdentityDetails.sm | |
IDVerificationModule | frmIDVerification.sm | |
UploadingDocModule | frmUploadingDoc.sm | |
ProductSelectionModule | frmCD.sm | |
frmFeatureSelection.sm | ||
frmProductSelectionNew.sm | ||
SubmitModule | frmTermsAndConditions.sm | |
frmMembershipStatus.sm | ||
frmMembershipStatusDetail.sm | ||
FundingModule | frmAccountDetails.sm | |
frmFundAccounts.sm | ||
frmFundingConfirmation.sm | ||
frmFundingRequestAck.sm | ||
frmManualAccountDetails.sm | ||
frmPaymentType.sm | ||
UserActionsModule | frmUserActions.sm | |
SummaryModule | frmSummaryDetails | |
IncomeEmploymentModule | frmIncomeEmploymentInfo | |
PreRequirementModule | frmPreRequirement | |
CompanyInfo | frmCompanyInfo frmFinancialDetails |
|
SMEPersonalInfo | frmSMEPersonalInfo |
Functional Flow
As mentioned earlier, the Aggregator Module invokes the Module and passes the required context to it. The Aggregator Module and the Modules are defined in the respective Presentation Controllers. So, the Presentation Controller of the Aggregator Module invokes the Presentation Controller of the Module. During this process, the Aggregator Module provides its reference. The Module uses the reference and sends the response to the Aggregator Module.
After the Presentation Controller of the Module is loaded with the context of the Aggregator Module, the Module decides the implementation of the context and eventually invokes the required sub-module or a form.
The module uses three methods to interact with the parent modules. These methods are defined in the DBXBaseModule.js
file and its associated file named, kony.dbx.BaseModule
that is linked to the modules. The methods used by the Module are as follows.
- onLaunchModule is invoked by the Aggregator Module to load the module. The onLaunchModule method receives the context passed by the parent.
- onModuleExit is invoked in the Aggregator Module when a Module exits.
- exit method returns a context to the Aggregator module. This signifies that the job of the Module is done and gives a response to the parent for processing. The exit method is implemented in the Base module.
The onLaunchModule and onModuleExit methods must be implemented by all the modules and the exit method is an optional method.
In this topic