Quando você implementa a interface java.io.Serializable em uma classe Java/Groovy, está instruindo a plataforma Java de que esta pode ser serializada.
Bom: o que é isto né? Isto quer dizer que a JVM consegue transformá-la em um array de bytes para que seja, por exemplo, persistida em disco ou então simplesmente enviada pela rede para que outra JVM a desserialize (transforme de array de bytes para um objeto Java) e em seguida a processe.
Por que é interessante ter suas classes serializáveis, especialmente em aplicações web: por que muitas vezes você as inclui na seção do usuário. E o que o servidor faz quando quer liberar memória? Ele serializa o que estiver na sessão para o disco. E também, dependendo de qual servidor que você estiver usando, ele pode também restaurar a sessão do usuário em caso de falhas. Como ele faz isto? Desserializando as sessões que persistiu em disco.
Três anos atrás escrevi sobre isto no meu blog em outro contexto (Java, aplicações desktop: http://www.itexto.net/devkico/?p=844). Talvez este meu texto te ajude a entender melhor este recurso da plataforma Java.
Pessoal,
muito obrigado pela ajuda.
Foi bastante esclarecedor.
Excelentes artigos.