Решения, принятые по соглашению
Хороший пример открытой системы представляет собой электронная банковская система. Она имеет автоматические кассовые аппараты, которые позволяют снимать деньги со счета за тысячи километров от банка, где открыт счет. Система постоянно пополняется новыми кассовыми аппаратами.
Решения по поводу того, какая денежная операция допустима, а какая нет, принимаются на основе договора, подписанного между банком и вкладчиками. Очень часто договор не позволяет вкладчику брать сумму, превышающую его вклад, даже если гарантировано, что впоследствии на его счет поступят вклады, достаточные для компенсации.
Решение о том, в каких случаях можно снять деньги со счета, а в каких нет, нельзя принять на основании полной информации о структуре банковских ЭВМ и входной информации с кассовых аппаратов. Поэтому такое решение не может быть логически обосновано. Предположим, например, что на счету 1 имеется 1000 долл., а на счету 2 —2000 долл. и у них есть общий резерв кредита на 3000 долл. Если два запроса — на выдачу 4000 долл. каждый — придут практически одновременно от обоих вкладчиков, то на один из запросов последует отказ, а второй будет удовлетворен, хотя заранее предусмотреть, каким будет это решение, невозможно.
Данный пример показывает, как принимает решение открытая система, хотя при этом невозможно провести и какое-либо доказательство. Решение принимается не путем логического обоснования, а на основании соглашения действовать определенным образом. Здесь обнаруживается расхождение между теорией, используемой при создании открытых систем, и их реальной работой.
Обычно теория обосновывает практику: например, банковский механизм основывается на теории финансового механизма. Однако эта теория не определяет реального хода операций с банковскими счетами. Банковские операции определяются очередностью, в которой происходят асинхронные события внутри системы. Каждая операция сложной открытой системы уникальна.
В этом примере проявляется разница между классической теорией рекурсивных функций и теориями, разработанными для моделирования открытых систем.