Расширение возможностей системы Moodle за счет внедрения мультиагентной системы дистанционного обучения

Анализ подходов к расширению возможностей системы Moodle. Интеграция мультиагентных сервисов системы дистанционного обучения в модульную объектно-ориентированную динамическую учебную среду Moodle. Рекомендации по защите пользователей от излучений ЭВМ.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 14.03.2013
Размер файла 845,1 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Дополнительные требования к освещению в вычислительных центрах:

1. Местное освещение не рекомендуется. Используется общее освещение. Максимальная освещенность 400 лк, блескость менее 15 ед., пульсация менее 10%.

2. Освещенность на поверхности стола в зоне размещения рабочего документа должна быть 300-500 лк. Допускается установка светильников местного освещения для подсветки документов. Местное освещение не должно создавать бликов на поверхности экрана и увеличивать освещенность экрана более 300 лк.

3. Следует ограничивать прямую блесткость от источников освещения, при этом яркость светящихся поверхностей (окна, светильники и др.), находящихся в поле зрения, не должна быть более 200 кд/ кв.м.

4. Следует ограничивать неравномерность распределения яркости в поле зрения монитором и ПЭВМ, при этом соотношение яркости между рабочими поверхностями не должно превышать 3:1 - 5:1, а между рабочими поверхностями и поверхностями стен и оборудования 10:1.

5. Лампы рекомендуется использовать белого света, холодного белого света, наиболее близкие к естественному свету. Мощность ламп 36-40 ВТ, температура 3000-4200 градусов Кельвина, тогда они не дают высокого ультрафиолетового излучения.

6. Основной поток естественного света должен быть слева. Солнечные лучи и блики не должны попадать в поле зрения работающего с ПЭВМ.

7. Помещения должны иметь естественное и искусственное освещение. Желательна ориентация оконных проемов на север или северо-восток.

8. Для устранения бликов на экране, также как чрезмерного перепада освещенности в поле зрения, необходимо удалять экраны от яркого дневного света.

9. Рабочие места должны располагаться от стен с оконными проемами на расстоянии не менее 1,5 м, от стен без оконных проемов на расстоянии не менее 1,0 м.

10. Площадь на одно рабочее место должна составлять примерно 6 м2.

11. Поверхность пола в помещениях должна бать ровной, без выбоин, нескользкой, удобной для чистки и влажной уборки, обладать антистатическими свойствами.

12. Для подсветки документов допускается установка светильников местного освещения, которые не должны создавать бликов на поверхности экрана и увеличивать его освещенность до уровня более 300 лк. Следует ограничивать прямые блики от источников освещения. В качестве источников света при искусственном освещении необходимо применять преимущественно люминесцентные лампы типа ЛБ. Допускается применение ламп накаливания в светильниках местного освещения. Для того, чтобы избегать ослепления необходимо устранять из поля зрения оператора источники света (лампы, естественный солнечный свет), а также отражающие поверхности (например, поверхность блестящих полированных столов, светлые панели мебели). При электрическом освещении упомянутые требования могут быть удовлетворены при выполнении следующих условий:

- освещение должно быть не прямым, для чего необходимо избегать на потолке зон чрезмерной освещенности;

- освещенность должна быть равномерной;

- потолок должен быть плоским, матовым и однородным;

- необходима достаточная высота потолка для возможности регулировать высоту подвеса светильников;

- в помещениях больших размеров необходимо устанавливать ряды светильников, параллельных окнам, для того, чтобы иметь возможность включать и выключать определенные ряды светильников в зависимости от уровня естественного освещения.

13. Конструкция рабочего стола должна обеспечивать оптимальное размещение на рабочей поверхности используемого оборудования с учетом его количества и конструктивных особенностей, характера выполняемой работы, а также возможности выполнения трудовых операций в пределах досягаемости.

Рекомендации по защите пользователей от излучений ЭВМ.

Если в помещении эксплуатируется более одного компьютера, то следует учесть, что на пользователя одного компьютера могут воздействовать излучения от других ПЭВМ, в первую очередь со стороны боковых и задних стенок дисплея. Учитывая, что от излучения со стороны экрана дисплея можно защититься применением специальных фильтров, необходимо, чтобы пользователь размещался от боковых и задних стенок других дисплеев на расстоянии не менее 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 +"&parameters=" + $.toJSON(this.parameters),

dataType: "json",

beforeSend: function() {

selfobj.beforeSend();

},

success: function(json){

selfobj.success(json);

},

error: function () {

selfobj.error();

}

});

}

}

};

Размещено на Allbest.ru


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.