The field of the present invention pertains to transaction processing relational database management system (RDBMS) environments. More particularly, the present invention relates to a method and system for efficiently representing and applying business rules in a transaction processing RDBMS environment.
One of the most important societal changes of recent times has been the emergence of the Internet, more particularly, the World Wide Web (e.g., the Web), as a predominant communications medium. The Web represents all the computer's on the Internet that offer users access to information and documentation media interactive hypermedia, or Web pages. Web pages describe documents in which hypertext links are used connecting a multitude of combinations of graphics, audio, video, and text. Such combinations are often interlined and interconnected in nonlinear, nonsequential manners.
The vast majority of corporations in the modern business world have adopted Web based technology to accomplish their normal business functions. These businesses have moved much of their basic processes, activities, functions, and the like “on-line” wherein the processes/activities are available electronically to an interwoven network of business suppliers, and operators, as well as customers. Transaction processing is one such function.
Transaction processing is the prototype of information processing system in business service organizations. Transactions referred to sets of discrete inputs, for example, submitted by users at unpredictable intervals, which call for database searching, analysis, and/or modification. The server evaluates the requests and executes them in response to user queries. Response time (the elapsed time between the end of a request and the beginning of the reply) is an important characteristic of the performance of a transaction processing system, wherein “real-time” teleprocessing is the desired goal. Some transaction-processing systems often incorporate private telecommunications networks. However, a majority of the more modern transaction processing systems are moving towards Internet based standards. Internet based transaction processing systems are increasingly comprising the foundation of service industries such as banking, insurance, securities, transportation, and libraries. However it should be noted that Web, or Internet, or Intranet settings are merely typical.
The general problem with such transaction processing systems is how to represent and apply business rules in a transaction-processing RDBMS environment. The specific case of the problem (which necessarily employs a technology applicable to the general problem) is how to represent and apply business rules that define a transaction's approval process (typically, a list of managers who must approve the transaction) in a transaction-processing environment. For example, expense reports and purchase requisitions typically require approvals by one or more employees in a managerial hierarchy, and transaction-processing applications such as Oracle's Web Expenses and Internet Procurement must somehow define and apply the rules that determine how far up the hierarchy a transaction's approver list must ascend. Transactions often require approvals by functional specialists (e.g. HR representatives, financial analysts, and legal departments) before or after all approvals in the hierarchy have occurred, and a transaction-processing application must make special provision for such non-hierarchical approvers.
Until now, each transaction-processing application in an RDBMS business environment has hard-coded either a fixed set of business rules, or a fixed framework for defining business rules on a fixed set of “transaction attributes” (decision variables) such as a transaction's total (e.g. dollar) amount. In either case, the application limits its rules to a fixed list of available hierarchies (typically a single managerial hierarchy). Such application's provisions for non-hierarchical approvers are similarly fixed and non-extensible. If an organization using such an application desires to extend the application's approval rules beyond the fixed limits imposed by the application's approval-rules paradigm, for example by:
Embodiments of the present invention are directed towards a dynamic extensible rule-based expert system shell for transaction processing database computing environments. The present invention provides a solution that solves each of the problems described above. The system of the present invention is a highly extensible, deterministic (nonprobabilistic), rule-based expert-system shell, designed especially for high-volume transaction processing in an RDBMS environment. The present invention provides a method of representing approval rules as data in a completely extensible, highly flexible manner.
In one embodiment, the expert system shell of the present invention comprises a rule-based expert-system shell that implements a late binding mechanism within an RDBMS environment to create a highly extensible mechanism for maintaining as data, and applying, sets of approval rules governing business transactions generated by other transaction-processing applications. The expert system shell of the present invention can be implemented as a general rule-based expert-system shell for use with widely used commercial RDBMS systems, such as, for example, the Oracle RDBMS environment. The expert system shell of the present invention can store and execute on the RDBMS any number of sets of rules, with one set of rules per transaction type registered with the shell.
In one embodiment, the rules form the logical operator “if set of conditions then action”, where the conditions in the set of conditions can (in principle) be combined using the Boolean operators ‘not’, ‘or’, and ‘and’, as well as a grouping operator (parentheses), and the action is (in principle) an arbitrary SQL statement. Each condition has the form:
Each attribute (decision variable) is defined as an attribute name having a given attribute type (Boolean, string, date, number, currency) and one query string (per transaction type) that returns the attribute's value for any given valid transaction identifier. Each attribute type can be single valued, except the currency type, which has three values (amount, currency denomination, and currency-conversion method).
In one embodiment, the expert system shell of the present invention maintains as data, and applies, sets of approval rules for business transactions generated by other programs running on the RDBMS. Traditionally, transaction-processing applications in business-application suites have either captured approval-process rules as code, or they have given end users very stratified, narrow frameworks for defining approval rules for the application's transactions. For example, the lists of attributes, action types and their actions, and/or approval groups, have been fixed. To change a rule, or to extend an application's rule-representation apparatus, it was necessary to customize the application's source code. Rule sharing between transaction-processing applications was not possible. In contrast, the present invention maintains can share and apply sets of approval rules for business transactions generated by other programs running on the RDBMS.
The present invention is illustrated by way of example and not by way of limitation, in the figures of the accompanying drawings and in which like reference numerals refer to similar elements and in which:
Reference will now be made in detail to the embodiments of the invention, examples of which are illustrated in the accompanying drawings. While the invention will be described in conjunction with the preferred embodiments, it will be understood that they are not intended to limit the invention to these embodiments. On the contrary, the invention is intended to cover alternatives, modifications and equivalents, which may be included within the spirit and scope of the invention as defined by the appended claims. Furthermore, in the following detailed description of the present invention, numerous specific details are set forth in order to provide a thorough understanding of the present invention. However, it will be obvious to one of ordinary skill in the art that the present invention may be practiced without these specific details. In other instances, well known methods, procedures, components, and circuits have not been described in detail as not to unnecessarily obscure aspects of the present invention.
Embodiments of the present invention are directed towards a dynamic extensible rule-based expert system shell for transaction processing database computing environments. The present invention provides a solution that solves each of the problems described above. The system of the present invention is a highly extensible, deterministic (nonprobabilistic), rule-based expert-system shell, designed especially for high-volume transaction processing in an RDBMS environment. Embodiments of the present invention provide a method of representing approval rules as data in a completely extensible, highly flexible manner. The method and system of the present invention and its benefits are further described below
Notation and Nomenclature
Some portions of the detailed descriptions which follow are presented in terms of procedures, steps, logic blocks, processing, and other symbolic representations of operations on data bits within a computer memory. These descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. A procedure, computer executed step, logic block, process, etc., is here, and generally, conceived to be a self-consistent sequence of steps or instructions leading to a desired result. The steps are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated in a computer system. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.
It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the following discussions, it is appreciated that throughout the present invention, discussions utilizing terms such as “processing” or “computing” or “communicating” or “instantiating” or “registering” or “displaying” or the like, refer to the action and processes of a computer system (e.g., computer system 412 of FIG. 4), or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices.
Method and System of the Invention
In one embodiment, the present invention is implemented as a dynamic extensible rule-based expert system shell application (hereafter referred to simply as “the system shell”) for transaction processing database computing environments. The expert system shell product or component of the present invention solves each of the problems of the prior art, for example, with regard to non-extensibility beyond fixed limits imposed by a strict approval-rules paradigm, non-shareable approval rules, non-shareable paradigms or environments, and the like.
The expert system shell of the present invention is a highly extensible, deterministic (non-probabilistic), rule-based expert-system shell, designed especially for high-volume transaction processing in an RDBMS environment. The expert system shell of the present invention applies general theoretical concepts of a deterministic rule-based expert system to the RDBMS arena. The expert system shell of the present invention represents approval rules as data in a completely extensible, highly flexible way that is new to the world of transaction-processing RDBMS transaction processing applications (such as the Oracle Applications suite).
In the expert system shell of the present invention, a business rule has the following form:
In the above example, each “condition” (a condition states that an attribute's value is in a set of possible values; there are two conditions in the illustration above) in the rule's “antecedent” (if part) must be true, for the rule to apply to a transaction. The expert system shell of the present invention can incorporate Boolean operators (e.g., and, or, not) on conditions.
The expert system shell of the present invention represents transaction attributes as an attribute name that several transaction-processing applications can share, while allowing each application to define a unique SQL query string whose execution determines the attribute's value at runtime, for transactions originating in the transaction processing application that originated the transaction. The expert system shell stores the attribute name and the query strings as data in a database table; and it allows end users to create new attribute names, define and edit attribute query strings, and share attribute names across transaction-processing applications. Attributes can be strongly typed as numbers, dates, strings, Boolean, or currency values (which consist of an amount, a currency denomination, and a method for converting to other denominations). Virtually all data in a transaction-processing application can be represented as one of these types. Thus the expert system shell effectively imposes no limits on the transaction attributes that an organization can include in its business rules for transaction approvals. The expert system shell executes transaction attributes' query strings using PL/SQL's runtime-binding (“dynamic PL/SQL”) mechanism, so that defining and fetching values for a new transaction attribute requires no alteration of source code, either in the expert system shell of the present invention (the expert system shell) or in an external transaction-processing application.
All external transaction-processing applications using the expert system shell of the present invention can use the set of conditions defined on a given attribute name, as long as they have defined a query string for the attribute. It should be noted that this feature is necessary for rule sharing.
The expert system shell of the present invention defines an approval action (the “then” part of a rule) as having an approval type, a parameter, and a description (again, all data in a database table). An approval type, in turn, is defined by a name, the name of a PL/SQL package or procedure implementing the type, and a list of approval actions computable by the package or procedure. All of these are also stored as data. One can generally extend a given approval type by defining a new approval action, simply by inserting a new row specifying a new parameter and description into the expert system shell's approval-actions table. (The parameter must adhere to whatever syntactical and semantic requirements the approval type imposes on its actions' parameters.) Moreover, one can create a new approval type by first creating the appropriate PL/SQL package or procedure and then inserting a new row specifying the new approval type's name and procedure or package name into the application's approval-types table. As with transaction attributes, the present invention executes the procedure (or the package's procedures) using runtime binding (dynamic PL/SQL), so that defining a new approval type requires no alteration of source code in the application or an external transaction-processing application. Thus, in particular, the expert system shell imposes no constraints on the type of approvals hierarchy available for use in approval rules.
Approval types and approval actions are shared among all transaction-processing applications that use the expert system shell. The experts system shell's approval-types mechanism is robust in the sense that it allows for the definition of six different types of business rules:
In accordance with the present embodiment, each transaction-processing application can define its own rules in the expert system shell of the present invention, and several transaction-processing applications can share one or more rules, so that an organization using the expert system shell can store shared rules in a single location.
The expert system shell of the present embodiment lets its users define and maintain “approval groups”, ordered groups of approvers, for use in pre-and post-approval rules. The expert system shell's architecture includes features to allow approval-group members to be determined at runtime, e.g., by the value of a transaction attribute. Approval groups are shared across transaction-processing applications.
In one embodiment, the expert system shell's application programming interface (API) has two main features:
In the present embodiment, each time an application calls the expert system shell's API, the expert system shell's rule-processing engine regenerates the relevant transaction's approver list, thereby accounting for possible changes in four areas:
The expert system shell lets end users “register” a transaction-processing application with the expert system shell via a ubiquitous Web interface. Once an application has been registered, it can call the expert system shell's API. Thus, the expert system shell places no constraints on the number or kinds of applications that store approval rules in the expert system shell and rely on the expert system shell to generate approver lists for their transactions, even custom applications can easily use the expert system shell of the present invention.
Finally, the expert system shell includes a robust set of seed data for each transaction processing application (e.g., Oracle Applications) that has migrated to the expert system shell. The seed data include:
Thus the expert system shell of the present invention provides the advantages such as:
Consequently, business organizations can greatly streamline and ease the rule maintenance, rule consistency, and rule flexibility for transaction processing systems. For example, using the expert system shell of the present invention, a business information technology department can create and test in a single person-day a set of approval rules that represent between one and two person-years of code-customization work required in prior art rule-based transaction processing systems. The above man-hour savings have been measured and proven under actual operating conditions. Because of the difficulty of effecting code customizations to express changes of business rules, information technology departments often delay implementing business-rule changes as code customizations for months, or even deny requests for such implementations altogether. Using the expert system shell of the present invention, an information technology department of a business will be able to implement business-rule changes as quickly as management decides on them. Any organization using the expert system shell of the present invention will similarly enjoy two-orders-of-magnitude reductions in costs associated with approval-rule implementation in a transaction-processing RDBMS environment. Additionally, many application customization programmers currently developing and maintaining approval-rules code can migrate to the expert system shell of the present invention and eventually obsolete their particular approvals-rule solutions (thereby dramatically decreasing code-maintenance cost for the one or more business applications customization teams within a business' information technology department).
Additionally, the rule-representation architecture and runtime engine of the expert system shell of the present invention are highly extensible and flexible, allowing non-technical business users to implement an extremely broad class of approval rules as data entered and maintained via a Web interface, modifying the rules at will, usually without any assistance from technical personnel, and always without any modifications to application source code.
Another advantage is the fact that the expert system shell lets organizations share approvals rules across several transaction-processing applications. This will encourage businesses to rationalize and simplify their approval rules, making it easy to specify, for example, a uniform signing authority for managers at a given level of a given hierarchy, regardless of the application in which a transaction occurs.
With respect to external environments (e.g., environments outside of the RDBMS in which a company has implemented the expert system shell of the present invention), any transaction-processing application can use the expert system shell to manage its transactions' approver lists. The application merely requires a simple programming interface to the expert system shell. Thereafter, an end user can register the application with the expert system shell, and the application can begin using the expert system shell to manage its approvals. For example, the application could run outside of an Oracle RDBMS if it included a programming interface to computer system shell's PL/SQL or Java API.
Thus, the present invention is directed towards a dynamic extensible rule-based expert system shell for transaction processing database computing environments. The present invention provides a solution that solves each of the problems described above. The system of the present invention is a highly extensible, deterministic (nonprobabilistic), rule-based expert-system shell, designed especially for high-volume transaction processing in an RDBMS environment. The present invention provides a method of representing approval rules as data in a completely extensible, highly flexible manner.
An end user interacts with the system by calling the application's set of rules by using a Web browser 350 (e.g., executing on a operating system 351 on client hardware 352) to interact with OAM's user interface (UI) 320. An end user also typically interacts with the calling application proper via a Web browser, though this is not an essential feature of the architecture of the present invention.
Computer System Platform
With reference now to
In general, computer system 412 shows the basic components of a computer system used to implement “server” machines and “client” machines. Computer system 412 comprises an address/data bus 400 for communicating information, one or more central processors 401 coupled with the bus 400 for processing information and instructions, a computer readable volatile memory unit 402 (e.g., random access memory, static RAM, dynamic, RAM, etc.) coupled with the bus 400 for storing information and instructions for the central processor(s) 401, a computer readable non-volatile memory unit (e.g., read only memory, programmable ROM, flash memory, EPROM, EEPROM, etc.) coupled with the bus 400 for storing static information and instructions for the processor(s) 401. System 412 also includes a mass storage computer readable data storage device 404 such as a magnetic or optical disk and disk drive coupled with the bus 400 for storing information and instructions. Optionally, system 412 can include a display device 405 coupled to the bus 400 for displaying information to the computer user, an alphanumeric input device 406 including alphanumeric and function keys coupled to the bus 400 for communicating information and command selections to the central processor(s) 401, a cursor control device 407 coupled to the bus for communicating user input information and command selections to the central processor(s) 401, and a signal generating device 408 coupled to the bus 400 for communicating command selections to the processor(s) 401.
The foregoing descriptions of specific embodiments of the present invention have been presented for purposes of illustration and description. They are not intended to be exhaustive or to limit the invention to the precise forms disclosed, and obviously many modifications and variations are possible in light of the above teaching. The embodiments were chosen and described in order to best explain the principles of the invention and its practical application, to thereby enable others skilled in the art to best utilize the invention and various embodiments with various modifications as are suited to the particular use contemplated. It is intended that the scope of the invention be defined by the claims appended hereto and their equivalents.
Number | Name | Date | Kind |
---|---|---|---|
5682535 | Knudsen | Oct 1997 | A |