Программирование >>  Программирование баз данных 

1 ... 201 202 203 [ 204 ] 205 206 207 ... 346


Кроме того, ради разнообразия введем дополнительную хранимую процедуру, с помощью которой будет осуществляться обработка запросов, позволяющих оценить состояние запасов:

CREATE PROCEDURE spGetProductInventory ©ProductID int

BEGIN

SELECT p.ProductID, p.ProductNumber,

p.Name,

i.Quantity FROM Production.Product AS p

INNER JOIN Production.ProductInventory AS i

ON p.ProductID = i.ProductID WHERE p.ProductID = ©ProductID

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

Создание оконечных точек HTTP и управление ими

Само понятие оконечной точки выходит далеко за рамки использования оконечных точек HTTP, но для развертывания Web-служб в СУБД SQL Server применяются исключительно оконечные точки HTTP, причем, как уже было сказано, почти вся связаннгш с этим проблематика рассматривается как относящгшся к сфере деятельности администратора базы данных. В данном разделе будут приведены краткие сведения о том, как создаются и используются оконечные точки. В частности, следует отметить, что в операторе создания оконечной точки применяется основной синтаксис CREATE <object type> <object name>, который уже встречался в книге достаточно часто, но в данном случае имеет некоторые дополнительные опции. Тем не менее в данном разделе рассматривается лигиь самый простой пример применения оконечной точки HTTP (автор не собирается даже приводить полное определение синтаксиса оператора создания оконечной точки HTTP, поскольку эта тема в основном выходит за рамки настоящей книги и является очень сложной), в котором демонстрируется применение хранимых процедур, созданных в предьщущем разделе:

CREATE ENDPOINT EP AW

STATE = STARTED AS HTTP (

PATH = /AW ,

AUTHENTICATION = (INTEGRATED), PORTS = (CLEAR), SITE = localhost

FOR SOAP (

WEBMETHOD ListBikes

(NAME=AdventureWorks.dbo.spListBikes), WEBMETHOD ProductStockInfо

(NAME=AdventureWorks.dbo.spGetProductInventory), BATCHES = DISABLED, WSDL = DEFAULT, DATABASE = AdventureWorks , NAMESPACE = http: Adventure-Works/



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

Для того чтобы убедиться в том, что новая Web-служба действительно действует, попытайтесь перейти по адресу http: localhost/aw?wsdl. В окно браузера должен быть выведен большой объем кода XML, который по существу представляет собой документ, позволяющий определить, какие возможности предоставляет данная Web-служба. После прокрутки этого документа и достижения его нижней части должны быть обнаружены ссылки на методы, которые были введены в состав Web-службы, например, как показано ниже.

- <xsd:element name= ListBikes > - <xsd:complexType>

<xsd:sequence />

</xsd:complexType> </xsd:element>

В этом фрагменте кода показан узел, который определяет метод ListBikes. После того как происходит вызов этого метода, вызывается хранимая процедура spListBikes и формируются результирующие данные.

Читатели, которые знают, как работать с Web-службами в программе Development Studio, теперь могут приступить к их использованию. Рекомендуем сделать такую попытку и ознакомиться с полученными результатами.

Заключительные примечания

Перспективы использования Web-служб вполне очеввдны, но ими не следует слишком увлекаться. Ниже приведены некоторые соображения на этот счет.

В целом не рекомендуется предоставлять непосредственный доступ к СУБД SQL Server через Интернет. В частности, если непосредственный доступ через Интернет должен быть предоставлен для работы с Webчlл[yжбaми, то необходимо предусмотреть использование прокси-сервера того или иного типа, который разделил бы внешнюю и внутреннюю сеть, в которой развернуты Web-службы СУБД SQL Server. Для этого не требуется обязательно применять какой-то необычайно мощный брандмауэр. Достаточно, например, ввести в действие обычный ретранслирующий брандмауэр, но важно именно то, что в результате появляется еще один уровень преобразования адресов, который становится преградой между данными (обычно весьма ценными) и внешним миром.

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



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

Иными словами, приходится снова изыскивать возможность организации защищенного доступа и проводить доработку приложения в связи с расширением области его применения. В таком случае снова приходится прибегать к использованною прокси-сервера, но не исключено, что количество эксплуатируемых серверов базы данных возрастет и в связи с этим появится необходимость обеспечить успешное переключение с одного сервера базы данных на другой. Для этого может потребоваться, чтобы доступ приложений ко всей группе применяемых серверов через прокси-сервер бьш организован с помощью виртуального сервера. Но благодаря этому появляются дополнительные возможности. Например, в экстренных случаях основной экземпляр СУБД SQL Server может быть переведен в автономный режим для восстановления после крупного сбоя, а весь поток запросов перенаправлен через прокси-сервер к резервной базе данных (разумеется, при условии, что в приложениях не будут применяться операции обновления).

Резюме

Средства поддержки XML в СУБД SQL Server впервые появились в виде выпуска Web ( Web release ) еще до выхода версии SQL Server 2000. С тех пор количество этих средств и их значимость неуклонно возрастают. За последние двадцать с лишним лет на основе языка XML разработан целый ряд очень важных информационных технологий, применяемых во всех отраслях промышленности. Язык XML применяется в составе разносторонних и универсальных способов описания данных, а СУБД SQL Server предоставляет все больше и больше возможностей обработки данных XML.

В настоящей главе бьшо показано, как преобразовать реляционные данные в формат XML, а данные XML - в реляционную структуру. Кроме того, описаны средства поддержки Web-служб, предусмотренные в СУБД SQL Server, которые позволяют непосредственно осуществлять обмен данными с этими службами с использованием методов на основе языка XML.



1 ... 201 202 203 [ 204 ] 205 206 207 ... 346

© 2006 - 2025 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика