Problema aplicação cliente-servidor e cast de classes

Prezados, boa tarde!

Tenho uma aplicação em Java dividido da seguinte forma:
-Cliente: é baixado pelo usuário. Basicamente, interface gráfica.
-Modelo: também é baixado pelo cliente. Possui as classes comuns ao Cliente e ao Servidor. Entre outras, as classes Barra e Estrutura com um monte de gets e sets.
-Servidor: onde é realizado os cálculos/lógica do negócio. É executado remotamente em um servidor (via SOAP) e, portanto, não é baixado. Para processamento, as classes ModeloBarra e ModeloEstrutura estendem as classes Barra e Estrutura.

Durante a utilização, no cliente, a classe Estrutura é serializada com o XStream (para xml) e enviado ao servidor para processamento e posterior retorno.
No servidor, deveria ser realizado um cast de Barra (enviado pelo cliente) para ModeloBarra (que possui a lógica do negócio), mas esse cast não é possível:

java.lang.ClassCastException: xyz.porticum.modelo.Barra cannot be cast to xyz.porticum.ws.modelo.ModeloBarra

Até então, tenho utilizado a desserealização de Barra para ModeloBarra, via XStream. Tem funcionado, porém, é uma grande gambiarra. Estou implementando novas funcionalidades e estou tendo dificuldades com essa solução.

De que outra forma poderia realizar esse “cast”?
Há algum Design Pattern para problemas desse tipo? Cliente e servidor em que as classes do servidor estendem das classes do cliente.

Desde já, muito obrigado!

Mas são classes diferentes.

O cast é uma coerção de tipos de dado que você usa na seguinte situação:
Você tem uma variável de tipo de dado mais genérico ou mais abstrato, porém você sabe que essa variável contém referência para um tipo de dado mais específico, então nesse caso, você pode fazer o cast.

Exemplo, em algum lugar você tem isso:

TipoGenerico variavelGenerica = new TipoEspecifico ();

Como você tem a certeza de que a variável genérica recebeu um objeto de tipo específico, você pode fazer o cast:

TipoEspecifico variavelEspecifica = (TipoEspecifico) variavelGenerica;

Faz o simples, cria um DTO que represente essa estrutura, como você já deve ter feito com a classe Estrutura. Sendo que no servidor você faz a lógica de negócio em uma classe de serviço, em um método que vai receber esse DTO como parametro.