автореферат диссертации по информатике, вычислительной технике и управлению, 05.13.11, диссертация на тему:Библиотека пользовательского интерфейса для встроенных и мобильных вычислительных устройств
Автореферат диссертации по теме "Библиотека пользовательского интерфейса для встроенных и мобильных вычислительных устройств"
УДК 004.5'438
Беляев Владимир Константинович
БИБЛИОТЕКА ПОЛЬЗОВАТЕЛЬСКОГО ИНТЕРФЕЙСА ДЛЯ ВСТРОЕННЫХ И МОБИЛЬНЫХ ВЫЧИСЛИТЕЛЬНЫХ УСТРОЙСТВ
05.13.11 - "Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей"
Автореферат диссертации на соискание ученой степени кандидата технических наук
Москва - 2004
Работа выполнена в ЗАО "МЦСТ"
Научный руководитель: кандидат технических наук
Забелин Сергей Вальтерович
Официальные оппоненты: доктор технических наук,
профессор
Сухомлин Владимир Александрович
кандидат технических наук Чернис Евгений Натанович
Ведущая организация: Московский институт радиотехники,
электроники и автоматики (технический университет)
Защита состоится 22 декабря 2004 г. в 16:00 на заседании диссертационного совета Д 002.043.01 при Институте микропроцессорных вычислительных систем РАН по адресу: 117997, ГСП-7, г. Москва, Нахимовский пр-кт, д. 36, корп. 1.
С диссертацией можно ознакомиться в библиотеке Института микропроцессорных вычислительных систем РАН.
Автореферат разослан «_» ноября 2004 г.
Ученый секретарь диссертационного совета:
д.ф.-м.н., профессор
■(■¡Се Михайлюк M.B.
Общая характеристика работы
Актуальность темы. Одним из наиболее значительных событий, произошедших в последнее время в области развития вычислительной техники, можно назвать появление компьютеризированных пользовательских устройств, спектр которых весьма широк - от сотовых телефонов и электронных записных книжек до устройств контроля систем автомобиля и терминалов в системах управления домом. Это так называемые встроенные и мобильные устройства, представляющие собой полноценные вычислительные машины со своими микропроцессором, операционной средой и программным обеспечением.
Разработка программного обеспечения требуется для каждого нового типа подобных устройств. При этом время до выхода продукта на рынок, как правило, весьма ограничено. Соответственно, необходимо выбирать среду разработки и исполнения приложений, которую отличали бы хорошая переносимость, удобные изобразительные возможности исходного кода и платформенная независимость исполняемого кода. Для этого хорошо подходит Java в качестве защищенной операционной среды. В последние годы Java прочно заняла свое место в качестве технологии в этой нише.
Однако даже применение Java в качестве среды исполнения программного обеспечения не решает проблему, связанную с разработкой интерфейса пользователя (ИП) в приложениях для данного типа вычислительных устройств. В отличие от настольных ПЭВМ, применяющих традиционные интерфейсные средства ввода/вывода (монитор, клавиатура и мышь), для встроенных и мобильных вычислительных устройств характерно использование широкого (и при этом постоянно расширяющегося) спектра средств управления. В качестве примера можно назвать различные контрольные панели для мобильных устройств, системы распознавания письма и речи, голосовой вывод и т.д.
Для каждого определённого типа средств управления производители вычислительных устройств предоставляют специальный интерфейс для разработки приложений, т.е. библиотеку ИП, в которой учтены особенности этих средств. В результате при разработке новой системы возникает проблема адаптации приложений для каждого типа интерфейсных средств ввода/вывода. При этом при создании новых приложений их приходится разрабатывать для (и тестировать на) всех вариантах ИП, применяемых в определённой серии вычислительных устройств. Это увеличивает стоимость разработки приложений, задерживает время выхода новой системы на рынок, а также увеличивает стоимость её последующего
Существует возможность решить указанную проблему для достаточно большого класса приложений. Это так называемые приложения общего характера, в которых взаимодействие с пользователем сводится к диалогу. К ним относятся различные настройщики системы (например, настройщик параметров устройства диагностические
приложения (например, приложение, контролирующее уровень заряда батареи в мобильном устройстве и сообщающее пользователю о необходимости подзарядки). К этой группе также можно отнести офисные приложения, такие как адресные и телефонные книги, органайзеры, календари, хронометры и т.д.
Для разрешения этой проблемы необходима разработка специальной библиотеки пользовательского интерфейса, представляющей собой абстракцию более высокого уровня для существующих систем ИП, применяемых в вычислительных устройствах с различными интерфейсными средствами ввода/вывода. В связи с этим становятся актуальными задачи, связанные с разработкой такой библиотеки и принципов её реализации в различных системах. Соответственно, указанную разработку предлагается назвать библиотекой абстрактного пользовательского интерфейса (АПИ).
Целью диссертационной работы является разработка и исследование новой модели взаимодействия приложения с пользователем, разработка на её основе библиотеки АПИ, а также анализ проблем, связанных с реализацией этой библиотеки в различных системах и их практическое решение. Исходя из поставленной цели, в работе решаются следующие задачи:
• исследование существующих библиотек ИП, представленных в технологии Java для встроенных и мобильных вычислительных устройств, анализ их задач и принципов работы, а также возможности применения наработок из этих библиотек;
• определение требований к библиотеке АПИ для встроенных и мобильных вычислительных устройств в условиях независимости от интерфейсных средств ввода/вывода;
• разработка новой модели взаимодействия приложения с пользователем и её проецирование на язык программирования — создание интерфейсов библиотеки;
• разработка общих принципов реализации библиотеки АПИ;
• разработка принципов реализации библиотеки АПИ для различных систем;
• оценка выполнения требований, предъявленных к разрабатываемой библиотеке.
Предмет исследования составляют различные аспекты разработки библиотеки АПИ и её реализации для среды Java 2 Platform, Micro Edition:
• модели взаимодействия, предоставленные в существующих библиотеках ИП;
• возможность проекции разработанной модели на язык программирования;
• способы реализации библиотек ИП и их пригодность в случае библиотеки АПИ;
• особенности реализации библиотеки АПИ в различных системах ИП;
• степень выполнения требований, предъявленных к библиотеке АП.
Методы исследования относятся к области системного программирования и технологии разработки программного обеспечения. Применимость разработанного интерфейса для создания приложений оценивалась посредством анализа выполнения требований к библиотеке АПИ. Эффективность принятых решений оценивалась посредством сравнительного анализа организации и процесса функционирования интерпретатора запроса (как средства реализации библиотеки АПИ) и приложения на базе низкоуровневой библиотеки ИП.
Научная новизна работы заключается в обобщении задач существующих систем ИП для встроенных и мобильных вычислительных устройств, разработке новой модели взаимодействия приложения с пользователем в условиях неопределённости интерфейсных средств ввода/вывода, разработке на её основе библиотеки абстрактного пользовательского интерфейса и принципов её реализации для различных систем:
• разработаны общие требования к библиотеке АПИ, а также предложен обобщённый критерий отбора её функций;
• определены задачи и принципы функционирования этой библиотеки, а также способ её реализации, состоящий в динамическом построении конечного ИП по абстрактному описанию, т.е. применении интерпретатора;
• разработан метод оптимизации процесса функционирования библиотеки АПИ для случая вывода приложением текстовой информации;
• разработаны принципы представления контейнера запросов для различных систем, а также различные типы контейнера для повышения применимости интерфейса.
Практическая ценность результатов работы состоит в том, что на основе результатов анализа и обобщения задач ИП и создания соответствующей модели взаимодействия была разработана библиотека АПИ для встроенных и мобильных вычислительных устройств с различными интерфейсными средствами ввода/вывода. Библиотека была реализована для различных систем на базе графического интерфейса пользователя (ГИП) и системы на базе голосового управления для технологии Java 2 Platform, Micro Edition (J2ME). Успешное выполнение всех предъявленных к библиотеке требований подтвердило её пригодность для решения проблемы адаптации большого класса приложений для различных систем ИП. Результаты проведённого исследования носят общий характер, поэтому их применение не ограничено системами на базе технологии Java.
Основные практические результаты, выносимые на защиту-
На защиту выносятся следующие основные практические результаты, полученные в ходе выполнения диссертационной работы:
1) Задачи и принципы работы библиотеки АПИ:
• обобщённый критерий отбора задач библиотеки АПИ;
• запрос на взаимодействие как главный принцип функционирования;
• принципы осуществления запроса к системе и обработки ответа пользователя;
• понятие информационного запроса для повышения применимости библиотеки;
• понятие обновляемого запроса для оптимизации работы библиотеки;
• понятие запроса на взаимоисключающий или множественный выбор.
2) Принципы реализации библиотеки АПИ:
• применение интерпретатора для динамического построения конечного ИП по переданному абстрактному описанию;
• преимущества применения низкоуровневого интерпретатора;
• принципы составления и разбор правильности запроса;
• принципы обработки обновляемого запроса;
• принципы обработки контейнера запросов различных типов;
• особенности реализации в системе на базе голосового управления.
На основе разработанной модели была создана библиотека абстрактного пользовательского интерфейса и осуществлена её реализация для систем на базе ГИП и на базе распознавания/синтеза речи, а именно:
• в системе на базе Personal Java 1.0 (для последующего переноса на конфигурацию CDC 1.0, профиль РВР 1.0) для ГИП с черно-белым экраном с разрешением 192x96;
• в системе на базе Personal Java 1.0 для ГИП с цветным экраном (256 цветов) с разрешением 320x420;
• в системе на базе Personal Java 1.0 для ИП, основанного на механизме распознавания/синтеза речи фирмы Fonix.
Разработанные библиотека АПИ и её реализация для указанных систем вошли в состав опытного продукта, созданного в рамках проекта Java Telematics Technology (JTT) фирмой Sun Microsystems в 2000-2002 годах. Реализованная библиотека АПИ была адаптирована и использована для работы в составе:
• эмулятора пользовательского интерфейса клиентской части JTT;
• эталонной реализации (reference implementation) клиентской части Г^для платформы x86/windows 2000;
• опытной реализации клиентской части JTT для платформы SuperHitachi2/VxWorks/Personal Java 1.0.
Разработанное программное обеспечение прошло этап опытной эксплуатации в фирмах Sun Microsystems, ЗАО "МЦСТ" и показало хорошие результаты.
В дальнейшем возможно использование результатов работы в составе программного обеспечения для серии устройств одного типа, базирующихся на определённой конфигурации J2ME и имеющих различия в доступном интерфейсе пользователя. Кроме того, предложенные решения носят достаточно универсальный характер, что позволяет применять их при разработке библиотеки АПИ для встроенных и мобильных вычислительных устройств на базе технологий, отличных от технологии Java 2Platform, Micro Edition.
Публикации. По теме диссертации опубликованы 7 работ.
Структура и объём работы. Диссертация состоит из введения, трёх глав и заключения. Диссертация содержит 94 страницы, 22 иллюстрации, 5 таблиц. Список литературы насчитывает 52 наименования.
-6-
Содержание работы.
Во введении определено понятие абстрактности применительно к пользовательскому интерфейсу, рассмотрены его различные уровни для настольных ПЭВМ. Подчёркнуто, что успех разработки библиотеки АПИ высокого уровня для этого типа машин обусловлен применением в них традиционных интерфейсных средств ввода/вывода, а именно монитора, клавиатуры и мышки. Отмечено, что наибольшего успеха в предоставлении платформонезависимых абстракций для создания приложений для встроенных и мобильных устройств достигли разработки на базе Java, представленные технологией Java 2 Platform, Micro Edition, поэтому в диссертационной работе рассматриваются именно эти системы.
Дана характеристика проблем адаптации приложений для работы с различными библиотеками ИП, таким образом обоснована актуальность диссертационной работы. Поставлена цель исследования и задачи, решаемые для её достижения. Дана характеристика работы и её результатов.
В главе 1 проведён анализ существующих библиотек для разработки интерфейса пользователя для встроенных и мобильных вычислительных устройств, определена область применения библиотеки АПИ, а также определены требования к этой библиотеке.
В начале главы рассмотрены компоненты системы человек-машина и определено место библиотеки АПИ в этой системе (см. рис.1). Подчёркнуто, что конечный интерфейс пользователя, описанный посредством данной абстракции, должен строиться с применением библиотек ИП, разработанных для конкретных интерфейсных устройств ввода/вывода.
Рис. 1. Библиотеки АПИвсистеме человек-машина.
Для определения целевых систем ИП проведена классификация таких систем, применяемых в современных встроенных и мобильных вычислительных устройствах, позволившая установить их три основных группы, а именно:
1) Системы на базе графического интерфейса пользователя. Средством вывода в таких системах является графический дисплей, в качестве средств ввода применяются различные контрольные панели, сенсорные экраны, средства распознавание письма.
2) Системы на базе распознавания/генерации речи. Как правило, в них применяются не только микрофон и динамик, но и одна или несколько клавиш для управления процессом распознавания.
3) Смешанные системы, т.е. системы, использующие ГИП и распознавание/генерацию речи.
Смешанная система является расширением первых двух, т.е. её можно исключить из дальнейшего рассмотрения. Таким образом, при разработке библиотеки абстрактного пользовательского интерфейса следует учитывать системы на базе ГИП и в системы на базе распознавания/синтеза речи.
Проанализированы различные библиотеки ИП, представленные технологией Java в системах этих типов:
• Библиотека CLDC/MIDP (пакет javax. microedition. lcdui) была разработана в первую очередь для сотовых телефонов, соответственно принятая в ней модель взаимодействия ограничена применением небольшого сенсорного экрана и стандартной телефонной клавиатуры ITU-T.
• Библиотека CDC/PP (пакет j ava. awt) заимствована из технологии Java для настольных ПЭВМ, соответствующая модель взаимодействия строится на применении большого экрана, стандартной PC-клавиатуры, и двухмерного указателя.
• Библиотека JSAPI (пакет javax. speech) является довольно сложным комплексом, представляющим абстракцию для различных систем распознавания/синтеза речи. Соответствующая модель взаимодействия определяет переходы в различные состояния машины распознавания/синтеза речи, решает задачи речевого оформления и определения грамматики.
Сделаны выводы, что применение рассмотренных библиотек ИП ограничено устройствами с определённым типом средств ввода/вывода, для которых они разрабатывались, при этом библиотека JSAPI достаточно сложна для применения в обычных приложениях. Подчёркнуто также, что
принятие во внимание мимолётности речевой информации требует реструктуризации приложения при его адаптации для системы на базе распознавания/синтеза речи. В результате ещё больше подчеркнута актуальность работ по созданию библиотеки АПИ.
Библиотеку АПИ надо разрабатывать, ориентируясь на неопределённость интерфейсных средств ввода/вывода. Существуют также другие моменты, которые должны быть приняты во внимание при разработке этой библиотеки. Поэтому определены требования к библиотеке АПИ, а именно:
1. платформенная независимость: из-за разнородности систем, применяемых в вычислительных устройствах, разработчик ИП должен иметь возможность создавать его, не базируясь на знании о том, на какой системе будет работать этот интерфейс;
2. неопределённость средств ввода/вывода: это главное требование к разрабатываемой библиотеке. В приложении на базе библиотеки АПИ не определяются средства вывода, а также для них скрыта возможность получения и обработки событий от устройств ввода;
3. простота и эффективность реализации: библиотеку необходимо реализовывать для каждого типа интерфейсных устройств ввода/вывода, при этом затраты должны быть намного меньше, чем затраты на адаптацию приложений. Как правило, встроенные и мобильные вычислительные устройства также характеризуются ограниченными ресурсами процессора и памяти, поэтому для них может оказаться критичным размер исполняемой программы и эффективность её работы;
4. простота использования библиотеки: предлагаемые средства разработки АПИ должны обладать достаточной простотой применения, что гарантирует быстроту создания приложений на их основе, понятный интерфейс разработки, компактность описания приложения;
5. расширяемость описания: при необходимости сторонние разработчики могут расширять описание АПИ, выраженное посредством разрабатываемой библиотеки, например, добавлять строковые ресурсы, соответствующие определённому языку;
6. выразительность конечного интерфейса: описание ИП требует определённого уровня экспрессивности для организации взаимодействия пользователя с приложением. Например, если посредством библиотеки можно создать только пользовательский
интерфейс, позволяющий принять или отклонить предложение (ответить да или нет на поставленный вопрос), то она вряд ли найдет широкое применение;
7. отделение описания от функциональности: одной из вспомогательных задач АПИ является обеспечение управления удаленного устройства, т.е. конечный интерфейс предоставляется на одном устройстве, а результат отклика пользователя передается тем или иным способом на удаленное устройство для дальнейшей обработки.
Оценка успешности проведённого в диссертационной работе исследования определялась степенью выполнения указанных требований разработанной библиотекой АПИ. Отмечено, что выполнение требования платформенной независимости решается выбором Java в качестве языка реализации.
Составными частями решения поставленной задачи по разработке библиотеки АПИ и принципов её реализации являются:
• разработка модели взаимодействия приложения с пользователем;
• разработка проекции этой модели на язык программирования, т.е. интерфейсов библиотеки;
• разработка принципов реализации этой библиотеки.
Решение поставленной задачи позволит создать библиотеку АПИ для систем на базе распознавания/синтеза речи и системы на базе ГИП для технологии J2ME.
В главе 2 проведена разработка модели взаимодействия приложения с пользователем в условиях неопределённости интерфейсных средств ввода/вывода. Разработка модели заключалась в определении задач библиотеки и принципов её функционирования, а также последующем проецировании модели на язык программирования Java.
Предложено определить основные функции библиотеки АПИ путём рассмотрения задач, решаемых в существующих системах, с применением некоторого критерия выбора, а именно:
функции библиотеки АПИ должны быть легко реализуемы как в системе на базе ГИП, так и в системе на базе распознавания/синтезаречи.
Данный критерий достаточно прост и, по сути, вытекает из требований неопределённости средств ввода/вывода и простоты и
эффективности реализации. Однако именно он использовался при определении функций и основных принципов работы библиотеки АПИ.
Проанализированы задачи существующих библиотек ИП с применением указанного критерия. В результате определён набор основных функций библиотеки АПИ - предоставление текстовой информации пользователю, предоставление пользователю возможности выбора из некоторого количества предопределённых вариантов (описанных в виде текста) и предоставление пользователю возможности ввода произвольной текстовой информации. Сделано предположение, что указанный набор может дополняться для определённой системы исходя из контекста её работы, чем достигается выполнение требования выразительности конечного интерфейса. Например, в большинстве случаев можно будет рассматривать отдельно задачу ввода произвольного числа, которая является частным случаем ввода произвольной текстовой информации.
В условиях неопределённости интерфейсных средств ввода/вывода предложено ограничить взаимодействие приложения с пользователем осуществлением специального запроса к системе, описанного в некоторых абстрактных терминах, и получением от системы ответа пользователя. Например, при выводе текстовой информации в приложении осуществляется запрос на вывод текста, при этом реализация библиотеки для системы на базе ГИП представляет текст на экране, а реализация для системы с голосовым управлением предоставит его в виде голосового сообщения. Такой подход обеспечивает выполнение требования неопределённости средств ввода/вывода.
Принимая указанный принцип функционирования библиотеки за основу, исследован ряд возникающих вопросов при её работе, предложены и проанализированы их различные решения и выбраны оптимальные. В результате установлено, что:
1. тип запроса - асинхронный (не блокирующий), что позволяет избежать программирования потоков (thread) при создании приложения, т.е. отвечает требованию простоты использования библиотеки.
2. при осуществлении каждого запроса приложение задает метод-обработчик ответа пользователя, что позволит применять модульный подход при разработке приложения; параметром этого метода является ответ пользователя, в котором содержится информация об отклике пользователя на соответствующий запрос;
-113. не разрешается осуществлять несколько запросов одновременно -перед осуществлением нового запроса нужно отменить текущий;
4. приложению предоставляется метод для отмены запроса, после возврата из этого метода приложение может осуществлять следующий запрос;
5. информационный запрос не подразумевает ответ пользователя, поэтому он отменяется системой при любом следующем запросе;
Рассмотрены проблемы управления активностью приложения при работе с АЛИ. Отмечено, что понятие активности приложения связано напрямую с особенностями организации системы, на которой это приложение работает. Сделан вывод, что библиотека АПИ должна уведомлять приложение только об изменение активности в смысле работы с ИП, а также предоставлять приложению средство её уведомления об окончании работы приложения с АПИ.
Рис.2. Схема жизненного цикла приложения приработе с АПИ.
На рис. 2 дается схема жизненного цикла приложения при работе с АПИ, который соответствует разработанной модели взаимодействия. Сплошными линиями связаны действия, осуществляемые последовательно
в одном потоке, пунктирные линии указывают на действия, происходящие в новых потоках по определённым событиям, стрелки определяют очерёдность действий. В прямоугольниках, обозначенных пунктирными линиями, указаны необязательные действия.
В заключительной части главы проведена разработка элементов библиотеки АПИ на язык программирования Java с использованием полученной модели. В табл. 1 приведены основные элементы разработанной библиотеки
Таб 1.
Основныеэлементыразработанной библиотеки
* Элемент ,; Java-тип, 1 V ? ' >г" г, Примечания-ч 4 * ?
АПИ приложение интерфейс Должен реализовываться приложением для работы с АПИ, необходим для получения элемента контекст, требует реализации методов уведомления о получении и потери активности.
контекст интерфейс Предоставляет приложению методы управления запросом, а также метод уведомления об окончании работы.
ответ пользователя интерфейс Содержит ответ пользователя.
обработчик ответа пользователя интерфейс Реализуется приложением и передается при осуществлении запроса. Если не задан, то запрос считается информационным.
тип запроса класс Предназначен для описания запроса, имеет наследников для каждого типа запроса, содержит вспомогательные элементы, такие как описание запроса.
Показано, что полученный интерфейс отвечает требованию простоты использования библиотеки - исключение из библиотеки задачи оформления (графического или звукового) с одной стороны уменьшает количество элементов библиотеки, с другой делает описание самого приложения гораздо компактнее. Выполнение требования расширяемости описания достигается применением стандартных средств многоязыковой поддержки в Java. Наконец, определенная степень выполнения требования выразительности конечного интерфейса достигается введением в библиотеку дополнительных наследников элемента тип запроса,
соответствующих контексту применения этой библиотеки. На основании данных заключений делается вывод о перспективности использования такого интерфейса для разработки приложения.
В главе 3 проводится разработка принципов реализации библиотеки АПИ. Разрабатывается общий подход к реализации, после чего предлагается несколько дополнений к модели взаимодействия и соответствующему интерфейсу библиотеки, а также разрабатываются принципы реализации для различных систем ИП.
Проанализированы традиционные способы реализации библиотеки ИП, состоящие в статическом связывании абстрактного элемента библиотеки высокого уровня с некоторым элементом платформозависимой библиотеки. Сделан вывод, что такой подход значительно усложняет выполнение требования отделения описания от функциональности, а также ограничивает выразительность конечного интерфейса. В результате предложно осуществлять динамическое построение конечного пользовательского интерфейса с утилизацией библиотеки низкого уровня согласно переданному в запросе абстрактному описанию, т.е. применять интерпретатор запроса от приложения. Такой подход лишён указанного недостатка, при этом при построении конечного пользовательского интерфейса по абстрактному описанию могут применяться сразу несколько элементов библиотеки низкого уровня, чем достигается требуемая степень его выразительности.
Одной из главных задач при создании интерпретатора является минимизация соответствующих затрат и обеспечение эффективной работы интерпретатора - это соответствует выполнению требования простоты и эффективности реализации. Для решения этой задачи проанализировано применение универсального и низкоуровневого интерпретаторов. В универсальном интерпретаторе предполагается ограниченный набор интерфейсов адаптации на новую систему, что уменьшает затраты на реализацию библиотеки, однако ограниченное использование всех средств определённой системы ввода/вывода таким интерпретатором ухудшит выполнение требования выразительности конечного интерфейса. В результате предложено разрабатывать интерпретатор низкого уровня для каждой новой системы. Этапы его работы представлены на рис. 3.
Здесь стрелки с пунктирной линией обозначают взаимодействие с приложением. Первым этапом является получение и разбор запроса от приложения, заключительным этапом будет передача приложению ответа пользователя. Каждому запросу интерпретатор ставит в соответствие элемент (или элементы) ИП библиотеки низкого уровня, создаёт его, определяет средства обработки событий от этого элемента и активирует его (этапы 1-5). После активации элемента ИП начинается период
взаимодействия с пользователем (этап 6), длительность по времени которого в целом не определена. Во время этого периода интерпретатор обрабатывает события от элемента ИП и оценивает правильность ответа. Если полученный ответ удовлетворяет данному запросу, то интерпретатор заканчивает работу с элементом ИП, создаёт элемент ответ пользователя и передает его в качестве параметра в метод-обработчик ответа приложения (этапы 7-10).
Сделан вывод, что предложенный подход к реализации библиотеки АПИ является оптимальным. Отмечена простота и однотипность устройства интерпретатора для различных систем ИП, возможность неограниченного применения элементов библиотеки ИП низкого уровня.
Рис. 3. Этапыработы интерпретатора запросов.
Сравнение задач, выполняемых интерпретатором, с задачами обычного пользовательского приложения средней сложности позволило сделать важный вывод, что эффективность работы интерпретатора, а также затраты на его создание сравнимы с соответствующими характеристиками для такого приложения, что подтверждает выполнение требования простоты и эффективности реализации. Данные выводы были
подтверждены практически после реализации библиотеки для различных систем ЮТ. Например, для системы на базе ГИП с ограниченными возможностями объём исходного кода интерпретатора составляет приблизительно 600 строк на языке программирования Java.
Исследован ряд других вопросов, связанных с использованием интерпретатора. Предложены и проанализированы их различные решения и выбраны оптимальные. В результате установлено, что:
1. Разбор правильности составления запроса должен производиться на уровне интерпретатора (а не объявления интерфейсов библиотеки).
2. Введение в библиотеку понятия обновляемый запрос (приложение может обновить запрос, не прерывая его) позволяет оптимизировать её работу для информационного запроса, исключив часть подготовительных этапов работы интерпретатора.
3. Введение в библиотеку элемента контейнер запросов позволяет существенно упростить структуру приложения и значительно улучшить выразительность конечного интерфейса для систем на базе ГИП с расширенными возможностями. Отмечено, что существующие библиотеки ГИП определяют контейнер графических элементов, что является аналогом предложенного решения.
4. Элемент контейнер обрабатывается так же, как и элемент выбор из списка, при этом элементами такого списка будут идентификаторы (например, поле описание запроса) дочерних элементов контейнера. Однако для систем на базе ГИП с расширенными возможностями интерпретатор может отобразить все дочерние элементы контейнера на экране одновременно.
5. Введение в библиотеку понятий запросов на взаимоисключающий и множественный выбор при использовании контейнера позволило значительно улучшить применимость разработанной библиотеки.
В заключительной части главы разработаны принципы реализации интерпретатора для систем на базе распознавания/синтеза речи. Предложен способ обеспечения конкурентного доступа к устройству аудио-вывода для механизма генерации голоса и механизма проигрывания аудио-ресурсов. Проанализированы особенности поддержки голосовых команд, которые должны быть активны при работе любого приложения. Предложен и проанализирован способ оптимального обеспечения развязки для систем с блокирующими методами работы с механизмом распознавания/синтеза речи.
В Заключении приводятся основные результаты диссертационной работы. Сделан вывод, что разработанные принципы функционирования библиотеки АПИ и её реализации позволяют создать соответствующую библиотеку, отвечающие всем предъявленным к ней требованиям. Отмечено, что при разработке библиотеки АПИ были реализованы две низкоуровневые библиотеки ГИП и библиотека на базе механизма распознавания/синтеза речи. Общий объём реализованной системы составил приблизительно 55000 строк на языке программирования Java.
Выводы по результатам диссертации
1. С целью адаптации приложений для различных систем ИП, применяемых во встроенных и мобильных вычислительных устройствах, предложено разработать библиотеку абстрактного пользовательского интерфейса, позволяющую создавать приложения в условиях неопределённости интерфейсных средств ввода/вывода.
2. Проведена классификация целевых систем ИП встроенных и мобильных вычислительных устройств, определившая их основные типы - системы на базе распознавания/синтеза речи и системы на базе ГИП. Принято решение при разработке модели взаимодействия ориентироваться на эти типы систем.
3. В результате анализа существующих библиотек ИП, представляемых технологией Java для этих систем, установлено, что их применение ограничено системами с конкретным типом интерфейсных средств ввода/вывода, для которых они создавались. Вследствие этого необходима разработка новой модели взаимодействия приложения с пользователем и создание библиотеки АПИ на её основе.
4. Разработана новая модель взаимодействия приложения с пользователем в условиях неопределённости интерфейсных средств ввода/вывода. Тем самым заданы задачи и принципы функционирования библиотеки АПИ, предложен метод её реализации:
a) библиотека позволяет осуществлять только базовый набор задач ИП, включающий ввод/вывод текстовой информации и выбор из предопределённых вариантов (описанных в виде текста), а также их различные производные;
b) взаимодействие приложения с пользователем ограничено осуществлением запроса к системе, описанного в абстрагированных от интерфейсных средств ввода/вывода терминах, и получением от системы ответа пользователя;
c) разрешено объединение группы запросов в один сложный, что позволяет упростить структуру приложения и значительно повысить выразительность конечного интерфейса пользователя для систем на базе ГИП с расширенными возможностями;
d) метод реализации библиотеки состоит в создании низкоуровневого интерпретатора запроса, основной задачей которого является динамическое построение конечного ИП по переданному в запросе абстрактному описанию.
5. На основе разработанной модели реализована библиотека для различных систем ИП в технологии Java 2 Platform, Micro Edition. Подтверждена универсальность и простота предложенного решения проблемы адаптации ИП приложений для этих систем.
6. Показано, что свойства библиотеки делают её перспективной для разработки приложений общего характера. Разделение описания интерфейса от функциональности позволяет использовать подобную библиотеку в системах клиент-сервер.
Опытная эксплуатация библиотеки АПИ в составе программного обеспечения Java Telematics Technology для системы на базе Personal Java 1.0/Fonix и системы на базе Personal Java 1.0/AWT на практике подтвердила, что библиотека может успешно применяться для создания широкого класса приложений в условиях неопределённости интерфейсных средств ввода/вывода. Библиотека может быть реализована достаточно простым способом для любой системы ИП в J2ME, что позволяет применять предложенный подход при выполнении трудоёмкой работы по адаптации ИП приложений для этой системы.
Список работ, опубликованных по теме диссертации
1. Беляев В.К., Афремов П.Н. Принципы организации абстрактного пользовательского интерфейса в Java 2 Platform, Micro Edition // Тезисы докладов XLV научной конференции МФТИ, ч. I - М.: МФТИ, 2002. С. 45-47.
2. Беляев В.К., Мухин И.А. Поддержка абстрактного пользовательского интерфейса в Java 2 Platform, Micro Edition // Труды XLVI научной конференции МФТИ, ч. I - М: МФТИ, 2003. С. 55-56.
3. Беляев В.К. Особенности реализации абстрактного пользовательского интерфейса в J2ME // Компьютеры в учебном процессе, № 1, 2004. С. 79-98.
4. Забелин СВ., Беляев В.К. Абстрактный пользовательский интерфейс в Java 2 Platform, Micro Edition: определение, задачи, принципы работы // Информационные технологии, № 3,2004. С. 30-38.
5. Беляев В.К. Оптимизация работы интерпретатора запроса при реализации абстрактного пользовательского интерфейса // Тезисы докладов XXX Международной молодежной научной конференции Тагаринские чтения", т. 5 - М.: "МАТИ"-РГТУ им. К.Э. Циолковского, 2004. С. 8.
6. Беляев В.К., Афремов П.Н, Мухин И.А. Абстрактный пользовательский интерфейс в Java 2 Platform, Micro Edition: библиотека и её поддержка // Информационные технологии, № 7,2004. С. 35-42.
7. Беляев В.К., Некрестьянов И.С. Методы описания абстрактного пользовательского интерфейса // Высокопроизводительные вычислительные системы и микропроцессоры. Сб. научн. трудов, вып. 6 -М.: ИМВС РАН, 2004. С. 86-96.
Принято к исполнению 17/11/2004 Исполнено 18/11/2004
Заказ № 464 Тираж: 100 экз.
ООО «11-й ФОРМАТ» ИНН 7726330900 Москва, Балаклавский пр-т, 20-2-93 (095)747-64-70 (095)318-40-68 www.autoreferat.ru
№23 О И
Оглавление автор диссертации — кандидата технических наук Беляев, Владимир Константинович
ВВЕДЕНИЕ.
1. АНАЛИЗ ОСОБЕННОСТЕЙ ИНТЕРФЕЙСА ПОЛЬЗОВАТЕЛЯ В JAVA.
1.1 Системы для встроенных и мобильных устройств.
1.1.1 Классификация систем интерфейса пользователя.
1.1.2 Интерфейс пользователя для мобильных устройств.
1.1.3 Интерфейс пользователя для встроенных устройств.
1.1.4 Интерфейс пользователя на базе распознавания/синтеза речи.
1.2 Требования к разрабатываемой библиотеке.
1.3 Постановка задачи.
1.4 Выводы.
2. РАЗРАБОТКА БИБЛИОТЕКИ.
2.1 Определение функций библиотеки.
2.1.1 Критерий выбора функций.
2.1.2 Основные функции библиотеки.
2.2 Принципы функционирования библиотеки.
2.2.1 Осуществление запроса приложения к системе.
2.2.2 Задание обработчика и разбор ответа пользователя.
2.2.3 Отмена запроса и информационный запрос.
2.2.4 Управление активностью пршожения.
2.3 Элементы библиотеки.
2.3.1 Эчемент контекст работы приложения.
2.3.2 Элемент тип запроса и его вспомогательные элементы.
2.3.3 Эчемент ответ пользователя и его обработчик.
2.3.4 Элемент АЛИ приложение.
2.4 Выводы.
3. ПРИНЦИПЫ РЕАЛИЗАЦИИ БИБЛИОТЕКИ.
3.1 Интерпретатор запроса.
3.1.1 Понятие и задачи интерпретатора.
3.1.2 Универсальный и татформозависимый интерпретаторы.
3.1.3 Особенности составления и разбора запроса.
3.1.4 Оптимизация работы интерпретатора.
3.2 Особенности реализации интерпретатора.
3 2.1 Реализация для систем ГИП с расширенными возможностями.
3.2.2 Реализация дчя систем на базе распознавания/синтеза речи.
3.3 Выводы.
Введение 2004 год, диссертация по информатике, вычислительной технике и управлению, Беляев, Владимир Константинович
Пользовательский интерфейс - одна из важнейших частей практически любого программного комплекса, обеспечивающая взаимодействие человека с вычислительной машиной. За последние десятилетия был достигнут огромный прогресс как в значительном расширении возможностей ввода и вывода информации, так и в методах разработки пользовательских интерфейсов. Начав с программирования взаимодействия с интерфейсными устройствами ввода/вывода в машинных кодах для каждой новой программы, разработчики пользовательских интерфейсов стали активно переходить ко всё более высоким уровням абстракции - от использования драйверов до специальных библиотек компонент пользовательского интерфейса (Motif, MFC, Qt, GTK и т.п.).
Задача создания абстрактного пользовательского интерфейса (АПИ) неоднократно обсуждалась в академических и коммерческих проектах. При этом в понятие абстрактности интерфейса зачастую вкладывался разный смысл в зависимости от конкретной цели применения. В общем случае АПИ - это описание пользовательского интерфейса, которое не связано с конкретным контекстом его применения. Так, например, его описание средствами Java позволяет обеспечить единый графический интерфейс приложения, например, на платформах Windows ХР и Solaris.
Активное исследование этого понятия в приложении к интерфейсу пользователя (ИП) началось в связи с общим стремлением к созданию платформонезависимого программного обеспечения. Отметим несколько характерных примеров (см. также рис. 1):
• абстракция для аппаратуры ввода-вывода. Например, драйвер интерфейсного устройства ввода/вывода имитирует взаимодействие с некоторым абстрактным (обобщенным) устройством, скрывает детали взаимодействия с конкретным устройством. Платой за обобщённость является потеря гибкости во взаимодействии; так, возможно, что некоторые передовые функции конкретного устройства окажутся недоступны;
• создание обобщенных компонент пользовательского интерфейса. Обобщённые компоненты позволяют создавать ИП из блоков, абстрагируясь от особенностей низкоуровневого общения. Примерами абстракции подобного вида являются XI1 [8] и Win32 API [9], или более высокоуровневые MFC [10] и Motif [44];
• абстракция для различных платформ. Обеспечение полной платформенной независимости приложения подразумевает возможность создания интерфейсов взаимодействия с пользователем, которые обеспечивают идентичную функциональность на разных платформах. Примерами такого направления абстракции являются GTK [43] и соответствующие пакеты Java — Abstract Window Toolkit (AWT) [11], Swing [12]. абстрактный интерфейс высокого уровня (SWING) абстрактный интерфейс низкого уровня (AWT) платформозависимый интерфейс высокого уровня (MFC) платформозависимый интерфейс низкого уровня (win32) виртуальный "драйвер" аппаратура
Рис. 1. Уровни абстракций в системе ИП для настольных компьютеров.
Следует отметить, что в контексте ПЭВМ использование вышеупомянутых подходов позволило значительно облегчить работу по созданию программного обеспечения, и, тем самым, косвенно ускорило прогресс развития в этой области. Этот успех основан, в частности, на том факте, что настольные компьютеры используют традиционный набор интерфейсных средств ввода/вывода для ИП, а именно монитор, клавиатуру и двухмерный указатель (мышь), для которых разработаны соответствующие абстракции.
Миграция информационных технологий в мир встроенных и мобильных вычислительных устройств (группа embedded and mobile devices) поставила новые задачи перед разработчиками ИП. Устройства данного класса представляют собой полноценную вычислительную машину со своим микропроцессором, операционной средой и программным обеспечением. Однако в отличие от настольных компьютеров данные платформы выделяются широким (и постоянно расширяющимся) спектром разнообразных средств управления, взаимодействие с которыми плохо укладывается в традиционные системы абстракций пользовательского интерфейса. Так, в одних устройствах вывод информации может осуществляться с применением графического дисплея, при этом характеристики дисплеев имеют принципиальные различия (например, размер экрана может отличаться на порядок), в других устройствах вывод осуществляется системой генерации речи. Стандартную клавиатуру заменили телефонные клавишные панели, всё большую популярность набирают также системы распознавания письма и речи и т.д. На рис. 2 приведены примеры таких устройств: а) -устройство с жидкокристаллическим дисплеем, основной и дополнительной клавиатурой, б) - устройство с цветным экраном и вводом на базе распознавания письма, в) - устройство с монохромным экраном и телефонной контрольной панелью. а) б) в\
Рис. 2. Примеры современных пользовательских устройств.
Каждый новый тип подобных устройств требует разработки собственного программного обеспечения. При этом, как правило, существуют жесткие временные рамки разработки до выхода на рынок. Соответственно, необходимо выбирать среду разработки и исполнения приложений, которую отличали бы хорошая переносимость, удобные изобразительные возможности исходного и платформенная независимость исполняемого кода. Для этого хорошо подходит Java в качестве защищенной операционной среды для встроенных и мобильных вычислительных устройств. В последние годы Java нашла широкое применение для данного класса устройств, происходит постоянное развитие интерфейсов взаимодействия Java-приложений с различными системами операционной среды, контролируемое стандартизирующей организацией Java Community Process (www.jcp.org). Поэтому, говоря о разработке абстракций пользовательского интерфейса для данного класса устройств, целесообразно рассматривать именно технологии на базе Java [7, 13].
Наибольший практический успех в создании платформонезависимых АПИ в контексте встроенных и мобильных вычислительных устройств достигнут технологией Java 2 Platform, Micro Edition (J2ME) [14]. Однако предлагаемые данной технологией модели взаимодействия ориентированны на пользовательские устройства с вполне определёнными типами интерфейсных средств ввода/вывода. Как следствие, приложение, даже будучи разработанным для указанной технологии, не является переносимым из-за различий в применяемых средствах ввода/вывода. интерактивное приложение основная часть приложения
•ч ^
Рис. 3. Структура приложения, адаптированного для различных устройств.
Существует два типа задач, для которых данный факт создаёт определённую проблему. Первый - это разработка пользовательских приложений общего назначения, таких как адресная книга, органайзер, календарь и так далее. Приложения такого типа востребованы в большинстве пользовательских устройств, при этом разработанная на Java основная часть приложения остаётся платформонезависимой, однако необходимо адаптировать его в части работы с ИП для каждого типа интерфейсных средств ввода/вывода (см. рис. 3). Второй тип задач обусловлен тем фактом, что в мире компьютеризированных пользовательских устройств уже не редкость сложные системы, функциональность которых определяется набором системных приложений. Например, это системы управления домом (интеллектуальный дом) [15] или системы, применяемые в автомобилях [16]. Соответствующее математическое обеспечение разрабатывается в рамках создания базовой технологии для её последующей адаптации к конфигурации системы от определённого производителя. Указанные системные приложения могут требовать взаимодействия с пользователем, что в свою очередь делает необходимым разрабатывать соответствующий программный код для каждого конкретного типа интерфейсных устройств ввода/вывода.
Таким образом, перед разработчиком программного обеспечения для встроенных и мобильных вычислительных устройств встаёт целый ряд проблем в части программирования взаимодействия с пользователем:
• разработчику приходится иметь опыт использования множества различных интерфейсов (библиотек), соответствующих различным системам ввода/вывода, при этом число таких интерфейсов постоянно увеличивается;
• даже в рамках работы с одной библиотекой необходимо учитывать определённые характеристики целевого устройства. Например, ИП на базе библиотеки из Mobile Information Device Profile (MIDP) [17], разработанный для сотового телефона с небольшим экраном и клавишной панелью, в большинстве случаев будет малопригоден для применения в электронной записной книжке (personal digit assistant) с большим экраном и средствами ввода на базе системы распознавания письма;
• становится невозможным повторное использование уже разработанного пакета системных и пользовательских приложений, т.к. одна система может применяться в серии устройств с различными интерфейсными средствами ввода/вывода, а значит, потребуется адаптация этих приложений для каждого типа устройств в части работы с ИП.
Решению указанного круга проблем посвящена данная диссертационная работа.
Актуальность темы. Несовместимость систем для встроенных и мобильных вычислительных устройств при работе с интерфейсом пользователя требует адаптации приложений для каждой конкретной системы. В результате увеличивается стоимость разработки новой системы и время выхода её на рынок.
Для разрешения этой проблемы необходима разработка специальной библиотеки пользовательского интерфейса, представляющей собой абстракцию более высокого уровня для существующих систем ИП, применяемых в вычислительных устройствах с различными интерфейсными средствами ввода/вывода. В связи с этим становятся актуальными задачи, связанные с разработкой такой библиотеки и принципов её реализации в различных системах. Соответственно, указанную разработку предлагается назвать библиотекой абстрактного пользовательского интерфейса.
Целью диссертационной работы является разработка и исследование новой модели взаимодействия приложения с пользователем, разработка на её основе библиотеки АПИ, а также анализ проблем, связанных с реализацией этой библиотеки в различных системах и их практическое решение. Исходя из поставленной цели, в работе решаются следующие задачи:
• исследование существующих библиотек ИП, представленных в технологии Java для встроенных и мобильных вычислительных устройств, анализ их задач и принципов работы, а также возможности применения наработок из этих библиотек;
• определение требований к библиотеке АПИ для встроенных и мобильных вычислительных устройств в условиях независимости от средств ввода/вывода;
• разработка новой модели взаимодействия приложения с пользователем и её проецирование на язык программирования - создание интерфейсов библиотеки;
• разработка общих принципов реализации библиотеки АПИ;
• разработка принципов реализации библиотеки АПИ для различных систем;
• оценка выполнения требований, предъявленных к разрабатываемой библиотеке.
Предмет исследования составляют различные аспекты разработки библиотеки АПИ и её реализации для среды Java 2 Platform, Micro Edition:
• модели взаимодействия, предоставленные в существующих библиотеках ИП;
• возможность проекции разработанной модели на язык программирования;
• способы реализации библиотек ИП и их пригодность в случае библиотеки АПИ;
• особенности реализации библиотеки АПИ в различных системах ИП;
• степень выполнения требований, предъявленных к библиотеке АП.
Методы исследования относятся к области системного программирования и технологии разработки программного обеспечения. Применимость разработанного интерфейса для создания приложений оценивалась посредством анализа выполнения требований к библиотеке АПИ. Эффективность принятых решений оценивалась посредством сравнительного анализа организации и процесса функционирования интерпретатора запроса (как средства реализации библиотеки АПИ) и приложения на базе низкоуровневой библиотеки ИП.
Научная новизна работы заключается в обобщении задач существующих систем ИП для встроенных и мобильных вычислительных устройств, разработке новой модели взаимодействия приложения с пользователем в условиях неопределённости интерфейсных средств ввода/вывода, разработке на её основе библиотеки абстрактного пользовательского интерфейса и принципов её реализации для различных систем:
• разработаны общие требования к библиотеке АПИ, а также предложен обобщённый критерий отбора её функций;
• определены задачи и принципы функционирования этой библиотеки, а также способ её реализации, состоящий в динамическом построении конечного ИП по абстрактному описанию, т.е. применении интерпретатора;
• разработан метод оптимизации процесса функционирования библиотеки АПИ для случая вывода приложением текстовой информации;
• разработаны принципы представления контейнера запросов для различных систем, а также различные типы контейнера для повышения применимости интерфейса.
Практическая ценность результатов работы состоит в том, что на основе результатов анализа и обобщения задач ИП и создания соответствующей модели взаимодействия была разработана библиотека АПИ для встроенных и мобильных вычислительных устройств с различными интерфейсными средствами ввода/вывода. Библиотека была реализована для различных систем на базе графического интерфейса пользователя (ГИП) и системы на базе голосового управления для технологии J2ME. Успешное выполнение всех предъявленных к библиотеке требований подтвердило её пригодность для решения проблемы адаптации большого класса приложений для различных систем ИП. Результаты проведённого исследования носят общий характер, поэтому их применение не ограничено системами на базе технологии Java.
Основные практические результаты, выносимые на защиту.
На защиту выносятся следующие основные практические результаты, полученные в ходе выполнения диссертационной работы:
1) Задачи и принципы работы библиотеки АПИ:
• обобщённый критерий отбора задач библиотеки АПИ;
• запрос на взаимодействие как главный принцип функционирования;
• принципы осуществления запроса к системе и обработки ответа пользователя;
• понятие информационного запроса для повышения применимости библиотеки;
• понятие обновляемого запроса для оптимизации работы библиотеки;
• понятие запроса на взаимоисключающий или множественный выбор.
2) Принципы реализации библиотеки АПИ:
• применение интерпретатора для динамического построения конечного ИП по переданному абстрактному описанию;
• преимущества применения низкоуровневого интерпретатора;
• принципы составления и разбор правильности запроса;
• принципы обработки обновляемого запроса;
• принципы обработки контейнера запросов различных типов;
• особенности реализации в системе на базе голосового управления.
На основе разработанной модели была создана библиотека абстрактного пользовательского интерфейса и осуществлена её реализация для систем на базе ГИП и на базе распознавания/синтеза речи, а именно:
• в системе на базе Personal Java 1.0 (для последующего переноса на конфигурацию CDC 1.0, профиль РВР 1.0) для ГИП с черно-белым экраном с разрешением 192x96;
• в системе на базе Personal Java 1.0 для ГИП с цветным экраном (256 цветов) с разрешением 320x420;
• в системе на базе Personal Java 1.0 для ИП, основанного на механизме распознавания/синтеза речи фирмы Fonix.
Разработанные библиотека АПИ и её реализация для указанных систем вошли в состав опытного продукта, созданного в рамках проекта Java Telematics Technology (JTT) фирмой Sun Microsystems в 2000-2002 годах. Реализованная библиотека АПИ была адаптирована и использована для работы в составе:
• эмулятора пользовательского интерфейса клиентской части JTT;
• эталонной реализации (reference implementation) клиентской части JTT для платформы x86/windows 2000;
• опытной реализации клиентской части JTT для платформы Super HitachiUVxWorks!Personal Java 1.0.
Разработанное программное обеспечение прошло этап опытной эксплуатации в фирмах Sun Microsystems, ЗАО "МЦСТ" и показало хорошие результаты.
В дальнейшем возможно использование результатов работы в составе программного обеспечения для серии устройств одного типа, базирующихся на определённой конфигурации J2ME и имеющих различия в доступном интерфейсе пользователя. Кроме того, предложенные решения носят достаточно универсальный характер, что позволяет применять их при разработке библиотеки АПИ для встроенных и мобильных вычислительных устройств на базе технологий, отличных от технологии Java 2 Platform, Micro Edition.
Публикации.
По теме диссертации опубликованы 7 работ:
1. Беляев В.К., Афремов П.Н. Принципы организации абстрактного пользовательского интерфейса в Java 2 Platform, Micro Edition // Тезисы докладов XLV научной конференции МФТИ, ч.1 - М.: МФТИ, 2002. С. 45-47 [1].
2. Беляев В.К., Мухин И.А. Поддержка абстрактного пользовательского интерфейса в Java 2 Platform, Micro Edition // Труды XLVI научной конференции МФТИ, ч.1 - M.: МФТИ, 2003. С. 55-56 [2].
3. Беляев В.К. Особенности реализации абстрактного пользовательского интерфейса в J2ME // Компьютеры в учебном процессе, № 1, 2004. С. 79-98 [3].
4. Забелин C.B., Беляев В.К. Абстрактный пользовательский интерфейс в Java 2 Platform, Micro Edition: определение, задачи, принципы работы // Информационные технологии, № 3, 2004. С. 30-38 [4].
5. Беляев В.К. Оптимизация работы интерпретатора запроса при реализации абстрактного пользовательского интерфейса // Тезисы докладов XXX Международной молодежной научной конференции "Гагаринские чтения", т. 5 - М.: "МАТИ"-РГТУ им. К.Э. Циолковского, 2004. С. 8 [5].
6. Беляев В.К., Афремов П.Н, Мухин И.А. Абстрактный пользовательский интерфейс в Java 2 Platform, Micro Edition: библиотека и её поддержка // Информационные технологии, № 7,2004. С. 35-42 [6].
7. Беляев В.К., Некрестьянов И.С. Методы описания абстрактного пользовательского интерфейса // Высокопроизводительные вычислительные системы и микропроцессоры. Сб. научн. трудов, вып. 6 - М.: ИМВС РАН, 2004. С. 86-96 [7].
Апробация.
Результаты работы докладывались и обсуждались на XLV, XLVI научных конференциях Московского Физико-Технического Института, на XXX Международной молодёжной конференции "Гагаринские чтения", а также семинарах ЗАО "МЦСТ" и ИМВС РАН.
Краткое содержание работы.
В главе 1 проводится анализ существующих библиотек для разработки интерфейса пользователя для встроенных и мобильных вычислительных устройств, определяется область применения библиотеки АПИ, а также определяются требования к этой библиотеке.
Для определения целевых систем ИП в разделе 1.1.1 проводится классификация таких систем, применяемых в современных встроенных и мобильных вычислительных устройствах. По результатам проведённой классификации делается вывод, что в диссертационной работе должны рассматриваться системы на базе ГИП и системы на базе распознавания/синтеза речи.
Разделы 1.1.2 и 1.1.3 посвящены анализу существующих разработок для систем на базе ГИП, представленных в технологии J2ME - MIDP [17] и AWT [11]. Проводится анализ задач и принципов функционирования соответствующих библиотек. В разделе 1.1.4. анализируется абстракция для работы с механизмом распознавания/синтеза речи, представленная библиотекой Java Speech [48]. Делается вывод об ограниченной области применения данных библиотек, а также сложности создания простых приложений на основе Java Speech. В результате ещё больше подчеркивается актуальность работ по созданию библиотеки АПИ.
Сформулированы требования к библиотеке АПИ, обусловленные контекстом её применения, а также включающие ряд типовых требований к библиотекам ИП. На основании оценки степени выполнения указанных требований разработанной библиотекой будет определяться успешность проведённого в диссертационной работе исследования.
В главе 2 проводится разработка модели взаимодействия приложения с пользователем в условиях неопределённости интерфейсных средств ввода/вывода. Разработка модели заключалась в определении задач библиотеки и принципов её функционирования, а также последующем проецировании модели на язык программирования Java.
Проводится анализ задач существующих библиотек ИП с применением критерия их отбора для разрабатываемой библиотеки. В результате определяется набор основных функций библиотеки АПИ, а именно: ввод/вывод текстовой информации пользователю и выбор из списка, заданного в виде текста. Делается предположение, что указанный набор может дополняться для определённой системы исходя из контекста её работы, чем достигается определённая степень выразительности конечного интерфейса. Например, в большинстве случаев можно будет рассматривать отдельно задачу ввода произвольного числа, которая является частным случаем ввода текстовой информации.
В условиях неопределённости интерфейсных средств ввода/вывода предлагается ограничить взаимодействие приложения с пользователем осуществлением специального запроса к системе, описанного в некоторых абстрактных терминах, и получением от системы ответа пользователя. Принимая указанный принцип функционирования библиотеки за основу, исследуется ряд возникающих вопросов при её работе, предлагаются и анализируются их различные решения и выбираются оптимальные.
Рассматриваются проблемы управления активностью приложения при работе с АПИ. Отмечается, что понятие активности приложения связано напрямую с особенностями организации системы, на которой это приложение работает. Делается вывод, что библиотека АПИ должна уведомлять приложение только об изменение активности в смысле работы с ИП, а также предоставлять приложению средство её уведомления об окончании работы приложения с АПИ.
Заключительная часть главы посвящена проецированию разработанной модели на язык программирования Java. Показывается успешное выполнение всех требований к интерфейсной части разрабатываемой библиотеки.
В главе 3 проводится разработка принципов реализации библиотеки АПИ в различных системах. Разрабатывается общий подход к реализации, после чего предлагается несколько дополнений к модели взаимодействия и соответствующему интерфейсу библиотеки, а также разрабатываются принципы реализации для различных систем ИП.
В качестве главного принципа предлагается осуществление динамического построения конечного пользовательского интерфейса с применением библиотеки низкого уровня согласно переданному в запросе абстрактному элементу, т.е. создание интерпретатора запроса от приложения. Такой подход позволяет достичь максимальной степени выполнения требований, предъявленных к библиотеке.
Исследуется ряд проблем разработки такого интерпретатора, таких как оптимальность применения универсального интерпретатора, выбор уровня реализации для осуществления разбора правильности описания запроса, предлагаются их решения. Также предлагается оптимизация работы интерпретатора введением в библиотеку понятия обновляемый запрос.
Рассматриваются особенности применения библиотеки для систем на базе ГИП с расширенными возможностями. Делается вывод о целесообразности добавления в библиотеку понятия контейнер запросов. Определяются правила использования контейнера, а также принципы его обработки в различных системах. В заключительной части главы разрабатываются принципы реализации интерпретатора для систем на базе распознавания/синтеза речи. Отмечается, что оптимальность всех предложенных решений была подтверждена практически после реализации библиотеки для системы этого типа.
В Заключении приводятся основные результаты диссертационной работы. Делается вывод, что разработанные принципы функционирования библиотеки АПИ и её реализации позволяют создать соответствующую библиотеку, отвечающие всем предъявленным к ней требованиям. Отмечается, что при разработке библиотеки АПИ были реализованы две низкоуровневые библиотеки ГИП и библиотека на базе механизма распознавания/синтеза речи. Общий объём реализованной системы составил приблизительно 55000 строк на языке программирования Java.
Заключение диссертация на тему "Библиотека пользовательского интерфейса для встроенных и мобильных вычислительных устройств"
3.3 Выводы
1. Реализация библиотеки АПИ сводится к разработке низкоуровневого интерпретатора, главной задачей которого является динамическое построение конечного пользовательского интерфейса по переданному в запросе абстрактному описанию. Такой подход обеспечивает выполнение требований отделения описания от функциональности и выразительности конечного интерфейса.
2. Сложность устройства такого интерпретатора, объём работ по его созданию и эффективность его функционирования сравнимы с соответствующими показателями платформозависимого приложения средней сложности, что отвечает требованию простоты и эффективности реализации.
3. Разбор правильности запроса должен осуществляться на уровне работы интерпретатора. В частности, такой подход означает, что элементы тип запроса имеют только декларативный характер. Это также отвечает требованию отделения описания от функциональности, т.е. позволяет использовать разработанный подход для организации удаленного взаимодействия.
4. Введение в библиотеку понятия обновляемый запрос с соответствующей реализацией позволяет оптимизировать работу интерпретатора для запросов информационного типа. Использование элемента контейнер запросов определяет ряд особенностей работы интерпретатора для систем с расширенными графическими возможностями, в частности позволяя улучшить выразительность конечного интерфейса для таких систем. Применение такого элемента потребовало ряда уточнений принципов работы библиотеки АПИ.
5. Определены возможные проблемы реализации интерпретатора для систем на базе распознавания/синтеза речи, такие как обеспечение конкурентного доступа к устройству аудио-вывода, обеспечения развязки для систем с блокирующими методами работы с механизмом распознавания/синтеза речи, и предложены их решения.
Заключение
1. С целью адаптации приложений для различных систем ИП, применяемых во встроенных и мобильных вычислительных устройствах, предложено разработать библиотеку абстрактного пользовательского интерфейса, позволяющую создавать приложения в условиях неопределённости интерфейсных средств ввода/вывода.
2. Проведена классификация целевых систем ИП встроенных и мобильных вычислительных устройств, определившая их основные типы — системы на базе распознавания/синтеза речи и системы на базе ГИП. Принято решение при разработке модели взаимодействия ориентироваться на эти типы систем.
3. В результате анализа существующих библиотек ИП, представляемых технологией Java для этих систем, установлено, что их применение ограничено системами с конкретным типом интерфейсных средств ввода/вывода, для которых они создавались. Вследствие этого необходима разработка новой модели взаимодействия приложения с пользователем и создание библиотеки АПИ на её основе.
4. Разработана новая модель взаимодействия приложения с пользователем в условиях неопределённости интерфейсных средств ввода/вывода. Тем самым заданы задачи и принципы функционирования библиотеки АПИ, предложен метод её реализации: a) библиотека позволяет осуществлять только базовый набор задач ИП, включающий ввод/вывод текстовой информации и выбор из предопределённых вариантов (описанных в виде текста), а также их различные производные; b) взаимодействие приложения с пользователем ограничено осуществлением запроса к системе, описанного в абстрагированных от интерфейсных средств ввода/вывода терминах, и получением от системы ответа пользователя; c) разрешено объединение группы запросов в один сложный, что позволяет упростить структуру приложения и значительно повысить выразительность конечного интерфейса пользователя для систем на базе ГИП с расширенными возможностями; d) метод реализации библиотеки состоит в создании низкоуровневого интерпретатора запроса, основной задачей которого является динамическое построение конечного ИП по переданному в запросе абстрактному описанию.
5. На основе разработанной модели реализована библиотека для различных систем ИП в технологии Java 2 Platform, Micro Edition. Подтверждена универсальность и простота предложенного решения проблемы адаптации ИП приложений для этих систем.
6. Показано, что свойства библиотеки делают её перспективной для разработки приложений общего характера. Разделение описания интерфейса от функциональности позволяет использовать подобную библиотеку в системах клиент-сервер.
Опытная эксплуатация библиотеки АПИ в составе программного обеспечения Java Telematics Technology для системы на базе Personal Java 1.0IFonix и системы на базе Personal Java 1.0/AWT на практике подтвердила, что библиотека может успешно применяться для создания широкого класса приложений в условиях неопределённости интерфейсных средств ввода/вывода. Библиотека может быть реализована достаточно простым способом для любой системы ИП в J2ME, что позволяет применять предложенный подход при выполнении трудоёмкой работы по адаптации ИП приложений для этой системы.
Работа над созданием библиотеки АПИ, результаты которой представлены во второй и третьей главах диссертационной работы, осуществлялась в рамках проекта Java Telematics Technology, проводившегося совместно фирмами ЗАО "МЦСТ" и Sun Microsystems в 2000/2002 годах. Автором было разработано большинство принципов функционирования библиотеки и способов оптимизации работы интерпретатора, использованных в проекте, и выполнено около 60% работ, связанных с реализацией этой библиотеки для указанных систем. Кроме указанной библиотеки были также реализованы низкоуровневые библиотеки на базе ГИП и на базе механизма распознавания/синтеза речи. Общий объём программного кода реализованных систем составил приблизительно 55000 строк на языке Java.
В заключение мне бы хотелось поблагодарить всех людей, принимавших участие в проекте JTT. Я признателен сотруднику фирмы Sun Microsystems, руководителю проекта JTT Бехфару Разави за предоставленную возможность работать над диссертацией. Отдельно хочу поблагодарить проф. В.В.Шилова, к.т.н. А.Д.Доброва и остальных людей, помогавших мне в написании этой работы, и без которых она была бы невозможна.
Библиография Беляев, Владимир Константинович, диссертация по теме Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей
1. Беляев В.К., Лфремов П.Н. Принципы организации абстрактного пользовательского интерфейса в Java 2 Platform, Micro Edition // Тезисы докладов XLV научной конференции МФТИ, 4.1 - М.: МФТИ, 2002. С. 45-47.
2. Беляев В.К., Мухин И.А. Поддержка абстрактного пользовательского интерфейса в Java 2 Platform, Micro Edition // Труды XLVI научной конференции МФТИ, ч.1 М.: МФТИ, 2003. С. 55-56.
3. Беляев В.К. Особенности реализации абстрактного пользовательского интерфейса в J2ME // Компьютеры в учебном процессе, № 1, 2004. С. 79-98.
4. Забелин С.В., Беляев В.К. Абстрактный пользовательский интерфейс в Java 2 Platform, Micro Edition: определение, задачи, принципы работы // Информационные технологии, № 3, 2004. С. 30-38.
5. Беляев В.К., Афремов П.Н, Мухин И.А. Абстрактный пользовательский интерфейс в Java 2 Platform, Micro Edition: библиотека и её поддержка // Информационные технологии, № 7, 2004. С. 35-42.
6. Беляев В.К., Некрестьянов И.С. Методы описания абстрактного пользовательского интерфейса // Высокопроизводительные вычислительные системы и микропроцессоры. Сб. научн. трудов, вып. 6 М.: ИМВС РАН, 2004. С. 86-96.
7. Davison A. Distributed Window Systems: A Practical Guide to XI1 and News // L: Addison-Wesley, 1992.
8. Villani P. Programming Win32 Under the API // L: CMP Books, 2001.
9. Shepherd G., Wingo S. MFC Internals: Inside the Microsoft(c) Foundation Class Architecture// L: Addison-Wesley, 1996.
10. Geary D., McClellan A. Graphic Java 1.1: Mastering the AWT // Prentice Hall PTR, 1997.
11. Walrath K., Campione M. The JFC Swing Tutorial: A Guide to Constructing GUIs // L: Addison-Wesley, 1999.
12. Gosling J., Joy В., Steele G., Bracha G. The Java language specification, Second Edition // L: Addison-Wesley, 2000.
13. Muchow J. Core J2ME Technology // Prentice Hall PTR, 2001.
14. Dobrev P., Famolari D., Kurzke C., Miller B. Device and Service Discovery in Home Networks with OSGi // IEEE Comm. Mag., Aug. 2002. pp.86-92.
15. Nir E., Razavi B. Driving the Convergence of Telematics and Mobile Communication Devices // MIT/Stanford Venture Lab, May, 2002.
16. Riggs R., Taivalsaari A., VandenBrink M. Programming Wireless Devices with the Java 2 Platform, Micro Edition// L: Addison-Wesley, 2001.
17. Dix A., Finlay J., Abowd G., Beale R. Human-Computer Interaction (2nd Edition) //Prentice Hall, January, 1998.
18. Hartson H., Hix D. Human-Computer Interface Development: Concepts and Systems // ACM Computing Surveys, 1989. pp. 5-92.
19. Young M., Taylor R., Troup D. Software Environment Architectures and User Interface Facilities // IEEE Transactions on Software Engineering 14(6), June, 1988. pp. 697-708.
20. Bloch C., Wagner A. M1DP 2.0 Style Guide for the Java 2 Platform, Micro Edition // L: Addison-Wesley, 2003.
21. Weinschenk S., Barker D. Designing Effective Speech Interfaces // Jon Wiley & Sons, 2000.
22. Trevvin S., Zimmermann G., Vanderheiden G. Abstract User Interface Representations: How Well do they Support Universal Access? // ACM Conference on Universal Usability, 2003. pp. 77-84.
23. Javatm. Technology Telematics Technology// SunFlash, vol.49, n.3, March 18,2002.
24. Thevenin D., Coutaz J. Plasticity of User Interfaces: Framework and Research Agenda // In Proceedings of INTERACT'99, (IFIP TC.13 Conference on Human-Computer Interaction), September, 1999. pp. 110-117.
25. Shneiderman B., Plaisant C. Designing the User Interface: Fourth Edition Preview, 4/E // L: Addison-Wesley, 1998.
26. Hackos J., Redish J. User and Task Analysis for Interface Design // John Wiley & Sons, Inc., 1998.
27. Paciello M. Web Accessibility for People With Disabilities (R&D Developer Series) // L: CMP Books, 2000.
28. Gong L. Inside Java 2 Platform Security: Architecture, API Design, and Implementation // L: Addison-Wesley, 1999.
29. Schneider K., Cordy J. Abstract User Interfaces: A Model and Notation to support plasticity in Interactive Systems // In Proceedings of the Eight Workshop of Design, Specification and Verification of Interactive Systems, June, 2001. pp. 40-58.
30. Sato N. Using Input Methods on the Java Platform // Sun Microsystems, Inc, 2002.
31. Mayhew D. The Usability Engineering Lifecycle: A Practitioner's Handbook for User Interface Design // SF: Morgan Kaufmann, 1999.
32. Bollella G., Gosling J., Brosgol B., Dibble P., Furr S., Hardin D., Turnbull M. Real-Time Specification for Java // L: Addison-Wesley, 2000.
33. Linton M., Vlissides J., Calder P. Composing User Interfaces with Interviews // IEEE Computer, vol. 22, February 1989. pp. 8-22.
34. Bloch J. Effective Java: Programming Language Guide // L: Addison-Wesley, 2001.
35. Chen K., Gong L. Programming Open Service Gateways With Java Embedded Server Technology// L: Addison-Wesley, 2001.
36. Gamma E., Helm R., Johnson R., Vlissides J. Design Patterns: Elements of Reusable Object-Oriented Software// Reading, MA: Addison-Wesley, 1994.
37. Fetcke T. A Generalized Structure for Function Point Analysis // International Workshop on Software Measurement (IWSM'99), September, 1999.
38. The AWT Native Interface // Sun Microsystems, Inc, August, 1999.
39. Booch G. Object-Oriented Analysis and Design with Applications (2nd Edition) // L: Addison-Wesley, 1993.
40. Wilson S., Kesselman J. Java Platform Performance: Strategies and Tactics // L: Addison-Wesley, 2000.
41. Doug L. Concurrent Programming in Java: Design Principles and Patterns, Second edition // L: Addison-Wesley, 1999.
42. Рис. 1. Уровни абстракций в системе ИП для настольных компьютеров. Стр. 3.
43. Рис. 2. Примеры современных пользовательских устройств. Стр. 4.
44. Рис.3. Структура приложения, адаптированного для различных устройств. Стр. 5.
45. Рис. 4. Компоненты системы человек-машина. Стр. 15.
46. Рис. 5. Схема применения библиотеки АПИ в системе человек-машина. Стр. 16.
47. Рис. 6. Элементы пользовательского интерфейса в МГОР1.0. Стр. 23.
48. Рис. 7. Элементы пользовательского интерфейса в А\УТ. Стр. 30.
49. Рис. 8. Состояния машины распознавания/синтеза речи. Стр. 32.
50. Рис. 9. Структуры приложения в различных системах ИП. Стр. 34.
51. Рис. 10. Различные графические представления элемента в А\УТ. Стр. 41.
52. Рис. 11. Схема жизненного цикла приложения при работе с АПИ. Стр. 53.
53. Рис. 12. Схема логики разбора ответа пользователя. Стр. 60.
54. Рис. 13. Схема этапов работы интерпретатора запросов. Стр. 66.
55. Рис. 14. Обработка запроса в универсальном интерпретаторе. Стр. 68.
56. Рис. 15. Архитектурный стек при реализации библиотеки АПИ. Стр. 69.
57. Рис. 16. Схема оптимизации работы с помощью обновляемого запроса. Стр. 74.
58. Рис. 17. Пример неоптимального использования возможностей устройства. Стр. 76.
59. Рис. 18. Пример дерева запросов для взаимоисключающего выбора. Стр. 78.
60. Рис. 19. Пример типов элементов дерева запросов. Стр.79.
61. Рис. 20. Пример дерева запросов для множественного выбора. Стр. 81.
62. Рис. 21. Схема использования арбитра при осуществлении аудио-вывода. Стр.83.
63. Рис. 22. Схема взаимодействия с потоком при блокирующем вызове. Стр. 85.
-
Похожие работы
- Математическое и программное обеспечение средств проектирования и совершенствования интерактивных графических человеко-машинных интерфейсов
- Исследование и разработка метода, моделей и алгоритмов тестирования приложений для мобильных устройств
- Разработка метода построения функциональных интерфейсов информационно-биллинговой системы
- Реализация унифицированной пользовательской среды для МВК "Эльбрус"
- Программный комплекс пользовательского интерфейса на базе манипуляционных устройств ввода
-
- Системный анализ, управление и обработка информации (по отраслям)
- Теория систем, теория автоматического регулирования и управления, системный анализ
- Элементы и устройства вычислительной техники и систем управления
- Автоматизация и управление технологическими процессами и производствами (по отраслям)
- Автоматизация технологических процессов и производств (в том числе по отраслям)
- Управление в биологических и медицинских системах (включая применения вычислительной техники)
- Управление в социальных и экономических системах
- Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей
- Системы автоматизации проектирования (по отраслям)
- Телекоммуникационные системы и компьютерные сети
- Системы обработки информации и управления
- Вычислительные машины и системы
- Применение вычислительной техники, математического моделирования и математических методов в научных исследованиях (по отраслям наук)
- Теоретические основы информатики
- Математическое моделирование, численные методы и комплексы программ
- Методы и системы защиты информации, информационная безопасность