Опубликован: 29.07.2008 | Доступ: свободный | Студентов: 1264 / 144 | Оценка: 4.49 / 4.15 | Длительность: 17:53:00
Лекция 5:

Чтение данных SQL Server через интернет

Создаем веб-ссылку на конечную точку HTTP
  1. Из меню Start (Пуск) откройте All Programs, Microsoft Visual Studio 2005, Microsoft Visual Studio 2005 (Все программы, Microsoft Visual Studio 2005, Microsoft Visual Studio 2005).
  2. В меню File (Файл) выберите команду New (Создать), затем Project (Проект). В панели Project Types (Типы проектов) выберите Visual Basic, а в панели Templates (Шаблоны) выберите Windows Application (Приложение Windows). Укажите имя для проекта и папку для его размещения. Нажмите кнопку ОК, чтобы создать проект.
  3. Если панель элементов не отображается, выведите ее на экран, выбрав команду Toolbox (Панель элементов) из меню View (Вид). Перетащите мышью элемент управления DataGridView (Сетка данных) из Панели элементов в область конструктора формы Form1.
  4. Нажмите маленькую стрелку в правом верхнем углу элемента управления DataGridView, чтобы отобразить задачи смарт-тэг DataGridView. В этом смарт-тэге снимите флажки Enable Adding (Разрешить добавление), Enable Editing (Разрешить изменение) и Enable Deleting (Разрешить удаление).
  5. Щелкните правой кнопкой мыши проект в Solution Explorer (Обозревателе решений) и выберите из контекстного меню команду Add Web Reference (Добавить веб-ссылку).
  6. В окне Add Web Reference (Добавление веб-ссылки) введите следующий URL: http://localhost/sql/myservices?wsdl
  7. Нажмите кнопку Go, а затем кнопку Add Reference (Добавить ссылку).

    Выполните двойной щелчок на форме в конструкторе и добавьте в обработчик событий Form1_Load следующий код:

    Private Sub Form1 Load(ByVal sender As System.Object, _ 
                           ByVal e As System.EventArgs) 
      Handles MyBase.Load 
      Dim ws As New localhost.MyServices 
      ws.Credentials = System.Net.CredentialCache.DefaultCredentials
      Dim headers As New DataSet 
      headers = ws.SalesHeadersList () 
      DataGridView1.DataSource = headers.Tables(0) 
      DataGridView1.AutoGenerateColumns = True 
    End Sub
  8. Перейдите на вкладку Form1.vb [Проект] и нажмите клавишу F4, чтобы открыть окно Properties (Свойства). Выделите в окне свойств элемент управления DataGridView и задайте для свойства Dock значение Fill, щелкнув в средней панели раскрывающегося экрана.
  9. Нажмите клавишу F5, чтобы скомпоновать и запустить приложение.
  10. Форма загружается, и элемент управления DataGridView показывает список всех заголовков заказов на продажи, полученных от SQL Server.
    Важно. Microsoft настоятельно рекомендует защищать SQL Server межсетевым экраном, даже если подключение осуществляется через конечные точки HTTP.

Конечные точки HTTP позволяют интегрировать SQL Server 2005 в сервис-ориентированную архитектуру. У использования конечных точек HTTP есть некоторые недостатки.

  • Поскольку не используется веб-сервер, масштабируемость решения ограничена.
  • Не многие организации захотят открывать SQL Server для прямого доступа через интернет.

Эти недостатки можно нейтрализовать, если предоставлять доступ к SQL Server через дополнительный уровень ПО, который защитит установку SQL Server.

Функциональная совместимость с другими системами при работе через конечные точки HTTP

Каждая реляционная система управления базами данных (РСУБД) предоставляет интерфейс прикладного программирования (API), который разработчики могут использовать для взаимодействия с базой данных.

