Size: a a a

Архитектура ИТ-решений

2017 June 09

GK

Gennadiy Kruglov in Архитектура ИТ-решений
У слова "платформа" есть синоним - фреймворк. Платформа .Net, JEE, Spring
источник

AS

Andrei Soloschak in Архитектура ИТ-решений
По-моему разговор ушел куда-то в сторону. Использование слова платформа в разных контекстах может быть разным. Обычным означает нижележащий фундаментальный уровень. В контексте современных IT-систем более удачное слово это экосистема. Оно позволяет однозначно отделить данный подход от рассширяемых систем вроде 1С.
источник

GK

Gennadiy Kruglov in Архитектура ИТ-решений
Andrei Soloschak
По-моему разговор ушел куда-то в сторону. Использование слова платформа в разных контекстах может быть разным. Обычным означает нижележащий фундаментальный уровень. В контексте современных IT-систем более удачное слово это экосистема. Оно позволяет однозначно отделить данный подход от рассширяемых систем вроде 1С.
Согласен. Но точно не микроядро
источник

GK

Gennadiy Kruglov in Архитектура ИТ-решений
То есть, экосистема, это точно не микроядро :)
источник

MS

Maxim Shalomovich in Архитектура ИТ-решений
Andrei Soloschak
По-моему разговор ушел куда-то в сторону. Использование слова платформа в разных контекстах может быть разным. Обычным означает нижележащий фундаментальный уровень. В контексте современных IT-систем более удачное слово это экосистема. Оно позволяет однозначно отделить данный подход от рассширяемых систем вроде 1С.
Да, и собственно изначально речь шла о том, что BPM-системы ригидны и не могут реагировать на изменения. Так вот, мне кажется, что если BPM-система построена именно по принципу таких платформ\микроядер\не микроядер, т.е. на основе некой функциональности, которая вызывает обработчики, то можно развивать такую систему эволюционно (у платформы и у обработчиков может и в идеале должен быть разный жизненный цикл развития).
источник

GK

Gennadiy Kruglov in Архитектура ИТ-решений
Maxim Shalomovich
Да, и собственно изначально речь шла о том, что BPM-системы ригидны и не могут реагировать на изменения. Так вот, мне кажется, что если BPM-система построена именно по принципу таких платформ\микроядер\не микроядер, т.е. на основе некой функциональности, которая вызывает обработчики, то можно развивать такую систему эволюционно (у платформы и у обработчиков может и в идеале должен быть разный жизненный цикл развития).
У BPMS и процессов разный жизненный цикл. У процессов и сервисов, которые они вызывают (orchestration) тоже разный жизненный цикл. Есть версионное обновление процессов. Не так уж и ригидны BPM системы
источник

AS

Andrei Soloschak in Архитектура ИТ-решений
Maxim Shalomovich
Да, и собственно изначально речь шла о том, что BPM-системы ригидны и не могут реагировать на изменения. Так вот, мне кажется, что если BPM-система построена именно по принципу таких платформ\микроядер\не микроядер, т.е. на основе некой функциональности, которая вызывает обработчики, то можно развивать такую систему эволюционно (у платформы и у обработчиков может и в идеале должен быть разный жизненный цикл развития).
Проблема в том, что для того, чтобы это все заработало должна быть реализована критическая масса обработчиков (сервисов). То есть сначала мы пишем сервисы на все случаи жизни, а потом строим на их основе бизнес-процессы. Такой подход нельзя назвать эволюционным
источник

GK

Gennadiy Kruglov in Архитектура ИТ-решений
Andrei Soloschak
Проблема в том, что для того, чтобы это все заработало должна быть реализована критическая масса обработчиков (сервисов). То есть сначала мы пишем сервисы на все случаи жизни, а потом строим на их основе бизнес-процессы. Такой подход нельзя назвать эволюционным
Можно пойти разными путями. Строить процессы и писать сервисы параллельно (контракты + стабы). Впрочем, по существу, согласен
источник

MS

Maxim Shalomovich in Архитектура ИТ-решений
Andrei Soloschak
Проблема в том, что для того, чтобы это все заработало должна быть реализована критическая масса обработчиков (сервисов). То есть сначала мы пишем сервисы на все случаи жизни, а потом строим на их основе бизнес-процессы. Такой подход нельзя назвать эволюционным
Да, поэтому я и заговорил про платформенный подход и инверсию управления. В этом случае разработка идет не от сервисов, которые потом оркеструются бизнес-процессом, а наоборот - от платформы реализации бизнес-функциональности (в случае коробочных BPMS - настраивамой, в случае кастомных - думаю максимально абстрактных, но реализующих ключевые business capabilities). А сервисы-обработчики разрабатываются позднее, заменяются один другим, развиваются и т.д.
Хотя соглашусь, что это также достаточно сложно, но более гибко
источник

MS

Maxim Shalomovich in Архитектура ИТ-решений
Andrei Soloschak
Проблема в том, что для того, чтобы это все заработало должна быть реализована критическая масса обработчиков (сервисов). То есть сначала мы пишем сервисы на все случаи жизни, а потом строим на их основе бизнес-процессы. Такой подход нельзя назвать эволюционным
В общем ключевая идея, с которой я начал обсуждение, описана тут: https://mxsmirnov.com/2017/04/13/evolutionary-architecture/ Чтобы не играть в испорченный телефон))
источник

AS

