Hi John,<br>
<br>
Yes, we have a refresh function. Here's how we do it:<br>
<br>
On the Data-Centric tier, when a change is made to any of the files that we consider "static", we update a simple utility-type table indicating that the users' local files need to be updated. When a user first logs in to the application, the refresh function is called and checks this utility-table. If the table has changed then we recreate the data to send back to the caller. The utility table contains three columns<br>
<br>
1. User's workstation ID<br>
2. File/Table name<br>
3. Boolean field indicating "Refresh Yes/No"<br>
<br>
When the user wants to get data from the data-centric component, they actually create an instance on the Proxy DLL which turns around and creates an instance on the Data-Centric tier. All parameters are sent using string variables (serialized data).<br>
<br>
For those objects that we feel are fairly static, we save the string variable that contains the serialized data in a local text file (it is amazingly fast). Now when the user requests that data, the Proxy object retrieves the string from the text file and sends it back to the Business Object.<br>
Of course, we check for the existence of the file first and if it is not found then we call the data-centric tier request the data and create the local text file.<br>
<br>
The only downside to this approach is that it is not real-time, meaning that if a change is made to the "static" data (usually by an app administrator), all other users must exit the app and log back in in order to see the changes. But that's exactly why we do this for only some of the files.<br>
<br>
The great thing about this approach is that the proxy tier can grow to have additional logic for distributed data. For example, you may have a third party application where you call it with a street address and it returns a valid 9 digit zip code. This call can be made from the Proxy tier without impacting your Business Objects or Data-Centric tier. And so on...<br>
<br>
I hope this helps! <br>
<br>
Looking forward to further communication with you and others on this topic and I'm preparing a few questions of my own!<br>
<br>
P.S. I am so glad that you started this thread

<br>