Friday, August 28, 2009

TIBCO BusinessEvents

What is TIBCO BusinessEvents?

What businesses need today is something that will perceive and identify various diverse events that occur within and across the organization, which may result and lead to a significant condition, problem, or opportunity that requires an immediate response or human intervention. These events may occur in a specific pattern or trend and may result to a specific outcome that could likely make an impact to the company either in a positive or a negative way. TIBCO BusinessEvents is a leading software in complex event processing that addresses the concern of responding to certain conditions or situations before they occur by processing or executing predefined rules. In this document, you will learn more about what TIBCO BusinessEvents can do, its features and advantages, and how easily you can define and make use of its resources.

1. What is Complex Event Processing?

Complex Event Processing is an event processing technology that processes events uninterruptedly. It is different from other event processing technologies because it treats all events as potentially significant and aims to identify meaningful events within the event cloud. It employs techniques such as detection of complex patterns of many events, event correlation and abstraction, event hierarchies, and relationships between events. You can use the data gathered by your car sensors, for example, to generate certain types of events. These car sensors measure the change in pressure of tires over time. If it detects that there is a dramatic drop in tire pressure within a small amount of time, it may send out a "lossOfTirePressure" event, notify the driver about the situation, and respond by slowing down the car. You can see that before the car experiences a flat tire, the system sends out a notification; thus, the problem that is likely to occur is prevented from happening. TIBCO BusinessEvents is a software that specializes in Complex Event Processing. It analyzes the cause and impact of different meaningful events and how to respond to those that may be considered as a potential harm or benefit. It also works on correlating massive amount of data about many events and applying specific rules to identify situations that require a response. BusinessEvents is "proactive", which means that it responds before problems arise and opportunities come; thereby, eliminating possible complications that may happen and grabbing the chance or opportunity to gain leverage in business.

2. What are the different aspects of Complex Event Processing?

One aspect is about knowing the state of persons, objects, or entities in your business. It is monitoring of certain events and observation of certain performance indicators or criteria. Another aspect is about detecting significant facts about persons, objects, or entities in your business and responding to specific conditions that occur. The last is about tracking information over a period of time and tracing pertinent data that may result to a problem or an opportunity.

3. BusinessEvents enables CEP problems to be solved through a model-driven
approach. What are these various models?

These models are the Event model, Concept model, Rule and Ruleset model, Rule Functions, and State model. The event model provides inputs into BusinessEvents through the event properties and optionally their XML payload. The Concept model refers to data concepts mapped from events properties or payload, or other means into BusinessEvents. Rules provide the behavioral mechanisms in BusinessEvents and are composed of the declarations, optional conditions, and actions. Rulesets serve as containers of related rules. Rule functions refer to algorithms, procedures, or functions, which have arguments and a body. They are reusable components in BusinessEvents projects. State model refers to some state machine or state model representation, which describes the states that an entity can hold, the transitions allowed between the states and the conditions for such transitions.

4. What are channels and destinations?

Channels represent a physical connection to a resource such as Rendezvous daemon or Java Message Service. Destinations are contained in only one channel and represent listeners to messages from that resource, and they can also send messages to that resource.

5. What are the types of channels?

There are three types of channels: TIBCO Rendezvous channels, JMS Channels, and Local channels. TIBCO Rendezvous channels use the Rendezvous daemon as a connection resource while the JMS Channels use the JMS as a connection resource. Local channels are used to route events to multiple rule sessions. Rule sessions refer to an instance of the BusinessEvents engine.

6. What is the difference between serializers and deserializers?

Serializers are used by BusinessEvents to convert events to messages while deserializers are used by BusinessEvents to convert messages to events.

7. What are the three sorts of event that BusinessEvents supports?
The three types of events supported are the simple event, time event, and advisory event. When called event, this refers to a simple event which defines an object that represents an activity such as debiting an account, logging an employee, or suspending a fraud account. You can define the properties of simple events. Time events are timers that are used to trigger rules. There are two types: the repeating time event which repeats every specified interval and the rule-based time event which is asserted into working memory after a specified period of time. Rule-based event can be done by using the ontology function provided in BusinessEvents. Lastly, the advisory event is an event asserted into working memory when certain condition occurs such as exceptions or errors, the failure of the BusinessEvents engine to invoke or call a BusinessWorks process, and the success condition of engine startup or activation. You do not have to create or configure an event of advisory type because it is automatically available for use in the resource list when you add a resource to the declaration portion of a rule.

