Разработка информационного обеспечения электронного документооборота

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

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 19.12.2011
Размер файла 5,5 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

, где

· Сз/пл - затраты на заработную плату оператора, рассчитанные из трудоемкости конкретной операции технологического процесса и тарифа данного оператора ( для упрощения расчетов тариф положим равным 1);

· Снр - затраты на накладные расходы, рассчитанные как величина, производная от затрат на зарплату: Снр = Сз/плЧКнр, где Кнр примем равным 0,7.

· Са - величина амортизационных отчислений на используемую технику, рассчитываемая по формуле: Са = t Ч a, где a - норма амортизационных отчислений (t примем равным 1).

Сначала вычислим затраты по базовому варианту:

Сз/пл = 47/60, Снр = 47*0,7/60 = 0,55, Са = 0,15.

Со = 47/60+0,55+0,15 = 1,48.

Затраты по предлагаемому варианту будут следующими:

Сз/пл = 12/60, Снр = 12*0,7/60 = 0,14, Са = 0,15.

Ср = 12/60+0,14+0,15 = 0,49.

Исходя из полученных результатов вычисляется показатель снижения стоимостных затрат за год: ДС = 1,48 - 0,49 =0,99. Также можно рассчитать и относительные показатели

· Km = 35/47 = 0,75;

· Kc = 0,99/1,48 = 0,67

Таким образом, наблюдается явное снижение трудовых затрат (на 75%) и стоимостных затрат (на 67%) при использовании предлагаемой информационной системы.

Далее необходимо определить затраты на разработку информационной системы. К ним относится:

· заработная плата разработчика;

· затраты на расходные материалы;

· затраты на оборудование;

· затраты на программное обеспечение;

· затраты на полное или частичное восстановление персонального компьютера при отладке программы.

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

Таблица 4 Основные показатели для вычисления затрат на разработку и отладку программы

Показатель

Значение показателя

Время разработки и отладки программы, ч.

160

Месячная заработная плата программиста за месяц, руб. (с учетом отчислений государству)

17000

Рабочих часов в месяц

176

Стоимость ПК, руб.

18000

Установленное время работы ПК, час.

17500

Размер отчислений на частичное восстановление компьютера отамортизационных отчислений, %

14

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

руб

Аналогично вычисляется стоимость работы компьютера

руб

