Веб-сервисы в Java

Веб-сервис - это приложение предоставляющее функционал клиенту. Клиентами могут быть как обычные веб-браузеры так и стандартные приложения. Связь между клиентом и сервисом устанавливается посредством стандартных протоколов, которые обеспечивают подключение к endpoint-ам сервисов. Endpoint - это специальный адрес, используемые для того чтобы получить  доступ к веб-сервису.
С точки зрения Java веб-сервисы можно разделить на две категории:
  1. Java API for XML Web Services (JAX-WS) - основаны на XML и Simple Object Access Protocol (SOAP). Возможности сервиса публикуются на Web Services Description Language (WSDL). Поддерживаются типы сервисов на основе сообщений и на основе RPC. Этот подход более сложный чем следующий, но он окупается поддержкой транзакций и обеспечением большей безопасности. 
  2. JAX-RS - Representational State Transfer или RESTful веб-сервисы. Этот подход применим для простых приложений не предъявляющих высоких требований. Отлично подходит для stateless-сервисов без фиксации состояния (служба в которой содержатся данные только для чтения; антоним statefull service). Можно наладить кэширование для достижения высокой производительности.