powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Обмен данными между приложениями одного Tomcat
25 сообщений из 39, страница 1 из 2
Обмен данными между приложениями одного Tomcat
    #39346649
DS-Max
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сейчас у нас имеется одно большое приложение. Хочу разделить его на несколько маленьких. Связей между ними будет не много.
Общий код (утилиты) вынесу в отдельный проект, который будет собираться в .jar и помещаться в каждый .war (приложение).

Я не знаю как быть с БД. У нас используется Spring Data JPA. В основном, у каждого приложения свои таблицы, но как быть в общими таблицами (пользователи, авторизованные пользователи и т.п.)? Я думаю организовать мапинг их в одном приложении, а из других получать эти данные сообщениями.

Нагуглил RMI, JMX, JMS, но ни с одним опыта не имею.

Что считается лучшей практикой для обмена данными между приложениями в рамках одного Tomcat?
...
Рейтинг: 0 / 0
Обмен данными между приложениями одного Tomcat
    #39346663
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DS-Max и помещаться в каждый .war (приложение).
Это чревато тем что когда модули начнуть обмениваться объектами классов из этого jar, то они отхватят ClassCastException. Либо их предется каждый раз сериализовать, что для передачи внутри JVM довольно глупо.

DS-MaxЯ не знаю как быть с БД. У нас используется Spring Data JPA. В основном, у каждого приложения свои таблицы, но как быть в общими таблицами (пользователи, авторизованные пользователи и т.п.)? Я думаю организовать мапинг их в одном приложении, а из других получать эти данные сообщениями.
Не понятно что значить "общие таблицы". Это физически одни и те же таблицы, или одинаковые имена таблица в разных БД.

DS-MaxНагуглил RMI, JMX, JMS, но ни с одним опыта не имею.

RMI это Remote Method Invocation. Удаленный вызов методов. У вас тут чего удаленного в одном Томкате?
JMX это Java Management Extensions. Чем управлять собрались?
JMS служит для асинхронной обрабоки сообщений. Асинхронность нужна?

DS-MaxЧто считается лучшей практикой для обмена данными между приложениями в рамках одного Tomcat?
Внутри одной JVM - вызов Java методов считается лучшей практикой.
Для кластера, соостветственно нужны кластерные решения.

Апологеты JEE могут ещё припомнить EJB в виде Session Bean-ов с их локальными интерфейсами.

А ещё вы не рассказали зачем именно собираетесь разбивать приложение.
...
Рейтинг: 0 / 0
Обмен данными между приложениями одного Tomcat
    #39346673
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DS-MaxОбщий код (утилиты) вынесу в отдельный проект, который будет собираться в .jar и помещаться в каждый .war (приложение).
Это как понимать?
Общий код выносят в ОБЩИЙ \lib папку.
...
Рейтинг: 0 / 0
Обмен данными между приложениями одного Tomcat
    #39346676
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DS-MaxЧто считается лучшей практикой для обмена данными между приложениями в рамках одного Tomcat?
сначала придумайте какой БЛ будете обмениваться.
Обмен пользователями это SSO а не то что вы подумали.
...
Рейтинг: 0 / 0
Обмен данными между приложениями одного Tomcat
    #39346679
DS-Max
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123DS-MaxОбщий код (утилиты) вынесу в отдельный проект, который будет собираться в .jar и помещаться в каждый .war (приложение).
Это как понимать?
Общий код выносят в ОБЩИЙ \lib папку.

Думали так сделать, но, не помню почему, решили в каждый war'ник класть.
...
Рейтинг: 0 / 0
Обмен данными между приложениями одного Tomcat
    #39346692
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DS-MaxДумали так сделать, но, не помню почему, решили в каждый war'ник класть.
Как вообще можно что-то делать не понимя зачем именно это делаешь?
...
Рейтинг: 0 / 0
Обмен данными между приложениями одного Tomcat
    #39346693
DS-Max
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BlazkowiczНе понятно что значить "общие таблицы". Это физически одни и те же таблицы, или одинаковые имена таблица в разных БД.

Физически одни таблицы, но данные из них нужны в разных приложениях (приложение = .war в Tomcat).

BlazkowiczАсинхронность нужна?
Нет.

BlazkowiczВнутри одной JVM - вызов Java методов считается лучшей практикой.
Для кластера, соостветственно нужны кластерные решения.

Можно чуть по подробнее? Я думал нельзя просто вызвать метод из соседнего приложения (в одном Tomcat).

BlazkowiczАпологеты JEE могут ещё припомнить EJB в виде Session Bean-ов с их локальными интерфейсами.

Погуглю.

BlazkowiczА ещё вы не рассказали зачем именно собираетесь разбивать приложение.
[/quot]
В компании текучка, а новичку проще разобраться в маленьком приложении, не разбираясь сразу во всём приложении.
...
Рейтинг: 0 / 0
Обмен данными между приложениями одного Tomcat
    #39346697
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DS-MaxВ компании текучка, а новичку проще разобраться в маленьком приложении, не разбираясь сразу во всём приложении.
может наоборот?
Сложнее разобраться во хитрых взаимосвязях разрезанного на куски одеяла и зоопарка приложений?
...
Рейтинг: 0 / 0
Обмен данными между приложениями одного Tomcat
    #39346703
