Реферат по предмету "Информатика, программирование"


Розробка прикладної веб базованої системи для автоматизації документообігу підприємства

Реферат
Об’єктом розробкиє система електронного документообігу.
Під час вивченняпредметної області, було проаналізовано основні концепції розробки адаптивнихсистем, проаналізовано основні фактори, що впливають на процес обмінуелектронними документами. Також було вивчені основні аналоги та їх можливості,по захисту даних, по зручності та надійності. На основі зібраних даних та наоснові аналізу існуючих систем була розроблена і реалізована системаелектроного документообігу «EFOD».
У результатіроботи була реалізована система електронного документообігу, при реалізаціїякої використовувались технології Java Servlet, JSP, сервер бази даних MySQL іWeb-сервер Apache Tomcat.

Вступ
В умовах ринковоїекономіки та зростання конкурентної боротьби помилки в діяльності будь-якоїекономічної системи (підприємства, фірми або корпорації) можуть істотнопозначитися на фінансових результатах її діяльності і навіть призвести добанкрутства. Це викликає необхідність підвищення ефективності управління зарахунок прийняття оптимальних стратегічних та оперативних управлінських рішеньта вдосконалення технології управління. Під управлінням розуміють процесзавдання мети функціонування об'єкта і вироблення впливів на цей об'єкт внапрямку досягнення поставленої мети. Мета функціонування підприємствареалізується за допомогою ряду ділових процесів, що складаються з окремихкомпонентів, взаємодія яких задається певним регламентом їх виконання.Об'єктами управління можуть бути:
а)  матеріальні;
б)  грошові;
в)  трудові або інформаційніресурси, які застосовуються при виконанні ділових процесів;
г)  самі ділові процеси, щовиконуються на підприємстві для досягнення поставленої мети;
д)  підрозділи підприємства, депротікають ділові процеси, або все підприємство в цілому.
Щоб стримуватинатиск конкуруючих підприємств і організацій, бізнес повинен успішноадаптуватися в мінливому оточенні, тому відзначається прагнення керівництвакомпаній, з одного боку, до реструктуризації систем управління та вдосконаленняпроцедур управління та ділових процесів, і, з іншого, до зменшення обсягівпаперової інформації, зниження вартості обробки інформації та підвищеннюефективності управління нею на шляху організації спільного доступу фахівців доінформації, зберігання та пошуку документів.
Нові інформаційнітехнології пропонують засоби для досягнення цих цілей за допомогою двохпідходів:
а)  реінжинірингу бізнес — процесів;
б)  переходу до безпаперовоїтехнології управління.
У даній роботірозглядається зміст другого підходу — вибору та застосування методів і засобіворганізації безпаперової технології управління, яка ґрунтується на використаннітрьох основних концепцій: переходу до електронних документів, створення системуправління документами та системи електронного документообігу.
Концепціяелектронного документа з'явилася у 80-х роках з появою на ринкумікрокомп'ютерів і першого графічного інтерфейсу користувача (GUI). Якстверджують співробітники компанії Delphi Consulting Group, вже сьогодні вдеяких областях діяльності електронним способом обробляється до 90% інформації.
На відміну віддокументів на паперових носіях з їх жорсткими рамками, статичної формою іобмеженими можливостями перехід до динамічним цифровим електронним документамзабезпечує особливі переваги при створенні, спільному використанні, поширенніта зберіганні інформації. Вони можуть збільшити продуктивність безлічі програм,що використовуються в бізнесі, зменшити вимоги до розмірів накопичувачів,скоротити або повністю вирішити проблему втрат і невірного розміщеннядокументів.
Електроннідокументи можуть одночасно використовуватися співробітниками в рамках однієїробочої групи, відділу або всього підприємства. Доступ до них здійснюється закілька секунд, а не хвилин, годин, днів, а іноді й тижнів, що трапляється привикористанні документів на паперових носіях. Прискорений доступ до стратегічноїінформації поряд зі значною економією коштів може забезпечити і важливіконкурентні переваги.
Крімперерахованого, електронні документи дозволяють перемістити центр вагикомп'ютерної технології з традиційних структурованих алфавітно-цифрових данихна потоки даних, доповнені великими обсягами неструктурованого тексту,зображень, звуку, відео і графіки. Такі документи зможуть також включатигіпертекстові зв'язку, перероблені OLE-об'єкти, текстові об'єкти і реляційнідані. Електронний документ буде обмежений такими параметрами, як його вміст,структура даних, формати і стандарти режиму передачі і, найважливіше, характерйого використання. При зміні будь-якого з цих параметрів відповідно будезмінюватися документ. Він буде відкритим, гнучким, адаптивним, багатовимірним.
За кілька роківконцепція електронного документа отримала свій розвиток від звичайногографічного образу документа до ідеї управління документами. Сьогодніелектронний документ — це форма знайомого виду, обробка якої відбувається задопомогою послідовного застосування тісно взаємопов'язаних технологій в рамкахтак званих систем управління електронними документами (СУЕД) або ElectronicDocument Management Systems (EDMS).
Потужні системикласу EDMS, що працюють найчастіше на розподілених архітектурах, засновані накомбінації технологій збору, зберігання, пошуку і розповсюдження електроннихдокументів. Значне підвищення продуктивності при використанні технології EDMSвідзначено в багатьох галузях:
а)  уряд;
б)  судочинство;
в)  юриспруденція;
г)  фармацевтика;
д)  страхування;
е)  фінансові послуги;
ж)  охорона здоров'я;
з)  виробництво;
и)  система вищої освіти.
Можна виділитинаступні основні завдання, які покликана вирішувати система управліннядокументами — вміти перекладати паперові документи в електронний вигляд і вмітиперехоплювати всі створювані електронні документи з усіх джерел надходження:
а)  з додатків, які створюютьсятекстовими процесорами, електронними таблицями, графічними процесорами,пакетами прикладних програм для настільних видавництв;
б)  факсові повідомлення, щонадійшли через факс — сервер підприємства;
в)  вхідні, вихідні й внутрішніповідомлення, що надходять з електронної пошти;
г)  звіти та інші документи, якіготують функціональні інформаційні системи, що йдуть на друк або надісланіфаксом, але їх треба перехопити і відправити у сховище електронних документів.
Багатофункціональнісистеми управління документами розвиваються під впливом переходу відобчислювальних середовищ на базі мейнфреймів, до систем на базімікропроцесорів, від монолітних закритих додатків до відкритих і інтегрованихпрограмних компонентів.
Змістом третьоїконцепції є розробка системи електронного документообігу (СЕДО), покликаної дляінтеграції всіх інформаційних додатків у єдину інформаційне середовище, щозабезпечує оперативну взаємодію всіх користувачів при виконанні ними діловихпроцедур і функцій управління необхідною інформацією. Система електронногодокументообігу повинна
а)  дозволяти планувати іскладати маршрути пересування документів;
б)  контролювати це пересування;
в)  вміти керуватидокументообігом і регулювати його.
Ця концепція маєдві стадії у своєму розвитку від втілення ідеї використання технології«docflow», пов'язаної з плануванням і управлінням документопотокамі,до технології «workflow», призначеної для управління діловимипроцесами і процедурами, при виконанні яких використовуються і створюютьсядокументи. Системи, засновані на застосуванні технології «workflow»,отримали назву систем автоматизації ділових процесів (САДП) і призначені длямоделювання ділових процесів і процедур, що виконуються на підприємстві,контролю їх виконання, оцінки та аналізу ефективності їх виконання,реструктуризації системи управління фірми.

