TIBCO BW Interview Questions

1. What are SOA, EAI and ESB?

SOA: A service-oriented architecture (SOA) is an architectural pattern in computer software design in which application components provide services to other components via a communication protocol, typically over a network. The principles of service-orientation are independent of any vendor, product or technology.

EAI: Enterprise Application Integration (EAI) is an integration framework composed of a collection of technologies and services which form a middleware or “middleware framework” to enable integration of systems and applications across an enterprise.

ESB: An enterprise service bus (ESB) is implementing a communication system between mutually interacting software applications in a service-oriented architecture (SOA).

2. ADB adapter vs JDBC Palette?

ADB Adapter:

  • ADB adapters might be useful in scenarios where we have large amount of data.
  • You will use an adapter when your goal is to make publish/subscribe or request/reply service. ADB can be configured to watch for CURD operations in a table and publish those out to the ESB (either RV or JMS). It can also listen to the bus and perform CRUD operations when those events are detected.

JDBC Palette:

  • Used for medium to low data
  • JDBC is used when you are in the middle of a BW flow (straight through processing) and need to do a DB operation.
  • In case of insert or update to database then check if you have complex JDBC inserts, transaction management and other dynamic queries then JDBC activities are best.

3. Diff between SQL Direct and JDBC Update/Query Activities?

SQL Direct: The SQL Direct activity executes a SQL statement that you provide. This activity allows you to build a SQL statement dynamically and execute SQL statements that are not supported by other activities in the JDBC palette. For example, DDL commands (Ex: CREATE TABLE) are not available using any other activity.

JDBC Update: The JDBC Update activity performs the specified SQL INSERT, UPDATE or DELETE statement.

JDBC Query: The JDBC Query activity performs the specified SQL SELECT statement.

NOTE: SQL Direct is the low level activity. It can do almost everything but it is really not user friendly whereas JDBC Update/Query are specialized activities but they are by far more user friendly(input/output constructed by the parameters/query). The output is already parsed and use-able.

4. How to override Transaction behaviour of JDBC Activities which are part of a Transaction group?

   If you wish to override the default behaviour of transaction groups for certain JDBC activities in a transaction group, you can check the Override Transaction Behaviour field on the advanced tab. This specifies that the activity is outside of the transaction and the SQL statement is committed when the activity completes, even if the activity is in a transaction group.

5. What are the different types of variables (Global, Process, Shared and Job Shared)?

Global Variables: These variables allow you to specify constants that can be used throughout the project. The constants can be specified and changed while designing and testing your project. You can specify different values for each deployment of your project.

Process Variables: These variables allow you to access various data in your project. For example, there are predefined process variables containing the process ID, project name and other information. You can also create user-defined process variables for containing process-specific data.

Shared Variables: A Shared Variable resource allows you to share data across process instances. All process instances can read and update the data stored in a shared variable. This type of shared variable is useful if you wish to pass data across process instances or of you wish to set a common set of information available to all process instances.

Job Shared Variables: A Job Shared Variable resource is similar to a Shared Variable, but its scope is limited to the current job. A copy of the variable is created for each new process instance.

6. Groups(Critical Section and Pick First)?

Critical Section: A critical Section group ensures that only one process instance executes the activities in a critical section group at a time.

Critical section groups are particularly useful for controlling concurrent access to shared variables.

Pick First Group: Pick First group allows process execution to wait for one or more events. The first event that completes determines which transition to take to continue processing.

7. Inter Process Communication / Wait and Notify activities usage?

   TIBCO BW allows two executing process instances to communicate. You may need process instances to communicate if you wish to synchronize process execution or you may need processes must execute in a specific order, this inter-process communication is achieved by using wait, Notify and Receive Notification activities available in General Activities palette window.

8. How many ways we can create web service in TIBCO?

There are two ways to create a web service in TIBCO:

  • Generate Web service from Process
  • Generate Web service from WSDL

9. What are the Prerequisites to create WSDL and to generate Web Service in TIBCO?

  1. Define Types XSD
  2. Create Abstract WSDL
  3. Define Transport
  4. Implement the Service
  5. Operation Implementation
  6. Publish Concrete WSDL

10. List of approaches of creating and exposing web services in TIBCO?

We can create the web service by using:

  • Service Palette
  • SOAP Event Source
  • HTTP Receiver accepting SOAP Envelop

NOTE: Mostly web services which we expose are of either SOAP/HTTP or SOAP/JMS.

11. SOAP Event Source vs Service palette?

The “SOAP Event Source” process starter creates a simple service with one operation over one transport but whereas the “service” resource allows you to create a service that implements multiple operations offered over multiple transports.

12. Difference between SOAP/HTTP vs SOAP/JMS?

  In TIBCO, mostly we will expose web services either SOAP/HTTP or SOAP/JMS, there are different pros and cons that come in mind whether to choose HTTP or JMS and below are few of them:

To go with HTTP:

  • Firewall friendly(web services exposed over internet)
  • Supported on all platforms(easiest connectivity in b2b scenario)
  • Clients can be simple and lightweight

To go with JMS:

  • Assured delivery and/or only once delivery
  • Asynchronous support
  • Publish and Subscribe
  • Queuing if better for achieving larger scalability and reliability
  • Better handles temporary high load
  • Large volume of message(EDA)
  • Better support in middleware software
  • Transaction boundary

In SOA architecture best practice is to use JMS internally (for clients/providers that can easily connect to ESB) and HTTP for connecting to outside partners (over internet).

13. What is SSL?

Secure Socket Layer (SSL) is a protocol that uses public and private keys to secure communication between parties. When an SSL connection is requested, the initiator (or client) and responder (or server) perform a handshake where digital identities, or certificates, are exchanged to ensure that both parties are who each party expects. SSL can also be used to specify an encryption algorithm for the data that is exchanged between the parties.

14. Difference between SOAP vs Rest?

SOAP is definitely the heavyweight choice for Web service access. It provides the following advantages when compared to REST:

  • Language, platform and transport independent (REST requires use of HTTP)
  • Works well in distributed enterprise environments (REST assumes direct point-to-point communication)
  • Provides significant pre-build extensibility in the form of the WS* standards
  • Automation when used with certain language products
REST is easier to use for the most part and is more flexible. It has the following advantages when compared to SOAP:
  • No expensive tools require interacting with the web service.
  • Smaller learning curve
  • Efficient (SOAP uses XML for all messages, REST can use smaller message formats)
  • Fast (no extensive processing required)
  • Closer to other web technologies in design philosophy.

No comments:

Post a Comment

back to top