Какое самое простое решение для интеграции двух приложений в сервер Tomcat? - PullRequest
1 голос
/ 05 августа 2009

Я новичок в этом и смотрю на Apache Camel, Spring Integration и даже на терракоту.

Я рассматриваю возможность обмена общими данными, такими как пользователь / группы / учетная запись / разрешение, и общими бизнес-данными, такими как данные инвентаризации / информация о продукте / и т. Д.

Любой пример будет по достоинству оценен.

Ответы [ 5 ]

1 голос
/ 06 августа 2009

Я планирую обмениваться общими данными, такими как пользователь / группы / учетная запись / разрешение, и общими бизнес-данными, такими как данные инвентаризации / информация о продукте / и т. Д.

Общие данные, такие как пользователи, группы и разрешения, находятся в центральной LDAP или базе данных. Они являются частью вашего решения Spring Security, и все приложения могут делиться ими независимо от того, находятся ли они на одном сервере приложений или нет.

Можно утверждать, что общие бизнес-данные, такие как инвентарь, сведения о продукте и т. Д., Должны принадлежать одной услуге. Это единственный, кто может изменить данные. Другие могут получить доступ, запросив службу, но именно она управляет операциями CRUD с этими таблицами.

Если вы сделаете это, вы предотвратите соединение объектов и систем на уровне базы данных. Вы торгуете более слабой связью для увеличения задержки в сети.

1 голос
/ 05 августа 2009

Как насчет интеграции на уровне базы данных?

Оба приложения имеют доступ к одной и той же реляционной базе данных. Они созданы для такого рода задач.

Для этого два приложения могут использовать общую библиотеку (для простоты у каждого будет копия в WEB-INF / lib).

1 голос
/ 05 августа 2009

Вместо этого вам следует рассмотреть возможность создания полноценного EAR, если вы хотите, чтобы он не зависел от веб-контейнера.

Поскольку разные веб-приложения имеют разные загрузчики классов, вы не можете просто создать объект в одном веб-приложении, который сразу же может быть использован другим. Следовательно, вам необходимо иметь общий загрузчик классов, который знает об общих классах, и - чтобы быть на 100% совместимым, - эти классы могут отсутствовать ни в одном из веб-приложений WEB-INF / lib. Это трудно понять, и результат хрупок.

Поэтому рассмотрите возможность перехода к веб-контейнеру, который может вместо этого развернуть EAR, поскольку они могут содержать несколько веб-приложений, совместно использующих объекты. Я считаю, что хорошим выбором для начала был бы JBoss.

0 голосов
/ 05 августа 2009

Если вы новичок, то можете создать классы для обработки общих данных и просто создать отдельный сервлет для каждого приложения.

Это, по крайней мере, поможет вам лучше познакомиться с технологиями.

0 голосов
/ 05 августа 2009

Теоретически, у каждого приложения есть свое собственное пространство памяти, но я могу придумать несколько способов обмена информацией между приложениями.

Если объем передаваемой информации невелик, возможно, лучше использовать прямой подход. установить канал связи (веб-сервисы немного излишни, но хороший пример) и заставить приложения запрашивать информацию друг у друга.

В случае массового обмена, возможно, два приложения должны читать из одной базы данных или локального файла. Имейте в виду, что это вызывает проблемы с синхронизацией и приводит вас в область блокировок и блокировок. Слегка ступай в этом царстве ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...