Enterprise Application Interface What is EAI ? EAI constitutes a basic framework that seamlessly links Heterogeneous business applications both packaged and Internally developed into one unified system so Processes and Data can be shared throughout the company and beyond, to include partners, customers and other stakeholders. Establish the communication between different application and different platforms also. Definition:EAI combines separate application into a co-operating federation of application Integration: Extracting the information b/w Systems[Different system is known as Integration.
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Enterprise Application Interface
What is EAI ?EAI constitutes a basic framework that seamlessly links Heterogeneous business applications both packaged and Internally developed into one unified system so Processes and Data can be shared throughout the company and beyond, to include partners, customers and other stakeholders. Establish the communication between different application and different platforms also.Definition:EAI combines separate application into a co-operating federation of applicationIntegration: Extracting the information b/w Systems[Different system is known as Integration.
Scebeyond –Core java Health care sector[HLT,HIPPA]
Vitria –J2eeFinance
Sap Net weaver XI –j2ee,abap MQ Serious – Point to point Application (B2B – single)Marcaton ,wlpb ,wspb ,BizTalk server
Why should we go for EAI?
Major
propellers
Stake holder Satisfactions
Merger acquisition
ROIGlobalization
Technology changes
EAI
GlobalizationROI-Returns on InvestmentStake Holder satisfactionTechnology changes Merger acquisitionMajor Propeller
EAI MODEL
Point to point ~Middleware
EAI – Middleware Technology
Message-Oriented-MiddlewareGuarantee of DeliveryError Handling
Remote Procedure Call (RPC)Connection-Oriented communication servicesBasic data-type translation
Object Request Broker (ORB)Business logic levelConnects objects such as customers and accounts
Message-Oriented Middleware (MOM)MOM enables movement of data packaged as messages between independent applications on multiple platforms and across disparate networks with a guarantee of delivery. MOM is used in distributed networks to manage the message distribution, receipt confirmation, and error handling processes
Remote Procedure Call (RPC) MiddlewareRPC is synchronized with basic data-type translation and connection-oriented communication services and can also refer to products that use Interface Definition Language (IDL) to describe the argument lists for outgoing and incoming parameters. Normally DBMSs and Database Gateways incorporate RPCs into their applications.
Object Request Broker (ORB) MiddlewareORB Middleware connect at the business logic level by using defined standards and connecting objects, such as customers, accounts and transactions. This is most suitable to organizations obtaining new applications or developing applications internally.
EAI Architecture
ERPGISCRM
SCADA DBMSApp
Integration BusIntegration Bus
GIS
App
Adapter
Composition of EAI Solution
An Integration Bus Adapters Tools to build Custom Adapters Monitoring, Administration and Security
facilities
EAI Implementation Guidelines Map the IT Requirements to Business Strategy Evaluate Business Process and Data models Measure ROI Establish definite canons, regulation
procedures, ownership and accountability Compare different EAI packages in the market Evaluate Technologies Check for the development Tools Check for Administration tools and processes
Key Benefits
The elimination of redundant data repositories.
A reduction in IT expenditures.The facilitation of Business Process
Management.Extensibility
EAI CONTEXT
EAI CONVERTS DATA INTO MESSAGES WHICH ARE UNDERSTANDABLE TO any kind of application
They are 2 types of integration Point to point integration Middleware baes application
Type of EAI
Point –to-point architecture
Server centric architecture
Net centric architecture
Point –to-point architecture
Client & server architecture
Best example is MQ-serious
Server centric architecture
It maintain the one centralized server
One drawback is all application come
Deadlock problem
All application run at time means that time centralized server asked which application is first
If u want establish the communication between the database to database.
Database level eai usage is 30%
Oracle Sap
Sibel javaEAI
EAI
Application level EAI
Application level EAI using to communicate different flat forms at a time.
Application level EAI usages is 60%
OraclePeople soft
SecibelEAI EAI
Method level EAI
C++ Java COM VB VB C++
Method level EAI usage 10%
Interface level EAI
If two EAI want to communicate A to B and A develop the one interface and B also implement the one interface
A B
INTERFACE
INTERFACE
Rules of EAI
Synchronization & A synchronization-Request and Reply-Example http protocol-yahoo messenger-it activates means get the data-offline Ability to communicate business and partner-internal business communication and other
business communication. Drag & Drop B2B,B2C,A2A,SOA,E2A
TIBCO-THE INFORMATION BUS COMPANY It is one of the most powerful EAI tool There is no server in Tibco.That is the main
diference b/w others eai tools & tibco. Tibco follows bus architecher where as other
TIB/Partner Express Browser-based application for small partners to
connect to the trading network.
TIBCO Active Exchange Advantages
Automating cross company business processes Communicating with trading partners
effectively, efficiently, in real time.
Secure exchange of commerce documents over the Internet and private networks.
Management of trading partner membership for all
partners.
Leverage TIBCO Technologies TIB/ActiveEnterprise Automate internal systems and
processes.
TIB/Active Portal Business via interactive,personalized
portals.
TIB/Active Exchange Partners and B2B markets.
Leverage TIBCO Technologies TIB/ActiveEnterprise Automate internal systems and
processes.
TIB/Active Portal Business via interactive,personalized
portals.
TIB/Active Exchange Partners and B2B markets.
Produce Total Business Solutions
RV-RENDEZVOUS rv is a s/w or protocal like tcp/ip or udp RV responsbulity is distibuted application these are d couppled application Rv is self describing data based on subject names .
MOMBus Based ArchitecherWire formatGranted and realible message
Bussines works- To develop the sclable & exchange and easy to develop the intigration of bussiness process components.
To create the bussiness processLess java codeNot allow the java scriptThis concept implement xmlWe can save the project group files and project ear in degin
Hawk hawk is tibco monotoring system( life cycle system, sender,target system)Entair life cycle bussiness processAlret message and blinks
RepositoryData and meta data need tibco AE components(IM,MB,HAWK)Message brokarData transformation and routing (message brokar engin subcribe other system)
Intigration managerOldest manager,java code,javascriptStored as .dat format.dat file deployee the adminTo develop the bussiness process
Adapter To develop the custom adapterUser can develop the adaptorSupporting two types of adapto- application
-custom
Active portal
Communication between web or mobailPortal builder supporting server only Bussiness connector- trading network components online communication
B2c communication
Active Exchange:To develop the workflows intigration incocept,staffware
TIBCO BUSINESS WORKS
WIREFORMAT TECHNOLOGIES
BUSSINESS INTIGRATION
• Business Integration• TIBCO BusinessWorks is a scalable, extensible, and easy to
use integration• platform that allows you to develop integration projects.
TIBCO BusinessWorks includes a graphical user interface (GUI) for defining business processes and an engine that executes the process.
• It provides an integrated user experience for all phases of the integration life cycle, including process Automation, data transformation, adapter configuration, deployment, security and runtime administration and monitoring.
• TIBCO BusinessWorks also works with TIBCO Administrator, a web-based GUI for monitoring and managing run-time components.
BW KEY COMPONENTS
TIBCO Designer TIBCO Business Works Engine TIBCO Runtime Agent TIBCO Administrator TIBCO ADAPTOR
TIBCO Designer
Starting the TIBCO Designer• Click Start>Programs>TIBCO>Designer_version (or ) Navigate to the <tibco_home>/designer/<version>/bin directory.
• Type ./designer
• Select one of the Startup Options
TIBCO Designer Interface Overview
Which palettes are displayed depends on:
• the installed TIBCO products
• the resource selected in the project tree
• preferences set
TIBCO BW PALETTS
TIBCO BusinessWorks Palettes
Procesé Palette
General Activity Palette
ActiveEnterprise Adapter Palette
File Palette
FTP Palette
HTTP Palette
Java Palette
General Activities Palette
TCP Palette
EJB Palette (Chargeable)
JDBC Palette
JMS Palette
Mail Palette
Parse Palette
Rendezvous Palette
SOAP Palette
WSDL Palette
XML Activities Palette
RMI Palette
Transaction Palette
Process PaletteProcess Definition
• When editing process definitions, the palette panel changes to a list of activity palettes that can be used within a process definition
• Process Variables Tab that allows to specify user-defined process variables for the process definition
• A value to the process variable can be assigned with the Assign
• This tab contains two panels:
• Left panel allows to add, delete, and rename process variables
• Right panel allows to define data schemas for the process variable selected in the left panel
Allows business processes definition
Active Enterprise Adapter PaletteCommon Features
• Support for Message Filter Resources • ActiveEnterprise Adapter activities automatically make use of the class specified in the Message
Filter resource defined for Adapter Configuration
• When deploying a project, TIBCO BusinessWorks process engine needs to have access to any classes specified in a Message Filter resource
• Internationalization Support • TIBCO BW and TIBCO Adapter products can use either the Latin-1 or UTF-8 character encoding
• Refresh Adapter Service Button• Button that allows to re-synchronize activities with the adapter service specified in the activity. Any
changes that have occurred to the adapter service are reflected in the activity after the refresh completes.
• Transport Tab• Allows to override the transport configuration of the adapter service.
• Has different fields depending upon which transport is selected in the Transport Type field
• Configure SSL button• Allows to configure the SSL parameters when the transport supports SSL and the SSL field is
checked
Active Enterprise Adapter Palette
Adapter Request-Response Server Starts a process based on the receipt of a request from an adapter
• The adapter sends a request by way of a pre-configured request-response invocation service, and the process that is started acts as the implementation of the request.
• The process sends any required responses back to the adapter’s service using the Respond to Adapter Request activity. Adapter Subscriber
Starts a process based on the receipt of a message from the publication service of the specified adapter
Respond to Adapter Request
Is used to send a response to an adapter for a previously received request.
Publish to Adapter
publishes a message that can be received by an adapter’s subscription service
Active Enterprise Adapter Palette
Send Exception to Adapter Request
Used to send an exception to an adapter for a previously received request
Wait for Adapter Message
Waits for the receipt of a message from the publication service of the specified adapter
Wait for Adapter Request
Waits for the receipt of a request from an adapter request-response invocation service
• The adapter sends a request by way of a pre-configured service, and the process definition acts as the implementation of the request
• The process sends any required responses back to the adapter’s service by placing the Respond to Adapter Request activity at a later point in the process definition.
EJB PaletteEJB Overview
• EJB palette of TIBCO BusinessWorks allows to connect to J2EE-compliant application servers and invoke Enterprise Java Beans (EJBs) on the servers
• The EJB specification includes support for distributed transactions. However, the EJB palette does not currently support client-managed transactions, including EJB calls. Therefore, you cannot call an EJB with the "Mandatory" transaction attribute.
• The EJB palette has been tested with the following application servers: • BEA WebLogic, Version 7.0 with service pack 2
• BEA WebLogic, Version 8.1 with service pack 1
• JBoss, Version 3.2.1
• IBM Websphere, Version 5.0.2
• A TIBCO BusinessWorks process instance acts as an EJB remote client
• To connect to an EJB server and invoke an EJB, the client must have the following in the classpath:
• the application server JAR files (supplied by the EJB server vendor) required for clients.
• the client JAR files that contains the required EJB client stubs (EJBHome, EJBObject) for invoking the desired beans
EJB Palette (Chargeable)
EJB Connection
EJB Home
Establishes a connection to the service, obtains a reference to the home object, and then obtains a reference to the remote object from the home object.
It can also be used to invoke a method on the EJB’s home object
EJB Remote
Invokes a method on the remote object obtained by the EJB Home activity
Must be placed after an EJB Home activity in a process definition
Specifies the connection configuration for the JNDI server• The Maximum Connections field specifies the maximum number of
InitialContexts TIBCO BusinessWorks will create at any given time
• The InitialContext is only used when obtaining a reference to the Home object. Once the Home object is obtained, the context is released back into the pool
File Palette
Create File
File Poller
Polls for files or directories with the given name and starts a process when a change (creation, modification, deletion) is detected
List Files
Returns information about files or directories or a listing of all the files in the specified directory
Creates a new file or directory with the specified name.
When creating a file, you can also provide the file contents.
Read File
Is used to read a file and place its contents into the process’ available data
File Palette
Remove File
Rename File Is used to rename or move files
Can also rename directories (it cannot be used to move a directory to a new location)
Wait for File Change
Waits for a file change (creation, modification, or deletion) to occur during process execution
When this activity is encountered, the process instance is suspended and waits for the specified file to change before resuming
Removes the specified file
Can also remove empty directories
If an attempt is made to remove a directory that is not empty, an exception is thrown
Write File Writes the desired contents to the specified file
FTP PaletteFTP Connection
FTP Delete File
Issues an FTP delete or mdelete command to remove one or more files from the remote server
FTP DIR
Provides a listing of files in the specified directory of the FTP server
Describes a connection to an FTP server
FTP connections are used when configuring activities in FTP palette.
FTP Get Issues an FTP get or mget command to the specified server
Remote files can be retrieved to process data or to local storage
Process data only one remote file (FTP get command). File’s content will be stored in memory as part of the activity’s output
Local storage one or more files (FTP get or mget commands)
FTP Palette
FTP Get Default Directory
FTP Make Remote Directory
Creates the specified directory on the remote FTP server
FTP Put Issues an FTP put or mput command to the specified server
Process data can be used as the content of the file to send to the remote server
Files in local disk storage can be sent
Process data only one file to the remote server (FTP put command)
Locally stored files one or more files to the remote server (FTP mput command).
Retrieves the name of the current remote directory
Default remote directory is operating system-dependent and determined by the remote FTP server
FTP Palette
FTP Quote
FTP Remove Remote Directory
Deletes the specified directory from the remote FTP server
FTP Rename File
Renames the specified file on the remote FTP server
Sends an arbitrary FTP command to the FTP server
Supported FTP commands can be determined by using the Available Commands button on the FTP Connection shared configuration resource
FTP Sys Type
Retrieves the FTP server’s operating system type
General Activities Palette
General Activities PaletteAssign
Call Process Calls and executes an existing process definition
The input is defined in the Start activity of the called process
The output is defined in the End activity of the called process
Allows to assign a value to a user-defined process variable
When executed, the entire schema for the selected process variable is replaced with the specified values. Elements that do not have a value specified in the Input tab are set to null FTP connections are used when configuring activities in FTP palette.
Checkpoint Performs a checkpoint in a running process instance
A checkpoint saves the current process data and state so that it can be recovered at a later time in the event of a failure
If a process engine fails, all process instances can be recovered and resume execution at the location of their last checkpoint in the process definition
There is no input or output for the activity
General Activities PaletteConfirm
External Command Allows to execute an Operating System command
Waits for the command to complete before transitioning to the next activity
Optionally, the command’s output and any errors can be included in this activity’s output schema, written to a file, or both.
Confirms any confirmable messages received by process instance
Generate Error Generates an error and causes an immediate transition to any error
transitions, or if there are no error transitions, stops the process instance
Is useful within a group or within a called process (to catch and raise custom error conditions)
General Activities PaletteInspector
Label
Is used to write the output of any or all activities and process variables to a file and/or stdout
Particularly useful when debugging process definitions to see the entire schema instead of mapping specific elements to the Write File activity.
Activities and process variables within a subprocess are not available to the Inspector activity (but the output of a Call Process activity can be written using the Inspector activity)
To obtain the output from one or more activities or process variables within a subprocess, place the Inspector activity within the process definition of the subprocess.
Allows you to create a generic label for providing documentation and comments within process definition
Is not an activity (no transitions to or from it, no action)
Labels can be resized to cover an area. By applying a border and a background color it’s possible to visually group related activities within process definition
General Activities PaletteMapper
Notify Allows a process instance to send data to a corresponding process
instance containing a Wait activity or Receive Notification process starter
Notify Configuration resource and the key specified create the relationship between Notify activity and Wait or Receive Notification
Adds a new process variable to the process definition
New variable can be a simple datatype, a TIBCO ActiveEnterprise schema, an XML schema, or a complex structure
Notify Configuration Specifies a schema to use for passing data between executing
process instances
Corresponding Receive Notification, Notify and Wait activities use the same Notify Configuration resource to define the data for inter-process communication
Schema can be empty (pass data between processes isn’t needed)
General Activities PaletteNull
Receive Notification
Starts a process when another process executes a Notify activity with a matching key and Notify Configuration resource
The same Notify Configuration shared configuration resource must be specified by corresponding Receive Notification and Notify activities so that data can be passed from the process containing the Notify activity to the process started with Receive Notification
Activity with no action performed
Useful to join multiple process flows
Sleep
Suspends the process on the current transition for the given amount of time
In processes with multiple control flows, only the current execution branch of the process is suspended
General Activities PaletteTimer
WaitSuspends execution of the process instance and waits for a Notify activity with a matching key to be executed in another process instance
The same Notify Configuration shared configuration resource must be specified by corresponding Wait and Notify so that data can be passed from the process instance containing the Notify activity to this process instance
Starts a process at a specific time or periodically
Write to Log
Writes a message to the log
Logs are stored within the TIBCO BusinessWorks installation directory under the logs subdirectory
There is one log file for each process engine
HTTP PaletteHTTP Connection
HTTP Receiver
Starts a process based on the receipt of a HTTP request
Describes the characteristics of the connection used to receive incoming HTTP requests
At most one process with an HTTP Receiver or Wait for HTTP Request can use the same HTTP Connection resource (this restriction allows the HTTP server listening for incoming requests to dispatch the request to the correct process)
There can be more than one SOAP Event Source that uses the same HTTP Connection (or SOAP Event Source and HTTP Activity)
Allows to specify that HTTPS protocol must be used by clients
Proxy Configuration
Used to specify a proxy HTTP server when HTTP requests are sent outside of a firewall
HTTP PaletteSend HTTP Request
Send HTTP Response
Sends a response to a previously received HTTP request
Used in conjunction with the HTTP Receiver process starter or the Wait for HTTP Request activity
Default status line returned by this activity is "200 OK"
Sends a HTTP request to a web server
This activity can send a request to a server that complies with either the HTTP 1.0 or 1.1 specification
To specify HTTP version of the server you are sending the request to isn’t needed (TIBCO BW automatically sends request using the correct version based on version supported by the HTTP server)
Wait for HTTP Request
Waits for an incoming HTTP request within a process definition
Process instance suspends until incoming HTTP request is received
Java PaletteJava Code
Java Custom Function
Allows to create custom functions to use when mapping data in an activity’s input tab
These functions are also displayed when using the XPath Editor to build an XPath expression
To create a custom function, first write the function as a method of a Java class and compile the code into a Java class file. Then load that class file into the project using this resource
Allows to write standard Java code that can manipulate any of the process data or perform any custom action
Automatically creates an invoke() method in which code should be put
When input and output parameters are specified, get/set method code is automatically generated for the activity
Java Method Allows to invoke a method contained in a Java class
Java class file must be located in the classpath for TIBCO Designer and the TIBCO BusinessWorks process engine
Java PaletteJava Schema
Java To XML
Allows to convert a Java object’s data members into an XML document
Allows to specify a Java class that is used to configure a Java To XML or XML to Java activity
Java class is converted to an XML schema using the some rules
XML To Java Allows to create an instance of a Java object based on data from an
XML document
The XML schema for providing input to the Java object is created from the Java object or Java Schema specified on Configuration tab
JDBC Palette
JDBC Call Procedure
JDBC Connection
Describes a JDBC connection
Calls a database procedure using the specified JDBC connection
If it is not part of a transaction group, it is committed after completion
If it is part of a transaction group, it is committed or rolled back with other JDBC activities within the group at the end of transaction
To commit after completion within a transaction group, check Override Transaction Behavior field
JDBC Query
Performs the specified SQL SELECT statement
JDBC Palette
SQL Direct
JDBC Update
Performs the specified SQL INSERT, UPDATE, or DELETE statement
If it is not part of a transaction group, it is committed after completion
If it is part of a transaction group, it is committed or rolled back with other JDBC activities within the group at the end of transaction
To commit after completion within a transaction group, check Override Transaction Behavior field
Executes a provided SQL statement
Allows to build a SQL statement dynamically (using other activities), then pass the SQL statement into this activity’s input
Also allows to execute SQL statements that are not supported by other activities in JDBC palette If it is not part of a transaction group, it is committed after completion
If it is part of a transaction group, it is committed or rolled back with other JDBC activities within the group at the end of transaction
To commit after completion within a transaction group, check Override Transaction Behavior field
JMS Palette
JMS Connection
JMS Application Properties
Describes any JMS message properties that a JMS application expects
These properties can then be added to a JMS message on the Advanced tab of a JMS activity (they will appear as "OtherProperties" on the Input or Output tab of the activity)
Describes a JMS connection (used when specifying JMS activities)
JMS Queue Receiver
Starts a process based on the receipt of a message for the specified JMS queue
JMS Queue Requestor
Used to send a request to a JMS queue name and receive a response back from the JMS client
JMS Palette
JMS Topic Publisher
JMS Queue Sender
Sends a message to the specified JMS queue.
Sends a message to the specified JMS topic
JMS Topic Requestor
Used to communicate with a JMS application’s request-response service (this service invokes an operation with input and output)
The request is sent to a JMS topic and the JMS application returns the response to the request
JMS Topic Subscriber
Starts a process based on the receipt of a message for the specified JMS topic
JMS Palette
Reply To JMS Message
Sends a reply to a previously received JMS queue or topic message
Selected activity determines which message reply message is in response to
Wait for JMS Queue Message
Waits for the receipt of a message for the specified JMS queue
Wait for JMS Topic Message
Waits for the receipt of a message for the specified JMS topic
Mail Palette
Receive Mail
Polls a POP3 mail server for new mail
When new mail is detected and retrieved, the Receive Mail process starter starts a new process for the process definition it resides in and passes the mail data to the next activity in the process flow
Send Mail
Sends an email by way of a SMTP server
Parse Palette
Data Format Shared Configuration that contains the specification for parsing or
rendering a text string using Parse Data and Render Data activities
Specifies the type of formatting for the text (delimited columns or fixed-width columns), the column separator for delimited columns, the line separator, and the fill character and field offsets for fixed-width columns
Parse Data Takes a text string or input from a file and processes it, turning it into
a schema tree based on the specified Data Format specified
Each column of an input line is transformed into the corresponding item in the specified data schema. Each line is treated as a record, and multiple lines result in a repeating data schema containing the lines of the input text string.
Render Data Takes an instance of a data schema and renders it as a text string
(based on a specified Data Format shared configuration)
Each record in the input data schema is transformed into a line of output text. Each record in a repeating data schema is transformed into a separate line in the output text string
Rendezvous Palette
Publish Rendezvous Message
Publishes a TIBCO Rendezvous message on the given subject with the given message content
Rendezvous Subscriber
Creates a process when a TIBCO Rendezvous message on the given subject is received
Rendezvous Transport
Describes a TIBCO Rendezvous transport
Resource used when specifying activities from Rendezvous palette
Rendezvous Palette
Send Rendezvous Request
Publishes a TIBCO Rendezvous message on the given subject with the given message content, and it expects a reply to the message on the given reply subject and with the given reply message content
Wait for Rendezvous Message
Waits to receive a TIBCO Rendezvous message with the given subject
Reply to Rendezvous Request
Used to send a reply to a received TIBCO Rendezvous message
RMI Activities Palette
RMI Lookup The RMI Lookup activity retrieves a reference to a remote object from
the specified registry server. The object reference output by this activity can be passed to a Java Code or Java Method activity to invoke methods on the remote object.
RMI Server The RMI Server process starter registers the specified remote object
name with the specified registry server and then creates process instances to handle incoming requests for the object. The process definition acts as the implementation of the specified object.
SOAP Palette
SOAP Event Source Creates a process instance for incoming SOAP requests
SOAP Event Source process starter configuration creates a concrete WSDL file that describes the web service implemented
WSDL file is created based on a WSDL file resource in the project, but this process starter allows you to reconfigure web service definition
Retrieve Resources
Generates a WSDL file containing a concrete service description of any process definition that has a SOAP Event Source process starter (allowing clients to access the WSDL for a web service that is implemented by a TIBCO BusinessWorks process definition)
Also used to retrieve other resources (XSDs or process definitions, ...)
Normally used in conjunction with an HTTP Receiver process starter and a Send HTTP Response activity
SOAP Request Reply Performs a request on the specified web service and expects a reply
from the web service
Both document and RPC web services invocation are allowed
SOAP Palette
SOAP Send Fault
Sends a SOAP fault to the client if an error occurs during processing of a SOAP request
Used when the SOAP Event Source process starter handles incoming SOAP requests
WSDL file for the request can have one or more fault schemas defined for any operation that can be used by SOAP Send Fault activity to send application-specific data about the fault back to the client that made the SOAP request
Cannot be used if the SOAP request is one way
Fault schema must be a valid XSD schema
SOAP Send Reply
Sends a reply to an application that sent a SOAP request
Used within process definitions that implement web services (when a SOAP Event Source is used as the process starter)
Cannot be used if the SOAP request is one way.
IntroductionIntroduction
DesignDesign
TestingTesting
DeploymentDeployment
Technical TermsTechnical Terms
Agenda
Introduction
“ The purpose of this slide-show is to
provide step-by-step instructions for
developing:
Web Services Client & Server
using
TIBCO BusinessWorks 5.1”
Create An Empty Project
Create a new project. Specify project location.
Create two folders – Processes (to hold processes) and Resources (to hold resources).
Create Project Folders
Create HTTP Transport
Create HTTP transport.
Create HTTP Transport
Configure the port as shown below. Avoid using common ports (80, 8080 etc.)
Create Abstract WDSL
Select folder Resources. Import (.xsd) file that contains schema for WSDL configuration.
Create Abstract WDSL
Select folder Resources. Import (.xsd) file that contains schema for WSDL configuration.
Create Abstract WDSL
Select folder Resources. Import (.xsd) file that contains schema for WSDL configuration.
Create Abstract WDSL
After importing, make sure the file is in the right folder. Then check the schema for errors.
Create Abstract WDSL
After importing, make sure the file is in the right folder. Then check the schema for errors.
Create Abstract WDSL
Create an Abstract WSDL.
Create Abstract WDSL
Create an Abstract WSDL.
Create Abstract WDSL
Create two Message objects (InputMessage, OutputMessage). Select InputMessage to configure.
Create Abstract WDSL
Click on Add button and name it ClientRequest. Click on select and specify Element. Click on browse and from Select a Resource dialog box select BWWSCleintRequest.
Add
Select
Browse
Create Abstract WDSL
Click on Add button and name it ClientRequest. Click on select and specify Element. Click on browse and from Select a Resource dialog box select BWWSCleintRequest.
Add
Select
Browse
Create Abstract WDSL
To Configure OutputMessage :
Repeat the steps that were taken to configure InputMessage.
Create Abstract WDSL
Create PortType.
Create Abstract WDSL
Create operation RequestReplyOperation.
Create Abstract WDSL
To configure RequestReplyOperation click on Add. Add two objects to Message Table.
Add
Create Abstract WDSL
Name the objects in Message Table as ClientRequest and ServerReply. Select ClientRequest and click on Browse button.
Browse
Create Abstract WDSL
Name the objects in Message Table as ClientRequest and ServerReply. Select ClientRequest and click on Browse button.
Browse
Create Abstract WDSL
The final configuration should look like as shown below.
Create Abstract WDSL
To Configure ServerReply:
Repeat the steps that were taken to configure ClientRequest.
Create Concrete WDSL
Create two processes in the processes folder and name them WSClient, and WSServer.
Create Concrete WDSL
Select WSServer process.
Create Concrete WDSL
From SOAP palette drag and drop SOAPEventSource in the process panel. Click on Browse button to configure it.
Browse
Create Concrete WDSL
From SOAP palette drag and drop SOAPEventSource in the process panel. Click on Browse button to configure it.
Browse
Create Concrete WDSL
Click on Browse button to configure transport. Select BW-HTTP-Connection.
Browse
Create Concrete WDSL
Click on Browse button to configure transport. Select BW-HTTP-Connection.
Browse
Best practice Tip - (Use Document/Literal).
Create Concrete WDSL
Create Concrete WDSL
Select WSDL Source tab. Right click on the wsdl source and select Save As . . . .
Create Concrete WDSL
Select WSDL Source tab. Right click on the wsdl source and select Save As . . . .
Create Concrete WDSL
Now we need to import this resource back to the project. Select Resources folder, and select import.
Create Concrete WDSL
Select ConcreteWSDL file and import it back to the project. Make sure it imported in Resources folder.
Configure Client Process
Create the process as shown below. The Timer is configured to trigger every 60 seconds. For SOAPRequestReply configuration, click on Browse button.
Configure Client Process
Create the process as shown below. The Timer is configured to trigger every 60 seconds. For SOAPRequestReply configuration, click on Browse button.
Configure Client Process
Map output from SOAPRequestReply to Log task.
Configure Client Process
Map timer output (current timestamp) to SOAPRequestReply. The client will send a time stamp to server.
Configure Server Process
Create the process as shown below. Write the mapping formula.
Configure Server Process
Create the process as shown below. Write the mapping formula.
Click on Tester tab. Click on the green start button. Select both WSClient and WSServer process to start.
Click on Tester tab. Click on the green start button. Select both WSClient and WSServer process to start.
Connecting green lines show that the process was executed successfully.
Create .ear File
Create a folder Deployment. Add an Enterprise Archive component to it.
Create .ear File
Create two Process Archive objects. (WSClientProcessArchive, WSServerProcessArchive)
Create .ear File
Browse
Configure WSClientProcessArchive; use the Browse button and select WSClient process.
Create .ear File
Browse
Configure WSClientProcessArchive; use the Browse button and select WSClient process.
is a lightweight protocol for the exchange of information between web services.
SOAP consists of three parts: • An envelope that defines a framework for
describing what is in a message and how to process it.
• A set of encoding rules for expressing instances of application-defined datatypes.
• A convention for representing remote procedure calls and responses.
Web Services Description Language WSDL
is an XML based language. WSDL format is used to describe network services as a set of endpoints operating on messages containing either document-based or procedure-oriented data.
WSDL has two flavors • AbstractAbstract
abstract description of the operations and messages
• Concreteendpoint definition with network protocol and message format
Web Services Description Language WSDL
is an XML based language. WSDL format is used to describe network services as a set of endpoints operating on messages containing either document-based or procedure-oriented data.
WSDL has two flavors • AbstractAbstract
abstract description of the operations and messages
• Concreteendpoint definition with network protocol and message format
• MessageMessage, The Message component is used to define the type of information being exchanged within a web service. One or more Message components can be added to a WSDL resource.
• BindingBinding, This field specifies concrete protocol and data format specifications for the operations and messages defined by a particular portType.
• TypesTypes, This field displays the type information for the part.
• PortTypePortType, The PortType component describes the operations that are supported by the web service. One or more PortType components can be added to a WSDL resource.
• PortPort, This component specifies an address for a binding. This address is defined as a single communication endpoint.
• ServiceService, which is used to aggregate a set of related ports.
• MessageMessage, The Message component is used to define the type of information being exchanged within a web service. One or more Message components can be added to a WSDL resource.
• BindingBinding, This field specifies concrete protocol and data format specifications for the operations and messages defined by a particular portType.
• TypesTypes, This field displays the type information for the part.
• PortTypePortType, The PortType component describes the operations that are supported by the web service. One or more PortType components can be added to a WSDL resource.
• PortPort, This component specifies an address for a binding. This address is defined as a single communication endpoint.
• ServiceService, which is used to aggregate a set of related ports.
TCP Activities PaletteRead TCP Data
The Read TCP Data activity reads data from an open TCP connection. The connection must be opened by an activity or process starter that executed previously in the process definition. Activities that can open a TCP connection are: TCP Receiver, TCP Open Connection, and Wait for TCP Request. The activity that opens a TCP connection places a handle to the open connection in its connectionKey output element. The connectionKey is mapped to this activity’s input.
TCP Close Connection The TCP Close Connection activity closes a TCP connection opened by a
previously executed activity or process starter. Activities that can open a TCP connection are: TCP Receiver, TCP Open Connection, and Wait for TCP Request. The activity that opens a TCP connection places a handle to the open connection in its connectionKey output element. The connectionKey is mapped to this activity’s input
TCP ConnectionThe TCP Connection is a shared configuration resource that specifies the connection information for the TCP server. This resource is used when a process definition acts as a TCP client connecting to a remote server or when a process definition acts as a TCP server accepting incoming TCP connections.
TCP Activities PaletteTCP Open Connection
The TCP Open Connection activity opens a connection to a TCP server. After establishing the connection, the activity places a handle to the open connection in the connectionKey output element. This connection key can be used by subsequent activities in the process definition to read data from, write data to, or close the connection.
TCP Receiver The TCP Receiver process starter starts a new process when a client requests a TCP connection.
When a connection request occurs, the process starter places a handle to the open connection in the connectionKey output element. This connection key can be used by subsequent activities in the process definition to read data from, write data to, or close the
Wait for TCP Request
The Wait for TCP Request activity waits for a TCP client connection request. When a connection request occurs, the activity places a handle to the open connection in the connectioney output element. This connection key can be used by subsequent activities in the process definition to read data from, write data to, or close the connection. .
Write TCP Data
The Write TCP Data activity sends data on the specified TCP connection. The connection must be opened by an activity or process starter that executed previously in the process definition. Activities that can open a TCP connection are: TCP Receiver, TCP Open Connection, and Wait for TCP Request. The activity that opens a TCP connection places a handle to the open connection in its connectionKey output element. The connectionKey is mapped to this activity’s input.
The JTA UserTransaction Configuration shared configuration resource contains the information required to communicate with a Java Transaction API (JTA) transaction manager. This resource is used by transaction groups that use the JTA UserTransaction type
Transaction StateThe Transaction State activity can be used in a transaction group to obtain the current state of the transaction or to set the transaction to a rollback only state. When a transaction is set to the rollback only state, the only outcome of the transaction that is permitted is a rollback
XA TransactionManager ConfigurationThe XA TransactionManager Configuration shared configuration resource contains the information required to communicate with an XA-compliant transaction manager. This resource is used by transaction groups that use the XA Transaction type.
WSDL Palette
Message Used to define the type of information being exchanged within a web
service
One or more Message components can be added to a WSDL resource
WSDL
A WSDL file is an XML instance of the WSDL XML Schema
A WSDL resource is composed of a series of definitions that describe the format and roles of messages used in web services
Port Type Describes the operations that are supported by the web service
One or more PortType components can be added to a WSDL resource
Once the portType component has been created and selected within the project, Operation component becomes available in WSDL palette
Operation Describes the message formats for the incoming and outgoing
messages required by the activities supported by the portType
One or more Operation components can be added to a PortType component
XML Activities Palette
Render XML Takes an instance of an XML schema element and renders it as a
stream of bytes containing XML or an XML string
The schema is processed based on the XSD file specified.
Parse XML
Takes a binary XML file or an XML string and processes it, turning it into an XML schema tree based on the XSD or DTD specified
Transform XML Allows to transform an input XML document into the output specified
by the given XSLT File shared configuration resource
This activity allows to use the XSLT file instead of manually creating mappings
XSLT File
Allows to load an XSLT file to use to transform XML schemas using the Transform XML activity
TIBCO BW MAPPING
What is BW Mapping? BW Mapper Edit Statement XPath Formila Builder Functions
What is BW Mapping?BW mapping is a way of transforming data in one format to another predefined format. For Eg:- XML to COMMAREA, XML structure 1 to XML structure 2, etc
How to Achieve it?
Use the BW Mapper activity available in TIBCO Designer.
Where to use mapper?In the IP based projects, using IP template, one or more BW mapper activities are used in the “Exits” provided in each IP Pattern Templates used to created BW Services.
What is BW Mapping?BW mapping is a way of transforming data in one format to another predefined format. For Eg:- XML to COMMAREA, XML structure 1 to XML structure 2, etc
How to Achieve it?
Use the BW Mapper activity available in TIBCO Designer.
Where to use mapper?In the IP based projects, using IP template, one or more BW mapper activities are used in the “Exits” provided in each IP Pattern Templates used to created BW Services.
BW Mapper – Useful Details Input Editor – Select Target schema to which
inbound data needs to be transformed to. Input – Used to map data available in the
previous activities in the process to the target format. Normally, a simple mapping involves “dragging and dropping” from the source input field to the target field in output schemaThe BW Mapping document is used as a source for mapping specifications in IP projects
Output – A tree format view of the target schema
Others – We can add, insert, move the elements of the schema in the Input tab using the buttons available.
Edit Statement
The Edit Statement button is used to select a Statement type on a particular field.
In IP projects its most commonly used to coerce the “Any” element in the EMS Body section to appropriate XSD operation element.
Can also be used to set the cardinality for mapping a particular elements – whether Optional to Optional, Required to Required, etc
Other uses include creating For Each, If, Copy, Copy-Contents, Choose statements etc on a particular field mapping.
Edit Statement – common usage Variable – Used for storing an intermediate
value which needs to be used in a complex mapping.
For Each – Used for mapping aggregates from input schema to aggregates in output schema
Choose – This helps us in mappings where several conditions are involved with each condition resulting in different value for target field
If – A simple if condition Copy-of – Used to copy an aggregate directly to
the target aggregate, when both source and target aggregate have same structure
Explore the Edit statement in the BW mapper activity for more functionalities
XPath Formula Builder If a field mapping involves slightly more complex
transformations, then the formula builder helps in creating the statement to map the field
Typical examples could be if-then conditions, comparisons, mathematical or logical functions etc
Helps in using the basic functions available out of the box in the designer
Can be used wherever icc2.jar functions need to be used in the mapping
Clicking on XPath Formula Builder button opens up a new window for creating the mapping statement
Functions
GeneralStringLogicalFilterSetComparisonNumberBinaryData/TimeConditions and IterationsIcc2 – Custom Functions for IP projects
Project Structure• Not all folders in TIBCO Designer are directories in the file system
• Folders created from a Folder resource in the General Palette (displays a multi-folder icon) become folders in the file system.
• Other folders, such as the Adapter Services folder inside an adapter configuration are
• logical folders
• only exist in memory in the resource that holds them.
• Actual data for these elements is stored in the file of the top-level resource. For example, Adapter Services data is stored in the Adapter Configuration file.
if (upper-case(UI322Q-3RD-PARTY-ACCT-IND) = 'Y') then 'true‘ else 'false‘
tib:trim(UI322Q-ACTIVE-CARD-IND) !='‘
Project Structure• Not all folders in TIBCO Designer are directories in the file system
• Folders created from a Folder resource in the General Palette (displays a multi-folder icon) become folders in the file system.
• Other folders, such as the Adapter Services folder inside an adapter configuration are
• logical folders
• only exist in memory in the resource that holds them.
• Actual data for these elements is stored in the file of the top-level resource. For example, Adapter Services data is stored in the Adapter Configuration file.
Components of a Process Definition•Subprocesses•Activities•Transitions•Groups
Subprocesses
• Subprocesses cannot have process starters as the start activity
• Procedure for creating and calling a sub-process
• Create a process definition for the sub-process
• Specify the input, output and any error schemas on the start and end activity
• Create a process definition that will call the subprocess
• Place a call process activity in the process definition or drag the subprocess into the main process definition
SUBPROCESS
Activity Icons
Activity Icons
Palette Process Starter Starts a process when...Adapter SubscriberAdapter Request-Response Server
File File Poller The specified file is created, changed, or deleted.
Timer The specified time interval occurs. You can start processes for one-time events or schedule processes to start on recurring time intervals.
Receive Notification A corresponding Notify activity has executed.
HTTP HTTP Receiver An HTTP request is received.JMS Queue Receiver
JMS Topic SubscriberMail Receive Mail Mail for the specified user is received by
the mail server.Rendezvous Rendezvous Subscriber A TIBCO Rendezvous message is
received.SOAP SOAP Event Source A SOAP web services request is received.
ActiveEnterprise Adapter A message or a request from an adapter is received.
General Activities
JMS Either a JMS queue or topic message is received.
Process Starters• When a process starter is placed into a process definition, it replaces the default Start activity, and becomes the first activity in the process
Transitions• Transitions describe the flow of processing
• It is represented by an arrow between two activities or group of activities in a process definition
• The arrows are unidirectional and cannot be drawn to a previously executed activity
• Different condition types for a transition are• Success • Success with condition• Success if no matching condition• Error
Groups• To create a set of activities with a common error transition
• To create sets of activities to be repeated (iterations)
• To create set of activities that participate in transaction
• To create critical section that synchronizes process definitions
• To specify that the first activity that completes should determine which transition(s) to take to continue processing. This allows you to wait for one or more incoming events and continue processing based on what incoming event was received first.
Groups
Group Nested Group
Group
Common error handling May be nested May include sub-process call Provides special processing:
None Iterate Repeat-Until-True Repeat-On-Error-Until-True Transaction Critical Section Pick First
Pick First – before execution
First-of-N to complete continues, others cancelled.
Pick First – during execution
First-of-N to complete continues, others cancelled.
Pick First – after execution First-of-N to complete continues, others cancelled.
Critical Section
Provides synchronized access to Shared Variable.
Multiple jobs, single process Multiple jobs, multiple processes (uses lock
Loops• Loops allow you to execute a series of activities more than once• Types of loops that are available are:
• Iterate Loop• Repeat Until True Loop• Repeat On Error Until True Loop
Activity Output and Groups• If the group is used for a loop (iterate, repeat until true, and so on), activity output in the group is reset so that activities in subsequent iterations of the group will not have access to output data from previous iterations
• If you wish to store data from each successive iteration of a loop, • Create a process variable and use the Assign activity in the loop to store or alter data for each iteration.• Accumulate the output of each execution of one activity in the group into a list.
Critical Section Groups
• Critical section groups are used to synchronize process instances so that only one process instance executes the grouped activities at any given time.
• Any concurrently running process instances that contain a corresponding critical section group wait until the process instance that is currently executing the critical section group completes.
Different Types of Variables• Global Variables• Process Variables• Shared Variables
• Global Variables — These variables allow you to specify constants that can be used throughout the project.
Global Variables
Usage of the global variable in the fields of a resource,
• enter the variable name surrounded by %% on both sides.
•drag from the Global Variable tree in the display into a text field in the configuration panel.
Changing the Global variables at runtime
• By Modifying runtime variables using TIBCO Administrator• By Changing the values in .tra file as below-tibco.clientVar.<variablePathAndName> <value>
Process Variables
• Process Variables — Allow you to access various data in your project.
• Types of Process Variables
• Activity Output
• Predefined Process Variables
• There are two process variables that are available to all activities that accept input: $_globalVariables and $_processContext (such as process ID, process name and so on)
• Error Process Variables
• When an error occurs in a process, the data pertaining to the error is placed into process variables. The $_error process variable contains general error information. Activities can also have error process variables named $_error_<activityName>.
• User-Defined Process Variables
Shared Variables• Shared Variables — These variables allow you to specify data for use across multiple process instances.
• Activities
• setSharedVariable
• getSharedVariable
ERROR HANDLING
When executing business processes, activities can encounter error.
In error handling, we add procedures to our process definition for handling an error.
ERROR PROCESS VARIABLES When an error transition is taken, error data is
available to activities that execute after the error transition.
There are two types of process variables that contain error data, the $_error process variable
The $_error process variable contains general information about the process in
which the error occurred. the activity error variables.
Error handling
Logger Level
Starter Process Level
Sub-Process Level
BW ENGINIt is totally back round process it execute the bw process at time in text mode , it is not a text mode .
Overview of Processes bw• A Process definition is a graphical representation of your business process
• You can develop and test business processes using TIBCO designer
• The process definition is executed by a TIBCO BusinessWorks process engine
TIBCO Administrator
• TIBCO Administrator allows you to upload, deploy and monitor TIBCO applications on machines that belong to an administration domain. TIBCO
• Administrator provides the following modules to manage users, resources and applications:
• • User Management. This module allows you to create users and roles, and assign them access rights to TIBCO Administrator consoles, applications and application repositories.
• • Resource Management. This module allows you to manage TIBCO software installed on other machines in the domain and monitor machines in the domain.
• • Application Management. This module allows you to upload, deploy and monitor applications. You can also start and stop application service instances or process engines.
Architecture Overview
1. Tomcat web server—Manages basic communications and makes TIBCO Administrator available.2. Administration server—Manages domain and application repositories.3. User Management—Manages access rights for user and roles to TIBCO Administrator modules and repositories. 4. Resource Management—Allows you to view the status of all machines in an administration domain 5. Application Management—Allows you to deploy and monitor applications.
Administration Domain An administration domain is a collection of users, machines, and services.
The administration domain is managed by a administration server, which is assisted by a TIBCO Hawk Agent running on each machine in the administration domain.
A TIBCO administration domain consists of these elements:
Administration server Machines User and Access Information Application Configuration Runtime Application TIBCO Hawk Agent
TIBCO Administrator includes several utilities and plug-ins
TIBCO Domain Utility Scripting Deployment Utility Command Line Utilities TIBCO Enterprise Message Service Plug-in TIBCO Business Works Manual Work Plug-in
Tibco domain utility
Tibco admin
TIBCO Runtime Agent
TRA is responsible sending message to hawk.
Hawk is only monitoring It had micro agent is there .
TIBCO ADAPTOR
• Establish the communication b/w internal to external system and external to internal system.
• It is mainly two types• custom adaptor-• In this case user developed by adaptors by
using adaptor sdk(api)• Default adaptor or application adaptor• It is built in application(eady made adaptor)By tibco company .
Tibco Messaging System
Tibco messaging system is mainly three typesRv• rv is a s/w or protocal like tcp/ip or udp our responsbulity is
distibuted application these are d couppled application • Rv is self describing data based on subject names .
• MOM• Bus Based Architecher• Wire format• Granted and realible message Jms & ems:If we start work on jms . It is supporting ems ( ems was developed
by tibco, some drawbacks are coverd )Smart socket This is also messaging system
TIBCO RENDEZVOUS
Objectives
Completing this unit will enable us to Define the role of the TIB in a distributed
computing environment. Describe the unique characteristics of the TIB. Define subject-based addressing. Define TIB message interaction types. Describe TIB architecture. Describe the TIB programming model. Define what function RV Router Daemons
perform. Understand how to develop subject naming
schemes.
TIB Middleware Messaging
The TIB allows a move away from complex interfaces
Application messages contain a large amount of ‘infrastructure’code, some as much as 60-70%.
The actual application functionality occupies the rest.
TIB moves the communications infrastructure away from the applications and into a packaged software "daemon”.
Allows programmers and designers to concentrate on application functionality, rather than low level network and operating system details.
TIB Architecture
The information bus in a distributed collection of TIB/Rendezvous daemons exchange multicast
messages in a peer-to-peer manner.
Multiple applications can connect to a local RVD or an
application can connect remotely to an RVD for message exchange
on the network.
The RVD manages all the complex details of data
distribution to other RVDs.
Subject Based Addressing
TIB/Rendezvous software uses subject-based addressing™technology to direct messages to their destinations, so applicationprocesses can communicate without knowing the details of networkaddresses or connections.
Subject-based addressing conventions define a uniform name space for messages and their destinations.
The locations of component processes become entirely transparent;any application component can run on any network host without modification, recompilation or reconfiguration.One can dynamically add, remove, and modify components of a distributed system without affecting other components.
Subject-based Addressing is not tied to any name service. Subject names can be registered, and browsed, in any LDAP server or other name services.
Subject Naming
The TIB allows a move away from complex interfaces
Application messages contain a large amount of ‘infrastructure’code, some as much as 60-70%.
The actual application functionality occupies the rest.
TIB moves the communications infrastructure away from the applications and into a packaged software "daemon”.
Allows programmers and designers to concentrate on application functionality, rather than low level network and operating system details.
Subject Naming
Subject naming is the key to any TIB system. Every name should consist of these parts: <scope>.<type>.<filter>
Scope defines the universe within which the subject naming convention is valid.
Type should match exactly the object name of the data object transported on this subject.
Filter specifies some additional filters that can be generated dynamically and/or read from a configuration.
TIB Middleware Messaging
The current implementation limits subject names.
Total length of 255 characters (including delimiters)
Maximum element length is 252 characters
Subject-BasedAddressing
Accesses data rather than computers.
Allows data to come from different sources.
Programs are not topology / address dependent.
Users and programmers need not know networking details.
News..Natural_Disasters.Flood Invalid null element in subject string
WRONG. Invalid null element at the end of the
subject string
.TRIPLE.WRONG.. Invalid subject string with three null
elements
Communication Paradigms
Two Communication Paradigms
•Demand Driven
•Event-Driven
Demand Driven
Traditional Client-Server computing using Request-Reply interactionsClient (Pull) = Demand drivenOne-to-One communication modelEvent notification based on “Polling”
Reserved Characters
Flexible computing model using Publish-Subscribe interactions.
Event driven by data Producer (Push).
Multi-cast communication model.
Less network & server overhead.
Reserved Characters
Publish / Subscribe Distribution of information from many
sources to many consumers.
Request / Reply Queries or transactions.
Broadcast Request / Reply Queries resulting in several replies from
one or more servers.
Reserved Characters
Reliable:• UDP Datagram broadcast protocol is not reliable
and is unable to detect lost messages. • Reliable broadcasting is built into TIB/Rendezvous. Implemented by TRDP
Certified:• Certified messages are maintained at their sender
until the receiver has acknowledged receipt of the message.
Implemented by RVCM
Reliable Messaging
Reliable Messaging
Certified Delivery
Certified Delivery
Messages and Data
RV uses a unified data representation to exchange messages among all supported platforms.
Translates between universal wire format and local data formats.
Messages are the common currency that TIB/Rendezvous uses to exchange data.
Messages contain fields of self-describing data. Every message has a subject name that describes its
destination. All data that enters or leaves a program through the RV
daemon must be encapsulated in the fields of a message.
TIB Router Daemons
TIB/Rendezvous provides a facility (RVRD) for creating "software routers" that send information from one sub-net to another.
Routing daemons forward broadcast messages between networks via TCP “neighbor” connections.
Communicating applications remain de-coupled from network
addresses and other details.
Delivering messages between networks requires RVRD.
TIB Router Daemons
TIB/Rendezvous provides a facility (RVRD) for creating "software routers" that send information from one sub-net to another.
Routing daemons forward broadcast messages between networks via TCP “neighbor” connections.
Communicating applications remain de-coupled from network
addresses and other details.
Delivering messages between networks requires RVRD.
TIB Router Daemons
RVRD’s allow RV messages to be exchanged across the WAN, or
through firewalls.
TCP connections are used between RVRDs to exchange RV
messages.
Each LAN requires an RVRD.
Multiple RVRDs on a LAN can cause duplicate message delivery.
Qualities of Service
Fault Tolerance: When a process dies another rapidly assumes active
duty. Implemented by RVFT. Distributed Queues: Load balancing among the different receivers. Implemented by RVDQ. Transactional: Messages grouped into transactional brackets. Implemented by RVTX. Data Security: Conversation between sender and listener is encrypted. Implemented by RVDS.
Fault Tolerant Communications
Fault Tolerant Communications
1-of-N Delivery to a Distributed Queue
Review
TIBCO EMS
You need a messaging service to integrate applications within an enterprise.
JAVA Message Service 1.1 (JMS) is a JAVA frame work specification for messaging between applications.
TIBCO Enterprise Message Service implements and integrates several message services including JMS.
In JMS there is one producer and one/more than one customers. The producer is the creator of message.
Messages are the structured data that one application sends to another.
The TIBCO EMS server is an intermediary which sends the messages to the correct destination.
The server also provides fault-tolerance, message routing and communication with other messaging systems such as TIBCO Rendezvous and TIBCO Smart Sockets.
Message Delivery
Message Producer
TIBCO EMSServer
Message Consumer
Message
Message
EMS Client
EMS Client
JMS Supports 2 messaging models:
Point-To-Point (Queues). Publish and subscribe (Topics).
Point-To-Point
If there is only one producer and only one consumer then the messaging is called Point-to-point.
A queue is used to store point-to-point message until it is received by the consumer.
The producer sends the message to the queue;the consumer retrieves the message from the queue and sends back the acknowledgement.
Point-To-Point Messages
Message Producer
TIBCO EMSServer
Queue
TIBCO EMSServer
Queue
Message Consumers
Message Consumers
Send Message
Receive Message
AcknowledgementEMS Client EMS Client
Publish And Subscribe
In this model, the producer is known as publisher and the consumer is known as a subscriber.
Topic is used to store messages in such a messaging system. This type of messaging is also known as broadcasting messaging.
In default mode if messages are delivered when the subscriber is not available, the subscriber doesn’t receive those messages. But we can create durable subscriptions.
Messages for durable subscriptions are stored on the server until the message expires or the storage limit is reached.
Subscribers can receive messages from a durable subscription even if the subscriber was not available when the message was originally delivered.
Publish & Subscribe Messages
Message Producer
TIBCO EMSServer
Message Consumers
Message Consumers
Topic
Publish Message
Subscribe to Topic
Deliver Message
Acknowledge
EMS Client EMS Client
Messages
JMS Messages have a standard structure. This structure includes the following sections:
Header (Required) Properties (Optional) Body (Optional).
Header Fields JMS Destination-Destination to which message is sent.
JMS Delivery Mode-Persistent or Non persistent message
JMS Expiration-Length of time that message will live before expiration. If set to 0,message doesn't expire.
JMS Priority-Uses a numerical ranking, between 0&9, to define message priority as normal or expedited.
JMS Message ID-Value uniquely identifies each message sent by a provider.
JMS Timestamp-Timestamp of time when message was handed off to a provider to be sent.
JMS Correlation ID-This ID can be used to link messages, such as linking a response message to a request message.
JMS Reply To-A destination to which a message reply should be sent.
JMS Type-Message type identifier.
JMS Redelivered-If this is set, it is possible that the message was delivered to the client earlier, but not acknowledged at that time.
Properties
There are applications, vendors, and administrators on JMS systems can add optional properties.
The properties area is optional and can be left empty.
Message Bodies Message-This message type has no body.
Text message-A java.lang.String
MapMessage-A set of name/value pairs. The names are java.lang.String objects, and the values are Java primitive value types or their wrappers.
Bytes Message-A stream of uninterrupted bytes.
Stream Message-A stream of primitive values in the Java programming language.
Object Message-A serializable object constructed bin the Java programming language.
Message Persistence JMS Defines two message delivery modes, persistent and
non-persistent. This mode is set by the message sender or publisher in the JMS delivery Mode message header field.
Non persistent messages are never written to persistent storage. Persistent messages are logged to persistent storage when they are sent.
Messages with the persistent delivery mode are always written to persistent storage, except when they are published to a topic that has no durable subscribers.
When a topic has no durable subscribers, there are no subscribers that need messages recent in the event of a server failure.Therfore, messages do not need to be saved, and performance is improved because disk I/O is not required.
Message Acknowledgement
The interface specification for JMS requires that message delivery be guaranteed under many, but not all, circumstances. The specification defines three levels of acknowledgements:
DUPS_OK_ACKNOWLEDGE,for consumers that are tolerant of duplicate messages.
AUTO_ACKNOWLEDGE,in which the session automatically acknowledges a client’s receipt of a message.
CLIENT_ACKNOWLEDGE,in which the client acknowledges the message by calling the message’s acknowledge method.
Undelivered Message Queue
If a message is to be removed from the system in any way besides being properly consumed by a message consumer, the server checks the message for the JMS_TIBCO_PRESERVE_UNDELIVERED property.
When JMS_TIBCO_PRESERVE_UNDELIVERED is set to true, the server moves the message to the undelivered message queue,$sys.undelivered.
This undelivered message queue is a system queue that is always present and can’t be deleted.
To set use of the undelivered message queue, the application that sends or publishes the message must set the Boolean JMS_TIBCO_PRESERVE_UNDELIVERED property to true before sending or publishing the message.
You can only set the undelivered property on individual messages, there is no way to set the undelivered message queue as an option at the per-topic or per-queue level.
Reliable Message Delivery
JMS has PERSISTENT and NON-PERSISTENT delivery modes for both topic and queue. In addition to these modes, you can use Tibjms.RELAIBLE_DELIVERY mode from TIBCO Enterprise Message Service.
PERSISTENT and NON-PERSISTENT delivery requires the server to return a system message to the client application to ensure proper handling of messages. Using Tibjms,RELAIBLE_DELIVERY as the JMS Delivery Mode precludes the TIBCO Enterprise Message Service server from sending this system message.
In RELAIBLE_DELIVERY mode, the client application doesn’t wait for this system message-indeed, the server doesn’t send it. Reliable mode decreases the volume of message traffic, allowing better usage of system resources and higher message rates.
Message Priority The JMS specification includes a message header field in
which senders can set the priority of a message, as a value in the range[0,9].EMS does support message priority.
When the EMS server has several messages ready to deliver to a consumer client, and must select among them, then it delivers messages with higher priority before those with lower priority.
However, priority ordering applies only when the server has a backlog of deliverable messages for a consumer. In contrast, when the server rarelyhas only one message at at time to deliver to a consumer, then the priority ordering feature will not to be apparent.
Fault Tolerance
You can configure TIBCO Enterprise Message Service servers as primary and backup servers to provide fault tolerance for your environment.
The primary and backup servers act as a pair, with the primary server accepting client connections and performing the work of handling messages, and the secondary server acting as a backup incase of failure. When the active server fails, the backup server assumes operation and becomes the primary active server.
Routing
TIBCO Enterprise Message Service provides the ability for servers to route messages between each other.
Topic messages can be routed across multiple hops,provided there are no cycles.
Queue messages can travel almost one hop to any other server from the server that owns the queue.
SSLTIBCO Enterprise Message Service supports SSL.SSL is
supported between the following components:
Between an EMS Java client and the TIBCO Enterprise Message Service server.
Between an EMS C or C# client and the TIBCO Enterprise Message Service server.
Between the administration tool and the TIBCO Enterprise Message Service server.
Between routed servers & fault_tolerant servers.
Integrating With Third Party Products
TIBCO Enterprise Message Service allows you to work with third-party naming/directory service products or with third-party application servers.
Transaction SupportTransaction Support
TIBCO Enterprise Message Service can integrate with Java TIBCO Enterprise Message Service can integrate with Java Transaction API (JTA) complaint transaction managers.Transaction API (JTA) complaint transaction managers.
TIBCO Enterprise Message Service implements all interfaces TIBCO Enterprise Message Service implements all interfaces necessary to be JTA complaint.necessary to be JTA complaint.
Static Queues And Topics
Destinations for messages can be either Topics or Queues. A destination can be created statistically in the server configuration files, or dynamically by a client application.
Configuration information for static queues and topics is stored in configuration files for the TIBCO Enterprise Message server. To manage static destinations, you can edit the configuration files using a text editor, you can use the administration tool, or you can use the administration APIs
Static queues and topics are administered by the server. Clients retrieve the destination using JNDI.
For example, the following code retrieves the initial context using the JNDI properties specified by env, then looks up a Topic named My Topic.
Dynamic queues and topics are created on-the-fly by applications using QueueSession.createQueue() and TopicSession.createTopic().
Dynamic queues and topics do not appear in the configurations files, and exist as long as there are messages or consumers on destination. A client cannot use JNDI to lookup dynamic queues and topics.
When you use the show queues or show topics command in the administration tool, you see both static and dynamic topics and queues. The dynamic topics and queues have an asterisk(*) in front of their name in the list of topics or queues.
Dynamic queues and topics inherit properties from their respective parents. When shown by the administration tool, properties of a queue or topic may have an asterisk(*) character in front of its name. This means that this property was inherited from the parent queue or topic and can’t be changed.
Destination BridgesYou can create server-based bridges between destinations. This allows all messages delivered to one destination to also be delivered to the bridged destination.
You can bridge between different destination types, between the same destination type, or to more than one destination.
For example, you can create a bridge between a topic and a queue or from topic to another topic.
Properties for topic and queues
Property Topic QueueFailsafe yes yesSecure yes yesMax byte yes yesGlobal yes yesSender name yes yesSender name enforced yes yes Flow control yes yesTrace yes yesImport yes yesExport yes noMax redelivery no yes Excuse no yesPrefect no yesExpiration yes yes
Starting the Administration Tool The administration tool is located in your<installation _ path>/bin
directory and is a stand-alone executable named tibemsadmin on UNIX and tibemsadmin.exe on windows platforms.
Type tibemsadmin – help to display information about tibemsadmin startup parameters. All tibemsadmin parameters are optional.
When you First Start tibemsadmin The administration tool has a default user with the name
admin.This is the default user for logging in to the administration tool.
To protect access to the server configuration, you should assign a password to the user admin .
To assign a password to admin: Log in and connect to the administration tool.
Change the password by entering: Set password by admin<password>
When you restart the admin tool and type connect, the admin tool now requires your password before connecting to the server.
UNIT 8
TIB/Hawk
Traditional SystemsManagement
Traditional SystemsManagement
Large, dedicated central server withHeavy reliance on polling
high network and system utilizationtraps with ptp connectivity
n-tier client-server hierarchical structureNot designed for managing distributed applicationsGenerally inflexible
Extremely complexHigh cost of ownership
Event DrivenSystem Management
Distributed, autonomous,rule-based smart agentsPurely alert-based, no polling
No central consolelow network and system utilization
Powerful and scalable for global monitoring ofmission critical distributed applications.
Fault tolerance through location independence.
Event DrivenSystem Management
Event DrivenSystem Management
TIB/Hawk agents are distributed, autonomous, smart softwareprocesses that monitor distributed systems and applications activity.
Agents are distributed because each agent resides on one computer and typically is responsible for all monitoring on that computer.Instead of being concentrated in one central console, monitoring activity is spread over the entire network.
There is no network polling and no centralized decision intelligence.
Event DrivenSystem Management
Agents are autonomous because they operate independently of the TIB/Hawk Display program and are usually active whenever the operating system they monitor is active.
Agents are smart because they automate monitoring tasks using sets of rules that hold your management and automation logic.
Monitoring Evolution
Monitoring Evolution
Monitoring network hardware (routers, hubs, WAN connections, etc.). Systems administrators have many choices for monitoring the physical connections that make up a network.
Monitoring distributed operating system services. There are fewer tools for monitoring network operating systems than for network hardware.
Monitoring distributed applications. There are even fewer tools for monitoring the activities of distributed applications on a network.
Basic Architecture
Basic Components
The Agent
TIB/Hawk Agents are•Java processes that runs on every monitored and managed node.
•AutonomousEach agent can be instructed to collect and monitor
data that is totally disparate from the activity of another.Fault-tolerant in that the actions performed by the
agents are completely independent of each other.so in the event of network catastrophe, agents can
continue to locally monitor data and take action.
Microagents
Microagents are•The Agent’s interfaces to the monitored and managed objects.•Support methods that an Agent can invoke for collecting information or taking action.
Microagents range from•application oriented to.•operation system oriented to.•Generic.
Microagents
•Applications that incorporate the Application Management Interface (AMI) dynamically appear as microagents to the Agent.
All TIB/Adapter SDK built applications automatically have microagents support.
• RuleBaseEngine, Logfile and SysInfo built-in to the Agent
Hawk MicroAgent
TIB/Hawk MicroAgent (HMA) areC/C++ processes that runs with every AgentOperating System specific microagents
The HMA processesCommunicate with the Agent using theApplication Management ProtocolCollect data as instructedTake action on behalf of Agent
Hawk Event Service
Event Services utilizes the Console API
•Subscribes to all Hawk EventsHeartbeatsLost HeartbeatsAlerts
•Provides external notification for Agents with lost heartbeats.
•Runs anywhere on the network.
The Display
The Display provides for
Easy viewing of large environments.
Unique and customizable Container Icon descriptions convey added information.
Various viewsAgentCanvasRulebaseRepository
The Display
•The Display utilizes the Console APISubscribes to all Hawk Events
HeartbeatsLost HeartbeatsAlerts
•Console APIManipulates
Agents Rulebases Network Query/Network Action
RuleBase
Rulebase
•Is a collection of rules organized to monitor parameters to proactively detect problems.
•Controls the monitoring conducted by the Agent Telling the Agent the conditions to monitor.How often to monitor them.What constitutes a problem.What actions to take when a problem is determined.
RuleBase
The behavior of the agent is determined by the RuleBases that it utilizes.
Any number of RuleBases can be assigned to an agent.
RuleBases are created and distributed using the TIB/Hawk display.