Затраты на расходные материалы можно вычислить как сумму затрат на материалы, умноженную на процент затрат (к расходным материалам относится бумага, тонер, CD-диски

руб.

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

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

руб.

Программу предполагается использовать в компаниях, где число сотрудников превышает 100 человек. По рыночным ценам аналогичное программное средство без адаптации под конкретное предприятие и лицензией на 100-200 пользователей будет стоить в среднем 90000 руб.

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

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

где Ti - трудозатраты по базовому или предполагаемому варианту в человеко-часах, W - средняя месячная заработная плата сотрудника, работающего с системой документооборота, D - число рабочих дней, S - стоимость ПК, R - размер отчислений на восстановление компьютера, Pt - установленное время работы ПК.

Затраты на совершение операций в существующей системе составляют:

руб.

Затраты на выполнение операций в разрабатываемой системе составят:

руб

Технико-экономическое обоснование

Экономический эффект можно рассчитать как разность Ep и Eo. Он составит 101 - 26 = 75 рублей. Один пользователь в день может совершить до 40 таких операций. Таким образом, внедрение данной системы окупится минимум за

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

Соответственно годовой экономический эффект при 240 рабочих днях будет равен:

руб.

Экономическая эффективность за год составит:

Исходя из полученных результатов видно, что экономическая эффективность и эффект довольно высоки, позволяя организации значительно снизить затраты на систему документооборота. Это является основным поводом для увеличения стоимости разрабатываемого продукта в несколько раз.

3. ПРОГРАММНЫЙ РАЗДЕЛ

3.1 Функциональное обеспечение

Описание программного продукта

Система предназначена для автоматизации процессов прохождения документов в организации и предоставляет следующие возможности:

· регистрацию документов;

· распределение электронных документов между сотрудниками;

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

· создание отчетов и журналов;

· обмен электронными сообщениями между сотрудниками.

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

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

· организацию произвольного, легко изменяемого количества рабочих мест, определяемого объемом работ, характером решаемых в организации задач и числом необходимых для этого работников;

· эффективную защиту целостности информации в режиме многопользовательского доступа;

· обеспечение сохранности информации за счет ее централизованного архивирования и восстановления;

· обеспечение конфиденциальности информации на основе управления правами доступа к ней.

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

· регистрация документа - процедура создания нового документа в системе, выполняемая пользователем, имеющим право на изменение документов, - регистратором;

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

· поручение - задание, связанное с исполнением документа, выдаваемое сотруднику руководством организации;

· исполнение документа - последовательность действий сотрудника (ответственного исполнителя) или группы сотрудников (соисполнителей), выполняющих поручения по обработке документа и дальнейшей передаче последующим исполнителям;

· контроль исполнения документа - отслеживание реального прохождения документа и сроков его исполнения в организации, выполняемое специально назначенным пользователем - контролером.

Компоненты ЭИС

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

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

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

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

· отражение в системе текущей структуры организации;

· регистрация пользователей;

· просмотр системных сообщений и сообщений об ошибках;

· актуализация таблиц базы данных.

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

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

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

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

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

Пользователю можно также назначить уровень доступа к каждому из имеющихся потоков документов, включив в соответствующий список:

· просмотр документа - список пользователей, имеющих право чтения документов потока;

· редактирование документа (права регистратора) - список пользователей, наделенных правом регистрировать новые документы в данном потоке.

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

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

Концептуальная модель Схема потоков данных после внедрения системы электронного документооборота

3.2 Выбор языка программирования

Создание проекта проходило на языке программирования «C#» в среде «Sharp Develop», использующей «.Net Framework» второй версии. Это обусловлено тем, что данная среда программирования распространяется абсолютно бесплатно по лицензии GNU GPL и позволяет создавать легальные программы с любыми другими лицензиями. На мой взгляд, она мало чем уступает Microsoft Visual studio 2005 для создания небольших программ, поэтому и была выбрана в качестве среды разработки. «Сам язык «C#» является гибким и удобным, позволяя создавать в кратчайшие сроки приличные программные продукты. Встроенные в язык средства работы с памятью также облегчают труд программиста»[20]. Но имеются и недостатки у этого языка, выражающиеся в замедленной работе приложений на слабых компьютерах. Проблема связана с тем, что Just-in-time компилятор, применяющийся в «C#», запускается в момент выполнения программы и компилирует ее из Intermediate Language в командный код частями. Эта проблема упирается в саму концепцию использования промежуточного кода. Однако такой подход позволяет использовать программу, написанную на «C#» в разных операционных системах, поддерживающих .Net Framework, как-то: Windows, Linux, FreeBSD и прочие. Программисту не нужно заботиться о переносимости и доработке кода для разных платформ. Достаточно только откомпилировать программу однажды и использовать в совместимых системах.

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

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

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

База данных состоит из ряда необходимых таблиц, таких как таблица пользователей системы (Users), таблица текстовых сообщений (Messages), таблица структуры документа (Documents) и других таблиц, не говоря уже о более детальном разделении указанной структуры.

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

3.3 Проектирование системы

Так как система представляет собой клиент-серверный вариант, то проектирование программы велось параллельно в двух формах. Начнем с серверной части.

Проектирование программы-сервера

Программа-сервер документооборота выполняет несколько функций:

· обработка запросов клиентов;

· вывод служебной информации (логов);

· служит посредником между клиентом и базой данных;

· осуществляет процедуру регистрации пользователей.

Схема функционирования сервера документооборота

Запросы к серверной программе должны поступать по протоколу TCP/IP, так как данные не должны теряться по пути следования. В качестве программных средств передачи данных было решено использовать набор низкоуровневых классов Net Sockets, позволяющих работать с управляемыми соединениями. Так как клиентов в данной системе может быть несколько (программно не должно быть ограничений в количестве клиентов; их число ограничивается пропускной способностью сети и производительностью оборудования), то программа-сервер должна работать с ними по отдельности. Таким образом, планируется выделять клиентов в самостоятельные потоки, которые будут рождаться при получении сигнала о новом подключении и закрываться при отсоединении пользователя. Необходимо создать несколько возможных типов сетевых запросов, позволяющих работать в разных режимах передачи данных: отправка, получение, отправка и получение одновременно.

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

· класс интерфейса для взаимодействия с пользователем;

· класс сетевого взаимодействия с клиентами;

· класс связи с базой данных.

Все эти классы взаимосвязаны и служат для обработки команд клиентов. Сначала инициализируется сама программа, затем включаются указанные основные классы. Сетевой класс получает команды от клиента, для их выполнения использует вспомогательный класс взаимодействия с базой данных, при необходимости отправляет ответ клиенту и отражает результаты своей работы на пользовательский интерфейс. Также могут использоваться дополнительные структурные звенья. С помощью такого деления на классы реализуется инкапсуляция - это механизм программирования, объединяющий данные и код в одном блоке, предохраняющий их от вмешательства извне и неправильного использования. «Инкапсуляция позволяет объединить данные и код в объект и скрыть реализацию объекта от пользователя. При этом пользователю предоставляется только спецификация (интерфейс) объекта. Пользователь может взаимодействовать с объектом только через этот интерфейс»[38].

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

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

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

Функциональные особенности клиентской программы

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

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

· ввод документов;

· поиск информации;

· обмен текстовыми сообщениями;

· исполнение и контроль поручений и документов;

· отправка запросов на сервер и получение ответов.

Схема функционирования клиента документооборота

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

· вид документа (акт, доверенность, договор, жалоба, заявление, инструкция, письмо, поручение, приказ, распоряжение, постановление и др.);

· внутренний номер документа в организации (необходимо, если переводится в электронный вид существующая база документов организации, имеющая собственные регистрационные номера);

· контролеров по документу и поручению;

· исполнителей документа и поручения;

· само поручение (название и содержание);

· сроки исполнения документа и поручения;

· процедуру импортирования готовых документов, находящихся на различных носителях.

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

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

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

· порядковый номер документа, присвоенный системой;

· внутренний номер документа в организации;

· период даты регистрации;

· лицо, регистрировавшее документ;

· вид, поток, а также немаловажный параметр - текст документа.

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

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

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

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

Для хранения данных программы необходимо использовать реляционную базу данных. «В реляционных базах данных все данные представлены в виде простых таблиц, разбитых на строки и столбцы, на пересечении которых расположены данные. Запросы к таким таблицам возвращают таблицы, которые сами могут становиться предметом дальнейших запросов. Каждая база данных может включать несколько таблиц»[39]. Ссылающиеся друг на друга таблицы должны иметь хотя бы один столбец, называемый первичным ключом. Строки в этом столбце уникальны. Они не могут повторяться, не могут быть пустыми и эти значения позволяют отделить одну строку таблицы от любой другой. Использование реляционной базы данных обусловлено тем, что это позволяет экономить место на диске, снизить затраты на запись данных, легко манипулировать отдельными данными и логически разбить на части все множество информации. Для разбиения данных логически из вышесказанного следует поделить базу на эти основные таблицы:

· таблица документов (хранит номера, даты регистрации, исполнения, а также сами тексты документов);

· таблица текстовых сообщений (содержит отправителя, получателя, временные отметки, реквизиты электронного письма);

· таблица пользователей (данные по пользователям, внесенные через сервер документооборота);

· таблицы исполнителей, контролеров, а также прочие служебные таблицы.

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

3.4 Результаты разработки

Серверная часть ИС

Свою информационную систему я назвал «Apriori документооборот». Соответственно многие сущности данной системы будут содержать слово «Apriori». «От лат. Apriori - из предшествующего - понятие логики и теории познания, характеризующее знание, предшествующее опыту и независимое от него»[33].

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

Главное окно программы-клиента

Теперь перейдем к программе-серверу, которая должна быть установлена и настроена до начала работы пользователей. Сервер документооборота содержит 6 логически разделенных функциональных классов. Для взаимодействия с базой данных в этой программе используется специальная библиотека MySQL Connector Net версии 5.0.8.1. Эта библиотека содержит необходимые ADO.NET интерфейсы, позволяющие получить полную поддержку работы с последними версиями указанной базы данных. Ее использование обусловлено тем, что в самом «C#» нет встроенных средств для работы с MySQL. Объем кода программы-сервера в сумме составляет 3040 строк, 28204 слов с учетом комментариев, 1264 символа точки с запятой (фактически количество операторов), 62 оператор «if», 28 оператора «while».

Графически основное окно программы-сервера выглядит следующим образом:

По умолчанию при запуске сервер подключается к базе данных «Apriori», находящейся на том же компьютере, что и сама программа. Следовательно, необходимо сначала создать эту базу данных. Для этого написан специальный модуль, находящийся на закладке «БД», вызываемый по нажатию кнопки «Начальный импорт базы». Это отдельная самостоятельная программа, которая должна находиться в той же директории, что и сервер документооборота.

Модуль импорта начальных таблиц в базу данных

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

Закладка настроек соединения с базой данных

Здесь необходимо указать параметры соединения с базой данных. А именно: IP адрес сервера, содержащего базу MySQL с импортированной эталонной начальной структурой таблиц «Apriori», имя базы, логин и пароль для доступа к манипуляции таблицами. При нажатии на кнопку «Применить» в данном окне срабатывает функция, меняющая глобальную строку инициализации соединения для всей программы, что позволяет переключаться между боевой и резервной базой «на лету» в случае отказа одной из них.

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

Закладка «Пользователи»

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

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

Итак, как только занесен первый пользователь, становится возможным начать работу со стороны программы-клиента. За подключение клиента к программе-серверу отвечает класс «SServerNetwork». В нем реализован бесконечный цикл, ожидающий сигнала от клиента. Как только получена специальная команда в этот цикл, базирующаяся на принципах вышеописанной технологии TCP Sockets, создается отдельный поток для работы с клиентом в его собственном пространстве. «Поток - это независимый путь исполнения, способный выполняться одновременно с другими потоками»[36]. Таким образом, сервер ведет работу со своими клиентами параллельно, и возможные ошибки, вызванные при работе с одним клиентом, не повлияют на остальную работу в целом.

Далее, внутри потока ведется, так называемый, диалог программ клиента и сервера. Клиент посылает команды, а сервер обрабатывает их во внутреннем бесконечном цикле и посылает ответ клиенту. Сами команды созданы в XML формате, а на клиенте и сервере опознаются при помощи специальных разборщиков этого кода, встроенных в классы языка «C#».

«XML (англ. eXtensible Markup Language -- расширяемый язык разметки; произносится [экс-эм-эмл]) -- рекомендованный Консорциумом Всемирной паутины язык разметки, фактически представляющий собой свод общих синтаксических правил. XML предназначен для хранения структурированных данных (взамен существующих файлов баз данных), для обмена информацией между программами, а также для создания на его основе более специализированных языков разметки (например, XHTML), иногда называемых словарями. XML является упрощённым подмножеством языка SGML.

Целью создания XML было обеспечение совместимости при передаче структурированных данных между разными системами обработки информации, особенно при передаче таких данных через Интернет. Словари, основанные на XML (например, RDF, RSS, MathML, XHTML, SVG), сами по себе формально описаны, что позволяет программно изменять и проверять документы на основе этих словарей, не зная их семантики, то есть, не зная смыслового значения элементов»[43].

Затем класс «SServerNetwork» для выполнения задач сервера обращается к классу «MySqlOperations». Этот участок кода (MySqlOperations) служит средством общения с базой данных. Он содержит набор функций, наполненных запросами на языке SQL. Получается, что SServerNetwork вызывает MySqlOperations, записывает или читает данные базы и отправляет ответ клиенту.

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

Клиентская часть ИС

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

Клиентская часть программы более объемна по сравнению с серверной. В ней содержится 15 функциональных классов, 12 диалоговых окон, 5873 строка кода, 2762 знаков точки с запятой, 381 операторов «if» и 55 операторов «for».

Данная программа также содержит некий сетевой класс «SNetwork» для взаимодействия с программой-сервером. В нем содержатся два основных типа отправки/передачи данных: бинарные (для передачи документов, как они есть) и текстовые - основной способ пересылки XML-запросов. В основном, при сетевом взаимодействии с сервером данные передаются как имя команды и XML-строка с набором полей. Формирование такой строки происходит непосредственно на клиенте, как и разбор подобных ответов от сервера. Такой способ обмена информацией позволяет легко расширять наборы данных для отправки другой программе, а также приблизиться к стандарту, что делает программу удобочитаемой и легко понимаемой для дальнейшей доработки.

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

Диалог входа пользователя в программу

Здесь пользователь вводит свой логин, присвоенный администратором проргаммы-сервера и пароль. IP-адрес сервера, а также порт, должен сообщить администратор сети. Все эти роли (администраторов и пользователей) могут быть совмещены в одном человеке, так как данный программный продукт не требует особых навыков и знаний в компьютерных науках. Как только нажата кнопка «Подключиться», происходит соединение с сервером документооборота и проверка верности логина и пароля. В данном случае пароль так же, как и при записи в базу данных хэшируется при помощи алгоритма md5, а затем уже отправляется в сеть. Это позволяет исключить возможность перехвата пароля в чистом виде на канале связи. В случае если пользователь ввел неверно пароль, то система оповестит его об этом и предложит ввести пароль еще раз.

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

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

Рассмотрим подробнее основное окно клиентской программы.

Главное окно программы

Это окно логически разделено на 5 частей: 1) горизонтальная панель меню, 2) панель инструментов, 3) вертикальная панель категорий или закладок, 4) горизонтальная таблица данных и, наконец, 5) поле отображения данных

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

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

