42857

Веб-браузер. Понятие «Браузерный движок»

Курсовая

Информатика, кибернетика и программирование

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

Русский

2013-11-02

1.06 MB

28 чел.

Оглавления

Введение  3

1. Назначения веб-браузера 4

      1.1.Состав и структура браузера  5

      1.2.Состав атрибутов браузера (характеристика)  9

2.Понятие «Браузерный движок»  11

     2.1.Состав и структура движка  13

     2.2.Состав атрибутов движка (характеристика) 23

     2.3.Демонстрация движка 28

Заключение 30

Библиография 31


Введение

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

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

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

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

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

Объектом второй проблемы курсовой работы есть браузерный движок. Система управления контентом - это программный комплекс, позволяющий автоматизировать процесс управления как сайтом в целом, так и сущностями в рамках сайта: макетами страниц, шаблонами вывода данных, структурой, информационным наполнением, пользователями и правами доступа, а также по возможности предоставляет дополнительные сервисы: списки рассылки, ведение статистики, поиск, средства взаимодействия с пользователями. Ознакомившись с понятием, CMS стало понятно, что в данный момент это область, которая стремительно развивается. На данный момент уже очень много сделано в различных CMS, но все же остается еще огромное количество проблем. Из них можно выделить следующие: недостаточный функционал, невозможность работы в кластере, невозможность работы нескольких сайтов одновременно, дыры в безопасности. Таким образом, нужно сказать об актуальности этой отрасли, развивать ее необходимо, причем прямо сейчас. Если качественно решить все изложенные проблемы, то можно получить CMS, которая бы удовлетворяла 50% сайтов которые сейчас находятся в интернете. Программистам не нужно было бы тратить время на написание стандартных кусков сайта такие как авторизация, редактирование информации и т.д. Было бы необходимо разобраться в CMS а дальше же просто оптимизировать ее под себя, и то только в тех случаях, где это было бы необходимо. Безусловно, невозможно создать CMS которая бы покрывала весь класс задач, но такую ​​покрывающую частично - можно, чем и занимаются разработчики со всего мира. Будет проведен анализ движка, состав и структура движка, сравнительная характеристика движка. Основной частью этой темы будет демонстрация одной из СУК.


  1.  Назначения веб-браузера

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

  Сеть Интернет, носившая первоначально название ARPANet, создавалась для оперативного обмена данными между секретными исследовательскими институтами, работавшими на министерство обороны США. Однако с ростом числа участников соблюдать секретность стало все сложнее, и потому правительство отдало Интернет на откуп университетам и образовательным организациям, и довольно долгое время Интернет оставался предметом интереса одних лишь ученых и специалистов. Вся информация в то время представлялась в виде обычного текста, и необходимости в сложных программах для ее просмотра не возникало.

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

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

Одной из таких организаций является WWW Consortium (W3C) - именно ею определяются стандарты языков разметки и протоколов WWW. Одно из основных средств представления информации в Интернет, язык разметки HTML, не является исключением - последняя спецификация HTML 4.01 существенно расширяет возможности этого языка и предоставляет все необходимые функции для полноценного форматирования текста, представления сложной структурированной информации, воспроизведения мультимедиа и многого другого.   

 Однако если бы все ограничивалось только этим стандартом, то вопрос о выборе браузера звучал бы просто неуместно. Большинство современных web-браузеров строго следуют рекомендациям W3C и без особых проблем отображают страницы соответствующие стандарту. Главной причиной неразберихи среди "браузер-ориентированных" страниц и головной боли начинающего web-мастера являются расширения, добавляемые различными компаниями, разрабатывающими программное обеспечение для WWW.

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

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

Уже позднее Microsoft добавила в свой браузер Internet Explorer поддержку JScript - надмножества JavaScript, значительно расширяющего возможности своего предшественника. Примерно с этого момента и началось настоящее безобразие. С легкой подачи Microsoft некоторые web-мастера начали создавать страницы, использующие расширения IE и отображающиеся "корректно" только в нем. В результате человек, попавший на сайт, созданный этим web-мастером, вынужден был либо отказаться от просмотра сайта, либо задуматься над переходом на новый web-браузер, - вот вторая причина столь высокой популярности Internet Explorer.

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

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

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

