2015-01-07 5 views
0

Мы являемся полным семинаром по SOA (только для Java), и мы используем SOAP для передачи данных. В настоящее время мы находимся в процессе централизации работы базы данных для конкретного компонента, чтобы другие компоненты могли извлекать данные из одного приложения с помощью SOAP.Необходимое предложение для архитектуры, ориентированной на обслуживание

Моим аргументом является то, что хорошо централизовать, но при добавлении мыла между вызовами базы данных добавляется много времени ожидания. Я хочу реализацию RMI/EJB, поэтому мы получаем сериализованный объект и уменьшаем накладные расходы на маршалинг. Мне нравится способ реализации Ejbs и хотел бы использовать его. Но данные, которые мы возвращаем, вовсе не из одной таблицы, поэтому я не могу вернуть объект таблицы базы данных, данные могут быть из 20 других таблиц или более.

Итак, в нашей текущей системе у нас есть настраиваемые объекты, которые создаются для сопоставления с тяжелыми sql-запросами. (не относится к одной таблице)

Можно использовать ejbs для этого типа окружающей среды? Если да, существуют ли библиотеки, которые легко доступны для сопоставления результата запроса с сущностями?

К сожалению, наша собственная система очень старая, мы используем java 1.4.

ответ

1

Это можно сделать, но это будет болезненно. Существовала причина, по которой были созданы объектные компоненты EJB 3.0. Это связано с тем, что справляться с этими сложными требованиями на самом деле довольно сложно для сопоставления через старые файлы XML-файлов 2.x.

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

Хуже, построив это с помощью EJB 2.x, а затем с помощью RMI/EJB свяжет все ваши другие приложения с этой же устаревшей технологией. Очень немногие люди хотели бы начать проект EJB 2.1.

Я честно считаю, что вам лучше использовать SOAP для вашего сервиса вместо EJB, по крайней мере, он не свяжет вас с устаревшей платформой. Современные лучшие практики предпочитают REST для переноса сущности и сохраняют SOAP для взаимодействия RPC в стиле, но есть много хороших библиотек для того, чтобы ваши таблицы базы данных отображались в SOAP-сопоставлениях, многие из которых являются готовыми для RDMS.

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

+0

Когда вы имеете в виду «Была причина, по которой были созданы сущности EJB 3.0. Это потому, что, имея дело с такими сложными требованиями, означает ли это, что столбцы из более чем одной таблицы будут сопоставлены с одной enitity? – Zeus

Смежные вопросы