Перейти к тексту

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

При первом входе в developerWorks для Вас будет создан профиль. Выберите информацию отображаемую в Вашем профиле — скрыть или отобразить поля можно в любой момент.

Вся введенная информация защищена.

  • Закрыть [x]

При первом входе в developerWorks для Вас будет создан профиль и Вам нужно будет выбрать Отображаемое имя. Оно будет выводиться рядом с контентом, опубликованным Вами в developerWorks.

Отображаемое имя должно иметь длину от 3 символов до 31 символа. Ваше Имя в системе должно быть уникальным. В качестве имени по соображениям приватности нельзя использовать контактный e-mail.

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

Вся введенная информация защищена.

  • Закрыть [x]

SOA и web-сервисы для новичков

Введение

Раздел IBM: developerWorks: Web-сервисы содержит множество статей, советов и учебных пособий, чтобы помочь вам оптимальным образом использовать Web-сервисы и строить приложения на их базе. Однако для тех, кто пытается освоится с новой для него темой, весь объем информации может быть избыточен. Для тех читателей, кто хочет подробней изучить Web-сервисы, но не знает с чего начать, эта страница дает общее представление о теме. Она содержит информацию об основах технологии Web-сервисов в разрезе тематик и связывает их с соотвествующими статьями на developerWorks, учебными пособиями, советами, образовательными сервисами IBM, практикумами и продуктами IBM для дальнейшего изучения

Web-сервисы (Web-службы) это технология, которая позволяет приложениям взаимодействовать друг с другом независимо от платформы, на которой они развернуты, а также от языка программирования, на котором они написаны. Web-cервис это программный интерфейс, который описывает набор операций, которые могут быть вызваны удаленно по сети посредством стандартизированных XML сообщений. Для описания вызываемой операции или данных используются протоколы, базирующиеся на языке XML. Группа Web-сервисов взаимодействующая друг с другом подобным образом, определяет приложение Web-сервисов в рамках Серис-Ориентированной архитектуры (Service-Oriented Architecture — SOA).

В индустрии программного обеспечения настают времена, когда задачи интеграции программных приложений функционирующих на различных операционных системах, языках программирования и аппаратных платформах, не могут быть решены путем использования какого-либо частного решения. Традиционно проблемы были в жесткой связке приложений, когда при удаленном сетевом вызове одно приложение жестко привязано к другому названием функции и ее параметрами. В системах, которые делались до появления Web-сервисов в большинстве своем используется такой фиксированный малогибкий програмный интерфейс, с ограниченными возможностями по его адаптации в соотвествии с меняющимися требованиями среды или потребностями.

Web-сервисы используют XML, при помощи которого можно описать любые данные рельно независимым от платформы способом для обмена информацией между системами, что, в свою очередь, приводит к слабо-связным приложениям. Кроме того, Web-сервисы могут функционировать на более высоком уровне асбтракции, анализируя, модифицируя или обрабатывая типы данных динамическим образом по требованию. Значит, с технической точки зрения, Web-сервисы могут обрабатывать данные значительно легче, предоставляя возможность программному обеспечению взаимодействовать более открыто.

На самом высоком концептуальном уровне мы можем рассматривать Web-сервисы как единицы приложения, каждая из которых занимается выполнением определенной функциональной задачи. Если подняться на уровень выше, то эти задачи можно объединить в бизнес-ориентированные здачи для выполнения определенных бизнес операций, позволяя таким образом технически неподготовленным людям рассматривать приложения как обработчики бизнес задач в рамках потока работ приложений Web-сервисов. Таким образом, после того как технические специалисты разработали Web-сервисы, архитекторы бизнес процессов могут объединить их для решения конкретных бизнес задач. Если взять за аналогию двигатель автомобиля, то при сборке кузова, двигателя, трансмиссии и других составляющих, архитектор бизнес процессов может брать двигатель целиком, не вдаваясь в подробности тех составлящих, из которых собран каждый двигатель. Кроме того, динамическая платформа означает, что двигатель может работать с трансмиссией или другими компонентами автомобиля от других производителей.

