Пояснительная записка к учебно-исследовательской работе на тему



Скачать 303.01 Kb.
Дата26.07.2014
Размер303.01 Kb.
ТипПояснительная записка
Московский инженерно-физический институт

(государственный университет)

Факультет «Кибернетика»

Кафедра «Информатика и процессы управления»

Пояснительная записка к учебно-исследовательской работе на тему:

«Исследование подходов к созданию системы менеджмента контента

(CMS) на ВЭБ страницах с последующим интегрированием ее с CRM системой»

Выполнил:

студент группы К8-172 Великанов А.С.

Руководитель:

проф. каф.№17 Зайцев К.С.

Москва, 2008 г.

Оглавление


Введение. 4

Постановка задачи 5

1.Теоретическая часть. 6

1.1.HTTP и HTML 6

1.2.РНР и другие серверные технологии 7

1.3.JavaScript и другие клиентские технологии 8

1.4.Объектная модель документа – DOM 13

1.5.Системы управления содержанием (CMS). 14

1.5.1.Модель представления содержания. 15

1.5.2.Схема организации документов. 16

1.5.3.Механизмы работы с содержанием. 17

1.5.4.Механизмы управления дизайном страниц. 17

1.5.5.Механизмы поддержки сообществ пользователей. 18

1.5.6.Основные компоненты системы. Взаимосвязь между ними. 20

2.Практическая часть. 22

2.1.Проектировка модели базы данных системы менеджмента содержимого 22

2.2.Описание реализованных компонентов системы и принципов их работы 23

2.2.1.Организация управления документами и разделами сайта 23

2.2.2.Добавление новых документов на сайт. 26

2.2.3.Регистрация пользователей сайта 28

2.2.4. Механизмы разделения доступа 31

2.2.5.Реализация механизмов поиска по сайту 31

2.2.6.Реализация экспорта данных из БД сайта. 33

Заключение 35

Литература 37



Введение.


Основополагающий документ по развитию в РФ информационных и коммуникационных технологий (ИКТ) [7] в качестве приоритетов и перспектив развития ИКТ в нашей стране выделил две группы технологий работы с контентом:

- технологии организации и систематизации контента;

- технологии доставки и отслеживания контента.

Эти технологии вместе с технологиями ведения регламентированных процессов в интернете являются основой для построения различных систем управления контентом (CMS) на ВЭБ страницах и последующим интегрированием их с другими ИКТ системами.

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

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

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


Постановка задачи


Задачей данной работы является исследование различных информационных технологий при создании системы менеджмента контента (CMS) на ВЭБ страницах, разработка интерфейсов и базы данных данной системы, а также исследование возможности синхронизации данных с системой делопроизводства (CRM).

Иными словами, детализируя, необходимо:



  1. Изучить предметную область и способы организации данных при построении структуры менеджмента содежимым на WEB страницах

  2. Изучить возможности программных средств MySQL, PHP, AJAX, Zend Development Environment

  3. Разработать модель базы данных системы менеджмента содержимым и исследовать ее свойства.

  4. Разработать пользовательские интерфейсы для доступа к базе данных CMS системы

  5. Реализовать экспорт данных из БД созданной CMS системы в систему делопроизводства(CRM).



1.Теоретическая часть.

1.1.HTTP и HTML


Протокол HTTP поддерживается всеми веб-браузерами и прекрасно справляется с возложенными на него обязанностями, которые заключаются в доставке данных через Интернет. Всякий раз, когда вы в своем любимом браузере запрашиваете веб-страницу, это предполагает использование протокола HTTP. Например, если в адресной строке браузера Firefox ввести www.mozilla.org, то по умолчанию он предположит, что вы имели в виду http://www.mozilla.org.

Стандартный тип документа в Интернете, который веб-браузеры могут понять, проанализировать и отобразить, - это документ, написанный на языке разметки гипертекста (HyperText Markup Language - HTML). HTML - это язык описания содержимого и форматирования документа, который в основном состоит из статического текста и изображений. HTML не был предназначен для создания сложных веб-приложений с изменяющимся содержимым или дружественными интерфейсами. Для того чтобы через HTTP получить другую страницу HTML, ее надо полностью загрузить, а сама она должна существовать в указанном месте в виде статического документа еще до выполнения запроса. Очевидно, что эти ограничения не способствуют созданию чего-нибудь интересного.

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

