- Implementing Core Functions: Can be considered as commit transactions( Insert records, transfer files to legacy systems, batch imports) . These methods are atomic and can change the entire data for the whole system.
- Rendering data as Human Readable Form. All Forms, lists, Reports can be considered in this case. There is no data change in background system but only export of this system.
- CoreService: have transactional service methods. Each method is a atomic unit and as a whole the services capture whole system functions.So they are reusable
- RenderService: Can be implemented depending on the domain. Either Web Technologies, reporting or desktop applications. Each domain have its own constraints so unlike CoreService these methods are hardly reusable.
Sample Flow would be like:
- User request page with a GET method
- Render Service render the html and form.
- User fills the forms and POST the data
- Core method reads the data from request and commit the transaction
- Redirect the request to and URL
- Another GET and render Case
With this pattern you support and increase the separation of concern and increase the abstraction layer.
For java web applications, it would be best to use a action oriented framework like Struts suits well for the pattern
No comments:
Post a Comment