Разработка INTRANET приложений

       

Архитектура клиент-сервер, сервера БД и инструментальные средства


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

Особенностью архитектуры клиент-сервер является использование выделенных серверов баз данных, понимающих запросы на языке структурированных запросов SQL и выполняющих поиск, сортировку и агрегирование информации на месте без излишней перекачки данных на рабочие станции. Клиенты серверов БД получают последовательно и порциями только результаты запросов.

Другая отличительная черта серверов БД - наличие справочника данных, в котором записаны структура БД, ограничения целостности данных, форматы вывода и даже серверные процедуры обработки данных по вызову или по событиям в программе.

Для реализации серверов БД используются системное ПО реляционных СУБД, понимающих язык запросов SQL, например: Oracle, Informix, Sybase, MSSQLServer. Многие из этих СУБД работают на различных аппаратных платформах и в средах разных ОС.

Объектами разработки в приложениях клиент-сервер, помимо диалога и логики обработки, являются, прежде всего, реляционная модель данных и связанный с ней набор SQL-операторов для типовых запросов для этой БД.

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

В классической схеме клиент-сервер значительная часть приложения располагается на клиенте, а СУБД - на сервере. Поскольку эта схема предъявляет наименьшие требования к серверу, она обладает наилучшей масштабируемостью. Однако сложные приложения, вызывающие большое взаимодействие с БД, могут жестко загрузить как клиента, так и сеть. Результаты SQL-запроса должны вернуться к клиенту для обработки, потому что там находится логика принятия решения. Такая схема возлагает дополнительное бремя администрирования приложений, разбросанных по различным клиентским узлам.

Можно сократить нагрузку на клиента и сеть, переместив целиком прикладную обработку на сервер, при этом вся логика обработки, оформленная в виде триггеров и хранимых процедур, выполняется на сервере БД. Триггер является обработчиком событий изменения (обновлений, добавлений и удалений) данных. Хранимая процедура - процедура с операторами SQL для доступа к БД, вызываемая по имени с передачей требуемых параметров и выполняемая на сервере БД. Компиляция повышает скорость выполнения хранимых процедур и сокращает нагрузку на сервер. Но, перегрузив хранимые процедуры прикладной логикой, можно потерять преимущества по производительности. Хранимые процедуры улучшают целостность приложений и БД, гарантируют актуальность коллективно используемых операций и вычислений. Улучшается сопровождение таких процедур, а также безопасность (нет прямого доступа к данным).

Группу инструментальных средств для создания информационных приложений с архитектурой клиент-сервер можно разделить на следующие подгруппы:


  • среды разработки приложений для серверов баз данных;
  • независимые от СУБД инструменты для создания приложений клиент-сервер;
  • средства поддержки распределенных информационных приложений.


Среды разработки приложений для серверов БД представляют собой системы программирования четвертого поколения 4GL или инструментальные средства быстрой разработки приложений RAD (RapidApplicationDevelopment). Особенностями этой подгруппы средств являются:


  • реализация удаленного доступа к СУБД по двухзвенной схеме клиент-сервер;
  • связь клиентских приложений с серверами БД с помощью непроцедурного языка структурированных запросов SQL (кроме серверов Btrieve);
  • обеспечение целостности БД, включая целостность транзакций;
  • поддержка хранимых процедур на серверах БД;
  • реализация клиентских и серверных триггеров-процедур;
  • генерация элементов диалогового интерфейса и отчетов.


В качестве примера можно назвать инструменты Informix/4GL, Oracle*Forms и др.

Независимые инструментальные средства, ориентированные на многие платформы СУБД, представлены в виде средств быстрой разработки приложений RAD. Для таких средств создания приложений клиент-сервер характерны:


  • возможность распределения приложения на клиентах и/или серверах;
  • создание приложений для разных серверов БД;
  • поддержка спецификации ODBC (OpenDataBaseConnectivity) для доступа к различным серверам БД, включая СУБД для ПК;
  • связь с мониторами транзакций для организации трехзвенной архитектуры приложений клиент-сервер;
  • объектно-ориентированное программирование приложений;
  • визуальный характер генерации приложения;
  • ведение репозитория объектов и их свойств, что облегчает интеграцию со средствами автоматизации проектирования программ CASE;
  • управление проектами и версиями приложений;
  • интеграция приложения с электронной почтой и средствами офисной автоматизации.


Известными примерами независимых инструментальных средств разработки являются: PowerBuilder, JAM, Uniface и др.

Общим недостатком всех средств разработки приложений первого поколения является невозможность создания с их помощью больших и сложных приложений масштаба предприятия. Другая проблема - минимальные программные возможности: макроязыки и языки сценариев, которые хороши для решения только простых задач. Как увидим в дальнейшем, многие проблемы сняты в новых версиях инструментальных средств.

Средства поддержки распределенных приложений относятся к категории промежуточного программного обеспечения middleware для организации серверов приложений. Сюда входят разнообразные библиотеки и наборы инструментальных средств:


  • интерфейсы доступа к базам данных ODBC и IDAPI;
  • шлюзы для систем управления базами данных;
  • протоколы и команды мониторов обработки транзакций;
  • почтовые интерфейсы MAPI, VIM, MHS, X.400 и EDI;
  • средства обмена сообщениями MOM;
  • протоколы связывания и встраивания объектов OLE и динамического обмена данными DDE;
  • протоколы удаленного вызова процедур RPC и именованных конвейеров NamedPipes;
  • средства коммуникационного ввода-вывода BSDSockets и WinSock.


Самостоятельную группу инструментальных средств составляют объектно-ориенти-рованные базы данных, которые используют для хранения объектов реляционные БД или применяют специальные хранилища объектов.


Содержание раздела