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

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

Технология удаленного взаимодействия Microsoft .NET Remoting

Инфраструктура Microsoft .NET предоставляет различные технологии для обеспечения удаленным клиентам возможности установить соединение с компонентами на стороне сервера.

Если использовать веб-службы ASP.NET, как в предыдущем разделе данной лекции, клиентское приложение будет осуществлять обмен данными с помощью формата SOAP через интерфейс сервиса.

Microsoft .NET Remoting - это еще одна технология, которая позволяет удаленным приложениям осуществлять обмен данными с компонентами на стороне сервиса. Microsoft .NET Remoting позволяет настраивать используемый формат данных или протокол передачи данных. Например, вместо XML и SOAP можно использовать двоичный или любой другой пользовательский формат, а вместо протоколов HTTP или TCP - другой протокол по своему выбору.

Главное отличие между веб-службами ASP.NET. и технологией .NET Remoting –заключается в том, что .NET Remoting использует не сервис-ориентированную архитектуру, а удаленный вызов процедур (RPC) объект-объект.

Создаем объект .NET Remoting

Построим пример, используя в качестве основы кода пример из предыдущего раздела. Повторите действия с 1 по 4 из предыдущего раздела, а затем выполните следующую последовательность действий:

  1. После создания компонента DepartmentDataAccess необходимо предоставить компонент интерфейса сервиса. В этом примере мы создадим интерфейс сервиса .NET Remoting. В Visual Studio 2005 выберите из меню File (Файл) Add, New Project (Добавить, Новый проект). Приложение для этого примера можно найти в файлах примеров в папке 3tiers\Remoting.
  2. Выберите в диалоговом окне New Project (Создание нового проекта) шаблон Class Library (Библиотека классов) и дайте проекту имя DepartmentServiceInterface. Нажмите кнопку ОК.
  3. В окне Solution Explorer (Обозреватель решений) щелкните правой кнопкой мыши проект DepartmentServiceInterface и выберите из контекстного меню команду Add Reference (Добавить ссылку).
  4. В окне Add Reference (Добавление ссылки), которое показано ниже, перейдите на вкладку Projects (Проекты), выберите проект DepartmentDataAccess, а затем нажмите кнопку ОК,
  5. Замените код в файле Class1.vb следующим кодом:
    Public Class DepartmentServiceInterface 
      Inherits MarshalByRefObject
      Public Function GetDepartments() As System.Data.DataSet
        Dim departmentsDL As New DepartmentDataAccess.DepartmentDataAccess() 
        Return departmentsDL.GetAllDepartments()
      End Function
    End Class
  6. Скомпонуйте проект.

Последний компонент, который нужно создать – это несущее приложение. Когда мы создавали веб-службу ASP.NET, мы сконфигурировали ее так, чтобы она могла размещаться и выполняться на веб-сервере, например, Microsoft Internet Information Server (IIS). В следующем примере мы сконфигурируем объект .NET Remoting так, чтобы он тоже мог размещаться на сервере IIS.

Настраиваем объект .NET Remoting под размещение на IIS
  1. Создайте и настройте виртуальный каталог для размещения сборок в IIS.
  2. Создайте конфигурационный файл web.config для настройки инфраструктуры Remoting.
  3. Сгенерируйте класс-заместитель для удаленного объекта.
  4. Создайте клиентское приложение, которое будет вызывать удаленный объект.
Создаем и настраиваем конфигурацию виртуального каталога в IIS

С IIS в качестве среды размещения наше удаленное приложение может использовать механизм обеспечения безопасности IIS, протоколы передачи данных и встроенные механизмы обработки запросов. Установите сборки из компонента DepartmentServiceInterface в виртуальный каталог IIS:

  1. Создайте новый каталог с именем DepartmentRemote на диске C.
  2. В каталоге C:\DepartmentRemote создайте новую папку с именем bin.
  3. Из меню Start (Пуск) выберите команду Control Panel (Панель управления). В Control Panel (Панели управления) выполните двойной щелчок на значке Administrative Tools (Администрирование), В окне Administrative Tools (Администрирование) дважды щелкните значок Internet Information Services.
  4. В окне приложения для управления Internet Information Services нажмите значок (+), чтобы развернуть узел компьютера, затем разверните дерево узла Web-Sites (Веб-узлы), после этого щелкните узел Default Web Site, как показано ниже: (см. рис. вверху следующей страницы).
  5. Из контекстного меню выберите команды New, Virtual Directory (Создать, виртуальный каталог).
  6. В окне мастера Virtual Directory Creation Wizard (Мастер создания виртуальных каталогов) нажмите кнопку Next (Далее).
    • В окне Virtual Directory Alias (Псевдоним виртуального каталога) введите в качестве имени псевдонима DepartmentService и нажмите кнопку Next (Далее).
    • В окне Web Site Content Directory (Каталог содержимого веб-узла) введите или найдите через окно Browse (Обзор) путь к каталогу C:\DepartmentRemote в текстовом поле Directory (Каталог), а затем нажмите кнопку Next (Далее).
    • В окне Access Permissions (Права доступа) снимите все флажки, кроме Execute (Выполнение). Нажмите кнопку Next (Далее), чтобы перейти в последнее окно мастера.
    • Нажмите кнопку Finish (Готово).
  7. Щелкните правой кнопкой мыши на вновь созданном виртуальном каталоге DepartmentRemote и выберите из контекстного меню команду Properties (Свойства).
  8. В окне DepartmentService Properties (DepartmentService: свойства) перейдите на вкладку ASP.NET и измените номер версии ASP.NET на 2.Х.Х.Х, как показано на следующем рисунке: (Числа могут быть разными в зависимости от установки, но убедитесь в том, что это та же версия, что и версия Visual Studio, которую вы используете для компиляции сборок.) Затем нажмите кнопку OK, чтобы закрыть окно.
    Совет. Чтобы узнать номер версии Visual Studio, в окне Visual Studio выберите из меню Help (Справка) команду About Microsoft Visual Studio (О программе Microsoft Visual Studio).
  9. В Проводнике Windows скопируйте все содержимое вложенных каталогов bin/debug, в которых вы сохранили проект DepartmentServiceInterface (автор использовал каталог по умолчанию, который предлагает Visual Studio 2005: C:\Documents and Settings\Administrator\My Documents\Visual Studio 2005\Projects\DepartmentDataAccess\DepartmentServiceInterface ) в папке C:\DepartmentRemote\bin. Получившиеся файлы показаны на рисунке.
Создаем конфигурационный файл web.config для настройки инфраструктуры удаленного взаимодействия
  1. При помощи Notepad (Блокнота) создайте новый файл с именем web.config в каталоге C:\DepartmentRemote.
  2. Отредактируйте файл web.config, добавив в него следующий код XML (который можно найти в файлах примеров в папке 3tiers под именем web.config ).
    <configuration>
      <system.runtime.remoting> 
        <application> 
          <service>
            <wellknown mode="SingleCall"
                          type="DepartmentServiceInterface.DepartmentServiceInterface, 
                          DepartmentServiceInterface" 
                          objectUri="department.soap" />
          </service> 
        </application> 
      </system.runtime.remoting>
    </configuration>
  3. Сохраните файл web.config.

Этот XML-файл задает конфигурацию инфраструктуры удаленного взаимодействия. Он объявляет новую службу с именем department.soap, которая соответствует классу DepartmentServiceInterface. DepartmentServiceInterface в сборке DepartmentServiceInterface. Параметр Mode="SingleCall" показывает, что для каждого запроса будет создан новый экземпляр этого класса.