Процесс создания сообщения начинается с выбора пункта на панели меню «Документ -> создать сообщение» или щелчка по второй слева иконке в панели инструментов. После этого появится окно ввода текста.

Окно создания сообщения

Пользователь набирает текст сообщения в область ввода, обозначенную пунктом 3), вводит по желанию тему в область 2), а затем выбирает получателя сообщения по нажатию кнопки 1). При выполнении последнего пункта (1) появляется модальное диалоговое окно, в котором отображаются все пользователи системы. Это, так называемая, «Адресная книга».

Адресная книга

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

Детализированная информация по пользователю

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

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

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

Рассмотрим основную функцию данной программы: процедуру регистрации документов. Для входа в диалог регистрации документа необходимо нажать на пункт меню «Документ -> Зарегистрировать новый документ». На экране появится диалоговое окно выбора потока документа.

Окно выбора потока документа

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

Окно регистрации документов и поручений

В данном окне присутствует две закладки. Первая - закладка для заполнения реквизитов и импорта самого документа (1). Вторая закладка (2) Служит для регистрации поручения к документу.

Рассмотрим процесс регистрации документа и поручения. Пользователь создает документ в программе MS Word, форматирует его, сохраняет. Затем, зайдя в данное диалоговое окно, он выбирает «Вид документа» (данное поле содержит основные виды документов, которые загружаются из базы данных и могут быть легко изменены), вводит срок исполнения, контролеров и исполнителей по документу, а также внутренний номер документа, если он присутствует в организации, в соответствующие одноименные поля. Выбор контролеров и исполнителей осуществляется нажатием по кнопкам «---» и вызывает следующее диалоговое окно.