Рис. 1 Простой запрос HTTP

Безусловно, комбинация HTTP-HTML предоставляет весьма ограниченные возможности, поскольку пользователи могут получать из Интернета только статическую информацию (страницы HTML). Чтобы восполнить нехватку функциональных возможностей, были разработаны различные дополнительные технологии.

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

Технологии, расширяющие возможности Интернета, образуют две основные категории:

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

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

1.2.РНР и другие серверные технологии


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

Очень важно понимать, что, независимо от происходящего на стороне сервера, клиент должен получить ответ на том языке, который ему понятен (что вполне очевидно), например, на языке HTML, который имеет массу ограничений, о чем мы уже говорили.

РНР - это одна из технологий, применяемых для реализации логики приложений на стороне сервера. У РНР много конкурентов, таких как ASP.NET (Active Server Pages - активные серверные страницы, веб-технология, разработанная в Microsoft), Java Server Page (JSP - серверные страницы на языке Java), Perl, ColdFusion, Ruby on Rails и других. Каждая из этих технологий предоставляет свои возможности по реализации функциональности на стороне сервера.

РНР - это не только серверная технология, но и язык, на котором программисты могут писать сценарии.



Рис. 2. Клиент запрашивает страницу РНР

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

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

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

1.3.JavaScript и другие клиентские технологии


Различные клиентские технологии отличаются друг от друга в первую очередь способом, которым они загружаются и исполняются веб-клиентом. JavaScript - это язык сценариев, код которых в виде простого текста может быть внедрен прямо в страницы на языке HTML. Страница HTML, запрашиваемая клиентом, может содержать сценарии JavaScript. Все современные браузеры поддерживают JavaScript и не требуют от пользователя установки дополнительных компонентов в систему.

JavaScript - это самостоятельный язык программирования (теоретически он не связан с разработкой веб-приложений). Он поддерживается большинством веб-клиентов на любой платформе и обладает некоторыми объектно-ориентированными возможностями. Язык JavaScript относится к интерпретирующим и потому не годится для разработки приложений с интенсивными вычислениями или драйверов устройств и должен целиком доставляться браузеру клиента для последующей интерпретации. Кроме того, он испытывает определенные проблемы с безопасностью, но при использовании в составе веб-страниц прекрасно справляется с возложенными на него задачами.

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

Среди других клиентских технологий, наделенных функциональными возможностями, можно назвать Java-апплеты и Macromedia Flash. Java-апплеты пишутся на весьма популярном и мощном языке программирования Java и исполняются виртуальной Java-машиной (Virtual Java Machine - JVM), которую необходимо отдельно устанавливать в систему. Без сомнения, Java-апплеты позволяют создавать более сложные проекты, но применительно к веб-приложениям они уже потеряли свою былую популярность, поскольку потребляют значительное количество системных ресурсов. Иногда даже сам запуск их может занимать значительное время, и вообще они слишком тяжеловесны для простых и нетребовательных веб-приложений.

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

Комбинируя HTML с серверными и клиентскими веб-технологиями, можно строить очень мощные веб-приложения.

Технология Асинхронного взаимодействия клиента с сервером - AJAX

Название AJAX — это акроним, раскрывающийся как Asynchronous JavaScript and XML и означающий асинхронный JavaScript и XML. Можно считать, что AJAX - это «JavaScript с расширенными правами», поскольку по своей сути эта технология представляет собой сценарии на языке JavaScript, которые по мере необходимости в фоновом режиме выполняют запросы к серверу и получают дополнительные данные, обновляя отдельные части страницы и тем самым исключая необходимость повторной ее загрузки целиком. На рис. 3 наглядно показано, что происходит, когда посетитель запрашивает веб-страницу, созданную с применением технологии AJAX.

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

Рис. 3. Типичный вызов AJAX

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

Технологии, из которых COCTOHT AJAX, уже реализованы во всех современных веб-браузерах, таких как Mozilla Firefox, Internet Explorer или Opera. Таким образом, клиент не требует установки каких-либо дополнительных модулей, чтобы иметь возможность взаимодействия с веб-сайтами, построенными на основе AJAX. В состав AJAX входят следующие компоненты:

