title: What is the recomended approach to synchronize data between different applications?
body: <p>I've an application written in J2EE+Spring+Hibernate (call it app1), now my boss wants that another application (app2, totally differente and written with different technologies), could regularly and automatically sync with it (at least just one way app1 to app2). I've never done something like this... I can think of the problem: app2 calls app1 (maybe using a webservice), how do I know what part of data has been addad and updated since last sync? What I tought is of adding a timestamp column on every table of the main app2, so that app1 can say "give me everything that is changed or added after timestamp xxxx. This involves modifying many things. What other features can I use to solve this, whitout modifying too much the structure of the application? (Suppose databases are different and I don't want to have database ports open to everybody on my server). </p>
  
  <p>finally, I forgot, what about row deletion? Timestamps won't solve this...</p>