DS-Max
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BlazkowiczDS-MaxДумали так сделать, но, не помню почему, решили в каждый war'ник класть.
Как вообще можно что-то делать не понимя зачем именно это делаешь?

Я же говорю, когда принимали решение, были аргументы. Сейчас их не помню, я этому вопросу не уделил должного внимания.
...
Рейтинг: 0 / 0
Обмен данными между приложениями одного Tomcat
    #39346708
DS-Max
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123DS-MaxВ компании текучка, а новичку проще разобраться в маленьком приложении, не разбираясь сразу во всём приложении.
может наоборот?
Сложнее разобраться во хитрых взаимосвязях разрезанного на куски одеяла и зоопарка приложений?

На самом деле у нас отдельные приложения будут слабо связаны между собой.
...
Рейтинг: 0 / 0
Обмен данными между приложениями одного Tomcat
    #39346710
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DS-MaxФизически одни таблицы, но данные из них нужны в разных приложениях (приложение = .war в Tomcat).

Ну, тогда и Persistence Unit нужен один на всех. Смысл разделения?

DS-MaxМожно чуть по подробнее? Я думал нельзя просто вызвать метод из соседнего приложения (в одном Tomcat).

Это одна JVM. Вызывать можно любой метод, главное получить ссылку на объект.

DS-MaxВ компании текучка, а новичку проще разобраться в маленьком приложении, не разбираясь сразу во всём приложении.
В зависимости от того чтоименно вы пытаетесть достичь, я бы
- Разделял модули в Maven, оставил один war.
- Разделять war-ы, но завести общие либы. А ещё лучше завернуть в один ear.

Но что-то более конкретное вам советовать сложно, потому что понимания для чего это делать - нет.
...
Рейтинг: 0 / 0
Обмен данными между приложениями одного Tomcat
    #39346715
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DS-MaxНа самом деле у нас отдельные приложения будут слабо связаны между собой.
Связность больше является характеристикой кода. Никто вам не мешает добиться слабо связаных модулей на уровне кода, но собирать их в один war. Это совершенно отдельные друг от друга задачи.
...
Рейтинг: 0 / 0
Обмен данными между приложениями одного Tomcat
    #39346716
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DS-MaxЯ же говорю, когда принимали решение, были аргументы. Сейчас их не помню, я этому вопросу не уделил должного внимания.
Ну, это как водитель такси, которому сказали ехать, но не сказали куда. И он едет. Не знает куда, но едет.
...
Рейтинг: 0 / 0
Обмен данными между приложениями одного Tomcat
    #39346719
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DS-MaxНа самом деле у нас отдельные приложения будут слабо связаны между собой.
программист каждый день принимает такие решения взвешенно.
Кто сказал что будет не зоопарк?
Сам не в курсе - позови того кто в курсе. Иначе рано делать связи между приложениями. Делай связи между классами.
...
Рейтинг: 0 / 0
Обмен данными между приложениями одного Tomcat
    #39346722
DS-Max
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123сначала придумайте какой БЛ будете обмениваться.

А что такое "БЛ"? :)

Petro123Обмен пользователями это SSO а не то что вы подумали.


Для работы с пользователями у нас свой велосипед :( С хранением сессий в БД.
...
Рейтинг: 0 / 0
Обмен данными между приложениями одного Tomcat
    #39346726
DS-Max
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123DS-MaxНа самом деле у нас отдельные приложения будут слабо связаны между собой.
программист каждый день принимает такие решения взвешенно.
Кто сказал что будет не зоопарк?
Сам не в курсе - позови того кто в курсе. Иначе рано делать связи между приложениями. Делай связи между классами.

Я хорошо знаю проект, давно в нём. Несколько приложений давно отделены от основного. Т.е. какой-то опыт есть, только костыльный, а хочется сделать правильно.
...
Рейтинг: 0 / 0
Обмен данными между приложениями одного Tomcat
    #39346736
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DS-MaxА что такое "БЛ"? :)
бизнес логика.
например, 1С:Бухгалтерия и 1С:Торговля и Склад (ТиС)
DS-MaxТ.е. какой-то опыт есть, только костыльный, а хочется сделать правильно.
попробуй связь через REST.
...
Рейтинг: 0 / 0
Обмен данными между приложениями одного Tomcat
    #39346743
DS-Max
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BlazkowiczНу, тогда и Persistence Unit нужен один на всех. Смысл разделения?

Я как раз и не знаю как сделать его один на всех. Имелось ввиду на все war'ники в одном Tomcat?

BlazkowiczЭто одна JVM. Вызывать можно любой метод, главное получить ссылку на объект.

Тогда, чтобы далеко не ходить, можно нескромный вопрос? :) Как получить эту ссылку из соседнего war'ника?


BlazkowiczВ зависимости от того что именно вы пытаетесь достичь, я бы
- Разделял модули в Maven, оставил один war.
- Разделять war-ы, но завести общие либы. А ещё лучше завернуть в один ear.

