This week's giveaway is in the Android forum.
We're giving away four copies of Android Security Essentials Live Lessons and have Godfrey Nolan on-line!
See this thread for details.
The moose likes Architect Certification (SCEA/OCMJEA) and the fly likes SCEA part II, integration with external system Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login

Win a copy of Android Security Essentials Live Lessons this week in the Android forum!
JavaRanch » Java Forums » Certification » Architect Certification (SCEA/OCMJEA)
Bookmark "SCEA part II, integration with external system" Watch "SCEA part II, integration with external system" New topic

SCEA part II, integration with external system

Krzysztof Koziol
Ranch Hand

Joined: Nov 19, 2006
Posts: 133


I've got the following case. Application displays data that comes from an external system and utilizes WS in order to retrieve it. Data includes list of categories or information regarding each product. Of course performance is important.

What would be the best approach to design it? As for now I see two options:

1) Assume that volume of data is low so it could be retrieved each time when user request it (via WS)
2) Assume that volume of data is high, we decide to synchronize data between an external system and application DB (make copy of it)

I'm afraid that the 2nd option may introduce stale data since we will not be able to synchronize it so often (let's say once a day seems reasonable)

Any other ideas?


Rishi Shehrawat
Ranch Hand

Joined: Aug 11, 2010
Posts: 218

Keeping a local copy of the database will add complexity & overhead. You will have to have a mechanism to synchronize it, given that it is a external system it might not be simple. How do you transfer, how often, additional manageability issues will also arise.

If you are concerned about performance & are sure that the data is not volatile, you could cache it before you make web service call. Basically before making web service call check if data is available in cache, if it is not available in cache retrieve it & also update cache. You can also add a mechanism to invalidate data which is older than pre-configured value to address concerns about stale data. Actually if you use a third party cache provider, these type of cache invalidation features are inbuilt .
With a little knowledge, a cast iron skillet is non-stick and lasts a lifetime.
subject: SCEA part II, integration with external system
Similar Threads
Doubts regarding external system and view helpers.
Inventory system assumptions
Required external system, but not part of the given assignment
synchronization strategy
How to justify QoS when integrating with external systems