KR20080009107A - 개인화 가능 정보 네트워크 - Google Patents

개인화 가능 정보 네트워크 Download PDF

Info

Publication number
KR20080009107A
KR20080009107A KR1020077026027A KR20077026027A KR20080009107A KR 20080009107 A KR20080009107 A KR 20080009107A KR 1020077026027 A KR1020077026027 A KR 1020077026027A KR 20077026027 A KR20077026027 A KR 20077026027A KR 20080009107 A KR20080009107 A KR 20080009107A
Authority
KR
South Korea
Prior art keywords
collection
information
computer readable
search
readable medium
Prior art date
Application number
KR1020077026027A
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
Priority claimed from US11/333,978 external-priority patent/US20060265394A1/en
Priority claimed from US11/333,985 external-priority patent/US20060265395A1/en
Priority claimed from US11/333,980 external-priority patent/US20060265377A1/en
Priority claimed from US11/334,008 external-priority patent/US20060265396A1/en
Application filed by 마이크로소프트 코포레이션 filed Critical 마이크로소프트 코포레이션
Publication of KR20080009107A publication Critical patent/KR20080009107A/ko

Links

Images

Classifications

    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

공유 가능 핀보드 컬렉션을 생성하기 위한 설비가 설명된다. 다양한 실시예에서, 설비는 검색을 위한 용어를 정의하는 쿼리의 지시를 수신하고, 검색 제공자를 이용하여 기준에 매칭되는 정보 항목들에 대한 검색을 수행하고, 검색 제공자로부터 쿼리에 대응하는 결과의 지시를 수신하고, 공유 가능 핀보드 컬렉션을 생성하고, 단일 동작을 통해 공유 가능 핀보드 컬렉션에 결과를 추가하기 위한 지시를 수신하고, 공유 가능 핀보드 컬렉션을 수신자와 공유한다.
개인화 가능 정보 네트워크, 핀보드 컬렉션, 정보 항목, 검색 제공자, 설비

Description