1. Аналізпредметної області
В даний час вУкраїні спостерігається зростання інтересу до систем електронногодокументообігу (СЕД) серед державних і комерційних структур.Компанії-розробники готові надати СЕД як для невеликих організацій чисельністю5-10 осіб, так і для великих підприємств чисельністю тисячі чоловік. Всього наринку представлено більше п'ятдесяти рішень цього класу. Але на питання, заякими критеріями правильно вибирати систему, відповідь знають далеко не всі.Проведемо аналіз найбільш популярних вітчизняних розробок в областіавтоматизації документообігу і діловодства.
Сьогодні можнавиділити наступні рішення від провідних компаній-розробників, що працюють усфері автоматизації роботи з документами:
а)  Бос-Референт;
б)  ГранДок;
в)  Справа;
г)  Євфрат-Документообіг;
д)  CompanyMedia;
е)  Directum;
ж)  DIS-системи;
з)  DocsVision;
и)  LanDocs;
к)  Optima-Workflow.
СЕД — це в першучергу система, що дозволяє вирішувати усі типові завдання електронногодокументообігу для роботи з документами — реєстрація і введення документів,пошук документів, маршрутизація, створення звітів, ведення архіву, встановленняправами доступу в системі. Тому при виборі СЕД просто необхідно переконатися втому, що система дійсно забезпечує виконання таких завдань. Щоб отриматиуявлення про можливості систем, що дозволяють організувати електроннийдокументообіг, була складена таблиця з необхідним набором функціонала (таблиця1). Як показано в таблиці, всі представлені системи намагаються йти в ногу зчасом і тому володіють майже всіма необхідними функціональними можливостями.Найкращим чином з типовими завданнями електронного документообігу справляютьсясистеми Дело, Євфрат-Документообіг, DocsVision і LanDocs.
Умовні позначеннясистем в таблицях:
а)  Бос-Референт (Б-Р);
б)  ГранДок (ГД);
в)  «Дело» (Д);
г)  Євфрат-Документообіг (Є-Д);
д)  CompanyMedia (CM);
е)  Directum (D);
ж)  DIS-системи (DIS);
з)  DocsVision (DV);
и)  LanDocs (LD);
к)  Optima-Workflow (OW).
Пояснення дотаблиць:
а)  "+" — можливість є;
б)  "-" — можливостінемає;
в)  "+/-" — опціональноабо зовнішнім ПО;
г)  "-/+" — неповнафункціональність можливості.
Наступниммоментом, на який варто звернути увагу при виборі тієї чи іншої системи, єпослуги, що надаються компаніями-розробниками, і технічні вимоги до системи.Для повноцінної роботи з системою в першу чергу необхідно пройти навчання.Розробник повинен надати постійно діючу оперативну технічну підтримку. Послугиз встановлення та налаштування системи, пропоновані розробниками, єнеобов'язковими і можуть знадобитися тільки в тому випадку, якщо власніIT-фахівці не в силах самостійно здійснити адаптацію системи і введення її вексплуатацію. Знання технічних вимог до системи дозволяє заздалегідь оцінитивитрати на придбання додаткового програмного забезпечення і нового обладнання.
Сумарні витратина придбання системи складаються з вартості ліцензій програмного продукту, базиданих, послуг, додаткових модулів системи і стороннього програмногозабезпечення. За загальної вартості серверної і користувальницьких ліцензій, атакож вартості СУБД / платформи, найбільш прийнятними є системи:
а)  ГранДок;
б)  Євфрат-Документообіг;
в)  DocsVision.
Вартість базиданих і програмних платформ варіюється від 900 $ (MS SQL Server 2005) до 4000 $(Lotus Notes Domino). Винятком є система Євфрат-Документообіг, що має вбудовануСУБД Ніка (0 $) (таблиця 2). Порівняння повних витрат на впровадження системпрактично нездійсненно в силу різного підходу компаній-розробників до наданняпослуг. У примітках до таблиць можна знайти інформацію про використовуванісистемами бази даних і платформи, а також про модулі, вартість яких врахованадля систем LanDocs і CompanyMedia.
Таблиця 1.Основні можливості систем електронного документообігу
Система
можливість Б-Р Г-Д Д Є-Д CM D DIS DV LD O-W реєстрація документів + + + + + + + + + + ведення реєстраційної карточки + + + + + + + + + + ведення номенклатури справ + + + + + + + + + + сканування +/-1,2 + +/-1,5 + +/-1 -/+ + + + +/-1 розпізнавання документів +/-1,2 + +/-1,5 + +/-1 -/+ +/-1 +/-1 +/-1 +/-1 зв’язані документи + + + + + + + + + + прикріплені файли + + + + + + + + + + Робота зі словниками та довідниками + + + + + + + + + + час доручень + - + + + + + + + +
Пошук:
-  за реквізитами;
-  по виду РК документу;
-  повнотекстовий;
-  з урахуванням морфології.
+
-
+
-
+
-
+
-
+
+
+
-
+
+
+
+
+
-
+
-
+
-
+
+
+
+
-
-
+
+
+
-
+
-
+
+
+
+
+
+/- списання документу в архів + + + + + + - + + + ведення архівів електронних документів -/+ - +/-6 +/-7 -/+ -/+ - -/+ +/-9 -/+ маршрутизація + - + + + + - + + + генерація звітів +/-3 +/-4 + + +/-8 + + + + +/-4 розподілення прав доступу + + + + + + + + + + ролі + - -/+ + + + + + + +
Примітка:
1-  з застосуванням зовнішніх OCR
2-  інтеграція з CuneiForm
3-  за допомогою Report’sMan
4-  за допомогою Cristal Reports
5-  опціонально «Потокове сканування»
6-  опціонально підсистема «Архівна справа»
7-  опціонально модуль «Архіваріус»
8-  опціонально за допомогою системи «Центр звітів»
9-  опціонально система LanDocs: АРХІВ
Таблиця 2.Вартість сервера і лізенцій
Система
характеристики Б-Р Г-Д Д Є-Д CM D DIS DV LD O-W СУБД
Lotus
Notes/
Domino MS SQL Server
MS SQL Server,
Oracle 9i
НІКА
MS SQL4 Oracle 9i4
Lotus
Notes/
Domino MS SQL Server
MS SQL Server,
Oracle 9i
Lotus
Notes/
Domino MS SQL Server
MS SQL Server,
Oracle 9i
MS SQL Server,
Oracle 9i,
IBM DB2 Database Вартість СУБД, $ від 3964 від 9002 від 9002 05 від 3964 від 9002 від 9002 від 9002 від 9002 від 9002 Вартість сервера + 50 ліцензій, $ 176001 10200 121003 7200 210006 14800 197001 9200 210507 18200
Примітка:
1-  з урахуванням знижок
2-  SQL Server Standart Edition 2005 Win32 English OLP NL
3-  під MS SQL Server
4-  проектне рішення
5-  вбудована СУБД Ніка
6-  СМ-справовиробництво + СМ-Workflow (р. м. користувача)
7-  LanDocs: СПРАВОВИРОБНИЦТВО + LanDocs: СЕРВЕР ДОКУМЕНТІВ + LanDocs: МАРШРУТИЗАЦІЯ
Купуючи систему,не слід забувати про «підводні камені» її впровадження та промисловоїексплуатації. Може виявитися, що всі достоїнства функціоналу придбаної системизійдуть «нанівець», коли справа дійде до впровадження і використання системи.Наприклад, якщо система, яка купується не містить інструментарію необхідногодля настройки під потреби організації власними силами, то процес впровадженнявимагатиме участі розробника, що істотно вплине на підвищення вартостівпровадження. Адаптувати систему під потреби своєї організації доступнимизасобами без участі розробника і без додаткових витрат зможуть власники системЄвфрат-Документообіг і DocsVision. Замовникам інших систем пропонується набірстандартних установок, які можуть бути доопрацьовані розробниками або їхпартнерами, що приведе до збільшення витрат на впровадження (таблиця 3).
Вартість ітерміни впровадження є одними з факторів, що впливають на поширеність системи.У кожному конкретному впровадженні вони залежать від можливостей обраноїсистеми та структури компанії-замовника (масштаб, специфіку діяльності і т.д.), що набуває систему. За наявними оцінками (таблиця 4), на сьогоднішній деньнайбільша кількість впроваджень мають системи Євфрат-Документообіг, Дело іCompanyMedia. Система Дело популярна в державних установах завдяки тому, щовона орієнтована на автоматизацію процедур традиційного діловодства.Поширеність системи Євфрат-Документообіг пояснюється універсальністю їївикористання і гнучкою ціновою політикою. Велика кількість впровадженьCompanyMedia забезпечує модульність системи та реалізація на платформі LotusNotes / Domino.
Таблиця 3.Доступний інструментарій для налаштування системиСистема інструментарій Б-Р Г-Д Д Є-Д CM D DIS DV LD O-W дизайнер форм карточок документів + - -/+3 + +/-4 -/+7 - + -/+8 + дизайнер маршрутів/процесів + - -/+ + +/-5 -/+7 - + + + редактор звітів +/-1 +/-2 - + +/-6 -/+7 -/+ + + +/-2 створювання та зміна словників та довідників + + - + + -/+7 - + + +
Примітка:
1-  за допомогою Report’sMan
2-  за допомогою Cristal Reports
3-  можливість додавання нових реквизитів
4-  додатково, за допомогою інструментів для розробки на ActiveFrame
5-  додаткова система CM-Workflow (р. м. розробника)
6-  додатково, система «Центр звітів»
7-  за допомогою інструменту розробки IS-Builder
8-  настройки реквізитного складу реєстраційної карточки
Таблиця 4. Досвідвпровадження системСистема питання Б-Р Г-Д Д Є-Д CM D DIS DV LD O-W кількість впроваджень >100 >100 >5001 >1000 >5002 >100 >100 >100 >100 >100 чи можливе впровадження власними силами* ні ні ні/так Так Ні ні/так ні/так так/ні ні ні впровадження проектні (П) та власними (С)силами? ** П П П>С П>С П>С П П
Примітка: * — «ні/так» — жорсткі настройки, «так/ні» — необхідний спеціаліст
** — П > (> (
П – проектні впровадження
1 – враховуються тільки впровадження продукту Дело
2 – з урахуванням впроваджень продукту OfficeMedia
Припускаючи, щовпровадження пройшло успішно, слід розглянути, що ж ще є істотним дляавтоматизації електронного документообігу. Крім необхідного набору можливостей(таблиця 1) наявність у системі додаткового функціоналу (таблиця 5) може значноспростити роботу з системою всім співробітникам організації (наприклад,настройка повідомлень і нагадувань). У деяких випадках цей функціонал простонеобхідний (наприклад, WEB-доступ). Потреби замовника в автоматизації процесівобробки документів з часом можуть мінятися (наприклад, у разі зміниорганізаційної структури підприємства), що може призвести до необхідності врозвитку системи. Наприклад, виникає ситуація, коли замовник, успішноексплуатує систему в головному офісі організації, згодом приймає рішення провпровадження її у філії. Як видно з таблиці 5, найбільш повноцінний додатковийфункціонал за рахунок гнучких настроювань користувальницького інтерфейсунадають системи Бос-Референт та Optima-Workflow. За іншими параметрами впевненіпозиції займають системи Directum, DocsVision і Євфрат-Документообіг.
Таблиця 5.Додаткові можливості роботи з системоюСистема можливість Б-Р Г-Д Д Є-Д CM D DIS DV LD O-W настройка інтерфейсу користувача + -/+ -/+ +/-2 -/+ -/+ -/+ -/+ + + настройка повідомлень та нагадувань + -/+ -/+ + + -/+ + + + + інтеграція електронної пошти + - -/+ + + + -/+ + +/-8 + WEB-доступ + - +/-1 + +/-3 -/+5 + + +/-9 + територіально-розподілена робота** + - - + +4 +/-6 + +/-7 +/-10 + наявність API + - + + + + - + + +
Примітка:
* — настройка кнопок на панелі
** — наявність у системі стандартних засобів
1 – опціонально Дело-Web
2 – додатково, за допомогою інструментів для розробки на ActiveFrame
3 – опціально СМ-Портал
4 – СМ-Представництво/Філія
5 – опціально Сервер web-доступа
6 – опціально Вторинний сервер реплікації
7 – опціонально Модуль реплікації
8 – опціально LanDocs: ПОШТОВИЙ КЛІЄНТ
9 — опціально LanDocs: ІНТЕРНЕТ ДОСТУП
10 — опціально LanDocs: XML-ПІДСИСТЕМА ОБМІНУ
автоматизаціядокументообіг програмний продукт
Важливимихарактеристиками СЕД є її безпека, надійність і продуктивність (таблиця 6). Зтаблиці 6 слід, що системи Directum, DocsVision, Optima-Workflow іЄвфрат-Документообіг дозволяють забезпечити необхідний рівень надійності ібезпеки електронного документообігу. У свою чергу продуктивності розглянутих вогляді рішень достатньо, щоб автоматизувати як невеликі, так і великіструктури, тому що продуктивність в більшості випадках залежить від можливостейсерверного апаратного забезпечення. У разі створення розподіленої системиелектронного документообігу (окремі сервери бази даних для кожного підрозділу)кількість одночасно працюючих користувачів може вимірюватися тисячами. Хочетьсявідзначити, що системи Бос-Референт і CompanyMedia, реалізовані на платформіLotus Notes / Domino, пропонують найбільш розвинені засоби адміністрування прирозподіленій роботі за рахунок можливостей платформи.

Таблиця 6.Надійність, безпека
Система
можливість Б-Р Г-Д Д Є-Д CM D DIS DV LD O-W авторизація користувачів з паролем + + + + + + + + + + шифрування документів +/-1 - +/-2 + +/-3 + + + +/-4 + підтримка ЕЦП +/-1 + +/-2 + +/-3 + + + +/-4 + резервне копіювання БД за розкладом + - + + + + - + + + протокол подій + -/+ + + + + + + + +
Примітка:
1 — замовлена розробка з використанням БОСС-Крипто
2 – опціонально «ЕЦП та Шифрування»
3 – опціально за допомогою інфраструктури Locker
4 – опціально LanDocs: ПІДСИСТЕМА БЕЗПЕКИ
При виборісистеми електронного документообігу слід врахувати безліч чинників, і остаточнерішення переважно приймати на основі комплексного аналізу можливостей СЕДзалежно від вимог і специфіки замовника. У таблицях огляду всебічно розглянутінайбільш важливі аспекти вибору, впровадження та подальшого використання СЕД,що враховують крім обов'язкових функціональних можливостей, вартості і досвідуїх використання, можливості їх адаптації, модифікації та розвитку, необхідністьяких не так очевидна на початковому етапі впровадження. Критерії, за якими булирозглянуті системи — досить універсальні і відповідають завданням автоматизаціїдокументообігу як в комерційних, так і в державних установах.
Якщо говорити провибір СЕД для організації з передбачуваною кількістю одночасно працюючихкористувачів близько 50, то найбільш оптимальним рішенням бачиться системаЄвфрат-Документообіг, розробка компанії Cognitive Technologies. При помірнійвартості система, з одного боку, містить весь необхідний функціонал дляавтоматизації роботи з документами, а з іншого боку, пропонує широкі можливостіналаштування та модифікації при впровадженні розробником, партнерами і безпосередньозамовниками. Цікавою пропозицією також є система DocsVision, яка також включаєв себе весь необхідний функціонал для автоматизації документообігу і тісноінтегрована з продуктами компанії Microsoft. Система надає гнучкі можливостіпри адаптації до вимог замовника. В даний час впровадження цієї системиздійснюється через партнерську мережу компанії DocsVision, що говорить продостатню незалежність системи від розробника. Крім цього за окремими критеріямидобре показали себе системи Дело, Directum та Optima-Workflow.
Таким чином,використання аналітичних викладок, запропонованих в огляді, допоможеорганізаціям, зацікавленим в автоматизації документообігу, зробити найбільшприйнятний вибір рішення і тим самим уникнути цілого ряду«прихованих» на початковому етапі впровадження проблем, пов'язаних звикористанням систем електронного документообігу.

2. Постановказадачі
Згідно з метою дипломногопроекту необхідно розробити прикладну веб базовану систему для автоматизаціїдокументообігу деякого підприємства. Дана система повинна реалізувати функціїреєстрації, авторизації, завантаження електронних документів будь-якихформатів, зберігання їх та видачу їх користувачу для редагування та перегляду.Вимогами до системи: є кросплатформеність, невисока продуктивність, невисоканадійність, безкоштовність.
В даний чассистеми автоматизації документообігу є гарячою областю досліджень і розробок.Користь від використання таких систем для автоматизації роботи підприємстваочевидна: незалежність розташування філій, пришвидшення роботи з документами інезалежність від платформи. Встановлена програма, з підтримкою в одному місці,може використовуватися тисячами тих, хто користується нею, головною умовою єтільки можливість доступу до Internet. Така програмна система повинназабезпечувати: просту і зручну реєстрацію в системі, авторизацію користувачів всистемі, можливість додавання документу до системи, можливість надання правперегляду та корегування документів.
Робота будеприсвячена:
а)   детальному опису підсистемидодавання документу до реєстру;
б)   детальному опису підсистеминадання прав на редагування документів;
в)   детальному опису підсистемиведення статистики редагування документів;
Система повиннабути простою в установці та налаштування, надійна у роботі, невимогливою доапаратного забезпечення. Також важливим є завдання забезпечення потрібної інеобхідної функціональності системи без високої вартості.

