KR20110086227A - Method and system for interactive collaboration using multiple session - Google Patents

Method and system for interactive collaboration using multiple session Download PDF

Info

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
Application number
KR1020100005843A
Other languages
Korean (ko)
Other versions
KR101108028B1 (en
Inventor
차경민
Original Assignee
차경민
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 차경민 filed Critical 차경민
Priority to KR1020100005843A priority Critical patent/KR101108028B1/en
Publication of KR20110086227A publication Critical patent/KR20110086227A/en
Application granted granted Critical
Publication of KR101108028B1 publication Critical patent/KR101108028B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office 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

PURPOSE: A group work method using a plurality of sessions and a system thereof are provided to minimize the network load of a server using the plurality of sessions when a plurality of clients performs a group work on the network. CONSTITUTION: If a client is connected to a server, the server forms a first session with the first session communication unit of the client(S401). The sever transmits a list of clients participating in a group work through the first session to the client(S411). The client sets up a second session with the second session communication unit of all clients included in the client list through the second session communication unit(S421). The server and the client transmit and receive group work data through the first session(S431).

Description

복수의 세션을 이용한 공동작업 방법 및 그 시스템 {Method and system for interactive collaboration using multiple session.}Collaboration method using multiple sessions and system thereof {Method and system for interactive collaboration using multiple session.}

본 발명은 공동작업 방법 및 그 시스템에 관한 것으로, 보다 상세하게는 다수의 클라이언트가 하나의 서버에 접속하여 하나의 작업을 공동으로 수행하기 위한 방법 및 그 시스템에 관한 것이다.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 session communication unit 111 for establishing a first session with a server, and a second session communication unit for establishing a second session with at least one or more clients ( 121) and a client information list including client information for establishing a second session from the server through the first session, transmitting and receiving the collaborative data with the server through the first session, and transmitting the data through the second session communication unit. A control unit 131 for transmitting and receiving individual work data with each client, and a synchronization code storage unit 141 for storing a local synchronization code or a client synchronization code list.

본 발명에서 각 클라이언트(102)는 서버(101)와 네트워크를 통해 접속되고, 서버에서 제공하는 공동작업 서비스를 수행한다. 서버(101)는 공동작업 서비스를 제공하는 웹서버, 파일서버 또는 데이터베이스서버를 포함할 수 있다. 공동작업 서비스라 함은 다수의 클라이언트가 하나의 문서작업을 진행하는 서비스, 하나의 이미지파일을 생성하기 위한 서비스, 하나의 영상파일을 생성하기 위한 서비스를 포함하여, 문자/영상/음성 객체를 생성하고 편집하는 모든 서비스를 일컫는다.In the present invention, each client 102 is connected to the server 101 via a network, and performs a collaboration service provided by the server. The server 101 may include a web server, a file server or a database server that provides a collaboration service. Collaboration service refers to a text / video / audio object, including a service in which a plurality of clients work on one document, a service for generating an image file, and a service for generating an image file. And any service that you edit.

클라이언트는 일반적으로 통신의 단말기 역할을 할 수 있는 모든 전자단말기로서 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 session communication unit 111, a second session communication unit 121, a control unit 131, and a synchronization code storage unit 141, each of which is an application running on an OS. Or may be a module.

제1세션통신부(111) 및 제2세션통신부는 서버(101)와 네트워크 통신을 할 수 있는 모듈인데, 특히 제1세션통신부는 TCP 프로토콜을 이용하여 서버(101)와 전달이 보장되는 데이터를 송수신하고 제2세션통신부는 UDP 프로토콜을 이용하여 각 클라이언트(102)와 실시간성이 보장되는 데이터를 송수신한다.The first session communication unit 111 and the second session communication unit are modules capable of network communication with the server 101. In particular, the first session communication unit transmits and receives data guaranteed to be transmitted to the server 101 using the TCP protocol. The second session communication unit transmits / receives data with guaranteed real-time with each client 102 using the UDP protocol.

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 session communication unit 111 sets up the first session with the server 101 in the client 102, and the second session communication unit 121 sets the second session communication unit of the other client 102 in each client 102. A second session is set at 121. The controller 131 processes data received through the first session communication unit 111 and the second session communication unit 121, and stores and manages a local synchronization code or a client synchronization code list in the synchronization code storage unit 141. And synchronizes the collaborative work data transmitted and received through the first session communication unit 111 and the individual work data transmitted and received through the second session communication unit 121.

위에서 설명된 바와 같이, 속도보다는 전송승인에 초점을 맞춘 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 client 102 establishes a first session with the server 101 through the first session communication unit 111, in which the structure of the communication network is one server 101 as described in FIG. Each client 102 is connected in a 1: N structure.

도 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 client 102 is connected to each client through the second session communication unit 121 to perform a collaborative work with the second session, wherein the structure of the communication network is n clients as described in FIG. If there is a total of n (n-1) / 2 sessions, every client is directly connected to every other client.

도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 client 102 is connected to the server 101 in order to perform the collaboration according to the present invention, the server 101 establishes a first session with the first session communication unit 111 of the client 102. (S401). The server 101 transmits the client list participating in the collaboration through the first session (S411), and the client 102, which has received it, receives all of the clients included in the client list through the second session communication unit 121. A second session is established with the second session communication unit 121 of the client (S421). At this time, the client list may include an identification number for recognizing other client terminals on the network, including the IP address of each client.

이렇게 서버(101)와 각 클라이언트(102)가 제1세션 및 제2세션을 통해 네트워크 연결되면, 서버(101)와 클라이언트(102)는 제1세션을 통해 공동작업데이터를 송수신하고, 각 클라이언트(102)끼리는 제2세션을 통해 개별작업데이터를 송수신한다(S431).When the server 101 and each client 102 are connected to the network through the first session and the second session, the server 101 and the client 102 transmit and receive collaborative data through the first session. 102) each other transmits and receives individual work data through the second session (S431).

