- •Оглавление
- •Введение
- •Архитектура
- •Корпоративные приложения
- •Производительность
- •«Расслоение» системы
- •Развитие модели слоев в корпоративных программных приложениях
- •Три основных слоя
- •Где должны функционировать слои
- •Организация бизнес-логики
- •Уровень служб
- •Объектные модели и реляционные базы данных
- •Архитектурные решения
- •Функциональные проблемы
- •Представление данных в Web
- •Типовые решения представлений
- •Типовые решения входных контроллеров
- •Управление параллельными заданиями
- •Проблемы параллелизма
- •Контексты выполнения
- •Изолированность и устойчивость данных
- •Транзакции
- •Сеансы и состояния Преимущество отсутствия состояния
- •Состояние сеанса
- •Стратегии распределенных вычислений
- •Интерфейсы локального и удаленного вызова
- •Когда без распределения не обойтись
- •Сужение границ распределения
- •Интерфейсы распределения
- •Литература
Интерфейсы распределения
Традиционно интерфейсы распределенных программных компонентов строились до сих пор на основе механизмов удаленного вызова процедур (remote procedure call — RPC), реализуемых в виде глобальных процедур или методов объектов. Однако в последние несколько лет все чаще встречаются интерфейсы на базе XML и HTTP. Наиболее употребительной формой таких интерфейсов можно считать SOAP.
Коммуникации HTTP на основе XML удобны в нескольких отношениях. Они позволяют легко передавать большие порции структурированной информации, что вполне согласуется с требованием минимизации количества удаленных вызовов. Поскольку протокол HTTP носит универсальный характер, а формат XML поддерживается синтаксическими анализаторами, доступными на множестве платформ, в обмене данными могут принимать участие самые разные приложения. Текстовая природа XML упрощает контроль содержимого передаваемых сообщений, a HTTP облегчает прохождение пакетов данных через межсетевые экраны, когда по соображениям безопасности трудно открыть другие порты.
Объектно-ориентированные интерфейсы классов и методов, тем не менее, своего значения не теряют. Упаковка всех подлежащих перемещению данных в XML-структуры и строки в значительной степени отягощает удаленный вызов. Замена XML-интерфейсов прямыми вызовами позволяет существенно повысить производительность многих приложений. Если на обеих сторонах связи используется один и тот же бинарный механизм, XML-интерфейс оказывается просто иной, более красноречивой формой выражения.
Если две взаимодействующие системы функционируют на одной платформе, лучше воспользоваться технологиями удаленного вызова уровня платформы. Однако Web-службы становятся особенно полезными в условиях, когда в «общении» заинтересованы системы, действующие на разных платформах.
Литература
-
М. Фаулер. Архитектура корпоративных программных приложений.
-
Р. Мартин. Быстрая разработка программ.
-
Э. Гамма и др. Приемы объектно-ориентированного программирования. Паттерны проектирования.