Взаимодействующие системы
Рассмотрим работу двух приложений – калькулятора и поисковой системы (рис. 12). И в первом и во втором случае, при нажатии одной из кнопок на панели управления первоначальный запрос, в виде цепочки символов, поступает на вход соответствующей программы, в результате чего порождаются множества процессов, связанных с исполнением детерминированных дискретных последовательностей команд. Наш практический опыт дает нам основание предполагать, что для всех одинаковых входных цепочек, поступающих на вход различных калькуляторов, независимо от времени и места, результат должен повторяться. В случае с поисковыми системами, все происходит с точностью до наоборот – мы ожидаем, что одна и та же входная цепочка символов на входе будет скорее всего приносить нам различные результаты в различных поисковых системах и в разное время.
Рис. 12. Алгоритмический калькулятор и неалгоритмическая поисковая система
И калькулятор, и поисковая система являются программами и, как любые программы, они состоят из точно заданных инструкций, которые как известно, должны всегда приводить к одинаковому результату при одинаковых исходных данных. Очевидно, что в случае поисковой системы новый результат получается каждый раз в результате изменений данных, которые в процессе исполнения длинной последовательности команд поступили на вход одного из программных модулей. Если бы мы захотели, используя, например, методы системного программирования при анализе дампов, мы могли бы, проследив все последовательности команд и событий, точно определить – где произошло это изменение. Однако значительно больше пользы нам может принести ответ на вопрос: существуют ли теоретические основания для различий в этих двух системах, и если да, можно ли построить более эффективную технологию и среду программирования для решения задач обработки данных в Интернет, учитывающую эти различия.
Рис. 13. Взаимодействие системы и среды
Предположим, что среда