DOI QR코드

DOI QR Code

Automatic Extraction of Component Collaboration in Java Web Applications by Using Servlet Filters and Wrappers

자바 웹 앱에서 서블릿 필터와 래퍼를 이용한 컴포넌트 협력 과정 자동 추출 기법

  • 오재원 (가톨릭대학교 컴퓨터정보공학부) ;
  • 안우현 (광운대학교 컴퓨터소프트웨어학과) ;
  • 김태공 (인제대학교 컴퓨터공학부)
  • Received : 2016.12.12
  • Accepted : 2017.02.15
  • Published : 2017.07.31

Abstract

As web apps have evolved faster and become more complex, their validation and verification have become essential for their development and maintenance. Efficient validation and verification require understanding of how web components collaborate with each other to meet user requests. Thus, this paper proposes a new approach to automatically extracting such collaboration when a user issues a request for a new page. The approach is dynamic and less sensitive to web development languages and technologies, compared to static extraction approaches. It considers an orignal web app as a black-box and does not change the app's behavior. The empirical evaluation shows that our approach can be applicable to extract component collaboration and understand the behavior of open source web apps.

웹 앱은 빠르게 진화하며 나날이 복잡해지고 있다. 이에 따라 웹 앱의 검증(validation & verification)이 웹 앱의 개발 및 유지보수를 위해 더욱 중요해 지고 있다. 효율적인 검증을 위해서는 웹 앱 실행 시 일어나는 웹 컴포넌트 사이의 협력 과정(collaboration)에 대한 이해가 선행되어야 한다. 이를 위해 본 논문에서는 웹 페이지 요청 시 페이지 생성을 위해 실행되는 웹 컴포넌트와 이들의 협력 과정을 자동적으로 추출하는 기법을 제안한다. 제안하는 기법은 복잡한 웹 개발 언어 및 기술에 덜 의존하는 동적 기법이며 웹 앱 소스를 블랙박스로 보고 웹 앱의 기능 변화 없이 협력 과정을 추출한다. 오픈 소스 웹 앱에 적용하는 실험을 통해 제안하는 기법의 유효성을 확인할 수 있다.

Keywords

References

  1. M. Han and C. Hofmeister, "Modeling request routing in web applications," in Proceedings of the WSE, 2006.
  2. W. GJ. Halfond, "Identifying inter-component control flow in web applications," in Proceedings of the ICWE, 2015.
  3. G. C. Murphy et al., "Software reflexion models: bridging the gap between design and implementation," IEEE Transactions on Software Engineering, Vol.27, No.4, 2001.
  4. T. Parsons, A. Mos, and J. Murphy, "Non-intrusive end-to-end runtime path tracing for J2EE systems," IEE Proceedings-Software, Vol.153, No.4, 2006.
  5. M. H. Alalfi et al., "Automated reverse engineering of UML sequence diagrams for dynamic web applications," in Proceedings of the ICSTW, 2009.
  6. The Essentials of Filters [Internet], http://www.oracle.com/technetwork/java/filters-137243.html.
  7. D. Altar et al., "Core J2EE Pattern," 2nd ed., Prentice Hall, 2003.
  8. J. Oh et al., "Automated transformation of template-based web applications into single-page applications," in Proceedings of the IEEE COMPSAC, 2013.
  9. JSR-000340 Java Servlet 3.1 Specification for Evaluation, http://download.oracle.com/otndocs/jcp/servlet-3_1-fr-evalspec/index.html.
  10. A. Mesbah et al., "Crawling ajax-based web applications through dynamic analysis of user interface state changes," ACM Transactions on the Web, Vol.6, No.1, 2012.
  11. A. Marchetto et al., "Reajax: a reverse engineering tool for ajax web applications," IET Software, Vol.6, No.1, 2012.
  12. S. Mirshokraie et al., "Guided mutation testing for javascript web applications," IEEE Transactions on Software Engineering, Vol.41, No.5, 2015.
  13. S. Mirshokraie et al., "JSeft: automated javascript unit test generation," in Proceedings of the ICST, 2015.
  14. A. Guha et al., "Using static analysis for ajax intrusion detection," in Proceedings of the WWW, 2009.
  15. S. Halle et al., "Eliminating navigation errors in web applications via model checking and runtime enforcement of navigation state machines," in Proceedings of the ASE, 2010.
  16. R. Rodriguez-Echeverria et al., "Generation of WebML hypertext models from legacy web applications," in Proceedings of the WSE, 2012.
  17. J. Oh et al., "MVC architecture driven restructuring to achieve client-side web page composition," in Proceedings of the ICSESS, 2016.