|
|
|
Java WebApplication + модульная система
|
|||
|---|---|---|---|
|
#18+
Всем привет! Подскажите пожалуйста как правильно организовать модульную систему для Web приложения? Для десктопа модульную систему я реализовать через обычные jar файлы один модуль один jar. В рантайме с помощью classloader я загружаю нужный модуль и работаю с ним. Web приложение деплоится одним war файлом, а как же модули, а как их деплоить? Дайте пожалуйста направление, куда гуглить :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2018, 12:48 |
|
||
|
Java WebApplication + модульная система
|
|||
|---|---|---|---|
|
#18+
Mandarin, В ветке несколько раз обсуждалось. Искали? Ведь jar библиотека тоже есть веб. Неожиданно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2018, 12:58 |
|
||
|
Java WebApplication + модульная система
|
|||
|---|---|---|---|
|
#18+
Petro123, Не искал, сейчас поищу. Ведь jar библиотека тоже есть веб. Неожиданно? - Неожиданно. Может подробнее объяснить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2018, 13:04 |
|
||
|
Java WebApplication + модульная система
|
|||
|---|---|---|---|
|
#18+
Mandarin, Как в десктопе. В иклипсе, пр.клик на проекте, добавить библиотеку... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2018, 13:07 |
|
||
|
Java WebApplication + модульная система
|
|||
|---|---|---|---|
|
#18+
Petro123Mandarin, Как в десктопе. В иклипсе, пр.клик на проекте, добавить библиотеку... Если в проекте будет 1000 модулей, при изменении 1 библиотеки весть проект надо будет заново деплоить или можно руками 1 библиотеку подложить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2018, 13:32 |
|
||
|
Java WebApplication + модульная система
|
|||
|---|---|---|---|
|
#18+
MandarinPetro123Mandarin, Как в десктопе. В иклипсе, пр.клик на проекте, добавить библиотеку... Если в проекте будет 1000 модулей, при изменении 1 библиотеки весть проект надо будет заново деплоить или можно руками 1 библиотеку подложить?это ведь не по теме топика? Система 24 на 7 и надо сменить версию без перезапуска веб приложения? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2018, 13:41 |
|
||
|
Java WebApplication + модульная система
|
|||
|---|---|---|---|
|
#18+
Petro123, Нужно сменить версию не всего приложения а одного из множества модулей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2018, 13:52 |
|
||
|
Java WebApplication + модульная система
|
|||
|---|---|---|---|
|
#18+
Зачем вам модули? Какую задачу вы хотите решить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2018, 13:57 |
|
||
|
Java WebApplication + модульная система
|
|||
|---|---|---|---|
|
#18+
MandarinPetro123, Нужно сменить версию не всего приложения а одного из множества модулей.если прям 1000 модулей то нужно бить на функциональные модули. Это не jar, а например, rest. Выбери сколько у тебя реально есть сейчас. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2018, 13:58 |
|
||
|
Java WebApplication + модульная система
|
|||
|---|---|---|---|
|
#18+
unregesteredЗачем вам модули? Какую задачу вы хотите решить?+1 Не нужно преждевременной оптимизации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2018, 13:59 |
|
||
|
Java WebApplication + модульная система
|
|||
|---|---|---|---|
|
#18+
Petro123, Есть большой десктопный модульный проект. Каждый модуль это отдельный jar файл в котором содержится какая то часть интерфейса программы и какая то логика. Все эти модули (или плагины) "на лету" подгружаются к программе, тогда, когда пользователь обращается к нужному плагину. Задача перенести этот проект на web отсюда и вопрос как реализовать систему модулей или плагинов. Навернео правильно сказать плагинов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2018, 14:02 |
|
||
|
Java WebApplication + модульная система
|
|||
|---|---|---|---|
|
#18+
А что конкретно делают эти плагины? Может ли пользователь устанавливать свои плагины? Что будет если все плагины загрузятся? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2018, 14:07 |
|
||
|
Java WebApplication + модульная система
|
|||
|---|---|---|---|
|
#18+
unregestered, Чисто теоретически не запрещено загружать все плагины сразу, количество загруженных модулей ограничивается только характеристиками ПК. Загружать все модули сразу смысла нет. Для примера можно сказать что приложение похоже на 1С. Справочники, документы проводки отчёты и всякая подобная дребедень. Например отчёт о продажах это один jar, а отчёт о остатках это другой jar и т.д. Пользователь может сам создавать плагины для приложения, если: 1. умеет кодить на java :) 2. знает структуру нашего фреймворка 3. имеет разрешение для загрузки плагинов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2018, 14:11 |
|
||
|
Java WebApplication + модульная система
|
|||
|---|---|---|---|
|
#18+
Mandarinзнает структуру нашего фреймворкареклама? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2018, 14:19 |
|
||
|
Java WebApplication + модульная система
|
|||
|---|---|---|---|
|
#18+
Испокон веков функцию модулей выполняли EJB. Если пользователь имеет доступ к административной консоли сервера, то он может передеплоить EJB не останавливая сервер. А если плагины совсем простые то имеет смысл придумать интерфейс для загрузки груви скриптов и вызывать их динамически. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2018, 14:19 |
|
||
|
Java WebApplication + модульная система
|
|||
|---|---|---|---|
|
#18+
unregestered, EJB не EJB как деплоить то модули эти ? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2018, 14:37 |
|
||
|
Java WebApplication + модульная система
|
|||
|---|---|---|---|
|
#18+
MandarinНе искал, сейчас поищу. +1 т.к. непонятно, вы делаете плагинообразный фреймворк с нуля. Или у вас уже есть фреймворк и его надо переделать. Почитайте форум. Удачи! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2018, 14:39 |
|
||
|
Java WebApplication + модульная система
|
|||
|---|---|---|---|
|
#18+
Mandarinunregestered, EJB не EJB как деплоить то модули эти ? :) Через админскую консоль. Вам нужен изолированный класслоадер для каждого плагина? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2018, 14:48 |
|
||
|
Java WebApplication + модульная система
|
|||
|---|---|---|---|
|
#18+
Вы пытаетесь механически перенести паттерны использования приложения с десктопной версии в браузерную, не задумываясь, что это полностью меняет правила игры. В декстопной версии исполняемый код запускается на клиенте, и там да, по лицензионным или каким-либо другим соображениям имеет место быть плагинная архитектура. В случае браузерного приложения весь серверный код находится на сервере, и вы можете дать\не дать доступ к определенной части системы прямо на сервере(не отрисовать страницу, не показать в меню и т.д) Все решается грамотным конфигурированием уровня security. С другой стороны, модульность улучшает maintainability, это правда. Ну в таком случае, сейчас модны микросервисы, где каждому bounded context соотвествует свой rest-эндпоинт, и эти кусочки обычно деплоятся на разных серверах\платформах и т.д, что позволяет модифицировать и эволюционировать части приложения, не затграгивая другие. Хотя и тут куча проблем вылезает. Если же я не понял чего вы хотите и у вас пользователь скачивает дистрибутив, утсанавливает сервер и может подложить свои джары(плагины), то даже в этой схеме динамическая загрузка легко и просто организуется подкладыванием jar в lib и редеплоем. Мое ИМХО, очередной успешный менеджер услышал о преимуществе веб-приложений и решил все переписать на веб, не думая ни о чем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2018, 01:19 |
|
||
|
Java WebApplication + модульная система
|
|||
|---|---|---|---|
|
#18+
забыл никВы пытаетесь механически перенести паттерны использования приложения с десктопной версии в браузерную, не задумываясь, что это полностью меняет правила игры. Нет, это не меняет полностью правила игры забыл никВ декстопной версии исполняемый код запускается на клиенте, и там да, по лицензионным или каким-либо другим соображениям имеет место быть плагинная архитектура. У Джиры тоже есть плагины ... и у Дженкинса ... и у других веб приложений .... забыл никВ случае браузерного приложения весь серверный код находится на сервере, и вы можете дать\не дать доступ к определенной части системы прямо на сервере(не отрисовать страницу, не показать в меню и т.д) Все решается грамотным конфигурированием уровня security. Ограничить функционал можно и в десктопном приложении. Но топикастер пишет что юзеры могут сами писать дополнительный функционал, а не только ограничивать старый. забыл никС другой стороны, модульность улучшает maintainability, это правда. Ну в таком случае, сейчас модны микросервисы, где каждому bounded context соотвествует свой rest-эндпоинт, и эти кусочки обычно деплоятся на разных серверах\платформах и т.д, То что вы описали ухудшает maintainability. забыл никчто позволяет модифицировать и эволюционировать части приложения, не затграгивая другие. Хотя и тут куча проблем вылезает. Возможность модифицировать части приложения зависит скорее от архитектуры приложения, а не от протокола взаимодействия. Хотя некоторые протоколы могут вызвать дополнительный геморой. К примеру рест не поддерживает обратные вызовы. забыл никЕсли же я не понял чего вы хотите и у вас пользователь скачивает дистрибутив, устанавливает сервер и может подложить свои джары(плагины), то даже в этой схеме динамическая загрузка легко и просто организуется подкладыванием jar в lib и редеплоем. Плагин может использовать не совместимые библиотеки. Разные плагины могут использовать API разных версий. При редплое приложения вы закроете сессии всех пользователей. забыл никМое ИМХО, очередной успешный менеджер услышал о преимуществе веб-приложений и решил все переписать на веб, не думая ни о чем. Весьма вероятно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2018, 05:59 |
|
||
|
Java WebApplication + модульная система
|
|||
|---|---|---|---|
|
#18+
unregesteredзабыл никМое ИМХО, очередной успешный менеджер услышал о преимуществе веб-приложений и решил все переписать на веб, не думая ни о чем. Весьма вероятно +1 ТС ушел читать, и это хорошо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2018, 07:26 |
|
||
|
Java WebApplication + модульная система
|
|||
|---|---|---|---|
|
#18+
MandarinВсем привет! Подскажите пожалуйста как правильно организовать модульную систему для Web приложения? Для десктопа модульную систему я реализовать через обычные jar файлы один модуль один jar. В рантайме с помощью classloader я загружаю нужный модуль и работаю с ним. Web приложение деплоится одним war файлом, а как же модули, а как их деплоить? Дайте пожалуйста направление, куда гуглить :) Во-первых не понятно зачем именно это вам. Во-вторых в полноценном JEE контенере можно деплоить ejb-jar модули независимо друг от друга. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2018, 08:10 |
|
||
|
Java WebApplication + модульная система
|
|||
|---|---|---|---|
|
#18+
MandarinЕсть большой десктопный модульный проект. Каждый модуль это отдельный jar файл в котором содержится какая то часть интерфейса программы и какая то логика. Все эти модули (или плагины) "на лету" подгружаются к программе, тогда, когда пользователь обращается к нужному плагину. Задача перенести этот проект на web отсюда и вопрос как реализовать систему модулей или плагинов. Навернео правильно сказать плагинов. Для web была такая бесполезная технология - портлеты. Сейчас же всё очень сильно зависит от того как именно вы будете реализовывать UI часть вэб приложения. Если это серверные шаблоны, то подход один, а если DHTML, то другой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2018, 08:37 |
|
||
|
Java WebApplication + модульная система
|
|||
|---|---|---|---|
|
#18+
Mandarin, OSGI?! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2018, 05:34 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39600366&tid=2122259]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
166ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
64ms |
get tp. blocked users: |
1ms |
| others: | 233ms |
| total: | 510ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...