Будь умным!


У вас вопросы?
У нас ответы:) SamZan.ru

1 Постановка завдання

Работа добавлена на сайт samzan.ru: 2015-07-10


Зміст

         Вступ……………………………………………………………………….3

1        ХАРАКТЕРИСТИКИ ОБЄКТУ ПРОЕКТУВАННЯ……………………5

1.1     Постановка завдання……………………………………………………...5

1.2     Характеристики предметної області……………………………………..5

1.3     Складові частини об’єкту проектування……………………………...….6

1.4    Підхід до побудови користувацького інтерфейсу

         об’єкту проектування…………………………………………………..….7       

1.5     Оцінка якостей проектного рішення……………………………………...8

1.5.1  Переваги техології AJAX………………………………………………….8

1.5.2  Недоліки техології AJAX…………………………………………………10

1.6    Опис функціональності об’єкту проектування…………………………..10

1.7    Вибір бази даних…………………………………………………………...12

2.      ОГЛЯД ЛІТЕРАТУРНИХ ДЖЕРЕЛ……………………………………..15

2.1    Суть AJAX підходу………………………………………………………..15

2.2   Інтернет проекти на основі  AJAX технології…………………………...16

2.3    Публікації на тему дипломного проекту…………………………………18

3.      СИСТЕМНИЙ АНАЛІЗ …………………………………………...……...24

3.1    Аналіз проблеми……………………………...……………………………24

3.2    Побудова дерева цілей…………………………………………………….25

3.3    Побудова дерева завдянь………………………………………………….28

3.4    Обгрунтування та агрегування критеріїв………………………………...32

3.5    Готові альтернативні рішення…………………………………………….35

3. 6   Прийняття рішення системного аналізу……………………………….…35

        Висновок……………………………………………………………………36

4.      КОНЦЕПТУАЛЬНА МОДЕЛЬ…………………………………………...38

4.1    Модель роботи веб додатку на ajax……………………………………40

4.2    Використання бази даних…………………………………………………41

4.3    Використання мови html…………………………………………………..42

4.4    Використання php………………………………………………………….43

4.5    Використання javascript…………………………………………………...44

        Висновок……………………………………………………………………45

5.      ОБГРУНТУВАННЯ АПАРАНИХ РІШЕНЬ……………………………..46

5.1    Формулювання вимог апаратного рішення……………………………...46

5.2    Оцінка програмного забезпеченя веб сервера…………………………...46

  1.      Швидкодія веб дотатку……………………………………………………48

5.4    Спосіб використання………………………………………………………49

5.5    Характеристики апаратних рішень……………………………………….49

5.6    Доцільний варіант апаратного забезпечення…………………………….51

6.       ДЕТАЛІЗАЦІЯ ТЕХНІЧНОГО РІШЕННЯ…………………………..…52

6.1      Структура роботи веб додатку……………………………………..…...52

6.2      Програмна реалізація веб додатку…………………………………….53

6.2.1   Побудова структури файлів……………………………………………53

6.2.2   Структура таблиць бази даних………………………………………...55

6.2.3   Створення таблиць бази даих………………………………………….58

6.2.4   Прогрмування головного виконавчого фйлу………………………….59

7.        ЕКОНОМІЧНА ЧАСТИНА…………………………………………….75

8.        Висновок…………………………………………………………………91

ВСТУП

Інтерне́т всесвітня система взаємосполучених комп'ютерних мереж, що базуються на комплекті Інтернет-протоколів.[1] Інтернет також називають мережею мереж. Інтернет складається з мільйонів локальних і глобальних приватних, публічних, академічних, ділових і урядових мереж, пов'язаних між собою з використанням різноманітних дротових, оптичних і бездротових технологій. Інтернет становить фізичну основу для розміщення величезної кількості інформаційних ресурсів і послуг, таких як взаємопов'язані гіпертекстові документи Всесвітньої павутини (World Wide Web WWW) та електронна пошта. В повсякденній мові слово Інтернет найчастіше вживається в значенні Всесвітньої павутини і доступної в ній інформації, а не у значенні самої фізичної мережі. Також вживаються терміни Всесвітня мережа, Глобальна мережа чи навіть одне слово Мережа, Іне́т, Тенета, Міжмережжя, Інтерне́трі або Не́трі. Все частіше Інтернет вживається і з малої літери, що можна пояснити паралелями з термінами «радіо», «телебачення», які пишуть з малої.

Інтернет не має централізованого управління, правил використання чи доступу. Кожна складова мережа встановлює свої власні стандарти. Централізовано визначаються правила використання адресного простору Інтернет-протоколу таСистеми доменних імен. Керує цим Інтернет корпорація з присвоєння імен та номерів (англ. Internet Corporation for Assigned Names and Numbers, або ICANN), міжнародна некомерційна організація з головним офісом у США. Технічне обґрунтування і стандартизацію основних протоколів (IPv4 та IPv6) проводить Internet Engineering Task Force (IETF), некомерційна організація, відкрите міжнародне співтовариство проектувальників, учених, мережевих операторів і постачальників послуг.

Мережа побудована на використанні протоколу IP і маршрутизації пакетів даних. В наш час Інтернет відіграє важливе значення у створенні інформаційного простору глобального суспільства, слугує фізичною основою доступу до веб-сайтів і багатьох систем (протоколів) передачі даних. 

Інтернет складається з багатьох тисяч корпоративних, наукових, урядових та домашніх мереж. Об'єднання різнорідних за архітектурою мереж стало можливо завдяки протоколу IP (англ. Internet Protocol) і принципу маршрутизації пакетів даних. Протокол ІР був спеціально створений агностичним у відношенні до фізичних каналів зв'язку. Тобто будь-яка мережа передачі цифрових даних може передавати інтернет-трафік. На стиках мереж спеціальні маршрутизатори займаються сортуванням та перенаправленням пакетів даних, базуючись на ІР-адресах одержувачів цих пакетів. Протокол ІР утворює єдиний адресний простір у масштабах всього світу, але в кожній окремо взятій мережі може існувати свій власний адресний підпростір. Така організація ІР-адрес дозволяє маршрутизаторам однозначно визначати подальший напрямок для кожного, навіть найменшого, пакету даних. У результаті між різними мережами Інтернету не виникає конфліктів і дані точно і без перешкод передаються від мережі до мережі по всій планеті. 

На сьогоднішній день сучасне уявлення про інтернет значно змінилося із тих пір коли почала широко розвиватись сфера інформаційних технологій. На сьогоднішній день розвиток всесвітньої мережі інтернет набув великих змін, які у свою чергу дають змогу будувати принципово нові  уявлення про інтернет технології та їх застосування. На даний час кожний веб ресурс який є у мережі інтернет побудований на інноваційних принципах. Існує багато веб технологій які використовуються для побудови та сворення веб ресурсів(сайтів). Іноваційним підходом до створення веб додатків є технологія асинхронної передачі даних  ajax. На основі ajax зараз будуються практично всі інтернет сайти, мало не в кожному веб проекті зустрічаються принципи асинхронності передачі даних у зв’язку з тим що це вирішує і впливає на розвиток потужних ресурсів та їх застосування. Ajax перекладається як асинхронний javascript and XML. Це по суті є взаємодія двох веб технологій таких як javascript- мова програмування для створення динаміки сайтів та xml – розширений язик розмітки документів. Суть цього полягає в тому ,що користувач  продовжує роботу із веб ресурсом надсилаючи дані і запити на веб сервер без перевантаження сторінки у вікні браузера, в той час як при класичній моделі обміну даних без використання AJAX  технології відбувається перевантаження  веб сторінки при відправці чи оновленні  даних отриманих у результаті взаємодії веб сервера та клієнта.

Використовуючи поєднання javascript та xml можна створювати сучасні додатки, які змінюють уявлення про класичну модель поведінки веб ресурсу.

Це дає змогу досягнути нових рішень і вирішення складних завдань в яких потрібно реалізувати асинхронний принцип передачі даних. Технологія яка досить недавно почала впроваджуватись та використовуватись досить проста у програмуванні,  програмістам дається можливість використовувати готові рішення у вигляді  фреймворка, тобто бібліотеки функцій, і це значно спрощує використання коду та дає змогу писати простий та зрозумілий для програміста скрипт(програмний код).

У даному дипломному проекті буде докладно розглянуто та продемонстровано технологію AJAX  на основі інформаційної системи обміну даних. Мною буде створено веб ресурс, який надає можливість обімну повідомлення між користувачами ,які зареєстровані або аутенфіковані у системі, завдяки технології асинхронного обімну даних(AJAX),  що дозволить відправляти, редагувати та видаляти повідомлення у асинхронному вигляді без пере загрузки сторінки. Користувач, перебуваючи на веб сторінці, буде продовжувати свою роботу в той час як запити будуть поступати на сервер без перезагрузки веб сторінки,  яка відкрита у вікні браузера користувача в даний момент. Це дозволить показати інноваційний спосіб побудови веб проектів та продемонструвати роботу AJAX технологій на прикладі системи обміну повідомленнями між користувачами

1. ХАРАКТЕРИСТИКА ОБЄКТУ ПРОЕКТУВАННЯ

1.1 Постановка завдання

Обєктом мого проектування є інформаційна система обміну даних між користувачами в мережі інтернет на основі асинхронного обміну даних веб застосунку, тобто технології AJAX. Предметною областю об’єкту проектування  є сукупність та поєднання декількох сучасних технологій розробки програмного забезпечення для створення інтерактивних веб сайтів. Особливістю предметної області є те що розглядається поєднання сучасних методів програмування , які дають змогу значно простіше та швидше створювати сучасні інтерактивні веб сайти та програмний код який є значно продуктивніший і кращий.

1.2 Характеристики предметної області

Темою предметної області проектування є сукупність сучасних технологій проектування веб сайтів ,які дозволяють будувати функціональні та новітні ресурси , при цьому використовуючи дуже прості у використанні та зручні з точки зору програміста технології. Ключовою технологією яка дуже поширено використовується при створенні серйозних проектів є технологія асинхронної передачі даних увб системах - ajax. Цей підхід використали у сучасних інтернет сервісах, як Google Suggest – підказки в рядку пошукового запиту.  Яндекс повторив досвід. Google Maps – інтерактивні карти. А особливо Gmail – інтерактивний інтерфейс для пошти. Facebook, VKontakte і т.п. активно використовують Ajax. Отже це свідчить про те що AJAX - це актуально на сьогоднішній день і все більше широко використована технологія. Якщо такі відомі компанії, як Google, Facebook, використовують в своїх проектах техноголії AJAX то це свідчить про те, що передовою умовою розвитку веб ресурсів буде саме використання технології асинхронної передачі даних, тобто AJAX. Візьмемо до уваги той факт, що на сьогоднішній день важко відшукати який не будь веб ресурс без використання асинхронних запитів.     До появи  технології AJAX, веб сайти були досить динамічними та потужними, але користувач зміг відправляти дані на веб сервер лише із перевантаженням веб сторінки на якій він знаходився, це викликало певні незручності у користуванні тому технологія AJAX дала змогу відсилати дані без перевантаження сторінки і користувач далі продовжував роботу незважаючи на відправлені запити.

1.3 Складові частини об’єкту проектування

Обєкт проектування в кінцевому результаті це веб сайт який дає змогу користувачам обмінюватись інформацією тобто повідомленнями як наприкладі соціальної мережі.

Структурою нашого об’єкту будемо розуміти  сукупністю певних частин ,що складають цілісність системи. Об’єктом нашого проектування є інформаційна система обміну даних, отже окремі блоки проектованої системи є програмованими частинами(модулями) що взаємодіють один з одним спільно та синхронно. Загальну структуру нашого об’єкту проектування розділено на такі частини: автентифікація, реєстрація, обмін повідомленнями, та профільна частина користувача. Автенфікація та реєстріція слугують механізмом доступу користувача до контенту та його особистого профіля, обмін повідомленнями та профільна частина користувача відлповідають за основний функціонал обєкта проектування - оперування інформацією користувача. Користувач має можливість відправляти, редагувати видаляти повідомлення у своїй профільній частині.

 Частина автентифікації у нашому проектуванні являється процедура встановлення належності користувачеві інформації в системі пред'явленого ним ідентифікатора. Ця частина об’єкту проектування відповідає за достовірність наданої інформації користувача, яка є у системі. З позицій інформаційної безпеки  автентифікація для нашого об’єкта проектування є частиною процедури надання доступу для роботи в інформаційній системі.

 Частина реєстрації являє собою процес надання прав доступу користувачам до контенту які ще не є зарєестровані у системі. Користувачі що раніше пройшли реєстрацію  мають змогу виконати процес автентифікації у системі тому, що їх облікові дані вже існують та їх потрібно лише перевірити на правдивість, в іншому випадку всі користувачі для доступу до належного їм контенту повинні пройти процес реєстрації оскільки у базі даних немає їхніх облікових даних. Реєстрація є необіхдим кроком у системі для нових користувачів щоб в подальшому мати можливість доступу до вого особистого профіля.

 Обмін даними представляє собою головну складову частину обєкту проектування. В цьому полягає суть правильної роботи всієї системи. Відбувається функціональна частина обміну даними у системі, тобто головні транзакції інформаційних потоків відбуваються саме у частині обміну даних.  Для функціонування та правильної роботи системи потрібна злагоджена взаємодія всіх її  складових частин. Обмін даними представляє в собі структуру яка складається із декількох внутрішніх складових таких, як відправка інформації, видалення інформації,редагування інформації. Ця частина проектування аключає викоористання технології AJAX. Робота цієї частини веб сайту буде виконуватись у фоновому режимі у той час користувач буде продовжувати роботу із веб сайтом   коли дані будуть передаватись на веб сервер без перевантаження  сторінки з якою працює користувач у системі.

Відправка інформації.

Внутрішня складова структури частини обміну даних яка відповідає за передачу інформації між користувачами що є у системі.Це внутрішня складова частини яка відповідає за обмін даними. Основна функція цієї структури проектування це відправка даних певному адресату у системі, тобто користувач відправляє повідомлення іншому користувачеві у системі. В даній частині буде впроваджено технологію ajax, що дозволить створити зручну інтерактивність обміну даних, власне і на цьому грунтується баховий підхід цієї частини проектування. Інформація буде відправлятись у фоновому режимі що дозволить продовжувати роботу із веб сайтом не пережавантажуючи веб сторінки на якій хнаходиться користувач.

Видалення інфомації

Ця структура проектування відповідає за вилалення непотрібної інформації користувачмем, тобто повідомлення яке для користувача є неактуальне можливо видалити. Вся інформація яка отримала запит на видалення очичається без можливості відновлення. У цій частині проектування впроваджено технологію Ajax яка відповідає за синхронний процес роби веб сайту.

Редагування інформації

Будь яке повідомлення яке користувач надсилає іншому кристувачеві можна відредагувати. Це означає що старе повідомлення яке було відправлено раніше можливо змінити та відправити нову версію повідомлення.

Профільна частина користувача відповідає за відображення стану активності користувачів, ідентифікатор стану повідомлення. Основні функції цієї частина це стеження за приходом нових повідомлень для користувача та статуси активності користувачів на на веб сайті. Використовуючи технологію ajax ця частина проектування на веб сайті буде пррацювати з підтримкою технології ajax.Користувач зможе бачити прихід нових повідомлень та користувачів які зявились на сайті у фоновому режимі тобто без перевантаження веб сторінки. Проектна структура профільної частини користувача розділена на такі 2 розділи: ідентифікатор повідомлення та статус користувачів.

Ідентифікатор повідомлення слугує для сповіщення користувача про прихід нових повідомлень які йомі надсилались. Цей процес здійснюється у фоновому режимі за допомогою технології AJAX без перевантаження веб сторінки на якій знаходиться користувач. Не потрібно виконувати оновлення веб сторінки як при класичній моделі веб застосунків оповіщення висвітляться автоматично через ajax механізми.

Статус користувачів повідомляє нам про стан нового користувача у ситемі який щойно авторизувався або аутенфікувся. Ця функція виконується у фоновому режимі із використанням ajax технології, тобто оповіщення про стан користувачів автоматично оновлються без перевантаження веб сторінки.

1.4 Підхід до побудови користувацького інтерфейсу об’єкту                              проектування

Використовуючи технологію ajax  користувацький інтерфейс нашого об’єкта проектування  буде працювати у фоновому режимі, тобто веб за стосунок ,за яким веб-сторінка ,не перезавантажуючись, у фоновому режимі надсилає запити на сервер і сама звідти довантажує потрібні користувачу дані. Це основна ідея побудови користувацьких інтерфейсів проектуваня на сьогоднішній день.

Використання взаємодії з користувачем у нашому веб ресурсі являється основною проблемою, для цього користувацький інтерфейс будемо розглядати як окремі модулі у яких є за стосунок ajax підходу для створення зручного інтерфейсу взаємодії. Отже користувацький інтерфейс умовно умовно розглядаємо як модуль обміну даних та модуль профільної частини користувача.

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

Модуль профільної частини користувача працює у фоновому режимі і теж використовує технологію ajax що дозволяє бачити прихід нових користувачів на веб сайті і ідентифікатори стану повідомлень що приходять адресату та бачити статуси користувачі на сайті.

1.5 Оцінка якостей проектного рішення

1.5.1 Переваги технології AJAX

1.Інтерактивність веб-інтерфейсу. 

Інтерактивність веб-інтерфейсу займає ключову позицію в проектуванні веб ресурсу. Інтерактивність зумовлюється використанням мультимедійних форм, сучасними шаблонами проектування, принципом спілкування користувача із інтерфесом сайту. Наприклад, користувач зробив запит на сервер з певними даними і має очікувати результати. На сайтах з класичними методами перед користувачем білий екран доти, доки не завантажиться вся сторінка. За звичай, в класичних сайт користувач після заповнення, наприклад, форми, мав наживати кнопку «Підтвердити» і очікувати на відповідь сервера, яка в свою чергу може містити попередження. Часто користувач змушений наново заповнювати все. Ajax дозволяє так спроектувати сторінку, що запит робитиметься після будь-якій зміни зі сторони користувача. А також ехнологія Ajax дозволяє залишатись користувачеві на сайті, і можна розробити заставку, яка буде з’являтись під час завантаження даних. У Додатках А є приклад, які можна запрограмовувати заставки.

2.Зменшення трафіку.

