Skip to main content

IBM Research - Haifa

IBM Active Middleware Technology™

Introduction

Several implementations of IBM Active Middleware Technology™ exist that provide different QoS / non-functional requirements on different deployment platforms. The section below provides answers to questions about the different implementations. All implementations share the same IBM Active Middleware Technology™ toolkit, pattern language, and code modules that execute the pattern detection logic.

The supported implementations are:

  • J2EE
  • Persistent J2SE
  • In-memory J2SE

Table of Contents

  1. Persistence:
    1. Are IBM Active Middleware Technology™ rule definitions persisted? How?
    2. Is the IBM Active Middleware Technology™ runtime state persisted? How?
  2. Development templates support:
  3. Runtime dynamic template instantiation:
  4. Creating new rules programmatically:
    1. Does IBM Active Middleware Technology™ enable the addition of new rules during runtime?
    2. Does IBM Active Middleware Technology™ validate that the new rule set update does not impact on existing rules?
  5. Performing actions:
  6. Flexible event format:
    1. Does IBM Active Middleware Technology™ support any event format required for a solution?
    2. How does IBM Active Middleware Technology™ work with new event formats?
  7. Declarative rule set:
    1. Does IBM Active Middleware Technology™ support declarative rule sets that enable exploiters to generate rules from their own tools?
    2. Does IBM Active Middleware Technology™ allow customers to version and manage rule sets?
  8. Development, deployment, and runtime model:
  9. Embeddable:
  10. Duplicate filtering:
  11. Time window support:
  12. Distributed engine:
  13. High availability:

