Messaging Dieter Gawlick Architect dgawlick@us.oracle.com Mon Tue Wed Thur Fri 9:00 Overview TP mons Log Files &Buffers B-tree 11:00 Faults Lock Theory ResMgr COM+ Access Paths 1:30 Tolerance Lock Techniq CICS & Inet Corba Groupware 3:30 T Models Msg & Qs Adv TM Replication Benchmark Party Workflow Cyberbrick Party 7:00 08/03/99 1 Objectives Understand Importance of messaging The basic functions of messaging systems The implementation steps Some advanced topics Some products 08/03/99 2 Tightly Coupled Applications Coordinated Design & Development Application Application System Component Data communication via Replication, JDBC, OLE-DB, Gateways, etc. 08/03/99 Program Program Service Program communication via RPC, CORBA, or COM 3 Loosely Coupled Applications Coordinated Design & Development Application Application System Component Program Program Service Purchased or legacy application or interenterprise Program Program Cooperating applications may communicate through messaging (e.g. FTP, MOM, E-mail, PGM, etc.) 08/03/99 4 Communication Methods Tightly Coupled Communication through API’s Communication through data Loosely Coupled 08/03/99 Communication through messages 5 Why is Messaging so Important? It’s all about EAI (Enterprise Application Integration) Inside companies B2B – Business to Business B2C – Business to Customers B2G – Business to Government 08/03/99 6 Integration within an Enterprise • To deploy best-of-breed packaged applications Oracle Baan Internet Private Network WAN SAP 08/03/99 People Soft 7 Integration within an Enterprise • To implement cross-departmental business processes Marketing Finance Internet Private Network Intranet Sales 08/03/99 8 B2B - Business to Business • For efficient supply-chain management • To integrate with partners, vendors and customers • To expand delivery channels Supplier Internet Private Network WAN Manufacturer Customer 08/03/99 9 B2C - Business to Customers • To improve customer responsiveness Customer Support Internet Web Server Sales Force Automation Marketing Front Office 08/03/99 Accounting Intranet Manufacturing Corporate data Human Resources Back Office 10 A Little Bit of History Business Logic Business Logic Message Management (Journalizing, Tracking …) Message Management (Journalizing, Tracking …) Message Routing and Transformation Message Routing and Transformation Message Distribution Message Oriented Middleware Networking API’s Business Logic Business Event Management Business Intelligence Workflow Tracking/Auditing Routing – Publish/ Message Oriented Subscribe Middleware Transformation Distribution The Network 08/03/99 11 What is Messaging? A mechanism enabling autonomous applications to communicate Messages are units of information composed of Payload Header 08/03/99 Destinations and Recipients Priority and Ordering Expiration and Time-to-Live And more … 12 Messaging - How it Works? One applications puts messages into a local queue The queuing system guarantees delivery of messages to destination(s) Another applications gets messages from the same or another local queue 08/03/99 Network Local Queue Application Local Queue 13 How to Manage Messages? First the basic stuff Get Put Header Payload Distribution/propagation Operations Will move on to selected advanced topics 08/03/99 14 Get/Put Get consumes a message Put produces a message Typical Call structure Call properties Header properties Payload Message identifier – as feedback from put Execution feedback 08/03/99 15 Get/Put Properties Get only Blocked – maximum wait? Callback – what to activate Provides Push for higher scalability Mode - browse or consumption Selection – based on a query language Get/put 08/03/99 Transactional or non-transactional 16 Header Describes envelop/processing of message Destination Priority Window of execution –includes post dating Security– system supported … and much more Property list, normally used for extensibility or payload characterization 08/03/99 17 Payload Payload defines the information that is exchanged – This is the core of the interface Define carefully structure of payload Use dictionaries to externalize structures Use standards whenever possible Standards tend to be domain specific Payloads tend to be dynamic and complex 08/03/99 18 Distribution/Propagation Requires protocol engine(s) One or several destinations Homogeneous and heterogeneous Transport protocol independent Exactly once, but not transactional 08/03/99 Network Local Queue Application Local Queue 19 Operations Create/modify/delete Queue containers Queues Activate/Deactivate Queues Get/put Grant/Revoke access to/use of Queues Get/put Manage distribution/propagation 08/03/99 20 Selected Advanced Topics Payloads and transformation Destinations Publish/Subscribe Composite events Tracking and auditing Business intelligence Operational characteristics 08/03/99 21 Payloads Existing standards are hard to use and not well supported EDI, SWIFT, HL7 XML – Does it everything? Requires domain specific standards Needs additional technology to bound flexibility Needs extensions for complex data, e.g., CAD/CAM It’s a terrific step forward Again: This is the core of the interface 08/03/99 22 Transformation Transformation products deal with Definition of complex data structure frameworks Constraints of structures and data Physical layout - encoding/decoding Projection Transformation 08/03/99 Reduces complexity of programming Increases autonomy between applications 23 Destinations A message can be send to anything: e-mail, URL, fax, pager, telephone, PDA, and any combination thereof – using transformation to adapt content There are ‘abstract’ destinations for increased autonomy between applications: (dynamic) distribution lists, business partners, customers, employers with specified qualification Business protocols (EDI/OBI) – behavior - may needs to be suported Increases autonomy between applications 08/03/99 24 Publish/Subscribe Subject based subscription Sends all messages of a queue/topic to subscriber Content based subscription Sends only messages which consumer likes to see Uses same query language as Get Presents P/S as a query on ‘future’ data Works with any destination Provides ‘auto-publishing’ from data bases Increases autonomy between applications 08/03/99 25 Composite Events Messages represent often business events Business events require often multiple events/messages as input – see workflow Composite events combine multiple events to one event Composite events simplify the development of business process management/workflow significantly Increases autonomy between applications 08/03/99 26 Tracking and Auditing Messages should be retained for auditing – B2B messages are business events/legal documents 08/03/99 Makes auditing information consistent Shows sagas/business processes –prevents islands of business operations Reduces programming significantly Reduces programming verification significantly Requires message system to provide database functionality with the type support sufficient for messages 27 Business Intelligence Allows analysis of active and processed messages What is may current cash position? How did I respond to specific customer groups? Provides permanent source for fact data Can be refreshed based on evolving business needs Especially meaningful with retention 08/03/99 28 Operational Characteristics Scalability Stock exchanges – 250K users, .5 second notification, < .1 second variation Reliability Banks – 7*24*365 with disaster tolerant acknowledgement and application migration protection Security 08/03/99 E-commerce – end-to-end security, full auditing and tracking, no trusted applications 29 A Few Questions? What is the most successful messaging technology? How much programming is typically consumed by tracking and auditing? Is a message an event with a payload or a payload with an event? 08/03/99 30 Standards OMG – Event Notifications JavaSoft – JMS (Java Messaging Services) There is significant interest Both First release No enough experience yet 08/03/99 31 Messaging Products IBM – IMS TM OLTP - Scalability, Performance, Reliability IBM/Microsoft - MQSeries/MSMQ MOM (Message Oriented Middleware) Communication Infra-Structure (homogeneous/heterogeneous platform) TIBCO – RendezVous 08/03/99 Broadcasting 32 More About Products NEONSoft – IBM MQSeries™ Integrator Transformation Content based publish/subscribe Oracle - Oracle8i (AQ/AQ Lite) Message Management – Retention as core technology Content based publish/subscribe 08/03/99 33 Packaging of Software IBM and almost everyone else: Messaging is core of middleware technology and is separate software This is also the view of almost all consultants Microsoft/Oracle: 08/03/99 Messaging is core of middleware technology and is part of the existing infra-structure (Operating System/Database System) 34 Questions Comments 08/03/99 35