Первоисточник:http://www.sibupk.nsk.su/New/05/sem/2001/docl/c2_7.doc
Автор: Соколов Д.Е., Треногин Н.Г., к. т. н., доцент
Значительная доля современных корпоративных информационных систем, таких, как ERP-системы, биллинговые и платежные системы, программное обеспечение управления проиводством и т.д., строится на базе тех или иных многоуровневых клиент-серверных решений. Необходимость такого подхода обусловлена потребностью в преодолении ограничений, накладываемых классической клиент-серверной моделью.
Идея многоуровневых клиент-серверных архитектур заключается в реализации двух основных принципов:
• «тонкий клиент» — минимизация функциональности клиентских компонентов, оставляющая за клиентом только функции пользовательского интерфейса; максимальное упрощение и унификация клиентского программного обеспечения;
• освобождение сервера БД от несвойственных функций по реализации бизнес-правил и логики конкретного приложения.
На практике эти принципы реализуются введением в клиент-серверную систему дополнительного звена — серверов приложений.
Строго говоря, термин «многоуровневые архитектуры» не предполагает какого-либо определенного принципа построения системы. Данное понятие применяется для характеристики любых архитектур, расширяющих схему клиент-серверного взаимодействия путем введения дополнительных промежуточных компонентов. С технологической точки зрения, используемые в настоящее время многоуровневые схемы можно разбить на три класса:
• технологии с терминальным доступом;
• Web-технологии;
• технологии с разделением функций клиента («расщепленный клиент-сервер»).
При реализации терминального доступа само приложение мало отличается от классической клиент-серверной (или даже файл-серверной) схемы. Прикладной программный код полностью исполняется сервером приложений, а отображение информации и пользовательский ввод происходит на рабочих местах (терминалах) пользователей. Такой подход, имевший повсеместное распространение при работе с мэйнфреймами и UNIX-серверами, ориентированный тогда на алфавитно-цифровой интерфейс, в настоящее время используется и для графических приложений. Помимо традиционной для UNIX среды X11, терминальный режим поддерживается и серверами Windows NT-TE, Windows 2000. Существенным расширением функциональности терминальных Windows-систем является сервер приложений Citrix MetaFrame.
Развитие Internet-технологий привело к тому, что Web-браузер становится универсальным инструментом, позволяющим реализовать практически всю необходимую функциональность клиентского рабочего места. Помимо этого, доступ к серверам приложений посредством Web незаменим в тех случаях, когда взаимодействие обеспечивается через Internet — при наличии разветвленной сети филиалов, поддержке клиентов, ведении электронного бизнеса. Решения на основе Web-доступа стали появляться уже с введением стандарта CGI, позволившего исполнять приложения на Web-серверах и превращать HTML-страницы в интерактивный пользовательский интерфейс. В настоящее время широко используются более или менее специализированные средства реализации бизнес-приложений на основе Web: Microsoft ASP, Oracle Web Application Server и др., а также открытые технологии JSP и PHP.
Третий класс многоуровневых систем — «расщепленный клиент-сервер» — отличается от двух первых тем, что на клиентском рабочем месте устанавливается и выполняется не универсальный программный продукт (терминальный клиент или браузер), а «облегченное» клиентское приложение, написанное для данной конкретной задачи. Однако, в отличие от двухзвенной клиент-серверной системы, клиентское приложение взаимодействует не с сервером БД, а с сервером приложений. При этом серверные компоненты часто реализуются в виде объектов (в терминологии объектно-ориентированного программирования), методы которых доступны клиентским программам для удаленного вызова. Интерфейс такого взаимодействия обычно реализуется на основе стандартов CORBA или DCOM. Возможны и другие, отличные от объектного подхода варианты. Они могут основываться на таких продуктах, как Borland MIDAS или использовать собственные разработки для сетевого взаимодействия.
Существуют и комбинированные решения. Так, продукт SCO Tarantella позволяет транслировать любые терминальные приложения в среду стандартного Web-браузера. При этом сервер Tarantella исполняет роль портала, объединяющего ресурсы терминальных серверов различных платформ — X11 и WinFrame/MetaFrame.
Отдельно следует отметить класс многоуровневых систем на основе менеджеров транзакций (модель ТМ), при которой дополнительное звено — менеджер транзакций — координирует взаимодействие клиентов с серверами приложений и БД, обеспечивая балансировку нагрузки между ними и «горячую» реконфигурацию в случае остановки какого-либо из серверов. Эта модель, в частности, реализуется такими продуктами, как Tuxedo, Baikonur, Microsoft Transaction Server.
Основные задачи, для решения которых применяется многоуровневый подход, обычно сводятся к следующим:
1. Повышение производительности системы за счет переноса части функциональности с серверов БД и клиентских компьютеров на аппаратно выделенные сервера приложений.
2. Снижение эксплуатационных расходов за счет упрощения установки и поддержки клиентских рабочих мест, а также снижение аппаратных требований к клиентским рабочим местам.
3. Минимизация нагрузки на сеть (особенно важно для территориально распределенных систем, содержащих низкоскоростные каналы).
4. Повышение эффективности использования вычислительных ресурсов за счет концентрации нагрузки.
5. Повышение производительности и доступности путем дублирования и резервирования подсистем с оптимизацией распределения нагрузки и возможностью «горячей» реконфигурации.
6. Повышение структурированности программных систем за счет реализации компонентов в виде независимых модулей (объектов), допускающих повторное использование кода без перекомпиляции; обеспечение возможности комплектации готовой системы из таких модулей.
7. Потребность в интеграции различных приложений в едином интерфейсе — формирование доступа ко всем ресурсам и программным средствам через единый корпоративный портал.
Следует отметить, что переход от классической двухзвенной схемы к тому или иному варианту многоуровневой архитектуры сам по себе не гарантирует повышения эксплуатационных характеристик системы. Если качественные параметры (универсальность клиентских рабочих мест и модульность) можно определить уже на этапах постановки задачи и проектирования, то количественные характеристики (прежде всего производительность и аппаратные требования) далеко не всегда могут быть с уверенностью предсказаны.
Предварительная оценка производительности многоуровневой клиент-серверной системы, основанная на некоторой универсальной математической модели, крайне проблематична. На характер стохастических процессов, протекающих в системе, оказывает влияние ряд трудно формализуемых факторов: от особенностей предметной области и динамики развития БД до стиля программирования конкретного коллектива разработчиков. Вместе с тем, на этапе пилотного проекта можно изучить характер потоков запросов, произвести измерения сетевого трафика, проанализировать загрузку серверов. По полученным данным представляется возможным оценить вероятностно-временные характеристики компонентов реальной масштабной ИС. Результаты такой оценки, если она выполнена на достаточно раннем этапе разработки, могут привести к значительной экономии средств при внедрении системы, поскольку появляется возможность снизить аппаратные требования к наиболее критическим компонентам за счет корректировки (оптимизации) структуры системы.
В последние годы создание и развертывание многозвенных клиент-серверных систем выходит на промышленный уровень. Наиболее распространенные инструментальные средства разработки поддерживают создание многоуровневых приложений. Большинство серверных платформ в той или иной мере ориентировано и на функциональность «промежуточного звена».
Примечательно, что компания Sun Microsystems, лидирующий поставщик корпоративных платформ, в последнее время позиционирует свои супер-сервера классов Hi-End и MidFrame именно как сервера корпоративных приложений. При этом сервер становится центром не только информационных, но и вычислительных ресурсов. На смену персональным компьютерам на рабочих местах приходят неинтеллектуальные графические терминалы SunRay. По сути, предлагаемая схема представляет собой возврат к принципам работы мэйнфреймов. В то же время, подход является иллюстрацией предельно последовательного применения технологии «тонкого клиента» в среде современной корпорации.