Как из слабо связанных систем получился Интернет?
Современные информационные технологии обязаны своим появлением и развитием не только инженерной мысли конца прошлого века – начала нынешнего века.
p, blockquote 1,0,0,0,0 -->
Данному развитию было посвящено много научно–теоретических работ. Успешные научные исследования дали огромный толчок развитию современных компьютерных и сетевых технологий.
p, blockquote 2,0,0,0,0 -->
Без них мы сегодня не имели бы многие современные средства коммуникации, например, такие как Интернет.
p, blockquote 3,0,0,0,0 -->
Об одном таком исследовании, которое проводилось в 80-е годы, точнее о борьбе идей и методов, развернувшейся тогда, хочется рассказать в данной статье. Тем более, что это позволит объяснить, как появился Интернет.
p, blockquote 4,0,0,0,0 -->
С момента появления практически работающих электронно-вычислительных машин ученые и практики в области информатики работали над тем, чтобы эти машины можно было объединять в так называемые многомашинные комплексы.
p, blockquote 5,0,0,0,0 -->
Справедливо предполагалось, что такие комплексы будут намного производительнее и эффективнее, чем каждая отдельная вычислительная машина. При этом рассматривались различные возможные варианты объединения компьютеров между собой.
p, blockquote 6,0,0,0,0 -->
Первый возможный вариант – это объединение между собой нескольких процессоров, работающих внутри одной вычислительной машины.
Этот подход имел наименование «многопроцессорные комплексы». Технически этот подход было реализовать несложно. Но программистам пришлось серьезно потрудиться, чтобы сделать такое программное обеспечение, которое в максимальной мере использовало бы эффект от совместной работы процессоров.
p, blockquote 8,0,0,0,0 -->
Нужно было добиться того, чтобы процессоры работали одновременно и, главное, параллельно. Но для этого ход выполнения программы требовалось разделить на две или более подпрограммы (в зависимости от числа одновременно работающих процессоров), с тем, чтобы каждая подпрограмма выполнялась с помощью своего «собственного» процессора.
p, blockquote 9,0,0,0,0 -->
Кроме того, такие подпрограммы должны были в ходе обработки данных обмениваться между собой данными, что означало, что каждый процессор может сделать запрос другому процессору, чтобы получить от него требуемый ответ. Но ведь этот другой процессор в момент запроса может обрабатывать собственную подпрограмму или другой запрос от другого процессора, и не сможет ответить на запрос.
p, blockquote 10,0,1,0,0 -->
Такая ситуация означала, что процессор, который запросил данные от второго «занятого» процессора, будет «простаивать» в ожидании ответа. А значит, быстродействие многопроцессорного комплекса может в итоге сойти на нет, так как все процессоры станут ждать, когда освободится какой-нибудь единственный и наиболее перегруженный процессор.
p, blockquote 11,0,0,0,0 -->
В итоге получалось, что быстродействие многопроцессорного комплекса может равняться быстродействию единственного процессора, что полностью дискредитировало идею многопроцессорных комплексов.
p, blockquote 12,0,0,0,0 -->
Принцип связи процессоров и вычислительных машин, когда каждый процессор (или компьютер) обязаны, несмотря ни на что, ответить другому процессору (или компьютеру) получил наименование «сильно связанные системы».
Заметьте, что пока это нам не объясняет, как появился Интернет. Наука и практика продолжали исследования данного принципа и оптимальных возможностей для его реализации. Это в итоге привело к созданию многопроцессорных комплексов и супер-ЭВМ, что в свою очередь, позволило решать сложные задачи, требующие большого количества вычислений (военные задачи, прогнозы погоды и др.)
p, blockquote 14,0,0,0,0 -->
Но нашлись противники «сильно связанных систем», видевшие в этом тупиковый путь развития, который в перспективе не позволял увеличивать число связанных между собой компьютеров свыше определенного, причем, совсем незначительного значения.
p, blockquote 15,0,0,0,0 -->
Действительно, сильно связанные системы могут успешно работать, если число компонентов такой системы не превышает буквально несколько единиц, может быть, десятки, но не более того.
p, blockquote 16,0,0,0,0 -->
И оппоненты сильно связанных систем разработали и опубликовали противоположные принципы так называемых «слабо связанных систем». Итак, принципы слабо связанных систем формулировались следующим образом.
p, blockquote 17,0,0,0,0 -->
Любой компьютер (справедливости ради надо сказать, что теоретики не говорили компьютер, а употребляли вместо этого термин «элемент системы») может послать запрос любому другому компьютеру.
Это был первый постулат, который совпадал с постулатами «сильно связанных систем».
p, blockquote 19,0,0,0,0 -->
Второй постулат гласил:
p, blockquote 20,1,0,0,0 -->
Компьютер, получивший запрос от другого компьютера имеет право отклонить запрос.
Этот второй постулат полностью отрицал «сильно связанные системы», так как разрешал каждому компьютеру быть абсолютно независимым от других «собратьев».
p, blockquote 22,0,0,0,0 -->
Специалисты в области информатики, выросшие на принципе сильно связанных систем, не понимали, какую практическую пользу может принести второй постулат, который, по их мнению, полностью разрушал связи между компьютерами, разбивал на самостоятельные единицы многомашинный комплекс, исключая совместную работу компьютеров. Из-за такого сопротивления исследования слабо связанных систем превращались в чисто теоретические, не имеющие перспективного практического применения.
p, blockquote 23,0,0,0,0 -->
Но тут этим принципом слабо связанных систем заинтересовались военные. Они посмотрели на это совершенно с другой стороны, с позиции надежности и работоспособности системы.
p, blockquote 24,0,0,0,0 -->
Так, если один или несколько компьютеров в слабо связанной системе по тем или иным причинам выйдут из строя, то вся система в целом останется работоспособной.
Для военных это было очень важно, так как они ищут такие решения, которые бы работали в самых экстремальных условиях.
p, blockquote 26,0,0,0,0 -->
Поэтому военные подключились к решению задачи, в результате чего специалисты по информатике и вычислительной технике смогли разработать протоколы взаимодействия компьютеров, которые позволяли компьютерам работать совместно друг с другом, но при этом обеспечивая полную автономность и независимость каждого из них.
p, blockquote 27,0,0,0,0 -->
Появились сети, которые были не только надежными, но их еще можно было неограниченно расширять, подключая к ним все новые и новые компьютеры. А вот это уже горячо, очень горячо по отношению к вопросу «Как появился Интернет». Ведь если бы мы имели дело с сильно связанными системами, то такие комплексы давно бы отказали по причине перегрузки.
p, blockquote 28,0,0,0,0 -->
Но, к счастью, принципы слабо связанных систем, реализованные на практике, обеспечили возможность объединения в сети неограниченного числа компьютеров.
Остальное дело было только за инженерами, которым нужно было придумать, как технически это можно делать, особенно если компьютеры находятся на удалении друг от друга.
p, blockquote 30,0,0,1,0 -->
И программистам было над чем поработать, чтобы все связанные между собой компьютеры понимали протоколы взаимодействия друг с другом. Но это были уже чисто инженерные решения, которые человечество научилось блестяще реализовывать на рубеже нового столетия.
p, blockquote 31,0,0,0,0 -->
Сегодня, пользуясь Интернетом, мы даже не задумываемся, что он стал итогом многолетней работы ученых и практиков, результатом борьбы научных и практических методов, столкновения мнений ученых и специалистов, и даже борьбой целых «школ», которые пропагандировали и внедряли свои подходы в практику.
p, blockquote 32,0,0,0,0 -->
Все закончилось очень хорошо, в пользу обычных пользователей, которым был предоставлен удобный сервис, позволяющий дистанционно подключаться к любым компьютерам во всем мире, при условии, что эти компьютеры технически и программно объединены в единую информационную сеть.
p, blockquote 33,0,0,0,0 -->
Обращаясь к тем или иным ресурсам Интернет, пользователи не задумываются о том, как происходит соединение с интересующим их сервером. А ведь на пути каждого запроса и каждого ответа стоит множество объединенных в единую сеть компьютеров, каждый из которых в момент запроса или ответа может быть занят другим делом, и не иметь возможности обработать запрос, может быть сломан или, наконец, просто выключен.
p, blockquote 34,0,0,0,0 -->
И, тем не менее, информация проходит по сети, используя другие каналы, проходя через другие компьютеры и серверы. И все это происходит благодаря реализованному на практике принципу слабо связанных систем, который, как это порой бывает, в момент его изобретения и опубликования был встречен учеными и практиками скептически и порой категорически отвергался.
p, blockquote 35,0,0,0,0 -->
Слава тем, кто своими мыслями и поступками может перевернуть привычные представления, доказать жизнеспособность своих идей, не отступиться перед трудностями, и добиться убедительных результатов, которыми потом могут пользоваться все люди, включая тех скептиков и активных противников, которые ранее выступали против подобных идей и планов!