KR101108028B1 - 복수의 세션을 이용한 공동작업 방법 및 그 시스템 - Google Patents

복수의 세션을 이용한 공동작업 방법 및 그 시스템 Download PDF

Info

Publication number
KR101108028B1
KR101108028B1 KR1020100005843A KR20100005843A KR101108028B1 KR 101108028 B1 KR101108028 B1 KR 101108028B1 KR 1020100005843 A KR1020100005843 A KR 1020100005843A KR 20100005843 A KR20100005843 A KR 20100005843A KR 101108028 B1 KR101108028 B1 KR 101108028B1
Authority
KR
South Korea
Prior art keywords
client
session
server
data
delete delete
Prior art date
Application number
KR1020100005843A
Other languages
English (en)
Other versions
KR20110086227A (ko
Inventor
차경민
Original Assignee
차경민
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 차경민 filed Critical 차경민
Priority to KR1020100005843A priority Critical patent/KR101108028B1/ko
Publication of KR20110086227A publication Critical patent/KR20110086227A/ko
Application granted granted Critical
Publication of KR101108028B1 publication Critical patent/KR101108028B1/ko

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

본 발명은 복수의 세션을 이용한 공동작업 방법 및 그 시스템에 관한 것이다. 본 발명은 적어도 둘 이상의 사용자 단말기가 서버에 접속하여 하나의 객체에 대한 공동작업을 실행하는 클라이언트-서버 시스템에 있어서, 제1세션통신부가 서버와 제1세션을 설정하는 단계, 제어부가 제1세션을 통해 서버로부터 클라이언트정보리스트를 수신하는 단계, 제2세션통신부가 클라이언트정보리스트에 포함된 적어도 하나 이상의 클라이언트와 각각 제2세션을 설정하는 단계, 제어부가 제1세션통신부를 통해 서버와 공동작업데이터를 송수신하는 단계, 및 제어부가 제2세션통신부를 통해 각 클라이언트와 개별작업데이터를 송수신하는 단계를 포함한다.

Description

복수의 세션을 이용한 공동작업 방법 및 그 시스템 {Method and system for interactive collaboration using multiple session.}
본 발명은 공동작업 방법 및 그 시스템에 관한 것으로, 보다 상세하게는 다수의 클라이언트가 하나의 서버에 접속하여 하나의 작업을 공동으로 수행하기 위한 방법 및 그 시스템에 관한 것이다.
본 발명은 공동작업 방법 및 그 시스템에 관한 것이다.
최근, 기업의 전산시스템이 인터넷 웹(Internet Web) 환경하에서의 클라이언트/서버(Clients/Server) 구조 및 통합시스템(Integrated System) 형태로 급속히 전환되고 있으며, 인트라넷(Intranet)이 기업의 정보처리 시스템의 기반환경으로 자리잡게 되면서, 조직내부, 조직간 또는 기업간 공동으로 프로젝트의 수행 및 업무처리의 시간적, 공간적, 자원적인 효율에 대한 관심과 활동의 필요성이 대두되어 온라인상에서 공동으로 업무를 수행하는 “협업”의 비중이 높아지고 있다.
기업의 전산시스템 뿐만 아니라, 다양한 형태의 소셜네트워크 서비스가 활성화되면서 다수의 클라이언트가 하나의 서비스 내에서 공동작업을 행하는 경우가 많아지고 있다.
그런데, 공동작업의 특성상 각 클라이언트 사용자의 작업명령 및 조작데이터를 실시간으로 모든 클라이언트가 공유해야할 필요성이 있는데, 기존의 클라이언트/서버 구조에서는 이를 구현하기 위해 과도한 데이터가 서버로 집중되고 다시 모든 클라이언트로 중계하여야 해서, 이런 트래픽을 처리하기 위해 서버측에서 과도한 하드웨어 및 네트워크 비용이 들고, 또한 서버측에 데이터 병목현상이 생기는 문제점이 있다.
본 발명의 목적은 네트워크상에서 다수의 클라이언트가 공동작업을 행할 때 복수의 세션을 이용하여 서버측의 네트워크 부하를 최소화하는 효율적인 방법 및 시스템을 제공하는 데에 있다.
또한, 본 발명의 다른 목적은 네트워크상에서 다수의 클라이언트가 공동작업을 행할 때 복수의 세션을 이용하면서 서버측에서 전송한 동기화코드를 클라이언트간 송수신하는 데이터에 부가하여 세션간 동기화기능을 포함하는 방법 및 시스템을 제공하는 데에 있다.
또한, 본 발명의 또 다른 목적은 네트워크상에서 다수의 클라이언트가 공동작업을 행할 때 복수의 세션을 이용하면서 각 클라이언트의 동기화코드를 서버를 통해 공유하고 또한 상기 동기화코드를 클라이언트간 송수신하는 데이터에 부가하여 세션간 동기화기능을 포함하는 방법 및 시스템을 제공하는 데에 있다.
상기한 바와 같은 목적을 달성하기 위한 본 발명의 특징에 따르면, 본 발명은 적어도 둘 이상의 사용자 단말기가 서버에 접속하여 하나의 객체에 대한 공동작업을 실행하는 클라이언트-서버 시스템에 있어서, 서버와 제1세션을 설정하는 제1세션통신부; 적어도 하나 이상의 클라이언트와 각각 제2세션을 설정하는 제2세션통신부; 및 제2세션을 설정할 클라이언트정보를 포함하는 클라이언트정보리스트를 제1세션을 통해 서버로부터 수신하고, 공동작업데이터를 제1세션을 통해 서버와 송수신하고, 상기 제2세션통신부를 통해 상기 각 클라이언트와 개별작업데이터를 송수신하는 제어부;를 포함하되, 상기 제어부는, 상기 제1세션통신부를 통해 서버로부터 서버동기화코드가 포함된 공동작업데이터를 수신하고 상기 공동작업데이터로부터 서버동기화코드를 추출하여 동기화코드저장부에 저장된 로컬동기화코드를 갱신하고, 상기 제1세션통신부를 통해 서버에 공동작업데이터를 송신하고, 상기 제2세션통신부를 통해 상기 각 클라이언트에 상기 동기화코드저장부에 저장된 로컬동기화코드를 개별동기화코드로서 포함하는 개별작업데이터를 송신하고, 상기 제2세션통신부를 통해 상기 각 클라이언트로부터 개별동기화코드를 포함하는 개별작업데이터를 수신하고, 동기화코드저장부에 저장된 로컬동기화코드와 일치하지 않는 개별동기화코드를 포함한 개별작업데이터를 데이터큐에 삽입하고, 상기 데이터큐로부터 로컬동기화코드와 일치하는 개별동기화코드를 포함한 개별작업데이터를 추출하는 것을 특징으로 하는, 복수의 세션을 이용한 공동작업 시스템.
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
위에서 설명한 바와 같은 본 발명에 따르면, 본 발명은 네트워크상에서 다수의 클라이언트가 공동작업을 행할 때 복수의 세션을 이용하여 서버측의 네트워크 부하를 최소화하는 효율적인 방법 및 시스템을 제공할 수 있다.
또한, 본 발명은 네트워크상에서 다수의 클라이언트가 공동작업을 행할 때 복수의 세션을 이용하면서 서버측에서 전송한 동기화코드를 클라이언트간 송수신하는 데이터에 부가하여 세션간 동기화기능을 포함하는 방법 및 시스템을 제공할 수 있다.
또한, 본 발명은 네트워크상에서 다수의 클라이언트가 공동작업을 행할 때 복수의 세션을 이용하면서 각 클라이언트의 동기화코드를 서버를 통해 공유하고 또한 상기 동기화코드를 클라이언트간 송수신하는 데이터에 부가하여 세션간 동기화기능을 포함하는 방법 및 시스템을 제공할 수 있다.
도 1은 본 발명의 바람직한 실시예에 따른 복수의 세션을 이용한 공동작업 시스템을 나타낸 도면이다.
도 2는 본 발명의 바람직한 실시예에 따른 복수의 세션을 이용한 공동작업 시스템이 서버와 각 클라이언트간 제1세션통신부를 통해 연결된 네트워크 모양을 나타낸 도면이다.
도 3은 본 발명의 바람직한 실시예에 따른 복수의 세션을 이용한 공동작업 시스템이 각 클라이언트간 제2세션통신부를 통해 연결된 네트워크 모양을 나타낸 도면이다.
도4는 본 발명의 바람직한 실시예에 따른 복수의 세션을 이용한 공동작업 방법에서 서버와 각 클라이언트들이 제1세션 및 제2세션을 설정하고 작업데이터를 송수신하기까지의 과정으로 나타낸 흐름도이다.
도5는 본 발명의 바람직한 제1실시예에 따른 복수의 세션을 이용한 공동작업 방법에서 서버로부터 동기화코드를 수신하여 동기화를 진행하는 과정을 나타낸 흐름도이다.
도6은 본 발명의 바람직한 제1실시예에 따른 복수의 세션을 이용한 공동작업 방법에서 데이터큐에 쌓인 개별작업데이터를 처리하는 과정을 나타낸 흐름도이다.
도7은 본 발명의 바람직한 제2실시예에 따른 복수의 세션을 이용한 공동작업 방법에서 각 클라이언트들이 동기화코드를 서버를 통해 중계받아 동기화를 진행하는 과정을 나타낸 흐름도이다.
도8은 본 발명의 바람직한 제2실시예에 따른 복수의 세션을 이용한 공동작업 방법에서 각 클라이언트들이 개별작업데이터를 처리하는 과정을 나타낸 흐름도이다.
도9는 본 발명의 바람직한 제2실시예에 따른 복수의 세션을 이용한 공동작업 방법에서 데이터큐에 쌓인 개별작업데이터를 처리하는 과정을 나타낸 흐름도이다.
도10은 본 발명의 바람직한 실시예에 따른 복수의 세션을 이용한 공동작업 방법에서 제1세션을 재설정하는 과정을 나타낸 흐름도이다.
기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다
이하, 본 발명의 실시예들에 의하여 복수의 세션을 이용한 공동작업 방법 및 그 시스템을 설명하기 위한 도면들을 참고하여 본 발명에 대해 설명하도록 한다.
도 1은 본 발명의 바람직한 실시예에 따른 복수의 세션을 이용한 공동작업 시스템을 나타낸 도면이다.
본 발명의 실시예에 따른 복수의 세션을 이용한 공동작업 시스템은, 서버와 제1세션을 설정하는 제1세션통신부(111), 적어도 하나 이상의 클라이언트와 각각 제2세션을 설정하는 제2세션통신부(121), 및 제2세션을 설정할 클라이언트정보를 포함하는 클라이언트정보리스트를 제1세션을 통해 서버로부터 수신하고, 공동작업데이터를 제1세션을 통해 서버와 송수신하고, 상기 제2세션통신부를 통해 상기 각 클라이언트와 개별작업데이터를 송수신하는 제어부(131), 및 로컬동기화코드 또는 클라이언트동기화코드리스트를 저장하는 동기화코드저장부(141)를 포함한다.
본 발명에서 각 클라이언트(102)는 서버(101)와 네트워크를 통해 접속되고, 서버에서 제공하는 공동작업 서비스를 수행한다. 서버(101)는 공동작업 서비스를 제공하는 웹서버, 파일서버 또는 데이터베이스서버를 포함할 수 있다. 공동작업 서비스라 함은 다수의 클라이언트가 하나의 문서작업을 진행하는 서비스, 하나의 이미지파일을 생성하기 위한 서비스, 하나의 영상파일을 생성하기 위한 서비스를 포함하여, 문자/영상/음성 객체를 생성하고 편집하는 모든 서비스를 일컫는다.
클라이언트는 일반적으로 통신의 단말기 역할을 할 수 있는 모든 전자단말기로서 PC, 스마트폰, IPTV, 컨텐츠TV 및 PDA 등을 포함할 수 있다.
본 발명에서 클라이언트 시스템은 제1세션통신부(111), 제2세션통신부(121), 제어부(131) 및 동기화코드저장부(141)를 포함할 수 있는데, 상기 각 구성요소는 OS 위에서 실행되는 어플리케이션 또는 모듈이 될 수 있다.
제1세션통신부(111) 및 제2세션통신부는 서버(101)와 네트워크 통신을 할 수 있는 모듈인데, 특히 제1세션통신부는 TCP 프로토콜을 이용하여 서버(101)와 전달이 보장되는 데이터를 송수신하고 제2세션통신부는 UDP 프로토콜을 이용하여 각 클라이언트(102)와 실시간성이 보장되는 데이터를 송수신한다.
TCP 프로토콜은 인터넷을 이루는 핵심 프로토콜의 하나로서 인터넷 엔지니어링 테스크 포스(IETF, Internet Engineering Task Force)의 RFC 793에 기술되어 있다. TCP는 IP 위에서 동작하는 프로토콜로 흔히 TCP/IP로 표기하며, 데이터의 전달을 보증하고 보낸 순서대로 받게 해 준다. TCP는 패킷의 교환을 근간으로 하는 인터넷 프로토콜(IP, Internet Protocol)을 기반으로 작동한다. 패킷은 해더과 바디로 구성된 바이트 단위의 짧은 신호이다. 해더는 데이터의 수신처에 대한 정보가 들어가며 바디에 전달할 데이터가 실린다. 패킷은 회선이 혼잡할 경우 IP 프로토콜에서 폐기될 수 있기 때문에 다른 경로를 가진 두 개의 라우터를 통해 수신처에 전달된다. TCP는 패킷의 폐기로 인해 잘못된 명령이 전달되더라도 어플리케이션으로부터 기반 패킷을 구성하여 폐기된 패킷을 다시 전달하도록 함으로써 네트워크 혼잡에 의한 피해를 최대한 줄이도록 구성되어 있다.
반면 UDP 프로토콜은 인터넷 프로토콜 스위트의 주요 프로토콜 가운데 하나이며, 1980년에 데이빗 리드가 설계하였고, 현재 IETF의 RFC 768로 표준으로 정의되어 있으며, TCP와 함께 데이터그램으로 알려진 단문 메시지를 교환하기 위해서 사용된다. UDP는 유니버설 데이터그램 프로토콜이라고 일컫기도 한다. UDP 프로토콜은 TCP보다 속도가 일반적으로 빠르고 오버헤드가 적지만 패킷의 순서를 보장하지 않고 전송승인 확인 기능이 없어, 실시간성이 보장되어야 하는 음성, 영상 데이터를 송수신하는 데 활용되는 특징이 있다.
하나의 캔버스 위에 다수의 클라이언트가 그림을 그리는 서비스와 같은 공동작업 서비스의 경우는 도형의 생성, 문자 데이터의 입력, 이미지 삽입, 음성데이터의 전송과 같이 모든 클라이언트가 반드시 공유되어야 하는 데이터를 처리하여야 한다. 이러한 데이터를 공동작업데이터라 한다면, 공동작업데이터는 공동작업데이터를 생성하려는 클라이언트가 제1세션을 통해 서버로 전송하고, 서버는 해당 캔버스를 공유하며 작업중인 모든 클라이언트에 중계 또는 전송하여야 한다.
그리고, 상기와 같은 공동작업 서비스에서는 마우스의 움직임과 같이 실시간성이 보장되어야 하지만 일부 유실되어도 공동작업에 치명적인 영향을 미치지 않는 데이터 또한 처리되어야 한다. 이러한 데이터를 개별작업데이터라 한다면, 개별작업데이터는 각 개별작업데이터를 생성하려는 클라이언트가 제2세션을 통해 해당 공동작업에 참여하고 있는 모든 클라이언트로 전송한다.
제1세션통신부(111)는 클라이언트(102)에서 이러한 제1세션을 서버(101)와 설정하고, 제2세션통신부(121)는 각 클라이언트(102)에서 다른 클라이언트(102)의 제2세션통신부(121)로 제2세션을 설정하게 된다. 제어부(131)는 상기 제1세션통신부(111) 및 제2세션통신부(121)를 통해 수신되는 데이터를 처리하고, 동기화코드저장부(141)에 로컬동기화코드 또는 클라이언트동기화코드리스트를 저장 및 관리하며 제1세션통신부(111)를 통해 송수신되는 공동작업데이터 및 제2세션통신부(121)를 통해 송수신되는 개별작업데이터를 동기화한다.
위에서 설명된 바와 같이, 속도보다는 전송승인에 초점을 맞춘 TCP 프로토콜과 전송을 보장하기보다는 속도를 높이고 오버헤드를 줄이는 특성을 가진UDP 프로토콜을 병용하는 데 있어서는, 각 프로토콜을 통해 송수신되는 데이터가 동기화되지 않을 가능성이 있기 때문에, 이를 위해서 아래에서 설명되는 것과 같은 동기화 과정을 포함하는 것이 바람직하다.
도 2는 본 발명의 바람직한 실시예에 따른 복수의 세션을 이용한 공동작업 시스템이 서버와 각 클라이언트간 제1세션통신부를 통해 연결된 네트워크 모양을 나타낸 도면이다.
본 발명에서 각 클라이언트(102)는 제1세션통신부(111)를 통해 서버(101)와 각각 제1세션을 설정하는데, 이 때 통신망의 구조는 도2에서 설명하는 바와 같이 하나의 서버(101)에 각 클라이언트(102)가 연결되는 1:N 구조로 연결된다.
도 3은 본 발명의 바람직한 실시예에 따른 복수의 세션을 이용한 공동작업 시스템이 각 클라이언트간 제2세션통신부를 통해 연결된 네트워크 모양을 나타낸 도면이다.
본 발명에서 각 클라이언트(102)는 제2세션통신부(121)를 통해 공동작업을 수행하는 각 클라이언트와 제2세션을 맺어 연결되는데, 이 때 통신망의 구조는 도3에서 설명하는 바와 같이 n개의 클라이언트가 있다면 총 n(n-1)/2 개의 세션으로서 모든 클라이언트는 다른 모든 클라이언트와 각각 직접연결된다.
도4는 본 발명의 바람직한 실시예에 따른 복수의 세션을 이용한 공동작업 방법에서 서버와 각 클라이언트들이 제1세션 및 제2세션을 설정하고 작업데이터를 송수신하기까지의 과정으로 나타낸 흐름도이다.
본 발명에 의한 공동작업을 수행하기 위해 하나의 클라이언트(102)가 서버(101)에 접속되면 이로서 서버(101)는 상기 클라이언트(102)의 제1세션통신부(111)와 제1세션을 맺은 것이 된다(S401). 서버(101)는 제1세션을 통해 상기 공동작업에 참여하고 있는 클라이언트리스트를 전송하고(S411), 이를 전송받은 클라이언트(102)는 제2세션통신부(121)를 통해 상기 클라이언트리스트에 포함된 모든 클라이언트의 제2세션통신부(121)와 제2세션을 설정한다(S421). 이 때, 상기 클라이언트리스트는 각 클라이언트의 IP주소를 포함한, 네트워크상에 다른 클라이언트 단말기를 인식할 수 있는 식별번호를 포함할 수 있다.
이렇게 서버(101)와 각 클라이언트(102)가 제1세션 및 제2세션을 통해 네트워크 연결되면, 서버(101)와 클라이언트(102)는 제1세션을 통해 공동작업데이터를 송수신하고, 각 클라이언트(102)끼리는 제2세션을 통해 개별작업데이터를 송수신한다(S431).
도5는 본 발명의 바람직한 제1실시예에 따른 복수의 세션을 이용한 공동작업 방법에서 서버로부터 동기화코드를 수신하여 동기화를 진행하는 과정을 나타낸 흐름도이다.
본 발명의 제1실시예는 상기 제1세션을 통해 송수신되는 공동작업데이터와 제2세션을 통해 송수신되는 개별작업데이터를 동기화하기 위해 서버(101)에서 갱신 및 관리하는 서버동기화코드를 이용한다.
서버(101)는 공동작업의 진행정도에 따라 서버동기화코드를 관리한다. 예를 들어, 처음 공동작업이 생성되면 서버동기화코드를 “1”로 설정하고, 각 클라이언트로부터 객체생성/편집/삭제 과정이 있을 때마다 그 서버동기화코드를 “2”, “3”, “4”와 같이 단계적으로 갱신하여 이를 클라이언트에 전송한다(S510). 이 때, 서버동기화코드는 제1세션을 통해 클라이언트(102)로 전송되는데, 공동작업데이터에 서버동기화코드를 포함하여 전송하고, 클라이언트(102)에서는 상기 수신한 공동작업데이터에서 서버동기화코드를 추출할 수도 있고, 상기 서버동기화코드만을 클라이언트(102)에 직접 전송할 수도 있다.
각 클라이언트(102)는 상기 수신한 서버동기화코드를 동기화코드저장부(141)에 로컬동기화코드로서 저장하거나, 이미 동기화코드저장부(141)에 저장되어 있는 로컬동기화코드를 갱신할 수 있다(S511). 로컬동기화코드로 저장된 값은 현재 공동작업이 어느정도 진행되고 있는지 저장하는 역할도 하고, 이전에 한 작업과 다른 작업을 진행하고 있다는 사정을 구별하여 제2세션을 통해 수신되는 개별작업데이터를 관리하는 데 판단의 근거로서 역할을 한다.
각 클라이언트에서 개별작업데이터를 생성하여 다른 각 클라이언트(102)에 전송할 때에는 상기 로컬동기화코드를 개별작업데이터에 포함한다(S521). 각 클라이언트(102)는 다른 클라이언트(102)로부터 개별작업데이터를 전송받은 후(S531), 개별작업데이터로부터 개별동기화코드를 추출하고(S532), 다른 클라이언트로부터 전송된 개별작업데이터에 포함된 개별동기화코드가 자신의 동기화코드저장부(141)에 저장되어 있는 로컬동기화코드와 일치하는지 판단하고(S541), 일치하는 경우는 개별작업데이터를 처리하고(S580), 일치하지 않는 경우는 개별작업데이터를 데이터큐에 삽입한다(S590). 이 때, 서버동기화코드, 로컬동기화코드 및 개별동기화코드는 대소비교 가능한 문자값인 것이 바람직하며, 개별작업데이터에 포함된 개별동기화코드가 자신의 동기화코드저장부(141)에 저장되어 있는 로컬동기화코드와 일치하는지 판단할 때, 개별작업데이터에 포함된 개별동기화코드가 자신의 동기화코드저장부(141)에 저장되어 있는 로컬동기화코드보다 큰 값인 경우 데이터큐에 개별작업데이터를 삽입하고, 일치하는 경우 개별작업데이터를 처리하며, 작은 값인 경우 그 개별작업데이터는 이미 시간이 지나 더 이상 유효하지 않은 데이터일 것이므로 무시하거나 버리는 것이 바람직하다.
그리고, 상기 데이터큐는 개별작업데이터를 메모리 상에서 효율적으로 저장할 수 있는 데이터구조로서 구현되는 것이 바람직하며, 특히, 작업의 특성상 선입선출구조인 Queue로서 구현되는 것이 더욱 바람직하다.
도6은 본 발명의 바람직한 제1실시예에 따른 복수의 세션을 이용한 공동작업 방법에서 데이터큐에 쌓인 개별작업데이터를 처리하는 과정을 나타낸 흐름도이다.
데이터큐에 쌓인 개별작업데이터를 처리하기 위해 제어부(131)는 데이터큐에 쌓인 개별작업데이터를 주기적으로 확인하여 아래의 과정을 수행하는 것이 바람직하다. 데이터큐에 저장되어 있는 개별작업데이터의 개별동기화코드를 전부 추출하여 자신의 동기화코드저장부(141)에 저장된 로컬동기화코드와 일치하는 개별작업데이터가 있다면(S601), 이를 데이터큐에서 추출 및 삭제하고(S611), 해당 개별작업데이터를 처리한다(S680). 서버는 작업 진행 정도에 따라 주기적으로 서버동기화코드를 갱신하고 클라이언트에 전송하여, 각 클라이언트가 로컬동기화코드를 갱신하도록 하므로, 위와 같이 제어부(131)가 데이터큐를 주기적으로 확인하여 쌓여있는 개별작업데이터를 처리할 필요가 있다.
도7은 본 발명의 바람직한 제2실시예에 따른 복수의 세션을 이용한 공동작업 방법에서 각 클라이언트들이 동기화코드를 서버를 통해 중계받아 동기화를 진행하는 과정을 나타낸 흐름도이다.
본 발명의 제2실시예는 상기 제1세션을 통해 송수신되는 공동작업데이터와 제2세션을 통해 송수신되는 개별작업데이터를 동기화하기 위해 각 클라이언트(102)에서 갱신 및 관리하는 로컬동기화코드를 서버에서 취합하여 클라이언트동기화코드리스트로 만들어서 각 클라이언트(102)에 전송하고, 각 클라이언트는 상기 클라이언트동기화코드리스트를 동기화코드저장부(141)에 저장하여 개별작업데이터를 처리할 것인지 판단할 때 이용한다.
우선 클라이언트(102)의 제어부(131)가 자신의 작업진행정도에 따라 동기화코드저장부(141)에 저장된 로컬동기화코드를 갱신하고(S701), 이를 제1세션통신부(111)를 통해 서버(101)에 송신한다(S702). 서버(101)는 각 클라이언트로부터 수신한 여러 개의 로컬동기화코드를 클라이언트동기화코드리스트로 구성하고 이를 각 클라이언트에 제1세션을 통해 전송한다(S703). 제1세션을 통해 클라이언트동기화코드리스트를 수신한 제어부(131)는(S710) 상기 클라이언트동기화코드리스트를 동기화코드저장부(141)에 저장 또는 갱신한다(S711).
도8은 본 발명의 바람직한 제2실시예에 따른 복수의 세션을 이용한 공동작업 방법에서 각 클라이언트들이 개별작업데이터를 처리하는 과정을 나타낸 흐름도이다.
각 클라이언트(102)는 자신이 생성한 개별작업데이터를 다른 클라이언트에 송신하기 위해 개별작업데이터에 자신의 동기화코드저장부(141)에 저장된 로컬동기화코드를 포함하여 구성하고, 상기 개별작업데이터를 제2세션을 통해 함께 공동작업을 수행하고 있는 다른 모든 클라이언트(102)에 송신한다.
상기 개별작업데이터를 수신(S831)한 각 클라이언트(102)의 제어부(131)는 개별작업데이터로부터 개별동기화코드를 추출하고(S832), 자신의 동기화코드저장부(141)에 저장된 클라이언트동기화코드리스트로부터 상기 개별작업데이터를 송신한 클라이언트의 로컬동기화코드와 상기 전송받은 개별동기화코드가 일치하는지 판단하여(S841), 일치하는 경우 개별작업데이터를 처리하고(S880), 일치하지 않는 경우 데이터큐에 상기 개별작업데이터를 삽입한다(S890).
도9는 본 발명의 바람직한 제2실시예에 따른 복수의 세션을 이용한 공동작업 방법에서 데이터큐에 쌓인 개별작업데이터를 처리하는 과정을 나타낸 흐름도이다.
데이터큐에 쌓인 개별작업데이터를 처리하기 위해 제어부(131)는 데이터큐에 쌓인 개별작업데이터를 주기적으로 확인하여 아래의 과정을 수행하는 것이 바람직하다. 데이터큐에 저장되어 있는 개별작업데이터의 개별동기화코드를 전부 추출하고, 자신의 동기화코드저장부(141)에 저장된 클라이언트동기화코드리스트에서 상기 개별작업데이터를 송신한 클라이언트의 로컬동기화코드가 일치하는지 판단하여(S901), 만일 일치한다면 이를 데이터큐에서 추출 및 삭제하고(S911), 해당 개별작업데이터를 처리한다(S980). 각 클라이언트는 작업 진행 정도에 따라 주기적으로 서버에 로컬동기화코드를 송신하고 서버는 이때마다 클라이언트동기화코드리스트를 갱신하고 클라이언트에 전송하여, 각 클라이언트가 클라이언트동기화코드리스트를 갱신하도록 하므로, 위와 같이 제어부(131)가 데이터큐를 주기적으로 확인하여 쌓여있는 개별작업데이터를 처리할 필요가 있다.
도10은 본 발명의 바람직한 실시예에 따른 복수의 세션을 이용한 공동작업 방법에서 제1세션을 재설정하는 과정을 나타낸 흐름도이다.
상기 제1실시예 및 제2실시예에서 제2세션을 통한 개별작업데이터는 계속 잘 송수신되는데, 제1세션을 통한 공동작업데이터가 잘 송수신되지 않는 경우는, 제1세션을 재설정할 필요가 있으므로 아래의 과정을 수행하는 것이 바람직하다.
각 클라이언트의 제어부(131)가 주기적으로 데이터큐를 확인하여, 데이터큐에 어느 한 클라이언트로부터 수신한 개별작업데이터 개수가 한계누적데이터수를 초과하는지 판단하고(S1001), 만일 초과하는 경우 데이터큐에서 해당 개별작업데이터를 모두 삭제하고(S1011), 제2세션을 통해 데이터큐에 누적된 개별잡업데이터 수가 한계누적데이터수를 초과한 해당 클라이언트에 제1세션재설정요청을 보낸다(S1020). 어느 클라이언트로부터 상기 제1세션재설정요청을 수신한 클라이언트의 제어부(131)는 자신의 제1세션통신부(111)를 통해 서버(101)와 제1세션을 재설정한다. 이 때, 상기 한계누적데이터수는 관리자 또는 서버(101) 또는 사용자에 의해 물리적 메모리의 크기, 데이터패킷의 크기 및 개별작업데이터의 크기를 참조하여 임의로 설정되는 값일 수 있으며, 클라이언트의 메모리에 저장된다.
예를 들어, 한계누적데이터수가 10으로 설정된 경우, X라는 클라이언트의 데이터큐에 A라는 클라이언트로부터 전송되어 삽입된 개별작업데이터가 3개, B라는 클라이언트로부터 전송되어 삽입된 개별작업데이터가 11개, C라는 클라이언트로부터 전송되어 삽입된 개별작업데이터가 1개인 경우, X라는 클라이언트는 B라는 클라이언트에 제1세션재설정요청을 보내고, B라는 클라이언트는 제2세션은 그대로 두고, 서버와의 사이에 설정된 제1세션만 다시 설정하여, 제1세션을 통해 모든 클라이언트에 송수신되는 공동작업데이터 또는 클라이언트동기화코드리스트가 유실되거나 지나치게 늦게 도착하는 경우 제1세션을 재설정하게 하여 동기화를 원활하게 할 수 있을 뿐만 아니라, 제1세션이 불량한 경우 보다 빨리 대처하여 공동작업의 효율성을 높일 수 있다. 이는 공동작업데이터 및 클라이언트동기화코드리스트가 제1세션을 통해 전달되기 때문이다.
본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구의 범위에 의하여 나타내어지며, 특허청구의 범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
101 : 서버 102 : 클라이언트
111 : 제1세션통신부 121 : 제2세션통신부
131 : 제어부 141 : 동기화코드저장부

Claims (22)

  1. 삭제
  2. 삭제
  3. 삭제
  4. 삭제
  5. 삭제
  6. 삭제
  7. 삭제
  8. 삭제
  9. 삭제
  10. 삭제
  11. 삭제
  12. 적어도 둘 이상의 사용자 단말기가 서버에 접속하여 하나의 객체에 대한 공동작업을 실행하는 클라이언트-서버 시스템에 있어서,
    서버와 제1세션을 설정하는 제1세션통신부;
    적어도 하나 이상의 클라이언트와 각각 제2세션을 설정하는 제2세션통신부; 및
    제2세션을 설정할 클라이언트정보를 포함하는 클라이언트정보리스트를 제1세션을 통해 서버로부터 수신하고, 공동작업데이터를 제1세션을 통해 서버와 송수신하고, 상기 제2세션통신부를 통해 상기 각 클라이언트와 개별작업데이터를 송수신하는 제어부;를 포함하되,
    상기 제어부는,
    상기 제1세션통신부를 통해 서버로부터 서버동기화코드가 포함된 공동작업데이터를 수신하고 상기 공동작업데이터로부터 서버동기화코드를 추출하여 동기화코드저장부에 저장된 로컬동기화코드를 갱신하고, 상기 제1세션통신부를 통해 서버에 공동작업데이터를 송신하고,
    상기 제2세션통신부를 통해 상기 각 클라이언트에 상기 동기화코드저장부에 저장된 로컬동기화코드를 개별동기화코드로서 포함하는 개별작업데이터를 송신하고, 상기 제2세션통신부를 통해 상기 각 클라이언트로부터 개별동기화코드를 포함하는 개별작업데이터를 수신하고,
    상기 동기화코드저장부에 저장된 로컬동기화코드와 일치하지 않는 개별동기화코드를 포함한 개별작업데이터를 데이터큐에 삽입하고, 상기 데이터큐로부터 로컬동기화코드와 일치하는 개별동기화코드를 포함한 개별작업데이터를 추출하는 것을 특징으로 하는, 복수의 세션을 이용한 공동작업 시스템.
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
KR1020100005843A 2010-01-22 2010-01-22 복수의 세션을 이용한 공동작업 방법 및 그 시스템 KR101108028B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100005843A KR101108028B1 (ko) 2010-01-22 2010-01-22 복수의 세션을 이용한 공동작업 방법 및 그 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100005843A KR101108028B1 (ko) 2010-01-22 2010-01-22 복수의 세션을 이용한 공동작업 방법 및 그 시스템

Publications (2)

Publication Number Publication Date
KR20110086227A KR20110086227A (ko) 2011-07-28
KR101108028B1 true KR101108028B1 (ko) 2012-01-25

Family

ID=44922664

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100005843A KR101108028B1 (ko) 2010-01-22 2010-01-22 복수의 세션을 이용한 공동작업 방법 및 그 시스템

Country Status (1)

Country Link
KR (1) KR101108028B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101304663B1 (ko) * 2011-08-29 2013-09-06 (주)마인드메이플코리아 마인드맵 공동편집 시스템 및 방법
KR101491692B1 (ko) * 2013-12-23 2015-02-11 주식회사 시큐아이 멀티 세션을 관리하는 보안 장치 및 그것의 동작 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000063196A (ko) * 2000-05-08 2000-11-06 천두배 다자간 화상/음성 회의(채팅)시의 부하 분산 방법
KR20030039970A (ko) * 2001-11-16 2003-05-22 주식회사 해피투웨어 가상공간에서의 의복 디자인 협업 서비스 사업 방법 및이를 구현할 수 있는 프로그램이 수록된 컴퓨터로 읽을 수있는 기록매체
KR20090004318A (ko) * 2006-12-04 2009-01-12 한국전자통신연구원 P2P(Peer to Peer)를 이용하는 협업 시스템및 그 방법
US20090327302A1 (en) * 2008-06-27 2009-12-31 Microsoft Corporation Synchronization and Collaboration Within Peer-to-Peer and Client/Server Environments

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000063196A (ko) * 2000-05-08 2000-11-06 천두배 다자간 화상/음성 회의(채팅)시의 부하 분산 방법
KR20030039970A (ko) * 2001-11-16 2003-05-22 주식회사 해피투웨어 가상공간에서의 의복 디자인 협업 서비스 사업 방법 및이를 구현할 수 있는 프로그램이 수록된 컴퓨터로 읽을 수있는 기록매체
KR20090004318A (ko) * 2006-12-04 2009-01-12 한국전자통신연구원 P2P(Peer to Peer)를 이용하는 협업 시스템및 그 방법
US20090327302A1 (en) * 2008-06-27 2009-12-31 Microsoft Corporation Synchronization and Collaboration Within Peer-to-Peer and Client/Server Environments

Also Published As

Publication number Publication date
KR20110086227A (ko) 2011-07-28

Similar Documents

Publication Publication Date Title
EP3211852A1 (en) Ssh protocol-based session parsing method and system
JP2005530367A (ja) 異なる優先レベルで複数のデータ型からなるデータ・ストリームを配信するシステムおよび方法
CN101247361B (zh) 一种用户群组中成员动态信息显示系统及方法
CN108881158A (zh) 数据交互系统和方法
JP5854048B2 (ja) 通信システム、転送ノード、制御装置、通信制御方法およびプログラム
US10148565B2 (en) OPENFLOW communication method and system, controller, and service gateway
KR20120136371A (ko) 네트워크 노드들과 스트림 전송 프로토콜 사이의 네트워크 통신 관리
CN104518939A (zh) 用于连接通信网络中的主机的方法和相应中继模块
US20080112421A1 (en) Systems and methods for distributing data packets over a communication network
EP2833585A1 (en) Communication system, upper layer switch, control device, switch control method, and program
JP6434526B2 (ja) 無線ネットワーク中のデータ処理装置および無線ネットワークシステム
EA018130B1 (ru) Способ выборочного перехвата сеанса
JP5163398B2 (ja) パケット特定プログラム、パケット特定方法、パケット特定装置及び制御プログラム
KR101108028B1 (ko) 복수의 세션을 이용한 공동작업 방법 및 그 시스템
CN103347075A (zh) 一种数据多级缓存处理方法
CN108769291A (zh) 一种报文处理方法、装置及电子设备
JP2016174268A (ja) ネットワークシステム、ネットワークシステムの制御方法、通信装置、及びプログラム
CN106330386A (zh) 一种传输层参数调整方法和装置
US9485189B2 (en) Transfer device, and transfer method
CN115277649A (zh) 多媒体会议场景下的文档协同编辑的方法及装置
CN103532954B (zh) 一种面向数据中心的编码网络系统及其工作方法
WO2008050585A1 (fr) Système de communication bidirectionnelle, appareil serveur, appareil de relais, procédé et programme de communication bidirectionnelle
JP6128132B2 (ja) 通信装置、制御装置、通信システム、パケット処理方法、通信装置の制御方法及びプログラム
Ko et al. Overcoming large data transfer bottlenecks in restful service orchestrations
CN107749809B (zh) 基于atca一体化的高效动态收敛机制实现方法和系统

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