Распределенные системы: технология Borland Midas. Часть 3. Фертиков В.В. - 9 стр.

UptoLike

Составители: 

9
ных. Кроме того , этот компонент обладает методами SaveToFile и Load-
FromFile, позволяющими сохранять данные из кэша в файле и восстанавли-
вать их оттуда, реализуя так называемую «briefcase model» . Такая модель обра-
ботки данных, основана на том, что «тонкий» клиент осуществляет редактиро-
вание данных по большей части при отсутствии соединения с сервером, ис-
пользуя лишь кэш или локальные внешние устройства, и лишь иногда соединя-
ется с сервером приложений для передачи ему измененных данных с целью
дальнейшей обработки.
Компонент TClientDataSet делает возможным, подобно TQuery, по -
сылать динамический SQL-запрос серверу . Для этого имеется специальное
свойство CommandText, с помощью которого можно посылать команду на SQL
от клиента серверу . Для выполнения команды на сервере необходимо устано-
вить значение свойства Provider.Options.poAllowCommandText равным
True и далее вызвать либо метод Open, либо метод Execute.
При использовании компонента TClientDataSet необходимо помнить
о том, что он содержит все свои данные в памяти, поэтому клиент не может ра-
ботать с очень большими наборами данных (размер данных зависит от размера
памяти у машины клиента).
Для конечного пользователя клиентская часть многозвенного приложения
выглядит и работает точно так же, как и в традиционном двухзвенном прило-
жении, которое использует кэшированные изменения. По структуре клиентская
часть представляет собой приложение, которое работает без BDE и позволяет
использовать набор данных клиента в режиме работы с файлами. Для работы
такому клиенту необходима только библиотека MIDAS.DLL. Используя лишь
эту библиотеку , приложения легче распространять; не надо инсталлировать,
конфигурировать и поддерживать программное обеспечение для управления
соединениями с базой данных.
Поскольку эти приложения не используют базу данных напрямую, они не
поддерживают многопользовательский вариант работы . Вместо этого наборы
данных полагаются на самостоятельную реализацию приложением работы с
несколькими пользователями. Данные могут быть сохранены в файл на диске и
в дальнейшем загружены , но не существует встроенной защиты для предот-
вращения перезаписи несколькими пользователями файлов данных друг друга.
Сервер приложений
Важнейшей частью серверного приложения является так называемый
удаленный модуль данных (Remote Data Module), см . рис.4. Существует три
типа удаленных модулей данных.
TRemoteDataModule. Этот тип используется в том случае , когда клиент
имеет дело с компонентами сервера приложений , использующими протоко-
лы DCOM, HTTP, Sockets, или OLEnterprise, за исключением случаев с ис-
пользованием MTS.
TMTSDataModule. Этот тип используется в том случае , если создается сер -
вер приложений как библиотека, которая устанавливается в MTS. Можно
                                      9
ных. Кроме того, этот компонент обладает методами SaveToFile и Load-
FromFile , позволяющими сохранять данные из кэша в файле и восстанавли-
вать их оттуда, реализуя так называемую «briefcase model». Такая модель обра-
ботки данных, основана на том, что «тонкий» клиент осуществляет редактиро-
вание данных по большей части при отсутствии соединения с сервером, ис-
пользуя лишь кэш или локальные внешние устройства, и лишь иногда соединя-
ется с сервером приложений для передачи ему измененных данных с целью
дальнейшей обработки.
      Компонент TClientDataSet делает возможным, подобно TQuery, по-
сылать динамический SQL-запрос серверу. Для этого имеется специальное
свойство CommandText , с помощью которого можно посылать команду на SQL
от клиента серверу. Для выполнения команды на сервере необходимо устано-
вить значение свойства Provider.Options.poAllowCommandText равным
True и далее вызвать либо метод Open, либо метод Execute .
      При использовании компонента TClientDataSet необходимо помнить
о том, что он содержит все свои данные в памяти, поэтому клиент не может ра-
ботать с очень большими наборами данных (размер данных зависит от размера
памяти у машины клиента).
      Для конечного пользователя клиентская часть многозвенного приложения
выглядит и работает точно так же, как и в традиционном двухзвенном прило-
жении, которое использует кэшированные изменения. По структуре клиентская
часть представляет собой приложение, которое работает без BDE и позволяет
использовать набор данных клиента в режиме работы с файлами. Для работы
такому клиенту необходима только библиотека MIDAS.DLL. Используя лишь
эту библиотеку, приложения легче распространять; не надо инсталлировать,
конфигурировать и поддерживать программное обеспечение для управления
соединениями с базой данных.
      Поскольку эти приложения не используют базу данных напрямую, они не
поддерживают многопользовательский вариант работы. Вместо этого наборы
данных полагаются на самостоятельную реализацию приложением работы с
несколькими пользователями. Данные могут быть сохранены в файл на диске и
в дальнейшем загружены, но не существует встроенной защиты для предот-
вращения перезаписи несколькими пользователями файлов данных друг друга.

      Сервер приложений
      Важнейшей частью серверного приложения является так называемый
удаленный модуль данных (Remote Data Module), см. рис.4. Существует три
типа удаленных модулей данных.
• TRemoteDataModule . Этот тип используется в том случае, когда клиент
   имеет дело с компонентами сервера приложений, использующими протоко-
   лы DCOM, HTTP, Sockets, или OLEnterprise, за исключением случаев с ис-
   пользованием MTS.
• TMTSDataModule . Этот тип используется в том случае, если создается сер-
   вер приложений как библиотека, которая устанавливается в MTS. Можно