KR20150115850A - 특징의 버전 또는 다수의 편집기를 사용하는 공동 작업 - Google Patents

특징의 버전 또는 다수의 편집기를 사용하는 공동 작업 Download PDF

Info

Publication number
KR20150115850A
KR20150115850A KR1020157023567A KR20157023567A KR20150115850A KR 20150115850 A KR20150115850 A KR 20150115850A KR 1020157023567 A KR1020157023567 A KR 1020157023567A KR 20157023567 A KR20157023567 A KR 20157023567A KR 20150115850 A KR20150115850 A KR 20150115850A
Authority
KR
South Korea
Prior art keywords
document
service
version
format
modifications
Prior art date
Application number
KR1020157023567A
Other languages
English (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 마이크로소프트 테크놀로지 라이센싱, 엘엘씨
Publication of KR20150115850A publication Critical patent/KR20150115850A/ko

Links

Images

Classifications

    • G06F17/30893
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/197Version control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • G06F16/972Access to data in other repository systems, e.g. legacy data or dynamic Web page generation
    • G06F17/24
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/174Form filling; Merging

Abstract

다양한 플랫폼들 및 특징 버전들에 걸쳐 문서들에의 액세스 및 공동 작업이 지원되는 시스템이 제공된다. 클라이언트 디바이스가 문서를 원래의 파일 형식에 관계없이 디스플레이할 수 있게 하고 디스플레이된 문서의 수정들을 원래의 문서에 재통합시킬 수 있게 하는 변환 및 병합 서비스가 기술되어 있다. 디스플레이된 문서는 (전체적으로 또는 부분적으로) 가져오기되고, 변경들이 비교되고 원래의 문서에 병합되기 전에, 원래의 문서의 파일 형식으로 변환될 수 있다. 강조 표시, 코멘트 작성, 또는 서식 설정과 같은 특정의 작업을 수행하는 애플리케이션 프로그래밍 인터페이스들의 세트가 또한 제공된다.

Description

특징의 버전 또는 다수의 편집기를 사용하는 공동 작업{COLLABORATION USING MULTIPLE EDITORS OR VERSIONS OF A FEATURE}
공동 작업 소프트웨어(collaboration software)가 개선됨에 따라 공동 작업 및 파일 공유가 더 쉬워지고 있다. 그렇지만, 모든 디바이스가 공동 작성(co-authoring) 및 공동 작업을 지원할 수 있는 것은 아니다. 어떤 디바이스들은 공동 작업에 대해 준비되어 있지 않거나 디지털 콘텐츠에 액세스하여 그를 수정하는 모든 시스템들이 동일한 프로그램을 실행하고 있을 것을 필요로 한다. 어떤 사람이 디지털 콘텐츠에 액세스하고 그를 공유하며 공동 작성할 수 있는 것은 그 사람이 디지털 콘텐츠의 형식(format)을 인식하는 적절한 소프트웨어 프로그램, 및 디지털 콘텐츠를 보고 수정할 수 있도록 그 프로그램을 실행할 수 있고 다른 사람(또는 다른 플랫픔 상에서의 동일한 개인)에 의해 액세스될 때 그 수정이 전파되어 디지털 콘텐츠의 일부로서 반영될 수 있게 할 수 있는 디바이스를 가지고 있는지에 부분적으로 의존할 수 있다.
상이한 플랫폼들을 사용하는 디바이스들의 확산에 따라, 하나의 형식의 콘텐츠를, 다른 형식만을 액세스하여 디스플레이할 수 있거나 특징(feature)의 이전 버전으로 그 콘텐츠를 편집만 할 수 있는 프로그램을 실행하는 디바이스로, 공유, 액세스 및 편집하는 것은 어려운 일일 수 있다. 그에 부가하여, 특정의 애플리케이션들의 새로운 버전들에 새로운 특징들이 추가될 때, 새로운 버전들은 이전 버전과의 호환성(backwards compatibility)을 지원해야만 하고/하거나 장래 버전들을 지원하기 위해 확장성을 기본으로 제공(built in)해야만 한다.
특징의 버전들 또는 다수의 편집기들을 사용하는 공동 작업을 용이하게 하는 변환 및 병합 서비스가 기술되어 있다.
일 실시예에 따르면, 변환 및 병합 서비스를 수행하는 시스템에 의해 클라이언트에 서비스되는 문서는 일련의 경험들 및 그 내부의 콘텐츠이다. 문서는 제1 파일 형식(file format)으로 된 마스터 문서(master document)로서 시스템에 의해 검색가능한 위치에 저장될 수 있고, 클라이언트에 의해 요청될 때, 문서는 적절한 파일 형식으로 변환되어 클라이언트에 서비스될 수 있다. 서비스되는 문서는 또한 클라이언트에서 지원되는 특징들의 버전을 고려할 수 있다.
서비스되는 문서는 클라이언트 디바이스에 디스플레이될 수 있다. 서비스는 문서의 적용 범위(reach)를 (다양한 플랫폼들을 거쳐 디바이스들로) 확장시켜, 클라이언트 디바이스에 적절한, 그 문서에 대한 경험을 생성한다. 문서가 각각의 클라이언트 상에서 똑같게 보일 필요는 없다. 그 대신에, 문서가 사용자의 경험을 위해 그리고 디바이스에 적절하도록 커스터마이즈될 수 있다. 클라이언트 디바이스에 디스플레이되면, 사용자는 문서를 로컬적으로 수정할 수 있다. 수정들은 콘텐츠에 대한 수정들은 물론, 문서와 연관된 데이터에 대한 수정들도 포함할 수 있다. 예를 들어, 주석, 코멘트, 텍스트 편집, 이미지 편집, 및 기타 수정들이 행해질 수 있다. 사용자는 이어서 수정들을 다시 서버 상에 저장할 수 있다. 서버는, 사용자가 수정한 문서가 상이한 파일 형식이거나 특징의 상이한 버전들을 포함하는 경우에도, 수정들을 병합시킬 수 있다.
하나의 태양에 따르면, 제1 파일 형식의 문서를 제1 파일 형식과는 상이한 제2 파일 형식의 문서로 변환시킬 수 있는 변환 서비스가 제공된다. 다른 태양에 따르면, 문서의 콘텐츠를 하나의 버전으로부터 다른 버전으로 변환시킬 수 있는 변환 서비스가 제공된다. 추가의 태양에 따르면, 변환 서비스는 클라이언트 제약 및 능력에 기초하여 부가의 조정들을 제공할 수 있다. 또 다른 태양에 따르면, 개별 파일 형식 또는 버전의 문서에 행해진 수정들을 병합시키는 병합 서비스가 제공된다.
변환 서비스는 문서의 콘텐츠가 문서를 보는 각각의 클라이언트에 대해 커스터마이즈될 수 있게 하고, 병합 서비스는 문서에 대한 수정들이 마스터 문서와 재통합될 수 있게 한다. 마스터 문서는 콘텐츠와 문서에 행해진 수정들의 집합체(aggregation)일 수 있다. 어떤 경우들에서, 마스터 문서는 최고 충실도 문서(highest fidelity document)인 것처럼 보일 수 있다. 이와 같이, 하위 충실도 편집기(lower fidelity editor) 내로부터 행해진 수정들 또는 특징의 이전 버전을 사용한 수정들이 마스터 문서 내에 재통합될 때, 병합 서비스는 충실도 원상 회복(fidelity rehydration)을 수행할 수 있다.
이 발명의 내용은 이하에서 발명을 실시하기 위한 구체적인 내용에 추가로 기술되는 개념들 중 선택된 것을 간략화된 형태로 소개하기 위해 제공된다. 이 발명의 내용은 청구된 발명 요지의 주요 특징들 또는 필수적인 특징들을 확인하기 위한 것이 아니며, 청구된 발명 요지의 범주를 제한하기 위해 사용되기 위한 것도 아니다.
도 1은 특정의 실시예들이 수행될 수 있는 운영 환경의 다이어그램을 나타낸 도면.
도 2는 본 발명의 일 실시예에 따른, 종단점(endpoint)에 대한 운영 환경을 나타낸 도면.
도 3은 본 발명의 일 실시예에 따른 컴퓨팅 환경을 나타낸 도면.
도 4는 본 발명의 일 실시예에 따른, 변환 및 병합 서비스에 대한 예시적인 프로세스 흐름을 나타낸 도면.
도 5a 내지 도 5d는 변환 및 병합 서비스의 예시적인 시나리오들을 나타낸 도면.
도 6은 본 발명의 일 실시예에 따른, 편집기에 의해 수행되는 프로세스의 다이어그램을 나타낸 도면.
도 7은 본 발명의 일 실시예에 따른, 다수의 편집기들을 사용하여 문서들에 대해 공동 작업하는 방법의 프로세스 흐름도.
도 8은 일부 실시예들에서 사용되는 컴퓨팅 디바이스의 구성요소들을 나타낸 블록도.
각종의 플랫폼들 상에서의 액세스가능성(accessibility) 및 공동 작업을 가능하게 하는 콘텐츠 액세스 서비스가 개시되어 있다. 콘텐츠 액세스 서비스를 통해, 소비자들이 콘텐츠가 실제로는 소비자들의 디바이스를 통해 일반적으로 사용할 수 있거나 볼 수 있는 것과는 상이한 파일 형식으로 되어 있을 수 있다는 것을 소비자들이 알고 있을 필요 없이, 콘텐츠가 소비자들에게 제공될 수 있다. 특정의 실시예들에 따르면, 소비자들은 파일 형식 변경들로부터 그리고, 어떤 경우들에서, 플랫폼들을 거쳐 콘텐츠를 보는 것, 액세스하는 것 및 수정하는 것에 대한 제한들로부터 격리되어 있을 수 있다. 본 명세서에 기술된 기법들, 인터페이스들, 및 방법들은, 파일들 및 형식들로부터의 사용자 경험을 시나리오 기반 경험(scenario driven experience)으로 옮겨가게 하는 것을 용이하게 하기 위해 사용될 수 있다.
전자 문서는 일반적으로 종이 문서에 대한 디지털 대응물인 것으로 이해되고, 여기서 문서 편집기는 콘텐츠의 생성, 주석 첨부, 수정, 그리고 최근에는 공유 및 공동 작업을 용이하게 한다.
수정들은 콘텐츠에 대한 수정들은 물론, 문서와 연관된 데이터에 대한 수정들도 포함할 수 있다. 예를 들어, 코멘트, 텍스트 편집, 이미지 편집, 및 기타 수정들이 행해질 수 있다. 파일에 대한 수정들은 가법적(additive), 감법적(subtractive)인 동작, 부가의 콘텐츠, 서식 있는 콘텐츠(rich content)를 제공하는 동작, 코멘트를 추가하는 동작, 및 이미지 편집기 내에서 이미지를 수정하는 동작들을 포함할 수 있다.
본 발명의 특정의 실시예들은 문서에 새로운 특징을 추가하고 - DaaS(document as a service) -, 여기서 문서는 일련의 경험들 및 그 내부의 콘텐츠를 제공한다. 일련의 경험들은 변환 및 병합 서비스의 콘텐츠 액세스 서비스를 비롯한 일련의 서비스들에 대응한다. 변환 서비스는 문서의 콘텐츠가 문서를 보는 각각의 클라이언트에 대해 커스터마이즈될 수 있게 하고, 병합 서비스는 문서에 대한 수정들이 마스터 문서와 재통합될 수 있게 한다. 마스터 문서는 콘텐츠, 메타데이터, 및 문서에 행해진 수정들(콘텐츠에 대한 수정들 및 메타데이터에 대한 수정들을 포함함)의 집합체일 수 있다. 어떤 경우들에서, 마스터 문서는 최고 충실도 문서인 것처럼 보일 수 있다.
이와 같이, 하위 충실도 편집기 내로부터 행해진 수정들 또는 특징의 이전 버전을 사용한 수정들이 마스터 문서 내에 재통합될 때, 서비스는 충실도 원상 회복을 수행할 수 있다.
충실도 원상 회복은 특징의 이전 버전에 의해 수정된 콘텐츠 - 또는 보다 적은 기능을 갖는 편집기를 갖는 파일 형식 - 를 받아서 콘텐츠를 전체 기능의 최신 특징 버전에 반환하는 것을 지칭한다. 일례로서, 그래프 특징의 두 개의 버전 - 고급 차트(rich chart)(3D 차트 등)를 가지는 제1 버전 및 차트를 정적 이미지로서 해석할 수 있을 뿐인 제2 버전 - 이 주어진 경우, 콘텐츠가 제2 버전을 지원하는 편집기에서 편집된 후에, 정적 이미지가 제1 버전을 지원하는 편집기에서의 보기/편집을 위해 3D 차트로 다시 원상 회복될 수 있다. 제1 버전은 특징의 장래 버전(future version) 또는 이후 버전(later version)일 수 있고, 제2 버전은 그 특징의 구 버전(previous version) 또는 이전 버전(earlier version)일 수 있다. 다른 경우들에서, 양 버전이 동시에 그러나 이용가능한 기능에서 의도적인 차이들을 갖게 릴리스될 수 있다.
비록 마스터 문서가 문서로서 지칭되지만, 마스터 문서는 콘텐츠 및 최신의 편집 기능들을 추적하기에 적절한 임의의 형식으로 저장될 수 있다.
이들 서비스를 통해, 소비자 디바이스들은 클라이언트측 소프트웨어 또는 소비 디바이스(consumption device)에 복잡성을 추가함 없이 다양한 플랫폼들을 거쳐 콘텐츠에 액세스하여 그를 수정할 수 있다.
(문서 또는 다른 콘텐츠 및 관련 정보에 대한) 파일 형식은 파일의 콘텐츠에 관련된 정보(그리고, 어떤 경우에, 연관된 정보)가 인코딩되어 컴퓨터 판독가능 매체 상에 저장되는 방식을 지칭한다. 파일 유형(file type)은 파일 형식과 서로 바꾸어 사용될 수 있지만, 일반적으로 파일 형식들의 분류법(taxonomy)을 지칭한다. 예를 들어, 파일 유형은 HTML(hypertext markup language), ADOBE PDF(Portable Document Format), MICROSOFT WORD 문서(DOC), OOXML(Office Open Extensible Markup Language) 형식(DOCX) 등의 파일 형식들을 포함하는 문서 파일 유형일 수 있다. MICROSOFT WORD는 Microsoft Corp.의 등록 상표이고; ADOBE PDF는 Adobe Systems, Inc.의 등록 상표이다.
본 명세서에서 사용되는 바와 같이, "소비 형식(consumption format)"은 특정의 디바이스 또는 소프트웨어 프로그램에 의해 지원되는 파일 형식(예컨대, "지원되는 파일 형식")을 지칭한다. 지원되는 파일 형식인 것에 부가하여, 소비 형식은 디바이스(또는 프로그램)가 다양한 사용자 경험들을 어떻게 지원할 수 있는지에 관련되어 있는 파일 크기, 기능 등에 관련된 특징들을 포함할 수 있다.
DaaS(document-as-a-service) 패러다임으로 돌아가서, 변환 및 병합 서비스를 포함하는 콘텐츠 액세스 서비스는 클라우드 서비스 경험의 일부로서 제공될 수 있다. 이러한 방식으로, 콘텐츠가 하나의 형식으로 생성될 수 있고, 이어서 콘텐츠의 소비자에게 매끄러운 경험(seamless experience)을 제공할 수 있는 방식으로 임의의 플랫폼을 거쳐 액세스가능하고 편집가능할 수 있다.
도 1은 특정의 실시예들이 수행될 수 있는 운영 환경의 다이어그램을 나타낸 것이다.
도 1을 참조하면, 운영 환경은 하나 이상의 클라우드 또는 웹 서비스들을 포함할 수 있다. 본 명세서에 기술된 콘텐츠 액세스 서비스(100)는 클라우드 서비스 또는 웹 서비스일 수 있다.
클라우드 서비스는 일반적으로 확장가능 처리 및 저장 능력을 제공하는 호스팅되는 서비스(hosted service)를 지칭한다. 클라우드 컴퓨팅은 종종 가상화된 자원(virtualized resource)들을 포함할 수 있다. 클라우드 컴퓨팅에 의해 제공되는 자원들은 본질적으로 서비스로서 제공되고, 여기서 클라우드 컴퓨팅 고객들은 물리적 인프라를 소유하는 제3자 제공자로부터 자원들의 사용을 임대한다.
웹 서비스들이 클라우드 서비스에 의해 (예컨대, 대규모 분산 컴퓨팅 환경의 일부로서) 제공 및/또는 호스팅될 수 있다. 웹 서비스는, 네트워크를 통한 상호 운용가능한 기계-기계 상호작용을 지원하고 소프트웨어가 다른 소프트웨어 애플리케이션들에 연결할 수 있게 하는 소프트웨어 시스템이다.
웹 서비스는 기술적 표준들 및 프로토콜들의 모음을 제공한다. 예를 들어, 웹 서비스는 메시지들을 송신 및 수신하는 소프트웨어 또는 하드웨어 에이전트(예컨대, 특정의 서비스를 요청하고 제공하는 컴퓨팅 플랫폼)에 의해 구현될 수 있는 기능들을 제공한다. 애플리케이션들은, HTTP(hypertext transfer protocol), XML, JSON(JavaScript Object Notation), 및 SOAP(원래 simple object access protocol에 대한 두문자어임)와 같은 유비쿼터스 웹 프로토콜들 및 데이터 형식들을 통해 웹 서비스들에 액세스할 수 있다.
REST(representational state transfer) 프로토콜은 명명된 자원들에 액세스할 때 유용하고, 본 발명의 특정의 실시예들에서 사용될 수 있다. 본 발명의 다른 실시예들에서, SOAP가 이용될 수 있다. 어떤 경우들에서, Microsoft Corp.로부터의 FSSHTTP(File Synchronization Service via SOAP over HTTP)가 사용될 수 있다.
콘텐츠 액세스 서비스(100)는 네트워크를 통해 통신하는 하나 이상의 물리 및/또는 가상 서버들을 사용하여 구현될 수 있다. 네트워크는 셀룰러 네트워크(예컨대, 무선 전화), 점대점 전화 접속 연결(point-to-point dial up connection), 위성 네트워크, 인터넷, LAN(local area network), WAN(wide area network), WiFi 네트워크, 애드혹 네트워크 또는 이들의 조합을 포함할 수 있지만, 이들로 제한되지 않는다. 이러한 네트워크들은 허브, 브리지, 라우터, 스위치, 서버, 및 게이트웨이와 같은 다양한 유형의 네트워크 요소들을 연결시키기 위해 널리 사용된다. 네트워크는 인터넷과 같은 공용 네트워크 및/또는 안전한 기업 사설 네트워크와 같은 사설 네트워크를 비롯한 하나 이상의 연결된 네트워크들(예컨대, 다중 네트워크 환경)을 포함할 수 있다. 통상의 기술자라면 잘 알겠지만, 네트워크에의 액세스는 하나 이상의 유선 또는 무선 액세스 네트워크들을 통해 제공될 수 있다.
콘텐츠 액세스 서비스(100)는 가져오기/변환 부분(102) 및 렌더러/변환 부분(104)을 포함할 수 있다. 다양한 소스들(106)로부터의 문서들이 콘텐츠 액세스 서비스(100)로 가져오기될 수 있다. 가져오기/변환 부분(102)은 콘텐츠를 리더(reader)들에 의해 요구되는 특정의 형식들로 만드는 것에 대한 제약조건들을 감소시키거나 제거하는 것에 의해 자가 출판(self-publishing)을 용이하게 한다. 예를 들어, 서점 또는 다른 리포지토리(repository) 또는 저장소(store)로의 자가 출판은 작성자가 지정된 파일 형식 내에서 작업하는 것을 필요로 함 없이 달성될 수 있다. 작성자가 그의 작품을 출판하는 것을 더 쉽게 만들어주는 것에 의해, 리더 사용자는 더 많은 콘텐츠에 액세스할 수 있다.
"리더"는 주로 전자책[이북(ebook)] 및/또는 다른 전자 콘텐츠를 읽기 위해 설계된 소프트웨어 애플리케이션 및/또는 전자 디바이스를 지칭한다. 리더는 종종 주석 첨부(annotating), 강조 표시(highlighting), 책갈피 표시(bookmarking), 및 필기(scribing)와 같은 적어도 어떤 기본적인 편집 기능들을 포함한다.
예시적인 소프트웨어 이북 리더[또는 e-리더(e-reader)]는 Google Inc.로부터의 GOOGLE READER 애플리케이션, Apple Inc.로부터의 APPLE IBOOKS 애플리케이션, Adobe Systems Inc.로부터의 ADOBE ACROBAT EBOOK READER 애플리케이션, 및 Microsoft Corp.으로부터의 MICROSOFT READER를 포함한다. 예시적인 하드웨어 이북 리더(또는 이-리더)는 Amazon.com Inc.로부터의 AMAZON KINDLE 브랜드 e-리더 및 Barnes & Noble Inc.로부터 입수가능한 BARNES AND NOBLE NOOK 브랜드 e-리더 태블릿을 포함한다. 이북은 이북 리더에서 읽을 수 있는 디지털 형태로 된 텍스트 및/또는 이미지 기반 간행물이다. ePub(electronic publication), HTML, PDF, PCL(printer command language), 및 XML(extensible markup language)과 같은 콘텐츠를 작성 및 출판하기 위해 사용되는 다양한 이북 및 기타 디지털 콘텐츠 형식들이 있다.
어떤 경우들에서, [예컨대, 가져오기/변환 부분(102)을 통해] 가져오기된 문서들은 클라우드(108)의 일부로서 [주소 또는 URI(Uniform Resource Identifier)가 저장되는 것에 의해] 저장되거나 저장되어 있는 것처럼 보일 수 있다. 콘텐츠 액세스 서비스(100)은 저장소(108)에 대한 동작들로 분해될 수 있거나, 특정의 동작들을 [저장소(108)에 직간접적으로 액세스할 수 있는] 다른 서비스에 위임할 수 있다.
문서 파일들이 콘텐츠 액세스 서비스(100)로부터 내보내기될 수 있다. 내보내기되기 전에, 가져오기된 문서들 중 하나와 같은 문서 파일이 리더(110), 프린터(112), 제3자 사이트(114), 및 보조 변환 서비스(116)와 같은 종단점들에 의한 소비(예컨대, 디스플레이를 위한 렌더링, 상호작용, 수정, 또는 인쇄 및 추가의 변환들을 비롯한 부가의 동작들)를 위해 다양한 형식들로 변환될 수 있다.
종단점은 소비자가 서비스에 액세스하는 수단 - 상호작용을 위한 진입점 - 을 지칭한다. 다양한 실시예들에 따르면, 적용 범위를 확장시키고 콘텐츠가 디바이스에 기초하여 소비되는 방식을 변경하는 종단점 커스터마이즈(endpoint customization)가 제공된다.
종단점들은 하나 이상의 소비자 디바이스들일 수 있다.
소비자 디바이스는 서비스 또는 소스로부터 검색되거나 구입되는 데이터 또는 문서를 소비(즉, 보기/읽기, 편집, 또는 주석 첨부를 위해 사용)하는 데 사용되는 컴퓨팅 디바이스를 지칭한다. 소비자 디바이스는 전자책을 읽는 데 사용되는 주로 단일 목적의 컴퓨팅 디바이스(종종 리더라고 지칭됨) 또는 전자책 또는 기타 전자/디지털 콘텐츠를 읽기 위한 리더 또는 뷰어(viewer) 소프트웨어가 제공될 수 있는 다목적 컴퓨팅 디바이스일 수 있다.
"뷰어"는 특정의 프로그램과 연관된 형식 또는 파일 유형으로 문서 또는 데이터를 디스플레이하거나 디스플레이하는 것처럼 보일 수 있는 소프트웨어 또는 하드웨어 애플리케이션을 지칭한다. 특정의 파일 형식에 대한 뷰어는 특정의 파일 형식을 이해하고 파일의 시각화(visualization)를 제공할 수 있다. 전형적으로, 파일 형식의 "뷰어"는 고 충실도로 파일 형식을 시각적으로 제시하여, 작성자의 원래의 의도를 유지할 수 있는 것으로 가정된다. "리더"는 애니메이션화된 페이지 넘기기를 제공하는 것, 마지막 읽기 위치를 기억하는 것, 단어들을 탐색할 사전을 제공하는 것 등과 같은, "읽기" 경험과 주로 연관된 기능을 포함하는 한 유형의 뷰어이다.
서비스는 문서의 적용 범위를 (다양한 플랫폼들을 거쳐 디바이스들로) 확장시켜, 클라이언트 디바이스에 적절한, 그 문서에 대한 경험을 생성한다. 문서가 각각의 클라이언트 상에서 똑같게 보일 필요는 없다. 그 대신에, 문서가 사용자의 경험을 위해 그리고 디바이스에 적절하도록 커스터마이즈될 수 있다.
디바이스를 아는 것에 의해, 시스템은 [예컨대, 서비스(100)를 통해] 커스터마이즈된 파일 형식 설정을 제공할 수 있다.
예시적인 시나리오로서, NOOK 리더 또는 KINDLE 리더 사용자는 읽을 수 있는 콘텐츠가 있는지 브라우징하기 위해 그 디바이스를 사용할 수 있다. 서비스(100)는 어떤 디바이스가 사용되고 있는지를 결정하고 콘텐츠의 제시를 적절히 조정할 수 있다. 예를 들어, ePub2 또는 ePub3 형식은 NOOK 리더로 송신될 수 있고, AZW 형식은 KINDLE 리더로 송신될 수 있다.
커스터마이즈된 파일이 디바이스로 송신되면, 파일이 [서비스(100)를 통해] 다시 서버에 저장될 수 있다. 예를 들어, 클라이언트에 서비스되는 파일에 대해 특정의 동작들(편집기 애플리케이션을 실행하는 NOOK 리더, KINDLE 리더, 또는 태블릿 내에서의 주석 첨부 또는 편집과 같은 수정들)이 취해질 수 있고, 이들 수정이 파일에 대한 마스터 문서에 병합될 수 있다.
추가의 실시예들에서, 또한 사용자를 아는 것에 의해(예를 들어, 사용자가 디바이스로부터 그의 계정에 로그인할 때와 같이, 사용자로부터 식별자를 수신하는 것에 의해), 시스템은 [예컨대, 서비스(100)를 통해] 추가로, 사용자가 자신의 디바이스가 처리할 수 있는 버전 또는 파일 형식을 걱정할 필요 없이, 사용자가 많은 디바이스들에서 네트워크를 통해 그 자신의 파일들에 액세스할 수 있게 할 수 있다. 사용자가 그 자신의 파일들에 액세스할 수 있게 하는 것에 부가하여, 사용자를 아는 것에 의해, 시스템은 사용자와 연관된 작업에 관련된 문서에 특정의 콘텐츠를 제시하기 위해 파일을 커스터마이즈할 수 있다. 예를 들어, 사용자가 단락을 검토하는 일을 맡고 있는 경우, 그 단락이 문서에 액세스할 수 있는 모든 사용자들 대신에 식별된 사용자에게 제공될 수 있다.
종단점은 서비스(100)와 두 가지 일반적인 카테고리의 통신을 가질 수 있다. 하나는 양방향의 풍부한 경험이고, 다른 하나는 보다 제한된 경험이다. 양 경우에서, 본 발명의 실시예들을 사용하는 것에 의해, 종단점은 파일 형식 변환을 처리하거나, 모든 형식들을 렌더링할 수 있거나, 콘텐츠의 공동 작성을 위한 계층을 포함할 필요가 없다.
다양한 풍부성(richness)의 종단점이 본 발명의 다양한 실시예들에 의해 지원될 수 있다. 본 명세서에서 사용되는 바와 같이, "풍부성"은 애플리케이션에서 이용가능한 경험들의 다채로움(spectrum) 및 애플리케이션이 사용자에게 특정의 콘텐츠 및 기능을 제공할 수 있는 것을 지칭한다. 예를 들어, 콘텐츠의 편집 및 조작이 이용가능한 모든 기능을 갖춘 애플리케이션(full featured application)을 지원하는 디바이스[예컨대, 종단점 편집기(118)]를 통해 가장 풍부한 소비 경험이 이용가능할 수 있다. 보다 제한된 경험은 콘텐츠의 편집 및 조작을 위한 몇몇 기능이 유지되는 작성 도구(authoring tool)[예컨대, 제한된 종단점 편집기(120)]를 포함한다. 보다 제한된 경험[또는 "경량 편집(light-weight editing)"]과 모든 기능을 갖춘 편집기[또는 "중량 편집(heavy editing)"] 간의 차이는 경량 편집이 주석 첨부 및 코멘트 작성(commenting)만을 지원할 수 있다는 것이다.
콘텐츠를 볼 수 있는 리더[예컨대, 소비자 디바이스(122)]는 일정 범위의 지원되는 풍부성을 가질 수 있다. 특징의 모든 편집기 유형들은 물론 버전들이 지원될 수 있다.
액세스 서비스(100)에 의해 제공되는 변환 및 병합 서비스가 클라이언트 디바이스 또는 다른 서버[예컨대, 리더(110) 또는 소비 디바이스(122), 종단점 편집기(118), 또는 소비 및 제한된 종단점 편집기(120)]에 의해 직접 요청될 수 있다. 일부 실시예들에서, 서버(도 2와 관련하여 기술된 것 등) 또는 제3자 사이트(예컨대, 114) 또는 보조 변환 서비스(예컨대, 116)는 클라이언트 디바이스를 대신하여 서비스(100)에 액세스할 수 있다. 프린터(112)가 또한 변환 및 병합 서비스(100)로부터 직접 또는 다른 클라이언트 디바이스를 통해 콘텐츠를 수신할 수 있다.
종단점 편집기(118)가 웹 서비스[예컨대, 서비스(100)]와 통신할 수 있는 하나의 프레임워크는 클라이언트 애플리케이션이 FSSHTTP API(application programming interface)를 사용하여, MICROSOFT SHAREPOINT 웹 애플리케이션 플랫폼과 같은, 서버 상에서 실행 중인 문서 및 파일 관리 및 공동 작업 프로그램에 대한 변경들을 효율적으로 동기화시킬 수 있게 하는 프레임워크를 통하는 것이다. FSSHTTP 프로토콜의 클라이언트측은 통과(pass-through)이다. 예를 들어, 애플리케이션 계층(application layer)과 같은 상위 계층 프로토콜에 의해 행해지는 호출은 전송 계층(transport layer)으로 직접 전달되고, 전송 계층에 의해 반환되는 결과는 다시 상위 계층 프로토콜 또는 애플리케이션으로 직접 전달된다.
API는 일반적으로 두 개 이상의 애플리케이션이 서로 통신할 수 있게 하는 프로그래밍 명령어들 및 표준들의 세트이고, 흔히 HTTP 요청 메시지들의 세트 및 응답 메시지들에 대한 지정된 형식 또는 구조로서 구현된다. 메시지는 정보 자원(information resource)을 포함할 수 있다. 자원은 URI(uniform resource identifier)에 의해 식별될 수 있는 정보이고, 파일, 동적으로 발생된 쿼리 결과, CGI(common gateway interface) 스크립트의 출력, 몇 개의 언어로 이용가능한 문서 등일 수 있다.
변환 및 병합 서비스(100)는 더 광범위한 클라우드 서비스(130)는 물론 WAC(web application component)(132)와 연관되어 있을 수 있다. WAC는 사용자가 브라우저에서 문서를 보고 편집할 수 있게 하는 컴포넌트(component)이다. WAC는 콘텐츠를 소비하고 편집하는 것에 의해 종단점으로서 뿐만 아니라 어떤 병합 및 변환 서비스 기능을 제공하는 것에 의해 서비스로서도 기능할 수 있다. 이러한 실시예들에서, 사용자는 인프라 및 플랫폼을 관리하는, 클라우드 상의 애플리케이션 소프트웨어 및 데이터베이스에 액세스한다. 최종 사용자는 브라우저 또는 앱(app)(스마트폰 및 태블릿과 같은 모바일 디바이스를 위해 설계된 애플리케이션)을 통해 클라우드 상에서 호스팅되는 소프트웨어 애플리케이션에 액세스한다. 일례가 도 2와 관련하여 기술된다.
도 2는 본 발명의 일 실시예에 따른, 종단점에 대한 운영 환경을 나타낸 것이다. 도 2를 참조하면, 클라이언트(210)와 서버(220)는 네트워크(230)를 통해 통신한다.
네트워크(230)는 인터넷, 인트라넷(intranet), 또는 엑스트라넷(extranet)일 수 있고, 셀룰러(예컨대, 무선 전화) 네트워크, 인터넷, LAN(local area network), WAN(wide area network), WiFi 네트워크, 애드혹 네트워크 또는 이들의 조합(이들로 제한되지 않음)을 비롯한 임의의 적절한 통신 네트워크일 수 있다.
앞서 기술된 바와 같이, 이러한 네트워크들은 허브, 브리지, 라우터, 스위치, 서버, 및 게이트웨이와 같은 네트워크 요소들의 연결을 포함할 수 있다. 네트워크(230)는 인터넷과 같은 공용 네트워크 및/또는 안전한 기업 사설 네트워크와 같은 사설 네트워크를 비롯한 하나 이상의 연결된 네트워크들(예컨대, 다중 네트워크 환경)을 포함할 수 있다. 통상의 기술자라면 잘 알겠지만, 네트워크(230)에의 액세스는 하나 이상의 유선 또는 무선 액세스 네트워크들(도시 생략)을 통해 제공될 수 있다.
클라이언트(210) 및 서버(220)는 하나 이상의 CPU(central processing unit)들, 메모리, 대용량 저장소, 및 I/O 디바이스들(예컨대, 네트워크 인터페이스, 사용자 입력 디바이스)로 구성된 컴퓨팅 시스템들을 포함할 수 있다. 컴퓨팅 시스템의 요소들은 버스를 통해 서로 통신할 수 있다. 컴퓨팅 시스템의 하드웨어 플랫폼은 개인용 컴퓨터, 서버 컴퓨터, 핸드헬드 또는 랩톱 디바이스, 다중 프로세서 시스템, 마이크로프로세서 기반 시스템, 프로그램가능 가전 제품, 및 이상의 시스템들 또는 디바이스들 중 임의의 것을 포함하는 분산 컴퓨팅 환경(예컨대, 클라우드 기반 컴퓨팅 시스템)(이 경우, 애플리케이션 기능, 메모리, 데이터 저장 및 검색 그리고 다양한 처리 기능들이 인터넷 또는 인트라넷과 같은 분산 컴퓨팅 네트워크를 통해 서로 원격적으로 동작될 수 있음)(이들로 제한되지 않음)을 비롯한 많은 형태들로 구현될 수 있다.
특정의 실시예들에서, 클라이언트(210)는 개인용 컴퓨터, 태블릿, 리더, 모바일 디바이스, PDA(personal digital assistant), 스마트폰, 랩톱(또는 노트북 또는 넷북) 컴퓨터, 게임 디바이스 또는 콘솔, 데스크톱 컴퓨터, 또는 스마트 텔레비전(이들로 제한되지 않음)을 비롯한 컴퓨팅 디바이스로서 구현될 수 있다.
특정의 실시예들에서, 서버(220)는 서버 컴퓨터, 엔터프라이즈 컴퓨터, 개인용 컴퓨터, 다중 프로세서 시스템, 마이크로프로세서 기반 시스템, 및 이들의 조합(이들로 제한되지 않음)을 비롯한 컴퓨팅 디바이스로서 구현될 수 있다. 클라이언트 컴퓨팅 디바이스들 및 서버 컴퓨팅 디바이스들의 열거가 제한하기 위한 것이 아니라는 것과 클라이언트와 서버가 동일하거나 상이한 형태로 구현될 수 있다는 것을 잘 알 것이다.
클라이언트 컴퓨팅 디바이스(210)는 운영 체제(211) 및 [예시된 실시예에서, 워드 프로세싱 또는 편집기 애플리케이션(212), 웹 브라우저 애플리케이션(213), 및/또는 하나 이상의 다른 애플리케이션들과 같은] 하나 이상의 애플리케이션 프로그램들을 실행하도록 구성되어 있다.
운영 체제(211)는 클라이언트 컴퓨팅 디바이스(210)의 동작을 제어하기 위한 컴퓨터 프로그램이다. 애플리케이션 프로그램은 본 명세서에 기술된 것과 같은 다양한 기능을 제공하기 위해 운영 체제(211) 상에서 실행하도록 구성된 실행가능 프로그램이다. 워드 프로세싱 애플리케이션은 일반적으로 입력(typing), 편집, 서식 설정, 저장, 인쇄, 및 코멘트 작성을 용이하게 하도록 구성된 애플리케이션 프로그램이다. 편집기 애플리케이션은 편집 또는 주석 첨부 도구들을 제공하는 임의의 애플리케이션일 수 있고, Microsoft Corp.로부터 입수가능한 MICROSOFT OFFICE, Google Inc.로부터 입수가능한 GOOGLE DOCS, Apache Software Foundation으로부터 입수가능한 APACHE OPENOFFICE, 또는 Zoho Corporation으로부터 입수가능한 ZOHO OFFICE와 같은 워드 프로세싱 애플리케이션 또는 다른 생산성 애플리케이션일 수 있다.
생산성 애플리케이션은 워드 프로세싱 프로그램, 공동 작업 프로그램, 프레젠테이션 프로그램, 스프레드시트 프로그램, 및 스토리텔링(storytelling)/메모 작성 프로그램(이들로 제한되지 않음)을 포함한다.
웹 브라우저 애플리케이션(213)은 월드 와이드 웹("웹") 상의 정보 자원들은 물론, 네트워크(230)를 통해 사설 네트워크 내의 웹 서버들에 의해 제공되는 자원들을 검색하고 탐색하며 정보 자원들을 사용자에게 제시하기 위한(예컨대, 디스플레이를 위해 렌더링하기 위한) 애플리케이션 프로그램이다. 더욱이, 웹 브라우저 애플리케이션(213)은 사용자가 서버에 의해 제공되는 정보 및 다양한 기능들에 액세스할 수 있게 한다.
예시된 서버 컴퓨터(220)는 서버 운영 체제(221), 서버 워드 프로세싱 또는 편집기 애플리케이션(222)과 같은 하나 이상의 애플리케이션 프로그램들, 및/또는 하나 이상의 다른 애플리케이션들을 실행하도록 구성되어 있다. 서버(220)는 또한 서비스를 호스팅하고(그리고 도 1에 기술된 것과 같은 WAC(132)를 포함하고) 있을 수 있다.
서버 운영 체제(221)는 서버 컴퓨터(210)의 동작을 제어하기 위한 컴퓨터 프로그램이고, 애플리케이션 프로그램은 본 명세서에 기술된 것과 같은 다양한 기능을 제공하기 위해 서버 운영 체제(221) 상에서 실행하도록 구성된 실행가능 프로그램이다. 서버 워드 프로세싱 또는 편집기 애플리케이션(222)은, 일부 실시예들에서, 앞서 기술된 워드 프로세싱 또는 편집기 애플리케이션(212)과 유사하게 구성된 웹 기반 애플리케이션 프로그램이다. 서버 워드 프로세싱 또는 편집기 애플리케이션(222)은 워드 프로세싱 또는 편집기 애플리케이션(212)과 동일한 기능을 제공할 수 있다.
일부 실시예들에서, 서버 컴퓨터(220)는 서버 워드 프로세싱 또는 편집기 애플리케이션(222)을 실행하도록 구성되어 있고, 클라이언트/서버 구성에서 클라이언트 컴퓨팅 디바이스(210)는 서버 워드 프로세싱 또는 편집기 애플리케이션(222)과 상호작용하기 위해 서버 컴퓨터(220)에 액세스하도록 구성되어 있다.
클라이언트-서버 관계에 있는 컴퓨팅 디바이스들 간의 통신은 클라이언트가 특정의 자원에의 액세스를 요구하거나 특정의 작업을 수행하도록 요구하는 요청을 서버로 송신하는 것에 의해 개시될 수 있다. 서버는 이어서 요청된 동작들을 수행하고 응답을 다시 클라이언트로 송신할 수 있다.
하나의 실시예에서, 클라이언트 웹 브라우저 애플리케이션(213)은 웹 기반 워드 프로세싱 또는 편집기 애플리케이션(222)에 액세스하기 위해, 서버[예를 들어, 서버(220)]와 연결하는 데 사용된다.
클라이언트(210) 및 서버(220)는 네트워크(230)를 통해 변환 및 병합 서비스(240)에 액세스할 수 있다. 클라이언트(210) 및 서버(220) 상에서 실행 중인 애플리케이션들은 HTTP, XML, JSON 및 SOAP와 같은 보편화된 웹 프로토콜들 및 데이터 형식들을 통해, 또는 FSSHTTP 프로토콜을 통해 서비스(240)에 액세스한다.
도 3은 본 발명의 일 실시예에 따른 컴퓨팅 환경을 나타낸 것이다. 도 3에 예시된 바와 같이, 사용자(300)에 대한 컴퓨팅 환경은 [데스크톱(311), 랩톱(312), 스마트폰(313), 태블릿(314), 리더(도시 생략), 게임 콘솔(도시 생략), 스마트 텔레비전(도시 생략) 등과 같은] 다수의 클라이언트들(310), 및 네트워크(330)를 통해 연결된 서버(320)를 포함할 수 있다.
도 2의 네트워크(230)와 관련하여 앞서 기술된 바와 같이, 네트워크(330)는 인터넷, 인트라넷, 또는 엑스트라넷일 수 있고, 셀룰러(예컨대, 무선 전화) 네트워크, 인터넷, LAN(local area network), WAN(wide area network), WiFi 네트워크, 애드혹 네트워크 또는 이들의 조합(이들로 제한되지 않음)을 비롯한 임의의 적절한 통신 네트워크일 수 있다.
클라이언트(들)(310) 및 서버(320)는 클라이언트(220) 및 서버(230)와 관련하여 기술된 바와 같이 구성된 컴퓨팅 시스템들을 포함할 수 있다.
각각의 클라이언트(310)는 콘텐츠 액세스 서비스에 의해 서버(320)에 의해 제공되는 문서(및 그의 콘텐츠)(340)를 보고 편집(및/또는 주석 첨부)하기 위한 소프트웨어 애플리케이션을 포함할 수 있다.
사용자(300)는 다수의 클라이언트들(310)[예컨대, 사무실에 있는 데스크톱 컴퓨터(311), 집에 있는 랩톱(312), 및 모바일 전화/스마트폰(313)]을 가질 수 있고, 서버(320)로부터 검색된 이북 및 기타 디지털 콘텐츠를 읽기 위해서는 물론 콘텐츠를 편집 및/또는 주석 첨부하기 위해 이들 클라이언트(310) 상에서 실행 중인 소프트웨어 이북 리더 또는 문서 뷰어 또는 편집기를 사용할 수 있다.
서버(320)는 변환 서비스 및 병합 서비스를 (콘텐츠 액세스 서비스의 일부로서) 제공하도록 구성된 하드웨어 디바이스 및/또는 소프트웨어 프로그램이다. 변환 서비스는 사용자가 콘텐츠에 액세스하기 위해 사용하고 있는 특정의 클라이언트(310)에 의해 직접 지원되지 않는 파일 형식으로 되어 있을 수 있는 콘텐츠(심지어 사용자 자신의 콘텐츠)에 액세스할 수 있게 하고; 병합 서비스는 사용자(300)에 의해 행해진 변경들을 데이터베이스(350)에 저장된 마스터 문서(345)에 재통합시킨다.
서버(320)에 의해 제공되는 서비스들(또는 기능들) 중 하나 이상은 클라우드 컴퓨팅 환경에서 실행될 수 있다. 그에 부가하여, 서버(320)는 API를 통해 노출된 애플리케이션들을 포함할 수 있다(그리고/또는 서비스를 호스팅할 수 있음).
특정의 실시예들에 따르면, 문서를 클라이언트(310) 또는 데이터베이스[데이터베이스(350) 등]로부터 가져오기할 수 있는 시스템[서버(320)를 포함함]이 제공될 수 있다. 가져오기된 문서는 마스터 문서(345)인 것으로 생각될 수 있거나, 마스터 문서(345)가 가져오기된 문서로부터 생성되고, 예를 들어, 서버(320)와 연관된 데이터베이스(350)에 저장될 수 있다.
서버(320)는 문서(345)를 소비자 디바이스[예컨대, 데스크톱(311), 랩톱(312), 스마트폰(313), 태블릿(314), 리더(도시 생략), 게임 콘솔(도시 생략) 등]에 적절한 형식으로 변환시킬 수 있다.
사용자(300)는 각각의 디바이스(예컨대, 311, 312, 313, 314)를 거쳐 마스터 문서(345)의 적절한 버전[예컨대, 문서(340)의 형태로 됨]에 액세스할 수 있다. 예를 들어, 문서(340)가 임의의 디바이스 및 플랫폼을 거쳐 나타날 수 있다. 예를 들어, 랩톱(312) 상의 하나의 프로그램 내에서 문서(340)에 대해 작업하고 있는 사용자(300)는 그 변경들을 갖는 문서를 저장할 수 있다. 문서를 저장하는 것은 병합 서비스를 호출할 수 있다. 예를 들어, 도 5b 내지 도 5d에 도시된 바와 같이, 문서 전체(도 5b), 변경(델타)(도 5c), 또는 특정의 수정(도 5d)이 마스터 문서와 병합시키기 위해 서버로 반환될 수 있다.
실제의 물리 파일이 [데이터베이스(350)와 같은 클라우드 저장소의 일부로서] 클라우드에 저장될 수 있거나 그렇지 않을 수 있다. 파일이 네트워크를 통해 서비스에 의해 액세스될 수 있는 서버 또는 컴퓨터 또는 임의의 저장 위치에 저장될 수 있다. 마스터 문서(또는 다른 가져오기된 파일)는 요청 시에 가져오기되어 변환될 수 있는 어드레싱가능 파일들의 모음으로서 서버(320)에 저장될 수 있다.
클라이언트 디바이스[랩톱(316) 등] 상의 다른 사용자(360), 또는 태블릿(314)과 같은 제2 디바이스 상의 제1 사용자(300)는 문서(340)를 열 수 있고, 그들의 경험은 문서(340)가 디바이스(316)[또는 제1 사용자(300)가 문서를 액세스하고 있는 제2 디바이스(314)] 내에서 작업가능한 문서라는 것이다. 디바이스(316)를 갖는 제2 사용자(360)[또는 제2 디바이스 상의 제1 사용자(300)]는 이어서 편집 후에 문서를 저장할 수 있고, 서비스는 변경들을 병합시킬 것이다.
실시예들에 따르면, 각각의 클라이언트(310)는 클라이언트에 적절한 형태로 저장된 파일을 가지고 있는 것으로 생각한다. 파일을 열고 데이터에 액세스하기 위해 클라이언트에서 파일을 변경할 필요가 없다. 예를 들어, 애플리케이션은 여전히 예상된 대로 문서를 열 수 있다 - 클라이언트가 적절한 파일 형식을 수신하는지에 대해서는 서버가 신경쓰고 있음 -. 클라이언트(310)에서, 사용자(300, 360)는 예상된 프로세스에 따라 문서를 열고, 변경하며, 저장한다. 서버는 종단점의 한계를 이해하고, 적절한 형식을 디바이스에 제공한다.
시스템이 어떤 유형의 디바이스 또는 소프트웨어가 클라이언트(310) 상에서 이용가능한지를 알고 그에 따라 사용자의 경험을 조정하도록 서버(320) 및 소비자/클라이언트 디바이스(310)가 통신한다.
서버(320)는 종단점에서 사용자 에이전트/클라이언트 특성들을 식별하도록 구성될 수 있다. 식별은 종단점[예컨대, 클라이언트(310)]으로부터 서버(320)로 송신되는 활성 또는 암시적 통지에 기초할 수 있다. 서버(320)는 클라이언트 경험은 물론 지속된 경험(예컨대, 마스터 문서의 저장된 사본)을 조정하도록 추가로 구성될 수 있다.
특정의 실시예들에 따르면, 서비스되는 문서(340)가 보다 작은(또는 보다 큰) 디스플레이 크기에 대응하기 위해 위해 재배치(reflow)될 수 있고, 부가의 조정들이 행해질 수 있다.
재배치는 제한된 디스플레이 또는 창에 대해 콘텐츠를 보는 것을 조정하는 것을 지칭하고, 이 경우 텍스트는 읽기 쉽도록 하기 위해 그의 원래의 크기로 유지될 수 있는 반면, 이미지들은 한 눈에 보일 수 있도록 크기가 감소된다.
부가의 조정의 일례로서, 고 해상도 디바이스는 고 해상도 콘텐츠를 서비스받을 수 있는 반면(보다 높은 폼 팩터는 보다 많은 객체들을 수용할 수 있음), 전화는 (예를 들어, 문서 내의 사진의 12 메가픽셀 버전 대신에) 저 해상도 이미지를 수신할 수 있다. 그에 부가하여, 터치 기반 디바이스는 문서에 터치 반응 특징(touch responsive feature)들을 추가시킬 수 있다. 문서에 관한 코멘트 작성 및 워크플로우 요소(work-flow element)들(할 일 항목 등)을 추가하는 것을 가능하게 하는 것들(이들로 제한되지 않음)을 비롯한 추가적인 커스터마이즈된 종단점 서비스들이 또한 제공(예컨대, API를 통해 노출)될 수 있다. 보안 설정 및 권한 관리(rights management)가 또한 클라이언트에 따라 조정될 수 있다. 예를 들어, 구 버전 또는 특정의 파일 형식이 클라이언트에 서비스될 때, 하위 충실도 버전으로 저장하는 것의 파괴성(destructiveness)을 최소화하지만 문서가 - 마스터와 상이한 사본으로서 - 저장될 수 있게 하기 위해, 문서가 읽기 전용으로 기능하도록 제공될 수 있다.
서비스되는 문서(340)가 특정의 소비자 디바이스에 의한 렌더링에 적절한(또는 심지어 커스터마이즈된) 형식으로 되어 있을 뿐만 아니라, 문서(340)에 대한 수정들이 마스터 문서(345)와 재통합될 수 있다. 서버(320)는 어떤 유형의 디바이스 및/또는 소프트웨어가 클라이언트에서 이용가능한지를 아는 것에 의해 수정들을 재통합시킬 수 있다. 예를 들어, 클라이언트 디바이스들이 상이한 플랫폼들(및 파일 형식들)을 사용하는 경우, 서버(320)는 변환 시에 손실될 수 있는 충실도를 알 수 있고 임의의 변경들을 서버 상에서 다시 재구성할 수 있다.
이와 유사하게, 클라이언트 디바이스들이 특징의 상이한 버전들을 사용하는 경우, 서버(340)는 사용되는 버전을 알고 그에 따라 조절할 수 있다. 특징들은 텍스트, 차트, 방정식, 텍스트 효과 및 그래픽(MICROSOFT SMARTART 그래픽을 포함함), 디지털 콘텐츠(비디오를 포함함), 참고 문헌 스타일(bibliography style), 스레드화된 코멘트 작성(threaded commenting), 맞춤법 검사, 사전, 언어를 조작 및 편집하기 위한 유틸리티, 그리고 그래픽을 조작 및 편집하기 위한 유틸리티(이들로 제한되지 않음)를 포함한다.
서비스는 이전 버전과의 호환성 및 이후 버전과의 호환성(forwards compatibility)을 제공할 수 있다.
예를 들어, 클라이언트가 이전 버전으로의 변환을 수행할 필요 없이, MICROSOFT WORD의 최근의 버전으로 된 문서가 MICROSOFT WORD의 이전 버전을 실행하고 있는 클라이언트에 서비스될 수 있다. 게다가, (하위 충실도 버전을 다시 저장하는 것에서의 문제점을 피하기 위해) 읽기 전용 버전을 서비스하는 대신에, 이전 버전이 완전 충실도 버전(full fidelity version)에 어떻게 파괴적인지(그리고 고 충실도 콘텐츠를 대체하는 이미지가 무엇을 나타내는지)를 알고 있는 서버가 데이터를 서버 상에서 다시 재구성(즉, 충실도 원상 회복을 수행)할 수 있기 때문에, 이전 버전을 실행하는 클라이언트가 문서를 편집할 수 있다.
서버가 콘텐츠가 어떤 형태로 제공되었는지는 물론, 파일이 특정의 파일 형식으로 되어 있는 동안 파일과 관련하여 수행될 수 있는 구체적인 제약조건들 및 동작들을 알고 있기 때문에, 충실도 원상 회복이 서버에서 수행될 수 있다.
도 4는 본 발명의 일 실시예에 따른, 변환 및 병합 서비스에 대한 예시적인 프로세스 흐름을 나타낸 것이다. 도 4를 참조하면, 동작(402)에서, 서버가 병합 요청을 수신할 때, 요청 및 문서가 제공될 수 있다. 서버는 문서가 새로운 문서인지 시스템 상에 존재하는지를 판정할 수 있다(404). 문서가 새로운 문서(또는 새로운 사본)인 경우, 시스템은 문서로부터 마스터를 생성할 수 있다(406). 마스터는 (동일한 파일 형식 및 특징 버전을 사용하는) 문서일 수 있거나, 문서를 특정의 파일 형식 및 특징 버전으로 변환시키는 것에 의해 마스터 문서가 생성될 수 있다.
마스터 문서를 생성하는 것에 의해, 특정의 실시예들은 사용자들에 대해 DaaS(document-as-a-service) 경험을 생성할 수 있다. 상세하게는, 마스터 문서는 작성자 및 다른 사람들이 문서와 관련하여 취할 수 있는 일련의 동작들과 함께 마스터 문서를 구성하는 콘텐츠를 포함한다. 커스터마이즈된 경험이 소비자에게 제공될 수 있고, 콘텐츠를 편집하는 기능이 서비스의 일부로서 노출될 수 있다.
동작(404)으로 복귀하여, (예를 들어, 마스터 문서가 시스템 상에 이미 존재하기 때문에) 문서가 새로운 문서가 아닌 것으로 판정되는 경우, 서버는 문서가 마스터 문서와 동일한 파일 형식인지 상이한 파일 형식인지를 판정할 수 있다(408). 파일 형식들이 상이하다는 판정에 응답하여, 서버는 문서의 파일 형식을 마스터 문서의 파일 형식 또는 시스템에 의해 이해되는 어떤 다른 형식으로 변환시킬 수 있고(410), 이어서 문서와 마스터 문서 간의 차이를 자동으로 확정(412)하고(determine), 마스터를 업데이트(414)시키기 위해 차이(델타)를 병합시킬 수 있다. 델타를 마스터 문서에 병합시키는 것은 하나의 디바이스에서의 사용자가 문서에 대해 무언가를 하여 문서와 연관된 변경을 가질 수 있게 하고, 따라서 문서에 액세스하는 다음 사람(또는 제2 디바이스 상의 동일한 사람)이 그 제2 사람(또는 제2 디바이스)이 수신하는 문서 상에 반영된 그 변경들을 보게 된다.
동작(408)으로 복귀하여, 파일 형식들이 동일한 경우, 문서에 의해 지원되는 특징 버전이 마스터에 의해 지원되는 특징 버전과 동일한지에 관한 판정이 행해질 수 있다(416). 특징 버전들이 상이하다는 판정에 응답하여, 서버는 문서와 마스터 사이의 비특징 관련 차이(델타)를 확정하고(418), 충실도의 손실 없이 마스터를 업데이트(420)시키기 위해, 확정된 델타를 사용할 수 있다.
파일 형식 및/또는 특징 버전을 판정하는 것에 의해, 하나의 문서를 다른 문서로 변환하기 위해 또는 콘텐츠를 하나의 버전으로부터 다른 버전으로 변환하기 위해, 파일 전체 및 파일 내의 콘텐츠가 분석될 수 있다. 문서와 마스터 간에 파일 형식 및 특징 버전의 차이가 없는 경우, 차이가 마스터에서 자동으로 업데이트될 수 있거나(422), 마스터가 문서에 의해 대체될 수 있다.
도 5a 내지 도 5d는 변환 및 병합 서비스의 예시적인 시나리오들을 나타낸 것이다. 도 5a를 참조하면, 변환 서비스(505)는 데이터베이스(510)로부터의 문서에 액세스하고, 문서를 지원되는 파일 형식으로[예를 들어, 디스플레이되는 문서(520)로서] 클라이언트에 서비스할 수 있다. [데이터베이스(510)에 저장되어 있는] 디스플레이되는 문서(520)의 콘텐츠에 대한 실제 형식은 PDF, DOC, DOCX, 및 ePub(이들로 제한되지 않음)를 포함할 수 있지만; 변환 서비스(505)는 콘텐츠를 클라이언트에 의해 지원되는 - 그리고 심지어 종단점을 위해 커스터마이즈된 - 형식으로 제공할 수 있다.
실시예들은 - 심지어 사용자가 보기(또는 편집하기) 위한 문서를 선택할 때까지 문서가 그 형식 또는 버전으로 실제로 존재하지 않는 경우에도 - 문서들이 특정의 클라이언트에 필요한 형식으로 되어 있는 것처럼 문서들이 사용자에게 제시되는 시스템을 제공한다. 서버 상에 저장된 모든 파일들을 모든 유형의 파일 형식으로 사전 변환하는 대신에, 문서에 대한 특정의 형식이 사용자에 의한 요청 시에 전달된다.
실시예들은 콘텐츠가 소비될 수 있는 적용 범위를 확장시키고 콘텐츠가 제공되는 디바이스(또는 클라이언트)에 적절한 그 콘텐츠에 대한 경험을 생성할 수 있다. 서비스는 어느 것이 특정의 디바이스 상에서 콘텐츠를 보기 위한 원하는 또는 적절한 방식인지를 결정하기 위해 디바이스 및 능력을 해석할 수 있다. 서비스가 고려할 수 있는 특징들은 디스플레이의 치수, 디바이스의 사용자 입력 기능, 네트워크 연결의 속도 및/또는 대역폭은 물론, 운영 체제 및 애플리케이션 제약조건(이들로 제한되지 않음)을 포함한다.
예를 들어, 어떤 문서가 랩톱 상에는 잘 디스플레이되는 것으로 보일 수 있지만, 전화 또는 태블릿과 같은 보다 작은 화면 상에서는 그만큼 사용가능하지 않을 수 있다. 클라이언트가 무언인지를 결정하는 것(클라이언트에 적절한 소비 형식을 결정하는 것 등)에 의해, 서비스는 디바이스(또는 소프트웨어)에 기초하여 소비 경험을 수정한다.
클라이언트에서, 서비스(510)에 의해 제공되는 문서(520)가 편집될 수 있다. 이 예에서, 상이한 편집기들 및 특징 버전들에 걸쳐 공동 작업을 용이하게 하기 위해, 편집된 문서(525)가 마스터 문서에 다시 병합될 수 있다. 병합 서비스를 제공하기 위해, 공동 작업 및 병합 서비스를 위한 일반 API 또는 복수의 API들이 사용될 수 있다. API들은 클라이언트들이 다수의 플랫폼들에 걸쳐 변경들을 문서에 병합시킬 수 있게 한다. 그에 부가하여, 인식가능한 파일 형식으로의 중간 변환이 일어날 수 있는 상황에서, 예를 들어, 독점적 또는 새로운 형식이 개발되는 경우, 서비스는 제3자 어댑터(third party adapter)로 확장가능할 수 있다.
도 5b 내지 도 5d는 편집된 문서(525)를 다시 마스터 문서에 병합시키는 다양한 시나리오들을 나타낸 것이다.
도 5b는 수정들을 갖는 전체 문서(530)가 병합 서비스(540)에 제공되는 경우를 나타낸 것이다. 도 5b를 참조하면, 일반적인 API가 사용될 수 있다. 하나의 실시예에서, 클라이언트는 변경들을 갖는 문서 전체를 [문서(530)로서] 서버[예컨대, 서비스(540)]까지 송신할 수 있다. 서비스(540)는 문서(530)를 해석하고, 차이를 확정하며, 이어서 자동으로 병합시킨다. 편집된 문서가 마스터 문서와 상이한 파일 형식일 때에도 병합이 수행될 수 있다. 병합을 용이하게 하기 위해 문서(530)가 서비스(540)에 의해 특정의 형식으로 변환될 수 있다.
도 5c는 문서(520)와 편집된 문서(525) 사이의 차이[델타(550)]가 (일반 API를 통해) 병합 서비스(560)에 제공되는 경우를 나타낸 것이다. 서비스(560)는 델타(550)를 해석하고 자동으로 병합시킨다. 편집된 문서가 마스터 문서와 상이한 파일 형식일 때에도 병합이 수행될 수 있다.
도 5d는 복수의 API들이 사용되는 경우를 나타낸 것이다. API들은 콘텐츠를 병합시키기 위한 경량 옵션(lightweight option)의 일부로서 번들링(bundle)될 수 있다. API들은 개별 수정 기능일 수 있고, 강조 표시 API, 글꼴 API, 단락 API, 스타일 API, 번역(translate) API, 수식 API, 표 생성 또는 편집 API; 이미지 삽입, 생성 또는 편집 API; 색 API, 코멘트 API 등(이들로 제한되지 않음)을 포함할 수 있다. API들 중 하나 이상이 특정의 클라이언트에게 이용가능할 수 있다.
예를 들어, 클라이언트는 강조 표시 API를 호출하고 단락 식별자 또는 텍스트를 전달할 수 있으며, 서비스는 강조 표시를 수행한다. 클라이언트는 코멘트 API를 호출하고 코멘트가 삽입되어야 하는 문장, 단락, 또는 단어를 코멘트로서 삽입할 텍스트와 함께 제공할 수 있다. 디바이스는 문서의 파일 형식을 이해할 필요가 없다. 예를 들어, 문서가 DOCX 파일로서 저장될 수 있지만, 클라이언트는 문서를 PDF 파일 또는 ePUB 파일로서 보고(그리고 편집하고) 있다.
다른 실시예에 따르면, 클라이언트는 코멘트 작성 서비스를 제공할 수 있는 코멘트 API를 호출할 수 있다. (예를 들어, 코멘트 API를 통한) 코멘트 작성 서비스는 제한된 종단점이 문서의 일부에 대한 코멘트를 전체 문서에 병합시키기 위해 서비스로 송신할 수 있게 할 수 있다. 코멘트 작성 서비스는 코멘트 및 코멘트가 문서의 어느 부분과 연관되어 있는지에 관한 표시를 수신하고 이어서 코멘트를 포함하도록 전체 문서를 수정할 수 있다.
도 5d에 도시된 예에서, 편집된 문서는 첫 번째 단락의 강조 표시, 세 번째 단락에서의 텍스트에 대한 정정, 및 문서와 연관된 메타데이터에 추가된 서명을 포함한다. 강조 표시 API의 경우, 클라이언트는 강조 표시 API를 호출하고 단락 식별자(570)를 강조 표시 서비스(575)로 전달할 수 있다. 오타(typographical error)를 정정하기 위해, 클라이언트는 위치 식별자(예컨대, 세 번째 단락, 첫 번째 문장) 및 대체 텍스트(580)를 텍스트 편집 서비스(585)로 전달할 수 있다. 서명을 추가하기 위해, 클라이언트는 위치 식별자(예컨대, 메타데이터) 및 서명(590)을 서명 서비스(595)로 전달할 수 있다.
위치 식별자는 문서에서의 단락을 식별해주는 단락 식별자, 문서에서의 줄(line)을 식별해주는 줄 식별자, 문서에서의 문자를 식별해주는 문자 식별자, 및 문서의 부분을 식별해주는 부분 식별자(이들로 제한되지 않음)를 포함할 수 있다. 부분 식별자는 문서 콘텐츠, 코멘트 콘텐츠, 스타일 콘텐츠 등과 같은 문서의 부분들 간을 구분하는 위치 식별(location identification)을 제공할 수 있다. 부분 식별자에 의해 식별되는 문서의 부분들은 또한 문서 내의 구조적으로 구분된 콘텐츠(structurally delineated content)일 수 있다. 하나의 실시예에서, 부분 식별자는 연관된 메타데이터를 갖는 구조적 마크업(structural markup)을 통해 수정되는 문서의 부분을 식별해준다. 구조적으로 구분된 콘텐츠의 일례는 다음과 같다:
이것이 단락이다.
<fill-in region> 여기가 사용자가 편집하고
이어서 병합시키기 위해 서버로 다시 송신할 수 있는 어떤 콘텐츠이다 </fill-in region>
다음 단락.
콘텐츠 제어의 모습을 가지는 이상의 예에서, 사용자에 의해 수정될 수 있는 콘텐츠는 식별된 "fill-in region" 마크업 사이의 단락에 위치해 있다. 일부 실시예들에서, 수정이 행해져야 하는 문서의 부분이, 예를 들어, "fill-in region"와 같이, 문서에서의 구조적 마크업을 통해 식별될 수 있다.
일부 실시예들에서, 일반 텍스트(plain text) 파일 형식을 지원하는 클라이언트로부터의 콘텐츠는 텍스트를 전달하는 것 및 텍스트를 받아서 지정된 서식 설정을 추가할 수 있는 API를 호출하는 것에 의해 서비스를 통해 서식 있는 콘텐츠를 파일에 추가할 수 있다. 이와 유사하게, 콘텐츠를 메타데이터에 추가하는 서비스를 호출하는 것에 의해 콘텐츠가 메타데이터에 추가될 수 있다.
도 6은 본 발명의 일 실시예에 따른, 편집기에 의해 수행되는 프로세스의 다이어그램을 나타낸 것이다. 편집기는 텍스트, 이미지, 또는 사운드를 편집하기 위한 도구들을 포함하는 클라이언트(하드웨어 또는 소프트웨어)를 지칭한다. 편집기는 워드 프로세싱 애플리케이션을 비롯한 생산성 애플리케이션일 수 있다.
도 6을 참조하면, 동작(602)에서, 편집기는 문서를 요청할 수 있다. 요청은 클라우드 데이터베이스(604) 상에 위치한 파일을 열기 위한 것일 수 있다. 문서가 편집기에 의해 지원되는 것과 동일한 파일 형식으로 되어 있지 않을 수 있기 때문에, 문서에 대한 요청은 변환 서비스를 제공하는 액세스 서비스(606)를 호출할 수 있다. 액세스 서비스(606)는 데이터베이스(604)로부터 문서를 검색하고 문서를 편집기에 적절한 파일 형식으로 변환시킬 수 있다. 동작(608)에서, 편집기는 변환된 문서를 액세스 서비스(606)로부터 수신하고 수신된 문서를 디스플레이를 위해 렌더링할 수 있다.
데이터베이스(604)로부터 검색된 문서는 마스터 문서일 수 있다. 편집기를 사용하는 동안, 사용자는 수신된 문서를 수정할 수 있다. 수신된 문서에 수정이 행해질 때(610), 병합 서비스를 호출(612)하는 것에 의해 수정이 마스터 문서에 병합될 수 있다.
병합 서비스를 호출(612)하는 것은 액세스 서비스(614)의 병합 서비스를 호출한다. 병합 서비스의 호출은 사용자로부터 저장 커맨드를 수신한 것에 대한 응답으로서 일어날 수 있다. 다른 실시예에서, 병합 서비스의 호출은 워크플로우의 일부로서 일어날 수 있다. 예를 들어, 병합 서비스의 호출은 시스템으로부터의 자동 저장(automatic save)과 같은 특정의 이벤트들에 의해 트리거될 수 있다.
선택적으로, 사용자의 ID(identification)에 기초하여 문서 및/또는 액세스 서비스에의 액세스를 제공하기 위해 유효성 검사 프로세스(616, 618)가 포함될 수 있다. 예를 들어, 액세스 서비스(606, 614)와 대조하여 로그인되어 있는 사용자를 유효성 검사하기 위해 OATH 토큰이 사용될 수 있다. 사용자가 인증되고 문서가 액세스될 수 있도록 토큰이 편집기에 의해 클라우드 데이터베이스 및/또는 액세스 서비스로 송신될 수 있다.
추가의 실시예들은 서비스가 사용자가 누구인지와 사용자가 어떤 문서에 관심을 가지는지를 아는 것을 용이하게 하기 위해 ID 관리자(identity manager)를 이용할 수 있다. 사용자의 ID를 아는 것에 의해, 서비스는 다수의 디바이스들(예컨대, 사용자의 컴퓨터, 랩톱, 태블릿, 스마트폰, 이북 리더 등) 및 서비스들(예컨대, Dropbox Inc.로부터의 DROPBOX 서비스 및 Microsoft Corp.로부터의 MICROSOFT SKYDRIVE 서비스와 같은 파일 호스팅 서비스들)에 걸쳐 사용자의 콘텐츠(예컨대, 문서)를 검색할 수 있다.
그에 부가하여, 문서가 제공되어야 하는 클라이언트를 아는 것에 의해, 시스템은 하나의 형식으로 된 문서를 받고 사용자에 의해 사용되는 클라이언트를 위해 문서를 커스터마이즈된 형식으로 변환시킬 수 있다. 예를 들어, 사용자는 MICROSOFT WORD에서 문서에 대해 작업하고 있을 수 있고, 자신의 이북 리더에서 그 문서에 액세스하고자 한다. 하나의 이러한 경우에서, 서비스는 사용자가 이용가능한 파일들을 자신의 이북 리더로부터 브라우징할 때 문서를 사용자에게 제시할 수 있다(예컨대, 따라서 사용자는 이북 리더에서 그것을 읽을 수 있다). 이것은 문서를 이북 리더로 송신하기 위해(문서를 적절한 형식으로 변환시키기 위해) 사용자가 현재 취하는 단계들을 제거할 수 있다.
리더 디바이스 상의 앱을 열 때 파일이 이용가능할 수 있다. 앱은 리더 상에서 실행될 수 있는, 문서들의 연관된 허브(hub)를 가질 수 있다. 다른 실시예에서, Kindle 리더를 위해 Amazon.com에 의해 제공되는 것과 같은, 리더에 의해 제공되는 서비스는, 리더의 사용자들이 본 발명의 특정의 실시예들의 액세스 서비스로부터의 문서에 액세스하도록 하기 위해, 확장성 계층(extensibility layer)을 통해 사용자의 경험을 통합시킬 수 있다.
일 실시예에 따르면, 사용자는 단순히 문서에 대해 작업을 하고, 문서(또는 문서의 주소)를 저장하며, 파일을 닫을 수 있다. ID 관리자가 사용자가 누구인지 그리고 이어서 문서가 어느 플랫폼에게 이용가능하게 되어야 하는지를 아는 것에 의해, 동일한 또는 상이한 클라이언트에 의해 다시 액세스될 때 문서가 적절한 형식으로 사용자를 위해 거기에 있을 것이다.
도 7은 본 발명의 일 실시예에 따른, 다수의 편집기들을 사용하여 문서들에 대해 공동 작업하는 방법의 프로세스 흐름도를 나타낸 것이다. 공동 작업의 방법은 액세스 서비스에 의해 관리되는 마스터 문서(700)에 기초할 수 있다. 제1 편집기(편집기 1)가, 동작(710)에서, 액세스 서비스에 문서(700)를 요청할 수 있다. 마스터 문서(700)는 액세스 서비스와 연관된 데이터베이스에 저장되거나 액세스 서비스에 의해 기지의 위치로부터 검색될 수 있다. 이 예에서, 제1 편집기는 ePub 형식을 지원하는 리더일 수 있고, 마스터 문서는 DOCX 형식으로 되어 있다. 액세스 서비스는 제1 편집기에 적절한 형식을 결정하고(715), 문서를 제1 편집기에 제공할 수 있다(720). 제1 편집기가 ePub 형식을 지원하고 마스터 문서의 DOCX 형식을 지원하지 않기 때문에, 서비스는 문서를 ePub 형식으로 제1 편집기에 제공할 수 있다.
제1 편집기는 ePub 형식 문서를 수신하고(725), 문서를 디스플레이할 수 있다(730). 제1 편집기의 사용자는, 예를 들어, 코멘트를 포함시키는 것에 의해, ePub 문서를 수정할 수 있다(730). 저장 커맨드(또는 기타 지정된 조건)가 발생할 때, 제1 편집기는 액세스 서비스에 병합을 요청할 수 있다(740). 요청은 수정을 갖는 ePub 문서 전체(예컨대, 문서 및 코멘트) 또는 수정에 대한 위치 식별자 및 수정(예컨대, 코멘트에 대한 위치 및 코멘트로서 추가될 텍스트)을 포함할 수 있다.
액세스 서비스는 병합 요청을 수신하고(745), 수정들을 마스터 문서에 병합시키기 위한 동작들을 수행할 수 있다(750). 마스터 문서는 그의 원래의 형식 및 버전으로 유지될 수 있다.
제2 편집기가 액세스 서비스에 문서를 요청할 수 있다(755). 이 예에서, 제2 편집기는 마스터 문서와 상이한 특징 버전에서 DOCX 파일 확장자를 지원하는 컴퓨팅 디바이스일 수 있다. 예시적인 예로서, 마스터 문서는 버전 5일 수 있지만, 제2 편집기는 버전 1일 수 있다. 동작(760)으로 이동하여, 액세스 서비스는 제2 편집기에 적절한 형식을 결정하고, 문서를 제1 편집기에 제공할 수 있다(765). 제2 편집기는 DOCX(특징 버전 1) 형식 문서를 수신하고(770), 문서를 디스플레이할 수 있다(775). 제2 편집기의 사용자는 문서를 수정할 수 있다(780). 저장 커맨드(또는 기타 지정된 조건)가 발생할 때, 제2 편집기는 액세스 서비스에 병합을 요청할 수 있다(785).
액세스 서비스는 병합 요청을 수신하고(790), 수정들을 마스터 문서에 병합시키기 위한 동작들을 수행할 수 있다(795). 수정은 양 버전에 의해 지원되는 특징을 사용하는 콘텐츠의 일부분에 대한 것일 수 있다. 제2 편집기가 DOCX의 구 버전은 지원하지만 신 버전은 지원하지 않기 때문에, 신 버전으로의 충실도 원상 회복은 서비스를 사용하여 달성될 수 있다 - 그리고 보다 새로운 특징들을 사용하는 콘텐츠가 병합에 의해 파괴되지 않을 것이다 -.
수정이 양 버전에 의해 지원되지 않는 특징을 사용하는 콘텐츠의 일부분에 대한 것인 경우, 사용자를 대신하여 행해진 변경들 및 사용자에 의한 결정에 응답하여 행해진 변경들을 비롯한 충돌이 임의의 적절한 방식으로 해결될 수 있다. 예를 들어, 어떤 경우에, 수정을 어떻게 포함시킬지, 어디에 포함시킬지 그리고 포함시킬지 여부와 관련하여 서비스에 의한 결정이 행해질 수 있다. 결정을 내릴 수 없는(또는 결정을 내리도록 설정되어 있지 않은) 경우에, 서비스는 모든 충돌 및 가능한 일을 보기 위한 옵션을 하나 이상의 디바이스들에 제공할 수 있다. 사용자는 이어서 충돌을 해결하기 위한 옵션을 선택할 수 있다.
액세스 서비스는 다수의 편집기들이 동일한 파일을 보고 편집할 수 있게 한다. 더욱이, 제2 편집기 및 제1 편집기는, 둘 다가 마스터 문서에 액세스하고 있는 동안, 상이한 플랫폼들을 거쳐 문서에 액세스하고 있다.
이하의 예시적인 시나리오들은 본 발명의 특정의 실시예들 및 그의 많은 장점들에 대한 더 나은 이해를 제공하기 위해 제시되어 있다. 이하의 예시적인 시나리오들은 단지 본 발명의 실시예들에 대한 응용들 및 변형들 중 일부를 예시하기 위한 것이다. 물론, 이들은 결코 본 발명을 제한하는 것으로 간주되어서는 안된다.
예시적인 시나리오 A:
KINDLE 리더 또는 NOOK 리더의 사용자는 문서를 읽고 있고, - 코멘트 작성, 오타를 정정하는 것, 강조 표시, 또는 어떤 다른 수정 또는 주석 첨부를 수행하는 것에 의해 - 문서에 기여하고자 한다. 이들 리더는 - 비록 리더가 본래 편집기는 아니지만 - 어떤 편집 기능을 가진다. 그에 따라, 본 발명의 특정의 실시예들은 사용자가 리더의 능력(예를 들어, 주석 첨부 및 편집 기능)을 이용하고 이어서 그 수정들을 문서에 다시 병합시킬 수 있게 한다. 각각의 디바이스 또는 애플리케이션이 공동 작성 기능을 포함해야만 하는 것 대신에, "DaaS(document-as-a-service)" 병합 서비스는 편집/콘텐츠를 다시 문서에 - 심지어 별개의 플랫폼들로부터 - 자동으로 병합시킬 수 있다.
하나의 실시예에서, 병합은 리더가 (예컨대, 사용자가 달성되는 가장 먼 위치로부터의 디지털 콘텐츠를 선택하면서 다수의 디바이스들에 걸쳐 디지털 콘텐츠를 읽을 수 있게 하기 위해 사용되는) 동기 동작(synching operation)을 수행할 때 달성될 수 있다. 하나의 이러한 경우에서, 동기화 서비스에 대해 위치를 업데이트시키는 호출 동안, 문서에 대한 수정들이 본 발명의 일 실시예의 변환 및 병합 서비스로 송신될 수 있다.
다른 실시예에서, 리더는 사용자에 의한 활성 단계 시에, 예를 들어, 사용자가 문서를 저장하기로 선택할 때, 변환 및 병합 서비스를 호출할 수 있다. 또 다른 실시예에서, 변경들을 저장하기 위해 자동 저장 특징이 사용될 수 있다.
클라이언트가 공동 작성을 이해하고 수행할 수 있는 계층을 포함할 필요가 없기 때문에, 디바이스는 "바보(dumber)"일 수 있거나, 디바이스 자원들을 다른 애플리케이션 및 기능에 집중시킬 수 있다.
예시적인 시나리오 B:
문서가 Microsoft Corp.로부터 입수가능한 MICROSOFT WORD 문서 및 워드 프로세싱 소프트웨어의 최근 버전에 대한 DOCX 형식으로 생성될 수 있지만, 작성자는 ePub 파일 형식을 사용할 수 있는 NOOK 리더, 또는 독점적 AZW 및 KF8 형식을 사용할 수 있는 AMAZON KINDLE 리더와 같은 리더에서 문서를 보고, 아마도 코멘트 작성하거나 편집하고자 한다. 서비스를 사용하는 것에 의해, 개인은 NOOK 리더 또는 KINDLE 리더에 적절한 형식으로 문서에 액세스하고, 이어서, 예를 들어, 어떤 코멘트를 추가하는 것에 의해, 문서를 변경할 수 있다. 코멘트가 다시 마스터 파일(이 경우에, DOCX 파일 형식으로 되어 있음)에 저장될 수 있다.
예시적인 시나리오 C:
현재, MICROSOFT WORD 문서 파일을 문서를 생성하기 위해 사용된 것과는 상이한 버전으로 여는 것은 모든 특징들을 디스플레이하지 않는 문서를 가져올 수 있다. 예를 들어, 특정의 글꼴 또는 서식이 변할 수 있고, 서식 있는 또는 복잡한 특징들(예를 들어, 각주 기능 및 어떤 매크로)이 나타나지 않을 수 있다. 어떤 경우들에서, (DOC 파일 형식 확장자를 사용하는) MICROSOFT WORD 97 및 (DOCX 파일 형식 확장자를 사용하는) MICROSOFT WORD 2010의 경우에서와 같이, 버전의 변화는 파일 형식의 변화이기도 하다. 다른 경우들에서, MICROSOFT WORD 2007 및 MICROSOFT WORD 2010의 경우에서와 같이, 버전의 변화는 부가 기능 및/또는 특징을 제공한다.
문서가 구 버전에서 생성되고 신 버전에서 열릴 때 보다 적은 문제가 발생할 수 있지만, 특징이 이후 버전에서 단계적으로 폐지되거나 충분히 지원되지 않는 경우 여전히 오류가 있을 수 있다. 문서를 여는 데 사용된 것과는 상이한 버전에서 생성된 문서를 디스플레이하는 데 있어서의 문제에 부가하여, 이후 버전에서 생성된 문서가 이전 버전에서 열리고 저장될 때, - 심지어 문서가 이후 버전에서 다시 열기될 때에도 - 이후 버전 특징들이 손실될 수 있다. 예를 들어, MICROSOFT WORD 2010 워드 프로세싱 애플리케이션은 그래픽을 생성하고 조작하는 특징들을 포함한다. 문서가 MICROSOFT WORD 2010에서 화려한 그래픽을 갖게 생성되었지만, 문서의 첫 페이지 상의 어떤 텍스트에서의 오타를 정정하기 위해 MICROSOFT WORD 97에서 열리고 이어서 저장되는 경우, 저장된 문서가 (파일 형식 확장자 DOC를 갖는) 구 버전으로 되돌아간다 - 화려한 그래픽이 손실됨 -. 단지 하나의 단어가 변경되기 때문에, 문서 전체가 구 버전의 그래픽 이미지로 되돌아간다.
특정의 실시예들에 따르면, 구 버전에서의 사용자의 의도적인 변경이 인식되고, 보다 새로운 특징들을 유지하는 방식으로 새로운 버전에 의해 지원되는 문서에 병합될 수 있다.
예시적인 시나리오 D:
콘텐츠 액세스 서비스를 사용하는 것에 의해, 콘텐츠가 기존의 제품들의 구 버전에 맞게 조정될 수 있다. 예를 들어, 사용자는 소프트웨어 애플리케이션의 최신 버전으로의 업그레이드를 지연시키거나, (최신의 프로그램 및 그 반대를 실행하는) 사용자가 수신하게 될 파일이 종단점에 기초하여 조정될 수 있기 때문에 신/구 파일 형식 확장자를 읽기 위해 다음 버전(next version)이 이전 버전과 호환되도록 할 필요가 있을 수 있다.
예를 들어, MICROSOFT OFFICE 2013을 실행하는 클라이언트는 이용가능한 모든 특징들을 갖는 전체 보기(full view)를 수신할 수 있지만, 동일한 문서가 MICROSOFT OFFICE 2007을 실행하는 클라이언트로부터 열릴 때, 서비스는 MICROSOFT OFFICE 2007에 최적화된 소비 보기(consumption view)를 위한 콘텐츠를 패키지화할 수 있다. 최적화는 특정의 특징들을 적절한 충실도의 특징들로 대체하는 것을 포함할 수 있다. 일례로서, 하나의 버전에서 제공된 수식 편집기가 이전 버전과 호환되지 않을 수 있다. 따라서, 서비스는 문서 패키지 내의 수식을 수식의 이미지로 또는 문서가 제공되는 버전에 적절한 수식 편집기에서 편집가능한 형태로 대체할 수 있다.
유사한 경험이 워드 프로세싱 애플리케이션을 비롯한 기타 생산성 애플리케이션에 제공될 수 있다. 예를 들어, MICROSOFT OFFICE 2013을 실행하는 클라이언트는 이용가능한 모든 특징들을 갖는 전체 보기를 수신할 수 있지만, 동일한 문서가 Google Inc.로부터 입수가능한 GOOGLE DOCS, Apache Software Foundation으로부터 입수가능한 APACHE OPENOFFICE, 또는 Zoho Corporation으로부터 입수가능한 ZOHO OFFICE와 같은 다른 생산성 애플리케이션을 실행하는 클라이언트로부터 열릴 때, 서비스는 GOOGLE DOCS, OPENOFFICE, 또는 ZOHO OFFICE에 최적화된 소비 보기를 위한 콘텐츠를 패키지화할 수 있다.
예시적인 시나리오 E:
마스터 파일이 최고 충실도 형식으로 저장될 수 있다. 예를 들어, 마스터 문서가 MICROSOFT WORD의 가장 최근 버전으로 저장될 수 있다. MICROSOFT WORD의 이전 버전을 실행하는 클라이언트는 파일을 DOCX 형식 대신에 DOC 형식으로 서비스받을 수 있다. 사용자가 DOC 문서를 변경하고 (자동 저장의 일부로서 또는 활성 단계에 의해) 문서를 저장할 때, DOC 문서에 대한 변경이 다시 마스터 파일에 DOCX 형식으로 저장된다. 하나의 실시예에서, DOC 문서 전체가 서버에서 DOCX 형식으로 원상 회복된다. 다른 실시예에서, (DOC 파일을 클라이언트에 서비스할 때 콘텐츠에 행해진 차이의 일부만이 아니라) 사용자에 의해 수정되는 부분만이 저장 시에 서버로 반환된다. 이 부분은 이어서 완전 충실도 문서(full fidelity document)와 재연관될 수 있다.
예시적인 시나리오 F:
실시예들은 동일한 제품의 상이한 버전들 간에 이후 버전과의 호환성 및 이전 버전과의 호환성을 용이하게 할 수 있다. 현재, MICROSOFT WORD 프로그램에서 저장되는 파일은 다수의 대상들을 위해 저장된다. 예를 들어, 수식에 대한 업데이트된 특징 버전이 파일에서 사용되고 파일이 저장될 때, 본래의 수식 데이터가 저장되고(따라서 편집을 위해 적절한 충실도로 다시 읽혀질 수 있음), 워드 프로세서의 이전 버전이 - 비록 수식 편집기가 지원되지 않더라도 - 수식이 어떻게 생겼는지를 디스플레이하도록 수식의 그림이 저장된다. 구 버전은 신 버전으로 하여금 그의 완전 충실도를 어떻게 복원하게 할지에 관한 정보를 포함할 수 있다. 예를 들어, 구 버전이 디스플레이 모드에 있지만, 편집을 허용하지 않을 수 있다.
워드 프로세서의 각각의 버전은 장래 버전이 그의 완전 충실도를 복원할 수 있도록 특정의 특징을 어떻게 왕복(round-trip)시킬지에 관한 정보를 포함한다. 왕복은 문서가 하나의 버전으로부터 다른 버전으로 가고 이어서 원래의 버전으로 다시 가는 것을 지칭한다. 예를 들어, 특징 A가 버전 X에 있을 수 있지만, 버전 Y에서 특징 A가 특징 A'으로서 표현될 수 있다. 특징 A'을 버전 X로부터 보거나 액세스할 때, 그 특징이 A로 다시 간다. 이 구성은 이전 버전이 특징을 어떻게 왕복시킬 수 있는지는 물론 어쩌면 부가의 데이터를 저장할 필요가 있는 것에 기초하여 하위 레벨 호환성(down-level compatibility)을 생성하기 위해 장래 버전에 압박을 가한다.
본 발명의 실시예들은 어떤 버전이 다양한 특징들을 어떻게 왕복시킬지를 알게 하는 것에 대한 압박을 제거하거나 최소화하는 것은 물론, 다수의 버전들을 지원하기 위해 저장되는 데이터의 양을 감소시킨다. 실시예들은 제품의 구 버전이 제품의 신 버전으로부터의 콘텐츠를 읽고 보존할 수 있게 한다.
예시적인 시나리오 G:
RTF(Rich Text Format)는 많은 워드 프로세싱 애플리케이션들에 적절한 교차 플랫폼 문서 교환(cross-platform document interchange)으로서 사용하기 위한 다양한 문서, 텍스트 및 그래픽 서식 특성들을 인코딩하는 파일 형식이다. 현재, RTF 파일은 파일의 잠재적인 클라이언트들/소비자들을 지원하기 위해 파일 내의 그림의 다수의 개별 버전들을 저장한다. 예를 들어, 하나의 파일은 그림의 현재 버전을 제공하고, 제2(또는 추가) 파일은 그림의 하나 이상의 이전 버전들을 제공하며, 다른 파일은 WORD 2.0 버전을 제공하고, 또 다른 파일은 WORDPAD 버전을 제공한다. 변환 및 병합 서비스를 제공하는 것에 의해, 워드 프로세싱 애플리케이션은 많은 파일 형식들을 지원하거나 동일한 콘텐츠의 다수의 파일들을 가질 필요가 없다.
예시적인 시나리오 H:
전자 메일로 보낸 문서 내의 변경들을 자동으로 병합시키기 위해 병합 서비스가 적용될 수 있다. 이러한 경우에, 전자 메일 서비스 또는 서버는 병합 서비스와 통신할 수 있다. 병합 서비스는 전자 메일 서비스(또는 전자 메일 서버)가 편집기인 것처럼 병합을 관리할 수 있다.
예를 들어, 사람들의 그룹이 문서에 대해 공동 작업을 하고 있을 수 있다. 그룹의 한 사람은 그 사람이 오프라인에서 행한 변경들을 전자 메일에 대한 첨부 파일로서 다른 사람들에게 전자 메일로 보낼 수 있다. 문서에 대한 식별자를 알고 있는 서비스 및 시스템은, 수신자 - 수신자의 전자 메일 서비스 또는 전자 메일 서버가 병합 서비스와 통신하도록 구성되어 있음 - 로 전자 메일을 보내는 동작에 의해, 사용자를 대신하여 자동으로 변경들을 마스터 문서에 병합시킬 수 있다.
다른 예에서, 사람들의 그룹의 한 사람이 제1 전자 메일 서비스와 연관된 전자 메일 계정을 사용하여 다른 사람들에게 전자 메일을 보내고 문서를 첨부할 수 있다. 수신자들 중 일부는 제1 전자 메일 서비스에 연결되지 않은 제2 전자 메일 서비스를 사용하고 있을 수 있다. 예를 들어, 제1 전자 메일 서비스는 Microsoft Corp.으로부터의 HOTMAIL 전자 메일 서비스일 수 있고, 제2 전자 메일 서비스는 Google Inc.로부터의 GMAIL 전자 메일 서비스일 수 있다.
제1 전자 메일 서비스로부터 분리되어 있는 제2 전자 메일 서비스의 사용자들 중 하나가 문서를 편집하고 편집된 문서를 첨부하여 답신할 때, 제1 전자 메일 서비스는 (오프라인에서 행해진) 변경들을 다시 마스터 문서에 병합시킬 수 있다. 제1 전자 메일 서비스가 첨부 파일을 수신하고 문서(및 문서의 계보)를 식별할 때, 제1 전자 메일 서비스는 병합 서비스와 통신을 개시할 수 있다. 병합 서비스는 제1 전자 메일 서비스가 편집기인 것처럼 병합을 관리할 수 있다.
예시적인 시나리오 I:
사용자는 제한된 컴퓨팅 능력 및 제한된 대역폭(예컨대, 대기 시간 등으로 인함)을 가질 수 있는 (전화와 같은) 디바이스를 사용하여 검토하기 위해 문서를 수신할 수 있다. 현재, 사용자가 이 환경에서 문서에 코멘트를 작성하고자 하는 경우, 단일 코멘트 또는 변경조차도 문서 전체를 서버로 다시 전송되게 한다. 하나의 실시예에 따르면, 액세스 서비스는 사용자의 디바이스의 한계에 대한 조정을 제공하고 변경이 승인된다는 (예 또는 아니오의) 코멘트 체크 박스를 포함시킬 수 있다. 이어서, 체크박스 응답의 표시만이 서버로 반환될 수 있다. 이러한 방식으로, 디바이스는 그가 필요로 한 데이터를 서비스로부터 받았고, 코멘트를 승인된 것으로 업데이트하기 위해 서비스를 다시 호출할 수 있다. 서비스는 그 표시를 받아 코멘트의 고 충실도 수정 및 삽입을 수행할 수 있다. 제한된 디바이스 상의 사용자는, 공동 작성 소프트웨어/기술 전체를 디바이스로 전달하는 부담 없이, 자신이 완전한 공동 작성 경험을 가진 것으로 생각한다.
예시적인 시나리오 J:
소비자 디바이스에 대한 콘텐츠의 조정의 일례는 소비자 디바이스가 터치 기반 디바이스이지만, 문서가 터치 기반에 대해 준비되어 있지 않은 경우이다. 서비스는, 예를 들어, 줌(zooming) 또는 확대 특징들을 제공하는 것에 의해, 문서를 터치 기반에 대해 더 준비가 되어 있는 것으로 만들기 위해 문서를 보강할 수 있다. 예시적인 예로서, 원래 대화면 디바이스에서 생성되었지만 소화면 디바이스에서 렌더링하기 위해 제공되는 문서 내의 표에 표를 (보기 위해) 줌인(zoom in)시킬 수 있게 하는 터치 측면이 추가될 수 있다.
다른 대안으로서 또는 그에 부가하여, 소형 디바이스의 치수를 고려하는 것에 의해, 서비스는 3 개의 열로 된 표 중 하나의 열만을 위한 공간이 있는 것으로 판정할 수 있고, 소형 화면에 적절한 형태로 표를 제시할 것이다. 이것은 줌 특징을 추가하는 것 또는 한 번에 하나의 열만을 디스플레이하는 것을 포함할 수 있다.
도 8은 일부 실시예들에서 사용되는 컴퓨팅 디바이스의 구성요소들을 나타낸 블록도를 나타낸 것이다. 예를 들어, 시스템(800)은 하나 이상의 애플리케이션들을 실행할 수 있는 데스크톱 또는 노트북 컴퓨터 또는 태블릿 또는 스마트폰 등의 형태로 되어 있는 클라이언트 디바이스, 편집기 또는 리더를 구현하는 데 사용될 수 있다. 일부 실시예들에서, 시스템(800)은 일체형 PDA 및 무선 전화와 같은 일체형 컴퓨팅 디바이스이다. 본 명세서에 기술된 시스템의 태양들이 모바일 컴퓨터 및 종래의 데스크톱 컴퓨터 둘 다는 물론, 서버 컴퓨터 및 기타 컴퓨터 시스템에 적용가능하다는 것을 잘 알 것이다. 예를 들어, 터치스크린 또는 터치 기반 디바이스(터치 기반 트랙 패드 또는 마우스를 포함하지만, 이들로 제한되지 않음)가 모바일 디바이스 및 데스크톱 디바이스 둘 다에 적용가능할 수 있다.
시스템(800)은 하나 이상의 애플리케이션 프로그램들(810) 및/또는 운영 체제(820)의 명령어에 따라 데이터를 처리하는 프로세서(805)를 포함한다. 프로세서(805)는 SoC(system-on-chip)일 수 있거나, 센서들[예컨대, 자력계, 주변광 센서, 근접 센서, 가속도계, 자이로스코프, GPS(Global Positioning System) 센서, 온도 센서, 충격 센서] 및 네트워크 연결 구성요소들[예컨대, 무선/네트워크 인터페이스(835)를 포함함]과 같은 하나 이상의 다른 구성요소들과 함께 SoC(system-on-chip)에 포함될 수 있다.
하나 이상의 애플리케이션 프로그램들(810)이 메모리(815)에 로드되어 운영 체제(820) 상에서 또는 그와 관련하여 실행될 수 있다. 애플리케이션 프로그램들의 예는 전화 걸기(phone dialer) 프로그램, 전자 메일 프로그램, PIM 프로그램, 워드 프로세싱 프로그램, 스프레드시트 프로그램, 인터넷 브라우저 프로그램, 메시징 프로그램, 게임 프로그램 등을 포함한다. 다양한 클라이언트 및 서버 애플리케이션들을 비롯한 기타 애플리케이션들이 메모리(815)에 로드되어 디바이스 상에서 실행될 수 있다.
메모리(815)가 일체형 및 분리식 메모리 구성요소들을 비롯한 하나 이상의 메모리 구성요소들을 포함할 수 있다는 것과 메모리 구성요소들 중 하나 이상이 운영 체제를 저장할 수 있다는 것을 알 수 있다. 다양한 실시예들에 따르면, 운영 체제는 Symbian Ltd.로부터의 SYMBIAN OS, Microsoft Corporation으로부터의 WINDOWS MOBILE OS, Microsoft Corporation으로부터의 WINDOWS PHONE OS, Microsoft Corporation으로부터의 WINDOWS, Hewlett-Packard Company로부터의 PALM WEBOS, Research In Motion Limited로부터의 BLACKBERRY OS, Apple Inc.로부터의 APPLE IOS, 및 Google Inc.로부터의 GOOGLE ANDROID OS를 포함하지만, 이들로 제한되지 않는다. 기타 운영 체제들이 고려될 수도 있다.
시스템(800)은 메모리(815) 내에 비휘발성 저장소(825)도 포함한다. 비휘발성 저장소(825)는 시스템(800)의 전원이 꺼져 있는 경우 소실되어서는 안 되는 영속적 정보를 저장하는 데 사용될 수 있다. 애플리케이션 프로그램들(810)은, 생산성 애플리케이션 등에서 콘텐츠의 생성 또는 수정 동안 실행되는 커맨드의 기록과 같은, 정보를 사용하고 비휘발성 저장소(825)에 저장할 수 있다. 비휘발성 저장소(825)에 저장된 정보를 호스트 컴퓨터 시스템에 저장된 대응하는 정보와 동기화된 채로 유지하기 위해, 동기화 애플리케이션이 또한 포함되고 호스트 컴퓨터 시스템(서버 등) 상의 대응하는 동기화 애플리케이션과 상호작용하기 위한 애플리케이션 프로그램들(810)의 일부로서 존재할 수 있다.
시스템(800)은 하나 이상의 배터리들 및/또는 에너지 하비스터(energy harvester)[주변 방사(ambient-radiation), 광전기(photovoltaic), 압전기(piezoelectric), 열전기(thermoelectric), 정전기(electrostatic) 등]로서 구현될 수 있는 전원(830)을 가진다. 전원(830)은 또한 배터리를 보완하거나 재충전하는 AC 어댑터 또는 전원 도킹 크레이들(powered docking cradle)과 같은 외부 전원을 추가로 포함할 수 있다.
시스템(800)은 또한 무선 주파수 통신을 전송 및 수신하는 기능을 수행하는 무선/네트워크 인터페이스(835)를 포함할 수 있다. 무선/네트워크 인터페이스(835)는, 통신 사업자 또는 서비스 제공자를 통해, 시스템(800)과 "외부 세계" 간의 무선 연결을 용이하게 한다. 무선/네트워크 인터페이스(835)로의/로부터의 전송은 무선/네트워크 인터페이스(835)에 의해 수신되는 통신을 애플리케이션 프로그램들(810)으로 그리고 그 반대로 배포하는 운영 체제(820)의 제어 하에서 수행된다.
무선/네트워크 인터페이스(835)는 시스템(800)이 네트워크를 거쳐 서버 컴퓨팅 디바이스 및 기타 클라이언트 디바이스를 비롯한 기타 컴퓨팅 디바이스들과 통신할 수 있게 한다.
오디오 인터페이스(840)는 사용자에게 가청 신호를 제공하고 또 사용자로부터 가청 신호를 수신하기 위해 사용될 수 있다. 예를 들어, 오디오 인터페이스(840)는, 전화 대화를 용이하게 해주는 것 등을 위해, 가청 출력을 제공하는 스피커에 그리고 가청 입력을 수신하는 마이크에 결합되어 있을 수 있다. 사용자가 음성 커맨드를 통해 컴퓨팅 디바이스와 상호작용할 수 있도록 스피커가 또한 포함될 수 있다.
시스템(800)은 정지 영상, 비디오 스트림 등을 기록하기 위해 선택적인 카메라(도시 생략)의 동작을 가능하게 하는 비디오 인터페이스(845)를 추가로 포함할 수 있다. 카메라가 또한 컴퓨팅 디바이스와 상호작용하기 위해 사용되는 제스처를 포착하기 위해 사용될 수 있다.
시각적 출력이 터치 스크린 디스플레이(855)를 통해 제공될 수 있다. 어떤 경우들에서, 디스플레이는 터치 스크린이 아닐 수 있고, 버튼, 키, 롤러 휠(roller wheel) 등과 같은 사용자 입력 요소들이 디스플레이(855) 상에 그래픽 사용자 인터페이스의 일부로서 디스플레이되는 항목들을 선택하는 데 사용된다.
사용자 입력을 위해 키패드(860)가 또한 포함될 수 있다. 키패드(860)는 물리적 키패드 또는 터치 스크린 디스플레이(855) 상에 생성되는 소프트 키패드일 수 있다. 일부 실시예들에서, 디스플레이 및 키패드가 결합되어 있다. 일부 실시예들에서, 오디오 인터페이스(840) 및 비디오 인터페이스(845)를 비롯한 두 개 이상의 입출력(I/O) 구성요소들이 결합될 수 있다. 개별 프로세서들이 I/O 구성요소들에 포함될 수 있거나, 처리 기능이 프로세스(805)에 내장되어 있을 수 있다.
디스플레이(855)는 GUI(graphical user interface) 요소들, 예측 컨텍스트 도구 모음 사용자 인터페이스, 텍스트, 영상, 비디오, 통지, 가상 버튼, 가상 키보드, 메시징 데이터, 인터넷 콘텐츠, 디바이스 상태, 시간, 날짜, 달력 데이터, 기본 설정, 지도 정보, 위치 정보, 및 시각적 형태로 제시될 수 있는 임의의 다른 정보를 제시할 수 있다. 일부 실시예들에서, 디스플레이(855)는 임의의 능동 또는 수동 매트릭스 기술 및 임의의 백라이팅 기술(사용되는 경우)을 이용하는 LCD(liquid crystal display)이다. 일부 실시예들에서, 디스플레이(855)는 OLED(organic light emitting diode) 디스플레이이다. 물론, 기타 디스플레이 유형들이 고려될 수도 있다.
(디스플레이와 연관되어 있을 수 있는) 터치스크린은 터치의 존재 및 위치를 검출하도록 구성된 입력 디바이스이다. 터치스크린은 저항성 터치스크린, 용량성 터치스크린, 표면 탄성파 터치스크린, 적외선 터치스크린, 광학 영상(optical imaging) 터치스크린, 분산 신호(dispersive signal) 터치스크린, 음향 펄스 인식(acoustic pulse recognition) 터치스크린일 수 있거나, 임의의 다른 터치스크린 기술을 이용할 수 있다. 일부 실시예들에서, 터치스크린은 사용자가 디스플레이 상에 제시되는 물체들 또는 기타 정보와 상호작용하기 위해 하나 이상의 터치들을 사용할 수 있게 하기 위해 디스플레이 상부에 투명층으로서 포함된다.
다른 실시예들에서, 터치 패드가 디스플레이를 포함하지 않는 컴퓨팅 디바이스의 표면 상에 포함될 수 있다. 예를 들어, 컴퓨팅 디바이스는 디스플레이 상부에 포함된 터치스크린 및 디스플레이의 반대쪽에 있는 표면 상의 터치 패드를 가질 수 있다.
일부 실시예들에서, 터치스크린은 단일 터치 터치스크린이다. 다른 실시예들에서, 터치스크린은 다중 터치 터치스크린이다. 일부 실시예들에서, 터치스크린은 개별 터치, 단일 터치 제스처, 및/또는 다중 터치 제스처를 검출하도록 구성되어 있다. 이들은 총칭하여 본 명세서에서 편의상 제스처라고 지칭된다. 몇 가지 제스처들이 이제부터 기술될 것이다. 이들 제스처가 예시적인 것이고 첨부된 청구범위의 범주를 제한하기 위한 것이 아님을 잘 알 것이다. 더욱이, 기술된 제스처들, 부가의 제스처들, 및/또는 대안의 제스처들이 터치스크린에서 사용하기 위해 소프트웨어로 구현될 수 있다. 그에 따라, 개발자는 특정의 애플리케이션 프로그램에 관련되는 제스처들을 생성할 수 있다.
일부 실시예들에서, 터치스크린은 사용자가 디스플레이 상에 제시된 항목 상에서 터치스크린을 한 번 탭핑하는 탭핑 제스처를 지원한다. 탭핑 제스처는 무엇이든 사용자가 탭핑하는 것을 열거나 시작하는 것(이들로 제한되지 않음)을 비롯한 다양한 이유들로 사용될 수 있다. 일부 실시예들에서, 터치스크린은 사용자가 디스플레이 상에 제시된 항목 상에서 터치스크린을 두 번 탭핑하는 두 번 탭핑 제스처(double tap gesture)를 지원한다. 두 번 탭핑 제스처는 스테이지들에서 줌인 또는 줌아웃하는 것, 및 텍스트의 단어를 선택하는 것(이들로 제한되지 않음)을 비롯한 다양한 이유들로 사용될 수 있다. 일부 실시예들에서, 터치스크린은 사용자가 터치스크린을 탭핑하고 적어도 사전 정의된 시간 동안 접촉을 유지하는 길게 누르기(tap and hold) 제스처를 지원한다. 길게 누르기 제스처는 컨텍스트 관련 메뉴를 여는 것(이들로 제한되지 않음)을 비롯한 다양한 이유들로 사용될 수 있다.
일부 실시예들에서, 터치스크린은 사용자가 터치스크린 상에 손가락을 놓고 터치스크린 상에서 손가락을 이동시키는 동안 터치스크린과의 접촉을 유지하는 패닝 제스처를 지원한다. 패닝 제스처는 영상 또는 메뉴를 제어된 속도로 화면을 가로질러 이동시키는 것(이들로 제한되지 않음)을 비롯한 다양한 이유들로 사용될 수 있다. 다중 손가락 패닝 제스처들이 또한 고려될 수도 있다. 일부 실시예들에서, 터치스크린은 사용자가 화면이 움직이기를 원하는 방향으로 사용자가 손가락을 스와이프하는 플리킹(flick) 제스처를 지원한다. 플리킹 제스처는 메뉴 또는 페이지를 수평으로 또는 수직으로 스크롤하는 것(이들로 제한되지 않음)을 비롯한 다양한 이유들로 사용될 수 있다. 일부 실시예들에서, 터치스크린은 사용자가 터치스크린 상에서 두 손가락(예컨대, 엄지손가락 및 집게손가락)으로 꼬집는 동작을 하거나 두 손가락을 서로 떨어지게 움직이는 축소 및 확대(pinch and stretch) 제스처를 지원한다. 축소 및 확대 제스처는 웹 사이트, 지도, 또는 그림을 서서히 줌인 또는 줌아웃하는 것을 비롯한 다양한 이유들로 사용될 수 있다.
이상의 제스처들이 제스처들을 수행하기 위해 하나 이상의 손가락들을 사용하는 것을 참조하여 기술되어 있지만, 발가락, 코, 턱, 또는 스타일러스와 같은 물체 등의 다른 부속 기관(appendage)이 터치스크린과 상호작용하는 데 사용될 수 있다. 그에 따라, 이상의 제스처들은 예시적인 것으로 이해되어야 하고, 결코 제한하는 것으로 해석되어서는 안된다.
시스템(800)을 구현하는 임의의 모바일 또는 데스크톱 컴퓨팅 디바이스가 기술된 것보다 더 많거나 더 적은 특징들 또는 기능을 가질 수 있고, 본 명세서에 기술된 구성들로 제한되지 않는다는 것을 잘 알 것이다.
예를 들어, 일부 실시예들에서, 다양한 유형의 사용자 인터페이스 및 정보가 투사되는 벽 표면 상에서, 다양한 유형의 사용자 인터페이스 및 정보가 디스플레이되고 상호작용될 수 있다.
다양한 구현들에서, 시스템(800)을 통해 저장되는 데이터/정보는 디바이스 상에 로컬적으로 저장된 데이터 캐시들을 포함할 수 있거나, 데이터가 무선/네트워크 인터페이스(835)를 통해 또는 디바이스 및 디바이스와 연관된 별도의 컴퓨팅 디바이스(예를 들어, 인터넷과 같은 분산 컴퓨팅 네트워크에서의 서버 컴퓨터) 사이의 유선 연결을 통해 디바이스에 의해 액세스될 수 있는 임의의 수의 저장 매체 상에 저장될 수 있다. 잘 알겠지만, 이러한 데이터/정보는 무선 인터페이스(835) 또는 분산 컴퓨팅 네트워크를 거쳐 디바이스를 통해 액세스될 수 있다. 이와 유사하게, 이러한 데이터/정보는, 전자 메일 및 협업적 데이터/정보 공유 시스템을 비롯한, 공지된 데이터/정보 전송 및 저장 수단에 따라 저장 및 사용을 위해 컴퓨팅 디바이스들 사이에서 용이하게 전송될 수 있다.
본 명세서에 기재된 특정의 기법들이 일반적으로 하나 이상의 컴퓨팅 디바이스들에 의해 실행되는, 프로그램 모듈과 같은 컴퓨터 실행가능 명령어들과 관련하여 기술될 수 있다. 일반적으로, 프로그램 모듈은 특정의 작업들을 수행하거나 특정의 추상 데이터 유형들을 구현하는 루틴, 프로그램, 개체, 컴포넌트, 및 데이터 구조를 포함한다.
실시예들이 컴퓨터 프로세스, 컴퓨팅 시스템, 또는 제조 물품(컴퓨터 프로그램 제품 또는 컴퓨터 판독가능 매체 등)으로서 구현될 수 있다. 본 명세서에 기술된 특정의 방법들 및 프로세스들이 하나 이상의 컴퓨터 판독가능 매체 상에 저장될 수 있는 코드 및/또는 데이터로서 구현될 수 있다. 본 발명의 특정의 실시예들은 컴퓨터 시스템의 형태로 된 기계의 사용을 생각하고 있으며, 일련의 명령어들은, 시스템 내에서 실행될 때, 시스템으로 하여금 앞서 논의된 방법들 중 임의의 하나 이상을 수행하게 할 수 있다. 특정의 컴퓨터 프로그램 제품들은 컴퓨터 시스템에 의해 판독가능하고 컴퓨터 프로세스를 실행하는 명령어들로 된 컴퓨터 프로그램을 인코딩하는 하나 이상의 컴퓨터 판독가능 저장 매체일 수 있다.
컴퓨터 판독가능 매체는 컴퓨터 시스템에 의해 액세스될 수 있는 임의의 이용가능한 컴퓨터 판독가능 저장 매체 또는 통신 매체일 수 있다.
통신 매체는, 예를 들어, 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈, 또는 기타 데이터를 포함하는 통신 신호가 하나의 시스템으로부터 다른 시스템으로 전송되는 매체를 포함한다. 통신 매체는 케이블 및 와이어(예컨대, 광 섬유, 동축 등)와 같은 유도 전송(guided transmission) 매체, 및 에너지 파를 전파할 수 있는 음향, 전자기, RF, 마이크로파 및 적외선과 같은 무선 [비유도 전송(unguided transmission)] 매체를 포함할 수 있다. 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈, 또는 기타 데이터는, 예를 들어, 확산 스펙트럼 기법의 일부로서 이용되는 것과 같은 반송파 또는 유사한 메커니즘과 같은 무선 매체에, 피변조 데이터 신호로서 구현될 수 있다. "피변조 데이터 신호"라는 용어는 신호의 특성들 중 하나 이상이 정보를 그 신호에 인코딩하는 방식으로 변경 또는 설정된 신호를 지칭한다. 변조는 아날로그, 디지털, 또는 혼합 변조 기법일 수 있다. 통신 매체(특히, 컴퓨터 시스템에 의해 사용가능한 데이터를 포함할 수 있는 반송파 및 기타 전파 신호)는 컴퓨터 판독가능 저장 매체로서 포함되지 않는다.
제한이 아닌 예로서, 컴퓨터 판독가능 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보를 저장하는 임의의 방법 또는 기술로 구현되는 휘발성 및 비휘발성, 분리식 및 비분리식 매체를 포함할 수 있다. 예를 들어, 컴퓨터 판독가능 저장 매체는 랜덤 액세스 메모리(RAM, DRAM, SRAM)와 같은 휘발성 메모리; 및 플래시 메모리, 다양한 판독 전용 메모리(ROM, PROM, EPROM, EEPROM), 자기 및 강자성/강유전성 메모리(MRAM, FeRAM), 및 자기 및 광 저장 디바이스(하드 드라이브, 자기 테이프, CD, DVD)와 같은 휘발성 메모리; 또는 컴퓨터 시스템에서 사용하기 위한 컴퓨터 판독가능 정보/데이터를 저장할 수 있는 현재 공지되어 있거나 나중에 개발되는 기타 매체를 포함한다. "컴퓨터 판독가능 저장 매체"는 반송파 또는 전파 신호를 포함하지 않는다.
그에 부가하여, 본 명세서에 기술된 방법들 및 프로세스들이 하드웨어 모듈로 구현될 수 있다. 예를 들어, 하드웨어 모듈은 ASIC(application-specific integrated circuit) 칩, FPGA(field-programmable gate arrays), 및 현재 공지되어 있거나 나중에 개발되는 기타 프로그램가능 논리 디바이스(이들로 제한되지 않음)을 포함할 수 있다. 하드웨어 모듈이 활성화될 때, 하드웨어 모듈은 하드웨어 모듈 내에 포함된 방법들 및 프로세스들을 수행한다.
본 명세서에서 "하나의 실시예", "일 실시예", "예시적인 실시예" 등에 대한 임의의 언급은 그 실시예와 관련하여 기술된 특정의 특징, 구조 또는 특성이 본 발명의 적어도 하나의 실시예에 포함되어 있다는 것을 의미한다. 본 명세서의 여러 곳에서 나오는 이러한 문구들이 모두 동일한 실시예를 지칭하는 것은 아니다. 그에 부가하여, 본 명세서에 개시된 임의의 발명 또는 그의 실시예의 임의의 요소들 또는 제한들이 본 명세서에 개시된 임의의 다른 발명 또는 그의 실시예의 임의의 및/또는 모든 다른 요소들 또는 제한들과 (개별적으로 또는 임의의 조합으로) 결합될 수 있고, 본 발명의 범주를 갖는 모든 이러한 조합들(이들로 제한되지 않음)이 고려될 수도 있다.
본 명세서에 기술된 예들 및 실시예들이 단지 예시를 위한 것이고 그를 바탕으로 한 다양한 수정들 또는 변경들이 통상의 기술자에게 연상될 것이며 본 출원의 범주 내에 포함된다는 것을 잘 알 것이다.

Claims (10)

  1. 방법에 있어서,
    문서에서의 특징의 제1 버전을 디스플레이하는 단계; 및
    상기 문서에 대한 수정(modification)과 마스터 문서(master document)의 병합을 요청하기 위해 병합 서비스를 호출하는 단계를 포함하고,
    상기 마스터 문서는 상기 특징의 제2 버전을 지원하고, 상기 특징의 상기 제2 버전은 클라이언트 디바이스 상에서 지원되지 않는 것인, 방법.
  2. 제1항에 있어서, 상기 병합 서비스를 호출하는 단계는, 수정 요청, 및 단락 식별자, 줄 식별자(line identifier), 문자 식별자, 및 부분 식별자(part identifier) 중 적어도 하나와 같은 위치 식별자를 전송하는 단계를 포함하는, 방법.
  3. 제2항에 있어서, 상기 수정 요청은 상기 위치 식별자에 의해 식별된 위치에 있는 상기 마스터 문서에 대해, 강조 표시(highlighting), 코멘트를 추가하는 것, 또는 콘텐츠를 추가, 제거 또는 대체하는 것과 같은 하나 이상의 특정의 수정들을 수행하라는 요청을 포함하고;
    상기 하나 이상의 특정의 수정들을 수행하라는 요청은, 선택적으로 상기 하나 이상의 특정의 수정들 각각에 대응하는 서비스를 호출하는 것을 포함하는, 방법.
  4. 제1항에 있어서, 상기 병합 서비스를 호출하는 단계는, 상기 수정을 가지는 상기 문서를 제공하는 단계를 포함하는, 방법.
  5. 방법에 있어서,
    편집하기 위한 문서를 편집기에 적절한 제1 형식으로 디스플레이하는 단계; 및
    상기 문서에 대한 수정과 마스터 문서의 병합을 요청하기 위해 병합 서비스를 호출하는 단계를 포함하고,
    상기 마스터 문서는 상기 제1 형식과는 상이한 제2 형식을 지원하는, 방법.
  6. 제5항에 있어서, 상기 병합 서비스를 호출하는 단계는, 수정 요청, 및 단락 식별자, 줄 식별자, 문자 식별자, 또는 부분 식별자와 같은 위치 식별자를 전송하는 단계를 포함하고;
    상기 수정 요청은 상기 위치 식별자에 의해 식별된 위치에 있는 상기 마스터 문서에 대해, 강조 표시; 코멘트를 추가하는 것; 또는 콘텐츠를 추가, 제거 또는 대체하는 것과 같은 하나 이상의 특정의 수정들을 수행하라는 요청을 선택적으로 포함하는, 방법.
  7. 제5항에 있어서, 상기 병합 서비스를 호출하는 단계는, 상기 수정을 가지는 상기 문서를 제공하는 단계를 포함하는, 방법.
  8. 컴퓨팅 디바이스에 의해 실행될 때, 방법을 수행하는 명령어들을 저장하고 있는 컴퓨터 판독가능 저장 매체에 있어서,
    상기 방법은,
    특징의 제1 버전을 지원하는 편집된 문서에 대한 수정들을 상기 특징의 제2 버전을 지원하는 마스터 문서와 병합시키라는 요청을 수신한 것에 응답하여, 상기 특징의 상기 제1 버전을 지원하는 상기 편집된 문서에 대한 상기 수정들을 확정하는(determining) 단계; 및 상기 수정들을 상기 특징의 상기 제2 버전을 지원하는 상기 마스터 문서에 병합시키는 단계; 그리고
    제1 형식을 지원하는 편집된 문서에 대한 수정들을 상기 제1 형식과는 상이한 제2 형식을 지원하는 마스터 문서와 병합시키라는 요청을 수신한 것에 응답하여, 상기 제1 형식을 지원하는 상기 편집된 문서에 대한 상기 수정들을 확정하는 단계; 및 상기 수정들을 상기 제2 형식을 지원하는 상기 마스터 문서에 병합시키는 단계를 포함하는, 컴퓨터 판독가능 저장 매체.
  9. 제8항에 있어서, 수정들을 병합시키라는 상기 요청은 상기 수정들을 가지는 상기 문서를 포함하고, 상기 수정들을 확정하는 단계는, 상기 문서의 형식 또는 특징 버전을 상기 마스터 문서의 형식 또는 특징 버전으로 변환시키고 상기 변환된 문서와 상기 마스터 문서 간의 차이들을 확정하는 단계를 포함하는, 컴퓨터 판독가능 저장 매체.
  10. 제8항에 있어서, 수정들을 병합시키라는 상기 요청은, 상기 마스터 문서의 특정의 편집에 대한 요청을 포함하는, 컴퓨터 판독가능 저장 매체.
KR1020157023567A 2013-01-30 2014-01-28 특징의 버전 또는 다수의 편집기를 사용하는 공동 작업 KR20150115850A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/753,527 US9471556B2 (en) 2013-01-30 2013-01-30 Collaboration using multiple editors or versions of a feature
US13/753,527 2013-01-30
PCT/US2014/013253 WO2014120624A1 (en) 2013-01-30 2014-01-28 Collaboration using multiple editors or versions of a feature

Publications (1)

Publication Number Publication Date
KR20150115850A true KR20150115850A (ko) 2015-10-14

Family

ID=50231490

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157023567A KR20150115850A (ko) 2013-01-30 2014-01-28 특징의 버전 또는 다수의 편집기를 사용하는 공동 작업

Country Status (7)

Country Link
US (2) US9471556B2 (ko)
EP (1) EP2951732A1 (ko)
JP (1) JP2016517051A (ko)
KR (1) KR20150115850A (ko)
CN (2) CN105051730B (ko)
TW (1) TWI598750B (ko)
WO (1) WO2014120624A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018004021A1 (ko) * 2016-06-27 2018-01-04 주식회사 한글과컴퓨터 전자 문서의 공동 편집을 위한 협업 지원 장치 및 그 동작 방법
US10607001B2 (en) 2016-06-29 2020-03-31 Hancom Inc. Web-based electronic document service apparatus capable of authenticating document editing and operating method thereof

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2587482A3 (en) 2011-10-25 2013-06-26 Samsung Electronics Co., Ltd Method for applying supplementary attribute information to e-book content and mobile device adapted thereto
US9946691B2 (en) 2013-01-30 2018-04-17 Microsoft Technology Licensing, Llc Modifying a document with separately addressable content blocks
KR20140102386A (ko) * 2013-02-13 2014-08-22 삼성전자주식회사 디스플레이장치 및 그 제어방법
JP6123597B2 (ja) * 2013-09-12 2017-05-10 ブラザー工業株式会社 筆記データ処理装置
US9589067B2 (en) * 2013-09-30 2017-03-07 Konica Minolta Laboratory U.S.A., Inc. Converting electronic documents having visible objects
US10091287B2 (en) 2014-04-08 2018-10-02 Dropbox, Inc. Determining presence in an application accessing shared and synchronized content
US10171579B2 (en) 2014-04-08 2019-01-01 Dropbox, Inc. Managing presence among devices accessing shared and synchronized content
US10270871B2 (en) 2014-04-08 2019-04-23 Dropbox, Inc. Browser display of native application presence and interaction data
US10275505B2 (en) * 2014-06-24 2019-04-30 Adobe Inc. In-application conversion of file versions using cloud services
US20160026614A1 (en) * 2014-07-24 2016-01-28 KCura Corporation Methods and apparatus for annotating documents
US10210149B2 (en) * 2014-07-28 2019-02-19 Ca, Inc. Personalized wiki-book annotation
US9846528B2 (en) 2015-03-02 2017-12-19 Dropbox, Inc. Native application collaboration
US10198411B2 (en) 2015-05-01 2019-02-05 Microsoft Technology Licensing, Llc Storing additional document information through change tracking
US9953018B2 (en) * 2015-05-01 2018-04-24 Microsoft Technology Licensing, Llc Transfer of content between documents of different storage types
US20160321226A1 (en) * 2015-05-01 2016-11-03 Microsoft Technology Licensing, Llc Insertion of unsaved content via content channel
US10909080B2 (en) * 2015-05-04 2021-02-02 Microsoft Technology Licensing, Llc System and method for implementing shared document edits in real-time
US10803229B2 (en) 2015-07-16 2020-10-13 Thinxtream Technologies Pte. Ltd. Hybrid system and method for data and file conversion across computing devices and platforms
US10455056B2 (en) * 2015-08-21 2019-10-22 Abobe Inc. Cloud-based storage and interchange mechanism for design elements
CN105184469A (zh) * 2015-08-26 2015-12-23 百度在线网络技术(北京)有限公司 用于文档协作编辑的方法和装置
CN105589693A (zh) * 2015-12-18 2016-05-18 国云科技股份有限公司 一种基于react-native的快速实现移动端数据获取的方法
CN105635265A (zh) * 2015-12-24 2016-06-01 国云科技股份有限公司 一种基于react-native快速实现移动端数据上传的方法
US10248933B2 (en) 2015-12-29 2019-04-02 Dropbox, Inc. Content item activity feed for presenting events associated with content items
US10620811B2 (en) * 2015-12-30 2020-04-14 Dropbox, Inc. Native application collaboration
US11226788B2 (en) * 2016-02-01 2022-01-18 Shapedo Ltd. Comparing and merging complex data structures
US10951634B2 (en) * 2016-02-01 2021-03-16 Google Llc Systems and methods for dynamically restricting the rendering of unauthorized content included in information resources
US10025625B2 (en) * 2016-03-31 2018-07-17 Microsoft Technology Licensing, Llc Batched tasks
US10382502B2 (en) 2016-04-04 2019-08-13 Dropbox, Inc. Change comments for synchronized content items
US10339211B1 (en) * 2016-05-31 2019-07-02 Google Llc Systems and methods for synchronizing comments to an electronic document across platforms
TWI579720B (zh) * 2016-06-24 2017-04-21 Tronice Co Ltd A system and a method for establishing an electronic file and data
JP6859768B2 (ja) * 2017-03-15 2021-04-14 富士ゼロックス株式会社 情報処理装置及び情報処理プログラム
TWI663862B (zh) * 2017-08-31 2019-06-21 金儀國際科技股份有限公司 多樣式健身設備相容之通用資料系統
WO2019073516A1 (ja) * 2017-10-10 2019-04-18 楽天株式会社 コンテンツ共有システム、コンテンツ共有方法及びプログラム
US10684997B2 (en) 2017-10-24 2020-06-16 Microsoft Technology Licensing, Llc File consistency across file versions maintained by different services
JP7180111B2 (ja) 2018-04-27 2022-11-30 富士フイルムビジネスイノベーション株式会社 表示編集装置及びプログラム
CN111989648B (zh) * 2018-07-16 2024-04-16 谷歌有限责任公司 将生产力应用嵌入第三方平台
AU2019210538A1 (en) * 2018-08-01 2020-02-20 Accenture Global Solutions Limited Digital content management platform
CN110489156A (zh) * 2019-07-09 2019-11-22 北京字节跳动网络技术有限公司 二进制格式的版本控制方法、装置、介质及电子设备
CN110633461B (zh) * 2019-09-10 2024-01-16 北京百度网讯科技有限公司 文档检测处理方法、装置、电子设备和存储介质
CN110795910B (zh) * 2019-10-10 2023-10-17 北京字节跳动网络技术有限公司 一种文本信息处理方法、装置、服务器及存储介质
CN110708235B (zh) * 2019-10-12 2021-07-06 腾讯科技(深圳)有限公司 消息生成方法、装置、存储介质和计算机设备
CN112738550B (zh) * 2019-10-14 2022-10-11 腾讯科技(深圳)有限公司 内容数据的处理方法、装置、电子设备及介质
JP6854027B1 (ja) * 2020-03-31 2021-04-07 恒基 磯部 ドキュメントの作成及び/もしくは修正管理における情報の意味的散逸を防ぐ方法、システム、プログラム、及び記録媒体
CN115858685B (zh) * 2023-02-14 2023-05-23 青岛中科方德软件有限公司 需求文件的在线同步方法和装置、终端、可读存储介质

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4012234B2 (ja) * 2002-01-18 2007-11-21 株式会社インターネットディスクロージャー 書類作成システム、書類作成方法及び書類作成プログラム
US7478170B2 (en) 2002-03-05 2009-01-13 Sun Microsystems, Inc. Generic infrastructure for converting documents between formats with merge capabilities
JP3944014B2 (ja) * 2002-07-09 2007-07-11 株式会社東芝 文書編集方法、文書編集システム及び文書処理プログラム
US7228496B2 (en) * 2002-07-09 2007-06-05 Kabushiki Kaisha Toshiba Document editing method, document editing system, server apparatus, and document editing program
JP2004326176A (ja) * 2003-04-21 2004-11-18 Matsushita Electric Works Ltd 情報サーバ、情報サーバ用プログラムおよび情報システム
US20050033811A1 (en) * 2003-08-07 2005-02-10 International Business Machines Corporation Collaborative email
US20050044145A1 (en) * 2003-08-20 2005-02-24 International Business Machines Corporation Collaboration method and system
JP5172073B2 (ja) * 2004-12-08 2013-03-27 大日本印刷株式会社 編集システム、サーバ及びプログラム
JP2006315801A (ja) * 2005-05-12 2006-11-24 Hitachi Omron Terminal Solutions Corp 紙葉類搬送装置
US20070067336A1 (en) 2005-09-20 2007-03-22 Innodata Isogen, Inc. Electronic publishing system and method for managing publishing requirements in a neutral format
US7917845B2 (en) * 2005-12-22 2011-03-29 Xerox Corporation System and method for managing dynamic document references
US20110296291A1 (en) 2007-11-15 2011-12-01 Olya Melkinov System and method for transforming documents for publishing electronically
US7954058B2 (en) * 2007-12-14 2011-05-31 Yahoo! Inc. Sharing of content and hop distance over a social network
US20090235161A1 (en) * 2008-03-15 2009-09-17 Microsoft Corporation Lossless Web-Based Editor For Complex Documents
US20090249224A1 (en) * 2008-03-31 2009-10-01 Microsoft Corporation Simultaneous collaborative review of a document
US8843616B2 (en) 2010-09-10 2014-09-23 Intel Corporation Personal cloud computing with session migration
US20120101980A1 (en) * 2010-10-26 2012-04-26 Microsoft Corporation Synchronizing online document edits
CN102541825B (zh) * 2010-12-23 2014-11-12 北京大学 一种电子文件留痕信息的记录方法和装置
US9367530B2 (en) 2011-01-21 2016-06-14 Jive Software Distributed document co-authoring and processing

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018004021A1 (ko) * 2016-06-27 2018-01-04 주식회사 한글과컴퓨터 전자 문서의 공동 편집을 위한 협업 지원 장치 및 그 동작 방법
US10310716B2 (en) 2016-06-27 2019-06-04 Hancom Inc. Apparatus for supporting cooperation for joint editing of electronic document, and method of operating the same
US10607001B2 (en) 2016-06-29 2020-03-31 Hancom Inc. Web-based electronic document service apparatus capable of authenticating document editing and operating method thereof

Also Published As

Publication number Publication date
US20140215302A1 (en) 2014-07-31
CN105051730A (zh) 2015-11-11
JP2016517051A (ja) 2016-06-09
CN110263284A (zh) 2019-09-20
CN105051730B (zh) 2019-07-05
TW201443671A (zh) 2014-11-16
US9471556B2 (en) 2016-10-18
TWI598750B (zh) 2017-09-11
US9996515B2 (en) 2018-06-12
US20170004117A1 (en) 2017-01-05
WO2014120624A1 (en) 2014-08-07
CN110263284B (zh) 2022-12-13
EP2951732A1 (en) 2015-12-09

Similar Documents

Publication Publication Date Title
US10162805B2 (en) Application programming interfaces for content curation
US9996515B2 (en) Collaboration using multiple editors or versions of a feature
US10474740B2 (en) Virtual library providing content accessibility irrespective of content format and type
US20200210383A1 (en) Remote access of metadata for collaborative documents
CN104769581B (zh) 用于提供经链接的笔记记录的系统和方法
KR20140125361A (ko) 웹 애플리케이션에서의 협업 통신 기법
US20150149410A1 (en) Publishing to a content delivery system
US10027644B2 (en) Analysis with embedded electronic spreadsheets
US20230325580A1 (en) Multi-mode display for documents in a web browser client application
US20180007133A1 (en) Server-to-server content distribution

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E601 Decision to refuse application