BizTalk and around

Stas Kondratyev (MSFT)

WCF адаптер для очередей Oracle AQ

Продолжая предыдущий пост, поделюсь опытом разработки транзакционного WCF адаптера для очередей Oracle Advanced Queuing (AQ).

Предыстория

Перед нами (MCS) возникла задача показать возможность интеграции информационных систем построенных на Oracle с помощью BizTalk. В силу многих причин было принято решение не использовать хранимые процедуры и не подключаться к таблицам напрямую, а передавать данные в виде отдельных сообщений через очереди Oracle. Одним из требований была возможность гарантированной доставки, чтобы данные не удалялись из источника пока не попадут в следующее надежное хранилище, но и не попадали в следующие хранилище пока не удалятся из источника. Проще говоря, передача данных должна осуществляться в рамках транзакции.

clip_image002

Для решения этой задачи нужно было найти существующий или разработать собственный адаптер, который бы умел подсоединяться к AQ и забирать данные внутри транзакции объединяющей источник данных (в данном случае AQ) и BizTalk MessageBox. На момент выбора адаптера для Oracle AQ у партнеров Microsoft уже существовали адаптеры умеющие работать с Oracle AQ, но все они имели некоторые ограничения, например отсутствие поддержки транзакций. Поэтому было принято решение разработать свой адаптер с помощью WCF LOB Adapter SDK.

Разработка адаптера

Для решения задачи взаимодействия с AQ было рассмотрено множество вариантов, вот некоторые из них:

  • JMS – нужен адаптер для JMS, подтверждение возможности транзакционной передачи получено не было.
  • SOAP – дополнительное звено и необходимость развертывания веб-сервера на стороне базы данных. Транзакционность тоже под большим вопросом.
  • PL\SQL через ODP.NET – нужна установка Oracle Client и ODP.NET.

В итоге единственным приемлемым вариантом удовлетворявшим большинству требований оказался PL\SQL, который предоставляет простые команды для работы с очередями AQ, а ODP.NET предоставляет прозрачный интерфейс для работы с .NET транзакциями.

После выбора способа взаимодействия дальнейшая реализация WCF адаптера заняла минимальное кол-во времени, включая поддержку транзакций и выгрузку метаданных для использования в BizTalk решении. Это говорит не столько об опытности Microsoft Consulting Services :), сколько о простоте инструментария WCF LOB Adapter SDK. Так что если перед вами стоит задача подключения к одной из унаследованных систем, или системе для которой ни у Microsoft ни у партнеров нет адаптера, вы можете написать его самостоятельно, это не так сложно как может показаться.

Published Thursday, November 20, 2008 11:05 AM by yaroslav
Filed under: , , , ,

Comments

No Comments
Anonymous comments are disabled

© 2009 Microsoft Corporation. All rights reserved. Terms of Use  |  Trademarks  |  Privacy Statement
Microsoft
Page view tracker