Мне очень нравится простота вызова удаленных методов через RMI в Java, но многословность его формата сериализации является основным убийством (да, я оценил, спасибо). Кажется, что архитекторы в Sun сделали очевидную правильную вещь, когда проектировали RPC (свободно говоря) компонент, но потерпели грандиозную неудачу, когда дело дошло до реализации сериализации.
И наоборот, кажется, что архитекторы Thrift, Avro, Kryo (особенно), буферов протоколов (не так много), и т. Д. обычно делали очевидные правильные вещи при разработке своих форматов сериализации, но либо делают не предоставлять механизм RPC, предоставлять тот, который излишне запутан (или незрел), или другой, который больше ориентирован на передачу данных, чем вызов удаленных методов (идеально подходит для многих целей, но не для того, что я ищу).
Итак, очевидный вопрос: как я могу использовать прелесть вызова метода RMI, но использовать одну из вышеуказанных библиотек для проводного протокола? Это возможно без большой работы? Оцениваю ли я слишком жестко одну из вышеупомянутых библиотек ( NB В целом я очень не люблю генерацию кода; мне несколько не нравятся ненужные аннотации, а также немного больше конфигурирование XML; любые "бины" делают меня cringe - мне не нужен вес, в идеале я просто хочу реализовать интерфейс для своих удаленных объектов, как в RMI).