KR20110086227A - Method and system for interactive collaboration using multiple session - Google Patents
Method and system for interactive collaboration using multiple session Download PDFInfo
- Publication number
- KR20110086227A KR20110086227A KR1020100005843A KR20100005843A KR20110086227A KR 20110086227 A KR20110086227 A KR 20110086227A KR 1020100005843 A KR1020100005843 A KR 1020100005843A KR 20100005843 A KR20100005843 A KR 20100005843A KR 20110086227 A KR20110086227 A KR 20110086227A
- Authority
- KR
- South Korea
- Prior art keywords
- synchronization code
- individual
- client
- session
- server
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/1066—Session management
-
- 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
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Entrepreneurship & Innovation (AREA)
- General Business, Economics & Management (AREA)
- Strategic Management (AREA)
- Human Resources & Organizations (AREA)
- Economics (AREA)
- Quality & Reliability (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Multimedia (AREA)
- Marketing (AREA)
- Operations Research (AREA)
- Data Mining & Analysis (AREA)
- Tourism & Hospitality (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer And Data Communications (AREA)
- Information Transfer Between Computers (AREA)
Abstract
Description
본 발명은 공동작업 방법 및 그 시스템에 관한 것으로, 보다 상세하게는 다수의 클라이언트가 하나의 서버에 접속하여 하나의 작업을 공동으로 수행하기 위한 방법 및 그 시스템에 관한 것이다.The present invention relates to a collaborative method and a system thereof, and more particularly, to a method and a system for a plurality of clients connected to one server to perform a task jointly.
본 발명은 공동작업 방법 및 그 시스템에 관한 것이다. The present invention relates to a collaboration method and a system thereof.
최근, 기업의 전산시스템이 인터넷 웹(Internet Web) 환경하에서의 클라이언트/서버(Clients/Server) 구조 및 통합시스템(Integrated System) 형태로 급속히 전환되고 있으며, 인트라넷(Intranet)이 기업의 정보처리 시스템의 기반환경으로 자리잡게 되면서, 조직내부, 조직간 또는 기업간 공동으로 프로젝트의 수행 및 업무처리의 시간적, 공간적, 자원적인 효율에 대한 관심과 활동의 필요성이 대두되어 온라인상에서 공동으로 업무를 수행하는 “협업”의 비중이 높아지고 있다. Recently, the computer system of the company is rapidly transforming into a client / server structure and an integrated system in the Internet web environment, and the intranet is the basis of the company's information processing system. As the environment is settled, “collaboration” is carried out online, due to the necessity of interest and activity in the time, space, and resource efficiency of project execution and business process within the organization, inter-organization or between companies. Is increasing in proportion.
기업의 전산시스템 뿐만 아니라, 다양한 형태의 소셜네트워크 서비스가 활성화되면서 다수의 클라이언트가 하나의 서비스 내에서 공동작업을 행하는 경우가 많아지고 있다.In addition to corporate computer systems, various types of social network services are activated, and many clients collaborate within one service.
그런데, 공동작업의 특성상 각 클라이언트 사용자의 작업명령 및 조작데이터를 실시간으로 모든 클라이언트가 공유해야할 필요성이 있는데, 기존의 클라이언트/서버 구조에서는 이를 구현하기 위해 과도한 데이터가 서버로 집중되고 다시 모든 클라이언트로 중계하여야 해서, 이런 트래픽을 처리하기 위해 서버측에서 과도한 하드웨어 및 네트워크 비용이 들고, 또한 서버측에 데이터 병목현상이 생기는 문제점이 있다.However, due to the nature of collaboration, it is necessary for all clients to share the work orders and operation data of each client user in real time. In the existing client / server structure, excessive data is concentrated on the server and relayed to all clients to implement this. At the same time, there is a problem of excessive hardware and network costs on the server side and data bottlenecks on the server side to handle such traffic.
본 발명의 목적은 네트워크상에서 다수의 클라이언트가 공동작업을 행할 때 복수의 세션을 이용하여 서버측의 네트워크 부하를 최소화하는 효율적인 방법 및 시스템을 제공하는 데에 있다.It is an object of the present invention to provide an efficient method and system for minimizing network load on the server side using multiple sessions when multiple clients collaborate on a network.
또한, 본 발명의 다른 목적은 네트워크상에서 다수의 클라이언트가 공동작업을 행할 때 복수의 세션을 이용하면서 서버측에서 전송한 동기화코드를 클라이언트간 송수신하는 데이터에 부가하여 세션간 동기화기능을 포함하는 방법 및 시스템을 제공하는 데에 있다.Another object of the present invention is to provide a method for including a session-to-session synchronization function in addition to data transmitted and received between clients by using a plurality of sessions when a plurality of clients collaborate on a network. To provide a system.
또한, 본 발명의 또 다른 목적은 네트워크상에서 다수의 클라이언트가 공동작업을 행할 때 복수의 세션을 이용하면서 각 클라이언트의 동기화코드를 서버를 통해 공유하고 또한 상기 동기화코드를 클라이언트간 송수신하는 데이터에 부가하여 세션간 동기화기능을 포함하는 방법 및 시스템을 제공하는 데에 있다. In addition, another object of the present invention is to share the synchronization code of each client through the server using a plurality of sessions when a plurality of clients collaborate on the network, and to add the synchronization code to the data transmitted and received between clients The present invention provides a method and system including an intersession synchronization function.
상기한 바와 같은 목적을 달성하기 위한 본 발명의 특징에 따르면, 본 발명은 적어도 둘 이상의 사용자 단말기가 서버에 접속하여 하나의 객체에 대한 공동작업을 실행하는 클라이언트-서버 시스템에 있어서, 제1세션통신부가 서버와 제1세션을 설정하는 단계, 제어부가 제1세션을 통해 서버로부터 클라이언트정보리스트를 수신하는 단계, 제2세션통신부가 상기 클라이언트정보리스트에 포함된 적어도 하나 이상의 클라이언트와 각각 제2세션을 설정하는 단계, 제어부가 상기 제1세션통신부를 통해 서버와 공동작업데이터를 송수신하는 단계, 및 제어부가 상기 제2세션통신부를 통해 상기 각 클라이언트와 개별작업데이터를 송수신하는 단계를 포함한다. According to a feature of the present invention for achieving the above object, the present invention is a client-server system in which at least two or more user terminals are connected to the server to perform a collaboration on one object, the first session communication unit Establishing a first session with the server, receiving a client information list from the server through the first session, and a second session communication unit respectively conducts a second session with at least one client included in the client information list. And setting, transmitting and receiving the collaborative work data to and from the server through the first session communication unit, and transmitting and receiving individual work data to and from the client through the second session communication unit.
본 발명에서 상기 제1세션통신부는 TCP프로토콜을 사용하고, 상기 제2세션통신부는 UDP프로토콜을 사용하는 것을 특징으로 한다. In the present invention, the first session communication unit uses the TCP protocol, the second session communication unit is characterized in that using the UDP protocol.
본 발명에서 상기 클라이언트정보리스트는 적어도 하나 이상의 클라이언트 IP주소를 포함하는 것을 특징으로 한다. In the present invention, the client information list includes at least one client IP address.
본 발명은 제어부가 상기 제1세션통신부를 통해 서버로부터 서버동기화코드가 포함된 공동작업데이터를 수신하는 단계, 제어부가 상기 공동작업데이터로부터 서버동기화코드를 추출하여 동기화코드저장부에 저장된 로컬동기화코드를 갱신하는 단계, 및 제어부가 상기 제1세션통신부를 통해 서버에 공동작업데이터를 송신하는 단계를 포함하고, 제어부가 상기 제2세션통신부를 통해 상기 각 클라이언트에 상기 동기화코드저장부에 저장된 로컬동기화코드를 개별동기화코드로서 포함하는 개별작업데이터를 송신하는 단계, 및 제어부가 상기 제2세션통신부를 통해 상기 각 클라이언트로부터 개별동기화코드를 포함하는 개별작업데이터를 수신하는 단계를 포함하고, 제어부가 동기화코드저장부에 저장된 로컬동기화코드와 일치하지 않는 개별동기화코드를 포함한 개별작업데이터를 데이터큐에 삽입하는 단계, 및 제어부가 상기 데이터큐로부터 로컬동기화코드와 일치하는 개별동기화코드를 포함한 개별작업데이터를 추출하는 단계를 더 포함한다.The control unit receives the collaboration data including the server synchronization code from the server via the first session communication unit, the control unit extracts the server synchronization code from the collaboration data local synchronization code stored in the synchronization code storage unit And updating, by the control unit, the collaborative data to the server through the first session communication unit, and by the control unit, local synchronization stored in the synchronization code storage unit in the client through the second session communication unit. Transmitting individual operation data including a code as an individual synchronization code, and a control unit receiving individual operation data including an individual synchronization code from each client through the second session communication unit, wherein the control unit synchronizes. Individual synchronization that does not match the local synchronization code stored in the code storage The step of inserting the individual work data, including the de-queue data, and the step of controlling the extraction of individual work data, including the individual synchronization code matching the local synchronization code from said data queue, and further comprising.
본 발명에서 상기 서버동기화코드, 로컬동기화코드 및 개별동기화코드는 대소비교 가능한 문자값인 것을 특징으로 한다. In the present invention, the server synchronization code, the local synchronization code and the individual synchronization code is characterized in that the character value can be compared large and small.
본 발명은 제어부가 동기화코드저장부에 저장된 로컬동기화코드보다 큰 개별동기화코드를 포함한 개별작업데이터를 데이터큐에 삽입하는 단계를 포함한다.The present invention includes the step of the control unit inserting the individual job data including the individual synchronization code larger than the local synchronization code stored in the synchronization code storage unit to the data queue.
본 발명은 제어부가 상기 제1세션통신부를 통해 서버로부터 서버동기화코드를 수신하는 단계, 및 제어부가 상기 서버동기화코드로써 동기화코드저장부에 저장된 로컬동기화코드를 갱신하는 단계를 더 포함하고, 제어부가 상기 제2세션통신부를 통해 상기 각 클라이언트에 상기 동기화코드저장부에 저장된 로컬동기화코드를 개별동기화코드로서 포함하는 개별작업데이터를 송신하는 단계, 및 제어부가 상기 제2세션통신부를 통해 상기 각 클라이언트로부터 개별동기화코드를 포함하는 개별작업데이터를 수신하는 단계를 포함하고, 제어부가 동기화코드저장부에 저장된 로컬동기화코드와 일치하지 않는 개별동기화코드를 포함한 개별작업데이터를 데이터큐에 삽입하는 단계, 및 제어부가 상기 데이터큐로부터 로컬동기화코드와 일치하는 개별동기화코드를 포함한 개별작업데이터를 추출하는 단계를 더 포함한다. The present invention further includes the step of the control unit receiving a server synchronization code from the server through the first session communication unit, and the control unit updating the local synchronization code stored in the synchronization code storage unit as the server synchronization code, Transmitting the individual job data including the local synchronization code stored in the synchronization code storage unit as the individual synchronization code to the respective client through the second session communication unit, and the control unit from the client through the second session communication unit. Receiving individual operation data including an individual synchronization code, wherein the control unit inserts individual operation data including an individual synchronization code that does not match the local synchronization code stored in the synchronization code storage unit, to the data queue; and Is an individual sync that matches the local sync code from the data queue. Extracting the individual work data, including the code further comprising.
본 발명은 제어부가 상기 제1세션통신부를 통해 서버로부터 적어도 하나 이상의 클라이언트의 로컬동기화코드를 포함하는 클라이언트동기화코드리스트를 수신하는 단계, 제어부가 상기 클라이언트동기화코드리스트를 동기화코드저장부에 저장하는 단계, 제어부가 동기화코드저장부에 저장된 로컬동기화코드를 변경하는 단계, 및 제어부가 상기 제1세션통신부를 통해 서버에 상기 로컬동기화코드를 송신하는 단계를 더 포함하고, 제어부가 상기 제2세션통신부를 통해 상기 각 클라이언트에 상기 동기화코드저장부에 저장된 로컬동기화코드를 개별동기화코드로서 포함하는 개별작업데이터를 송신하는 단계, 및 제어부가 상기 제2세션통신부를 통해 상기 각 클라이언트로부터 개별동기화코드를 포함하는 개별작업데이터를 수신하는 단계를 포함하고, 제어부가 상기 개별작업데이터에 포함된 개별동기화코드를 추출하고, 상기 개별작업데이터를 송신한 클라이언트의 로컬동기화코드를 클라이언트동기화코드리스트에서 추출하여, 이들이 일치하지 않는 경우 상기 개별작업데이터를 데이터큐에 삽입하는 단계, 및 제어부가 상기 데이터큐에 삽입된 개별작업데이터의 개별동기화코드를 추출하고, 상기 개별작업데이터를 송신한 클라이언트의 로컬동기화코드를 클라이언트동기화코드리스트에서 추출하여, 이들이 일치하는 개별작업데이터를 데이터큐로부터 추출하는 단계를 더 포함한다. The control unit receives a client synchronization code list including a local synchronization code of at least one client from a server through the first session communication unit, the control unit stores the client synchronization code list in a synchronization code storage unit And changing, by the controller, the local synchronization code stored in the synchronization code storage unit, and transmitting, by the controller, the local synchronization code to the server through the first session communication unit. Transmitting individual operation data including local synchronization codes stored in the synchronization code storage unit as individual synchronization codes to each client, and the controller including individual synchronization codes from each client through the second session communication unit. Receiving individual job data; The control unit extracts the individual synchronization codes included in the individual job data, extracts the local synchronization code of the client that has sent the individual job data from the client synchronization code list, and if they do not match, the individual job data to the data queue. Inserting, and the control unit extracts the individual synchronization codes of the individual job data inserted into the data queue, extracts the local synchronization code of the client that has sent the individual job data from the client synchronization code list, and matches the individual jobs Extracting data from the data queue.
본 발명은 제어부가 동기화코드저장부에 저장된 로컬동기화코드를 초기화하는 단계를 더 포함한다. The present invention further includes the step of the controller initializing the local synchronization code stored in the synchronization code storage unit.
본 발명은 제어부가 상기 데이터큐에 삽입된 개별작업데이터 중에서 임의의 클라이언트로부터 수신한 개별작업데이터의 개수가 한계누적데이터수 이상인 경우, 상기 데이터큐에서 상기 클라이언트로부터 수신한 개별작업데이터를 삭제하고, 제2세션통신부를 통해 상기 클라이언트에 제1세션재설정요청을 송신하는 단계, 및 제2세션통신부를 통해 임의의 클라이언트로부터 제1세션재설정요청을 수신하는 경우, 제1세션통신부가 서버와 제1세션을 종료하고 서버와 제1세션을 다시 설정하는 단계를 더 포함한다. The present invention deletes the individual job data received from the client in the data queue when the number of individual job data received from any client among the individual job data inserted into the data queue is greater than or equal to the limit cumulative data. Transmitting a first session reset request to the client through a second session communication unit; and when the first session reset request is received from any client through the second session communication unit, the first session communication unit establishes a first session with the server. Ending and re-establishing the server and the first session.
본 발명은 상기 서버동기화코드, 로컬동기화코드 및 개별동기화코드는 대소비교 가능한 문자값인 것을 특징으로 하고, 제어부가 동기화코드저장부에 저장된 로컬동기화코드를 증가시켜 갱신하는 단계를 포함하고, 제어부가 상기 개별작업데이터에 포함된 개별동기화코드를 추출하고, 상기 개별작업데이터를 송신한 클라이언트의 로컬동기화코드를 클라이언트동기화코드리스트에서 추출하여, 상기 개별작업데이터의 개별동기화코드가 상기 클라이언트동기화코드리스트에서 추출된 로컬동기화코드보다 큰 경우, 상기 개별작업데이터를 데이터큐에 삽입하는 단계를 포함한다. The present invention is characterized in that the server synchronization code, the local synchronization code and the individual synchronization code is a character value that can be compared large and small, the control unit includes the step of updating by increasing the local synchronization code stored in the synchronization code storage unit, Extracting the individual synchronization code included in the individual task data, extracting the local synchronization code of the client that sent the individual task data from the client synchronization code list, and the individual synchronization code of the individual task data is included in the client synchronization code list. If larger than the extracted local synchronization code, inserting the individual job data into a data queue.
본 발명은 적어도 둘 이상의 사용자 단말기가 서버에 접속하여 하나의 객체에 대한 공동작업을 실행하는 클라이언트-서버 시스템에 있어서, 서버와 제1세션을 설정하는 제1세션통신부, 적어도 하나 이상의 클라이언트와 각각 제2세션을 설정하는 제2세션통신부, 및 제2세션을 설정할 클라이언트정보를 포함하는 클라이언트정보리스트를 제1세션을 통해 서버로부터 수신하고, 공동작업데이터를 제1세션을 통해 서버와 송수신하고, 상기 제2세션통신부를 통해 상기 각 클라이언트와 개별작업데이터를 송수신하는 제어부를 포함한다. According to an aspect of the present invention, there is provided a client-server system in which at least two user terminals connect to a server and execute collaboration on one object. A second session communication unit for setting up a second session, and a client information list including client information for setting a second session from a server through a first session, and transmitting and receiving collaborative data with the server through a first session; And a control unit for transmitting and receiving individual work data with each client through a second session communication unit.
본 발명은 상기 제1세션통신부는 TCP프로토콜을 사용하고, 상기 제2세션통신부는 UDP프로토콜을 사용하는 것을 특징으로 한다. The present invention is characterized in that the first session communication unit uses a TCP protocol, and the second session communication unit uses a UDP protocol.
본 발명은 상기 클라이언트정보리스트는 적어도 하나 이상의 클라이언트 IP주소를 포함하는 것을 특징으로 한다. The present invention is characterized in that the client information list includes at least one client IP address.
본 발명은 상기 제어부는 상기 제1세션통신부를 통해 서버로부터 서버동기화코드가 포함된 공동작업데이터를 수신하고 상기 공동작업데이터로부터 서버동기화코드를 추출하여 동기화코드저장부에 저장된 로컬동기화코드를 갱신하고, 상기 제1세션통신부를 통해 서버에 공동작업데이터를 송신하고, 상기 제2세션통신부를 통해 상기 각 클라이언트에 상기 동기화코드저장부에 저장된 로컬동기화코드를 개별동기화코드로서 포함하는 개별작업데이터를 송신하고, 상기 제2세션통신부를 통해 상기 각 클라이언트로부터 개별동기화코드를 포함하는 개별작업데이터를 수신하고, 동기화코드저장부에 저장된 로컬동기화코드와 일치하지 않는 개별동기화코드를 포함한 개별작업데이터를 데이터큐에 삽입하고, 상기 데이터큐로부터 로컬동기화코드와 일치하는 개별동기화코드를 포함한 개별작업데이터를 추출하는 것을 특징으로 한다. The control unit receives the collaboration data including the server synchronization code from the server through the first session communication unit and extracts the server synchronization code from the collaboration data to update the local synchronization code stored in the synchronization code storage unit And transmitting the collaborative work data to the server through the first session communication unit, and transmitting the individual work data including the local synchronization code stored in the sync code storage unit as the individual synchronization code to each client through the second session communication unit. Receiving individual operation data including individual synchronization codes from each client through the second session communication unit, and storing individual operation data including individual synchronization codes that do not match the local synchronization codes stored in the synchronization code storage unit. Inserted into and match local sync code from the data queue It is characterized in that to extract the individual work data, including the individual synchronization code.
본 발명은 상기 서버동기화코드, 로컬동기화코드 및 개별동기화코드는 대소비교 가능한 문자값인 것을 특징으로 한다. The present invention is characterized in that the server synchronization code, the local synchronization code and the individual synchronization code is large and comparable character value.
본 발명은 상기 제어부는 동기화코드저장부에 저장된 로컬동기화코드보다 큰 개별동기화코드를 포함한 개별작업데이터를 데이터큐에 삽입하는 것을 특징으로 한다. The control unit is characterized in that for inserting the individual job data including the individual synchronization code larger than the local synchronization code stored in the synchronization code storage unit to the data queue.
본 발명은 상기 제어부는 상기 제1세션통신부를 통해 서버로부터 서버동기화코드를 수신하고, 상기 서버동기화코드로써 동기화코드저장부에 저장된 로컬동기화코드를 갱신하고, 제어부가 상기 제2세션통신부를 통해 상기 각 클라이언트에 상기 동기화코드저장부에 저장된 로컬동기화코드를 개별동기화코드로서 포함하는 개별작업데이터를 송신하고, 상기 제2세션통신부를 통해 상기 각 클라이언트로부터 개별동기화코드를 포함하는 개별작업데이터를 수신하고, 동기화코드저장부에 저장된 로컬동기화코드와 일치하지 않는 개별동기화코드를 포함한 개별작업데이터를 데이터큐에 삽입하고, 상기 데이터큐로부터 로컬동기화코드와 일치하는 개별동기화코드를 포함한 개별작업데이터를 추출하는 것을 특징으로 한다. The control unit receives the server synchronization code from the server through the first session communication unit, and updates the local synchronization code stored in the synchronization code storage unit with the server synchronization code, the control unit is the second session communication unit through the Transmitting individual work data including local synchronization codes stored in the sync code storage unit as individual sync codes to each client, and receiving individual work data including individual sync codes from each client through the second session communication unit; Inserting individual operation data including individual synchronization codes that do not match the local synchronization codes stored in the synchronization code storage unit into the data queue, and extracting individual operation data including individual synchronization codes that match the local synchronization codes from the data queue. It is characterized by.
본 발명은 상기 제어부는 상기 제1세션통신부를 통해 서버로부터 적어도 하나 이상의 클라이언트의 로컬동기화코드를 포함하는 클라이언트동기화코드리스트를 수신하고, 상기 클라이언트동기화코드리스트를 동기화코드저장부에 저장하고, 동기화코드저장부에 저장된 로컬동기화코드를 변경하고, 상기 제1세션통신부를 통해 서버에 상기 로컬동기화코드를 송신하고, 상기 제2세션통신부를 통해 상기 각 클라이언트에 상기 동기화코드저장부에 저장된 로컬동기화코드를 개별동기화코드로서 포함하는 개별작업데이터를 송신하고, 상기 제2세션통신부를 통해 상기 각 클라이언트로부터 개별동기화코드를 포함하는 개별작업데이터를 수신하고, 제어부가 상기 개별작업데이터에 포함된 개별동기화코드를 추출하고, 상기 개별작업데이터를 송신한 클라이언트의 로컬동기화코드를 클라이언트동기화코드리스트에서 추출하여 이들이 일치하지 않는 경우 상기 개별작업데이터를 데이터큐에 삽입하고, 상기 데이터큐에 삽입된 개별작업데이터의 개별동기화코드를 추출하고 상기 개별작업데이터를 송신한 클라이언트의 로컬동기화코드를 클라이언트동기화코드리스트에서 추출하여 이들이 일치하는 개별작업데이터를 데이터큐로부터 추출하는 것을 특징으로 한다. The control unit receives a client synchronization code list including a local synchronization code of at least one client from a server through the first session communication unit, and stores the client synchronization code list in a synchronization code storage unit, the synchronization code Change the local synchronization code stored in the storage unit, transmit the local synchronization code to the server through the first session communication unit, and transmit the local synchronization code stored in the synchronization code storage unit to the clients through the second session communication unit. Transmits individual operation data including the individual synchronization code, receives individual operation data including the individual synchronization code from each client through the second session communication unit, and the control unit receives the individual synchronization code included in the individual operation data. The client that extracted the data and sent the individual job data. Extract the local synchronization code of the client from the client synchronization code list and insert the individual job data into the data queue if they do not match, extract the individual synchronization code of the individual job data inserted into the data queue, and extract the individual job data. It is characterized in that the local synchronization code of the transmitted client is extracted from the client synchronization code list, and the individual job data matching them is extracted from the data queue.
본 발명은 상기 제어부는 제1세션통신부가 서버와 제1세션을 설정한 후 동기화코드저장부에 저장된 로컬동기화코드를 초기화하는 것을 특징으로 한다. The control unit of the present invention is characterized in that the first session communication unit initializes the local synchronization code stored in the synchronization code storage unit after establishing the first session with the server.
본 발명은 제어부는 상기 데이터큐에 삽입된 개별작업데이터 중에서 임의의 클라이언트로부터 수신한 개별작업데이터의 개수가 한계누적데이터수 이상인 경우, 상기 데이터큐에서 상기 클라이언트로부터 수신한 개별작업데이터를 삭제하고, 제2세션통신부를 통해 상기 클라이언트에 제1세션재설정요청을 송신하고, 제1세션통신부는, 제2세션통신부를 통해 임의의 클라이언트로부터 제1세션재설정요청을 수신하는 경우, 서버와 제1세션을 종료하고 서버와 제1세션을 다시 설정하는 것을 특징으로 한다. The control unit deletes the individual job data received from the client in the data queue when the number of individual job data received from any client among the individual job data inserted into the data queue is greater than or equal to the limit cumulative data, When the first session reset request is sent to the client through the second session communication unit, and the first session communication unit receives the first session reset request from an arbitrary client through the second session communication unit, the first session is reset. Ending and resetting the server and the first session.
본 발명은 상기 서버동기화코드, 로컬동기화코드 및 개별동기화코드는 대소비교 가능한 문자값인 것을 특징으로 하고, 상기 제어부는 동기화코드저장부에 저장된 로컬동기화코드를 증가시켜 갱신하고, 클라이언트로부터 수신한 개별작업데이터에 포함된 개별동기화코드를 추출하고, 상기 개별작업데이터를 송신한 클라이언트의 로컬동기화코드를 클라이언트동기화코드리스트에서 추출하여, 상기 개별작업데이터의 개별동기화코드가 상기 클라이언트동기화코드리스트에서 추출된 로컬동기화코드보다 큰 경우, 상기 개별작업데이터를 데이터큐에 삽입하는 것을 특징으로 한다. The present invention is characterized in that the server synchronization code, the local synchronization code and the individual synchronization code is a character value that can be compared large and small, the control unit is updated by increasing the local synchronization code stored in the synchronization code storage unit, the individual received from the client Extract the individual synchronization code included in the work data, extract the local synchronization code of the client that sent the individual work data from the client synchronization code list, and extract the individual synchronization code of the individual work data from the client synchronization code list. When larger than the local synchronization code, the individual job data is inserted into a data queue.
위에서 설명한 바와 같은 본 발명에 따르면, 본 발명은 네트워크상에서 다수의 클라이언트가 공동작업을 행할 때 복수의 세션을 이용하여 서버측의 네트워크 부하를 최소화하는 효율적인 방법 및 시스템을 제공할 수 있다.According to the present invention as described above, the present invention can provide an efficient method and system for minimizing the network load on the server side by using a plurality of sessions when multiple clients collaborate on the network.
또한, 본 발명은 네트워크상에서 다수의 클라이언트가 공동작업을 행할 때 복수의 세션을 이용하면서 서버측에서 전송한 동기화코드를 클라이언트간 송수신하는 데이터에 부가하여 세션간 동기화기능을 포함하는 방법 및 시스템을 제공할 수 있다.In addition, the present invention provides a method and system including a session-to-session synchronization function in addition to the data transmitted and received between the client and the synchronization code transmitted from the server side using a plurality of sessions when a plurality of clients in the network to collaborate can do.
또한, 본 발명은 네트워크상에서 다수의 클라이언트가 공동작업을 행할 때 복수의 세션을 이용하면서 각 클라이언트의 동기화코드를 서버를 통해 공유하고 또한 상기 동기화코드를 클라이언트간 송수신하는 데이터에 부가하여 세션간 동기화기능을 포함하는 방법 및 시스템을 제공할 수 있다. In addition, the present invention uses a plurality of sessions when a plurality of clients collaborate on the network, sharing the synchronization code of each client through the server, and also adds the synchronization code to the data transmitted and received between the client synchronization function between sessions It can provide a method and system comprising a.
도 1은 본 발명의 바람직한 실시예에 따른 복수의 세션을 이용한 공동작업 시스템을 나타낸 도면이다.
도 2는 본 발명의 바람직한 실시예에 따른 복수의 세션을 이용한 공동작업 시스템이 서버와 각 클라이언트간 제1세션통신부를 통해 연결된 네트워크 모양을 나타낸 도면이다.
도 3은 본 발명의 바람직한 실시예에 따른 복수의 세션을 이용한 공동작업 시스템이 각 클라이언트간 제2세션통신부를 통해 연결된 네트워크 모양을 나타낸 도면이다.
도4는 본 발명의 바람직한 실시예에 따른 복수의 세션을 이용한 공동작업 방법에서 서버와 각 클라이언트들이 제1세션 및 제2세션을 설정하고 작업데이터를 송수신하기까지의 과정으로 나타낸 흐름도이다.
도5는 본 발명의 바람직한 제1실시예에 따른 복수의 세션을 이용한 공동작업 방법에서 서버로부터 동기화코드를 수신하여 동기화를 진행하는 과정을 나타낸 흐름도이다.
도6은 본 발명의 바람직한 제1실시예에 따른 복수의 세션을 이용한 공동작업 방법에서 데이터큐에 쌓인 개별작업데이터를 처리하는 과정을 나타낸 흐름도이다.
도7은 본 발명의 바람직한 제2실시예에 따른 복수의 세션을 이용한 공동작업 방법에서 각 클라이언트들이 동기화코드를 서버를 통해 중계받아 동기화를 진행하는 과정을 나타낸 흐름도이다.
도8은 본 발명의 바람직한 제2실시예에 따른 복수의 세션을 이용한 공동작업 방법에서 각 클라이언트들이 개별작업데이터를 처리하는 과정을 나타낸 흐름도이다.
도9는 본 발명의 바람직한 제2실시예에 따른 복수의 세션을 이용한 공동작업 방법에서 데이터큐에 쌓인 개별작업데이터를 처리하는 과정을 나타낸 흐름도이다.
도10은 본 발명의 바람직한 실시예에 따른 복수의 세션을 이용한 공동작업 방법에서 제1세션을 재설정하는 과정을 나타낸 흐름도이다.1 is a view showing a collaboration system using a plurality of sessions according to a preferred embodiment of the present invention.
2 is a diagram illustrating a network in which a collaboration system using a plurality of sessions is connected through a first session communication unit between a server and each client according to an exemplary embodiment of the present invention.
FIG. 3 is a diagram illustrating a network in which a collaboration system using a plurality of sessions is connected through a second session communication unit between clients, according to an embodiment of the present invention.
4 is a flowchart illustrating a process of setting up a first session and a second session and transmitting and receiving work data in a server and a collaboration method using a plurality of sessions according to an exemplary embodiment of the present invention.
5 is a flowchart illustrating a process of receiving a synchronization code from a server and performing a synchronization in a collaborative method using a plurality of sessions according to a first embodiment of the present invention.
6 is a flowchart illustrating a process of processing individual work data accumulated in a data queue in a collaboration method using a plurality of sessions according to a first embodiment of the present invention.
7 is a flowchart illustrating a process in which each client receives a synchronization code through a server and performs synchronization in a collaborative method using a plurality of sessions according to a second embodiment of the present invention.
8 is a flowchart illustrating a process of processing individual work data by each client in a collaborative method using a plurality of sessions according to a second embodiment of the present invention.
9 is a flowchart illustrating a process of processing individual work data accumulated in a data queue in a collaboration method using a plurality of sessions according to a second embodiment of the present invention.
10 is a flowchart illustrating a process of resetting a first session in a collaborative method using a plurality of sessions according to an exemplary embodiment of the present invention.
기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.Specific details of other embodiments are included in the detailed description and the drawings.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다 Advantages and features of the present invention and methods for achieving them will be apparent with reference to the embodiments described below in detail with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below, but can be implemented in various different forms, and only the embodiments make the disclosure of the present invention complete, and the general knowledge in the art to which the present invention belongs. It is provided to fully inform the person having the scope of the invention, which is defined only by the scope of the claims. Like reference numerals refer to like elements throughout the specification.
이하, 본 발명의 실시예들에 의하여 복수의 세션을 이용한 공동작업 방법 및 그 시스템을 설명하기 위한 도면들을 참고하여 본 발명에 대해 설명하도록 한다.Hereinafter, the present invention will be described with reference to the drawings for describing a collaboration method and a system using a plurality of sessions according to embodiments of the present invention.
도 1은 본 발명의 바람직한 실시예에 따른 복수의 세션을 이용한 공동작업 시스템을 나타낸 도면이다.1 is a view showing a collaboration system using a plurality of sessions according to a preferred embodiment of the present invention.
본 발명의 실시예에 따른 복수의 세션을 이용한 공동작업 시스템은, 서버와 제1세션을 설정하는 제1세션통신부(111), 적어도 하나 이상의 클라이언트와 각각 제2세션을 설정하는 제2세션통신부(121), 및 제2세션을 설정할 클라이언트정보를 포함하는 클라이언트정보리스트를 제1세션을 통해 서버로부터 수신하고, 공동작업데이터를 제1세션을 통해 서버와 송수신하고, 상기 제2세션통신부를 통해 상기 각 클라이언트와 개별작업데이터를 송수신하는 제어부(131), 및 로컬동기화코드 또는 클라이언트동기화코드리스트를 저장하는 동기화코드저장부(141)를 포함한다.According to an embodiment of the present invention, a collaboration system using a plurality of sessions may include: a first
본 발명에서 각 클라이언트(102)는 서버(101)와 네트워크를 통해 접속되고, 서버에서 제공하는 공동작업 서비스를 수행한다. 서버(101)는 공동작업 서비스를 제공하는 웹서버, 파일서버 또는 데이터베이스서버를 포함할 수 있다. 공동작업 서비스라 함은 다수의 클라이언트가 하나의 문서작업을 진행하는 서비스, 하나의 이미지파일을 생성하기 위한 서비스, 하나의 영상파일을 생성하기 위한 서비스를 포함하여, 문자/영상/음성 객체를 생성하고 편집하는 모든 서비스를 일컫는다.In the present invention, each
클라이언트는 일반적으로 통신의 단말기 역할을 할 수 있는 모든 전자단말기로서 PC, 스마트폰, IPTV, 컨텐츠TV 및 PDA 등을 포함할 수 있다.The client is generally any electronic terminal capable of acting as a terminal for communication, and may include a PC, a smartphone, an IPTV, a content TV, a PDA, and the like.
본 발명에서 클라이언트 시스템은 제1세션통신부(111), 제2세션통신부(121), 제어부(131) 및 동기화코드저장부(141)를 포함할 수 있는데, 상기 각 구성요소는 OS 위에서 실행되는 어플리케이션 또는 모듈이 될 수 있다.In the present invention, the client system may include a first
제1세션통신부(111) 및 제2세션통신부는 서버(101)와 네트워크 통신을 할 수 있는 모듈인데, 특히 제1세션통신부는 TCP 프로토콜을 이용하여 서버(101)와 전달이 보장되는 데이터를 송수신하고 제2세션통신부는 UDP 프로토콜을 이용하여 각 클라이언트(102)와 실시간성이 보장되는 데이터를 송수신한다.The first
TCP 프로토콜은 인터넷을 이루는 핵심 프로토콜의 하나로서 인터넷 엔지니어링 테스크 포스(IETF, Internet Engineering Task Force)의 RFC 793에 기술되어 있다. TCP는 IP 위에서 동작하는 프로토콜로 흔히 TCP/IP로 표기하며, 데이터의 전달을 보증하고 보낸 순서대로 받게 해 준다. TCP는 패킷의 교환을 근간으로 하는 인터넷 프로토콜(IP, Internet Protocol)을 기반으로 작동한다. 패킷은 해더과 바디로 구성된 바이트 단위의 짧은 신호이다. 해더는 데이터의 수신처에 대한 정보가 들어가며 바디에 전달할 데이터가 실린다. 패킷은 회선이 혼잡할 경우 IP 프로토콜에서 폐기될 수 있기 때문에 다른 경로를 가진 두 개의 라우터를 통해 수신처에 전달된다. TCP는 패킷의 폐기로 인해 잘못된 명령이 전달되더라도 어플리케이션으로부터 기반 패킷을 구성하여 폐기된 패킷을 다시 전달하도록 함으로써 네트워크 혼잡에 의한 피해를 최대한 줄이도록 구성되어 있다.The TCP protocol is described in RFC 793 of the Internet Engineering Task Force (IETF) as one of the core protocols of the Internet. TCP is a protocol that runs over IP, often referred to as TCP / IP, which guarantees the delivery of data and ensures that it is received in the order in which it was sent. TCP works based on the Internet Protocol (IP), which is based on the exchange of packets. A packet is a short signal in bytes consisting of a header and a body. The header contains information about the destination of the data and contains the data to be delivered to the body. Packets are forwarded to two destinations through two routers with different paths, since they can be discarded in the IP protocol if the circuit is congested. TCP is configured to minimize the damage caused by network congestion by constructing the base packet from the application and sending the discarded packet back even if the wrong command is delivered due to the discarding of the packet.
반면 UDP 프로토콜은 인터넷 프로토콜 스위트의 주요 프로토콜 가운데 하나이며, 1980년에 데이빗 리드가 설계하였고, 현재 IETF의 RFC 768로 표준으로 정의되어 있으며, TCP와 함께 데이터그램으로 알려진 단문 메시지를 교환하기 위해서 사용된다. UDP는 유니버설 데이터그램 프로토콜이라고 일컫기도 한다. UDP 프로토콜은 TCP보다 속도가 일반적으로 빠르고 오버헤드가 적지만 패킷의 순서를 보장하지 않고 전송승인 확인 기능이 없어, 실시간성이 보장되어야 하는 음성, 영상 데이터를 송수신하는 데 활용되는 특징이 있다.The UDP protocol, on the other hand, is one of the major protocols in the Internet Protocol Suite, designed by David Reid in 1980, and currently defined as the IETF's RFC 768 standard, and is used to exchange short messages known as datagrams with TCP. . UDP is sometimes referred to as the universal datagram protocol. The UDP protocol is generally faster and has less overhead than TCP. However, the UDP protocol does not guarantee the order of packets and does not have a transmission acknowledgment function.
하나의 캔버스 위에 다수의 클라이언트가 그림을 그리는 서비스와 같은 공동작업 서비스의 경우는 도형의 생성, 문자 데이터의 입력, 이미지 삽입, 음성데이터의 전송과 같이 모든 클라이언트가 반드시 공유되어야 하는 데이터를 처리하여야 한다. 이러한 데이터를 공동작업데이터라 한다면, 공동작업데이터는 공동작업데이터를 생성하려는 클라이언트가 제1세션을 통해 서버로 전송하고, 서버는 해당 캔버스를 공유하며 작업중인 모든 클라이언트에 중계 또는 전송하여야 한다.In the case of a collaborative service, such as a service in which multiple clients draw on a canvas, all clients must handle data that must be shared, such as creating figures, inputting text data, inserting images, and transmitting voice data. . If such data is called collaborative data, the collaborative data should be transmitted to the server through the first session by the client who wants to create the collaborative data, and the server should share or share the canvas and relay or transmit it to all working clients.
그리고, 상기와 같은 공동작업 서비스에서는 마우스의 움직임과 같이 실시간성이 보장되어야 하지만 일부 유실되어도 공동작업에 치명적인 영향을 미치지 않는 데이터 또한 처리되어야 한다. 이러한 데이터를 개별작업데이터라 한다면, 개별작업데이터는 각 개별작업데이터를 생성하려는 클라이언트가 제2세션을 통해 해당 공동작업에 참여하고 있는 모든 클라이언트로 전송한다. In the collaboration service as described above, the real-time performance must be guaranteed like the movement of the mouse, but data that does not have a fatal effect on the collaboration should be processed even if some of them are lost. If such data is referred to as individual task data, the individual task data is transmitted to all clients participating in the collaboration through the second session by the client who wants to generate each individual task data.
제1세션통신부(111)는 클라이언트(102)에서 이러한 제1세션을 서버(101)와 설정하고, 제2세션통신부(121)는 각 클라이언트(102)에서 다른 클라이언트(102)의 제2세션통신부(121)로 제2세션을 설정하게 된다. 제어부(131)는 상기 제1세션통신부(111) 및 제2세션통신부(121)를 통해 수신되는 데이터를 처리하고, 동기화코드저장부(141)에 로컬동기화코드 또는 클라이언트동기화코드리스트를 저장 및 관리하며 제1세션통신부(111)를 통해 송수신되는 공동작업데이터 및 제2세션통신부(121)를 통해 송수신되는 개별작업데이터를 동기화한다.The first
위에서 설명된 바와 같이, 속도보다는 전송승인에 초점을 맞춘 TCP 프로토콜과 전송을 보장하기보다는 속도를 높이고 오버헤드를 줄이는 특성을 가진UDP 프로토콜을 병용하는 데 있어서는, 각 프로토콜을 통해 송수신되는 데이터가 동기화되지 않을 가능성이 있기 때문에, 이를 위해서 아래에서 설명되는 것과 같은 동기화 과정을 포함하는 것이 바람직하다.As described above, in the combination of the TCP protocol, which focuses on transmission approval rather than speed, and the UDP protocol, which has the characteristics of increasing speed and reducing overhead rather than guaranteeing transmission, the data transmitted and received through each protocol is not synchronized. As this is unlikely, it is desirable to include a synchronization process as described below for this purpose.
도 2는 본 발명의 바람직한 실시예에 따른 복수의 세션을 이용한 공동작업 시스템이 서버와 각 클라이언트간 제1세션통신부를 통해 연결된 네트워크 모양을 나타낸 도면이다. 2 is a diagram illustrating a network in which a collaboration system using a plurality of sessions is connected through a first session communication unit between a server and each client according to an exemplary embodiment of the present invention.
본 발명에서 각 클라이언트(102)는 제1세션통신부(111)를 통해 서버(101)와 각각 제1세션을 설정하는데, 이 때 통신망의 구조는 도2에서 설명하는 바와 같이 하나의 서버(101)에 각 클라이언트(102)가 연결되는 1:N 구조로 연결된다.In the present invention, each
도 3은 본 발명의 바람직한 실시예에 따른 복수의 세션을 이용한 공동작업 시스템이 각 클라이언트간 제2세션통신부를 통해 연결된 네트워크 모양을 나타낸 도면이다.FIG. 3 is a diagram illustrating a network in which a collaboration system using a plurality of sessions is connected through a second session communication unit between clients, according to an embodiment of the present invention.
본 발명에서 각 클라이언트(102)는 제2세션통신부(121)를 통해 공동작업을 수행하는 각 클라이언트와 제2세션을 맺어 연결되는데, 이 때 통신망의 구조는 도3에서 설명하는 바와 같이 n개의 클라이언트가 있다면 총 n(n-1)/2 개의 세션으로서 모든 클라이언트는 다른 모든 클라이언트와 각각 직접연결된다.In the present invention, each
도4는 본 발명의 바람직한 실시예에 따른 복수의 세션을 이용한 공동작업 방법에서 서버와 각 클라이언트들이 제1세션 및 제2세션을 설정하고 작업데이터를 송수신하기까지의 과정으로 나타낸 흐름도이다.4 is a flowchart illustrating a process of setting up a first session and a second session and transmitting and receiving work data in a server and a collaboration method using a plurality of sessions according to an exemplary embodiment of the present invention.
본 발명에 의한 공동작업을 수행하기 위해 하나의 클라이언트(102)가 서버(101)에 접속되면 이로서 서버(101)는 상기 클라이언트(102)의 제1세션통신부(111)와 제1세션을 맺은 것이 된다(S401). 서버(101)는 제1세션을 통해 상기 공동작업에 참여하고 있는 클라이언트리스트를 전송하고(S411), 이를 전송받은 클라이언트(102)는 제2세션통신부(121)를 통해 상기 클라이언트리스트에 포함된 모든 클라이언트의 제2세션통신부(121)와 제2세션을 설정한다(S421). 이 때, 상기 클라이언트리스트는 각 클라이언트의 IP주소를 포함한, 네트워크상에 다른 클라이언트 단말기를 인식할 수 있는 식별번호를 포함할 수 있다.When one
이렇게 서버(101)와 각 클라이언트(102)가 제1세션 및 제2세션을 통해 네트워크 연결되면, 서버(101)와 클라이언트(102)는 제1세션을 통해 공동작업데이터를 송수신하고, 각 클라이언트(102)끼리는 제2세션을 통해 개별작업데이터를 송수신한다(S431).When the
도5는 본 발명의 바람직한 제1실시예에 따른 복수의 세션을 이용한 공동작업 방법에서 서버로부터 동기화코드를 수신하여 동기화를 진행하는 과정을 나타낸 흐름도이다.5 is a flowchart illustrating a process of receiving a synchronization code from a server and performing a synchronization in a collaborative method using a plurality of sessions according to a first embodiment of the present invention.
본 발명의 제1실시예는 상기 제1세션을 통해 송수신되는 공동작업데이터와 제2세션을 통해 송수신되는 개별작업데이터를 동기화하기 위해 서버(101)에서 갱신 및 관리하는 서버동기화코드를 이용한다.The first embodiment of the present invention uses a server synchronization code updated and managed by the
서버(101)는 공동작업의 진행정도에 따라 서버동기화코드를 관리한다. 예를 들어, 처음 공동작업이 생성되면 서버동기화코드를 “1”로 설정하고, 각 클라이언트로부터 객체생성/편집/삭제 과정이 있을 때마다 그 서버동기화코드를 “2”, “3”, “4”와 같이 단계적으로 갱신하여 이를 클라이언트에 전송한다(S510). 이 때, 서버동기화코드는 제1세션을 통해 클라이언트(102)로 전송되는데, 공동작업데이터에 서버동기화코드를 포함하여 전송하고, 클라이언트(102)에서는 상기 수신한 공동작업데이터에서 서버동기화코드를 추출할 수도 있고, 상기 서버동기화코드만을 클라이언트(102)에 직접 전송할 수도 있다.The
각 클라이언트(102)는 상기 수신한 서버동기화코드를 동기화코드저장부(141)에 로컬동기화코드로서 저장하거나, 이미 동기화코드저장부(141)에 저장되어 있는 로컬동기화코드를 갱신할 수 있다(S511). 로컬동기화코드로 저장된 값은 현재 공동작업이 어느정도 진행되고 있는지 저장하는 역할도 하고, 이전에 한 작업과 다른 작업을 진행하고 있다는 사정을 구별하여 제2세션을 통해 수신되는 개별작업데이터를 관리하는 데 판단의 근거로서 역할을 한다.Each
각 클라이언트에서 개별작업데이터를 생성하여 다른 각 클라이언트(102)에 전송할 때에는 상기 로컬동기화코드를 개별작업데이터에 포함한다(S521). 각 클라이언트(102)는 다른 클라이언트(102)로부터 개별작업데이터를 전송받은 후(S531), 개별작업데이터로부터 개별동기화코드를 추출하고(S532), 다른 클라이언트로부터 전송된 개별작업데이터에 포함된 개별동기화코드가 자신의 동기화코드저장부(141)에 저장되어 있는 로컬동기화코드와 일치하는지 판단하고(S541), 일치하는 경우는 개별작업데이터를 처리하고(S580), 일치하지 않는 경우는 개별작업데이터를 데이터큐에 삽입한다(S590). 이 때, 서버동기화코드, 로컬동기화코드 및 개별동기화코드는 대소비교 가능한 문자값인 것이 바람직하며, 개별작업데이터에 포함된 개별동기화코드가 자신의 동기화코드저장부(141)에 저장되어 있는 로컬동기화코드와 일치하는지 판단할 때, 개별작업데이터에 포함된 개별동기화코드가 자신의 동기화코드저장부(141)에 저장되어 있는 로컬동기화코드보다 큰 값인 경우 데이터큐에 개별작업데이터를 삽입하고, 일치하는 경우 개별작업데이터를 처리하며, 작은 값인 경우 그 개별작업데이터는 이미 시간이 지나 더 이상 유효하지 않은 데이터일 것이므로 무시하거나 버리는 것이 바람직하다.When the individual work data is generated by each client and transmitted to each
그리고, 상기 데이터큐는 개별작업데이터를 메모리 상에서 효율적으로 저장할 수 있는 데이터구조로서 구현되는 것이 바람직하며, 특히, 작업의 특성상 선입선출구조인 Queue로서 구현되는 것이 더욱 바람직하다.The data queue is preferably implemented as a data structure capable of efficiently storing individual work data on a memory. More specifically, the data queue is preferably implemented as a queue that is a first-in, first-out structure.
도6은 본 발명의 바람직한 제1실시예에 따른 복수의 세션을 이용한 공동작업 방법에서 데이터큐에 쌓인 개별작업데이터를 처리하는 과정을 나타낸 흐름도이다.6 is a flowchart illustrating a process of processing individual work data accumulated in a data queue in a collaboration method using a plurality of sessions according to a first embodiment of the present invention.
데이터큐에 쌓인 개별작업데이터를 처리하기 위해 제어부(131)는 데이터큐에 쌓인 개별작업데이터를 주기적으로 확인하여 아래의 과정을 수행하는 것이 바람직하다. 데이터큐에 저장되어 있는 개별작업데이터의 개별동기화코드를 전부 추출하여 자신의 동기화코드저장부(141)에 저장된 로컬동기화코드와 일치하는 개별작업데이터가 있다면(S601), 이를 데이터큐에서 추출 및 삭제하고(S611), 해당 개별작업데이터를 처리한다(S680). 서버는 작업 진행 정도에 따라 주기적으로 서버동기화코드를 갱신하고 클라이언트에 전송하여, 각 클라이언트가 로컬동기화코드를 갱신하도록 하므로, 위와 같이 제어부(131)가 데이터큐를 주기적으로 확인하여 쌓여있는 개별작업데이터를 처리할 필요가 있다.In order to process the individual job data accumulated in the data queue, the
도7은 본 발명의 바람직한 제2실시예에 따른 복수의 세션을 이용한 공동작업 방법에서 각 클라이언트들이 동기화코드를 서버를 통해 중계받아 동기화를 진행하는 과정을 나타낸 흐름도이다.7 is a flowchart illustrating a process in which each client receives a synchronization code through a server and performs synchronization in a collaborative method using a plurality of sessions according to a second embodiment of the present invention.
본 발명의 제2실시예는 상기 제1세션을 통해 송수신되는 공동작업데이터와 제2세션을 통해 송수신되는 개별작업데이터를 동기화하기 위해 각 클라이언트(102)에서 갱신 및 관리하는 로컬동기화코드를 서버에서 취합하여 클라이언트동기화코드리스트로 만들어서 각 클라이언트(102)에 전송하고, 각 클라이언트는 상기 클라이언트동기화코드리스트를 동기화코드저장부(141)에 저장하여 개별작업데이터를 처리할 것인지 판단할 때 이용한다.In the second embodiment of the present invention, the local synchronization code updated and managed by each
우선 클라이언트(102)의 제어부(131)가 자신의 작업진행정도에 따라 동기화코드저장부(141)에 저장된 로컬동기화코드를 갱신하고(S701), 이를 제1세션통신부(111)를 통해 서버(101)에 송신한다(S702). 서버(101)는 각 클라이언트로부터 수신한 여러 개의 로컬동기화코드를 클라이언트동기화코드리스트로 구성하고 이를 각 클라이언트에 제1세션을 통해 전송한다(S703). 제1세션을 통해 클라이언트동기화코드리스트를 수신한 제어부(131)는(S710) 상기 클라이언트동기화코드리스트를 동기화코드저장부(141)에 저장 또는 갱신한다(S711).First, the
도8은 본 발명의 바람직한 제2실시예에 따른 복수의 세션을 이용한 공동작업 방법에서 각 클라이언트들이 개별작업데이터를 처리하는 과정을 나타낸 흐름도이다.8 is a flowchart illustrating a process of processing individual work data by each client in a collaborative method using a plurality of sessions according to a second embodiment of the present invention.
각 클라이언트(102)는 자신이 생성한 개별작업데이터를 다른 클라이언트에 송신하기 위해 개별작업데이터에 자신의 동기화코드저장부(141)에 저장된 로컬동기화코드를 포함하여 구성하고, 상기 개별작업데이터를 제2세션을 통해 함께 공동작업을 수행하고 있는 다른 모든 클라이언트(102)에 송신한다.Each
상기 개별작업데이터를 수신(S831)한 각 클라이언트(102)의 제어부(131)는 개별작업데이터로부터 개별동기화코드를 추출하고(S832), 자신의 동기화코드저장부(141)에 저장된 클라이언트동기화코드리스트로부터 상기 개별작업데이터를 송신한 클라이언트의 로컬동기화코드와 상기 전송받은 개별동기화코드가 일치하는지 판단하여(S841), 일치하는 경우 개별작업데이터를 처리하고(S880), 일치하지 않는 경우 데이터큐에 상기 개별작업데이터를 삽입한다(S890).The
도9는 본 발명의 바람직한 제2실시예에 따른 복수의 세션을 이용한 공동작업 방법에서 데이터큐에 쌓인 개별작업데이터를 처리하는 과정을 나타낸 흐름도이다.9 is a flowchart illustrating a process of processing individual work data accumulated in a data queue in a collaboration method using a plurality of sessions according to a second embodiment of the present invention.
데이터큐에 쌓인 개별작업데이터를 처리하기 위해 제어부(131)는 데이터큐에 쌓인 개별작업데이터를 주기적으로 확인하여 아래의 과정을 수행하는 것이 바람직하다. 데이터큐에 저장되어 있는 개별작업데이터의 개별동기화코드를 전부 추출하고, 자신의 동기화코드저장부(141)에 저장된 클라이언트동기화코드리스트에서 상기 개별작업데이터를 송신한 클라이언트의 로컬동기화코드가 일치하는지 판단하여(S901), 만일 일치한다면 이를 데이터큐에서 추출 및 삭제하고(S911), 해당 개별작업데이터를 처리한다(S980). 각 클라이언트는 작업 진행 정도에 따라 주기적으로 서버에 로컬동기화코드를 송신하고 서버는 이때마다 클라이언트동기화코드리스트를 갱신하고 클라이언트에 전송하여, 각 클라이언트가 클라이언트동기화코드리스트를 갱신하도록 하므로, 위와 같이 제어부(131)가 데이터큐를 주기적으로 확인하여 쌓여있는 개별작업데이터를 처리할 필요가 있다.In order to process the individual job data accumulated in the data queue, the
도10은 본 발명의 바람직한 실시예에 따른 복수의 세션을 이용한 공동작업 방법에서 제1세션을 재설정하는 과정을 나타낸 흐름도이다.10 is a flowchart illustrating a process of resetting a first session in a collaborative method using a plurality of sessions according to an exemplary embodiment of the present invention.
상기 제1실시예 및 제2실시예에서 제2세션을 통한 개별작업데이터는 계속 잘 송수신되는데, 제1세션을 통한 공동작업데이터가 잘 송수신되지 않는 경우는, 제1세션을 재설정할 필요가 있으므로 아래의 과정을 수행하는 것이 바람직하다.In the first and second embodiments, the individual work data through the second session is continuously transmitted and received well. If the collaborative work data through the first session is not well transmitted and received, it is necessary to reset the first session. It is preferable to carry out the following procedure.
각 클라이언트의 제어부(131)가 주기적으로 데이터큐를 확인하여, 데이터큐에 어느 한 클라이언트로부터 수신한 개별작업데이터 개수가 한계누적데이터수를 초과하는지 판단하고(S1001), 만일 초과하는 경우 데이터큐에서 해당 개별작업데이터를 모두 삭제하고(S1011), 제2세션을 통해 데이터큐에 누적된 개별잡업데이터 수가 한계누적데이터수를 초과한 해당 클라이언트에 제1세션재설정요청을 보낸다(S1020). 어느 클라이언트로부터 상기 제1세션재설정요청을 수신한 클라이언트의 제어부(131)는 자신의 제1세션통신부(111)를 통해 서버(101)와 제1세션을 재설정한다. 이 때, 상기 한계누적데이터수는 관리자 또는 서버(101) 또는 사용자에 의해 물리적 메모리의 크기, 데이터패킷의 크기 및 개별작업데이터의 크기를 참조하여 임의로 설정되는 값일 수 있으며, 클라이언트의 메모리에 저장된다.The
예를 들어, 한계누적데이터수가 10으로 설정된 경우, X라는 클라이언트의 데이터큐에 A라는 클라이언트로부터 전송되어 삽입된 개별작업데이터가 3개, B라는 클라이언트로부터 전송되어 삽입된 개별작업데이터가 11개, C라는 클라이언트로부터 전송되어 삽입된 개별작업데이터가 1개인 경우, X라는 클라이언트는 B라는 클라이언트에 제1세션재설정요청을 보내고, B라는 클라이언트는 제2세션은 그대로 두고, 서버와의 사이에 설정된 제1세션만 다시 설정하여, 제1세션을 통해 모든 클라이언트에 송수신되는 공동작업데이터 또는 클라이언트동기화코드리스트가 유실되거나 지나치게 늦게 도착하는 경우 제1세션을 재설정하게 하여 동기화를 원활하게 할 수 있을 뿐만 아니라, 제1세션이 불량한 경우 보다 빨리 대처하여 공동작업의 효율성을 높일 수 있다. 이는 공동작업데이터 및 클라이언트동기화코드리스트가 제1세션을 통해 전달되기 때문이다.For example, if the limit cumulative data count is set to 10, three individual job data transmitted and inserted from the client A are inserted into the data queue of the client X, 11 individual job data transmitted and inserted from the client B, If there is only one individual job data transmitted from the client named C and inserted, the client named X sends the first session reset request to the client named B, and the client named B leaves the second session intact and is set up with the server. By resetting only one session, if the collaborative data or client synchronization code list sent to all clients through the first session is lost or arrives too late, the first session can be reset to facilitate synchronization. If the first session is bad, it is possible to cope more quickly and increase the efficiency of the collaboration. This is because the collaborative data and the client synchronization code list are delivered through the first session.
본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구의 범위에 의하여 나타내어지며, 특허청구의 범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.Those skilled in the art will appreciate that the present invention can be embodied in other specific forms without changing the technical spirit or essential features of the present invention. It is therefore to be understood that the above-described embodiments are illustrative in all aspects and not restrictive. The scope of the present invention is indicated by the scope of the following claims rather than the detailed description, and all changes or modifications derived from the meaning and scope of the claims and the equivalent concept are included in the scope of the present invention. Should be interpreted.
101 : 서버 102 : 클라이언트
103
111 : 제1세션통신부 121 : 제2세션통신부
131 : 제어부 141 : 동기화코드저장부
101: server 102: client
103
111: first session communication unit 121: second session communication unit
131: control unit 141: synchronization code storage unit
Claims (22)
제1세션통신부가 서버와 제1세션을 설정하는 단계;
제어부가 제1세션을 통해 서버로부터 클라이언트정보리스트를 수신하는 단계;
제2세션통신부가 상기 클라이언트정보리스트에 포함된 적어도 하나 이상의 클라이언트와 각각 제2세션을 설정하는 단계;
제어부가 상기 제1세션통신부를 통해 서버와 공동작업데이터를 송수신하는 단계; 및
제어부가 상기 제2세션통신부를 통해 상기 각 클라이언트와 개별작업데이터를 송수신하는 단계;를 포함하는, 복수의 세션을 이용한 공동작업 방법.A client-server system in which at least two user terminals connect to a server and perform collaboration on one object,
Establishing, by the first session communication unit, the first session with the server;
Receiving, by the control unit, the client information list from the server through the first session;
Establishing, by a second session communication unit, a second session with each of at least one client included in the client information list;
A control unit transmitting and receiving collaborative data with a server through the first session communication unit; And
And a control unit transmitting and receiving individual work data with each client through the second session communication unit.
상기 제1세션통신부는 TCP프로토콜을 사용하고,
상기 제2세션통신부는 UDP프로토콜을 사용하는 것을 특징으로 하는, 복수의 세션을 이용한 공동작업 방법.The method of claim 1,
The first session communication unit uses a TCP protocol,
And the second session communication unit uses a UDP protocol.
상기 클라이언트정보리스트는 적어도 하나 이상의 클라이언트 IP주소를 포함하는 것을 특징으로 하는, 복수의 세션을 이용한 공동작업 방법.The method of claim 1,
And the client information list comprises at least one client IP address.
상기 (d) 단계는,
(d-1) 제어부가 상기 제1세션통신부를 통해 서버로부터 서버동기화코드가 포함된 공동작업데이터를 수신하는 단계;
(d-2) 제어부가 상기 공동작업데이터로부터 서버동기화코드를 추출하여 동기화코드저장부에 저장된 로컬동기화코드를 갱신하는 단계; 및
(d-3) 제어부가 상기 제1세션통신부를 통해 서버에 공동작업데이터를 송신하는 단계;를 포함하고,
상기 (e) 단계는,
(e-1) 제어부가 상기 제2세션통신부를 통해 상기 각 클라이언트에 상기 동기화코드저장부에 저장된 로컬동기화코드를 개별동기화코드로서 포함하는 개별작업데이터를 송신하는 단계; 및
(e-2) 제어부가 상기 제2세션통신부를 통해 상기 각 클라이언트로부터 개별동기화코드를 포함하는 개별작업데이터를 수신하는 단계;를 포함하고,
제어부가 동기화코드저장부에 저장된 로컬동기화코드와 일치하지 않는 개별동기화코드를 포함한 개별작업데이터를 데이터큐에 삽입하는 단계; 및
제어부가 상기 데이터큐로부터 로컬동기화코드와 일치하는 개별동기화코드를 포함한 개별작업데이터를 추출하는 단계;를 더 포함하는 것을 특징으로 하는, 복수의 세션을 이용한 공동작업 방법.The method of claim 1,
In step (d),
(d-1) a control unit receiving collaborative data including a server synchronization code from a server through the first session communication unit;
(d-2) the control unit extracting a server synchronization code from the collaboration data and updating the local synchronization code stored in the synchronization code storage unit; And
(d-3) a control unit transmitting collaborative data to a server through the first session communication unit;
In step (e),
(e-1) a control unit transmitting individual operation data including the local synchronization code stored in the synchronization code storage unit as an individual synchronization code to each client through the second session communication unit; And
and (e-2) receiving, by the control unit, individual operation data including individual synchronization codes from each client through the second session communication unit.
Inserting, by the control unit, individual job data including individual synchronization codes that do not match the local synchronization codes stored in the synchronization code storage unit into the data queue; And
And extracting, by the control unit, individual operation data including individual synchronization codes that match the local synchronization codes from the data queue.
상기 서버동기화코드, 로컬동기화코드 및 개별동기화코드는 대소비교 가능한 문자값인 것을 특징으로 하는, 복수의 세션을 이용한 공동작업 방법.The method of claim 4, wherein
The server synchronization code, the local synchronization code and the individual synchronization code is characterized in that large and comparable character value, the collaboration method using a plurality of sessions.
상기 (f) 단계는,
(f-1) 제어부가 동기화코드저장부에 저장된 로컬동기화코드보다 큰 개별동기화코드를 포함한 개별작업데이터를 데이터큐에 삽입하는 단계;를 포함하는, 복수의 세션을 이용한 공동작업 방법.The method of claim 5,
Step (f),
and (f-1) the control unit inserting individual operation data including an individual synchronization code larger than a local synchronization code stored in the synchronization code storage unit into the data queue.
상기 (d) 단계는,
(d-4) 제어부가 상기 제1세션통신부를 통해 서버로부터 서버동기화코드를 수신하는 단계; 및
(d-5) 제어부가 상기 서버동기화코드로써 동기화코드저장부에 저장된 로컬동기화코드를 갱신하는 단계; 를 더 포함하고,
상기 (e) 단계는,
(e-1) 제어부가 상기 제2세션통신부를 통해 상기 각 클라이언트에 상기 동기화코드저장부에 저장된 로컬동기화코드를 개별동기화코드로서 포함하는 개별작업데이터를 송신하는 단계; 및
(e-2) 제어부가 상기 제2세션통신부를 통해 상기 각 클라이언트로부터 개별동기화코드를 포함하는 개별작업데이터를 수신하는 단계;를 포함하고,
(f) 제어부가 동기화코드저장부에 저장된 로컬동기화코드와 일치하지 않는 개별동기화코드를 포함한 개별작업데이터를 데이터큐에 삽입하는 단계; 및
(g) 제어부가 상기 데이터큐로부터 로컬동기화코드와 일치하는 개별동기화코드를 포함한 개별작업데이터를 추출하는 단계;를 더 포함하는 것을 특징으로 하는, 복수의 세션을 이용한 공동작업 방법.The method of claim 1,
In step (d),
(d-4) the control unit receiving a server synchronization code from a server through the first session communication unit; And
(d-5) updating, by the controller, a local synchronization code stored in a synchronization code storage unit as the server synchronization code; Further comprising:
In step (e),
(e-1) a control unit transmitting individual operation data including the local synchronization code stored in the synchronization code storage unit as an individual synchronization code to each client through the second session communication unit; And
and (e-2) receiving, by the control unit, individual operation data including individual synchronization codes from each client through the second session communication unit.
(f) the control unit inserting individual operation data including the individual synchronization codes that do not match the local synchronization code stored in the synchronization code storage unit to the data queue; And
and (g) extracting, by the control unit, individual job data including individual synchronization codes matching the local synchronization codes from the data queue.
상기 (d) 단계는,
(d-6) 제어부가 상기 제1세션통신부를 통해 서버로부터 적어도 하나 이상의 클라이언트의 로컬동기화코드를 포함하는 클라이언트동기화코드리스트를 수신하는 단계;
(d-7) 제어부가 상기 클라이언트동기화코드리스트를 동기화코드저장부에 저장하는 단계;
(d-8) 제어부가 동기화코드저장부에 저장된 로컬동기화코드를 변경하는 단계; 및
(d-9) 제어부가 상기 제1세션통신부를 통해 서버에 상기 로컬동기화코드를 송신하는 단계;를 더 포함하고,
상기 (e) 단계는,
(e-1) 제어부가 상기 제2세션통신부를 통해 상기 각 클라이언트에 상기 동기화코드저장부에 저장된 로컬동기화코드를 개별동기화코드로서 포함하는 개별작업데이터를 송신하는 단계; 및
(e-2) 제어부가 상기 제2세션통신부를 통해 상기 각 클라이언트로부터 개별동기화코드를 포함하는 개별작업데이터를 수신하는 단계;를 포함하고,
제어부가 상기 개별작업데이터에 포함된 개별동기화코드를 추출하고, 상기 개별작업데이터를 송신한 클라이언트의 로컬동기화코드를 클라이언트동기화코드리스트에서 추출하여, 이들이 일치하지 않는 경우 상기 개별작업데이터를 데이터큐에 삽입하는 단계; 및
제어부가 상기 데이터큐에 삽입된 개별작업데이터의 개별동기화코드를 추출하고, 상기 개별작업데이터를 송신한 클라이언트의 로컬동기화코드를 클라이언트동기화코드리스트에서 추출하여, 이들이 일치하는 개별작업데이터를 데이터큐로부터 추출하는 단계;를 더 포함하는 것을 특징으로 하는, 복수의 세션을 이용한 공동작업 방법.The method of claim 1,
In step (d),
(d-6) a control unit receiving a client synchronization code list including local synchronization codes of at least one client from a server through the first session communication unit;
(d-7) a control unit storing the client synchronization code list in a synchronization code storage unit;
(d-8) the control unit changing the local synchronization code stored in the synchronization code storage unit; And
(d-9) a control unit transmitting the local synchronization code to a server through the first session communication unit, further comprising:
In step (e),
(e-1) a control unit transmitting individual operation data including the local synchronization code stored in the synchronization code storage unit as an individual synchronization code to each client through the second session communication unit; And
and (e-2) receiving, by the control unit, individual operation data including individual synchronization codes from each client through the second session communication unit.
The control unit extracts the individual synchronization codes included in the individual job data, extracts the local synchronization code of the client that has sent the individual job data from the client synchronization code list, and if they do not match, the individual job data to the data queue. Inserting; And
The control unit extracts the individual synchronization codes of the individual job data inserted into the data queue, extracts the local synchronization code of the client that has sent the individual job data from the client synchronization code list, and extracts the individual job data matching them from the data queue. Extracting; further comprising, a collaboration method using a plurality of sessions.
상기 (a) 단계는,
(a-1) 제어부가 동기화코드저장부에 저장된 로컬동기화코드를 초기화하는 단계;를 더 포함하는, 복수의 세션을 이용한 공동작업 방법.The method of claim 8,
In step (a),
(a-1) the control unit initializing the local synchronization code stored in the synchronization code storage unit; further comprising, a collaboration method using a plurality of sessions.
제어부가 상기 데이터큐에 삽입된 개별작업데이터 중에서 임의의 클라이언트로부터 수신한 개별작업데이터의 개수가 한계누적데이터수 이상인 경우, 상기 데이터큐에서 상기 클라이언트로부터 수신한 개별작업데이터를 삭제하고, 제2세션통신부를 통해 상기 클라이언트에 제1세션재설정요청을 송신하는 단계; 및
제2세션통신부를 통해 임의의 클라이언트로부터 제1세션재설정요청을 수신하는 경우, 제1세션통신부가 서버와 제1세션을 종료하고 서버와 제1세션을 다시 설정하는 단계;를 더 포함하는, 복수의 세션을 이용한 공동작업 방법.The method of claim 8,
If the number of individual job data received from any client among the individual job data inserted into the data queue is greater than or equal to the limit cumulative data, the controller deletes the individual job data received from the client from the data queue and performs a second session. Transmitting a first session reset request to the client through a communication unit; And
When the first session reset request is received from any client through the second session communication unit, ending the first session with the server and resetting the server and the first session; How to collaborate using sessions.
상기 서버동기화코드, 로컬동기화코드 및 개별동기화코드는 대소비교 가능한 문자값인 것을 특징으로 하고,
상기 (d-8) 단계는,
(d-10) 제어부가 동기화코드저장부에 저장된 로컬동기화코드를 증가시켜 갱신하는 단계;를 포함하고,
상기 (h) 단계는,
(h-1) 제어부가 상기 개별작업데이터에 포함된 개별동기화코드를 추출하고, 상기 개별작업데이터를 송신한 클라이언트의 로컬동기화코드를 클라이언트동기화코드리스트에서 추출하여, 상기 개별작업데이터의 개별동기화코드가 상기 클라이언트동기화코드리스트에서 추출된 로컬동기화코드보다 큰 경우, 상기 개별작업데이터를 데이터큐에 삽입하는 단계;를 포함하는, 복수의 세션을 이용한 공동작업 방법.The method of claim 8,
The server synchronization code, local synchronization code and individual synchronization code is characterized in that the character value can be compared large and small,
The step (d-8),
(d-10) by the controller increasing and updating the local synchronization code stored in the synchronization code storage unit;
(H) step,
(h-1) The control unit extracts the individual synchronization code included in the individual job data, extracts the local synchronization code of the client that has sent the individual job data from the client synchronization code list, and then the individual synchronization code of the individual job data. And inserting the individual job data into a data queue when the value is greater than the local synchronization code extracted from the client synchronization code list.
서버와 제1세션을 설정하는 제1세션통신부;
적어도 하나 이상의 클라이언트와 각각 제2세션을 설정하는 제2세션통신부; 및
제2세션을 설정할 클라이언트정보를 포함하는 클라이언트정보리스트를 제1세션을 통해 서버로부터 수신하고, 공동작업데이터를 제1세션을 통해 서버와 송수신하고, 상기 제2세션통신부를 통해 상기 각 클라이언트와 개별작업데이터를 송수신하는 제어부;를 포함하는, 복수의 세션을 이용한 공동작업 시스템.A client-server system in which at least two user terminals connect to a server and perform collaboration on one object,
A first session communication unit configured to establish a first session with the server;
A second session communication unit configured to respectively establish a second session with at least one client; And
Receive a client information list including client information for establishing a second session from the server through the first session, send and receive collaborative data with the server through the first session, and individually with the respective clients through the second session communication unit. And a control unit configured to transmit and receive job data.
상기 제1세션통신부는 TCP프로토콜을 사용하고,
상기 제2세션통신부는 UDP프로토콜을 사용하는 것을 특징으로 하는, 복수의 세션을 이용한 공동작업 시스템.The method of claim 12,
The first session communication unit uses a TCP protocol,
The second session communication unit, characterized in that using the UDP protocol, a collaboration system using a plurality of sessions.
상기 클라이언트정보리스트는 적어도 하나 이상의 클라이언트 IP주소를 포함하는 것을 특징으로 하는, 복수의 세션을 이용한 공동작업 시스템.The method of claim 12,
And the client information list comprises at least one client IP address.
상기 제어부는,
상기 제1세션통신부를 통해 서버로부터 서버동기화코드가 포함된 공동작업데이터를 수신하고 상기 공동작업데이터로부터 서버동기화코드를 추출하여 동기화코드저장부에 저장된 로컬동기화코드를 갱신하고, 상기 제1세션통신부를 통해 서버에 공동작업데이터를 송신하고,
상기 제2세션통신부를 통해 상기 각 클라이언트에 상기 동기화코드저장부에 저장된 로컬동기화코드를 개별동기화코드로서 포함하는 개별작업데이터를 송신하고, 상기 제2세션통신부를 통해 상기 각 클라이언트로부터 개별동기화코드를 포함하는 개별작업데이터를 수신하고,
동기화코드저장부에 저장된 로컬동기화코드와 일치하지 않는 개별동기화코드를 포함한 개별작업데이터를 데이터큐에 삽입하고, 상기 데이터큐로부터 로컬동기화코드와 일치하는 개별동기화코드를 포함한 개별작업데이터를 추출하는 것을 특징으로 하는, 복수의 세션을 이용한 공동작업 시스템.The method of claim 12,
The control unit,
Receiving the collaboration data including the server synchronization code from the server through the first session communication unit, extracts the server synchronization code from the collaboration data to update the local synchronization code stored in the synchronization code storage unit, the first session communication unit Send collaborative data to the server via
Sending individual job data including the local synchronization code stored in the synchronization code storage unit as the individual synchronization code to the respective client through the second session communication unit, and receiving the individual synchronization code from each client through the second session communication unit. Receive individual job data,
Inserting individual operation data including individual synchronization codes that do not match the local synchronization code stored in the synchronization code storage unit into the data queue, and extracting individual operation data including individual synchronization codes that match the local synchronization codes from the data queue. A collaboration system using a plurality of sessions, characterized in.
상기 서버동기화코드, 로컬동기화코드 및 개별동기화코드는 대소비교 가능한 문자값인 것을 특징으로 하는, 복수의 세션을 이용한 공동작업 시스템.16. The method of claim 15,
The server synchronization code, the local synchronization code and the individual synchronization code is characterized in that large and comparable character value, collaboration system using a plurality of sessions.
상기 제어부는, 동기화코드저장부에 저장된 로컬동기화코드보다 큰 개별동기화코드를 포함한 개별작업데이터를 데이터큐에 삽입하는 것을 특징으로 하는, 복수의 세션을 이용한 공동작업 시스템.The method of claim 16,
And the control unit inserts individual operation data including an individual synchronization code larger than the local synchronization code stored in the synchronization code storage unit into the data queue.
상기 제어부는,
상기 제1세션통신부를 통해 서버로부터 서버동기화코드를 수신하고, 상기 서버동기화코드로써 동기화코드저장부에 저장된 로컬동기화코드를 갱신하고,
제어부가 상기 제2세션통신부를 통해 상기 각 클라이언트에 상기 동기화코드저장부에 저장된 로컬동기화코드를 개별동기화코드로서 포함하는 개별작업데이터를 송신하고, 상기 제2세션통신부를 통해 상기 각 클라이언트로부터 개별동기화코드를 포함하는 개별작업데이터를 수신하고,
동기화코드저장부에 저장된 로컬동기화코드와 일치하지 않는 개별동기화코드를 포함한 개별작업데이터를 데이터큐에 삽입하고, 상기 데이터큐로부터 로컬동기화코드와 일치하는 개별동기화코드를 포함한 개별작업데이터를 추출하는 것을 특징으로 하는, 복수의 세션을 이용한 공동작업 시스템.The method of claim 12,
The control unit,
Receive a server synchronization code from the server through the first session communication unit, and updates the local synchronization code stored in the synchronization code storage unit with the server synchronization code,
The control unit transmits the individual operation data including the local synchronization code stored in the synchronization code storage unit as the individual synchronization code to the respective client through the second session communication unit, and the individual synchronization from the client through the second session communication unit. Receive individual job data, including code,
Inserting individual operation data including individual synchronization codes that do not match the local synchronization code stored in the synchronization code storage unit into the data queue, and extracting individual operation data including individual synchronization codes that match the local synchronization codes from the data queue. A collaboration system using a plurality of sessions, characterized in.
상기 제어부는,
상기 제1세션통신부를 통해 서버로부터 적어도 하나 이상의 클라이언트의 로컬동기화코드를 포함하는 클라이언트동기화코드리스트를 수신하고, 상기 클라이언트동기화코드리스트를 동기화코드저장부에 저장하고, 동기화코드저장부에 저장된 로컬동기화코드를 변경하고, 상기 제1세션통신부를 통해 서버에 상기 로컬동기화코드를 송신하고,
상기 제2세션통신부를 통해 상기 각 클라이언트에 상기 동기화코드저장부에 저장된 로컬동기화코드를 개별동기화코드로서 포함하는 개별작업데이터를 송신하고, 상기 제2세션통신부를 통해 상기 각 클라이언트로부터 개별동기화코드를 포함하는 개별작업데이터를 수신하고,
제어부가 상기 개별작업데이터에 포함된 개별동기화코드를 추출하고, 상기 개별작업데이터를 송신한 클라이언트의 로컬동기화코드를 클라이언트동기화코드리스트에서 추출하여 이들이 일치하지 않는 경우 상기 개별작업데이터를 데이터큐에 삽입하고, 상기 데이터큐에 삽입된 개별작업데이터의 개별동기화코드를 추출하고 상기 개별작업데이터를 송신한 클라이언트의 로컬동기화코드를 클라이언트동기화코드리스트에서 추출하여 이들이 일치하는 개별작업데이터를 데이터큐로부터 추출하는 것을 특징으로 하는, 복수의 세션을 이용한 공동작업 시스템.The method of claim 12,
The control unit,
Receive a client synchronization code list including the local synchronization code of at least one client from the server through the first session communication unit, and stores the client synchronization code list in the synchronization code storage, the local synchronization stored in the synchronization code storage Change the code, and transmit the local synchronization code to the server through the first session communication unit;
Sending individual job data including the local synchronization code stored in the synchronization code storage unit as the individual synchronization code to the respective client through the second session communication unit, and receiving the individual synchronization code from each client through the second session communication unit. Receive individual job data,
The control unit extracts the individual synchronization codes included in the individual job data, extracts the local synchronization code of the client that sent the individual job data from the client synchronization code list, and inserts the individual job data into the data queue if they do not match. Extracting the individual synchronization codes of the individual job data inserted into the data queue, extracting local synchronization codes of the client that sent the individual job data from the client synchronization code list, and extracting individual job data matching them from the data queue; A collaboration system using a plurality of sessions, characterized in that.
상기 제어부는,
제1세션통신부가 서버와 제1세션을 설정한 후 동기화코드저장부에 저장된 로컬동기화코드를 초기화하는 것을 특징으로 하는, 복수의 세션을 이용한 공동작업 시스템.The method of claim 19,
The control unit,
And a first session communication unit initializing the local synchronization code stored in the synchronization code storage unit after establishing the first session with the server.
제어부는, 상기 데이터큐에 삽입된 개별작업데이터 중에서 임의의 클라이언트로부터 수신한 개별작업데이터의 개수가 한계누적데이터수 이상인 경우, 상기 데이터큐에서 상기 클라이언트로부터 수신한 개별작업데이터를 삭제하고, 제2세션통신부를 통해 상기 클라이언트에 제1세션재설정요청을 송신하고,
제1세션통신부는, 제2세션통신부를 통해 임의의 클라이언트로부터 제1세션재설정요청을 수신하는 경우, 서버와 제1세션을 종료하고 서버와 제1세션을 다시 설정하는 것을 특징으로 하는, 복수의 세션을 이용한 공동작업 시스템.The method of claim 19,
The control unit deletes the individual job data received from the client in the data queue when the number of individual job data received from any client among the individual job data inserted into the data queue is greater than or equal to the limit cumulative data. Send a first session reset request to the client through a session communication unit;
When the first session communication unit receives the first session reset request from any client through the second session communication unit, the first session communication unit terminates the first session with the server and resets the server and the first session. Session collaboration system.
상기 서버동기화코드, 로컬동기화코드 및 개별동기화코드는 대소비교 가능한 문자값인 것을 특징으로 하고,
상기 제어부는,
동기화코드저장부에 저장된 로컬동기화코드를 증가시켜 갱신하고,
클라이언트로부터 수신한 개별작업데이터에 포함된 개별동기화코드를 추출하고, 상기 개별작업데이터를 송신한 클라이언트의 로컬동기화코드를 클라이언트동기화코드리스트에서 추출하여, 상기 개별작업데이터의 개별동기화코드가 상기 클라이언트동기화코드리스트에서 추출된 로컬동기화코드보다 큰 경우, 상기 개별작업데이터를 데이터큐에 삽입하는 것을 특징으로 하는, 복수의 세션을 이용한 공동작업 시스템.The method of claim 19,
The server synchronization code, local synchronization code and individual synchronization code is characterized in that the character value can be compared large and small,
The control unit,
Update by increasing the local sync code stored in the sync code storage,
The individual synchronization code included in the individual job data received from the client is extracted, and the local synchronization code of the client that has sent the individual job data is extracted from the client synchronization code list, so that the individual synchronization code of the individual job data is synchronized with the client. And, if larger than the local synchronization code extracted from the code list, inserting the individual work data into a data queue.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020100005843A KR101108028B1 (en) | 2010-01-22 | 2010-01-22 | Method and system for interactive collaboration using multiple session. |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020100005843A KR101108028B1 (en) | 2010-01-22 | 2010-01-22 | Method and system for interactive collaboration using multiple session. |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20110086227A true KR20110086227A (en) | 2011-07-28 |
KR101108028B1 KR101108028B1 (en) | 2012-01-25 |
Family
ID=44922664
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020100005843A KR101108028B1 (en) | 2010-01-22 | 2010-01-22 | Method and system for interactive collaboration using multiple session. |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101108028B1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101304663B1 (en) * | 2011-08-29 | 2013-09-06 | (주)마인드메이플코리아 | The system of cooperative editing of mind-map and the method thereof |
KR101491692B1 (en) * | 2013-12-23 | 2015-02-11 | 주식회사 시큐아이 | Security device managing multi session and operating method thereof |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20000063196A (en) * | 2000-05-08 | 2000-11-06 | 천두배 | Method of load distribution for video/audio meeting(chatting) with multiple users |
KR20030039970A (en) * | 2001-11-16 | 2003-05-22 | 주식회사 해피투웨어 | Business method for designing a garment by co-workers in the cyber space and computer readable medium having stored thereon computer executable instruction for performing the same |
KR100942694B1 (en) * | 2006-12-04 | 2010-02-16 | 한국전자통신연구원 | Co-operating apparatus using Peer to Peer and method thereof |
US8010487B2 (en) * | 2008-06-27 | 2011-08-30 | Microsoft Corporation | Synchronization and collaboration within peer-to-peer and client/server environments |
-
2010
- 2010-01-22 KR KR1020100005843A patent/KR101108028B1/en active IP Right Grant
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101304663B1 (en) * | 2011-08-29 | 2013-09-06 | (주)마인드메이플코리아 | The system of cooperative editing of mind-map and the method thereof |
KR101491692B1 (en) * | 2013-12-23 | 2015-02-11 | 주식회사 시큐아이 | Security device managing multi session and operating method thereof |
Also Published As
Publication number | Publication date |
---|---|
KR101108028B1 (en) | 2012-01-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3211852A1 (en) | Ssh protocol-based session parsing method and system | |
JP5854048B2 (en) | COMMUNICATION SYSTEM, TRANSFER NODE, CONTROL DEVICE, COMMUNICATION CONTROL METHOD, AND PROGRAM | |
JP2005530367A (en) | System and method for delivering a data stream of multiple data types at different priority levels | |
CN108881158A (en) | Data interaction system and method | |
CN103780610A (en) | Network data recovery method based on protocol characteristics | |
EP2833585B1 (en) | Communication system, upper layer switch, control device, switch control method, and program | |
JP2014531786A (en) | Method for flow control in a collaborative environment and for reliable communication | |
EP3142306A1 (en) | Openflow communication method, system, controller, and service gateway | |
JP5913258B2 (en) | Relay device and data transfer method | |
CN107666474B (en) | Network message processing method and device and network server | |
JP5163398B2 (en) | Packet identification program, packet identification method, packet identification apparatus, and control program | |
KR101108028B1 (en) | Method and system for interactive collaboration using multiple session. | |
CN103347075A (en) | Multi-level data cache processing method | |
JP6994110B2 (en) | Data distribution method and distribution server | |
CN102413054A (en) | Method, device and system for controlling data traffic as well as gateway equipment and switchboard equipment | |
GB2592315A (en) | Methods and systems for sending packets through a plurality of tunnels | |
CN108769291A (en) | A kind of message processing method, device and electronic equipment | |
CN210380899U (en) | MQTT publish-subscribe system based on hardware | |
JP2016174268A (en) | Network system, network system control method, communication device and program | |
CN105072057B (en) | A kind of intermediate switching equipment and its method and system for network data transmission | |
US9485189B2 (en) | Transfer device, and transfer method | |
CN115277649A (en) | Method and device for collaboratively editing document in multimedia conference scene | |
CN108418853A (en) | A kind of real-time communication method and system based on cloud computing | |
Ko et al. | Overcoming large data transfer bottlenecks in restful service orchestrations | |
CN107749809B (en) | ATCA integration-based high-efficiency dynamic convergence mechanism implementation method and system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20141022 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20160112 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20181030 Year of fee payment: 8 |
|
FPAY | Annual fee payment |
Payment date: 20191029 Year of fee payment: 9 |