This invention relates to a method of, and computer program product for, operating a business rule management system and to the business rule management system itself. In one illustrative embodiment, the invention provides a system, computer program product, and method for editing and managing formal business rules through business specification documents.
Within the business world, word processors are extremely useful tools and have a large variety of uses and applications. Many single users, offices, businesses, and organizations use computers and word processors to compose, edit, format and print written documents describing business rules with high quality, in a timely fashion. Business rules are abstractions of the policies and practices of a business organization. Business rules also represent a natural step in the application of computer technology aimed at enhancing productivity in the workplace. In a computer system, business rules can be expressed in either conventional programming languages or natural languages. Programs designed to execute business rules are called rule engines.
Breaking down the barriers between the stakeholders who write documents by using a word processor, and software developers who develop the corresponding application, remains a real challenge. One existing approach is a two-step process that consists of taking advantage of a business analyst or consultant to first interpret a document written by a business person, and then assist the IT organization implementing the business rules as described in the document. The major drawback with this approach is that document and software remain completely independent. Determining correlations between what is in the document and what the rules do is complicated.
A second approach available in business rule management systems is to ask a business person to describe business rules using a controlled natural language (CNLs) instead of natural language. CNLs are subset of natural languages, obtained by restricting both the grammar and the vocabulary in order to reduce or remove ambiguity and complexity. This approach has three important weaknesses. Firstly, prior to being able to write business rules, a business analyst needs to create a vocabulary and a grammar for the business domain. Secondly, continued updates of business rules often require vocabulary and/or language modifications, something not possible by a business user. Finally, decomposing business policies in logical constructs (or merely describing logical constructs using a CNL) is difficult to achieve.
Assuming business rules have been written down in a computer system, a third possible approach consists of creating (or generating) a dedicated user interface such that business users can perform changes directly to the rules. On the one hand, this solution provides a positive user experience for business users who can then directly change the business rules. On the other hand, major business updates within an organization will still be written down in a document first. Again, the document and the software remain completely independent.
Finally, when organizations need to deploy, execute, monitor, or maintain business rules, they often rely on a business rule management system. Most business rule management system vendors provide tools, allowing both technical developers and business analysts to manage business rules. Even though a business rule management system provides business-usable tools, such an approach requires vendor specific products expertise.
According to a first aspect of the illustrative embodiments, there is provided a method of operating a business rule management system, the method comprising accessing a text file describing one or more business processes, accessing bindings of a plurality of text chunks within the text file to a respective plurality of elements within the business rule management system, detecting a change in a bound text chunk in the text file, and modifying the respective bound element within the business rule management system according to the detected change in the bound text chunk in the text file.
According to a second aspect of the illustrative embodiments, there is provided a business rule management system comprising a binding engine arranged to access a text file describing one or more business processes, access bindings of a plurality of text chunks within the text file to a respective plurality of elements within the business rule management system, detect a change in a bound text chunk in the text file, and modify the respective bound element within the business rule management system according to the detected change in the bound text chunk in the text file.
According to a third aspect of the illustrative embodiments, there is provided a computer program product on a computer readable medium for operating a business rule management system, the product comprising instructions for accessing a text file describing one or more business processes, accessing bindings of a plurality of text chunks within the text file to a respective plurality of elements within the business rule management system, detecting a change in a bound text chunk in the text file, and modifying the respective bound element within the business rule management system according to the detected change in the bound text chunk in the text file.
Owing to the illustrative embodiments, it is possible to provide a method, and system for binding (or connecting) portions of a document expressed in natural language to elements of a business rule management system, such as business rules executed by a rule engine. The illustrative embodiments take advantage of a binding engine to create, resolve, and manage links between text chunks of a digital document and their implementation counterparts in, for example, a set of business rules, or in any piece of data used within a business rule management system. Embodiments of the present invention relate to business rule management, and more specifically to user interface for defining, editing, and managing business rules in a business rule management system. In addition to performing textual substitution to create an updated version of specific rules, the binding engine can perform multiple tasks in response to a document change. For instance, a binding engine can deploy a new version of the rules to a rule engine, or communicate with other business rule management system modules such as a decision validation service that tests and simulates the impact of business rule changes.
This illustrative embodiments provide several advantages over existing systems. The improved system is business user friendly, since it allows business users to keep using a document, and a word processor for creating, and changing business rules. The system is natural and productive, as it does not require defining a vocabulary or using a CNL, as mentioned above. Business users can keep using natural language for both defining and updating rules. The system also greatly reduces the initial effort of rule harvesting. The system further provides excellent traceability since the document being the primary user interface for business users, any change made can immediately trigger an update to the application and/or to the rule engine.
In one illustrative embodiment, the method further comprises, after detecting a change in a bound text chunk in the text file, validating the change, prior to modifying the respective bound element within the business rule management system according to the detected change in the bound text chunk in the text file. Although changes in the text file are intended to be fed through directly to the relevant part of the business rule management system, validation of the change to a bound text chunk increases the likelihood of errors being caught before they are implemented. The validation process will depend on the nature of the text chunk that is bound to an element in the business rule management system. For example, if the text chunk is a simple figure such as “$200” representing a discount to a certain type of customer, then a change to “250” would be caught by the validation process as the currency symbol has been changed, probably in error.
Advantageously, the elements within the business rule management system comprise a plurality of rules, and the operation of modifying the respective bound element within the business rule management system according to the detected change in the bound text chunk in the text file comprises modifying a rule. As mentioned in detail above, the principal use of the improved system is to allow business users to update rules within a business rule management system by amending a text file, without having to have any contact with a business rule management system or understand the generation and syntax of the business rules.
The illustrative embodiments may further comprise triggering a specific action in response to modifying the respective bound element within the business rule management system according to the detected change in the bound text chunk in the text file. The business rule management system can be configured to perform one or more actions in response to the changes made to elements within the business rule management system. This could include such actions as sending electronic communication, compiling and sending reports, running test suites etc. All of these can be triggered automatically to ensure that the business rule management system, for example, is able to identify that any changes made do not have any unintended negative consequences.
The illustrative embodiments may further comprise receiving a defined user input and providing access to the bound plurality of text chunks within the text file. The business rule management system can be arranged to provide continuous access to the bindings, in order to allow a suitably qualified administrator to access and review the bindings between text chunks of the text file and the rules (or other elements) of the business rule management system. This provides a level of supervision that ensures that the bindings can be reviewed as and when needed.
The invention, as well as a preferred mode of use and further objectives and advantages thereof, will best be understood by reference to the following detailed description of illustrative embodiments when read in conjunction with the accompanying drawings, wherein:
The binding engine 14 can be implemented purely as a dedicated hardware component or can be implemented as a software component being executed on suitable hardware, such as a network-connected server, which can also run the business rule management system 10. If the binding engine 14 is a software component, then it can comprise a computer program product on a computer readable medium such as a CD-ROM, which is loaded into the hardware when the binding engine is initiated. The computer program product comprises a set of instructions that define the operation of the binding engine 14. The installed computer program product, when executed, controls the interaction of the binding engine 14 with the other components.
The text file 24 describes one or more business processes that are implemented by the business rule management system 10. The system shown in
When the text file 24 was originally created by the business user 22, the business analyst 26 was responsible for creating the business rules 28 that embody the business processes of that document 24. For example, the text file 24 may specify pricing and discount information for different regions for different order sizes of different products. The business analyst 26 will turn these plain text statements (or table etc.) into business rules 28 that can be understood by the business rule management system 10, and will bind the relevant text chunks in the text file 24 to the correct business rules 28, which is stored by the binding engine 14.
When the text file 24 was first created by the business user 22, as a standard text file 24, then the business analyst 26 would take that text file 24 and generate the associated rules 28, using their experience and skills as a business analyst to do so. In addition, the business analyst 26 would create the bindings between the various text chunks 30 and the respective rules 28; thereby linking specific parts of the text file 24 to specific rules 28. The binding engine 14 stores these links, or is arranged to have access to the links, which are saved in a suitable format. Therefore, in relation to the text file 24, the binding engine 14 is aware of the bindings from the text file 24 to the rules 28.
In the text file 24, as shown in the screenshot of
The rule 28 encapsulates a part of the plain text within the text document 24. In the example of
The bindings are known to the binding engine 14, which stores or has access to the bindings between the text file 24 and the rule 28, which are essentially independent of each other in all other regards. The business user 22 can continue to access the text file 24, without necessarily being aware of the bindings between text chunks 30 of the text file 24 and elements (here rules 28) of the business rule management system 10. Similarly, the business rule management system 10 will operate with the rules 28, without needing to have any regard to the bindings that link text chunks 30 to components within the rules 28.
Once the document 24 has been changed, in step S4.1 of
Once the change has been validated, then at step S4.5, the binding engine 14 will modify the rule 28 that is linked to the text chunk 30 that has been changed, according to the nature of the change. So if the business user 22 changes a numeric value from $200 to $220, for example, then this change will be carried over into the rule 28 that is linked to this specific text chunk 30, as defined by the bindings between the text file 24 and the rule 28. Although this example refers to a rule 28 within the business rule management system 10, other elements of the business rule management system 10 could be bound to text chunks 30, not just rules 28.
For example, the business user 22 may include within the text file 24 details of a notification that needs to be made to a named individual (for example in the form of an email) in certain business circumstances. This may then be codified as an action 38 within the business rule management system 10 and the business analyst 26 will ensure that the specific action 38 is bound correctly to the text chunk 30 within the text file 24 that relates to this particular notification. As detailed above, neither the text file 24 nor the actual action 38 need be altered in any way, the binding 40 is stored that contains the detail of the link between the notification and the action 38.
Should the text file 24 be changed in the future in relation to this notification, for example to change the person notified or add in an additional person to the notification, then business user 22 can go ahead and make that change without needing to consider the effect on the business rule management system 10, since the binding engine 14 will resolve, validate and update the business rule management system 10 accordingly. The relevant binding 40 will cause the binding engine 14 to detect the change and this will be validated according to the appropriate schema (which might require the notification to be to a functioning email address, for example). Once validated, the action 38 is triggered accordingly.
The next step in the method is S6.3, which comprises detecting a change in a bound text chunk 30 in the text file 24. The business user 22 (or indeed anyone with access to the text file 24) can make changes to the document 24, for example when organizational or financial changes are made to one or more of the business processes that are detailed in the text file 24. The binding engine 14 detects these changes, either directly by monitoring the text file 24 or through the receipt of a suitable notification. These changes are resolved and validated, to ensure that the nature of the change is within predefined boundaries for acceptable changes.
The final step in the method is step S6.4, which comprises modifying the respective bound element (rule, test suite, action etc.) within the business rule management system 10 according to the detected change in the bound text chunk 30 in the text file 24. The business user's change to the text file 24 is populated through to the correct element within the business rule management system 10 by the binding engine 14, which identifies where in the correct element of business rule management system 10 the change needs to be made and updates that element accordingly. Multiple changes to the text file 24 are all handled by the binding engine 14 at the same time, and the business rule management system 10 is updated to reflect the user's changes.
Number | Date | Country | Kind |
---|---|---|---|
1315971.0 | Sep 2013 | GB | national |