8. What are concepts?

Concepts are descriptive entities similar to object oriented concept of a class. They describe a set of properties. For example, an Employee concept can have properties such as FirstName, LastName, Salary, and Department. Concepts have property history and you can set the history size to a number of values with their timestamp, which you want to keep in working memory or a persistent storage. History policies can either be Changes only, which means values will be stored only when they are modified or changed, or All Values, which means values will be stored all the time even though they are not modified or changed. Concepts can also have inheritance, containment, and reference relationships.

9. What are database concepts?

Database concepts are BusinessEvents concepts created by mapping tables or views from a database. Each row in a table represents one database concept instance, and each column represents the properties of the database concept. Database concepts are different from BusinessEvents concepts because you can perform database operations such as query, insert, update and delete.

10. What is a scorecard?

A scorecard is a special type of concept that serves as static variables available throughout the BusinessEvents project. Scorecards are used to track certain key factors. Unlike a BusinessEvent concept, a scorecard is itself a single instance and not a description for creating instances. It is created during design-time. Rules are used to view and update the values of the properties in a scorecard.

11. What is a rule? What comprises a rule?
Rules provide the behavioral mechanisms in BusinessEvents. A rule is composed of the declaration of entity types such as events or concepts, optionally one or more conditions, and an action. The action is executed by BusinessEvents when all of the conditions evaluate to true or there is no condition specified. BusinessEvents rules are declarative rather than procedural. This means that there is no definite execution of these rules but you can specify a rule priority to determine which rule or rules are executed first when certain condition occurs. The rule priority is a number from 1 to 10 with 1 as the highest priority and 10 as the lowest priority. The default value is 5. When you leave the rule priority to a default value, this means that the BusinessEvents will be the one to choose or decide which rule will be executed when certain condition occurs. Rules are contained within a ruleset which serves as a container of related rules.
12. What is a state modeler?
State modeler is a Unified Modeling Language (UML) compliant application that allows you to model the lifecycle of an instance. For each instance of a given concept, you can define which states it can have and how it will change from state to state based on applicable rules. A state model begins with a start state and ends with one or more end states. It is similar to a finite state automaton. In between may be simple, composite and concurrent states connected by transitions. A simple state is a state that has an entry and an exit action. A composite state is like a group of nested folders that contain other states. A concurrent state allows multiple state flows to be passed on. Transitions determine when an instance of a concept passes from one state to another which is indicated by complex transitions, or from a state to itself which is indicated by self-transitions.
13. What is a rule function?
A rule function is an algorithm or method you write in BusinessEvents language for use in the entire project. A rule function is composed of arguments and a body. It can return a value, for example, integer, String, or boolean data type. It can also return void or no value. Rule functions can be used as event preprocessors and can be executed during engine startup or shutdown.
14. What is an event preprocessor?
An event preprocessor is a rule function with one argument of type simple event. It performs actions after an incoming message is converted into a simple event but before it is asserted into working memory. This means that before a rule can process the simple event, the event preprocessor executes certain tasks first.

15. What is a virtual rule function?
A virtual rule function is a rule function that has arguments but no body. Its implementation is provided in the Decision Manager Business User Interface. The implementations are called decision table classes or external classes since they exist outside the BusinessEvents engine. Each row in a decision table forms a simple rule and collectively defines the body of the virtual rule function.

16. What is Decision Manager, its use, and importance?
Decision Manager is a component of BusinessEvents. It is an Eclipse-based platform. Its friendly user interface allows a non-technical user to write, test, and deploy business rules to the BusinessEvents engine. Users who do not know programming or TIBCO BusinessEvents can participate in the formulation of rules and rule functions and make their logic become part of the overall BusinessEvents project. It is a client application to Rules Management Server and is supported only in Windows platform.

