Первая страница
Наша команда
Контакты
О нас

    Головна сторінка



1Аналіз існуючих реалізацій та вибір алгоритму роботи системи 8

1Аналіз існуючих реалізацій та вибір алгоритму роботи системи 8




Сторінка16/16
Дата конвертації10.03.2017
Розмір0.85 Mb.
1   ...   8   9   10   11   12   13   14   15   16

4.4 Висновки до розділу

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



  • витрати на розробку та її впровадження складають 78 000 грн.

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

    , що не перевищує задане у ТЗ значення;

  • абсолютний ефект розробки складає 413 000 грн. за три роки або 137 000 грн. щорічно, що також задовольняє значення задане у ТЗ.

  • за здійсненими підрахунками було виявлено, що внутрішня норма дохідності була досягнута і складає 58,7%;

  • термін окупності системи, що розробляється складає 1,7 років, що вписується в задані у ТЗ часові рамки та є показником доцільності розробки.

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

Висновки

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

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

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

У третьому розділі проведено аналіз основних функції що повинна виконувати система, розроблено архітектурну та структурну моделі програми, UML – діаграму використання. Розроблені схеми програми, даних, роботи системи та ресурсів системи. Описано основні напрями створення додатку та механізми розробки програмного продукту такі як: SharedPrefarences, Intents, Facebook SDK та найпопулярніші рекламні сервіси.

У четвертому розділі із використанням нормативної літератури було здійснено обрахування основних витрат та термін окупності власної розробки. Доведено, що запропоноване технічне рішення є економічно доцільним, оскільки, надасть змогу отримати прибуток, який окупить вкладені в розробку кошти за 1,7 років. Крім підвищення ефективності технологічного процесу дана розробка дасть змогу отримати щорічний прибуток в розмірі 137 000 грн.

Технологі́чний проце́с - це впорядкована послідовність взаємопов'язаних дій та операцій, що виконуються над початковими даними до отримання необхідного результату.

Мета роботи була досягнута шляхом використання додаткових протоколів обміну інформацією та peer-to-peer зєднанням клієнтських додатків.

Отримано такі додаткові функціональні можливості:



  • передавання бінарних даних у вигляді файлів використовуючи peer-to-peer мережі, що дозволяє підвищити швидкодію на 30% відносно існуючих методів;

  • компресія даних, що передаються зменшує кількість переданої інформації на 17%.

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

