KR20180112399A - 폴더형 리얼타임 캔버스 제공장치, 제공방법 - Google Patents

폴더형 리얼타임 캔버스 제공장치, 제공방법 Download PDF

Info

Publication number
KR20180112399A
KR20180112399A KR1020170043286A KR20170043286A KR20180112399A KR 20180112399 A KR20180112399 A KR 20180112399A KR 1020170043286 A KR1020170043286 A KR 1020170043286A KR 20170043286 A KR20170043286 A KR 20170043286A KR 20180112399 A KR20180112399 A KR 20180112399A
Authority
KR
South Korea
Prior art keywords
canvas
information
client
real time
request
Prior art date
Application number
KR1020170043286A
Other languages
English (en)
Other versions
KR101936953B1 (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 KR1020170043286A priority Critical patent/KR101936953B1/ko
Publication of KR20180112399A publication Critical patent/KR20180112399A/ko
Application granted granted Critical
Publication of KR101936953B1 publication Critical patent/KR101936953B1/ko

Links

Images

Classifications

    • 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
    • G06Q10/101Collaborative creation, e.g. joint development of products or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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
    • G06Q10/103Workflow collaboration or project 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
    • G06Q50/00Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services

Abstract

본 발명은 인터넷에 연결된 웹 상에서 리얼타임(Real time)으로 업데이트 및 공유되어 복수의 클라이언트들의 협업을 용이하게 하기 위한 폴더형 리얼타임 캔버스 제공장치, 제공방법 및 프로그램에 관한 것이다. 이를 위하여 수정 권한이 부여된 제1클라이언트에서 제1클라이언트에 표시된 리얼타임 캔버스인 특정 캔버스에 대한 오브젝트의 생성 요청을 수신하고, 특정 캔버스의 오브젝트 생성에 따른 변경 정보를 적어도 하나의 제2클라이언트에 송신하는 송수신부; 특정 캔버스에 대한 정보인 캔버스 정보를 데이터베이스에서 로딩하여 제1클라이언트 및 제2클라이언트에 출력하도록 송수신부에 송신하는 캔버스 모듈; 및 송수신부로부터 오브젝트의 생성 요청을 수신하고 오브젝트의 생성 요청에 따라 특정 캔버스에 포함되어 출력되는 오브젝트에 대한 정보인 오브젝트 정보를 생성하여 데이터베이스에 저장하고, 오브젝트 정보를 데이터베이스에서 로딩하여 제1클라이언트 및 제2클라이언트에 출력하도록 송수신부에 송신하는 오브젝트 모듈이 제공될 수 있다. 이에 따르면 사용자가 하나의 내용에 관련된 캔버스를 작성하려는 경우, 해당 캔버스 내에 관련 캔버스들을 하위 개념인 캔버스 오브젝트로 삽입할 수 있어서, 업무 독창성을 향상시키기 위한 write it first의 원칙을 따를 수 있게 되는 효과가 발생될 수 있다.

Description

폴더형 리얼타임 캔버스 제공장치, 제공방법 및 프로그램{PROVIDING APPARATUS, METHOD AND PROGRAM FOR HIERARCHICAL TYPE REAL TIME CANVAS}
본 발명은 인터넷에 연결된 웹 상에서 리얼타임(Real time)으로 업데이트 및 공유되어 복수의 클라이언트들의 협업을 용이하게 하기 위한 폴더형 리얼타임 캔버스 제공장치, 제공방법 및 프로그램에 관한 것이다.
컴퓨터 네트워크의 기술발전에 따라, 각 단말의 독립적인 하드웨어 성능에 의존하던 기존의 컴퓨팅 환경은, 네트워크 상의 모든 컴퓨팅 자원을 활용하여 단말의 요청에 따라 해당 서비스를 제공하는 클라우드 컴퓨팅(Cloud Computing) 형태로 진화하고 있다.
클라우드 서비스란, 개인용 컴퓨터나 기업의 서버에 개별적으로 저장하던 프로그램이나 문서를 인터넷 기반의 가상 서버 또는 스토리지에 저장하고, 개인용 컴퓨터를 비롯한 다양한 단말을 이용하여 웹 브라우저 등의 클라우드 어플리케이션을 구동함으로써, 클라이언트가 원하는 작업을 수행할 수 있도록 하는 방식이다. 클라이언트들은 어플리케이션(Application), 스토리지(Storage), 운영체제(OS: Operation System), 보안(Security) 등의 컴퓨팅 자원을 원하는 시점에 원하는 만큼만 골라서 사용할 수 있다. 이러한 클라우드 서비스에 따르면, 클라이언트들은 어떠한 장소에서든 네트워크 접속과 기본적인 연산기능만을 수행하는 단말을 통해 클라우드 망에 접속하여 대용량의 저장장치와 고성능 컴퓨팅 리소스가 필요한 작업들을 수행하고, 고도화된 서비스들도 제공받을 수 있다.
그러나 이러한 종래의 클라우드 서비스는 네트워크 상의 개인 공간에 가깝게 활용되고 있었다. 보다 구체적으로는 종래의 클라우드 서비스는 로그인 정보를 상호 공유하지 않는 이상 복수의 클라이언트가 하나의 서버에 접근하는 것이 불가능하였고, 더 나아가 복수의 클라이언트가 동시에 동일한 서버에 접근하여 실시간으로 내용을 변경하는 것에 대해 허용하지 않는 경우가 대부분이였다. 따라서 복수의 클라이언트가 인터넷으로 연결된 웹 상에서 실시간으로, 그리고 직관적으로 협업을 하는 것은 거의 불가능한 실정이였다.
이러한 문제점 때문에 종래에는 복수의 클라이언트가 단순히 메신저와 이메일을 통해 실시간 협업을 하거나, 화상 회의 등의 방법으로 실시간 협업을 구현할 수밖에 없는 한계가 상존하였다. 이러한 종래의 실시간 협업방법은 협업의 질, 신속성 및 직관성이 상당히 부족한 문제가 있었다.
위와 같은 문제를 해결하기 위해, 기존에는 개인용 캔버스 소프트웨어인 마이크로소프트의 오피스의 파워포인트 파일 자체를 서로 공유하는 방식으로 협업을 하고 있었다. 또는, 구글 프리젠테이션에서는 클라우드 컴퓨팅 환경을 이용하여 프리젠테이션 파일을 주기적으로 업데이트하는 방식으로 협업을 하게 구성되었다.
또한, 대한민국 등록특허 10-1380898 등에서는 인터넷으로 연결된 웹 상에서 실시간으로 업데이트 공유되는 화이트보드(리얼타임 캔버스)를 개시하고 있다. 이에 따르면, 웹 상에서 리얼타임으로 캔버스가 공유되므로, 별도의 소프트웨어를 자신의 클라이언트에 미리 설치해둘 필요가 없는 장점이 있었다.
한국 등록특허 10-1380898 한국 공개특허 10-2016-0070254 한국 공개특허 10-2016-0070255 한국 공개특허 10-2012-0094281 한국 공개특허 10-2012-0090386
하지만, 사용자들이 캔버스를 이용하다가 관련된 생각을 하나의 캔버스 안에 정리해야 하는 경우, 공간이 부족하게 되는 일이 항상 발생되는 실정이었다. 또한, 사용자의 아이디어는 주로 꼬리에 꼬리를 물게 된다. 즉, 사용자들의 사용 경험에 비추어보면, 여러 개의 아이디어가 계층적으로 구성되고 있었다.
마이크로소프트 오피스의 파워포인트, 구글 프리젠테이션의 경우에는 캔버스의 공간이 부족한 경우에 페이지를 추가하는 방식으로 구성이 되어 있었다. 새로운 캔버스가 필요하면 페이지를 추가하고, 해당 페이지로 화면 출력을 이전하는 방식을 택하고 있었다. 하지만, 이러한 방식은 "write it first"라는 ideation 원칙에 맞지 않았으며, ideation과 정리를 동시에 신경 써야하는 문제가 있었다.
대한민국 등록특허 10-1380898 등에서 제시하는 리얼타임 캔버스의 경우에는 무제한 공간을 제공하는 방식을 택하고 있었다. 하지만, 이러한 방식은 한정된 모니터 크기 안에서 스크롤과 확대/축소를 끊임없이 이용해야 하므로, 오히려 사용자에게 불편함을 제공하고 있었다.
따라서 본 발명은 상기 제시된 문제점을 개선하기 위하여 창안되었다.
본 발명의 목적은, PC나 이동단말기 상에서 네트워크에 연결된 웹을 통해 복수의 클라이언트에 대한 실시간 협업 및 직관적 협업이 제공되고, 특히 캔버스 안에 캔버스가 폴더형 오브젝트로 삽입될 수 있음으로써, 캔버스를 폴더형으로 정리할 수 있는 클라우드 플랫폼인 폴더형 리얼타임 캔버스를 제공하는 폴더형 리얼타임 캔버스 제공 장치, 폴더형 리얼타임 캔버스 제공방법, 그 프로그램을 제공하는데에 있다.
이하 본 발명의 목적을 달성하기 위한 구체적 수단에 대하여 설명한다.
본 발명의 목적은, 수정 권한이 부여된 제1클라이언트에서 상기 제1클라이언트에 표시된 리얼타임 캔버스인 특정 캔버스에 대한 오브젝트의 생성 요청을 수신하고, 상기 특정 캔버스의 상기 오브젝트 생성에 따른 변경 정보를 적어도 하나의 제2클라이언트에 송신하는 송수신부; 상기 특정 캔버스에 대한 정보인 캔버스 정보를 데이터베이스에서 로딩하여 상기 제1클라이언트 및 상기 제2클라이언트에 출력하도록 상기 송수신부에 송신하는 캔버스 모듈; 및 상기 송수신부로부터 상기 오브젝트의 생성 요청을 수신하고 상기 오브젝트의 생성 요청에 따라 상기 특정 캔버스에 포함되어 출력되는 오브젝트에 대한 정보인 오브젝트 정보를 생성하여 상기 데이터베이스에 저장하고, 상기 오브젝트 정보를 상기 데이터베이스에서 로딩하여 상기 제1클라이언트 및 상기 제2클라이언트에 출력하도록 상기 송수신부에 송신하는 오브젝트 모듈;을 포함하고, 상기 제1클라이언트에서 제1캔버스 내에 제2캔버스를 참조하는 오브젝트의 생성 요청이 송수신부에 수신되는 경우, 상기 캔버스 모듈은 상기 제2캔버스에 대한 정보인 제2캔버스 정보를 생성하고, 상기 오브젝트 모듈은 상기 제2캔버스를 참조하는 오브젝트에 대한 정보인 제2캔버스 오브젝트 정보를 생성하며, 상기 제2캔버스 오브젝트 정보에는, 상기 제1캔버스에 대한 정보인 제1캔버스 정보를 참조하는 정보인 제1캔버스 참조정보 및 상기 제2캔버스 정보를 참조하는 정보인 제2캔버스 참조정보가 계층 정보로서 포함되고, 상기 제1클라이언트 또는 상기 제2클라이언트에서 상기 제1캔버스에 대한 출력 요청이 수신되는 경우, 상기 캔버스 모듈이 상기 제1캔버스 정보를 상기 송수신부에 송신하고, 상기 오브젝트 모듈이 상기 제2캔버스 오브젝트 정보를 상기 송수신부에 송신하며, 상기 제1클라이언트 또는 상기 제2클라이언트에서 상기 제2캔버스 오브젝트에 대한 출력 요청이 수신되는 경우, 상기 캔버스 모듈이 상기 제2캔버스 정보를 상기 송수신부에 송신하고, 상기 제1캔버스와 상기 제2캔버스는 폴더형의 계층 구조로 구성되는 것을 특징으로 하는, 폴더형 리얼타임 캔버스 제공장치를 제공하여 달성될 수 있다.
또한, 상기 송수신부가 상기 제1클라이언트에서 상기 제1캔버스에 대한 상기 제2클라이언트의 권한 부여 요청 또는 권한 변경 요청을 수신하는 경우, 상기 캔버스 모듈이 상기 제1캔버스의 권한 부여 또는 권한 변경과 함께 상기 제1캔버스에 오브젝트로 포함되어 있는 상기 제2캔버스의 권한 부여 또는 권한 변경도 수행하고, 상기 송수신부가 상기 제1클라이언트에서 상기 제2캔버스에 대한 상기 제2클라이언트의 권한 부여 요청 또는 권한 변경 요청을 수신하는 경우, 상기 캔버스 모듈이 상기 제2캔버스의 권한 부여 또는 권한 변경을 수행하는 것을 특징으로 할 수 있다.
또한, 상기 캔버스 모듈은, 상기 캔버스 정보를 참조하는 적어도 하나의 가상 캔버스 정보를 생성할 수 있고, 상기 캔버스 정보와 상기 가상 캔버스 정보는 one-to-many의 형태로 연결되고, 상기 가상 캔버스 정보와 상기 오브젝트 정보는 one-to-many의 형태로 연결되는 것을 특징으로 할 수 있다.
본 발명의 다른 목적은, 폴더형 리얼타임 캔버스 제공장치가, 제1클라이언트에서 제1캔버스 내에 제2캔버스를 참조하는 오브젝트인 제2캔버스 오브젝트의 생성 요청을 수신하는 캔버스 오브젝트 생성 요청 단계; 상기 폴더형 리얼타임 캔버스 제공장치가, 상기 제2캔버스에 대한 정보인 제2캔버스 정보를 생성하는 캔버스 정보 생성 단계; 상기 폴더형 리얼타임 캔버스 제공장치가, 상기 제2캔버스 오브젝트에 대한 정보인 제2캔버스 오브젝트 정보를 생성하는 캔버스 오브젝트 정보 생성 단계; 및 상기 폴더형 리얼타임 캔버스 제공장치가, 제2클라이언트에 상기 제1캔버스 정보 및 상기 제2캔버스 오브젝트 정보를 송신하는 캔버스 공유 단계;를 포함하고, 상기 제2캔버스 오브젝트 정보에는, 상기 제1캔버스에 대한 정보인 제1캔버스 정보를 참조하는 정보인 제1캔버스 참조정보 및 상기 제2캔버스 정보를 참조하는 정보인 제2캔버스 참조정보가 계층 정보로서 포함되며, 상기 제1캔버스와 상기 제2캔버스는 폴더형의 계층 구조로 구성되는 것을 특징으로 하는, 폴더형 리얼타임 캔버스 제공방법을 제공하여 달성될 수 있다.
또한, 상기 폴더형 리얼타임 캔버스 제공장치가, 상기 제1클라이언트 또는 상기 제2클라이언트에서 상기 제2캔버스 오브젝트에 대한 출력 요청을 수신하는 경우, 상기 제2캔버스 정보를 상기 제1클라이언트 또는 상기 제2클라이언트에 송신하는 것을 특징으로 할 수 있다.
또한, 상기 캔버스 공유 단계 이후에, 상기 폴더형 리얼타임 캔버스 제공장치가, 상기 제1클라이언트에서 상기 제1캔버스에 대한 상기 제2클라이언트의 권한 부여 요청 또는 권한 변경 요청을 수신하는 권한 요청 수신단계; 및 상기 폴더형 리얼타임 캔버스 제공장치가, 상기 제1캔버스의 권한 부여 또는 권한 변경과 함께 상기 제1캔버스에 오브젝트로 포함되어 있는 상기 제2캔버스의 권한 부여 또는 권한 변경도 수행하는 권한 변경 수행단계;를 더 포함하거나, 상기 폴더형 리얼타임 캔버스 제공장치가, 상기 제1클라이언트에서 상기 제2캔버스에 대한 상기 제2클라이언트의 권한 부여 요청 또는 권한 변경 요청을 수신하는 권한 요청 수신단계; 및 상기 폴더형 리얼타임 캔버스 제공장치가, 상기 제2캔버스의 권한 부여 또는 권한 변경을 수행하는 권한 변경 수행단계;를 더 포함할 수 있다.
본 발명의 목적은, 폴더형 리얼타임 캔버스 제공장치가, 제1클라이언트에서 제1캔버스 내에 제2캔버스를 참조하는 오브젝트인 제2캔버스 오브젝트의 생성 요청을 수신하는 캔버스 오브젝트 생성 요청 단계; 상기 폴더형 리얼타임 캔버스 제공장치가, 상기 제2캔버스에 대한 정보인 제2캔버스 정보를 생성하는 캔버스 정보 생성 단계; 상기 폴더형 리얼타임 캔버스 제공장치가, 상기 제2캔버스 오브젝트에 대한 정보인 제2캔버스 오브젝트 정보를 생성하는 캔버스 오브젝트 정보 생성 단계; 및 상기 폴더형 리얼타임 캔버스 제공장치가, 제2클라이언트에 상기 제1캔버스 정보 및 상기 제2캔버스 오브젝트 정보를 송신하는 캔버스 공유 단계;를 포함하고, 상기 제2캔버스 오브젝트 정보에는, 상기 제1캔버스에 대한 정보인 제1캔버스 정보를 참조하는 정보인 제1캔버스 참조정보 및 상기 제2캔버스 정보를 참조하는 정보인 제2캔버스 참조정보가 계층 정보로서 포함되며, 상기 제1캔버스와 상기 제2캔버스는 폴더형의 계층 구조로 구성되는 것을 특징으로 하는, 폴더형 리얼타임 캔버스 제공방법을 컴퓨터 상에서 수행하는 기록매체에 저장된 프로그램을 제공하여 달성될 수 있다.
상기한 바와 같이, 본 발명에 의하면 이하와 같은 효과가 있다.
첫째, 본 발명의 일실시예에 따르면, 사용자가 하나의 내용에 관련된 캔버스를 작성하려는 경우, 해당 캔버스 내에 관련 캔버스들을 하위 개념인 캔버스 오브젝트로 삽입할 수 있어서, 업무 독창성을 향상시키기 위한 write it first의 원칙을 따를 수 있게 되는 효과가 발생될 수 있다. 사용자의 아이디어는 주로 꼬리에 꼬리를 물게 된다. 즉, 여러 개의 아이디어가 계층적으로 구성되게 되는데, 본 발명의 일실시예에 따른 폴더형 리얼타임 캔버스에 따르면, 이러한 계층적 아이디어를 용이하게 편집할 수 있는 효과가 발생된다.
둘째, 본 발명의 일실시예에 따르면, 사용자가 친구의 캔버스 링크를 받아서 자신의 하위 폴더에 해당하는 캔버스 오브젝트로 구성할 수 있기 때문에, 오브젝트인 캔버스 자체가 실시간으로 수정되는 미러링이 가능해지는 장점이 발생될 수 있다.
셋째, 본 발명의 일실시예에 따르면, 가상 캔버스 데이터세트를 이용하므로 캔버스를 오브젝트로 넣으면서도 UX가 무거워지지 않는 효과가 발생된다.
본 명세서에 첨부되는 다음의 도면들은 본 발명의 바람직한 실시예를 예시하는 것이며, 발명의 상세한 설명과 함께 본 발명의 기술사상을 더욱 이해시키는 역할을 하는 것이므로, 본 발명은 그러한 도면에 기재된 사항에만 한정되어 해석되어서는 아니 된다.
도 1은 본 발명의 일실시예에 따른 폴더형 리얼타임 캔버스 제공 시스템을 도시한 것,
도 2는 본 발명의 일실시예에 따른 클라이언트와 폴더형 리얼타임 캔버스 제공장치의 구성을 도시한 블럭도,
도 3은 본 발명의 일실시예에 따른 리얼타임 캔버스와 편집툴 모듈을 도시한 도면,
도 4는 본 발명의 일실시예에 따른 폴더형 리얼타임 캔버스 제공방법을 도시한 것,
도 5는 본 발명의 일실시예에 따른 폴더형 리얼타임 캔버스의 수정 방법을 도시한 것,
도 6은 본 발명의 변형예에 따른 그리기 도구 생성 요청 단계를 도시한 예시,
도 7은 본 발명의 변형예에 따른 그림 수신 단계를 도시한 예시,
도 8,9는 본 발명의 변형예에 따른 캔버스 임베드 단계를 도시한 예시,
도 10은 본 발명의 일실시예에 따른 캔버스 정보 테이블(Canvas)을 도시한 것,
도 11은 본 발명의 일실시예에 따른 가상 캔버스 정보 테이블(AliasCanvas)을 도시한 것,
도 12는 본 발명의 일실시예에 따른 오브젝트 정보 테이블(CanvasData)을 도시한 것,
도 13은 본 발명의 일실시예에 따른 캔버스 오브젝트의 표시 형태를 도시한 예시,
도 14는 본 발명의 일실시예에 따른 오브젝트 정보 테이블, 캔버스 정보 테이블 및 가상 캔버스 정보 테이블의 관계를 도시한 테이블 관계도,
도 15는 본 발명의 일실시예에 따른 오브젝트 정보 테이블에 의해 구현되는 캔버스 오브젝트의 캔버스 트리 구조를 도시한 것이다.
이하 첨부된 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 본 발명을 쉽게 실시할 수 있는 실시예를 상세히 설명한다. 다만, 본 발명의 바람직한 실시예에 대한 동작원리를 상세하게 설명함에 있어서 관련된 공지기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략한다.
또한, 도면 전체에 걸쳐 유사한 기능 및 작용을 하는 부분에 대해서는 동일한 도면 부호를 사용한다. 명세서 전체에서, 특정 부분이 다른 부분과 연결되어 있다고 할 때, 이는 직접적으로 연결되어 있는 경우뿐만 아니라, 그 중간에 다른 소자를 사이에 두고, 간접적으로 연결되어 있는 경우도 포함한다. 또한, 특정 구성요소를 포함한다는 것은 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라, 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
또한, 설명의 편의를 위하여 본 명세서에서는 각 클라이언트의 웹 상에서 출력되는 리얼타임 캔버스에 연결된 다수의 클라이언트 중에서 하나의 클라이언트에서 캔버스의 오브젝트(컨텐츠)를 수정하면 그 수정된 내용이 다른 복수개의 클라이언트에서도 업데이트되는 상황을 가정하여 설명을 전개한다. 이하에서 캔버스와 리얼타임 캔버스는 편의상 혼용될 수 있다.
폴더형 리얼타임 캔버스 제공 시스템, 장치 및 방법
도 1은 본 발명의 일실시예에 따른 폴더형 리얼타임 캔버스 제공 시스템을 도시한 것이다. 도 1에 도시된 바와 같이, 본 발명의 일실시예에 따른 폴더형 리얼타임 캔버스 제공 시스템(100)은 제1사용자의 제1클라이언트(10), 제2사용자의 제2클라이언트(11), 폴더형 리얼타임 캔버스 제공장치(12)를 포함할 수 있다.
폴더형 리얼타임 캔버스 제공장치(12)는 클라우드 서버 등으로 구성될 수 있으며, 인터넷을 통해 각 클라이언트에 연결될 수 있다. 폴더형 리얼타임 캔버스 제공장치(12)는 아마존 AWS, 마이크로소프트 Azure 등의 클라우드 컴퓨팅 서비스로 구성될 수 있다. 또는, 폴더형 리얼타임 캔버스 제공장치(12)는 엔터프라이즈 형태로 판매되는 중앙 집중식 서버를 의미할 수 있다.
폴더형 리얼타임 캔버스 제공장치(12)는 DB(Database)와 연결될 수 있다. DB는 크게 RDB, NoSQL, In-memory DB, SQLite 등으로 분류될 수 있다. RDB에는 MySQL, MariaDB, Oracle, PostgreSQL 등이 있다. NoSQL에는 MongoDB와 CouchBase, Cassandra와 Hbase 등이 있다.
제1클라이언트(10)는 본 발명의 일실시예에 따른 리얼타임 캔버스의 이용자인 제1사용자의 단말(terminal)을 의미하며, 네트워크를 통해 폴더형 리얼타임 캔버스 제공장치(12)와 연결될 수 있다. 이러한 제1클라이언트(10)는 스마트폰, 태블릿 PC 등과 같은 이동단말기 및 데스크탑 PC 나 랩탑 PC 등을 의미할 수 있다. 이러한 제1클라이언트(10)의 웹페이지 또는 애플리케이션에 의해 구현되는 화면에 본 발명의 일실시예에 따른 리얼타임 캔버스가 구현되게 된다.
제2클라이언트(11)는 본 발명의 일실시예에 따른 리얼타임 캔버스의 이용자인 제1사용자의 단말(terminal)을 의미하며, 네트워크를 통해 폴더형 리얼타임 캔버스 제공장치(12)와 연결될 수 있다. 이러한 제2클라이언트(11)는 스마트폰, 태블릿 PC 등과 같은 이동단말기 및 데스크탑 PC 나 랩탑 PC 등을 의미할 수 있다. 이러한 제2클라이언트(11)의 웹페이지 또는 애플리케이션에 의해 구현되는 화면에 본 발명의 일실시예에 따른 리얼타임 캔버스가 구현되게 된다.
이러한 클라이언트의 OS는 Android, iOS, Windows 등으로 구성될 수 있다.
리얼타임 캔버스를 제공하기 위한 웹 페이지는 특정 웹 클라이언트 언어(예: 자바스크립트, HTML5, CSS 등)로 작성하여 특정의 인터넷 주소(예: URL 또는 애플리케이션)에 대응되게 된다.
리얼타임 캔버스는 각종 오브젝트(드로잉 오브젝트, 메모 오브젝트, 텍스트 오브젝트, 이미지 오브젝트, 하이퍼링크 오브젝트 등)를 표시하기 위한 캔버스 패널의 역할을 하는 구성이다.
클라이언트의 브라우저 또는 애플리케이션 화면에서, 사용자가 상기 특정의 인터넷 주소(URL 또는 애플리케이션을 통해)에 접속하여 본 발명의 일실시예에 따른 폴더형 리얼타임 캔버스 제공장치(12)에서부터 리얼타임 캔버스를 로딩하게 된다. 리얼타임 캔버스가 로딩된 클라이언트의 화면에서는 오브젝트를 편집하기 위한 기능 메뉴들의 집합인 편집툴 모듈(2)이 표시되게 된다.
클라이언트에는 브라우저 소프트웨어(예: 마이크로소프트 익스플로러, 구글 크롬, 사파리, 파이어폭스 등)가 설치되어 있다. 사용자는 브라우저 소프트웨어를 통해 리얼타임 캔버스를 위해 기설정된 인터넷 주소로 접속할 수 있다. 또는 클라이언트에 애플리케이션(예: iOS 애플리케이션, 안드로이드 애플리케이션)이 설치되어 있고, 사용자는 해당 애플리케이션을 통해 리얼타임 캔버스를 위해 기설정된 인터넷 주소로 접속할 수 있다. 본 발명을 구현함에 있어서, 리얼타임 캔버스를 위해 미리 설정된 인터넷 주소로 접속하거나 애플리케이션을 실행하여 본 발명의 일실시예에 따른 폴더형 리얼타임 캔버스 제공장치(12)에서부터 리얼타임 캔버스를 로딩하게 된다.
본 발명의 일실시예에 따른 캔버스는, 클라이언트의 브라우저 또는 애플리케이션 화면에 표시되는 영역으로, 각종 오브젝트가 표시되는 부분이다.
본 발명의 일실시예에 따른 리얼타임 캔버스는, 상기 캔버스가 제1클라이언트(10) 또는 제2클라이언트(11)에 의해 변경되면, 제1클라이언트(10)와 제2클라이언트(11)에 실시간으로 변경사항이 업데이트 되는 것을 의미한다.
도 2는 본 발명의 일실시예에 따른 클라이언트와 폴더형 리얼타임 캔버스 제공장치의 구성을 도시한 블럭도이다. 도 2에 도시된 바와 같이 본 발명의 일실시예에 따른 폴더형 리얼타임 캔버스 제공장치(12)는 송수신부(104), 데이터베이스(105), 캔버스 모듈(106), 오브젝트 모듈(107), 계층 정보 모듈(108)을 포함할 수 있다.
송수신부(104)는 각 클라이언트(10,11)와 폴더형 리얼타임 캔버스 제공장치(12)의 통신 채널로서, 클라이언트(10,11)에서 캔버스의 변경 정보가 폴더형 리얼타임 캔버스 제공장치(12)에 수신되거나, 폴더형 리얼타임 캔버스 제공장치(12)에서 클라이언트(10,11)에 업데이트 된 캔버스의 변경 정보가 송신되어서 클라이언트의 브라우저 또는 애플리케이션에 표시되도록 하는 구성이다.
데이터베이스(105)는 본 발명의 일실시예에 따른 리얼타임 캔버스에서의 오브젝트 관련 데이터를 저장하기 위한 스토리지 공간이다. 후술하는 바와 같이, 본 발명의 일실시예에 따른 리얼타임 캔버스에서는 다수의 클라이언트에서 오브젝트에 관한 생성, 변경, 삭제 요청(캔버스의 변경)이 발생하고, 이러한 다수의 요청이 폴더형 리얼타임 캔버스 제공장치(12)로 전달된다. 폴더형 리얼타임 캔버스 제공장치(12)는 이렇게 다수의 요청을 수신하고, 데이터베이스는 이러한 오브젝트 관련 정보인 오브젝트 정보를 저장한다. 오브젝트 정보는 리얼타임 캔버스의 서비스에 이용되고, 특히 새로운 클라이언트가 리얼타임 캔버스에 연결될 때, 리얼타임 캔버스의 동기화를 위해 이용될 수 있다.
캔버스 모듈(106)은 본 발명의 일실시예에 따른 폴더형 리얼타임 캔버스에서의 캔버스 정보를 데이터베이스(105)에서 로딩하여 클라이언트에 출력하고, 클라이언트에서 변경된 캔버스 정보를 송수신부(104)에서 수신하여 데이터베이스(105)에 저장하는 모듈을 의미한다. 캔버스 정보에는 캔버스 제목, 오브젝트 정보(혹은, 오브젝트 정보에 연결되도록 오브젝트 정보 테이블과 동일하게 참조하는 primary key), 계층 정보 등을 포함할 수 있다.
오브젝트 모듈(107)은 본 발명의 일실시예에 따른 폴더형 리얼타임 캔버스에서의 오브젝트 정보를 데이터베이스(105)에서 로딩하여 클라이언트에 출력 및 구현하고, 클라이언트에서 변경된 오브젝트 정보를 송수신부(104)에서 수신하여 데이터베이스(105)에 저장하는 모듈을 의미한다. 오브젝트 정보에는 오브젝트의 타입, 오브젝트의 크기 및 위치에 해당하는 좌표 등의 정보, 내용 정보, 오브젝트가 저장되는 캔버스 정보 등이 포함될 수 있다. 또한, 오브젝트 모듈(107)은 캔버스 오브젝트의 정보인 캔버스 오브젝트 정보도 출력 및 구현할 수 있다. 캔버스 오브젝트 정보에는 캔버스 제목, 해당 캔버스 오브젝트가 대표하는 캔버스에 연결되는 캔버스 정보, 오브젝트의 크기 및 위치에 해당하는 좌표 정보 등을 포함할 수 있다.
계층 정보 모듈(108)은 본 발명의 일실시예에 따른 폴더형 리얼타임 캔버스에 대한 각 캔버스의 계층 정보를 데이터베이스(105)에서 로딩하여 클라이언트에 출력하고, 클라이언트에서 변경된 계층 정보를 송수신부(104)에서 수신하여 데이터베이스(105)에 저장하는 모듈을 의미한다. 계층 정보에 따라 공유 또는 권한 부여의 범위가 달라질 수 있다. 권한 부여 여부는 상위 개념의 캔버스에는 적용이 되지 않고, 하위 개념의 캔버스에는 모두 적용될 수 있다. 제1클라이언트에서 상위 개념의 계층 정보를 포함하는 제1캔버스를 제2클라이언트에 대해 공유(예를 들면, 수정 권한 부여)를 허용하는 경우, 제1캔버스의 하위 개념의 계층 정보를 포함하는 제2캔버스도 함께 공유가 허용될 수 있다. 제1클라이언트에서 하위 개념의 계층 정보를 포함하는 제2캔버스를 제2클라이언트에 대해 공유를 허용하는 경우, 제2캔버스의 상위 개념의 계층 정보를 포함하는 제1캔버스는 공유가 허용되지 않도록 구성될 수 있다. 계층 정보 모듈(108)에서 계층 정보에 따라 공유 여부를 달리하는 것에 따라, 캔버스의 공유 범위 및 비밀 범위(특정 권한 부여의 범위)가 명확해지는 효과가 발생된다. 이때, 권한 부여의 종류로는 수정 권한, 보기 권한, 제안 권한 등 다양한 형태의 권한이 가능할 수 있다.
또한, 본 발명의 다른 실시예에 따르면, 이러한 계층 정보 모듈(108)의 계층 정보에 상위 개념 캔버스 정보를 포함할 수 있다. 예를 들어, 캔버스 A의 정보인 캔버스 A 정보, 캔버스 A에 포함되는 서브 캔버스(sub-canvas)인 캔버스 B의 오브젝트 정보인 캔버스 B 오브젝트 정보 및 캔버스 B에 대한 정보인 캔버스 B 정보, 캔버스 B에 포함되는 서브 캔버스(sub-canvas)인 캔버스 C의 오브젝트 정보인 캔버스 C 오브젝트 정보 및 캔버스 C에 대한 정보인 캔버스 C 정보가 각각 캔버스 모듈(106) 및 오브젝트 모듈(107)에 구성되는 경우를 상정할 수 있다. 이러한 경우, 캔버스 B 오브젝트 정보에는 상위개념인 캔버스 A 정보와 자신에 대한 정보인 캔버스 B 정보가 참조되거나 포함될 수 있다. 또한, 캔버스 C 오브젝트 정보에는, 상위 개념인 캔버스 B 정보와 자신에 대한 정보인 캔버스 C 정보가 참조되거나 포함될 수 있다. 따라서, 본 발명의 다른 실시에와 같이 데이터 테이블의 필드 구성을 통하여 오브젝트 정보에 상위 개념 캔버스 정보를 참조할 수 있도록 할 수 있고, 캔버스 정보 및 오브젝트 정보만으로 상하위 개념이 구현될 수 있는 효과가 발생된다.
본 발명의 일실시예에 따른 폴더형 리얼타임 캔버스에서는 write it first의 원칙을 수행하기 위하여 캔버스의 크기가 한정적인 대신, 특정 캔버스(제1캔버스)의 내에 별도의 캔버스(제2캔버스)를 오브젝트로 구성할 수 있는 것을 특징으로 할 수 있다. 또한, 이러한 제1캔버스와 제2캔버스는 폴더 형태의 계층적 구조로 구성되어, 제1캔버스가 상위 레벨, 제2캔버스가 하위 레벨로 구성될 수 있다. 제1캔버스가 클라이언트의 화면에 활성화된 상태에서는 제2캔버스가 제1캔버스의 특정 부분을 점유(occupy)하고 있는 오브젝트로 구성될 수 있다. 이때, 제2캔버스는 오브젝트로 구성되므로, 제1캔버스 내에서 자유롭게 이동, 크기 조절, 내용 변경 등이 가능하다. 본 발명의 일실시예에 따른 폴더형 리얼타임 캔버스에서는 하나의 캔버스 내에 다른 적어도 하나 이상의 캔버스를 오브젝트로 삽입할 수 있는 것이다.
도 3은 본 발명의 일실시예에 따른 리얼타임 캔버스와 편집툴 모듈을 도시한 도면이다. 도 3에 도시된 바와 같이, 리얼타임 캔버스(1)는 편집툴 모듈(2), 다양한 오브젝트를 포함할 수 있다.
리얼타임 캔버스(1)는 실시간으로 각 클라이언트의 디스플레이에 웹 화이트보드 서비스를 구현하기 위해 클라이언트의 브라우저 또는 애플리케이션 화면에 표시되는 영역으로서, 각종 오브젝트 및 편집툴 모듈(2)이 표시되는 구성이다.
편집툴 모듈(2)은 사용자의 조작에 대응하여 캔버스 상에 오브젝트를 생성하거나, 생성된 오브젝트의 속성을 변경하는데 이용되는 기능들의 집합인 메뉴 모듈일 수 있다. 본 발명의 일실시예에 따르면, 편집툴 모듈은 웹페이지 또는 애플리케이션 상에서 자바스크립트, HTML5, CSS 등으로 구현될 수 있다. 본 발명의 일실시예에 따른 편집툴 모듈(2)에는 그리기 도구, 포스트잇 도구, 코멘트 추가 도구, 파일 업로드 도구, 링크 삽입 도구, 유투브나 구글 드라이브와 같은 외부 소스 도구 등이 포함될 수 있다. 또한, 본 발명의 일실시예에 따르면 편집툴 모듈(2)에 캔버스 삽입 도구(a)가 포함될 수 있다.
오브젝트는 캔버스에 표시되어 폴더형 리얼타임 캔버스 제공장치(12)에 의해 클라이언트(10,11)들 간에 동기화가 이루어지는 대상을 의미한다. 본 발명의 일실시예에 따르면, 오브젝트는 그리기 오브젝트, 포스트잇 오브젝트, 코멘트 오브젝트, 파일 오브젝트, 링크 오브젝트, 유투브 오브젝트, 구글 드라이브 오브젝트 등을 포함할 수 있다. 또한, 본 발명의 일실시예에 따르면, 본 발명은 현재 사용자의 클라이언트의 화면에 표시된 캔버스의 하위 개념인 캔버스 오브젝트(b)로 더 포함되는 것을 특징으로 할 수 있다.
그리기 오브젝트(3)는 도 3에 도시된 바와 같이, 오브젝트 모듈(107)에 의해 구현되고 캔버스에 표시되는 점, 선, 면과 같은 추상화 객체이고, 각 좌표 코드로 구성될 수 있다.
포스트잇 오브젝트(4)는 도 3에 도시된 바와 같이, 오브젝트 모듈(107)에 의해 구현되고 문자 정보를 포함하는 사각 면의 형태로 캔버스 내에 구성될 수 있다.
코멘트 오브젝트(5)는 도 3에 도시된 바와 같이, 오브젝트 모듈(107)에 의해 구현되고 특정 오브젝트에 연결되는 문자 정보로 캔버스 내에 구성될 수 있다.
파일 오브젝트(6)는 도 3에 도시된 바와 같이, 오브젝트 모듈(107)에 의해 구현되고 클릭으로 열람하거나 다운로드 받을 수 있는 파일 정보로 캔버스 내에 구성될 수 있다.
링크 오브젝트(7)는 도 3에 도시된 바와 같이 오브젝트 모듈(107)에 의해 구현되고 클릭으로 열람할 수 있는 링크 정보로 캔버스 내에 구성될 수 있다.
유투브 오브젝트(8)는 도 3에 도시된 바와 같이, 오브젝트 모듈(107)에 의해 구현되고 캔버스 내에서 곧바로 유투브 동영상을 재생할 수 있는 형태의 링크로 캔버스 내에 구성될 수 있다.
구글 드라이브 오브젝트는 오브젝트 모듈(107)에 의해 구현되고 구글 드라이브 등의 클라우드 서비스에 업로드 된 파일의 링크로 캔버스 내에 구성될 수 있다.
캔버스 오브젝트(b)는 오브젝트 모듈(107)에 의해 구현되고 제1캔버스인 리얼타임 캔버스(1)의 하위 개념인 제2캔버스가 제1캔버스 내에 오브젝트로 표시되는 구성을 의미한다. 제2캔버스가 표시되는 캔버스 오브젝트(b)에는 제1캔버스와 마찬가지로 특정 좌표에 특정 크기로 오브젝트가 추상화되어 구성될 수 있다. 캔버스 오브젝트의 정보인 캔버스 오브젝트 정보에는 캔버스 제목 정보, 크기 및 위치에 해당하는 좌표 정보, 캔버스 오브젝트의 상위 캔버스에 대한 정보인 상위 캔버스 정보, 해당 캔버스 오브젝트가 참조하는 캔버스에 대한 정보인 참조 캔버스 정보가 포함될 수 있다.
제1클라이언트에서 캔버스 오브젝트(b)에 전체 화면을 요청하면 제2캔버스가 제1클라이언트의 브라우저 또는 애플리케이션의 전체 화면으로 출력될 수 있다. 본 발명의 일실시예에 따른 캔버스 오브젝트(b)를 이용하는 경우, 복수개의 캔버스를 그룹화해야 하는 경우, 특정 캔버스에 복수개의 캔버스를 캔버스 오브젝트(b)로 구성할 수 있게 되는 효과가 발생된다. 이에 따르면, 사용자가 아이디어를 계층적으로 정리하는데 상당히 용이한 효과가 발생된다. 사용자의 아이디어는 주로 꼬리에 꼬리를 물게 된다. 즉, 여러 개의 아이디어가 계층적으로 구성되게 되는데, 본 발명의 일실시예에 따른 폴더형 리얼타임 캔버스에 따르면, 이러한 계층적 아이디어를 용이하게 편집할 수 있는 효과가 발생된다.
도 4는 본 발명의 일실시예에 따른 폴더형 리얼타임 캔버스 제공방법을 도시한 것이다. 도 4에 도시된 바와 같이, 본 발명의 일실시예에 따른 폴더형 리얼타임 캔버스 제공방법은 캔버스 오브젝트 생성 요청 단계(S10), 캔버스 오브젝트 생성 요청 수신 단계(S20), 캔버스 오브젝트 계층 정보 생성 단계(S30), 캔버스 오브젝트 정보 송신 단계(S40), 캔버스 오브젝트 정보 수신 단계(S50)를 포함할 수 있다.
캔버스 오브젝트 생성 요청 단계(S10)는 제1클라이언트(10)에서 폴더형 리얼타임 캔버스 제공장치(12)에 캔버스 오브젝트의 생성 요청을 송신하는 단계이다. 사용자는 제1클라이언트(10)의 브라우저나 애플리케이션에 표시된 캔버스의 편집툴 모듈에서 캔버스 오브젝트를 선택하여 그 좌표를 선택하여 본 단계가 수행될 수 있다. 본 발명의 일실시예에 따른 캔버스 오브젝트의 생성 요청에는 캔버스 오브젝트를 생성하려는 캔버스 오브젝트의 크기, 위치를 정의하는 좌표 정보를 포함하는 캔버스 오브젝트 정보가 포함될 수 있다.
캔버스 오브젝트 생성 요청 수신 단계(S11)는 제1클라이언트(10)에서의 캔버스 오브젝트 생성 요청을 폴더형 리얼타임 캔버스 제공장치(12)가 수신하는 단계이다.
캔버스 오브젝트 계층 정보 생성 단계(S12)는 폴더형 리얼타임 캔버스 제공장치(12)에서 해당 캔버스와 캔버스 오브젝트의 계층을 결정하는 계층 정보를 생성하고, 해당 캔버스 오브젝트 정보에 계층 정보를 저장할 수 있다. 본 발명의 일실시예에 따른 계층 정보는 상위 개념 캔버스 정보를 포함할 수 있다.
캔버스 오브젝트 정보 송신 단계(S13)는 폴더형 리얼타임 캔버스 제공장치(12)에서 제1클라이언트(10)와 제2클라이언트(11)로 계층 정보가 포함된 캔버스 오브젝트 정보를 송신하는 단계이다.
캔버스 오브젝트 정보 수신 단계(S14)는 제1클라이언트(10)와 제2클라이언트(11)가 계층 정보를 포함한 캔버스 오브젝트 정보를 수신하는 단계이다.
도 5는 본 발명의 일실시예에 따른 폴더형 리얼타임 캔버스의 수정 방법을 도시한 것이다. 도 5에 도시된 바와 같이, 본 발명의 일실시예에 따른 폴더형 리얼타임 캔버스 수정 방법은, 캔버스 오브젝트 수정 요청 단계(S20), 캔버스 오브젝트 수정 요청 수신 단계(S21), 캔버스 오브젝트 정보 변경 단계(S22), 캔버스 오브젝트 정보 송신 단계(S23), 캔버스 오브젝트 정보 수신 단계(S24)를 포함할 수 있다.
캔버스 오브젝트 수정 요청 단계(S20)는 제1클라이언트(10)에서 기생성된 캔버스 오브젝트의 좌표 정보를 수정하거나, 캔버스 정보를 수정하거나, 오브젝트 정보를 수정하여, 수정된 캔버스 오브젝트 정보의 수정 요청을 폴더형 리얼타임 캔버스 제공장치(12)에 송신하는 단계이다.
캔버스 오브젝트 수정 요청 수신 단계(S21)는 폴더형 리얼타임 캔버스 제공장치(12)에서 수정된 캔버스 오브젝트 정보를 제1클라이언트(10)에서 수신하는 단계이다.
캔버스 오브젝트 정보 변경 단계(S22)는 폴더형 리얼타임 캔버스 제공장치(12)에서 수정된 캔버스 오브젝트 정보를 통해 업데이트 하는 단계이다.
캔버스 오브젝트 정보 송신 단계(S23)는 폴더형 리얼타임 캔버스 제공장치(12)에서 제1클라이언트(10), 제2클라이언트(11)로 수정된 캔버스 오브젝트 정보를 송신하는 단계이다.
캔버스 오브젝트 정보 수신 단계(S24)는 제1클라이언트(10), 제2클라이언트(11)에서 수정된 캔버스 오브젝트 정보를 수신하고, 수정된 캔버스 오브젝트 정보를 오브젝트 모듈에 의해 출력하는 단계이다.
본 발명의 변형예와 관련하여, 본 발명의 변형예에 따르면 폴더형 리얼타임 캔버스 제공장치에서 별도의 그리기 도구(Drawing Board)를 제공하고, 그리기 도구에서 작성된 그림 오브젝트를 캔버스에 임베드하도록 구성될 수 있다. 본 발명의 변형예에 따른 폴더형 리얼타임 캔버스 제공방법은, 그리기 도구 생성 요청 단계, 그림 수신 단계, 캔버스 임베드 단계를 포함할 수 있다.
도 6은 본 발명의 변형예에 따른 그리기 도구 생성 요청 단계를 도시한 예시이다. 도 6에 도시된 바와 같이, 그리기 도구 생성 요청 단계는 캔버스 외의 별도의 그리기 도구를 폴더형 리얼타임 캔버스 제공장치가 Pop-up시킬 수 있다.
도 7은 본 발명의 변형예에 따른 그림 수신 단계를 도시한 예시이다. 도 7에 도시된 바와 같이, 그림 수신 단계는 수신을 사용자가 그리기 도구에서 생성한 그림 데이터를 폴더형 리얼타임 캔버스 제공장치가 수신하는 단계이다.
도 8,9는 본 발명의 변형예에 따른 캔버스 임베드 단계를 도시한 예시이다. 도 8,9에 도시된 바와 같이, 캔버스 임베드 단계는 그림 수신 단게에서 생성된 그림 데이터를 폴더형 리얼타임 캔버스 제공장치가 캔버스에 임베드하는 단계이다.
실시예
이하에서는 본 발명의 일실시예에 따른 폴더형 리얼타임 캔버스 제공장치(12)에 저장되는 캔버스 정보 및 캔버스 오브젝트 정보에 대한 데이버베이스의 테이블 구조를 설명한다.
도 10은 본 발명의 일실시예에 따른 캔버스 정보 테이블(Canvas)을 도시한 것이다. 도 10에 도시된 바와 같이, 캔버스 정보 테이블은 Primary key가 캔버스의 고유 식별 id인 _id로 구성될 수 있고, name, type, public, url, visibility, creator 등의 필드가 VARCHAR 유형으로 캔버스 정보로 구성될 수 있다. 본 발명의 일실시예에 따른 캔버스 정보 테이블은 위와 같은 다양한 속성의 개별 캔버스 정보가 저장되고 로드되는 경로이다. 클라이언트가 캔버스 정보를 요청할 경우, 서버는 캔버스 정보 테이블 및 캔버스 정보을 전달하게 된다.
도 11은 본 발명의 일실시예에 따른 가상 캔버스 정보 테이블(AliasCanvas)을 도시한 것이다. 도 11에 도시된 바와 같이, 가상 캔버스 정보 테이블은 연결되는 캔버스를 정의하기 위해 canvas의 고유 id인 _id 필드(primary key)가 포함될 수 있다. 또한, 해당 가상 캔버스 정보가 참조하는 원본 캔버스의 고유 캔버스 id 값이 canvasid라는 필드를 통해 저장될 수 있다. 또한, 가상 캔버스의 url 정보가 aliasUrl 이라는 필드를 통해 저장될 수 있고, creator 필드가 포함될 수 있다. 또한, 본 발명의 일실시에에 따른 가상 캔버스 정보 테이블은 하나의 캔버스 정보 테이블에 적어도 하나 이상 연결될 수 있는 one-to-many relationship을 가지도록 구성될 수 있다.
본 발명의 일실시예에 따른 가상 캔버스 정보 테이블(AliasCanvas)에 따르면, 원본 캔버스의 내용이 변경되었을 때, 가상 캔버스에도 곧바로 적용될 수 있는 효과가 발생된다. 이러한 가상 캔버스 정보 테이블을 이용하지 않고, 캔버스 내에 다른 원본 캔버스의 캔버스 정보 테이블이 포함되도록 데이터 구조를 구성하는 경우, 원본 캔버스의 내용이 특정 사용자에 의해 변경되는 경우에 다른 사용자에게 업데이트 되지 않는 문제점이 발생될 수 있다. 또한, 본 발명의 일실시예에 따른 가상 캔버스 정보 테이블에 따르면, 사용자가 캔버스의 권한을 자유롭게 통제할 수 있는 장점도 있다. 본 발명의 일실시예에서는 AliasCanvas와 캔버스의 단순 복사 붙여넣기를 다르게 정의함으로써 사용자가 권한을 더 세부적으로 관리할 수 있는 효과가 발생된다.
도 12는 본 발명의 일실시예에 따른 오브젝트 정보 테이블(CanvasData)을 도시한 것이다. 도 12에 도시된 바와 같이, 오브젝트 정보 테이블은 캔버스에 저장되는 오브젝트들의 최소 단위에 대한 테이블이다. 오브젝트 정보 테이블은 포스트잇 형태의 오브젝트인 postit, 코멘트 형태의 오브젝트인 comment, 이미지 형태의 오브젝트인 image 등의 subType 필드를 포함할 수 있다. 또한, 저장되는 캔버스를 정의하기 위해 canvas의 고유 id인 _id 필드(primary key)가 포함될 수 있다.
오브젝트 정보 테이블은 오브젝트의 위치나 크기를 조정할 수 있도록 width, height, scaleX, scaleY, left, top 등의 필드를 포함할 수 있다. 또한, 본 발명의 일실시에에 따른 오브젝트 정보 테이블은 하나의 캔버스 정보 테이블에 적어도 하나 이상 연결될 수 있는 one-to-many relationship을 가지도록 구성될 수 있다.
본 발명의 일실시예에 따르면, sub-canvas인 캔버스 오브젝트는 오브젝트 정보 테이블(CanvasData)에 저장될 수 있다. 도 13은 본 발명의 일실시예에 따른 캔버스 오브젝트의 표시 형태를 도시한 예시이다. 도 13에 도시된 바와 같이, 캔버스 오브젝트는 폴더 형태로 표시될 수 있다. 캔버스 오브젝트가 폴더 형태로 디스플레이에 표시되는 경우, 원본 캔버스 상에 저장된 정보를 썸네일 형태로 표현되도록, 오브젝트 정보 테이블에는 thumbnail 필드를 포함할 수 있다.
도 14는 본 발명의 일실시예에 따른 오브젝트 정보 테이블, 캔버스 정보 테이블 및 가상 캔버스 정보 테이블의 관계를 도시한 테이블 관계도이다. 도 14에 도시된 바와 같이, 오브젝트 정보 테이블은 캔버스 오브젝트를 저장하기 위하여 가상 캔버스 정보의 id를 의미하는 aliasid 필드를 포함할 수 있다. 즉, 캔버스 오브젝트는 기본적으로 원본 캔버스인 캔버스 정보가 아닌 가상본 캔버스인 가상 캔버스 정보로 원본 캔버스를 참조하도록 구성될 수 있다. 본 발명의 일실시예에 따라 오브젝트 정보 테이블이 원본 캔버스인 캔버스 정보 테이블을 참조하지 않고, 가상 캔버스 정보 테이블을 참조하는 것에 의해 캔버스 오브젝트를 적은 데이터 크기로도 수행할 수 있게 되는 효과가 발생된다. 이에 따라, 캔버스 오브젝트가 존재하는 캔버스 정보를 불러오는 경우에도 클라이언트에서의 속도가 향상되는 효과가 발생된다.
또한, 캔버스 오브젝트가 저장된 오브젝트 정보 테이블은, 참조하는 원본 캔버스의 고유 id값인 canvasid 및 참조하는 가상본 캔버스의 고유 id값인 aliasid를 필드로 포함할 수 있다. 클라이언트는 canvasid 및 aliasid를 통해 원본 캔버스 경로에 대한 접근을 요청할 수 있다. 각 캔버스 오브젝트는 오브젝트 정보 테이블의 형태로 저장되며, 캔버스 내에서 또 다른 캔버스로의 접근을 가능하게 하는 효과가 발생된다.
도 15는 본 발명의 일실시예에 따른 오브젝트 정보 테이블에 의해 구현되는 캔버스 오브젝트의 캔버스 트리 구조를 도시한 것이다. 도 15에 도시된 바와 같이, 캔버스와 캔버스 오브젝트들은 캔버스 오브젝트를 오브젝트 정보 테이블에 저장하는 방법으로 Tree 구조로 구성될 수 있으며, 접근시 상위 캔버스의 권한을 상속받게 되는 효과가 발생된다.
예를 들어, 캔버스 A 내에 캔버스 B가 하위 폴더로 구성되는 경우, 캔버스 A가 User 1에게 수정 권한이 부여된다면, 캔버스 A의 하위 개념인 캔버스 B는 Tree 구조의 상하관계 때문에 User 1에게 수정 권한이 부여되게 된다. 하지만, 캔버스 B가 User 1에게 수정 권한이 부여된다면, 캔버스 B의 상위 개념인 캔버스 A는 Tree 구조의 상하 관계 때문에 User 1에게 수정 권한이 부여되지 않는다. 별도의 권한 부여 요청이 필요하게 된다. 이는 수정 권한뿐만 아니라 보기 권한, 제안 권한 등을 포함할 수 있다.
결국, 본 발명의 일실시예에 따르면, 수정 권한을 갖는 제1클라이언트에서 제1캔버스 내에 제2캔버스를 참조하는 오브젝트의 생성 요청이 송수신부에 수신되는 경우, 캔버스 모듈은 제2캔버스에 대한 정보인 제2캔버스 정보를 생성하고, 오브젝트 모듈은 제2캔버스를 참조하는 오브젝트에 대한 정보인 제2캔버스 오브젝트 정보를 생성하도록 구성될 수 있다.
또한, 제2캔버스 오브젝트 정보에는, 제1캔버스에 대한 정보인 제1캔버스 정보를 참조하는 정보인 제1캔버스 참조정보(도 6 내지 도 11에 따르면, "_id") 및 제2캔버스 정보를 참조하는 정보인 제2캔버스 참조정보("canvasid" 또는 "aliasid")가 계층 정보로서 포함될 수 있다.
예를 들어, 제1클라이언트 또는 상기 제2클라이언트에서 제1캔버스에 대한 출력 요청이 수신되는 경우, 캔버스 모듈이 제1캔버스 정보를 송수신부에 송신하고, 오브젝트 모듈이 제2캔버스 오브젝트 정보를 송수신부에 송신하게 될 수 있다.
또한, 제1클라이언트 또는 상기 제2클라이언트에서 제2캔버스 오브젝트에 대한 출력 요청이 수신되는 경우, 캔버스 모듈이 제2캔버스 정보를 송수신부에 송신하여 제1클라이언트 또는 제2클라이언트 중 제2캔버스 오브젝트의 출력을 요청한 디바이스의 디스플레이에 제2캔버스가 출력될 수 있다.
이상에서 설명한 바와 같이, 본 발명이 속하는 기술 분야의 통상의 기술자는 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 상술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로서 이해해야만 한다. 본 발명의 범위는 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 등가 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함하는 것으로 해석되어야 한다.
a: 캔버스 삽입 도구
b: 캔버스 오브젝트
2: 편집툴
3: 그리기 오브젝트
4: 포스트잇 오브젝트
5: 코멘트 오브젝트
6: 파일 오브젝트
7: 링크 오브젝트
8: 유투브 오브젝트
10: 제1클라이언트
11: 제2클라이언트
12: 폴더형 리얼타임 캔버스 제공 장치
100: 폴더형 리얼타임 캔버스 제공 시스템
104: 송수신부
105: 데이터베이스
106: 캔버스 모듈
107: 오브젝트 모듈
108: 계층 정보 모듈

Claims (7)

  1. 수정 권한이 부여된 제1클라이언트에서 상기 제1클라이언트에 표시된 리얼타임 캔버스인 특정 캔버스에 대한 오브젝트의 생성 요청을 수신하고, 상기 특정 캔버스의 상기 오브젝트 생성에 따른 변경 정보를 적어도 하나의 제2클라이언트에 송신하는 송수신부;
    상기 특정 캔버스에 대한 정보인 캔버스 정보를 데이터베이스에서 로딩하여 상기 제1클라이언트 및 상기 제2클라이언트에 출력하도록 상기 송수신부에 송신하는 캔버스 모듈; 및
    상기 송수신부로부터 상기 오브젝트의 생성 요청을 수신하고 상기 오브젝트의 생성 요청에 따라 상기 특정 캔버스에 포함되어 출력되는 오브젝트에 대한 정보인 오브젝트 정보를 생성하여 상기 데이터베이스에 저장하고, 상기 오브젝트 정보를 상기 데이터베이스에서 로딩하여 상기 제1클라이언트 및 상기 제2클라이언트에 출력하도록 상기 송수신부에 송신하는 오브젝트 모듈;
    을 포함하고,
    상기 제1클라이언트에서 제1캔버스 내에 제2캔버스를 참조하는 오브젝트의 생성 요청이 송수신부에 수신되는 경우, 상기 캔버스 모듈은 상기 제2캔버스에 대한 정보인 제2캔버스 정보를 생성하고, 상기 오브젝트 모듈은 상기 제2캔버스를 참조하는 오브젝트에 대한 정보인 제2캔버스 오브젝트 정보를 생성하며,
    상기 제2캔버스 오브젝트 정보에는, 상기 제1캔버스에 대한 정보인 제1캔버스 정보를 참조하는 정보인 제1캔버스 참조정보 및 상기 제2캔버스 정보를 참조하는 정보인 제2캔버스 참조정보가 계층 정보로서 포함되고,
    상기 제1클라이언트 또는 상기 제2클라이언트에서 상기 제1캔버스에 대한 출력 요청이 수신되는 경우, 상기 캔버스 모듈이 상기 제1캔버스 정보를 상기 송수신부에 송신하고, 상기 오브젝트 모듈이 상기 제2캔버스 오브젝트 정보를 상기 송수신부에 송신하며,
    상기 제1클라이언트 또는 상기 제2클라이언트에서 상기 제2캔버스 오브젝트에 대한 출력 요청이 수신되는 경우, 상기 캔버스 모듈이 상기 제2캔버스 정보를 상기 송수신부에 송신하고,
    상기 제1캔버스와 상기 제2캔버스는 폴더형의 계층 구조로 구성되는 것을 특징으로 하는, 폴더형 리얼타임 캔버스 제공장치.
  2. 제1항에 있어서,
    상기 송수신부가 상기 제1클라이언트에서 상기 제1캔버스에 대한 상기 제2클라이언트의 권한 부여 요청 또는 권한 변경 요청을 수신하는 경우, 상기 캔버스 모듈이 상기 제1캔버스의 권한 부여 또는 권한 변경과 함께 상기 제1캔버스에 오브젝트로 포함되어 있는 상기 제2캔버스의 권한 부여 또는 권한 변경도 수행하고,
    상기 송수신부가 상기 제1클라이언트에서 상기 제2캔버스에 대한 상기 제2클라이언트의 권한 부여 요청 또는 권한 변경 요청을 수신하는 경우, 상기 캔버스 모듈이 상기 제2캔버스의 권한 부여 또는 권한 변경을 수행하는 것을 특징으로 하는, 폴더형 리얼타임 캔버스 제공장치.
  3. 제1항에 있어서,
    상기 캔버스 모듈은, 상기 캔버스 정보를 참조하는 적어도 하나의 가상 캔버스 정보를 생성할 수 있고,
    상기 캔버스 정보와 상기 가상 캔버스 정보는 one-to-many의 형태로 연결되고, 상기 가상 캔버스 정보와 상기 오브젝트 정보는 one-to-many의 형태로 연결되는 것을 특징으로 하는, 폴더형 리얼타임 캔버스 제공장치.
  4. 폴더형 리얼타임 캔버스 제공장치가, 제1클라이언트에서 제1캔버스 내에 제2캔버스를 참조하는 오브젝트인 제2캔버스 오브젝트의 생성 요청을 수신하는 캔버스 오브젝트 생성 요청 단계;
    상기 폴더형 리얼타임 캔버스 제공장치가, 상기 제2캔버스에 대한 정보인 제2캔버스 정보를 생성하는 캔버스 정보 생성 단계;
    상기 폴더형 리얼타임 캔버스 제공장치가, 상기 제2캔버스 오브젝트에 대한 정보인 제2캔버스 오브젝트 정보를 생성하는 캔버스 오브젝트 정보 생성 단계; 및
    상기 폴더형 리얼타임 캔버스 제공장치가, 제2클라이언트에 상기 제1캔버스 정보 및 상기 제2캔버스 오브젝트 정보를 송신하는 캔버스 공유 단계;
    를 포함하고,
    상기 제2캔버스 오브젝트 정보에는, 상기 제1캔버스에 대한 정보인 제1캔버스 정보를 참조하는 정보인 제1캔버스 참조정보 및 상기 제2캔버스 정보를 참조하는 정보인 제2캔버스 참조정보가 계층 정보로서 포함되며,
    상기 제1캔버스와 상기 제2캔버스는 폴더형의 계층 구조로 구성되는 것을 특징으로 하는, 폴더형 리얼타임 캔버스 제공방법.
  5. 제4항에 있어서,
    상기 폴더형 리얼타임 캔버스 제공장치가, 상기 제1클라이언트 또는 상기 제2클라이언트에서 상기 제2캔버스 오브젝트에 대한 출력 요청을 수신하는 경우, 상기 제2캔버스 정보를 상기 제1클라이언트 또는 상기 제2클라이언트에 송신하는 것을 특징으로 하는, 폴더형 리얼타임 캔버스 제공방법.
  6. 제4항에 있어서,
    상기 캔버스 공유 단계 이후에,
    상기 폴더형 리얼타임 캔버스 제공장치가, 상기 제1클라이언트에서 상기 제1캔버스에 대한 상기 제2클라이언트의 권한 부여 요청 또는 권한 변경 요청을 수신하는 권한 요청 수신단계; 및
    상기 폴더형 리얼타임 캔버스 제공장치가, 상기 제1캔버스의 권한 부여 또는 권한 변경과 함께 상기 제1캔버스에 오브젝트로 포함되어 있는 상기 제2캔버스의 권한 부여 또는 권한 변경도 수행하는 권한 변경 수행단계;
    를 더 포함하거나,
    상기 폴더형 리얼타임 캔버스 제공장치가, 상기 제1클라이언트에서 상기 제2캔버스에 대한 상기 제2클라이언트의 권한 부여 요청 또는 권한 변경 요청을 수신하는 권한 요청 수신단계; 및
    상기 폴더형 리얼타임 캔버스 제공장치가, 상기 제2캔버스의 권한 부여 또는 권한 변경을 수행하는 권한 변경 수행단계;
    를 더 포함하는 것을 특징으로 하는, 폴더형 리얼타임 캔버스 제공방법.
  7. 폴더형 리얼타임 캔버스 제공장치가, 제1클라이언트에서 제1캔버스 내에 제2캔버스를 참조하는 오브젝트인 제2캔버스 오브젝트의 생성 요청을 수신하는 캔버스 오브젝트 생성 요청 단계;
    상기 폴더형 리얼타임 캔버스 제공장치가, 상기 제2캔버스에 대한 정보인 제2캔버스 정보를 생성하는 캔버스 정보 생성 단계;
    상기 폴더형 리얼타임 캔버스 제공장치가, 상기 제2캔버스 오브젝트에 대한 정보인 제2캔버스 오브젝트 정보를 생성하는 캔버스 오브젝트 정보 생성 단계; 및
    상기 폴더형 리얼타임 캔버스 제공장치가, 제2클라이언트에 상기 제1캔버스 정보 및 상기 제2캔버스 오브젝트 정보를 송신하는 캔버스 공유 단계;
    를 포함하고,
    상기 제2캔버스 오브젝트 정보에는, 상기 제1캔버스에 대한 정보인 제1캔버스 정보를 참조하는 정보인 제1캔버스 참조정보 및 상기 제2캔버스 정보를 참조하는 정보인 제2캔버스 참조정보가 계층 정보로서 포함되며,
    상기 제1캔버스와 상기 제2캔버스는 폴더형의 계층 구조로 구성되는 것을 특징으로 하는, 폴더형 리얼타임 캔버스 제공방법을 컴퓨터 상에서 수행하는 기록매체에 저장된 프로그램.
KR1020170043286A 2017-04-03 2017-04-03 폴더형 리얼타임 캔버스 제공장치 KR101936953B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170043286A KR101936953B1 (ko) 2017-04-03 2017-04-03 폴더형 리얼타임 캔버스 제공장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170043286A KR101936953B1 (ko) 2017-04-03 2017-04-03 폴더형 리얼타임 캔버스 제공장치

Related Child Applications (2)

Application Number Title Priority Date Filing Date
KR1020180174297A Division KR101969161B1 (ko) 2018-12-31 2018-12-31 가상 캔버스 정보를 이용한 폴더형 리얼타임 캔버스 제공장치
KR1020180174298A Division KR101969162B1 (ko) 2018-12-31 2018-12-31 캔버스 트리 구조를 이용한 폴더형 리얼타임 캔버스 제공장치

Publications (2)

Publication Number Publication Date
KR20180112399A true KR20180112399A (ko) 2018-10-12
KR101936953B1 KR101936953B1 (ko) 2019-01-11

Family

ID=63876450

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170043286A KR101936953B1 (ko) 2017-04-03 2017-04-03 폴더형 리얼타임 캔버스 제공장치

Country Status (1)

Country Link
KR (1) KR101936953B1 (ko)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160004759A1 (en) * 2014-07-03 2016-01-07 Adarsh Ramakrishnan Platform for Managing and Visualizing Data on a Computer

Also Published As

Publication number Publication date
KR101936953B1 (ko) 2019-01-11

Similar Documents

Publication Publication Date Title
US10705786B2 (en) Collaborative electronic whiteboard publication process
US7933956B2 (en) System and method to create a collaborative web-based multimedia layered platform
US9213684B2 (en) System and method for rendering document in web browser or mobile device regardless of third-party plug-in software
US8464164B2 (en) System and method to create a collaborative web-based multimedia contextual dialogue
KR101945064B1 (ko) 정보의 전자적 수집을 위한 기술
JP6797290B2 (ja) メッセージングサービス向けのコンテンツ管理機能
US20210286861A1 (en) User Experience Container Level Identity Federation and Content Security
US9665349B2 (en) System and method for generating embeddable widgets which enable access to a cloud-based collaboration platform
US20200272324A1 (en) Gesture based workflows in a collaboration system
US9176953B2 (en) Method and system of web-based document service
US10979235B2 (en) Content management system supporting third-party code
US20180335998A1 (en) Roaming clipboard copy/paste
US20120166953A1 (en) Techniques for electronic aggregation of information
US20200213313A1 (en) Methods and apparatus for establishing shared memory spaces for data access and distribution
US20200126513A1 (en) System and method for web enabled application execution and management
US10698958B2 (en) Method and system for processing information in social network system
US20200142549A1 (en) Content item creation from desktop tray
US20160344819A1 (en) Remote document signing
US20210294467A1 (en) Contact cards with dynamic interaction information
KR20160070254A (ko) 리얼타임 캔버스 제공 시스템, 리얼타임 캔버스 제공방법, 그 프로그램 및 이를 기록한 기록매체
US20190250999A1 (en) Method and device for storing and restoring a navigation context
WO2023246723A1 (zh) 对象访问方法、装置、电子设备、存储介质及程序产品
KR101969161B1 (ko) 가상 캔버스 정보를 이용한 폴더형 리얼타임 캔버스 제공장치
KR101969162B1 (ko) 캔버스 트리 구조를 이용한 폴더형 리얼타임 캔버스 제공장치
KR101936953B1 (ko) 폴더형 리얼타임 캔버스 제공장치

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
A107 Divisional application of patent