개인화 가능 정보 네트워크{PERSONALIZABLE INFORMATION NETWORKS}
<관련 출원들의 상호 참조>
본 출원은 2005년 5월 19일자로 출원된 미국 특허 가출원 번호 60/683,282 및 2005년 8월 25일자로 출원된 미국 특허 가출원 번호 60/711,580의 이익을 청구하며, 이들 출원은 그 전체가 본 명세서에 참고로 반영된다. 본 출원은 동시에 함께 출원되었고 그 전체가 본 명세서에 참고로 반영되는 아래의 미국 실용 특허 출원들과 관련되어 있다.
특허 출원 번호 제목 대리인 서류 번호
개인화 가능 정보 네트워크 57372-8002US
개인화 가능 정보 네트워크 57372-8003US
개인화 가능 정보 네트워크 57372-8004US
컴퓨팅 장치의 사용자는 그의 컴퓨팅 장치를 이용하여 다양한 방법으로 다른 사용자에게 정보를 통신할 수 있다. 많은 사업 조직에서 일반적으로 발견되는 두 가지 정보 통신 방법은 "메시징" 또는 "호스트된" 모델로 분류될 수 있다.
메시징 모델에서, 사용자는 메시징 기반구조를 이용하여 다른 사용자에게 정보를 전송한다. 메시징 기반구조는 전자 메일("이메일), 인스턴트 메시징 등을 포함한다. 사용자는 일반적으로 메시징 모델이 이용하기 쉬운 것을 발견하지만, 이 모델은 다양한 결함을 가지며, 그 일부는 여기에서 확인된다. 한 가지 결함은 사 용자가 일반적으로 정보의 "스냅샷"을 다른 사용자에게 전송한다는 것이다. 결과적으로, 상이한 사용자들은 상이한 버전의 정보를 수신할 수 있다. 일례로, 한 사용자가 이메일 첨부를 통해 정보를 일 그룹의 사용자들에게 전송하고, 그룹 내의 다른 하나의 사용자가 정보를 수정하여 수정된 정보를 그룹에 전달하는 경우, 그룹의 다른 사용자들은 두 가지 버전의 정보를 수신할 수 있다. 다수의 사용자가 정보를 수정하고 수정된 정보를 그룹에 전송할 때, 사용자들은 어느 수정이 가장 최근의 것인지에 관하여 혼란스러울 수 있다. 이러한 결함은 이메일이 첨부된 문서를 포함할 때 더욱 악화될 수 있는데, 이는 버전 검출 문제로 이어진다. 메시징 모델의 두 번째 결함은 액세스가 일반적으로 제어될 수 없다는 것이다. 구체적으로, 정보의 생성자가 어느 사용자가 정보에 액세스를 갖는지를 제어하는 것은 매우 어렵다. 일례로, 정보의 생성자는 허가된 수신자들의 집합을 선택할 수 있지만, 수신자들이 정보를 이용하여 무엇을 할 수 있는지를 제어할 수 없다. 따라서, 수신자는 정보를 허가되지 않은 사용자에게 전달할 수 있다. 이메일은 또한 여기에 리스트되는 것들, 즉 복잡한 규칙 또는 프로그래밍 없이 이메일 인박스를 구성하기 어려울 수 있는 점, 이메일 메시지의 사본이 일반적으로 하나의 폴더에만 보관될 수 있는 점, 프로젝트에 늦게 관여하게 된 사람과 이메일 스레디드 토론(e-mail threaded discussion)을 공유하는 것이 어려울 수 있는 점, 다수의 포크(fork)를 가진 스레디드 토론에 새로운 사용자를 추가하는 것이 일반적으로 새로운 사용자에게 스레드의 포괄적인 그림을 제공하지 못하는 점, 및 이메일 메시지가 내장 첨부물을 가질 수 있고, 첨부물에 관한 인라인 콘텍스트 코멘트의 제공이 문제가 되는 점 등과 같은 다른 결함들을 갖는다.
호스트된 모델에서, 사용자는 정보를 일반적으로 참조되는 위치에 배치한다. 일례로, 호스트된 모델은 파일 서버, 웹 서버, 전자 게시판, 콘텐츠 관리 솔루션, 작업 공간 등을 포함한다. 호스트된 모델의 다른 예는, 사업 조직들이 때때로 정보를 공개하기 위해 구축하는 "포탈"이다. 포탈은 일반적으로 사업 조직들이 사용자에게 정보를 공개하는 것을 가능하게 하는 애플리케이션 서비스들의 공통 집합 상에 구축된 웹사이트이다. 사용자는 일반적으로 포탈 내에 포함된 정보를 보여줄 수 있는 인터넷 브라우저 또는 다른 애플리케이션을 이용하여 포탈 내에 포함된 정보를 본다. 호스트된 모델의 이점은, 사용자가 가장 늦게 호스트된 정보를 보며 그 정보는 일반적으로 체계화된다는 것이다. 그러나, 호스트된 모델에는 여러 결함이 존재하며, 그 일부는 여기에서 확인된다. 하나의 결함은 호스트된 모델이 일반적으로 정보를 갱신하거나 정보를 체계화하기 위해 소정의 중앙 관리를 필요로 한다는 것이다. 두 번째 결함은 사용자가 어느 다른 사용자가 정보에 대한 액세스를 갖는지를 쉽게 제어할 수 없다는 것인데, 이는 사용자가 아니라 관리자가 일반적으로 포탈 문서 위치에 대한 액세스 특권을 제어하기 때문이다. 포탈들의 특정 결함은 이들이 일반적으로 생성 및 유지가 복잡하고 노동 집약적이라는 점이다. 또한, 포탈들은 여기에 리스트되는 것들, 즉 일반적으로 포탈들은 정보가 다시 로딩되고 갱신되지 않으면 "진부"해진다는 점, 일반적으로 대부분의 정보는 저작 도구(마이크로소프트 워드 등)를 이용하여 생성되고 승인 프로세스(예를 들어, 이메일)를 통해 승인된 후 포탈에 업로드된다는 점, 승인 작업 흐름 없이도, 생성하고 그 후 업로드하는 개별 행위들이 종종 포탈 상의 정보를 진부하게 만든다는 점, 포탈들이 종종 구조를 정의하기 위해 관리 조직 및 분류 결정을 필요로 하고 구조가 생성되면 변경하기가 쉽지 않다는 점, 포탈들을 통한 정보의 발견이 "연합" 또는 다른 검색을 통해서 이루어지는데, 이는 단지 사용자가 하나씩 네비게이트해야 하는 검색 결과들을 제공한다는 점, 및 포탈들은 사용자에게 위치(예를 들어, 인트라넷 또는 인터넷 URL)를 식별할 것을 요구한다는 점과 같은 다른 결함들을 갖는다.
양 모델의 결함을 해결하고 이들을 이점을 이용하려는 하나의 시도는 호스트된 모델을 메시징 모델과 조합하여 사용하는 것인데, 여기서는 정보가 저장되는 위치에 대한 포인터 또는 링크와 같은 호스트된 정보의 지시를 포함하는 이메일이 사용자에게 전송된다. 이러한 접근 방식은 사용자들이 체계화된 정보의 가장 최신 버전을 볼 수 있게 하지만, 많은 결함을 갖기도 하는데, 그 일부는 여기서 확인된다. 하나의 결함은 액세스 제어가 통합되지 않는다는 점이다. 사용자는 어느 다른 사용자들이 링크를 포함하는 이메일을 수신할 것인지를 지정할 수 있지만, 링크의 수신자가 정보를 볼 수 있는지의 여부 또는 수신자가 링크를 다른 사용자에게 전달할 수 있는지의 여부 등의 액세스 제어 속성을 쉽게 지정할 수 없다. 두 번째 결함은 사용자들이 그들의 인박스에서 정보를 쉽게 검색할 수 없다는 것인데, 이는 링크들만이 그들의 이메일에 나타나기 때문이다.
도 1-3은 다양한 실시예에서 설비에 의해 제공되는 결과 표시 페이지들을 나타내는 표시도이다.
도 4는 정보 항목들을 수집하기 위해 다양한 실시예에서 설비에 의해 이용되는 정보 항목 수집 루틴을 나타내는 흐름도이다.
도 5는 핀보드 컬렉션들을 식별하는 URL을 처리하기 위하여 다양한 실시예에서 설비에 의해 이용되는 URL 처리 루틴을 나타내는 흐름도이다.
도 6은 핀보드 컬렉션을 생성하기 위해 다양한 실시예에서 설비에 의해 이용되는 핀보드 컬렉션 생성 루틴을 나타내는 흐름도이다.
도 7은 다양한 실시예에서 쿼리 계획을 실행할 때 설비에 의해 생성되는 결과 집합 테이블을 나타내는 테이블도이다.
도 8은 다양한 실시예에서 설비가 동작할 수 있는 적절한 환경을 나타내는 블록도이다.
도 9는 다양한 실시예에서 도 8의 서버의 양태들을 더 상세히 나타내는 블록도이다.
도 10은 다양한 실시예에서 설비에 의해 제공되는 결과 표시 페이지를 나타내는 표시도이다.
도 11은 다양한 실시예에서 설비에 의해 이용되는 허가들을 지시하기 위한 사용자 인터페이스를 나타내는 표시도이다.
도 12A-12E는 다양한 실시예에서 허가들을 결정하기 위한 핀보드 컬렉션들과 정보 항목들 간의 관계를 나타내는 블록도이다.
도 13A-13C는 액세스 제어 허가들을 수정하기 위하여 다양한 실시예에서 설비에 의해 이용되는 루틴들을 나타내는 흐름도이다.
도 14는 정보 항목들에 대한 변경을 모니터링하기 위해 다양한 실시예에서 설비에 의해 이용되는 변경 모니터링 루틴을 나타내는 흐름도이다.
도 15는 변경들을 복제하기 위해 다양한 실시예에서 설비에 의해 이용되는 복제 루틴을 나타내는 흐름도이다.
도 16은 설비의 다수의 검색 제공자의 이용을 위한 컴포넌트 및 이용의 양태들을 나타내는 블록도이다.
도 17은 설비에 의해 이용되는 다양한 컴포넌트를 나타내는 블록도이다.
개인화 가능 정보 네트워크를 위한 소프트웨어 설비("설비")가 설명된다. 개인화 가능 정보 네트워크("PIN")는 하나 이상의 컬렉션을 포함한다. 컬렉션은 사용자가 정보 항목들이 저장되어 있는 곳을 알 필요 없이 정보 항목들을 찾고 검색할 수 있게 하기 위하여 다양한 네트워킹된 위치로부터 수집되는 참조들(예를 들어, 문서에 대한 링크) 또는 정보 항목들을 포함한다. 정보 항목은 URL을 이용하는 것 등에 의해 고유하게 식별될 수 있는 문서, 웹 페이지, 이메일 메시지, 데이터베이스 내의 행 또는 필드 등과 같은 정보의 소스이다. 정보 항목들은 설비에 의해 액세스될 수 있는 임의의 장소에, 예를 들어 서버에, 이메일 시스템에, 파일 폴더에, 데이터베이스에, 클라이언트 또는 서버 컴퓨팅 장치와 연관된 저장소 등에 디지털 형태로 저장될 수 있다. 정보 항목을 식별하는 URL은 문서 또는 웹 페이지의 일부 또는 위치를 식별할 수 있다. 다양한 실시예에서, 설비는 정보 항목들의 최신 버전을 체계화된 방식으로 사용자에게 제공한다. 사용자("생성자")는 설비를 이용하여 상이한 저장 매체들로부터 정보를 수집하고, 수집된 정보의 배포를 위해 다른 사용자들("수신자")을 식별하고, 수집된 정보를 수신자와 공유할 수 있다. 저장 매체들은 예를 들어 이메일 저장 장치, 파일 시스템, 인터넷, 인스턴트 메시징, 데이터베이스 등과 같은 서버 또는 클라이언트 컴퓨팅 장치를 포함하는 임의의 네트워킹된 장치를 포함할 수 있다. 생성자는 정보에 대한 액세스 및 수신자가 정보에 대해 취할 수 있는 동작들을 제어할 수 있다. 정보는 생성자, 수신자 또는 다른 사용자에 의해 체계화되거나 다시 체계화될 수 있다. 생성자는 정보를 다수의 수신자와 공유하고, 정보를 배포 받아야 하는 수신자들의 리스트를 지정하고, 공유되는 정보 또는 수신자들과 연관된 액세스 제어 속성들(예를 들어, 허가 또는 특권)을 설정할 수 있다. 생성자가 수신자에게 충분한 허가를 제공한 경우, 수신자는 수집된 정보를 보고, 추가하고, 수정하고, 또는 그에 관한 다른 동작을 취할 수 있다. 따라서, 설비는 개인화 가능 정보 네트워크를 생성한다.
설비는 정보 항목들의 잠재적 집합을 식별하고 사용자가 공유하기를 원하는 정보 항목들의 컬렉션을 구축하기 위한 검색 기준을 사용자가 지정하는 것을 가능하게 한다. 컬렉션은 검색에 의해 식별되지 않은 추가 정보 항목들을 포함할 수 있다. 설비는 사용자로부터 검색 기준의 지시를 수신한 때 검색 제공자들을 이용하여 다수의 데이터 소스로부터 검색 기준에 매칭되는 정보 항목들을 찾는다. 설비는 다수의 "검색 제공자"를 통해 "메타 검색"을 수행한다. 메타 검색은 다양한 정보 저장소 및 소스를 통해 수행된 후 발견된 정보들이 함께 공통 포맷으로 제공될 수 있는 검색이다. 검색 제공자는 하나 이상의 정보 저장소를 이용하여 검색을 수행하는 서비스이다. 일례로, 설비는 구글 검색, 마이크로소프트 검색, 또는 임의의 검색 기술 제공자 또는 이들의 조합을 이용할 수 있다. 다른 예로서, 사용자는 구글 인터넷 검색 및 마이크로소프트 데스크탑 검색을 이용하도록 설비를 구성할 수 있다. 또 다른 예로서, 설비는 인터넷(또는 다른) 뉴스 피드, 웹 로그(블로그), 데이터베이스, 컴퓨터 파일 시스템, 문서 관리 시스템 등과 같은 다양한 데이터 소스에서 정보를 찾는 검색 제공자를 이용할 수 있다. 정보 항목들은 인터넷, 인트라넷, 또는 검색 제공자가 액세스할 수 있는 이메일 서버, 클라이언트 컴퓨팅 장치 등과 같은 임의의 위치에 접속된 컴퓨팅 또는 저장 장치에서 찾을 수 있다. 설비는 또한 다양한 데이터 유형을 검색하는 검색 제공자들을 이용할 수 있다. 검색 제공자들은 "통합" 뷰에 결과를 제공할 수 있으며, 따라서 설비 또는 다른 애플리케이션들은 다양한 결과 포맷에 관하여 기능할 필요가 없게 된다. 검색 제공자들은 컴퓨팅 장치와 관련된 임의의 장소에서, 예를 들어 실행가능 파일로서 저장 장치에서, 첨부물로서 이메일 메시지에서 또는 인터넷 등에서 찾을 수 있다. 설비는 검색 제공자들을 자동으로, 또는 사용자 지시에 따라 찾아서 이용할 수 있다. 몇몇 실시예에서, 검색 제공자는 URL에 의해 식별된다. 일례로, 설비는 URL을 가진 쿼리에 기초하여 정보를 검색하기 위해 URL에 의해 식별되는 검색 제공자를 이용한다.
설비가 관련 정보 항목들을 찾으면, 설비는 처리 엔진을 이용하여 찾은 정보 항목들을 처리한다. 처리 엔진은 찾은 정보 항목들의 "초록"을 생성한다. 초록은 정보 항목의 일부이다. 예로서, 초록은 정보 항목의 제목, 설명, 및 이메일 송신자, 수신 시간, 콘택의 전화 번호 등과 같은 스키마 고유 특성들을 포함할 수 있다. 초록은 정보 항목들의 다양한 유형에 적절한 스키마를 이용하여 저장된다. 일례로, 처리 엔진은 마이크로소프트 워드 문서에 포함된 정보에 대한 문서 스키마에서 초록을 생성할 수 있으나, 데이터베이스에 포함된 정보에 대한 데이터베이스 스키마에서 초록을 생성할 수도 있다. 설비는 다양한 유형의 문서에 대해 유사한 스키마를 이용할 수 있다. 초록은 리치 사이트 요약 또는 RSS(Really Simple Syndication) 또는 ATOM 또는 아웃라인 프로세서 마크업 언어와 같이 일반적으로 인식되는 RSS에 대한 대안들과 같은 표준 문서 정의 포맷을 참조하여 정의될 수 있다. 다양한 실시예에서, 스키마는 XML로 지정된다. 일례로, 설비는 RSS를 이용하여 문서 초록을 정의하고, 상이한 XML 스키마를 이용하여 데이터베이스 초록을 정의할 수 있다. 초록은 관련 있는 것으로 식별되는 정보 항목들로부터 속성을 제공한다. 일례로, 이메일 정보 항목에 대한 초록 스키마는 송신자의 이름, 수신자의 이름 및 주제 속성들이 관련되어 있음을 지시할 수 있다. 다른 예로서, 콘택 초록 스키마는 이름, 전화 번호 및 이메일 속성들이 관련되어 있음을 지시할 수 있다. 설비가 초록을 이용하여 정보 항목들로부터 정보를 표시할 때, 설비는 관련 정보를 표시할 수 있다. 따라서, 초록은 설비가 고유 정보 항목 유형들에 기초하여 풍부한 사용자 인터페이스들을 생성하는 것을 가능하게 한다.
설비가 결과 표시 페이지에 정보 항목에 관한 정보를 표시할 때마다, 설비는 정보 항목으로부터 정보를 이용할 수 있다. 사용자가 예를 들어 링크를 선택함으로써 정보 항목을 로딩할 때, 설비는 원래 위치 또는 캐시 저장 장치로부터 정보 항목을 로딩한다. 설비는 정보 항목들을 조합하여 핀보드 컬렉션을 생성한다. 핀보드 컬렉션은 정보 항목들을 포함하고, URL을 통해 액세스될 수 있다. 핀보드 컬렉션이 URL을 통해 액세스될 때, 설비는 뷰 설명을 이용하여 핀보드 컬렉션들을 결과 표시 페이지로 변환한다. 뷰 설명은 핀보드 컬렉션들을 사람에 의해 판독될 수 있는 결과 표시 페이지로 어떻게 변환할지에 대한 명령을 제공한다. 예로서, 뷰 설명은 XSL(extensible style sheet language), ASP(active script page) 등을 이용하여 지정될 수 있다. 결과 표시 페이지는 각 정보 항목에 대한 식별 데이터를 그 정보 항목에 관련된 소정의 데이터와 함께 제공한다. 일례로, 결과 표시 페이지는 링크, 문서의 제목, 문서에 포함된 텍스트의 처음 몇 줄, 문서 생성일 등을 제공할 수 있다. 결과 표시 페이지는 또한 생성자 또는 수신자에 의해 추가된 문서에 관한 주석을 제공할 수 있다. 주석은 사용자가 정보 항목과 연관시키는 정보이다. 주석의 예는 텍스트, 포맷팅, 및 텍스트 코멘트, 하이라이팅 및 음성(또는 비디오) 코멘트와 같은 멀티미디어를 포함한다. 주석은 짧거나(예를 들어, 단어 또는 구) 길(예를 들어, 문장, 단락 또는 전체 문서 또는 다른 정보 항목의 식별자) 수 있다. 설비가 결과 표시 페이지에 포함된 정보를 공유하거나 이용할 때, 설비는 RSS 또는 다른 포맷으로 저장될 수 있는 기반 핀보드 컬렉션들을 이용하거나 조작할 수 있다.
결과 표시 페이지의 생성시, 생성자는 쿼리에 응답하여 검색 제공자들에 의해 지시되는 정보 항목들의 부집합을 식별할 수 있다. 일례로, 설비가 여러 정보 항목을 식별하는 경우, 생성자는 진정으로 관련되어 있는 정보 항목들의 부집합을 식별하고, 관련되지 않을 수 있는 나머지 정보 항목을 제거(또는 식별)할 수 있다. 생성자는 또한 결과 표시 페이지를 재구성하여, 설비가 표시된 정보를 재배열하는 것과 같이 기반 핀보드 컬렉션을 재구성하게 하여, 중요 정보 항목이 덜 중요한 정보 항목 앞에 나타나게 할 수 있다. 생성자는 다수의 검색을 수행하고, 정보 항목들을 핀보드 컬렉션에 계속 추가할 수 있다.
이어서, 생성자는 그가 생성된 결과 표시 페이지를 공유하기를 원하는 수신자들을 식별할 수 있다. 생성자는 이메일에 대한 수신자를 선택하는 것과 유사한 방식으로 수신자를 식별할 수 있다. 일례로, 생성자는 주소 책자로부터 수신자 또는 수신자 그룹을 식별하고, 수신자 이름 또는 식별자의 일부를 타이핑하고, 예를 들어 수신자의 식별 등을 완료함으로써 수신자의 이름 또는 식별자를 "분석"하도록 설비에 요청할 수 있다.
생성자는 또한 핀보드 컬렉션의 다양한 속성을 추가 또는 수정할 수 있다. 일례로, 생성자는 개별 정보 항목들 또는 핀보드 컬렉션 전체에 관한 메시지와 같은 주석을 추가할 수 있다. 다른 예로서, 생성자는 예를 들어 정보 항목을 하이라이팅함으로써, 또는 예를 들어 "섬 업(thumbs up)" 메타포어를 이용하여 소정의 스케일로 정보 항목을 등급화함으로써 특정 관심사의 정보 항목들을 지시할 수 있다. 다른 예들로서, 생성자는 공유되고 있는 정보 항목의 특정 버전을 "로킹"하여 미래의 변경들이 공유되지 않게 할 수 있고, 생성자는 항목에 관한 다양한 액세스 방법을 지시할 수 있는데, 예를 들어 다른 사용자들과 더 공유할 수 없고, 더 자유롭게 공유할 수 있고, 원시 정보 항목을 수정하는 것 등을 할 수 있다.
생성자가 예를 들어 결과 표시 페이지의 사용자 인터페이스 상의 "공유" 버튼을 선택함으로써 핀보드 컬렉션을 수신자들과 공유하면, 수신자들은 수신자의 액세스 특권에 따라 핀보드 컬렉션에서 식별되는 정보 항목들을 볼 수 있다. 액세스 특권은 보기, 편집, 삭제, 공유 등과 같이 수신자가 정보 항목 또는 핀보드 컬렉션과 관련하여 어떠한 동작을 수행할 수 있는지를 지정한다. 설비는 후술하는 바와 같이 수신자에게 적절한 액세스 특권을 제공한다.
수신자들은 수신된 핀보드 컬렉션에 응답하고, 이들의 응답을 생성자 또는 다른 수신자들과 공유할 수 있다. 수신자들은 그들의 응답을 공유하기 전에 수신된 핀보드 컬렉션의 다양한 속성을 추가 또는 수정할 수 있다. 일례로, 수신자들은 주석을 추가할 수 있다. 생성자가 충분한 액세스 특권을 제공할 때, 수신자들은 수신된 핀보드 컬렉션을 고유할 수 있다. 수신자들은 또한 검색을 수행하고 발견된 정보 항목을 핀보드 컬렉션에 추가할 수 있다. 생성자는 수신자에 의해 이루어지는 추가, 삭제 또는 수정을 자동으로 또는 수동으로 수락 또는 거절할 수 있다.
생성자 또는 수신자가 핀보드 컬렉션을 수정할 때, 사용자들은 최신 수정 버전을 볼 수 있다. 이것은 뷰어(예를 들어, 수신자)가 보기 위해 결과 표시 페이지를 로딩하는 시간에 결과 표시 페이지가 생성되기 때문에 가능하다. 핀보드 컬렉션들에 포함되는 참조들 및 다른 정보는 생성자들 및 수신자들(수신자들이 충분한 액세스 특권을 가질 때)에 의해 수정될 수 있다. 사용자가 결과 표시 페이지를 로딩할 때, 설비는 결과 표시 페이지의 가장 최신 버전을 제공한다. 따라서, 사용자들은 이들이 문서의 가장 최신 버전을 공유하거나 보고 있는지를 알 필요가 없다.
사용자는 핀보드 컬렉션 또는 하나 이상의 정보 항목을 로킹할 수 있다. 항목(예를 들어, 핀보드 컬렉션 또는 정보 항목)이 로킹될 때, 로킹된 항목을 보는 사용자들은 로킹 후에 이루어지는 어떠한 갱신도 보지 못한다. 이를 달성하기 위하여, 설비는 저장된 정보 항목 버전을 이용한다. 사용자가 항목을 로킹할 때, 사용자는 항목을 계속 갱신할 수 있다. 이어서, 사용자가 항목을 언로킹할 때, 사용자의 갱신은 모든 다른 사용자에게 보일 수 있다. 설비는 로킹 및 갱신의 감사 자취(audit trail)를 생성할 수 있다.
생성자 및 수신자는 검색 용어들을 반복적으로 추가함으로써 검색을 정교화할 수 있다. 결과적인 핀보드 컬렉션은 다수의 데이터 소스 또는 데이터 유형으로부터의 정보를 나타내는 하나의 장소에 정보 항목들을 포함한다.
본 명세서에서 설비는 핀보드 컬렉션 및 정보 항목들을 참조하여 설명되지만, 설비는 여기에서 그 일부가 설명되는 다양한 다른 환경 및 애플리케이션에 쉽게 적응할 수 있는 플랫폼을 제공한다.
이제, 설비의 특징들이 보다 상세히 설명된다.
개인화 가능 정보 네트워크의 생성 및 이용
다양한 실시예에서, 설비에 의해 제공되는 사용자 인터페이스는 텍스트 박스 및 "검색" 버튼을 포함한다. 사용자는 예를 들어 스트링을 타이핑함으로써 텍스트 박스에 쿼리를 제공하고, 설비가 쿼리에 매칭되는 정보 항목들(예를 들어, 문서들)에 대한 검색을 시작하게 하는 검색 버튼을 선택할 수 있다.
다양한 실시예에서, 설비는 동기적으로 또는 비동기적으로 다수의 검색 제공자를 동시에 이용하여 정보 항목들을 찾을 수 있다. 일례로, 설비는 구글 인터넷 검색, 마이크로소프트 데스크탑 검색, 포탈 검색 설비, 윈도우 데스크탑 검색 설비, 네트워크 검색 설비, 데이터베이스 검색 설비, 연합 검색 설비, 임의의 인터넷 검색 설비 등을 이용하여 검색할 수 있다. 다양한 실시예에서, 설비는 사용자들이 삼자 검색 제공자를 추가하는 것을 가능하게 하는 확장 메카니즘을 구비한다. 검색 제공자의 추가를 가능하게 함으로써, 설비는 임의의 형태로 임의의 위치에 저장된 정보 항목들을 검색할 수 있다. 호출된 검색 제공자들 각각은 검색의 결과를 설비에 반환한다.
생성자는 예를 들어 검색 제공자들의 일부 또는 모두를 활성화함으로써 여러 검색 제공자 중 어느 것을 사용할 것인지를 지정할 수 있다. 설비가 검색할 때, 설비는 활성화되지 않은 검색 제공자를 호출하지 않을 수 있다. 생성자는 핀보드 컬렉션에 대해 검색 제공자를 활성화하고, 그 검색 제공자를 다른 핀보드 컬렉션에 대해서는 활성화하지 않을 수 있다. 이후, 설비는 핀보드 컬렉션들 각각에 대해 활성 검색 제공자들만을 이용할 수 있다. 생성자는 또한 검색 제공자들의 디폴트 리스트를 (예를 들어, 검색 제공자들을 "핀잉"함으로써) 핀보드 컬렉션에 연관시킬 수 있다. 생성자는 또한 핀보드 컬렉션으로부터 다른 검색 제공자들을 발견하고 이들을 그 핀보드 컬렉션 상의 임의의 새로운 쿼리에 대해 인에이블시킬 수 있다. 옵션으로, 사용되는 검색 제공자들의 집합은 이들을 핀보드 컬렉션에 핀잉함으로써 저장될 수 있다. 검색 제공자들은 또한 특정 쿼리에 대해 디스에이블될 수 있다.
설비는 초기에 검색의 결과들을 디폴트 레이아웃에 따라 결과 표시 페이지에 체계화한다. 레이아웃은 폰트, 칼라, 위치, 배경 등과 같은 프리젠테이션 속성들을 지시한다. 사용자는 디폴트 레이아웃을 수정할 수 있다. 다양한 실시예에서, 디폴트 레아이웃은 XML로 지정된다.
이제, 도면들을 참조하면, 도 1은 다양한 실시예에서 설비에 의해 제공되는 결과 표시 페이지를 나타내는 표시도이다. 설비는 생성자가 핀보드 컬렉션을 생성하는 데 이용할 수 있는 결과 표시 페이지(100)를 제공한다. 결과 표시 페이지는 로고와 같은 이미지를 위한 영역(102), 및 결과적인 핀보드 컬렉션의 제목을 지시하기 위한 영역(104)을 포함한다. 결과 표시 페이지는 생성자가 검색 쿼리를 입력할 수 있는 텍스트 영역(106)을 포함한다. 이어서, 생성자는 검색 버튼(108)을 선택하여 검색을 시작할 수 있다. 대안으로, 생성자는 소거 버튼(110)을 선택하여 검색 제공자들에 의해 결과 표시 페이지에 추가된 모든 정보를 소거할 수 있다.
도시된 표시도는 생성자가 텍스트 영역(106)에 쿼리로서 "세일즈 피치(Sales pitch)"를 입력한 것을 나타낸다. 설비는 검색 버튼(108)을 클릭하여 쿼리 "세일즈 피치"에 매칭되는 정보 항목들을 찾고, 검색 페이지의 다양한 결과 영역을 검색의 결과들로 채운다. 도시된 결과 표시 페이지는 핀보드 컬렉션 결과 영역(112), 관련 핀보드 결과 영역(113), 이메일 결과 영역(114), 약속 결과 영역(116) 및 문서 결과 영역(118)을 보여준다.
핀보드 컬렉션 결과 영역(112) 쿼리에 매칭되는 핀보드 컬렉션들을 리스트한다. 도면에서, 어떠한 핀보드 컬렉션도 쿼리에 매칭되지 않으며, 따라서 어떠한 핀보드 컬렉션도 리스트되지 않는다. 핀보드 컬렉션들은 결과 표시 페이지의 쿼리가 다른 핀보드 컬렉션들에 핀잉된 정보 항목들을 제공할 때 쿼리에 매칭될 수 있다. 또한, 설비는 결과 영역들 중 하나에 지시된 정보 항목이 핀잉될 수 있는 다른 핀보드 컬렉션들을 리스트할 수 있다. 이것은 사용자가 정보 항목에 대한 콘텐츠 및 관련성을 빠르게 결정하는 것을 가능하게 한다.
관련 핀보드 결과 영역(113)은 표시된 핀보드 컬렉션과 관련된 핀보드 컬렉션들을 리스트한다. 2개의 핀보드가 관련될 수 있는데, 이는 예를 들어 하나가 다른 하나에 응답하여 생성되었으며 이들 양자가 동일 정보 항목들을 참조하고, 이들이 사용자에 의해 관련 있는 것으로 지시되고, 또는 핀보드 컬렉션들 중 하나가 다른 하나에 핀잉되기 때문이다.
이메일 결과 영역(114)은 쿼리에 매칭되는 이메일 메시지들을 리스트한다. 이메일 메시지는 쿼리에 매칭되는 텍스트 또는 다른 속성을 포함할 때 쿼리에 매칭될 수 있다. 이메일 결과 영역은 송신자, 주제, 및 전송 일시와 같이 쿼리에 매칭되는 이메일 메시지에 관한 다양한 속성을 표시할 수 있다.
약속 결과 영역(116)은 쿼리에 매칭되는 약속들을 리스트한다. 문서 결과 영역(118)은 쿼리에 매칭되는 문서들을 리스트한다. 다양한 실시예에서, 설비는 도시된 결과 영역 대신에 또는 그에 추가하여 다른 결과 영역들을 표시할 수 있다.
결과 영역들에 리스트된 각각의 정보 항목은 체크박스(120)와 같은 선택 지시자가 수반된다. 생성자는 결과 영역들에 리스트된 정보 항목들의 부집합을 선택하여, 예를 들어 생성자가 핀보드 컬렉션에 유지하기를 원하는 각 정보 항목과 연관된 체크박스를 선택함으로써 핀보드 컬렉션에 추가할 수 있다. 이러한 동작은 "핀잉"으로 지칭될 수 있다. 따라서, 설비는 사용자가 체크박스를 선택하는 것과 같은 단일 동작을 이용하여 문서에 검색 결과를 추가하는 것을 가능하게 한다. 체크박스는 사용자가 저작 모드에 있지 않을 때에는 나타나지 않을 수도 있다.
결과 영역들에 리스트된 각 정보 항목은 또한 텍스트 영역(122)과 같은 텍스트 영역이 수반될 수 있다. 생성자는 텍스트 영역에 정보 항목에 관한 주석을 추가할 수 있다. 일례로, 생성자는 도면에서 마감된 거래(closed deal)에 관한 이메일과 연관된 텍스트 영역에 "양호한 예(Good example)"라는 주석을 추가하였다.
다양한 실시예에서, 설비는 초록들(예를 들어, 초록들의 스키마에 포함된 데이터)을 이용하여 결과 영역을 채운다. 일례로, 설비는 이메일 초록들을 이용하여 이메일 결과 영역을 채울 수 있다.
애플리케이션의 결과 표시 페이지 또는 다른 사용자 인터페이스 요소들은 추가적으로 생성자에게 쿼리를 이용하여 발견되지 않은 추가 정보 항목들을 추가할 수 있는 옵션을 제공할 수 있다. 일례로, 검색 페이지는 추가 버튼(124)을 제공할 수 있다. 추가 버튼을 선택함으로써, 생성자는 이메일 메시지에 첨부물을 추가하는 것과 유사한 방식으로 추가 정보 항목을 지정할 수 있다. 설비는 또한 애플리케이션에 의해 식별되는 정보 항목을 핀보드 컬렉션에 핀잉하기 위한 애플리케이션 프로그램 인터페이스(API)를 제공한다. 이 API를 이용하여, 다른 애플리케이션들(예를 들어, 마이크로소프트 워드)은 이들의 고유 문서를 핀보드 컬렉션에 직접 핀잉하기 위한 사용자 인터페이스를 구현할 수 있다. 일례로, 마이크로소프트 워드 내의 툴바는 "핀(Pin)" 버튼, 및 문서가 핀잉될 수 있고 사용자가 허가를 수정한 핀보드 컬렉션들을 리스트하는 드롭다운 리스트를 가질 수 있다. 이 버튼의 선택은 활성 마이크로소프트 워드 문서를 선택된 핀보드에 핀잉할 것이다. 다른 예로서, 사용자는 정보 항목을 선택하고, 그 정보 항목을 다른 핀보드 컬렉션에 핀잉할 수 있다.
다양한 실시예에서, 설비는 핀보드 컬렉션들에 대한 저작 모드를 제공한다. 결과 표시 페이지가 편집 모드에 있을 때, 사용자들은 주석을 추가하고, 검색 항목들을 핀잉하는 것 등을 행할 수 있다. 생성자가 핀보드 컬렉션을 공유할 때와 같이, 설비가 편집 모드에서 나올 때, 사용자는 더 이상 정보 항목들에 주석을 달거나 핀잉할 수 없게 된다. 다양한 실시예에서, 저작 모드에서 나온 후에 소정의 편집 기능들이 이용 가능할 수 있다.
다양한 실시예에서, 설비는 수신자가 다른 검색 제공자를 사용하는 것 외에 핀보드 컬렉션과 연관된 정보 항목들 내에서 검색하는 것을 가능하게 한다. 일례로, 수신자가 쿼리 "세일즈 피치"를 이용하여 핀보드 컬렉션을 수신하는 것으로 가정한다. 이어서, 수신자는 그 핀보드 컬렉션 내의 정보 항목들 내에서 "제인(Jane)"을 검색하여 "제인"과 연관된 정보 항목들을 찾을 수 있다. 이러한 추가 검색의 결과로서 발견된 정보 항목들은 함께 그룹화될 수 있는 반면, 핀보드 컬렉션 내에 나타나는 다른 정보 항목들은 개별적으로 그룹화될 수 있다.
도 2는 다양한 실시예에서 설비에 의해 제공되는 결과 표시 페이지를 나타내는 표시도이다. 이 도시된 결과 표시 페이지(200)는 어드레스 탐색 버튼(202), 어드레스 텍스트 영역(204), 공유 버튼(206) 및 저장 버튼(208)을 더 갖는다는 점 외에는 도 1에 도시된 결과 표시 페이지(100)와 유사하다.
어드레스 탐색 버튼(202)은 생성된 핀보드 컬렉션에 대한 수신자들의 리스트를 선택하기 위해 생성자에 의해 선택될 수 있다. 일례로, 설비는 마이크로소프트 액티브 디렉토리, 이메일 서버에 대응하는 글로벌 어드레스 리스트, 개인 콘택 리스트, 또는 임의의 수신자 디렉토리를 이용할 수 있다. 다양한 실시예에서, 설비는 수신자들에 관한 액세스 특권을 지시하는 능력을 포함하는 수신자들을 선택하기 위한 사용자 인터페이스를 제공할 수 있다. 액세스 특권은 아래에 더 상세히 설명된다.
설비는 어드레스 텍스트 영역(204)에 선택된 수신자들의 리스트를 표시할 수 있다. 설비는 또한 어드레스 텍스트 영역을 이용하여 사용자로부터 수신자들의 리스트를 수신할 수 있다. 도면에서, Brian Bean이 수신자로 선택된다.
생성자는 공유 버튼(206)을 선택하여 생성된 핀보드 컬렉션을 지시된 수신자들과 공유할 수 있다. 생성자는 저장 버튼(208)을 선택하여 핀보드 컬렉션을 수신자들과 공유하는 것이 아니라 이것을 저장할 수 있다.
다양한 실시예에서, 설비는 사용자가 예를 들어 체크박스(120)를 선택함으로써 소정의 정보 항목들을 선택한 때 도 2와 관련하여 전술한 사용자 인터페이스 요소들을 추가할 수 있다. 다른 실시예들에서, 설비는 검색 페이지(100)를 표시할 때 이들 사용자 인터페이스 요소를 제공할 수 있다. 또 다른 실시예들에서, 설비는 예를 들어 메뉴에 나타나는 동작에 응답하여 생성자에 의해 요청될 때 이들 사용자 인터페이스 요소를 제공할 수 있다.
도 3은 다양한 실시예에서 설비에 의해 제공되는 결과 표시 페이지를 나타내는 표시도이다. 이 표시도는 그의 생성자에 의해 공유되고 생성자에 의해 선택된 수신자(예를 들어, Brian Bean)에 의해 수신된 결과 표시 페이지(300)를 나타낸다. 도시된 결과 표시 페이지는 결과 표시 페이지(200)에 나타나는 결과들의 일부가 없고 핀보드 컬렉션 결과(302), 핀 지시자(304) 및 보조 핀보드 컬렉션 지시자(306)를 더 지시한다는 점 외에는 도 2에 도시된 결과 표시 페이지(200)와 유사하다. 도시된 결과 표시 페이지는 체크박스와 같은 저작 특징들의 부재에 의해 지시되는 바와 같이 저작 모드에 있지 않다. 다양한 실시예에서, 다른 특징들이 추가 또는 삭제될 수 있다. 일례로, 다양한 실시예에서, "To..." 버튼, "Share..." 버튼 및 "Save..." 버튼이 삭제될 수 있다.
도시된 결과 표시 페이지는 체크박스를 선택함으로써 생성자에 의해 핀잉되지 않은 정보 항목들을 표시하지 않는다. 일례로, Jim Jones로부터의 이메일은 생성자에 의해 선택되지 않았으며, 따라서 결과 표시 페이지에 나타나지 않는다. 마찬가지로, "존과의 점심(Lunch with John)" 약속 및 "오브젝티브(Objectives)" 문서는 결과 표시 페이지에 나타나지 않는다.
도시된 핀보드 컬렉션 결과 영역(112)은 핀보드 컬렉션 결과(302)를 포함한다. 다양한 실시예에서, 설비가 이전에 저장 또는 수신된 핀보드 컬렉션에 리스트된 정보 항목들이 표시된 결과 표시 페이지와 연관된 핀보드 컬렉션의 쿼리에 대해서도 적절할 것이라고 결정할 때 추가 핀보드 컬렉션 결과들이 리스트된다. 추가적으로, 도 1과 관련하여 전술한 바와 같이, 결과 표시 페이지는 핀보드 컬렉션들을 이들이 쿼리와 관련된 경우에 리스트할 수 있으며, 이들 핀보드 컬렉션은 또한 생성자에 의해 선택되는 경우에 핀보드 컬렉션 결과에 나타날 것이다. 따라서, 설비는 핀보드 컬렉션들이 조합되거나 포개지는 것을 가능하게 한다.
핀 지시자(304)는 핀보드 컬렉션을 생성할 때 생성자에 의해 선택된(예를 들어, "핀잉된") 정보 항목들의 수신자들에게 지시를 제공한다. 핀보드 컬렉션은 동적으로 생성되므로, 결과 표시 페이지에 추가 정보 항목들이 나타날 수 있지만, 이들은 연관된 핀 지시자를 갖지 않을 것이다. 따라서, 수신자 또는 생성자는 핀잉된 정보 항목들과 설비에 의해 동적으로 추가된 다른 정보 항목들을 즉시 구별할 수 있으며, 이에 따라 사용자들이 어느 정보 항목들이 더 관련이 있을 수 있는지 또는 어느 정보 항목들이 "새로운"지를 빠르게 결정하는 것을 가능하게 한다. 다양한 실시예에서, 설비는 핀잉된 정보 항목들을 함께 그룹화하고, 다른 정보 항목들을 다른 그룹에 그룹화한다. 따라서, 단일 핀보드 컬렉션을 이용하여, 필터링된 정보 항목들의 집합을 핀보드 컬렉션의 쿼리에 매칭되는 추가 정보 항목들과 조합할 수 있다. 또한, 다수의 검색 제공자(원시 핀보드 컬렉션 자체를 포함)는 항목 검색에 관한 정보를 제공할 수 있다. 이 정보는 임의의 사본 정보 없이 핀보드 컬렉션에서의 표시를 위해 단일 정보 항목으로 압축될 수 있다. 예를 들어, 하나의 검색 제공자는 항목에 대한 제목 및 설명을 제공할 수 있는 반면, 다른 검색 제공자는 특정 사용자의 주석을 제공할 수 있다. 표시된 정보 항목은 제목, 설명 및 주석을 지시할 것이다. 따라서, 설비는 정보 항목이 다수의 소스로부터의 정보를 포함하는 특징을 제공한다. 설비는 정보 항목들에 대해 쿼리하고, 고유 속성들을 유지하고 복제된 속성들을 제거함으로써 "오버레이"를 생성할 수 있다.
보조 핀보드 컬렉션 지시자(306)는 핀보드 컬렉션 결과 영역에 리스트된 핀보드 컬렉션과 연관되는 정보 항목들을 지시한다. 사용자가 핀보드 컬렉션 결과를 선택할 때, 설비는 대응하는 핀보드 컬렉션 지시자들을 토글링한다. 몇몇 실시예에서, 사용자가 핀보드 컬렉션 결과를 선택할 때, 설비는 선택된 핀보드 컬렉션 결과와 연관된 정보 항목들이 결과 영역에 표시되게 한다. 일례로, "Deals" 핀보드 컬렉션 결과가 도시된 실시예에 나타나는 핀보드 컬렉션 결과 영역에 나타난다. Deals 핀보드 컬렉션 결과의 좌측의 심볼(이 실시예에서 원으로 둘러싸인 마이너스 심볼)은 핀보드 컬렉션 결과와 연관된 정보 항목들이 보조 핀보드 컬렉션 지시자에 의해 지시됨을 지시한다. 일례로, Jane Adams로부터의 이메일은 보조 핀보드 컬렉션 지시자와 연관된다. 사용자가 이 핀보드 컬렉션 결과를 선택할 때, 핀보드 컬렉션 결과의 좌측에 상이한 심볼이 나타날 수 있다. 일례로, 도시된 실시예에서, 플러스 심볼이 나타날 수 있다. 핀보드 컬렉션 결과가 토글링될 때, 설비는 보조 핀보드 컬렉션 지시자를 제거할 수 있다. 일례로, 설비는 Jane Adams로부터의 이메일과 연관된 보조 핀보드 컬렉션 지시자를 제거할 수 있다. 다양한 실시예에서, 텍스트 영역(106) 및 검색 버튼(108)은 문서의 캔버스 내에(예를 들어, 검색 결과와 동일한 윈도우 창 내에) 나타난다.
다양한 실시예에서, 핀보드 컬렉션은 다른 정보 항목들을 추가로 표시할 수 있다. 일례로, 핀보드 컬렉션은 생성자 또는 다른 수신자에 의해 추가된 항목들을 표시할 수 있다. 사용자는 예를 들어 영역을 "축소"시킴으로써 표시로부터 이러한 항목들을 일시적으로 제거할 수 있다. 사용자는 예를 들어 최소화 또는 숨김 버튼(도시되지 않음)을 선택함으로써 영역을 축소시킬 수 있다.
따라서, 검색 결과들은 "콘텍스트에(in context)"에 표시되는데, 이는 사용자가 핀보드 컬렉션과 같은 문서에 검색 엔트리를 추가하기 위해 다른 애플리케이션 또는 윈도우를 열 필요가 없다는것을 의미한다.
생성자가 수신자와 핀보드 컬렉션을 공유할 때, 수신자는 핀보드 컬렉션의 통지를 수신할 수 있다. 일례로, 수신자는 이메일을 통해 공유 핀보드 컬렉션의 지시를 수신할 수 있다. 이메일은 핀보드 컬렉션에 대응하는 링크 또는 URL을 포함할 수 있다. 수신자가 링크를 선택할 때, 설비는 인터넷 브라우저에서와 같이 핀보드 컬렉션에 대응하는 공유된 결과 표시 페이지를 표시한다. 표시된 결과 표시 페이지는 생성자에 의해 핀잉된 모든 정보 항목을 포함한다. 표시된 결과 표시 페이지는 또한 생성자가 핀보드 컬렉션을 공유한 모든 수신자들의 지시를 제공할 수 있다.
결과 표시 페이지들은 이들이 관련 핀보드 컬렉션을 이용하여 표시될 때 동적으로 채워진다. 따라서, 생성자가 핀보드 컬렉션을 생성한 후에도, 생성자(또는 수신자)의 핀보드 컬렉션에 대한 갱신들은 항상 수신자가 이용할 수 있다. 결과적으로, 생성자는 수신자와 공유한 핀보드 컬렉션과 연관된 정보 항목들을 추가, 삭제 또는 수정할 수 있다.
수신자는 수신된 핀보드 컬렉션을 다른 수신자와 공유할 수 있다. 수신자가 결과 표시 페이지를 다른 수신자와 공유할 수 있는지는 후술하는 바와 같이 생성자에 의해 제어된다. 수신자가 핀보드 컬렉션을 다른 수신자와 공유할 때, 종래의 이메일 시스템과 달리, 설비는 결과 표시 페이지 또는 그의 콘텐츠를 다른 사용자에 대해 복제하지 못한다. 대신에, 하위 수신자가 결과 표시 페이지를 열 때, 결과 표시 페이지가 동적으로 재생성될 수 있다.
수신자가 결과 표시 페이지에 나타나는 정보 항목과 연관된 링크를 선택할 때, 선택된 정보 항목과 연관된 소프트웨어 애플리케이션이 호출된다. 이어서, 소프트웨어 애플리케이션은 대응하는 정보 항목을 로딩하여 표시한다. 일례로, 스프레드시트가 핀보드 컬렉션에 링크될 때, 스프레드시트 애플리케이션이 링크된 스프레드시트를 연다.
액세스 제어
수신자가 핀보드 컬렉션에 나타나는 정보 항목에 대한 액세스를 갖는지는 다수의 팩터에 의존한다. 첫째, 핀보드 컬렉션에 대한 액세스는 핀보드 컬렉션의 생성자에 의해 제어될 수 있다. 전술한 바와 같이, 핀보드 컬렉션의 생성자는 핀보드 컬렉션과 연관된 특권을 지정할 수 있다. 일례로, 생성자는 핀보드 컬렉션의 수신자들이 핀보드 컬렉션을 다른 수신자들과 공유할 수 있음을 지시할 수 있다. 대안으로, 생성자는 수신자들이 핀보드 컬렉션을 다른 수신자들과 공유할 수 없음을 지시할 수 있다. 핀보드 컬렉션의 생성자가 수신자들에게 핀보드 컬렉션을 공유하도록 허가한 때, 다른 수신자들로부터 핀보드 컬렉션을 수신하는 수신자들("하위 수신자")은 이들이 액세스를 제공받은 정보 항목만을 볼 수 있을 수 있다.
둘째, 수신자는 그가 설비와 연관된 파일 시스템, 데이터베이스 또는 다른 데이터 소스를 통해 액세스를 갖는 정보 항목들만을 볼 수 있을 수 있다. 일례로, 핀보드 컬렉션이 2개의 정보 항목에 대한 링크를 포함하고, 네트워크 관리자가 다른 정보 항목에 대한 액세스를 명시적으로 제공하지 않기 때문에 수신자가 정보 항목들 중 하나에 대한 액세스만을 갖는 경우, 수신자는 그가 액세스를 가진 정보 항목만을 볼 수 있을 수 있다. 그러나, 일반적으로, 설비는 액세스 제어 허가를 관리한다.
셋째, 생성자들은 또한 핀보드 컬렉션에 나타나는 정보 항목들과 연관된 특권을 지정할 수 있다. 일례로, 생성자는 핀보드 컬렉션에 나타나는 소정의 정보 항목들이 다른 수신자와 공유되지 않음을 지시할 수 있다. 이어서, 수신자가 핀보드 컬렉션을 다른 수신자와 공유하려고 시도할 때, 설비는 그렇게 지시된 정보 항목들을 공유하지 않을 것이다.
핀보드 컬렉션에 리스트된 핀보드 컬렉션들은 (예를 들어 핀잉을 통해) 핀보드 컬렉션이 공유될 때 다양한 특권을 상속 또는 전파할 수 있다. 따라서, 생성자는 액세스에 대한 세밀한 제어를 갖는다.
다양한 실시예에서, 설비는 (1) 응답을 생성자와 공유함으로써("사적 응답") 또는 (2) 응답을, 생성자를 포함하여 생성자가 핀보드 컬렉션을 공유한 모든 수신자와 공유함으로써("공개 응답") 수신된 핀보드 컬렉션에 응답할 수 있는 능력을 수신자들에게 제공한다. 수신자가 공개 응답을 전송할 때, 응답은 수신자가 응답하는 핀보드 컬렉션으로부터 그의 특권을 수신한다. 결과적으로, 생성자가 원시 핀보드 컬렉션에 수신자들을 추가할 때, 추가된 수신자들은 원시 핀보드 컬렉션뿐만이 아니라 모든 공개 응답에 대한 액세스를 취득한다. 이러한 상속은 핀보드 컬렉션이 수신자들에 의해 공유되지 않아야 한다는 생성자의 지시에 의해 제한될 수 있다.
이들 공개 및 사적 응답들 자체는 핀보드 컬렉션들이다. 이들은 이들이 응답하고 있는 핀보드 컬렉션으로부터 액세스 특권을 "상속"하게 하는 속성에 의해 구별된다. 사용자는 영역(113)에 표시된 것들과 같은 관련 핀보드 결과들을 봄으로써 핀보드 컬렉션에 대한 모든 응답을 볼 수 있다. 사용자는 메시지 응답의 핀보드 컬렉션에 포함된 정보 항목들을 전술한 "오버레이" 특징을 이용하여 원시 핀보드 컬렉션과 함께 볼 수 있다.
생성자 또는 수신자는 핀보드 컬렉션들을 명시적으로 관련시키거나 원시 핀보드 컬렉션에 응답함으로써 핀보드 컬렉션들을 관련시킬 수 있다. 핀보드 컬렉션들을 명시적으로 관련시킴으로써, 설비는 후술하는 대화 스레딩을 가능하게 한다. 결과 표시 페이지가 검색될 때, 설비는 관련 핀보드 컬렉션들 또는 응답들의 리스트를 표시할 수 있다. 설비는 또한 예를 들어 비복사 정보를 오버레이함으로써 관련 핀보드 컬렉션들 또는 응답들을 처리할 수 있다.
생성자 또는 충분한 액세스 제어 허가를 가진 수신자들은 수신자를 스레드에 추가하는 것과 같이 공유 핀보드 컬렉션을 수정할 수 있다. 추가된 수신자가 스레드를 볼 때, 추가된 수신자는 모든 관련 정보 항목 및 주석을 볼 수 있다. 따라서, 예를 들어, 추가된 수신자는 스레드 상에서 빠르고 쉽게 최신화될 수 있다. 추가된 수신자는 관리자에 의한 어떠한 추가 중재 없이 모든 관련 문서에 대한 액세스를 수신할 것이다. 일례로, 프로젝트 팀의 새로운 멤버가 안전하고 간단한 방식으로 프로젝트의 문서들 및 토론들 모두에 대한 액세스를 빠르게 제공받을 수 있다. 핀보드 컬렉션들을 새로 추가된 수신자와 공유하는 사람은 프로젝트의 문서들을 검색하고, 관리자에게 액세스 제어 허가를 변경하도록 요청하는 것 등을 행할 필요가 없을 것이다. 단지 단일 동작(예를 들어, 공유 버튼의 선택)을 통해 핀보드 컬렉션을 공유함으로써, 공유 사용자는 새로 추가된 수신자를 최신화할 수 있다.
설비는 파일 시스템, 데이터베이스 등에 저장된 개체들에 관한 액세스 제어 허가들과 함께 기능할 수 있다. 일례로, 정보 항목이 데이터베이스로부터 검색될 때, 설비는 데이터베이스로부터 액세스 제어 허가를 검색한다. 이 정보 항목이 공유될 때, 설비는 데이터베이스 내의 액세스 제어 허가를 갱신할 수 있다. 따라서, 다양한 실시예에서 설비는 행 레벨(row-level)의 데이터베이스 액세스 제어 허가 제어를 제공한다.
대화 스레딩
설비는 종래의 시스템보다 우수한 대화 스레딩 모델을 가능하게 한다. 대화 스레딩은 정보 항목을 다른 정보 항목들과 연관시키는 방법이다. 이메일 환경 또는 전자 게시판과 같은 종래의 시스템에서는, 일반적으로 메시지는 하나의 대화(예를 들어, 스레드)에만 관련된다. 더욱이, 전체 대화 스레드는 사용자에게 전달될 수 없는데, 이는 예를 들어 다수의 사람이 특정 응답에 응답하고 이들 다수의 응답이 단일 메시지 내에 모두 함께 나타나지 않을 것이기 때문이다. 결과적으로, 사용자들은 전체 대화를 보기 위해 한 번에 하나씩 각각의 응답을 열 필요가 있을 수 있다.
설비는 각각의 핀보드 컬렉션이 다수의 대화 스레드를 옵션으로 포함하는 것을 가능하게 한다. 이러한 각각의 대화 스레드는 핀보드 컬렉션이 의미 있는 방식들로 다수의 정보 소스를 병합하는 것을 가능하게 한다. 일례로, 핀보드 컬렉션은 다수의 정보 항목을 포함할 수 있는데, 각각의 항목은 상이한 정보 소스로부터 유래된 것이다. 각각의 정보 항목은 그 정보 항목에 관한 주석을 가질 수 있다. 몇몇 실시예에서, 사용자는 정보 항목이 어느 핀보드 컬렉션에 나타나는지에 따라 정보 항목에 대하여 상이한 주석을 제공할 수 있다. 핀보드 컬렉션이 수신자와 공유될 때, 수신자는 수신자의 허가에 기초하여 모든 정보 항목 및 주석의 지시를 수신한다. 설비는 지시를 통지로서(예를 들어, 메신저 유사 제품, 이메일 등) 또는 수신자가 보는 핀보드 컬렉션 내의 항목으로서 제공한다. 따라서, 수신자들은 공유되는 핀보드 컬렉션과 연관된 모든 대화 스레드를 볼 수 있을 수 있다. 설비는 그의 오버레이 및 액세스 제어 허가들의 계산 및 적용과 같은 다양한 특징을 이용하여 복잡한 대화 스레딩을 가능하게 한다.
핀보드 컬렉션 및 하나 이상의 오버레이되거나 관련된 핀보드 컬렉션으로부터 검색된 정보 항목들 및 주석들은 스레딩된 대화를 형성한다. 또한, 액세스가 설비에 의해 제어되므로, 수신자는 그가 액세스를 갖는 대화의 부분들만을 볼 수 있다. 설비는 고유 식별자를 가진 모든 행에 대해 쿼리하므로, 설비는 사본 속성 엔트리들을 제거하고 고유 엔트리들을 오버레이할 수 있다.
대화 스레딩의 다른 양태에서, 정보 항목들 및 그에 행해진 주석들이 선택적으로 수신자들과 공유된다. 일례로, 사용자 W가 핀보드 컬렉션을 생성하고, 소정의 정보 항목들에 주석을 달고, 이어서 생성된 핀보드 컬렉션을 사용자들 X 및 Y와 공유한다고 가정한다. 이어서, 사용자 X가 핀보드 컬렉션에 추가 주석을 첨부하고 갱신된 핀보드 컬렉션을 사적 응답으로 사용자 W와 공유한다고 가정한다. 또한, 사용자 Y가 정보 항목에 제3 주석을 첨부하고 이 응답을 사용자 X 및 W와 공유한다고 가정한다. 사용자 W가 핀보드 컬렉션을 제4 사용자와 공유할 때, 제4 사용자는 사용자 W의 원시 핀보드 컬렉션 및 Y의 공개 응답을 볼 수 있지만, X의 사적 응답을 볼 수는 없다. 이것은 설비가 사용자들에 의해 지시되는 액세스 제어 허가들을 강제하고, 핀보드 컬렉션을 표시할 때, 전술한 "오버레이" 특징을 이용하여 데이터를 병합하고 복제된 데이터를 제거하기 때문에 발생한다.
정보 항목 및 그의 주석은 다수의 스레드에 나타날 수 있다. 더욱이, 정보 항목에 관한 주석은 스레드에 고유할 수 있다. 일례로, 특정 스레드를 보기 위한 불충분한 액세스 제어 허가를 가진 사용자는 그 스레드의 주석을 볼 수 없을 것이다.
정보 항목들의 수집
설비는 정보 항목들이 다양한 방식으로 핀보드 컬렉션 내에 수집되는 것을 가능하게 한다. 사용자는 정보 항목들을 핀보드 컬렉션에 수동으로 추가할 수 있다. 예로서, 사용자는 예를 들어 검색을 수행한 후에, 애플리케이션 내의 정보 항목을 보거나 편집하는 동안, 정보 항목들의 컬렉션을 보는 동안 등에 정보 항목을 컬렉션에 핀잉할 수 있다. 다음은 몇몇 특정 예를 제공하는데, 즉 사용자는 메뉴 명령 또는 툴바 버튼을 선택한 후 기존 핀보드 컬렉션을 선택하거나 새로운 핀보드 컬렉션을 지시함으로써 그가 사무실 생산 애플리케이션에서 보거나 수정하고 있는 문서를 핀보드 컬렉션에 추가할 수 있고, 사용자는 마이크로소프트 윈도우 익스플로러 툴을 이용할 때와 같이 파일 폴더 계층 구조를 네비게이트할 때 파일 또는 폴더를 핀보드 컬렉션에 추가할 수 있고, 사용자는 "재생 리스트" 내의 모든 매체, 폴더 내의 모든 파일 또는 이메일 또는 전자 게시판 대화 내의 모든 메시지가 핀보드 컬렉션에 배치될 정보 항목들임을 지시할 수 있다. 몇몇 실시예에서, 사용자는 구글 검색 또는 마이크로소프트 검색과 같이 설비의 일부가 아닌 검색 제공자에 의해 제공되는 검색 결과들로부터 하나 이상의 검색 결과 링크를 추가할 수 있다. 일례로, 사용자는 링크들을 복사하여 붙이거나 링크들을 드래그하여 드롭하는 것 등에 의해 링크들을 추가할 수 있다. 사용자는 또한 웹 사이트 어드레스와 같은 임의의 다른 URL을 유사한 방식으로 추가할 수 있다. 이어서, 사용자는 설비 외측의 임의 장소로부터 추가된 임의의 링크들에 주석을 첨부할 수 있다.
설비는 정보 항목들을 핀보드 컬렉션에 자동으로 추가할 수 있다. 일례로, 설비는 RSS 사이트 또는 RSS 사이트들의 그룹으로부터 RSS 피드들을 프로그램 방식으로 추가하기 위해 API를 제공한다. 다양한 실시예에서, 설비의 API는 애플리케이션이 예를 들어 RSS 사이트, RSS 피드, 또는 RSS 사이트, RSS 피드 또는 RSS 항목의 하나 이상의 속성을 지정하여 이들 중에서 핀보드 컬렉션에 추가되어야 할 것을 필터링하는 것을 가능하게 한다. 다른 예로서, 설비는 정보 항목들의 임의 그룹(예를 들어, 다양한 기준을 만족시키는 이메일 스레드)을 핀보드 컬렉션 및 관련 정보 항목들로 가상적으로 변환하기 위한 API를 제공한다.
도 4는 정보 항목들을 수집하기 위해 다양한 실시예에서 설비에 의해 이용되는 정보 항목 수집 루틴을 나타내는 흐름도이다. 루틴은 블록 402에서 시작하여, 쿼리의 지시를 하나의 파라미터로서 수신한다. 일례로, 루틴은 생성자가 쿼리 텍스트 영역에 쿼리로서 입력한 텍스트의 지시를 수신할 수 있다.
블록 404에서, 루틴은 검색 제공자들을 식별하는데, 설비는 이들과 함께 동작하도록 구성된다. 일례로, 루틴은 레지스트리로부터 검색 제공자들의 리스트를 결정할 수 있다. 전술한 바와 같이, 설비는 인터넷 검색 엔진, 데스크탑 검색 엔진 등과 같은 다양한 검색 제공자와 함께 동작한다. 제공자들은 예를 들어 설비와 연관된 주 검색 페이지, 주 검색 페이지에 의해 지시되는 검색 제공자, 및 추가 핀보드 컬렉션들과 같이 쿼리에서 지정되는 임의의 추가 검색 제공자를 더 포함할 수 있다.
블록 406과 418 사이에서, 루틴은 수신된 쿼리를 이용하여 검색하도록 식별된 검색 제공자에게 요청하고, 결과를 데이터베이스에 저장한다. 블록 406에서, 루틴은 검색 제공자를 선택한다.
블록 408에서, 루틴은 수신된 쿼리를 이용하여 검색하도록 선택된 검색 제공자에게 요청한다. 검색 제공자들은 소프트웨어 애플리케이션들이 검색 제공자들에게 검색을 수행하도록 요청하는 데 사용할 수 있는 상이한 애플리케이션 프로그램 인터페이스들을 제공할 수 있다. 따라서, 설비는 다양한 애플리케이션 프로그램 인터페이스와 함께 기능한다. 다양한 실시예에서, 설비는 설비의 애플리케이션 프로그램 인터페이스와 검색 제공자의 애플리케이션 프로그램 인터페이스 사이에 추출 계층을 제공할 수 있다. 이것이 행해질 때, 소프트웨어 개발자는 유틸리티 프로그램 또는 소프트웨어 모듈을 쉽게 작성하여 설비와 검색 제공자 간의 통신을 용이하게 할 수 있다.
검색 제공자들은 이들 생성하는 결과들의 유형들에 따라 분류될 수 있다. 일례로, 검색 제공자들은 고정된, 필터링된 또는 컴퓨팅된 결과들을 제공할 수 있다. 고정될 결과를 제공하는 검색 제공자는 일반적으로 쿼리와 연관된 정보 항목들의 동일 집합을 항상 반환한다. 필터링된 결과를 제공하는 검색 제공자는 일반적으로 다양한 기준에 따라 필터링되는 정보 항목들의 보다 큰 집합으로부터 정보 항목들의 집합을 제공한다. 컴퓨팅된 결과를 제공하는 검색 제공자는 일반적으로 다른 검색 제공자에 의해 제공되는 정보 항목들에 기초하는 것과 같이 컴퓨팅에 기초하여 결과를 제공한다.
검색 제공자들은 다양한 프로토콜 또는 언어를 이용하여 정보 항목들을 검색할 수 있다. 예로서, 검색 제공자들은 하이퍼텍스트 전송 프로토콜, 구조화된 쿼리 언어, 단순 개체 액세스 프로토콜 등을 이용할 수 있다. 검색 제공자들은 이들 및 다른 프로토콜을 이용하여 검색 결과를 제공할 수 있다. 많은 경우에, 검색 제공자들은 결과를 XML로 제공할 수 있다.
블록 410에서, 루틴은 복제 정보 항목들을 제거한다. 다양한 실시예에서, 루틴은 정보 항목의 콘텐츠 또는 URL과 같은 식별자를 체크함으로써 정보 항목이 사본인지를 결정한다. 설비는 다수의 검색 제공자로부터 수신된 복제 항목들을 제거 또는 병합할 수 있다. 검색 제공자들은 URL을 제공하여 검색 제공자들이 찾은 정보 항목들을 식별할 수 있다. 다수의 제공자가 URL에 관한 정보를 제공할 때, 설비는 검색 제공자들이 복제 정보를 제공하였는지를 판정한다. 그러한 경우, 설비는 복제 정보를 제거한다. 대안으로, 다수의 검색 제공자들이 URL에 관한 상이한 정보를 제공한 경우, 설비는 상이한 정보를 조합하여 상이한 정보를 포함하는 "오버레이" 결과를 제공한다. 일례로, 하나의 검색 제공자가 제목 및 설명 속성들을 제공하고, 다른 검색 제공자가 주석 및 제목 속성들을 제공한 경우, 오버레이 특징은 제목, 설명 및 주석 속성들을 제공한다. 다양한 실시예에서, 설비는 모든 검색 제공자가 결과들을 제공한 후에 복제 정보를 제거하거나 상이한 정보를 병합할 수 있다. 이 경우, 블록 410의 논리는 블록 406-418의 루프 외부에서 수행될 수 있다.
블록 412에서, 루틴은 검색 제공자에 의해 반환된 정보 항목들로부터 데이터를 검색하고, 검색된 데이터를, 설비가 검색 데이터를 "정규화"하는 데 사용하는 내부 형태로 변환한다. 일례로, 루틴은 충분한 정보를 검색하여 정보 항목들에 관한 초록을 형성할 수 있다. 다양한 실시예에서, 설비는 RSS를 정보 항목들에 관한 데이터를 저장하기 위한 내부 형태로 사용한다.
블록 414에서, 루틴은 변환된 정보를 데이터베이스에 저장한다. 다양한 실시예에서, 데이터베이스는 정보 항목들과 연관된 URL에 따라 분류된다. URL에 의해 데이터베이스 엔트리들을 분류함으로써, 다수의 제공자로부터의 정보 항목들은 필요에 따라 함께 그룹화되거나 제거될 수 있다.
블록 416에서, 루틴은 검색된 정보 항목들에 대한 우선순위를 계산하고 우선 순위를 데이터베이스에 저장한다. 일례로, 루틴은 쿼리 내의 용어들이 정보 항목에서 발견된 횟수에 기초하여 우선 순위를 계산할 수 있다. 설비는 이 분야에 공지된 우선 순위 또는 관련성을 계산하는 임의의 다양한 방법을 이용할 수 있다. 다양한 실시예에서, 설비는 우선 순위를 동적으로 계산한다. 일례로, 설비는 모든 검색 제공자에 의해 반환된 정보 항목들을 조합한 후에 우선 순위를 계산할 수 있다.
블록 418에서, 루틴은 다른 제공자를 선택한다. 설비가 함께 동작할 제공자가 더 이상 없는 경우, 루틴은 블록 420에서 계속되어, 루틴이 반환된다. 그렇지 않은 경우, 루틴은 블록 406에서 계속된다.
다양한 실시예에서, 설비는 사용자가 검색 제공자들의 집합의 부집합을 선택하는 것을 가능하게 한다. 일례로, 생성자 또는 수신자는 정보 항목들을 검색하기 위해 어느 검색 제공자를 이용할 것인지를 식별할 수 있다. 설비는 또한 추가 검색 제공자들을 "발견"할 수 있다. 일례로, 검색의 결과는 다른 검색 제공자를 등록하고 이용하기 위한 명령을 포함하는 문서를 생성할 수 있다. 설비는 이러한 검색 제공자를 동적으로 설치하고 활성화할 수 있다. 대안으로, 사용자는 어느 검색 제공자를 설치하고 이용할지를 지시할 수 있다. 검색 제공자는 또한 검색 동안 이용할 다른 검색 제공자를 지시할 수 있다.
다양한 실시예에서, 설비는 검색 쿼리에 기초하여 소정의 검색 제공자들을 자동으로 선택할 수 있다. 일례로, 검색 쿼리가 "영화(movie)"를 포함할 때, 설비는 온라인 영화 렌탈 회사에 의해 제공되는 검색 제공자를 자동으로 선택할 수 있다.
다양한 실시예에서, 검색 제공자는 정보 항목들과 마찬가지로 다른 사용자들과 공유될 수 있다. 수신자가 검색 제공자를 수신할 때, 설비는 수신자의 사용을 위해 검색 제공자를 등록하거나 활성화할 수 있다.
도 5는 핀보드 컬렉션을 식별하는 URL을 처리하기 위해 다양한 실시예에서 설비에 의해 이용되는 URL 처리 루틴을 나타내는 흐름도이다. 루틴은 블록 502에서 시작하여, URL의 지시를 하나의 파라미터로서 수신한다.
블록 504에서, 루틴은 URL이 핀보드 컬렉션 또는 소정의 다른 문서와 관련되어 있는지를 판정한다. URL이 핀보드 컬렉션과 관련되어 있는 경우, 루틴은 블록 506으로 계속된다. 그렇지 않은 경우, 루틴은 블록 512로 계속된다. 다양한 실시예에서, 설비는 URL이 핀보드 컬렉션과 관련되어 있다는 판정 후에 URL 처리 루틴을 호출한다. 이 경우, 루틴은 블록 502에서 시작한 후 블록 506으로 계속된다.
블록 506에서, 루틴은 핀보드 컬렉션 생성 서브루틴을 호출하고, 수신된 URL의 지시를 서브루틴에 제공한다. 핀보드 컬렉션 생성 서브루틴은 도 6과 관련하여 후술한다. 다양한 실시예에서, 루틴은 서브루틴을 호출할 때 URL의 일부를 제공할 수 있다. 일례로, 루틴은 URL의 파라미터 부분을 제공할 수 있다. 다양한 실시예에서, URL의 파라미터 부분은 물음표에 이어지는 URL의 스트링 부분이다.
블록 508에서, 루틴은 옵션으로, 블록 506에서 호출된 서브루틴에 의해 반환된 생성된 핀보드 컬렉션을 변환한다. 일례로, 루틴은 수신된 핀보드 컬렉션을 하이퍼텍스트 마크업 언어("HTML")로 변환한다. 다양한 실시예에서, 핀보드 컬렉션 생성 서브루틴은 핀보드 컬렉션을 XML로 반환한다. 이 경우, 예를 들어 인터넷 브라우저를 이용하여 사용자에게 핀보드 컬렉션을 인간 판독가능 형태로 제공하기 위해 수신된 XML을 HTML로 변환하는 것이 이로울 수 있다. 다양한 실시예에서, XSL 또는 ASP가 XML을 HTML로 변환하는 데 사용된다. 다양한 실시예에서, 루틴은 생성된 핀보드 컬렉션을 소정의 다른 형태의 문서로 변환할 수 있다.
블록 510에서, 루틴은 핀보드 컬렉션을 반환한다. 반환된 핀보드 컬렉션은 XML, HTML 또는 소정의 다른 형태일 수 있다.
블록 512에서, 루틴은 URL의 정상 처리를 수행한다. 일례로, 루틴은 웹 서버가 문서를 반환하게 할 수 있다. 블록 514에서, 루틴이 반환된다.
도 6은 핀보드 컬렉션을 생성하기 위해 다양한 실시예에서 설비에 의해 이용되는 핀보드 컬렉션 생성 루틴을 나타내는 흐름도이다. 루틴은 블록 602에서 시작하여 URL의 지시를 하나의 파라미터로서 수신한다. 다양한 실시예에서, 루틴은 URL의 파라미터 부분과 같은 URL의 일부를 수신할 수 있다.
블록 604에서, 루틴은 수신된 URL의 파라미터 및 URL에 의해 지시되는 핀보드 컬렉션에 기초하여 쿼리 계획을 생성하고 실행한다. 쿼리 계획은 다양한 정보 소스로부터의 결과들을 결과 집합에 추가하여 쿼리를 형성하는 동작들의 집합이다. 다양한 실시예에서, 쿼리 계획은 데이터베이스 서버에 의해 실행되고, 정보 소스로부터의 결과들은 데이터베이스 테이블에 추가된다. 다양한 실시예에서, 테이블의 각 행은 후술하는 핀보드 컬렉션 파일 포맷의 XML 요소를 나타낸다. 설비는 핀보드 컬렉션에 대한 모든 검색 제공자를 식별하고 식별된 검색 제공자들이 결과를 생성하게 하는 명령을 구성함으로써 쿼리 계획을 생성한다. 테이블에 저장되는 결과 집합의 일례가 도 7과 관련하여 후술된다.
다양한 실시예에서, 핀보드 컬렉션을 기술하는 문서(예를 들어, 파일)는 설비가 검색 제공자로부터 검색 결과를 얻고 제공된 결과를 설비에 의해 이용되는 형태로 변환하는 데 이용할 수 있는 실행가능 코드와 같은 개체의 위치에 대한 정보를 포함한다. 일례로, 핀보드 컬렉션은 이들 기능을 제공하는 동적 링크 라이브러리의 위치 및 명칭을 포함할 수 있다.
다양한 실시예에서, 설비는 마이크로소프트 SQL 서버 또는 오라클 데이터베이스 소프트웨어와 같은 관계형 데이터베이스 시스템을 이용하여 검색 결과를 저장한다.
다양한 실시예에서, 핀보드 컬렉션은 다른 핀보드 컬렉션 또는 검색 제공자의 지시를 핀잉된 정보 항목으로서 포함한다. 이 경우, 설비는 이들 다른 핀보드 컬렉션에 의해 참조되는 정보 항목 및 핀잉된 정보 항목을 추가로 검색할 수 있다. 핀보드 컬렉션이 검색 제공자를 참조할 때, 설비는 검색 제공자의 지시로부터 관련 정보를 다운로드한다. 일례로, 검색 제공자는 링크에 의해 지시될 수 있다. 설비는 결과를 설비가 내부적으로 이용하는 형태로 변환하기 위해 검색 제공자에게 쿼리할 때 이 다운로드된 정보를 이용한다.
다양한 실시예에서, 정보 항목 또는 핀보드 컬렉션은 핀보드 컬렉션 내에 "활성"으로서 지시될 수 있다. 일례로, 검색이 잠재적 검색 제공자를 찾을 때, 사용자는 발견된 검색 제공자를 활성화할 수 있다. 이 경우, 설비는 활성 검색 제공자를 이용하여 핀보드 컬렉션에 관한 추가 검색을 수행할 수 있다.
블록 606에서, 결과 집합이 분류된다. 일례로, 결과 집합이 데이터베이스 테이블에 저장될 때, 데이터베이스의 행들은 테이블의 열들 중 하나에서의 값에 따라 분류될 수 있다.
다양한 실시예에서, 설비는 도 7과 관련하여 후술하는 형태를 가진 데이터베이스 테이블을 이용한다. 이 실시예에서, 설비는 다음과 같이 데이터베이스 테이블을 분류할 수 있다. 데이터베이스 테이블은 먼저 섹션 열에 의해 분류된다. 이어서, 각 섹션은 행들에 포함된 데이터가 결과 표시 페이지의 어느 곳에 표시되어야 하는지에 따라 분류된다. 이어서, 각 섹션 내의 행들은 우선 순위에 의해 분류되며, 따라서 높은 우선 순위를 가진 정보 항목들은 낮은 우선 순위를 가진 정보 항목들 앞에 나타낸다. 이어서, 각 섹션 내의 행들은 URL에 의해 분류되며, 따라서 특정 URL로부터의 정보 항목들이 함께 그룹화된다. 다양한 실시예에서, 행들은 예를 들어 행 유형, 값 및 intValue 열들에 의해 더 분류된다. 이들 열은 도 7과 관련하여 후술된다.
블록 608에서, 루틴은 결과 집합의 행들로부터 XML 문서를 생성한다. 다양한 실시예에서, 설비는 요구될 수 있는 누락 행들에 대해 디폴트 값을 삽입한다. 일례로, RSS는 피드 및 엔트리를 정의할 때 다양한 XML 요소를 이용할 수 있다. 그러나, 이들 요소는 검색 제공자에 의해 제공되지 않을 수 있다. 이 경우, 루틴은 이들 요소에 대해 디폴트 값을 추가할 수 있다. 다양한 실시예에서, 설비는 복제 행들을 제거할 수 있다. 일례로, 다수의 검색 제공자는 주어진 정보 항목에 대해 유사 또는 동일한 XML 요소를 제공할 수 있다. 스키마가 허가할 때, 설비는 소정의 복제 값들을 제거하지 않을 수 있다. 다양한 실시예에서, 설비는 XML 노드 또는 요소를 추가할 수 있다. 일례로, 설비는 XML 노드를 추가하여 핀보드 스키마를 완성할 수 있다. 다양한 실시예에서, 설비는 블록 608의 논리를 실행할 때 도 4와 관련하여 전술한 정보 항목 수집 루틴을 수행한다.
블록 610에서, 루틴은 XML 문서를 반환한다.
다양한 실시예에서, 핀보드 컬렉션 파일 포맷은 RSS에 기초한다. 일례로, 핀보드 컬렉션 파일 포맷은 인터넷 사이트 blogs.law.Harvard.edu/tech/RSS에 기술되어 있는 RSS 버전 2.0에 기초할 수 있다. RSS는 피드 및 엔트리를 정의한다. 피드는 정보 항목들의 소스를 식별한다. 엔트리는 초록과 같은 정보 항목들의 양태를 기술한다.
다양한 실시예에서, 설비는 RSS를 확장한다. 일례로, 설비는 텍스트 및 검색 제공자 요소를 RSS 피드에 추가할 수 있다. 텍스트 요소는 쿼리를 식별하는 데 사용될 수 있다. 일례로, 핀보드 컬렉션을 생성하는 데 사용되는 쿼리는 텍스트 요소에 저장될 수 있다. 검색 제공자 요소는 핀보드 컬렉션에 관한 검색 제공자를 찾기 위해 설비에 의해 이용될 수 있다.
추가 예로서, 설비는 또한 유형, 초록, 수정, 메모, 액세스 및 소스 요소를 포함하는 다양한 요소를 RSS 엔트리에 추가할 수 있다. 유형 요소는 웹 페이지 또는 스프레드시트와 같은 정보 항목의 유형을 지시하는 데 사용될 수 있다. 초록 요소는 정보 항목에 관한 초록을 저장하는 데 사용될 수 있다. 수정 요소는 핀보드 컬렉션의 최종 수정일 또는 시간을 저장하는 데 사용될 수 있다. 메모 요소는 핀보드 컬렉션 또는 정보 항목에 관한 주석 또는 다른 정보를 저장하는 데 사용될 수 있다. 액세스 요소는 정보 항목과 관련하여 액세스 제어 허가들(ACP 또는 단순히 허가)이 어떻게 전파 또는 상속되는지에 대한 지시를 저장하는 데 사용될 수 있다. 소스 요소는 어느 검색 제공자가 정보 항목을 제공하였는지를 저장하는 데 사용될 수 있다.
도 7은 다양한 실시예에서 쿼리 계획을 실행할 때 설비에 의해 생성되는 결과 집합 테이블을 나타내는 테이블도이다. 결과 집합 테이블(700)은 쿼리 ID 열(702), 섹션 열(704), URL 열(706), 행 유형 열(708), 값 열(710) 및 정수 값 열(712)을 구비한다. 테이블은 핀보드 컬렉션으로부터의 정보 항목들의 "조각(shredded)" 컬렉션을 포함한다.
쿼리 ID 열(702)은 테이블의 행에 대응하는 결과를 생성하는 데 사용되는 각 쿼리를 고유하게 식별한다. 설비는 다수의 동시 쿼리를 처리할 수 있으므로 이 고유 식별자를 이용하여 쿼리들과 결과 집합 테이블 내의 행들 간의 대응을 결정할 수 있다. 따라서, 결과 테이블을 쿼리할 때, 설비는 쿼리 ID에 의해 필터링할 수 있다.
섹션 열(704)은 각 행에 대응하는 섹션을 식별한다. 일례로, 섹션 열은 행이 엔트리에 대한 피드와 관련되어 있는지를 식별한다. 전술한 바와 같이, 핀보드 컬렉션을 정의하는 파일의 일부는 피드 엔트리와 관련되어 있다.
URL 열(706)은 행에 관한 정보 항목이 검색된 URL을 식별한다.
행 유형 열(708)은 행에 저장되는 RSS 요소의 유형을 식별한다. 예로서, 행들에 대한 행 유형은 제목, 발행일, 설명 등일 수 있다.
값 열(710)은 행과 연관된 요소에 대한 실제 XML 데이터를 저장한다.
정수 값 열(712)은 각 행에 대한 정수 표현을 저장한다. 설비는 이 열을 이용하여 행들을 분류할 수 있다. 일례로, 이 열은 관련성 또는 순위 정보를 저장할 수 있다. 설비가 결과들을 분류할 때, 설비는 이 열을 이용하여 유사한 관련성 또는 순위를 가진 정보 항목들을 함께 그룹화할 수 있다.
도 8은 다양한 실시예에서 설비가 동작할 수 있는 적절한 환경을 나타내는 블록도이다. 환경은 네트워크(804)를 통해 하나 이상의 클라이언트 컴퓨팅 장치(806)에 접속될 수 있는 하나 이상의 서버 컴퓨팅 장치(802)를 구비한다.
서버 컴퓨팅 장치는 웹서버, 이메일 서버, 데이터베이스 서버, 파일 서버, 정보 항목들의 소스 등일 수 있다. 다양한 실시예에서, 서버는 다수의 서비스 또는 애플리케이션을 동시에 제공할 수 있다.
네트워크는 인터넷, 인트라넷, 또는 무선 또는 유선 네트워크를 포함하는 데이터 통신 네트워크들의 임의 조합일 수 있다.
클라이언트 컴퓨팅 장치는 핀보드 컬렉션을 생성하고 보고 조작하기 위해 생성자 또는 수신자와 같은 사용자에 의해 이용될 수 있다.
다양한 실시예에서, 설비는 여러 서버를 이용할 수 있으며, 각 사용자는 서버들 중 하나와 연관될 수 있다. 그러나, 사용자들은 이들이 어느 서버와 연관되어 있는지를 알 필요가 없다. 설비는 사용자들이 이들이 액세스를 제공받고 있는 모든 정보에 대한 액세스를 갖는 것을 보장한다. 설비는 예를 들어 핀보드 컬렉션에 핀잉된 정보 항목이 사용자가 관련되어 있는 서버의 도메인으로부터 이용될 수 없을 때 정보를 복사할 수 있다. 복사 특징은 후술된다. 사용자가 설비에게 검색을 수행하도록 요청할 때, 관련 서버는 사용자가 검색 요청을 설비의 다른 서버에 제공한 경우에도 검색을 수행할 수 있다. 설비에 의해 저장되는 임의의 핀보드 컬렉션 및 정보 항목은 일반적으로 관련 서버와 연관된 저장 장치 상에도 저장된다.
도 9는 다양한 실시예에서 도 8의 서버의 양태를 더 상세히 설명하는 블록도이다. 서버(900)는 데이터베이스(902)에 접속될 수 있다. 다양한 실시예에서, 데이터베이스는 서버(900)에 저장될 수 있다. 다른 실시예에서, 데이터베이스는 서버(900)에 접속된 다른 서버에 저장될 수 있다.
서버(900)는 인터넷 서버(904), 핀보드 컬렉션 서비스(906), 및 하나 이상의 검색 제공자(908)와 같은 다양한 소프트웨어 컴포넌트를 더 포함한다.
인터넷 서버는 URL을 평가하고 소정의 논리를 수행하고 URL에 관한 정보를 반환함으로써 URL을 포함하는 요청에 응답하는 통상의 서비스이다. 일례로, URL이 문서와 관련될 때, 인터넷 서버는 문서를 로딩하고 문서의 콘텐츠를 요청자에게 전송함으로써 응답한다. URL이 핀보드 컬렉션과 관련될 때, 인터넷 서버는 핀보드 컬렉션 서비스(906)가 핀보드 컬렉션을 생성하게 하고 생성된 핀보드 컬렉션의 콘텐츠를 요청자에게 반환함으로써 응답한다.
핀보드 컬렉션 서비스(906)는 핀보드 컬렉션을 생성하기 위한 지시의 수신시 하나 이상의 검색 제공자(908)를 이용하여 정보 항목들을 검색할 수 있다. 핀보드 컬렉션 서비스는 전술한 바와 같이 쿼리 계획의 일부로서 이들 정보 항목들을 검색 결과로서 취합한다. 이어서, 핀보드 컬렉션 서비스는 검색 결과로부터 핀보드 컬렉션을 생성할 수 있다. 다양한 실시예에서, 핀보드 컬렉션 서비스는 생성된 검색 결과를 요청 클라이언트 컴퓨팅 장치가 사용자에게 표시할 수 있는 형태로 변환할 수 있다. 일례로, 핀보드 컬렉션 서비스는 생성된 검색 결과를 XML에서 HTML로 변환할 수 있다.
도 10은 다양한 실시예에서 설비에 의해 제공되는 결과 표시 페이지를 나타내는 표시도이다. 도시된 표시도는 허가 버튼(1002) 및 다수의 정보 항목 허가 버튼(1004)를 더 갖는다는 점 외에는 도 2의 표시도와 유사하다.
허가 버튼(1002)은 선택시 설비가 도 11과 관련하여 후술하는 허가 사용자 인터페이스를 표시하게 한다. 사용자가 예를 들어 OK 또는 적용 버튼을 선택함으로써 허가 사용자 인터페이스를 해제할 때, 설비는 그 사용자 인터페이스에 지시된 허가를 허가 버튼(1002)이 선택된 핀보드 컬렉션에 적용한다. 따라서, 생성자 또는 수신자는 핀보드 컬렉션에 관한 허가를 설정 또는 재설정할 수 있다. 일례로, 생성자는 수신자들이 생성자가 수신자들에게 전송하는 핀보드 컬렉션을 더 공유하기 위한 허가를 갖지 못하도록 지시할 수 있다.
정보 항목 허가 버튼들(1004)은 핀보드 컬렉션에 표시되는 각각의 정보 항목과 연관된다. 결과 표시 페이지가 예를 들어 핀보드 컬렉션 결과 영역(112)에 추가 핀보드 컬렉션들을 표시할 때, 설비는 또한 추가 표시된 핀보드 컬렉션들과 연관된 추가 정보 항목 허가 버튼들(1004)을 제공할 수 있다. 사용자가 정보 항목 허가 버튼들(1004) 중 하나를 선택할 때, 설비는 도 11과 관련하여 후술하는 허가 사용자 인터페이스를 표시한다. 다양한 실시예에서, 핀보드 컬렉션들에 대한 허가를 설정하기 위해 설비가 제공하는 사용자 인터페이스(예를 들어, 허가 버튼(1002)에 의해 호출되는 사용자 인터페이스)는 정보 항목 허가를 설정하기 위해 호출되는 사용자 인터페이스와 다를 수 있다. 사용자가 예를 들어 OK 또는 적용 버튼을 선택함으로써 허가 사용자 인터페이스를 해제할 때, 설비는 그 사용자 인터페이스에 지시된 허가를 사용자에 의해 선택된 정보 항목 허가 버튼(1004)에 대응하는 정보 항목 또는 추가 핀보드 컬렉션에 적용한다. 따라서, 생성자 또는 수신자는 핀보드 컬렉션에 지시된 정보 항목 또는 추가 핀보드 컬렉션에 관한 허가를 설정 또는 재설정할 수 있다. 일례로, 생성자는 특정 수신자들이 핀보드 컬렉션에 생성자에 의해 핀잉된 정보 항목들의 일부를 보기 위한 허가를 갖지 못하도록 지시할 수 있다.
도 11은 다양한 실시예에서 설비에 의해 이용되는 허가를 지시하기 위한 사용자 인터페이스를 나타내는 표시도이다. 사용자 인터페이스(1100)는 예를 들어 리스트 박스(1102)에 수신자들의 리스트를 제공할 수 있다. 도시된 예에서, Brian Bean이 수신자로서 지시된다. 사용자 인터페이스는 또한 허가들(1104, 1106, 1108)과 같은 허가들의 리스트를 제공할 수 있다.
생성자 또는 수신자와 같은 사용자는 수신자 리스트로부터 하나 이상의 수신자를 선택한 후 선택된 수신자들에게 설비가 제공해야 하는 허가들을 지시함으로써 핀보드 컬렉션 또는 정보 항목에 관한 허가를 지정할 수 있다. 도시된 사용자 인터페이스는, 다른 허가들이 가능하고 고려되지만, 뷰 허가(1104), 공유 허가(1106) 및 완전 허가(1108)를 지시한다.
사용자가 허가들 중 하나 이상을 지시할 때, 설비는 사용자 인터페이스가 호출된 항목에 허가를 적용한다. 예로서, 설비는 사용자가 허가 버튼(1004) 또는 정보 항목 허가 버튼들(1004) 중 하나를 선택하였는지에 따라 정보 항목 또는 핀보드 컬렉션에 지시된 허가를 적용할 수 있다.
수신자가 뷰 허가를 가질 때, 설비는 수신자가 관련 항목을 보게 할 수 있다. 설비는 수신자가 뷰 허가를 갖지 않을 때 수신자가 정보 항목 또는 핀보드 컬렉션을 보지 못하게 할 수 있다.
수신자가 공유 허가를 가질 때, 설비는 수신자가 관련 항목을 다른 수신자들과 공유하게 할 수 있다. 일례로, 공유 허가를 가진 수신자는 수신된 핀보드 컬렉션을 다른 수신자들과 공유할 수 있다. 수신자가 공유 허가를 가진 소정의 정보 항목 및 수신자가 공유 허가를 갖지 않은 다른 정보 항목을 구비하는 수신된 핀보드 컬렉션을 수신자가 공유할 때, 하위 수신자들은 공유 수신자가 공유 허가를 가진 정보 항목들만을 수신할 수 있다.
수신자가 항목에 대한 완전 허가를 가질 때, 설비는 수신자가 항목을 보거나 항목을 공유하거나 항목을 수정하는 것을 가능하게 한다. 설비는 또한 그러한 수신자가 추가 항목을 추가하는 것을 가능하게 할 수 있다.
정보 항목 및 핀보드 컬렉션은 설비가 액세스 제어 허가(ACP)를 어떻게 결정하는가에 따라 다양한 관계를 가질 수 있다. 이들 관계는 예를 들어 "없음", "전파", "상속" 및 "양자"일 수 있다. 설비는 다른 관계도 정의할 수 있다. 핀보드 컬렉션 또는 정보 항목이 관계를 갖지 않을 때, 설비는 다른 핀보드 컬렉션 또는 정보 항목에 기초하여 그 핀보드 컬렉션 또는 정보 항목에 대한 ACP를 계산할 필요가 없으나, 그럼에도 핀보드 컬렉션을 예를 들어 관련된 핀보드 컬렉션으로서 표시할 수 있다. 핀보드 컬렉션 또는 정보 항목이 전파 관계를 갖는 경우, 설비는 그 핀보드 컬렉션 또는 정보 항목이 핀잉된 핀보드 컬렉션들에 대해 결정 또는 지시된 ACP에 기초하여 그 핀보드 컬렉션 또는 정보 항목에 대한 ACP를 계산한다. 핀보드 컬렉션 또는 정보 항목이 상속 관계를 갖는 경우, 설비는 그 핀보드 컬렉션 또는 정보 항목이 핀잉된 핀보드 컬렉션들에 대한 ACP를 계산한다. 다양한 실시예에서, 설비는 정보 항목 또는 핀보드 컬렉션이 핀잉될 때 관계를 자동으로 지정한다. 일례로, 설비는 디폴트로 전파 관계를 선택할 수 있다. 다양한 실시예에서, 설비는 디폴트 관계를 제공할 수 있지만, 사용자는 관계를 수정할 수 있다. 관계를 수정하기 위한 사용자 인터페이스는 도 11의 사용자 인터페이스와 연관될 수 있다. 일례로, 도 11의 사용자 인터페이스는 사용자가 예를 들어 관계들의 리스트로부터 관계를 선택함으로써 관계를 선택하는 것을 가능하게 하도록 확장될 수 있다. 다양한 실시예에서, 관계를 선택하기 위한 사용자 인터페이스는 도 10에 도시된 결과 표시 페이지와 같은 결과 표시 페이지 또는 핀보드 컬렉션에 나타나는 드롭다운 메뉴를 통할 수 있다.
이제, 이들 관계가 다양한 실시예에서 허가를 결정하기 위한 핀보드 컬렉션과 정보 항목 간의 관계를 나타내는 블록도인 도 12A-12E를 참조하여 설명된다. 이들 도면은 핀보드 컬렉션을 나타내는 정사각형과 정보 항목을 나타내는 원을 가진 지향 그래프를 나타낸다. 핀보드 컬렉션과 정보 항목을 연결하는 에지들은 핀보드 컬렉션 또는 정보 항목이 그가 에지를 함께 공유하는 핀보드 컬렉션에 핀잉됨을 지시한다. 화살표는 ACP가 흐르는 방향을 나타낸다. 일례로, 도 12A에 따르면, ACP는 핀보드 컬렉션에서 정보 항목으로 전파한다. 에지를 함께 공유하는 핀보드 컬렉션 아래에 나타나는 정보 항목 또는 핀보드 컬렉션은 그 위의 핀보드 컬렉션에 핀잉된다. 도시된 노드들은 또한 도시되지 않은 다른 관계를 가질 수 있다.
도 12A에 따르면, 2개의 핀보드 컬렉션, 즉 핀보드 컬렉션 A(1202) 및 핀보드 컬렉션 B(1204)가 존재한다. 핀보드 컬렉션 A는 그에게 정보 항목들 1(1206), 2(1208) 및 3(1210)을 핀잉하였다. 핀보드 컬렉션 B는 그에게 정보 항목 5(1214)를 핀잉하였다. 정보 항목 4(1212)는 어느 핀보드 컬렉션에도 핀잉된 것으로 지시되지 않는다.
사용자들 X, Y 및 Z가 핀보드 A 상에 완전 허가를 갖지만, 이들 중 어느 누구도 정보 항목 4에 대해 어떠한 허가도 갖지 않는 것으로 가정한다. 사용자들 X, Y 또는 Z가 어떻게든지 정보 항목 4를 찾는 경우, 이들은 그 정보 항목을 볼 수 없는데, 예를 들어 이는 운영 체제의 파일 시스템이 이들 사용자가 필요한 ACP를 갖지 않음을 지시하기 때문이다. 또한, 사용자 W가 핀보드 컬렉션 A 상에 완전 특권을 갖고, 정보 항목 4 상에 판독 특권을 갖는 것으로 가정한다. 따라서, 사용자 W는 도 12B에 지시된 바와 같이 정보 항목 4를 A에 핀잉할 수 있다.
사용자가 예를 들어 새로운 항목을 핀잉함으로써 핀보드 컬렉션을 수정할 때, 설비는 핀보드 컬렉션에 핀잉된 모든 정보 항목 및 핀보드 컬렉션에 대한 ACP를 다시 계산할 수 있다. ACP를 계산 또는 설정하는 루틴들은 도 13A-C와 관련하여 후술된다.
정보 항목 4는 핀보드 컬렉션에서 정보 항목 4로의 지향 에지에 의해 지시되는 바와 같이 "전파" 관계를 갖는다. 결과적으로, 정보 항목 4가 핀보드 컬렉션 A에 핀잉되면, 정보 항목 4의 ACP는 핀보드 컬렉션 A에 대한 ACP 및 정보 항목 4에 대해 명시적으로 지시되는 임의의 ACP의 합집합이 되도록 계산된다. 이 예에서, 이전에 정보 항목 4에 대한 허가를 갖지 못했던 사용자들 X, Y 및 Z는 이 항목이 핀보드 컬렉션 A에 핀잉된 후에 정보 항목 4에 대해 완전 허가를 가질 것이다. 이것은 이들 사용자가 정보 항목 4와 전파 관계를 갖는 핀보드 컬렉션 A에 대해 완전 허가를 갖기 때문이다.
사용자 Z는 핀보드 컬렉션 A 및 B에 대해 공유 허가를 갖고, 사용자 W는 정보 항목 5에 대한 허가를 갖지 않지만 핀보드 컬렉션 A에 대해 완전 허가를 갖는 것으로 가정한다. 추가적으로, 사용자 Z는 도 12C에 지시된 바와 같이 정보 항목 5를 핀보드 컬렉션 A에 핀잉하는 것으로 가정한다. 이어서, 설비는 핀보드 컬렉션 A 및 B에 대한 허가들의 합집합으로서 정보 항목 5에 대한 ACP를 다시 계산한다. 재계산 후, 사용자 W는 정보 항목 5에 대해 완전 허가를 갖게 되는데, 이는 핀보드 컬렉션 A 및 B의 ACP가 정보 항목 5로 전파되고, 따라서 사용자 W의 핀보드 컬렉션 A에 대한 허가가 정보 항목 5로 전파되기 때문이다.
도 12D는 상속 관계를 나타낸다. 도 12D에 따르면, 핀보드 컬렉션 A는 상속 관계를 지시하는 화살표를 갖는 에지(1230)에 의해 지시되는 바와 같이 핀보드 컬렉션 C(1228)로부터 ACP를 상속받는다. 따라서, 핀보드 컬렉션 C가 핀보드 컬렉션 A에 핀잉되는 경우에도, 핀보드 컬렉션 C로부터 ACP를 상속받는 것을 핀보드 컬렉션 A이다. 다양한 이벤트의 발생시, 설비는 핀보드 컬렉션 C의 ACP에 기초하여 핀보드 컬렉션 A의 ACP를 재계산한다. 정보 항목들 1-5와의 전파 관계에 기초하여, 이들 ACP는 또한 이들 정보 항목으로 흐를 수 있다. 일례로, 사용자 V가 핀보드 컬렉션 C에 대해 뷰 허가를 갖는 경우, 그 사용자는 또한 정보 항목 1-5에 대한 뷰 허가를 수신할 것이다.
도 12E는 양 방향으로 흐르는 핀보드 컬렉션 A 및 C 간의 관계를 나타낸다(예를 들어, 이 관계는 상속 및 전파 양자이다). 이 경우, ACP는 핀보드 컬렉션 C에서 핀보드 컬렉션 A로, 그리고 핀보드 컬렉션 A에서 핀보드 컬렉션 C로 흐른다. 관계가 2개의 노드 사이에서 양 방향으로 흐를 때, 설비는 양 노드의 ACP들을 동기화한다. 설비는 이것이 발생할 때 무한 루프를 검출하여 방지할 수 있다.
다양한 실시예에서, 설비는 다양한 이벤트가 발생할 때 ACP를 재계산한다. 이들 이벤트는 예를 들어 정보 항목이 핀보드 컬렉션에 핀잉되거나 핀보드 컬렉션에 더 이상 핀잉되지 않을 때, ACP가 정보 항목에 대해(예를 들어, 수동으로 또는 다른 핀보드 컬렉션에 핀잉되는 결과로서) 또는 때때로(예를 들어, 주기적으로 또는 무작위로) 수정될 때를 포함한다.
전술한 바와 같이, 설비는 지향 그래프로서 표현될 수 있는 핀보드 컬렉션과 정보 항목 간의 관계와 함께 기능할 수 있다. 이것은 통상적으로 트리에 의해 표현되는 대부분의 액세스 제어 스킴과는 대조적이다. ACP 상속이 지향 그래프로서 표현되므로, ACP의 상속 및 전파에 대해 복잡한 관계가 정의될 수 있다. 지향 그래프의 각 노드는 정보 항목 또는 핀보드 컬렉션을 나타내며, 각각의 지향 에지는 ACP가 어떻게 흐르는지를 정의한 관계를 지시한다. 임의의 주어진 노드에 대해 계산된 ACP는 그 노드에 대해 명시적으로 설정된 ACP 및 지향 에지를 지시하는 모든 다른 노드의 ACP의 합집합이다. 도 12E의 지향 그래프를 일례로 고려하여, 정보 항목 5, 핀보드 컬렉션 A, 및 핀보드 컬렉션 B에 대한 ACP들이 각각 K, L 및 M이라고 가정한다. 정보 항목 5에 대해 계산된 ACP는 (K∪L∪M)일 것이다. 이 분야에 공지되어 있듯이, 다수의 소스 집합에 대한 합집합 연산은 2개의 집합 내의 모든 요소의 최소 조합인 결과 집합을 생성한다.
설비는 다양한 기술을 이용하여, 예를 들어 관계를 정의하는 그래프가 순환을 가질 때 ACP의 재계산이 무한 루프가 아닌 것을 보장할 수 있다. 일례로, 설비는 핀보드 컬렉션 또는 정보 항목에 이미 적용된 ACP들이 핀보드 컬렉션 또는 정보 항목에 대해 설비에 의해 계산된 ACP들과 매칭될 때 링크들의 재계산을 중지할 수 있다.
다양한 실시예에서, 설비는 운영 체제와 상호작용하여 ACP를 검색 또는 설정한다. 일례로, 정보 항목에서 핀보드 컬렉션으로의 상속 관계에서의 허가를 계산할 때, 설비는 운영 체제에 쿼리하여, 정보 항목에 대해 어떤 ACP가 명시적으로 설정되어 있는지를 결정할 수 있다. 다른 예로서, 정보 항목에 대한 ACP의 계산시, 설비는 운영 체제에 요청하여, 정보 항목에 대한 ACP를 설정할 수 있다. 다양한 실시예에서, 설비는 예를 들어 성능을 향상시키거나 ACP를 증대하기 위하여 ACP를 데이터베이스에 캐싱한다.
몇몇 실시예에서, ACP는 파일 시스템, 데이터베이스 등과 같이 설비에 의해 이용되는 다른 개체들(예를 들어, 정보 항목을 저장하는 개체들)에 의해 이용되는 다른 액세스 제어 메카니즘에 더하여 또는 그에도 불구하고 설비에 의해 관리된다. 몇몇 실시예에서, 설비는 정보 항목이 아니라 또는 그에 더하여 쿼리를 통해 ACP를 전파한다. 일례로, ACP는 지정된 검색 용어를 포함하는 임의의 정보 항목(예를 들어, 핀보드 컬렉션 내의)에 전파될 수 있다. 이러한 실시예에서, 핀보드 컬렉션은 동적으로 저장 또는 컴퓨팅될 수 있다.
도 13A-13C는 ACP를 수정하기 위해 다양한 실시예에서 설비에 의해 이용되는 루틴을 나타내는 흐름도이다. 이들 루틴은 다양한 시간에, 예를 들어 설비가 핀보드 컬렉션이 변경되었음을 검출할 때 설비에 의해 이용될 수 있다. 설비는 사용자 콘텍스트에서 이들 루틴의 일부를, 시스템 콘텍스트에서 다른 일부를 수행할 수 있다. 루틴의 논리가 사용자 콘텍스트에서 수행될 때, 운영 체제가 사용자로 하여금 수행하게 할 수 있는 동작들만이 실제로 수행될 수 있다. 대조적으로, 루틴의 논리가 시스템 콘텍스트에서 수행될 때, 운영 체제가 수행할 수 있는 모든 동작이 실제로 수행될 수 있다.
도 13A는 액세스 제어(예를 들어, 허가 또는 특권)를 수정하기 위해 다양한 실시예에서 설비에 의해 이용되는 액세스 제어 수정 루틴을 나타내는 흐름도이다. 루틴은 블록 1302에서 시작하여 항목의 지시를 하나의 파라미터로서 수신한다. 지시된 항목은 예를 들어 핀보드 컬렉션 또는 정보 항목일 수 있다.
블록 1304에서, 루틴은 관련 항목들의 집합을 결정한다. 관련 항목들은 ACP를 지시된 항목에 전파하거나 지시된 항목이 ACP를 상속받는 다른 핀보드 컬렉션 또는 정보 항목들이다.
설비는 옵션으로 블록 1306에 지시되는 바와 같이 이들 관계를 데이터베이스에 캐싱할 수 있다. 일례로, 설비는 각각의 정보 항목 또는 핀보드 컬렉션 뷰 및 설비가 테이블에 추가한 다른 정보 항목 및 핀보드 컬렉션과의 관계를 지시하는 행들을 갖는 하나 이상의 데이터베이스 테이블을 생성할 수 있다. 각각의 정보 항목 또는 핀보드 컬렉션은 테이블에서 고유하게 식별될 수 있다. 테이블의 각 행은 항목에 대한 고유 식별자, 항목의 위치 및 항목에 대한 ACP를 포함할 수 있다. 다른 테이블이 항목의 고유 식별자, 액세스 제어 관계(예를 들어, 상속, 전파, 이들 양자 또는 없음) 및 행과 연관된 항목이 관련되어 있는 항목의 고유 식별자를 포함하는 행들을 가질 수 있다.
블록 1308에서, 루틴은 액세스 제어 허가 컴퓨팅 서브루틴을 호출하여, 지시된 항목에 대한 ACP를 컴퓨팅할 수 있다. 이 루틴은 도 13B와 관련하여 바로 아래에 더 설명된다.
블록 1310에서, 루틴은 예를 들어 항목이 찾아진 운영 체제에 쿼리함으로써 컴퓨팅된 ACP가 항목에 대해 실제로 지시된 ACP와 다른지를 결정한다. 계산된 ACP가 실제 ACP와 다른 경우, 루틴은 블록 1312로 계속된다. 그렇지 않은 경우, 루틴은 블록 1314로 계속된다.
블록 1312에서, 루틴은 항목에 대한 실제 ACP를 컴퓨팅된 ACP로 설정한다. 일례로, 루틴은 항목이 찾아진 운영 체제의 애플리케이션 프로그램 인터페이스를 호출하여 항목의 ACP를 설정할 수 있다. 대안으로 또는 추가로, 루틴은 항목의 ACP를 저장하는 데이터베이스 또는 다른 애플리케이션 내의 항목의 ACP를 변경할 수 있다. 일례로, 설비는 이메일 서버에 의해 제공되는 애플리케이션 프로그램 인터페이스를 호출하여 이메일 항목의 ACP를 설정할 수 있다.
블록 1314에서, 루틴은 지시된 항목에 대한 ACP가 변경될 때 ACP가 재설정되는 것이 또한 필요할 수 있는 항목들의 집합을 결정한다. 일례로, 핀보드 컬렉션에 핀잉된 정보 항목 및 핀보드 컬렉션은 이들의 ACP가 재설정되는 것일 필요할 수 있다. 다른 예로서, 지시된 항목과 상속 관계를 가진 다른 항목들은 이들의 ACP가 재설정되는 것이 필요할 수 있다.
블록 1316과 1320의 루프 사이에서, 루틴은 결정된 항목들의 집합의 각 항목에 대한 ACP를 재설정한다. 블록 1316에서, 루틴은 집합으로부터 항목을 선택한다.
블록 1318에서, 루틴은 도 13C와 관련하여 후술하는 허가 설정 서브루틴을 호출하여 항목에 대한 ACP를 설정한다. 루틴은 선택된 항목의 지시를 허가 설정 루틴에 파라미터로서 제공할 수 있다.
블록 1320에서, 루틴은 집합으로부터 다른 항목을 선택한다. 집합의 모든 항목이 루프에 의해 이미 처리된 경우, 루틴은 블록 1322로 계속되어, 루틴이 반환된다. 그렇지 않은 경우, 루틴은 블록 1318로 계속된다.
도 13B는 ACP를 컴퓨팅하기 위해 다양한 실시예에서 설비에 의해 이용되는 액세스 제어 허가 컴퓨팅 루틴을 나타내는 흐름도이다. 루틴은 블록 1340에서 시작하여 항목의 지시를 파라미터로서 수신한다. 항목은 예를 들어 정보 항목 또는 핀보드 컬렉션일 수 있다.
블록 1342에서, 루틴은 지시된 항목에 대해 명시적으로 정의되는 ACP들의 집합을 결정한다. 일례로, 루틴은 항목이 찾아진 운영 체제에 쿼리함으로써 또는 데이터베이스에서 명시적인 ACP를 탐색함으로써 명시적인 ACP를 결정할 수 있다. 루틴은 ACP를 포함하도록 변수("P"로 도시됨)를 설정한다.
블록 1344에서, 루틴은 ACP를 지시된 항목에 전파하거나 지시된 항목이 ACP를 상속받는 항목들의 집합을 결정한다. 일례로, 루틴은 블록 1306과 관련하여 전술한 데이터베이스에 쿼리함으로써 이 정보를 결정할 수 있다.
블록 1346과 1350의 루프 사이에서, 루틴은 결정된 항목들의 집합 내의 모든 항목의 ACP들에 대해 합집합 연산을 수행함으로써 지시된 항목에 대한 ACP를 컴퓨팅한다. 루틴은 블록 1346에서 집합으로부터 항목을 선택한다.
블록 1348에서, 루틴은 블록 1342에서 설정된 변수(예를 들어, "P")에 포함된 ACP와 선택된 항목의 ACP 사이의 합집합 연산을 수행한다. 합집합의 결과는 변수에 저장되고, 루프의 후속 반복 동안 재사용된다.
블록 1350에서, 루틴은 리스트로부터 다른 항목을 선택한다. 모든 항목이 처리된 때, 루틴은 블록 1352로 계속되어, 컴퓨팅된 ACP를 반환하며, 이것은 이제 변수 내에 저장된다. 그렇지 않은 경우, 루틴은 블록 1348로 계속된다.
도 13C는 ACP를 설정하기 위해 다양한 실시예에서 설비에 의해 이용되는 허가 설정 루틴을 나타내는 흐름도이다. 루틴은 블록 1360에서 시작되어, 항목의 지시를 파라미터로서 수신한다. 항목은 예를 들어 정보 항목 또는 핀보드 컬렉션일 수 있다.
블록 1362에서, 루틴은 도 13B와 관련하여 전술한 액세스 제어 허가 컴퓨팅 서브루틴을 호출하여, 지시된 항목에 대한 ACP를 컴퓨팅한다.
블록 1364에서, 루틴은 예를 들어 항목이 찾아진 운영 체제에 쿼리함으로써 컴퓨팅된 ACP가 항목에 대해 실제로 지시된 ACP와 다른지를 결정한다. 계산된 ACP가 실제 ACP와 다른 경우, 루틴은 블록 1366으로 계속된다. 그렇지 않은 경우, 루틴은 블록 1378로 계속된다.
블록 1366에서, 루틴은 항목에 대한 실제 ACP를 컴퓨팅된 ACP로 설정한다. 일례로, 루틴은 항목이 찾아진 운영 체제의 애플리케이션 프로그램 인터페이스를 호출하여 항목의 ACP를 설정할 수 있다. 대안으로 또는 추가로, 루틴은 항목들의 ACP를 저장하는 데이터베이스 내의 항목의 ACP를 변경할 수 있다.
블록 1368에서, 루틴은 항목이 핀보드 컬렉션인지를 결정한다. 루틴은 핀보드 컬렉션과 연관된 항목들이 그들의 ACP가 재설정되는 것을 필요로 할 수 있기 때문에 이러한 결정을 행한다. 항목이 핀보드 컬렉션인 경우, 루틴은 블록 1370으로 계속된다. 그렇지 않은 경우, 루틴은 블록 1378로 계속된다.
블록 1370에서, 루틴은 허가가 재설정될 필요가 있을 수 있는 핀보드 컬렉션과 연관된 항목들의 집합을 결정한다. 일례로, 루틴은 블록 1306과 관련하여 전술한 데이터베이스에 쿼리함으로써 이러한 정보를 결정할 수 있다.
블록 1372와 1376의 루프 사이에서, 루틴은 결정된 집합 내의 항목들에 대한 ACP를 설정한다. 루틴은 블록 1372에서 집합으로부터 항목을 선택한다.
블록 1374에서, 루틴은 허가 설정 루틴을 반복적으로 호출하여, 루틴이 지시로서 제공하는 선택된 항목에 대한 ACP를 설정한다.
블록 1376에서, 루틴은 다른 항목을 선택한다. 모든 항목이 처리된 때, 루틴은 블록 1378로 계속된다. 그렇지 않은 경우, 루틴은 블록 1374로 계속된다.
블록 1378에서 루틴이 반환된다.
다양한 실시예에서, 설비는 사용자가 핀보드 컬렉션이 그에 핀잉되지 않은 허가를 상속받는 정보 항목들을 지정하는 것을 가능하게 한다.
다양한 실시예에서, 설비는 관리자, 생성자, 수신자 또는 다른 사용자와 같은 사용자가 허가를 수정할 때 적용되는 "마스크"를 지정하는 것을 가능하게 한다. 설비가 마스크를 적용할 때, 설비는 모든 허가를 적용하지 않을 수 있다. 마스크의 예는 표준형 및 주문형이다. 마스크가 표준형일 때, 설비는 전술한 바와 같이 허가를 계산할 수 있다. 사용자는 최대 표준 마스크를 지정할 수 있다. 일례로, 사용자는 최대 "공유" 마스크를 지정할 수 있다. 이 경우, 설비는 뷰 및 공유 허가를 적용할 수 있지만 완전 허가는 적용할 수 없는데, 이는 완전 허가가 공유 허가를 초과하기 때문이다. 마스크가 주문형일 때, 설비는 사용자에 의해 지정되는 주문형 마스크를 적용할 수 있다.
다양한 실시예에서, 설비는 정보 항목을 포함하는 파일과 같은 파일에 대해 지시되는 운영 체제 허가를 수정한다. 일례로, 설비는 파일에 대응하는 정보 항목을 포함하는 핀보드 컬렉션이 파일에 대한 판독 특권을 갖지 않은 수신자와 공유될 때 파일에 대한 운영 체제 허가를 수정할 수 있다.
다양한 실시예에서, 설비는 허가를 "대역 내에서(in band)" 변경할 수 있거나, 허가는 예를 들어 다른 애플리케이션에 의해 또는 사용자에 의해 수동으로 "대역 외에서(out of band)" 변경될 수 있다. "대역 내" 변경의 일례로, 핀보드 컬렉션, 정보 항목 또는 파일에 대한 허가는 핀보드 컬렉션이 수신자들과 공유될 때 변경될 수 있다. "대역 외" 변경의 일례로, 사용자는 운영 체제 컴포넌트 또는 명령을 이용하여 정보 항목에 대한 허가를 변경할 수 있다. 어느 하나가 발생할 때, 설비는 핀보드 컬렉션 또는 정보 항목에 대한 허가를 다시 컴퓨팅할 수 있다.
다양한 실시예에서, 설비는 그가 이미 ACP를 다시 계산한 항목들을 추적할 수 있다. 이어서, 루프 또는 반복이 설비가 다시 항목을 방문하게 할 때, 설비는 다시 방문한 항목에 대한 ACP를 다시 계산할 필요가 없게 된다.
도 14는 정보 항목에 대한 변경을 모니터링하기 위해 다양한 실시예에서 설비에 의해 이용되는 변경 모니터링 루틴을 나타내는 흐름도이다. 다양한 실시예에서, 설비는 변경 모니터링 루틴을 이용하여, 콘텐츠 변경 또는 허가 변경과 같은 정보 항목에 대한 변경을 검출한다. 루틴은 블록 1402에서 시작한다.
블록 1404에서, 루틴은 루틴의 최종 호출 이후에 임의의 정보 항목이 변경되었는지를 결정한다. 루틴은 콘텐츠 변경, 허가 변경 또는 다른 변경을 추적할 수 있다. 그러한 경우, 루틴은 블록 1406으로 계속된다. 그렇지 않은 경우, 루틴은 블록 1408로 계속되어, 루틴이 반환된다.
블록 1406에서, 루틴은 정보 항목에 대한 변경을 기록한다. 일례로, 루틴은 변경을 변경 데이터베이스에 기록할 수 있다. 다양한 실시예에서, 루틴은 실제 변경이 아니라, 정보 항목이 변경되었다는 지시를 기록할 수 있다.
블록 1408에서 루틴이 반환된다.
다양한 실시예에서, 변경 모니터링 루틴은 소스 컴퓨팅 장치에 의해 수행된다. 소스 컴퓨팅 장치는 변경을 다른 컴퓨팅 장치에 전파하는 장치이다. 일례로, 소스 컴퓨팅 장치는 변경을 다른 컴퓨팅 장치에 복사한다.
다양한 실시예에서, 정보 항목의 콘텐츠 또는 허가에 대한 변경에 기초하여 추가 프로세스가 착수될 수 있다. 일례로, 정보 항목에 대한 허가가 사용자 X가 정보 항목을 볼 수 있도록 변경될 때 사용자 X가 문서를 검토해야 함을 지시하는 태스크를 생성하기 위한 작업 흐름 애플리케이션이 개발될 수 있다. 따라서, 설비는 허가 변경과 같은 변경의 모니터링에 기초하여 애플리케이션을 구축하기 위한 범용 아키텍처를 기술한다.
다양한 실시예에서, 정보 항목의 속성은 ACP와 유사한 방식으로 전파될 수 있다. 일례로, 버전 로킹 정보 속성이 전파(또는 상속)될 수 있으며, 따라서 사용자가 핀보드 컬렉션을 "로킹"할 때, 로킹은 로킹된 핀보드 컬렉션에 포함된 모든 정보 항목 및 그가 포함하는 임의의 다른 핀보드 컬렉션들에 적용될 수 있다. 로킹이 핀보드 컬렉션에 적용될 때, 설비는 정보 항목을 식별하는 URL(또는 다른 링크)을 교체할 수 있으며, 따라서 그 URL의 선택은 예를 들어 핀보드 컬렉션이 로킹된 때 이용 가능했던 버전에 대응하는 정보 항목의 버전을 로딩하게 된다. 이 경우, 설비는 "로킹된 버전"을 생성하고, URL을 제공할 수 있다. 이러한 로킹은 로킹된 핀보드 컬렉션에 포함된 핀보드 컬렉션들 내의 모든 정보 항목에 대해 반복적으로 발생할 수 있다.
도 15는 변경을 복제하기 위해 다양한 실시예에서 설비에 의해 이용되는 복제 루틴을 나타내는 흐름도이다. 설비는 때때로 루틴을 수행하여 변경을 소스 컴퓨팅 환경에서 서버 또는 클라이언트와 같은 다른 컴퓨팅 장치로 복제할 수 있다. 루틴은 블록 1502에서 시작된다.
블록 1504와 1510 사이에서, 루틴은 정보 항목을 복제한다. 블록 1504에서, 루틴은 변경된 정보 항목을 선택한다. 일례로, 루틴은 도 14의 변경 모니터링 루틴에 의해 생성된 로그로부터 정보 항목을 선택할 수 있다.
블록 1506에서, 루틴은 변경된 정보 항목의 갱신들만을 복제하는 것이 가능한지를 판정한다. 일례로, 소정의 문서들은 문서들에 행해진 수정 또는 갱신을 저장할 수 있다. 그러한 경우, 전체 문서가 아니라 갱신들만을 복제하는 것이 효율적일 수 있다. 갱신들만을 복제하는 것이 가능한 경우, 루틴은 블록 1508로 계속된다. 그렇지 않은 경우, 루틴은 블록 1514로 계속된다.
블록 1508에서, 루틴은 갱신들을 복제한다. 일례로, 루틴은 갱신을 다른 컴퓨팅 장치에 제공할 수 있다.
블록 1510에서, 루틴은 다른 정보 항목을 선택한다. 모든 정보 항목이 처리된 경우, 루틴은 블록 1512로 계속되어, 루틴이 반환된다. 그렇지 않은 경우, 루틴은 블록 1506으로 계속된다.
블록 1514에서, 루틴은 정보 항목을 복제한다. 일례로, 루틴은 정보 항목을 다른 컴퓨팅 장치에 제공할 수 있다.
다양한 실시예에서, 정보 항목 또는 갱신이 복제되는 컴퓨팅 장치는 갱신들을 배치(batch)화할 수 있다. 일례로, 컴퓨팅 장치는 그의 로컬 사본을 갱신하기 전에 다수의 갱신 또는 정보 항목을 수신할 수 있다. 다양한 실시예에서, 갱신들 및 정보 항목들을 수신하는 컴퓨팅 장치는 갱신들 또는 정보 항목들을 다른 컴퓨팅 장치에 전달할 수 있다. 일례로, 정보 항목이 특정 사용자와 공유됨을 검출한 때, 컴퓨팅 장치는 정보 항목을 그 사용자에 대응하는 서버에 전달할 수 있다.
컴퓨팅 장치들은 갱신들을 XML 업데이트그램들로서 공유할 수 있다. XML 업데이트그램은 XML 메시지에서 갱신들의 지시를 제공한다.
설비는 예를 들어 다양한 프로토콜을 이용하여 업데이트그램을 전송함으로써 복제를 수행할 수 있다. 일례로, 설비는 HTTP 프로토콜을 분산형 저작 및 버전잉("DAV") 프로토콜의 변형과 함께 이용하여 복제를 가능하게 할 수 있다. 설비는 컴퓨팅 장치의 네트워크 접속을 체크함으로써 사용자가 방화벽 "내부" 또는 "외부"에 있는지를 검출한다. 컴퓨팅 장치가 방화벽 내부 또는 외부에 있는지에 기초하여, 컴퓨팅 장치는 어느 URL을 이용할지를 결정한다. 일례로, 컴퓨팅 장치가 방화벽 내부에 있을 때, URL은 http://internalserver/share와 같은 로컬 서버 이름을 참조할 수 있다. 컴퓨팅 장치가 방화벽 외부에 있는 경우, URL은 http://www.companyname.com/share와 같은 인터넷 도메인을 참조할 수 있다.
도 16은 설비의 다수의 검색 제공자의 이용을 위한 컴포넌트 및 그 이용의 양태를 나타내는 블록도이다. 다양한 실시예에서, 설비는 운영 체제의 변경 저널(1602)을 이용한다. 일례로, 마이크로소프트 윈도우 운영 체제를 이용하도록 구성된 시스템의 일 실시예는 "NT 변경 저널"을 이용할 수 있다. 운영 체제의 변경 저널은 운영 체제의 파일 및 다른 개체에 대한 변경을 기록한다. 변경 저널을 이용함으로써, 설비는 파일, 핀보드 컬렉션, 정보 항목 등에 대한 변경을 검출할 수 있다.
이어서, 설비는 다양한 인덱스로 변경의 지시를 전파한다. 예로서, 설비는 문서들에 대한 변경을 텍스트 인덱스(1604)로, 설비에 의해 이용되는 스키마들에 대한 변경을 메타데이터 인덱스(1606)로, 문서들의 위치 변경을 핀보드 컬렉션 인덱스(1608)로(예를 들어, 문서들이 이동될 때 링크들을 고정하기 위해), ACP들에 대한 변경을 액세스 제어 인덱스(1610)로, 그리고 파일들의 위치에 관한 변경을 URL 분석 인덱스(1612)로 전파할 수 있다. 다양한 실시예에서, 복제 엔진(도시되지 않음)은 변경들을 변경 저널에서 서버와 같은 네트워크(1614) 상의 컴퓨팅 장치로 복제할 수 있으며, 따라서 정보는 네트워크들을 통해 최신으로 유지될 수 있게 된다.
인덱스들로부터의 정보가 필요함에 따라 그리고 필요할 때, 또는 다양한 다른 시간에, 설비는 인덱스들에 의해 포함 또는 지시되는 정보를 병합하여 결과(1616)를 생성한다. 이러한 정보를 검색 제공자에 의해 제공되는 정보와 조합함으로써, 설비는 검색 결과를 생성한다. 일례로, 설비는 인덱스들에 의해 포함 또는 지시되는 정보를 RSS 검색 제공자(1618), 웹 검색 제공자(1620) 또는 하나 이상의 삼자 검색 제공자(1622)에 의해 제공되는 정보와 병합할 수 있다. 설비는 다양한 통신 프로토콜을 이용하여 RSS, 웹, 또는 다른 검색 제공자들과 통신할 수 있다.
설비는 검색 결과들을 내부 포맷 또는 RSS와 같은 정규 포맷으로 저장할 수 있다.
다양한 실시예에서, 설비는 변환(1624)을 적용하여 검색 결과를 변환한다. 변환은 HTML 문서(1626)와 같은 임의의 다양한 유형의 문서를 생성할 수 있다.
도 17은 설비에 의해 이용되는 다양한 컴포넌트를 나타내는 블록도이다. 다양한 실시예에서, 이들 컴포넌트는 단독으로 또는 결합하여 이용되어, 설비의 소정 기능들을 이용할 수 있다. 설비는 또한 여기에 도시되거나 설명되지 않은 추가 컴포넌트를 이용할 수 있다.
설비를 이용하여 애플리케이션들이 광범위한 정보를 로딩 또는 조작하는 것을 가능하게 하기 위하여, 통합 데이터 액세스 컴포넌트(1702)는 상이한 데이터 소스에 저장되고 상이한 데이터 구조를 갖는 데이터와 함께 기능한다. 통합 데이터 액세스 컴포넌트는 데이터의 추가 소스 및 유형과 기능할 수 있는 방식으로 확장될 수 있다.
쿼리 수집 컴포넌트(1704)는 상이한 소스들로부터 쿼리 결과들을 조합하여 통합 결과를 생성한다. 쿼리 수집 컴포넌트는 다수의 쿼리 프로토콜 및 동기 또는 비동기 응답과 함께 기능하며, 결과에 기초하여 내부 포맷으로 초록들을 제공할 수 있다.
관계형 인덱스 컴포넌트(1706)는 정보 항목들에 기초하여 관계형 인덱스를 구축한다. 인덱스는 애플리케이션 또는 사용자가 인덱스된 데이터 상에 완전한 텍스트 쿼리를 수행하는 것을 가능하게 하며, 따라서 백 링크들 및 관련 링크들의 이용을 가능하게 한다. 백 링크는 항목이 핀잉되는 핀보드 컬렉션을 식별하는 링크이다.
액세스 제어 엔진(1708)은 데이터베이스(예를 들어, 핀보드 컬렉션 및 정보 항목에 대한 ACP를 저장하는 데이터베이스)에 기초하여 액세스 제어 흐름 그래프를 생성하고, 생성된 액세스 제어 흐름 그래프에 기초하여 ACP를 추적하고 갱신한다. 이 컴포넌트는 설비가 핀보드 컬렉션 및 정보 항목에 대한 허가를 설정 또는 재설정하여 적당한 사용자들이 정보를 보고, 수정하고, 공유할 수 있게 함으로써 풍부한 협동 사용자 모델을 제공하는 것을 가능하게 한다.
뷰잉 및 저작 프레임워크(1710)는 검색 결과들로부터 사용자 인터페이스를 생성하고 편집을 가능하게 한다. 일례로, 뷰잉 및 저작 프레임워크는 XML을 이용하여 조합된 초록들을 변환함으로써 사용자 인터페이스를 생성할 수 있다. 사용자 인터페이스는 주석을 수신하기 위한 텍스트 영역을 가질 수 있다.
복제 컴포넌트(1712)는 설비가 무결함 오프라인 및 온라인 능력을 제공하는 것을 가능하게 한다. 이것은 서버들 간에 그리고 클라이언트와 서버 간의 복제를 가능하게 한다. 일례로, 이것은 서버들 간에 핀보드 컬렉션 및 정보 항목을 복제할 수 있으며, 따라서 상이한 도메인의 사용자들이 정보에 액세스할 수 있게 한다. 복제 컴포넌트는 서버와 클라이언트 간에 핀보드 컬렉션 및 정보 항목을 복제하여 클라이언트가 서버로부터 분리될 때 사용자가 정보를 결함 없이 볼 수 있게 한다. 일례로, 사용자는 다양한 핀보드 컬렉션이 오프라인으로 이용 가능하게 되도록 지시할 수 있다. 이것이 행해질 때, 핀잉된 정보 항목 및 핀보드 컬렉션(및 이 핀보드 컬렉션에 핀잉된 정보 항목)도 오프라인으로 이용 가능하게 될 수 있다. 데이터베이스 검색의 결과, 이메일, 또는 다른 정보도 정적인 방식으로 오프라인으로 이용 가능하게 될 수 있다. 복제 컴포넌트는 복제를 행할 때 ACP가 적절히 실시되는 것을 보증한다. 클라이언트가 서버에 재접속될 때, 복제 컴포넌트는 오프라인 동안에 이루어지는 주석들과 같이 오프라인 갱신을 서버에 동기시킬 수 있다.
쉽게 이해할 수 있듯이, 설비는 이메일의 어드레스 가능성을 인터넷 브라우저의 네비게이션 용이성 및 검색의 간편성과 조합하여 정보 교환을 가능하게 한다. 설비는 사용자들이 갱신 가능하고 검색 가능하며 정보 항목에 대한 링크를 포함하는 핀보드 컬렉션을 포함하는 개인 정보 네트워크를 생성하는 것을 가능하게 한다. 이들 핀보드 컬렉션 및 정보 항목은 보안 방식으로 주석이 첨부되고 공유될 수 있다.
다양한 실시예에서, 설비는 다수의 검색이 특정 정보 항목을 찾는 것을 가능하게 하는 것을 포함하여, 다양한 용어를 이용하여 다양한 데이터 유형(예를 들어, 이메일, 데이터베이스, 파일 시스템 등) 및 데이터 소스(인터넷, 인트라넷, 퍼스널 컴퓨팅 장치 등)를 통한 검색을 가능하게 한다.
설비는 또한 특정 위치를 참조하지 않고도 정보 항목 및 핀보드 컬렉션이 쉽게 찾아지는 것을 가능하게 한다. 사용자는 URL, 명칭, 설명, 콘텐츠 등과 같은 찾고 있는 정보에 관한 소정의 정보를 제공할 수 있으며, 사용자가 정보를 보기 위한 충분한 허가를 갖는 경우에 설비는 정보를 빠르게 찾고 검색한다. 설비는 또한 사용자가 다른 사용자들과 정보를 공유하기 위한 충분한 허가를 갖는 경우에 사용자가 그것을 행하는 것을 가능하게 한다.
다양한 실시예에서, 설비는 핀보드 컬렉션에서 역방향 및 순방향 링크를 결정할 수 있는 능력을 제공한다. 일례로, 설비는 특정 정보 항목이 어느 핀보드 컬렉션에 핀잉되는지를 결정할 수 있다. 설비는 설비가 핀보드 컬렉션 및 정보 항목을 추적하는 데 이용하는 데이터베이스에 기초하여 이들 관계를 결정할 수 있다.
다양한 실시예에서, 배경 에이전트는 핀보드 컬렉션의 생성자 또는 수신자에게 핀보드 컬렉션을 생성하는 데 사용된 쿼리에 매칭되는 정보 항목들이 수정 또는 추가되었음을 통지한다. 이어서, 생성자 또는 수신자는 옵션으로, 핀보드 컬렉션을 수정 또는 추가된 정보 항목을 포함하도록 수정할 수 있다. 이들 실시예에서, 배경 에이전트는 저장된 쿼리들을 간헐적으로 수행할 수 있다. 대안으로, 배경 에이전트는 정보 항목에 대한 변경에 관한 이벤트를 수신할 수 있다. 이어서, 배경 에이전트는 예를 들어 이메일 메시지를 전송함으로써 생성자, 수신자 또는 양자에게 통지할 수 있다.
다양한 실시예에서, 설비는 정보 항목 또는 정보 항목 또는 핀보드 컬렉션에 관한 ACP가 변경되는 것을 검출할 때 다양한 동작을 호출한다. 일례로, 핀보드 컬렉션이 특정 사용자 그룹에 속하는 사용자와 공유됨을 검출한 때, 설비는 관리 사용자에게 공유를 수락할 것을 요구하는 작업 흐름 애플리케이션을 호출한다. 설비는 다양한 수단을 이용하여 콘텐츠 및 ACP에 대한 변경을 검출할 수 있다. 예로서, 설비는 변경 통지를 수신하도록 운영 체제에 등록하거나, 운영 체제의 변경 로그를 폴링할 수 있다. 설비는 변경을 검출한 때 설비에 등록된 작업 흐름 컴포넌트를 호출한다.
다양한 실시예에서, 설비는 정보 항목, 핀보드 컬렉션 및 허가의 하나 이상의 인덱스를 생성한다. 인덱스는 설비가 지정된 허가 집합을 갖는 정보 항목을 발견하는 것을 가능하게 한다. 일례로, 인덱스는 설비가 주어진 사용자와 공유된 모든 정보 항목을 발견할 수 있게 한다.
다양한 실시예에서, 설비는 검색의 문서 저작 캔버스와의 통합을 가능하게 한다. 이들 실시예에서, 저작 애플리케이션의 사용자는 애플리케이션의 콘텍스트 외측의 검색 제공자를 이용하여 검색을 수행하고, 검색 결과를 애플리케이션이 작성하고 있는 문서에 쉽고 빠르게 삽입할 수 있다. 따라서, 예를 들어, 워드 프로세싱 문서 또는 스프레드시트의 사용자는 단일 동작을 이용하여 검색을 수행하고 검색 결과를 사용자가 작성하고 있는 문서 또는 스프레드시트에 추가할 수 있다.
다양한 실시예에서, 설비는 복제를 이용하여 확장될 수 있다. 일례로, 설비는 핀보드 컬렉션 및 그 기반 데이터를 다수의 인터넷 도메인에 위치하는 서버와 같은 다수의 서버에 복제할 수 있다. 핀보드 컬렉션 및 그 기반 데이터가 복제될 때, 도메인의 사용자는 핀보드 컬렉션을 공유 또는 수신하기 위해 다른 도메인의 서버에 액세스할 필요가 없다.
다양한 실시예에서, 설비는 생성자 또는 수신자에 의해 제공된 검색 기준을 이용하여 검색할 때 자동으로 검색 제공자를 발견하며, 옵션으로 검색 제공자를 자동으로 설치한다. 검색 기준을 이용하여 찾은 정보는 검색 제공자를 어디로부터 어떻게 설치할 것인지를 식별한다.
다양한 실시예에서, 설비는 "컨테이너"로서 간주될 수 있는 다양한 유형의 문서와 함께 기능한다. 컨테이너는 다른 문서를 포함하거나 다른 문서를 참조하는 문서이다. 컨테이너의 예는 예를 들어 매체 재생 리스트, 다른 파일 및 컴퓨팅 시스템 상에 다른 파일을 설치하기 위한 명령을 포함하는 설치 파일 등을 포함한다. 컨테이너는 핀보드 컬렉션과 유사하므로, 설비는 임의 유형의 컨테이너와 함께 작동한다. 사용자는 컨테이너에 대한 허가를 조작함으로써 컨테이너 내의 파일들에 대한 액세스를 제어할 수 있다. 일례로, 사용자가 수신자가 컨테이너에 대한 뷰 액세스를 가져야 하는 것으로 지시할 때, 설비는 또한 컨테이너에 의해 포함 또는 지시되는 모든 파일에 대한 뷰 액세스를 제공한다. 또한, 컨테이너가 다른 컨테이너를 포함할 때, 설비는 포함된 컨테이너에 의해 지시되는 파일들에 대해 허가를 반복 적용할 수 있다. 또한, 설비는 제삼자가 컨테이너에 의해 포함된 정보 항목에 의해 지시되는 논리를 제공함으로써 설비를 확장하는 것을 가능하게 하므로, 설비는 컨테이너에 의해 포함된 파일의 추가 파일 포맷을 자동으로 인식할 수 있다. 다양한 실시예에서, 설비는 사용자가 핀보드 컬렉션(예를 들어, 컨테이너)이 허가를 상속받는 특정 정보 항목을 지시하는 것을 가능하게 할 수 있다.
다양한 실시예에서, 설비는 사용자가 이용할 수 있는 정보 항목 및 핀보드 컬렉션에 기초하여 "개인용 포탈"을 생성하는 것을 가능하게 한다. 일례로, 사용자는 핀보드 컬렉션이 원격 이용을 위해 이용될 수 있음을 지시할 수 있다. 핀보드 컬렉션이 원격 이용을 위해 가능하게 될 때, 사용자는 마이크로소프트 익스체인지 서버 상에 저장된 이메일에 원격적으로 액세스하기 위해 마이크로소프트 아웃룩 웹 액세스를 이용하는 것과 유사한 방식으로 원격 컴퓨팅 장치로부터 개인용 포탈에 액세스할 수 있다.
다양한 실시예에서, 설비는 문서에 기초하여 관계형 인덱스를 생성하기 위한 범용 모델을 제공한다. 관계형 인덱스는 검색 제공자에 의해 구성된 풀 텍스트 인덱스와 함께, 설비가 유사한 정보를 표현하는 다양한 스키마로부터 추출되는 데이터를 생성하고 유지하는 것을 가능하게 한다. 일례로, 설비는 대쉬보드, 재생 리스트, html 파일, 전개 파일 등과 같은 링크들의 컬렉션인 임의 유형의 문서로부터 도출되는 정보를 이용하여 링크 인덱스를 생성한다. 설비는 링크 인덱스를 이용하여, 예를 들어 문서들의 관계를 결정함으로써 전술한 백 링크 및 관련 링크를 생성할 수 있다. 이러한 범용 모델은 또한 콘택 정보 테이블 또는 애플리케이션 셋업 테이블과 같은 다른 주문형 인덱스를 생성하는 데 이용될 수 있다. 콘택 정보 테이블은 예를 들어 경량 디렉토리 액세스 프로토콜 서버를 채우거나 공유 문서에 기초하여 콘택들의 리스트를 생성하는 데 사용될 수 있다. 애플리케이션 셋업 테이블은 예를 들어 운영 체제 특징이 소프트웨어 프로그램을 추가 또는 삭제하는 데 사용할 수 있는 애플리케이션 셋업 저장소를 생성하는 데 사용될 수 있다.
다양한 실시예에서, 설비는 이메일의 어드레스 가능성, 인터넷 브라우저의 네비게이션 용이성, 및 검색의 간편성을 조합하여, 협동을 위해 공유, 갱신 및 이용될 수 있는 정보들의 컬렉션을 생성한다. 협동은 정보 항목에 관한 액세스 제어 허가를 정의함으로써 개시되고 제어될 수 있다.
전술한 설명으로부터 명백하듯이, 설비는 생성자가 주요 네비게이션 메타포어로서 검색을 이용하여 핀보드 컬렉션(예를 들어, 포탈)을 생성하는 것을 가능하게 한다. 종래의 호스팅된 시스템과 달리, 설비는 포탈이 엔트리 포인트 없이 존재하는 것을 가능하게 한다. 즉, 수신자는 포탈의 위치를 필요로 하지 않으며, 심지어 특정 포탈이 그것을 볼 수 있도록 존재하는지를 알 필요도 없다. 설비는, 포탈에 포함된 정보 항목 및 핀보드 컬렉션이 쉽게 추가, 제거 또는 수정될 수 있다는 점에서 포탈을 체계적으로 생성하고 관리한다. 또한, 종래의 호스팅된 시스템과 달리, 관리자는 어느 사용자가 액세스를 가져야 하고 어느 사용자가 갖지 않아야 하는지를 지시할 필요가 없다.
설비는 또한 "공유 박스"로서 알려진 개념을 가능하게 한다. 공유 박스는 하나 이상의 핀보드 컬렉션을 포함하며, 그의 사용자가 핀보드 컬렉션으로부터 어떤 데이터가 표시, 조직 또는 조작될지를 제어하는 것을 가능하게 한다. 사용자는 소정의 핀보드 컬렉션들이 정보 항목들을 표시해야 하는 반면 다른 핀보드 컬렉션들은 단지 "축소된" 상태로 리스트되어야 한다는 것을 지시할 수 있다. 이어서, 사용자는 축소된 핀보드 컬렉션을 펼쳐서 그의 콘텐츠를 표시할 수 있다. 사용자는 지정된 속성을 갖는 핀보드 컬렉션 또는 정보 항목을 포함하는 영역들을 지시함으로써 공유 박스를 조직할 수 있다. 일례로, 공유 박스는 지정된 시간 프레임 동안 공유되는 모든 핀보드 컬렉션을 표시하는 영역, 특정 사용자와 공유되는 핀보드 컬렉션을 표시하는 다른 영역 등을 가질 수 있다. 몇몇 실시예에서, 설비는 공유 박스들을 가진 "AJAX" 사용자 인터페이스 설계를 이용할 수 있다. AJAX는 서버와 통신하여 사용자 인터페이스를 동적으로 갱신하는 AJAX 엔진을 이용함으로써 사용자 인터페이스를 정의하기 위한 아키텍처를 정의한다. 사용자는 공유 박스에 표시되는 핀보드 컬렉션 상에 다양한 동작을 취할 수 있다. 예로서, 사용자는 공유 핀보드 컬렉션에 응답하고, 수신 또는 생성된 핀보드 컬렉션을 다른 사용자와 공유하고, 핀보드 컬렉션을 제거하고, 핀보드 컬렉션에 대한 허가를 지시하는 것 등을 행할 수 있다.
이 분야의 전문가는 전술한 설비가 다양한 방법으로 확장될 수 있음을 쉽게 이해할 수 있을 것이다. 일례로, 설비는 콘택 정보와 같이 정보 항목들에 포함된 다양한 유형의 정보에 대한 인덱스를 생성하고, 애플리케이션 또는 서비스(예를 들어, 공유 콘택 애플리케이션 또는 경량 디렉토리 액세스 프로토콜 서버)를 통해 데이터에 액세스하기 위한 API 또는 사용자 인터페이스를 제공할 수 있다. 몇몇 실시예에서, 설비는 그러한 애플리케이션에 대한 사용자 인터페이스를 제공하도록 적응될 수 있다.
다양한 실시예에서, 설비는 파일 시스템을 이용하여 정보 항목 및 다른 개체를 저장한다. 이들 실시예에서, 기반 운영 체제는 이들 정보 항목 또는 개체가 변경될 때(예를 들어, 이들이 수정, 생성, 삭제 등이 될 때) 설비에 통지한다. 설비는 정보 항목 및 개체와 연관된 인덱스를 생성하고 관리하며, 운영 체제로부터 이들 통지를 수신할 때, 인덱스를 적절히 수정한다. 다른 애플리케이션 및 서비스도 인덱스 및 기반 정보 항목 또는 개체를 이용할 수 있다. 일례로, 메시징 클라이언트 프로그램(예를 들어, 마이크로소프트 아웃룩)은 이메일을 구성 또는 검토하기 위해 파일 시스템에 위치하는 파일들을 이용할 수 있다. 이메일 메시지(또는 일반적으로 정보 항목 및 개체)를 파일에 저장함으로써, 설비는 오프라인 사용을 가능하게 한다.
다양한 실시예에서, 설비는 사용자와 공유되는 모든 정보에 대해 쿼리할 단일 장소를 생성한다. 이것은 설비 프로그램이 동일 공유 데이터에 대한 새로운 인덱스를 생성하고 의미 있는 방식으로 데이터를 검색하기 위해 애플리케이션 인터페이스를 노출시키는 것을 가능하게 한다.
설비는 또한 기업용의 다른 애플리케이션 고유 "서버"를 생성하도록 쉽게 확장될 수 있다. 일례로, 설비는 소프트웨어 저장소 서버, 디렉토리 제공자 등을 생성할 수 있다. 소프트웨어 저장소 서버는 다양한 소프트웨어 애플리케이션, 그에 대한 갱신 등을 저장할 수 있다. 사용자가 운영 체제 컴포넌트를 이용하여 프로그램을 추가 또는 설치할 때, 설비는 사용자가 프로그램 또는 갱신을 설치할 충분한 ACP를 갖는지를 쉽게 결정한 후, 설치를 위해 프로그램 또는 갱신을 운영 체제 컴포넌트에 제공할 수 있다. 관리자(또는 충분한 특권을 가진 다른 사용자)는 애플리케이션을 애플리케이션 또는 갱신을 필요로 하는 사용자와 공유할 수 있다. 디렉토리 제공자는 예를 들어 프린터에 관한 정보를 저장할 수 있다. 관리자 또는 사용자는 프린터를 프린터에 대한 액세스를 필요로 하는 사용자와 공유할 수 있다. 사용자가 운영 체제의 컴포넌트를 이용하여 프린터를 추가할 때, 설비는 공유 프린터의 지시를 제공할 수 있다.
특정 예로서, 설비는 기업 또는 사업 소프트웨어의 "스테이징(staged)" 전개 동안에 이용될 수 있다. 컨테이너가 사용자의 컴퓨팅 장치 상에 설치될 파일들의 지시를 포함하는 것으로 가정한다. 이 컨테이너는 사용자들의 클래스들(예를 들어, 초기 채택자, 나중 채택자 등)과 공유되어, 소프트웨어의 전개가 이들 사용자 클래스에 스테이징될 수 있다.
개인화 가능 정보 네트워크는 대안으로 개인용 정보 네트워크 또는 개인화된 정보 네트워크로서 지칭될 수 있다.
다양한 실시예가 전술한 환경과 관련하여 설명되지만, 이 분야의 전문가들은 설비가 단일, 모놀리식 컴퓨터 시스템은 물론, 다양한 방식으로 접속된 컴퓨터 시스템들 또는 유사한 장치들의 다양한 다른 조합을 포함하는 다양한 다른 환경에서 구현될 수 있음을 이해할 것이다.
이 분야의 전문가는 흐름도들이 도시하는 논리 및 명세서가 기술하는 관련 설명이 다양한 방식으로 변경될 수 있음을 이해할 것이다. 예를 들어, 블록들의 순서가 재배열될 수 있고, 논리가 병렬로 수행될 수 있으며, 소정의 논리가 제외되거나 다른 논리가 추가 등이 될 수 있다.
소정의 도면들 및 이들의 설명은 인간 독자에 의해 보다 잘 이해할 수 있도록 설계된 콘텐츠 및 구성을 갖는 테이블을 예시하지만, 이 분야의 전문가들은 정보를 저장하기 위해 설비에 의해 사용되는 실제 데이터 구조들이, 예를 들어 이들이 다른 방식으로 구성될 수 있고, 도시된 것보다 많거나 적은 정보를 포함할 수 있고, 압축 및/또는 암호화될 수 있다는 점 등에서, 도시된 테이블과 다를 수 있다는 것을 이해할 것이다.
사용자 인터페이스는 소정의 사용자 인터페이스 요소와 함께 도시되지만, 이 분야의 전문가들은 사용자 인터페이스 요소들이 재배열되고, 추가 사용자 인터페이스 요소들이 추가되고, 또는 사용자 인터페이스 요소들이 제거될 수 있다는 것을 이해할 것이다. 이 분야의 전문가들은 또한, 설비의 기능에 크게 영향을 미치지 않고 다양한 사용자 인터페이스 요소가 서로 대체될 수 있다는 것을 이해할 것이다.
이 분야의 전문가들은 전술한 설비가 다양한 방식으로 간단하게 적응 또는 확장될 수 있다는 것을 이해할 것이다. 예를 들어, 설비는 다양한 인덱싱 또는 검색 제공자를 이용할 수 있다. 이들 인덱싱 또는 검색 제공자는 사용자의 데스크탑 컴퓨터 상에서, 또는 서버와 같은 원격 컴퓨팅 장치 상에서 동작할 수 있다. 설비는 문서, 웹 로그("블로그"), 웹 페이지, 다양한 소스로부터의 데이터, 이미지, 멀티미디어 등과 같은 다양한 정보 유형과 함께 동작할 수 있다. 위의 설명은 특정 실시예들을 참조하지만, 본 발명의 범위는 이어지는 청구범위 및 그에 기재된 요소들에 의해서만 정해진다.

Claims (183)

  1. 컴퓨팅 장치에 의해 수행되는 공유 가능 핀보드 컬렉션을 생성하기 위한 방법으로서,
    검색을 위한 용어를 정의하는 쿼리의 지시를 수신하는 단계;
    검색 제공자를 이용하여, 기준에 매칭되는 정보 항목에 대한 검색을 수행하는 단계 - 상기 검색에 대한 기준은 상기 쿼리에 기초함 -;
    상기 검색 제공자로부터, 상기 쿼리에 대응하는 결과의 지시를 수신하는 단계 - 상기 결과는 상기 검색을 수행하고 상기 정보 항목을 식별하는 동안 상기 검색 제공자에 의해 생성됨 -;
    정보 항목의 지시를 포함하기 위한 공유 가능 핀보드 컬렉션을 생성하는 단계;
    단일 동작을 통해, 상기 결과를 상기 공유 가능 핀보드 컬렉션에 추가하기 위한 지시를 수신하는 단계; 및
    상기 공유 가능 핀보드 컬렉션을 수신자와 공유하는 단계 - 상기 공유 단계는 상기 생성된 공유 가능 핀보드 컬렉션의 지시를 상기 수신자에게 전송하는 단계를 포함함 -
    를 포함하는 컴퓨팅 장치에 의해 수행되는 공유 가능 핀보드 컬렉션을 생성하기 위한 방법.
  2. 제1항에 있어서, 다수의 검색 제공자를 이용하여, 상기 쿼리에 기초하여 정보 항목들에 대한 검색을 수행하는 단계를 포함하는 방법.
  3. 제1항에 있어서, 상기 결과를 내부 형태로 변환하는 단계를 포함하는 방법.
  4. 제3항에 있어서, 상기 내부 형태는 RSS인 방법.
  5. 제3항에 있어서, 상기 변환 단계는 상기 결과의 초록(extract)을 생성하는 단계를 포함하는 방법.
  6. 제1항에 있어서, 상기 공유 단계는 상기 수신자를 지시하는 단계를 포함하는 방법.
  7. 제1항에 있어서, 상기 공유 단계는 액세스 특권을 지시하는 단계를 포함하는 방법.
  8. 제7항에 있어서, 상기 액세스 특권은 상기 공유 가능 핀보드 컬렉션과 관련되는 방법.
  9. 제1항에 있어서, 다수의 결과를 수신하고, 상기 수신된 다수의 결과의 적어 도 부집합을 상기 생성된 공유 가능 핀보드 컬렉션에 추가하는 단계를 포함하는 방법.
  10. 제9항에 있어서, 다수의 초록이 생성되는 방법.
  11. 제1항에 있어서, 정보 항목과 연관된 주석을 추가하는 단계를 포함하는 방법.
  12. 제1항에 있어서, 상기 공유 단계는 상기 핀보드 컬렉션의 정보 항목들 상에 액세스 제어 허가가 설정되게 하는 방법.
  13. 컴퓨팅 장치에 의해 수행되는 협동을 가능하게 하기 위한 방법으로서,
    정보 항목의 지시를 가진 컬렉션을 생성하는 단계;
    상기 컬렉션 및 정보 항목을 공유할 사용자의 지시를 수신하는 단계; 및
    상기 컬렉션 및 정보 항목을 상기 사용자와 공유하는 단계 - 상기 공유 단계는 상기 사용자가 충분한 액세스 제어 허가를 갖는 것을 보증하는 단계를 포함함 -
    를 포함하는 컴퓨팅 장치에 의해 수행되는 협동을 가능하게 하기 위한 방법.
  14. 제13항에 있어서, 상기 공유 단계는 상기 사용자와 연관된 서버에 대해 상기 정보 항목을 복제하는 단계를 포함하는 방법.
  15. 제13항에 있어서, 상기 공유 단계는 상기 정보 항목 상에 액세스 제어 허가를 설정하는 단계를 포함하는 방법.
  16. 제13항에 있어서, 상기 액세스 제어 허가는 상기 컬렉션 상의 액세스 제어 허가에 의해 지시되는 방법.
  17. 제13항에 있어서, 검색의 결과를 상기 컬렉션에 추가하는 단계를 더 포함하는 방법.
  18. 제13항에 있어서, 상기 추가 단계는 단일 동작에 의해 수행되는 방법.
  19. 제18항에 있어서, 상기 단일 동작은 핀잉인 방법.
  20. 제18항에 있어서, 상기 단일 동작은 메뉴 명령의 선택인 방법.
  21. 제18항에 있어서, 상기 단일 동작은 툴바 버튼의 선택인 방법.
  22. 제13항에 있어서, 상기 공유되는 컬렉션은 상기 컬렉션에 대한 위치를 지시하지 않고 검색될 수 있는 방법.
  23. 제13항에 있어서, 상기 보증 단계는 상기 사용자가 상기 정보 항목에 액세스할 수 있는지를 판정하는 단계를 포함하는 방법.
  24. 제23항에 있어서, 상기 정보 항목이 상기 사용자의 컴퓨팅 장치를 통해 액세스할 수 없기 때문에 상기 사용자가 상기 정보 항목에 액세스할 수 없을 때, 상기 보증 단계는 상기 사용자와 연관된 서버에 대해 상기 정보 항목을 복제하는 단계를 포함하는 방법.
  25. 제23항에 있어서, 상기 사용자가 충분한 액세스 제어 특권을 갖지 못하기 때문에 상기 사용자가 상기 정보 항목에 액세스할 수 없을 때, 상기 컬렉션에서 상기 정보 항목으로 액세스 제어 특권을 전파하는 단계를 더 포함하는 방법.
  26. 제13항에 있어서, 상기 사용자의 클라이언트 컴퓨팅 장치가 상기 컬렉션 및 그의 정보 항목들을 인간 판독가능 형태로 변환하는 방법.
  27. 제13항에 있어서, 상기 컬렉션은 검색의 수행시에 생성되는 방법.
  28. 제27항에 있어서, 상기 검색은 클라이언트 컴퓨팅 장치의 저장 장치의 검색을 포함하는 방법.
  29. 제27항에 있어서, 상기 검색은 네트워크에 접속된 컴퓨팅 장치의 검색을 포함하는 방법.
  30. 제29항에 있어서, 상기 네트워크는 인터넷인 방법.
  31. 제29항에 있어서, 상기 네트워크는 인트라넷인 방법.
  32. 제13항에 있어서, 상기 정보 항목을 클라이언트 컴퓨팅 장치에 대해 복제하는 단계를 더 포함하는 방법.
  33. 제32항에 있어서, 상기 정보 항목은, 상기 클라이언트 컴퓨팅 장치가 네트워크로부터 분리될 때 상기 사용자가 이용할 수 있는 방법.
  34. 제13항에 있어서, 상기 정보 항목을 원격 컴퓨팅 장치를 통해 상기 사용자에게 제공하는 단계를 더 포함하는 방법.
  35. 제13항에 있어서, 상기 컬렉션은 공유된 후에 갱신될 수 있는 방법.
  36. 제13항에 있어서, 상기 사용자는 제1 사용자이고, 제2 사용자가 상기 제1 사 용자와 상기 컬렉션을 공유한 후에 지시될 수 있으며, 이에 따라 상기 제1 및 제2 사용자들 양자가 상기 컬렉션 및 정보 항목에 액세스하는 방법.
  37. 정보를 공유하는 방법을 수행하기 위한 컴퓨터 실행가능 명령들을 구비한 컴퓨터 판독가능 매체로서,
    상기 방법은,
    정보 항목을 포함하는 컬렉션을 수신하는 단계;
    상기 컬렉션을 공유하기 위해 단일 동작을 통해 이루어지는 지시를 수신하는 단계; 및
    상기 컬렉션을 공유하는 단계 - 상기 공유 단계는 상기 컬렉션 및 그의 정보 항목에 관한 액세스 제어 허가를 조작함으로써 상기 컬렉션 및 그의 정보 항목에 대한 액세스를 제공하는 단계를 포함함 -
    를 포함하는 정보를 공유하는 방법을 수행하기 위한 컴퓨터 실행가능 명령들을 구비한 컴퓨터 판독가능 매체.
  38. 제37항에 있어서, 상기 공유 단계는 상기 컬렉션을 공유할 수신자를 선택하는 단계를 포함하는 컴퓨터 판독가능 매체.
  39. 제38항에 있어서, 상기 수신자에 대한 액세스 제어 허가를 지시하는 단계를 더 포함하는 컴퓨터 판독가능 매체.
  40. 제39항에 있어서, 상기 수신자는, 상기 액세스 제어 허가가 공유를 허가할 때 상기 컬렉션을 공유할 수 있는 컴퓨터 판독가능 매체.
  41. 제40항에 있어서, 상기 수신자는 상기 컬렉션을 생성한 생성자에게 주석을 제공함으로써 응답할 수 있는 컴퓨터 판독가능 매체.
  42. 제40항에 있어서, 상기 컬렉션을 생성한 생성자가 다수의 사용자와 상기 컬렉션을 공유하고, 상기 수신자는 상기 생성자 및 상기 다수의 사용자에게 상기 컬렉션 또는 상기 컬렉션의 정보 항목에 관한 주석을 제공함으로써 응답할 수 있는 컴퓨터 판독가능 매체.
  43. 제37항에 있어서, 상기 컬렉션은 상기 공유된 컬렉션의 수신자에 의해 조작될 수 있는 컴퓨터 판독가능 매체.
  44. 제43항에 있어서, 상기 조작은 정보 항목을 추가하는 것인 컴퓨터 판독가능 매체.
  45. 제43항에 있어서, 상기 조작은 정보 항목을 제거하는 것인 컴퓨터 판독가능 매체.
  46. 제43항에 있어서, 상기 조작은 수신자를 추가하는 것인 컴퓨터 판독가능 매체.
  47. 제43항에 있어서, 상기 컬렉션을 공유한 생성자가 상기 조작을 수락 또는 거절할 수 있는 컴퓨터 판독가능 매체.
  48. 제47항에 있어서, 상기 수락 또는 거절은 자동적인 컴퓨터 판독가능 매체.
  49. 제37항에 있어서, 상기 컬렉션은 제1 컬렉션이고, 상기 제1 컬렉션은 상기 제1 컬렉션에 핀잉된 제2 컬렉션의 지시를 포함하는 컴퓨터 판독가능 매체.
  50. 제49항에 있어서, 상기 제1 컬렉션의 액세스 제어 특권은 상기 제2 컬렉션에 적용되는 컴퓨터 판독가능 매체.
  51. 제50항에 있어서, 상기 제1 컬렉션의 액세스 제어 특권은 상기 제2 컬렉션에 핀잉된 정보 항목들에 적용되는 컴퓨터 판독가능 매체.
  52. 제50항에 있어서, 액세스 제어 관계가 전파하는 컴퓨터 판독가능 매체.
  53. 제49항에 있어서, 액세스 제어 관계가 상속되고, 상기 제2 컬렉션의 액세스 제어 특권이 상기 제1 컬렉션에 적용되는 컴퓨터 판독가능 매체.
  54. 제37항에 있어서, 상기 컬렉션은 검색 완료 후에 수신되고, 상기 검색은 검색 제공자에 의해 수행되는 컴퓨터 판독가능 매체.
  55. 제54항에 있어서, 상기 검색은 동적으로 추가되는 검색 제공자에 의해 수행되는 컴퓨터 판독가능 매체.
  56. 제54항에 있어서, 다수의 검색 제공자의 부집합이 상기 검색을 수행하기 위해 선택될 수 있는 컴퓨터 판독가능 매체.
  57. 제54항에 있어서, 검색 제공자가 검색에 이용할 추가 검색 제공자를 지시할 수 있는 컴퓨터 판독가능 매체.
  58. 제54항에 있어서, 검색 제공자가 상기 검색에 사용되는 쿼리에 기초하여 검색을 위해 자동으로 선택될 수 있는 컴퓨터 판독가능 매체.
  59. 제54항에 있어서, 검색 제공자가 사용자와 공유될 수 있는 컴퓨터 판독가능 매체.
  60. 제54항에 있어서, 다수의 검색 제공자로부터의 결과들이 통합 뷰 내에 제공되는 컴퓨터 판독가능 매체.
  61. 제60항에 있어서, 상기 통합 뷰는 상이한 유형의 정보 항목들을 포함하고, 각 유형의 정보 항목에 대응하는 컴포넌트를 이용하여 상기 정보 항목에 대한 뷰를 생성하는 컴퓨터 판독가능 매체.
  62. 제37항에 있어서, 상기 컬렉션은 쿼리 용어들의 집합을 이용한 쿼리에 기초하여 검색을 완료한 후에 수신되고, 상기 수신은 쿼리 용어들의 부집합의 지시의 수신을 포함하는 컴퓨터 판독가능 매체.
  63. 제62항에 있어서, 상기 검색에 의해 찾은 정보 항목들은 이들이 상기 지시된 쿼리 용어들의 부집합과 매칭되는 경우에만 제공되는 컴퓨터 판독가능 매체.
  64. 제37항에 있어서, 상기 공유된 컬렉션 및 상기 다수의 정보 항목 중 하나에 관한 응답들을 포함하는 갱신된 컬렉션을 보는 단계를 포함하는 컴퓨터 판독가능 매체.
  65. 제37항에 있어서, 상기 공유된 컬렉션은 공유 박스에 추가되는 컴퓨터 판독 가능 매체.
  66. 제65항에 있어서, 상기 다수의 정보 항목이 표시되는 컴퓨터 판독가능 매체.
  67. 제65항에 있어서, 상기 공유 박스는 상기 컬렉션과 연관된 속성들에 기초하여 그가 표시하는 정보를 체계화하는 컴퓨터 판독가능 매체.
  68. 제37항에 있어서, 상기 컬렉션을 공유 박스에 배치하고 상기 컬렉션 상에 취할 동작의 지시를 수신하는 단계를 더 포함하는 컴퓨터 판독가능 매체.
  69. 정보 공유 방법을 수행하기 위한 컴퓨터 실행가능 명령들을 구비한 컴퓨터 판독가능 매체로서,
    상기 방법은,
    정보 항목을 포함하는 컬렉션을 수신하는 단계;
    상기 컬렉션을 다른 사용자와 공유하기 위한 지시를 수신하는 단계; 및
    상기 컬렉션을 공유하는 단계 - 상기 공유 단계는 상기 컬렉션 및 그의 정보 항목에 대한 액세스를 제공하는 단계를 포함함 -
    를 포함하는 정보 공유 방법을 수행하기 위한 컴퓨터 실행가능 명령들을 구비한 컴퓨터 판독가능 매체.
  70. 제69항에 있어서, 상기 정보 항목에 관한 주석을 수신하는 단계를 더 포함하는 컴퓨터 판독가능 매체.
  71. 제70항에 있어서, 상기 공유 단계는 상기 다른 사용자로부터 검색 쿼리를 수신하는 단계를 포함하고, 상기 검색 쿼리는 상기 주석과 연관된 검색 용어를 포함하는 컴퓨터 판독가능 매체.
  72. 컴퓨팅 장치에 의해 수행되는 문서에 적용할 허가를 컴퓨팅하기 위한 방법으로서,
    컬렉션의 지시 및 상기 컬렉션에 추가될 문서를 수신하는 단계 - 상기 컬렉션은 문서들 및 다른 컬렉션들의 지시를 포함함 -; 및
    상기 문서에 대해 명시적으로 정의된 허가와 상기 컬렉션에 관한 허가를 조합함으로써 상기 문서에 적용할 허가를 컴퓨팅하는 단계
    를 포함하는 컴퓨팅 장치에 의해 수행되는 문서에 적용할 허가를 컴퓨팅하기 위한 방법.
  73. 제72항에 있어서, 상기 컬렉션과 상기 문서 간의 관계가 허가를 전파하도록 지시하는 방법.
  74. 제73항에 있어서, 상기 허가는 쿼리에 기초하여 전파되는 방법.
  75. 제74항에 있어서, 상기 컬렉션은 상기 전파되는 허가에 기초하여 동적으로 컴퓨팅되는 방법.
  76. 제74항에 있어서, 상기 쿼리는 검색 용어를 포함하는 문서를 정의하는 방법.
  77. 제72항에 있어서, 상기 컬렉션에 관한 허가는 상기 컬렉션이 상속 관계를 갖는 항목에 관한 허가에 기초하고, 상기 항목은 컬렉션 및 문서를 포함하는 방법.
  78. 제72항에 있어서, 상기 문서는 문서 컬렉션에 핀잉되기 전에는 명시적인 허가를 갖지 않으며, 상기 핀잉은 상기 문서와 상기 문서 컬렉션 간의 관계를 지시하는 방법.
  79. 제72항에 있어서, 상기 컬렉션에 포함되는 문서는 다른 컬렉션인 방법.
  80. 제72항에 있어서, 상기 컬렉션은 핀보드 컬렉션이고, 상기 컬렉션에 포함되는 문서는 정보 항목인 방법.
  81. 제72항에 있어서, 상기 컬렉션이 최상위 컬렉션인지를 판정하는 단계를 더 포함하고, 컬렉션이 다른 컬렉션에 의해 포함되지 않을 때 최상위인 방법.
  82. 제72항에 있어서, 상기 컬렉션의 양태가 변경될 때 컬렉션에 대한 허가를 컴퓨팅하는 단계를 포함하는 방법.
  83. 제82항에 있어서, 상기 양태는 상기 컬렉션에 핀잉된 항목의 추가인 방법.
  84. 제72항에 있어서, 상기 컬렉션에 대한 변경을 모니터링하고, 상기 컬렉션에 관한 허가가 변경될 때, 상기 컬렉션과 연관된 문서에 적용할 허가를 컴퓨팅하는 단계를 더 포함하는 방법.
  85. 제84항에 있어서, 상기 컬렉션에 관한 허가가 변경될 때 상기 컬렉션에 관한 허가에 대한 변경을 복제하는 단계를 포함하는 방법.
  86. 제72항에 있어서, 허가가 상기 컬렉션에서 상기 문서로, 또는 상기 문서에서 상기 컬렉션으로 흐를 수 있는 방법.
  87. 제86항에 있어서, 허가 흐름 그래프를 생성하는 단계를 더 포함하는 방법.
  88. 제72항에 있어서, 상기 컬렉션을 사용자와 공유하는 단계를 더 포함하는 방법.
  89. 제88항에 있어서, 허가가 상기 사용자와 관련하여 공유된 컬렉션에 적용되는 방법.
  90. 제89항에 있어서, 상기 사용자와 관련하여 공유된 컬렉션에 적용되는 허가는 상기 컬렉션을 공유한 사용자가 이용 가능한 허가와 다른 방법.
  91. 제72항에 있어서, 상기 컬렉션을 공유할 사용자의 지시를 수신하고, 상기 컴퓨팅된 허가를 상기 문서에 적용하는 단계를 더 포함하는 방법.
  92. 액세스 제어 허가를 적용하는 방법을 수행하기 위한 컴퓨터 실행가능 명령들을 구비한 컴퓨터 판독가능 매체로서,
    상기 방법은,
    액세스 제어 허가를 수정할 항목의 지시를 수신하는 단계;
    상기 지시된 항목에 관한 항목들의 집합을 결정하는 단계;
    상기 지시된 항목과 상기 결정된 항목들의 집합 간의 관계들의 집합을 캐싱하는 단계;
    상기 지시된 항목에 대한 액세스 제어 허가를 컴퓨팅하는 단계; 및
    상기 컴퓨팅된 액세스 제어 허가가 상기 지시된 항목 상에 실제로 적용되는 액세스 제어 허가와 다를 때 상기 지시된 항목에 상기 컴퓨팅된 액세스 제어 허가 를 적용하는 단계
    를 포함하는 액세스 제어 허가를 적용하는 방법을 수행하기 위한 컴퓨터 실행가능 명령들을 구비한 컴퓨터 판독가능 매체.
  93. 제92항에 있어서, 상기 지시된 항목은 핀보드 컬렉션인 컴퓨터 판독가능 매체.
  94. 제92항에 있어서, 상기 지시된 항목은 정보 항목인 컴퓨터 판독가능 매체.
  95. 제92항에 있어서, 상기 관계는 데이터베이스에 캐싱되는 컴퓨터 판독가능 매체.
  96. 제92항에 있어서,
    상기 컴퓨팅하는 단계는,
    상기 지시된 항목에 대해 명시적으로 정의된 액세스 제어 허가를 검색하는 단계;
    상기 지시된 항목에 액세스 제어 허가를 전파하는 항목들의 집합을 결정하는 단계;
    상기 지시된 항목이 액세스 제어 허가를 상속받는 항목들의 집합을 결정하는 단계; 및
    상기 지시된 항목에 대해 명시적으로 정의된 액세스 제어 허가, 상기 지시된 항목에 액세스 제어 허가를 전파하는 항목들의 집합 각각의 액세스 제어 허가, 및 상기 지시된 항목이 액세스 제어 허가를 상속받는 항목들의 집합 각각의 액세스 제어 허가 사이에서 논리 "or" 연산을 수행하는 단계
    를 포함하는 컴퓨터 판독가능 매체.
  97. 제96항에 있어서, 상기 지시된 항목이 액세스 제어 허가를 전파하는 상기 결정된 항목들의 집합 중 하나에 대한 액세스 제어 허가를 다시 컴퓨팅하는 단계를 더 포함하는 컴퓨터 판독가능 매체.
  98. 제92항에 있어서, 상기 컴퓨팅하는 단계는 데이터베이스로부터 액세스 제어 허가들의 집합을 검색하는 단계를 포함하는 컴퓨터 판독가능 매체.
  99. 제92항에 있어서, 상기 지시된 항목은 핀보드 컬렉션이고, 상기 결정된 항목들의 집합 중 한 항목이 정보 항목인 컴퓨터 판독가능 매체.
  100. 제92항에 있어서, 상기 지시된 항목은 멀티미디어 파일의 지시를 포함하는 재생 리스트인 컴퓨터 판독가능 매체.
  101. 제92항에 있어서, 상기 지시된 항목은 설치 파일이고, 상기 결정된 항목들의 집합 중 한 항목은 설치될 파일인 컴퓨터 판독가능 매체.
  102. 허가를 전파하기 위한 시스템으로서,
    허가들, 사용자들 및 개체들 사이의 연관성을 저장하는 데이터베이스;
    개체에 관한 허가들이 변경되었음을 검출하고, 허가들이 변경된 상기 개체와 연관된 다른 개체들에 대한 허가를 계산하고, 계산된 허가에 기초하여 상기 다른 개체들에 관한 허가를 재설정하는 허가 컴포넌트; 및
    상기 개체들을 공유하는 사용자들과 연관된 서버들에 개체들을 복제하는 복제 컴포넌트
    를 포함하는 허가를 전파하기 위한 시스템.
  103. 제102항에 있어서, 상기 허가가 변경된 개체는 핀보드 컬렉션에 핀잉되는 정보 항목이고, 상기 허가가 재설정되는 다른 개체들은 상기 핀보드 컬렉션에 핀잉되는 정보 항목들인 시스템.
  104. 제102항에 있어서, 상기 개체들은 파일 시스템 내의 파일인 시스템.
  105. 제102항에 있어서, 상기 개체들은 전자 메일 메시지인 시스템.
  106. 제102항에 있어서, 상기 개체들은 데이터베이스에 저장되는 시스템.
  107. 제102항에 있어서, 액세스 제어 제한이 상기 개체들에 설정될 수 있는 시스템.
  108. 제102항에 있어서, 상기 데이터베이스는 핀보드 컬렉션 및 정보 항목들에 관한 정보를 저장하는 데이터베이스와 연관되는 시스템.
  109. 제102항에 있어서, 상기 복제 컴포넌트는 상기 개체에 관한 허가가 변경될 때 복제를 위해 개체들을 선택하는 시스템.
  110. 제102항에 있어서, 상기 허가 컴포넌트는 또한, 개체가 컨테이너 개체로부터 언핀잉되었음을 검출하고, 상기 개체에 대한 허가를 다시 컴퓨팅하는 시스템.
  111. 제102항에 있어서, 2개의 개체가 서로 관계를 가지며, 하나의 개체에 대한 허가 변경이 다른 하나의 개체에 자동으로 적용되는 시스템.
  112. 제102항에 있어서, 양 개체가 서로로부터 허가를 상속받는 시스템.
  113. 제102항에 있어서, 상기 허가 컴포넌트가 개체에 대한 허가를 변경할 때, 작업 흐름 컴포넌트가 작업 흐름 관련 동작을 취하는 시스템.
  114. 제102항에 있어서, 상기 복제 컴포넌트는 개체를, 상기 개체를 저장하는 서버에 방화벽을 통해 접속된 서버에 복제하는 시스템.
  115. 제102항에 있어서, 개체가 서버에 복제될 때, 상기 개체에 관한 허가도 상기 서버에 복제되는 시스템.
  116. 속성을 전파하는 방법을 수행하기 위한 컴퓨터 실행가능 명령들을 갖는 컴퓨터 판독가능 매체로서,
    상기 방법은,
    속성을 수정할 핀보드 컬렉션의 지시를 수신하는 단계;
    상기 지시된 핀보드 컬렉션에 관련된 정보 항목들 및 핀보드 컬렉션들의 집합을 결정하는 단계;
    상기 지시된 핀보드 컬렉션과 상기 결정된 정보 항목들 및 핀보드 컬렉션들의 집합 간의 관계들의 집합을 캐싱하는 단계;
    상기 집합 내의 정보 항목들에 상기 속성을 적용하는 단계; 및
    상기 집합 내의 각 핀보드 컬렉션에 대해 상기 방법을 반복 수행하는 단계
    를 포함하는 속성을 전파하는 방법을 수행하기 위한 컴퓨터 실행가능 명령들을 갖는 컴퓨터 판독가능 매체.
  117. 제116항에 있어서, 상기 속성은 버전 로킹 속성인 컴퓨터 판독가능 매체.
  118. 컴퓨팅 장치에 의해 수행되는 사용자들 간의 협동을 가능하게 하기 위한 방법으로서,
    제1 사용자로부터 제2 사용자와 공유될 정보 항목의 지시를 수신하는 단계 - 상기 정보 항목은 핀보드 컬렉션과 연관됨 -;
    상기 제1 사용자로부터 상기 제2 사용자의 지시를 수신하는 단계;
    상기 제2 사용자와 연관된 서버 컴퓨팅 장치를 결정하는 단계; 및
    상기 제2 사용자와 연관된 서버 컴퓨팅 장치가 상기 제1 사용자와는 연관되지 않을 때, 상기 지시된 정보 항목을 상기 결정된 서버 컴퓨팅 장치에 복제하는 단계
    를 포함하는 컴퓨팅 장치에 의해 수행되는 사용자들 간의 협동을 가능하게 하기 위한 방법.
  119. 제118항에 있어서, 상기 정보의 지시는 단일 동작을 이용하여 제공되는 방법.
  120. 제119항에 있어서, 상기 단일 동작은 상기 정보 항목을 상기 핀보드 컬렉션에 핀잉하는 것인 방법.
  121. 제118항에 있어서, 상기 제2 사용자의 지시는 단일 동작을 이용하여 제공되는 방법.
  122. 제121항에 있어서, 상기 단일 동작은 상기 정보 항목이 핀잉되는 핀보드 컬렉션을 공유하도록 지시하는 것인 방법.
  123. 제118항에 있어서, 상기 정보 항목은 공유시에 호스팅된 포탈과 연관되는 방법.
  124. 제118항에 있어서, 상기 제1 사용자에 의해 제공되는 검색 용어에 대응하는 정보 항목들을 검색하는 단계를 포함하는 방법.
  125. 제124항에 있어서, 상기 검색 단계는 다수의 검색 제공자를 이용하는 단계를 포함하는 방법.
  126. 제125항에 있어서, 상기 검색 제공자는 적어도 클라이언트 컴퓨팅 장치 검색 제공자를 포함하는 방법.
  127. 제126항에 있어서, 사용자가 상기 클라이언트 컴퓨팅 장치 검색 제공자를 이용하여 정보 항목들을 찾음으로써 개인용 포탈을 생성할 수 있는 방법.
  128. 제126항에 있어서, 사용자가 다른 클라이언트 컴퓨팅 장치를 이용할 때에도 클라이언트 컴퓨팅 장치 상에 저장된 정보 항목들을 찾을 수 있는 방법.
  129. 제128항에 있어서, 상기 다른 컴퓨팅 장치는 정보 항목들이 방화벽을 통해 저장되는 상기 클라이언트 컴퓨팅 장치에 접속되는 방법.
  130. 제118항에 있어서, 상기 지시된 정보 항목을 클라이언트 컴퓨팅 장치에 복제하는 단계를 포함하는 방법.
  131. 제130항에 있어서, 사용자가 상기 지시된 정보 항목과 오프라인으로 상호작용할 수 있는 방법.
  132. 제131항에 있어서, 상기 상호작용은 상기 사용자가 서버 컴퓨팅 장치에 저장된 정보 항목과 상호작용할 수 있는 방식과 유사한 방법.
  133. 제118항에 있어서, 상기 정보 항목은 대화 스레드와 연관되는 방법.
  134. 제118항에 있어서, 상기 정보 항목이 상기 제2 사용자와 공유된 후에 상기 정보 항목과 연관된 주석이 사용자에 의해 갱신될 때, 상기 복제 단계는 상기 주석 을 복제하는 단계를 포함하는 방법.
  135. 제118항에 있어서, 상기 공유 정보 항목은 다른 정보 항목들 및 상기 공유 정보 항목과 연관된 주석들을 포함하는 핀보드 컬렉션과 연관되고, 상기 다른 정보 항목들은 함께 대화 스레드를 정의하는 방법.
  136. 제135항에 있어서, 상기 공유 정보 항목은 다수의 핀보드 컬렉션에 나타나는 방법.
  137. 제136항에 있어서, 상기 정보 항목이 제3 사용자와 공유될 때, 상기 제3 사용자는 상기 정보 항목과 상호작용할 수 있는 방법.
  138. 제137항에 있어서, 다수의 정보 항목이 공유되고, 상기 제3 사용자는 모든 정보 항목과 상호작용할 수 있는 방법.
  139. 제138항에 있어서, 상기 다수의 정보 항목은 대화 스레드를 형성하고, 상기 제3 사용자는 전체 대화 스레드에 대해 동작을 취할 수 있는 방법.
  140. 다수의 데이터 소스로부터의 데이터를 통합하는 방법을 수행하기 위한 컴퓨터 실행가능 명령들을 갖는 컴퓨터 판독가능 매체로서,
    상기 방법은,
    데이터 소스로부터 정보 항목을 검색하는 단계;
    상기 정보 항목으로부터 데이터를 수집하는 단계;
    상기 데이터를 내부 형태로 변환하는 단계; 및
    상기 변환된 데이터를 데이터베이스에 저장하는 단계
    를 포함하는 다수의 데이터 소스로부터의 데이터를 통합하는 방법을 수행하기 위한 컴퓨터 실행가능 명령들을 갖는 컴퓨터 판독가능 매체.
  141. 제140항에 있어서, 상기 정보 항목에 대한 액세스 제어 허가를 지정하는 단계를 더 포함하는 컴퓨터 판독가능 매체.
  142. 제140항에 있어서, 상기 데이터 소스에 저장된 정보 항목들을 검색하는 단계를 더 포함하는 컴퓨터 판독가능 매체.
  143. 제140항에 있어서, 상기 데이터는 상기 정보 항목의 속성을 포함하는 컴퓨터 판독가능 매체.
  144. 제143항에 있어서, 상기 정보 항목은 전자 메일 메시지이고, 상기 속성은 상기 전자 메일 메시지에 포함된 헤더 정보를 포함하는 컴퓨터 판독가능 매체.
  145. 제140항에 있어서, 상기 정보 항목은 문서이고, 상기 속성은 상기 문서의 제목을 포함하는 컴퓨터 판독가능 매체.
  146. 제140항에 있어서, 상기 변환된 데이터에 대한 관계형 인덱스를 생성하는 단계를 더 포함하는 컴퓨터 판독가능 매체.
  147. 제146항에 있어서, 상기 관계형 인덱스는 백 링크를 생성하기 위해 상기 데이터 소스에 의해 생성된 풀 텍스트 인덱스와 함께 사용될 수 있으며, 상기 백 링크는 정보 항목을 핀보드 컬렉션에 관련시키는 컴퓨터 판독가능 매체.
  148. 제147항에 있어서, 상기 관계형 인덱스는 관련된 정보 항목에 대한 링크를 생성하기 위해 상기 데이터 소스에 의해 생성된 풀 텍스트 인덱스와 함께 사용될 수 있는 컴퓨터 판독가능 매체.
  149. 개인용 정보 네트워크를 생성하기 위한 시스템으로서,
    검색 용어에 매칭되는 정보 항목들을 검색하기 위한 사용자로부터의 요청에 응답하여 정보 항목들을 발견하는 검색 컴포넌트;
    사용자로부터 컬렉션에 추가할 발견된 정보 항목들의 지시를 수신하고, 상기 지시된 정보 항목들을 컬렉션에 추가하는 컬렉션 컴포넌트; 및
    정보 항목이 상기 컬렉션에 추가될 때 상기 정보 항목에 적용할 액세스 제어 허가를 계산하는 허가 컴포넌트
    를 포함하는 개인용 정보 네트워크를 생성하기 위한 시스템.
  150. 컴퓨팅 장치에 의해 수행되는 공유 가능 핀보드 컬렉션을 생성하기 위한 방법으로서,
    사용자로부터 하나 이상의 검색 제공자의 선택을 수신하는 단계 - 상기 검색 제공자들 각각은 정보 소스를 검색함 -;
    상기 선택된 하나 이상의 검색 제공자를 이용하여, 상기 사용자에 의해 지정되는 기준에 매칭되는 정보 항목들에 대한 검색을 수행하는 단계; 및
    상기 선택된 하나 이상의 검색 제공자에 의해 찾은 정보 항목들의 지시를 수신하는 단계 - 상기 찾은 정보 항목 각각은 결과를 지시함 -
    를 포함하는 컴퓨팅 장치에 의해 수행되는 공유 가능 핀보드 컬렉션을 생성하기 위한 방법.
  151. 제150항에 있어서, 다수의 검색 제공자를 이용하여, 쿼리에 기초하여 정보 항목들에 대한 검색을 동시에 수행하는 단계를 포함하는 방법.
  152. 제150항에 있어서, 상기 결과를 내부 형태로 변환하는 단계를 포함하는 방법.
  153. 제152항에 있어서, 상기 내부 형태는 RSS인 방법.
  154. 제152항에 있어서, 상기 변환 단계는 상기 결과의 초록을 생성하는 단계를 포함하는 방법.
  155. 제150항에 있어서, 상기 수신 단계는 사용자에 의해 수행되는 단일 동작의 지시를 수신하는 단계를 포함하는 방법.
  156. 제150항에 있어서, 상기 이용 단계는 상기 선택된 하나 이상의 검색 제공자로부터 상기 검색 제공자를 어떻게 이용할 것인지에 관한 정보를 검색하는 단계를 포함하는 방법.
  157. 제150항에 있어서, 상기 정보는 애플리케이션 프로그램 인터페이스를 포함하는 방법.
  158. 제150항에 있어서, 상기 검색 제공자들 중 하나는 공유 가능 핀보드 컬렉션 내에 지시되는 제삼자 검색 제공자인 방법.
  159. 제150항에 있어서, 적어도 상기 지시된 정보 항목들을 포함하는 핀보드 컬렉션을 생성하는 단계를 더 포함하는 방법.
  160. 제159항에 있어서, 상기 핀보드 컬렉션은 상기 핀보드 컬렉션과 상기 지시된 정보 항목들 간의 링크를 지시하는 방법.
  161. 제160항에 있어서, 상기 지시된 정보 항목들을 상기 핀보드 컬렉션과 연관시키는 링크를 저장하는 단계를 더 포함하는 방법.
  162. 제161항에 있어서, 상기 지시된 정보 항목들이 연관되는 다른 핀보드 컬렉션을 검색하는 단계를 더 포함하는 방법.
  163. 제150항에 있어서, 상기 사용자에 의해 선택될 수 있는 검색 제공자를 동적으로 추가하는 단계를 더 포함하는 방법.
  164. 제150항에 있어서, 상기 정보 항목들을 필터링하는 단계를 더 포함하는 방법.
  165. 공유 가능 핀보드 컬렉션을 생성하는 방법을 수행하기 위한 컴퓨터 실행가능 명령들을 갖는 컴퓨터 판독가능 매체로서,
    상기 방법은,
    다수의 검색 제공자를 이용하여, 사용자에 의해 지정되는 기준에 매칭되는 정보 항목들에 대한 검색을 수행하는 단계;
    상기 검색 제공자들에 의해 제공된 결과들을 내부 형태로 병합하는 단계; 및
    상기 병합된 결과들의 지시를 사용자에게 제공하는 단계
    를 포함하는 공유 가능 핀보드 컬렉션을 생성하는 방법을 수행하기 위한 컴퓨터 실행가능 명령들을 갖는 컴퓨터 판독가능 매체.
  166. 제165항에 있어서, 상기 병합된 결과들을 사용자에게 제공하기 전에 상기 병합된 결과들을 변환하는 단계를 포함하는 컴퓨터 판독가능 매체.
  167. 제166항에 있어서, 상기 변환 단계는 HTML 문서를 생성하는 단계를 포함하는 컴퓨터 판독가능 매체.
  168. 제165항에 있어서, 상기 병합된 결과들의 일부를 핀잉하기 위한 지시를 수신하는 단계를 포함하는 컴퓨터 판독가능 매체.
  169. 제165항에 있어서, 상기 내부 형태는 RSS인 컴퓨터 판독가능 매체.
  170. 제165항에 있어서, 검색 제공자에 의해 지시되는 제공자 설명을 이용하는 단계를 포함하는 컴퓨터 판독가능 매체.
  171. 제170항에 있어서, 상기 제공자 설명은 애플리케이션 프로그램 인터페이스인 컴퓨터 판독가능 매체.
  172. 제165항에 있어서, 병합된 결과가 백 링크를 포함하고, 상기 백 링크는 상기 결과들 중 하나를 또한 포함하는 이전에 저장된 핀보드 컬렉션의 지시인 컴퓨터 판독가능 매체.
  173. 제165항에 있어서, 상기 병합하는 단계는 결과를 오버레이하는 단계를 포함하고, 상기 오버레이 단계는 다수의 검색 제공자로부터의 결과들을 조합하고, 복제 속성들을 제거하여, 상기 다수의 검색 제공자 중 일부로부터 고유 속성들을 갖는 단일 결과를 제공하는 단계를 포함하는 컴퓨터 판독가능 매체.
  174. 제165항에 있어서, 결과가 검색 제공자를 지시하는 컴퓨터 판독가능 매체.
  175. 제174항에 있어서, 상기 검색 제공자를 동적으로 등록하고, 상기 검색 제공자를 이용하여 상기 검색을 수행하는 단계를 더 포함하는 컴퓨터 판독가능 매체.
  176. 제165항에 있어서, 적어도 2개의 검색 제공자가 상이한 유형의 결과를 제공하고, 각 유형의 결과는 상이한 뷰잉 컴포넌트를 이용하여 볼 수 있는 컴퓨터 판독가능 매체.
  177. 제165항에 있어서, 상기 병합된 결과들은 제2 검색으로부터의 결과로 오버레이되는 컴퓨터 판독가능 매체.
  178. 제165항에 있어서, 상기 결과들을 상기 내부 형태에서 상기 사용자에게 제공되는 형태로 변환하는 단계를 더 포함하는 컴퓨터 판독가능 매체.
  179. 제165항에 있어서, 정보 항목에 대해 위치가 지정되고, 상기 위치는 상기 정보 항목 내의 한 포인트를 식별하는 컴퓨터 판독가능 매체.
  180. 제179항에 있어서, 상기 위치는 북마크 앵커 태그를 이용하여 지정되는 컴퓨터 판독가능 매체.
  181. 제179항에 있어서, 상기 정보 항목은 핀보드 컬렉션에 핀잉되는 컴퓨터 판독가능 매체.
  182. 제181항에 있어서, 상기 핀보드 컬렉션은 상기 핀잉된 정보 항목과 연관된 주석을 갖는 컴퓨터 판독가능 매체.
  183. 제181항에 있어서, 다른 핀보드 컬렉션이 상기 핀잉된 정보 항목에 관한 주 석을 갖는 컴퓨터 판독가능 매체.
KR1020077026027A 2005-05-19 2006-05-04 개인화 가능 정보 네트워크 KR20080009107A (ko)

Applications Claiming Priority (12)

Application Number Priority Date Filing Date Title
US68328205P 2005-05-19 2005-05-19
US60/683,282 2005-05-19
US71158005P 2005-08-25 2005-08-25
US60/711,580 2005-08-25
US11/333,978 US20060265394A1 (en) 2005-05-19 2006-01-17 Personalizable information networks
US11/333,985 2006-01-17
US11/334,008 2006-01-17
US11/333,978 2006-01-17
US11/333,985 US20060265395A1 (en) 2005-05-19 2006-01-17 Personalizable information networks
US11/333,980 US20060265377A1 (en) 2005-05-19 2006-01-17 Personalizable information networks
US11/334,008 US20060265396A1 (en) 2005-05-19 2006-01-17 Personalizable information networks
US11/333,980 2006-01-17

Publications (1)

Publication Number Publication Date
KR20080009107A true KR20080009107A (ko) 2008-01-24

Family

ID=37431777

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077026027A KR20080009107A (ko) 2005-05-19 2006-05-04 개인화 가능 정보 네트워크

Country Status (5)

Country Link
EP (1) EP1891551A2 (ko)
JP (1) JP2008541296A (ko)
KR (1) KR20080009107A (ko)
BR (1) BRPI0610742A2 (ko)
WO (1) WO2006124268A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015122743A1 (ko) * 2014-02-17 2015-08-20 네이버 주식회사 검색 결과를 제공하는 방법 및 상기 방법을 수행하는 시스템

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101487205B1 (ko) 2007-07-13 2015-01-30 삼성전자 주식회사 미디어 서버 내의 컨텐츠를 제공하는 장치, 시스템 및 그방법
US10073881B2 (en) * 2015-07-21 2018-09-11 Autodesk, Inc. Platform for authoring, storing, and searching workflows

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06250946A (ja) * 1993-02-22 1994-09-09 Matsushita Electric Ind Co Ltd 分散型電子掲示板装置
JP3943824B2 (ja) * 2000-10-31 2007-07-11 株式会社東芝 情報管理方法および情報管理装置
US20020103867A1 (en) * 2001-01-29 2002-08-01 Theo Schilter Method and system for matching and exchanging unsorted messages via a communications network
US7757162B2 (en) * 2003-03-31 2010-07-13 Ricoh Co. Ltd. Document collection manipulation

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015122743A1 (ko) * 2014-02-17 2015-08-20 네이버 주식회사 검색 결과를 제공하는 방법 및 상기 방법을 수행하는 시스템

Also Published As

Publication number Publication date
WO2006124268A2 (en) 2006-11-23
WO2006124268A3 (en) 2009-04-16
JP2008541296A (ja) 2008-11-20
BRPI0610742A2 (pt) 2010-07-20
EP1891551A2 (en) 2008-02-27

Similar Documents

Publication Publication Date Title
US20060265377A1 (en) Personalizable information networks
US20060265396A1 (en) Personalizable information networks
US20060265394A1 (en) Personalizable information networks
US10719621B2 (en) Providing unique views of data based on changes or rules
US10540419B2 (en) System for synchronization of changes in edited websites and interactive applications
US7865873B1 (en) Browser-based system and method for defining and manipulating expressions
US7930629B2 (en) Consolidating local and remote taxonomies
US20060265395A1 (en) Personalizable information networks
US20070073663A1 (en) System and method for providing full-text searching of managed content
US20040267746A1 (en) User interface for controlling access to computer objects
GB2461771A (en) Annotation of electronic documents with preservation of document as originally annotated
JP2005011339A (ja) コンピュータ・システム・アーキテクチャのためのコンテキスト関連づけスキーマ
US7392484B1 (en) Method and system for capturing, storing, sharing, and managing notes taken during a computer based meeting
US8812550B2 (en) Systems, methods and apparatus for assessing compliance and federating databases
US20080046439A1 (en) Automatic capture of associations between content within a content framework system
KR20080009107A (ko) 개인화 가능 정보 네트워크
EP2420939B1 (en) System and method for a virtual content repository
US20050228827A1 (en) System and method for viewing a virtual content repository
Sanyal et al. DLworm: a system for workflow and repository management for digital libraries
Al-Sawadi An architecture for secure document flow and archival systems
CN101535984A (zh) 可个人化的信息网络

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination