Майский номер журнала Computer за 2005 год (IEEE Computer Society, Vol. 38, No. 5, May 2005) наконец-то опять содержит действительно тематический номер журнала, подготовленный специально приглашенными редакторами, с большой подборкой статей по теме «Технологии виртуализации».
Свою вводную заметку приглашенные редакторы назвали «Ренессанс виртуализации ресурсов» (Resource Virtualization Renaissance). В 1992 году в своей Тьюринговской лекции Батлер Лэмпсон (Butler Lampson) процитировал следующее замечание Дэвида Уиллера (David Wheeler): «Никакая проблема компьютерных наук не может быть решена без привлечения дополнительного уровня косвенности». И действительно, уровень косвенности, вводимый путем виртуализации ресурсов, все чаще используется при решении многих проблем компьютерных систем в областях безопасности, оптимизации производительности, системного администрирования, надежности и т.д. История подхода, основанного на виртуализации ресурсов, насчитывает десятилетия, однако в последние годы интерес к нему снова вырос. Успешные коммерческие продукты расширяют область применения виртуальных машин компьютерными платформами массового спроса. Потребности виртуализации приводят к расширению систем команд массовых микропроцессоров (Vanderpool от Intel и Pacifica от AMD). В сообществе Open Source разработаны стабильно работающие виртуальные серверы (VServer, Usermode Linux) и паравиртуальные машины (Xen), виртуальные машины языкового уровня (Sun JVM, Microsoft CLR) работают на разнообразных платформах, от встроенных до серверных систем. Повсеместно используются виртуальные локальные (VLAN) или частные сети (VPN). В корпоративных сетях для упрощения управления сложными, неоднородными конфигурациями запоминающих устройств используется виртуализация запоминающих устройств.
Ключевым моментом виртуализации ресурсов является введение уровня косвенности ниже среды выполнения, видимой приложениями и операционными системами. Базовый компонент — монитор виртуальной машины (Virtual Machine Monitor, VMM), обеспечивает уровень между программными средами и физической аппаратурой, являющийся программируемым, прозрачным для вышележащего программного обеспечения и поддерживающий использование нижележащей аппаратуры. На основе косвенности VMM и аналогичные методы виртуализации сетей и запоминающих устройств предоставляют возможность совместного использования одного физического ресурса многими изолированными виртуальными системами. Включение нового уровня абстракции ниже уровней существующих абстракций заметно отличается от традиционного подхода построения нового уровня абстракции поверх существующего уровня абстракции.
VMM (их также называют гипервизорами) впервые получили известность в начале 70-х в серии мэйнфреймов IBM 370. Применение виртуализации позволило запускать одновременно несколько операционных систем, что способствовало эффективному использованию дорогостоящей аппаратуры в режиме разделения времени без потребности в модификации унаследованных программных систем, включая однопользовательские ОС. Роберт Гольдберг в своем обзоре, опубликованном три десятилетия назад (R. Goldberg, Survey of Virtual Machine Research, IEEE Computer Magazine, Vol. 7, No. 6, 1974), наряду с ключевым аспектом, укрупнением серверных платформ, выделял следующие преимущества подхода виртуальных машин: возможность смешивания пакетной и других видов обработки, поддержка интерактивных приложений и задач разработки, повышение уровня безопасности и надежности данных. С наступлением эпохи недорогих суперкомпьютеров и персональных компьютеров потребность в виртуализации уменьшилась. Хотя VMM (VM/386) и даже аппаратная поддержка VM (режим V8086) для ПК существовали в 80-е и начале 90-х годов, только с появлением Virtual PC и продуктов компании VMware стали доступны такие VMM для массовых компьютерных платформ, на которых можно запускать любую ОС. Современные серверы намного дешевле и гораздо мощнее машин прошлых десятилетий, но их полная стоимость владения включает техническое обслуживание, поддержку, администрирование, а также затраты, связанные с брешами в безопасности и сбоями системы. Поэтому укрупнение серверных платформ остается движущей силой виртуализации, несмотря на то, что исследовательские организации и коммерческие компании особенно заинтересованы в улучшении безопасности и доступности. Сегодня широко используются VMM от VMware и Microsoft, причем не только в серверных средах, но и на персональных компьютерах, позволяя использовать разные операционные системы, обычно Windows и Linux.
По-настоящему фундаментальным техническим введением является первая статья тематической подборки — «Архитектура виртуальных машин» (The Architecture of Virtual Machines), написанная Джеймсом Смитом (James Smith) и Рави Наиром (Ravi Nair). Освобождая разработчиков и пользователей от традиционных ограничений интерфейсов и ресурсов, виртуальные машины улучшают интероперабельность программного обеспечения, снижают уровень уязвимости систем и снимают проблему изменчивости платформ. Чтобы понять, что представляет собой виртуальная машина, необходимо уяснить смысл термина «машина». С точки зрения процесса, в котором выполняется некоторая пользовательская программа, машина состоит из логического адресного пространства, приписанного данному процессу, а также команд и регистров пользовательского уровня, позволяющих выполнять программный код. Единственный способ взаимодействия процесса с системой ввода/вывода основывается на вызовах ОС. Процесс «видит» машину через ABI (Application Binary Interface), а для программы, написанной на языке высокого уровня, характеристики машины определяются API (Application Programming Interface). С точки зрения ОС и поддерживаемых ей приложений вся система выполняется на соответствующей машине. Система распределяет между процессами память и ресурсы ввода/вывода, а также обеспечивает средства межпроцессного взаимодействия. С системной точки зрения машину определяют характеристики аппаратуры и интерфейс между системой и машиной, определяемый ISA (Instruction Set Architecture). Соответственно, выделяются процессные и системные VM. Процессная VM — это виртуальная платформа, предназначенная для выполнения индивидуального процесса. В отличие от этого системная VM обеспечивает полную, постоянно существующую среду, поддерживающую ОС и набор пользовательских процессов. Для ОС обеспечивается доступ к виртуальным аппаратным ресурсам, включающим процессор, память, средства ввода/вывода, а также, возможно, графический интерфейс пользователя. Виртуализирующее программное обеспечение обычно и называют монитором виртуальной машины. По поводу процессных VM обсуждаются эмуляторы и динамические двоичные трансляторы на уровне ISA; возможности оптимизации бинарного кода в случае, когда ISA виртуальной и реальной машин совпадают; особенности процессных VM, ориентированных на поддержку языков высокого уровня. Для системных VM приводится классификация: классические (работают на «голой» аппаратуре); «гостевые» (располагаются поверх существующей ОС); полносистемные (эмулируют код и приложений, и операционной системы); многопроцессорные (разбивают крупные симметричные платформы на несколько более мелких); наконец, виртуальные машины, которые поддерживают ISA, для которой еще отсутствует аппаратная реализация.
Авторы следующей статьи, «Мониторы виртуальных машин: современная технология и тенденции будущего» (Virtual Machine Monitors: Current Technology and Future Trends), Мендель Розенблюм (Mendel Rosenblum) и Тэл Гарфинкель (Tal Garfinkel) из Стэнфордского университета развивают тему вглубь. В 90-е годы в этом университете начали изучать возможности подхода виртуальных машин для преодоления трудностей, вызываемых ограничениями аппаратуры и операционных систем. В это время проблемы порождались машинами массивно-параллельной обработки, для которых было трудно программировать, и на которых нельзя было использовать существующие ОС. Применив подход виртуальных машин, исследователи обнаружили, что они могут сделать эти неуклюжие архитектуры настолько похожими на существующие платформы, что на них можно будет запускать имеющиеся ОС. Из этого проекта вышли люди и идеи, послужившие основой компании VMware. В 90-е годы стали проявляться проблемы, связанные с расширением возможностей ОС и удешевлением аппаратуры, что привело к резкому увеличению числа машин, но эти машины часто недоиспользовались. Кроме того, росли накладные расходы, связанные с потребностями рабочих площадей и управлением. Расширяющаяся функциональность ОС одновременно увеличивала их уязвимость. Для снижения уровня последствий системных аварийных ситуаций системные администраторы возвращались к вычислительной модели с одним приложением на машине. Это, в свою очередь, повышало требования к аппаратуре, что снова приводило к возрастанию накладных расходов. Перемещение выполняемых на многочисленных физических машинах приложений на VM и их консолидация на небольшом числе физических платформ повышали эффективность использования и позволяли сократить накладные расходы. Как полагают авторы, в будущем методы VMM станут в большей степени служить для повышения безопасности и надежности. Во многих случаях VMM дает дополнительную возможность разработчикам ОС по обеспечению функциональности, не свойственной современным системам. Перевод двух первых статей тематической подборки опубликован в предыдущем номере журнала «Открытые системы».
У статьи «Технология виртуализации Intel» (Intel Virtualization Technology) десять авторов из корпорации Intel; первый в списке — Рич Улиг (Rich Uhlig). Ранее ограниченная рамками специализированных, высокопроизводительных платформ, виртуализация становится теперь более широко доступной. Содержательная часть статьи начинается с анализа проблем, с которыми приходится сталкиваться при виртуализации IA-32 и IA-64. Для решения этих проблем обычно применяют подход паравиртуализации, при котором производится модификация программного обеспечения до его запуска на VMM. Технология виртуализации Intel, призванная избежать потребности в подобных преобразованиях, включает два компонента — VT-x (поддержка виртуализации IA-32) и VT-i (виртуализация архитектуры Itanium).
Эндрю Витайкер, Ричард Кокс, Марианн Шоу и Стивен Гриббл (Andrew Whitaker, Richard Cox, Marianne Shaw, Steven Gribble) из Вашингтонского университета представили небольшую статью под названием «Пересмотр архитектуры мониторов виртуальных машин» (Rethinking the Design of Virtual Machine Monitors). Группа исследователей, изучая возможности применения VMM для решения проблем безопасности, надежности и системного администрирования, столкнулись с тем, что при традиционном подходе к построению VMM возникают ограничения масштабируемости. Группа разработала собственный монитор Denali, основанный на идеях паравиртуализации и вмешательства в аппаратуру. Паравиртуализация в Denali означает отличие архитектуры виртуальной аппаратуры от архитектуры базовой физической аппаратуры. Denali позволяет поддерживать сотни одновременно выполняющихся виртуальных машин с одним VMM. Возможность вмешательства в аппаратуру позволяет программистам расширять VMM за счет новых реализаций компонентов виртуальной аппаратуры, например, виртуальных дисков или устройств Ethernet. Эти новые аппаратные компоненты могут существенно отличаться от реальных устройств. Скажем, в новой реализации виртуального диска может поддерживаться шифрование или доступ к сетевому устройству хранения данных.
Последняя статья тематической подборки называется «Виртуальные распределенные среды в совместно используемой инфраструктуре» (Virtual Distributed Environments in a Shared Infrastructure). Статью написали Пол Рат, Ксу Ксиан Джиан, Дон Гян Ксу и Себастайн Гоасгуен (Paul Ruth, Xuxian Jiang, Dongyan Xu, Sebastien Goasguen). Многие пользователи grid знакомы с традиционной моделью предоставления и исполнения заданий, а также с моделью сервис-ориентированного доступа, определенной в спецификации OGSA (Open Grid Services Architecture). Основываясь на технологии GRAM (Grid Resource Allocation and Management), grid обеспечивает единый, скрывающий детали интерфейс для запроса и использования сетевых ресурсов, на основе которых исполняются задания, предоставляемые пользователями. Модели заданий и сервисов обеспечивают приемлемую парадигму совместного использования ресурсов и исполнения программ. Однако некоторые приложения являются в большей степени операционными, а не функциональными, и их трудно отобразить на независимые задания или услуги. К таким приложениям относится, например, детальная эмуляция систем реального мира, таких как функционирующий аэропорт. Для многих других приложений требуется специальным образом конфигурированная и настроенная среда исполнения, включающая операционную систему, сервисы сетевого и прикладного уровня, пакеты и библиотеки. Например, для многих научных приложений требуются математические и коммуникационные библиотеки, а для Java-приложения может понадобиться конкретная версия JVM. В совместно используемой инфраструктуре не всегда возможно удовлетворить такие требования. Кроме того, требования разных приложений могут конфликтовать. Наконец, невозможно предотвратить запуск пользователями потенциально ненадежных или ошибочных приложений. Важно не допустить каскадного распространения последствий сетевой атаки на такое приложение на другие приложения или на совместно используемую инфраструктуру. Авторы предлагают парадигму для выполнения подобных приложений, основанную на интеграции и расширении технологий виртуальных машин и виртуальных сетей.
Единственная большая статья номера, не вошедшая в тематическую подборку, названная «Обманчивые архитектурные компромиссы» (Misleading Architecting Tradeoffs), написана Тоном Костелийком (Ton Kostelijk) из компании Philips Applied Technologies. Ключевые архитектурные решения обычно принимаются на основе качественных рассуждений, которые должны базироваться на конкретных количественных аргументах и фактах. Плохо аргументированные качественные рассуждения могут привести к архитектуре, которая впоследствии оказывается ошибочной. К счастью, такие рассуждения можно выявить и исправить, как это произошло при разработке DVD-рекордера. При эволюции этого продукта обнаружилось несколько ошибок, в частности, необоснованное принятие компромиссного решения. Компромисс предполагает, что улучшение в одном измерении отрицательно влияет на другие измерения. Проект разработки DVD-рекордера представляет яркий пример преобразования абстрактных мнений и конкретные, осязаемые аргументы. В техническом отношении системное решение для DVD-рекордера требовало от разработчиков выбора варианта с одной или двумя интегральными схемами с процессором в каждой из них. Рассуждения основывались на конкретных данных о нагрузке на устройства. Эти показатели исследовались на модели архитектуры. Хотя вначале наиболее подходящим кандидатом казалась архитектура с двумя схемами, исследования показали преимущества архитектуры с одной. Эта архитектура позволяет использовать больше компонентов существующих систем, требует меньших усилий от разработчиков и позволяет существенно снизить стоимость продукта.
Наконец, мне показалась интересной заметка Дэвида Кренке (David Kroenke) из Вашингтонского университета «За пределами реляционной модели данных» (Beyond the Relational Database Model). Многим читателям, вероятно, знакомо это имя: перевод девятого издания его книги «Теория и практика построения баз данных» вышел в этом году в издательстве «Питер». В этом же году автор выпустил десятое издание своей книги (Database Processing: Fundamentals, Design, and Implementation, Prentice Hall, 2005), где одна глава посвящена хранению XML-данных. В ней утверждается, что в конце концов хранилища XML-данных приведут к исчезновению реляционных баз данных. Автор действительно использует термин relational database model, а не relational data model: одно это может позволить «заклевать» его сторонникам реляционной модели данных. Я впервые встречаюсь с подобным экстремизмом, и мне показалось забавным коротко пересказать доводы автора. Первый довод восходит к метафоре Эстер Дайсон, которую она ввела в то время, когда многим казалось, что на смену реляционным придут объектно-ориентированные базы данных. Она сравнила нормализованную реляционную базу данных с гаражом, в котором хранятся полностью разобранные автомобили. Перед использованием машины нужно ее собрать, а перед установкой в гараж — полностью разобрать. По мнению автора статьи, подоплека реляционной модели лежит в следующем. Реляционная модель является теоретико-множественной моделью для описания элементов данных, распространенных в бизнес-среде. В 70-е годы наличие подобной теории требовалось для придания легитимности направлению управления данными. В реляционных базах данных минимизировалась избыточность данных, что обеспечивало целостность данных и сокращало требования к внешней памяти. В то время особенно важным был второй фактор, поскольку возможности дисков были ограниченными. Реляционная модель обеспечивала способ представления элементов данных переменного размера путем использования компонентов фиксированного размера. Это было очень важно при переходе от магнитных лент к устройствам внешней памяти прямого доступа. Теория нормализации вызвала появление сотен статей и многочисленных профессорских позиций. Это побуждало академическое сообщество к дальнейшему продвижению реляционной модели. Наконец, следуя открытым стандартам, включающим SQL, компании создали десятки реляционных СУБД. Автор утверждает, что хранилища XML-данных обладают многочисленными преимуществами перед реляционными базами данных (недостаточно убедительными, с моей точки зрения), а присущие им недостатки таковыми не являются (избыточность данных не страшна, поскольку дисковая память ничего не стоит; иерархичность и вовсе недостатком не является; высокая производительность систем управления XML-данными будет со временем достигнута). Для того чтобы сделать хранилища XML-данных реальностью, как полагает автор, нужны, прежде всего, методы и средства управления дублирующими данными, включая поддержку согласованности. Требуются новые подходы к проектированию структур данных. Нужны развитые средства управления версиями XML-документов. Требуется также механизм для разрешения двусмысленностей схем XML-документов. Должна иметься возможность определения степени из сходства любых двух документов, встречающихся в киберпространстве. Опыт объектно-ориентированных СУБД учит, что ни одна организация не станет переходить на другую технологию, требующую преобразования миллиардов байт реляционных данных к другому формату, без понимания материальной выгоды. В настоящее время есть инструменты, позволяющие легко конвертировать реляционные базы данных в XML-документы.
Призываю читателей не относиться к заметке Кренке слишком серьезно. При малейшем желании ее можно полностью раскритиковать, однако сам факт появления подобной позиции представляется мне очень интересным.
Помогают ли ИТ преподавателям?
Тема июньского за 2005 год номера журнала Computer (IEEE Computer Society, Vol. 38, No. 6, June 2005) — «Компьютеры и образование» (Computers and Education) --раскрывается в четырех статьях. Первая статья тематической подборки озаглавлена «Проект Numina: повышение качества обучения студентов с применением портативных компьютеров» (Project Namuna: Enhancing Student Learning with Handheld Computers). У нее шесть авторов; как обычно, укажем первого из них — Барбара Хит (Barbara Heath). Американские студенты все шире используют мобильные компьютеры, стремясь найти им новые применения, однако для переносных компьютеров очень мало приложений, особенно в областях математики и естественных наук. В 1999 году в Университете Северной Каролины началось развертывание беспроводной сетевой инфраструктуры. Одновременно был инициирован проект Numina (aa.uncw.edu/numina), направленный на исследование возможностей применения мобильных устройств в учебном процессе. За прошедшие годы междисциплинарная исследовательская группа университета провела эксперименты с использованием различных портативных устройств и программных приложений в аудиториях бакалавриата. Большой опыт, полученный при использовании как коммерческих, так и «самодельных» программных систем, показывает, что использование портативных компьютеров заставляет студентов учиться более основательно и улучшает усвоение материала. В статье описывается несколько приложений, созданных или использованных при выполнении проекта. В системе Student Response System студенты используют портативные компьютеры для ответов на вопросы преподавателя, а система сохраняет эти ответы в базе данных и отображает их на экране. Сейчас участники проекта разрабатывают среду мобильного обучения Mobile Learning Environment, которая позволит студентам и преподавателям совместно работать в любое время, независимо от местоположения.
Статью «Создание среды мультимедиа для обучения» (Architecting Multimedia Environments for Teaching) написали Джералд Фридланд (Gerald Friedland) и Карл Паулс (Karl Pauls). Окруженные различными современными техническими новшествами, преподаватели остаются одинокими перед аудиторией. Большинство преподавателей по-прежнему полагается на традиционные примитивные средства. Так, во многих научных дисциплинах предпочтительной средой демонстрации материала остается доска, на которой пишут мелом. Однако, после того как в сферу образования проникли вычислительные устройства, исследователи занялись поисками способов их должной интеграции и эффективного использования. На сегодняшний день предложено несколько частичных решений, но ни одно из них не обеспечивает общего видения применения новых технологий. Преобладает три подхода к электронному обучению (e-learning): интенсивное использование презентаций в виде слайд-шоу; видеозаписи лекций, передаваемые по оптоволокну и путем широковещания в Internet; создание модулей e-learning на основе динамических Web-страниц или Java-апплетов. У каждого из этих подходов ограничения. В частности, слайд-шоу выглядят статичными, поскольку все готовится заранее, и у преподавателя остается мало возможностей адаптировать материал к особенностям текущей аудитории. Решения, относящиеся ко второму подходу (он вообще не поддерживает учебный процесс), фокусируются либо на записи и передаче учебного занятия, либо на установке двунаправленного соединения, или канала обратной связи. При применении третьего подхода, если опираться на традиционные авторские системы, имеется большая диспропорция между временем, затрачиваемым на производство модуля, и временем его использования при обучении, поскольку традиционные технологии обучения не очень просто воспроизводятся при помощи современных авторских инструментальных средств.
Анализ, проведенный авторами, выявил следующие требования преподавателей к системам электронного обучения: поддержка преподавания в аудитории, включая возможность интеграции образовательных мини-приложений; наличие средств подготовки занятий в аудитории; поддержка синхронного и асинхронного дистанционного обучения. Для удовлетворения этих требований была разработана архитектура Self-Organizing Processing and Streaming Architecture (SOPA, www.sopa.inf.fu-berlin.de), обеспечивающая управление мультимедийными данными и потоковыми компонентами, связанными в граф потока, который изображает скомпонованный блок таких компонентов. На основе SOPA реализована программная система E-Chalk (www.e-chalk.de), позволяющая сохранять и распространять через Сеть лекции, читаемые с использованием доски и мела. Для редактирования материала лекций, сохраненных с использованием E-Chalk, разработана дополнительная программная система Exymen (www.exymen.de).
Следующую статью написали Магда Морад (Magda Mourad), Джерард Хэнли (Gerard Hanley), Барбра Байд Сперлинг (Barbra Bied Sperling) и Джек Гантер (Jack Gunter). Статья называется «Грядущий электронный рынок для высшего образования» (Toward an Electronic Marketplace for Higher Education). Ключевым процессом высшего образования является обнаружение, анализ и усвоение информации. Успешность участия в этом процессе преподавателей, студентов, библиотечного и административного персонала зависит от их возможности работать с информацией и от умения поставщиков информации обеспечивать необходимые для этого инструменты. Простым примером является усвоение содержимого книг — студенты должны покупать книги или брать их в библиотеке, а вуз должен облегчать студентам задачу получения книги в своем книжном магазине или библиотеке. И эти два вида деятельности обеспечивают контролируемый, надежный и выгодный рынок, на который издатели могут полагаться годами. Доступность электронного контента открывает перед университетами и издателями возможность совершенствования этого рынка. Модели доступа к информации, демонстрируемые, например, Google и Amazon, мотивируют появление образовательного электронного рынка EDucational Electronic Marketplace (ede-marketplace), а также видоизменяют способы обнаружения, анализа и усвоения информации в академических организациях. Хотя создание такого рынка технически осуществимо, наличие некоторых практических проблем затрудняет рост интерактивных продаж контента в сравнении с аналогичным рынком физических продуктов. Одна из помех — отсутствие стандартных методов построения безопасной системы управления цифровыми правами (digital rights management, DRM), позволяющей определять, записывать, передавать, интерпретировать и проверять цифровые права. Ведутся работы над совершенствованием DRM и схем защиты контента, но реальной проблемой является создание двухточечных систем, в которых учитываются изменяющиеся потребности общества и бизнеса. Первым шагом к подобной системе стали совместные работы IBM и консорциума Multimedia Educational Resource for Learning and OnLine Teaching (MERLOT, www.merlot.org) по созданию базовой архитектуры, используемой для построения прототипа ede-marketplace. Результаты испытаний показали, что на основе предложенной архитектуры возможно построение доверительных сред, пригодных для безопасного создания, управления и доставки цифрового контента.
Последняя статья тематической подборки называется «Stiquito для подготовки в областях роботехники и встроенных систем» (Stiquito for Robotics and Embedded Systems Education). Автор статьи — Джеймс Конрад (James Conrad). Шестиногий робот Stiquito многие годы используется в области образования. Изначально он управлялся вручную с помощью двух переключателей, подсоединенных к нему кабелем, однако отсутствие программируемого контроллера мешало работе исследователей, желавших использовать робот для изучения поведения систем с непредвиденной реакцией. Был создан новый автономный робот Stiquito Controlled, где использовался микроконтроллер, обеспечивающий передний ход робота за счет координации движений его лап. Контроллер продается заранее запрограммированным, однако преподаватели и исследователи могут его перепрограммировать для изучения других областей роботехники. Программируемая плата контроллера может использоваться отдельно для обучения понятиям встроенных систем.
Вне тематической подборки остались две большие статьи. Группа авторов из Калифорнийского университета в Беркли представила статью «Аргументы в пользу технологий в развивающихся районах» (The Case for Technology in Developing Regions). В 2000 году ООН сформулировала список основных целей, к достижению которых должно стремиться человечество. Одна из этих целей состоит в том, чтобы «сделать доступными преимущества технологий, в особенности информационных и коммуникационных», однако большинством преимуществ новых технологий пользуются сегодня только развитые страны. Авторы статьи полагают, что технологии должны играть большую роль и в развивающихся странах. Факты говорят: доступ к технологиям благотворно воздействует на экономику развивающихся районов. Наиболее очевидный пример — сотовая телефония, но имеется и много других успешных приложений; часть из них обсуждается в статье. В каталогах сайта infoDev (www.infodev.org) перечисляются сотни проектов, основанных на информационных и коммуникационных технологиях, и не все эти проекты достигли успеха. В большинстве этих проектов использовалась готовая к использованию технология, разработанная для развитых стран — несмотря на очевидные большие различия в стоимости, мощности и особенности применения. При внедрении ИКТ должны учитываться сложные социальные проблемы, такие как половое и этническое неравенство, а также возможность противодействия действующих участников национальных рынков. Стратегия авторов статьи состоит в тесном взаимодействии со специалистами в области общественных наук и партнерстве с различными правительственными и неправительственными организациями. Исследование ограничивалось странами, в которых большая часть населения зарабатывает меньше 2 тыс. долл. в год. В США среднегодовой доход населения составляет 37 тыс., а 85% мирового населения зарабатывают меньше, 65% от их числа получают менее 4,5 тыс. (Исследования базировались на данных из Индии, Бразилии, Бангладеш и Уганды.) Целесообразность внедрения ИКТ в настоящее время обуславливается тремя обстоятельствами. Во-первых, в соответствии с законом Мура уменьшилась стоимость вычислений из расчета на одного человека. Хотя эта стоимость применима только к совместности используемой инфраструктуре, а не к персональным устройствам, цена вычислений и хранения данных становится приемлемой даже для наиболее бедных пользователей. Во-вторых, массовое производство средств беспроводной коммуникации, в частности, средств сотовой связи и Wi-Fi, привело к снижению стоимости. В сельской местности беспроводная инфраструктура оказывается наиболее доступной. Наконец, широкое распространение технологий в мировом масштабе и возрастающий доступ к капиталам создают благоприятную среду для предпринимательства. У ИКТ-проектов четыре основных технологических потребности: связь, дешевые устройства, соответствующие интерфейсы пользователей и электропитание. Большая часть сельских районов не входит в зону действия сети, низкая плотность населения делает невыгодной установку дополнительных базовых станций — требуется разработка и поддержка приложений, функционирующих без поддержки двухточечных соединений. Обеспечение низкостоимостных устройств открывает дорогу многим приложениям, нужно совершенствовать сотовые телефоны, понижать стоимость и стимулировать совместное использование экранов, батарей и процессоров. Требуется поиск новых видов интерфейсов, рассчитанных на не слишком грамотных пользователей. Наконец, отсутствие качественного электропитания является основным барьером на пути внедрения ИКТ.
Наконец, статью «Рефлексия и абстракция при изучении человеческих аспектов инженерии программного обеспечения» (Reflection and Abstruction in Learning Software Engineering?s Human Aspects) написали Орит Хаццан (Orit Hazzan) и Джеймс Томэйко (James Tamayko). Сложность сред разработки программного обеспечения включает познавательные и социальные аспекты профессии. В курсе, разработанном для повышения уровня осведомленности об этих аспектах, содержится введение в рефлективные познавательные процессы и предлагаются задачи, для решения которых требуется абстрактное мышление. Рефлективные и абстрактные методы мышления играют ключевую роль в обучении и практике инженеров программного обеспечения. Вообще говоря, концепция рефлективной перспективы, введенная Дональдом Шоном, подразумевает, что профессионалы (архитекторы, менеджеры, музыканты и т.д.) переосмысливают свою работу в течение созидательного процесса и по его завершении. Концепция основана на предположении, что такая рефлексия способствует повышению квалификации и эффективности профессионала. Важность рефлексии как образа мышления в контексте программной инженерии следует из двух факторов: сложности разработки программного обеспечения, независимо от того, оценивается ли эта сложность с инженерной, архитектурной или проектной точки зрения; важной роли общения между членами команды при успешной разработке программной системы. Разработаны эвристики для преодоления познавательной сложности разработки программного обеспечения. Одна из этих эвристик — абстракция — фокусируется на решении сложных проблем. В дополнение к общим процессам абстракции разработчики программного обеспечения должны думать в терминах разных уровней абстракции и перемещаться между ними в процессе разработки. Значимость абстракции в процессах программной инженерии подчеркивает роль этого подхода при обеспечении осведомленности студентов о преимуществах его использования и в практической деятельности, и как метода мышления. В курсе обсуждаются: природа программной инженерии; методы программного обеспечения; работа в команде; моральный кодекс программной инженерии; программное обеспечение как продукт; международная перспектива программного обеспечения; понимание программ; процессы изучения программного обеспечения; перспективы инженерии; принципы разработки программного обеспечения; человеческие аспекты программного обеспечения; история программной инженерии; анализ примеров.
До следующего выпуска, Сергей Кузнецов, kuzloc@ispras.ru.