• JavaScript - основной ингредиент AJAX, позволяющий реализовать функциональность на стороне клиента. В функциях JavaScript для манипулирования отдельными частями страницы HTML часто задействуется объектная модель документа (Document Object Model - DOM).

• Объект XMLHttpRequest позволяет из JavaScript организовать асинхронный доступ к серверу, благодаря чему пользователь имеет возможность продолжать работу со страницей, в то время как она выполняет некоторые действия. Под доступом к серверу подразумеваются простые запросы HTTP на получение файлов или сценариев, размещенных на сервере. Запросы HTTP просты в исполнении и не вызывают каких-либо трудностей в случае применения брандмауэров.

• Серверные технологии, которые необходимы для обслуживания запросов, поступающих от JavaScript, со стороны клиента.

Для организации взаимодействия клиент-сервер необходимо иметь возможность передавать данные и понимать, что за данные были переданы. Передача данных - это самое простое. Сценарий на стороне клиента, обладающий доступом к серверу (посредством объекта XMLHttpRequest), может передавать серверу пары имя-значение с помощью методов GET или POST. Эти данные легко могут быть прочитаны с помощью любого сценария на стороне сервера.

Сценарий на стороне сервера просто отправляет свой ответ по протоколу HTTP, но, в отличие от обычного веб-сервера, ответ должен иметь такой формат, который легко может быть разобран кодом JavaScript на стороне клиента. Наиболее удобен формат XML, который имеет свои преимущества, заключающиеся в том, что, во-первых, он получил широкое распространение и, во-вторых, существует большое количество библиотек, облегчающих работу с XML документами. Но при желании можно выбрать любой другой формат (данные могут передаваться даже в виде простого текста). Одна из известных альтернатив XML - JavaScript Object Notation (JSON - представление объектов в JavaScript).

Применение технологии AJAX для создания новых веб-приложений дает нам следующие преимущества:

• Она позволяет создавать более динамичные и более качественные веб-сайты и веб-приложения.

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

• Она задействует уже существующие технологии.

• Позволяет разработчикам применять наработанные навыки.

• Функциональные возможности AJAX прекрасно интегрируются функциональностью, предоставляемой веб-браузерами (например, навигацией по странице, приведением размеров страницы к определенным значениям и т. д.).

Наиболее общие случаи применения AJAX:

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

• Разработка простых чатов, которые не требуют наличия внешних библиотек, таких как виртуальная Java-машина или Flash.

• Добавление функциональности, аналогичной подсказкам Google,

• Создание динамических таблиц данных, которые на лету обновляют базы данных на сервере.

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

С AJAX связаны следующие потенциальные трудности:

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

• Поисковые системы могут оказаться не в состоянии проиндексировать все части вашего сайта, созданного на основе AJAX.

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

• На стороне клиента JavaScript может быть отключен, что сделает приложения AJAX нефункциональными, поэтому неплохо бы предусмотреть альтернативные варианты страниц.


1.4.Объектная модель документа – DOM


DOM (от англ. Document Object Model — «объектная модель документов») — это не зависящий от платформы и языка программный интерфейс, позволяющий программам и скриптам получить доступ к содержимому документов, а также изменять содержимое, структуру и оформление документов.

Модель DOM не накладывает ограничений на структуру документа. Любой документ известной структуры с помощью DOM может быть представлен в виде дерева узлов, каждый узел которого содержит элемент, атрибут, текстовый, графический или любой другой объект. Узлы связаны между собой отношениями родитель-потомок.

Изначально различные браузеры имели собственную модель DOM, не совместимую с остальными. Для того, чтобы обеспечить взаимную и обратную совместимость, специалисты международного консорциума W3C классифицировали эту модель по уровням, для каждого из которых была создана своя спецификация. Все эти спецификации объединены в общую группу, носящую название W3C DOM.

DOM предоставляет возможность манипулировать (создавать, изменять, анализировать, производить поиск и т. д.) XML-подобными документами, включая HTML.

На стороне клиента DOM и JavaScript применяются для:

• Манипулирования страницами HTML во время работы.

• Чтения и синтаксического анализа документов XML, принимаемых от сервера.

• Создания новых документов XML.

На стороне сервера можно применять DOM и РНР для:

• Создания документов XML, которые обычно предназначены для последующей передачи клиенту.

• Чтения документов XML, поступающих из различных источников.