17. What is a Rule Management Server?
A Rule Management Server (RMS) is another component of BusinessEvents, which manages decision projects and provides a mechanism for approval. It also provides user authentication, decision project authorization, and other project management features. Decision Manager communicates with Rules Management Server to check out decision projects, update local copies of decision tables, and commit changes. RMS users can then approve or reject those changes. What is nice in RMS is that it can be accessed remotely through a router or the Internet, which means that it does not have to be installed on the user's machine.

18. Describe how an RMS project is created and used by Decision Manager users.
The BusinessEvents project is created by the user. He creates events, concepts, rules, and rule functions. The project must contain at least one virtual rule function. The EAR file for this project is built and the RMS user sets up an RMS project for it. The RMS user creates access control files which define the appropriate personnel that can access the decision project, domain model files which define what ontology resources the business user is allowed to utilize, and others such as test files that contain data to test the decision table. After that, the RMS user starts the RMS server and informs the business user that it is already running. The business user logs into Decision Manager and requests for a decision project by checking it out and saving it to his local computer. The business user creates one or more decision tables locally with a locally running BusinessEvents engine started by Decision Manager automatically. The business user commits the decision project for approval. The RMS user receives the request, reviews the project, and then approves or rejects it. If he approves it, the RMS generates class files in a known location on a production BusinessEvents engine or he can manually save it there. The class files are either hot deployed to a running system or deployed when the BusinessEvents system starts up. After this, the business logic defined by the business user is now part of the BusinessEvents application.

Conclusion
With TIBCO BusinessEvents, you can identify significant events and information over time within your organization. You can analyze the most likely impact of these events to your business and prevent the occurrence of problems and grab every opportunity that comes to your business. This prediction capability of TIBCO BusinessEvents makes it truly one of a kind and the leading software when it comes to complex event processing. It also incorporates business users to formulate rules based on their own expertise and integrate these rules in TIBCO BusinessEvents. It is a fantastic way to collaborate in building projects and this results to higher throughput, efficiency, and leverage in business.

TIBCO BusinessConnect

What is TIBCO BusinessConnect?

Real-time business is the most important factor that is needed by businesses today. It links the proceedings of personnel, applications and partners through fast and efficient communication. It makes information available anytime and anywhere. It is flexible to the changes that may happen anytime, which will optimize the business activities accordingly. TIBCO makes sure that these capabilities are within our reach. TIBCO BusinessConnect lets you experience optimized business flow, integrated application and a secure communication across all your trading partners.

What is TIBCO BusinessConnect?

TIBCO BusinessConnect is business-to-business (B2B) communication software that enables different companies to establish a secure transaction using dissimilar internal systems. It is integrated with the TIBCO BusinessWorks platform. It uses a web-based administration tool called TIBCO Administrator for easy configuration of server settings, hosts, business partners, security settings, and business protocols. Internal applications that communicate to the BusinessConnect server can be easily created using TIBCO Designer. BusinessConnect enables business partners to exchange documents with reliable security capabilities and non-repudiation support.

What is non-repudiation?

Non-repudiation means a proof of existence of a certain transaction. This feature will really benefit the companies because transactions are recorded with digital signatures and timestamp, which prove that a transaction has taken place. Neither the host nor the partner company can deny that a transaction took place. All transaction records are saved on the database, and you can use a third party application to connect to BusinessConnect for this feature.

What are the protocols supported by BusinessConnect?

BusinessConnect supports popular B2B protocols such as RosettaNet, chemXML, UCCnet, ebXML, cXML, xCBL, EDI, and EDI - HIPAA. Upon installation, BusinessConnect is bundled with the EZComm protocol. It supports transports such as HTTP(S), FTP(S), SMTP, FILE, AS1 and AS2. It also supports data format like XML, MIME, S/MIME, SOAP and EDI, as well as multiple security standards, such as PKCS and Java Keystore.

What is a business protocol?

A business protocol is a standard used by the BusinessConnect server for the communication of two business partners. BusinessConnect has an Operation Editor that lets you configure your selected protocol.

How do you set-up a B2B connection?