Из последнего рассмотренного аспекта вытекает, что Web-сервисы помогают в рамках организации преодолеть разрыв между техническими специалистами и людьми, далекими от тонкостей технологий. Web-сервисы упрощают процесс понимания технических операций. Последние могут описывать события и различные типы деятельности, а технические специалисты могут ассоциировать их с соотвествующими сервисами.

При использовании универсально описанных интерфейсов и хорошо спроектированных задачах их становится значительно легче использовать повторно, а следовательно и приложения, которые они представляют. Повторное использование приграммных приложений означает лучший возврат инвестиций в программное обеспечение, поскольку используя те же ресурсы, вы можете получить больше. Это позволяет руководителям рассматривать новые возможности использования существующих приложений или предложить их партнерам для использования в новых задачах, повышая тем самым степень взаимодействия между партнерами.

Следовательно, основной проблемой, для которой Web-сервисы могут служить решением, является интеграция данных и приложений, а также преобразования технических функций в бизнес-ориентированные автоматизированные задачи. Эти два аспекта позволяют различным компаниям взаимодействовать на уровне процессов или приложений с их партнерами, оставляя при этом возможномть динамически адаптироваться к новым ситуациям или работать с различными партнерами по требованию.

Узнайте об этом подробнее :

Что я могу делать при помощи Web-сервисов?

Несмотря на то, что Web-сервисы предоставляют различные динамические возможности для объединения нескольких сервисов в приложения, сначала эти сервисы Вам придется создать. Языки программирования для разработки постоянно развиваются. Несколько десятилетий назад мы начинали с того, что создавали функцию, которой передавали некоторые праметры, она выолняла некоторую операцию над этимим пораметрами, а затем возвращала значение, являющееся резльтатом проведенной операции. В конечном итоге, данный подход привел к появлению объектно-ориентированного, где каждый объект не просто имел некоторый набор выполняемых им функций, но также обрадал и внутренними переменными, нежели обращался к внешним глобальным переменным, которые делали разработку приложений более сложной. После того, как приложения начали взаимодействовать между собой, на первый план выдвинулась концепция определения универстальных интерфейсов для объектов, позволяя им взаимодествовать друг с другом на разных платформах даже в том случае, если они были написаны на разных языках программирования и функционировали на различных операционных системах.

На одном из последних шагов Web-сервисы обратились к концепции описания интерфесов и взаимодействия на основе XML, в конечном счете, объединяя любой тип приложения с другим, и предоставляя свободу изменения и развития с течением времени до тех пор, пока поддерживается соответствующий интерфейс. Изменчивость гибкость XML — это как раз то, что отличает его от предыдущего поколения компонентных технологий.Он позволяет разделить грамматическую структуру (синтаксис) и грамматическое значение (семантику), и как они обрабатываются и понимаются различными сервисами в рамках той среды, где они существуют. Таким образом, теперь объекты могут быть описаны как сервисы, взаимодействующие с другими сервисами по правилам, описанным на XML, за счет чего каждый сервис транслирует и анализирует сообщение в соотвествии со свой локальной реализацией и средой. Следовательно, сетевые приложения могут быть в действительности составлены из множества сущностей различных конструкций и дизайна до тех пор, пока они соотвествуют правилам, которые были определеных их сервис-ориентированной архитектурой.

Таким образом, принимая во внимание все вышесказанное, можно утверждать, что Web-сервисы позволяют вам:

Узнайте об этом подробнее:

Что такое компонентные технологии Web-сервисов?

Web-сервисы затрагивают семейство связанных протоколов для описания, доставки и взаимодействия с сервисами. Это семейство дальше можно разделить на подгруппы, основываясь на общеиспользуемых функциях. Первая группа решает вопросы связанные с доставкой сообщений, описанием интерфейсов, адресацией и доставкой. Наиболее известным является протокол обмена сообщениями, известный как Simple Object Access Protocol (SOAP). Этот протокол кодирует сообщения таким образом, чтобы они могли быть доставлены через сеть с использованием транспортного протокола, такого как HTTP, IIOP, SMTP или других.

