Создание распределенных систем в Delphi и C++ Builder с помощью MIDAS

Источник: "Компания CPS"

MIDAS (Multi-tier Distributed Appication Services) представляет собой набор сервисов, компонент и утилит, качественно упрощающих создание распределенных многозвенных систем клиент - сервер

Архитекура

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

Типичной структурой клиентского приложения в традиционной архитектуре клиент - сервер является "слоёный пирог", включающий следующие компоненты

  • клиентскую часть сервера баз данных;
  • универсальный механизм доступа к данным и соответствующие драйверы для работы с
  • заданными источниками данных;
  • бизнес-логику и логику работы с данными;
  • пользовательский интерфейс.

Хотя две последние компоненты могут быть физически представлены как единый исполняемый файл, такой "пирог" обладает двумя несомненными недостатками, обычно выявляемыми уже на этапе эксплуатации информационных систем:

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

MIDAS решает эти проблемы за счет переноса бизнес - логики и механизмов доступа к данным с клиентских рабочих мест на выделенные сервера приложений.Это позволяет продлить жизнь устаревшего оборудования и добиться большей гибкости, лучшей производительности и управляемости прикладных систем.
MIDAS (Multi-tier Distributed Appication Services) представляет собой набор сервисов, компонент и утилит, качественно упрощающих создание распределенных многозвенных систем клиент - сервер. Среди них:

  • Remote DataBroker, обеспечивающий логическую и физическую централизацию логики системы;
  • словарь данных (Data Dictionary);
  • ConstraintBroker, поддерживающий автоматическое тиражирование на рабочие места правил поддержки целостности (constraints);
  • срeдства обеспечения баланса загрузки;
  • транзакционные механизмы с отсрочкой обновления данных.

Интеграция с наиболее популярными средствами быстрой разработки приложений Borland Delphi и Borland C++Builder, в сочетании с поддержкой Java-клиентов, позволяют создавать действительно гибкие и управляемые системы.

Традиционная двухзвенная архитектура клиент-сервер

Трехзвенная архитектура на основе технологии MIDAS

Создание распределенных систем в Delphi и C++ Builder с помощью MIDAS

Как известно, в основе архитектуры доступа к данным в Delphi и C++Builder лежит понятие набора или множества данных - Data Set. При этом любой наследник (TTable, TQuery, TstoredProc) базового объекта TDataSet инкапсулирует поведение и свойства, присущие любому множеству данных - открытие и закрытие доступа, операции двунаправленной навигации, закладки, и т.п. Все визуальные компоненты для работы с базами данных (Data Controls) ссылаются через источник данных (TDataSource) на конкретную реализацию TDataSet.

За счет такой архитектуры разработчик может создавать собственные множества данных, которые будут получать информацию из удаленного хранилища данных с использованием технологий DCE/RPC, COM/DCOM или CORBA/IIOP.

Использование концепции модуля данных (Data Module) в Delphi и C++Builder позволяет разделить функциональную логику приложений и логику пользовательского интерфейса. Общая модель взаимодействия компонент, ориентированных на работу с базами данных (DataSet-DataSource-DataControls) позволяет единообразно разрабатывать как простейшие приложения для работы с базами данных, так и серверы приложений (middle tier application server) в многозвенной архитектуре клиент-сервер для систем масштаба предприятия. В последнем случае вместо обычных модулей данных разработчики используют удаленные модули (Remote DataModule). Палитры компонент Delphi 3 (начиная с версии 3.01) и C++Builder 3 включают специальные компоненты TMIDASConnection, TRemoteServer, TProvider, TClientDataSet.

Delphi и C++Builder предоставляют набор специализированных компонент TXxxConnection, обеспечивающих контекст соединения с серверами приложений: TSocketConnection, TDCOMConnection, TCORBAConnection и т.п.

Для облегчения "публикации" сервисов удалённых модулей данных, представляемых в виде связанных наборов данных, библиотека VCL включает в себя компоненты TProvider, TdataSetProvider и другие.

В архитектуре MIDAS функциональность множества данных в клиентских приложениях инкапсулируется в объекте TclientDataSet. Это позволяет сохранить логическую структуру клиентских приложений ("контрольный элемент" - "источник данных" - "набор данных") вне зависимости от количества звеньев разрабатываемой клиент-серверной системы

Взаимодействие между различными звеньями распределённой клиент- серверной системы может осуществляться с использованием различных объектных технологий и транспортных средств:

  • Sockets,
  • DCOM,
  • MTS,
  • CORBA (VisiBroker),
  • OLEnterprice.

В случае использования Microsoft Transaction Server базовый механизм доступа к данным BDE (Borland Database Engine) естественно интегрируется с сервисами MTS с помощью встроенного BDE Resource Despenser, позволяющего использовать механизм пулинга соединений MTS.
При построении распределенных систем средства BDE, драйверы SQL Links и клиентская часть серверов баз данных (например, Oracle SQL*Net) целиком переносятся на сервер приложений. Вместо них на клиентские места устанавливается одна динамическая библиотека DBCLIENT.DLL размером менее 250 Kб. Таким образом, существенно упрощается эксплуатация, обновление и администрирование информационной системы.

MIDAS обладает гибкой схемой лицензирования, позволяющей предложить адекватное ценовое решение для малых, средних и крупных информационных систем. Легкость встраивания технологии MIDAS в приложения, разрабатываемые при помощи Delphi и C++Builder облегчает создание высококачественных тиражируемых программных продуктов.


Страница сайта http://www.interface.ru
Оригинал находится по адресу http://www.interface.ru/home.asp?artId=3280