KR20070025352A - 웹 서비스 제공 시스템의 서비스 제공 방법 및 그 장치 - Google Patents

웹 서비스 제공 시스템의 서비스 제공 방법 및 그 장치 Download PDF

Info

Publication number
KR20070025352A
KR20070025352A KR1020050081410A KR20050081410A KR20070025352A KR 20070025352 A KR20070025352 A KR 20070025352A KR 1020050081410 A KR1020050081410 A KR 1020050081410A KR 20050081410 A KR20050081410 A KR 20050081410A KR 20070025352 A KR20070025352 A KR 20070025352A
Authority
KR
South Korea
Prior art keywords
information
web
event information
event
web document
Prior art date
Application number
KR1020050081410A
Other languages
English (en)
Other versions
KR100814396B1 (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 KR1020050081410A priority Critical patent/KR100814396B1/ko
Publication of KR20070025352A publication Critical patent/KR20070025352A/ko
Application granted granted Critical
Publication of KR100814396B1 publication Critical patent/KR100814396B1/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/00Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/86Event-based monitoring

Abstract

본 발명은 웹 서비스 제공 시스템의 서비스 제공 방법 및 그 장치에 관한 것으로, 클라이언트가 출력되는 각 웹 문서의 구성 정보를 관리하면서 웹 서버에서 이벤트 정보의 변경이 발생되면, 변경되는 이벤트 정보를 해당 웹 문서에 실시간으로 반영함으로써, 클라이언트가 이벤트 정보를 변경하면서 발생되는 깜빡임 현상을 방지하는 것이다.

Description

웹 서비스 제공 시스템의 서비스 제공 방법 및 그 장치{apparatus and method of providing service in web service system}
도 1은 본 발명의 바람직한 일실시예에 따른 웹 서비스 제공 시스템을 설명하기 위한 블록 도면.
도 2는 본 발명의 일실시예에 따른 웹 서비스 제공 시스템의 웹 문서 서비스 제공 흐름을 설명하기 위한 도면.
도 3은 본 발명의 바람직한 실시예에 따른 클라이언트의 구성을 설명하기 위한 블록 도면.
도 4는 본 발명에 따른 애플릿을 설명하기 위한 도면.
도 5는 본 발명에 따른 애플릿의 클래스를 설명하기 위한 도면.
도 6은 본 발명의 바람직한 실시예에 따른 웹 문서의 실시간 이벤트 반영 흐름을 설명하기 위한 흐름도.
도 7은 본 발명의 바람직한 실시예에 따른 웹 서비스 제공 방법의 흐름을 설명하기 위한 플로챠트 도면.
도 8은 본 발명의 다른 실시예에 따른 웹 서비스 제공 시스템을 설명하기 위한 블록 도면.
도 9는 본 발명의 다른 실시예에 따른 웹 서비스 제공 방법을 설명하기 위한 플로챠트 도면.
도 10은 본 발명의 실시예에 따라 실시간으로 웹 문서에 이벤트를 반영하는 것을 설명하기 위한 도면.
<도면의 주요 부분에 대한 부호의 설명>
10 : 이벤트 발생부 20 : 이벤트 분배부
30 : 이벤트 수신부 40 : 웹 브라우저
50 : 폼 매니저
본 발명은 웹 브라우저의 실시간 이벤트 반영 방법 및 그 장치에 관한 것이다.
현재 제공되고 있는 웹 브라우저의 웹 화면은 HTTP(Hypertext Transfer Protocol)을 이용하여 기본적으로 HTML(hypertext markup language)로 작성된다.
초기 웹 화면은 최초 작성된 HTML 문서가 단순히 해당 웹 페이지를 사용하는 사용자에게 보여질 뿐, 각기 다른 클라이언트 또는 서버의 요청에 의해 가변적 인 웹 문서를 작성할 수 없었음으로, 동적으로 가변적인 웹 문서를 작성하기 위해서는 웹 문서에 스크립트 언어를 포함시키거나, 스크립트 언어와 연동하는 서버 단에 별개의 프로세스를 개발하여 연동시켜야 하였다. 이러한 배경으로 제시된 것이 CGI(Common Gateway Interface) 및 확장 CGI 기술들이다.
CGI는 동적으로 가변적인 웹 문서를 서버 단의 프로세스가 생성하고, 이를 클라이언트로 전송함으로써, 임의의 웹 페이지가 변화 가능하도록 하였으나, 매번 프로세스가 변화하는 웹 페이지의 개별 문서를 새로이 만들어야 하며, 서버 단의 프로세스는 표준화되지 않아 임의의 웹 서버(예를 들면, Apache Group의 Apache 및 Microsoft 사의 IIS(Internet Information Server))와 연동하는 CGI 프로토콜을 사용해서 통신하는 별개의 통신 프로세스가 필요하다.
따라서, 이러한 방식은 통신 프로세스가 요청한 웹 문서를 작성 완료함과 동시에 서버단에서 클라이언트로 웹 문서를 전송해야 함으로, 정적 HTML에 의해 작성된 웹 문서를 제공하는 것보다 웹 문서 반응 속도가 느리다.
이러한 단점을 극복하고자 기존 웹서버(Apache 혹은 IIS)에 동적 라이브러리 형식으로 제공되는 프로세싱 방안이 고안되어, 라이브러리가 제공하는 API(Application Program Interface)를 호출함으로 CGI 프로토콜에 따른 통신이 시작되고, 통신이 시작됨에 따라 CGI 처리 프로세스가 웹 서버 단에 올라감과 동시에 상주하게 되어, 웹 문서의 반응 속도를 빠르게 하는 방식이 고안되었다.
그러나, 이러한 방식은 각 웹 서버마다 API가 표준화되지 않아서 동일한 API 호출을 통해 동일한 효과를 기대할 수 없는 문제점이 발생되었다.
따라서, 확장 CGI 기술은 웹 서버와 연동하여 CGI 프로토콜 통신을 하는 별개의 통신 프로세스가 메모리에 상주하도록 하고, 통신 프로세스에 의해 CGI 언어로 작성된 부분이 해석되도록 하고, CGI 언어가 표준화된 방법으로 작성되기만 하면, 웹 서버의 종류에 관계없이 동적인 HTML 문서를 수신할 수 있도록 하였다. 이러한 기술을 사용하는 예는 Microsoft사의 ASP(Active Server Page)나 썬 마이크로 시스템즈의 Java Servlet, JSP(Java Server Page) 혹은 PHP(Personal Hypertext Preprocessor)이 있다.
그러나, 확장 CGI 기술도 클라이언트에 의해서만 통신이 시작되는 HTTP의 단방향성 통신 구조를 극복할 수 없었다. 즉, 클라이언트가 웹 문서를 요청하게 되면(HTTP Request), 서버는 임의의 요청에 따라 HTTP Response의 Body부분을 달리 표현하는 것에 불과해서, 클라이언트가 먼저 응답을 요청하고 (Get이나 Post이용), 서버가 Response로 웹 문서를 전송하는 통신 구조 범주에 국한된다.
이와 같이, 클라이언트가 신규 이벤트를 웹 화면에 반영하는 시간은 다음 수학식 1과 같이 설명될 수 있다.
Trq + Tres + Tws + Tcgi_rq + Tcgi_res + Tcgi + Trewrite = Ttotal
Trq + Tres : HTTP Request/Response 전송 시간
Tws : 웹 서버 프로세싱 처리 시간
Tcgi_rq + Tcgi_res: 웹 서버와 CGI 서버 통신 시간
Tcgi: CGI 프로세스 처리 시간
Trewrite : 웹 브라우저의 이벤트 반영 시간
Ttotal : 웹 화면의 이벤트 반영 시간
상기 수학식 1에서 설명되어지는 바와 같이, 웹 서버와 CGI 프로세스는 동일한 서버단에서 동작하므로 Tcgi_rq + Tcgi_res는 매우 작은 시간이라고 할 수 있으나, 네트워크에 부하를 미치는 Trq + Tres 시간과 Tws 및 Tcgi 및 Trewrite 시간은 클라이언트 및 서버 단에서 불필요한 작업을 반복되는 작업이다. 더욱이 Trewrite는 웹 브라우저가 새로운 웹 문서를 표현하는데 요구되는 시간이기 때문에 웹 화면에 이벤트가 반영되는 Ttotal 시간에 따라 웹 화면이 깜박이는 flickering 현상을 발생된다.
따라서, 본 발명은 상기와 같은 문제점을 해결하기 위하여 창안된 것으로, 클라이언트가 웹 서버에서 발생하는 이벤트를 실시간으로 반영하여 flickering 현상을 방지하는 웹 서비스 제공 시스템의 서비스 제공 방법 및 그 장치를 제공하는 것에 그 목적이 있다.
상기 목적을 달성하기 위한 본 발명의 일측면에 따른 웹 서비스 제공 시스템 은, 적어도 하나 이상의 웹 문서 및 웹 문서에서 변경되는 신규 이벤트 정보를 제공하는 웹 서버와, 웹 서버로부터 제공되는 각 웹 문서의 구성(form) 정보를 관리하고, 구성 정보와 신규 이벤트 정보를 비교하여, 신규 이벤트 정보를 반영할 웹 문서와 반영 영역을 확인하고, 반영 영역의 이벤트 정보를 신규 이벤트 정보로 갱신하여, 웹 문서의 화면을 주기적 또는 비주기적으로 갱신하면서 발생되는 깜박임 현상을 방지하는 클라이언트를 포함한다.
본 발명에 따른 웹 서비스 제공 시스템의 클라이언트는, 각 웹 문서의 구성 정보와, 신규 이벤트 정보를 반영할 반영 영역의 식별 정보를 관리하고, 신규 이벤트 정보가 수신되면, 구성 정보와 신규 이벤트 정보를 비교하여, 반영 영역의 식별 정보를 확인하고, 신규 이벤트 정보와 식별 정보를 제공하는 적어도 하나 이상의 이벤트 수신부와, 각 이벤트 수신부로부터 수신되는 웹 문서를 출력하고, 식별 정보에 상응하는 반영 영역에 신규 이벤트 정보를 갱신하는 적어도 하나 이상의 웹 브라우저를 포함한다.
본 발명의 다른 측면에 따른 웹 서버를 포함하는 웹 서비스 시스템의 클라이언트는, 웹 문서의 구성 정보와 웹 서버로부터 수신되는 이벤트 정보를 비교하여, 이벤트 정보가 변경된 경우, 이벤트 정보와 이벤트 정보의 반영 영역 정보를 해당 폼 매니저 애플릿으로 전송하는 상태 매니저 애플릿과, 이벤트 정보를 웹 문서에 반영하는 폼 매니저 애플릿과, 상태 매니저 애플릿으로부터 폼 매니저 애플릿으로 이벤트 정보 및 반영 영역 정보를 전송하는 중계 매니저 애플릿을 포함한다.
본 발명에 따른 클라이언트는, 적어도 하나 이상의 웹 브라우저에 내장되는 애플릿을 관리하고, 수신되는 이벤트 정보를 해당 웹 브라우저로 전송하는 이벤트 매니저 애플릿과, 이벤트 정보를 분석 또는 해석하여 이벤트 정보를 이용하는 해당 매니저 애플릿으로 전송하는 이벤트 파싱 매니저 애플릿을 더 포함한다.
본 발명의 또 다른 측면에 따른 클라이언트의 웹 브라우저는, 웹 문서의 이벤트 정보가 출력되는 웹 문서 영역과, HTML(hypertext markup language) IFRAME 형식으로 웹 브라우저에 내장되어 웹 문서 영역에 웹 문서를 출력하는 자바 애플릿과, 자바 애플릿이 이벤트 정보를 웹 문서에 반영하기 위해 호출하는 호출 자바스크립트와, 웹 문서가 활성화되었음을 자바 애플릿에 알리는 활성화 자바스크립트와, 자바 애플릿이 비동기 이벤트 정보를 반영할 웹 문서 영역을 검색하는 JSP((Java Server Page)를 포함한다.
본 발명의 또 다른 측면에 따른 웹 서비스 제공 시스템은, 적어도 하나 이상의 웹 문서의 구성 정보를 관리하고, 각 웹 문서에 변경되는 이벤트 정보와 구성 정보를 비교하여, 신규 이벤트 정보 및 반영 영역 식별 정보가 포함되는 이벤트 메시지를 제공하는 웹 서버와, 웹 서버로부터 제공되는 웹 문서를 출력하고, 이벤트 메시지에 포함된 식별 정보에 따른 웹 문서의 반영 영역에 신규 이벤트 정보를 갱신하는 클라이언트를 포함한다.
본 발명에 따른 웹 서비스 제공 시스템의 웹 서버는, 각 웹 문서와, 각 웹 문서에서 변경되는 이벤트 정보를 발생시키는 이벤트 발생부와, 각 웹 문서의 제 1 식별 정보와, 구성 정보 및 반영 영역의 제 2 식별 정보를 관리하고, 이벤트 정보가 변경되면, 구성 정보와, 신규 이벤트 정보를 비교하여, 제 1 식별 정보 및 제 2 식별 정보를 확인하고, 신규 이벤트 정보와 각 식별 정보를 제공하는 폼 관리부를 포함한다.
본 발명의 또 다른 측면에 따른 웹 서버 및 클라이언트를 포함하는 웹 서비스 제공 시스템의 서비스 제공 방법은, 클라이언트가 출력되는 적어도 하나 이상의 웹 문서의 구성(form) 정보를 관리하는 단계와, 웹 서버가 변경되는 신규 이벤트 정보를 클라이언트로 전송하는 단계와, 클라이언트가 신규 이벤트 정보와 구성 정보의 비교 결과에 따라 신규 이벤트 정보를 반영할 웹 문서 및 반영 영역을 파악하는 단계와, 클라이언트가 파악된 웹 문서의 반영 영역에 신규 이벤트 정보를 갱신하는 단계를 포함한다.
본 발명에 따른 웹 서비스 제공 시스템의 서비스 제공 방법은, 웹 서버가 각 웹 문서를 제공하고, 변경되는 이벤트 정보를 클라이언트로 전송하는 단계클라이언트가 각 웹 문서의 반영 영역별 이벤트 정보와 신규 이벤트 정보를 비교하는 단계를 더 포함한다.
본 발명의 또 다른 측면에 따른 웹 서버 및 클라이언트를 포함하는 웹 서비스 제공 시스템의 서비스 제공 방법은, 웹 서버가 클라이언트의 요청에 따라 적어도 하나 이상의 웹 문서를 제공하고, 클라이언트가 각 웹 문서를 출력하는 단계와, 웹 서버가 각 웹 문서의 구성(form) 정보를 관리하는 단계와, 웹 서버가 이벤트 정보가 변경되면, 변경되는 이벤트 정보와 구성 정보의 비교 결과에 따라 이벤트 정보를 반영할 웹 문서의 제 1 식별 정보, 반영 영역의 제 2 식별 정보 및 변경된 이벤트 정보를 클라이언트로 전송하는 단계와, 클라이언트가 제 1 식별 정보에 따른 해당 웹 문서의 제 2 식별 정보에 따른 반영 영역의 이벤트 정조를 신규 이벤트 정보로 갱신하는 단계를 포함한다.
이하 본 발명에 따른 웹 서비스 제공 시스템의 서비스 제공 방법 및 그 장치를 첨부한 도면을 참조하여 상세히 설명한다.
도 1은 본 발명의 바람직한 일실시예에 따른 웹 서비스 제공 시스템을 설명하기 위한 블록 도면이다.
도 1을 참조하면, 본 발명에 따른 웹 서비스 제공 시스템의 HTML 기반으로 작성되는 웹 문서를 제공하는 웹 서버와, 웹 서버로부터 수신되는 웹 문서를 화면으로 출력하는 클라이언트를 포함한다.
웹 서버는 HTML을 기반으로 웹 문서를 작성하고, 작업자가 웹 문서의 이벤트 정보를 변경하면, 변경되는 이벤트 정보와, 위치 정보가 포함되는 이벤트 메시지를 클라이언트로 전송하는 이벤트 생성부(10)를 포함한다.
이때, 이벤트 발생부(10)에서 발생하는 이벤트 정보는, 다양한 형태의 미디어(텍스트, 그림, 테이블, 음악파일 또는 동영상 파일 등)가 해당 될 수 있다.
그리고, 클라이언트는 이벤트 분배부(20), 다수개의 이벤트 수신부(30) 및 다수개의 웹 브라우저(30)를 포함한다.
이벤트 분배부(20)는 웹 서버로부터 수신되는 이벤트 메시지를 다수개의 이벤트 수신부(30)로 전송한다. 이 때, 웹 서버로부터 이벤트 정보를 직접 수신하여 각 웹 브라우저(30)로 이벤트 정보를 분배하는 이벤트 분배부(20)는 웹 서버와 클 라이언트사이에서의 통신만을 처리하기 위한 웹 내장 애플릿으로 구성될 수 있다.
즉, 종전에는 HTML의 META 앨리먼트인 HTTP_EQUIV 태그를 이용, HTTP 헤더에 REFRESH를 생성하고, 속성 값으로 폴링 주기를 기록하여 주기적으로 HTML 문서를 클라이언트가 서버로 재 요청함으로 인해서 발생한 불필요한 부하를 발생시키었으나, 내장되는 애플릿에서 별도로 정의하는 서버와 애플릿 사이의 통신을 사용하여, 서버에서 발생하는 모든 종류의 비동기 메시지 자체만 클라이언트로 전달되어 진다.
각 이벤트 수신부(30)는 수신되는 이벤트 정보를 연동되는 웹 브라우저(30)로 전송한다. 그리고, 각 이벤트 수신부(30)는 현재 웹 문서의 구성(form) 정보를 관리한다. 이때, 각 이벤트 수신부(30)는 웹 문서의 위치 정보와, 해당 위치 정보에 상응하는 영역의 이벤트 정보를 구성 정보로 관리한다.
각 웹 브라우저(40)는 수신되는 웹 문서에 따른 웹 화면(web page)을 출력한다.
그리고, 각 이벤트 수신부(30)는 웹 서버로부터 이벤트 메시지가 수신되면, 현재 웹 문서의 이벤트 정보와, 수신되는 이벤트 정보를 비교하여, 이벤트 정보의 변경이 있으면, 변경되는 이벤트 정보를 반영할 위치 정보와 이벤트 정보를 웹 브라우저(40)로 전송한다.
웹 브라우저(40)는 이벤트 수신부(30)로부터 수신되는 위치 정보에 상응하는 영역에 수신되는 이벤트 정보를 실시간으로 반영한다.
도 2는 본 발명의 실시예에 따른 웹 서비스 제공 시스템의 웹 문서 서비스 제공 흐름을 설명하기 위한 도면이다.
도 2를 참조하면, 웹 서버는 임의의 시간에 발생되는 모든 종류의 이벤트 정보를 클라이언트로 즉시 전송하는 통신 채널을 가지며, 이러한 통신 채널을 통해 이벤트 정보를 실시간으로 클라이언트에 전송한다.
그리고, 웹 서버의 이벤트 발생부(10)는 작업자의 작업에 따라 변경되는 이벤트 정보가 변경되면, 웹 문서를 재작성하고, 변경되는 이벤트 정보가 포함되는 이벤트 메시지를 클라이언트로 전송한다(Event Transmission)(S 10).
이때, 클라이언트는 폴링 방식으로 웹서버로부터 이벤트 변경정보를 문의하거나, 혹은 웹 서버가 이벤트가 변경되면, 이벤트 메시지를 접속된 클라이언트로 직접 전달하는 방식이 모두 사용될 수 있다.
클라이언트의 이벤트 분배부(20)는 웹 서버로부터 수신되는 이벤트 메시지를 각 이벤트 수신부(30)로 분배한다(S 20). 즉, 이벤트 분배부(20)는 웹 서버로부터 수신되는 원시 이벤트(Raw Event) 정보가 포함된 이벤트 메시지를 각 이벤트 수신부(30)로 전송한다.
그리고, 이벤트 수신부(30)는 현재 웹 문서의 구성하고 있는 이벤트 정보와, 이벤트 분배부(20)로부터 수신되는 원시 이벤트 정보를 비교하여, 자신의 이벤트 정보인지 여부를 확인하고, 변경된 이벤트 정보가 있으면, 변경된 이벤트 정보와, 해당 위치 정보를 웹 브라우저(40)로 전송한다(Parsed Event)(S 30).
즉, 이벤트 수신부(30)는 수신되는 이벤트 메시지의 이벤트 정보를 파싱하여, 해당 이벤트 정보가 반영될 위치 정보와, 이벤트 정보를 웹 브라우저(40)로 전 송한다.
웹 브라우저(40)는 이벤트 수신부(30)로부터 수신되는 이벤트 정보를 위치 정보에 상응하는 영역에 반영한다(S 40). 즉, 웹 브라우저(40)는 내장된 애플릿을 활성화하고, 애플릿이 스크립트를 호출하여, HTML 문서 중에 변경된 이벤트 정보를 실시간으로 반영한다.
도 3은 본 발명의 바람직한 실시예에 따른 클라이언트의 구성을 설명하기 위한 블록 도면이다.
도 3을 참조하면, 본 발명에 따른 클라이언트는, 웹 문서를 처리하는 웹 브라우저와, HTML IFRAME 형식으로 웹 브라우저에 내장되는 자바 애플릿, 자바 애플릿에서 웹 문서를 반영하기 위해 호출하는 호출 자바스크립트, 웹 문서가 활성화되었음을 알리는 활성화 자바스크립트, 비동기 이벤트를 반영할 구성 영역을 검색하는 JSP 및 웹 문서의 이벤트를 출력하는 HTML 문서 영역을 포함한다.
이하 바람직한 실시 도면을 예를 들어 본 발명에 따른 클라이언트를 설명한다.
도 4는 본 발명에 따른 애플릿을 설명하기 위한 도면이다.
도 4a에 도시된 StmProcCondition.jsp 는 웹 브라우저(40)내에 내장된 애플릿을 활성화시키는 역할을 한다.
즉, 웹 브라우저(40)는 IFrame 형식으로 내장된 애플릿을 활성화시키는 StmProcCondition.jsp 를 포함한다. 즉, 웹 브라우저(40)는 애플릿을 내장하는 StmProcApplet.jsp 문서를 IFrame 형식으로 가진다.
그리고, 웹 브라우저(40)는 애플릿 또는 자바 스크립트내에서 사용되는 Global Naming Convention을 위해서 IFrame 속성인 Name 속성을 가진다.
예를 들면, <IFrame src=StmProcApplet.jsp
name=AppletLoader ... > 와 같이 표현될 수 있다.
도 4b에 도시된 StmProcApplet.jsp 는 웹 서버로부터 이벤트 정보를 수신하고, 수신된 이벤트 정보를 분배하는 역할을 한다.
즉, StmProcApplet.jsp 는 웹 브라우저(40)에 내장되고, Global Naming Convention을 위한 구성(Object) 요소인 Param의 이름(Name), Code에는 해당 애플릿 코드를 값으로 설정되고, Param의 이름에는 호출할 애플릿의 이름을 설정한다.
이때, StmProcApplet.jsp 은 표현할 웹 문서의 영역 크기를 설정하기 않는다, 즉, StmProcApplet.jsp 는 현재 표현되는 웹 문서의 애플릿에 의한 그래픽이 없이, 단지 이벤트 정보를 전달하기 위한 통신 플랫폼만을 가지기 때문에, 애플릿이 표현할 웹 문서의 영역 크기를 설정하는 HTML의 Applet 태그의 Width 속성 값과 Height 속성 값을 0 으로 설정한다.
또한, 애플릿과 자바스크립트간의 통신은 JSObject 을 이용하며, JSObiect'를 이용하기 위하여 StmProcApplet.jsp 는 Param 이름인 MayScript의 값을 true로 설정한다.
예를 들면,
<Object ....Width=0 Height=0...>
<Param Name=Code Value=com.samsung.nms.ui.stm.processor.StateRegistry>
<Param Name=Name Value=stateManager>
...
<Param Name=MayScript Value=true>
...
</Object>
<Object ....Width=0 Height=0...>
<Param Name=Code Value=com.samsung.nms.ui.stm.processor.MyStmApplet>
<Param Name=Name Value=formManager>
...
<Param Name=MayScript Value=true>
...
</Object> 와 같이 표현될 수 있다.
여기에서 'stateManager'는 웹 서버로부터 이벤트 정보를 수신하고, 각 이벤트 정보를 분배하는 애플릿에 해당하는 모듈이고, 'formManager'가 수신되는 이벤트 정보를 관리하면서 웹 문서에 반영하는 애플릿에 해당하는 모듈이다.
'formManager'와 'stateManager'간의 통신은 애플릿간 통신을 사용하며, 'Java'의 'Observer - Observable' 패턴을 이용하여, 'stateManager'의 'Observer'로 'formManager'를 구성할 수 있다.
그리고, 웹 서버로부터 이벤트 수신은 Java 소켓 통신 및 Java RMI 혹은 CORBA 등 미들웨어 통신을 이용할 수 있으며, 수신되는 이벤트 정보에는 위치(Location) 정보를 가진다.
여기서, 위치 정보는 이벤트가 변경되는 어디서 발생된 이벤트인지 명시하는 필드를 포함하고, stateManager 는 수신되는 이벤트 정보의 위치 정보를 이용하여, 웹 문서에 이벤트 정보를 반영할지 아니면 폐기할지 여부를 결정한다.
도 4c에 도시된 StmProcResult.jsp 는 StmProcCondition.jsp 로부터 수신되는 이벤트 반영 요청에 따라 이벤트 정보를 웹 문서에 반영 처리한다.
즉, StmProcResult.jsp 는 StmProcCondition.jsp 로부터 수신되는 위치 정보와 이벤트 정보에 따라 해당 위치 영역에 이벤트 정보를 실시간으로 반영한다.
StmProcResult.jsp 는 이벤트 반영 요청에 따른 결과를 나타내는 jsp 코드 및 HTML 코드 영역과, 이벤트가 반영된 결과를 formManager 애플릿으로 전송하여 현재 이벤트 정보의 상태를 알리는 이벤트 상태 전송 영역, stateManager 에 이벤트 반영을 시작하라고 알려주는 시작 명령 영역, 그리고 formManager 의 호출에 따라 이벤트 정보를 웹 문서에 갱신하는 화면 갱신용 Javascript 영역으로 구성될 수 있다.
StmProcResult.jsp 는 Tabular 형태의 창에 이벤트 반영 방법에서 HTML 테이블의 칼럼을 이루는 모든 요소가 HTML:INPUT 형으로 구성되며, 각각은 다시 테이블 ID로 구분한다.
그리고, StmProcResult.jsp 는 테이블 ID를 사용하여, 이벤트 정보가 변경되는 특정 칼럼 값을 변경한다.
즉, StmProcResult.jsp 는 HTML 코드 영역을 테이블 ID로 구분하여, StmProcCondition.jsp 로부터 수신되는 위치 정보에 상응하는 테이블 ID를 가진 영역에 수신되는 이벤트 정보를 실시간으로 반영한다.
또한, StmProcResult.jsp 은 애플릿이 이벤트 정보의 변경 상태를 감지하도록 시작 영역과, 이벤트 정보의 변경 상태를 감지할 수 있도록 플래그 설정하고, 이벤트 정보를 전송하는 전송 영역으로 구성될 수 있다.
먼저, 시작 영역은,
document.frames("AppletLoader").document.stateManager.setResultFlag(true); 와 같이 표현될 수 있고, 전송 영역은,
document.frames("AppletLoader").document.formManager.setResultValue('<%=resultSeqStr%>'); 와 같이 표현될 수 있다.
상술한 시작 영역의 stateManager 클래스에서 setResultFlag(true) 가 시작 영역을 호출하여, 이후부터 발생하는 이벤트 정보에 대하여 이벤트 반영을 위한 동작을 시작하라고 JSP 문서가 애플릿에 알려주는 역할을 한다.
또 formManager 가 관리하는 현재 웹 문서 정보에 대하여 이벤트 발생에 의한 변화 상황을 감지하도록 하기 위해 현재 결과 정보를 넘겨주는 전송 영역이 존재한다.
다음으로, 이벤트 정보의 변경 상태가 감지되었을 때, formManager 에 의해 호출되어 해당 변경 상황에 대한 웹 문서를 재구성하는 방식은 다음과 같다.
function updateScreen(str1, str2, str3, str4) {
var shelf_id = str1;
var slot_id = str2;
var column = str3;
var value = str4;
var theId = 'el'+shelf_id+slot_id+column;
var objId;
switch(parseInt(column))
{
case 5 :
switch(parseInt(value))
{
case 0 :
//alert(theId);
objId = eval(theId);
objId.value="<%= StmD.BRD_STATE.NORM_EXP%>";
objId.style.backgroundColor = '#FFFFFF';
//alert('check here2');
break;
...
이와 같이 이벤트 정보를 실시간으로 반영하는 StmProcResult.jsp 의 경우, 이벤트 정보로 전송되어야 하는 정보에는 shelf_id, slot_id, column 및 value가 포함되어 있다.
이러한, 이벤트 정보 값들의 역할은 다음과 같다.
- shelf_id : 웹 문서에 이벤트 정보를 반영할 영역을 찾기 위해 부여된 테이블 ID 정보를 만드는 역할.
- slot_id : shelf_id의 역할과 동일.
- column : 위의 shelf_id 와 slot_id에 의해 화면에 그려지는 테이블에서 Row 값을 산출 후, 해당 Row에서 이벤트가 반영되어져야 하는 column을 명시하는 역할.
- value : 해당 row - column에서 이전 정보와는 다른 정보를 가지는 값 정보를 나타내는 역할.
여기서, 테이블 Id는 동적인 웹 문서에서 이벤트 정보를 반영할 수 있도록 개별 테이블의 칼럼들을 HTML INPUT 형식으로 정의하고, 해당 INPUT 칼럼에 대해 부여된 테이블 ID 정보에 매핑되는 키 값이 된다.
애플릿에 의해 호출되는 updateScreen 메소드는 이와 같이 테이블 기반의 웹 문서의 임의 영역을 새로이 작성할 수 있게 된다.
그리고, 도 4c에 도시된 StmProcResult.jsp 는 웹 문서에 정의되는 테이블에 ID를 부여한다.
StmProcResult.jsp 에서 테이블 ID를 부여하는 방식은 다음과 같다.
<%
...
String fId = new String(slfNum+slotNum);
String slfNum = (String) aRow.elementAt(0);
String slotNum = (String) aRow.elementAt(1);
...
for(int i=0; i<mSize; i++)
{
%>
<TR>
<!-- No Column -->
<TD id="stmTableTd" style="border:1px solid ...
<input id=no<%=i%>0 type=text readonly=true size=6 value="<%=i+1%>" ...
</TD>
<!-- Shelf Column -->
<TD id="stmTableTd" style="border:1px solid ...
<input id=el<%=i%><%=slfNum%>1 type=text ... value="<%=slfNum%>" ...
</TD>
<!-- Slot Column -->
<TD id="stmTableTd" style="border:1px solid ...
<input id=el<%=i%><%=slotNum%>2 type=text ... value="<%=slotNum%>" ...
</TD>
<!-- BoardType Column -->
<% if(bdType.equals(StmD.BRD_TYPE.DPSA)) {%>
<TD id="stmTableTd" style="border:1px solid ...
<input id=el<%=fId%>3 type=text ... value="<%=StmD.BRD_TYPE.DPSA_EXP%>" ...
<%} else if(bdType.equals(StmD.BRD_TYPE.PEBA)) {%>
<TD id="stmTableTd" style="borde ...
...
StmProcResult.jsp 는 웹 문서의 전체 테이블의 Row 수 만큼 반복하면서 개별 Row를 이루는 각 칼럼에 대해서 HTML:INPUT 형식으로 정의를 하며, 일례에 따라 Shelf_ID와 Slot_ID에 의해 개별 Row가 정해지게 되고, 해당 테이블이 가지는 칼럼 번호는 명시적으로 각 칼럼마다 0 ... N까지의 칼럼 번호를 기록할 수 있다,
또한, StmProcResult.jsp 에서 부여되는 테이블 ID는 상술한 updateScreen 스크립트 메소드에 의해 만들어지는 테이블 ID와 동일하게 매핑된다.
즉, StmProcResult.jsp 는 수신되는 위치 정보에 상응하는 테이블 ID 정보가 부여되는 웹 문서의 영역에 수신되는 이벤트 정보를 반영한다.
도 5는 본 발명에 따른 애플릿의 클래스를 설명하기 위한 도면이다.
도 5를 참조하면, stateManager와 formManager 애플릿은 MyRegistry 클래스와 EventParser 클래스를 Helper 클래스로 두고, 각각 StateRegistry 클래스와 MyStmApplet 클래스로 구성되며, formManager는 내장 클래스인 MyObserver 클래스를 가진다.
도 5a에 도시된 stateManager 애플릿 클래스(StateRegistry)는 웹 서버로부터 이벤트를 수신하고, 수신된 이벤트의 반영여부를 결정하여, 웹 문서에 이벤트 반영이 필요할 경우에 해당 이벤트를 화면 반영 담당 애플릿인 formManager에게 알려 주는 역할을 수행한다.
StateRegistry 클래스는 애플릿 관리를 위한 Helper 클래스인 MyRegistry의 인스턴스와 이벤트 반영 시점을 판별하는 플래그를 멤버 변수로 가진다. 이는 각각 Registry, readyFlag로 명시되어 있다.
StateRegistry 클래스가 가지는 init, destroy, doStart 메소드는 웹 브라우저(40)에서 구동되는 애플릿의 구동 주기에 관여되는 것으로, Java 애플릿 표준에서 요구하는 메소드이다.
이러한, 메소드는 StateRegistry 클래스를 위한 초기화 및 종료 시에 필요한 작업을 수행한다. receivedEvent 메소드는 웹 서버로부터 발생된 이벤트를 수신하기 위해 사용되는 메소드이다.
그리고, 도 5b에 도시된 formManager 애플릿 클래스(MyStmApplet)는 웹 서버로부터 수신되는 이벤트 정보를 웹 문서에 반영하는 역할을 담당한다.
MyStmApplet은 애플릿 관리를 위한 Helper 클래스인 MyRegistry 형 인스턴스와 수신된 이벤트를 파싱하기 위한 Helper 클래스인 EventParser형 인스턴스와 웹 문서에 대한 레퍼런스인 JSObject 인스턴스를 멤버변수로 가진다.
MyStmApplet 클래스가 가지는 setResultValue 메소드는 초기 현재 정보를 설정하기 위해서 StmProcResult.jsp 문서에서 호출한다.
즉, MyStmApplet는 현재 이벤트 정보를 기반으로 수신된 이벤트가 현재 이벤트 정보와 다른지 같은지 판별하기 위하여, 현재 이벤트 정보를 관리한다.
도 5c에 도시된 Helper 클래스(MyRegistry)는 각 웹 브라우저(40)마다 서로 다른 이벤트 정보를 전송해야 하는 경우, 각 웹 브라우저(40)에 내장되는 애플릿을 관리하고, 특정 애플릿에 특정 이벤트 정보를 전송할 수 있도록 한다.
또한, MyRegistry는 이벤트 정보가 발생하였을 경우, Observer - Observable 패턴의 Observable로 설계된 자신의 Observer로 등록된 모든 클래스에게 해당 이벤트를 알려준다.
그리고, MyRegistry는 Sigleton 패턴을 사용하여, 자신을 가리키는 MyRegistry형 인스턴스와 애플릿을 관리/ 저장하기 위한 Hashtable형 인스턴스 형 태의 멤버 변수를 각각 가진다.
또한, MyRegistry는 accessor에 해당하는 getInstance는 단일 클래스 인스턴스로 관리되는 MyRegistry 클래스를 자신을 얻을 수 있도록 하며, addApplet removeApplet()을 통해 관리될 애플릿을 호출할 수 있도록 한다. addApplet을 호출할 때, 인자 값으로 Observer 인터페이스를 구현한 클래스 형을 요구하는데, addApplet을 호출함과 동시에 본 클래스의 Observer로 등록되기 때문이다.
findApplet는 등록된 애플릿에서 해당 이름의 애플릿을 찾도록 하는 메소드이며, fireEvent는 등록한 애플릿 모두에게 이벤트를 전송하는 클래스이다.
도 5d에 도시된 Helper 클래스(EventParser)는 전달되는 이벤트 정보를 분석/해석하여 이벤트 정보를 이용하는 다른 클래스로 해당 이벤트 정보를 제공하는 Helper 클래스이다.
Javascript와 Java Applet간 통신에서 사용되는 JSObject가 복합 클래스 객체를 인자 값으로 넘겨주는 기능을 지원하지 않고, 기본 데이터형 (int, boolean, char 등)과 String형 클래스 객체를 인자 값으로 넘겨주는 것을 허용하고 있다.
따라서, 웹 문서와 애플릿간 주고받을 이벤트 정보를 String형으로 변환하여야 함으로, Tabular 형으로 나타나는 정보에 대해 비동기적 변화를 나타내는데에 있고, 이 때의 Tabular 형으로 나타나는 정보를 String형으로 모두 나타낼 수 있는 방법을 위의 '변환과정'이 지원해야 한다.
이러한 '변환과정'을 위해 본 발명이 제시하는 바는 다음과 같다.
"Source:[LOC]/Header:[HList]/Length:[LEN]/Value:VAList/Tail"
­ LOC : Location정보
­ HList : ','로 구분된 이벤트 헤더 정보의 리스트
­ LEN : 테이블 헤더 길이를 나타내는 숫자
­ VAList : 테이블 하나의 Row 값에 대한 각 칼럼 정보는 ','로 구분되고, Row 사이는 ';'로 구분되는 테이블 값에 대한 리스트
'Source'로 시작하여 ':' 뒤에 오는 값은 Location 정보를 가져야 하고, Location 정보의 끝은 '/'로 구분되어야 한다. Location정보 뒤에는 'Header'로 시작하는 문자가 오며, ':' 뒤에 오는 값은 ','로 구분되는 테이블 헤더 정보 리스트이고, 이 리스트의 끝은 '/'로 명시된다. 테이블 헤더 뒤에는 'Lengh'로 시작되는 문자가 와야 하고, ':' 뒤에는 헤더 길이를 나타내는 숫자가 와야 한다. Length 뒤에는 테이블 값을 나타내는 값의 목록이 따라 오며, 값의 시작은 'Value'와 ':' 다음부터 올 수 있고, 그 끝은 '/'로 명시되어야 한다. 이 이벤트의 끝은 'Tail'이라는 문자가 오면, 끝나는 것으로 해석한다.
이 클래스의 parse 메소드를 위의 형식으로된 String형 값을 넘겨주면서 호출하면 해당 이벤트 정보에 대한 해석이 수행된다.
도 5e에 도시된 MyStmApplet의 내장 클래스(MyObserver)는 Observable 형인 MyRegistry 클래스의 Observer로 MyStmApplet이 등록되기 위해 필요한 Helper 기능을 수행한다.
update 메소드는 이벤트가 수신되어 MyRegistry의 fireEvent가 호출될 때 실행되는 것이다. StateRegistry가 화면 반영 여부를 해당 이벤트의 Location 정보로 부터 결정한다면, 본 클래스에서 수행되는 2차 화면 반영여부 판단은 해당 이벤트가 현재 등록된 현재 값에서 변화가 발생했는지 여부에 따라 결정된다. hasChange 메소드는 이러한 2차 반영 여부 판단을 수행하는 메소드이고, updateScreen은 JSObject를 이용하여 결과 웹 문서의 임의 값을 실제 변경하는 메소드이다.
도 6은 본 발명의 바람직한 실시예에 따른 웹 문서의 실시간 이벤트 반영 흐름을 설명하기 위한 흐름도이다.
도 6을 참조하면, 본 발명에 따른 웹 문서의 실시간 이벤트 반영 흐름은 크게 초기 웹 문서의 출력 과정(과정 A)과, 실시간 이벤트 반영 과정(과정 B)으로 구분할 수 있다.
먼저, 사용자가 웹 브라우저(40)의 Condition 페이지(Page)를 활성화하게 되면(S 100), Condition 페이지 내의 IFrame 형식으로 내장된 Applet 로딩 페이지(미도시)에 의해 stateManager Applet(애플릿)과 formManager Applet이 구동된다(S 11, 120).
formManager Applet은 구동되면, stateManager Applet에 대해 이벤트 리스너로 자신을 등록한다(S 130).
그리고, 사용자가 Condition 페이지에서 요구하는 입력 값(예를 들면, 웹 사이트의 주소 정보)을 입력하면, 그에 대한 결과를 실시하는 '초기 화면 요구' 과정이 실행된다(S 140).
Java Servlet에 의해 성공적인 결과 값이 설정되면, 웹 브라우저(40)의 Result 페이지내에 내장된 Javascript 함수 호출에 의해 stateManager에게 이벤트 수신 시작 명령을 전송하여, 수신되는 이벤트에 따른 웹 문서를 출력한다(S 150).
즉, Result 페이지는 이벤트가 수신되면, 웹 문서에 반영하도록 하라는 의미의 setResultFlag 메소드 호출이 실행한다.
그리고, Result 페이지는 formManager로 현재 테이블 결과 값이 스트링 형태로 변환된 값을 setResultValue 메소드의 인자 값으로 호출하여 현재 상태를 알린다(S 160).
그리고, 웹 서버는 웹 문서의 이벤트가 변경되면, 변경되는 이벤트 정보가 포함되는 이벤트 메시지를 stateManager로 전송한다(S 170).
stateManager는 수신되는 이벤트 메시지에 포함된 이벤트 정보가 연동되는 Result 페이지의 웹 문서에 반영되어야 하는 경우, 이벤트 정보를 Helper 클래스 MyRegistry의 fireEvent 메소드 호출을 통하여 리스너로 등록된 formManager Applet으로 전달한다(S 180).
formManager Applet으로 전달된 이벤트는 EventParser 클래스를 통해 현재 웹 문서를 구성하고 있는 이벤트 정보의 Location 정보를 비교하고, 현재 이벤트 정보의 Location과 동일한 정보를 가진 이벤트이고, 이벤트의 값이 현재 값과 다른 값을 가지고 있을 경우, JSObject를 이용하는 updateScreen 메소드 호출하여 Result 페이지가 가지는 화면 반영을 위한 스크립트를 호출한다(S 190).
따라서, 변경되는 이벤트 정보의 웹 문서 반영은 이미 Result 페이지가 가지는 스크립트에 의한 호출을 함으로써 수행되기 때문에 웹 문서로부터 이벤트 정보가 수신되면, 실시간으로 웹 문서에 반영할 수 있게 된다.
도 7은 본 발명의 바람직한 실시예에 따른 웹 서비스 제공 방법의 흐름을 설명하기 위한 플로챠트 도면이다.
웹 서버는 작성되는 적어도 하나 이상의 초기 웹 문서를 클라이언트로 전송하고, 클라이언트는 수신되는 웹 문서를 화면으로 출력한다(S 200).
클라이언트는 현재 출력되고 있는 웹 문서의 구성(form) 정보를 관리한다.
그리고, 웹 서버는 각 웹 문서에 이벤트 정보가 변경되면, 변경되는 이벤트 정보가 포함되는 이벤트 메시지를 클라이언트로 전송한다(S 210).
클라이언트는 현재 관리하는 있는 웹 문서의 구성 정보와, 수신되는 이벤트 정보를 비교하여, 이벤트 정보가 변경되는 웹 문서를 파악하고, 변경할 이벤트 정보를 반영할 이벤트 반영 영역을 확인한다(S 220).
즉, 클라이언트는 출력되는 웹 문서를 테이블 기반으로 관리하면서 각 테이블 영역에 테이블 ID 정보를 부여하고, 이벤트 정보가 수신되면, 해당 이벤트 정보를 반영할 위치 정보에 상응하는 테이블 영역을 검색한다.
그리고, 클라이언트는 검색된 위치 정보에 상응하는 테이블 영역에 수신되는 신규 이벤트 정보를 반영하여, 실시간으로 웹 문서의 이벤트 정보를 반영한다(S 230).
도 8은 본 발명의 다른 실시예에 따른 웹 서비스 제공 시스템을 설명하기 위한 블록 도면이다.
도 8을 참조하면, 본 발명의 다른 실시예에 따른 웹 서버는 이벤트 발생부(10) 및 폼 매니저(50)를 포함하고, 클라이언트는 이벤트 분배부(20), 다수개의 이 벤트 수신부(30) 및 다수개의 웹 브라우저(40)를 포함한다.
웹 서버의 이벤트 발생부(10)는 작성되는 웹 문서를 클라이언트로 제공하고, 작업자의 작업에 따라 웹 문서의 이벤트를 발생시킨다.
폼 매니저(50)는 이벤트 발생부(10)에서 작성하는 적어도 하나 이상의 웹 문서의 구성(form) 정보를 관리하고, 이벤트 발생부(10)에서 작성된 웹 문서에 이벤트를 발생시키면, 해당 웹 문서에서 변경되는 이벤트 정보와, 변경된 이벤트 정보의 위치 정보가 포함되는 이벤트 메시지를 클라이언트로 전송한다.
폼 매니저(50)는 웹 서버에서 작성되는 각 웹 문서의 구성 정보, 즉 웹 문서의 각 이벤트 정보와, 해당 이벤트 정보의 위치 정보를 관리하고, 이벤트 발생부(10)에서 작성된 웹 문서에서 이벤트 정보를 변경하면, 현재 웹 문서의 이벤트 정보와, 변경되는 이벤트 정보를 비교하여, 변경되는 위치 정보와 이벤트 정보가 포함되는 이벤트 메시지를 클라이언트로 전송한다.
폼 매니저(50)는 각 웹 문서에 문서 ID 정보를 할당하고, 각 웹 문서의 이벤트 반영 영역을 테이블 기반으로 관리할 수 있다. 즉, 폼 매니저는 웹 문서의 이벤트 반영 영역을 다수개의 테이블 영역으로 구분하고, 각 테이블 영역에 테이블 ID를 부여하여, 문서 ID 정보와, 테이블 ID 정보를 클라이언트로 전송한다. 그리고, 폼 매니저(50)는 이벤트 발생부(10)에서 이벤트가 발생되는 테이블 영역의 테이블 ID 정보와, 문서 ID 정보를 위치 정보로 클라이언트로 전송한다.
이벤트 분배부(20)는 웹 서버로부터 웹 문서와, 이벤트 메시지를 수신하여, 각 이벤트 수신부(30)로 전송한다.
이벤트 수신부(30)는 수신되는 웹 문서를 연동하는 웹 브라우저(40)로 전송한다. 웹 브라우저(40)는 수신되는 웹 문서를 화면으로 출력한다.
그리고, 이벤트 분배부(20)는 이벤트 메시지에 포함되는 문서 ID 정보에 상응하는 이벤트 수신부(30)로 이벤트 메시지를 전송한다. 즉, 이벤트 분배부(20)는 수신되는 이벤트 메시지에 포함된 문서 ID 정보에 상응하는 이벤트 수신부(30)로 이벤트 메시지를 전송한다.
이벤트 수신부(30)는 수신되는 이벤트 메시지를 상응하는 웹 브라우저(40)로 전송하고, 웹 브라우저(40)는 수신되는 이벤트 메시지에 포함된 테이블 ID 정보에 상응하는 이벤트 반영 영역에 이벤트 정보를 실시간으로 반영한다.
도 9는 본 발명의 다른 실시예에 따른 웹 서비스 제공 방법을 설명하기 위한 플로챠트 도면이다.
도 9를 참조하면, 클라이언트는 초기 사용자의 선택에 따라 웹 문서를 웹 서버로 요청하고, 웹 서버는 사용자가 선택하는 입력 값에 따른 웹 문서를 제공한다. 그리고, 클라이언트는 수신되는 웹 문서를 웹 브라우저(40)를 통해 출력한다(S 300).
그리고, 웹 서버는 현재 제공하고 있는 웹 문서의 구성 정보를 관리한다(S 310).
웹 서버는 작업자의 작업에 따라 웹 문서의 이벤트 정보가 변경되면, 현재 웹 문서의 구성 정보와, 변경되는 이벤트 정보를 비교하여, 변경된 위치 정보 및 이벤트 정보가 포함되는 이벤트 메시지를 클라이언트로 전송한다(S 320).
즉, 웹 서버는 작성되는 적어도 하나 이상의 웹 문서의 구성 정보를 관리하고, 웹 문서에 이벤트 정보가 변경되면, 해당 웹 문서에서 변경되는 이벤트 정보와, 변경된 이벤트 정보의 위치 정보가 포함되는 이벤트 메시지를 클라이언트로 전송한다.
이때, 웹 서버는 각 웹 문서에 문서 ID 정보를 할당하고, 각 웹 문서의 이벤트 반영 영역을 테이블 기반으로 관리할 수 있다. 즉, 웹 서버는 웹 문서의 이벤트 반영 영역을 다수개의 테이블 영역으로 구분하고, 각 테이블 영역에 테이블 ID를 부여하여, 변경되는 웹 문서 ID 정보와, 이벤트 정보가 변경된 테이블 ID 정보를 클라이언트로 전송한다.
클라이언트는 수신되는 이벤트 메시지에 포함된 이벤트 정보를 반영할 웹 브라우저(40)를 문서 ID 정보를 통해 확인하고(S 330), 해당 웹 브라우저(40)의 테이블 ID 정보에 상응하는 이벤트 반영 영역의 이벤트 정보를 수신되는 이벤트 정보로 변경한다(S 340)
즉, 클라이언트는 수신되는 이벤트 메시지를 상응하는 웹 브라우저(40)로 이벤트 메시지를 전송하고, 웹 브라우저(40)는 수신되는 이벤트 메시지에 포함된 테이블 ID 정보에 상응하는 이벤트 반영 영역에 이벤트 정보를 실시간으로 반영한다.
도 10은 본 발명의 실시예에 따라 실시간으로 웹 문서에 이벤트를 반영하는 것을 설명하기 위한 도면이다.
도 10을 참조하면, 웹 문서의 이벤트 반영 영역은 테이블 기반으로 관리됨을 알 수 있다.
클라이언트는 웹 서버로부터 이벤트 메시지가 수신되면, 수신되는 이벤트 정보와, 현재 출력되고 있는 웹 문서의 구성 정보를 비교하여, 이벤트 정보를 반영할 테이블 영역을 검색한다.
그리고, 클라이언트는 검색되는 테이블 영역에 이벤트 정보를 반영함으로써 웹 서버로부터 변경되는 이벤트 정보가 수신되면, 실시간으로 이벤트 정보를 웹 문서에 반영할 수 있다.
상술한 본 발명의 상세 설명은 웹 문서를 테이블 기반으로 관리하고, 애플릿 및 스크립트를 이용하여 이벤트를 웹 문서에 실시간으로 반영하는 경우에 대하여 설명하였으나, 기타 응용 프로그램 또는 웹 문서 구성 방식을 사용하는 경우도 이와 동일함을 알 수 있다.
상기한 바와 같이, 본 발명에 따르면, 클라이언트가 웹 서버에서 발생되는 이벤트를 실시간으로 반영할 수 있다.
또한, 클라이언트가 다양한 미디어 이벤트를 실시간으로 반영할 수 있음으로, 긴급 뉴스 속보를 전달할 수 있게 되거나, 웹 컨텐츠의 텍스트 내용의 일부 혹은 전부를 실시간으로 변경할 수 있는 효과가 있다.

Claims (18)

  1. 웹 서비스 제공 시스템에 있어서,
    적어도 하나 이상의 웹 문서 및 상기 웹 문서에서 변경되는 신규 이벤트 정보를 제공하는 웹 서버와,
    상기 웹 서버로부터 제공되는 각 웹 문서의 구성(form) 정보를 관리하고, 상기 구성 정보와 상기 신규 이벤트 정보를 비교하여, 상기 신규 이벤트 정보를 반영할 상기 웹 문서와 반영 영역을 확인하고, 상기 반영 영역의 이벤트 정보를 상기 신규 이벤트 정보로 갱신하여, 상기 웹 문서의 화면을 주기적 또는 비주기적으로 갱신하면서 발생되는 깜박임 현상을 방지하는 클라이언트를 포함하는 웹 서비스 제공 시스템.
  2. 제 1 항에 있어서, 상기 클라이언트는,
    상기 각 웹 문서의 구성 정보와, 신규 이벤트 정보를 반영할 상기 반영 영역의 식별 정보를 관리하고, 상기 신규 이벤트 정보가 수신되면, 상기 구성 정보와 상기 신규 이벤트 정보를 비교하여, 상기 반영 영역의 식별 정보를 확인하고, 상기 신규 이벤트 정보와 상기 식별 정보를 제공하는 적어도 하나 이상의 이벤트 수신부와,
    상기 각 이벤트 수신부로부터 수신되는 웹 문서를 출력하고, 상기 식별 정보 에 상응하는 반영 영역에 상기 신규 이벤트 정보를 갱신하는 적어도 하나 이상의 웹 브라우저를 포함하는 웹 서비스 제공 시스템.
  3. 제 2 항에 있어서, 상기 클라이언트는,
    상기 웹 서버로부터 수신되는 상기 웹 문서 및 상기 신규 이벤트 정보를 상기 각 이벤트 수신부로 분배하는 이벤트 분배부를 더 포함하는 웹 서비스 제공 시스템.
  4. 제 2 항에 있어서, 상기 각 이벤트 수신부는,
    상기 신규 이벤트 정보를 반영할 상기 웹 문서의 반영 영역이 확인되지 않으면, 상기 신규 이벤트 정보를 폐기 처리하는 웹 서비스 제공 시스템.
  5. 제 1 항에 있어서, 상기 구성 정보는,
    상기 웹 문서의 반영 영역을 테이블 기반으로 구획하는 식별 정보와, 상기 각 식별 정보에 상응하는 반영 영역의 이벤트 정보 중 적어도 하나의 정보인 웹 서비스 제공 시스템.
  6. 웹 서버를 포함하는 웹 서비스 시스템에 있어서,
    웹 문서의 구성 정보와 상기 웹 서버로부터 수신되는 이벤트 정보를 비교하여, 이벤트 정보가 변경된 경우, 상기 이벤트 정보와 상기 이벤트 정보의 반영 영역 정보를 해당 폼 매니저 애플릿으로 전송하는 상태 매니저 애플릿;
    상기 이벤트 정보를 상기 웹 문서에 반영하는 폼 매니저 애플릿;
    상기 상태 매니저 애플릿으로부터 상기 폼 매니저 애플릿으로 상기 이벤트 정보 및 반영 영역 정보를 전송하는 중계 매니저 애플릿을 포함하는 웹 서비스 시스템의 클라이언트.
  7. 제 6 항에 있어서,
    적어도 하나 이상의 웹 브라우저에 내장되는 애플릿을 관리하고, 수신되는 이벤트 정보를 해당 웹 브라우저로 전송하는 이벤트 매니저 애플릿;
    상기 이벤트 정보를 분석 또는 해석하여 상기 이벤트 정보를 이용하는 해당 매니저 애플릿으로 전송하는 이벤트 파싱 매니저 애플릿을 더 포함하는 웹 서비스 시스템의 클라이언트.
  8. 웹 서비스 제공 시스템에 있어서,
    웹 문서의 이벤트 정보가 출력되는 웹 문서 영역;
    HTML(hypertext markup language) IFRAME 형식으로 웹 브라우저에 내장되어 상기 웹 문서 영역에 상기 웹 문서를 출력하는 자바 애플릿;
    상기 자바 애플릿이 이벤트 정보를 상기 웹 문서에 반영하기 위해 호출하는 호출 자바스크립트;
    상기 웹 문서가 활성화되었음을 상기 자바 애플릿에 알리는 활성화 자바스크립트;
    상기 자바 애플릿이 비동기 이벤트 정보를 반영할 상기 웹 문서 영역을 검색하는 JSP((Java Server Page)를 포함하는 클라이언트의 웹 브라우저.
  9. 웹 서비스 제공 시스템에 있어서,
    적어도 하나 이상의 웹 문서의 구성 정보를 관리하고, 상기 각 웹 문서에 변경되는 이벤트 정보와 상기 구성 정보를 비교하여, 신규 이벤트 정보 및 반영 영역 식별 정보가 포함되는 이벤트 메시지를 제공하는 웹 서버와,
    상기 웹 서버로부터 제공되는 상기 웹 문서를 출력하고, 상기 이벤트 메시지에 포함된 상기 식별 정보에 따른 웹 문서의 상기 반영 영역에 상기 신규 이벤트 정보를 갱신하는 클라이언트를 포함하는 웹 서비스 제공 시스템.
  10. 제 9항에 있어서, 상기 웹 서버는,
    상기 각 웹 문서와, 상기 각 웹 문서에서 변경되는 이벤트 정보를 발생시키는 이벤트 발생부와,
    상기 각 웹 문서의 제 1 식별 정보와, 구성 정보 및 상기 반영 영역의 제 2 식별 정보를 관리하고, 상기 이벤트 정보가 변경되면, 상기 구성 정보와, 상기 신규 이벤트 정보를 비교하여, 상기 제 1 식별 정보 및 상기 제 2 식별 정보를 확인하고, 상기 신규 이벤트 정보와 상기 각 식별 정보를 제공하는 폼 관리부를 포함하는 웹 서비스 제공 시스템.
  11. 제 9 항에 있어서, 상기 클라이언트는,
    상기 웹 서버로부터 수신되는 제 1 식별 정보에 해당하는 웹 문서에서 상기 제 2 식별 정보에 상응하는 반영 영역에 상기 신규 이벤트 정보를 갱신하는 웹 서비스 제공 시스템.
  12. 웹 서버 및 클라이언트를 포함하는 웹 서비스 제공 시스템의 서비스 제공 방법에 있어서,
    상기 클라이언트가 출력되는 적어도 하나 이상의 웹 문서의 구성(form) 정보를 관리하는 단계;
    상기 웹 서버가 변경되는 신규 이벤트 정보를 상기 클라이언트로 전송하는 단계;
    상기 클라이언트가 상기 신규 이벤트 정보와 상기 구성 정보의 비교 결과에 따라 상기 신규 이벤트 정보를 반영할 웹 문서 및 반영 영역을 파악하는 단계;
    상기 클라이언트가 상기 파악된 웹 문서의 반영 영역에 상기 신규 이벤트 정보를 갱신하는 단계를 포함하는 웹 서비스 제공 시스템의 서비스 제공 방법.
  13. 제 12항에 있어서, 상기 구성 정보를 관리하는 단계는,
    상기 클라이언트가 상기 각 웹 문서의 반영 영역을 테이블 기반으로 구획하여 식별 정보를 할당하는 단계;
    상기 식별 정보에 상응하는 각 반영 영역별 이벤트 정보를 관리하는 단계를 포함하는 웹 서비스 제공 시스템의 서비스 제공 방법.
  14. 제 12항에 있어서,
    상기 웹 서버가 상기 각 웹 문서를 제공하고, 변경되는 이벤트 정보를 상기 클라이언트로 전송하는 단계;
    상기 클라이언트가 상기 각 웹 문서의 반영 영역별 이벤트 정보와 상기 신규 이벤트 정보를 비교하는 단계를 더 포함하는 웹 서비스 제공 시스템의 서비스 제공 방법.
  15. 제 12 항에 있어서, 상기 이벤트 정보를 갱신하는 단계는,
    상기 변경되는 이벤트 정보를 반영할 해당 웹 문서의 반영 영역을 확인하는 단계와,
    해당 반영 영역의 이벤트 정보를 상기 웹 서버로부터 수신되는 이벤트 정보로 변경하는 단계를 포함하는 웹 서비스 제공 시스템의 서비스 제공 방법.
  16. 제 12 항에 있어서, 상기 이벤트 정보를 전송하는 단계는,
    상기 클라이언트가 폴링 방식으로 소정 주기로 이벤트 정보를 상기 웹 서버로 요청하여, 상기 웹 서버가 소정 주기로 상기 이벤트 정보를 전송하거나, 상기 웹 서버가 상기 각 웹 문서의 이벤트 정보가 변경되면, 상기 이벤트 정보를 상기 클라이언트로 전송하는 웹 서비스 제공 시스템의 서비스 제공 방법.
  17. 웹 서버 및 클라이언트를 포함하는 웹 서비스 제공 시스템의 서비스 제공 방법에 있어서,
    상기 웹 서버가 상기 클라이언트의 요청에 따라 적어도 하나 이상의 웹 문서 를 제공하고, 상기 클라이언트가 상기 각 웹 문서를 출력하는 단계;
    상기 웹 서버가 상기 각 웹 문서의 구성(form) 정보를 관리하는 단계;
    상기 웹 서버가 이벤트 정보가 변경되면, 상기 변경되는 이벤트 정보와 상기 구성 정보의 비교 결과에 따라 상기 이벤트 정보를 반영할 웹 문서의 제 1 식별 정보, 반영 영역의 제 2 식별 정보 및 변경된 이벤트 정보를 상기 클라이언트로 전송하는 단계;
    상기 클라이언트가 상기 제 1 식별 정보에 따른 해당 웹 문서의 상기 제 2 식별 정보에 따른 반영 영역의 이벤트 정조를 상기 신규 이벤트 정보로 갱신하는 단계를 포함하는 웹 서비스 제공 시스템의 서비스 제공 방법.
  18. 제 17 항에 있어서, 상기 구성 정보를 관리하는 단계는,
    상기 각 웹 문서에 제 1 식별 정보를 할당하고, 상기 각 웹 문서의 반영 영역을 테이블 기반으로 구획하여 제 2 식별 정보를 할당하는 단계;
    상기 제 2 식별 정보에 상응하는 반영 영역별 이벤트 정보를 관리하는 단계를 포함하는 웹 서비스 제공 시스템의 서비스 제공 방법.
KR1020050081410A 2005-09-01 2005-09-01 웹 서비스 제공 시스템의 서비스 제공 방법 및 그 장치 KR100814396B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020050081410A KR100814396B1 (ko) 2005-09-01 2005-09-01 웹 서비스 제공 시스템의 서비스 제공 방법 및 그 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050081410A KR100814396B1 (ko) 2005-09-01 2005-09-01 웹 서비스 제공 시스템의 서비스 제공 방법 및 그 장치

Publications (2)

Publication Number Publication Date
KR20070025352A true KR20070025352A (ko) 2007-03-08
KR100814396B1 KR100814396B1 (ko) 2008-03-18

Family

ID=38099632

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050081410A KR100814396B1 (ko) 2005-09-01 2005-09-01 웹 서비스 제공 시스템의 서비스 제공 방법 및 그 장치

Country Status (1)

Country Link
KR (1) KR100814396B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130077908A (ko) * 2011-12-29 2013-07-09 엔에이치엔비즈니스플랫폼 주식회사 폼 입력값의 클라이언트 및 서버 이중 검증을 위한 방법 및 장치
KR101528803B1 (ko) * 2008-06-20 2015-06-16 에스케이텔레콤 주식회사 비즈 프로세스 기반 어플리케이션 구축 시스템 및 방법

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000049823A (ko) * 2000-05-02 2000-08-05 김도형 웹브라우져의 처음 화면(시작 페이지)제어를 통한 인터넷광고 방법과 이를 활용한 비지니스 모델
KR100440927B1 (ko) * 2000-12-09 2004-07-21 주식회사 이야기 인터넷상의 웹 페이지를 갱신하는 방법 및 그 장치

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101528803B1 (ko) * 2008-06-20 2015-06-16 에스케이텔레콤 주식회사 비즈 프로세스 기반 어플리케이션 구축 시스템 및 방법
KR20130077908A (ko) * 2011-12-29 2013-07-09 엔에이치엔비즈니스플랫폼 주식회사 폼 입력값의 클라이언트 및 서버 이중 검증을 위한 방법 및 장치

Also Published As

Publication number Publication date
KR100814396B1 (ko) 2008-03-18

Similar Documents

Publication Publication Date Title
JP3980596B2 (ja) サーバを遠隔かつ動的に構成する方法およびシステム
JP2005149387A (ja) リアルタイムWeb共有システム
US8639743B1 (en) System and method for on-the-fly rewriting of JavaScript
US8473593B1 (en) Method for dynamically generating information objects based on a restful subscription request
US20060212798A1 (en) Rendering content natively on local operating system
KR970022789A (ko) 네트워크상에서 내장 애플리케이션 전송용 시스템
US8819539B1 (en) On-the-fly rewriting of uniform resource locators in a web-page
KR20050085164A (ko) 리얼타임 웹 공유 시스템
CN107463453B (zh) 同一终端不同应用间通信的方法、装置、设备和存储介质
US7379998B2 (en) System and method for multi-platform queue queries
US10862995B2 (en) Internet-wide scheduling of transactions
CN102761554A (zh) 向客户端推送信息的方法、装置及系统
US7512619B2 (en) Real time work queue notification
JP2003015793A (ja) ネットワーク上の監視対象の情報を監視画面上にダイナミックに変化させて表示する方法、ネットワーク上の監視対象の情報を監視画面上にダイナミックに変化させて表示するシステム、およびこのシステムを実現するためのユーザインタフェースプレイヤープログラム
CN113204730A (zh) 资源获取方法、webvpn代理服务器、系统及服务器
US8874654B2 (en) System for processing requests to portlets
CN110928767A (zh) 网页分析方法、装置、设备及存储介质
CN105516333A (zh) 一种基于网页的交互方法和系统
CN108733495B (zh) 用于实现跨平台通信的方法和设备
US20060136588A1 (en) User interface for configuring web services for remote portlets
KR100814396B1 (ko) 웹 서비스 제공 시스템의 서비스 제공 방법 및 그 장치
US20050071754A1 (en) Pushing information to distributed display screens
KR20180057619A (ko) 휴대 단말에 푸시 통지를 행하기 위한 통지 방법 및 통지 서버
KR20130067690A (ko) 브라우저 상에서 실행되는 서비스의 정보를 공유하는 방법, 장치 및 시스템
KR100692658B1 (ko) 이동 통신 단말, 게이트웨이 및 무선 인터넷 서비스 제공방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
G170 Publication of correction
FPAY Annual fee payment

Payment date: 20130227

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20140227

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20150226

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20160226

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee