Корпорация Oracle предлагает следующее программное обеспечение для построения процесса управления сервисно-ориентированной архитектурой предприятия (SOA Governance):
В данной заметке мы разберемся с вопросами установки следующих компонент из приведенного выше списка:
Важно! При установке всех перечисленных компонентов в один каталог MIDDLEWARE_HOME, Oracle Service Registry должен устанавливаться последним. Если возникла необходимость установить какой-либо компонент поверх Oracle Service Registry, то нужно сделать следующее:
1. Удалить Oracle Service Registry с помощью файла MIDDLEWARE_HOME\registry111\bin\setup.bat, выполнив действие Undeploy.
При этом значение параметра Registry deployment directory на первом шаге мастера можно оставить пустым:
2. Удалить вручную каталог, в который был установлен Oracle Service Registry. По-умолчанию это: MIDDLEWARE_HOME\registry111.
3. Заново установить Oracle Service Registry в тот же MIDDLEWARE_HOME.
Существует два подхода к задействованию компонентов: во-первых, можно поступить как рекомендует Oracle - вынести Oracle Service Registry и Oracle Enterprise Repository в отдельный домен, во-вторых можно использовать весь набор ПО в рамках одного домена.
Проблема установки всего набора приложений в один домен заключается в том, что при добавлении Oracle SOA Suite и/или Oracle Service Bus, изменяется содержимое файла setDomainEnv.cmd/sh - добавляются новые классы в classpath. Соответственно, работа Oracle Service Registry нарушается.
Чтобы работа реестра сервисов не нарушалась, необходимо сделать так, чтобы классы, специфичные для Oracle SOA Suite и Oracle Service Bus не добавлялись в classpath сервера, на котором развернут Oracle Service Registry. По-умолчанию данный сервер называется osr_server1. Соответственно, необходимо исправить файл setDomainEnv.cmd/sh, обернув строчки, в которых к POST_CLASSPATH подключается архив %COMMON_COMPONENTS_HOME%\modules\oracle.jrf_11.1.1\jrf.jar, и в которых к PRE_CLASSPATH подключается %COMMON_COMPONENTS_HOME%\modules\oracle.jdbc_11.1.1\ojdbc6dms.jar в блок
Таким образом участок файла setDomainEnv.cmd/sh, в котором переопределяются переменные окружения POST_CLASSPATH и PRE_CLASSPATH, будет выглядеть следующим образом:
в случае использования Oracle Service Bus:
в случае использования Oracle SOA Suite:
в случае использования Oracle Service Bus и Oracle SOA Suite:
Видно, что после данных манипуляций все сервера домена корректно стартуют
и Oracle Service Registry нормально открывается:
Понравилось сообщение - подпишитесь на блог и Twitter
- 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.
В данной заметке мы разберемся с вопросами установки следующих компонент из приведенного выше списка:
- Oracle Enterprise Repository;
- Oracle Service Registry;
- Oracle Enterprise Manager (входит в состав Oracle SOA Suite);
- Oracle SOA Suite;
- Oracle Service Bus (позиционируется компанией Oracle как часть Oracle SOA Suite, однако является отдельным приложением).
Важно! При установке всех перечисленных компонентов в один каталог MIDDLEWARE_HOME, Oracle Service Registry должен устанавливаться последним. Если возникла необходимость установить какой-либо компонент поверх Oracle Service Registry, то нужно сделать следующее:
1. Удалить Oracle Service Registry с помощью файла MIDDLEWARE_HOME\registry111\bin\setup.bat, выполнив действие Undeploy.
При этом значение параметра Registry deployment directory на первом шаге мастера можно оставить пустым:
2. Удалить вручную каталог, в который был установлен Oracle Service Registry. По-умолчанию это: MIDDLEWARE_HOME\registry111.
3. Заново установить Oracle Service Registry в тот же MIDDLEWARE_HOME.
Существует два подхода к задействованию компонентов: во-первых, можно поступить как рекомендует Oracle - вынести Oracle Service Registry и Oracle Enterprise Repository в отдельный домен, во-вторых можно использовать весь набор ПО в рамках одного домена.
Проблема установки всего набора приложений в один домен заключается в том, что при добавлении Oracle SOA Suite и/или Oracle Service Bus, изменяется содержимое файла setDomainEnv.cmd/sh - добавляются новые классы в classpath. Соответственно, работа Oracle Service Registry нарушается.
Чтобы работа реестра сервисов не нарушалась, необходимо сделать так, чтобы классы, специфичные для Oracle SOA Suite и Oracle Service Bus не добавлялись в classpath сервера, на котором развернут Oracle Service Registry. По-умолчанию данный сервер называется osr_server1. Соответственно, необходимо исправить файл setDomainEnv.cmd/sh, обернув строчки, в которых к POST_CLASSPATH подключается архив %COMMON_COMPONENTS_HOME%\modules\oracle.jrf_11.1.1\jrf.jar, и в которых к PRE_CLASSPATH подключается %COMMON_COMPONENTS_HOME%\modules\oracle.jdbc_11.1.1\ojdbc6dms.jar в блок
if NOT "%SERVER_NAME%"=="osr_server1" (
)
)
Таким образом участок файла setDomainEnv.cmd/sh, в котором переопределяются переменные окружения POST_CLASSPATH и PRE_CLASSPATH, будет выглядеть следующим образом:
в случае использования Oracle Service Bus:
if NOT "%SERVER_NAME%"=="osr_server1" (
if NOT "%PRE_CLASSPATH%"=="" (
set PRE_CLASSPATH=%COMMON_COMPONENTS_HOME%\modules\oracle.jdbc_11.1.1\ojdbc6dms.jar;%PRE_CLASSPATH%
) else (
set PRE_CLASSPATH=%COMMON_COMPONENTS_HOME%\modules\oracle.jdbc_11.1.1\ojdbc6dms.jar
)
if NOT "%POST_CLASSPATH%"=="" (
set POST_CLASSPATH=%COMMON_COMPONENTS_HOME%\modules\oracle.jrf_11.1.1\jrf.jar;%POST_CLASSPATH%
) else (
set POST_CLASSPATH=%COMMON_COMPONENTS_HOME%\modules\oracle.jrf_11.1.1\jrf.jar
)
)
if NOT "%PRE_CLASSPATH%"=="" (
set PRE_CLASSPATH=%COMMON_COMPONENTS_HOME%\modules\oracle.jdbc_11.1.1\ojdbc6dms.jar;%PRE_CLASSPATH%
) else (
set PRE_CLASSPATH=%COMMON_COMPONENTS_HOME%\modules\oracle.jdbc_11.1.1\ojdbc6dms.jar
)
if NOT "%POST_CLASSPATH%"=="" (
set POST_CLASSPATH=%COMMON_COMPONENTS_HOME%\modules\oracle.jrf_11.1.1\jrf.jar;%POST_CLASSPATH%
) else (
set POST_CLASSPATH=%COMMON_COMPONENTS_HOME%\modules\oracle.jrf_11.1.1\jrf.jar
)
)
в случае использования Oracle SOA Suite:
if NOT "%SERVER_NAME%"=="osr_server1" (
if NOT "%PRE_CLASSPATH%"=="" (
set PRE_CLASSPATH=%COMMON_COMPONENTS_HOME%\modules\oracle.jdbc_11.1.1\ojdbc6dms.jar;%PRE_CLASSPATH%
) else (
set PRE_CLASSPATH=%COMMON_COMPONENTS_HOME%\modules\oracle.jdbc_11.1.1\ojdbc6dms.jar
)
if NOT "%POST_CLASSPATH%"=="" (
set POST_CLASSPATH=%COMMON_COMPONENTS_HOME%\modules\oracle.jrf_11.1.1\jrf.jar;%POST_CLASSPATH%
) else (
set POST_CLASSPATH=%COMMON_COMPONENTS_HOME%\modules\oracle.jrf_11.1.1\jrf.jar
)
set POST_CLASSPATH=%SOA_ORACLE_HOME%\soa\modules\oracle.soa.fabric_11.1.1\oracle.soa.fabric.jar;%SOA_ORACLE_HOME%\soa\modules\oracle.soa.fabric_11.1.1\fabric-runtime-ext-wls.jar;%SOA_ORACLE_HOME%\soa\modules\oracle.soa.adapter_11.1.1\oracle.soa.adapter.jar;%SOA_ORACLE_HOME%\soa\modules\oracle.soa.b2b_11.1.1\oracle.soa.b2b.jar;%POST_CLASSPATH%
)
if NOT "%PRE_CLASSPATH%"=="" (
set PRE_CLASSPATH=%COMMON_COMPONENTS_HOME%\modules\oracle.jdbc_11.1.1\ojdbc6dms.jar;%PRE_CLASSPATH%
) else (
set PRE_CLASSPATH=%COMMON_COMPONENTS_HOME%\modules\oracle.jdbc_11.1.1\ojdbc6dms.jar
)
if NOT "%POST_CLASSPATH%"=="" (
set POST_CLASSPATH=%COMMON_COMPONENTS_HOME%\modules\oracle.jrf_11.1.1\jrf.jar;%POST_CLASSPATH%
) else (
set POST_CLASSPATH=%COMMON_COMPONENTS_HOME%\modules\oracle.jrf_11.1.1\jrf.jar
)
set POST_CLASSPATH=%SOA_ORACLE_HOME%\soa\modules\oracle.soa.fabric_11.1.1\oracle.soa.fabric.jar;%SOA_ORACLE_HOME%\soa\modules\oracle.soa.fabric_11.1.1\fabric-runtime-ext-wls.jar;%SOA_ORACLE_HOME%\soa\modules\oracle.soa.adapter_11.1.1\oracle.soa.adapter.jar;%SOA_ORACLE_HOME%\soa\modules\oracle.soa.b2b_11.1.1\oracle.soa.b2b.jar;%POST_CLASSPATH%
)
в случае использования Oracle Service Bus и Oracle SOA Suite:
if NOT "%SERVER_NAME%"=="osr_server1" (
if NOT "%POST_CLASSPATH%"=="" (
set POST_CLASSPATH=%COMMON_COMPONENTS_HOME%\modules\oracle.jrf_11.1.1\jrf.jar;%POST_CLASSPATH%
) else (
set POST_CLASSPATH=%COMMON_COMPONENTS_HOME%\modules\oracle.jrf_11.1.1\jrf.jar
)
if NOT "%PRE_CLASSPATH%"=="" (
set PRE_CLASSPATH=%COMMON_COMPONENTS_HOME%\modules\oracle.jdbc_11.1.1\ojdbc6dms.jar;%PRE_CLASSPATH%
) else (
set PRE_CLASSPATH=%COMMON_COMPONENTS_HOME%\modules\oracle.jdbc_11.1.1\ojdbc6dms.jar
)
)
set POST_CLASSPATH=%POST_CLASSPATH%
set POST_CLASSPATH=%POST_CLASSPATH%;%ALSB_HOME%\lib\version.jar;%ALSB_HOME%\lib\alsb.jar;%ALSB_HOME%\3rdparty\lib\j2ssh-ant.jar;%ALSB_HOME%\3rdparty\lib\j2ssh-common.jar;%ALSB_HOME%\3rdparty\lib\j2ssh-core.jar;%ALSB_HOME%\3rdparty\lib\j2ssh-dameon.jar;%ALSB_HOME%\3rdparty\classes;%ALSB_HOME%\lib\external\log4j_1.2.8.jar;%DOMAIN_HOME%\config\osb
if NOT "%SERVER_NAME%"=="osr_server1" (
set POST_CLASSPATH=%SOA_ORACLE_HOME%\soa\modules\oracle.soa.fabric_11.1.1\oracle.soa.fabric.jar;%SOA_ORACLE_HOME%\soa\modules\oracle.soa.fabric_11.1.1\fabric-runtime-ext-wls.jar;%SOA_ORACLE_HOME%\soa\modules\oracle.soa.adapter_11.1.1\oracle.soa.adapter.jar;%SOA_ORACLE_HOME%\soa\modules\oracle.soa.b2b_11.1.1\oracle.soa.b2b.jar;%POST_CLASSPATH%
)
if NOT "%POST_CLASSPATH%"=="" (
set POST_CLASSPATH=%COMMON_COMPONENTS_HOME%\modules\oracle.jrf_11.1.1\jrf.jar;%POST_CLASSPATH%
) else (
set POST_CLASSPATH=%COMMON_COMPONENTS_HOME%\modules\oracle.jrf_11.1.1\jrf.jar
)
if NOT "%PRE_CLASSPATH%"=="" (
set PRE_CLASSPATH=%COMMON_COMPONENTS_HOME%\modules\oracle.jdbc_11.1.1\ojdbc6dms.jar;%PRE_CLASSPATH%
) else (
set PRE_CLASSPATH=%COMMON_COMPONENTS_HOME%\modules\oracle.jdbc_11.1.1\ojdbc6dms.jar
)
)
set POST_CLASSPATH=%POST_CLASSPATH%
set POST_CLASSPATH=%POST_CLASSPATH%;%ALSB_HOME%\lib\version.jar;%ALSB_HOME%\lib\alsb.jar;%ALSB_HOME%\3rdparty\lib\j2ssh-ant.jar;%ALSB_HOME%\3rdparty\lib\j2ssh-common.jar;%ALSB_HOME%\3rdparty\lib\j2ssh-core.jar;%ALSB_HOME%\3rdparty\lib\j2ssh-dameon.jar;%ALSB_HOME%\3rdparty\classes;%ALSB_HOME%\lib\external\log4j_1.2.8.jar;%DOMAIN_HOME%\config\osb
if NOT "%SERVER_NAME%"=="osr_server1" (
set POST_CLASSPATH=%SOA_ORACLE_HOME%\soa\modules\oracle.soa.fabric_11.1.1\oracle.soa.fabric.jar;%SOA_ORACLE_HOME%\soa\modules\oracle.soa.fabric_11.1.1\fabric-runtime-ext-wls.jar;%SOA_ORACLE_HOME%\soa\modules\oracle.soa.adapter_11.1.1\oracle.soa.adapter.jar;%SOA_ORACLE_HOME%\soa\modules\oracle.soa.b2b_11.1.1\oracle.soa.b2b.jar;%POST_CLASSPATH%
)
Видно, что после данных манипуляций все сервера домена корректно стартуют
и Oracle Service Registry нормально открывается:
Понравилось сообщение - подпишитесь на блог и Twitter
Комментариев нет:
Отправить комментарий
Любой Ваш комментарий важен для меня, однако, помните, что действует предмодерация. Давайте уважать друг друга!