KR101183675B1 - 비동기 웹서비스에 기반한 회신 처리 방법 및 장치 - Google Patents

비동기 웹서비스에 기반한 회신 처리 방법 및 장치 Download PDF

Info

Publication number
KR101183675B1
KR101183675B1 KR1020090055758A KR20090055758A KR101183675B1 KR 101183675 B1 KR101183675 B1 KR 101183675B1 KR 1020090055758 A KR1020090055758 A KR 1020090055758A KR 20090055758 A KR20090055758 A KR 20090055758A KR 101183675 B1 KR101183675 B1 KR 101183675B1
Authority
KR
South Korea
Prior art keywords
reply
callback
area
client terminal
result
Prior art date
Application number
KR1020090055758A
Other languages
English (en)
Other versions
KR20100137623A (ko
Inventor
이은정
Original Assignee
경기대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 경기대학교 산학협력단 filed Critical 경기대학교 산학협력단
Priority to KR1020090055758A priority Critical patent/KR101183675B1/ko
Publication of KR20100137623A publication Critical patent/KR20100137623A/ko
Application granted granted Critical
Publication of KR101183675B1 publication Critical patent/KR101183675B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/50Business processes related to the communications industry

Landscapes

  • Business, Economics & Management (AREA)
  • Tourism & Hospitality (AREA)
  • Health & Medical Sciences (AREA)
  • Economics (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Resources & Organizations (AREA)
  • Marketing (AREA)
  • Primary Health Care (AREA)
  • Strategic Management (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

비동기 웹서비스에 기반한 회신 처리 방법 및 장치가 개시된다. 웹 서버와 통신망을 통해 연결된 클라이언트 단말에서 비동기 웹 서비스에 따른 회신을 처리하는 방법은, 서비스 요청에 따라 수신된 회신 결과를 분석하여 사용자 인터페이스를 수정하지 않는 콜백 영역과 사용자 인터페이스를 수정하는 에필로그 영역으로 분리하는 단계; 미리 설정된 통신 스레드를 이용하여 콜백 영역에 대해 콜백(callback)을 수행하여 회신 결과를 설정된 로컬 메모리에 저장하는 단계; 에필로그 영역에 상응하는 메시지를 생성하여 미리 설정된 회신 큐에 저장하며, 회신 큐에 저장된 메시지들을 메시지 리스트 창(window)을 이용하여 출력하는 단계; 및 메시지 리스트 창을 통해 출력된 메시지들 중 어느 하나에 대한 확인 명령이 입력되면, 확인 명령에 상응하는 메시지와 연결된 에필로그 영역을 미리 설정된 UI 스레드를 이용하여 수행하는 단계를 포함한다. 이에 따라, 비동기 웹 서비스 통신에서 사용자 인터페이스 충돌 없이 다중 회신을 처리할 수 있다.
비동기, 콜백, 회신

Description

비동기 웹서비스에 기반한 회신 처리 방법 및 장치{Method and apparatus for response processing based on asynchronous web service communication}
본 발명은 웹 서비스에서의 비동기 통신에 관한 것으로, 보다 상세하게 비동기 웹 서비스에 따른 다중 회신 처리를 지원할 수 있는 회신 처리 방법 및 장치에 관한 것이다.
웹 2.0에서는 클라이언트와 서버간의 인터페이스 방식이 변화하면서 REST 기반의 웹 서비스는 인터넷 상에서 다양한 서비스를 연결하기 위한 방법으로 각광받고 있다.
비동기 웹 서비스 통신의 경우, 일반적으로 클라이언트 단말에서 웹 서버로 서비스 호출을 하고, 해당 서비스 호출에 대해 회신이 도착하면 미리 설정된 통신 스레드를 이용하여 콜백을 수행한다.
이와 같은 비동기 웹 서비스 통신의 경우, 사용자가 서비스 호출 후 서버로부터 그 결과를 기다리지 않고 다른 작업을 수행할 수 있어 사용자의 대기 시간을 줄여주고 서버의 부담을 경감하는 등의 이점이 있다.
그러나, 이와 같은 콜백은 통신 스레드를 이용하여 백그라운드로 동작되며, 사용자 인터페이스에 변경을 가하는 문제가 있다.
본 발명은 웹 서비스의 비동기 통신에 따른 다중 회신을 지원할 수 있는 비동기 웹서비스에 기반한 회신 처리 방법 및 장치를 제공하기 위한 것이다.
또한, 본 발명은 사용자에 의해 요청된 웹 서비스 호출에 상응하여 회신된 결과가 사용자의 선택에 따라 확인(또는 실행)되도록 할 수 있는 비동기 웹서비스에 기반한 회신 처리 방법 및 장치를 제공하기 위한 것이다.
또한, 본 발명은 웹 서비스의 비동기 통신에 따른 회신 처리로 인해 발생되는 사용자 인터페이스의 충돌을 방지할 수 있는 비동기 웹서비스에 기반한 회신 처리 방법 및 장치를 제공하기 위한 것이다.
본 발명의 일 측면에 따르면, 웹 서버와 통신망을 통해 연결된 클라이언트 단말에서 비동기 웹 서비스에 따른 회신을 처리하는 방법 및 그 방법을 수행하기 위한 프로그램을 기록한 기록매체가 제공된다.
본 발명의 실시예에 따르면, 웹 서버와 통신망을 통해 연결된 클라이언트 단 말에서 비동기 웹 서비스에 따른 회신을 처리하는 방법에 있어서, 서비스 요청에 따른 회신 결과를 상기 웹 서버로부터 수신받는 단계; 상기 회신 결과를 분석하여 사용자 인터페이스를 수정하지 않는 콜백 영역과 사용자 인터페이스를 수정하는 에필로그 영역으로 분리하는 단계; 미리 설정된 통신 스레드를 이용하여 상기 콜백 영역에 대해 콜백(callback)을 수행하여 상기 회신 결과를 설정된 로컬 메모리에 저장하는 단계; 상기 에필로그 영역에 상응하는 메시지를 생성하여 미리 설정된 회신 큐에 저장하며, 상기 회신 큐에 저장된 메시지들을 메시지 리스트 창(window)을 이용하여 출력하는 단계; 및 상기 메시지 리스트 창을 통해 출력된 메시지들 중 어느 하나에 대한 확인 명령이 입력되면, 상기 확인 명령에 상응하는 메시지와 연결된 에필로그 영역을 미리 설정된 UI 스레드를 이용하여 수행하는 단계를 포함하는 회신 처리 방법이 제공될 수 있다.
상기 콜백은 통신 스레드를 이용하여 백그라운드(background)로 수행되며, 상기 통신 스레드는 XMLhttpreqeust 스레드이다.
상기 에필로그 영역은 특정 뷰(view)의 갱신 또는 특정 뷰로의 포커스 이동을 수반하는 코드 영역이다.
상기 서비스 요청 및 상기 회신 결과는 XForms, XML 및 자바 스크립트 중 어느 하나의 언어에 기반하여 기술된다.
본 발명의 다른 실시예에 따르면, 비동기 웹 서비스에 따른 회신을 처리하는 방법을 수행하기 위해 클라이언트 단말에 의해 실행될 수 있는 명령어들의 프로그램이 유형적으로 구현되어 있으며, 상기 클라이언트 단말에 의해 판독될 수 있는 프로그램을 기록한 기록매체에 있어서, 서비스 요청에 따른 회신 결과를 상기 웹 서버로부터 수신받는 단계; 상기 회신 결과를 분석하여 사용자 인터페이스를 수정하지 않는 콜백 영역과 사용자 인터페이스를 수정하는 에필로그 영역으로 분리하는 단계; 미리 설정된 통신 스레드를 이용하여 상기 콜백 영역에 대해 콜백(callback)을 수행하여 상기 회신 결과를 설정된 로컬 메모리에 저장하는 단계; 상기 에필로그 영역에 상응하는 메시지를 생성하여 미리 설정된 회신 큐에 저장하며, 상기 회신 큐에 저장된 메시지들을 메시지 리스트 창(window)을 이용하여 출력하는 단계; 및 상기 메시지 리스트 창을 통해 출력된 메시지들 중 어느 하나에 대한 확인 명령이 입력되면, 상기 확인 명령에 상응하는 메시지와 연결된 에필로그 영역을 미리 설정된 UI 스레드를 이용하여 수행하는 단계를 실행하는 프로그램을 기록한 기록매체가 제공될 수 있다.
본 발명의 다른 측면에 따르면, 비동기 웹 서비스에 따른 회신을 처리하는 클라이언트 단말이 제공된다.
본 발명의 실시예에 따르면, 비동기 웹 서비스에 따른 회신을 처리하는 클라이언트 단말에 있어서, 상기 클라이언트 단말에서 요청한 서비스 호출에 대한 회신 결과를 웹 서버로부터 수신받는 통신부; 상기 회신 결과를 분석하여 상기 클라이언트 단말의 사용자 인터페이스를 변경하지 않는 콜백 영역과 사용자 인터페이스를 변경하는 에필로그 영역으로 분리하는 분석부; 상기 회신 결과에서 상기 콜백 영역에 대해 콜백을 수행하며, 상기 에필로그 영역에 상응하는 메시지를 회신 큐에 저 장하여 리스트 창을 통해 출력되도록 제어하는 제어부; 상기 리스트 창을 통해 출력된 메시지들 중 어느 하나의 실행 명령을 입력받는 입력부를 포함하되, 상기 제어부는 상기 실행 명령에 상응하는 메시지의 에필로그 영역이 실행되도록 제어하는 것을 특징으로 하는 클라이언트 단말이 제공될 수 있다.
상기 제어부는 상기 회신 큐에 저장된 메시지들에 상응하는 실행 또는 삭제를 위한 명령을 입력받기 위한 입력 인터페이스를 포함하여 상기 메시지들과 함께 상기 리스트 창을 출력할 수 있다.
본 발명에 따른 비동기 웹서비스에 기반한 회신 처리 방법 및 장치를 제공함으로써, 웹 서비스의 비동기 통신에 따른 다중 회신을 지원할 수 있는 이점이 있다.
또한, 본 발명은 사용자에 의해 요청된 웹 서비스 호출에 상응하여 회신된 결과가 사용자의 선택에 따라 확인(또는 실행)되도록 할 수 있는 이점도 있다.
또한, 본 발명은 웹 서비스의 비동기 통신에 따른 회신 처리로 인해 발생되는 사용자 인터페이스의 충돌을 방지할 수 있는 이점도 있다.
본 발명은 다양한 변환을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변환, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
이하, 본 발명의 실시예를 첨부한 도면들을 참조하여 상세히 설명하기로 한다.
도 1은 본 발명의 실시예에 따른 비동기 웹 서비스에서의 회신 처리를 설명하기 위해 개략적으로 예시한 도면이다.
클라이언트 단말(110)은 통신망을 통해 하나 이상의 웹 서버(120)와 연결되어 다양한 서비스를 제공받을 수 있다. 클라이언트 단말(110)은 개인용 컴퓨터, 노트북, 이동통신 단말기 등의 장치로써, 하나 이상의 웹 서버(120)와 연결되어 웹 서비스를 제공받을 수 있는 단말기이면 모두 동일하게 적용될 수 있다.
예를 들어, 클라이언트 단말(110)은 도 1에서 예시된 바와 같이, 제1 서비스 요청, 제2 서비스 요청, ..., 제n 서비스 요청을 웹 서버(120)로 전송할 수 있다.
여기서, 클라이언트 단말(110)은 각각의 서비스 요청에 상응하는 결과가 웹 서버(120)로부터 회신될때까지 대기하지 않는다. 이해와 설명의 편의를 도모하기 위해 클라이언트 단말(110)로부터 웹 서버(120)로 전송되는 각각의 서비스 요청은 각각 웹 서버(120)로부터 그 결과 회신이 필요한 서비스 요청인 것을 가정하여 이를 중점으로 설명하기로 한다. 클라이언트 단말(110)에서 전송하는 서비스 요청은 콜백 타입을 포함할 수 있다. 여기서, 콜백 타입은 제1 타입, 제2 타입 및 제3 타입 중 어느 하나일 수 있으며, 제1 타입은 콜백 영역만 포함하는 타입이며, 제2 타입은 에필로그만 포함하는 타입이고, 제3 타입은 콜백과 에필로그를 모두 포함하는 타입일 수 있다. 웹 서버(120)는 서비스 요청을 분석하여 해당 서비스 요청의 콜백 타입에 상응하는 회신 결과를 생성하여 클라이언트 단말(110)로 전송할 수 있다.
클라이언트 단말(110)은 제1 서비스 요청을 웹 서버(120)로 전송하고, 웹 서버(120)로부터의 결과 회신 여부에 상관없이 제2 서비스 요청을 웹 서버(120)로 전송할 수 있다.
만일, 클라이언트 단말(110)이 다른 동작을 수행중인 상태에서 제1 서비스 요청에 대한 결과가 웹 서버(120)로부터 회신되었다고 가정하자. 클라이언트 단말(110)은 웹 서버(120)로부터의 회신에 따른 처리를 위해 미리 설정된 콜백(callback)을 호출한다.
여기서, 클라이언트 단말은 회신 처리를 위해 미리 정해진 통신 스레드를 이용하여 콜백을 호출한다. 예를 들어, 클라이언트 단말(110)은 XMLhttprequest 스레드를 이용하여 콜백을 호출할 수 있다.
콜백은 사용자에게 서비스 요청에 상응하는 응답이 회신되었음을 알려주고, 회신된 결과를 클라이언트 단말(110)의 로컬 저장 영역에 저장하며, 특정 뷰(view)를 갱신(refresh)하거나 특정 뷰로의 포커스(focus)가 이동하는 등의 일련의 프로세스인 것으로 정의하기로 한다.
이와 같은 콜백은 전술한 바와 같이, 통신 스레드(XMLhttprequest)를 이용하여 호출되며, 백그라운드(back ground)로 구동된다.
본 명세서에서 뷰(view)는 화면 출력시 보여지는 영역으로 정의하기로 한다. 따라서, 일반적인 형태에서는 뷰 객체의 조작은 UI(user interface) 스레드를 이용한다.
그러나, 전술한 바와 같이, 콜백의 경우, 통신 스레드를 이용하여 특정한 뷰 객체의 갱신 및 포커스 이동과 같은 프로세스를 수행할 수 있으며, 이로 인해 사용자가 수행하는 UI 스레드와의 충돌이 발생하게 되는 문제가 있다.
이에 본 명세서에서는 클라이언트 단말(110)이 회신 처리시 UI 스레드와 충돌이 발생하지 않도록 콜백을 처리하는 방법에 대해 설명하기로 하며, 이에 대해서 는 하기에서 관련 도면을 참조하여 보다 상세히 설명하기로 한다.
웹 서버(120)는 통신망을 통해 클라이언트 단말(110)과 연결되어 다양한 서비스를 제공하는 기능을 수행한다.
도 2는 본 발명의 실시예에 따른 클라이언트 단말의 내부 구성을 개략적으로 예시한 도면이고, 도 3은 본 발명의 실시예에 따른 회신 결과에 상응하는 코드를 예시한 도면이다.
도 2를 참조하면, 본 발명의 실시예에 따른 클라이언트 단말(110)은 통신부(210), 분석부(215), 저장부(220), 입력부(225), 디스플레이부(230) 및 제어부(235)를 포함하여 구성된다.
우선, 이해와 설명의 편의를 도모하기 위해 본 발명에서의 콜백에 대해 정의하기로 한다. 본 발명에서는 콜백을 2단계로 구분한다.
제1 단계 콜백은 사용자의 서비스 요청에 상응하여 회신된 회신 결과를 로컬 저장 영역에 저장하고, 해당 회신 결과를 회신 저장 영역(즉, 회신 큐)하는 프로세스를 수행한다. 즉, 제1 단계 콜백은 회신 결과 중에서 사용자 인터페이스(UI)의 수정 없이 수행되는 프로세스인 것으로 정의하기로 한다.
제2 단계 콜백은 회신 결과 중에서 사용자 인터페이스(UI)를 변경하여 수행되는 프로세스이다. 예를 들어, 제2 단계 콜백은 웹 페이지의 갱신 또는 변경 등을 수반하는 프로세스일 수 있다.
본 명세서에서는 이해와 설명의 편의를 도모하기 위해 제1 단계 콜백을 콜백 으로 칭하여 설명하며, 제2 단계 콜백은 에필로그(epilog)라 칭하여 설명하기로 한다.
통신부(210)는 웹 서버(120)와 데이터를 송수신하는 기능을 수행한다. 즉, 통신부(210)는 제어부(235)의 제어에 따라 서비스 요청을 웹 서버(120)로 전송할 수 있다. 그리고, 통신부(210)는 웹 서버(120)로부터 회신 결과를 수신받아 분석부(215)로 출력할 수 있다.
본 명세서에서 서비스 요청 및 회신 결과는 각각 웹 서비스를 위해 설정된 언어(예를 들어, HTML, 자바 스크립트, XForms)로 작성된다.
분석부(215)는 회신 결과를 분석하여 콜백 부분과 에필로그 부분으로 분할한다.
즉, 분석부(215)는 회신 결과를 미리 정해진 방법에 따라 파싱하여 사용자 인터페이스에 수정없이 수행되는 부분과 사용자 인터페이스에 변경을 가하는 부분으로 구분한다.
이해와 설명의 편의를 도모하기 위해 도 3에 예시된 회신 결과를 이용하여 설명하기로 한다.
도 3은 편집 데이터 요청을 위한 XForms 코드의 일 부분을 예시한 것이다. 도 3에서 310은 클라이언트 단말(110)에서 편집 데이터를 웹 서버(120)에 요청하는 코드 부분으로 본 명세서에서는 이를 프롤로그라 칭하기로 한다.
즉, 프롤로그는 클라이언트 단말(110)에 웹 서버(120)로 서비스 요청을 전송하는 코드 영역이다.
도 3의 320은 회신 결과에서 메시지를 저장하는 코드 부분으로 해당 부분이 콜백으로 분리된다.
그리고, 도 3의 330은 사용자에 의해 회신 결과 확인이 요청될 때 수행되는 코드 부분으로 해당 부분은 특정 뷰(도 3의 경우 편집 뷰)로 포커스를 이동시켜 사용자로 하여금 회신 결과를 편집할 수 있도록 하는 코드 부분이다. 즉, 해당 부분은 특정 뷰로 포커스가 이동되어 결과적으로 사용자 인터페이스에 변경이 가해짐을 알 수 있다.
분석부(215)는 해당 부분을 에필로그 영역으로 분리한다.
이와 같이, 분석부(215)는 회신 결과를 파싱하여 사용자 인터페이스에 변경이 가해지는 부분을 에필로그로 분리하고, 사용자 인터페이스에 변경이 가해지지 않는 부분을 콜백으로 분리한다.
저장부(220)는 본 발명의 실시예에 따른 클라이언트 단말(110)을 운용하는데 필요한 알고리즘, 소프트웨어 등이 저장된다. 또한, 저장부(220)는 하나 이상의 회신 결과들이 저장된다.
입력부(225)는 사용자로부터 당해 클라이언트 단말(110)을 제어하기 위해 필요한 다양한 제어 명령들을 입력받기 위한 수단이다.
예를 들어, 입력부(225)는 서비스 요청을 위한 명령, 회신 결과를 확인하기 위한 확인 명령 등을 입력받을 수 있다.
디스플레이부(230)는 웹 서버(120)로부터 제공받은 다양한 웹 페이지를 시각 정보로써 출력하는 기능을 수행한다. 디스플레이부(230)를 통해 출력되는 웹 페이 지는 하나 이상의 뷰로 구성될 수 있다.
제어부(235)는 본 발명의 실시예에 따른 클라이언트 단말(110)의 각각의 내부 구성들(예를 들어, 통신부(210), 분석부(215), 저장부(220), 입력부(225), 디스플레이부(230) 등)을 제어하는 기능을 수행한다.
또한, 제어부(235)는 분석부(215)를 통해 구분된 콜백 영역을 미리 설정된 통신 스레드를 이용하여 콜백을 수행하여 회신 결과를 설정된 로컬 메모리에 저장한다. 이어, 제어부(235)는 에필로그 영역에 상응하는 메시지를 생성하고, 해당 메시지를 회신 큐(response queue)에 저장하며, 회신 큐에 저장된 메시지들을 메시지 리스트 창(window)을 이용하여 출력한다.
또한, 제어부(235)는 메시지 리스트 창을 통해 출력된 메시지들 중 어느 하나의 실행 명령이 입력부(225)를 통해 입력되면, 실행 명령에 상응하는 에필로그 영역을 미리 설정된 UI 스레드를 이용하여 수행하도록 제어한다.
이에 따라, 결과적으로 클라이언트 단말(110)은 서비스 요청에 상응하는 회신 결과에서 콜백 영역과 에필로그 영역을 분리하고, 에필로그 영역에 대해 사용자의 선택에 의해 실행되도록 제어함으로써 종래와 같은 사용자 인터페이스 충돌 문제를 해결할 수 있는 이점이 있다.
도 4는 본 발명의 실시예에 따른 클라이언트 단말이 서비스 요청에 상응하여 수신된 회신 결과를 처리하는 방법을 나타낸 순서도이고, 도 5는 본 발명의 실시예에 따른 메시지 리스트 창을 예시한 도면이다. 이하에서 설명되는 각각의 단계는 클라이언트 단말(110)의 각각의 내부 구성 요소에 의해 수행되어지나 이해와 설명의 편의를 도모하기 위해 클라이언트 단말(110)로 통칭하여 설명하기로 한다.
또한, 이하에서 설명되는 회신 결과는 클라이언트 단말(110)에서 요청한 서비스 요청의 순서와는 무관하게 비동기 방식에 의해 임의의 순서대로 회신된 회신 결과인 것을 가정하여 이를 중점으로 설명하기로 한다.
본 명세서에서는 서비스 요청 또는/및 회신 결과 등으로 설명하고 있으나, 서비스 요청 또는/및 회신 결과는 각각 웹 페이지를 지원하는 언어(XForms, XML, 자바 스크립트 등)으로 기술되는 웹 페이지일 수 있음은 당연하다.
단계 410에서 클라이언트 단말(110)은 웹 서버(120)로부터 임의의 서비스 요청에 상응하는 임의의 회신 결과를 수신받는다.
단계 415에서 클라이언트 단말(110)은 회신 결과를 미리 정해진 방법에 따라 파싱하여 콜백 영역과 에필로그 영역으로 구분한다.
전술한 바와 같이, 콜백 영역은 회신 결과에서 사용자 인터페이스에 수정을 가하지 않는 코드 영역들이며, 에필로그 영역은 회신 결과에서 사용자 인터페이스에 수정을 가하는 코드 영역들이다.
물론, 회신 결과는 반드시 콜백 영역과 에필로그 영역을 포함하는 것은 아니며, 콜백 영역 또는 에필로그 영역을 포함할 수도 있고, 콜백 영역 및 에필로그 영역을 포함할 수도 있다. 이는 클라이언트 단말(110)에서 요청한 서비스에 상응하여 상이해질 수 있음은 당연하다.
단계 420에서 클라이언트 단말(110)은 회신 결과에서 콜백 영역에 대해 미리 설정된 통신 스레드를 이용하여 콜백을 수행한다.
이에 따라, 회신 결과가 해당 회신 결과에 상응하여 설정된 로컬 메모리에 저장된다. 전술한 바와 같이, 미리 설정된 통신 스레드는 XMLhttprequest이다. 또한, 콜백은 백그라운드로 수행되며, 해당 회신 결과를 저장하는 기능을 수행한다.
본 명세서에서는 이해와 설명의 편의를 도모하기 위해 콜백이 회신 결과를 저장하는 것으로 한정하여 설명하고 있으나 이외에도 회신 결과에서 사용자 인터페이스에 수정(즉, 변경)을 가하지 않는 코드 영역이 모두 포함될 수 있음은 당연하다.
단계 425에서 클라이언트 단말(110)은 에필로그 영역에 상응하는 메시지를 생성하고, 해당 메시지를 회신 큐에 저장한다.
단계 430에서 클라이언트 단말(110)은 회신 큐에 저장된 메시지들을 메시지 리스트 창(window)을 이용하여 출력한다. 도 5에 메시지 리스트 창이 출력된 것이 예시되어 있다.
본 명세서에서는 메시지 리스트 창에 에필로그 영역에 상응하는 메시지들만 출력되는 것을 가정하여 이를 중점으로 설명하고 있으나, 도 5에 예시된 바와 같이, 클라이언트 단말(110)에서 요청한 서비스 호출(즉, 서비스 요청)에 상응하는 메시지들도 포함되어 출력될 수 있다.
이를 위해, 클라이언트 단말(110)은 별도로 호출 큐를 생성하고, 해당 호출 큐에 서비스 요청에 상응하는 메시지들을 저장하여 메시지 리스트 창을 통해 출력할 수 있다.
메시지 리스트 창을 통해 출력되는 서비스 요청에 상응하는 메시지들은 웹 서버(120)로부터 상응하는 회신 결과를 수신받지 못한 서비스 요청에 대한 메시지들로써, 회신 결과가 수신된 서비스 요청은 포함하지 않는다.
다시 도 4를 참조하여, 단계 435에서 클라이언트 단말(110)은 메시지 리스트 창을 통해 출력된 메시지들 중에서 어느 하나의 실행을 위한 명령(이하, 실행 명령이라 칭하기로 함)을 사용자로부터 입력받는다.
단계 440에서 클라이언트 단말(110)은 입력된 실행 명령에 상응하는 회신 결과의 에필로그(즉, 실행 명령에 상응하는 메시지에 연결된 에필로그) 영역을 미리 설정된 사용자 인터페이스 스레드를 이용하여 실행한다. 이에 따라, 사용자는 클라이언트 단말(110)을 통해 회신 결과를 확인할 수 있다.
즉, 에필로그 영역이 사용자 인터페이스 스레드를 이용하여 수행됨으로 인해, 결과적으로 회신 결과에 상응하여 특정 뷰(view)를 갱신(또는 수정)하거나 특정 뷰(view)로의 포커스를 이동된다.
도 6은 본 발명의 실시예에 따른 서비스 요청에 따른 회신 결과를 처리하는 것을 설명하기 위해 예시한 도면이다. 이하에서는 이해와 설명의 편의를 도모하기 위해 일정 관리를 위한 웹 서비스로 한정하여 설명하기로 한다.
웹 서버(120)에서 일정 정보에 대해 간략한 검색, 추가, 삭제, 및 수정에 따른 서비스가 가능하도록 제공하고 있는 것을 가정하자.
도 6의 (a)는 일정 리스트 뷰로써 검색 및 상세보기, 편집, 추가 서비스를 제공하는 것을 예시한 화면이고, 도 6의 (b)는 일정 편집 뷰로써 수정 및 삭제 서비스 제공을 예시하기 위한 화면이다.
도 6의 (a) 및 (b)는 서비스 호출(요청) 및 회신 결과 뷰로써, 서비스를 요청하고 대기중인 서비스 호출(요청)에 대한 리스트와 서비스 요청에 상응하여 웹 서버(120)로부터 수신된 회신 결과에 대한 리스트를 보여주기 위한 뷰이다.
예를 들어, 사용자가 도 6의 (a)의 일정 리스트 뷰에서 상세보기(Sview)를 선택하였다고 가정하자. 이는 웹 서버(120)로부터의 세부 데이터를 요청하는 서비스 호출에 해당한다.
따라서, 클라이언트 단말(110)은 선택된 상세보기에 상응하는 서비스 호출(요청)을 웹 서버(120)로 전송한다. 이에 따라 웹 서버(120)는 해당 서비스 호출(요청)에 상응하는 세부 데이터를 회신 결과로써 클라이언트 단말(110)에 전송하게 된다.
이에, 클라이언트 단말(110)은 세부 데이터를 포함하는 회신 결과가 수신되면, 회신 결과에서 콜백 영역과 에필로그 영역을 구분하고, 콜백 영역에 대해 콜백을 수행하여 해당 세부 데이터를 설정된 로컬 메모리에 저장한다. 그리고, 클라이언트 단말(110)는 세부 데이터에 상응하는 에필로그 영역(즉, 세부 데이터를 브라우저를 통해 출력하기 위한 코드 영역)에 상응하는 메시지를 생성하고, 이를 회신 큐에 저장한다.
이어, 클라이언트 단말(110)은 회신 큐에 저장된 메시지들을 도 6의 (a) 및 (b)의 630에 예시된 바와 같이 메시지 리스트 창을 통해 출력한다.
클라이언트 단말(110)은 회신 큐에 신규 메시지가 저장되거나 삭제되는 등의 상태 변화가 있을 때마다 메시지 리스트 창을 리플레쉬(refresh)할 수 있다.
도 6의 (a) 및 (b)의 630과 같이 회신 결과에 상응하는 메시지가 출력된 상태에서 사용자가 임의의 메시지(즉, 회신 결과에 상응하는 에필로그 영역)에 상응하여 실행 명령을 입력하였다고 가정하자.
클라이언트 단말(110)은 해당 실행 명령에 상응하는 에필로그 영역을 미리 설정된 UI 스레드를 이용하여 수행한다. 이에 따라, 사용자는 사용자가 요청한 서비스 호출에 상응하는 회신 결과를 사용자의 선택에 따라 실행(또는 확인)하도록 할 수 있다.
이와 같이, 사용자의 서비스 호출에 상응하는 회신 결과에서 사용자 인터페이스에 변경을 가하지 않는 콜백 영역과 사용자 인터페이스에 변경을 가하는 에필로그 영역을 분리하고, 에필로그 영역의 경우 사용자의 선택에 의해 실행(또는 확인)되도록 함으로써 웹 서비스의 비동기 통신에 따른 다중 회신을 지원할 수 있는 이점이 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야에서 통상의 지식을 가진 자라면 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
도 1은 본 발명의 실시예에 따른 비동기 웹 서비스에서의 회신 처리를 설명하기 위해 개략적으로 예시한 도면.
도 2는 본 발명의 실시예에 따른 클라이언트 단말의 내부 구성을 개략적으로 예시한 도면.
도 3은 본 발명의 실시예에 따른 회신 결과에 상응하는 코드를 예시한 도면.
도 4는 본 발명의 실시예에 따른 클라이언트 단말이 서비스 요청에 상응하여 수신된 회신 결과를 처리하는 방법을 나타낸 순서도.
도 5는 본 발명의 실시예에 따른 메시지 리스트 창을 예시한 도면.
도 6은 본 발명의 실시예에 따른 서비스 요청에 따른 회신 결과를 처리하는 것을 설명하기 위해 예시한 도면.

Claims (10)

  1. 웹 서버와 통신망을 통해 연결된 클라이언트 단말에서 비동기 웹 서비스에 따른 회신을 처리하는 방법에 있어서,
    서비스 요청에 따른 회신 결과를 상기 웹 서버로부터 수신받는 단계;
    상기 회신 결과를 분석하여 사용자 인터페이스를 수정하지 않는 콜백 영역과 사용자 인터페이스를 수정하는 에필로그 영역으로 분리하는 단계;
    미리 설정된 통신 스레드를 이용하여 상기 콜백 영역에 대해 콜백(callback)을 수행하여 상기 회신 결과를 설정된 로컬 메모리에 저장하는 단계;
    상기 에필로그 영역에 상응하는 메시지를 생성하여 미리 설정된 회신 큐에 저장하며, 상기 회신 큐에 저장된 메시지들을 메시지 리스트 창(window)을 이용하여 출력하는 단계; 및
    상기 메시지 리스트 창을 통해 출력된 메시지들 중 어느 하나에 대한 실행 명령이 입력부를 통해 입력되면, 미리 설정된 UI 스레드를 이용하여 상기 실행 명령에 상응하는 메시지와 연결된 에필로그 영역을 실행하는 단계를 포함하는 회신 처리 방법.
  2. 제1 항에 있어서,
    상기 콜백은 통신 스레드를 이용하여 백그라운드(background)로 수행되며,
    상기 통신 스레드는 XMLhttpreqeust 스레드인 것을 특징으로 하는 회신 처리 방법.
  3. 제1 항에 있어서,
    상기 에필로그 영역은 특정 뷰(view)의 갱신 또는 특정 뷰로의 포커스 이동을 수반하는 코드 영역인 것을 특징으로 하는 회신 처리 방법.
  4. 제1 항에 있어서,
    상기 서비스 요청 및 상기 회신 결과는 XForms, XML 및 자바 스크립트 중 어느 하나의 언어에 기반하여 기술되는 것을 특징으로 하는 회신 처리 방법.
  5. 비동기 웹 서비스에 따른 회신을 처리하는 클라이언트 단말에 있어서,
    상기 클라이언트 단말에서 요청한 서비스 호출에 대한 회신 결과를 웹 서버로부터 수신받는 통신부;
    상기 회신 결과를 분석하여 상기 클라이언트 단말의 사용자 인터페이스를 변경하지 않는 콜백 영역과 사용자 인터페이스를 변경하는 에필로그 영역으로 분리하는 분석부;
    상기 회신 결과에서 상기 콜백 영역에 대해 콜백을 수행하며, 상기 에필로그 영역에 상응하는 메시지를 회신 큐에 저장하여 리스트 창을 통해 출력되도록 제어하는 제어부;
    상기 리스트 창을 통해 출력된 메시지들 중 어느 하나의 실행 명령을 입력받는 입력부를 포함하되,
    상기 제어부는 상기 실행 명령에 상응하는 메시지의 에필로그 영역이 실행되도록 제어하는 것을 특징으로 하는 클라이언트 단말.
  6. 제5 항에 있어서,
    상기 콜백은 통신 스레드를 이용하여 백그라운드로 수행되며,
    상기 통신 스레드는 XMLhttprequest인 것을 특징으로 하는 클라이언트 단말.
  7. 제5 항에 있어서,
    상기 리스트 창은 상기 서비스 호출 또는 상기 회신 결과에 상응하는 뷰(view)와는 무관한 뷰(view)로써 출력되는 것을 특징으로 하는 클라이언트 단말.
  8. 제5 항에 있어서,
    상기 제어부는 상기 회신 큐에 저장된 메시지들에 상응하는 실행 또는 삭제 를 위한 명령을 입력받기 위한 입력 인터페이스를 포함하여 상기 메시지들과 함께 상기 리스트 창을 출력하는 것을 특징으로 하는 클라이언트 단말.
  9. 제5 항에 있어서,
    상기 에필로그 영역은 상기 에필로그 영역은 특정 뷰(view)의 갱신 또는 특정 뷰로의 포커스 이동을 수반하는 코드 영역인 것을 특징으로 하는 클라이언트 단말.
  10. 비동기 웹 서비스에 따른 회신을 처리하는 방법을 수행하기 위해 클라이언트 단말에 의해 실행될 수 있는 명령어들의 프로그램이 유형적으로 구현되어 있으며, 상기 클라이언트 단말에 의해 판독될 수 있는 프로그램을 기록한 기록매체에 있어서,
    서비스 요청에 따른 회신 결과를 상기 웹 서버로부터 수신받는 단계;
    상기 회신 결과를 분석하여 사용자 인터페이스를 수정하지 않는 콜백 영역과 사용자 인터페이스를 수정하는 에필로그 영역으로 분리하는 단계;
    미리 설정된 통신 스레드를 이용하여 상기 콜백 영역에 대해 콜백(callback)을 수행하여 상기 회신 결과를 설정된 로컬 메모리에 저장하는 단계;
    상기 에필로그 영역에 상응하는 메시지를 생성하여 미리 설정된 회신 큐에 저장하며, 상기 회신 큐에 저장된 메시지들을 메시지 리스트 창(window)을 이용하여 출력하는 단계; 및
    상기 메시지 리스트 창을 통해 출력된 메시지들 중 어느 하나에 대한 실행 명령이 입력부를 통해 입력되면,미리 설정된 UI 스레드를 이용하여 상기 실행 명령에 상응하는 메시지와 연결된 에필로그 영역을 실행하는 단계를 실행하는 프로그램을 기록한 기록매체.
KR1020090055758A 2009-06-23 2009-06-23 비동기 웹서비스에 기반한 회신 처리 방법 및 장치 KR101183675B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020090055758A KR101183675B1 (ko) 2009-06-23 2009-06-23 비동기 웹서비스에 기반한 회신 처리 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090055758A KR101183675B1 (ko) 2009-06-23 2009-06-23 비동기 웹서비스에 기반한 회신 처리 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20100137623A KR20100137623A (ko) 2010-12-31
KR101183675B1 true KR101183675B1 (ko) 2012-09-17

Family

ID=43511181

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090055758A KR101183675B1 (ko) 2009-06-23 2009-06-23 비동기 웹서비스에 기반한 회신 처리 방법 및 장치

Country Status (1)

Country Link
KR (1) KR101183675B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190128368A (ko) 2018-05-08 2019-11-18 주식회사 애포샤 비동기 서버의 요청 처리 방법
CN112799860B (zh) * 2021-01-27 2023-02-21 浪潮云信息技术股份公司 基于消息队列和搜索引擎实现服务回调的方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007500889A (ja) 2003-07-31 2007-01-18 インターナショナル・ビジネス・マシーンズ・コーポレーション 非同期的に要求を処理するための方法、サーバシステム、及びプログラム

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007500889A (ja) 2003-07-31 2007-01-18 インターナショナル・ビジネス・マシーンズ・コーポレーション 非同期的に要求を処理するための方法、サーバシステム、及びプログラム

Also Published As

Publication number Publication date
KR20100137623A (ko) 2010-12-31

Similar Documents

Publication Publication Date Title
KR101826625B1 (ko) 문서의 동시 편집을 지원하는 문서 협업 지원 장치 및 그 동작 방법
US10657200B2 (en) Proactive form guidance for interacting with electronic forms
CN113468448A (zh) 页面渲染方法及装置
US20180218276A1 (en) Optimizing Application Performance Using Finite State Machine Model and Machine Learning
CN112612988A (zh) 页面处理方法、装置、计算机设备及存储介质
CN105359131B (zh) 栓系选择句柄
CN113076499A (zh) 一种页面互动方法、装置、设备、介质及程序产品
US9571557B2 (en) Script caching method and information processing device utilizing the same
CN114065080A (zh) 页面渲染方法、装置、设备及计算机可读存储介质
US10762275B2 (en) Information processing apparatus, method, and storage medium
KR101183675B1 (ko) 비동기 웹서비스에 기반한 회신 처리 방법 및 장치
JP5039946B2 (ja) クライアント装置およびサーバ装置の間の通信を中継する技術
EP3869330A1 (en) Method and apparatus for lazy loading of js script
CN111294377A (zh) 一种依赖关系的网络请求发送方法、终端装置及存储介质
US10007554B2 (en) Task scheduling based on user interaction
CN113014669A (zh) 基于rpa的代理服务方法、系统、服务器和存储介质
CN110263932B (zh) 多智能体仿真系统图形化组合构建方法与装置
EP3001334A1 (en) Systems and methods to repackage web site resources
CN111338928A (zh) 基于chrome浏览器测试的方法及装置
KR101779809B1 (ko) 원격 상담 서비스 시스템 및 방법
CN115098213A (zh) 一种数据处理方法、装置、电子设备及存储介质
US20080275947A1 (en) Lazy Document and Data Validation
CN103870586B (zh) 从网站系统中导出数据的方法和装置
CN112612531A (zh) 应用程序启动方法、装置、电子设备及存储介质
US9904739B2 (en) Service provider system and service provider method

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee