In the traditional software development, business logic is usually hardcoded in applications. When the business logic changes, it will pay a high price. With introduction of rules engine, business logic is separated from the complex application systems. At present, the existing rules engines are gradually mature. With the prerequisite of meeting the needs and ensuring the performance, they try to be as flexible as possible and provide rich functionality. But they are mostly deployed in stand-alone and computing power is hard to be extended.With the rapid development of the Internet, the amount of business data is also growing rapidly. Faced with such a huge scale of data, most of the rules engine will appear powerless. Aiming at this problem, this thesis designs and implements a distributed business rule engine based on Drools. Users can configure the rules in natural language in our system. The system uses unstructured database technology to meet the demand of changeable and unpredictable rule model. And the system provides multiple rule representation, so that different types of rules can be described through the system. It provides a unified management platform for business rules of an enterprise.Based on message communication mechanism and the independent function management module, it can perform multiple tasks according to the setting, and system resources can be expanded flexibly. Through the distributed architecture, the system has a scalable computing power. According to the actual needs of different business, it allocates appropriate number of computing nodes, and adds or reduces nodes at any time.Firstly, this thesis introduces research background of rules engine, related technologies and system requirements analysis. Then it describes the overall design, detailed design and the implementation of each function module in detail. Through the module test and integration test, it verifies the availability of our system. Finally, it summarizes the design and implementation of our system and describes how to optimize the system in the future. |