Я бы максимально отделил вашу конечную точку службы RESTful от вашего исходного приложения. Это позволяет масштабировать (добавлять несколько серверов для конечной точки REST), а также изменять исходное приложение без необходимости непосредственного изменения API REST.
Clients <== REST (HTTP) ==> RESTful endpoint <== legacy (sockets) ==> Legacy backend
Таким образом, ваш REST-сервер является поставщиком услуг для ваших клиентов, но в то же время представляет собой и клиента для вашего исходного бэкэнда.
Я бы разработал RESTful API, а затем выбрал одну из существующих сред REST для Java, например Restlet, и реализовал сам сервис REST. В то же время вы можете начать реализацию шлюза между сервером REST и исходным бэкэндом, используя сокеты.
Обратите внимание на масштабируемость и производительность (т. Е. Вы можете использовать пулы соединений для моста rest <=> backend
и не создавать сокет для каждого входящего запроса API), а также подумать о возможных преимуществах HTTP. Вы можете извлечь выгоду, когда сможете использовать кэширование и т. Д., Если это позволяет логика вашего внутреннего приложения.