Скачать 0.6 Mb.
|
Реализация архитектуры клиент-серверного приложенияПриложение реализует архитектуру клиент-сервер для задач, связанных с мероприятиями университета. Архитектура клиент-серверного приложения подразумевает наличие удаленного сервера, обрабатывающего запросы клиентов. Клиенты, в данном случае, просто отображают информацию, полученную с сервера. В приложении «KFU Guide» сервер реализован с помощью фреймворка Ruby On Rails. Клиентами являются мобильные приложения для платформ Windows Phone, iOS, Android. Связь между клиентами и сервером на транспортно-сетевом уровне осуществляется по протоколу TCP/IP (набор сетевых протоколов передачи данных, используемых в сетях, включая сеть Интернет). Для организации информационного обмена используется протокол прикладного уровня HTTP и его расширение HTTPS, поддерживающее шифрование. Взаимодействие осуществляется согласно архитектуре REST – стиль построения архитектуры распределенного приложения, в котором данные должны передаваться в виде небольшого количества стандартных форматов (HTML, XML, JSON). Моя задача заключалась в написании клиента для платформы Windows Phone. Общая архитектура системы KFU Guide изображена на рисунке 7. Для регистрации и авторизации на сервере было решено использовать социальные сети. Так как это позволяет наиболее точно идентифицировать личность зарегистрировавшегося пользователя с помощью Api, предоставляемого социальными сетями. Для этой цели были выбраны следующие социальные сети:
Перед использованием Api Вконтакте, необходимо зарегистрироваться в социальной сети как разработчик и зарегистрировать свое приложение. После этого выдается идентификационный номер приложения, с помощью которого осуществляется дальнейшее взаимодействие с сервисом. Для авторизации и регистрации пользователя, социальная сеть Вконтакте использует протокол авторизации OAuth. OAuth – популярный протокол, который позволяет социальным сервисам интегрироваться между собой и предоставляет безопасный способ обмена персональной информацией. Процесс авторизации приложения состоит из 3-х этапов:
В приложении авторизация осуществляется через страницу браузера. Данный способ не дает приложению сохранить личные данные пользователя, вводимые для авторизации в социальной сети. Для отображение страницы авторизации Вконтакте необходимо перейти по адресу https://oauth.vk.com/authorize?client_id=3737326&scope=pages&redirect_uri=https://oauth.vk.com/blank.html&display=wap&v=4.8&response_type=token, где client_id – идентификационный номер приложения, scope – запрашиваемые приложением права доступа, redirect_uri – адрес, на который будет передан access_token, display – внешний вид окна авторизации, поддерживаются: page, popup и mobile. v – версия API. После успешного входа на сайт, пользователь должен разрешить доступ приложению к необходимым настройкам, запрошенным при помощи параметра scope. После успешной авторизации браузер пользователя будет перенаправлен по адресу redirect_uri, а ключ доступа к API и другие параметры будут переданы приложению в URL-фрагменте ссылки: https://oauth.vk.com/blank.html#access_token= 533bacf01e11f55b536a565b57531ad114461ae8736d6506a3&expires_in=86400&user_id=8492, где access_token – ключ доступа к API Вконтакте, expires_in – время актуальности ключа доступа в секундах, если время ключа доступа истекло, необходимо повторить все предыдущие шаги, user_id – идентификационный номер пользователя Вконтакте. После получения ключа доступа, приложение получает доступ к API.
Алгоритм авторизация пользователя через Facebook схож с алгоритмом авторизации через Вконтакте. Первым шагом синхронизации является регистрация приложения и получение его идентификационного номера. Для авторизации пользователя Facebook так же использует протокол OAuth. Процесс авторизации в социальной сети Facebook состоит из 3-х шагов:
Для отображения страницы авторизации пользователя приложению необходимо перейти по ссылке https://www.facebook.com/dialog/oauth?client_id=497295983680210&redirect_uri=https://www.facebook.com/connect/login_success.html&scope=email&display=wap&response_type=token, где client_id – идентификационный номер приложения, scope – запрашиваемые приложением права доступа, redirect_uri – адрес, на который будет передан access_token, display – внешний вид окна авторизации, поддерживаются: page, popup и mobile. После успешный авторизации приложение получает ключ access_token в URL-фрагменте. После получения ключа access_token необходимо получить идентификационный номер пользователя социальной сети. Для этого необходимо отправить запрос по адресу https://graph.facebook.com/me?fields=id&access_token=ACCESS_TOKEN, где ACCESS_TOKEN – ключ доступа, полученный на предыдущем этапе.
После авторизации через социальную сеть полученные данные отправляются по защищенному протоколу на сервер с помощью Post-запроса. Запрос отправляется по адресу http://guiddy.fosslabs.ru/sessions. Сервер обрабатывает данные и возвращает идентификатор сессии, с помощью которого осуществляется дальнейшее взаимодействие с сервером. Идентификатор сессии сохраняется в локальном хранилище настроек смартфона и передается параметром в запросах отправки событий на сервер. Для реализации отправки события на сервер используется Post-запрос с параметрами: заголовок события, подробное описание события, дата проведения, время начала и время конца, идентификационный номер здания, идентификационный номер аудитории, в которой проводится событие, идентификационный номер типа мероприятия. К параметрам добавляется идентификатор сессии для того, чтобы установить личность автора события. Запрос отправляется по адресу http://guiddy.fosslabs.ru/event_with_room. Для получения списка мероприятий нашего университета необходимо отправить запрос на сервер по адресу http://guiddy.fosslabs.ru/events.json. Ответ приходит в формате JSON – текстовый формат обмена данными, основанный на JavaScript. Его главное преимущество заключается в том, что JSON легко читается и понимается людьми. Для того чтобы осуществить разбор данного формата, была использована библиотека Newtonsoft.Json. К событиям применяются два типа фильтров. Для того чтобы применить фильтр по типу события, необходимо отправить запрос по адресу http://guiddy.fosslabs.ru/TYPE_events, где TYPE – один из типов событий: study, science, sport, cultural, meeting, other. Ответ приходит в формате JSON. Фильтр по аудитории применяется с помощью отправки запроса на сервер по адресу http://guiddy.fosslabs.ru/rooms/ROOM_ID, где ROOM_ID – идентификационный номер аудитории, по которой применяется фильтр. Ответ приходит в формате JSON. Для получения списка свободных аудиторий необходимо отправить Post-запрос по адресу http://guiddy.fosslabs.ru/empty_rooms с параметрами: идентификационный номер здания и временной промежуток. В ответ приходит список аудиторий в формате JSON, которые свободны в выбранный промежуток времени. |
Троелсен Э. Язык программирования C# 0 и платформа. Net 5 / Э. Троелсен – Санкт-Петербург: «Наука», 2013. – 1311 с. 65 | |||
... | ... | ||
Завершена плановая комплексная проверка в отношении ОАО «Литейно-механический завод» | Например: Проверочная работа. Самостоятельная работа. Контрольная работа. Работа над ошибками. Изложение. Сочинение | ||
Фнс россии рекомендует организациям подавать заявление об учете в инспекцию по месту нахождения недвижимого имущества, регистрация... | Обязанности: работа с документацией, прием телефонных звонков, работа с оргтехникой, работа с компьютером | ||
Завершена плановая комплексная проверка в отношении ООО «жкх «Сатис». В ходе проведения проверки выявлены нарушения обязательных... | Выпускная квалификационная работа (дипломная работа) представляет собой законченную разработку, в которой решается актуальная для... |
Поиск Главная страница   Заполнение бланков   Бланки   Договоры   Документы    |