Friday, 12 July 2013

Some Thoughts about New Feature Integration

Now I am working on new features implementation based on existing system. How to reduce the impact on the system?

Just thinking of SOA, How about defining the services provided in the running system? And then considering the interaction between the new features and the services?

Based on this, you view your system as a service provider. If the service is not declared clearly, then add them.

After this, go through the scenarios by the messaging flow and enhance the flow progressively. 

The idea above is, talking about high level design. The next thing is, to decide the implementation. I find the common practice is to have a messaging mechanism. It is quite natural to map to service request and response. It will become powerful enough to implement most of the complex logic if providing timing functionality.

Within the process level, the new features can use a queue and a frequent checking to communicate with the services. The checking can be put either in a standalone thread or in the main loop.

Within the system level, the new features can communicate with other components in the same system by network/share memory, so call inter-process communication. The exchanged information is embedded in the messages.

Overall, the idea is simple. Define the services you are relying on. Based on them, check the communication flows whether it can accomplish the domain logic you want. The rest just to decide how the interactions are passed through.

No comments:

Post a Comment