Sunday, November 21, 2010

TIBCO Developers' Library - 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 are 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 reject 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.

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.

No comments:

Post a Comment