Якщо в класичних моделях реалізації взаємодії клієнт-сервер, якщо користувач хоче зробити запит на сервер, то для цього в об’єкті-запиту передавалась вся сторінка, яка після оновлення завантажувалась в браузері, що вимагало збільшення використаного трафіку. Тепер «витрати» трафіку можна зменшити, завантажуючи тільку ту частину, яка змінилась. Це можна реалізовується завдяки тому, що створюється HTTP запити, які відсилаються на сервер у фоновому режимі і модифікуються тільки окремі частини web-сторінки за допомогою JavaScript, коли приходить відповідь з серверу.

3.Динамічні і більш якісні веб сайти.

Ми можемо створювати нові та більш цікаві сайти для користувачів. Йдеться про функціонал для користувачів сайту. Сучасні веб сайти дають безліч можливостей для функцій якими користувач може користуватись безпосередньо не використовуючи перевантаження веб сторінки як при класичній моделі проектування веб ресурсу. Користувачі зможуть працювати з мультимедійними сайтами, здійснювати різноманітні операції із своїми завантаженими об’єктами у інтерфейсі бев ресурсу, все це будує принципово новий рівень якості веб сайтів  і динаміки поведінки інтерфейсу , яки створюється для взаємодії користувача із веб сайтом.

Наприклад, створюється форма, в якій потрібно ввести дані користувачем. Для полегшення задачі можна запрограмувати скрипт, який миттєво реагує, посилаючи запит на сервер і повертає підказки. Підказка показує тільки ті, дати, які можна обрати, тобто з урахуванням реальної дати, місяця, року. Наприклад, сьогодні 19 травня, і дату народження в майбутньому обрати неможна.

4.Зменшення навантаження на веб сервер.

При використанні технології AJAX, зменшується навантаження на веб сервер. Це зумовлюється тим, що непотрібно кожного разу  оновлювати веб сторінку користувача коли відбулась передача даних на сервер. Зменшення трафіку зумовлює зменшення навантаження на веб сервер, тобто відбувається оновлення лише певного блоку   на веб сторінці ,який потрібний користувачу , а не сієї сторінки як при класичній моделі. Користувач отримує дані які йому потрібні без оновлення всіє сторінки а лише певної частини.

1.5.2 Недоліки технології AJAX

1.Відсутність інтеграції із стандартними користувацькими інструментами браузера.

2.Кнопка переходу між сторінками Назад

Не буде працювати кнопка Назад у браузері. Динамічні сторінки не реєструються браузером в історії перегляду сторінок, тому не працює кнопка «Назад». Але більшість програмістів створюють спеціальні скрипти для усунення недоліку.

3.Закладки.

Оскільки динамічно генерує сторінки Javascript а не сервер тому адреса сторінки вирізається з циклу і вже ніяк не можу бути використана у майбутньому. Тому для вирішення цієї проблеми в AJAX широко використовують конструктивні посилання(prermalinks) таких випадках. Ця проблема використовується за рахунок міток # в URL.

3.Проблема індексації пошуковими системами.

Динамічний вміст веб сторінки пошукові роботи не можуть побачити, тому що він генерується динамічним скриптом на стороні клієнта. Коли створюється потужний сайт потрібно потрібно створювати аналогічні методи доступу до контенту , тобто можна розробити статистичний сайт.

4.Ускладнення проекту.

Звичайно при створенні потужних веб ресурсів впровадження технології AJAXпотребує складного опрацюапння та інтеграції у сам код. Збільшується проблема передачі даних у великих розмірах. Це вирішується за допомогою cookies.

5.Проблеми  відвідуваності сайтів.

Багато веб серверів ведуть облік відвідуваності нових сторінок веб сайту. Але коли ці сторінки генеруються AJAX запитами то ця статистика стає  неактуальною на сьогоднішній день.

 

6.Безліч браузерів не є крос суміснини із javascript тому деякі функції можуть не працювати коректно а також це впливає на формування сторінко чрез запит javascript.

1.6 Опис функціональності об’єкту проектування

Функціональна складова об’єкту проектування визначає його основні можливості та функції використання які він матиме в собі. Інформаційна система обміну даних реалізовує функцію авторизації та реєстрації користувачів у системі, відправка ,редагування та видалення повідомлень у системі в синхронному режимі за допомогою технології AJAX.

Реєстрація користувачів.

Багато веб сайтів примушують користувачу надати про себе деяку інформацію. Здійснивши запит і отримавши інформацію про відвідувача, потрібно якимось чином її зберегти та поєднати із відвідувачем при його наступних спробах використання веб сайту. Оскільки існує безліч методів використання реєстрації на  сайті, мною був реалізований класичний метод за допомогою якого здійснюється реєстрація користувача зі його іменем та особистим паролем. Пароль вказується символами латинського алфавіту. Логін, тобто імя користувача, яке буде використовуватись у системі, повинно містити латинські літери згідно стандартів проектування веб за стосунків. Реєстрація є основним кроком який повинні пройти всі користувачі, яким надається доступ до тих чи інших даних у системі веб застосунку. Потужні та сучасні веб проекти неможутьі снувати  без  системи контролю користувачів.

Для реєстрації користувача в системі потрібно заповнити  поля вводу , тобто поле де потрібно вказати імя користувача та поле де потрібно вказати пароль.

Реєстрація потрібна для того щоб запам’ятати користувача який у подальшому буде авторизуватись у системі використовуючи дані реєстрації що збережені у базі даних. Реєстрація у системі проводиться кожного разу для нових користувачів. Після того , коли користувач заповнив всі  необхідні дані, здійснюється його реєстрація у зв’язку з чим в базі даних створюється нові поля із інформацією про нового користувача.

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

Авторизація користувачів.

Авторизація користувачів у системі здійснюється на основі достовірності користувача у тому числі його  логіна та паролю.  Перш ніж користувач буде мати змогу використовувати інформацію на сайті йому потрібно авторизуватись. У будь яких сучасних веб сайтів авторизація є основною складовою частиною проектування ресурсу. Потужні веб ресурси просто не можуть існувати без авторизації своїх користувачів оскільки це призведе до несанкціонованого доступу до інформації. Авторизація дуже подібна за своєю структурою до реєстрації користувачів у системі. Авторизація зумовлює перевірку прав та наявність певного правила доступу користувача до того чи іншого інформаційного ресурса, за рахунок перевірки введених даних користувачем на сайті. Тобто перевіряється відповідність логіну  та паролю, який користувач ввів, у базі даних зареєстрованих користувачів.

Відправка повідомлень.

Для того щоб було здійснено обмін повідомленнями між користувачами, у системі повинна відбутись авторизація або реєстрація користувача. Після цього користувач має можливість відправляти повідомлення  іншим користувачам які є також зареєстровані у системі. Відправка повідомлень реалізується  асинхронним методом , без перевантаження сторінки на якій знаходиться користувач а не,  як при класичному методі. Відправка повідомлень може здійснюватись багатьом користувачам , але послідовно. Кожний користувач може відправляти повідомлення багатьом користувачам і отримувати повідомлення від багатьох користувачів. Про новий стан повідомлення користувачу буде оповіщено асинхронно, тобто не потрібно перевантажувати веб сторінку на якій знаходиться користувач. В процесі роботи, для того щоб користувач  міг бачити прихід йому нових повідомлень буде використано асинхронний запит до бази даних де містяться нові повідомлення для користувача. Це зумовлюється принципом AJAXякі забезпечують у таких випадках безперервний процес роботи користувача і в той же час обробку користувацького запиту.

Редагування повідомлень.

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

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

1.7 Вибір  бази даних

Збереження даних інформаційної системи обміну даних на основі ajax технології будуть зберігатись у базі даних. База даних буде зручним та простим способом для оперування даними. Головне завдання на цьому етапі проектування – створити механізм гарантованого збереження значних обсягів інформації (так звані записи даних) та надання доступу до неї користувачеві або ж прикладній програмі. Таким чином, БД складається з двох частин: збереженої інформації та системи керування нею. Для збереження нам всіх даних буде використовуватись Структурована БД , тобто структурований опис типу фактів за допомогою схеми даних, більш відомої як модель даних.

Оперування всією інформацією у системі  буде відбуватись безпосередньо через базу даних. База даних є у вигляді спроектованих таблиць реляційної моделі, тобто це масив даних, яка буде містити всі дані що мають обіг у системі. 

База даних складається із двох таблиць, які відповідають за збереження всієї інформації що стосується роботи веб ресурсу. Весь інформаційний потік даних, тобто збереження, редагування,видаленя відбувається безпосередньо через веб інтерфейс за допомогою запитів.

Таблиця register

Для збереження інформації про всіх користувачів  у системі буде використовуватись таблиця бази даних user. Реєстрація авторизація користувачів у системі заздалегідь потребує перевірки внесених даних користувачем на валідність та співставлення із базою даних ,щоб уникнути нелегітимних транзакцій що можуть зіпсувати профіль користувача. Таблиця user відповідає за запис нових даних що стосуються реєстрації користувача у системі та повірки вже існуючих готових профілів на правдивість даних.  Отже при реєстрації авторизації та перевірці даних таблиця user є основною таблицею для особистого профілю користувача.

Таблиця message

У базі даних таблиця message є ключовою таблицею і головним масивом для оперування даними. Через цю таблицю відбувається обмін даними між користувачами, тобто відправка ,видалення, редагування повідомлень. Дана таблиця представляє собою масив даних де будуть зберігатись інформація про повідомлення, його час відправки та отримання, інформація про учасників між якими відбувався обмін повідомленнями.

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

Загальний принцип роботи системи із базою даних виглядає наступним чином:

1.Звернення до таблиці user

Першочергово користувачу надається інтерфейс для авторизації або реєстрації у системі. Під час цього процесу здійснюється внесення нових даних користувача у базу даних таблиці user, або перевірка вже існуючих даних на правильність вводу.

2.Звернення до таблиці message

Після авторизації або реєстрації у системі користувача буде пере направлено на його особистий профіль, тобто він зможе бачити всі свої нові повідомлення та відправляти  власні. Для функціонування цієї частини системи існує у базі даних таблиця message. Ця таблиця відповідає за інформацію що стосується  окремих повідомлень користувачів ,їхніх статусів та всієї інформації про транзакцію повідомлення у системі.

3.Синхронізація запитів бази даних.

Для правильної роботи системи має відбуватись синхронне використання даних які є у базі. Тобто користувач одночасно може відправляти повідомлення та стежити за приходом нових, використовувати запити на оновлення даних і при цьому стежити за всіма користувачами що є у системі.

 

 2.ОГЛЯД ЛІТЕРАТУРНИХ ДЖЕРЕЛ

Інформаційні технології сьогодення дозволяють нам створювати надсучасні системи обміну інформацією в мережі інтернет при цьому заощаджуючи значні зусилля програмістів. Інформаційна система обміну інформацією це сукупність різноманітних web технологій що дозволяють оперувати значними обсягами даних використовуючи при цьому зручний інтерфейс для користувачів. Для оцінки сучасного стану інформаційних джерел за темою дипломного проекту використано інтернет сервіси такі як google.com, Wikipedia.org. У результаті загальної оцінки сучасного стану щодо публікацій по темі дипломного проекту , усі веб ресурси надали актуальну і достовірну інформацію сьогодення, зокрема інформація постійно оновлювалась останніми роками ,що свідчить про активне використання ресурсів по даній темі дипломного проекту та актуальність цієї  теми. Для оцінки актуальності даної теми було здійснено пошук веб ресурсів які активно впроваждують та використовують ajax підхід у своєму проектуванні. Головною проблемою мого дипломного проекту є ajax технологія яку я впроваджував у розробку свого власного веб сайту, тому для порівняння власного проектування я розглянув готові рішення які повністю підтримуються ajax підхід.

Для того щоб краще зрозуміти суть мого дипломного проектування розглянемо головне визначення технології ajax  із інформаційного ресурсу Wikipedia. JAX (Asynchronous JavaScript And XML) — підхід до побудови користувацьких інтерфейсів веб-застосунків, за яких веб-сторінка, не перезавантажуючись, у фоновому режимі надсилає запити на сервер і сама звідти довантажує потрібні користувачу дані. AJAX — один з компонентів концепції DHTML.

Про AJAX заговорили після появи в лютому 2005-го року статті Джесі Джеймса Гарретта (Jesse James Garrett) «Новий підхід до веб-застосунків». AJAX — не самостійна технологія. Отже як бачимо ajax досить широко застосовується у сфері програмування веб ресурсів і це свідчить про значне вдосконалення а сама концепція використання є дуже простою з точки зору програміста.

2.1 Суть ajax підходу

AJAX — це не самостійна технологія, а швидше концепція використання декількох суміжних технологій. AJAX підхід до розробки призначених для користувача інтерфейсів комбінує кілька основних методів і прийомів:

  1.  Використання DHTML для динамічної зміни змісту сторінки.
  2.  Використання XMLHttpRequest для звернення до сервера «на льоту», не перезавантажуючи всю сторінку повністю
  3.  альтернативний метод — динамічне підвантаження коду JavaScript в тег <SCRIPT> з використанням DOM, що здійснюється із використанням формату JSON)
  4.  динамічне створення дочірніх фреймів

Використання цих підходів дозволяє створювати набагато зручніші веб-інтерфейси користувача на тих сторінках сайтів, де необхідна активна взаємодія з користувачем. AJAX — асинхронний, тому користувач може переглядати далі контент сайту, поки сервер все ще обробляє запит. Браузер не перезавантажує web-сторінку і дані посилаються на сервер без візуального підтвердження (крім випадків, коли ми самі захочемо показати процес з’єднання з сервером). Використання AJAX стало найпопулярніше після того, як компанія Google почала активно використовувати його при створенні своїх сайтів, таких як Gmail,Google Maps і Google Suggest. Створення цих сайтів підтвердило ефективність використання даного підходу.

Порівняння класичного підходу та AJAX

Класична модель веб-застосунку:

  1.  Користувач заходить на веб-сторінку і натискає на який-небудь її елемент
  2.  Браузер надсилає запит серверу
  3.  У відповідь сервер генерує повністю нову веб-сторінку і відправляє її браузеру і т. д.
  4.  З боку сервера можлива генерація не всієї сторінки наново, а тільки деяких її частин, з подальшою передачею користувачу.

Модель AJAX:

  1.  Користувач заходить на веб-сторінку і натискає на який-небудь її елемент.
  2.  Браузер відправляє відповідний запит на сервер.
  3.  Сервер віддає тільки ту частину документа, яка змінилася.

2.2 Інтернет проекти на основі  AJAX технології

Технологію ajax широко використовують провідні інтернет гіганти такі як google ,Wikipedia, yahoo, meta.Це свідчить про те що інноваційний підхід до створення потужних інтернет проектів не обходиться без використання технології ajax.Нижче наведені основні проекти провідних компаній ,що активно розвивають та використовують ajax підхід.

  1.  Google suggest та Google Maps — проекти, які показали можливості Ajax
  2.  Protopage — гарний приклад сайту на Ajax (особисті замітки)
  3.  eyeOS online-робочий стіл на Ajax
  4.  BIM — online-аггрегатор новин на Ajax
  5.  Браузер по Wikipedia.org — оболонка для навігації по Wikipedia.org на Ajax

Google Suggest.

 

Google Suggest (англ. suggest — пропоную) це сучасний сервіс пошукового запиту який автозаповнює рядок запиту на основі декількох введених символів. Коли користувач для прикладу вводить декілька букв у рядковому запиті google тоді автоматично за допомогою фонових запитів із бази даних підставляється готове слово яке відповідає умові запту користувача. Даний сервіс повністю працює на основі технології AJAX.    

Protopage.

Хороший приклад сайту оновлення новин ,що активно використовує ajax технологію для динамічного інтерфейсу користувача. Даний сайт створений як rss система оновлення ,тобто користувач у фоновому режимі без перевантаження веб сторінки бачить список свіжих новин для свого профілю.

eyeOS.

eyeOS  веб-десктоп з відкритим кодом що будується на концепції хмарних обчислень що дозволяєють співпрацю та зв'язок між користувачами. Більша частина проекту написана на PHP, XML, та JavaScript. Працює як платформа для веб-застосунків написаних з використанням eyeOS Toolkit. Включає в себе середовище робочого стола з 67 застосунками та системними утилітами. Доступна для портативних пристроїв через мобільний фронт-енд. Для розробників eyeOS надає eyeOS Toolkit — набір бібліотек для розробки застосунків для цієї ОС. Використовуючи інтегроване систему eyeSoft, що базується наPortage, кожен може створити власний репозиторій для eyeOS та поширювати застосунки через нього.Кожна частина робочогу столу — це окремий застосунок, що активно використовує технологію AJAX для відправки команд користувача в форматі XML на сервер. На сервері eyeOS теж використовує XML для зберігання інформації. Кожному користувачу на сервері виділяється окремий XML файл. Отже як бачимо даний веб за стосунок повністю побудований на основі технології ajax.

BIM.

Потужний та сучасний онлайн генератор інформації. Використовується як генератор новин для сайту. Активно використовує технологію фонового за стосунку ajax. Веб сайт сервісу http://www.bim.net.ua/.

 

Браузер по Wikipedia.org

Веб інформаційний ресурс працює повністю із підтримкою ajax  системи обміну даних, що свідчить про потужний інтерфейс для користувачів веб сайту. Веб сайт  із вбудованим у нього браузером працює у фоновому режимі без перевантаження веб сторінки.  Отже вся оболонка навігації Wikipedia працює на основі технології ajax.

На сьогоднішній день сучасні та потужні веб сервіси у мережі інтернет проектуються із використанням останніх тенденцій інформаційних технології у сфесі веб прогамування. Технологія що дозволяє користувачам користуватись надсучасним і зручним інтерфейсом взаємодії  це AJAX. За допомогою цієї концепції вдалось значно просунути практично до інноваційного рівня веб ресурси та проектування інформаційних систем.

 

2.3 Публікації на тему дипломного проекту

Система обміну даних основною своєю функціональністю подібна до систем спілкування типу “чат” що використовується на даний час в усіх соціальних мережах ,веб чатах спілкування, поштових сервісах та онлайн системах спілкування. Всі ці системи працюють за одним схожим принципом: автоматичним оновленням контенту без перевантаження веб сторінки, це ї є основою моєї задазі дипломного проектування та аналізу прикладів публікацій.

phpBB Simple Chat v2.1

