KR20080081276A - 디스크 기반 캐시 - Google Patents

디스크 기반 캐시 Download PDF

Info

Publication number
KR20080081276A
KR20080081276A KR1020087014426A KR20087014426A KR20080081276A KR 20080081276 A KR20080081276 A KR 20080081276A KR 1020087014426 A KR1020087014426 A KR 1020087014426A KR 20087014426 A KR20087014426 A KR 20087014426A KR 20080081276 A KR20080081276 A KR 20080081276A
Authority
KR
South Korea
Prior art keywords
cache
application domain
stored
requested
index
Prior art date
Application number
KR1020087014426A
Other languages
English (en)
Inventor
패트릭 씨. 밀러
데이비드 알. 퀵
Original Assignee
마이크로소프트 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마이크로소프트 코포레이션 filed Critical 마이크로소프트 코포레이션
Publication of KR20080081276A publication Critical patent/KR20080081276A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9574Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching

Landscapes

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

Abstract

프런트 엔드 서버 내의 애플리케이션 도메인은 객체를 로컬 디스크 상의 캐시로부터 불러올 것인지, 백 엔드 서버를 통해 외부 데이터베이스로부터 불러올 것인지를 판정하기 위해 웹 브라우저 애플리케이션으로부터의 객체 요청을 처리한다. 판정은 요청된 객체와 연관된 메타데이터 및 애플리케이션 도메인과 연관된 구성 파일에서 식별되는 객체 캐시 설정들을 비교함으로써 이루어진다. 메타데이터는 또한 상이한 객체 버전들을 액세스하는 권한이 있는 사용자를 식별할 수 있다. 애플리케이션 도메인에 포함된 인덱스는 캐시에 저장된 객체 및 로컬 디스크 상의 객체의 위치를 식별한다. 객체가 데이터베이스로부터 렌더링될 때, 구성 파일에서 식별되는 객체 캐시 설정들에 기초하여 캐시에 객체를 저장할 것인지의 여부가 판정된다. 캐시 토큰은 캐시가 인덱스와 동기된 상태를 반드시 유지하게 한다.
프런트 엔드 서버, 애플리케이션 도메인, 구성 파일, 인덱스, 백 엔드 서버, 로컬 디스크, 캐시, 외부 데이터베이스

Description

