1. A method for enabling data sharing between software systems for a plurality of users, the method comprising: simultaneously managing, with a computer system, at least one data-sharing session for each said user, wherein managing one of said data-sharing sessions comprises: for each of a plurality of software systems associated with one of said users: receiving a request from said software system to join said data-sharing session associated with said user, said request including a credential; determining if said credential is associated with said user; and if said credential is determined to be associated with said user, registering said software system in said data-sharing session; registering requests for said registered software systems associated with said user to be notified of updates to values of sets of requested data; storing values for data items received from said registered software systems associated with said user; and whenever at least one of said values of said data items is updated by any one of said registered software systems associated with said user: resolving said sets of requested data to sets of said data items using semantic descriptions provided for said data items and said sets of said requested data; and for each registered software system associated with said user that registered a request to be notified of updates to said sets of said requested data, providing updates to said values of said sets of said data items to which said sets of said requested data semantically resolve to said registered software system associated with said user.