1.5.Системы управления содержанием (CMS).


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

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

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

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

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

Данные структурные составляющие можно изобразить на следующей схеме:рис. 4

Основная задача систем управления содержанием заключается в обеспечении полного цикла процесса управления информацией, на всех его этапах. Функционирование системы управления содержанием в среде WEB определяет к этой системе ряд требований, таких как:

• наличие WEB интерфейса к системе;

• WEB ориентированная публикация материалов, т.е. их размещение на WEB сайте;

• возможность публикации материалов в разных форматах (различные языки разметки и формы подачи материала);

• возможность использования хранимой в системе информации другими приложениями;

• возможность использования различных источников информации.

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

1.5.1.Модель представления содержания.


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

При выборе модели перед разработчиком стоит дилемма: либо упрощать модель, упрощая с этой целью процессы управления содержанием, либо предлагать более гибкую модель, расширяя набор функциональных свойств системы. В первом случае система становится доступной широкому кругу пользователей, во втором предъявляются более высокие требования к их квалификации. Также в зависимости от выбранной модели определяются все основные аспекты построения и функционирования системы управления содержанием, такие как механизмы управления дизайном, авторизации и поддержки сообществ пользователей, управление содержанием, поддержки бизнес-процессов. Модель представления содержания является фундаментом, на котором строится система управления им. Единого подхода к построению такой модели нет, да и с учетом вышесказанного, быть не может. Практически каждая из представленных на рынке систем предлагает свой вариант построения модели содержания. Однако, несмотря на различие подходов, можно выделить некоторые общие направления, определяющие способы построения модели представления содержания. Начнем со структурной составляющей. Эта составляющая естественным образом распадается на схему организации документов (взаимосвязей между ними) и форму представления материала (документа),


1.5.2.Схема организации документов.


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

Плоская модель


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

Иерархическая модель


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

Сложно-связная модель


В этом случае материалы в системе разделяются по типам и связываются различными видами связей. Например, в системе Communiware связи бывают одноуровневыми («Автор») и иерархическими: если А связано с В, а В с С, то А в некотором смысле связано с С («относится к теме»). Предопределенный набор типов связей между документами повышает функциональные возможности системы. Введение новых классов объектов и типов связей позволяет настраивать систему под решение задач конкретной предметной области. Однако за это приходится «платить» повышающейся сложностью работы пользователей с системой.

1.5.3.Механизмы работы с содержанием.


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

1.5.4.Механизмы управления дизайном страниц.


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

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


1.5.5.Механизмы поддержки сообществ пользователей.


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

Регистрация, идентификация и аутентификация посетителей сайта.

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


Деление пользователей на разные группы с разными правами доступа к информации.


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

Персонализация.


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

Средства общения.


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

1.5.6.Основные компоненты системы. Взаимосвязь между ними.


В системе выделяются две основные компоненты:

• подсистема подготовки, редактирования, актуализации материалов и управления сайтом;

• подсистема визуализации материалов.

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

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

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


Балансировка нагрузки.


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

Информационная безопасность.


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

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



2.Практическая часть.

2.1.Проектировка модели базы данных системы менеджмента содержимого


Ниже приведена ER-диаграмма Базы Данных

рис.5

2.2.Описание реализованных компонентов системы и принципов их работы

2.2.1.Организация управления документами и разделами сайта


Для организации хранения разделов интернет страниц была выбрана древовидная структура. Для представления данной структуры в реляционной базе данных служат следующие подходы:

Деревья можно изобразить схематически либо в виде направленного графа (рис.6), либо в виде вложенного множества (рис.7).

http://i.cmpnet.com/dbmsmag/9603d061.gif http://i.cmpnet.com/dbmsmag/9603d062.gif

рис.6 рис.7

В SQL любые отношения представляются в виде набора данных. Типичный способ представления деревьев состоит в том, чтобы поместить матрицу смежности в таблицу. В которой один столбец содержит родительский узел а другой – соответствующие ему дочерние узлы (пара представляет собой дугу в графе). Данный способ и используется в данной работе для организации хранения структуры страниц сайта. Поле «parent» указывает на родительский элемент, расположенный в той же таблице. В случае если вместо родительского элемента указан 0 - данный элемент является корневым.

рис.8


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

