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

У цій першій статті розглядається реалізація шаблону 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: esbsampless1-splitinput" для 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.

 


 
 
 
 

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*