Окно выбора исполнителей и контролеров

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

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

Заполненный диалог регистрации документа

После импорта документа появляется поле редактирования, содержащее в себе компонент MS Word. Оно позволяет просмотреть и внести последние корректировки в документ.

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

Закладка поручение

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

По окончании заполнения требуемых данных документ следует сохранить. Это делается либо нажатием на единственной иконке в панели инструментов, либо по выбору пункта меню «Документ -> Сохранить». В этот момент запускается два сетевых запроса: отправка реквизитов документа в XML-строке и отправка бинарного файла документа. Перед сохранением бинарного файла в базу данных из него копируется весь текст и записывается в отдельный столбец таблицы с документами. Это сделано для возможности быстрого поиска по содержимому.

Последний этап сохранения - это присвоение документу порядкового номера в системе.

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

Сообщения контролерам документа

Контролерам доступны все сведения по документу, в том числе и имена исполнителей. Этих сведений вполне достаточно для того, чтобы проконтролировать исполнение документа. Вернемся к цифровой подписи. В поле кратких сведений по документу доступно 3 дополнительных функции: 1) просмотр самого документа, 2) цифровая подпись документа, 3) проверка существующих подписей. Пользователю предоставляется весь необходимый спектр возможностей с документом на данном этапе. Он может подписать документ, используя свой секретный ключ, который генерируется в момент создания этого пользователя. Поставив свою подпись, пользователь уже не сможет ее «стереть», а остальным сотрудникам станет доступна информация о том, что документ подписан. При нажатии кнопки 3) они смогут проверить достоверность подписи и данные по подписчику.

