1 / 18

Разработка информационной системы управления документацией (Wiki-системы)

Разработка информационной системы управления документацией (Wiki-системы). программный проект по курсу «Базы данных». Скворцов А.Н. гр. 4081 /4 Рытенков А.С. гр. 4081 /3. ФТК 2008. Формулировка задачи. Структурирование документов с помощью Wiki- системы. Формулировка задачи.

Télécharger la présentation

Разработка информационной системы управления документацией (Wiki-системы)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Разработка информационной системы управления документацией (Wiki-системы) программный проект по курсу «Базы данных» Скворцов А.Н. гр. 4081/4 Рытенков А.С.гр. 4081/3 ФТК 2008

  2. Формулировка задачи Структурирование документов с помощью Wiki-системы

  3. Формулировка задачи • Хранение набора документов • Предоставление документов пользователям • Структурирование информации • Логическое связывание документов • Редактирование, сохранение истории, статистика • Управление доступом к информации • Доступ к документам через Web интерфейс Эти функции характерны для любой wiki-системы. Ярким примером может служить всем известная Wikipedia.

  4. Выбор инструментов • Язык Java и фреймворк JSF для web-разработки • IDE и фреймворк распространяются свободно • JSF – широкораспространен • - скорость разработки приложений на Java гораздо меньше, чем на python • - фреймворк JSF после первого взгляда показался сложным и иногда интуитивно не понятным (наверное оч. субъективно) • - документация к JSF могла бы быть и получше • Язык python и фреймворк django • Новая перспективная технология • Интерпретатор python и фреймворк распространяются свободно • решение на языке python скорее всего будет проигрывать по производительности аналогичному решению на java • фреймворк находится на стадии разработки, версия 1.0 еще не выпущена, хотя есть стабильная версия 0.96 • наличие хорошей online-документации • Высокая скорость разработки приложений на python/django Python — мультипарадигменный язык программирования высокого уровня со строгой, динамической типизацией и автоматическим управлением памятью.

  5. ОсобенностиDjango Структура web-приложения реализуемого с помощью фреймворка Django

  6. Особенности Django • Слой ORM • Абстракция от конкретной СУБД • Автоматическая трансляция объектов в набор таблиц • Частичная абстракция от схемы БД • Подключаемая архитектура приложений. Высокий коэффициент повторного использования кода. • Полноценный API доступа к БД с поддержкой транзакций. • Расширяемая система шаблонов и тегов • Диспетчер URL на регулярных выражениях • Встроенный административный интерфейс Django - это свободный программный каркас для создания веб-приложений, названый в честь джазового гитариста Джанго Рейнхардта.

  7. Реализация основных функций • Хранение • Отображение документов • Версионность • Список версий • Оптимистичная блокировка при редактировании • Отчет об истории изменений страницы Основные функции простой wiki-системы можно реализовать всего на двух таблицах. Если постараться, то можно объединить их и в одну

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

  9. Приложения к страницам • Привязка файлов к wiki-страницам • Хранение файлов в базе • Кодировка base64 • Форма загрузки файлов Приложения к документам могут быть разделены на два класса: бинарные файлы и картинки. Картинки используются для оформления страниц, бинарные файлы доступны только для скачивания.

  10. Подсистема управления доступом • Разделение прав доступа к объектам системы • Индивидуальное и групповое предоставление прав • Иерархическая система управления правами (возможность организации вложенных групп) • Использование стандартных методов управления django.contrib.auth • Реализация интерфейса управления иерархической системой прав • Реализация системы свободной регистрации Основными правами являются право просмотра, создания и редактирования объекта, например документа. Количество прав в системе не может быть изменено динамически

  11. Подсистема управления доступом Упрощенная схема сущностей и связей обеспечивающих работу системы прав

  12. Решенные задачи • Просмотр/Редактирование страниц • Просмотр списка страниц • Вики-разметка (mediawiki и markdown) • Загрузка файлов и картинок • Оптимистичная блокировка страниц на редактирование • Меню • Теги для страниц • Просмотр облака тегов • Категории для страниц на основе тегов • Комментарии • Просмотр изменений (diff)/редактирование конфликтов • Список ревизий и возможность просмотра конкретной ревизии Функция просмотра изменений реализована на основе стандартной библиотеки difflib

  13. Решенные задачи • Привязка файлов к wiki-страницам, хранение файлов в базе • Доступ к основной функциональности через механизм xml-rpc • Преобразовать страницу просмотра ревизий в подробный html-отчет об истории изменений страницы, написать xml-rpc метод для получения xml версии этого отчета • Авторизация, разграничение прав • регистрация пользователей • вход/выход • администрирование (назначение прав и групп) • Модификация системы авторизации, реализация иерархических групп При использовании xml-rpc,работа с базой MySQL идет напрямую, не используя механизм ORM слоя фреймворка

  14. Разработано ядро полноценной wiki-системы допускающее добавление функций В качестве основных инструментов использовался язык Python и фреймворк Django. Реализована подсистема тегирования и категорирования для структурирования информации Реализована подсистема управления правами доступа Реализован механизм доступа к данным через xml-rpc Реализован прототип простой подсистемы аудита Наличие возможности простого перехода на другую СУБД из числа поддерживаемых Django Заключение За простотой изложенного стоит большая практическая работа, многие особенности который были опущены с тем чтобы не утомлять слушателей

  15. Просмотр страницы

  16. Список ревизий

  17. Загрузка файла

  18. Редактирование группы

More Related