Аналогом проектування за темою мого дипломного проекту є публікація по темі ajax Simple Chat v2.1. Розробка російких програмістів що дозволяє обмінюватись повідомлення в мережі інтернет та використовувати інтеграцію у свій веб ресурс. Простий чат Підходить як для phpBB, так і для phpBBex. Даний чат поширений з відкритим кодом , тому є можливість його редагувати або доповнювати. Широко використовується у форумах та сайтах де є велика кількість клієнтів і  потрібно організувати принцип обміну повідомленнями між зареєстрованими користувачами. Чат повністю спроектований на основі технології ajax.

Можливості phpBB Simple Chat v2.1

  1.  Повністю із підтримкою ajax технології
    1.  Приватний повідомлення
      1.  Звукове сповіщення
      2.  Вибір кольору повідомлень
      3.  Підтримка смайликів
      4.  Автовизначення посилань
      5.  Автоблокування флуду

Порівнюючи його структуру роботи та функціональність можу зробити висновки, що алгоритм роботи є типовий як для веб проектів такого типу. Розробка використовує подібний алгоритм роботи системи, тупу - чат, яка проектувалась подібною у  темі мого дипломного проектування. Використання phpBB Simple Chat v2.1 не є ліцензійним та дозволяється використання відкритого коду як для своїх цілей так і для модифікації продукту.

Аглоритм роботи phpBB Simple Chat v2.1.

1.Аутенфікація у  системі користувача.

2. Вхід у профільну частину користувача

3 Перевірка наявності флуду повідомлення.

3.1 Система оповіщення повідомлень

3.2 Відправка повідомлень

3.3 Видалення повідомлень

3.4 Редагування повідомлень

4.Розлогування у системі(підтримка сесії якщо чат інтегрований у сайт).

Алгоритм роботи phpBB Simple Chat  системи дуже простий та схожий із алгоритмом роботи додатку що проектується в даному дипломному проекті. Є можливість редагування повідомлень та видалення ,відправка здійснюється повністю у автономному режимі без перевантаження веб сторінки. Суттєвою різницею буде те що прихід нових повідомлень інформується через звукове оповіщеня, що не підтримується у додатку проектування дипломного проекту. Інтегрувати phpBB Simple Chat у власний сайт дуже просто так само як і використовувати як окремий модуль для форума чи то для власного сайту. Прогресивною частиною  буде те що є можливість адаптації практично під різноманітну веб систему яка створюється чи проектується з використанням ajax підходу. Головною особливістю phpBB Simple Chat є використання ajax підходу та фонова відправка даних на сервер.

AjaxChat - чат для joomla.

AjaxChat це компонент додатку для joomla , що використовується як система обміну повідомлення між користувачами сайту.  Є можливість відправляти повідомлення, редагувати, видаляти  та створювати окремі кімнати для користувачів що мають різні права доступу. Система повністю адаптивня для веб сайту, тобто  з легкістю підключається у веб ресурс без зміни частин коду. Є можливість змінювати мову інтерфейсу на фронтенді  та налаштовувати колір повідомлень. Повністю із підтримкою ajax технології, повідомлення обновлюються асинхронно без перевантаження веб сторінки, що засвідчує подібність цієї розробки до дипломного завдання.

Алгоритм роботи компоненту.

1.Реєстрація, авторизація у системі.

2. Профіль користувача

2.1.Відправка, видалення ,редагування повідомлень

2.2 Розлогування системи

2.3 Очистка історії

Порівнюючи роботу цієї системи із проектованою мною у дипломному проекті я прийшов до висновку, що весь функціонал та алгоритм роботи  дуже подібний та використання ajax підходу нічим не відрізняється. Для порівняння функціоналу роботи було використано тестову відправку повідомлень між двома користувачами у мережі кожний  із яких був авторизований у системі. Результат роботи проектованого мною у дипломному проекті додатку та AJAX CHAT був  подібний, повідомлення надсилались без затримок у системі обміну повідомлення та ідентифікувались у базі даних одразу після їх відправки, оповіщення були організовані з допомогою ідентифікаторів стану повідомлень що аналогічно у моєму додатку проектування. Повністю адаптивна версія ,некомерційна та з відкритим кодом. Прогресивною особливістю є те що програмна розробка повністю підтримує ajax підхід і це є раціональне рішення для застосунку до свого веб ресурса, системи спілкування.

SmZchat vioo (AJAX)

Аналогічний веб чат створений на основі php mysql та підтримкою ajax технології. Використовується як модуль для підключення до веб ресурсу , не має ліцензії та поширюється у відкритому коді. Основна функція це обмін повідомлення між користувачами сайту та створення кімнат спілкування.

Алгоритм функціонування SmZchat vioo (AJAX)

1.Реєстрація та авторизація користувача

2.Профільна частина користувача

3.Кімната спілкування

3.1 Відправка повідомлень

3.2. Видалення повідомлень

3.3 Редагування повідомлень

4. Розлогінення

Алгоритм роботи системи дуже простий та розбитий по модулях. Частина модулів відповідає за користувацький інтерфейс а інша частина за профіль користувача. Зручний принцип управління профільною частиною користувача. Є можливість вибору кольору для повідомлень, все це створює зручну та просту модель спілкування для веб сайту.

Universal ajax chat

Універсальний чат для системи управління контентом joomla. Використовується для організації системи спілкування користувачів у сайті, підключається як окремий модуль. Класичний приклад веб додатку що спроектований на php 5 з підтримкою mysql бази даних та повністю з підтримкою ajax інтерфейсу користувача. Алгоритм роботи нагадує звичайну систему спілкування типу чат із веденням діалогу користувача окремо по кімнатах спілкування.

Алгоритм функціонування Universal ajax chat

1.Реєстрація та авторизація користувача

2.Профільна частина користувача

3.Кімната спілкування

3.1 Відправка повідомлень

3.2. Видалення повідомлень

3.3 Редагування повідомлень

4. Розлогінення

Як бачимо існує безліч готовий рішень для вирішення завдання дипломного проектування. Враховуючи всі проектні та компонентні рішення можна зробити висновок про те , що системи обміну інформацією ,тобто системи спілкування для веб сайту ,використовують спільний інтерфейс користувача та принцип обміну даними.  Використовуючи алгоритм роботи Universal ajax chat можемо побачити ,що першочерговою ланкою є авторизація користувачів а після вже йде обмін повідомленнями. Алгоритм роботи звичайної системи обміну повідомленнями для сайту нічим не відрізняється від наведених вище прикладів додатків що дає змогу інтегрувати їх абсолютно під будь який веб сайт чи додаток. Для прикладу Universal ajax chat являє собою звичайну системі обміну повідомленнями між користувача проте реалізація програмної частини значно відрізняється від SmZchat vioo (AJAX) за рахунок модульного принципу побудови програмного коду. Додаток що проектується у даному дипломному проекті буде мати модульну програмну структуру. Програмна реалізація всіх вище наведених додатків являє собою використання технологій php ,javascript, xml  та mysql останніх версій  , це дозволяє адаптувати додаток абсолютно під будь який веб ресурс що проектується де потрібно використання ajax системи обміну даними.

Отже для нашого проектування інформаційної системи обміну даних буде використано як приклад програмну реалізацію phpBB Simple chat. Алгоритм роботи phpBB Simple chat за своєю структурою нагадує алгоритм роботи додатку який проектується у даному дипломному проекті а також функціональна частина ,що відповідає за обмін даними між користувачами , ілюструє готовий результат роботи додатку що проектується. Серед інших особливостей можна виділити простоту інтерфейсу для користувачів та систему авторизації, що для прикладу ,у  SmZchat vioo (AJAX) та Universal ajax chat спроектовано досить ускладнено на програмному рівні та алгоритмі роботи. Використовуючи готові рішення додатку ajax chat –чат для joomla(ajax chat joomla) я спроектував модель поведінки інтерфейсу користувача що дає змогу на цьому півні проектування висвітлити основні функції при роботі користувачів, які працюватимуть із веб ресурсом.

Основна інформація що стосувалась теми дипломного проектування сфокусована у пошукових системах таких як google та Wikipedia. Користуючись пошуковими інтерфейсами  було знайдено безліч  публікацій та матеріалів щодо теми дипломного проектування. Теоретичні основи та спекти теми дипломного проектування були доступні сервісом Wikipedia, що дало змогу розглянути сучасний стан  публікацій щодо теми дипломного проектування. Було розглянуто основні визначення та джерела інформації що постійно оновлюються останнім часом. Існує безліч готових додатків та рішень, реалізацій проектів що використовують технологію ajax в основі систем обміну інформацією.  Використовуючи готові рішення для вирішеня завдання дипломного проектування, як за приклад було взято алгоритм роботи phpBB Simple chat. Цей варіант являється  чудовим прикладом ,який демонструє роботу системи обміну інформацією користувачів веб сайту. Основна частина полягає у  тому що потрібно організувати систему обміну інформації, тобто створити веб додаток типу чат як для прикладу у соціальних мережах.  Орієнтація саме на такі готові рішення дала змогу оцінити phpBB Simple chat як чудовий аналог для проектування сласного веб додатку. Готові рішення phpBB Simple chat можна побачити у мережі інтернет за адресою http://phpbbex.com/chat/, де після початкової реєстрації можемо переходити до тестування чату.

3. СИСТЕМНИЙ АНАЛІЗ

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

3.1 Аналіз проблеми

Система обміну інформації в рамках даного дипломного проектування представляється,як веб додаток для обміну інформації між користувачами веб сайту. Система обміну інформації має бути побудована на основі технології ajax, що створює принципово нову проблему проектування даного розділу. Обмін інформацією має здійснюватись між користувачами інтернет сайту, тобто  мають існувати певні діалоги за допомогою яких буде взаємодія між користувачами веб ресурсу. В результаті  реалізується інтерфейс відправки повідомлень в системі, тобто всі повідомлення надсилаються в діалозі користувачів адже це дуже зручно особливо коли повідомлень дуже багато. На цьому етапі проектування система обміну інформації буде представлятися як діалогова система обміну повідомленнями між користувачами, саме діалогова тому що реалізація обміну повідомлень має бути у вигляді діалогів як  для прикладу у соціальній мережі “Вконтакте”.  Транзакція повідомлень у системі повинна відбуватись миттєво без затримок, тобто безпосередньо після того як користувач надіслав запит на відправку. Всі повідомлення якими оперує користувач повинні зберігатись  у системі обміну повідомленнями. Система обміну повідомлення представляє собою веб орієнтовану базу даних.  Відповідно це буде основним вибором для збереження всіх повідомлень у системі для кожного користувача конкретно. Повідомлення не повинні одразу видалятись після того як користувач прочитав. Повідомлення стають не актуальними і зберігаються у системі обміну повідомлення. Формулювання проблеми на даному етапі проектування є досить розпливчасте  тому кінцевий результат проблеми може суттєво відрізнятись від початкового. Для збереження інформації про всі повідомлення що є у системі обміну база даних реляційного типу підходить найкраще. Основною проблемою  цієї частини проектування є використання технології ajax. Використання технології ajax дозволяє  відправляти запити користувача у так званому тихому режимі.  При відправці повідомлення із діалогу повинна бути зреалізована відправка даних на сервер без перевантаження сторінки щой  дозволяє зробити ajax. Адже без використання ajax підправка на сервер здійснюється лише коли веб сторінка оновлюється, це дуже поширений випадок при класичній моделі створеня веб додатків без використання ajax підходу. В такому разі всі поля та форми що заповнені втрачаються і це дуже незручний спосіб проектування для нашого прикладу. Ця проблема являє собою ключовий принцип аналізу на даному етапі.

Організація системи контролю користувачів являє ключовий аспект проектування.  Функціонування додатку неможливе без авторизації або реєстрації користувача. Створення профільної частини для користувача  є обов’язковою складовою функціонування системи. Профільна частина користувача дає можливість санкціонованого доступу до системи, тобто лише після того коли користувач здійснив вхід у систему йому надається можливість  оперувати його власними даними. Тобто потрібно створити можливість входу у систему та реєстрацію щоб відбувся санкціонований доступ. Інформація про користувачів у системі буде зберігатись у базі даних реляційного типу. Загальний аналіз цієї проблеми показує що потрібно розробити алгоритм  роботи авторизації та реєстрації у системі.

Отже як бачимо серед основних проблем проектування є використання технології ajax та профільної частини користувача. Саме на ці аспекти в подальшому буде опрацьовуватись проектна частина. Можемо створити чітку модель дерева проблем що дасть змогу окремо побачити частини системи проектування в цілому.

3.2 Побудова дерева цілей

Слід зауважити, що на практиці, як правило, існує кілька цілей і тому важливо, окрім визначення головної мети, не упустити деякі з суттєвих серед інших. Для цього застосовують метод побудови дерева цілей, що був запропонований ще 1957 року групою американських учених та успішно використаний в ряді військових та промислових програм у США, а нині є повсякденним інструментом практично будь-якого сучасного менеджера.  Метод побудови дерева цілей являє собою один із найрозповсюдженіших та найефективніших способів аналізу слабко структурованих завдань, що стоять перед економічними об’єктами. Він допомагає знаходити найкращі шляхи та засоби вирішення існуючих проблем. Деревоподібні ієрархічні структури використовуються і при дослідженні та удосконаленні організаційних структур.

Отже для побудови дерева цілей будемо використовувати поділ загальної цілі на під цілі, тобто визначимо які основні цілі будуть а які глобальні.

Головна мета(генеральна мета).

Створення системи обміну інформацієї на основі ajax технології буде головною метою нашої проектної розробки. Це є загальне визначення генеральної мети. В результаті у нас повинна функціонувати система обміну даних між користувачами, яка включає в себе всі цілі та досягнення мети.

Підцілі першого рівня.

Підцілі першого рівня є головними цілями що проектуються після генеральної мети. Для визначення цілей першого рівня потрібно організувати структуру та основні функції роботи нашої системи, а саме:

-Вибір середовища програмування

-Авторизація та реєстрація користувачів у системі

-Профільна частина користувача

-Обмін повідомленнями

-Крос браузерність

Підцілі другого рівня.

Для висвітлення цих цілей потрібно чітко зрозуміти які основні розподіли цілей першого рівня існують у системі. Це зумовлено проектуванням на рівні деталізації цілей похідних рівнів. На цьому рівні деталізуються багатообіцяючі цілі які ми проектуємо. Серед таких цілей є:

-Побудова сесії підтримки користувача.

-Збереження сеансу користувача.

-Статуси користувачів

-Статуси та прихід повідомлень

-Розголінення користувачів.

-Організація діалогів на основі ajax.

-Використання універсального фреймворка для кросбраузерності java коду

Підцілі третього рівня.

- Захист профільних даних користувача.

-Автоматичне оновлення індекаторів вповідомлень. (впровадження ajax )

-Автоматичне оновлення індекаторів Користувачів. ( впровадження ajax)

-Створення кімнати спілкування для користувача.

-Використання  фреймворка jquery.(Кросплатформенний)

-Використання js.

Після деталізації та розподілу загальної мети можемо побудувати дерево цілей. Дерево цілей показує які головні цілі нам потрібно виконати і дає змогу вирішити всі явні проблеми на різних етапах а це є оновною проблемою. Отже дерево цілей буде мати 4 лілки: головна мета(генеральна мета на цьому етапі проектування),підцілі першого рівня,підцілі другого рівня,підцілі третього рівня. На рисунку 1 показане дерево цілей яке спроектоване на цьому етапі.

Головна мета(генеральна мета)

Обмін даниим між користувчами

Підцілі першого рівня

Кросбраузерність

Обмін повідомленнями

Профільна частина користувача

Авторизація та реєстрація користувачів у системі

 

Підцілі другого рівня

Організація діалогів на основі технології ajax

Використання універсального фреймворка для кросбраузерності  коду

Статуси  та прихід повідомлень

Статуси користувачів

Збереження сеансу користувача

Побудова сесії підтримкикристувача

Розлогінення користувачів

Підцілі третього рівня

Створення кімнати спілкування для користувача

Автоматичне оновлення індикаторів повідомлень(впровадження ajax)

Автоматичне оновлення індикаторів користувачів(впровадження ajax)

Захист профільних даних користувача.

Використання jquery

Викоистання js

 

Рис1. Діаграма цілей системного аналізу

Отже як бачимо із діаграми цілей системного аналізу інформаційної системи обміну даних всі цілі чітко характеризуються поетапним виконанням поставленого завдання.

3.3 Побудова дерева завдянь

Побудова дерева проблеми включає в себе необхідний етап побудови дерева завдань. Дерево завдань включає  в себе висновки щодо правильної роботи системи, правильної роботи окремих функціональних складових та всіх гілок дерева цілей.

Основні завдання, які повинні бути реалізовані у системі обміну інформацією на основі ajax технології,можна класифікувати за наступними критеріями:

-Іноваційний підхід

-Простота програмного коду

-Кросбраузерність додатку.

-Створення зучного інтерфейсу користувача

Кожен із критеріїв що відповідають поставленому завданню класифікується як окремі складові. Використання такого підходу дає нам можливість розглянути конкретні завдання та розробити алгоритм їх вирішення. Нижче наведені складові для кожного критерію поставленого завдання.

Іноваційний підхід.

Використання сучасного підходу до створення веб додатків вимагає впровадженні все нових та складніших технологій у сфері інформаційних технологій. Іноваційний підхід у нашому випадку включає в себе впровадження сучасного стилю програмування, тобто використання найсучасніших програмних компонентів для отримання результату.  Основні цілі в цьому контексті є автоматичне оновлення даних без перевантаження веб сторінки користувача , обробка запитів у фоновому режимі, використання кросбраузерного піходу у проектуванні нашої системи. Все це можна реалізувати за допомогою ajax інноваційного підходу ,який широко використовуються у веб програмуванні. Потрібно реалізувати використання технології ajax, що дасть змогу автоматично оновлювати дані для користувача та відправляти запити у фоновому режимі без перевантаження веб сторінки. Також потрібно використання сучасного стию програмування ajax підходу. Прогамування функціональної частини додатку буде дуже зручним та простим із використання мови сценарів php. Отже програмування веб додатку буде здійснюватись мовою сценаріїв php а впровадження технології ajax буде зреалізовано клієнтською мовою програмування javascript.

Простота програмного коду.

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

  

Кросбраузерність додатку.

Існує безліч клієнтських програм які користувач використовує для перегляду веб сторінок пербуваючи у мережі інтернет. Один і той самий додаток може по різному інтерпретуватись у різних версіях браузерів. Це зумовлено тим що кожний браузер спроектований різними розробниками які у свою чергу не дотримуються ідентичного стандарту опрацювання веб сторінок. Варіантів для створення програмного коду що однаково інтерпретується браузерами є досить багато. Для створення такого результату потрібно використовувати верстку сайту прийнятну для всіх типів браузерів, а сучасні мови гіпертекстової розмітки сторінок дають змогу це втілити у реальність.