Література





  1. Контроль і управління в складних системах (КУСС-2014). ХІІ Міжнародна конференція. Тези доповідей. Вінниця, 14-16 жовтня 2014 року. — Вінниця: ВНТУ, 2014. — 222с.

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

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

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

    Робітники́, також працівники́, трудівники́ - наймані особи, зайняті в безпосередньому виробництві, рідше у сфері послуг; виконавці найнижчої ланки технологічного чи управлінського ланцюга. В правовому суспільстві права й інтереси робітників захищено трудовим правом[Джерело?].

    Вінниці та області [Електронний ресурс]: — Режим доступу: http://conferences.vntu.edu.ua/public/conferences/5/schedConfs/4/program-uk_UA.pdf

  3. Клиент-серверные технологии. [Електронний ресурс]: — Режим доступу: http://www.informator.ru/nkl_server.html — (18.05.2016) — Назва з екрану.

  4. Использование операционных систем [Електронний ресурс]: —Режим доступу: http://rutv.ru/brand/show/episode/519244. – Назва з екрану.

  5. SSL certificates. [Електронний ресурс]: — Режим доступу: http://freessl.com/ — (18.05.2016) — Назва з екрану.

  6. Le, Anh. MicroPlay: a networking framework for local multiplayer games. / Lorenzo Keller, Christina Fragouli, Athina Markopoulou // Proceedings of the first ACM international workshop on Mobile gaming. — NY.: ACM, 2012. — сс.13-18.

  7. Лорен Дэрси. Программирование под мобильную ОС от Google / Лорен Дэрси. — М.: ПОЛИГРАФИЗДАТ, 2009. — 409 с.

  8. Benjamin Muschko. Gradle in action / Benjamin Muschko. — NY.: Manning, 2014. — 456 с.

  9. Bill Phillips. Android Programming: The Big Nerd Ranch Guide (Big Nerd Ranch Guides) / Bill Phillips. — Atlanta.: Big Nerd Ranch, 2013. — 625 с.

  10. Android weekly. [Електронний ресурс]: — Режим доступу: http://androidweekly.net/ — (19.05.2016) — Назва з екрану.

  11. Wei-Meng Lee. Android Application. Development Cookbook / Wei-Meng Lee. — NY.: Wiley, 2013. — 385 с.

  12. Мельникова О.М. Смартфоны на Android. / О.М. Мельникова М.: Издательство Эксмо, 2013. — 127 с.

  13. Burnette, Ed. Hello, Android: introducing Google's mobile development platform / Burnette, Ed. — Pragmatic Bookshelf, 2009. — 250 c.

  14. Начало работы с Hangouts. [Електронний ресурс]: — Режим доступу: https://www.developers.google.com/ /hangouts/getting-started — (18.05.2015) — Назва з екрану.

  15. Луцький Г.М. Компютерні мережі / Г.М. Луцький. — К.: Юніор, 2005. — 397 с.

  16. Cockburn, Alistair. Agile software development: the cooperative game. — NY.: Pearson Education, 2006. — 503с.

  17. Use XMPP to Create Your Own Talk Client. [Електронний ресурс]: — Режим доступу: http://www.opensourceforu.com/2012/06/use-xmpp-to-create-your-own-google-talk-client/ — (2.06.2016) — Назва з екрану.

  18. Мобильный протокол MTProto. [Електронний ресурс]: — Режим доступу: https://dev.stel.com/mtproto — (18.05.2016) — Назва з екрану.

  19. OSCAR (ICQ v7/v8/v9) protocol documentation. [Електронний ресурс]: — Режим доступу: http://iserverd1.khstu.ru/oscar/ — (18.05.2016) — Назва з екрану.

  20. Знакомство с протоколом XMPP. [Електронний ресурс]: — Режим доступу: http://www.ibm.com/developerworks/ru/library/x-xmppintro/ — (18.05.2016) — Назва з екрану.

  21. Cay S. Horstmann. Big Java Early Objects / Cay S. Horstmann. — NY.: Wiley, 2015. — 1444 с.

  22. Robert Lafoe. Data Structures & Algorithms in Java / Robert Lafoe. — London: SAMS, 2013. — 703 с.

  23. Murat Yener. Expert Android Studio / Murat Yener. — NY.: Wiley, 2016. — 600 с.

  24. Android studio for developers. [Електронний ресурс]: — Режим доступу: https://developer.android.com/intl/ru/sdk/index.html — (18.05.2016) — Назва з екрану.

  25. Вязовик Н.А. Программирование на Java / Вязовик Н.А. — М.: Интуит, 2016. — 600 с.

  26. Java language specification. [Електронний ресурс]: — Режим доступу: https://docs.oracle.com/javase/specs/jls/se8/html/index.html — (6.06.2016) — Назва з екрану.

  27. Голощапов А.Ю. Android. Программирование для мобильных устройств / А.Ю. Голощапов. — М.: СОЛОН-ПРЕСС, 2011. — 128 с.

  28. Рето Майер. Android. Программирование приложений для планшетных компьютеров и смартфонов / Рето Майер. — М.: ЕКСМО, 2011. — 671 с.

  29. Эд Бурнет. Android. Разработка мобильных приложений / Эд Бурнет. — СПб.: Питер, 2012. — 256 с.

  30. Dave Smith. Android Recipes A Problem-Solution Approach / Dave Smith. — NY.: APRESS, 2012. — 911 с.

  31. Greg Nudelman. Android Design Patterns: Interaction Design Solutions for Developers / Greg Nudelman. — NY.: Wiley, 2012. — 459 c.

  32. Jason Wai. Android database programming / Jason Wai. — London: PACKT publishing, 2012. — 197 с.

  33. Mike Wolfson. Android developers tools. Essential / Mike Wolfson. — London: O'Reilly Media, 2013. — 232 с.

  34. Android apps weekly. [Електронний ресурс]: — Режим доступу: http://appsweekly.androidauthority.com/ — (19.05.2016) — Назва з екрану.

  35. Дейтел П. Android для разработчиков / Дейтел П. — СПб.: Питер, 2015. — 384 с.

  36. Rogers, Rick. Android application development: Programming with the Google SDK / Rogers, Rick. — O'Reilly Media, Inc., 2009. — 334 c.

  37. Picasso framework for Android. [Електронний ресурс]: — Режим доступу: http://square.github.io/picasso/ — (6.06.2016) — Назва з екрану.

  38. Сайт Александра Климова [Електронний ресурс]: Освой Android играючи — Режим доступу: http://developer.alexanderklimov.ru/android/ — (6.06.2016) — Назва з екрану.

  39. Jason Morris. Android User Interface Development — Beginners Guide / Jason Morris. — London: PACKT publishing, 2011. — 287 с.

  40. Ian G. Clifton. Android User Interface Design: Turning Ideas and Sketches into Beautifully Designed Apps / Ian G. Clifton. — NY.: Wiley, 2014. — 381 c.

  41. Брайн Харди. Android. Программирование для профессионалов / Брайн Харди. — Atlanta.: The Big Nerd Ranch Guide, 2016. — 640 c.

  42. Android developers. [Електронний ресурс]: — Режим доступу: http://developer.android.com/intl/ru/index.html — (18.05.2016) — Назва з екрану.

  43. Crashlytics for Android apps. [Електронний ресурс]: — Режим доступу: http://try.crashlytics.com/ — (19.05.2016) — Назва з екрану.

  44. Wallace Jackson. Pro Android Graphics / Wallace Jackson. — London: APRESS, 2012. — 679 с.

  45. Dave Smith. Android Recipes A Problem-Solution Approach / Dave Smith. — NY.: APRESS, 2012. — 911 с.

  46. Google Testing Tools For Android.. [Електронний ресурс]: — Режим доступу: https://code.google.com/p/android-test-kit/wiki/Espresso — (9.06.2016) — Назва з екрану.

  47. Котляров В.П. Основы тестирования программного обеспечения / В.П. Котляров. — М.: Издательство Бином, 2009. — 285 с.

  48. Ableson Frank. Unlocking Android. / Ableson, Frank, Charlie Collins, and Robi Sen. // Greenwich: Manning, 2009. — p 26.

  49. Laird Dornin. Programming Android / Laird Dornin. — London: O'Reilly Media, 2011. — 463 с.

  50. Варакин М.В. Разработка мобильных приложений под Android: учебное пособие / М.В. Варакин; Центр компьютерного обучение "Специалист" при МГТУ им. Н.Э. Баумана — Москва, 2012 — 128с.

  51. Gibler Clint. AndroidLeaks: automatically detecting potential privacy leaks in android applications on a large scale. / Gibler, Clint, Jonathan Crussell, Jeremy Erickson, and Hao Chen // Trust and Trustworthy Computing — Springer Berlin Heidelberg, 2012. — pp 291-307.

  52. Raghav Sood. Pro Android Augmented Reality / Raghav Sood. — NY.: APRESS, 2013. — 320 с.

  53. Голощапов А. Л. Google Android: системные компоненты и сетевые коммуникации СD / А. Л. Голощапов. — Санкт-Петербург: БХВ-Петербург, 2012. — 384 с

  54. Rogers Rick. Android Application Development / Rick Rogers, John Lombardo, Zigurd Mednieks. — NY.: Addison-Wesley Professional, 2012. — 444 с.

  55. Медникс З. Программирование под Android / З. Медникс, Л. Дорнин. — Спб.: Питер, 2013. — 491 с.

  56. John Horton. Android: Programming for Developers / John Horton. — London.: Packt Publishing, 2016. — 1136 с.

  57. Jim Willson. Creating dynamic UI with Android Fragments / Jim Willson. — London: Packt publishing, 2013. — 120 с.

  58. Android authority. [Електронний ресурс]: — Режим доступу: http://www.androidauthority.com/ — (4.08.2016) — Назва з екрану.

  59. Мельникова О.М. Смартфоны на Android. / О.М. Мельникова — М.: Издательство Эксмо, 2013. — 127 с.

  60. BroadcastReceiver Overview. [Електронний ресурс]: — Режим доступу: http://developer.android.com/intl/ru/reference/android/content/BroadcastReceiver.html — (17.05.2016) — Назва з екрану.

  61. Mobile Ads SDK for Android. [Електронний ресурс]: — Режим доступу: https://developers.google.com/admob/android/quick-start — (16.05.2016) — Назва з екрану.

  62. Kevin Smith. XMPP: The Definitive Guide/ Kevin Smith. — London: O'Reilly Media, 2009. — 310 с.

  63. XEP-0138: Stream Compression. [Електронний ресурс]: — Режим доступу: https://xmpp.org/extensions/xep-0138.html — (4.11.2016) — Назва з екрану.

  64. XEP-0166: Jingle. [Електронний ресурс]: — Режим доступу: http://xmpp.org/extensions/xep-0166.html#appendix-legal — (4.11.2016) — Назва з екрану.

  65. Introduction to libjingle. [Електронний ресурс]: — Режим доступу: https://developers.google.com/talk/libjingle/developer_guide — (18.10.2016) — Назва з екрану.

  66. Andy Oram. Peer-to-Peer Harnessing the Power of Disruptive Technologies / Andy Oram. — London: O'Reilly Media, 2001. — 450 с.

  67. Методичні рекомендації з комерціалізації розробок, створених в результаті науково-технічної діяльності – К.: Наказ Державного комітету України з питань науки, інновацій та інформатики (Лист № 1/06-4-97 від 13.09.2010 р.).

    Іннова́ція - ідея, новітній продукт в галузі техніки, технології, організації праці, управління, а також у інших сферах наукової та соціальної діяльності, засноване на використанні досягнень науки і передового досвіду, є кінцевим результатом інноваційної діяльності.



  68. Козловський В. О. Методичні вказівки до виконання студентами-магістрантами економічної частини магістерських кваліфікаційних робіт.

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

    –  Вінниця: ВНТУ, 2012.












