Студопедия

КАТЕГОРИИ:


Архитектура-(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 — для каждого клиента в его адресном пространстве создается
один экземпляр удаленного модуля данных, и каждое клиентское соединение запускает этот свой экземпляр;

  • Multiple 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.


<== предыдущая лекция | следующая лекция ==>
Принципы построения трехуровневых приложений | Case ClientDataSetl.UpdateStatus of
Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 684; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.017 сек.