Answers

  1. Persistence:
    1. Are IBM Active Middleware Technology™ rule definitions persisted? How?

      Rule definitions are persisted to a database or a kept on the file system. If IBM Active Middleware Technology™ crashes, those rule definitions are loaded from the database/file system.

    2. Is the IBM Active Middleware Technology™ runtime state persisted? How?

      The IBM Active Middleware Technology™ J2EE and Persistent J2SE versions are fully persistent and transactional. The IBM Active Middleware Technology™ runtime state is persisted to a database for every process event. If IBM Active Middleware Technology™ crashes, the rule definitions (see question 1a) and the IBM Active Middleware Technology™ runtime state are loaded from the database. IBM Active Middleware Technology™ can replay all uncommitted transactions (events) as required by the application.

      The In-memory J2SE version is aimed at high performance and does not include a persistency mechanism.
  2. Development templates support:
    • Does IBM Active Middleware Technology™ support the creation of templates with parameters?

      IBM Active Middleware Technology™ templates enable novice users to create new resources by simply filling in a few parameters and hiding the logical definition details. The templates enable users to use English-like descriptions for rules and parameters. In addition, templates can be exported and configured via web applications.


      Click to see full size 
      Click to see full size
  3. Runtime dynamic template instantiation:
    • Does IBM Active Middleware Technology™ support template instantiation at runtime?

      IBM Active Middleware Technology™ supports templates (see question 2a) that are regular IBM Active Middleware Technology™ rules with parameters. At runtime, parameter values are sent to IBM Active Middleware Technology™ and IBM Active Middleware Technology™ instantiates a new IBM Active Middleware Technology™ rule definition, based on the template definition and the parameter values.

      For example, an IBM Active Middleware Technology™ rule set includes a template in which a variable is compared to a parameter X. During runtime, the engine receives a value for the parameter, e.g., X=100. Based on the template, a new rule is created where the variable is compared to 100. Later, additional rules can be instantiated based on the template with different values for X.
  4. Creating new rules programmatically:
    1. Does IBM Active Middleware Technology™ enable the addition of new rules during runtime?

      IBM Active Middleware Technology™ supports the addition of new rules during runtime. IBM Active Middleware Technology™ has two loosely coupled major components: An Eclipse-based development environment and a runtime engine that communicate via an XML bridge. IBM Active Middleware Technology™ rules are developed using the IBM Active Middleware Technology™ IDE. When rules are deployed, an XML representation of the rules is generated by the IDE and sent to the runtime engine.

      The runtime engine receives the new/updated rules, validates them against the existing rule set, and loads the new rules while the engine is running.

    2. Does IBM Active Middleware Technology™ validate that the new rule set update does not impact on existing rules?

      When the IBM Active Middleware Technology™ runtime engine receives a new/updated set of rules, it validates them against the existing rule set and loads the new rules only if there are not contradictions between the rule sets.

      IBM Active Middleware Technology™ supports two options for hot rule updates:
      • Adding and removing specific rules from the active rule set, i.e., specifying only the changes to the rule set.
      • Loading a complete rule set - IBM Active Middleware Technology™ analyzes the differences between the active rule set and the new one, and updates the active rule set accordingly.
  5. Performing actions:
    • Does IBM Active Middleware Technology™ enable custom code performance as a result of a rule being triggered?

      IBM Active Middleware Technology™ supports pluggable actions. An IBM Active Middleware Technology™ action is a procedure that is called when an IBM Active Middleware Technology™ situation is detected (i.e., when a rule is fired).
      • In the toolkit, the Business Customizer specifies the actions to be called when a rule is fired, and how the rule results pass as parameters to the action
      • The runtime engine calls these actions when a situation is detected.
  6. Flexible event format:
    1. Does IBM Active Middleware Technology™ support any event format required for a solution?

      IBM Active Middleware Technology™ supports a variety of event formats, such as:
      • "Flat" events (like relational DB tuples)
      • CBE events
      • WEF events
      • Arbitrary XML
      • Complex events (events that are a collection of other events)
      • Different data types for attributes, including objects, arrays, and XML
      • JMS messages

    2. How does IBM Active Middleware Technology™ work with new event formats?
      • In-memory/Persistent standalone IBM Active Middleware Technology™ includes a framework that enables users to add new adapters. To implement a new adapter, a simple interface must be implemented. Existing adapter implementations include JMS, MQ, RMI, databases, and web services. The IBM Active Middleware Technology™ input adapters can be implemented in both pull and push modes.
      • IBM Active Middleware Technology™ J2EE has an EJB interface and web service interface.
  7. Declarative rule set:
    1. Does IBM Active Middleware Technology™ support declarative rule sets that enable exploiters to generate rules from their own tools?

      IBM Active Middleware Technology™ uses an XML interface between the IBM Active Middleware Technology™ toolkit and the runtime engine. IBM Active Middleware Technology™ definitions can be generated from other tools by generating XML definitions that comply with the IBM Active Middleware Technology™ schema. An example is the WBI Server Express business rules that use the proprietary WBI Express UI for rule editing and the IBM Active Middleware Technology™ runtime engine for communicating via the IBM Active Middleware Technology™ XML interface.

    2. Does IBM Active Middleware Technology™ allow customers to version and manage rule sets?

      IBM Active Middleware Technology™ provides the option to use version control tools through CVS or other version control systems that work with Eclipse.

      Version control is done at the resource level (e.g., event type, rule, lifespan, action).
  8. Development, deployment, and runtime model:
    • Does IBM Active Middleware Technology™ support a model for development with tooling and then deploying the generated rule set into a runtime?

      IBM Active Middleware Technology™ has two loosely coupled major components with an XML interface that enable the following:
      • Eclipse-based development environment:
        • Wizard-guided process - no programming skills required
        • Expressive language for defining business rules
        • Complex and intricate rules and conditions can be easily implemented
        • The toolkit includes:
          • Syntax validation - rules are compiled during editing and error messages (syntax) are displayed on a special pane in the editor
          • Logical validation (via simulation):
            • Scenario editor - defines a flow of events (a scenario) that can be executed on a specific set of rules (rules can be selected)
            • Simulation viewer - visually shows the execution of a scenario on a set of rules
          • Log viewer - shows the log of the simulated scenario
        • Deployment to the runtime engine from the toolkit
      • Runtime engine:
        • Detects situations - conditions based on a combination of events
        • Runtime definitions update (hot deployment)
        • Optimized for event processing

      The IBM Active Middleware Technology™ toolkit and runtime engine use an XML bridge. The toolkit produces an XML file that contains the IBM Active Middleware Technology™ deployed definitions. The runtime engine runs on the definitions in the XML file.

  9. Embeddable:
    • Does IBM Active Middleware Technology™ support the ability to be embedded and installed as part of the exploiter application?

      IBM Active Middleware Technology™ is already integrated in several IBM (including IBM's ESB) and business partner products:
      • Message Broker
      • WBI Express
      • Business partner products: Syncron, Transaction Vision

      To include IBM Active Middleware Technology™ in a product, users should implement the IBM Active Middleware Technology™ input/output adapters that receive events and send results to the product.

  10. Duplicate filtering:
    • Can IBM Active Middleware Technology™ avoid triggering the same actions repeatedly when a situation continues for a certain period of time?

      IBM Active Middleware Technology™ supports duplicate filtering.

      There are two options for pattern detection repetition.
      • Always - the pattern may be detected several times within a time window
      • Once - the pattern is detected only once within a time window

  11. Time window support:
    • Does IBM Active Middleware Technology™ support time-restricted rules and timeout actions?

      IBM Active Middleware Technology™ supports time windows through the concept of lifespan. A lifespan is a time interval during which particular situations are relevant. A lifespan starts with an initiator and ends with a terminator.
      • Initiator - an event, system startup, or absolute time
      • Terminator - an event, relative expiration time, or absolute expiration time. A terminator definition is not mandatory. If there is no terminator defined, the lifespan never ends.

      Time-restricted rules and timeout actions are supported by using a relative expiration time terminator.

  12. Distributed engine:
    • Depending on the deployment model, can events belonging to the same situation be handled by different IBM Active Middleware Technology™ instances?

      IBM Active Middleware Technology™ can be used in a distributed manner as follows:
      • J2EE - IBM Active Middleware Technology™ is horizontally scalable so it can be deployed on a WAS cluster and used in a distributive manner
      • Persistent J2SE - the state is persisted to the database and can be shared between several IBM Active Middleware Technology™ instances
      • In-memory J2SE - several IBM Active Middleware Technology™ instances can be used concurrently in a distributed environment; however, the rules must be divided between the different IBM Active Middleware Technology™ instances in an exclusive way. Each IBM Active Middleware Technology™ instance acts upon an exclusive set of rules.

  13. High availability:
    • Is IBM Active Middleware Technology™ usable in HA scenarios?

      IBM Active Middleware Technology™ implementations can be deployed in high availability scenarios in the following ways:
      • J2EE - via WAS clustering
      • In-memory / Persistent J2SE - via HACMP