KR20040096501A - 리소스들을 프리로딩 하기 위한 방법 및 시스템 - Google Patents

리소스들을 프리로딩 하기 위한 방법 및 시스템 Download PDF

Info

Publication number
KR20040096501A
KR20040096501A KR10-2004-7009173A KR20047009173A KR20040096501A KR 20040096501 A KR20040096501 A KR 20040096501A KR 20047009173 A KR20047009173 A KR 20047009173A KR 20040096501 A KR20040096501 A KR 20040096501A
Authority
KR
South Korea
Prior art keywords
resources
application
resource
client
preloading
Prior art date
Application number
KR10-2004-7009173A
Other languages
English (en)
Other versions
KR101071960B1 (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 KR20040096501A publication Critical patent/KR20040096501A/ko
Application granted granted Critical
Publication of KR101071960B1 publication Critical patent/KR101071960B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0896Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0807Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • H04L63/0846Network architectures or network communication protocols for network security for authentication of entities using passwords using time-dependent-passwords, e.g. periodically changing passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/168Implementing security features at a particular protocol layer above the transport layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/289Intermediate processing functionally located close to the data consumer application, e.g. in same machine, in same home or in same sub-network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/306User profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/53Network services using third party service providers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/55Push-based network services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • H04L67/5681Pre-fetching or pre-delivering data based on network characteristics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/62Establishing a time schedule for servicing the requests
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/101Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying security measures for digital rights management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/121Timestamp
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/2514Translation of Internet protocol [IP] addresses between local and global IP addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/564Enhancement of application control based on intercepted application data

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)
  • Storage Device Security (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

데이터를 프리로딩하기 위한 방법 및 장치가 제공된다. 리소스들은 그들이 애플리케이션에 의해 요구되기 전에 클라이언트 상에 프리로드된다(520). 애플리케이션 힌트들 및 정적 리소스들이 요구되는 리소스들을 나타내는데 사용된다(610). 애플리케이션은 상기 애플리케이션에 관련된 모든 리소스들을 수신하기 전에 실행을 시작한다. 프리로딩이 애플리케이션의 실행동안 또는 상기 애플리케이션이 실행하지 않는 때 수행된다. 프리로딩은 애플리케이션에 의해 요구되는 것보다 많은 리소스들을 소비하지 않고 애플리케이션으로 하여금 실행할 수 있게 한다. 예측 그래프가 발생되어 상기 애플리케이션에 의해 요구될 수 있는 상기 리소스들을 예측하는데 이용된다. 분석기가 또한 상기 시스템을 시뮬레이트하고 상기 예측 그래프를 생성하는데 이용되는 파라미터들을 조정하는데 이용된다.

Description

리소스들을 프리로딩 하기 위한 방법 및 시스템{METHOD AND SYSTEM FOR PRELOADING RESOURCES}
종래 사용자가 소프트웨어 버전을 변경하고자 할 때, 가게에 가서 새로운 소프트웨어를 구입하여 컴퓨터에 신 버전을 설치하여야 했다.
현재, 일부 소프트웨어는 업그레이드를 포함하여 인터넷을 통해 배포되고 있다. 소프트웨어가 용량이 작고 실행 가능하게 패키징 되어 있다면, 소트웨어 판매자는 인터넷을 통해 소프트웨어를 배포하는 것을 선택할 수 있다. 이실행 모델을 사용하여, 사용자는 판매자의 사이트에 들어가 소프웨어 값을 지불하고 소프트웨어를 다운 받을 수 있다.
이실행 모델은 소프트웨어가 많은 디스크 공간을 필요로 하거나 사용자가 비교적 낮은 대역폭의 인터넷에 연결되어 있는 경우 문제가 있다. 예를 들어, 28.8 Kbs의 인터넷 접속 속도를 갖는 컴퓨터를 이용하여 650 MB 용량의 소프트웨어 CD를 다운 받으려면 50 시간이나 걸린다. 512 Kbs 접속 속도를 이용하더라도, 접속이 높게 유지되고 최고 대역폭으로 전송된다고 가정할 때 650 MB의 소프트웨어를 다운 받는데 거의 3시간이 걸린다.
인터넷을 통해 사용자에게 애플리케이션을 제공하는 효과적인 방법이 요구된다.
본 출원은 2001년 12월 12일자로 출원된 미국특허 60/341,079 및 2002년 12월 11일자로 출원된 미국출원에 대한 우선권 주장으로 하여, 미국을 제외한 전국가를 지정하여, 2002년 12월 12일 미국 국내기업 Valve LLC의 이름으로 PCT 국제출원이 되어 있다.
본 발명은 애플리케이션의 버전을 업데이트 및 롤링백 하는 방법 및 시스템에 관한 것이다.
도 1 내지 도 3은 본 발명이 수행될 수 있는 예시적인 환경의 구성요소들을 도시한다.
도 4는 데이터를 프리로드 하기 위한 애플리케이션 힌트들의 사용을 설명한다.
도 5는 리소스들을 프리로드 하기 위해 검색하고 및 리소스들을 사용하기 위한 프로세스를 설명한다.
도 6은 애플리케이션 힌트들에 관련된 리소스 리스트들의 수신 및 발생의 위한 프로세스를 나타낸다.
도 7은 데이터를 프리로드하기 위해 정적 리소스 리스트들을 사용하기 위한 프로세스를 설명한다.
도 8은 예시적인 리소스 네임 맵핑 테이블을 도시한다.
도 9는 애플리케이션 외부의 프리로더에 관한 프로세스를 설명한다.
도 10은 애플리케이션 내의 프리로더 실행을 위한 프로세스를 도시한다.
도 11은 애플리케이션 내의 프리로더의 프로세스 흐름을 설명한다.
도 12는 프리로더 시스템을 도시한다.
도 13은 예측 그래프 발생을 위한 프로세스를 설명한다.
도 14는 예측 그래프를 이용하는 예측기를 도시한다.
도 15는 본 발명에 따라 파라미터들을 조정함으로써 예측을 달성하기 위한 반복적인 시뮬레이션/교정 루프를 설명한다.
애플리케이션을 위한 리소스들의 프리로딩을 위한 방법 및 시스템이 제공된다. 리소스들의 프리로딩은 실행 동안 임의의 포인트에서 애플리케이션이 필요로 하는 것보다 많은 리소스들을 소비함 없이 애플리케이션이 실행되도록 한다.
본 발명의 일 양상에 따르면, 어떤 리소스들이 애플리케이션들에 의해 요구될 것인지에 대한 결정이 이루어진다. 리소스 리스트는 정적(static)이거나 또는 동적(dynamic)이다.
본 발명의 다른 양상에 따르면, 애플리케이션 힌트들이 애플리케이션에 의해 요구되는 리소스들을 발생하는데 이용된다. 애플리케이션 힌트들은 애플리케이션의 상태를 나타낼 수 있다. 요구될 리소스들은 상태 정보에 근거하여 결정될 것이다.
본 발명의 다른 양상에 따르면, 프리로더는 애플리케이션이 실행될 경우와 애플리케이션이 실행되지 않은 때 모두 리소스들을 로드할 수 있다. 어느 리소스를 로드할 것인지 결정하는 프리로더 프로세스가 클라이언트 상에 또는 서버 상에 위치할 수 있다.
본 발명의 다른 양상에 따르면, 예측 그래프가 애플리케이션에 의해 요구될 수 있는 리소스들을 예측하는데 사용될 수 있다. 애플리케이션 내의 상태 변화들은 예측 그래프 발생에 사용될 수 있다.
본 발명의 다른 양상에 따르면, 파라미터들이 예측 그래프를 정교하게 교정하도록 조정될 것이다. 파라미트들은 수동적으로 또는 자동적으로 조정될 것이다. 시뮬레이션 툴이 시스템의 작동을 시뮬레이트하는데 사용될 수 있다. 시뮬레이션 툴은 시스템이 소정의 수용가능성(acceptability) 레벨에서 작동할 때까지 반복해서 스스로를 조정한다.
본 발명의 실시예에 대한 다음의 상세한 설명에서, 첨부된 도면에 도면부호가 부기되어 있는데, 도면은 여기서의 일부분을 형성하고, 도시를 통해 그리고 본 발명이 실시될 수 있는 특정의 실시예를 통해 나타난다. "리소스(resource)" 라는 용어는 애플리케이션이 실행을 위해 사용하는 데이터를 말한다. 예를 들어, 리소스는 파일의 특정 부분이 될 수 있다. 파일은 데이터 파일, 다이나믹 링크 라이브러리, 실행 프로그램, 컴포넌트 등이 될 수 있다.
본 실시예는 당업자가 본 발명을 실시하는데 충분하도록 상세히 기재되어 있으며, 본 발명의 기술적 사상을 벗어나지 않는 범위에서 다른 실시예가 가능하고 다른 변경이 가해질 수 있다는 것을 알아야 한다. 그러므로, 하기의 상세한 설명은 제한된 의미로 받아들여져서는 안되며, 본 발명의 범위는 첨부된 청구항에 의해 정의된다.
데이터를 프리로드하기 위한 에플리케이션 힌트들
도 4는 본 발명에 따른, 데이터를 프리로드하기 위한 애플리케이션 힌트들의 사용을 도시한다. 프리로더는 리소스들이 애플리케이션에 의해 요구되기 전에 리소스들의 로드를 시도한다. 상기 프리로더는 애플리케이션의 스레드(thread)로서, 애플리케이션의 흐름의 일부로서, 예를 들어 주기적으로 호출되는 및/또는 애플리케이션으로부터 분리된 함수로서 동작한다. 애플리케이션 힌트는 리소스가 프리로드되어야 함을 나타내는데 사용된다. 상기 힌트는 프리로드되어야 할 리소스 리스트와 같은 파일의 리스트를 포함한다. 상기 힌트는 리소스들을 위한 로딩의 우선권을 나타낸다. 예를 들어, 애플리케이션 힌트는 리소스 리스트가 즉시 로드되어야 함을, 즉 프리로더가 현재 로딩되고 있는 것의 프리로딩을 멈추고 상기 리소스 리스트로부터 리소스의 로딩을 즉시 시작해야 함을 나타낸다.
힌트들은 다양한 환경에서 발생한다. 예를 들어, 어느 전자 게임은 사용자가 플레이하는 다양한 레벨들 또는 맵들을 가진다. 어떤 게임들에서, 이러한 맵들은 주기적으로 변화한다. 상기 맵이 변화되기 전에 임의의 포인트에서, 프리로더가 다음의 맵에 관한 리소스들의 프리로딩을 시작해야 함을 나타내는 힌트가 프리로더에 제공될 수 있다. 상기 힌트는 프리로더가 프리로딩해야 하는 다음의 맵 내의 리소스들의 리스트를 포함한다.
다른 예에 따르면, 사용자는 상기 게임 내에서 특정 포인트를 통과할 수 있다. 예를 들어, 사용자는 위 또는 아래로 이어지는 일련의 계단에 인접한 특정룸(room)에 들어갈 수 있다. 사용자가 상기 룸에 들어 가면, 하부 또는 상부 레벨로부터의 리소스들이 로딩되어야 함을 나타내는 힌트가 프리로더에 제공될 수 있다. 이것은 사용자가 계단 선택을 결정해야 하는 경우 이러한 로딩할 리소스들을 기다리지 않도록 해 준다.
예를 들어, 워드프로세서 및 스프레드시트를 포함하는 애플리케이션 모음에서, 사용자는 프린트 메뉴를 선택할 수 있다. 사용자가 프린트 메뉴를 선택한 때, 사용자가 문서를 프린트하기로 결정한 경우, 프린트 드라이버들 및 루틴들이 프리로드되어야 함을 나타내는 힌트가 프리로더에 제공될 수 있다. 대안적으로, 만일 사용자가 워드프로세서의 작업을 멈추고 스프레드시트의 작업을 시작한다면, 프리로더가 워드프로세서를 위해 요구된 리소스들의 로딩을 멈추고 스프레드시트를 위해 요구될 리소스의 로딩을 시작해야 함을 나타내는 힌트가 프리로더에 제공될 수 있다. 보이는 바와 같이, 힌트들은 리소스들이 요구되는 애플리케이션 내에서 임의의 상태를 나타내는데 사용될 수 있다.
본 발명의 일 실시예에서, 힌트를 나타내기 위한 성능이 애플리케이션 및 파일 시스템 사이에 인터페이스하는 API 내에 제공될 수 있다. 상기 API는 애플리케이션 및 외부의 애플리케이션 모두로 하여금 프리로더에 힌트들을 제공할 수 있게 한다.
예를 들어, 게임 관리자 또는 개발자는 게임 영역의 특정 부분 내에 특정 몬스터를 포함하기를 결정할 수 있다. 관리자가 사용하는 애플리케이션은, API들에게 몬스터가 위치될 장소 가까이에 사용자가 있다면 특정 리소스들을 프리로드하기 위한 힌트들을 사용하라고 명령하는 사용자 머신에 메세지를 보낼 수 있다. 상기 API는 힌트를 사용자 애플리케이션 또는 쿼리, 사용자의 현재 위치에 관한 사용자 애플리케이션에 전달한다. 애플리케이션은 또한 그의 메세지와 함께 리소스 리스트를 각 API에 보낼 수 있다. API는 애플리케이션에 힌트를 제공하기 위해 및/또는 리소스 리스트를 애플리케이션에 전달하기 위해 리소스 리스트를 사용하여 만일 사용자가 몬스터의 영역 가까이에 있다면, 리소스 리스트를 포함하는 프리로더에 힌트가 제공되도록 한다.
다른 예에서, 애플리케이션은 사용자에게 로컬한 실제 웨더(weather)에 맞추게 될 수 있다. 사용자가 애플리케이션에 들어가면, 애플리케이션은 로컬 웨더(local weather)를 요청할 수 있다. 그 후, 애플리케이션은 텍스쳐링 및 레인 루틴(rain routine)들과 같은 특정한 웨더 리소스들이 프리로드되어야 한다는 힌트를 프리로더에 준다.
리소스들은 현재 가입되지 않은 사용자의 컨텐츠 뿐만 아니라 현재 가입된 사용자의 컨텐츠를 위해 로드될 수 있다. 예를 들면, 새로운 애플리케이션이 배포(release)되기 전에, 프리로딩은 데이터의 "트리클 다운로드(trickle-download)" 된 큰 세트들로 이용될 수 있다. 컨텐츠를 다운로드하기에 유효한 시간을 이용함으로써 이는 잠재 가입자들이 새로운 버전/릴리즈/애플리케이션 또는 다른 컨텐츠에 관한 비트들의 대부분을 요구되기 전에 가질 수 있다는 점을 확신하도록 도와준다. 이러한 프리로딩 방식 이용하면, 대역폭의 사용이 효과적으로 제어될 수 있다. 프리로딩은 또한 마케팅, 광고, 데모 애플리케이션들 등을 억제시키는데사용될 수 있다. 사용자가 상기 프리로딩(온/오프 및 CPU/메모리/디스크/네트워크 사용과 같은) 상의 제어를 가지더라도, 프리로딩의 이러한 수단은 일반적으로 발표자/제공자에 의해 실시된다.
도 5는 본 발명에 따라, 리소스들을 프리로드하기 위한 리소스 정보를 검색 및 이용하기 위한 프로세스를 설명한다. 본 발명의 일 실시예에서, 프리로더는 스택으로부터 리소스들을 로드한다. 각 우선권에 관한 스택이 존재하는데, 이는 다음으로 높은 우선권 레벨을 가지는 리소스가 다음에 로드되는 것과 같다. 따라서, 보다 낮은 우선권의 리소스를 스택 상으로 푸시하는 것은 더 높은 우선권 힌트를 방해하지 않는다. 프리로더에 힌트가 제공될 때, 프리로더는 스택 상의 힌트에 관련된 리소스 리스트 내의 리소스들에 레퍼런스를 푸시하고 그 스택 포인터를 조정하여 힌트된 리소스 리스트 내의 첫 번째 리소스를 가리킨다. 시작 블럭 다음, 프로세스는 블럭(510)으로 진행하는데, 여기서 스택을 이용하여 프로세스는 로드될 다음의 리소스에 대한 정보를 검색한다. 블럭(520)에서, 상기 리소스가 프리로드된다. 결정 블럭(530)으로 진행하여, 프리로드될 리소스가 남아 있는지 여부에 대한 결정이 이루어진다. 여전히 프리로드될 리소스가 남아 있다면, 프로세스는 블럭(510)으로 리턴하고, 아닌 경우, 프로세스는 다른 동작들의 프로세싱으로 리턴 한다. 프리로더가 모든 리소스들을 힌트된 리소스 리스트 상으로 프리로드한 뒤에, 스택 포인터는 팝(pop)되어 그에 의해 프리로더가 힌트 수신 전에 프리로딩했던 리소스를 가리킨다. 대안적으로, 프리로더는 힌트 리소스 리스트 내의 리스트된 리소스들 중 일부의 프로세싱을 시작하기 전에 리소스 로딩을 끝내기 위해 기다릴 수있다. 도 6은 애플리케이션 힌트들에 관련된 리소스 리스트들을 수신 또는 발생하기 위한 프로세스를 나타낸다. 시작 후에, 프로세스는 블럭(610)으로 진행하는데, 여기서 힌트에 관련한 리소스 리스트가 수신되거나 발생된다(리소스 리스트 발생의 예시적인 방법에 관한 도 13 내지 도 15 및 관련된 설명을 참조하라.). 블럭(620)으로 진행하여, 아이템들이 프리로딩 스택 상으로 푸시된다. 그 후 프로세스는 다른 동작들의 프로세싱으로 리턴한다.
도 13은 본 발명에 따른 예측 그래프를 발생하는 프로세스를 나타낸다. 예측기가 어떤 리소스들이 필요하며 리소스 리스트 발생에 사용되는지를 예측하기 위해 사용된다. 예측 그래프를 만들기 위해, 리소스 요청들 및 선행 실행 세션들(즉, 프리릴리즈 테스팅, 또는 릴리즈된 애플리케이션들의 세션들의 실제 용법 세션들, 또는 인간 사용자의 인공적인 처리 작업자(종종 '봇(bot)'으로 언급되는)에 의해 구동된 시뮬레이트된 용법 리소스) 동안 애플리케이션들로부터 수신된 리소스 힌트들(블럭 1310)은 저장되고(블럭 1315) 후에 프로세스되며 다양한 알고리즘들을 이용하여 조합된다. 예측 그래프들의 노드들은 각각 "애플리케이션 리소스 요청 상태"를 나타내고, 그래프의 '시작'(임의의 리소스들이 요청되기 전에 애플리케이션 시작을 나타내는)으로부터 이러한 특정 노드로 이끄는(블럭 1325) 리소스 요청들(상태 변화들)의 시퀀스인 것으로 간주된다. 그래프 내의 각 노드는 리소스 식별자, 또는 리소스 식별자들의 그룹 또는 애플리케이션 리소스 힌트 식별자로 태그되는데, 이는 애플리케이션이 선행 상태(노드)로부터 이 현재 상태(노드)로 변한 요청 또는 요청들의 그룹을 묘사한다. 예측 그래프의 에지(edge)들(노드들 간의 연결들)각각은 이력 증거, 매뉴얼 구성 또는 알고리즘 추측에 근거한 예측을 나타내는데, 이는 상기 에지를 따라서 노드로부터 노드로 이동함으로써 한 애플리케이션 "리소스 요청 상태"가 다른 상태로 변화됨을 나타낸다. 특정한 상태 변화의 가능성의 강도를 나타내기 위하여, 각 에지는 요청의 가능성의 임의의 조합, 요청들 간의 간격 또는 다른 관련된 데이터에 의해 가중된다(블럭 1335). 그러므로 예측 그래프는 직선형(에지들이 방향을 가진)이고, 주기적이거나 비주기적이거나 또는 트리일 수 있다. 세션을 예측 그래프로 조합 및 프로세스하는데 사용되는 알고리즘들의 예들은 완전 또는 불완전 일반 서브시퀀스(가장 긴 일반 서브시퀀스들을 포함하는)들을 식별하는것, 베이어 이론(Bayes' Theorem)을 이용하는 것, 마르코프 연쇄(Markov chain), 마르코프 모델(Markov Model), 히든 마르코프 모델(Hidden Markov Model) 또는 다른 관련된 알고리즘들의 구성에 이용되는 것들이다. 애플리케이션은 매우 많은 이러한 상태들 및 변화들을 가질 수 있어서, 노드들 및 에지들이 그래프의 크기를 제한하는 목적을 가진 다양한 알고리즘들(보통 예측 질을 임의의 등급으로 강등하는)에 따라서 통합되거나 제거될 수 있다. 예측 그래프를 만드는데 사용되는 리소스 요청들의 '세션 리스트들'은 애플리케이션을 실행하는 클라이언트들로부터 또는 클라이언트의 리소스 요청들을 만족시키는 컨텐츠 서버들로부터 저장 및 수집된다.
도 14는 본 발명에 따른, 예측 그래프를 이용하는 예측기가 도시된다. 결과적인 예측 그래프는 애플리케이션 상태 변화에 응답하는 방식으로 애플리케이션의 짧은 또는 중간 기간 리소스 필요들을 예측하기 위한 애플리케이션의 최근 실행들동안 '예측기' 요소에 의해 사용될 수 있다. 예측기는 예측 그래프 내의 특정 노드에 대한 레퍼런스로서 애플리케이션의 현재 '리소스 요청 상태'를 나타낸다. 예측기 이 상태가 애플리케이션이 새로운 리소스를 만드는 것과 같이 어떻게 변할지 그리하여 "예측 그래프를 통해 이동"할지를 추적한다(블럭 1410). 즉, 만일 애플리케이션 대부분이 최근에 리소스 "A"를 요구했다면, 현재 상태는 리소스 "A"를 식별하는 노드에 대한 레퍼런스가 될 것이다. 만일 이 노드가 순서대로 리소스들 "C", "D" 및 "E"를 식별하는 세 개의 노드들의 브랜치들(예측들)을 가지고, 애플리케이션이 이제 리소스 "D"를 요청한다면, 예측기는 애플리케이션의 "리소스 요청 상태"가 리소스 "D"를 식별하는 중간 브랜치를 따라서 발견되는 노드로 이동해왔는지를 고려한다. 때때로, 즉 각 애플리케이션 리소스 요청 후에 또는 가능하게 덜 자주, 예측기는 다음에 가장 요구되기 쉬운 리소스를 식별하기 위해 '현재 상태'로부터 그래프 내에서 앞을 향한다(블럭 1420). 예측기는 '현재 상태' 노드로부터(그래프 내의 주기를 반복하지 않기 위한 조치를 적절하게 택함으로써) 그래프의 제한된 넓이 우선 검색(breadth first search) 또는 깊이 우선 검색(depth first search) 또는 다른 검색을 시작함으로써 예측된 리소스들의 순서화된 리스트를 만들 수 있다. 그 후, 예측기는 이 리스트로부터 이미 로컬 저장 디바이스 상에 제공된 임의의 리소스들을 제거한다(블럭 1430). 예측기는 또한 이미 로컬 저장 디바이스 상에 제공된 임의의 예측된 리소스들에 관한 정보를 조정하기 위해 (예를 들어, 그들의 '가장 적게 최근에 사용된' 타임 스탬프를 조정함으로써 또는 그들을 다른 방식으로 태그하거나 재분류함으로써) 다른 서브시스템(즉, 로컬 리소스 캐시)과 통신하는데, 이는 빠른 미래에 로컬 저장으로부터 제거된 리소스들의 변화를 줄여서 그러한 리소스들이 예측에서 언급되었던 바와 같이 증가된 값을 가지게 될 것이란 것을 인식하기 위한 것이다(블럭 1440). 예측기는 예측된 리소스들의 결과적인 리스트를 프리로더에게 보낸다(블럭 1450). 그러므로, 애플리케이션으로부터의 요청들로부터 리소스들은 단지 로딩하는 대신에, 예측기는 프리로더에게 예측 그래프에 근거하여 추가적인 리소스들을 로드하라고 지시한다. 예측기는 애플리케이션의 매우 큰 상태 범위 또는 비선형 상태 횡단(예를 들어 큰 게임 월드에서 임의의 방향으로 다니는 플레이어)을 가진 단기간 요구들에 좀더 응답한다. 그러므로 예측기는 다른 곳에서 설명된 큰 정적 리소스 리스트들의 시스템에 병렬적으로 작동한다. 예측기는 그러한 정적 리소스 리스트들의 우선권 위에 그리고 긴급한(블러킹) 애플리케이션 요청들의 우선권 아래에 있는 그의 예측들에게 우선권들을 할당한다.
애플리케이션 상태들 및 상태 횡단들의 수가 보통 극히 크기 때문에, 예측 그래프 생성에 사용된 이전 실행 세션들로부터 수집된 리소스 요청들 및 힌트들의 리스트들인 '트레이닝 데이터(training data)'가 완전히 완료되기 어렵다(예를 들어, 사용자들은 게임 월드 또는 애플리케이션 특색 세트를 완전히 탐색하지 못하거나 모든 가능한 동작의 모든 교환을 수행하지 못해왔다.). 만일, 예측 그래프를 사용할 때, 현재 상태들의(노드들의) 즉시 예측들 중 하나가 아닌 리소스를 요청함으로써 애플리케이션이 '그래프를 스텝오프(step off)'하게 되고, 예측기는 더 이상 그래프를 통해서 애플리케이션의 상태 변화를 추적하지 않는다. 이러한 상황이 발생했을 때, 예측기는 다수의 부수적인 대안적 또는 백업 예측 알고리즘들을 재분류할 것이다; 즉 예측기는 리소스 식별자에 의해 인덱스된 때, 애플리케이션 상태에 관계없이, 인덱스된 리소스 요구 후에 요구할 대부분의 적당한 하나(또는 몇 개의) 리소스들을 제공하는 테이블을 이용한다. 예측기는 임의의 관련된 정보에 근거하여, 재결합될 예측 그래프에서 좋은 노드를 계속해서 찾으려한다. 그러한 정보의 예들은 상태의 위치, 애플리케이션의 가장 최근의 일련의 리소스 요청들 및 그것의 다음의 몇몇의 요청들이다(후자가 시간 주기 상에 도달하여, 예측기는 좋은 재결합 노드를 찾기 위해서 충분히 새로운 데이터(새로운 애플리케이션 요청들)를 얻을 때까지 백업 예측 알고리즘을 여러 번 사용해야한다). 예를 들어, '스텝오프 전의 히스토리 요청' 및 '스텝오프 이래로 히스토리 요청' 시퀀스들의 누적 모두는, 좋은 재결합 노드들을 식별하기 위한 순서에서 다양한 방식으로 예측 그래프 내의 시퀀스에 대해 패턴매칭된다. 검색 및 패턴매칭은 레퍼런스의 위치를 이용한다, 예를 들어, 좋은 재결합 포인트가 그래프의 이러한 '미래에 가까운' 부분 내에서 더 발견되기 쉬운 것처럼, 애플리케이션의 "최후의 알려진 좋은" 상태(그래프를 스텝오프하기 직전에)에 막 앞선 다양한 브랜치들을 검색하는 편이 낫다. 패턴매칭 및 검색은 예측기가 좋은 재결합 포인트를 발견할 때까지 그래프를 통하여 스텝 오프 로드로부터 전방 및 후방 모두로 퍼져나간다. 이러한 패턴매칭을 위해 사용된 알고리즘은 예측 그래프를 형성하기 위하여 본래의 트레이닝 데이터를 프로세스 및 조합하는데 사용된 것과 유사하다.
설명된 예측 그래프가 또 다른 애플리케이션 리소스로서 취급된다. 새로운 예측 그래프가 서버 로그(log)들로부터 생성되고 자동적으로 클라이언트들로 보내지는데(본 장에 참고로 인용된 2002년 12월 11일 자로 출원되어 현재 출원중인 "버전 업그레이드와 롤링 백을 위한 방법 및 시스템(METHOD AND SYSTEM FOR UPGRADING AND ROLLING BACK VERSIONS)"에 묘사된 바와 같이), 이는 그들의 프리로딩 능력을 투명하게 향상시킨다.
또 다른 실시예에서, 개별적 클라이언트들은 그들 각자의 예측 그래프를 사용자가 애플리케이션을 구동할 때 수정할 수 있다. 예를 들어, 예측기 성분이 '그래프를 스탭 오프(step off)'(예측을 실패하고) 후에 좋은 재결합 포인트를 찾았을 때, 상기 예측기는 후속 세션에 관한 변화(예측)를 알기 위하여 스텝 오프 지점으로부터 재결합 포인트로 브랜치를 추가한다. 클라이언트 애플리케이션은 또한 주 예측 그래프로의 통합에 관한 그러한 수정들을 중앙 서버에 보고한다.
애플리케이션은 모든 트레이닝 데이터(세션 리스트들)를 포함하는 하나의 큰 예측 그래프 또는 몇 개의 더 작은 예측 그래프들, 독립적으로 발생된 사용 그룹들또는 애플리케이션 내부의 중요한 큰규모의 상태 변화에 의해서 범위가 정해진 것으로 식별된 세션 리스트들의 부분들을 사용할 것이다(예를 들면, 게임 애플리케이션은 게임 월드들이 서로 매우 다른 것과 같이, 그것이 포함하는 각각 개별적인 게임 맵 또는 게임 월드에 관한 개별적인 예측 그래프를 이용한다.)
도 15는 본 발명에 따른, 파라미터들을 조정함으로써 예측 그래프를 만들기 위한 반복적인 시뮬레이션/교정 루프를 나타낸다.
세션 리스트들을 예측 그래프로 프로세스 및 조합하기 위해 사용되는 알고리즘은 그들의 동작에 영향을 미치는 많은 파라미터들을 갖는다. 그러한 파라미터들의 예들은 다음과 같은 파라미터들을 포함하는데: nfluenceOfElapsedTimeInPredictionWeight, InfluenceOfDistanceFromStepOffPointWhenConsideringRejoinNodes, 및 InfluenceOfNumberOfSequenceMismatchesWhenConsideringRejoinNodes와 많은 다른 것들이 있다. 이러한 많은 파라미터들은 극도로 민감하다. 값의 작은 변화는 결과적인 예측 그래프에 아주 큰 차이를 야기한다. 그래서 사람이 예측 그래프를 생성하기 위하여 가능한 한 적게 되고(소수의 노드들 및 에지들) 좋은 예측들을 만드는 예측 그래프를 생성하기 위해 가장 좋은 파라미터의 세트를 찾기 어렵다.
일 실시예에서, 그래픽 사용자 인터페이스 가시화 툴들이 파라미터들을 조정하고 결과적인 예측 그래프를 보이기 위하여 사용된다. 또 다른 실시예에서, 자동화 정도가 좋은 예측 그래프를 찾는 것을 돕기 위하여 사용된다. 파라미터에 관한 초기값의 세트가 사람에 의해서 또는 자동적으로(무작위적으로 또는 선행 세션들로부터 저장된 것으로) 선택된다(블럭 1505). 그 후, 상기 예측 그래프가 유효성을 테스트하는 분석기 성분으로 보내진다.
상기 분석기는 시스템의 동작들 즉, 리소스 요청을 만드는 애플리케이션, 상태 변화 추적하고 예측들을 만드는 예측기, 리소스들을 획득하는 프리로더, 상태 변화를 추적하고 예측하는 예측기 성분, 리소스를 획득하는 프리로더, 그리고 리소스를 획득해서 저장하고 합병하는 국부 저장소 캐시 및 리소스들을 획득하는 퍼지(purge)를 시뮬레이트한다(블럭 1515). 상기 분석기는 시뮬레이터이기 때문에 어떤 실제 리소스도 전송되지 않으나 리소스의 크기들은 알려지므로, 언제 프리로드된 리소스가 실제적으로 국부 저장장치 캐시에 도달하는지를 알기 위하여 일정한 평균 대역폭을 지닌 네트워크 상에서 그들의 전송 시간들이 계산될 수 있다. 이것은 캐시 미스들의 정확한 예측을 확인하는데 도움을 준다. 분석기는 시험 입력으로서 세션 리스트를 사용하고 상기 세션 리스트는 예측 그래프를 만들기 위해 트레이닝 데이터로서 사용되는 세션 리스트들과 같은 방법으로 획득된다(블럭 1520). 분석기는 선택된 세션 리스트로부터 순서대로 취해진 요청을 만드는 것에 의해서 리소스를 요청하는 애플리케이션을 시뮬레이트한다(블럭 1530). 분석기는 조합된 예측기 성분, 예측 그래프, 그리고 국부 저장(알고리즘들의 합병)의 효율을 테스트한다(블럭 1540). 그 후, 상기 예측기는 시스템의 유효성을 나타내는 수행 데이터를 출력한다(블럭 1550). 일 실시예에서, 수행 데이터는 NumberOfCacheMisses, NumberOfFailedPredictions, NumberOfCacheHitsInPredictions, NumberOfCacheHitsNotInCurrentPredictions, HighestNumberOfRetriesToFindARejoinNode, AverageNumberOfRetriesToFindARejoinNode 및 다른 많은것을 포함한다. 분석기는 예측 그래프를 만들기 위해 사용되는 실제 트레이닝 리스트들을 사용하는 시스템을 테스트 하는데, 이실행 경우에 시스템은 잘 운영되리라 예상된다(잘못된 예측과 캐시 미스들을 거의 가지지 않는다). 그 후, 상기 시스템이 잘 운영되지 않는다면, 이것은 예측 그래프가 너무 약하고 더 많은 트레이닝 데이터가 필요하거나 또는 알고리즘 파라미터 생성이 최적이 아니어서 조정되어야 함을 나타낸다. 분석기는 또한 트레이닝 데이터에 전혀 사용되지 않은 세션 리스트를 사용하는 상기 시스템을테스트 할 것이다. 이것들은 새롭고 트레이닝 되지 않은 애플리케이션 요구의 시퀀스에 대처하는 전체 시스템(예측기, 예측 그래프, 국부 캐시 퍼징)의 능력을 평가한다. 더 많은 실패한 예측('그래프를 스텝 오프') 사건들이 예상되고 이들은 이러한 백업 예측 알고리즘의 품질 및 좋은 재결합 노드들을 찾는데 사용되는 알고리즘들을 테스트한다.
상기 테스트를 통해서 출력된 실행 데이터는 예측 그래프의 생성과 그리고 예측기 성분과 국부 캐시 지우기 성분에 의해 행해진 어떤 결정에 영향을 주는 파라미터로 저장된다. 만약 수행 데이터가 임의의 방식에서 받아들여 질 수 없다면(가중된 임계 테스트들의 소정의 조합을 만족하지 않는 경우)(블럭 1560), 그 후 상기 분석기 툴은 언급된 파라미터들 중의 일부를 조정하고, 필요하다면 블럭 1505에 리턴함으로써 위에서 언급된 테스트들을 다시 실행하여 예측 그래프를 재발생한다. 이러한 자동 반복 프로세스는 가장 좋은 실행 시스템(가장 좋은 실행 데이터)을 찾는 것에 직접 관련된다. 다수의 파라미터들은 매우 민감하고 시스템 실행에 비선형적인 영향을 갖기 때문에, 다양한 알고리즘이 다음의 반복을 위한 파라미터들을 조정하기 위하여 사용된다. 그러한 알고리즘은 사람에 의해서 입력되거나 또는 이전의 분석기 세션들에게 상당한 영향을 줌으로써 시간의 흐름에 의해 자동적으로 학습하는 발견적인 기법(엄지의 법칙), 퍼지 논리(다양한 'if- condition-then-action rules'의 '' fractional truth-hood'(이들 각각은 다소 경험적 방법에 유사하다)를 이용하는 방법-이들 법칙들은 모두 병렬적으로 작동하며 그 결과들은 조합되어 그 후 요구되는 영향을 달성하기 위해 시스템을 조정하는 방법의 최후의 정확한 결정을 만들기 위하여 다양한 표준 알고리즘들을 사용하여 디퍼지드된다(defuzzified).), 신경망(Neural Network) 또는 복잡한 비선형 함수들이 모델 및 조정되게 하는 임의의 다른 관련 알고리즘을 포함한다.
많은 다른 데이터 구조 및 메커니즘들이 위에서 묘사한 방식으로 리소스 힌트 리스트와 관련된 리소스를 프리로드하기 위해서 사용될 것이다. 예를 들면, 스택은 리소스 리스트 대상을 가리키는 포인터를 포함할 것이다. 각각의 리소스 리스트 대상은 대상이 리소스를 프리로드하기 위해 사용되고 있을 때 다음에 로드되는 리소스를 추적할 것이다. 이 메커니즘을 사용하여, 하나의 힌트가 새로운 포인터가 스택에 저장되는 리소스 대상을 가리키도록 한다. 새롭게 푸시된 리소스 대상은 그 후 활성화되고, 리소스의 프리로드를 시작하기 위해 사용될 것이다. 리소스 대상과 관련된 모든 리소스가 프리로드되었을 때, 스택은 리소스 대상에 상기 포인터를 버리고 수신중인 힌트에 대한 바로 이전에 사용된 리소스 대상에 포인터를 팝(pop)한다.
가장 최근의 힌트가 리소스를 프리로드하는데 사용되면서 리소스 리스트들(또는 포인터들)의 위에 언급한 메커니즘은, 다수의 힌트로 하여금 스택 상에 수신 및 저장되도록 허용한다. 현재 힌트에 관련된 리소스가 프리로드되는 동안 다른 힌트가 수신된다. 또 다른 힌트의 수신은, 현재 힌트에 관련된 리소스의 프리로딩이 다른 힌트에 관련된 리소스가 프리로드되기까지 중지되게 한다.
다른 실시예에서, 리소스 리스트로부터의 레퍼런스는 리소스들의 프리로더의 리스트가 로드되는 곳에 주입된다. 예를 들어, 선입선출법(first-in first-out)큐(queue), 우선권 큐, 연결된 리스트 또는 그래프는 리소스가 다음에 어디에 로드되어야 할지를 결정하는 프리로더에 의해 사용될 수 있다. 발명의 일 실시예에 따라, 큐는 각각의 우선권 레벨에 대해 유지된다. 예를 들면, 만약 세계의 다른 우선권 레벨이 있다면, 세 개의 큐가 있다. 이실행 방법으로 가장 높은 우선권 큐들은 낮은 우선권 큐들이 체크되기 전에 체크될 것이다. 애플리케이션은 힌트와 관련된 리소스가 프리로더가 다른 리소스를 로드한 후에 로드되도록 특정할 수 있다. 이것은 예들 들어 로드될 리소스의 프리로더의 링크된 리스트 내의 소정 위치에 리소스 리스트의 리소스에 대한 기준을 삽입함으로써 행해질 수 있다. 이것은 예를 들어, 다음에 어떤 리소스가 로드되어야 할지를 결정하는 것을 시도하는 예상되는 검색 메커니즘을 사용함으로써 행해진다. 우선권 레벨은 힌트와 관련되어 있다. 힌트의 우선권 레벨에 근거하여, 리소스들이 적당한 큐에 로드된다. 일 실시예에 따라, 애플리케이션 힌트는 디폴트 우선권 레벨을 포함한다. 대신에, 애플리케이션은 우선권 레벨을 할당한다.
데이터를 프리로드하기 위하여 리소스 리스트를 사용
도 7은 본 발명의 양상에 따라, 데이터를 프리로드하기 위해 정적이고 동적인 리소스 리스트 사용하는 것을 보여준다. 발명의 일 실시예에서, 리소스 리스트는 실행하는 또는 곧 실행될 프로그램(이하에서는 실행 프로그램이라고 한다.)에 의해서 필요한 리소스인지 확인한다. 리소스는 실행 프로그램으로부터 리소스 리스트를 생성하는 것에 관련되어 위에서 참조되어 인용되었다.
예를 들면, 일 실시예에서, 리소스 리스트는 동적 링크 라이브러리(dll's)의리스트, 실행가능들, 데이터 파일들, 구성 파일들 및 실행 프로그램에 의해서 얻어질 수 있는 것들을 포함한다.
도 7을 참조하면, 시작 블럭 후에, 프로세스는 블럭(710)으로 이어지는데, 여기서 리소스 정보가 리소스 리스트로부터 로드할 다음 리소스를 위해 검색된다. 블럭(720)으로 이동하면, 상기 리소스가 프리로드된다. 판단 블럭(730)에 이동하면서, 리소스 리스트 안에 프리로드할 남겨진 리소스가 있는지 결정된다. 프리로드할 남겨진 리소스가 있을 때, 상기 프로세스를 반복하기 위해서 블럭(710)으로 이동한다. 로드할 남겨진 리소스가 없을 때, 종료 블럭으로 이동이고 다른 동작 프로세스로 리턴한다.
도 8은 본 발명의 양상에 따라, 예시적인 리소스 네임 맵핑 테이블을 보여준다. 발명의 일 실시예에 따라, 리소스 리스트 안에 각각의 기입은 리소스를 확인하는 세 가지의 파라미터를 포함한다. 예를 들어, 이러한 파라미터들은 리소스가 위치한 파일, 상기 파일 안에 있는 오프셋, 그리고 리소스의 길이를 포함한다. 또 다른 실시예에서, 다수의 파라미터에 추가되어 또는 그에 대신하여, 리소스 리스트가 데이터 값 또는 리소스에 관련된 키를 포함한다. 예를 들어, 리소스 리스트는 리소스의 "네임"을 포함할 것이다. 상기 네임은 맵핑 테이블을 사용함으로써 특정한 파일 내의 특정 오프셋에서 수 바이트의 시퀀스에 맵핑된다. 예를 들어, 상기 네임은 서브루틴, 함수, 라이브러리, 모듈 또는 애플리케이션 성분의 일부에 맵핑된다. 상기 맵핑 테이블은 리소스 네임, 파일, 오프셋, 길이와 같은 분야를 포함하는 다수의 튜플(tuple)들을 포함한다. 리소스 네임을 특정함으로써, 상기 맵핑 테이블은파일로부터 데이터 덩어리를 찾는데 사용된다. 상기 리소스 네임은 적절한 튜플을 찾는데 사용될 것이다. 일단, 튜플이 위치되면, 튜플의 다른 값들은 리소스에 액세스하는데 사용될 것이다. 애플리케이션이 새 버전에서 갱신 될 때, 맵핑 테이블 내의 튜플들이 데이터의 새로운 위치 또는 재컴파일동안 발생하는 명령들에 근거하여 갱신된다. 이실행 방식으로 맵핑 테이블을 사용하는 것은 리소스 리스트가 재컴파일후에라도 같은 리소스를 확인하는 게 가능하도록 한다. 리소스를 특정하는 예시적인 방법이 설명되었지만, 리소스를 특정화 또는 패키지하는 많은 다른 방법이 있다. 예를 들어, 컨텐츠를 패키지하는 다른 한 방법은 컨텐츠를 고정된 크기의 페이지들로 분할하는 것이다. 이실행 경우에, 특정화된 아이템은 페이지 번호 그리고/또는 페이지 수이다. 상기 컨텐츠를 식별하는 다른 방법은 받아들여진다.
발명의 일 실시예에서, 도 7에 도시한 바와 같이, 스레드는 리소스 리스트, 아이템 대 아이템을 판독하고 리소스를 프리로드한다. 스레드는 백그라운드 실행되고 및/또는 소정의 선택가능한 우선권이 주어진다. 우선권에 따라서, 상기 스레드는 프로세서가 사이클과 네트워크 대역폭을 계산하는 것처럼 특정한 양의 계산 리소스를 소비할 것이다. 상기 스레드는 최고 순위의 스레드가 블럭킹 그리고/또는 실행되지 않을 때 실행되거나 그렇지 않을 것이다. 또한 프리로더의 제어는 애플리케이션 그리고/또는 사용자에게 주어진다. 따라서, 상기 CPU/메모리 및 네트워크 리소스의 프리로더 소비는 단지 스레드의 우선권에 좌우되기보다는 제어된다.
프리로더
데이터를 프리로드하기 위해서 리소스 리스트를 사용하는 것을 상의할 때,프리로더는 리소스 리스트, 아이템 대 아이템을 판독할 것이고, 리소스를 프리로드한다. 발명의 일 실시예에서, 상기 프리로더는 사용자가 시스템에 로그온 하자마자 리소스 리스트에 있는 리소스를 프리로드한다. 사용자가 시스템에서 로그 오프할지라도, 상기 프리로더는 사용자가 인터넷 검색 등과 같은 다른 일들을 하는 동안에 컨텐츠를 프리로딩을 계속 한다.
일 실시예에서, 상기 프리로더는 백그라운드에서 실행한다. 이용가능한 CPU 사이클 그리고/또는 인터넷에 대한 대역폭, 또는 메모리 같은 다른 리소스, 운영 시스템 리소스, 그리고 그와 같은 것들의 일정한 퍼센트를 사용하도록 구성된다. 상기 이용가능한 대역폭은 사용자가 다른 활동을 하는 것처럼 다양할 것이다. 예들 들어, 사용자가 인터넷을 이용하고 있지 않을 때, 인터넷 대역폭은 100%는 이용가능하다. 이용가능한 대역폭의 25%를 사용하기 위해 구성된 프리로더는 이 시간 동안 인터넷에 이용가능한 전체 대역폭의 25%를 사용한다. 사용자가 웹검색을 하는 다른 시간에는, 이 시간동안 사용자가 요구하는 대역폭의 양은 다양할 것이다. 어떤 특정 시간에, 사용자는 컴퓨터에서 인터넷 접근에 이용가능한 전체 대역폭의 50%를 사용하고, 프리로더는 이용가능한 대역폭의 25%를 사용하도록 구성되었고, 남겨진 50%의 25%, 즉, 전체 이용가능한 대역폭의 12.5%를 사용할 것이다.
대안적으로, 프리로더는 인터넷에 이용가능한 전체 대역폭의 일정 퍼센트를 사용하도록 구성될 것이다. 예를 들어, 상기 프리로더는 인터넷에 이용가능한 전체 대역폭의 50%를 사용하도록 구성될 것이다. 상기 프리로더가 능동적으로 프리로드하는 동안, 상기 프리로더는 사용자가 현재 사용하는 대역폭의 퍼센트를 고려할 것없이, 이용가능한 전체 대역폭의 50%를 사용하려 시도할 것이다.
애플리케이션을 프리로딩은 인에이블 또는 디스에이블이다. 인에이블 및 디스에이블은 자동적으로 또는 사용자에 의해서 이루어질 것이다. 예를 들어, 어떤 특정 시간에 사용자는 컴퓨팅 디바이스의 컴퓨팅 대역폭 리소스의 전부를 요구할 것이다. 그래픽 사용자 인터페이스 환경에서, 사용자는 프리로딩에 관련된 그리고 프리로딩을 비활성화 시키는 아이콘을 선택할 것이다. 대안적으로 또는 추가로, 사용자는 프리로더가 데이터를 프리로드할 시간을 설정할 것이고, 또한 스케쥴을 통해서 프리로더가 얼마나 많은 계산적 대역폭 리소스를 소비할 지를 설정한다. 스케쥴은 상기 계산적 대역폭 리소스를 특정한 날 동안 할당할 것이다. 예를 들어, 주중에는 한 스케쥴이 적용되고, 다른 날 동안에는 다를 것이고, 예를 들어 주말에는 다른 스케쥴이 적용될 것이다. 계산적인 대역폭 리소스의 프리로더의 소비를 위한 스케쥴은 본 발명의 정신 및 범위에서 벗어남 없이 복잡하고 자세하고, 간단하고, 또는 상상가능한 임의의 형태일 것이다.
발명의 일 실시예에서, 사용자는 임의의 애플리케이션 그리고/또는 애플리케이션들간에 우선권을 위한 파일을 프리로드하도록 할 것이다. 예를 들어, 애플리케이션들간에 프리로딩의 우선권을 조정하는 때, 사용자는 하나의 애플리케이션에 대해 프리로더에서 이용가능한 대역폭의 특정한 부분을 그리고 또 다른 애플리케이션에 대해 프리로더에서 이용가능한 대역폭의 또 다른 부분을 할당할 것이다. 이러한 자료들을 통해서, 이치에 맞게, 대역폭은 CPU 계산 사이클과 비율 모두와 관련되어 있고, 클라이언트는 상기 비율로 인터넷과 같은 국부 통신망 또는 광역 네트워크로부터 데이터를 보낼 수 있고 수신할 수 있다.
또 다른 발명의 실시예에서, 사용자가 애플리케이션을 위해 프리로드하는 리소스들 간에 우선권을 할당할 때, 최고 우선권의 애플리케이션에 대한 리소스가 먼저 프리로드된다. 그때, 다음 우선권의 애플리케이션에 대한 리소스가 프리로드된다. 그실행 식으로 계속 된다.
도 9는 애플리케이션 내부의(in-app) 프리로더와 애플리케이션 외부의(put-of-app) 프리로더 실행의 상태 다이어그램을 도시한다. 발명의 일 실시예에서, 하나의 프리로더가 애플리케이션이 재개되기 전에 활성화되고, 다른 프리로더는 애플리케이션이 재개된 후에 활성화된다. 상기 프리로더는 상호 배제 또는 다른 어떤 내부 프로세스 교신 메커니즘을 통하여 교신을 한다. 애플리케이션이 재개되기 전에 활성화된 프리로더는 애플리케이션 외부의 프리로더로서 언급될 것이고(이하에서는, "애플리케이션 외부의 프리로더" 또는 "프리로더"라 한다.), 애플리케이션이 실행되었을 때 활성화 된 프리로더는 애플리케이션 내부의 프리로더로서 언급될 것이다(이하에서는, "애플리케이션 내부의 프리로더"라 한다.). 또 다른 실시예에 따라, 하나의 프리로더가 애플리케이션의 존재가 자동적으로 결정될 수 있을 때, 실행되지 않는 때뿐만 아니라 실행되는 동안 애플리케이션에 관한 프리로딩을 다룬다.
도 10은 본 발명의 양상에 따라, 애플리케이션 내부의 프리로더 실행에 관한 프로세스를 도시한다. 프리로더는 앞에서 설명된 바와 같이, 힌트들에 관련된 리소스 리스트로 갱신되는 정적 리소스 리스트에 근거하여 리소스를 프리로드한다. 프리로더가 애플리케이션이 재개되었는지를 결정할 때, 프리로더는 실행을 정지할 것이다. 그렇게 할 때, 상기 프리로더는 현재 로드하려고 한 리소스를 버리고, 정지 전에 리소스 또는 데이터의 덩어리를 로드하는 것을 마무리하고, 또는 정지 전에 프리로드할 수 있었던 리소스 또는 데이터 덩어리가 얼마나 많은 지를 나타낸다. 프리로더가 리소스의 프리로딩을 재개한 때, 이는 그것이 중지된 곳에서 시작한다.
정지 후 임의의 시간에, 상기 프리로더는 오퍼레이팅 시스템 또는 임의의 다른 메커니즘에 의해서 활성화될 것이다. 실행이 갱신되었을 때, 상기 프리로더는 애플리케이션이 활성화되고 있는지를 체크한다(블럭 1010). 그렇다면, 상기 프리로더는 다른 한 주기동안 스스로를 정지할 것이다(블럭 1020). 이는 상기 프리로더가 애플리케이션이 더이상 실행되고 있지 않다고, 예를 들어 상호 배제가 릴리즈(release)되었다고, 결정할 때까지 계속된다. 발명의 또 다른 실시예에 따라, 프리로딩은 사건 구동 방식에 따라 활성화 그리고 비활성화 될 것이다. 이 점에서, 상기 프리로더는 그것이 중단된 곳에서 프리로딩을 재개한다.
상기 프리로더가 리소스를 프리로딩을 재개하는 때, 상기 프리로더는 프리로드 하려하는 하나 이상의 리소스들이 애플리케이션 또는 애플리케이션 내부의 프리로더에 의해서 로드되었는지를 결정한다(블럭 1060). 상기 프리로더는 캐시, 메모리 파일 시스템 입출력 응용 프로그램 인터페이스(API) 또는 몇몇의 다른 위치를 상기 파일이 이미 클라이언트 국부에 위치되었는지를 보는 것으로, 검사함으로써 결정할 것이다. 만일 그렇다면, 상기 프리로더는 리소스 리스트 안에 로드할 다음의 리소스로 단순히 진행할 것이다(블럭 1050). 상기 프리로더는 다음 리소스 또한애플리케이션 또는 애플리케이션 내부의 프리로더에 의해서 프리로드되었는지를 결정한다. 이실행 프로세스의 일부분으로서, 상기 프리로더는 리소스 리스트 내의 리소스가 이미 국부적으로 존재하는지 결정을 단순히 체크할 것이다. 상기 "국부적으로"는 다소 즉시 접근 가능하고, 높은 대역폭의 자리에 저장되어 있는 리소스를 말한다. 예를 들어, 상기 리소스는 메모리, 하드 드라이브, 근거리 통신망(LAN) 서버 캐시, 프록시 그리고 그와 같은 것들에 저장되었을 것이다. 상기 용어 "국부적으로"는 단지 사용자의 장치에 있는 것만으로 한정되지 않는다.
만일 리소스가 국부적으로 존재하지 않는다면, 상기 프리로더는 다음 리소스로 스킵할 것이고, 리소스가 이미 국부적으로 존재하는지 알아보기 위해 체크할 것이다. 이실행 프로세스는 상기 프리로더가 리소스 리스트 안에 있는 모든 리소스를 통하여 진행할 때까지, 또는 상기 프리로더가 프리로드될 필요가 있는 리소스를 발견할 때까지 계속 될 것이다. 상기 프리로더가 프리로드될 필요가 있는 리소스를 발견할 때, 상기 리소스의 프리로딩을 시작할 것이다(블럭 1070).
프리로딩의 이실행 방법은 상기 리소스가 서버에 있는 것보다 보다 빠르고 보다 에러가 없도록 하기 위해서 리소스를 서버로부터 사용자의 국부 기억 장치에 전송하도록 지시 받는다. 그러나, 사용자의 국부 저장 장치의 공간이 제한될 수 있고 및/또는 프리로드된 다양한 애플리케이션들간에 공유될 수 있다. 사용자는 컨텐츠 전달 시스템이 사용할 수 있는 국부 저장 공간의 양을 나눠주는 것을 또한 선택할 것이다. 그러므로 프리로더가 로드하려고 하는 모든 리소스를 보관하는 국부 저장 영역 내의 공간이 충분하지 않는 경우들이 있을 것이다. 이실행 일이 발생한다면, 많은 국부 저장 공간 관리 방침들 중 임의의 것이 이용된다. 새롭게 프리로드되는 리소스들을 위한 장소를 만들기 위하여, 리소스가 "거의 최근에 사용되지 않은" 알고리즘 또는 다른 임의의 적절한 알고리즘에 근거하여 국부 저장 시스템으로부터 제거된다. 애플리케이션에 의해서 가장 최근에 사용된 리소스들은 다시 요청 받기 쉽기 때문에, 상기 "거의 최근에 사용되지 않은" 것을 삭제하는 것은 몇 시간동안 사용되지 않은 것과 같은 어떤 다른 기준을 만족하는 리소스에 한정될 것이다. 앞에서 설명한 바와 같이, '예측 그래프 및 예측기 성분' 알고리즘을 사용하는 때, 이실행 상태 구동 예측 때문에, 어느 리소스가 프리로드되었는 지를 추적하는 것이 유리하고, 그리고 애플리케이션이 예측 그래프를 통해서 특정 경로를 선택하였을 때(즉, 특정한 리소스를 요청할 때), 그 후 공간이 재요구될 필요가 있다면 삭제하기에 보다 적당한 것으로서 "실패한 예측"(애플리케이션에 의해서 받아들여지지 않은 그래프내의 브랜치 아래를 향하는 것 때문에 예측된 리소스)이라고 표시한다.
도 11은 발명의 형태에 따라, 애플리케이션 내부의 프리로더의 프로세스 흐름을 도시한다. 도 11에 도시된 프로세스는 블럭(1110)과 블럭(1120)을 제외하고 도 12에 도시된 것과 상당히 비슷하다. 애플리케이션의 실행시, 상기 애플리케이션은 그것이 실행되고 있음을 나타낸다(블럭 1110). 애플리케이션이 상호 배제를 사용하거나 또는 애플리케이션이 현재 실행하는 프리로더에 신호에 대한 응용 프로그램 인터페이스 안에 있는 호출을 이용한다. 대안적으로 또는 추가적으로, 애플리케이션 내부의 프리로더는 애플리케이션 내부의 프리로더가 실행하는 애플리케이션외부의 프리로더에 대한 신호로 상호 배제(또는 몇몇의 다른 내부 프로세스 교신 메커니즘)를 사용할 것이다. 판단 블럭(1120)은 애플리케이션이 리소스를 요구하는 지 결정하는데 이용된다. 이러한 리소스는 애플리케이션 실행으로부터 또는 힌트의 사용 또는 애플리케이션 상태에 근거한 예측기를 통하여 직접적으로 요구될 것이다.
본 발명의 일 실시예에서, 애플리케이션 내부의 프리로더는 리소스의 프리로딩을 위해서 애플리케이션 외부의 프리로더와 다른 리소스 리스트를 사용한다. 예를 들어, 애플리케이션은 애플리케이션이 실행되고 있는 동안 발생하는 사건에 근거하여 동적으로 애플리케이션 내부의 프리로더에 리소스 리스트를 제공할 것이다. 대안적으로, 같은 리소스 리스트가 애플리케이션이 실행되고 있는 동안 및 실행되고 있지 않을 때 모두 사용될 것이다. 또한, 상기 애플리케이션은 애플리케이션 외부의 프리로더가 일반적으로 프리로드하는 리소스의 집합보다 프리로드되기에 보다 유익할 리소스의 세트를 가진다. 애플리케이션 내부의 프리로더는 리소스의 프리로딩을 시작할 때(동적 또는 정적 리소스 리스트에 근거하여), 애플리케이션 내부의 프리로더는 애플리케이션 외부의 프리로더가 이미 하나 이상의 애플리케이션 내부의 프리로더가 이미 로드한 리소스를 로드하였는지를 결정한다. 그실행 경우, 애플리케이션 외부의 프리로더가 파일이 이미 로드되었다고 결정하였을 때, 애플리케이션 외부의 프리로더가 다음 리소스로 건너뛰는 방법과 유사하게 애플리케이션 내부의 프리로더가 다음 리소스로 스킵한다. 이러한 스킵은 같은 메커니즘에 의해서 실행된다. 즉, 애플리케이션 외부의 프리로더 및 애플리케이션 내부의 프리로더는 특정 리소스의 로드를 위하여 파일 시스템 입출력 응용 프로그램 인터페이스(I/O API)를 호출한다. 파일 시스템 I/O API가 파일이 국부적으로 발견되는지를 결정한다면, 상기 파일 시스템 입출력 응용 프로그램 인터페이스는 파일이 이미 로드되었음을 호출 프리로더에 단순히 보고한다. 그러므로, 발명의 일 실시예에서, 애플리케이션 외부의 프리로더와 애플리케이션 내부의 프리로더는 파일을 로드하기 위해서 일반적인 응용 프로그램 인터페이스 호출을 실행한다. 상기 파일은 캐시, 데이터 저장 장치, 또는 영구적 그리고 비 영구적 메모리의 조합에 저장된다.
발명의 일 실시예에서, 상기 프리로더는 초기에 애플리케이션을 시작하기에 필요한 최소의 리소스 세트를 로드한다. 상기 최소의 리소스 세트는 최소 풋프린트(footprint)로서 언급된다. 일반적으로 그러한 리소스들은 애플리케이션이 실행되기 전에 클라이언트에게 존재해야 한다. 이실행 최소 풋프린트는 애플리케이션이 필요한 만큼 다른 리소스를 요청할 수 있도록 하는 파일 시스템 입출력 응용 프로그램 인터페이스를 포함할 것이다.
임의의 리소스의 세트는 리소스에 접근하기 전에 전부 파일이 프리로드될 것을 요구한다. 임의의 예에는 웨이브 파일(WAV file : word audio video file) , 엠피쓰리 파일 그리고 애플리케이션에 대해서 외부 플레이어나 운영 시스템과 같은 다른 시스템에 옮겨질 필요가 있는 파일들이 있다. 리소스들은 세트 내의 리소스들이 애플리케이션에 이용가능하다고 고려되기 전에 그러한 리소스들의 세트가 함께 로드되어야 하는 것을 나타낸다.
발명의 일 실시예에서, 리소스 리스트는 메모리 안으로 또한, 하드 드라이브, 램(RAM), 또는 다른 기억 장치에 들어가야 한다는 것을 알릴 것이다. 리소스가 메모리 내에 남아있다는 표시를 가질 때, 거의 최근에 사용되지 않은(LRU) 것을 지우는 알고리즘 또는 몇몇의 다른 리소스 대체 전략하에서 대체에 사용되는 것을 멈춘다.
리소스들 및 최소 풋프린트를 로드하는 프로세스를 통하여, 사용자는 애플리케이션의 로드를 경험한다. 예들 들어, 애플리케이션에 관련된 아이콘은 윈도우 환경의 데스크탑에 위치된다. 아이콘들은 또한 마이크로소프트 윈도우의 "시작 메뉴" 내에 위치될 수 있다. 애플리케이션 전부가 사용자의 장치에 로드되지 않을 지라도 사용자는 애플리케이션의 표준 인스톨과 같은 경험을 한다.
그러나 프리로더는 아이콘이 나타내는 애플리케이션에 관련된 리소스를 프리로딩을 시작하기 전에 그러한 아이콘에 접근하거나 또는 그러한 아이콘을 클릭할 때까지 기다릴 수도 있고 아닐 수도 있다. 하나의 아이콘에 접근하는 것은 프리로더가 사기 아이콘에 직접적으로 관련 없는 애플리케이션에 대한 리소스의 프리로딩의 시작을 야기한다. 예를 들어, 상기 프리로더는 사용자가 다른 애플리케이션에 접근할 가능성이 높은 하나의 애플리케이션에 접근하는지를 판단하다. 이실행 경우, 아이콘을 선택하였을 때, 애플리케이션의 세트에 관한 리소스가 프리로드되기 시작될 것이다.
어떤 경우에, 애플리케이션은 프리로더가 프리로드하지 않은 리소스를 필요로 한다. 발명의 일 실시예에서, 상기 애플리케이션이 그러한 리소스를 필요로 할 때, 상기 애플리케이션은 메모리, 캐시, 파일 시스템 입출력 응용 프로그램 인터페이스 그리고 이와 같은 것들로부터 리소스를 요구할 것이다. 애플리케이션 내부의 프리로더가 상기 애플리케이션이 리소스를 요청했음을 발견하였을 때, 상기 애플리케이션 내부의 프리로더가 정지하고, 애플리케이션의 리소스 요구가 완료될 때까지 계속 정지되어 있는다. 상기 애플리케이션이 요청된 리소스를 언제 수신할지를 결정하기 위해서, 상기 애플리케이션 내부의 프리로더는 애플리케이션이 멈추고, 시작하고, 애플리케이션 요청 상태를 체크하고, 만약 상기 리소스가 국부 저장 장치에 아직 전송되지 않았다면 다시 멈추는 루프로 들어할 것이다.
발명의 실시예에서, 리소스들은 32킬로바이트 그리고/또는 64 킬로바이트 단위로 요청된다. 상기 덩어리 크기는 수동으로 또는 자동으로 선택되고, 32 또는 64 킬로바이트와 다른 크기일 수 있다.
발명의 다른 실시예에서, 클라이언트는 컨텐츠 서버와 다수개의 교신 채널을 갖을 수 있다. 예를 들어, 애플리케이션 내부의 프리로더는 하나의 채널로 요청들을 보내고 데이터를 수신하고, 애플리케이션 외부의 프리로더는 다른 채널로 요청들을 보내고 데이터를 수신하고, 그리고 애플리케이션은 또 다른 채널로 요청들을 보내고, 데이터를 수신한다. 서버는 하나의 채널로 요구들을 수신하고, 그 후 같은 클라이언트로부터 다른 채널 상의 요청을 수신한다. 만일 새로운 요청이 더 높은 우선권의 채널로부터 왔다면, 더 높은 순위 채널의 요구가 만족될 때까지 상기 서버는 낮은 순위의 채널로부터 온 요청을 수행하는 것을 멈춘다. 그러한 실시예에서, 클라이언트의 애플리케이션 외부의 프리로더가 애플리케이션 내부의 프리로더 또는 애플리케이션이 실행되고 있는지 체크하는 것이 불필요하다. 왜냐하면 우선권을 설정함으로써, 상기 서버가 애플리케이션 내부의 프리로더 또는 애플리케이션으로부터 나온 요구를 서비스하지 못할 때, 상기 서버는 데이터를 애플리케이션 외부의 프리로더에 데이터를 전송하도록 구성될 것이기 때문이다. 유사하게, 애플리케이션 내부의 프리로더가 애플리케이션이 데이터를 요구하는지를 체크하는 것은 불필요하다. 우선권을 설정함으로써, 서버가 애플리케이션으로부터의 요청을 서비스하지 못할 때, 서버는 애플리케이션 내부의 프리로더에 데이터를 보내도록 구성될 것이다.
다른 실시예에 따라, 단일의 프리로더가 애플리케이션 내부의 그리고 애플리케이션 외부의 프리로딩에 사용된다. 각각의 애플리케이션에 대한 개별적인 프리로더를 대신해, 엔진이 프리로딩을 관리한다. 애플리케이션 내부의 프리로딩 동안, 상기 애플리케이션은 프리로더에 API를 사용하는 요청을 보낸다. 예를 들어, 플레이어가 게임에서 다음 레벨에 가까이 있을 때, 애플리케이션은 프리로더로부터 다음 레벨에 필요한 리소스를 요구하다. 애플리케이션 외부의 프리로딩 동안, 상기 프리로더는 리소스 리스트로부터 리소스를 로드한다. 달리 말하면, 상기 애플리케이션이 실행되고 있지 않을 때, 상기 리소스 리스트는 정적이고, 상기 애플리케이션이 실행되고 있을 때, 상기 리소스 리스트는 동적이다. 상기 애플리케이션이 실행하는 것을 시작했을 때, 상기 애플리케이션은 실행 중인 프리로더로 레지스트한다. 이실행 실시예는 많은 이점이 있다. 예를 들어, 프리로더의 복사본을 저장하지 않기 때문에 상기 애플리케이션은 클라이언트에 대한 리소스를 적게 소비한다. 또한 리소스의 프리로딩을 제어하는 중앙 위치가 있다.
도 12는 발명의 형태에 따른 프리로더의 시스템을 보여준다. 클라이언트 (1205)는 접속 운영자(1210)와 애플리케이션들(1215-1217)과 같은 하나 이상의 애플리케이션을 포함한다. 각각의 애플리케이션은 캐시들(1220-1222)과 같은 하나 이상의 캐시에 관련된다. 발명의 다른 실시예에서, 애플리케이션 전부는 하나의 캐시에 관련된다. 즉, 단일의 캐시는 하나 보다 많은 애플리케이션들에 관한 컨텐츠를 저장한다. 상기 캐시는 클라이언트(1205)에 위치한 컴퓨터가 판독할 수 있거나 또는 근거리 통신 망에서부터 클라이언트(1205)에 이르기까지 모두에 의해서 쌍을 이룬 서버 상에서와 같이 클라이언트(1205)에 의해서 쉽게 접근 가능한 매체에 저장된다.
컨텐츠는 하나 이상의 리소스로 분할된다. 클라이언트 컴퓨터가 게임같은 애플리케이션을 먼저 요구한 때, 게임의 리소스는 컨텐츠 서버에 홀에 위치된다. 애플리케이션을 구성하는 실행가능한 코드 및 데이터는 블럭 단위로 분할된다. 이러한 블럭들의 각각은 실행을 계속하거나 완료하기 위하여 애플리케이션에 의해서 요구된 리소스로 고려된다.
애플리케이션의 실행 가능한 코드의 임의의 블럭들은 서버로부터 다운로드 되고, 클라이언트 컴퓨터에 저장될 것이다. 충분한 수의 블럭이 다운로드 된 후에, 애플리케이션은 클라이언트 컴퓨터에서 현재 이용가능한 블럭으로 실행하기 시작한다. 상기 애플리케이션이 컨텐츠 서버에 위치한 코드를 필요로 하는 코드의 한 부분에 접근하거나 접근하기 전에, 상기 애플리케이션은 필요한 코드를 포함하는 코드의 블럭을 요구할 것이다. 상기 코드의 블럭은 실행을 계속 하거나 또는 완료하는 애플리케이션에 의해 필요로 하는 리소스가 된다.
리소스는 파일 네임과 파일 내의 오프셋과 요청된 바이트를 함께 포함하는 정보에 의해서 확인된다. 상기 파일은 데이터 파일, 동적 링크 라이브러리, 실행가능한 프로그램, 성분, 그리고 그와 같은 것들이 될 수 있다. 하기의 장치들이 컨텐츠 서버로부터 클라이언트 컴퓨터로 다운로드 되지 않는다고 할지라도, 리소스는 또한 프로세서, 메모리, 프린터, 디스플레이 어뎁터, 네트워크 어뎁터, 하드 디스크같은 저장 장치, 시디 롬, 디비디 디스크 또는 다른 광 디스크 그리고 그와 같은 것들을 포함한다.
클라이언트(1210)는 광대역 정보 통신망/국부 정보 통신망에 의해서 서버들(1225-1227)과 같은 하나 이상의 서버들에 접속된다.
발명의 일 실시예에서, 각각의 애플리케이션은 프리로더 스레드와 관련이 있다. 예를 들어, 애플리케이션(1215)은 프리로더 스레드(1230)에 관련된다. 프리로더 스레드(1230)는 애플리케이션(1215)이 현재 필요로 하거나 바로 곧 필요로 할 컨텐츠를 획득할 책임이 있다. 프리로더 스레드(1230)는 이전에 생성된 정적 리소스를 검사함으로써 애플리케이션(1215)이 곧 필요로할 컨텐츠를 안다. 예를 들어, 애플리케이션(1215)은 샘플 실행 동안 리소스가 접근하는 리소스 리스트를 출력하도록 명령받는다. 애플리케이션(1215)은 애플리케이션(1215)에 의해서 전형적으로 요구된 리소스의 대표적인 구성된 리스트를 획득하기 위한 환경을 바꾸면서 여러 번 실행된다.
애플리케이션(1215)이 클라이언트(1215)에서 현재 이용가능한 리소스를 사용할 때, 프리로더 스레드(1230)는 컨텐츠 서버로부터 검색된 리소스 리스트로부터 리소스를 요청한다. 요청된 리소스가 수신된 때, 상기 요구된 리소스는 캐시(1220)와 같은 애플리케이션(1215)에 관련된 캐시에 저장된다. 애플리케이션(1215)이 리소스를 요구할 때, 상기 리소스는 컨텐츠 서버보다 오히려 국부적으로 접근 가능한 컴퓨터 저장 매체로부터 얻어진다.
애플리케이션(1215)이 클라이언트(1205)에 국부적으로 접근가능하지 않은 리소스를 요구할 때, 애플리케이션(1215)은 프리로더 스레드(1230)를 이용하거나 또는, 직접적으로 엔진(1235)으로부터 리소스를 요구할 것이다. 리소스를 얻은 후에, 상기 리소스는 애플리케이션(1215)에 관련된 캐시에 저장될 것이다. 게다가, 상기 리소스는 사용을 위해 애플리케이션(1215)에 제공되어 질 것이다.
발명의 또 다른 실시예에서, 각각의 애플리케이션(1215-1217)은 엔진(1235)으로부터 프리로드된 리소스를 직접 수신한다. 이 실시예에 따라, 애플리케이션은 애플리케이션의 현재 상태를 엔진 1215에게 알린다. 상태의 응답으로, 엔진 1235는 상기 애플리케이션에 의해서 필요로하는 어떤 리소스를 요청한다. 상기 리소스는 애플리케이션에 보내지거나 또는 캐시에 저장될 것이다. 엔진(1235)은 프리로드된 상기 애플리케이션에 관련된 상기 리소스와 연관된 스레드를 포함하는 스레드 풀 (1238)을 관리한다.
접속 관리기(1210)는 하나 이상의 컨텐츠 서버로부터 리소스의 검색을 관리하기 위해 사용된다. 예를 들어, 접속 관리기(1210)는 애플리케이션들(1215-1217)과 같은 하나 이상의 애플리케이션, 또는 프리로드 스레드들(1230-1232)과 같은 프리로더 스레드들로부터 발생되는 리소스에 대한 요청을 수신한다. 접속 관리기(1210)는 또한 사용자의 구성 데이터를 동작한다. 예를 들면, 사용자는 컴퓨터가 인터넷에 대해 갖고 있는 이용가능한 대역폭의 특정한 퍼센트만 사용하도록 접속 관리기(1210)를 구성한다.
애플리케이션이 활성화되고 리소스를 활발히 요구할 때, 접속 관리기(1210)는 비 활성 애플리케이션에 대한 리소스의 프리로딩을 중지할 것이고 접속 관리기에게 사용자에 의해서 할당된 모든 이용가능한 대역폭을 활성 애플리케이션에 대한 리소스를 얻는데 집중할 것이다. 상기 애플리케이션은 리소스를 또한 요구할 것이고, 상기 리소스들을 상기 애플리케이션에 관련된 캐시에 저장할 것이다.
발명의 일 실시예에서, 접속 관리기(1210)는 애플리케이션과 함께 통합되어 있다. 즉, 단지 하나의 애플리케이션이 실행되고 있을 때, 접속 관리기(1210)가 다수의 애플리케이션들로부터 접속을 관리하는 것은 불필요하다. 오히려, 접속 관리기의 기능은 애플리케이션 안에 포함될 것이다.
접속 관리기(1210)는 컨텐츠 서버들(1225-1227) 중 하나 이상의 접속을 한다. 발명의 실시예에서, 컨텐츠 서버(1226)와 같은 하나의 컨텐츠 서버는 다수의 클라이언트의 요구를 서비스하는데 충분한 대역폭을 갖는다. 발명의 다른 실시예에서, 다수의 컨텐츠 서버는 하나 이상의 클라이언트의 요구를 서비스하도록 요구된다. 하나 이상의 컨텐츠 서버의 대역폭을 요구하는 것을 판단하는 접속 관리기는 컨텐츠를 얻기 위해 하나 이상의 컨텐츠 서버에 접속한다.
접속 관리기(1210)는 하나의 컨텐츠 서버에 하나보다 많은 접속을 가진다.예를 들어, 접속 관리기(1210)는 시간에서 하나보다 많은 애플리케이션에 관한 컨텐츠를 요청한다. 컨텐츠는 컨텐츠 서버(1226)와 같은 하나의 컨텐츠 서버 상에 모두 존재한다. 접속 관리기(1210)는 각 애플리케이션을 위한 컨텐츠에 관한 하나의 연결을 열어놓는다.
그러나 더 바람직하게, 접속 관리기(1210)는 컨텐츠 접속 관리기(1210)를 가지는 각 컨텐츠 서버와 하나의 연결만을 유지한다. 하나의 연결을 통해 다중화 컨텐츠에 임의의 복잡성이 부가됨에도 불구하고, 컨텐츠 서버에 연결들의 수를 최소화하는데 이득이 부가된다. 만일 모든 클라이언트로부터의 모든 접속 관리기가 각 컨텐츠 서버에 다수의 연결들을 열어 놓는다면, 이러한 제한된 연결들이 빠르게 소모될 것이다.
또한, 접속 관리기(1210)는 연결이 사용되지 않는 경우 연결을 닫는다. 이는 또한 컨텐츠 서버들의 연결 성능에 도움이 된다.
동작 환경
도 1 내지 도 3은 본 발명이 실시되는 예시적 환경 내의 구성요소를 도시한다. 본 발명의 실시를 위해 모든 구성요소가 필요한 것은 아니며, 본 발명의 기술적 사상의 범위를 벗어나지 않고 구성요소의 배열 및 종류가 변경될 수 있다.
도 1은 복수의 근거리통신망(LAN)(120)과 라우터(110)에 상호 연결된 원거리통신망(WAN)(130)을 도시한다. 라우터(110)는 통신망에서 메시지 전달을 촉진하는 매개 장치이다. 가능한 연결 메쉬를 통해 많은 컴퓨터를 연결하는 단일 네트워크 상에서, 라우터는 전송된 메시지를 수신하고 그것을 사용 가능한 루트를 통해 정확한 목적지로 포워딩 한다. LAN(다른 구조 및 프로토콜에 따른 것 포함)의 상호연결 세트 상에서, 라우터는 LAN 간의 링크로서 동작하여, 메시지가 한 곳에서 다른 곳으로 전송될 수 있도록 한다. LAN 내의 통신링크는 꼬임쌍(twisted pair), 광섬유 또는 동축 케이블을 포함하고, 네트워크간의 통신링크는 아날로그 전화선, T1, T2, T3, T4를 포함하는 전체 또는 부분적 전용 디지털선, 종합정보통신망(ISDN), 가입자 회선(DSL), 무선링크 또는 다른 통신링크를 사용할 수 있다. 또한, 원격 컴퓨터(140) 등의 컴퓨터, 다른 관련 전자장치가 원격에서 모뎀 및 임시 전화선을 통해 LAN(120) 또는 WAN(130)에 연결될 수 있다. 도 1의 WAN, LAN 및 라우터의 개수는 본 발명의 기술적 범위를 벗어나지 않고 임의로 증가되거나 감소될 수 있다.
이처럼, 인터넷은 방대한 수의 상호연결 네트워크, 컴퓨터 및 라우터로 형성된다. 일반적으로, "인터넷" 이란 용어는 상호 통신을 위해 한 쌍의 프로토콜, 즉 전송제어 프로토콜/인터넷 프로토콜(TCP/IP)을 사용하는 네트워크, 게이트웨이, 라우터 및 컴퓨터의 전세계적 집합체를 의미한다. 인터넷의 중심에는 수 천개의 상업용, 정부, 교육용 및 다른 용도의 컴퓨터 시스템을 포함하는 메인 노드 또는 호스트 컴퓨터가 데이터 및 메시지를 전송하고, 이들 사이에는 고속 데이터 통신선인 백본(backbone)이 있다. 본 발명의 실시예는 본 발명의 기술적 범위를 벗어나지 않고 인터넷 상에서 실시될 수 있다.
상기 통신링크로 정보를 전송하는데 사용되는 매체는 컴퓨터 판독 매체 즉, 통신매체의 한 종류이다. 일반적으로, 컴퓨터 판독 매체는 컴퓨터 저장 매체, 통신 매체 및 그 결합체가 될 수 있다.
통신매체는 컴퓨터 판독 명령어, 데이터 구조, 프로그램 모듈 또는 다른 데이터를 반송파 또는 다른 전송 매커니즘과 같은 변조된 데이터 신호로 구체화하고, 정보 전달 매체를 포함한다.
"변조된 데이터 신호" 란 정보를 신호로 인코딩하는 방식으로 변경되거나 설정된 하나 이상의 특성을 갖는 신호를 의미한다. 예를 들어, 통신매체는 꼬임쌍, 동축 케이블, 광섬유, 웨이브 가이드(wave guide) 등의 유선 매체 및 음향, RF, 적외선 등의 무선 매체를 포함한다.
최근 인터넷은 전세계적으로 위치하고 있는 컴퓨터를 연결하는 능력에 의해 폭발적으로 성장하고 있다. 인터넷이 성장하면서, 그것은 월드와이드웹(WWW)을 갖는다. 일반적으로, WWW는 전세계적으로 HTTP(hypertext transport protocol) 서버 상에 있는 상호 링크된 하이퍼텍스트 문서의 총체이다. WWW 상의 문서를 페이지 또는 웹 페이지라고 부르며, HTML(Hypertext Markup Language) 또는 다른 마크업 언어로 작성되어, URL(Uniform Resource Locator)에 의해 식별된다. URL은 특정 머신 및 경로이름을 특정하는데, 그 경로이름을 통해 파일이 액세스될 수 있고, 서버로부터 HTTP를 사용하는 종단 사용자에게 전송될 수 있다. HTML 문서에 들어가는 태그라고 불리는 코드는 문서 내의 특정 단어 및 이미지를 URL에 연관시켜서 사용자가 키 입력 또는 마우스 클릭을 통해 다른 파일(이것은 문자 그대로 세계의 중간에 있음)을 액세스할 수 있다. 이 파일은 자바 애플릿, ActiveX 제어, 사용자가 활성화를 위해 실행하는 다른 임베디드 소프트웨어 프로그램을 비롯하여 텍스트(다양한 폰트와 스타일을 갖음), 그래픽 이미지, 동영상 파일, 미디어 클립, 사운드를 포함한다. 웹 페이지를 방문한 사용자는 FTP 사이트로부터 파일을 다운로드 하고 웹 페이지 상의 링크를 사용하여 이메일로 다른 사용자에게 메시지를 전송할 수 있다.
도 2에 도시된 서버는 WWW 사이트를 제공하고, 컨텐츠 서버, 게임 서버, 인증 서버 등이 될 수 있다. 웹 페이지를 제공할 때, 서버는 WWW 사이트를 위한 하이퍼텍스트 문서를 저장하는 저장부분 및 저장된 하이퍼텍스트 문서에 대한 요청을 관리하는 실행 관리 소프트웨어를 가지고 있다. 하이퍼텍스트 문서는 보통 다수의 하이퍼링크 즉, 텍스트의 하이라이트 처리된 부분을 갖는데, 이것은 문서를 인터넷 상의 다른 WWW 사이트에 저장된 다른 하이퍼텍스트 문서에 링크시킨다. 각 하이퍼링크는 인터넷에 연결된 서버 상에서 링크된 문서의 위치를 제공하는 URL과 연관된다. 따라서 하이퍼텍스트 문서가 WWW 서버로부터 검색될 때마다, 그 문서는 WWW로부터 검색된 것으로 본다. WWW 서버는 원격 컴퓨터 상의 실행을 위해 선마이크로시스템의 자바 프로그래밍 언어로 작성된 애플리케이션 프로그램과 같은 애플리케이션 프로그램을 저장하고 전송하는 부분을 포함할 수 있다. 마찬가지로, WWW 서버는 그 위에서 스크립트 및 다른 애플리케이션 프로그램을 실행하는 부분을 포함할 수 있다.
사용자는 유선 또는 무선장치에 있는 WWW 브라우저 애플리케이션 프로그램을 통해 WWW로부터 하이퍼텍스트 문서를 검색할 수 있다. 넷스케이프의 NAVIGATOR, 마이크로소프트의 인터넷 익스플러 등의 WWW 브라우저가 WWW에 그래픽 유저 인터페이스를 제공하는 소프트웨어 애플리케이션 프로그램이다. WWW 브라우저를 통해 사용자로부터 요청이 있으면, WWW 브라우저는 문서 및 HTTP를 위한 URL을 사용하여 WWW서버로부터 원하는 하이퍼텍스트 문서를 액세스하여 가져 온다. HTTP는 TCP/IP보다 하이레벨 프로토콜로서 WWW의 요구조건에 맞게 설계되어 있다. HTTP는 브라우저의 요청을 웹 서버에 전달하고 웹 서버로부터의 페이지를 요청 브라우저 또는 클라이언트에 전송하는데 사용된다. WWW 브라우저는 클라이언트 컴퓨터 상에서 실행하기 위해 자바 애플릿과 같은 애플리케이션 프로그램을 WWW 서버로부터 가져 온다.
도 2는 무엇보다도 WWW 사이트, 다른 컨텐츠, 서비스를 제공하도록 동작하는 서버를 예시적으로 나타낸 것이다. WWW 사이트를 제공할 때, 서버(200)는 이러한 처리를 수행하기 위해 요청 장치에서 실행되는 WWW 브라우저 애플리케이션 프로그램에 WWW 페이지를 전송한다. 예를 들어, 서버(200)는 어드레스, 전화번호, 과금정보, 신용카드번호 등의 사용자 관련 정보를 받을 수 있는 페이지 및 폼을 전송한다. 또한, 서버(200)는 고객이 WWW 사이트에 참가하도록 하는 WWW 페이지를 요청 장치에 전달할 수 있다. 상기 처리는 인터넷, WAN/LAN(100) 또는 다른 통신망을 통해 발생된다.
서버(200)는 도 2에 도시된 것보다 많은 구성요소를 포함할 수 있다. 그러나, 도시된 구성요소는 본 발명의 실시를 위한 환경을 도시적으로 나타내는데 충분하다. 도 2에 도시된 바와 같이, 서버(200)는 네트워크 인터페이스 장치(210)를 통해 WAN/LAN(100) 또는 다른 통신망에 연결된다. 네트워크 인터페이스 장치(210)는 서버(200)를 WAN/LAN(100)에 연결하는데 필요한 회로를 포함하고, TCP/IP 프로토콜을 포함하는 여러 통신 프로토콜과 함께 사용될 수 있도록 구성된다. 보통 네트워크 인터페이스 장치(210)는 서버(200) 내에 포함된 카드이다.
서버(200)는 또한 처리장치(212), 비디오 디스플레이 어댑터(214), 대용량 메모리를 포함하고, 모두 버스(222)를 통해 연결되어 있다. 대용량 메모리는 일반적으로 RAM(216), ROM(232) 및 하나 이상의 영구적 대용량 저장장치를 포함한다. 영구적 대용량 저장장치로는 하드 디스크 드라이브(228), 테이프 드라이브(미도시), CD-ROM/DVD-ROM 드라이브의 광 드라이브(226), 플로피 디스크 드라이브(미도시) 등이 있다. 대용량 메모리는 서버(200)의 동작을 제어하는 운영체제(220)를 저장하고 있다. 이러한 운영체제로는 유닉스, 리눅스 또는 마이크로소프트의 윈도우 NT 등과 같은 범용 서버 운영체제가 있다. 또한, 기본적인 입출력 시스템(바이오스)(218)이 서버(200)의 낮은 레벨의 동작을 제어하는데 제공된다.
상기 대용량 메모리는 다른 종류의 컴퓨터 판독 매체 즉 컴퓨터 저장 매체가 될 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독 명령어, 데이터 구조, 프로그램 모듈 기타 데이터 등의 정보를 저장하기 위한 방법이나 기술로 실현된 휘발성 및 비휘발성, 제거가능 및 제거불능 매체를 포함한다. 컴퓨터 저장 매체의 예로는 RAM, ROM, EEPROM, 플래시 메모리 또는 다른 메모리 기술, CD-ROM, DVD 또는 광 저장장치, 마그네틱 카세트, 마그네틱 테이프, 마그네틱 디스크 저장장치 또는 다른 마그네틱 저장장치 등이 있으며, 이실행 매체들이 원하는 정보를 저장하는데 사용되고 컴퓨팅 장치에 의해 액세스될 수 있다.
대용량 메모리는 또한 WWW 사이트를 제공하기 위한 프로그램 코드 및 데이터를 저장할 수 있다. 특히, 대용량 메모리는 WWW 서버 애플리케이션 프로그램(230) 및 프로그램(234)을 포함하는 애플리케이션을 저장할 수 있다. WWW 서버 애플리케이션 프로그램(230)은 컴퓨터 실행 명령어를 포함하고, 이 명령어가 서버에 의해 실행될 때 상기 로직 수행을 포함하여 WWW 브라우저 디스플레이를 발생시킨다. 서버(200)는 자바 가상 머신, 이메일을 송수신하는 SMTP 핸들러 애플리케이션, HTTP 요청을 수신 및 관리하는 HTTP 핸들러 애플리케이션, 클라이언트 컴퓨터에서 실행되는 WWW 브라우저로 전송하는 자바 애플릿, 보안 접속을 관리하는 HTTPS 핸들러 애플리케이션을 포함한다. HTTPS 핸들러 애플리케이션은 신용카드정보 등 중요 정보를 보안 방식으로 송수신하기 위해 외부 보안 애플리케이션과 통신하는데 사용된다.
서버(200)는 또한 도 2에 도시되지 않은 마우스, 키보드, 스캐너, 기타 입력장치 등의 외부장치와 통신하기 위한 입/출력 인터페이스(224)를 포함한다. 마찬가지로, 서버(200)는 광 드라이브(226) 및 하드디스크 드라이브(228)과 같은 대용량 저장부분을 더 포함한다. 하드디스크 드라이브(228)는 서버(200)에서 애플리케이션 프로그램, 데이터베이스, WWW 서버 애플리케이션 프로그램(230)에 의해 사용되는 프로그램 데이터를 저장하는데 사용된다. 예를 들어, 고객 데이터베이스, 제품 데이터베이스, 이미지 데이터베이스 및 관련 데이터베이스가 저장될 수 있다.
도 3은 클라이언트 컴퓨터(300)의 여러 구성요소를 도시하고 있다. 클라이언트 컴퓨터(300)는 도 3에 도시된 것 보다 더 많은 구성요소를 포함할 수 있다. 그러나, 본 발명의 실시예를 설명하는데 종래 구성요소를 도시할 필요는 없다. 도 3에 도시된 바와 같이, 클라이언트 컴퓨터(300)는 LAN 또는 WAN에 연결하거나 LAN 또는 WAN에 원격으로 연결하기 위한 네트워크 인터페이스 장치(302)를 포함한다.네트워크 인터페이스 장치(302)는 그러한 연결에 필요한 회로를 포함하고, TCP/IP 프로토콜을 포함하는 다양한 통신 프로토콜, 연결되는 LAN 또는 WAN의 특수한 네트워크 환경, 특수한 종류의 결합 매체와 사용될 수 있도록 구성된다. 네트워크 인터페이스 장치(302)는 또한 PPP(point-to-point protocol) 또는 SLIP(serial line internet protocol)을 통해 인터넷에 연결할 수 있다.
클라이언트 컴퓨터(300)는 바이오스(326), 처리장치(306), 비디오 디스플레이 어댑터(308) 및 메모리를 포함한다. 메모리는 일반적으로 RAM(310), ROM(304) 및 디스크 드라이브와 같은 영구 대용량 저장장치를 포함한다. 메모리는 클라이언트 컴퓨터(300)의 동작을 제어하는 운영체제(312) 및 프로그램(334)을 저장한다. 메모리는 또한 WWW를 액세스하기 위해 넷스케이프의 NAVIGATOR 또는 마이크로소프트의 인터넷 익스플러와 같은 WWW 브라우저를 포함한다. 이러한 구성요소는 컴퓨터 판독 매체에 저장되어 컴퓨터 판독 매체와 연관된 드라이브 메커니즘(플로피 디스크 드라이브(미도시), CD-ROM/DVD-ROM 드라이브 등의 광 드라이브(316), 하드디스크 드라이브(318) 등)을 사용하여 클라이언트 컴퓨터(300)의 메모리에 로딩된다. 입/출력 인터페이스(320)는 마우스, 키보드 또는 다른 입력장치로부터 입력을 수신하는데 제공된다. 메모리, 네트워크 인터페이스 장치(302), 비디오 디스플레이 어댑터(308) 및 입/출력 인터페이스(320)는 모두 버스(322)를 통해 처리장치(306)에 연결되어 있다. 다른 주변장치 또한 유사한 방법으로 처리장치(306)에 연결될 수 있다.
상기 논의로부터 알 수 있는 것처럼, 본 발명의 특징은 서버(200) 및 클라이언트 컴퓨터(300)에서 또는 그들의 결합체 상에서 구현된다. 예를 들어, 프로그래밍 단계가 프로그램(334) 및/또는 프로그램(234)에 포함될 수 있다.
본 명세서에서, 클라이언트 및 서버에 대해 언급되어 있다. 적절하다면, 클라이언트는 도 3의 클라이언트 컴퓨터(300)와 같은 한 개 이상의 전자장치 상에서 실행되는 프로세스 또는 프로세스의 집합이라고 정의될 수 있다. 그러나 클라이언트가 클라이언트 컴퓨터 상에서 실행되는 것에 한정되지 않는다. 그것은 WWW 서버(200)와 같은 서버 상에서 실행되거나 여러 전자장치 사이에서 분포될 수 있다. 여기서, 각각의 장치는 클라이언트 애플리케이션을 함께 구성하는 하나 이상의 프로세스 또는 루틴을 포함할 수 있다. 적절하다면, 클라이언트는 상기 논의에 더하여 또는 대신하여 하나 이상의 클라이언트 프로세스가 실행되는 장치 예를 들어, 클라이언트 컴퓨터(300) 또는 WWW 서버(200)라고 정의될 수 있다.
유사하게, 서버는 WWW 서버(200)와 같은 한 개 이상의 전자장치 상에서 실행되는 프로세스 또는 프로세스의 집합이라고 정의될 수 있다. 클라이언트와 마찬가지로, 서버는 서버 컴퓨터 상에서 실행되는 것에 한정되지는 않는다. 도 3의 클라이언트 컴퓨터(300)와 같이 보통 클라이언트 컴퓨터라고 간주되는 장치 상에서도 실행될 수 있으며, 다양한 전자장치 사이에 분포될 수 있다. 여기서, 각각의 장치는 서버 애플리케이션을 함께 구성하는 하나 이상의 프로세스 또는 루틴을 포함할 수 있다. 적절하다면, 서버는 상기 논의에 더하여 또는 대신하여 하나 이상의 서버프로세스가 실행되는 장치 예를 들어, 서버(200) 또는 클라이언트 컴퓨터(300)라고 정의될 수 있다.
암호화 및 해독
본 명세서에서, 암호화 및 해독에 대해 언급되고 있다. 적절하다면, 암호화 및 해독을 수행하는데 사용되는 알고리즘에 대한 각각의 언급은 애플리케이션, 애플리케이션의 컴포넌트 및 데이터의 원래의 바이트(플레인텍스트(plaintext)라고도 함)를 획득하는 것을 어렵게 만드는 알고리즘 또는 기술을 포함하는 것으로 정의될 수 있다. 본 명세서를 통해 암호화 및 해독을 수행하는데 사용되는 알고리즘에 대한 각각의 언급에 대해서, 다른 암호화 알고리즘을 사용하여 본 발명의 다른 실시예가 실현될 수 있다는 것을 알아야 한다. 암호화 알고리즘에는 Rjindael이라는 AES(Advanced Encryption Standard), RSA Labs 사(이하, RSA)의 RC6, IBM의 MARS, TwoFish, Serpent, CAST-256, IDEA(International Data Encryption Algorithm), DES(Data Encrytion Standard), Triple DES, DES-EDE2, DES-EDE3, DESX, DES-XEX3, RC2, RC5, Blowfish, Diamon2, TEA, SAFER, 3-WAY, GOST, SHARK, CAST-128, Square, Skipjack, Panama, ARC4, SEAL, WAKE, Sapphire II, BlumBlumShub, RSA, DSA, E1Gamal, Nyberg-Rueppel(NR), BlumGoldwsser, Rabin, Rabin-Williams(RW), LUC, LUCELG, ECDSA, ECDSA, ECIES, ECDHC, ECMQVC 및 기타 다른 암호화 알고리즘이 있다. 이러한 암호화 알고리즘은 적절하다면 암호 블록 체이닝 모드(cipher block chaining mode), 암호 피드백 모드(cipher feedback mode), CBC 암호텍스트 스틸링(ciphertext stealing, CTS), CFB, OFB, 카운터 모드 및 다른 블록 모드를 사용할 수 있다. 본 발명의 실시예에서 사용될 수 있는 다른 암호화 기술의 예로는 소스 코드를 바이너리 코드로 컴파일하거나 데이터를 전송하는데 독점권이 있는 데이터 구조를 사용하는 것이다. 본 발명의 일실시예에서, 오픈 소스 클래스 라이브러리 암호화 기술인 Crypto++v4.x(이 소스 코드가 참조문헌에 들어 있다)가 애플리케이션이나 데이터를 암호화하거나 해독하는데 사용될 수 있다. 본 발명의 사상 또는 범위를 벗어나지 않고 모두 소스가 공개되어 있고 상업적이며 독점적인 다른 암호화 및 해독 라이브러리가 사용될 수 있다.
본 발명의 일실시예에서, 대칭적 암호화 및 해독을 위해 128 bit 키 및 AES Rjindael 암호가 암호 블록 체이닝 모드에서 사용될 수 있다. 랜덤 초기화 벡터(IVs)가 플레인텍스트로 전송된다. 클라이언트 상에 저장된 패스워드를 보호하기 위한 실시예에서, 암호 피드백 모드에서의 256 비트 Rjindael이 랜덤 IV와 함께 사용된다. 본 발명의 다른 실시예에서, 다른 대칭적 암호화 알고리즘(이전 단락에서 나열된 것)이 대칭적 암호화 및 해독을 위해 사용될 수 있다.
본 발명의 실시예에서, 비대칭 암호화를 위해, 1024 비트 키가 RSA와 함께 사용될 수 있다. 이 키는 RSA에 의해 제공되는 "OAEP"(SHA1 포함) 또는 다른 적절한 포맷으로 포맷될 수 있다. 예를 들어, RSA는 티켓 내의 데이터를 해독하여 티켓의 다른 부분을 해독하는데 사용될 수 있는 AES 키를 복원하기 위해, 티켓(상세히 후술함)과 함께 사용될 수 있다. SHA1은 보안 해시(hash) 알고리즘 1을 나타낸다. SHA1은 임의의 길이 스트링으로부터 160 비트 해시값을 생성하는 암호화 해시 알고리즘이다. 본 발명의 다른 실시예에서, 다른 프라이빗 키/퍼블릭 키(private key/public key) 암호화 알고리즘(상기 나열된 것)이 동일하거나 다른 키 사이즈로 사용될 수 있다.
본 발명의 다른 실시예에서, 서버 및/또는 클라이언트는 128 비트 HMAC(해시된 메시지 인증 코드) 및/또는 1024 비트 RSA 디지털 서명을 채용하여, 티켓의 컨텐츠가 변경되지 않음을 인증하거나 클라이언트 및/또는 서버를 인증할 수 있게 한다. 128 비트 HMAC는 SHA1을 사용하여 데이터 요약(digest)을 생성한다. 예를 들어, 티켓의 컨텐츠는 SHA1과 같은 단방향 해싱 함수(one way hashing function)에 들어가 2자리수 블록을 생성한다. 해싱 함수는 무엇이 입력되든지 고정 길이의 비트로 해시되도록 되어 있다. 예를 들어, 해싱 함수는 4바이트 데이터 상에서 동작하든지 바이블의 모든 텍스트 상에서 동작하든지 간에 160 비트를 반환할 수 있다. RSA의 PKCS #1 v2.0 또는 다른 적절한 포맷에서 기술된 것처럼 RSA 서명은 생성되거나 포맷될 수 있다.
MIT의 Kerberos 공개 프로토콜(이것은 참조문헌에 들어 있다)과 다소 유사한 방법으로 티켓을 보호하기 위해 암호화가 사용될 수 있다. 티켓 보호와 클라이언트/서버를 인증하기 위해 사용되는 본 발명의 실시예를 설명한다.
1024 비트 RSA 및 128 비트 Rjindael 대칭 세션 키를 사용하여 키가 배포된다. 1024 비트 RSA 키는 128 비트 Rjindael 대칭 키를 암호화하기 위해 사용될 수 있다. 128 비트 Rjindael 키는 메시지 본체를 암호화하는데 사용될 수 있다. 다음, 128 비트 Rjindael 키는 메시지 본체를 해독하는데 사용될 수 있다. 티켓은 MIT의 Kerberos 공개 프로토콜에서 기술된 방법과 유사하게 어느 서버에서 다른 서버로 전송되는 다른 암호화된 128 비트 Rjindael 세션 키를 포함할 수 있다.
암호화되거나 해독된 메시지 또는 티켓은 RCP/IP, UDP. SSL. IPSEC 또는 다른 네트워킹 프로토콜을 이용하여 전송될 수 있다. 컨텐츠 서버로 전송되거나 컨텐츠 서버로부터 전송된 컨텐츠는 암호화되거나 해독된다. 어느 난수 발생기에 의해 난수가 발생될 수 있다. 사용될 수 있는 난수 발생기의 예로는 워싱턴 레드몬드 소재 마이크로소프트 사에서 생산되는 CryptoAPI가 있다.
상기 주어진 키 사이즈는 예시적이라는 것을 알아야 한다. 본 발명의 다른 실시예에서, 데이터를 암호화하거나 서버, 클라이언트 또는 사용자를 인증할 때 상기 키 사이즈를 제외한 키 사이즈 또는 이에 부가한 키 사이즈가 사용될 수 있다.
본 발명의 다양한 실시예는 컴퓨팅 시스템 상에서 실행되는 컴퓨터 실행 단계 또는 프로그램의 시퀀스로서 또는 컴퓨팅 시스템 내의 상호 연결된 머신 로직 회로나 회로 모듈로서 구현될 수 있다. 본 발명을 구현하는 컴퓨팅 시스템의 성능요건에 따른 선택이 구현에 있어서의 관건이다. 본 명세서를 볼 때, 개시된 다양한 실시예의 기능 및 동작이 본 발명의 기술적 사상 및 범위를 벗어나지 않고 소프트웨어, 펌웨어, 특수 목적용 디지털 로직 또는 그 결합을 통해 구현될 수 있다.
상기 상세한 설명, 실시예 및 데이터를 통해 본 발명의 제조 및 결합 사용에 대한 완벽한 설명을 얻을 수 있다. 본 발명의 사상 및 범위를 벗어나지 않는 한도 내에서 본 발명의 많은 실시예가 가능하므로, 본 발명은 이하 첨부된 청구범위에 기재되어 있다.

Claims (52)

  1. 애플리케이션에 관한 리소스를 프리로딩하는 방법에 있어서,
    상기 애플리케이션이 리소스들을 필요로 하기 전에 클라이언트 상에 프리로드할 리소스를 결정하는 단계와,
    상기 클라이언트에 상기 리소스들을 프리로딩하는 단계를 포함하며,
    상기 리소스들이 서버 상에 위치될 때, 상기 서버로부터 상기 리소스들을 다운로드하고 상기 리소스들을 상기 클라이언트 상에 국부적으로 저장하고, 상기 리소스들이 상기 클라이언트 상에 저장된 때, 상기 리소스들을 국부적으로 획득하며,
    여기서 상기 애플리케이션은 상기 애플리케이션에 관련된 상기 리소스들의 서브셋으로 실행되도록 구성되는 것을 특징으로 하는 방법.
  2. 제 1항에 있어서, 프리로드할 상기 리소스들을 결정하는 단계는 상기 애플리케이션에 공급될 상기 리소스들을 포함하는 리소스 리스트를 이용하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  3. 제 2항에 있어서, 상기 애플리케이션에 공급될 상기 적어도 하나의 리소스들을 포함하는 상기 리소스 리스트를 이용하는 단계는 상기 리소스들의 리스트의 우선순위를 정하는 단계를 더 포함하며, 여기서 리소스들이 프리로드될 순서에 따라서 상기 리스트의 우선순위가 정해지는 것을 특징으로 하는 방법.
  4. 제 3항에 있어서, 상기 애플리케이션이 실행되는 동안, 상기 리소스 리스트 내의 리소스들의 우선권을 동적으로 변화시키는 단계를 더 포함하는 것을 특징으로 하는 방법.
  5. 제 1항에 있어서, 상기 애플리케이션이 리소스들을 필요로 하기 전에 프리로드할 리소스를 결정하는 단계는 상기 클라이언트로부터 애플리케이션 힌트를 수신하는 단계와 상기 애플리케이션 힌트에 근거하여 프리로드될 상기 리소스들의 리소스 리스트를 발생하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  6. 제 5항에 있어서, 상기 애플리케이션 힌트에 근거하여 프리로드될 상기 리소스들의 리스트를 발생하는 단계는 상기 애플리케이션의 현재 상태를 결정하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  7. 제 6항에 있어서, 상기 애플리케이션 힌트를 이용하는 단계는 애플리케이션 리소스 요청 상태들 및 그 상태들 간의 변화를 저장하는 단계와 예측 그래프를 생성하기 위하여 상기 애플리케이션 리소스 요청 상태들 및 그 상태들 간의 변화를 분석하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  8. 제 7항에 있어서, 상기 리소스 리스트를 발생하기 위해 상기 예측 그래프를이용하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  9. 제 5항에 있어서, 상기 애플리케이션이 리소스들을 필요로 하기 전에 프리로드할 리소스를 결정하는 단계는 상기 리소스들에 관련된 정보 및 상기 애플리케이션 힌트들을 저장하는 단계와 상기 리소스들이 필요하게 될 가능성을 예측하는 예측 그래프 이용에 근거하여 필요하게 될 상기 리소스들을 예측하는 예측기를 이용하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  10. 제 9항에 있어서, 상기 예측 그래프를 이용하는 단계는 상기 예측 그래프 내에 노드들의 에지들을 가중하는(weighting) 단계를 더 포함하는 것을 특징으로 하는 방법.
  11. 제 9항에 있어서, 국부적으로 사용 가능한 리소스들을 결정하는 단계와 상기 예측된 리소스 리스트로부터 상기 결정된 리소스들을 제거하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  12. 제 9항에 있어서, 상기 예측기에 의해 이루어진 최근의 예측들에 의해 참조되는 상기 리소스에 근거하여 이미 캐시된 리소스에 관련된 라이프타임을 조정하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  13. 제 5항에 있어서, 우선권의 변화에 근거하여 상기 프리로딩을 인터럽트하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  14. 제 5항에 있어서, 상기 리소스 리스트는 실행 애플리케이션 또는 비실행 애플리케이션에 의해 요구될 수 있는 리소스들을 포함하는 것을 특징으로 하는 방법.
  15. 제 5항에 있어서, 상기 리소스들을 프리로딩하는 단계는 상기 애플리케이션이 실행되는 때 상기 리소스들을 프리로딩하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  16. 제 5항에 있어서, 상기 리소스들을 프리로딩하는 단계는 상기 애플리케이션이 비실행 상태에 있을 때 상기 리소스들을 프리로딩하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  17. 제 5항에 있어서, 상기 리소스들을 프리로딩하는 단계는 상기 애플리케이션에 대해 인에이블되거나 디스에이블되는 것을 특징으로 하는 방법.
  18. 제 17항에 있어서, 애플리케이션에 관련된 상기 리소스들을 프리로드하기 위한 우선권을 할당하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  19. 제 7항에 있어서, 상기 예측 그래프를 생성하기 위하여 상기 애플리케이션 리소스 요청 상태들 및 그 상태들 간의 변화를 분석하는 단계는 세션 리스트들을 처리하여 상기 예측 그래프에 결합하기 위하여 알고리즘에서 사용되는 파라미터들을 조정하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  20. 제 19항에 있어서, 상기 파라미터들은
    InfluenceOfElapsedTimeInPredictionWeight,
    InfluenceOfDistanceFromStepOffPointWhenConsideringRejoinNodes 및
    InfluenceOfNumberOfSequenceMismatchesWhenConsideringRejoinNodes으로 구성된 세트에서 선택되는 것을 특징으로 하는 방법.
  21. 제 19항에 있어서, 상기 파라미터들을 조정하는 단계는 상기 파라미터들을 자동적으로 조정하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  22. 제 19항에 있어서, 상기 파라미터들을 조정하는 단계는 상기 파라미터들을 수동적으로 조정하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  23. 제 19항에 있어서, 수행 데이터를 발생하는 단계와 상기 수행 데이터에 근거하여 상기 예측 그래프의 유효성을 결정하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  24. 제 23항에 있어서, 상기 수행 데이터는
    NumberOfCacheMisses, NumberOfFailedPredictions,
    NumberOfCacheHitsInPredictions,
    NumberOfCacheHitsNotInCurrentPredictions,
    HighestNumberOfRetriesToFindARejoinNode 및
    AverageNumberOfRetriesToFindARejoinNode 중 적어도 하나를 포함하는 것을 특징으로 하는 방법.
  25. 제 23항에 있어서, 상기 수행 데이터에 따라 상기 파라미터들을 조정하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  26. 애플리케이션을 위한 리소스를 클라이언트 상에 프리로딩하는 시스템에 있어서,
    상기 클라이언트와 통신하도록 구성된 네트워크 접속부와, 상기 애플리케이션에 관련된 리소스들을 저장하도록 구성된 메모리와, 리소스를 상기 클라이언트에 제공하는 것을 포함하는 동작들을 수행하도록 구성된 프로세서를 포함하는 서버와;
    상기 서버와 통신하도록 구성된 네트워크 접속부와, 상기 애플리케이션에 관련된 리소스들을 저장하도록 구성된 메모리와, 상기 애플리케이션에 관련된 리소스들을 수신하도록 배치된 프로세서를 포함하는 클라이언트와;
    상기 애플리케이션에 관련된 상기 리소스들의 서브셋으로 실행하도록 구성된 애플리케이션과;
    상기 애플리케이션이 상기 리소스들을 필요로 하기 전에 상기 클라이언트 상에 프리로드할 리소스를 결정하고, 상기 클라이언트에 상기 리소스들 - 상기 리소스들이 서버 상에 위치될 때 상기 클라이언트에 상기 리소스들을 제공하도록 상기 서버를 이용하고, 상기 리소스들이 상기 클라이언트 상에 위치될 때 상기 클라이언트가 상기 리소스들을 국부적으로 획득하도록 명령한다 - 을 프리로딩하는 동작을 수행하도록 구성된 프리로더를 포함하는 것을 특징으로 하는 시스템.
  27. 제 26항에 있어서, 프리로드할 상기 리소스를 결정하는 동작은 상기 애플리케이션에 공급될 상기 리소스들을 포함하는 리소스 리스트를 이용하는 동작을 더 포함하는 것을 특징으로 하는 시스템.
  28. 제 27항에 있어서, 상기 애플리케이션에 공급될 상기 적어도 하나의 리소스를 포함하는 상기 리소스 리스트를 이용하는 동작은 상기 리소스들의 리스트의 우선순위를 정하는 동작을 더 포함하며, 여기서 상기 리스트는 상기 리소스가 프리로드될 순서에 따라 우선순위가 정해지는 것을 특징으로 하는 시스템.
  29. 제 28항에 있어서, 상기 애플리케이션이 실행하는 동안 상기 리소스 리스트 내의 상기 리소스들의 상기 우선권을 동적으로 변화시키는 동작을 더 포함하는 것을 특징으로 하는 시스템.
  30. 제 26항에 있어서, 애플리케이션이 리소스들을 필요로 하기 전에 프리로드할 리소스를 결정하는 동작은 상기 클라이언트로부터 애플리케이션 힌트를 수신하는 동작과 상기 애플리케이션 힌트에 근거하여 프리로드될 상기 리소스들의 리소스 리스트를 발생하는 동작을 더 포함하는 것을 특징으로 하는 시스템.
  31. 제 30항에 있어서, 상기 애플리케이션 힌트에 근거하여 프리로드될 상기 리소스들의 상기 리스트를 발생하는 동작은 상기 애플리케이션의 현재 상태를 결정하는 동작을 더 포함하는 것을 특징으로 하는 시스템.
  32. 제 31항에 있어서, 상기 애플리케이션 힌트를 이용하는 동작은 상기 애플리케이션 현재 상태를 저장하는 동작 및 저장된 현재 상태들에 근거하여 예측 그래프를 생성하는 동작을 더 포함하는 것을 특징으로 하는 시스템.
  33. 제 32항에 있어서, 상기 리소스 리스트를 발생하기 위해 상기 예측 그래프를 이용하는 예측기를 사용하는 동작을 더 포함하는 것을 특징으로 하는 시스템.
  34. 제 33항에 있어서, 상기 예측기는 상기 예측 그래프 내에 노드들의 에지들을 가중(weight)하여 상기 노드들이 디렉트(direct) 되도록 추가적으로 구성된 것을특징으로 하는 시스템.
  35. 제 33항에 있어서, 국부적으로 사용 가능한 리소스들을 결정하고 상기 리소스 리스트로부터 상기 결정된 리소스들을 제거하는 예측기를 더 포함하는 것을 특징으로 하는 시스템.
  36. 제 33항에 있어서, 상기 예측 그래프 이용에 근거하여 상기 리소스 리스트를 조정하는 상기 예측기를 더 포함하는 것을 특징으로 하는 시스템.
  37. 제 30항에 있어서, 우선권의 변화에 근거하여 상기 프리로딩을 인터럽트하는 동작을 더 포함하는 것을 특징으로 하는 시스템.
  38. 제 30항에 있어서, 상기 리소스 리스트는 실행 애플리케이션 또는 비실행 애플리케이션에 의해 요구될 리소스들을 포함하는 것을 특징으로 하는 시스템.
  39. 제 30항에 있어서, 상기 리소스들을 프리로딩하는 동작은 상기 애플리케이션이 실행되는 때 상기 리소스들을 프리로딩하는 동작을 포함하는 것을 특징으로 하는 시스템.
  40. 제 30항에 있어서, 상기 리소스들을 프리로딩하는 동작은 상기 애플리케이션이 비실행 상태에 있을 때 상기 리소스들을 프리로딩하는 동작을 포함하는 것을 특징으로 하는 시스템.
  41. 제 30항에 있어서, 상기 리소스들을 프리로딩하는 동작은 상기 애플리케이션에 대해 인에이블되거나 디스에이블되는 것을 특징으로 하는 시스템.
  42. 제 41항에 있어서, 애플리케이션들에 관련된 상기 리소스들을 프리로드하기 위한 우선권을 할당하는 단계를 더 포함하는 것을 특징으로 하는 시스템.
  43. 제 26항에 있어서, 상기 프리로더는 상기 서버 상에 위치되는 것을 특징으로 하는 시스템.
  44. 제 26항에 있어서, 상기 프리로더는 상기 클라이언트 상에 위치되는 것을 특징으로 하는 시스템.
  45. 제 26항에 있어서, 상기 애플리케이션이 상기 리소스들을 필요로 하기 전에 프리로드할 리소스를 결정하는 동작은 세션 리스트들을 발생하는 동작 및 예측 그래프를 발생하기 위하여 상기 세션 리스트들을 이용하는 동작을 더 포함하는 것을 특징으로 하는 시스템.
  46. 제 45항에 있어서, 상기 예측 그래프를 발생하기 위하여 상기 세션 리스트들을 이용하는 동작은 상기 세션 리스트들을 상기 예측 그래프 내로 결합하기 위하여 파라미터들을 조정하는 동작을 더 포함하는 것을 특징으로 하는 시스템.
  47. 제 43항에 있어서, 상기 파라미터들을 조정하고 상기 파라미터들에 근거하여 상기 예측기, 상기 애플리케이션 및 상기 프리로더를 시뮬레이트하도록 구성된 분석기를 더 포함하는 것을 특징으로 하는 시스템.
  48. 제 44항에 있어서, 상기 분석기는 상기 시뮬레이션 결과가 소정의 수용가능성 레벨에 이를 때까지 상기 파라미터들을 반복하여 조정하도록 추가적으로 구성되는 것을 특징으로 하는 시스템.
  49. 제 47항에 있어서, 상기 분석기는 상기 시스템의 상기 유효성을 결정하는데 이용되는 수행 데이터를 발생하도록 추가적으로 구성되는 것을 특징으로 하는 시스템.
  50. 제 49항에 있어서, 상기 수행 데이터는
    NumberOfCacheMisses, NumberOfFailedPredictions,
    NumberOfCacheHitsInPredictions,
    NumberOfCacheHitsNotInCurrentPredictions,
    HighestNumberOfRetriesToFindARejoinNode 및
    AverageNumberOfRetriesToFindARejoinNode 중 적어도 하나를 포함하는 것을 특징으로 하는 시스템.
  51. 제 49항에 있어서, 상기 분석기는 상기 수행 데이터에 따라 상기 파라미터들을 조정하도록 추가적으로 구성되는 것을 특징으로 하는 시스템.
  52. 애플리케이션에 관한 리소스들을 프리로딩하는 시스템에서,
    상기 애플리케이션이 리소스들을 필요로 하기 전에 클라이언트 상에 프리로드할 리소스를 결정하기 위한 수단과;
    상기 클라이언트에 상기 리소스들을 프리로딩하기 위한 수단을 포함하고,
    상기 리소스들이 서버 상에 위치될 때 상기 서버로부터 상기 리소스들을 다운로드하기 위한 수단 및 상기 리소스들을 상기 클라이언트 상에 국부적으로 저장하기 위한 수단과, 상기 리소스들이 상기 클라이언트 상에 저장된 때 상기 리소스들을 국부적으로 획득하기 위한 수단을 포함하며, 여기서 상기 애플리케이션은 상기 애플리케이션에 관련된 상기 리소스들의 서브셋으로 실행하도록 구성되는 것을 특징으로 하는 시스템.
KR1020047009173A 2001-12-12 2002-12-12 리소스들을 프리로딩 하기 위한 방법 및 시스템 KR101071960B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US34107901P 2001-12-12 2001-12-12
US60/341,079 2001-12-12
PCT/US2002/040137 WO2003054696A1 (en) 2001-12-12 2002-12-12 Method and system for preloading resources

Publications (2)

Publication Number Publication Date
KR20040096501A true KR20040096501A (ko) 2004-11-16
KR101071960B1 KR101071960B1 (ko) 2011-10-11

Family

ID=23336156

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020047009173A KR101071960B1 (ko) 2001-12-12 2002-12-12 리소스들을 프리로딩 하기 위한 방법 및 시스템

Country Status (5)

Country Link
US (4) US7580972B2 (ko)
EP (1) EP1483663A4 (ko)
KR (1) KR101071960B1 (ko)
AU (1) AU2002357858A1 (ko)
WO (1) WO2003054696A1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100834432B1 (ko) * 2002-12-31 2008-06-04 인터내셔널 비지네스 머신즈 코포레이션 다중시스템 클러스터에서의 리소스 경합을 관리하는 방법 및 장치
KR20150108662A (ko) * 2014-03-18 2015-09-30 연세대학교 산학협력단 데이터 프리로드 관리 방법 및 그 단말
KR20180030105A (ko) * 2015-08-06 2018-03-21 삼성전자주식회사 컨텍스트 데이터를 기반으로 하는 어플리케이션 카드들
WO2020171427A1 (ko) * 2019-02-19 2020-08-27 삼성전자 주식회사 어플리케이션을 프리페치하는 전자 장치 및 방법

Families Citing this family (327)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7290288B2 (en) 1997-06-11 2007-10-30 Prism Technologies, L.L.C. Method and system for controlling access, by an authentication server, to protected computer resources provided via an internet protocol network
US7032023B1 (en) * 2000-05-16 2006-04-18 America Online, Inc. Throttling electronic communications from one or more senders
JP2002236808A (ja) * 2001-02-07 2002-08-23 Sony Corp 情報処理装置および方法、プログラム格納媒体、並びにプログラム
US7412720B1 (en) 2001-11-02 2008-08-12 Bea Systems, Inc. Delegated authentication using a generic application-layer network protocol
US7580972B2 (en) 2001-12-12 2009-08-25 Valve Corporation Method and system for controlling bandwidth on client and server
US8108687B2 (en) 2001-12-12 2012-01-31 Valve Corporation Method and system for granting access to system and content
EP1326476B1 (en) * 2002-01-08 2013-03-13 Alcatel Lucent Network, network-unit, method, and processor program product for exchanging packet signals via pooled connection
US7246230B2 (en) * 2002-01-29 2007-07-17 Bea Systems, Inc. Single sign-on over the internet using public-key cryptography
US7228417B2 (en) * 2002-02-26 2007-06-05 America Online, Inc. Simple secure login with multiple-authentication providers
US20050108322A1 (en) * 2002-03-11 2005-05-19 Robert Kline System and method for pushing data to a mobile device
US7143435B1 (en) * 2002-07-31 2006-11-28 Cisco Technology, Inc. Method and apparatus for registering auto-configured network addresses based on connection authentication
WO2004036576A1 (en) * 2002-10-17 2004-04-29 Samsung Electronics Co., Ltd. Data storage medium having information for controlling buffered state of markup document, and method and apparatus for reproducing data from the data storage medium
FR2847401A1 (fr) * 2002-11-14 2004-05-21 France Telecom Procede d'acces a un service avec authentification rapide et anonymat revocable et systeme d'ouverture et de maintien de session
US6871924B2 (en) * 2002-12-05 2005-03-29 Canon U.S.A., Inc. Multi-mode direct print adapter
US9138644B2 (en) 2002-12-10 2015-09-22 Sony Computer Entertainment America Llc System and method for accelerated machine switching
US20050027574A1 (en) * 2003-01-07 2005-02-03 Purusharth Agrawal Real-time activity intelligence system and method
US20050071477A1 (en) * 2003-03-27 2005-03-31 Microsoft Corporation Providing information links via a network
US7846023B2 (en) 2003-03-27 2010-12-07 Microsoft Corporation Application-centric user interface techniques
US7454569B2 (en) * 2003-06-25 2008-11-18 Commvault Systems, Inc. Hierarchical system and method for performing storage operations in a computer network
US7490237B1 (en) * 2003-06-27 2009-02-10 Microsoft Corporation Systems and methods for caching in authentication systems
WO2005011192A1 (ja) * 2003-07-11 2005-02-03 Nippon Telegraph & Telephone アドレスに基づく認証システム、その装置およびプログラム
US7092693B2 (en) * 2003-08-29 2006-08-15 Sony Corporation Ultra-wide band wireless / power-line communication system for delivering audio/video content
JP2005122704A (ja) * 2003-09-22 2005-05-12 Fujitsu Ltd プログラム
WO2005060575A2 (en) * 2003-12-10 2005-07-07 X1 Technologies, Inc. Performing operations in response to detecting a computer idle condition
US7447710B2 (en) * 2003-12-11 2008-11-04 Sybase, Inc. Database system providing self-tuned parallel database recovery
US7730137B1 (en) * 2003-12-22 2010-06-01 Aol Inc. Restricting the volume of outbound electronic messages originated by a single entity
US20050149562A1 (en) * 2003-12-31 2005-07-07 International Business Machines Corporation Method and system for managing data access requests utilizing storage meta data processing
US20050171961A1 (en) * 2004-01-30 2005-08-04 Microsoft Corporation Fingerprinting software applications
EP1723594B1 (en) * 2004-02-23 2017-11-29 Symantec International Token authentication system and method
US20070192606A1 (en) * 2004-03-08 2007-08-16 Yutaka Yasukura Electronic terminal device protection system
US20050254100A1 (en) * 2004-05-17 2005-11-17 Venali, Inc. Ticket exchange for combating fax spam
US20050259600A1 (en) * 2004-05-18 2005-11-24 Samsung Electronics Co., Ltd. Translation bridge between ethernet and 1394A local links for consumer electronics devices
US7725716B2 (en) * 2004-06-28 2010-05-25 Japan Communications, Inc. Methods and systems for encrypting, transmitting, and storing electronic information and files
US7760882B2 (en) * 2004-06-28 2010-07-20 Japan Communications, Inc. Systems and methods for mutual authentication of network nodes
US20060026268A1 (en) * 2004-06-28 2006-02-02 Sanda Frank S Systems and methods for enhancing and optimizing a user's experience on an electronic device
US7475252B2 (en) * 2004-08-12 2009-01-06 International Business Machines Corporation System, method and program to filter out login attempts by unauthorized entities
US20060064684A1 (en) * 2004-09-22 2006-03-23 Royer Robert J Jr Method, apparatus and system to accelerate launch performance through automated application pinning
US8234705B1 (en) * 2004-09-27 2012-07-31 Radix Holdings, Llc Contagion isolation and inoculation
US7711835B2 (en) 2004-09-30 2010-05-04 Citrix Systems, Inc. Method and apparatus for reducing disclosure of proprietary data in a networked environment
US8099482B2 (en) * 2004-10-01 2012-01-17 E-Cast Inc. Prioritized content download for an entertainment device
US20060075394A1 (en) * 2004-10-01 2006-04-06 Tatsuya Iwamoto Dynamic loading and unloading for processing unit
US7685589B2 (en) * 2004-10-14 2010-03-23 Microsoft Corporation File loading synchronization
EP1662405A1 (en) * 2004-11-30 2006-05-31 Alcatel Method of displaying data on a client computer
US7636783B2 (en) * 2004-12-06 2009-12-22 Microsoft Corporation Trial-before-purchase subscription game infrastructure for peer-peer networks
US8155306B2 (en) * 2004-12-09 2012-04-10 Intel Corporation Method and apparatus for increasing the speed of cryptographic processing
KR100670798B1 (ko) * 2004-12-17 2007-01-17 한국전자통신연구원 데이터베이스 캐시 시스템
GB0428484D0 (en) * 2004-12-30 2005-02-02 Ibm Method and apparatus for managing a cache in a group resource environment
GB0428482D0 (en) * 2004-12-30 2005-02-02 Ibm Method and apparatus for managing feedback in a group resource environment
GB0428487D0 (en) * 2004-12-30 2005-02-02 Ibm Method and apparatus for managing recommendations in a group resource environment
US7624208B2 (en) * 2005-01-14 2009-11-24 International Business Machines Corporation Method, system, and computer program for managing a queuing system
US20120021835A1 (en) * 2005-02-11 2012-01-26 Iprd Labs Llc Systems and methods for server based video gaming
US8819569B2 (en) 2005-02-18 2014-08-26 Zumobi, Inc Single-handed approach for navigation of application tiles using panning and zooming
US7853960B1 (en) * 2005-02-25 2010-12-14 Vmware, Inc. Efficient virtualization of input/output completions for a virtual device
US8111873B2 (en) * 2005-03-18 2012-02-07 Cognimatics Ab Method for tracking objects in a scene
US7640430B2 (en) * 2005-04-04 2009-12-29 Cisco Technology, Inc. System and method for achieving machine authentication without maintaining additional credentials
US7500010B2 (en) * 2005-04-07 2009-03-03 Jeffrey Paul Harrang Adaptive file delivery system and method
US7680038B1 (en) * 2005-04-25 2010-03-16 Electronic Arts, Inc. Dynamic bandwidth detection and response for online games
JP4550704B2 (ja) * 2005-09-20 2010-09-22 株式会社日立製作所 通信システム及び通信管理方法
US20070083849A1 (en) * 2005-10-12 2007-04-12 General Electric Company Auto-learning RIS/PACS worklists
US7657585B2 (en) * 2005-10-25 2010-02-02 Innternational Business Machines Corporation Automated process for identifying and delivering domain specific unstructured content for advanced business analysis
US20070110225A1 (en) * 2005-11-16 2007-05-17 Sub-Crypto Systems, Llc Method and apparatus for efficient encryption
US20070118653A1 (en) * 2005-11-22 2007-05-24 Sabre Inc. System, method, and computer program product for throttling client traffic
US20070266162A1 (en) * 2005-12-07 2007-11-15 Microsoft Corporation Session initiation protocol redirection for process recycling
US9768963B2 (en) 2005-12-09 2017-09-19 Citicorp Credit Services, Inc. (Usa) Methods and systems for secure user authentication
US7634652B2 (en) 2006-01-12 2009-12-15 Microsoft Corporation Management of streaming content
US7669222B2 (en) * 2006-01-17 2010-02-23 Microsoft Corporation Virtual tuner management
US7685306B2 (en) * 2006-01-20 2010-03-23 Microsoft Corporation Streaming content navigation
US8739230B2 (en) 2006-01-20 2014-05-27 Microsoft Corporation Manager/remote content architecture
US8087075B2 (en) * 2006-02-13 2011-12-27 Quest Software, Inc. Disconnected credential validation using pre-fetched service tickets
US20070203714A1 (en) * 2006-02-28 2007-08-30 Microsoft Corporation Purchasable Token Bandwidth Portioning
US7836212B2 (en) * 2006-07-20 2010-11-16 Oracle America, Inc. Reflecting bandwidth and priority in network attached storage I/O
US20080059619A1 (en) * 2006-08-31 2008-03-06 Microsoft Corporation Configuring a Perimeter Network
US7624153B2 (en) * 2006-09-15 2009-11-24 Microsoft Corporation Allocation of resources to deliver media content using a combination of static and dynamic resources
US8775656B2 (en) * 2006-10-10 2014-07-08 Microsoft Corporation Strategies for integrating plural modes of content delivery
US8855275B2 (en) * 2006-10-18 2014-10-07 Sony Online Entertainment Llc System and method for regulating overlapping media messages
US8312449B2 (en) * 2006-10-31 2012-11-13 International Business Machines Corporation Viral installation of operating systems in a network
US7844808B2 (en) * 2006-12-18 2010-11-30 Microsoft Corporation Computer compliance enforcement
US20080162821A1 (en) * 2006-12-27 2008-07-03 Duran Louis A Hard disk caching with automated discovery of cacheable files
US20120207098A1 (en) * 2007-03-23 2012-08-16 Zenzui, Inc. Systems and methods for controlling application updates across a wireless interface
US8914786B2 (en) 2007-03-23 2014-12-16 Zumobi, Inc. Systems and methods for controlling application updates across a wireless interface
US7711822B1 (en) * 2007-03-26 2010-05-04 Oracle America, Inc. Resource management in application servers
KR100866581B1 (ko) 2007-04-19 2008-11-03 주식회사 드리머 디스크 매체 재생 장치 기반 데이터 애플리케이션 제공방법 및 이를 실현시키기 위한 프로그램을 기록한 컴퓨터로판독 가능한 기록 매체
US8312460B1 (en) * 2007-05-22 2012-11-13 Hewlett-Packard Development Company, L.P. Allocating computer resources to workloads using utilization based probability distributions
US20080320116A1 (en) * 2007-06-21 2008-12-25 Christopher Briggs Identification of endpoint devices operably coupled to a network through a network address translation router
US9269332B2 (en) 2007-09-04 2016-02-23 Apple Inc. Font preloading
US7877385B2 (en) * 2007-09-21 2011-01-25 Microsoft Corporation Information retrieval using query-document pair information
US10783232B2 (en) * 2007-09-27 2020-09-22 Clevx, Llc Management system for self-encrypting managed devices with embedded wireless user authentication
US11190936B2 (en) 2007-09-27 2021-11-30 Clevx, Llc Wireless authentication system
US10778417B2 (en) 2007-09-27 2020-09-15 Clevx, Llc Self-encrypting module with embedded wireless user authentication
US10181055B2 (en) 2007-09-27 2019-01-15 Clevx, Llc Data security system with encryption
US8463895B2 (en) * 2007-11-29 2013-06-11 International Business Machines Corporation System and computer program product to predict edges in a non-cumulative graph
US8214484B2 (en) * 2007-11-29 2012-07-03 International Business Machines Corporation Method to predict edges in a non-cumulative graph
US8745507B2 (en) * 2007-11-30 2014-06-03 At&T Intellectual Property I, L.P. Preloader employing enhanced messages
GB2456019A (en) * 2007-12-31 2009-07-01 Symbian Software Ltd Loading dynamic link libraries in response to an event
US20090211543A1 (en) * 2008-02-25 2009-08-27 Stephen Gardner Rasmussen Air cooler
US8555367B2 (en) * 2008-03-12 2013-10-08 Yahoo! Inc. Method and system for securely streaming content
US8621598B2 (en) * 2008-03-12 2013-12-31 Intuit Inc. Method and apparatus for securely invoking a rest API
US20100016082A1 (en) * 2008-03-20 2010-01-21 Gdi Game Domain International Plc Game user apparatus
US8255536B2 (en) * 2008-03-21 2012-08-28 Microsoft Corporation Bandwidth and latency controller
US8533293B1 (en) * 2008-03-31 2013-09-10 Amazon Technologies, Inc. Client side cache management
US8548428B2 (en) 2009-01-28 2013-10-01 Headwater Partners I Llc Device group partitions and settlement platform
US8391834B2 (en) 2009-01-28 2013-03-05 Headwater Partners I Llc Security techniques for device assisted services
US8402111B2 (en) 2009-01-28 2013-03-19 Headwater Partners I, Llc Device assisted services install
US8626115B2 (en) 2009-01-28 2014-01-07 Headwater Partners I Llc Wireless network service interfaces
US8346225B2 (en) 2009-01-28 2013-01-01 Headwater Partners I, Llc Quality of service for device assisted services
US8589541B2 (en) 2009-01-28 2013-11-19 Headwater Partners I Llc Device-assisted services for protecting network capacity
US8630192B2 (en) 2009-01-28 2014-01-14 Headwater Partners I Llc Verifiable and accurate service usage monitoring for intermediate networking devices
US8275830B2 (en) 2009-01-28 2012-09-25 Headwater Partners I Llc Device assisted CDR creation, aggregation, mediation and billing
US8725123B2 (en) 2008-06-05 2014-05-13 Headwater Partners I Llc Communications device with secure data path processing agents
US8898293B2 (en) 2009-01-28 2014-11-25 Headwater Partners I Llc Service offer set publishing to device agent with on-device service selection
US8635335B2 (en) 2009-01-28 2014-01-21 Headwater Partners I Llc System and method for wireless network offloading
US8832777B2 (en) 2009-03-02 2014-09-09 Headwater Partners I Llc Adapting network policies based on device service processor configuration
US8340634B2 (en) 2009-01-28 2012-12-25 Headwater Partners I, Llc Enhanced roaming services and converged carrier networks with device assisted services and a proxy
US8406748B2 (en) 2009-01-28 2013-03-26 Headwater Partners I Llc Adaptive ambient services
US8924469B2 (en) 2008-06-05 2014-12-30 Headwater Partners I Llc Enterprise access control and accounting allocation for access networks
US8924543B2 (en) 2009-01-28 2014-12-30 Headwater Partners I Llc Service design center for device assisted services
US8706863B2 (en) 2008-07-18 2014-04-22 Apple Inc. Systems and methods for monitoring data and bandwidth usage
US8548467B2 (en) * 2008-09-12 2013-10-01 Qualcomm Incorporated Ticket-based configuration parameters validation
US8862872B2 (en) * 2008-09-12 2014-10-14 Qualcomm Incorporated Ticket-based spectrum authorization and access control
JP5414223B2 (ja) * 2008-09-16 2014-02-12 株式会社日立ソリューションズ インターネットバックアップにおける転送データ管理システム
US9148335B2 (en) * 2008-09-30 2015-09-29 Qualcomm Incorporated Third party validation of internet protocol addresses
WO2010058246A1 (en) * 2008-11-24 2010-05-27 Freescale Semiconductor, Inc. Management of multiple resource providers
US20100142521A1 (en) * 2008-12-08 2010-06-10 Concert Technology Just-in-time near live DJ for internet radio
US20100162126A1 (en) * 2008-12-23 2010-06-24 Palm, Inc. Predictive cache techniques
US9253663B2 (en) 2009-01-28 2016-02-02 Headwater Partners I Llc Controlling mobile device communications on a roaming network based on device state
US10248996B2 (en) 2009-01-28 2019-04-02 Headwater Research Llc Method for operating a wireless end-user device mobile payment agent
US9572019B2 (en) 2009-01-28 2017-02-14 Headwater Partners LLC Service selection set published to device agent with on-device service selection
US10715342B2 (en) 2009-01-28 2020-07-14 Headwater Research Llc Managing service user discovery and service launch object placement on a device
US8793758B2 (en) 2009-01-28 2014-07-29 Headwater Partners I Llc Security, fraud detection, and fraud mitigation in device-assisted services systems
US8893009B2 (en) 2009-01-28 2014-11-18 Headwater Partners I Llc End user device that secures an association of application to service policy with an application certificate check
US9980146B2 (en) 2009-01-28 2018-05-22 Headwater Research Llc Communications device with secure data path processing agents
US9858559B2 (en) 2009-01-28 2018-01-02 Headwater Research Llc Network service plan design
US10064055B2 (en) 2009-01-28 2018-08-28 Headwater Research Llc Security, fraud detection, and fraud mitigation in device-assisted services systems
US11985155B2 (en) 2009-01-28 2024-05-14 Headwater Research Llc Communications device with secure data path processing agents
US9392462B2 (en) 2009-01-28 2016-07-12 Headwater Partners I Llc Mobile end-user device with agent limiting wireless data communication for specified background applications based on a stored policy
US9706061B2 (en) 2009-01-28 2017-07-11 Headwater Partners I Llc Service design center for device assisted services
US10237757B2 (en) 2009-01-28 2019-03-19 Headwater Research Llc System and method for wireless network offloading
US9351193B2 (en) 2009-01-28 2016-05-24 Headwater Partners I Llc Intermediate networking devices
US10484858B2 (en) 2009-01-28 2019-11-19 Headwater Research Llc Enhanced roaming services and converged carrier networks with device assisted services and a proxy
US9755842B2 (en) 2009-01-28 2017-09-05 Headwater Research Llc Managing service user discovery and service launch object placement on a device
US8606911B2 (en) 2009-03-02 2013-12-10 Headwater Partners I Llc Flow tagging for service policy implementation
US11218854B2 (en) 2009-01-28 2022-01-04 Headwater Research Llc Service plan design, user interfaces, application programming interfaces, and device management
US8351898B2 (en) 2009-01-28 2013-01-08 Headwater Partners I Llc Verifiable device assisted service usage billing with integrated accounting, mediation accounting, and multi-account
US11973804B2 (en) 2009-01-28 2024-04-30 Headwater Research Llc Network service plan design
US10779177B2 (en) 2009-01-28 2020-09-15 Headwater Research Llc Device group partitions and settlement platform
US9955332B2 (en) 2009-01-28 2018-04-24 Headwater Research Llc Method for child wireless device activation to subscriber account of a master wireless device
US9557889B2 (en) 2009-01-28 2017-01-31 Headwater Partners I Llc Service plan design, user interfaces, application programming interfaces, and device management
US10264138B2 (en) 2009-01-28 2019-04-16 Headwater Research Llc Mobile device and service management
US10200541B2 (en) 2009-01-28 2019-02-05 Headwater Research Llc Wireless end-user device with divided user space/kernel space traffic policy system
US8745191B2 (en) 2009-01-28 2014-06-03 Headwater Partners I Llc System and method for providing user notifications
US10057775B2 (en) 2009-01-28 2018-08-21 Headwater Research Llc Virtualized policy and charging system
US10492102B2 (en) 2009-01-28 2019-11-26 Headwater Research Llc Intermediate networking devices
US10326800B2 (en) 2009-01-28 2019-06-18 Headwater Research Llc Wireless network service interfaces
US10841839B2 (en) 2009-01-28 2020-11-17 Headwater Research Llc Security, fraud detection, and fraud mitigation in device-assisted services systems
US10798252B2 (en) 2009-01-28 2020-10-06 Headwater Research Llc System and method for providing user notifications
US9270559B2 (en) 2009-01-28 2016-02-23 Headwater Partners I Llc Service policy implementation for an end-user device having a control application or a proxy agent for routing an application traffic flow
US10783581B2 (en) 2009-01-28 2020-09-22 Headwater Research Llc Wireless end-user device providing ambient or sponsored services
US9578182B2 (en) 2009-01-28 2017-02-21 Headwater Partners I Llc Mobile device and service management
US9647918B2 (en) 2009-01-28 2017-05-09 Headwater Research Llc Mobile device and method attributing media services network usage to requesting application
US9565707B2 (en) 2009-01-28 2017-02-07 Headwater Partners I Llc Wireless end-user device with wireless data attribution to multiple personas
US9954975B2 (en) 2009-01-28 2018-04-24 Headwater Research Llc Enhanced curfew and protection associated with a device group
US20100251227A1 (en) * 2009-03-25 2010-09-30 Microsoft Corporation Binary resource format and compiler
US8291503B2 (en) * 2009-06-05 2012-10-16 Microsoft Corporation Preloading modules for performance improvements
US8966110B2 (en) * 2009-09-14 2015-02-24 International Business Machines Corporation Dynamic bandwidth throttling
DE102009043253A1 (de) * 2009-09-28 2011-03-31 Siemens Aktiengesellschaft Verfahren zur Verminderung der Wartezeit bei erstmaliger Durchführung von Arbeitsschritten
US9770654B1 (en) 2009-09-30 2017-09-26 Amazon Technologies, Inc. Cross device operation of games
US8414390B1 (en) * 2009-09-30 2013-04-09 Amazon Technologies, Inc. Systems and methods for the electronic distribution of games
US8662997B1 (en) 2009-09-30 2014-03-04 Amazon Technologies, Inc. Systems and methods for in-game provisioning of content
US8788615B1 (en) * 2009-10-02 2014-07-22 Adobe Systems Incorporated Systems and methods for creating and using electronic content that requires a shared library
US8438312B2 (en) * 2009-10-23 2013-05-07 Moov Corporation Dynamically rehosting web content
US9134534B2 (en) 2010-02-28 2015-09-15 Microsoft Technology Licensing, Llc See-through near-eye display glasses including a modular image source
US8467133B2 (en) 2010-02-28 2013-06-18 Osterhout Group, Inc. See-through display with an optical assembly including a wedge-shaped illumination system
US8488246B2 (en) 2010-02-28 2013-07-16 Osterhout Group, Inc. See-through near-eye display glasses including a curved polarizing film in the image source, a partially reflective, partially transmitting optical element and an optically flat film
US20150309316A1 (en) 2011-04-06 2015-10-29 Microsoft Technology Licensing, Llc Ar glasses with predictive control of external device based on event input
US9223134B2 (en) 2010-02-28 2015-12-29 Microsoft Technology Licensing, Llc Optical imperfections in a light transmissive illumination system for see-through near-eye display glasses
US10180572B2 (en) 2010-02-28 2019-01-15 Microsoft Technology Licensing, Llc AR glasses with event and user action control of external applications
US8477425B2 (en) 2010-02-28 2013-07-02 Osterhout Group, Inc. See-through near-eye display glasses including a partially reflective, partially transmitting optical element
US9341843B2 (en) 2010-02-28 2016-05-17 Microsoft Technology Licensing, Llc See-through near-eye display glasses with a small scale image source
US9097890B2 (en) 2010-02-28 2015-08-04 Microsoft Technology Licensing, Llc Grating in a light transmissive illumination system for see-through near-eye display glasses
WO2011106798A1 (en) 2010-02-28 2011-09-01 Osterhout Group, Inc. Local advertising content on an interactive head-mounted eyepiece
US9129295B2 (en) 2010-02-28 2015-09-08 Microsoft Technology Licensing, Llc See-through near-eye display glasses with a fast response photochromic film system for quick transition from dark to clear
US9182596B2 (en) 2010-02-28 2015-11-10 Microsoft Technology Licensing, Llc See-through near-eye display glasses with the optical assembly including absorptive polarizers or anti-reflective coatings to reduce stray light
US9128281B2 (en) 2010-09-14 2015-09-08 Microsoft Technology Licensing, Llc Eyepiece with uniformly illuminated reflective display
US9366862B2 (en) 2010-02-28 2016-06-14 Microsoft Technology Licensing, Llc System and method for delivering content to a group of see-through near eye display eyepieces
US8472120B2 (en) 2010-02-28 2013-06-25 Osterhout Group, Inc. See-through near-eye display glasses with a small scale image source
US9097891B2 (en) 2010-02-28 2015-08-04 Microsoft Technology Licensing, Llc See-through near-eye display glasses including an auto-brightness control for the display brightness based on the brightness in the environment
US9091851B2 (en) 2010-02-28 2015-07-28 Microsoft Technology Licensing, Llc Light control in head mounted displays
US9229227B2 (en) 2010-02-28 2016-01-05 Microsoft Technology Licensing, Llc See-through near-eye display glasses with a light transmissive wedge shaped illumination system
US9285589B2 (en) 2010-02-28 2016-03-15 Microsoft Technology Licensing, Llc AR glasses with event and sensor triggered control of AR eyepiece applications
US8482859B2 (en) 2010-02-28 2013-07-09 Osterhout Group, Inc. See-through near-eye display glasses wherein image light is transmitted to and reflected from an optically flat film
US9759917B2 (en) 2010-02-28 2017-09-12 Microsoft Technology Licensing, Llc AR glasses with event and sensor triggered AR eyepiece interface to external devices
US20120249797A1 (en) 2010-02-28 2012-10-04 Osterhout Group, Inc. Head-worn adaptive display
US8353019B2 (en) * 2010-03-26 2013-01-08 Canon Kabushiki Kaisha Security token destined for multiple or group of service providers
US8838571B2 (en) * 2010-06-28 2014-09-16 International Business Machines Corporation Data-discriminate search engine updates
US9304867B2 (en) 2010-09-28 2016-04-05 Amazon Technologies, Inc. System and method for providing flexible storage and retrieval of snapshot archives
US9015819B2 (en) * 2010-11-04 2015-04-21 Zte Corporation Method and system for single sign-on
US8983907B2 (en) 2010-12-08 2015-03-17 Microsoft Technology Licensing, Llc Change notifications from an updated data representation
US9141447B2 (en) * 2010-12-15 2015-09-22 Microsoft Technology Licensing, Llc Conditional deferred queuing
US20120167122A1 (en) * 2010-12-27 2012-06-28 Nokia Corporation Method and apparatus for pre-initializing application rendering processes
US20120192080A1 (en) * 2011-01-21 2012-07-26 Google Inc. Tailoring content based on available bandwidth
US9069829B2 (en) * 2011-01-21 2015-06-30 Microsoft Technology Licensing, Llc Data items manager
US9154826B2 (en) 2011-04-06 2015-10-06 Headwater Partners Ii Llc Distributing content and service launch objects to mobile devices
AU2012239975B2 (en) * 2011-04-06 2017-05-25 Headwater Research Llc Distributing content and service launch objects to mobile devices
US8838533B2 (en) 2011-05-20 2014-09-16 Microsoft Corporation Optimistic application of data edits
KR101852815B1 (ko) * 2011-06-21 2018-06-04 엘지전자 주식회사 클라이언트용 및 서버용 단말기 및 그 제어 방법
US9032012B2 (en) * 2011-06-27 2015-05-12 International Business Machines Corporation Configurable pacing for messaging systems
US8997107B2 (en) * 2011-06-28 2015-03-31 Microsoft Technology Licensing, Llc Elastic scaling for cloud-hosted batch applications
US8176437B1 (en) 2011-07-18 2012-05-08 Google Inc. Responsiveness for application launch
DE102011079429A1 (de) 2011-07-19 2013-01-24 Siemens Aktiengesellschaft Performancesimulation von medizintechnischen Prozeduren in einer Client-Server-Umgebung
US9634882B2 (en) * 2011-09-30 2017-04-25 Oracle International Corporation Method and system for continuous application state
US9015224B2 (en) 2011-10-09 2015-04-21 LabTech, LLC Interactive response of a remote monitoring and management system
KR20130054076A (ko) * 2011-11-16 2013-05-24 삼성전자주식회사 복수 개의 어플리케이션을 프리로딩하는 터치스크린을 가지는 장치 및 그 제어 방법
US9055091B2 (en) 2011-11-16 2015-06-09 LabTech, LLC Adaptive timing of distributed device response to maximize channel capacity utilization
US9154580B2 (en) 2012-02-01 2015-10-06 Tata Consultancy Services Limited Connection management in a computer networking environment
JP5840525B2 (ja) * 2012-02-16 2016-01-06 シャープ株式会社 情報処理装置
US9110600B1 (en) 2012-03-19 2015-08-18 Amazon Technologies, Inc. Triggered data shelving to a different storage system and storage deallocation
US9246996B1 (en) 2012-05-07 2016-01-26 Amazon Technologies, Inc. Data volume placement techniques
US9503517B1 (en) 2012-05-07 2016-11-22 Amazon Technologies, Inc. Data volume placement techniques
US11379354B1 (en) 2012-05-07 2022-07-05 Amazon Technologies, Inc. Data volume placement techniques
US9804993B1 (en) 2012-05-07 2017-10-31 Amazon Technologies, Inc. Data volume placement techniques
US9823840B1 (en) 2012-05-07 2017-11-21 Amazon Technologies, Inc. Data volume placement techniques
CN102685135B (zh) * 2012-05-17 2014-11-26 江苏中科梦兰电子科技有限公司 一种基于c/s架构下的软件权限验证方法
US9430279B2 (en) * 2012-05-22 2016-08-30 Avaya Inc. System and method for dynamic influencing of sequence vector by sequenced applications
US8839317B1 (en) * 2012-05-24 2014-09-16 Time Warner Cable Enterprises Llc Methods and apparatus for providing multi-source bandwidth sharing management
US9590959B2 (en) 2013-02-12 2017-03-07 Amazon Technologies, Inc. Data security service
US10084818B1 (en) 2012-06-07 2018-09-25 Amazon Technologies, Inc. Flexibly configurable data modification services
US10075471B2 (en) 2012-06-07 2018-09-11 Amazon Technologies, Inc. Data loss prevention techniques
US9286491B2 (en) 2012-06-07 2016-03-15 Amazon Technologies, Inc. Virtual service provider zones
US9098339B2 (en) * 2012-06-12 2015-08-04 Microsoft Technology Licensing, Llc Predictive cloud-based presimulation
CN102710795B (zh) * 2012-06-20 2015-02-11 北京奇虎科技有限公司 热点聚合方法及装置
US8961302B2 (en) 2012-07-20 2015-02-24 Microsoft Technology Licensing, Llc Game browsing
US9381432B2 (en) 2012-08-24 2016-07-05 Microsoft Technology Licensing, Llc Game migration
US9509529B1 (en) * 2012-10-16 2016-11-29 Solace Systems, Inc. Assured messaging system with differentiated real time traffic
US9717982B2 (en) 2012-12-21 2017-08-01 Microsoft Technology Licensing, Llc Client rendering of latency sensitive game features
US9526980B2 (en) 2012-12-21 2016-12-27 Microsoft Technology Licensing, Llc Client side processing of game controller input
US9063861B1 (en) 2012-12-27 2015-06-23 Emc Corporation Host based hints
US10210341B2 (en) * 2013-02-12 2019-02-19 Amazon Technologies, Inc. Delayed data access
US9705674B2 (en) 2013-02-12 2017-07-11 Amazon Technologies, Inc. Federated key management
US9547771B2 (en) 2013-02-12 2017-01-17 Amazon Technologies, Inc. Policy enforcement with associated data
US9608813B1 (en) 2013-06-13 2017-03-28 Amazon Technologies, Inc. Key rotation techniques
US10467422B1 (en) 2013-02-12 2019-11-05 Amazon Technologies, Inc. Automatic key rotation
US9300464B1 (en) 2013-02-12 2016-03-29 Amazon Technologies, Inc. Probabilistic key rotation
US9367697B1 (en) 2013-02-12 2016-06-14 Amazon Technologies, Inc. Data security with a security module
US10211977B1 (en) 2013-02-12 2019-02-19 Amazon Technologies, Inc. Secure management of information using a security module
WO2014159862A1 (en) 2013-03-14 2014-10-02 Headwater Partners I Llc Automated credential porting for mobile devices
US9564102B2 (en) 2013-03-14 2017-02-07 Microsoft Technology Licensing, Llc Client side processing of player movement in a remote gaming environment
US9694277B2 (en) 2013-03-14 2017-07-04 Microsoft Technology Licensing, Llc Client side processing of character interactions in a remote gaming environment
US20160057213A1 (en) * 2013-03-29 2016-02-25 Gary S. Greenbaum Coupling application data with network connectivity
KR101730757B1 (ko) * 2013-04-12 2017-04-26 엔이씨 유럽 리미티드 사용자에 의해 디바이스에 액세스하기 위한 방법 및 시스템
US20140373032A1 (en) * 2013-06-12 2014-12-18 Microsoft Corporation Prefetching content for service-connected applications
JP6248448B2 (ja) * 2013-07-24 2017-12-20 株式会社リコー 情報処理装置及びそのデータ蓄積制御方法
US8990357B2 (en) 2013-07-29 2015-03-24 Cloudflare, Inc. Method and apparatus for reducing loading time of web pages
US9565233B1 (en) 2013-08-09 2017-02-07 Google Inc. Preloading content for requesting applications
US9563385B1 (en) 2013-09-16 2017-02-07 Amazon Technologies, Inc. Profile-guided data preloading for virtualized resources
US9990440B2 (en) * 2013-12-30 2018-06-05 Oath Inc. Smart content pre-loading on client devices
IN2013CH06148A (ko) * 2013-12-30 2015-07-03 Samsung Electronics Co Ltd
DE102014200226A1 (de) * 2014-01-09 2015-07-09 Bayerische Motoren Werke Aktiengesellschaft Zentrale Kommunikationseinheit eines Kraftfahrzeuges
US10250673B1 (en) 2014-03-14 2019-04-02 Amazon Technologies, Inc. Storage workload management using redirected messages
US9397835B1 (en) 2014-05-21 2016-07-19 Amazon Technologies, Inc. Web of trust management in a distributed system
US9438421B1 (en) 2014-06-27 2016-09-06 Amazon Technologies, Inc. Supporting a fixed transaction rate with a variably-backed logical cryptographic key
US11489941B2 (en) * 2014-07-16 2022-11-01 Tensera Networks Ltd. Pre-loading of user applications including skipping of selected launch actions
US11483415B2 (en) 2014-07-16 2022-10-25 Tensera Networks Ltd. Background pre-rendering of user applications
US11095743B2 (en) 2014-07-16 2021-08-17 Tensera Networks Ltd. Optimized content-delivery network (CDN) for the wireless last mile
US9372898B2 (en) 2014-07-17 2016-06-21 Google Inc. Enabling event prediction as an on-device service for mobile interaction
US9866392B1 (en) 2014-09-15 2018-01-09 Amazon Technologies, Inc. Distributed system web of trust provisioning
US9547521B2 (en) * 2014-09-25 2017-01-17 Oracle International Corporation System and method for supporting dynamic thread pool sizing in a distributed data grid
US9395970B2 (en) * 2014-09-30 2016-07-19 Sony Interactive Entertainment America Llc Method and apparatus for providing a time period for starting an application
US9424006B2 (en) 2014-12-24 2016-08-23 International Business Machines Corporation. Execution optimization of mobile applications
US10715460B2 (en) 2015-03-09 2020-07-14 Amazon Technologies, Inc. Opportunistic resource migration to optimize resource placement
US10469477B2 (en) 2015-03-31 2019-11-05 Amazon Technologies, Inc. Key export techniques
WO2016178661A1 (en) * 2015-05-04 2016-11-10 Hewlett Packard Enterprise Development Lp Determining idle testing periods
CN104951340B (zh) * 2015-06-12 2018-07-06 联想(北京)有限公司 一种信息处理方法及装置
US9819762B2 (en) 2015-06-26 2017-11-14 Cloudflare, Inc. Method and apparatus for reducing loading time of web pages
US9967155B1 (en) * 2015-07-22 2018-05-08 Sprint Communications Company L.P. Dynamically creating and routing network records for dispatch prior to session timeout
KR102401772B1 (ko) 2015-10-02 2022-05-25 삼성전자주식회사 전자 장치에서 어플리케이션 실행 장치 및 방법
US10699186B2 (en) 2015-12-02 2020-06-30 Google Llc Determining orders of execution of a neural network
US10389790B2 (en) * 2015-12-17 2019-08-20 Google Llc Automatically providing media items in environments with limited network performance
US11016867B2 (en) * 2015-12-18 2021-05-25 Micro Focus Llc Test execution comparisons
US10404702B1 (en) * 2016-03-30 2019-09-03 EMC IP Holding Company LLC System and method for tenant network identity-based authentication and authorization for administrative access in a protection storage system
US10631164B2 (en) 2016-03-31 2020-04-21 Electronic Arts Inc. Authentication identity management for mobile device applications
US10735348B2 (en) * 2016-04-29 2020-08-04 International Business Machines Corporation Providing an optimal resource to a client computer via interactive dialog
US10089233B2 (en) 2016-05-11 2018-10-02 Ge Aviation Systems, Llc Method of partitioning a set-associative cache in a computing platform
US10367879B2 (en) * 2016-06-10 2019-07-30 Apple Inc. Download prioritization
CN106790603A (zh) * 2016-12-29 2017-05-31 东软集团股份有限公司 消息交互的方法、装置及系统
US10939038B2 (en) * 2017-04-24 2021-03-02 Intel Corporation Object pre-encoding for 360-degree view for optimal quality and latency
US10616346B2 (en) 2017-07-28 2020-04-07 International Business Machines Corporation Server connection capacity management
US20190079788A1 (en) * 2017-09-08 2019-03-14 Cisco Technology, Inc. Predictive image storage system for fast container execution
US10547522B2 (en) 2017-11-27 2020-01-28 International Business Machines Corporation Pre-starting services based on traversal of a directed graph during execution of an application
US11922187B2 (en) 2018-03-05 2024-03-05 Tensera Networks Ltd. Robust application preloading with accurate user experience
US11915012B2 (en) * 2018-03-05 2024-02-27 Tensera Networks Ltd. Application preloading in the presence of user actions
US20220179668A1 (en) * 2018-03-05 2022-06-09 Tensera Networks Ltd. Robust Application Preloading with Accurate User Experience
US10452296B1 (en) 2018-03-23 2019-10-22 Amazon Technologies, Inc. Accelerated volumes
US11134071B2 (en) * 2018-04-23 2021-09-28 Oracle International Corporation Data exchange during multi factor authentication
US11023157B2 (en) 2018-04-30 2021-06-01 Amazon Technologies, Inc. Intermediary duplication to facilitate copy requests in distributed storage systems
US11343314B1 (en) 2018-04-30 2022-05-24 Amazon Technologies, Inc. Stream-based logging for distributed storage systems
US10459655B1 (en) 2018-04-30 2019-10-29 Amazon Technologies, Inc. Rapid volume backup generation from distributed replica
US10776173B1 (en) 2018-04-30 2020-09-15 Amazon Technologies, Inc. Local placement of resource instances in a distributed system
CN108595228B (zh) 2018-05-10 2021-03-12 Oppo广东移动通信有限公司 应用程序预测模型建立方法、装置、存储介质及移动终端
CN108614722B (zh) 2018-05-10 2020-09-08 上海瑾盛通信科技有限公司 应用程序预加载方法、装置、存储介质及终端
CN108595227A (zh) 2018-05-10 2018-09-28 Oppo广东移动通信有限公司 应用程序预加载方法、装置、存储介质及移动终端
CN108710513B (zh) * 2018-05-15 2020-07-21 Oppo广东移动通信有限公司 应用程序启动方法、装置、存储介质及终端
CN108762843B (zh) * 2018-05-29 2020-05-05 Oppo广东移动通信有限公司 应用程序的预加载方法、装置、存储介质及智能终端
CN108804157A (zh) 2018-06-05 2018-11-13 Oppo广东移动通信有限公司 应用程序预加载方法、装置、存储介质及终端
US10768835B1 (en) 2018-06-27 2020-09-08 Amazon Technologies, Inc. Opportunistic storage service
US11121981B1 (en) 2018-06-29 2021-09-14 Amazon Technologies, Inc. Optimistically granting permission to host computing resources
US10754575B2 (en) * 2018-07-16 2020-08-25 EMC IP Holding Company LLC Storage system with replication process utilizing simulated target responses
US10956442B1 (en) 2018-07-30 2021-03-23 Amazon Technologies, Inc. Dedicated source volume pool for accelerated creation of block data volumes from object data snapshots
US10931750B1 (en) 2018-07-30 2021-02-23 Amazon Technologies, Inc. Selection from dedicated source volume pool for accelerated creation of block data volumes
US11095566B2 (en) * 2018-10-22 2021-08-17 Hewlett Packard Enterprise Development Lp Embedded device interaction restrictions
US20200136923A1 (en) 2018-10-28 2020-04-30 Netz Forecasts Ltd. Systems and methods for prediction of anomalies
US11553047B2 (en) 2018-11-30 2023-01-10 International Business Machines Corporation Dynamic connection capacity management
US11201946B1 (en) 2018-12-31 2021-12-14 Facebook, Inc. Systems and methods for digital media delivery prioritization
US11596867B2 (en) 2019-03-19 2023-03-07 modl.ai ApS AI-based content generation for gaming applications
US11068192B1 (en) 2019-03-26 2021-07-20 Amazon Technologies, Inc. Utilizing mutiple snapshot sources for creating new copy of volume in a networked environment wherein additional snapshot sources are reserved with lower performance levels than a primary snapshot source
US10983719B1 (en) 2019-03-28 2021-04-20 Amazon Technologies, Inc. Replica pools to support volume replication in distributed storage systems
CN110311968B (zh) * 2019-06-26 2022-04-08 北京小米移动软件有限公司 流式加载文件的方法、装置及智能设备
US11824956B2 (en) 2019-07-30 2023-11-21 Tensera Networks Ltd. Pre-rendering of application user-interfaces in user devices using off-line pre-render mode
US10990879B2 (en) 2019-09-06 2021-04-27 Digital Asset Capital, Inc. Graph expansion and outcome determination for graph-defined program states
WO2021141399A1 (en) * 2020-01-10 2021-07-15 Samsung Electronics Co., Ltd. Method and electronic device for accelerating asset execution
EP4100139A1 (en) * 2020-02-04 2022-12-14 Modl.Ai ApS Ai-based content generation for gaming applications
US11123634B1 (en) * 2020-03-17 2021-09-21 Valve Corporation Tracking file system read operations for instant play of video games, and for client-side discarding and prefetching of game data
US11262918B1 (en) 2020-09-30 2022-03-01 Amazon Technologies, Inc. Data storage system with uneven drive wear reduction
US20220147433A1 (en) 2020-11-12 2022-05-12 New Relic, Inc. Automation solutions for event logging and debugging on kubernetes
CN116670646A (zh) 2020-12-03 2023-08-29 腾赛拉网络有限公司 预加载具有现有任务的应用
CN113905036A (zh) * 2021-02-10 2022-01-07 京东科技控股股份有限公司 一种文件传输方法、装置、电子设备和存储介质
US11526286B1 (en) 2021-06-29 2022-12-13 Amazon Technologies, Inc. Adaptive snapshot chunk sizing for snapshots of block storage volumes
US11860789B2 (en) * 2022-03-21 2024-01-02 International Business Machines Corporation Reduced simulation verification complexity of cache purge

Family Cites Families (185)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US2331814A (en) 1943-02-06 1943-10-12 Wilson Wire Works Inc Seam for woven wire fabrics and method of making same
US4310720A (en) 1978-03-31 1982-01-12 Pitney Bowes Inc. Computer accessing system
US4999766A (en) 1988-06-13 1991-03-12 International Business Machines Corporation Managing host to workstation file transfer
US4920487A (en) 1988-12-12 1990-04-24 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Method of up-front load balancing for local memory parallel processors
AU641397B2 (en) 1989-04-28 1993-09-23 Softel, Inc. Method and apparatus for remotely controlling and monitoring the use of computer software
US5305389A (en) 1991-08-30 1994-04-19 Digital Equipment Corporation Predictive cache system
US5668986A (en) 1991-10-02 1997-09-16 International Business Machines Corporation Method and apparatus for handling data storage requests in a distributed data base environment
US5619716A (en) 1991-11-05 1997-04-08 Hitachi, Ltd. Information processing system having a configuration management system for managing the software of the information processing system
US5325526A (en) 1992-05-12 1994-06-28 Intel Corporation Task scheduling in a multicomputer system
EP0584583B1 (en) * 1992-08-03 1998-10-07 Fuji Photo Film Co., Ltd. Method for manufacturing photographic film and photographic film cassette
US5343526A (en) 1992-10-30 1994-08-30 At&T Bell Laboratories Method for establishing licensor changeable limits on software usage
JP2878538B2 (ja) 1992-12-03 1999-04-05 富士通株式会社 データ処理装置及びデータ処理方法
US5305369A (en) * 1993-03-11 1994-04-19 Material Control, Inc. Bucky drive system
WO1994025913A2 (en) 1993-04-30 1994-11-10 Novadigm, Inc. Method and apparatus for enterprise desktop management
US5349643A (en) 1993-05-10 1994-09-20 International Business Machines Corporation System and method for secure initial program load for diskless workstations
US5835601A (en) 1994-03-15 1998-11-10 Kabushiki Kaisha Toshiba File editing system and shared file editing system with file content secrecy, file version management, and asynchronous editing
US5495533A (en) 1994-04-29 1996-02-27 International Business Machines Corporation Personal key archive
US6473793B1 (en) * 1994-06-08 2002-10-29 Hughes Electronics Corporation Method and apparatus for selectively allocating and enforcing bandwidth usage requirements on network users
US5535276A (en) 1994-11-09 1996-07-09 Bell Atlantic Network Services, Inc. Yaksha, an improved system and method for securing communications using split private key asymmetric cryptography
US6041316A (en) * 1994-07-25 2000-03-21 Lucent Technologies Inc. Method and system for ensuring royalty payments for data delivered over a network
US5586304A (en) 1994-09-08 1996-12-17 Compaq Computer Corporation Automatic computer upgrading
US5742829A (en) 1995-03-10 1998-04-21 Microsoft Corporation Automatic software installation on heterogeneous networked client computer systems
US5802292A (en) * 1995-04-28 1998-09-01 Digital Equipment Corporation Method for predictive prefetching of information over a communications network
US5764992A (en) 1995-06-06 1998-06-09 Apple Computer, Inc. Method and apparatus for automatic software replacement
US5819082A (en) 1995-06-07 1998-10-06 Sierra On-Line, Inc. Data storage optimization using an access order resource list
US5970143A (en) 1995-11-22 1999-10-19 Walker Asset Management Lp Remote-auditing of computer generated outcomes, authenticated billing and access control, and software metering system using cryptographic and other protocols
US6138140A (en) 1995-07-14 2000-10-24 Sony Corporation Data processing method and device
US6584568B1 (en) 1995-07-31 2003-06-24 Pinnacle Technology, Inc. Network provider loop security system and method
US5737495A (en) 1995-09-29 1998-04-07 Intel Corporation Method and apparatus for managing multimedia data files in a computer network by streaming data files into separate streams based on file attributes
US5850535A (en) 1995-10-12 1998-12-15 Computervision Corporation Roll-back during regeneration on a computer-aided design system
US6029175A (en) 1995-10-26 2000-02-22 Teknowledge Corporation Automatic retrieval of changed files by a network software agent
US5915112A (en) 1996-01-02 1999-06-22 International Business Machines Corporation Remote procedure interface with support for multiple versions
US5808690A (en) 1996-01-02 1998-09-15 Integrated Device Technology, Inc. Image generation system, methods and computer program products using distributed processing
JPH09252323A (ja) 1996-01-11 1997-09-22 Sony Corp 通信システムおよび通信装置
US5732275A (en) 1996-01-11 1998-03-24 Apple Computer, Inc. Method and apparatus for managing and automatically updating software programs
EP0880840A4 (en) 1996-01-11 2002-10-23 Mrj Inc DEVICE FOR CONTROLLING ACCESS AND DISTRIBUTION OF DIGITAL PROPERTY
US20020023055A1 (en) * 1996-03-01 2002-02-21 Antognini Walter Gerard System and method for digital bill presentment and payment
US6961341B1 (en) 1996-07-02 2005-11-01 Microsoft Corporation Adaptive bandwidth throttling for network services
US5862339A (en) 1996-07-09 1999-01-19 Webtv Networks, Inc. Client connects to an internet access provider using algorithm downloaded from a central server based upon client's desired criteria after disconnected from the server
US6738970B1 (en) 1999-06-30 2004-05-18 Marimba, Inc. Method and apparatus for identifying changes made to a computer system due to software installation
TW359800B (en) 1996-08-19 1999-06-01 Ibm Device independent and transfer optimised interactive client-server dialog system and method for performing interactive applications therein
US6219793B1 (en) 1996-09-11 2001-04-17 Hush, Inc. Method of using fingerprints to authenticate wireless communications
US5926624A (en) 1996-09-12 1999-07-20 Audible, Inc. Digital information library and delivery system with logic for generating files targeted to the playback device
JPH10171635A (ja) 1996-10-09 1998-06-26 N T T Data Tsushin Kk 分散環境におけるソフトウエア資源を管理するシステムと方法
US5924094A (en) 1996-11-01 1999-07-13 Current Network Technologies Corporation Independent distributed database system
GB9623298D0 (en) 1996-11-08 1997-01-08 Int Computers Ltd Updating mechanism for software
US5757919A (en) 1996-12-12 1998-05-26 Intel Corporation Cryptographically protected paging subsystem
US5829001A (en) 1997-01-21 1998-10-27 Netiq Corporation Database updates over a network
US6128712A (en) * 1997-01-31 2000-10-03 Macromedia, Inc. Method and apparatus for improving playback of interactive multimedia works
US6122657A (en) 1997-02-04 2000-09-19 Networks Associates, Inc. Internet computer system with methods for dynamic filtering of hypertext tags and content
US6292465B1 (en) * 1997-05-27 2001-09-18 Ukiah Software, Inc. Linear rule based method for bandwidth management
US6119235A (en) * 1997-05-27 2000-09-12 Ukiah Software, Inc. Method and apparatus for quality of service management
US6351775B1 (en) 1997-05-30 2002-02-26 International Business Machines Corporation Loading balancing across servers in a computer network
US6122372A (en) 1997-06-04 2000-09-19 Signet Assurance Company Llc System and method for encapsulating transaction messages with verifiable data generated identifiers
WO1998056129A1 (en) 1997-06-04 1998-12-10 Simple Access Partners, Llc System and method for processing transaction messages
US5987376A (en) * 1997-07-16 1999-11-16 Microsoft Corporation System and method for the distribution and synchronization of data and state information between clients in a distributed processing system
FR2766592B1 (fr) 1997-07-23 1999-08-27 Bull Sa Dispositif et procede de regulation dynamique de l'attribution des ressources sur un systeme informatique
US6003014A (en) 1997-08-22 1999-12-14 Visa International Service Association Method and apparatus for acquiring access using a smart card
US7301944B1 (en) 1997-10-24 2007-11-27 Tranz-Send Broadcasting Network, Inc. Media file distribution with adaptive transmission protocols
GB2331814B (en) * 1997-11-19 2002-11-13 Ibm Pre-emptive download of software in data processing network
US6223166B1 (en) * 1997-11-26 2001-04-24 International Business Machines Corporation Cryptographic encoded ticket issuing and collection system for remote purchasers
US6154767A (en) 1998-01-15 2000-11-28 Microsoft Corporation Methods and apparatus for using attribute transition probability models for pre-fetching resources
US6195622B1 (en) 1998-01-15 2001-02-27 Microsoft Corporation Methods and apparatus for building attribute transition probability models for use in pre-fetching resources
US6366947B1 (en) 1998-01-20 2002-04-02 Redmond Venture, Inc. System and method for accelerating network interaction
JP3867388B2 (ja) 1998-02-12 2007-01-10 富士ゼロックス株式会社 条件付き認証装置および方法
US6438141B1 (en) * 1998-04-20 2002-08-20 Sun Microsystems, Inc. Method and management of communications over media of finite bandwidth
US6226667B1 (en) * 1998-05-26 2001-05-01 International Business Machines Corporation Method and apparatus for preloading data in a distributed data processing system
US7035943B2 (en) 1998-05-29 2006-04-25 Yahoo! Inc. Web server content replication
US6317786B1 (en) * 1998-05-29 2001-11-13 Webspective Software, Inc. Web service
US6381742B2 (en) 1998-06-19 2002-04-30 Microsoft Corporation Software package management
US6330561B1 (en) 1998-06-26 2001-12-11 At&T Corp. Method and apparatus for improving end to end performance of a data network
US6453353B1 (en) 1998-07-10 2002-09-17 Entrust, Inc. Role-based navigation of information resources
US6141010A (en) 1998-07-17 2000-10-31 B. E. Technology, Llc Computer interface method and apparatus with targeted advertising
US6269400B1 (en) 1998-07-22 2001-07-31 International Business Machines Corporation Method for discovering and registering agents in a distributed network
US20010044850A1 (en) * 1998-07-22 2001-11-22 Uri Raz Method and apparatus for determining the order of streaming modules
US20020138640A1 (en) * 1998-07-22 2002-09-26 Uri Raz Apparatus and method for improving the delivery of software applications and associated data in web-based systems
US6119203A (en) 1998-08-03 2000-09-12 Motorola, Inc. Mechanism for sharing data cache resources between data prefetch operations and normal load/store operations in a data processing system
US6611812B2 (en) 1998-08-13 2003-08-26 International Business Machines Corporation Secure electronic content distribution on CDS and DVDs
AU5781599A (en) 1998-08-23 2000-03-14 Open Entertainment, Inc. Transaction system for transporting media files from content provider sources tohome entertainment devices
US6505255B1 (en) * 1999-04-29 2003-01-07 Mitsubishi Electric Information Technology Center America, Inc. (Ita) Method for formatting and routing data between an external network and an internal network
US6397258B1 (en) * 1998-09-14 2002-05-28 Matsushita Electric Industrial, Co., Ltd. File system
US6262465B1 (en) * 1998-09-25 2001-07-17 Picometrix, Inc. Highly-doped P-type contact for high-speed, front-side illuminated photodiode
US7136645B2 (en) * 1998-10-09 2006-11-14 Netmotion Wireless, Inc. Method and apparatus for providing mobile and other intermittent connectivity in a computing environment
US6697378B1 (en) * 1998-10-16 2004-02-24 Cisco Technology, Inc. Method and apparatus for class based transmission control of data connections based on real-time external feedback estimates obtained using messaging from a wireless network
US7058607B1 (en) 1998-10-21 2006-06-06 Fuji Xerox Co., Ltd. Contents distribution method and system
US6298385B1 (en) * 1998-10-28 2001-10-02 Qwest Communications Int'l., Inc. Method and apparatus for optimizing playback of media files over a data network
US6466979B1 (en) * 1998-11-09 2002-10-15 International Business Machines Corporation Adaptive system for optimizing a physical connection in a communication session
US7225264B2 (en) * 1998-11-16 2007-05-29 Softricity, Inc. Systems and methods for delivering content over a computer network
US6324578B1 (en) 1998-12-14 2001-11-27 International Business Machines Corporation Methods, systems and computer program products for management of configurable application programs on a network
JP3486125B2 (ja) * 1999-01-14 2004-01-13 富士通株式会社 ネットワーク機器制御システム及び装置
FI106591B (fi) * 1999-01-15 2001-02-28 Nokia Mobile Phones Ltd Menetelmä tiedonsiirtovirtausten välittämiseksi
US6430608B1 (en) 1999-02-09 2002-08-06 Marimba, Inc. Method and apparatus for accepting and rejecting files according to a manifest
AU3889800A (en) * 1999-03-15 2000-10-04 Netpliance, Inc. Dedicated internet access device and method for use
US7055027B1 (en) 1999-03-22 2006-05-30 Microsoft Corporation System and method for trusted inspection of a data stream
US6466999B1 (en) * 1999-03-31 2002-10-15 Microsoft Corporation Preprocessing a reference data stream for patch generation and compression
US6438559B1 (en) 1999-04-02 2002-08-20 Sybase, Inc. System and method for improved serialization of Java objects
US6591339B1 (en) * 1999-05-03 2003-07-08 3Ware, Inc. Methods and systems for selecting block sizes for use with disk arrays
US6718549B1 (en) 1999-05-05 2004-04-06 Microsoft Corporation Methods for managing the distribution of client bits to client computers
US6618810B1 (en) 1999-05-27 2003-09-09 Dell Usa, L.P. Bios based method to disable and re-enable computers
US6675382B1 (en) 1999-06-14 2004-01-06 Sun Microsystems, Inc. Software packaging and distribution system
US6487455B1 (en) 1999-09-30 2002-11-26 Rockwell Automation Technologies, Inc. Distributed real time operating system
US6256773B1 (en) 1999-08-31 2001-07-03 Accenture Llp System, method and article of manufacture for configuration management in a development architecture framework
US6415317B1 (en) * 1999-10-01 2002-07-02 Joshua Michael Yelon Software system for reducing the appearance of latency in a multi-user environment
US6578054B1 (en) 1999-10-04 2003-06-10 Microsoft Corporation Method and system for supporting off-line mode of operation and synchronization using resource state information
US6834294B1 (en) * 1999-11-10 2004-12-21 Screenboard Technologies Inc. Methods and systems for providing and displaying information on a keyboard
US7188088B2 (en) * 1999-12-07 2007-03-06 Matsushita Electric Industrial Co., Ltd. Video editing apparatus, video editing method, and recording medium
WO2001045012A2 (en) * 1999-12-15 2001-06-21 E-Scoring, Inc. Systems and methods for providing consumers anonymous pre-approved offers from a consumer-selected group of merchants
US6848028B1 (en) 2000-01-05 2005-01-25 Sun Microsystems, Inc. Microprocessor having a page prefetch cache for database applications
US6721786B1 (en) * 2000-01-06 2004-04-13 International Business Machines Corporation Method and apparatus for balancing bandwidth usage in a browser
US6912528B2 (en) * 2000-01-18 2005-06-28 Gregg S. Homer Rechargeable media distribution and play system
US6546554B1 (en) 2000-01-21 2003-04-08 Sun Microsystems, Inc. Browser-independent and automatic apparatus and method for receiving, installing and launching applications from a browser on a client computer
GB2359385B (en) 2000-02-16 2004-04-07 Data Connection Ltd Method for upgrading running software processes without compromising fault-tolerance
US6862616B1 (en) 2000-03-20 2005-03-01 Netscape Communications Corp. System and method for facilitating distributed server administration of server systems that are scalable and version independent
US6871345B1 (en) 2000-04-04 2005-03-22 Motive, Inc. Self managing software agents with introspection
JP2004534973A (ja) 2000-04-14 2004-11-18 ゴー アヘッド ソフトウェア インコーポレイテッド ネットワークデバイスのアップグレードシステム及び方法
US6578102B1 (en) 2000-04-18 2003-06-10 International Business Machines Corporation Tracking and control of prefetch data in a PCI bus system
US20010051928A1 (en) * 2000-04-21 2001-12-13 Moshe Brody Protection of software by personalization, and an arrangement, method, and system therefor
US6871344B2 (en) 2000-04-24 2005-03-22 Microsoft Corporation Configurations for binding software assemblies to application programs
JP2001306536A (ja) 2000-04-26 2001-11-02 Nifty Corp クライアントサーバシステム及びコンピュータ可読媒体
US6678700B1 (en) 2000-04-27 2004-01-13 General Atomics System of and method for transparent management of data objects in containers across distributed heterogenous resources
US7111168B2 (en) * 2000-05-01 2006-09-19 Digimarc Corporation Digital watermarking systems
US6895506B1 (en) 2000-05-16 2005-05-17 Loay Abu-Husein Secure storage and execution of processor control programs by encryption and a program loader/decryption mechanism
US6880086B2 (en) 2000-05-20 2005-04-12 Ciena Corporation Signatures for facilitating hot upgrades of modular software components
US6332198B1 (en) 2000-05-20 2001-12-18 Equipe Communications Corporation Network device for supporting multiple redundancy schemes
US6694450B1 (en) 2000-05-20 2004-02-17 Equipe Communications Corporation Distributed process redundancy
US7130612B1 (en) * 2000-05-30 2006-10-31 At&T Corp. System and method for providing wireless services within a wireless local area network
US6754821B1 (en) 2000-06-19 2004-06-22 Xerox Corporation System, method and article of manufacture for transition state-based cryptography
US6996599B1 (en) 2000-06-21 2006-02-07 Microsoft Corporation System and method providing multi-tier applications architecture
US7000230B1 (en) 2000-06-21 2006-02-14 Microsoft Corporation Network-based software extensions
US6883168B1 (en) * 2000-06-21 2005-04-19 Microsoft Corporation Methods, systems, architectures and data structures for delivering software via a network
US6799276B1 (en) * 2000-06-26 2004-09-28 Sun Microsystems, Inc. Method and apparatus for restraining connection request stream associated with high volume burst client in a distributed network
US6711593B1 (en) 2000-06-26 2004-03-23 Camstar Systems, Inc. System and method for live update of a manufacturing system
US6868539B1 (en) 2000-06-28 2005-03-15 Microsoft Corp. System and method providing single application image
JP2002082917A (ja) 2000-07-04 2002-03-22 Sony Computer Entertainment Inc コンテンツ配信方法、コンテンツ配信サーバ及びコンテンツ配信インフラにおけるクライアント端末
US6981070B1 (en) 2000-07-12 2005-12-27 Shun Hang Luk Network storage device having solid-state non-volatile memory
GB2348721A (en) 2000-07-15 2000-10-11 Ideagen Software Limited Automated software or data updating in distributed computing system
US7016877B1 (en) 2000-08-04 2006-03-21 Enfotrust Networks, Inc. Consumer-controlled limited and constrained access to a centrally stored information account
AU2001278159A1 (en) * 2000-08-11 2002-02-25 Incanta, Inc. Resource distribution in network environment
US6947556B1 (en) * 2000-08-21 2005-09-20 International Business Machines Corporation Secure data storage and retrieval with key management and user authentication
JP2002150165A (ja) * 2000-09-01 2002-05-24 Sony Computer Entertainment Inc コンテンツの料金管理方法およびシステム、コンピュータプログラム、記録媒体
US7596784B2 (en) * 2000-09-12 2009-09-29 Symantec Operating Corporation Method system and apparatus for providing pay-per-use distributed computing resources
US7051315B2 (en) * 2000-09-26 2006-05-23 Appstream, Inc. Network streaming of multi-application program code
US6950523B1 (en) * 2000-09-29 2005-09-27 Intel Corporation Secure storage of private keys
JP4645928B2 (ja) * 2000-09-29 2011-03-09 ヤマハ株式会社 入場許可認証方法およびシステム
US7143143B1 (en) * 2000-10-27 2006-11-28 Microsoft Corporation System and method for distributed caching using multicast replication
US20020059408A1 (en) * 2000-11-02 2002-05-16 Krishna Pattabhiraman Dynamic traffic management on a shared medium
US20020083183A1 (en) * 2000-11-06 2002-06-27 Sanjay Pujare Conventionally coded application conversion system for streamed delivery and execution
JP4524523B2 (ja) 2000-11-10 2010-08-18 ソニー株式会社 記憶媒体、ダウンロード方法及び端末装置
US6829649B1 (en) * 2000-11-10 2004-12-07 International Business Machines Corporation Method an congestion control system to allocate bandwidth of a link to dataflows
US6752313B1 (en) * 2000-11-14 2004-06-22 Online Data Corp. Method and system for establishing a credit card transaction processing merchant account
US20020075844A1 (en) * 2000-12-15 2002-06-20 Hagen W. Alexander Integrating public and private network resources for optimized broadband wireless access and method
US6938005B2 (en) 2000-12-21 2005-08-30 Intel Corporation Digital content distribution
US6775704B1 (en) * 2000-12-28 2004-08-10 Networks Associates Technology, Inc. System and method for preventing a spoofed remote procedure call denial of service attack in a networked computing environment
US6735601B1 (en) * 2000-12-29 2004-05-11 Vmware, Inc. System and method for remote file access by computer
IES20010015A2 (en) 2001-01-09 2002-04-17 Menlo Park Res Teoranta Content management and distribution system
US7131111B2 (en) 2001-01-19 2006-10-31 Sun Microsystems, Inc. Development of manifest for java embedded server bundle
US6871232B2 (en) 2001-03-06 2005-03-22 International Business Machines Corporation Method and system for third party resource provisioning management
US7134138B2 (en) 2001-02-15 2006-11-07 Emc Corporation Methods and apparatus for providing security for a data storage system
US7218739B2 (en) * 2001-03-09 2007-05-15 Microsoft Corporation Multiple user authentication for online console-based gaming
US7415038B2 (en) * 2001-03-29 2008-08-19 International Business Machines Corporation Method and system for network management providing access to application bandwidth usage calculations
US6766428B2 (en) 2001-04-06 2004-07-20 Sun Microsystems, Inc. Method and apparatus for storing prior versions of modified values to facilitate reliable execution
US20020147929A1 (en) 2001-04-10 2002-10-10 Rose Mark E. Access control for distributed content servers
US20020150253A1 (en) * 2001-04-12 2002-10-17 Brezak John E. Methods and arrangements for protecting information in forwarded authentication messages
US7231368B2 (en) 2001-04-19 2007-06-12 Hewlett-Packard Development Company, L.P. E-ticket validation protocol
US20020165026A1 (en) * 2001-05-01 2002-11-07 Perkins James Harold Method and system for delivering and securing computer game content via the internet
US7350076B1 (en) 2001-05-16 2008-03-25 3Com Corporation Scheme for device and user authentication with key distribution in a wireless network
US20020173977A1 (en) * 2001-05-17 2002-11-21 International Business Machines Corporation Charging for a computer based on actual usage time
US7350231B2 (en) 2001-06-06 2008-03-25 Yahoo ! Inc. System and method for controlling access to digital content, including streaming media
US6996805B2 (en) * 2001-06-28 2006-02-07 Microsoft Corporation Methods and systems of testing software, and methods and systems of modeling user behavior
US6807542B2 (en) 2001-08-14 2004-10-19 International Business Machines Corporation Method and apparatus for selective and quantitative rights management
US20030039211A1 (en) * 2001-08-23 2003-02-27 Hvostov Harry S. Distributed bandwidth allocation architecture
US6912520B2 (en) 2001-08-29 2005-06-28 Sun Microsystems, Inc. System and method for providing a persistent object framework for managing persistent objects
CA2358048A1 (en) * 2001-09-25 2003-03-25 Luis Rueda A cryptosystem for data security
WO2003030051A1 (en) 2001-09-30 2003-04-10 Realcontacts Ltd Connection service
US7191216B2 (en) 2001-10-03 2007-03-13 Nokia Corporation System and method for controlling access to downloadable resources
US6748470B2 (en) 2001-11-13 2004-06-08 Microsoft Corporation Method and system for locking multiple resources in a distributed environment
US7051340B2 (en) 2001-11-29 2006-05-23 Hewlett-Packard Development Company, L.P. System and method for isolating applications from each other
WO2003048960A1 (en) 2001-11-30 2003-06-12 A New Voice, Inc. Method and system for contextual prioritization of unified messages
US7373406B2 (en) 2001-12-12 2008-05-13 Valve Corporation Method and system for effectively communicating file properties and directory structures in a distributed file system
US7243226B2 (en) * 2001-12-12 2007-07-10 Valve Corporation Method and system for enabling content security in a distributed system
US6996817B2 (en) 2001-12-12 2006-02-07 Valve Corporation Method and system for upgrading and rolling back versions
US7290040B2 (en) 2001-12-12 2007-10-30 Valve Corporation Method and system for load balancing an authentication system
US7580972B2 (en) * 2001-12-12 2009-08-25 Valve Corporation Method and system for controlling bandwidth on client and server
US8108687B2 (en) 2001-12-12 2012-01-31 Valve Corporation Method and system for granting access to system and content
US20040177120A1 (en) 2003-03-07 2004-09-09 Kirsch Steven T. Method for filtering e-mail messages

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100834432B1 (ko) * 2002-12-31 2008-06-04 인터내셔널 비지네스 머신즈 코포레이션 다중시스템 클러스터에서의 리소스 경합을 관리하는 방법 및 장치
KR20150108662A (ko) * 2014-03-18 2015-09-30 연세대학교 산학협력단 데이터 프리로드 관리 방법 및 그 단말
KR20180030105A (ko) * 2015-08-06 2018-03-21 삼성전자주식회사 컨텍스트 데이터를 기반으로 하는 어플리케이션 카드들
WO2020171427A1 (ko) * 2019-02-19 2020-08-27 삼성전자 주식회사 어플리케이션을 프리페치하는 전자 장치 및 방법

Also Published As

Publication number Publication date
AU2002357858A1 (en) 2003-07-09
WO2003054696A1 (en) 2003-07-03
KR101071960B1 (ko) 2011-10-11
EP1483663A4 (en) 2008-04-16
US7392390B2 (en) 2008-06-24
US8539038B2 (en) 2013-09-17
US7580972B2 (en) 2009-08-25
EP1483663A1 (en) 2004-12-08
US20030172269A1 (en) 2003-09-11
US20030177179A1 (en) 2003-09-18
US20110145362A1 (en) 2011-06-16
US7895261B2 (en) 2011-02-22
US20030220984A1 (en) 2003-11-27

Similar Documents

Publication Publication Date Title
KR101071960B1 (ko) 리소스들을 프리로딩 하기 위한 방법 및 시스템
KR101005901B1 (ko) 버전을 업데이트 및 롤링백 하는 방법 및 시스템
US5919247A (en) Method for the distribution of code and data updates
JP4184604B2 (ja) コンピュータ/通信ネットワークで実行可能コードのネットワーク・セキュリティを講じるための装置、方法及びシステム
US7676828B1 (en) Method and system for authenticating and authorizing requestors interacting with content servers
US7836177B2 (en) Network object predictive pre-download device
US7225264B2 (en) Systems and methods for delivering content over a computer network
CN103329113B (zh) 配置用于分级高速缓存的代理服务器以及动态站点加速和自定义对象和相关的方法
KR101109393B1 (ko) 소프트웨어 취약성의 이용을 방지하기 위한 통신 메시지 필터링 방법 및 시스템
US7203959B2 (en) Stream scanning through network proxy servers
US20080222613A1 (en) Method and apparatus for data processing
US20020138640A1 (en) Apparatus and method for improving the delivery of software applications and associated data in web-based systems
US20050138198A1 (en) Methods, apparatuses, systems, and articles for determining and implementing an efficient computer network architecture
US9628549B1 (en) Method and system for controlling and accessing content servers
WO2003073195A2 (en) Method and system for effectively communicating file properties and directory structures in a distributed file system
CN113055492A (zh) 服务灰度链路的控制方法、装置、计算机设备和存储介质
WO2003009532A1 (en) System and method for detecting network events
US8127033B1 (en) Method and apparatus for accessing local computer system resources from a browser
JP2022530150A (ja) プライバシを用いて不変のデータアクセスログを維持するためのシステムおよび方法
WO2000043919A1 (en) Link presentation and data transfer
Myers et al. A secure, publisher-centric web caching infrastructure
GB2611799A (en) A computer-implemented method and apparatus for performing continuous integration of a software change
CN116028898A (zh) Java应用防护方法、装置、系统、服务器及可读存储介质
Fernando A dynamically updatable active networking architecture
Agent Personal Assistant for Internet OMS

Legal Events

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

Payment date: 20141002

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20151023

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20161019

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20170926

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20180921

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20190924

Year of fee payment: 9