3. Обґрунтуваннявибору технології розробки, програмного середовища та мови програмування
 
3.1 Вибірпрограмного забезпечення для створення програмного продукту
Останнім часом узв'язку з розвитком мережі Інтернет у програмуванні починає все більш різковиділятися окрема область. Спочатку вона не могла зрівнятися по своїйскладності з іншими областями програмістського ремесла, не«дотягуючи» не тільки до системного, але навіть і до прикладногопрограмування.
Мова йде пропрограмування сценаріїв для Web, або, як часто говорять, Web-програмуванні. Унаші дні, роль цієї галузі у структурі Інтернету все більше зростає, відповіднозростає і середня оцінка складності сценаріїв. Багато систем за обсягом кодунаближаються до розміру вихідних кодів серйозних пакетів прикладних програм.
Дана роботапредставляє собою систему, написану на мові Java з використанням технологійJSP, Java Servlet і бази даних MySQL. Обгрунтування вибору зазначених засобівпрограмування для реалізації роботи наведено нижче.
Мовапрограмування Java надає наступні основні можливості:
а) автоматичнекерування пам'яттю;
б) розширеніможливості обробки виняткових ситуацій;
в) багатий набірзасобів фільтрації вводу / виводу;
г) набірстандартних колекцій, таких як масив, список, стек і т. п.;
д) наявністьпростих засобів створення мережевих програмних продуктів (у тому числі звикористанням протоколу RMI);
е) наявністькласів, що дозволяють виконувати HTTP-запити й обробляти відповіді;
ж) вбудовані вмову засоби створення багатопоточних додатків;
з) уніфікованийдоступ до баз даних на основі JDBC і SQLJ;
і) підтримкашаблонів.
3.2 Вибірзасобу зберігання даних
Вибір системиуправління баз даних (СУБД) являє собою складне багатопараметричное завдання іє одним з важливих етапів при розробці програмних продуктів баз даних. Обранийпрограмний продукт повинен задовольняти як поточними, так і майбутнім потребампрограми. Для даного програмного продукту в якості СУБД була обрана СУБД MySQL.
MySQL є рішеннямдля малих і середніх програмних продуктів. Входить в LAMP. Зазвичай MySQLвикористовується як сервер, до якого звертаються локальні або видалені клієнти,проте в дистрибутив входить бібліотека внутрішнього сервера, що дозволяєвключати MySQL в автономні програми.
Гнучкість СУБДMySQL забезпечується підтримкою великої кількості типів таблиць: користувачіможуть вибрати як таблиці типу MyISAM, що підтримують повнотекстовий пошук, такі таблиці InnoDB, що підтримують транзакції на рівні окремих записів. Завдякивідкритій архітектурі і GPL-ліцензуванню, в СУБД MySQL постійно з'являютьсянові типи таблиць.
До основнихпереваг СУБД MySQL можна віднести:
а)багатопоточність, підтримка декількох одночасних запитів;
б) оптимізаціязв'язків з приєднанням багатьох даних за один прохід;
в) записифіксованої та змінної довжини;
г) гнучка системапривілеїв і паролів;
д) до 16 ключів втаблиці. Кожен ключ може мати до 15 полів;
е) підтримкаключових полів і спеціальних полів в операторі CREATE;
ж) підтримкачисел довжиною від 1 до 4 байт (ints, float, double, fixed), рядків змінноїдовжини і міток часу;
з) заснована напотоках, швидка система пам'яті;
і) всі данізберігаються у форматі ISO8859_1;
к) всі операціїроботи з рядками не звертають уваги на регістр символів у оброблюваних рядках;
л) легкістьуправління таблицею, включаючи додавання та видалення ключів і полів.
 
