Всем известно, что "Сеть - это вычислитель (TM)". Компьютер то есть. Я так думаю - один, большой. На всех сразу. А если это так, этот компьютер надо как-нибудь назвать. Название "Internet" не годится, потому что это все-таки сеть. И не просто сеть. Сеть Сетей. Information SuperHighway. "Intranet" тоже не подходит. Потому как пока до конца не понятно, что это. То ли система, выполненная в технологии сетей, то ли наоборот. Поэтому предлагаю назвать этот компьютер коротко и ясно: "Extranet". И не только назвать. Но и построить. Выступить Главным Архитектором. Фон Нейманом, так сказать.

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

Перво-наперво разберемся с АЛУ (Арифметико-Логическим Устройством). С этим проблем нет. Это есть во всех существующих компьютерах. За прошедшие пятьдесят лет вычислительных мощностей создано столько, что не сосчитать. Все связи между ними (то, что у фон Неймана нарисовано линиями в изображении архитектуры) - современные каналы связи. Работают они, я думаю, понадежнее схем коммутации какого-нибудь ENIAK'а. То, что таких устройств много - ничего не значит. Можно построить из них конвейеры, слабосвязанные системы, системы массового параллелизма или что-нибудь еще.

Идем дальше. Устройство управления. С этим сложнее. Обобщить опыт предшественников довольно трудно. Необходимо проведение дальнейших исследований в направлении создания распределенных систем управления. Скорее всего, эти системы будут программными. Или микропрограммными. По отношению к большому компьютеру. А микропрограммные - это уже гораздо лучше. Это мы знаем и умеем.

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

Что еще? Устройства ввода-вывода. Основным таким устройством будет Extranet-терминал. Именно Extranet, а не Internet. Потому, что терминал может быть у хост-компьютера, может быть X-терминал, но не может быть терминала у сети. Такие устройства, скорее всего, вот-вот появятся, и будут, как и положено терминалам, недорогими, надежными, эргономичными и простыми в эксплуатации. Помимо терминалов, будет существовать еще несколько типов устройств ввода - видеокамеры, аудиомикрофоны, фотоаппараты, сканеры и т.д., и вывода - видеомагнитофоны, музыкальные центры, устройства для печати фотографий, станки с числовым программным управлением и, может быть, принтеры.

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

Поговорим теперь о программной стороне дела.

Срочно нужно определиться с системой команд. Предлагается не использовать программирование в двоичных кодах, а сразу перейти к мнемоническим языкам. Судя по всему, претендент на такой язык уже есть. О нем сейчас столько говорят, что не знать про него никак нельзя. Язык Ямайка. Или Фиджи. Не помню точно названия. Да и не в названии суть. Главное, почти все пришли к выводу, что это то, что надо. Простой, мол, язык. Это хорошо. Язык ассемблера и должен быть простым и не содержать темных мест. Переносимый. Это, конечно, тоже хорошо, но не нужно. Переносить некуда. Компьютер-то один. Производительный язык. Это надо.

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

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

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

Недостатки, конечно же, тоже есть. Но я о них говорить не буду, оставлю это критикам.

P.S. Если я что-то перепутал в терминологии фон Неймана, приношу извинения. Подзабывать стал. А времени на перечитывание классиков остается все меньше и меньше.

P.P.S. Internet, как известно, начинался в 1969 году. Под другим именем. Фон Нейман предложил свою архитектуру гораздо раньше. В обоих случаях было совершенно неочевидно, что из этих затей что-нибудь получится. Получилось здорово. В связи с этим, если лет через двадцать-сорок удастся построить один большой компьютер на всех, прошу считать меня его Главным Архитектором, впервые в истории предложившим развернутую архитектуру такого устройства и придавшим огромный импульс исследованиям в этом направлении :-)


Андрей Волков - главный редактор журнала "Системы Управления Базами Данных". С ним можно связаться по электронной почте: volkov@osp.ru.