Announcement Announcement Module
No announcement yet.
refactoring existing core java application Page Title Module
Move Remove Collapse
Conversation Detail Module
  • Filter
  • Time
  • Show
Clear All
new posts

  • refactoring existing core java application

    Existing Application Description
    we already have a core java application used for performing certain business processes for user inputs
    at the capture terminal. The current flow looking like something below

    Capture Terminal(End User entries captured) -> Messages published On Bus ->

    Amongst the many subscribers to the messages published is our existing application
    Observations: Current System
    1. Plethoric plenty of factories for creation of data objects,Services,daos
    2. Object pool management - Nothing open source - all self created frameworks
    3. No Instance management in some cases.
    4. Threading available for business units and business units only with no return mechanisms for checking process
    output. The error mechanisms are built inside the units and it is up to each unit to acknowledge itself
    5. No transaction management.
    6. Lots of singletons declared for heavy objects for communication
    7. Diffused layering and no contexts for execution of a business process. Each unit doing what it wants with whatever object/service it needs to access. Sometimes it is so hard to track the actual business flow that a previous programer has to come in to explain why and where what is happening

    We are provided with a new requirement with which we have to integrate a new client for the service.
    The new client is a j2ee application launched on an app server and let us say we have considerable time for development.
    I want to take this chance for a little refactoring and to have atleast the new interaction as something better.

    So I would like to
    HTML Code:
    So I would like to
    	1. Introduce a context for execution of a bp
    	2. The context itself exposing different services for instance
    		2.1 A dao layer.
    		2.2 Business services layer
    		2.3 Technical services layer
    	3. The spring context creating each from from existing objects.
    	4. The context encapsulating a spring context
    		4.1 Want a centralised loading of all spring configs.
    		4.2 Want services written tomorrow to be exposed through the context.
    	5. Polymorphic factories themselves creating the contexts. (Each created context being a singleton)
    	6. Testing achieved partly with mocks 
    	----------- With introduction for spring ----------------------------
    		1. Leverage the jndi support from spring to communicate with app server.
    		2. Caching  - To be introduced as a cross cutting concern with annotated aspects and proxies.
    		3. Moving object creation to a single layer
    		4. Instance management and singletons becoming declarative.
    HTML Code:
    I would have thus a hierarchy
    				Polymorphic factory for creation of business context
    				Business Contexts
    					business services
    				BpRunner - uses the loader to context loader,implementing previous bp unit interface
    			BusinessProcessBean1	- extending BpRunner
    			BusinessProcessBean2    - extending BpRunner
    Any feedbacks or queries or reference on the same will be a great help.
    ( Did not see many entries where spring is used purely in a core java application)
    Last edited by rainman; May 2nd, 2008, 01:56 AM. Reason: notifications via email