Сообщение о проверке подписи

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

Сообщения исполнителям документа

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

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

Окно поиска документов

В этом окне возможен поиск по всевозможным параметрам, которые хранятся в базе данных и связаны с процессом документооборота. Например, для того чтобы найти все внутренние документы, выбираем в группе «Поток документов» «Внутренние документы», нажимаем «Ок» и попадаем в закладку «Результаты поиска», где и видим все внутренние документы, зарегистрированные в системе.

Закладка результатов поиска

Здесь также можно посмотреть сам документ, его регистратора, исполнителей, контролеров и прочее.

Стоит обратить внимание еще на две возможности этой программы:

· печать поля отображения данных;

· очистка временных файлов.

Печать производится путем нажатия пунктов меню «Документ -> Настройки печати; Предпросмотр; Печать».

Таблица 5 Диалоги печати

Чтобы узнать, сколько занимают временные файлы и удалить их, если они больше не требуются, нужно зайти в пункт меню «Сервис -> настройки».

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

Диалог системных опций

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

Системные требования

Данный программный продукт использует Just-in-time компилятор для исполнения кода программы. Это и накладывает ограничения на системные требования, так как значительно нагружает процессор дополнительной обработкой кода.

Для работы программы необходима операционная система семейства Windows (программа тестировалась на Windows 2000, Windows XP, Windows Vista) или любая другая, поддерживающая .Net Framework 2.0, а также нужен пакет MS Office 2003 для работы с Word.