3.3 Вибірweb-сервера
Apache Tomcat (устарих версіях — Catalina) — програма-контейнер сервлетів, написана на мовіJava і реалізовує специфікацію сервлетів, специфікацію Java Server Pages (JSP)та Java Server Faces (JSF), які є стандартами для розробки веб-програм на мовіJava. Tomcat дозволяє запускати веб-додатки, містить ряд програм длясамо-конфігурації. Tomcat використовується в якості самостійного веб-сервера, вякості сервера контенту в поєднанні з веб-сервером Apache HTTP Server, а такожяк контейнер сервлетів в сервері програм JBoss.
3.4 Вибір IDE
Eclipse — в першучергу повноцінна Java IDE, націлена на групову розробку, має засоби роботи зсистемами контролю версій (підтримка CVS входить у поставку Eclipse, активнорозвиваються кілька варіантів SVN модулів, існує підтримка VSS та інших). Зогляду на безкоштовність, у багатьох організаціях Eclipse — корпоративнийстандарт для розробки програмного забезпечення.
Друге призначенняEclipse — служити платформою для розробки нових розширень (чим і завоювавпопулярність — будь-який розробник може розширити Eclipse своїми модулями).Такими стали C / C + + Development Tools (CDT), розроблювані інженерами QNXразом із IBM, COBOL, FORTRAN, PHP кошти від різних розробників. Безлічрозширень доповнює Eclipse менеджерами для роботи з базами даних, серверамидодатків і ін.
Eclipse написанана Java, тому є платформо-незалежним продуктом, за винятком бібліотеки SWT, якарозробляється для всіх поширених платформ. Бібліотека SWT використовуєтьсязамість стандартної для Java бібліотеки Swing. Вона повністю залежить від нижчеперерахованої платформи (операційної системи), що забезпечує швидкість інатуральний зовнішній вигляд для користувача інтерфейсу, але іноді викликаєпроблеми сумісності та стійкості програм на різних платформах.