Рассмотрим другой способ представления деревьев, который заключается в отображении их в виде вложенных множеств. Поскольку SQL является языком, основанным на теории множеств – это модель лучше. Корень дерева является множеством, которое содержит все остальные множества. Отношения между элементами отображаются в виде вложенности.

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

Другой подход состоит в прохождении по всем вершинам дерева, начиная сверху, с корня, и помечая вершины с двух сторон. Для этого вводится счетчик, который начинается с единицы. Прибывая в узел, мы помещаем число в ячейку со стороны, с которой пришли и увеличиваем счетчик. Каждый узел получит два номера, один для правой стороны и один для левой стороны. Корень всегда имеет 1 в левом столбце и удвоенное число узлов (2*n) в правом столбце. В модели вложенных множеств, разность между левыми и правыми значениями листьев - всегда 1.

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

Разработанная система изображена на рис.9. Она позволяет управлять структурой сайта: создавать элементы меню, подменю. А также менять их порядок отображения на сайте при помощи технологии drag-and-drop в AJAX.



рис. 9


Как видно из скриншота программы, элементы меню изображены в виде вложенных множеств. И для того чтобы переместить подраздел в нужный раздел нужно просто перетащить его при помощи мыши. Данный механизм реализован при помощи DOM документа и AJAX. Структура DOM документа приведена на рис.10

рис.10

2.2.2.Добавление новых документов на сайт.


Для хранения документов (HTML форм) на сайте служит таблица stories Базы Данных. Реализованные интерфейсы добавления и редактирования содержимого приведены на рис. 11 и рис.12

рис.11


рис.12

2.2.3.Регистрация пользователей сайта


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

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

Традиционным методикам проверки правильности заполнения форм свойственны следующие проблемы:

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

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

Реализованная система проверки, выполняет окончательную верификацию заполнения формы на стороне сервера после того, как она отправлена, а также реализует выполнение дополнительных проверок с применением технологии AJAX, пока пользователь путешествует по форме. Окончательная проверка на стороне сервера выполняется в соответствии с алгоритмом, блок-схема которого приведена на рис. 10.



рис.13


Заключительная проверка правильности заполнения формы на стороне сервера обязательна всегда. Если кто-либо отключит поддержку JavaScript в своем браузере, то верификация заполнения с применением технологии AJAX просто не будет выполняться. Это даст возможность злоумышленнику повредить важные данные на сервере (например, внедрив код SQL).

С помощью технологии AJAX - какое-либо поле формы теряет фокус ввода (событие onblur). Значение поля в этот момент передается серверу, который проверяет правильность данных и возвращает результат (О-в случае ошибки, 1 - в случае успеха). Если значение не пройдет проверку, пользователь получит сообщение об ошибке.

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

Безопасность AJAX в многопоточной среде

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

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

В зависимости от конкретных обстоятельств идеальное решение может заключаться в том, чтобы:

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

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

• Запланировать автоматическую отправку запросов через определенное время. Этот метод напоминает прием с очередями в том смысле, что одновременно не посылается более одного запроса, но он не гарантирует соблюдения порядка передачи запросов, как и порядка поступления ответов.

• Игнорировать сообщения.

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

Очередь строится по принципу первый пришел - первый ушел (First-In, First-Out - FIFO). Это гарантирует, что запросы будут отправляться серверу в требуемом порядке.

2.2.4. Механизмы разделения доступа


Проект реализует следующие функциональные возможности:

• Регистрация и аутентификация администраторов сайта

• Управление паролями

• Разделение прав на доступ к управлению различными страницами

Реализованный механизм управления модераторами и администраторами интернет представительств приведен на рис. 14

рис.14

2.2.5.Реализация механизмов поиска по сайту


Полнотекстовый поиск в СУБД MySQL на сегодняшний день поддерживается только для таблиц типа MyISAM и только для текстовых столбцов переменной длины (text и varchar). Эта возможность активируется созданием индекса типа fulltext для столбцов, по которым необходимо осуществлять поиск.

Для использования возможности полнотекстового поиска в системе CMS необходимо создать индексы fulltext для полей caption и text таблицы stories. Изменить уже существующие таблицы можно при помощи SQL-оператора alter.

ALTER TABLE stories ADD FULLTEXT together (caption, text);

Для извлечение результатов поиска используется следующий запрос к Базе Данных:

