동적 기능 추가를 위하여 관점지향 프로그래밍 기법을 이용한 BPEL 엔진의 설계와 구현

Design and Implementation of a BPEL Engine for Dynamic Function using Aspect-Oriented Programming

  • 투고 : 2009.12.23
  • 심사 : 2010.04.27
  • 발행 : 2010.08.15

초록

BPEL은 웹 서비스와 상호작용하는 워크플로우 언어의 표준으로서 다양한 응용에서 사용되고 있다. 하지만 특정 응용에서는 BPEL에 없는 추가적인 기능이 요구되어 적용하기 어렵다. 본 논문은 관점지향(aspect-oriented) 프로그래밍 기법을 이용하여 BPEL 엔진에 새로운 기능을 추가할 수 있는 시스템을 보인다. BPEL에 새로운 기능을 동적으로 추가하기 위해 새로운 기능을 기술할 수 있는 JWX 문서를 정의하고, 이를 BPEL에 적용하기 위한 관점지향 프로그래밍 기법의 시스템을 제안한다. JWX 문서는 BPEL 문서에 새로운 기능을 추가하기 위하여 자바 프로그램을 기술할 수 있는 XML 기반의 문서이다. 관점지향 프로그래밍 기법은 핵심적인 요구사항과 부가적인 요구사항 사이의 낮은 결합도를 보장하고 있으므로 기존의 프로그램을 수정하지 않고 기능을 추가할 수 있다. 또한 본 시스템은 B2J라는 BPEL 엔진을 관점지향 프로그래밍 기법을 통해 확장하여, 자바 프로그램과 JWX 문서의 새로운 기능 프로그램을 직조하고 실행시킨다. 이 방법을 이용하면, B2J가 제공하는 BPEL의 기능은 그대로 사용하면서 새로운 기능만 개발하여 적은 노력과 비용으로 기능이 추가된 BPEL 엔진을 개발할 수 있다. 본 시스템은 현재 BPEL이 제공하고 있지 않은 조건을 처리할 수 있는 규칙엔진을 BPEL에 추가하거나, 상황인지 환경에 사용할 수 있는 BPEL 워크플로우 시스템을 연구하는데 이용할 수 있다.

BPEL is a standard workflow language, which interacts with Web Services and is used in various applications. But it is difficult to use BPEL for specific applications which require additional functions. In this paper, we present a system which can add new functions to BPEL based on an aspect-oriented programming (AOP) technique. In order to add new functions to BPEL, we define a JWX document format that can describe new functions to apply to BPEL. JWX is XML-oriented document that can code the corresponding Java program in order to dynamically add new functions to BPEL documents. It is possible for BPEL workflow to add new functions without modifying the existing programs using the AOP technique, which guarantees low degree of coupling between key and additional requirements. Additionally this systems weaves based on new functions of Java program and JWX document by expanding BPEL engine called B2J based on AOP and execute them. Therefore it is possible to develop a new BPEL engine with additional functions easily and with low cost. The new system can execute additional conditions that the current BPEL engine doesn’t provide. The new system using functions of BPEL supplied by B2J. The new system can be used to add a new rule engine, which isn't currently provided.

키워드

참고문헌

  1. BPEL, http://www-128.ibm.com/developerworks/library/specification/ws-bpel/.
  2. Eclipse BPEL Project, http://www.eclipse.org/bpel/.
  3. Drools, http://www.jboss.org/drools.
  4. F. Rosenberg and S. Dustdar, "Business Rules Integration in BPEL - A Service-Oriented Approach," In Proceedings of the 7th International IEEE Conference on E-Commerce Technology (CEC 2005), 2005.
  5. Mingjie Sun, Bixin Li, Pengcheng Zhang, "Monitoring BPEL-based Web Service Composition Using AOP," Proceedings of the 2009 Eigth IEEE/ASIC International Conference on Computing and Information Science, pp.1172-1177, 2009.
  6. Gregor Kiczales, John Lamping, Anurag Mendhekar, Chris Maeda, Cristina Videira Lopes, Jean-Marc Loingtier, and John Irwin, "Aspect-Oriented Programming," ECOOP, pp.220-242, 1997.
  7. B2J, http://www.eclipse.org/stp/b2j/.
  8. J. Choi, Y. Cho, "A context-aware workflow system for dynamic service Adaptation," Computational Science and Its Applications ICCSA 2007, pp.335-345, 2007.
  9. A. Charfi, M. Mezini, "Aspect Oriented Web Service Composition With AO4BPEL," ECOWS 2004 volume 3250 of LNCS. Springer, 2004.
  10. C. V. Lopes, T. C. Ngo, "The Aspect Markup Language and its support of Aspect Plugins," ISR Technical Report UCI-ISR-04-8, University of California, Irvine, 2004.
  11. eclipse AspectJ, http://www.eclipse.org/aspectj.
  12. eclipse, http://www.eclipse.org.
  13. Spring Framework, http://www.springsource.org.
  14. XPath, http://www.w3.org/TR/xpath.
  15. 곽동규, 유재우, "내장형 시스템 소프트웨어를 위한 XML 기반의 프로파일링 도구의 설계와 구현", 한국인터넷정보학회 논문지 제11권 1호, pp.143-151, 2010. 2.
  16. DTrace, http://www.solarisinternals.com/wiki/index.php/DTrace_Topics.
  17. RTRT, http://www.ibm.com/developerworks/down-load/s/r/rtrt.
  18. J. Shen, Y. Yang, "From BPEL4WS to OWL-S: Integrating E-Business Process Descriptions," In SCC '05: Proceedings of th 2005 IEEE International Conference on Services Computing, pp.181- 190, 2005.