4.Опис програмної системи
 
4.1 Підсистемареєстрації
Підсистемареєстрації потрібна для того, щоб у систему можна було додавати користувачів.На даному етапі розробки системи, користувача можна зареєструвати двомаспособами:
а)  реєстрація користувачем;
б)  реєстрація системнимадміністратором.
При першомуваріанті реєстрації користувач заходить на форму реєстрації за посиланням,вводить свої особисті дані та дані для майбутньої авторизації. Після цього йомуприсвоюється роль користувача і він може приступати до користування системою.
У другомувипадку, системний адміністратор самостійно вводить дані користувача, задаєйому роль у системі(на даному етапі присутні лише дві ролі – юзер таадміністратор, причому один користувач може об’єднувати у собі обидві ці ролі).Після додавання всієї інформації про користувача та успішної реєстраціїкористувач, після авторизації, може приступати до роботи у системі.
Програмний кодреєстрації користувача приведено нижче:
String name = (String) req.getParameter(«name»);
UserManagerImpl um = new UserManagerImpl();
User user = um.load(name);
if (user== null) {
req.getSession().setAttribute(«show_pass_error», "");
user = new User();
user.setName(name);
Date d = new Date();
boolean er= false;
List errors_date = new ArrayList();
user.setBirth(d);
user.setEmail(req.getParameter(«eMail»));
user.setFirstName(req.getParameter(«firstName»));
user.setLastName(req.getParameter(«lastName»));
user.setPassword(req.getParameter(«password»));
try {
StringTokenizer st = new StringTokenizer(req
.getParameter(«birthDay»), "-");
d.setDate(Integer.parseInt(st.nextToken()));
d.setMonth(Integer.parseInt(st.nextToken()) — 1);
d.setYear(Integer.parseInt(st.nextToken()) — 1900);
} catch (Exception e) {
errors_date.add(«error in date»);
er = true;
}
if (!er) {
UserValidator valid = new UserValidator();
List errors = valid.vilidateFields(user);
if(errors.size() > 0) {
System.out.println(«have errors»);
req.getSession().setAttribute(«errors», errors);
resp.sendRedirect(«regestry.jsp»);
} else {
RoleManagerImpl rm = new RoleManagerImpl();
Role role = rm.getRole(«user»);
user.addRole(role);
um.create(user);
role = (Role) req.getSession().getAttribute(«role»);
if (role!= null) {
try {
if(role.getRole().equals(«admin»)) {
resp.sendRedirect(«getallusers.jsp»);
} else {       resp.sendRedirect(«registergood.jsp»);
}
} catch (Exception e) {  resp.sendRedirect(«registergood.jsp»);
}
} else {
resp.sendRedirect(«registergood.jsp»);
}
}
} else {
user.setBirth(null);
req.getSession().setAttribute(«erruser», user);
req.getSession().setAttribute(«errors», errors_date);
resp.sendRedirect(«regestry.jsp»);
}
} else {
String error = «Error, same login has exist already»;
req.getSession().setAttribute(«show_pass_error», error);
resp.sendRedirect(«regestry.jsp»);   }
Адміністратор такористувач, під час реєстрації повинні ввести вісі дані коректно, тому варіаціята зберігання даних про користувача однакове. Приведений вище код будевиконаний при будь-якому з видів реєстрації.
4.2 Підсистемадодавання електронного документу
 
