KR20040085057A - 데이터베이스 결과 및 파생된 개체를 캐싱 및 무효화하기위한 시스템 및 방법 - Google Patents

데이터베이스 결과 및 파생된 개체를 캐싱 및 무효화하기위한 시스템 및 방법 Download PDF

Info

Publication number
KR20040085057A
KR20040085057A KR1020040021215A KR20040021215A KR20040085057A KR 20040085057 A KR20040085057 A KR 20040085057A KR 1020040021215 A KR1020040021215 A KR 1020040021215A KR 20040021215 A KR20040021215 A KR 20040021215A KR 20040085057 A KR20040085057 A KR 20040085057A
Authority
KR
South Korea
Prior art keywords
invalidation
results
memory
database
information
Prior art date
Application number
KR1020040021215A
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 KR20040085057A publication Critical patent/KR20040085057A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/40Data acquisition and logging
    • 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/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management
    • 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)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 데이터베이스 질의로부터 생성된 미가공 데이터(raw data), 개체, 질의 가능한 데이터 세트, 완전한 또는 부분적인 웹 응답, 현재 및 그 후 이용을 위한 인 메모리(in memory)와 같은 결과를 -결과들이 불일치하게 된 경우 불일치하는 데이터를 사용하는 것을 완화하기 위해- 저장하고 저장된 결과를 무효화시키기 위한 방법 및 시스템에 관한 것이다. 저장된 결과는 하나 이상의 컴포넌트에 의하여 사용될 수 있고, 전형적으로 그 후의 질의가 실질적으로 유사한 결과를 반환할 경우 이용될 수 있다. 그러므로, 상기 시스템 및 방법은 성능을 감소시키고, 자원을 소비하는 실질적으로 중복된 질의를 수행하는 것을 완화시킨다. 저장된 결과의 일치성에 영향을 미치는 데이터베이스 변화가 발생하고/발생하거나, 만료 기간이 경과한 경우, 무효화 메시지가 전송될 수 있는데, 상기 메시지는 저장된 결과를 무효화시키기 위하여 사용된다. 그러므로, 상기 시스템 및 방법은 불일치하는 저장된 데이터를 사용하는 것을 완화시킨다. 부가적으로, 일치하는 결과를 얻기 위하여 자동적으로 불일치하는 결과를 갱신하는 자동 재질의 기술(automatic re-query technique)이 사용될 수 있다.

Description

