TIBCO BusinessEvents as CEP solution for complex problems
January 18, 2018

TIBCO BusinessEvents as CEP solution for complex problems

Fabio Martone | TrustRadius Reviewer
Score 9 out of 10
Vetted Review
Verified User

Overall Satisfaction with TIBCO BusinessEvents

In the actual project, TIBCO BusinessEvents is being used as correlation engines. Its purpose is to collect metadata about service requests and responses across the Service Backbone, correlate them, and provide statistical information about deployed services, such as the number of hits for each service operation, successes and faults, average latency, and so on. All these information are then delivered to another component to be persisted and then read from a GUI. Thanks to this statistical information about the deployed services, the user would be able to figure out the health of the system, create business monitoring rules, and act immediately whenever unexpected patterns appear.
  • One of the simplest use of TIBCO BusinessEvents, is for "Condition Detection" scope. Let's assume we like to monitor business services or our corporation, and create monitoring alerts whenever certain conditions are reached. For example, a monitoring rule could be: "when a service call receives more than 80% of fault responses within a minute, generate an alert (send an email)".
  • In this scenario, TIBCO BusinessEvents offers a very powerful rule engine. In the rule engine will be defined all the monitoring rules, and their threshold. The rule engine will receive events with statistics information about service calls, eventually correlates and aggregates those message, and when particular condition are detected by the defined rules, an alert is generated
  • One interesting capability of TIBCO BusinessEvents, is to recognize situation. One example over all, could help to understand the "Situation Recognition" scenario: the Bank Fraud detection.
  • Let's assume a bank would like to define a solution to identify when a credit card fraud is in act. Now, a simple use of the credit card by its owner, most probably, is not a fraud. So the system should avoid to raise alert every time. But the system should be able to recognize certain suspicious conditions, as for example when the credit card has been used for purchase in a shop in Italy, and after a pair of hours in one store in USA.
  • This means that one single event (usage in Italy) is not enough to define the fraud, but the system is able to keep the event, and process it once others events arrive, in order to recognize suspicious situation.
  • One particular pattern, where TIBCO BusinessEvents would be very helpful, is for Track and Trace patterns.
  • Let's consider an aviation company, that needs a process to follow customer's baggage. The customer drops off his baggage at airport, a bar code is assigned to it, that belongs to the owner. The baggage should follow a route to reach the target airplane, be loaded on the airplane, once arrived at destination unloaded and sent to the correct belt to be collected by its owner.
  • All the steps above, con be modeled with a state machine, where the baggage change its state at each passage under a bar code reader for example.
  • This solution would allow companies to track baggage from the beginning (when customer drops the baggage at counter) to the end (customer collects his baggage at destination), and establish any problem during the path.
  • TIBCO BusinessEvents offers really several features, many way to customize and adapt it to own requirements. One interesting feature is the opportunity to create Rules, at runtime, by an user that is not developer, using rule templates.
  • This feature, well implemented and with few interesting addon, has an architecture not very simple.
  • For example, we have a Business Monitoring component, where the business user can define his monitoring rules, the rules are persisted on DB, and picked up at any time by another component.
  • The component that reads the rules from the DB is not a rule engine, this means that is not performing very well for this scope, and also it needs each time to retrieve the rule to execute from the Database.
  • Our intention is to substitute this last component with TIBCO BusinessEvents, in order to use the power of the rule engine. But, to create the rules, there is a new mechanism, that should be integrated with the existing GUI, and more else, the rules are persisted on file system.
  • There is no way for the developer to auto create the rules internally, and enable them in the working memory, for example generate the rules from entries on a database, and create the rules directly in the working memory.
  • The existing solution injects the new rules in the working memory from outside.
  • Self-taught
Learning the product on the job, by myself, helped me to enter immediately into the real utilization of the product, with real cases and scenarios, where usually during a training only ideal cases are used.
One of the hardest part of TIBCO BusinessEvents understanding, is determine the boundaries of utilization, when it is really useful and increase performances, and when it is redundant, and other products can do better. And without being projected into real utilization, could be harder, after the normal training, to understand this part.
  • TIBCO BusinessEvents, whenever it was used consciously, gave a big improvement to the projects, solving complex problem not easily solved otherwise.
  • Same solutions, realized in technologies as Java or TIBCO BusinessWorks, could require an effort of 40% more in terms of time or realization, compared with a BusinessEvents.
  • And in terms of performance, we have had a comparison of a solution where monitoring rules had to be executed, developed with BusinessWorks and BusinessEvents.
  • The BusinessEvents showed a capacity to perform up to 15x time faster, with the same load work
Drools is an open source alternative for CEP solutions, that provides a business rules engine. Unfortunately it comes without support, while the TIBCO support for BusinessEvents is very efficient.
Additionally, TIBCO BusinessEvents suite provides several additional components that could satisfy many requirements, and it can be integrated with existing TIBCO stack, giving great interoperability with other TIBCO products. As well as could be used in stand alone way.
TIBCO BusinessEvents is part of the CEP (Complex Event Processing) family, this means that it fits perfectly in all those scenarios where a correlation between incoming events is required. Where a stateful process is necessary. It does not fit well for a kind of Process Orchestrator scope, where simple events are coming in, and there is a well-defined behavior the system, would have on incoming request, and no particular reason to use a rule engine and its complexity. Anyway, there are particular cases where BusinessEvents would be a good actor in orchestrating a portion of CEP solutions activities