Каковы преимущества JCA? - PullRequest
       31

Каковы преимущества JCA?

14 голосов
/ 02 апреля 2009

Наше приложение часто подключается к различным видам серверных частей через веб-сервисы, MQ, JDBC, проприетарные (direct over socket) и другие виды транспорта. У нас уже есть ряд реализаций, которые позволяют нам подключаться из нашего приложения к этим бэкэндам, и хотя все эти реализации реализуют общий интерфейс Java, они больше ничего не разделяют.

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

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

Ответы [ 5 ]

7 голосов
/ 09 апреля 2009

Действительно, JCA кажется самой подходящей для вас технологией. Уже были приведены отличные аргументы: переносимость, стандартизированный интерфейс, пул соединений и поддержка транзакций. И не забывайте о безопасности.

С сервером WebSphere Process адаптеры могут быть представлены как сервис SCA, который может иметь много преимуществ, если это важно для вас.

Также некоторые средства разработки имеют обширную поддержку для разработки и тестирования JCA-коннекторов.

Другим преимуществом являются (опытные) администраторы Java EE и разработчики Java EE (должны) знать стандарт, поэтому администрирование и разработка должны быть легко оптимизированы.

Но, в конце концов, вам нужно будет найти причины для внедрения JCA в зависимости от масштаба вашего проекта, будущих планов на ваш проект или, возможно, в рамках политики вашей компании.

5 голосов
/ 12 апреля 2009

Краткий ответ: я не вижу преимущества в выборе JCA по сравнению с другими технологиями, я считаю это недостатком, поскольку вам нужен контейнер Java EE.

Длинный ответ:

Я уже некоторое время скептически отношусь к этим стандартам Java EE. Я больше не вижу веской технической причины использовать полнофункциональный сервер Java EE, поскольку существуют лучшие реализации с открытым исходным кодом для каждой предлагаемой функции. Меня несколько раз укусили несовместимости реализации при переходе к / от «корпоративных решений».

Идея для JCA появляется здесь прямо сейчас, и я пытаюсь попробовать apache camel или весеннюю интеграцию . Я полностью за реализацию с открытым исходным кодом, которую вы можете использовать везде. И там много чего происходит. Проверьте этот список компонентов . Конечно, может быть меньше, чем то, что уже разработано с JCA, но каждый бит с открытым исходным кодом, и все это в одном месте. Кроме того, я считаю, что документация проще и полнее. Стремление к интеграции требует мощного SPI с множеством открытых исходных кодов, реальных примеров, разработанных таким же образом, которые можно найти в одном месте.

Я ненавижу негатив, но мне не нравятся полнофункциональные серверы приложений. Например, я бы пошел за котом и терракотой в любой день за другие "корпоративные" продукты, точно так же, как я бы пошел с верблюдом до JCA, пока не будет доказана необходимость JCA. Мне не нравится идея Комитета по Java рассказать, как я должен разрабатывать свои собственные приложения, потому что я им не доверяю. Я считаю, что в моих интересах, когда часть программного обеспечения может работать так же легко на Java SE / RCP, как в средах Java EE или в чистом контейнере сервлетов.

4 голосов
/ 04 апреля 2009

Я только что разработал адаптер входящих ресурсов для устройства GPS, связывающегося по проприетарному протоколу. Это было не так уж сложно, хотя у меня сложилось впечатление, что разработка исходящего может потребовать больше работы. Худшее в JCA - отсутствие документации. Все книги и статьи, кажется, имеют один и тот же тупой пример.

Больше всего меня порадовала портативность. После написания адаптера вы можете подключить rar (архив адаптера ресурсов) к любому серверу приложений, чтобы предоставить развернутым приложениям возможность общаться с eis, поддерживаемым вашим ra. Или вы можете связать RAR в войне / ухе.

1 голос
/ 08 апреля 2009

Преимущества в первую очередь для поставщиков, которые хотят продавать соединители для проприетарных внутренних систем для использования с любым сервером приложений, для клиентов, которые хотят иметь возможность подключать соединитель, не беспокоясь о том, работает ли он только в WebLogic, а не в Websphere, и т.д. Действительно, это цель Java EE в целом.

Обратите внимание, что JBoss решил добавить в JCA несколько вещей, например, соединения JDBC проходят через JCA.

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

0 голосов
/ 03 апреля 2009

Звучит как хорошее применение для контейнера JBI со связующими компонентами. Обсуждение JCA против JBI.

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