Introduction in Eventingin Oracle SOA Suite 11gRonald van Luttikhuizen20-November-2012 | DOAG 2012                        ...
Ronald van Luttikhuizen• Managing Partner at Vennster• Oracle ACE Director for Fusion Middleware and SOA• Author of differ...
Agenda1.   What is Eventing and why use it ?2.   Oracle and Event-Driven Architecture3.   Messaging Patterns4.   Implement...
What is an event ?● An event is the occurrence of something relevant that usually  requires action. An event signals a cha...
Event  What is an event ?                                              Header                                          Nam...
Why use events in SOA?Case: Organization modeling notifications in processesMistake: Dependencies between processes modele...
Case: Explanation                    7|x
Case: Best Practice                      8|x
Why eventing?Complimentary● Processes and services describe what should be  done, events about when something important  o...
Agenda1.   What is Eventing and why use it ?2.   Oracle and Event-Driven Architecture3.   Messaging Patterns4.   Implement...
Oracle and Event-Driven Architecture (EDA) eventstreams                                                 BI                ...
Agenda1.   What is Eventing and why use it ?2.   Oracle and Event-Driven Architecture3.   Messaging Patterns4.   Implement...
Messaging Patterns●   Queueing●   Publish-subscribe●   Fire-and-forget●   Event-stream processingProducer                 ...
Messaging Patterns●   Queueing●   Publish/subscribe●   Fire-and-forget●   Event-stream processing                         ...
Messaging patterns●   Queueing●   Publish/subscribe●   Fire-and-forget●   Event-stream processingProducer                 ...
Messaging Patterns●   Queueing●   Publish/subscribe●   Fire-and-forget●   Event-stream processing                         ...
Eventing and synchronicityAsynchronocity can also be achieved without eventing;  eventing is often more decoupled         ...
Eventing and synchronicityEventing usually is asynchronous; but not necessarily                                           ...
Agenda1.   What is Eventing and why use it ?2.   Oracle and Event-Driven Architecture3.   Messaging patterns4.   Implement...
Implementation or Channel●   Advanced Queueing (AQ)●   Java Message Service (JMS)●   Event Delivery Network (EDN)●   Monit...
Advanced Queuing (AQ)Requirement● Need for eventing platform that can be used to integrate processes and services  impleme...
Advanced Queuing (AQ)CREATE USER JMSUSER IDENTIFIED BY JMSUSER;GRANT CONNECT, RESOURCE, AQ_ADMINISTRATOR_ROLE,    AQ_USER_...
Advanced Queuing (AQ)Configuration in WebLogic● Connection Pool and Data Source● AQ Resource Adapter                      ...
Demo Advanced Queuing (AQ)1. New order request inserted in Webshop Database with trigger that publishes   event2. Start of...
Java Message Service (JMS)Requirement● Need for eventing platform that can be used to integrate processes and services  im...
Java Message Service (JMS)Configuration in WebLogic● JMS Servers and Modules● JMS Resource Adapter                        ...
Demo Java Message Service (JMS)1. SOA Composite Order-to-Cash publishes new billing event through JMS Topic2. SOA Composit...
Event Delivery Network (EDN)Requirement● Need for light-weight and declarative eventing platform that can be used within  ...
Event Delivery Network (EDN)Configuration in JDeveloper● Event Definition in EDL● Publish or subscribe to EDN             ...
Demo Event Delivery Network (EDN) 1. SOA Composite Order-to-Cash publishes dunning event through EDN; SOA    Composite Dun...
Monitors & Sensors                                BAM                                                  sensor dataRequirem...
Monitors & Sensors● Composite Sensors to capture  relevant data for EM● Monitoring Objects in BPEL to  notify other system...
Agenda1.   What is Eventing and why use it ?2.   Oracle and Event-Driven Architecture3.   Messaging patterns4.   Implement...
Summary & Best Practices● SOA is not only about (synchronous) services and processes  (what); also events (when)  •   Mode...
Thank you!Ronald van Luttikhuizenronald.van.luttikhuizen@vennster.nl                                      35 | x
Upcoming SlideShare
Loading in …5
×

DOAG 2012 - Introduction in Eventing in SOA Suite 11g

2,617 views

Published on

Services and events are highly complementary instead of competing paradigms in the IT landscape. Oracle SOA Suite 11g emphasizes the importance of events by supporting the Event Delivery Network (or EDN) in the SCA infrastructure. This presentation provides an introduction of eventing in SOA Suite 11g. It will start by explaining the basics of events, introduce several messaging patterns such as fire-and-forget and publish/subscribe, and explain some real life examples of using events in an SOA landscape. It will then dive into the underlying eventing infrastructure of Oracle WebLogic Server 11g and Oracle SOA Suite 11g that is based on JMS and AQ, and demo their use both inside and outside SCA composites using resource adapters, PL/SQL, and Java. The presentation will finish with the discussion of Oracle SOA Suite 11g’s EDN and the use of sensors and monitors in SCA composites.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,617
On SlideShare
0
From Embeds
0
Number of Embeds
1,194
Actions
Shares
0
Downloads
46
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