Попросту кажучи, таку характеристику дають сайтам, дизайн яких однаковий як в Internet Explorer, так і в Google Chrome. Відображення сайту при цьому може відрізнятися лише дрібними деталями (наприклад загругленими куточками, рівнем тіні, градієнтної або суцільною заливкою), але не кольоровою гамою, розташуванням елементів, а також, що найважливіше у визначенні даного поняття, структурою сайту, адже особливо багато проблем виникає з блочною версткою.

Часто виникає багато проблем з версіями Internet Explorer нижче 10, тому багато розробників веб-сайтів не турбуються про кросбраузерність, а ставлять сторінку-загрушку, тобто користувач Internet Explorer може бачити лише одну сторінку, на якій йому рекомендується змінити браузер, без можливості перегляду контенту.

Створення зручного інтерфейсу користувача.

Інтерфейс користувача у нашому прикладі відповідає за сприйняття  та простоту динаміки роботи веб додатку. Кожний користувач, який працюватиме із веб додатком безпосередньо у своєму браузері не повинен відчувати ускладненості із боку функціональної частини. Потрібно створити простий та зрозумілий інтерфейс роботи користувача та веб додатку  що й полягає в  основу проектування цієї частини роботи. Потрібно створити динамічно зрозумілу веб сторінку яка буде правильно функціонувати і при цьому виконувати правильно всі команди користувача.

Отже після опрацювання  всіх критеріїв що були розглянуті вище можемо переходити до побудови діаграми дерева завдань.

Рисунок 2 демонструє діаграму дерева завдань.

 

Інформаційна система обміну даних на основі ajax технології

Автоматичне оновлення даних

Автооновлення станів повідомлень та користувачів

Зручність інтерфейсу користування

Кроссумісна верстка сайту. Викристання java script. 

Викристання крос сумісного фраеймворка jquuery(офмфіскшзе)

Кросбраузерність додатку

Модульний принцип

Зрозумілість та цілісність коду

Програмна реалізація мовою php

Програмна реалізація мовою javascript

Простота програмного коду

Іноваційний підхід

Зручний інтерфейс користувача

  

Рисунок 2. Діаграма дерева завдань.

3.4 Обгрунтування та агрегування критеріїв

Під критеріями розуміють кількісні показники якісних цілей, які мають точніше їх характеризувати. Критерії мають якомога точніше відповідати цілям, хоча і не можуть повністю збігатися з ними, оскільки вони фіксуються в різних шкалах вимірювання: цілі — в номінальних, а критерії — в шкалах, що передбачають упорядкування.

При формуванні критеріїв головним є не їх кількість, а те, наскільки повно вони характеризують ціль. Тому тут прагнуть досягти компромісу між повнотою описування цілей та кількістю критеріїв. Для повноти описування проблемної ситуації необхідно розглядати три взаємодіючі системи:

  

  1.  систему, в якій існуюча ситуація розглядається як проблема;
  2.  систему, в рамках якої можна вплинути на проблему для її вирішення;
  3.  зовнішнє середовище, в якому існують та з яким взаємодіють ці дві системи.

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

Надійність системи.

Критерія надійності системи в першу чергу відповідає за захищеність усіх даних що мають обіг у системі а також надійність роботи системи з точки зору апаратних та технічних можливостей. Оскільки наша в першу чергу є система обміну інформацією тому слід врахувати такий фактор як невідказність роботи системи та робота при максимальному навантаження користувачів. Оскільки в системі постійно йде обіг даними між користувачами прослідкувати за всіма транзакціями користувачів з метою запобігання несинхронної роботи системи. При достатньому навантаженні користувачів у системі потрібно прослідкувати за синхронізацією роботи запитів та навантаження роботи на базу даних щоб це не призвело до так званого зависання роботи системи.

Захищеність.

У нашому прикладі захищеність стосується приватних даних усіх користувачів що реєструються у системі обміну інформацією. Кожний користувач має свій власний профіль за допомогою якого він може працювати у системі. Ця можливість надається авторизацією та реєстрацією у системі. Всі дані користувача мають бути захищені з середини системи і це дасть змогу здійснювати лише санкціонований обіг даних користувача. Ця можливість втілюється за допомогою створення окремої бази даних що містись всі дані користувачів та створення так званої “сесії користувача” середовищем мови програмування php. Тобто в загальному розумінні доступ користувачам до своєї інформації буде лише після авторизації або реєстрації у системі.

Швидкість опрацювання.

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

Середовище роботи.

Для повнофункціональної роботи системи потрібно середовище її виконання. Таким середовищем роботи системи є браузер користувача, тобто веб переглядач сторінок. Існує безліч нюансів роботи веб оглядача. Як було сказано раніше повинна бути підтримка роботи мови сценаріїв javascript, що зазвичай деякими користувачами відклюється, в такому випадку повнофункціональна роботи системи неможлива. Веб браузер у кожного користувача на його власному комп’ютері відрізняється тому постає проблема кросплатформенності. Потрібно зреалізувати роботу системи у всіх середовищах виконання одинаково, що дасть змогу

Іноваційний підхід.

Побудова функціоналу роботи сиcтеми зосереджена на використанні сучасних версій мов програмування та синхронізації роботи користувача. Для програмування буде використовуватись мова php((англ. PHP: Hypertext Preprocessor PHP: гіпертекстовий препроцесор). Особливість вибору такого рішення є те що php створений для реалізації саме для таких цілей які нам потрібно і при цьому дуже зручний та простий у використанні. Для  того щоб уникнути класної моделі поведінки веб додатку було прийнято рішення використання технології ajax,яка дасть змогу створити синхронізацію роботи користувача із системою, а саме уникнути перевантаження веб сторінок при відправці даних про що йшлось раніше.

Користувацький інтерфейс.

Робота користувача у системі повинна бути для нього прозора та зручна саме за це буде відповідати створюваний на даному етапі проектування інтерфейс. Основним принципом зручності інтерфейсу користувача буде використання технології ajax. Як говорилось раніше  всі користувацькі запити будуть синхронно відправлятись на опрацювання і при цьому робота користувача не буде перериватись на час виконання обробки запиту.

Аналіз альтернативних шляхів вирішення завдання.

Цим етапом системного аналізу є генерування альтернатив, тобто ідей та можливих шляхів досягнення визначеної мети. Генерування альтернатив є творчим процесом. Тут немає чіткого плану щодо альтернативних рішень та їх побудови, варто оприділити основці принципи та напрямки вирішення завдання аналогічним чином. Генерування альтернативних ідей щодо вирішення визначеної проблеми полягає у використанні подібних способів створення результату на основі вже існуючих. 

Використання альтернативних технологій.

Програмну реалізацію веб додатку було вирішено розробити трьома компонентами, а саме:

-PHP,

-Java Script,

-AJAX.

Використання мови програмування php було зумовлене простотою та зручністю для програміста що дало можливість оцінити її як основний варіант для програмної розробки. Альтернативним шляхом вирішення може слугувати мова програмування Perl. Використовується як мова загального призначення для створення як веб додатків  так і програмного забезпечення різного рівня складності. Perl запозичує можливості з багатьох інших мов програмування, як то Cshell scriptingAWK та sed.] Мова надає потужні можливості для обробки тексту без довільних обмежень на довжину даних багатьох сучасних інструментів Unix, полегшуючи процес маніпуляції текстових файлів. Використовується для програмування графікисистемного адміністрування, у мережному програмуванні, у написанні програмного забезпечення, яке взаємодіє з базами даних, у програмуванні CGI для веб.

Отже доцільним альтернативним рішення програмного рівня буде використання мови perl що підтримує усі потрібні можливості для побудови веб додатку.

Для створення динаміки інтерфейсу користувача було прийнято рішення використання мови сценаріїв, що виконується на клієнтській машині, а сааме java script. Альтернативним рішенням щодо використання java script буде Rhino. Rhino  рушій JavaScript з відкритим сирцевим кодом. Він написаний повністю на Java та підтримується Mozilla Foundation. Mozilla Foundation також підтримує іншу реалізацію рушія JavaScript, написану на C  SpiderMonkey.

Rhino перетворює JavaScript скрипти в Java класи. Rhino працює і у компільованому,та інтерпретованих режимах. Він призначений для використання у веб застосунках на серверному боці, тому в ньому немає вбудованої підтримки для об'єктів браузера, які зазвичай асоціюються з JavaScript.

Rhino може використовуватися як зневаджувач при використанні Rhino Shell. Він також може використовуватися в застосунках при вбудовуванні Rhino.

Використання ajax є основною метою проектної розробки нашого завдання дипломного проектування. Для використання цієї технології було об’єднання трьох суміжних ттехнології, а саме:

  1.  Використання DHTML для динамічної зміни змісту сторінки.
  2.  Використання XMLHttpRequest для звернення до сервера «на льоту», не перезавантажуючи всю сторінку повністю
  3.  альтернативний метод — динамічне підвантаження коду JavaScript в тег <SCRIPT> з використанням DOM, що здійснюється із використанням формату JSON)
  4.  динамічне створення дочірніх фреймів

Щодо використання альтернативної заміни ajax тут можливо спроектувати використання концепції несинхронної обробки даних. Тобто по суті без фонового режиму роботи веб додатку.Ajax сам по собі існує як суміжність технології тому окремої заміни його в націоналі не існує. Для імітуваня принципу ajax можливе створення динамічного підвантаження коду JavaScript в тег <SCRIPT> з використанням DOM, що здійснюється із використанням формату JSON).

3.5 Готові альтернативні рішення

Серед готових альтернативних рішень існує безліч готових прикладів які працюють майже агалогічно, тобто існують моделі та алгоритми які можливо деконстрюувати   під свої цілі. Серед готових ріень які існують в мережі інтернет можливо виділити такі варіанти:

  1.  phpBB Simple Chat v2.1
  2.  Universal ajax chat
  3.  SmZchat vioo

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

Отже враховуючи проведі всі вище системні аналізи та проектні дослідження можемо побудувати відобразити концептуальну модель розвязку завдання. Дерево проблем у нашому випадку буде складатись із трьох гілок ,а с аме:

  1.  дерево цілей.
  2.  дерево завдань.
  3.  дерево альтернативних рішень.

3. 6 Прийняття рішення системного аналізу

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

Технології програмування додатку.

Розглянуті вище способи програмної реалізації додатку будуть найкраще підходити для вирішення цієї задачі. Використання таких мов програмування як php та javascript дасть змогу реалізувати всі поставлені завдання що стосуються проектно-функціональної розробки додатку. Програмування користувацького інтерфейсу повністю покладається на мову програмування  javascript. Базовою технологією що використовується для нашого проектування використовується ajax. Принцип фонового режиму роботи додатку  повністю покладається на суміжну технологію ajax що використовується  наряду із javascript.

Алгоритм роботи додатку.

Алгоритм роботи додатку був вище розглянутий і на даному етапі проектування він буде прийнятий як базовий. Розглядаючи дерево цілей стає зрозуміло, що всі гілки дерева відповідаються функціональним проектним можливостям додатку. Включаючи альтернативні рішеня алгоритмів роботи додатку можемо взяти приклад із готових варіантів роботи систем, що надані для прикладу як аналоги додатку що проектується у даному дипломному проекті. Оцінюючи алгоритм роботи додатку спираємось на критеріальні рішення кі допоможуть визначитись із правильною постановкою роботи всіх пунктів алгориту додатку.

Використання системи збереження даних.

Всі дані що приймають обіг у ситемі мають бути збережені у надійній базі даних. Як дані особистих профілів користувачів так і всі повідомлення що користувачі відправляли та отримували  під час роботи веб додатку мають бути збережені у відповідній базі даних.Таким рішенням є база даних MySQL. Це база даних реляційного типу,що повністю відповідає  птребам проектно розробки додатку. Доступність використання та простота  використання бази даних mysql а программному рівні створює зручний спосіб її використання.

Висновок

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

4. КОНЦКПТУАЛЬНА МОДЕЛЬ.

Даний розділ буде роглядати основні теоретичні шляхи вирішення проблеми дипломного проектування. Буде розглянуто концепрутальний алгоритм роботи додатку та його всі основні функціональні можливості,побудова діаграм uml для характеристики роботи додатку а також розглянуто спосіб інтеграції ajax технології та всі її особливості на програмному рівні веб додатку.

Концептуальний алгоритм роботи веб додатку.

Користувач

Авторизація

Реєстрація

Реєстрація нового користувача  в базі даних

Розлогінення

Персональна сторінка користувача.

Відправка повідомлень

Видалення повідомлень

Редагування повідомлень

Рисунок 3.Концептуальний алгоритм роботи веб додатку

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

Даний алгоритм роботи є класичним при створені веб додатків такого типу.

Концептуальні особливості ajax.

Програмна реалізація нашого веб додатку, що проектується,  в основному залежить від інтеграції ajax технології. Основний підхід в цьому полягає що всі дані які потрібні користувачі будуть автоматично оновлюватись та синхронізуватись із роботою веб додатку.Користувач не повинен самостійно оновлювати дані які йому надсилаються у відповідь його запитів, все це буде виконувати ajax технологія. В цьому розділі буде доцільно розглянути ajax підхід та основні його особливості роботи для нашого веб додатку. Як говорилось раніше, ajax — не самостоятельная технология, а концепция использования нескольких смежных технологий. AJAX базируется на двох основних принципах:

  1.  Використання технології динамічного звернення до веб сервера на льоту без перевантаження всіє веб сторінки, наприклад :
  2.  З використання XMLHttpRequest (основний обєкт);
  3.  Через динамічне створення дочірніх фреймів;
  4.  через динамічне створення тега <script>.
  5.  Через динамічне створеня тега <img>, як це зреалізовано google analytics.
  6.  Використання DHTML для динамічного методу оновлення веб сторінки.

Використання цих підходів дозволяє створювати набагато зручніші веб-інтерфейси користувача на тих сторінках сайтів, де необхідна активна взаємодія з користувачем. AJAX — асинхронний, тому користувач може переглядати далі контент сайту, поки сервер все ще обробляє запит. Браузер не перезавантажує web-сторінку і дані посилаються на сервер без візуального підтвердження (крім випадків, коли ми самі захочемо показати процес з’єднання з сервером).  Використання AJAX стало найпопулярніше після того, як компанія Google почала активно використовувати його при створенні своїх сайтів, таких як GmailGoogle Maps і Google Suggest. Створення цих сайтів підтвердило ефективність використання даного підходу. 

Інтеграція технології у наш веб додаток дасть можливість оновлювати веб повідомлення для користувача автоматично без перевантаження веб сторінки а також  індикатори повідомлень, статуси користувачів. Весь функціонал  веб додатку що проектується буде повністю задіяний із використання технології ajax.

Структура інтерфейсу веб сторінок нашого додатку буде побудована за принципом об’єктної моделі документа DOM. Все цестврюється для того, аби надати можливість комп'ютерній програмі доступу та динамічної модифікації структури, змісту та оформлення документа. Тобто структура нашої веб сторінки буде представлена у вигляді дерева DOM, де кожний елемент представляє собою окремий блок який може динамічно оновлюватись та змінювати свою структуру. Це досягається мовою гіпертекстової розмітки HTML а також каскадними таблицями стилів CSS. В єдності ajax та Document Object Model, створюють можливість динамічного методу оновлення контенту веб сторінок нашого веб додатку.

 

4.1 Модель роботи веб додатку на основі ajax технології

Робота веб додатку на основі моделі аjax буде складатись із таких частин:

  1.  Користувач заходить на веб-сторінку і натискає на який-небудь її елемент.

  1.  Браузер відправляє відповідний запит на сервер.

  1.  Сервер віддає тільки ту частину документа, яка змінилася.

Для  наглядності роботи веб додатку з використання технології ajax зобразимо схему на які буде чітко видно весь механізм взаємодії. Головним критерієм буде чітке відображення ajax запитів до сервера та отримання відповіді у фоновому режимі про що йшлось раніше. Рисунок 4, наведений нижче, демононструє це.

Робоатa Ajax

Виклиик javascript

Запити користувача

Динамічне оновлення даних

передача даних

http

Веб додаток

DOM модель

Передача

HTML,CSS КОНТЕНТ

опрацьованих

даних від сервера

Рисунок 4. Робота додатку з використанням ajax.

Отже, як бачимо всі запити користувача спершу опрацьовуються  через javascript обробник а потім уже надсилаються методом http у подальше опрацювання.  Дані приходять  та оновлюються у моделі DOM, що дає можливість бачити прихід інформації лише у тbх частинах веб сайту де це потрібно. Запит від користувачів проходить на веб сервер безпосередньо через ajax обробник, та далі передаються за сценарієм на відповідний порт веб сервера. Потрібно зауважити що DOM модель повністю спроектована на html розмітці та css  стилях.

4.2 Використання бази даних

Для оперування всіма даними користувачів буде використано реляційну базу даних  MySql. Збереження даних буде відбуватись у таблицях, тобто матрицях,  де є рядки і стовпці. Дані будуть зберігатись у двох таблицях. Таблиця user буде відповідати за збереження даних про всіх користувачів у системі, тобто їх статуси у системі, аутенфікатори. За усі повідомлення, що є у системі обміну повідомленнями, буде відповідати таблиця message. Між цими двома таблицями буде існувати реляційний зв'язок, тобто дані із однієї таблиці відносяться до даних іншої таблиці. Зв'язок буде використовуватись по ідентифікаторах користувачів. Кожний користувач у таблиці буде мати свій власний ідентифікатор, який використовується для ідентифікації користувача у процесі роботи додатку. Після того як користувач зареєструвався у системі всі його дані ідентифікуються під окремим ідентифікатором користувача.  При відправці повідомлення між користувачами створюється система обміну інформації , тобто всі повідомлення зберігаються за окремим ідентифікаторами у таблиці  message.

Структура таблиці user являє собою окремі поля, що мають різний тип даних для кожного окремого запису інформації. Таблиця message має безпосереднє відношення лише до збереження повідомлень користувача, тобто збереження тексту повідомлень, всіх ідентифікаторів користувачів та шляхи повідомлень між користувачами.

Робота із базою даних MySql є дуже зручна та проста , використання реляційної таблиці дає можливість зручного пошуку даних та їх ідентифікації у дуже зручній формі.

4.3 Використання мови html

