Modular Architecture [Notes]
Overview
Module Overview
Result of Deep Dive 2022-09-08
Rework and preparation for follow-up Deep Dive sessions
Definitions
Term | Definition |
---|---|
Module | Modular programming is a software design technique that emphasizes separating the functionality of a program into independent, interchangeable modules, such that each contains everything necessary to execute only one aspect of the desired functionality. |
(Software) Package | A collection of functions written in a single language bundled with additional content like documentation, unit test, sample data etc. Source: https://en.wikipedia.org/wiki/Package_development_process |
Component | An individual software component is a software package, a web service, a web resource, or a module that encapsulates a set of related functions (or data). Source: https://en.wikipedia.org/wiki/Component-based_software_engineering#Software_component |
Sources | Technical source code, structures and definitions of an IT solution |
(JLN) Business Process |
|
Functional Unit | An interchangeable unit that provides a piece of business functionality |
(Software) Repository | A storage location for software packages & other technical sources |
Key Questions
How to find a wording which is clear and prevents misunderstanding and allows for a common language between business (implementers) and technical (developer) people?
How to achieve an up-to-date documentation of the architecture and it’s features (modules) which satisfies and links the needs of implementers and developers
Key Findings
Findings
Related topics from Developer Committee
DC #224 Testing Scenarios
DC #288 Implementer Documentation
DC #274 Default Module Configuration
DC #260 Documentation Platform
DC #105 List of modules / JLN Business Process Mapping
Related Sources
Source | Content / Findings |
---|---|
Describes “Modularity” as Modularity (and its integration counter-part) is considered at 3 distinct levels:
… Software Component and Entity levels modularity are fully in the scope (controlled by) of openIMIS. openIMIS is built modular "from the core on": even low level features (like login,...) and central features (like Insurance Scheme management,...) are built as a plugins of a core platform. The core platform provides generic components (building blocks) to be used by / particularised in the various plugins and is split in 3 layers:
Although openIMIS is an assembly of components (themselves assemblies of plugins), deployments of openIMIS doesn't impose a distributed deployment. The choice of isolating the various (server-side) components to dedicated infrastructure is taken according to each project's needs. Within a project, scaling up by distributing components as the load increases is a very standard (and easy) operation:
Plugins are documented in openIMIS Modules.
| |
In openIMIS, (nearly) everything is a module: even "low level" (and mandatory) features follow this principle. … Plugins (can) provide several types of archetypes, dedicated to the various openIMIS layers: openIMIS Mobile FE, openIMIS Web FE, openIMIS Online BE, openIMIS Batch BE,... openIMIS can be deployed with an extra layer dedicated to implement a FHIR API, based on openIMIS core (base) modules.
@Patrick Delcroix in the comments: Here my point of view on the module list details in 4 groups (core, business...) The module with * leading are not found in JLN IT core
Business
Register
Reporting
| |
https://openimis.atlassian.net/wiki/spaces/OP/pages/807600219 https://openimis.atlassian.net/wiki/spaces/OP/pages/807698543 https://openimis.atlassian.net/wiki/spaces/OP/pages/945422345 |
|
| |
https://openimis.atlassian.net/wiki/spaces/OP/pages/943292424 |
|
|
List of modules under openIMIS Modules
Module | Content / Finding | “Modules” in diagram |
---|---|---|
https://openimis.atlassian.net/wiki/spaces/OP/pages/807632949 |
| Claim |
“Beneficiary Enrollment” \ https://openimis.atlassian.net/wiki/spaces/OP/pages/1365999627 |
| Policy |
“Beneficiary Enrollment” \ https://openimis.atlassian.net/wiki/spaces/OP/pages/1366228996 |
| Persons - Missing in diagram Families - Missing in diagram |
“Beneficiary Enrollment” \ https://openimis.atlassian.net/wiki/spaces/OP/pages/1366163471 |
| Contribution Payment |
“openIMIS Administration Modules” \ https://openimis.atlassian.net/wiki/spaces/OP/pages/3067543561 |
| Product |
“openIMIS Administration Modules” \ https://openimis.atlassian.net/wiki/spaces/OP/pages/920584218 |
| Location Health Facilities - Missing in diagram |
https://openimis.atlassian.net/wiki/spaces/OP/pages/1448542777 |
| Claim AI - Missing in diagram |
https://openimis.atlassian.net/wiki/spaces/OP/pages/943292424 |
|
|
https://openimis.atlassian.net/wiki/spaces/OP/pages/868417563 |
| FHIR V3 FHIR V4 |
https://openimis.atlassian.net/wiki/spaces/OP/pages/2614362157 |
| Invoice Others? (e.g. Contribution Plan ?) |
https://openimis.atlassian.net/wiki/spaces/OP/pages/1730740234 |
| Calculations |
https://openimis.atlassian.net/wiki/spaces/OP/pages/1730740273 |
| Contract |
https://openimis.atlassian.net/wiki/spaces/OP/pages/1730740256 |
| Policy Holder |
https://openimis.atlassian.net/wiki/spaces/OP/pages/1730740289 |
| Policy Holder Portal - Missing in diagram |
https://openimis.atlassian.net/wiki/spaces/OP/pages/3051225101 |
| Bulk CHFID Generator- Missing in diagram |
https://openimis.atlassian.net/wiki/spaces/OP/pages/3144515592 |
| Claim Batch |
https://openimis.atlassian.net/wiki/spaces/OP/pages/3361669121 |
| Report |
Missing modules from diagram |
|
|
Missing modules on the diagram? |
|
|
Did you encounter a problem or do you have a suggestion?
Please contact our Service Desk
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. https://creativecommons.org/licenses/by-sa/4.0/