КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Сервер приложений
Сервер приложений создается на основе удаленного модуля данных, который служит для размещения компонентов, а также для обеспечения взаимодействия с сервером и клиентами. Для создания различных серверов приложений предназначены следующие разновидности удаленных модулей данных: § Remote Data Module — для серверов DCOM, TCP/IP и OLEnterprise; § MTS Data Module — для сервера MTS; § CORBA Data Module — для сервера CORBA; § SOAP Data Module — для серверов SOAP.
В удаленном модуле данных размещаются те же компоненты, что и в простом модуле данных, например, Query, Database, Session, предназначенные для организации доступа к данным. Рассмотрим создание простейшего сервера приложений — сервера DCOM, взаимодействие с которым основано на технологии DCOM. Для работы этого сервера необходимо, чтобы в системе была установлена программная поддержка функционирования распределенных СОМ-объектов, которая имеется в операционных системах Windows 98/NT/2000. Для Windows 95 ее нужно устанавливать отдельно. Поддержка распределенных СОМ-объектов устанавливается автоматически при инсталляции ряда программ Windows, кроме того, соответствующие средства можно загрузить из Интернета по адресу http://www.microsoft.com /com/dcom95/download-f.htm. Добавление к проекту удаленного модуля данных выполняется выбором объекта Remote Data Module страницы Multitier Хранилища объектов. При добавлении модуля выводится диалоговое окно мастера Remote Data Module Wizard, в котором нужно задать параметры модуля (рис. 12.2). Рис. 12.2. Добавление удаленного модуля данных В поле редактирования CoClass Name вводится имя модуля данных. В списке Instancing (Создание экземпляров) выбирается способ запуска модуля: § Internal — экземпляр модуля данных создается на сервере в случае, когда модуль данных является частью библиотеки DLL; § Single Instance — для каждого клиента в его адресном пространстве создается
В списке Threading Mode l (Потоковая модель) выбирается способ вызова интерфейса клиента, если модуль данных является частью библиотеки DLL: § Single — библиотека получает запросы клиента по одному; § Apartment — одновременно обрабатывается несколько запросов клиентов, для каждого из которых создан отдельный экземпляр модуля данных (по умолчанию); § Free — отдельный экземпляр модуля данных одновременно может отвечать § Both — отдельный экземпляр модуля данных одновременно может отвечать на несколько запросов клиентов, результаты обработки также возвращаются одновременно. § Neutral — разные клиенты могут одновременно вызывать удаленный модуль данных из нескольких потоков, при этом модель СОМ следит за тем, чтобы не было конфликта вызовов (однако нужно иметь в виду возможный конфликт потоков: он отслеживается только в версии СОМ+, при отсутствии ее используется потоковая модель типа Apartment).
После нажатия кнопки ОК модуль данных с установленными параметрами добавляется к проекту. В приведенном на рис. 12.2 примере модулю присвоено имя serverDCOM, а два других параметра оставлены без изменений. На этапе проектирования внешний вид удаленного модуля не отличается от вида простого модуля данных, рассмотренного в главе, посвященной технологии создания информационной системы. Как и в простом модуле, в удаленном модуле данных размещаются невизуальные компоненты, используемые для доступа к данным. Чаще всего этими компонентами являются рассмотренные ранее Query, Table, Database, Session, а также провайдер DataSetProvider. В самом простом случае достаточно разместить в модуле только набор данных. Например, разместим в удаленном модуле набор данных Query и зададим для него значения свойств Da-саВазеЫате и sql так, чтобы включить в набор все поля всех записей таблицы Personnel. Указанным свойствам присвоим значения: § DataBaseNaine — BDPlace; § SQL — SELECT * FROM Personnel.db. На этом создание простейшего сервера DCOM закончено. Перечислим еще раз действия, которые были при этом выполнены: § к проекту добавлен удаленный модуль данных; § в модуле размещен компонент набора данных и присвоены значения его свойствам.
Созданное приложение сервера состоит из следующих частей: § проекта; § главной формы приложения; § удаленного модуля данных; § модуля библиотеки типов. Разработка проекта и главной формы приложения не имеют принципиальных отличий от разработки обычного приложения Delphi. Отметим, что для сервера приложений основная функциональная нагрузка приходится на удаленный модуль данных. На главной форме можно разместить вспомогательные компоненты и выполнить некоторые сервисные действия, например, вести подсчет клиентов, подключенных к серверу, и выводить показания этого счетчика в надписи Label, размещенной на главной форме сервера. Библиотека типов создается автоматически, а ее модуль сохраняется на диске при сохранении других файлов проекта. Библиотека занимает два файла: Project.tlb и Project_TLB.pas, где Project является именем проекта. После создания сервера DCOM его нужно зарегистрировать как сервер автоматизации. Регистрация сервера выполняется Windows автоматически при запуске приложения сервера. По умолчанию интерфейс провайдера обеспечивает набор данных, в нашем случае это Query 1. Кроме того, Delphi включает в свой состав компонент DataSetProvider, который предоставляет большие возможности по управлению интерфейсом провайдера, включая обмен XML-данными. Простейший сервер DCOM представляет собой удаленный брокер данных, который обеспечивает соединение с сервером БД и передачу данных клиенту и обратно. Для расширения функциональности сервера приложений к нему добавляются бизнес-правила, предназначенные для поддержания БД в целостном состоянии и реализующие ограничения, применяемые к данным. Поддержка механизма ограничений обеспечивается брокером ограничений. Для набора данных и его отдельных полей можно задавать ограничения на значения полей не только в приложении клиента, но и в сервере приложений (удаленном модуле данных). Ограничения, заданные в сервере приложений, пересылаются клиенту вместе с данными в пакете данных, и эти ограничения действуют наряду с ограничениями, заданными в приложении клиента. Для реализации ограничений в сервере приложений можно использовать свойство Constraints типа TCheckConstraints наборов данных Table И Query. Тип TCheckConstraints представляет собой коллекцию (список, массив) отдельных ограничений типа TCheckConstraint, имеющих следующие свойства: § customConstraint типа string — код SQL, описывающий ограничение; § ErrorMessage типа string — текст, выдаваемый пользователю при нарушении данного ограничения; § FromDictionary типа Boolean — признак, значение True которого указывает, что ограничение выбирается из словаря данных; по умолчанию свойство имеет значение False, и словарь данных не используется; § importedConstraint типа string — код SQL, описывающий ограничение, которое импортировано из словаря данных.
Для задания ограничений нужно выделить набор данных и в Инспекторе объектов щелчком в области значения свойства Constraints вызвать окно, показанное на рис. 12.3, справа. Центральную часть окна занимает список ограничений, применяемых к набору данных, имя которого выводится в заголовке окна (на рисунке — Queryl). Добавление к списку нового ограничения выполняется командой Add контекстного меню, нажатием клавиши <Insert> или нажатием левой кнопки панели инструментов. Существующие ограничения можно удалять и перемещать в пределах списка, эти действия выполняются с помощью команд контекстного меню, нажатием клавиш или кнопок панели инструментов. Сразу после добавления ограничение "пустое", и в списке выводится название его типа TCheckConstraint (на рис. 12.3 таким является третье ограничение). Для задания ограничения нужно его описать, например, присвоив значения свойствам CustomConstraint И ErrorMessage. После ТОГО как СВОЙСТВО CustomConstraint получит значение, оно будет выведено в списке ограничений. Свойства ограничения становятся доступными через Инспектор объектов после выбора ограничения в списке. Рис. 12.3. Определение ограничений для набора данных Queryl
В приведенном на рис. 12.3 примере для данных о сотрудниках организации (таблица Personnel) установлены ограничения на значения полей Name и salary: поле имени не может быть пустым, а значение оклада должно быть положительным. При нарушении этих ограничений пользователю выдаются соответствующие сообщения: например, если не задано значение поля Name, то выдается сообщение Не задана фамилия!. Как уже было сказано, ограничения сервера приложений действуют в дополнение к ограничениям, заданным в приложении клиента. Таким образом обеспечивается распределение ограничений, применяемых к данным, между отдельными уровнями информационной системы. Достоинством размещения бизнес-правил на сервере приложений является то, что они одинаковы для всех клиентов и что облегчается внесение изменений в информационную систему и ее настройка. Свойства CustomConstraint, ConstraintErrorMessage И ImportedConstraint объ-ектов типа TFieid позволяют задать ограничения для отдельных полей набора данных. Применение этих свойств аналогично свойствам CustomConstraint, ErrorMessage И ImportedConstraint объекта типа TCheckConstraints.
Дата добавления: 2014-01-07; Просмотров: 706; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |