[Перевод] Непрерывность функционирования систем жизнедеятельности: Совокупность циклов обратной связи

ddb63a2ee1763ac01f23838abc5ba02d.png

Мое личное исследование о происхождении жизни в разрезе системной инженерии.

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

В первой половине исследования я расскажу вам о том, как разработчики программного обеспечения мыслят в рамках вычислительной среды, в которой работает их программа. Для обеспечения непрерывной работы системы необходимо наличие множества глубоко проработанных функций.

При рассмотрении вопроса о непрерывности функционирования системы применительно к процессам жизнедеятельности становится совершенно очевидным, что процессы жизнедеятельности не могут быть налажены с помощью только одной или нескольких функций. Непременно должен быть какой-нибудь принцип, выражающий необходимость множество различных функций.

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

Именно здесь и возникает новая загадка о том, какая система связывает воедино множество высокоразвитых функций. Во второй половине статьи мы вернемся к гипотезе о происхождении жизни, которую я излагал в других статьях, и рассмотрим, как интерпретировать эту новую загадку.

Вычислительная среда с точки зрения разработчиков программного обеспечения

Инженеры-программисты часто относятся к вычислительной среде, в которой работает программное обеспечение, как к чему-то само-собой разумеющемуся. Особенно склонны так думать те, кто только что освоил азы программирования в школе или создает программное обеспечение в качестве хобби. Даже те, кто разрабатывает прикладное программное обеспечение, работающее на ПК и смартфонах, или бессерверные приложения в облаке, а также фронтенд-части, работающие в браузерах, могут быть узниками такого мышления.

С другой стороны, те, кто разрабатывает программное обеспечение для встраивания в продукты или работы на серверах, не упускают из внимания вычислительную среду, в которой работает программное обеспечение. Они четко осознают, что разрабатывают систему, учитывая не только программное, но и аппаратное обеспечение.

При осознанном рассмотрении вычислительной среды программного обеспечения и восприятии его как системы необходимо уделять пристальное внимание обеспечению правильной работы системы. Системы включаются и могут быть намеренно или случайно выключены, а аппаратное обеспечение может частично или полностью выйти из строя. Два этих разных сбоя могут даже случайно произойти одновременно.

Непрерывность работы в программных системах

В случае систем, работающих на серверах, системные операторы или администраторы серверов должны поддерживать среду для правильного функционирования системы. Разработчики программного обеспечения должны реализовать функции, которые автономно обнаруживают аномалии или неожиданные события и уведомляют об этом операторов или администраторов.

Кроме того, следует предусмотреть функции, позволяющие легко понять причину неполадок, оставлять рабочие записи независимо от их возникновения, а также функции очистки второстепенной информации для операторов или администраторов. Также следует предусмотреть функции резервного копирования или дублирования данных на случай их повреждения.

Разработчикам встроенного программного обеспечения приходится учитывать даже больше, чем разработчикам систем на серверах, поскольку они не могут полностью полагаться на операторов или администраторов серверов. Нельзя ожидать немедленного и адекватного вмешательства человека. Поэтому от разработчиков встроенного программного обеспечения требуется еще больше внимания, чем от разработчиков серверных систем. Хотя не все проблемы могут быть решены с помощью программного обеспечения, оно должно поддерживать функциональность автономно, насколько это возможно, и при этом адекватно реагировать на различные ситуации.

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

Сложность непрерывной работы системы

Как было замечено выше, если рассматривать не только программное обеспечение, но и систему, включая среду, в которой работает это программное обеспечение, то становится ясно, что непрерывность работы системы — это очень сложный вопрос.

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

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

Как мы видели ранее, для встраиваемых систем требуются более продуманные вещи. По этой причине, как правило, проектирование и разработка для обеспечения непрерывности работы системы является гораздо более масштабной работой, чем разработка основных функций.

Процессы жизнедеятельности

Учитывая сложность и продуманность механизмов непрерывного функционирования встраиваемых систем, перспектива понимания жизненных процессов тоже смещается.

Живые организмы — это системы, требующие высокой непрерывности работы. Само собой разумеется, остановка работы подразумевает для организмов верную смерть.

Если рассматривать с точки зрения непрерывности работы, то нельзя предположить, что для поддержания жизни достаточно одной или двух серьезных функций, выполненных сложным механизмом.

Даже в деятельности живых организмов должны происходить различные внешние и внутренние изменения, флуктуации и затруднения. Чтобы адекватно реагировать на каждую из них, необходимы функции или механизмы для каждой из них. Например, если существует 100 типов проблем, необходимы функции, способные реагировать на все 100 типов.

Типов колебаний и флуктуаций, с которыми сталкиваются живые организмы, не то чтобы не 100 — это даже вообще не тот порядок. Даже для одноклеточного организма может быть вполне нормально иметь более 10 000 детальных функций.

Что объединяет функции в жизненных процессах

Необходимость наличия множества различных функций усложняет понимание жизненных процессов. С другой стороны, для меня было открытием, что процессы жизнедеятельности — это совокупность многочисленных функций, а не одна-единственная супер-функция.

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

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

Помимо типов и конкретных механизмов функций, необходимых для продолжения работы, если объединение множества функций является требованием к организмам, то должен существовать механизм объединения этих функций. Каков же механизм, объединяющий функции, необходимые организмам для существования? Это мой следующий важный вопрос.

Циклы обратной связи

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

Считается, что эти циклы обратной связи изначально были процессами, сформированными неживыми существами на древней Земле до появления жизни.

На Земле существует множество прудов и озер, между которыми циркулирует вода. В этих прудах и озерах накапливаются химические вещества и, получая энергию от таких источников, как солнце или геотермальное тепло, вступают в химические реакции, образуя новые химические соединения. По мере того как эти химические вещества перемещаются в рамках круговорота воды, включающего речной поток, испарение, движение облаков и выпадение осадков, образуются циклы обратной связи.

Отправной точкой моей гипотезы является то, что эти циклы обратной связи развивались путем постепенного замещения входящих в них элементов более сложными химическими соединениями. В конечном итоге, согласно моей гипотезе, эти химические вещества оказались заключенными в клеточную мембрану, что привело к появлению прообраза жизни.

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

Однако если верить в то, что для жизни требуется совокупность множества функций, то одинокий цикл обратной связи все равно будет не более чем неживым явлением. Это все равно что сказать, что один-единственный белок сам по себе не является жизнью.

В связи с этим возникает загадка, как многочисленные циклы обратной связи, необходимые для возникновения жизни, были эффективно объединены, сделав возможным функционирование клетки.

Процесс формирования совокупности циклов обратной связи

Одна из возможностей, которую я рассматриваю, заключается в том, что циклы обратной связи могут формировать зависимость друг от друга, создавая более сложную циклическую структуру.

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

Ключевой вопрос заключается в том, зачем понадобилась такая сложная структура, в которой циклы обратной связи образуют друг с другом более сложные взаимозависимые циклы. На понимание этого вопроса может натолкнуть тот факт, что ранние циклы обратной связи использовали круговорот воды на Земле для перемещения химических веществ, в то время как живые организмы от этого не зависят.

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

Когда это скопление неживых циклов обратной связи, зависящее от круговорота воды на Земле, стало независимым, именно это должно было послужить отправной точкой для жизни. Таким образом, моя гипотеза заключается в том, что независимость от круговорота воды на Земле могла быть этапом перехода процессов от неживых к живым.

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

Такова моя гипотеза о процессе формирования и принципах работы совокупностей циклов обратной связи с многочисленными функциями, необходимыми для поддержания устойчивой активности.

В заключение

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

Однако возможность использования новейших программных технологий — это все-таки поверхностный вопрос для разработчиков систем. Как мы видели, от разработчиков встраиваемого программного обеспечения требуются глубокие знания, практические навыки и умения в области автономности среды исполнения системы, причем в большей степени, чем от других разработчиков программного обеспечения.

Различные функции, необходимые для реализации таких автономных систем, будь то программное обеспечение, работающее на серверах, или прикладное ПО на ПК и смартфонах, являются полезными функциями, если ими оснащены. При правильном проектировании разработчики встроенного программного обеспечения никогда не будут отставать в своих инженерных навыках.

В этой статье мы сосредоточились на сложной проблеме обеспечения автономной непрерывности работы, над которой трудятся разработчики встраиваемых систем, учитывая особенности каждого нового продукта и его вычислительной среды. На основе понимания этой проблемы я пришел к размышлениям о происхождении жизни — теме моих личных изысканий.

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

Если трудности остаются, неудивительно, что в них есть какая-то важная мудрость или открытие, на котором нам следует сосредоточиться.

В завершение приглашаем всех желающих сегодня в 20:00 на открытое занятие, на котором научимся выбирать схему питания для разрабатываемого устройства. Также получим понимание о выборе компонентов и научимся разрабатывать базовый преобразователь напряжения с учетом требований КПД и ЭМС. Записаться можно по ссылке.

© Habrahabr.ru