Architecture for designing and building applications for sharing