ИННОВАЦИИ
Благодаря тому, что американские марсоходы Spirit и Opportunity опустились на поверхность Марса и начали передавать исследовательские данные и изображения, общественность получила удивительную возможность совершать виртуальные прогулки по Красной планете, проходя их маршрутами.
Имея в своем распоряжении персональный компьютер и скоростной доступ в Интернет, а также пакет программ, который используется в NASA для навигации вездеходов Spirit и Opprtunity и трехмерной визуализации изображений, полученных с Марса, вы можете на время почувствовать себя водителем марсохода.
ПО Maestro, созданное в Калифорнийском технологическом институте (CalTech) и написанное на языке Java, доступно на веб-сайтах http://mars.telascience.org или http://wits.sdsu.edu , открытых Аэрокосмическим агентством для энтузиастов, следящих за полетами на Марс. Инсталляционный общедоступный пакет Maestro занимает 38 Мб и имеет некоторые ограничения в функциональных возможностях по сравнению с полной версией, используемой самой NASA. Интерфейс программы позволяет задавать путь прохода по марсианской поверхности, изменять настройки видеокамер, давать команды марсоходу по ходу движения. Само собой разумеется, вы можете командовать только виртуальной моделью, созданной на основе реального транспортного средства. Следует учесть, что NASA предоставило видеоизображения высокого качества, но с разрешающей способностью более низкой, чем при передаче непосредственно с Марса. На веб-сайте также публикуются модули обновления, содержащие данные о марсианских экспедициях. На сегодняшний день доступно 9 файлов, переданных со Spirit, и 7 - с марсохода Opportunity.
Официальный веб-сайт (http://marsrovers.jpl.nasa.gov) находится на серверах NASA. Веб-сайт Maestro создан и поддерживается совместными усилиями NASA и Центра супервычислений Калифорнийского государственного университета в Сан-Диего. После первых дней работы этого веб-сайта его создатели столкнулись с серьезной проблемой: наплыв посетителей оказался неожиданно большим, и в итоге сайт не справлялся с нагрузкой. Помощь в его модернизации оказала компания Sun Microsystems, предоставившая бесплатно комплект blade-cерверов Sun Fire B1600.
Аппаратное обеспечение Maestro теперь представляет собой один модуль типоразмера 3U, содержащий 16 лезвий и четыре основных архитектурных компонента веб-сервера Maestro. Кластер серверов под ОС Red Hat Enterprise Linux Server 9 состоит из шести однопроцессорных лезвий Sun Fire B100x на базе процессоров AMD Athlon XP. На нем установлены БД Maestro на основе СУБД MySQL и системы мониторинга и сбора статистики о серверах, использующие приложения Cricket Graph и RRDtool. На втором комплекте из шести однопроцессорных лезвий Sun Fire B 100 на базе процессора SPARC установлен кластер под управлением OS Solaris 9 для серверов приложений Zope и системы управления информационным наполнением веб-сервера (content management system) Plone. Данное ПО позволяет зарегистрированным пользователям производить монтаж файлов разных экспедиций и аннотировать марсианскую карту и маршруты вездеходов. Роль серверов балансировки сетевого трафика выполняют два лезвия Sun Fire B 10n под управлением ОС реального времени VxWorks. Для обеспечения шифрования трафика установлены два SSL-прокси-сервера (Secure Sockets Layer) Sun Fire B10p.
Сотрудник Лаборатории реактивного движения (Jet Propulsion Laboratory) NASA Джон Грэм и его коллега - ученый-геолог Эрик Фрост подтвердили, что появление сайта Maestro, координаторами проекта по созданию которого они являются, не планировалось в рамках марсианской программы NASA. Он был развернут энтузиастами при спонсорской помощи Sun Microsystems и Центра супервычислений университета Сан-Диего недавно, чтобы удовлетворить потребности общественности. ПО с открытым кодом, включающее в себя Red Hat Linux, сервер приложений Zope на языке программирования Python, систему управления контентом веб-сервера Plone, ПО мониторинга и сбора статистической информации Cricket Graph и RRDtool, СУБД MySQL, позволили организовать сайт в считанные дни. Серверные лезвия несут идентичный набор приложений, благодаря чему можно распараллелить нагрузку и обеспечить надежность за счет избыточности серверов в кластере. На сегодняшний день сайт посетили представители более чем ста стран мира. В период важных анонсов, связанных с марсианской экспедицией, на веб-сайт поступает порядка трехсот тысяч обращений в секунду.
По плану марсоходы должны проходить 40 м в день. Ежедневно исследователи получают с каждого марсохода порядка 150 Мбит данных. Передатчики, установленные на Spirit и Opportunity, способны передавать сведения непосредственно на Землю на приемные станции NASA, расположенные в пустыне Мохаве (шт. Калифорния, США) и около Канберры (Австралия). Однако прямая трансляция требует больших затрат электроэнергии, поэтому большая часть данных ретранслируется на Землю через искусственные спутники Odyssey и Glo-bal Surveyor, курсирующие на околомарсианской орбите уже несколько лет. Скорость передачи составляет от 3500 до 12 000 бит/c. (Современый аналоговый модем способен передавать до 56 000 бит/c.) Как ни жалко, но марсоходам Spirit и Opprtunity, отдаленным от Земли космическим пространством протяженностью в 240 тыс. км суждено остаться на Марсе навсегда. Flash-диск объемом 200 Мб содержит только управляющие программы по исследованию поверхности Марса и трансляции данных на Землю. Оперативная память бортового компьютера марсоходов составляет 128 Мб. В качестве центрального процессора создатели выбрали PowerPC с тактовой частотой 20 МГц. Глядя на скромные по сегодняшним меркам характеристики вычислительного устройства, не нужно забывать, что проект полета на Марс был начат еще в 1999 г. PowerPC, который устанавливали на Макинтошах в середине 90-х, был проверен временем и выдержал испытания в среде с жестким радиоактивным излучением. Процессорный блок работает под управлением операционной системы реального времени для встраиваемых систем VxWorks производства компании Wind River (Аламеда, шт. Калифорния). Исходный код прикладного ПО марсоходов написан на языке программирования C++.
На сегодняшний день Wind River является крупнейшим поставщиком ОС реального времени для рынка встраиваемых систем. Надо отметить, что компания начала работать с NASA еще в начале 90-х годов. В частности, ее "операционка" была установлена на марсоходе Pathfinder, побывавшем на Красной планете в 1997 г., и на автономном зонде Stardust, после четырехлетнего полета достигшем в январе нынешнего года хвост кометы Wild 2, для того чтобы собрать частицы кометного вещества и доставить их для исследования на Землю. Тем не менее перспективы дальнейшего сотрудничества Аэрокосмического агентства США и компании - лидера на рынке встраиваемых ОС пока не ясны, так как в планы NASA не входит использование VxWorks в автономных вездеходах, готовящихся для следующего полета на Марс.
Как сообщил в своем докладе Брайн Джиованни (ведущий программист-архитектор Sun Microsystems и сотрудник Университета Карнеги - Меллона, шт. Пенсильвания), сделанном им на форуме "Встраивамые системы и системы реального времени", проходившем с 28 апреля по 1 мая 2003 г. в Остине (шт. Техас), NASA в рамках проекта с рабочим названием Goldengate планирует подготовить для следующей экспедиции марсоходы, управляемые ОС Linux.
Университет Карнеги - Меллона, Sun и NASA работают совместно над созданием системы информационного обеспечения межпланетной миссии (Mission Data System) для новой серии марсоходов Smart Lander, запуск которых намечен на 2009 г. Необычность проекта Goldengate состоит в том, что партнеры выбрали язык Java для написания прикладного ПО марсохода.
Как известно, виртуальная машина Java в классической ее реализации не рассчитана на работу в системах реального времени, так как у нее есть три принципиальных недостатка. Во-первых, Java не гарантирует заданного времени отклика на внешние события. Во-вторых, в ее прикладном программном интерфейсе не предусмотрены возможности управления памятью. В-третьих, механизм сбора "мусора" в памяти виртуальной машины срабатывает в самые непредсказуемые моменты, потребляя при этом значительные ресурсы центрального процессора, что замедляет скорость реакции остальных программ.
Год назад Sun Microsystems предложила спецификацию Java для систем реального времени (Real Time Specification Java, RTSJ). Спецификация разработана в сотрудничестве с Университетом Карнеги-Меллона и компанией TimeSys. Ключевым отличием RTSJ от классической виртуальной машины Java является дополнительная область памяти, предназначенная исключительно для процессов реального времени. Программы на базе RTSJ полностью контролируют этот участок памяти и наделены более высоким приоритетом по сравнению с механизм сборки "мусора" и программами, работающими в режиме классической виртуальной машины Java.
Первым создателем такой машины, соответствующей спецификации RTSJ, является фирма TimeSys. В интегрированную среду разработки программ TimeStorm для языков Java, C и C++ она включила инструментальный набор программиста (SDK), содержащий реализацию виртуальной машины реального времени Java под названием JTime. Компания сделала реализации JTime для ОС Linux, используемой в процессорных платформах Intel Pentium, PowerPC, MIPS, SH, ARM и XScale. Специалисты TimeSys полагают, что JTime можно применять для построения систем реального времени на базе любого ядра Linux для указанных выше процессоров, однако рекомендуют свою ОС реального времени TimeSys Linux/Real-Time как проверенное решение, используемое многими компаниями (например, Boeing, MKS Instruments и Siemens AG) в своих коммерческих системах.
Лаборатория реактивного движения NASA провела сравнительное тестирование производительности функционально эквивалентных систем управления марсоходами, построенных на базе ОС VxWorks с прикладным ПО, написанным на языках C/C++, и ПО на Java под управлением ОС Linux реального времени производства TimeSys. Результаты тестирования показали, что система на базе Linux не только не уступает в производительности и быстродействии VxWorks, но и превосходит ее. Исследователи из NASA отмечают также, что решающим фактором в пользу выбора Java стала переносимость кода, написанного на этом языке. Программисты могут писать и отлаживать код программ марсохода на обычной рабочей станции, используя стандартную виртуальную машину Java.
На конференции Sun Java One 11 июня 2003 г. разработчик языка Java Джеймс Гослинг представил действующий прототип вездехода-робота Smart Lander Rocky 7, созданного в Лаборатории реактивного движения NASA для исследования Марса. "Отец языка Java" является одним из ключевых консультантов NASA по вопросам создания нового поколения марсоходов.
Удачный полет и посадка на Марс вездеходов Spirit и Opprtunity привлекают к теме исследования этой планеты все большее и большее количество компаний и лучших умов США. И это хороший стимул для развития науки и экономики. Полет на Марс - это заслуга разработчиков передовых информационных технологий, избранных для будущего.