Разработка веб-служб средствами Java. Ильдар ХабибуллинРазработкаWebслужбсредствами
Скачать 9.24 Mb.
|
Фирма IBM откликнулась на язык XLANG созданием языка BPEL4WS (Business Process Execution Language for Web Services), призванного объеди- нить языки WSFL и XLANG. Спецификация языка BPEL4WS доступна по адресу Язык BPEL4WS создает композицию Web-служб, участвующих в бизнес- процессе, и описывает ее как одну Web-службу элементами языка WSDL. Такая композиция называется процессом и записы- вается в теле элемента . Каждый шаг процесса называется дейст- вием (activity). В число действий входит обращение к какой-либо Web- службе для выполнения Web-услуги Глава 9. Развитие Web Services 371 Действия, , позволяют задать сложный нелинейный алгоритм обработки данных Web-службами, входящими в процесс BPEL4WS. Действия и Процесс BPEL4WS описывается, как всякая Web-служба, документом WSDL, в который записываются дополнительные элементы Эти элементы вкладыва- ются непосредственно в корневой элемент WSDL-описания. Они содержат один или два элемента содержащих ссылки на WSDL-описание тех Web-служб, которые выполняют действия, составляю- щие процесс. Само же описание Web-служб, выполняющих действие, производится эле- ментами , вложенными в элемент , который, в очередь, вкладывается в элемент В листинге 9.2 показана схема вложенности элемента Листинг 9.2. Элемент языка BPEL4WS [?] [*] 372 Разработка Web-служб средствами Java /> [*] [+] | <Действия> [*] [*] [+] Глава 9. Развитие Web Services 373 partner="" portType="" operation="" inputContainer="" outputContainer=""> /> [*] [?] [*] [?] faultContainer="" /> for="" /> 374 Разработка Web-служб средствами Java condition=""> [*] Фирма IBM активно продвигает язык BPEL4WS в качестве стандарта для описания взаимодействия Web-служб в бизнес-процессах. Она уже выпус- тила программный продукт BPWS4J, реализующий спецификацию BPEL4WS. Кроме интерфейсов и классов, реализующих BPEL4WS, в состав продукта входят примеры описаний на языке простой редактор для создания файлов с описаниями утилиты для проверки доку- ментов BPEL4WS. Пакет BPWS4J свободно доступен по адресу Спецификация WS-Coordination Спецификация WS-Coordination, разработанная фирмами IBM, Microsoft и BEA Systems, описывает самые общие правила взаимодействия компонентов распределенного приложения, которые можно затем детализировать други- ми, более конкретными спецификациями. Ее можно посмотреть на сайте Компоненты распределенного приложения [10] часто работают на разном, плохо совместимом оборудовании и используют самые разные протоколы. Для координации их деятельности создаются специальные согласующие про- токолы (coordination protocols). Главная задача спецификации — установить общие правила регистрации и активизации согласующих протоколов. Эту задачу должна решить Web-служба координации (coordination service). Она содержит в себе службу активизации и службу регистрации. У каждого ком- понента может быть своя Web-служба координации. Web-служба координации активизируется при получении SOAP-послания от клиента с блоком заголовка При этом про- исходит обращение к службе активизации, адрес порта которой записан во вложенном элементе ТИП согласующего протокола и адрес клиента, приславшего запрос. Эти элементы и другие элементы, введенные в спецификацию, определены в пространстве имен с идентификатором После активизации Web-служба координации посылает ответное SOAP- С блоком заголовка Глава 9. Развитие Web 375 В каждое SOAP-послание, использующее Web-службу координации, вставляется блок заголовка Протокола, И Элемент В котором, во вложенном элементе , записывается порта Web-службы координации. Получив ответ, клиент регистрируется в Web-службе координации с помо- щью службы регистрации. Для этого он посылает Web-службе SOAP- послание с блоком заголовка На это Web-служба координации отвечает SOAP-посланием с блоком за- головка и элемент содержащий адрес Web- службы, реализующей согласующий протокол, выбранный Web-службой координации. После регистрации происходит взаимодействие Web-служб, автоматически использующее согласующие протоколы. Спецификация WS-Coordination ничего не говорит о согласующих протоко- лах и способах реализации Web-службы координации. Это должны сделать другие спецификации. Одна из таких спецификаций — спецификация WS- Transaction, описывающая тип согласующего протокола, устанавливающего правила создания и выполнения транзакций. Спецификация WS-Transaction Спецификация созданная фирмами IBM, Microsoft и Systems, предлагает две модели, детализирующие правила WS-Coordination: модель недолговременной транзакции с ограниченным числом участников AT (Atomic Transaction) и модель долговременной транзакции с большим числом участников ВА (Business Activity). Спецификация представлена на сайте Модель AT управляет одной транзакцией по принципу "все или ничего". Со- гласующий протокол транзакции регистрируется по правилам спецификации WS-Coordination. В элементе 376 Разработка Web-служб средствами Java ката транзакции, например, предлагается двухфазная фиксация [10] тран- закции. После регистрации согласующего протокола по правилам спецификации WS-Coordination, клиенты начинают управление транзакцией, записывая в SOAP-ПОСЛаниях , , определенные в пространстве имен с иден- тификатором Web-служба коор- динации отвечает SOAP-посланиями с элементами , , В каждый ИЗ этих элементов вкладываются элементы и содержащие адреса портов Web-служб, реали- зующих соответствующие протоколы. Для создания и выполнения транзак- ции в рамках Web-службы координации создаются соответствующие служ- бы, выполняющие описанные этими элементами действия. Модель ВА охватывает, как правило, несколько транзакций, образующих бизнес-процесс, описанный, возможно, на языке BPEL4WS. Во время акти- визации и регистрации, в элементе опреде- ляющем тип согласующего протокола, указывается строка http://schemas.xmlsoap.org/ws/2002/08/wstx. Модель ВА задает правила распределения ресурсов между участниками биз- нес-процесса и правила освобождения ресурсов, не используемых ими. Для этого спецификация WS-Transaction определяет элементы Web-службой координации для опроса участников бизнес-просесса, и элементы меняемые участниками бизнес-процесса для ответа. Все эти элементы опреде- лены в пространстве имен с идентификатором http://schemas.xmlsoap.org/ ws/2002/08/wsba. Получив ответ участника, Web-служба координации распо- ряжается ресурсами. Деятельность организации WS-I Список протоколов и спецификаций Web Services далеко не ограничен пе- речисленными выше документами. Можно назвать еще множество аббре- виатур, относящихся к Web-службам: SAML, WSXL, WSCL, WSCM, WSEL, WSML, WS-License, Пока я их перечисляю, возникают новые спецификации. Такую тенденцию необходимо упорядочить и стан- дартизировать. С этой целью весной 2002 года по инициативе IBM и Microsoft была создана организация, названная "Web Services Interoperability Organization", сокращенно WS-I. Ее целью была провозглашена выработка стандартов, обеспечивающих совместимость программных продуктов разных Глава 9. Развитие Web Services 377 производителей, относящихся к разным платформам, операционным систе- мам и языкам программирования. К организации WS-I уже примкнули все крупные производители компьютерного оборудования и программного обеспечения. Официальный сайт организации http://www.ws-i.org/. Организация WS-I вырабатывает четыре типа документов: профили взаимо- действия, инструменты для тестирования, образцы применения и примеры приложений, построенных по этим образцам. Профиль взаимодействия (interoperability profile) или просто профиль — это набор протоколов и/или спецификаций, взятых в определенный момент их развития, вместе с правилами их наилучшего использования. Профиль со- держит готовое проверенное решение, которое могут сразу применить соз- датели Web-служб. Основой для первого профиля, разработанного организацией WS-I, послужил набор взаимодействующих протоколов и спецификаций XML Schema 1.0, SOAP 1.1, WSDL 1.1 и UDDI 1.2. Этот профиль назван "WS-Basic". Профиль WS-Basic Профиль WS-Basic Profile создан фирмами IBM, Microsoft и BEA Systems. Его черновая версия опубликована на странице http://www.ws- Профиль рассматри- вает четыре группы вопросов: пересылку SOAP-посланий, описание регистрацию UDDI и безопасность. Рассмотрим их подробнее. Пересылка SOAP-посланий Организация WS-1 выбрала для профиля WS-Basic следующие версии про- токолов: • SOAP 1.1; • XML 1.0 (Second Edition); • HTTP/1.1. Большинство рекомендаций использованию протокола SOAP 1.1 отно- сится к сообщениям об ошибках Профиль рекомендует не исполь- зовать в элементе других вложенных элементов кроме и Имена этих элементов рекомен- дуется записывать без префиксов. В элементе следует исполь- зовать только коды ошибок, определенные SOAP 1.1. Профиль не рекомендует употреблять атрибут в элементах те- ла SOAP-послания и вообще во всех элементах, определенных в про- странстве имен с идентификатором http://schemas.xmlsoap.org/soap/envelope/. 378 Разработка Web-служб средствами Java Само SOAP-послание не должно содержать описаний DTD, инструкций по обработке и никаких элементов после элемента . Все элементы, вложенные в элемент , должны быть записаны расши- ренными именами с префиксами. Это облегчает синтаксический разбор по- слания. Профиль рекомендует использовать для пересылки SOAP-посланий только протокол HTTP версии 1.1, причем только метод POST. Если применен другой HTTP-метод, то сервер должен вернуть код ответа "405 Method not Allowed". Послание с сообщением об ошибке должно иметь код ответа "500 Server Error", а послание без элемента — код ответа "200 или "202 Accepted". Сервер должен вернуть ответ с кодом "415 Unsupported Media если в поле заголовка запроса не был указан Сервер должен послать сообщение с кодом ответа "307 Temporary Redirect", если он направил сообщение другому серверу. Не следует использовать расширения протокола HTTP, сделанные в реко- мендации RFC 2774. Как видите, большинство этих рекомендаций учтено в версии SOAP 1.2. Описание WSDL Профиль WS-Basic содержит следующие версии спецификаций: • 1.1; • XML Schema 1.0. Профиль дает множество рекомендаций по оформлению описания Web- служб, сделанного на языке WSDL. Большинство рекомендаций относится к элементу описания WSDL. Его бездумное применение приводит к большим трудностям при разборе описания Web-службы. Профиль рекомендует записывать элемент первым в элементе Элемент Глава 9. Развитие Web Services 379 При описании посланий документного стиля в элементе , описывающего тело SOAP-послания. При этом надо обязательно использовать атрибут element, указывающий на XSD-определение типа элемента. При описании посланий процедурного стиля можно записывать сколько угодно элементов , при этом следует использовать их атрибут type и строго соблюдать порядок следования элементов . Результат выпол- нения процедуры должен содержать только один элемент может быть, сложного типа. В описании нельзя использовать операции типов и Профиль рекомендует применять для описания пересылки посланий (SOAP binding) только протокол SOAP 1.1. В элементе Так сделано в листинге 4.2. В атрибуте use следует указывать значение по умол- чанию "literal". В элементах Ни в коем случае нельзя смешивать в одном описании документный и про- цедурный Большая часть этих рекомендаций уже учтена в версии WSDL 1.2. Регистрация UDDI В профиль WS-Basic включены следующие версии спецификаций UDDI 2.0: • UDDI Version 2.04 API Published Specification; • UDDI Version 2.03 Data Structure Reference; • Version 2.0 UDDI XML Schema 2001; • UDDI Version 2.03 Replication Specification; • Published Specification, Version 2.03 Replication XML Schema 2001; • UDDI Version 2.03 XML Custody Schema; • UDDI Version 2.01 Operator's Specification, Published Specification. Основная рекомендация профиля WS-Basic — максимально согласовать описание Web-службы, сделанное на языке WSDL, с описанием UDDI. Для этого профиль советует установить взаимно однозначное соответст- вие между элементами описания и элементами описания UDDI. При этом значение атрибута 380 Разработка Web-служб средствами Java location элемента должно совпадать со значением атрибута accessPoint элемента Если такое взаимно однозначное соответствие установлено, то следует по- метить элемент как совместимый с профилем WS- Для этого в элементе вложенном в элемент И дать ей значение .0". Описание технических деталей необходимо основывать на описа- нии WSDL. Для этого в элементе вложенном в элемент следует указывать адрес описания WSDL, как это сделано в лис- тинге 5.5. Кроме того, надо пометить элемент как совместимый с описанием WSDL. Для этого надо во вложенном элементе указать категорию uddi-org: types и дать ей значение Многие рекомендации профиля WS-Basic уже учтены в версии UDDI 3.0. Безопасность Для обеспечения безопасности профиль WS-Basic рекомендует протокол HTTPS, то есть следующие протоколы: HTTP Over TLS (рекомендация RFC • TLS Protocol Version 1.0 (рекомендация RFC 2246); • SSL Protocol Version 3.0; • Internet X.509 Public Key Infrastructure Certificate and CRL Profile (реко- мендация RFC 2459). Это старые испытанные средства, их применение давно отработано на прак- тике. Профиль дает лишь одну рекомендацию по использованию этих про- токолов — оговаривать с Web-службой детали их применения. Как видите, профиль WS-Basic дает ценные практические рекомендации по эффективной организации работы Web-службы. Эти рекомендации уже во- площаются в следующих версиях спецификаций Web Services. Работа только началась. Организация WS-I готовит новые профили, образцы их примене- ния и примеры приложений. Вы можете ознакомиться с ними на сайте ор- ганизации http://www.ws-i.org/. Что дальше? Вот и последняя страница книги. Вы познакомились с новейшей Web- технологией, широко распространяющейся по компьютерному миру и бур- Глава 9. Развитие Web Services 381 но развивающейся вширь и вглубь. Станет ли эта технология доминирую- щей, затмит ли она другие Web-технологии — неизвестно. Полувековая ис- тория развития вычислительной техники знает много шумных открытий, которым прочили роль панацеи от всех программистских бед. Большинство этих технологий благополучно забыто, другие заняли свое место и скромно работают на благо переработки информации. Скорее всего, то же самое произойдет и с Web Services. Но пока ниша Web-служб четко не определена. От нас, от нашего труда и нашей активности зависит место и область при- менения Web Services. Успехов вам в ваших проектах! |