Информационные ресурсы и системы
Также необходима поддержка языка PHP. Его лучше всего охарактеризовать как работающий на стороне сервера встроенный язык Web сценариев, позволяющий разработчикам быстро и эффективно строить динамические web-приложения. С позиций грамматики и синтаксиса PHP напоминает язык программирования С, хотя разработчики включили в него средства и из других языков, в том числе из Perl, Java и C++. Среди… Читать ещё >
Информационные ресурсы и системы (реферат, курсовая, диплом, контрольная)
В современном мире стремительно развивающиеся компьютерные сети находят все более широкое применение. Без собственной компьютерной сети, используемой для обеспечения документооборота, управления данными и доступа к посторонним ресурсам не может обойтись ни одна частная компания или государственное учреждение. В целях обеспечения максимально эффективной работы требуется не только создать единую сеть из компьютеров организации, но и предоставить возможность доступа к глобальной сети Интернет. Возможность отправлять электронную почту, отправлять, собирать информацию иными способами, в том числе от многих тысяч пользователей, обеспечивать сотрудников возможностью подключаться к своим рабочим компьютеров из дома или оперировать с рабочей информацией с любого компьютера без подключения к рабочему. Все выше перечисленное, а также многое другое актуально в любых областях коммерческой деятельности, и не менее важно в учебно-образовательном процессе. В наше время трудно переоценить значение информации, современное общество характеризуется как информационное. Ценность информации как важного коммерческого товара так же не подлежит сомнению, как и ценность обычных материальных товаров. Основополагающими составляющими, характеризующими информацию, является ее актуальность, достоверность, полнота и др. В связи с тем, что информация стала полноценным и зачастую очень дорогостоящим товаром, особое внимание нужно уделить вопросы обеспечения удобных и эффективных средств управления контентом.
Технология управления документооборотом предполагает ведение регистрационно-контрольных форм в виде журналов и картотек. При этом регламентируются состав и содержание регистрируемых реквизитов документов, а также различные формы отчетности. Главная проблема традиционной технологии управления документооборотом — практическая невозможность централизованно отслеживать движение документов организации в реальном масштабе времени. Этот процесс требует огромных трудозатрат не только на ведение подробных журналов и картотек в каждом подразделении, но и на оперативное централизованное сведение соответствующей информации. Отсутствие действенной технологии управления документооборотом приводит, в конечном счете, к тому, что в большинстве случаев, в произвольный момент времени невозможно точно сказать, над какими документами работает учреждение, какова история и текущее состояние того или иного вопроса, чем конкретно заняты исполнители.
Если компьютерная сеть охватывает все рабочие места делопроизводственного персонала в структурных подразделениях организации, то появляется возможность использовать сеть для перемещения документов и централизованно отслеживать ход делопроизводственного процесса — вплоть до работы исполнителей над документами на их рабочих местах. Однако сегодня происходит парадоксальная вещь: любое уважающее себя учреждение закупает высокопроизводительные персональные компьютеры, которые объединяются в локальную корпоративную сеть, что обеспечивает полную технологическую поддержку «электронного документооборота», но дальше использования техники для подготовки документа в текстовом редакторе с последующей его распечаткой на принтере дело не идет.
Основные идеи современной информационной технологии базируются на концепции, согласно которой данные должны быть организованы в базы данных, с целью адекватного отображения изменяющегося реального мира и удовлетворения информационных потребностей пользователей.
Любая информационная система представляет собой программный комплекс, функции которого состоят в поддержке надежного хранения информации в памяти компьютера, выполнении специфических для данного приложения преобразований информации и/или вычислений, предоставлении пользователям удобного и легко осваиваемого интерфейса.
В выполненной работе сравниваются различные способы программной реализации управления информационным содержимым применительно к аналитической системе управления учебным процессом в заочном отделении.
ГЛАВА 1. Информационные ресурсы и информационные системы
1.1 Информационные ресурсы
Информационные ресурсы — это совокупность данных, организованных для получения достоверной информации в самых разных областях знаний и практической деятельности. Законодательство Российской Федерации под информационными ресурсами подразумевает отдельные документы и отдельные массивы документов в информационных системах.
Информационные ресурсы подразделяются по классам собираемой информации.
К первично собираемой информации, т. е. той, которая отражает специфику ее источника, области или сферы создания, возникновения, относится информация, образующаяся самостоятельно в природных условиях (например, количество колец на спиле дерева, свидетельствует о его возрасте). Информация о количественных и качественных характеристиках разных социальных процессов образуют класс «снимаемой информации». Выделенные по этому признаку информационные ресурсы можно классифицировать как естественные, производственные, социально-экономические. Например, информация о росте населения.
Другой класс информационных ресурсов образует сведения, данные, получаемые искусственно в процессе научно-исследовательской деятельности, а также любой творческой работы. Он базируется на обработке уже имеющейся информации по специальным параметрам и моделям (математическая обработка, логическая, семантическая и т. д.). К этому же классу относятся и объекты, создаваемые как авторские произведения в области литературы, искусства. Важным компонентом этих ресурсов является информация, получаемая в результате интеллектуальной деятельности человека. Выделяется вторичная информация, возникающая на основе переработки уже имеющейся информации, и новая, фиксирующая то, что человечество до сих пор не знало. Сюда относятся открытия, прогнозы в области различных социальных и природных процессов.
1.2 Виды информационных ресурсов
В настоящее время существуют следующие виды информационных ресурсов:
Средства массовой информации. К ним относятся различного рода новостные и семантические сайты (или электронные версии СМИ). Их отличительной чертой является высокий уровень посещаемости (например, сайт НТВ, «Вести» и т. п.), быстрая смена информации, наличие видеоряда на сайте;
Электронные библиотеки. Электронная библиотека — распределенная информационная система, позволяющая надежно сохранять и эффективно использовать разнородные коллекции электронных документов через глобальные сети передачи данных в удобном для конечного пользователя виде;
Электронные базы данных. В самом общем смысле база данных — это набор надписей и файлов, специальным образом организованных. Один из типов баз данных — это документы, набранные при помощи текстовых редакторов и сгруппированные по темам. Другой тип — это файлы с электронными таблицами, которые объединены в группы по характеру их использования;
Сайты. Корпоративный сайт — это Интернет-ресурс, посвященный какой-то организации, фирме, предприятию. Как правило, он знакомит пользователей с фирмой, направлениями и видами ее деятельности, отражает различные справочные материалы: прайс-листы, условия поставок и оплаты, рекламную информацию, наличие сертификатов качества, участие в выставках, публикации в прессе т.п.
Можно говорить также о делении информационных ресурсов по другим признакам.
По целевому предназначению:
Личные;
Корпоративные;
СМИ;
Бизнес;
образовательные;
Политика;
Учреждения и организации;
Сервисы и услуги;
Доски объявлений;
Культура;
Чаты;
Хранилища ПО;
Спорт;
Отдых;
Изображения и фото;
Развлекательные порталы.
По способу представления:
Web-страницы;
Базы данных;
Файловые серверы;
Телеконференции.
По виду носителя:
Твердая копия (книга, газета, рукопись и т. д.);
На машиночитаемых носителях (кинопленка, фотопленка, аудиозаписи, видеозапись, данные на винчестере компьютера, CD, флэш и т. д.);
На канале связи (TV, радио).
По способу организации хранения и использования:
Документы на традиционных носителях (книги, газеты, журналы);
Массив документов;
Фонд документов;
Архив;
Автоматизированные формы.
По форме собственности:
Общероссийское национальное достояние;
Государственная собственность;
Собственность субъектов РФ (в том числе муниципальная);
Частная (личная, корпоративная) собственность.
По содержанию:
Тематическая информация;
Научные публикации;
Рекламная информация;
Справочная информация;
Новости;
Вторичная (библиографическая) информация.
Информационные ресурсы делятся по языковому признаку и географической территории:
По языковому признаку. Основным языком в сети Интернет является английский, но практически все основные языки мира представлены в Сети. Некоторые из сайтов поддерживают несколько языков — на выбор пользователя;
По географическому признаку. Информационный ресурс в большинстве случаев принадлежит какой-либо организации, расположенной и осуществляющей свою деятельность на определенной территории, подчиняющейся ее законам. Информация в некоторых случаях может быть предназначена для аудитории, находящейся преимущественно в пределах региона.
Таковы, например, сайты объявлений. Вряд ли информация о купле-продаже в Костроме интересна жителю Вологды. Доступ к этим ресурсам возможен из любой точки, независимо от места нахождения пользователя. 4]
1.3 Информационные системы
Любая информационная система представляет собой программный комплекс, функции которого состоят в поддержке надежного хранения информации в памяти компьютера, выполнении специфических для данного приложения преобразований информации, предоставлении пользователям удобного и легко осваиваемого интерфейса.
С развитием и распространением сети Интернет информационные системы стали более интерактивными, масштабируемыми и доступными обычным пользователям.
C развитием веб-технологий любой человек, имеющий компьютер, может развернуть информационную систему, даже у себя дома. Для этого необходимо познакомиться с программным обеспечением, без которого не обойтись.
Для того чтобы в Интернете появился сайт, он должен быть размещен на сервере хостера или вашем собственном, подключенном к сети и имеющем выделенный IP-адрес. Сервер представляет собой компьютер, на котором установлено специальное программное обеспечение, которое тоже называют «веб-сервером» .
Сервер Apache удовлетворяет практически всем потребностям современных веб-разработок, но в то же время он достаточно прост. Это полнофункциональный, расширяемый веб-сервер, полностью поддерживающий протокол HTTP/1.1 и распространяющийся с открытым исходным кодом. Сервер может работать практически на всех распространенных платформах. Apache настраивается с помощью текстовых конфигурационных файлов. Основные параметры настроены «по умолчанию» и будут работать в большинстве случаев.
Самая простая функция, которую может выполнять Apache — стоять на сервере и обслуживать обычный HTML-сайт. Т. е. набираете адрес, и открывается страница. Также стандартной функцией является аутентификация пользователей, которая заложена в протоколе HTTP/1.1. Можно разграничить доступ к определенным страницам сайта для разных пользователей. Это нужно, например, для того чтобы сделать администраторский интерфейс к сайту. Пользователи могут быть разбиты на группы, и для каждой из них можно назначить свои права доступа.
Также для упрощения изменения статических объектов существует технология SSI (Server Side Includes). Она, например, позволяет вам поместить всю повторяющуюся информацию в один файл (например, top. inc), а затем вставлять в страницы ссылку на нее. Затем, если понадобится изменить несколько строк в этом тексте, то придется поменять их только в одном файле. Технология SSI, разработанная компанией Questar Microsystems. Она позволяет реализовать в обыкновенном HTML-документе такие интерактивные возможности как формирование различных запросов и обращение к базам данных, отправка электронной почты со страниц веб-сайта.
Сервер Apache был одним из первых серверов, которые начали поддерживать виртуальные сервера (хосты). Эта возможность позволяет размещать на одном физическом сервере несколько полноценных сайтов. У каждого из них может быть свой домен, администратор, IP-адрес и так далее. 5]
Программное обеспечение PostgreSQL представляет собой многопоточный, многопользовательский SQL-сервер реляционных баз данных (SQL — язык структурированных запросов). Сервер PostgreSQL предназначен как для критических по задачам производственных систем с большой нагрузкой, так и для встраивания в программное обеспечение массового распространения.
Также необходима поддержка языка PHP. Его лучше всего охарактеризовать как работающий на стороне сервера встроенный язык Web сценариев, позволяющий разработчикам быстро и эффективно строить динамические web-приложения. С позиций грамматики и синтаксиса PHP напоминает язык программирования С, хотя разработчики включили в него средства и из других языков, в том числе из Perl, Java и C++. Среди ценных заимствованных возможностей — поддержка регулярных выражений, мощные средства работы с массивами, объектно-ориентированная методология и обширная поддержка работы с базами данных. Одним из главных достоинств PHP является тот факт, что он внедряется прямо в HTML-код, поэтому программисту не приходится писать программу с множеством команд для простого вывода HTML. Плюс ко всему выше сказанному — PHP распространяется совершенно бесплатно. 7]
1.4 Обзор систем управления контентом
Ну вот теперь, на выше перечисленной платформе можно уже верстать сайт. Но делать это вручную не самое приятное. Более того, каждую страницу сайта верстать отдельно и с нуля — очень долго. Для автоматизации этого процесса можно использовать систему управления контентом (CMS). CMS — информационная система, используемая для обеспечения и организации совместного процесса создания, редактирования и управления контентом. Главной целью такой системы является возможность собирать в единое целое и объединять на основе ролей и задач все разнотипные источники знаний и информации, доступные как внутри организации, так и за ее пределами, а также возможность обеспечения взаимодействия сотрудников, рабочих групп и проектов с созданными ими базами знаний, информацией и данными так, чтобы их легко можно было найти, извлечь и повторно использовать привычным для пользователя образом.
Далее, рассмотрим самые популярные CMS.
Drupal не самая популярная CMS, но в этом есть и свой плюс — она ограждена от пристального внимания хакеров и в ней было найдено не столь много уязвимостей, чем в более популярных CMS (например, Joomla). Также большим достоинством данной CMS является широкий функционал и возможность устанавливать дополнительные модули. Дополнительные модули для Drupal можно создать и самому. Рассмотрим стандартную сборку:
Реализован механизм аутентификации посетителей на сайте. Если это не нужно, то можно отключить этот модуль;
Можно с легкостью публиковать свои материалы, а другие пользователи могут их комментировать;
Реализована поддержка RSS-лент и даже создана основная лента, содержащая все материалы, публикуемые на главной странице. Также можно публиковать материалы с других сайтов, указав адрес RSS лент нужных сайтов;
Также имеется форум. Его можно настроить: разрешить или запретить создавать посетителям разделы форума, определить категории пользователей, которым можно удалять комментарии и т. д.;
На сайт можно добавить систему блогов. После этого зарегистрированные пользователи смогут вести свои блоги. Для публикации материалов Drupal поддерживает сторонние клиенты, например Microsoft Word;
В Drupal реализована внутренняя система обмена сообщениями, для зарегистрированных пользователей;
В Drupal легко сделать систему опросов для посетителей сайта;
Имеется модуль поиска по содержимому сайта. Полностью поддерживаются метки (теги);
Возможность загрузки изображений и файлов также реализована;
Поддерживается механизм Кэширования для более быстрой работы сайта;
Drupal является свободным программным обеспечением, распространяемым под лицензией GNU GPL. 1]
Также, одной из самым популярных CMS является Joomla. Такая популярность вызвана тем, что Joomla имеет множество дополнительных модулей и является очень универсальной. С ее помощью можно создать корпоративный сайты, школьные и университетские сайты, сайты электронной коммерции, сайты малого бизнеса, корпоративные сайты во внутренних и внешних сетях, порталы сообществ, сайты журналов и газет и многие другие. Но вследствие такой популярности, Joomla находится под пристальный надзором хакеров, который находят множество лазеек для взлома сайтов написанных на этой системе. Перечислим некоторые возможности, которые включены в базовую установку:
Простота создания/редактирования содержимого с использованием текстового редактора;
Регистрация пользователей и ограничение доступа к страницам в соответствии с правами пользователя;
Контроль за редактированием и публикацией содержимого пользователя в соответствии с уровнем его административных прав;
Голосования;
Простые контактные формы;
Общедоступные статистики сайта;
Закрытые подробные статистики сайта;
Встроенный механизм поиска по сайту;
Возможности распечатать или отправить любую статью в формате PDF другу по электронной почте;
Создание каналов RSS;
Простая система определения рейтинга содержимого;
Отображение полос новостей других сайтов;
Joomla является свободным программным обеспечением, распространяемым под лицензией GNU GPL. [2]
Описание MODx:
Мощная поддержка стандартов — MODx не заставляет вас создавать неказистые блочные или знаменитые трехколоночные «портальные» шаблоны. Вы можете верстать strict xhtml (Extensible Hypertext Markup Language — Расширяемый язык разметки гипертекста);
Технологии Web 2,0 — MODx — первая бесплатная CMS с набором API-функций, полностью соответствующих тенденциям Web 2,0 Ajax;
PHP-среда разработки — гибкий API и модель обработки событий позволяют эффективно управлять работой ядра системы. Это дает возможность построить сайт, максимально соответствующий вашим требованиям;
Работает во всех основных браузерах — Safari 1,3+, Internet Exploer 5,5+, Firefox 1,0+;
Html-редакторы — все html редакторы в MODx устанавливаются как плагины, на любой цвет и вкус. FCKeditor идет в установочном пакете как редактор по умолчанию;
Система управления псевдонимами — псевдонимы автоматически добавляются в URL страниц, делая URL дружественным для поисковой системы и для человека, причем введенное значение псевдонима проверяется на ошибки;
CSS-генератор меню — позволяет создавать меню-списки с помощью тегов
- и затем придать им внешний вид с помощью CSS.
CSS (Cascading Style Sheets — каскадные таблицы стилей) — технология описания внешнего вида документа, написанного языком разметки.
Преимущественно используется как средство оформления веб-страниц в формате HTML и XHTML. CSS используется создателями веб-страниц для задания цветов, шрифтов, расположения и других аспектов представления документа. Основной целью разработки CSS являлось разделение содержимого (написанного на HTML или другом языке разметки) и представления документа (написанного на CSS). Это разделение может увеличить доступность документа, предоставить большую гибкость и возможность управления его представлением, а также уменьшить сложность и повторяемость в структурном содержимом. Кроме того, CSS позволяет представлять один и тот же документ в различных стилях или методах вывода, таких как экранное представление, печать, чтение голосом (специальным голосовым браузером или программой чтения с экрана).
CSS при отображении страницы может быть взята из различных источников.
Авторские стили (информация стилей, предоставляемая автором страницы) в виде:
Inline-стилей, когда в HTML-документе информация стиля для одного элемента указывается в его атрибуте style;
Встроенных стилей — блоков CSS внутри самого HTML-документа;
Внешних таблиц стилей, то есть отдельного файла .css, на который делается ссылка в документе. Пользовательские стили — локальный CSS-файл, указанный пользователем в настройках браузера, переопределяющий авторские стили, и применяемый ко всем документам. Стиль браузера — стандартный стиль, используемый браузером по умолчанию для представления элементов;
Уровни вложенности документов — количество вложенностей не ограничено;
Дополнительные параметры — любой документ может иметь сколько угодно дополнительных параметров, помимо текстового содержимого, заголовка и т. д. Например, если вы создаете каталог литературы, вы можете добавить параметры и в дальнейшем сортировать документы по этим параметрам;
MODx является свободным программным обеспечением, распространяемым под лицензией GNU GPL. [3]
1.5 Поиск информации
Естественно, поиск нужной информации в таких объемах ресурсов очень трудоемок. В таких случаях можно использовать готовые поисковые машины, такие как Google или Yandex. Конечно же, с поиском информации они справятся на отлично, но не хотелось бы зависеть от интернет соединения для решения столь часто используемой функции.
В результате обзора технологий с учетом требований к задаче можно сделать следующие выводы. Ни одна из выше перечисленных систем нам не подходит. В связи с этим мы используем свою, где будут удовлетворены следующие основные пункты:
Программное обеспечение свободное, распространяется под лицензией GNU GPL;
Легко расширяемая система;
Имеет хорошую техническую поддержку;
Хороший уровень безопасности.
ГЛАВА 2. Проектирование
2.1 Постановка задачи
Реализовать программный продукт управления контентом портала учебно-методической литературы на базе локальной вычислительной сети университета. Продукт должен удовлетворять ниже перечисленным требованиям:
Дружественный интерфейс, который будет ясен как первокурснику, так и опытному преподавателю;
Обязательно должны быть разграничены права пользователей;
Проект должен быть масштабируемым.
2.2 Системный анализ
В общем и целом система должна:
Иметь графический интерфейс для взаимодействия с пользователем;
Сохранять и считывать информацию с базы данных;
Организовывать поиск нужной информации из базы данных;
Разграничивать права пользователей, находящихся в портале;
Безопасно хранить пароли пользователей, т. е. в хешированном виде;
Информировать пользователя о последних изменениях на сайте;
Позволять оставлять комментарии к материалам пользователей и просто обмениваться сообщениями зарегистрированным пользователям.
Анализируя изложенные требования к системе, не сложно разбить ее на подсистемы, которые обеспечивают заданный функционал.
Перечислим их:
Модуль графического интерфейса (GUI);
Модуль авторизации;
Модуль хеширования паролей;
Модуль управления базой данных;
Модуль поиска;
Модуль аутентификации;
Модуль комментариев;
Модуль новостей;
Рассмотрим подробнее каждый модуль.
2.2.1 Модуль GUI
Модуль GUI необходим для того, чтобы пользователь мог за несколько кликов мышью воспользоваться любой функцией портала. Также это делает доступным все возможности для обычных пользователей, которые ничего не знают о веб-технологиях. Графический интерфейс предоставляет доступ к другим модулям системы, к некоторым явно, а к некоторым прозрачно, не заметно для пользователя. Основные объекты данной подсистемы — это небольшие поля для ввода текста, кнопки и навигационное меню. К каждой кнопке (ссылке) привязано определенное действие, которое запускает необходимый модуль. Например, когда пользователь открывает портал, он видит два текстовых поля и одну кнопку. Схематичное изображение этой страницы показано на рисунке 2.2. Чтобы попасть в систему ему необходимо пройти процедуру аутентификации. Для этого нужно заполнить оба текстовых поля. В первом поле вводится логин пользователя, а втором — пароль. Потом нужно нажать на кнопку войти. Если пользователь аутентифицирован, он попадает на главную страницу, иначе выдается сообщение об ошибке. Таким образом, задействуется модуль аутентификации.
2.2.2 Модуль аутентификации
Без аутентификации пользователь не сможет попасть в систему. Модуль принимает на вход два параметра: логин пользователя и пароль. Т.к. пароль не безопасно хранить в текстовом виде в базе данных, обычно хранится его хэш. Поэтому сначала пароль хэшируется и хранится в базе. Потом идет проверка, есть ли такой пользователь в базе данных. Если да, то проверяется полученных хэш с тем, что находится в базе данных. В случае совпадения, пользователь переводится на главную страницу портала, иначе выводится сообщение об ошибке и дается возможность попробовать аутентифицироваться еще раз.
2.2.3 Модуль хеширования паролей
Это небольшой, но очень важный модуль с точки зрения безопасности. Принцип работы очень прост. Приходит строка символов (пароль). К этой строке применяется алгоритм шифрования Message Digest 5 (MD5). На выход модуля отправляется получившийся хэш.
2.2.4 Модуль авторизации
Этот модуль будет задействован чаще других. Перед тем как вывести на экран какую-либо страницу пользователю (или даже небольшую ее часть), проверяется, достаточно ли у него прав для просмотра. Аналогичное действие выполняется, если редактируется, создается или скачивается файл.
2.2.5 Модуль управления базой данных
Главная функция модуля в том чтобы осуществлять все операции с базой данных. Он состоит из набора скриптов, которые позволяют наполнять, изменять и получать информацию из базы данных. То есть для выполнения нужного действия необходимо запустить соответствующий скрипт. Таким образом, если вдруг придется подключить другую базу данных, то в системе не потребуются структурные изменения. Достаточно будет в данном модуле изменить необходимые скрипты.
2.2.6 Модуль поиска
Модуль поиска принимает на вход текстовую строку. Согласно заданному шаблону, осуществляется поиск по сайту. В результате, на экран пользователя выводятся список ссылок на материалы, в тексте которых были найдены точные совпадения со строкой поиска. Если обычный поиск не возвращает нужного результата, то можно воспользоваться расширенным поиском. В расширенном поиске появляются еще три текстовых поля. В первое текстовое поле вводятся слова, любое из которых по отдельности может встретиться в искомом документе. Во второе поле вводится точная фраза, которая встречается в документе. А в третьем поле вводятся слова, которые не встречаются в документе. Дополнительные параметры поиска значительно увеличивают шанс найти необходимый материал.
2.3 Клиент-серверный анализ
В основе широкого распространения локальных сетей компьютеров лежит известная идея разделения ресурсов. Высокая пропускная способность локальных сетей обеспечивает эффективный доступ из одного узла локальной сети к ресурсам, находящимся в других узлах. Развитие этой идеи приводит к функциональному выделению компонентов сети: разумно иметь не только доступ к ресурсам удаленного компьютера, но также получать некоторый сервис, который специфичен для ресурсов данного рода. Так мы приходим к различению клиентов и серверов.
Рабочая станция предназначена для непосредственной работы пользователя и обладает ресурсами, соответствующими локальным потребностям данного пользователя.
Сервер локальной сети должен обладать ресурсами, соответствующими его функциональному назначению и потребностям сети. Заметим, что в связи с ориентацией на подход открытых систем, правильнее говорить о логических серверах (имея в виду набор ресурсов и программных средств, обеспечивающих услуги над этими ресурсами), которые располагаются не обязательно на разных компьютерах.
Для разработки веб-приложений используется клиент серверная модель. В качестве сервера выступает сервер Apache, а клиент — веб-браузер. Клиент посылает запрос серверу, который обрабатывается и в ответ приходит htmlстраница, отображаемая браузером на экране. Структура клиент серверной модели представлена на рисунке 2.1.
Рис. 2.1 — Клиент серверная модель Клиент и сервер связываются по стеку протоколов TCPIP.
HTTP — протокол прикладного уровня передачи данных Основой HTTP является технология «клиент-сервер», то есть потребитель (клиент) инициирует соединение и посылает запрос, а поставщик (сервер) ожидает соединения для получения запроса, производит необходимые действия и возвращает обратно сообщение с результатом. HTTP в настоящее время повсеместно используется во Всемирной паутине для получения информации с веб-сайтов.
В результате проектирования система была разбита на подсистемы, определены взаимосвязи между всеми модулями, описан функционал каждого модуля.
В качестве базовой архитектуры приложения была выбрана клиент серверная архитектура.
Глава 3. Реализация
3.1 Выбор инструментария
Для создания несложного сайта, достаточно использовать язык гипертекстовой разметки HTML. Hyper Text Markup Language — язык разметки гипертекстов, предназначенный для создания форматированного текста, насыщенного изображениями, звуком, анимацией, видеоклипами и гипертекстовыми ссылками на другие документы. Если задуманный проект динамичен, постоянно обновляем, легок в управлении его содержимым, то, очевидно, одного HTML здесь не достаточно. Для создания такого сайта необходимо использование дополнительных технологий и языков программирования.
Серверные языки сценариев позволяют в полном объеме использовать базы данных, авторизовать пользователей, работать с сессиями и т. п. Рассмотрим некоторые из них.
В одну группу можно объединить такие языки как PHP, Perl, Ruby и Python. По функционалу у них почти нет различий. А вот скорость работы можно оценить по результатам теста, изображенного на рисунке 3.1. Результаты теста взяты с сайта http://habrahabr.ru/blogs/ruby/48 952/.
Рис. 3.1 — Результаты теста
По результатам видно, что Ruby 1.9.0 быстрее всех, но это экспериментальная версия. На втором месте PHP, который всегда отличался высокой скоростью работы. Также большим преимуществом является то, что PHP поддерживают большинство веб-серверов;
ASP можно выделить отдельно, т.к. он ориентирован на сервера с платформой windows и с базой данных MS SQL. ASP также уступает PHP в скорости;
С/С++ быстрее чем все выше перечисленные языки, но требуют гораздо больше времени на разработку. Выбор такого инструментария оправдывается только для очень крупных проектов с высокой посещаемостью пользователями.
Из вышеперечисленных инструментариев был выбран PHP, т.к. он поддерживается большинством веб-серверов, php-сценарий выполняется гораздо быстрее, чем на других языках программирования, а также PHP имеет хороший набор библиотек для решения стандартных задач веб-программирования.
Впервые каскадные таблицы стилей CSS были реализованы в браузере Internet Explorer 3.0. Они позиционируются разработчиками в качестве некой единой системы представления стилей в электронном документе, основанной на использовании специальных модулей.
Для придания интерактивности веб-страницам необходим язык JavaScript. JavaScript — объектно-ориентированный скриптовый язык программирования, который встраивается в HTML код веб-страницы.
3.2 Сессии и cookies
Сессии и cookies предназначены для хранения сведений о пользователях при переходах между несколькими страницами. При использовании сессий данные сохраняются во временных файлах на сервере. Файлы с cookies хранятся на компьютере пользователя, и по запросу отсылаются браузером серверу.
Использование сессий и cookies очень удобно и оправдано в таких приложениях как Интернет-магазины, форумы, доски объявлений, когда, во-первых, необходимо сохранять информацию о пользователях на протяжении нескольких страниц, а, во-вторых, своевременно предоставлять пользователю новую информацию.
Протокол HTTP является протоколом «без сохранения состояния». Это означает, что данный протокол не имеет встроенного способа сохранения состояния между двумя транзакциями. Т. е., когда пользователь открывает сначала одну страницу сайта, а затем переходит на другую страницу этого же сайта, то основываясь только на средствах, предоставляемых протоколом HTTP невозможно установить, что оба запроса относятся к одному пользователю. Т.о. необходим метод, при помощи которого было бы отслеживать информацию о пользователе в течение одного сеанса связи с Web-сайтов. Одним из таких методов является управление сеансами при помощи предназначенных для этого функций. Для нас важно то, что сеанс по сути, представляет собой группу переменных, которые, в отличие от обычных переменных, сохраняются и после завершения выполнения PHP-сценария.
Сессии При работе с сессиями различают следующие этапы:
Открытие сессии;
Регистрация переменных сессии и их использование;
Закрытие сессии.
Самый простой способ открытия сессии заключается в использовании функции session_start (), которая вызывается в начале PHP-сценария.
Эта функция проверяет, существует ли идентификатор сессии, и, если нет, то создает его. Если идентификатор текущей сессии уже существует, то загружаются зарегистрированные переменные сессии.
Регистрация переменных сессии осуществляется при помощи функции session_register ().
Т.е. для того, чтобы зарегистрировать переменную, в которой хранится имя пользователя, указанное им при регистрации, мы должны вызвать эту функцию следующим образом:
session_register («username»);
Cookies
Использование сookies удобно как для программистов, так и для пользователей. Пользователи выигрывают за счет того, что им не приходится каждый раз заново вводить информацию о себе, а программистам сookies помогают легко и надежно сохранять информацию о пользователях.
Cookies — это текстовые строки, хранящиеся на стороне клиента, и содержащие пары «имя-значение», с которыми связан URL, по которому браузер определяет, нужно ли посылать cookies на сервер.
Установка cookies производится с помощью функции:
bool setcookie (string name [, string value [, int expire [, string path [, string domain [, int secure]]]]])
Эта функция имеет следующие аргументы:
name — имя устанавливаемого cookie;
value — значение, хранящееся в cookie с именем $name;
expire — время в секундах с начала эпохи, по истечение которого текущий cookie становится недействительным;
path — путь, по которому доступен cookie;
domain — домен, из которого доступен cookie;
secure — директива, определяющая, доступен ли cookie не по запросу HTTPS.
По умолчанию эта директива имеет значение 0, что означает возможность доступа к cookie по обычному запросу HTTP.
По умолчанию cookies устанавливаются на один сеанс работы с броузером, однако можно задать для них более продолжительный срок существования. Это очень удобное и полезное свойство, поскольку в этом случае пользователю не нужно предоставлять свои данные вновь при каждом посещении сайта.
Как уже говорилось, срок годности устанавливается в секундах относительно начала эпохи. В PHP существуют функции time и mktime для работы с датой и временем, позволяющие переводить текущее время в количество секунд с начала эпохи. Функция time просто переводит текущее системное время в количество секунд, прошедших с начала эпохи. Усовершенствованным вариантом функции time является функция mktime:
int mktime ([int hour [, int minute [, int second [, int month [, int day [, int year [, int is_dst]]]]]]])
Аргумент is_dst этой функции определяет, попадает ли эта дата в период летнего времени и может принимать значения (-1,0,1). -1 — (По умолчанию) Означает, что свойство не задано. 0 — Временной интервал не приходится на период летнего времени. 1 — Временной интервал приходится на период летнего времени.
Примеры установки сроки годности cookies:
/* этот cookie действителен в течение 10 мин после создания */
setcookie («name», $value, time () + 600);
/* действие этого cookie прекращается в полночь 25 января 2010 года */
setcookie («name», $value, mktime (0,0,0,03,05,2011));
?>
Для того чтобы удалить cookie необходимо вызвать функцию setcookie и передать ей имя того cookie, который подлежит удалению.
setcookie («name»);
Иногда в cookies приходится хранить конфиденциальные данные, и в этом случае разработчик должен позаботиться о том, чтобы информация, хранящееся в cookie, не была передана третьим лицам. Существует несколько методов защиты информации, хранящейся в cookie:
Установка области видимости cookies;
Шифрование;
Ограничение доступа для доменов;
Отправка cookies по защищенному запросу.
Наилучшим решением является комплексное применение всех этих способов.
Для дополнительной безопасности, список доменов, имеющих доступ к cookies, должен быть ограничен. Это можно сделать при помощи следующего кода:
setcookie («name», $value, «/web/index.php», «.server.com»);
При таком ограничении заданной области видимости будут соответствовать домены с именами server.com, myserver.com, php.server.com и т. д., поскольку проверка на допустимость области видимости домена осуществляется по принципу концевого соответствия.
Не является излишним для cookie, хранящему секретные данные, разрешить отвечать только на защищенные запросы HTTP, так как в этом случае значительно затрудняется перехват данных, которыми обмениваются клиент и сервер. Для обеспечения защищенного соединения, функции setcookie передается шестой параметр со значением, равным 1.
setcookie («name», $value, time () + 600, «/web/», «.server.com», 1);
3.3 Запрос-ответ
Стек технологий Drupal
Операционная система в стеке технологий Drupal находится на самом низком уровне. В результате этого, CMS Drupal хорошо работает на базе любой операционной системы, поддерживающей технологию PHP. Веб-сервер, наиболее широко применяемый совместно с Drupal, — это Apache, но могут использоваться и другие. Стек технологий Drupal изображен на рисунке 3.3.
Рис. 3.2 — Стек технологий Drupal
На верхушке стека мы видим язык PHP, на котором реализован программный продукт Drupal. Далее идет база данных, в которой хранится вся информация и все материалы, разрабатываемые в системе Drupal. Наиболее подходящие базы данных — это MySQL и PostgreSQl, они наиболее тщательно протестированы. Затем стоит веб-сервер, который обеспечивает поддержку PHP и принимает запросы от браузера. И на последнем месте операционная система, выбор которой остается за пользователем, т.к. она почти никак не влияет на CMS Drupal.
Процесс начальной загрузки При обращении к Drupal начальный процесс его загрузки можно разделить на фазы.
Конфигурация — на этой фазе устанавливается базовый URL сайта ($base_url). Файл settings. php подвергается синтаксическому анализу и переопределяются все переменные заданные в этом файле.
Ранний страничный кэш — файл раннего страничного кэша позволяет включать (с помощью функции include ()) файл PHP, содержащий функцию page_cache_fastpath (). Который принимает и возвращает содержимое браузеру. Ранний страничный кэш осуществляется за счет установки переменной page_cache_fastpath в состояние true, а файл, который должен быть включен, определяется благодаря установке переменной cache_inc в состояние определяющее путь к файлу.
База данных — в течение этой фазы определяется тип базы данных и устанавливается первоначальное соединение, которое будет использоваться для выполнения запросов к базе данных.
Доступ — технология Drupal позволяет осуществлять запрет доступа с определенных хостов на основании префикса имени хоста или IP адреса. В фазе доступа осуществляется быстрая проверка, не исходит ли запрос от запрещенного хоста, если это так, то доступ запрещен.
Сеанс — система Drupal использует встроенный в PHP механизм управления сеансами. Все сеансы инициализируются или начинаются вновь на стадии «Сеанс».
Кэш последней страницы — на этой фазе Drupal загружает код, достаточный для определения того факта, нужно или не нужно загружать страницу из кэша. Этот процесс объединяет параметры из базы данных и массивов, созданных в ходе выполнения фазы «Конфигурация» и загрузки или анализа кода модуля. Если в процессе сеанса выясняется, что запрос был сделан анонимным пользователем и разрешено кэширование страницы, эта страница возвращается из кэша.
Путь — на это фазе загружается код, который обрабатывает пути к фалам и псевдонимы имен. На этой фазе разрешаются удобочитаемы URL и осуществляется управление кэшированием и поиском внутренних путей.
Завершение — эта фаза заканчивает процесс начальной загрузки. В ее ходе осуществляется загрузка библиотеки общих функций, поддержка тем и поддержка преобразования обратного вызова, управление файлами, загрузка инструментария отображения PHP, создание и обработка форм, автоматическая сортировка таблиц и определение порядка отображения страниц. Затем Drupal загружает исходный обработчик прерываний.
Как только Drupal завершает начальную загрузку, становятся доступными все компоненты его структуры. Теперь можно принимать запрос от браузера, который будет передан функции PHP, отвечающей за его обработку.
Массив элементов меню Когда веб-браузер делает запрос к Drupal, он передает ему URL. Исходя из этой информации, Drupal должен определить, какой код необходимо выполнить и каким образом следует обработать запрос. Основная часть URL отсекается и используется только последняя его часть, называемая путем. Например, для URL http://portal.ru/?q=node/3 путь Drupal — это node/3.
В Drupal действует следующий подход. Все модули предоставляют массив элементов меню — т. е. путь и немного информации об этом пути. Один из фрагментов этой информации, который должен предоставить модуль, — это обратный вызов. Обратный вызов — это имя функции PHP, которая будет выполнена, когда браузер запросит определенный путь. Когда поступает запрос, Drupal выполняет следующие действия:
Если путь является псевдонимом реального пути, Drupal находит реальный путь;
Выполняется функция hook_menu (), чтобы все модули могли воспользоваться своими обратными вызовами;
Создает схему путей к обратным вызовам;
Если имеется модуль menu. module, то выполняются все изменения или добавления, которые администратор сайта сделал в схеме путей (например, переопределения заголовка элемента меню);
Использует схему путей, чтобы найти функцию обратного вызова для требуемого URL;
Возвращает результат выполнения функции или сообщение нет доступа, если пользователь не может получить доступ к URL, или ответ с кодом 404, если путь не ведет ни к какой функции.
Пример пункта меню:
$items['admin/build/'] = array (
'title' => 'Edit menu',
'type' => MENU_DEFAULT_LOCAL_TASK,
'file' => 'menu.admin.inc',
'callback' => 'menu_overview_page',
'access' => TRUE,
);
Рассмотрим приведенный код построчно.
$items['admin/build/'] = array (
В качестве параметра для $items, переменной пункта меню, служит путь к отображаемой странице, а значению переменной присваивается массив параметров.
'title' => 'Edit menu' - заголовок.
'type' => MENU_DEFAULT_LOCAL_TASK — тип элемента меню. Тип элемента складывается из набора параметров, приведенных в таблице 3.1.
Таблица 3.1 — Флаги типов элементов меню
Двоичное представление | Константа | |
MENU_IS_ROOT | ||
MENU_VISIBLE_IN_TREE | ||
MENU_VISIBLE_IN_BREADCRUMB | ||
MENU_VISIBLE_IF_HAS_CHILDREN | ||
MENU_MODIFIABLE_BY_ADMIN | ||
MENU_MODIFIED_BY_ADMIN | ||
MENU_CREATED_BY_ADMIN | ||
MENU_IS_LOCAL_TASK | ||
MENU_EXPANDED | ||
MENU_LINKS_TO_PARENT | ||
Например, MENU_NORMAL_ITEM в двоичном эквиваленте равен 10 110. Таким образом, он складывается из флагов: MENU_VISIBLE_IN_TREE, MENU_VISIBLE_IN_BREADCRUMB, MENU_MODIFIABLE_BY_ADMIN. В таблице 3.2 показаны доступные типы элементов меню и флаги, которыми они выражаются. В шапке таблице, цифры обозначают типы элементов меню, а именно:
1 — MENU_IS_ROOT;
2 — MENU_VISIBLE_IN_TREE;
3 — MENU_VISIBLE_IN_BREADCRUMB;
4 — MENU_VISIBLE_IF_HAS_CHILDREN;
5 — MENU_MODIFIABLE_BY_ADMIN;
6 — MENU_MODIFIED_BY_ADMIN;
7 — MENU_CREATED_BY_ADMIN;
8 — MENU_IS_LOCAL_TASK;
9 — MENU_EXPANDED;
10 — MENU_LINKS_TO_PARENT.
Таблица 3.2 — Флаги, выраженные типами элементов меню
Константы | |||||||||||
MENU_NORMAL_ITEM | x | x | x | ||||||||
MENU_ITEM_GROUPING | x | x | x | ||||||||
MENU_CALLBACK | x | ||||||||||
MENU_DYNAMIC_ITEM | x | x | |||||||||
MENU_SUGGESTED_ITEM | x | x | |||||||||
MENU_LOCAL_TASK | x | ||||||||||
MENU_DEFAULT_LOCAL_TASK | x | x | |||||||||
MENU_CUSTOM_ITEM | x | x | x | x | |||||||
MENU_CUSTOM_MENU | x | x | x | x | |||||||
'file' => 'menu.admin.inc' - имя конфигурационного файла модуля.
'callback' => 'menu_overview_page' - имя callback функции (данная функция содержится в файле «menu.admin.inc»).
'access' => TRUE — доступ к меню открыт.
Обычно доступом в меню управляют с помощью определения разрешений в модуле, используя функцию hook_perm () и проверяя эти разрешения с помощью функции user_access ().
В предыдущем примере мы установили ключ доступа к элементу меню в положение TRUE. Это означает, что к нашему меню может получить доступ любой пользователь. Теперь мы изменим код так, чтобы доступ к меню мог получить тот пользователь, который имеет разрешение receive greeting (получение приветствия). Для этого мы изменяем только последнюю строчку, в ней мы используем функцию user_access ().
$items['admin/build/'] = array (
'title' => 'Edit menu',
'type' => MENU_DEFAULT_LOCAL_TASK,
'file' => 'menu.admin.inc',
'callback' => 'menu_overview_page',
'access' => user_access ('receive greeting') //проверка, разрешен ли //доступ пользователю
);
Если элементу меню не назначен никакой ключ доступа, то будет использоваться ключ доступа его родителя. Если и родитель не имеет ключ доступа, то Drupal осуществит рекурсию всех путей выше по дереву, пока не найдет ключ доступа (ключ доступа для корня дерева имеет значение TRUE). В таблице 3.3 приведены примеры, показывающие разрешен или запрещен доступ пользователю на основании установок доступа для элемента меню, а также его родительского элемента.
контент информационный хеширование сайт Таблица 3.3 — Установки доступа меню и право доступа пользователя
Родительский | Дочерний | Доступ | |
False | False | Запрещен | |
True | False | Запрещен | |
False | True | Разрешен | |
True | True | Разрешен | |
False | Не определен | Запрещен | |
True | Не определен | Разрешен | |
3.4 Интерфейс
Интерфейс каждой страницы состоит из блоков. Для каждого блока можно настроить область видимости на сайте и пользователей, которые имеют к нему доступ. Расположение блоков и их настройки можно задать в панели администрирования в меню Управление Конструкция сайта Блоки, изображенной на рисунке 3.4.
Рис. 3.3 — Настройка расположения блоков На рисунке видно, что вся страница разделена на области: левая колонка, правая колонка, содержимое, заголовок и подвал. Бля того чтобы разместить блок в нужной нам области, необходимо просто перетянуть его мышкой в поле с нужной областью. Чтобы настроить видимость блока, достаточно нажать на кнопку «настроить».
Видимость блоков настроена в соответствии с ролями, которые были определены ранее. Таким образом, интерфейсы главной страницы для соответствующих ролей изображены на рисунках 3.5, 3.6, 3.7, 3.8.
Рис. 3.4 — Интерфейс Администратора Администратору сайта видимы все блоки интерфейса, в том числе пункт «Управление» в навигационном меню, с помощью которого можно внести любые изменения в портале.
Рис. 3.5 — Интерфейс Преподавателя Если пользователь авторизован как преподаватель, то единственным отличием его интерфейса будет отсутствие пункта «Управление» в навигационном меню.
Рис. 3.6 — Интерфейс Студента
В интерфейсе студента в навигационном меню отсутствует пункт меню «Создать публикацию», т.к. это привилегия преподавателей.
Рис. 3.7 — Анонимный пользователь Пользователю, который не был аутентифицирован на сайте почти ничего не доступно. Он видит только блок аутентификации, приветственное сообщение и информацию о количестве пользователей на сайте.
В ходе реализации был выбран инструментарий, рассмотрена процедура аутентификация пользователей с помощью учетных записей в Active Directory, изучен принцип работы с сессиями и cookies, описан процесс запрос-ответ клиента и сервера. Также был показан рабочий интерфейс портала.
Заключение
В процессе выполнения дипломной работы были выполнены поставленные цели. Рассмотрена область применения программного продукта, его актуальность и востребованность. Был проведен сравнительный анализ готовых проектных решений.
В соответствии с поставленной задачей сформулирован функционал системы. Проведен системный анализ, сформированы необходимые модули и взаимосвязи между ними. Выбрана клиент серверная модель.
Выполнен обзор используемого инструментария. Рассмотрены необходимые технологии для реализации. Рассмотрена процедура запрос-ответ между сервером и клиентом.
В результате выполнения работы был реализована аналитическая информационная система управления учебным процессом в заочном отделении.
1. Виктор Ромашов. CMS DRUPAL: Система управления содержимым сайта. — СПб: Питер, 2010. — 256 с.
2. Берри Норт. Joomla! Практическое руководство. — Пер. с англ. — СПб: Символ-Плюс, 2008. — 448 с.
3. MODX.РУ [Электронный ресурс]: Чем MODx лучше других — Режим доступа: http://modx.ru/about/advantages/, свободный. — Загл. с экрана.
4. Информационно — библиотечный центр РЭУ им. Г. В. Плеханова [Электронный ресурс]: Мировые и отечественные информационные ресурсы — Режим доступа: http://www.realib.ru/links/0, свободный. — Загл. с экрана.
5. Справочная информация практические советы [Электронный ресурс]: Знакомство с веб-сервером Apache — Режим доступа: http://hostinfo.ru/articles/220, — свободный. — Загл. с экрана.
6. MySQL [Электронный ресурс]: Глава1. Общая информация — Режим доступа: http://www.mysql.ru/docs/mysql-man-4.0-ru/introduction.html, — свободный. — Загл. с экрана.
7. Основы PHP. Учебник по PHP [Электронный ресурс] - Режим доступа: http://ivd.org.ru/books/php/acquaint.shtml, свободный. — Загл. с экрана.
8. Кузнецов А., Пугач В., другие. Тестовые задания. Информатика. Методическое пособие. М., Лаборатория Базовых знаний, 2002.
9. PHP и MySQL. Библия программиста / Стив Суэринг, Тим Конверс, Джойс Парк. — М: Изд-во Диалектика, 2010. 912 с.
10. Кемеровский областной ресурсный центр [Электронный ресурс]: Разработка и поддержка учебных ресурсов. — Режим доступа: http://rrc.kemsu.ru/base/raz.htm, свободный. — Загл. с экрана.
11. Хабрахабр [Электронный ресурс]: Ruby && Python && Perl && PHP && Ruby1.9. — Режим доступа: