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

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

Генерируем класс-заместитель для удаленного объекта

Чтобы обратиться к компоненту Service Interface (Интерфейс службы), клиентское приложение должно создать класс-заместитель. Класс-заместитель напоминает копию удаленного объекта; он объявляет те же методы и публичные интерфейсы, но при вызове со стороны клиента он выполняет маршрутизацию вызова к удаленному объекту. Набор инструментальных средств разработки Microsoft .NET Framework SDK предоставляет инструмент SOAPSuds, который можно использовать для того, чтобы сгенерировать класс-заместитель.

  1. В меню Start (Пуск) выберите Programs, Microsoft .NET Framework 2.0 SDK, SDK Command Prompt (Все программы, Microsoft .NET Framework 2.0 SDK, SDK Command Prompt). Откроется окно командной строки.
  2. В командной строке введите следующие команды:
    • cd \, чтобы перейти в корневой каталог диска
    • md ClientApp, чтобы создать новый каталог для клиентского приложения
    • cd ClientApp, чтобы перейти в папку ClientApp
    • soapsuds -url:http://localhost/departmentservice/department.soap?wsdl -oa:DepartmentProxy.dll

Утилита SOAPSuds загружает автоматически сгенерированный инфраструктурой удаленного взаимодействия файл описания службы, который описывает каждый из методов, предлагаемых классом DepartmentServiceInterface. На основе этого файла SOAPSuds генерирует новую сборку с именем DepartmentProxy.dll, которая содержит класс, способный использовать удаленную службу.

Создаем клиентское приложение, которое будет вызывать удаленный объект

Для вызова удаленной службы мы можем использовать класс-заместитель DepartmentProxy.dll. Чтобы создать клиентское приложение и использовать класс-заместитель, выполните следующие действия:

  1. Запустите Visual Studio 2005 и создайте новый проект. В окне New Project (Создание проекта) выберите шаблон Windows Application (Приложение Windows). Код для этого примера можно найти в файлах примеров в папке 3tiers\ClientApp.
  2. Дайте проекту имя ClientApp и нажмите кнопку ОК.
  3. В окне Solution Explorer (Обозреватель решений) щелкните правой кнопкой мыши проект ClientApp и выберите из контекстного меню команду Add Reference (Добавить ссылку).
  4. В окне Add Reference (Добавление ссылки) на вкладке .NET выделите System.Runtime.Remoting и нажмите кнопку ОК.
  5. Снова щелкните на проекте ClientApp правой кнопкой мыши, чтобы добавить еще одну ссылку. В окне Add Reference (Добавление ссылки) перейдите на вкладку Browse (Обзор). Перейдите к папке C:\ClientApp и выделите сборку DepartmentProxy.dll, а затем нажмите кнопку ОК.
  6. В область конструктора формы Form1 добавьте элемент управления DataGridView из панели Toolbox (Панели элементов).
  7. В смарт-тэге DataGridView Tasks снимите флажки Enable Adding (Разрешить добавление), Enable Editing (Разрешить изменение) и Enable Deleting (Разрешить удаление).
  8. Нажмите клавишу F4, чтобы открыть окно Properties (Свойства). Выберите в форме элемент управления DataGridView и задайте для свойства Dock значение Fill.
  9. Добавьте в обработчик событий Form1_Load следующий код.
    Private Sub Form1_Load(ByVal sender As System.Object, _ 
                           ByVal e As System.EventArgs) 
      Handles MyBase.Load 
      Dim de As New DepartmentServiceInterface.DepartmentServiceInterface 
      Dim departments As New DataSet
      departments = de.GetDepartments() 
      DataGridView1.DataSource = departments.Tables(0) 
      DataGridView1.AutoGenerateColumns = True
    End Sub
  10. Нажмите клавишу F5, чтобы скомпоновать и запустить приложение.
  11. Форма загрузится, и элемент управления DataGridView покажет полученный от SQL Server список всех отделов.

Хотя это может показаться слишком сложным (конечно, так много шагов!), в целом архитектура нашего примера .NET Remoting, показанная на рис. 5.3, достаточно проста.

Архитектура примера .NET Remoting

Рис. 5.3. Архитектура примера .NET Remoting

И ASP.NET,. и .NET Remoting – это технологии среднего уровня, которые инкапсулируют набор компонентов и представляют компоненты как службы через интерфейс службы. Для развертывания SQL Server в безопасном окружении в серверной части СУБД можно использовать любое из этих двух решений, при этом удаленные клиенты смогут устанавливать соединения с приложением и извлекать нужные им данные.

Заключение

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

Краткий справочник по 5 лекции

Чтобы Выполните следующие действия
Открыть соединение с SQL Server через TCP/IP
  1. Включите протокол передачи данных TCP/IP.
  2. Сконфигурируйте экземпляр SQL Server на прослушивание определенных IP-адресов.
  3. Сообщите клиентским приложениям точный IP-адрес и порт, которые будет прослушивать SQL Server.
  4. Сконфигурируйте межсетевой экран на разрешение доступа через этот порт.
Убедиться, что протокол TCP/IP на сервере SQL Server включен В SQL Server Management Studio разверните узел SQL Server Network Configuration (Сетевая конфигурация SQL Server) и выберите Protocols For (Протоколы для) <имя_экземпляра>; или В SQL Server Surface Area Configuration (Настройка конфигурации контактной зоны SQL Server) щелкните ссылку Surface Area Configuration For Services And Connections (Настройка контактной зоны для служб и соединений), разверните конфигурируемый экземпляр, разверните узел Database Engine и выберите узел Remote Connections (Удаленные соединения).
Направить клиентское приложение по правильному IP-адресу и номеру порта SQL Server Укажите IP-адрес и номер порта в строке соединения с помощью следующей синтаксической конструкции:
Data Source = tcp:<ip_address>/instance,
<номер_порта>;
Обратиться к SQL Server с помощью XML/протоколов SOAP через HTTP Сконфигурируйте конечную точку HTTP с помощью инструкции T-SQL CREATE ENDPOINT DDL.
Использовать веб-службы ASP.NET в среднем уровне С помощью Visual Studio 2005 создайте новый проект веб-службы. Инкапсулируйте код доступа к данным веб-службе, чтобы не демонстрировать сервер SQL Server пользователям интернета.
Использовать технологию Microsoft .NET Remoting в среднем уровне Используйте Visual Studio 2005 для создания класса службы, который инкапсулирует код доступа, чтобы не открывать пользователям интернета доступ непосредственно к серверу SQL Server. Откройте класс службы для внешнего доступа с помощью хост- приложения, например, IIS.