Минимальные системные требования: процессор с тактовой частотой 300 MHz, 64 МБ оперативной памяти, а также 2 МБ свободного места на жестком диске для хранения установленной программы. Рекомендуемые системные требования: отдельный сервер для хранения базы данных, сервер приложений, на котором будет храниться серверная часть программы, клиентские компьютеры с тактовой частотой процессора 1000 MHz, 512 МБ оперативной памяти, 500 МБ свободного места на жестком диске для хранения временных документов.

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

Защита информации в проекте реализована на программном уровне. Здесь ведена система учетных записей пользователей с паролями. Шифрования во время соединения программ клиента и сервера не осуществляется. Но пароль не передается в открытом виде, а хэшируется при помощи алгоритма md5.

«Md5 - 128-битный алгоритм хэширования, разработанный профессором Рональдом Л. Ривестом в 1991 году. Этот алгоритм предназначен для создания «отпечатков» сообщений произвольной длины. Под хэшированием понимается преобразование входного массива данных произвольной длины в выходную битовую строку фиксированной длины таким образом, чтобы изменение входных данных приводило к непредсказуемому изменению выходных данных».

Функция получения md5-хэша

public string getMD5Hash(string input)

{

//Создание объекта для хэширования

System.Security.Cryptography.MD5CryptoServiceProvider x = new System.Security.Cryptography.MD5CryptoServiceProvider();

//получение строки в массив байт

byte[] bs = System.Text.Encoding.UTF8.GetBytes(input);

bs = x.ComputeHash(bs); //получение хэша строки

System.Text.StringBuilder s = new System.Text.StringBuilder();

//преобразование массива байт в хэш-строку

foreach (byte b in bs)

{

s.Append(b.ToString("x2").ToLower());

}

string password = s.ToString();

//вывод результата

return password;

}

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

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

