KR20070025352A - 웹 서비스 제공 시스템의 서비스 제공 방법 및 그 장치 - Google Patents
웹 서비스 제공 시스템의 서비스 제공 방법 및 그 장치 Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 62
- 230000004913 activation Effects 0.000 claims description 3
- 238000000638 solvent extraction Methods 0.000 claims 1
- 230000008859 change Effects 0.000 abstract description 13
- 230000006854 communication Effects 0.000 description 21
- 238000004891 communication Methods 0.000 description 17
- 230000008569 process Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 11
- 230000004044 response Effects 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 238000013515 script Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 239000007787 solid Substances 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 101150035983 str1 gene Proteins 0.000 description 2
- 229920002614 Polyether block amide Polymers 0.000 description 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- VPRUMANMDWQMNF-UHFFFAOYSA-N phenylethane boronic acid Chemical compound OB(O)CCC1=CC=CC=C1 VPRUMANMDWQMNF-UHFFFAOYSA-N 0.000 description 1
- 238000001028 reflection method Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/10—Services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/86—Event-based monitoring
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
본 발명은 웹 서비스 제공 시스템의 서비스 제공 방법 및 그 장치에 관한 것으로, 클라이언트가 출력되는 각 웹 문서의 구성 정보를 관리하면서 웹 서버에서 이벤트 정보의 변경이 발생되면, 변경되는 이벤트 정보를 해당 웹 문서에 실시간으로 반영함으로써, 클라이언트가 이벤트 정보를 변경하면서 발생되는 깜빡임 현상을 방지하는 것이다.
Description
도 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 : 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)
- 웹 서비스 제공 시스템에 있어서,적어도 하나 이상의 웹 문서 및 상기 웹 문서에서 변경되는 신규 이벤트 정보를 제공하는 웹 서버와,상기 웹 서버로부터 제공되는 각 웹 문서의 구성(form) 정보를 관리하고, 상기 구성 정보와 상기 신규 이벤트 정보를 비교하여, 상기 신규 이벤트 정보를 반영할 상기 웹 문서와 반영 영역을 확인하고, 상기 반영 영역의 이벤트 정보를 상기 신규 이벤트 정보로 갱신하여, 상기 웹 문서의 화면을 주기적 또는 비주기적으로 갱신하면서 발생되는 깜박임 현상을 방지하는 클라이언트를 포함하는 웹 서비스 제공 시스템.
- 제 1 항에 있어서, 상기 클라이언트는,상기 각 웹 문서의 구성 정보와, 신규 이벤트 정보를 반영할 상기 반영 영역의 식별 정보를 관리하고, 상기 신규 이벤트 정보가 수신되면, 상기 구성 정보와 상기 신규 이벤트 정보를 비교하여, 상기 반영 영역의 식별 정보를 확인하고, 상기 신규 이벤트 정보와 상기 식별 정보를 제공하는 적어도 하나 이상의 이벤트 수신부와,상기 각 이벤트 수신부로부터 수신되는 웹 문서를 출력하고, 상기 식별 정보 에 상응하는 반영 영역에 상기 신규 이벤트 정보를 갱신하는 적어도 하나 이상의 웹 브라우저를 포함하는 웹 서비스 제공 시스템.
- 제 2 항에 있어서, 상기 클라이언트는,상기 웹 서버로부터 수신되는 상기 웹 문서 및 상기 신규 이벤트 정보를 상기 각 이벤트 수신부로 분배하는 이벤트 분배부를 더 포함하는 웹 서비스 제공 시스템.
- 제 2 항에 있어서, 상기 각 이벤트 수신부는,상기 신규 이벤트 정보를 반영할 상기 웹 문서의 반영 영역이 확인되지 않으면, 상기 신규 이벤트 정보를 폐기 처리하는 웹 서비스 제공 시스템.
- 제 1 항에 있어서, 상기 구성 정보는,상기 웹 문서의 반영 영역을 테이블 기반으로 구획하는 식별 정보와, 상기 각 식별 정보에 상응하는 반영 영역의 이벤트 정보 중 적어도 하나의 정보인 웹 서비스 제공 시스템.
- 웹 서버를 포함하는 웹 서비스 시스템에 있어서,웹 문서의 구성 정보와 상기 웹 서버로부터 수신되는 이벤트 정보를 비교하여, 이벤트 정보가 변경된 경우, 상기 이벤트 정보와 상기 이벤트 정보의 반영 영역 정보를 해당 폼 매니저 애플릿으로 전송하는 상태 매니저 애플릿;상기 이벤트 정보를 상기 웹 문서에 반영하는 폼 매니저 애플릿;상기 상태 매니저 애플릿으로부터 상기 폼 매니저 애플릿으로 상기 이벤트 정보 및 반영 영역 정보를 전송하는 중계 매니저 애플릿을 포함하는 웹 서비스 시스템의 클라이언트.
- 제 6 항에 있어서,적어도 하나 이상의 웹 브라우저에 내장되는 애플릿을 관리하고, 수신되는 이벤트 정보를 해당 웹 브라우저로 전송하는 이벤트 매니저 애플릿;상기 이벤트 정보를 분석 또는 해석하여 상기 이벤트 정보를 이용하는 해당 매니저 애플릿으로 전송하는 이벤트 파싱 매니저 애플릿을 더 포함하는 웹 서비스 시스템의 클라이언트.
- 웹 서비스 제공 시스템에 있어서,웹 문서의 이벤트 정보가 출력되는 웹 문서 영역;HTML(hypertext markup language) IFRAME 형식으로 웹 브라우저에 내장되어 상기 웹 문서 영역에 상기 웹 문서를 출력하는 자바 애플릿;상기 자바 애플릿이 이벤트 정보를 상기 웹 문서에 반영하기 위해 호출하는 호출 자바스크립트;상기 웹 문서가 활성화되었음을 상기 자바 애플릿에 알리는 활성화 자바스크립트;상기 자바 애플릿이 비동기 이벤트 정보를 반영할 상기 웹 문서 영역을 검색하는 JSP((Java Server Page)를 포함하는 클라이언트의 웹 브라우저.
- 웹 서비스 제공 시스템에 있어서,적어도 하나 이상의 웹 문서의 구성 정보를 관리하고, 상기 각 웹 문서에 변경되는 이벤트 정보와 상기 구성 정보를 비교하여, 신규 이벤트 정보 및 반영 영역 식별 정보가 포함되는 이벤트 메시지를 제공하는 웹 서버와,상기 웹 서버로부터 제공되는 상기 웹 문서를 출력하고, 상기 이벤트 메시지에 포함된 상기 식별 정보에 따른 웹 문서의 상기 반영 영역에 상기 신규 이벤트 정보를 갱신하는 클라이언트를 포함하는 웹 서비스 제공 시스템.
- 제 9항에 있어서, 상기 웹 서버는,상기 각 웹 문서와, 상기 각 웹 문서에서 변경되는 이벤트 정보를 발생시키는 이벤트 발생부와,상기 각 웹 문서의 제 1 식별 정보와, 구성 정보 및 상기 반영 영역의 제 2 식별 정보를 관리하고, 상기 이벤트 정보가 변경되면, 상기 구성 정보와, 상기 신규 이벤트 정보를 비교하여, 상기 제 1 식별 정보 및 상기 제 2 식별 정보를 확인하고, 상기 신규 이벤트 정보와 상기 각 식별 정보를 제공하는 폼 관리부를 포함하는 웹 서비스 제공 시스템.
- 제 9 항에 있어서, 상기 클라이언트는,상기 웹 서버로부터 수신되는 제 1 식별 정보에 해당하는 웹 문서에서 상기 제 2 식별 정보에 상응하는 반영 영역에 상기 신규 이벤트 정보를 갱신하는 웹 서비스 제공 시스템.
- 웹 서버 및 클라이언트를 포함하는 웹 서비스 제공 시스템의 서비스 제공 방법에 있어서,상기 클라이언트가 출력되는 적어도 하나 이상의 웹 문서의 구성(form) 정보를 관리하는 단계;상기 웹 서버가 변경되는 신규 이벤트 정보를 상기 클라이언트로 전송하는 단계;상기 클라이언트가 상기 신규 이벤트 정보와 상기 구성 정보의 비교 결과에 따라 상기 신규 이벤트 정보를 반영할 웹 문서 및 반영 영역을 파악하는 단계;상기 클라이언트가 상기 파악된 웹 문서의 반영 영역에 상기 신규 이벤트 정보를 갱신하는 단계를 포함하는 웹 서비스 제공 시스템의 서비스 제공 방법.
- 제 12항에 있어서, 상기 구성 정보를 관리하는 단계는,상기 클라이언트가 상기 각 웹 문서의 반영 영역을 테이블 기반으로 구획하여 식별 정보를 할당하는 단계;상기 식별 정보에 상응하는 각 반영 영역별 이벤트 정보를 관리하는 단계를 포함하는 웹 서비스 제공 시스템의 서비스 제공 방법.
- 제 12항에 있어서,상기 웹 서버가 상기 각 웹 문서를 제공하고, 변경되는 이벤트 정보를 상기 클라이언트로 전송하는 단계;상기 클라이언트가 상기 각 웹 문서의 반영 영역별 이벤트 정보와 상기 신규 이벤트 정보를 비교하는 단계를 더 포함하는 웹 서비스 제공 시스템의 서비스 제공 방법.
- 제 12 항에 있어서, 상기 이벤트 정보를 갱신하는 단계는,상기 변경되는 이벤트 정보를 반영할 해당 웹 문서의 반영 영역을 확인하는 단계와,해당 반영 영역의 이벤트 정보를 상기 웹 서버로부터 수신되는 이벤트 정보로 변경하는 단계를 포함하는 웹 서비스 제공 시스템의 서비스 제공 방법.
- 제 12 항에 있어서, 상기 이벤트 정보를 전송하는 단계는,상기 클라이언트가 폴링 방식으로 소정 주기로 이벤트 정보를 상기 웹 서버로 요청하여, 상기 웹 서버가 소정 주기로 상기 이벤트 정보를 전송하거나, 상기 웹 서버가 상기 각 웹 문서의 이벤트 정보가 변경되면, 상기 이벤트 정보를 상기 클라이언트로 전송하는 웹 서비스 제공 시스템의 서비스 제공 방법.
- 웹 서버 및 클라이언트를 포함하는 웹 서비스 제공 시스템의 서비스 제공 방법에 있어서,상기 웹 서버가 상기 클라이언트의 요청에 따라 적어도 하나 이상의 웹 문서 를 제공하고, 상기 클라이언트가 상기 각 웹 문서를 출력하는 단계;상기 웹 서버가 상기 각 웹 문서의 구성(form) 정보를 관리하는 단계;상기 웹 서버가 이벤트 정보가 변경되면, 상기 변경되는 이벤트 정보와 상기 구성 정보의 비교 결과에 따라 상기 이벤트 정보를 반영할 웹 문서의 제 1 식별 정보, 반영 영역의 제 2 식별 정보 및 변경된 이벤트 정보를 상기 클라이언트로 전송하는 단계;상기 클라이언트가 상기 제 1 식별 정보에 따른 해당 웹 문서의 상기 제 2 식별 정보에 따른 반영 영역의 이벤트 정조를 상기 신규 이벤트 정보로 갱신하는 단계를 포함하는 웹 서비스 제공 시스템의 서비스 제공 방법.
- 제 17 항에 있어서, 상기 구성 정보를 관리하는 단계는,상기 각 웹 문서에 제 1 식별 정보를 할당하고, 상기 각 웹 문서의 반영 영역을 테이블 기반으로 구획하여 제 2 식별 정보를 할당하는 단계;상기 제 2 식별 정보에 상응하는 반영 영역별 이벤트 정보를 관리하는 단계를 포함하는 웹 서비스 제공 시스템의 서비스 제공 방법.
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)
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20000049823A (ko) * | 2000-05-02 | 2000-08-05 | 김도형 | 웹브라우져의 처음 화면(시작 페이지)제어를 통한 인터넷광고 방법과 이를 활용한 비지니스 모델 |
KR100440927B1 (ko) * | 2000-12-09 | 2004-07-21 | 주식회사 이야기 | 인터넷상의 웹 페이지를 갱신하는 방법 및 그 장치 |
-
2005
- 2005-09-01 KR KR1020050081410A patent/KR100814396B1/ko not_active IP Right Cessation
Cited By (2)
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 |
---|---|---|
US7958232B1 (en) | Dashboard for on-the-fly AJAX monitoring | |
JP2005149387A (ja) | リアルタイムWeb共有システム | |
US20090144753A1 (en) | Method And System For Providing Update Content In A Markup Language-Based Resource | |
JP2005539298A (ja) | サーバを遠隔かつ動的に構成する方法およびシステム | |
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) | 네트워크상에서 내장 애플리케이션 전송용 시스템 | |
JP2013041611A (ja) | ユーザインターフェースを管理する装置、表示する装置、管理する方法、及び表示する方法 | |
US20110213823A1 (en) | Dynamic Creation Of Content Channels | |
US20040215725A1 (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 | |
CN113204730A (zh) | 资源获取方法、webvpn代理服务器、系统及服务器 | |
US8874654B2 (en) | System for processing requests to portlets | |
CN105516333A (zh) | 一种基于网页的交互方法和系统 | |
US20160100025A1 (en) | Ui framework support for portal systems | |
CN108733495B (zh) | 用于实现跨平台通信的方法和设备 | |
US20060136588A1 (en) | User interface for configuring web services for remote portlets | |
US20180316780A1 (en) | Scalable programming architecture for telecommunications devices | |
US20050071754A1 (en) | Pushing information to distributed display screens | |
KR100814396B1 (ko) | 웹 서비스 제공 시스템의 서비스 제공 방법 및 그 장치 | |
KR20180057619A (ko) | 휴대 단말에 푸시 통지를 행하기 위한 통지 방법 및 통지 서버 | |
US20060075069A1 (en) | Method and system to provide message communication between different application clients running on a desktop | |
CN103227827B (zh) | 请求资源的方法和装置 |
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 |