KR20020048229A - Mixed contents server-client system - Google Patents
Mixed contents server-client system Download PDFInfo
- Publication number
- KR20020048229A KR20020048229A KR1020000077632A KR20000077632A KR20020048229A KR 20020048229 A KR20020048229 A KR 20020048229A KR 1020000077632 A KR1020000077632 A KR 1020000077632A KR 20000077632 A KR20000077632 A KR 20000077632A KR 20020048229 A KR20020048229 A KR 20020048229A
- Authority
- KR
- South Korea
- Prior art keywords
- server
- client
- content
- browser
- image information
- Prior art date
Links
- 230000003068 static effect Effects 0.000 claims abstract description 8
- 238000000034 method Methods 0.000 claims description 25
- 230000004044 response Effects 0.000 claims description 6
- 238000011017 operating method Methods 0.000 claims 2
- 239000000872 buffer Substances 0.000 description 21
- 230000006870 function Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 5
- 230000006835 compression Effects 0.000 description 4
- 238000007906 compression Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
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
본발명은 서버-클라이언트(server-client) 시스템에 관한 것으로서, 보다 상세하게는, 씬 클라이언트와 이 씬 클라이언트에 응용 프로그램 및 컨텐츠를 동시에 제공하는 혼성 콘텐츠 서버에 관한 것이다.The present invention relates to a server-client system, and more particularly, to a hybrid content server that simultaneously provides a thin client and an application and content to the thin client.
인터넷을 기반으로 하는 서비스가 확대되면서 다양한 방식의 서비스를 가능하게 하는 기술이 필요하게 되었다. 도 1은 종래의 웹 기반 서비스를 제공하기 위한 서버(50)-클라이언트(10) 시스템을 도시하기 블록도이다. 기존의 웹 서버(50)는 정적인 컨텐츠[정적 HTML(HyperText Markup Language) 파일, 54]나 동적으로 생성되는 콘텐츠[CGI(common Gateway Interface), 서브렛(servlet) (56, 58)등에 의해 동적으로 생성되는 HTML]를 제공하기에 적합한 구조로 만들어졌다. 도 1의 시스템에서 서버(50)가 제공하는 정적 혹은 동적 HTML 컨텐츠를 클라이언트의 브라우저(12)가 해석하여 화면에 표시하고 사용자의 입력을 다시 서버에 전송함으로서 서비스가 이루어진다.As services based on the Internet have been expanded, there is a need for a technology that enables various types of services. 1 is a block diagram illustrating a server 50-client 10 system for providing a conventional web-based service. Existing web server 50 can be dynamically generated by static content (static Hypertext Markup Language (HTML) file, 54) or dynamically generated content (common gateway interface (CGI), servlet (56, 58), etc.). It is structured to provide the generated HTML]. In the system of FIG. 1, a service is provided by a client's browser 12 interpreting and displaying static or dynamic HTML content provided by a server 50 on a screen and transmitting user input to the server.
하지만 도 1에서와 같이 브라우저를 이용한 사용자 인터페이스는 일반적인GUI(Graphic User Interface)에 비해 동작 방식에 있어 많은 제약이 있기 때문에 예를 들어 다양한 게임이나 채팅 등의 응용프로그램에 적용하기가 어렵다. 또한, 적용 가능한 경우라도 웹서버와의 데이터 교환이 필요한 경우 항상 페이지 전체가 새로 그려져야 하므로 화면의 일부만 변경되어도 되는 경우 매우 비효율적이다. 따라서 이러한 응용프로그램을 위해서는 애플릿(applet)이나 ActiveX의 형태로 만들어진 프로그램을 서버측(50)에서 가지고 있다가 클라이언트(10)에 다운로드하여 클라이언트에서 수행하도록 하는 것이 일반적이다. 이러한 프로그램은 서버와의 데이터 교환을 위해 서버의 데이터베이스(60) 등과 별도로 연결된다(도 2의 13 및 60의 연결 참조). 도 2는 전술한 바와 같이 종래의 서버-클라이언트 환경에서 웹서버부(52)로부터 다운로드 받은 자바 애플릿(13)을 사용하여 서버측의 데이터베이스(60)와 연결된 상태를 도시하고 있다.However, as shown in FIG. 1, since a user interface using a browser has many limitations in operation as compared with a general GUI (Graphic User Interface), it is difficult to apply to various applications such as a game or a chat. In addition, even if applicable, the entire page must be newly drawn when data exchange with a web server is required, so it is very inefficient when only a part of the screen needs to be changed. Therefore, for such an application, it is common to have a program made in the form of an applet or an ActiveX on the server side 50 and download it to the client 10 to be executed on the client. Such a program is separately connected to the server's database 60 or the like for data exchange with the server (see connections 13 and 60 of FIG. 2). FIG. 2 illustrates a state in which the server 60 is connected to the database 60 using the Java applet 13 downloaded from the web server 52 in the conventional server-client environment.
도 2에 도시된 형태의 시스템은 다음과 같은 여러가지 단점을 가진다.The system of the type shown in FIG. 2 has several disadvantages.
첫째, 클라이언트(10)에서 응용 프로그램을 수행하기 위하여 자바 애플릿 혹은 ActiveX 및 필요한 라이브러리등이 서버(50)로부터 다운로드되어야 하므로 사용자의 대기시간이 길다.First, in order to execute an application in the client 10, a Java applet or ActiveX and necessary libraries have to be downloaded from the server 50, so the user's waiting time is long.
둘째, 클라이언트의 환경 [OS의 버전, 자바가상머신(JVM : Java Virtual Machine)의 버전, 브라우저] 등에 따라 호환성이 떨어지며 응용 프로그램의 실행이 불가할 수도 있다.Second, compatibility may be inferior depending on the client environment [OS version, version of Java Virtual Machine (JVM), browser] and the application may not be executed.
셋째, 데이터베이스(60)를 액세스하는 경로가 웹 서버(52)를 경유하는 경우와 애플릿 등(13)이 직접 접속하는 경우의 두가지가 있어 관리하거나 응용 프로그램을 작성하기가 어렵다.Third, there are two paths for accessing the database 60 via the web server 52 and the case in which the applet 13 directly connects, making it difficult to manage or write an application program.
넷째, ActiveX의 경우 여러가지 보안상의 문제가 있고 자바 애플릿의 경우에도 웹서버와 다른 서버에 데이터베이스가 위치한 경우에는 별도로 인증받지 않으면 사용할 수 없다.Fourth, ActiveX has various security problems, and even Java applets cannot be used unless they are separately authenticated if the database is located on a web server and another server.
또한, 별도의 독립 응용프로그램이나 자바 애플릿을 사용하는 경우, 웹 서버와의 연동, HTML을 기반으로 하는 다른 컨텐츠와의 연계가 잘 이루어지지 못한다는 문제점이 있었다.In addition, when using a separate stand-alone application or Java applet, there was a problem that the linkage with the web server, linkage with other content based on HTML is not well achieved.
따라서, 본 발명은 하나의 서버에서 정적인 컨텐츠, 동적인 컨텐츠 및 GUI 응용프로그램까지 모두 클라이언트에 제공할 수 있는 혼합 콘텐츠 서버 및 이에 대응하는 클라이언트 시스템을 제공하기 위한 것이다.Accordingly, an aspect of the present invention is to provide a mixed content server and a corresponding client system that can provide static content, dynamic content, and GUI applications to a client in one server.
본 발명의 다른 목적은 여러 모드로 이루어진 서비스들간에 하이퍼 링크를 지원하는 서버 및 클라이언트 시스템과, 이를 위한 데이타 전달 방법을 제공하는 것이다.Another object of the present invention is to provide a server and client system supporting a hyperlink between services in various modes, and a data transfer method therefor.
본 발명의 다른 목적은 동일서버 또는 다른 서버의 동적/정적 컨텐츠 및 GUI 응용프로그램간에 하이퍼링크를 지원하는 방법을 제공하는 것이다.Another object of the present invention is to provide a method for supporting hyperlinks between GUI / application and dynamic / static content of the same server or another server.
본 발명은 다른 목적은 상기 서버 및 클라이언트 시스템에서 클라이언트 단말기를 단순한 입출력만을 처리하도록 단순화하기 위한 것이다.Another object of the present invention is to simplify the client terminal in the server and the client system to handle only simple input and output.
도 1은 웹서버를 포함하는 종래의 서버 및 브라우저를 포함하는 종래의 클라이언트 장치의 일례를 도시한 도면.1 shows an example of a conventional client device comprising a browser and a conventional server comprising a web server.
도 2는 웹서버를 포함하는 종래의 서버 및 브라우저를 포함하는 종래의 클라이언트 장치에서 자바 애플릿이 사용되는 경우를 도시한 도면.2 is a diagram illustrating a case where a Java applet is used in a conventional client device including a browser and a conventional server including a web server.
도 3은 본 발명에 따른 혼성 콘텐츠 서버 및 클라이언트 장치가 사용되는 환경을 도시한 도면.3 is a diagram illustrating an environment in which a hybrid content server and a client device according to the present invention are used.
도 4는 본 발명에 따른 혼성 콘텐츠 서버의 일실시예의 블럭도.4 is a block diagram of one embodiment of a hybrid content server in accordance with the present invention.
도 5는 본 발명에 따른 클라이언트 장치의 일실시예의 내부 블록도.5 is an internal block diagram of one embodiment of a client device in accordance with the present invention.
도 6은 본 발명에 따른 혼성 콘텐츠 서버에 포함된 응용 프로그램 지원 서버(TAP 서버)의 일실시예의 프로그램 구조도.6 is a program structure diagram of an embodiment of an application support server (TAP server) included in a hybrid content server according to the present invention.
도 7는 본 발명에 따른 혼성 콘텐츠 서버에서 그래픽 데이터가 생성되고 전송되는 과정의 일실시예를 도시한 도면.7 is a diagram illustrating an embodiment of a process of generating and transmitting graphic data in a hybrid content server according to the present invention.
<도면의 주요 부분에 대한 부호의 설명><Explanation of symbols for the main parts of the drawings>
10, 20, 30 : 클라이언트10, 20, 30: client
50 : 서버50: server
110, 120, 130 : 혼성 콘텐츠 클라이언트110, 120, 130: Mixed Content Client
150 : 혼성 콘텐츠 서버150: Mixed Content Server
160 : 응용프로그램 지원 서버부160: application support server unit
170 : 웹/서브렛 서버부170: web / servlet server unit
본 발명의 일면에 따르면, 다수의 클라이언트가 접속할 수 있는 서버 장치에있어서, 하나 이상의 GUI 응용 프로그램을 실행하고, 각 프로그램의 영상정보를 클라이언트측에 전송하기 위한 제1 서버수단과,According to an aspect of the present invention, there is provided a server device to which a plurality of clients can connect, comprising: first server means for executing one or more GUI application programs and transmitting image information of each program to a client side;
컨텐츠를 제공하기 위한 제2 서버수단Second server means for providing content
을 포함하는 서버 장치가 제공된다.There is provided a server device comprising a.
상기 GUI 응용 프로그램은 브라우저를 포함하고, 상기 제2 서버수단의 컨텐츠는 상기 브라우저를 통하여 클라이언트측에 제공된다.The GUI application program includes a browser, and the contents of the second server means are provided to the client side through the browser.
본 발명의 다른 일면에 따르면, 브라우저를 포함하는 하나 이상의 GUI 응용 프로그램을 실행하고, 각 프로그램의 영상정보를 클라이언트측에 전송하기 위한 제1 서버수단과, 컨텐츠를 제공하기 위한 제2 서버수단을 포함하는 하나 이상의 서버와 하나 이상의 클라이언트와 네트워크를 통해 연결되어 있을 때, 상기 서버 중 하나의 서버의 컨텐츠를 상기 클라이언트 중 하나의 클라이언트에 제공하기 위한 방법에 있어서,According to another aspect of the present invention, there is provided a first server means for executing at least one GUI application program including a browser, and transmitting image information of each program to a client side, and second server means for providing contents. A method for providing contents of one of the servers to one of the clients when the at least one server and the at least one client are connected through a network,
제1서버에서 클라이언트로부터 제2서버의 컨텐츠 제공 요청을 수신하는 단계와,Receiving a content providing request of a second server from a client at the first server;
상기 요청에 응답하여 상기 제1서버의 제1서버수단에 포함되어 있는 브라우저가 상기 요청된 제2서버의 컨텐츠를 제2서버의 제2서버수단으로부터 읽고 해석하는 단계와,In response to the request, the browser included in the first server means of the first server reading and interpreting the content of the requested second server from the second server means of the second server;
상기 제1서버의 상기 제1서버수단이, 상기 컨텐츠를 해석하여 형성한 브라우저 화면의 영상정보를 상기 클라이언트에 전송하는 단계를 포함하는 컨텐츠 제공 방법이 제공된다.And providing, by the first server means of the first server, the image information of the browser screen formed by analyzing the content to the client.
본 발명의 또다른 일면에 따르면, 브라우저를 포함하는 하나 이상의 GUI 응용 프로그램을 실행하고, 각 프로그램의 영상정보를 클라이언트측에 전송하기 위한 하나 이상의 제1 서버수단과, 컨텐츠를 제공하기 위한 하나 이상의 제2 서버수단과, 하나 이상의 클라이언트가 네트워크를 통해 연결되어 있을 때, 상기 제1서버수단을 운영하는 방법에 있어서,According to another aspect of the present invention, one or more first server means for executing one or more GUI application programs including a browser, and transmitting image information of each program to a client side, and one or more agents for providing contents. 2 server means and a method for operating said first server means when at least one client is connected via a network,
클라이언트로부터 제1서버 접속요청 - 상기 제1서버 접속 요청은 응용프로그램에 대한 요청을 포함함 - 을 수신하는 단계와,Receiving a first server connection request from a client, the first server connection request including a request for an application program;
상기 요청에 응답하여 상기 제1서버수단에 포함되어 있는 상기 응용프로그램을 실행하는 단계와,Executing the application program included in the first server means in response to the request;
상기 제1서버수단이, 상기 응용프로그램을 실행하여 형성한 영상정보를 상기 클라이언트에 전송하는 단계를 포함하는 운영 방법이 제공된다.And providing, by the first server means, the image information formed by executing the application program to the client.
이하에서는 도면을 첨부 참조하여 본발명의 일실시예를 상세히 설명하기로 한다.Hereinafter, an embodiment of the present invention will be described in detail with reference to the accompanying drawings.
도 3은 본 발명에 따른 혼성 콘텐츠 서버 및 클라이언트 장치가 사용되는 환경을 도시한 도면이다. 도 3에 도시된 바와 같이, 본 발명에 따른 클라이언트(110, 120, 130)와 혼성 콘텐츠 서버(150)는 네트워크를 통해 연결되어 있다. 클라이언트(110, 120, 130)는 사용자의 입력을 받아 서버(150)에 전달하고 서버의 출력을 화면이나 소리로 사용자에게 전달하는 장치로서 기존의 PC(110)에서 동작하는 소프트웨어, 웹 브라우저에서 동작하는 애플릿, PDA(120)용 소프트웨어, 휴대폰(130) 등에 내장된 소프트웨어 혹은 전용 단말 장치등의 형태를 가질 수 있다. 서버(150)는 하드웨어적인 측면에서는 일반적인 서버용 컴퓨터로 구성될 수 있고 후술하는 바와 같이, 응용프로그램 지원서버부(160)와 웹/서브렛 서버부(170)를 포함한다. 클라이언트와 서버는 TCP/IP등 1:1 통신이 가능한 임의의 네트워크(140)에 의해 연결된다.3 is a diagram illustrating an environment in which a hybrid content server and a client device according to the present invention are used. As shown in FIG. 3, the clients 110, 120, and 130 and the hybrid content server 150 according to the present invention are connected through a network. The client 110, 120, 130 is a device that receives a user's input and delivers it to the server 150 and delivers the output of the server to the user as a screen or sound, and operates in a software or web browser that operates on the existing PC 110. Applet, software for PDA 120, the mobile phone 130, etc. may be in the form of software or a dedicated terminal device. The server 150 may be configured as a general server computer in terms of hardware. The server 150 includes an application support server unit 160 and a web / servlet server unit 170. The client and server are connected by any network 140 capable of 1: 1 communication, such as TCP / IP.
도 4는 본 발명에 따른 혼성 컨텐츠 서버(150)의 일실시예를 도시한 블록도이다. 본 발명에 따른 혼성 컨텐츠 서버(150)는 여러 사용자의 GUI 응용 프로그램을 동시에 동작시키고 그 화면을 클라이언트(110)에 전송할 수 있는 기능을 가지고 있는 응용 프로그램 지원서버부(160)와 종래의 웹서버부(도 1 내지 2의 참조번호 52)에 대응하는 기능을 수행하는 웹/서브렛 서버부(170)를 포함한다. 이하에서 응용 프로그램(또는 tapplet)이라 함은 예를 들어 PC 나 워크스테이션에서 동작하는 종래의 일반적인 응용프로그램이 아니라, 본 발명의 혼성 콘텐츠 서버(150)에서 동작하는 고유의 응용 소프트웨어를 칭하는 것으로서, 서브렛이나 CGI와는 달리 자체의 사용자 인터페이스(화면출력)을 갖는 GUI 응용 프로그램을 칭한다. 본 발명의 서버-클라이언트 시스템에서 프로그램은 모두 서버측에서 실행되며 클라이언트(110)는 서버로부터 전송받은 화면을 표시하고 사용자 입력을 서버에 전송하는 기능만을 수행한다. 지원서버부(160) 및 클라이언트(110)에 대하여는 도 5 내지 도 7을 참조하여 후술하기로 한다.4 is a block diagram illustrating an embodiment of a hybrid content server 150 according to the present invention. The hybrid content server 150 according to the present invention is an application support server unit 160 and a conventional web server unit having a function of simultaneously operating GUI applications of multiple users and transmitting the screens to the client 110. And a web / servlet server unit 170 that performs a function corresponding to (reference numeral 52 of FIGS. 1 and 2). In the following, the application (or tapplet) refers to unique application software that runs on the hybrid content server 150 of the present invention, rather than a conventional general application that runs on a PC or workstation, for example. Unlike CGI, it refers to a GUI application program that has its own user interface (display). In the server-client system of the present invention, the programs are all executed on the server side, and the client 110 performs only a function of displaying a screen received from the server and transmitting a user input to the server. The support server unit 160 and the client 110 will be described later with reference to FIGS. 5 to 7.
도 4에서 지원서버부(160)에 포함되어 있는 응용프로그램 1 및 응용 프로그램 2는 전술한 바와 같이 본 발명의 혼성 콘텐츠 서버(150)에서 동작하는 GUI 응용프로그램(tapplet)이다. 브라우저(440a)는 이와 같은 본 발명에 따른 응용 프로그램(tapplet)의 일종으로서 HTML 혹은 WAP(wireless application protocol) 브라우저를 포함한다.In FIG. 4, the application programs 1 and 2 included in the support server unit 160 are GUI applications operating in the hybrid content server 150 of the present invention as described above. The browser 440a is a kind of application according to the present invention and includes an HTML or a wireless application protocol (WAP) browser.
도 4에 점선으로 도시된 경로(1)은 클라이언트(110)가 서버에 응용 프로그램 1(440a)을 수행할 것을 요청하고, 그 결과 화면을 받아와서 디스플레이하는 동작을 표현한 것이다. 도 4에 점선으로 도시된 경로(2)는 클라이언트가 요구하는 주소가 서버(150)에 존재하는 HTML 파일(176)을 지정하는 경우로서 자동적으로 브라우저(440a)가 실행되면서 그 주소의 HTML 파일을 읽고 해석한 후 결과로 생성된 화면을 클라이언트(110)에 전송한다. 경로(3)은 경로 (2)와 유사하지만 정적인 HTML 파일을 지정하는 것이 아니라 웹/서브렛 서버부(170)에 포함되어 있는 서브렛(servlet, 172)을 지정하여 그 결과로 생성된 HTML 콘텐츠가 브라우저(440a)로 전달되고 브라우저(440a)에서 이를 해석하여 생성된 화면이 클라이언트(110)로 전달되는 경우를 도시한다. 응용 프로그램 지원 서버부(160)는 자바로 구현될 수 있으며 웹/서브렛 서버부(170)에서 서브렛(172, 174)은 CGI 등으로 대치될 수 있다. 웹/서브렛 서버부(170)가 자바로 구현되었을 경우 효율등의 이유로 응용 프로그램 지원 서버부(160)와 같은 JVM(자바 가상 머신, 도 6의 410) 내에서 실행되도록 구성할 수도 있으나 이에 한정되는 것은 아니다.The path 1 shown in dotted lines in FIG. 4 represents an operation in which the client 110 requests the server to execute the application program 440a, and as a result, receives and displays a screen. The path 2 indicated by the dotted line in FIG. 4 is a case where the address required by the client designates an HTML file 176 that exists in the server 150. The path 2 automatically executes the browser 440a to retrieve the HTML file of the address. After reading and interpreting, the resulting screen is transmitted to the client 110. The path (3) is similar to the path (2) but does not specify a static HTML file, but rather a servlet 172 included in the web / servlet server unit 170 so that the resulting HTML content is The case in which the screen generated by the browser 440a and interpreted by the browser 440a is transferred to the client 110 is illustrated. The application support server unit 160 may be implemented in Java, and the servlets 172 and 174 may be replaced by CGI in the web / servlet server unit 170. When the web / servlet server unit 170 is implemented in Java, for example, the web / servlet server unit 170 may be configured to be executed in a JVM (Java virtual machine, 410 of FIG. 6) such as the application support server unit 160 due to efficiency. It is not.
도 3 및 도 4에는 서버(150)를 하나만 도시하였으나, 이와 같은 서버(150)가 네트워크상에 다수개 존재하여, 본 발명의 서버 클라이언트 환경 내에서 클라이언트는 웹(WWW)에서 사용되는 하이퍼링크와 유사한 방식으로 네트워크상에 연결되어 있는 다수의 혼성 콘텐츠 서버를 자유롭게 액세스하면서 서핑하는 것이 가능하다.이는 종래에 웹브라우저를 통하여 인터넷상에 연결되어 있는 다수의 웹서버에 자유롭게 액세스하는 것과 유사하다.Although only one server 150 is illustrated in FIGS. 3 and 4, a plurality of such servers 150 exist on a network, and thus, in the server client environment of the present invention, a client may be connected to a hyperlink used in a web (WWW). In a similar manner it is possible to surf freely while accessing multiple hybrid content servers connected on a network. This is similar to conventionally freely accessing multiple web servers connected on the Internet through a web browser.
도 5는 본 발명에 따른 클라이언트 장치의 일 실시예의 구성을 도시한 도면이다. 도 5 내지 도 7을 참조하여 기재된 본 발명에 따른 씬 클라이언트 및 응용 프로그램 지원서버부(160)에 대한 설명은 동일한 발명자에 의해 고안된 2000년 11월 1일자 출원 제2000-64551호의 도 2, 도 4 및 도 5를 참조한 씬 클라이언트 및 서버에 관한 설명과 유사하다. 출원 제2000-64551호에 기재된 서버 프로그램의 구조는 본 발명에 따른 응용 프로그램 지원 서버부(160)의 구성의 바람직한 일실시예이지만, 본 발명의 지원 서버부(160)가 이에 한정되는 것은 아니다.5 is a diagram illustrating a configuration of an embodiment of a client device according to the present invention. Description of the thin client and the application support server unit 160 according to the present invention described with reference to FIGS. 5 to 7 is 2, 4 of the application No. 2000-64551 dated November 1, 2000, designed by the same inventor. And the description of the thin client and server with reference to FIG. 5. The structure of the server program described in the application 2000-64551 is a preferred embodiment of the configuration of the application program support server unit 160 according to the present invention, but the support server unit 160 of the present invention is not limited thereto.
도 5에서 스크린(210)은 일반적인 비트맵(bitmap) 디스플레이 장치이다. 키보드(240)는 일반적인 PC의 키보드일 수도 있고 PDA(personal digital assistance)에서 사용되는 펜에 의한 문자 입력 장치이거나 혹은 휴대전화에서처럼 제한된 수의 키로 이루어져 있을 수도 있다. 포인팅 장치(250)는 마우스, 펜 등의 위치를 입력할 수 있는 장치이다. 키보드(240)와 포인팅 장치(250)에 의해 사용자 입력이 감지되면 이는 클라이언트의 송수신부(260)를 거쳐 네트워크상에서 서버측으로 전송된다. 영상 복원부(220)는 서버측에서 전송되는 압축된 영상을 화면에 표시하기 위한 장치 혹은 소프트웨어로서 화면의 깜박거림을 줄이거나 압축 효율을 향상시키기 위하여 오프스크린 버퍼(230)를 사용할 수 있다. 특정한 종류의 그래픽 연산은 이미지가 아닌 연산 코드(operation code)의 형태로 서버측으로부터 전달되어 스크린(210)이나 오프스크린 버퍼(230)에 이 연산의 결과가 적용될 수 있다.In FIG. 5, the screen 210 is a general bitmap display device. The keyboard 240 may be a keyboard of a general PC, a character input device by a pen used in personal digital assistance (PDA), or may be composed of a limited number of keys as in a mobile phone. Pointing device 250 is a device that can input the position of the mouse, pen, and the like. When a user input is detected by the keyboard 240 and the pointing device 250, it is transmitted to the server side on the network via the transceiver 260 of the client. The image reconstructor 220 may use the offscreen buffer 230 as a device or software for displaying the compressed image transmitted from the server side to reduce flickering of the screen or to improve compression efficiency. Certain types of graphical operations may be passed from the server side in the form of operation codes rather than images, such that the results of these operations may be applied to screen 210 or offscreen buffer 230.
송수신부(260)는 키보드(240) 또는 포인팅 장치(250)로부터의 사용자 입력을 서버측으로 전송하고, 서버측으로부터 화면 정보를 수신하기 위한 것으로, 유무선 모뎀 등을 포함할 수 있다.The transmitter / receiver 260 transmits a user input from the keyboard 240 or the pointing device 250 to the server side, and receives screen information from the server side. The transceiver 260 may include a wired / wireless modem.
도 6는 서버 컴퓨터상에서 동작하는 응용프로그램 지원 서버부(160)의 구성의 일실시예를 나타낸다. 본 발명의 바람직한 실시예에서, 응용프로그램 지원서버부(160)는 하나의 JVM(410)에 의해 동작하지만, 이에 한정되는 것은 아니다. 새로운 클라이언트가 접속을 하면 지원 서버부에 사용자 세션이 새로 생성된다. 하나의 사용자 세션 내에서 복수개의 사용자 응용 프로그램(440a, 440b 또는 440c, 440d)이 구동될 수 있다. 응용 프로그램은 전술한 바와 같이, 본 발명의 서버-클라이언트 환경에서 사용되는 GUI 응용 프로그램(tapplet)이며 본 발명에 따른 브라우저(440a)를 포함한다. 클라이언트측(110)의 화면을 갱신하기 위하여, 지원 서버부(160)에서는 이 응용 프로그램의 화면 출력을 가로채어서, 그래픽 연산 코드 혹은 결과 영상의 압축된 데이타를 클라이언트(110)에 전송한다. 클라이언트(110)로부터 전달되는 사용자 입력은 마치 사용자가 서버 컴퓨터(150)의 콘솔에서 직접 키보드와 마우스등을 사용하여 입력한 것처럼 시스템의 이벤트 큐(event queue)를 거쳐 사용자 응용 프로그램(440)에 전달된다.6 shows one embodiment of the configuration of the application program support server unit 160 that operates on the server computer. In a preferred embodiment of the present invention, the application support server 160 is operated by one JVM 410, but is not limited thereto. When a new client connects, a new user session is created on the support server. A plurality of user applications 440a, 440b or 440c, 440d may be driven in one user session. As described above, the application is a GUI application used in the server-client environment of the present invention and includes a browser 440a in accordance with the present invention. In order to update the screen of the client side 110, the support server 160 intercepts the screen output of this application program and transmits the compressed data of the graphic operation code or the resultant image to the client 110. The user input from the client 110 is transmitted to the user application 440 through the system's event queue as if the user had input directly using the keyboard and mouse at the console of the server computer 150. do.
사용자 세션의 현상태(state)는 클라이언트와 서버간의 연결이 종료될 때 서버측의 DB나 파일 시스템(도시되지 않음) 등에 저장되었다가 나중에 해당 서버와 연결이 재개되었을 때 새로 만들어진 사용자 세션에 로드될 수 있다. 이와 같이 함으로써, 클라이언트측에서는 마음대로 기기를 켜고 꺼도 항상 마지막 작업하던상태에서 작업을 개시할 수 있다. 또한, 클라이언트가 하나이상의 서버를 반복적으로 액세스하는 경우에도, 소정 서버로 돌아가면 이전의 작업상태로 즉시 돌아갈 수 있다.The state of a user session can be stored in a database or file system (not shown) on the server side when the connection between the client and server is terminated, and then loaded into a newly created user session when the connection with the server is resumed. have. By doing this, the client side can always start work in the last working state even if the device is turned on and off at will. In addition, even when a client repeatedly accesses one or more servers, returning to a given server can immediately return to a previous working state.
이하에서는 도 6에 도시된 응용 프로그램 지원 서버부(160)에 대해 보다 상세히 설명하기로 한다.Hereinafter, the application program support server unit 160 shown in FIG. 6 will be described in detail.
본 발명에 따른 지원 서버부(160)의 바람직한 일실시예에서는 서로 다른 클라이언트가 사용하는 응용프로그램(tapplet)간의 영향을 최소화하기 위하여 이벤트 처리를 위한 쓰레드(thread)와 이벤트 큐는 각 사용자 세션마다 별도로 할당된다. 이는 종래 기술에서 이벤트 쓰레드와 큐가 일반적으로는 JVM 당 하나만 있는 것과 상이하다.In a preferred embodiment of the support server unit 160 according to the present invention, a thread and an event queue for event processing are separately provided for each user session in order to minimize the influence between applications used by different clients. Is assigned. This is different from the prior art, where there is usually only one event thread and queue per JVM.
세션 관리부(420a)는 새로운 클라이언트가 접속하면 새로운 세션을 생성하고, 만일 클라이언트로부터의 통신이 어느정도 시간 이상 없으면, 클라이언트와의 접속이 중단된 것으로 판단하여, 해당 세션을 삭제한다.When the new client connects, the session manager 420a creates a new session. If there is no communication from the client for some time, the session manager 420a determines that the connection with the client is stopped, and deletes the session.
응용프로그램 관리부(420b)는 본발명의 클라이언트-서버 시스템에서 실행되는 응용 프로그램(tapplet)들의 리스트를 포함한다. 본 발명의 일실시예에서는 사용자에 따라 서로 다른 응용프로그램에 접근이 가능하도록 할 수 있다. 예를 들어 사용자를 유료 사용자와 무료 사용자로 나누어 유료 사용자만이 다양한 종류의 응용프로그램을 사용할 수 있고, 무료 사용자는 시험용의 몇가지 응용프로그램만 사용할 수 있도록 하는 것이 가능하다.The application manager 420b includes a list of applications that are executed in the client-server system of the present invention. In an embodiment of the present invention, different applications can be accessed according to a user. For example, it is possible to divide a user into a paid user and a free user so that only the paid user can use various kinds of applications, and the free user can use only a few test applications.
영상압축 라이브러리(420c)는 후술하는 바와 같이, 클라이언트측에 디스플레이될 영상 데이터를 압축하는데 사용되는 소프트웨어 구성요소들을 포함한다.The image compression library 420c includes software components used to compress the image data to be displayed on the client side, as described below.
AWT 경량 컴포넌트 라이브러리(420d)는 버튼, 텍스트 필드, 스크롤 바 등의 경량 컴포넌트들의 세트로서 자바의 표준 라이브러리에 있는 것이 아닌 본발명의 환경에 맞도록 구현된 것이다.The AWT lightweight component library 420d is a set of lightweight components, such as buttons, text fields, scroll bars, etc., which is implemented in the environment of the present invention rather than in the standard library of Java.
클라이언트가 도 6에 도시된 세션 관리부(420a)에 접속하면 새로운 세션이 생성된다. 각 세션별로 ZAppletContext 객체(460)가 하나씩 생성된다. 각 ZAppletContext는 이벤트 큐, 클라이언트로부터의 입력을 처리하기 위한 쓰레드(thread), GUI 이벤트를 처리하는 쓰레드(thread), 클라이언트 스크린 버퍼 및 오프스크린 버퍼 등을 포함한다. 이하에서는 그 각각에 대해 상세히 살펴보겠다.When the client accesses the session manager 420a shown in FIG. 6, a new session is created. One ZAppletContext object 460 is created for each session. Each ZAppletContext contains an event queue, a thread for processing input from the client, a thread for processing GUI events, a client screen buffer, and an offscreen buffer. Hereinafter, each of them will be described in detail.
이벤트 큐 : 일반적인 자바 응용프로그램은 JVM 전체에 하나의 이벤트 큐를 가지지만 본 발명의 서버에서는 각 사용자의 프로그램들이 독립적으로 동작할 수 있도록 각 세션별로 이벤트 큐를 가진다.Event queue: A general Java application has one event queue in the entire JVM, but the server of the present invention has an event queue for each session so that programs of each user can operate independently.
클라이언트로부터의 입력을 처리하는 쓰레드(thread) : 클라이언트의 키보드 및 포인팅 디바이스로부터의 이벤트 입력을 받아 이벤트 큐에 넣는 역할을 한다.A thread that handles input from the client. Receives event input from the client's keyboard and pointing device and puts it on the event queue.
GUI 이벤트를 처리하는 쓰레드(thread) : 이벤트 큐(event queue)에 새로운 이벤트가 들어오면 응용 프로그램에 의해 미리 등록된 작업을 수행한다.Thread for handling GUI events: When a new event comes in the event queue, it performs a task registered in advance by the application.
클라이언트 스크린 버퍼(Client screen buffer, 550) : 클라이언트의 마지막 화면 내용을 가지는 버퍼. 새로이 디스플레이될 화면을 압축하여 전송할 때 이전 화면과 차분을 계산하기 위해 사용된다.Client screen buffer (550): The buffer holding the contents of the last screen of the client. It is used to calculate the difference with the previous screen when compressing and transferring the newly displayed screen.
오프스크린 버퍼(540) : 응용 프로그램 화면의 복사본을 갖는다. 일반적으로는 오프스크린 버퍼는 화면의 깜박임을 방지하기 위한 이중 버퍼링을 위해 사용되지만 본 발명의 서버에서는 영상 데이타를 직접 액세스하기 위해 사용된다.Off Screen Buffer 540: Has a copy of the application screen. In general, off-screen buffers are used for double buffering to prevent flicker of the screen, but the server of the present invention is used for direct access to image data.
클라이언트가 서버에 접속할 때 클라이언트는 클라이언트 디바이스의 화면 크기에 관한 정보를 서버 측으로 보내고, 클라이언트 스크린 버퍼(550)와 오프스크린 버퍼(540)의 크기는 이 정보에 의해 클라이언트 디바이스의 화면 크기와 같도록 정해진다. 마찬가지로, 클라이언트 스크린 버퍼와 오프스크린 버퍼의 깊이(depth, 화소당 비트)도 클라이언트 디바이스의 스크린 깊이(screen depth)와 동일하도록 정해진다.When the client connects to the server, the client sends information about the screen size of the client device to the server side, and the size of the client screen buffer 550 and offscreen buffer 540 is determined to be equal to the screen size of the client device by this information. All. Similarly, the depth of the client screen buffer and offscreen buffer (bits per pixel) is set to be equal to the screen depth of the client device.
도 6에 도시된 바와 같이, 응용 프로그램은 자바애플릿의 형태를 취하지만 일반적인 애플릿이 상속하는 애플릿 클래스 대신 본 발명에서 정의된 지애플릿(ZApplet, 450) 클래스를 상속한다. 지애플릿은 애플릿의 getGraphics() 함수를 오버라이드(override)하여 응용 프로그램의 모든 그래픽 연산이 지그래픽스(ZGraphics) 객체(도 7의 520)를 통해 이루어지도록 하는 것이다. 클라이언트로부터 입력에 의해 실행되는 각 응용 프로그램은 지애플릿 클래스에서 상속(inherit)된 새로운 클래스로서 구현된다.As shown in FIG. 6, the application takes the form of a Java applet, but inherits the ZApplet class 450 defined in the present invention instead of the applet class inherited by a general applet. The Gapplet overrides the applet's getGraphics () function so that all graphics operations in the application are done through the ZGraphics object (520 in FIG. 7). Each application executed on input from the client is implemented as a new class inherited from the Gapplet class.
도 7은 본 발명의 바람직한 실시예에서 응용 프로그램의 동작에 따른 화면 정보의 갱신 및 전송 과정을 도시한 도면이다. 먼저, 응용 프로그램에서 소정의 동작의 결과 화면이 갱신되어야 하는 경우, 지그래픽스(ZGraphics) 객체(520)를 통해 그래픽 연산을 행한다(1). 다음단계에서는 그래픽 연산결과가 서버의 실제 윈도우(physical window, 530)에 그려지고(2) 또한, 오프스크린 버퍼(540)에 그려진다(3).7 is a diagram illustrating a process of updating and transmitting screen information according to an operation of an application in a preferred embodiment of the present invention. First, when an application program needs to be updated as a result of a predetermined operation, a graphic operation is performed through the ZGraphics object 520 (1). In the next step, the result of the graphic operation is drawn in the physical window 530 of the server (2) and also in the off-screen buffer 540 (3).
본 발명의 일실시예에 따르면, 화면의 갱신을 위해 클라이언트(110)로 전달될 데이터의 양을 최소화하기 위하여 다음에 설명하는 것과 같이, 연산 코드와 차분 영상 데이터를 동시에 전송하는 방법을 사용한다. 즉, 그래픽 연산 중 파라미터의 양은 적지만 화면의 변화는 많은 연산, 예를 들어 화면의 스크롤 중 비트맵의 블록카피와 같은 연산은 클라이언트 스크린 버퍼(550)에 적용되고(4) 동시에 클라이언트에, 연산 코드의 형태로 전달된다. 이때 연산 코드는 매우 적은 양의 데이타로 표현될 수 있음은 주지의 사실이다.According to one embodiment of the present invention, in order to minimize the amount of data to be transmitted to the client 110 to update the screen, as described below, a method of simultaneously transmitting the operation code and the differential image data. That is, a small amount of parameter during the graphic operation but a large change in the screen, for example, a block copy of the bitmap during scrolling of the screen, is applied to the client screen buffer 550 (4) and simultaneously to the client. Passed in the form of code. It is well known that an operation code can be represented by a very small amount of data.
응용 프로그램의 화면 갱신 과정이 완료되면 이때까지의 오프스크린 버퍼와 클라이언트 스크린 버퍼의 차분을 구한다(5). 이 차분을 압축하여, 상기 연산 코드와 함께 클라이언트(110)에 전송한다(6). 차분은 영상압축부(560)에서 다양한 공지의 영상 압축 방식 또는 부호화 방식을 사용하여 압축된다.When the screen update process of the application is completed, the difference between the offscreen buffer and the client screen buffer up to this point is calculated (5). The difference is compressed and transmitted to the client 110 together with the operation code (6). The difference is compressed by the image compression unit 560 using various known image compression methods or encoding methods.
또는 본 발명의 다른 실시예에서는 차분이 아닌 원영상을 클라이언트측으로 전송하거나, 차분 또는 원영상을 선택적으로 압축하여 클라이언트에 전송할 수도 있다. 이때, 차분과 원영상중 어느쪽을 보낼지의 기준은 두가지를 모두 압축해 보고, 효율이 좋은 쪽을 보내도록 할 수 있다. 응용 프로그램에서 이를 판단하여 세션객체(ZAppletContext)에 알려주도록 하는 것도 가능하다.Alternatively, in another embodiment of the present invention, the original image that is not the difference may be transmitted to the client, or the difference or original image may be selectively compressed and transmitted to the client. At this time, the criterion of which of the difference and the original image to be sent may be to compress both of them and to send the more efficient one. It is also possible for the application to determine this and notify the session object (ZAppletContext).
클라이언트(110)로의 전송이 완료되면, 오프스크린 버퍼의 내용을 클라이언트 스크린 버퍼로 복사하여(7), 클라이언트 스크린 버퍼의 내용을 최근의 데이터로갱신한다.When the transfer to the client 110 is completed, the contents of the offscreen buffer are copied to the client screen buffer (7), and the contents of the client screen buffer are updated with the latest data.
실제 윈도우(Physical window, 530)는 모니터링 등에 이용되지만 클라이언트의 동작에 반드시 필요하지는 않다. 따라서 생략될 수 있고 동시 접속 가능한 클라이언트의 수가 실제 윈도우의 크기에 의해 제약을 받지 않는다.The physical window 530 is used for monitoring, but is not necessary for the operation of the client. Thus, the number of clients that can be omitted and concurrently connected is not limited by the actual window size.
다시 도 5로 돌아가서, 클라이언트 측에서 화면이 갱신되는 과정은 다음과 같다. 클라이언트는 연산 코드와 압축된 차분영상 정보를 송수신부를 통해 서버로부터 수신한다. 클라이언트 측의 영상 복원부(220)에서는 압축된 영상 정보를 복원한다. 또한, 클라이언트측의 비디오 메모리(도시되지 않음)에 저장되어 있는 이전 영상 정보에 연산 코드에 해당하는 그래픽 연산을 수행한다. 그후, 복원한 차분 영상을 그래픽 연산이 수행된 후의 영상 정보에 가산하여 디스플레이한다. 혹은 깜박임을 방지하기 위해 위의 과정을 별도의 오프스크린 버퍼(도 5, 230)에 적용한 후 한꺼번에 비디오 메모리에 복사할 수도 있다.5, the process of updating the screen on the client side is as follows. The client receives the operation code and the compressed differential image information from the server through the transceiver. The image reconstruction unit 220 on the client side restores the compressed image information. Also, a graphic operation corresponding to an operation code is performed on previous image information stored in a video memory (not shown) on the client side. Thereafter, the restored difference image is added to the image information after the graphic operation is performed and displayed. Alternatively, in order to prevent flickering, the above process may be applied to a separate off-screen buffer (FIGS. 5 and 230) and copied to video memory at once.
도 7로 돌아가서, 본 발명에 따른 응용 프로그램 지원 서버부(160)의 일실시예에서는 ZGraphics 객체(520)를 통해 모든 그래픽 연산이 이루어지므로 ZGraphics 객체(520)는 화면의 변화된 영역의 경계를 알 수 있다. 이 정보를 이용하여 차분을 구하고 클라이언트에 전송하는 화면의 영역을 제한할 수 있다.Returning to FIG. 7, since all graphic operations are performed through the ZGraphics object 520 in one embodiment of the application supporting server 160 according to the present invention, the ZGraphics object 520 may know the boundary of the changed area of the screen. have. This information can be used to find the difference and limit the area of the screen that is sent to the client.
또, 일반적인 GUI프로그램을 작성하는 방법에 있어서 화면의 변화가 없는 부분까지도 매번 새로 그리도록 하는 경우가 흔하다. 이 경우의 불필요한 재전송을 방지하기 위하여 실제 윈도우(530)와 오프스크린 버퍼(540)의 내용을 비교하여 변화된 영역만을 구하도록 할 수 있다.In addition, the method of writing a general GUI program often makes a new drawing every time even the portion of the screen which does not change. In this case, in order to prevent unnecessary retransmission, the contents of the actual window 530 and the offscreen buffer 540 may be compared to obtain only the changed region.
GUI 컴포넌트 (버튼, 텍스트 필드 등의 경량 컴포넌트)은 자바의 표준 라이브러리에 있는 것이 아닌 본발명의 환경에 맞도록 구현된 것을 사용한다. 이 컴포넌트들은 클라이언트 장치의 화면 해상도나 깊이(depth)에 따라 적절한 형태로 디스플레이될 수 있다. 예를 들어 흑백 화면의 경우 버튼의 테두리를 간단한 선으로 나타내지만 해상도도 높고 색도 지원되는 클라이언트의 경우 입체감을 표시하는 등으로 다르게 디스플레이될 수 있다. 이러한 디스플레이의 적응은 본 발명의 서버의 실제 스크린과는 관계없이 각 세션별로 클라이언트 장치의 스크린에 따라 이루어진다.GUI components (lightweight components such as buttons, text fields, etc.) use implementations that are tailored to the environment of the present invention, not in the Java standard library. These components may be displayed in an appropriate form depending on the screen resolution or depth of the client device. For example, a black and white screen may display a border of a button as a simple line, but a client having high resolution and color support may display a three-dimensional effect differently. This display adaptation is made according to the screen of the client device for each session irrespective of the actual screen of the server of the present invention.
본 명세서에서는 하나의 클라이언트당 하나의 세션이 생성되는 것으로 설명하였으나, 하나의 세션에 둘 이상의 클라이언트가 접속되도록 하는 것도 가능하다. 이 경우 들 이상의 클라이언트가 원격 공유 작업을 할 수도 있다.In the present specification, it has been described that one session is generated per one client, but it is also possible to have two or more clients connected to one session. In this case, more than one client may work remotely.
이하에서는 다시 도 4로 돌아가, 도면에 도시된 서버-클라이언트 시스템에서 브라우징 동작의 일례를 동작의 시간적 흐름에 따라 설명하기로 한다.4, an example of the browsing operation in the server-client system shown in the drawing will be described according to the time flow of the operation.
1. 클라이언트(110)에서 사용자가 서버 주소를 지정한다. 예를 들면 "foo.com" 을 지정한다.1. At the client 110, a user specifies a server address. For example, specify "foo.com".
2. 클라이언트(110)가 foo.com 서버의 지정된 포트에 접속하고 "/" 을 요구한다.2. The client 110 connects to the designated port of the foo.com server and requests "/".
3. 응용프로그램 지원서버부(160)에서는 "/" 디렉토리의 디폴트(default) 콘텐트로 지정되어 있는 "index.html"을 찾고 확장자가 "html"이므로 브라우저(440a)를 실행시키면서 "/index.html"을 인자(argument)로 지정한다.3. The application support server unit 160 searches for "index.html" which is designated as the default content of the "/" directory, and has an extension of "html". Therefore, the "/index.html" browser is executed while executing the browser 440a. "As an argument.
4. 브라우저(440a)는 "/index.html"을 읽고 해석한 후 완성된 화면을 클라이언트(110)에 전송한다. 이 화면은 예를 들어 foo.com 서버에서 제공하는 여러 콘텐츠 및 응용프로그램에 대한 아이콘의 리스트를 가지고 있다.4. The browser 440a reads and interprets "/index.html" and transmits the completed screen to the client 110. This screen contains a list of icons for various content and applications, for example, from the foo.com server.
5. 예를 들어 사용자가 클라이언트 화면(도시되지 않음)에서 "메일"을 나타내는 아이콘을 클릭하고 이 때의 클릭된 아이콘의 좌표가 지원 서버부(160)에 전달된다. 서버에서는 다시 브라우저(440a)로 마우스 이벤트를 전달한다.5. For example, a user clicks an icon representing "mail" on a client screen (not shown), and the coordinates of the clicked icon at this time are transmitted to the support server unit 160. The server sends a mouse event back to the browser 440a.
6. 브라우저(440a)가 현재 표시하고있는 "/index.html" 파일의 마우스 이벤트에 해당하는 좌표는 예를 들어 <a href="tapplet:/foo.com/app/mail"> <image src="images/mail.gif"> </a> 와 같이 "foo.com" 서버의 "/app/mail"로 연결이 되어 있다. 브라우저에서는 자신이 포함되어 있는 세션 객체(ZAppletContext, 460a)의 goto() 함수를 "/app/mail" 인자와 함께 호출한다. goto() 함수는 인자로 주어진 응용프로그램 또는 HTML 컨텐츠 등으로 이동하기 위한 함수로서, 이하에서 설명하는 바와 같이 경우에 따라(이동의 출발지 및 목적지에 따라) 다른 동작을 수행한다.6. The coordinates corresponding to the mouse event in the "/index.html" file that the browser 440a is currently displaying are, for example, <a href="tapplet:/foo.com/app/mail"> <image src = It connects to "/ app / mail" on server "foo.com" like "images / mail.gif"> </a>. The browser calls the goto () function of the session object it contains (ZAppletContext, 460a) with the "/ app / mail" argument. The goto () function is a function for moving to an application or HTML content, which is given as an argument, and performs other operations in some cases (depending on the origin and destination of the movement) as described below.
7. 세션 객체에서는 현재 수행중인 브라우저를 정지시키고 "/app/mail"로 지정된 응용 프로그램을 실행한다. 결과로 바뀐 화면이 클라이언트(110)에 전달된다.7. In the session object, stop the currently running browser and run the application specified by "/ app / mail". The resulting screen is transmitted to the client 110.
8. 사용자가 메일 응용프로그램을 사용하다가 클라이언트의 "back" 기능을 실행한다.8. The user runs the mail application and executes the "back" function of the client.
9. "back" 명령이 서버(150)에 전달되고 세션 객체가 받아서 메일 응용프로그램을 정지시키고 이전에 실행하던 브라우저를 다시 실행시킨다.9. The "back" command is sent to the server 150 and received by the session object to stop the mail application and relaunch the previously running browser.
10. 이번에는 예를 들어 사용자가 브라우저에서 "뉴스" 아이콘을 선택한다. 이 아이콘은 "index.html" 파일에서 <a href="/servlet/news.class"> <image src="images/news.gif"> </a> 와 같이 /servlet/news.class 서브렛(servlet)으로 연결되어 있다.10. This time, for example, the user selects the "news" icon in the browser. This icon looks like the <a href="/servlet/news.class"> <image src = "images / news.gif"> </a> in the "index.html" file. )
11. 브라우저가 HTTP 프로토콜에 의해 "/servlet/news.class"를 웹/서브렛 서버부(170)에 요구하면 웹/서브렛 서버부(170)는 /servlet/news.class 서브렛(172)을 실행하여 결과로 만들어진 HTML 코드를 브라우저(440a)에 전달한다.11. When the browser requests "/servlet/news.class" to the web / servlet server unit 170 by the HTTP protocol, the web / servlet server unit 170 executes the /servlet/news.class servlet 172. The resulting HTML code is passed to the browser 440a.
다음은 응용 프로그램(440a, 440b)과 웹/서브렛 서버부의 HTML/서브렛 간의 하이퍼링크에 대해 설명하기로 한다. 특히 응용프로그램과 HTML/서브렛 간의 하이퍼링크를 지원하는 플랫포옴을 제공하는 것은 본 발명의 혼성 컨텐츠 서버의 주요특징 중 하나이다.Next, the hyperlink between the applications 440a and 440b and the HTML / servlet of the web / servlet server unit will be described. In particular, providing a platform that supports hyperlinks between applications and HTML / servlets is one of the main features of the hybrid content server of the present invention.
첫째, 응용프로그램(440b)으로부터 HTML(176)로의 하이퍼링크에 대해 설명하기로 한다. 응용 프로그램(440b)에서 예를 들어 어떤 버튼이 눌렸을 때 특정 HTML 파일(176)이나 서브렛(172)이 화면에 보이도록 하기 위해서는 응용 프로그램(440b)이 속해있는 세션(430a)의 세션객체(460a)의 goto()함수에 해당 URL(상기 HTML 또는 서브렛을 가리키는 URL)을 인자로 주고 호출한다. 이때 goto() 함수는 현재 수행중인 응용 프로그램(440b)를 잠시 정지시키고 브라우저(440a)를 실행한 후 해당 URL 페이지를 여는 기능을 수행한다.First, the hyperlink from the application 440b to the HTML 176 will be described. In order for the application 440b to display a specific HTML file 176 or servlet 172 on the screen when a button is pressed, for example, the session object 460a of the session 430a to which the application 440b belongs. ) Is called with the URL (the URL pointing to the HTML or servlet) as the argument to the goto () function. At this time, the goto () function temporarily stops the currently executing application 440b, executes the browser 440a, and opens a corresponding URL page.
둘째, 응용프로그램간의 링크에 대하여 설명하기로 한다.Second, the link between the application programs will be described.
응용 프로그램(440b)에서 예를 들어 어떤 버튼이 눌렸을 때 다른 응용 프로그램이 수행되도록 할 때의 동작은 두 개의 응용 프로그램이 같은 서버내에 위치한 경우와, 서로 다른 서버내에 위치한 경우 그 동작이 상이하다.For example, when an application 440b causes another application to be executed when a button is pressed, the operation is different when two applications are located in the same server and when they are located in different servers.
1. 링크된 응용 프로그램(440c)이 동일 서버 내에 위치한 경우1. If the linked application 440c is located within the same server
단계 1. 원 응용 프로그램(440b)이 속해있는 세션의 세션객체의 goto()함수를 링크된 해당 응용 프로그램(440c)의 이름을 주고 호출한다.Step 1. The goto () function of the session object of the session to which the original application 440b belongs is called with the name of the linked application 440c.
단계 2. 세션 객체는 현재 실행중인 응용 프로그램(440b)를 정지시키고 주어진 응용 프로그램(440c)를 실행한다.Step 2. The session object stops the currently running application 440b and executes the given application 440c.
2. 링크된 응용 프로그램이 다른 서버에 위치한 경우2. The linked application is located on a different server
단계 1. 응용 프로그램이 속해있는 세션의 세션객체의 goto()함수를 링크된 응용프로그램의 이름을 주고 호출한다. 단 이 이름에는 새로 이동할 서버의 이름도 포함되어 있다. 예를 들면 "tapplet://foo.com/app/mail" 등과 같이 표현할 수 있다.Step 1. Call the goto () function of the session object of the session the application belongs to with the name of the linked application. However, this name also includes the name of the server to be moved. For example, "tapplet: //foo.com/app/mail".
단계 2. 세션 객체에서는 클라이언트에 "goto foo.com:/app/mail" 명령을 전송한 후 클라이언트와의 접속을 종료한다.Step 2. The session object sends a "goto foo.com:/app/mail" command to the client and terminates the connection with the client.
단계 3. 클라이언트는 foo.com 서버에 접속하고 /app/mail의 실행을 요구한다.Step 3. The client connects to the foo.com server and requests to run / app / mail.
이때 전술한 바와 같이 각 서버에서 클라이언트의 작성 상태를 저장하면, 메일 실행 중 예를 들어 "back" 버튼을 누름으로써, 원래의 서버에서 사용하던 응용프로그램으로 돌아가도록 할 수 있다.At this time, as described above, when the client's creation state is stored in each server, for example, by pressing the "back" button during the execution of the mail, the application program used in the original server can be returned.
셋째, HTML 화일에서 다른 HTML 화일로의 연결은 일반적인 웹에서의 하이퍼링크 방식에 의한다. 이때, 현재 접속중인 응용 프로그램 지원 서버부 및 실행중인 브라우저는 계속 접속 및 실행 상태를 유지한다. 즉, 하나의 서버(제1서버)의 HTML 파일에서 다른 서버(제2서버)의 HTML화일로 링크를 이용하여 이동하는 경우에도 제1서버의 응용 프로그램 지원부 및 실행중인 브라우저는 계속 클라이언트와의 접속 및 실행 상태를 유지한다. 다만, 제1서버의 응용 프로그램 지원부가 브라우저를 통해 제2서버에 접속하여 제2서버의 웹서버부의 HTML 화일을 읽고 해석한 후, 결과 화면을 클라이언트측에 전송한다.Third, the link from an HTML file to another HTML file is based on the general hyperlink method on the web. At this time, the currently connected application program support server unit and the running browser are kept connected and running. In other words, even when a link is moved from an HTML file of one server (first server) to an HTML file of another server (second server) by using a link, the application support unit and the running browser of the first server continue to connect with the client. And keeps running. However, the application program support unit of the first server accesses the second server through a browser, reads and parses the HTML file of the web server unit of the second server, and transmits the result screen to the client side.
넷째, HTML로부터 응용 프로그램으로의 연결에 대해 설명하기로 한다.Fourth, we will discuss the connection from HTML to the application.
응용 프로그램은 <a href="tapplet://...." > 태그(tag)에 의해 지정한다. "tapplet://" 방식은 "http://"에 해당하는 하나의 프로토콜을 제안하는 것이나, "http://"와는 달리 아직 표준화되지 않은 것이다. "tapplet://"는 본 발명에 따른 서버-클라이언트 시스템에서 인식되는 것으로서 서버부 내에서 동작하는 브라우저는 이를 인식하여 태그내에서 지정된 응용 프로그램(tapplet)의 이름을 추출한다. 이어서, 전술한, 응용프로그램(tapplet)에서 다른 응용프로그램(tapplet)으로의 링크와 같은 방식에 의해 해당 응용 프로그램(tapplet)이 구동된다.The application is specified by the <a href="tapplet://...."> tag. The "tapplet: //" approach suggests one protocol for "http: //", but unlike "http: //", it is not yet standardized. "tapplet: //" is recognized in the server-client system according to the present invention, and the browser operating in the server unit recognizes this and extracts the name of the tapplet designated in the tag. Subsequently, the application is driven in the same manner as the link from the application to another application (tapplet) described above.
다음은 URL에 의한 파라미터의 전달에 대해 설명하기로 한다.Next, parameter passing by URL will be described.
공지된 바와 같이, 서브렛이나 CGI의 URL 뒤에 파라미터를 함께 나타낼 수 있는 것처럼 본 발명에 따른 응용 프로그램(tapplet)을 호출할 때에도 파라미터를 함께 표기할 수 있다. 예를 들어 종래에 특정 사용자의 메일을 표시해주는 웹 메일의 URL을As is known, the parameters can also be marked when invoking a tapplet according to the present invention, as can be indicated together after the URL of a servlet or CGI. For example, the URL of a web mail that conventionally displays a user's mail
<a href="http://mail.foo.com/mail?userid=aaaa"> 메일 </a><a href="http://mail.foo.com/mail?userid=aaaa"> Mail </a>
과 같이 나타낼 수 있는 것처럼 본 발명에 따른 응용프로그램(tapplet) 중 메일을 보기 위한 응용 프로그램을 호출하는 URL에 다음과 같이 사용자 아이디를 파라미터로 줄 수 있다.As can be expressed as follows, a user ID can be given as a parameter to a URL for calling an application program for viewing a mail among the tapplets according to the present invention as follows.
<a href="tapplet://mail.foo.com/mail?userid=aaaa"> 메일 </a><a href="tapplet://mail.foo.com/mail?userid=aaaa"> Mail </a>
이와 같이, 본 발명에 따르면, 대부분의 연산이 서버측에서 일어나는 서버-씬 클라이언트 시스템을 구현할 수 있다. 동시에, 매우 단순한 하드웨어로 된 클라이언트를 이용하여 사용자가 응용프로그램 및 컨텐츠를 자유롭게 종래의 웹브라우징과 유사한 방식으로 사용하고 볼 수 있다.Thus, according to the present invention, it is possible to implement a server-thin client system in which most operations take place on the server side. At the same time, a very simple hardware client allows users to freely use and view applications and content in a manner similar to conventional web browsing.
본 발명은 휴대용 장치에서 다양한 응용 프로그램 수행과 콘텐츠 뷰를 수행할 수 있는 것을 목적으로 개발된 씬 클라이언트-혼성 콘텐츠 서버 기술이다. 본 발명의 혼성 컨텐츠 서버는 예를 들어 자바 응용 프로그램의 형태로서 JVM을 탑재한 임의의 서버 컴퓨터에서 실행될 수 있다. 본 발명의 클라이언트는 그래픽 화면 출력과 키보드 (또는 기타의 입력 장치) 및 포인팅 장치를 가진 여러 휴대용 장치에 포팅될 수 있다.The present invention is a thin client-mixed content server technology developed for the purpose of performing various application programs and content views in a portable device. The hybrid content server of the present invention may be executed on any server computer equipped with a JVM, for example in the form of a Java application. The client of the present invention can be ported to a variety of portable devices with graphical display and keyboards (or other input devices) and pointing devices.
본 명세서는 특정 실시예에 대하여 기술되었지만 다른 변형 및 변환이 가능하다는 것이 본 기술 분야의 당업자에게 자명하다.While the specification has been described with respect to specific embodiments, it will be apparent to those skilled in the art that other variations and modifications are possible.
예를 들어, 본 발명의 혼성컨텐츠 서버 또는 클라이언트가 본 명세서에 예시된 것 이외의 다른 구성을 갖도록 하는 것이 가능하다. 또한, 각 응용프로그램지원서버 또한 다양한 다른 방식, 다른 툴을 사용하여 구현할 수 있다. 따라서, 이와 같이 본 발명의 사상에 포함되는 모든 변형 및 변환이 첨부한 청구범위에 속하는 것으로 이해되어야 한다.For example, it is possible for the hybrid content server or client of the present invention to have a configuration other than that illustrated herein. Each application support server can also be implemented using a variety of different methods and tools. Accordingly, it is to be understood that all such modifications and variations are included in the spirit of the present invention as defined in the appended claims.
본 발명의 서버는 동시에 응용 프로그램과 컨텐츠를 제공하며 종래의 웹서버와 마찬가지로 하이퍼링크 방식으로 접근이 가능하다. 한편, 모든 연산이 서버측에서 이루어지고 클라이언트측으로는 화면정보만이 전송된다. 따라서, 사용자 입장에서는 매우 단순한 단말장치만으로 다양한 응용프로그램과 컨텐츠를 사용할 수 있고, 하이퍼링크 방식을 사용하므로 이용도 매우 간편하다. 사용자는 프로그램의 설치, 유지 등의 비용이 필요없이 적은 비용으로 다양한 프로그램 및 컨텐츠를 사용할 수 있고, 사용시마다 복잡한 프로그램을 클라이언트측으로 다운로드할 필요 없이 화면정보나 사용자 입력만이 전송되므로 대기시간도 종래의 ASP(application service provider)를 사용하는 경우 등에 비해 줄어들 수 있다.The server of the present invention simultaneously provides an application and content and is accessible in a hyperlink manner as in a conventional web server. On the other hand, all operations are performed on the server side, and only screen information is transmitted to the client side. Therefore, from the user's point of view, various applications and contents can be used only with a very simple terminal device, and since the hyperlink method is used, it is very easy to use. The user can use various programs and contents at a low cost without the cost of installing and maintaining the program, and only the screen information or user input is transmitted without having to download a complicated program to the client every time. This can be reduced compared to using an application service provider (ASP).
Claims (13)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2000-0077632A KR100422679B1 (en) | 2000-12-18 | 2000-12-18 | Mixed contents server-client system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2000-0077632A KR100422679B1 (en) | 2000-12-18 | 2000-12-18 | Mixed contents server-client system |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20020048229A true KR20020048229A (en) | 2002-06-22 |
KR100422679B1 KR100422679B1 (en) | 2004-03-12 |
Family
ID=27682674
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR10-2000-0077632A KR100422679B1 (en) | 2000-12-18 | 2000-12-18 | Mixed contents server-client system |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100422679B1 (en) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20020069058A (en) * | 2001-02-23 | 2002-08-29 | (주)싸이버뱅크 | Wireless based thin client E-mail service system and method for transmission data decrease |
KR100789523B1 (en) * | 2002-12-17 | 2007-12-28 | 가부시끼가이샤 도시바 | Content distribution method |
US7840960B2 (en) | 2002-12-17 | 2010-11-23 | Kabushiki Kaisha Toshiba | Content distribution method and content distribution package |
US9787754B2 (en) | 2015-03-25 | 2017-10-10 | Obigo Inc. | Method for providing service to client using browser of virtual server and virtual server and computer-readable recording medium using the same |
KR102165428B1 (en) * | 2020-06-18 | 2020-10-14 | 주식회사 두두아이티 | Apparatus and method for providing content using virtual machines |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101705197B1 (en) | 2015-05-29 | 2017-02-22 | 주식회사 코어라인소프트 | Local server apparatus and data relaying method thereof |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6742022B1 (en) * | 1995-12-11 | 2004-05-25 | Openwave Systems Inc. | Centralized service management system for two-way interactive communication devices in data networks |
US7127493B1 (en) * | 1998-08-20 | 2006-10-24 | Gautier Taylor S | Optimizing server delivery of content by selective inclusion of optional data based on optimization criteria |
KR100415996B1 (en) * | 1998-10-12 | 2004-01-31 | 삼성전자주식회사 | Method of rendering documents by server |
KR20000039328A (en) * | 1998-12-12 | 2000-07-05 | 구자홍 | Method for processing hyper text markup language of web browser |
JP2000339170A (en) * | 1999-05-31 | 2000-12-08 | Yokohama Rubber Co Ltd:The | Thin client introduction system |
KR20020034347A (en) * | 2000-11-01 | 2002-05-09 | 강태구 | Server-thin client system |
-
2000
- 2000-12-18 KR KR10-2000-0077632A patent/KR100422679B1/en not_active IP Right Cessation
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20020069058A (en) * | 2001-02-23 | 2002-08-29 | (주)싸이버뱅크 | Wireless based thin client E-mail service system and method for transmission data decrease |
KR100789523B1 (en) * | 2002-12-17 | 2007-12-28 | 가부시끼가이샤 도시바 | Content distribution method |
US7840960B2 (en) | 2002-12-17 | 2010-11-23 | Kabushiki Kaisha Toshiba | Content distribution method and content distribution package |
US8402457B2 (en) | 2002-12-17 | 2013-03-19 | Kabushiki Kaisha Toshiba | Content distribution method and content distribution package |
US9787754B2 (en) | 2015-03-25 | 2017-10-10 | Obigo Inc. | Method for providing service to client using browser of virtual server and virtual server and computer-readable recording medium using the same |
KR102165428B1 (en) * | 2020-06-18 | 2020-10-14 | 주식회사 두두아이티 | Apparatus and method for providing content using virtual machines |
Also Published As
Publication number | Publication date |
---|---|
KR100422679B1 (en) | 2004-03-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6446096B1 (en) | Method and system for providing device-specific key control using role-based HTML element tags | |
US7286145B2 (en) | System for describing markup language for mobile use, and information processing apparatus and program for generating display content | |
US7023572B2 (en) | Portable high speed internet access device | |
CA2326875C (en) | Apparatus and method for dynamically limiting information sent to a viewing device | |
US6819343B1 (en) | Dynamic controls for use in computing applications | |
US6112228A (en) | Client inherited functionally derived from a proxy topology where each proxy is independently configured | |
US7305452B2 (en) | Information delivery system, advertisement delivery system, information delivery program, server, information delivery server, advertisement information delivery method and saver page display method | |
JP4571509B2 (en) | Web application that understands the processing status that can be returned to the session | |
US7254786B2 (en) | System for transmitting and displaying icon resources group associated with remote application to a local computing system to facilitate virtualization of the remote application | |
US9021367B2 (en) | Metadata capture for screen sharing | |
US8578333B2 (en) | Method and system for client-side user interface enhancement to enable application integration and portalisation | |
US7464381B1 (en) | Content update proxy method | |
US7167142B2 (en) | Multi-user display system | |
US20060123356A1 (en) | Dynamic and updateable computing application panes | |
US20030119386A1 (en) | Method and system for installing server-specific plug-ins | |
CA2599893A1 (en) | Method and apparatus to select and deliver portable portlets | |
US7797442B2 (en) | Rerouting media to selected media applications | |
US20110078593A1 (en) | Web browser transmission server and method of controlling operation of same | |
US7251774B2 (en) | System for describing markup language for mobile use, and information processing apparatus and program for generating display content | |
JP2000035951A (en) | Method and device for multiuser recognition and collaboration | |
KR19990013421A (en) | Apparatus and method for printing related web pages | |
JP2000181835A (en) | Communication method, client terminal, server, communication system and recording medium for storing software product to control communication | |
US20030182469A1 (en) | Distributed computer system using a graphical user interface toolkit | |
US20040085366A1 (en) | Method for maintaining state information in a browser session across multiple web sites | |
US6813768B1 (en) | Method and system for automatic task focus swapping during browser wait time |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 20001218 |
|
A201 | Request for examination | ||
PA0201 | Request for examination |
Patent event code: PA02012R01D Patent event date: 20001223 Comment text: Request for Examination of Application Patent event code: PA02011R01I Patent event date: 20001218 Comment text: Patent Application |
|
PG1501 | Laying open of application | ||
E902 | Notification of reason for refusal | ||
PE0902 | Notice of grounds for rejection |
Comment text: Notification of reason for refusal Patent event date: 20030723 Patent event code: PE09021S01D |
|
E701 | Decision to grant or registration of patent right | ||
PE0701 | Decision of registration |
Patent event code: PE07011S01D Comment text: Decision to Grant Registration Patent event date: 20040129 |
|
N231 | Notification of change of applicant | ||
PN2301 | Change of applicant |
Patent event date: 20040214 Comment text: Notification of Change of Applicant Patent event code: PN23011R01D |
|
GRNT | Written decision to grant | ||
PR0701 | Registration of establishment |
Comment text: Registration of Establishment Patent event date: 20040302 Patent event code: PR07011E01D |
|
PR1002 | Payment of registration fee |
Payment date: 20040303 End annual number: 3 Start annual number: 1 |
|
PG1601 | Publication of registration | ||
PR1001 | Payment of annual fee |
Payment date: 20070112 Start annual number: 4 End annual number: 4 |
|
PR1001 | Payment of annual fee |
Payment date: 20080111 Start annual number: 5 End annual number: 5 |
|
PR1001 | Payment of annual fee |
Payment date: 20090115 Start annual number: 6 End annual number: 6 |
|
PR1001 | Payment of annual fee |
Payment date: 20100111 Start annual number: 7 End annual number: 7 |
|
PR1001 | Payment of annual fee |
Payment date: 20110110 Start annual number: 8 End annual number: 8 |
|
PR1001 | Payment of annual fee |
Payment date: 20120111 Start annual number: 9 End annual number: 9 |
|
FPAY | Annual fee payment |
Payment date: 20130114 Year of fee payment: 10 |
|
PR1001 | Payment of annual fee |
Payment date: 20130114 Start annual number: 10 End annual number: 10 |
|
FPAY | Annual fee payment |
Payment date: 20140121 Year of fee payment: 11 |
|
PR1001 | Payment of annual fee |
Payment date: 20140121 Start annual number: 11 End annual number: 11 |
|
FPAY | Annual fee payment |
Payment date: 20150121 Year of fee payment: 12 |
|
PR1001 | Payment of annual fee |
Payment date: 20150121 Start annual number: 12 End annual number: 12 |
|
FPAY | Annual fee payment |
Payment date: 20160108 Year of fee payment: 13 |
|
PR1001 | Payment of annual fee |
Payment date: 20160108 Start annual number: 13 End annual number: 13 |
|
FPAY | Annual fee payment |
Payment date: 20170109 Year of fee payment: 14 |
|
PR1001 | Payment of annual fee |
Payment date: 20170109 Start annual number: 14 End annual number: 14 |
|
FPAY | Annual fee payment |
Payment date: 20180123 Year of fee payment: 15 |
|
PR1001 | Payment of annual fee |
Payment date: 20180123 Start annual number: 15 End annual number: 15 |
|
LAPS | Lapse due to unpaid annual fee | ||
PC1903 | Unpaid annual fee |
Termination category: Default of registration fee Termination date: 20191213 |