Эта Web-служба создана как еще один способ организации взаимодействия с базой-данных товаров, использовавшейся в приложении аукциона. В этом случае применяется XML. Пользователи Web-службы аукциона могут добавлять и удалять записи с информацией о товарах, а также просматривать сведения об отдельных или обо всех товарах, представленных на аукционе.
Web-служба - это набор связанных функций приложений, которые можно публиковать, находить и вызывать в Internet. Web-службы позволяют приложениям, работающим на разных платформах, и написанных на разных языках, взаимодействовать с помощью компонентов XML.
Существует два основных подхода к разработке Web-служб: сверху вниз и снизу вверх. При подходе сверху вниз Web-служба основывается на интерфейсе Web-службы и типах XML, определенных в файлах схемы (XSD) и в файлах, использующих язык описания Web-служб (WSDL). Разработчик изменяет базовую реализацию в соответствии с бизнес-логикой. В подходе снизу вверх Web-служба создается на основе существующей бизнес-логики, реализованной в объектах Java JavaBean или EJB. Создается файл WSDL, описывающий интерфейс Web-службы. Подход сверху вниз обеспечивает более широкие возможности управления интерфейсом Web-службы применяемыми типами XML. Именно этот подход рекомендуется применять при разработке Web-служб.
Web-служба аукциона создана с применением подхода сверху вниз, начиная с описания файлов WSDL и XSD. Файл WSDL определяет экспортированные интерфейсы, вызываемые операции и передаваемые между этими операциями сообщения. Файл WSDL ссылается на файл XSD, в котором приведены подробные определения этих сообщений.
Следующая схема иллюстрирует этапы разработки Web-службы. С помощью редакторов WSDL и XSD создаются файлы WSDL и XSD. Второй компонент, каркас объекта Java, включает три отдельных блока, создаваемых с помощью мастера. Поскольку эти блоки генерируются одновременно и тестируются как единый компонент, то они описаны вместе.
Перечисленные в файлах WSDL и XSD интерфейсы Web-службы и типов XML, определяют элементы и действия, указывающие, как будет выглядеть и функционировать данная Web-служба.
При разработке Web-службы аукциона с помощью редактора XSD создается новый файл XSD, определяющий типы схемы XML, передаваемые Web-службе.
Затем с помощью мастера создания файлов WSDL создается новый файл WSDL, формирующий каркас файла WSDL с использованием стиля по умолчанию и литералов документа. Такой подход рекомендован организацией обеспечения взаимодействия Web-служб (WS-I). WS-I - это открытая промышленная организация, публикующая рекомендации, обеспечивающие возможность беспрепятственного взаимодействия Web-служб, созданных различными поставщиками.
После создания каркаса файла WSDL этот файл редактируется с помощью редактора
WSDL. В нем создаются новые операции, сообщения, части и связи. Редактор WSDL
тесно связан с редактором схемы XML, который можно открыть из редактора WSDL
для обращения из файла WSDL к определенным в файле XSD типам схемы XML, как это
показано на следующем рисунке.
Каркас объекта Java создается на основе файлов WSDL и XSD с помощью мастера создания Web-служб. Этот мастер генерирует код Java на основе программной модели JAX-RPC. Файлы описания Web-служб генерируются в соответствии со спецификацией Web-служб для J2EE.
Создание Java proxy и примера JSP одновременно с каркасом Web-службы существенно упрощает параллельное тестирование всех элементов Web-службы.
После создания каркаса Web-службы в редакторе Java открывается сгенерированный файл реализации каркаса Java, включающий в себя необходимые интерфейсы для методов, определенных в файле WSDL. Теперь пришло время, когда разработчик должен модифицировать реализацию каркаса в соответствии с базовой бизнес-логикой.
Сгенерированный пример JSP прост, но полностью функционален. Его содержимое включает в себя три фрейма. Левый фрейм содержит список всех методов, с которыми может работать пользователь. Щелчок на любом из этих методов открывает область ввода в верхнем правом фрейме. После ввода информации в форме можно, нажав кнопку Invoke, обработать введенные данные. В нижнем правом фрейме будут показаны результаты обработки.
При создании Web-службы аукциона мы изменили сгенерированный пример JSP, создав более привлекательный визуальный интерфейс и добавили поддержку массивов, поскольку операция, возвращающая список всех доступных товаров, возвращает массив.