|
TIBCO OverviewThis reorganizes TIBCO buzzwords and concepts without the sales fluff in a way that's usable for people actually working with the stuff.
| Topics this page:
|
|
TIBCO Products
TIBCO is a leader offering products and services in the The brilliance of TIBCO is in its adapters, which enable database-centric applications to become message-oriented participants in the new flexible SOA world where a wide variety of applications all work together by passing various types of messages to each other through a common "Enterprise Service Bus (ESB)". This approach is the basis for the company's name, an acronymn for The Information Bus company, pronounced "tib-co". TIBCO offers a range of products to perform messaging:
TIBCO offers adapters to connect with various applications, databases, and network technologies. Business Optimization (BO) ??? |
TIBCO competes in the SOA market against a pantheon of giants and nimble start-ups: |
TIBCO CorporationThe company was acquired by London-listed financial information group Reuters in 1994, who then spun it out to list on Nasdaq in 1999 under symbol TIBX on the NASDAQ stock exchange. The company was founded in 1985 by Vivek Ranadivé, who is still its Chairman and CEO. He wrote New York Times business bestseller The Power of Now: How Winning Companies Sense and Respond to Change Using Real-time Technology (McGraw-Hill, 1999), a ("business-focused") treatise on the use of publish-subscribe technology to support event-driven real-time applications. The company is based in California's silicon valley (3303 Hillview Avenue, Palo Alto, CA 94304 Phone: 650.846-1000) The company's last conference, TUCON2007, was held June, 2007 in San Francisco. The next one is ???
Tom Laffey - EVP of Products and Technology
| [ Google | Yahoo | MSN | MarketWatch | Quote | CNN | Reuters | StreetInsider ] |
TIBCO Executable Components
Remote untrusted Java applets and other client applications connect and communite with the Rendezvous agent (rva) which in turn connects to the Rendezvous daemon (rvd). |
TIBCO ArchitectureTIBCO uses industry-standard protocols and formats to provide the underlying "plumbing" that connects disparate 3rd party vendors
What is the difference between a service, a process, and an instance ??? Agents (services) include process instances and adapter instances. The TRA executes TIBCO scripts, sends alerts, and performs message recovery. TRAs must to be installed and initiated before TIBCO BusinessWorks process engine(s) which send commands to them (during run-time) to process activities (units of work). TIBCO uses "Adapters" to interact with application services by listening for and receives messages. Adapter and process logic (plus deployment configuration options) are specified in an enterprise archive (EAR) project file created using the TIBCO Designer GUI. TIBCO Admin. ServerThe EAR file is deployed by the TIBCO Administrator when manually specified by a system administrator (person) using the web-based Administrator GUI hosted on the Administration Server.The server's Application Management duties also include monitoring the CPU and disk space used by apps and starting and stopping apps. The server's Resource Mangement duties include sending Alerts when process or disk usage exceeds thresholds. The server's User Mangement duties include authenticating users and connecting them by role to ACLs (Access Control Lists), plus runtime security for deployed applications. DomainsEach Administrator manages EAR files, user ACL, monitoring (inventory of products, CPU, disk usage, etc.), and starts and stops process engines and adapters within its own TIBCO Administration Domain. Each domain has its own subnet and data store.The Domain Utility is used to create domains and to join a cluster of logical machines to an administration domain. This is done by executing \tibco\tra\5.4\template\domainutility\cmdline\CreateDomain.xml Each administration domain can have a master (primary) and a secondary server. External web services are outside admin domains. |
TIBCO Designer WalthroughProjects are created within the TIBCO Designer graphical user interface (GUI) application. Name a project using your system's application initials. When a new project is created in local mode, it is stored in default folder C:\Tibco\designer\5.4\... containing file vcrepo.dat and folders AESchemas and defaultVars. The "Global Variables" vertical tab displays files with a .substvar file extension within the defaultVars folder. Create file folders to separate assets needed at different points during the development cycle: Build, Deploy, MyApp (custom processes), Utilities already coded for use by all apps.
Within the Palette panel (on the lower left): To avoid scrolling, click the Switch Palette Mode button on the menu bar or press Ctrl-M on the keyboard. If you have memorized what the icons stand for, set Palette Options Hide Labels. Drag and drop the "Folder" resource icon onto the Design panel (on the upper right). Within the Configuration panel (on the lower right) displying information (properties) for the selected resource, change the name. Pull down Resources > Add Resources > "XML Tools" and select "Instance". Change the name of the Instance to "build". Close the project and notice (within Windows Explorer opened to your project folder) that internally, these user actions cause (xml, jar, or schema) files to be created in the project folder. Reopen the project again. The View menu item controls the designer panel on the upper right. I usually stay with the "Details" view because it has the most information. When selected, the upper right panel provides UP and DOWN arrows to rearrange the order of the fields.
TIBCO BusinessWorks is installed on top of Designer to add resources and adapters for ActiveEnterprise (AE). "AESchemas" (a default library) is automatically included in the project tree and thus also appears in the design panel. Process Definitions, SharedConnections, SharedResources will also appear in the tree. |
TIBCO ProcessesA process is defined by the Workflow Management Coalition (WfMC) as: The representation of a business process in a form that supports automated manipulation, such as modeling, or enactment by a workflow [or business] management system. The process definition consists of a network of activities and their relationships, criteria to indicate the start and termination of the process, and information about the individual activities, such as participants, associated IT applications, and data, etc. Each service is defined with a process flow. Workflows are represented by transition lines sequencing activities (represented by icons) performed by "resources" listed in the Designer Palette tab. A BusinessWorks process definition (below) is classified as a Directed Acyclic Graph (DAG) showing transitions to activities. It's not cyclic (acyclic) because transitions to a previously visited activity is not possible. In other words, it's not like a regular programming language. TIBCO's Designer GUI define process and heirarchy models using TIBCO's own symbol icons, not UML notation or BPML (Business Process Modeling Language) symbols (an industry-standard supported by TIBCO's Business Studio product). TIBCO Designer does not import or export BPEL (Business Process Exchange Language) files with other competing workflow design products. Process definition files are named with a ".par" file suffix. Service definition files are named with a ".arr" file suffix. Being event-driven, developers have no control over the order of transitions ??? Standard XPath expression syntax is used to define conditional mapping of process data to input. Standard Extensible Stylesheet Language Transformation (XSLT) coding is used internally to represent the input schema for an activity. But TIBCO doesn't make it easy to see. To see the actual code, right-click on a node in the input schema and from the popup menu click copy (to the clipboard). Then open a blank text document and Paste the XSLT code. Runtime variables and monitoring and Checkpointing behavior ... Shared variables to count the number of times a process has been repeated. |
Templates
Organizations use templates to standardize applications design across the enterprise. When "Select a Template" is chosen, the default folder is a ".TIBCO/templates" folder within the Documents and Settings folder for the user. Use folders to group (organize) services used by an application function: The LibraryBuilder resource creates shareable resource files for design-time use by others. Colors, such as "-16777216" and "-6684673" |
Adapters
Deploying an adapter includes importing an EAR file, assigning adapter services to the machines in the administration domain, and specifying startup options for each process engine and adapter service. Monitoring options (stored as Hawk rulebases) also need to be specified for each machine. There is a separate Log file setting for each adapter instance. An Adapter client service acts as a client in a request-response interaction. An Adapter server service acts as a server in a request-response interaction. In the example below:
("Invoke an Adapter Request-Response Service" activity).
A TIBCO Publication (Notification) service adapter is used to publish (send out) information,
such as the "Sbl_Publish"
TIBCO BusinessWorks provides the following activities for use with adapters: 1 Publish to Adapter — Publishes data from the process to an adapter, which subscribes to data coming from the process and passes the data to the target application. 2 Adapter Subscriber — Subscribes to incoming data published by the adapter. 3 Invoke an Adapter Request - Response Service—Communicates (as a client) with an adapter request-response service. 4 Adapter Request - Response Server`—`Starts a process based on the receipt of a request from an adapter. 5 Respond to Adapter Request—Sends a response to an adapter for a previously received request. 6 Wait for Adapter Message — Waits for the receipt of a message from the publication service of the specified adapter. 7 Wait for Adapter Request — Waits for the receipt of a request from a request-response invocation service.
If the palette cannot directly communicate with a vendor app to obtain metadata, a Design-Time Adapter (DTA) can be used to make use of vendor client libraries to communicate with that vendor app. The process starter "Receive" resource is accessed via a "JMS Queue Receiver" activity. The "ShippingSchedule" resource is accessed via a "SOAP Request Reploy" activity. It retrieves information about the shipping schedule from the Shipping web site and adds shipping info. to the order. If it can't enter the order into the Siebel system right away of if shipping is delayed, it sends an email to the customer. A "start" activity is called explicitly from another process. Complex business processes are structure with a main process and several subprocesses. This makes processes easier to understand and debug, and reuse. Other adapters include: |
Palettes of Activities for each ResourceResources are grouped with palettes (Activities, Adapters, General, Other), listed in alpha order as in the Palette menu, but with categories as shown in the Palette Browser: In the "?" column below: A "x" indicates that the item appears in the Palette menu. A "-" indicates that the item DOES NOT appear in the Palette menu.
The jar files for these are stored in directory $TIBCO_HOME/bw/5.3/lib/palettes. "Java Code" is the name of General Purpose custom activities written in Java. Custom adapters can be created by programmers referencing the TIBCO Adapter SDK suite. Its documentation:
User’s Guide Release Notes Examples guide TIBCO Adapter SDK Programmer’s Guide TIBCO Adapter SDK Message Codes TIBCO Adapter SDK Release Notes TIBCO Adapter SDK C++ API Reference (HTML only) TIBCO Adapter SDK Java API Reference (HTML only) TIBCO Designer Palette Reference Guide (280 pages) TIBCO BusinessWorks Palette Reference describes each of the palettes available in TIBCO BusinessWorks. |
EMS (Enterprise Message Service)
EMS implements the ConnectionConsumer interface of the Java Messaging Service JMS 1.1 specification for application servers followed only by JBoss. JNDI names QueueConnectionFactory and TopicConnectionFactory are mapped to the JBoss ConnectionFactory in file &JBOSS_DEPLOY%\jms\jbossmq-service.xml. For other servers (such as Borland), EMS tibjmsapps.jar (com\tibco\tibjms\appserver) has JBossAdapter.class, TibjmsService.class, and TibjmsServiceBean.class. JBoss configuration files :
%JBOSS_CONF%\boss-service.xml has classpath to codebase archive tibjms.jar SSL also requires jcert.jar, jnet.jar (javax\net), jsse.jar (COM\rsa & com\sun\net\ssl), and tibcrypt.jar (com\tibco\crypto). %JBOSS_CONF%\standardjboss.xml mdb outputMETA-INF\jboss.xml %JBOSS_CLIENT%\jndi.properties specifies java.naming.provider.url=tibjmsnaming://... Other EMS client jars include crimson.jar (org\apache for sax), jaxp.jar (xml parser), jems.jar (javax\jms), jndi.jar, jta-spec1_0_1.jar (javax\transaction\xa), tibjms.jar (com\tibco\tibjms), tibjmsapps.jar (com\tibco\tibjms\admin\hawk), tibrvjms.jar (com\tibco\tibbrv) Point-to-point EMS queues (defined in file queues.conf) are used to import messages from producers in external systems. Queues have defined properties maxmsgs, overflowPolicy, maxRedelivery, exclusive, prefetch What are their performance impact? Publish-subscrbe (broadcasted) EMS topics are used to import and export messages to/from external systems via TIBCO Rendezvous. RVDQ is for load balancing RVFT is for fault tolerance. RVCM (Rendezvous Certified Messaging) Listeners are set in file tibrvcm.conf. tibrvcm transports can store information about subjects in a ledger file used for recovery. The application should only send a Certified message (CM) once, because TIBCO ensures it is received.
Transports are are set in file transports.conf.
What is the performance impact of Flow Control when message producers send messages much faster than message consumers can receive them. Where to specify that a queue receiver can receive a batch of messages in the background to improve performance. Where to specify fail safe mode that allows messages to be written to disk synchronously to guarantee no messages are ever lost due to server failure. What is the performance impact of guaranteed message delivery (GMD) ? Dynamic queues created on-the-fly by applications do not appear in configuration files which define static queues. These are marked with an asterisk (*). EMS configuration files include: • users • groups • topics • queues • access lists • destination bridges • routes • connection factories • transports • RVCM listeners • durable subscribers EMS fault tolerance is setup as a pair of primary and secondary servers sharing the same state. |
Types of Messaging InteractionWhat is the difference between Activities vs. Services ???
Wait for Adapter Message Wait for Adapter Request request/reply, publish/subscribe publish/reply
|
Transports
The Advanced configuration for a Rendezvous Transport provides RV Type selections: The RVFT protocol is used in RVRD config.
|
Formatting and TransformsBusinessWorks Enterprise Archive |
Preparing for InstallationThis page summarizes and extends information in the TIBCO BusinessWorks Installation Guide. The BW 5.3 installer takes about 80 MB of disk space when done. It takes an additional 50 MB in /tmp (/var/tmp in Solaris & HP-UX) for the installer's own JVM if the installer can't find a 1.4.2 JVM listed in the JAVA_HOME or JDKHOME environment variables. Rather than installing while logged in as a super-user named "root", create a non-root account such as "tibco". useradd tibco passwd tibco Then log in with your own individual user account and sudo to the tibco. Create a \tibco\Media directory to hold install files downloaded from download.tibco.com:
set read write permissions on the whole install tree: chmod 777
|
BW Linux InstallationTo install in text-based Console Mode, add these parameters to the installer executable: ./TIB_bw-simple_5.3.0_platform.bin -is:javaconsole -console Its corresponding Windows installer is: ./TIB_bw-simple_5.3.0_win_x86.exe -is:javaconsole -console Because enterprise installations involve several servers setup about the same way, when installing the first time, create a response file by adding: -options-record /home/tibco/responsefile1.txt Then to install subsequent machines in silent mode using the file: ./TIB_bw-simple_5.3.0_platform.bin -silent -options /home/tibco/responsefile1.txt Save the options file in your version control system.
The installer maintains in the user's home directory
an installation registry with two vpd (Vital Product Database) files:
The TIBCOInstallationHistory.xml file logs all TIBCO products, features, and components installed and uninstalled. So don't mess with it.
|
Windows InstallationWindows installers create these folders:
The default domain name is localdev. |
ConfigurationTIBCO XML Canon requires a license key during installation. Its user profiles, roles, and permissions are independent of system or Windows domain user accounts. They, along with category folders, and life-cycle stages (e.g., Development, etc.) are specified using the TIBCO XML Canon Administrator GUI running off Tomcat web server. XML Canon users can have ADMINISTRATOR or CONNECT capabilities. To enable TIBCO EMA integration with TIBCO BusinessWorks, both TIBCO Hawk and TTIBCO EMA must be enabled with custom engine properties bw.engine.emaEnabled = True and Hawk.enabled = True
|
Ports
|
TuningHow much performance impact is there to use of JMS_TIBCO_COMPRESS ? How much performance impact is there to use of reliable message queue ? Performance tuning Java with secret vm flags notes that tomcat typically has a very large number of short lived objects so setting -XX:NewSize=200m to increase the size of the heap allocated to short lived objects can make a difference. Best Practices for Running TIBCO Rendezvous on Solaris OS 8 recommends creating a Dedicated Processor Set for Rendezvous Daemon (using the psrinfo command), Setting the TCP high and low watermarks, and setting maximum segment size (MSS)-sized packets. Hawk's micro-agent provide business-level statistics such as specific objects being inserted, updated, or deleted in the database. Hawk's AMI (Application Management Interface) routines can be embedded within custom adapters to expose application-specific information by the Hawk micro-agent. |
Deployment EAR SizeEach EAR file contains local resources built by the developer and files specified in the AliasLibrary target listing. Different AliasLibrary files should be specified for each combination of resources so that you only load the files needed by the project. If you are livin' large with lots of resources and get a warning message about size, change the designer.ear.watermark.size=16 megabytes property in the designer.tra file. Also change the heap size. Process Archive.par |
Failover vs. Load BalancingTIBCO applications are "cluster-unaware". They do not exchange data with other cluster objects. TIBCO Administrator does not support parallel groups running concurrently within a cluster of several systems (supported by cluster vendors such as Veritas). Consequently, TIBCO applications support warm failover (which takes a few seconds). This means that additional hardware is used for standby in case of failover, not for load balancing. So servers for failover do not increase capacity. In contrast, additional servers increase capacity if clusters are load balanced. run separate copies hot-hot. The Domain Utility is setup such as a network name or Virtual IP Address is used by external applications to address the cluster group as one logical machine. Entire domains are installed on the local drives of each node. Each cluster group has a hard drive that is shared within the group, but not outside the group. TIBCO BusinessWorks achieves scalability by increasing the number of process engines within a domain. Process engines can be housed in different machines. The number of threads defines the number of process engines. Advisory activities configured in the Advanced folder of the adapter ??? TIBCO EMS sample tibjmsLoadBalancedTopicPublisher connects to the least busy server.
TIBCO Runtime Agent Installing Into a Cluster, which TIBCO defines as a group of machines that work together as a single system to ensure that applications and resources are available at all times.
|
Deploymentsstatic vs dynamic deployment elements (max jobs, memory size, etc) how to manage product state migration domainutilitycmd -cmdFile <install-path>\tibco\tra\5.4\template\domainutility\cmdline\ JoinLogicalMachine.xml \AddSecondaryServer.xml The XML file that defines configuration options is created when a doman is created. |
BusinessWorks Documentation
In the Documentation folder after install:
|
Error MessagesWhen the administration server starts, a message appears which TIBCO wants us to ignore: log4j:WARN No appenders could be found for logger (org.apache.commons.digester.Digester). This is issued from the log4j logging class (with the log4j.properties file is in directory C:\Tibco\bw\5.3\lib) included in the Tomcat web server bundled with TIBCO Administrator. It's ignored because TIBCO Administrator provides its own logging mechanism. (Can't we all get along?) Other messages are noted in the TIBCO BusinessWorks Error Codes document. |
BW Logs
In Designer, under the Logging tab of Generic Adapter configuration, unchecking the Advanced Logging checkbox enables uses to specify the roles and sinks holding logs. Unchecked, Designer by default provides under "LogSinks" "FileSink" (the default Log File) and "stdioSink" (for Standard I/O). The Logging tab controls default roles info, warning, and error messages. |
TIBCO Hawk
Hawk provides facilities for monitoring domain resources. It's demanding on resources, so many organizations don't use it. Define the cluster IP address (such as 10.96.91.0) before adding machines to a TIBCO administratio domain. The BW process engine is instrumented with a TIBCO Hawk microagent (tibemsadmin.hma) that can be used to perform most administrative functions performed by the Administration server. Applications that interface to Hawk include: |
AlertsLocal actions to be taken to alerts are defined using rulebases. Rulebases loaded onto agents belongs to an administration (monitoring) domain administered by a TIBCO Administration Master Server. |
Versioning and Multi-User Revision Control System (RCS)Designer can archive and import all files of a project in a zip file. To ensure that a particular resource configuration or folder can be changed by only one person at a time, files which have been checked-in can be locked.
Unlike XML files in Sun J2EE compliant systems, TIBCO internally uses a proprietary (undocumented) XML schema that may change from version to version. This means that a "diff" between what has been saved by SCM tools (CVS, Subversion, etc.). Deploy on multiple environments throughout the development cycle (such as UnitTest, System Test, Performance Test, UAT, Beta, Staging, Production, etc.) require unique host names, etc.. To diff (identify differences between versions) checked in during a system's evolution, TIBCO provides its XML Canon product as a central repository that enables reuse of XML Schema and vocabularies. XML Canon understands the relationship between the various types of XML documents and uses that understanding to render XML SchemaDOCs. A "schema" defines the classes, scalars (global variables), associations, unions, and sequences within a particular "namespace". "Components" of XML include element, attribute, types, etc. Only schemas, WSDL files and TIBCO BusinessWorks process definition files are analyzed for schema and component level relationships by TIBCO XML Canon. XML Canon prefixes such files with an asterisk. TIBCO Business Studio Version 2 introduced version control using "Business Studio Asset Central". |
Global VariablesEvery new TIBCO project is created with a defaultVars folder containing a defaultVars.substvar file.
|
Testing TIBCOTo switch to production mode, turn on the testConsoleFlag. |
TIBCO Security
The security template is in directory
Given specific security requirements, select appropriate security models Given a set of security requirements, identify potential security options how to grant and manage domain privileges |
TIBCO Consultants
Here is a list of people who say they know TIBCO. I don't know any of them. |
| Your first name: Your family name: Your location (city, country): Your Email address: |
Top of Page
Thank you! |