도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 server 101 to synchronize the cooperative data transmitted and received through the first session and the individual work data transmitted and received through the second session.

서버(101)는 공동작업의 진행정도에 따라 서버동기화코드를 관리한다. 예를 들어, 처음 공동작업이 생성되면 서버동기화코드를 “1”로 설정하고, 각 클라이언트로부터 객체생성/편집/삭제 과정이 있을 때마다 그 서버동기화코드를 “2”, “3”, “4”와 같이 단계적으로 갱신하여 이를 클라이언트에 전송한다(S510). 이 때, 서버동기화코드는 제1세션을 통해 클라이언트(102)로 전송되는데, 공동작업데이터에 서버동기화코드를 포함하여 전송하고, 클라이언트(102)에서는 상기 수신한 공동작업데이터에서 서버동기화코드를 추출할 수도 있고, 상기 서버동기화코드만을 클라이언트(102)에 직접 전송할 수도 있다.The server 101 manages the server synchronization code according to the progress of the collaboration. For example, the first time a collaboration is created, set the server synchronization code to “1”, and set the server synchronization code to “2”, “3”, “4 whenever there is an object creation / editing / deleting process from each client. Update step by step as shown in ”and transmit it to the client (S510). At this time, the server synchronization code is transmitted to the client 102 through the first session, including the server synchronization code in the collaborative data, and the client 102 extracts the server synchronization code from the received collaborative data. Alternatively, only the server synchronization code may be directly transmitted to the client 102.

각 클라이언트(102)는 상기 수신한 서버동기화코드를 동기화코드저장부(141)에 로컬동기화코드로서 저장하거나, 이미 동기화코드저장부(141)에 저장되어 있는 로컬동기화코드를 갱신할 수 있다(S511). 로컬동기화코드로 저장된 값은 현재 공동작업이 어느정도 진행되고 있는지 저장하는 역할도 하고, 이전에 한 작업과 다른 작업을 진행하고 있다는 사정을 구별하여 제2세션을 통해 수신되는 개별작업데이터를 관리하는 데 판단의 근거로서 역할을 한다.Each client 102 may store the received server synchronization code as a local synchronization code in the synchronization code storage unit 141, or update the local synchronization code already stored in the synchronization code storage unit 141 (S511). ). The value stored as the local synchronization code is used to store how much work is currently being done, and to manage the individual work data received through the second session by distinguishing the situation that the work is being performed differently from the previous work. It serves as a basis for judgment.