Andrei Soloschak in Архитектура ИТ-решений
Под ядром в статье имеется в виду совсем не microkernel, а скорее некоторый Фасад который будет постепенно рефакторится. Ведь речь идет об эволюционной архитектуре
источник

AS

Andrei Soloschak in Архитектура ИТ-решений
Вообще понятие архитектуры уже вышло за рамки "принятия важных решений". Основная задача архитектора - отложить принятие важных решений на как можно более долгий срок. Тем самым обеспечив эволюционное развитие. Выбирая то или иное решение нужно всегда думать о том как оно будет изменено (planned obsolescence)
источник

MS

Maxim Shalomovich in Архитектура ИТ-решений
Andrei Soloschak
Под ядром в статье имеется в виду совсем не microkernel, а скорее некоторый Фасад который будет постепенно рефакторится. Ведь речь идет об эволюционной архитектуре
По мне так описанное в статье ядро отлично коррелирует с паттерном микроядра (The Microkernel architectural pattern applies to software systems that must be able to adapt to changing system requirements. It separates a minimal functional core from extended functionality and customer-specific parts. The microkernel also serves as a socket for plugging in these extensions and coordinating their collaboration. ) Но мы это уже обсудили, спорить не буду)
источник

MS

Maxim Shalomovich in Архитектура ИТ-решений
Andrei Soloschak
Вообще понятие архитектуры уже вышло за рамки "принятия важных решений". Основная задача архитектора - отложить принятие важных решений на как можно более долгий срок. Тем самым обеспечив эволюционное развитие. Выбирая то или иное решение нужно всегда думать о том как оно будет изменено (planned obsolescence)
Да, соглашусь. И тем сложнее становится ответить на вопрос, заданный в этом чате несколько дней назад - про архитектуру и задачи архитектора)
источник

AS

Andrei Soloschak in Архитектура ИТ-решений
Maxim Shalomovich
По мне так описанное в статье ядро отлично коррелирует с паттерном микроядра (The Microkernel architectural pattern applies to software systems that must be able to adapt to changing system requirements. It separates a minimal functional core from extended functionality and customer-specific parts. The microkernel also serves as a socket for plugging in these extensions and coordinating their collaboration. ) Но мы это уже обсудили, спорить не буду)
Я допустил некоторую неточность в формулировке. Здесь еще имеется в виду наличие базовой инфраструктуры (framework) на базе которого строится система. Но это не microkernel архитектура, а именно базовый framework платформы, его ключевые сервисы.
источник

MS

Maxim Shalomovich in Архитектура ИТ-решений
Andrei Soloschak
Я допустил некоторую неточность в формулировке. Здесь еще имеется в виду наличие базовой инфраструктуры (framework) на базе которого строится система. Но это не microkernel архитектура, а именно базовый framework платформы, его ключевые сервисы.
Ну в целом - отвлекаясь от терминов - именно такой подход к дизайну и помогает достичь целей откладывания принятия "важных решений". Так что проблема адаптируемости к различным требованиям при сохранении ключевой функциональности (базовой бизнес-архитектуры?) тоже отчасти решается
источник

AS

Andrei Soloschak in Архитектура ИТ-решений
Я на самом деле не сразу понял о чем вы. Идет некоторое сравнение платформы на базе MSA и с некоторым распределенным Microkernel. Сравнение думаю валидное, но ограничений накладываемых на сервисы ("плагины") гораздо меньше.
источник

AS

Alexander Samarin in Архитектура ИТ-решений
Maxim Shalomovich
Да, поэтому я и заговорил про платформенный подход и инверсию управления. В этом случае разработка идет не от сервисов, которые потом оркеструются бизнес-процессом, а наоборот - от платформы реализации бизнес-функциональности (в случае коробочных BPMS - настраивамой, в случае кастомных - думаю максимально абстрактных, но реализующих ключевые business capabilities). А сервисы-обработчики разрабатываются позднее, заменяются один другим, развиваются и т.д.
Хотя соглашусь, что это также достаточно сложно, но более гибко
В BPMs разработка идет от конкретного процесса который создает много своих экземпляров как микросервисы которые вызывают остальные микросервисы которые либо уникальные либо из общей платформы...
источник

AS

Alexander Samarin in Архитектура ИТ-решений
источник
2017 June 10

AS

Alexander Samarin in Архитектура ИТ-решений
Maxim Smirnov
О процессах и идее микроядра: думаю, что дело не в платформе, а в подходе к дизайну. Часто создатель процесса считает своим долгом точно прорисовать все активностии. Потом такой процесс усложняется, т.к. реализация конкретного экзеспляра приносит что-то новое и очень скоро из модели процесса получается "схема старого телевизора" Это не всегда оправдано. Иногда лучше сделать некий "базовый" процесс - просто набор стадий, а детализацию работ внутри стадий оставить на потом. По-сути, мы говорим о таком процессе(скорее кейсе) как о базовом классе из которого можно наследовать конкретные детализации процесса для разных частных случаев. Реализацию такого процесса можно разбить по системам: основные вехи отслеживать в одной, а конкретные задачи делать в других. Но это, скорее, полезный "побочный эффект"
Отличительная черта этого подхода, соситит в том, что точно известно, когда старые версии (и варианты) полностью "отмирают" и могут быть "зачищены". Это основано на том, что бизнес решает, какие версии (и варианты) модели процесса ужЕ не нужны и надо дождаться когда закончаться их экземпляры.
источник