Академический Документы
Профессиональный Документы
Культура Документы
CHAPTER 1: THE ROAD TO
EAI
Who, why, when, where and how of EAI
INTRODUCTION
Why Enterprise Application Integration (EAI)?
Business applications rarely live in isolation
Users expect access to all business applications
Disparate applications needs to be connected to
provide a larger, integrated solution
How is EAI achieved?
Some form of “middleware” to provide the plumbing
Data transport, transformation and routing are the
main functions in a EAI solution
INTEGRATION SCENARIOS
Enterprise applications (A2A)
Integrations of different applications within the
enterprise
Extended enterprise (B2B)
Integration between businesses
Collaboration
Interaction between end users and systems
Access Integration
Integration of end users with backend applications
and data sources
EAI TOOLS
IBM WebSphere MQ
TIBCO
Vitria
Mule
webMethods
BizTalk
IONA
JBoss
(Fevicol?)
Source: Forrester, Q3 2009
WEBMETHODS ARCHITECTURE
COMPONENTS
DEVELOPMENT ARCHITECTURE
WEBMETHODS ESB (7.1.2 AND
ABOVE)
Integration Server
Broker
Adapters (>100)
ADK (custom adapter)
Process Runtime (PRT)
Task Engine (Human tasks)
Monitor
Optimize
Developer (IS Services)
Designer (BPM & CAF)
My WebMethods Server (MWS)
Modeler Designer
– Single Admin/Monitoring tool
Workflow Task Engine
– CAF Runtime
Monitor MWS
THE COMPLETE PICTURE
WORKSHOP 1
Install IS, Broker, MWS
Start IS
Login to IS Admin Console
Create a new development user
Set access permissions for the new user (ACL)
WORKSHOP 1 – EPILOGUE
Pipeline
Data structure that
maintains a service’s
variables
Starts with input to a
flow service
Collects inputs and
outputs from
subsequent services to
the flow
When a service in a flow
executes, it has access to
all the data in the
pipeline at that point
FLOW STEPS
Executes a specified flow based on the value of a
Branch specified variable in the pipeline
Executes a set of flow steps once for each element in a
Loop specified array
Sequence Groups sets of flow steps into a series
ReExecutes a set of flow steps up to a specified number
Repeat of times
Performs specified editing operations on variables in the
Map
pipeline
Exit Controls the execution of a flow, e.g. Exit LOOP or
REPEAT
Invoke Executes a specified service
WORKSHOP 2
Create a flow service to use the
Branch step (using the switch property)
Loop step
Sequence step
Repeat step
Map step (to use transformations)
Invoke step
Exit step
Create new Document Types & Specification
Use the doc types as input/output to services
Administration
Package Management
WORKSHOP 2 – EPILOGUE
Data Type Description
String String of characters.
StringList One dimensional string array.
StringTable Two dimensional string array.
Document The contents of a document are stored as
key/value pairs.
DocumentList One dimensional array of IS Document types.
DocumentReference A document whose structure is defined by an
IS document type.
DocumentReferenceL A document list whose structure is defined by
ist an IS document type.
Object A data type that does not fall into any of the
above category.
Object List One dimensional array of Objects.
WORKSHOP 2 – EXERCISE
What are the advantages and disadvantages of
using transformers?
Create a flow service to use the
Branch step (using the Evaluate Labels property)
Repeat step (3 times, with a timeout of 200 seconds)
For a “Branch” step, list the scenarios where you
would use
The “Switch” property
The “Evaluate Labels” property
What are the advantages and disadvantages of
using specifications?
WEBMETHODS JDBC ADAPTER
Provides user interfaces, services and
templates to create integrations with
databases using JDBC
Adapter enables you to configure:
Adapter Connections
Adapter Services
Adapter Notifications
Is provided as a package named
WmJDBCAdapter
WmART is the superpackage for all
adapter packages
BUSINESS INTEGRATION USING
ADAPTER
TEMPLATES & TRANSACTIONS
Templates Transactions
Select SQL NO_TRANSACTION – auto
Insert SQL commit
Update SQL LOCAL_TRANSATION – one
Batch Insert SQL adapter service, flow service or
Batch Update SQL
java service
XA_TRANSACTION – two
Delete SQL
phase transactions executed
Custom SQL
across multiple databases
Dynamic SQL
Transaction services are at
WmART.pub.art.transaction
WORKSHOP 3
Install JDBC driver on the IS
Create new
Adapter Connection
Adapter Service
Invoke the adapter service from a flow service
JDBC Adapter Logging & Exception Handling
Display JDBC connection statistics
WORKSHOP 3 EPILOGUE
JDBC Data Type to Java Data Type Mapping
Normal data type mapping
The JDBC Adapter does not support the
TIMESTAMP WITH TIME ZONE and TIMESTAMP
WITH LOCAL TIME ZONE data types in Oracle 10g.
The JDBC Adapter does not support user‐defined
data types, Oracle PL/SQL collections, or Oracle
PL/SQL records.
BigDecimal data type can be used and will be
processed, but will not be displayed correctly
Special considerations for java.sql.Struct and
java.sql.Array data types
BLOB and CLOB supported, but use with streams
WORKSHOP 3 EXERCISE
Create an Adapter Notification and associated
services
Create Adapter services of the type
Custom SQL
Dynamic SQL
Create a new Adapter Connection
programmatically using flow services
How will you suppress the logging of JDBC
errors?
How can you change the adapter connection
During design time?
During run time?
PUBLISHSUBSCRIBE MODEL
Type of message based solution
Messages are exchanged anonymously through a
message broker
Information producers will publish messages to
the message broker
Specific type of recognizable documents
Information receivers will subscribe to specific
document types
Information receivers process or perform work
using the document
May or may not send a response to the publisher
WEBMETHODS PUBSUB
COMPONENTS
Elements of PubSub
Documents
Publishable Document
Types
Triggers
Services
Canonical Document
WORKSHOP 4
Create a new Publishable Document Type
Create a Trigger that invokes a flow service on
receiving the above publishable document type
Create a flow service that publishes the above
publishable document type ‘n’ times
Trigger administration
PUBLISHING PROCESS
1. Validation against publishable document type
2. Dispatcher works behind the scenes for publishing the document
3. Document is sent to the broker
4. Volatile = Memory, Guaranteed = Physical storage
5. Broker routes document to subscribers
a. Places a copy of document on each subscriber client queue
6. Broker returns an acknowledgement for guaranteed documents,
connection is released from pool
7. IS returns control to publishing service, executes next step
PUBLISHING WHEN BROKER IS NOT
AVAILABLE
1. Normal flow
2. If document is guaranteed, dispatcher stores it in Outbound Store
a. If volatile, exception is thrown
3. When IS reconnects to the broker, connection is obtained from the pool
4. IS automatically sends the document from Outbound Store to Broker
a. IS uses single connection to empty outbound store
5. Normal flow
6. Normal flow
SUBSCRIBING PROCESS
WORKSHOP 4 EPILOGUE
Local
Publishing
WORKSHOP 4 EXERCISES
How is the adapter notification related to the
pubsub model?
What are the various trigger properties that you
can work with?
Implement different triggers with various properties
What is the difference between
Guaranteed Document Delivery and
Guaranteed Document Processing
What happens when the “IS document is
synchronized with the Broker”?
What would you call a Pub that sells a Sub?
Thank You –
Questions ?