Файл: Технология «клиент-сервер»(Обзор существующих решений «клиент-сервер»).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 17.05.2023

Просмотров: 65

Скачиваний: 3

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.


 


Рисунок 3.10. Диаграмма состояний звонка

Концепт StateMachine удобен своей простотой реализации и предсказуемостью. Звонок может находиться в одном из трех состояний: Initiated (Инициирован), Started (Начат), Cancelled (Закончен). Сервер в зависимости от происходящих событий меняет текущее состояние звонка, уведомляя об этом клиентские приложения, отображающие пользовательский интерфейс в соответствии с текущим состоянием. Клиент-серверное взаимодействие в этом случае ведется по протоколу WebSocket, используя текущее соединение для чата.

После нажатия врачом на кнопку «Позвонить» на экране «Чат» (рис. 3.4), сообщение о произошедшем действии отправляется с клиента на сервер. Сервер решает, что текущее состояние звонка меняется на «Initiated» и отправляет сообщение о произошедшем изменении состояния звонка на все связанные со звонком клиенты. После этого, мобильное приложениеоткрывает дляврачаэкран «Исходящий вызов» (рис. 3.8), а для пациента – экран «Входящий вызов» (рис. 3.9).

Если пациент принимает вызов на экране «Входящий вызов», звонок переходит в состояние «Started» и у обоих пользователей открывается экран «Звонок» (рис. 3.6).

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

Одна из главных функций приложения – создание, редактирование и удаление записей медкарты пациентом. Записи делятся на два основных типа: «Событиe» и «Показатель здоровья». Для удобства пользователя, был реализован подход Offline-first [10], таким образом, при обновлении, записи будут сохранены в локальную базу данных, а затем синхронизированы с сервером.При этом, события двух типов синхронизируются отдельно.

Заключение

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

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


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

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