Язык описания Web-сервисов (Web Services Description Language — WSDL) представлен как набор XML выражений, которые составляют определение интерфейса для каждого сервиса. Другая спецификация, которая в настоящее время находится в разработке — это WS-Addressing, которая определяет, как уникальным образом обратиться и идентифицировать Web-сервис в распределенной архитектуре. Другая популярная спецификация это Web Services Invocation Framework, где вы можете определять WSDL интерфейсы для любого типа компонентов, даже если они не используют те же протоколы взаимодействия.

Следующая группа протоколов и специцифкаций определяет, как Web-сервисы информируют о своем существовании и как они находят друг друга в сети. Чтобы сервисы могли найти друг-друга протокол Universal Description, Discovery and Integration (UDDI) определяет реестр и соотвествующий протокол для обнаружения и доступа к сервисам. Web Services Inspection Language является альтернативой UDDI, работающей без использования реестра.

Протоколы безопасности для Web-сервисов начинаются со спецификации WS-Security, которая опреляет маркерную (token) архитектуру для безопасного взаимодейвствия. На этой базе построено шесть основных компонентных спецификаций:

За моделью безопасности следуют прикладные спецификации, включая Business Process Execution Language for Web Services (BPEL4WS), которые определяют операции потоков работ, WS-Transaction и WS-Coordination‚ которые вместе отвечают за обработку распределенных транзакций.

В настоящее время в разработке находится спецификация Web Services Distributed Management для администрирования программного обеспечения всех сервисов и сервис-ориентированной архитектуры. В конце идут спецификации пользователького интерфйса (WS-InteractiveApplications) и удаленного доступа к Web-сервисам (WS-RemotePortals).

На момент написания данного материала спецификации и протоколы для Web-сервисов все еще находятся на стандии определения и только начинают объяснять, как сервисы должны взаимодействовать друг с другом. Однако они не могут закрыть каждый возможный сценарий или комбинацию использования сервисов.

Так группа по интероперабельности Web-сервисов (Web Services Interoperability Group — WS-I), состоящая из членов практически всех основных и миноритарных производителей, вовлеченных в разработку Web-сервисов, взяла на себя задачу разработки примеров использования, демо-приложений, сценариев реализации и инструментов тестирования для обеспечения гарантии того, что все эти стандарты и спецификации работают друг с другом безотносительно поставщика, реализовавшего продукт.

WS-I выработала первый Basic Profile 1.0 for Web services, а так же реализовала сценарии, демо-приложения, и средства тестирования для оценки и сравнения результатов различных реализаций в соотвествии со сценариями.

В добавление к WS-I значительный вклад в работу по стандартизации был внесен организацией Organization for the Advancement of Structured Information Standards (OASIS), консорциумом World Wide Web Consortium (W3C) и Internet Engineering Task Force (IETF).

Узнайте об этом подробнее:

Как Web-сервисы соотносятся с другими технологиями?

Web-сервисы изначально являются технологией интеграции, однако независимой по сути. Компонентные технологии Web-сервисов в общем виде описаны на XML и посредством него же и взаимодействуют, как было сказано выше. Однако поскольку XML сам по себе является независимым от языка программирования, то таковыми являются и Web-сервисы. Следовательно Web-сервисы могут быть разработаны с использованием различных языков программирования, включая Java, Python, Perl, C#, Basic и другие.

Происхожедие Web-сервисов лежит в попытке найти лучший путь построения архитектуры Инетернет и Web приложений, для обеспечения лучшего взаимодействия друг с другом. Так сегодня большинство Web-сервисов базируются на программах, которые работают в серверах приложений, таких как WebSphere, Apache и другие. Они не являются обязательными, но некоторые из лучших инструментальных средств спроектированы под эти среды.

Предоставляя более простой и универсальный интерфейс Web-сервисы также помогают улучшить модель pervasive computing для работы в мобильных и переносимых средах. Программное обеспечение для мобильных вычислений быстро адаптирует модель взаимодействия Web-сервисов, что также позволяет улучшить решение проблем визуальных Web-сервисов.

Grid-вычисления вобрали в себя Web-сервисы как часть Open Grid Services Architecture — новой модели для этого типа распределенных вычислений, которая использует Web-сервисы для сообщения о том, как функционирует grid.

Даже автономные вычисления (Autonomic computing), являющиеся новым интересным способом того, как компьютеры могут поддерживать себя в работоспособном состоянии и управлять своей работой, обладают рядом приложений для Web-сервисов.

