Автор работы: Пользователь скрыл имя, 25 Марта 2011 в 17:23, курсовая работа
Основными задачами подобной подсистемы являются разделения процессов создания, редактирования и оформления документов между пользователями системы, что позволяет более эффективно управлять цифровой интеллектуальной собственностью организации.
Если еще одно десятилетие назад можно было задуматься над управлением бумажным документооборотом, то сейчас та же проблема стоит в электронной плоскости. Только уже на гораздо более остром уровне. Не зря же наш век называется «информационным».
Введение 3
Глава 1. Теоретические основы разработки информационного сервера 6
1.1. Web-технологии как основа доставки информации в информационной системе 6
1.2. Архитектура информационного сервера 15
1.3. Принципы организации документооборота на информационном сервере 18
1.4. Средства создания информационных серверов 24
Глава 2. Подсистема организации документооборота «infobeacon» 29
2.1. Архитектура и функциональность подсистемы 29
2.2. Организация политики безопасности в рамках подсистемы 33
2.3. Компоненты подсистемы и схема хранения данных 34
Заключение 41
Список литературы 42
Приложение 1. Листинги sql-запросов по созданию таблиц 43
Приложение 2. Листинги основных php скриптов 45
Итак, поле id – индивидуальный номер статьи, writer – автор статьи, page – к какому тематическому разделу относится данная статья, headline – заголовок, story_text – основной текст, picture – адрес файла с изображением. Следующие 3 поля предназначены для работы с датой, соответственно создания, редактирования и публикации документа. Последнее поле по своей функциональности похоже на поле read из таблицы messages: оно может принимать 0 или 1. Поле принимает значение 1, когда редактор раздела нажимает ссылку «Готово», которое служит для отправки статьи администратору. То есть, когда в этом поле стоит 1, то уже не автор, не редактор не имею доступа к этому документу – он уже предназначен для проверки администратором.
Таблица writer_permissions служит для присвоения редакторам прав управления тем или иным разделам. Кстати, редакторы определяются в последней таблице writers последним полем editor.
Таблица 5. Структура таблицы writers базы данных
Поле | Тип |
username | varchar(16) |
password | varchar(16) |
full_name | text |
editor | char(1) |
Подчеркнутые поля в приведенных таблицах означают, что данное поле является индексом всей таблицы.
Итак, в своей курсовой работе я постарался собрать воедино наиболее важную и актуальную информацию по разработке информационных систем вообще и подсистему документооборота в частности.
Были исследованы и проанализированы основные принципы создания ИС, ее структура и функциональность, взаимодействие основных компонентов.
Также были рассмотрены новейшие и наиболее перспективные Web-технологии, которые уже сегодня с успехом использует при создании и обслуживании информационных серверов, содержащих в себе гигантские объемы информации.
Была
разработана, создана и протестирована
собственная подсистема документооборота,
в которой реализовались
Листинг
1. SQL-запрос создания таблиц базы данных
# БД : `content`
#
# ------------------------------
#
# Структура таблицы `keywords`
#
CREATE TABLE `keywords` (
`story` int(11) NOT NULL default '0',
`keyword` varchar(32) NOT NULL default '',
`weight` int(11) NOT NULL default '0'
) TYPE=MyISAM;
# ------------------------------
#
# Структура таблицы `messages`
#
CREATE TABLE `messages` (
`message_id` int(11) NOT NULL auto_increment,
`from_user` varchar(16) NOT NULL default '',
`to_user` varchar(16) NOT NULL default '',
`body` text,
`read` char(1) NOT NULL default '0',
`date` int(11) default NULL,
PRIMARY KEY (`message_id`)
) TYPE=MyISAM AUTO_INCREMENT=20
;
# ------------------------------
#
# Структура таблицы `pages`
#
CREATE TABLE `pages` (
`code` varchar(16) NOT NULL default '',
`description` text,
PRIMARY KEY (`code`)
) TYPE=MyISAM;
# ------------------------------
#
# Структура таблицы `stories`
#
CREATE TABLE `stories` (
`id` int(11) NOT NULL auto_increment,
`writer` varchar(16) NOT NULL default '',
`page` varchar(16) NOT NULL default '',
`headline` text,
`story_text` text,
`picture` text,
`created` int(11) default NULL,
`modified` int(11) default NULL,
`published` int(11) default NULL,
`for_admin` char(1) NOT NULL default '0',
PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=65
;
#
# Структура таблицы `writer_permissions`
#
CREATE TABLE `writer_permissions` (
`writer` varchar(16) NOT NULL default '',
`page` varchar(16) NOT NULL default ''
) TYPE=MyISAM;
# ------------------------------
#
# Структура таблицы `writers`
#
CREATE TABLE `writers` (
`username` varchar(16) NOT NULL default '',
`password` varchar(16) NOT NULL default '',
`full_name` text,
`editor` char(1) NOT NULL default '0',
PRIMARY KEY (`username`)
) TYPE=MyISAM;
Листинг
2. Файл stories.php (основной файл системы)
<?php
// **************
// Подключение
библиотеки с функциями
include('include_fns.php');
include('header.php');
// **************
// Проверка входа
в систему
if (!check_auth_user()) {
?>
<form action="login.php" method="post">
<table border="0">
<tr>
<td>Если
Вы новый пользователь, то зарегистрироваться
можно <a href=add_new_user.php>тут</a>.
</tr>
</table>
<br>
<table border="0">
<tr>
<td>Вход:</td>
</tr>
<tr>
<td>Логин:</td>
<td><input size="16" name="username"></td>
</tr>
<tr>
<td>Пароль:</td>
<td><input size="16" type="password" name="password"></td>
</tr>
</table>
<input type="submit"
value="Пуск!">
</form>
<?
}
else {
$conn = db_connect();
$w = get_writer_record($HTTP_
print 'Привет, '.$w['full_name'];
print ' (<a href="change_passwd_form.php">
print ' ';
print ' (<a href="logout.php">Выход</a>)';
print '<p>';
$sql = 'select * from stories where writer = \''.
$HTTP_SESSION_VARS['auth_user'
$result = mysql_query($sql,
$conn);
print 'Ваши статьи: ';
print mysql_num_rows($result);
print ' (<a href="story_add.php">Добавить<
print '</p><br /><br />';
if (mysql_num_rows($result)) {
print '<table border=1>';
print '<tr><th>Заголовок:</th><th>
print '<th>Дата
создания:</th><th>Последнее изменение:</th><th>Действия:</
while ($qry = mysql_fetch_array($result)) {
print '<tr>';
print '<td>';
print $qry['headline'];
print '</td>';
print '<td>';
print $qry['page'];
print '</td>';
print '<td>';
print date('M d, Y H:i', $qry['created']);
print '</td>';
print '<td>';
print date('M d, Y H:i', $qry['modified']);
print '</td>';
print '<td>';
if ($qry['published'])
print '[Напечатано '.date('M d, H:i', $qry['published']).']';
else {
if ($qry['for_admin'])
print 'Ожидает проверки администратором...';
else {
print '[<a href="story.php?story='.$qry['
print '[<a href="delete_story.php?story='
print '[<a href="keywords.php?story='.$
}
}
print '</td>';
print '</tr>';
}
print '</table>';
}
print ('<table>');
print ('<br>');
print ' (<a href="message_add.php">
print ('</table>');
// **************
// Меню редактора
$conn = db_connect();
$sql = 'select * from writers where username = \''.
$HTTP_SESSION_VARS['auth_user'
$result = mysql_query($sql, $conn);
$qry = mysql_fetch_array($result);
if ($qry['editor'])
{
editor_menu ($HTTP_SESSION_VARS['auth_
}
// **************
// Меню сообщений
$conn = db_connect();
$sql = 'SELECT * FROM messages
WHERE to_user = \''. $HTTP_SESSION_VARS['auth_user'
$result = mysql_query($sql, $conn);
$num_results = mysql_num_rows($result);
if ($qry)
{
if ($num_results) {
print ('<table>');
print ('<br><br> -------------------------- <br>');
print ('<b>Раздел сообщений:</b>');
print ('</table>');
print '<table border=1>';
print '<tr><th>От:</th><th>Текст:</
print '<th>Дата:</th><th>Действия:</