디스크 기반 캐시{DISK-BASED CACHE}
인터넷 사용자들은 빠르게 전달되는 현재의 정보를 웹사이트가 포함하기를 기대한다. 웹 페이지가 클라이언트로부터 요청될 때, 서버는 제공된 페이지가 현재의 정보를 확실히 포함하도록 하기 위해 데이터베이스로부터의 객체를 포함하도록 페이지를 동적으로 렌더링할 수 있다. 대안적으로는, 객체를 클라이언트 측에서 출력 캐시로부터 불러올 수 있다. 객체는 이전에 데이터베이스로부터 요청되었던 경우 출력 캐시에 저장될 수 있고, 그 객체는 현재의 것으로 간주된다. 웹 페이지는 객체를 데이터베이스가 아닌 출력 캐시로부터 불러올 때 오히려 더 빨리 렌더링될 수 있다.
데이터베이스 상에서 사용가능한 몇 가지 객체 특징은 객체가 출력 캐시에 로컬로 저장될 때 사용 불가능하다. 예를 들어, 권한 없는 사용자가 데이터베이스 상의 객체로 액세스하는 것을 방지하는 보안 특징은 객체가 로컬 저장될 때 사용 불가능하다. 이와 마찬가지로, 서버에 의해 제공된 권한 관리 시스템은 출력 캐시까지 확장할 수 없다. 또한, 백업, 전개(deployment), 승인 및 버전화(versioning) 같은 기타 데이터베이스 특징은 로컬 저장된 객체에 사용 불가능하다. 그러므로, 다수의 애플리케이션은 출력 캐싱에 의해 누릴 수 있는 시간 절약 특징을 이용하지 못한다.
프런트 엔드(front end) 서버 내의 애플리케이션 도메인(application domain)은 객체를 로컬 디스크 상의 캐시로부터 불러올 것인지, 백 엔드(back end) 서버를 통해 외부 데이터베이스로부터 불러올 것인지를 판정하기 위해 웹 브라우저 애플리케이션으로부터의 객체 요청을 처리한다. 판정은 요청된 객체와 연관된 메타데이터와 애플리케이션 도메인 및 연관된 구성 파일에서 식별되는 객체 캐시 설정들을 비교함으로써 이루어진다. 또한, 메타데이터는 상이한 객체 버전들을 액세스하는 권한이 있는 사용자를 식별할 수 있다. 애플리케이션 도메인에 포함된 인덱스는 캐시에 저장된 객체, 로컬 디스크 상의 객체의 위치 그리고 캐시된 객체가 차지한 로컬 디스크 상의 공간의 양을 식별한다. 객체가 데이터베이스로부터 렌더링될 때는, 구성 파일에서 식별되는 객체 캐시 설정들에 기초하여 캐시에 객체를 저장할 것인지의 여부가 판정된다. 캐시 토큰(cache token)은 캐시가 인덱스와 동기된 상태를 반드시 유지하게 한다. 변경 토큰(change token)은 캐시가 웹사이트 내의 캐시된 객체에 대한 임의의 변경을 반영하여 업데이트될 수 있도록 웹사이트에 이루어진 변경을 식별한다.
본 요약은 실시예에서 상세히 후술될 개념을 발췌해서 간단하게 소개하기 위해 제공된다. 본 요약은 청구 대상의 주요 특성 또는 본질적인 특성을 식별하기 위한 것이 아니며, 청구 대상의 범위를 결정하는데 이용되기 위한 것도 아니다.
도 1은 디스크 기반 캐시(disk-based cache) 애플리케이션이 구현될 수 있는 컴퓨팅 장치를 도시한 도면.
도 2는 디스크 기반 캐시를 사용한 웹 페이지 상의 객체의 렌더링과 연관된 주요 기능 블록을 도시한 개념도.
도 3은 디스크 기반 캐시를 사용하여 웹 페이지 상의 객체를 렌더링하는 프로세스의 논리 흐름도.
도 4는 현재의 캐시를 유지하는 프로세스의 논리 흐름도.
본 발명의 실시예는 본 발명을 실시하는 예시적인 특정 실시예의 일부를 이루고, 그 예시적인 특정 실시예를 예시로서 도시하는 첨부 도면을 참조하여 이하에서 더욱 상술될 것이다. 그러나, 본 개시는 다수의 상이한 형태로 구현될 수 있고, 여기에서 설명된 실시예로 제한되는 것으로 해석되어서는 안된다. 그보다 실시예는 본 명세서에서 개시가 철저하고 완전하게 될 수 있고, 당업자에게 본 발명의 범위를 충분히 전달할 수 있도록 제공된다. 그 중에서도, 본 개시는 방법 또는 장치로서 구현될 수 있다. 따라서, 본 개시는 전체적으로 하드웨어 실시예, 전체적으로 소프트웨어 실시예, 또는 소프트웨어와 하드웨어의 모두를 조합한 실시예의 형태를 취할 수 있다. 그러므로, 다음의 상세한 설명은 제한적인 의미로 해석되어서는 안된다.
예시적인 운영 환경
도 1과 관련하여, 디스크 기반 캐시 애플리케이션을 구현하는 예시적인 시스템은 컴퓨팅 장치(100)와 같은 컴퓨팅 장치를 포함한다. 기본 구성에서, 컴퓨팅 장치(100)는 통상적으로 최소한 하나의 처리 장치(102) 및 시스템 메모리(104)를 포함한다. 컴퓨팅 장치의 상세한 구성 및 유형에 따라, 시스템 메모리(104)는 (RAM과 같은) 휘발성, (ROM, 플래시 메모리 등과 같은) 비휘발성, 또는 이 둘의 소정의 조합일 수 있다. 시스템 메모리(104)는 통상적으로 운영 체제(105), 하나 이상의 애플리케이션(106)을 포함하고, 프로그램 데이터(107)를 포함할 수 있다. 일 실시예에서, 애플리케이션(106)은 이하에서 상술될 디스크 기반 캐시 애플리케이션(108)을 더 포함한다.
또한, 컴퓨팅 장치(100)는 추가 특징 또는 기능을 가질 수 있다. 예를 들어, 컴퓨팅 장치(100)는 예를 들어, 자기 디스크, 광 디스크 또는 테이프와 같은 추가 데이터 저장장치(이동식 및/또는 비이동식)을 포함할 수도 있다. 이 같은 추가 저장장치는 이동식 저장장치(109) 및 비이동식 저장장치(110)로 도 1에 도시된다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 이동식 및 비이동식 매체를 포함할 수 있다. 시스템 메모리(104), 이동식 저장장치(109) 및 비이동식 저장장치(110)는 모두 컴퓨터 저장 매체의 예이다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래시 메모리 또는 기타 메모리 기술, CD-ROM, DVD(digital versatile disks) 또는 기타 광 저장장치, 자기 카세트, 자기 테이프, 자기 디스크 저장장치 또는 기타 자기 저장장치, 또는 컴퓨팅 장치(100)에 의해 액세스될 수 있고 원하는 정보를 저장하기 위해 사용될 수 있는 기타 임의의 매체를 포함하지만, 이에 제한되는 것은 아니다. 임의의 그러한 컴퓨터 저장 매체는 장치(100)의 일부일 수 있다. 또한, 컴퓨팅 장치(100)는 키보드, 마우스, 펜, 음성 입력 장치, 터치 입력 장치 등과 같은 입력 장치(들)(112)를 가질 수 있다. 디스플레이, 스피커, 프린터 등과 같은 출력 장치(들)(114)도 포함될 수 있다. 이러한 모든 장치는 종래의 장치이므로, 여기에서 더 이상 설명될 필요가 없다.
또한, 컴퓨팅 장치(100)는 네트워크 또는 무선 메시 네트워크(wireless mesh network)와 같은 것을 통해, 장치가 기타 컴퓨팅 장치(118)와 통신할 수 있게 하는 통신 접속부(들)(116)를 포함한다. 통신 접속부(들)(116)는 통신 매체의 한 예이다. 통신 매체는 통상적으로, 반송파 또는 기타 전송 메커니즘과 같은 피변조 데이터 신호(modulated data signal) 내에 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터를 구현하고, 임의의 정보 전달 매체를 포함한다. "피변조 데이터 신호"라는 용어는, 신호 내에 정보를 인코딩하도록 그 신호의 특성들 중 하나 이상을 포함하거나 변경시킨 신호를 의미한다. 한정이 아닌 예시로서, 통신 매체는 유선 네트워크 또는 직접 배선 접속(direct-wired connection)과 같은 유선 매체, 그리고 음향, RF, 적외선, 기타 무선 매체와 같은 무선 매체를 포함하는데, 이에 제한되는 것은 아니다. 여기에서 사용된 컴퓨터 판독가능 매체라는 용어는 저장 매체 및 통신 매체 모두 포함한다.
본 발명은 컴퓨팅 장치상에서 실행되는 소프트웨어 모듈과 같은 컴퓨터 실행가능 명령어 또는 컴포넌트의 일반적인 환경에서 설명된다. 일반적으로 소프트웨어 모듈은 루틴, 프로그램, 객체, 컴포넌트, 데이터 구조 및 특정 태스크를 수행하 거나 특정 추상 데이터 유형을 구현하는 기타의 것을 포함한다. 컴퓨터 실행가능 명령어 또는 컴포넌트와 관련하여 여기에서 설명되지만, 본 발명은 펌웨어 또는 전용 논리 회로와 같은, 소프트웨어 이외의 프로그램 메커니즘을 이용하여 동일하게 구현될 수 있다.
디스크 기반 캐시
도 2는 디스크 기반 캐시를 사용한 웹 페이지 상의 객체의 렌더링에 관련된 주요 기능 블록을 도시한 개념도이다. 클라이언트(200)는 백 엔드 서버(250)에 연결되고, 백 엔드 서버(250)는 데이터베이스(260)에 연결된다. 클라이언트(200)는 브라우저 애플리케이션(210), 프런트 엔드 서버(220) 및 로컬 디스크(230)를 포함한다. 브라우저 애플리케이션(210)은 사용자가 인터넷과 같은 네트워크상의 정보를 액세스할 수 있게 한다. 프런트 엔드 서버(220)는 애플리케이션 도메인(222)을 포함한다. 애플리케이션 도메인(222)은 구성 파일(224) 및 인덱스(226)를 포함한다. 로컬 디스크(230)는 캐시(232)를 포함한다.
웹 페이지 요청은 브라우저 애플리케이션(210)으로부터 이루어진다. 웹 페이지는 최소한 하나의 객체(예를 들어, filename.jpg)를 포함할 수 있다. 브라우저 애플리케이션(210)은 이름에 의해 프런트 엔드 서버(220)로부터 객체를 요청한다. 예를 들어, 이름은 "a/b/filename.jpg"와 같은 URL(uniform resource locator)일 수 있는데, "a" 및 "b"는 파일 시스템에서 객체가 저장되는 서브디렉토리를 식별한다. 애플리케이션 도메인(222)은 객체를 캐시(232)로부터 불러올 것인지 데이터베이스(260)로부터 불러올 것인지를 판정하기 위해 요청을 처리한다. 일 실시예에서, 프런트 엔드 서버(220)는 다수의 애플리케이션 도메인을 호스팅한다. 상이한 애플리케이션 도메인들이 동일한 클라이언트 상에서 동일한 웹사이트를 제공할 수 있다.
애플리케이션 도메인(220)은 객체에 대한 요청이 브라우저 애플리케이션(210)으로부터 수신된 때 실행을 시작한다. 구성 파일(224)은 객체 캐싱과 연관된 설정들을 식별하기 위해 참조된다. 구성 파일(224)은 캐시될 객체를 식별할 수 있다. 예를 들어, 구성 파일(224)은 캐싱을 위해 애플리케이션 도메인(222)에 의해 다루어지는 특정 파일 유형(예컨대, .jpg, .png, .gif, .css 및 .js 유형만의 캐시 파일들)을 식별할 수 있다. 또 다른 예시에서, 구성 파일(224)은 특정된 파일 경로로부터 얻을 수 있는 객체가 캐시되도록 대응하는 파일 경로를 특정할 수 있다. 파일 경로는 정규 표현(regular expression)을 사용하여 특정될 수 있다. 정규 표현은 정규 표현에 대응하는 URL이 수신될 때, 애플리케이션 도메인(222)이 그 URL과 연관된 객체를 처리하도록, "와일드 카드(wild card)" 대응 특징을 제공한다. 예를 들어, 정규 표현 "/public/images/*01.jpg"는 01로 끝나는 파일이름을 가진 "public/images/" 디렉토리 내의 임의의 .jpg 파일이 캐시되게 한다. 구성 파일(224)은 캐시된 객체가 저장되는 로컬 디스크(230) 상의 위치(예를 들어, C:/BlobCache)를 식별할 수 있다. 또한, 구성 파일(224)은 로컬 디스크(23) 상의 출력 캐싱을 위해 할당된 저장 공간의 최대량을 식별할 수 있다. 더 나아가, 구성 파일(224)는 출력 캐싱이 사용가능한지 식별할 수 있다. 몇몇 객체는 애플리케이션 도메인(222)에 의해 처리되지 않고, 백 엔드 서버(250)를 통해 데이터베이 스(260)로부터 직접 불러진다. 예를 들어, 표현 ".../_layouts/..."을 포함하는 URL에 위치한 객체를 백 엔드 서버(250)로부터 불러온다.
인덱스(226)는 캐시(232)에 저장된 객체, 로컬 디스크(230) 상에 저장된 정보, 및 캐시(232)와 연관된 기타 데이터를 위한 관리 구조를 제공한다. 예를 들어, 인덱스(226)는 이름(예컨대, URL), 로컬 디스크(230) 상의 객체의 위치, 및 캐시(232)가 차지한 로컬 디스크(230) 상의 공간의 양으로 캐시된 객체를 식별한다. 브라우저 애플리케이션(210)이 객체를 요청할 때, 인덱스(226)는 객체가 캐시(232)에 저장되었는지를 판정하기 위해 참조된다.
요청된 객체는 웹 사이트와 연관된 사용권한을 식별하는 메타데이터와 연관된다. 메타데이터는 액세스 제어 목록(access control list: ACL)을 포함할 수 있다. ACL은 권한 있는 사용자 및 각 사용자에 대한 특정 권한의 목록을 식별할 수 있다. ACL은 웹사이트 내의 상이한 영역으로의 액세스 레벨이 사용자에 따라 다르도록 웹사이트 내의 노드들의 하위집합과 연관될 수 있다. 노드가 웹사이트 내에 생성될 때, 그 노드와 연관된 사용권한 설정들은 웹사이트 계층 내의 부모 노드의 ACL로부터 상속된다.
일 실시예에서, 개별 객체는 게시된 버전, 드래프트 버전, 체크 아웃 버전 및 모든 사용자에게 보이는 버전을 가질 수 있다. 게시된 버전은 모든 권한 있는 사용자에게 사용가능할 수 있다. 드래프트 버전은 권한 있는 사용자의 선택 그룹(예를 들어, 편집자)에 의해서만 액세스될 수 있다. 체크 아웃 버전은 객체를 체크 아웃한 특정 사용자에게만 사용가능할 수 있다. 모든 사용자에게 보이는 버전 은 모든 사용자에게 사용가능하다. 각 버전은 동일한 URL 파일(예를 들어, a/b/filename.jpg)에 의해 식별될 수 있다. 요청하는 사용자에 따라, 4가지 서로 다른 객체 버전들 중의 하나가 웹 브라우저 애플리케이션에서 렌더링될 수 있다. 객체와 연관된 메타데이터는 요청하는 사용자와 연관된 객체 버전을 식별한다. 프로세스를 단순화하기 위해, 게시된 버전만이 애플리케이션 도메인(222)에 의해 다루어진다.
애플리케이션 도메인(222)은 도메인 메모리 용량이 최대에 가까울 때 재사용(recycle) 할 수 있다. 애플리케이션 도메인을 재사용할 때, 프런트 엔드 서버(220)는 애플리케이션 도메인(222)이 여전히 실행하고 있는 동안에 새로운 애플리케이션 도메인(228)을 생성한다. 애플리케이션 도메인(222)은 실행 동작이 완료될 때 폐기된다. 새로운 애플리케이션 도메인(228)은 인덱스(226)와 캐시(232) 간의 1 대 1 대응관계를 유지하기 위해 애플리케이션 도메인(222)으로부터의 인덱스(226)의 복사본을 포함한다. 새로운 애플리케이션 도메인(228)은 애플리케이션 도메인(222)과 연관된 동일한 구성 파일(즉, 구성 파일(224))을 참조한다. 구성 파일(224)에 의해 새로운 애플리케이션 도메인(228)은 로컬 디스크(230) 상의 캐시(232)의 위치를 찾아서 캐시(232) 내의 개별 객체를 식별할 수 있다. 인덱스(226)는 캐시(232)가 주요 컴퓨팅 시스템 장애(예를 들어, 프런트 엔드 서버 리셋, 시스템 크래시)에도 견뎌낼 수 있도록 새로운 애플리케이션 도메인(228)에 포함된다.
일 실시예에서, 애플리케이션 도메인(222) 및 새로운 애플리케이션 도메 인(228)은 동시에(즉, 새로운 애플리케이션 도메인(228)이 생성된 후와 애플리케이션 도메인(222)이 폐기되기 이전) 실행하고 있을 수 있다. 이 기간 동안에, 각 애플리케이션 도메인이 상이한 객체들을 처리하여 애플리케이션 도메인 내의 각 인덱스가 캐시(232)와 동기화되지 않게 된다. 예를 들어, 애플리케이션 도메인(222)은 캐시(232)에 filename01.jpg를 저장하는 반면, 새로운 애플리케이션 도메인(228)은 캐시(232)에 filename02.jpg를 저장할 수 있다. 그러므로, 캐시(232)는 더 이상 애플리케이션 도메인 내의 인덱스와 동기화하지 않는다.
캐시 토큰은 캐시(232)가 애플리케이션 도메인(222, 228) 내의 인덱스와 동기된 상태를 반드시 유지하게 한다. 캐시 토큰은 운영 체제에 의해 생성되어 소유된 객체이다. 캐시 토큰은 애플리케이션 프로그램 인터페이스들의 집합에 의해 조작처리될 수 있다. 캐시 토큰은 제1 사용자가 객체를 액세스함으로써 애플리케이션 도메인의 실행을 시작할 때 액세스된다. 인덱스는 캐시 토큰을 보유하는 애플리케이션 도메인에 의해 소유된다. 제2 사용자는 동일한 애플리케이션 도메인의 새로운 인스턴스의 액세스를 시작할 수 있다(즉, 애플리케이션 도메인은 재사용하고 있다). 제2 사용자는 애플리케이션 도메인과 연관된 캐시 토큰을 액세스하려고 시도한다. 그러나, 제2 사용자는 실행하는 애플리케이션 도메인이 객체의 처리를 완료하고, 캐시 토큰이 해제될 때까지, 캐시 토큰의 액세스가 차단된다. 캐시 토큰은 애플리케이션 도메인 프로세스들 사이의 상호 통신 및 동시 조정을 허용한다.
일 실시예에서, 다수의 공존하는 애플리케이션 도메인은 동일한 인덱스를 참조할 수 있지만, 애플리케이션 도메인들 중의 하나만이 인덱스에 기입하는 권한이 부여된다. 그외 다른 애플리케이션 도메인은 권한 있는 애플리케이션 도메인이 이전에 처리한 객체를 렌더링할 수 있다. 권한 있는 애플리케이션 도메인이 요청 객체를 처리하지 못했으면, 그외 다른 애플리케이션 도메인은 요청 객체를 백 엔드 서버를 통해 외부 데이터베이스로부터 불러온다.
변경 토큰은 웹사이트에 이루어진 변경을 식별하기 위해 사용될 수 있다. 2개의 토큰(토큰1, 토큰2)은 서로 다른 시간에 웹사이트에 제출될 수 있다. 웹사이트에 대한 변경은 토큰1이 제출될 때와 토큰2가 제출될 때에 웹사이트 데이터를 비교함으로써 식별된다. 웹사이트 데이터가 각 토큰마다 서로 다르면, 설정된 기간 동안에 웹사이트에 대한 변경의 목록이 얻어진다. 웹사이트가 변경되었을 때, 변경 목록은 캐시(232) 내의 임의의 객체가 변경되었는지를 판정하기 위해 처리된다. 현재의 변경 토큰은 변경된 웹사이트와 연관된 임의의 캐시된 객체가 식별될 수 있게 인덱스(226)에 저장될 수 있다. 그 후, 캐시(232)는 객체에 대한 임의의 변경을 반영하여 업데이트된다. 예를 들어, 파일이 사이트에서 삭제될 수 있다. 그 파일은 캐시(232)에도 저장되어 있다는 판정이 이루어진다. 그러므로, 그 파일은 캐시(232)에서도 삭제된다.
도 3은 디스크 기반 캐시를 사용하여 웹 페이지 상에 객체를 렌더링하는 프로세스의 논리 흐름도를 도시한 것이다. 프로세스는 객체 요청이 웹 브라우저 애플리케이션에서 수신되는 동작(300)에서 시작된다. 웹 브라우저 애플리케이션은 프런트 엔드 브라우저로부터 이름에 의해 객체를 요청한다. 객체는 파일 또는 파일로의 링크일 수 있다. 요청은 객체의 위치를 식별하는 URL일 수 있다. 판정 동 작(305)에서, 웹 브라우저 애플리케이션이 이전에 객체를 렌더링했는지에 대한 판정이 이루어진다. 객체가 이전에 렌더링되지 않았으면(즉, 객체가 캐시에 저장되어 있지 않으면), 프로세스는 동작(330)으로 계속된다. 웹 브라우저 애플리케이션이 이전에 객체를 렌더링했으면, 프로세스는 동작(310)으로 이동한다.
동작(310)에서, 애플리케이션 도메인이 실행된다. 동작(315)으로 이동하여, 구성 파일은 객체 캐싱이 이네이블링되었는지를 판정하고 객체 캐시 설정들을 식별하기 위해 애플리케이션 도메인으로부터 참조된다. 구성 파일은 애플리케이션 도메인에 의해 처리될 객체를 식별한다. 처리될 객체는 객체의 유형 또는 객체의 파일 경로에 의해 식별될 수 있다. 파일 경로는 정규 표현을 사용하여 특정될 수 있다. 또한, 구성 파일은 캐시된 객체가 저장되는 로컬 디스크 상의 위치, 및 출력 캐싱을 위해 로컬 디스크 상에 할당된 공간의 양을 식별할 수 있다.
판정 동작(320)으로 계속 진행하여, 요청된 객체가 애플리케이션 도메인에 의해 처리되는지에 대한 판정이 이루어진다. 판정은 요청된 객체와 연관된 메타데이터 및 구성 파일에서 식별되는 객체 캐시 설정들을 비교함으로써 이루어진다. 몇몇 객체는 결코 애플리케이션 도메인에 의해 처리되지 않고, 백 엔드 서버를 통해 데이터베이스로부터 직접 불러진다. 객체 요청과 연관된 메타데이터는 상이한 객체 버전을 액세스하는 권한이 있는 사용자들의 목록을 식별한다. 메타데이터는 웹사이트와 연관된 사용권한 설정들을 식별하는 ACL에 대응될 수 있다. ACL은 권한 있는 사용자 및 각 사용자에 대한 특정 권한의 목록을 식별할 수 있다. 요청된 객체의 예시적인 버전은 게시된 버전, 드래프트 버전, 체크 아웃 버전, 및 모든 사 용자에게 보이는 버전을 포함한다. 요청하는 사용자에 따라, 객체 버전들 중의 하나가 렌더링될 수 있다. 일 실시예에서, 요청된 객체의 게시된 버전만이 애플리케이션 도메인에 의해 처리된다.
일 실시예에서, 애플리케이션 도메인은 모든 객체 요청이 백 엔드 서버에 의해 처리되도록 객체 캐싱에 대해 디세이블링될 수 있다. 또 다른 실시예에서, 구성 파일은 객체가 애플리케이션 도메인이 처리하는 구성 파일에서 식별되는 객체 유형들 중의 하나가 아니기 때문에 객체가 애플리케이션 도메인에 의해 처리되지 않는다는 것을 식별할 수 있다. 또 다른 실시예에서, 애플리케이션 도메인은 객체가 구성 파일에서 특정된 파일 경로에 대응되지 않기 때문에 객체를 처리하지 않을 수 있다. 객체가 애플리케이션 도메인에 의해 처리되지 않는 경우, 프로세스는 동작(330)으로 계속된다. 요청된 객체가 애플리케이션 도메인에 의해 처리되는 경우, 프로세스는 판정 동작(325)으로 이동한다.
판정 동작(325)으로 진행하여, 요청된 객체가 애플리케이션 도메인의 인덱스에 포함되는지에 대한 판정이 이루어진다. 인덱스는 캐시에 저장된 객체, 로컬 디스크 상에 저장된 정보, 및 캐시와 연관된 기타 데이터를 위한 관리 구조를 제공한다. 예를 들어, 인덱스는 이름(예를 들어, URL), 로컬 디스크 상의 객체의 위치, 및 캐시된 객체가 차지한 로컬 디스크 공간의 양에 의해 각 캐시된 객체를 식별한다. 웹 브라우저 애플리케이션이 객체를 요청하면, 인덱스는 객체가 캐시에 저장되었는지를 판정하기 위해 참조된다. 객체가 인덱스에 포함되지 않는 경우, 프로세스는 동작(330)으로 계속된다. 요청된 객체가 인덱스에 포함되는 경우, 프로세 스는 동작(350)으로 이동한다.
동작(330)으로 이동하여, 요청된 객체를 웹 브라우저 애플리케이션에서 렌더링하기 위해 백 엔드 서버를 통해 데이터베이스로부터 불러온다. 판정 동작(335)에서, 렌더링된 객체가 애플리케이션 도메인에 의해 처리되는지에 대한 판정이 이루어진다. 판정은 판정 동작(320)과 관련하여 위에서 설명된 바와 같이, 렌더링된 객체와 연관된 메타데이터, 및 구성 파일에서 식별되는 객체 캐시 설정들을 비교함으로써 이루어진다. 렌더링된 객체가 애플리케이션 도메인에 의해 처리되지 않으면, 프로세스는 종료 동작에서 종료된다. 렌더링된 객체가 애플리케이션 도메인에 의해 처리되면, 프로세스는 동작(340)으로 이동하여, 렌더링된 객체의 이진 등가치(binary equivalent of the rendered object)가 캐시에 저장된다. 그 후, 프로세스는 동작(345)으로 이동하여, 캐시에 저장된 객체를 식별하는 엔트리가 인덱스에 생성된다. 엔트리는 이름(예를 들어, URL) 및 로컬 디스크 상의 객체의 위치에 의해 객체를 식별한다. 그러므로, 렌더링된 객체의 후속 요청은 애플리케이션 도메인에 의해 처리될 수 있다. 그 후, 프로세스는 동작(350)으로 계속 진행하여, 요청된 객체를 로컬 디스크 상의 식별되는 위치에서 캐시로부터 불러오고, 웹 브라우저 애플리케이션에서 렌더링한다. 그 후, 프로세스는 종료 동작에서 종료된다.
도 4는 현재의 캐시를 유지하는 프로세스의 논리 흐름도를 도시한 것이다. 프로세스는 사용자가 객체를 액세스함으로써 애플리케이션 도메인의 실행을 개시할 때 캐시 토큰이 액세스되는 동작(400)에서 시작된다. 캐시 토큰은 캐시가 애플리케이션 도메인의 후속 인스턴스가 캐시 내의 객체를 처리하지 못하게 함으로써 애 플리케이션 도메인 내의 인덱스와 동기화된 상태를 반드시 유지하게 한다. 즉, 인덱스는 캐시 토큰을 보유하는 애플리케이션 도메인에 의해 소유된다. 프로세스는 캐시가 활성화되는 동작(410)으로 진행한다.
판정 동작(420)으로 이동하여, 캐시된 객체를 포함하는 웹사이트에 임의의 변경이 이루어졌는지에 대한 판정이 이루어진다. 웹사이트에 대한 변경은 제1 변경 토큰이 웹사이트에 제출되었을 때와 제2 변경 토큰이 웹사이트에 변경되었을 때의 웹사이트 데이터를 비교함으로써 식별될 수 있다. 웹사이트 데이터가 각 토큰마다 다르면, 제출된 토큰들 사이의 기간 동안의 웹사이트에 대한 변경들의 목록이 획득된다. 웹사이트가 변경되었을 때, 변경 목록은 임의의 캐시된 객체가 변경되었는지를 판정하기 위해 처리된다. 캐시된 객체에 어떤 변경도 이루어지지 않았으면, 프로세스는 동작(440)으로 계속된다. 캐시된 객체에 변경이 이루어졌으면, 프로세스는 동작(430)으로 진행하여, 객체는 변경을 반영하도록 캐시에서 업데이트된다.
프로세스는 동작(440)으로 진행하여, 캐시 토큰은 애플리케이션 도메인의 후속 인스턴스가 캐시 내의 객체를 처리할 수 있게 해제된다. 캐시 토큰은 애플리케이션 도메인 프로세스들 간의 상호-통신 및 동시 조정을 허용한다. 그 후, 프로세스는 종료 동작에서 종료된다.
이상의 명세서, 예시 및 데이터는 실시예들 조합의 제조 및 사용에 관한 완전한 설명을 제공한다. 청구대상이 구조적 특징 및/또는 방법론적 동작에 특화된 언어로 설명되었지만, 첨부된 청구범위에서 정의된 청구대상은 반드시 이상에서 설 명된 특정 특징이나 동작에 한정되는 것은 아니라는 것을 이해할 것이다. 오히려, 이상에서 설명된 특정 특징 및 동작은 청구범위 및 실시예를 구현하는 예시적인 형태로 개시된 것이다.

