Re: client-server app where data is disconnected, but stays fresh

Tech-Archive recommends: Repair Windows Errors & Optimize Windows Performance



Hi, Jesse:

This is a common design for instant message or real-time notification.
See the short article at the site
http://www.udaparts.com/document/articles/chatservice.htm.


Regards,



"Jesse Aufiero" <jaufiero@xxxxxxxxxxx> wrote in message
news:edbx5CteHHA.1240@xxxxxxxxxxxxxxxxxxxxxxx
I'd like to develop a client-server application where the users (.Net 2003
application) can modify data in the database (sql server 2005), and all
other users will see those changes in near real time. This kind of
architecture will require that the client applications periodically (every
second or two) poll the server to see if they are up to date. If they are
not, they pull the appropriate fresh data from the server. The clients
can then view the fresh data (in grids, charts, and pivot tables) in a
disconnected fashion until the next change triggers them all to refresh.

I intend to have a single row in one of my database tables provide the
clients with a 'change type' and 'change number' to facilitate this near
real time synchronization. If Client A makes a change to his copy of the
data, his changes are written back to the database and the 'change type'
and number are updated. The other clients will detect this change, and
refresh themselves.

Upon refresh, I think that merging the new data with the client's existing
datasets/tables will be necessary, since the display controls (grids,
pivot tables, etc.) in the UI that display the data should not flicker or
lose row focus when the refresh occurs. In fact, it's critical that both
the polling for changes and the refresh be completely unobtrusive. I'd
rather the program not even 'pause' at all during the refresh. Perhaps a
background process is needed here.

I'd really like to avoid re-inventing the wheel, and I am not an expert in
ADO.NET 2003, so I'm looking to see if anyone has seen this type of
architecture before, and if there are samples/'patterns' out there that
can steer me and save me some time. I'd also be interested in speaking
with someone who may want to consult me in how to go about designing such
an architecture ($).

Of particular interest to me is how to handle concurrency and make use of
transactions, given that Client A may make changes to multiple rows or
tables (with parent-child relationships) and need to write those changes
back to the server as one 'package', to be detected by the other clients
and, refreshed as a 'package'.

Thanks!



.



Relevant Pages

  • Re: Real time notification
    ... Thanks Sahil for detailed reply. ... > reaction was that I will use a database. ... > a) Logical - The central server informs the clients of a change. ...
    (microsoft.public.dotnet.framework.adonet)
  • Re: client-server app where data is disconnected, but stays fresh
    ... other users will see those changes in near real time. ... second or two) poll the server to see if they are up to date. ... disconnected fashion until the next change triggers them all to refresh. ... clients with a 'change type' and 'change number' to facilitate this near ...
    (microsoft.public.dotnet.framework.adonet)
  • Database Access Issue
    ... I reciently attempted to migrate a database application and a number ... of file shares from an NT4 server to a Windows 2000 server. ... XP, Mac OSX, and Mac OS 9.x. ... Following the migration all clients were able to access the file ...
    (microsoft.public.win2000.macintosh)
  • Re: 5 access 2000 users and 1 AccessXP user
    ... Access database in question is in Access 2000). ... The back end is on a server running win2K server. ... Check the permissions of the folder where the workstations are connected ... >> started upgrading my win2K clients to XP and the server is still running ...
    (microsoft.public.access.conversion)
  • MS-SQL Internet Hosting
    ... While the host management backs up one's ... utility is provided that backs up the database to one's web-server site. ... By internet enabled I mean that one, or one's clients can connect ... noticeable is the same as when connecting to a local server. ...
    (comp.databases.ms-access)