Списокиспользованныхисточников

  1. Mobile And Tablet Internet Usage Exceeds Desktop For First Time Worldwide [Электронныйресурс] / Statcounter. Режим доступа: http://gs.statcounter.com/press/mobile-andtablet-internet-usage-exceeds-desktop-for-first-time-worldwide, свободный.
  2. Mobile Operating System Market Share Worldwide [Электронныйресурс] / Statscounter. Режим доступа: http://gs.statcounter.com/os-market-share/mobile/worldwide, свободный.
  3. Mobile And Tablet Android Version Market Share Worldwide [Электронныйресурк] / Statscounter. Режим доступа: http://gs.statcounter.com/android-version-market-share/mobile-tablet/worldwide, свободный.
  4. ONDOC [Электронный ресурс] / GooglePlay. Режим доступа: https://play.google.com/store/apps/details?id=me.ondoc.main, свободный.
  5. Яндекс.Здоровье [Электронный ресурс] / GooglePlay. Режим доступа: https://play.google.com/store/apps/details?id=ru.yandex.med, свободный.
  6. Doc+ [Электронный ресурс] / GooglePlay. Режим доступа: https://play.google.com/store/apps/details?id=ru.doconcall.docplus, свободный.
  7. DocDoc [Электронный ресурс] / GooglePlay. Режим доступа: https://play.google.com/store/apps/details?id=com.docdoc.docdoc, свободный. (дата обращения: 05.11.18)
  8. Финтехклаб Медкарта [Электронный ресурс] / GooglePlay. Режим доступа: https://play.google.com/store/apps/details?id=biz.ftclub.healthypatient.medcard, свободный. (дата обращения: 06.11.18)
  9. Medical Note [Электронныйресурс] / Google Play. Режим доступа: https://play.google.com/store/apps/details?id=site.mons.mednote, свободный. (датаобращения: 06.02.19).
  10. You Get an Offline First App, and You Get an Offline First App, and… [Электронный ресурс] /Medium. Режим доступа: https://medium.com/offline-camp/you-get-an-offline-first-app-and-you-get-an-offline-first-app-and-5452f1cbb942, свободный. (дата обращения:02.02.19).
  11. Spring: the source for modern java [Электронныйресурс] /Spring. Режим доступа:https://spring.io, свободный. (дата обращения:01.02.19).
  12. Try Kotlin[Электронныйресурс] /Kotlin Language. Режим доступа: https://kotlinlang.org, свободный. (дата обращения: 05.02.19).
  13. TheJavaTutorials[Электронный ресурс] /Oracle. Режим доступа: https://docs.oracle.com/javase/tutorial/index.html, свободный. (дата обращения: 03.10.18).
  14. Representational state transfer [Электронныйресурс] / Wikipedia. Режим доступа:https://en.wikipedia.org/wiki/Representational_state_transfer, свободный. (дата обращения: 03.10.18).
  15. A detailed guide on developing Android apps using the Clean Architecture pattern [Электронныйресурс] / Medium. Режим доступа:https://medium.com/@dmilicic/a-detailed-guide-on-developing-android-apps-using-the-clean-architecture-pattern-d38d71e94029, свободный. (дата обращения: 05.11.18).
  16. SOLID[Электронный ресурс] /Wikipedia. Режим доступа:
    https://ru.wikipedia.org/wiki/SOLID_(объектно-ориентированное_программирование), свободный. (дата обращения: 22.12.18).
  17. Fundamentals [Электронныйресурс] / Android Developer. Режим доступа:https://developer.android.com/guide/components/fundamentals, свободный.
  18. Activity Lifecycle [Электронныйресурс] / Android Developer. Режим доступа:https://developer.android.com/guide/components/activities/activity-lifecycle, свободный.
  19. MVC, MVP and MVVM design patterns [Электронныйресурс] /. Режим доступа: https://medium.com/@ankit.sinhal/mvc-mvp-and-mvvm-design-pattern-6e169567bbad, свободный.
  20. RxJava[Электронный ресурс] /GitHub. Режим доступа: https://github.com/ReactiveX/RxJava, свободный.
  21. Reactive Programming [Электронныйресурс] / Wikipedia. Режим доступа:https://en.wikipedia.org/wiki/Reactive_programming, свободный.
  22. Observer and Observable [Электронныйресурс] /ReactiveX. Режим доступа:http://reactivex.io/documentation/observable.html, свободный.
  23. SQLite[Электронный ресурс] /Wikipedia. Режим доступа:https://ru.wikipedia.org/wiki/SQLite, свободный.
  24. StorIO[Электронный ресурс] /GitHub. Режим доступа:https://github.com/pushtorefresh/storio, свободный.
  25. Builder Pattern [Электронныйресурс] / Wikipedia. Режим доступа: https://en.wikipedia.org/wiki/Builder_pattern, свободный.
  26. Retrofit[Электронный ресурс] /GitHub. Режим доступа:https://square.github.io/retrofit/, свободный.
  27. Scarlet[Электронный ресурс] /GitHub. Режим доступа: https://github.com/Tinder/Scarlet, свободный.
  28. MySQLDocumentation[Электронный ресурс] /MySQL. Режим доступа: https://dev.mysql.com/doc, свободный.
  29. OAuth 2 [Электронный ресурс] /OAuth. Режим доступа: https://oauth.net/2/, свободный.
  30. Don’t Repeat Yourself [Электронныйресурс] / Wikipedia. Режим доступа:https://ru.wikipedia.org/wiki/Don’t_repeat_yourself, свободный. (дата обращения: 01.11.18).
  31. OkHttp[Электронный ресурс] /GitHub. Режим доступа:https://square.github.io/okhttp/, свободный.
  32. Multi-platformopen-sourcevideoconferencing[Электронный ресурс] /Jitsi. Режим доступа: https://jitsi.org, свободный.
  33. UUIDCollisions[Электронный ресурс] /Wikipedia. Режим доступа:https://en.wikipedia.org/wiki/Universally_unique_identifier#Collisions, свободный.
  34. Finite-state Machine [Электронныйресурс] / Wikipedia. Режим доступа: https://en.wikipedia.org/wiki/Finite-state_machine, свободный.
  35. Picasso[Электронный ресурс] /GitHub. Режим доступа: https://square.github.io/picasso/, свободный.