Главная » Delphi » Преимущества многоуровневой архитектуры

0

В  следующих  разделах  будут  рассмотрены  основные  преимущества  многоуровне

вой архитектуры.

Централизованная бизнес логика

В большинстве приложений клиент/сервер каждому клиентскому приложению для решения поставленной задачи  необходимо опираться на собственные бизнес  правила. Это приводит не только к увеличению размера исполняемой части, но и вынуждает раз работчика программного обеспечения осуществлять строгий контроль за совместимо стью версий. Если пользователь А использует более  раннюю версию приложения, чем пользователь В, то бизнес  правила могут выполняться несогласованно, вследствие чего в данных  возникают логические ошибки. Реализация бизнес  правил на уровне  сервер ного приложения требует  создания и поддержки лишь одной  его копии, поскольку  лю бой пользователь, работающий с серверным приложением, будет использовать одну и ту же копию  бизнес  правил.  В приложениях клиент/сервер  некоторые проблемы могут быть  решены средствами RDBMS, но не все они  обеспечивают одинаковые возможно сти. Кроме  того,  применение хранимых процедур делает  приложения менее  переноси мыми. При  использовании многоуровневого подхода  бизнес правила не зависят от RDBMS, что упрощает решение задачи обеспечения независимости баз данных.

Архитектура “тонкого” клиента

Помимо упомянутых  бизнес  правил, типичное приложение клиент/сервер реализу ет большинство функций уровня доступа к данным. Это приводит к увеличению размера клиентской исполняемой части  приложения, получившей название “толстого” клиента (fat  client). В частности, приложения баз  данных  Delphi, предоставляющие доступ  к SQL серверу, на клиентской машине  нуждаются  в наличии BDE, драйверов SQL Links и/или ODBC,  а также  клиентских библиотек, необходимых для взаимодействия с сер вером.  После  установки все эти файлы нужно соответствующим образом настроить, что существенно усложняет процесс установки приложения.  При  использовании техноло гии  DataSnap доступ  к данным  контролируется серверной частью  приложения, тогда как клиентской частью  обеспечивается лишь представление данных.  Это означает, что на клиентской машине  достаточно установить лишь клиентское приложение и одну библиотеку DLL, обеспечивающую взаимодействие клиента с сервером. В этом и заклю чается особенность архитектуры “тонкого” клиента (thin  client).

Автоматическое согласование ошибок

Delphi обладает встроенным механизмом, облегчающим обработку ошибок  досту па к данным.  В многоуровневых приложениях согласование ошибок  необходимо по тем же причинам, что и при  использовании кэширования обновлений. Данные копи руются  на машину клиента, где и осуществляется их изменение. Несколько клиентов могут  одновременно работать с  одной  и  той  же  записью.  Механизм согласования ошибок  доступа  к данным  помогает пользователю определить, что  следует  сделать  с записями, измененными со времени их последней загрузки с сервера. Согласно общей идеологии Delphi, если  предоставляемых стандартных возможностей недостаточно, то их можно расширить или создать свои собственные.

Модель “портфеля”

Модель “портфеля” (briefcase model) основана на концепции обычного портфеля. В него можно поместить важные  документы, переносить их с места на место и извлекать при не обходимости. Delphi предоставляет возможность упаковывать все данные и сохранить их на диске портативного компьютера, что позволит работать с ними,  находясь в пути, без реального соединения с серверной частью приложения или сервером базы данных.

Отказоустойчивость

Если компьютер, выполняющий функции сервера, станет в какой то момент вре мени  недоступным,  то  было  бы неплохо иметь  возможность динамически переклю читься на резервный сервер без повторной компиляции клиентских и серверных приложений. Delphi  обеспечивает и такую возможность.

Балансировка загрузки

При  установке клиентского приложения на все возрастающем количестве пользо вательских машин неизбежно возникновение проблемы превышения предельно до пустимой нагрузки  на сервер. Существует  два способа балансировки сетевого трафи ка: статический и динамический. При статической балансировке нагрузки  просто подключается еще одна серверная машина  и половина пользователей переключается на нее,  тогда как другая половина по прежнему будет работать с исходным сервером. Однако при  этом  трудно  обеспечить действительно равномерное распределение на грузки между серверами, поскольку  интенсивность работы с серверами разных групп пользователей различна. При  использовании динамической балансировки нагрузки каждому  клиентскому  приложению можно  указать  конкретный сервер, к которому оно  должно  обращаться. Существует  много  различных алгоритмов динамической ба лансировки нагрузки  (например случайный, последовательный, с минимизацией пользователей сети и с минимизацией сетевого трафика). Начиная с версии 4, Delphi обладает компонентом,  позволяющим реализовать  последовательную балансировку нагрузки серверов.

Типичная архитектура приложения

DataSnap

На рис. 21.3 показано, как выглядит типичное приложение DataSnap после  его создания. Центральным элементом является модуль данных (DM — Data Module). Модуль удаленных данных (RDM —  Remote Data  Module) —  это  потомок классического модуля данных, появившегося еще в Delphi версии 2. Подобный модуль данных  представлял собой  специальный контейнер (форму), в котором можно  было размещать только  не визуальные компоненты. Удаленный модуль данных  в этом  смысле  ничем  не отлича ется  от своего  предшественника. Кроме  того,  модуль RDM является объектом СОМ, или,  если сказать  более  точно, объектом автоматизации. Службы, экспортируемые модулем RDM, будут доступны на всех клиентских машинах.

Рассмотрим  некоторые  параметры,  доступные  при   создании  модуля   RDM.  На рис. 21.4 показано диалоговое окно,  возникающее при выборе в меню File пунктов  New и Remote Data Module.

Рис. 21.3. Типичное приложение DataSnap

 

Р

ис. 21.4. Диалоговое окно мастера создания нового модуля удаленных данных

 

Источник: Тейксейра, Стив, Пачеко, Ксавье.   Borland Delphi 6. Руководство разработчика. : Пер.  с англ. — М. : Издательский дом “Вильямс”, 2002. —  1120 с. : ил. — Парал. тит. англ.

По теме:

  • Комментарии