142 УДК 658.336:004(045) В. М. Синеглазов, д

advertisement
142
ISSN 1990-5548 Електроніка та системи управління. 2010. №2(24)
УДК 658.336:004(045)
В. М. Синеглазов, д-р техн. наук, проф.,
Д. И. Мусько
ОБОСНОВАНИЯ ВЫБОРА ОБОЛОЧКИ ДЛЯ ПРОЦЕДУРНЫХ ТРЕНАЖЕРОВ
Институт электроники и систем управления НАУ, e-mail: iesy@nau.edu.ua
Выполнено обоснование выбора программной оболочки процедурных тренажеров,
основанной на использовании веб-приложений, что позволяет повысить эффективность
эксплуатации процедурных тренажеров.
Ключевые слова: процедурный тренажер, программная оболочка, веб-приложение,
пользовательский интерфейс.
Введение. Процедурный тренажер (ПТ) представляет собой техническое средство
обучения, предназначенное для профессиональной подготовки обучаемых, и позволяет
формировать навыки и умения, которые необходимы во время эксплуатации технических
средств. Основным свойством ПТ является обеспечение:
– имитации реальных приборов, пультов управления, динамики объектов и ситуаций,
возникающих в процессе эксплуатации реальных систем;
– многократной повторяемости отдельных задач;
– возможности объективного контроля результатов всех отработанных на тренажере
операций.
Основное преимущество ПТ перед комплексным тренажером – возможность
одновременного обучения группы слушателей, что позволяет значительно повысить
эффективность обучения.
В состав ПТ должны входить автоматизированное рабочее место инструктора и
автоматизированные рабочие места слушателей, реализованные на базе локальной
компьютерной сети.
Обоснование выбора оболочки. Оболочка – совокупность элементов пользовательского интерфейса. Именно ее видит конечный пользователь при работе с веб-приложением,
представляющим собой клиент-серверное приложение, в котором клиентом выступает
браузер, а сервером – веб-сервер.
Логика веб-приложения распределена между сервером и клиентом, хранение данных
осуществляется преимущественно на сервере, обмен информацией происходит по сети.
Одним из преимуществ такого подхода является то, что клиенты не зависят от конкретной
операционной системы пользователя, поэтому веб-приложения являются кроссплатформенными сервисами.
Существенным преимуществом построения веб-приложений для поддержки
стандартных функций браузера является то, что функции должны выполняться независимо
от операционной системы данного клиента. Вместо того, чтобы писать различные версии для
Microsoft Windows, Mac OS X, GNU/Linux и других операционных систем, приложение
создается один раз для произвольно выбранной платформы и на ней разворачивается.
Однако различная реализация HTML, CSS, DOM и других спецификаций в браузерах может
вызвать проблемы при разработке веб-приложений и последующей поддержке. Кроме того,
возможность пользователя настраивать многие параметры браузера (например, размер
шрифта, цвета, отключение поддержки сценариев) может препятствовать корректной работе
приложения.
Другой (менее универсальный) подход заключается в использовании Adobe Flash или
Java-апплетов для полной или частичной реализации пользовательского интерфейса.
Поскольку большинство браузеров поддерживает эти технологии (как правило, с помощью
плагинов), Flash- или Java-приложения могут выполняться с легкостью, так как они
ISSN 1990-5548 Електроніка та системи управління. 2010. №2(24)
143
предоставляют программисту больший контроль над интерфейсом, способны обходить
многие несовместимости в конфигурациях браузеров. Несовместимость между Java или Flash
реализациями на стороне клиента может приводить к различным осложнениям.
Веб-приложение получает запрос от клиента и выполняет вычисления, после этого
формирует веб-страницу и отправляет её клиенту по сети с использованием протокола HTTP.
Само веб-приложение может выступать в качестве клиента других служб, например базы
данных или другого веб-приложения, расположенного на другом сервере.
В настоящее время широко используется новый подход к разработке веб-приложений,
называемый Ajax. При использовании Ajax страницы веб-приложения не перезагружаются
целиком, а лишь догружают необходимые данные с сервера, что делает их более
интерактивными и производительными.
На стороне сервера могут использоваться такие технологии и языки программирования,
как ASP, Java, Perl, PHP, Python, Ruby и другие.
Структура программного обеспечения ПТ показана на рисунке.
Структура программного обеспечения ПТ
Ключевыми требованиями, предъявляемыми к оболочке, являются следующими.
1. Единое место размещения – оболочка – должна загружается с единого ресурса –
«сервера», а не быть расположенной на клиентской платформе. Это необходимо для того,
чтобы клиент не был привязан к своему рабочему месту, а мог использовать приложение
откуда угодно.
2. Сетевое приложение – весь обмен информации – должен проходить по клиентсерверным технологиям. Это означает, что оболочка сама по себе не производит каких-либо
операций или вычислений. Вместо этого она должна отправлять запросы с данными на
сервер и получать результат, который необходимо вывести пользователю.
3. Гибкость – программный код оболочки – должен быть гибок в плане изменений. Если
в код оболочки необходимо ввести изменения, они не должны затрагивать пользователей,
которые уже работают с приложением. Вместе с тем новые пользователи должны получить
измененный код. Это условие обеспечит возможность продолжения работы для текущих
пользователей и корректную работу приложения для новых пользователей.
4. Расширение – оболочка должна – расширяться без особых усилий и затрат. При
разработке новых возможностей в приложении необходимо внести некоторые доработки и в
оболочку. Процесс модернизации оболочки должен занимать как можно меньше времени,
т. е. она должна поддерживать практически любые возможные изменения.
144
ISSN 1990-5548 Електроніка та системи управління. 2010. №2(24)
Обзор существующих решений. На данный момент существует множество
технологий, по которым возможно реализовать оболочку для веб-приложения. Вследствие
специфики разрабатываемого приложения будем учитывать только библиотеки, основанные
на Javascript. Рассмотрим самые распространенные из них.
Prototype – JavaScript фреймворк, упрощающий работу с Ajax и некоторыми другими
функциями. Несмотря на его доступность в виде отдельной библиотеки, он обычно
используется программистами вместе с Ruby on Rails, script.aculo.us и Rico.
Заявлено, что данный фреймворк поддерживается следующими браузерами: fcternet
Explorer (Windows) 6.0+, Mozilla Firefox 1.5+, Apple Safari 2.0+ и Opera J.25+. Поддержка
данных браузеров также подразумевает, что фреймворк поддерживается также Camino,
Konqueror, Ice Weasel, Netscape 7+, SeaMonkey, и др.), которые принадлежат этим же
семействам.
jQuery – библиотека JavaScript, фокусирующаяся на взаимодействии JavaScript и
HTML. Библиотека jQuery помогает легко получать доступ к любому элементу DOM,
обращаться к атрибутам и содержимому элементов DOM, манипулировать ими. Также
библиотека jQuery предоставляет удобный API по работе с Ajaх.
Точно так же, как CSS отделяет визуализацию от структуры HTML, JQuery отделяет
поведение от структуры HTML. Например, вместо прямого указания на обработчик события
нажатия кнопки управление передаётся JQuery, идентифицирующей кнопки и затем
преобразовывающий его в обработчик события клика. Такое разделение поведения и
структуры также называется принципом ненавязчивого JavaScript.
Библиотека jQuery содержит функционал, полезный для максимально широкого круга
задач. Тем не менее, разработчиками библиотеки не ставилась задача совмещения в jQuery
функций, которые подошли бы всюду, поскольку это привело бы к большому коду, большая
часть которого не востребована. Поэтому была реализована архитектура компактного
универсального ядра библиотеки и плагинов. Это позволяет собрать для ресурса именно тот
JavaScript-функционал, который на нём был бы востребован.
Ext JS – библиотека JavaScript для разработки веб-приложений и пользовательских
интерфейсов, изначально задуманная как расширенная версия Yahoo! UI Library, однако
преобразовавшаяся затем в отдельный фреймворк. Использует адаптеры для доступа к
библиотекам Yahoo! UI Library, jQuery или Prototype/script.aculo.us. Поддерживает
технологию AJAX, анимацию, работу с DOM, реализацию таблиц, вкладок, обработку
событий и все остальные новшества «Web 2.0».
С версии 2.1 библиотека Ext JS распространяется по условиям трёх лицензий:
Commercial License, Open Source License и OEM / Reseller License.
Yahoo! UT Library (YUI) – библиотека JavaScript для создания богатых интерактивными
возможностями приложений или/и пользовательского интерфейса. Использует AJAX,
анимацию, надстройки над XMLHttpRequest и DOM, «drag-and-drop», слайдеры, слайды,
календари, деревья, табы и другие новинки, составляющие понятие «Web 2.0». Собственное
API для работы с JavaScript.
Dojo (доджо) – свободная модульная библиотека JavaScript. Разработана с целью
упростить ускоренную разработку основанных на JavaScript или AJAX приложений и сайтов.
Разработка библиотеки была начата Алексом Русселом в 2004 году. Библиотека находится
под двойной лицензией: BSD License и Academic Free License. Dojo Foundation –
некоммерческая организация, созданная для продвижения Dojo. Dojo используется в Zend
Framework, начиная с версии 1.6.0.
Выбор программной оболочки. Из всех вышеперечисленных библиотек для
разработки оболочки веб-приложения была выбрана библиотека Ext JS. Помимо того, что
она удовлетворяет всем требованиям, выдвинутым к оболочке, она так же имеет ряд других
полезных особенностей:
ISSN 1990-5548 Електроніка та системи управління. 2010. №2(24)
145
– документированность – данная библиотека является наиболее документированной из
всех ее аналогов. Имеется практически полное руководство по API данной библиотеки, а так
же множество примеров, руководств, форумов и т. д. Помимо документации представленной
разработчиками, существует так же документация сделанная сообществом пользователей
библиотеки. Документация расширяется и дополняется с каждым выходом новой версии
библиотеки;
– доступность – поскольку библиотека распространяется по трем видам лицензий, ее
можно использовать бесплатно, если при этом разрабатываемое приложение не
предполагается для коммерческого использования;
– техническая поддержка – существует несколько видов технической поддержки
данной библиотеки. Помимо платных услуг по технической поддержке, существует
огромное сообщество, которое всегда готово помочь в решении какой либо проблемы,
связанной с библиотекой;
– открытый код – библиотека распространяется в виде открытого кода, что позволяет
разработчику в полной мере понять, как именно работает библиотека, а так же внедрять
изменения, если это необходимо для разработки приложения;
– функциональность – Ext JS обладает очень большей функциональностью.
Практически любой функционал, который может быть востребован в разработке вебприложения, уже встроен в библиотеку, а если же что-то отсутствует, – всегда можно
внедрить требуемый функционал. В библиотеке присутствует множество средств для
передачи, обработки и вывода данных, какого-либо вида, начиная от простых примитивов и
заканчивая сложными структурами. Так же она поддерживает довольно обширную
возможность передачи каких-либо данных на основании технологии клиент-сервер и
протокола HTTP;
– совместимость – данная библиотека совместима практически со всеми браузерами,
которые используются в данный момент, что дает возможность не привязываться к
конкретному браузеру при работе с веб-приложением;
– простота использования – если разработчик знаком с языком JavaScript, для него не
будет проблемой разработать оболочку на данной библиотеке. Все использование сводится к
наследованию существующих классов библиотеки. Эта особенность при доступной
документации дает возможность быстро и качественно создавать новые элементы оболочки
без необходимости обладания особенными навыками для работы с библиотекой;
– скорость работы – данная оболочка отличается хорошим быстродействием. Все
объекты, созданные в процессе работы, сохраняются в памяти, что позволяет довольно
быстро использовать их снова;
– средства отладки – существует довольно много мощных средств для отладки
приложения, основанного на библиотеке Ext JS, что несомненно является ключевым
фактором в разработке любого приложения, в том числе и веб-приложения;
– дизайн и стили – базовая конфигурация имеет достаточно приятный вид, что
позволяет сэкономить время и ресурсы на разработку дизайна для оболочки.
Как и все остальные библиотеки, Ext JS имеет и свои недостатки, Однако из
существенных недостатков можно выделить разве что один. Она потребляет довольно
большое количество оперативной памяти компьютера. Данная особенность обусловлена
созданием большого количества HTML элементов, которые необходимы для построения
объектов библиотеки. Однако этот недостаток перекрывается широким функционалом
библиотеки. Кроме того, современные компьютеры вмещают в себе довольно большое
количество оперативной памяти. Таким образом, этот недостаток будет ощутим разве что на
очень старых клиентских станциях.
146
ISSN 1990-5548 Електроніка та системи управління. 2010. №2(24)
Структура и функциональность. Весь функционал библиотеки разбит на модули, что
позволяет эффективнее ее использовать. Каждый модуль относится к определенной части
функциональности библиотеки. Некоторые модули отвечают за пользовательский интерфейс
(например, панели, окна, кнопки, тулбары и т. д.), другие же отвечают за обработку и
передачу данных. Так же имеется набор специальных утилит, которые могут быть
востребованы в процессе разработки.
Модули имеют древовидную структуру, что позволяет иметь наглядное представление
о цели применения каждого модуля или класса.
Рассмотрим наиболее важные модули и классы.
Ext – корневой модуль библиотеки, вмещает в себе подмодули, а так же некоторые
методы и классы:
– Ext.Ajax – используется для создания сетевых соединений для отправки и приема
информации с сервера. Каждое соединение является асинхронным. Это означает, что
пользователь не обязан ждать ответа сервера для продолжения работы с приложением.
Используя специальные события, можно контролировать состояние соединения,
обрабатывать информацию, а также информировать пользователя о состоянии соединения;
– Ext.Button – создание и использование кнопок;
– Ext.FlashComponent – специальный компонент для вывода Flash анимации;
– Ext.MessageBox – диалоговое окно для вывода сообщений (ошибки,
предупреждения, подтверждения и т. д.). Заменяет собой стандартные методы для вывода
диалоговых окон Javascript;
– Ext.Panel – контейнер, который может вмещать в себе произвольное количество
компонентов, таких как кнопки, списки, таблицы и многие другие компоненты управления и
вывода данных;
– Ext.ProgressBar – используется для информирования пользователя о прохождении
какого-либо процесса;
– Ext.QuickTip – вывод подсказок и другой полезной информации;
– Ext.TabPanel – специальная панель для реализации вкладок;
– Ext.Toolbar – панель задач, на которой могут размещаться любые компоненты.
Она размещается сверху панели и используется для выполнения определенных действий
внутри окна или панели (например, кнопки копирования и вставки, поле для ввода фразы,
для поиска и т. д.);
– Ext. Window – класс для создания окон. Практически то же самое что и панель, но
может быть перемещена по рабочей области. Так же возможно изменить размер окна, или
закрыть его.
Ext.chart – модуль для работы с графиками различного типа:
– Ext.chart.LineChart – линейный график;
– Ext.chart.BarChart – диаграмма;
– Ext.data – модуль для работы с данными. Вмещает в себе средства для передачи,
обработки и хранения данных различного типа:
– Ext.data.Store – базовый класс для хранения и обработки табличных данных;
– Ext.data.DataReader – класс для преобразования данных представленных в
различном виде (например XML, JSON, HTML;
– Ext.data.DataProxy – используется для передачи данных по различным протоколам
(например http);
– Ext.dd – модуль, который вмещает в себе классы, необходимые для реализации
технологии Drag n Drop (тяни и клади);
– Ext.form.Field – модуль для реализации форм. Формы используются для заполнения
каких-либо данных со стороны пользователя. Имеется обширный набор компонентов ввода,
ISSN 1990-5548 Електроніка та системи управління. 2010. №2(24)
147
а также методы проверки правильности введенных данных, отправки их на сервер и загрузки
с сервера:
– Ext.form.Checkbox – компонент «галочка»;
– Ext.form.ComboBox – поле ввода с выпадающим списком;
– Ext.form.DateField – поле для выбора/отображения даты;
– Ext.form.Label – вывод небольшого текста на форме;
– Ext.form.TextArea – поле ввода текста большого объема;
– Ext.form.TextField – поле ввода текста строки;
– Ext.form.TimeField – поле ввода времени;
– Ext.grid – модуль для работы с таблицами;
– Ext.grid.GridPanel – специальная панель для вывода табличных данных;
– Ext.grid.EditorGridPanel – панель для вывода табличных данных с возможностью
редактирования;
– Ext.menu – модуль для работы с меню, которые могут размещаться внутри окна или
любой панели.
– Ext.tree – модуль для работы с древовидными структурами:
– Ext.tree.TreePanel – специальная панель для вывода древовидных структур;
– Ext.tree.TreeEditor – вывод древовидных структур с возможностью
редактирования.
– Ext.util – этот модуль вмещает в себе набор базовых утилит, которые могут быть
полезны при разработке приложения:
– Ext.util.CSS – класс для работы со стилями;
– Ext.util.Cookies – обработка и создание так называемых «Куки». Они
используются для хранения какой либо информации на стороне клиента, например данные
об учетной записи или любые другие данные;
– Ext.util.Format – утилиты для преобразований форматов различного типа
(например строку в число или строку в дату и обратно);
– Ext.util.JSON – класс для работы с форматом передачи данных JSON.
Выводы. Рассмотрены вопросы обоснования выбора средств разработки программного
обеспечения процедурных тренажеров. Показана целесообразность использования вебприложений. Обоснована необходимость использования библиотеки Ext JS.
Список литературы
1. Линкольн Д. Штайн, Разработка сетевых программ на Perl: пер. с англ. – М.: Изд-во
«Вильямс» – 2001. – 752 с.
2. Поль Дюбуа MySQL = MySQL. – 3-е изд. – М.: Изд-во «Вильямс» – 2006. – 1168 с. –
ISBN 0-672-32673-6.
3. Официальный сайт Фреймворка – http://txtjs.com/
В. М. Синєглазов, Д. I. Mусько
Обґрунтування вибору оболонки для процедурних тренажерів
Виконано обґрунтування вибору програмної оболонки процедурних тренажерів, яка
ґрунтується на використанні веб-додатків, що дозволяє підвищити ефективність експлуатації
процедурних тренажерів.
V. M. Sineglazov, D. I. Musko
Grounds of choice of shell for procedural trainers
The ground of choice of shell program of procedural trainers is executed based on the use of Webapplications, that allows to promote efficiency of exploitation of procedural trainers.
Download