(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 
 

Решение некоторых популярных задач обработки данных с помощью Oracle ESB. Часть 1.

Источник: Oracle
Владимир Энгельс, Дмитрий Севостьянов Oracle СНГ

В этой первой статье рассматривается реализация шаблона splitter, который осуществляет расщепление одним ESB- процессом потока данных, содержащего сообщения разного типа.

Постановка задачи.

Есть единственная очередь сообщений (AccountService), куда помещаются входные данные (XML-документы), относящиеся не просто к разным схемам данных, но и отражающие несвязанные объекты предметной области (в виде XML-документов двух типов: CreateAccount и CloseAccount). Это не является хорошим стилем проектирования системы, но, тем не менее, система уже спроектирована и работает. Итак, сообщения, пришедшие в очередь, необходимо передать обработчику конкретного типа сообщения (шаблон splitter). Входные сообщения описываются XSD-схемой Account. xsd, которая включает в себя схемы, описывающие разнородные объекты предметной области (Currency.xsd, Customer.xsd, Address.xsd)

Реализация.

Создание проекта Oracle ESB.

1. Создаем проект Scenario01-split в рабочей области ESBsamplesтипа ESB Project.

2. Помещаем схемы, описывающие объекты предметной области в созданный проект (Account.xsd, Address.xsd, Currency.xsd, Customer.xsd)

3. Создаем собственную "Систему", называем ее "ESBsamples"

 

4. Создаем собственную "Группу", называем ее "01Scenario-split"

5. Сохраняем все изменения Для облегчения отладки проекта будем работать с файловыми адаптерами.

6. Создаем файловый адаптер с именем Account-ServiceFile, относящийся к системе/группе ESBsamples. 01Scenario-split, принимающий входные сообщения. Адаптер конфигурируется кнопкой "Configure Adapter Service"

7. Соглашаемся с именем адаптера на первом шаге конфигурирования, выбираем тип операции "Read" на втором шаге конфигурирования

 

8. Задаем тип поиска каталога со входными сообщеиями через логическое имя и даем логическому имени имя "sourcePath"

 

9. Выбираем шаблон поиска "File Wildcards" файла в каталоге, содержащем входные сообщения, и устанавливаем шаблон поиска "*.xml"

10. Устанавливаем частоту времени просмотра каталога и возраст создания файла в 1 секунду

 

11. Указываем схему, с которой будет работать наш файловый адаптер, нажав кнопку "Browse" (Схемы находятся в проекте, после шага 2)

12. Конфигурирование файлового адаптера завершено

 
 

13. Вместе с файловым адаптером (на самом деле с любым адаптером, работающим на получение данных) создается сервис маршрутизации, именованный аналогично, но имеющий в качестве суффикса "_RS". Этот адаптер используется для приведения модели данных к внутрисистемной модели. В нашем случае мы будем использовать такую модель данных, которую предоставил нам адаптер.

14. Сохраняем все изменения

15. Создаем выходной файловый адаптер для первого типа сообщений CreateAccount

Сохраните все изменения

16. Создаем выходной файловый адаптер для второго типа сообщений CloseAccount

17. Сохраняем все изменения

18. Конфигурируем логические имена для файловых адаптеров:

- Откроем файловый адаптер AccountServiceFile (сделав двойной щелчок мышью на изображении шестеренки в файловом адаптере.

- Раскроем список свойств адаптера, нажав символ "+" около надписи Endpoing properties

Добавляем новое свойство

 

Вводим значение свойства "sourcePath", например "e:\esbsamples\s1-split\input" для Windows или "/tmp/esb-samples/input" для Unix. Если вы разрабатываете проект под Windows, но разворачивать его будете на Unix, то всегда можно поменять значение свойства через ESBConsole

19. Сконфигурируем свойства логических имен каталогов для выходных файловых адаптеров

20. Сохраним все изменения

21. Создаем сервис маршрутизации, который будет принимать на вход сообщения на создание счета и перенаправлять их на сервисы записи в конкретный источник данных (в нашем случае это файловый адаптер CreateAccountServiceFile, но можно добавить и вызов web-service, и адаптер базы данных, и адаптер JMS).

Задаем ему имя CreateAccountRoutingService и выбираем объект "Operation" в схеме данных Account.xsd

22. Открываем только что созданный сервис маршрутизации для задания правил маршрутизации, нажав на рисунок,

отмеченный красным квадратиком на пиктограмме сервиса

23. Создаем правило маршрутизации:

- Раскройте список правил маршрутизации, нажав на знак "+" у надписи Routing rules

- Нажмите на рисунок знака "+" в строке "execute" для того чтобы добавить новое правило и выберите в качестве места назначения операцию "Write" файлового адаптера CreateAccountServiceFile

 

24. Аналогичным образом создаем маршрутизатор (Close-AccountRoutingService) для файлового адаптера CloseAccountRoutingServiceFile

25. Сохраняем все изменения

26. Создаем главный сервис маршрутизации с именем "MainRoutingService"

 

27. Создаем правило маршрутизации для операции "Read" сервиса маршрутизации "AccountServiceFile". В качестве цели указываем операцию "execute" сервиса MainRoutingService

28. Сохраняем все изменения

29. Создаем первое правило маршрутизации (создание счета клиента) для операции "execute" сервиса MainRoutingService, в качестве цели указываем операцию "execute" сервиса CreateAccountRoutingService

30. Создаем правило фильтрации для этого правила маршрутизации, нажав на пиктограмму фильтрации (отмечена красным квадратиком)

31. В открывшемся помощнике создания выражения в правой стороне выбираем тип функции "String function", из списка функций выбираем имя функции "string-length" и нажимаем кнопку "Insert into expression". В левой части построителя выражений выбираем элемент "Operation/createAccount/Account/accountId"

 

32. Создаем второе правило маршрутизации для операции (закрытие счета клиента) "execute" сервиса CloseAccountRoutingService.

33. Создаем правило фильтрации для этого правила маршрутизации, нажав на пиктограмму фильтрации (отмечена красным квадратиком)

34. В открывшемся помощнике создания выражения в правой стороне выбираем тип функции "String function", из списка функций выбираем имя функции "string-length" и нажимаем кнопку "Insert into expression". В левой части построителя выражений выбираем элемент "Operation/closeAccount/Account/accountId"

 

35. Сохраняем все изменения

36. В результате получаем следующую картинку в окне главной диаграммы процесса

37. Убеждаемся в наличии каталогов на сервере приложений, которые были указаны при настройке файловых адаптеров (шаг 18,19)

38. Разворачиваем проект на сервере приложений. В навигаторе приложений - Application Navigator

- щелкните правой кнопкой мыши на проекте Scenario01 и из контекстного меню выберите пункт Register with ESB

- <Имя сервера интеграции>

По окончанию развертывания вы должны увидеть следующее сообщение:

39. Зарегистрируемся в ESB Control и открываем развернутый на сервере проект. Вы должны увидеть следующее изображение

В результате мы получили развернутый на сервере проект, реализующий шаблон splitter. В следующей статье будут рассмотрены тонкости обработки ошибок в процессах ESB с применением шаблона invalid message channel.

 

 
 
 
 

Ссылки по теме


 Распечатать »
 Правила публикации »
  Написать редактору 
 Рекомендовать » Дата публикации: 01.11.2008 
 

Магазин программного обеспечения   WWW.ITSHOP.RU
Oracle Database Personal Edition Named User Plus License
Oracle Database Standard Edition 2 Named User Plus License
Oracle Database Standard Edition 2 Processor License
Oracle Database Personal Edition Named User Plus Software Update License & Support
Купить, скачать Dr.Web Security Space, 1 год, 1 ПК
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Новости ITShop.ru - ПО, книги, документация, курсы обучения
Программирование на Microsoft Access
CASE-технологии
Реестр Windows. Секреты работы на компьютере
СУБД Oracle "с нуля"
Windows и Office: новости и советы
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
 



    
rambler's top100 Rambler's Top100