В основуконцепцій роботи підсистеми документообігу покладено принцип, який можнаописати наступними кроками:
а)  користувач завантажує задопомогою форми на сервер деякий документ;
б)  документ зберігається нажорсткому диску сервера;
в)  документ реєструється уреєстрі документів, що було завантажено;
г)  користувачу, що завантаживдокумент надаються права на редагування документу;
д)  користувачу, що завантаживдокумент надаються права на надання прав доступу до цього документу.
Завдяки тому, щоданні про електронний документ зберігаються у БД, а сам документ на жорсткомудиску, дана система виграє час на пошуку документів(оскільки БД не засмічуєтьсявеликими за обсягами документами), і водночас виграє час на доступі до файлів,за рахунок майже прямих посилань(детальніше це описано в описі підсистеми ведення статистикиредагування документів).
Програмний кодзавантаження документу має вигляд:
protected voiddoPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
DiskFileItemFactory fileItemFactory = new DiskFileItemFactory();
fileItemFactory.setSizeThreshold(1 * 1024); // 1 KB
fileItemFactory.setRepository(tmpDir);
ServletFileUpload uploadHandler = new ServletFileUpload(fileItemFactory);
try {
List items = uploadHandler.parseRequest(request);
Iterator itr = items.iterator();
User user = (User)request.getSession().getAttribute(«user»);
request.getSession().setAttribute(«user», user);
DocumentManagerImpl documentManagerImpl = new DocumentManagerImpl();
while(itr.hasNext()) {
FileItem item = (FileItem) itr.next();
if(!item.isFormField()) {
File file = new File(destinationDir, item.getName());
item.write(file);
Document document = new Document();
document.setName(item.getName());
document.setPath(DESTINATION_DIR_PATH+"//"+item.getName());
Set userSet = new HashSet();
userSet.add(user);
document.setUser(userSet);
documentManagerImpl.create(document);
}
}
response.sendRedirect(«index.jsp»);
} catch (FileUploadException ex) {
log(«Error encountered while parsing the request», ex);
} catch (Exception ex) {
log(«Error encountered while uploading file», ex);
}}
Менеджер роботи здокументами DocumentManagerImpl під час додавання до системи документу присвоюєйому версію номер один, та задає ім’я влсника.
4.3 Підсистемастатистки редагування документів
Підсистемастатистики редагування документів діє наступним чином: коли користувач хочевідредагувати файл, він заходить на форму відображення документів, що він можекорегувати. Після цього він може скачати документ та відредагувати його.Відредагувавши документ, його знову завантажують у систему, за допомогою форми,після чого файл помічається, як остання версія.
Останні 10 версійдокументу зберігаються на жорсткому диску. В любий момент часу користувач маєможливість отримати доступ до них. Завдяки такому методу зберігання даних,користувач завжди може перевірити, як саме редагувався документ.
Принципзберігання даних було взято з принципу роботи Subversion – централізованоїсистеми зберігання версій даних. Проте, оскільки повністю реалізація даногопринципу є дуже складною та об’ємною частиною, повністю вона не реалізована. Умайбутньому планується розробка системи Subversion, спеціально для даноїсистеми.
4.4 Підсистема надання прав наредагування документів
Підсистеманадання прав на редагування документів діє по наступному принципу:
Той, хто впершестворив документ являється його власником, та має повні права на редагування тавидалення. У випадку, коли необхідно, щоб хтось інший міг також редагувати цейдокумент, власник, переходячи на спеціальну форму, додає цю людину у списоквласників. Після цього, людина, яка отримала права на редагуваня, має такі саміправа, як і власник.
Такий підхід уелектронному документообігу дуже важливий, оскільки він виключає доступ дофайлів тих людей, які не мають на це повноважень. Тим самим підтримуєтьсяконфіденційність.
Програмний кодсервлету редагування прав користувачів приведено нижче:
public classEditDocumentRool extends HttpServlet {
@SuppressWarnings(«unchecked»)
public voiddoGet(HttpServletRequest req, HttpServletResponse resp)
throwsIOException {
String name = req.getParameter(«name»);
DocumentManagerImpl documentManagerImpl = new DocumentManagerImpl();
Document document = documentManagerImpl.load(name);
if(document== null){
document = new Document();
}
if(document.getUser()== null){
document.setUser(new HashSet());
}
UserManagerImpl userManager = new UserManagerImpl();
List users = userManager.getAll();
for(int i= 0; i
for(int j= i+1; j
if(users.get(i).getName().equals(users.get(j).getName())){
users.remove(j);
j--;
}}}
for(int i= 0; i
Iterator iter = document.getUser().iterator();
while(iter.hasNext()){
if(users.get(i).getName().equals(((User)iter.next()).getName())){
users.remove(i);
i--;
break;
}}}
users.removeAll(document.getUser());
req.getSession().setAttribute(«users», users);
req.getSession().setAttribute(«document», document);
resp.sendRedirect(«editDocumentUsers.jsp»);
}
public voiddoPost(HttpServletRequest req, HttpServletResponse resp)
throwsIOException {
String[] users = req.getParameterValues(«names»);
Document document = (Document) req.getSession()
.getAttribute(«document»);
booleanresult = (new DocumentManagerImpl()).addUsersToDocument(
document, users);
if(result) {
resp.sendRedirect(«myDocumentsListVisualisation»);
} else {
doGet(req, resp);
}}}
На даному етапірозробки, під час надання прав доступу іншому користувачу, власник документу бачитьвсіх користувачів системи у вигляді списку. Такий підхід дає можливістьнадавати права користування файлом напряму людині, а не деякій групі людей. Церобить систему більш гнучкою та безпечною. Наприклад, якщо документ відноситьсядо відділу розробки, то до нього потрібен доступ певної особи з відділуконтролю якості. При такому підході, доступ надається саме цій особі, а неусьому відділу контролю якості. Це зменшує ризик витоку інформації, а такожпокращує контроль за документами, оскільки до них мають доступ лише конкретнілюди, список яких можна отримати в любий момент часу.
В майбутньомупланується розширення системи в напрямку юзабіліті інтерфейсу, а саме,створення додаткових груп користувачів. Проте групи користувачів будутьпотрібні лише для більш сприйнятливого відображення списків користувачів.Надання прав користування все рівно буде надаватися окремо для кожної людини.Після створення таких груп, окрім покращення юзабіліті, ця система отримаєнову, перспективну форму, при якій однією системою зможе користуватися не однепідприємство, а декілька, при цьому, використовуючи апаратні можливості тількиодного сервера. Це зекономить гроші на закупівлю та обслуговування обладнання,а також, на заробітну плату обслуговуючому персоналу.

