Разработка информационной системы управления...
DESCRIPTION
Разработка информационной системы управления документацией (Wiki-системы). программный проект по курсу «Базы данных». Скворцов А.Н. гр. 4081 /4 Рытенков А.С. гр. 4081 /3. ФТК 2008. Формулировка задачи. Структурирование документов с помощью Wiki- системы. Формулировка задачи. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Разработка информационной системы управления документацией (Wiki-системы)](https://reader035.vdocuments.net/reader035/viewer/2022062314/56813120550346895d978dd0/html5/thumbnails/1.jpg)
Разработка информационной системы управления документацией
(Wiki-системы)
программный проектпо курсу
«Базы данных»
Скворцов А.Н. гр. 4081/4
Рытенков А.С. гр. 4081/3
ФТК 2008
![Page 2: Разработка информационной системы управления документацией (Wiki-системы)](https://reader035.vdocuments.net/reader035/viewer/2022062314/56813120550346895d978dd0/html5/thumbnails/2.jpg)
Формулировка задачи
Структурирование документов с помощью Wiki-системы
Документ 1
Документ 2
2.2.
1.3.1.2.
2.5.
Документ 3
2.3. 3.2.
2.4.
НЕУДОБНОНЕРАЦИОНАЛЬНО
Документ 1
Ревизия 1
Ревизия 2
Ревизия 3
Документ 2
Ревизия 1
Ревизия 2
Ревизия 3
Ревизия 4
Ревизия 5
Документ 3
Ревизия 1
Ревизия 2
Категория 1 Категория 2
Тег 1 Тег 2
УДОБНО
![Page 3: Разработка информационной системы управления документацией (Wiki-системы)](https://reader035.vdocuments.net/reader035/viewer/2022062314/56813120550346895d978dd0/html5/thumbnails/3.jpg)
Формулировка задачи• Хранение набора документов• Предоставление документов
пользователям• Структурирование информации• Логическое связывание документов• Редактирование, сохранение истории,
статистика• Управление доступом к информации• Доступ к документам через Web
интерфейсЭти функции характерны для любой wiki-системы. Ярким примером может служить всем известная Wikipedia.
![Page 4: Разработка информационной системы управления документацией (Wiki-системы)](https://reader035.vdocuments.net/reader035/viewer/2022062314/56813120550346895d978dd0/html5/thumbnails/4.jpg)
Выбор инструментов• Язык Java и фреймворк JSF для web-разработки
– IDE и фреймворк распространяются свободно – JSF – широкораспространен– - скорость разработки приложений на Java гораздо меньше, чем
на python – - фреймворк JSF после первого взгляда показался сложным и
иногда интуитивно не понятным (наверное оч. субъективно) – - документация к JSF могла бы быть и получше
• Язык python и фреймворк django – Новая перспективная технология– Интерпретатор python и фреймворк распространяются свободно – решение на языке python скорее всего будет проигрывать по
производительности аналогичному решению на java – фреймворк находится на стадии разработки, версия 1.0 еще не
выпущена, хотя есть стабильная версия 0.96 – наличие хорошей online-документации– Высокая скорость разработки приложений на python/django
Python — мультипарадигменный язык программирования высокого уровня со строгой, динамической типизацией и автоматическим управлением памятью.
![Page 5: Разработка информационной системы управления документацией (Wiki-системы)](https://reader035.vdocuments.net/reader035/viewer/2022062314/56813120550346895d978dd0/html5/thumbnails/5.jpg)
Особенности Django
Структура web-приложения реализуемого с помощью фреймворка Django
WikiPageTitle WikiPageContent
view_page create_page edit_page
view_page.html create_page.html edit_page.html
Model
View
Template
DBwiki_wikipagetitle wiki_wikipagecontent
![Page 6: Разработка информационной системы управления документацией (Wiki-системы)](https://reader035.vdocuments.net/reader035/viewer/2022062314/56813120550346895d978dd0/html5/thumbnails/6.jpg)
Особенности Django
Django - это свободный программный каркас для создания веб-приложений, названый в честь джазового гитариста Джанго Рейнхардта.
• Слой ORM– Абстракция от конкретной СУБД– Автоматическая трансляция объектов в набор
таблиц– Частичная абстракция от схемы БД
• Подключаемая архитектура приложений. Высокий коэффициент повторного использования кода.
• Полноценный API доступа к БД с поддержкой транзакций. • Расширяемая система шаблонов и тегов• Диспетчер URL на регулярных выражениях • Встроенный административный интерфейс
![Page 7: Разработка информационной системы управления документацией (Wiki-системы)](https://reader035.vdocuments.net/reader035/viewer/2022062314/56813120550346895d978dd0/html5/thumbnails/7.jpg)
Реализация основных функций
Основные функции простой wiki-системы можно реализовать всего на двух таблицах. Если постараться, то можно объединить их и в одну
• Хранение
• Отображение документов
• Версионность
• Список версий
• Оптимистичная блокировка при редактировании
• Отчет об истории изменений страницы
![Page 8: Разработка информационной системы управления документацией (Wiki-системы)](https://reader035.vdocuments.net/reader035/viewer/2022062314/56813120550346895d978dd0/html5/thumbnails/8.jpg)
Система структурирования документов
Тег - ключевое слово для категоризации чего-либо. Иными словами, это метка, которой помечается один или несколько документов
• Тегирование документов• Получение списка страниц
помеченных тегом• Иерархическая система категорий (на
основе тегов)• Облако тегов
![Page 9: Разработка информационной системы управления документацией (Wiki-системы)](https://reader035.vdocuments.net/reader035/viewer/2022062314/56813120550346895d978dd0/html5/thumbnails/9.jpg)
Приложения к страницам
Приложения к документам могут быть разделены на два класса: бинарные файлы и картинки. Картинки используются для оформления страниц, бинарные файлы доступны только для скачивания.
• Привязка файлов к wiki-страницам
• Хранение файлов в базе• Кодировка base64• Форма загрузки файлов
![Page 10: Разработка информационной системы управления документацией (Wiki-системы)](https://reader035.vdocuments.net/reader035/viewer/2022062314/56813120550346895d978dd0/html5/thumbnails/10.jpg)
Подсистема управления доступом
Основными правами являются право просмотра, создания и редактирования объекта, например документа.Количество прав в системе не может быть изменено динамически
• Разделение прав доступа к объектам системы• Индивидуальное и групповое предоставление
прав• Иерархическая система управления правами
(возможность организации вложенных групп)• Использование стандартных методов управления
django.contrib.auth• Реализация интерфейса управления
иерархической системой прав• Реализация системы свободной регистрации
![Page 11: Разработка информационной системы управления документацией (Wiki-системы)](https://reader035.vdocuments.net/reader035/viewer/2022062314/56813120550346895d978dd0/html5/thumbnails/11.jpg)
Подсистема управления доступом
Упрощенная схема сущностей и связей обеспечивающих работу системы прав
![Page 12: Разработка информационной системы управления документацией (Wiki-системы)](https://reader035.vdocuments.net/reader035/viewer/2022062314/56813120550346895d978dd0/html5/thumbnails/12.jpg)
Решенные задачи
Функция просмотра изменений реализована на основе стандартной библиотеки difflib
• Просмотр/Редактирование страниц • Просмотр списка страниц • Вики-разметка (mediawiki и markdown) • Загрузка файлов и картинок • Оптимистичная блокировка страниц на редактирование • Меню • Теги для страниц • Просмотр облака тегов • Категории для страниц на основе тегов • Комментарии • Просмотр изменений (diff)/редактирование конфликтов• Список ревизий и возможность просмотра конкретной ревизии
![Page 13: Разработка информационной системы управления документацией (Wiki-системы)](https://reader035.vdocuments.net/reader035/viewer/2022062314/56813120550346895d978dd0/html5/thumbnails/13.jpg)
Решенные задачи
При использовании xml-rpc, работа с базой MySQL идет напрямую, не используя механизм ORM слоя фреймворка
• Привязка файлов к wiki-страницам, хранение файлов в базе
• Доступ к основной функциональности через механизм xml-rpc
• Преобразовать страницу просмотра ревизий в подробный html-отчет об истории изменений страницы, написать xml-rpc метод для получения xml версии этого отчета
• Авторизация, разграничение прав
• регистрация пользователей
• вход/выход
• администрирование (назначение прав и групп)
• Модификация системы авторизации, реализация иерархических групп
![Page 14: Разработка информационной системы управления документацией (Wiki-системы)](https://reader035.vdocuments.net/reader035/viewer/2022062314/56813120550346895d978dd0/html5/thumbnails/14.jpg)
Заключение• Разработано ядро полноценной wiki-системы
допускающее добавление функций• В качестве основных инструментов использовался
язык Python и фреймворк Django.• Реализована подсистема тегирования и
категорирования для структурирования информации• Реализована подсистема управления правами
доступа• Реализован механизм доступа к данным через xml-
rpc• Реализован прототип простой подсистемы аудита• Наличие возможности простого перехода на другую
СУБД из числа поддерживаемых Django
За простотой изложенного стоит большая практическая работа, многие особенности который были опущены с тем чтобы не утомлять слушателей
![Page 15: Разработка информационной системы управления документацией (Wiki-системы)](https://reader035.vdocuments.net/reader035/viewer/2022062314/56813120550346895d978dd0/html5/thumbnails/15.jpg)
Просмотр страницы
![Page 16: Разработка информационной системы управления документацией (Wiki-системы)](https://reader035.vdocuments.net/reader035/viewer/2022062314/56813120550346895d978dd0/html5/thumbnails/16.jpg)
Список ревизий
![Page 17: Разработка информационной системы управления документацией (Wiki-системы)](https://reader035.vdocuments.net/reader035/viewer/2022062314/56813120550346895d978dd0/html5/thumbnails/17.jpg)
Загрузка файла
![Page 18: Разработка информационной системы управления документацией (Wiki-системы)](https://reader035.vdocuments.net/reader035/viewer/2022062314/56813120550346895d978dd0/html5/thumbnails/18.jpg)
Редактирование группы