1. Field of the Invention
The present invention generally relates to business process management and, more particularly, to the application of meta-rules that support dynamic rule based business systems to evaluate and select specific business rules.
2. Background Definitions
Business Rules
Business Rules are expressions that describe and control the processes, operations and behavior of how an enterprise, and the applications that support it, performs. Rules define, constrain or validate some aspect of a system through the evaluation of conditions and context of the rule invoker. Rules assert influence over business or system behavior by recommending actions to be undertaken. A rule provides its invoker a directive on how to proceed. Further, rules provide a generalized mechanism for officiating and specifying frequently changing practices, freeing system components from the burden of evaluating the evolving business and system environments.
In the Meta-Rules System, the origin of rules rests in the domain of policy. Policy is a descriptive intention of both how a business process or system is to work and added control on a business process itself. A policy refers to the set of externalized properties of a target system. Policy possesses certain attributes: it has to be both measurable and enforceable. Policy is applied to all levels of modeling, including: business, operation, and implementation. Policy is composed of statements that describe:
Rules are but one realization of policy. Applications and business processes implicitly contains policy that defines how the system works. Even programming logic, for example, embodies policy within its sequences of coded statements. In programming logic, policy is expected to be immutable, as modifications of code demand many skills and resources and generally results in a disruption of the application and business process. However, when policy is transformed into rules, and segregated from the static processes that employ it, it becomes easier to dynamically manage the system as a whole.
Rules are expressions that represent an implementation of policy. For example, a policy may simply state that “for our best customers order processing time must always be expedited.” Other policies may exist in the system. The aggregation of these policies my result in the creation of one or more rule expressions such as: “gold” (best) customers are those that order greater than $100M per year; a gold customer is any customer placing an order greater than $1M; and, all orders for gold customers are expedited.
Context plays a significant role in the use of rules, and includes such condition and environmental information as: the current state of the process, the type of project task, specified business practices of the organization, historic data, and the predispositions of the specific user. Context may be contained in the various artifacts, objects and databases within the system. Therefore, rules employ a wide range of contextual information that encompasses an extensive scope of knowledge: they represent thresholds for actions, express acceptable business practices, and influence configuration, customization and personalization activities.
Rules may be used to influence the entire end-to-end process, spanning solution customization during build time, and presentation and application logic during runtime. Integration of business rules can affect a wide range of functional elements:
Information representing business rules have traditionally been embedded in application code and database structures. The problem with this is it:
By separating rules from procedural code, businesses can define and manage business practices as an entity independent from IT (Information Technology) implementation. Rules (and its predecessor policies) may be expressed non-programmatically, using descriptive terms that are more intuitive to business managers and other non-IT personnel.
In the Meta-Rules System, a rules system is one that contains the knowledge required to answer specific questions relating to business process or computational issues. The rules system provides answers in the form of messages; it is the responsibility of the invoker to take appropriate action based on the information provided. The rules system is deliberately limited to an advisory function and is not enabled to start actions or spin-off processes. As such the rules system models an oracle that is able to analyze questions and their context and provide recommended answers. In summary, an oracle is a “know all” external entity that is consulted for making decisions.
In performing its operation, the rules system consults the rules repository, data from autonomous agents, data from historical databases, business objects, artifacts, and other sources to evaluate and generate an answer. The rules system assists with problem tasks, such as: dynamic processes decision point where rules drive recommendations influencing the navigation of a possible solution path, dynamic optimization where rules are used to determine the best fit given multiple competing rules and real-time environmental conditions and decision support where rules are used to adjudicate a conflict resolution, recovery or negotiation process when conflicts are detected.
In the context of the Meta-Rules System, examples of business rules are:
In the Meta-Rules System, Meta-Rules are a special set of business rules whose purpose is to enable business rules selection and subsequent rule invocation by the business rules manager. Contained within the Meta-Rule are business policy and other information that enables business rule selection. Result of Meta-rules may be:
Two examples of Meta-Rules are:
In the examples described above, Meta-Rules do not provide the answer to the specific question being asked by the invoking applications, but rather, they provide the necessary information to the rule manager for it to invoke the most appropriate business rules, that, once executed, will return the answer the application has requested.
According to the invention, there are provided the concept and application of Meta-Rules to support dynamic rule based business systems. The use of business rules—expressions of when, how and under what condition a business system is to perform a given unit of work—is well known. Typically, business rules are segregated from the application procedural code that uses them, allowing a business practitioner to define and manage their business practices independent from IT implementation. However, the separation of rules from application program logics requires the application programmer to know in advance the identity of the rule (either by specific name or reference) to be used at a given point in the logic. This places undue restriction on the use of business rules, resulting in a lack of system flexibility and a resistance to the adaptation to changing business practices. To address this problem, the introduction of Meta-Rules—rules about business rules—is asserted. Meta-rules allows the system to dynamically select and identify specific business rules to be executed within a given business application. By enabling a higher level of abstraction, and relying on rules to resolve specific business rule selection and invocations, Meta-rules further separate the binding of business knowledge and practice from application programming logic. The application programmer is freed from having specific knowledge of the business rule; all that is required is an assertion that a rule is to be used. This invention further describes the concept of Meta-rules, describing how it works, introduces middleware components necessary to support the concept, and illustrates how it is used in a business system.
This invention describes the functional elements that comprise Meta-rules that support dynamic rule based business systems, a novel method and framework (henceforth referred to as the Meta-Rule System) whose objective is to support the advanced abstract separation and dynamic resolution of business rules and programming logic. The Meta-Rules System is composed of a customized assemblage of built-time and run-time components and artifacts proxies, Meta-rules, a rules manager service, and rules engines. Taken as a whole, these form a new method for support dynamic rule based business systems.
Problem Statement:
The foregoing and other objects, aspects and advantages will be better understood from the following detailed description of a preferred embodiment of the invention with reference to the drawings, in which:
The Meta-Rules System is a framework that supports the abstract invocation of business rules. The use of Meta-Rules evaluate and select the appropriate business rule and the invocation of the specific business rule. This system supports run-time services that, using Meta-Rules, perform dynamic selection and invocation of business rules. The basic framework of the Meta-Rules System is illustrated in
Referring to
The Rules Proxy 111 is the programming artifact that is used to support messages between the Application Program 11 and the Rules Manager 12. It is also used to contain the results from an invocation of Meta-rules that is returned to the rules manager for interpretation and additional processing. Thus, the information contained in the Rule Proxy 111 is used by the Rules Manager 12 to support both Meta-Rules and business rules to enable their respective operations.
Referring to
The Rules Manager 12 is a middleware service that acts as an intermediary between the Application Program 11 and the Business Rules Engines 13. It consists of various components that manages and facilitates the use of Meta or business rules, providing methods for component communication, rules invocation, context management, state change and process management.
Referring to
Meta-Rules are rules that determine business rule selection. The Meta-Rules Manager 32 performs the specialized function of interpreting the resultants of Meta-rules invocation, leading to the selection of business rules and rule engine. Meta and business rules resolution and binding may need additional evaluation that requires data and other processing within the service invoker (e.g., Application Program and Meta-rules). To preserve the separation of Application Program logic from Meta or business rules, the Application Program is provided a specification that directs additional processing, for rule resolution, driven by the Rule Manager State Machine 33. The state machine may use these instructions to direct contextual data acquisition, condition evaluation and late rule binding. This function has several values: it enables greater partitioning and abstraction of business rules by application; it supports increased flexibility and facilitates use and modification of business rules; and enhances code reuse and function.
The evaluation and processing of a Meta or business rule may involve data and other information contained in business artifacts. This information is based on the context of the Application Program, as represented in the context information area of the Rule Proxy. Using this information, and possibly coupled with state machine instructions, the Context Manager 34 enables interfaces that establishes access to data sources (databases or business artifacts) and extracts required information needed to process Meta or business rule requests.
The process flow for using Meta-rules is somewhat complicated due to the double invocation to the Business Rules Engine for each request for business rules usage by the Application Program. The first invocation to the Business Rules Engine is to use Meta-rules to determine the appropriate business rule to use. The second invocation to the Business Rules Engine is to invoke the business rule specified by the Meta-rule. While this does result in more processing and resource overhead, rule systems have significantly increased their efficiency, and are coupled to newer, faster processing and communication hardware; therefore, the issue of performance is not perceived as an encumbrance.
The Application Program 11 contains Rule Proxies 111 that indicates the use of rules to provide information and evaluation required by the programming logic. The Rule Proxy 111 contains abstract references indicate program intent, along with optional context, state machine information and parametric data. The Rule Proxy is passed to the Rules Manager 12 component.
The Rule Resolver 31 receives the Rule Proxy 111, interrogates it and with the help of the Meta-rules Manager 32, selects the Meta-rule and Business Rule Engine 13 to invoke. The results of firing the Meta-rule are placed in the Rule Proxy 111 and are returned to the Rules Resolver 31. Again, the Rule Resolver 31 interrogates the Rule Proxy 111 and it, with the help of the Meta-rules Manager 32, selects the business rule and rule engine to invoke. However, the Rule Resolver 31 also determines that additional context information is required prior to invoking the business rule.
Instructions on how to obtain additional contextual data are specified in the State Machine instructions contained in the Rule Proxy when it was constructed by the Application Program. These instructions are passed to the Rule Manager State Machine 33 that processes and executes them. To obtain context data, the State Machine 33 instructs the Context Manager 34 to obtain data from data stores 41 or business artifacts 42. This information is included in the rule data area of the Rule Proxy 111.
With the business rule selected, and the additional context information obtained, the Rule Resolver 31 invokes the specified business rule on the appropriate Business Rule Engine 13. The results from the firing of the rule are written in the rule data area of the Rule Proxy and are returned to the Rule Resolver 31. The Rule Resolver 31 returns the Rule Proxy 111 back to the invoking Application Program 11 that uses the information within the program logic.
The preferred embodiment of the Meta-Rules System to support a Business Activity Management (BAM) function will now be described. Business Activity Monitoring is the realization of a business process level sense-and-respond function whose purpose is to support the efficient flow of business activities within the computing environment. Using real-time critical business performance indicators, BAM improves the effectiveness and response times of business actions and decisions by monitoring business operations and intelligently responding to exception conditions specified in business commitment policy. BAM functions involve more than mechanically reacting to system alerts; rather, it needs to apply dynamic context sensitive logic to deduce the proper management actions. Examples of BAM operations include problem self-determination, risk self-detection, business analytics, process optimization, anomaly prevention, automatic invocation of compensation methods and self-adaption to changes within the computing environment. To accomplish these objectives, a BAM system consults business polices, in the form of business rules, to evaluate when business commitments have been broken, and to determine what corrective actions are best suited to automatically initiate.
With the rapid advancement of dynamic e-business technology, organizations are no longer satisfied with isolated e-business applications and have the heavy burden of application integration. Corporate customers prefer to have an industry solution that is customized for their needs and ready to be used. IT consulting institutions, like IBM Global Services, have the growing pressure to deliver domain-specific solutions on time and at a low cost. A dynamic e-business solution refers to an integrated set of applications and procedures that constitute cross-enterprise business processes such as customer relationship management (CRM) and supplier chain management (SCM). The key enabler of the next generation business process management allows customers monitor and control their assets from the perspectives of business processes. Such new paradigm for business process management is coined as Business Activity Monitoring (BAM). Compared with traditional management domains, BAM covers monitoring and control at level of business processes. Hence, BAM subsumes conventional system management, application management, and network management. It provides an end-to-end business process management for domain-specific solution through policies and mechanisms on core process real-time monitoring, exception healing and repair, alert and report infrastructure, process event infrastructure, monitor/configuration agent deployment, solution management decision support for optimization of source selection and supply chain inventory, and predictive/proactive business process performance optimization.
One of the key challenges of using business policies to drive BAM, is to seamlessly integrate this policy into the components of the business application. Additionally, we seek to reduce the complexity of the application development process. There are two objectives:
The functional elements that comprise Rule-based Business Activity Monitoring (RuleBAM), a novel framework whose objective is to support the requirements of dynamic sense and control of business applications will now be described. RuleBAM is composed of a customized assemblage of built-time and run-time technologies that includes: business rules and rule engines, that when taken as a whole, form a new method for supporting policy driven business application management enabled by business rules.
Within the context of the Meta-Rules System the key objectives of RuleBAM are:
At system build time, RuleBAM is defined and specified using business models 51 that include such representation as business operations model 511, business execution model 512 and business processes definitions model 513. In particular, the business processes definition model 513 specifies how performance of business process flows 52 is to be monitored and measured. This specification includes:
During runtime, business process flows 52 execute, and as appropriate, probe points 54 issue events that contain information on business activity. Probe point information is sent to the BAM system 56 KPI Processor 561 which determines what to do with the information. For example, if probe point P1 and P2 reflect the length of time to perform processes, the KPI Processor 561 must determine if the threshold, specified and contained in a business rule, has been exceeded. The KPI Processor 561 invokes the Monitor Process 562 to evaluate the information. Within the programming logic of the Monitor Process 562 are Rule Proxies which are used as input to the Meta-Rules System.
Rule Proxies are forwarded to the Rule Manager 12 which, using the process described in
An example of a Business Activity Monitoring Performance Interface is illustrated in
Two examples of Meta-Rules are presented as follows. In these examples the description of the meta-rules described, followed by the expression of the meta-rule based on a schema presented in
1. If the intent is to determine the cost for a product for a customer, determine the appropriate business catalog, and select rule engine that supports it, and select the business rule that generates the most customer value (for example least cost, or fastest delivery time). The XML Schema is illustrated as follows:
2. If the intent is to select a service provider to fulfill a business process, based on the type of processes indicated, select the best evaluation method and rule set to generate an optimum selection. The XML Schema is illustrated as follows:
While the invention has been described in terms of a single preferred embodiment, those skilled in the art will recognize that the invention can be practiced with modification within the spirit and scope of the appended claims.
This application is a continuation of U.S. patent application Ser. No. 10/852,421 filed May 25, 2004 now abandoned, and claims the benefit thereof.
Number | Name | Date | Kind |
---|---|---|---|
6108786 | Knowlson | Aug 2000 | A |
6138139 | Beck | Oct 2000 | A |
6167395 | Beck | Dec 2000 | A |
6170011 | Macleod Beck | Jan 2001 | B1 |
6381640 | Beck | Apr 2002 | B1 |
6434628 | Bowman-Amuah | Aug 2002 | B1 |
6738975 | Yee | May 2004 | B1 |
6820135 | Dingman et al. | Nov 2004 | B1 |
7027463 | Mathew | Apr 2006 | B2 |
7039595 | Lilly | May 2006 | B1 |
7151438 | Hall | Dec 2006 | B1 |
7263505 | Forlai | Aug 2007 | B1 |
7318046 | Wellons | Jan 2008 | B1 |
7340406 | Tribble | Mar 2008 | B1 |
7386475 | Parasnis | Jun 2008 | B2 |
7444342 | Hall | Oct 2008 | B1 |
7478404 | Campbell | Jan 2009 | B1 |
7565443 | Rossmanith | Jul 2009 | B2 |
7606727 | Pederson | Oct 2009 | B1 |
7870033 | Swanson | Jan 2011 | B2 |
8015541 | Srinivasan | Sep 2011 | B1 |
10364662 | Basu | Jul 2019 | B1 |
20010011295 | Kobayashi | Aug 2001 | A1 |
20010011366 | Beck | Aug 2001 | A1 |
20010025309 | Macleod Beck | Sep 2001 | A1 |
20020022982 | Cooperstone | Feb 2002 | A1 |
20020069081 | Ingram | Jun 2002 | A1 |
20020107957 | Zargham | Aug 2002 | A1 |
20020161624 | Bradlee | Oct 2002 | A1 |
20020165903 | Zargham | Nov 2002 | A1 |
20030023573 | Chan | Jan 2003 | A1 |
20030079146 | Burstein | Apr 2003 | A1 |
20030090514 | Cole | May 2003 | A1 |
20030101338 | Mullen | May 2003 | A1 |
20030191679 | Casati | Oct 2003 | A1 |
20030208493 | Hall | Nov 2003 | A1 |
20030220860 | Heytens | Nov 2003 | A1 |
20030220901 | Carr | Nov 2003 | A1 |
20030233376 | Bussler | Dec 2003 | A1 |
20040054610 | Amstutz | Mar 2004 | A1 |
20040153536 | Strassner | Aug 2004 | A1 |
20040194069 | Surasinghe | Sep 2004 | A1 |
20040226051 | Carney | Nov 2004 | A1 |
20040250258 | Raghuvir | Dec 2004 | A1 |
20050005259 | Avery | Jan 2005 | A1 |
20050071222 | Bigus | Mar 2005 | A1 |
20050086640 | Kolehmainen | Apr 2005 | A1 |
20050102530 | Burrows | May 2005 | A1 |
20050149558 | Zhuk | Jul 2005 | A1 |
20050164704 | Winsor | Jul 2005 | A1 |
20050171980 | Fernandez | Aug 2005 | A1 |
20050216555 | English | Sep 2005 | A1 |
20050222931 | Mamou | Oct 2005 | A1 |
20050223109 | Mamou | Oct 2005 | A1 |
20050228808 | Mamou | Oct 2005 | A1 |
20050232046 | Mamou | Oct 2005 | A1 |
20050234969 | Mamou | Oct 2005 | A1 |
20050235274 | Mamou | Oct 2005 | A1 |
20050240354 | Mamou | Oct 2005 | A1 |
20050240592 | Mamou | Oct 2005 | A1 |
20050251501 | Phillips | Nov 2005 | A1 |
20050251527 | Phillips | Nov 2005 | A1 |
20050262085 | Durocher | Nov 2005 | A1 |
20050262188 | Mamou | Nov 2005 | A1 |
20050262189 | Mamou | Nov 2005 | A1 |
20050262190 | Mamou | Nov 2005 | A1 |
20050262191 | Mamou | Nov 2005 | A1 |
20050262192 | Mamou | Nov 2005 | A1 |
20050262193 | Mamou | Nov 2005 | A1 |
20050262194 | Mamou | Nov 2005 | A1 |
20050267892 | Patrick et al. | Dec 2005 | A1 |
20050283397 | Rimsky | Dec 2005 | A1 |
20060004802 | Phillips | Jan 2006 | A1 |
20060009991 | Jeng | Jan 2006 | A1 |
20060010195 | Mamou | Jan 2006 | A1 |
20060026054 | Barel | Feb 2006 | A1 |
20060069717 | Mamou | Mar 2006 | A1 |
20060075396 | Surasinghe | Apr 2006 | A1 |
20060085290 | Pohoryles | Apr 2006 | A1 |
20060095274 | Phillips | May 2006 | A1 |
20060143439 | Arumugam | Jun 2006 | A1 |
20060195816 | Grandcolas | Aug 2006 | A1 |
20060206503 | Gaurav | Sep 2006 | A1 |
20060206523 | Gaurav | Sep 2006 | A1 |
20060218061 | Mouline | Sep 2006 | A1 |
20060241961 | Tsyganskiy | Oct 2006 | A1 |
20060241999 | Tsyganskiy | Oct 2006 | A1 |
20060242170 | Tsyganskiy | Oct 2006 | A1 |
20060242171 | Tsyganskiy | Oct 2006 | A1 |
20060242172 | Tsyganskiy | Oct 2006 | A1 |
20060242173 | Tsyganskiy | Oct 2006 | A1 |
20060242174 | Tsyganskiy | Oct 2006 | A1 |
20060242175 | Tsyganskiy | Oct 2006 | A1 |
20060242176 | Tsyganskiy | Oct 2006 | A1 |
20060242177 | Tsyganskiy | Oct 2006 | A1 |
20060242188 | Tsyganskiy | Oct 2006 | A1 |
20060242196 | Tsyganskiy | Oct 2006 | A1 |
20060242197 | Tsyganskiy | Oct 2006 | A1 |
20060242207 | Tsyganskiy | Oct 2006 | A1 |
20060259603 | Shrader | Nov 2006 | A1 |
20060282458 | Tsyganskiy | Dec 2006 | A1 |
20060293934 | Tsyganskiy | Dec 2006 | A1 |
20060293935 | Tsyganskiy | Dec 2006 | A1 |
20060293940 | Tsyganskiy | Dec 2006 | A1 |
20060294158 | Tsyganskiy | Dec 2006 | A1 |
20070027801 | Botzer | Feb 2007 | A1 |
20070027934 | Roehrle | Feb 2007 | A1 |
20070038683 | Dixon | Feb 2007 | A1 |
20070094199 | Deshpande | Apr 2007 | A1 |
20070100684 | Gartner | May 2007 | A1 |
20070118545 | Chandrasekharan | May 2007 | A1 |
20070150480 | Hwang | Jun 2007 | A1 |
20070168370 | Hardy | Jul 2007 | A1 |
20070198586 | Hardy | Aug 2007 | A1 |
20070255713 | Li | Nov 2007 | A1 |
20070255715 | Li | Nov 2007 | A1 |
20070255781 | Li | Nov 2007 | A1 |
20080059263 | Stroman | Mar 2008 | A1 |
20080086564 | Putman | Apr 2008 | A1 |
20080086717 | Brunn | Apr 2008 | A1 |
20080104092 | Cummins | May 2008 | A1 |
20080115104 | Quinn | May 2008 | A1 |
20080133322 | Kalia | Jun 2008 | A1 |
20080183552 | O'Hagan | Jul 2008 | A1 |
20080201248 | Wellons | Aug 2008 | A1 |
20080288310 | Aaltonen | Nov 2008 | A1 |
20080307392 | Racca | Dec 2008 | A1 |
20080313018 | Kamm, IV | Dec 2008 | A1 |
20080320486 | Bose | Dec 2008 | A1 |
20090006159 | Mohr | Jan 2009 | A1 |
20090063242 | Shaouy | Mar 2009 | A1 |
20090259500 | Sahoo | Oct 2009 | A1 |
20090282392 | Russell | Nov 2009 | A1 |
20090287775 | Ng | Nov 2009 | A1 |
20100169224 | Ramberg | Jul 2010 | A1 |
20110004509 | Wu | Jan 2011 | A1 |
20110066486 | Bassin | Mar 2011 | A1 |
Number | Date | Country |
---|---|---|
2006269467 | Jan 2007 | AU |
2607698 | Apr 2008 | CA |
WO-0211027 | Feb 2002 | WO |
WO200504330 | May 2005 | WO |
WO-2005043330 | May 2005 | WO |
Entry |
---|
IP.IQ.com12058071 Searches. (Year: 2021). |
GoogleScholar12058071 Searches. (Year: 2021). |
Jeng, JJ, “RuleBAM: A Rule-Based Framework For Business Activity Management”, IEEE Conference 2004, pp. 262-270. (Year: 2004). |
Kardais, P., “Expressing and Organizing Business Rules”, Information and Software Technology 46 (2004), pp. 701-718. (Year: 2004). |
Number | Date | Country | |
---|---|---|---|
20080177689 A1 | Jul 2008 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 10852421 | May 2004 | US |
Child | 12058071 | US |