Принято думать, что каждому сайту непременно нужна карта,
которая делает две ведущие задачи. Во-первых, она предоставляет поисковым
системам быстрый проход к нужным страницам вашего сайта, а во-вторых,
предоставляет данный доступ и самим читателям. Разница есть в том, что
поисковая система и посетитель по-разному видят и применяют карту сайта для
своих нужд. Вот почему создавая сайту карту, необходимо просчитывать ряд
особенностей, чтобы в дальнейшем она смогла помочь как роботу, так и
посетителю. В основном, на небольших сайтах карта не нужна, потому что все
разделы способны уместиться в ссылках меню. В таких эпизодах каждая ссылка, где
находится все меню, может являться картой сайта. При делении меню на
вспомогательное и главное, без составления карты, стимулирующей продвижение
сайта в поисковых системах, никак не обойтись. Карта сайта может сразу хорошо
работать и поисковым роботам, и рядовым читателям, хотя, естественно, никто не
запретит вам для различных функций создать не одну схему, а несколько.
Рисунок 14. Раздел сайта «Карта сайта»
Раздел сайта «Мой профиль»
Представляет из себя форму входа\выхода зарегистрированного
пользователя, с возможностью редактирования своих данных (рис. 15).
Рисунок 15. Раздел сайта «Вход»
3.3 Детальная разработка алгоритмов
Разработка специализированного виджета
Виджет - программно виджет является вспомогательной (графической) мини-подпрограммой или скриптом для показа некоторой информации или выполнения простейших действий на сайте. Зрительно виджет - это рамка, в которой выводится результат деятельности или настройки расширений (дополнений) к основной схеме.
Ради наших нужд следует подготовить виджет для связи своего сайта с популярной социальной сетью «ВКонтакте» что даст дополнительный поток пользователей на сайт из социальных сетей, что сейчас наиболее актуально (рис. 18).
Система Joomla соединяет в себе большинство готовых виджетов, однако для этого сайта необходимо подготовить свой виджет, под общую идею и оформление сайта с привязкой к группе «ЦИТ Компьютер - Аудит»
Написание виджета будем производить в стороннем ПО NotePad++ для улучшения
визуального восприятия программного кода, с последующим внедрением в менеджер модулей
CMS Joomla (рис. 16 и 17).
Рисунок 16. Программный код виджета
Рисунок 17. Менеджер модулей Joomla
Рисунок 18. Готовый виджет
Разработка акционного блока для главной страницы сайта
Акция - это прежде всего раскрутка определенного товара т.е.
эффективная реклама. Соответственно для фирмы «ЦИТ Компьютер - Аудит» данный
блок жизненно необходим для продвижения актуальных на данный момент товаров и
услуг. В нашем случае актуальны 3 акции, графическую часть которых подготовили
заранее в стилистике каждой акции с помощью AdobePhotoshop CS5 Extended 12.0
(рис 19 и 20).
Рисунок 19. Программный код акционного блока
Рисунок 20. Готовый блок
Разработка блока актуальной информации, созданной администраторами.
Данный блок будет разработан стандартными средствами CMS Joomla.
Благодаря детальной настройке информационного контента, можно за пару действий вывести на главную страницу информацию по последним, созданным администраторами публикациям.
Благодаря данному блоку вновь пришедшие пользователи будут в
курсе последних событий фирмы «ЦИТ Компьютер - Аудит» и не пропустят важной информации
(рис 21 и 22).
Рисунок 21. Настройка модуля актуальной информации
Рисунок 22. Готовый блок актуальной информации
4. Настройка, тестирование и отладка
Тестирование - это процесс, который есть в проверке соответствия программного продукта или сайта заявленным характеристикам и требованиям, требованиям работы в разных сферах, с разнообразными нагрузками, требованиям по безопасности, требованиям по эргономике и удобству применения.
В зависимости от направленности тестирования, проверяется та или иная сторона приложения или веб-сайта. Обычно, процесс тестирования документируется в виде тестового плана и тестовых блоков. Тестовый порядок представляет направленную стратегию тестирования, методы и средства тестирования, порядок тестирования и другие характерные черты тестирования. Тест-кейсы описывают последовательные пошаговые операции проверки функционала программы или веб-сайта. Это минимальные базовые операции сверки для каждой связки или элемента приложения.
Тестирование не рассматривается, как самостоятельный объект для работы над сайтом, т.к. это инструмент маркетингового анализа сайта для последующего его беспроблемного продвижения. Итоги тестирования приравниваются к общественным успехам маркетингового анализа и применяются при перепроектировании сайта, когда это требуется, а также при планировании рекламной кампании по поисковому продвижению сайта в популярных сервисах.
Основными задачами тестирования сайта являются:
Нахождение всех недостатков сайта, которые затрудняют его маркетинговый и коммерческий показатель;
Подготовка рекомендаций, выполнение которых поможет уничтожить выявленные недостатки.
Тестирование решает несколько основных задач:
Предоставление уверенности в качестве разрабатываемого продукта и подтверждение, что все заявленные функциональные требования и потребности заказчика реализованы, приложение им соответствует и не имеет ошибок в программном коде;
Подтверждение того, что приложение способно выполняться во всех заявленных режимах работы и на всех поддерживаемых ОС или браузерах корректно и без отказов;
Гарантия того, что хранящиеся и обрабатываемые данные надежно будут защищены от постороннего доступа и «взлома» злоумышленниками;
Определение максимальной нагрузки на сервер, локальную сеть и то, что база может быть корректно обработана приложением;
Позволяет убедиться в том, что пользователь может «интуитивно» использовать внешнюю оболочку продукта, а также ваш продукт или услугу, не путаясь в сложных переходах между блоками информации и интерфейсами.
Основными целями тестирования сайта являются:
Выявление недостатков сайта, которые препятствуют его маркетинговой и коммерческой эффективности;
Подготовка рекомендаций, выполнение которых поможет устранить выявленные недостатки.
В нашем случае для проверки отказоустойчивости нашего сайта, будем использовать DOS атаку на Web Server. Для тестирования сайта был взят корпоративный сервер.(отказ в обслуживании) - это хакерская пакетная атака на вычислительную систему или веб сервер с целью привести её к отказу, т.е. создание таких условий, при которых обычные пользователи системы не смогут получить доступ к предоставляемым вами системным ресурсам или серверам, хостингам, либо данный доступ затруднён по времени. Отказ системы конструкции может быть и шагом к овладению этой самой системой (в случае, если в нештатной ситуации ПО выдаёт какую-либо отрицательную информацию - к примеру, версию, часть программного кода и т.д.).
Технические характеристики сервера представлены на рисунке
23.
Процессор
Dual Intel Xeon E5-2620
(Intel Xeon E5-2620 (Six-core 2.0ГГц, LGA2011)
Материнская плата
SuperMicro X9DRL-iF
Чипсет
Intel® C602 chipset;
QPI up to 8.0GT/s
Память
2x DDR3-1600 8Gb reg
Kingston Dual Rank KVR1333D3LD4R9S/8G
Жесткие диски
4x HITACHI HUA722010CLA330 1TB
Сетевые карты
2x Intel® 82574L
Gigabit Ethernet Controllers 1x Realtek RTL8201N PHY (dedicated IPMI)
Рисунок 23. Технические характеристики сервера
Однако чаще такие атаки это мера экономического давления на
конкретный объект простой службы, приносящей выигрыш злоумышленнику, счета от
провайдера и меры по уходу от атаки ощутимо бьют «цель» по карману. В данный
момент DoS и DDoS-атаки наиболее известны, потому что позволяют привести до
отказа почти любую конструкцию, не оставляя юридически значимых улик, чем и
пользуются злоумышленники.
Принцип DOS атаки представлен на рисунке 24.
Рисунок 24. Принцип действия DOS атаки
Благодаря специализированному ПО для DDoS атак, удалось
реализовать примерную картину поведения сервера, при посещении сайта от 1000
человек.
Показатели доступности веб страниц снизились с 0.1 мс до 0.5
мс. Ошибок в работе сайта обнаружено не было, все разделы, статьи и комментарии
работали в штатном режиме. Так же удалось смоделировать ситуацию чтения и
записи большого количества информации в нашу базу данных. Проблем с базой
данных так же не обнаружено. Что касается сервера, то он с нагрузкой в 1000
человек справляется отлично, нагрузка на аппаратную часть не возрастала свыше
37%. Система охлаждения работала в штатном для нее режиме, не повышая оборотов
скорости процессорных кулеров, что говорит о 100% стабильности всей системы.
Данный корпоративный сервер будет использоваться как
резервный, на случай выхода из строя хостинга SpaceWeb.
SpaceWeb - универсальный виртуальный хостинг для сайтов
различной сложности: интернет-магазинов, информационных ресурсов,
интернет-представительств, блогов, форумов и различных веб-сервисов.
Данный хостинг был выбран из соображений корпоративной
безопасности сайта. SpaceWeb удовлетворяет на данный момент всем стандартам безопасности
в сети Internet.
Включает в себя такие сервисы как:
Проверка SSL сертификатов.AntiVirus - дополнительная
антивирусная защита.
MOD_SECURITY - Для увеличения степени безопасности сайтов, на
хостинге работает модуль сервера apache mod_security. Данный модуль
фильтрует все запросы к сайтам, и отклоняет подозрительные запросы согласно
созданному нами списку правил. При срабатывании mod_security, сервером отдаётся
код ответа 403 (доступ запрещён) или перенаправление с кодом 302 на страницу
#"897213.files/image024.jpg">
Рисунок 25. Статистика хостинга
Целью данной дипломной работы являлось повысить эффективность
работы всего предприятия в целом, путем создания корпоративного сайта для
информирования потенциальных клиентов о необходимой им информации. В ходе
работы проведен анализ методов и способов планирования и выработана оптимальная
стратегия, которая легла в основу создания сайта. Итоговый программный продукт
позволяет предоставить новым и имеющимся потенциальным клиентам информацию об
акция предприятия, о ценах и программных продуктах, а также о договорах
регулярного сопровождения.
Позволяет исходя из информации находящейся на сайте, сделать
определенные выводы о «статусе» предприятия в целом, о его профессионализме и
подходу к своей деятельности.
В итоге, разработанный сайт полностью удовлетворил запросы
руководства предприятия «ЦИТ Компьютер - Аудит» и был размещен на стороннем веб
сервере в целях его дальнейшего использования и модернизации.
УСТАНОВКА И НАСТРОЙКА СВЯЗКИ DENWER
Устанавливаем Денвер. Он имеет нечто вроде ядра - так
называемый «пакет», занимающий около 10 MB. Все остальное поставляется в виде
расширений и дополнений.
Стандартный набор содержит множество необходимых программ и
утилит веб разработчика:
. Инсталлятор
. MySQL5 с транзакциями. . Apache, SSL, SSI
Система руководства виртуальными хостами, основанная на
шаблонах. Чтоб создать с нуля новый хост, вам необходимо лишь добавить
директорию в каталог подпапки /home, править конфигурацию и файлы не требуется,
что благоприятно сказывается на начинающих пользователях. По госту уже
поддерживаются схемы именования директорий для многих известных хостов, которые
можно в последующем добавить.
Система управления запуском и завершением всех компонентов
Денвера.- система управления MySQL через Web-интерфейс.
Эмулятор и SMTP-сервера поддерживается работа совместно с
PHP, Perl, Parser и т.д.
Запустите скачанный дистрибутив Денвера. Вы увидите на экране
окно консоли с вариантами установки пакета:
Далее спросят о том, в какой каталог вы хотели бы установить
комплект (по умолчанию применяется папка C:\WebServers, вам необходимо лишь
нажать Enter, чтобы согласиться с заданным выбором).
Настойчиво рекомендуем устанавливать комплекс в каталог
первого уровня - т.е., C:\WebServers, а не, к примеру, C:\Site\WebServers111. Дело в
том, что установщики пакетов ищут стандартный набор именно на первом каталоге
по всем дискам. И, в случае, если не находят, заставляют ввести название
директории вручную, где расположен установочник.
Далее предложат набрать название виртуального диска. Советуем
вам согласиться со значением по умолчанию (Z:). Важно, что диска с этим
названием не должно быть в операционной системе - наиболее часто так и
происходит с диском Z.
После этого начнется копирование файлов дистрибутива, а под
конец вам будет задан вопрос, как именно вы собираетесь запускать и
останавливать комплект. У вас есть две альтернативы, в большинстве случаев
выбирают 1 вариант:
1. Создавать виртуальный диск при загрузке машины
(естественно, инсталлятор позаботится, чтобы это происходило автоматически), а
при остановке серверов его не отключать. На мой взгляд, это наиболее удобный
режим, и я сам пользуюсь только им.
2. Создавать виртуальный диск только по явной команде
старта комплекса (при щелчке по ярлыку запуска на Рабочем столе). И,
соответственно, отключать диск от системы - при остановке серверов.
ЛИСТИНГ ШАБЛОНА САЙТА
<? php
/**
* J! Blank Template for Joomla by Joomla-book.ru
* @category JBlank
* @author smet.denis <admin@joomla-book.ru>
* @copyright Copyright (c) 2009-2012,
Joomla-book.ru
* @license GNU GPL
* @link http://joomla-book.ru/projects/jblank
JBlank project page
*/('_JEXEC') or die ('Restricted access');
_once (dirname(__FILE__). '/php/_code.php');
?><! doctype html>
<! - [if lt IE 7]><html>
<! - [if IE 7]><html>
<! - [if IE 8]><html>
<! - [if gt IE 8]><!-><html>
<head>
<jdoc:include type= «head» />
<! - [if lte IE 6]>
<link rel= «stylesheet» href= "<? php
echo $this->baseurl;?>/templates/<? php echo
$this->template;?>/css/ie6only.css» type= «text/css» />
<! [endif]->
<! - [if lte IE 7]>
<link rel= «stylesheet» href= "<? php
echo $this->baseurl;?>/templates/<? php echo
$this->template;?>/css/ie7only.css» type= «text/css» />
<! [endif]->
<! - [if lte IE 8]>
<link rel= «stylesheet» href= "<? php
echo $this->baseurl;?>/templates/<? php echo
$this->template;?>/css/ie8only.css» type= «text/css» />
<! [endif]->
</head>
<body>
<div>
<div>
<? php if
($this->countModules('mainmenu')):?>
<div>
<jdoc:include type= «modules» name= «mainmenu»
/>
</div>
<div>
<? php endif;?>
</div>
<div>
<div>
<div id= «logo»><jdoc:include type=
«modules» name= «logo» /></div>
<div id= «user1»><jdoc:include type=
«modules» name= «user1» /></div>
<div>Автоматизация учета<br
/></div>
<div>
<div id= «sign»><jdoc:include type=
«modules» name= «sign» /></div>
<div>
</div>
<? php if
($this->countModules('top')):?>
<div>
<div>
<div>
<div>
</div>
</div>
<? php endif;?>
<? php if (!$tpl->isFront &&
$this->countModules('breadcrumbs')):?>
<div>
<div>
<jdoc:include type= «modules» name=
«breadcrumbs» />
</div>
<div>
</div>
<? php endif;?>
<? php if ($this->countModules
('actual_1')):?>
<div>
<div>
<h3>Это актуально!</h3>
</div>
<ul id= «actual»>
<li><jdoc:include type= «modules» name=
«actual_1» /></li>
<li><jdoc:include type= «modules» name=
«actual_2» /></li>
<li><jdoc:include type= «modules» name=
«actual_3» /></li>
</ul>
<div>
</div>
<? php endif;?>
<? php if
($this->countModules('lastnews')):?>
<div>
<div>
<div>
</div>
<? php endif;?>
<? php if
($this->countModules('buttons1')):?>
<div>
<ul id= «buttons»>
<li><jdoc:include type= «modules» name=
«buttons1»/></li>
<li><jdoc:include type= «modules» name=
«buttons2»/></li>
<li><jdoc:include type= «modules» name=
«buttons3»/></li>
</ul>
<div>
</div>
<? php endif;?>
<div>
<div>
<div>
<jdoc:include type= «modules» name= «left»
style= «header» />
</div>
<div>
<? php if ($tpl->isError):?>
<div id= «joomla-message»><jdoc:include
type= «message» /></div>
<? php endif;?>
<div>
<jdoc:include type= «modules» name=
«pre_component» />
<jdoc:include type= «component» />
<jdoc:include type= «modules» name=
«post_component» style= «grid»/>
</div>
</div>
<div>
<jdoc:include type= «modules» name= «right»
style= «header» />
</div>
</div>
<div>
</div>
</div>
</div>
<div>
<div>
<ul id= «footer»>
<li>
<jdoc:include type= «modules» name= «footer_1»/>
</li>
<li>
<jdoc:include type= «modules» name=
«footer_2»/>
</li>
<li><!-
<p>
<img src= "<? php echo
$this->baseurl.'/templates/'.$this->template.'/images/1C_fran_red.png';?>»
alt= «1С: Франчайзи»/>
</p> ->
<jdoc:include type= «modules» name= «footer_3»/>
</li>
</ul>
<div>
<div style= «height:31px; padding:10px
0px»>
<div>
<! - Yandex. Metrika informer ->
<a href= «http://metrika.yandex.ru/stat/?
id=23945104& from=informer»= "_blank» rel= «nofollow»><img
src=» //bs.yandex.ru/informer/23945104/3_1_3590C6FF_1570A6FF_1_pageviews»
style= «width:88px; height:31px; border:0;» alt= «Яндекс.
Метрика» title= «Яндекс. Метрика: данные за сегодня (просмотры, визиты и
уникальные посетители)» /></a>
<! - /Yandex. Metrika informer ->
<! - Yandex. Metrika counter ->
<script type= «text/javascript»>
(function (d, w, c) {
(w[c] = w[c] || []).push (function()
{{.yaCounter23945104 = new Ya. Metrika({id:23945104,:true,:true,:true,:true});
} catch(e) {}
});
n = d.getElementsByTagName («script») [0],=
d.createElement («script»),= function () {n.parentNode.insertBefore (s,
n);};.type = «text/javascript»;.async = true;.src = (d.location.protocol ==
«https:"? «https:»: «http:») + « //mc.yandex.ru/metrika/watch.js»;
(w.opera
== «[object Opera]») {.addEventListener («DOMContentLoaded», f, false);
} else
{f();}
})
(document, window, «yandex_metrika_callbacks»);
</script>
<noscript><div><img
src=» //mc.yandex.ru/watch/23945104» style= «position:absolute; left:-9999px;»
alt=»» /></div></noscript>
<!
- /Yandex. Metrika counter ->
</div>
<div>
<script
type= «text/javascript» src= "<? php echo
$this->baseurl?>/components/orphus/orphus.js»></script>
<a
style= «color:white;» href= «http://orphus.ru» id= «orphus» target=
"_blank»>
<img
alt= «Система Orphus» src= "<? php
echo $this->baseurl?>/components/orphus/orphus.gif» border= «0» />
</a>
</div>
<div>
<a
href= «http://feeds.feedburner.com/ka35/rss»><img src=
«http://feeds.feedburner.com/~fc/ka35/rss? bg=99CCFF&
fg=444444& anim=0» height= «26» width= «88» style= «border:0» alt=»»
/></a>
</div>
<div>
<a
href= «http://feeds.feedburner.com/ka35/rss» title= «Подписаться на мой фид» rel= «alternate» type=
«application/rss+xml» style= «text-decoration:none; "><img src=»
//feedburner.google.com/fb/images/pub/feed-icon32x32.png» alt=»» style=
«border:0»/></a>
</div>
<div
style= «float:right;»>
<div>
<strong><?
php echo JFactory:getApplication()->getCfg('sitename');?></strong>
</div>
</div>
</div>
<div>
</div>
</div>
<?
php echo $tpl->renderJS();?>
<?
php if ($this->countModules('counters')):?>
<div
style= «display: none; "><jdoc:include type= «modules» name=
«counters» /></div>
<? php
endif;?>
</body>
</html>
Заключение
Список
использованных источников
1. Бэрри, Н.А. Joomla 1.5
Практическое руководство: учеб. пособие / Н.А. Бэрри. - Москва: Киселева А,
2008. - 400 с.
. Колисниченко, Д.Н.
Joomla Руководство пользователя / Д.Н. Колисниченко. - Москва: Диалектика,
2009. - 212 с.
. Куликов, В. Азбука
Joomla: обуч. пособие / В. Куликов. - Москва: 2012. - 260 с.
. Усманов, И. Защита и
редактирование сайта на CMS Joomla / И. Усманов. - Челябинск: Аркаим, 2013. - 320
с.
. Хаген, Г. 10 легких
шагов к освоению Joomla / Г. Хаген. - Санкт - Петербург: Деан, 2012. - 160 с.
. Колисниченко Д.Н.
Движок для вашего сайта / Д.Н. Колисниченко. - Москва: Олимп, 2008. - 357 с.
Приложение
1
(справочное)
Приложение
2
(справочное)