Узнайте об этом подробнее:

Как я могу использовать Web-сервисы в приложении?

При создании приложения существуют несколько подходов к использованию Web-сервисов. На самом простом уровне — это современное семейство коммуникационных протоколов, которое позволяет приложениям общаться друг с другом. Этот уровень использования Web-сервисов за последние несколько лет получил достаточно большое развитие в виде множества инструментов, которые позволяют разработчикам создавать взаимодействующие сервисы и создавать сложные приложения. Этот уровень часто харакатеризуется прямым взаимодействием между двумя или немного больше сервисами, которые взаимодействуют друг с другом.

Однако, подобное использование Web-сервисов, только как коммуникационного протокола, нивелирует их истинную мощь — сервис-ориентированную архитектру (SOA). SOA описывает в целом систему сервисов, динамически находящих друг друга, сообща выполняющих определенное приложение, рекомбинируясь при этом различными способами. Данная модель позволяет повторно использовать технологии и программное обеспечение, что ведет к эволюции путей создания приложений, их развертывания и использования. Тем самым мир распределенных вычислений становится ближе к реальности. На этом уровне разработчики программного обеспечения должны заботиться о модели SOA и проектировании своих распределенных приложений в рамках этой модели. Этот уровень использования Web-сервисов характеризуется использованием технологий для распределенного взаимодействия сервисов, таких как Сервисная Шина Предприятия (ESB), которая является общей сетью распределенных сервисов, с которой они взаимодействуют.

Наконец, наиболее высоким уровнем использования является взгляд на модель SOA и множество компонент сервисов, как на строительные блоки, которые могут быть собраны в целые приложения, вместо традиционного метода написания кода приложений строчка за строчкой. Анализируя интерфейс взаимодействия, мы можем построить приложение целиком без реального написания программного кода. В данном случае прямой код может даже стать помехой, поскольку сервисы могут могут быть написаны на различных языках программирования и для разных платформ. Блоки могут быть объединены в рамках потока работ, который определяет логику приложения, а другие инструментальные средства могут быть использованы для мониторинга эффективности потока в рамках каждого сервиса или группы сервисов. На этом уровне разработчики могут отказаться от использования обычных языков программирования и работать в терминах Model-Driven Architecture (архитектуры, управляемой моделями), которая помогает им создвать приложения более точно в соттвествии с проектом. Этот проект в дальнейшем функционирует поверх распределенной системы, такой как ESB.

Узнайте об этом подробнее:

Как я могу повысить свои навыки в области Web-сервисов?

Наилучшим способом поддержки своего уровня знаний касательно Web-сервисов является чтение последних технических статей и использование различных инструментальных средств для Web-сервисов. Поскольку сама технология развивается, эта информация и инструментальные средства предоставляют самую последнюю интерпретациию наилучших подходов для работы с Web-сервисами. Кроме того, такие инструментальные наборы как Emergin Technology Toolkit находятся на несколько шагов впереди, на гребне этих технологий, позволяя вам экспериментировать над теми же технологиями, над которыми работают экперты. Эти инструменты описаны в следующем разделе.

В настоящее время Web-сервисы стермительно развиваются, и количество информации на эту тему растет лавиноообразным образом. На сайте Web-сервисов вы сможете найти значительное количество технической информации для первого уровня разработки Web-сервисов для прямого взаимодействия. Даже такие протоколы как SOAP, которые используются уже несколько лет, все еще улучшаются. Поскольку данная тема является живой, полезно посещать раздел Web-сервисов на регулярной основе.

Узнайте об этом подробнее:

Уведомление

Java и все товарные знаки, использующие слово Java, являются товарными знаками Sun Microsystems, Inc. в США и других странах. DB2, Lotus, Rational, Tivoli и WebSphere являются товарными знаками IBM Corporation в США и/или других странах. Другие названия компаний, продукции и услуг могут являться товарными знаками или знаками обслуживания соответствующих компаний. Другая компания, продукт или название услуги могут быть торговыми марками или знаками обслуживания, принадлежащими иным физическим или юридическим лицам.

Content navigation