Abstract
Web service mashup bacomes one of the important web application development methods. This paper considers a client based mashup, where a page interfaces many service methods asynchronously. Browser systems execute callbacks when the corresponding reply arrives, possibly concurrent to user interface actions. In this case, callbacks and user interface actions share data memory and screen. Moreover, when the user is able to send another request before the previous ones have replied, the shared resource problem becomes more complicated. In order to solve the multiple requests problem, our contributions are as follows. First, we modeled a mashup page with user actions and callbacks, and we presented several types of callbacks. Secondly, concurrency condition is defined between callbacks and user actions in terms of shared resources, and the test method is presented. Also, we proposed the serialization approach to guarantee the safe execution of callbacks. Finally, we applied the proposed concurrency condition on XForms language and extended the XForms browser to implement the proposed approach. The prototype implementation showed that the proposed approach helps enhancing user experience on mashup pages.
웹서비스의 매시업이 새로운 소프트웨어 개발방법으로 주목받고 있다. 본 논문에서는 하나의 페이지가 여러 서비스 메소드를 비동기 호출의 방식으로 인터페이스하는 클라이언트 매시업을 고려한다. 비동기 웹서비스 호출의 컬백이 사용자 인터페이스와 병행하여 수행되는 경우 컬백은 사용자 인터페이스의 연산들과 메모리와 화면을 공유한다. 또한 사용자가 서비스 요청의 회신이 도착하기 전에 다른 요청을 전송하는 다중 호출이 가능하다면 공유 자원에 대한 병행 처리의 문제는 더 복잡해진다. 이 문제를 해결하기 위한 본 논문의 기여는 다음과 같다. 첫째, RESTful 서비스의 매시업 페이지를 사용자 액션과 컬백으로 모델링하고, 매시업 페이지에서 다중 요청의 유형을 제시하였다. 둘째, 컬백과 사용자 액션의 충돌을 공유자원의 측면에서 정의하고 병행 가능한 컬백의 조건을 제시하였다. 셋째, 공유 자원에 대한 충돌이 가능한 컬백을 순차화하여 수행하는 방법을 제시하였다. 마지막으로 제안된 컬백의 병행가능성 검사와 순차화 방법을 XForms 언어에 적용하고 브라우저에서 구현하여 사용자 경험을 향상시킬 수 있음을 실험적으로 증명하였다.