Итоги года: 10 главных архитектурных событий
The Village попросил профессионального архитектора рассказать о самых важных событиях года
The Village попросил общественную организацию «11–47», состоящую из молодых архитекторов и занимающуюся социально-общественными исследованиями, выбрать главные события столичной архитектуры уходящего года. «11–47» выбрали события со знаком плюс и со знаком минус.
Комментарии дает Николай Переслегин, член общественной организации «11–47» и основатель архитектурного бюро Concept 007.
СНЯТИЕ ЮРИЯ ЛУЖКОВА
С ПОСТА МЭРА
28 сентября мэр Москвы Юрий Лужков был отстранен от своих обязанностей в связи с «утратой доверия» президента РФ.
Как известно, московская архитектура сегодня так и называется — «лужковская». «Лужковский стиль» — то, чего не было никогда ни с одним региональным руководителем: есть «сталинский ампир», «хрущевки», есть даже «брежневская эпоха», если посмотреть в прошлое, то там мы найдем «елизаветинское барокко» и «николаевский ампир». То есть речь идет об архитектуре, которая связана с именем главы государства. За двадцать лет правления Лужкова был создан некий прецедент: нет такого понятия, как «ельцинский» или «путинский» архитектурный стиль, а «лужковский» есть. След в облике города, который связан исключительно с его мэром. Поэтому мы рассматриваем уход Лужкова как собственно архитектурное событие. Хочется надеяться, что со знаком плюс.
ПЕРЕНАЗНАЧЕНИЕ ГЛАВНОГО
АРХИТЕКТОРА СТОЛИЦЫ
22 ноября новый мэр Москвы Сергей Собянин переназначил Александра Кузьмина на должность главного архитектора столицы.
Многочисленным градостроительным ошибкам последнего двадцатилетия и просто становлению местечковой и бессмысленной новой московской архитектуры во многом поспособствовал главный столичный архитектор Александр Кузьмин. Этот человек занимал свой пост все 18 лет правления Лужкова. Его переназначение — одно из главных событий со знаком минус за год. Александр Кузьмин в данном случае является лидером беспринципного профессионального цеха при московском монархе, по сути, придворным архитектором. Когда в начале своего мэрства Лужков понял, что среди этих людей нет ни одной личности, которая может аргументированно и обоснованно обозначить свою профессиональную позицию, он взял архитектуру в свои руки, и с тех пор по-другому в Москве нельзя. Можно сказать, что бывшего мэра воспитало непрофессиональное, бесхребетное и слабое столичное архитектурное сообщество.
СТРОИТЕЛЬСТВО ТОРГОВОГО ЦЕНТРА
НА ЦВЕТНОМ БУЛЬВАРЕ
Tsvetnoy Central Market открылся 9 декабря. Архитектурное решение: российское архитектурное бюро «Меганом». Дизайн внутри здания: студия HMKM, Lifschutz Davidson Sandilands, DPA. Площадь: 36 000 кв. метров
Здание на Цветном бульваре — удачное решение, которое никак не вторглось в историческую застройку. Его автором является одно из лучших архитектурных бюро Москвы — «Проект-Меганом» во главе с талантливым и ярким архитектором Юрой Григоряном. Очень приятные и качественные материалы, трактовка текстур и структура внутреннего пространства. Это хороший пример европейского подхода к городу. Приятно, что здание не бросается в глаза — это пример логики в планировке и деликатного, изысканного и вместе с тем свежего и яркого архитектурного решения.
СТРОИТЕЛЬСТВО ЖИЛОГО КОМПЛЕКСА
НА ЦВЕТНОМ БУЛЬВАРЕ
Комплекс «Легенда Цветного» разработан компанией Capital Group. Цены на апартаменты начинаются от $13 000 за кв. м. В видеорекламе «Легенды Цветного» снялась Наоми Кэмпбелл. Здание полностью застеклено.
Беспрецедентное уродство, здание, которое не имеет никакой концепции, его эстетическое решение ничем не обосновано, всё это похоже на груду металла. Гипертрофированная местечковость в центре Москвы. Такая вот груда стекла и металла оказалась в центре города, красивейшем месте столицы, к тому же на месте исторической застройки.
ОТМЕНА СТРОИТЕЛЬСТВА
ДЕПОЗИТАРИЯ МУЗЕЕВ КРЕМЛЯ
Неосуществленный проект депозитария: 4 этажа, 23 000 кв. м. Расположен между Боровицкой башней Кремля и Домом Пашкова; на строительство нужно 44 месяца.
Проект депозитария для музеев Кремля на Боровицкой площади был безумным решением. Ясно, что депозитарий нужен, но предполагавшийся проект закрыл бы вид на Кремль и разрушил бы ансамбль Боровицкой площади. Такие вещи не решаются стихийно, так что возмущение общественных организаций и москвичей понятно. Когда Ресин назвал проект строительства депозитария «чудовищным» и строительство остановили, дышать стало легче.
ПОСТРОЙКА ДОМА
НА МОСФИЛЬМОВСКОЙ УЛИЦЕ
Высота дома на Мосфильмовской 213,3 метра; состоит из двух башен: в 47 и 32 этажа. После окончания постройки разгорелся скандал — власти обязали разобрать 22 этажа здания.
Это очень страшный и одновременно очень красивый дом: хороший и довольно интересный проект, который на другой площадке мог быть очень приятным. Но место, где этот дом построен, выбрано неудачно: новое здание портит неповторимый ландшафт и линию горизонта Воробьевых гор. Оно разрушает сложившийся ансамбль, центром которого раньше было здание МГУ им. Ломоносова.
ОТМЕНА
СНОСА КАДАШЕЙ
Историческим памятником в Кадашах московские власти признают только церковь Воскресения Христова начала XVII века. Соборный храм в Кадашах более 300 лет был архитектурной доминантой всего Замоскворечья, составляя вместе с колокольней Ивана Великого главную градостроительную ось, по которой возводилась Москва. Остальные исторические здания власти считают просто «фабричными корпусами».
В мае 2010 года продолжился снос исторических памятников в Кадашах. Чтобы предотвратить снос, активисты встали на круглосуточное дежурство у огороженных территорий. В конечном счете Москомнаследие приостановило снос Кадашевской слободы в районе Замоскворечья в центре столицы. Запутанная история. Хорошо, что проекта не будет. Это главное.
ЗАТЯЖНОЙ ПРОЦЕСС ВОКРУГ
УСАДЬБЫ ОРЛОВА-ДЕНИСОВА
Памятник архитектуры на Большой Лубянке. В основе усадьбы — палаты XVII века. Этот дом связан с именем Князя Пожарского: он долгое время здесь жил, сюда привезли смертельно раненного на Бородинском сражении князя Багратиона, во время осады Москвы Наполеоном здесь жил знаменитый московский губернатор граф Растопчин. Усадьба описывается и в романе Толстого «Война и мир».
Вот уже много лет этот дом стоит брошенный в самом центре Москвы. Собственник — коммерческая структура — как будто нарочно не предпринимает никаких шагов для осуществления реставрации или хотя бы консервации этого уникального памятника.
Многолетняя тяжба между собственником и государством, желающим изъять усадьбу и провести реставрацию за бюджетные деньги, искусственно затягивается в судах. А на деле этот прекрасный исторический дом гибнет с каждым днем, там уже многое не восстановить. Возможно, он не переживет нынешнюю зиму.
ОТКРЫТИЕ
ИНСТИТУТА МЕДИА, ДИЗАЙНА
И АРХИТЕКТУРЫ «СТРЕЛКА»
На первый год обучения в институт «Стрелка» были приняты около 40 студентов из разных стран мира.
О качестве их продукции — выпущенных студентах — можно будет судить чуть позже, когда «Стрелка» действительно представит городу и миру своих выпускников. Но, по сути, создание «Стрелки» — прецедент. Многие годы ходили слухи, что, дескать, так больше быть не может, что МАРХИ не справляется с современной повесткой дня по подготовке интересных и классных архитекторов. Сама институция, субстанция, которую создала команда «Стрелки», может считаться событием. «Стрелка» — это абсолютно новое пространство для коммуникации, узнавания нового. Они поставили перед собой очень интересные, амбициозные и правильные задачи.
ДИПЛОМНЫЙ ПРОЕКТ
«КРАПИВНА: ВОСКРЕСЕНИЕ»
СТУДЕНТОВ МАРХИ
Суть проекта «Крапивна: Воскресение» заключается в том, чтобы решать социальные задачи с помощью архитектуры. Видеопрезентацию проекта можно посмотреть здесь.
К сожалению, в МАРХИ чаще всего учат формалистскому подходу к архитектуре и не учат думать. Но данный проект интересен тем, что студенты МАРХИ провели глубокий анализ. Своим проектом студенты решают ряд социальных проблем. Это первая ласточка стараний нового ректора МАРХИ Дмитрия Швидковского, очень грамотного и глубокого человека, который хочет вдохнуть в институт новую жизнь. Ура Евгению Ассу, Никите Токареву и Кириллу Ассу, под руководством которых был сделан этот проект.
Другие важные архитектурные события года:
- Генеральный план развития Москвы — трехтомник общим объемом полторы тысячи страниц, описывающий перспективы столичного градостроительства до 2025 года. Был принят 5 мая, а с середины июня вступил в силу. Его основная мысль заключается в разделении городских территорий на две условные зоны. По идее авторов Генплана, в первых, «зонах развития», будут вестись реконструкции, снос и новое строительство, а во вторых, «зонах стабилизации» (центре и старых спальных районах), будет проводиться только капремонт и благоустройство территории. И если эти общие принципы едва ли кого-то смутили, то вот детали их осуществления не устроили многих: принятие документа сопровождалось критикой со стороны массы архитектурных экспертов и политических партий, Гринписа, Общественной палаты и Минрегиона России. Однако московскому мэру до поры до времени всё было нипочем — мол, общественные дискуссии по этому поводу состоялись еще в прошлом году и вообще: «Где вы раньше были?»
- Начало активного функционирования «Красного Октября» как арт-квартала. «Красный Октябрь» превратился в одно из главных мест города. За год здесь открылось несколько десятков новых точек: галереи, рестораны, магазины, бары и даже институт.
- Смерть Давида Саркисяна — потеря года. Ночью 7 января после тяжелой болезни умер директор Музея архитектуры им. Щусева.
Event Driven Architecture
EDA (Event Driven Architecture) – архитектура, управляемая событиями. Это архитектура, в которой события начинают обмен сообщениями в реальном времени между свободными приложениями. EDA базируется на так называемые программы-агенты, которые обрабатывают события, чтобы находить события на предприятии и, воспользовавшись толкающим подходом, ставить в известность все другие приложения, которые нужно известить о данных событиях. Все это происходит в реальном времени. Заказ на восполнение запасов в EDA, который невозможно выполнить, обнаруживается и определяется системой обработки сложных событий как возможный дефицит для сервисной акции. Источники опубликовывают события, а подписчики получают их в процессе поступления. В архитектуре EDA публикация событий, подписка на события с поддержкой их буферизации в очередях и фильтрации, залог предоставления доставки событий в случае выхода из строя оборудования или сети должны иметь поддержку интеграционного программного обеспечения. Можно сказать, это целое научное направление, основоположником которого считается профессор Дэвид Лукхэм.
Содержание
Предметом рассмотрения EDA является механизм доставки сообщений (т.е. событий, имеющих конкретную форму). Несмотря на то, что чаще встречаются случаи гибко настраиваемой под изменения среды логики маршрутизации, траектории следования сообщений могут быть четко определены принципами взаимодействия в клиент-серверном стиле. Таким образом, она может базироваться на современном устройстве оркестровки или маршрутизации на основе контента (content-based routing, CBR) каждого из сообщений. Важным является тот факт, что SOA не ограничивает рамок связанности систем. На основании этого часто говорят, что модель SOA является «слабо связанной». В результате взаимодействие с сервисами может быть прямым и опосредованным, т.е. выполняется при помощи всевозможных программных средств промежуточного слоя. К ним относятся такие интеграционные брокеры как (enterprise application integration, EAI) и очереди сообщений (message-oriented middleware, MOM).
Назначение EDA
EDA призвана придавать системам максимальную гибкость, что дает возможность внесения в них быстрых и дешевых изменений. Сверхзадачей EDA является приближение информационных систем к реальным операциям компании. Основой EDA считается:
- Поддержание объединения многие-ко-многим.
- Эксплуатация алгоритма управления потоком данных, который определяется принимающей стороной на основе самого сообщения.
- Поддержание через сеть модулей динамических, параллельных, асинхронных потоков данных.
- Возможность реагировать на новые внешние входные данные, поступающие в любое время.
Ключевые особенности
- События обрабатываются не человеком, а автоматизированной системой.
- События используются как инициаторы для вызова сервисов.
- Развязка обработчика и инициатора.
- Асинхронность.
- Возможность управлять предприятием в режиме реального времени совместно с SOA.
События и EDA
Сообщения о событиях, которые поступают в систему, распространяются по списку, а получателей таких сообщений называют подписчиками (subscriber); в роли подписчика может быть представлен челове или автомат. У всех этих сообщений имеется заголовок (header) и тело (event body). Заголовок состоит из относящихся к событию метаданных, в том числе: идентификатора спецификации события, указателя типа, имени события, отметки времени и источника. Тело события включает в себя описание самого события. Для того чтобы получатель мог предпринимать какие-то действия, не делая дополнительных запросов используя предоставленные данные, тело должно быть достаточно содержательным, а также оно должно содержать описание, подготовленное на принятом в бизнесе языке, или полную онтологию, чтобы смысл события был понятен подписчику. В EDA сообщение о последнем распределяется между подписчиками, которые каким-либо образом на него реагируют. Это может быть как вызов определенного сервиса так и перестройка бизнес-процесса, а также дальнейшее распространение сведений о событии, в том числе дополнительных. Архитектура такого плана является не просто слабо связанной, а очень слабосвязанной (extreme loose coupling) и распределенной. Источник или создатель сообщения знает только то, что сообщение передано, не участвуя при этом в его дальнейшей судьбе. По правде говоря, отследить траекторию отработки сообщения в условиях его распространения по подписке, практически невозможно. Вот почему наличие асинхронных потоков работ и входных данных подразумевается в EDA. Большое количество входных данных способны содержать только значимые события, которые оформлены в виде сообщений и готовы к отправке подписчикам, потоки единичных событий (такие как сведения, считанные с меток RFID), и потоки сложных событий. В зависимости от того, что входит в состав потоков событий архитектуры, EDA может быть систематизирована по стилю обработки. В одном случае происходит простое обрабатывание событий (simple event processing), которое подразумевает прямую передачу событий из входного потока в процессор обработки событий. В другом случае, в процессе многочисленной обработки событий (stream event processing), единичные события в первую очередь поступают в генератор, где из них с помощью фильтрации или иной предварительной обработки формируются значимые события, которые в свою очередь передаются в процессор событий. Третий случай — это обработка сложных событий (complex event processing). Он отличается тем, что единичные события не являются однородными. Система, которая строится по принципу архитектуры EDA, должна состоять из четырех основных компонентов:
- Генератор событий (event generator). Имеет своей отличительной особенностью функциональность, которая зависит от стиля обработки событий; задачей этого компонента является первичная обработка, выделение из входного потока значимых событий.
- Канал событий (event channel). Является внутренней магистралью, которая способна обезопасить транспортировку значимых событий из генератора в процессор.
- Процессор событий (event processor). Соотносит полученные события с имеющимися правилами обработки, оценивает их, вырабатывает правильные решения, в том числе запуск определенных сервисов и бизнес-процессов, осуществляет прямые пересылки сведений о событиях и архивирование, а также направляет сообщения подписчикам,.
- Управление последующими событиями (downstream event-driven activity). Необходимы соответствующие средства для управления, поскольку одно вводное событие может потребовать выполнения целого комплекса последующих действий.
Немного об архитектурах программного обеспечения
Никаких сомнений, что за последнее время мир только укрепил свою зависимость от программного обеспечения. Приложения должны обладать высокой доступностью, качественно выполнять требуемые функции и иметь адекватную стоимость. Эти характеристики, в той или иной степени, определяет архитектура ПО.
В стандарте IEEE 1471 дается следующее определение: «Архитектура – это базовая организация системы, которая описывает связи между компонентами этой системы (и внешней средой), а также определяет принципы её проектирования и развития». Однако многие другие определения архитектуры признают не только структурные элементы, но и их композиции, а также интерфейсы и другие соединительные звенья.
Пока что у нас нет общепринятой классификации архитектурных парадигм, но все-таки мы легко можем выделить несколько базовых и широко распространенных архитектурных паттернов или стилей. Взглянем на некоторые из них.
«Каналы и фильтры» (Pipes and Filters)
Рисунок 1 – Pipes and Filters
Этот вид архитектуры подходит в том случае, если процесс работы приложения распадается на несколько шагов, которые могут выполнятся отдельными обработчиками. Основными компонентами являются «фильтр» (filter) и «канал» (pipe). Иногда дополнительно выделяют «источник данных» (data source) и «потребитель данных» (data sink).
Каждый поток обработки данных – это серия чередующихся фильтров и каналов, начинающаяся источником данных и заканчивающаяся их потребителем. Каналы обеспечивают передачу данных и синхронизацию. Фильтр же принимает на вход данные и обрабатывает их, трансформируя в некое иное представление, а затем передает дальше.
К примеру, один из фильтров может реализовывать шифр Цезаря – шифр подстановки, в котором каждый символ в тексте заменяется символом, находящимся на некотором постоянном числе позиций левее или правее в алфавите. Одна из вариаций кода Цезаря – это ROT13, имеющая шаг равный 13.
Рисунок 2 – Принцип ROT13
Его достаточно просто реализовать с помощью стандартной терминальной утилиты Unix tr:
А вот код на Python:
Фильтры можно легко заменять, использовать повторно, переставлять местами, что дает возможность реализовывать множество функций на основе ограниченного набора компонентов. Более того, активные фильтры могут работать параллельно, что приводит к значительному повышению производительности на многопроцессорных системах. Однако есть и недостатки, например, фильтры зачастую тратят больше времени на преобразование входных данных, чем на их обработку.
В качестве примера использования этой архитектуры может служить оболочка UNIX Shell, одним из дизайнеров которой был Дуглас Макилрой (Douglas McIlroy). Другим примером может стать архитектура компилятора, если рассматривать её как последовательность фильтров: лексера, парсера, семантического анализатора и генератора кода.
Дополнительную информацию по этому типу архитектуры можно найти здесь и здесь.
Многоуровневая архитектура
Является одной из самых известных архитектур, в которой каждый слой выполняет определенную функцию. В зависимости от ваших нужд вы можете реализовать любое количество уровней, но слишком большое их количество приведет к чрезмерному усложнению системы. Часто выделяют три основных уровня: уровень представления, уровень логики и уровень данных.
Рисунок 2 – Многоуровневая архитектура
Слою не обязательно знать, что делают его соседи. Здесь проявляется такое свойство как разделение ответственности. Если все три слоя являются закрытыми, то запрос пользователя к верхнему уровню инициирует цепочку обращений с верхнего уровня до самого нижнего. В этом случае уровень представления отвечает за пользовательский интерфейс и отображение данных для пользователя и ничего не знает о существовании физического хранилища данных. Ничего о существовании базы данных не знает и уровень логики – его «беспокоят» только правила бизнес-логики. Доступ к базе данных имеет лишь через уровень управления данными.
Достоинствами применения такой архитектуры являются простота разработки (в основном из-за того, что этот вид архитектуры всем знаком) и простота тестирования. Среди недостатков можно выделить возможные сложности с производительностью и масштабированием – всему виной необходимость прохождения запросов и данных по всем уровням (опять же, в том случае, если все слои являются закрытыми).
Одним из самых известных примеров этого паттерна может служить сетевая модель OSI. Подробнее о многоуровневой архитектуре можно почитать, например, в блогах вот этих трех программистов и разработчиков:
- Блог Скотта Хансельмана (Scott Hanselman),
- Блог Хендри Люка (Hendry Luk),
- Блог Йоханнеса Бродвалла (Johannes Brodwall).
Архитектура, управляемая событиями (EDA)
Это популярный адаптивный паттерн, широко используемый для создания масштабируемых систем. Чтобы ознакомиться с принципами событийно-ориентированной архитектуры, можете посмотреть вот это видео от Complexity Academy:
Рисунок 3 – Событийно-ориентированная архитектура
Если говорить о программном обеспечении, то в этой схеме существует два варианта событий: инициализирующее событие и событие, на которое реагируют обработчики. Обработчики являются изолированными независимыми компонентами, отвечающими (в идеале) за какую-нибудь одну задачу, и содержат бизнес-логику, необходимую для работы.
Посредник может быть реализован несколькими способами. Самый просто способ – это воспользоваться фреймворками для интеграции Apache Camel, Spring Integration или Mule ESB. Для больших приложений, которым требуется более сложные функции управления, вы можете реализовать посредника, используя концепцию управления бизнес-процессами (например движок jBPL).
Архитектура, управляемая событиями – это относительно сложный паттерн. Причиной тому – его распределенная и асинхронная природа. Вам придется решать проблемы фрагментации сети, обрабатывать ошибки очереди событий и так далее. Плюсами этой архитектуры могут служить высокая производительность, легкость развертки и поразительные возможности масштабирования. Однако возможно усложнение процесса тестирования системы.
Подробнее о событийно-ориентированной архитектуре можно почитать здесь.
Микроядерная архитектура
Паттерн состоит из двух компонентов: основной системы (ядра) и плагинов. Ядро содержит минимум бизнес-логики, но руководит загрузкой, выгрузкой и запуском необходимых плагинов. Таким образом, плагины оказываются несвязанными друг с другом.
Поскольку плагины могут разрабатываться независимо друг от друга, такие системы обладают очень высокой гибкостью и, как следствие, легко тестируются. Производительность приложения, построенного на основе такой архитектуры, напрямую зависит от количества подключенных и активных модулей.
Возможно самым лучшим примером микроядерной архитектуры будет Eclipse IDE. Скачивая Eclipse без надстроек, вы получаете совершенно пустой редактор. Однако с добавлением плагинов пустой редактор начнет превращаться в полезный и легко настраиваемый продукт. Еще один хороший пример – это браузер: дополнительные плагины позволяют расширить его функциональность.
Подробнее о микроядерной архитектуре можно узнать здесь и здесь.
Микросервисная архитектура
Этот тип архитектуры позволяет масштабировать приложения по оси Y «Куба масштабирования» (Scale Cube), описанного в книге «The Art of Scalability» Мартина Эбботта (Martin L. Abbott) и Майкла Фишера (Michael T. Fisher). В этом случае приложение разбивается на множество небольших сервисов, называемых микросервисами. Каждый микросервис включает в себя бизнес-логику и представляет собой совершенно независимый компонент. Сервисы одной системы могут быть написаны на различных языках программирования и общаться друг с другом, используя различные протоколы.
Поскольку каждый микросервис является отдельным проектом, вы можете распределить работу над ними между командами разработчиков, то есть над системой могут одновременно трудиться несколько десятков программистов. Микросервисная архитектура позволяет с легкостью масштабировать приложение – если вам понадобилось внедрить новую функцию (развертывать каждый микросервис можно по отдельности), просто напишите новый сервис, а если какой-то функцией никто не пользуется – отключите сервис.
Очевидным недостатком этого паттерна является необходимость передачи большого количества данных между микросервисами. Если накладные расходы на обмен сообщениями слишком велики, нужно либо оптимизировать протокол, либо объединить микросервисы. С тестированием таких систем тоже не все просто. Например, если вы пишите класс на Spring Boot, который должен протестировать все REST API сервиса, то он должен запустить проверяемый микросервис и микросервисы с ним связанные. Это не ядерная физика, но недооценивать сложность процесса все же не стоит.
Подробнее о микросервисных архитектурах вы можете почитать в следующих источниках: здесь, тут и вот тут.
Дополнительные материалы
В рамках этой статьи мы рассмотрели несколько видов архитектур программного обеспечения. Разумеется, здесь не было затронуто множество других паттернов. В качестве дополнительных материалов по теме можете посмотреть следующие ресурсы:
- O’Reilly: серия статей об архитектурах программного обеспечения;
- SE: лучшие книги по теме архитектуры программного обеспечения;
- Fromdev: пять лучших книг по архитектуре ПО, которые должен прочесть каждый;
- All Things Distributed: блог Вернера Вогелса (Werner Vogels), технического руководителя Amazon, о построении масштабируемых и надежных распределённых систем;
- Quora: лучшие книги, статьи и блоги для архитекторов ПО.
В нашем блоге рассматриваются самые разные вопросы от направлений развития файловых систем до отраслевых мероприятий, от темы надежности ЦОД до виртуализации и собственных кейсов по переводу российского бизнеса в «облако».
Помимо этого мы рассказываем о работе службы поддержки «облачного» провайдера и теме оптимизации производительности, к обсуждению которой мы планируем вернуться в одном из следующих материалов.