350 likes | 371 Views
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.
E N D
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 7:00 Party Workflow Cyberbrick Party
Objectives • Understand • Importance of messaging • The basic functions of messaging systems • The implementation steps • Some advanced topics • Some products
Program Component Program Service Data communication via Replication, JDBC, OLE-DB, Gateways, etc. Program communication via RPC, CORBA, or COM Tightly Coupled Applications Coordinated Design & Development Application Application System
Program Program Component Program Service Program Loosely Coupled Applications Coordinated Design & Development Purchased or legacy application or inter-enterprise Application Application System Cooperating applications may communicate through messaging (e.g. FTP, MOM, E-mail, PGM, etc.)
Communication Methods • Tightly Coupled • Communication through API’s • Communication through data • Loosely Coupled • Communication through messages
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
Integration within an Enterprise • To deploy best-of-breed packaged applications Oracle Baan Internet Private Network WAN SAP People Soft
Integration within an Enterprise • To implement cross-departmental business processes Marketing Finance Internet Private Network Intranet Sales
B2B - Business to Business • For efficient supply-chain management • To integrate with partners, vendors and customers • To expand delivery channels Supplier Manufacturer Internet Private Network WAN Customer
B2C - Business to Customers • To improve customer responsiveness Customer Support Accounting Internet Web Server Corporate data Manufacturing Sales Force Automation Intranet Human Resources Marketing Front Office Back Office
A Little Bit of History Business Logic Business Logic Business Logic Message Management (Journalizing, Tracking …) Message Management (Journalizing, Tracking …) Business Event Management Business Intelligence Workflow Tracking/Auditing Routing – Publish/ Subscribe Transformation Distribution Message Routing and Transformation Message Routing and Transformation Message Distribution Message Oriented Middleware Message Oriented Middleware Networking API’s The Network
What is Messaging? • A mechanism enabling autonomous applications to communicate • Messages are units of information composed of • Payload • Header • Destinations and Recipients • Priority and Ordering • Expiration and Time-to-Live • And more …
Application Application Local Queue Network Local Queue 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
How to Manage Messages? • First the basic stuff • Get • Put • Header • Payload • Distribution/propagation • Operations • Will move on to selected advanced topics
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
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 • Transactional or non-transactional
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
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
Application Application Local Queue Network Local Queue Distribution/Propagation • Requires protocol engine(s) • One or several destinations • Homogeneous and heterogeneous • Transport protocol independent • Exactly once, but not transactional
Operations • Create/modify/delete • Queue containers • Queues • Activate/Deactivate • Queues • Get/put • Grant/Revoke access to/use of • Queues • Get/put • Manage distribution/propagation
Selected Advanced Topics • Payloads and transformation • Destinations • Publish/Subscribe • Composite events • Tracking and auditing • Business intelligence • Operational characteristics
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
Transformation • Transformation products deal with • Definition of complex data structure frameworks • Constraints of structures and data • Physical layout - encoding/decoding • Projection • Transformation • Reduces complexity of programming • Increases autonomy between applications
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
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
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
Tracking and Auditing • Messages should be retained for auditing – B2B messages are business events/legal documents • 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
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
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 • E-commerce – end-to-end security, full auditing and tracking, no trusted applications
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?
Standards • OMG – Event Notifications • JavaSoft – JMS (Java Messaging Services) • There is significant interest • Both • First release • No enough experience yet
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 • Broadcasting
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
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: • Messaging is core of middleware technology and is part of the existing infra-structure (Operating System/Database System)
Questions Comments