SELECT stories.text as text, stories.caption as caption, pages.name as page, pages.caption

FROM stories,pages WHERE

MATCH (stories.text,stories.caption) AGAINST('$searchitems')

AND (stories.page=pages.name);

Разработанный интерфейс поиска приведен на рис.15

рис.15


2.2.6.Реализация экспорта данных из БД сайта.


Общая схема передачи информации между серверами представлена на рис.16

рис.16


По запросу внутреннего сервера компании генерируется репликация Базы Данных в формате XML. Структура XML данных приведена на рис.17

рис.17

Заключение


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

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



  • Серверная часть: PHP, MySQL

  • Клиентская часть: AJAX , XML, JavaScript, Flash

  • Среда программирования: Zend Development Environment

  • Проектирование БД: MySQL Workbench

2. Спроектирована структура БД системы и реализованы следующие программные компоненты системы менеджмента контента:

  • Организация управления документами и разделами сайта;

  • Добавление новых документов на сайт;

  • Регистрация пользователей сайта и механизмы разделения доступа;

  • Реализация механизмов поиска по сайту;

  • Реализация экспорта данных из БД сайта.

3. Разработанная система была успешно протестирована и внедрена в опытную эксплуатацию для создания корпоративных сайтов.

Используемые в работе аппаратные и программные средства



  1. HTTP сервер: Apache

  2. Сервер Баз Данных: MySQL

  3. Среда программирования: Zend Development Environment

  4. Проектирование БД: MySQL WorkBench 5.0 OSS

  5. Администрирование БД: SQL Manager for MySQL

  6. Используемые программные средства: PHP, AJAX, XML, JAVASCRIPT, ACTIONSCRIPT

  7. Средства форматирования отображения WEB форм: HTML, CSS

Литература


  1. http://www.zend.com/en/

  2. http://ww.sql.ru

  3. К. Дж. Дейт «Введение в системы баз данных»

  4. http://www.php.net/

  5. Люк Веллинг, Лора Томсон «Разработка WEB-приложений с помощью PHP и MySQL»

  6. Кристиан Дари, Богдан Бринзаре «AJAX и PHP. Разработка динамических приложений»

  7. Перспективные направления развития российской отрасли информационно-коммуникационных технологий (Долгосрочный технологический прогноз Российский ИТ Foresight). Министерство информационных технологий и связи РФ, М:, 2007.

Похожие:

Пояснительная записка к учебно-исследовательской работе на тему iconПояснительная записка к учебно-исследовательской работе на тему

Пояснительная записка к учебно-исследовательской работе на тему iconПояснительная записка к дипломному проекту (работе) На тему Механизмы обеспечения качества обслуживания в корпоративных сетях
Анализ возможных методов проводится на основе литературных источников и нормативно-техничиских документов, относящихся к теме дипломной...
Пояснительная записка к учебно-исследовательской работе на тему iconКафедра системного анализа пояснительная записка к учебно-исследовательско

Пояснительная записка к учебно-исследовательской работе на тему iconПояснительная записка к дипломному проекту (работе)

Пояснительная записка к учебно-исследовательской работе на тему iconПояснительная записка Посылаем материал на конкурс "Дистанционный урок"
...
Пояснительная записка к учебно-исследовательской работе на тему iconПояснительная записка 3 Основные понятия 5
Требования к результатам учебно-воспитательной деятельности 8
Пояснительная записка к учебно-исследовательской работе на тему iconПояснительная записка к курсовой работе «Поиск аналога объекта проектирования»

Пояснительная записка к учебно-исследовательской работе на тему iconПояснительная записка к дипломному проекту
...
Пояснительная записка к учебно-исследовательской работе на тему iconПояснительная записка к отчету о научно-исследовательской деятельности студентов
Международная научная конференция «Иран и античный мир: политическое, культурное и экономическое взаимодействие двух цивилизаций»....
Пояснительная записка к учебно-исследовательской работе на тему iconПояснительная записка к выпускной квалификационной работе
Формирование практических навыков деревообработки у учеников 5-6 классов на уроках технологи и кружковых занятиях
Разместите кнопку на своём сайте:
ru.convdocs.org


База данных защищена авторским правом ©ru.convdocs.org 2016
обратиться к администрации
ru.convdocs.org