Software without borders: applications that collaborate