Распределенные приложения баз данных Сервер приложения

  • Технология DataSnap
    • Механизмы удаленного доступа В этой главе мы рассмотрим модель распределенного приложения БД, которая называется многозвенной (multitiered), и, в частности, ее наиболее простой вариант — трехзвенное распределенное приложение.
    • Структура многозвенного приложения в Delphi Многозвенная архитектура приложений баз данных вызвана к жизни необходимостью обрабатывать на стороне сервера запросы от большого числа удаленных клиентов.
    • Трехзвенное приложение в Delphi Теперь рассмотрим составные части трехзвенного распределенного приложения в Delphi
    • Сервер приложений инкапсулирует большую часть бизнес-логики распределенного приложения и обеспечивает доступ клиентов к базе данных.
    • Клиентское приложение в трехзвенной модели должно обладать лишь минимально необходимым набором функций, делегируя большинство операций по обработке данных серверу приложений
    • Механизм удаленного доступа к данным DataSnap Для передачи пакетов данных между компонентом-провайдером и клиентским набором данных (см. рис. 20.2) (между клиентом и сервером) должен существовать некий транспортный канал, обеспечивающий физическую передачу данных
    • Компонент TDCOMConnection предоставляет транспорт на основе технологии Distributed COM и применяется в основном для организации транспорта в рамках локальной сети.
    • Компонент TSocketConnection обеспечивает соединение клиента с сервером приложений за счет использования сокетов TCP/IP.
    • Компонент TWebConnection предоставляет клиенту соединение на основе транспорта HTTP. Для работы компонента на клиентском компьютере должна быть зарегистрирована библиотека wininet.dll.
    • Провайдеры данных Компонент-провайдер TDataSetProvider представляет собой мост между набором данных сервера приложений и клиентским набором данных. Он обеспечивает формирование и передачу пакетов данных клиентскому приложению и прием от него сделанных изменений
    • Вспомогательные компоненты — брокеры соединений В состав компонентов DataSnap входит ряд дополнительных компонентов, облегчающих работу с соединениями удаленных клиентов с сервером приложений.
    • Компонент TSimpleObjectBroker инкапсулирует список серверов, доступных для клиентов данного многозвенного распределенного приложения. Список серверов создается на этапе разработки.
    • Компонент TLocalConnection используется локально для получения доступа к существующим компонентам-провайдерам.
    • Компонент TSharedConnection Если интерфейс IAppServer удаленного модуля данных имеет метод, возвращающий ссылку на аналогичный интерфейс другого удаленного модуля данных, то первый модуль называется главным, а второй — дочерним
    • Компонент TConnectionBroker обеспечивает централизованное управление соединением клиентских наборов данных с сервером приложений.
  • Сервер приложения
    • Многозвенные распределенные приложения обеспечивают эффективный доступ удаленных клиентов к базе данных, так как в них для управления доступом к данным применяется специализированное ПО промежуточного слоя.
    • Структура сервера приложения Итак, сервер приложения — это ПО промежуточного слоя трехзвенного распределенного приложения
    • Интерфейс IAppServer является основной механизма удаленного доступа клиентских приложений к серверу приложения.
    • Интерфейс IProviderSupport Для организации взаимодействия клиентов с сервером БД удаленный модуль данных сервера приложения должен содержать компоненты-провайдеры TDataSetProvider
    • Удаленные модули данных является основой сервера приложения для многозвенного распределенного приложения.
    • Регистрация сервера приложения Для того чтобы клиент мог "увидеть" сервер приложения, он должен быть зарегистрирован на компьютере сервера. В зависимости от используемой технологии процесс регистрации имеет особенности. Регистрация серверов MTS, Web и SOAP рассматривается далее в этой книге.
    • Пример простого сервера приложения В качестве примера рассмотрим процесс создания простого сервера приложения на основе удаленного модуля данных TRemoteDataModule
    • Главный удаленный модуль данных Добавим в проект новый удаленный модуль данных, используя для этого Репозиторий Delphi
    • Дочерний удаленный модуль данных Дополнительно к основному модулю данных создадим дочерний модуль данных secondary. Для того чтобы связать главный модуль данных с дочерним, необходимо добавить к интерфейсу isimpleRDM метод, возвращающий ссылку на интерфейс дочернего модуля данных.
    • Регистрация сервера приложения Теперь, когда сервер приложения готов, остался последний этап — регистрация сервера. Для этого достаточно запустить исполняемый файл проекта на компьютере, который будет использоваться для работы сервера приложения.
  • Программирование на языке ассемблера