5.Керівництво з використання програми
Для того, щобповноцінно користуватися всіма функціями системи «EFOD», необхідно пройтиреєстрацію. Для цього необхідно виконати наступні дії:
а)  перейти за посиланням«реєстрація» (див. рис.5.1);
б)  заповнити поля, якізапропонує система (див. рис.5.2);
в)  після заповнення полівнатиснути кнопку «Регистрация».
У разі успішноїреєстрації, користувач переходить на головну сторінку. Для того, щоб початикористуватися системою, йому необхідно авторизуватися. Для цього необхіднонабрати свій пароль і логін і натиснути кнопку «Login».
Після цьогокористувач перейде на стартову сторінку, і справа вгорі на екрані відобразитьсяйого привітання (див. рис.5.3)
Для того, щобзагрузити документ, необхідно:
а)  вибрати в меню «uploaddocument», і перейти на сторінку, як показано на рис. 5.4;
б)  за допомогою кнопки«Выбрать…» вибрати(або написати вручну) шлях до файлу;
в)  натиснути кнопку «uploadfile» і дочекатися переходу на головну сторінку, все файл завантажено.
Для завантаженнясторінки довідки необхідно натиснути на посилання «FAQ»
Для редагуванняправ користувачів необхідно:
а)  натиснути посилання «Mydocuments»;
б)  вибрати файл та натиснути накнопку «add new user to correct» (див. рис. 5.5);
в)  поставити галочки навпротитих, хто повинен надалі мати право на доступ до файлу(див. рис. 5.5);
г)  натиснути кнопку «Confirm».
Для того, щобвидалити файл, необхідно:
а)  натиснути посилання «Mydocuments»;
б)  вибрати файл та натиснути накнопку «delete document»(див. рис. 5.5);
в)  погодитися на видаленнядокументу.
У випадку, коликористувач являється ще й адміністратором, він може переглянути розгорнутийсписок всіх користувачів системи. Для цього необхідно натиснути на посиланні«Users list». Після цього з’явиться сторінка зі списком сих користувачівсистеми. Причому на даній сторінці можна редагувати ролу користувачів, а такожвидаляти акаунти користувачів.

