enterprise application integration tutorial - omg application integration tutorial jp morgenthal ......
TRANSCRIPT
![Page 1: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/1.jpg)
Enterprise Application Enterprise Application Integration TutorialIntegration Tutorial
JP MorgenthalChief Technology OfficerXMLSolutions, [email protected]
OMG EAI WorkshopFebruary 7-9, 2000Lake Buena Vista, FL
![Page 2: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/2.jpg)
Introduction to EAIIntroduction to EAI
![Page 3: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/3.jpg)
Origins of EAIOrigins of EAI
Decision Support Systems (DSS) and Enterprise Information Systems (EIS)
– Based upon extracts from other corporate systems
1988
Emergence of tools to support enterprise planning and management
–Manugistics, i2, SAP,Baan, PeopleSoft, etc.
1994
E-Commerce Initiatives–B2C–B2B
1998
![Page 4: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/4.jpg)
State of Integration Between State of Integration Between Enterprise SystemsEnterprise Systems
Multiple departmental and divisional systemsDiverse hardware and operating systemsDiverse data formatsInconsistent usage of industry terms
![Page 5: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/5.jpg)
What is the Goal of EAI?What is the Goal of EAI?
“The seamless integration of business processes for the purposes of conducting business electronically.”
“The sharing and/or exchange of data between systems for the purpose of providing a unified interface.”
![Page 6: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/6.jpg)
Steps to Mastering EAISteps to Mastering EAI
1. Establish common semantics across communicating entities
2. Establish published formats for delivery of semantic information
3. Establish well-defined pathways for delivering information to other systems
4. Establish the rules of engagement
![Page 7: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/7.jpg)
Establishing Common Establishing Common Semantics Across the Semantics Across the
EnterpriseEnterprise
![Page 8: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/8.jpg)
First Rule of EAIFirst Rule of EAI
“Usage defines meaning and must be consistent, otherwise the meaning is broken”
ASSUME
![Page 9: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/9.jpg)
EAI Problem AnalogyEAI Problem Analogy
a + b = c– If c is to be a number, a and b must be a
number– If c is to be a string, a and b must be
strings– If a is a number and b is string we break
the meaning of the addition (+) operator
![Page 10: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/10.jpg)
EAI in the Real WorldEAI in the Real World
Companies define their business entities by the processes that they are part ofWhen processes must be integrated, the same business entities have multiple meaningsEAI is the reconciliation of the meanings of business entities
![Page 11: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/11.jpg)
EAI Doesn’t Change EAI Doesn’t Change MeaningMeaning
Integration bridges the gap between two meaningsIntegration does not force meanings to change to fit the requirements of integrationThus, we map from one meaning to another
![Page 12: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/12.jpg)
Framing The ProblemFraming The Problem
Data trapped in disparate applications and formats
Systems developed departmentally with no focus on the enterprise
Meaning of data has been skewed throughout the company
There are no “silver bullet” solutions
![Page 13: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/13.jpg)
GoalsGoals
Create a transparent flow of data through business processesThe seamless integration of business processes for the purposes of conducting business electronicallyIdentify patterns that impact business processes and compensate immediately
![Page 14: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/14.jpg)
Step 1: Specify Business Step 1: Specify Business ObjectivesObjectives
Step 1 requires the organization to identify specific business objectives– Lower the cost of printing– Increase throughput in production
Analyze the flow of data relative to these objectives– e.g. track events related to generating a printed
document
![Page 15: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/15.jpg)
Step 2: Correct Data FlowStep 2: Correct Data Flow
•Events Processing•Data Transformation•Process Flows
OracleDatabase
IBM Mainframe
MQSeries
Legacy Data Format
![Page 16: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/16.jpg)
Handle EventsHandle Events
Data enters the system in an asynchronous mannerMultiple inputsEvents bind inputs to processing– Associates behavior with data– Abstracts the processing from the data
Events generate multiple new eventsCapture event invocation in audit log
![Page 17: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/17.jpg)
Transform DataTransform Data
Web Information Portals– Identify
Capture metadata on need-to-use basisSaves time and money
– Extract– Bi-directional transforms– Update
![Page 18: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/18.jpg)
Develop Process FlowsDevelop Process Flows
A process flow is the implementation of a business operationComprises multiple processesInitiated by an eventExample:– Purchase generates billing event (invoice)– Invoice generates accounting event
![Page 19: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/19.jpg)
Step 3: Analyze Event LogStep 3: Analyze Event LogThe events captured in Step 2 will identify the path that is being followedStep 3 requires human intervention to examine the logs and identify the events that are leading away from the business objective– e.g. Lead time for print jobs are less than a
week
![Page 20: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/20.jpg)
Step 4: Manage EventsStep 4: Manage Events
Based upon the analysis in Step 3, the company can now institute new events to change the process flow– e.g. Force lead times for jobs to be at least two
weeks without executive signatureRepeat Steps 2-4 until business objective is met
![Page 21: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/21.jpg)
Declarative Vs. ProceduralDeclarative Vs. Procedural
Declarative– Environment interprets for itself meaning– Facilitates openness and flexibility– Easier to change
Procedural– Environment is told what it is being given– Requires agreements between sending and receiving
parties– Broken agreements lead to exception handling
![Page 22: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/22.jpg)
Establishing Published Establishing Published Formats for Delivery of Formats for Delivery of
Semantic ContentSemantic Content
![Page 23: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/23.jpg)
Introduction to XMLIntroduction to XML
Syntax and SemanticsXML 1.0 GrammarDocument Type DefinitionsProcessing XML
![Page 24: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/24.jpg)
Syntax and SemanticsSyntax and Semantics
![Page 25: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/25.jpg)
SyntaxSyntax
Defines the grammar used to describe the physical representation of information– Syntax allows us to build parsers that automate
the extraction of information from a formatted document
Defines the tokens that make up a legitimate sentence in a grammar– Tokens are defined by an allowable sequence of
other tokens or characters
![Page 26: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/26.jpg)
SemanticsSemantics
Semantics assign meaning to the tokens defined by syntax
“The study of relationships between signs and symbols and what they represent” —Webster’s Dictionary
![Page 27: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/27.jpg)
The Importance of Syntax and The Importance of Syntax and Semantics to EAISemantics to EAI
Syntax is used to define the format that will be used to exchange/share information between two applicationsSemantics defines the fields and values that will be captured within the data that is shared/exchanged.
![Page 28: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/28.jpg)
XML 1.0 GrammarXML 1.0 Grammar
![Page 29: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/29.jpg)
WellWell--formed & Validformed & Valid
Well-formed– Follows the rules for creating an XML
document as defined by the XML specification
Valid– Is well-formed and also adheres to the rules
defined by the document’s corresponding Document Type Definition (DTD)
![Page 30: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/30.jpg)
WellWell--Formed XMLFormed XML
Contains a single XML prolog followed by at least one element, known as the ‘root’ element
<?xml version=‘1.0’?>
<ROOTELEMENT>
</ROOTELEMENT>
![Page 31: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/31.jpg)
XML PrologXML Prolog<?xml version=“1.0”?>
Options– EncodingDecl – defines the language encoding
<?xml version=“1.0” encoding=“UTF-16”?>
– SDDecl – states that there are no markup declarations external to the document
<?xml version=“1.0” standalone=‘yes’?>
![Page 32: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/32.jpg)
ElementsElements
Two types– Empty– With Content
Empty element<ANELEMENT/>
With Content<ANELEMENT>Some Content</ANELEMENT>
![Page 33: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/33.jpg)
Elements and TagsElements and Tags
An element is defined by a start and end tag
Start Tag: <ANELEMENT>
content
End Tag: </ANELEMENT>
Content is defined as zero or more of the following XML types:– Element, PCDATA, Reference, CDATA, PI,
Comment
![Page 34: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/34.jpg)
Tag Name ExamplesTag Name Examples
<Document>This is an example of a well-formed XML document</Document>
<Document>This is an example of an erroneous XML Document</document>
![Page 35: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/35.jpg)
AttributesAttributesStart tags can contain a set of attributesAttributes are used to provide metadata about the content an element containsAttributes use the syntax key=‘value’Example:
<StartTag attribute1=‘yes’ attribute2=“yes”/>Notice that we can use the single or double quote character for attributes. – This is consistent throughout the XML specification
where ever quotes are used.
![Page 36: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/36.jpg)
Attribute ExampleAttribute Example<PurchaseOrder>
<AmbiguousAmount>
12.34
</AmbiguousAmount>
<ClearAmount currency=“US”>
12.34
</ClearAmount>
</PurchaseOrder>
![Page 37: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/37.jpg)
Character DataCharacter Data
Elements can contain character data between the start tag and end tagTwo types:– Parsed character data (PCDATA)
All PCDATA is considered for overall document well-formedness
– Raw character data (CDATA)A specially marked section representing text that will be ignored when evaluating the document’s well-formedness and validity
![Page 38: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/38.jpg)
Processing InstructionsProcessing InstructionsProcessing instructions are not considered part of the document’s character data, but must be passed onto the processing application
Format:<?TargetName any sequence of characters?>
TargetName may not be XML in any combination of upper or lower case letters
![Page 39: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/39.jpg)
CommentsComments
Comments may appear anywhere within the XML documentThey are not considered part of the document’s character data, but may be passed onto the processing applicationFormat:<!-- Any sequence of characters -->
![Page 40: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/40.jpg)
Document Type DefinitionsDocument Type Definitions
![Page 41: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/41.jpg)
Valid XML DocumentValid XML Document
In addition to being well-formed, a document can also be validWe ensure validity by providing a DTD that the parser uses to ensure that the elements in the document follow a prescribed order
![Page 42: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/42.jpg)
What Is A DTD?What Is A DTD?
A list of the elements, attributes, and entities that will be found in a single XML documentDescribe the acceptable semantics of an XML documentDefine possible hierarchiesUsed to validate XML documents
![Page 43: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/43.jpg)
Sample DTDSample DTD<!ELEMENT Policy (PolicyHolder )>
<!ATTLIST Policy number CDATA #REQUIRED
location ENTITY #REQUIRED >
<!ELEMENT PolicyHolder (Name , Phone , Address , FAX? , Type )>
<!ELEMENT Name (#PCDATA)>
<!ELEMENT Address (#PCDATA)>
<!ELEMENT Phone (#PCDATA)>
<!ELEMENT FAX (#PCDATA)>
<!ELEMENT Type (#PCDATA)>
![Page 44: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/44.jpg)
Uses for Uses for DTDsDTDs
Authoring– Allows tools to assist the author in creating a valid
XML document
Processing– Allows us to identify in advance of processing that the
document matches a prescribed schema
Definition– Provides a way to define the agreement for the XML
schema that will be used
![Page 45: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/45.jpg)
Internal Vs. External Internal Vs. External DTDsDTDs
XML Documents can declare their DTD inline or point to an external document that has the document type definition
![Page 46: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/46.jpg)
Processing XMLProcessing XML
![Page 47: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/47.jpg)
What Is SAX?What Is SAX?
Simple API for XML– Developed by XML-Dev mailing list
community– Earliest implementation by Microstar
Event-based handling of XML Parsing– Framework for interfacing with a raw XML
parser
![Page 48: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/48.jpg)
SAX ArchitectureSAX Architecture
Application
Parser
Handler
Events
![Page 49: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/49.jpg)
SAX Interfaces For Parser SAX Interfaces For Parser DevelopersDevelopers
Parser developer implements these interfaces:– AttributeList – Locator – Parser
these classes– HandlerBase– InputSource
and these exceptions– SAXException– SAXParseException
![Page 50: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/50.jpg)
SAX Interfaces For SAX Interfaces For Application DevelopersApplication Developers
Application developer implements these interfaces:– DTDHandler– DocumentHandler– EntityResolver– ErrorHandler
![Page 51: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/51.jpg)
Parser InterfaceParser Interface
Constructors– InputSource– URI
Handler connections– setDocumentHandler– setDTDHandler– setEntityResolver– setErrorHandler– setLocale
![Page 52: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/52.jpg)
DocumentHandler DocumentHandler EventsEvents
Start DocumentEnd DocumentStart TagEnd TagProcessing InstructionCharactersWhite SpaceLocator
![Page 53: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/53.jpg)
AttributeListAttributeListPresents the interface for retrieving attributes of an element during the processing of a start element eventMethods– getLength– getName– getType – getValue
Works over position or name
![Page 54: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/54.jpg)
Handling TextHandling Text
Generates a character eventText is defined as the set of characters between a start tag and an end tag, but preceding another start tagParser will pick up ‘n’ number of characters and deliver them to the DocumentHandler’s characters an array of type char
![Page 55: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/55.jpg)
Handling TextHandling Text<TAG>text
<TAG2>text</TAG2>text continued
</TAG>Minimum of three character events– text– text– text continued
Note: only two elements– Processing requires state to be maintained
![Page 56: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/56.jpg)
Processing InstructionsProcessing Instructions
<?xml?> is not a processing instruction but instead is identified as the XML DeclarationIt will not generate an PI event“XML” & “xml” are reserved target names
![Page 57: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/57.jpg)
DTDHandler DTDHandler InterfaceInterface
Triggers events upon identification of declarations of type ENTITY, or ENTITIES within the DTDApplication must store this information for use further on in the parsing
![Page 58: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/58.jpg)
EntityResolver EntityResolver InterfaceInterface
Allows application to resolve external entitiesSingle method ResolveEntityApplication responds by supplying an InputSource back to the parserInputSource implements a character stream reader that will supply the resolved entity
![Page 59: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/59.jpg)
ErrorHandler ErrorHandler InterfaceInterface
SAX errors broken down into three categories– Recoverable
Application may continue to pass parsed character data after detection
– Non-recoverableApplication must not continue to pass parsed character data to the application in the standard manner
– Warnings
![Page 60: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/60.jpg)
LocatorLocator
Passed into the document handler on the setLocator event before ever any other document handling events are triggeredCan be used by the application to find out the position within a XML document that triggered an eventNot mandatory to implement
![Page 61: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/61.jpg)
W3C Document Object Model W3C Document Object Model (DOM)(DOM)
![Page 62: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/62.jpg)
W3C Document Object Model W3C Document Object Model (DOM)(DOM)
Attempt to provide a standard programmatic interface to XML and HTML documentsProvides two complementary views of the parse tree– Flat model– Object-Oriented Model
![Page 63: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/63.jpg)
Flat ViewFlat View
The flat view was developed to augment the Object-Oriented model (viewed as the default model) to support environments and programming languages that do not support data typing
![Page 64: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/64.jpg)
ObjectObject--Oriented ViewOriented View
OO view provides a hierarchical typed view of CDATA, ELEMENTS, ENTITIES, COMMENTS, & TEXT within the containment of a DOCUMENTFRAGMENT
![Page 65: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/65.jpg)
DOM DOM Object Object ModelModel
![Page 66: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/66.jpg)
DOMImplementationDOMImplementation
Allows developers to check to see if a particular feature was implementedCurrently used to check for XML and HTML features and the versions supported
![Page 67: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/67.jpg)
DocumentDocument
Virtual representation of the HTML or XML documentUsed to retrieve elements from the documentUsed to create new document components which can later be inserted into the documentHolds the root element
![Page 68: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/68.jpg)
DocumentFragmentDocumentFragment
Lightweight implementation of the Document objectBasically a reference holder for a sub-tree that will be inserted into a larger documentDon’t require a root elementCan have zero children
![Page 69: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/69.jpg)
NodeNode
Represents monolithic flat view of all elementsAlso represents the base class for all document objectsAllows direct manipulation of the underlying documentremoveChild, removes from tree, but object is still active
![Page 70: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/70.jpg)
NodeListsNodeLists
NodeLists are ordered in a manner consistent with a preorder traversal of the parser tree– Root, Leftmost Branch to Right Branch
![Page 71: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/71.jpg)
NamedNodeMapNamedNodeMap
Collection of Node objectsAccess by nameDoes not maintain preorder traversal orderingUsed by Node object to return set of Attributes
![Page 72: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/72.jpg)
CharacterDataCharacterData
Abstract base class for Text and Comment objects
![Page 73: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/73.jpg)
TextText
Represents the characters after a start tag, but before a corresponding end tag, or another start tagsplitText breaks the text node into two text nodes at a specified offset– Both text nodes continue to exist in the sub-tree
Text is stored in objects named #text as a child of the element it is contained in
![Page 74: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/74.jpg)
ElementElement
Manages its attributes directly instead of as childrenInterface looks awkward if not familiar with inheritance, functionality to add children and retrieve the list of attributes is actually in the Node objectCombines adjacent Text nodes into a single Text node
![Page 75: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/75.jpg)
AttributeAttributeInherit functionality from Node, but are not considered to be part of the documentAttributes are associated with the Elements that they are declared withBeing of type Node allows implementations to more easily represent a combination of Text and EntityReferences
![Page 76: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/76.jpg)
CommentComment
Holds the text between:<!-- & -->
![Page 77: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/77.jpg)
ProcessingInstructionProcessingInstruction
Represents the target and associated data for a PI
![Page 78: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/78.jpg)
CDATASectionCDATASection
Unparsed text that is identified between:<![CDATA
and]]>
![Page 79: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/79.jpg)
DocumentTypeDocumentType
Contains a list of all entities defined in a documentSeparates entities and notations into separate NamedNodeMap objects
![Page 80: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/80.jpg)
Notation & EntityNotation & Entity
Representations of Notation or Entity declarations defined in the XML document
![Page 81: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/81.jpg)
EntityReferenceEntityReference
A holder for aliased parsed textAllows for resolution on use, instead of at parse time
![Page 82: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/82.jpg)
SAX or DOMSAX or DOM
When to use SAX– Going after a small-memory footprint– Read only what you need– Want to expose DOM or other API
When to use DOM– Multiple queries against the document– To build a document in memory from scratch, or to
change an existing one – Compare document sections
![Page 83: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/83.jpg)
XML XML StylesheetStylesheet Language Language (XSL)(XSL)
Broken down into two components– Formatting objects– Transformation language (XSLT)
XSLT– XML vocabulary for transforming one XML
vocabulary into another– Works by establishing transformation rules
for each type of element in the original XML document
![Page 84: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/84.jpg)
XSLT (cont’d)XSLT (cont’d)Positives– Simplifies creation of new XML documents from
existing XML– Provides some conditional processing– Can be used by anyone that knows XML
Negatives– Path expressions used for extraction of elements from
original document cannot account for subjective relationship
e.g. Administrative contact information available if parent element represents a Vice-President
![Page 85: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/85.jpg)
XPointerXPointer
An XML facility for extraction of elements from within an XML document by describing a unique path from the root elementDescribed as a URL facilitating ease of using from within Internet applications
![Page 86: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/86.jpg)
XML Path Language (XML Path Language (XPathXPath))
Used to provide a standard path expression language for XPointer and XSLT //Line[position()=1]/attribute::num
Matching Node: num/Matching Attribute Value: 1
//Line[position()=2]/attribute::num
Matching Node: num/Matching Attribute Value: 2
//Line[position()=last()]/attribute::num
Matching Node: num/Matching Attribute Value: 3
![Page 87: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/87.jpg)
XML Query Language (XQL)XML Query Language (XQL)
Currently a newly engaged working group within the W3CAttempting to create a language for extraction and updating of XML documents through the use of relational algebraic expressionsWill allow easier manipulation of complex relationships within an XML document
![Page 88: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/88.jpg)
XML Application Integration XML Application Integration (XAI)(XAI)
![Page 89: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/89.jpg)
XAI RequirementsXAI Requirements
Meta-modelsThe Integration Document
![Page 90: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/90.jpg)
MetaMeta--modelsmodels
![Page 91: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/91.jpg)
MetaMeta--ModelsModelsMeta-models are models that used to define other modelsThey define types of information that would be found in the model instead of instances of the information itselfExample:– A meta-model for e-commerce may include:
Price, currency, consumer, producer, destination, account, etc.– From these types a model of a purchase order may be
devised
![Page 92: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/92.jpg)
XML and MetaXML and Meta--modelsmodels
The semantic representation of any information is best served by being represented in XML using a meta-modelExample:– Instead of defining a purchase order
vocabulary, which would be extremely rigid, use constructs defined in the e-commerce meta-model
![Page 93: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/93.jpg)
Benefits of Using MetaBenefits of Using Meta--modelsmodels
The abstract definitions are defined outside of the scope of a single document. This leads to the following result:– Changes in logic to process the model will
apply to multiple document types simultaneously
![Page 94: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/94.jpg)
Problems of Using MetaProblems of Using Meta--modelsmodels
Requires significant investment up-front to study emerging patterns from existing dataIs an iterative design process that requires significant investment in time and money resources
![Page 95: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/95.jpg)
Final Note on MetaFinal Note on Meta--modelsmodels
A single one-off application integration does not require a meta-model since the benefits of applying to multiple documents does not existA multi-document, multi-application integration without a meta-model will cost significantly more to develop than one with a meta-model
![Page 96: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/96.jpg)
The Integration DocumentThe Integration Document
![Page 97: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/97.jpg)
Integrating Applications using Integrating Applications using XMLXML
XAI stipulates that applications are exchanging data—not sharing data!It is not a requirement for standardization of vocabularies in order to exchange data– It does, however, introduce the need for
multiple levels of translation– The impact of this mainly affects performance
![Page 98: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/98.jpg)
XAI @ WorkXAI @ Work
RosettaNet– Designed to permit the electronics manufacturers
to directly communicate with their customers– Defines process flows, messaging protocols,
document structures, and document entitiesBizTalk– Designed to provide an XML-based messaging
infrastructure– Defines messaging protocol
![Page 99: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/99.jpg)
Establishing WellEstablishing Well--Defined Defined Pathways for Delivering Pathways for Delivering Data To Other SystemsData To Other Systems
![Page 100: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/100.jpg)
MessageMessage--based Integrationbased Integration
Message-Oriented Middleware (MOM)Message BrokeringWorkflow
![Page 101: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/101.jpg)
MOMMOM
Message-Oriented Middleware provides an infrastructure for the guaranteed delivery of data in an asynchronous mannerTwo primary methods– Queuing– Publish & Subscribe
![Page 102: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/102.jpg)
QueuingQueuing
Queuing typically provides a single pipe between two applications– The sending application puts data into the pipe– The receiving application pulls data out of the pipe– These two operations do not happen synchronously
Can provide strong security since receiver must first authenticate themselves to the queue
![Page 103: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/103.jpg)
Queuing ExampleQueuing Example
ApplicationA
ApplicationB
XML Queue XML
![Page 104: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/104.jpg)
Publish & SubscribePublish & Subscribe
Pub/Sub abstracts the sender from the receiver over a topic– Receiver registers with middleware to receive updates
over a particular topic– Sender issues message over a topic or set of topics
Relationship over a topic can be many to many– Queues are typically 1:1
More cumbersome to enforce security in a pub/sub scenario
![Page 105: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/105.jpg)
Pub/Sub ExamplePub/Sub Example
Application
XML Topic XMLApplication
Application
Application
Application
Application
![Page 106: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/106.jpg)
Message BrokeringMessage BrokeringMessage brokering is a fancy term for document dispatchingMBs examine some portion of the document’s content or envelope and selects a receiver dynamically– Receivers may be a process or person
MBs require a knowledge-engineer to create a map from the incoming document stream to a particular document type– Requires semantic and syntactic analysis of data stream
![Page 107: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/107.jpg)
WorkflowWorkflow
Workflow is the highest level component in a MOM solutionWorkflow uses MOM and MBs to provide a foundation for transmission and analysis of documentsWorkflow allows users to define and manage routing of documents based upon state and content
![Page 108: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/108.jpg)
MOM and EAIMOM and EAI
MOM-based solutions have been most popular for EAI to dateReasons:– EAI traditionally has been an intranet operation
allowing selection of a single messaging platform
– EAI usually requires communication between systems across a departmental or divisional boundary
![Page 109: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/109.jpg)
MOM and B2BMOM and B2B
Business-to-Business application integration will rely on Web-based protocols for messagingReasons:– MOM requires applications to conform to a
particular application programming interface– MOM implementations are not consistent and
and ubiquitous
![Page 110: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/110.jpg)
Defining Interfaces Between Defining Interfaces Between ApplicationsApplications
![Page 111: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/111.jpg)
Interface Is An Overloaded Interface Is An Overloaded TermTerm
There are many ways to define an interface between two applicationsThe term “interface” does not represent a single instance of a type of interface, but an entire class
![Page 112: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/112.jpg)
What is an “interface”?What is an “interface”?
An interface is a clearly-defined method of moving data into or extracting data from another system
![Page 113: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/113.jpg)
3 Key Integration Interface 3 Key Integration Interface ClassesClasses
Tables– DBMS
Application Programming Interfaces– Direct API– XML-RPC– Java RMI, COM, CORBA
Documents– Comma-delimited, XML, all the rest…
![Page 114: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/114.jpg)
Establish the Rules of Establish the Rules of EngagementEngagement
![Page 115: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/115.jpg)
RulesRules--based Environments based Environments And EAIAnd EAI
Rules-based environments provide the following benefits for EAI:– Flexible – Dynamically configurable– Responsive to multiple input types
![Page 116: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/116.jpg)
The Components of A RulesThe Components of A Rules--based Environmentbased Environment
Integration EnginesProcess ModelingMetadata Brokering
![Page 117: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/117.jpg)
Integration EnginesIntegration Engines
Integration engine responsibilities:– Data format transformation– Execution of process model– Aggregate data from multiple sources
API IntegrationDocument IntegrationCommunications
![Page 118: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/118.jpg)
Process Modeling RuntimesProcess Modeling Runtimes
Responsible for:– Creating a new process flows by
connecting together a group of smaller process flows with simple logic routing
– Providing a facility for associating names with process flows
– Allow external applications to execute defined flows
![Page 119: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/119.jpg)
Metadata BrokeringMetadata Brokering
The process flows and the transformation maps combine to create the metadata for a single integrationMetadata brokering allows alternate metadata sources to be matched up with the existing process flows and transformation maps– Lowers costs of integration– Allows other data sources to provide input to
existing systems
![Page 120: Enterprise Application Integration Tutorial - OMG Application Integration Tutorial JP Morgenthal ... 2. Establish published ... zDefines the grammar used to describe the](https://reader031.vdocument.in/reader031/viewer/2022020114/5aecbf687f8b9a66258efd7d/html5/thumbnails/120.jpg)
Summary, Q&ASummary, Q&A