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

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

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

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


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

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

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

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

пятница, 26 октября 2012 г.

Знакомимся: Компонентная архитектура сервисов - Service Component Architecture (SCA)

Компонентная архитектура сервисов (SCA) - это множество спецификаций, описывающих модель построения приложений и систем с использованием сервис-ориентированной архитектуры (SOA). SCA расширяет и дополняет предыдущие методы реализации сервисов и основывается на открытых стандартах, таких как веб-сервисы.

По-сути, SCA обеспечивает программную модель для реализации SOA.


Спецификация состоит из двух основных частей, описывающих методы

  1. Реализации компонентов, предоставляющих одни и использующих другие сервисы.

  2. Объединения множества компонентов для построения бизнес-приложений путем связывания сервисов и сервисных ссылок (service references).


Разработчиком спецификации является консорциум Open SOA Collaboration (www.osoa.org). Текущая версия спецификации - 1.0 от 21 марта 2007 г. Некоторые части спецификации приняты позднее, например SCA Assembly Extensions for Event Processing and Pub/Sub V1.00 - 30 апреля 2009 г. Существует черновик версии 1.1, выпущенный 31 мая 2011. Несмотря на то, что это - черновик, он уже поддерживается Oracle.

SCA подчеркивает независимость способа реализации и объединения сервисов от возможностей инфраструктуры и используемых методов доступа. Компоненты SCA обслуживают бизнес-уровень и используют минимум API промежуточного слоя.

четверг, 18 октября 2012 г.

Библиотеки, необходимые для сборки и развертывания OSB и SOA Suite проектов

Одной из популярных сегодня техник создания программного обеспечения является непрерывная интеграция. При внедрении данного процесса при разработке сервисной шины предприятия, основанной на Oracle Service Bus (OSB) или Oracle SOA Suite, требуется решить две задачи:

  • обеспечить сборку проектов OSB и SCA-композитов SOA Suite;

  • обеспечить развертывание собранных компонентов на сервере приложений Oracle WebLogic.

В сети представлено много материалов, описывающих автоматизацию этих задач. Рекомендую статью Станислава Девятова Непрерывная интеграция для Oracle SOA Suite 11g. В данной же заметке хочется рассмотреть вопрос минимизации количества необходимых библиотек.

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

Несколько слов в защиту шаблона "Анемичная модель предметной области" (Anemic Domain Model)

Мартином Фаулером в его классическом труде "Шаблоны корпоративных приложений" (Patterns of enterprise application architecture) выделено несколько подходов к организации бизнес-логики.

  1. Транзакционный сценарий - бизнес-логика разбивается на процедуры, каждая из которых соответствует конкретному запросу, поступающему от слоя представления.

  2. Табличный модуль - бизнес-логика как и в предыдущем варианте описывается в процедурном стиле, однако манипуляции с каждой таблицей выносятся в отдельный класс, что делает код более структурированным.

  3. Модель предметной области - самый сложный для реализации подход, однако имеющий ряд преимуществ при описании сложной логики. Суть заключается в том, что выделяются объекты, соответствующие объектам предметной области. Описываются отношения между данными объектами, соответствующие отношениям между объектами реального мира. При этом решение технологических вопросов, таких как хранение, безопасность, управление транзакциями как правило выносится за пределы слоя бизнес-логики.

    Выделяют два варианта данного подхода:

    • Насыщенная модель предметной области - данные и поведение инкапсулируются внутри объектов предметной области.

    • Анемичная модель предметной области - в объектах предметной области инкапсулируются только данные, поведение же выносится в слой сервисов, расположенный поверх слоя предметной области.


Если выбор между тем какой шаблон - транзакционный сценарий, табличный модуль или доменную модель - использовать как правило не вызывает проблем, т.к. критерии их применимости четко описаны в первоисточнике, то ответ на вопрос использовать или нет анемичную модель предметной области не так очевиден. С одной стороны теоретики объектно-ориентированного подхода считают данный шаблон "антипаттерном", с другой стороны он завоевал определенную популярность в практике разработки корпоративных приложений, что свидетельствует о наличии некоторых преимуществ. Давайте постараемся разобраться в данном вопросе.

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

Создание кластера серверов приложений WebLogic с помощью WLST и утилит pack/unpack

В заметке полуторагодичной давности Создаем кластер серверов приложений WebLogic: балансировка нагрузки, обнаружение ошибок, репликация сессий Суровый расказывал о том, как создать домен с помощью Configuration Wizard. Однако у данного способа есть недостаток - он трудоемок для администратора. Посудите сами: администратор, каждый раз создавая домен, вынужден проходить по двум десяткам окон мастера, внося одни и те же изменения. А т.к. классический процесс разработки и внедрения предполагает наличие как минимум трех сред: разработки, интеграционного тестирования и промышленной эксплуатации, то придется создать как минимум три домена. При этом грамотно настроеная среда промышленной эксплуатации подразумевает кластеризацию и соответствующее увеличение экземпляров домена. К счастью, процесс создания домена можно автоматизировать с помощью утилиты WebLogic Scripting Tool (WLST).

понедельник, 27 августа 2012 г.

SOA Governance: создаем домен с OSB, SOA Suite, Oracle Enterprise Repository и Oracle Service Registry

Корпорация Oracle предлагает следующее программное обеспечение для построения процесса управления сервисно-ориентированной архитектурой предприятия (SOA Governance):

  • Oracle Enterprise Repository - репозиторий предприятия, предназначеный для хранения схем, описаний сервисов, самих сервисов, процессов, методологических документов, и прочего имущества (assets) предприятия. Позволяет гибко настраивать таксономию ресурсов и отслеживать взаимосвязи между ними. Опционально можно настроить политики, например стандарты качества, и отслеживать соответствие ресурсов данным стандартам.

  • Oracle Service Registry - UDDI v3-совместимый реестр сервисов. Интегрируется как с Oracle SOA Suite, так и с Oracle Service Bus, а так же позволяет публиковать и искать сервисы с помощью Eclipse и JDeveloper.

  • Oracle Enterprise Gateway - средство защиты сервисно-ориентированной архитектуры. Как видно из названия, реализует паттерн Gateway в противовес паттерну Agent, реализуемому Oracle Web Services Manager'ом.

  • Oracle Enterprise Manager SOA Management Pack Enterprise Edition - средство управления сервисно-ориентированной архитектурой предприятия во время исполнения.

  • Oracle SOA Suite - средство реализации сервисов. Содержит такие компоненты как Mediator, BPEL, Business Rules, Human Task, а так же поддерживает интеграцию со Spring Framework. В состав SOA Suite входит Oracle Web Services Manager - средство, используемое для обеспечения работы политик WS-Policy.