Aplicação Cliente/Servidor/Master multiplataforma - o que usar?

Por favor, Me corrijam se eu estiver errado.

Existem no mercado várias soluções de assistência remota e muitas delas resolvem o dilema básico de conexão com clientes protegidos por firewall, disponibilizando um servidor/bridge que possibilita o tráfego de dados entre o master e o cliente sem a necessidade de uma conexão direta entre os dois.

Pois bem, pergunto aos mais experientes: Se você fosse implementar um sistema desse tipo, que precisasse atender às seguintes exigências:

  • O servidor/bridge seria escrito em java, e rodaria tanto em Windows quanto em Linux
  • A aplicação cliente (no computador que receberá assistência remota) seria uma aplicação nativa, desenvolvida em C++
  • O master (interface de acesso ao cliente) seria um applet acessado via browser

Que tecnologia / framework você utilizaria para a comunicação de rede?

Em um caso como esse, se eu resolvesse utilizar sockets e implementar tudo do zero, teria um trabalho enorme pra criar todo um protocolo específico pra aplicação.
Esta implementação teria que fazer a conversão de dados do Java para C++ e vice-versa.

RMI seria uma opção se cliente, servidor e master fossem todos em Java, mas pelo que já li, RMI só funciona de Java pra Java.

Como não quero ter que implementar a serialização/desserialização de objetos/dados entre as duas linguagens, eu pergunto:

Existe nos dias de hoje algo como o CORBA que permita a comunicação de objetos entre Java e C++ sem muita burocracia?

Se a resposta é não, o que eu devo utilizar para não ter que implementar do zero todo um protocolo de comunicação e conversão de dados?

De já, agradeço!