Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

Подписываем
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Предоплата всего
Подписываем
Дистанционное обучение - форма обучения, появившаяся сравнительно недавно, основанная на образовательном взаимодействии удаленных друг от друга педагогов и учащихся, реализующемся с помощью телекоммуникационных технологий и ресурсов сети Интернет. Использование подобной формы обучения связано с целым рядом положительных следствий, таких как: уменьшение затрат на обучение студента, формирование единой информационной инфраструктуры учебного заведения, возможность расширения контингента студентов. Эти особенности в сочетании с низкими затратами на развертывание и поддержку работы системы делают дистанционное обучение удобным дополнением к традиционным формам обучения, а также позволяют организовывать полностью дистанционные курсы.
Дистанционное обучение занимает всё большую роль в модернизации образования. Согласно приказу 137 Министерства образования и науки РФ от 06.05.2005 «Об использовании дистанционных образовательных технологий», итоговый контроль при обучении с помощью ДОТ (дистанционных образовательных технологиях) можно проводить как очно, так и дистанционно. Госдума РФ рассматривает проект поправок к закону об образовании, связанных с дистанционным обучением.
На данный момент существуют системы управления обучением, позволяющие проводить дистанционное обучение средствами сети Internet, такие как ATutor, Claroline, Dokeos, LAMS, Moodle, OLAT, OpenACS, Sakai.
Во всем многообразии средств организации электронного обучения можно выделить следующие группы:
На основе анализа существующих OpenSource систем LMS\LCMS были выделены следующие: ATutor, Claroline, Dokeos, LAMS, Moodle, OLAT, OpenACS, Sakai. Основными критериями отбора были выбраны степень поддержки системы и многоязыковое сопровождение.
ATutor (http://www.atutor.ca/) представляет собой свободно распространяемую web-ориентированную систему управления учебным контентом, разработанную с учетом идей доступности и адаптируемости. Администраторы могут обновить или инсталлировать Atutor за несколько минут, разработать собственные шаблоны оформления системы. Преподаватели могут быстро собирать, структурировать содержание учебного материала для проведения занятий on-line. Обучаемые работают с гибкой, адаптивной средой обучения.
Claroline (Classroom Online) (http://www.claroline.net/) - платформа построения сайтов дистанционного обучения, созданная с учетом пожеланий преподавателей. Приложение было создано в институте педагогики и мультимедиа католического университета в Лувене. Продукт бесплатен и доступен. Требует установки PHP/MySQL/Apache. Claroline позволяет создавать уроки, редактировать их содержимое, управлять ими. Приложение включает генератор викторин, форумы, календарь, функцию разграничения доступа к документам, каталог ссылок, систему контроля за успехами обучаемого, модуль авторизации.
Dokeos (http://www.dokeos.com/) – платформа построения сайтов дистанционного обучения, основанная на ветке (fork) Claroline (версии 1.4.2.). Ветка представляет собой клон свободно распространяемого программного продукта, созданный с целью изменить приложение-оригинал в том или ином направлении.
Dokeos – результат работы некоторых членов первоначальной команды разработчиков Claroline, которые задумали:
изменить ориентацию приложения. Теперь оно подойдет скорее организациям, чем университетам. Дело в том, что Claroline прекрасно адаптирована для университетской среды, что выражается в поддержке большого количества учеников и курсов. Dokeos , как нам кажется, больше ориентирован на профессиональную клиентуру, например, на персонал предприятия.
Dokeos бесплатен и останется таковым, поскольку лицензия Claroline (GNU/GPL) предполагает, что ветки подпадают под ту же лицензию.
LAMS (http://www.lamscommunity.org). Спецификация IMS Learning Design была подготовлена в 2003 году. В ее основу положены результаты работы Открытого университета Нидерландов (Open University of the Netherlands – OUNL) по языку образовательного моделирования «Educational Modelling Language» (EML), при помощи которого описывается «метамодель» разработки учебного процесса.
На основе данной спецификации была создана «Система управления последовательностью учебных действий» Learning Activity Management System (LAMS). LAMS предоставляет преподавателям визуальные средства для разработки структуры учебного процесса, позволяющие задавать последовательность видов учебной деятельности.
LAMS представляет собой революционно новое приложение для создания и управления электронными образовательными ресурсами. Она предоставляет преподавателю интуитивно понятный интерфейс для создания образовательного контента, который может включать в себя различные индивидуальные задания, задания для групповой работы и фронтальную работу с группой обучаемых.
Moodle (http://moodle.org/) – приложение, предназначенное для организации online-уроков и обучающих web-сайтов. Проект был задуман для распространения социо-конструктивистского подхода в обучении.
Если резюмировать очень кратко, этот подход предполагает, что новые знания могут приобретаться только на основе ранее приобретенных знаний и уже имеющегося индивидуального опыта процесс обучения будет намного эффективнее, когда обучаемый передает другими словами или объясняет другим полученные знания.
То есть при использовании этого подхода вы опираетесь на тот опыт ученика, который больше всего подходит для усвоения нужного материала, а не просто публикуете и модифицируете информацию, которую ученик должен усвоить. Такой подход позволяет вам также сделать так, чтобы каждый участник учебного процесса мог поочередно быть и учителем, и учеником. Функция преподавателя может измениться: вместо источника знаний он превращается в "центр влияния" и модель классной культуры. Преподаватель должен найти индивидуальный контакт с каждым учеником, адаптируясь под его образовательные потребности. К тому же преподаватель обязан направлять дискуссии и совместную деятельность таким образом, чтобы коллективно достичь целей обучения.
Moodle годится для использования более классических стилей обучения, в частности, гибридного обучения, что превращает систему в дополнение к презентационному обучению.
К тому же система пригодна для создания сайтов с мультиязычным содержимым.
Web-сайт Moodle бесплатно оказывает пользователям платформы качественную поддержку. Этому способствует многочисленное сообщество.
OLAT (http://www.olat.org). Разработка системы началась еще в 1999 году в University of Zurich, Switzerland, где она является основной образовательной платформой электронного обучения.
OpenACS (http://openacs.org)(Open Architecture Community System) это система для разработки масштабируемых, переносимых образовательных ресурсов. Она является основой для многих компаний и университетов, занимающихся использованием технологий электронного обучения.
Sakai (http://sakaiproject.org/) представляет собой онлайн систему организации учебного образовательного пространства. Sakai является системой с полностью открытым исходным кодом, которая поддерживается сообществом разработчиков. В систему интегрирована поддержка стандартов и спецификаций IMS Common Cartridge, SCORM.
Таблица 2.1.1.2. Анализ OpenSource LMS\LCMS
ATutor |
Claroline |
Dokeos |
LAMS |
Moodle |
OLAT |
OpenACS |
Sakai |
|
Оценка |
5 |
4 |
4 |
6 |
1 |
6 |
3 |
2 |
Текущая версия |
1.6.2 (2009) |
1.8.11 (2009) |
1.8.6 (2009) |
2.2 (2009) |
1.9.5 (2009) |
6.0.7 (2009) |
5.4.3 (2009) |
2.5.4 (2009) |
Лицензия |
GPL |
GNU GPL |
GNU GPL |
Open Source |
GNU GPL |
Open Source |
GNU |
ECL |
Рейтинг трафика (alexa.com) |
123.735 |
128.017 |
57.533 |
1.474.408 |
17.545 |
365.390 |
125.430 |
114.293 |
Многоязыковой интерфейс |
Да (более 30 языков) |
Да (более 30 языков) |
Да (более 30 языков) |
Да (Более 20 языков) |
Да (более 50 языков) |
Да |
Нет |
Да (более 10 языков) |
Поддержка русского языка |
Да |
Да |
нет |
да |
Да |
Нет |
Нет |
Да |
Поддержка SCORM |
Да |
Да |
Да |
нет |
да |
да |
нет |
да |
Поддержка IMS |
Да |
Да |
Да |
нет |
да |
да |
нет |
да |
Структура |
ядро+набор модулей |
монолитная |
ядро+набор модулей |
монолитная |
ядро+набор модулей |
монолитная |
модульная |
ядро+набор модулей |
Возможность расширения |
Да за счет внешних модулей |
зависит от разработчиков |
Да за счет внешних модулей |
зависит от разработчиков |
Да за счет внешних модулей |
зависит от разработчиков |
зависит от разработчиков |
Да за счет внешних модулей |
Дополнительное ПО |
Apache, MySQL, PHP |
Apache, MySQL, PHP |
Apache, MySQL, PHP |
Apache, JBOSS, Tomcat, MySQL |
Apache, MySQL, PHP |
Java SDK |
AOLServer,Oracle, PostgreSQL |
MySQL, Oracle |
Платформа |
Windows, Linux, Unix, MacOS |
Windows, Linux, Unix, MacOS |
Windows, Linux, Unix, MacOS |
Windows, MacOS |
Windows, Linux, Unix, MacOS |
Linux, Unix |
Windows, Linux, Unix, MacOS |
Windows, Linux, Unix, MacOS |
Система тестирования |
да |
да |
да |
да |
да |
да |
да |
да |
Поддержка внешних тестов |
нет |
нет |
нет |
нет |
да |
да |
нет |
да |
Надежность сервера (0-5 баллов) |
3 |
3 |
3 |
3 |
4 |
3 |
3 |
4 |
Стабильность сервера (0-5 баллов) |
3 |
4 |
3 |
4 |
5 |
2 |
3 |
4 |
Ограничение на количество слушателей |
нет |
нет |
нет |
нет |
нет |
нет |
нет |
нет |
Среда разработки учебного материала |
встроенная |
встроенная |
встроенная |
встроенная |
встроенная |
встроенная |
встроенная |
встроенная |
Система проверки знаний |
Тесты, куксы, блоги, активность на форумах |
тесты, упражнения |
тесты |
тесты |
тесты, задания, семинары, активность на форумах |
тесты, задания |
тесты |
тесты, задания, активность на форумах |
Система отчетности |
средне развита |
средне развита |
средне развита |
слабо развита |
развита, постоянно развивается |
слабо развита |
слабо развита |
развита, постоянно развивается |
Проведенный анализ показал, что систем LMS\LCMS «Moodle» является наиболее подходящей платформой для организации дистанционного обучения.
Moodle (модульная объектно-ориентированная динамическая учебная среда) — свободная система управления обучением (LMS), распространяющаяся по лицензии GNU General Public License. Moodle написана на PHP с использованием SQL-базы данных (MySQL, PostgreSQL, Microsoft SQL Server и др. БД — используется ADO DB XML). Moodle может работать с объектами SCO и отвечает стандарту SCORM.
Благодаря развитой модульной архитектуре, возможности Moodle могут легко расширяться сторонними разработчиками.
Помимо языковой поддержки и шаблонов оформления, Moodle позволяет так же подключать набор модулей.
Структуру Moodle можно описать подобной схемой:
Схема 2.2.1. Структура динамической учебной среды Moodle
Исходя из структуры можно выделить следующие подходы к расширению возможностей учебной среды Moodle:
LMS Moodle распространяющаяся по лицензии GNU GPL. Цель GNU GPL — предоставить пользователю права копировать, модифицировать и распространять (в том числе на коммерческой основе) программы (что по умолчанию запрещено законом об авторских правах), а также гарантировать, что и пользователи всех производных программ получат вышеперечисленные права.
Таким образом особенностью данного подхода является то, что можно полностью подстроить LMS Moodle для своих нужд, но полученная новая система должна быть открытой.
LMS Moodle имеет развитую модульную архитектуру, благодаря которой возможности системы могут легко расширяться сторонними разработчиками.
Moodle позволяет подключать следующие типы модулей:
Особенностью данного подхода является то, что конечный программный продукт не обязательно должен быть реализован на языке PHP (что в свою очередь значительно расширяет его возможности), но так же при данном подходе наблюдается зависимость реализованного программного продукта от версии и серии Moodle, для которой он был реализован.
При данном подходе конечный программный продукт так же не обязательно должен быть реализован на языке PHP, но так же нет жесткой зависимости от версии и серии LMS Moodle, так как модули системы будут гарантированно поддерживаться для всех будущих версий данной серии.
Основными недостатками данного подхода является то, что использование стандартизованных протоколов (таких как SOAP) может привести к увеличению сетевого трафика и повышением временных задержек, связанных с обработкой и передачей данных.
Данный подход интересен тем, что он может сочетать в себе все перечисленные способы расширения возможностей, и набор свойств данного подхода зависит от того, какие из способов он будет в себе содержать.
Таблица 2.2.2.6. Анализ подходов к расширению возможностей системы Moodle.
Изменение ядра системы |
Написание модулей для системы |
Написание независимого программного обеспечения на той же предметной области |
Интеграция в систему стороннего программного обеспечения посредствам модулей реализующих интерфейсы |
Комбинирован-ный |
|
Конечное ПО должно быть реализовано на языке PHP |
+ |
+ |
- |
- |
+/- |
Внесение системных изменений в систему Moodle |
+ |
- |
- |
- |
+/- |
Поддержка ПО следующими версиями Moodle той же серии |
- |
+ |
+ |
+ |
+/- |
Увеличение сетевого трафика |
- |
- |
- |
+ |
+/- |
Зависимость от структуры Moodle |
- |
- |
+ |
- |
+/- |
LMS Moodle является на данный момент одной из самых динамично развивающихся систем дистанционного обучения. Moodle переведена на десятки языков, в том числе и русский и используется почти в 50 тысячах организаций из более чем 200 стран мира. В Российской Федерации зарегистрировано более 400 инсталляций. Количество пользователей Moodle в некоторых инсталляциях достигает 40 тысяч человек.
Moodle реализована на языке PHP, что накладывает серьезные ограничения на реализацию функциональных возможностей, так как язык PHP является скриптовым и выполняет цепочку действий один раз при каждом обращении к скрипту. Из этого следует, что нельзя создать на языке PHP программу, самостоятельно выполняющую задание, в течение длительных промежутков времени и наделить ее неким подобием интеллекта.
Целью проекта является расширение возможностей системы Moodle за счет внедрения мультиагентной системы дистанционного обучения.
В ходе дипломного проектирования должны быть выполнены следующие задачи:
Объект разработки должен обладать следующими свойствами:
Moodle является системой управления курсами (CMS – Course Management System), распространяемой в соответствии с условиями лицензии GNU Public License и в связи с этим обладает рядом особенностей, присущих бесплатному свободно распространяемому программному обеспечению. В их числе – отсутствие завершенной документации. Поэтому данное исследование проводится на основании самих исходных кодов системы Moodle с минимальным привлечением документации с официального сайта системы. В настоящее время система активно развивается, поэтому перед прямым использованием результатов исследования необходимо убедиться в том, что версия пользователя совпадает с версией, которая была исследована.
В данном исследовании рассматривается система Moodle версии 1.9.5 от 30 мая 2009г.
Для функционирования системы Moodle необходим компьютер, на котором возможен запуск необходимого системе программного обеспечения, сама система Moodle не предъявляет требований к архитектуре компьютера, на котором исполняется. При этом необходимы следующие ресурсы:
Система Moodle написана на скриптовом языке PHP и представляет собой совокупность текстовых файлов, в которых описаны все алгоритмы работы системы. Эта совокупность файлов не является самостоятельной программой – для функционирования ей необходим, как минимум, интерпретатор скриптового языка PHP, который и будет выполнять описанные алгоритмы по инструкциям в файлах системы. При этом, так как Moodle – система дистанционного обучения, необходим веб-сервер, как средство взаимодействия с пользователем через сеть Интернет. Особенность подобной организации работы состоит в том, что по каждому запросу пользователя системы создается отдельная «нить» (thread) исполнения, которая уничтожается по завершении выполнения данного запроса. Таким образом, возникает необходимость во внешнем по отношению к веб-серверу и интерпретатору PHP хранилище данных для сохранения результатов взаимодействия системы и пользователя между его обращениями. В роли такого хранилища выступает реляционная база данных, функционирующая под управлением СУБД (Системы Управления Базами Данных). Наличие и нормальное взаимодействие всех описанных выше программных продуктов является необходимым для функционирования системы Moodle. При этом на используемые программные продукты накладываются следующие ограничения:
Описание процесса установки системы Moodle подразумевает, что необходимое ПО установлено, настроено и взаимодействует.
Процесс установки системы Moodle автоматизирован, поэтому не требует знакомства с внутренним устройством системы. Для запуска процесса установки необходимо обеспечить доступ к дистрибутиву Moodle средствами веб-сервера (в случае веб-сервера Apache это означает поместить дистрибутив в папку htdocs/httpdocs). Процесс установки описан в файле install.php, который находится в корневой папке дистрибутива. Для его правильной активации необходимо обратиться к нему с помощью программы-браузера. При обращении по адресу, соответствующему файлу install.php, отображается страница мастера установки, для нормальной работы которого требуется, чтобы браузер поддерживал и принимал cookies от сайта с системой. В ходе работы мастера необходимо ввести параметры, необходимые Moodle для инициализации основных конфигурационных файлов. Помимо этого, будет произведена диагностика установленного программного комплекса (веб-сервер+интерпретатор PHP и СУБД) на корректную взаимную работу, проверены необходимые параметры интерпретатора PHP. После завершения работы мастера будет создан файл config.php, который будет содержать основные параметры конфигурации системы и будет в дальнейшем задействован в работе. После создания файла config.php при первом посещении сайта установленной системы Moodle будет произведено создание таблиц Moodle в базе данных.
По успешному завершению этого процесса, остается последний шаг в подготовке системы к использованию – настройка регулярного исполнения скрипта cron.php. Этот скрипт выполняет трудоемкие функции, которые необходимо осуществлять относительно редко, поэтому они не вызываются ни в одном из скриптов, формирующих ответы на запросы пользователя по соображениям быстродействия. В связи с этим необходимо, чтобы существовал внешний по отношению к системе Moodle запросчик, который с некоторой периодичностью (разработчики системы рекомендуют интервал 5 минут) вызывал бы скрипт cron.php на исполнение. Реализация этой задачи различается в зависимости от операционной системы и установленного программного обеспечения, поэтому не существует подходящего для всех способа ее реализации. В целом путь решения этой задачи таков: необходимо средствами операционной системы, либо с помощью дополнительного ПО организовать регулярную интерпретацию скрипта cron.php интерпретатором PHP сервера, на котором функционирует система Moodle.
На этом установка Moodle завершена, система готова к использованию.
При первом запуске система автоматически создает в базе данных, указанной в процессе работы мастера установки, таблицы, необходимые для работы системы. При этом стандартные имена таблиц предваряются префиксом, также указанным в ходе работы мастера. Стандартное значение префикса – “mdl”. Полный перечень таблиц, используемых системой Moodle для хранения данных, представлен ниже:
adodb_logsql
mdl_assignment
mdl_assignment_submissions
mdl_backup_config
mdl_backup_courses
mdl_backup_files
mdl_backup_ids
mdl_backup_log
mdl_block
mdl_block_instance
mdl_block_pinned
mdl_block_rss_client
mdl_block_search_documents
mdl_cache_filters
mdl_cache_flags
mdl_cache_text
mdl_capabilities
mdl_chat
mdl_chat_messages
mdl_chat_users
mdl_choice
mdl_choice_answers
mdl_choice_options
mdl_config
mdl_config_plugins
mdl_context
mdl_context_temp
mdl_course
mdl_course_allowed_modules
mdl_course_categories
mdl_course_display
mdl_course_meta
mdl_course_modules
mdl_course_request
mdl_course_sections
mdl_data
mdl_data_comments
mdl_data_content
mdl_data_fields
mdl_data_ratings
mdl_data_records
mdl_enrol_authorize
mdl_enrol_authorize_refunds
mdl_enrol_paypal
mdl_event
mdl_events_handlers
mdl_events_queue
mdl_events_queue_handlers
mdl_forum
mdl_forum_discussions
mdl_forum_posts
mdl_forum_queue
mdl_forum_ratings
mdl_forum_read
mdl_forum_subscriptions
mdl_forum_track_prefs
mdl_glossary
mdl_glossary_alias
mdl_glossary_categories
mdl_glossary_comments
mdl_glossary_entries
mdl_glossary_entries_categories
mdl_glossary_formats
mdl_glossary_ratings
mdl_grade_categories
mdl_grade_categories_history
mdl_grade_grades
mdl_grade_grades_history
mdl_grade_import_newitem
mdl_grade_import_values
mdl_grade_items
mdl_grade_items_history
mdl_grade_letters
mdl_grade_outcomes
mdl_grade_outcomes_courses
mdl_grade_outcomes_history
mdl_grade_settings
mdl_groupings
mdl_groupings_groups
mdl_groups
mdl_groups_members
mdl_hotpot
mdl_hotpot_attempts
mdl_hotpot_details
mdl_hotpot_questions
mdl_hotpot_responses
mdl_hotpot_strings
mdl_journal
mdl_journal_entries
mdl_label
mdl_lams
mdl_lesson
mdl_lesson_answers
mdl_lesson_attempts
mdl_lesson_branch
mdl_lesson_default
mdl_lesson_grades
mdl_lesson_high_scores
mdl_lesson_pages
mdl_lesson_timer
mdl_log
mdl_log_display
mdl_message
mdl_message_contacts
mdl_message_read
mdl_mnet_application
mdl_mnet_enrol_assignments
mdl_mnet_enrol_course
mdl_mnet_host
mdl_mnet_host2service
mdl_mnet_log
mdl_mnet_rpc
mdl_mnet_service
mdl_mnet_service2rpc
mdl_mnet_session
mdl_mnet_sso_access_control
mdl_modules
mdl_newnameforthetable
mdl_post
mdl_question
mdl_question_answers
mdl_question_attempts
mdl_question_calculated
mdl_question_categories
mdl_question_dataset_definitions
mdl_question_dataset_items
mdl_question_datasets
mdl_question_match
mdl_question_match_sub
mdl_question_multianswer
mdl_question_multichoice
mdl_question_numerical
mdl_question_numerical_units
mdl_question_randomsamatch
mdl_question_sessions
mdl_question_shortanswer
mdl_question_states
mdl_question_truefalse
mdl_quiz
mdl_quiz_attempts
mdl_quiz_feedback
mdl_quiz_grades
mdl_quiz_question_instances
mdl_quiz_question_versions
mdl_resource
mdl_role
mdl_role_allow_assign
mdl_role_allow_override
mdl_role_assignments
mdl_role_capabilities
mdl_role_names
mdl_role_sortorder
mdl_scale
mdl_scale_history
mdl_scorm
mdl_scorm_scoes
mdl_scorm_scoes_data
mdl_scorm_scoes_track
mdl_scorm_seq_mapinfo
mdl_scorm_seq_objective
mdl_scorm_seq_rolluprule
mdl_scorm_seq_rolluprulecond
mdl_scorm_seq_rulecond
mdl_scorm_seq_ruleconds
mdl_sessions2
mdl_stats_daily
mdl_stats_monthly
mdl_stats_user_daily
mdl_stats_user_monthly
mdl_stats_user_weekly
mdl_stats_weekly
mdl_survey
mdl_survey_analysis
mdl_survey_answers
mdl_survey_questions
mdl_tag
mdl_tag_correlation
mdl_tag_instance
mdl_timezone
mdl_user
mdl_user_info_category
mdl_user_info_data
mdl_user_info_field
mdl_user_lastaccess
mdl_user_preferences
mdl_user_private_key
mdl_webdav_locks
mdl_wiki
mdl_wiki_entries
mdl_wiki_locks
mdl_wiki_pages
mdl_workshop
mdl_workshop_assessments
mdl_workshop_comments
mdl_workshop_elements
mdl_workshop_grades
mdl_workshop_rubrics
mdl_workshop_stockcomments
mdl_workshop_submissions
Краткое описание назначения некоторых из этих таблиц приведено ниже.
Таблица 2.4.1.4. Описание назначения таблиц базы данных.
mdl_role* |
Группа таблиц, описывающих действующую систему привилегий для различных пользователей. |
mdl_user |
Перечень всех пользователей, сведения о них, ряд служебных флагов. |
mdl_block |
Перечень всех установленных в системе модулей типа «блок» и их параметры. |
mdl_block_module_name* |
Общее правило именование таблиц для блоков (в данном случае – таблицы для блока module_name) |
mdl_block_instance mdl_block_pinned |
Данные блоков привязанных к разделам и страницам |
Для создания модуля типа “block” в системе Moodle необходимо описать класс, определяющий функциональность этого модуля. Этот класс должен являться наследником класса block_base, в котором определена базовая функциональность блоков, а также реализована интеграция в систему. При этом необходимо переопределить в этом классе следующие методы:
Таким образом, простейший модуль типа “block” описывается следующим кодом:
<?php class block_demoblock extends block_base { function init() { $this->title = 'Block_title'; $this->version = 2009053000; } function get_content() { if ($this->content !== NULL) { return $this->content; } $this->content = new stdClass; $this->content->text = 'Block content'; $this->content->footer = 'Footer here...'; return $this->content; } } ?> |
Как можно видеть из приведенного выше кода, из соображений производительности тело функции выполняется только если поле content еще не определено. В некоторых случаях такая политика может привести к отображению устаревшего содержимого в блоке. Программист, определяя функцию get_content() должен сам позаботиться о специальной обработке подобных ситуаций. В большинстве случаев в этом нет необходимости.
Описанный выше простейший блок является полноправным модулем системы Moodle – в случае, если его поместить в папку blocks в корневом каталоге дистрибутива системы и после этого обратиться к странице администратора (http://moodlesite/admin), блок будет установлен, и пользователи, у которых есть соответствующие права, смогут добавлять этот блок к странице курса.
Помимо указанной функциональности, базовый класс block_base, предоставляет еще ряд возможностей, к которым можно получить доступ, переопределяя некоторые функции или изменяя значения полей.
Были сформулированы правила для проектирования модулей для связи с мультиагентной средой, согласно которой модуль должен удовлетворять следующим условиям:
Входными для модуля являются следующие источники данных: настройки самого модуля, настройки системы дистанционного обучения Moodle, ответ от мультиагентной системы.
Ответ от мультиагентной системы приходит в формате описанном по стандартам SOAP, и десереализуется в PHP-переменные.
Для выполнения поставленных задач модулю интеграции необходимо первоначальное получение от пользователя настроек.
Процесс ввода настроек должен отвечать следующим требованиям:
Эти требования необходимо выполнить в следующих условиях:
В состав настроек модуля входят следующие данные:
Ввод этих настроек осуществляется со страницы настройки блока:
Выходными данными модуля являются:
В системе Moodle существует несколько типов подключаемых модулей, которые позволяют обеспечить необходимую функциональность.
Таблица 2.5.2. Сводная таблица характеристик типов подключаемых модулей, подходящих для реализации необходимой функциональности.
Параметр |
Activity module |
Различные отчеты |
Blocks |
Gradebook plugins |
Простота интеграции в систему |
3 |
4 |
5 |
4 |
Область видимости |
Определяется в ходе интеграции |
На странице генерации отчетов |
На странице курса |
На странице успеваемости |
Возможность выполнять периодические работы |
Да |
Нет |
Да |
Нет |
Встроенный механизм хранения параметров для каждого курса |
Нет |
Нет |
Да |
Нет |
На основании этого наиболее подходящим для выполнения поставленной задачи представляется тип модуля “block”, так как он предоставляет готовые механизмы инициализации БД при установке и хранения параметров, достаточно просто интегрируется в систему, а также посредством стандартизированного механизма предоставляет возможность выводить данные на странице курса.
Написание модуля будет осуществляться на скриптовом языке PHP, так как это необходимое условие для его интеграции в систему. Также в соблюдение требований, предъявляемых системой, модуль будет реализован как класс языка PHP, наследующий от класса block_base.
В ходе разработки основной акцент делается на оптимизацию алгоритмов по быстродействию и полную проверку входных данных на корректность. Последнее вызвано тем, что модуль будет функционировать в сети Интернет, поэтому возможны попытки его нецелевого использования для получения несанкционированного доступа к системе, на которой он функционирует.
Перемещение данных в ходе работы системы обусловлено общей архитектурой программного комплекса и является схожим для большинства выполняемых системой действий, в том числе для алгоритмов работы проектируемого модуля.
Все необходимые для работы системы данные хранятся в базе данных под управлением СУБД (с которой у интерпретатора PHP налажена связь через внутреннюю сеть) или в оперативной памяти, как параметры, переданные в http запросе.
Пользователь со своего компьютера с помощью программы-браузера отправляет запрос через сеть Интернет на получение необходимой ему страницы.
На основании адреса запрошенной страницы запускается на исполнение нужный скрипт. Запущенный на исполнение скрипт PHP запрашивает у СУБД нужные данные, СУБД производит выборку из БД и возвращает данные интерпретатору PHP.
Скрипт производит необходимые операции обработки (формирует отображаемую страницу) и передает полученные данные через сеть Интернет на компьютер пользователя в память программы-браузера, которая уже осуществляет подготовку данных к выводу и отображает их на экране монитора пользователя.
Модуль построен на базе стандартного модуля LMS Moodle типа «Блок».
Модуль можно разделить на несколько частей:
Базовые классы (классы ядра), организующие работы модуля в целом.
Средства Moodle, такие как языковые пакеты и библиотеки, с помощью которых организуется доступ к данным LMS Moodle.
Шаблоны вида, реализующие пользовательские интерфейсы для агентов, возвращающих результаты различной структуры.
Реализация протокола для связи с мультиагентной системой. На данный момент построен на базе протокола SOAP и языка описания веб-сервисов WSDL. Классы реализующие протокол не являются базовыми, поэтому при смене протокола не нужно будет вносить системные изменения в модуль. При реализации протокола реализованы как клиентская так и сервисная части, то есть модуль может выступать как клиент, так и как сервис. Для второго случая не предусмотрен пользовательский интерфейс, сервисы создаются программистом.
Авторизация пользователя, проверка достаточно ли у него прав для просмотра страницы или блока производится средствами Moodle.
При обращении к модулю проводится выборка из базы настроек, заданных пользователем.
Если определен шаблон вида, то он подключается и выводится, с передачей в него информации об имени сервиса, запросе к клиенту, который необходимо будет выполнить по умолчанию, а так же запросах, которые необходимо будет выполнить в фоне, если таковые определены. Каждый из запросов, информация о которых была передана, отправляется из шаблона асинхронно (то есть каждый следующий запрос отправляется не дожидаясь результата выполнения предыдущего). Каждый запрос отправляется к скрипту, который проверяет переданные параметры, получает из базы данных информацию о модуле, необходимую для отправки запроса к мультиагентной системе и инициализирует клиента, если все необходимые параметры определены (такие как адрес мультиагентной системы, данные о прокси-сервере, если они определены, время ожидания отправки и ответа запроса). Если входных параметров достаточно, то отправляется запрос к мультиагентной системе, иначе возвращается флаг об ошибке. Ответ на запрос или флаг об ошибке преобразуются в строку согласно формату JSON и отправляются в шаблон, в котором происходит их обработка и вывод.
Интерфейсы общения с мультиагентной системой построены на безе библиотеки nuSOAP и включают в себя реализацию языка описания веб-сервисов WSDL и протокола SOAP.
Для описания интерфейса программной компоненты, включая спецификацию корректных сообщений, был разработан язык WSDL (Web Service Definition Language). Описание на языке WSDL включает в себя следующие семь составляющих:
Рис. 2.6.1. Составные части WSDL документа.
Упрощенная структура WSDL-документа:
<wsdl:definitions>
<wsdl:types>...</wsdl:types>
<wsdl:message>...<wsdl:message/>
<wsdl:portType>...</wsdl:portType>
<wsdl:binding>...</wsdl:binding>
<wsdl:service>...<wsdl:service>
<wsdl:definitions>
С помощью нескольких элементов обозначаются главные разделы WSDL-документа.
wsdl:types |
Элемент-контейнер определений типов данных, созданных с помощью XML-схемы (XSD) или другой аналогичной системой для типов данных. |
wsdl:message |
Определение данных сообщения, с которыми устанавливается связь. Сообщение может состоять из нескольких частей, и эти части могут быть разных типов. |
wsdl:portType |
Абстрактный набор операций, поддерживаемых одной или несколькими конечными точками. |
wsdl:binding |
Конкретная спецификация протокола и формата данных для определенного типа порта. |
wsdl:service |
Коллекция связанных конечных точек. |
Пользователям и разработчикам WSDL предоставляет формализованное описание взаимодействия клиент-служба. Разработчики используют документы WSDL в качестве входной информации для генератора-посредника, который порождает клиентский код в соответствии с требованиями службы. WSDL также может использоваться и на входе динамического вызова посредника, который затем генерирует корректные запросы к службе во время исполнения. В обоих случаях цель — избавить пользователя и разработчика от необходимости разбираться во всех деталях доступа к службе.
SOAP - протокол обмена структурированными сообщениями в распределённой вычислительной среде. Первоначально SOAP предназначался, в основном, для реализации удалённого вызова процедур, а название было аббревиатурой: Simple Object Access Protocol - простой протокол доступа к объектам. Сейчас протокол используется для обмена произвольными сообщениями в формате XML, а не только для вызова процедур. Официальная спецификация последней версии 1.2 протокола никак не расшифровывает название SOAP. SOAP является расширением протокола XML-RPC.
SOAP может использоваться с любым протоколом прикладного уровня: SMTP, FTP, HTTP и др. Однако его взаимодействие с каждым из этих протоколов имеет свои особенности, которые должны быть определены отдельно. Чаще всего SOAP используется поверх HTTP.
SOAP является одним из стандартов, на которых базируется технологии веб-сервисов.
Сообщение SOAP выглядит так:
<?xml version='1.0' ?>
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope">
<env:Header>
…
</env:Header>
<env:Body>
…
</env:Body>
</env:Envelope>
Заголовок SOAP является расширением, предоставляющим способ передачи в SOAP-сообщениях информации, вообще говоря не являющейся полезной для приложения. Подобная "контрольная" информация включает, например, директивы прохождения сообщения или контекстную информацию, относящуюся к обработке сообщения. Это позволяет подстраивать SOAP-сообщения под каждое конкретное приложение. Следующие непосредственно за env:Header дочерние элементы называются заголовочными блоками. Они представляют логическую группировку данных, которые, как показано позже, могут быть индивидуально адресованы SOAP-узлам, встречаемым сообщением на пути от отправителя к конечному получателю.
Тело SOAP-сообщения является обязательным элементом внутри env:Envelope, содержащим основную информацию SOAP-сообщения, которая должна быть передана из начальной точки пути сообщения в конечную.
Одна из целей SOAP - инкапсулировать функциональность, реализуемую посредством вызовов удаленных процедур, используя широкие возможности применения и гибкость XML.
Для вызова SOAP RPC требуется следующая информация:
SOAP также предлагает проектировщику приложений общую функцию, называемую Web-методо SOAP, которая позволяет приложениям полностью контролировать выбор так называемого "Web-метода" - одного из GET, POST, PUT, DELETE, чья семантика определена в спецификациях HTTP Web-метод может использоваться поверх привязки. Эта функция гарантирует, что SOAP-приложения могут взаимодействовать поверх привязки образом, совместимым с архитектурными принципами World Wide Web. (Говоря кратко, простота и масштабируемость Web существует в значительной степени благодаря существованию множества "общеупотребительных" методов (GET, POST, PUT, DELETE), которые могут быть использованы для взаимодействия с любым ресурсом Web посредством URI.) Функция SOAP Web-метод поддерживается HTTP-привязкой SOAP, хотя, в принципе, она доступна и для всех других привязок SOAP к нижележащим протоколам.
Преимущества SOAP:
Недостатки SOAP:
Moodle и мультиагентная система «общаются» по принципам взаимодействия веб-сервисов:
Надежность является комплексным свойством, которое включает в себя следующие свойства: работоспособность, сохраняемость, ремонтопригодность, долговечность.
Основное свойство, описываемое количественными характеристиками – работоспособность. Утрата работоспособности – отказ.
Количественные характеристики надежности (работоспособности) различаются для восстанавливаемых и невосстанавливаемых изделий.
Основные характеристики надежности для невосстанавливаемых изделий:
Реальные значения указанных характеристик получают по результатам испытаний на надежность.
В расчетах времени до отказа t считается случайной величиной, поэтому используется аппарат теории вероятностей.
Свойства (аксиомы):
P(0)=1 (рассматривается эксплуатация работоспособных изделий);
Lim t ® ∞ P(t)=0 (работоспособность не может быть сохранена неограниченное время);
(для невосстанавливаемых) dP(t)/dt≤0 (после отказа изделие не восстанавливается).
Выбор показателя надежности:
Условия расчета:
Pизд.(t)=P1(t) * P2(t) * …* Pn(t) =
а интенсивность отказов изделия lизд
lизд=l1 + l2 + …+ ln =
(складываются показатели степени в выражении P=exp(-lt) ),
тогда для среднего времени наработки на отказ Tизд = 1/lизд
Надежностная схема:
Процесс эксплуатации восстанавливаемых систем и изделий отличается от такого же процесса для невосстанавливаемых тем, что наряду с потоком отказов элементов изделия присутствуют стадии ремонта отказавших элементов, т.е. присутствует поток восстановления элементов. Для восстанавливаемых систем не выполняется третье свойство характеристик надежности: dP(t)/dt<0. За период времени Dt могут отказать два элемента системы, а быть восстановленными – три аналогичных элемента, а значит производная dP(t)/dt>0.
Характеристики надежности восстанавливаемых систем должны описывать как поток отказов элементов, так и поток восстановлений. Для описания потока отказов используются, по-прежнему, интенсивность отказов l и среднее время наработки на отказ T, а для описания потока восстановлений – интенсивность восстановлений m и среднее время восстановлений ТВ.
Интегральной характеристикой надежности восстанавливаемых систем является коэффициент готовности системы КГ, показывающий вероятность нахождения системы в работоспособном состоянии в произвольно выбранный момент времени и вычисляемый в соответствии с выражением:
КГ=Т/(Т+ТВ), ТВ=1/m
Условиями приближенного расчета надежности восстанавливаемых изделий и систем являются следующие положения:
Для последовательной надежностной схемы включение n-элементов, описываемых характеристиками li, КГi и mi, имеются следующие приближенные выражения для определения интенсивности отказов l, интенсивности восстановлений m и коэффициента готовности системы КГ:
; ; .
Связь характеристик можно выразить следующим образом:
, поскольку m>>l.
В восстанавливаемых системах достаточно часто используется резервирование элементов.
Резервирование приводит к появлению групп параллельно включенных элементов в надежностной схеме. Для определения характеристик параллельного включения элементов l, КГ и m в подсистеме при горячем резервировании используются выражения:
.
Пример параллельного включения m-элементов при горячем резервировании
Корректное функционирование программного комплекса обучающей системы неразрывно связано с надежностью сопутствующего ПО, обеспечивающего средства для ее работы. К нему относятся веб-сервер Apache и сервер баз данных Mysql.
Составляем надежностную схему и определяем критерии отказа системы.
Установим, что отказ системы наступает при отказе любой из ее подсистем.
Определяем по справочникам и условиям эксплуатации значения li и mi для отдельных устройств.
Значение КГ рассчитывается КГ»1-l/m |
Устройство |
Интенсивность |
Коэффициент готовности |
|
отказов, l, 1/ч |
восстановления, m, 1/ч |
|||
1. Сервер (оборудование) |
2*10-5 |
0,1 |
0,9998 |
|
2. Веб-сервер |
0,86 * 10-3 |
0,5 |
0,9983 |
|
3. Сервер баз данных |
0,86 * 10-3 |
0,5 |
0,9983 |
|
4. Ядро обучающей системы |
0,4 * 10-4 |
0,1 |
0,9996 |
Рассчитаем вероятности безотказной работы для различных периодов работы системы:
Pi(t)=exp(-lit)
Pизд.(t)=P1(t) * P2(t) * …* Pn(t)=
t, ч |
100 |
500 |
1000 |
P1(t) |
0,998002 |
0,99005 |
0,980199 |
P2(t) |
0,772595 |
0,275271 |
0,075774 |
P3(t) |
0,772595 |
0,275271 |
0,075774 |
P4(t) |
0,996008 |
0,980199 |
0,960789 |
Pизд(t) |
0,593333 |
0,073535 |
0,005407 |
В соответствии с выражением для последовательного включения устройств и подсистем имеем:
lS= 1,7*10-3
КГS= = 0,9865
mS=lS/(1- КГS)= 0,15852 1/ч
Результат расчета для системы:
Т=1/lS= 561 ч, время наработки на отказ
Тн=1/mS= 2,2 ч, время восстановления
КГS= 0,99596 коэф. Готовности
Процесс установки модуля производится только администратором системы Moodle. Для установки модуля необходимо:
Добавить в него строки:
<script type="text/javascript" src="../files/114/<?php echo $CFG->httpswwwroot ?>/lib/jquery-1.3.2.min.js"></script>
<script type="text/javascript" src="../files/114/<?php echo $CFG->httpswwwroot ?>/lib/jquery-json.js"></script>
<script type="text/javascript" src="../files/114/<?php echo $CFG->httpswwwroot ?>/lib/moodlemas.js"></script>
После аналогичных.
После этого пользователем администратора зайти на страницу администрирования системы, в результате чего будет произведена установка модуля – созданы необходимые для его функционирования таблицы в базе данных. Удаление модуля при необходимости производится также через интерфейс администратора системы. При этом в случае следования установленному порядку удаления модуля в системе не остается никаких данных модуля.
После установки модуля можно приступать к его эксплуатации.
Необходимо на странице настройки блока установить начальные настройки.
Общие настройки
Заголовок блока – название, которое будет отображаться в заголовке блока на странице.
Локальный путь - Локальный путь, где расположен клиент для обмена данных с МАС (от корня системы).
Настройки клиента
Полный путь до WDSL MAS - Полный путь до WSDL, содержащего описание сервисов MAS.
Настройки прокси-сервера (опционально):
Время ожидания запроса – в секундах, по умолчанию 0.
Время ожидания ответа – в секундах, рекомендуется устанавливать его до 30 секунд. Должно быть больше 0.
Сервис по умолчанию – сервис к которому будет произведен запрос.
Данные для сервиса по умолчанию – данные для запроса в формате JSON.
Шаблон для вывода – шаблон вывода для блока.
Настройки авторизации (опционально):
Запросы в фоне (опционально) - запросы к МАС, которые не требуют ответа, но их необходимо посылать при каждом обновлении страницы.
Каждый запрос описывается двумя строками, в первой указывается имя сервиса, к которому будет отправлен запрос, во второй данные для запроса в формате JSON. Разделителем между описаниями запросов является пустая строка.
В данных для запроса можно указывать метки типа ::user_id::, которые будут заменены при отправке запроса на реальные данные, полный список меток можно посмотреть в файле \mas\classes\mas_replacements.php.
После установки настроек модуль котов к эксплуатации.
Для создания новой метки необходимо до инициализации клиента вызвать статичный метод add класса mas_replacements с двумя параметрами, в первом необходимо указать имя метки, во втором ее значение.
Лучше всего это делать прямо в файле \mas\classes\mas_replacements.php, так как к моменту интерпритации данного файла уже загружен и подключен конфигурационный файл LMS Moodle, что дает полный доступ к данным системы.
Например mas_replacements::add('::user_id::', $USER->id); добавит метку ::user_id:: которая при отправке запроса будет заменена на реальное значение ID текущего пользователя.
Является надстройкой над jQuery.aJax для упрощения работы, но накладывает некоторые ограничения.
Функции:
Init() – инициализация объекта
setTextLoading(text) – Установка сообщения о передаче данных
setTextFail(text) – Установка сообщения об ошибке
setInstance(int) – Установка ID блока
setMethod(text) – название метода, который надо вызвать на сервере
setParameters(text) – Установка параметров для запроса
setRequestFile(text) – Установка URL, на который будет отправлен запрос
beforeSend() – Действия перед отправкой запроса
success(json) – Действия при успешной отправке запроса
error() – Действия при ошибке отправки запроса
send() – отправка запроса
Структура и расположение шаблонов вида жестко определены.
Шаблоны вида должны располагаться в папке \mas\templates\block\, причем для каждого шаблона должен тапк же быть создан одноименный шаблон для административной части в папке \mas\templates\block\admin\.
Например:
\mas\templates\block\simpleText.phtml – шаблон для блока
\mas\templates\block\admin\simpleText.phtml – шаблон для административной части.
Структура шаблона для блока должна иметь вид:
<div class="mas_content_<?php print $html_instance_id; ?>"></div> <script> // эту часть можно не менять (за исключением имени переменной) mmas = moodlemas.init(); mmas.setInstance("<?php print $html_instance_id; ?>"); mmas.setMethod("<?php print $html_agent; ?>"); mmas.setParameters(<?php print $html_agent_data; ?>); mmas.setRequestFile("<?php print $html_request_file; ?>"); mmas.setTextLoading("<?php print get_string('mas_request_loading', 'block_mas'); ?>"); mmas.setTextFail("<?php print get_string('mas_request_fail', 'block_mas'); ?>"); // действия, для каждого шаблока свои // действия перед отправкой mmas.beforeSend = function() { $(".mas_content_"+mmas.instanceid).html(mmas.loading); }; // действия при успешном получении ответа mmas.success = function(json) { var result = json.result; if(json.result == "fail") { result = mmas.fail; } $(".mas_content_" + mmas.instanceid).html(result); }; // отправка запроса mmas.send(); </script> |
К структуре шаблона административной части никаких требований не выставляется, так как нельзя точно предположить сколько запросов необходимо будет отправить, все данные блока доступны в шаблоне через переменную $current_block;
Модуль для LMS Moodle, реализующий интеграцию мультиагентных сервисов системы дистанционного обучения.
Выявить ошибки реализации модуля для их исправления, проверить общее соответствие модуля предъявляемым в техническом задании требованиям.
К модулю интеграции предъявляются следующие требования:
В ходе испытаний были использованы следующие технические и аппаратные средства:
Испытания проводятся в порядке, соответствующем порядку перечисления требований к программе. В ходе испытаний проверяется общее соответствие модуля предъявленным функциональным требованиям и временным ограничениям, общая работоспособность, тестирование протокола передачи данных, а так же испытание модуля на наличие программных ошибок по методике черного ящика.
Номер испытания |
Без модуля |
С подключенным модулем |
Ti |
0.290 |
0.279 |
2 |
0.284 |
0.297 |
3 |
0.283 |
0.294 |
4 |
0.272 |
0.303 |
5 |
0.287 |
0.305 |
По результатам выявлено, что наличие блока на странице, реализующего связь с мультиагентной системой практически не влияет на скорость формирования страницы.
Охрана труда – это система обеспечения безопасности жизни и здоровья работников в процессе трудовой деятельности, включающая в себя правовые, социально-экономические, организационно-технические, санитарно-гигиенические, лечебно-профилактические, реабилитационные и иные мероприятия.
Любой производственный процесс, в том числе работа с ЭВМ, связан с появлением опасных и вредных факторов.
Опасным производственным фактором является такой фактор производственного процесса, воздействие которого на работающего приводит к травме или резкому ухудшению здоровья.
Вредные производственные факторы – это неблагоприятные факторы трудового процесса или условий окружающей среды, которые могут оказать вредное воздействие на здоровье и работоспособность человека. Длительное воздействие на человека вредного производственного фактора приводит к заболеванию.
Негативные факторы трудового процесса приводят к снижению трудоспособности и ухудшению качества выпускаемой продукции. Длительное воздействие неблагоприятных условий труда может привести к нарушению здоровья работающего, развитию профессионального заболевания или инвалидности.
Задачей охраны труда является гарантирование безопасных и здоровых условий труда и поддержание трудоспособности рабочих. Безопасными условиями труда считаются такие условия, при которых воздействие на работающих вредных или опасных производственных факторов исключено либо уровни их воздействия не превышают установленные нормативы.
Для разработки программного обеспечения в данной дипломной работе были использованы следующие основные элементы вычислительной техники:
При использовании указанных элементов вычислительной техники могут возникнуть опасные и вредные факторы.
1. Безопасным для человека считается напряжение менее 40В. Персональный компьютер питается от двухфазной сети переменного тока с частотой 50Гц и напряжением 220В. Это напряжение является опасным для человека, поскольку прикосновение к токоведущим частям может привести к поражению электрическим током, что обуславливает появление опасного фактора - поражение электрическим током.
Воздействие электрического тока на человека может носить следующий характер:
При поражении электрическим током человек может получить травмы следующего вида:
Различают электроудары четырех степеней сложности:
2. При работе за экраном монитора человек попадает под воздействие излучения электромагнитных полей кадровой и строчной разверток на малых частотах, что вызывает появление вредного фактора – излучение электромагнитных полей низкой частоты. Данный вредный фактор влияет на человека следующим образом:
Результатом длительного нахождения в мощном ореоле низкочастотных электрических полей могут стать головные боли и нарушение визуального восприятия изображения на экране после нескольких часов работы на компьютере.
3. При работе за экраном дисплея пользователь попадает под воздействие ультрафиолетового излучения (УФИ). Это электромагнитное излучение в области, которая примыкает к коротким волнам и лежит в диапазоне длин волн ~ 200 – 400 нм. При повышении плотности данного излучения, оно становиться для человека вредным фактором. Его воздействие особенно сказывается при длительной работе с компьютером. Необходимо учитывать, что человек подвергается суммарному воздействию:
-УФИ, испускаемого монитором,
-УФИ, излучаемого люминесцентными лампами,
-УФИ, проникающего сквозь оконные проемы.
Такая совокупность излучения может превысить нормируемую плотность УФИ, равную 10 Вт/м2.
Биологическое воздействие на организм человека УФИ оценивается зрительным потоком, который измеряется внесистемной единицей – Эp и установленные нормы облучения УФИ равняются 7,5 за смену, и 60 за сутки.
На человека малые дозы УФИ оказывают благотворное действие — способствуют образованию витаминов группы D, улучшают иммунобиологические свойства организма. Однако превышение нормируемой плотности может иметь следующие негативные последствия:
При длительном воздействии и больших дозах могут быть следующие последствия:
4. При напряжении на аноде электронно-лучевой трубки 3 – 500кВ присутствует рентгеновское излучение различной жесткости. Поскольку анод электронно-лучевой трубки дисплея имеет напряжение свыше 15кВ, оператор попадает в зону мягкого рентгеновского излучения. Таким образом, появляется вредный фактор – рентгеновское излучение. Суть опасности данного вредного фактора состоит в следующем:
5. Во время работы на персональных ЭВМ при прикосновении к любому из элементов оборудования могут возникнуть разрядные токи статического электричества. Вследствие этого происходит электризация пыли и мелких частиц, которые притягивается к экрану. Собравшаяся на экране электризованная пыль ухудшает видимость, а при повышении подвижности воздуха в помещении более 0.2 м/с, попадает на лицо и в легкие человека, вызывая заболевания кожи и дыхательных путей. Статическое электричество при превышении нормированного значения 15 кВ/м становится вредным фактором.
Особенно электростатический эффект наблюдается у компьютеров, которые находятся в помещении с полами, покрытыми синтетическими коврами.
При повышении напряженности поля Е>15 кВ/м, статическое электричество может привести к выходу компьютера из строя, замыканию клавиатуры и потере информации на экране, так как изделия в ВТ питаются U=3-12В.
6. К вредным факторам при работе за компьютером можно также отнести блики и мерцание экрана из-за низкой частоты вертикального обновления или из-за низкого качества развертки монитора. Экспериментальные данные показывают, что вышеуказанные факторы способствуют возникновению:
При работе за компьютером для вывода информации на бумажный носитель применяется принтер. Но, поскольку, принтер работает кратковременно, вредного воздействия на человека по шуму он не оказывает.
Из анализа опасных и вредных факторов, возникающих при работе на компьютере, можно сделать вывод, что оператор нуждается в средствах защиты от их воздействия.
Для защиты от напряжения прикосновения используется зануление. Занулением называется преднамеренное соединение нетоковедущих частей с нулевым защитным проводником (рис. 3.1). Оно применяется в трехфазных четырехпроводных сетях с заземленной нейтралью в установках до 1000 вольт и является основным средством обеспечения электробезопасности.
Защита человека от поражения электротоком в сетях с заземлением осуществляется тем, что при замыкании одной из фаз на зануленный элемент машины в цепи этой фазы возникает ток короткого замыкания, который вызывает перегорание предохранителя (автомата) в оборудовании, в результате чего происходит отключение аварийного участка от сети.
Рисунок. 3.1 Зануление
Расчет возможной величины тока короткого замыкания производится на основе следующих данных:
Таблица 3.1
Провод |
Длина, м |
Площадь сечения, мм2 |
материал |
l1 |
500 |
2 |
алюминий |
l2 |
20 |
1 |
медь |
l3 |
15 |
1 |
медь |
= 0.312 Ом.
Расчет величины возможного тока короткого замыкания по заданным параметрам:
, (3.1)
где – ток короткого замыкания [А];
– фазовое напряжение [B];
– общее сопротивление цепи [Ом];
– сопротивление катушек трансформатора [Ом].
, (3.2)
где и – сопротивление первого и второго проводника соответственно [Ом];
– сопротивление нулевого защитного проводника [Ом];
Расчет сопротивления проводника производится по формуле:
, (3.3)
где – удельное сопротивление материала проводника [Ом*м];
l – длина проводника [м];
S – площадь поперечного сечения проводника [мм2].
Таким образом, получаем следующие значения:
= 0.0280*(500/2)=7 (Ом);
= 0,0175*(20/1)=0.35(Ом);
= 0,0175*(15/1)=0.2625(Ом);
= 7+0.35+0.2625=7.6125 (Ом);
= 220/(0.312/ 3 + 7.6125) = 28.51 (А).
По величине тока короткого замыкания определим с каким необходимо к цепь питания ПЭВМ включить автомат. При замыкании фазы на зануленный корпус электроустановка автоматически отключается, если ток однофазного короткого замыкания удовлетворяет условию:
, (3.4) где – номинальный ток срабатывания защитного устройства, [А];
к – коэффициент, учитывающий тип защитного устройства.
Таким образом, номинальный ток срабатывания защитного устройства:
. (3.5)
= 28.51/3=9.5 (А).
Отсюда следует, что во избежание поражения электрическим током и выхода из строя ПЭВМ и периферийного оборудования, в случае возникновения короткого замыкания или других причин появления напряжения прикосновения в цепь питания ПЭВМ необходимо включить автомат с номинальным током = 10А.
Для снижения уровня воздействия электромагнитных полей желательно пользоваться следующими мерами:
Для ослабления ультрафиолетового излучения необходимо:
Защиту от рентгеновского излучения можно обеспечить:
Рассмотрим более подробно каждый пункт.
1. Время работы на персональном компьютере по санитарным нормам не должно превышать четырех часов в сутки.
2. Все компьютеры, не соответствующие шведскому стандарту MPRII (MPRII базируется на концепции о том, что люди живут и работают в местах, где уже есть магнитные и электрические поля, поэтому устройства, которые мы используем, такие, как монитор для компьютера, не должны создавать электрические и магнитные поля, большие, чем те, которые уже существуют), на расстоянии 5 см от экрана имеют мощность дозы рентгеновского излучения 50-100 мкР/час.
Для определения величины облучения оператора, рассчитаем дозу, которую можно получить на различном расстоянии от экрана монитора.
Для этого необходимо определить мощность дозы облучения Pr на расстоянии r от экрана, которая рассчитывается по формуле:
, (3.6)
где Pо – начальная мощность дозы на расстоянии 5 см от экрана, равная 100мкР/ч;
r – расстояние от экрана, измеряемое в сантиметрах;
– линейный коэффициент ослабления рентгеновского излучения воздухом, измеряемый в 1/см.
Поскольку энергетический уровень рентгеновского излучения неизвестен, для расчета возьмем .
Рассчитаем мощность дозы облучения на расстояниях: 5, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100 см (обычно оператор не находится от монитора далее, чем на 1 метр). Результаты расчетов приведены в таблице 3.2, где в первой строке указано расстояние, а во второй величина дозы облучения.
Таблица 3.2
r, см. |
5 |
10 |
20 |
30 |
40 |
50 |
60 |
70 |
80 |
90 |
100 |
Р, МкР/ч. |
100 |
73.1 |
53.4 |
39 |
28.5 |
21 |
15.2 |
11.1 |
8.1 |
5.9 |
4.3 |
На основании таблицы 3.2 можно построить график зависимости мощности дозы излучения от расстояния до экрана (рис. 3.2).
Рисунок 3.2. График зависимости мощности дозы излучения от расстояния до экрана
Как правило, пользователь располагается на расстоянии 50 – 60см от экрана дисплея. Таким образом, он подвергается дозе облучения 15,2–21 мкР/ч (для дальнейших расчетов будем использовать максимальное значение 21 мкР/ч).
Годовая норма дозы облучения составляет 0.1 Р/год. Для определения годовой нормы облучения оператора за год рассчитаем данную величину, учитывая, что человек находился перед монитором по 4 часа в сутки (максимально допустимое время) и 5 дней в неделю.
Доза за смену = 4*21 = 84 мкР/ч
Доза за неделю = 84*5 = 420 мкР/ч
Доза за год = 420*45 = 18900 мкР/ч
Из расчета получено, что годовая доза облучения составляет 0,0189 Р/год, что не превышает нормированное значение.
Таким образом, при нахождении оператора на расстоянии 50–60 см от монитора по 4 часа в сутки 5 дней в неделю соблюдено условие защиты человека от радиации.
3. Пользователи, использующие мониторы, не соответствующие стандарту MPRII, нуждаются в дополнительной защите от воздействия рентгеновского излучения. Такая защита обеспечивается экранированием. Экранирование – это использование специальных экранов для монитора. Лучшим из них считаются экраны: ”Ergostar”, дающие ослабление 0.03 мкР/ч. на 5 см., а также “Global Shield”, соответствующие стандарту MPRII.
Для защиты от статического электричества необходимо выполнять следующие требования:
Различают несколько типов нейтрализаторов:
Нейтрализаторы радиоизотопного и аэродинамического типов используют во взрывоопасных производствах. Индуктивные нейтрализаторы применимы в случаях, когда их можно расположить очень близко к наэлектризованному материалу (20 мм и менее). Кроме того, они не ликвидируют заряд полностью, остаточная плотность заряда на материале может достигать Кл/м2. Высоковольтные нейтрализаторы высокоэффективны, и их работа не зависит от величины заряда на материале.
Мерцание экрана зависит исключительно от характеристик монитора, поэтому уменьшить воздействие данного вредного фактора можно лишь, уменьшив время, проведенное за экраном монитора.
Блики на экране монитора могут возникнуть из-за неправильного освещения в помещении.
Помимо выполнения рассмотренных методов защиты от воздействия опасных и вредных факторов при работе за компьютером важным является соблюдение эргономических требований при организации рабочих мест.
Выполнение эргономических рекомендаций по эксплуатации компьютеров позволяет значительно снизить вредные воздействия находящихся в эксплуатации ЭВМ. В первую очередь безопасность при работе с ЭВМ может быть обеспечена за счет правильного выбора визуальных параметров дисплея, рационального размещения компьютеров в помещениях, оптимальной с точки зрения эргономики организации рабочего дня пользователей, а также за счет применения средств повышения контраста и защиты от бликов на экране, электромагнитных излучений и электростатического поля.
Визуальные эргономические параметры дисплеев являются важнейшими параметрами безопасности, и их неправильный выбор однозначно влияет на зрительный дискомфорт и утомление человека–пользователя.
Для надежного считывания информации, при соответствующей степени комфортности ее восприятия, выбор параметров монитора должен обеспечивать работу оператора в оптимальных и допустимых диапазонах значений соответствующих параметров. Оптимальные и допустимые значения визуальных эргономических параметров должны быть указаны в технической документации на монитор для режимов работы различных категорий пользователей (детей, студентов, профессиональных специалистов и т.п.).
При выборе дисплея необходимо в первую очередь обращать внимание на следующие параметры:
Режимы труда и отдыха при работе с ПЭВМ зависят от категории трудовой деятельности. Все работы с использованием ПЭВМ делятся на три категории:
Время регламентированных перерывов за рабочую смену следует принимать в зависимости от категории трудовой деятельности с ПЭВМ, а также продолжительности смены.
Продолжительность непрерывной работы с ПЭВМ без регламентированного перерыва не должна превышать 2 часов.
Продолжительность обеденного перерыва определяется действующим законодательством о труде и Правилами внутреннего трудового распорядка предприятия (организации, учреждения).
При 8-часовой рабочей смене регламентированные перерывы целесообразно устанавливать:
При 12-часовой рабочей смене регламентированные перерывы устанавливаются в первые 8 часов работы аналогично перерывам при 8-часовой рабочей смене, а в течение последних 4 часов работы, независимо от категории и вида работ, через каждый час продолжительностью 5-10 минут.
При работе с ПЭВМ в ночную смену, независимо от вида и категории работ, продолжительность регламентированных перерывов увеличивается на 60 минут.
С целью уменьшения отрицательного влияния монотонного труда целесообразно применять чередование типов и темпа выполнения операций. Например, чередовать чтение осмысленного текста и ввод числовых данных.
В случаях возникновения у работающих с ПЭВМ зрительного дискомфорта и других неблагоприятных субъективных ощущений, несмотря на соблюдение санитарно-гигиенических, эргономических требований, режимов труда и отдыха следует применять индивидуальный подход в ограничении времени работ с ПЭВМ и коррекцию длительности перерывов для отдыха или проводить смену деятельности на другую, не связанную с использованием ПЭВМ.
Рациональное освещение помещений – один из наиболее важных факторов, от которых зависит эффективность трудовой деятельности человека.
Назначение его состоит в следующем:
К освещению в помещения предъявляются следующие требования:
Дополнительные требования к освещению в вычислительных центрах:
Если в помещении эксплуатируется более одного компьютера, то следует учесть, что на пользователя одного компьютера могут воздействовать излучения от других ПЭВМ, в первую очередь со стороны боковых и задних стенок дисплея. Учитывая, что от излучения со стороны экрана дисплея можно защититься применением специальных фильтров, необходимо, чтобы пользователь размещался от боковых и задних стенок других дисплеев на расстоянии не менее 1.5 м.
При подборе вычислительной техники следует отдавать предпочтение мониторам с низкими уровнями излучений, отвечающим шведским стандартам MPR 1990:8, MPR 1990:10, ТСО 91 и повышенными визуальными характеристиками.
На мониторы рекомендуется устанавливать защитные фильтры класса полной защиты (Total shield), обеспечивающие практически полную защиту от всех вредных воздействий монитора в электромагнитном спектре и позволяющие уменьшить блик от электронно-лучевой трубки, а также повысить читаемость символов.
Используемые методы и способы по защите от воздействия опасных и вредных факторов и соблюдение эргономических требований обеспечивают безопасность разработчика и пользователей.
В результате дипломного проектирования было проведено техническое исследование системы Moodle, был выбран тип подключаемого модуля системы, разработана структура модуля интеграции. Был реализован модуль, а так же реализована система его тестирования и написано руководство по его установке и эксплуатации.
Модуль отвечает требованиям к надежности; удовлетворяет всем требованиям системы Moodle к модулям данного типа, так как построен на базе стандартного; выполняет требования совместимости, предъявляемые к модулям данного типа в системе; имеет средства для достаточно гибкой настройки. Так как запросы к мультиагентной системе отправляются асинхронно, то в целом модуль не влияет на скорость загрузки страницы и временные задержки обусловлены только временем загрузки шаблона.
Актуальность данного подхода к расширению LMS Moodle обуславливается тем, что нет необходимости вносить системные изменения в LMS; конечный программный продукт не обязательно должен быть реализован на скриптовом языке PHP, тем самым значительно расширяя круг его возможностей; так как модуль написан на базе стандартного, то он гарантированно будет поддерживаться всеми последующими версиями LMS серии 1.9.x. Основным недостатком такого подхода является увеличение сетевого трафика, но в виду уровня развития систем телекоммуникаций я его не считаю критичным.
Исходные коды некоторых файлов.
Разработанный модуль типа блок.
Скрипт-инициализатор SOAP клиента.
Базовый класс.
SOAP клиент.
Класс для работы с блоками.
Javascript-объект обертка для Ajax запроса.
Разработанный модуль типа блок
<?php
Class block_mas extends block_base {
/* инициализация */
function init() {
$this->title = 'MAS';
$this->version = 20090301;
}
/* можно настраивать */
function instance_allow_config() {
return true;
}
/* можно создавать несколько */
function instance_allow_multiple() {
return true;
}
/* контент */
function get_content() {
// вывод
// html[id] html[class]
$html = $this->html_attributes();
// файл для отправки запроса
$requestFile = $this->config->mas_local_path. '/mas_request.php';
$requestFile = str_replace($_SERVER['DOCUMENT_ROOT'],'http://'.$_SERVER['HTTP_HOST'],str_replace('\\','/',$requestFile));
// подгружаем шаблон
$OB = '';
ob_start();
$tfile = $this->config->mas_local_path . '/mas_request_background.php';
if(is_file($tfile)) { require_once($tfile); }
$OB .= ob_get_contents();
ob_end_clean();
ob_start();
$html_instance_id = $this->instance->id;
$html_agent = $this->config->mas_default_agent;
$html_agent_data = $this->config->mas_default_agent_data;
$html_request_file = $requestFile;
// непосредственно блок
$tfile = $this->config->mas_local_path . '/templates/block/' . $this->config->mas_default_agent_template;
if(is_file($tfile)) { require_once($tfile); }
$OB .= ob_get_contents();
ob_end_clean();
// непосредмтвенно вывод
$this->title = $this->config->title;
$this->content = new stdClass;
$this->content->text = $OB;
return $this->content;
}
}
?>
Скрипт-инициализатор SOAP клиента.
<?php
/* мудловые файлы */
require_once('../config.php');
/* остальные классы и файлы */
require_once('classes/mas_client.php');
$client = new mas_client();
$request = $client->makeRequest();
if(!$request) {
$request = 'fail';
}
print json_encode(array('result'=>$request));
?>
Базовый класс.
<?php
require_once(dirname(__FILE__) . '/mas_nusoap.php');
require_once(dirname(__FILE__) . '/mas_replacements.php');
Class mas_base {
protected $_request = array();
protected $namespace = 'MASNS';
/* constructor */
function __construct() {
// забираем входящие данные
$this->_request['instanceid'] = intval($_REQUEST['instanceid']);
$this->_request['method'] = $_REQUEST['method'];
$this->_request['parameters'] = array();
$this->_request['parameters'] = json_decode(stripslashes($_REQUEST['parameters']));
}
function processReplacements() {
$parameters = $this->_request['parameters'];
$this->_request['parameters'] = array();
foreach ($parameters as $k=>$v) {
foreach(mas_replacements::$replacements as $key=>$val) {
$v = str_replace($key,$val,$v);
}
$this->_request['parameters'][$k] = $v;
}
}
/* constructor */
function mas_base() {
$this->__construct();
}
/* установить пространство имен */
function setNameSpace( $ns = '') {
$this->namespace = $ns;
}
}
?>
SOAP клиент.
<?php
require_once(dirname(__FILE__).'/mas_base.php');
require_once(dirname(__FILE__).'/mas_block.php');
Class mas_client extends mas_base {
/* constructor */
function __construct() {
parent::__construct();
}
/* constructor */
function mas_client() {
$this->__construct();
}
/* make & send request to MAS */
public function makeRequest() {
// забираем конфиг блока
$instance = new mas_block();
$instance->get_moodle_instance($this->_request['instanceid']);
// настройки клиента
$mas_addr = $instance->get_mas_address();
$proxyhost = $instance->get_mas_proxy_host();
$proxyport = $instance->get_mas_proxy_port();
$proxyusername = $instance->get_mas_proxy_user();
$proxypassword = $instance->get_mas_proxy_password();
$timeout = intval($instance->get_mas_connect_timeout());
$response_timeout = (intval($instance->get_mas_responce_timeout()) > 0) ? intval($instance->get_mas_responce_timeout()) : 30;
// клиент
if($mas_addr) {
$client = new mas_nusoap_client($mas_addr, true, $proxyhost, $proxyport, $proxyusername, $proxypassword, $timeout, $response_timeout);
} else {
return false;
}
// авторизация
if($instance->get_mas_auth_type() != '') {
$client->setCredentials($instance->get_mas_auth_login(), $instance->get_mas_auth_password(), $instance->get_mas_auth_type(), array());
}
// запрос
if($this->_request['method'] && $this->_request['parameters'] && $this->namespace) {
// замена масок ::name:: на присвоенные им значения
$this->processReplacements();
return $responce = $client->call($this->_request['method'], $this->_request['parameters'], $this->namespace);
} else {
return false;
}
}
}
//return $responce = $client->call('hardArrayAction', array('input'=>array(array('строка','1'),array('string','2'),array('string','3','last'))), $this->namespace);
//return $responce = $client->call('assoc2textAction', array('input'=>array('id'=>'ИД','name'=>'Какое-то имя')), $this->namespace);
//return $responce = $client->call('array2textAction', array('input'=>array('этот','текст','был','прислан')), $this->namespace);
?>
Класс для работы с блоками.
<?php
// конфиг должен быть загружен выше
// мудловая библиотека для работы с блоками
require_once($CFG->dirroot .'/lib/blocklib.php');
require_once(dirname(__FILE__) . '/interface/module_interface.php');
// класс mas_block
Class mas_block implements module_interface {
protected $block_name = 'mas';
protected $block_object = false;
// забираем данные блока с заданным ид из базы
public function get_moodle_instance($instance_id = 0) {
// объект блока
$block_object = block_instance($this->block_name);
// выбираем таблицу
if($block_object->pinned) { $table = 'block_pinned'; } else { $table = 'block_instance'; }
// создаем класс-обманку
$hackInstance = new stdClass;
$hackInstance->configdata = $configdata = get_field_select($table, 'configdata', 'id = ' . $instance_id);
// расшифровываем конфиг
$this->block_object = block_instance($this->block_name,$hackInstance);
}
// если данные уже есть, то апдейтим
public function update_moodle_instance($data) {
$hackInstance = new stdClass;
$hackInstance->configdata = $data;
$this->block_object = block_instance($this->block_name, $hackInstance);
}
// класс блока
public function return_moodle_instance() {
return $this->block_object;
}
// класс блока
public function set_moodle_instance($object) {
$this->block_object = $object;
}
// параменты для запроса
public function get_mas_address() {
return $this->block_object->config->mas_address;
}
public function get_mas_proxy_host() {
return $this->block_object->config->mas_proxy_host;
}
public function get_mas_proxy_port() {
return $this->block_object->config->mas_proxy_port;
}
public function get_mas_proxy_user() {
return $this->block_object->config->mas_proxy_user;
}
public function get_mas_proxy_password() {
return $this->block_object->config->mas_proxy_password;
}
public function get_mas_connect_timeout() {
return $this->block_object->config->mas_connect_timeout;
}
public function get_mas_responce_timeout() {
return $this->block_object->config->mas_responce_timeout;
}
public public function get_mas_auth_type() {
return $this->block_object->config->mas_auth_type;
}
public function get_mas_auth_login() {
return $this->block_object->config->mas_auth_login;
}
public function get_mas_auth_password() {
return $this->block_object->config->mas_auth_password;
}
}
?>
Javascript-объект обертка для Ajax запроса.
// namespace
moodlemas = {
init : function() {
return new this.masobject();
}
};
// constructor
moodlemas.masobject = function () {
// id
this.instanceid = false;
// агент
this.method = false;
// данные для отправки
this.parameters = false;
// файл запроса
this.requestfile = false;
// загрузка (текст)
this.loading = "";
// неудача (текст)
this.fail = "";
};
// proptotype
moodlemas.masobject.prototype = {
setTextLoading: function (text) {
this.loading = text;
},
setTextFail: function (text) {
this.fail = text;
},
setInstance: function(instance) {
this.instanceid = new Number(instance);
},
setMethod: function (method) {
this.method = new String(method);
},
setParameters: function(parameters) {
this.parameters = parameters;
},
setRequestFile: function(rf) {
this.requestfile = new String(rf);
},
beforeSend : function() {},
success: function(json) {},
error: function () {},
send: function() {
if( this.instanceid != 0 &&
this.method != "" &&
this.requestfile != false ) {
selfobj = this;
// если все определено
$.ajax({
url: this.requestfile,
type: "POST",
data: "instanceid="+ this.instanceid +"&method="+ this.method +"¶meters=" + $.toJSON(this.parameters),
dataType: "json",
beforeSend: function() {
selfobj.beforeSend();
},
success: function(json){
selfobj.success(json);
},
error: function () {
selfobj.error();
}
});
}
}
};
PAGE \* MERGEFORMAT 97