Цель web-браузера состоит в том, чтобы показать веб-страницы пользователю. Этот процесс начинается с того момента, когда пользователь вводит URL – единый идентификатор ресурса (например, http://mypage.ru ) в браузер.

§ 1.1 Состав и структура браузера

Браузер - это программа, представляющая в удобном для восприятия виде информацию, получаемую из Интернета. Это инструмент для просмотра ресурсов Сети и, в меньшей степени, для взаимодействия с ними. Впрочем, говорить о том, что браузер нужен только в Интернете, было бы неверно. В наше время на технологиях Интернета основываются локальных сетей, так называемые интранет или интрасети. Они могут и не иметь выхода в Интернет. Слово "браузер" происходит от английского слова browse, что означает "листать" (это слово можно увидеть на кнопках в диалоговых окнах англоязычных программ). Это название программа получила за границей еще до возникновения системы World Wide Web в то время, когда, кроме текста, просматривать в Сети было нечего, и пользователи "листали" текстовые файлы на экранах компьютеров. Сейчас Интернет предлагает нам удивительное разнообразие информации - текст, графику, анимацию, видео, звук, и все мы видим и слышим благодаря браузеру. Информация, брaузер передает на сервер в качестве запроса и которую получает от него в ответ, передается, как правило, по протоколу HTTP. Web-страницы, которые пользователь видит на экране, блестящие многообразием цветов и форм представленных на них объектов, на самом деле представляют собой всего лишь текстовые файлы, в которых содержатся определенные инструкции. Эти инструкции указывают браузеру, что и как следует показывать на этой странице. В простейшем случае исходный текст Web-страницы пишется на языке HTML. Вследствие своей сложной истории язык HTML неоднозначно трактуется разными браузерами. Да и сами браузеры могут предназначаться для разных целей. В результате в разных браузерах одни и те же страницы могут выглядеть по-разному. Выделяют следующие виды браузеров: браузер режима командной строки. К этому типу относятся самые ранние браузеры. Они не дают возможности просматривать текст и графику. Такие браузеры поддерживают перемещение только с использованием цифровых адресов (IP). В настоящее время практически не используются полноэкранный браузер. Текстовый браузер без поддержки мультимедийных (картинки, анимация и т.п.) ресурсов сети Интернет. С помощью него пользователь может просматривать только текст и ссылки браузер с поддержкой мультимедиа. Самые распространенные и популярные браузеры сегодня. Позволяют работать практически со всеми видами информации, представленной в Интернете браузеры-приложения. Они являются надстройками над полнофункциональными браузерами. Чаще разработчиками приложений используется Internet Explorer. Дополнения всего лишь изменяют интерфейс и добавляют некоторые функции, на которые разработчики из Microsoft не обратили внимания. Также выделяют офлайн браузеры. Это программы, которые автоматически загружают информацию из Интернета и сохраняют ее на локальном диске компьютера для последующего просмотра и анализа. Идея, лежащая в основе работы офлайн браузеров, достаточно проста. Пользователь указывает адрес нужного ему Web-сайта, а программа в ответ загружает на его компьютер все файлы, необходимые для автономного (т.е. отключившись от Internet) просмотра этого сайта. Преимуществами такого способа работы является - плата в автономном режиме с Internet, такая же как и за телефонную линию (для модемного соединения) не нужна информация с жесткого диска загружается очень быстро, а локальная копия сайта полностью "обзорная" - сохраняется структура и взаимосвязь HTML - документов. Браузер позволяет пользователю быстро и просто получать информацию, размещенную на многих веб-страницах. На графике изображены распространенное использование браузеров в Украину (рис.1.1).

Статистика браузеров в Украине на март 2010 г.

Рис.1.1 Использование браузеров

Основной частью браузера является программное ядро браузера или как его еще называют

«движок». Любой браузер, как программный продукт, представлен набором тесно связанных компонентов. Самым главным компонентом является движок, отвечающий за чтение HTML, формирование объектной модели документа и ее визуализацию. По всем правилам дизайна ПО подобный функциональный модуль должен быть обособлен от пользовательского интерфейса и других компонентов продукта. Производительность любого современного браузера определяется скоростями работы движка рендеринга и интерпретатора JavaScript. Если на просторах интернета каждый обозреватель справляется со своими задачами хорошо, то в крупных интрасетевых веб-приложениях могут возникнуть серьезные препятствия для комфортной работы с продуктом из-за сложной архитектуры компонентов на Ajax и программной логики на основе парадигмы толстого клиента. В этом случае необходимо оптимизировать контент, а если даже это не помогает, то уже придется переходить на новые версии браузеров. Важно помнить одно: толстые клиенты на Ajax требуют от браузера высокой производительности, что сразу бросается в глаза при использовании старенького Internet Explorer 6 и последней версии Mozilla Firefox для запуска одного и того же продукта с развитым пользовательским интерфейсом и сложной моделью предметной области.

Самой важной частью всех браузеров является движок рендеринга (layout engine), основные задачи которого включают чтение HTML, формирование на его основе объектной модели документа (Document Object Model, DOM) и ее визуализацию. Составным блоком, отвечающим за интерпретацию разметки, является парсер HTML и CSS.

Чтения HTML

Типы движков описаны в публикации Популярные движки рендеринга. Нужно отметить, что отображение страницы в веб-браузере не обязательно сопровождается построением DOM, как, например, в минималистичном браузере Lynx. Объектная структура документа необходима для доступа к элементам страницы через JavaScript — язык сценариев для составления программной логики и интерактивного изменения элементов сайта. Помимо JavaScript с DOM можно работать из VBScript (только в Internet Explorer), Java, Flash и Silverlight. Код на JavaScript интерпретируется во время выполнения отдельным компонентом, который так и называется — интерпретатор JavaScript. Это приложение встроено в обозреватель в отличие от интерпретатора Java, Flash и Silverlight, для работы которых необходим дополнительный плагин. В Internet Explorer встроен также интерпретатор VBScript. Когда парсер HTML встречает в разметке тег <script> или значение атрибута элемента, начинающееся на “javascript:”, он передает JavaScript-интерпретатору содержимое тега в первом случае и значение атрибута во втором. Когда парсер HTML встречает в разметке тег <object> или <embed>, он передает его содержимое необходимому плагину, если такой установлен. DOM-модель не является только деревом элементов интерфейса, визуализацию которых отображает браузер, она представляет собой огромный компонент с развитым функционалом. Например, в DOM присутствуют функции для создания, добавления и удаления элементов интерфейса (элементов DOM).

DOM-модель

DOM позволяет также осуществлять поиск элементов и реализует сложную событийную модель. В общем случае трудно сказать, встроена ли DOM-модель в движок рендеринга, или является самостоятельным компонентом, т.к. разные браузеры имеют различную степень интеграции DOM c движком. В любом случае и DOM, и интерпретатор JavaScript, и компонент рендеринга очень тесно взаимодействуют друг с другом, однако это не мешает составить довольно простые тесты для определения производительности каждого из компонентов. Этот процесс подробно описан в следующей части — сравнение производительности браузеров: написание собственного тестера.

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

Структура браузера

Структура веб-страницы

§ 1.2 Состав атрибутов браузера (характеристика)

Для сравнения возьмем популярные браузеры, такие как Internet Explorer, Mozilla FireFox, Netscape Browser, Opera, Safari и Google Chrome. Эти браузеры используются чаще, чем другие, поэтому следует разобраться какой же все-таки из них лучше.Начнем с программного ядра или как его еще называют по-другому "движка": Internet Explorer использует Trident или Tasman. Последний используется для операционной системы Mac OS. Mozilla FireFox и Netscape Browser - "движок" Gecko, а Opera использует собственный движок Presto. Safari основан на коде "движка" WebKit, Chrome - JavaScript V8. От используемого программного ядра зависит многое, в том числе и безопасность работы в Интернете.Что касается безопасности, то безопасная работа осуществляется в FireFox и Opera. Их безопасность велика, так как они не интегрированы в ОС, а в Mozilla FireFox также из-за отсутствия поддержки компонентов Active-X, VB Script и Microsoft Java VM. Chrome периодически загружает обновления двух черных списков (один для фишинга сайтов и один для сайтов, содержащих вредоносное ПО) и предупреждает пользователя, когда тот пытается посетить опасный сайт.Во всех представленных браузеров реализована такое свойство как многоплатформенность, то есть они могут быть установлены на разные операционные

Поддержка ОС

системы (Таблица 1).

Internet Explorer

Mozilla FireFox

Netscape Browser

Opera

Safari

Chrome

Работает под Windows, но существуют версии для Mac и Unix

Windows 95/98/NT/2000/XP; Macintosh Classic, Mac OS X; Linux UNIX, BeOS, OS/2

Windows 95/98/NT/2000/XP; Macintosh Classic, Mac OS X; Linux

Windows 95/98/NT/ 2000/XP; Mac Classic, Mac OS X; Linux QNX, EPOC, BeOS та ін.

Mac OS X, Windows XP, 2003, Vista,

7.

Windows 95/98/NT/ 2000/XP;

Mac OS X; Linux

Ниже представлена ​​информация о распространенных возможности браузеров

(Таблица 2).

Функциональность браузеров

Таблица 2

Возможности

Internet

Explorer

Mozilla FireFox

Netscape Browser

Opera

Safari

Chrome

Вкладки

Так (з 7-ї версії)

Так

Так

Так

Так

Так

Менеджер

закачек

Так

Так

Так

Так

Так

Так

Панель поиска

Так

Так

Так

Так

Так

Так

Проверка орфографии

Частично

Так

Нет

Так

Так

Так

Пропорциональное увеличение

Так

Так

Нет

Частично

Так

Частично

Блокировка pop-up

Так

Так

Так

Так

Так

Так

Пропорциональное увеличение

Нет

Так

Так

Так

Так

Так

Существуют различные стандарты, технологии и протоколы. В идеале все браузеры должны одинаково отображать Web-страницы. Если взять какой-нибудь простой пример, то и Internet Explorer, и Netscape Navigator, и Opera, и другие браузеры покажут одну и ту же интерпретацию кода. Но если речь пойдет о сложный проект с многоуровневыми вложенными таблицами, фреймами, стилями, скриптами, то конечный результат может очень сильно отличаться. Также каждая компания-разработчик стремится развивать дополнительные технологии, часто не совместимы с продуктами конкурентов. Даже Java, казалось бы, универсальный язык, и то нередко обрабатывается браузерами разных фирм по-своему. То же относится и к набору скриптовых языков. Поэтому для качественного отображения web-страниц следует учитывать, какие web-стандарты, технологии и протоколы поддерживает браузер (Таблица 3).

 Поддержка web-технологий и протоколов

 Таблица 3

Web-стандарти и технологии

Internet Explorer

Mozilla FireFox

Netscape Browser

Opera

Safari

Chrome

CSS2

Так

Так

Так

Так

Так

Так

Фрейми

Так

Так

Так

Так

Так

Так

Java

Так

Так

Так

Так

Так

Плагин

JavaScript

Так

Так

Так

Так

Так

Так

XHTML

Нету

Так

Нет

Так

Так

Так

RSS

Нету

Так

Нет

Так

Так

Так

Atom

Нету

Так

Так

Так

Так

Нету

Интернет протоколы

Email

Нету

Плагин

Так

Так

Нету

Нету

FTP

Так

Так

Так

Так

Частично

Так

NNTP (Usenet)

Нету

Плагин

Так

Так

Нету

Нет

SSL

Так

Так

Так

Так

Так

Так

IRC

Нету

Плагин

Нету

Так

Нету

Нету

Браузеры конкурируют друг с другом на многих фронтах: безопасность, поддержка стандартов, функциональность. Но одним из важнейших параметров является скорость. Скорость "холодного" и "горячего" загрузки, скорость рендеринга CSS, скриптов, таблиц, графики, скорость работы с кэшем. Все эти параметры влияют на общее впечатление от скорости работы программы."Холодный" старт - это первая загрузка браузера сразу после старта системы. При этом не используются специальные утилиты предварительной загрузки.Результаты Internet Explorer - 6,99 c; Mozilla FireFox - 17,94 c; Opera - 2,48 с."Горячий" старт - загрузка браузера во второй раз. Во время тестирования браузер загружался еще и третий раз, а потом брались средние значения.Результаты Internet Explorer - 1,77 c; Mozilla FireFox - 2,74 c; Opera - 2,15 с.Обработка скриптов. Этот тест специально предназначен для сравнения различных браузеров на одной платформе и в разных условиях. Например, небольшие различия в оборудовании или наборе установленного ПО могут сильно повлиять на скорость обработки скриптов на одном и том же компьютере в одном и том же браузере. Это отличный тест, в котором замеряются разные параметры: вычисление математических формул, DHTML, обработка строки, кэширование изображений, манипуляции с таблицами, окнами и содержимым страницы.Результаты Internet Explorer - 60с; Mozilla FireFox-21c; Opera - 13с.браузер интернет программное обеспечениеПоказ изображений. Здесь открывалась страница с десятком небольших картинок. Тест показывает, как браузер может работать с множеством соединений одновременно, а также насколько быстро он осуществляет рендеринг изображений.Результаты Internet Explorer - 2,32 с; Mozilla FireFox - 2,85 c; Opera - 1,5 с.Из полученных результатов видно, что из представленных браузеров Opera является самым быстрым браузером. Сравнив представлены браузеры, можно заметить, что Enternet Explorer сдает свои позиции, а на первое место выходит Opera. Но, несмотря на это, Enternet Explorer является лидером по распространенности среди пользователей Интернета.

                                             

          § 2.Понятие «Браузерный движок»

Многие из нас слышали  загадочное словосочетание «движок сайта». На самом деле ничего загадочного в нем нет. Типовой сайт всегда состоит из двух частей — интерфейса, который видят пользователи и программной части, которая на жаргоне веб-разработчиков и называется «движок сайта». Основные задачи, которые решает движок сайта, во многом похожи на те, которые решают современные редакторы. При вводе на входе минимальное количество данных, мы на выходе получим готовый сайт.

Вообще-то, движок, это жаргонное выражение, правильное название – программный комплекс управления сайтом. Подобная система управления может состоять из множества небольших модулей (т.е. несколько маленьких программ), которые объединены в общую систему. Наиболее часто встречается аббревиатура CMS – Content Managment System – Система Управления Контентом. Движки, в подавляющем большинстве случаев, программируются на языке PHP, тем не менее, возможно применение других языков, всё зависит от программиста и возможностей хостинга. В любом случае, движок всегда работает в связке с базой данных MySQL (базы данных так же должны поддерживаться хостером).

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

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

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

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

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

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

На первом месте по общей производительности оказался браузер на движке WebKitApple Safari. Второе место досталось браузеру, который также работает на основе WebKitGoogle Chrome. Третье место разделили Mozilla Firefox (движок Gecko) и Opera (движок Presto).

2.1.Состав и структура движка

Система управления контентом - это программный комплекс, позволяющий автоматизировать процесс управления как сайтом в целом, так и сущностями в рамках сайта: макетами страниц, шаблонами вывода данных, структурой, информационным наполнением, пользователями и правами доступа, а также по возможности предоставляет дополнительные сервисы: списки рассылки, ведение статистики, поиск, средства взаимодействия с пользователями и т. д. Необходимость систем управления появилась в тот момент, когда количество материалов на веб-сайтах начало стремительно расти. Это привело к тому, что традиционные «ручные» технологии создания и поддержки сайтов, когда сайт состоял из статических страниц и набора дополнительных специализированных скриптов, стали не успевать за быстро меняющимися условиями бизнеса. Ввод данных на сайт требует знания технологий HTML / CSS верстки, изменения структуры сайтов были связаны с каскадным изменением большого количества взаимосвязанных страниц. Различные автоматизированные механизмы, как то гостьовi книги и ленты, введенные на сайтах как отдельные скрипты и, как правило, написаны разными специалистами, перестали удовлетворять требованиям безопасности. Поэтому возникла потребность с одной стороны в унификации программных решений, а с другой в разделении дизайна и содержания на две независимые составляющие. CMS разделяет сайт на две составляющие: дизайн (внешний вид сайта в целом, отдельных страниц, конкретных блоков информации) и содержимое (контент). Дизайн сайта содержится в шаблонах и изменяется значительно реже, чем контент. Системы управления контентом решают две основные задачи. С точки зрения пользователей - это инструмент, который позволяет публиковать новости, размещать новые страницы на сайте и выполнять другие операции над содержанием через удобный интерфейс. При этом пользователь может не владеть технологиями создания сайта, но он обязательно должен понимать, как устроен сайт. С точки зрения разработчиков - это инструмент, который ускоряет создание сложных сайтов, позволяя компоновать решения из готовых блоков, изменяя в определенных пределах логику работы и оформление. Одними из наиболее распространенных cms, на основе которых можно создавать функциональные и легко керуемi сайты без серьезных финансовых затрат является Drupal, Joomla, WordPress, TYPO3 а также недавно появилось Oxite.Актуальность: Ознакомившись с понятием, CMS стало понятно, что в данный момент это область, которая стремительно развивается. На данный момент уже очень много сделано в различных CMS, но все же остается еще огромное количество проблем. Из них можно выделить следующие: недостаточный функционал, невозможность работы в кластере, невозможность работы нескольких сайтов одновременно, дыры в безопасности. Таким образом, нужно сказать об актуальности этой отрасли, развивать ее необходимо, причем прямо сейчас. Если качественно решить все изложенные проблемы, то можно получить CMS, которая бы удовлетворяла 50% сайтов которые сейчас находятся в интернете. Программистам не нужно было бы тратить время на написание стандартных кусков сайта такие как авторизация, редактирование информации и т.д. Было бы необходимо разобраться в CMS а дальше же просто отимизировать ее под себя, и то только в тех случаях, где это было бы необходимо. Безусловно невозможно создать CMS которая бы покрывала весь класс задач, но такую ​​покрывающую частично - можно, чем и занимаются разработчики со всего мира.

Архитектура CMS

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

Рис 1. CMS — совокупность модулей

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

В корне web-директории существует файл index.php и файл базовых настроек config.php. При любом запросе к сайту, сервером исполняется файл index.php, именно с него начинается функционирование системы.

Системный модуль System

Рис 2. Запуск системного модуля – ядра cms

Модуль событий Events

Модуль событий Events предоставляет возможность модулям генерировать события. События генерируются вызовом метода Events::Send($module_name, $event_name). Обрабатываются события статическими методами классов других модулей, хотя ничто не мешает модулю обрабатывать и свои события. Системный модуль System не определяет дальнейшее функционирование системы, он просто генерирует поочередно три события: «инициализация» (INIT), «выполнение» (START) и «завершение» (STOP).

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

Рис. 3 Основные события

Модули, генерирующие события, не знают кто их события обрабатывает. Любой модуль может зарегистрироваться на обработку любого события. Регистрацию на событие достаточно сделать один раз при установке (инсталляции) модуля. Сохранность информации о том, какой модуль на какое событие зарегистрировался, обеспечивается модулем событий Event. Ниже приведён пример регистрации и удаления её на событие «инициализации» (INIT) системного модуля System модулем ошибок Errors.

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

Кстати, вспомните, как загружаются модули — только при первом обращении к ним. Это значит, что перед генерацией события START системным модулем, загруженными будут только сам системный модуль System и модули событий Events, ошибок Errors и сессий Session. Модули Errors и Session загружены, так как обрабатывали событие INIT, а модуль Events загружен, так как его использовал системный модуль.

Модуль ошибок Errors

Событие «инициализация» (INIT) системного модуля первым делом обработает модуль ошибок Errors, при этом он ещё и автоматически загрузиться. Модуль ошибок переопределяет стандартные обработчики ошибок и исключений PHP. Детально о нем пока говорить незачем. Можно упомянуть только то, что модуль ошибок в свою очередь генерирует события после обработки ошибок, что позволяет независимо от причины возникновения ошибки сформировать понятный ответ пользователю модулями, формирующими вывод, например, модулем Page.

Модуль сессий Session

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

Модуль запросов Request

Событие «выполнение» (START) системного модуля обрабатывает модуль запросов Request. Модуль запросов собирает все поступившие данные от пользователя в «контейнер», из которого они будут доступны любому модулю системы. Чтоб получить данные из «контейнера», нужно указать формат — тип и ограничения размера ожидаемого значения. Таким образом, в какой-то степени предотвращается проникновение данных, не соответствующих требованиям модулей. После завершения процесса помещения входящих данных в «контейнер», модуль запросов генерирует событие AFTER о завершении своей основной работы.

На поступивший запрос пользователя, как правило, необходимо сформировать вывод — ответ, и отправить его клиенту. Ответом обычно является html страница, но им может быть документ в ином формате, например XML, или файл, или что-то другое. В зависимости от параметров запроса пользователя (url’a), определяется один модуль для формирования вывода, точнее каждый модуль вывода сам определяет, работать ему или нет таким образом, что в итоге только один модуль отвечает за формирование вывода. Модули вывода начинают свою работу, обрабатывая событие AFTER модуля Request, что позволяет легко добавлять новые модули для формирования вывода в иных форматах. В принципе, любой модуль может быть модулем вывода, если будет хоть что-то передавать пользователю.

Перед формированием вывода, необходимо обработать входящие данные. Ими могут быть данные форм, которые следует сохранить в системе. Этим занимается модуль данных Data, обрабатывая событие AFTER модуля Request.

На рисунке стрелками отображен поток данных: пользователь выполняет запрос к серверу (передаёт данные), полученные данные обрабатываются модулями системы, каждый модуль выполняет свои действия с данными, в итоге формируется результат, который передаётся пользователю. Данные передаются прямым обращением к методам или свойствам модуля. Модуль, принимающий данные, сначала их запрашивает. Например, модуль данных Data, обрабатывая событие модуля Request, начинает свою работу и первым делом обращается к нему же (к модулю Request) за данными.

Рис. 4 Поток данных

Модуль данных Data

Модуль данных Data — самый важный модуль системы, именно от его возможностей зависит гибкость и функциональная мощь системы. Модуль данных предоставляет общий доступ к данным. Позволяет их создавать, изменять, удалять, а также осуществлять поиск с мощными возможностями. Только модуль данных обращается к базе данных через модуль базы данных Database. Для работы с данными другие модули не используют SQL запросы, ими применяется простой, но гибкий способ описания условия запроса, а также методы для манипулирования данными. Модуль данных на основе условий создает SQL запрос к базе данных и возвращает объекты данных. Получив объект «Новость», можно без явного обращения к модулю данных узнать всё, что связано с новостью — хоть автора раздела, к которому принадлежит новость. Благодаря модулю данных, пользователь-конфигуратор (да и сама система) может создавать свои классы данных — свои структуры данных. Об этом и многом другом будет рассказано в следующей статье. Для ясности только добавлю, что класс данных не имеет прямой связи с классом структуры языка программирования.

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

Модуль страниц Page

Модуль страниц Page, используя шаблоны оформления, формирует html страницу, которую потом отправляет пользователю. Страница формируется из блоков в соответствии с входящими данными — параметрами запроса (url’a). Модуль страниц интенсивно использует модуль данных, так как страница — это представление данных, да и многие фрагменты — блоки страниц — тоже являются данными. Принцип генерации страниц и все тонкости функционирования модуля — тема одной из следующих статей.

Модуль файлов Files и фотографий Image

Модули файлов и фотографий — это одни из тех модулей, которые дополняют действия модуля данных. Кроме того, модули файлов и фотографий, при установке в систему, создают соответственно классы данных «Файл» и «Фотография». После, при работе модуля данных Data с объектами этих классов, модули файлов или фотографий выполняют дополнительные действия. В частности, при создании объекта данных «Файл», происходит загрузка файла на сервер и сохранение его в файловой системе сервера. Модуль файлов также является модулем, формирующим вывод. При соответствующих запросах, модуль передаёт файлы пользователю для скачивания, при этом ведется контроль доступа, статистика и все что может делать система в целом.

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

Модуль действий Actions

Модуль действий Actions позволяет классифицировать и контролировать действия, совершаемые модулем данных Data над объектами. Условием совершения действия может быть теоретически любое логическое выражение: в нем может быть и проверка текущего пользователя (его свойств), и проверка объекта, над которым совершается действие, и другое.

Пример: модуль данных Data загружает данные из БД и генерирует событие чтения, которое обрабатывается модулем действий Actions. Модуль действий Actions проверяет условия данного действия и вычисляет возможность его совершения, логический результат вычислений принимается модулем данных Data, который просто подчиняется результату, то есть продолжает или завершает чтение объекта данных. Условие и действие тоже являются объектами данных. Разобраться в тонкостях функционирования модуля действий Actions и гибких возможностях контроля действий можно будет после изучения модуля данных Data.

Модуль форматов Formats

Задача модуля форматов Formats — предоставлять разнообразные форматы для значений. Например для строк форматами будут представления e-mail адресов, телефонов, форматы оформления (разметка). Формат — это объект данных, который связывается с объектом значения, что и определяет формат для значения. Модуль форматов не просто предоставляет объекты-форматы, он ещё и обеспечивает проверку значений на соответствие формату. Сама проверка происходит, когда модуль данных Data сохраняет объект данных. Также некоторые преобразования значения (форматирования текста, например) в соответствии с форматом происходят при чтении данных. С функционированием данного модуля есть ещё множество нерешенных вопросов. Работа продолжается.

Функционирование CMS

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

Пользователи CMS делятся на две группы – создатели шаблонов страниц и авторы контента (информационного наполнения). Таким образом, одна группа пользователей создает структуру и оформление страниц, а другая наполняет его содержанием.

Схема функционирования CMS

Функции систем управления контентом структурированы согласно жизненному циклу системы.

Сначала группа внедрения разворачивает ядро CMS и создает в СУБД информационное хранилище контента – БД. Далее администратор предоставляет доступ к системе различным пользователям, затем создается контент, он публикуется, и к нем применяются шаблоны оформления.

Создание контента

На первом этапе необходимо создать все типы контента и схемы их метаописаний, а также настроить систему на определенный поток работ (если система поддерживает создание потоков работ, а не использует единственный встроенный). Понятие типа контента аналогично понятию класса, а элементы контента представляют собой набор экземпляров таких "классов". Типами контента являются, например, текст и изображение; экземпляром контента конкретный документ или картинка.

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

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

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

Кроме непосредственно редактирования элементов контента, необходимо предусмотреть разбиение контента по категориям или рубрикам.

Создание шаблонов оформления

В качестве решения проблемы представления в системах управления контентом используется технология шаблонов, определяющих внешний вид страницы. Разработчику шаблонов не нужно знать никаких технических тонкостей. На ранних этапах существования WWW шаблоны представляли "заготовки" HTML-кода, из которого путем манипуляций в HTML-редакторе получались готовые страницы. Сегодня такими заготовками манипулируют уже не дизайнеры в своих редакторах, а серверные web-приложения. Таким образом, современный шаблон Web-страницы представляет собой блок HTML, который благодаря специальным тегам или внедренным сценариям, облегчает включение динамически сгенерированного содержания на этапе выполнения. При использовании подобных шаблонов программистам необходим некоторый стандартизированный интерфейс для работы с ними – шаблонный движок (в английском языке существует устоявшийся термин – template engine), который может иметь разнообразные дополнител ьные функции, например, поддерживать кэширование шаблонов, их динамическое обновление и т.д.

Публикация контента

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

Типичный процесс публикации информации в World Wide Web реализован в Microsoft Content Management Server. Обычным приемом обеспечения оформления информационного наполнения являются шаблоны представления информации. Поэтому первым этапом процесса является создание наборов шаблонов. Типичный шаблон содержит разметку HTML и места, куда в дальнейшем будут вставлены данные (placeholder'ы в терминологии Microsoft). Далее на основе этих шаблонов авторы информационного наполнения создают страницы и представляют их редакторам для одобрения. Редакторы, в свою очередь, могут либо отклонить страницу и вернуть ее автору на доработку, либо одобрить ее и передать модератору сайта. В первом случае процесс повторяется снова, во втором же модератор сайта проверяет расположение страницы на сайте, дату и срок ее публикации. Если все в порядке, страница становится видна пользователям. Несмотря на то, что рабочий процесс в Microsoft Content Management Server фиксирован и не может быть изменен в дальнейшем, подобное решени е подходит большинству пользователей, которым необходимо публиковать информацию в World Wide Web.

Управление пользователями

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

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

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

Архитектура системы управления контентом на примере DotNetNuke. В самом общем виде архитектуру систем управления Web-контентом можно представить следующим образом.

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

В системе присутствует два хранилища. В первом (обычно реляционная СУБД) хранятся все данные, которые публикуются на сайте. Во втором (обычно файловая система) хранятся элементы представления – шаблоны, графические изображения и т.д.

Получая запрос, сервер приложений обрабатывает его, связываясь с хранилищем данных, в каком бы месте необходимые данные не находились. Клиент лишь получает результат в виде HTML-файла. Таким образом, сервер приложений является стандартизованной платформой для динамической доставки контента и построения основных приложений. Серверов приложений может быть много, а связь с ними происходит через Web-сервер.

Рассмотрим пример реализации архитектуры системы управления контентом на примере CMS DotNetNuke.

Паттерн (т.е. шаблон проектирования) MVC состоит из трех взаимосвязанных элементов: Модель, Представление и Контроллер. Такое разделение на компоненты позволяет разграничить пользовательские интерфейсы, управляющую логику и контент.

Обзор CMS

Drupal: 

Drupal представляет собой систему управления сайтом, написанная на языке PHP и использующая в качестве хранилища содержания реляционную базу данных (поддерживаются MySQL, PostgreSQL, а также любые СУБД поддерживаемые библиотекой PEAR). Drupal является свободным программным обеспечением защищенным лицензией GPL и создается усилиями энтузиастов со всего мира. Начал разработку голландец Dries Buytaert, который и поныне является руководителем проекта. 

Архитектура Drupal позволяет применять его для построения различных типов сайтов - от блогов и форумов, в информационных архивов или сайтов. Функциональность обеспечивается Plug-in, которые обращаются к общему API Drupal. Стандартный набор модулей включает такие функции как новостная лента, блог, форум, загрузка файлов, сборщик новостей, голосования, поиск и др. Дополнительные модули, которые значительно расширяют базовые функции, дотупны на официальном сайте. 

Наиболее важные функции предоставляются модулями входящих в поставку Drupal:

Единственная категоризации всех видов содержимого - от форумных сообщений до блогов и новостных статей.

Вложенности категорий любой глубины

Поиск по содержимому сайта

Разграничение доступа пользователей к документам (ролевая модель)

Динамическое построение меню

Поддержка XML-форматов

Вывод документов в RDF / RSSАггрегации материалов с других сайтов

BlogAPI для публикации материалов с помощью внешних программ

Поддержка общей авторизации между сайтами на Drupal ("сайты-партнеры")

Короткие URL

Поддержка сменных тем оформления сайта с предоставлением нескольких готовых вариантов

Поддержка переводов интерфейса сайта на разные языки

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

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

Механизм для ограничения нагрузки на сайт (автоматическое отключение при высокой посещаемости части информационных блоков и модулей)

Joomla: 

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

Joomla является ответвлением широко известной Mambo CMS. Команда независимых разработчиков отделилась от проекта Mambo из-за несогласия в экономической политике. И 16 сентября 2005 года в свет вышла первая версия Joomla, являющийся по сути переименованной Mambo 4.5.2.3 и включает в себя исправления найденных на тот момент ошибок и уязвимостей. Разработчики обещают, что до выхода версии 2.0 движок будет полностью переписан и адаптирован под PHP 5. 

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

WordPress: 

WordPress - CMS c открытым исходным кодом, распространяемая под GNU GPL. Написан на PHP, в качестве базы данных использует MySQL. Сфера применения - от блогов до достаточно сложных новостных ресурсов. На сегодняшний день Wordpress - самая популярная система для ведения блогов. 

Возможности:

Возможность публикации с помощью сторонних программ и сервисов;

Моментальная публикация;

Простота установки, настройки;

Поддержка веб-стандартов (XHTML, CSS);

Поддержка RSS, Atom, trackback, pingback;Plug-in (плагины) с уникальной простой системой их взаимодействия с кодом;

Поддержка так называемых «тем», позволяющих легко менять как внешний вид, так и способы вывода данных;

«Темы» реализованы как наборы файлов-шаблонов на php, что положительно сказывается на скорости и гибкости;

Огромные библиотеки «тем» и «плагинов»;

Заложен потенциал архитектуры позволяет легко реализовывать сложные решения;

Наличие русских (неофициальных) переводов.

TYPO3: 

Одним из наиболее мощных представителей CMS с открытым исходным кодом является система TYPO3. Эта система достигла наиболее высокого профессионального уровня, очень универсальна и легко зменяема в зависимости от применения. Разработка TYPO3 начата 1998 году датским программистом Каспером Скархей. Сейчас TYPO3 распространена во всем мире. TYPO3 интенсивно развивается: ежегодно выпускаются 2 новые версии, активно работает TYPO3 Ассоциация. Как и многие другие системы с открытым исходным кодом, TYPO3 распространяется под бесплатной лицензией GPL и свободно доступна через интернет. 

Основные возможности:

Редактор текста с форматированием (RTE) и проверка орфографии

Отмена изменений и история изменений

Предпросмотр перед публикацией

Буфер обмена

Изменение содержимого frontend и backend

Внутренние ссылки (возможны ссылки на уровне элементов содержимого)

Внутренний поисковый механизм

Одна инсталляция системы для многих сайтов (с единым деревом страниц)

Одна инсталляция системы для многих доменовTemplavoila

Гибкая система разграничения прав для редакторов сайта

Динамическое построение меню - текстовых и графических

Возможность авторизации пользователей через LDAP

Версионирование

Рабочие области (workspaces)

Поддержка WML

Поддержка XML

Поддержка импорта и экспорта RSS

Экспорт в PDF

Экспорт в статический HTML

Кэширование страниц

2.2.Состав атрибутов движка (характеристика)

Рассмотрим CMS Drupal, Joomla, Wordpress, TYPO3 по следующим основным характеристикам:

Версии/безопасность:

Drupal:

Последней является версия 6.6. Все новые версии Drupal долго тестируются перед официальным релизом. Так как CMS имеет стабильное ядро, ошибки в модулях исправляются оперативно, поэтому сейчас целый ряд крупных корпоративных сайтов компаний с мировыми именами работает на Drupal.

Joomla

Последняя стабильная версия 1.5.8, в которой было исправлено 114 ошибок, в том числе 2 средние ошибки безопасности обнаруженные при тестировании Joomla 1.5.x. Имеются большие проблемы с безопасностью сторонних расширений, которые распространяются бесплатно. Из стабильных расширений можно выделить OpenSEF и MosetsTREE.

Wordpress:

Текущая версия: 2.6.5. График выпуска версий WordPress очень часто сбивается. Если обнаруживается какая-либо серьезная «дыра», то разработчики опреративно выпускают обновление. За счет оптимизации запросов, скорость работы новых версий значительно выше предыдущих.

TYPO3:

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

Безопасность в Typo3 очень болезненный вопрос для системных админимтраторов, поскольку система требует SafeMode = Off и работающей функции exec. Exec функция нужна для использования ImageMagic, которую уже давно считают за стандарт для хостинговых.

Конфигурация безопасности самой cms описана в документации и включает в себя настройки, которые затрагивают и права доступа к файловой системе, SSL доступ к backend-администрированию, контроль всех действий всех пользователей(logging), обработка ошибок, мощная работа с кешем.

Русская документация:

Drupal:

Переводом документации по Drupal занимается русское сообщество cms. Также имеются самописные статьи и руководства. Документация на модули по большей части не переведена.

Joomla

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

Wordpress:

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

TYPO3:

На данный момент, русская документация по Typo3 является просто переводом английской документации. Есть русскоязычная Wiki, которая по сути представляет собой набор советов. Существует около двух десятков книг по TYPO3, большинство на немецком языке.

Борьба со спамом:

Drupal:

Предоставляет следующие возможности по борьбе со спамом: графическая или математическая каптча на выбор, анализатор поведения клиентов с отсеиванием ботов. Можно задавать ограничение на количество ссылок в одном сообщении, контролировать флуд, банить ip и вести «черный список» рекламируемых сайтов, а также фильтровать сообщения по подстроке.

Joomla

В базовой версии отсутствуют возможности по борьбе со спамом.

Wordpress:

Стандартно в WordPress входит плагин Akismet, который достаточно эффективно борется со спамом. Кроме этого можно создать черный список и фильтры из слов. С их помощью можно просто заблокировать любой комментарий, который содержит запрещенное слово или отправить его на модерацию. Наибольшую же эффективность в борьбе со спамом можно добиться с помощью т.н. капчи — картинки с набором символов. В этом случае ставится полный заслон от автоматических спам-роботов. Установка большинства плагинов антиспама очень проста, зачатую достаточно только его активировать в админ-панели (например, популярная SpamKarma). С помощью специального плагина есть возможность модерировать спам-комментарии. Причем доступны как обычные комментарии, так и пинги и трекбаки. В целом же плагинов для антиспама множество (я насчитал больше семидесяти).

TYPO3:

Одной строчкой TypoScript в шаблоне подключается система блокирования спам-ботов, собирающих e-mail адреса. Также существуют расширения Captcha, Bad Behavior, SPAM Assassin,

Akismet, Spam Detection через mod_security в .htaccess и другие.

Интеграция с форумом:

Drupal:

Базовый пакет Drupal содержит достаточно функциональный форум, который подойдет для организации небольших сообществ. Для организации больших сообществ он тоже, впрочем, подойдет — на форуме drupal.org сейчас более 320 000 сообщений. Есть модераторы, группы пользователей с разными правами доступа, извещения по email, аватары, подписи, RSS. Преимущество встроенного форума — единая база пользователей, которую используют остальные части сайта. Есть возможность интеграции с PHPBB.

Joomla

Вместе с Joomla не поставляется компонента форума, однако на данный момент самым оптимальным вариантом создания встроенного форума является FireBoard и его русская редакция от Adeptus'а. Что же касается интеграций — они существуют. Самой распространенной является связка Joomla-SMF, под которую есть не одна интеграция, даже коммерческая.

Wordpress:

Для WordPress'а разработан и рекомендуется форум BBPress (есть и руссификация), который полностью интегрируется в блог. Правда, возможности у этого форум более чем скромные. На официальном сайте WordPress'а используется именно этот форум. Также существуют плагины, которые позволяют частично интегрировать некоторые популярные форумы в блог. Правда для этого требуются хорошие знания программирования, и при этом, все равно стопроцентной интеграции не получится — все-таки это разные системы.

TYPO3:

Разработанные чисто для typo3 форумы как расширения: CHC Forum, WEC Discussion Forum, mm forum… Расширения-соединения phpBB, VBulletin c Typo3, а так же инструменты миграции данных из phpBB на более рекомендованый CHC Forum. Расширения-соединения форумов и новостей.

Визуальный редактор:

Drupal:

В Drupal можно встроить редакторы TinyMCE или FCKEditor, которые гибко настраиваются и являются мощными средствами(например, в TinyMCE можнет работать с таблицами, добавляя и удаляя строки и столбы и объединяя ячейки, «чистить» скопированные из Ворда тексты от избыточных тегов)

Joomla

Большинство визуальных редакторов - портированные и самые распространенные редакторы. Самым удобным и хорошим из бесплатных является редактор JCE, разработанный специально для Joomla (а изначально еще для Mambo, тогда он назывался MosCE), который является хорошей альтернативой платному WysiwygPro.

Wordpress:

Стандартно в WordPress'е используется немного урезанный TinyMCE и простой текстовый редактор (переключение между ними «на лету»). При желании можно установить и полную версию TinyMCE, тогда будет доступно три панели кнопок со всем возможностями. Нужно отметить, что в WordPress'е есть возможность сторонним плагинам добавлять кнопки в редактор. Таким образом можно например получить функции для добавления видео, аудио и т.д. В профиле пользователя также можно отключить использование визуального редактора.

TYPO3:

Встроенным является редактор RTE. Из расширений можно выделить htmlArea RTE, tinyRTE, FCKEditor (пока экспериментальный), TinyMCE и другие.

Шаблоны оформления:

Drupal:

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

Joomla

По сравнению с шаблонами других систем управления сайтом шаблоны Joomla! очень просты по своей структуре, что упрощает процесс их создания и редактирования. Существует 2 вида шаблонов Joomla: шаблоны сайта (Site Template) и шаблоны административной панели (Backend Template). В Joomla есть возможность назначения разным страницам различных шаблонов. Например, имея на сайте раздел статей и магазин, вы можете оформить их как два совершенно различных сайта, всего лишь оперируя шаблонами Joomla. Joomla поддерживает систему модулей. Модули объединяются в позиции, которые уже и подгружаются в нужных местах шаблона. Модули можно привязывать к конкретным страницам (включать и выключать отображение) а так же выводить различными способами по ходу страницы. При помощи манипуляций в шаблоне можно несколькими модулями составить очень красивую главную (или любую другую) страницу, просто выключив компонент работающий там и расположив вместо него модули (например, отображающие новости из разных категорий).

Wordpress:

Для WordPress'а созданы тысячи шаблонов и многие из них выполнены на очень хорошем дизайнерском уровне. Устройство WordPress таково, что под него несложно переделать, скажем, html-шаблон. В шаблонах испольуются обычные PHP-функции, поэтому никаких сложностей с изучением т.н. языков шаблонов нет. По созданию шаблонов существует довольно много статей, даже есть он-лайн генератор. Готовые шаблоны достаточно загрузить в отдельный каталог и после этого в админ-панели выбрать понравившийся. Существует также возможность переключать шаблоны и посетителями.

TYPO3:

Стандартное подключение файлов шаблона осуществляется посредством вставки закомментированых указателей в html-шаблон и обращением к ним как к объектам через TypoScript. Существует мощное расширение “TemplaVoila!” для визуального подключения шаблона, разметки объектов по тэгам и обращения к ним через TypoScript.

Расширенная функциональность (плагины) :

Drupal:

Сейчас в официальном репозитории хранится около тысячу бесплатных модулей. Среди прочих есть решение для электронной коммерции, CRM-система, wiki-движок. Стоит отметить модуль CCK (Content Construction Kit), который позволяет при помощи графического интерфейса описывать объекты предметной области в базе данных и сразу же создавать формы для управления ими.

Joomla

На официальном сайте(extensions.joomla.org) представлено 4159 расширений. В Joomla существует три вида расширений, есть специальная система их установки, позволяющая при помощи xml-файла описывать все действия необходимые для совершения при создании записи о расширении (например, SQL-запросы, копируемые файлы или действия выполняемые сразу после установки, которые нельзя выполнить автоматически).

Wordpress:

WordPress можно расширить за счет плагинов — это различные php-скрипты, которые автоматически подключаются к основному «ядру». Таким образом можно не просто добавить нужную функциональность, но и изменить уже существующую. Подключение плагина к WordPress'у осуществляется копированием в специальный каталог и активацией в админ-панели. Некоторые плагины можно настраивать, некоторые нужно прописывать в шаблоне, а некоторые работают полностью автоматически. Плагинов для WordPress написано несколько тысяч, поэтому можно найти плагин практически под любые нужды. Некоторые плагины требуют значительной переделки шаблона.

TYPO3:

Имеется огромный репозиторий расширений (ок. 2000), документация к самым популярным переведена на русский язык.

Производительность:

Ниже приведено тестирование производительности наиболее используемых cms Joomla 1.5 и Drupal 6.1. Результаты тестирования быстродействия cms приведены на рисунках 1.1и 1.2

Рис. 1.1 Характеристики быстродействия            Рис. 1.2 Сравнение быстродействия Joomla и Drupal

Joomla и Drupal

Drupal значительно быстрее Joomla во всех четырёх инсталляциях. Скорость загрузки Drupal улучшается на ~74%, при включенном кэше и без установленных модулей. Если же стоят дополнительные модули, то включение кэша улучшит быстродейсвие системы на ~86%. Кэш поможет улучшить быстродейсвие Joomla на ~23% и на ~20% (с дополнительными компонентами).

Далее представлены результаты тестирования производительности рассматриваемых cms на виртуальном веб-сервере. Тестирование проводилось на следующей конфигурации: Architecture: x86    CPU: 3.0Ghz    RAM: 512Mb    OS: Debian GNU/Linux , kernel 2.6.22-3-686

Для всех cms загружпемая страница содержала меню, форму ввода, текст общим размером 40Кб. Тестирование производилось для 1, 10 и 20 пользователей. Тестирование проводилось для следующих версий: WordPress 2.6,    Joomla!: 1.5.2,    Typo3: 4.1.6,    Drupal:6.2

      

Таблица 1.2 Результаты тестирования   Рис. 1.3 Результаты тестирования для 10

пользователей                   пользователей    

В таблице 1.2 и на рисунке 1.3 приведены результаты тестирования для 10 пользователей. Результом является скорость загрузки страниц(milliseconds per page request).

             

Таблица 1.3 Результаты тестирования 30   Рис. 1.4 Результаты тестирования для 30

пользователей                   пользователей

                               

Таблица 1.4 Результаты тестирования 50   Рис. 1.5Результаты тестирования для 50

пользователей    

Drupal использует наиболее эффективный алгоритм кэширования, поэтому эта cms показала лучшие результаты. По сравнению с предыдущими версиями Joomla 1.5 потребляет больше системных ресурсов хостинга: память, запросы к базе, большое количество небольших файлов- на подключение к каждому уходит время и память, а в режиме Legacy (Наследственный) система потребляет еще больше ресурсов чем без него.

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

2.3.Демонстрация движка

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

Название Drupal является английским произношением голландского слова "druppel" ("капля"). Так что название этой CMS, в отличие от CMS Joomla, не несёт никакого смысла.

Создания простой html страницы

Если вы хотите создать индивидуальную тему, вы можете модифицировать существующую тему или начать с нуля. Чтобы модифицировать существующую тему, просто скопируйте ее в новую директорию в папку themes. Затем измените тему настолько насколько вам нужно. В зависимости от того, чем является тема шаблоном или основанной на файле .theme, вы можете использовать PHP или XHTML/CSS для его изменения. Как пояснялось выше, если вы хотите всего лишь поменять CSS темы, тогда просто поместите новый файл style.css в поддиректорию темы: он появится как новая тема в Drupal.

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

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

Заключение

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

Полученные знания станут существенным подспорьем в понимании таких понятий как: «веб-браузер», «Браузерный движок». Web-браузер является глазами человека в мире Интернета, служит основным инструментом общения с Сетью. И от того, насколько эффективен этот инструмент, во многом зависят результаты общения. Браузеры прошли долгий путь становления, развиваясь вместе с Сетью, и прошло немало лет, прежде чем они стали похожими на своих современных собратьев.

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

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


Библиография

1. http://www.wisecat.ru/khozyaike-na-zametku/drupal/ustanovka-drupal-na-svoi-kompyuter-na-denver

2. Дэвид Мерсер - Drupal 6 Создание надежных и полнофункциональных веб-сайтов – 2009,242 с.

3.http://www.jino.ru/support/manuals/drupal.html#admin

4.http://masters.donntu.edu.ua/2009/fvti/kalinin/diss/index.htm

5. http://www.narthex-daemon.net/create-browser-test1.daemon162/comment-page-1

6. http://boolive.ru/createcms/architecture

7.http://www.dotnetnukeru.com/Default.aspx?tabid=325&articleid=9&dnnprintmode=true&mid=900&SkinSrc=%5BG%5DSkins%2F_default%2FNo+Skin&ContainerSrc=%5BG%5DContainers%2F_default%2FNo+Container

8. http://www.cookieslovers.com/content/drupal-kak-mvc-framework


 

А также другие работы, которые могут Вас заинтересовать

11683. Организация работы лесопилки с использованием инновационных программных продуктов 720 KB
  1. Минимизация отходов лесопилки Пилорама заготавливает оцилиндровывает и сушит 20футовые брёвна которые в дальнейшем используются для строительства бревенчатых домов бань и т.п. Поступил новый заказ для которого требуется 275 шт. 8футовых 100 шт. 10футовых и 250 шт. 12фу...
11684. Системи счислення в ЕОМ 64.5 KB
  ЛАБОРАТОРНА РОБОТА № 1 Тема: Системи счислення в ЕОМ. Ціль: Знайомство системами счислення в ЕОМ виконання арифметичних дій вивчення правил переведення із однієї системи счислення до іншої. Теоретичні відомо...
11685. Застосування спеціального програмного забезпечення для роботи з 8-ми розрядним мікропроцесором 309 KB
  Лабораторна робота №2 Застосування спеціального програмного забезпечення для роботи з 8ми розрядним мікропроцесором. ЗАВДАННЯ Відповідно до свого варіанта завдання за допомогою емулятору процесора К580ВМ80 записати та виконати прості арифметичнологічні операці
11686. Реалізація логічних та арифметичних операцій за допомогою восьми розрядного мікропроцесора 214.5 KB
  Лабораторна робота №3 Тема: Реалізація логічних та арифметичних операцій за допомогою восьми розрядного мікропроцесора. Мета: Перевірити на практиці правильність виконання різноманітних операцій. ЗАВДАННЯ Відповідно до свого варіанта використовуючи емулятор пр
11687. Застосування спеціального програмного забезпечення для реалізації умовних переходів при роботі з восьми розрядним мікропроцесором 269.5 KB
  Лабораторна робота №4 Застосування спеціального програмного забезпечення для реалізації умовних переходів при роботі з восьми розрядним мікропроцесором. ЗАВДАННЯ Відповідно до свого варіанта завдання за допомогою емулятору процесора К580ВМ80 написати програму щ...
11688. Научиться проводить диагностику системы с помощью программ Everest, CPU-Z, Sandra, Belarc Advisor, FreshDiagnose и д.р 401 KB
  Лабораторная работа №5 Тема: Диагностика основных блоков ПК. Цель работы: Научиться проводить диагностику системы с помощью программ Everest CPUZ Sandra Belarc Advisor FreshDiagnose и д.р. Теоретические сведения Компьютер высокотехнологичная вещь он состоит из множества неза...
11689. Вивчення архітектури материнської плати 35.5 KB
  Лабораторна робота №6 Тема: Вивчення архітектури материнської плати. Мета: Визначити архітектуру та основні складові системної плати. Структура заняття І. Організаційна частина заняття. Перевірка присутності студентів на занятті. ІІ. По...
11690. Застосування постійного запамятовуючого пристрою (BIOS) для визначення конфігурації ЕОМ 33 KB
  Практична робота №7 Тема: Застосування постійного запам’ятовуючого пристрою BIOS для визначення конфігурації ЕОМ. Мета: Отримати практичні навички при роботі з базовою системою введення виведення даних BIOS. Структура заняття І. Організаційна частина зан
11691. Програмування таймера 61.5 KB
  ЛАБОРАТОРНА РОБОТА №8 Тема: Програмування таймера. Ціль: Вивчення функцій системного таймера і закріплення практичних навичок роботи з ним. Теоретичні відомості. Усі компютери IBM містять 3х канальніий 16ти розрядний пристрій званий системним таймером. Для...