KR102049133B1 - 파일 서술자를 자동으로 관리하는 기법 - Google Patents

파일 서술자를 자동으로 관리하는 기법 Download PDF

Info

Publication number
KR102049133B1
KR102049133B1 KR1020147032755A KR20147032755A KR102049133B1 KR 102049133 B1 KR102049133 B1 KR 102049133B1 KR 1020147032755 A KR1020147032755 A KR 1020147032755A KR 20147032755 A KR20147032755 A KR 20147032755A KR 102049133 B1 KR102049133 B1 KR 102049133B1
Authority
KR
South Korea
Prior art keywords
file
file descriptor
content
descriptor
extracted
Prior art date
Application number
KR1020147032755A
Other languages
English (en)
Other versions
KR20150016946A (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 KR20150016946A publication Critical patent/KR20150016946A/ko
Application granted granted Critical
Publication of KR102049133B1 publication Critical patent/KR102049133B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/178Techniques for file synchronisation in file systems
    • G06F16/1794Details of file format conversion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating

Landscapes

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

Abstract

파일 서술자들을 자동으로 관리하는 기법이 설명된다. 장치는 프로세서 회로 및 컨텐츠 파일의 파일 서술자를 관리하기 위해 프로세서 회로에서 동작하는 파일 서술자 애플리케이션을 포함할 수 있고, 파일 서술자 애플리케이션은 클라이언트 애플리케이션으로부터 파일 서술자 요청을 수신하고, 컨텐츠 파일에 대한 파일 서술자 또는 파일 서술자 구축 정보를 생성하고, 파일 서술자 또는 파일 서술자 구축 정보를 갖는 파일 서술자 응답을 클라이언트 애플리케이션으로 전송하도록 구성된다. 다른 실시예들도 논의되고 청구된다.

Description

파일 서술자를 자동으로 관리하는 기법{TECHNIQUES TO AUTOMATICALLY MANAGE FILE DESCRIPTORS}
컴퓨터나 서버는 수천 개의 파일을 저장할 수 있다. 따라서, 예컨대, 파일 이름과 같이, 식별 정보로 각각의 파일을 표현하는 것이 편리하다. 이런 식으로 사용자는 관심 있는 특정 파일을 찾을 수 있다. 시간이 가면서, 다른 유형의 파일들을 더욱 효과적으로 표현하기 위한 다양한 기법들이 진화해 왔다. 예를 들어, 텍스트 기반에서 그래픽 기반 표현으로 이동함으로써 워드 프로세싱 문서를 위한 특별 아이콘, 스프레드시트 문서를 위한 또 다른 특별 아이콘 등 다른 아이콘들로 파일을 표현할 수 있다. 파일 표현에서의 각각의 진화를 통해 사용자가 특정 파일을 찾기가 훨씬 수월해졌다.
그러나, 최근에는 온라인 및 오프라인 메모리 저장소 모두에서 단일 사용자가 그 어느 때보다, 때때로 엄청나게 더 많은 파일을 저장하고 이에 액세스 가능하게 되었다. 파일들 간의 더 미세한 구별을 제공하기 위해, 종래의 파일 표현 기법은 파일에 저장된 실제 컨텐츠를 사용하여 파일 표현을 생성하도록 바뀌었다. 컴퓨터 파일은 다양한 유형의 디지털 미디어 컨텐츠를 저장할 수 있다. 예를 들어, 워드 프로세싱 문서는 포맷팅된 텍스트, 숫자, 사진, 표 등을 포함할 수 있다. 파일에서 꺼낸 사진으로 파일 아이콘을 만드는 것처럼, 이제는 저장된 컨텐츠의 일부를 사용하여 파일 표현을 만들 수 있다. 이런 혁신에도 불구하고, 파일 표현 기법은 증가된 파일 저장 레벨을 따라가지 못했다. 따라서, 사용자들이 관심 있는 파일을 찾는 것이 점점 더 힘들어져 왔다. 본 개선점들은 이들 및 그 밖의 고려 사항들로부터 비롯된 것이다.
다음은 본원에서 설명된 새로운 실시예의 기본적인 이해를 제공하기 위해 간략화된 요약이다. 본 요약은 광범위한 개관이 아니며, 필수/핵심 구성 요소를 나타내거나 또는 그 범위를 한정하기 위한 것도 아니다. 본 요약의 유일한 목적은 후술하는 상세한 설명의 서두로서 간략한 형태로 몇 가지 개념들을 제공하는 것이다.
다양한 실시예들은 일반적으로 전자 파일들을 관리하기 위한 기법에 관한 것들이다. 일부 실시예는 구체적으로 전자 파일들에 대한 파일 서술자를 자동으로 생성, 관리 및 업데이트하는 기법에 관한 것이다. 일 실시예에서, 예를 들어, 장치는 프로세서 회로 및 컨텐츠 파일의 파일 서술자를 관리하기 위해 프로세서 회로에서 동작하는 파일 서술자 애플리케이션을 포함할 수 있다. 파일 서술자 애플리케이션은 클라이언트 애플리케이션으로부터 파일 서술자 요청을 수신하고, 컨텐츠 파일의 파일 서술자 또는 파일 서술자 구축 정보를 생성하고, 파일 서술자 또는 파일 서술자 구축 정보를 갖는 파일 서술자 응답을 클라이언트 애플리케이션으로 전송하도록 마련될 수 있다. 다른 실시예들도 논의되고 청구된다.
전술한 목적 및 그와 관련된 목적을 달성하기 위해, 본원에서는 다음의 발명의 설명 및 첨부 도면과 함께 예시적인 양태들이 기술된다. 이들 양태는 본원에 개시된 원리들이 실시될 수 있는 다양한 방식들을 나타내는 것으로, 모든 양태들 및 그 균등물도 청구 대상의 범위 내에 속하는 것이다. 다른 이점 및 신규한 특징들은 첨부하는 도면과 함께 다음의 발명의 상세한 설명을 읽음으로써 명백해질 것이다.
도 1은 파일 서술자를 관리하기 위한 시스템의 일 실시예를 도시한다.
도 2는 파일 서술자 애플리케이션의 제 1 컴포넌트의 일 실시예를 도시한다.
도 3은 파일 서술자 애플리케이션의 제 2 컴포넌트의 일 실시예를 도시한다.
도 4는 파일 서술자 애플리케이션의 제 3 컴포넌트의 제 1 양태의 일 실시예를 도시한다.
도 5는 파일 서술자 애플리케이션의 제 3 컴포넌트의 제 2 양태의 일 실시예를 도시한다.
도 6은 파일 서술자 애플리케이션의 제 3 컴포넌트의 제 3 양태의 일 실시예를 도시한다.
도 7은 파일 서술자 애플리케이션의 제 4 컴포넌트의 일 실시예를 도시한다.
도 8은 도 1의 시스템에 대한 집중형(centralized) 시스템의 일 실시예를 도시한다.
도 9는 도 1의 시스템에 대한 분산형(distributed) 시스템의 일 실시예를 도시한다.
도 10은 도 1의 시스템에 대한 논리 흐름도를 도시한다.
도 11은 컴퓨팅 아키텍처의 일 실시예를 도시한다.
도 12는 통신 아키텍처의 일 실시예를 나타낸다.
실시예들은 전자 파일들에 대해 향상된 파일 서술자를 자동으로 생성, 관리 및 업데이트하기 위한 기법에 관한 것이다. 전자 파일은 물리적 또는 논리적으로 정의된 임의의 디지털 정보 집합을 포함할 수 있다. 파일 서술자는 전자 파일을 표현하는 데 사용되는 사용자 인터페이스 구성 요소를 포함할 수 있다. 예를 들어, 전자 파일의 파일 서술자는 전자 파일에 관한 서술 정보와 함께, 정의된 크기, 형태 또는 기하학적 구조를 갖는 그래픽 사용자 인터페이스 구성 요소(예컨대, 아이콘)로 구현될 수 있다. 파일 서술자를 통해 사용자는 다른 파일들로부터 파일을 구별하고, 특정 파일이 관심 대상인지 여부를 재빨리 결정할 수 있다. 이런 일이 일어날 때, 사용자는 전자 파일의 컨텐츠를 좀 더 세밀하게 조사하기 위해서 파일 서술자를 선택하여 파일 서술자로 표현된 전자 파일을 열 수 있다.
전술한 바와 같이, 종래의 파일 표현 기법은 기저의 전자 파일의 컨텐츠를 이용하여 파일 서술자를 구축하려 할 수 있다. 이러한 유형의 파일 서술자는 사용자에게 파일 컨텐츠의 미리 보기를 제공하기 때문에, 때때로 비공식적으로 "티저" 또는 "썸네일"이라고 지칭될 수 있다. 그러나, 이런 유형의 파일 서술자에 관련해 몇 가지 문제점이 있다. 예를 들어, 파일 서술자는 파일의 무작위 컨텐츠를 나타낼 수 있다. 다른 예를 들면, 파일 서술자가 파일 컨텐츠를 무작위로 조직할 수 있다. 또 다른 예를 들면, 파일 서술자가 오래되거나 구식인 템플릿을 이용할 수 있다. 또 다른 예를 들면, 파일 서술자가 정적인 컨텐츠를 포함할 수 있다. 또 다른 예를 들면, 파일 서술자는 특정 파일에서 명백하게 발견된 컨텐츠만을 이용할 수 있다. 또 다른 예를 들면, 파일 서술자는 클라이언트 장치 또는 운영 체제에서 로컬로 생성될 수 있다. 이들은 종래의 파일 서술자와 관련된 결점의 몇몇 예시에 불과하며 다른 결점들도 존재한다.
이들 및 그 밖의 문제점들을 해결하기 위해서, 실시예들은 향상된 유형의 파일 서술자를 생성, 관리 및 업데이트하는 기법을 제공한다. 향상된 파일 서술자는 보다 의미 있는 정보를 사용자에게 제공함으로써, 사용자가 관심 있는 파일을 보다 쉽게 식별하고 선택할 수 있게 된다. 향상된 파일 서술자는 또한 사실상 동적이다. 향상된 파일 서술자가 파일의 컨텐츠를 이용하는 정도까지, 향상된 파일 서술자는 파일의 컨텐츠가 업데이트될 때마다 동적으로 업데이트될 수 있다. 이와 같은 방식으로, 향상된 파일 서술자는 기저의 파일에 관한 적절한 최신의 정보를 제공할 수 있다. 향상된 파일 서술자는 또한 파일의 컨텐츠를 어느 하나의 형태(또는 유형)에서 다른 형태(또는 유형)로 변환하는 변환(translation) 기법을 사용할 수도 있다. 예를 들어, 스프레드시트의 표로 나타낸(tabular) 데이터는 향상된 파일 서술자에 의해 프레젠테이션을 위해 그래프로 변환될 수 있다. 향상된 파일 서술자는 또한 로컬 클라이언트 장치 또는 클라이언트 애플리케이션이 아닌 네트워크 장치, 서버 또는 클라우드-기반 서비스에 의해 생성될 수 있다. 이는 파일 서술자 서비스의 비용 효율적인 배치, 레거시 장치 및 애플리케이션과의 호환성, 및 업데이트된 템플릿 및 컨텐츠에 대한 액세스를 보장한다. 결과적으로, 실시예들은 오퍼레이터, 장치 또는 네트워크의 지원성(affordability), 확장성(scalability), 모듈성(modularity), 신장성(extendibility), 또는 상호 운용성(interoperabililty)을 향상시킬 수 있다.
일반적으로 본원에 사용된 표기법 및 명명법과 관련하여, 후속하는 상세한 설명은 컴퓨터 또는 컴퓨터의 네트워크 상에서 실행되는 프로그램 절차로 제시될 수 있다. 당업자들은 다른 당업자들에게 자신들의 작업의 실체를 가장 효과적으로 전달하기 위해 이런 절차 설명 및 표현을 사용한다.
절차는 본원에서, 그리고 일반적으로, 원하는 결과로 이어지는 일관적인(self-consistent) 동작 시퀀스가 되도록 고안되었다. 이들 동작은 물리 양의 물리적인 조작을 필요로 하는 것이다. 반드시 필요한 것은 아니지만, 통상적으로, 이런 물리 양은 저장, 전송, 결합, 비교, 및 그 밖에 조작될 수 있는 전기, 자기 또는 광학 신호의 형태를 취한다. 때로는, 주로 일반적인 사용의 이유에서, 비트, 값, 구성 요소, 기호, 글자, 용어, 숫자 등으로 이런 신호들을 지칭하는 것이 편리하다. 그러나, 이들 및 유사한 용어들 모두는 적절한 물리 양에 관계가 있어야 하고 이들 양에 적용되는 편리한 라벨에 불과함을 알아야 한다.
또한, 수행된 조작은 흔히 추가 또는 비교와 같은 용어로 지칭되며, 이는 보통 인간 오퍼레이터가 수행하는 정신 작용(mental operation)에 관련이 있다. 인간 오퍼레이터의 이런 능력이 하나 이상의 실시예의 일부를 형성하는 본원에 설명된 임의의 동작들에서 필요하거나, 대부분의 경우에 바람직한 것은 아니다. 오히려, 동작들은 기계 동작들이다. 다양한 실시예의 동작들을 실행하는 유용한 기계들은 범용 디지털 컴퓨터 또는 유사 장치들을 포함한다.
다양한 실시예들은 또한 이들 동작을 실행하는 장치 또는 시스템에 관한 것이다. 이런 장치는 적절한 목적으로 특별히 구성되거나, 또는 컴퓨터에 저장된 컴퓨터 프로그램에 의해 선별적으로 활성화되거나 변경된 범용 컴퓨터를 포함할 수 있다. 본원에 제시된 절차는 특정 컴퓨터 또는 기타 장치에 고유하게 관련된 것은 아니다. 본원의 개시에 따라 작성된 프로그램을 갖는 다양한 범용 기계들이 사용될 수 있고, 또는 적절한 방법 단계들을 실행하기 위해 보다 특화된 장치를 구성하는 것이 편리할 수 있다. 이런 다양한 기계들의 적절한 구조는 제시된 설명으로부터 알 것이다.
이제 도면을 참조하며, 전반적으로 동일한 참조부호는 동일한 구성 요소를 가리키는 데 사용된다. 다음의 설명에서는, 설명 목적으로, 발명에 대한 철저한 이해를 제공하기 위해 다양한 구체적인 사항들이 제공될 것이다. 그러나, 신규한 실시예들은 이러한 구체적인 사항들 없이도 실시될 수 있다는 점을 명백히 알 것이다. 다른 경우에, 본 발명에 대한 설명을 용이하게 하기 위해 잘 알려진 구조나 장치들은 블록도 형태로 도시하였다. 청구 대상과 일치하는 모든 수정물, 균등물, 변형물들도 포함되어야 한다.
도 1은 비디오 시스템(100)을 위한 블록도를 도시한다. 일 실시예에서, 시스템(100)은 하나 이상의 컴포넌트(122-a)를 포함하는 소프트웨어 애플리케이션(120)을 갖는 컴퓨터로 구현된 시스템(100)을 포함할 수 있다. 도 1에 도시된 시스템(100)은 소정의 구성을 갖는 제한된 수의 구성 요소들을 갖지만, 시스템(100)은 주어진 실시예에서 필요로 하는 바에 따라 이와 다른 구성으로 더 많거나 더 적은 수의 구성 요소를 가질 수도 있다.
본원에서 사용되는 바와 같은 "a", "b", "c" 및 유사한 지시어들은 임의의 양의 정수(positive integer)를 나타내는 변수들인 것을 의도한다는 점에 유의하여야 한다. 따라서, 예를 들어, 구현이 값을 a = 5로 설정하는 경우, 컴포넌트들(122-a)의 완전 집합은 컴포넌트들(122-1, 122-2, 122-3, 122-4, 및 122-5)을 포함할 수 있다. 실시예들이 이에 제한되지는 않는다.
시스템(100)은 파일 서술자 애플리케이션(120)을 포함할 수 있다. 파일 서술자 애플리케이션(120)은 일반적으로 하나 이상의 클라이언트 애플리케이션에 대한 향상된 유형의 파일 서술자를 자동으로 생성, 관리 및/또는 업데이트하도록 마련될 수 있다. 파일 서술자 애플리케이션(120)이 애플리케이션 프로그램으로 설명되었지만, 파일 서술자 애플리케이션(120)의 기능 및 동작은 시스템 프로그램, 미들웨어 프로그램, 펌웨어 프로그램, 웹 서비스 등을 포함하는 임의의 소프트웨어 컴포넌트로 이용될 수 있음을 이해할 수 있다. 나아가, 도 8, 9에서 보다 상세하게 논의되는 바와 같이, 파일 서술자 애플리케이션(120)은 로컬 클라이언트 애플리케이션을 제공하는 클라이언트 장치, 또는 네트워크를 통해 원격 클라이언트 애플리케이션을 제공하는 네트워크 장치에 의해 구현될 수 있다. 후자의 시나리오는 많은 클라이언트 장치 및 클라이언트 애플리케이션을 통해 다양한 웹 기술 및 클라우드-컴퓨터 기술을 사용하여 구현될 수 있다.
파일 서술자 애플리케이션(120)은 파일 서술자 추출기(extractor) 컴포넌트(122-1)를 포함할 수 있다. 파일 서술자 추출기 컴포넌트(122-1)는 일반적으로 컨텐츠 파일(112)에서 멀티미디어 컨텐츠의 부분들을 추출하도록 구성된다. 멀티미디어 컨텐츠는 텍스트, 숫자, 기호, 이미지, 사진, 비디오, 오디오, 애니메이션 등과 같이 컨텐츠 파일(112)에 의해 저장될 수 있는 임의의 디지털 정보 구성 요소 또는 디지털 컨텐츠를 포함할 수 있다. 파일 서술자 추출기 컴포넌트(122-1)는, 예를 들어, 데이터 저장소(124)의 컨텐츠 파일(112)에 액세스할 수 있다.
컨텐츠 파일(112)은 애플리케이션 프로그램, 웹 애플리케이션, 웹 서비스, 클라이언트 애플리케이션, 서버 애플리케이션, 시스템 프로그램 등과 같은 소프트웨어 프로그램에 의해 생성된 임의의 디지털 정보 요소 또는 디지털 컨텐츠를 포함할 수 있다. 상이한 소프트웨어 프로그램들은 상이한 유형의 디지털 컨텐츠를 생성할 수 있다. 따라서, 상이한 소프트웨어 프로그램들에 의해 생성된 디지털 컨텐츠는 이종 디지털 컨텐츠를 포함할 수 있다. 컨텐츠 파일(112)의 예는 워드 프로세싱 파일, 스프레드시트 파일, 프레젠테이션 파일, 개인 정보 관리자(PIM) 파일, 데이터베이스 파일, 발행자 파일, 그림 파일, 노트 파일, 메시지 파일, 프로젝트 파일 등과 같은 애플리케이션 파일들을 포함할 수 있지만, 이에 제한되지 않는다. 컨텐츠 파일(112)의 추가적인 예로 오디오 파일, 이미지 파일, 비디오 파일, 오디오/비디오(AV) 파일, 애니메이션 파일, 게임 파일, 마크업 파일, 웹페이지 파일, 소셜 네트워킹 서비스(SNS) 파일 등과 같은 멀티미디어 파일들을 포함할 수 있다. 컨텐츠 파일(112)의 다른 예시들로 웹 페이지, 소셜 네트워킹 사이트 피드(예컨대, 트위터 피드, 페이스북 피드 등), 뉴스 피드(예컨대, RSS(really simple syndication) 피드, 뉴스 집적 웹사이트 및 포털 등), 검색 엔진 결과, 웹 포털 피드, 및 기타 온라인 컨텐츠 유형을 포함할 수 있다. 이들은 컨텐츠 파일(122)의 몇 가지 예에 불과하며, 실시예들은 이들 예로 제한되지 않음을 알 수 있다.
일 실시예에서, 컨텐츠 파일(122)은 워싱턴 주 레드몬드의 마이크로소프트사에 의해 제작된 MICROSOFT WINDOWS®에 대한 MICROSOFT® OFFICE 제품군과 같이, 특정 운영 체제를 위해 설계된 상호 관련된 클라이언트 애플리케이션들, 서버 애플리케이션들 및 웹 서비스들의 제품군에 대한 컨텐츠 파일을 포함할 수 있다. 클라이언트 애플리케이션들의 예는 MICROSOFT WORD, MICROSOFT EXCEL®, MICROSOFT POWERPOINT®, MICROSOFT OUTLOOK®, MICROSOFT ACCESS®, MICROSOFT INFOPATH®, MICROSOFT ONENOTE®, MICROSOFT PROJECT, MICROSOFT PUBLISHER, MICROSOFT SHAREPOINT® WORKSPACE, MICROSOFT VISIO®, MICROSOFT OFFICE INTERCONNECT, MICROSOFT OFFICE PICTURE MANAGER, MICROSOFT SHAREPOINT DESIGNER, 및 MICROSOFT LYNC를 포함할 수 있지만 이에 제한되지 않는다. 서버 애플리케이션들의 예는 MICROSOFT SHAREPOINT SERVER, MICROSOFT LYNC SERVER, MICROSOFT OFFICE FORMS SERVER, MICROSOFT OFFICE GROOVE® SERVER, MICROSOFT OFFICE PROJECT SERVER, MICROSOFT OFFICE PROJECT PORTFOLIO SERVER, 및 MICROSOFT OFFICE PERFORMANCEPOINT® SERVER를 포함할 수 있지만 이에 제한되지 않는다. 웹 서비스들에 대한 예는 MICROSOFT WINDOWS LIVE®, MICROSOFT OFFICE WEB APPLICATIONS, MICROSOFT OFFICE LIVE, MICROSOFT LIVE MEETING, MICROSOFT OFFICE PRODUCT WEB SITE, MICROSOFT UPDATE SERVER, 및 MICROSOFT OFFICE 365를 포함할 수 있지만 이에 제한되지 않는다. 실시예들은 이러한 예시들로 제한되지 않는다.
파일 서술자 애플리케이션(120)은 파일 서술자 대체(substitute) 컴포넌트(122-2)를 포함할 수 있다. 파일 서술자 대체 컴포넌트(122-2)는 일반적으로 컨텐츠 파일(112)에 의해 저장된 어느 한 유형의 컨텐츠를 다른 유형의 컨텐츠로 교체, 번역, 변환 또는 대체하도록 마련될 수 있다. 예를 들어, 스프레드시트 애플리케이션에 대한 컨텐츠 파일(112)이 표의 형태로 데이터를 저장할 수 있다. 파일 서술자 대체 컴포넌트(122-2)는 표로 나타낸 데이터를 그 표로 나타낸 데이터를 표현하는 그래프로 변환할 수 있다. 이후에 이 그래프는 컨텐츠 파일(112)을 나타내는 파일 서술자(134)를 구성하는 데 사용될 수 있다. 다른 예를 들면, 워드 프로세싱 애플리케이션에 대한 컨텐츠 파일(112)은 텍스트 형태로 "개"를 저장할 수 있다. 파일 서술자 대체 컴포넌트(122-2)는 텍스트 "개"를 개 사진, 이미지, 또는 애니메이션으로 변환할 수 있다. 그 후에 이 사진은 컨텐츠 파일(112)을 나타내는 파일 서술자(134)를 구성하는 데 사용될 수 있다.
파일 서술자 애플리케이션(120)은 파일 서술자 조립(assembly) 컴포넌트(122-3)를 포함할 수 있다. 파일 서술자 조립 컴포넌트(122-3)는 일반적으로 컨텐츠 파일(112)에서 원래 발견되거나 파일 서술자 대체 컴포넌트(122-2)에 의해 대체된 것과 같은 파일 서술자 추출기 컴포넌트(122-1)에 의해 추출된 컨텐츠 파일(112)의 하나 이상의 컨텐츠 부분을 이용하여 파일 서술자 구축 정보(132) 및/또는 파일 서술자(134)를 생성, 구축 또는 조립하도록 마련될 수 있다.
파일 서술자 구축 정보(132) 및/또는 파일 서술자(134)를 적절하게 조립하기 위해서, 파일 서술자 조립 컴포넌트(122-3)는 데이터 저장소(124)에 의해 저장된 파일 서술자 모델(126-b)를 이용하여 파일 서술자 구축 정보(132) 및/또는 파일 서술자(134)를 생성할 수 있다. 파일 서술자 모델(126-b)은 파일 서술자(134)를 구성하거나 생성하는 템플릿을 포함할 수 있다. 파일 서술자 모델(126-b)은 컨텐츠 파일(112)에서 어떤 컨텐츠를 추출할지에 관한 추출 규칙 집합, 추출된 컨텐츠의 포맷, 레이아웃 또는 위치를 지정하는 포맷 규칙 집합, 추출된 컨텐츠가 사용자에게 프레젠테이션되는 방법을 제어하는 프레젠테이션 규칙 집합(예컨대, 폰트, 폰트 크기, 볼드체, 밑줄, 이탤릭체, 스타일 등), 추출된 컨텐츠를 언제 어떻게 변환할지를 상세히 설명하는 변환 규칙 집합, 및 커스텀 파일 서술자(134)가 생성될 수 있는 방법을 정의하는 그 밖의 규칙을 정의할 수 있다. 상이한 유형의 컨텐츠 파일(112)에 대해 상이한 파일 서술자 모델들(126-b)이 정의될 수 있다. 예를 들어, 제 1 파일 서술자 모델(126-1)이 워드 프로세싱 문서에 대해 파일 서술자(134)가 생성될 수 있는 방법을 정의하는 한편, 제 2 파일 서술자 모델(126-2)은 스프레드시트 문서에 대해 파일 서술자가 생성될 수 있는 방법을 정의할 수 있다. 다른 예를 들면, 제 3 및 제 4 서술자 모델(126-3, 126-4)은 하나의 프레젠테이션 문서에 대해 선택 가능한 두 모델들일 수 있다. 실시예는 파일 서술자 모델들(126-b)의 개수 또는 유형에 제한되지 않으며, 구현에 따라 달라질 수 있다.
파일 서술자 애플리케이션(120)은 파일 서술자 동기화기(synchronizer) 컴포넌트(122-4)를 포함할 수 있다. 파일 서술자 동기화기 컴포넌트(122-4)는 일반적으로 컨텐츠 파일(112)의 컨텐츠 부분에 생긴 변경과 파일 서술자(134)를 위해 사용된 대응 컨텐츠 부분을 동기화하도록 마련될 수 있다. 예를 들어, 파일 서술자(134)가 컨텐츠 파일(112)로부터 사진을 이용하고, 컨텐츠 파일(112)의 사진이 새로운 사진으로 업데이트되면, 파일 서술자 동기화기 컴포넌트(122-4)는 그 변경을 자동으로 탐지하여 새로운 사진으로 파일 서술자(134)를 업데이트할 것이다. 이는, 아래에서 추가적으로 설명되는 바와 같이, 컨텐츠 파일(112)과 파일 서술자(134)에 의해 흔히 사용되는 각각의 컨텐츠 부분을 고유하게 식별함으로써 부분적으로 수행될 수 있다.
일반적인 작동 시에, 파일 서술자 애플리케이션(120)은 컨텐츠 파일(112)의 파일 서술자(134)를 관리하기 위해 (도 11에 도시된 바와 같이) 프로세서 회로에서 동작할 수 있다. 파일 서술자 애플리케이션(120)은 (도 9에 도시된 바와 같이) 클라이언트 애플리케이션으로부터 파일 서술자 요청(110)을 수신하고, 컨텐츠 파일(112)에 대한 파일 서술자(134) 또는 파일 서술자 구축 정보(132)를 생성하고, 파일 서술자(134) 또는 파일 서술자 구축 정보(132)를 갖는 파일 서술자 응답(130)을 클라이언트 애플리케이션으로 전송하도록 마련될 수 있다. 클라이언트 장치의 엔티티(예컨대, 클라이언트 애플리케이션, 운영 체제, 로컬 파일 서술자 애플리케이션 등)는 클라이언트 장치에서 컨텐츠 파일(112)을 표현하기 위해 파일 서술자 구축 정보(132)를 사용하여 파일 서술자(134)를 생성하거나, 파일 서술자 응답(130)과 함께 수신된 파일 서술자(134)를 사용할 수 있다.
도 2는 시스템(100)의 운영 환경(200)의 일 실시예를 도시한다. 보다 구체적으로, 운영 환경(200)은 파일 서술자 추출 컴포넌트(122-1)에 대한 예시적인 동작을 도시한다.
도 1과 관련하여 설명한 바와 같이, 파일 서술자 애플리케이션(120)은 파일 서술자 추출기 컴포넌트(122-1)를 포함할 수 있다. 파일 서술자 추출기 컴포넌트(122-1)는 파일 서술자(134)를 생성하기 위해 데이터 저장소(124)에서 파일 서술자 모델(126-b)을 검색할 수 있다. 파일 서술자 모델(126-1)과 같은 특정 파일 서술자 모델(126-b)이 다른 많은 이유로 검색될 수 있다. 예를 들어, 파일 서술자 모델(126-1)은 무엇보다도 컨텐츠 파일(112)의 파일 유형, 파일 서술자 요청(110)을 시작한 클라이언트 애플리케이션, 또는 클라이언트 애플리케이션을 호스트하는 클라이언트 장치에 기반하여 검색될 수 있다.
파일 서술자 추출기 컴포넌트(122-1)는 파일 서술자 모델(126-1)에 기반하여 컨텐츠 파일(112)로부터 하나 이상의 컨텐츠 부분(204-c)을 추출할 수 있다. 컨텐츠 부분(204-c)은 컨텐츠 파일(112)에서 저장된 임의의 이산(discrete) 또는 정의된 디지털 정보 집합이다. 전술한 바와 같이, 컨텐츠 파일(112)은 디지털 정보를 포함할 수 있다. 디지털 정보는 근접도, 컨텐츠 유형(예컨대, 텍스트, 사진, 그래프 등), 컨텐츠 포맷(예컨대, 문장, 단락, 섹션, 챕터 등) 등과 같은 많은 요인에 기반하여 물리적으로 또는 논리적으로 그룹화될 수 있다. 추가적으로 또는 이를 대신해서, 컨텐츠 부분(204-c)은 파일 이름, 파일 경로, 메타 데이터, 서술자, 프로퍼티(properties), 속성(attributes) 등과 같이 컨텐츠 파일(112)에 관련된 정보를 포함할 수 있다. 본원에 사용된 바와 같이, 컨텐츠 파일(112)로부터 추출된 컨텐츠 부분(204-c)은 추출된 컨텐츠 부분(208-s)으로 지칭될 수 있다. 예를 들어, 컨텐츠 부분(204-1)은 추출 동작이 실행된 후에 추출된 컨텐츠 부분(208-1)으로 지칭될 수 있다.
파일 서술자 모델(206-1)은 파일 서술자 표면(222)을 포함할 수 있다. 파일 서술자 표면(222)은 좌표계 및 경계들을 갖는 임의의 정의된 크기의 이차원(2D) 또는 삼차원(3D) 토폴로지 공간을 포함할 수 있다. 파일 서술자 표면(222)은 일반적으로 컨텐츠 파일(112)의 프레젠테이션 표면보다 작은 크기를 가질 수 있다. 컨텐츠 파일(112)에 의해 사용되는 프레젠테이션 표면의 예시들로 워드 프로세싱 프로그램에서의 문서, 프레젠테이션 프로그램에서의 슬라이드, 스프레드시트 프로그램에서의 워크시트, 노트 프로그램에서의 노트, 개인 정보 관리자(PIM)에서의 접촉식 카드, 및 애플리케이션 프로그램들에 의해 통상적으로 사용되는 다른 공간들을 포함할 수 있지만 이에 제한되지는 않는다. 일 실시예에서, 예를 들어, 파일 서술자 표면(222)은 전자 디스플레이와 같은 출력 장치의 200x200 화소 공간과 동일한 크기를 가질 수 있다.
파일 서술자 표면(222)은 특정 토폴로지에서 파일 서술자 표면(222) 상에서 정의되거나 배치된 다양한 파일 서술자 타일(224-e)을 포함할 수 있다. 파일 서술자 타일(224-e)은 컨텐츠 부분(204-c) 또는 추출된 컨텐츠 부분(208-s)과 같은 개별 정보 집합을 제공하도록 지정된 파일 서술자 표면(222)의 정의된 영역을 포함할 수 있다. 정의된 영역은 특정 구현에 필요한 대로 임의의 크기, 치수 또는 형상을 가질 수 있다. 특정 파일 서술자 표면(222)은 많은 파일 서술자 타일(224-e)을 가질 수 있으며, 각각의 파일 서술자 타일(224-e)은 모든 파일 서술자 타일들(224-e)이 파일 서술자 표면(222)에서 주어진 크기 내에 맞도록 보장하기 위한 정의들(예를 들어, 크기, 형상, 치수, 기하 구조)의 집합을 가질 수 있다. 파일 서술자 타일들(224-e)에 대한 정의들은 파일 서술자 표면(222), 컨텐츠 부분(204-c) 또는 추출된 컨텐츠 부분(208-s)의 집합, 컨텐츠 부분(204-c) 또는 추출된 컨텐츠 부분(208-s)과 파일 서술자 타일(224-e) 간의 연관성, 디스플레이의 특성, 장치의 특성, 사용자 선호도 및 기타 요인들에 기반하여 동적으로 변경될 수 있다. 실시예는 이러한 맥락으로 한정되지 않는다.
추출된 컨텐츠 부분(208-s)은 조립 동작 중에 파일 서술자 모델(126-1)의 다양한 파일 서술자 타일들(224-e)에 삽입될 수 있으며, 이는 아래에서 추가적으로 설명될 것이다. 도 2에 도시된 바와 같이, 파일 서술자 추출 컴포넌트(122-1)가 컨텐츠 파일(112)에서 컨텐츠 부분(204-1)을 추출하면, 파일 서술자 조립 컴포넌트(122-3)는 추출된 컨텐츠 부분(204-1)을 파일 서술자 표면(222)의 대응 파일 서술자 타일(224-1)에 삽입할 수 있다. 이는 파일 서술자 표면(222)이 완전히 채워질 때까지, 컨텐츠 파일(112)의 컨텐츠 부분(204-c)이 남아 있지 않을 때까지, 타이머 만료까지, 또는 기타 종료 조건이 생길 때까지, 파일 서술자 타일(224-2)에 컨텐츠 파일(204-2)을 삽입하는 것 등으로 계속될 수 있다.
컨텐츠 파일(112)의 적절한 컨텐츠 부분(204-c)을 추출하기 위해, 파일 서술자 추출 컴포넌트(122-1)는 파일 서술자 모델(126-1)에서 제공하는 명령어, 규칙 또는 알고리즘을 이용할 수 있다. 추가적으로 또는 이를 대신하여, 파일 서술자 추출 컴포넌트(122-1)는 파일 서술자 애플리케이션(120)을 위해 설계된 독점 컨텐츠 추출 알고리즘을 이용할 수 있다.
컨텐츠 추출 알고리즘은 컨텐츠 파일(112)에서 검색할 정보의 유형에 관련된 규칙 집합을 포함할 수 있다. 상이한 파일 유형에 대해 상이한 컨텐츠 추출 알고리즘을 이용할 수 있다. 예를 들어 그러나 제한 없이, 워드 프로세싱 문서를 포함하는 컨텐츠 파일(112)로부터 컨텐츠 부분(204-c)을 추출하기 위해 설계된 컨텐츠 추출 알고리즘을 만들 수 있다. 그러나, 특정 구현을 위해 원하는 대로의 유사한 원리를 사용하여 상이한 파일 유형에 대해 상이한 컨텐츠 추출 알고리즘이 설계될 수 있음을 이해할 것이다. 실시예는 이러한 맥락으로 한정되지 않는다.
일 실시예에서, 예를 들어, 컨텐츠 추출 알고리즘은 컨텐츠 파일(112)로부터의 컨텐츠 및 프로퍼티 클래스(예를 들어, 단락 또는 프로퍼티), 컨텐츠 파일(112)에 대한 컨텐츠 객체 클래스(예를 들어, 이미지, 삽입 객체) 및 컨텐츠 파일(112) 내의 컨텐츠 페이지 클래스, 또는 이들의 특정 조합을 포함하는 세 가지의 정보 클래스 및 관련 규칙들을 포함할 수 있다. 특정 컨텐츠 파일 유형에 대해 임의 수의 클래스 또는 카테고리가 정의될 수 있다는 점을 알 수 있다.
일 실시예에서, 컨텐츠 및 프로퍼티 클래스의 예시들이 아래와 같이 표 1에 도시될 수 있다.
Figure 112014112582312-pct00001
일 실시예에서, 컨텐츠 객체 클래스의 예시들이 아래와 같이 표 2에 도시될 수 있다.
Figure 112014112582312-pct00002
Figure 112014112582312-pct00003
일 실시예에서, 컨텐츠 페이지 클래스의 예시들이 아래와 같이 표 3에 도시될 수 있다.
Figure 112014112582312-pct00004
데이터 저장소(124)에 저장된 컨텐츠 파일(112)로부터 컨텐츠 부분(204-c)을 검색하는 데 컨텐츠 추출 알고리즘을 사용할 수 있다. 이어서, 파일 서술자 조립 컴포넌트(122-3)는 파일 서술자(134)를 생성하기 위해 추출된 컨텐츠 부분(204-c)을 체계화하고 포맷팅할 수 있다. 예를 들어, 컨텐츠 추출 알고리즘에 관한 규칙은 처음 N 개의 단락과 같이, 문서 내에서 검색된 임의의 텍스트가 문서 내에 지정된 바와 같은 스타일 포맷팅을 유지하는 것으로 지정할 수 있다. 다른 규칙은 문서 내의 실제 텍스트가 아닌 컨텐츠 프로퍼티들은 문서 내에서 지정된 바와 같은 정상 스타일로써 포맷팅되는 것일 수 있다. 또 다른 규칙은 컨텐츠 부분(204-c)의 전체 텍스트가 파일 서술자 타일(224-e)의 치수들 내에 맞지 않는 경우에 텍스트의 끝에 생략 부호 "..."를 첨부하는 것일 수 있다. 이들은 일부 예시적인 규칙들에 불과하며, 다른 규칙들도 가능하다. 실시예는 이러한 맥락으로 한정되지 않는다.
경우에 따라서, 컨텐츠 추출 알고리즘은, 때때로 비공식적으로 "매쉬업(mashup)"으로 지칭되는, 컨텐츠 및 프로퍼티 클래스, 컨텐츠 객체 클래스 및 컨텐츠 페이지 클래스의 조합으로부터 파일 서술자(134)를 생성하기 위한 규칙들의 집합을 정의할 수 있다. 이는 컨텐츠 파일(112)의 컨텐츠를 표현하도록 구성된 고도로 맞춤화된 파일 서술자(134)를 제공한다.
일 실시예에서, 상이한 클래스 조합들의 예시들이 아래와 같이 표 4에 도시될 수 있다.
Figure 112014112582312-pct00005
컨텐츠 추출 알고리즘은 파일 서술자(134)를 단일 클래스 또는 클래스 내의 유형으로 제한하는 규칙들도 제공할 수 있다. 예를 들어, 규칙은 컨텐츠 파일(112)에서 텍스트의 형태의 컨텐츠, 또는 컨텐츠 파일(112)에 대한 이미지의 형태의 컨텐츠 객체들만을 사용하도록 정의될 수 있다.
컨텐츠 추출 알고리즘은 최종 선택을 위해 사용자에게 제공할 파일 서술자(134)의 다수의 버전의 목록을 생성하기 위한 규칙을 더 제공할 수 있다. 예를 들어, 규칙은 파일 서술자(134)의 P 개의 버전을 생성할 수 있으며, P는 임의의 양의 정수(예를 들어, P = 10)를 나타낼 수 있다. 파일 서술자(134)의 다수의 버전의 목록이 아래와 같이 표 5에 주어진 예시들에 따라 생성될 수 있다.
Figure 112014112582312-pct00006
추출 동작 이전, 도중 또는 이후에, 파일 서술자 추출기 컴포넌트(122-1)는 컨텐츠 파일(112)의 컨텐츠 부분(204-c) 또는 추출된 컨텐츠 부분(208-s) 각각에 컨텐츠 부분 식별자(206-d)를 배정할 수 있다. 또는, 컨텐츠 파일(112)의 각각의 컨텐츠 부분(204-c)에 컨텐츠 부분 식별자(206-d)가 사전 배정될 수도 있다. 컨텐츠 부분 식별자(206-d)는 추출된 대응 컨텐츠 부분(208-s)을 고유하게 식별한다. 또한, 추출된 컨텐츠 부분(208-s) 각각은 파일 서술자(134)의 파일 서술자 표면(222)의 파일 서술자 타일(224-e)에 대응한다. 이런 식으로, 컨텐츠 파일(112)에 의해 저장되어 있는 컨텐츠 부분(204-c)에 변경이 생길 때, 파일 서술자 동기화기 컴포넌트(122-4)는 파일 서술자(134)에 업데이트 동작을 수행하기 위해 파일 서술자(134)가 사용한 추출된 대응 컨텐츠 부분(208-s)을 식별할 수 있다.
도 3은 시스템(100)의 운영 환경(300)의 일 실시예를 도시한다. 보다 구체적으로는, 운영 환경(300)은 파일 서술자 대체 컴포넌트(122-2)에 대한 예시적인 동작을 도시한다.
도 1과 관련하여 전술한 바와 같이, 파일 서술자 애플리케이션(120)은 파일 서술자 대체 컴포넌트(122-2)를 포함할 수 있다. 파일 서술자 대체 컴포넌트(122-2)는 추출된 컨텐츠 부분(208-s)을 형성하기 위해 컨텐츠 파일(112)의 컨텐츠 부분(204-c)을 교체 컨텐츠 부분(304-f)으로 대체하는 동작을 할 수 있다. 교체 컨텐츠 부분(304-f)은 컨텐츠 부분(204-c)의 대체, 교체 또는 대안으로 사용되는 컨텐츠 부분을 포함할 수 있다.
일 실시예에서, 교체 컨텐츠 부분(304-f)은 데이터 소스에 의해 미리 생성되어 저장된 정적인 부분일 수 있다. 이 경우에, 파일 서술자 대체 컴포넌트(122-2)는 추출된 컨텐츠 부분(204-c)에 적당한 저장된 교체 컨텐츠 부분(304-f)을 선택할 수 있다. 교체 컨텐츠 부분(304-f)에 대한 적절한 데이터 소스의 예시로는 동일하거나 다른 컨텐츠 파일(112)의 다른 컨텐츠 부분(204-c), 데이터 저장소(124)에 의해 저장된 교체 컨텐츠 부분(304-f), 또는 그 밖의 다른 데이터 소스를 제한 없이 포함할 수 있다.
일 실시예에서, 교체 컨텐츠 부분(304-f)은 추출된 컨텐츠 부분(204-c)으로부터 자동으로 또한 동적으로 생성될 수 있다. 교체 컨텐츠 부분(304-f)을 동적으로 생성하기 위해서, 파일 서술자 대체 컴포넌트(122-2)는 파일 변환 모델(308-g)에서 제공하는 명령어, 규칙 또는 알고리즘을 이용할 수 있다. 다른 컨텐츠 파일들(112), 컨텐츠 파일(112)의 컨텐츠 부분(204-c), 컨텐츠 유형, 컨텐츠 포맷, 클라이언트 애플리케이션 등에 대해 파일 변환 모델(308-g)이 설계될 수 있다.
작동 시에, 파일 변환 모델(308-1)이 스프레드시트 애플리케이션을 위해 특별히 설계되었다고 가정하자. 또한 파일 서술자 추출기 컴포넌트(122-1)가 스프레드시트 애플리케이션에 대한 컨텐츠 파일(112)로부터 컨텐츠 부분(204-3)을 추출한다고 가정하자. 파일 서술자 추출기 컴포넌트(122-1)는 컨텐츠 부분(204-3)이 표로 나타낸 데이터임을 탐지한다. 파일 서술자 추출기 컴포넌트(122-1)는 파일 서술자 대체 컴포넌트(122-2)에 통지할 수 있다. 파일 서술자 대체 컴포넌트(122-2)는 데이터 저장소(124)에서 교체 컨텐츠 부분(304-3)이나 파일 변환 모델(308-1)을 검색할 수 있다. 전자의 경우, 파일 서술자 대체 컴포넌트(122-2)는 컨텐츠 부분(204-3)을 저장된 교체 컨텐츠 부분(304-3)으로 대체할 수 있다. 후자의 경우, 파일 서술자 대체 컴포넌트(122-2)는 파일 변환 모델(308-1)을 사용하여 컨텐츠 부분(204-3)으로부터 교체 컨텐츠 부분(304-3)을 생성할 수 있다. 파일 변환 모델(308-1)은 표로 나타낸 데이터를 막대 그래프로 변환하기 위한 규칙 또는 프로그램 명령어 집합을 포함할 수 있다. 파일 서술자 대체 컴포넌트(122-2)는 컨텐츠 부분(204-3)을 생성된 교체 컨텐츠 부분(304-3)으로 대체할 수 있다. 교체 컨텐츠 부분(304-3)은 추출된 컨텐츠 부분(208-3)이 된다. 이후에 컨텐츠 파일(112)을 나타내는 파일 서술자(134)를 구성하기 위해 막대 그래프가 사용될 수 있다.
도 4는 시스템(100)의 운영 환경(400)의 일 실시예를 도시한다. 보다 구체적으로는, 운영 환경(400)은 파일 서술자(134)를 조립할 때 파일 서술자 조립 컴포넌트(122-3)에 대한 예시적인 동작을 도시한다.
파일 서술자 조립 컴포넌트(122-3)는 파일 서술자 모델(126-b)에 기반하여 컨텐츠 파일(112)의 하나 이상의 추출된 컨텐츠 부분(208-s)으로부터 파일 서술자(134)를 생성하는 동작을 할 수 있다. 파일 서술자 조립 컴포넌트(122-3)는 추출된 컨텐츠 부분(208-s)과 교체 컨텐츠 부분(304-f)을 취하여 이들을 적절한 파일 서술자 타일(224-e)에 삽입할 수 있다. 조립을 돕기 위해, 파일 서술자 조립 컴포넌트(122-3)는 파일 서술자 모델(126-e)로부터 파일 서술자 타일(224-e)에 관한 입력 정보를 수신할 수 있다. 이 정보는 위치, 크기, 형상, 치수, 기하 구조, 경계들, 인접 파일 서술자 타일들(224-e), 이웃 파일 서술자 타일들(224-e) 등과 같은 정보를 포함할 수 있다. 예를 들어, 추출된 컨텐츠 부분(208-s)이 파일 서술자 타일(224-1)의 현재 치수보다 너무 큰 경우, 파일 서술자 조립 컴포넌트(122-3)는 인접 또는 이웃 파일 서술자 타일들(224-2, 224-3)에 관한 정보를 사용하여, 파일 서술자 타일(124-1)에 대한 현재 치수가 더 큰 부분을 수용하도록 늘어날 수 있는지, 또한 그에 따라 파일 서술자 타일들(224-2, 224-3)에 대한 현재 치수가 줄어들 수 있는지 여부를 결정할 수 있다. 파일 서술자 조립 컴포넌트(122-3)는 이런 예시들을 수용하기 위해 다양한 맞춤 알고리즘을 구현할 수 있다.
도 5는 시스템(100)의 운영 환경(500)의 일 실시예를 도시한다. 보다 구체적으로는, 운영 환경(500)은 파일 서술자 구축 정보(132)를 조립할 때 파일 서술자 조립 컴포넌트(122-3)에 대한 예시적인 동작을 도시한다.
실제 파일 서술자(134)의 조립뿐만 아니라, 파일 서술자 조립 컴포넌트(122-3)는 컨텐츠 파일(122)에 대한 파일 서술자(134)를 생성하기 위해 클라이언트 애플리케이션(또는 기타 엔티티)에 의해 사용될 파일 서술자 구축 정보(132)를 생성하는 동작을 할 수 있다.
일 실시예에서, 파일 서술자 구축 정보(132)는 파일 서술자(134)를 조립하는 데 필요한 모든 정보를 포함할 수 있다. 예를 들어, 파일 서술자 구축 정보(132)는 컨텐츠 파일(112)의 하나 이상의 추출된 컨텐츠 부분(208-s)을 프레젠테이션하기 위해 마련된 파일 서술자 표면(222) 및 하나 이상의 파일 서술자 타일(224-e)을 갖는 파일 서술자 모델(126-b)을 포함할 수 있다. 파일 서술자 구축 정보(132)는 실제 추출된 컨텐츠 부분(204-c)을 더 포함할 수 있다.
조립이 되면, 파일 서술자 애플리케이션(120)은 로컬 클라이언트 애플리케이션 또는 원격 클라이언트 애플리케이션으로 파일 서술자 구축 정보(132)를 전송할 수 있다. 로컬 또는 원격 클라이언트 애플리케이션은 컨텐츠 파일(112)에 대한 파일 서술자(134)를 생성하기 위해 수신된 파일 서술자 구축 정보(132)를 사용할 수 있다.
도 6은 시스템(100)의 운영 환경(600)의 일 실시예를 도시한다. 보다 구체적으로는, 운영 환경(600)은 파일 서술자 구축 정보(132)를 조립할 때 파일 서술자 조립 컴포넌트(122-3)에 대한 예시적인 동작을 도시한다.
도 5와 관련하여 설명한 바와 같이, 파일 서술자 조립 컴포넌트(122-3)는 컨텐츠 파일(122)에 대한 파일 서술자(134)를 생성하기 위해 클라이언트 애플리케이션(또는 기타 엔티티)에 의해 사용될 파일 서술자 구축 정보(132)를 생성하는 동작을 할 수 있다. 일 실시예에서, 파일 서술자 구축 정보(132)는 파일 서술자(134)를 조립하는 데 필요한 부분적인 정보만을 포함할 수 있다. 클라이언트 애플리케이션은 컨텐츠 파일(112)과 같이, 파일 서술자(134)를 조립하기 위해 필요한 임의의 추가 정보에 액세스할 수 있다.
도 6에 도시된 바와 같이, 파일 서술자 구축 정보(132)는 파일 서술자 모델 식별자(604), 파일 서술자 모델(126-b)의 파일 서술자 표면(222) 상의 파일 서술자 타일(224-e)을 식별하기 위한 적어도 하나의 파일 서술자 타일 식별자(606-h), 및 파일 서술자 타일 식별자(606-h)에 의해 식별된 파일 서술자 타일(224-e)에 대응하는 컨텐츠 파일(112)의 컨텐츠 부분(204-c)을 식별하기 위한 적어도 하나의 컨텐츠 부분 식별자(206-d)를 포함할 수 있다.
또는, 파일 서술자 구축 정보(132)는 단지 파일 서술자 모델(126-b) 또는 파일 서술자 모델 식별자(604)에 한정될 수 있다. 전자의 경우, 예를 들어, 파일 서술자 애플리케이션(120)이 클라이언트 장치들이 파일 서술자 모델(126-d)의 최근 집합에 액세스할 수 없거나 또는 최근 집합으로 업데이트되지 않은 클라이언트 애플리케이션을 포함하는 클라이언트-서버 환경에서 구현될 때 바람직할 수 있다. 이 경우에, 파일 서술자 구축 정보(132)는 특정 컨텐츠 파일(112)에 적절한 최근 파일 서술자 모델(126-b)을 포함할 수 있다. 후자의 경우는, 예를 들어, 서버 장치와 클라이언트 장치 간의 네트워크 트래픽을 줄이기 위해 또는 저대역폭 접속을 위해 바람직할 수 있다.
조립이 되면, 파일 서술자 애플리케이션(120)은 로컬 클라이언트 애플리케이션 또는 원격 클라이언트 애플리케이션으로 파일 서술자 구축 정보(132)를 전송할 수 있다. 로컬 또는 원격 클라이언트 애플리케이션은 컨텐츠 파일(112)에 대한 파일 서술자(134)를 생성하기 위해 수신된 파일 서술자 구축 정보(132)를 사용할 수 있다. 예를 들어, 클라이언트 애플리케이션은 수신된 파일 서술자 구축 정보(132)에 내장된 컨텐츠 부분 식별자(126-d)와 컨텐츠 파일(112)의 컨텐츠 부분 식별자(206-d)를 매치시킬 수 있다. 클라이언트 애플리케이션은 매치하는 컨텐츠 부분 식별자(206-d)를 갖는 컨텐츠 부분(204-c)을 추출하고 조립하기 위해 파일 서술자 애플리케이션(120)의 클라이언트 버전을 이용할 수 있다.
도 7은 시스템(100)의 운영 환경(700)의 일 실시예를 도시한다. 보다 구체적으로는, 운영 환경(700)은 파일 서술자(134)의 컨텐츠 부분들(204-c)을 동기화시킬 때 파일 서술자 동기화기 컴포넌트(122-4)에 대한 예시적인 동작을 도시한다.
파일 서술자 동기화기 컴포넌트(122-4)는 컨텐츠 파일(112)의 컨텐츠 부분(204-c)에 대한 변경을 파일 서술자(134)의 컨텐츠 파일(112)의 추출된 대응 컨텐츠 부분(208-s)과 동기화시키는 동작을 할 수 있다. 이는 푸쉬(push) 모델이나 또는 풀(pull) 모델을 사용하여 실행될 수 있다.
푸쉬 모델에서, 컨텐츠 파일(112)의 컨텐츠 부분(204-c)에 대해 변경 이벤트(702-j)가 발생할 수 있다. 변경 이벤트(702-j)는 컨텐츠 변경, 포맷 변경, 스타일 변경, 컨텐츠 편집, 컨텐츠 삭제 등과 같이 컨텐츠 부분(204-c)에 생긴 임의의 수정을 포함할 수 있다. 파일 서술자 동기화기 컴포넌트(122-4)는 변경 이벤트(702-j)를 탐지하고(또는 통지됨), 컨텐츠 부분(204-c)에 생긴 임의의 변경을 파일 서술자(134)의 추출된 대응 컨텐츠 부분(208-s)과 동기화시키기 위해 동기화 동작을 시작한다. 예를 들어, 파일 서술자가 컨텐츠 파일(112)의 컨텐츠 부분(204-1)에 대응하는 추출된 컨텐츠 부분(208-1)을 포함한다고 가정하자. 또한, 컨텐츠 부분(204-1)이 밑줄 없이 "Class Trip To The Zoo"라는 문구라고 가정하자. 또한, 사용자가 "Class Trip To The Zoo"를 "Class Trip To The Zoo "로 컨텐츠 부분(204-1)의 포맷을 변경한다고 가정하자. 이런 변경은 변경 이벤트(702-1)를 포함한다. 파일 서술자 동기화기 컴포넌트(122-4)는 컨텐츠 파일(112)에 대한 개인 또는 공공 저장 장소를 주기적으로 모니터링함으로써 변경 이벤트(702-1)를 탐지할 수 있다. 아니면, 클라이언트 애플리케이션은 파일 서술자 동기화기 컴포넌트(122-4)에 변경 이벤트(702-1)를 통지할 수도 있다. 변경 이벤트(702-1)를 인지하면, 파일 서술자 동기화기 컴포넌트(122-4)는 클라이언트 애플리케이션(혹은 그 밖의 다른 엔티티)에 변경을 푸쉬할 수 있고, 이는 컨텐츠 부분(204-1)과 추출된 컨텐츠 부분(208-1)이 실질적으로 서로 동일하도록 파일 서술자(134)의 추출된 컨텐츠 부분(208-1)에 대한 변경 업데이트 이벤트(704-1)를 실행하게 된다. 마찬가지로, 컨텐츠 부분(204-2)에 대한 변경 이벤트(702-2)는 추출된 컨텐츠 부분(208-2)에 대한 변경 업데이트 이벤트(704-2)를 실행하게 할 수 있다. 그 밖의 다른 변경 이벤트들(702-j)에 대해서 유사한 방식으로 동기화 동작이 계속될 수 있다.
클라이언트 애플리케이션에 변경을 푸쉬하는 푸쉬 모델을 사용하지 않고, 파일 서술자 동기화기 컴포넌트(122-4)는 새로운 파일 서술자(134)를 생성하기 위해 클라이언트 애플리케이션에 요청을 전송하는 풀 모델을 대신 사용할 수 있다. 클라이언트 애플리케이션은 업데이트된 컨텐츠 파일(112)과 함께 새로운 파일 서술자 요청(110)을 전송하고, 파일 서술자 애플리케이션(120)은 새로운 파일 서술자 요청(110)에 대한 응답으로 새로운 서술자 파일(134)을 생성할 수 있다. 이런 의미에서, 클라이언트 애플리케이션은 파일 서술자 동기화기 컴포넌트(122-4)를 이용하여 변경을 "풀"하게 된다.
풀 모델의 다른 예시로 새로운 파일 서술자 요청(110)이 전송될 때를 식별하기 위한 특정 트리거의 사용을 포함할 수 있다. 트리거의 예로는 타이머에 기반한 주기적인 트리거, 주문형(on-demand) 트리거(예컨대, 사용자 요청), 또는 클라이언트 장치 또는 클라이언트 애플리케이션에 의해 탐지되는 사용자 행동에 기반한 이벤트-기반 트리거를 들 수 있다. 예를 들어, 주기적으로 파일 서술자(134)에 대한 업데이트를 자동으로 요청하기 위해 타이머를 사용할 수 있다. 다른 예를 들면, 사용자는 파일 서술자(134)에 대한 업데이트를 수동으로 요청할 수 있다. 또 다른 예를 들면, 클라이언트 애플리케이션은 언제 컨텐츠 파일(112)에 변경이 생기는지를 탐지하고, 새로운 파일 서술자 요청(110)을 생성하기 위해 이벤트-기반 트리거로서 이런 변경을 사용할 수 있다. 파일 서술자 동기화기 컴포넌트(122-4)는 추출된 특정 컨텐츠 부분들(208-s)이나, 또는 전체 파일 서술자(134)를 업데이트할 수 있다.
도 8은 집중형 시스템(800)의 블록도를 도시한다. 집중형 시스템(800)은 전체가 단일 장치(820) 내에 있는 것과 같이, 하나의 컴퓨팅 엔티티에서 시스템(100)에 대한 구조 및/또는 동작들의 일부 또는 전부를 구현할 수 있다.
장치(820)는 시스템(100)에 대한 정보를 수신, 처리, 및 전송할 수 있는 임의의 전자 장치를 포함할 수 있다. 전자 장치의 예시들로는 울트라-모바일 장치, 모바일 장치, PDA(personal digital assistant), 모바일 컴퓨팅 장치, 스마트폰, 전화, 디지털 전화, 무선 전화, 이북 리더, 단말기, 단방향 호출기, 양방향 호출기, 메시징 장치, 컴퓨터, 개인용 컴퓨터(PC), 데스크탑 컴퓨터, 랩탑 컴퓨터, 노트북 컴퓨터, 넷북 컴퓨터, 핸드헬드 컴퓨터, 태블릿 컴퓨터, 서버, 서버 어레이 또는 서버 팜, 웹 서버, 네트워크 서버, 인터넷 서버, 워크 스테이션, 미니 컴퓨터, 메인 프레임 컴퓨터, 수퍼 컴퓨터, 네트워크 기기(network appliance), 웹 기기, 분산 컴퓨팅 시스템, 멀티프로세서 시스템, 프로세서-기반 시스템, 소비자 가전, 프로그램 가능한 소비자 가전, 게임 장치, 텔레비전, 디지털 텔레비전, 셋탑 박스, 무선 액세스 포인트, 기지국, 가입국(subscriber station), 모바일 가입자 센터, 무선 네트워크 컨트롤러, 라우터, 허브, 게이트웨이, 브리지, 스위치, 기계, 혹은 이들의 조합을 포함할 수 있지만 이에 제한되지는 않는다. 실시예는 이러한 맥락으로 한정되지 않는다.
장치(820)는 처리 컴포넌트(830)를 이용하여 시스템(100)에 대한 처리 동작 또는 로직을 실행할 수 있다. 처리 컴포넌트(830)는 다양한 하드웨어 요소, 소프트웨어 요소 또는 이들 양자의 조합을 이용하여 구현될 수 있다. 하드웨어 요소의 예는 장치, 컴포넌트, 프로세서, 마이크로프로세서, 회로, 회로 요소(예를 들어, 트랜지스터, 저항기, 캐패시터, 인덕터 등), 집적 회로, 주문형 집적 회로(ASIC), 프로그래밍 가능한 논리 장치(PLD), 디지털 신호 프로세서(DSP), 필드 프로그래머블 게이트 어레이(FPGA), 메모리 유닛, 논리 게이트, 레지스터, 반도체 장치, 칩, 마이크로칩, 칩셋 등을 포함할 수 있다. 소프트웨어 요소들의 예는 소프트웨어 컴포넌트, 프로그램, 애플리케이션, 컴퓨터 프로그램, 애플리케이션 프로그램, 시스템 프로그램, 소프트웨어 개발 프로그램, 기계 프로그램, 운영 체제 소프트웨어, 미들웨어, 펌웨어, 소프트웨어 모듈, 루틴, 서브루틴, 함수, 메소드, 프로시저, 소프트웨어 인터페이스, 애플리케이션 프로그램 인터페이스(API), 명령어 세트, 컴퓨팅 코드, 컴퓨터 코드, 코드 세그먼트, 컴퓨터 코드 세그먼트, 워드, 값, 심볼 또는 이들의 임의의 조합을 포함할 수 있다. 하드웨어 요소들 및/또는 소프트웨어 요소들을 이용하여 실시예를 구현할 것인지에 대한 결정은 특정 구현에서 필요한 대로, 원하는 컴퓨팅 레이트, 전력 레벨, 열 내구성, 처리 사이클 예산, 입력 데이터 레이트, 출력 데이터 레이트, 메모리 자원, 데이터 버스 속도 및 기타 설계 또는 성능 제약과 같이 많은 요인에 따라 달라질 수 있다.
장치(820)는 통신 컴포넌트(840)를 이용하여 시스템(100)에 대한 통신 동작 또는 로직을 실행할 수 있다. 통신 컴포넌트(840)는 패킷 전환 네트워크(예를 들어, 인터넷과 같은 공용 네트워크, 사업체 인트라넷과 같은 사설 네트워크 등), 회로 전환 네트워크(예를 들어, 공중 교환 전화망), 또는 (적절한 게이트웨이 및 번역기를 갖는) 패킷 전환 네트워크와 회로 전환 네트워크의 조합에 이용하기에 적합한 기술과 같은 임의의 잘 알려진 통신 기술 및 프로토콜을 구현할 수 있다. 통신 컴포넌트(840)는 하나 이상의 통신 인터페이스, 네트워크 인터페이스, 네트워크 인터페이스 카드(NIC), 라디오, 무선 송신기/수신기(송수신기), 유선 및/또는 무선 통신 매체, 물리적 접속기 등과 같은 다양한 유형의 표준 통신 구성 요소를 포함할 수 있다. 예를 들어, 통신 매체(812, 842)는 유선 통신 매체 및 무선 통신 매체를 포함하지만 이것으로 제한되는 것은 아니다. 유선 통신 매체의 예시는 와이어, 케이블, 금속 리드, 인쇄 회로 보드(PCB), 백플레인(backplane), 스위치 패브릭, 반도체 물질, 꼬임쌍선(twisted-pair) 와이어, 동축(co-axial) 케이블, 광섬유, 전파 신호 등을 포함할 수 있다. 무선 통신 매체의 예시는 음향, 무선 주파수(RF) 스펙트럼, 적외선 및 그 외의 무선 매체를 포함할 수 있다.
장치(820)는 통신 컴포넌트(840)를 통해 각각 통신 신호(814, 844)를 이용하여 통신 매체(812, 842) 상에서 다른 장치들(810, 850)과 통신할 수 있다. 장치들(810, 850)은 특정 구현예에서 원하는 대로 장치(820)의 내부 혹은 외부에 있을 수 있다.
이와 같은 구현에서, 시스템(100)의 파일 서술자 애플리케이션(120)은 클라이언트 장치 또는 네트워크 장치와 같은 단일 장치에서 구현될 수 있다. 예를 들어, 파일 서술자 애플리케이션(120)은 클라이언트 장치의 클라이언트 애플리케이션(802)과 동일한 장소에 배치될 수 있다. 클라이언트 애플리케이션(802)은 클라이언트 애플리케이션(802)이 관리하는 다양한 컨텐츠 파일들(112)에 대한 파일 서술자(134)를 생성하기 위해 파일 서술자 애플리케이션(120)에 서비스를 요청할 수 있다. 예를 들어, 클라이언트 애플리케이션(802)은 전술한 바와 같이, 워싱턴 주 레드몬드의 마이크로소프트사에 의해 제작된 MICROSOFT WINDOWS®에 대한 MICROSOFT® OFFICE 제품군과 같이, 특정 운영 체제를 위해 설계된 상호 관련된 클라이언트 애플리케이션들, 서버 애플리케이션들 및 웹 서비스들의 제품군의 클라이언트 애플리케이션을 포함할 수 있다. 다른 예를 들면, 클라이언트 애플리케이션(802)은 장치(820)에 대한 운영 체제와 같은 시스템 프로그램을 포함할 수 있다. 이 경우에, 클라이언트 애플리케이션(802)은 파일 프레젠테이션, 탐색, 선택 등과 같은 파일 관리 동작을 위해 파일 서술자 애플리케이션(120)에 파일 서술자 서비스를 요청할 수 있다. 또 다른 예를 들면, 파일 서술자 애플리케이션(120)은 서버, 웹 서버, 사업체 서버 또는 클라우드 서버 상에서 클라이언트 애플리케이션(802)과 동일한 장소에 배치될 수 있다. 이 경우에, 클라이언트 애플리케이션(802) 및 시스템(100)은 모두 장치들(810, 850) 중 어느 하나 또는 양쪽 모두를 통해 액세스되는 클라우드-기반 서비스들일 수 있다. 이런 구현의 예시들로는 MICROSOFT WINDOWS LIVE®, MICROSOFT OFFICE WEB APPLICATIONS, MICROSOFT OFFICE LIVE, MICROSOFT LIVE MEETING, MICROSOFT OFFICE PRODUCT WEB SITE, MICROSOFT UPDATE SERVER, 및 MICROSOFT OFFICE 365를 포함할 수 있지만 이에 제한되지 않는다.
도 9는 분산형 시스템(900)의 블록도를 도시한다. 분산형 시스템(900)은 복수의 컴퓨팅 엔티티에 걸쳐 시스템(100)에 대한 구조 및/또는 동작의 부분들을 분산시킬 수 있다. 분산형 시스템(900)의 예시는 클라이언트-서버 아키텍처, 3단(3-tier) 아키텍처, N단 아키텍처, 단단하게 연결된 또는 클러스터된 아키텍처, 피어-투-피어 아키텍처, 마스터-슬레이브(master-slave) 아키텍처, 공유 데이터베이스 아키텍처 및 그 외의 유형의 분산형 시스템을 포함할 수 있지만, 이에 제한되는 것은 아니다. 실시예는 이러한 맥락으로 한정되지 않는다.
분산 시스템(900)은 클라이언트 장치(910)와 서버 장치(950)를 포함할 수 있다. 일반적으로, 클라이언트 장치(910)와 서버 장치(950)는 도 8에서 설명된 바와 같이 클라이언트 장치(820)와 동일하거나 유사할 수 있다. 예를 들어, 클라이언트 장치(910)와 서버 장치(950)는 각각 도 8에서 설명된 바와 같이, 처리 컴포넌트(830)과 통신 컴포넌트(840)와 각각 동일하거나 유사한 처리 컴포넌트(930)와 통신 컴포넌트(940)를 포함할 수 있다. 다른 예를 들면, 장치들(910, 950)은 통신 컴포넌트(940)를 통해 통신 신호(914)를 사용하여 통신 매체(912) 상에서 통신할 수 있다.
클라이언트 장치(910)는 설명된 실시예에 따른 다양한 방법들을 실행하도록 동작하는 하나 이상의 클라이언트 프로그램을 포함하거나 이용할 수 있다. 일 실시예에서, 예를 들어, 클라이언트 장치(910)는 도 8과 관련하여 설명한 대로 클라이언트 애플리케이션(802)을 구현할 수 있다.
서버 장치(950)는 설명된 실시예에 따른 다양한 방법들을 실행하도록 동작하는 하나 이상의 서버 프로그램을 포함하거나 이용할 수 있다. 일 실시예에서, 예를 들어, 서버 장치(950)는 시스템(100)의 파일 서술자 애플리케이션(120)을 구현할 수 있다.
이와 같은 구현에서, 클라이언트 장치(910)의 클라이언트 애플리케이션(802)은 컨텐츠 파일(112)에 대한 파일 서술자 요청(110)을 네트워크 상에서 통신 신호(914)의 형태로 서버 장치(950)에 전송할 수 있다. 클라이언트 애플리케이션(802)은 전술한 바와 같은 푸쉬 모델 또는 풀 모델을 사용하여 파일 서술자 요청(110)을 시작할 수 있다. 일 실시예에서, 파일 서술자 요청(110)이 컨텐츠 파일(112)을 포함할 수 있다. 일 실시예에서, 파일 서술자 요청(110)이 데이터 저장소(124) 또는 네트워크 저장 장치로부터 컨텐츠 파일(112)을 검색하기 위해 파일 서술자 애플리케이션(120)이 사용할 수 있는 컨텐츠 파일 식별자를 포함할 수 있다. 파일 서술자 애플리케이션(120)은 전술한 바와 같이 파일 서술자 구축 정보(132) 및/또는 파일 서술자(134)를 생성하고, 통신 신호(914)를 통해 파일 서술자 구축 정보(132) 및/또는 파일 서술자(134)를 갖는 파일 서술자 응답(130)을 클라이언트 장치(910)로 전송할 수 있다. 파일 서술자 구축 정보(132)를 수신하는 경우에, 클라이언트 장치(910)의 클라이언트 애플리케이션(802)이나 또는 운영 체제는 컨텐츠 파일(112)을 표현하기 위해 파일 서술자(134)를 조립하거나 생성할 수 있다. 파일 서술자(134)를 수신하는 경우에, 클라이언트 장치(910)의 클라이언트 애플리케이션(802)이나 또는 운영 체제는 컨텐츠 파일(112)을 표현하기 위해 파일 서술자(134)를 제공할 수 있다.
본원에는 개시된 아키텍처의 신규한 양태들을 수행하기 위한 예시적인 방법을 나타내는 흐름도들이 포함되어 있다. 간단한 설명을 위해, 예를 들어, 흐름도 또는 순서도의 형태로 본원에 도시된 하나 이상의 방법은 일련의 동작들로 도시되고 설명되었지만, 본 방법이 그러한 동작 순서로 제한되는 것이 아니며, 일부 동작들은 본원에 도시되고 설명된 것과는 다른 순서로 수행되거나 및/또는 다른 동작들과 동시에 수행될 수도 있다는 점을 이해해야 한다. 예를 들어, 당업자는 그 대신에 방법이 상태도와 같이 상호 연관된 일련의 상태나 이벤트로 표현될 수도 있다는 것을 이해하고 알 것이다. 또한, 신규한 구현을 위해 방법에서 설명된 모든 동작이 필요한 것은 아니다.
도 10은 논리 흐름도(1000)의 일 실시예를 나타낸다. 논리 흐름도(1000)는 본원에 기술된 하나 이상의 실시예에 의해 실행되는 동작들의 일부 또는 전부를 나타낼 수 있다.
도 10에 도시된 실시예에서, 논리 흐름도(1000)는 블록(1002)에서 클라이언트 애플리케이션으로부터 컨텐츠 파일의 파일 서술자를 생성하기 위한 파일 서술자 요청을 수신할 수 있다. 예를 들어, 시스템(100)의 파일 서술자 애플리케이션(120)은 클라이언트 애플리케이션(802)으로부터 컨텐츠 파일(112)의 파일 서술자(134)를 생성하기 위한 파일 서술자 요청(110)을 수신할 수 있다.
논리 흐름도(1000)는 블록(1004)에서 파일 서술자에 대한 파일 서술자 모델을 검색할 수 있다. 예를 들어, 파일 서술자 추출기 컴포넌트(122-1)는 데이터 저장소(124)에서 파일 서술자(134)에 대한 파일 서술자 모델(126-1)을 검색할 수 있다.
논리 흐름도(1000)는 블록(1006)에서 파일 서술자 모델에 기반하여 컨텐츠 파일로부터 하나 이상의 컨텐츠 부분을 추출할 수 있다. 예를 들어, 파일 서술자 추출기 컴포넌트(122-1)는 파일 서술자 모델(126-1)에 기반하여 컨텐츠 파일(112)로부터 하나 이상의 컨텐츠 부분(204-c)을 추출할 수 있다. 파일 서술자 추출기 컴포넌트(122-1)는 또한 사전 배정된 컨텐츠 부분 식별자(206-d)를 이용하거나 추출된 컨텐츠 부분에 컨텐츠 부분 식별자(206-d)를 배정함으로써 컨텐츠 파일(112)로부터 하나 이상의 추출된 컨텐츠 부분(208-s)을 식별할 수 있다. 컨텐츠 부분 식별자(206-d)는 파일 서술자(134)에 대한 업데이트를 동기화하는 데 사용될 수 있다.
추출 동작 중에, 파일 서술자 추출기 컴포넌트(122-1)는 컨텐츠 부분(204-c)이 다른 컨텐츠 부분과 교체되어야 한다고 결정할 수 있다. 이런 경우에, 파일 서술자 추출기 컴포넌트(122-1)가 파일 서술자 대체 컴포넌트(122-2)에 통지할 수 있다. 파일 서술자 대체 컴포넌트(122-2)는 컨텐츠 파일(112)의 컨텐츠 부분(204-c)을 교체 컨텐츠 부분(304-f)으로 대체할 수 있다. 파일 서술자 대체 컴포넌트(122-2)는 데이터 저장소(124)에서 교체 컨텐츠 부분(304-f)을 검색하거나 또는 런타임 중에 교체 컨텐츠 부분(304-f)을 생성할 수 있다. 파일 서술자 대체 컴포넌트(122-2)는 컨텐츠 부분(304-f)을 교체 컨텐츠 부분(304-f)으로 대체하고, 따라서 이는 추출된 컨텐츠 부분(208-s)이 된다.
논리 흐름도(1000)에서는 블록(1008)에서 파일 서술자 요청에 대해 파일 서술자 응답을 생성하고, 파일 서술자 응답은 파일 서술자 모델과 추출된 컨텐츠 부분을 사용하여 생성된 파일 서술자 구축 정보 또는 파일 서술자를 포함한다. 예를 들어, 파일 서술자 조립 컴포넌트(122-3)는 파일 서술자 요청(110)에 대해 파일 서술자 응답(130)을 생성할 수 있고, 파일 서술자 응답(130)은 파일 서술자 모델(126-1)과 추출된 컨텐츠 부분(208-s)을 사용하여 생성된 파일 서술자 구축 정보(132) 또는 파일 서술자(134)를 포함한다.
파일 서술자 조립 컴포넌트(122-3)는 컨텐츠 파일(112)에 대한 파일 서술자(134)를 생성하기 위해 클라이언트 애플리케이션(802)이 사용하도록 파일 서술자 구축 정보(132)를 생성할 수 있다. 일 실시예에서, 파일 서술자 구축 정보(132)는 파일 서술자 모델(126-1)과 컨텐츠 파일(112)에서 추출된 하나 이상의 추출된 컨텐츠 부분(208-s)을 포함할 수 있다. 일 실시예에서, 파일 서술자 구축 정보는 파일 서술자 모델(126-1)에 대한 파일 서술자 모델 식별자(604), 파일 서술자 모델(126-1)의 파일 서술자 타일들(224-e)에 대한 하나 이상의 파일 서술자 타일 식별자(606-h), 및 파일 서술자 타일들(224-e)에 대응하는 컨텐츠 파일(112)에서 추출된 컨텐츠 부분들(208-s)에 대한 하나 이상의 컨텐츠 부분 식별자(206-d)를 포함할 수 있다.
파일 서술자 조립 컴포넌트(122-3)는 파일 서술자 모델(126-1)에 기반하여 컨텐츠 파일(112)의 하나 이상의 추출된 컨텐츠 부분(208-s)으로부터 파일 서술자(134)를 생성할 수 있다. 예를 들어, 파일 서술자 조립 컴포넌트(122-3)는 추출된 컨텐츠 부분(208-s) 각각을 파일 서술자 표면(222)의 대응 파일 서술자 타일(224-e)에 삽입할 수 있다. 파일 서술자 조립 컴포넌트(122-3)는 전술한 바와 같은 맞춤 알고리즘을 사용하여 삽입된 부분을 조정할 수 있다.
논리 흐름도(1000)에서는 블록(1010)에서 클라이언트 애플리케이션에 파일 서술자 응답을 전송할 수 있다. 예를 들어, 파일 서술자 애플리케이션(120)은 클라이언트 애플리케이션(802)에 파일 서술자 응답(130)을 전송할 수 있다.
파일 서술자 애플리케이션(120) 또는 클라이언트 애플리케이션(802) 둘 중 하나에 의해 파일 서술자(134)가 생성되면, 컨텐츠 파일(112)의 컨텐츠 부분(204-c)에 생긴 변경이 파일 서술자(134)에 전파될 수 있다. 파일 서술자 동기화기 컴포넌트(122-4)는 컨텐츠 파일(112)의 컨텐츠 부분(204-c)에 대한 변경을 파일 서술자(134)에 의해 표현되는 컨텐츠 파일(112)의 추출된 대응 컨텐츠 부분(208-s)과 동기화시킬 수 있다. 이는 컨텐츠 파일(112)의 컨텐츠 부분(204-c)과 파일 서술자(134)의 추출된 컨텐츠 부분(208-s)이 동기화되어 실질적으로 동일하게 유지되도록 보장한다. 그 결과, 파일 서술자(134)는 실질적으로 실시간 방식으로 기저의 컨텐츠 파일(112)을 계속 정확하게 표현하게 된다.
도 11은 전술한 바와 같은 다양한 실시예를 구현하기에 적합한 예시적인 컴퓨팅 아키텍처(1100)의 일 실시예를 도시한다. 일 실시예에서, 컴퓨팅 아키텍처(1100)는 전자 장치를 포함하거나 전자 장치의 일부로서 구현될 수 있다. 전자 장치의 예시들은 특히 도 8과 관련하여 설명된 것들을 포함할 수 있다. 실시예들은 이러한 맥락으로 한정되지 않는다.
본원에서 사용되는 "시스템" 및 "컴포넌트"라는 용어는 하드웨어, 하드웨어와 소프트웨어의 조합, 소프트웨어, 실행 중인 소프트웨어 등 컴퓨터와 연관된 엔티티를 지칭하는 데, 예로서 예시적인 컴퓨팅 아키텍처(1100)가 있다. 예컨대, 컴포넌트는 프로세서 상에서 실행되는 프로세스, 프로세서, 하드 디스크 드라이브, 복수의 저장 장치 (광 및/또는 자기 저장 매체), 객체, 실행 파일, 실행 쓰레드, 프로그램 및/또는 컴퓨터를 포함하나, 이에 제한되지는 않는다. 설명하자면, 서버 상에서 실행되는 애플리케이션 및 그 서버 모두가 컴포넌트가 될 수 있다. 하나의 프로세스 및/또는 실행 쓰레드 내에 하나 이상의 컴포넌트가 존재할 수 있고, 하나의 컴포넌트가 하나의 컴퓨터 상에 로컬화되거나 및/또는 둘 이상의 컴퓨터 사이에 분산될 수도 있다. 또한, 컴포넌트들은 동작들을 구성하는 다양한 유형의 통신 매체에 의해 서로 통신 가능하게 결합될 수 있다. 구성은 일방향(uni-directional) 또는 양방향(bi-directional) 정보 교환과 관련될 수 있다. 예를 들어, 컴포넌트는 통신 매체를 통해 통신되는 신호 형태로 정보를 통신할 수 있다. 정보는 다양한 신호선에 할당되는 신호로서 구현될 수도 있다. 이러한 할당의 경우, 각 메시지는 신호이다. 그러나, 이와는 달리, 다른 실시예들은 데이터 메시지를 채용할 수도 있다. 그러한 데이터 메시지는 다양한 접속부에 걸쳐 전송될 수 있다. 예시적인 접속부는 병렬 인터페이스, 직렬 인터페이스, 버스 인터페이스를 포함한다.
컴퓨팅 아키텍처(1100)는 하나 이상의 프로세서, 멀티 코어 프로세서, 코프로세서, 메모리 유닛, 칩셋, 제어기, 주변장치, 인터페이스, 오실레이터, 타이밍 장치, 비디오 카드, 오디오 카드, 멀티미디어 입/출력(I/O) 컴포넌트, 전원 등과 같은 다양한 범용 컴퓨팅 구성 요소를 포함한다. 그러나, 실시예는 컴퓨팅 아키텍처(1100)에 의해 구현되는 것으로 제한되지 않는다.
도 11에 도시된 바와 같이, 컴퓨팅 아키텍처(1100)는 처리 장치(1104), 시스템 메모리(1106), 시스템 버스(1108)를 포함한다. 처리 장치(1104)는 AMD® Athlon®, Duron® 및 Opteron® 프로세서; ARM® 애플리케이션, 내장 및 보안 프로세서; IBM® 및 Motorola® DragonBall® 및 PowerPC® 프로세서; IBM 및 Sony® Cell 프로세서; Intel® Celeron®, Core (2) Duo®, Itanium®, Pentium®, Xeon®, 및 XScale®; 및 유사한 프로세서들을 제한 없이 포함하는 시판되는 다양한 프로세서들 중 임의의 것일 수 있다. 듀얼 마이크로프로세서, 멀티 코어 프로세서, 및 다른 멀티-프로세서 아키텍처도 처리 장치(1104)로서 구현 가능하다.
시스템 버스(1108)는 처리 장치(1104)에 대한 시스템 메모리(1106)를 포함하는 시스템 컴포넌트를 위한 인터페이스를 제공하나, 이에 제한되지는 않는다. 시스템 버스(1108)는 (메모리 제어기를 갖거나 갖지 않는) 메모리 버스, 주변 버스, 시판되는 다양한 버스 아키텍처를 이용하는 로컬 버스에 대한 추가 상호접속을 제공하는 여러 종류의 버스 구조일 수 있다. 인터페이스 어댑터는 슬롯 아키텍처를 통해 시스템 버스(1108)에 연결될 수 있다. 예시적인 슬롯 아키텍처로는 가속 그래픽 포트(Accelerated Graphics Port, AGP), 카드 버스, (확장) 기술 표준 구조((Extended) Industry Standard Architecture, (E)ISA), 마이크로 채널 구조(Micro Channel Architecture, MCA), 누버스(NuBus), PCI (확장)(Peripheral Component Interconnect (Extended), PCI(X)), PCI 익스프레스, 개인용 컴퓨터 메모리 카드 협회(Personal Computer Memory Card International Association, PCMCIA) 등을 포함하지만 이에 제한되지는 않는다.
컴퓨팅 아키텍처(1100)는 다양한 제조품(articles of manufacture)을 포함하거나 구현할 수 있다. 제조품은 로직을 저장하는 컴퓨터-판독가능 저장 매체를 포함할 수 있다. 컴퓨터-판독가능 저장 매체의 예로는 휘발성 또는 비휘발성 메모리, 이동식 또는 비이동식 메모리, 소거가능 또는 비소거가능 메모리, 기록가능 또는 비기록가능 메모리 등을 포함하는, 전자 데이터를 저장할 수 있는 임의의 유형 매체를 포함할 수 있다. 로직의 예로는 소스 코드, 컴파일된 코드, 번역된 코드, 실행가능 코드, 정적 코드, 동적 코드, 객체 지향 코드, 시각적 코드 등과 같은 임의의 적절한 유형의 코드를 이용하여 구현되는 실행가능한 컴퓨터 프로그램 명령어를 들 수 있다. 또한 실시예는 비일시적 컴퓨터 판독 가능 매체 내에 또는 그 매체 상에 포함된 명령어로 적어도 부분적으로 구현될 수 있으며, 비일시적 컴퓨터 판독 가능 매체는 본원에 기술된 동작들의 실행을 가능하게 하도록 하나 이상의 프로세서에 의해 판독 및 실행될 수 있다.
시스템 메모리(1106)는 판독 전용 메모리(ROM), 랜덤 액세스 메모리(RAM), 동적 RAM(DRAM), 더블-데이터-레이트 DRAM(DDRAM), 동기 DRAM(SDRAM), 정적 RAM(SRAM), 프로그래밍 가능한 ROM(PROM), 삭제 및 프로그래밍 가능한 ROM(EPROM), 전기적 삭제 및 프로그래밍 가능한 ROM(EEPROM), 플래쉬 메모리, 강유전체 폴리머 메모리와 같은 폴리머 메모리, 오보닉(ovonic) 메모리, 위상 변화 또는 강유전체 메모리, SONOS(silicon-oxide-nitride-oxide-silicon) 메모리, 자기 또는 광학 카드, 복수 배열 독립 디스크(Redundant Array of Independent Disks, RAID) 드라이브와 같은 장치 배열, 고체 상태 메모리 장치(예컨대, USB 메모리, 고체 상태 드라이브(SSD)), 또는 정보를 저장하기에 적절한 기타 유형의 매체와 같은 하나 이상의 고속 메모리 유닛의 형태로 다양한 컴퓨터 판독가능 저장 매체를 포함할 수 있다. 도 11에 도시된 실시예에서, 시스템 메모리(1106)는 비휘발성 메모리(1110) 및/또는 휘발성 메모리(1112)를 포함할 수 있다. 기본 입/출력 시스템(BIOS)은 비휘발성 메모리(1110) 내에 저장될 수 있다.
컴퓨터(1102)는 내장(외장) 하드 디스크 드라이브(HDD, 1114), 이동식 자기 디스크(1118)에 기록 또는 판독하는 자기 플로피 디스크 드라이브(FDD, 1116), 및 이동식 광학 디스크(1122)에 기록 또는 판독하는 광학 디스크 드라이브(1120)를 포함하는 하나 이상의 저속 메모리 유닛의 형태로 다양한 유형의 컴퓨터 판독가능 저장 매체를 포함할 수도 있다. HDD(1114), FDD(1116), 및 광학 디스크 드라이브(1120)는 HDD 인터페이스(1124), FDD 인터페이스(1126), 광학 드라이브 인터페이스(1128)에 의해 시스템 버스(1108)에 각각 접속될 수 있다. 외부 드라이브 구현을 위한 HDD 인터페이스(1124)는 USB(Universal Serial Bus)와 IEEE 1394 인터페이스 기법 중 적어도 하나 또는 모두를 포함할 수 있다.
드라이브 및 관련된 컴퓨터 판독가능 매체는 데이터, 데이터 구조, 컴퓨터 실행가능 명령어 등에 대한 휘발성 및/또는 비휘발성 저장소를 제공한다. 예를 들어, 운영 체제(1130), 하나 이상의 애플리케이션 프로그램(1132), 기타 프로그램 모듈(1134), 및 프로그램 데이터(1136)를 포함하는 많은 프로그램 모듈이 드라이브와 메모리 유닛(1110, 1112)에 저장될 수 있다. 일 실시예에서, 하나 이상의 애플리케이션 프로그래(1132), 기타 프로그램 모듈들(1134), 및 프로그램 데이터(1136)는 예를 들어, 시스템(100)의 다양한 애플리케이션 및/또는 컴포넌트들을 포함할 수 있다.
사용자는 하나 이상의 유/무선 입력 장치를 통해, 예를 들어, 키보드(1138) 및 마우스(1140)와 같은 포인팅 장치를 통해 컴퓨터(1102)에 명령어와 정보를 입력할 수 있다. 다른 입력 장치로는 마이크로폰, 적외선(IR) 리모트 콘트롤, 무선 주파수(RF) 리모트 컨트롤, 게임 패드, 스타일러스 펜, 카드 리더, 동글(dongle), 지문 판독기, 글러브, 그래픽 태블릿, 조이스틱, 키보드, 레티나 리더, 터치 스크린(예컨대, 용량성, 저항성 등), 트랙볼, 트랙패드, 센서, 스타일러스 등이 있다. 이러한 입력 장치 및 다른 입력 장치들은 시스템 버스(1108)에 결합된 입력 장치 인터페이스(1142)를 통해 처리 장치(1104)에 접속될 수 있으나, 병렬 포트, IEEE 1394 직렬 포트, 게임 포트, USB 포트, IR 인터페이스 등과 같은 다른 인터페이스를 통해 접속될 수도 있다.
모니터(1144) 또는 다른 유형의 디스플레이 장치가 비디오 어댑터(1146)와 같은 인터페이스를 통해 시스템 버스(1108)에 접속될 수 있다. 모니터(1144)는 컴퓨터(1102)에 내장되거나 외장으로 설치될 수 있다. 모니터(1144) 이외에도 컴퓨터는 통상적으로 스피커, 프린터 등과 같은 다른 주변 출력 장치들을 포함한다.
컴퓨터(1102)는 원격 컴퓨터(1148)와 같은 하나 이상의 원격 컴퓨터에 대한 유선 및/또는 무선 통신을 통해 논리적 접속부를 이용하여 네트워크화된 환경에서 동작한다. 원격 컴퓨터(1148)는 워크스테이션, 서버 컴퓨터, 라우터, 개인용 컴퓨터, 휴대용 컴퓨터, 마이크로프로세스 기반 오락 장치, 피어 장치 또는 기타 범용 네트워크 노드일 수 있으며, 통상적으로 컴퓨터(1102)와 관련하여 설명한 구성 요소들을 상당수 또는 전부를 포함하지만, 간략하게 하기 위해 메모리/저장 장치(1150)만을 도시하였다. 도시된 논리적 접속부는 LAN(local area network, 1152) 및/또는 대형 네트워크, 예컨대, WAN(wide area network, 1154)에 대한 유/무선 접속을 포함한다. 이러한 LAN 및 WAN 네트워크 환경은 사무실이나 기업에서 일반적이며, 인트라넷과 같은 기업형 컴퓨터 네트워크의 편의를 증진시키는데, 이들 모두는 인터넷과 같은 광역 통신 네트워크에 접속될 수 있다.
LAN 네트워크 환경에서 사용되는 경우, 컴퓨터(1102)는 유/무선 통신 네트워크 인터페이스 또는 어댑터(1156)를 통해 LAN(1152)에 접속된다. 어댑터(1156)는 LAN(1152)에 대한 유/무선 통신을 용이하게 할 수 있는데, 어댑터(1156)의 무선 기능을 이용한 통신을 위해 무선 액세스 포인트가 배치되어 있을 수 있다.
WAN 네트워크 환경에서 사용되는 경우, 컴퓨터(1102)는 모뎀을 포함하거나, WAN(1154) 상의 통신 서버에 접속되거나, 인터넷과 같이 WAN(1154)을 통한 통신을 수립할 수 있는 기타 수단을 포함할 수 있다. 내부 또는 외부의 유/무선 장치일 수 있는 모뎀(1158)은 입력 장치 인터페이스(1142)를 통해 시스템 버스(1108)에 접속된다. 네트워크화된 환경에서 컴퓨터(1102)와 관련하여 묘사된 프로그램 모듈 또는 그 일부는 원격 메모리/저장 장치(1150)에 저장될 수 있다. 도시된 네트워크 접속들은 예시적인 것이며 컴퓨터들 사이에 통신 링크를 설정하는 다른 수단들이 사용될 수 있음을 이해할 것이다.
컴퓨터(1102)는 무선 통신(이를테면, IEEE 802.11 방송 변조 기법(over-the-air modulation techniques)에서 동작하도록 배치된 무선 장치와 같이, IEEE 802 표준 패밀리를 이용한 유/무선 장치나 엔티티와 통신하는 동작을 할 수 있다. 이는 특히 적어도 Wi-Fi(또는 Wireless Fidelity), WiMax, 블루투스TM 무선 기법을 포함한다. 따라서, 통신은 종래의 네트워크를 이용한 것과 같은 사전 정의된 구조일 수도 있고, 단순히 적어도 두 개의 장치 사이의 애드 호크 통신일 수도 있다. Wi-Fi 네트워크는 IEEE 802.11x(a, b, g, n 등)라 불리는 라디오 기법을 이용하여 안전하고, 신뢰할만하며, 빠른 무선 접속을 제공한다. Wi-Fi 네트워크는 컴퓨터들을 서로 접속하거나, 인터넷에 및 유선 네트워크(IEEE 802.3-관련 매체 및 기능)에 접속하는 데 사용될 수 있다.
도 12는 전술한 다양한 실시예들을 구현하기에 적합한 예시적인 통신 아키텍처(1200)의 블록도를 나타낸다. 통신 아키텍처(1200)는 송신기, 수신기, 송수신기, 라디오, 네트워크 인터페이스, 베이스밴드 프로세서, 안테나, 증폭기, 필터, 전원 등과 같은 다양한 통상의 통신 구성 요소를 포함한다. 그러나, 실시예들은 통신 아키텍처(1200)에 의한 구현으로 제한되지 않는다.
도 12에 도시한 것과 같이, 통신 아키텍처(1200)는 하나 이상의 클라이언트(1202)와 서버(1204)를 포함한다. 클라이언트(1202)는 클라이언트 장치(910)를 구현할 수 있다. 서버(1204)는 서버 장치(950)을 구현할 수 있다. 클라이언트(1202)와 서버(1204)는 쿠키 및/또는 관련된 맥락 관련 정보와 같이 각각의 클라이언트(1202)와 서버(1204)에 로컬인 정보를 저장하기 위해 이용될 수 있는 하나 이상의 각각의 클라이언트 데이터 저장소(1208)와 서버 데이터 저장소(1210)에 동작 가능하게 접속된다.
클라이언트(1202)와 서버(1204)는 통신 프레임워크(1206)를 이용하여 서로 간에 정보를 통신할 수 있다. 통신 프레임워크(1206)는 잘 알려진 통신 기법 및 프로토콜을 구현할 수 있다. 통신 프레임워크(1206)는 패킷-교환 네트워크(예컨대, 인터넷과 같은 공공 네트워크, 기업 인트라넷과 같은 사설 네트워크 등), 회로-교환 네트워크(예컨대, 공중 교환 전화 네트워크), (적절한 게이트웨이 및 변환기를 이용하는) 패킷-교환 네트워크 및 회로-교환 네트워크의 조합으로서 구현될 수 있다.
통신 프레임워크(1206)는 통신 네트워크를 수락, 통신 및 접속하도록 마련된 다양한 네트워크 인터페이스를 구현할 수 있다. 네트워크 인터페이스는 특화된 형태의 입출력 인터페이스로 간주될 수 있다. 네트워크 인터페이스는 직접 접속, 이더넷(예컨대, 굵은, 가는, 꼬임 쌍선 10/100/1000 Base T 등), 토큰 링, 무선 네트워크 인터페이스, 셀룰러 네트워크 인터페이스, IEEE 802.11a-x 네트워크 인터페이스, IEEE 802.16 네트워크 인터페이스, IEEE 802.20 네트워크 인터페이스 등을 제한 없이 포함하는 접속 프로토콜을 채택할 수 있다. 다양한 통신 네트워크 유형과 작동하기 위해 다수의 네트워크 인터페이스들을 사용할 수 있다. 예를 들어, 브로드캐스트, 멀티캐스트, 및 유니캐스트 네트워크에서의 통신을 위해 다수의 네트워크 인터페이스들을 이용할 수 있다. 처리 요구 조건이 더 큰 속도와 능력을 명시하는 경우, 클라이언트(1202) 및 서버(1204)가 요구하는 통신 대역폭을 풀링(pool), 로드 밸런싱 및 증가시키기 위해 마찬가지로 분산 네트워크 컨트롤러 아키텍처를 이용할 수 있다. 통신 네트워크는 직접 상호 접속, 보안 커스텀 접속, 전용망(예컨대, 사업체 인트라넷), 공중 통신망(예컨대, 인터넷), PAN(Personal Area Network), LAN(Local Area Network), MAN(Metropolitan Area Network), OMNI(Operating Missions as Nodes on the Internet), WAN(Wide Area Network), 무선 네트워크 셀룰러 네트워크, 및 기타 통신 망을 제한 없이 포함하는 유선 및/또는 무선 네트워크 중 어느 하나이거나 그 조합일 수 있다.
일부 실시예들은 "일 실시예(one embodiment)" 또는 "일 실시예(an embodiment)"라는 표현 및 이들의 파생어들을 이용하여 설명될 수 있다. 이러한 용어들은 그 실시예와 관련하여 설명되는 특정 특징, 구조 또는 특성이 적어도 하나의 실시예에 포함된다는 것을 의미한다. 명세서의 다양한 곳에서의 "일 실시예에서(in one embodiment)"라는 문구의 출현들은 모두가 반드시 동일 실시예를 지칭하지는 않는다. 또한, 일부 실시예들은 "결합(coupled)" 및 "접속(connected)"이라는 표현을 이들의 파생물과 함께 이용하여 설명될 수 있다. 이러한 용어들은 반드시 서로에 대한 동의어들인 것을 의도하지는 않는다. 예컨대, 일부 실시예들은 둘 이상의 구성 요소가 서로 직접적인 물리적 또는 전기적 접촉을 한다는 것을 지시하기 위해 "접속(connected)" 및/또는 "결합(coupled)"이라는 용어들을 이용하여 설명될 수 있다. 그러나, "결합(coupled)"이라는 용어는 둘 이상의 구성 요소가 서로 직접 접촉하지는 않지만 여전히 서로 협력하거나 상호작용한다는 것을 의미할 수도 있다.
본원의 요약서는 독자로 하여금 기술 명세서의 특징을 빠르게 확인할 수 있게 하도록 제공되어야 한다는 것을 강조한다. 요약서는 특허청구범위의 범주 또는 의미를 해석하거나 제한하는 데 사용되지 않을 것이라는 이해와 더불어 제출된다. 게다가, 앞서의 상세한 설명에서는, 개시를 간소화하기 위해 다양한 특징들이 단일 실시예 내에 함께 그룹화된다는 것을 알 수 있다. 이러한 개시 방법은 청구되는 실시예들이 각각의 청구항에 명확히 기재된 것보다 많은 특징을 필요로 한다는 의도를 반영하는 것으로 해석되지 않아야 한다. 그보다는, 다음의 청구항들이 나타내듯이, 본 발명 대상은 단일의 개시된 실시예의 모든 특징들보다 적은 특징 내에 존재한다. 따라서, 아래의 청구항들은 상세한 설명 내에 포함되며, 각각의 청구항은 개별 실시예로써 그 자신에 의거한다. 첨부된 청구항들에서, 용어들 "포함하는(including)" 및 "여기서(in which)"는 각각의 용어 "포함하는(comprising)" 및 "에 있어서(wherein)"의 평문 균등물들로서 각각 사용된다. 더욱이, 용어 "제 1(first)", "제 2(second)", "제 3(third)" 등은 단지 표시로써 사용될 뿐, 그 대상들에 대해 수치적 요구 사항을 부과하도록 의도되지 않는다.
전술한 내용은 개시된 아키텍처의 예시들을 포함한다. 물론, 컴포넌트 및/또는 방법의 모든 가능한 조합을 기술하는 것은 불가능하지만, 당업자라면 보다 많은 조합들과 순열이 가능하다는 것을 이해할 것이다. 따라서, 신규한 구성은 첨부하는 특허청구범위의 사상과 범주 내에 포함되는 대체, 수정, 변형을 모두 포함한다.

Claims (20)

  1. 프로세서 회로, 및
    컨텐츠 파일에 대한 파일 서술자(file descriptors)를 관리하기 위해 상기 프로세서 회로 상에서 동작하는 파일 서술자 애플리케이션을 포함하되,
    상기 파일 서술자 애플리케이션은
    클라이언트 애플리케이션으로부터 파일 서술자 요청을 수신하고,
    컨텐츠 파일에 대한 파일 서술자 또는 파일 서술자 구축 정보를 생성하고- 상기 파일 서술자는 상기 컨텐츠 파일의 컨텐츠의 미리보기를 제공하고, 상기 파일 서술자 구축 정보는 상기 클라이언트 애플리케이션이 상기 파일 서술자를 생성하는데 사용됨 -,
    상기 컨텐츠 파일에 대해 행해진 변경을 상기 파일 서술자와 동기화시키며,
    상기 파일 서술자 또는 상기 파일 서술자 구축 정보를 갖는 파일 서술자 응답을 상기 클라이언트 애플리케이션으로 전송하도록 구성되는
    장치.
  2. 제1항에 있어서,
    상기 파일 서술자 애플리케이션은 상기 파일 서술자에 대한 파일 서술자 모델을 검색하고, 상기 파일 서술자 모델에 기초하여 상기 컨텐츠 파일로부터 하나 이상의 컨텐츠 부분을 추출하며, 상기 추출된 컨텐츠 부분 각각을 컨텐츠 부분 식별자를 통해 식별하도록 동작하는 파일 서술자 추출기 컴포넌트를 포함하되, 상기 추출된 컨텐츠 부분 각각은 상기 파일 서술자의 파일 서술자 표면의 파일 서술자 타일에 대응하는
    장치.
  3. 제1항에 있어서,
    상기 파일 서술자 애플리케이션은 상기 컨텐츠 파일로부터 추출된 컨텐츠 부분을 교체 컨텐츠 부분으로 대체하도록 동작하는 파일 서술자 대체 컴포넌트를 포함하는
    장치.
  4. 제1항에 있어서,
    상기 파일 서술자 애플리케이션은 파일 서술자 모델에 기초하여 상기 컨텐츠 파일로부터의 하나 이상의 추출된 컨텐츠 부분으로부터 상기 파일 서술자를 생성하도록 동작하는 파일 서술자 조립 컴포넌트를 포함하는
    장치.
  5. 제1항에 있어서,
    상기 파일 서술자 애플리케이션은 상기 컨텐츠 파일에 대한 상기 파일 서술자를 생성하기 위해 상기 클라이언트 애플리케이션에 의해 사용될 상기 파일 서술자 구축 정보를 생성하도록 동작하는 파일 서술자 조립 컴포넌트를 포함하고, 상기 파일 서술자 구축 정보는 상기 컨텐츠 파일로부터의 하나 이상의 추출된 컨텐츠 부분을 프레젠테이션하도록 구성된 파일 서술자 표면 및 하나 이상의 파일 서술자 타일을 갖는 파일 서술자 모델을 포함하는
    장치.
  6. 제1항에 있어서,
    상기 파일 서술자 애플리케이션은 상기 컨텐츠 파일에 대한 상기 파일 서술자를 생성하기 위해 상기 클라이언트 애플리케이션에 의해 사용될 상기 파일 서술자 구축 정보를 생성하도록 동작하는 파일 서술자 조립 컴포넌트를 포함하고, 상기 파일 서술자 구축 정보는 파일 서술자 모델 식별자, 파일 서술자 모델의 파일 서술자 타일을 식별하기 위한 적어도 하나의 파일 서술자 타일 식별자, 및 상기 파일 서술자 타일 식별자에 의해 식별된 상기 파일 서술자 타일에 대응하는 상기 컨텐츠 파일의 컨텐츠 부분을 식별하기 위한 적어도 하나의 컨텐츠 부분 식별자를 포함하는
    장치.
  7. 제1항에 있어서,
    상기 파일 서술자 애플리케이션은 상기 컨텐츠 파일의 컨텐츠 부분에 대해 행해진 변경을 상기 파일 서술자의 상기 컨텐츠 파일의 대응하는 추출된 컨텐츠 부분과 동기화시키도록 동작하는 파일 서술자 동기화기 컴포넌트를 포함하는
    장치.
  8. 컨텐츠 파일에 대한 파일 서술자 구축 정보 또는 파일 서술자를 생성하기 위한 파일 서술자 요청을 수신하는 단계- 상기 파일 서술자는 상기 컨텐츠 파일의 컨텐츠의 미리보기를 제공하고, 상기 파일 서술자 구축 정보는 클라이언트 애플리케이션이 상기 컨텐츠 파일에 대한 상기 파일 서술자를 생성하는데 사용됨 -와,
    프로세서 회로에 의해, 상기 파일 서술자 요청에 대한 파일 서술자 응답을 생성하는 단계와,
    상기 컨텐츠 파일의 컨텐츠 부분에 대해 행해진 변경을 상기 파일 서술자의 상기 컨텐츠 파일의 대응하는 추출된 컨텐츠 부분과 동기화시키는 단계와,
    상기 파일 서술자 응답을 상기 클라이언트 애플리케이션으로 전송하는 단계를 포함하는
    컴퓨터로 구현되는 방법.
  9. 제8항에 있어서,
    상기 파일 서술자에 대한 파일 서술자 모델을 검색하는 단계를 포함하는
    컴퓨터로 구현되는 방법.
  10. 제8항에 있어서,
    파일 서술자 모델에 기초하여 상기 컨텐츠 파일로부터 하나 이상의 컨텐츠 부분을 추출하는 단계를 포함하는
    컴퓨터로 구현되는 방법.
  11. 제8항에 있어서,
    상기 컨텐츠 파일로부터 하나 이상의 추출된 컨텐츠 부분을 식별하는 단계를 포함하는
    컴퓨터로 구현되는 방법.
  12. 제8항에 있어서,
    상기 컨텐츠 파일의 추출된 컨텐츠 부분에 대한 교체 컨텐츠 부분을 생성하는 단계를 포함하는
    컴퓨터로 구현되는 방법.
  13. 제8항에 있어서,
    상기 컨텐츠 파일로부터의 하나 이상의 추출된 컨텐츠 부분 및 파일 서술자 모델을 포함하는 상기 파일 서술자 구축 정보를 생성하는 단계를 포함하는
    컴퓨터로 구현되는 방법.
  14. 제8항에 있어서,
    상기 컨텐츠 파일에 대한 상기 파일 서술자를 생성하기 위해 상기 클라이언트 애플리케이션에 의해 사용될 파일 서술자 구축 정보를 생성하는 단계를 포함하되,
    상기 파일 서술자 구축 정보는 파일 서술자 모델에 대한 파일 서술자 모델 식별자, 상기 파일 서술자 모델의 파일 서술자 타일에 대한 하나 이상의 파일 서술자 타일 식별자, 및 상기 파일 서술자 타일에 대응하는 상기 컨텐츠 파일로부터 추출된 컨텐츠 부분에 대한 하나 이상의 컨텐츠 부분 식별자를 포함하는
    컴퓨터로 구현되는 방법.
  15. 제8항에 있어서,
    파일 서술자 모델에 기초하여 상기 컨텐츠 파일로부터의 하나 이상의 추출된 컨텐츠 부분으로부터 상기 파일 서술자를 생성하는 단계를 포함하는
    컴퓨터로 구현되는 방법.
  16. 제8항에 있어서,
    상기 파일 서술자 구축 정보 또는 상기 파일 서술자를 갖는 상기 파일 서술자 응답을 상기 클라이언트 애플리케이션으로 전송하는 단계를 포함하는
    컴퓨터로 구현되는 방법.
  17. 삭제
  18. 컴퓨터 판독가능 저장 매체로서,
    명령어를 저장하는 메모리를 포함하되,
    상기 명령어는 실행되는 경우 시스템으로 하여금
    컨텐츠 파일에 대한 파일 서술자 또는 파일 서술자 구축 정보를 생성하기 위한 파일 서술자 요청을 수신하고- 상기 파일 서술자는 상기 컨텐츠 파일의 컨텐츠의 미리보기를 제공하고, 상기 파일 서술자 구축 정보는 클라이언트 애플리케이션이 상기 컨텐츠 파일에 대한 상기 파일 서술자를 생성하는데 사용됨 -,
    상기 파일 서술자에 대한 파일 서술자 모델을 검색하고,
    상기 파일 서술자 모델에 기초하여 상기 컨텐츠 파일로부터 하나 이상의 컨텐츠 부분을 추출하고,
    상기 파일 서술자 요청에 대한 파일 서술자 응답을 생성하며- 상기 파일 서술자 응답은 상기 파일 서술자 모델 및 상기 추출된 컨텐츠 부분을 사용하여 생성된 상기 파일 서술자 구축 정보 또는 상기 파일 서술자를 포함함 -,
    상기 컨텐츠 파일의 컨텐츠 부분에 대해 행해진 변경을 상기 파일 서술자의 상기 컨텐츠 파일의 대응하는 추출된 컨텐츠 부분과 동기화시키며,
    상기 파일 서술자 응답을 상기 클라이언트 애플리케이션으로 전송하게 하는
    컴퓨터 판독가능 저장 매체.
  19. 제18항에 있어서,
    실행되는 경우 상기 시스템으로 하여금 상기 컨텐츠 파일로부터 추출된 컨텐츠 부분을 교체 컨텐츠 부분으로 대체하게 하는 명령어를 포함하는
    컴퓨터 판독가능 저장 매체.
  20. 제18항에 있어서,
    실행되는 경우 상기 시스템으로 하여금
    상기 컨텐츠 파일로부터의 각각의 추출된 컨텐츠 부분을 컨텐츠 부분 식별자를 통해 식별하고,
    상기 컨텐츠 파일의 각각의 컨텐츠 부분에 대해 행해진 변경을 상기 컨텐츠 부분 식별자에 기초하여 상기 파일 서술자의 상기 컨텐츠 파일의 대응하는 추출된 컨텐츠 부분과 동기화시키게 하는 명령어를 포함하는
    컴퓨터 판독가능 저장 매체.
KR1020147032755A 2012-05-24 2013-05-16 파일 서술자를 자동으로 관리하는 기법 KR102049133B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/479,786 US9069781B2 (en) 2012-05-24 2012-05-24 Techniques to automatically manage file descriptors
US13/479,786 2012-05-24
PCT/US2013/041264 WO2013176949A1 (en) 2012-05-24 2013-05-16 Techniques to automatically manage file descriptors

Publications (2)

Publication Number Publication Date
KR20150016946A KR20150016946A (ko) 2015-02-13
KR102049133B1 true KR102049133B1 (ko) 2019-11-26

Family

ID=48579471

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147032755A KR102049133B1 (ko) 2012-05-24 2013-05-16 파일 서술자를 자동으로 관리하는 기법

Country Status (6)

Country Link
US (1) US9069781B2 (ko)
EP (1) EP2856351B1 (ko)
JP (1) JP6506686B2 (ko)
KR (1) KR102049133B1 (ko)
CN (1) CN103246748B (ko)
WO (1) WO2013176949A1 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9715485B2 (en) 2011-03-28 2017-07-25 Microsoft Technology Licensing, Llc Techniques for electronic aggregation of information
US9047300B2 (en) * 2012-05-24 2015-06-02 Microsoft Technology Licensing, Llc Techniques to manage universal file descriptor models for content files
US10684899B2 (en) * 2013-03-13 2020-06-16 Northrop Grumman Systems Corporation Mobile applications architecture
WO2016057188A1 (en) 2014-10-09 2016-04-14 Wrap Media, LLC Active receipt wrapped packages accompanying the sale of products and/or services
WO2016057349A1 (en) * 2014-10-09 2016-04-14 Wrap Media, LLC A wrap package of cards including discount coupons and/or loyalty programs
CN107622067B (zh) * 2016-07-13 2020-11-20 杭州海康威视数字技术股份有限公司 一种对多个多媒体文件的存储、读取和显示方法及装置
CN108366010A (zh) * 2018-01-15 2018-08-03 华南理工大学 一种基于云存储的电子邮件归档系统及其数据处理方法
CN111371869A (zh) * 2020-02-26 2020-07-03 山西鲲博时代信息科技有限公司 一种基于智能多通路网关的多路通信监控方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5747940A (en) 1996-01-11 1998-05-05 Openiano; Renato M. Multi-dimensional control of arrayed lights to produce synchronized dynamic decorative patterns of display, particularly for festival and Christmas lights
US20080155422A1 (en) * 2006-12-20 2008-06-26 Joseph Anthony Manico Automated production of multiple output products
US20090307615A1 (en) * 2008-06-06 2009-12-10 Julien Jalon Browsing or searching user interfaces and other aspects
US20110289448A1 (en) * 2009-02-04 2011-11-24 Four-Clue Inc. Folder management device, folder management method, and folder management program

Family Cites Families (68)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5321750A (en) 1989-02-07 1994-06-14 Market Data Corporation Restricted information distribution system apparatus and methods
US5339392A (en) 1989-07-27 1994-08-16 Risberg Jeffrey S Apparatus and method for creation of a user definable video displayed document showing changes in real time data
GB2241629A (en) * 1990-02-27 1991-09-04 Apple Computer Content-based depictions of computer icons
US5297032A (en) 1991-02-01 1994-03-22 Merrill Lynch, Pierce, Fenner & Smith Incorporated Securities trading workstation
US5432932A (en) 1992-10-23 1995-07-11 International Business Machines Corporation System and method for dynamically controlling remote processes from a performance monitor
JPH07160467A (ja) * 1993-12-02 1995-06-23 Casio Comput Co Ltd 表示制御装置
JP2993351B2 (ja) 1994-02-14 1999-12-20 松下電器産業株式会社 圧縮データ記録装置
US5819284A (en) 1995-03-24 1998-10-06 At&T Corp. Personalized real time information display as a portion of a screen saver
US5717940A (en) * 1995-04-28 1998-02-10 Ricoh Company, Ltd. Method of selecting a target document using features of an example page
US6807558B1 (en) 1995-06-12 2004-10-19 Pointcast, Inc. Utilization of information “push” technology
JP3443255B2 (ja) * 1996-10-18 2003-09-02 富士ゼロックス株式会社 電子文書管理装置および方法
US5959621A (en) 1996-12-06 1999-09-28 Microsoft Corporation System and method for displaying data items in a ticker display pane on a client computer
US6216141B1 (en) 1996-12-06 2001-04-10 Microsoft Corporation System and method for integrating a document into a desktop window on a client computer
US6708189B1 (en) 1997-09-30 2004-03-16 Desknet, Inc. Computer file transfer system
EP1036357A1 (en) 1997-11-14 2000-09-20 Avesta Technologies Inc. System and method for displaying multiple sources of data in near real-time
US6449638B1 (en) 1998-01-07 2002-09-10 Microsoft Corporation Channel definition architecture extension
US6311058B1 (en) 1998-06-30 2001-10-30 Microsoft Corporation System for delivering data content over a low bit rate transmission channel
US6278448B1 (en) 1998-02-17 2001-08-21 Microsoft Corporation Composite Web page built from any web content
US6832355B1 (en) 1998-07-28 2004-12-14 Microsoft Corporation Web page display system
US6188405B1 (en) 1998-09-14 2001-02-13 Microsoft Corporation Methods, apparatus and data structures for providing a user interface, which exploits spatial memory, to objects
US6510553B1 (en) 1998-10-26 2003-01-21 Intel Corporation Method of streaming video from multiple sources over a network
JP3956553B2 (ja) * 1998-11-04 2007-08-08 富士ゼロックス株式会社 アイコン表示処理装置
US6456334B1 (en) 1999-06-29 2002-09-24 Ati International Srl Method and apparatus for displaying video in a data processing system
US6976210B1 (en) 1999-08-31 2005-12-13 Lucent Technologies Inc. Method and apparatus for web-site-independent personalization from multiple sites having user-determined extraction functionality
US6724403B1 (en) 1999-10-29 2004-04-20 Surfcast, Inc. System and method for simultaneous display of multiple information sources
US7987431B2 (en) 1999-10-29 2011-07-26 Surfcast, Inc. System and method for simultaneous display of multiple information sources
US7028264B2 (en) 1999-10-29 2006-04-11 Surfcast, Inc. System and method for simultaneous display of multiple information sources
US20010056370A1 (en) 2000-02-10 2001-12-27 Sivan Tafla Method and system for presenting an animated advertisement on a web page
WO2001063919A1 (en) 2000-02-23 2001-08-30 Penta Trading Ltd. Systems and methods for generating and providing previews of electronic files such as web files
US20020004825A1 (en) 2000-06-13 2002-01-10 Lindberg Gregrey E. Methods and apparatus for distributing content teaser click-through traffic to web sites containing full content
JP2002091813A (ja) * 2000-09-18 2002-03-29 Ricoh Co Ltd 統合文書管理システム、方法、及びプログラムを記録したコンピュータ読み取り可能な記録媒体
US6825844B2 (en) 2001-01-16 2004-11-30 Microsoft Corp System and method for optimizing a graphics intensive software program for the user's graphics hardware
US6964025B2 (en) 2001-03-20 2005-11-08 Microsoft Corporation Auto thumbnail gallery
US6857030B2 (en) 2001-09-12 2005-02-15 Sun Microsystems, Inc. Methods, system and article of manufacture for pre-fetching descriptors
US20030051071A1 (en) 2001-09-13 2003-03-13 Thorarinn Stefansson Modular software system and method
US7263521B2 (en) 2002-12-10 2007-08-28 Caringo, Inc. Navigation of the content space of a document set
US7188316B2 (en) 2003-03-24 2007-03-06 Microsoft Corporation System and method for viewing and editing multi-value properties
US7472424B2 (en) 2003-10-10 2008-12-30 Microsoft Corporation Parental controls for entertainment content
US7571380B2 (en) 2004-01-13 2009-08-04 International Business Machines Corporation Differential dynamic content delivery with a presenter-alterable session copy of a user profile
US8250150B2 (en) * 2004-01-26 2012-08-21 Forte Internet Software, Inc. Methods and apparatus for identifying and facilitating a social interaction structure over a data packet network
US20050273394A1 (en) * 2004-06-07 2005-12-08 Siemens Aktiengesellschaft Method and system for providing enhanced online support
US7469380B2 (en) 2004-06-15 2008-12-23 Microsoft Corporation Dynamic document and template previews
JP4047308B2 (ja) 2004-08-06 2008-02-13 キヤノン株式会社 レイアウト処理方法、情報処理装置及びコンピュータプログラム
JP2006148779A (ja) * 2004-11-24 2006-06-08 Fuji Xerox Co Ltd 文書閲覧システム
US8819569B2 (en) 2005-02-18 2014-08-26 Zumobi, Inc Single-handed approach for navigation of application tiles using panning and zooming
US7809582B2 (en) 2005-03-10 2010-10-05 Microsoft Corporation System and method for providing a consistent visual appearance to output generated by multiple applications
US7506306B2 (en) * 2005-05-24 2009-03-17 International Business Machines Corporation Graphical editor with incremental development
US8429630B2 (en) 2005-09-15 2013-04-23 Ca, Inc. Globally distributed utility computing cloud
US7933632B2 (en) 2005-09-16 2011-04-26 Microsoft Corporation Tile space user interface for mobile devices
US20110137986A1 (en) * 2009-12-08 2011-06-09 Wolf Edward O'brien Accessing content hosted on a peer device in a peer-to-peer network using a uniform resource locator (URL)
US8719816B2 (en) * 2006-03-14 2014-05-06 University Of Utah Research Foundation Extendable framework for distributed applications and data
US7558789B2 (en) 2006-11-20 2009-07-07 Illinois Institute Of Technology Method for improving local descriptors in peer-to-peer file sharing
CN101584001B (zh) * 2006-12-20 2012-06-13 伊斯曼柯达公司 多输出产品的自动产生
US8631439B2 (en) 2007-04-06 2014-01-14 At&T Intellectual Property I, L.P. Methods, systems, and computer program products for implementing a navigational search structure for media content
US7933904B2 (en) 2007-04-10 2011-04-26 Nelson Cliff File search engine and computerized method of tagging files with vectors
KR100911647B1 (ko) 2007-04-18 2009-08-10 삼성전자주식회사 콘텐츠를 저장하는 메모리와 이의 티져 광고 생성 방법 및 이를 이용한 콘텐츠 제공 방법
US8065628B2 (en) 2007-06-25 2011-11-22 Microsoft Corporation Dynamic user interface for previewing live content
JP2009075879A (ja) * 2007-09-20 2009-04-09 Ricoh Co Ltd 画像処理装置と画像処理方法とプログラム
JP5194776B2 (ja) * 2007-12-21 2013-05-08 株式会社リコー 情報表示システム、情報表示方法およびプログラム
JP5065113B2 (ja) * 2008-03-24 2012-10-31 ルネサスエレクトロニクス株式会社 等価性検証方法、等価性検証プログラム及び等価性検証プログラムの生成方法
US20090319928A1 (en) 2008-06-20 2009-12-24 Microsoft Corporation Generating previews for themes that personalize an operating environment
US8788963B2 (en) 2008-10-15 2014-07-22 Apple Inc. Scrollable preview of content
US8086611B2 (en) 2008-11-18 2011-12-27 At&T Intellectual Property I, L.P. Parametric analysis of media metadata
US8392386B2 (en) 2009-08-05 2013-03-05 International Business Machines Corporation Tracking file contents
US20110173188A1 (en) 2010-01-13 2011-07-14 Oto Technologies, Llc System and method for mobile document preview
US8589815B2 (en) 2010-03-10 2013-11-19 Microsoft Corporation Control of timing for animations in dynamic icons
US9229947B2 (en) 2010-09-27 2016-01-05 Fisher-Rosemount Systems, Inc. Methods and apparatus to manage process data
US20120078966A1 (en) 2010-09-29 2012-03-29 International Business Machines Corporation File System With Content Identifiers

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5747940A (en) 1996-01-11 1998-05-05 Openiano; Renato M. Multi-dimensional control of arrayed lights to produce synchronized dynamic decorative patterns of display, particularly for festival and Christmas lights
US20080155422A1 (en) * 2006-12-20 2008-06-26 Joseph Anthony Manico Automated production of multiple output products
US20090307615A1 (en) * 2008-06-06 2009-12-10 Julien Jalon Browsing or searching user interfaces and other aspects
US20110289448A1 (en) * 2009-02-04 2011-11-24 Four-Clue Inc. Folder management device, folder management method, and folder management program

Also Published As

Publication number Publication date
CN103246748B (zh) 2017-03-01
CN103246748A (zh) 2013-08-14
US20130318042A1 (en) 2013-11-28
EP2856351B1 (en) 2019-04-10
EP2856351A1 (en) 2015-04-08
US9069781B2 (en) 2015-06-30
JP2015517710A (ja) 2015-06-22
KR20150016946A (ko) 2015-02-13
WO2013176949A1 (en) 2013-11-28
JP6506686B2 (ja) 2019-04-24

Similar Documents

Publication Publication Date Title
KR102049133B1 (ko) 파일 서술자를 자동으로 관리하는 기법
US9977715B2 (en) Techniques to manage collaborative documents
US9992285B2 (en) Techniques to manage state information for a web service
JP6922538B2 (ja) Api学習
US9015657B2 (en) Systems and methods for developing and delivering platform adaptive web and native application content
US10775972B2 (en) Techniques to control notifications for content items in a collaboration platform
KR20130143614A (ko) 정보의 전자 집성을 위한 방법
US10614057B2 (en) Shared processing of rulesets for isolated collections of resources and relationships
CN104252442A (zh) 与现场应用集成的演示文稿的系统和方法
US20220342518A1 (en) Card-based information management method and system
US20170357428A1 (en) Identifying and surfacing relevant report artifacts in documents
US9047300B2 (en) Techniques to manage universal file descriptor models for content files
EP3230893A1 (en) Method and system for concurrent collaborative undo operations in computer application software
WO2016094868A1 (en) Method and system for concurrent collaborative undo operations in computer application software
US20170060517A1 (en) Information processing system
US10474428B2 (en) Sorting parsed attachments from communications
US20130318048A1 (en) Techniques to modify file descriptors for content files
US20230214509A1 (en) Document creation and management system
US11853969B2 (en) Managing artifact information, especially comparing and merging artifact information, method and system
KR20230065574A (ko) 애플리케이션 생성 서비스 제공 방법 및 장치
CN105683958B (zh) 文本样本条目组制定
CN115544858A (zh) 基于多源异构的数据挖掘建模方法及系统

Legal Events

Date Code Title Description
N231 Notification of change of applicant
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant