РЕЦЕНЗИИ
Бекет Г., Куннумпурат М., Роди Ш., Тост А. Java: основы веб-служб. М.: Кудиц-образ, 2004. - 464 с.
Сама идея клиент-серверных технологий родилась несколько десятилетий назад, но только бурное развитие телекоммуникаций и прежде всего Интернета превратило их из узкоспециализированного инструмента в средство решения самых разнообразных повседневных задач. Однако это "сошествие с горних высот" имеет и обратную сторону: массовые решения должны функционировать на всевозможных программно-аппаратных платформах и при этом быть достаточно дешевыми и легкими в сопровождении. Достичь этого можно только в том случае, если разработчикам не понадобится изобретать велосипед от проекта к проекту, если им будут предоставлены уже готовые и, главное, стандартизированные средства и технологии. К счастью, сегодня все это уже имеется.
Название рецензируемой книги, состоящей из 11 глав, полностью отражает ее основное назначение: дать базовые знания, необходимые для создания веб-служб. Предполагается, что читатель умеет программировать на языке Java и способен разобраться в документе XML.
Первая глава - введение в веб-службы. Авторы объясняют, что это такое и для чего они нужны, а также дают перечень самых часто используемых в веб-службах стандартов и протоколов.
Синтаксическому анализу XML-документов посвящена вторая глава - одна из самых длинных в книге. Такое внимание к этому предмету не случайно, ведь именно XML является стандартом, обеспечивающим платформенно-независимую интерпретацию информации. Однако авторы разбирают лишь те аспекты этого языка, которые совершенно необходимы для понимания дальнейшего материала; XML с нуля здесь не рассматривается.
Практическое освоение материала начинается с третьей главы. В ней описывается создание простейших веб-служб на основе механизма удаленного вызова процедур (RPC) с использованием Axis и Tomcat - исполнительных систем SOAP и сервлетов.
В четвертой главе рассказывается о документориентированном (document-style) SOAP-программировании, базирующемся на XML (в предыдущей главе клиент и сервер тоже обменивались между собой такими документами, но там этот факт был второстепенным, с равным успехом можно было использовать другой протокол, например JRMP). Сравниваются два способа манипулирования XML-документами: DOM (Document Object Model) и SAX (Simple API for XML).
Чтобы предоставляемая неким поставщиком веб-служба действительно была общедоступной, необходимо предоставить информацию об используемых ею протоколах, стандартах кодирования информации и т. п., то есть дать ее описание. Этой теме посвящена пятая глава, в ней приводятся сведения о WSDL (Web Services Description Language) - своего рода диалекте XML, предназначенном для описания возможностей веб-служб.
Способы вызова веб-служб излагаются в шестой главе. Здесь рассматриваются статическая и динамическая модели вызова, JAX-RPC (Java API for XML-based RPC) и не-SOAP веб-службы, в частности набор компонентов WSIF (Web Services Invocation Framework).
Прежде чем воспользоваться веб-службой, необходимо узнать о ее существовании и найти ее описание. Таким образом, провайдер должен иметь механизм публикации и рекламы веб-служб, а клиент - средства их поиска. Этот вопрос изучается в седьмой главе, где рассматривается стандарт UDDI (Universal Description, Discovery and Integration).
Изучив первые семь глав, читатель сможет самостоятельно создавать вполне работоспособные веб-службы, однако это не означает, что он уже все узнал. Так, до этого изучалось лишь синхронное взаимодействие: клиент, отправив на сервер запрос, останавливался и ждал ответа. Однако подобный метод общения как минимум непродуктивен, а в некоторых случаях вообще недопустим, поэтому всю восьмую главу авторы посвятили реализации асинхронных веб-служб с помощью JAXM (Java API for XML-based Messaging) и JMS (Java Message Service).
В девятой главе освещаются вопросы безопасности. Десятую главу авторы отвели для изучения инструментов создания веб-служб: BEA WebLogic Workshop, IBM WebSphere Application Developer и IBM WebSphere SDK for Web services.
В последней, одиннадцатой главе разбирается комплексный пример: приложение с базой данных, реализующее информационный каталог, J2EE-приложение, обрабатывающее оплату по кредитным картам, и система обмена сообщениями, используемая для заказа товаров.
Приводимых в книге сведений вполне достаточно для того, чтобы научиться самостоятельно создавать веб-службы с помощью Java, а большое количество примеров, снабженных необходимыми пояснениями, позволяет сделать это в весьма короткие сроки. К сожалению, к ней не прилагается CD-ROM, однако все примеры выложены на сайте американского издателя (www.wrox.com) и доступны для свободного скачивания.