2009-06-28 1 views
1

В Узоры Enterprise Application Architecture, Мартин Фаулер пишет:Шаблоны для не-слоистые приложений

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

Какие шаблоны существуют для создания не-слоистых приложений/частей приложения? Возьмите механизм статистического моделирования для финансового учреждения. Там может быть слой для доступа к данным, но я ожидаю, что большая часть кода будет в одном слое. Вы все еще ожидали бы увидеть фигуры Gang of Four в таком слое? Как насчет модели домена? Вы бы вообще использовали OO, или это было бы чисто функционально?

В цитате упоминаются трубы и фильтры как альтернативные модели для слоев. Я легко могу представить такой двигатель, использующий трубы, как способ разбить обработку данных. Какие существуют другие шаблоны? Существуют ли общие шаблоны для таких областей, как планирование задач, агрегация результатов или распределение работы? Каковы некоторые альтернативы MapReduce?

ответ

1

Я думаю, что Fowler означает, что в многоуровневом приложении основное внимание уделяется организации «вертикальной» связи между слоями.

Другая архитектура - SOA (ориентированная на обслуживание), где основное внимание уделяется организации «горизонтальной» декомпозиции связи между компонентами. (Внутри компонента реализация может использовать любую модель). Это ничего нового. Другими примерами этого горизонтального шаблона являются COM/COM +, CORBA, рабочие процессы, а теперь «сообщения» или архитектуры ESB.

Смежные вопросы