Большая часть сентябрьского номера посвящена программному обеспечению встроенных систем. Как ни странно, в этот раз отсутствует традиционный для журнала приглашенный редактор тематической подборки. Видимо, главный редактор счел достаточным свое собственное участие.
Правда, в некотором смысле редакционной, постановочной статьей можно считать первую статью тематического блока, написанную Эдвардом Ли (Edward A. Lee) из Университета Беркли (штат Калифорния). Автор отмечает, что до последнего времени исследователи в основном игнорировали проблематику встроенного программного обеспечения, поскольку оно не являлось достаточно сложным и обобщенным, чтобы затраты на исследования были оправданы. Теперь ситуация меняется.
К исследователям адресован вопрос: как согласовать набор требований предметной области с особенностями физического мира? Как приспособить для этих целей абстракции программного обеспечения, созданные только для того, чтобы работать с данными, соблюдая ограничения реального времени и асинхронность обработки, обеспечивая высокую надежность программного обеспечения? При такой постановке вопроса образуется многообещающая область исследований, включающая новые подходы к асинхронности и реальному времени, а также развитию методов расширения интерфейсов компонентов для обеспечения надежности и адаптивности. Автор приводит характеристики четырех измерений, на основе которых могут проводиться подобные исследования:
- онтологическое (что есть преобразование состояния? что есть процесс? что есть объект? может ли быть компонентом агрегат компонентов? и т.д.);
- гносеологическое (что известно в модели о компонентах? что знают компоненты один о другом? что знают компоненты о времени? и т.д.);
- протокольное (как взаимодействуют компоненты? используются ли механизмы асинхронной передачи сообщений, рандеву, семафоров, мониторов? и т.д.);
- словарное (какова система типов, определяющих возможные сообщения? какие языки или семейства языков используются?).
Эти измерения являются относительно независимыми, и далее в статье на их основе формируется базовый набор понятий для исследований асинхронности, планирования реального времени и прочих проблем, решение которых требуется в мире встроенных программных систем. В заключение автор статьи приводит информацию о решениях, выбранных в проекте Ptolemy университета Беркли.
Следующую статью в тематической подборке представил Майкл Олсон (Michael A. Olson) из компании Sleepycat Software. Статья называется «Выбор и реализация базы данных для встроенной системы» («Selecting and Implementing an Embedded Database System»). Возрастающее распространение использования компьютеров в качестве встроенных систем в существенной степени расширяет масштаб компьютерной технологии. Разнообразие выбора аппаратных платформ и программных средств обладает и достоинствами, и недостатками. С одной стороны, разработчики могут выбрать в точности те средства, которые требуются для приложений. С другой стороны, правильный выбор продуктов может оказаться очень трудным делом. При всех имеющихся различиях встроенные системы обладают многими характеристиками, свойственными настольным и серверным системам. Встроенные системы нуждаются в подсистеме ввода/вывода, чтобы взаимодействовать с пользователями и средой. Многие встроенные системы выполняют несколько задач и для этого требуется наличие некоторой операционной системы, планирующей эти задачи и управляющей их выполнением. Часто для реализации встроенных систем нужны развитые средства управления базами данных. Критерием выбора конкретных программных средств автор считает их соответствие требованиям приложения (что, вообще-то, по моему мнению, свойственно любому приложению, не обязательно встроенному). Более конкретно, автор рассматривает проблему выбора СУБД. В трех таблицах приводятся некоторые характеристики СУБД, пригодных (по мнению автора, составленный им набор мне кажется чересчур субъективным, я бы не взял на себя ответственность за такую подборку) для использования во встроенных системах: реляционных (Centura Software [Velocis] - www.centurasoft.com, Empress [Empress RDBMS] - www.empress.com, Microsoft [MSDE] - www.microsoft.com, Oracle [8i - немного неожиданно, не правда ли?] - www.oracle.com, Pervasive [Pervasive SQL 2000] - www.pervasive.com, Sybase [SQL Anywhere] - www.sybase.com, TimesTen [TimesTen - наконец-то!] - www.timesten.com и др.); объектно-ориентированных (Objectivity [Objectivity DB] - www.objectivity.com, Persistence [PowerTier] - www.persistence.com, POET Software [POET Object] - www.poet.com; встроенных библиотек (Centura Software [RDM, db.linux] - www.centurasoft.com, FairCom [c-trees Plus] - www.faircom.com, Free Software Foundation [gdbm] - www.gnu.org, Informix [C-ISAM] - www.informix.com, Sleepycat Software - разве можно было это пропустить! - [Berkeley DB] - www.sleepycat.com. Честно говоря, я не понимаю, как продукты последней категории попали в одну компанию с СУБД - библиотекой СУБД не заменишь! В комментариях к таблицам автор приводит соображения о достоинствах и недостатках категорий продуктов при их использовании во встроенных системах. Далее следует ряд рассуждений и рекомендаций, которым автор советует следовать при выборе СУБД для построения встроенной системы.
Наконец, последнюю статью, которую можно отнести к тематическому блоку, написали Роджер Ли (Rodger Lea), Саймон Гиббс (Simon Gibbs), Алек Дара-Абрамс (Alec Dara-Abrams) и Эдвард Эйчисон (Edward Eytchison) из Sony Distributed Systems Laboratory. Статья касается технологии построения домашних сетей бытовых компьютеризованных приборов и называется «Бытовая электроника с поддержкой HAVi в домашней сети» («Networking Home Entertainment Devices with HAVi»). HAVi (Home Audio-Video interoperability) — основное заклинание статьи. Если говорить практическим языком, то основной задачей архитектуры HAVi является обеспечение возможности централизованного управления совокупностью компьютеризованных бытовых приборов, приобретенных в разное время и произведенных разными компаниями. Ключевой особенностью подхода является то, что для каждого физического устройства обеспечивается соответствующий программный посредник (proxy). Добавление новых посредников к домашней системе обеспечивает появление новых возможностей системы и подключение к ней существовавших ранее компонентов.
Еще одна большая статья, явно не относящаяся к тематическому блоку, принадлежит перу Доменико Талиа (Domenico Talia) из ISI-CNR. Название статьи - «Клеточные автоматы в высокопроизводительном компьютерном моделировании» («Cellular Processing Tools for High-Performance Simulation») - и ее содержание подтолкнули меня к ностальгическим воспоминаниям. Тридцать лет назад, в 1971 году я и еще двое выпускников мехмата МГУ пришли работать ко Льву Николаевичу Королеву в ИТМиВТ. Как водится, по началу делать нам было нечего. Первый месяц мы развлекались теоремой Ферма. Спустя месяц Королев обратил внимание на неадекватность нашей работы задачам института и порекомендовал обратить внимание на очень занимательную область теоретического программирования - клеточные автоматы Фон Неймана. Еще два месяца (до того, как нашлось настоящее дело) мы занимались клеточными автоматами. Очень красивая теория. Но, как видите, любая теория в конце концов может воплотиться в практические решения. Компьютерное моделирование наряду с использованием формальной теории и лабораторных исследований является составной частью общего подхода к решению научных задач. Компьютерное моделирование требует привлечения высокопроизводительных компьютерных систем, дающих возможность создания своего рода виртуальных лабораторий. Конечно, для этого требуются развитые методы моделирования. Мощность современных высокопроизводительных параллельных компьютеров дает возможность исследователям строить свои модели на клеточных автоматах, нейронных сетях и т.д. В статье описывается несколько реализаций среды клеточных автоматов на параллельных компьютерах. Приводятся примеры использования этих сред для моделирования. Конечно, сначала делается краткое введение в понятия клеточных автоматов.
Из небольших статей меня больше всего заинтересовала заметка Барри Боема (Barry Boehm) из университета Южной Калифорнии, озаглавленная «Окончание проекта не равносильно провалу проекта» («Project Termination Doesn?t Equel Project Failure»). Чтобы заинтриговать читателя, упомяну о том, что в статье приведен список десяти причин завершения проекта, автор ссылается на отчет Standish Group 1995 года, www.standishgroup.com/visitor/chaos.htm (см. врезку на стр. 4 этого выпуска «Открытых систем»). Очень поучительные цифры и очень поучительная статья.
В обзоре новых книг наибольшее внимание привлекает книга Брайана Ворда (Brian Ward) «Проблемы Linux: простые решения для системных администраторов» («The Linux Problem Solver: Simple Solutions for System Administrators»). Думаю, что смысл книги понятен из ее названия. Для пользователей и администраторов Linux должно быть полезно. Книга издана в издательстве No Starch Press, San Francisco; www.nostarch.com; ISBN 1-886411-35-2; 300 pp.; 34.95 долл.
Приближается Новый год. Пора вступать в IEEE Computer Society. Это действительно полезно всех компьютерных специалистов. Потратьте немного времени и посетите Web-сайта Московского центра Computer Society (www.computer.org.ru) или напишите мне письмо (kuzloc@ispras.ru).