DOAG 2012 - Introduction in Eventing in SOA Suite 11g

  1. 1. Introduction in Eventingin Oracle SOA Suite 11gRonald van Luttikhuizen20-November-2012 | DOAG 2012 1|x
  2. 2. Ronald van Luttikhuizen• Managing Partner at Vennster• Oracle ACE Director for Fusion Middleware and SOA• Author of different articles, co-author Oracle SOA Book 11g book• Upcoming book SOA Made Simple• Architect, consultant, trainer for Oracle, SOA, EDA, Java• More than 10 years of software development and architecture experience• Contact: ronald.van.luttikhuizen@vennster.nl• Blog: blog.vennster.nl• Twitter: rluttikhuizen 2|x
  3. 3. Agenda1. What is Eventing and why use it ?2. Oracle and Event-Driven Architecture3. Messaging Patterns4. Implementation & demo’s5. Summary and Best Practices 3|x
  4. 4. What is an event ?● An event is the occurrence of something relevant that usually requires action. An event signals a change in state. • Business: new customer, employee has moved, invoice paid • Technology: server down, response time above threshold● Producers and consumers 4|x
  5. 5. Event What is an event ? Header Name, Type, Time,● Contract Producer, and so on● Interface● Implementation Body Payload 1. Guaranteed delivery 2. Delta between occurrence and delivery 3. Maximum # of messages 4. Message size 5|x
  6. 6. Why use events in SOA?Case: Organization modeling notifications in processesMistake: Dependencies between processes modeled directly in the processes itselfExplanation: Process flow sometimes is influenced by other processes. This was modeled into every process: this makes processes tightly coupled to each other and hard to change. It resulted in deadlocks. 6|x
  7. 7. Case: Explanation 7|x
  8. 8. Case: Best Practice 8|x
  9. 9. Why eventing?Complimentary● Processes and services describe what should be done, events about when something important occursBusiness● Businesses are about events • Better communication with business stakeholdersTechnology● Decoupling: no need to know consumers and operations to invoke • Easier release management • Different up-times • Different rates of processing speed 9|x
  10. 10. Agenda1. What is Eventing and why use it ?2. Oracle and Event-Driven Architecture3. Messaging Patterns4. Implementation & demo’s5. Summary and Best Practices 10 | x
  11. 11. Oracle and Event-Driven Architecture (EDA) eventstreams BI notable metrics events Filter Correlate Enrich Combine business events sensors business BAM events 11 | x
  12. 12. Agenda1. What is Eventing and why use it ?2. Oracle and Event-Driven Architecture3. Messaging Patterns4. Implementation & demo’s5. Summary and Best Practices 12 | x
  13. 13. Messaging Patterns● Queueing● Publish-subscribe● Fire-and-forget● Event-stream processingProducer Queue Consumer 13 | x
  14. 14. Messaging Patterns● Queueing● Publish/subscribe● Fire-and-forget● Event-stream processing ConsumerProducer Topic Consumer Consumer 14 | x
  15. 15. Messaging patterns● Queueing● Publish/subscribe● Fire-and-forget● Event-stream processingProducer ??? 15 | x
  16. 16. Messaging Patterns● Queueing● Publish/subscribe● Fire-and-forget● Event-stream processing Producer Event Producer Processing Engine Producer 16 | x
  17. 17. Eventing and synchronicityAsynchronocity can also be achieved without eventing; eventing is often more decoupled 17 | x
  18. 18. Eventing and synchronicityEventing usually is asynchronous; but not necessarily Request Q Product Product WS DB Response Q 18 | x
  19. 19. Agenda1. What is Eventing and why use it ?2. Oracle and Event-Driven Architecture3. Messaging patterns4. Implementation & demo’s5. Summary and Best Practices 19 | x
  20. 20. Implementation or Channel● Advanced Queueing (AQ)● Java Message Service (JMS)● Event Delivery Network (EDN)● Monitoring Objects and Sensors● Composite SensorsOthers:● Oracle Event Processing (OEP)● Oracle Technology Adapters: E-mail, File, Database Polling, Custom-Built● 3rd party Message-Oriented Middleware (MOM)● Social Media: Twitter, Facebook, LinkedIn, Google Talk● Java Action Listeners● AMQP implementationsand so on, and so on, … 20 | x
  21. 21. Advanced Queuing (AQ)Requirement● Need for eventing platform that can be used to integrate processes and services implemented in SOA Suite and Oracle RDBMS-based applicationsSolution● Use Advanced Queueing (AQ) as eventing platformCharacteristics● Implementation: Oracle Database● Payload types: RAW, Oracle Object, JMS● Integration: PL/SQL, AQ Resource Adapter● Delivery: Single-consumer and Multi-consumer● Configuration: Transactionality, Filtering, Correlation, Retries 21 | x
  22. 22. Advanced Queuing (AQ)CREATE USER JMSUSER IDENTIFIED BY JMSUSER;GRANT CONNECT, RESOURCE, AQ_ADMINISTRATOR_ROLE, AQ_USER_ROLE to JMSUSER;GRANT EXECUTE ON DBMS_AQADM TO JMSUSER;GRANT EXECUTE ON DBMS_AQ TO JMSUSER;DBMS_AQADM.CREATE_QUEUE_TABLE( Queue_table => ‘JMSUSER.NEW_CUST_ADDRESS_QT’, Queue_payload_type => ‘SYS.XMLTYPE’, Sort_list => ‘PRIORITY, ENQ_TIME’, Multiple_consumers => ‘TRUE’);DBMS_AQADM.CREATE_QUEUE( Queue_name => JMSUSER.NEW_CUST_ADDRESS_QUEUE, Queue_table => JMSUSER.NEW_CUST_ADDRESS_QT, Max_retries => 5, Retention_time => 10512000, Retry_delay => 5);DBMS_AQADM.START_QUEUE(Queue_name => JMSUSER.NEW_CUST_ADDRESS_QUEUE); 22 | x
  23. 23. Advanced Queuing (AQ)Configuration in WebLogic● Connection Pool and Data Source● AQ Resource Adapter 23 | x
  24. 24. Demo Advanced Queuing (AQ)1. New order request inserted in Webshop Database with trigger that publishes event2. Start of SOA Composite Order-to-Cash instance through AQ Adapter3. Stopping SOA Composite and insert new order New Order AQ Queue Event Webshop SOA Composite Database Order-to-Cash 24 | x
  25. 25. Java Message Service (JMS)Requirement● Need for eventing platform that can be used to integrate processes and services implemented in SOA Suite and Java-based applicationsSolution● Use Java Message Service (JMS) provided by WebLogic Server as eventing platformCharacteristics● Implementation: Application server such as WebLogic Server or 3rd party provider● Persistency: In-memory and File-based● Delivery: Queues and Topics● Integration: Java, MDB, JMS Resource Adapter, JMS over AQ (hybrid)● Configuration: Transactionality, Filtering, Correlation, Error Destination 25 | x
  26. 26. Java Message Service (JMS)Configuration in WebLogic● JMS Servers and Modules● JMS Resource Adapter 26 | x
  27. 27. Demo Java Message Service (JMS)1. SOA Composite Order-to-Cash publishes new billing event through JMS Topic2. SOA Composite Billing generates invoice3. Java CRM Application stores billing info with customer records SOA Composite JMS topic BillingService SOA Composite Order-to-Cash Java CRM Application 27 | x
  28. 28. Event Delivery Network (EDN)Requirement● Need for light-weight and declarative eventing platform that can be used within SOA SuiteSolution● Use Event-Delivery Network (EDN) as eventing platformCharacteristics● Introduced in SOA Suite 11g● Implementation: Light-weight framework on top of AQ (EDN-DB) or JMS (EDN-JMS)● Features: Basic eventing features● Delivery: Publish/subscribe● Integration: BPEL, Mediator, ADF BC, PL/SQL and Java API● Usage and configuration: Technology-neutral and declarative, Event Definition Language (EDL) uses XML message types, Filtering 28 | x
  29. 29. Event Delivery Network (EDN)Configuration in JDeveloper● Event Definition in EDL● Publish or subscribe to EDN 29 | x
  30. 30. Demo Event Delivery Network (EDN) 1. SOA Composite Order-to-Cash publishes dunning event through EDN; SOA Composite DunningService is subscribed and started 2. Publication of payment event through EM 3. Event correlated to Order-to-Cash processSOA Composite SOA Composite Order2Cash EDN DunningService 30 | x
  31. 31. Monitors & Sensors BAM sensor dataRequirement● Push relevant data from running process and service instances to monitoring tools such as BAM, EM, and other 3rd party tools with minimum impactSolution sensor data● Use Monitoring Objects to push data to BAM and other tools● Use Composite Sensors to push data to Enterprise Manager EM 31 | x
  32. 32. Monitors & Sensors● Composite Sensors to capture relevant data for EM● Monitoring Objects in BPEL to notify other systems such as BAM 32 | x
  33. 33. Agenda1. What is Eventing and why use it ?2. Oracle and Event-Driven Architecture3. Messaging patterns4. Implementation & demo’s5. Summary and Best Practices 33 | x
  34. 34. Summary & Best Practices● SOA is not only about (synchronous) services and processes (what); also events (when) • Model events in your BPM and SOA projects • Use events to notify running processes • Expand service registry to include events • Use events for additional decoupling between processes and services● Not just queuing, also pub/sub and event stream processing● Not a single best technology for implementation 34 | x
  35. 35. Thank you!Ronald van Luttikhuizenronald.van.luttikhuizen@vennster.nl 35 | x

×