| 05.02.2011 12:00 | |
О. Н. Граничин, В.И. Кияев, А.В. Корявко, С.А. Леви, К.С. Амелин, Е.И. Антал, В.И. Васильев
Санкт-Петербургский государственный университет, Математико-механический факультет,
Лаборатория системного программирования и информационных технологий (СПРИНТ).
Учебное пособие "Введение в разработку приложений на платформе Atom/MeeGo"
В учебном пособии представлены материалы одноименного курса по разработке приложений для мобильных устройств, прочитанного авторами для стажеров Лаборатории системного программирования и информационных технологий (СПРИНТ, СПбГУ-Intel). Рассматриваются как общие основы разработки приложений для мобильных устройств, так и специальные инструменты, ориентированные на новую операционную систему MeeGo и процессоры Intel Atom. Рассказано также об основных принципах реализации качества программного приложения (продукта) и о путях его практической коммерциализации.
Пособие предназначено для студентов, аспирантов и преподавателей соответствующих специальностей, а также может быть полезно широкому кругу читателей.
Рецензенты: д-р физ.-мат. наук, профессор А.Н. Терехов (С.-Петерб. гос. ун-т), канд. физ.-мат. наук, доцент И.О.Одинцов (менеджер по стратегическому развитию Intel).
Содержание
Раздел 1. Общие сведения о платформе Atom/MeeGo и разработке приложений.
- Общие сведения о платформе Atom/MeeGo
- Основные аппаратные сегменты на платформе Atom/MeeGo
Лаб. работа "Установка OC MeeGo на нетбук" - Общие средства разработки приложений под Linux
Лаб. работа "Знакомство с традиционными средствами разработки в ОС Linux" - MeeGo SDK. Обзор технологии Qt
Лаб. работа "Знакомство с MeeGo SDK" - ОС MeeGo "изнутри"
Лаб. работа "Использование библиотеки элементов графического интерфейса Qt"
- MeeGo API: сервисы коммуникации
Лаб. работа "Сервисы коммуникации MeeGo: IM-клиент с использованием telepathy" - MeeGo API: сервисы Интернета и местоположения
Лаб. работа "MeeGo сервисы Internet&Location" - MeeGo API: работа с графикой и интернационализация
Лаб. работа "Работа с графикой и интернационализация" - MeeGo API: работа с данными пользователя. QtMobility
Лаб. работа "Приложение для рассылки SMS" - MeeGo API: мультимедиа, датчики, сообщения, коммуникация между приложениями
Лаб. работа "Пример получения и записи данных от видеокамеры"
- Разработка приложения для БПЛА на платформе MeeGo
Лаб. работа "Разработка ПО бортового микрокомпьютера БПЛА: Передача файлов по сети" - Реализация качества разработки программных приложений
Лаб. работа "БПЛА: приложение для видеонаблюдения" - Коммерциализация программных приложений
Лаб. работа "Размещение приложения в Intel AppUp" - Заключение
Введение
Наиболее характерная черта нынешнего развития мировой экономики — колоссальные успехи и достижения в области техники и технологии, развитие наукоемких производств. Высокие темпы развития науки и технологий, а главное, масштабы и темпы их внедрения в производство и общественную жизнь, превратили научно-техническую революцию в естественный процесс, она стала перманентной. Благодаря всепланетному масштабу коммуникаций и росту уровня образования «ноу-хау» сейчас практически сразу после изобретения становятся общечеловеческим достоянием. В условиях динамичного развития рынка, усложнения его инфраструктуры информация становится таким же стратегическим ресурсом, как и традиционные материальные и энергетические. Современные технологии, позволяющие создавать, хранить, перерабатывать и обеспечивать эффективные способы представления информации, стали важным фактором конкурентоспособности и средством повышения эффективности управления всеми сферами общественной жизнедеятельности. Уровень информатизации является сегодня одним из главных факторов успешного развития всякого проекта, предприятия и организации.
Молодое поколение уже родилось в эпоху компьютеров, телевизоров, мобильных телефонов, Интернета и т. п. В разговорах со студентами преподаватели старшего поколения часто ловят себя на мысли, что для большинства из них компьютер - это привычная вещь, от которой не ждут ничего необычного!
Для людей старшего поколения знакомство с компьютерами начиналось с фантастических романов. Еще школьниками, не видя никогда настоящих компьютеров, многие из них были уверены, что скоро появится «Искусственный Разум», освободив нас от многих рутинных забот. Наверное поэтому люди старшего поколения, занятые в развитии информационных технологий (ИТ), острее чувствуют тенденции кардинальных преобразований. Конечно, кто-то возразит, что многие не дождавшись за 60 лет «искусственного разума», разочаровались в перспективах, тем более, что по мере развития ИТ кроме такой фантастической цели появилось огромное количество простых и сложных конкретных задач.
Новые потребности, глобализация задач, экспоненциальное возрастание сложности вычислительных систем и наметившаяся в последнее время тенденция по преодолению отставания отечественной ИТ отрасли в развитии суперкомпьютерных вычислений (T-Платформы, СКИФ-Аврора и др. проекты) заставляют уже в практическом плане задуматься о перспективах и возможной смене парадигмы: «Что такое процесс вычислений?» Объективные сегодняшние тенденции – миниатюризация и повышение производительности процессоров, как это и было предсказано законом Мура – приводят технологии к порогу развития традиционных вычислительных устройств. От приоритетов бесконечного наращивания тактовой частоты и мощности одного процессора производители переходят к многоядерности, параллелизму и т. п.
На прошедшей в сентябре 2010 года в Абрау-Дюрсо всеросийской научной конференции «Научный сервис в сети Интернет: суперкомпьютерные центры и задачи» (20-25 сентября 2010 г., г. Новороссийск) во многих докладах ставился вопрос: «Что будет при переходе от сегодняшних производительностей суперкомпьютеров в «TeraFlops» к следующему масштабу «ExaFlops»? «Переход к «ExaScale», естественно, должен будет затронуть такие важнейшие аспекты вычислительных процессов, как: модели программирования, степень и уровни параллельности, неоднородность программных и аппаратных систем, сложность иерархии памяти и трудности одновременного доступа к ней в распределенных вычислениях, стек системного и прикладного ПО, надежность, энергопотребление, сверхпараллельный ввод/вывод …». Все это неизбежно приведёт к смене парадигмы высокопроизводительных вычислений. Среди новых характерных черт будущей парадигмы все более отчетливо проступают следующие: процесс вычисления - набор одновременно работающих асинхронных моделей взаимодействующих динамических систем; стохастичность; гибридность.
Каковы тенденции изменений в организации взаимодействий с суперкомпьютерами? Сегодня положение во многом напоминает школьный опыт одного из авторов, относящийся к концу 70-х годов прошлого века, когда разработчик записывал на специальном бланке текст программы, потом кто-то подготавливал программу к загрузке в ЭВМ («набивал» перфокарты), потом, сдав пакет (колоду перфокарт) на счет, разработчик несколько дней ждал ответа, после получения разбирался с результатом и т. п. Сейчас также в полный рост стоит проблема организации эффективного взаимодействия с суперкомпьютером. Время сбора и подготовки данных становится критичным.
В мире ИТ уже во многих областях побеждает другая схема, в которой нет четкого выделения трех изолированных стадий: подготовка данных, счет, анализ результатов. Этому способствовало всеобщее проникновение персональных компьютеров, смартфонов, мобильных телефонов, которые кардинально изменили представления о месте ЭВМ в обычной жизни. Компьютеры уже интегрированы во многие сферы человеческой деятельности, разработчики встраивают миниатюрные вычислительные устройства и специализированные программы во внутрь многих процессов. В массовом сознании о роли ЭВМ в практической жизни уже произошел сдвиг от супервычислителя к мобильности, понимаемой в очень широком смысле.
Противоречивость мобильности и супервычислений сейчас имеет объективные основы (разные аппаратные платформы, назначения устройств и т. п.), но не слишком ли сильно в умах людей эти аспекты противопоставляются? Посмотрим на перспективы развития супервычислений. При движении к ExaScale переход к новой парадигме вычислений приведет, наверное, к тому, что архитектура вычислительных устройств «сдвинется» в сторону, как было сказано выше, «набора одновременно работающих асинхронных моделей взаимодействующих динамических систем». На это можно смотреть как на своеобразную «внутреннюю» мобильность суперкомпьютера. С другой стороны, уже сейчас работа многих мобильных сервисов, связанных с решениями научных, прикладных и управленческих задач, обеспечивается «в облаках». За внешней простотой общения для пользователей в основе «облачной» технологии скрываются мощные Data-центры и суперкомпьютеры!
А нужно ли противопоставлять мобильность суперкомпьютингу и воплощать в компьютерную жизнь принцип «миллионы муравьёв победят слона». Супервычислениям в будущем нет другой альтернативы, как широко использовать мобильные технологии. На смену жесткому разделению процессов:
<Вход – Счет – Выход>,
придет концепция с «размытыми» контурами.
В действительности мобильность и высокопроизводительные вычисления, по нашему мнению, будут вс? более тесно связаны. Посмотрим на пример такой традиционной области для ИТ, как «кодирование/декодирование информации». Полвека развития со времен пионерских работ Котельникова-Найквиста-Шеннона успели убедить несколько поколений в незыблемости и правильности постулатов о минимальном числе отсчетов необходимых для точного восстановления сигнала (функции). Но развитие технологий в 90-е годы прошлого века позволило массово перейти от обработки одномерных сигналов к изображениям, а сейчас на повестке дня стоит решение задач трехмерного телевидения. Однако реальные задачи обработки таких сигналов для традиционных средств кодирования/декодирования уже становятся «не по плечу» даже суперкомпьютерам!
Что же происходит сейчас у нас на глазах с развитием и изменением «парадигмы кодирования/декодирования»? Вместо классической появляется новая парадигма «Compressive Sensing», для которой еще даже не придумано русское название. В чем ее суть? Пользователям в реальном времени обычно не нужна вся информация о процессах в каждый момент времени, а важно только изменение принципиальных компонент. Например, при передаче ведеопотока с трехмерной сцены достаточно однократно передать общий вид и детали, выделить характерных персонажей, а потом только отслеживать их изменения. Оказывается, имея интеллектуальные сенсоры (использование принципа мобильности сбора информации), целесообразно до момента кодировки и передачи данных вместо определения всех значений трехмерной сцены (обычно это огромное число) сначала произвести несколько «сверток» всей сцены с некоторыми рандомизированными матрицами, а потом закодировать и передать для обработки суперкомпьютеру только эти несколько измерений. А это означает, что уже сейчас можно говорить о том, что мобильность и использование интеллектуальных агентов при сборе и предварительной обработке данных может существенно сократить время подготовки данных для суперкомпьютерных вычислений. Если глубже взглянуть на новую парадигму кодирования/декодирования, то становится ясным, что при ней существенно меняется не только процесс подготовки данных, но и сам процесс обработки.
Воплощение новой парадигмы суперкомпьютерных вычислений невозможно в отрыве от подготовки новых кадров. Это очень важно при обучении студентов. Они не должны «снижать горизонт» своих амбиций, должны понимать и верить, что и на их долю осталось много важных проблем, не имеющих пока приемлемых решений. В Санкт-Петербургском университете при поддержке корпорации Intel организована Учебно-исследовательская лаборатория Системного ПРограммирования и ИНформационных Технологий (СПРИНТ, СПбГУ-Intel). Если зайти на сайт Лаборатории СПРИНТ, то в глаза бросаются два мощных крыла:
- технологии высокопроизводительных вычислений и
- «мобильные» технологии.
Это можно показать на реальном примере исследовательского проекта «Мультиагентное взаимодействие группы легких беспилотных летательных аппаратов (БПЛА)». Трудно переоценить актуальность такой задачи для России с е? огромной территорией, сельскохозяйственными угодьями, лесами, множеством газо- и нефтепроводов, ЛЭП и «пожарами». При создании такой системы как раз и проявляются все обсуждавшиеся выше проблемы. Многие из задач – разведка полезных ископаемых, поиск людей, выяснение причин техногенных катастроф, плановое патрулирование территорий и т.п. требуют для получения практических результатов применения супервычислений с огромным количеством исходных данных, которые должны поступать на суперкомпьютер в режиме реального времени. Если используются традиционные БПЛА с оператором и приемом/передачей данных по радиоканалу, то реальные автоматизированные системы «захлебываются» от потоков данных, которые надо еще сохранять и передавать компьютеру для обработки. Об обратном потоке управления БПЛА обычно даже речь и не идет, так как результаты не удается получить в реальном времени.
Итак, сегодня в развитии информационных технологий на передний план выдвигается мобильность. Вместе с развитием высокопроизводительных вычислений, суперкомпьютеров, центров обработки данных, переходе к парадигме «вычислений в облаках» меняется место и роль мобильных устройств. От переносных телефонов и пультов дистанционного управления мы шагнули не просто к точкам входа в порталы разнообразных сетей и облаков а сейчас мобильные устройства – это высокоинтеллектуальные точки входа, которые способны решать большой круг задач автономно, самостоятельно получая ответы или предварительно обрабатывая входную информацию для более эффективной передачи и дальнейшей обработке, или существенно преобразовывая (визуализируя) результаты с серверов и облаков.
Основу пособия составил курс лекций по разработке приложений для мобильных устройств, прочитанный авторами осенью-зимой 2010 года для стажеров Лаборатория системного программирования и информационных технологий СПбГУ, созданной и финансируемой при поддержке корпорации Интел.
Главная цель пособия — дать общее представление о процессе разработки приложений для мобильных устройств, функционирующих под управлением операционной системы Linux, а также о специальных инструментах, ориентированных на новую операционную систему MeeGo и процессоры Atom-Intel. Настоящее пособие следует рассматривать в качестве общего вводного курса.
Курс состоит из трех разделов. Первый носит общий характер: сведения о платформе Atom/MeeGo, о том как разрабатывать приложения, о том, чем пользоваться и как все это может использоваться. Примеры разработки приложений собраны в последней части вместе с общими вопросами качества разработки приложений и возможностей их коммерциализации. Середина курса фокусируется на библиотеках MeeGo, на описании приемов того, как что-то можно сделать, используя новые перспективы и возможности Atom/MeeGo. Параллельно с лекционным курсом составлены лабораторные занятия основная цель которых – научить как на такой легкой и общедоступной платформе как Atom/MeeGo разрабатывать реальные приложения, например, разработать систему управления легким беспилотным летательным аппаратом (БПЛА).
Пособие состоит из введения, трех разделов и заключения, разделенных на 15 лекций, из которых 12 дополнительно снабжены лабораторными работами. Общий план и структуру курса разработали ОН. Граничин, В.И. Кияев, А.В. Корявко и С. Леви при активном участии И.О. Одинцова. Лекции 1,2 и 15 составлены О.Н. Граничиным, 3,12 – К.С. Амелиным, 4-8 – С. Леви совместно с Е.И. Антал, 9-11 – В.И. Васильевым, 13-14 – В.И. Кияевым. Лабораторные работы 1, 12 составлены К.С. Амелиным, 2-6 – С. Леви, 7 – В.И. Васильевым, 8-11 – А.В. Корявко. Учебные материалы доступны на сайте лаборатории СПРИНТ.
Авторы благодарят сотрудников корпорации Интел Алексея Владимировича Николаева и Игоря Олеговича Одинцова за инициативу по разработке и созданию курса, за активное участие в разработке программы курса, за постоянное внимание к продвижению проекта, многочисленные предложения и замечания, а также еще одного рецензента – заведующего кафедрой системного программирования математико-механического факультета СПбГУ профессора Андрея Николаевича Терехова, сделавшего ряд ценных замечаний, которые были использованы при подготовке пособия к печати.
При подготовке пособия были использованы материалы, размещенные на сайтах: www.meego.com, www.intel.com, www.nokia.ru и др.
Ссылки на программные продукты различных российских и зарубежных фирм не используются в рекламных целях и носят исключительно иллюстративный или справочный характер.
Пособие издано при финансовой поддержке Лаборатории СПРИНТ СПбГУ.
Следующая глава: 1. Общие сведения о платформе Atom/MeeGo и разработке приложений.
Пожалуйста, обратитесь к странице Уведомление об оптимизации для более подробной информации относительно производительности и оптимизации в программных продуктах компании Intel.
Комментарии (0) 
Обратная ссылка (0)
Оставить комментарий 
sergeyle
| ||
oleggranichin
| ||
a1exander
| ||
konstantinamelin
|