Перечислим поставщики доступа к данным - это OLE DB, ODBC, DB-LIB, JDBC и SQLNCLI. Поставщик доступа к данным инкапсулирует сложную логику, реализованную посредством API для СУБД. Поставщик доступа к данным также предоставляет интерфейс, который позволяет разработчикам приложений один раз написать логическую схему доступа и потом использовать ее для взаимодействия с несколькими СУБД. Итак, для того, чтобы иметь возможность вести диалог с определенной СУБД, платформе разработки приложения требуется поддержка поставщика доступа к данным.

SQL Server 2005 предоставляет альтернативу использования поставщиков доступа к данным в виде конечных точек HTTP.

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

Единственное требование к приложению, которое подключается к конечной точке HTTP, заключается в том, чтобы это приложение могло вести обмен данными через протокол передачи данных HTTP и отправлять запросы в соответствии с определенным форматом XML/SOAP, которого требует SQL Server 2005.

Платформы и языки программирования с отсутствием поддержки поставщиков доступа к данным OLE DB или ODBC могут осуществлять обмен данных с SQL Server 2005 через конечные точки HTTP.

Вот некоторые примеры таких платформ, языков программирования и новых ситуаций, которые допускают использование конечных точек HTTP:

  • Мобильные устройства могут подключаться к корпоративному серверу SQL Server через конечные точки HTTP при помощи беспроводной сети.
  • Приложения, выполняемые в среде Linux/Unix или любых других операционных систем, могут обмениваться данными и потреблять данные от SQL Server 2005, не используя JDBC.
  • Сценарии, созданные в различных средах - таких, как PERL, Java или Microsoft Office Web Services - могут извлекать данные напрямую с SQL Server или даже создавать новые данные на сервере.

Доступ к SQL Server через дополнительный уровень программного обеспечения

До сих пор в этой лекции рассказывалось о том, как открыть прямой доступ к SQL Server клиентским приложениям из внешних сетей.

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

Ниже описаны преимущества реализации среднего уровня между клиентским приложением и SQL Server:

  • Средний уровень предоставляет дополнительный уровень безопасности, который будет фильтровать все входящие запросы.
  • Можно использовать компоненты инфраструктуры операционной системы, такие, как Internet Information Server (IIS), чтобы обеспечить более высокую масштабируемость и производительность, а также дополнительные возможности настройки, администрирования и безопасности.
  • Можно реализовать специализированный уровень доступа к данным, который смогут повторно использовать несколько приложений.

На рис. 5.2 показан пример возможной архитектуры для доступа к SQL Server через дополнительный уровень.

Архитектура для доступа к SQL Server через компонент среднего уровня

Рис. 5.2. Архитектура для доступа к SQL Server через компонент среднего уровня

Интерфейс службы представляет собой фасад, который демонстрируется клиентским приложениям. В интерфейсе службы внешним пользователям предоставляется только общедоступный интерфейс, который скрывает всю сложность внутренней реализации доступа к SQL Server. Интерфейс службы должен также реализовать все необходимые проверки корректности ввода.

Интерфейс службы поддерживается компонентом доступа к данным. Компонент доступа к данным реализует вызовы SQL Server через поставщики доступа к данным, например, OLE DB или ODBC.

Инфраструктура Microsoft .NET Framework предоставляет несколько методов создания интерфейсов службы. В этой лекции рассматриваются только технологии ASP.NET Web-Services (Веб-службы ASP.NET) и Microsoft .NET Remoting (Удаленное взаимодействие Microsoft .NET).

Совет. Чтобы получить более полную информацию по созданию уровней доступа к данным, обратитесь к руководству, которое можно найти на сайте Microsoft Patterns & Practices Developer Center; руководство называется "Designing Data Tier Components and Passing Data Through Tiers" (Проектирование компонентов уровней данных и передача данных через уровни): http://msdn.microsoft.com/practices/ guidetype/Guides/default.aspx?pull=/library/en-us/ dnbda/html/boagag.asp.