Иллюстрированный самоучитель по Delphi 7 для профессионалов

Удаленные модули данных. Удаленный модуль данных для сервера Автоматизации.

Удаленный модуль данных является основой сервера приложения (см. рис. 20.2) для многозвенного распределенного приложения. Во-первых, он выполняет функции обычного модуля данных – на нем можно размещать компоненты доступа к данным. Во-вторых, удаленный модуль данных инкапсулирует интерфейс IAppServer, обеспечивая тем самым выполнение функций сервера и обмен данными с удаленными клиентами.

В зависимости от используемой технологии в Delphi можно использовать удаленные модули данных пяти типов.

  • Remote Data Module. Класс TRemoteDataModule инкапсулирует сервер Автоматизации.
  • Transactional Data Module. Класс TMTSDataModule является потомком класса TRemoteDataModule и к функциям обычного сервера Автоматизации добавляет возможности MTS.
  • WebSnap Data Module. Класс TWebDataModule создает сервер приложения, использующий возможности Internet-технологий.
  • Soap Server Data Module. Класс TSOAPDataModule инкапсулирует сервер SOAP.
  • CORBA Data Module. Класс TCORBADataModule является потомком класса TRemoteDataModule и реализует функции сервера CORBA.

Ниже мы рассмотрим процесс создания сервера приложения на основе удаленного модуля данных TRemoteDataModule. Остальные модули данных (за исключением удаленного модуля данных для CORBA) детально рассматриваются далее в этой книге.

Удаленный модуль данных для сервера Автоматизации

Для создания удаленного модуля данных TRemoteDataModule используется Репозиторий Delphi (команда File › New › Other). Значок класса TRemoteDataModuie находится на странице Multitier (см. рис. 20.3). Перед созданием экземпляра удаленного модуля данных появляется диалоговое окно (рис. 21.1), в котором необходимо предустановить три параметра.

Иллюстрированный самоучитель по Delphi 7 для профессионалов › Сервер приложения › Удаленные модули данных. Удаленный модуль данных для сервера Автоматизации.
Рис. 21.1. Мастер создания удаленного модуля данных TRemoteDataModule

Строка CoClass Name должна содержать имя нового модуля данных, которое будет также использовано для именования нового класса, создаваемого для поддержки нового модуля данных.

Список Instancing позволяет задать способ создания модуля данных.

  • Internal – модуль данных обеспечивает функционирование лишь внутреннего сервера Автоматизации.
  • Single Instance – для каждого клиентского соединения создается собственный экземпляр удаленного сервера Автоматизации в собственном процессе.
  • Multiple Instance – для каждого клиентского соединения создается собственный экземпляр удаленного сервера Автоматизации в одном общем процессе.

Список Threading Model задает механизм обработки запросов клиентов.

  • Single – поток запросов клиентов обрабатывается строго последовательно.
  • Apartment – модуль данных одновременно обрабатывает один запрос. Однако если DLL для выполнения запросов создает экземпляры СОМ объектов, то для запросов могут создаваться отдельные нити, в которых обработка ведется параллельно.
  • Free – модуль данных может создавать нити для параллельного выполнения запросов.
  • Both – аналогична модели Free, за исключением того, что все ответы клиентам возвращаются строго один за другим.
  • Neutral – запросы клиентов могут направляться модулям данных в нескольких нитях одновременно. Используется только для технологии СОМ+.

При создании нового удаленного модуля данных создается специальный класс – наследник класса TRemoteDataModule. И фабрика класса на основе класса TComponentFactory.

Примечание
Класс TComponentFactory представляет собой фабрику класса для компонентов Delphi, инкапсулирующих интерфейсы. Поддерживает интерфейс IClassFactory
.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.