1. Основные понятия и принципы разработки Web-порталов.
1.1 Описание и системно-структурная характеристика предметной области
Веб-портал — сайт в сети интернет, который предоставляет пользователю различные интерактивные интернет-сервисы, которые работают в рамках этого сайта.
По данным маркетинговых исследований, правильным образом созданный и оформленный Web-сайт является одним из наиболее значимых, дающих максимальный эффект торговым инструментом, способом привлечь внимание потенциального покупателя или пользователя, чем успешно оперируют маркетологи. В основе использования Интернет-ресурсов для привлечения потребителей, наряду с прочими маркетинговыми инструментами, лежит принцип прямого отклика. Поэтому первое принципиальное условие для построения Web-сайта, призванного продать что-либо – это возможность заинтриговать посетителя, а, впоследствии, и побудить его предпринять какие- либо действия.
Несмотря на очевидные факты, множество веб-разработчиков игнорируют данный момент. Как следствие – посетитель сайта, просмотрев его стартовую страницу и не заинтересовавшись ее содержимым, покидает ресурс. Таким образом, даже Интернет-страницы, содержание которых несет массу полезной информации – публикаций, статей, практических советов могут никогда не подняться до надлежащего уровня посещаемости, предполагаемого его владельцами. Следовательно, уровень продаж того или иного продукта не только не возрастает, как это предполагалось, но может и существенно снизиться.
Для того чтобы обычный Web-сайт превратился в действительно результативный и надежный маркетинговый инструмент, необходимо привнести в него всего несколько небольших, но существенных изменений. Каждый квалифицированный Web-разработчик должен помнить о том факте, что в век интерактивных технологий на любого пользователя сети Интернет, являющегося потенциальным потребителем, обрушивается масса всевозможной информации, в частности, сообщений, носящих рекламный характер. Поэтому в области маркетинга существует жесткая конкуренция, выдержать которую, привлекая потенциального потребителя, можно только, путем создания действительно качественного Web-сайта. Следовательно, Web-сайт должен иметь не только привлекательный, яркий дизайн, но и содержать полезную и интригующую потенциального потребителя информацию. Содержание главной страницы сайта должно не только стимулировать посетителя перейти со стартовой страницы на оставшиеся, а в дальнейшем и совершить покупку, но и посещать ресурс впоследствии, рекомендуя его своим близким.
Сам по себе web-сайт это информационный ресурс, состоящий из связанных между собой гипертекстовых документов (HTML-страниц).
HTML-страница представляет собой текстовый файл с расширением *.html и являет собой связующее звено между веб-страницей и дополнительными технологиями, которые на ней будут использоваться.
В связи с тем, что web-страницы состоят лишь из текстовой информации, то весь графический, видео и аудио контент хранится на web-сервере в виде отдельных файлов в соответствующих форматах, а в коде страницы размещаются лишь указания на них. На основе этих указаний клиентское программное обеспечение (Web-браузер) обрабатывает эту информацию и выводит пользователю в привычном формате.
Web-сайт располагается на компьютерах с установленным специальным программным обеспечением и называются они Web-серверами.
Удобство использования web-сайта для покупателей заключается в том, что узнать информацию о товаре, услугах, ценах, специальных акциях и новых позициях, они смогут, просто зайдя на сайт фирмы в Интернете. Там же они смогут больше узнать о компании, оставить заявку на звонок с сайта, записаться на услугу и др.
Очень удобен тот факт, что на сайте пользователь сможет получить информацию о товарах и услугах круглосуточно.
Так же к преимуществам данного канала сбыта можно отнести: значительное снижение затрат, связанных с обменом информацией за счет использования более дешевых средств коммуникаций, диспетчерскую службу и значительное увеличение оперативности получения информации.
В собственности компании имеется вся необходимое оборудование и дополнительные помещения, поэтому введение новой услуги поднимет имидж фирмы, снизит затраты на единицу предоставляемой услуги, обеспечит подъем продаж за счет привлечения новых клиентов и обеспечит удобство постоянным и потенциальным клиентам.
Туристические компании, к которым также относятся и базы отдыха, обладают сложной инфраструктурой, непрерывное функционирование всех элементов которой является залогом успешной финансовой деятельности предприятия. Одним из важнейших аспектов деятельности такого предприятия является прием и обработка заявок клиентов для их последующего размещения. Обслуживающему персоналу необходимо принимать сотни и тысячи заявок от клиентов, и чаще всего персонал вынужден анализировать и оформлять самостоятельно, и как правило в бумажном виде. Этот фактор влияет на производительность работы всего предприятия. Возрастает риск чрезмерной загруженности персонала, в следствии чего могут быть совершены непредумышленные ошибки. Так же, оформление заявок от клиентов вручную и в бумажном варианте не является практичным и безопасным, как в плане утечки конфиденциальных данных клиентов, так и в плане физической сохранности непосредственно самих документов. В таком случае появляется необходимость в более надежном инструменте для обработки и хрнения данных предприятие БО ”Нептун”. В роли этого инструмента может выступать автоматизированная система для приема и обработки заявок от клиентов, позволяющая вести учет заявок пользователей, контролировать их обработку и исполнение, оптимизировать рабочее время сотрудников.
Система должна обеспечивать пользователю:
- возможность выбора номеров и домиков данной базы отдыха;
- подачу пользователями заявок на бронирование домиков и номеров;
- доступ к наиболее важной информации о предприятии;
Все этапы, касающиеся выбора домика или номера и оформление заявки о брони, выполняются самим клиентом, и необходимость задействования обслуживающего персонала на данном этапе отпадает.
Тем не менее, обслуживающий пресонал будет играть важную роль в работе системы, администратор должен иметь возможность:
просмотра отчетности и статистики.
редактирования предоставляемых услуг (добавление и удаление домов, их цен, описания и т.д.).
Прием, либо отклонение заявок от клиентов, путем внесения всей предоставленной пользователем информации в БД.
По результатам анализа предметной области можно определить следующие сущности и связи между ними (Таблица 1):
Таблица 1 Сущности БД
Название сущностей Название связей
Клиент, Заявка Отправляет
Заявка, Администратор Обрабатывает
После определения сущностей и их анализа была спроектирована инфологическая модель в виде ER-диаграммы, где сущности обозначают прямоугольниками, связи – ромбами (Рисунок 1):
Рисунок 1 – Инфологическая модель данных.
Внедрение данной системы повысит эффективность работы всего предприятия в целом: существенно ускорит процесс обработки заявок и исключит возможность их утери, позволит удобно и оперативно отслеживать, и контролировать заявки, позволит своевременно проводить анализ существующей ценовой политики и инфраструктуры в целом.
Для решения задач моделирования сложных систем, позволяющих отображать и анализировать модели деятельности широкого спектра систем, в различных разрезах, составляются необходимые диаграммы.
Контекстная диаграмма работы Web-приложения представлена на рисунке 2.
Рисунок 2-Диаграмма «Работа Web-приложения».
Входной информацией для Web-приложения является:
· сведения о клиенте (Человек, который желает оставить заявку на бронь домика);
· данные о домике (номер, цена, вместимость и т.д.);
· данные заказе (ФИО, дата брони, номер телефона);
Ресурсами, которые выполняют данную работу, являются:
· администратор;
· пользователь;
Результатом работы являются:
· сформированная заявка на бронь;
Интернет-сервис — это совокупность программных, информационных, а также медийных средств, логически связанных между собой. Веб-сайт выполняет следующие основные задачи:
реклама продукции, услуг, идей. Правильно сделанный веб-сайт с легкостью приведет клиента к заключению о необходимости покупки товара, или услуг, или идей, пропагандируемых на нем;
продажа товаров, услуг, информации, идей. У современного человека нет много времени для ходьбы по магазинам. Поэтому возможность заказа товаров и услуг, не отходя от компьютера, значительно расширяет возможности и клиента, и продавца;
бесплатное предоставление информации или услуг. На самом деле предоставление информации или услуг — это средство привлечения посетителей к данному ресурсу для получения, к примеру, статистической информации либо для показа рекламы, если это рекламная площадка;
поддержка клиентов.
Разработанная система должна представлять базу отдыха “Нептун” в Интернете, поддерживать его положительный и современный имидж, предостовлять посетителям необходимую информацию.
В контексте планируемого проекта к целям относятся:
1. увеличение рейтинга компании, узнаваемость среди подобных предложений, рост лояльности клиентов;
2. поиск партнеров и увеличение клиентурной сети;
3. наращивание объемов реализации услуг предприятия;
4. непосредственный контакт с существующими и потенциальными потребителями;
5. своевременное информирование по различным вопросам, оперативное реагирование на жалобы, предложения;
6. развитие связей с партнерами;
Разработанное программное обеспечение призвано реализовать оформление заявок на бронирование домиков БО “Нептун” и предоставление основной информации о предприятии, включая контактные данные, а также предоставить удобный интерфейс не только для пользователя, но и для администратора сайта, дав ему возможности просмотра заявок, основной статистики и наполнения информационной системы контентом.
1.2 Обоснование проектных решений по информационному обеспечению комплекса задач
Наиболее подходящей моделью для описанной предметной области является реляционная модель баз данных. Эта модель проста в использовании, так как в ней всего одна информационная конструкция, которая формализует табличное представление данных, привычное для пользователей. Также преимуществом данной модели является независимость данных. Когда необходимо изменить структуру реляционной базы данных, это, как правило, приводит к минимальным изменениям в прикладных программах.
В качестве СУБД была выбрана MySQL. MySQL – это одна из самых популярных и самых распространенных СУБД (система управления базами данных) в интернете. Она не предназначена для работы с большими объемами информации, но ее применение идеально для интернет-сайтов, как небольших, так и достаточно крупных. MySQL отличатся хорошей скоростью работы, надежностью, гибкостью. Работа с ней, как правило, не вызывает больших трудностей. Поддержка сервера MySQL автоматически включается в поставку PHP. MySQL- свободная реляционная система управления базами данных. Разработку и поддержку MySQL осуществляет корпорация Oracle, получившая права на торговую марку вместе с поглощенной Sun Microsystems, которая ранее приобрела шведскую компанию MySQL AB. Продукт распространяется как под GNU General Public License, так и под собственной коммерческой лицензией. Помимо этого, разработчики создают функциональность по заказу лицензионных пользователей. Именно благодаря такому заказу почти в самых ранних версиях появился механизм репликации.
Для непосредственного доступа к базе данных используется SQL.Структурированный Язык запросов (Structured Query Language —SQL) — это стандартный язык доступа к БД, таким как SQL Server, Oracle, MySQL, Sybase и Access. Знание SQL необходимо всем, кто хотел бы хранить и извлекать данные из БД.
Данная информационная система должна быть централизованной, т.е. все данные должны располагаться в центральном хранилище.
В Системе предлагается выделить следующие функциональные подсистемы:
- подсистема сбора, обработки и загрузки данных, которая предназначена для реализации процессов сбора данных (информации о бронировании и клиенте), приведения указанных данных к виду, необходимому для наполнения подсистемы хранения данных;
- подсистема хранения данных, которая предназначена для хранения данных в структурах, нацеленных на принятие решений;
В качестве протокола взаимодействия между компонентами Системы на транспортно-сетевом уровне необходимо использовать протокол TCP/IP.
Для организации информационного обмена между компонентами Системы должны использоваться специальные протоколы прикладного уровня, такие как: NFS, HTTP и его расширение HTTPS, NetBios/SMB, Oracle TNS.
Для организации доступа пользователей к отчетности должен использоваться протокол презентационного уровня HTTP и его расширение HTTPS.
Требования к режимам функционирования системы.
Система должна поддерживать следующие режимы функционирования:
Основной режим. В основном режиме функционирования Система должна обеспечивать:
- работу пользователей в режиме – 24 часов в день, 7 дней в неделю (24х7);
- выполнение своих функций – сбор, обработка и загрузка данных; хранение данных, предоставление отчетности.
Режим управления. В режиме управления функционирования Система должна обеспечивать:
Работу авторизованного администратора в режиме суперпользователя.
Для всех технических компонентов необходимо обеспечить регулярный и постоянный контроль состояния и техническое обслуживание.
Исходя из описания предметной области, становится ясно, что наиболее подходящим вариантом реализации системы онлайн-бронирования является создание интернет-сервиса-сайта. Для его разработки будет использоваться язык гипертекстовой разметки HTML и язык программирования PHP.
1.3 Средства разработки
HTML
Web-страницы могут существовать в любом формате, но в качестве стандарта принят Hyper Text Markup Language - язык разметки гипертекстов, предназначенный для создания форматированного текста, насыщенного изображениями, звуком, анимацией, видеоклипами и гипертекстовыми ссылками на другие документы, разбросанные как по всему Web-пространству, так и находящиеся на этом же сервере или являющиеся составной частью этого же Веб-проекта. \
Можно работать на Web без знания языка HTML, поскольку тексты HTML могут создаваться разными специальными редакторами и конвертерами. Но писать непосредственно на HTML нетрудно. Возможно, это даже легче, чем изучать HTML-редактор или конвертер, которые часто ограничены в своих возможностях, содержат ошибки или проводят плохой HTML код, который не работает на разных платформах.
Язык HTML существует в нескольких вариантах и продолжает развиваться, но конструкции HTML, скорее всего, будут использоваться и в дальнейшем. Изучая HTML и познавая его глубже, создавая документ в начале изучения HTML и расширяя его насколько это возможно, мы имеем возможность создавать Web-страницы, которые могут быть, просмотрены многими браузерами Web, как сейчас, так и в будущем. Это не исключает возможности использования других методов, например, метод расширенных возможностей, который предоставляется Google Chrome, Mozilla Firefox или некоторыми другими программами.
Работа по HTML — это способ усвоить особенности создания документов в стандартизированном языке, используя расширения, только если это действительно необходимо.
HTML был ратифицирован World Wide Web Consortium. Он поддерживается несколькими широко распространенными браузерами, и, возможно, станет основанием почти всего программного обеспечения, которое имеет отношение к Web.
PHP
Для разработки программного обеспечения используется язык программирования PHP. PHP это язык программирования, специально разработанный для написания web-приложений (сценариев). Главная область применения PHP - написание скриптов, работающих на стороне сервера; таким образом, PHP способен выполнять все то, что выполняет любая другая программа CGI, например, обрабатывать данные форм, генерировать динамические страницы или отсылать и принимать cookies. Главным фактором языка РНР является практичность. РНР должен предоставить программисту средства для быстрого и эффективного решения поставленных задач. PHP позволяет создавать качественные Web-приложения за очень короткие сроки, получая продукты, легко модифицируемые и поддерживаемые в будущем. Так же важным преимуществом PHP является то что он доступен для большинства операционных систем, включая Linux, многие модификации Unix (такие как HP-UX, Solaris и OpenBSD), Microsoft Windows, Mac OS X, RISC OS, и многие другие. Также в PHP включена поддержка большинства современных веб-серверов, таких как Apache, IIS и многих других. В принципе, подойдет любой веб-сервер, способный использовать бинарный файл FastCGI PHP, например, lighttpd или nginx. PHP может работать в качестве модуля или функционировать в качестве процессора CGI.
Таким образом, выбрав PHP, мы получаем свободу выбора операционной системы и веб-сервера. Более того, у нас появляется выбор между использованием процедурного или объектно-ориентированного программирования (ООП) или же их сочетания. Не менее значимым является то, что в PHP есть поддержка широкого круга баз данных. Создать скрипт, использующий базы данных, - невероятно просто. Можно воспользоваться расширением, специфичным для отдельной базы данных (таким как mySQL) или использовать уровень абстракции от базы данных, такой как PDO, или подсоединиться к любой базе данных, поддерживающей Открытый Стандарт Соединения Баз Данных (ODBC), с помощью одноименного расширения ODBC. Для других баз данных, таких как CouchDB, можно воспользоваться cURL или сокетами.
В первую очередь PHP используется для создания скриптов, работающих на стороне сервера, для этого его, собственно, и придумали. PHP способен решать те же задачи, что и любые другие CGI-скрипты, в том числе обрабатывать данные html-форм, динамически генерировать html страницы и тому подобное. Но есть и другие области, где может использоваться PHP.
Вторая область – это создание скриптов, выполняющихся в командной строке. То есть с помощью PHP можно создавать такие скрипты, которые будут исполняться, вне зависимости от web-сервера и браузера, на конкретной машине.
И последняя область – это создание GUI-приложений (графических интерфейсов), выполняющихся на стороне клиента.
CSS
Под термином CSS мы понимаем фразу "Каскадные Таблицы Стилей". Они внедряются в HTML-код и не требуют никаких специальных редакторов и компиляторов, ведь интерпретируются оные обычным броузером.
Каскадные таблицы стилей представляют собой описания различных HTML-элементов и созданы они для расширения свойств последних. Впервые стили были предложены WWW Consorcium'ом в рамках разработки спецификации HTML 3.0, однако реально эту шнягу стали поддерживать только в 1997 году. Насладиться CSS имели возможность лишь счастливые обладатели таких броузеров, как Netscape Navigator 4.0 и Internet Explorer 4.0.
На этом с историческими фактами позвольте завязать и приступить непосредственно к делу. CSS открывает нам новые, ранее неизвестные и недоступные грани. С их помощью мы получаем возможность более изысканно оформить свой Web-сайт, придать ему новые черты и симпатичное лицо.
Синтаксис CSS довольно прост в изучении, поэтому освоение каскадных стилей является делом достаточно легким, но весьма и весьма полезным. Для того, чтобы не оказаться голословным, я хочу привести небольшой пример. Возьмем типичную таблицу HTML и поставим атрибут border="1". После интерпретации данного кода броузером мы получим самый обыкновенный результат, к которому привык наш опытный глаз. Другое дело, что таблицы подобного рода не совместимы ни с одним мало-мальски хорошим дизайном. Ну куда годится эта псевдо-трехмерная линия, представляющая собой границу? Вот тут и приходят на помощь CSS, по средствам которых можно без лишнего гемора оформить любую таблицу на свой вкус.
JavaScript
JavaScript можно назвать одним из наиболее используемых прототипно- ориентированных, сценарных языков программирования. Данный код может выполняющихся как на стороне клиента, так и на стороне сервера. Практически не один из современных сайтов не обходится без использования данного языка программирования. JavaScript был разработан компанией Netscape для для придания интерактивности веб-страницам.
Наиболее популярные области применения JavaScript:
• динамическое создание документа с помощью сценария;
• предварительная проверка введённых пользователем данных до передачи их на сервер;
• создание динамических HTML-страниц;
• взаимодействие с пользователем при решении "локальных" задач.
MYSQL
MySQL - это самая популярная (а некоторые добавят, что еще и самая лучшая в мире) СУБД с открытым исходным кодом. На самом деле MySQL составляет все более значительную конкуренцию таким дорогостоящим гигантам, как Oracle и Microsoft SQL Server.
MySQL создана и до сих пор поддерживается шведской компанией MySQL АВ (ее сайт расположен по адресу wwwjnvsql.com). В какой-то мере MySQL выросла из разработанной ранее СУБД mSQL, которая по-прежнему существует, хотя пик ее популярности уже в прошлом. Как ни странно, но ни в этой книге, ни в какой- либо другой вы не найдете объяснения тому, что означает аббревиатура MySQL. Что касается последней части, «SQL», тут все ясно: это Structured Query Language (структурированный язык запросов) - язык, применяемый для взаимодействия с большинством существующих баз данных. Но вот префикс «Му» никак официально не расшифровывается даже в самой компании [3, с. 10]
MySQL - это реляционная система управления базами данных (РСУБД). С технической точки зрения MySQL - программа, управляющая файлами, которые составляют базу данных, но часто термин «база данных» (БД) применяется и к самой программе, и к этому набору файлов. БД - это просто совокупность взаимосвязанных данных (текстовых, числовых, двоичных), за хранение и организацию которых отвечает СУБД.
Есть много видов баз данных: от простейших, где данные хранятся в плоских файлах, до реляционных и объектно-ориентированных. Реляционная база данных содержит информацию о нескольких таблицах. Эта концепция была разработана в начале семидесятых город, а до того базы данных напоминали одну огромную электронную таблицу, где хранится буквально все. Для проектирования реляционной БД требуется больше усилий, но это окупается повышенной надежностью работы и целостностью данных.
MySQL - это программа с открытым исходным кодом, равно как и PHP и некоторые версии системы UNIX& Это означает, что вы можете бесплатно устанавливать, запускать программу и модифицировать ее исходный код (который, как и ему саму, можно запустить из Сети). Но в некоторых случаях вы все же должны заплатить за лицензию на MySQL и, в частности, тогда, когда получаете прибыль от включения MySQL в состав своего продукта. Подробнее об этом можно узнать в условиях лицензирования MySQL [3, с. 11].
MySQL состоит из нескольких частей, в том числе сервера MySQL (программы MySQL, которая, собственно, и управляет базой данных), клиента MySQL (программы MySQL, предоставляющей интерфейс к серверу) и многочисленных служебных утилит для обслуживания базы данных и иных целей. Работу с MySQL можно вести, пользуясь многими распространенными языками программирования, включая РНР, Perl и Java.
Web-сервер Apache
Apache является кроссплатформенным программным обеспечением, поддерживая такими ОС как Linux, BSD, Mac OS, Microsoft Windows.
Основными достоинствами Apache считаются надёжность и гибкость конфигурации. Он позволяет подключать внешние модули для предоставления данных, использовать СУБД для аутентификации пользователей, модифицировать сообщения об ошибках.
Ядро Apache включает в себя основные функциональные возможности, такие как обработка конфигурационных файлов, протокол HTTP и система загрузки модулей. Ядро (в отличие от модулей) полностью разрабатывается Apache Software Foundation, без участия сторонних программистов [3, с. 42].
Теоретически, ядро apache может функционировать в чистом виде, без использования модулей. Однако функциональность такого решения крайне ограничена.
Ядро Apache полностью написано на языке программирования C.
Система конфигурации Apache основана на текстовых конфигурационных файлах. Имеет три условных уровня конфигурации:
• Конфигурация сервера (httpd.conf).
• Конфигурация виртуального хоста (httpd.conf c версии 2.2 extra/httpd-vhosts.conf).
• Конфигурация уровня директории (.htaccess).
Имеет собственный язык конфигурационных файлов, основанный на блоках директив. Практически все параметры ядра могут быть изменены через конфигурационные файлы, вплоть до управления MPM. Большая часть модулей имеет собственные параметры.
Apache имеет встроенный механизм виртуальных хостов. Он позволяет полноценно обслуживать на одном IP-адресе множество сайтов (доменных имён), отображая для каждого из них собственное содержимое.
Существует множество модулей, добавляющих к Apache поддержку различных языков программирования и систем разработки.
К ним относятся:
• PHP (mod_php).
• Python (mod_python).
• Ruby (apache-ruby).
• Perl (mod_perl).
• ASP (apache-asp).?
2. Характеристика разработанного программного обеспечения