HTML (англ. HyperText Markup Language  Мова розмітки гіпертексту) — стандартна мова розмітки веб-сторінок в Інтернеті. Більшість веб-сторінокстворюються за допомогою мови HTML (або XHTML). Документ HTML оброблюється браузером та відтворюється на екрані у звичному для людини вигляді.

Загальний вигляд роботи веб додатку проектується мовою гіпертекстової розмітки HTML. У нашому випадку розробка каркасу веб додатку полягає у створенні так званої верстки сайту. Верстка сайту передбачає створення поетапно веб структуру сторінки , яка буде відображатись у браузері користувача. Існує так звана “блочна верстка” сайту, тобто створюються блоки ,які заповнюються контентом і зазвичай це графічна або текстова інформація. HTML існує основним засобом створення моделі веб сторінки а також універсальним методом проектування веб додатків. Створюється блочна можель яка дає можливість розвинути динаміку веб сторінки , тобто інтерактив та мультимедійність. Також побудова всіх гіперпосилань для веб сторінки створюється саме на цьому етапі.

Загальна структура веб сторінки.

Відображення роботи додатку  полягає у html документах, які користувач завантажує та переглядає у вікні свого веб браузера. Структура цих сторінок повністю залежить від проектування та верстки. Нижче наведена структура веб сторінки для нашого веб додатку.

Побудова  веб сторінки буде складатись із таких частин:

  1.  Декларація типу документу (англ. Document type declaration, Doctype), на початку документа, в якій визначається тип документа (DTD).
  2.  Шапка документу (знаходиться в межах елементу head), в якій записано загальні технічні відомості або додаткова інформація про документ, яка не відтворюється безпосередньо вбраузері;
  3.  Тіло документу (може знаходитися в елементах body або frameset), в якому міститься основна інформація документа.

Отже загальна структура  веб сторінки буде складатись із декларації ,шапки документу та тіла документа. 

4.4 Використання php

Програмування веб додатку безпосередньо буде реалізовано мовою php. Як говорилось раніше , мова програмування php,є основним засобом створення динамічних веб сторінок.

Основні функціональні частини веб додатку :

  1.  Реєстрація користувачів
  2.  Авторизація користувачів
  3.  Підтримка сесій користувача
  4.  Розлогінення користувача
  5.  Відправка повідомлень
  6.  Видалення яповідомлень
  7.  Редагування повідомлень
  8.  Індикатор повідомлень
  9.  Індикатор стану користувача

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

4.5 Використання javascript

Для використання технології ajax у нашому веб додатку використано фреймворк jquery. Jquery сгулує хорошою бібліотекою java script яка даэ змогу кросплатформенно організувати використання технології ajax.

Технологія ajax буде використовуватись у таких частинах роботи веб додатку:

-Індикатор повідомлень

-Індикатор користувача

-Відправка повідомлень

-Видалення повідомлень

-Редагування повідомлень

Будуть використовуватись синхронні запити до веб сервера і у відповідь буде оновлюватись контент веб сторінки у автономному режимі без перевантаження веб сторінки. Індикатор повідомлень буде автоматично оновлюватись у поєднанні використання javascript та jquery, тобто будуть робитися проміжкові запити до сервера за наявністю нових даних щодо статусу користувача у системі. Статус користувача буде online або offline. Тобто користувач що зареєструвався або авторизувався у системі має статус online , а користувач, який не зареєструвався або  не авторизувався у системі має статус offline. Індикатор повідомлень є числове значення кількості приходу нових повідомлень для користувача що є у системі. Видалення, редагування та відправка повідомлень відбувається у синхронному режим роботи користувача та веб додатку, тобто користувач може видаляит повідомлення і в той же час буде прихід нового повідомлення без перевантаження веб сторінки. Всі ці запити будуть безпосередньо звертатись до бази даних за даними які розміщені у таблицях, пізніше із бази даних вони будуть оновлюватись вже на контенті веб сторінки.

Для наглядної роботи функціонування веб додатку розглянемо нотацію uml діаграми сценаріїв користування.

Діаграма сценаріїв користування. (use case діаграма)

Для наглядності роботи системи відобразимо відношення прецендентів та акторів що будуть конфігурувати на цьому етапі концептуальної моделі. Рисунок 5 нижче показує спрощену модель роботи веб додатку.

Надсилання повідомлень

Реєстрація

extends

Реєстрація або авторизація користувача

Видалення повідомлень

Авторизація

extends

Редагування повідомлень

extends

Розлогінення у системі

Профільна частина

Актор

extends

Інформаційна система обміну інформацією  на основі ajax технології

Рисунок 5. Спрощена модель роботи додатку на основі діаграми uml.

Висновок

Отже як бачимо із діаграми  що всі преценденти системи мають взаємодію між користувачем та власні розширення які об’єднані у преценденті профільної частини користувача. Ця модель наглядно демонструє шляхи роботи системи та взаємодію всіх окремих частин як єдине ціле.

5. Обгрунтування апаратних рішень.

Формулювання апаратних рішень щодо функціонування та роботи додатку буде насамперед залежати не від апаратних конфігурацій комп’ютера а від засобів , які оперують конанням роботи веб додатку. Тут мається на увазі програмний комплекс роботи веб сервера від якого залежить якість роботи веб додатку. У цьому розділі переважно буде йти мова про технічне та програмне рішення веб сервера для роботи веб додатку. Також буде йти мова щодо втілення апаратного алгоритму роботи додатку стосовно швидкодії та якості відображення а також способу використання: стаціонарного чи портативного.

5.1 Формулювання вимог апаратного рішення

Формулювання вимог, щодо апаратного рішення, залежить від багатьох факторів роботи веб додатку. Правильне функціонування нашого веб додатку неможливе без використання відповідного програмного забезпечення. Програмне забезпечення для роботи веб додатку являє собою комплекс взаємозв’язаних програмних реалізацій що підтримують функціонування самого веб додатку.

Для функціонування веб додатку потрібен повноцінний веб сервер. Веб-се́рвер (англ. Web Server) - це сервер, що приймає HTTP-запити від клієнтів, зазвичай веб-браузерів, видає їм HTTP-відповіді, зазвичай разом з HTML-сторінкою, зображенням, файлом, медіа-потоком або іншими даними. Веб-сервер — основа Всесвітньої павутини. Веб-сервером називають як програмне забезпечення, що виконує функції веб-сервера, так і комп'ютер, на якому це програмне забезпечення працює. Веб сервер містить в собі встаовлене програмне забезпечення яке відповідає за роботу як протоколів зєднання так і самого функціонування веб додатку. Наш веб додаток буде функціонувати безпосередньо лише у середовищі веб сервера. Компютер  сервер повинен містити в собі безліч налаштувань та підключених програмних засобів що забезпечують роботу веб сайтів. Оскільки наш веб додаток призначений для роботи у мережі інтернет , тому серверні програми будуть вимагати чималих апаратних ресурсів.

5.2 Оцінка програмного забезпеченя веб сервера

Для функціонування роботи веб додатку потрібне програмне забезпечення яке  керує його роботою та дозволяє підєднюватись безпосередньо портативно або стаціонарно до веб ресурсу. Робота нашого веб додатку, як було сказано раніше,  полягає у веденні переписки між користувачами що є у системі, тобто існує середовище обміну інформацією. Це відповідно вимагає середовища збереження даних. Функціонал роботи додатку створений мовою програмування php що безпосередньо вимагає інтерпретатора коду. Все це оперується та керується веб сервером та серверною операційною системою про що буде детально сказано нижче. 

Для оперування роботою веб сервера,тобто комп’ютера віддаленого доступу, потрібний веб сервер. Найпоширенішим веб сервером сьогодення є Apache. Apache - відкритий веб-сервер Інтернет для UNIX-подібних, Microsoft Windows, Novell NetWare та інших операційних систем. Apache передусім використовується для передачі через HTTP статичних та динамічних веб-сторінок у всесвітній павутині. Багато веб-застосунків спроектовано, зважаючи на середовище і можливості, які надає цей веб-сервер.  У нашому випадку буде використовуватись веб сервер apache версії 2.2.14.

Інтерпретатор мови програмування є обов’язковою складовою практично будь якого потужного та сучасного веб сервера. У нашому випадку для програмування веб додатку використовувалась мова програмування php версії 5.3.27. Тому для інтерпретації коду цієї мови програмування веб сервер повинен містити підключений та налаштований php.

Робота веб додатку неможлива без використання бази даних. Щоб мати можливість збереження даних та їх оперування потрібно щоб веб сервер мав можливість підтримки сервера бази даних. Найпоширенішим рішення щодо використання веб бази даних є MySql веб сервер бази даних.У нашому випадку буде використано MySql сервер версії 5.2.9.

Також функціонування веб сервера залежить від використання операційної серверної системи. Найчастішим випадком є операційна система сімейства unix це ubuntu або freebsd. У нашому випадку я обрав веб сервер що керується операційною системою freebsd версії 9.

Отже для повноцінного функціонування веб додатку потрібний веб сервер із наступними програмними характеристиками.

  1.  Операційна система freebsd версії 9.
  2.  Веб сервер apache версії 2.2.14
  3.  PHP інтерпретатор версії 5.3.27
  4.  Веб сервер баз даних MySql версії 5.2.9

Також всі вище наведені компоненти плвинні бути налаштовані та функціонувати як едина система у цілому. Апаратні характеристики веб сервера в більшості будуть приділятись саме за його програмними характеристиками. Безпосередньо програмні характеристики є важливим моментом при формулювання апаратних вимог апаратного рішення, потрібно врахування використання та навантаження програмних ресурсів на апаратну частину комп’ютера. З вище наведенх висновків можна оприділити , що потрібний високоефективний веб сервер який має достатньо апаратних ресурсів для використання всієї потужності через  навантаження роботи веб додатком.

  1.  Швидкодія веб дотатку

Для оптимальної роботи веб додатку потрібна  висока пропускна можливість каналу передачі даних веб сервера, тобто щоб швидкість завантаження веб сайту із сервера була досить високою. Це є ключовою умовою при формуванні апаратних характеристик та рішень. У нашому веб додаток не в’являє собою над потужного сервісу що оперує великими обсягами інформації, тому швидкодія роботи додатку не вимагає великих обсягів апаратних засобів. Обмін даними між користувачами вимагає в першу чергу синхронізації роботи веб бази даних. Обираючи веб сервер згідно оцінки швидкодії веб додатку потрібно спиратись на пропускну спроможність каналу передачі даних веб сервера. За допомогою сервіса Ping and Traceroute можна перевірити швидкодію веб сервера сервера. Цей сервіс дозволяє відправити ping та traceroute запити до довільного сервера для оцінки його швидкодії. Можливо визначити швидкість завантаження веб сторінки будь якої складності. У нашому випадку веб сторінка не має безліч мультимедійного контенту та використання потоків відео файлів, тому швидкодія роботи веб додатку буде оптимальною при невеликих апаратних та технічних характеристиках веб сервера. Завантаження веб сторінок додатку буде залежати від реакції відповіді сервера на запити користувача. Навантаженість  на сервер буде в прямому відображатись на роботі веб додатку, тобто чим більше користувачів буде адресувати запити до веб сервера на якому розміщений веб додаток тим більша можливість зменшення швидкодії. Це зумовлено вже людським фактором , тобто веб сервер може бути розрахований на одночасну роботу із 20000 тисячами користувачів а у той час коли їх буде набагато більше веб сервер не буде встигати оброблювати всі запити і далі швидкодія зменшується. Все це залежить також від апаратних характеристик веб сервера, тобто оправної памяті , процесора, обєму зовнішнього накопичувача даних. Це все є ключовими питання при вирішенні оптимальних технічних характеристик веб сервера.

5.4 Спосіб використання

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

Невідмовність системи.

З точки зору невідновності у роботі системи потрібно зважати на достатній рівень захищеності системи та достатню кількість  ресурсів веб сервера, щоб у критичні моменти завантаженості на роботу веб додатку не було відмови системи у наданні послуг. Потрібно обрати потужну модель процесора та достатню кількість оперативної памяті веб сервера, це дасть змогу уникнути відмови роботи веб додатку в разі критичної завантаженості на його роботу. Більшість потужних веб серверів пропонують оптимальні характеристики апаратного забезпечення.

5.5 Характеристики апаратних рішень

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

Серед апаратних рішень будемо опиратись на сучасні процесорні технології та об’єм оправної памяті, об’єм пропускного трафіка та підтримкою всіх сучасних технології .

Скорість передачі даних.

Сервер повинен підтримувати скоріть передачі даних 1000 мб/с. Всі сучасні веб сервери слугують цілому стандарту. Пропускна здатність трафіку визначає можливість навантаження роботи нашого веб додатку.

Обєм оперативної памяті(ОЗП).

Достатній об’єм оперативної памяті  буде 4gb. Повнорежимна та безвідмовна робота веб додатку буде при чотирьох гігабайтах оперативної памяті. Враховуючи програмне забезпечення що у нашому випадку потрібне для функціонування роботи веб додатку цього об’єму оперативної памяті буде достатньо буде достатньо. Веб сервер apache розрахований на використання чотирьох і вище гігабайт оперативної памяті комп’ютера для функціонування повнометражного веб сайту із великою кількістю користувачів у системі. Звичайно для функціонування веб сайтів мультимедійного контенту та з великою кількістю користувачів буде потрібно набагато більше оперативної памяті ніж 4 гігабайти, але для функціонування нашого веб додатку йього буде достатньо.

Процесор.  

Використання процесора відіграє чи не найважливішу роль при формуванні апаратних характеристик комп’ютера. Для повноцінного функціонування ею додатку та веб сервера потрібно щонайменше двох ядерний процесор , з можливістю розпаралелення потоків даних, що забезпечує подвійну швидкодію роботи системи. У нашому випадку доцільно обрати процесор марки intel тому, що ці процесори є найадаптивнішими для використання їх у веб серверній машині. Частота процесора не повинна розходить у межах 2 гігарегц. Такий процесор буде повністю задовольняти всі умови роботи машини сервера.

Жорсткий диск.

Жорсткий диск  являє собою контейнер збереження всіх даних які потрібні для функціонування роботи веб сервера. Веб сервери зараз оснащуються RAID масивами. RAID (англ. redundant array of independent/inexpensive disks)  надлишковий масив незалежних/недорогих дисків для комп'ютера. Дисковий масив — це набір дискових пристроїв, що працюють разом, щоб підвищити швидкість і надійність системи вводу/виводу. Цим набором пристроїв керує спеціальний RAID-контролер (контролер масиву), який забезпечує функції розміщення даних по масиву; а для решти всієї системи дозволяє представляти весь масив як один логічний пристрій вводу/виводу. За рахунок паралельного виконання операцій читання і запису на кількох дисках, массив забезпечує підвищену швидкість обмінів в порівнянні з одним великим диском.

Для функціонування роботи веб додатку достаньо буде 50 мегабайт дискового простору. Це стосовно роботи додатку на звичайній основі без інтеграції його у веб сайт чи інший ресурс. Але для роботи веб додатку на сучасних веб серверах рекомендується обрати сучасні найшвидкісніші накопичувачі даних.

5.6 Доцільний варіант апаратного забезпечення

Отже враховуючи всі вище наведені критерії щодо формування апаратної частини можемо обрати доцільний варіант апаратного забезпечення для функціонування веб ресурсу. Потрібно обрати персональний комп’ютер із такими апаратними харектиристиками:

  1.  Процесор - Intel Xeon Quad-Core E3-1225 v2 (3.2 ГГц)
  2.  Обєм оперативної памяті - 4 ГБ
  3.  Тип оперативної памяті – DDR3 ECC 1600 МГц
  4.  Жорсткий диск - 2 х 500 ГБ SATAII RaidEdititon
  5.  Материнська плата - SuperMicro X7DAE (RTL) Dual LGA771< i5000X> PCI-E+2xGbL 3PCI-X SATA RAID E-ATX 8DDR-II FBDIMM< PC2-5300>
  6.  Блок живлення - Seasonic SS-300TFX 300W.

Використання таких апаратних характеристик веб сервера дасть можливість продуктивно функціонувати проектованому веб ресурсу  у даному дипломному проекті. Сучасний процесор який вказаний вище використовується я у багатьох хостинг провайдерів та серверів домашнього використання.      


6. ДЕТАЛІЗАЦІЯТЕХНІЧНОГО РІШЕННЯ

В цьому розділі буде описано детальні шляхи розвязку поставленого завдання  , розглянуто алгоритми роботи та їх програмне рішення з розробленням системи тестування роботи додатку. Буде детальніше розглянуто технологію ajax та її застосування у нашому веб додатку. Буде розглянуто структуру та побудову файлів функціонування веб додатку разом із програмним кодом.  В першу чергу буде розподілено функціональність веб додатку на основні його складові частини і розроблено програмну реалізацію мовою програмування php.

6.1 Структура роботи веб додатку

Розглянемо взаєморозміщення та певний взаємозв'язок складових частин цілого проекту. Як було наведено раніше структура роботи веб додатку складається із таких частин:

  1.  Реєстрація користувачів
  2.  Авторизація користувачів
  3.  Підтримка сесій користувача
  4.  Розлогінення користувача
  5.  Відправка повідомлень
  6.  Видалення яповідомлень
  7.  Редагування повідомлень
  8.  Індикатор повідомлень
  9.  Індикатор стану користувача

Для вирішення  проблеми програмування всіх структурних частин веб додатку потрібно встанови взаємозв’язок між ними. В першу чергу взаємозв’язок відображається між такими складовими часинами:

1.Реєстрація та авторизація користувачів.

З точки зору програмування реєстрацію та авторизацію користувачів буде доцільно створювати першочергово. Тобто створюємо систему аутенфікованого доступу користувачів і далі на основі цього сстворюємо повнофункціональний веб сайт. Реєстрація та авторизація користувачів завжди відносяться як  один функціональний модуль для веб сайту.

2.Підтримка сесії користувача та розлогінення.

Після того як користувач зареємтрувавя у ситемі чи авторизувався йому надається певний зв'язок із веб сайтом.Цей зв'язок будується за допомогою сесії користувча. Сесія користувача та розлогіненя існують як дві складові частини за рахунок спільної роботи іх функцій. Коритсувач  може  у будь який момент роботи розірвати зв'язок із вебсайтом, тобто перервати виконання сесії користувача.

3.Відправка, видалення та редагування повідомлень.

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

  

4.Індикатор повідомлень та індикатор стану кортсувачів.

Ці два функціонали системи існують як метод оповіщення зміни стану інформації про повідомлення та користувачів на льоту. Доцільно програмування цих двох частини розглядати зараз як окрему функціональну залежність веб сайту.

