Способы межкомпонентного взаимодействия - Xml и Web-сервисы Структура занятия [WebMethod] public int Multiply(int a, int b) { return a * b; Учебный сайт
Учебные материалы


Способы межкомпонентного взаимодействия - Xml и Web-сервисы Структура занятия



Способы межкомпонентного взаимодействия

  • CORBA (IIOP)

    • OMG group
  • COM+

    • Microsoft
  • RMI

    • Sun (Java)
  • Web-сервисы (SOAP)

  • Remoting (.Net)



Эволюция Web



Первое поколение Статический HTML

  • Web представляет из себя набор html страничек, а также других ресурсов (картинки, файлы и т.п.), раскиданных в сети по всему миру



Второе поколение Web-приложения

  • Благодаря CGI – Common Gateway Interface и другим технологиям динамической обработки запросов появилась возможность создавать полноценные интерактивные приложения



Третье поколение Web-сервисы

  • Распределение труда. Зачем писать функциональность, которая уже написана?

    • Вряд ли можно (и нужно) написать второй Google
  • Распространяя услуги вместо кода, мы защищаемся от пиратства

    • Web-сервис нельзя украсть!!!


Что такое веб-сервис?



Формально:

  • Web-сервис - это код, доступный по протоколу HTTP и возвращающий информацию в формате XML. Идея создания Web-сервисов, решающих многие стандартные задачи, очень привлекательна - в этом случае мы получаем программируемые Web-приложения, которые могут располагаться где угодно и работать на любых платформах. Отметим, что «каноническое» определение Web-сервиса включает поддержку протокола SOAP для реализации возможностей вызова удаленных объектов, а также протоколов DISCO и UDDI для реализации возможностей поиска сервисов как на одном Web-узле, так и в Internet в целом



Жизненный цикл вызова удаленной процедуры



Упрощенный протокол доступа к объектам XML (SOAP)

  • определяет механизм удаленных вызовов процедур (RPC) с использованием синтаксиса XML

  • реализует клиент-серверное взаимодействие по сети

  • представляет собой стандартный протокол вызова объектов, построенный на стандартах Internet

  • Транспортный уровень - HTTP

  • Использование XML для кодирования

    • запросов вызова
    • ответов
  • реализует расширяемый протокол

  • реализует расширяемый формат передаваемой информации

  • использует словарь SOAP для адресных данных

  • включает в передаваемой информации пользовательский словарь

  • реализует простые типы данных для значений, базирующихся на типах данных XML-схемы включая массивы, составные типы и другие агрегаты простейших типов



.NET Remoting

  • Позволяет взаимодействовать объектам между собой по многочисленным протоколам, включая HTTP и низкоуровневый TCP/IP

  • Позволяет использовать как бинарный формат передачи, так и текстовый (SOAP)

  • Недостаток: проблематично использовать вне платформы .Net



Remoting

  • .NET Remoting provides an infrastructure for distributed objects. It exposes the full-object semantics of .NET to remote processes using plumbing that is both very flexible and extensible. Compared to ASP.NET Web services, which provide a very simple programming model based on message passing, .NET Remoting offers much more complex functionality, including support for passing objects by value or by reference, callbacks, and multiple-object activation and lifecycle management policies. In order to use .NET Remoting, a client needs to be aware of all these details—in short the client needs to be built using .NET. (Or with another framework that supports .NET Remoting; the only one we are aware of is Intrinsyc's Ja.NET for Java.) The .NET Remoting plumbing also supports SOAP messages, but it is important to note that this doesn't change its client requirements. If a Remoting endpoint exposes .NET-specific object semantics, via SOAP or not, the client must understand them

  • Priya Dhawan Tim Ewald





Web-сервис своими руками

  • Cоздадим Web-сервис, который будет реализовывать операции сложения и умножения двух чисел

    • Создаем .asmx файл в Web Matrix
    • Модифицируем код
    • Запускаем
    • Тестируем


Создаем .asmx файл в Web Matrix



Пишем код:

  • using System;

  • using System.Web.Services;

  • using System.Xml.Serialization;

  • public class Calculator {

  • [WebMethod]

  • public int Add(int a, int b) {

  • return a + b;

  • }

  • [WebMethod]

  • public int Multiply(int a, int b) {

  • return a * b;

  • }

  • }



Запускаем





Способы вызова удаленного метода, через HTTP

  • Метод

    GET

    • Параметры передаются вместе с URI
    • Результат возвращается в виде XML
  • Метод

    POST

    • Параметры передаются в теле запроса
    • Результат возвращается в виде XML
  • SOAP

    • Параметры и результат передаются в виде SOAP сообщения при помощи метода POST


HTTP GET

  • HTTP/1.1 200 OK

  • Content-Type: text/xml; charset=utf-8

  • Content-Length: XXXX

  • 132



Как это выглядит в Web-браузере



HTTP POST – запрос/ответ

  • HTTP/1.1 200 OK

  • Content-Type: text/xml; charset=utf-8

  • Content-Length: XXXX

  • 132



Третий способ, на котором мы остановимся подробнее

  • Третий способ, на котором мы остановимся подробнее



Обзор SOAP

  • Легковесный протокол для обмена информацией в распределенных неоднородных конфигурациях

    • Предоставляет кроссплатформенную совместимость
  • Платформонезависимый

    • Не привязан к операционной системе, объектной модели (языку)
  • Хорошо работает через интернет



Обзор SOAP (окончание)

  • Руководящий принцип при создании: “Не изобретайте новые технологии”

  • Построен на ключевых стандартах интернет

    • SOAP ≈ HTTP + XML
    • Разработан консорциумом W3C
  • Спецификация SOAP определяет:

    • Формат сообщений SOAP
    • Как посылать сообщения
    • Как получать сообщения
    • Как кодировать данные


Структура сообщения SOAP



SOAP-запрос

  • POST /Calculator.asmx HTTP/1.1

  • Host: localhost

  • Content-Type: text/xml; charset=utf-8

  • Content-Length: XXXXX

  • SOAPAction: http://tempuri.org/Multiply

  • 11

  • 12



SOAP-ответ

  • HTTP/1.1 200 OK

  • Content-Type: text/xml; charset=utf-8

  • Content-Length: XXXX

  • 132



А как узнать, какие методы предоставляет Web-сервис?

  • Для этого служит еще один язык,

  • основанный на XML



http://localhost:8081/Calculator.asmx?WSDL

  • http://localhost:8081/Calculator.asmx?WSDL



Напишем клиентскую часть для нашего Web-сервиса

  • Создаем новый файл CalcClient.aspx

  • Размещаем элементы управления

  • Пишем код - обработчик кнопки

  • Генерируем класс-заместитель (proxy)

  • Запускаем

  • Тестируем



Создаем новый *.aspx файл



Установили элементы управления



Двойной щелчок на кнопке «Вычислить». Пишем код:



Генерируем класс-заместитель (proxy)





Сервис действует



UDDI (Universal Description, Discovery and Integration)

  • Группа компаний Microsoft, Hewlett Packard, IBM, SAP и другие, являющиеся ведущими игроками на рынке электронного бизнеса, создали новую спецификацию UDDI. Она представляет собой универсальный метод описания, обнаружения и интеграции web-сервисов для В2В систем электронной коммерции. UDDI бизнес-регистр представляет собой базу данных общего пользования, в которой компании сами себя регистрируют. В настоящий момент уже есть четыре узла операторов UDDI (находящихся в ведении указанных выше компаний), через которые можно подключиться к регистру и внести информацию о собственном бизнесе



Найдите себе партнера

  • UDDI представляет собой дополнение к существующим торговым площадкам и поисковым машинам для обеспечения их стандартизированными форматами для программного поиска бизнесов и услуг. Наиболее подходящей аналогией для UDDI является гипотетическая "глобальная телефонная книга по web-сервисам". Она включает в себя названия бизнесов, почтовые адреса, контактные персоны, номера контактных телефонов, факсов и адреса электронной почты, URL предоставляемых веб сервисов, мета-данные, описывающие интерфейсы к соответствующим веб-сервисам и.т.д.



Web Services Discovery Tool (Disco.exe)

  • XML Web service discovery is the process of locating and interrogating XML Web service descriptions. Potential XML Web service clients can learn that an XML Web service exists and how to interact with it by performing a discovery. The .discomap file that is published by an XML Web service is an XML document that typically contains links to other resources that describe the XML Web service. Web sites that implement an XML Web service are not required to support discovery. An XML Web service might be created for private use.

  • The .wsdl, .xsd, .disco, and .discomap files produced by this tool can be used as input to the Web Services Description Language Tool (Wsdl.exe) to create XML Web service clients



Вопросы для закрепления материала

  • Опишите этапы развития Web

  • Перечислите способы взаимодействия распределенных приложений

  • Для чего предназначены

    • SOAP
    • WSDL
    • UDDI


Ссылки

  • MSDN Web Services http://msdn.microsoft.com/webservices/default.aspx

  • Консорциум W3C

  • http://www.w3c.org

  • Буммфрей Ф., Диренцо О., Дакетт Й. XML. Новые перспективы WWW. – М.:ДМК, 2000

  • Стивен Холзнер. XSLT. СПб.:Питер, 2002.

  • Тейбор, Роберт. Реализация XML Web-служб на платформе Microsoft .NET. – М.: Издательский дом «Вильямс», 2002

  • XML и SOAP: программирование для серверов BizTalk. Новейшие технологии – М.: Издательско-торговый дом «Русская Редакция», 2001



Заключение

  • На смену SGML и HTML приходит более гибкий формат XML

  • Web Service – технология будущего, которая работает уже сегодня

  • Платформа .NET Framework обладает двумя средствами построения распределенных систем в зависимости от нужд заказчика




Карта сайта

Последнее изменение этой страницы: 2018-09-09;



2010-05-02 19:40
referat 2018 год. Все права принадлежат их авторам! Главная