Замена вызовов Tuxedo на JDBC

Мне было поручено заменить некоторые службы Tuxedo эквивалентными вызовами JDBC.

Рассматривая один сервис Tuxedo, я начал с создания JDBC DAO, который реализует тот же интерфейс, что и существующий Tuxedo DAO. Я вызываю методы для этого из нового сервисного слоя. Я планирую использовать аннотацию Spring @Transactional на моем уровне службы для обработки транзакций JDBC.

Tuxedo обрабатывает транзакции внутренне, поэтому один вызов метода Tuxedo DAO сравним с несколькими вызовами методов в JDBC DAO, которые будут вызываться из нового сервисного уровня.

Учитывая вышесказанное, мне кажется, что Tuxedo DAO действительно должен быть объектом уровня обслуживания. Имеет ли это смысл?

Будем признательны за любые мысли о том, как лучше всего изложить это с точки зрения уровня службы/DAO. Мне нужно сохранить Tuxedo DAO для устаревших целей, но при необходимости рефакторинг его на уровень службы не должен быть проблемой.

Спасибо Джей


person James Hargreaves    schedule 31.10.2012    source источник
comment
Моя точка зрения выше заключается в том, что Tuxedo обеспечивает доступ к данным, следовательно, это может быть DAO. Однако, поскольку он также обрабатывает транзакции, его лучше использовать как Service.   -  person James Hargreaves    schedule 01.11.2012


Ответы (1)


Хорошо,

Это имеет большой смысл. На самом деле, Tuxedo Service (в зависимости от того, является ли это только доступом к БД или у него есть еще какая-то бизнес-логика) может быть заменен простым DB-DAO или какой-либо службой (EJB, WebService и т. д. в зависимости от стандартных технологий). используется на предприятии).

Я бы попробовал начать с классификации сервисов, чтобы вы могли решить, что делать с каждым из них, и, возможно, исправить некоторые стратегии. Что-то вроде «БД-ДАО», «ДРУГОЕ-ДАТАХРАНИЛИЩЕ-ДАО», «БОЛЕЕ КОМПЛЕКСНАЯ СЛУЖБА».

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

С уважением

person Martin    schedule 28.03.2013