Claims (20)

  1. 객체에 대한 요청을 처리하기 위한 컴퓨터 구현 방법에 있어서,
    객체에 대한 요청을 웹 브라우저 애플리케이션으로부터 프런트 엔드(front end) 서버에서 수신하는 단계(300);
    상기 요청된 객체가 애플리케이션 도메인에 의해 처리된 객체인지 식별하기 위해 상기 애플리케이션 도메인을 실행하는 단계(320);
    상기 요청된 객체가 상기 애플리케이션 도메인에 의해 처리된다면, 상기 요청된 객체가 캐시에 저장되어 있는지를 판정하기 위해 인덱스를 참조하는 단계(325);
    상기 요청된 객체가 상기 캐시에 저장되어 있으면 상기 캐시로부터 상기 요청된 객체를 불러오는 단계(350); 및
    상기 웹 브라우저 애플리케이션에서 상기 불러온 객체를 렌더링하는 단계(350)
    를 포함하는 컴퓨터 구현 방법.
  2. 제1항에 있어서,
    상기 요청된 객체와 연관된 메타데이터(meta data) 및 상기 애플리케이션 도메인과 연관된 구성 파일(configuration file)에서 식별되는 객체 캐시 설정들을 비교함으로써, 상기 요청된 객체 간 상기 애플리케이션 도메인에 의해 처리된 객체 로서 식별되는(320), 컴퓨터 구현 방법.
  3. 제1항에 있어서,
    상기 요청된 객체가 상기 캐시에 저장되어 있지 않다면 백 엔드 서버(back end server)를 통해 외부 데이터베이스로부터 상기 객체를 불러오는 단계(330);
    상기 외부 데이터베이스로부터 불러온 상기 객체가 상기 애플리케이션 도메인에 의해 처리된 객체로서 식별된다면 상기 외부 데이터베이스로부터 불러온 상기 객체를 상기 캐시에 저장하는 단계(340); 및
    상기 외부 데이터베이스로부터 불러온 상기 객체가 상기 캐시에 저장되어 있다는 것을 식별하기 위해 상기 인덱스를 업데이트하는 단계(345)
    를 더 포함하는 컴퓨터 구현 방법.
  4. 제1항에 있어서,
    상기 인덱스가 상기 캐시에 저장되어 있는 객체들의 정확한 목록을 유지하도록 상기 인덱스를 상기 캐시와 동기화하는 단계(222, 228)를 더 포함하는 컴퓨터 구현 방법.
  5. 제1항에 있어서,
    상기 캐시에 저장되어 있는 상기 객체에 대해 웹 사이트에서 이루어진 변경을 반영하기 위해 상기 캐시를 업데이트하는 단계(430)를 더 포함하는 컴퓨터 구현 방법.
  6. 제1항에 있어서,
    상기 요청된 객체를 불러오는 단계는 상기 인덱스에서 식별되는 캐시 위치로부터 상기 요청된 객체를 불러오는 단계(350)를 더 포함하는 컴퓨터 구현 방법.
  7. 제1항에 있어서,
    상기 애플리케이션 도메인이 상기 웹 브라우저 애플리케이션으로 상기 객체를 이전에 렌더링했다면, 상기 객체는 상기 캐시에 저장되어 있는(305), 컴퓨터 구현 방법.
  8. 객체에 대한 요청을 처리하기 위한 시스템에 있어서,
    객체를 요청하기 위해 구성된 웹 브라우저 애플리케이션(210);
    캐시(232)를 포함하는 로컬 디스크(230) ; 및
    상기 로컬 디스크에 연결되고, 애플리케이션 도메인(222)을 포함하며, 상기 웹 브라우저 애플리케이션으로부터 상기 객체 요청을 수신하도록 구성된 프런트 엔드 서버(220)
    를 포함하며,
    상기 애플리케이션 도메인은,
    상기 요청된 객체가 상기 애플리케이션 도메인에 의해 처리된 객체인지 식별 하고(320), 상기 요청된 객체가 상기 캐시에 저장되어 있는지를 판정하기 위해 인덱스를 참조하며(325), 상기 요청된 객체가 상기 캐시에 저장되어 있으면 상기 캐시로부터 상기 요청된 객체를 불러오고(350), 상기 웹 브라우저 애플리케이션에서 상기 불러온 객체를 렌더링하도록(350) 구성된, 객체 요청 처리 시스템.
  9. 제8항에 있어서,
    상기 요청된 객체와 연관된 메타데이터 및 상기 애플리케이션 도메인과 연관된 구성 파일에서 식별되는 객체 캐시 설정들을 비교함으로써, 상기 요청된 객체가 상기 애플리케이션 도메인에 의해 처리된 객체로서 식별되는(320), 객체 요청 처리 시스템.
  10. 제8항에 있어서,
    상기 프런트 엔드 서버에 연결된 백 엔드 서버(250); 및
    상기 백 엔드 서버에 연결된 외부 데이터베이스(260)
    를 더 포함하고,
    상기 요청된 객체가 상기 캐시에 저장되어 있지 않는다면 상기 요청된 객체를 상기 백 엔드 서버를 통해 상기 외부 데이터베이스로부터 불러오고(330), 상기 외부 데이터베이스로부터 불러온 상기 객체가 상기 애플리케이션 도메인에 의해 처리된 객체로서 식별된다면 상기 외부 데이터베이스로부터 불러온 상기 객체는 상기 캐시에 저장되며(340),
    상기 인덱스는 상기 외부 데이터베이스로부터 불러온 상기 객체가 상기 캐시에 저장되어 있다는 것을 식별하기 위해 업데이트되는(345), 객체 요청 처리 시스템.
  11. 제8항에 있어서,
    상기 애플리케이션 도메인은 상기 인덱스가 상기 캐시에 저장되어 있는 객체들의 정확한 목록을 유지하도록 상기 인덱스를 상기 캐시와 동기화하도록(222, 228) 더 구성되는, 객체 요청 처리 시스템.
  12. 제8항에 있어서,
    상기 애플리케이션 도메인은 상기 캐시에 저장되어 있는 상기 객체에 대해 웹사이트에서 이루어진 변경을 반영하기 위해 상기 캐시를 업데이트하도록 더 구성되는, 객체 요청 처리 시스템.
  13. 제8항에 있어서,
    상기 애플리케이션 도메인은 상기 인덱스에서 식별되는 캐시 위치로부터 상기 요청된 객체를 불러오는(350), 객체 요청 처리 시스템.
  14. 제8항에 있어서,
    상기 애플리케이션 도메인이 상기 웹 브라우저 애플리케이션으로 상기 객체 를 이전에 렌더링했다면, 상기 캐시는 상기 객체를 포함하는(305), 객체 요청 처리 시스템.
  15. 객체에 대한 요청을 처리하는 컴퓨터 실행가능 명령어들을 갖는 컴퓨터 판독가능 매체에 있어서, 상기 명령어들은,
    객체에 대한 요청을 웹 브라우저 애플리케이션으로부터 프런트 엔드 서버에서 수신하는 단계(300);
    상기 요청된 객체와 연관된 메타데이터 및 애플리케이션 도메인과 연관된 구성 파일에서 식별되는 객체 캐시 설정들을 비교함으로써, 상기 요청된 객체가 상기 애플리케이션 도메인에 의해 처리된 객체인지 식별하기 위해 상기 애플리케이션 도메인을 실행하는 단계(320);
    상기 요청된 객체가 상기 애플리케이션 도메인에 의해 처리된다면 상기 요청된 객체가 캐시에 저장되어 있는지를 판정하기 위해 인덱스를 참조하는 단계(325);
    상기 요청된 객체가 상기 캐시에 저장되어 있다면 상기 캐시로부터 상기 요청된 객체를 불러오는 단계(350); 및
    상기 웹 브라우저 애플리케이션에서 상기 불러온 객체를 렌더링하는 단계(350)
    를 실행시키기 위한 명령어들인 컴퓨터 판독가능 매체.
  16. 제15항에 있어서,
    상기 요청된 객체가 상기 캐시에 저장되어 있지 않다면 백 엔드 서버를 통해 외부 데이터베이스로부터 상기 객체를 불러오는 단계(330);
    상기 외부 데이터베이스로부터 불러온 상기 객체가 상기 애플리케이션 도메인에 의해 처리된 객체로서 식별된다면 상기 외부 데이터베이스로부터 불러온 상기 객체를 상기 캐시에 저장하는 단계(340); 및
    상기 외부 데이터베이스로부터 불러온 상기 객체가 상기 캐시에 저장되어 있다는 것을 식별하기 위해 상기 인덱스를 업데이트하는 단계(345)
    를 실행시키기 위한 명령어를 더 포함하는 컴퓨터 판독가능 매체.
  17. 제15항에 있어서,
    상기 인덱스가 상기 캐시에 저장되어 있는 객체들의 정확한 목록을 유지하도록 상기 인덱스를 상기 캐시와 동기화하는(222, 228) 단계를 실행시키기 위한 명령어를 더 포함하는 컴퓨터 판독가능 매체.
  18. 제15항에 있어서,
    상기 캐시에 저장되어 있는 상기 객체에 대해 웹 사이트에서 이루어진 변경을 반영하도록 상기 캐시를 업데이트하는 단계를 실행시키기 위한 명령어를 더 포함하는(430) 컴퓨터 판독가능 매체.
  19. 제15항에 있어서,
    상기 요청된 객체를 불러오는 단계는 상기 인덱스에서 식별되는 캐시 위치로부터 상기 요청된 객체를 불러오는 단계(350)를 더 포함하는, 컴퓨터 판독가능 매체.
  20. 제15항에 있어서,
    상기 애플리케이션 도메인이 상기 웹 브라우저 애플리케이션에 대해 상기 객체를 이전에 렌더링했다면, 상기 객체는 상기 캐시에 저장되어 있는(305), 컴퓨터 판독가능 매체.