Додатки



Додаток А (обов’язковий)

Автентифікація між клієнтом і сервером





Додаток Б (обов’язковий)

UML - діаграма використання





Додаток В (обов’язковий)

Схема роботи системи



Додаток Г (обов’язковий)

Схема ресурсів системи



Додаток Д (обов’язковий)

Відображення відео файлу та «Смайлів» в клієнтському додатку


c:\users\alexander\desktop\безымянный321.pngc:\users\alexander\desktop\безымянный.png


Додаток Е (обов’язковий)


Схема даних


Додаток Є (обов’язковий)

Лістинг програми


public class ChatService extends Service {

@Override

public IBinder onBind(Intent intent) {

return localBinder;

}

public void newClientAdded() {



counter.incrementAndGet();

}

public void removeClient() {



counter.decrementAndGet();

}

public void setCurrentUser(String guidRoom) {



currentGuidRoom = guidRoom;

Log.d("guid", currentGuidRoom);

}

@Override



public boolean onUnbind(Intent intent) {

return true;

}

@Override



public void onCreate() {

super.onCreate();

mUserPreferences = UserPreferences.getInstance(getApplicationContext());

session = mUserPreferences.getSessionId();

}

@Override



public int onStartCommand(Intent intent, int flags, int startId) {

if(session != null) {

startListenEvents();

} else {


stopSelf();

}

return START_STICKY;



}

@Override

public void onDestroy() {

super.onDestroy();

new Thread(new Runnable() {

@Override

public void run() {

sslRequestHandler.closeSocket();

thread.interrupt();

}

}).start();



}

private void startListenEvents() {

Runnable eventsListener = new Runnable() {

@Override

public void run() {

String timeFrom = mUserPreferences.getServerTime();

while (!Thread.currentThread().isInterrupted()) {

GetEventsRequest mGetEventsRequest = new GetEventsRequest(session);

mGetEventsRequest.setTimeFrom(timeFrom);

mGetEventsRequest.setSessionId(session);

GetEventResponse mGetEventResponse = sslRequestHandler.sendRequestSync(mGetEventsRequest, GetEventResponse.class);

if (mGetEventResponse != null) {

if (mGetEventResponse.isValid()) {

List events = mGetEventResponse.getEvents();

Iterator itr = events.iterator();

while(itr.hasNext()) {

Event evt = itr.next();

if(evt.getSendDate() == null){

itr.remove();

}

}



if (!events.isEmpty()) {

timeFrom = events.get(events.size() - 1).getSendDate();

try {

Date t = date.parse(timeFrom);



t.setTime(t.getTime() 1000);

timeFrom = date.format(t);

mUserPreferences.setServerTime(timeFrom);

} catch (Exception e1) {

e1.printStackTrace();}

for (Event event : events) { SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(ChatService.this);

boolean isShowNotifications = preferences.getBoolean("notification", true);

int eventType = Integer.parseInt(event.getIdEventType());

switch (eventType) {

case EventType.CONTACT_REQUEST:

Contact contact = new Contact(mUserPreferences.getUserLogin());

contact.setUserLogin(event.getUserLogin());

contact.setIdUser(event.getIdUser());

contact.setIdContactState(event.getIdContactState());

contact.setUserAvatarLink(event.getUserAvatarLink());

cupboard().withContext(getApplicationContext()).put(ChatContentProvider.CONTACT_CONTENT_URI, contact);

if (isShowNotifications) {NotificationFactory notificationFactory = new ContactNotification();

if(Contact.STATE_ACCEPTED.equals(contact.getContactStateName())){

notificationFactory.showNotification(ChatService.this,.getUserLogin() " accepted Your request","");

}else{


notificationFactory.showNotification(ChatService.this, "You received contact request","");

}

}



break;

case EventType.INCOMING_MESSAGE:

final String msg = event.getMessageContent();

String guidRoom = event.getGuidRoom();

final String idUser = event.getIdUser();

Message message = new Message(mUserPreferences.getUserLogin());

message.setGuidRoom(guidRoom);

message.setIdUser(idUser);

message.setMessageContent(msg);

message.setSendDate(event.getSendDate());

cupboard().withContext(getApplicationContext()).put(ChatContentProvider.MESSAGE_CONTENT_URI, message);

Contact c = cupboard().withContext(getApplicationContext()) .query(ChatContentProvider.CONTACT_CONTENT_URI, Contact.class).withSelection("id_user = ?", idUser) .get();

if (c != null && isShowNotifications && (counter.get() == 0 || (counter.get() != 0 && !currentGuidRoom.equals(guidRoom)))) {

NotificationFactory notificationFactory = new ChatNotification(message, c.getUserLogin());

if (VideoLinksFromTextUtil.pullinks(msg).isEmpty()) {

notificationFactory.showNotification(ChatService.this, "You receive new message", msg); }

else {

notificationFactory.showNotification(ChatService.this, "You receive new video", msg); }}



break;

default:


break; }}}

} else {


stopSelf();}}

timeFrom = mUserPreferences.getServerTime();

}}};

thread = new Thread(eventsListener);



thread.setDaemon(true);

thread.start();

public class LocalBinder extends Binder {

public ChatService getService() {

return ChatService.this;

}}}


Схема програми



1   ...   8   9   10   11   12   13   14   15   16



  • Література
  • Додаток Б (обов’язковий)
  • Додаток Г (обов’язковий)
  • Додаток Е (обов’язковий)