Existen varias tecnologías que pueden utilizarse para desarrollar aplicaciones distribuidas, entre ellas los sockets de bajo nivel, el paso de mensajes y la invocación remota de métodos. El modelo tecnológico de JavaSpaces se distingue por ofrecer áreas o 'espacios' de intercambio de objetos persistentes a través de los cuales los procesos remotos basados en la tecnología Java coordinan sus acciones e intercambian datos. Este enfoque puede simplificar el diseño y la implementación de aplicaciones distribuidas sofisticadas, y permite hacer frente a los retos que plantean el diseño y la implementación de este tipo de aplicaciones.