По своей структуре (рис. 22.1) клиентское приложение подобно обычному приложению баз данных, рассматриваемому в гл. П.
Рис. 22.1. Структура клиентской
части многозвенного приложения Delphi
Соединение клиента с сервером приложений осуществляется
специализированными компонентами DataSnap (см. гл. 20). Эти компоненты взаимодействуют
с удаленным модулем данных, входящим в состав сервера, при помощи методов интерфейса
IAppServer.
Также в клиентском приложении могут использоваться
дополнительные, определенные разработчиком, методы интерфейса удаленного модуля
данных, унаследованного от интерфейса IAppServer.
Подробнее об этих компонентах и способах их настройки на удаленный сервер приложений
см. гл. 21.
Внимание
Соединение с сервером приложений обеспечивает
динамическая библиотека MIDAS.DLL, которая должна быть зарегистрирована на
компьютере клиента.
Как и обычное приложение БД, клиент многозвенного
распределенного приложения должен содержать компоненты, инкапсулирующие набор
данных, которые связаны с визуальными компонентами отображения данных посредствомкомпонентов TDataSource.
Очевидно, что набор данных сервера должен быть
скопирован клиентским приложением в некий локальный буфер. При этом должен использоваться
эффективный механизм загрузки данных сравнительно небольшими порциями, что позволяет
значительно разгрузить транспортный канал между клиентом и сервером приложений.
Кэширование и редактирование данных в клиентском
приложении обеспечивает специализированный компонент TclientDataSet,
отдаленным предком которого является класс TDataSet.
Помимо унаследованных от предков методов, класс TclientDataSet
инкапсулирует ряд дополнительных функций, облегчающих управление данными.
Примечание
Подобно обычному приложению БД, в "тонком"
клиенте для размещения невизуальных компонентов доступа к данным необходимо
использовать модули данных.
Для получения набора данных сервера компонент
TclientDataSet взаимодействует с компонентом
TDataSetProvider, используя методы интерфейса
IProviderSupport (см. гл. 21).
По существу все уникальные функции клиентского
приложения сосредоточены в компоненте TclientDataSet,
изучением которого мы и займемся далее в этой главе. В остальном клиентское
приложение не отличается от обычного приложения БД и при его разработке могут
применяться стандартные методы.
Знаете ли Вы, как разрешается парадокс Ольберса? (Фотометрический парадокс, парадокс Ольберса - это один из парадоксов космологии, заключающийся в том, что во Вселенной, равномерно заполненной звёздами, яркость неба (в том числе ночного) должна быть примерно равна яркости солнечного диска. Это должно иметь место потому, что по любому направлению неба луч зрения рано или поздно упрется в поверхность звезды. Иными словами парадос Ольберса заключается в том, что если Вселенная бесконечна, то черного неба мы не увидим, так как излучение дальних звезд будет суммироваться с излучением ближних, и небо должно иметь среднюю температуру фотосфер звезд. При поглощении света межзвездным веществом, оно будет разогреваться до температуры звездных фотосфер и излучать также ярко, как звезды. Однако в дело вступает явление "усталости света", открытое Эдвином Хабблом, который показал, что чем дальше от нас расположена галактика, тем больше становится красным свет ее излучения, то есть фотоны как бы "устают", отдают свою энергию межзвездной среде. На очень больших расстояниях галактики видны только в радиодиапазоне, так как их свет вовсе потерял энергию идя через бескрайние просторы Вселенной. Подробнее читайте в FAQ по эфирной физике.