You will be using the TIBCO Administrator to set-up a B2B Connection. First, you have to deploy the BusinessConnect engine on the TIBCO Administrator. It can be a Single Server Mode or Dual firewall DMZ Mode, and you have to select the type of transport and port number you wish to use before the deployment of the engine. Then, select and configure what type of business protocol that fits your company's needs. The configuration of the protocol depends on the type of protocol you use. Next, you have to create host and partner participants. Use these hosts and participants in creating business agreements. Lastly, you can create private processes. Private processes are internal processes that are connected to the BusinessConnect server, and send and receive information being passed over the public processes.

What is the difference between Single Server Mode and Dual firewall DMZ Mode?

Single Server Mode offers a minimal but secure and reliable security that can be deployed in your system. The Dual firewall DMZ Mode is a more secure deployment setting because you can place your DMZ behind your firewall. This means that you have a double security of data exchange since you have your firewall and DMZ securely check the data being exchanged. You can even add another firewall as your second firewall behind the DMZ for a more secure communication.

What are Hosts and Partners?

The host and the partner are the two elements that participate in the exchange of data. They are referred to as participants. The host is your company. It is configured to reflect your company unit and connected to your BusinessConnect B2B gateway. The partner is your partner company. It is configured to reflect your partner company unit and it is connected to its own B2B gateway. It's a huge advantage for TIBCO BusinessConnect users because BusinessConnect is capable of integrating applications even if the other company is using a different B2B solution, as long as requirements are met, such as using the same protocol.

What is a business agreement?

In order for the two trading partners to exchange data and perform business deals, the host and partner must establish an electronic B2B deal. This deal is called a business agreement in BusinessConnect. To configure the business agreement, you have to select the host and partner involved in the deal. Then, select the protocol common to both parties, and configure the security. You can even select the validity dates for the deal.

What are private and public processes?

A private process is an internal process in your company, which sends and receives data from your BusinessConnect server and communicates to the server using Rendezvous messaging. You can create a private process using TIBCO Designer. BusinessConnect is bundled with the BusinessConnect Plug-in which you can use to easily create business processes in TIBCO Designer. A public process is the one responsible for the exchange of data of both BusinessConnect servers across the Internet. It includes both BusinessConnect servers and the medium that connects these servers.

How is the transaction being conducted?

When you send a transaction to a BusinessConnect server, the transaction is sent via Rendezvous Certified Messaging (RVCM). The server listens to a subject name and waits for the message to arrive. A message is considered valid if it conforms to the structure specified in the agreement between the participants. That certain message is encrypted by the server before the server sends the it to the partner company. The message is then received by the partner's BusinessConnect server. The partner's BusinessConnect server decrypts the message and sends it to an RVCM subject name. The internal process of the partner company listens to that RVCM subject name, waiting for the message to arrive. When the message arrives, the data is processed and the partner company sends a response back to the host company via RVCM going through the servers.

The host subject names are called Initiator Request and Initiator Response, while the partner subject names are called Responder Request and Responder Response. The host sends a request, and waits for a response. The partner waits for the request, and sends the response after processing the request.

Conclusion

BusinessConnect is a great tool for reliable business-to-business communication. It supports numerous protocols and is easy to configure, making it a powerful tool to integrate with your trading partners.

Friday, August 7, 2009

Tibco EMS FAQ-1

Messaging Sequencing in Queues: When the message size is large, and when there are more messages with larger size, to reduce the load on the server, the sender sends the message in chunks and on receiver side to receive the messages in order, use message sequencing.

Difference between Load Balancing and fault Tolerant modes: Load balancing is done between 2 or more servers where the load is distributed between servers. whereas, fault tolerance is done between 2 servers where one server acts as a primary and the second server acts as a back up server for the primary server. In case of failure of primary server, the second server(back up server) becomes the primary server.

Load Balancing in Queues: There will be number of queue receivers and the messages are sent to the queues in round robin fashion thereby reducing the load.

Durable Topic: In durable topic, the message is first persisted on to the disk before it is published. Durable topics ensure the delivery of messages like queues. where as a regular topic receives the message only when it is active. If not active the message is lost.

Services of EMS server: Reliable, guaranteed,Transactional

