Я думаю, что этот вопрос может оказаться немного субъективным, поэтому я отмечаю его как CW.
Моя команда заинтересована в разработке нового набора "веб-сервисов" для наших проектов. Я помещаю «веб-сервисы» в воздушные кавычки, поскольку термин может означать очень много разных вещей. Единственное, что нам действительно нужно, это иметь в виду, что мы можем предоставить некоторый набор API-интерфейсов кроссплатформенным клиентам для использования наших данных и принятия мер по ним.
Я пытаюсь провести некоторое исследование, чтобы понять, каково текущее «состояние дел», когда дело доходит до создания сервисов для предоставления ваших данных множеству других (внутренних) приложений и даже других сервисов. Я исследовал такие вещи, как Thrift, Protocol Buffers, JAX-WS, RMI и т. Д., И я немного растерялся, пытаясь понять, какой подход мы должны использовать при разработке нового набора сервисов. Я бы хотел, чтобы мы смогли по существу создать «инфраструктуру» для услуг, поэтому я немного рассмотрю все существующие подходы.
Для создания совершенно новых веб-сервисов, где находится текущая передовая практика / уровень техники?
Наши единственные реальные требования:
- Формат данных / кодировка должны быть независимыми от платформы (это исключает RMI).
- Службы должны хорошо работать по HTTP
- Написание реальных серверных служб на Java не должно быть проблемой.
- Хорошим плюсом будет возможность создания клиентских прокси.
- Мне бы хотелось, чтобы каждый сервис был легковесным, чтобы мы могли развернуть сервисы для разных функций как полностью отдельные развертывания.
В настоящее время мы используем некоторую комбинацию сервисов SOAP и Axis / JAXRPC, и, честно говоря, с ними трудно работать - сообщения, отправляемые туда и обратно, огромны и слишком многословны.