Архитектура распределенных систем программного обеспечения. Учебное пособие издано при поддержке образовательной программы Формирование
Скачать 1 Mb.
|
Особенности рабочих потоковПрограммирование рабочих потоков существенно отличается от программирования на обычных языках программирования. Главным отличием является масштаб работ, выполняемых процедурами. Рабочие потоки обычно состоят из крупных структурных блоков активностей и приложений, которые могут работать часами или сутками. Другим важным отличием является степень модульности: системы рабочих потоков состоят из больших программных модулей, обычно целых приложений, и очень часто из сложных многоярусных систем. При использовании рабочих потоков транзакционный откат части вычислений представляет собой серьезную проблему. Из-за длительности операций рабочего потока невозможно блокировать необходимые ресурсы базы данных, что может быть необходимо для поддержания возможности выполнения отката. Еще одно отличие рабочих потоков от традиционного подхода связано с ресурсами, которые выполняют вызываемые процедуры. Обычно ресурсом считается вычислительная машина или ее компоненты. Для рабочего потока ресурс может быть разным в зависимости от выполняемой работы и от конкретного запуска потока, ресурсом может быть даже человек. Интеграция рабочих потоков с другими системамиТехнология рабочего потока по многим своим характеристикам напоминает технологию транзакционного монитора. Рабочие потоки, интегрируя крупные прикладные системы, могут выполнять распределенные транзакции, управлять именованием и связыванием ресурсов, обладают функциональностью по управлению производительностью и балансировкой нагрузки. Однако системы рабочих потоков фокусируются на динамическом выборе и на управлении исключительными ситуациями, используя преимущества объектно- ориентированных брокеров, систем обмена сообщениями, и моделей "публикация/подписка". Достоинства и ограничения систем управления рабочим потокомФункциональность систем управления рабочим потоком вполне достаточна для кодирования логики процессов при интеграции приложений, включая стыковки крупных приложений и работ, выполняемых вручную. Дополнительную помощь дает предоставляемое разработчиками графическое окружение разработки, которое помогает строить бизнес процесс, моделируя его на экране. Системы рабочих потоков хорошо зарекомендовали себя при работе с циклическими, хорошо определенными процессами, но интеграция в глобальной сети, как и интеграция существенно гетерогенных приложений, ими выполняется с трудом. Серверы приложенийСерверы приложений эквивалентны традиционным системам поддержки распределенной обработки информации, отличаясь от них использованием глобальной сети, как основного канала доступа к службам системной поддержки. Переход к сетевому доступу приводит к тому, что презентационный слой начинает играть гораздо более важную роль, чем в традиционных системах. Подготовка, динамическая генерация и управление документами стала значительной частью работы серверов приложений, которые расширяют возможности обычных систем доступом к глобальной сети. Важнейшим свойством серверов приложений является аккумулирование внутри промежуточной платформы все большего объема функций. Если тенденция будет продолжена, станет непросто разобраться, что находится внутри сервера приложения, а что – нет. Во многих случаях имя, первоначально присвоенное серверу приложения, приобретает со временем новый смысл, обозначающее любой компонент промежуточного слоя, выпускаемый данной компанией (WebLogic, WebSphere). Поддержка прикладного слояСодержащаяся в сервере приложений функциональность похожа на то, что предоставляется системами CORBA, транзакционными мониторами, брокерами сообщений. Это объясняет, почему серверы приложений не ограничиваются сетевой интеграцией, но могут использоваться и для интеграции прикладных систем предприятий (как обычных распределенных приложений, так и транзакционных). Их целью является создание единого окружения для всех видов прикладной логики, работающей с глобальной сетью, а также автоматическое получение функциональности серверов приложений (транзакции, безопасность, сохранность) при подключении приложения к данному серверу. Разработчикам приложения не требуется реализовывать всю эту функциональность самостоятельно, она становится доступной при подключении к серверу приложений. В составе серверов приложений имеются различные виды компонентов, обеспечивающие различные методы управления состоянием и сохранностью (в рамках одной сессии взаимодействия или в рамках серии сессий с обеспечением сохранности данных). Допускается как синхронное, так и асинхронное взаимодействие с клиентом. Компоненты серверов приложений могут создавать посредников между системными программами и приложениями, что позволяет предоставлять дополнительные услуги. Поддержка транзакционности освобождает разработчиков от определения транзакционных границ и реализации соответствующих программ. Другие службы контейнера включают обеспечение свойств сохранности и безопасности. Привязка к серверу производится с помощью службы именования и каталогов, используя которую, клиенты могут привязываться к серверу по имени объекта. Каждое имя объекта действует в некотором контексте, внутри контекстов имена должны быть уникальными. Контексты могут строиться в иерархии, подобные иерархиям каталогов в файловых системах. Серверы приложений работают также со слоем управления ресурсами. Обычно предлагается подход, основанный на использовании прикладных интерфейсов и стандартных архитектур, например сервер J2EE использует стандарты JDBC и J2CA. Такие стандарты определяют прикладные интерфейсы, дающие возможность доступа практически к любому источнику табличных данных, а также методы построения адаптеров ресурсов, то есть компонентов, дающих возможность единообразно подключать ресурсы к серверу и другим приложениям, что дает возможность поддерживать транзакционность и безопасность. Серверы приложений предлагают и другие услуги, упрощающие администрирование и управление приложениями, обеспечивая высокую доступность и производительность. Ими может проводиться распределение нагрузки внутри наборов объектов, непрерывный контроль работы приложения и проведение перезапуска при сбоях. Проводится также администрирование объектов и безопасности: система следит за тем, какой пользователь обращается к какому приложению, и накладывает необходимые ограничения на этот доступ. То, что раньше могло делаться только вручную, теперь выполняется автоматически. Аналогичные свойства предоставляются (или разрабатываются) для других моделей распределенных объектов, например, для модели CORBA. В настоящее время проводится работа по повышению производительности серверов приложений, которые пока не могут достичь показателей транзакционных мониторов. Но если транзакционные мониторы работают в приложениях с высокой нагрузкой, но статичных (при этом фаза их разработки может требовать больших затрат усилий и времени), то серверы приложений предназначены для того, чтобы сильно облегчить и упростить именно фазу разработки. |