Вторым важным аспектом информационной безопасности в этом проекте является механизм электронных цифровых подписей. Цифровые подписи позволяют убедиться в достоверности отправителя. Данный механизм в моей программе организован на основе алгоритма DSA (Digital Signature Algorithm). «Это алгоритм с использованием открытого ключа для создания электронной подписи, но не для шифрования. Базируется на секретном создании хэш-значения и его публичной проверке -- только один человек может создать хэш-значение сообщения, но любой может проверить его корректность. Основан на вычислительной сложности взятия логарифмов в конечных полях»[40].

Так как алгоритм использует открытый ключ, то он относится к группе асимметричных методов шифрования. Итак, действие начинается при заведении пользователя. В этот момент ему присваивается 2 ключа: открытый и секретный.

«Оба эти ключа математически взаимосвязаны, а то, какой из них будет секретным, а какой открытым определяется пользователем. При этом нет никакой разницы между тем, кому из них достанется та или иная роль. Отличия появляются на практике, и выражены они полной противоположностью действий, иными словами, текст, зашифрованный открытым ключом, может быть расшифрован только секретным, и наоборот: зашифровав секретным ключом, расшифровать удастся только открытым»[37]. Оба они хранятся в базе данных, но доступ к секретному ключу имеет только его владелец (только что заведенный пользователь). Открытый же ключ доступен всем пользователям системы и служит для проверки правильности цифровой подписи.

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

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


Подобные документы

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

    дипломная работа [233,9 K], добавлен 02.10.2013

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

    дипломная работа [1,9 M], добавлен 20.12.2013

  • Задачи системы электронного документооборота. Анализ существующих информационных систем. Методы и средства инженерии программного обеспечения. Концептуальная модель данных в BPWin. Построение инфологической модели системы документооборота "Doc_Univer".

    курсовая работа [56,1 K], добавлен 25.03.2014

  • Принципы организации документооборота управленческой деятельности. Создание компонентов систем электронного документооборота. Directum: краткое описание системы, решаемые задачи, архитектура. Безопасные приемы работы. Виды опасных и вредных факторов.

    дипломная работа [1,7 M], добавлен 17.03.2013

  • Назначение системы электронного документооборота. Построение функциональной модели поставки товаров в супермаркет. Основные свойства системы электронного документооборота ООО "Ксенокс". Особенности проектирования системы обеспечения продукцией в BPwin.

    курсовая работа [1,4 M], добавлен 15.01.2010

  • Принципы автоматизации и типы архитектур систем учета электронного документооборота. Бизнес-процессы в среде "1С: Предприятие 8". Структура информационной базы электронного документооборота деканата. Объекты и методы механизма бизнес-процессов.

    дипломная работа [773,9 K], добавлен 27.06.2013

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

    курсовая работа [54,7 K], добавлен 05.11.2011

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

    дипломная работа [5,5 M], добавлен 24.09.2012

  • Основные принципы систем электронного документооборота. Комплексный подход к созданию СЭД. Описание особенностей среды разработки. Создание программного продукта, определение трудоемкости данного процесса и необходимых для его реализации затрат.

    дипломная работа [3,2 M], добавлен 14.05.2012

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

    дипломная работа [3,1 M], добавлен 07.09.2011

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.