KR1020087014426A 2005-12-15 2006-12-07 디스크 기반 캐시 KR20080081276A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/303,159 US20070143242A1 (en) 2005-12-15 2005-12-15 Disk-based cache
US11/303,159 2005-12-15

Publications (1)

Publication Number Publication Date
KR20080081276A true KR20080081276A (ko) 2008-09-09

Family

ID=38174925

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087014426A KR20080081276A (ko) 2005-12-15 2006-12-07 디스크 기반 캐시

Country Status (4)

Country Link
US (1) US20070143242A1 (ko)
KR (1) KR20080081276A (ko)
CN (1) CN101331488A (ko)
WO (1) WO2007078636A1 (ko)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8572495B2 (en) 2005-12-15 2013-10-29 Microsoft Corporation Providing electronic distribution of filtered calendars
US20080228920A1 (en) * 2007-03-16 2008-09-18 Souders Steven K System and method for resource aggregation and distribution
US20080235326A1 (en) * 2007-03-21 2008-09-25 Certeon, Inc. Methods and Apparatus for Accelerating Web Browser Caching
JP4995057B2 (ja) * 2007-12-07 2012-08-08 キヤノン株式会社 描画装置、印刷装置、描画方法、及びプログラム
US9111006B2 (en) * 2010-03-16 2015-08-18 Salesforce.Com, Inc. System, method and computer program product for communicating data between a database and a cache
US8601549B2 (en) * 2010-06-29 2013-12-03 Mckesson Financial Holdings Controlling access to a resource using an attribute based access control list
CN101964810A (zh) * 2010-08-25 2011-02-02 北京神州泰岳软件股份有限公司 基于浏览器的实时信息同步方法
GB201116737D0 (en) * 2011-09-28 2011-11-09 Ericsson Telefon Ab L M Caching in mobile networks
US20130174181A1 (en) * 2011-12-30 2013-07-04 Sap Ag Frontend - backend communication decision based on business object metadata
CN102768721B (zh) * 2012-06-25 2016-06-01 北京奇虎科技有限公司 控制白名单的方法及装置
CN103399911A (zh) * 2013-07-30 2013-11-20 北京小米科技有限责任公司 基于浏览器客户端的访问处理方法、装置及终端设备
CN103631891A (zh) * 2013-11-15 2014-03-12 北京奇虎科技有限公司 浏览器磁盘缓存的处理方法与浏览器
US9819643B2 (en) * 2014-10-13 2017-11-14 Telefonaktiebolaget L M Ericsson (Publ) CCN name patterns
US9838243B2 (en) 2015-03-24 2017-12-05 Telefonaktiebolaget Lm Ericsson (Publ) Transformative requests
CN107483631B (zh) * 2017-09-19 2020-04-07 山东大学 一种控制缓存实现移动互联网络服务访问的方法

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6026452A (en) * 1997-02-26 2000-02-15 Pitts; William Michael Network distributed site cache RAM claimed as up/down stream request/reply channel for storing anticipated data and meta data
US5452447A (en) * 1992-12-21 1995-09-19 Sun Microsystems, Inc. Method and apparatus for a caching file server
US5729734A (en) * 1995-11-03 1998-03-17 Apple Computer, Inc. File privilege administration apparatus and methods
US5896506A (en) * 1996-05-31 1999-04-20 International Business Machines Corporation Distributed storage management system having a cache server and method therefor
US6182151B1 (en) * 1996-07-29 2001-01-30 International Business Machines Corporation Method and apparatus for batch storage of objects in a client-server storage management system
US6393526B1 (en) * 1997-10-28 2002-05-21 Cache Plan, Inc. Shared cache parsing and pre-fetch
US6108703A (en) * 1998-07-14 2000-08-22 Massachusetts Institute Of Technology Global hosting system
US6487641B1 (en) * 1999-04-19 2002-11-26 Oracle Corporation Dynamic caches with miss tables
US6970849B1 (en) * 1999-12-17 2005-11-29 Microsoft Corporation Inter-server communication using request with encrypted parameter
US6877061B2 (en) * 2000-03-31 2005-04-05 Emc Corporation Data storage system having dummy printed circuit boards
US6948135B1 (en) * 2000-06-21 2005-09-20 Microsoft Corporation Method and systems of providing information to computer users
US6678793B1 (en) * 2000-09-27 2004-01-13 International Business Machines Corporation User-based selective cache content replacement technique
US6807606B2 (en) * 2000-12-18 2004-10-19 International Business Machines Corp. Distributed execution coordination for web caching with dynamic content
US6748502B2 (en) * 2001-01-12 2004-06-08 Hitachi, Ltd. Virtual volume storage
US7555561B2 (en) * 2001-03-19 2009-06-30 The Aerospace Corporation Cooperative adaptive web caching routing and forwarding web content data broadcasting method
US7370351B1 (en) * 2001-03-22 2008-05-06 Novell, Inc. Cross domain authentication and security services using proxies for HTTP access
US7200801B2 (en) * 2002-05-17 2007-04-03 Sap Aktiengesellschaft Rich media information portals
US6938184B2 (en) * 2002-10-17 2005-08-30 Spinnaker Networks, Inc. Method and system for providing persistent storage of user data

Also Published As

Publication number Publication date
CN101331488A (zh) 2008-12-24
US20070143242A1 (en) 2007-06-21
WO2007078636A1 (en) 2007-07-12

Similar Documents

Publication Publication Date Title
KR20080081276A (ko) 디스크 기반 캐시
JP7044879B2 (ja) クライアント同期サービスのためのローカルツリーの更新
US11126605B2 (en) System and method for clustering distributed hash table entries
US11625501B2 (en) Masking sensitive information in records of filtered accesses to unstructured data
US8326839B2 (en) Efficient file access in a large repository using a two-level cache
US10338917B2 (en) Method, apparatus, and system for reading and writing files
US9875262B2 (en) System and method for fetching the latest versions of stored data objects
US10261996B2 (en) Content localization using fallback translations
US10650032B1 (en) Filtering pipeline optimizations for unstructured data
US8930894B2 (en) Method and system for executing an executable file
CN110750507B (zh) 面向dfs的全局命名空间下的持久客户端缓存方法及系统
US10664508B1 (en) Server-side filtering of unstructured data items at object storage services
US9485304B2 (en) Asset streaming and delivery
US11811851B2 (en) Method and system for enforcing governance across multiple content repositories using a content broker
US20150026222A1 (en) Creating unique content item identifiers

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid