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

UptoLike

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

15
Учебный пример трехзвенного приложения
Прежде всего , обратим внимание на важность порядка действий . Вы
должны создать и запустить сервер приложений перед созданием клиента. Если
вы следуете этому порядку , на этапе разработки вы можете подсоединиться к
серверу и протестировать клиента. Вы можете, конечно, создавать клиента и
без привязки к серверу во время разработки и использовать его только в гото-
вом варианте. Однако в этом случае вы заранее не видите, работает ли клиент
так , как вы того хотите, и не можете выбирать сервер и провайдер из списка в
Инспекторе объектов .
После создания сервера приложений , его необходимо зарегистрировать.
Если сервер приложений использует как коммуникационный протокол DCOM,
HTTP, sockets или OLEnterprise, то он действует как сервер автоматизации и
должен быть зарегистрирован подобно любому другому ActiveX- или СОМ-
серверу . Если вы используете MTS, сервер приложений должен быть реализо-
ван в виде динамической библиотеки. Поскольку все вызовы СОМ должны
проходить через MTS-прокси, нельзя просто зарегистрировать сервер приложе-
ний . Вместо этого следует инсталлировать библиотеку в среде MTS. При ис-
пользовании CORBA регистрация не всегда необходима. Если вы хотите позво-
лить клиенту использовать динамическое связывание с вашим интерфейсом, вы
должны инсталлировать интерфейс сервера в репозиторий интерфейсов . Если
вы, кроме того, хотите позволить клиенту запускать сервер , если тот еще не за-
пущен, он должен быть зарегистрирован с OAD (Object Activation Daemon).
Разработка учебного сервера приложений
Итак , разработка любой информационной системы на основе технологии
MIDAS предполагает использование какой - либо серверной СУБД. Однако в
целях упрощения рассматриваемой первоначальной иллюстрации процесса
разработки наш сервер приложений будет использовать в качестве источника
данных обыкновенные локальные таблицы dBase или Paradox. При этом мы
воспользуемся демонстрационными таблицами из состава поставки BDE, на-
пример , из базы данных, названной поставщиком DBDEMOS. Таким образом,
рассматриваемый пример на самом деле не содержит третьего звена, что впро-
чем , не снижает его иллюстративности: помещенные в удаленном модуле ком -
поненты наборов данных (TDataSet) при желании можно перестроить на дос-
туп к нужной серверной базе данных.
Разработку сервера приложений начнем с создания обычной формы не-
большого размера, поскольку основное ее назначение быть индикатором за-
пущенного сервера приложений . Можно разместить ее где-нибудь в углу экра-
на и при желании установить значение свойства FormStyle равным
fsStayOnTop (поверх всех остальных окон), чтобы не потерять это окно среди
других открытых окон. Помимо индикации запуска сервера, его форма будет
отображать число подключенных клиентов . Для реализации данной функции
используем компонент TLabel, установив свойство Caption равным 0.
Далее из репозитария объектов добавим к проекту удаленный модуль
данных. Для этого из основного меню File выберите команду New, затем стра-
                                     15
     Учебный пример трехзвенного приложения
      Прежде всего, обратим внимание на важность порядка действий. Вы
должны создать и запустить сервер приложений перед созданием клиента. Если
вы следуете этому порядку, на этапе разработки вы можете подсоединиться к
серверу и протестировать клиента. Вы можете, конечно, создавать клиента и
без привязки к серверу во время разработки и использовать его только в гото-
вом варианте. Однако в этом случае вы заранее не видите, работает ли клиент
так, как вы того хотите, и не можете выбирать сервер и провайдер из списка в
Инспекторе объектов.
      После создания сервера приложений, его необходимо зарегистрировать.
Если сервер приложений использует как коммуникационный протокол DCOM,
HTTP, sockets или OLEnterprise, то он действует как сервер автоматизации и
должен быть зарегистрирован подобно любому другому ActiveX- или СОМ-
серверу. Если вы используете MTS, сервер приложений должен быть реализо-
ван в виде динамической библиотеки. Поскольку все вызовы СОМ должны
проходить через MTS-прокси, нельзя просто зарегистрировать сервер приложе-
ний. Вместо этого следует инсталлировать библиотеку в среде MTS. При ис-
пользовании CORBA регистрация не всегда необходима. Если вы хотите позво-
лить клиенту использовать динамическое связывание с вашим интерфейсом, вы
должны инсталлировать интерфейс сервера в репозиторий интерфейсов. Если
вы, кроме того, хотите позволить клиенту запускать сервер, если тот еще не за-
пущен, он должен быть зарегистрирован с OAD (Object Activation Daemon).

      Разработка учебного сервера приложений
      Итак, разработка любой информационной системы на основе технологии
MIDAS предполагает использование какой-либо серверной СУБД. Однако в
целях упрощения рассматриваемой первоначальной иллюстрации процесса
разработки наш сервер приложений будет использовать в качестве источника
данных обыкновенные локальные таблицы dBase или Paradox. При этом мы
воспользуемся демонстрационными таблицами из состава поставки BDE, на-
пример, из базы данных, названной поставщиком DBDEMOS . Таким образом,
рассматриваемый пример на самом деле не содержит третьего звена, что впро-
чем, не снижает его иллюстративности: помещенные в удаленном модуле ком-
поненты наборов данных (TDataSet ) при желании можно перестроить на дос-
туп к нужной серверной базе данных.
      Разработку сервера приложений начнем с создания обычной формы не-
большого размера, поскольку основное ее назначение – быть индикатором за-
пущенного сервера приложений. Можно разместить ее где-нибудь в углу экра-
на и при желании установить значение свойства FormStyle равным
fsStayOnTop (поверх всех остальных окон), чтобы не потерять это окно среди
других открытых окон. Помимо индикации запуска сервера, его форма будет
отображать число подключенных клиентов. Для реализации данной функции
используем компонент TLabel , установив свойство Caption равным ’0’.
      Далее из репозитария объектов добавим к проекту удаленный модуль
данных. Для этого из основного меню File выберите команду New, затем стра-