Performance Tuning:Performance tuning can be done at EMS server level/Administrator level
In EMS it can be done using prefetch mechanism,thereby regulating the consumption of messages. The prefetch mechanism is avialable in both queues and topics
In Administrator, performance tuning is done by adjusting the count of the threads.also by setting the flow limit, activation limit, max limit.

Ways of creating a Web service: I believe there are 2 ways. using soap activity, using services. How to create them are posted in this site. Please go through it.

Why is load balancing not useful in topics: Because as one message is sent to all the subscribers that subscribe to the topic, there will be duplication of messages and there will be more disadvatages when used in topics.

How you do support: When there is an issue, every issue has a ticket number, first determine the criticality and based on the criticality we forward the issue to suitable departments, like developer, testing department etc.

When to use services/soap activity: When you have to use multiple transports, use services to build ur websevices, using soap activity you can configure only one transport.

Difference between Abstract WSDL and Concrete WSDL: Abstract WSDL consists of the structure of the message that is; what operation, what is the input and what is the ouput . Whereas in concrete WSDL has all the things that the abstract wsdl has in addition it has transport details.

max jobs, Activation Limit,flow Limit: Max Jobs is the maximum number of jobs thatMax jobs specify the number of process instances that are kept in memory while executing.
Activation Limit: Specifies that once a process instance is loaded and it must be placed in memory till it completes execution.
Flow Limit: maximum number of jobs that can be spawned before the process starter is suspended.

Acknowledgement modes: auto, client, dups_ok, explicit client ack, no acknowledgment, explicit_client_dups_ok ack,transitional, local transitional. Go through the articles in the site. I believe there is explaination for these.

Tuesday, August 4, 2009

Install TIBCO iProcess Sql Server Engine



The installation usually won’t success when you first install the iPE. If the installation failed, you can delete the installation directory; drop the swpro and swuser users and all the tables belong to them in Sql Server database. But don’t delete the swadmin and staffwar users in the OS. And then reinstall the iPE, it will success.

1. Create 3 user accounts “swpro”, “swadmin” and “swuser” (local to the computer) with password (wireformat-123). Assign local admin rights to these users.

2. 1. Then go to control panel->Administrative tools->Local Security Policy->Local policies (left pane) ->user right assignments


Here for three policies (act as part of OS, logon as a service, log on as a batch job), you have to add those three users mentioned above.

2.2. Go to ‘Component services’ in the Administrative Tools.

Component Services->Computer (left pane)->My Computer.

Right click on My Computer and go to Properties. In the COM Security tab. Click the Edit Limits button in the Access Permissions and add swpro, swadmin and swuser in the user names and check the Remote access checkbox.


Repeat the above step for the Edit Default in Access Permissions and also for Edit Limits and Edit Default in the Launch and Activation Permissions.

3. Logon as swpro (recommended) and install all the software needed for iProcess.

3.1 Install SQL server 2000 with service pack 4.

3.11. Create a new db for iProcess.

3.12. In the newly created DB create 3 logins (mentioned above) with same username and password. Find steps below.

a. Go to Securityà right click on login choose new Login.


b) Select server Roles and give all the roles



c) Select Database Access and select the database you have created and grant all roles.

Repeat these steps for all three users (swpro, swadmin, swuser)

3.2. In DB PropertiesàPermissions, check all the properties except Backup DB and Backup log

3.3 Create an ODBC (data source) for your newly created DB.

Got control panelàadministrative toolsàData Sources (ODBC) and create a new odbc in system DSN

(Select default database as the database that is created in the step 3.11 above)

4.0 Before I process server installation you need to install pthread.dll

Pthreads-w32-2.7.0.zip

4.1 Next install iProcess Engine with all options checked except “configure email plug-in" (This option can be selected if you want to configure the settings for iProcess Email plug-in)

5. Install JMS (Ignore this step if you already have the JMS installed on your system)

6.1. Open the iProcess Objects server from control panel and in memory tab; select ‘enable memory login’, select warning check box.

6.2. In disk log tab, set memory size to 100MB.

Restart your machine.

7. Type services.msc in run, check whether two staffware services are running or not.

8. Install iProcess windows client

9. Install iProcess modeler.