Professional Documents
Culture Documents
Tibco - Study - Material
Tibco - Study - Material
Types of Integration
Data Level
Method Level
The Middleware
A B
A B
F C F Middleware C
E D
E D
Middleware – Advantages
Organizes Integration
Hides complexities of the source and target systems
Eases the maintenance and accommodates change seamlessly
Creates a common communication protocol
Middleware – Components
Message
o A unit of data, which may or may not contain header or additional
information
o Messages usually have a structure (a schema) and content (data)
Message Queue
o Where the message is stored/persisted for a certain amount of time
(Ideally till the subscriber receives it)
Publisher
o Publishes the message from an application
o Usually done with the help of the application’s API
Publisher
Database
Application Publisher
Caller
API
Subscriber
o Subscribes the message and sends it to the application using API or
to the database
Subscriber
Database
Middleware – Features
Publisher - Subscriber
Publisher Subscriber
Request – Reply
Addressing Mode
o Unicast
o Multicast
o Broadcast
Unicast
Publishes
Subscribes
Multicast
Publisher Subscribes
Publishes
Subscribers
Broadcast
Subscribers
Publisher
Publishe
s
Middleware – Types of Models
o Bus Model
o Hub-Spoke Model
o Multi-Hub Model
Hub-Spoke Model
App 1 App 2
Is a Centralized configuration
The Hub acts like a server
Hub- All messages flow through the hub
Spoke All messages are queued in the server
Communication Protocol is Publisher-to-
App 3 App 4 Server & Server-to-Subscriber
E.g.: WebMethods
Bus Model
App 2 App 3
App 1 Decentralized Architecture
Network bus acts as the message carrier
Truly Distributed Middleware
B Communication pattern is peer-to-peer
u Messages are queued by Publishers
s E.g.: TIBCO
App 4 App 5
Multi-Hub Model
App
2
App App Multiple Hubs are linked together
1 5 Load Sharing
Hu Provide Fail-safe service
b Complex to configure and maintain
Hu
b
Hu
b App
App
6
3
App
4
Messaging Standards
The messaging standards are used by EAI and B2B integration. In fact, it
is quite predominant in B2B integrations
Following are some of the widely used standards
Summary
Components of BW
Supported Elements
• Messaging
• Adapters
• Business Process Modeling
• Schema and Data Mapping
• Deployment Configuration and Management
• Run-Time Management and Monitoring
Messaging
Adapter Features
Other Components
Systems management.
Tracing.
BW example
Admin Server
Enforce security for the domain. TIBCO Business Works supports both
authentication and authorization of users that want view access or full
access to the run-time components.
Manage storage for server-based projects.
Manage registration, that is, add deployed projects and machines to a
domain.
Send appropriate information to each machine's run-time agent when a
project is deployed, and pick up alerts sent by those run-time agents.
TRA
Supplies the runtime environment, that is, all shared libraries including
third-party libraries.
Supplies an agent that is running in the background on each machine.
The agent is responsible for starting and stopping processes that run on a
machine according to the deployment information.
The agent monitors the machine. That information is then visible via
TIBCO Administrator.
BW interactions
Advantages of BW
Introduction:
Windows
UNIX
Note: <TIBCO_HOME> refers to the path where TIBCO products have been
installed
Start up options
Project Tab
New empty project – to create a
project from scratch
Delete Project
Administration Tab
Main Window
Designer Panels
Project Panel Design Panel
Projects
Resources
Project Structure
Palettes
Each TIBCO application you install adds one or more palettes to TIBCO
Designer during installation
Palettes provide access to resources
Drag-and-drop resources from the palette panel into the design panel to
add them to your project
TIBCO Designer contains a number of native palettes
Global Variables
Provide an easy way to set default values for use throughout the project
Global Variables
To use the global variable in the fields of a resource, enter the variable
name surrounded by %% on both sides
Most projects define some standard variables, but you may define any
variables you need.
AESchema
TIBCO applications use schema data to describe the data structure used
by the application.
Applications use schema to describe the data a particular subscriber or
publisher receives from or publishes to TIBCO Messaging.
TIBCO Designer is used to define schema data for a project.
The schema can then be used by all resources in the project.
Validating projects
Double-click the adapter instance in the project tree panel. The two high
level folders visible are:
o Adapter Services
o Advanced
The next slide shows the adapter instance which has been dragged and
dropped
Adapter Instance
Tabs for Adapter Instance
o Configuration
Provide the name of adapter instance
Associate Message Filters if any
o Logging
To specify the types of messages (info, debug, warning,
error) to be logged
To customize the Log file name
To Log to standard I/O
o Startup
To provide startup banner
State at startup
o Monitoring
To customize the Micro agents
o Other tabs include Connection, Adapter Services etc
Configuring Services
Advanced Folder
Contains resources that are created by TIBCO Designer while the adapter
is configured
For example, each time a service is added to an adapter, a session and
endpoint are created
Other Common resources include Advisories, Log Sinks, Timers,
Transaction Controls and Metadata URLs.
The components of RV
Maintainable
Scalable
Longer useful lifetimes
Portable
TIB/Rendezvous Daemon
Publish/Subscribe Interactions
Securities data feed handlers publish the latest stock prices to hundreds of
traders on a trading floor simultaneously.
Materials movement systems distribute data to various materials handlers,
controllers and tracking systems on a factory floor.
Inventory levels flow continuously to accounting, purchasing, marketing
and other departments in a retail store.
A bug tracking database immediately sends bug reports and updates to all
personnel interested in a particular project.
A master database publishes updates to a set of internet mirrors.
Request/Reply Interactions
Request/Reply Interactions(examples)
Points to remember
A producer does not send data until a consumer makes a request.
Each program sends its message to a specific inbox within the other
program.
The requesting consumer listens until it receives the reply, and then stops
listening
Subject Names
Each message has a Subject Name.
A subject name is a character string that specifies the destination(s) of a
message.
Subject Name can also describe the message content.
Sending and receiving applications must agree upon a subject name
Subject-based addressing technology enables anonymous messaging
have the freedom (and the responsibility) to establish conventions for
using subject names
Subject names consist of one or more elements separated by periods.
The elements can be used to implement a subject name hierarchy that
reflects the structure of information in an application system.
Valid Names
NEWS.LOCAL.POLITICS.CITY_COUNCIL
NEWS.NATIONAL.ARTS.MOVIES.REVIEWS
CHAT.MRKTG.NEW_PRODUCTS
CHAT.DEVELOPMENT.BIG_PROJECT.DESIGN
News.Sports.Baseball
finance
This.long.subject_name.is.valid.even.though.quite.uninformative
Invalid Names
News..Natural_Disasters.Flood (null element)
WRONG. (null element)
.TRIPLE.WRONG.. (three null elements)
Wildcards
* - One element
> - Any number of elements
Listening on wildcards is okay (take care)
Never publish on wildcards
Reserved elements
Quality of Service(Transport)
Reliable Messaging
Certified Messaging
Distributed Queue
Reliable Messaging
Certified Messaging
FEATURES
– Certainty – Maintains Order
– Ledger Recording
– Graceful Degradation – From certified to reliable
Limitation
Not Recommended for High Data rates.
Distributed Queue
Transports
Network
Fields in Rv Message
Enterprise Java Beans can use JMS for message passing among beans.
Why JMS ?
Client
Types of Messaging
Point To Point
Uses queues
the messages are in a queue, waiting to be retrieved.
almost parallel to e-mailing
Publish / Subscribe
Uses topics
Message subscribers receive messages only when
they are active, and they have subscribed to the
topic on which the message was sent. Therefore,
there is a time dependency.
Can be avoided if durable subscribers are used.
(TopicSubscriber subscriber =
session.createDurableSubscriber(topic,durableName);)
Delivery mode only covers the transport of the message to its destination.
Administration Tool
Connection
Factory
creates
Connection
Receives
from
Destinatio
Destination Message
n
The following describes the procedure for duplicate detection by the process
engine:
2. Activities in the process instance are executed until the first Checkpoint
activity is reached. The Checkpoint activity has a value specified for the
duplicateKey input element.
3. The process engine checks the current list of duplicateKey values for a
matching value.
a. If no process instance has stored the given duplicateKey value, the
process engine stores the value and completes the Checkpoint
activity.
Q:What are the deployment tools available for command line scripting?
Ans: buildear and AppManage. Buildear can build an ear file . You need to specify
path to enterprise archive in designer, path to designer repository and path to the
new archive to be created. AppManage can produce a deployment config file and
can be used to upload the ear file and config file into the administrator server. It
can be used to do various things like deploying on multiple servers, create config
files for already deployed components which can be used to deploy them on other
environments, delete a component from server etc.
Q:What are the two ways of ensuring that process instances run
sequentially in the order of their creation?
Ans: All process starters allow you to specify a sequencing key. All the process
instances with the same value for this key will be executed in sequence, however
any processes with different values for this key can still execute concurrently.
Second way of ensuring this is that administrator allows you to configure how
many process instances can live in memory and maximum number of
concurrently running processes. By setting these configurations also you can
ensure the same. However first message is preferable, second should be used
only when you cannot change the code or you have to do it at deployment time.
Q: What are the locally defined and globally defined schema elements
when defining a schema?
Sol: XML Schema elements can be declared locally or globally. Local elements
exist within the context of their parent element only. Accordingly, you could have
a local element named title that appears within a book element and another local
element named title that appears within a mortgage element. Global elements
are declared such that they can be referenced within any content model. All
global elements must have unique names.
Q: Name some of the headers in a JMS messages and what are the
headers fields filled by a client (sender/publisher).
Sol: JMSMessageId, JMSReplyTo, JMSCorrelationId, JMSRedelivered,
JMSExpiration, JMSType. There are 10 of them.
Application
Service
ServiceInstance
By clicking on ‘application’, one can change the global variable values.
By clicking on ‘Service’, one can configure the monitoring options. You can
add the service to more machines in the administrator domain.
By clicking on ‘ServiceInstance’, one can configure logging, whether to run
as an instance or as a windows service and shutdown options. You can set
various jvm options like classpath, memory etc.
Having mentioned that it is clear that ‘Max Session’ field is meaning full only for
those activities which receive or subscribe messages. So this field will have no
meaning for ‘JMS Queue Requestor’, ‘JMS Queue Sender’, ‘JMS Topic Publisher’,
‘Reply to JMS Message’ activities.
In case of ‘Get JMS Queue Message’, ‘Wait for JMS Queue Message’ and ‘Wait for
JMS Topic Message’, they are supposed to get only one message at a time so
there is no ‘Max Session’ field in them as this would be 1 by default.
However in case ‘Wait for JMS Topic Message’ there are only three of them:
1) Auto
2) Dups Ok
3) Tibco EMS Explicit
Ans:
Approach 2 You can place a Catch activity in your process definition to deal
with unhandled exceptions. The Catch activity allows you to create a track
that handles the exception and proceeds to the end of the current scope;
either the end of the process definition or the end of a group. You can use the
Catch activity as an alternative to individually handling exceptions for each
activity, or you can use error transitions to handle some exceptions and the
Catch activity to handle others. In a process you can have more than one
catch activity, but each one of them should catch a different exception. You
can define catch activity which will catch all exceptions. So if there is an
exception which is not specifically handled by any of the catch activity then
this catch activity will catch rest of the exceptions.
Rethrow activtity allows you to throw the exception currently being handled
by the catch path. Transitions cannot be drawn to a catch activity.
Any activity can be configured inside a transaction group but only activities
belonging to above group can actually take part in a transaction.
With http you can work through the firewall etc (not 100% sure of this particular
thing).
Q: What are advantage and disadvantages of using Local application
data?
Ans: Advantages: applications can run independent of administrator server so if
server crashes there is no impact on the application. Bcoz local service instance
uses no memory, this increases the performance of administrator server.
Disadvantages are: main disadvantage is synchronization. e.g. if while domain
update time, a subset of a machine in the domain are down and are later started,
they may start the components with old configurations. This can result in severe
problems. Another is security as these local repos may contain information like
username/password. Even though they are weakly encrypted, very good network
security measures should be taken.
2.If you have installed a particular version of TIBCO software e.g. TIBCO BW X.Y.Z, What
are X, Y and Z number stands for?
Integration can be at different application layers:
X:Patch
Y:Major
Z:Minor
4.What are the resources that gets included in the EAR file, created by the TIBCO
Designer?
An EAR file can contain local project resources, LibraryBuilder resources, and files as
specified in AliasLibrary resources. In addition, the TIBCO Designer classpath may include
references to other files that are included in the EAR file.
5.What are the revision control system options available in TIBCO designer?
← File sharing
← VSS
← Perforce
← XML Canon
← ClearCase
← iPlanet
← CVS
← PVCS
6.What are the different modes of service invocation?
Services can be invoked in several ways.
← A one-way operation is executed once and does not wait for a response.
← A request-response operation is executed once and waits for one response. In a
request-response service, communication flows in both directions. The complete
interaction consists of two point-to-point messages—a request and a response. The
interaction is only considered complete after the response has arrived.
← Publication (notification) means an operation sends information on an as-needed
basis, potentially multiple times.
← Subscription means incoming information is processed on an as-needed basis,
potentially multiple times.
7.What is vcrepo.dat?
TIBCO Designer creates a file named vcrepo.dat in the project root directory when you first
save the project. This file is used to store properties such as display name, TIBCO
Rendezvous encoding, and description. This file can be used for identification in place of
the project root directory and can be used as the repository locator string (repoUrl).
to participate in transactions.
to participate in transactions.
Note:For JMS activities and ActiveEnterprise Adapter activities, request/reply operations
cannot participate in an XA transaction. Also, EJB activities cannot participate in an XA
Transaction group.
16.What are the mandatory configuration parameters for FTP Connection & FTP with
firewall ?
The mandatory configuration parameters for FTP Connection
← FTP host
← Port
← Username & Password>
If Firewall is enabled in addition the proxy host and port are required.
23.Explain the process configuration parameters - Max Jobs, Flow Limit & Activation
Limit ?
← Max Jobs :
Max Jobs specifies the number of process instances that are kept in memmory.
Once this limit is reached newly created process instances (subject to flow limit)
are paged out to disk.0 specifies no limit and is the default.
← Flow Limit :
Flow Limit specifies the maximum number of running process instances that are
spawned before the process starter is suspended ie it enters a FLOW_CONTROLLED
state and does not accept new events. This can be used to control the number of
process instances running simultaneously and when the protocol generating the
event can store the event till it is received, like email servers, JMS, RV etc. 0
specifies no limit and is the default.
← Activation Limit :
Activation limit flag specifies that once a process instance is loaded it must be
placed in memmory till it completes execution. By default it is enabled.
24.What are the options for configuring storage for process engine's checkpoint
repository ?
The options for configuring storage for process engine's checkpoint repository are:
← Local File
← Database. Fault tolerant engines can recover from a checkpoint only when database
is used.
31.What activity can be used to set the value of a 'User defined process variable' ?
The 'Assign' activity can be used to set the value of a 'User defined process variable'.
32.Which are the two process variables available to all activities with inputs ?
← $_globalVariables
← $_processContext
33.Which mechanism can be used to pass data between a process instance and a called
sub process other than mapping from/to the callee's input/output ?
This can be accomplished using job shared variables, unless in the call process activity the
'Spawn' flag is enabled in which case the called sub process is a new job and hence gets a
fresh copy of the job shared variable initialized as per its configuration. A shared variable
can overcome this limitation as it's scope is not limited to one job.
34.What are the three scenarios where BW engine has to be configured with database
persistence instead of Local File ?
The three scenarios are:
← Shared Variables across BW engines.
← Locking across groups in multiple BW engines.
← Wait Notify across BW engines.
35.If you want a group to be executed if there is some unhandled error but subject to
some max number of iterations which group do you use ?
We can use Repeat on Error until true
38.Give an example where graceful migration of service from one machine to another is
not possible.
HTTP Receiver. In this case the receiver on new machine starts listening on the same port,
but you need to redirect requests from the old machine to the new one.
39.What are the types of adapter services ?
Types of adapter services are :
← Subscriber Service
← Publisher Service
← Request-Response Service
← Request-Response Invocation Service
40.If the business process needs to invoke another web service which resource do you
use ?
SOAP request reply activity. If the business process needs to be exposed as SOAP service
use SOAP Event Source in conjunction with SOAP Send Reply or SOAP Send Fault.
Now the WSDL file for a SOAP service can be retreived using the http request
http://<host>:<port>/<path>/<resourceName>?wsdl
where 'path' is the folder path to the SOAP Event Source process and 'resourceName' is the
name of the process
Example : http://purch:8877/Purchasing/GetPurchaseOrder?wsdl
49.What are the cases where business process cant proceed correctly subsequent to
restart from a checkpoint ?
← Sending HTTP response, confirming an email/jms message etc. This is because the
confirmation or sending HTTP response has to done in the same session. When
engine crashes these sessions are closed at their socket level. In such cases send
response/confirm before checkpoint.
50.Which group do you use to wait for multiple events and proceed with the first to
occur ?
A 'Pick First Group'.
Important Points:----------------------
Members of superuser can only set other users in the superuser list and it
is done in the ‘security’ panel.
Permissions for the repositories in the DATA ACCESS are only visible and
hence can be set by the superuser users.
A Super User role member has read, write, and administer access to
TIBCO Administrator consoles, applications and data.
When you upgrade, you must redeploy the application.
When you redeploy, you can choose options like ‘stop running services
before deployment’, ‘Kill services that have not stopped’ (this is a timeout
setting), ‘Start successfully deployed services’ and ‘Forced deployment of
all services’.
Activation limit field (in advance tab of a service (process) specifies that
once a process is loaded into the memory, it should not be paged out until
it is completed. This option is useful if you wish to specify sequential
execution of process instances.
Must remember that there are two kinds of data. Application data which is
in the form a repository which can be stored either on the server or locally
on the same machine as application/process engine etc. It is
recommended that application data is stored in the form of files regard
less of local or server based. Other kind of data is domain data. It is
recommended that domain data should be stored in database. This
improves the performance.
While creating tibco administrator domain, one can specify the transport
that will be used for inter-domain communication. It can be either RV or
EMS. If it is choose as RV, you can run multiple administrators in a load
balanced mode. One will act as primary and others will act as secondary
servers. One host cannot host both primary as well as secondary servers.
If it is EMS, it does not matter if you run more than one servers as only
deployment option is local so components run independent of admin
servers.
An administration domain stores domain information in a file repository or
database repository in case transport is RV, however if transport used for
inter-domain communication is EMS, data storage can only be in a
database. When using a file-based repository with a primary and
secondary administration server, performance will be slower than when
using a database to store administration domain data.
Pick First Group : Only wait for , request reply, timer (activites with a
pause button) can have valid transition from start of the group to
activitiy.
Global variable valid types are string, integer, boolean and password.
All jdbc activities that use the same connection take part in a transaction if
configured inside a JDBC transaction. If a error happened in a jdbc or non-
jdbc (e.g. writefile activity) activity inside the transaction group,
transaction will be rolled back.
InstanceID and AppName are two global variables which are not defined
intentionally and you cannot see them in Global Variables list in designer
or administrator.
Q: If tibco infra in a company is spread over more than one subnet, how would
administrator monitors(or handles) machines in these subnets? (not sure of the
exact subnet).
Q: What is a durable subscriber and what is fail-safe. How are these specified and
what is the use of them.