вторник, 20 ноября 2012 г.

Асинхронный веб-сервис на Oracle Service Bus

Обеспечить асинхронное взаимодействие с веб-сервисом по протоколу HTTP можно не только с помощью Oracle SOA Suite, но и с помощью Oracle Service Bus. Основная сложность при этом заключается в том, что Oracle Service Bus не содержит встроенных средств сохранения состояния, поэтому необходимо будет каким-то образом сохранить во внешней памяти URL сервиса обратного вызова и идентификатор сообщения, на которое мы отвечаем. Так же нам нужно будет самостоятельно сформировать заголовок ответного SOAP-сообщения, соответствующий спецификации WS-Addressing. Давайте посмотрим как это можно сделать.

воскресенье, 11 ноября 2012 г.

Модель потоков Oracle Service Bus

Чтобы разрабатывать эффективные с точки зрения производительности сервисы на Oracle Service Bus, необходимо понимать как данная шина использует потоки.

Общая модель потоков


Общая модель потоков OSB, т.е. модель потоков при использовании маршрутизации, следующая: ветвь обработки запроса выполняется в одном потоке, потоке для WorkManager'а прокси-сервиса, ветвь обработки ответа - в другом потоке - потоке для WorkManager'а бизнес-сервиса. После отправки запроса вызываемому сервису поток прокси-сервиса возвращается в пул потоков. Существует специальный мультиплексор, muxer, который используется для ожидания ответа от вызванного сервиса. После получения ответа тот передает его на обработку новому потоку, который используется для исполнения ветви обработки ответа (Response Pipeline). Данная архитектура подразумевает, что пока осуществляется ожидание ответа от бизнес-сервиса, никакие потоки не используются, что существенно улучшает масштабируемость в терминах использования потоков.

среда, 7 ноября 2012 г.

Интеграция Spring Framework и консоли администрирования сервера приложений WebLogic

При эксплуатации программ, разработанных с использованием Spring Framework, под управлением сервера приложений WebLogic, их сопровождение можно облегчить с помощью предоставляемых компанией Oracle расширений для консоли администрирования. В данной заметке мы рассмотрим как включить данные расширения и обеспечить их использование для управления приложениями.