KR20090006167A - 문서의 오디언스-적정 버전을 제공하는 방법, 문서 서버, 및 컴퓨터 판독 가능 매체 - Google Patents

문서의 오디언스-적정 버전을 제공하는 방법, 문서 서버, 및 컴퓨터 판독 가능 매체 Download PDF

Info

Publication number
KR20090006167A
KR20090006167A KR1020087027059A KR20087027059A KR20090006167A KR 20090006167 A KR20090006167 A KR 20090006167A KR 1020087027059 A KR1020087027059 A KR 1020087027059A KR 20087027059 A KR20087027059 A KR 20087027059A KR 20090006167 A KR20090006167 A KR 20090006167A
Authority
KR
South Korea
Prior art keywords
document
versions
version
request
server
Prior art date
Application number
KR1020087027059A
Other languages
English (en)
Other versions
KR101422859B1 (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 마이크로소프트 코포레이션
Publication of KR20090006167A publication Critical patent/KR20090006167A/ko
Application granted granted Critical
Publication of KR101422859B1 publication Critical patent/KR101422859B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • 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/93Document management systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2149Restricted operating environment

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Health & Medical Sciences (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Mathematical Physics (AREA)
  • Information Transfer Between Computers (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

특히, 요구시, 문서의 오디언스 적정 버전을 식별하고 제공하는 기술이 여기에 개시된다. 이러한 기술에 대한 접근 중 하나에서, 문서에 대한 요구는 그 문서와 연관된 문서 특정 액세스 포인트에서 수신된다. 이 문서 요구는 특정의 파일 액세스 허가와 연관된다. 이 특정의 파일 액세스 허가는 문서의 이용 가능한 버전들 중 하나를 식별하기 위해 사용된다. 그렇게 식별된 문서의 버전이 그 후 검색된다.
문서, 버전, 액세스 포인트, 문서 레벨 시스템, 데이터베이스 백엔드, 네트워크 모듈

Description

문서의 오디언스-적정 버전을 제공하는 방법, 문서 서버, 및 컴퓨터 판독 가능 매체{PERMISSION-BASED DOCUMENT SERVER}
특히 사업 환경에서, 문서의 컨텐츠는 문서의 라이프스팬(lifespan) 동안 복수 회 변경될 것이다. 컨텐츠는, 그것이 소프트웨어 코드, 사업 계획, 조작 매뉴얼, 또는 임의의 다른 형태의 데이터일지라도, 수년간 드래프트되고, 편집되고, 개정되며, 확장될 수 있다. 이 방식으로, 문서의 많은 상이한 버전들이 생성될 것이다.
문서의 의도된 오디언스(intended audience)도 시간에 따라 변화할 것이다. 예를 들어, 초기 드래프팅 동안에는, 작성자만이 문서를 볼 것이다. 나중에는, 감독자 또는 편집자가 관련되고, 문서의 현재 버전을 볼 필요가 있을 수 있다. 문서의 어떤 버전들은 광범위한 배포에 적절할 수 있는 한편, 다른 버전들은 더욱 엄중하게 유지되어야 한다.
결과적으로, 컨텐츠 제공자들은 상이한 액세스 포인트들을 통하여 문서의 상이한 버전들을 유포할 수 있다. 예를 들어, 문서의 2차 개정의 초기 드래프트와 같이, 제한된 릴리즈 문서(limited release document)는 하나의 URL에서 문서의 작성자가 액세스 가능할 것인 한편, 문서의 1차 개정의 일반 릴리즈는 제2 URL에서 공중이 액세스 가능하며, 문서의 제1 개정의 더욱 상세한 릴리즈는 제3 URL에서 선 택 그룹이 이용 가능하다. 복수의 액세스 포인트들을 유지하는 것은, 그것이 성가신 일이고, 경직된 것이며, 문서의 모든 버전들에 대한 각각의 모든 액세스 포인트가 적절히 유지되고 업데이트되는 것을 확실히 하기 위하여 상당한 비용을 요구한다는 점이 문제이다.
발명의 개요
특히 여기에서는, 요구시, 문서의 오디언스 적정 버전을 식별 및 제공하는 기술이 개시된다. 사용자가 문서에 대한 액세스를 요구할 때, 본 기술은 사용자가 보는 것이 허용되는 것(what the user is permitted to see)을 결정한다. 따라서, URL과 같은, 동일한 액세스 포인트에 대한 문서에 도달하는 상이한 사용자들은, 각각이 액세스하도록 허가받은 것에 따라, 문서의 상이한 버전들을 획득할 것이다.
본 기술의 한 접근에서, 문서에 대한 요구는, 그 문서와 연관된 URL(uniform resource locator)과 같은 문서 특정 액세스 포인트에서 수신된다. 이 문서 요구는 파일 액세스에 대한 개별 사용자의 허가(permission)와 같은 특정의 파일 액세스 인가(authorization)들과 연관된다. 이 특정 파일 액세스 인가들은 예를 들면, 문서의 각각의 버전과 연관된 파일 액세스 허가들과 비교함으로써, 문서의 이용 가능한 버전들 중 하나를 식별하기 위하여 이용된다. 그렇게 식별된 문서의 버전이 그 후 검색된다.
본 기술에 대한 다른 접근은 요구시 문서의 가장 최신 버전을 리턴하도록 셋업된 문서 서버이다. 문서 서버는 네트워크 모듈을 포함하며, 이를 통해 데이터가 전송된다. 네트워크 모듈은, 문서의 복수의 버전들을 저장하기 위하여 이용되는 SQL 데이터베이스와 같은 문서 저장 모듈에 연결된다. 이 복수의 버전들의 각각은 그것에 액세스하기 위하여 요구된 허가들과 연관된다. 문서 서버는, 예를 들어 요구하고 있는 사용자가 어떤 취급허가 레벨(clearance level)을 갖고 있는지 결정하여 문서 요구와 연관된 취급허가 레벨을 식별하기 위한 식별 모듈을 이용한다. 인가 모듈(authorization module)은 문서 요구와 연관된 취급허가 레벨을 문서의 버전들의 각각에 연관된 요구된 허가와 비교하고, 문서의 적절한 버전을 검색한다.
본 개요는 상세한 설명부에서 더욱 상세히 설명되는 개념들의 선택을 간략화된 형태로 소개하기 위하여 제공된다. 본 개요는 청구 발명의 주요 특징들 또는 본질적인 특징들을 식별하려는 것은 아니며, 청구 발명의 범위를 제한하기 위해 이용되는 것도 아니다.
본 명세서에 포함되어 일부를 형성하는 첨부도면들은 실시예들이, 설명부와 함께, 청구 발명의 원리들을 설명하는 기능을 하는 것을 예시한다.
도 1은 실시예들이 구현될 수 있는 예시적인 컴퓨팅 시스템의 블럭도.
도 2는 일 실시예에 따른, 문서 서버의 블럭도.
도 3은 실시예들이 구현될 수 있는 예시적인 컴퓨팅 네트워크의 블럭도.
도 4는 일 실시예에 따른, 문서 레벨 시스템을 도시하는 도면.
도 5는 일 실시예에 따른, 데이터 베이스 백엔드의 블럭도.
도 6은 일 실시예에 따른, 문서의 오디언스 적정 버전을 서브하는 방법의 흐 름도.
도 7은 일 실시예에 따른, 문서 서버의 블럭도.
도 8은 일 실시예에 따른 버전 브로커를 이용하는 방법의 흐름도.
이제 몇몇 실시예들에 대한 참조가 상세하게 이루어질 것이다. 본 발명이 대안의 실시예들과 연계하여 설명될 것이지만, 이는 청구 발명을 이 실시예들로 제한하려는 것이 아닌 것을 이해할 것이다. 오히려, 청구 발명은 청구항들에 의해 정의된 청구 발명의 취지 및 범위 내에 포함될 수 있는 대안들, 수정들, 및 균등물을 포함하는 것을 의도한다.
더욱이, 이하의 상세한 설명부에서는, 청구 발명의 완전한 이해를 위해 다수의 특정한 세부사항들이 설명된다. 그러나, 당업자는 실시예들이 이러한 특정의 세부사항들이 없이 또는 그것의 균등물로 실시될 수 있는 것을 이해할 것이다. 다른 예에서는, 본 발명의 양태들 및 특징들을 불필요하게 모호화하지 않도록 공지의 방법들, 절차들, 컴포넌트들, 및 회로들이 설명되지 않았다.
이어지는 상세한 설명부의 일부는 방법의 견지에서 제공 및 검토된다. 그 단계들 및 시퀀싱은 이 방법의 동작을 설명하는 도면(도 6)에서 개시되지만, 그러한 단계들 및 시퀀싱은 예시적인 것이다. 실시예들은 여기에서의 도면의 흐름도로, 및 여기에서 설명된 것과 다른 시퀀스로 열거된 다양한 다른 단계들 또는 단계들의 변형들을 수행하는 데에 적합하다.
상세한 설명부의 일부는 컴퓨터 메모리에서 수행될 수 있는 데이터 비트들에 대한 동작의 절차, 단계, 논리 블럭, 프로세싱, 및 다른 기호적 표현들의 견지에서 제공된다. 이 설명들 및 표현들은 당업자들이 연구 내용을 다른 당업자들에게 가장 효과적으로 전달하기 위하여 이용하는 수단이다. 절차, 컴퓨터 실행된 단계, 논리 블럭, 프로세스 등은 여기에서, 및 일반적으로는, 원하는 결과에 도달하게 하는 단계들 또는 명령어들의 일관성있는 시퀀스인 것으로 이해된다. 단계들은 물리량들의 물리적 조작들을 필요로 하는 것들이다. 통상적으로, 반드시는 아니더라도, 이 물리량들은 컴퓨터 시스템에서 저장, 전송, 결합, 비교, 및 달리 조작될 수 있는 전기적 또는 자기적 신호들의 형태이다. 때로는, 주로 보통의 용법(common usage)을 이유로, 이 신호들을 비트, 값, 엘리먼트, 심볼, 문자, 용어, 숫자 등으로서 언급하는 것이 편리한 것으로 증명되었다.
그러나, 이들 및 유사한 용어들 모두는 적절한 물리량들과 연관되는 것이며 단지 이 물리량들에 적용되는 편리한 레이블들인 것을 기억해야 한다. 이하의 설명으로부터 자명한 바와 같이 특별히 달리 언급되지 않으면, 본 발명에 걸쳐, "액세하는", "기입하는", "포함하는", "저장하는", "전송하는", "트래버스하는", "연관시키는", "식별하는" 등의 용어를 이용하는 설명들은, 컴퓨터 시스템의 레지스터들 및 메모리들 내의 물리적(전기적) 물리량들로서 표현된 데이터를 조작하여 컴퓨터 시스템 메모리들 또는 레지스터들 또는 기타 그러한 정보 저장, 전송 또는 디스플레이 장치들 내의 물리량들로서 유사하게 표현된 다른 데이터로 변환시키는 컴퓨터 시스템 또는 유사한 전자적 컴퓨팅 장치의 동작 및 프로세스들을 의미한다.
컴퓨팅 시스템 환경(10) 또는 문서 서버(100)와 같은 컴퓨팅 장치들은 보통 은 적어도 컴퓨터 판독 가능 매체의 일부 형태를 포함한다. 컴퓨터 판독 가능 매체는 컴퓨팅 장치에 의해 액세스될 수 있는 임의의 이용 가능한 매체일 수 있다. 제한이 아닌 예로서, 컴퓨터 판독 가능 매체는 컴퓨터 저장 매체 및 통신 매체를 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독 가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보를 저장하는 임의의 방법 또는 기술로 구현되는 휘발성 및 비휘발성, 이동식 및 비이동식 매체를 포함한다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래시 메모리 또는 기타 메모리 기술, CD-ROM, DVD 또는 기타 광 저장 장치, 자기 카세트, 자기 테이프, 자기 디스크 저장 장치 또는 기타 자기 저장 장치, 또는 컴퓨터 장치에 의해 액세스되고 원하는 정보를 저장하는 데에 이용될 수 있는 임의의 기타 매체를 포함하지만 이에 제한되는 것은 아니다. 통신 매체는 통상적으로 반송파(carrier wave) 또는 기타 전송 메커니즘(transport mechanism)과 같은 피변조 데이터 신호(modulated data signal)에 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터 등을 구현하고 모든 정보 전달 매체를 포함한다. "피변조 데이터 신호"라는 용어는, 신호 내에 정보를 인코딩하도록 그 신호의 특성들 중 하나 이상을 설정 또는 변경시킨 신호를 의미한다. 제한이 아닌 예로서, 통신 매체는 유선 네트워크 또는 직접 배선 접속(direct-wired connection)과 같은 유선 매체, 그리고 음향, RF, 적외선, 기타 무선 매체와 같은 무선 매체를 포함한다. 상술된 매체들의 모든 조합이 또한 컴퓨터 판독 가능 매체의 영역 안에 포함되어야 한다.
어떤 실시예들은 일반적으로 하나 이상의 컴퓨터 또는 기타 장치들에 의해 실행되는 프로그램 모듈과 같은 컴퓨터 실행가능 명령어와 관련하여 기술될 수 있다. 일반적으로, 프로그램 모듈은 특정 태스크를 수행하거나 특정 추상 데이터 유형을 구현하는 루틴, 프로그램, 개체, 컴포넌트, 데이터 구조 등을 포함한다. 프로그램 모듈의 기능은 각종 실시예들에서 원하는 바대로 결합 또는 분산될 수 있는 것이 보통이다.
기존의 버전 제어 시스템들은 문서 버전들 및 오디언스 제한들에 대한 소정의 제어를 제공한다. 일반적으로, 이것은 컨텐츠의 상이한 레벨들을 리턴하기 위한 상이한 액세스 포인트들로, 컨텐츠에 액세스하는 복수의 방법들을 제공하는 것에 의해 성취된다. 이것은, 예를 들어 문서의 각각의 상이한 버전에 대한 상이한 URL 링크와 같은 상이한 어드레스 정보를 제공하거나, 컨텐츠를 상이한 위치에 복사함으로써 성취될 수 있다.
버전 제어에 대한 이 접근에는, 의도된 오디언스가 단일의 액세스 포인트로부터 항상 컨텐츠의 최신 버전을 검색할 수 있는 것은 아니라는 한계가 내재한다.
청구 발명에서 제공되고, 이하의 실시예들에 의해 예시되는 바와 같이, 복수의 상이한 오디언스들 중 복수의 사용자들이 동일한 액세스 포인트로부터 문서의 상이한 버전들에 도달하게 하는 기술이 제공된다.
이하의 실시예들에서, 문서 서버가 설명된다. 문서 서버는 문서의 최신 버전이 검색될 수 있는 단일 액세스 포인트를 제공한다. 일부 실시예들에서, 문서 서버는 또한, 문서의 상이한 버전들이 소정의 오디언스들로만 제한될 수 있다는 점에서 오디언스 특정 보안(audience-specific security)을 제공한다. 그러한 일부 실시예에서는, 문서 서버는 문서의 "레벨들"을 서로 다르게 하여, 한 오디언스는 문서의 한 레벨에 액세스할 수 있는 한편, 다른 오디언스는 제2의 레벨에 액세스할 수 있게 하는 것을 허용한다. 또한, 일부 실시예들에서, 문서 서버는 또한 고유의 어드레스 포인터를 통해 문서의 모든 버전이 액세스 가능해지도록 한다.
기본적 컴퓨터 장치
도 1을 참조하면, 실시예들을 구현하기 위한 예시적인 시스템은 컴퓨팅 시스템 환경(10)과 같은 범용 컴퓨팅 시스템 환경을 포함한다. 가장 기본적인 구성에서, 컴퓨팅 시스템 환경(10)은 적어도 하나의 처리 장치(12) 및 메모리(14)를 포함하는 것이 보통이다. 컴퓨팅 시스템 환경의 정확한 구성 및 유형에 따라서, 메모리(14)는 비휘발성(RAM과 같은), 비휘발성(ROM, 플래시 메모리 등과 같은) 또는 둘의 어떤 조합일 수 있다. 이러한 가장 기본적인 구성은 도 1에서 점선(16)으로 도시된다. 또한, 컴퓨팅 시스템 환경(10)은 추가적인 특징/기능을 가질 수도 있다. 예를 들어, 컴퓨팅 시스템 환경(10)은 또한, 자기 또는 광 디스크들 또는 테이프를 포함하지만 이에 제한되는 것은 아닌 추가적인 저장 장치(이동식 및/또는 비이동식)를 포함할 수 있다. 이러한 추가적인 저장 장치는 도 1에서 이동식 저장 장치(18) 및 비이동식 저장 장치(20)로 도시된다. 컴퓨터 저장 매체는 컴퓨터 판독 가능 명령어들, 데이터 구조들, 프로그램 모듈들 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 이동식 및 비이동식 매체를 포함한다. 메모리(14), 이동식 저장 장치(18) 및 비이동식 저장 장 치(20)는 모두 컴퓨터 저장 매체의 예들이다.
컴퓨팅 시스템 환경(10)은 또한 다른 장치들과 통신하게 해주는 소정의 통신 접속(22)을 포함할 수 있다. 통신 접속(22)은 통신 매체의 일 예이다.
컴퓨팅 시스템 환경(10)은 또한 키보드, 마우스, 펜, 음성 입력 장치, 터치 입력 장치 등과 같은 입력 장치(들)(24)를 포함할 수 있다. 디스플레이, 스피커, 프린터 등과 같은 출력 장치(들)(26)도 포함될 수 있다. 이 장치들 모두는 공지되어 있으며 여기에서 상세히 설명될 필요는 없다.
문서 서버
이제 도 2를 참조하여, 일 실시예에 따른 문서 서버의 블럭도가 도시된다. 도 2는 소정의 열거된 특징들을 갖는 문서 서버(100)를 도시하지만, 실시예들은 상이하거나, 추가적이거나, 또는 더 적은 수의 엘리먼트들을 갖는 시스템들에서 실시될 수도 있는 것이 이해된다. 문서 서버(100)는 데이터베이스 백엔드(database backend, 110)를 갖는 것으로 도시된다. 문서 서버(100)는 또한 프론트엔드(front-end) 애플리케이션 서버(120)를 갖는 것으로 도시된다. 프론트엔드 애플리케이션 서버(120) 및 데이터베이스 백엔드(110)는 인터페이스(115)를 통해 통신한다. 어떤 실시예들에서, 문서 서버(100)는, 예를 들어, 컴퓨팅 시스템 환경(10)인 컴퓨팅 장치의 일부로서 구현될 것이다.
어떤 실시예에서, 데이터베이스 백엔드(110)는 소프트웨어 데이터베이스이다. 많은 유형의 데이터베이스가 공지되어 있고, 일 실시예에서 사용하기에 적합 하다(예를 들면, SQL 데이터베이스). 또한, 문서 서버(100)는 단일 시스템으로서 도시되지만, 본 발명의 실시예들은 별도의 컴퓨터 시스템(예를 들어, 네트워크 액세스 가능 데이터베이스 서버) 상에 호스트된 데이터베이스 백엔드(110)를 구비하는 것을 포함한다.
어떤 실시예들에서, 인터페이스(115)는 소프트웨어 애플리케이션 프로그래밍 인터페이스, 즉 API이다. 다른 실시예들에서, 인터페이스(115)는 프론트엔드 애플리케이션 서버(120)와 데이터베이스 백엔드(110) 간의 하드웨어 접속, 예를 들면 네트워크 접속이다. 인터페이스(115)가 문서 서버(100)에 포함되는 실시예들에서, 인터페이스(115)는 프론트엔드 애플리케이션 서버(120)와 데이터베이스 백엔드(110) 간의 통신을 가능하게 한다.
어떤 실시예들에서, 프론트엔드 애플리케이션 서버(120)는 문서 서버(100)의 사용자로부터의 요구에 응하여, 문서 검색(document retrieval)을 수행한다. 어떤 실시예들에서, 프론트엔드 애플리케이션 서버(120)는 문서 서버(100)에 대한 액세스를 위한 사용자 인터페이스를 제공한다. 다른 실시예들에서, 프론트엔드 애플리케이션 서버(120)는 별도의 사용자 인터페이스를 통해 액세스된다. 어떤 실시예들에서, 프론트엔드 애플리케이션 서버(120)는 추가적인 태스크들을 수행할 수 있는데, 예를 들어 일 실시예에서, 프론트엔드 애플리케이션 서버(120)는 포털 서버 애플리케이션이다.
예시적인 네트워크
이제 도 3을 참조하여, 일 실시예에 따른, 예시적인 네트워크(200)가 도시된다. 도 3은 소정의 열거된 특징들을 갖는 네트워크를 도시하지만, 실시예들은 상이하거나, 추가적이거나, 또는 더 적은 수의 엘리먼트들을 갖는 네트워킹 환경들에서 실시될 수 있는 것이 이해된다. 특히, 예시적인 네트워크(200)는 사용자들과 문서 서버 간의 소정의 특정 네트워크 접속들을 갖는 것으로 도시되지만, 실시예들은 많은 상이한 네트워크 접속 유형들을 수반하는 네트워크들에서 실시될 수 있는 것이 이해되어야 한다.
도 3에 도시된 실시예에서, 문서 서버(100)는 다수의 상이한 유형들의 네트워크 접속을 통해 복수의 사용자들에 의해 액세스되는 것으로 도시된다. 사용자(210)는 이더넷 접속(205)을 통해 문서 서버(100)에 액세스한다. 사용자(220)는 VPN(virtual private networking) 터널(215)을 통해 문서 서버(100)에 액세스한다. 사용자(230)는 인터넷(225), 예를 들어, HTTP(hypertext transfer protocol) 접속을 통해 문서 서버(100)와 통신한다. 사용자(240)는 단말 접속(terminal connection, 235)을 통해 문서 서버(100)에 액세스한다. 상이한 실시예들에 의해 지원되는 네트워킹 접속의 유형들은 문서 서버(100)의 의도된 애플리케이션에 의하여 및/또는 문서 서버(100) 상에 저장되어 있는 문서들에 액세스하는 것이 의도된 오디언스에 의해 바뀔 것이다.
보안, 레벨, 및 오디언스
많은 상황들에서, 문서를 보도록 의도된 오디언스(the intended to viewing audience for document)는 문서의 수명 동안에 변화할 것이다. 또한, 특히 문서가 빈번히 개정되기 쉬운 경우, 주어진 시간에 상이한 사람들이 문서의 상이한 버전들에 액세스할 것이다. 예를 들어, 발행된 문서의 기존 버전과 문서의 다음 개정 간의 전환(transitioning)의 경우, 기존의 발행된 문서는 작성자가 문서의 다음 드래프트를 개정하더라도 이용 가능하다.
이와 같은 상황들을 처리하기 위해, 문서의 상이한 버전들을 확립하는 것이 도움이 된다. 어떤 실시예들에서, 문서 "레벨들"의 스킴(scheme)이 이러한 구별을 위해 이용된다. 이 스킴은 문서 버저닝(document versioning)에 대한 계층적 접근(hierarchical approach)을 제공하는데, 여기에서는 일부 사업 관행(business practice)에 따라 한 레벨에서 다음 레벨로의 문서 전환이 허용된다. 일부의 그러한 실시예들에서, 문서의 특정 버전은 문서명과 현재의 레벨의 조합에 의해 고유하게 식별된다.
이제 도 4를 참조하여, 일 실시예에 따른 문서 레벨 시스템(300)이 도시된다. 도 4는 이산 수치의 레벨들(a discrete number of levels)을 갖는 문서 레벨 시스템(300)을 도시하지만, 실시예들은 임의의 수의 레벨들을 갖는 문서 레벨 시스템들로 실시될 수 있는 것이 이해되어야 한다. 또한, 문서 레벨 시스템(300)이 레벨들 간의 전환을 위한 예시적인 사업 관행들(business practices)을 제공하지만, 다른 실시예들은 레벨들 간의 전환을 위하여 다른 수단을 이용한다.
문서 레벨 시스템(300)의 레벨 1은 문서의 드래프트 버전(310)을 위해 이용된다. 어떤 상황들에서는, 문서의 드래프트, 또는 체크아웃된 버전은 문서의 작성 자에게만 이용 가능할 수 있다. 다른 환경들에서는, 작성자의 감독자들과 같은 보다 광범위의 오디언스가 드래프트를 볼 수는 있지만, 작성자만이 드래프트를 변경시킬 수 있다.
문서 레벨 시스템(300)의 레벨 2는 문서의 마이너 버전(320)을 위해 준비된다. 이따금, 문서의 마이너 버전은 문서에 대한 초기 드래프트보다 더 광범위의 오디언스를 가질 것이며, 리뷰 프로세스의 일부로서 이용될 수 있다.
문서 레벨 시스템(300)의 레벨 3에 도달한 문서는 문서의 메이저 버전(330)이다. 종종, 문서의 메이저 버전은 가장 광범위의 배포에 적합하며, 최종 문서 버전을 나타낸다.
도 4에 도시된 바와 같이, 레벨들 1, 2, 및 3 간의 전환은 소정의 사업 관행에 의해 이루어진다. 드래프트 버전(310)으로부터 마이너 버전(320)으로의 전환은 드래프트 서브미션(draft submission, 315)의 결과로서 발생하는 것으로 도시된다. 마이너 버전(320)으로부터 메이저 버전(330)으로의 전환은 감독자 승인(325)을 필요로 한다.
문서 레벨 시스템(300)은 여기에서는 문서가 드래프트 버전으로부터 메이저 버전으로 되는 것을 허용하는 것으로 도시되어 있지만, 다른 상황들에도 쉽게 적용 가능하다. 어떤 실시예들에서, 예를 들어, 레벨 시스템은 보안 메커니즘으로서 이용되며, 예를 들어, 레벨 3 문서들과 같은 가장 광범위의 오디언스를 갖는 문서 버전은 보다 협소한 범위의 의도된 오디언스를 갖는 문서 버전들보다 더 적은 정보를 포함한다.
오디언스 제한
상이한 문서 버전들에 대한 액세스를 제한하는 것은 두개 측면에서 문제가 된다. 첫째, 현재 오디언스가 누구인지 결정하는 것, 예를 들면 시스템의 특정 사용자를 식별 및 인증(authenticate)하는 것이 필요하다. 둘째, 이 오디언스가 특정의 문서 버전에 액세스하는 것이 허용되어야 하는지 여부를 결정할 필요가 있다.
오디언스의 식별 및 인증은 다수의 방식들로 달성될 수 있다. 일 실시예에서는, 예를 들어, 사용자가 임의의 문서들에 액세스하려고 시도하기 전에 포털 서버에 로그인한다. 다른 실시예에서, 인증은 사용자가 인터넷, 또는 로컬 네트워크 접속을 통하여 문서 서버에 액세스 중인지 여부에 기인할 수 있다. 본 발명의 실시예들은 어떠한 식별 및 인증 방법의 사용에도 적합하다.
사용자가 특정의 문서 버전에 액세스하는 것이 허용되어야 하는지 여부를 결정하는 것도 다수의 방식으로 처리될 수 있다. 예를 들어, 사용자가 소정의 특정된 오디언스, 예를 들면 회사의 문서 리뷰어의 일부인지 여부에 기초하여, 각각의 사용자에게는 소정의 허가들(permissions)이 할당될 수 있다. 각각의 문서 버전에는 마찬가지로, 예를 들어, 문서가 개정의 어느 레벨에 있는 지에 기초하여, 소정의 허가들이 할당된다. 문서의 허가들을 오디언스의 허가들과 비교함으로써, 액세스가 승인 또는 거부될 수 있다.
어떤 실시예들에서는, 상기 설명된 레벨 기능을 가능하게 하기 위하여, 문서의 상이한 버전들은 그들이 어느 레벨인 지에 대한 정보를 포함한다. 어떤 실시예 들에서, 각각의 문서 버전은 또한 의도된 오디언스에 대한 정보를 포함한다.
이제 도 5를 참조하여, 일 실시예에 따른, 데이터베이스 백엔드(110)의 블럭도가 도시된다. 도 5는 필요한 데이터를 저장하는 것에 대한 한 접근을 도시한다. 데이터베이스 백엔드(110)는, 각각 문서 레벨 시스템(300)의 상이한 레벨에 있는 문서 ExmplDoc의 세 버전들을 포함하는 것으로 도시된다. 이 세 버전들의 각각은 문서의 각각의 특정 버전을 고유하게 식별하는 방식으로 저장된다.
파일(410)은 문서의 명칭인 ExmpleDoc을 포함하는 명칭 필드(411)를 포함한다. 파일(410)은 또한 레벨 필드(412)를 포함하는데, 이것은 문서 레벨 시스템(300)의 레벨(여기에서는 레벨 1)을 식별한다. 어떤 실시예들에서, 이 두 필드들의 조합은 이 특정한 문서의 이 특정한 버전을 고유하게 식별할 것이다. 어떤 실시예에서는, 레벨 필드 대신에, 또는 그에 더하여 버전 필드가 이용된다. 버전 필드는 레벨을 식별하고 파일의 최신 버전을 식별하는 것을 돕는 버전 번호를 제공할 수 있는데, 예를 들어 1.10.1의 버전 필드 엔트리는 레벨 1에서의, 10번째 개정의 첫번째 메이저 릴리즈(a first major release, 10th revision, at level 1)를 나타낼 수 있다. 어떤 실시예들은 또한 오디언스 필드(413)를 포함하는데, 이것은 누가 이 파일에 액세스하는 것이 허용되는지 특정하며, 여기에서는 작성자만이다. 다른 실시예들은 오디언스 필드를 생략하는데, 그러한 실시예들 중 몇몇은 레벨 필드(412)에 기초하여 파일에 대한 액세스를 제한한다.
파일(420)은 명칭 필드(421), 레벨 필드(422), 및 오디언스 필드(423)를 포함한다. 파일(420)은 마이너 릴리즈(minor release)이기 때문에, 오디언스 필 드(423)는 더 큰 잠재적 오디언스, 예를 들면, 원래의 작성자 및 리뷰어를 반영한다. 파일(430)은 명칭 필드(431), 레벨 필드(432), 및 오디언스 필드(433)를 포함한다. 파일(430)은 메이저 릴리즈(major release)이기 때문에, 오디언스 필드(433)는 훨씬 더 큰 잠재적 오디언스, 예를 들면 일반 공중(general public)을 반영한다. 도 5는 점진적으로 더 큰 잠재적 오디언스를 나타내지만, 어떤 실시예들에서는 각각의 레벨의 오디언스의 특성이 다른 방식들로 변경될 수 있는 것이 이해된다.
어떤 실시예들은, 데이터베이스 필드를 이용하지 않고, 예를 들면, 문서 메타데이터(document metadata)를 이용하여 레벨 버전 및/또는 오디언스 정보를 파일 자체로 통합시킨다. 또 다른 실시예들은 데이터베이스 백엔드(110)의 기초 파일시스템(underlying filesystem)을 이용하여 레벨 및/또는 오디언스 정보를 추적한다. 다른 실시예들은 이 정보를 추적하거나 저장하는 다른 방법들을 이용한다.
통일된 문서 액세스 포인트
어떤 실시예들은, 각각이 문서의 상이한 버전들을 리턴시키는 상이한 액세스 포인트들을 갖지 않고, 단일의 통일된 문서 액세스 포인트를 제공한다. 이 통일된 문서 액세스 포인트를 통해 문서에 액세스하는 사용자는 자신이 보는 것이 허용되는 문서의 최신 버전을 수신할 것이다. 예를 들어, 도 5를 참조해보면, 파일들(410, 420, 및 430)은 모두 동일한 통일된 문서 액세스 포인트를 통하여 도달될 것이다. 파일의 어느 버전이 리턴되는 것인지는, 액세스 시도중인 사용자의 허가 에 따라 변화할 것인데, 예를 들어 ExmplDoc 문서에 대한 통일된 문서 액세스 포인트에 액세스하는 작성자는 파일(410)을 수신할 것인 한편, 동일한 액세스 포인트에 액세스하는 일반 공중의 구성원은 파일(430)을 수신할 것이다.
액세스 포인트의 특성은 상이한 실시예들에 따라 변화할 것이다. 예를 들어, 문서 서버가 포털 서버의 일부인 실시예에서, 액세스 포인트는 URL로서 나타나며, 브라우저 소프트웨어를 이용하여 도달될 수 있다. 다른 실시예들에서는, 유사한 효과를 위해 상이한 유형들의 액세스 포인트들이 이용될 수 있다.
이제 도 6을 참조하여, 일 실시예에 따른, 문서의 오디언스 적정 버전(audienc-appropriate version)을 서브하는 방법의 흐름도(500)가 제공된다. 흐름도(500)로 특정의 단계들이 개시되어 있지만, 그러한 단계들은 예시적인 것이다. 즉, 본 발명의 실시예들은 흐름도(500)에서 열거된 단계들의 변형들 또는 다양한 다른(추가적인) 단계들을 수행하는 데에 적합하다. 흐름도(500)에서의 단계들은 나타낸 것과 다른 순서로 수행될 수 있으며, 흐름도(500) 내의 모든 단계들이 수행되는 것은 아닐 수도 있다는 것이 이해된다.
단계(510)를 참조하여, 문서 서버가 액세스된다. 어떤 실시예들에서, 단계는 또한 문서 서버에 액세스하는 사용자를 인증하는 것을 포함한다. 그러한 실시예들 중 몇몇에서, 사용자의 파일 액세스 인가 또는 보안 취급허가(security clearance)는 문서 서버에 이용 가능하다. 예를 들어, 도 3을 참조하면, 사용자들(210)은 이더넷 접속(205)을 통해 문서 서버(100)에 접속된다. 문서 서버(100)가 포털 서버의 일부인 실시예들에서, 사용자(210)는 포털 서버에 로그인하고 인증 될 것이다. 다른 실시예들에서, 대안의 인증 방법들이 이용된다.
단계(520)를 참조하면, 문서 서버는 문서의 액세스 포인트를 통해 문서에 액세스하기 위한 요구를 수신한다. 그러한 요구는 사용자의 부분에서의 동작을 필요로할 수 있거나(예를 들면, 특정의 문서 액세스를 선택하는 것), 또는 사용자의 로그인에 자동적으로 응답할 수 있다(예를 들면, 사용자가 포털 서버에 로그인하고, 시스템은 자동으로 사용자가 보고 있던 최종 문서를 검색함).
단계(530)를 참조하면, 문서 서버는 가장 통상적으로 액세스된 문서의 버전을 검색한다. 어떤 실시예들에서는, 문서의 가장 통상적으로 본 버전을 자동으로 검색하는 것은 사용자가 어느 버전을 보고 있어야 하는지 먼저 결정하는 것보다 더 빠르다. 예를 들어, 도 5를 참조하면, ExmplDoc의 가장 통상적으로 본 버전이 파일(430)인 경우(공개적으로 액세스 가능한 메이저 버전), 문서 서버는 그 버전을 자동으로 검색할 것이다. 어떤 실시예들에서, 이 단계는 변경될 것이며, 예를 들어, 일 실시예에서, 문서 버전은 그것이 문서 액세스들 중 과반수를 나타내는 경우에만 프리페치(pre-fetch)될 것이고, 다른 실시예들에서는, 관리자가 임계치를 구성할 수 있다. 다른 실시예들은 이 단계를 생략한다.
단계(540)를 참조하면, 문서 서버는 허가 체크를 수행한다. 도 3을 참조하면, 문서 서버(100)는 사용자(210)의 인가와 이용 가능한 문서의 상이한 버전들의 파일 액세스 허가를 비교한다.
단계(530)를 포함하는 어떤 실시예들에서, 사용자(210)의 인가는 먼저 가장 통상적으로 액세스된 문서와 비교된다. 사용자의 인가가 가장 통상적으로 액세스 된 문서를 보는 데에 충분치 않다면, 문서 서버(100)는 보다 덜 제한된(less-restricted) 버전을 찾는다. 사용자의 인가가 가장 통상적으로 본 버전에 대한 액세스를 위해 요구되는 것보다 더 크다면, 문서 서버(100)는 더욱 제한된 버전을 찾는다.
다른 실시예들에서, 문서 서버(100)는 사용자(210)가 보는 데에 충분한 인가를 갖는 요구된 문서의 최신 버전을 식별한다.
단계(550)를 참조하면, 문서 서버는 적합한 문서를 검색한다. 단계(530)를 구현하는 어떤 실시예들에서, 가장 통상적으로 본 문서가 적합한 문서일 수 있는데, 이 경우 이것은 이미 검색된 것이며, 만일 사용자가 상이한 버전으로 제한되거나, 또는 그것에 권한이 부여되어 있다면, 적합한 문서가 검색되어야 한다. 예를 들어, 도 3 및 5를 참조하면, ExmplDoc의 가장 통상적으로 본 버전은 파일(430)이고, 문서의 작성자인 사용자(210)가 문서 서버(100)에 액세스한다면, 문서 서버(100)는 문서의 드래프트 버전인 파일(410)을 검색할 필요가 있을 것이다.
이제 단계(560)를 참조하면, 문서 서버는 요구된 문서를 제공한다. 이 트랜잭션(transaction)의 형태는 상이한 실시예들에 따라 변경된다. 예를 들어, 어떤 실시예들에서는 문서가 브라우저 윈도우에 디스플레이될 것이지만, 다른 실시예들에서는, 문서가 파일로서 전송될 것이고, 다른 실시예들은 이 트랜잭션을 다른 방식들로 처리할 것이다.
다른 버전 보기
어떤 실시예들에서는, 보다 특권이 있는 사용자가 문서의 보다 덜 제한적인 버전들을 볼 수 있는 것이 유용하다. 유사하게, 때로는 문서의 이전 버전들을 볼 수 있는 것이 유용하다. 따라서, 그러한 실시예들 중 몇몇에서는, 문서의 모든 버전은 그 특정의 버전에 고유한 액세스 포인트를 이용하여 검색 가능할 수 있다. 예를 들어, 도 5를 참조하면, ExmplDoc 문서의 작성자가 파일(420)을 보기를 원하였다면, 그는 파일(420)에 특정된 액세스 포인트로 네비게이션할 수 있다.
문서 서버의 컴포넌트들
이제 도 7을 참조하여, 일 실시예에 따른, 문서 서버(600)의 블럭도가 도시된다. 문서 서버(600)는 특정의 컴포넌트들을 포함하는 것으로 도시되어 있지만, 실시예들은 대안의 구성들 또는 컴포넌트들을 갖는 문서 서버들에서의 구현에 적합한 것이 이해된다. 특히, 문서 서버(600)가 개별 컴포넌트들의 집합으로 나타내어지지만, 어떤 실시예들은 수행된 태스크들을 보다 적은 수의 컴포넌트들로 집중시키고, 다른 실시예들은 이 태스크들을 추가적인 컴포넌트들을 통해 분산시킨다.
문서 서버(600)는 네트워크 모듈(610)을 갖는 것으로 도시된다. 도시된 실시예에서, 네트워크 모듈(610)은 데이터가 문서 서버(600)에 들어가거나 그것을 떠나게 한다. 예를 들어, 문서에 대한 사용자로부터의 요구들은 네트워크 모듈(610)에서 수신되는 한편, 검색된 문서들은 네트워크 모듈(610)을 통하여 문서 서버(600)로부터 전송된다. 어떤 실시예들에서, 문서 서버(600)는, 예를 들어, 데이터 전송의 상이한 방법들과 호환되거나, 또는 별도의 입력 및 출력 경로들을 위한 복수의 네트워크 모듈들을 포함한다.
문서 서버(600)는 또한 식별 모듈(620)을 포함하는 것으로 도시된다. 식별 모듈(620)은, 예를 들어 사용자가 문서 서버(600)에 로그온하도록 허용하거나, 또는 특정의 사용자를 그의 컴퓨터로 식별함으로써 특정의 사용자를 식별하려고 시도한다. 상이한 실시예들은 하나 이상의 상이한 식별 루틴들을 포함할 수 있다. 어떤 실시예들에서는, 식별 모듈(620)이 또한 사용자의 취급허가 레벨을 식별한다.
문서 서버(600)는 인가 모듈(630)을 포함하는 것으로 도시된다. 어떤 실시예에서, 인가 모듈(630)은 사용자가 요구된 문서를 보기에 적합한 취급허가 레벨을 가지는지 여부를 결정한다. 식별 모듈(620)에 의해 식별된 사용자의 취급허가 레벨을 요구된 문서와 연관된 요구된 취급허가와 비교함으로써, 인가 모듈(630)은 요구된 문서가 사용자에게 이용 가능하게 되어야 하는지 여부를 결정할 수 있다.
어떤 실시예들에서, 인가 모듈(630)은 또한 사용자에게 리턴할 적합한 문서 버전을 결정한다. 사용자의 취급허가 레벨과 이용 가능한 버전들에 대한 요구를 교차 참조(cross-referencing)하는 것은 인가 모듈(630)이 사용자에게 리턴할 적합한 문서 버전을 결정하는 것을 허용할 것이다.
문서 서버(600)는 문서 검색 모듈(640)을 포함한다. 어떤 실시예들에서, 문서 검색 모듈(640)은 이용 가능한 문서 저장 모듈(예를 들면 데이터베이스(690))로부터 적합한 문서 버전을 검색하고, 그것을 네트워크 모듈(610)에 보낸다.
문서 서버(600)는 또한 관리 모듈(650)을 포함한다. 관리 모듈(650)은 서버 관리자가 문서 서버(600)에 대한 설정들을 조정하는 것을 허용한다. 그러한 설정 들은 문서 서버 자체에 대한 액세스에 영향을 미칠 수 있는데, 예를 들면, 식별 모듈(610)에 대한 사용자 액세스의 추가, 편집, 또는 제거이다. 어떤 실시예들에서, 관리 모듈(650)은 또한 서버 관리자가 문서와 연관된 요구된 취급허가를 변경하는 것을 허용한다. 그러한 변경은 특정 파일(예를 들면, 단일 문서의 단일 버전), 또는 특정 문서의 모든 버전들로 제한될 수 있다. 대안적으로, 관리자는 특정한 레벨의 모든 문서 버전들(예를 들면, 모든 마이너 버전들)에 액세스하는 데에 필요한 취급허가 레벨을 변경할 수 있을 것이다. 다른 실시예들에서는, 이 변경들의 조합들 및 치환들이 포함된다.
버전 브로커
어떤 실시예들은 버전 브로커(version broker)로서 이용하는 데에 적합하다. 그러한 실시예들 중 몇몇에서는, 버전 브로커가 사용자와 데이터 저장 장치 사이에서 인터페이스 기능을 한다. 예를 들어, 일 실시예에서, 버전 브로커가 포털 서버 인터페이스에 부가되어 데이터베이스 구조에 링크될 수 있다. 이 실시예에서, 데이터베이스는 버전 브로커 자체와는 분리되어 있다. 또한, 어떤 실시예들에서, 사용자와 상호작용하는 인터페이스는 또한 버전 브로커와는 분리되어 있다.
도 8을 참조하여, 일 실시예에 따른, 버전 브로커를 이용하는 방법의 흐름도(700)가 설명된다. 흐름도(700)에는 특정의 단계들이 개시되지만, 그런 단계들은 예시적인 것이다. 즉, 본 발명의 실시예들은 흐름도(700)에 열거된 단계들의 변형들 또는 다양한 다른(부가적인) 단계들을 수행하는 데에 적합하다. 흐름 도(700) 내의 단계들은 나타내어진 것과는 상이한 순서로 수행될 수 있으며, 흐름도(700) 내의 모든 단계들이 수행될 수 있는 것은 아니라는 것이 이해된다.
이제 단계(710)를 참조하면, 버전 브로커는 문서에 대한 단일 액세스 포인트를 제공한다. 어떤 실시예들에서, 이 액세스 포인트를 통하여 문서에 액세스하면 사용자가 액세스하는 문서의 가장 최근 버전이 검색될 것이다. 어떤 실시예들에서, 이 단일 액세스 포인트는 URL로서 구현되며, 따라서 그러한 실시예들 중 몇몇에서, 문서 또는 파일은 브라우저 소프트웨어를 이용하여 수행될 수 있다. 다른 실시예들에서, 단일 액세스 포인트는 다른 방식들로 구현된다.
이제 단계(720)를 참조하면, 버전 브로커는 문서 요구를 수신한다. 어떤 실시예들에서, 이 문서 요구는 직접 사용자로부터(예를 들면 버전 브로커에 내재된 사용자 인터페이스를 통해서) 수신된다. 다른 실시예들에서, 버전 브로커는 간접적으로 문서 요구를 수신하는데, 예를 들면, 별개의 사용자 인터페이스가 사용자로부터 문서 요구를 수신하고 그 문서 요구를 버전 브로커에 전달한다. 그러한 실시예들 중 일부에서, 사용자 인터페이스는 문서 요구가 버전 브로커와 양립 가능하도록 포맷팅할 수 있다. 다른 실시예들에서는, 그러한 포맷팅이 반드시 필요한 것은 아니다.
어떤 실시예들에서, 문서 요구는 요구하는 사용자의 허가에 대한 정보를 수반한다. 다른 실시예들에서, 요구하는 사용자의 허가가 문서 요구에 수반되지는 않지만, 버전 브로커가 이용 가능하다. 또 다른 실시예에서, 요구된 문서에 액세스하기 위한 사용자의 허가의 인증은 다른 방식들로 처리되거나, 생략된다.
이제 단계(730)를 참조하면, 버전 브로커는 요구된 문서의 어느 버전들이 이용 가능한지 결정한다. 어떤 실시예들에서, 버전 브로커는 이용 가능한 문서들의 로컬 리스팅을, 그 문서들의 상이한 버전들에 액세스하기 위하여 요구된 연관된 허가들과 함께 유지한다. 다른 실시예들에서, 버전 브로커는 데이터 저장 장치에 컨택하고, 요구된 문서의 이용 가능한 버전들의 리스팅을 검색한다. 어떤 실시예들에서는, 이 단계는 생략된다.
이제 단계(740)를 참조하면, 버전 브로커는 문서 요구를 문서의 상이한 버전들과 비교하여, 문서의 적절하고 이용 가능한 버전을 찾는다. 어떤 실시예들에서, 상기 단계는 문서 요구의 서브미터(submitter)가 권한을 부여받은 문서의 이용 가능한 버전이 어느 것인지 결정하는 것을 수반한다. 예를 들어, 익명의 사용자가 문서 요구를 서브미트하면, 그러한 사용자가 이용 가능한 문서의 유일한 버전은 문서의 공개적으로 이용 가능한 메이저 릴리즈(publicly-available major release)가 될 수 있다. 어떤 실시예들에서는, 문서 요구의 서브미터는 문서의 복수의 버전들에 대하여 권한이 부여될 수 있으며, 그러한 실시예들 중 일부에서는, 버전 브로커가 문서 요구를 문서의 가장 제한된 버전과 매칭시킨다. 예를 들어, 문서의 작성자가 문서 요구를 서브미트한 경우, 그는 문서의 모든 버전을 보는 권한이 부여될 수 있으며, 버전 브로커는 문서 요구를, 가장 최근의 드래프트 버전일 수 있는 문서의 가장 제한된 버전과 매칭시킨다.
이제 단계(750)를 참조하면, 버전 브로커는 문서의 적절한 버전에 액세스한다. 어떤 실시예들에서, 버전 브로커는 문서의 적절한 버전을 검색하기 위하여 데 이터베이스 요구를 공식화한다(formulate). 다른 실시예들에서, 버전 브로커는 별개의 사용자 인터페이스에 필요한 정보를 제공하여 문서의 적합한 버전을 검색한다. 또 다른 실시예들에서, 버전 브로커는 데이터 저장 장치로부터 문서를 복구하고, 그것을 요구하는 주체(requesting entity)에게 리턴한다. 실시예들은 데이터 저장 및 검색의 많은 상이한 방법들에서 이용하기에 적합하다는 것이 이해된다.
청구발명이 구조적인 특징들 및/또는 방법적인 동작들 특유의 언어로 설명되었지만, 청구범위에 정의된 청구 발명은 반드시 상기 기술된 특정의 특징들 또는 동작들에만 제한되는 것이 아니라는 점이 이해되어야 한다. 오히려, 상기 설명된 특정의 특징들 및 동작들은 청구범위를 구현하는 예시적인 형태들로서 개시되는 것이다.

Claims (20)

  1. 문서의 오디언스-적정 버전(audience-appropriate version)을 제공하는 방법에 있어서,
    복수의 문서 버전들을 포함하는 상기 문서와 연관된 문서 액세스 포인트에서 문서에 대한 요구를 수신하는 단계 - 상기 요구는 파일 액세스 인가(authorization)와 연관되고, 상기 복수의 문서 버전들은 파일 액세스 허가(permission)와 연관됨 - ;
    상기 복수의 문서 버전들 중 하나를 식별하는 단계 - 상기 복수의 문서 버전들 중 상기 하나의 파일 액세스 허가는 상기 파일 액세스 인가에 대응함 - ; 및
    상기 복수의 문서 버전들 중 상기 하나를 검색(retrieving)하는 단계
    를 포함하는 문서의 오디언스-적정 버전 제공 방법.
  2. 제1항에 있어서, 상기 문서 액세스 포인트는 URL(uniform resource locator)을 포함하는 문서의 오디언스-적정 버전 제공 방법.
  3. 제1항에 있어서,
    상기 문서의 가장 통상적으로 액세스된(most-commonly accessed) 버전을 검색하는 단계; 및
    상기 파일 액세스 인가와 상기 문서의 상기 가장 통상적으로 액세스된 버전 과 연관된 상기 파일 액세스 허가를 비교하는 단계
    를 더 포함하는 문서의 오디언스-적정 버전 제공 방법.
  4. 제1항에 있어서, 상기 파일 액세스 허가는 복수의 액세스 레벨들 중 하나를 포함하는 문서의 오디언스-적정 버전 제공 방법.
  5. 제1항에 있어서,
    사용자를 인증하는 단계를 더 포함하는 문서의 오디언스-적정 버전 제공 방법.
  6. 제5항에 있어서, 상기 요구를 수신하는 단계는 상기 사용자로부터 요구를 수신하는 단계를 포함하는 문서의 오디언스-적정 버전 제공 방법.
  7. 제6항에 있어서, 상기 복수의 문서 버전들 중 상기 하나를 상기 사용자에게 리턴하는 단계를 더 포함하는 문서의 오디언스-적정 버전 제공 방법.
  8. 문서의 최신 버전을 리턴하기 위한 문서 서버에 있어서,
    문서 요구를 수신하고, 검색된 문서 버전을 송신하기 위한 네트워크 모듈;
    상기 네트워크 모듈에 연결되며, 각각이 연관된 허가 요건(permission requirement)을 갖는 복수의 문서 버전을 저장하기 위한 문서 저장 모듈;
    상기 네트워크 모듈에 연결되며, 상기 문서 요구에 연관된 취급허가 레벨(clearance level)을 식별하기 위한 식별 모듈;
    상기 식별 모듈에 연결되며, 상기 복수의 문서 버전들 중 어느 것을 검색할지를 결정하기 위한 인가 모듈
    을 포함하며,
    상기 인가 모듈은 상기 문서 요구와 연관된 상기 취급허가 레벨을 상기 복수의 문서 버전들의 각각에 대한 연관된 허가 요건들과 비교하고, 상기 문서 요구와 대응하는 상기 복수의 문서 버전들 중 하나를 검색하는 문서 서버.
  9. 제8항에 있어서,
    상기 네트워크 모듈에 연결되고, 명령어들을 수신하고 정보를 디스플레이하기 위한 사용자 인터페이스를 더 포함하는 문서 서버.
  10. 제8항에 있어서, 상기 문서 저장 모듈은 데이터베이스를 포함하는 문서 서버.
  11. 제10항에 있어서, 상기 데이터베이스는 SQL 데이터베이스를 포함하는 문서 서버.
  12. 제8항에 있어서,
    상기 문서 저장 모듈에 연결되며, 상기 복수의 문서 버전들에 대한 상기 연관된 허가 요건들을 설정하기 위한 관리 모듈을 더 포함하는 문서 서버.
  13. 제12항에 있어서, 상기 복수의 문서 버전들에 대한 상기 연관된 허가 요건들은 복수의 액세스 레벨들 중 하나를 포함하는 문서 서버.
  14. 제8항에 있어서,상기 복수의 문서 버전들 중 하나보다 많은 문서 버전이 상기 문서 요구에 대응하는 경우, 상기 인가 모듈은 상기 복수의 문서 버전들 중 최신 버전을 검색하는 문서 서버.
  15. 컴퓨터 실행 가능 명령어들을 갖는 컴퓨터 판독 가능 매체에 있어서,
    상기 컴퓨터 실행 가능 명령어들은,
    각각이 연관된 허가들을 갖는 복수의 문서 버전들에 액세스하기 위한 단일 액세스 포인트를 제공하는 단계;
    상기 단일 액세스 포인트에서 인가 레벨을 포함하는 문서 요구를 수신하는 단계;
    상기 인가 레벨을 상기 복수의 버전들의 각각에 대한 상기 연관된 허가와 비교하는 단계; 및
    상기 문서 요구에 대응하는 상기 복수의 버전들 중 하나에 액세스하는 단계
    를 포함하는 단계들을 수행하기 위한 것인 컴퓨터 판독 가능 매체.
  16. 제15항에 있어서,
    상기 단계들은 상기 복수의 버전들의 각각의 이용 가능성(availability)을 결정하는 단계를 더 포함하는 컴퓨터 판독 가능 매체.
  17. 제16항에 있어서,
    상기 단계들은 상기 복수의 버전들의 각각에 대한 상기 연관된 허가들을 결정하는 단계를 더 포함하는 컴퓨터 판독 가능 매체.
  18. 제15항에 있어서, 상기 단일 액세스 포인트는 URL(uniform resource locator)을 포함하는 컴퓨터 판독 가능 매체.
  19. 제18항에 있어서,
    상기 복수의 버전들의 각각에 대한 고유 액세스 포인트를 제공하는 단계를 더 포함하는 컴퓨터 판독 가능 매체.
  20. 제19항에 있어서, 각각의 상기 고유 액세스 포인트는 URL을 포함하는 컴퓨터 판독 가능 매체.
KR1020087027059A 2006-05-05 2007-05-04 문서의 오디언스-적정 버전을 제공하는 방법, 문서 서버, 및 컴퓨터 판독 가능 매체 KR101422859B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/418,746 2006-05-05
US11/418,746 US8166003B2 (en) 2006-05-05 2006-05-05 Permission-based document server
PCT/US2007/010875 WO2007130596A2 (en) 2006-05-05 2007-05-04 Permission-based document server

Publications (2)

Publication Number Publication Date
KR20090006167A true KR20090006167A (ko) 2009-01-14
KR101422859B1 KR101422859B1 (ko) 2014-07-23

Family

ID=38662336

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087027059A KR101422859B1 (ko) 2006-05-05 2007-05-04 문서의 오디언스-적정 버전을 제공하는 방법, 문서 서버, 및 컴퓨터 판독 가능 매체

Country Status (4)

Country Link
US (1) US8166003B2 (ko)
EP (1) EP2024874A4 (ko)
KR (1) KR101422859B1 (ko)
WO (1) WO2007130596A2 (ko)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8166559B2 (en) * 2006-05-17 2012-04-24 Galois, Inc. Document accessing through multiple security domains including multi-tear wiki webpage and/or using cross domain trusted service
US8171557B2 (en) * 2006-05-17 2012-05-01 Galois, Inc. Document accessing through multiple security domains
JP2008059063A (ja) * 2006-08-29 2008-03-13 Fujitsu Ltd 情報管理プログラム
US8930331B2 (en) * 2007-02-21 2015-01-06 Palantir Technologies Providing unique views of data based on changes or rules
US8706696B2 (en) 2007-05-04 2014-04-22 Salesforce.Com, Inc. Method and system for on-demand communities
US9454527B2 (en) * 2007-05-11 2016-09-27 Robert E. Marsh Method and computer-readable media for creating verified business transaction documents
US8276121B2 (en) * 2007-06-19 2012-09-25 Microsoft Corporation Selection of versioned resource among multiple compatible versions
US7818298B2 (en) * 2007-07-06 2010-10-19 Salesforce.Com, Inc. System and method for tracking documents in an on-demand service
US20090013011A1 (en) * 2007-07-06 2009-01-08 Salesforce.Com Inc. System and method for tracking documents in an on-demand service
US7991790B2 (en) * 2007-07-20 2011-08-02 Salesforce.Com, Inc. System and method for storing documents accessed by multiple users in an on-demand service
US9501453B2 (en) 2007-12-23 2016-11-22 Salesforce.Com Inc. Method and system for a flexible-data column user interface
US8585503B2 (en) * 2007-12-26 2013-11-19 Scientific Games Holdings Limited System and method for collecting and using player information
US9323751B2 (en) 2008-03-05 2016-04-26 International Business Machines Corporation Controlling access to documents by parties
US20100057505A1 (en) * 2008-08-27 2010-03-04 International Business Machines Corporation Business process community input
US8538942B2 (en) 2008-09-12 2013-09-17 Salesforce.Com, Inc. Method and system for sharing documents between on-demand services
US9348499B2 (en) 2008-09-15 2016-05-24 Palantir Technologies, Inc. Sharing objects that rely on local resources with outside servers
US8341132B2 (en) * 2008-10-01 2012-12-25 Ca, Inc. System and method for applying deltas in a version control system
US20100281224A1 (en) * 2009-05-01 2010-11-04 International Buisness Machines Corporation Prefetching content from incoming messages
US20110131536A1 (en) * 2009-12-02 2011-06-02 Xerox Corporation Generating and ranking information units including documents associated with document environments
US8868502B2 (en) * 2011-01-14 2014-10-21 Apple Inc. Organizing versioning according to permissions
US20140172915A1 (en) * 2011-02-16 2014-06-19 Adobe Systems Incorporated Systems and methods for selectively providing access to content
US8799240B2 (en) 2011-06-23 2014-08-05 Palantir Technologies, Inc. System and method for investigating large amounts of data
JP5929305B2 (ja) * 2012-02-24 2016-06-01 株式会社リコー 通信システム、サーバ、端末、プログラム
US8688733B2 (en) * 2012-03-16 2014-04-01 International Business Machines Corporation Remote inventory manager
US9202384B2 (en) 2012-10-31 2015-12-01 D2L Corporation System and method for gating notifications
US20150215390A1 (en) * 2014-01-30 2015-07-30 Crytek Gmbh Apparatus and Method for Multi-User Editing of Computer-Generated Content
US10318249B2 (en) * 2015-06-08 2019-06-11 International Business Machines Corporation Extending programmer workbenches for handling programming language differences
CN105068974B (zh) * 2015-06-30 2019-12-24 联想(北京)有限公司 一种信息处理方法及电子设备
US10178168B2 (en) * 2015-08-19 2019-01-08 Facebook, Inc. Read-after-write consistency in data replication
US9542446B1 (en) 2015-12-17 2017-01-10 Palantir Technologies, Inc. Automatic generation of composite datasets based on hierarchical fields
US20210264426A1 (en) 2017-01-25 2021-08-26 State Farm Mutual Automobile Insurance Company Blockchain based asset access
KR101882802B1 (ko) * 2017-04-17 2018-07-27 주식회사 코인플러그 Utxo 기반 프로토콜을 이용한 블록체인 기반의 문서 관리 방법 및 이를 이용한 문서 관리 서버
US10447697B2 (en) 2017-05-25 2019-10-15 Bank Of America Corporation Data leakage and information security using access control
US11005851B2 (en) 2018-08-09 2021-05-11 Camelot Uk Bidco Limited Retrieving digital content over a network
US11627126B2 (en) 2020-08-20 2023-04-11 Bank Of America Corporation Expedited authorization and access management

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1265122A3 (en) 1994-03-15 2006-01-18 Kabushiki Kaisha Toshiba Shared file editing system with file content secrecy, version management and asynchronous editing
US5806078A (en) 1994-06-09 1998-09-08 Softool Corporation Version management system
US5890176A (en) 1996-04-24 1999-03-30 International Business Machines Corp. Object-oriented document version tracking method and apparatus
US5935207A (en) * 1996-06-03 1999-08-10 Webtv Networks, Inc. Method and apparatus for providing remote site administrators with user hits on mirrored web sites
US6223343B1 (en) * 1997-04-04 2001-04-24 State Farm Mutual Automobile Insurance Co. Computer system and method to track and control element changes throughout application development
US6067551A (en) 1997-11-14 2000-05-23 Microsoft Corporation Computer implemented method for simultaneous multi-user editing of a document
US6357010B1 (en) * 1998-02-17 2002-03-12 Secure Computing Corporation System and method for controlling access to documents stored on an internal network
US7296037B1 (en) * 1999-01-21 2007-11-13 Microsoft Corporation Database item versioning
US6584466B1 (en) * 1999-04-07 2003-06-24 Critical Path, Inc. Internet document management system and methods
JP2001282730A (ja) * 2000-03-30 2001-10-12 Sony Corp 情報処理装置、サーバ接続方法、プログラム格納媒体及びネットワーク接続システム
US6751352B1 (en) * 2000-05-25 2004-06-15 Hewlett-Packard Development Company, L.P. Method and apparatus for generating and decoding a visually significant barcode
US20020019827A1 (en) * 2000-06-05 2002-02-14 Shiman Leon G. Method and apparatus for managing documents in a centralized document repository system
JP2002024211A (ja) 2000-06-30 2002-01-25 Hitachi Ltd 文書管理方法およびシステム並びにその処理プログラムを格納した記憶媒体
JP2002183125A (ja) * 2000-12-14 2002-06-28 Hitachi Ltd 文書情報管理方法および装置
US7111232B1 (en) * 2001-03-07 2006-09-19 Thomas Layne Bascom Method and system for making document objects available to users of a network
US7725427B2 (en) * 2001-05-25 2010-05-25 Fred Bishop Recurrent billing maintenance with radio frequency payment devices
US20030074455A1 (en) 2001-10-11 2003-04-17 International Business Machines Corporation Context aware server devices
US7475242B2 (en) 2001-12-18 2009-01-06 Hewlett-Packard Development Company, L.P. Controlling the distribution of information
US7539680B2 (en) 2002-05-10 2009-05-26 Lsi Corporation Revision control for database of evolved design
US20040225730A1 (en) 2003-01-17 2004-11-11 Brown Albert C. Content manager integration
US7171618B2 (en) * 2003-07-30 2007-01-30 Xerox Corporation Multi-versioned documents and method for creation and use thereof
US20050060370A1 (en) 2003-09-17 2005-03-17 Sony Corporation Version based content distribution and synchronization system and method
US20060184452A1 (en) * 2003-10-14 2006-08-17 Maccord Mason Pllc, Electronic document management system
US7930757B2 (en) 2003-10-31 2011-04-19 Adobe Systems Incorporated Offline access in a document control system
US8627489B2 (en) * 2003-10-31 2014-01-07 Adobe Systems Incorporated Distributed document version control
US7522046B2 (en) 2004-03-17 2009-04-21 Sap Aktiengesellschaft Document management
US20060149739A1 (en) * 2004-05-28 2006-07-06 Metadata, Llc Data security in a semantic data model
US7487190B2 (en) 2004-08-27 2009-02-03 Microsoft Corporation Automated identification and marking of new and changed content in a structured document
US20060080316A1 (en) 2004-10-08 2006-04-13 Meridio Ltd Multiple indexing of an electronic document to selectively permit access to the content and metadata thereof
US20070214497A1 (en) * 2006-03-10 2007-09-13 Axalto Inc. System and method for providing a hierarchical role-based access control

Also Published As

Publication number Publication date
WO2007130596A2 (en) 2007-11-15
US8166003B2 (en) 2012-04-24
EP2024874A2 (en) 2009-02-18
WO2007130596A3 (en) 2008-03-06
US20070260648A1 (en) 2007-11-08
KR101422859B1 (ko) 2014-07-23
EP2024874A4 (en) 2013-08-28

Similar Documents

Publication Publication Date Title
KR101422859B1 (ko) 문서의 오디언스-적정 버전을 제공하는 방법, 문서 서버, 및 컴퓨터 판독 가능 매체
US9769278B2 (en) Providing local access to managed content
CN109691057B (zh) 经由私人内容分发网络可交换地取回敏感内容
US8620879B2 (en) Cloud based file storage service
CN101663671B (zh) 对web服务资源的访问的授权
US10484383B2 (en) Pre-authorizing a client application to access a user account on a content management system
US20080282354A1 (en) Access control based on program properties
US10268721B2 (en) Protected handling of database queries
US11381661B2 (en) Systems and methods for creating and managing dynamic content
US20160179789A1 (en) Content localization using fallback translations
US9665732B2 (en) Secure Download from internet marketplace
US12088656B2 (en) Method and system for enforcing governance across multiple content repositories using a content broker
KR101666064B1 (ko) 분산 파일 시스템에서 url정보를 이용한 데이터 관리 장치 및 그 방법
US11425132B2 (en) Cross-domain authentication in a multi-entity database system
US11500837B1 (en) Automating optimizations for items in a hierarchical data store
JP2007272492A (ja) 認証認可サーバ、認証認可システム、認証認可方法及び認証認可プログラム
US11522863B2 (en) Method and system for managing resource access permissions within a computing environment
KR20170125665A (ko) M2M/IoT 플랫폼에서의 시맨틱 정보 관리 방법
CN116860862B (zh) 低代码平台的前端缓存方法及相关设备
EP4109296A1 (en) Dynamic data processing for a semantic data storage architecture
CN113268774A (zh) 文件资源管理方法、装置、设备及存储介质
IE20190191A1 (en) Digital user consent preferences and control
KR101002979B1 (ko) 콘텐츠 트랙킹 서비스 제공방법 및 그 시스템
JP2015026187A (ja) 管理システム、管理装置、及びコンピュータプログラム

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
FPAY Annual fee payment

Payment date: 20170616

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190617

Year of fee payment: 6