Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ДОТ УМКД.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
10.72 Mб
Скачать

Иерархия контента

Содержание пакета СС разделено на 4 уровня (рис. 2):

  • На нижнем уровне находится контент, распространяемый в пакете и хранимый в базе данных СДО.

  • Выше находится контент, адресуемый посредством ссылок во время выполнения. Это позволяет уменьшить размер пакета и обновлять адресуемые данные уже после распространения.

  • На следующей ступени иерархии располагается XML контент (форум, тесты и т.п.), предоставляющий широкие возможности контроля за представлением информации посредством СДО.

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

Рисунок 2. Иерархия контента в Common Cartridge

Common Cartridge определяет следующие форматы контента, которые могут выполняться на любой совместимой СДО. Следующие пункты справедливы для версии 1.0:

  • Контент

    • HTML, XML, SCORM, веб-ссылки

    • Медиа-файлы (mpg, jpg, mp3)

    • Файлы приложений (Microsoft Office)

  • Средства оценки, тесты

    • Множественный выбор

    • Верно/неверно

    • Эссе

    • Заполнение поля

    • Соответствие

  • Форум обсуждений

  • Метадата

  • Авторизация для защищенного контента

На данный момент существует 8 систем дистанционного обучения совместимых с IMS Common Cartridge. Многие системы, в том числе Moodle обзаведутся поддержкой данного стандарта в ближайшем времени.

2.5 Используемые технологий.

Для реализаций портала дистанционного образования использовался XAMMP. XAMPP — кроссплатформенная сборка веб-сервера, содержащая Apache, MySQL, интерпретатор скриптов PHP, язык программирования Perl и большое количество дополнительных библиотек, позволяющих запустить полноценный веб-сервер.

2.5.1 Apache.

Apache HTTP-сервер - свободный веб-сервер.

Apache является кроссплатформенным ПО, поддерживает операционные системы Linux, BSD, Mac OS, Microsoft Windows, Novell NetWare, BeOS.

Основными достоинствами Apache считаются надёжность и гибкость конфигурации. Он позволяет подключать внешние модули для предоставления данных, использовать СУБД для аутентификации пользователей, модифицировать сообщения об ошибках и т. д. Поддерживает IPv6.

Сервер был написан в начале 1995 года и считается, что его имя восходит к шуточному названию «a patchy» (англ. «заплаточка»), так как он устранял ошибки популярного тогда сервера Всемирной паутины NCSA HTTPd 1.3. В дальнейшем, с версии 2.х сервер был переписан заново и теперь не содержит кода NCSA, но имя осталось. На данный момент разработка ведётся в ветке 2.2, а в версиях 1.3 и 2.0 производятся лишь исправления ошибок безопасности. На текущий момент последняя версия ветки 2.0 — 2.4.1 (21 февраля 2012), для первой версии это 1.3.42.

Веб-сервер Apache разрабатывается и поддерживается открытым сообществом разработчиков под эгидой Apache Software Foundation и включён во многие программные продукты, среди которых СУБД Oracle и IBM WebSphere.

С апреля 1996 и до настоящего времени является самым популярным HTTP-сервером в Интернете. По статистике Netcraft, в августе 2007 года он работал на 51 % всех веб-серверов, в мае 2009 года — на 46 %. По данным Netcraft на январь 2011 года, более 160 млн сайтов обслуживаются веб-сервером Apache, что составляет 59 % от общего числа веб-сайтов.

Ядро Apache включает в себя основные функциональные возможности, такие как обработка конфигурационных файлов, протокол HTTP и система загрузки модулей. Ядро (в отличие от модулей) полностью разрабатывается Apache Software Foundation, без участия сторонних программистов.

Теоретически, ядро apache может функционировать в чистом виде, без использования модулей. Однако, функциональность такого решения крайне ограничена.

Ядро Apache полностью написано на языке программирования C.

Система конфигурации Apache основана на текстовых конфигурационных файлах. Имеет три условных уровня конфигурации:

  • Конфигурация сервера (httpd.conf).

  • Конфигурация виртуального хоста (httpd.conf c версии 2.2 extra/httpd-vhosts.conf).

  • Конфигурация уровня директории (.htaccess).

Имеет собственный язык конфигурационных файлов, основанный на блоках директив. Практически все параметры ядра могут быть изменены через конфигурационные файлы, вплоть до управления MPM. Большая часть модулей имеет собственные параметры.

Часть модулей использует в своей работе конфигурационные файлы операционной системы (например /etc/passwd и /etc/hosts).

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

Apache HTTP Server поддерживает модульность. Существует более 500 модулей, выполняющих различные функции. Часть из них разрабатывается командой Apache Software Foundation, но основное количество - отдельными open source-разработчиками.

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

В модулях реализуются такие вещи, как:

  • Поддержка языков программирования.

  • Добавление функционала.

  • Исправление ошибок или модификация основных функций.

  • Усиление безопасности.

Часть веб-приложений, например панели управления ISPmanager и VDSmanager реализованы в виде модуля Apache.

Apache имеет встроенный механизм виртуальных хостов. Он позволяет полноценно обслуживать на одном IP-адресе множество сайтов (доменных имён), отображая для каждого из них собственное содержимое.

Для каждого виртуального хоста можно указать собственные настройки ядра и модулей, ограничить доступ ко всему сайту или отдельным файлам. Некоторые MPM, например Apache-ITK позволяют запускать процесс httpd для каждого виртуального хоста с отдельными идентификаторами uid и guid.

Также, существуют модули, позволяющие учитывать и ограничивать ресурсы сервера (CPU, RAM, трафик) для каждого виртуального хоста.

Таким образом, веб-сервер Apache на данный момент является самым распространенным в мире. Очевидно, что это наилучшее решение для таких задач, как размещение сайтов на хостинге. Кроме того, Apache является самым безопасным веб-сервером. Именно по этим причинам для данной дипломной работы выбран Linux-хостинг на веб-сервере Apache.

2.5.2 PHP.

История РНР начинается с 1995 года, когда независимый программист-контрактник по имени Расмус Лердорф (Rasmus Lerdorf) написал сценарий Perl/CGI для подсчета количества посетителей сайта, прочитавших его онлайновое резюме. Его сценарий решал две задачи: регистрацию данных посетителя и вывод количества посетителей на web-странице. Развитие WWW еще только начиналось, никаких специальных средств для решения этих задач не было, и к автору хлынул поток сообщений с вопросами. Лердорф начал бесплатно раздавать свой инструментарий, названный Personal Home Page (РНР) или Hypertext Processor (гипертекстовый процессор).

Шумный успех инструментария РНР заставил Лердорфа приступить к разработке расширений РНР. Одно из расширений преобразовывало данные, введенные на форме HTML, в символические переменные, что позволяло экспортировать их в другие системы. Чтобы добиться поставленной цели, Лердорф решил в дальнейших разработках перейти с Perl на С. Расширение существующего инструментария РНР привело к появлению РНР 2.0, или PHP-FI (Personal Home Page — Form Interpretator). В усовершенствовании версии 2.0 принимали участие программисты со всего мира.

Новая версия РНР пользовалась исключительной популярностью, и вскоре образовалась основная команда разработчиков. Они сохранили исходную концепцию внедрения программного кода прямо в HTML и переписали заново механизм лексического анализа, что привело к появлению РНР 3.0. К моменту выхода версии 3.0 в 1997 году свыше 50 000 пользователей применяли РНР для улучшения своих web-страниц.

В 1997 году было решено, что сокращение РНР должно означать не «Personal Home page», а «РНР Hypertext Processor»

