
- •1 Создание серверного приложения
- •2 Создание клиентского приложения
- •3 Анализ возможностей приложения по обработке информации
- •4 Оформление отчета о лабораторной работе.
- •Лабораторная работу №2 Создание и анализ Web приложения архитектуры Web Broker
- •1Создание Web-модуля приложения
- •2Создание процедуры обработки события
- •3 Отладка приложения
- •4 Анализ возможностей приложения по обработке информации
- •5 Оформление отчета о лабораторной работе.
- •1Создание Web-модуля приложения
- •2Создание процедуры обработки события
- •3 Отладка приложения
- •4 Анализ возможностей много уровневого приложения
- •5 Оформление отчета о лабораторной работе.
- •Лабораторная работу №3 Создание и анализ asp.Net приложения работающего с базами данных.
- •1Создание серверного приложения
- •2Связывание данных
- •3Отладка приложения
- •4 Анализ возможностей приложения по обработке информации
- •5 Оформление отчета о лабораторной работе.
- •1Создание серверного приложения
- •3Связывание данных
- •4Отладка приложения
- •5 Анализ возможностей приложения по обработке информации
- •6 Оформление отчета о лабораторной работе.
- •Лабораторная работу №4 Создание и анализ приложения архитектуры Web Service
- •1Создание простой Web-службы
- •2Создания клиентской части Web-службы
- •3Организация доступа к Web-сервису из кода
- •4 Анализ возможностей приложения по обработке информации
- •5 Оформление отчета о лабораторной работе.
- •1Создание простой Web-службы
- •2Создания клиентской части Web-службы
- •3Организация доступа к Web-сервису из кода
- •5 Анализ возможностей много уровневого приложения
- •6 Оформление отчета о лабораторной работе.
2Создания клиентской части Web-службы
Помимо создания собственно Web-служб система Delphi предоставляет, конечно, и средства создания клиентов, обращающихся к таким службам. Создаются подобные клиенты весьма просто. Сформируем для начала новое приложение (обычную форму Windows Forms или форму ASP.NET Web).
подготовка описания интерфейса Web-службы
В дальнейшем для обращения клиентских приложений к нашему (или любому другому) Web-сервису потребуется WSDL-файл, содержащий описание созданного интерфейса (в нем сейчас один метод умножения и метод Hello World, сгенерированный по умолчанию).
1.Получить этот файл можно обращением:
http://localhost/WebServicel/WebServicel.asmx?wsdl
2.Можно щелкнуть на ссылке Service Description в окне браузера, где мы отлаживали список методов Web-службы (рис. 6.16). В результате в браузере появится XML-текст описания интерфейса, который надо сохранить как WSDL-файл (его расширение должно быть .WSDL),
3.Дадим команду Project > Add Web Reference (Проект > Добавить Web-ссылку) — откроется диалоговое окно так называемого UDDI-браузера Borland. Он позволяет просматривать UDDI-каталоги, хранящие коллекции Web-служб, и выбирать подходящую дистанционную услугу. Мы сейчас укажем WSDL-файл, сформированный в предыдущем примере в ходе создания Web-службы
Теперь нажмем кнопку Add Reference (Добавить ссылку), и описание выбранной нам-и Web-службы добавится к проекту. В частности, в папке проекта будет создан каталог WebReferences, а в нем разместится файл .WSDL.
Примечание. С помощью команды Project > Add Web Reference в один проект может быть добавлено множество разных Web-служб (прокси-классов). Эта команда введена специально для быстрого создания многофункциональных приложений и систем, интегрирующих сторонние программы.
При работе с Web-службами надо точно знать, какой конкретно метод интерфейса Web-сервиса предназначен для вызова службы. В ходе вышеописанного процесса в проекте появился модуль WebReferences, который содержит описание класса (подобные классы нередко называются прокси-классами-посредниками), реализующего интерфейс, полученный в формате WSDL.
Просмотрев файл WebReference.WebService1.pas, мы увидим следующие строки.
type
[System.Diagnostics.DebuggerStepThroughAttribute] [System.ComponentModel.DesignerCategoryAttribute('code')] [System.Web.Services.WebServiceBindingAttribute
Web.Service1 =class
(System.Web.Services.Protocols. SoapHttpClientProtocol)
/// <remarks/> public
constructor Create;
/// <remarks/>
[System.Web.Services.Protocols.SoapDocumentMethodAttribute ('http://tempuri.org/HelloWorld', RequestNamespace='http://tempuri.org/',
ResponseNamespace= 'http://tempuri.org/', Use= System.Web. Services.Description.SoapBindingUse.Literal, ParameterStyle= System.Web.Services.Protocols. SoapParameterStyle.Wrapped)]
function HelloWorld: string;
/// <remarks/>
function BeginHelloWorId(callback: System. AsyncCallback,-asyncState: System.Object): System.lAsyncResult;
/// <remarks/>
function SndHelloWorld(asyncResult: System.lAsyncResult): string;
/// <remarks/>
[System.Web.Services.Protocols.SoapDocumentMethodAttribute {'http://tempuri.org/WebMul',
RequestNamespace='http://tempuri.org/', ResponseNamespace= 'http://tempuri.org/',
Use= System.Web.Services.Description.SoapBindingUse. Literal, ParameterStyle= System.Web.Services.Protocols. SoapParameterStyle.Wrapped)]
function WebMul(x: System.Double; y: System.Double); System.Double;
/// <remarks/>
function BeginWebMul(x: System.Double; y: System.Double; callback: System.AsyncCallback,-
asyncState: System.Object); System. IAsyncResuit;
/// <remarks/>
function EndWebMul(asyncResult: System.IAsyncResult): System.Double;
end;
Видно, что здесь описай класс TWebServicel, а в нем имеется метод WebMul.