Но что-то более конкретное вам советовать сложно, потому что понимания для чего это делать - нет.

Разбить на маленькие части, чтобы упростить работу. Возможно закрепить персонал за своими приложениями. В идеале сделать так, чтобы прогеру было достаточно знания только этого приложения для выполнения задачи по нему.
...
Рейтинг: 0 / 0
Обмен данными между приложениями одного Tomcat
    #39346747
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DS-MaxСейчас у нас имеется одно большое приложение. Хочу разделить его на несколько маленьких. Связей между ними будет не много.
Общий код (утилиты) вынесу в отдельный проект, который будет собираться в .jar и помещаться в каждый .war (приложение).

Я не знаю как быть с БД. У нас используется Spring Data JPA. В основном, у каждого приложения свои таблицы, но как быть в общими таблицами (пользователи, авторизованные пользователи и т.п.)? Я думаю организовать мапинг их в одном приложении, а из других получать эти данные сообщениями.

Нагуглил RMI, JMX, JMS, но ни с одним опыта не имею.

Что считается лучшей практикой для обмена данными между приложениями в рамках одного Tomcat?

Spring Data JPA -> Spring Data REST ;-)

Т.е. все обращение к БД, ч/з REST-API.

Как-то так.
<:o)
...
Рейтинг: 0 / 0
Обмен данными между приложениями одного Tomcat
    #39346750
DS-Max
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BlazkowiczСвязность больше является характеристикой кода. Никто вам не мешает добиться слабо связаных модулей на уровне кода, но собирать их в один war. Это совершенно отдельные друг от друга задачи.

Полностью с вами согласен и конечно мы к этому стремимся, но не все и не всегда. И не всегда есть возможность проконтролировать.
Лично я считаю, что проще когда у тебя в проекте лежат десяток другой классов, которые относятся только к этому проекту.
Например, бывают ситуации, когда руководству срочно надо такой-то сервис, под который берут пару новых прогеров (все штатные заняты своими задачами), которым удобнее выделить отдельное приложение и пусть творят там сами что хотят.
...
Рейтинг: 0 / 0
Обмен данными между приложениями одного Tomcat
    #39346752
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgulТ.е. все обращение к БД, ч/з REST-API
+1
но он не слышит. У него "идея фикс".
DS-MaxВ идеале сделать так, чтобы прогеру было достаточно знания только этого приложения для выполнения задачи по нему.
тоже уже было. Приложения делят по программистам - микросервисы).
...
Рейтинг: 0 / 0
Обмен данными между приложениями одного Tomcat
    #39346758
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DS-Maxкоторым удобнее выделить отдельное приложение и пусть творят там сами что хотят.
для такого типа характера постановщиков ("не пущать в основной код") есть тема.
Микросервисы - есть ли альтернатива спринговым?
Дерзайте.
Удачи!
...
Рейтинг: 0 / 0
Обмен данными между приложениями одного Tomcat
    #39346760
DS-Max
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123попробуй связь через REST.


О REST я подумал в первую очередь, но решил уточнить, что в данном случае будет наилучшим решением.

mad_nazgulSpring Data JPA -> Spring Data REST ;-)


Об этом не подумал :)
Но опять же, возможно в рамках одного Tomcat есть что-то более православное.

Вот, например, уважаемый Blazkowicz пишет:
BlazkowiczЭто одна JVM. Вызывать можно любой метод, главное получить ссылку на объект.
...
Рейтинг: 0 / 0
Обмен данными между приложениями одного Tomcat
    #39346771
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DS-MaxЯ как раз и не знаю как сделать его один на всех. Имелось ввиду на все war'ники в одном Tomcat?

Не могу сказать как это делается на варниках и в Томкате. В полноценном JEE для этого можно завести EJB JAR и выпячить его наружу через локальный интерфейс.

DS-MaxТогда, чтобы далеко не ходить, можно нескромный вопрос? :) Как получить эту ссылку из соседнего war'ника?

Через любой общий (а не одинаковый) класс для этих war-ников (под общим имеется ввиду загруженый родительским ClassLoader). Про иерархию class-loader-ов таки стоит почитать.

DS-MaxРазбить на маленькие части, чтобы упростить работу. Возможно закрепить персонал за своими приложениями. В идеале сделать так, чтобы прогеру было достаточно знания только этого приложения для выполнения задачи по нему.
Если есть острое желание разбить не разбивая, я бы посмотрел в сторону EAR - у него куча возможностей шарить либы и PU. Вот только не помню поддерживает ли их Tomcat. Возможно нужен другой контейнер.
...
Рейтинг: 0 / 0
Обмен данными между приложениями одного Tomcat
    #39346780
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DS-MaxНо опять же, возможно в рамках одного Tomcat есть что-то более православное.
в рамках томкат будет более тесная связь чем через REST.
Вы разделяете или хотите на двух стульях?
...
Рейтинг: 0 / 0
25 сообщений из 39, страница 1 из 2
Форумы / Java [игнор отключен] [закрыт для гостей] / Обмен данными между приложениями одного Tomcat
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]