Висновки
В результатівиконання дипломного проекту була розроблена система електронногодокументообігу, що дозволяє скоротити час на обробку даних на паперових носіях,та автоматизувати процес документообігу. Дана система дозволяє отримати швидкийдоступ до інформації, а також захистити її від несанкціонованого доступу.
На стадіїпроектування системи був проведений аналіз систем такого класу. Оцінивши всідостоїнства і недоліки вже запропонованих систем, стало можливим зрозуміти,якою саме має бути система, щоб вона задовольняла основному завданню –максимально пришвидшити процес документообігу та захистити данні від втрати танесанкціонованого доступу. Крім того, було сформульовано ряд вимог, які повинназадовольняти система. З огляду на динамічність системи, були побудовані вимогидо платформи і методам розробки системи.
У процесірозробки система була протестована на різних платформах і в різних умовах навантаження.Система показала себе добре, а помилки, які були допущені в процесі розробкибули усунені, а також внести додаткові елементи захисту інформації.
В результатірозробки отримана система, яка може працювати в реальних умовах з сильнимнавантаженням, і при цьому залишатися стабільною. В майбутньому плануєтьсярозширення даної системи, що дозволить збільшити коло її користувачів. Окрімтого, планується покращити підсистему зберігання інформації та застосувати більшнадійні алгоритми шифрування даних.

Перелікпосилань
1. web-сайтпосвященный програмуванню [Електронний ресурс] – Режим доступа: www/URL:tools.ietf.org/html/rfc3174 — 10.12.2003 г. — Загл. з екрану.
2. web-сайт,присвячений програмуванню [Електронний ресурс] – Режим доступа: www/ URL: www.glossary.ru – 30.05.2009г. — Загл. з екрану.
3. Бондарев,В.М. Учебное пособие по программированию на Java [Текст] / Бондарев В.М… – Х.:Диалектика, 2003. – 296 с.
4. ХансенГ.Д. Базы данных: разработка и управление [Текст] / Хансен Г.Д., Хансен Д.А. –М.: БИНОМ, 1999. – 704 с.
5. M.Brandis The Oberon System Family [Текст] / M. Brandis R. Crelier M. Franz J.Templ – Software Practice and Experience, 1995, p. 1331-1366.
6. Planningthe content of instruction / Brecht B.J., McCalla G.I., Greer J.E. 1989, p.32-41.
7. Methodsand techniques of adaptive hypermedia. / Brusilovsky P., 1996, p. 87-129.
8. BrusilovskyP., Eklund J., Schwarz E., 1997, p. 278-285.
9. Knowledgetracing in the ACT programming tutor. / Corbett A.T., Anderson J.A., 1992.

Додаток А
Програмнийкод класу взаємодії з БД сутності «користувач»(User)
packagediploma.hibernateDAO;
importjava.util.ArrayList;
importjava.util.List;
importdiploma.dao.DAO;
importorg.apache.commons.logging.Log;
importorg.apache.commons.logging.LogFactory;
importorg.hibernate.Session;
importorg.hibernate.Transaction;
importorg.hibernate.annotations.Cascade;
importdiploma.Role;
public abstractclass HibernateDAO implements DAO {
private staticfinal Log log = LogFactory.getLog(HibernateDAO.class);
public booleancreate(T newInstance) {
Session session =HibernateUtils.openSession();
Transaction tx =session.beginTransaction();
try {
session.save(newInstance);
tx.commit();
return true;
} catch(Exception e) {
System.out.println(e);
log.error(e);
tx.rollback();
return false;
} finally {
HibernateUtils.closeSession(session);
}}
public booleandelete(T inctance) {
Session session =HibernateUtils.openSession();
Transaction tx =session.beginTransaction();
try {
session.delete(inctance);
tx.commit();
return true;
} catch(Exception e) {
System.out.println(e);
log.error(e, e);
tx.rollback();
return false;
} finally {
HibernateUtils.closeSession(session);
}}
@SuppressWarnings(«unchecked»)
publicList getAll() {
Session session =HibernateUtils.openSession();
Transaction tx =session.beginTransaction();
try {
Class clazz =(Class) ((java.lang.reflect.ParameterizedType) getClass()
.getGenericSuperclass()).getActualTypeArguments()[0];
List list =session.createCriteria(clazz).list();
return list;
} catch(Exception e) {
log.error(e, e);
return newArrayList();
} finally {
HibernateUtils.closeSession(session);
}}
public booleanupdate(T newInstance) {
Session session =HibernateUtils.openSession();
Transaction tx =session.beginTransaction();
try {
session.update(newInstance);
tx.commit();
} catch(Exception e) {
log.error(e, e);
tx.rollback();
return false;
} finally {
HibernateUtils.closeSession(session);
}
return true;
}}

Додаток Б
Програмний код основногоCRUD менеджеру
packagediploma.hibernateDAO;
importjava.util.ArrayList;
importjava.util.List;
importdiploma.dao.DAO;
importorg.apache.commons.logging.Log;
importorg.apache.commons.logging.LogFactory;
importorg.hibernate.Session;
importorg.hibernate.Transaction;
importorg.hibernate.annotations.Cascade;
importdiploma.Role;
public abstractclass HibernateDAO implements DAO {
private staticfinal Log log = LogFactory.getLog(HibernateDAO.class);
public booleancreate(T newInstance) {
Session session =HibernateUtils.openSession();
Transaction tx =session.beginTransaction();
try {
session.save(newInstance);
tx.commit();
return true;
} catch(Exception e) {
System.out.println(e);
log.error(e);
tx.rollback();
return false;
} finally {
HibernateUtils.closeSession(session);
}
}
public booleandelete(T inctance) {
Session session =HibernateUtils.openSession();
Transaction tx =session.beginTransaction();
try {
session.delete(inctance);
tx.commit();
return true;
} catch(Exception e) {
System.out.println(e);
log.error(e, e);
tx.rollback();
return false;
} finally {
HibernateUtils.closeSession(session);
}
}
@SuppressWarnings(«unchecked»)
publicList getAll() {
Session session =HibernateUtils.openSession();
Transaction tx =session.beginTransaction();
try {
Class clazz =(Class) ((java.lang.reflect.ParameterizedType)getClass().getGenericSuperclass()).getActualTypeArguments()[0];
List list =session.createCriteria(clazz).list();
return list;
} catch(Exception e) {
log.error(e, e);
return newArrayList();
} finally {
HibernateUtils.closeSession(session);
}
}
public booleanupdate(T newInstance) {
Session session =HibernateUtils.openSession();
Transaction tx =session.beginTransaction();
try {
session.update(newInstance);
tx.commit();
} catch(Exception e) {
log.error(e, e);
tx.rollback();
return false;
} finally {
HibernateUtils.closeSession(session);
}
return true;
}
}


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

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

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

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.