In overall framework architecture Event Notification component works as orchestration engine and plays a major role. Any hardwired calls between components will be broken into easy sequential or parallel orchestration paths that a orchestration engine executes. So event notification has all the control and can scale itself to multiple locations when load increases. It will work hand in hand with Self Tunning component for taking decisions on runtime scaling. Event notification is also useful for tracing execution paths on request of Operations team to debug certain issues. Event notification uses multi-threding capability and can execute orchestration paths synchronous or asynchronous based on configuration. Starting point for orchestration path is event and which is triggered by event source component. For example UI component will trigger events for saving information, calling reports, searching information. Now event notification component may call in sequence saving information and then email notification to notify user of success/failure of earlier save. Orchestration paths are defined/configured deployment time but can also be altered runtime and this alters behaviour of system but it is totally in hands of administrator. So basically there are events under event notification and components subscribe to these events which form orchestration path. Source component triggers events through event notification engine which in turn run thread(s) of component based on orchestration path.
Following are few benefits of this component
- Events are pre defined that get triggered within system (Events are 3 types within framework Framework specific, Domain specific and System specific)
- Once an event is defined and subscribers to these events are added deployment time /run time. This gives extensibility to framework such that runtime one can alter the behviour or even what is developed can be extended runtime for any customer requirement change.
- Subscriber can be one or many, they will get called in sequence or parallel based on how they register themselves with event notification and get added under orchestration path.
- Subscribers are functions of components or 3rd party web services that follow certain service contract.
- Event Notification can be scaled to run on multiple machines as load increases to handle.
- Event notification table for source and target and event details for known types
|Sr||Event Source||Event Trigger||Event type supported||Event Target||Comments|
|1||UI (WP – Input)||SAVE_CREATE||Pre, Post, Actual||BUSINESS PROCESS And AUDITLOGGING component||SESSION and UI(WP-JobTracker)|
|2||UI (WP – Input)||SAVE_UPDATE||Pre, Post, Actual||BUSINESS PROCESS And AUDITLOGGING component||SESSION and UI(WP-JobTracker)|
|3||UI (WP – Input)||SAVE_DELETE||Pre, Post, Actual||BUSINESS PROCESS And AUDITLOGGING component||SESSION and UI(WP-JobTracker)|
|4a||ENTITYATTRIBUTE(STATUS)||CHANGE_OF_VALUE||Pre, Post, Actual||BUSINESS RULE And AUDITLOGGING component||SESSION and UI(WP-JobTracker)|
|4b||BUSINESSRULE(STATUS == (‘Accepted’)BUSINESSRULE(STATUS == (‘Rejected’)||RULE_SUCCESSFUL||Pre, Post, Actual||WORKFLOW (delegate For Accepted/Rejected) andEMAILNOTIFICATIONAnd AUDITLOGGING component||SESSION and UI(WP-JobTracker)|
|5a||UI (WP – Input)||ATTENDANCE_PROCESSING||Actual||BUSINESS PROCESS And AUDITLOGGING component||SESSION and UI(WP-JobTracker)|
|5b||BUSINESSRULE(InTime between TimeDurationOf(‘GENERAL’)BUSINESSRULE(InTime between TimeDurationOf( ‘FIRST’)||SHIFT_PROCESSING||Actual||BUSINESS PROCESS (delegate for General Shift/ First Shift) And AUDITLOGGING component||SESSION and UI(WP-JobTracker) Probably SESSION DATA will be tagged for batching|
|5c||BUSINESSRULE(BATCHSIZE == 100)||BATCH_PROCESSING||Actual||BUSINESS PROCESS (delegate for BatchProcessing) And AUDITLOGGING component||SESSION and UI(WP-JobTracker)|