각 클라이언트에서 개별작업데이터를 생성하여 다른 각 클라이언트(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 other client 102, the local synchronization code is included in the individual work data (S521). Each client 102 receives the individual task data from the other client 102 (S531), extracts the individual synchronization code from the individual task data (S532), and the individual synchronization included in the individual task data transmitted from the other client. It is determined whether the code matches the local synchronization code stored in the synchronization code storage unit 141 (S541), and if it matches, the individual job data is processed (S580). It is inserted into the data queue (S590). At this time, the server synchronization code, the local synchronization code and the individual synchronization code is preferably a large and comparable character value, the local synchronization code contained in the individual operation data is stored in its own synchronization code storage unit 141 When determining whether the code matches, if the individual synchronization code included in the individual operation data is larger than the local synchronization code stored in its own synchronization code storage unit 141, the individual operation data is inserted into the data queue, In this case, the individual task data is processed. If the value is small, the individual task data may be data that is no longer valid over time, and it is preferable to ignore or discard it.

그리고, 상기 데이터큐는 개별작업데이터를 메모리 상에서 효율적으로 저장할 수 있는 데이터구조로서 구현되는 것이 바람직하며, 특히, 작업의 특성상 선입선출구조인 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 controller 131 preferably checks the individual job data accumulated in the data queue periodically and performs the following process. If there is individual work data that matches all of the local sync codes stored in the own sync code storage unit 141 by extracting all the individual sync codes of the individual work data stored in the data queue (S601), extracting and deleting them from the data queue. (S611), the individual job data is processed (S680). The server periodically updates the server synchronization code and transmits it to the client according to the progress of the work, so that each client updates the local synchronization code. As described above, the controller 131 periodically checks the data queue and accumulates the individual work data. You need to handle

도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 client 102 is synchronized with the server to synchronize the collaborative data transmitted and received through the first session and the individual work data transmitted and received through the second session. The data is collected and made into a client synchronization code list and transmitted to each client 102, and each client stores the client synchronization code list in the synchronization code storage unit 141 for use in determining whether to process individual work data.

우선 클라이언트(102)의 제어부(131)가 자신의 작업진행정도에 따라 동기화코드저장부(141)에 저장된 로컬동기화코드를 갱신하고(S701), 이를 제1세션통신부(111)를 통해 서버(101)에 송신한다(S702). 서버(101)는 각 클라이언트로부터 수신한 여러 개의 로컬동기화코드를 클라이언트동기화코드리스트로 구성하고 이를 각 클라이언트에 제1세션을 통해 전송한다(S703). 제1세션을 통해 클라이언트동기화코드리스트를 수신한 제어부(131)는(S710) 상기 클라이언트동기화코드리스트를 동기화코드저장부(141)에 저장 또는 갱신한다(S711).First, the control unit 131 of the client 102 updates the local synchronization code stored in the synchronization code storage unit 141 according to the progress of its work (S701), and the server 101 through the first session communication unit 111. (S702). The server 101 configures a plurality of local synchronization codes received from each client into a client synchronization code list and transmits them to each client through a first session (S703). The controller 131 receiving the client synchronization code list through the first session (S710) stores or updates the client synchronization code list in the synchronization code storage unit 141 (S711).

도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 client 102 is configured to include the local synchronization code stored in its synchronization code storage unit 141 in the individual operation data to send the individual operation data generated by the client to the other client, and the individual operation data Send to all other clients 102 that are collaborating together via two sessions.

상기 개별작업데이터를 수신(S831)한 각 클라이언트(102)의 제어부(131)는 개별작업데이터로부터 개별동기화코드를 추출하고(S832), 자신의 동기화코드저장부(141)에 저장된 클라이언트동기화코드리스트로부터 상기 개별작업데이터를 송신한 클라이언트의 로컬동기화코드와 상기 전송받은 개별동기화코드가 일치하는지 판단하여(S841), 일치하는 경우 개별작업데이터를 처리하고(S880), 일치하지 않는 경우 데이터큐에 상기 개별작업데이터를 삽입한다(S890).The control unit 131 of each client 102 that has received the individual job data (S831) extracts an individual synchronization code from the individual job data (S832), and the client synchronization code list stored in its synchronization code storage unit 141. It is determined whether the local synchronization code of the client that has sent the individual job data and the received individual synchronization code match (S841). If there is a match, the individual job data is processed (S880). Insert the individual job data (S890).

도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 controller 131 preferably checks the individual job data accumulated in the data queue periodically and performs the following process. Extract all the individual synchronization codes of the individual job data stored in the data queue, and determine whether the local synchronization codes of the clients that have sent the individual job data are matched in the client synchronization code list stored in the own synchronization code storage unit 141. (S901), if there is a match, it is extracted and deleted from the data queue (S911), and the corresponding individual job data is processed (S980). Each client periodically sends a local synchronization code to the server according to the progress of the operation, and the server updates the client synchronization code list and transmits the client synchronization code list to the client at each time, so that each client updates the client synchronization code list. 131 periodically checks the data queue and needs to process the accumulated individual work data.

도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 control unit 131 of each client periodically checks the data queue, and determines whether the number of individual job data received from any client in the data queue exceeds the limit cumulative data number (S1001). All the individual job data is deleted (S1011), and the first session reset request is sent to the corresponding client in which the number of individual job data accumulated in the data queue through the second session exceeds the limit cumulative data number (S1020). The controller 131 of the client, which has received the first session reset request from a client, resets the first session with the server 101 through its first session communication unit 111. At this time, the limit cumulative data number may be a value arbitrarily set by the administrator or the server 101 or the user with reference to the size of the physical memory, the size of the data packet and the size of the individual work data, and is stored in the memory of the client. .

예를 들어, 한계누적데이터수가 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항에 있어서,
상기 제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.
제1항에 있어서,
상기 클라이언트정보리스트는 적어도 하나 이상의 클라이언트 IP주소를 포함하는 것을 특징으로 하는, 복수의 세션을 이용한 공동작업 방법.
The method of claim 1,
And the client information list comprises at least one client IP address.
제1항에 있어서,
상기 (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.
제4항에 있어서,
상기 서버동기화코드, 로컬동기화코드 및 개별동기화코드는 대소비교 가능한 문자값인 것을 특징으로 하는, 복수의 세션을 이용한 공동작업 방법.
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.
제5항에 있어서,
상기 (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.
제1항에 있어서,
상기 (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.
제1항에 있어서,
상기 (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.
제8항에 있어서,
상기 (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.
제8항에 있어서,
제어부가 상기 데이터큐에 삽입된 개별작업데이터 중에서 임의의 클라이언트로부터 수신한 개별작업데이터의 개수가 한계누적데이터수 이상인 경우, 상기 데이터큐에서 상기 클라이언트로부터 수신한 개별작업데이터를 삭제하고, 제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.
제8항에 있어서,
상기 서버동기화코드, 로컬동기화코드 및 개별동기화코드는 대소비교 가능한 문자값인 것을 특징으로 하고,
상기 (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.
제12항에 있어서,
상기 제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.
제12항에 있어서,
상기 클라이언트정보리스트는 적어도 하나 이상의 클라이언트 IP주소를 포함하는 것을 특징으로 하는, 복수의 세션을 이용한 공동작업 시스템.
The method of claim 12,
And the client information list comprises at least one client IP address.
제12항에 있어서,
상기 제어부는,
상기 제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.
제15항에 있어서,
상기 서버동기화코드, 로컬동기화코드 및 개별동기화코드는 대소비교 가능한 문자값인 것을 특징으로 하는, 복수의 세션을 이용한 공동작업 시스템.
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.
제16항에 있어서,
상기 제어부는, 동기화코드저장부에 저장된 로컬동기화코드보다 큰 개별동기화코드를 포함한 개별작업데이터를 데이터큐에 삽입하는 것을 특징으로 하는, 복수의 세션을 이용한 공동작업 시스템.
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.
제12항에 있어서,
상기 제어부는,
상기 제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.
제12항에 있어서,
상기 제어부는,
상기 제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.
제19항에 있어서,
상기 제어부는,
제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.
제19항에 있어서,
제어부는, 상기 데이터큐에 삽입된 개별작업데이터 중에서 임의의 클라이언트로부터 수신한 개별작업데이터의 개수가 한계누적데이터수 이상인 경우, 상기 데이터큐에서 상기 클라이언트로부터 수신한 개별작업데이터를 삭제하고, 제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.
제19항에 있어서,
상기 서버동기화코드, 로컬동기화코드 및 개별동기화코드는 대소비교 가능한 문자값인 것을 특징으로 하고,
상기 제어부는,
동기화코드저장부에 저장된 로컬동기화코드를 증가시켜 갱신하고,
클라이언트로부터 수신한 개별작업데이터에 포함된 개별동기화코드를 추출하고, 상기 개별작업데이터를 송신한 클라이언트의 로컬동기화코드를 클라이언트동기화코드리스트에서 추출하여, 상기 개별작업데이터의 개별동기화코드가 상기 클라이언트동기화코드리스트에서 추출된 로컬동기화코드보다 큰 경우, 상기 개별작업데이터를 데이터큐에 삽입하는 것을 특징으로 하는, 복수의 세션을 이용한 공동작업 시스템.
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.
KR1020100005843A 2010-01-22 2010-01-22 Method and system for interactive collaboration using multiple session. KR101108028B1 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (2)

* Cited by examiner, † Cited by third party
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