Файл: Технология «клиент-сервер»(Обзор существующих решений «клиент-сервер»).pdf
Добавлен: 17.05.2023
Просмотров: 75
Скачиваний: 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. После этого, необходимо будет добавить в мобильное механизм сбора статистики его использования и внимательно отслеживать обратную связь от пользователей для выявления функций, наиболее необходимых пользователям.
Списокиспользованныхисточников
- 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, свободный.
- Mobile Operating System Market Share Worldwide [Электронныйресурс] / Statscounter. Режим доступа: http://gs.statcounter.com/os-market-share/mobile/worldwide, свободный.
- Mobile And Tablet Android Version Market Share Worldwide [Электронныйресурк] / Statscounter. Режим доступа: http://gs.statcounter.com/android-version-market-share/mobile-tablet/worldwide, свободный.
- ONDOC [Электронный ресурс] / GooglePlay. Режим доступа: https://play.google.com/store/apps/details?id=me.ondoc.main, свободный.
- Яндекс.Здоровье [Электронный ресурс] / GooglePlay. Режим доступа: https://play.google.com/store/apps/details?id=ru.yandex.med, свободный.
- Doc+ [Электронный ресурс] / GooglePlay. Режим доступа: https://play.google.com/store/apps/details?id=ru.doconcall.docplus, свободный.
- DocDoc [Электронный ресурс] / GooglePlay. Режим доступа: https://play.google.com/store/apps/details?id=com.docdoc.docdoc, свободный. (дата обращения: 05.11.18)
- Финтехклаб Медкарта [Электронный ресурс] / GooglePlay. Режим доступа: https://play.google.com/store/apps/details?id=biz.ftclub.healthypatient.medcard, свободный. (дата обращения: 06.11.18)
- Medical Note [Электронныйресурс] / Google Play. Режим доступа: https://play.google.com/store/apps/details?id=site.mons.mednote, свободный. (датаобращения: 06.02.19).
- 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).
- Spring: the source for modern java [Электронныйресурс] /Spring. Режим доступа:https://spring.io, свободный. (дата обращения:01.02.19).
- Try Kotlin[Электронныйресурс] /Kotlin Language. Режим доступа: https://kotlinlang.org, свободный. (дата обращения: 05.02.19).
- TheJavaTutorials[Электронный ресурс] /Oracle. Режим доступа: https://docs.oracle.com/javase/tutorial/index.html, свободный. (дата обращения: 03.10.18).
- Representational state transfer [Электронныйресурс] / Wikipedia. Режим доступа:https://en.wikipedia.org/wiki/Representational_state_transfer, свободный. (дата обращения: 03.10.18).
- 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).
- SOLID[Электронный ресурс] /Wikipedia. Режим доступа:
https://ru.wikipedia.org/wiki/SOLID_(объектно-ориентированное_программирование), свободный. (дата обращения: 22.12.18). - Fundamentals [Электронныйресурс] / Android Developer. Режим доступа:https://developer.android.com/guide/components/fundamentals, свободный.
- Activity Lifecycle [Электронныйресурс] / Android Developer. Режим доступа:https://developer.android.com/guide/components/activities/activity-lifecycle, свободный.
- MVC, MVP and MVVM design patterns [Электронныйресурс] /. Режим доступа: https://medium.com/@ankit.sinhal/mvc-mvp-and-mvvm-design-pattern-6e169567bbad, свободный.
- RxJava[Электронный ресурс] /GitHub. Режим доступа: https://github.com/ReactiveX/RxJava, свободный.
- Reactive Programming [Электронныйресурс] / Wikipedia. Режим доступа:https://en.wikipedia.org/wiki/Reactive_programming, свободный.
- Observer and Observable [Электронныйресурс] /ReactiveX. Режим доступа:http://reactivex.io/documentation/observable.html, свободный.
- SQLite[Электронный ресурс] /Wikipedia. Режим доступа:https://ru.wikipedia.org/wiki/SQLite, свободный.
- StorIO[Электронный ресурс] /GitHub. Режим доступа:https://github.com/pushtorefresh/storio, свободный.
- Builder Pattern [Электронныйресурс] / Wikipedia. Режим доступа: https://en.wikipedia.org/wiki/Builder_pattern, свободный.
- Retrofit[Электронный ресурс] /GitHub. Режим доступа:https://square.github.io/retrofit/, свободный.
- Scarlet[Электронный ресурс] /GitHub. Режим доступа: https://github.com/Tinder/Scarlet, свободный.
- MySQLDocumentation[Электронный ресурс] /MySQL. Режим доступа: https://dev.mysql.com/doc, свободный.
- OAuth 2 [Электронный ресурс] /OAuth. Режим доступа: https://oauth.net/2/, свободный.
- Don’t Repeat Yourself [Электронныйресурс] / Wikipedia. Режим доступа:https://ru.wikipedia.org/wiki/Don’t_repeat_yourself, свободный. (дата обращения: 01.11.18).
- OkHttp[Электронный ресурс] /GitHub. Режим доступа:https://square.github.io/okhttp/, свободный.
- Multi-platformopen-sourcevideoconferencing[Электронный ресурс] /Jitsi. Режим доступа: https://jitsi.org, свободный.
- UUIDCollisions[Электронный ресурс] /Wikipedia. Режим доступа:https://en.wikipedia.org/wiki/Universally_unique_identifier#Collisions, свободный.
- Finite-state Machine [Электронныйресурс] / Wikipedia. Режим доступа: https://en.wikipedia.org/wiki/Finite-state_machine, свободный.
- Picasso[Электронный ресурс] /GitHub. Режим доступа: https://square.github.io/picasso/, свободный.