В течение следующих двух лет стремительное развитие РНР продолжалось. В язык добавлялись сотни новых функций, а количество пользователей стремительно росло. В начале 1999 года служба Netcraft (http://www.netcraft.com) сообщила о том, что, по минимальным оценкам, число пользователей РНР превысило 1 000 000, в результате чего РНР стал одним из самых популярных сценарных языков в мире.

В начале 1999 года было объявлено о предстоящем выходе РНР 4.0. Хотя одной из сильнейших сторон РНР была эффективность выполнения сценариев, при первоначальных разработках не предполагалось, что на базе РНР будут строиться крупномасштабные приложения. По этой причине была начата работа над более устойчивым механизмом лексического анализа, больше известным под названием Zend (http://www.zend.com). Работа шла быстро и завершилась 22 мая 2000 года выпуском РНР версии 4.0.

Кроме лексического анализатора Zend, компания Zend Technologies (Израиль) распространяет оптимизатор Zend, который повышает выигрыш в быстродействии от применения лексического анализатора Zend. Тесты показывают, что ускорение работы программы в результате использования оптимизатора составляет от 40 до 100 %. За дополнительной информацией обращайтесь на сайт Zend.

Программное обеспечение РНР было установлено более чем в 3,6 миллиона доменов. Будущее РНР выглядит светлым, поскольку продукт продолжает активно использоваться как на крупных web-сайтах, так и на компьютерах отдельных пользователей.

РНР лучше всего охарактеризовать как работающий на стороне сервера встроенный язык сценариев Web, позволяющий разработчикам быстро и эффективно строить динамические web-приложения. С позиций грамматики и синтаксиса РНР напоминает язык программирования С, хотя разработчики не постеснялись включить в него средства из других языков, в том числе из Perl, Java и C++. Среди ценных заимствованных возможностей — поддержка регулярных выражений, мощные средства работы с массивами, объектно-ориентированная методология и обширная поддержка работы с базами данных.

При написании приложений, выходящих за рамки традиционной, статической методологии разработки web-страниц (то есть HTML), РНР также может послужить ценным инструментом для создания и управления динамическим содержанием, который используется наряду с JavaScript, стилями, WML (Wireless Markup Language) и другими полезными языками. Благодаря наличию сотен стандартных функций РНР в состоянии решить практически любую задачу, которая может придти в голову разработчику. В нем имеется обширная поддержка создания графики и операций с ней, математических вычислений, средств электронной коммерции и таких популярных технологий, как XML (Extensible Markup Language), ODBC (Open Database Connectivity) и Macromedia Shockwave. Широкий выбор возможностей избавляет от необходимости рутинной и непростой работы по подключению сторонних модулей, поэтому многие разработчики со всего мира останавливают свой выбор на РНР.

Одним из главных достоинств РНР является тот факт, что он внедряется прямо в HTML-код, поэтому программисту не приходится писать программу с множеством команд для простого вывода HTML. Код HTML и РНР можно чередовать по мере необходимости. РНР позволяет написать фрагмент следующего вида:

<html>

<title><? print "Hello world!"; ?></title>

</html>

Сообщение "Hello world!" выводится в заголовке web-страницы. Интересно то, что команда print внутри конструкции, которая обычно называется экранирующими последовательностями РНР (<?...?>), представляет собой законченную программу. Ни длинного кода инициализации, ни включения библиотек — программа состоит лишь из того кода, который непосредственно решает поставленную задачу!

Конечно, для выполнения сценариев РНР необходимо предварительно установить и настроить программное обеспечение РНР на сервере. Этот процесс описан в разделе «Загрузка и установка РНР/Apache» настоящей главы. Разделу предшествуют фрагменты из отзывов нескольких пользователей, выступающих в пользу РНР, с кратким обзором языка и его истории. Но прежде чем браться за процесс установки, мы познакомимся с некоторыми характеристиками РНР. Этой теме посвящен следующий раздел.

Характеристики РНР

Как вы, вероятно, уже поняли, главным фактором при проектировании языка РНР является практичность. РНР должен предоставить программисту средства для быстрого и эффективного решения поставленных задач. Практический характер РНР обусловлен пятью важными характеристиками:

• традиционностью;

• простотой;

• эффективностью;

• безопасностью;

• гибкостью.

Существует еще одна «характеристика», которая делает РНР особенно привлекательным: он распространяется бесплатно!

Традиционность

Язык РНР кажется знакомым программистам, работающим в разных областях. Многие конструкции языка позаимствованы из Си Perl, а нередко код РНР практически неотличим от того, что встречается в типичных программах С или Pascal. Это заметно снижает начальные усилия при изучении РНР.

Простота

Сценарий РНР может состоять из 10 000 строк или из одной строки — все зависит от специфики вашей задачи. Вам не придется подгружать библиотеки, указывать специальные параметры компиляции или что-нибудь в этом роде. Механизм РНР просто начинает выполнять код после первой экранирующей последовательности (<?) и продолжает выполнение до того момента, когда он встретит парную экранирующую последовательность (?>). Если код имеет правильный синтаксис, он исполняется в точности так, как указал программист.

Эффективность

Эффективность является исключительно важным фактором при программировании для многопользовательских сред, к числу которых относится и WWW. В РНР 4.0 был реализован механизм выделения ресурсов и обеспечена улучшенная поддержка объектно-ориентированного программирования, а также средства управления сеансом. В последней версии появился и механизм подсчета ссылок (reference counting), предотвращающий выделение лишней памяти.

Безопасность

РНР предоставляет в распоряжение разработчиков и администраторов гибкие и эффективные средства безопасности, которые условно делятся на две категории: средства системного уровня и средства уровня приложения.

Средства безопасности системного уровня

В РНР реализованы механизмы безопасности, находящиеся под управлением администраторов; при правильной настройке РНР это обеспечивает максимальную свободу действий и безопасность. РНР может работать в так называемом безопасном режиме (safe mode), который ограничивает возможности применения РНР пользователями по ряду важных показателей. Например, можно ограничить максимальное время выполнения и использование памяти (неконтролируемый расход памяти отрицательно влияет на быстродействие сервера). По аналогии с cgi-bin администратор также может устанавливать ограничения на каталоги, в которых пользователь может просматривать и исполнять сценарии РНР, а также использовать сценарии РНР для просмотра конфиденциальной информации на сервере (например, файла passwd).

Средства безопасности уровня приложения

В стандартный набор функций РНР входит ряд надежных механизмов шифрования. РНР также совместим с многими приложениями независимых фирм, что позволяет легко интегрировать его с защищенными технологиями электронной коммерции (e-commerce). Другое преимущество заключается в том, что исходный текст сценариев РНР нельзя просмотреть в браузере, поскольку сценарий компилируется до его отправки по запросу пользователя. Реализация РНР на стороне сервера предотвращает похищение нетривиальных сценариев пользователями, знаний которых хватает хотя бы для выполнения команды View Source.

Гибкость

Поскольку РНР является встраиваемым (embedded) языком, он отличается исключительной гибкостью по отношению к потребностям разработчика. Хотя РНР обычно рекомендуется использовать в сочетании с HTML, он с таким же успехом интегрируется и в JavaScript, WML, XML и другие языки. Кроме того, хорошо структурированные приложения РНР легко расширяются по мере необходимости (впрочем, это относится ко всем основным языкам программирования).

Нет проблем и с зависимостью от браузеров, поскольку перед отправкой клиенту сценарии РНР полностью компилируются на стороне сервера. В сущности, сценарии РНР могут передаваться любым устройствам с браузерами, включая сотовые телефоны, электронные записные книжки, пейджеры и портативные компьютеры, не говоря уже о традиционных PC. Программисты, занимающиеся вспомога-тельными утилитами, могут запускать РНР в режиме командной строки.

Поскольку РНР не содержит кода, ориентированного на конкретный web-сервер, пользователи не ограничиваются определенными серверами (возможно, незнакомыми для них). Apache, Microsoft IIS, Netscape Enterprise Server, Stronghold и Zeus — РНР работает на всех перечисленных серверах. Поскольку эти серверы работают на разных платформах, РНР в целом является платформенно-незави-симым языком и существует на таких платформах, как UNIX, Solaris, FreeBSD и Windows 95/98/NT.

Наконец, средства РНР позволяют программисту работать с внешними компонентами, такими как Enterprise Java Beans или СОМ-объекты Win32. Благодаря этим новым возможностям РНР занимает достойное место среди современных технологий и обеспечивает масштабирование проектов до необходимых пределов.

Бесплатное распространение

Стратегия Open Source наделала немало шуму в программной отрасли. Распространение исходных текстов программ в массах оказало несомненно благотворное влияние на многие проекты, в первую очередь — Linux, хотя и успех проекта Apache сильно подкрепил позиции сторонников Open Source. Сказанное относится и к истории создания РНР, поскольку поддержка пользователей со всего мира оказалась очень важным фактором в развитии проекта РНР.

Принятие стратегии Open Source и бесплатное распространение исходных текстов РНР оказало неоценимую услугу пользователям. Вдобавок, отзывчивое сообщество пользователей РНР является своего рода «коллективной службой поддержки», и в популярных электронных конференциях можно найти ответы даже на самые сложные вопросы.

В следующем разделе «Рекомендации пользователей» приведены свидетельства трех видных профессионалов в области web-разработок. Из них становится ясно, почему они считают РНР такой замечательной технологией.

2.5.3 MySQL.

Если существует сайт, то, следовательно, на нем должна быть информация. Статьи, изображение, пользователи – все это должно где-то храниться. Поэтому на любом хостинге необходима система управления базами данных (СУБД) MySQL и специальное приложение для администрирования СУБД MySQL - phpMyAdmin.

MySQL - свободная система управления базами данных. MySQL является собственностью компании Oracle Corporation, получившей её вместе с поглощённой Sun Microsystems, осуществляющей разработку и поддержку приложения. Распространяется под GNU General Public License или под собственной коммерческой лицензией. Помимо этого разработчики создают функциональность по заказу лицензионных пользователей, именно благодаря такому заказу почти в самых ранних версиях появился механизм репликации.

MySQL является решением для малых и средних приложений. Входит в состав серверов WAMP, AppServ, LAMP и в портативные сборки серверов Денвер, XAMPP. Обычно MySQL используется в качестве сервера, к которому обращаются локальные или удалённые клиенты, однако в дистрибутив входит библиотека внутреннего сервера, позволяющая включать MySQL в автономные программы.

Гибкость СУБД MySQL обеспечивается поддержкой большого количества типов таблиц: пользователи могут выбрать как таблицы типа MyISAM, поддерживающие полнотекстовый поиск, так и таблицы InnoDB, поддерживающие транзакции на уровне отдельных записей. Более того, СУБД MySQL поставляется со специальным типом таблиц EXAMPLE, демонстрирующим принципы создания новых типов таблиц. Благодаря открытой архитектуре и GPL-лицензированию, в СУБД MySQL постоянно появляются новые типы таблиц.

26 февраля 2008 года Sun Microsystems приобрела MySQL AB за 1 миллиард долларов.

27 января 2010 года Oracle Corporation приобрела Sun Microsystems и включила MySQL в свою линейку СУБД.

Сообществом разработчиков MySQL созданы различные ответвления кода, такие как Drizzle, OurDelta, Percona Server, и MariaDB. Все эти ответвления уже существовали на момент поглощения компаний Sun и MySQL AB корпорацией Oracle.

MySQL портирована на большое количество платформ: AIX, BSDi, FreeBSD, HP-UX, Linux, Mac OS X, NetBSD, OpenBSD, OS/2 Warp, SGI IRIX, Solaris, SunOS, SCO OpenServer, SCO UnixWare, Tru64, Windows 95, Windows 98, Windows NT, Windows 2000, Windows XP, Windows Server 2003, WinCE, Windows Vista и Windows 7. Существует также порт MySQL к OpenVMS. Важно отметить, что на официальном сайте СУБД для свободной загрузки предоставляются не только исходные коды, но и откомпилированные и оптимизированные под конкретные операционные системы готовые исполняемые модули СУБД MySQL.

MySQL имеет API для языков Delphi, C, C++, Эйфель, Java, Лисп, Perl, PHP, PureBasic, Python, Ruby, Smalltalk, Компонентный Паскаль и Tcl библиотеки для языков платформы .NET, а также обеспечивает поддержку для ODBC посредством ODBC-драйвера MyODBC.

2.5.4 phpMyAdmin.

phpMyAdmin — веб-приложение с открытым кодом, написанное на языке PHP и представляющее собой веб-интерфейс для администрирования СУБД MySQL. phpMyAdmin позволяет через браузер осуществлять администрирование сервера MySQL, запускать команды SQL и просматривать содержимое таблиц и баз данных. Приложение пользуется большой популярностью у веб-разработчиков, так как позволяет управлять СУБД MySQL без непосредственного ввода SQL команд, предоставляя дружественный интерфейс.

На сегодняшний день phpMyAdmin широко применяется на практике. Последнее связано с тем, что разработчики интенсивно развивают свой продукт, учитывая все нововведения СУБД MySQL. Подавляющее большинство российских провайдеров используют это приложение в качестве панели управления для того, чтобы предоставить своим клиентам возможность администрирования выделенных им баз данных.

Приложение распространяется под лицензией GNU General Public License и поэтому многие другие разработчики интегрируют его в свои разработки, например XAMPP, Denwer, AppServ.

Проект на данный момент времени локализирован на более чем 62 языках.

phpMyAdmin - это приложение написанное на PHP и обеспечивающее полноценную, в том числе удаленную, работу с базами данных MySQL через браузер. Так как phpMyAdmin позволяет во многих случаях обойтись без непосредственного ввода команд SQL, то работа с базами данных становится вполне посильной задачей даже для человека весьма поверхностно знакомого с MySQL.

Активное использование MySQL в веб-программировании обусловило его актуальность, а интуитивно понятный интерфейс в совокупности с широкой функциональностью и поддержкой более 60 языков (в т.ч. и русского) обеспечило ему популярность среди веб-разработчиков.

В связи с поддержкой инициативы GoPHP5, для работы с phpMyAdmin 3.x.x требуются предустановленные MySQL 5 и PHP 5.2. Для использования более старых версий MySQL и PHP, разработчики до сих поддерживают 2.x.x ветку phpMyAdmin.

phpMyAdmin может управлять как целым MySQL сервером (для этого необходимы права супер-пользователя), так и отдельной базой данных. Возможно мультипользовательское использование (см. мануал MySQL "Добавление новых пользователей в MySQL"). В последнем случае пользователи могут пользоваться только назначенным им базами.

В данный момент phpMyAdmin позволяет:

  • создавать и удалять базы данных

  • создавать, копировать, удалять, переименовывать и изменять таблицы

  • осуществлять сопровождение таблиц

  • удалять, править и добавлять поля

  • выполнять SQL-запросы, в том числе пакетные SQL-запросы

  • управлять ключами

  • загружать текстовые файлы в таблицы

  • создавать (*) и просматривать дампы таблиц

  • экспортировать (*) данные в форматах CSV, XML, PDF, ISO/IEC 26300 - OpenDocument Text and Spreadsheet, Word, Excel и LATEX

  • администрирование нескольких серверов

  • управлять пользователями MySQL и привилегиями

  • проверять целостность ссылочных данных в таблицах MyISAM

  • использовать запрос по образцу (Query-by-example - QBE), создавать комплексные запросы, автоматически соединяясь с указанными таблицами

  • создавать графическую схему базы данных в формате PDF

  • осуществлять поиск в базе данных или в её разделах

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

  • поддерживает InnoDB таблицы и внешние ключи (см. FAQ 3.6)

  • поддерживает mysqli, улучшенное расширение MySQL (см. FAQ 1.17)

  • переведен более чем на 50 языков

Многие люди имеют неправильное общее представление о пользовательском управлении в отношении phpMyAdmin.

phpMyAdmin не хранит информацию об учетных записях mysql-пользователей, и не управляет ими самостоятельно (ему лишь разрешается управлять информацией учетной записи). Когда пользователь входит в phpMyAdmin, то логин и пароль передаются непосредственно MySQL-серверу. Поэтому имя пользователя и пароль должны быть действительными (валидными) для MySQL .

phpMyAdmin может упаковывать (Zip, GZip -RFC 1952- или Bzip2 форматы) дампы и осуществлять CSV-экспорт если вы используете PHP с поддержкой Zlib (--with-zlib) и/или поддержкой Bzip2 (--with-bz2). Для включения поддержки Zlib и/или Bzip2 могут также понадобиться изменения в php.ini.

2.5.5 JavaScript.

JavaScript изначально создавался для того, чтобы сделать web-странички «живыми». Программы на этом языке называются скриптами. Они подключаются напрямую к HTML и, как только загружается страничка — тут же выполняются.

Программы на JavaScript — обычный текст. Они не требуют компиляции или какой-то другой специальной подготовки.

В этом плане JavaScript сильно отличается от другого языка, который называется Java.

Когда создавался язык JavaScript, у него изначально было другое название: «LiveScript». Но тогда был очень популярен язык Java, и маркетологи решили, что схожее название сделает новый язык более популярным.

Планировалось, что JavaScript будет «младшим братом» Java. Однако, история распорядилась по-своему, JavaScript сильно вырос, и сейчас это совершенно независимый язык, со своей спецификацией, которая называется ECMAScript, и к Java не имеет никакого отношения.

Чтобы читать и выполнять текст на JavaScript, нужна внешняя программа — интерпретатор. В частности, интерпретатор встроен в браузер, поэтому он может выполнять скрипты на странице.

Интерпретаторы существуют самые разные.

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

Современный JavaScript — это «безопасный» язык программирования общего назначения. Он не предоставляет низкоуровневых средств работы с памятью, процессором, так как изначально был ориентирован на браузеры, в которых это не требуется.

В браузере JavaScript умеет делать все, что относится к манипуляции со страничкой:

  • Создавать новые HTML-теги, удалять существующие, менять стили элементов, прятать, показывать элементы и т.п.

  • Реагировать на действия посетителя, обрабатывать клики мыши, перемещение курсора, нажатие на клавиатуру и т.п.

  • Посылать запросы на сервер и загружать данные без перезагрузки страницы(это технология называется "AJAX").

  • Получать и устанавливать cookie, запрашивать данные, выводить сообщения…

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

Это сделано для безопасности пользователей, чтобы злоумышленник не мог с помощью JavaScript получить личные данные или как-то навредить компьютеру пользователя. В браузере Firefox существует способ «подписи» скриптов с целью обхода части ограничений, но он нестандартный и не кросс-браузерный.

Большинство возможностей JavaScript ограничено окном браузера и текущей страницей.

  • JavaScript не может читать/записывать произвольные файлы на жесткий диск, копировать их или вызывать программы. Он не имеет прямого доступа к операционной системе.

Современные браузеры могут работать с файлами, но эта возможность ограничена специально выделенной директорией — песочницей.

  • JavaScript, работающий в одной вкладке, не имеет доступа к другой вкладке или окну, за исключением случая, когда он сам открыл это окно.

  • Из JavaScript можно легко посылать запросы на сервер, с которого пришла страничка. Запрос на другой домен тоже возможен, но менее удобен, т.к. здесь есть ограничения.

Есть как минимум три замечательных особенности JavaScript:

  1. Полная интеграция с HTML/CSS.

  2. Простые вещи делаются просто.

  3. Поддерживается всеми распространенными браузерами и включен по умолчанию.

Этих трех вещей одновременно нет больше ни в одной браузерной технологии. Поэтому JavaScript и является самым распространенным средством создания браузерных интерфейсов.

Тенденции развития.

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

2.5.6 HTML 5

HTML 5 — эволюция стандарта HTML, добавляющая новые теги и, что более важно, ряд новых возможностей браузерам.

Вот несколько примеров:

  • Чтение/запись файлов на диск (в песочнице с ограничениями безопасности).

  • Встроенная в браузер база данных, которая позволяет хранить данные на компьютере пользователя.

  • Многозадачность с одновременным использованием нескольких ядер процессора.

  • Проигрывание видео/аудио, без Flash.

  • 2d и 3d-рисование с аппаратной поддержкой, как в современных играх.

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

Тенденция: JavaScript становится все более и более мощным и возможности браузера растут в сторону десктопных приложений.

EcmaScript

Сам язык JavaScript улучшается. Современный стандарт EcmaScript 5 включает в себя новые возможности для разработки.

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

Тенденция: JavaScript становится все быстрее и стабильнее.

Очень важно то, что новые стандарты HTML5 и ECMAScript сохраняют максимальную совместимость с предыдущими версиями. Это позволяет избежать неприятностей с уже существующими приложениями.

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

Однако, со временем стандарт меняется и браузерам приходится подстраиваться к нему, что может привести к ошибкам в уже написанном (старом) коде. Поэтому следует дважды подумать перед тем, как применять на практике такие «супер-новые» решения.

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

Тенденция: все идет к полной совместимости со стандартом.

Недостатки JavaScript

Зачастую, недостатки подходов и технологий — это обратная сторона их полезности. Стоит ли упрекать молоток в том, что он — тяжелый? Да, неудобно, зато гвозди забиваются лучше.

В JavaScript, однако, есть вполне объективные недоработки, связанные с тем, что язык, по выражению его автора (Brendan Eich) делался «за 10 бессонных дней и ночей». Поэтому некоторые моменты продуманы плохо, есть и откровенные ошибки (которые признает тот же Brendan).

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

Пока что нам важно знать, что некоторые «странности» языка не являются чем-то очень умным, а просто не были достаточно хорошо продуманы в своё время. В этом учебнике мы будем обращать особое внимание на основные недоработки и «грабли». Ничего критичного в них нет, если знаешь — не наступишь.

В новых версиях JavaScript (ECMAScript) эти недостатки постепенно убирают. Процесс внедрения небыстрый, в первую очередь из-за старых версий IE, но они постепенно вымирают. Современный IE в этом отношении несравнимо лучше.

2.5.7 FTP.

FTP (англ. File Transfer Protocol — протокол передачи файлов) — протокол, предназначенный для передачи файлов в компьютерных сетях. FTP позволяет подключаться к серверам FTP, просматривать содержимое каталогов и загружать файлы с сервера или на сервер; кроме того, возможен режим передачи файлов между серверами (см. FXP).

FTP является одним из старейших прикладных протоколов, появившимся задолго до HTTP, в 1971 году. До начала 90-х годов на долю FTP приходилось около половины трафика в сети Интернет. Он и сегодня широко используется для распространения ПО и доступа к удалённым хостам.

Протокол не шифруется, при аутентификации передаёт логин и пароль открытым текстом. Если злоумышленник находится в одном сегменте сети с пользователем FTP, то, используя сниффер, он может перехватить логин и пароль пользователя, или, при наличии специального ПО, получать передаваемые по FTP файлы без авторизации. Чтобы предотвратить перехват трафика, необходимо использовать протокол шифрования данных SSL, который поддерживается многими современными FTP-серверами и некоторыми FTP-клиентами.

Процесс нешифрованной авторизации проходит в несколько этапов (символы \r\n означают перевод строки):

* Установка TCP-соединения с сервером (обычно на 21 порт)

* Посылка команды USER логин\r\n

* Посылка команды PASS пароль\r\n

Если к серверу разрешён анонимный доступ, то можно авторизоваться так:

* USER anonymous\r\n

* PASS someone@email\r\n

После успешной авторизации можно посылать на сервер другие команды.

На многих FTP-серверах существует каталог (под названием incoming, upload и т. п.), открытый на запись и предназначенный для закачки файлов на сервер. Это позволяет пользователям наполнять сервер свежими данными.

Изначально протокол предполагал встречное TCP-соединение от сервера к клиенту для передачи файла или содержимого каталога. Это делало невозможным общение с сервером, если клиент находится за IP NAT, кроме того, часто запрос соединения к клиенту блокируется файерволом. Чтобы этого избежать, было разработано расширение протокола FTP passive mode, когда соединение для передачи данных тоже происходит от клиента к серверу. Кроме того, этой проблемы можно избежать, если использовать прокси-сервер.

Лекция 11

Коммуникации в дистанционном обучении.

Организация учебного курса в среде MOODLE

ПЛАН:

Виды коммуникаций дистанционного обучения

Виртуальный класс

Учебный портал в рамках ДО

Виды коммуникаций дистанционного обучения

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

В электронном обучении можно использовать 2 вида коммуникаций: асинхронные - обмен сообщениями происходит в произвольное время (электронная почта, форумы, доски объявлений) - см. схема 1 синхронные - обмен сообщениями происходит в режиме реального времени

(видео, аудио конференции, чат) - см. схема 2

Наиболее технически сложными являются синхронные коммуникации (т.к. они осуществляются в реальном времени). Существует несколько видов синхронных коммуникаций:

видеоконференции (односторонние и двусторонние) аудиоконференции

чат (текстовые конференции)

мгновенный обмен сообщениями

совместное использование приложений виртуальный класс

Отдельного пояснения требуют два последних вида коммуникаций.

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

Виртуальный класс

Виртуальный класс - это электронная имитация общения при аудиторном обучении. Виртуальный класс это комплекс программных продуктов, реализующих сразу несколько элементов синхронного общения, которые позволяют приблизить общение через локальные или глобальные сети к общению "лицом к лицу" с помощью следующих функций: классная доска (whiteboard) - возможность писать и рисовать на экране, доступном одновременно всем участникам общения общий (широковещательный) чат функция «поднятия руки» индивидуальный обмен сообщениями между учениками и преподавателем показ слайдов, учебных материалов

Для успешного применения технологий синхронного общения как правило требуется локальная или мощная корпоративная межофисная сеть или высокоскоростное соединение с Интернет.

Учебный портал в рамках ДО

Основная цель создания учебного портала:

Предоставить сотруднику универсальный интерфейс, «главный вход» в учебное пространство компании

Учебный портал предоставляет следующую информацию:

возможности обучения в компании (дистанционным и обычным способом) результаты ранее прошедших учебных сессий

учебные программы и курсы, которые подлежат изучению элементы управления знаниями

формирование "путей обучения" из репозитория учебных фрагментов

Функции учебного портала:

Персонализация - различные интерфейсы для рабочих групп, преподавателей, менеджмента, администраторов

Предоставление всей информации об обучении в компании (не только электронные учебные курсы)

Связь электронного обучения с профилем пользователя, его должностными обязанностями

Управление контентом (Content Managing)

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

Система управления обучением (Learning Management System или С Д О ) работает в тесной связке (или является частью) учебного портала. Портал предоставляет доступ к различной информации, в том числе и к учебным курсам содержащимся в С Д О см.схему:

Задача предоставления всеобъемлющего доступа к обучению «по требованию» идеологически близка задаче управления знаниями. Учебный портал должен отвечать на те же вопросы, что и система управления знаниями: "Что мы (компания) знаем о том или вопросе", выдавая в качестве ответа учебные материалы, документы, обсуждения и людей, обладающих необходимыми знаниями.

Методы управления знаниями - это тоже методы обучения, но оперативного, в контексте производимой работы, а не в рамках структурированного учебного курса.

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

Контрольные вопросы:

Какие два вида коммуникаций можно использовать в электронном обучении?

Опишите вид коммуникаций «совместное использование приложений»?

Литература:

Роберт И.В. Современные информационные технологии в образовании. – М.: Школа-Пресе, 2004. с. 205

Калиновский И.В., Мороз В.К. Сравнительных анализ эффективности компьютерных коммуникаций в образовании. - м.: ИНИНФО, 2003 г

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]