Этой теме посвящены две большие статьи, и первая – «Встраиваемое ПО: факты, цифры и будущее» (Embedded Software: Facts, Figures, and Future), написанная Кристофом Эбертом и Кейперсом Джонсом. Встраиваемое ПО формирует современный мир: кардиостимуляторы, мобильные телефоны, бытовые электроприборы, космические аппараты, антиблокировочные системы в автомобилях и т.д. Встроенное ПО, с одной стороны, исключительно полезно, а с другой – порождает небывалые риски. Примером того, как встроенное ПО «помогает повысить качество жизни» миллионам людей, являются кардиостимуляторы. За десять последних лет прошлого века производителями было отозвано полмиллиона этих устройств, в 40% которых были обнаружены ошибки во встроенных программах. Для человека, пользующегося кардиостимулятором,вероятность того, что производитель отзовет это устройство или предупредит о наличии в нем дефекта в течение года, составляет 1 к 15 – не так уж и много. Для имплантируемых электрических дефибрилляторов сердца (более сложных устройств, которые могут произвести сильный электрошок при внезапной остановке сердца) шансы на получение предупреждения о возможном дефекте выше – 1 к 6.

Мировой рынок встроенных систем оценивается примерно в 160 млрд евро при ежегодном росте в 9%. На рис. 1 показаны размер и ежегодный объем производства некоторых видов встраиваемого ПО – эти данные сопоставимы с данными продаж крупнейших программных пакетов, например Microsoft Windows. Однако встраиваемые приложения значительно сложнее из-за несвойственных другим видам ПО требований реального времени и ограничений на интерфейсы.

Сообщества разработчиков встраиваемых и информационных систем существуют практически в полной взаимной изоляции. Это относится как к конференциям, так и к организационной структуре и продуктам. Разработчики встраиваемого ПО обычно не участвуют в основных компьютерных выставках и конференциях разработчиков программного обеспечения и чаще принимают участие в проблемно-ориентированных мероприятиях, таких как конференции SAE Convergence, поскольку они связывают разработку ПО с конкретными проблемами и решениями индустрии.

 

Рис. 1. Размер и применение встраиваемого ПО

В данной статье авторы приводят обзор приемов и методов, влияющих на разработку встраиваемого ПО. В 2008 году в развитых странах на каждого человека приходилось около 30 встроенных микропроцессоров со встроенным ПО, сложность которого оценивается не менее чем в 2,5 млн «единиц функциональности» (function point, en.wikipedia.org/wiki/Function_point_analysis). По мере возрастания числа автоматических устройств и потребностей в них со стороны пользователей объем встраиваемого ПО растет на 10-20% в год в зависимости от прикладной области. На встраиваемые микропроцессоры приходится более 98% от общего числа производимых микропроцессоров, и их суммарная мощность значительно превосходит общую мощность компьютеров, используемых
в ИТ-индустрии.

Рис. 2 иллюстрирует эволюцию некоторых встроенных систем в терминах объема кода приложений: бортового ПО в космических аппаратах, телекоммуникационных систем, автомобильного встраиваемого ПО и ядра Linux, которое часто служит основой многих встроенных систем. Windows Mobile и другие встраиваемые операционные системы развиваются с не меньшей скоростью.

Рис. 2. Рост сложности встраиваемых систем

В последние десятилетия темпы роста встраиваемого ПО ускоряются. Например, в новых автомашинах теперь имеется от 20 до 70 электронных блоков с более чем 100 млн команд встроенного ПО. В области автомобилестроения стоимостные качества прежде всего определяются встроенным ПО, в результате чего не только возрастает цена и сложность машины, но и повышаются риски из-за потенциальных дефектов в этом ПО. В то время как доля механических дефектов сокращается, число дефектов, вызываемых электронными системами, быстро возрастает.

Но как оценить плотность дефектов встраиваемого ПО? Как оценить планы поставщиков, направленные на их устранение? Для определения критических «горячих точек» в разработке, тестировании встраиваемых программ и управлении соответствующими проектами требуются производственные эталонные данные, в частности, об ожидаемых дефектах. Где можно их получить? Они могут не быть легкодоступными или могут оказаться непригодными для новых продуктов, методологий и проектов.

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

Вторую статью, под названием «Ос-нованная на моделях верификация встраиваемого программного обеспечения» (Model-based Verification of Embedded Software) тематической подборки, написали Хешам Шокри и Майк Хинчи.В последние годы ужесточение требований к функциональным возможностям приложений приводит к появлению все более крупных и сложных встроенных систем. С увеличением числа и сложности этих систем для различных аспектов встроенных приложений требуется достижение все более высокого уровня надежности и устойчивости.

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

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

Хотя в индустрии для представления львиной доли моделей, применяемых в MВD, используется UML, в своем «чистом» формате эти модели не слишком пригодны для описания и анализа сложных систем. На фазах проектирования и анализа встроенных систем управления традиционно используются другие виды моделей, основанные на математике. В этих случаях они описывают математические алгоритмы, необходимые для обработки сигналов, управляющих, например, некоторой электромеханической системой. Решение проблем разработки таких моделей и их реализации в приложениях со встроенным ПО требуется, в частности, в автомобильной промышленности.

Вне тематической подборки в апрельском номере опубликованы четыре большие статьи. Сеон Аун Хван представил статью «Насколько целесообразно управление цифровыми правами?» (How Viable Is Digital Rights Management?). Спору нет, Internet революционизирует доступ к информации и обмен ею, но обратной стороной широкого доступа к мультимедиа является нарушение прав интеллектуальной собственности. По мере увеличения спроса на музыку, фильмы и книги обостряются юридические, социокультурные и технологические проблемы, связанные с защитой контента. Для технологии
управления цифровыми правами (Digital Rights Management, DRM), направленной на защиту цифровой информации, проблема состоит в том, что требуется не отставать от разнообразия и интенсивности спроса на доступ к контенту. Пока это не удается частично из-за того, что старые идеи не обеспечивают должным образом интероперабельность, обещаемую покупателям контента.

