An open and scalable architecture for delivering 3D shared visualization services to heterogeneous devices