Browse Prior Art Database

Creating Application Business Logic Dynamically

IP.com Disclosure Number: IPCOM000011889D
Original Publication Date: 2003-Mar-21
Included in the Prior Art Database: 2003-Mar-21
Document File: 5 page(s) / 20K

Publishing Venue

IBM

Abstract

A program is disclosed which dynamically creates business rules on demand through the use of the basic business logic of the organization. Business logic refers to the processes by which operations are completed within a given business organization. This business logic is traditionally represented in computer software by creating mapping of the business logic tree using operations, states and transitions between states. These atomic rules work well for solving simple problems, however to perform a variety of tasks upon a wide variety of target objects, requires more complex interactions.

This text was extracted from a PDF file.
At least one non-text object (such as an image or picture) has been suppressed.
This is the abbreviated version, containing approximately 55% of the total text.

Page 1 of 5

Creating Application Business Logic Dynamically

  Creating the model application required the evaluation of a number of different approaches for solving the problem of managing user ids across a variety of computing platforms. Since traditional methods do not offer the level of flexibility required, the development of a novel approach ensued. This approach involves defining the basic components and rules for the system and then allowing the application to decide how to best perform the requested tasks.

The business logic for individual objects is first defined, followed by the operations, states and transitions between states for each basic operation. These basic operations are then linked together to create basic business rules. When an end user submits a request to the system, the system creates a new business rule using the following process:

1. The user selects task(s) to be performed.

2. The user selects target(s) to perform the task(s) against.

    3. The application uses this information and the basic business rules to do the following:

a. Apply the business logic for the organization.

         b. Dynamically create a new compound business rule based on the requested tasks

and the predefined business logic for the individual objects selected.

c. Prepare to execute the new compound business rule by creating a set

of small


atomic transactions.

d. Execute these transactions to complete the requested task(s).

Note that substates may be added for more flexibility within each state and to assist with asynchronous states.

These steps are graphically represented in Figure 1 below.

1

Page 2 of 5

Figure 1.

This process requires a data model such as the one in Figure 2 below:

2

Page 3 of 5

TARGETS

ACTIONS

PK TARGET_ID

TARGET_NAME

PK ACTION_ID

ACTION_NAME

BASIC_RULES

I1 RULE_ID

FK2 ACTION_ID FK1 TARGET_ID

RULE_NAME

BRANCH

STATES

PK BRANCH_ID

FK1 STATE_ID

    FROM_RC TO_RC FK2 NEXT_STATE

PK STATE_ID

    STATE_ORDER OPERATION_ID FK1 RULE_ID

OPERATIONS

PK,FK1 OPERATION_ID

OPERATION

OPER_INPUT

INPUTS

TRANSACTIONS

PK INPUT_ID

INPUT_TYPE INPUT_STYLE INPUT_PROMPT

PK TRAN_ID

FK1 STATE_ID

TRAN_DATA TRAN_HISTORY

PK,FK1 OPER_ID PK,FK2 INPUT_ID

Figure 2.

While the data model in Figure 2 is relational and has a minimal set of data elements which may be required to support the algorithm to dynamically create business rules, it is by no means intended to be the only data model which could be used to support this algorithm.

The algorithm, using the data model shown in Figure 2, has the following steps:

3

[This page contains 9 pictures or other non-text objects]

Page 4 of 5


1.


2.


3.


4.


5.


6.


7.


8.


9.


10.

What is claimed is:

Gather ACTION_ID and TARGET_ID combinations.

Match RULE_IDs to corresponding ACTION_ID and TARGET_ID combinations.

Gather state and branch information from rules defined by each RULE_ID.

Gather OPERATION_IDs for each state within each rule, eliminating any duplicates in

the process.

Iterate through the OPERATION_IDs, assigning each operation the hig...