С json-rpc согласен, однако когда используется несколько ide, возникают сложности с библиотеки json, например если у вас Delphi 7, Delphi XE 10 и Lazarus то код для работы с json скорей всего будет везде разный, можно конечно использовать ulkJSON правда не знаю как он с Lazarus дружит ли, но с Delphi 7 и XE 10 дружит.