Большинство существующих схем DRM основано на недоверии к пользователю; считается, что распространение защищенного контента должно быть ограничено. Защита прав на основе такой модели ограниченного использования вызывает проблемы интероперабельности схем DRM и затрудняет создание доверительной инфраструктуры, продолжающей при этом защищать контент.

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

Чтобы ответить на эти вопросы, нужно понять, как развивалась технология DRM, в каком отношении эта технология сегодня терпит неудачу, и что требуется изменить, если продолжать считать технологию DRM целесообразной. Автор статьи «Реальная стоимость часа работы центрального процессора» (The Real Cost of a CPU Hour) – Эдвард Уокер.Во всем мире ширится процесс приобретения и установки кластеров серверов, что частично объясняется верой общества в возможности Internet для поддержки сотрудничества, развлечений и коммуникаций; принятием в организациях концепции SaaS; использованием моделирования в научных исследованиях и при разработке производственной продукции. В то же время, коммерческие компании, такие как Amazon.com, IBM и Google, дают возможность любой организации и даже частным лицам покупать время в их центрах данных через Web-сервисы. При наличии сервисов «облачных вычислений» организации могут арендовать компьютерное время для своих вычислительных нужд, вместо того, чтобы покупать кластер. Например, с августа 2006 года Amazon.com предлагает Web-сервис Elastic Compute Cloud (aws.amazon.com/ec2), и заплатив 10 центов за час, организации могут приобретать экземпляры виртуальных машин с правами суперпользователя, базирующиеся в узлах центра обработки данных Amazon.com.

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

Статью «Надежное распределенное хранение данных» (Reliable Distributed Storage) написали Грегори Чоклер, Рашид Гуеррау, Идит Кейдар и Марко Вуколич.С появлением технологий сетей хранения (storage area network, SAN) и сетевых устройств хранения (network attached storage, NAS), а также при возрастающей доступности дешевых дисков все более популярными становятся распределенные системы хранения. В этих системах для предотвращения потери данных используется репликация, и данные хранятся в нескольких основных блоках (дисках или серверах), называемых
базовыми объектами. Такие системы обеспечивают высокий уровень доступности данных – хранимые данные должны оставаться доступными при выходе из строя любого сервера или диска, а иногда они способны выдержать большее число отказов.Устойчивость системы хранения равна t, если t из n базовых объектов (серверов или дисков) могут выйти из строя без воздействия на доступность или согласованность данных. Уровень устойчивости определяет доступность сервиса. Например, если каждый сервер работоспособен 99% времени, то при хранении данных на одном сервере может быть обеспечена доступность в 99%. Если данные реплицируются на трех серверах (n = 3), и решение выдерживает выход из строя одного сервера (t = 1), то доступность достигает 99,97%.

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

В отличие от этого, распределенная система хранения данных эмулирует устойчивый к сбоям, совместно используемый объект хранения путем поддержки копий в нескольких местах, так что данные остаются доступными при полном выходе из строя отдельного узла системы. Эта возможность достигается за счет использования дешевых дисков или персональных компьютеров для хранения базовых объектов. Аналитики обычно фокусируются на изучении объекта хранения, который поддерживает только базовые операции чтения и записи, обеспечивая доказуемые гарантии. Такие исследования считаются фундаментальными, поскольку данные объекты являются строительными блоками для более сложных систем хранения. Кроме того, такие объекты можно использовать для хранения файлов, что делает их интересными сами по себе.

Последняя большая статья апрельского номера называется «Поиск определительных ответов в Web с использованием поверхностных паттернов» (Searching for Definitional Answers on the Web Using Surface Patterns). Ее авторы – Алехандро Фигуэро, Гюнтер Ньюман и Джон Аткинсон.

Исследователи, разрабатывающие основанные на Web
вопросно-ответные системы (question-answering system, QAS), все больше концентрируются не на простых фактографических вопросах, а на сложных вопросах, для получения ответов на которые требуется обработка информации из многочисленных источников и вывод соответствующих заключений. В одном из типов вопросов, регулярно обсуждаемых на международных форумах вроде Text Retrieval Conference (TREC, trec.nist.gov), требуется получить определение заданного термина, например, «Что такое эпилепсия?», «Кто такой Том Хэнкс?» или «Что такое WWF?».

Определительные QAS обычно извлекают из нескольких документов предложения, содержащие наиболее полную описательную информацию об искомом термине, а затем обобщают эти предложения до определений. Как правило, используются дополнительные внешние источники определений, такие как энциклопедии и словари – они содержат точные и значимые крупицы определений, которые сливаются с основным корпусом текстов. Однако для интеграции каждого конкретного ресурса требуется разработка специального адаптера. Поэтому существенная проблема разработки определительных QAS заключается в использовании Web как источника описательной информации.

В определительных QAS нередко Web используется для выборки и обработки больших объемов полных документов. После этого во всех выбранных документах требуется выделить описательные предложения. Определительные вопросы часто встречаются в журналах поисковых машин, что свидетельствует о важности этого типа вопросов. Однако оценить качество QAS, отвечающей на определительные вопросы, намного труднее, чем оценить качество системы, отвечающей на фактографические вопросы, поскольку в данном случае ответы нельзя просто подразделить на «правильные» и «неправильные».

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

Напоминаю, что сейчас можно оформить подписку на второе полугодие этого года на членство и периодические издания IEEE Computer Society (www2.computer.org/portal/web/membership). Советую воспользоваться этой возможностью, Сергей Кузнецов, kuzloc@ispras.ru.