20 июн. 2009 г.

Семинар в Учебно-методическом центре

Вчера в Учебно-методическом центре ДПО состоялся семинар «Использование свободно распространяемых программ eFront и ОфисМастер в образовательных учреждениях», на котором я выступал с докладами о сравнении возможностей систем электронного обучения и концепциях свободного программного обеспечения в целом.

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

В качестве докладчиков выступали сотрудники УМЦ, компании «АББРИС» и первого лицея.

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

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

Впечатление несколько испортило то, что предоставленная для семинара Ubuntu 9.04 LiveCD на имевшихся машинах с 256 мегабайт памяти работала непростительно медленно, а склонный к утечкам памяти Firefox регулярно падал. Положить туда более легковесный браузер, например Epiphany, авторы не посчитали нужным.

После семинара этот livecd, а также подготовленный специально для семинара livedvd с Fedora, содержащий десятки различных прикладных программ были отданы слушателям. В целом, все остались более или менее довольны. Сотрудники УМЦ предлагают нам проводить совместные мероприятия и дальше, что приятно.

Ссылки:

  • Компания АББРИС.
  • Объявление о семинаре (не знаю, видно ли извне Томска).
  • Система электронного обучения eFront.


Полный текст сообщения

12 июн. 2009 г.

Руководство начинающего веб-разработчика. Введение.

В этой статье мы рассмотрим, что именно происходит, когда вы набираете в адресной строке своего браузера адрес сайта и смотрите в нем страницы.

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

Схема выполнения вашего запроса выглядит примерно так:

Нужно отметить, что в этой схеме может отсутствовать почти любой компонент, за исключением клиента и веб-сервера. Но мы рассмотрим наиболее полный ее вариант.

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

Программа на компьютере пользователя (обычно браузер) отправляет запрос к серверу, например http://www.example.com/. Каким путем запрос пройдет через сеть нас в данный момент не интересует, но в итоге он будет направлен к серверу example.com.

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

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

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

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

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

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

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

Примеры программ, присутствующих в нашей схеме:

  1. Lighttpd , nginx — быстрые веб-сервера, часто используемые в качестве обратного прокси;
  2. Apache HTTPD — веб-сервер с развитой функциональностью;
  3. GlassFish — сервер приложений, использует язык Java;
  4. Zope — сервер приложений, использует Python;
  5. MySQL , PostgreSQL — сервера баз данных.

Полный текст сообщения