데이터베이스 결과 및 파생된 개체를 캐싱 및 무효화하기 위한 시스템 및 방법{SYSTEMS AND METHODS FOR CACHING AND INVALIDATING DATABASE RESULTS AND DERIVED OBJECTS}
본 발명은 일반적으로 데이터베이스에 관한 것으로, 특히 후속 이용을 위하여 데이터베이스 질의(들)로부터 생성된 결과를 세이브(save)하고, 세이브된 결과가 데이터베이스와 불일치하게 된 경우에 세이브된 데이터를 무효화시키기 위한 시스템 및 방법에 관한 것이다.
컴퓨팅 및 네트워킹 기술은 일상 생활의 많은 중요한 양상을 변형시켰다. 컴퓨터는 사치품, 교육용 도구 및/또는 오락 용품이 아닌 가정용 필수품이 되었고, 사용자에게 재정을 관리 및 예측하고, 난방, 냉방, 조명 및 보안과 같은 가정 작업을 제어하며, 영구적이고 신뢰할 수 있는 매체에 기록 및 이미지를 저장할 수 있는 도구를 제공한다. 인터넷과 같은 네트워킹 기술은 사용자에게 원격 시스템, 정보 및 관련 애플리케이션에 대한 사실상 무제한의 액세스를 제공한다.
컴퓨팅 및 네트워킹 기술이 강인하고, 안전하며, 신뢰할 수 있게 됨에 따라, 더 많은 소비자, 도매 상인, 소매 상인, 기업가, 교육 기관 등이 패러다임을 이동하고, 사업을 수행하기 위해 전통적인 수단을 대신하여 인터넷을 사용하고 있다. 예컨대, 많은 사업 및 소비자가 웹 사이트 및/또는 온라인 서비스를 제공하고 있다. 예컨대, 오늘날 소비자는 인터넷을 통해 그/그녀의 계좌에 액세스할 수 있고, 잔액 조회, 계좌 이체 및 대금 지급과 같은 점점 늘어나는 이용 가능한 트랜잭션을 수행한다.
전형적으로, 클라이언트 애플리케이션에 액세스 가능한 데이터 베이스 내에정보를 저장하는 데이터베이스 서버와 상호 작용하기 위하여, 인터넷 세션은 클라이언트 애플리케이션(예컨대, 웹 서버)을 가지는 사용자 인터페이스를 포함한다. 예컨대, 주식 시장 웹 사이트는 사용자에게 주식 시세(stock quote) 및 주식 매입(purchasing stock)을 검색하기 위한 도구를 제공할 수 있다. 사용자는 주권 심볼(stock symbol)을 타이프하고, 질의를 활성화시키기 위하여 마우스 클릭을 수행함으로써 주식 시세를 요청할 수 있다. 그 후, 클라이언트 애플리케이션은 데이터베이스에 주식 정보를 질의하여 주식 시세를 반환한다. 마찬가지로, 사용자는 적당한 정보를 제공함 -주문을 제출하면 데이터베이스 질의를 시작하여 현재 가격 정보 및 주문 상태를 반환하도록 함- 으로써 주식을 구입할 수 있다.
더 많은 사용자가 그러한 서비스를 이용함에 따라, 더 많은 대역폭이 소비되어 성능 및/또는 속도를 감소시킬 수 있는데, 이는 대역폭은 제한된 자원이기 때문이다. 다른 결점은 이용 가능한 데이터의 양에 비해 제한된 이용 가능한 데이터 전송 속도(limited available data transfer rate)이다. 예컨대, 많은 양의 데이터(예컨대, 다양한 서버에 걸쳐 분산된)를 검색하는 요청은 대역폭이 이용 가능한 경우조차도 시간 집약적(time intensive)이고 성능 제한적(performance limiting)일 수 있다.
앞서 말한 문제는 빈번하고 유사한 요청을 수행하는 사용자에 의하여 악화된다. 예컨대, 현재 주식 시세를 희망하는 사용자는 업데이트된 시세를 얻기 위하여 빈번한 요청을 수행할 것이다. 그러므로, 사용자는 실질적으로 유사한 정보를 검색하기 위하여 빈번하게 대역폭을 소비한다. 부가적으로, 다른 사용자는 동시에실질적으로 유사한 정보를 검색하기 위하여 요청을 수행할 수 있다. 그 후의 데이터베이스 테이블이 변화되어서 반환된 결과가 무효가 되므로, 검색된 데이터의 일치성이 보장될 수 없다는 점에서 사용자는 더욱 제한된다.
일반적으로, 데이터베이스는 데이터베이스 질의를 통해 검색 가능한 정보를 저장한다. 예컨대, 사용자는 데이터베이스 내에 저장된 정보의 적어도 일 부분을 얻기 위하여 애플리케이션과 인터페이스할 수 있다. 예컨대, 사용자는 웹 서비스를 사용하여, 서버에 저장된 정보와 연관된 요청을 제출할 수 있다. 상기 요청은 관련된 데이터베이스(들)의 하나 이상의 질의를 초기화하고, 하나 이상의 질의의 결과는 웹 서비스로부터 반환, 디스플레이, 소비 및/또는 추가적인 사용을 위한 응답을 생성하기 위하여 사용될 수 있다.
많은 경우에 있어서, 데이터베이스는 자원 경쟁의 공통 소스(common source)가 될 수 있다. 예컨대, 하나 이상의 사용자가 동시에 데이터베이스를 질의하고 유사한 결과를 반환하는 유사한 요청을 전송할 수 있다. 예컨대, 상기와 같은 유사한 결과에 대한 동시적인 질의는 데이터베이스 부하를 증가시키고, 대역폭을 감소시키며, 성능을 떨어뜨리고, 자원을 소비할 수 있다. 다른 예에서, 하나 이상의 사용자가 유사한 결과를 반환하는 요청을 빈번하게 수행할 수 있다. 마찬가지로, 예컨대 시스템 성능은 데이터베이스 부하로 인해 감소될 수 있다. 앞의 경우에서, 데이터베이스는 복수의 사용자 요청 및/또는 사용자들에게 공유된 상태를 나타내고, 공유된 상태 경쟁은 시스템 성능 및 확장성(scalability)을 제한할 수 있다.
질의의 수를 줄이기 위하여 전형적으로 사용되는 방법은 데이터베이스 외부로부터 자주 이용되는 데이터(예컨대, 미가공 데이터, 변형된 데이터 및 질의 가능한 형태의 데이터의 형태로)를 세이브하고, 부가적인 질의를 수행하는 대신 세이브된 결과를 이용하는 것을 포함한다. 그러나, 그 후의 데이터베이스 변화가 발생하여 사용자(들)에 대한 통지 없이 세이브된 데이터가 데이터베이스와 불일치하게 되기 때문에, 세이브된 데이터의 일치성(consistency)이 손상된다.
본 발명의 시스템 및 방법은 실질적으로 유사한 정보를 위한 데이터베이스 부하를 감소(예컨대, 질의(들) 감소)시키고, 확장성을 증가시키며, 반복적인 처리를 감소시키고, 데이터 일치성을 보장한다.
도 1은 본 발명의 일 태양에 따른 예시적인 무효화 등록 시스템을 도시하는 도면.
도 2는 본 발명의 일 태양에 따른 예시적인 무효화 메모리 관리 시스템을 도시하는 도면.
도 3은 본 발명의 일 태양에 따른 예시적인 데이터베이스 등록 및 무효화 시스템을 도시하는 도면.
도 4는 본 발명의 일 태양에 따른 예시적인 웹 기반 메모리 무효화 시스템을 도시하는 도면.
도 5는 본 발명의 일 태양에 따른 예시적인 보안 기술을 도시하는 도면.
도 6은 본 발명의 일 태양에 따른 예시적인 무효화 메시지 전송 기술을 도시하는 도면.
도 7은 본 발명의 일 태양에 따른 예시적인 분산 무효화 시스템을 도시하는 도면.
도 8은 본 발명의 일 태양에 따른 예시적인 웹 서비싱 무효화 시스템을 도시하는 도면.
도 9는 본 발명의 일 태양에 따른 예시적인 자동 무효화 방법론을 도시하는 도면.
도 10은 본 발명의 일 태양에 따른 도 9에서 계속되는 도면.
도 11은 본 발명의 일 태양에 따른 예시적인 변화 기반 무효화 방법론을 도시하는 도면.
도 12는 본 발명의 일 태양에 따른 예시적인 시간 기반 무효화 방법론을 도시하는 도면.
도 13은 본 발명의 일 태양에 따른 예시적인 운영 시스템을 도시하는 도면.
< 도면의 주요 부분에 대한 부호 설명 >
110 : 컨텍스트 뱅크
120 : 질의 관리자
220 : 메모리 관리자
310 : 클라이언트
320 : 메모리
405 : 웹서버
420 : 컨텍스트
430 : 질의 관리자
440 : 서버
이하의 설명은 발명의 일부 태양에 대한 기본적인 이해를 제공하기 위하여 발명의 단순화된 요약을 제시한다. 본 요약은 발명의 광범위한 개관이 아니다. 발명의 중심/주요 요소를 식별하거나 발명의 범위를 묘사하려는 의도가 아니다. 유일한 목적은 이하 제시된 보다 상세한 설명의 서문으로써 단순한 형태로 발명의 일부 개념을 제시하기 위함이다.
본 발명은 데이터베이스 변화 및/또는 만료 기간의 경과로 인하여 결과가 무효화(invalidation) 된 경우 데이터베이스 질의로부터 생성된 세이브된 결과를 무효화시키기 위한 시스템 및 방법에 관한 것이다. 그러므로, 본 발명은 데이터베이스를 질의하고, 데이터베이스 질의(들)로부터 생성된 결과를 세이브하며, 데이터베이스가 변화하고/변화하거나 만료 기간이 결과를 무효화시킬 때가지 세이브된 결과를 이용하는 기법들을 제공한다.
일반적으로, 데이터베이스는 데이터베이스 질의를 통해 검색 가능한 정보를 저장한다. 예컨대, 사용자는 데이터베이스 내에 저장된 정보의 적어도 일 부분을 얻기 위하여 애플리케이션과 인터페이스할 수 있다. 예컨대, 사용자는 웹 서비스를 사용하여, 서버에 저장된 정보와 연관된 요청을 제출할 수 있다. 상기 요청은 관련된 데이터베이스(들)의 하나 이상의 질의를 초기화하고, 하나 이상의 질의의 결과는 웹 서비스로부터 반환, 디스플레이, 소비 및/또는 추가적인 사용을 위한 응답을 생성하기 위하여 사용될 수 있다.
많은 경우에 있어서, 데이터베이스는 자원 경쟁의 공통 소스(common source)가 될 수 있다. 예컨대, 하나 이상의 사용자가 동시에 데이터베이스를 질의하고 유사한 결과를 반환하는 유사한 요청을 전송할 수 있다. 예컨대, 상기와 같은 유사한 결과에 대한 동시적인 질의는 데이터베이스 부하를 증가시키고, 대역폭을 감소시키며, 성능을 떨어뜨리고, 자원을 소비할 수 있다. 다른 예에서, 하나 이상의 사용자가 유사한 결과를 반환하는 요청을 빈번하게 수행할 수 있다. 마찬가지로, 예컨대 시스템 성능은 데이터베이스 부하로 인해 감소될 수 있다. 앞의 경우에서, 데이터베이스는 복수의 사용자 요청 및/또는 사용자들에게 공유된 상태를 나타내고, 공유된 상태 경쟁은 시스템 성능 및 확장성(scalability)을 제한할 수 있다.
질의의 수를 줄이기 위하여 전형적으로 사용되는 방법은 데이터베이스 외부로부터 자주 이용되는 데이터(예컨대, 미가공 데이터, 변형된 데이터 및 질의 가능한 형태의 데이터의 형태로)를 세이브하고, 부가적인 질의를 수행하는 대신 세이브된 결과를 이용하는 것을 포함한다. 그러나, 그 후의 데이터베이스 변화가 발생하여 사용자(들)에 대한 통지 없이 세이브된 데이터가 데이터베이스와 불일치하게 되기 때문에, 세이브된 데이터의 일치성(consistency)이 손상된다.
본 발명의 시스템 및 방법은 실질적으로 유사한 정보를 위한 데이터베이스 부하를 감소(예컨대, 질의(들) 감소)시키고, 확장성을 증가시키며, 반복적인 처리를 감소시키고, 데이터 일치성을 보장한다. 시스템 및 방법은 컨텍스트 뱅크(context bank)에 무효화 정보를 저장하는 것을 포함하는데, 무효화 정보는 질의와 질의 요청자를 연관시키고 데이터베이스에 질의를 등록하기 위하여 검색되고, 질의와 함께 전송될 수 있다. 질의로부터 생성된 결과(예컨대, 미가공 데이터, 변형된 데이터, 질의 가능한 형태의 데이터, 부분적인 응답 및 완전한 응답)는 데이터베이스 외부의 액세스 가능한 저장 매체에 저장될 수 있고, 다양한 사용자(예컨대, 웹 서버)에 의하여 한번 이상 사용되어 실질적으로 유사한 정보에 대한 질의를 완화시킨다.
저장된 결과에 영향을 미치는 데이터베이스 변화가 발생하면, 무효화 메시지가 송신되어 사용자가 불일치하는 데이터를 사용하는 것을 완화시키기 위해, 세이브된 결과를 무효화시키는 것을 용이하게 한다. 질의와 함께 전송된 무효화 정보는 전형적으로 무효화 메시지를 구성하기 위하여 이용된다. 부가적으로, 만료 기간은 데이터베이스 변화가 발생하지 않았더라도, 만료 기간이 경과한 후에 세이브된 결과가 무효화되도록 정의될 수 있다. 예컨대, 세이브된 결과를 무효화한 후에, 결과는 자동적으로 폐기(discard) 및/또는 갱신될 수 있다.
추가적으로, 본 발명의 시스템 및 방법은 웹 환경에서 사용될 수 있는데, 데이터베이스 질의(들)로부터 생성된 웹 응답이 전체적 또는 부분적으로 저장되고, 그 후의 요청에 대한 응답으로 반환되는 경우에, 지연 및 웹 서버 자원의 사용을 더욱 감소가 달성될 수 있다. 예컨대, 개발자는 웹 페이지에 주석(annotation)(들)을 포함시킴으로써, 질의(들)의 결과가 변화할 때까지 데이터베이스 질의(들) 기반으로 생성된 응답이 캐시될 것을 요청할 수 있다. 주석(들)은 웹 서버가 캐시될 응답과 데이터베이스 종속성을 연관시키고, 종속성과 연관된 무효화 정보 및/또는 종속성 자체를 컨텍스트 뱅크에 저장하도록 야기한다. 저장된 무효화 정보는 자동적으로 검색되어 그 후의 질의(들)와 함께 데이터베이스로 전송된다. 위에서 지적한 바와 같이, 이전에 질의된 결과가 불일치하게 되는 변화가 데이터베이스에 발생한 경우 및/또는 만료 기간이 경과한 경우, 무효화 정보는 무효화 메시지에서 사용될 수 있다.
컨텍스트 뱅크에 무효화 정보를 저장하고 이용하는 것은 무효화 정보를 질의와 연관시키기 위한 기반 구조를 초기화하고, 질의 응답을 세이브(예컨대, 캐싱)하는 것을 용이하게 한다. 그러므로, 저장된 무효화 정보를 사용하는 것은 웹 서버(및/또는 질의 요청을 처리할 수 있는 다른 컴포넌트(들))가 응답의 생성에 대한 지식을 가지도록 요구하는 것을 완화시킨다. 더욱이, 저장된 무효화 정보를 사용하는 것은 응답을 생성하는 컴포넌트가 어떻게 상기 응답이 웹 서버에 의하여 이용될 것인지를 알아야 할 필요성을 완화시킨다.
본원 발명에 따른, 이상에서 기술된 시스템 및 방법은 무효화 정보 저장, 질의 실행, 질의에 기반한 결과 세이브, 무효화 메시지 수신 및/또는 세이브된 정보 무효화를 위하여 컴포넌트를 사용한다. 부가적으로, 비동기식 및 동기식 통신과, 악의적이고 가상의 정보(malicious and fictitious information) 및 메시지의 존재 및/또는 전송을 완화시키는 보안 기술을 위한 다양한 데이터 전송 기술이 사용될 수 있다. 실제적으로, 시스템 및 방법은 클라이언트-서버 및/또는 SQL 기반 환경을 포함하는 다양한 환경에서 사용될 수 있다.
전술한 그리고 관련된 목적의 달성에 있어서, 발명은 이하 완전히 기술될 그리고 청구항에서 특별히 지적될 특징을 포함한다. 다음의 기술 및 첨부된 도면은 발명의 특정한 도시적인 태양 및 구현을 자세하게 제시한다. 그러나, 이것은 발명의 원리가 사용될 수 있는 단지 몇몇의 다양한 방법의 표시이다. 발명의 다른 목적, 이점 및 신규한 특징은, 도면과 관련하여 고려될 경우 다음의 발명의 상세한 설명으로부터 명백해질 것이다.
본 발명은 도면을 참조하여 기술되는데, 시종일관하여 유사한 참조 번호는 유사한 요소를 참조하기 위하여 사용된다. 이하의 기술에서 설명을 목적으로, 본 발명의 완전한 이해를 제공하기 위하여 수많은 특정한 세부 사항이 제시된다. 그러나, 본 발명은 이러한 특정한 세부 사항 없이도 실시될 수 있음이 명확하다. 다른 사례에서는, 본 발명의 기술이 용이하도록 잘 알려진 구조 및 장치가 블록도 형태로 도시된다.
본 출원에서 사용된 바에 따르면, "컴포넌트"라는 단어는 컴퓨터 관련 엔티티(entity), 하드웨어, 하드웨어 및 소프트웨어의 조합, 소프트웨어 또는 실행중인소프트웨어를 지칭하기 위한 의도로 사용된다. 예컨대, 컴포넌트는 프로세서 상에서 실행되는 프로세스, 프로세서, 개체, 실행 가능형(executable), 실행의 스레드(thread), 프로그램 및/또는 컴퓨터가 될 수 있지만, 이상의 것들로 제한되지 않는다. 도시의 목적으로, 서버 상에서 실행되는 애플리케이션 및 서버는 컴퓨터 컴포넌트일 수 있다. 하나 이상의 컴포넌트가 프로세스 및/또는 실행의 스레드 내에 위치할 수 있고, 컴포넌트는 하나의 컴퓨터에 집중되고/집중되거나 둘 이상의 컴퓨터에 분산될 수 있다. "스레드"는 운영 시스템 커널(operating system kernel)이 실행을 위해 스케줄링하는 프로세스 내의 실체이다. 각각의 스레드는 스레드의 실행과 연관된, 휘발성 데이터인 연관 "컨텍스트(context)"를 가진다. 스레드의 컨텍스트는 시스템 레지스터의 내용(contents of system registers) 및 스레드의 프로세스에 속하는 가상 주소를 포함한다. 그러므로 스레드의 컨텍스트를 포함하는 실제 데이터는 실행됨에 따라 변화한다.
본 발명은 데이터베이스 질의(들)(예컨대, 동적 및 정적)로부터 생성된 결과를 메모리에 저장하기 위한 시스템 및 방법에 관한 것으로, 상기 결과는 검색되고 이용되며, 일치하지 않게 된(inconsistent) 경우(예컨대, 데이터베이스 변경 및 만료 기간의 경과)에는 무효화될 수 있다. 시스템 및 방법은 실질적으로 유사한(예컨대, 중복된) 정보에 대한 질의를 감소시킴으로써 시스템 부하 및 자원 경쟁을 완화시킨다. 부가적으로, 시스템 및 방법은 불일치하는 세이브 결과를 사용하는 것을 완화시킨다. 그러므로, 시스템 및 방법은 정보를 위해 데이터베이스를 질의하고, 캐시와 같은 메모리에 결과를 저장하며, 실질적으로 유사한 결과를 요구할 경우 세이브된 결과를 한번 이상 사용하고, 불일치하게 될 경우 세이브된 결과를 자동적으로 무효화시키며, 자동적으로 재질의(re-querying) 및 세이브함으로써 선택적으로 메모리를 갱신하는 기법을 제공한다.
도 1을 참조하면, 본 발명의 일 태양에 따른 예시적인 무효화 등록 시스템(100; invalidation registration system)이 도시되어 있다. 무효화 등록 시스템(100)은 컨텍스트 뱅크(110) 및 질의 관리자(120)을 포함한다.
컨텍스트 뱅크(110)는 세이브된 결과에 영향을 미칠 수 있는 데이터베이스 변화가 발생한 경우 및/또는 만료 기간이 경과한 경우에, 세이브된 결과를 무효화시키기 용이하도록 정보를 제공하기 위하여 사용될 수 있다. 예컨대, 컨텍스트 뱅크(110)는 컴포넌트(들; 예컨대, 이하 기술될 종속성)와 연관된 무효화 정보를 저장하기 위하여 이용될 수 있다. 무효화 정보는 데이터베이스 질의를 통해 데이터베이스와 연결될 수 있다. 결과는 세이브되어, 한번 이상 이용될 수 있다. 질의에 영향을 미칠 수 있는 데이터베이스 변화가 발생한 경우 및/또는 시간이 만료된 경우, -예컨대, 통지, 이벤트, 플래그, 세이브된 결과의 자동 무효화 및 일치된 결과를 얻고 메모리를 갱신하기 위한 자동적인 재질의를 통해-저장된 결과(예컨대, 통지를 통해)를 무효화시키는 것이 용이하도록 대응되는 무효화 정보가 이용될 수 있다.
전형적인 무효화 정보는 무효화 문자열(invalidation string), 서비스 정보(service information) 및 타임아웃(time out)을 포함한다. 무효화 문자열은 일반적으로 컴포넌트 식별자, 위치(예컨대, 장치 이름), 포트, 주소 및/또는 큐 이름을 포함하고, 예를 들어 추가로 인증 정보(authentication information ), 암호화(encryption) 및 프로토콜 설정(protocol preference)을 포함할 수 있다. 예컨대 서비스 정보는 자동 세이브 결과 삭제(automatic saved results removal), 자동 결과 갱신(automatically refreshing results), 자동 결과 무효 표시(automatically tagging results as invalid) 및 세이브된 결과에 영향을 미치지 않고 컴포넌트에 통지하기를 위한 플래그를 포함할 수 있다. 예컨대, 타임아웃은 데이터베이스 변화, 파일 변화 및 시간에 근거할 수 있다. 이상의 예는 예시적이고, 제한적이지 않다는 점을 인식해야 한다. 그러므로, 본 발명의 태양에 따른 부가적인, 상이한 및/또는 더 적은 정보가 포함될 수 있다.
컨텍스트 뱅크(110)에 저장된 무효화 정보는 질의 관리자에게 이용 가능하다. 질의 관리자(120)는 명령 및/또는 질의를 실행할 경우에 무효화 정보를 이용할 수 있다. 예컨대, 질의 관리자(120)는 컨텍스트 뱅크(110)로부터 무효화 정보를 얻을 수 있고, 질의와 함께 무효화 정보를 포함할 수 있는데, 무효화 정보는 질의의 일부이고/이거나 질의와 연관될 수 있다.
본 발명의 일 태양에서, 컨텍스트 뱅크(110)의 컴포넌트와 연관된 무효화 정보의 저장뿐만 아니라 컴포넌트(예컨대, 종속성 개체)의 인스턴스화를 초기화하기 위하여 페이지 지시자(page directive; 예컨대 웹 페이지 내의 주석(들))가 사용될 수 있다. 무효화 정보를 저장하기 위하여 컨텍스트 뱅크(110)를 사용함으로써, 기반 구조를 설정하는 것이 용이해지는데, 상기 기반 구조는 애플리케이션이 질의 관리자(120)를 호출하여 응답이 어떻게 캐시될 수 있는지 알아야 할 필요가 없도록,질의와 함께 무효화 정보를 사용한다.
질의 관리자(120)가 데이터베이스 질의 요청을 통해 호출된 경우, 질의 관리자(120)는 컴포넌트와 연관된 무효화 정보를 검색하기 위하여 컨텍스트 뱅크(110)와 상호 작용한다. 그 후, 질의 관리자(120)는 데이터베이스 질의를 통해 요청을 실행하는데, 컨텍스트 뱅크(110)로부터 검색된 무효화 정보는 연속적으로 및/또는 동시에 질의와 함께 전송된다. 질의 결과는 반환되어 저장될 결과를 생성하기 위하여 이용되고, 전송된 무효화 정보는 컴포넌트, 질의 및 질의된 데이터베이스와 연관된 채로 남는다.
질의된 데이터베이스가 그 후의 질의를 변경하지 않고 저장될 결과를 생성하기 이전이라면(예컨대, 저장될 결과가 데이터베이스와 일치한다면), 결과는 이용되고, 추가적인 사용을 위하여 메모리에 세이브될 수 있다. 실질적으로 유사한 결과를 반환하는 요청이 그 후에 제출된 경우, 다른 질의를 수행하는 대신 저장된 결과가 이용될 수 있다. 그러므로, 본 발명은 성능, 처리율, 처리 및 속도를 감소시킬 수 있고 자원 경쟁이 발생하기 쉬운, 실질적으로 유사한 결과에 대한 질의를 수행하는 것을 완화시킨다.
결과를 세이브한 후에, 데이터베이스 변화 또는 시간의 경과로 인해 세이브된 데이터가 불일치하게 될 수도 있다. 이전에 언급된 질의의 결과에 영향을 미칠 수 있는 데이터베이스 변화가 발생하고/발생하거나 시간이 만료된 경우, 질의와 함께 전송된 무효화 정보는 결과를 생성한 컴포넌트가 더 이상 존재하지 않더라도 컴포넌트(예컨대, 메모리 관리자(120))에게 저장된 결과를 무효화시키도록(예컨대,삭제 및 갱신) 통지하기 위하여 사용될 수 있다. 세이브된 결과와 연관을 시도하는 다른 컴포넌트에게도 세이브된 결과가 무효임을 나타내는 통지가 제공될 수 있다. 그러므로, 본 발명은 컴포넌트에 대한 알림 및/또는 세이브된 결과 무효화를 통해 불일치하는 세이브 데이터 사용을 완화시킨다.
도 2에 있어서, 본 발명의 일 태양에 따른 예시적인 무효화 메모리 관리 시스템(200; invalidation memory management system)이 도시되어 있다. 무효화 메모리 관리 시스템(200)은 질의 관리자(120) 및 메모리 관리자(220)를 포함한다.
앞에서 지적한 기능에 부가하여, 질의 관리자(120)는 변화 및/또는 기간이 만료된 데이터베이스에 대한 무효화 메시지 및/또는 질의 결과를 수신할 수 있다. 일반적으로, 무효화 정보(예컨대, 상술한 바와 같이)가 질의와 함께 전송된 후에, 질의 결과가 반환된다. 본 발명의 일 태양에서, 질의 관리자(120)는 반환된 질의 결과를 수신하고, 질의 결과로부터 생성된 결과를 세이브 및/또는 이용하는 것이 용이하도록 메모리 관리자(220)가 사용된다. 저장될 결과를 생성하기 전에 데이터베이스가 변화 및/또는 만료 기간이 경과한 것이 발견되면, 메모리 관리자(220)는 상기 결과를 메모리에 세이브하지 않고 컴포넌트에 결과를 제공할 수 있다. 데이터가 일치하고(예컨대, 데이터베이스 변화 없음) 만료 기간이 경과하지 않았다면, 메모리 관리자(220)는 컴포넌트에 결과를 제공하고/제공하거나, 연속적으로 및/또는 동시에 결과를 메모리에 세이브할 수 있다. 세이브된 결과는 실질적으로 유사한 질의가 요청된 경우에 컴포넌트(들)에 의해 액세스될 수 있는데, 이로 인해 자원을 소비하고 성능을 감소시키는 실질적으로 유사한 질의 수행을 완화시키게 된다.
반환된 결과는 미가공 데이터(raw data), 변형 데이터(예컨대, 비정규화(denormalized), 수집(aggregations), 요약(summaries), 피벗 테이블(pivot tables), 미가공 데이터로부터 생성된 개체 및/또는 부분적인 또는 완전한 웹 응답) 및/또는 질의 가능 데이터(queryable data; 예컨대 부집합을 얻기 위하여 그 후의 질의를 통해 이용될 수 있는 데이터 셋)를 포함할 수 있음을 인식해야 한다. 더욱이, 메모리에 결과를 저장하기 위하여 다양한 기술들이 사용될 수 있음을 인식해야 한다. 예컨대, 첫 번째 접근에서, 실질적으로 모든 반환된 결과(예컨대, 완전한 웹 응답)가 세이브될 수 있다. 두 번째 접근에서, 반환된 결과의 일부분(예컨대, 부분적인 페이지)이 메모리에 세이브된다. 예컨대, 후속하는 요청(들)에 공통되는 부분이 세이브된다. 다른 예에서, 다수의 요청에 공통되는 결과가 저장된다. 그 후, 메모리로부터 검색된 공통적인 결과에 대한 지역적인 질의는 요청과 연관된 데이터를 반환할 수 있다. 세 번째 접근에서, 질의 또는 다른 수단을 통해 개인화된 결과(personalized result)를 얻을 수 있고, 공통적인 결과는 메모리에 세이브되어, 이용된다. 이상에서 묘사된 예시적인 설명은 발명을 제한하지 않고, 설명하기 위한 의도로 제공되었음을 인식해야 한다.
무효화 메시지를 수신한 후, 질의 관리자(120)는 컴포넌트(들)에 데이터베이스 변화 통지를 라우팅하는 것을 용이하게 하고/하거나 세이브된 데이터를 무효화할 수 있다. 본 발명의 일 태양에서, 질의 관리자(120)는 컴포넌트(들)에 통지하고, 컴포넌트는 다음 동작을 결정한다. 예컨대, 컴포넌트는 세이브된 결과를 무효화하기 위하여 메모리 관리자(220)를 사용할 수 있다. 대안으로, 질의 관리자(120)는 메모리 관리자(220)를 사용하는데, 메모리 관리자(220)는 세이브된 결과를 무효화하고/하거나 컴포넌트에 통지할 수 있다. 세이브된 결과가 무효화된 경우, 질의 및 대응되는 세이브를 초기화하는 컴포넌트는 더 이상 존재하지 않을 수 있음을 인식해야 한다.
이제 도 3을 참조하면, 본 발명의 일 태양에 따른, 예시적인 데이터베이스 등록 및 무효화 시스템(300; database registration and invalidation system)이 도시되어 있다. 데이터베이스 등록 및 무효화 시스템(300)은 컨텍스트 뱅크(110), 질의 관리자(120), 메모리 관리자(220), 선택적으로 클라이언트(310) 및 메모리(320)를 포함한다. 하나 이상의 메모리 관리자(220), 클라이언트(310) 및 메모리(320)가 사용될 수 있지만, 이하에서는 간결성을 위해 하나의 클라이언트 인스턴스가 기술됨을 인식해야 한다.
앞서 지적한 바와 같이, 컨텍스트 뱅크(110)는 컴포넌트를 위한 무효화 정보를 저장할 수 있는데, 상기 컴포넌트는 세이브된 결과에 영향을 미치는 데이터베이스 변화가 발생한 경우 및/또는 만료 기간이 경과한 경우에, 세이브된 결과를 무효화시키기 위한 정보를 제공하기 위해 사용될 수 있다. 본 발명의 일 태양에서, 클라이언트(310)는 컨텍스트 뱅크(110)에 무효화 정보 -식별자, 장치 이름, 포트, 주소, 데이터베이스 이름, 자동적으로 불일치하는 세이브 결과를 무효화시키기 위한 표지, 자동적으로 불일치하는 결과를 갱신하기 위한 표지 및 타임아웃(예컨대, 데이터베이스 변화, 파일 변화 및 시간에 근거한 무효화)- 를 제공할 수 있다.
클라이언트(310)가 질의 관리자(120)로 하여금 데이터베이스에 질의하도록 야기한 경우, 질의 관리자(120)는 컨텍스트 뱅크(110)로부터 연관된 무효화 정보를 묘사된 바와 같이 수신하고/수신하거나 컨텍스트 뱅크(110)로부터 연관된 무효화 정보를 검색한다(도시되지 않음). 그 후 질의 관리자(120)는 질의를 수행하고 무효화 정보를 제공할 수 있다. 발명의 일 태양에 따라, 질의 관리자(120)는 동적인 및/또는 정적인 데이터베이스 질의를 할 수 있음을 인식해야 한다.
질의 관리자(120)는 질의 결과를 수용하고, 상기 결과를 클라이언트(310)에 전송할 수 있다. 본 발명은 동기식 및 비동기식 메시지 전달을 제공함을 인식해야 한다. 동기식 메시지 전달(synchronous message delivery)에서, 데이터베이스 변화는 무효화 메시지의 전달 및/또는 불일치하는 결과의 무효화가 이루어질 때까지 차단될 수 있다. 변화 실행(committing change)과 무효화 메시지의 수신 및/또는 결과의 무효화 사이에 데이터베이스 변화가 발생하지 않음을 보장함으로써, 동기식 전달은 데이터 불일치를 완화시킨다. 비동기식 메시지 전달(asynchronous message delivery)에서, 무효화 메시지의 전달 및/또는 불일치하는 결과의 무효화 이전에 데이터베이스 변화가 실행될 수 있다. 비동기식 전달은 전달 지연(delivery latency)을 완화시킨다.
질의 결과를 수신한 후에, 질의된 데이터베이스(들)는 변화가 질의 후에 발생하였는지, 저장될 결과를 생성하기 이전에 발생하였는지 확인하기 위하여 다양한 기술들을 사용하여 조사될 수 있다. 변화가 발생하면, 클라이언트(310)는 메모리 관리자(220)를 호출하지 않고 결과를 이용할 수 있다. 아무런 변화도 발생하지 않으면, 클라이언트(310)는 결과를 이용하고, 메모리(320; 예컨대, 지역, 원격, 고속, HTTP 및 공유)에 결과를 저장하기 위하여 메모리 관리자(220)를 사용할 수 있다. 실질적으로 유사한 결과를 반환하는 그 후의 요청은, 세이브된 결과가 불일치하게 될 때까지 질의를 수행하는 대신 메모리(320)로부터 세이브된 결과를 이용할 수 있다.
발명의 다른 태양에서, 결과를 세이브할 것인지 결정하는 것이 용이하도록 다양한 기술들이 사용된다. 예컨대, 결과가 복수의 요청에 공통되고, 드물게 변화한다고 결정되면, 결과가 세이브된다. 그러나, 결과가 빈번하게 변화하고/변화하거나 빈번하게 사용되지 않는다고 결정되면, 저장의 대가가 상대적으로 비싸므로 결과는 세이브되지 않는다. 본 발명의 또 다른 태양에서, 메모리 문제를 완화하기 위하여 다양한 기술들이 사용된다. 예컨대, 메모리(320)가 가득 차면 FIFO 또는 FILO 접근법, 가장 오래된 정보가 우선 폐기되는 나이 기준 접근법(age based approach), 가장 적게 사용되거나 마지막으로 사용된 이후 가장 오랜 시간이 지난 정보가 우선 폐기되는 사용도 접근법(usage approach), 크기 기반 접근법(size based approach) 및 키 기반 접근법(key based approach)을 사용하여 결과가 세이브될 수 있다. 다른 예에서는, 충분한 "여유" 메모리가 이용 가능하게 될 때까지 결과가 저장되지 않는다. 다른 접근법들 또는 상기 접근법들의 변형은 결과를 생성하기 위하여 요구되는 시간의 양 및/또는 자원을 고려할 것이다.
결과에 영향을 미치는 데이터베이스 변화가 발생한 경우 및/또는 만료 기간이 경과한 경우, 무효화 메시지가 시스템(300)에 발송된다. 전형적으로, 무효화메시지는 적어도 무효화 정보의 일부를 포함한다. 질의 관리자(120)는 무효화 메시지를 수신할 수 있다. 그 후, 질의 관리자(120)는 클라이언트(310; 및/또는 무효화 메시지를 수신하도록 등록된 다른 컴포넌트)에게 통지한다. 그 후, 클라이언트(310)는 메모리 관리자(220)를 호출하여 세이브된 결과를 무효화(예컨대, 제거, 삭제, 덮어쓰기 및 이동)시킨다. 자동 갱신 결과가 무효화 정보에 표시되면, 그 후의 질의는 메모리(320)에 세이브될 수 있는 새로운 결과를 생성하기 위하여 수행되고, 클라이언트(310)와 같은 컴포넌트에 의하여 이용된다. 상술한 기술을 사용함으로써 불일치하는 결과에 새로운 결과를 덮어서 세이브함으로써 불일치하는 결과를 제거하는 것을 완화시킬 수 있다.
무효화 등록 시스템(100), 무효화 메모리 관리 시스템(200) 및 데이터베이스 등록 및 무효화 시스템(300)은 데이터베이스들(예컨대, 데이터베이스 테이블, 데이터 테이블 및 테이블)을 등록하고, 데이터베이스에 대한 변화를 탐지하며, 변화된 데이터베이스가 등록되었는지 결정하고 및/또는 등록된 데이터베이스가 변화되었음을 나타내는 메시지를 발송하기 위하여 컴포넌트를 추가적으로 사용할 수 있다.
도 1 내지 도 3은 시스템(100 내지 300)에 대한 컴포넌트를 도시하는 블록도인데, 컨텍스트 뱅크(110), 질의 관리자(120), 메모리 관리자(220), 클라이언트(310) 및 메모리(320)는 이상에서 상기 용어가 정의된 바에 따라 하나 이상의 컴퓨터 컴포넌트로 구현될 수 있음을 인식해야 한다. 그러므로, 본 발명에 따른 시스템(100 내지 300), 컨텍스트 뱅크(110), 질의 관리자(120), 메모리 관리자(220), 클라이언트(310) 및 메모리(320)를 구현하기 위하여 실시 가능한 컴퓨터실행 가능 컴포넌트들은 ASIC(application specific integrated circuit), CD(compact disc), DVD(digital video disk), ROM(read only memory), 플로피 디스크, 하드 디스크, EEPROM(electrically erasable programmable read only memory) 및 메모리 스틱을 포함하는(이에 제한되지 않음) 컴퓨터 판독 가능 매체에 저장될 수 있다.
도 4에는, 본 발명의 일 태양에 따른 예시적인 웹 기반 메모리 무효화 시스템(400; web based memory invalidation system)이 도시되어 있다. 웹 기반 메모리 무효화 시스템(400)은 웹 서버(405), 종속성 컴포넌트(410), 컨텍스트 컴포넌트(420), 질의 관리자(430), 서버(440), 데이터베이스 서버(450), 메모리 저장소(460), 지역 메모리(470), 고속 메모리(480), 다른 메모리(490; 예컨대, 원격 고속 메모리), 애플리케이션(492) 및 보조 계층(494; ancillary layer)을 포함한다.
웹 서버(405)는 페이지 지시자(예컨대, 앞서 기술한 바와 같이 주석(들))를 포함하는 웹 페이지(들)를 액세스 할 수 있다. 페이지 지시자는 웹 응답이 세이브될 것임을 지정하고, 연관된 데이터베이스가 변화한 경우 및/또는 만료 기간이 경과한 경우에 세이브된 응답이 무효화되어야 함을 지정하기 위하여 이용될 수 있다. 웹 서버(405)는 페이지 지시자를 이용하고, 종속성 컴포넌트(410; 예컨대, 개체 또는 파생 개체)를 호출하며, 컨텍스트 컴포넌트(420) 내의 무효화 정보의 저장을 용이하게 할 수 있다.
종속성 컴포넌트(410)는 그 후의 질의와 연관될 캐싱된 응답(cachedresponse)을 식별하기 위하여 전역 유일 식별자(예컨대 GUID(globally unique identifier))를 얻는다. 종속성 컴포넌트(410)는 컨텍스트 컴포넌트(420)에 유일한 식별자 및 다양한 다른 무효화 정보(예컨대, 앞서 기술한 바와 같이)를 제공한다. 일반적으로, 무효화 정보는 무효화 문자열(예컨대, GUID, 장치 이름, 포트, 주소 및 큐 이름, 및 선택적인 인증 정보, 암호화 및 프로토콜 설정), 서비스 정보 및 타임아웃(예컨대, 데이터베이스 변화 및 시간 만기에 기반함)을 포함한다. 그러나, 앞서 말한 것은 예시적이고, 무효화 정보를 제한하지 않는다.
질의 관리자(430)(예컨대, 질의 관리자(110))가 데이터베이스에 질의하기 위하여 호출된 경우, 질의 관리자(430)는 컨텍스트 컴포넌트(420)와 인터페이스하여 연관된 무효화 정보를 얻는다. 그 후, 질의 엔진(430)은 데이터베이스 서버(450) 내의 (예컨대, 동적 및 정적) 서버(440)에 질의 및 무효화 정보를 전송한다. 질의는 애플리케이션(492)에 반환된 결과를 이용하여 데이터베이스(440)에서 수행된다. 무효화 정보는 데이터베이스 서버(450)에 남고, 웹 서버(405) 상의 종속성 컴포넌트(410)와 서버(440)에 의하여 반환된 결과 사이에 연관을 제공한다.
질의 결과를 수신한 후에, 웹 서버는 전체적인 또는 부분적인 응답을 생성한다. 웹 서버(405)는 응답이 생성되는 동안 데이터베이스 변화가 발생했는지 판단하기 위하여 종속성 컴포넌트(410)를 폴링(polling)할 수 있고, 그 후에 결과를 세이브할 것인지 결정한다. 결과를 저장하기로 판단되면, 웹 서버(405)는 지역 메모리(470; 예컨대, 캐시), 고속 메모리(480; 예컨대, 캐시) 및/또는 다른 메모리(490)에 결과를 저장하기 용이하도록 메모리 저장소(460)를 사용할 수 있다.전형적으로, 지역 메모리(470)는 애플리케이션(490)과 연관될 수 있고, 고속 메모리(480)는 보조 계층(494; 예컨대, HTTP.sys)과 연관될 수 있다. 그렇지 않으면, 응답은 이용되고/이용되거나 세이브되지 않고 폐기될 수 있다.
세이브된 웹 응답에 영향을 미치는 데이터베이스 변화가 발생한 경우 및/또는 만료 기간이 경과한 경우, 서버(440)는 종속성 컴포넌트(410)에 무효화 메시지를 전송한다. 그 후, 종속성 컴포넌트(410)는 변화 신호를 보낸다(예컨대, 이벤트 발생 및 플래그 설정을 통해서). 메모리 저장소(460)는 상기 신호를 수신하여 응답을 무효화시킨다. 선택적으로, 무효화 메시지가 수신된 경우, 일치하는 결과를 얻고 세이브하기 위한 질의를 수행하기 위하여 자동 갱신이 사용될 수 있다. 자동 갱신은 불일치하는 결과를 덮어쓰고/덮어쓰거나 일치하는 결과를 저장하기 전에 불일치하는 결과를 제거할 수 있다.
다음으로 도 5에서, 본 발명의 일 태양에 따른 예시적인 보안 기술이 도시되어 있다. 시스템(500)은 웹 서버(405), 데이터베이스 서버(450), 활동적으로 웹 서버(496)와 데이터베이스 서버(450)를 결합시키는 보안 계층(510)을 포함한다.
상기에서 지적된 바와 같이, 질의 요청을 수신한 후에 질의 엔진(430)은 무효화 정보를 얻기 위하여 컨텍스트 페이지(420)를 인터페이스한다. 그 후, 질의 엔진(420)은 웹 서버(405)로부터 데이터베이스 서버(450) 내의 서버(440)로 질의 및 무효화 정보를 송신한다.
이전에 기술한 바와 같이, 무효화 정보는 GUID와 같은 유일한 식별자를 포함할 수 있다. GUID는 데이터베이스 변화 및 시간 만료를 흉내내려는 악의적인 시도를 완화시키기 위하여 사용될 수 있는 보안 기법을 제공한다. 예컨대, 본 발명의 일 태양에서 GUID는 런타임에 데이터베이스 질의 등록 요청이 수신된 경우에 생성되어, GUID를 "추측" 또는 흉내낼 가능성을 완화시킨다. 그리고, GUID는 무효화될 세이브된 결과의 세트를 식별하기 위하여 사용된다.
예컨대, GUID가 무효임이 판단되면(예컨대, 무효화될 한 세트의 세이브된 결과가 식별되지 않음), 무효화 요청은 무시되고/무시되거나 GUID와 함께 폐기될 수 있다. 다른 예에서, 가상의 무효화 요청이 시스템 관리자에게 전달되어 원래 위치를 추적하기 위하여 이용될 수 있다.
도 6은 본 발명의 일 태양에 따른 예시적인 무효화 메시지 전송 기술(invalidation message transfer techniques)을 도시한다. 시스템(600)은 웹 서버(405), 데이터베이스 서버(450) 및 활동적으로 웹 서버(405)와 데이터베이스 서버(450)를 결합시키는 통신 인터페이스(610)를 포함한다.
질의 요청이 수신된 후에, 질의 엔진(430)은 컨텍스트 컴포넌트(420)로부터 무효화 정보를 얻고, 데이터베이스 서버(450)로 질의 및 무효화 정보를 송신한다. 질의는 웹 서버(405)에 전송된 결과와 함께 실행되는데, 결과는 메모리에 세이브될 수 있고, 실질적으로 유사한 질의를 수행하는 것을 완화하기 위하여 한번 이상 이용될 수 있다.
결과가 데이터베이스 서버(450)로부터 반환된 후에, 무효화 정보는 데이터베이스 서버(450)에 남고, 데이터베이스 변화가 발생한 경우에 웹 서버(405) 내에 연관된 세이브 결과를 위치시키기 위하여 사용될 수 있다. 데이터베이스 서버(450)에 무효화 정보를 저장하기 위하여 다양한 기법이 사용될 수 있다는 것과, 변화된 데이터베이스와 무효화 정보를 일치시키고 무효화 메시지를 분해하기 위하여 다양한 기술이 이용될 수 있음을 인식해야 한다.
데이터베이스 변화가 발생한 경우, 무효화 메시지가 구성되어 데이터베이스 서버(450)로부터 웹 서버(405)로 통신 인터페이스(610)를 통해 전송된다. 예컨대, 무효화 메시지는 적어도 무효화 정보의 일부를 포함할 수 있다.
데이터베이스 변화는 수행될 수 있고/있거나 취소될 수 있음을 인식해야 한다. 예컨대, 본 발명의 일 태양에서, 비동기식 무효화 메시지 전송 모델이 사용될 수 있는데, 무효화 메시지가 통신 인터페이스(610)를 통해 전송되었는지 및/또는 세이브된 결과가 무효화되었는지에 관계없이 데이터베이스 변화가 수행된다.
본 발명의 다른 태양에 있어서, 동기식 무효화 메시지 전송 모델이 사용될 수 있는데, 무효화 메시지가 통신 인터페이스(610)를 통해 전송될 때까지 및/또는 세이브된 결과가 무효화될 때까지 데이터베이스 변화는 차단된다. 비동기식 모델이 확장성을 제공하는 반면, 동기식 모델은 신뢰성을 제공한다. 앞서 말한 것은 이해를 돕기 위하여 제공되고, 발명을 제한하지 않는다. 예컨대, 다른 다양한 푸시 및/또는 풀 접근법(push and/or pull approach)과 같은 다른 기술이 발명에 따라 또한 사용될 수 있다.
도 7은 본 발명의 일 태양에 따른 예시적인 분산 무효화 시스템(700; distributed invalidation system)을 도시한다. 무효화 시스템(700)은 첫 번째 웹애플리케이션(7101)에서 N 번째 웹 애플리케이션(710N)(N은 1 이상의 정수), 첫 번째 컨텍스트 컴포넌트(7201)에서 M 번째 컨텍스트 컴포넌트(720M)(M은 1 이상의 정수), 첫 번째 데이터베이스(7301)에서 K 번째 데이터베이스(730K)(K는 1 이상의 정수) 및 공유 메모리(740)를 포함한다.
첫 번째 웹 애플리케이션(7101)에서 N 번째 웹 애플리케이션(710N)은 집합적으로 웹 애플리케이션들(710)로 언급되고, 첫 번째 컨텍스트 컴포넌트(7201)에서 M 번째 컨텍스트 컴포넌트(720M)는 집합적으로 컨텍스트 컴포넌트들(720)로 언급되며, 첫 번째 데이터베이스(7301)에서 K 번째 데이터베이스(730K)는 집합적으로 데이터베이스들(730)로 언급될 수 있다.
웹 애플리케이션들(710; 예컨대, 개체 인스턴스)은 사용자 요청(들)을 만족시키기 위한 데이터베이스 질의를 위하여 사용될 수 있다. 전형적으로, 웹 애플리케이션들(710)의 초기화 시에, 웹 애플리케이션들(710)과 연관된 무효화 정보가 수집되어 각각의 컨텍스트 컴포넌트들(720)(예컨대, 컨텍스트 뱅크(110)에 저장된다. 일반적으로, 무효화 정보는 앞서 기술한 바와 같이 유일한 식별자, 무효화 문자열, 서비스 정보 및 만료 기간을 포함한다. 그러나, 무효화 정보는 그렇게 한정되지 않는다.
질의 요청이 웹 애플리케이션들(710) 중의 적어도 하나에 의하여 수신된 경우, 연관된 무효화 정보를 얻기 위하여 대응되는 컨텍스트 뱅크가 사용된다. 그후, 질의 및 무효화 정보가 통신 프로토콜(예컨대, 이더넷 및 방화벽)을 통하여 데이터베이스들(730)에 전송된다. 질의는 사용자 요청을 만족시키기 위하여 하나 이상의 데이터베이스들(730)을 사용할 수 있음에 주의해야 한다.
질의가 수행된 후에, 결과는 적어도 하나의 웹 애플리케이션들(710)에 반환될 수 있다. 결과가 일치한다는 것을 보장하기 위하여, 그 후의 질의 후에 그러나 저장될 결과를 생성하기 전에, 결과에 영향을 미치는 변화가 발생하였는지 판단하기 위하여 데이터베이스들(730)을 체크할 수 있다. 변화가 발생하였다고 판단되면, 결과가 이용되고/되거나 폐기될 수 있다. 결과가 일치한다고 판단되면, 결과가 이용되고, 메모리(예컨대; 공유 메모리(740))에 세이브될 수 있다. 세이브된 결과는 한 번 이상 사용 가능하다. 부가적으로, 하나 이상의 웹 애플리케이션들(710)은 연속적으로 및/또는 동시에 세이브된 결과를 사용할 수 있다. 그러므로, 본 발명은 하나 이상의 웹 애플리케이션들(710)이 실질적으로 유사한 결과를 위한 질의를 수행하는 것을 더욱 완화시킨다.
데이터베이스들(730) 중의 적어도 하나에 데이터베이스 변화가 발생한 경우 및/또는 만료 기간이 경과한 경우, 데이터베이스들(730) 중의 적어도 하나는 하나 이상의 웹 애플리케이션들(710) 및/또는 공유 메모리(740)에 무효화 메시지를 전송한다. 변화에 의하여 영향을 받는 하나 이상의 웹 애플리케이션에 알리기 위하여, (예컨대, 하나)무효화 메시지는 하나 이상의 웹 애플리케이션 주소 및/또는 다른 정보(예컨대, 다른 무효화 정보)를 포함할 수 있음을 인식해야 한다.
발명의 다른 태양에 있어서, 하나 이상의 무효화 메시지가 전송될 수 있는데, 무효화 메시지는 웹 애플리케이션 및/또는 공유 메모리(740)와 연관되고, 그에 전송될 수 있다. 그러나, 다른 태양에서는 실질적으로 모든 웹 애플리케이션들(710) 및/또는 공유 메모리(740)가 무효화 메시지를 수신할 수 있도록 무효화 메시지가 브로드캐스팅될 수 있다. 그 후, 웹 애플리케이션들(710)은 무효화 메시지를 수용하고/수용하거나 이를 근거로 동작할 것인지를 결정할 수 있다. 무효화 메시지를 공유 메모리(740)에 제공함으로써 무효화 메시지를 웹 애플리케이션에 제공해야 할 필요성이 완화됨을 인식해야 한다. 예컨대, 요청을 초기화한 웹 애플리케이션(들)은 세이브된 결과를 무효화시키기 위하여 종료할 필요가 없다. 부가적으로, 세이브된 결과를 공유하는 임의의 애플리케이션(들)은 세이브된 결과를 무효화시키기 위하여 종료할 필요가 없다. 그러므로, 본 발명은 초기화 애플리케이션 및/또는 임의의 공유 애플리케이션이 더 이상 존재하지 않는 경우에도, 불일치하는 결과를 폐기하고/폐기하거나 공유 메모리를 해체하기 위한 기법을 제공한다.
무효화 메시지를 수신한 후에, 세이브된 결과는 무효화될 수 있다. 예컨대, 세이브된 결과는 메모리로부터 제거될 수 있고, 불일치하는 것으로 표시될 수 있다. 선택적으로, 메모리에 세이브될 일치하는 결과를 얻기 위한 그 후의 질의를 수행하기 위하여 자동 갱신이 사용될 수 있다. 자동 갱신은 불일치하게된 갱신 결과를 자동으로 무효화시키기 위하여 그 후의 질의와 함께 무효화 정보를 재송신할 수 있다.
도 8은 본 발명의 일 태양에 따른 예시적인 웹 서비싱 무효화 시스템(800;web servicing invalidation system)을 도시한다. 웹 서비싱 무효화 시스템(800)은 클라이언트(805), 방화벽(810), 메모리(820), 첫 번째 웹 서비스(8301)에서 N 번째 웹 서비스(830N)(N은 1 이상의 정수) 및 데이터베이스(840)를 포함한다. 첫 번째 웹 서비스(8301)에서 N 번째 웹 서비스(830N)는 집합적으로 웹 서비스들(830)로 언급될 수 있다.
클라이언트(805)는 방화벽(810)을 통하여 웹 서비스들(830)과 인터페이스한다. 웹 서비스들(830)에 대한 액세스는 방화벽(810)에 의해 제어될 수 있다. 예컨대, 방화벽(810)은 클라이언트(805)에 의한 웹 서비스들(830)로의 액세스를 제한하고/제한하거나 액세스를 부인할 수 있다. 부가적으로, 클라이언트(805)에 의한 데이터베이스(840) 및 메모리(820)로의 액세스를 제한하기 위하여 방화벽(810)이 사용될 수 있다. 웹 서버들(830), 데이터베이스(840) 및/또는 메모리(820)에 대한 클라이언트 액세스는 서로 배타적일 수 있음을 인식해야 한다. 예컨대, 클라이언트(805)는 데이터베이스(840) 및/또는 메모리(820)에 대한 액세스를 가지지 않지만, 웹 서버들(830)에 대해서 완전한 액세스를 가질 수 있다. 그러나, 클라이언트(805)는 웹 서버들(830), 데이터베이스(840) 및/또는 메모리(820)에 대하여 완전한 액세스를 가지거나 액세스를 전혀 가지지 못할 수 있다.
데이터베이스(840) 및/또는 메모리(820)에 세이브된 결과에 대한 웹 서비스 액세스를 제한하기 위하여 방화벽(810)이 추가적으로 사용될 수 있다. 본 발명의 일 태양에서, 하나 이상의 웹 서비스들(830)은 질의(예컨대, 클라이언트(805)에 의하여 시작됨), (예컨대, 위에서 기술된 바와 같이 )무효화 정보 및 데이터베이스(840)에 대한 라우팅 정보와 같은 다른 정보를 전송할 수 있다. 하나 이상의 웹 서비스들(830)이 허가권(clearance)을 가지고 있다면, 전송된 정보는 데이터베이스(840)로 전달될 수 있다. 본 발명의 다른 태양에 있어서, 하나 이상의 웹 서비스들(830)은 방화벽(810)을 통하여 정보를 전달하지 않고 질의, 무효화 정보 및 다른 정보를 데이터베이스(840)에 전송할 수 있다.
질의가 수행된 후에, 데이터베이스(840)는 질의 결과를 반환하는데, 이는 저장될 결과를 생성하기 위하여 이용된다. 발명의 일 태양에 있어서, 결과는 방화벽(810)에 반환되는데, 방화벽(810)은 메모리(820)에 결과를 세이브하기 위한 매커니즘(예컨대, 메모리 관리자(120))을 사용한다. 본 발명의 다른 태양에 있어서, 결과는 (예컨대, 방화벽(810)을 통해서 및/또는 피해서) 웹 서비스들(830)에 반환될 수 있다. 그 후, 웹 서비스들(830)은 메모리(820)에 결과를 저장할 수 있는데, 결과는 메모리(820)에 대해 액세스를 가지는 웹 서비스들(830)에게 이용가능하고, 상기 웹 서비스들(830)은 클라이언트(805)에 결과를 제공한다.
그 후, 세이브된 결과는 메모리(820)를 사용하는 허가권을 가진 웹 서비스들(830)에 액세스 가능할 수 있다. 예컨대, 웹 서비스(830N)는 메모리(820)에 세이브된 결과와 실질적으로 유사한 및/또는 그의 부집합인 결과를 반환하는 질의를 송신할 수 있다. 웹 서비스(830N)가 메모리(820)에 액세스를 가지고 있다면, 웹 서비스(830N)는 질의를 수행하는 대신 세이브된 결과를 이용할 수 있다. 웹 서비스(830N)가 메모리(820)에 액세스를 가지고 있지 않다면, 질의가 수행된다.
메모리(820)에 저장된 결과에 영향을 미칠 데이터베이스 변화가 발생한 경우 및/또는 만료 기간이 경과한 경우, 데이터베이스(840)는 방화벽(810)에 무효화 메시지를 전송할 수 있다. 무효화 메시지가 허가권을 가지고 있다면, 메모리(820)의 불일치하는 결과를 무효화시키기 위하여 메시지가 이용될 수 있다. 발명의 일 태양에 있어서, 부가적으로 통지가 웹 서비스들(830)에 송신되어 결과가 무효화되었음을 웹 서비스들(830)에 통지할 수 있다. 다른 태양에 있어서, 웹 서비스들(830)에 통지를 전송하는 대신, 웹 서비스들(830)은 결과가 여전히 일치하는지 판단하기 위하여 주기적으로 메모리(820)를 폴링할 수 있다. 다른 예에서, 웹 서비스들(830)이 질의 및 무효화 정보를 전송한 경우, 유사한 결과가 메모리(820)에 세이브되어 있는지 그리고 유사한 결과가 일치하는지 판단하기 위하여 메모리(820)를 검색한다.
다음 데이터베이스 변화가 발생한 경우 및/또는 데이터베이스 데이터(결과)에 대응되는 시간이 만료되는 경우, 일치하는 결과를 위하여 자동으로 재질의하고 무효화시키기 위해 무효화 정보를 재송신하기 위한 자동 갱신이 사용될 수 있다.
도 9 내지 도 12는 본 발명에 따른 방법론을 도시한다. 설명의 단순화를 위하여, 방법론은 일련의 동작으로 묘사되고 기술되어 있다. 본 발명은 도시된 동작 및/또는 동작의 순서에 의하여 제한되지 않음을 이해 및 인식해야 하다. 예컨대, 동작은 다양한 순서로 및/또는 동시에 발생할 수 있고, 제시 및 기술되지 않은 다른 동작과 같이 발생할 수 있다. 추가적으로, 본 발명에 따른 방법론을 구현하기 위하여 도시된 모든 동작이 요구되지 않을 수도 있다. 부가적으로, 당업자는 방법론이 대안으로 일련의 상호 관계를 갖는 상태(예컨대, 상태도) 또는 이벤트로 표현될 수 있음을 이해 및 인식할 것이다.
도 9에는, 예시적인 자동 무효화 방법론(900; automatic invalidation methodology)이 도시되어 있다. 참조 기호(910)에서, 인스턴스가 초기화된다(예컨대, 개체, 파생 개체, 클라이언트, 애플리케이션, 클라이언트 애플리케이션 및 종속성 인스턴스). 920에서, 인스턴스와 연관된 무효화 정보가 컨텍스트에 저장된다. 전형적으로, 무효화 정보는 위에서 기술한 바와 같이 무효화 문자열, 서비스 정보 및 타임아웃을 포함한다. 하나 이상의 인스턴스가 초기화 될 수 있고, 하나 이상의 인스턴스가 유사한 컨텍스트에 무효화 정보를 저장할 수 있음을 인식해야 한다.
참조 기호(930)에서, 방법론은 질의를 수행하기 위한 요청을 수신하기를 기다린다. 요청이 수신되면, 컨텍스트에 저장되고 인스턴스와 연관된 무효화 정보가 검색된다. 그 후 940에서, 질의 및 무효화 정보가, 예컨대 데이터베이스(들)가 존재하는 동적 및/또는 정적 서버로 전송된다.
이제 도 10을 참조하면, 본 발명의 일 태양에 따른 도 9의 계속이 도시되어 있다. 다음으로 참조 기호(1010)에서, 방법론(900)은 질의의 결과를 기다린다. 결과가 수신되어 처리된 후, 1020에서 질의에 이용된 데이터베이스(들)는 질의 시간과 캐시 가능한 결과의 생성 사이에 변화가 발생하였는지 확인하기 위해 조사된다. 이는 결과가 일치함을 보장한다.
변화가 질의 시간과 결과 수신 사이에 발생하지 않았다면, 1030에서 결과는 메모리에 저장되고 1040에서 인스턴스에 제공된다. 세이브된 결과는, 예컨대 유사한 결과를 반환하는 질의를 수행하는 것을 완화하기 위한 추가적인 사용을 위해 이용 가능하다. 1020에서 변화가 질의와 저장될 결과의 생성 사이에 발생하지 않았다고 판단되면, 1040에서 전형적으로 결과는 인스턴스에 제공되고 세이브되지 않는다. 그러나, 인스턴스는 불일치하는 결과를 저장하고 이용하기로 결정할 수 있다. 다른 인스턴스에게 결과가 불일치한다는 것을 통지하기 위하여 다양한 기술이 사용될 수 있다. 예컨대, 인스턴스가 불일치하는 결과를 사용하려고 시도할 때마다 이벤트를 발생시키도록 플래그가 설정될 수 있다.
다음으로 도 11에서, 발명의 일 태양에 따른 예시적인 데이터 변화 기반 무효화 방법론(1100; data changed based invalidation methodology)이 도시되어 있다. 1110에서, 데이터베이스 변화가 발생하고, 무효화 메시지가 전송 및 수신된다. 전형적으로, 무효화 메시지는 무효화 정보의 일부를 포함한다. 예컨대, 무효화될 불일치하는 결과의 세트를 식별하기 용이하도록 유일한 식별자가 포함될 수 있다.
데이터베이스 변화 및 전송/수신은 동기화될 수 있음을 인식해야 하는데, 무효화 메시지가 수신되고/수신되거나 작용하는 경우에 데이터베이스 변화가 수행된다. 다른 예에서, 비동기식 기술이 사용되는데, 이 경우 전송이 발생하고/하거나 메시지가 수신되었는지에 무관하게 데이터베이스 변화가 수행된다.
1120에서, 세이브된 결과가 무효화된다. 결과를 무효화하기 위하여 다양한 방법이 사용될 수 있음을 인식해야 한다. 예컨대, 결과는 메모리로부터 제거, 무효로 표시 및/또는 덮어쓰기될 수 있다. 1130에서, 현재 및 일치하는 결과를 질의하고, 그 후의 데이터베이스 변화에 대한 무효화 메시지를 재등록하기 위하여 자동 갱신이 수행될 수 있다.
이제 도 12를 참조하면, 발명의 일 태양에 따른 예시적인 시간 기반 무효화 방법론(time base invalidation methodology)이 도시되어 있다. 1210에서, 무효화 정보에 포함된 시간이 만료된다. 결과적으로, 무효화 메시지가 전송되고 수신된다. 무효화 메시지는 무효화 정보의 일부를 포함할 수 있다. 예컨대, 무효화될 불일치하는 결과의 세트를 식별하기 용이하도록 유일한 식별자가 포함될 수 있다. 1220에서 저장된 결과가 무효화된다(예컨대, 위와 유사하게). 1210에서, 현재 및 일치하는 결과를 질의하고, 그 후의 만료에 대한 무효화 메시지를 재등록하기 위하여 자동 갱신이 수행될 수 있다.
본 발명의 다양한 태양에 대하여 부가적인 컨텍스트를 제공하기 위하여, 도 13 및 다음 설명은 본 발명의 다양한 태양이 구현될 수 있는 적당한 운영 환경(1310)의 간략하고, 일반적인 설명을 제공함을 목적으로 한다. 발명이 하나 이상의 컴퓨터 또는 다른 장치에 의하여 실행되는 프로그램 모듈과 같은, 컴퓨터 실행 가능 명령어의 일반적인 컨텍스트로 기술되어 있지만, 당업자는 발명이 또한 다른 프로그램 모듈과의 조합으로 및/또는 하드웨어 및 소프트웨어의 조합으로 구현될 수 있음을 인식할 것이다. 그러나, 일반적으로 프로그램 모듈은 특정한 작업을 수행하거나 특정한 데이터 타입을 구현하는 루틴, 프로그램, 개체, 컴포넌트, 데이터 구조 등을 포함한다. 운영 환경(1310)은 적당한 운영 환경의 오직 하나의 예이고, 발명의 사용 또는 기능의 범위에 대하여 어떠한 제한도 제시하지 않는다. 발명과 함께 사용하기에 적당한 다른 잘 알려진 컴퓨터 시스템, 환경 및/또는 설정은 개인용 컴퓨터, 핸드-헬드(hand-held) 또는 랩탑 장치, 멀티프로세서 시스템, 마이크로프로세서 기반 시스템, 프로그래머블 소비자 전자제품, 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터, 상기 시스템 또는 장치를 포함하는 분산 컴퓨팅 환경 등을 포함하고, 이에 제한되지 않는다.
도 13을 참조하면, 발명의 다양한 태양을 구현하기 위한 예시적인 환경(1310)은 컴퓨터(1312)를 포함한다. 컴퓨터(1312)는 프로세싱 유닛(1314), 시스템 메모리(1316) 및 시스템 버스(1318)를 포함한다. 시스템 버스(1318)는 시스템 메모리(1316)(이에 제한되지 않음)를 포함하는 시스템 컴포넌트를 프로세싱 유닛(1314)에 결합시킨다. 프로세싱 유닛(1314)은 다양한 이용 가능한 프로세서 중의 임의의 것이 될 수 있다. 또한, 이중 마이크로프로세서 및 다른 멀티프로세서 구조가 프로세싱 유닛(1314)으로써 사용될 수 있다.
시스템 버스(1318)는 메모리 버스 또는 메모리 제어기, 주변 버스(peripheral bus) 또는 외부 버스 및/또는 8비트 버스, ISA(Industrial Standard Architecture), MSA(Micro-Channel Architecture), EISA(Extended ISA), IDE(Intelligent Drive Electronics), VLB(VESA Local Bus), PCI(Peripheral Component Interconnect), USB(Universal Serial Bus), AGP(Advanced GraphicsPort), PCMCIA(Personal Computer Memory Card International Association bus) 및 SCSI(Small Computer Systems Interface)를 포함하는-이에 제한되지 않음- 임의의 이용 가능한 버스 구조를 사용하는 로컬 버스를 포함하는 여러 타입의 버스 구조(들) 중의 임의의 것이 될 수 있다.
시스템 메모리(1316)는 휘발성 메모리(1320) 및 비휘발성 메모리(1322)를 포함한다. 스타트업(start-up) 동안처럼 컴퓨터(1312) 내의 요소들 간에 정보를 전송하기 위한 기본 루틴을 포함하는 BIOS(basic input/output system)는 비휘발성 메모리(1322)에 저장된다. 제한이 아닌 도시의 목적으로, 비휘발성 메모리(1322)는 ROM(read only memory), PROM(programmable ROM), EPROM(electrically programmable ROM), EEPROM(electrically erasable ROM) 또는 플래시 메모리를 포함할 수 있다. 휘발성 메모리(1320)는 외부 캐시 메모리로써 역할을 하는 RAM(random access memory)을 포함한다. 제한이 아닌 도시의 목적으로, RAM은 SRAM(synchronous RAM), DRAM(dynamic RAM), SDRAM(synchronous DRAM), DDR SDRAM(double data rate SDRAM), ESDRAM(enhanced SDRAM), SLDRAM(Synchlink DRAM) 및 DRRAM(direct Rambus RAM)과 같은 많은 형태로 이용 가능하다.
또한, 컴퓨터(1312)는 이동식/고정식, 휘발성/비휘발성 컴퓨터 저장 매체를 포함한다. 예컨대, 도 13은 디스크 저장 장치(1324)를 도시한다. 디스크 저장 장치(1324)는 자기 디스크 드라이브, 플로피 디스크 드라이브, 테이프 드라이브, 재즈(Jaz) 드라이브, 집(Zip) 드라이브, LS-100 드라이브, 플래시 메모리 카드 또는 메모리 스틱과 같은 장치를 포함한다(이에 제한되지 않음). 부가적으로, 디스크저장 장치(1324)는 개별적으로 또는 CD-ROM(compact disk ROM device), CD-R 드라이브(CD recordable drive), CD-RW Drive(CD rewritable drive) 또는 DVD-ROM(digital versatile disk ROM drive)과 같은 광학 디스크 드라이브를 포함하는 다른 저장 매체와 조합하여 저장 매체를 포함할 수 있다. 디스크 저장 장치(1324)의 시스템 버스(1318)에 대한 접속이 용이하도록, 전형적으로 이도익 또는 고정식 인터페이스가 인터페이스(1326)처럼 사용된다.
도 13은 적당한 운영 환경(1310)에 기술된 기본 컴퓨터 자원과 사용자 사이에서 중간단계로써 역할을 수행하는 소프트웨어를 묘사하고 있음을 인식해야 한다. 상기 소프트웨어는 운영 시스템(1328)을 포함한다. 디스크 저장 장치(1324)에 저장될 수 있는 운영 시스템(1328)은 컴퓨터 시스템(1312)의 자원을 제어하고 할당하기 위하여 동작한다. 시스템 애플리케이션(1330)은 시스템 메모리(1316) 또는 디스크 저장 장치(1324)상에 저장된 프로그램 데이터(1334) 및 프로그램 모듈(1332)을 통하여 운영 시스템(1328)에 의한 자원 관리의 이점을 얻는다. 본 발명은 다양한 운영 시스템 또는 운영 시스템들의 조합으로 구현될 수 있음을 인식해야 한다.
사용자는 입력 장치(들; 1336)를 통해 컴퓨터(1312)에 명령 및 정보를 입력한다. 입력 장치(1336)는 마우스, 트랙 볼(track ball), 스타일러스(stylus), 터치 패드, 키보드, 마이크로폰, 조이스틱, 게임 패드, 위성 접시(satellite dish), 스캐너, TV 수신 카드, 디지털 카메라, 디지털 비디오 카메라, 웹 카메라 등과 같은(이에 제한되지 않음) 지시 장치(pointing device)를 포함한다. 상기 및 다른 입력 장치는 인터페이스 포트(들; 1338)를 통해 시스템 버스(1318)를 거쳐 프로세싱 유닛(1314)에 접속한다. 예컨대, 인터페이스 포트(들; 1338)는 직렬 포트, 병렬 포트, 게임 포트 및 USB를 포함한다. 출력 장치(들; 1340)는 입력 장치(들, 1336)와 같은 타입의 포트의 일부를 사용한다. 그러므로, 예컨대 USB 포트는 컴퓨터(1312)에 입력을 제공하고, 컴퓨터(1312)로부터 출력 장치(1340)로 정보를 출력하기 위하여 사용될 수 있다. 특별한 어댑터를 요구하는 다른 출력 장치(1340) 가운데 모니터, 스피커 및 프린터 와 같은 일부 출력 장치(1340)가 존재함을 도시하기 위하여 출력 어댑터(1342)가 제공된다. 출력 어댑터(1342)는 제한이 아닌 도시의 목적으로, 출력 장치(1340)와 시스템 버스(1318) 간의 접속의 수단을 제공하는 비디오 및 사운드 카드를 포함한다. 다른 장치 및/또는 장치의 시스템이 원격 컴퓨터(들; 1344)와 같은 입력 및 출력 능력 모두를 제공한다는 점에 주의해야 한다.
컴퓨터(1312)는 원격 컴퓨터(들; 1344)와 같은 하나 이상의 원격 컴퓨터에 대한 논리적인 접속을 사용하여 네트워크 환경에서 동작할 수 있다. 원격 컴퓨터(들; 1344)는 개인용 컴퓨터, 서버, 라우터, 네트워크 PC, 워크스테이션, 마이크로프로세서 기반 애플리케이션, 피어 장치(peer device) 또는 다른 공용 네트워크 노드 등이 될 수 있고, 전형적으로 컴퓨터(1312)에 대하여 기술된 많은 또는 모든 요소를 포함할 수 있다. 간결성을 위하여, 오직 메모리 저장 장치(1346)만이 원격 컴퓨터(들; 1344)와 함께 도시되었다. 원격 컴퓨터(들; 1344)는 네트워크 인터페이스(1348)를 통해 컴퓨터(1312)에 논리적으로 접속되고, 통신 접속(1350)을 통해서 물리적으로 접속된다. 네트워크 인터페이스(1348)는 LAN(local-area networks) 및 WAN(wide-area networks)와 같은 통신 네트워크를 포함한다. LAN 기술은FDDI(Fiber Distributed Data Interface), CDDI(Copper Distributed Data Interface), 이더넷/IEEE 802.3, 토큰 링/IEEE 802.5 등을 포함한다. WAN 기술은 점대점 링크(point-to-point link), ISDN(Integrated Services Digital Networks) 및 변형물과 같은 회로 스위칭 네트워크(circuit switching network), 패킷 스위칭 네트워크(packet switching network) 및 DSL(Digital Subscriber Lines)를 포함한다-이에 제한되지 않음-.
통신 접속(들; 1350)은 네트워크 인터페이스(1348)를 버스(1318)에 접속시키기 위하여 사용되는 하드웨어/소프트웨어를 참조한다. 통신 접속(1350)은 컴퓨터(1312) 내에 도시적인 명확성을 위하여 도시되고 있지만, 또한 컴퓨터(1312) 외부에도 존재할 수 있다. 네트워크 인터페이스(1348)로의 접속을 위해 필요한 하드웨어/소프트웨어는-예시적인 의도만으로- 전화기급 모뎀(regular telephone grade modem), 케이블 모뎀 및 DSL 모뎀, ISDN 어댑터 및 이더넷 카드를 포함하는 모뎀과 같은 내부 및 외부 기술을 포함한다.
이상에서 기술된 것은 본 발명의 예를 포함한다. 물론, 모든 상상할 수 있는 컴포넌트의 조합 또는 본 발명을 기술하기 위한 방법론을 기술하는 것은 불가능하지만, 당업자는 본 발명의 추가적인 조합 및 변형이 가능하다는 것을 인식할 것이다. 따라서, 본 발명은 첨부된 청구항의 사상 및 범위 내에 해당하는 모든 변경, 개조 및 변화를 포함한다. 더욱이, 발명의 상세한 설명 또는 청구항에서 "포함하다(includes)"라는 단어가 사용되는 정도에 있어서, 상기 단어는 청구항에서 번역어로써 사용될 경우 "포함하다(comprising)"라는 단어가 해석되는 것과 유사한방식으로 포괄적인 의도이다.
본 발명의 시스템 및 방법은 실질적으로 유사한 정보를 위한 데이터베이스 부하를 감소{예컨대, 질의(들) 감소}시키고, 확장성을 증가시키며, 반복적인 처리를 감소시키고, 데이터 일치성을 보장한다. 시스템 및 방법은 컨텍스트 뱅크에 무효화 정보를 저장하는 것을 포함하는데, 무효화 정보는 질의와 질의 요청자를 연관시키고 데이터베이스에 질의를 등록하기 위하여 검색되고, 질의와 함께 전송될 수 있다. 질의로부터 생성된 결과(예컨대, 미가공 데이터, 변형된 데이터, 질의 가능한 형태의 데이터, 부분적인 응답 및 완전한 응답)는 데이터베이스 외부의 액세스 가능한 저장 매체에 저장될 수 있고, 다양한 사용자(예컨대, 웹 서버)에 의하여 한번 이상 사용되어 실질적으로 유사한 정보에 대한 질의를 완화시킨다.
결과에 영향을 미치는 데이터베이스 변화가 발생하면, 무효화 메시지가 송신되어 사용자가 불일치하는 데이터를 사용하는 것을 완화시키기 위해, 저장된 결과를 무효화시키는 것을 용이하게 한다. 질의와 함께 전송된 무효화 정보는 전형적으로 무효화 메시지를 구성하기 위하여 이용된다. 부가적으로, 만료 기간은 데이터베이스 변화가 발생하지 않았더라도, 만료 기간이 경과한 후에 저장된 결과가 무효화되도록 정의될 수 있다. 예컨대, 저장된 결과를 무효화한 후에, 결과는 자동적으로 폐기 및/또는 갱신될 수 있다.
추가적으로, 본 발명의 시스템 및 방법은 웹 환경에서 사용될 수 있는데, 데이터베이스 질의(들)로부터 생성된 웹 응답이 전체적 또는 부분적으로 저장되고,그 후의 요청에 대한 응답으로 반환되는 경우에, 지연 및 웹 서버 자원의 사용을 더욱 감소가 달성될 수 있다. 예컨대, 개발자는 웹 페이지에 주석(들)을 포함시킴으로써, 질의(들)의 결과가 변화할 때까지 데이터베이스 질의(들) 기반으로 생성된 응답이 캐시될 것을 요청할 수 있다. 주석(들)은 웹 서버가 캐시될 응답과 데이터베이스 종속성을 연관시키고, 종속성과 연관된 무효화 정보 및/또는 종속성 자체를 컨텍스트 뱅크에 저장하도록 야기한다. 저장된 무효화 정보는 자동적으로 검색되어 그 후의 질의(들)와 함께 데이터베이스로 전송된다. 위에서 지적한 바와 같이, 이전에 질의된 결과가 불일치하게 되는 변화가 데이터베이스에 발생한 경우 및/또는 만료 기간이 경과한 경우, 무효화 정보는 무효화 메시지에서 사용될 수 있다.
컨텍스트 뱅크에 무효화 정보를 저장하고 이용하는 것은 무효화 정보를 질의와 연관시키기 위한 기반 구조를 초기화하고, 질의 응답을 저장(예컨대, 캐싱)하는 것을 용이하게 한다. 그러므로, 저장된 무효화 정보를 사용하는 것은 웹 서버{및/또는 질의 요청을 처리할 수 있는 다른 컴포넌트(들)}가 응답의 생성에 대한 지식을 가지도록 요구하는 것을 완화시킨다. 더욱이, 저장된 무효화 정보를 사용하는 것은 응답을 생성하는 컴포넌트가 어떻게 상기 응답이 웹 서버에 의하여 이용될 것인지를 알아야 할 필요성을 완화시킨다.

Claims (45)

  1. 메모리 무효화 등록 시스템(memory invalidation registration system)에 있어서,
    무효화 정보(invalidation information)를 저장하기 위한 컨텍스트 뱅크(context bank);
    상기 컨텍스트 뱅크로부터 데이터베이스로 데이터베이스 질의들 및 연관된 무효화 정보를 제출하기 위한 질의 관리자(query manager); 및
    데이터베이스 질의들에 기초하여 결과들을 저장하기 위한 메모리
    를 포함하고, 상기 연관된 무효화 정보는 상기 데이터베이스에 의하여 유지되는 메모리 무효화 등록 시스템.
  2. 제1항에 있어서,
    상기 무효화 정보는 무효화 문자열, 서비스 정보(service information) 및 만료 기간(expiration period) 중 적어도 하나를 포함하는 메모리 무효화 등록 시스템.
  3. 제2항에 있어서,
    상기 무효화 문자열은 유일한 식별자, 장치 이름, 포트, 주소 및 큐 이름 중 적어도 하나를 포함하는 메모리 무효화 등록 시스템.
  4. 제3항에 있어서,
    상기 무효화 문자열은 적어도 하나의 인증(authentication), 암호화(encryption) 및 프로토콜 정보 중 적어도 하나를 더 포함하는 메모리 무효화 등록 시스템.
  5. 제1항에 있어서,
    상기 질의 관리자는 상기 질의들과 함께 제출할 무효화 정보를 얻기 위하여 상기 컨텍스트 뱅크와 작업하는 메모리 무효화 등록 시스템.
  6. 제1항에 있어서,
    상기 무효화 정보는 복수의 질의와 연관된 저장된 결과와 연관된 메모리 무효화 등록 시스템.
  7. 제1항에 있어서,
    상기 질의 관리자는 상기 저장된 결과들에 영향을 미칠 수 있는 데이터베이스 변화 및 상기 무효화 정보에 정의된 시간 만료(time expiration) 중의 적어도 하나 후에 무효화 메시지들을 수신하는 메모리 무효화 등록 시스템.
  8. 제7항에 있어서,
    상기 데이터베이스 변화는 상기 변화가 동기적으로 전달될 때까지 차단되는 메모리 무효화 등록 시스템.
  9. 제7항에 있어서,
    상기 데이터베이스 변화는 상기 변화가 비동기적으로 전달되는 동안 완료되는 메모리 무효화 등록 시스템.
  10. 제1항에 있어서,
    상기 메모리 무효화 등록 시스템은 상기 무효화 메시지가 수신된 후에 상기 메모리에 세이브(save)된 결과를 자동적으로 무효화시키는 메모리 무효화 등록 시스템.
  11. 제1항에 있어서,
    상기 메모리 무효화 등록 시스템은 상기 무효화 메시지가 수신된 후에 메모리에 세이브된 결과를 업데이트하기 위하여 상기 데이터베이스에 자동적으로 재질의(re-query) 하는 메모리 무효화 등록 시스템.
  12. 제3항에 있어서,
    상기 유일한 식별자는 상기 세이브된 결과와 소스 질의들(source queries) 사이의 상기 연관을 정의하기 위하여 런타임에 생성되는 메모리 무효화 등록 시스템.
  13. 제12항에 있어서,
    상기 유일한 식별자는 세이브된 결과와 하나 이상의 질의를 그룹화하기 위하여 사용되는 메모리 무효화 등록 시스템.
  14. 제12항에 있어서,
    상기 유일한 식별자는 가상의 무효화 정보 및 가상의 무효화 메시지들 중의 적어도 하나를 완화시키기 위한 보안 메커니즘(security mechanism)으로써 사용되는 메모리 무효화 등록 시스템.
  15. 제1항에 있어서,
    결과 저장(result storage)과 무효화를 조화시키기 위한 메모리 관리자(memory manager)를 더 포함하는 메모리 무효화 등록 시스템.
  16. 제10항에 있어서,
    상기 자동 무효화는 메모리로부터 불일치하는 결과들을 제거하는 것, 메모리의 상기 불일치하는 결과들을 덮어쓰는 것 및 메모리의 상기 불일치하는 결과들에 태그(tag) 동작을 행하는 것 중의 적어도 하나를 포함하는 메모리 무효화 등록 시스템.
  17. 제1항에 있어서,
    상기 메모리는 캐시 메모리를 포함하는 메모리 무효화 등록 시스템.
  18. 제1항에 있어서,
    상기 메모리는 복수의 컴포넌트에 의하여 공유되는 메모리 무효화 등록 시스템.
  19. 제1항에 있어서,
    상기 메모리 무효화 등록 시스템은 SQL 기반 환경에서 사용되는 메모리 무효화 등록 시스템.
  20. 제1항에 있어서,
    상기 결과들이 후속 요청들에 의한 이용을 위하여 메모리에 저장되도록 요청하고, 상기 저장된 결과들이 상기 데이터베이스와 불일치하게 된 경우 무효화될 것을 요청하는 페이지 지시자(page directive) 및 주석(annotation) 중의 적어도 하나를 더 포함하는 메모리 무효화 등록 시스템.
  21. 제1항에 있어서,
    상기 컨텍스트 뱅크는 상기 저장된 결과들을 생성하기 위하여 사용된 질의들로의 상기 무효화 정보의 운반을 용이하게 하는 메모리 무효화 등록 시스템.
  22. 제1항에 있어서,
    상기 저장된 결과는 미가공 데이터(raw data), 변형된 데이터(transformed data), 비정규화 데이터(denormalized data), 집합 데이터(aggregated data), 요약 데이터(summary data), 피벗 테이블 데이터(pivot table data), 상기 미가공 데이터로부터 생성된 개체들, 부분적인 웹 응답들, 완전한 웹 응답들 및 질의 가능한 데이터 중의 적어도 하나를 포함하는 메모리 무효화 등록 시스템.
  23. 하나 이상의 컴포넌트를 위한 무효화 정보를 저장하는 컨텍스트;
    데이터베이스 질의들 및 무효화 정보를 제출하기 위한 질의 관리자; 및
    상기 데이터베이스 질의들로부터 생성된 결과들을 저장하기 위한 하나 이상의 메모리
    를 포함하는 자동 메모리 무효화 시스템(automatic memory invalidation system).
  24. 제23항에 있어서,
    상기 하나 이상의 메모리는 지역 캐시 메모리(local cache memory), 보조 캐시 메모리(ancillary cache memory) 및 원격 고속 메모리(remote high speed memory)를 포함하는 자동 메모리 무효화 시스템.
  25. 제23항에 있어서,
    가상의 무효화 정보 및 가상의 무효화 메시지들을 가지는 악의적인 질의들 중의 적어도 하나를 완화시키기 위한 질의 엔진 및 종속성 컴포넌트(dependency component)와 작업하는 보안 계층을 더 포함하는 자동 메모리 무효화 시스템.
  26. 제23항에 있어서,
    세이브된 결과들이 불일치하게 된 경우 상기 세이브된 결과들을 자동적으로 무효화시키는 것과, 상기 세이브된 결과가 불일치하게 되었음을 컴포넌트들에게 통지하는 것 중의 적어도 하나를 제공하는 메커니즘을 더 포함하는 자동 메모리 무효화 시스템.
  27. 제23항에 있어서,
    보안 계층으로써 방화벽을 더 포함하는 자동 메모리 무효화 시스템.
  28. 제27항에 있어서,
    상기 하나 이상의 메모리는 상기 방화벽 내에 상주하는 자동 메모리 무효화 시스템.
  29. 제27항에 있어서,
    상기 방화벽은 상기 하나 이상의 메모리 내에서의 결과 저장, 결과 액세스 및 결과 무효화 중의 적어도 하나를 용이하게 하는 자동 메모리 무효화 시스템.
  30. 제27항에 있어서,
    상기 하나 이상의 메모리는 상기 하나 이상의 컴포넌트에 동시에 액세스 가능한 자동 메모리 무효화 시스템.
  31. 결과들이 불일치하게 된 경우 자동적으로 무효화되도록 등록된 결과들을 세이브하는 방법에 있어서,
    컨텍스트에 무효화 정보를 저장하는 단계;
    상기 무효화 정보를 연관된 질의와 함께 송신하는 단계; 및
    상기 질의로부터 생성된 상기 결과들을 메모리에 세이브하는 단계
    를 포함하는 방법.
  32. 제31항에 있어서,
    일치하는 결과들을 확인하기 위하여 상기 질의 이후로서 상기 결과를 저장하기 전의 변화에 대하여 상기 질의된 데이터베이스를 체크하는 단계를 더 포함하는 방법.
  33. 제31항에 있어서,
    상기 무효화 정보는 무효화 문자열, 서비스 정보 및 만료 기간 중의 적어도 하나를 포함하는 방법.
  34. 제33항에 있어서,
    상기 무효화 문자열은 식별자, 장치 이름, 포트, 주소 및 큐 이름 중의 적어도 하나를 포함하는 방법.
  35. 제34항에 있어서,
    상기 무효화 문자열은 인증, 암호화 및 프로토콜 정보 중의 적어도 하나를 더 포함하는 방법.
  36. 제31항에 있어서,
    상기 메모리는 캐시 메모리인 방법.
  37. 결과들이 불일치하게 된 경우 데이터베이스 질의로부터 생성된 세이브된 결과들을 자동적으로 무효화시키는 방법에 있어서,
    무효화 정보의 적어도 일부를 포함하는 무효화 메시지를 수신하는 단계; 및
    세이브된 결과들을 무효화시키기 위하여 무효화 정보의 상기 적어도 일부를 이용하는 단계
    를 포함하는 방법.
  38. 제37항에 있어서,
    자동적으로 상기 결과들을 무효화시키는 단계를 더 포함하는 방법.
  39. 제37항에 있어서,
    상기 방법은 일치하는 결과들을 생성하고 세이브하기 위하여 자동적으로 재질의하는 단계를 더 포함하는 방법.
  40. 제37항에 있어서,
    상기 무효화 메시지는 상기 저장된 결과들에 영향을 미칠 수 있는 데이터 베이스의 변화 및 만료 기간의 경과 중의 적어도 하나와 연관된 방법.
  41. 메모리에 결과들을 저장하고, 상기 저장된 결과들이 불일치하게 된 경우 상기 저장된 결과들을 자동적으로 무효화시키는 것을 용이하게 하는 둘 이상의 컴퓨터 컴포넌트 사이에서 전송되는 데이터 패킷에 있어서,
    검색될 수 있고, 질의와 함께 송신될 수 있는 컨텍스트에 저장되고 세이브된 결과들을 자동적으로 무효화시키기 위하여 무효화 메시지에서 이용되는 무효화 정보
    를 포함하는 데이터 패킷.
  42. 결과들을 저장하고 결과들이 불일치하게 된 경우 상기 결과들을 무효화시키기 위한 메모리 무효화 및 등록 시스템의 컴퓨터 실행 가능 컴포넌트들을 저장하는 컴퓨터 판독 가능 기록 매체에 있어서,
    컴포넌트들과 연관된 무효화 정보를 저장하는 컨텍스트;
    상기 컨텍스트로부터 무효화 정보를 얻고, 요청된 질의와 함께 상기 무효화 정보를 송신하기 위한 질의 관리자; 및
    결과들을 세이브하고 불일치하는 결과들을 무효화시키는 것을 용이하게 하는 메모리 관리자
    를 포함하는 컴퓨터 판독 가능 기록 매체.
  43. 메모리에 세이브된 결과들을 무효화시키는 시스템에 있어서,
    데이터베이스에 질의하도록 요청하는 컴포넌트의 무효화 정보를 얻는 수단;
    질의와 상기 무효화 정보를 송신하는 수단;
    무효화 메시지를 수신하는 수단; 및
    메모리에 저장된 불일치하는 결과들을 무효화시키는 수단
    을 포함하는 시스템.
  44. 제43항에 있어서,
    일치하는 결과들에 대해 상기 데이터베이스에 자동적으로 재질의하기 위한 수단을 더 포함하는 시스템.
  45. 제43항에 있어서,
    무효화 정보 및 무효화 메시지들이 가상이 아님을 확인하기 위한 수단을 더 포함하는 시스템.
KR1020040021215A 2003-03-28 2004-03-29 데이터베이스 결과 및 파생된 개체를 캐싱 및 무효화하기위한 시스템 및 방법 KR20040085057A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/402,031 2003-03-28
US10/402,031 US20040193656A1 (en) 2003-03-28 2003-03-28 Systems and methods for caching and invalidating database results and derived objects

Publications (1)

Publication Number Publication Date
KR20040085057A true KR20040085057A (ko) 2004-10-07

Family

ID=32825036

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040021215A KR20040085057A (ko) 2003-03-28 2004-03-29 데이터베이스 결과 및 파생된 개체를 캐싱 및 무효화하기위한 시스템 및 방법

Country Status (5)

Country Link
US (1) US20040193656A1 (ko)
EP (1) EP1462959A3 (ko)
JP (1) JP2004303211A (ko)
KR (1) KR20040085057A (ko)
CN (1) CN1534520A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100893222B1 (ko) * 2007-01-16 2009-04-16 엔에이치엔(주) 입력되는 검색 쿼리 패턴을 고려한 무효 쿼리 검출 장치 및그 방법
KR20160036447A (ko) 2014-09-25 2016-04-04 주식회사 엘지씨엔에스 데이터베이스 장치, 데이터베이스 장치에서 수행되는 데이터베이스 관리 방법 및 이를 저장하는 기록매체

Families Citing this family (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7406714B1 (en) 2003-07-01 2008-07-29 Symantec Corporation Computer code intrusion detection system based on acceptable retrievals
US7568229B1 (en) 2003-07-01 2009-07-28 Symantec Corporation Real-time training for a computer code intrusion detection system
US8266177B1 (en) 2004-03-16 2012-09-11 Symantec Corporation Empirical database access adjustment
US7610373B2 (en) * 2004-05-27 2009-10-27 International Business Machines Corporation Voting mechanism for session invalidation processing in an application server cluster
US7529753B1 (en) 2004-09-03 2009-05-05 Crossroads Systems, Inc. Providing application-layer functionality between one or more database clients and one or more database servers
US7509330B2 (en) * 2004-09-03 2009-03-24 Crossroads Systems, Inc. Application-layer monitoring of communication between one or more database clients and one or more database servers
KR100578143B1 (ko) 2004-12-21 2006-05-10 삼성전자주식회사 버퍼 메모리에 저장된 데이터를 무효화시키는 스킴을 갖는저장 시스템 및 그것을 포함한 컴퓨팅 시스템
US7444331B1 (en) 2005-03-02 2008-10-28 Symantec Corporation Detecting code injection attacks against databases
US8046374B1 (en) 2005-05-06 2011-10-25 Symantec Corporation Automatic training of a database intrusion detection system
US7558796B1 (en) 2005-05-19 2009-07-07 Symantec Corporation Determining origins of queries for a database intrusion detection system
WO2006128062A2 (en) * 2005-05-25 2006-11-30 Terracotta, Inc. Database caching of queries and stored procedures using database provided facilities for dependency analysis and detected database updates for invalidation
US8239535B2 (en) * 2005-06-06 2012-08-07 Adobe Systems Incorporated Network architecture with load balancing, fault tolerance and distributed querying
GB0513375D0 (en) 2005-06-30 2005-08-03 Retento Ltd Computer security
US8301751B2 (en) * 2005-06-30 2012-10-30 International Business Machines Corporation Generation of a master schedule for a resource from a plurality of user created schedules for the resource
US7774361B1 (en) 2005-07-08 2010-08-10 Symantec Corporation Effective aggregation and presentation of database intrusion incidents
US7690037B1 (en) 2005-07-13 2010-03-30 Symantec Corporation Filtering training data for machine learning
CN100407199C (zh) * 2005-09-30 2008-07-30 南京大学 基于关系数据库信息技术产品保护轮廓的一致性检查方法
US7966315B2 (en) * 2005-11-15 2011-06-21 Vmware, Inc. Multi-query optimization
US8069153B2 (en) * 2005-12-02 2011-11-29 Salesforce.Com, Inc. Systems and methods for securing customer data in a multi-tenant environment
US7540766B2 (en) * 2006-06-14 2009-06-02 Itron, Inc. Printed circuit board connector for utility meters
US8285707B2 (en) 2006-11-08 2012-10-09 International Business Machines Corporation Method of querying relational database management systems
JP2008287660A (ja) * 2007-05-21 2008-11-27 Hitachi Ltd キャッシュサーバ、キャッシュ管理方法、およびキャッシュ管理プログラム
US20090083336A1 (en) * 2007-09-26 2009-03-26 Microsoft Corporation Search based data management
CN101430687B (zh) 2007-11-09 2015-11-25 阿里巴巴集团控股有限公司 基于oltp环境的统计表应用方法及系统
CN101572598B (zh) * 2008-04-28 2013-03-06 国际商业机器公司 用于可靠的快速集成的方法和装置
US20110078166A1 (en) * 2009-09-29 2011-03-31 Nokia Corporation Method and apparatus for creating and utilizing information representation of queries
CN102541884B (zh) * 2010-12-10 2014-07-02 中国移动通信集团贵州有限公司 数据库优化方法和装置
EP2791819B1 (en) 2011-12-14 2017-11-01 Level 3 Communications, LLC Content delivery network
CN102624583B (zh) * 2012-02-29 2016-06-01 武汉虹信通信技术有限责任公司 一种海量设备并发实时参数获取的分层设计方法
US9836513B2 (en) 2012-03-12 2017-12-05 Entit Software Llc Page feed for efficient dataflow between distributed query engines
US9298764B2 (en) * 2012-05-23 2016-03-29 Oracle International Corporation Partial source verification of EDC data
US9342411B2 (en) * 2012-10-22 2016-05-17 International Business Machines Corporation Reducing memory overhead of highly available, distributed, in-memory key-value caches
US20140337472A1 (en) 2012-12-13 2014-11-13 Level 3 Communications, Llc Beacon Services in a Content Delivery Framework
US10701149B2 (en) 2012-12-13 2020-06-30 Level 3 Communications, Llc Content delivery framework having origin services
US10701148B2 (en) 2012-12-13 2020-06-30 Level 3 Communications, Llc Content delivery framework having storage services
US9628345B2 (en) 2012-12-13 2017-04-18 Level 3 Communications, Llc Framework supporting content delivery with collector services network
US10791050B2 (en) 2012-12-13 2020-09-29 Level 3 Communications, Llc Geographic location determination in a content delivery framework
US10652087B2 (en) 2012-12-13 2020-05-12 Level 3 Communications, Llc Content delivery framework having fill services
US9634918B2 (en) 2012-12-13 2017-04-25 Level 3 Communications, Llc Invalidation sequencing in a content delivery framework
CN103077204B (zh) * 2012-12-27 2016-01-20 北京地拓科技发展有限公司 一种栅格数据的统计查询方法和系统
US9648125B2 (en) 2013-10-04 2017-05-09 Akamai Technologies, Inc. Systems and methods for caching content with notification-based invalidation
US9641640B2 (en) 2013-10-04 2017-05-02 Akamai Technologies, Inc. Systems and methods for controlling cacheability and privacy of objects
US9813515B2 (en) 2013-10-04 2017-11-07 Akamai Technologies, Inc. Systems and methods for caching content with notification-based invalidation with extension to clients
US9870425B2 (en) * 2014-02-27 2018-01-16 Excalibur Ip, Llc Localized selectable location and/or time for search queries and/or search query results
US9613096B2 (en) 2014-03-04 2017-04-04 International Business Machines Corporation Dynamic result set caching with a database accelerator
JP6239407B2 (ja) * 2014-03-06 2017-11-29 株式会社東芝 データベースシステム
US9591047B1 (en) * 2016-04-11 2017-03-07 Level 3 Communications, Llc Invalidation in a content delivery network (CDN)
CN107368500B (zh) * 2016-05-13 2020-03-03 北京京东尚科信息技术有限公司 数据抽取方法及系统
US11138236B1 (en) * 2017-05-17 2021-10-05 Palantir Technologies Inc. Systems and methods for packaging information into data objects
US10719539B2 (en) * 2017-06-06 2020-07-21 Mastercard International Incorporated Method and system for automatic reporting of analytics and distribution of advice using a conversational interface
WO2020047840A1 (zh) * 2018-09-07 2020-03-12 威富通科技有限公司 账单信息缓存方法、账单信息查询方法和终端设备
CN111459978A (zh) * 2020-03-20 2020-07-28 平安国际智慧城市科技股份有限公司 查询方法、装置、计算机设备和存储介质

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05143435A (ja) * 1991-11-22 1993-06-11 Fuji Xerox Co Ltd データベースシステム
US5897634A (en) * 1997-05-09 1999-04-27 International Business Machines Corporation Optimized caching of SQL data in an object server system
JP3228182B2 (ja) * 1997-05-29 2001-11-12 株式会社日立製作所 記憶システム及び記憶システムへのアクセス方法
US6061677A (en) * 1997-06-09 2000-05-09 Microsoft Corporation Database query system and method
US6026413A (en) * 1997-08-01 2000-02-15 International Business Machines Corporation Determining how changes to underlying data affect cached objects
US6493720B1 (en) * 1998-01-26 2002-12-10 International Business Machines Corporation Method and system for synchronization of metadata in an information catalog
EP0959416A3 (en) * 1998-05-08 2005-08-10 International Business Machines Corporation Using database query technology for message subscriptions in messaging systems
US6389414B1 (en) * 1998-09-21 2002-05-14 Microsoft Corporation Internal database validation
CA2249096C (en) * 1998-09-30 2001-12-04 Ibm Canada Limited-Ibm Canada Limitee Method for determining optimal database materializations using a query optimizer
US6347312B1 (en) * 1998-11-05 2002-02-12 International Business Machines Corporation Lightweight directory access protocol (LDAP) directory server cache mechanism and method
US6725333B1 (en) * 1999-04-22 2004-04-20 International Business Machines Corporation System and method for managing cachable entities
US6502088B1 (en) * 1999-07-08 2002-12-31 International Business Machines Corporation Method and system for improved access to non-relational databases
US6405191B1 (en) * 1999-07-21 2002-06-11 Oracle Corporation Content based publish-and-subscribe system integrated in a relational database system
US6507891B1 (en) * 1999-07-22 2003-01-14 International Business Machines Corporation Method and apparatus for managing internal caches and external caches in a data processing system
US6584548B1 (en) * 1999-07-22 2003-06-24 International Business Machines Corporation Method and apparatus for invalidating data in a cache
US6873997B1 (en) * 1999-08-04 2005-03-29 Agile Software Corporation Data management system and method for automatically propagating information to disparate information systems from a central location
US6615317B2 (en) * 2000-07-07 2003-09-02 Fitech Laboratories, Inc. Methods and systems for providing a highly scalable synchronous data cache
US6748386B1 (en) * 2001-04-24 2004-06-08 Nec Corporation System and method for automated construction of URL, cookie, and database query mapping
US7089228B2 (en) * 2002-04-18 2006-08-08 International Business Machines Corporation Computer apparatus and method for caching results of a database query
US6996584B2 (en) * 2002-05-14 2006-02-07 Pervasive Software, Inc. System and method of maintaining functional client side data cache coherence

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100893222B1 (ko) * 2007-01-16 2009-04-16 엔에이치엔(주) 입력되는 검색 쿼리 패턴을 고려한 무효 쿼리 검출 장치 및그 방법
KR20160036447A (ko) 2014-09-25 2016-04-04 주식회사 엘지씨엔에스 데이터베이스 장치, 데이터베이스 장치에서 수행되는 데이터베이스 관리 방법 및 이를 저장하는 기록매체

Also Published As

Publication number Publication date
US20040193656A1 (en) 2004-09-30
CN1534520A (zh) 2004-10-06
EP1462959A2 (en) 2004-09-29
JP2004303211A (ja) 2004-10-28
EP1462959A3 (en) 2004-11-17

Similar Documents

Publication Publication Date Title
KR20040085057A (ko) 데이터베이스 결과 및 파생된 개체를 캐싱 및 무효화하기위한 시스템 및 방법
US10498797B2 (en) Systems and methods for caching and serving dynamic content
US6973546B2 (en) Method, system, and program for maintaining data in distributed caches
KR20040085056A (ko) 데이터베이스 변경 통지의 요청 및 수신 시스템 및 방법
US8271526B2 (en) Content provisioning method and system
US6615235B1 (en) Method and apparatus for cache coordination for multiple address spaces
US6584548B1 (en) Method and apparatus for invalidating data in a cache
US6457103B1 (en) Method and apparatus for caching content in a data processing system with fragment granularity
US6574715B2 (en) Method and apparatus for managing internal caches and external caches in a data processing system
US6807542B2 (en) Method and apparatus for selective and quantitative rights management
US6557076B1 (en) Method and apparatus for aggressively rendering data in a data processing system
US8447827B2 (en) Providing local access to managed content
US8799576B1 (en) System for caching data
US7519599B2 (en) System and method for scalable distribution of semantic web updates
US20080183721A1 (en) Method of and system for providing performance information in a uddi system
US20080208806A1 (en) Techniques for a web services data access layer
KR20050001422A (ko) 캐시 엔트리를 무효화시키는 데 사용될 수 있는데이터베이스 테이블 변경 정보의 등록 및 검색
US20070192349A1 (en) Data provisoning method and system
US20070022203A1 (en) Method and apparatus for providing proxied JMX interfaces to highly available J2EE components
US20030115243A1 (en) Distributed process execution system and method
Mahdavi et al. A collaborative approach for caching dynamic data in portal applications
Xu Scalable and secure Internet services and architecture
Zhang et al. Decision-support workload characteristics on a clustered database server from the OS perspective
Cao The Evaluation of Strong Web Caching Consistency Algorithms
Li et al. Object-relational event middleware for web applications

Legal Events

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