Я строю мобильный проект, который должен постоянно поддерживать связь с сервером, и мне нужна информация. Я знаю, как создавать локальные приложения, но это первый раз, когда я создаю приложение, которое требует внешнего вызова к серверу / службе аутентификации.
Я прошу руководство, как действовать и какие сервисы / серверы использовать.
Какой тип сервера / базы данных мне нужен?
Я предполагаю, что мне потребуется служба API, но я не знаю, как выбрать / сделать один.
Я хочу использовать службы / базу данных Azure, но также не хочу зависеть от этого. Я хочу иметь свой собственный URL, на который я отправляю запрос и взаимодействую с сервером / БД, который впоследствии я могу довольно легко переместить на другой хост.
Я в основном занимаюсь разработкой веб-сайтов, и я знаком с php / laravel + Mysql, но я думаю, что в этом случае будет слишком сложно создать приложение laravel просто для серверной части.
Приложение будет мобильным, поэтому у меня не будет веб-страницы для него. просто внешний сервер / база данных, где данные будут сохранены.
Сначала мне нужна услуга аутентификации — где каждый пользователь будет регистрироваться на телефоне, который затем будет сохранен на моем внешнем сервере / базе данных. Затем, когда им нужно войти в систему — они будут вводить данные для входа на телефон, которые будут запрашивать внешний сервер / базу данных и, в случае подтверждения, получать свои данные с сервера.
Во-первых, вам нужно решить, какой тип связи с сервером вам понадобится. это в реальном времени и постоянно? тогда вам понадобится веб-розетка. Это в очередях, когда вам нужно отправить или получить данные? тогда вам понадобится какой-то веб-сервис (REST, RPC, SOAP). Затем вы должны оценить пользовательскую нагрузку. И, наконец, человеческие ресурсы у вас будут.
Исходя из вашего вопроса, я думаю, что веб-сервис REST будет более чем достаточно. Ты можешь:
-Создайте службу REST для каждой группы связанных ресурсов. Пример: URL / user должен обрабатывать операции регистрации, входа в систему, выхода из системы и обновления пользователя.
-Создайте метод для каждой из этих операций и обработайте их. Затем вызовите метод из класса обслуживания REST.
-В зависимости от количества пользователей и используемой вами технологии, создайте сервер для обработки запросов или загрузите свой проект REST на сервер (например, tomcat).
-Создайте приложение и используйте сервисы REST оттуда.
Есть множество технологий, которые вы можете выбрать для этих вещей. Я думаю, что PHP позволяет создавать сервисы REST. Java также является очень хорошим выбором, поскольку вы можете использовать один и тот же код как в серверных, так и в Android-приложениях. Node.Js также довольно популярен, так как вам не нужны серверы и используется NIO (хотя java может выполнять обе функции с использованием Jetty, а также имеет многопоточность); golang и scala обладают превосходной производительностью (однако, golang намного проще в освоении, и ему не нужно использовать внешние веб-серверы).
Надеюсь это поможет.
Для мобильных приложений лучше всего будет REST (передача состояния представления), потому что он легкий и гибкий для использования в других технологиях. У меня был проект, включающий REST, мобильное приложение и веб-приложение, и он работал очень хорошо.
В этом сценарии мы обычно создаем службу REST API для клиентской части. Поскольку вы знакомы с Laravel, вы можете обратиться к http://www.programmableweb.com/news/how-to-build-restful-apis-using-php-and-laravel/how-to/2014/08/13#apiu о том, как создать сервис REST API с помощью Laravel. Также вы можете использовать другие легкие PHP-фреймворки третьей части для создания службы REST API.
Вы можете создавать и разрабатывать приложения на локальном компьютере, а затем развертывать их в веб-приложениях Azure. Пожалуйста, обратитесь к https://azure.microsoft.com/en-us/documentation/articles/app-service-web-php-get-started/ для получения дополнительной информации.
И там несколько поставщиков предоставляют услуги MySQL на Azure. ClearDB такое BaaS на Azure для MySQL Вы также можете использовать виртуальную машину для размещения вашей службы MySQL. НАПРИМЕР. MySQL от Bitnami а также MySQL от Docker.