Наше приложение часто подключается к различным видам серверной части через веб-сервисы, MQ, JDBC, проприетарный (прямой через сокет) и другие виды транспорта. У нас уже есть ряд реализаций, которые позволяют нам подключаться из нашего приложения к этим бэкэндам, и хотя все эти реализации реализуют общий интерфейс Java, они больше ничего не разделяют.
Мы поняли, что существуют значимые части кода, которые являются общими для всех этих конкретных реализаций соединителей, и мы решили упростить разработку будущих соединителей через один универсальный соединитель. Этот соединитель будет способен форматировать сообщения в формат, ожидаемый серверной частью, и отправлять их с использованием доступного транспортного механизма. Например, формат сообщения фиксированной длины через MQ или через сокет.
Одна из дилемм, с которой мы сталкиваемся, - это наиболее подходящая технология для такого рода разъемов. До сих пор наши коннекторы были базовыми классами Java, которые реализуют общий интерфейс Java. Поскольку мы обычно размещаем наши приложения на каком-либо сервере приложений Java EE, кажется, что Java Connector Architecture будет наиболее подходящей технологией для этого программного обеспечения. Однако реализация JCA-совместимого соединителя представляется относительно сложной. Каковы ощутимые преимущества использования стандарта - JCA, и оправдывают ли преимущества дополнительные усилия?