A Compiler Based Rule Engine for Developing Changeable Component

가변적인 컴포넌트 개발을 위한 컴파일러 방식의 룰 엔진

  • Published : 2006.12.15

Abstract

To improve reusability and adaptation of variable components, rule-based component development has been used. Rule engines usually need additional script languages for rule expression and have difficulty in expressing complex business rules. In this paper, we propose a compiler-based rule engine for rich rule expression and improving performance. This rule engine uses Java programming language to express conditions and action parts of rules and that it can easily express complex business rules. It creates and executes condition and action objects at run time. In view of Performance, the rule engine is better than a script based rule engine. According to our experiments, our compiler-based nile engine shows 2.5 times better performance that script-based JSR 94 rule engine.

가변적인 컴포넌트의 재사용성이나 적응성을 높이기 위해 룰 기반 컴포넌트 개발 방법들이 제안되고 있다. 룰 기반 컴포넌트 개발에서 사용하는 룰 엔진들은 룰을 표현하기 위해 추가적인 스크립트 언어가 필요하며 따라서 복잡한 비즈니스 룰을 표현하는데 어려움이 많다. 본 논문에서는 다양한 룰 표현과 성능 향상을 위한 컴파일러 기반의 룰 엔진을 제안한다. 제안한 룰 엔진은 룰의 컨디션과 액션 부분을 표현하기 위해 자바 프로그래밍 언어를 사용한다. 따라서 복잡한 비즈니스 룰을 쉽게 표현할 수 있으며 실행 시에 동적으로 룰의 컨디션과 액션 객체를 생성해서 실행시킬 수 있다. 성능 면에서도 제안한 룰 엔진은 스크립트 기반 룰 엔진보다 우수하다. 성능 실험에 의하면 컴파일러 기반의 룰 엔진 성능은 스크립트 기반 룰 엔진인 JSR-94 보다 2.5배의 높은 성능을 보이고 있다.

Keywords

References

  1. M.Morisio and C.B.Seaman et al, 'Investigating and improving a COTS-based software development process,' ICSE 2000, pp. 31-40, 2000 https://doi.org/10.1109/ICSE.2000.870394
  2. Jim Q. Ning, 'Component-Based Software Engineering,' IEEE Software, 1997 https://doi.org/10.1109/AST.1997.599909
  3. Jan Bosch. 'Superimposition: A Component Adaptation Technique. Information and Software Technology,' 41(5):257-273, March 1999 https://doi.org/10.1016/S0950-5849(99)00007-5
  4. Lars Geyer and Martin Becker, 'On the influence of Varaibilities on the Application-Engineering Process of a Product Famliy,' Proceedings of SPLC2, 2002
  5. Yonghwan Lee, Eunmi Choi, Dugki Min, 'A Rule Based Analysis Method for Cooperative Business Application,' GCC 2005, LNCS 3795, pp. 1155-1160. 2005 https://doi.org/10.1007/11590354_137
  6. Peter Herzum and Oliver Sims, 'The Business Component Approach,' OOPSLA'98 Business Object Workshop IV, 1998
  7. Nierstrasz Oscar, Meijler Theo Dirk, 'Research Directions in Software Composition,' ACM Computing Surveys, Vol. 27, No.2, pp. 262-264, June 1995 https://doi.org/10.1145/210376.210389
  8. Johannes Sarnetinger, 'Classification of Composition and Interoperation,' OOPSLN'96 Poster Presentation
  9. Nierstrasz Oscar, Meijler Theo Dirk, 'Research Directions in Software Composition,' ACM Computing Surveys, Vol. 27, No.2, pp. 262-264, June 1995 https://doi.org/10.1145/210376.210389
  10. Ralph Keller and Urs Hlzle, 'Binary Component Adaptation,' Lecture Notes in Computer Science, vol.1445, 1998
  11. Jeong Ah Kim, jinYong Taek, SunMyung Hwang, 'Rule-based Component Development,' SERA 2005, Third ACIS International Conference on 11-13 Aug. 2005 Page(s):70-74 https://doi.org/10.1109/SERA.2005.58
  12. Jess Rule Engine, http://herzberg.ca.sandia.gov/jess/
  13. JSR-94, http://www.jcp.org/aboutJava/communityprocess/reviewer/jsr094
  14. Peter Herzum and Oliver Sims, 'Business Component Factory,' OMG Press, 2000