...
...

Киберпространство в киберпространстве, или К вопросу о виртуальной реальности

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

В последнее десятилетие средоточием львиной доли интеллектуальных усилий человечества является Всемирная Паутина. Складывается такое впечатление, что на планете объявлен некий неофициальный конкурс - "кто еще что предложит" - по отыскиванию все новых и новых областей применения Интернет. Электронная почта. Электронная коммерция. Дистанционное обучение. Научная интеграция.

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

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

Словом, на таком вот замечательном предположении основывается новая идея концерна San, предложившего миру технологию с поэтическим названием Jini. Термин читается как "джини", с ударением на первый слог. Что конкретно, то есть официально, он обозначает, никому, за исключением, пожалуй, самой San, не известно. В Сети мне удалось откопать такую расшифровку: Java InterNetworking Initiative, но за ее достоверность я бы не поручился. Хотя, если вдуматься, очень даже похоже, так как Jini чрезвычайно сильно опирается на Java.

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

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

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

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

Так вот, если в плане протока Jini специалисты San давно уже успели все буквально "разжевать", то в области инфраструктуры пока белых пятен куда как больше, чем освоенного пространства. Предположим, что до полного и окончательного триумфа Java осталось совсем чуть-чуть и вскоре мы действительно получим и абсолютно надежный (при некоторых условиях, конечно) универсальный язык, и действительно полностью платформо-независимые приложения. Допустим, что нам стоит. Предположим также, что на этой самой "яве" будет написано программное обеспечение, способное выполнять, помимо всего прочего, роль надежной капсулы, способной переносить в себе некую исходную информацию до того компьютера, на котором будет производиться ее обработка. Тем не менее, San так и не смогла дать удовлетворительный ответ на вопрос, кто и как будет заниматься этим самым администрированием.

В протоколах более низкого уровня сия задача решается просто. В TCP/IP сеть просто передает "в никуда" пакеты с некоторым набором вспомогательных характеристик. Среди них номер самого пакета, исходящий и входящий адреса. Получатель, малость подождав и подсчитав полученные пакеты, всегда может запросить повтор недостающих и, тем самым, собрать в итоге все сообщение целиком. Другое дело, что ни сам протокол, ни участвующее в передаче оборудование, совершенно никак не связаны с содержимым пакета. Что там внутри - картинка порнографического содержания или сто тысяч электронных долларов - его никоим образом не касается. Это головная боль самого получателя или отправителя. В случае же с Jini подобное не допустимо. Во-первых, в зависимости от того, "что внутри", нужно искать свободные мощности того или иного приложения. Во-вторых, особенно в случае с графикой, каждая промежуточная перекодировка чревата потерей части исходного изображения, что считается браком в работе. Следовательно, где-то должен быть создан своего рода централизованный диспетчерский пункт, на манер сервера DNS, который возьмет на себя управление распределением работы и последующим сбором результата. Оно бы ничего, если бы не одно "но". Отсутствие связи между отправителем и получателем (даже если предположить полное ее отсутствие) самой информации никакого ущерба не наносит. В конце концов браузер можно еще раз попросить перечитать зависшую страницу или почтового клиента - заново опросить почтовый ящик. Что же произойдет с Jini, если, к примеру, сервер управления даст сбой и "забудет", что и куда он отправлял для обработки?

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

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

Сейчас просто мода какая-то на новые идеи распределенных вычислений в Интернет. Несколько лет назад в качестве идеального решения "XXI века" преподносилась технология COBRA. За ней - DCOM. Отметилась на этом поприще и Microsoft Corporation, усиленно проталкивая свою идею Universal PnP. А еще есть Millenium, Voyager и ObjectSpace.

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

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

Александр Запольскис

© Компьютерная газета

полезные ссылки
Оффшорные банковские счета