Страницы

Поиск по вопросам

вторник, 17 декабря 2019 г.

Развертывание приложений Java на сервере

#java #веб_программирование


Нужен совет новичку на Java. Во всяких технологиях, IDE... уже как-то разбираемся
(в основном для desktop приложений), но про развертывание приложений на web-сервере
еще много вопросов.  

Основные особенности разрабатываемого приложения:   


Должны быть две версии - web и кроссплатформенная desktop.
Удобство установки, использования, обновления настольной версии для пользователя.
Версия web должна выполняться на стороне сервера, что бы снять нагрузку с клиента,
например актуально для iPad.  
Небольшая БД, авторизация пользователей.  
Хотелось бы не писать один и тот же код по два раза каждый раз в ходе разработки
и поддержки (для desktop и web отдельно).  
Приложение не очень сложное, предполагается развитие в сторону осуществления социальной
сети между зарегистрированными пользователями, только для web-версии.


Теперь вопросы:


От чего отталкиваться, от desktop или web, т.е. выкладывать настольную версию на
сервер или можно наоборот - заставить web-версию запускаться в Windows, Linux, Mac OS?  
Можно ли desktop-приложение Java разместить на web, что бы оно выполнялось на стороне
сервера?  
Если web-приложение работает локально, надо запускать соответствующие сервера, что
уже неудобно для обычного пользователя, нельзя ли обойтись по другому?

    


Ответы

Ответ 1



Не надо ни от чего отталкиваться. Разрабатывайте общие части в виде отдельных модулей-библиотек. Так получится переиспользование кода. Можно, но ни в коем случае не нужно. А зачем обычному пользователю запускать у себя сервера? UPD: хороший вариант, т.е. создаем два проекта и используем общие модули? еще не понимаю как интерфейс разрабатывать, отдельно придется писать? Ну да, делаете общую модель данных и общую бизнес логику в shared модулях и два отдельных приложения, которые эти модули используют. не нужно с учетом условия выполнения приложения на сервере? А какой смысл запускать десктопное приложение на сервере? Как вы себе это представляете? Как пользователь окно увидит? не совсем еще понимаю, а как локально можно запустить web-приложение? Традиционно веб-приложения выполняются на сервере и отображаются в веб-браузере пользователя + JavaScript выполняется на стороне клиента. UPD2 Чтобы показать друзьям, веб-приложение надо развернуть на сервере или на своей машине и открыть к нему доступ из интернета путём настройки своей машины и роутерамодемаetc. Если надо показать без доступа к интернету, то придётся все необходимые сервера устанавливать у них, либо использовать какие-то portable-версии этих серверов, которые работают без установки. Можно в одну директорию затолкать все нужные сервера (тот же tomcat не требует установки) и сервер БД, если требуется. И напишите скрипт, чтобы всё это запускать одним движением руки.

Ответ 2



Хотелось бы не писать один и тот же код по два раза каждый раз в ходе разработки и поддержки (для desktop и web отдельно). Прочитайте про шаблон MVC, это поможет вам разобраться, каким образом избежать дубликации кода, когда необходимо иметь несколько различных представлений для одного и того же функционала (веб-приложение, десктопные приложения на различные ОС, мобильные платформы и т.д.) Если вкратце, вам необходимо разделить на отдельные независимые модули безнес-логику и визуальное отображение. Можно ли desktop-приложение Java разместить на web, что бы оно выполнялось на стороне сервера? Сервер — это просто компьютер, который умеет отвечать на HTTP-запросы HTTP-ответами. Он сможет выполнять те же функции, что и ваш домашний компьютер. Вам будет нужно принять HTTP-запрос, при его обработке вызвать функции, которые вы называете "desktop-приложение Java" и затем вывести результат работы пользователю через HTTP-ответ. Таким образом вы выполните код на стороне сервера.

Комментариев нет:

Отправить комментарий