Отже після розглядання структури роботи веб додатку на функціональному рівні відбулося спрощення взаємозв’язку всіх часник роботи системи.

6.2 Програмна реалізація веб додатку

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

Програмна реалізація веб додатку буде здійснюватись такими технологічними  засобами:

  1.  Php
  2.  Javascript
  3.  Html
  4.  Jquery(бібліотека javascript)
  5.  css

6.2.1  Побудова структури файлів

Побудова файлової структури проекту дозволить розприділити програмний код за його функціональним назначенням.  Потрібно визначити першочергові точки програмування з яких розпочнеться побудова програмного рівня веб додатку. Це є правильним підходи до побудови програмних засобів такого рівня складності. При побудові файлової структури проекту слід врахувати функціональний підхід який був розглянутий раніше, тобто створити файли які будуть відповідати за збереження окремих чатин коду і їх підключення безпосередньо у процесі прогрмування. Це дасть можливість охарактеризувати  процес розробки із точки зору функціонального наслідування. Це є важливим кроком при створені принципу багаторазового використання коду. Нижче на рисунку 6 зображено структуру файлів проектованого веб оатку. Структура файлів буде використана у подальшому проектування.

Інформаційна система обміну даних

Папка із javascript

Папка із jquery

add_user.php

 data_valid.php

 function.php

 deete.php


 logout.php

 login.php

 member.php

 message_user.php

 message.php

 register_new.php

 output.php

 send.php

 style1.css

 send_mes.php

 test_db.php

 test.php

 update.php

 

Рисунок 6.Структура файлів веб додатку

Як бачимо функціонування роботи веб додатку залежить від цілої сукупності взаємозв’язаних файлів. Як було сказано рагніше, був використаний функціональний підхі до побудови веб оатку що безумовно віобразилось на файловій структурі веб додатку.

Уся javascript програмна реалізація буе зберігатись у папці “javascript”.В цій папці будуть збегіратись файли javascript ,які будуть використовуватись для підключення на веб сторінках.

Папка із назвою “jquery” буде містити в собі фреймворки ля роботи з ajax. Файл add_user.php буе відповіати за реєстрацію нового користувача у системі а також за валідність ввеених аних користувача при реєстрації. Файл data_vaid.php буде містити в собі запрограмовані функції, які відповідаються за приключення о бази даних, авторизацію користувача ,реєстрацію, повірки сесії користувача,вивоу повідомлень а аткож збереження повідомлень користувача у базі аних. Для видалення повідомлень користувача буе віповіати програмний код збережений у файлі delete.php. Файл який підключає інші функціональні частини веб оатку має назву function.php. Запуск роботи веб одатку буде розпочинатись із файлу login.php, який ає можливість користувачеві авторизуватись або зареєструватись у системі.Для розлогінення у системі буе використовуватись файл logout.php,який дозволить кожному користувачеві здійснити вихі із свого профілю.Головна сторінка на якій буе знаходитись користувач під час роботи із веб додатком буде генеруватись файлом member.php,який дає можливість здійснювати обмін повідомлення між користувачами та повірку валідності даних користувача при вході.Файл member.php обєнюєв собі весь головний функціонал про роботі із веб оатком а саме обмін аними між користувачами,сатуси повідомлень та користувачів у системі, кімнати спілкування та діалоги.Файл message.php віповіає за віображення всіх повідомлень які є для користувача а також відображає всіх користувачів у системі. Вивоить із бази аних всі повідомлення ля користувачів файл message_user.php.За побудову веб сторіки що відображається у веб браузері користувача віповіає файл output.php,він містить готові функції виводу форм реєстрації користувача а також вивід системної інформації веб сторіки.За реєстрацію нового користувача у системі віповіає файл register_new.php, він аж можливість зробити запис про нового користувача у базу ланихю. Віпрака повідомлень виконується програмним  файлом send.php. Запис повіомлення користувача у базу даних здійснюється за опомогою файлу send_mes.php.Стилізація веб сторінки збережена у файлі stye1.css.Файли test.php та test_db.php використовуються для тестової повірки підключення до бази даних. Для показу всіх авторизованих або зареєстрованих користувачів веб сайту використовується файл update.php.

Загальна структура веб додатку нагадуэ функціонально розгалужену систему що працює як єине ціле.Тобто більшість програмного коу розподілена на окремі функціональні частини та використовується у тих моментах е це дійсно потрібно.

6.2.2  Структура таблиць бази даних

Оскільки у нашій системі будуть мати місце як користувачі так ї їх персональні інформація моту доцільно буе спроектувати два масива ля збереження інформації. Назва бази аних буде мати імя exchange.База даних буде мати 2 масива , тобто таблиці, для збереження інформації ,це таблиця message та register. Таблиця message буде віповідати за інформацію всі повідомлення користувачів а таблиця register за профільну частину користувача.

Структура таблиці message бази даних Mysql.

Назва поля

Тип даних

Розмір

Не пусте

Автоінкремент/Інше значення

id

int

5

not null

auto_increment

to_mes

Int

5

Not null

-

From_mes

Int

5

Not null

-

text

Varchar

50

Not null

-

Status

int

2

Not null

-

data

Varcahr

50

null

Default null

Delete_to

int

10

Not null

-

Delete_from

int

10

Not null

-

Primary_key(id)

Таблиця message складаэться з семи полів різного типу даних. Кожне поле відповідає за збереження окремого змісту інформації. Для побудови таблиці оперують типом даних,розміром даних, дозволом на пусте занчення та автоматичним індексом.

Поле “id” використовується індексації полів даних, тобто кожне повідомлення буде мати свій унікальний індекс. Цей індекс використовується для іутинфікації повідомлення у базі даних а аткож для звернення до цього повідомлення за його ідентифікатором.Це поле є унікальне і воно не може повторятись у таблиці. Максимальний розмір цього поля 5 знаків цілого тип, тобто на мові mysql це тип даних int.

Поле to_mesвідповідає за збереження ідентифікатора користувача який надіслав повідомлення іншому користувачу. Тип даних цього поля int яке може містити 5знаків тобто п’ятизначне число. До цього поля звертаються за ідентифікатором користувача який надсилає повідомлення.Це поле не може бути пустим,тобто не може бути null’.

Поле ‘from_mess’ відповідає за збереження ідентифікатора користувача якому адресоване повідомлення повідомлення іншому користувачу. Тип даних цього поля int яке може містити 5знаків тобто п’ятизначне число. До цього поля звертаються за ідентифікатором користувача якому надсилається повідомлення. Це поле не може бути пустим, тобто null’.

Поле textбуде містити текст самого повідомлення, яке користувач надсилає іншому користувачу. Це поле має тип даних varcharтакож воно неможе бути пустим. Максимальний розмір цього поля 50 знаків,тобто повідомлення може складатись із 50-ти символів.

Поле statusвідповідає за статус повідомлення, тобто коли повідомлення було прочитано користувачем воно ставить статус прочитаного 1 а якщо повідомлення не було прочитано то його статус залишається 0. Це поле має тип данихintа також неможе мати нульового значення ,тобто воно є обов’язковим для використання у ситемі.

Поле ‘data’ відповідає за дату повідомлення яке надсилається.Це поле є обов’язкове його тип даних є ‘varchar’ .Поле по замовчуванню може бути пустим, тобто мати значення ‘null’ а також має значення ‘default null’ що означає початкове зачення  поля заповнюється датою коли було записано повідомлення.

Поле ‘delete_to’ відповідає за видалення повідомлення користувача який видалив повідомлення першим, тобто повідомленн видаляється лише від того користувача який його видалив а у іншого користувача якому повідомлення адресувалось воно залишається. Поле буде містити ідентифікатор користувача який видаляє повідомлення пршим.Це принцип використовується у всіх соціальних мережах та чатах. Тип даних цього поля intі це поле може містити максимум 10 знаків, тобто дсятизначне число.Це поле не може бути обов’язковим.

Поле ‘delete_from’ відповідає за видалення повідомлення користувача котрий видалив повідомлення другим, тобто якщо повідомленя було відмічено на видалення у першого користувача та другого користувача які один одному надсилали повідомлення тоді це повідомлення видаляється повністю із бази у іншому випадку видаляється лище у оного користувача.Це принцип використовується у всіх соціальних мережах та чатах. Тип даних цього поля intі це поле може містити максимум 10 знаків, тобто дсятизначне число.Це поле не може бути обов’язковим.

Структура таблиці register бази даних Mysql.

Для збереження інформації про користувачів у системі використовується таблиця user. Дана таблиця буде містити в собі ідентифікатори користувачів їхні логіни ,паролі а також статус перебування користувача у системі. Вся інформація щодо користувачів у системі буде збереження як особистий профіль користувача, тобто дані які є особистими для кожного хто є зареєстрований або авторизований у системі.

Назва поля

Тип даних

Розмір

Не пусте

Автоінкремент/Інше значення

id

int

5

not null

auto_increment

username

varchar

40

Not null

-

pasword

varchar

40

Not null

-

statys

int

5

Not null

-

Primary_key(id)

Поле із назвою idбуде слугувати для індексації користувачів у системі, тобто кожний користувач буде мати унікальне значення ідентифікатора. Це поле має тип даних ‘int’, тобто цілочисельний тип даних його довжина є максимум 5 знаків. Це поле я автоінкрементоване та неможе бути пустим значенням.

Поле ‘username’ слугує для запису імені користувача що реєструється або авторизується у системі. Це поле має тип даних varchar’, тобто стрічковий тип даних із довжиною у 40 символів.Також це моле не може  бути пустим.

Поле passwordслугує для збереження паролю користувача у ситемі. Тип даних varcharіз довжиною у 40 символів. Поле не може бути пустим.

Для видання статусу користувачеві існує поле ‘statys’.У цьому полі зберігається статус користувача, тобо 1 коли користувач перебуває на веб сайті та 0 коли користувача немає на веб сайті.

База даних буде мати кодування типу utf-8’ яке є міжнародним стандартом який підтримують всі сучасні веб системи. UTF-8 (від англ. Unicode Transformation Format — формат перетворення Юнікоду) — кодування, що реалізовує представлення Юнікоду, сумісне з 8-бітовим кодуванням тексту. Бази даних такого формату кодування є сумісними у всі веб серверних базах даних.

6.2.3 Створення  таблиць бази даних

Create database  exchange

CREATE TABLE `mesage` (

`id` INT(5) NOT NULL AUTO_INCREMENT,

`to_mes` INT(5) NOT NULL,

`from_mes` INT(5) NOT NULL,

`text` VARCHAR(50) NOT NULL,

`status` INT(11) NOT NULL,

`data` VARCHAR(50) NULL DEFAULT NULL,

`delete_to` INT(10) NOT NULL,

`delete_from` INT(10) NOT NULL,

PRIMARY KEY (`id`)

)ENGINE=InnoDB;

CREATE TABLE `register` (

`id` INT(5) NOT NULL AUTO_INCREMENT,

`username` VARCHAR(40) NOT NULL,

`password` VARCHAR(40) NOT NULL,

`status` INT(5) NOT NULL,

PRIMARY KEY (`id`)

)

ENGINE=InnoDB;

6.2.4 Програмуванняголовного виконавчого фалу

Основний файл що відповідає за запуск роботи веб додатку є login.php. Код цього файлу є дуже простий та наглядний. Основна мета це вантажити можливість авторизації або реєстрації користувача у системі. Програмна реалізація файлу login.php наведена нижче.

<?

require_once('function.php');

do_html_header();

login_form();

do_html_footer();

?>

Отже як бачимо файл просто підключає головний функціональний файл веб додатку function.php  а також формує заголовок за допомогою функції do_html_header та нижню частину веб сторінки за допомогою функції  do_html_footer.  У цьому файлі є вивід авторизації та реєстрації користувача  за допомогою функції login_form.

Програмування авторизації користувачів.

Авторизація користувача потрібно для того щоб забезпечити йому доступ до тих ресурсів які належать лише йому і нікому іншому із користувачів. Авторизація буде проводитись на основі введення авторизаційних даних, якими слугує особистий логін та пароль користувача.

Алгоритм роботи авторизації користувача.

1.Введення користувацьких особистих даних, тобто логін та пароль.

2. Перевірка валідності введених даних користувача, тобто чи заповнені всі поля для вводу.

3.Перевірка існування користувача у базі даних та відповідність введених даних авторизації.(Розгалужена гілка алгоритму.)

4.Вхід у особистий профіль користувача.

Розгалужена гілка алгоритму означає що існують варіанти подій в залежності від результату.тНа рисунку 7 зображено блок схему роботи системи авторизації користувача.

Ввід авторизаційних даних

Валідація полів вводу

так

ні

Якщо всі поля заповнені

Перевірка введених даних на відповідність та присутність у базі даних

ні

Дані існують у базі даних

   

   

так

Перехід у профільну частину користувача

Рис 7. Блок схема роботи авторизації користувача

Програмний код авторизації користувача.

Авторизація користувача вимагається першочергово після запуску веб додатку. Стартовий файл роботи веб додатку login.php. Авторизація користувача розпочинається із роботи функції login_form(). Ця функція виводить поля які потрібно заповнити користувачеві для входу у його власний профіль. Файл login.php  Користувач вводить пароль та логін який він при реєстрації вказував і ця інформація вважається конфіденціальною.

function login_form()

{

?>

<a href='register_new.php'>Не зареєстровані–??</a>

<form action="member.php" method='post'>

<p>Name:</p><input type='text' name='username'>

<p>Password:</p><input type='pasword' name='password'>

<input type='submit' value=Увійти >

</form>

<?

}

Отже як бачимо всі дані відправляються на опрацювання файлу member.php який далі працює з базою даних. Форма реєстрації побудована на основі html коду -мови гіпертекстової розмітки веб сторінок.

Програмування реєстрації користувачів.

Реєстрація створюється для збереження персональної інформації про всіх користувачів у базі даних. Інформація про користувачі, що зберігається у базі даних, використовується для повірки введених даних при авторизації у системі.

Алгоритм роботи реєстрації користувача.

1.Ввід особистих даних користувача, тобто логіну та паролю.

2.Перевірка валідності даних, тобто перевірка вводу логіна та паролю на присутність.

3.Перевірка введених даних на присутність у базі даних(розгалужена гілка).

4.Збереження даних користувача у базі даних.

5.Вхід у профільну частину користувача.

Нижче на рисунку 8 наведена блок схема реєстрації нового користувача у базі даних.

Ввід авторизаційних даних

Валідація полів вводу

так

ні

Якщо всі поля заповнені

Перевірка співпадінь існуючих даних

 

так

Дані існують у базі даних

Вивід помилки. Відміна реєстрації

   

   

ні

Перехід у профільну частину користувача

Запис інформації у базі даних

Рисунок 8.Блок схема реєстрації нового користувача у базі даних.

Програмний код реєстрації користувача.

Зареєструватись у системі дає можливість функція login_form(). Ця функція виконується при запуску веб додатку. Функція відображає форму авторизації та посилання на реєстрацію користувача:

<a href='register_new.php'>Не зареєстровані–??</a>

Файл register_new.php ,на який посилається гіпертекст, дає можливість зареєструватись у системі.

<?

require_once('function.php');

do_html_header();

?>

<h1>Реєстрація нового користувача.h1>

<?

display_registration_form();

do_html_footer();

?>

Файл register_new.php містить у собі функцію display_registration_form , що відповідає за вивід діалогу реєстрації нового користувача а також стандартний опис структури веб сторінки що був розглянутий у попередньому розділі. Також відбувається підключення головного функціонального файлу веб додатку це function.php.  Програмний код функції display_registration_form відсилає всі  дані, які користувач заповнив у полях вводу, у файл add_user.php. Програмний код файлу add_user.php наведений у лістингу 3.

<?

require_once('function.php');

$name=$_POST['name'];

$password=$_POST['password'];

session_start();

if(!$name || !$password){echo "Не введені обовязкові поля.";exit;}

if(strlen($name)>16){echo "Імя містить забагато символів. Мак 16.";exit;}

if(strlen($password)>16){echo "Пароль містить забагато символів. Мак 16.";exit;}

if(strlen($password)<6){echo "Пароль містить недостатньо символів. Мін 6.";exit;}

register($name,$password);

$_SESSION['valid_user']=$name;

do_html_header();

echo "Ви успішно зареєстровані у ситемі.Перейдіть на сторінку для зареєстрованих користувачів.";

do_html_url('member.php','Перейти.');

do_html_footer();

?>

Лістинг 3.Програмний код файлу add_user.php

Отже якщо дані користувача відповідають всім поставленим критеріям, здійснюється реєстрація нового користувача у системі функцією register що є у файлі add_user.php. Функція register реєструє нового користувача у базі даних. Лістинг функції register наведений у лістингу 4.     

function register($name,$password)

{

db_connect();

mysql_select_db("user");

$zaput="select * from register where username='$name' " ;

$result=mysql_query($zaput);

if(mysql_num_rows($result)>0){echo "Таке імя вже існує в базі даних ";exit; }

$zaput="insert into register (username,password,status) values('".$name."','".$password."','0')";

$result=mysql_query($zaput);

if(!$result){echo"Помилка запису даних";}

}

Лістинг 4.Функція реєстрації нового користувача у базі даних.

Програмування профільної частини користувача.

Програмування профільної частини користувача буде здійснюватись на основі ajax технології. Для впровадження ajax технології буде використовуватись фреймворк jquery. Це дуже зручний фреймворк ,який дозволяє використовувати всю потужність javascript для роботи із ajax технологією.

Профільна частина користувача буде містити сукупність програмованого функціоналу. У цій частині програмного програмування веб додатку буде проваджено технологіюa jax.  Програмування профільної частини умовно розділено на такі розділи:

-Відправка повідомлень

-Редагуванняповідомлень

-Видалення повідомлень

-Оновлення статусів користувачів та індикаторів повідомлень.

-Розлогування

Програмування функціоналу відправки повідомлень.

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

Алгоритм відправлення повідомлень.

  Ввід повідомлення

Валідація поля вводу повідомлення

Якщо повідомлення набране

так

ні

збереження повідомлення у базу даних

Рисунок 9. Блок схема роботи функціоналу відправки повідомлення

Програмний код функціоналу відправки повідомлень.

Відправка повідомлень здійснюється безпосередньо після реєстрації або авторизації користувача у системі. За обмін повідомлення між користувачами відповідає файл send.php.  При відправці повідомлення спрацьовує javacript код у файлі output.js що знаходиться у папці javascript файлової структури веб проекту. Даний код наведений у лістингу 5, нижче.

 $("#send_to").click(function(){

var id_rewrite_message=$("#id_rewrite_message").text();

$("#id_rewrite_message").remove();

$("#message_send").show();

 

if( $("#text").val()==""){$("#message_send").text("Введіть текст повідомлення!");}

   else{

 

sendMess(to,youText.val(),id_rewrite_message);  

$("#message_send").text("Повідомлення відправлено!");

 $("#message_send").hide(700);  

 $("#text").each(function () {

 $(this).val($(this).data('defvalue'));

});}});

  function sendMess(to,text,id_rewrite_message){

  $.post("send_mess.php",{text: text,to: to,id_rewrite_message:id_rewrite_message});

  }

Лістинг 5. Функція javascript для відправки повідомлення.

Відправка повідомлення розпочинається у випадку коли користувач натиснув кнопку “Відправити”, але перед відправкою відбувається повірка поля вводу повідомлення на непусте знчення. Якщо повідомлення не було введене проте користувач намагається його відправити виникне помилка. Далі  спрацьовує подія яка запрограмована javascript фреймворком jquery.Ця подія записується наступним чином $("#send_to").click(function(){}. Тобто спрацьовує подія при нажиманні користувача на певни елемент веб сторки. У нашому випадку це елемент “send_to”яки ідентифікує кнопку відправки повідомлення. Подія викликає функцію відправки повдмлення sendMess.функція використовує асинхронний запит та відправляє дані на сервер у фоновому режимі, тобто не відбувається перевантаження веб сторінки як при класичній моделі. Функція sendMess має у собі використання ajax функції ‘$.post()’. Функція ‘$.post()’ надсилає введене повідомлення для обробки на сервер у файл send_mes.php. Цей файл відповідає за збереження повідомлення користувача у базі даних. Зміст файлу send_mess.php наведений у лістингу 6.

<?

 require_once('function.php');

 session_start();

db_connect();

$mesage=$_POST["text"];

$to=$_POST["to"];

$id_rewrite_message=$_POST['id_rewrite_message'];

if(isset($id_rewrite_message))

{

$from=user_id($_SESSION["valid_user"]);

send_mess($from,$to,$mesage,$id_rewrite_message);

}

else

{

$from=user_id($_SESSION["valid_user"]);

$id_rewrite_message=0;

send_mess($from,$to,$mesage,$id_rewrite_message);

}

 

?>

Лістинг 6. Файл send_mess.php що відповідає за збереження повідомлення у базі даних.

Отже файл send_mess.php використовує функції php для збереження нового повідомлення користувача у базі даних. Збереження повідомлення у базі даних виконується за допомогоб функції send_mess що э запрограмована у файлі send_mess.php. Цій функції передається у параметри текст повідомлення адресат та відправник. Дані вся ця інформація передається у бзу даних де безпосередньо зберігається як мсив даних користувача.

Програмування функціоналу видалення повідомлень.

Видалення повідомлень буде відбуватись синхронно разом із роботою користувача. За видалення повідомлення відповідає файл user_mesage.js що збережений у папці javascript файлової структури додатку. Повідомлення видаляється лише у тго користувача який його видалив.Якщо обидва користувачі видалили одн  теж повідомлення тоді воно видаляється із бази даних в іншому випадку зберігається.

Блок схема функціоналу видалення повідомлень користувача.  

Запит на видалення повідомлення

Перевірка актуальності повідомлення

якщо повідомлення раніше не видалялось

так

ні

Видалння повідомлення із бази даних.

Видалення повідомлення у того користувача який дав запит на видалення

Продовження роботи системи

Рисунок 10. Блок схема функціоналу виділення повідомлень користувачів.

Отже повідомлення перед видаленням проходить перевірку на актуальність його для іншого користувача. Якщо обидва користувачі видаляють повідомлення тоді воно видаляється із бази даних.

Програмна реалізація функціоналу видалення повідомлень користувачів. У базі даних для того щоб оприділити  видалення повідомлень існує два пол, а саме delete_to та delete_rom. Ці поля зберігають ідентифікатор користувача який видалив повідомлення , тому програмний код оприділяє як саме має здійснюватись видалення повідомлень.

$(document).ready(function(){

 

$(".delete").click(function(){

 

var id=$(this).parent().find(".id_message").text();

 

 

 

var delete_from=$("#delete_from").text();

 

$.post("delete.php",{id:id,delete_from:delete_from});

 

});

Лістинг 7.Видалення повідомлення користувачів.

Із лістингу 7 видно що для виділення повідомлення використовується подія яка реагує на елемент веб сторінки який має ідентифікатор delete. Видалення відбувається за допомогою ajax технології. Ajax функція $.post() відправляє асинхронно дані у файл delete.php. Цей файл видаляє повідомлення конкретного користувача за його ідентифікатором.

Програмування функціоналу редагування повідомлень.

Редагування повідомлень відбувається шляхом перезапису існуючого повідомлення на оновлене. За оновлення повідомлення відповідає файл user_message.js. Коли користувач нажимає на кнопку “Редагувати”  викликаэться подія із фалу user_mesage.js яка має назву rewrie. Повідомлення яке було обране для редагування переміщається у пол. Вводу повідомлень і далі користувач вже відправляє нове повідомлення на місце старого. Повідомлення яке було редаговане замінюється на нову у базі даних під тим самим ідентифікатором. Редагування повідомлення запрограмовано на лістингу 11.

$(".rewrite").live('click',function(){

 

 var text=$(this).parent().find(".rewrite_2").text();

 var id=$(this).parent().find(".id_message").text();

$("#text").text(text);

$("#id_rewrite_message").text(id);

 });

Лістинг 11. Програмний код функції редагування повідомлень.

Отже редагування повідомлення відбувається переміщенням його у поле набору повідомлення а далі користувач відправляє його вже нове іншому користувачу за схемою яка розглядалась вище.

Програмування оновлення статусу користувачів та індикаторів повідомлень.

Статус користувачів та повідомлень зберігається у базі даних. Кожний статус являє собою цифрове значення яке має певне значення. Користувач буде мати статус “online” якщо у базі даних у полі statys стоїть 1 інавпаки якщо 0 тоді статус “ofline”.

Індикатор  повідомлень означає скільки нових повідомлень  було адресовано користувачу. Тобто користувач може бачити прихід нового повідомлення у випадку збільшення індикатора повідомлення на одиницю.

Блок схема функціоналу оновлення статусу користувача.

Запит у базу даних

Перевірка статусу користувача

Якщо користувач маэ статус online

так

ні

 

Вивести статус ofline на екран

Вивести статус online на екран

Рисунок 11. Блок схема функціоналу оновлення статусу користувача.

Отже якщо користувач авторизувався або зареєструвався у системі його статус у базі даних змінюється на 1 а в іншоу випадку залишається по замовчуванню 0. За вивід статусу користувача відповідає  файл output.js що знаходить у папці javascript. У даному фйлі існує функція setinterval ,яка  дає змогу робити проміжкові за часом запити до вб сервера. У нашому випадку функція оновлює статус користувачів кожні 3секунди, тобто робить синхронний запит і повертає результат. Нижче на лістингу 12 представлений код функції на оновлення статусу користувачів.

setInterval('$("#vsi_korustuvachi").load("update.php",{user1:$("#user1").text()});',3000);

Лістинг 12. Функція оновлення статусу користувачів у системі.

Отже дана функція звертається до файлу update.php який у свою чергу робить запити до бази даних. Лістинг 13 демонструє роботу файлу udate.php.

<?

require_once('function.php');

echo "Всі користувачі:";

echo"<br>";

?>

<META http-equiv=Content-Type content="text/html; charset=utf-8 ">

<?

$user=$_POST['user1'];

output_users_to_messages($user);

?>

Лістинг 13. Файл update.php оновлює статус користувачів.

Файл update.php має в собі запрограмовану функцію output_user_to_messages. Дана функція робить звернення до бази даних та повертає вивід всіх користувачів у веб сайті. На лістингу 14 розглянуто код функції output_user_to_messages.

function output_users_to_messages($log_user)

{

db_connect();

mysql_select_db("user");

$zaput="select username,id,status from register where username !='$log_user' " ;

$result=mysql_query($zaput);

while ($row = mysql_fetch_assoc($result)) {

$user=$row['id'];

$user2=user_id($log_user);

$zaput2="select id from mesage where status=0 and to_mes='$user2' and from_mes='$user' ";

$result2=mysql_query($zaput2);

$i=0;

while ($row2 = mysql_fetch_assoc($result2))

{

$i=$i+1;

}

if($row['status']==1){

?>

<font color=blue>

<?

echo "Online ";

?>

</font>

<?

}else{echo "Ofline ";}

echo"<a href='send.php?to=".$row["id"]."'>".$row['username']."</a>";

if($i==0){echo " 0";echo "<br>";}

else{

echo "+".$i;echo "<br>";

}}}

Лістинг 14.Функція оновлення статусу користувачів output_user_to_messages.

Дана функція черпає дані із бази даних та виводить їх у контенті веб сторінки. У дані функції всі користувачі із статусами виводять на веб сторінку у циклічному режимі, тобто розглядаються окремо статуси кожного із користувачів системи.

Оновлення індикаторів повідомлень нічим не різниться від оновлення статусів користувачів. Відбувається синхронний запит у базу даних і пізніше після повернення результату виводять всі статуси повідомлень. Індикатор повідомлення повідомляє про прихід нових повідомлень та змінюється під час перегляду нових повідомлень.

Блок схема оновлення індикатора повідомлення.

Здійснення запиту у базу даних

Перевірка статусу повідомлення

Якщо повідомлення маэ статус  1

так

ні

 

Пропустити  повідомлення

Відобразити повідомлення як непрочитане

Рисунок 12. Блок схем функціонування зміни індикатора повідомлення.

Функція оновлення індикаторів повідомлень слугує output _user_to_messages. Ця функція одночасно використовується для оновлення індикаторів повідомлень та статусу користувача. Код цієї функції що стосується оновлення індикаторів стану повідомлень  наведений нижче у лістингу  15.

if($row['status']==1){

?><font color=blue>

<?

echo "Online ";

?>

</font>

<?

}else{echo "Ofline ";}

 

echo"<a href='send.php?to=".$row["id"]."'>".$row['username']."</a>";

 

Лістинг 15. Програмний код оновлення індикатору повідомлень користувача.

Програмування функціоналу розлогінення користувачів.

Розлогіненя користувача є обов’язковим кроком завершення роботи на веб сайті. Коли користувач нажимає на кнопку Вихід система видаляє сеанс зв’язку користувача із веб сайтом та особистим профілем. Це слугує надійністю збереження інформації користувача від інших. У нашому випадку для підтримки зв’язку користувача та веб сторінки використовуються так ззвані сесії користувача. Сесії слугують для встановлення непостійного зв’язку користувача із веб сайтом. За функціонування системи розлогінення користувачів буде відповідати файл logout.php. Лістинг цього файлу наведений нижче.

<?

require_once('function.php');

session_start();

@$username=$_SESSION['valid_user'];

unset($_SESSION['valid_user']);

$result=session_destroy();

$status=0;

status_user($status,$username);

do_html_header();

echo "Ви успішно вийшли із системи.";

do_html_url('login.php','Ви можете знову увійти до системи.');

do_html_footer();

?>

                  Лістинг 16. Розлогінення користувача у системі.

  Отже після створення сесії користувача існує можливість прослідкувати за дями користувача на веб сайті. Безумовно  використання сесії у даних час є  к один із най ефективніших засобів створення санкціонованого зв’язку користувача із веб сайтом. Для видалення сесії користувача використовується вбудована функція unset. Ця функція видаляє повністю всю інформацію із глобального масива сесій. У нашому випадку ця функція є невідємною частиною роботи системи. Після розлогінення користувача,змінюється його статус у базі даних н неактивний і таким чином можна слідкувати за приходом та покиданням користувачів веб сайту щой реалізовано у нашому випадку.

Оцінка працездатності.

Перевірка працездатності програми полягає в основному у тестуванні всіх функціональних частин та системи в цілому. У нашому випадку  тестування програми є доцільним у наступному:

-Тестування зєднання із базою даних

-Тестування працездатності технології ajax

-Робота сесії користувача.

-Тестування роботи таблиць бази даних.

-Тестування кросплатформенності веб додатку.

Тестування зєднання із базю даних.

Для роботи із базою даних потрібне постійне і надійне зєднання. Для використання постійного зєднання із базою даних було використано php функцію mysql_pconnect. Дана функція встановлює постійний зв'язок із базою даних а також при збої транзакцій  бази даних автоматично відновлює їх. Маніпуляція таблицями бази даних виконується лише через програмний код php. Тестовий запис інформації у базу даних показав хороший результат виконання транзакцій у часі, що дає змогу розробити оптимізований алгоритм тестування.  

Тестування працездатності технології ajax.

Тестування технології полягало у надсиланні тестових запитів на сервер із передачею параметрів. Параметри визначались як тестова інформація для передачі скриптам веб сервера. Тестування швидкості надсилання запитів показало що всі транзакції досить швидко відправлялись та оброблялись тестовими скриптами на сервері. У нашому прикладі піл час надсилання часових циклічних запитів до сервера локальної машини використовуючи технологію  ajax не було виявлено затримки та вдповді від сервера- приймача. Окрім того ajax не створює додаткового навантаження на веб сервер а також з легкістю дає можливість контолю отриманої інформації від сервера.

Робота сесї користувача.

При реєстрації чи або авторизації користувача задіюється запрограмований код створення сесії користувача. При тестовому навантаженні реєстрації     користувачів, сесії були автоматизовано присвоєні всім користувачам без явної затримки. Це дає змогу оцінити з якісної сторони алгоритм аутенфікації у ситемі. Працездатність роботи алгоритму роботи сесій користувача булана найвищому рівні за всіма показниками.

Тестування роботи таблиць бази даних.

При використанні бази даних у тестовому варіанті наповнення даними не було виявлено затримок та простою. Таблиці заповнювались даними без зйвих проблем та зауважень. Кожна таблиця бази даних має режим хешування даних, тому час ви конання запитів до бази даних значно менший.

Тестування кросплатформенності додатку.

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

6.ЕКОНОМІЧНА ЧАСТИНА

1.Вступ

Темою мого дипломного проектування було створення системи обміну інформації на основі ajax технології. У даному дипломному проекті буде докладно розглянуто та продемонстровано технологію AJAX  на основі інформаційної системи обміну даних. Мною буде створено веб ресурс, який надає можливість обімну повідомлення між користувачами ,які зареєстровані або аутенфіковані у системі, завдяки технології асинхронного обімну даних(AJAX),  що дозволить відправляти, редагувати та видаляти повідомлення у асинхронному вигляді без пере загрузки сторінки. Користувач, перебуваючи на веб сторінці, буде продовжувати свою роботу в той час як запити будуть поступати на сервер без перезагрузки веб сторінки,  яка відкрита у вікні браузера користувача в даний момент  Оскільки дана тема на сьогоднішній день є актуальною та сучасною, підхід до створення економічної частини був спрямований на обрахунок впровадження іноваційних рішень та розробку проектного рішення з точки зору використання сучасних технологій. Проектований у даному дипломному програмний продукт повинен мати інноваційний ступінь розроблених рішень щодо ровязку поставленого завдання. Суть проектування полягає у створенні програмного додатку що дає змогу обмінюватись інформацією між користувачами у веб системах та адаптуватись під розробку проектів де є необхідність використання систем обміну інформацією. Використання технології ajax  дасть змогу покращити обмін інформацією та зробити інноваційний підхід до створення веб ресурсу.

2. Розрахунок витрат на розробку та впровадження проектного рішення

  1.  Витрати на розробку і впровадження програмного засобу (К) визначаються як:

К = К12                                                 (1.1)

де К1 – витрати на розробку програмного засобу, грн.;  К2  витрати на відлагодження і дослідну експлуатацію програмного засобу на ЕОМ, грн.

Витрати на розробку програмного засобу включають в себе:

  1.  витрати на оплату праці розробників (ВОП);
  2.  відрахування у спеціальні державні фонди (ВФ);
  3.  вартість додаткових виробів, що закуповуються (ВД);
  4.  транспортно–заготівельні витрати (ТВ);
  5.  витрати на придбання спецобладнання (ВСО);
  6.  накладні витрати (НВ);
  7.  інші витрати (ІВ).

Для проведення розрахунків витрат на оплату праці необхідно визначити категорії працівників, які приймають участь в процесі проектування, їх чисельність, середньоденну заробітну плату спеціаліста відповідної категорії та трудомісткість робіт у людино–днях (людино–годинах).

У проекті бере участь 4 осіб: керівник проекту, двоє інженерів–програмістів та консультант з економіки. Їх заробітна плата становить:

керівник проекту – 2500 грн.;

інженер–програміст – 2900 грн.;

консультант з економіки – 2000 грн.;

Трудомісткість робіт над проектом становить: 20 людино–днів для керівника проекту,  80 людино–днів для інженера–програміста та 2 людино–дні для консультанта.

Середньоденна заробітна плата і–го розробника (ЗПДі) обчислюється за формулою:

                                                 (1.2)

де  ЗПі – основна місячна заробітна плата розробника і–ої спеціальності, грн.; Фм – місячний фонд робочого часу, днів (24 дні).


Розрахунок витрат на оплату праці усіх розробників проекту обчислюємо за формулою:

                                               (1.3)

де niчисельність розробників проекту і–ої спеціальності, чол.;  ti час, витрачений на розробку проекту працівником і–ої спеціальності, дні;  ЗПДі– денна заробітна плата розробника і–ої спеціальності, грн.;

Робота проводилась 4 спеціалістами, які витратили різну кількість днів на розробку системи, що наведені в табл. 1.1.

Розрахунок витрат на оплату праці розробників зводиться у таблиці 1.1.

Таблиця 1.1

Розрахунок витрат на оплату праці

Спеціальність розробника

Кількість

розробників,

чол.

Час роботи,

дні

Денна заробітна

плата розробника, грн.

Витрати на оплату праці, грн.

1

Керівник проекту

1

20

104,17

2083,4

2

Інженер–програміст

2

80

120,83

19332,8

3

Консультант з економіки

1

2

83,83

166,66

Всього

21572,86

  1.  Витрати на оплату праці працівникам тягнуть за собою додаткові зобов'язання підприємства, тобто відрахування на  єдиний соціальний внесок   Вф.

Отже, відрахування на  єдиний соціальний внесок  становитимуть:

ВФ = 21572,86*0,37 = 7981,96 грн.

  1.  Витрати на додаткові вироби, що закуповуються ВД(папір, диски, тощо) визначаються за їхніми фактичними цінами з врахуванням найменування, номенклатури та необхідної їх кількості в проекті. При розробці даного проекту додаткові вироби не використовувалися, обмін інформацією відбувався за допомогою мережі Інтернет (електронна пошта, Skype).
  2.  Витрати на придбання спецобладнання СО) для проведення експериментальних робіт розраховуються в тому випадку, коли для розробки та впровадження проектного рішення необхідне придбання додаткових технічних засобів. Вартість спецобладнання для виконання конкретного проекту визначається на основі специфікації в їх потребі та фактичних цін з урахуванням транспортно–заготівельних витрат  (Втр = 12,5%).

Вихідні дані та результати розрахунків оформлено у таблиці 2.2:

Таблиця 2.2.

Розрахунок вартості спецобладнання

п/п

Найменування обладнання

Марка, тип

Кількість на проект, шт.

Ціна за одиницю, грн.

Сума витрат, грн.

Сума витрат з урахуванням транспортно–

заготівельних витрат, грн.

1

Монітор

Philips 192EL2SB/01 DVI

4

833

3332

3748,5

2

Системний блок

HP 8100E SFF

4

5469

21876

24610,5

Всього

28359

5. Накладні витрати (Нв) проектних організацій включають три групи видатків: витрати на управління; загальногосподарські; невиробничі витрати. Вони розраховуються за встановленими 23% до витрат на оплату праці.

НВ = 21572,86 * 0,23 = 4961,76 грн.

  1.  Інші витрати (Ів) складають видатки, які не враховані в попередніх статтях витрат. Вони розраховуються за встановленими 7% до витрат на оплату праці.

IВ = 21572,86 *0,07= 1510,10 грн.

  1.  Витрати на розробку проектного рішення обчислюємо за формулою:

К1 = ВОП + Вф + ВД + ВСО + Нв + Ів                               (1.4)

K1 = 21572,86+ 7981,96 +0+28359+4961,76+1510,1 = 64385,68 грн.

  1.  Витрати на відлагодження і дослідну експлуатацію системи визначаємо згідно формули:

                                                  (1.5)

де  Sм.г.– вартість однієї години роботи ПК, грн./год.; tвід– кількість годин роботи ПК на відлагодження програми, год.

Вартість однієї години роботи ПК – 0.04872  грн., тобто спожита електроенергія: 0.4 КВт / год. * 0.3648 грн. (тариф) = 0.14592 грн. На відлагодження системи було витрачено 30 днів (30*8 = 240 годин часу), тому:

К2=0,14592*240=35,02 грн.

Отже, витрати на розробку і впровадження програмного засобу становлять:

K =К12= 64420,7+ 35,02 =64420,7 грн.

Результати розрахунків зведено у наступній таблиці1.3:

Таблиця 1.3.

Кошторис витрат на розробку проектного рішення

№ п/п

Найменування елементів витрат

Сума витрат, грн.

1

Витрати на оплату праці

21572,86

2

Відрахування у єдиний соціальний внесок

7981,96

3

Витрати на експлуатацію ПК

35,02

4

Витрати на додаткові вироби, що купуються

57913,82

5

Накладні витрати

4961,76

6

Інші витрати

1510,1

Всього

64420,7

3. Визначення комплексного показника якості

Комплексний показник якості () визначається шляхом порівняння показників якості проектованої системи і вибраного аналогу.

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

Для визначення  використовується система показників технічного рівня і якості, яка містить в собі наступні групи:

  1.  Показники призначення:
  2.  актуальність даного програмного забезпечення;
  3.   ступінь новизни;
  4.  продуктивність;
  5.  універсальність системи;
  6.   відкритість системи;
  7.  створення копій БД;
  8.  підтримання багатокористувацького режиму;
  9.  Показники надійності та безпеки:
  10.   ймовірність помилки;
  11.  надійність обчислення;
  12.   тривалість безвідмовної роботи;
  13.  Патентно–правові показники:
  14.  патентно–правовий статус;
  15.  Ергономічні показники:
  16.   легкість експлуатації;
  17.   гнучкість налаштування.

Комплексний показник якості проектованої системи визначаємо методом арифметичного середньозваженого з формули:

                                                (1.5)

де m – кількість одиничних показників (параметрів), прийнятих для оцінки якості проектованої системи; qі – коефіцієнт вагомості кожного з параметрів щодо їхнього впливу на технічний рівень та якість проектованої системи (встановлюється експертним шляхом), причому:

                                              (1.6)

Сi – часткові показники якості, визначені порівнянням числових значень одиничних показників проектованої системи і аналога за формулами:

                                          (1.7)

де Ппрі, Паі – кількісні значення і–го одиничного показника якості відповідно проектованої системи і аналога.

З попередніх двох формул вибирається та, в якій збільшення відповідає покращенню показника якості проектованої системи. Результати розрахунку зводимо в табл. 1.5.

Отже, комплексний показник якості дорівнює ПЯ = 1,9643.

Таблиця 1.5 

Визначення комплексного показника якості проектованої системи (аналога)

Показники

Числове значення показників, бали

Відносний показник якості, Сі

Коефіцієнт вагомості qі

Сі × qі

Аналог

Проект. прогр. продукт

Актуальність даного ПЗ

5

10

2

0,06

0,12

Ступінь новизни

4

10

2,5

0,07

0,175

Продуктивність

7

9

1,29

0,04

0,052

Універсальність с–ми

5

10

2

0,05

0,1

Відкритість с–ми

2

8

4

0,005

0,02

Обчислення даних

4

9

2,25

0,145

0,33

Створення копій БД

5

10

2

0,04

0,008

Багатокорист. режим

4

10

2,5

0,09

0,225

Надійність обчислення 

5

10

2

0,15

0,3

Тривалість безвідмовної роботи

9

3

3

0,07

0,21

Патентно–правовий статус

6

10

1,7

0,09

0,135

Легкість експлуатації

5

9

1,8

0,01

0,018

Ймовірність помилки

10–2

104

1

0,12

0,12

Гнучкість налаштування

6

10

1,7

0,06

0,102

Всього

1

1,9643

4. Визначення експлуатаційних витрат

При порівнянні програмних засобів в експлуатаційні річні витрати включають вартість підготовки даних (Е1) і вартість годин роботи ПК (Е2) і визначаються за формулою:

                                     (1.8)

де ЕП(А) – одноразові експлуатаційні витрати на проектне рішення (аналог), грн.;  Е1П(А) – вартість підготовки даних для експлуатації проектного рішення (аналогу), грн.;  Е2П(А) – вартість машино–годин роботи ПК для проектного рішення (аналогу), грн.

Річні експлуатаційні витрати визначаються за формулою:

                                      (1.9)

де – експлуатаційні річні витрати проектного рішення; – періодичність експлуатації проектного рішення (аналогу), раз/рік.

Вартість підготовки даних для роботи на ПК (Е1) визначаються за формулою:

                                            (1.10)

де і – номери категорій персоналу, які беруть участь у підготовці даних; ni – чисельність співробітників і–ї категорії, чол.; ti – трудомісткість роботи співробітників і–ї категорії, дні;   – середньогодинна ставка робітника і–ї категорії з врахуванням відрахувань до державних цільових фондів, грн./год.

Середньогодинна ставка оператора визначається за формулою:

                                                     (1.11)

де – основна місячна зарплата працівника і–ї категорії, грн.; b – коефіцієнт, який враховує збори до спеціальних державних фондів (b=0,37); Фг – місячний фонд робочого часу, год.

Отже, для проектного рішення середньогодинна ставка становить:

Вартість підготовки даних для роботи на ПК дорівнює:

E = (1*24*17,84)+(2*24*20,69) = 1421,28 грн.

Вартість машино–годин роботи ПК для проектного рішення становить 35,02 грн. Тоді одноразові експлуатаційні витрати на проектне рішення становлять:

EП = 1421,28 +35,02 = 1456,3 грн.

А річні експлуатаційні витрати з урахуванням того, що періодичність експлуатації проектного рішення дорівнює 2 рази/рік, становлять:

В(е)П=1456,3*2 = 2912,6 грн.

Вихідні дані та результати розрахунків витрат на підготовку даних для експлуатації на ЕОМ зводяться у таблицю:

Над проектом–аналогом працює 2 старший науковий співробітник та 3 інженера–програміста. Їх місячні заробітні ставки відповідно 26325 грн. та 11800 грн. Тоді середньогодинна ставка для кожного з них становить:

Таблиця 1.3 

Розрахунок витрат на підготовку даних для роботи на ЕОМ


Категорія персоналу

Чисельність співробітників і–ої категорії, чол.

Час роботи співробітників і–ої категорії, год.

Середньогодинна ЗП співробітника і–ої категорії, грн.

Витрати на підготовку даних, грн.

Проектне рішення

Керівник проекту

1

24

17,84

428,16

Інженер–програміст

2

24

20,69

993,12

Всього

1421,28

Аналог

Старший наук. спів–к

2

20

187,84

7513,6

Інженер–програміст

3

16

84,2

4041,6

Всього

11555,2

грн.

грн.

Трудомісткість роботи за проектом–аналогом становить 30 днів для старших наукових співробітників і по 60 днів для інженерів–програмістів. Тоді вартість підготовки даних для роботи на ПК дорівнює:

грн.

Вартість машино–годин роботи ПК для проекту–аналогу становить 87,80 грн. Тоді одноразові експлуатаційні витрати на аналог становлять:

грн.

А річні експлуатаційні витрати з урахуванням того, що періодичність експлуатації аналогу дорівнює 12 разів/рік, становлять:

грн.

5. Розрахунок ціни споживання проектного рішення

Ціна споживання (Цс) – це витрати на придбання і експлуатацію проектного рішення за весь строк його служби:

                                (1.12)

де ЦП  – ціна придбання проектного рішення, грн.;   – теперішня вартість витрат на експлуатацію проектного рішення (за весь час його експлуатації), грн.:

                              (1.13)

де  Пр – норматив рентабельності (24,5%);  Ко – витрати на прив'язку та освоєння проектного рішення на конкретному об'єкті, грн., Ко = 1000 грн.;  КК – витрати на доукомплектування технічних засобів на об'єкті, грн., КК = 2000 грн.;  СПДВ – ставка податку на додану вартість (20 %).

ЦП = 64420,7*(l+0,245)*(l+0,2)+1000+2000= 99244,5 грн.

Ціна придбання аналога відома і дорівнює:   

ЦП(а) = 100000,00грн.

Теперішня вартість витрат на експлуатацію проектного рішення розраховується за формулою:

                                                  (1.14)

де – річні експлуатаційні витрати в t–ому році, грн.;  Т – строк служби проектного рішення, років; R – річна ставка проценту банків (22%).

Оскільки впродовж всього строку експлуатації , то:

                              (1.15)

де РV – ставка дисконту на період Т, яка визначається залежно від процентної ставки (R) і періоду експлуатації (Т).

При R = 0,22РV має такі значення:

T

0

1

2

3

4

5

РV

1,0

0,82

1,51

2,07

2,54

2,93

Оскільки термін експлуатації проектного рішення становить 3 роки, тоді РV = 2,07. Отже, теперішня вартість витрат на експлуатацію проектного рішення становить:

B(E)NPV= 2,07 * 2912,6 = 6029,08 грн.

Таким чином ціна споживання проектного рішення становить:

ЦС(П) = 99244,5 + 6029,08 = 105273,58 грн.

Аналогічно визначається ціна споживання для аналогу. Визначимо теперішню вартість витрат на експлуатацію аналогу. Термін експлуатації аналогу становить 3 роки, тоді РV = 2,07. Оскільки , то:

грн.

Отже, ціна споживання проекту–аналогу становить:

грн.

6. Визначення показників економічної ефективності

Оскільки базою для порівняння обрано відповідний програмний засіб, в даному розділі розраховуються такі показник

  1.  Показник конкурентоспроможності:

                                               (1.16)

ККС=244606,06 *1,9643/105273,58 = 4,56

2) Економічний ефект в сфері експлуатації:

                                            (1.17)

ЕЕКС = 698582912,6 = 66945,4 грн.

  1.  Економічний ефект в сфері проектування:

                                             (1.18)

EПР= 10000099244,5 = 755,5 грн.

Оскільки Епр>0 та Еекс>0, то розраховуємо:

  1.  Додатковий економічний ефект в сфері експлуатації:

                                   (1.19)

ЕЕКС Д = 66945,4 *(1,220+1,221+1,222) = 263095,42 грн.

  1.  Додатковий економічний ефект в сфері проектування:

                                         (1.20)

ЕПР Д = 755,5 *(1+0,223) = 1371,87 грн.

Термін окупності витрат на проектування рішення:

                                                  (1.21)

ТОК= 64420,7/ 66945,4 = 0,96 року

Результуючі показники економічної ефективності зводяться у таблиці 1.4.

Таблиця 1.4 

Показники економічної ефективності проектного рішення

Найменування показників

Одиниці вимірювання

Значення показників

Аналог

Проектне рішення

1 Капітальні вкладення

грн.

64420,7

2 Ціна придбання

грн.

99244,5

3 Річні експлуатаційні витрати

грн.

2912,6

4 Ціна споживання

грн.

105273,58

5 Економічний ефект в сфері експлуатації

грн.

66945,4

6 Додатковий економічний ефект в сфері експлуатації

грн.

263095,42

7 Економічний ефект в сфері проектування

грн.

755,5

8 Додатковий економічний ефект в сфері проектування

грн.

1371,87

9 Термін окупності витрат на проектування рішення

роки

0,96

10 Коефіцієнт конкурентоспроможності

4.56

7. Висновки по економічній частині 

У цьому розділі дипломної роботи проведено розрахунок показників економічної ефективності проектного рішення та його аналогу.

Ціна придбання проектного рішення становить 99244,5 грн., річні експлуатаційні витрати 2912,6 грн., економічний ефект в сфері експлуатації 66945,4 грн., економічний ефект в сфері проектування 755,5 грн. Наведені розрахунки доводять доцільність розробки, оскільки забезпечується економія капіталовкладень в розробку програмного продукту та значно покращується річний економічний ефект, який отримується користувачами розробленої системи. Економічна ефективність розробки  програми підтверджує її доцільність, а універсальність та практичні результати підкреслюють необхідність подальшого розвитку. Серед вагомих показників, на які слід звернути увагу, є показники надійності , що перевищують аналог в два рази. Цього було досягнуто використанням генетичних алгоритмів.

Отже, поруч із очікуваним ефектом від впровадження подібних інформаційних  систем, розроблена система має порівняно аналогічну  ціну, стабільний  коефіцієнт конкурентоспроможності, а її експлуатаційні витрати значно нижчі, ніж витрати аналога.

 

 

 

Висновок.

Під час проектування розвязку задачі, яка була поставлена у даному дипломному проекті, я здобув навики та принципи вирішення завдань такого типу. У ході  проектування завдання освоїв соновні принципи та підходи щодо розробки автоматизму вирішення проблем поставленого завдання. Основною метою мого проектування було освоєння використання системного аналізу, декомпозиції проблеми ,знаходження оптимальних шляхів  вирішення проблеми а також задіяти використання ajax при створені веб додатків такого типу. Судячи із кінцевого результату проектування, вирішення проблеми за темою дипломного проектування було здійснено в повному обсязі. Мною було засвоєно принцип інтеграції технології AJAX у веб ресурс та основні прогамні реалізації роботи ajax на стороні клієнтської машини. Вивчив методи декомпозиції проблем та складних ємкісних завдань. Вивчив основпі підходи до побудови програмних структур мовою php а також javascript. Розглянув сервісні функції роботи веб браузерів в різних операційних системах для побудови кросбраузерності веб ресурсу. Для використання бази даних  мною було освоєно синтаксис mysql та основні функціональні можливості реляційних таблиць. Для роботи із ajax технологією освоїв використання javascript фреймворка jquery. Для перевірки роботи системи вивчив підхід до створення тестового алгоритму для веб додатку.

В кінцевому результаті проектування мною був розроблений веб додаток з використання ajax технології, який має можливість слугувати повноцінною діалоговою системою спілкування для веб сайту. При використанні ajax я навчився працювати із javascrip та прогамувати динамічні функції на мові php для впровадження їх роботоздатності у веб ресурс.

Існують і шляхи вдосконалення даного програмного рішення запропоноване у цьому дипломному проектуванні. Програмний код додатку можливо модифікувати під кросбраузерний режим сумісності потративних пристроїв. Це дасть змогу працювати веб додатку у будь яко пристрої що має вбудований веб браузер та вихід у мережу.

Дипломний проект надав мені можливість вивчити новітні технології програмування інтернет сайтів та освоїти сучасні методи та підходи до проектування веб додатків високо рівня складності.Навчився використовувавти та програмувати  технологію ajax у веб додатках.

 

  




1. Экономическая реформа в Болгарии и проблемы ее интеграции в мировую экономику
2. Нападения крестноносцев на Русь
3. выплёскивают на ребёнка
4. реферат дисертації на здобуття наукового ступеня кандидата медичних наук Київ 1999 Ди
5. КОНТРОЛЬНАЯ РАБОТА ПО ДИСЦИПЛИНЕ
6. Плоды просвещения Дата проведения- 23 июня 2006 г
7. і. 2001 жыл~ы 8 желто~санда~ы N 266 Б~йры~ына с~йкес ~аза~стан Республикасыны~ Елбасы Н
8. Хифессобрикон гетерорабдус
9. О причинах и условиях нарушения сексуального здоровья у женщин
10. Совершенствование системы складирования на ООО «Транс-Рейд-34»
11. Тема 5 1. Юридична відповідальність за екологічні правопорушення є важливим засобом забезпечення законно
12. обязательные платежи Предположим ваш главбух ~ настоящий профи
13. Тема 2 Субъекты административноправовых отношений
14. Контрольная работа- Исследование Дальневосточного федерального округа
15. Тема 10- Гетерофункциональные соединения алифатического ряда Время- 3 часа 1
16. Праця та її роль у розвитку людини і суспільства
17. Реферат- От Поварской Слободы до Поварской Улицы
18. Записки українського самашедшого насичений мікс художньої літератури внутрішніх щоденників сучасного
19. Этот механизм позволяет серверу действовать от лица клиента при доступе к объектам к которым сам сервер не
20. Макроэкономика Задача 1