Говоря о гетерогенной архитектуре, транспортный уровень IMHO (как вы отметили «сокеты» как ответ) так же важен, как и уровень протокола (сериализация данных и т. Д.).
То, что я обнаружил, что возвращается во времени, - это обучающая библиотека программирования, которая объединяет сериализацию данных между различными языками программирования, операционными системами и архитектурами (от старшего к младшему / младшему к старшему, 16/32/64 бит и т. Д.) .
Мой любимый выбор - Буферы протокола Google , со встроенной поддержкой C ++, Python, Java и Сторонние дополнения с поддержкой огромное количество языки программирования / сценариев (включая Lua, Matlab, Ruby, Perl, R, Php, OCaml, Mercury, Erlang, Go, D, Lisp) и реализации RPC (например, Zeroc ICE ). Вне списка их поддерживают многие другие продукты, такие как Библиотека буферов протокола Google SWI-Prolog .
Альтернатива - Thrift с поддержкой различных языков программирования.
Для сравнения вы можете проверить: Экономия против Протобуфа против JSON .