toxi_vedenicheva
@toxi_vedenicheva
Студент

Каковы этапы создания клиент-серверного приложения на Java?

Суть задачи, у меня есть приложение, десктопное, оно подключается к локальной базе данных (MySQL) cчитывает из нее информацию и обрабатывает.
Т.е. работать с данным приложением могу только я со своего локального устройства. Задача же такая:
Клиент должен быть у n-го кол-ва пользователей, они имеют возможность изменять данные через этот клиент в таблицах, что отображается в базе данных. База данных и сервер должны быть доступны разным устройствам в любой момент времени. Подключились к интернет, подключились к удаленному серверу и работаем с данными.
Вопрос таков. Какие шаги нужно предпринять и как лучше всего реализовать все это дело. Я в клиент-серверной разработке полный ноль, прошу прощения за некомпетентность.
Пример:
Шаг 1. Необходимо найти удаленный хост(или развернуть его на своем устр-ве) на котором будет ваша база данных рекомендую (MySQL) и прописать в ваших клиентских приложениях доступ к удаленной базе.
Подскажите может материалы которые можно прочекать на эту тему, каков вообще алгоритм создания этого приложения и какие технологии лучше использовать.
  • Вопрос задан
  • 3370 просмотров
Решения вопроса 1
@frozen_coder
Java-developer
Вам нужно серверное приложение, которое будет предоставлять удалённым клиентам доступ к БД, но не напрямую, а через себя путём общения с клиентами по http с помощью REST (проще) или SOAP. Т.е. клиенты отправляют запросы и получают от сервера ответы. Сервер располагается (задеплоен) на удалённой машине в каком-нибудь облаке или куда вы его задеплоите. Там же рядышком будет БД, про которую будет знать только ваше серверное приложение, но не ваши клиенты. Клиенты знают только про приложение, вернее куда стучать, что отправлять и что ожидать в ответ.

Гуглить в сторону Spring Boot, Spring Data. Также скорее всего понадобится механизм аутентификации и авторизации, если вы хотите, чтобы с приложением могли работать только ваши клиенты. Тогда смотрим ещё и в сторону Spring Security.

Сначала почитайте про http, потом про REST. Если вам просто дёргать базу, то есть супер-простое решение - Spring Data Rest, которое сгенерит за вас все запросы и даже апи. Вам будет необходимо только сущности описать (почитайте про JPA и её аннотации) и объявить интерфейсы репозиториев и немного обвязки-настроек в properties прописать.

Вот наглядный простой пример: spring-projects.ru/guides/accessing-data-rest . Там есть исходники на гитхабе, возьмите их, потыкайте, перепишите под себя.

Когда будет готов сервер, то остаётся научить ваше десктопное приложение дёргать по http апишку вашего сервера - отправлять запросы и обрабатывать ответы. С десктопными приложениями не работал, но гугл вам легко подскажет какую-нибудь библиотеку http-клиента - okhttp какой-нибудь.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@nozzy
Symfony, Laravel, SQL
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы