JP2003527645A - Method and apparatus for securely delivering content over a broadband access network - Google Patents

Method and apparatus for securely delivering content over a broadband access network

Info

Publication number
JP2003527645A
JP2003527645A JP2000583224A JP2000583224A JP2003527645A JP 2003527645 A JP2003527645 A JP 2003527645A JP 2000583224 A JP2000583224 A JP 2000583224A JP 2000583224 A JP2000583224 A JP 2000583224A JP 2003527645 A JP2003527645 A JP 2003527645A
Authority
JP
Japan
Prior art keywords
title
client
network
server
access
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
JP2000583224A
Other languages
Japanese (ja)
Other versions
JP4340013B2 (en
JP2003527645A5 (en
Inventor
ヨナー シュマイドラー
デレック アトキンス
マーク ダブリュー エイチン
デービッド ジェイ ロストチェック
Original Assignee
イントゥー ネットワークス インク
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US09/311,923 external-priority patent/US6374402B1/en
Priority claimed from US09/310,294 external-priority patent/US7017188B1/en
Priority claimed from US09/310,229 external-priority patent/US6763370B1/en
Application filed by イントゥー ネットワークス インク filed Critical イントゥー ネットワークス インク
Publication of JP2003527645A publication Critical patent/JP2003527645A/en
Publication of JP2003527645A5 publication Critical patent/JP2003527645A5/ja
Application granted granted Critical
Publication of JP4340013B2 publication Critical patent/JP4340013B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2801Broadband local area networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/062Network architectures or network communication protocols for network security for supporting key management in a packet data network for key distribution, e.g. centrally by trusted party
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/062Network architectures or network communication protocols for network security for supporting key management in a packet data network for key distribution, e.g. centrally by trusted party
    • H04L63/064Hierarchical key distribution, e.g. by multi-tier trusted parties
    • 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/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/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
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/231Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
    • H04N21/23106Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion involving caching operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/231Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
    • H04N21/2312Data placement on disk arrays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2347Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving video stream encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2402Monitoring of the downstream path of the transmission network, e.g. bandwidth available
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2408Monitoring of the upstream path of the transmission network, e.g. client requests
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/254Management at additional data server, e.g. shopping server, rights management server
    • H04N21/2541Rights Management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/254Management at additional data server, e.g. shopping server, rights management server
    • H04N21/2543Billing, e.g. for subscription services
    • H04N21/25435Billing, e.g. for subscription services involving characteristics of content or additional data, e.g. video resolution or the amount of advertising
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/262Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
    • H04N21/26208Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints
    • H04N21/26216Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints involving the channel capacity, e.g. network bandwidth
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • H04N21/4331Caching operations, e.g. of an advertisement for later insertion during playback
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4405Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving video stream decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/462Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
    • H04N21/4627Rights management associated to the content
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/472End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
    • H04N21/47202End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for requesting content on demand, e.g. video on demand
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/8166Monomedia components thereof involving executable data, e.g. software
    • H04N21/8186Monomedia components thereof involving executable data, e.g. software specially adapted to be executed by a peripheral of the client device, e.g. by a reprogrammable remote control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/167Systems rendering the television signal unintelligible and subsequently intelligible
    • H04N7/1675Providing digital key or authorisation information for generation or regeneration of the scrambling sequence
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/173Analogue secrecy systems; Analogue subscription systems with two-way working, e.g. subscriber sending a programme selection signal
    • H04N7/17309Transmission or handling of upstream communications
    • H04N7/17318Direct or substantially direct transmission and handling of requests
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2137Time limited access, e.g. to a computer or data
    • 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/102Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying security measure for e-commerce
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Finance (AREA)
  • Accounting & Taxation (AREA)
  • Technology Law (AREA)
  • Marketing (AREA)
  • Strategic Management (AREA)
  • Economics (AREA)
  • General Business, Economics & Management (AREA)
  • Development Economics (AREA)
  • Human Computer Interaction (AREA)
  • Storage Device Security (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】 広帯域アクセスネットワークを介して、オンデマンドによってコンテンツを安全に引き渡すための方法は、クライアントプロセスで、承認なしにコンテンツを入手及び実行されないようにするために、1組のサーバと複数の安全機能を利用する。複数の暗号化されたタイトルが、このネットワークに接続されたコンテンツサーバに格納されている。同様にネットワークに接続されたアクセスサーバには、ネットワークアドレスと、上述のタイトルを暗号解読して実行するのに必要な種々のキーイング及び承認データが包含されている。ユーザのローカルコンピュータシステムで走るクライアントアプリケーションは、コンテンツサーバからタイトルを検索し且つユーザのローカルコンピュータシステムでタイトルを実行可能にする前に、アクセスサーバからアドレス、キーイング及び承認データを検索する必要がある。 (57) Abstract: A method for securely delivering content on demand over a broadband access network is a method that allows a client process to obtain and execute content without authorization without a set of servers. Use multiple safety features. A plurality of encrypted titles are stored on a content server connected to this network. Similarly, the access server connected to the network contains the network address and various keying and authorization data required to decrypt and execute the title. A client application running on the user's local computer system needs to retrieve the address, keying and authorization data from the access server before retrieving the title from the content server and making the title executable on the user's local computer system.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】 関連出願 本願は、名称が「広帯域アクセスネットワークを介してコンテンツを安全に引
き渡すための方法及び装置」であり、ヨナー・シュマイドラー等により、199
8年9月16日に出願された米国仮特許出願第60/108602号に基づいて
優先権を主張する。
RELATED APPLICATION This application is entitled “Methods and Devices for Safely Delivering Content over a Broadband Access Network,” by Jonner Schmidler et al., 199.
Claims priority under US Provisional Patent Application No. 60/108602, filed September 16,8.

【0002】 更に、本願は、同一発明者であるヨナー・シュマイドラー等により出願された
、3件の共同所有された米国特許出願に基づいて優先権を主張する。上記出願に
は、
Further, the present application claims priority based on three co-owned US patent applications filed by the same inventor, Jonner Schmidler et al. In the above application,

【0003】 名称が「広帯域アクセスネットワークを介してコンテンツを安全に引き渡すた
めの方法及び装置」であり、ヨナー・シュマイドラー等により1999年5月1
2日に出願された米国出願第09/310294号、弁護士整理番号第A002
8/7000と、
The name is “method and device for safely delivering contents via a broadband access network”, and Jonner Schmeidler et al., May 1, 1999.
US Application No. 09/310294, Attorney Docket No. A002, filed on the 2nd
8/7000,

【0004】 名称が「コンテンツの安全な引き渡しシステムに於けるインストール抄録のた
めの方法及び装置」であり、ヨナー・シュマイドラー等により1999年5月1
2日に出願された米国出願第09/311923号、弁護士整理番号第A002
8/7001と、
The name is “method and device for installation abstract in secure delivery system of contents”, and Jonner Schmeidler et al., May 1, 1999.
U.S. Application No. 09/311923, filed on 2nd, Attorney Docket No. A002
8/7001,

【0005】 名称が「コンテンツの安全な引き渡しに於けるコンテンツ保護のための方法及
び装置」という、ヨナー・シュマイドラー等により1999年5月12日に出願
された米国出願第09/310299号、弁護士整理番号第A0028/700
2と、
US patent application Ser. No. 09/310299 filed May 12, 1999 by Jonner Schmeidler et al., Entitled “Method and apparatus for content protection in safe delivery of content” Number No. A0028 / 700
2 and

【0006】 名称が「広帯域アクセスネットワーク上でのオンデマンド配信のための方法及
び装置」であり、ヨナー・シュマイドラー等により1999年5月12日に出願
された米国出願第XX/XXXXXX号、弁護士整理番号第A0028/700
3とを包含する。
[0006] The name is "method and apparatus for on-demand distribution on a broadband access network", and US application No. XX / XXXXXXX filed on May 12, 1999 by Jonner Schmidler et al. Number No. A0028 / 700
3 and 3.

【0007】 上記で特定した同時特許出願中の発明対象は、ここで参照することにより本明
細書に編入される。
The subject matter of the above-identified copending patent application is incorporated herein by reference.

【0008】 発明の分野 本発明は、一般的には、ネットワークを介してデータを分配するための方法及
びシステムに関し、更に詳細には、実行可能なソフトウェアのコンテンツを、オ
ン・ディマンド加入又は申込み(原語:subscription)が可能な態様で、広帯域
アクセスネットワークを介して引き渡しするためのシステムに関する。
FIELD OF THE INVENTION The present invention relates generally to methods and systems for distributing data over a network, and more particularly to executing software content on demand subscription or subscription (subscription). The present invention relates to a system for delivering via a broadband access network in a manner that enables the original language (subscription).

【0009】 発明の背景 ソフトウェアアプリケーション及びオーディオ、ビデオ、アニメーション等の
ようなマルチメディアデータ型のオンデマンド引き渡しは、主にネットワークを
介する送信速度のせいで、最近まで実用的ではなかった。一連のビットにフォー
マットされるデータの送信速度は、bpsと呼ばれる。初期のモデムの情報伝達
能力は、1秒当たり約300ビットの送信速度であったが、その後モデムのデー
タ送受信速度が増大した。このようなモデム速度の増大につれて、ネットワーク
を介して送信されるデータの型ばかりでなくネットワークの接続形態の性質も進
歩を始めた。9600bps及び1200bpsのモデム速度では、インターネ
ットのようなコンピュータネットワークは、主に特定のプロトコルとテキストメ
ッセージを有するアスキーテキスト環境であった。モデム速度が引き続き増大す
ることで、より複合的な情報がインターネット及び他のコンピュータネットワー
クを介してアクセスできるようになった。今日依然として、アスキーテキストパ
ラダイムが、インターネットのワールドワイドウェブ部分に残っているが、ごく
最近の帯域幅環境の増大によって、更に複合的なコンテンツ及びマルチメディア
データ型の通信が可能になってきた。
Background of the Invention Software applications and on-demand delivery of multimedia data types such as audio, video, animation, etc. have not been practical until recently, mainly due to their transmission speed over networks. The transmission rate of data formatted into a series of bits is called bps. In the early days, the information transmission capacity of the modem was about 300 bits per second, but thereafter the data transmission / reception speed of the modem increased. With this increase in modem speed, the nature of the topology of the network as well as the type of data transmitted over the network has begun to evolve. At 9600 bps and 1200 bps modem speeds, computer networks such as the Internet were predominantly ASCII text environments with specific protocols and text messages. The continued increase in modem speed has made more complex information accessible over the Internet and other computer networks. Although the ASCII text paradigm still exists in the World Wide Web portion of the Internet today, the more recent increase in bandwidth environments has enabled more complex content and multimedia data type communications.

【0010】 最近では、100万bpsを超える接続速度を有する高性能広帯域技術及びケ
ーブルモデムが、ケーブル通信、電話通信、移動電話通信及び衛星通信企業によ
って世界中で展開且つ提供されつつある。現在の広帯域アクセスネットワークに
は、ケーブル通信産業の媒体共有型の複合ファイバー同軸ケーブル(HFC)ネ
ットワーク及び電話通信産業のデジタル加入者回線(xDSL)が含まれる。
Recently, high performance broadband technologies and cable modems with connection speeds in excess of 1 million bps are being deployed and offered worldwide by cable, telephony, mobile telephony and satellite communications companies. Current broadband access networks include media sharing hybrid fiber coaxial cable (HFC) networks in the cable communications industry and digital subscriber lines (xDSL) in the telecommunications industry.

【0011】 広帯域技術及び広帯域アクセスネットワークの登場によって、以前には、コン
パクトディスク読出し専用記憶素子(CD−ROM)及びデジタル多目的ディス
ク(DVD)でしか入手できなかった、複合的なマルチメディアデータ型及びソ
フトウェアタイトル(以後「タイトル」と呼ぶ)に、現在では、広帯域アクセス
ネットワークサービスの加入者が、遠隔地からアクセスすることができる。
With the advent of broadband technology and broadband access networks, complex multimedia data types and previously available only on compact disc read-only memory (CD-ROM) and digital versatile disc (DVD). Software titles (hereinafter "titles") are now accessible to subscribers of broadband access network services from remote locations.

【0012】 しかし、データ送信速度以外にもタイトルのオンデマンド引き渡しの実用化を
阻んできた要因がある。ソフトウェア及びマルチメディアタイトルを含むコンテ
ンツのオンデマンド引き渡しを今日まで阻んできたそのような障害の1つは、タ
イトルを実行する上で、加入者のローカルコンピュータシステムにタイトルをロ
ードさせるという必要性であった。更に、広範に行われているコンテンツの複製
又は「海賊版製作」、及び全機能を備えたタイトルの複製の配信に伴う安全性に
関わるリスクのために、オンデマンド配信は、ソフトウェア出版業者及びコンテ
ンツライブラリにとって魅力的ではなかった。
However, in addition to the data transmission speed, there are other factors that have hindered the practical application of on-demand delivery of titles. One such obstacle that has prevented the on-demand delivery of content, including software and multimedia titles, to date is the need to have the subscriber's local computer system load the title in order to execute. It was In addition, on-demand distribution is due to the security risks associated with the widespread distribution or "pirated production" of content, and the distribution of full-featured title copies. Was not attractive to.

【0013】 よって、加入者のローカルコンピュータのシステムにインストールする必要の
ない、実行可能なソフトウェアコンテンツを、オンデマンドで引き渡すための方
法及びシステムに対する必要性が存在する。
Thus, there is a need for a method and system for delivering on-demand executable software content that does not need to be installed on the subscriber's local computer system.

【0014】 更に、コンテンツの価値を保護するセキュリティを提供し、且つその無断使用
及び複製を防止するコンテンツを、加入者のローカルコンピュータのシステムに
、オンデマンド引き渡しするための方法及びシステムに対する必要性が存在する
Furthermore, there is a need for a method and system for on-demand delivery of content to a system of a subscriber's local computer that provides security that protects the value of the content and prevents its unauthorized use and copying. Exists.

【0015】 更に、コンテンツ実行中の待ち時間要件を満足させる方法で、広帯域アクセス
ネットワークを介してコンテンツを引き渡すことができる方法及びシステムに対
する必要性が存在する。
Further, there is a need for a method and system that can deliver content over a broadband access network in a manner that satisfies latency requirements during content execution.

【0016】 発明の概要 本発明の安全なコンテンツ引き渡しプラットホーム(SCDP)は、高帯域幅
実行可能コンテンツを、オンデマンドで且つ広帯域アクセスネットワークを介し
て引き渡しを行う。このSCDPプラットホームを使用して、例えば、ケーブル
モデム及びxDSLサービスの加入者のような広帯域加入者は、広帯域ネットワ
ークを介してタイトルにアクセスできる。
SUMMARY OF THE INVENTION The secure content delivery platform (SCDP) of the present invention delivers high bandwidth executable content on demand and over a broadband access network. Using this SCDP platform, broadband subscribers, such as subscribers of cable modem and xDSL services, can access titles over a broadband network.

【0017】 ユーザは、例えば、入手可能なタイトルの仮想カタログを表示するワールドワ
イドウェブ上で、仮想店舗ショーウインドウから実行すべきタイトルを選択する
。交渉には、第三者電子コマースシステム(Eコマース)にユーザ登録すること
、タイトルを選択すると、ユーザはそのタイトルを実際に購入するために交渉す
る。ユーザ課金情報を提供すること及び選択タイトルに付随して提示される購入
タイプの中から1つを選択することが含まれる。考えられる購入タイプの例とし
ては、1)特定のタイトルの期限付き試用、2)任意のタイトルの「一回使用」
毎の1回の支払い、3)週極め、月極め等の一定の具体的な期間に亘るタイトル
の無制限の「複数使用回」を許可する1回の支払いがある。
The user selects a title to be executed from the virtual store show window on the World Wide Web displaying a virtual catalog of available titles, for example. For negotiation, user registration in a third-party electronic commerce system (e-commerce), when a title is selected, the user negotiates to actually purchase the title. Providing user billing information and selecting one of the purchase types presented with the selected title. Examples of possible purchase types are: 1) time-limited trial of a particular title, 2) “single use” of any title.
There is one payment for each time, 3) There is one payment for allowing unlimited “multiple usage” of the title over a certain specific period such as weekly or monthly.

【0018】 購入交渉が完了すると、ユーザのパーソナルコンピュータで実行中のSCDP
クライアントソフトウェアが、条件付きアクセスサーバ(CAS)から、許可ト
ークン及びキーイングデータを入手する。このトークンによって、クライアント
プロセスは、広帯域ネットワークを介してアクセス可能なネットワークファイル
サーバから選択したタイトルの実行を許可される。ファイルサーバから検索され
たデータは暗号化される。SCDPクライアントプロセスには、ファイルサーバ
からのデータを暗号解読するために、条件付きアクセスサーバによって提供され
るキーイングデータを使用する。本発明では、タイトルはユーザのパーソナルコ
ンピュータで走るが、タイトルはそれの全体が、このパーソナルコンピュータに
ダウンロードされるわけではない。タイトルは電子的なパッケージの中にフォー
マットされており、そのパッケージには、圧縮且つ暗号化された形式で、タイト
ルのファイルが含まれている(以後briqと呼ぶ)。このbriqは、実際に
は、ポータブルな、独立言語ファイルシステムであり、特定のタイトルを実行す
るのに必要なファイルが全て含まれている。briqは、広帯域ネットワークを
介してアクセス可能なネットワークファイルサーバ(以後RAFTサーバと呼ぶ
)に格納されている。SCDPクライアントは、briqを、ユーザのパーソナ
ルコンピュータのローカルファイルシステムの如く取扱う。タイトルを実行する
場合、例えばウィンドウズ(R)のようなオペレーティングシステムが、このよ
うなローカルファイルシステムに読出しを要求する。図示された実施例では、ウ
ィンドウズ(R)仮想デバイスドライバ(VxD)を含むSCDPクライアント
が、RAFTサーバから、briqデータの要求されたブロックを検索すること
によって、このような要求に応える。データの要求されたブロックを検索後、V
xDが、briqデータを圧縮且つ暗号化し、そのデータを、ユーザのパーソナ
ルコンピュータのオペレーティングシステムに送る。
Once the purchase negotiation is complete, the SCDP running on the user's personal computer
Client software obtains the authorization token and keying data from the conditional access server (CAS). This token allows the client process to execute a selected title from a network file server accessible over the broadband network. The data retrieved from the file server is encrypted. The SCDP client process uses the keying data provided by the conditional access server to decrypt the data from the file server. In the present invention, the title runs on the user's personal computer, but the entire title is not downloaded to this personal computer. The title is formatted in an electronic package that contains the title file in a compressed and encrypted form (hereinafter referred to as briq). This briq is actually a portable, independent language file system that contains all the files needed to perform a particular title. The briq is stored in a network file server (hereinafter referred to as RAFT server) accessible via a broadband network. The SCDP client treats briq like a local file system on the user's personal computer. When executing a title, an operating system such as Windows® requests a read from such a local file system. In the illustrated embodiment, a SCDP client, including a Windows® virtual device driver (VxD), responds to such a request by retrieving the requested block of briq data from the RAFT server. After searching the requested block of data, V
The xD compresses and encrypts the briq data and sends the data to the operating system of the user's personal computer.

【0019】 本発明の1つの態様によれば、ソフトウェアタイトルが、ターゲットコンピュ
ータに「インストール」されることは決してない。SCDPクライアントソフト
ウェアによって、1つのインストール抽象が創り出され、現在実行中のタイトル
はホストコンピュータにインストールされている、という錯覚を、オペレーティ
ングシステムに対して維持する。従って、タイトルの実行が終了すると、システ
ム上にはタイトルが実行されたという形跡は何も残らない。タイトルに関連する
ファイルは、パーソナルコンピュータのハードディスクには何も残らず、更にタ
イトルに関連するレジストリ変数などのオペレーティングシステムの状態情報も
一切残存しない。タイトルの利用者は、ゲームなどで獲得した「レベル」のよう
な、プレイ全般に亘って維持することが望ましいと思われる、ある種の状態情報
を保存するオプションを有する。このような状態情報は、後述のライトスルーフ
ァイルに保存できる。
According to one aspect of the invention, the software title is never “installed” on the target computer. The SCDP client software creates an installation abstraction, maintaining the illusion to the operating system that the currently running title is installed on the host computer. Therefore, when the title has finished executing, there is no evidence that the title has been executed on the system. No files associated with the title remain on the hard disk of the personal computer, and no operating system status information such as registry variables associated with the title remains. The user of the title has the option to save some state information that it may be desirable to maintain throughout play, such as "levels" earned in games and the like. Such status information can be stored in a write-through file described later.

【0020】 本発明の別の態様によれば、SCDPクライアントソフトウェアは、本発明の
所有権を主張できるランダムアクセスファイル転送(RAFT)プロトコルを使
用して、広帯域ネットワークを介してbriqデータを検索する。このプロトコ
ルは、SCDPクライアントに、RAFTサーバに格納されているファイル及び
ディレクトリへの読出し専用アクセスを提供する。briqは1つのローカルフ
ァイルシステムとして取り扱われるので、RAFTクライアントは、1つのオペ
レーティングシステムドライブとして存在が認識される必要が無く、又オペレー
ティングシステムのファイルシステムマネージャ、即ち図示された実施例におけ
るウィンドウズ(R)・インストラブル・ファイルシステム(IFS)マネージ
ャに、インターフェースをとる必要がない。従って、RAFTクライアントファ
イルシステムドライバ、即ち図示された実施例におけるVxDは、遠隔又はネッ
トワークファイルシステムドライバよりも小さく、単純である。更に、RAFT
プロトコルは、「帯域幅スロットリング」のようなダイナミック帯域幅の制限を
サポートし、又RAFT許可トークンの使用を通じてアクセス制御をサポートす
る。
According to another aspect of the invention, the SCDP client software retrieves briq data over a broadband network using the proprietary random access file transfer (RAFT) protocol of the invention. This protocol provides SCDP clients with read-only access to files and directories stored on RAFT servers. Since the briq is treated as one local file system, the RAFT client does not need to be recognized as one operating system drive, and the operating system file system manager, ie Windows® in the illustrated embodiment. No need to interface to an Instroub File System (IFS) manager. Thus, the RAFT client file system driver, VxD in the illustrated embodiment, is smaller and simpler than the remote or network file system driver. Furthermore, RAFT
The protocol supports dynamic bandwidth limitations such as "bandwidth throttling" and also supports access control through the use of RAFT authorization tokens.

【0021】 本発明の別の態様によれば、SCDPは、種々の安全機能を用いて、無断アク
セス及びリプレイからコンテンツを保護する。許可トークン及び暗号解読キーは
、条件付きアクセスサーバから入手する。SCDPクライアントとCAS間のネ
ットワーク通信は、安全な遠隔手続き呼出し(RPC)インタフェースを介して
保護される。一旦、安全チャネルがSCDPとCAS間で確立されると、SCD
Pクライアントは、選択されたタイトルのRAFT許可トークン及びキーイング
データを要求する。この許可トークンは、CASからの符号化されたメッセージ
であり、それによって、要求を行っているユーザが、特定のbriqに、特定の
RAFTファイルサーバで、また交渉済みの支払タイプで明確にされた期間、ア
クセスできることを表す。
According to another aspect of the invention, SCDP uses various security features to protect content from unauthorized access and replay. The authorization token and decryption key are obtained from the conditional access server. Network communication between the SCDP client and the CAS is protected via a secure remote procedure call (RPC) interface. Once the secure channel is established between SCDP and CAS, SCD
The P-Client requests RAFT authorization token and keying data for the selected title. This authorization token is an encoded message from the CAS that allows the requesting user to be clarified to a particular briq, a particular RAFT file server, and a negotiated payment type. Indicates that access is possible for a period of time.

【0022】 RAFT許可トークンによって、SCDPクライアントがタイトルのbriq
へのアクセスを許されても、このSCDPクライアントは、タイトルのファイル
データへアクセスするのにbriqを、例えば、圧縮解除及び暗号解読など更に
アンパックしなければならない。CASによって、ユーザはbriqデータを暗
号解読するのに必要なキーイングデータを提供されるが、CASは、SCDPク
ライアントにキーイングデータを直接提供するわけではない。直接提供する代わ
りに、CASは、暗号解読アルゴリズムを実行する曖昧化したバイトコードにキ
ーを埋込むことによって、キーイングデータをユーザから隠す。孤立したキーイ
ングデータをSCDPクライアントに引き渡すのではなく、CASは、曖昧化し
たバイトコード(以後アクティベータと呼ぶ)を引き渡す。SCDPクライアン
トの仮想デバイスドライバが、バイトコード解釈プログラムでこのアクティベー
タを実行することで、briqデータの暗号解読を行う。コード曖昧化によって
、アクティベータを逆行分析するのが困難になり、ハッカーは、このアクティベ
ータからキーイングデータを取り出すためには、かなりの時間と資源を費やさね
ばならなず、一般的には、そのコストは保護されているコンテンツの価値以上に
なる。本発明の意図するところでは、アクティベータは、1件のクライアント当
たり、1つのbriq当たり、また1回の実行当たり只1つであり、即ち、CA
Sから入手されるアクティベータは、それぞれ異なっており、且つ只1回だけ使
用可能である。そうすることで、複数回使用するユーザーに対して、1回ごとの
、コストの掛かる逆行分析を行なおうとする気持ちにさせない。
The RAFT authorization token allows the SCDP client to
Access to the title, the SCDP client must still unpack the briq to access the title's file data, eg decompression and decryption. Although CAS provides the user with the keying data needed to decrypt the briq data, CAS does not provide the keying data directly to the SCDP client. Instead of providing it directly, CAS hides the keying data from the user by embedding the key in an obfuscated bytecode that implements a decryption algorithm. Instead of passing orphaned keying data to the SCDP client, the CAS passes obfuscated bytecodes (hereinafter activators). The virtual device driver of the SCDP client executes the activator with the bytecode interpretation program to decrypt the briq data. Code obfuscation makes retrograde analysis of an activator difficult, and hackers must spend significant time and resources retrieving the keying data from this activator, typically The cost is more than the value of the protected content. For the purposes of this invention, there is only one activator per client, per briq, and per run, ie, CA.
The activators obtained from S are different from each other and can be used only once. By doing so, users who use it multiple times will not be motivated to carry out costly retrograde analysis.

【0023】 本発明によれば、RAFT認証トークン及びアクティベータには、共に限られ
た寿命が設定されている。認証トークンには満了期間が含まれており、それ以後
は無効となる。実行中のアクティベータは、一定の時点で、自己更新のためにC
ASと交換を開始する。その交換に失敗すると、アクティベータが動作不能にな
り、従ってタイトルは動作不能になる。アクティベータの更新を、以後、アクテ
ィベータ保持と呼ぶ。この保持機能の結果、現在実行中のアクティベータに、新
たなキー、データ又はコードすらも含みうる最新版が引き渡されることになる。
認証トークンが更新されるとアクティベータも更新される。新たな認証トークン
は、暗号解読用キーイングデータと一緒に、この新たなアクティベータ内に埋込
まれる。始動時に、更新アクティベータが、SCDPクライアント内のRAFT
・VxDへ新たなRAFT認証トークンを引き渡す。
According to the present invention, both the RAFT authentication token and the activator have a limited lifetime. The authentication token contains the expiration period and is no longer valid. The running activator will at some point C
Start exchange with AS. If that exchange fails, the activator becomes inoperable and thus the title. Update of the activator is hereinafter referred to as activator retention. The result of this retention function is that the currently executing activator is handed the latest version, which may also include new keys, data or even code.
When the authentication token is updated, the activator is also updated. The new authentication token is embedded in this new activator, along with the decryption keying data. At start-up, the update activator causes RAFT in the SCDP client to
• Hand over a new RAFT authentication token to VxD.

【0024】 SCDPシステムは媒体非依存であり、ユーザとネットワークサーバ間に、現
在実行中のCDタイトルの時間要件を満足させるのに十分な帯域幅が存在してい
れば、HFCネットワーク及び電話企業のデジタル加入者回線を含む、任意の広
帯域ネットワーク技術全般で動作するものである。またSCDPシステムは、1
0メガbps及び100メガbpsのイーサネット(R)・ローカルエリアネッ
トワークを使用しても実現でき、例えば、同じようにイントラネットを介して実
行可能なコンテンツを引き渡すための企業ネットワーク内でも実行できる。
The SCDP system is medium independent, and if there is sufficient bandwidth between the user and the network server to meet the time requirements of the currently running CD title, the HFC network and the telephone company It will work with any broadband network technology in general, including digital subscriber lines. The SCDP system has 1
It can also be implemented using 0 Mbps and 100 Mbps Ethernet local area networks, for example within a corporate network for delivering executable content as well over an intranet.

【0025】 本発明の第1の実施例によれば、ネットワークを介してコンテンツを引き渡す
ための方法が、(a)前記ネットワークに機能的に接続されたコンテンツサーバ
上に少なくとも一つのタイトルを、実行不可能な形式で記憶する段階と、(b)
前記ネットワークに機能的に接続されたアクセスサーバに、前記タイトルの位置
識別子と前記タイトルを実行可能な形式に処理するのに必要なデータとを記憶す
る段階と、(c)前記コンテンツサーバから前記タイトルの少なくとも一部を検
索する以前に、前記アクセスサーバから前記タイトルの前記位置識別子を入手す
ることを、前記ネットワークに機能的に接続されたクライアントプロセスに要求
する段階と、(d)前記タイトルの前記一部を実行可能な形式に処理するのに必
要な前記データを、前記アクセスサーバから入手するように、クライアントプロ
セスに要求する段階と、を包含する。
According to a first embodiment of the invention, a method for delivering content over a network comprises: (a) executing at least one title on a content server functionally connected to said network. Storing in an impossible format, (b)
Storing, in an access server functionally connected to the network, a location identifier of the title and data necessary to process the title into an executable format; and (c) the content server to the title. Requesting a client process functionally connected to the network to obtain the location identifier of the title from the access server prior to retrieving at least a portion of the title; Requesting the client process to obtain from the access server the data needed to process a portion into an executable form.

【0026】 本発明の第2の実施例によれば、ネットワークを介してコンテンツを安全に引
き渡すための装置が、(a)前記ネットワークに機能的に接続されると共に、少
なくとも一つのタイトルを、実行不可能な形式で記憶してあるコンテンツサーバ
と、(b)前記ネットワークに機能的に接続されるアクセスサーバであって、前
記タイトルの位置識別子と前記タイトルを実行可能な形式に処理するのに必要な
データとを記憶するアクセスサーバと、(c)前記ネットワークに機能的に接続
されるクライアントシステムであって、前記タイトルの前記位置識別子と前記タ
イトルの前記一部を実行可能な形式に処理するのに必要な前記データとを、前記
アクセスサーバから入手するように構成されたプログラムロジックを含んだクラ
イアントシステムと、を包含する。
According to a second embodiment of the present invention, a device for securely delivering content over a network is (a) functionally connected to said network and executing at least one title. A content server stored in an impossible format, and (b) an access server functionally connected to the network, required to process the location identifier of the title and the title into an executable format An access server for storing various data, and (c) a client system functionally connected to the network for processing the location identifier of the title and the portion of the title into an executable format. A client including program logic configured to obtain the data required for the access server from the access server. And the system.

【0027】 本発明の第3の実施例によれば、ネットワークを介してコンテンツを引き渡す
ための装置が、(A)前記ネットワークに接続可能なコンテンツ・サーバシステ
ムであって、(A.1)時間間隔を特定するデータを含くむと共にクライアント
プロセスから受け取ったトークンに応答する認証ロジックであって、前記クライ
アントプロセスが特定の時間にメモリにアクセスする許可を受けているかどうか
を判断する認証ロジックと、(A.2)前記クライアントプロセスから受け取ら
れる共に前記メモリに記憶されたタイトルの一つを固有に特定するデータを含ん
だ前記トークンに応答するアクセスプログラムロジックであって、前記メモリ及
び前記トークンにより固有に特定された前記タイトルに対するアクセスを可能と
するアクセスプログラムロジックとを包含した、コンテンツサーバシステムと、
(B)前記ネットワークに接続可能なアクセスサーバシステムであって、(B.
1)クライアントプロセスが提供したタイトルの固有識別子に応答する変換プロ
グラムロジックであって、前記タイトルの前記固有識別子を、前記ネットワーク
上の、前記タイトルにアクセス可能なアドレスを示す位置識別子に変換するよう
構成されている変換プログラムロジックと、(B.2)クライアントプロセスか
らの要求に応答するアクティベータ生成ロジックであって、前記要求に応答して
アクティベータを生成するアクティベータ生成ロジックと、を包含するアクセス
サーバシステムと、(C)前記ネットワークに接続可能なクライアントシステム
であって、(C.1)前記アクセスサーバシステムから、トークンと、アクティ
ベータと、特定されたタイトルにアクセスできる前記コンテンツサーバの位置識
別子とを入手するよう構成されたプログラムロジックと、(C.2)前記コンテ
ンツサーバから前記特定されたタイトルの少なくとも一部を検索するよう構成さ
れたプログラムロジックと、(C.3)前記コンテンツサーバから検索された前
記タイトルの前記一部を実行するよう構成されたプログラムロジックと、を包含
するクライアントシステムと、を包含する。
According to the third embodiment of the present invention, the device for delivering the content via the network is (A) a content server system connectable to the network, and (A.1) time is required. Authentication logic including data specifying an interval and responding to a token received from a client process, the authentication logic determining whether the client process is authorized to access memory at a particular time; A.2) An access program logic responsive to the token including data uniquely identifying one of the titles received from the client process and stored in the memory, the access program logic being unique to the memory and the token. The access that enables access to the specified title. Content server system including a process program logic,
(B) An access server system connectable to the network, comprising:
1) A conversion program logic responsive to a unique identifier of a title provided by a client process, configured to convert the unique identifier of the title into a location identifier on the network indicating an address accessible to the title (B.2) Activator generation logic that responds to a request from a client process, the activator generation logic that generates an activator in response to the request. A server system, and (C) a client system connectable to the network, and (C.1) a token, an activator, and a location identifier of the content server that can access the specified title from the access server system. And get (C.2) program logic configured to retrieve at least a portion of the identified title from the content server; and (C.3) the title retrieved from the content server. And a client system that includes program logic configured to execute the portion of.

【0028】 本発明の第4の実施例によれば、ローカルコンピュータシステム上のアプリ
ケーションを、そのアプリケーションが前記ローカルコンピュータシステムにイ
ンストールされていなくても実行する方法が、(a)ネットワークマウント可能
なファイルシステムと前記アプリケーションに関連した一組のレジストリエント
リとにアクセスする段階と、(b)前記ネットワークファイルシステムをマウン
トする段階と、(c)前記レジストリエントリを前記ローカルコンピュータシス
テムに記憶する段階と、(d)遠隔源から前記アプリケーションの少なくとも一
部を検索する段階と、(e)前記ローカルコンピュータシステムのオペレーティ
ングシステムの制御下で前記アプリケーションを実行する段階と、(f)前記オ
ペレーティングシステムからの要求を傍受する段階と、(g)前記傍受した要求
の選択部分を、前記ローカルコンピュータシステムに記憶されたレジストリエン
トリに転送する段階とを包含する。
According to a fourth embodiment of the present invention, there is provided a method of executing an application on a local computer system even if the application is not installed on the local computer system, comprising: (a) a network mountable file. Accessing a system and a set of registry entries associated with the application; (b) mounting the network file system; and (c) storing the registry entry on the local computer system. d) retrieving at least a portion of the application from a remote source; (e) executing the application under control of the operating system of the local computer system; and (f) the operation. Intercepting a request from a remote system, and (g) forwarding the selected portion of the intercepted request to a registry entry stored on the local computer system.

【0029】 本発明の第5の実施例によれば、アプリケーションをコンピュータシステムに
インストールしなくても実行するためのシステムが、ネットワークファイルシス
テムをマウントすると共に前記アプリケーションに関連した複数のレジストリエ
ントリをメモリに記憶するように構成されたプログラムロジックと、遠隔源から
前記アプリケーションの少なくとも一部を検索するように構成されたプログラム
ロジックと、前記オペレーティングシステムからの要求に応答するプログラムロ
ジックであって、前記オペレーティングシステムからの要求を傍受すると共に前
記傍受した要求の選択部分を前記レジストリエントリに転送するよう構成された
プログラムロジックとを包含する。
According to a fifth embodiment of the present invention, a system for executing an application without installing it on a computer system mounts a network file system and stores a plurality of registry entries associated with the application. A program logic configured to store at least a portion of the application from a remote source, the program logic responsive to a request from the operating system, the operating system comprising: Program logic configured to intercept a request from a system and forward a selected portion of the intercepted request to the registry entry.

【0030】 本発明の第6の実施例によれば、タイトルのオンデマンド引き渡しを可能とす
る方法が、(a)前記アクセスサーバからトークンと、アクティベータと、特定
されたタイトルがアクセス可能なソースのネットワークアドレスとを入手する段
階と、(b)前記トークンを前記ソースに送信する段階であって、このトークン
データが、前記ソースにアクセス可能な時間間隔を定義する、送信段階と、(c
)前記ソースから前記タイトルの少なくとも一部を検索する段階と、(d)前記
ソースから検索したタイトルの前記一部を実行する段階と、(e)前記アクセス
サーバから更新されたトークンを入手する段階とを包含する。
According to the sixth embodiment of the present invention, a method for enabling on-demand delivery of titles includes (a) a token, an activator, and a source from which the specified title can be accessed from the access server. And (b) sending the token to the source, the token data defining a time interval during which the source is accessible, and (c)
) Retrieving at least a portion of the title from the source; (d) Performing the portion of the title retrieved from the source; (e) Obtaining an updated token from the access server. Includes and.

【0031】 本発明の第7の実施例によれば、要求プロセスによるタイトルへのアクセスを
可能にする方法が、(a)要求プロセスからのランチストリングを認証する段階
と、(b)要求プロセスから受け取ったタイトルの固有識別子を、このタイトル
にアクセス可能な前記コンピュータネットワーク上のアドレスを示す位置識別子
に変換する段階と、(c)アクティベータを生成する段階と、(d)前記アクテ
ィベータを前記コンピュータネットワークを介して前記要求プロセスに送る段階
とを包含する。
According to a seventh embodiment of the present invention, a method for enabling a requesting process to access a title comprises: (a) authenticating a launch string from the requesting process; and (b) from the requesting process. Converting the received unique identifier of the title into a location identifier indicating an address on the computer network that can access the title; (c) generating an activator; Sending to the requesting process via a network.

【0032】 本発明の第8の実施例によれば、ロセッサと、メモリと、ネットワークインタ
ーフェースとを備えると共に、コンピュータネットワーク 1つかそれ以上のク
ライアントプロセスに接続可能なサーバ装置で用いる方法が、(a)クライアン
トプロセスから、一定時間を特定するデータとタイトルを固有に特定するデータ
とを含んだトークンを前記ネットワークインターフェースを介して受け取る段階
と、(b)前記クライアントプロセスが特定の時間に前記タイトルにアクセスす
る許可を受けているかどうか判断する段階と、(c)前記段階(d)において前
記クライアントが許可されていれば、前記メモリと前記トークンにより固有に特
定されているタイトルにアクセスする段階と、(d)前記トークンにより特定さ
れている前記タイトルの少なくとも一部を前記クライアントに供給する段階とを
含んでいる。
According to an eighth embodiment of the present invention, there is provided a method of using a server device comprising a processor, a memory, and a network interface and connectable to one or more client processes of a computer network (a ) Receiving a token containing data specifying a certain time and data uniquely specifying a title from the client process via the network interface, and (b) the client process accessing the title at a specific time. (C) accessing the title uniquely identified by the memory and the token if the client is authorized in step (d), (c) d) specified by the token At least part of the serial title and a supplying to the client.

【0033】 本発明の第9の実施例によれば、1つかそれ以上の要求者プロセスへのタイト
ルのコンピュータネットワークを介した選択的引き渡しを可能とするする方法が
、(a)要求者プロセスに、前記コンピュータネットワーク上のアドレスに実行
不可能な形式で記憶されているタイトルの選択した部分へのアクセスを所定の条
件で提供し、(b)前記要求者プロセスに、前記タイトルを実行不可能な形式か
らの実行可能な形式への処理に有用なデータを提供する段階と、(c)前記タイ
トルが前記コンピュータ上にインストールされるのを防止する一方で、前記コン
ピュータシステムにおける前記タイトルの選択した部分の実行を許容する段階と
を包含する。
According to a ninth embodiment of the present invention, a method for enabling the selective delivery of titles to one or more requestor processes via a computer network includes: Providing access to a selected portion of a title stored in an inexecutable form at an address on the computer network under predetermined conditions, and (b) providing the requestor process with an inexecutable title. Providing data useful for processing from format to executable format, and (c) preventing the title from being installed on the computer while selecting a portion of the title in the computer system. And allowing the execution of.

【0034】 本発明の第10番目の実施例によれば、タイトルをコンピュータネットワーク
を介して1つかそれ以上の要求者プロセスに引き渡す方法が、(a)要求者プロ
セスから、タイトルを特定するデータを受け取り、(b)前記要求者プロセスに
、前記タイトルにアクセス可能な前記コンピュータネットワーク上の位置を特定
するデータと前記タイトルにアクセスするのに必要な許可データとを提供する段
階と、(c)前記要求者プロセスから支払い情報を受け取る段階とを包含する。
According to the tenth embodiment of the present invention, a method for delivering a title to one or more requester processes via a computer network is as follows: (a) data for specifying a title from the requester process And (c) providing the requester process with data identifying a location on the computer network that has access to the title and authorization data necessary to access the title; Receiving payment information from the requestor process.

【0035】 本発明の第11番目の実施例によれば、コンピュータネットワークを介して1
つかそれ以上の要求者プロセスへ機能的に接続されたコンピュータシステムで使
用されるコンピュータプログラム製品が、 (a)前記ネットワークに接続された要求者プロセスから選択したタイトルを特
定するデータを検索するよう構成されたプログラムコードと、(b)前記要求者
プロセスから支払い情報を受け取るよう構成されたプログラムコードと、(c)
前記要求者プロセスが、前記タイトルの選択した部分にアクセスしてダウンロー
ドするのを可能にするよう構成されたプログラムコードと、(d)前記タイトル
がコンピュータシステム上での実行は許容する一方、前記タイトルの前記コンピ
ュータシステムへのインストールは防止するよう構成されたプログラムコードと
、を包含する。
According to an eleventh embodiment of the present invention, 1 via a computer network
A computer program product for use in a computer system operably connected to one or more requestor processes is configured to: (a) retrieve data identifying a selected title from the network-connected requester processes. Program code, (b) program code configured to receive payment information from the requester process, and (c)
Program code configured to enable the requestor process to access and download selected portions of the title; and (d) the title allows execution on a computer system while the title Is installed on the computer system, and the program code is configured to prevent the installation.

【0036】 実施例の詳細な説明 図1に示すのは、カリフォルニア州パロアルトのサン・マイクロシステムズ社
から市販されているサンスパークステーション5ワークステーション又はニュー
ヨーク州アーモックのインターナショナル・ビジネス・マシーンズ社から共に市
販されているIBM RS/6000ワークステーション又はIBMアプティバ
・パーソナルコンピュータのようなコンピュータシステム100用のシステムア
ーキテクチャであり、このようなアーキテクチャ上で本発明を実施することがで
きる。図1のコンピュータシステムは、説明目的の例示にすぎない。この説明で
、特定のコンピュータシステムを説明する際に共通して使われる用語に言及する
場合があるが、本説明及び概念は、図1と異なるアーキテクチャを有するシステ
ムを含め、他のシステムにも等しく該当する。
Detailed Description of Examples FIG. 1 shows both Sun Spark Station 5 Workstation commercially available from Sun Microsystems, Inc. of Palo Alto, Calif. Or International Business Machines Inc. of Ammok, NY. A system architecture for a computer system 100, such as an IBM RS / 6000 workstation or an IBM Attiva personal computer, in which the present invention may be implemented. The computer system of FIG. 1 is for illustration purposes only. Although this description may refer to terms commonly used in describing a particular computer system, the present description and concepts are equally applicable to other systems, including systems having different architectures than FIG. Applicable

【0037】 コンピュータシステム100は、従来のマイクロプロセッサを用いて実行可能
な中央演算処理装置(CPU)105、情報の一時記憶用のランダムアクセスメ
モリ(RAM)110及び情報の永久記憶用の読出し専用記憶素子(ROM)1
15を包含する。メモリ制御装置120は、RAM110を制御するために配設
されている。
The computer system 100 includes a central processing unit (CPU) 105 that can be executed using a conventional microprocessor, a random access memory (RAM) 110 for temporary storage of information, and a read-only storage for permanent storage of information. Element (ROM) 1
Includes 15. The memory control device 120 is arranged to control the RAM 110.

【0038】 バス130は、コンピュータシステム100の構成要素を相互接続する。バス
コントローラ125は、バス130を制御するために配設されている。割込み制
御装置135は、システム構成要素からの種々の割込み信号を受信及び処理する
ために用いられる。
Bus 130 interconnects the components of computer system 100. The bus controller 125 is arranged to control the bus 130. Interrupt controller 135 is used to receive and process various interrupt signals from system components.

【0039】 大容量記憶装置は、ディスケット142、CD−ROM147又はハードドラ
イブ152であってもよい。データ及びソフトウェアは、ディスケット142及
びCD−ROM147のような取外し可能な媒体を介して、コンピュータシステ
ム100とやり取り可能である。ディスケット142は、ディスケット駆動装置
141へ挿入可能であり、その駆動装置は制御装置140を介して、更にバス3
0に接続している。同様に、CD−ROM147は、CD−ROM駆動装置14
6へ挿入可能であり、その駆動装置は制御装置145を介して、更にバス130
に接続している。ハードディスク152は、制御装置150を介してバス130
に接続されている固定ディスク駆動装置151の一部をなす。
The mass storage device may be a diskette 142, a CD-ROM 147 or a hard drive 152. Data and software can be exchanged with computer system 100 via removable media such as diskette 142 and CD-ROM 147. The diskette 142 is insertable into the diskette drive 141, which drive is via the controller 140 and further into the bus 3.
Connected to 0. Similarly, the CD-ROM 147 is the CD-ROM drive 14
6 and its drive is connected via the controller 145 to the bus 130.
Connected to. The hard disk 152 is connected to the bus 130 via the control device 150.
It forms part of the fixed disk drive 151 connected to the.

【0040】 コンピュータ100へのユーザ入力には、複数の装置がなりうる。例えば、キ
ーボード156及びマウス157が、制御装置155を介してバス130に接続
されている。マイクロホンとしても又スピーカとしても動作可能なオーディオト
ランジューサ196が、図に示すように、オーディオ制御装置197を介してバ
ス130に接続されている。ペン及び/又はタブロイドのようなその他の入力装
置が、必要であればバス130及び適切な制御装置やソフトウェアに接続されう
ることは、通常の技能を備えた当業者には明らかであろう。DMA制御装置が、
RAMに対して直接記憶呼出しを実行するために配設されている。視覚的表示は
、ビデオ表示装置170を制御するビデオ制御装置165によって生成される。
コンピュータシステム100には、バス191及びネットワーク195によって
概略的に示されているように、このコンピュータシステムがローカルエリアネッ
トワーク(LAN)又は広域ネットワーク(WAN)と相互接続するを可能にす
る通信アダプタ190も包含されている。
User input to the computer 100 can be multiple devices. For example, a keyboard 156 and a mouse 157 are connected to the bus 130 via the control device 155. An audio transducer 196, which can operate both as a microphone and as a speaker, is connected to the bus 130 via an audio controller 197, as shown. It will be apparent to those of ordinary skill in the art that other input devices such as pens and / or tabloids can be connected to the bus 130 and appropriate control devices and software if desired. DMA controller
Arranged to perform direct store calls to RAM. The visual display is generated by the video controller 165 which controls the video display 170.
Computer system 100 also includes a communication adapter 190 that enables the computer system to interconnect with a local area network (LAN) or wide area network (WAN), as indicated schematically by bus 191 and network 195. Is included.

【0041】 コンピュータシステム100の動作は、ワシントン州レドモンドのマイクロソ
フト社から市販されているウィンドウズ(R)95又はウィンドウズ(R)NT
のようなオペレーティングシステムソフトウェアによって全体的に制御及び調整
される。このオペレーティングシステムは、システム資源の割付けを制御し更に
、とりわけ、処理スケジュール、記憶域管理、ネットワーキング及び出入力サー
ビスのようなタスクを実行する。特に、システム記憶装置に常駐し、CPU10
5で走るオペレーティングシステムは、コンピュータシステム100のその他の
構成要素の動作を調整する。本発明は、OS/2(登録商標)、UNIX(R)
、Linux及びSolaris(登録商標)を含む任意の数の市販されている
オペレーティングシステムを用いて実行してもよい。ネットスケープ・コミュニ
ケーションズ社から市販のネットスケープナビゲータのバージョン2.0以上及
びワシントン州レドモンドのマイクロソフト社から市販のインターネットエクス
プローラのバージョン1.0以上等の1つ又はそれ以上のブラウザアプリケーシ
ョンが、これらのオペレーションシステムの制御下で実行できる。
The operation of computer system 100 operates with Windows® 95 or Windows® NT commercially available from Microsoft Corporation of Redmond, Washington.
It is entirely controlled and coordinated by operating system software such as. The operating system controls the allocation of system resources and also performs tasks such as processing schedules, storage management, networking and input / output services, among others. In particular, the CPU 10 is resident in the system storage device.
The operating system running 5 coordinates the operation of the other components of computer system 100. The present invention is OS / 2 (registered trademark), UNIX (R)
, Linux and Solaris® may be used to run with any number of commercially available operating systems. One or more browser applications, such as Netscape Navigator, version 2.0 or higher, available from Netscape Communications, Inc., and Internet Explorer, version 1.0 or higher, available from Microsoft, Inc., Redmond, Wash. Can be run under control.

【0042】 SCDPシステムの概説 図2Aに概念的に図示されているのは、本発明による安全なコンテンツ引き渡
しプラットホーム(SCDP)システム200及び広帯域ネットワーク環境にお
けるその他の要素であり、このような環境は例示目的のためにすぎず限定を意図
したものではない。図2Aに示す要素によって、本発明が簡便化され且つ理解さ
れるはずである。図2Aで示されたり、又はここに説明されている要素は、本発
明の実施又は動作にとって必ずしも全てが必要であるわけではない。図2Aに示
す如く、SCDPシステム200は、条件付きアクセスサーバ(CAS)210
、付随のCASデータベース212、ランダムアクセスファイル転送サーバ(R
AFT)206、RAFTデータベース208及びSCDPクライアント216
を包含する。
SCDP System Overview Illustrated schematically in FIG. 2A is a secure content delivery platform (SCDP) system 200 in accordance with the present invention and other elements in a broadband network environment, such environment being illustrated. It is intended for purposes only and not intended to be limiting. The elements shown in FIG. 2A should simplify and understand the present invention. Not all of the elements shown in FIG. 2A or described herein are necessary for the practice or operation of the invention. As shown in FIG. 2A, the SCDP system 200 includes a conditional access server (CAS) 210.
, An attached CAS database 212, a random access file transfer server (R
AFT) 206, RAFT database 208 and SCDP client 216
Includes.

【0043】 CASサーバ210、RAFTサーバ206及びSCDPクライアント216
に加えて、本発明は、仮想店舗ショーウインドウ215及びEコマースサーバ2
02の使用を意図している。Eコマースサーバ202は、付随する課金データベ
ース204を有する。店舗ショーウインドウ215は、付随するデータベース2
13を有する。例示の実施例では、サーバ202、210及び215が、ローカ
ルイーサネット(R)ネットワークのような、専用の、安全なローカルエリアネ
ットワーク(LAN)を介して接続されている。そのLANは更に、インターネ
ットサービスプロバイダ(ISP)230を介して、図2Aのインターネットク
ラウド240として示されているように、広域コンピュータネットワークトポロ
ジに接続されている。MCI・WorldCom、AT&T、アメリカオンライ
ン等の任意の商業利用可能なインターネットアクセスサービスプロバイダを、I
SP230として使用してもよい。例示の実施例では、サーバ202,210及
び215が、専用ローカルエリアネットワークを介して接続されているものとし
て示してあるが、このようなサーバは、インターネットのような他の非専用ネッ
トワークを介して機能的に接続されてもよいことは、当業者には明らかであろう
。更に、Eコマースサーバ202が、金融又は銀行機関(図示せず)のクレジッ
ト取扱いサーバに接続されることで、クレジットカード及び/又は別種の取引の
取扱いを促進する。
The CAS server 210, RAFT server 206 and SCDP client 216
In addition to the virtual store show window 215 and the e-commerce server 2,
02 is intended for use. The e-commerce server 202 has an associated billing database 204. The store show window 215 is associated with the database 2
Have 13. In the illustrated embodiment, servers 202, 210 and 215 are connected via a dedicated, secure local area network (LAN), such as a local Ethernet network. The LAN is further connected to a wide area computer network topology, shown as an internet cloud 240 in FIG. 2A, via an internet service provider (ISP) 230. Any commercially available Internet access service provider such as MCI / WorldCom, AT & T, America Online, etc.
It may be used as SP230. In the illustrated embodiment, the servers 202, 210 and 215 are shown as being connected via a dedicated local area network, but such servers may be connected via other non-dedicated networks such as the Internet. It will be apparent to those skilled in the art that they may be functionally connected. In addition, the e-commerce server 202 is connected to a credit handling server of a financial or banking institution (not shown) to facilitate handling of credit cards and / or other types of transactions.

【0044】 再び図2Aを参照すると、図1と同様のアーキテクチャを有する、1つ又はそ
れ以上のクライアントパーソナルコンピュータが、広帯域アクセスネットワーク
203及びケーブルプロバイダ207を介してSCDPシステム200に接続さ
れている。例示の実施例では、ケーブルモデム(CM)は、SCDPクライアン
トが実行しているホストコンピュータに接続する。次いで、複数のケーブルモデ
ムが、高周波接続を経由してケーブルノードに連結されている。一般的には、1
000ものホストパーソナルコンピュータが、適切なケーブルモデム及び高周波
接続を介して1つのケーブルノードに接続しうる。各ケーブルノードは、更にケ
ーブルモデム終端システム(CMTS)を介して終端ヘッドエンドに接続されて
いる。複数のケーブルモデムが、1つの終端ヘッドエンドに接続されている。複
数の相互接続されたヘッドエンドは、広帯域アクセスネットワークの中枢を構成
する。これらのケーブルヘッドエンドは、ケーブル会社の施設に配置されている
のが一般的であり、更にT1回線又は別の接続を介して、インターネットプロト
コル(IP)ネットワークに接続されているホストデータ端末装置を含んでもよ
い。このT1回線は、更にインターネットサービスプロバイダ(ISP)230
を介してインターネットに接続されうる。RAFTサーバ206及びそれに付随
するデータベース208が、インターネットサービスプロバイダ230と、ケー
ブル会社が提供するホストデータ終端施設又はヘッドエンドとの間で、広帯域ア
クセスネットワーク203に接続されている。このようにして、RAFTサーバ
206は、SCDPシステム200の一部をなすが、CAS210、Eコマース
サーバ202及び仮想店舗ショーウインドウ215から遠隔配置されている。ケ
ーブルモデム終端システム209は、ケーブル通信施設からの高周波データを、
公開されているケーブル経由データサービス工業規格(DOCSIS)を適用し
て、インターネットプロトコルフォーマットに変換する。
Referring again to FIG. 2A, one or more client personal computers having an architecture similar to that of FIG. 1 are connected to the SCDP system 200 via a broadband access network 203 and a cable provider 207. In the illustrated embodiment, a cable modem (CM) connects to a host computer running a SCDP client. A plurality of cable modems are then coupled to the cable node via radio frequency connections. Generally, 1
As many as 000 host personal computers can connect to one cable node via a suitable cable modem and high frequency connection. Each cable node is further connected to a terminating headend via a cable modem termination system (CMTS). Multiple cable modems are connected to one terminating headend. Multiple interconnected headends form the backbone of a broadband access network. These cable headends are typically located at the cable company's premises and also include host data terminal equipment connected to the Internet Protocol (IP) network via a T1 line or another connection. May be included. This T1 line is further connected to the Internet service provider (ISP) 230.
Can be connected to the Internet via. The RAFT server 206 and its associated database 208 are connected to the broadband access network 203 between the internet service provider 230 and the host data termination facility or headend provided by the cable company. In this way, the RAFT server 206, which forms a part of the SCDP system 200, is located remotely from the CAS 210, the e-commerce server 202, and the virtual shop show window 215. The cable modem termination system 209 uses the high frequency data from the cable communication facility to
The published data over cable service industry standard (DOCSIS) is applied to convert to the Internet protocol format.

【0045】 或いは、図2Aで示すように、クライアント・パーソナルコンピュータを、デ
ジタル加入者回線(DSL)経由で、SCDPシステム200に接続してもよい
。このような構成では、SCDPクライアントが実行されているホストコンピュ
ータは、DSLモデム及び既存の一般の交換電話回線施設を経由して電話会社の
スイッチと接続される。
Alternatively, as shown in FIG. 2A, a client personal computer may be connected to the SCDP system 200 via a digital subscriber line (DSL). In such a configuration, the host computer running the SCDP client is connected to the telephone company switch via the DSL modem and existing common switched telephone line facilities.

【0046】 DSL加入者ネットワーク及び広帯域アクセスネットワークの構造は、本発明
の分野では公知であり且つケーブル会社及び電話会社によって現在広範に使用さ
れているので、簡略のために此処ではこれ以上詳しく説明することは控えたい。
よって、必ずしも上記説明のシステムの全要素が図2Aで示されているわけでは
ない。
The structure of DSL subscriber networks and broadband access networks is well known in the field of the invention and is currently widely used by cable companies and telephone companies, and is therefore described in more detail here for the sake of brevity. I want to refrain from that.
Thus, not all elements of the system described above are shown in FIG. 2A.

【0047】 加入手順 図2Bは、SCDPシステム200内の構成要素の相互作用を概念的に示した
ものである。図4A乃至4Bのフローチャートは図2Bの概念ブロック図と合わ
せて、加入処理及びランチ(原語:launch)処理中にSCDPシステム200が
実行する本発明による処理ステップを示す。
Subscription Procedure FIG. 2B conceptually illustrates the interaction of the components within the SCDP system 200. The flow charts of FIGS. 4A-4B, in combination with the conceptual block diagram of FIG. 2B, show the processing steps according to the present invention performed by the SCDP system 200 during a join process and a launch process.

【0048】 パーソナルコンピュータ上でネットスケープ・ナビゲータ又はマイクロソフト
・インターネットエキスプローラのようなHTMLブラウザを実行中のSCDP
クライアント216を使用しているユーザは、ステップ401に示したように仮
想店舗ショーウインドウ215からタイトルを選択する。店舗ショーウインドウ
215では、入手可能な各タイトルは、汎用資源ロケータ(URL)内部に埋め
込まれたデジタルオッファーとして表示してある。このデジタルオッファーは選
択したタイトル及び購入タイプを特定する情報を含んでいる。ステップ402に
示したように、デジタルオッファーを選択すると、加入者のブラウザをEコマー
スサーバ202のHTTPフロントエンド202Aに送る。ステップ403に示
したように、ユーザは、デジタルオッファーURL内の情報に基づきEコマース
サーバ202と購入交渉する。この交渉にはユーザ登録とクレジット情報の提供
が通常含まれる。
SCDP running an HTML browser such as Netscape Navigator or Microsoft Internet Explorer on a personal computer
The user using the client 216 selects a title from the virtual store show window 215 as shown in step 401. In the store show window 215, each available title is displayed as a digital offer embedded within a universal resource locator (URL). This digital offer contains information identifying the selected title and purchase type. As shown in step 402, selecting the digital offer sends the subscriber's browser to the HTTP front end 202A of the e-commerce server 202. As shown in step 403, the user negotiates a purchase with the e-commerce server 202 based on the information in the digital offer URL. This negotiation usually involves user registration and provision of credit information.

【0049】 ステップ404Aに示したように、Eコマースサーバは、購入を特定し且つ許
可する情報を含んだランチストリングを生成する。この情報には所望のコンテン
ツを固有に特定する汎用資源名(URN)が含まれる。このURN及びランチス
トリングの形式及び記述は後に説明する。ステップ404Bに示したように、ラ
ンチストリングは、CAS210によってデジタル署名され、SCDPクライア
ント216に送達するためにEコマースサーバ202に送信される。
As shown in step 404A, the e-commerce server generates a launch string containing information identifying and authorizing the purchase. This information includes a universal resource name (URN) that uniquely identifies the desired content. The format and description of this URN and launch string will be described later. The launch string is digitally signed by the CAS 210 and sent to the e-commerce server 202 for delivery to the SCDP client 216, as shown in step 404B.

【0050】 ランチストリングは、MIME(多目的インターネットメッセージ拡張仕様)
ヘッダでパックされている。ステップ405に示したように、ランチストリング
がSCDPクライアントのブラウザ224に受け取られると、ランチストリング
に関連付けられたMIMEタイプをレジストリエントリ内に探し出し、その結果
としてSCDPクライアント216内部のランチャモジュール220が呼び出さ
れることになる。ステップ406Aに示したように、ランチャ220はCAS2
10と安全な接続を確立して、CASが指定したURNのURLを提供するよう
に、つまりURNからURLへの変換を要求する。URLは該当するbriqデ
ータの位置を特定する。CAS210は該当するURLをランチャ220に送る
。ステップ406Bに示したように、一旦ランチャは対応するbriqデータの
位置を特定すると、ランチストリングを含んだ購入要求をCASに送る。
The lunch string is MIME (multipurpose Internet message extension specification)
Packed with headers. As shown in step 405, when the launch string is received by the browser 224 of the SCDP client, it looks up the MIME type associated with the launch string in the registry entry, which results in the launcher module 220 within the SCDP client 216 being invoked. It will be. As shown in step 406A, launcher 220 uses CAS2.
It establishes a secure connection with 10 and requests that the CAS provide the URL of the specified URN, ie, the conversion of the URN to the URL. The URL specifies the position of the corresponding briq data. The CAS 210 sends the corresponding URL to the launcher 220. Once the launcher locates the corresponding briq data, as shown in step 406B, it sends a purchase request containing the launch string to the CAS.

【0051】 ステップ407に示したように、CASはランチストリングの署名を確認して
、RAFT許可トークン及びアクティベータをランチャに返す。アクティベータ
及び許可トークンは後に詳しく説明する。許可トークンはアクティベータ内部に
埋め込まれていてもよい。次に、ステップ408に示したように、ランチャはア
クティベータをARFSD・VxD218に渡すことでタイトルをランチする。
ARFSD・VxDはアクティベータを実行し、RAFT許可トークンをRAF
T・VxD222に回す。ステップ409に示したようにRAFT・VxDはU
RLを開けてヘッダを読む。RAFT・VxD222は、ステップ410に示し
たように最初の許可トークンをRAFTサーバに送る。ステップ411に示した
ように、RAFT・VxD222はRAFTサーバ206からのコンテンツを読
み始め、受け取ったコンテンツをARFSD・VxD218に戻す。ステップ4
12に示したように、ARFSD・VxDは、アクティベータを用いてbriq
データ形式のコンテンツを解読及び復元解凍し、更に、解読データのブロックに
保全性チェックを行う。
As shown in step 407, the CAS verifies the launch string signature and returns the RAFT authorization token and activator to the launcher. The activator and authorization token will be described in detail later. The authorization token may be embedded inside the activator. Next, as shown in step 408, the launcher launches the title by passing the activator to the ARFSD VxD 218.
ARFSD / VxD executes the activator and issues the RAFT authorization token to RAF
Turn to T-VxD222. RAFT VxD is U as shown in step 409.
Open RL and read the header. The RAFT VxD 222 sends the initial authorization token to the RAFT server as shown in step 410. As shown in step 411, RAFT VxD 222 begins reading the content from RAFT server 206 and returns the received content to ARFSD VxD 218. Step 4
As shown in 12, ARFSD VxD uses bridging with an activator.
The contents of the data format are decrypted, decompressed and decompressed, and the blocks of decrypted data are integrity checked.

【0052】 その後、ステップ413に示したように、オペレーティングシステムはARF
SD VxDが提供するローカルファイルシステムを介してタイトルを実行する
。アクティベータはランチャ220に対し定期的に要求して、CAS210にア
クティベータ及びRAFT許可トークンを更新させる。ステップ414に示した
ように、最初の要求が出されると、CASは購入をEコマースサーバ202に通
知して、取引が成立つまり完了する。最初のアクティベータの寿命は数分程度の
場合もある。第1回目のタイムアウト後に正しくアクティベータが更新されると
、このタイトルがうまく実行されていることを示す。
Thereafter, as shown in step 413, the operating system is ARF.
The title is executed via the local file system provided by SD VxD. The activator periodically requests the launcher 220 to cause the CAS 210 to update the activator and RAFT authorization token. As shown in step 414, when the first request is made, the CAS notifies the e-commerce server 202 of the purchase and the transaction is closed or complete. The life of the first activator may be several minutes. If the activator is updated properly after the first timeout, this indicates that this title has been successfully executed.

【0053】 システム構成要素及びそれらの相互作用の大筋をこうして説明したところで、
本発明の安全なコンテンツ引渡しシステム200及びそこで実行される処理を図
3A乃至14を参照して説明する。
Having thus described the outline of the system components and their interaction,
The secure content delivery system 200 of the present invention and the processing performed therein will be described with reference to FIGS. 3A-14.

【0054】 SCDPクライアント 図3Aを参照すると、本発明によるSCDPクライアント216の概念ブロッ
ク図を示す。SCDPクライアント216により、ユーザはホスト・パーソナル
コンピュータ上でbriq符号化されたタイトルを実行できる。図3Aに示した
ように、SCDPクライアントは、ランチャ220、アレパ・ファイルシステム
・ドライバVxD(ARFSD・VxD)218、及びRAFTクライアントV
xD222を包含する。SCDPクライアント216は、オペレーティングシス
テム219(例えば、本実施例ではウィンドウズ(R)アプリケーション)上を
実行可能なアプリケーションとして実現してもよい。図1を参照して説明したよ
うに、オペレーティングシステム219はIBM・PC又はその他のコンピュー
タ・アーキテクチャのようなパーソナルコンピュータ・アーキテクチャ上で実行
可能である。SCDPクライアント216に加え、ブラウザ217(一般的には
ネットスケープナビゲータ又はマイクロソフト・エキスプローラなどのHTML
ブラウザ)は、オペレーティングシステム219の制御下に実行してもよい。ラ
ンチャ220、ARFSD・VxD218及びRAFT・VxD222は、後に
図3B乃至3Dをそれぞれ参照してより詳しく説明する。
SCDP Client Referring to FIG. 3A, there is shown a conceptual block diagram of a SCDP client 216 according to the present invention. The SCDP client 216 allows a user to run a briq encoded title on the host personal computer. As shown in FIG. 3A, the SCDP client includes a launcher 220, an arepa file system driver VxD (ARFSD / VxD) 218, and a RAFT client V.
xD222 is included. The SCDP client 216 may be realized as an application that can be executed on the operating system 219 (for example, a Windows (R) application in this embodiment). As described with reference to FIG. 1, operating system 219 can execute on a personal computer architecture such as an IBM PC or other computer architecture. In addition to the SCDP client 216, a browser 217 (typically an HTML such as Netscape Navigator or Microsoft Explorer)
Browser) may run under the control of operating system 219. Launcher 220, ARFSD VxD 218 and RAFT VxD 222 will be described in more detail below with reference to FIGS. 3B-3D, respectively.

【0055】 図3Bは、SCDPクライアント216のランチャ220を包含するプログラ
ムロジックモジュールのブロック図を概念的に示す。具体的には、ランチャ22
0は、制御モジュール300、CAS・RPCライブラリ302、ARFSD・
VxD通信ライブラリ304、及びユーザインターフェース306を包含する。
図示した実施例では、ランチャ220はSCDPクライアントとCAS204と
の間の全ての通信を調整するロジックを含んだウィンドウズ(R)・アプリケー
ションとして実現してもよい。Eコマースシステム202との購入交渉が完了す
ると、ランチャ220はクライアントのウェブブラウザ217に呼び出される。
Eコマースシステムは、クライアント・ウェブサーバにランチャに関連したMI
MEタイプ付きのランチストリングを送る。更に、ランチャはCASとの全ての
通信を管理するが、その通信には1)CASからのRAFTサーバのアドレス及
び選択したタイトルに対応するbriqパス名を入手、2)RAFTサーバから
briqデータを検索し、検索したデータを解読するのに必要なRAFT許可ト
ークン及びアクティベータのCASからの入手、及び3)RAFT許可トークン
及びアクティベータをCASに対して更新依頼することが含まれる。
FIG. 3B conceptually illustrates a block diagram of a program logic module that includes the launcher 220 of the SCDP client 216. Specifically, the launcher 22
0 is the control module 300, CAS / RPC library 302, ARFSD /
It includes a VxD communication library 304 and a user interface 306.
In the illustrated embodiment, the launcher 220 may be implemented as a Windows application that includes logic that coordinates all communication between the SCDP client and the CAS 204. When the purchase negotiation with the e-commerce system 202 is completed, the launcher 220 is called by the web browser 217 of the client.
The e-commerce system is a MI related to the launcher for the client / web server.
Send a lunch string with ME type. Furthermore, the launcher manages all communication with the CAS, but for that communication 1) obtains the address of the RAFT server from CAS and the briq path name corresponding to the selected title, and 2) retrieves the briq data from the RAFT server. Then, the RAFT authorization token and the activator necessary for decrypting the retrieved data are obtained from the CAS, and 3) the RAFT authorization token and the activator are requested to be updated to the CAS.

【0056】 CASサーバ206とARFSD・VxDモジュール218との間の通信を容
易にするため、ランチャ220は、CAS・PRCライブラリ302を含む。こ
のライブラリは遠隔手続き呼出し(RPC)ライブラリを介してCASサーバ2
06との間で通信を行う一連のオブジェクト又はプログラムコードとして実現で
きる。モジュール302に適したRPCライブラリとしては、ノーブルネット社
から市販されているノーブルネット安全RPCプロダクトがある。オプションで
、ネットスケープ・コミュニケーションズ社が発行した安全ソケットライブラリ
(SSL)規格に準拠したネットワーク移送製品を用いて、RPC呼び出しをネ
ットワーク上で移送して、本発明のシステム内のSCDPクライアントとの通信
安全性を向上させてもよい。通信ライブラリを、ランチャ・モジュール220と
ARFSD・VxDモジュール218との間の通信と、ARFSD・VxDモジ
ュール218とRAFTクライアントVxD222との間の通信に用いてもよい
。こうしたライブラリは、ランチャ220とVxD218とのデータ通信に必要
なコード又はオブジェクトを含んでいてもよい。例えば、後に詳しく説明するよ
うに、briq1200のbriqヘッダ1202は、図12に示すように、タ
イトルを実行中に制御モジュール300によって読まれ、通信ライブラリ304
を介してVxD218に提供される。
The launcher 220 includes a CAS / PRC library 302 to facilitate communication between the CAS server 206 and the ARFSD / VxD module 218. This library is the CAS server 2 via the remote procedure call (RPC) library.
It can be realized as a series of objects or program code that communicates with 06. A suitable RPC library for module 302 is the Noblenet Secure RPC product marketed by Noblenet. As an option, a network transport product conforming to the Secure Socket Library (SSL) standard issued by Netscape Communications, Inc. is used to transport RPC calls on the network to ensure communication safety with the SCDP client in the system of the present invention. May be improved. The communication library may be used for communication between the launcher module 220 and the ARFSD VxD module 218 and between the ARFSD VxD module 218 and the RAFT client VxD 222. Such a library may include the code or objects required for data communication between launcher 220 and VxD 218. For example, as will be described in detail later, the briq header 1202 of the briq 1200 is read by the control module 300 during execution of the title as shown in FIG.
To VxD 218 via.

【0057】 ランチャ220を呼び出すと、グラフィック・ユーザインターフェース(GU
I)がユーザインターフェース306を介してユーザに表示される。図示した実
施例では、ユーザインターフェース306は、ウィンドウを作成し、そうしたウ
ィンドウ内でグラフィック情報を表示し、キーボート、マウス、その他の位置決
め装置を介してユーザからコマンドを受けるためにウィンドウズ(R)・オペレ
ーティングシステムに含まれたオペレーティングシステム・インターフェース及
びアプリケーションプログラム・インターフェース(API)とのインターフェ
ースをとるため適切なプログラムロジック及び/又はオブジェクトを含む。また
、こうしたユーザインターフェースは通常の技能を備えた当業者の理解範囲に十
分はいるものである。このGUIを介して、ユーザはディスク・キャッシュサイ
ズなどのユーザの好む設定を行うことができ、エラー状態も通知される。
When the launcher 220 is called, the graphic user interface (GU
I) is displayed to the user via the user interface 306. In the illustrated embodiment, the user interface 306 creates a window, displays graphical information within such window, and receives a Windows operating system to receive commands from the user via a keyboard, mouse, or other positioning device. It includes appropriate program logic and / or objects to interface with operating system interfaces and application program interfaces (APIs) included in the system. Also, such a user interface is well within the comprehension of one of ordinary skill in the art. Through this GUI, the user can make user-preferred settings such as the disk cache size and the error status is also notified.

【0058】 制御モジュール300は、タイトルをランチすると共にSCDPクライアント
200とCAS210とRAFTサーバ206との間の通信を継続するのに必要
なアルゴリズムを実行するのに適したコード又はオブジェクトで実現できる。更
に具体的には、制御モジュール300が実行するアルゴリズムは図4A乃至6及
び関連した本明細書箇所により詳細に説明してある。
The control module 300 may be implemented with code or objects suitable for launching titles and executing the algorithms necessary to continue communication between the SCDP client 200, CAS 210 and RAFT server 206. More specifically, the algorithms executed by the control module 300 are described in more detail in Figures 4A-6 and the related portions of this specification.

【0059】 図3Cは、図3BのARFSD・VxD304の概念的ブロック図である。V
xD304は、バイトコード・インタプリタ308、制御モジュール304、及
びARFSD・VxD通信ライブラリ312を包含する。ARFSD・VxD3
04は仮想デバイスドライバであり、オペレーティングシステムがbriqデー
タをローカルファイルシステムとして読めるようにする。ARFSD・VxD3
04はbriqデータを解凍解除及び解読する。更に、ARFSD・VxDは、
例えばウィンドウズ(R)・レジストリエントリを提供するなどインストール抄
録(言語:abstract)を保持する。ARFSD・VxDはオペレーティングシス
テムのアクセス呼び出しを全て傍受し且つ実行中だがディスクに保存はされない
タイトルに関連したレジストリエントリをシミュレートして、動的レジストリエ
ントリを実現する。
FIG. 3C is a conceptual block diagram of the ARFSD VxD 304 of FIG. 3B. V
The xD 304 includes a bytecode interpreter 308, a control module 304, and an ARFSD VxD communication library 312. ARFSD ・ VxD3
A virtual device driver 04 allows the operating system to read the briq data as a local file system. ARFSD ・ VxD3
04 decompresses and decrypts the briq data. Furthermore, ARFSD / VxD
It holds the installation abstract (language: abstract), for example by providing Windows registry entries. ARFSD VxD implements dynamic registry entries by simulating registry entries related to titles that are intercepting all operating system access calls and executing but not being saved to disk.

【0060】 アクティベータ及びバイトコード・インタプリタ 上述したように、アクティベータ228は、ARFSD・VxD304内部に
実現したバイトコード・インタープリタ308上で実行する。アクティベータは
CAS210から入手し、ARFSD・VxD304によるbriqデータ解読
に用いるSCDPクライアントソフトウェアの一部である。アクティベータの形
式と内容は図13を参照にして詳しく説明する。アクティベータは、CAS21
0に替わりとなる新しいアクティベータを定期的に要求するようアクティベータ
に求める保持機能を実現する。よって、タイトル実行を継続するには、CASと
の通信は維持しなければならない。図示した実施例では、アクティベータ228
内の保持機構は数値ストリングとして、又は図13を参照にして説明したように
実現してもよい。
Activator and Bytecode Interpreter As described above, the activator 228 executes on the bytecode interpreter 308 implemented within the ARFSD VxD 304. The activator is a part of the SCDP client software which is obtained from CAS 210 and used for deciphering briq data by ARFSD / VxD304. The format and contents of the activator will be described in detail with reference to FIG. Activator is CAS21
Implements a holding function that asks the activator to periodically request a new activator to replace 0. Therefore, communication with the CAS must be maintained in order to continue title execution. In the illustrated embodiment, the activator 228
The retention mechanism within may be implemented as a numeric string or as described with reference to FIG.

【0061】 アクティベータは、ARFSD・VxD304内で実行できる動的バイトコー
ドオブジェクトとして実現される。図7のアクティベータ・ファクトリモジュー
ル710を参照して既に説明したように、CASは、外部ライブラリ内に常駐さ
せてもよいアクティベータ生成ルーチンを呼び出してアクティベータを生成する
。RAFTトークンは上述したようにアクティベータと共にパッケージしてある
。アクティベータはいずれタイムアウトし、その後はSCDPクライアント21
6はCASを呼び出し、新しいアクティベータを要求しなければならない。アク
ティベータの寿命はアクティベータのトークン部分に含まれた開始及び終了時間
値により決定される。
The activator is implemented as a dynamic bytecode object that can be executed within the ARFSD VxD 304. As previously described with reference to activator factory module 710 in FIG. 7, CAS creates an activator by calling an activator creation routine that may reside in an external library. The RAFT token is packaged with the activator as described above. The activator will eventually time out, and then the SCDP client 21
6 must call CAS and request a new activator. The life of the activator is determined by the start and end time values contained in the token portion of the activator.

【0062】 SCDPシステム200は、アクティベータを用いてSCDPクライアント2
16へ渡された暗号データを保護する。アクティベータは、ARFSD・VxD
304内で走ると共にbriqの解読を可能にする一片の曖昧化バイトコードと
して実現できる。アクティベータがダウンロードされると、更なるRPCをCA
S210に対して行い、キーイングデータの送信を完了してもよい。アクティベ
ータ内でのコード曖昧化によりキーの抽出を防ぐことができる。
The SCDP system 200 uses the activator to activate the SCDP client 2
The encrypted data passed to 16 is protected. Activator is ARFSD / VxD
It can be implemented as a piece of obfuscated bytecode that runs inside 304 and allows the decryption of briq. Once the activator is downloaded, CA the additional RPC
The transmission of the keying data may be completed by performing S210. Key extraction can be prevented by code ambiguity in the activator.

【0063】 アクティベータの図示した実現例は、アクティベータ内のキーを守るために遠
隔実行を用いる。遠隔実行によりアクティベータは不完全になる。つまり、遠隔
実行はアクティベータが連続動作するのに十分な情報を与えるが、アクティベー
タが新たにコード又はデータを要求する必要がある。ARFSD・VxD304
内のバイトコード・インタープリタ308は、アクティベータから暗号キーデー
タを抽出するプログラムロジック、コード、又はオブジェクトを包含する。図示
した実施例では、アクティベータは図13を参照して説明したような形式及び内
容を備えていればよい。
The illustrated implementation of the activator uses remote execution to protect the keys in the activator. Remote execution makes the activator incomplete. That is, remote execution provides enough information for the activator to operate continuously, but the activator needs to request new code or data. ARFSD ・ VxD304
A bytecode interpreter 308 within contains the program logic, code, or object that extracts the cryptographic key data from the activator. In the illustrated embodiment, the activator may have the form and content as described with reference to FIG.

【0064】 別の実施例では、アクティベータが曖昧化バイトコードを含むより高度なアク
ティベータの実現例を用いるが、ARFSD・VxD304内のバイトコード・
インタープリタ308はリッチ命令セットを用いて実現し、曖昧化を単純にでき
る機会を増やしてもよい。ハードウェアが実現するマイクロプロセッサ命令セッ
トにあった従来の制限が無く、アドレス指定方式及び命令形式用に多くのビット
を用いることができる。こうした命令セットの複雑さ及び機密性により、SCD
Pシステム内のコンテンツ引き渡しの安全性を確保する。バイトコードはVxD
内で走るため、バイトコード・インタープリタ308は、他のVxDからエクス
ポートされたインターフェースを呼び出すかもしれないが、オペレーティングシ
ステムからのWIN32機能を呼び出す必要もなく、DLLを扱う必要もない。
Another embodiment uses a more sophisticated implementation of the activator where the activator includes an obfuscated bytecode, but the bytecode in ARFSD VxD304
Interpreter 308 may be implemented with a rich instruction set to increase the chances of simplifying ambiguity. Many bits can be used for addressing schemes and instruction formats without the conventional limitations of hardware-implemented microprocessor instruction sets. Due to the complexity and confidentiality of these instruction sets, SCD
Ensure the safety of content delivery within the P system. Bytecode is VxD
To run in, the bytecode interpreter 308 may call interfaces exported from other VxDs, but does not need to call WIN32 functions from the operating system or handle DLLs.

【0065】 図示した実施例においては、バイトコード・インタープリタ308は、CAS
210から受け取ったアクティベータ内のバイトコードを解釈及び実行するのに
必要な適切なコード及び/又はプログラムロジックを備えた仮想計算機として実
現してある。こうした仮想計算機は、バイトコードを翻訳し、バイトコードスト
リームからの一時データを全て保存し、バイトコードにより特定される処理を実
行するための適切な経路を備えている。バイトコード・インタープリタ308を
如何に具体的に実現するかは、従って、インタープリタにより実行可能なバイト
コードセットに依存する。例えば、バイトコード・インタープリタ308は、ア
クティベータが含むコードの種類に対応するために幾つかの次に挙げたものを含
んだ特定の機能を実行可能である。 ・ビット式オペレータ − 暗号化及び配列化ルーチンに有用なけた送り、回転
、及び「ビット抽出」機能。 ・評価 − バイトコード・インタープリタにダウンロードした又は変更したバ
イトコードを解読させ、よってコード及びデータが対応するフラッグ及びデータ
保護から分離されるのを防ぐ。 ・インターフェース基本命令(言語:primitive) − SCDPクライアント ・バイトコード・インタープリタが、引数配列化およびCタイプの特定の事前定
義データセットの内部化を含む、他のVxD内の機能を直接呼び出す。SCDP
クライアント及びCASは安全ストリームインターフェース基本命令を用いる。
例えば、接続データ(特に認証データ)をアクティベータ又は手法が生成された
ストリームから抽出するフック。
In the illustrated embodiment, the bytecode interpreter 308 is a CAS
It is implemented as a virtual machine with the appropriate code and / or program logic necessary to interpret and execute the bytecodes in the activator received from 210. Such virtual machines have appropriate paths for translating bytecodes, storing all temporary data from the bytecode stream, and performing the operations specified by the bytecodes. How specifically the bytecode interpreter 308 is implemented therefore depends on the bytecode set executable by the interpreter. For example, the bytecode interpreter 308 can perform certain functions, including some of the following to accommodate the type of code the activator contains. Bitwise Operators-Fixed digit, rotate, and "bit extract" functions useful for encryption and sequencing routines. Evaluation-Causes the bytecode interpreter to interpret the downloaded or modified bytecode, thus preventing the code and data from being separated from the corresponding flags and data protection. • Interface primitives (language) -The SCDP client bytecode interpreter directly calls functions in other VxDs, including argument arraying and internalization of certain predefined datasets of C type. SCDP
The client and CAS use secure stream interface primitives.
For example, a hook that extracts connection data (especially authentication data) from the stream in which the activator or method was generated.

【0066】 通常の技能を備えた当業者であれば、バイトコード・インタープリタ308は
物理的計算機として実現してもよいことは明らかであろう。本明細書に記載した
最も単純なアクティベータにおいては、バイトコードはオプションである。よっ
て、バイトコード・インタープリタ308もオプションとしてもよい。
Those of ordinary skill in the art will appreciate that bytecode interpreter 308 may be implemented as a physical computer. In the simplest activator described here, bytecode is optional. Therefore, the bytecode interpreter 308 may also be an option.

【0067】 通信ライブラリ312は、ARFSD・VxDモジュール218とRAFT・
VxDモジュール222との間の通信用に用いられる。こうしたライブラリは図
3Bの通信ライブラリ304に類似したもので、VxD218とVxD220と
の通信を助ける。
The communication library 312 includes an ARFSD / VxD module 218 and a RAFT / VFT module.
Used for communication with the VxD module 222. Such a library is similar to the communication library 304 of FIG. 3B and facilitates communication between VxD218 and VxD220.

【0068】 制御モジュール310には、インストール抄録を実行し、タイトルを実行し、
且つRAFTトークンを更新するのに必要なアルゴリズムを実行するのに必要な
プログラムロジック又はコードが含まれる。更に詳細には、制御モジュール31
0が実行するアルゴリズムは、図4A乃至6及びそれに関する記載箇所に更に詳
しく説明してある。
The control module 310 executes the installation abstract, executes the title,
And it contains the program logic or code necessary to execute the algorithms needed to update the RAFT token. More specifically, the control module 31
The algorithm executed by 0 is described in more detail in FIGS. 4A-6 and the associated description.

【0069】 図3Dは、SCDPクライアント216のRAFTクライアントVxD222
を包含する構成要素の概念ブロック図を示す。詳しくは、VxD222は、RA
FT・RPCライブラリ316、キャッシュロジック318、及び制御モジュー
ル320を包含する。RPCライブラリ316は、本明細書に更に詳しく説明し
てあるが、RAFTプロトコルのクライアント側RPCレイヤを実現する適切な
コード及び/又はオブジェクトを含む。こうしたプログラムロジックは、RAF
Tメッセージの何れかを用いるRAFTサーバ206との通信に使用される。具
体的には、モジュール316は、図11を参照して説明するように、RAFTパ
ケットヘッダを各RAFTプロトコルメッセージに添えるため、且つ適切なRA
FTプロトコルメッセージで応答するために必要なロジックを含む。キャッシュ
ロジック318は、RAFTプロトコルを用いてRAFTサーバ206から詮索
したbriq、又はその一部のキャッシュを行うための適切なコードを含んでい
る。モジュール218によりキャッシュされたbriqの部分は、SCDPクラ
イアント216が実行しているホストパーソナルコンピュータの一時メモリの一
部に保存してもよい。具体的なキャッシュ技法及びそれに関連したロジックは、
多数ある周知のキャッシュアルゴリズムに従って実現でき、それは通常の技能を
持った当業者に容易に理解可能である。制御モジュール320は、モジュール3
16、318に関する上述の機能を管理し且つ図4A乃至6に関連して記載した
方法の諸ステップを実行するために必要なプログラムロジック、コード及び/又
はオブジェクトを含むように実現される。
FIG. 3D shows the RAFT client VxD 222 of the SCDP client 216.
FIG. 3 is a conceptual block diagram of a component including a. For details, VxD222 is RA
It includes the FT / RPC library 316, cache logic 318, and control module 320. The RPC library 316, which is described in more detail herein, contains appropriate code and / or objects that implement the client-side RPC layer of the RAFT protocol. Such program logic is
Used to communicate with RAFT server 206 using any of the T messages. Specifically, the module 316 attaches the RAFT packet header to each RAFT protocol message, as described with reference to FIG.
Contains the logic necessary to respond with an FT protocol message. The cache logic 318 includes suitable code for caching the briq snooped from the RAFT server 206, or a portion thereof, using the RAFT protocol. The portion of briq cached by module 218 may be stored in a portion of the temporary memory of the host personal computer running SCDP client 216. Specific cache techniques and associated logic are
It can be implemented according to a number of well known cache algorithms, which will be readily apparent to one of ordinary skill in the art. The control module 320 is the module 3
16 and 318 are implemented to include the program logic, code and / or objects necessary to manage the functions described above with respect to 16, 318 and to perform the method steps described in connection with FIGS. 4A-6.

【0070】 タイトル実行 図5A乃至5Cのフローチャートは、本発明による典型的なタイトル実行中に
SCDPクライアント216により実行される処理ステップを示す。上述したよ
うに、SCDPクライアントのブラウザ224がランチストリングを受け取ると
、ランチストリングに関連した多目的インターネットメッセージ拡張仕様(MI
ME)タイプがレジストリエントリで探し出され、その結果、SCDPクライア
ント216内のランチャモジュール220が呼び出される。ステップ6に示した
ように、呼び出しにが起こると、ランチャ220はランチストリングから汎用資
源名(URN)を抽出して、CAS210にURNからURLへの変換を要求す
る。本発明のURNはbriq内のタイトルの固有識別子である。標準URN形
式は以下の通りである。 urn:arepa://vendor/path/titlename[#version]
Title Execution The flowcharts of FIGS. 5A-5C show the processing steps performed by the SCDP client 216 during an exemplary title execution in accordance with the present invention. As described above, when the SCDP client browser 224 receives the launch string, it launches a multi-purpose Internet message extension specification (MI) associated with the launch string.
ME) type is found in the registry entry, which results in the launcher module 220 in the SCDP client 216 being invoked. As shown in step 6, when a call occurs, the launcher 220 extracts the Universal Resource Name (URN) from the launch string and requests the CAS 210 to convert the URN to the URL. The URN of the present invention is the unique identifier of the title within the briq. The standard URN format is as follows: urn: arepa: // vendor / path / titlename [#version]

【0071】 URNにおいては、タイトルへのパスは、ベンダの記憶サーバ内にあるタイト
ルの現在の位置に正確に一致している必要はない。このパスは分類の便宜を図る
ものであり、必要ではない。タイトルのバージョン番号はオプションであり、ポ
ンド記号でタイトル名から分離してもよい。ベンダ名は固有性を保証するために
中央権威機関に登録してもよい。
In URN, the path to the title does not have to exactly match the title's current location in the vendor's storage server. This path is for convenience of classification and is not necessary. The title version number is optional and may be separated from the title name by a pound sign. Vendor names may be registered with a central authority to ensure uniqueness.

【0072】 汎用資源ロケータ(URL)は、RAFT記憶サーバ内にあるbriqの現在
の位置を特定する。標準URL形式は以下の通りである。 raft://hostname/path/briqname.brq
The Universal Resource Locator (URL) identifies the current location of the briq within the RAFT storage server. The standard URL format is as follows. raft: //hostname/path/briqname.brq

【0073】 URLにおいては、パスはRAFT記憶サーバ内にあるbriqの現在の位置
に正確に一致していなければならない。
In the URL, the path must exactly match the current location of briq in the RAFT storage server.

【0074】 図5A乃至5Cは、本発明による加入及びタイトル実行中にSCDPクライア
ント及び内部モジュールにより実行される処理ステップを示す。図2Bの要素も
参照すると、SCDPクライアントが走るホストコンピュータのユーザは、ウェ
ブブラウザ224を用いて、仮想店舗ショーウインドウ215から所望のタイト
ルを選択する。店舗ショーウインドウ215はデジタルオッファをウェブブラウ
ザに返すが、ユーザはこのオッファを用いてEコマースサーバ202と購入交渉
を行う。Eコマースサーバは、未署名のランチストリングをネットワークを介し
てウェブブラウザに送信する。ランチストリングはMIMEヘッダでパックされ
ている。ステップ502に示したように、ランチストリングがブラウザに受信さ
れると、ランチストリングに付随したMIMEタイプは、ファイルシステムのレ
ジストリエントリで探し出され、その結果、SCDPクライアントのランチャモ
ジュール220が呼び出されることになる。処理ステップ504に示したように
、ランチャモジュール220はランチストリングからURN値を抽出して、この
URN値をCASサーバ210に送信する。ランチャ220とCAS210との
通信は安全なRPC接続を介して確立される。CAS210はURNをURLに
変換し、当該URLをSCDPクライアントに送信する。URLが受け取られる
と、決定ステップ506に示したように、ランチャ220はURLヘッダを読み
出す要求をARFSD・VxDモジュール218に渡し、モジュール218はそ
の要求をRAFTクライアントVxD222に渡す。VxD222は、RAFT
プロトコルを用いてRAFTサーバ206にその要求を送信する。RAFTサー
バ206は、URLを開いてそのヘッダ情報を読み出す。ヘッダ情報はその後、
RAFTクライアントVxD222へ、そしてARFSD・VxDモジュール2
18及びランチャ220に戻される。この処理全体は図5Aの処理ステップ50
8に示されている。次に、処理ステップ510に示したように、ランチャモジュ
ール220は、ヘッダの内容を用いてホストシステムのアプリケーション検査要
求を実行する。
5A-5C show the processing steps performed by the SCDP client and internal modules during subscription and title execution according to the present invention. Referring also to the elements of FIG. 2B, the user of the host computer running the SCDP client uses the web browser 224 to select the desired title from the virtual store show window 215. The store show window 215 returns the digital offer to the web browser, and the user uses this offer to negotiate a purchase with the e-commerce server 202. The e-commerce server sends the unsigned launch string to the web browser over the network. The lunch string is packed with a MIME header. As shown in step 502, when the launch string is received by the browser, the MIME type associated with the launch string is located in the file system registry entry, which results in the SCDP client launcher module 220 being invoked. become. The launcher module 220 extracts the URN value from the launch string and sends the URN value to the CAS server 210, as shown in process step 504. Communication between the launcher 220 and the CAS 210 is established via a secure RPC connection. The CAS 210 converts the URN into a URL and sends the URL to the SCDP client. When the URL is received, launcher 220 passes the request to read the URL header to ARFSD VxD module 218, which passes the request to RAFT client VxD 222, as shown in decision step 506. VxD222 is RAFT
Send the request to RAFT server 206 using the protocol. The RAFT server 206 opens the URL and reads the header information. The header information is then
To RAFT client VxD222 and to ARFSD VxD module 2
18 and launcher 220. This entire process is the processing step 50 of FIG. 5A.
8 is shown. Next, as shown in process step 510, the launcher module 220 uses the contents of the header to execute the application inspection request of the host system.

【0075】 システムの検査要求の完了後に、処理ステップ512に示したように、ランチ
ャモジュール220は購入許可要求を、安全なRPC接続を介してCAS210
に送信する。購入許可要求に応答して、CAS210はRAFTトークンを含ん
だアクティベータを生成すると、アクティベータは安全なRPC接続を介してS
CDPクライアント216に送信される。決定ステップ514に示したようにア
クティベータを受け取ると、ステップ516に示したように、ランチャモジュー
ル220はRAFTトークン及びアクティベータをインストールする。処理ステ
ップ516及び518にそれぞれ示したように、アクティベータはARFSD・
VxDモジュール218内にインストールされ、VxDモジュール218は、R
AFTトークンをRAFTVxD内にロードする。処理ステップ520に示した
ように、RAFT・VxD222は、その後、RAFTプロトコルからの適切な
命令の何れかを用いてRAFTトークンをRAFTサーバ206に送信する。次
に、処理ステップ522に示したように、ARFSD・VxD218は、VxD
222との通信を介してRAFTサーバ206にあるbriqからスーパーブロ
ックフィールドを読み出し、処理ステップ524に示したように、スーパーブロ
ック内のマジックナンバーを検査する。briq内のマジックナンバーは、例え
ば「ARFS」などの固定キャラクタ列(原語:constant sequence of charact
ers)として実現してもよい。
After completing the system inspection request, the launcher module 220 sends a purchase authorization request to the CAS 210 via the secure RPC connection, as shown in process step 512.
Send to. In response to the purchase authorization request, the CAS 210 creates an activator containing the RAFT token, and the activator sends S over the secure RPC connection.
It is sent to the CDP client 216. Upon receiving the activator as shown in decision step 514, launcher module 220 installs the RAFT token and activator as shown in step 516. As shown in process steps 516 and 518, respectively, the activator is the ARFSD.
Installed in the VxD module 218, the VxD module 218
Load the AFT token into RAFTVxD. The RAFT VxD 222 then sends the RAFT token to the RAFT server 206 using any of the appropriate instructions from the RAFT protocol, as shown in process step 520. Next, as indicated by process step 522, the ARFSD VxD 218 returns the VxD
The superblock field is read from the briq at RAFT server 206 via communication with 222 and the magic number in the superblock is checked, as indicated in process step 524. The magic number in the briq is a fixed character string (original: constant sequence of charact) such as "ARFS".
ers).

【0076】 この時点で、処理ステップ526に示したように、ランチャモジュール220
はタイトルの実行可能ファイルを実行し始める。図示した実施例では、実行可能
ファイルは、RAFTVxD222を介して入手したデータを用いてARFSD
・VxD218が実現したファイルシステム中に位置したウィンドウズ(R)実
行可能ファイルの形式となっている。
At this point, launcher module 220, as shown in process step 526.
Starts executing the title executable. In the illustrated embodiment, the executable file is ARFSD using data obtained via RAFTVxD222.
It is in the form of a Windows (R) executable file located in the file system realized by VxD218.

【0077】 処理ステップ528に示したように、RAFT・VxD222は、RAFTサ
ーバ206からタイトルディレクトリ及びファイルの検索を開始する。タイトル
のディレクトリ及びファイルを包含するデータブロックは、RAFTプロトコル
及び本明細書に記載されたコマンドを用いてRAFTサーバ206から入手する
。詳しくは、VxD222は、データブロックをRAFTサーバ206から読み
出し開始(言語:read-ahead)方式で入手し、データブロックをキャッシして効
率的な解読及び実行を促進する。
As shown in process step 528, RAFT VxD 222 initiates a search of the title directory and files from RAFT server 206. The data blocks containing the title directories and files are obtained from the RAFT server 206 using the RAFT protocol and the commands described herein. Specifically, the VxD 222 obtains a data block from the RAFT server 206 in a read-ahead manner, and caches the data block to facilitate efficient decoding and execution.

【0078】 処理ステップ530に示したように、ARFSD・VxD218は、CASア
クティベータ210から検索したアクティベータ、特に解読キーデータを用いて
RAFTサーバ206から入手したデータブロックを解読し、且つ保全性検査を
行う。上述したように、アクティベータには、briq内にあるデータを実行前
に解読するのに役立つ暗号か情報が含まれている。処理ステップ532に示した
ように、ARFSD・VxD218は、オペレーティングシステムに対してイン
ストール抄録を保持して、タイトル実行に必要なファイルシステムがローカルホ
スト・パーソナルコンピュータにインストールされているかのような錯覚を作り
出す。VxD218がインストール抄録を保持する処理は、図6を参照して詳し
く説明する。
As shown in process step 530, the ARFSD VxD 218 decrypts the data block obtained from the RAFT server 206 using the activator retrieved from the CAS activator 210, in particular the decryption key data, and an integrity check. I do. As mentioned above, the activator contains a cipher or information that helps to decrypt the data in the briq prior to execution. As shown in process step 532, the ARFSD VxD 218 holds an installation abstract for the operating system to create the illusion that the file system needed to execute the title is installed on the local host personal computer. . The process in which the VxD 218 holds the installation abstract will be described in detail with reference to FIG.

【0079】 CAS210から受け取ったRAFTトークンは、図8を参照して説明してあ
るように終了時間フィールドを含む。決定ステップ534及び処理ステップ53
6に示したように、アクティベータ及びRAFTトークンが満期つまり無効とな
る前に、ランチャモジュール220は安全なRPC接続を介して、更新アクティ
ベータ及びRAFTトークンのペアをCASサーバ206に要求する。処理ステ
ップ538に示したように、この新しいアクティベータ及びRAFTトークンの
ペアは上述した方法と同様にインストールされ、使用される。
The RAFT token received from CAS 210 includes an end time field as described with reference to FIG. Decision step 534 and processing step 53
As shown in FIG. 6, the launcher module 220 requests the update activator and RAFT token pair from the CAS server 206 via a secure RPC connection before the activator and RAFT token expires or becomes invalid. As shown in process step 538, this new activator and RAFT token pair is installed and used in the same manner as described above.

【0080】 インストール抄録 本発明によれば、タイトルはSCDPクライアントホストシステム上に「イン
ストール」されることは決してない。SCDPクライアントソフトウェアはイン
ストール抄録を作成して、実行中のタイトルがホストコンピュータにインストー
ルされているという錯覚をローカル・オペレーティングシステムに対して維持す
る。よって、タイトル実行が終了すると、タイトルがホスト・パーソナルコンピ
ュータ上で実行されたことを示す証拠は残らない。タイトルに関連した如何なる
ファイルもホストシステムのハードディスク上に残らず、例えばタイトルに関連
したレジストリ変数などのオペレーティングシステム状態情報も残らない。タイ
トルが出た後又はシステムクラッシュ後のSCDPクライアントの状態は、以前
と同じである。可能性は低いが唯一の例外は、例えば、他のアプリケーションが
行った処理、持続性状態及び保存した文書又はデータなどのユーザがアプリケー
ションに対して行った変更によるのみである。インストール抄録は、アプリケー
ションを実行する前に予想されるアプリケーションの状態をロードする方法で達
成されるが、これは、アプリケーションが出る際に、持続性パラメータに影響を
与えずにこの状態がアンロードされるように行われる。
Installation Abstract According to the present invention, titles are never “installed” on the SCDP client host system. The SCDP client software creates an installation abstract, maintaining the illusion to the local operating system that the running title is installed on the host computer. Therefore, when the title execution ends, there is no evidence that the title has been executed on the host personal computer. No files associated with the title will remain on the host system's hard disk, nor will operating system state information, such as registry variables associated with the title. The status of the SCDP client after the title appears or after the system crash is the same as before. The only unlikely exception is due to changes made by the user to the application, such as, for example, processing done by other applications, persistent state and saved documents or data. The installation abstract is accomplished by loading the expected application state before running the application, which is unloaded when the application exits without affecting the persistence parameters. To be done.

【0081】 図12に関連して説明されているように、本発明による各briqは1つかそ
れ以上のタイトルのファイルシステムを含む。以下に説明するように、briq
オーサーは、オーサーユーティリティプログラムを用いて、アプリケーション及
びアプリケーション・インストールディレクトリから選択したファイルを抽出す
る。briqオーサーは、アプリケーションを正しく実行するのに必要かもしれ
ないレジストリエントリのようなそれ以外の情報も抽出する。オーサープログラ
ムは、選択したファイルと他の情報を組合せ、且つデータベースエントリセット
及びbriq形式でファイルシステムを出力として生成する。このbriqはR
AFTサーバに記憶される。データベースエントリはCASサーバに記憶され、
キーイング情報及びヘッダチェックサム値などの情報を包含する。
As described in connection with FIG. 12, each briq according to the present invention includes a file system for one or more titles. As explained below, briq
The author uses the author utility program to extract the selected files from the application and application installation directory. The briq author also extracts other information such as registry entries that may be needed to run the application correctly. The author program combines the selected file with other information and produces a file system in the database entry set and briq format as output. This briq is R
It is stored in the AFT server. The database entry is stored on the CAS server,
It includes information such as keying information and header checksum value.

【0082】 図6は、本発明による、タイトル実行中にインストール抄録を保持するために
、SCDPクライアント216及び内蔵されたモジュール218乃至220によ
って実行される処理ステップを示したフローチャートである。ステップ600に
示したように、あるタイトル選択及び購入交渉に続いて、ランチャ220及びA
RFSD・VxD218はファイルシステムをマウントし、ステップ602に示
したように、関連したレジストリエントリをホストシステムのローカルドライブ
に記憶する。ウィンドウズ(R)95、ウィンドウズ(R)98、及びウィンド
ウズ(R)NTのファイルマネージャ内の機能及びUNIX(R)オペレーティ
ングシステムの同等の機能は、ファイルディレクトリ及び遠隔位置ファイルの内
容を「マウント」し、又はそれらへのコンピュータネットワークを介したアクセ
スを実現し、データをアクセスする「仮想ドライブ」を生成する。本発明では、
ファイルシステムのマウントは、RAFTサーバにSCDPクライアント・オペ
レーティングシステムインターフェースを介してアクセスするための上述した技
法を用いることを包含する。ファイルシステムをマウントすると、タイトルコン
テンツ及びそのタイトルに関連したレジストリエントリを含むbriqからデー
タブロックの全部又は一部はキャッシュすることになり得る。この一連のレジス
トリエントリはSCDPクライアントのホストシステムメモリにローカル記憶さ
れ、タイトルファイルがインストールされたディレクトリなどの情報を含むこと
ができる。ARFSD・VxD218は更に、CASデータベース212から適
切なデータベース項目を抽出する。
FIG. 6 is a flow chart showing the processing steps performed by the SCDP client 216 and the embedded modules 218-220 to retain the installation abstract during title execution according to the present invention. As shown in step 600, following a title selection and purchase negotiation, launcher 220 and A
The RFSD VxD 218 mounts the file system and stores the associated registry entry in the host system's local drive, as shown in step 602. The functionality within the file managers of Windows® 95, Windows® 98, and Windows® NT and the equivalent functions of the UNIX® operating system “mount” the contents of file directories and remote location files. , Or access them via a computer network and create a “virtual drive” to access the data. In the present invention,
Mounting the file system involves using the techniques described above to access the RAFT server via the SCDP client operating system interface. Mounting the file system may result in caching all or part of the data block from the briq containing title content and registry entries associated with that title. This set of registry entries is stored locally in the SCDP client's host system memory and may include information such as the directory where the title file was installed. The ARFSD VxD 218 also extracts the appropriate database item from the CAS database 212.

【0083】 ステップ604に示したように、CASサーバによりSCDPクライアントに
送られたアクティベータからのキーイング情報を用いて、briqからのデータ
ブロックは解読され、且つオペレーティングシステム・ファイルシステムとして
実行される。タイトル実行中は、データブロックは必要に応じてSCDPクライ
アントでローカルキャッシュされる。プログラム実行中に、オペレーティングシ
ステムの仮想メモリマネージャ部分内に含まれるようなオペレーティングシステ
ムのデバイスドライバは、ローカル物理ドライブに記憶させたレジストリエント
リを要求する。決定ステップ606に示したように、アプリケーションが実行さ
れると、ARFSD・VxD218ははこうした処理要求の解釈を開始する。ス
テップ608に示したように、該当する場合は、呼び出しは、局所記憶されてい
るレジストリエントリのリストからのエントリで満足される。しかし、後に記載
するライトスルー手法を用いてオペレーティングシステムに直接書き込まれる情
報もある。
Using the keying information from the activator sent by the CAS server to the SCDP client, as shown in step 604, the data block from briq is decrypted and executed as an operating system file system. During title execution, data blocks are cached locally at the SCDP client as needed. During program execution, operating system device drivers, such as those contained within the virtual memory manager portion of the operating system, request registry entries stored on a local physical drive. When the application is executed, the ARFSD VxD 218 begins interpreting these processing requests, as shown in decision step 606. If so, the call is satisfied with an entry from the list of locally stored registry entries, as shown in step 608. However, some information is written directly to the operating system using the write-through method described below.

【0084】 決定ステップ610に示したように、アプリケーション実行が終了するまでは
、オペレーティングシステム呼び出しの傍受及び局所記憶されたレジストリエン
トリを用いたこれら要求の満足は継続される。この時点で、ステップ612に示
したように、ランチャはARFSD・VxD218にファイルシステムをアンマ
ウントつまり切断するよう指示する。その結果、オペレーティングシステム要求
は局所記憶されたレジストリエントリに転送されなくなる。局所記憶されたレジ
ストリエントリ及び局所でキャッシュされたデータブロックは消去されるか、上
書きしてもよい。その結果、タイトルつまりアプリケーションを実行する前のS
CDPクライアントの状態は、ユーザが意識的に保持しようと願う限られたライ
トスルーデータを除いてはそのタイトルのインストールの痕跡もなく現状に戻さ
れる。
As shown in decision step 610, interception of operating system calls and satisfaction of these requests with locally stored registry entries continues until application execution is complete. At this point, the launcher instructs the ARFSD VxD 218 to unmount or disconnect the file system, as shown in step 612. As a result, operating system requests will not be forwarded to locally stored registry entries. Locally stored registry entries and locally cached data blocks may be erased or overwritten. As a result, the title, that is, S before executing the application
The state of the CDP client is returned to the current state without any trace of installation of that title, except for the limited write-through data that the user consciously desires to hold.

【0085】 ライトスルー局所記憶 作成者プログラムを用いたオーサーによるbriqの生成時に、ファイル及び
ディレクトリは「ライトスルー」属性のタグを付けることができる。ライトスル
ーファイル又はディレクトリを内包するbriqは、LOCLタグ付きのコンテ
ナを内包していることがある。このコンテナは全てのライトスルーディレクトリ
の完全なパス及び、LDIRタグで示される、ライトスルーファイルを内包する
あらゆるディレクトリ(ルートディレクトリを除く)のパスを含む。ユーザは局
所記憶ファイル用のルートディレクトリのパス名を指定することができる。新し
いパス名は、固有性を確保するため、URNからのベンダフィールドを含む。こ
の情報は、タイトルのLOCLコンテナ内のROOTタグに記憶される。デフォ
ールトでは、ARFSD・VxDは、ローカルドライブに0バイトの空きがある
と報告する。ライトスルーファイル又はディレクトリを含まないbriqは常に
0バイトの空きがあると報告する。タイトルのLOCLコンテナ内にタグが存在
すれば、ARFSD・VxDが、局所記憶ディレクトリを内包するドライブ上の
空きスペース量を報告するはずであることを示す。タイトルがLOCLコンテナ
を必要とするのは、ROOTに関してフォールト値以外を指定する必要がある場
合のみである。
Write-Through Local Storage Files and directories can be tagged with the “write-through” attribute when the briq is created by the author using the creator program. A briq containing a write-through file or directory may contain a container with a LOCL tag. This container contains the complete path of all write-through directories and the path of any directory (except the root directory) that contains a write-through file, as indicated by the LDIR tag. The user can specify the pathname of the root directory for local storage files. The new pathname includes a vendor field from the URN to ensure uniqueness. This information is stored in the ROOT tag in the title's LOCL container. By default, ARFSD VxD will report 0 bytes free on the local drive. A briq that does not include a write-through file or directory will always report 0 bytes free. The presence of the tag in the title's LOCL container indicates that ARFSD VxD should report the amount of free space on the drive containing the local storage directory. Titles need a LOCL container only if they need to specify something other than a fault value for ROOT.

【0086】 ライトスルーファイル又はディレクトリを内包したbriq(言い換えれば、
ヘッダにLOCLコンテナを内包したbriq)がロードされると、SCDPク
ライアント内のランチャが局所記憶用のディレクトリをSCDPインストールデ
ィレクトリの下に作成する。このディレクトリは、タイトルのLOCLコンテナ
内でROOTタグによって他のディレクトリが指定されていなければ、URNか
ら導き出す。ランチャは、ヘッダにLDIRタグを付けて指定された各ディレク
トリ用の局所記憶ディレクトリ内にサブディレクトリを作成する。局所記憶パス
のルートパス名及び空きディスクスペースを報告するかどうかをbriqロード
中にARFSD・VxDに渡す。ランチャソフトウェアがアンインストール及び
オプションでタイトルが出る時に、局所記憶領域内の全てのファイルは消去され
る。これらの局所記憶されたファイルはデフォールトでは持続性がある。ランチ
ャは、briq内の全てのライトスルーディレクトリ用のディレクトリをローカ
ル記憶装置内に作成する必要がある。
A briq containing a write-through file or directory (in other words,
When briq) including the LOCL container in the header is loaded, the launcher in the SCDP client creates a directory for local storage under the SCDP installation directory. This directory is derived from the URN unless another directory is specified by the ROOT tag in the title's LOCL container. The launcher creates a subdirectory in the local storage directory for each directory specified with the LDIR tag in the header. Pass the root path name of the local storage path and whether to report free disk space to ARFSD VxD during briq load. When the launcher software is uninstalled and optionally the title appears, all files in local storage are erased. These locally stored files are persistent by default. The launcher needs to create directories in local storage for all write-through directories in briq.

【0087】 ライトスルーファイルが開始されると、情報は、上述したディレクトリと同様
の命名規則を備えた局所記憶領域内のファイルから取り出される。もしそのファ
イルが局所記憶装置に存在しない場合は、そのファイルはまずbriqからコピ
ーされる。briq内の元々のファイルは、全briq暗号化を別にすれば圧縮
や暗号化されていないこともある。ライトスルーファイルを開くと、ローカルデ
ィスクのコピーも開かれて、ARFSD・VxDファイルハンドルにおける全て
の要求は実ファイルハンドルで実行される。
When a write-through file is started, the information is retrieved from the file in a local storage area with a naming convention similar to the directories mentioned above. If the file does not exist in local storage, the file is first copied from briq. The original file in the briq may not be compressed or encrypted, except for all briq encryption. Opening a write-through file also opens a copy of the local disk, and all requests on the ARFSD VxD file handle are performed on the real file handle.

【0088】 条件付きアクセスサーバ(CAS) 図7Aは、条件付きアクセスサーバ(CAS)700及び付随したデータベー
ス750の概念ブロック図である。図示した実施例では、CASは、POSIX
.1(IEEE標準1003.1,1998年)に互換性のあるプラットフォー
ム上で実行可能なアプリケーション(例えば、カリフォルニア州パロアルト所在
のサンマイクロシステムズ社が市販するサンソラリス(Sun Solaris(商標))
オペレーティングシステム又は、レッドハットソフトウェア社が市販するリナッ
クスオペレーティングシステム)として実現してもよく、こうしたプラットフォ
ームは図1に示したものと類似のコンピュータアーキテクチャ上で実行できる。
CASアプリケーション702は、データベース・インターフェースモジュール
704、遠隔手順呼び出しインターフェース706、URN−URL変換モジュ
ール708、アクティベータファクトリ710、及びURL検証モジュール71
2を更に包含する。
Conditional Access Server (CAS) FIG. 7A is a conceptual block diagram of a conditional access server (CAS) 700 and associated database 750. In the illustrated embodiment, CAS is POSIX.
. 1 (IEEE Standard 1003.1, 1998) compatible applications that can be run on platforms (eg, Sun Solaris ™ from Sun Microsystems, Inc. of Palo Alto, Calif.)
Operating system or the Linux operating system commercially available from Red Hat Software, Inc., and such a platform can run on a computer architecture similar to that shown in FIG.
The CAS application 702 includes a database interface module 704, a remote procedure call interface 706, a URN-URL conversion module 708, an activator factory 710, and a URL verification module 71.
2 is further included.

【0089】 データベースインターフェースモジュール704はCASデータベース750
とのインターフェースを取り、市販のデータベース製品を用いて実現してよい。
データベース750は、更新を要求するトークンのステイデータなどの短期ステ
イデータ又は、タイトル名、暗号キー情報及びSCDPシステムを介して入手で
きるタイトルに関する他の情報などの長期ステイデータを記憶するのに用いるこ
とができる。ネットワーク上に複数のCASサーバが存在していれば、データベ
ース750は複数のCASサーバ700が共有してもよい。データベースインタ
ーフェース704及びデータベース750は、SQL標準データベース問合わせ
言語で通信する。SQL標準は、米国規格協会(ANSI)が発行している。デ
ータベースインターフェース704は、サーバ700により受け取られた問合わ
せにフィルタをかける一組のオブジェクトを包含する。こうしたフィルタは、デ
ータベース問合わせの範囲を狭めカストマイズするのに役立つ。
The database interface module 704 uses the CAS database 750.
It may be implemented using a commercially available database product.
The database 750 is used to store short-term stay data, such as stay data for tokens requesting renewal, or long-term stay data, such as title name, cryptographic key information, and other information about the title available via the SCDP system. You can If there are multiple CAS servers on the network, the database 750 may be shared by multiple CAS servers 700. Database interface 704 and database 750 communicate in the SQL standard database query language. The SQL standard is published by the American National Standards Institute (ANSI). The database interface 704 contains a set of objects that filter the queries received by the server 700. These filters help narrow and customize database queries.

【0090】 CASサーバ700はネットワーク205を介して残りのSCDPシステムに
接続され、このネットワークは図示した実施例においては、ローカルエリアネッ
トワーク又は広域ネットワークとして実現されたインターネットプロトコルに基
づいたネットワークである。サーバ700は遠隔手順呼び出しモジュール706
を介してネットワーク205とインターフェースをとる。モジュール706は、
サンマイクロシステムズ社が発行するオープンネットワーク・コンピューティン
グ遠隔手順呼び出し標準(インターネット工学プロジェクトチームが発行したR
FC1057)に準拠したコード又はオブジェクトを包含してもよい。こうした
RPC標準は、ネットワークを介して遠隔通信を試みる2つの実体間のフロー及
び機能呼び出しを制御するコードを定義する。モジュール706は、遠隔手順呼
び出しをサブルーチン機能呼び出しのように見せる何れかの市販ツールを用いて
実現してよい。モジュール706を実現するのに有用な製品の一例としては、マ
サチューセッツ州サウスボロ所在のノーブルネット社が販売するノーブルネット
安全RPCがある。ノーブルネット安全RPCは、通常のRPCインターフェー
スに付加的な安全レイヤを提供する。
The CAS server 700 is connected to the rest of the SCDP system via a network 205, which in the illustrated embodiment is a network based on the Internet protocol implemented as a local area network or a wide area network. The server 700 is a remote procedure call module 706.
Interface with the network 205 via. Module 706
Open network computing remote procedure call standard issued by Sun Microsystems, Inc. (R published by the Internet Engineering Project Team)
It may include a code or an object conforming to FC1057). These RPC standards define code that controls the flow and function calls between two entities attempting telecommunications over a network. Module 706 may be implemented using any commercially available tool that makes remote procedure calls look like subroutine function calls. One example of a product that may be useful in implementing module 706 is the Noblenet Secure RPC sold by Noblenet, Inc. of Southborough, Mass. Noblenet Secure RPC provides an additional safety layer over the regular RPC interface.

【0091】 URN−URL変換モジュール708は、URN問合わせをデータベース75
0に受けると対応するURLを返すコード又は一連のオブジェクトを包含する。
こうしたURNは、SCDPクライアントのランチャモジュールからネットワー
ク205を介して受け取られる。URNが記憶されるデータベース750は複数
レコードを備えた順次データベースでよい。モジュール708は適切な問合わせ
をデータベースインターフェース704に送り、データベースから適切なURL
を受け取る。モジュール708は、その後、ネットワーク上をRPCモジュール
706を介して対応するURLをSCDPクライアントに送信する。或いは、タ
イトル及び/又はコンテンツサーバの数が限られている環境においては、URL
はサーバに付随したディスクに記憶してもよく、更に、モジュール708は受信
したURNの参照用テーブル変換を実行するプログラムロジックを包含していて
もよい。
The URN-URL conversion module 708 stores the URN inquiry in the database 75.
Contains a code or set of objects that returns a corresponding URL when it receives 0.
Such a URN is received via the network 205 from the launcher module of the SCDP client. The database 750 in which the URN is stored may be a sequential database with multiple records. The module 708 sends the appropriate query to the database interface 704 and sends the appropriate URL from the database.
To receive. The module 708 then sends the corresponding URL to the SCDP client via the RPC module 706 over the network. Alternatively, in an environment where the number of titles and / or content servers is limited, the URL
May be stored on a disk associated with the server, and further module 708 may include program logic to perform lookup table translation of the received URN.

【0092】 変換モジュール708は、抄録URNデータ構造を絶対URLデータ構造に変
換し、又、一連の変換テーブル及び関連した比較ロジックによって実現してよい
。URL検証モジュール712は、Eコマースサーバ202からランチストリン
グ及び、ハッシュコードと暗号化キーによりランチストリングがデジタル署名す
るタイムスタンプを受信するコード又は同等のオブジェクトを包含する。具体的
には、メッセージ認証コードをCASサーバ700から受け取ったランチストリ
ングに追加してもよい。このメッセージ認証コードは、MD5ハッシュアルゴリ
ズムに基づいて生成されたハッシュコードを含んでもよく、更にデータ暗号化規
格(DES)を含む複数の暗号化標準に従って生成された暗号化キーを含んでい
てもよい。本明細書で説明したように、デジタル署名されたランチストリングは
その後、Eコマースサーバ202に送られ、更に、クライアントホストシステム
のウェブブラウザに返信される。
The translation module 708 translates the abstract URN data structure into an absolute URL data structure and may be implemented by a series of translation tables and associated comparison logic. The URL verification module 712 includes code or an equivalent object that receives the launch string from the e-commerce server 202 and the time stamp that the launch string digitally signs with the hash code and the encryption key. Specifically, the message authentication code may be added to the launch string received from the CAS server 700. The message authentication code may include a hash code generated based on the MD5 hash algorithm, and may further include an encryption key generated according to a plurality of encryption standards including a data encryption standard (DES). . As described herein, the digitally signed launch string is then sent to the e-commerce server 202 and further returned to the client host system's web browser.

【0093】 SCDPシステムにおいては、アクティベータは、キーイング情報を安全でな
い可能性のあるクライアントプロセスに送る機能を果たす。サーバ700のアク
ティベータ生成モジュール710は、一連のバイトコードを生成すると共に暗号
キーをその一連のバイトコードに添えるコード又は適切なオブジェクトを包含す
る。ある実現化例ではこのキーはデータベース750から検索される。アクティ
ベータ生成モジュールの実現様態は、SCDPシステム内で用いられるアクティ
ベータの洗練度に部分的に左右される。一連のバイトコード及びそこに付加又は
統合されたたキーを包含するアクティベータに関しては、アクティベータ生成モ
ジュール710は上述のように実現されている。別の実施例では、キーはアクテ
ィベータにもっと安全な方法(例えば、キーをバイトコード列に折り畳む)で統
合されており、付加的ロジック及び/又はオブジェクトがモジュール710内で
そうした機能を実現するのに必要である。例えば、キーを一連のバイトコードに
添える替わりに、数を生成したりその他の論理演算を実行するような一定の機能
を実行するバイトコード列をアクティベータ内に挿入してもよい。そうした実施
例では、モジュール710は、複数のバイトコード列から何れかを無作為に選択
するロジック又はコード曖昧化技法として本明細書で説明した技法を含んでもよ
い。こうした実施例では、モジュール710は、極めて安全にアクティベータを
無作為に生成する能力を備える。或いは、更に高度に洗練されたアクティベータ
の実現例では、アクティベータモジュール710は、外部ライブラリに常駐する
こともできるアクティベータ生成ルーチンを呼び出してアクティベータを生成で
きる。
In the SCDP system, the activator serves to send keying information to potentially insecure client processes. Activator generation module 710 of server 700 contains code or a suitable object that generates a sequence of bytecodes and attaches an encryption key to the sequence of bytecodes. In one implementation, this key is retrieved from database 750. The implementation of the activator generation module depends in part on the sophistication of the activator used in the SCDP system. Activator generation module 710 is implemented as described above for activators that include a series of bytecodes and keys appended or integrated therein. In another embodiment, the key is integrated with the activator in a more secure manner (eg, folding the key into a bytecode sequence), and additional logic and / or objects implement such functionality within module 710. Needed for. For example, instead of appending a key to a series of bytecodes, a bytecode sequence that performs certain functions such as generating numbers or performing other logical operations may be inserted within the activator. In such an embodiment, module 710 may include a logic or code ambiguity technique described herein as a random selection of any of a plurality of bytecode sequences. In these illustrative examples, module 710 provides the ability to randomly generate activators in a highly secure manner. Alternatively, in a more sophisticated activator implementation, activator module 710 can call an activator generation routine that can also reside in an external library to generate the activator.

【0094】 上述したCASモジュールは、SCDPシステム内に5つの主たる機能を含ん
でいる。第1に、CASは、ユーザに暗号化briqコンテンツの一度だけの使
用を許容する暗号アクティベータを提供する。第2に、CASにより、SCDP
システムがタイトルの使用を確実且つ的確に追跡し、更に不正使用する目的で設
計されたハッキングされたクライアントを開発することが極めて困難な安全モデ
ルを確実にサポートする。第3に、CASはCAS専用キーで署名し且つアクテ
ィベータに添付された制限寿命RAFT許可トークンを提供する。RAFTクラ
イアントは、許可トークンにRAFT要求を含める。RAFTサーバはこのトー
クンを用いて要求されたコンテンツにアクセスする権利がクライアントにあるか
検証する。第4に、CASはEコマースサーバソフトウェア・請求書作成システ
ムと対話し、取引を完了する。取引は、購入交渉中には完了せず、エンドユーザ
がコンテンツを成功裏に実行したことをCASが確認するまで行われない。第1
アクティベータ更新の終了が、タイトルがうまく実行されていることを示す。5
番目の機能として、CASはタイトル使用報告及びアクティベータ追跡のための
データベースを維持する。
The CAS module described above contains five main functions within the SCDP system. First, CAS provides a cryptographic activator that allows users to use encrypted briq content only once. Secondly, by CAS, SCDP
The system reliably and accurately tracks the use of titles, and also reliably supports a safety model where it is extremely difficult to develop a hacked client designed for abuse. Third, CAS provides a limited life RAFT authorization token signed with a CAS private key and attached to the activator. The RAFT client includes the RAFT request in the authorization token. The RAFT server uses this token to verify that the client has the right to access the requested content. Fourth, CAS interacts with the e-commerce server software and billing system to complete the transaction. The transaction does not complete during the purchase negotiation and does not occur until CAS confirms that the end user successfully executed the content. First
The end of the activator update indicates that the title has been successfully executed. 5
As a second function, CAS maintains a database for title usage reporting and activator tracking.

【0095】 3種類の経過記録がCASに関係している。第1に、CASの活動は標準UN
IX(R)テキスト経過記録に記録される。この経過記録は診断のためだけに意
図されている。第2に、CASは、報告及びアクティベータ追跡目的で取引をC
ASデータベーステーブルに記録する。これらの記録は、実際の請求書作成目的
で用いられるEコマースサーバシステムによる記録とは別のものである。第3に
、CASデータベース自身が内部処理経過記録を保持し、その機能は確実にデー
タベース処理が完了し且つロールバックされるように保証することである。こう
した機能はCASデータベースに内部化してもよい。図示した実施例では、CA
Sは、オラクルソフトウェア社から市販されているような市販のデータベースメ
インテナンスソフトウェアを用い、購入処理が行われたかロールバックされたか
を確認する。データベース処理は、上述した金融処理とは異なる。金融処理がデ
ータベース処理であることもあるが、ユーザ名を更新するなどのその他多くの処
理がデータベース処理でありえる。
Three types of progress records are associated with CAS. First, CAS activities are standard UN
Recorded in the IX (R) Text Progress Record. This log is intended for diagnostic purposes only. Second, CAS will be able to trade transactions for reporting and activator tracking purposes.
Record in AS database table. These records are separate from the records by the e-commerce server system used for actual billing purposes. Third, the CAS database itself keeps track of internal processing and its function is to ensure that database processing is completed and rolled back. Such functionality may be internalized in the CAS database. In the illustrated embodiment, CA
S uses commercially available database maintenance software, such as that available from Oracle Software, to verify whether the purchase process was done or rolled back. Database processing is different from the financial processing described above. The financial process may be a database process, but many other processes such as updating a user name can be a database process.

【0096】 図示した実施例では、CASは、システム管理者がCASの状態(例えば、現
在使用されているデータベース接続スレッドの数及びユーザ接続の現在の数、つ
まり、使用されている接続スレッド)を監視できる管理インターフェースをサポ
ートする。更に、ユーザ数及び運転開始以降のデータベース接続の数のピークな
どの統計情報や、運転開始以降にユーザ又はデータベース接続が所定限度に達し
た回数も利用できる。
In the illustrated embodiment, the CAS indicates to the system administrator the status of the CAS (eg, the number of database connection threads currently in use and the current number of user connections, ie, the connection threads in use). Supports a management interface that can be monitored. Furthermore, statistical information such as the number of users and the peak number of database connections since the start of operation, and the number of times a user or database connection has reached a predetermined limit since the start of operation can also be used.

【0097】 SCDPクライアントはクライアントライブラリを用いてCASと対話する。
クライアントライブラリは各クライアントプラットフォームに固有であってもよ
いが、その訳は、これはSCDPクライアントGUIと通信するプラットフォー
ム固有方法を用いるからである。図示した実施例では、つまりWIN32プラッ
トフォームでは、クライアントライブラリはCASLIB32と称する。クライ
アントライブラリは、CASへの移送を示すCASインターフェースクラスCC
ASと、特定のクライアントセッションを示すCCasSessionとをエク
スポートする。アプリケーション・プログラム・インターフェース(API)に
より、CASLIB32クライアントは、複数セッションを通じて複数タイトル
に関する交渉を同時に実行できる。APIは、CASインターフェースを移送プ
ロトコルの細部から隔離する役目を果たす、CASとやり取りする情報を示す追
加クラスもエキスポートする。こうした方法は、CActivator、CUr
lなどとして実現できる。CCASは、ウィンドウズ(R)メッセージを送って
クライアントにも非同期的に応答する。
The SCDP client uses the client library to interact with the CAS.
The client library may be specific to each client platform because it uses a platform specific method of communicating with the SCDP client GUI. In the illustrated embodiment, that is, on the WIN32 platform, the client library is referred to as CASLIB32. The client library is a CAS interface class CC that indicates the transfer to CAS.
Export AS and CCasSession indicating a specific client session. The application program interface (API) allows CASLIB 32 clients to simultaneously negotiate multiple titles over multiple sessions. The API also exports additional classes that indicate information to interact with the CAS that serves to isolate the CAS interface from the details of the transport protocol. Such methods include CAActivator, CUr
It can be realized as l or the like. CCAS also sends a Windows message and responds asynchronously to the client.

【0098】 CASによるアクティベータサポート アクティベータの最も単純な実現例は、所与のbriqのキーをアクティベー
タにコンパイルしたバイトコードルーチンである。このアクティベータ実現例で
は、CASは、クライアントを認証し、購入したbriqを特定し、アクティベ
ータバイトコードを構築し、更に、アクティベータをダウンロードする。SCD
Pクライアントは、その後、接続を閉じてタイトルを実行する。こうしたアクテ
ィベータは前もって生成しておき、CASアクティベータファクトリ710及び
インターフェース704によりデータベースから直接検索してもよい。
Activator Support with CAS The simplest implementation of an activator is a bytecode routine that compiles the key of a given briq into an activator. In this activator implementation, the CAS authenticates the client, identifies the purchased briq, builds the activator bytecode, and downloads the activator. SCD
The P-Client then closes the connection and executes the title. Such activators may be generated in advance and retrieved directly from the database by the CAS activator factory 710 and interface 704.

【0099】 より高度なアクティベータ実現例では、アクティベータは暗号アルゴリズムを
認識し、CASからキーを要求する。CASは認証情報及び安全データを存在す
るストリームから受け取っており、必要などんな引数を備えた「要求キー」に対
する所定のRPC応答を用意できる。
In a more advanced activator implementation, the activator recognizes the cryptographic algorithm and requests the key from the CAS. The CAS has received authentication information and security data from the existing stream and can provide a given RPC response to the "request key" with any required arguments.

【0100】 別の実現例では、アクティベータは複数段階を必要とする可能性もある新規な
機構の任意コードを備えていてもよい。後に説明するように、アクティベータは
、不透明引き数を備え且つ「テクニック」の指定付きの遠隔手順呼び出しをCA
Sに発してもよい。その後、CASは、この不透明データをこのテクニックに送
り、テクニックはオペックデータをクライアントに返すか、他の呼び出し又はそ
の他のサービスに呼び出しを行う。CAS自信がインタプリタを備えていれば、
CASはアクティベータ及びテクニックのコードをデータベースから検索できる
。全てのアクティベータが予め生成されていれば、いずれのテクニックに関して
も多くのアクティベータが存在し得る。或いは、曖昧化及び多くの曖昧化具体例
を如何に組み合わせるかに関する規則集のデータベースをCASに管理させても
よい。
In another implementation, the activator may comprise arbitrary code for a novel mechanism that may require multiple stages. As described below, the activator CAs remote procedure calls with opaque arguments and with "technique" specified.
You may call S. The CAS then sends this opaque data to this technique, which returns the opec data to the client or makes another call or call to another service. If CAS Confidence has an interpreter,
The CAS can retrieve the activator and technique codes from the database. There can be many activators for any technique, provided all activators are pre-generated. Alternatively, the CAS may maintain a database of rule sets on how to combine obfuscation and many obfuscation examples.

【0101】 CASは、所与のクライアント、製品、購入品に適したアクティベータを選択
する。CASは、そのアクティベータを届け、付加的RPCを介してそのアクテ
ィベータを「サポート」する。例えば所与のbriqに対する単純な「要求キー
」などの多くのCAS・RPCを予め定義できる。こうしたRPCは選択したア
クティベータに基づいて制限できる。例えば、殆どのクライアントは、単純な「
要求キー」呼び出しを許可されないが、アクティベータによる使用をテクニック
が予期する如何なる呼び出しでも実行することが必要となる。
The CAS selects the appropriate activator for a given client, product or purchase. The CAS delivers the activator and "supports" the activator via an additional RPC. Many CAS RPCs can be pre-defined, for example a simple "request key" for a given briq. Such RPCs can be limited based on the activator selected. For example, most clients use the simple "
It is not allowed to make "request key" calls, but it is necessary to make any calls the technique expects to be used by the activator.

【0102】 図7Bを参照すると、加入及びタイトル実行処理中にCASサーバ700が実
行する処理ステップが示されている。具体的には、CASサーバ700は、図9
及びそれに関連した記載で説明されているように、ランチストリングを受け取る
が、ステップ720に示したように、送信元はEコマースサーバである。次に、
ステップ722に示したように、CASはランチストリングに署名する。CAS
は、専用暗号キーでこのランチストリングに「署名」する。処理ステップ724
に示したように、署名済みのランチストリングは、その後CASサーバ700か
ら、広帯域ネットワークに接続されたホストシステムで実行されているSCDP
クライアントに送られる。図5A乃至5Cに関連して説明したように、SCDP
クライアントはランチストリングからURNを抽出し、このURNをCAS70
0に送信する。ステップ726に示したように、CAS700はこのURNをS
CDPクライアントから受け取り、処理ステップ728に示したように、URN
からURLへの変換を行う。上述したように、CAS700は、モジュール70
8を用いてこのURN−URL変換を行う。こうした変換はデータベース750
へ問合わせたり、テーブル参照アルゴリズムを使用することもあるが、それはモ
ジュール708の実現方法による。処理ステップ728に示したように、CAS
700は、URLリストをSCDPクライアントに送信する。次に、処理ステッ
プ730に示したように、CAS700は、SCDPクライアントから許可要求
を受け取る。SCDPクライアントからのこの購入許可要求はランチストリング
を含む。その後、処理ステップ732に示したように、CAS700は、ランチ
ストリングを検証して、このランチストリングが以前に自分が署名したものか、
複数条件付きアクセスサーバを含む実現例であれば、別の権限付与されたサーバ
が署名したものかを判断する。本明細書で説明したように、CASサーバのモジ
ュール710の実現方法に従ってアクティベータは生成される。
Referring to FIG. 7B, the process steps performed by the CAS server 700 during the subscription and title execution process are shown. Specifically, the CAS server 700 is shown in FIG.
And the description associated therewith, the launch string is received, but the source is an e-commerce server, as shown in step 720. next,
The CAS signs the launch string, as shown in step 722. CAS
"Signs" this launch string with a private encryption key. Processing step 724
The signed launch string is then sent from the CAS server 700 to the SCDP running on the host system connected to the broadband network, as shown in FIG.
Sent to client. As described in connection with FIGS. 5A-5C, SCDP
The client extracts the URN from the launchstring and uses this URN to CAS70.
Send to 0. The CAS 700 sets this URN to S as shown in step 726.
Received from the CDP client and, as indicated in process step 728, the URN
To URL is converted. As described above, the CAS 700 includes the module 70.
8 is used to perform this URN-URL conversion. Such conversion is done in database 750
, Or use a table lookup algorithm, depending on how module 708 is implemented. As shown in process step 728, CAS
700 sends the URL list to the SCDP client. The CAS 700 then receives an authorization request from the SCDP client, as shown in process step 730. This purchase authorization request from the SCDP client includes a launch string. Then, as shown in process step 732, the CAS 700 validates the launch string to see if this launch string was previously signed by itself.
In the case of an implementation including a plurality of conditional access servers, it is determined whether another authorized server has signed. Activators are generated according to how the CAS server module 710 is implemented, as described herein.

【0103】 処理ステップ736に示したように、次に、CAS700は、RAFTトーク
ンとアクティベータをSCDPクライアントに送信する。CAS700は、デー
タベース750からRAFTトークンを検索する。このRAFTトークンは、本
明細書で説明し、図8に示した形式を備えている。本明細書で説明したように、
アクティベータ及びRAFTトークンにより、SCDPクライアントは所望のタ
イトルにアクセスし、タイトルデータの実行を開始できる。この段階で、決定ス
テップ738に示したように、アクティベータトークン更新要求がSCDPクラ
イアントから送られるまでは、このSCDPクライアントに関しては何の動作も
行わない。処理ステップ740に示したように、SCDPクライアントから最初
の更新要求を受け取ると、CAS700は、タイトル購入をEコマースサーバに
通知する。この取引のEコマースサーバへの通知には、ユーザがこの特定タイト
ルの代金を支払ったことを示す実際の応答記録が含まれる。タイトルがSCDP
クライアント上で正しく実行されていることを示す第1更新要求が出されるまで
、こうした通知はなされない。CASからSCDPクライアントに当初送られた
アクティベータ内のタイムアウト機構は、所定の期間後に無効つまり満了となり
、タイトルが適切に実行されいることを表す。CASは、処理ステップ742に
示したように、新しいトークンを発行し、要求しているSCDPクライアントに
このペアを送信する。RAFTトークンの寿命は、RAFTトークンの開始時間
及び停止時間フィールドに示してあるように、アクティベータと共にSCDPク
ライアントに最初に送信されたトークンの寿命より長くてもよい。SCDPクラ
イアントからのその後のアクティベータ/トークン更新要求があっても、CAS
がEコマースサーバにタイトル購入を通知することはない。上述したように、S
CDPクライアントとCASとの間の全ての通信は、安全なRPC接続を介する
ので、こうした接続はRPC標準に準拠する市販の製品を用いて確立させてよい
As shown in process step 736, the CAS 700 then sends the RAFT token and activator to the SCDP client. The CAS 700 retrieves the RAFT token from the database 750. This RAFT token has the format described herein and shown in FIG. As described herein,
The activator and RAFT token allow the SCDP client to access the desired title and begin executing title data. At this stage, as shown in decision step 738, no action is taken on the SCDP client until an activator token update request is sent from the SCDP client. Upon receiving the first update request from the SCDP client, the CAS 700 notifies the e-commerce server of the title purchase, as shown in process step 740. The notification to the e-commerce server for this transaction includes the actual response record indicating that the user has paid for this particular title. Title is SCDP
No such notification is made until the first update request is made on the client indicating that it is executing correctly. The timeout mechanism in the activator originally sent by the CAS to the SCDP client expires or expires after a predetermined period of time, indicating that the title is performing properly. The CAS issues a new token and sends this pair to the requesting SCDP client, as shown in process step 742. The life of the RAFT token may be longer than the life of the token originally sent to the SCDP client with the activator, as indicated in the RAFT token start and stop time fields. Even if there is a subsequent activator / token update request from the SCDP client, the CAS
Does not notify the e-commerce server of the title purchase. As mentioned above, S
Since all communication between the CDP client and the CAS is over a secure RPC connection, such a connection may be established using commercial products that comply with the RPC standard.

【0104】 通常の技能を備えた当業者なら理解するだろうが、図7Dで概観した処理は、
SCDPクライアントとの、タイトル実行終了と共に終わる関係においてCAS
が実行する諸ステップに注目したものである。CASは、幾つかの異なるスレッ
ドが図示した処理の様々なステップを同時実行するマルチタスク・アプリケーシ
ョンとして実現できることは、通常の技能を備えた当業者には明白であろう。従
って、CASは特定のSCDPクライアントの要求を満たす一方、同時に他のS
CDPクライアントからの要求にも対応可能である。
As will be appreciated by those of ordinary skill in the art, the process outlined in FIG.
CAS in a relationship with the SCDP client that ends with the end of title execution
It focuses on the steps performed by. It will be apparent to one of ordinary skill in the art that the CAS can be implemented as a multitasking application in which several different threads concurrently execute various steps of the illustrated process. Therefore, the CAS satisfies the demands of a particular SCDP client, while at the same time other SDP clients
The request from the CDP client can also be dealt with.

【0105】 RPC移送 CASとCASLIB32は、ノーブルネット安全RPCなどの標準に基づい
た遠隔手順呼び出しライブラリを介して通信する。SCDPクライアントはCA
Sに複数の呼び出しを同期で行い、CASはこれら呼び出しを処理のためスレッ
ドに割り当てる。CASLIB32は非同期的インターフェースを接続されたG
UIに提供し、それはこれらの同期RPC要求をキューに入れ且つ背景スレッド
から取り出す。高い処理能力を提供するため、CASは、タスク実行のために用
いることができるスレッドを準備してプールしておく。このスレッドプールは再
使用可能なC++クラスである。入ってくるタスクはRPCレイヤで捕捉され、
スレッドプールのキューに入れ、最終的には組み入れ処理でなくスレッドで処理
される。スレッドプールによって、CASは、より効率よく同時処理を行うこと
ができ、短いロードスパイク下で動作を向上させる。RPC呼び出しはタグ付け
した後に解放できるスレッド安全メモリを割り付ける必要があるが、その理由は
、RPC移送がそれらを送信し終わるまではバッファは解放できないからである
。CASは、スレッドIDによりメモリを消去できる再使用可能C++メモリプ
ールクラスを用いる。
RPC Transport CAS and CASLIB 32 communicate via a remote procedure call library based on standards such as Noblenet Secure RPC. SCDP client is CA
Multiple calls to S are made synchronously, and CAS assigns these calls to threads for processing. CASLIB 32 is a G with an asynchronous interface
It provides to the UI, which queues these synchronous RPC requests and retrieves them from the background thread. To provide high processing power, CAS prepares and pools threads that can be used for task execution. This thread pool is a reusable C ++ class. Incoming tasks are captured at the RPC layer,
It is put in the queue of the thread pool, and eventually it is processed by the thread instead of the inclusion process. The thread pool allows CAS to handle concurrency more efficiently and improve performance under short load spikes. RPC calls need to allocate thread-safe memory that can be released after tagging, because buffers cannot be released until the RPC transport has sent them. CAS uses a reusable C ++ memory pool class that can erase memory by thread ID.

【0106】 CASは、ウェブサーバのようなステートレス(原語:stateless)サーバと
して実現してもよい。ステートレスサーバは、より多くのサーバ計算機を配置し
且つ入ってくる接続を、これらサーバに分配する「総当たり式」ソフトウェアを
用いて容易に拡大できるという利点がある。これは、SCDPクライアントの後
の要求が、それが元々接続したサーバの所に行く必要がないからである。CAS
は、要求間に接続ソケットTCPストリームを維持し、移送セッションキーなど
の情報が取り付けられるようにする。この接続が切られると、CASLIB32
は別のCAS処理にも再接続を試みるので、状態をCASLIB32に又はデー
タベースの中にプッシュするのが好ましい。
The CAS may be implemented as a stateless server such as a web server. Stateless servers have the advantage that more server machines can be deployed and incoming connections can be easily expanded with "brute force" software that distributes to these servers. This is because the request after the SCDP client does not have to go to the server to which it originally connected. CAS
Maintains a connection socket TCP stream between requests so that information such as transport session keys can be attached. When this connection is cut, CASLIB32
Will attempt to reconnect to another CAS process, so it is preferable to push the state to CASLIB 32 or into the database.

【0107】 処理量を増やすために、CASは、活動状態にある複数データベース接続のプ
ールを用いるように設計されている。サーバスレッドはプールから接続を要求し
、データベースの接続待ち時間を最小化するため、必要に応じて背景で不動作接
続を再接続する。データベース接続プールは再使用可能C++クラスとして実現
されている。CASは、DBOjectと呼ばれる抄録データベース・インター
フェースを用いるが、このインターフェースは再使用可能C++クラスとして実
現されており、CASの他のデータベースへの移植を容易にする。
To increase throughput, CAS is designed to use a pool of active multiple database connections. Server threads request connections from the pool, reconnecting dead connections in the background as necessary to minimize database connection latency. The database connection pool is implemented as a reusable C ++ class. CAS uses an abstract database interface called DBOject, which is implemented as a reusable C ++ class to facilitate porting CAS to other databases.

【0108】 RAFTトークン SCDPシステムの安全モデルを全般的に向上させるため、CASは、SCD
Pクライアントに署名済みRAFT許可トークンを与える。このRAFTトーク
ンは、特定のSCDPクライアントが特定のURNに所定の時間アクセスするの
を許可する。CASは、標準化された公開かぎデジタル署名アルゴリズムを用い
てRAFTトークンにデジタル署名する。RAFTサーバの実行可能なコンテン
ツにアクセスするためには、RAFT・VxDはそのトークンをそのサーバに渡
さなければならない。RAFTサーバは、CASのデジタル署名を検証し、その
後、トークンのコンテンツを検証する。RAFTトークン800は、CASの管
理ドメイン内の如何なる数のRAFTサーバに対しても有効で、言い換えれば、
広帯域サービスブロバイダは自己のネットワーク上に複数サーバをインストール
でき、RAFTトークンはそれらの何れにも受け入れられることとなる。
RAFT Token To improve the overall safety model of the SCDP system, the CAS
Give the PClient a signed RAFT authorization token. This RAFT token allows a particular SCDP client to access a particular URN for a predetermined time. The CAS digitally signs the RAFT token using a standardized public key digital signature algorithm. In order to access the executable content of a RAFT server, RAFT VxD must pass its token to that server. The RAFT server verifies the CAS digital signature and then verifies the content of the token. The RAFT token 800 is valid for any number of RAFT servers within the CAS administrative domain, in other words,
Broadband service providers can install multiple servers on their network, and RAFT tokens will be accepted by any of them.

【0109】 図示した実施例では、RAFTトークンは、図8に示した形式を備えたデータ
構成で実現されている。RAFTトークン800は、URN、URN長804、
開始時間806、終了時間808、IPアドレス810、及びCAS署名812
を包含する。URN802及び付随した長さ804は、RAFTトークンがアン
ロックする特定のタイトルを定義する。開始時間806及び終了時間808はト
ークンの寿命を定義する。このURNの形式は既に説明した。RAFT許可トー
クンは、RAFTクライアントのIPアドレスをネットワークのバイト順に32
ビット値として含む。このトークンは更に、要求されたURN及び32ビット開
始及び終了時間も含む。こうした時間は、POSIX1003.1−1988に
「新時代の始めからの秒数」又は概ね1970年1月1日、グリニッジ平均時0
0:00:00からの秒数として定義されている。RAFTサーバが真正確認で
きるように、CASはCASグループの専用キーでトークンに署名する。RAF
Tサーバは、サーバの現在時間がトークンの時間帯に入っていなければ、アクセ
スを拒否する。IPアドレスはアクティベータ/トークンを要求するSCDPク
ライアントのネットワークアドレスを定義する。トークンを提出したSCDPク
ライアントが同じIPアドレスを持っていなければ、RAFTサーバはアクセス
を拒否することで、他のクライアントが不正入手したトークンの使用を防止する
In the illustrated embodiment, the RAFT token is implemented in a data structure with the format shown in FIG. The RAFT token 800 is a URN, a URN length 804,
Start time 806, end time 808, IP address 810, and CAS signature 812
Includes. The URN 802 and associated length 804 define the particular title that the RAFT token unlocks. Start time 806 and end time 808 define the life of the token. The format of this URN has already been described. The RAFT authorization token contains the IP address of the RAFT client 32 in network byte order.
Include as bit value. This token also contains the requested URN and 32-bit start and end times. These times can be found in POSIX 1003.1-1988, "Seconds from the beginning of the new era," or roughly January 1, 1970, Greenwich Mean Time 0.
It is defined as the number of seconds since 0:00:00. The CAS signs the token with the private key of the CAS group so that the RAFT server can verify the authenticity. RAF
The T server denies access if the current time of the server is not within the token time zone. The IP address defines the network address of the SCDP client requesting the activator / token. If the SCDP client that submitted the token does not have the same IP address, the RAFT server denies access to prevent the token from being used illegally by other clients.

【0110】 RAFTトークンはアクティベータの一部としてクライアントに送信される。
RAFTトークンはアクティベータと共に更新される。アクティベータは寿命制
限メカニズムに基づき構成されている。SCDPクライアントは、RPC機構を
介してCAS要求を出し、現在のアクティベータが無効つまり満期になる前にア
クティベータとトークンのペアを更新する。
The RAFT token is sent to the client as part of the activator.
The RAFT token is updated with the activator. The activator is constructed based on a life-limiting mechanism. The SCDP client issues a CAS request via the RPC mechanism to update the activator-token pair before the current activator becomes invalid or expires.

【0111】 ランダムアクセスファイル移送プロトコル及びサーバ 図10は、RAFTサーバ1000及び付随したデータベース1050のブロ
ック図を概念的に示す。図示した実施例では、RAFTサーバ1000はPOS
IX.1(米国電気電子学会標準1003.1,1988)と互換性のあるプラ
ットフォーム上で実行可能なアプリケーションとして(例えば、カリフォルニア
州パロアルト所在のサンマイクロシステムズ社が市販するサンソラリス(Sun So
laris(商標))オペレーティングシステム又は、レッドハットソフトウェア社
が市販するリナックスオペレーティングシステム)として実現してもよく、こう
したプラットフォームは図1に示したものと類似のコンピュータアーキテクチャ
上で実行できる。
Random Access File Transfer Protocol and Server FIG. 10 conceptually illustrates a block diagram of RAFT server 1000 and associated database 1050. In the illustrated embodiment, the RAFT server 1000 is a POS.
IX. 1 (American Institute of Electrical and Electronics Engineers Standard 1003.1, 1988) as an application that can be run on a platform (eg, Sun Solas, available from Sun Microsystems, Inc. of Palo Alto, Calif.).
laris ™ operating system or the Linux operating system marketed by Red Hat Software, Inc.), and such a platform can run on a computer architecture similar to that shown in FIG.

【0112】 RAFTサーバはRAFTアプリケーション1002及びオペレーティングシ
ステム上で実行されるシンプルネットワーク管理プロトコル(SNMP)マスタ
ーエージェント1004として実現できる。SNMPマスターエージェント10
04を実現するのに適して市販品は、SNMPリサーチインク社から入手できる
エマネートがある。マスターエージェント1004はSNMP標準に従った公開
済みのアプリケーションプログラムを用いてネットワーク205と通信する。
The RAFT server can be implemented as a RAFT application 1002 and a simple network management protocol (SNMP) master agent 1004 running on the operating system. SNMP master agent 10
A suitable commercial product for achieving 04 is Emmanate available from SNMP Research, Inc. The master agent 1004 communicates with the network 205 using a published application program according to the SNMP standard.

【0113】 RAFTアプリケーション1002は、POSIX(ポータブル・オペレーテ
ィングシステム・インターフェース標準)ファイル出入力モジュール1006、
ファイルシステムインターフェース1008、SNMP計装モジュール1010
(つまりRAFT・SNMPサブエージェント)及びネットワーク/RPC/R
AFTプロトコル・インターフェースモジュール1012を包含する。
The RAFT application 1002 is a POSIX (Portable Operating System Interface Standard) file input / output module 1006,
File system interface 1008, SNMP instrumentation module 1010
(Ie RAFT / SNMP subagent) and network / RPC / R
It includes an AFT protocol interface module 1012.

【0114】 SNMP計装モジュール1010は、システム管理者がネットワークの帯域幅
を抑えてネットワーク性能を向上させるるのに有用な統計的及びロジスティック
情報を収集するオブジェクト又は対応するコードを内包している。モジュール1
010は、RAFTサーバ1000のオプションの装置である。
The SNMP instrumentation module 1010 contains objects or corresponding code that collects statistical and logistic information that is useful for system administrators to reduce network bandwidth and improve network performance. Module 1
Reference numeral 010 is an optional device of the RAFT server 1000.

【0115】 RPC・RAFTプロトコル1012は、本明細書に記載されたように所有権
を主張できるRPCプロトコルを用いてIPに基づいたネットワーク205との
インターフェースをとる。モジュール1012は、このプロトコルを実現し且つ
RAFTトークンの内容を検証するのに必要なコート及び/又はオブジェクトを
含んでいる。
The RPC RAFT protocol 1012 interfaces with an IP-based network 205 using the proprietary RPC protocol as described herein. Module 1012 contains the coats and / or objects necessary to implement this protocol and verify the contents of RAFT tokens.

【0116】 ファイル入出力モジュール1006は、米国電気電子学会(IEEE)が発行
しているPOSIX標準1003.1に従ったオブジェクト指向で実現してもよ
い。POSIX・I/Oモジュール1006は、メモリディスク1050にロー
カル・ファイルシステム・インターフェース抄録を提供する。図10に概念的に
示したメモリ1050は、briqの形式で複数タイトルを記憶するのに用いら
れる。本実施例では、解読したbriqのヘッダ部分と符号化されているbri
qの本体部分は、一緒に記憶される。しかし、これら部分には、モジュール10
06及び1008を用いてお互いに独立してアクセスする。ファイルシステム・
インターフェース1008は、特定のbriqに対する要求を受け且つbriq
が記憶されるメモリ1050中のディレクトリ及びファイル中にbriqをマッ
プするプログラムロジックを含んでいる。こうした方法で、ファイルシステムイ
ンターフェース1008はSCDPシステムからのネットワーク要求とメモリ1
050との間のインターフェースとして機能する。図示した実施例においては、
メモリ1050は、RAIDディスクアレイ又はディスクファームなどの一つ以
上のディスクとして実現してもよい。ファイルシステム・インターフェース10
08は、ファイル入出力モジュール1006とネットワーク・プロトコルモジュ
ール1012との間のインターフェースとして機能し、且つ、本明細書で説明し
てあるように、ファイル及びbriqにアクセスするためのプログラムロジック
を実現する。
The file input / output module 1006 may be realized in an object-oriented manner according to the POSIX standard 1003.1 published by the Institute of Electrical and Electronics Engineers (IEEE). The POSIX I / O module 1006 provides a local file system interface abstract to the memory disk 1050. The memory 1050 conceptually shown in FIG. 10 is used to store a plurality of titles in the briq format. In the present embodiment, the decoded briq header part and the encoded bri are
The body part of q is stored together. However, in these parts, the module 10
06 and 1008 are used to access each other independently. File system
The interface 1008 receives a request for a particular briq and
Contains program logic that maps briq into directories and files in memory 1050 where is stored. In this way, the file system interface 1008 uses the network requests and memory 1 from the SCDP system.
Functions as an interface with 050. In the illustrated embodiment,
The memory 1050 may be implemented as one or more disks such as a RAID disk array or disk farm. File system interface 10
08 functions as an interface between the file I / O module 1006 and the network protocol module 1012, and implements program logic for accessing files and briqs as described herein.

【0117】 SNMPマスターエージェント1004は、RAFTアプリケーションに埋め
込まれているRAFT・SNMPサブエージェントに代わってSNMPプロトコ
ルサービスを提供する。RAFTアプリケーションはSNMPサブエージェント
を使って、その管理を遠隔SNMPマネージャにアクセス可能にする。
The SNMP master agent 1004 provides the SNMP protocol service on behalf of the RAFT / SNMP subagent embedded in the RAFT application. The RAFT application uses the SNMP subagent to make its management accessible to the remote SNMP manager.

【0118】 次の幾つかのステップは、SCDPクライアントとRAFTサーバとの相互作
用を説明するものであり、ランチャがタイトルをランチする。ランチャはCAS
サーバに連絡して、要求されたURNに対応するURLのリストを入手する。U
RLは、特定のbriqの位置(このbriqが存在するRAFTサーバも含む
)を割り出す。各RAFT・URLに関して、最も適切なURL選択の助けとな
るよう、重みを返すようにしてもよい。URLの重み値は高ければ、高いほど好
ましい。
The next few steps describe the interaction between the SCDP client and the RAFT server, where the launcher launches the title. Launcher is CAS
Contact the server to get the list of URLs corresponding to the requested URN. U
The RL determines the location of a particular briq (including the RAFT server where this briq resides). For each RAFT URL, weights may be returned to assist in the most appropriate URL selection. The higher the weight value of the URL, the more preferable.

【0119】 CASによるURN−URL変換に続いて、SCDPクライアントはCASに
、CAS交換に関する説明で述べたように購入要求を送る。購入要求に応答して
、CASサーバは、SCDPクライアントに、選択したURNのRAFT許可ト
ークンを含んだアクティベータを与える。許可トークンは選択したURNに関連
した複数URLの何れにも有効である。
Following the URN-URL translation by CAS, the SCDP client sends a purchase request to CAS as described in the CAS exchange description. In response to the purchase request, the CAS server provides the SCDP client with an activator containing the RAFT authorization token of the selected URN. The authorization token is valid for any of the multiple URLs associated with the selected URN.

【0120】 その後、ランチャはURLのリストを検査して、RAFT・URLが存在する
か判断する。もしRAFT・URLが存在すれば、ランチャはRAFT・URL
のリストのみをRAFTアクセストークンと共にARFSD・VxDに送り、A
RFSD・VxDはこの情報をRAFTクライアント、つまりSCDPクライア
ントのRAFT・VxDに送る。ランチャはRAFT・URLのそれぞれの重み
付けもする。これらの重みはURN−URL変換においてCASが付けたものと
は異なってもよい。RAFTクライアントは、その後、URLリストに指定され
たRAFTサーバの何れかと接続を確立する。RAFTクライアントは、URL
に付けた重みを用いてどのRAFTサーバに最初に連絡するかを決定するための
適切なプログラムロジックをこのクライアント自身に含んでいてもよい。
The launcher then inspects the list of URLs to determine if RAFT URLs exist. If RAFT / URL exists, launcher is RAFT / URL
Send only the list of ARFSD and VxD along with RAFT access token to A
RFSD VxD sends this information to the RAFT client, the SCDP client RAFT VxD. The launcher also weights each of RAFT and URL. These weights may be different than those given by CAS in the URN-URL conversion. The RAFT client then establishes a connection with any of the RAFT servers specified in the URL list. RAFT client is URL
The client itself may include appropriate program logic to determine which RAFT server to contact first using the weights attached to the client.

【0121】 その後、RAFTクライアントは、RAFTサーバ1000上のbriqを開
こうとする。このクライアントはプロトコルバージョン、パス名(URLからの
)、及びRAFTアクセストークンを特定する。プロトコルバージョンは、RA
FTクライアント及びRAFTサーバがプロトコルに関して互換性があるかを確
認するのに用いる32ビット値である。アクセスの正当性を確認するため、RA
FTサーバは、トークン内のURNがbriqヘッダ内のリストにあるものかを
確認する。RAFTサーバ1000は、開ける際にRAFTトークンの開始及び
終了時間をチェックする。もしRAFT_OPENが成功すると、RAFTサー
バは、RAFTファイルハンドル及び、briqタグのハッシュのようなキャッ
シュ処理に用いられるbriqの固有IDを返す。
After that, the RAFT client tries to open the briq on the RAFT server 1000. This client specifies the protocol version, pathname (from URL), and RAFT access token. The protocol version is RA
A 32-bit value used by the FT client and RAFT server to verify protocol compatibility. To confirm the legitimacy of access, RA
The FT server checks if the URN in the token is the one in the list in the briq header. The RAFT server 1000 checks the start and end times of the RAFT token when opening. If RAFT_OPEN is successful, the RAFT server returns the RAFT file handle and the unique ID of the briq used for caching, such as the hash of the briq tag.

【0122】 RAFTサーバが満期時間を確認するために、RAFTサーバの時間は所定間
隔までCASと同期される。したがって、RAFTサーバは現在の時間より早い
開始時間は許容し、その間隔の終了まではアクセスを拒否しない。トークン満期
時間は、アクティベータ保持時間に、変動するネットワーク及びサーバ待ち時間
を加えたものを提唱する。
In order for the RAFT server to check the expiration time, the RAFT server time is synchronized with CAS up to a predetermined interval. Therefore, the RAFT server will allow a start time earlier than the current time and will not deny access until the end of that interval. The token expiry time proposes the activator hold time plus varying network and server latencies.

【0123】 その後のRAFT読みだし要求が出されると、そうした各要求のたびに、RA
FTサーバはアクセストークンが満期になっていないかを確認する。RAFTサ
ーバは、該当するクライアントの有効なアクセストークンがなければ、要求を無
視する。
When a subsequent RAFT read request is issued, RA is issued for each such request.
The FT server checks if the access token has expired. The RAFT server ignores the request unless there is a valid access token for that client.

【0124】 RAFTアクセストークンはいずれ満期となる。SCDPクライアントのアク
ティベータ保持機能が、現在のトークンが満期となる前に新しいRAFTトーク
ンを入手する責任を負っている。これにより、RAFTトークンが確実にタイミ
ング良く更新され、アクセス失敗は通常の動作条件下では起こらない。RAFT
クライアントがRAFT_OPENの間にトークンをRAFTサーバに送ると、
RAFTクライアントは開始時間から満期時間までのトークンの有効期間を計算
しなければならない。RAFTクライアントはCASの公開かぎなしではトーク
ンの内容の正当性を確認できないので、RAFTクライアントは、このトークン
が有効かどうかを確認するのに、更新時間を設定する前にRAFT_OPENが
成功するのを待つ必要がある。しかし、更新時間は、RAFTクライアントがト
ークンを受け取った時間に基づいており、RAFT_OPEN完了時間に基づい
てはいない。サーバへの接続を確実に継続するには、RAFTクライアントは、
トークン満期時間に先だってCASから新規RAFTアクセストークンを要求す
る。新しいRAFTアクセストークンを受け取ると、RAFTクライアントは、
あたらに入手したトークンと共にRAFT_REFRESH処理をRAFTサー
バに送付する。
The RAFT access token will eventually expire. The activator retention function of the SCDP client is responsible for obtaining a new RAFT token before the current token expires. This ensures that the RAFT token is updated in a timely manner and access failures do not occur under normal operating conditions. RAFT
When the client sends a token to RAFT server during RAFT_OPEN,
The RAFT client must calculate the token validity period from the start time to the expiration time. Since the RAFT client cannot confirm the validity of the contents of the token without the CAS public key, the RAFT client waits for RAFT_OPEN to succeed before setting the update time to confirm whether this token is valid. There is a need. However, the update time is based on the time the RAFT client received the token, not the RAFT_OPEN completion time. To ensure that the connection to the server continues, the RAFT client
Request a new RAFT access token from CAS prior to token expiration time. Upon receiving the new RAFT access token, the RAFT client
Send the RAFT_REFRESH process to the RAFT server along with the token you obtained.

【0125】 RAFTクライアントがbriqへのアクセスを完了すると、RAFTクライ
アントはRAFTファイルハンドルでRAFT_CLOSEメッセージを送る。
もしRAFTサーバとRAFTクライアントのと接続が切断されていれば、RA
FTサーバはその接続に対応する全ての開いているファイルを自動的に閉じる。
When the RAFT client completes access to the briq, the RAFT client sends a RAFT_CLOSE message on the RAFT file handle.
If the connection between the RAFT server and RAFT client is broken, RA
The FT server will automatically close all open files corresponding to that connection.

【0126】 RAFTパケットヘッダ定義 RAFTプロトコルに従った全ての通信には、図11に示したようにRAFT
パケットヘッダ1100が含まれている。RAFTパケットヘッダ1100は、
手順番号データフィールド1102、シーケンス番号データフィールド1104
、パケット長フィールド1106及び状態データフィールド1108を包含する
データ構造体として実現できる。手順番号データフィールド1102はRAFT
プロトコルメッセージタイプを特定し、整数形式で実現できる。シーケンス番号
フィールド1104は要求に対して応答を一致させるのに用いられ、整数形式で
実現できる。シーケンス番号は、一つの接続に関してのみ固有性がある。パケッ
ト長フィールド1106は、ヘッダのサイズを含まないパケットデータのサイズ
を示し、整数形式で実現できる。状態フィールド1108はRAFT要求から状
態を示し、整数形式で実現できる。非ゼロ状態は、要求が失敗したことを示す。
異なるプロトコルメッセージに対して異なる状態コードが返される。しかし、ゼ
ロ状態は要求が完全に成功したことを示す。非ゼロ状態の場合はパケット長フィ
ールドがゼロに設定され、これは要求が失敗した場合はパケットデータが返され
ないことを示す。RAFTプロトコルに従って、パケットヘッダにはRAFTパ
ケットデータが続く。
RAFT Packet Header Definition For all communication according to the RAFT protocol, RAFT is used as shown in FIG.
A packet header 1100 is included. The RAFT packet header 1100 is
Procedure number data field 1102, sequence number data field 1104
, A packet length field 1106 and a status data field 1108. The procedure number data field 1102 is RAFT.
It can be realized in integer format by specifying the protocol message type. The sequence number field 1104 is used to match the response to the request and can be implemented in integer form. The sequence number is unique only for one connection. The packet length field 1106 indicates the size of packet data that does not include the size of the header, and can be realized in an integer format. The status field 1108 indicates the status from the RAFT request and can be realized in an integer format. A non-zero state indicates that the request has failed.
Different status codes are returned for different protocol messages. However, the zero state indicates that the request was completely successful. In the non-zero state, the packet length field is set to zero, which indicates that no packet data will be returned if the request fails. RAFT packet data follows the packet header according to the RAFT protocol.

【0127】 RAFTプロトコルメッセージ RAFTプロトコルは、briqアクセス及びRAFTトークン管理を可能に
する4つの異なるプロトコルメッセージからなる。TPC接続を確立すると、要
求者のプロトコルバージョンを特定するために、最初のRAFTプロトコルメッ
セージには、その引き数の一つとしてこのプロトコルバージョンが含まれている
。RAFTプロトコルメッセージのリスト及び記述は以下の通りである。RAF
T_OPEN機能は、プロトコルバージョン、トークン長、RAFTアクセスト
ークン、パス長、及びNULで終わる全パス名で呼び出される。成功すると、R
AFTファイルハンドル、RAFT・ID、及びRAFTサーバがサポートする
最大読み出し長となる。RAFT・IDを用いてSCDPクライアントキャッシ
ュ・タグを生成できる。失敗が起こった場合に備え、RAFT・IDは、複数R
AFTサーバにおける一貫したキャッシュを達成するためのbriq・IDでよ
い。最大読み出し長は、RAFTクライアントにRAFT_READ処理中に要
求できるデータ量を知らせるのが目的である。
RAFT Protocol Message The RAFT protocol consists of four different protocol messages that enable briq access and RAFT token management. Upon establishing a TPC connection, the initial RAFT protocol message includes this protocol version as one of its arguments to identify the requestor's protocol version. The list and description of RAFT protocol messages is as follows. RAF
The T_OPEN function is called with the protocol version, token length, RAFT access token, path length, and full pathname ending in NUL. If successful, R
It is the maximum read length supported by the AFT file handle, RAFT ID, and RAFT server. A SCDP client cache tag can be created using the RAFT ID. In case of failure, RAFT ID is multiple R
It may be a briq ID to achieve a consistent cache at the AFT server. The maximum read length is intended to inform the RAFT client of the amount of data that can be requested during RAFT_READ processing.

【0128】 RAFT_REFRESH_TOKEN機能により、RAFTクライアントは
新しいRAFTアクセストークンを使ってRAFTサーバを更新できる。この機
能はトークン長、RAFTアクセストークン、及びRAFTファイルハンドルで
呼び出される。成功すると、新しいRAFTアクセストークンは指定されたハン
ドルに関連した現在のトークンと入れ替わり、トークンの満期時間を長くする。
新しいトークンが有効でなければ、現在のトークンは保持される。この機能はデ
ータを返さないが、ヘッダ内の状態は成功又は失敗を反映するように更新される
The RAFT_REFRESH_TOKEN function allows the RAFT client to update the RAFT server with a new RAFT access token. This function is called with the token length, RAFT access token, and RAFT file handle. Upon success, the new RAFT access token replaces the current token associated with the specified handle, prolonging the maturity time of the token.
If the new token is not valid, the current token is retained. This function returns no data, but the state in the header is updated to reflect success or failure.

【0129】 RAFT_READ機能は、RAFT_OPEN呼び出しから戻されたRAF
Tファイルハンドル、64ビット・オフセット及び長さで呼び出される。要求し
たデータにアクセスするには、RAFTファイルハンドルは、有効なアクセスト
ークンに関連付けられていなければならない。
The RAFT_READ function returns the RAF returned from the RAFT_OPEN call.
Called with T file handle, 64 bit offset and length. To access the requested data, the RAFT file handle must be associated with a valid access token.

【0130】 RAFT_CLOSE機能は、開いているRAFTファイルハンドルを閉じる
のに用いる。この呼び出しはRAFTファイルハンドルを取り、データは返さな
い。しかし、ヘッダの状態は成功又は失敗を反映するように更新される。
The RAFT_CLOSE function is used to close an open RAFT file handle. This call takes a RAFT file handle and returns no data. However, the status of the header is updated to reflect success or failure.

【0131】 ランチストリング 図9は、本発明によるランチストリング900を示す。図9に示すようにラン
チストリング900は、URNデータフィールド902、店舗IDデータフィー
ルド904、商品タイプデータフィールド906、加入ドメインデータフィール
ド908、及び金額データフィールド910を包含するデータ構造体として実現
できる。URN902は所望のコンテンツを固有に識別し、更に、本明細書に記
載したように実現できる。店舗IDデータフィールド904は特定の店舗ショー
ウインドウをEコマースシステムに特定し、且つ、数字列、英数字列、又は整数
形式で実現してよい。店舗IDは、報告のために異なる店舗ショーウインドウか
らの取引を分離するために使われる。複数店舗が本当に同じ組織に属していれば
、単一の店舗IDを共有してもよい。商品タイプ906は、取引が加入による購
入かミクロ取引による購入かを示し、且つ、数字列、英数字列、又は整数形式で
実現してよい。加入処理は、一回の支払いで特定期間はタイトル又は一組の複数
タイトルを無制限に利用するためのものである。ミクロ取引はユーザの借方勘定
への請求金額であり、「一回の利用に対する支払い」モデルをサポートするのに
用いられる。加入ドメイン908は、当該取引が「今週のホットなゲームパック
」や「個人事業用のアプリケーションパッケージ」などの特定の加入オッファー
を購入する際の対象となっているかを示す。加入ドメインは数字列、英数字列、
又は整数形式で実現してよい。金額フィールド910は、ミクロ取引の購入額を
示し、整数形式で実現してよい。
Launch String FIG. 9 shows a launch string 900 according to the present invention. As shown in FIG. 9, the launch string 900 can be realized as a data structure including a URN data field 902, a store ID data field 904, a product type data field 906, a subscription domain data field 908, and an amount data field 910. The URN 902 uniquely identifies the desired content and can be further implemented as described herein. The store ID data field 904 identifies the particular store show window to the e-commerce system and may be implemented in a numeric string, alphanumeric string, or integer format. The store ID is used to separate transactions from different store show windows for reporting. If multiple stores really belong to the same organization, a single store ID may be shared. The product type 906 indicates whether the transaction is a subscription purchase or a micro transaction purchase, and may be realized in a numeric string, an alphanumeric string, or an integer format. The subscription process is for one-time payment and unlimited use of a title or set of multiple titles for a specified period. A micro-transaction is the amount charged to the user's debit account and is used to support the "pay-on-use" model. The subscription domain 908 indicates whether the transaction is eligible for purchasing a particular subscription offer such as "This Week's Hot Game Pack" or "Personal Business Application Package". Subscribed domain is a number string, alphanumeric string,
Alternatively, it may be realized in an integer format. Amount field 910 indicates the purchase amount of the micro-transaction and may be implemented in integer format.

【0132】 図14に示したように、ランチストリング900の内容は、Eコマースサーバ
・フロントエンドモジュール1408によって生成される。CASは、例えば標
準化された公開かぎデジタル署名アルゴリズムを用いてランチストリング900
にデジタル署名する。その後は、ランチストリング900はCASグループの専
用キーを特定する付加的CAS署名フィールド912を包含する。ランチストリ
ングは、SCDPクライアントにEコマースシステムを介してサービス業務の一
環として送る。SCDPクライアントは、上述のようにCASとのランチ前の交
渉中に、ランチストリングをCASに送り返す。
As shown in FIG. 14, the contents of the launch string 900 are generated by the e-commerce server front end module 1408. The CAS uses the launch string 900 using, for example, a standardized public key digital signature algorithm.
Digitally sign the. Thereafter, the launch string 900 includes an additional CAS signature field 912 that identifies the private key of the CAS group. The launch string is sent to the SCDP client via the e-commerce system as a part of service work. The SCDP client sends the launch string back to the CAS during the pre-lunch negotiation with the CAS as described above.

【0133】 Eコマースシステム 本発明と共に用いるのに適した電子通商ソフトウェアアプリケーション(以下
Eコマースシステムと称する)は、マサチューセッツ州ケンブリッジ所在のオー
プンマーケット社から市販されているトランスアクト4.0である。Eコマース
ソフトウェアは、ユーザ勘定を管理し、金融取引を実行するために用いられてお
り、例えば、1)ユーザ勘定情報を管理し、2)購入及び支払いを管理し、3)
クレジットカード情報を収集及び検証し、4)取引を完了するために用いられる
E-Commerce System An electronic commerce software application suitable for use with the present invention (hereinafter E-Commerce System) is Transact 4.0, commercially available from Open Market, Inc. of Cambridge, Mass. E-commerce software is used to manage user accounts and execute financial transactions, eg 1) manage user account information, 2) manage purchases and payments, 3).
Used to collect and verify credit card information and 4) complete transactions.

【0134】 図2を再度参照すると、Eコマースサーバ202は、図1を参照して説明した
ものと類似のコンピュータアーキテクチャ上を走るサーバアプリケーションを包
含する。このアプリケーションは、サン社のソラリスなどのオペレーティングシ
ステム又はサーバタイプのアプリケーションを実行するよう設計されたその他の
オペレーティングシステム上で動作するよう設計されている。図14を参照する
と、Eコマースサーバ14は、オペレーティングシステム1404が走るハード
ウェアプラットホーム1402を包含する。実際のEコマースサーバアプリケー
ション1406は、フロントエンドモジュール1408及びバックエンドモジュ
ール1410をSCDPシステム200のその他の様々な構成要素に提示する。
具体的には、サーバ1400のフロントエンドモジュール1408は、ウェブサ
ーバ・フロントエンドをSCDPシステム200に対してネットワーク205を
介して提示するように実現できる。こうしたフロントエンドは、現在インターネ
ット上に存在する他のウェブサーバと似たものである。サーバ1400のバック
エンド410は、請求書作成データベース204とのインターフェースを取り、
データベースの問合わせと、交渉及びタイトルの購入に関連した取引及びミクロ
取引の実行とに必要なロジック及び/又はオブジェクトを実現する。上述のよう
に、Eコマースサーバ1400は、専用LAN又はインターネットなどの広域ネ
ットワークを介して、銀行やクレジットカード調査及び電子貸方記入などのサー
ビスを行う第三者信用貸し処理サーバに接続できる。サーバ1400のフロント
エンドモジュール1404及びバックエンドモジュール1410は、共通ゲート
ウェイインターフェース(CGI)規格に従って書かれた一連のスクリプトを介
して通信する。通常の技能を備えた当業者にとっては、他の市販のEコマースサ
ーバアプリケーションをここに述べたもの以外にSCDPシステムと共に使用可
能であることは明白であろう。
Referring again to FIG. 2, the e-commerce server 202 contains a server application running on a computer architecture similar to that described with reference to FIG. This application is designed to run on operating systems such as Sun Solaris or other operating systems designed to run server-type applications. Referring to FIG. 14, the e-commerce server 14 includes a hardware platform 1402 running an operating system 1404. The actual e-commerce server application 1406 presents the front-end module 1408 and back-end module 1410 to various other components of the SCDP system 200.
Specifically, the front end module 1408 of the server 1400 can be implemented to present the web server front end to the SCDP system 200 via the network 205. These front ends are similar to other web servers currently on the Internet. The back end 410 of the server 1400 interfaces with the billing database 204,
It implements the logic and / or objects required to query the database and perform transactions and micro-transactions related to negotiations and title purchases. As described above, the e-commerce server 1400 can be connected to a bank or a third-party credit lending processing server that provides services such as credit card research and electronic credit filling via a wide area network such as a dedicated LAN or the Internet. The front-end module 1404 and back-end module 1410 of the server 1400 communicate via a series of scripts written according to the Common Gateway Interface (CGI) standard. It will be apparent to one of ordinary skill in the art that other commercially available e-commerce server applications can be used with the SCDP system other than those described herein.

【0135】 データベース204はサーバ202に付随しており、従来のシリアルデータベ
ースを包含してもよく、取引を進めるのに必要な信用貸し及び請求書作成情報を
記憶するのに用いられる。
Database 204 is associated with server 202 and may include a conventional serial database and is used to store credit and billing information necessary to proceed with a transaction.

【0136】 サーバ1400のフロントエンドモジュール1408は、図9を参照して更に
詳しく説明したようにランチストリングを生成するのにコード又はオブジェクト
を更に包含する。一旦生成されると、ランチストリングはデジタル署名のために
CASサーバに送られる。
The front end module 1408 of the server 1400 further includes code or objects to generate the launch string as described in more detail with reference to FIG. Once generated, the launch string is sent to the CAS server for digital signature.

【0137】 図示した実施例では、Eコマースシステムはサーバ及び店舗ショーウインドウ
を包含し、この両者が協力して、ユーザがカタログ内を移動できるようにし、購
入情報を受付且つ承認する。Eコマースシステムは、外部構成要素と対話するの
にオープンウェブに基ずくアーキテクチャを用いる。本発明のSCDPシステム
ソフトウェアモジュールは、URLをEコマースソフトウェアのウェブサーバフ
ロントエンドに通知することで、Eコマースソフトウェアと通信する。この通知
に応答して、トランスアクトはURLで符号化された特定の引き数でCGIプロ
グラムを呼び出す。CGI呼び出しを介してURLを評価すると、トランスアク
トソフトウェアがデータベースの状態を変更する。処理シーケンス全体は、単に
一組のURLを評価することで終了する。Eコマースシステムは、ユーザ勘定又
はクレジットカード情報などのクライアントデータを捕捉し且つ保持する。
In the illustrated embodiment, the e-commerce system includes a server and a store show window that work together to allow the user to navigate the catalog and accept and approve purchase information. E-commerce systems use an open web-based architecture to interact with external components. The SCDP system software module of the present invention communicates with the e-commerce software by notifying the web server front end of the e-commerce software with the URL. In response to this notification, Transact calls the CGI program with the particular arguments encoded in the URL. Evaluating a URL via a CGI call causes Transact software to change the state of the database. The entire processing sequence ends by simply evaluating a set of URLs. E-commerce systems capture and hold client data such as user billing or credit card information.

【0138】 Eコマースシステムが、店舗ショーウインドウに商取引能力を与え且つウェブ
を介したクレジットカード取引を実行する能力を備えた機能を完備したシステム
であれば、CASとEコマースシステムとの対話は主に3つの異なる場所で行わ
れる。ユーザがタイトルを購入すると、ユーザは、サービス業務URLと呼ばれ
るリンクをその上に含んだ「デジタル領収書」と称するページを受け取る。この
サービス業務URLは、実際は、CASからランチストリングを入手するのが目
的のCGIプログラムである。後に更に詳しく述べるように、ランチストリング
は、CASが後にユーザのソフトウェアに対する権利を確認する共にEコマース
システムと処理を終了するために必要な全情報の集まりである。この情報はCA
Sのみが理解できる形式で返され、CASは後にそれ自身のランチストリングを
検査する。ランチストリングをクライアントのブラウザに返すと、ブラウザがS
CDPクライアント内部でランチャを起動し且つランチストリングをランチャに
回す。後に、ランチャはランチストリングをCASに送って、アクティベータを
要求できる。CASはランチストリングを検査して、もし当該購入が決定してい
れば、成功するかを確認することをEコマースサーバに要求する。しかし、CA
Sはまだこの取引を成立させない。この時点で、CASはアクティベータをラン
チャに返して、タイトル実行が開始される。最初のアクティベータの寿命は短く
設定されている。例えば、最初のアクティベータが満期になる直前に、SCDP
クライアントVxDがランチャに通知して、CASにアクティベータを更新する
よう要求する。アクティベータの第1回目の更新が実行されると、CASLIB
32が再度ランチストリングを提供し、今回はCASはEコマースサーバとの間
で取引を完了する。取引の完了を延期することで、請求書作成の前にタイトルが
SCDPクライアント計算機で正しく実行されていることをSCDPシステムが
間違いなく確認できる。
If the e-commerce system is a system equipped with a function that gives a commercial transaction capability to the store show window and can execute a credit card transaction via the web, the interaction between the CAS and the e-commerce system is mainly. It will take place in three different places. When a user purchases a title, the user receives a page called a "digital receipt" with a link called the service work URL included on it. This service business URL is actually a CGI program whose purpose is to obtain a launch string from CAS. As discussed in more detail below, the launch string is a collection of all the information that the CAS later needs to verify the user's rights to the software and terminate the process with the e-commerce system. This information is CA
Returned in a format that only S can understand, the CAS later inspects its own launch string. When the launch string is returned to the client browser, the browser
Launch the launcher inside the CDP client and pass the launchstring to the launcher. Later, the launcher can send the launchstring to the CAS to request the activator. The CAS will request the e-commerce server to inspect the launch string and, if the purchase is determined, to confirm success. But CA
S has not closed this deal yet. At this point, the CAS returns the activator to the launcher and the title execution is started. The life of the first activator is set to be short. For example, just before the first activator expires, the SCDP
The client VxD notifies the launcher and requests the CAS to update the activator. When the first update of the activator is executed, CASLIB
32 again provides the launch string, this time CAS completes the transaction with the e-commerce server. By postponing the completion of the transaction, the SCDP system can be sure that the title is running correctly on the SCDP client calculator before billing.

【0139】 SCDPシステムは5つの異なる購入モデルをサポートする。最初の購入モデ
ルの「タイトル加入」では、所定の時間は特定タイトルへの無制限のアクセスが
できる。「アーケードゲームパック」などのパッケージ加入である第2購入モデ
ルは、限られた時間内に一組の複数タイトルに無制限のアクセスを提供する。こ
うしたパッケージ加入に含まれるタイトルセットは時間が経つと変わることもあ
る。例えば、ユーザが「ホットな新しいゲームパック」への加入を購入したとす
ると、このパッケージで利用できるタイトルは当初の加入購入から一週間から二
週間経つと変わることもある。「1回の使用毎の支払い」の第3購入モデルは、
時間無制限で一度だけのアクセスを提供する。「時間に基づく請求」の第4番目
の購入モデルでは、ユーザはタイトル実行時間に応じて料金を請求されるか、特
定の時間ブロックを購入できる。「月払い」の第5番目の購入モデルでは、SC
DPシステムは既存のマルチサーバオペレーション(MSO)又は電話会社の請
求システムに組み込まれ、料金を顧客の月々の請求書に加算する。細かな変更点
を含んだこれ以外の購入モデルを加えることもできる。
The SCDP system supports five different purchasing models. The first purchase model, "Title Subscription," allows unlimited access to a particular title for a given amount of time. The second purchase model, which is a package subscription such as "Arcade Game Pack", provides unlimited access to a set of multiple titles within a limited time. The title set included in these package subscriptions may change over time. For example, if a user purchases a "hot new game pack" subscription, the titles available in this package may change a week or two after the original subscription purchase. The third purchase model of "Payment per use" is
Provides one-time access for unlimited time. In the fourth "time-based billing" purchase model, the user is either billed according to title run time or can buy a particular block of time. In the 5th model of "monthly payment", SC
The DP system is integrated into the existing Multi-Server Operations (MSO) or telephone company billing system to add charges to the customer's monthly bill. Other purchase models can be added, including minor changes.

【0140】 仮想店舗ショーウインドウ 仮想店舗ショーウインドウサーバ215及び付随のデータベース213は、S
CDPシステム200のクライアント及び将来のクライアントに仮想カタログを
提示する。図示した実施例では、サーバ215は、例えばサーバハードウェア上
で実行されるオペレーティングシステム上で実行されるサーバアプリケーション
などの従来のウェブサーバとして実現でき、Eコマースサーバ202に関連して
説明したものと類似のものでよい。店舗ショーウインドウアプリケーションは、
一連の品揃えをクライアントが通常のネットワークブラウザで検索できるように
表示するグラフィック・ユーザインターフェースを含む。こうした品揃えは特定
タイトル名、タイトルの簡単な説明、要する費用又は購入の選択肢を含み、映画
やオーディオクリップなどのマルチメディアタイトルの場合は、タイトルコンテ
ンツの短いサンプルなどを含んでいてもよい。更に、各タイトル選択対象には対
応するURNが付随している。店舗ショーウインドウは、データベース213と
対話する適切なデータベース問合わせエンジンを実現する。尚、データベース2
13には、タイトル、説明、料金、デジタルオッファー、及びURN情報をSC
DPシステム200内の大量のタイトルに関して記憶することができる。特定タ
イトルが選択されるとそれに応答して、店舗ショーウインドウアプリケーション
のロジックが該当するURNに関してデータベース213に問合わせを行い、本
明細書に記載した方法で適切な情報をEコマースサーバ202に送る。
Virtual Store Show Window The virtual store show window server 215 and associated database 213
Present the virtual catalog to clients of the CDP system 200 and future clients. In the illustrated embodiment, the server 215 may be implemented as a conventional web server, such as a server application running on an operating system running on server hardware, as described in connection with the e-commerce server 202. It may be similar. The store show window application is
It includes a graphical user interface that displays a set of assortments that the client can search with a conventional network browser. Such an assortment may include a specific title name, a brief description of the title, cost or purchase options, and in the case of multimedia titles such as movies and audio clips, may include short samples of title content. Further, each title selection target is associated with a corresponding URN. The store show window implements the appropriate database query engine to interact with the database 213. Database 2
13 includes the title, description, fee, digital offerer, and URN information in SC.
It can be stored for a large number of titles within the DP system 200. In response to the selection of the particular title, the store show window application logic queries the database 213 for the appropriate URN and sends the appropriate information to the e-commerce server 202 in the manner described herein.

【0141】 図示した実施例では、上述したように、仮想店舗ショーウインドウサーバ21
5及びデータベース213は、専用の安全なローカルエリアネットワーク205
を介してキャッシュサーバ210に接続されている。しかし、SCDPシステム
200は、ローカルエリアネットワークを介するのでなく、例えばインターネッ
トなどの広域ネットワークを介してキャッシュサーバ210及びEコマースサー
バ202に当業者に理解できる方法で接続された1つ以上の仮想店舗ショーウイ
ンドウを用いて実現できることは、通常の技能を備えた当業者には明らかであろ
う。こうした実現例は店舗ショーウインドウサーバは公共ネットワーク上に位置
するが、様々な情報の部分集合が将来のクライアントの目に触れる可能性がある
。例えば、加入料金を支払うクライアントは、タイトル及び関連する購入選択肢
に関して最低の情報しか提供しないかもしれない公共ネットワーク上の店舗ショ
ーウインドウサーバにアクセスする一般大衆よりも、大量の情報及び/又はタイ
トルデータのサンプルを提供する専用ネットワーク上の店舗ショーウインドウサ
ーバにアクセスするかもしれない。
In the illustrated embodiment, as described above, the virtual store show window server 21
5 and database 213 is a dedicated secure local area network 205.
It is connected to the cache server 210 via. However, the SCDP system 200 may include one or more virtual store shows connected in a manner understandable to those skilled in the art to the cache server 210 and the e-commerce server 202 via a wide area network such as the Internet, rather than via a local area network. What can be accomplished with windows will be apparent to those of ordinary skill in the art. In these implementations, the store show window server is located on a public network, but various subsets of information may be visible to future clients. For example, a client paying a subscription fee may receive a greater amount of information and / or title data than the general public accessing a store show window server on a public network that may provide minimal information regarding titles and related purchase options. You may access a store show window server on a dedicated network that provides samples.

【0142】 briq形式 図12は、本発明によるbriq及びその構成要素のブロック図を概念的に示
す。図示したように、briq1200は、briqヘッダ1202、暗号ブロ
ック1204、スーパーブロック1206、及び1つかそれ以上のタイトル12
08A乃至1208Nを包含する。briqヘッダ1202は、システム登録情
報、解像度、アプリケーションタイトル、及びURLなどの、SCDPクライア
ント内のランチャモジュールが使う情報を含む。暗号ブロック1204は、タイ
トルが符合化されているか、そしてもしそうならその符号化に用いられた暗号キ
ーバージョンを特定するためにSCDPクライアント内のARFSD・VxDが
用いる。スーパーブロック1206は、briqサイズ、作成データ、ルートデ
ィレクトリが存在するエントリなどのbriqに関する一般的な情報を含むこと
が可能である。タイトル1208A乃至1208Nは、それぞれ1つのディレク
トリ及び特定のタイトルに関連した1つ又はそれ以上のファイルを含むことがで
きる。本明細書で説明したように、briqはRAFTサーバに記憶し、RAF
Tプロトコルを用いてSCDPクライアントによって遠隔アクセスされ、ローカ
ルファイルシステムとしてホストのオペレーティングシステムに提示される。
Briq Format FIG. 12 conceptually illustrates a block diagram of a briq and its components according to the present invention. As shown, the briq 1200 includes a briq header 1202, a cipher block 1204, a super block 1206, and one or more titles 12.
08A to 1208N are included. The briq header 1202 includes information used by the launcher module in the SCDP client, such as system registration information, resolution, application title, and URL. Cryptographic block 1204 is used by the ARFSD VxD in the SCDP client to identify whether the title is encoded and, if so, the cryptographic key version used for that encoding. The superblock 1206 can include general information about the briq, such as the briq size, the created data, the entry where the root directory exists. Titles 1208A-1208N may each include a directory and one or more files associated with a particular title. As explained herein, briq stores on the RAFT server and
It is remotely accessed by the SCDP client using the T protocol and presented to the host operating system as a local file system.

【0143】 本発明によれば、一つ又はそれ以上のタイトルが、図12を参照して説明した
ように、briq形式で処理及びパッケージ化される。タイトルをbriq形式
にする処理は以下の通りである。第1に、ウィンドウズ(R)のオペレーティン
グシステム内のビューアユーティティのようなユーティティツールを用いて、タ
イトルからレジストリ情報を抽出する。こうしたレジストリエントリは、ファイ
ル名、ディレクトリ名、及びコンフィギュレーション引用などの特定タイトルを
実行するのに必要な最小限の情報セットを包含できる。抽出したレジストリエン
トリはファイルに入れられる。次に、これらレジストリエントリを含んだファイ
ルを作成者プログラムに提供する。本実施例では、作成者プログラムは、タイト
ル及びレジストリエントリを包含するデータを取って、こうした情報を現在利用
可能な多くの暗号化アルゴリズムの何れかに従って暗号化する機能がある。結果
として生成される暗号化ファイルは、図12のディレクトリ1208A乃至12
08Nに示したように、従来のディレクトリ階層に記憶される。次に、このファ
イルシステムのルートディレクトリ及びこのファイルシステムのサイズなどを含
んだ付加的メタ情報は、図12に示したようにbriq1200のスーパーブロ
ック1206に記憶される。次に、briq内の暗号化情報を解読するのに必要
な暗号キーに関する情報は、暗号ブロック1204に記憶される。暗号ブロック
1204内の情報は、キーバージョン及び使用された暗号タイプの記述を特定す
るデータを包含できる。briq・URL及びシステム要件などの情報は、実行
可能ファイル及びタイトルの名前、ネットワークドライブ及び付加的タグのマッ
プと共にbriqヘッダ1202に入れられる。図12に示したように、bri
qヘッダ1202に含まれる情報は暗号化されない。
According to the present invention, one or more titles are processed and packaged in briq format, as described with reference to FIG. The process of converting the title to the briq format is as follows. First, a utility tool such as the Viewer utility in the Windows® operating system is used to extract the registry information from the title. These registry entries can contain the minimum set of information needed to perform a particular title, such as file names, directory names, and configuration citations. The extracted registry entries are put in a file. Then provide the author program with a file containing these registry entries. In this embodiment, the author program has the ability to take data containing titles and registry entries and encrypt such information according to any of the many encryption algorithms currently available. The resulting encrypted files are directories 1208A through 12 of FIG.
No. 08N is stored in the conventional directory hierarchy. Next, additional meta information including the root directory of this file system and the size of this file system is stored in the super block 1206 of the briq 1200 as shown in FIG. Information about the cryptographic key needed to decrypt the encrypted information in briq is then stored in cipher block 1204. The information in cipher block 1204 may include data identifying the key version and a description of the cipher type used. Information such as the briq URL and system requirements are placed in the briq header 1202 along with the name of the executable and title, a map of network drives and additional tags. As shown in FIG. 12, bri
The information contained in the q header 1202 is not encrypted.

【0144】 アクティベータ アクティベータは図13に示したような形式を備える。具体的には、アクティ
ベータ1300は、トークン1302、許可データ1304、暗号キー1306
、及びオプションで1つかそれ以上のバイトコード1308乃至1312を包含
する。図示した実施例では、トークン1302は、図8に関連して説明したRA
FTトークン800に類似のものでよい。許可データ1304は、CASサーバ
から新しいアクティベータを要求する際にSCDPクライアントが使用する「保
持」データを包含する。こうした許可データは、単純な数値列又はコードで実現
してもよいし、更に、クライアントに前もって関連づけられたデータのハッシュ
のようなより洗練された高度な実現例でもよい。キー306は、briq内に含
まれたデータを、実行前に解読するのに有用な暗号データを包含する。暗号デー
タを含む解読キー306は、briqデータ解読に役立つ、バイトコードインタ
プリタ308が抽出し且つRAFT・VxDに送られるビット列を包含できる。
Activator The activator has a format as shown in FIG. Specifically, the activator 1300 has a token 1302, permission data 1304, and an encryption key 1306.
, And optionally one or more bytecodes 1308-1312. In the illustrated embodiment, token 1302 is the RA described in connection with FIG.
It may be similar to FT token 800. The authorization data 1304 includes "hold" data used by the SCDP client when requesting a new activator from the CAS server. Such authorization data may be implemented as a simple sequence of numbers or code, or may be a more sophisticated and sophisticated implementation such as a hash of the data previously associated with the client. The key 306 contains cryptographic data useful for decrypting the data contained within the briq prior to execution. The decryption key 306 containing the encrypted data may include a string of bits extracted by the bytecode interpreter 308 and sent to RAFT VxD, which aids in decrypting the briq data.

【0145】 単純な実施例では、アクティベータ1300は、トークン1302、許可デー
タ1304、及びキー1306のみを包含する。より高度な実施例では、1つ又
はそれ以上のバイトコード1308乃至1312が含まれる。図示した実施例に
おいては、バイトコードは実質的に、バイトコードインタプリタ308として実
現されている物理又は仮想計算機の何れかで実行可能な命令群である。図示した
実施例においては、バイトコードインタープリタ308は、アクティベータから
送られたこうしたバイトコードを実行する能力のある仮想計算機を包含する。ア
クティベータ1300で使用可能なバイトコード1乃至Nの種類及び性質は後に
説明する。バイトコードインタープリタ308は図3Cを参照して説明してある
In a simple example, activator 1300 contains only token 1302, authorization data 1304, and key 1306. In a more advanced embodiment, one or more bytecodes 1308-1312 are included. In the illustrated embodiment, the bytecode is essentially a group of instructions that can be executed by either a physical or virtual computer implemented as a bytecode interpreter 308. In the illustrated embodiment, the bytecode interpreter 308 comprises a virtual machine capable of executing such bytecodes sent by the activator. The types and properties of the byte codes 1 to N usable in the activator 1300 will be described later. Bytecode interpreter 308 has been described with reference to Figure 3C.

【0146】 コード曖昧化 プログラムの核心部はフロー及び基本命令に分解できる。通常は、フローは、
基本命令からより高いレベルの抄録を構築することも含む。最適化には、冗長基
本命令を結合すること、フローを配列し直して類似の構造体を結合して除去する
こと、及びパターンを認識してそれらをより効率的なパターンと交換することが
含まれる。最適化により、元々の仕様書の指定に従ってプログラムの動作が維持
される。曖昧化処理により1つ以上の正しい結果が得られることもある。無作為
に選択するのでなく、正しいバリアントの全体又は部分集合を並列に生成すれば
、個別生成にはコスト高になるが全体的にはより効率的になる。
Code ambiguity The heart of a program can be broken down into flows and primitives. Normally, the flow is
It also includes building higher level abstracts from basic instructions. Optimizations include combining redundant primitives, reordering flows to combine and remove similar structures, and recognizing patterns and exchanging them for more efficient patterns. Be done. Optimization keeps the program running as specified in the original specification. The ambiguity process may also give one or more correct results. Generating all or a subset of the correct variants in parallel, rather than randomly selecting, is more costly but more efficient for individual generation.

【0147】 一般的には、最適化には、問題に対する解決策を見つけ、よりよい解決策を得
るためにそうした解決策を改良することが含まれる。実際のコンパイルに当たっ
ては、高レベルコードの単純に生成された正しい表現式を、その正確性を維持し
つつより効率的なコードに変換することを意味する。最悪化もこの正確性を保持
できるが、曖昧化形式の逆コンパイルが困難なので効率が犠牲になる。
In general, optimization involves finding solutions to problems and refining those solutions to obtain better solutions. In actual compilation, it means converting a simply generated correct expression of high level code into more efficient code while maintaining its correctness. The worst case can retain this accuracy, but at the cost of efficiency because it is difficult to decompile the obfuscated form.

【0148】 フロントエンドとアセンブラステージを分離することで、異なるレベルにおい
て最悪化子(原語:pessimizer)を挿入でき、且つ最悪化において高度の柔軟性
を提供する例えばLisp/Schemeのような他の高級言語を後から使用で
きる。多くの最悪化手法を本発明で使用できるが、それには、1)バイトコード
ストリームをローカル再整理し且つ曖昧化するアセンブラレベルピープホール最
悪化子、2)一定の構造的最悪化に対しより自然なインターフェースを提供する
、高級言語とアセンブラとの間の翻訳レイヤを曝す中級言語最悪化子、3)高級
言語コードに総称(原語:generic)処理を実際に行う代わりに、ある機能を表現
する複数の方法をコーダに指定させ、その後、コーダがコンパイラに既に開始さ
れた選択肢の組合せ論的拡張を備えた形式を直接生成させるような、高級マニュ
アル最悪化子が含まれる。
Separation of the front end and assembler stage allows the insertion of worstifiers (pessimizers) at different levels and provides a high degree of flexibility in worst-case other high-end such as Lisp / Scheme. You can use the language later. Many worstification techniques can be used in the present invention, including 1) assembler-level peephole worstifiers that locally reorder and obfuscate the bytecode stream, and 2) are more natural for certain structural worstifications. A middle-level language worstifier that exposes a translation layer between a high-level language and an assembler that provides various interfaces, and 3) a plurality of functions that express a certain function instead of actually performing generic (generic) processing on the high-level language code. Is included in the coder, and then the coder causes the compiler to directly generate a form with combinatorial extensions of the alternatives already started.

【0149】 理論的には、誰かがアクティベータをシングルステップして、アクティベータ
の行う変更を監視して、briqの解読法を発見したり、更に単純には、bri
qが解読されたら停止して、メモリからクリアテキストをダンプすることも可能
ではある。翻訳困難な「曖昧化」手法で書かれた、異なるバイトコードシーケン
スを用い、且つ合い鍵のような同一物を再使用する事を避けることで、本発明は
人間の逆コンパイラの作業を困難にし、自動解析を不可能にする。バイトコード
により、権限を持たないクラッカーの1度のダウンロードに対する作業を任意に
より時間の掛かるものとし、それが他のダウンロードには利用できないようにな
る。
Theoretically, someone could single step the activator and watch for changes made by the activator to find out how to break briq, or more simply, bri
It is also possible to stop once q is decrypted and dump the cleartext from memory. By using different bytecode sequences, written in a hard-to-translate "fuzzy" approach, and avoiding re-use of the same thing like a secret key, the present invention makes the work of a human decompiler difficult, Disable automatic analysis. The bytecode makes the work of one download of an unauthorized cracker arbitrarily time-consuming and makes it unavailable for other downloads.

【0150】 本発明のアクティベータに有用な曖昧化手法の例には次のようなものがある。 ・処理毎に大量のアルゴリズムの中から選択して、同一オブジェクトに対する2
回目の要求にもコードが大きく異なるようにする。 ・例えばコンパイラ最適化手法を用いて、動作維持処理をバイトコードに直接適
用する。 ・SCDPクライアントに複数のバイトコードセットをサポートさせるか、バイ
トコードリスト自身を暗号キーさせる。 ・自己修飾バイトコード。 ・「トラップドア」バイトコードストリーム(例えばバイトコードシーケンスを
生成する)及び部分集合を拾い出してバイトコード主体を有用なアルゴリズムに
マップするマップ関数。制約条件を定義して、その後、役立つシーケンスをスペ
ース中で探す必要があるかもしれない。 ・存在するコードにパターンによって関連する可能性のある、注意を逸らすもの
としての「デッドコード」バイトコード。 ・一定のバイトコードを使用しない。例えば、コードは後続の実行では意味が異
なる。(高級ツールは作業アルゴリズムに割り込んでこれらを生成できる。この
延長上には、特定の位置又はレジスタを参照する如何なる命令も使用しないこと
が含まれる。) ・暗号具体例で用いられる「単項」演算子。 ・バイトコードのパラメータ(例えば、使用頻度、非相関要素など)に基づいて
そのコードのマッピングを最適化する。 ・暗号をバイトコードに直接具体化する際に、部分キー/スケジュールまたはコ
ードシーケンスを引き渡して、「標準」形式のキーでないキーを生成する。 ・後のコールバックで追加バイトコードをバイトコードにダウンロードさせるか
、サーバにバイトコード変更を非同期的に送信させる。 ・現在の環境データを、バイトコード、データ、キーイングデータ、briqそ
のもののような弱いエントロピー又はその環境内のその他の2進数、又はダウン
ロードしたバイトコードのソースとして使用する。
Examples of ambiguity techniques useful for the activator of the present invention include:・ Choose from a large number of algorithms for each process, and select 2 for the same object
Make the code significantly different for the second request. Applying operation maintenance processing directly to bytecodes, for example using compiler optimization techniques. • Have the SCDP client support multiple bytecode sets or have the bytecode list itself as an encryption key. -Self-modifying bytecode. A “trapdoor” bytecode stream (eg, to generate a bytecode sequence) and a map function that picks a subset and maps the bytecode subject to a useful algorithm. You may need to define constraints and then look for useful sequences in space. "Dead code" bytecode as a distractor that may be related by pattern to existing code. -Do not use fixed bytecode. For example, the code has a different meaning in subsequent runs. (High-level tools can interrupt the work algorithm to generate them. This extension includes not using any instruction that refers to a particular position or register.) "Unary" operations used in cryptographic examples Child. Optimize the mapping of the code based on the parameters of the bytecode (eg frequency of use, decorrelation factor, etc.). Passing a partial key / schedule or code sequence to generate a non-standard form of key when directly embodying the cipher into bytecode. • Have a later callback download the additional bytecode into the bytecode, or let the server send the bytecode change asynchronously. Use the current environment data as a source of bytecode, data, keying data, weak entropy such as briq itself or any other binary number in the environment, or downloaded bytecode.

【0151】 実際に曖昧化したものは、それらがどのように互いに組み合わされるのか、又
はどうやってそれらを処理するのかについての情報を与えるフレームワーク内に
生成され得るのが理想的である。
Ideally, the ambiguities could ideally be generated in a framework that gives information about how they combine with each other or how they are processed.

【0152】 テクニック(技法/手法) アクティベータの強度を上げるもう一つの方法は、アクティベータを不完全に
して、アクティベータがCASと追加連絡しなければ動作を継続できないように
すればよい。「テクニック」とは、CAS内部で実行し且つ要求をサポートする
ためにカストマイズした一片のコードである。複数のテクニックを用いてもよい
が、単一のテクニックである種類に属する複数アクティベータには十分である。
単純なテクニックは、CAS内部にハードコード化して実現したり、動的にロー
ドされたバイトコード又は共有オブジェクトで実現できる。テクニックプロトコ
ルにするアクティベータは、SCDPクライアントからの移送用の存在するRP
C上のレイヤとし、テクニックが定義済みメッセージを備える手間を省くことが
できる。本発明では、アクティベータバイトコード及びテクニックバイトコード
は別の言語として扱うことができる。テクニックコードは、暗号ルーチン全体用
の単一バイトコードを単に備えていればよい。
Techniques Another way to increase the strength of an activator is to make it incomplete so that it cannot continue to operate without additional contact with the CAS. A "technique" is a piece of code that runs inside a CAS and is customized to support the request. Multiple techniques may be used, but are sufficient for multiple activators of a single technique type.
Simple techniques can be implemented hard coded inside the CAS, dynamically loaded bytecodes or shared objects. The activator for the technique protocol is the existing RP for transport from the SCDP client.
As a layer on C, the technique can save the trouble of having a defined message. In the present invention, activator bytecode and technique bytecode can be treated as different languages. The technique code need only comprise a single byte code for the entire cryptographic routine.

【0153】 本発明のアクティベータ内に曖昧化バイトコードを実現するためには、次の構
成要素を用いる。1)バイトコードインタープリタ、2)バイトコードアセンブ
ラ、3)暗号バイトコードルーチン、4)有益な地点でアクティベータにコール
インするARFS・VxDへのインターフェース、5)アクティベータがCAS
内の具体化されたテクニックと通信できるようにする、本明細書で述べたプロト
コル、6)CASアクティベータ製造機能(アクティベータファクトリ710)
The following components are used to implement the obfuscated bytecode in the activator of the present invention. 1) Bytecode Interpreter, 2) Bytecode Assembler, 3) Cryptographic Bytecode Routine, 4) Interface to ARFS / VxD to call into Activator at useful point, 5) Activator is CAS
6) CAS Activator Manufacturing Capabilities (Activator Factory 710) that allow communication with the embodied techniques in 6).
.

【0154】 本明細書に説明されたシステムは、専用イントラネットだけでなく広帯域ネッ
トワーク上でもコンテンツのオンデマンドでの安全な引き渡しを容易にすること
が分かるであろう。
It will be appreciated that the system described herein facilitates secure delivery of content on demand over broadband networks as well as dedicated intranets.

【0155】 こうして説明した本発明は、ソフトウェアのみ、ハードウェアのみ、又は専用
ハードウェアをサポートするためにファームウェアの形式で記憶されたプログラ
ムコードを含んだハードウェアとソフトウェアとの組合せで実現してもよい。上
述の実施例の一つのソフトウェア実現例は、図1のディスケット142、CD−
ROM147、ROM115、又は固定ディス152などのコンピュータ読出し
可能媒体のような有形媒体に固定された一連のコンピュータ命令又は、モデム又
は他のインターフェース機器(例えば、媒体191を介してネットワーク195
に接続された通信アダプタ190)を介して搬送波でコンピュータシステムに通
信可能な一連のコンピュータ命令を包含できる。媒体191は、光通信又はアナ
ログ通信回線を含むがそれには限定されない有形媒体でもよいし、マイクロ波、
赤外線、又はその他の通信手法を含むがそれには限定されないワイヤレス技法を
用いて実現してもよい。これらの一連のコンピュータ命令は有形媒体に含まれて
いても搬送波に乗っていても、本発明に関連して既に説明した機能の全て又は一
部を具現化するものである。通常の技能を備えた当業者であれば、こうしたコン
ピュータ命令はコンピュータアーキテクチャ又はオペレーティングシステムで用
いられる多くのプログラミング言語で書くことができ、又、機械実行可能な形式
で存在可能であることが理解できるであろう。更に、こうした命令は、半導体、
磁気、光学、その他のメモリデバイスを含むがそれに限定されない、現在又は将
来のメモリ技術を用いて記憶させてもよいし、マイクロ波、赤外線、又はその他
の通信手法を含むがそれには限定されない現在又は将来の通信技術を用いて送信
してもよい。こうしたコンピュータプログラムは、印刷文書又は電子文書(例え
ば、システムROM又は固定ディスク上にコンピュータシステムを予めロードし
た収縮包装したソフトウェア、又は、インターネット又はWWWなどのネットワ
ークを上でサーバ又は電子掲示板を介して販売する)を付けて取り外し可能媒体
として販売することも考慮されている。
The invention thus described may be implemented in software only, hardware only, or a combination of hardware and software including program code stored in the form of firmware to support dedicated hardware. Good. One software implementation of the above embodiment is the diskette 142, CD- in FIG.
A set of computer instructions fixed on a tangible medium, such as ROM 147, ROM 115, or a computer-readable medium such as a fixed disk 152, or a modem or other interface device (eg, network 195 via medium 191).
Can include a set of computer instructions that can be communicated to a computer system on a carrier wave via a communication adapter 190) connected to the. The medium 191 may be a tangible medium, including but not limited to optical communication or analog communication lines, microwaves,
It may be implemented using wireless techniques, including but not limited to infrared, or other communication techniques. These sequences of computer instructions, whether contained on a tangible medium or on a carrier wave, embody all or part of the functionality previously described in connection with the present invention. A person of ordinary skill in the art would understand that such computer instructions can be written in many programming languages used in computer architectures or operating systems and can exist in machine-executable form. Will. Furthermore, these instructions are
Current or future memory technology may be used to store, including, but not limited to, magnetic, optical, or other memory devices, or current or future including, but not limited to, microwave, infrared, or other communication techniques. It may be transmitted using future communication technology. Such computer programs may be printed or electronic documents (eg shrink-wrapped software pre-loaded with a computer system on a system ROM or fixed disk, or sold over a network such as the Internet or WWW via servers or electronic bulletin boards. Is also considered for sale as removable media.

【0156】 本発明の様々な例示的実施例を開示してきたが、通常の技能を備えた当業者に
は、本発明の精神及び範囲から逸脱することなく本発明の利点の一部を提供でき
る様々な変更及び修正が可能であることは理解できるであろう。通常の技能を備
えた当業者には、同一の機能を持った他の構成要素を適切に用いることが可能な
ことは明白であろう。更に、本発明の方法は、適切なプロセッサ命令を用いて全
てソフトウェアから具体化することもできるし、ハードウェアロジック及びソフ
トウェアロジックを組み合わせて用いたハイブリッドとしても具体化して、同様
の効果を得ることができる。
While various exemplary embodiments of this invention have been disclosed, a worker of ordinary skill can provide some of the advantages of this invention without departing from the spirit and scope of this invention. It will be appreciated that various changes and modifications are possible. It will be apparent to those of ordinary skill in the art that other components having the same function may be used as appropriate. Furthermore, the method of the present invention can be embodied entirely in software using suitable processor instructions, or embodied as a hybrid using a combination of hardware logic and software logic to achieve similar effects. You can

【0157】 以下に特許請求の範囲を記載する。[0157]   The claims will be described below.

【図面の簡単な説明】 本発明の上記並びに他の特徴、目的及び利点は、添付図面と併せて下記の詳細
な説明を参照することで更に良く理解されるであろう。
BRIEF DESCRIPTION OF THE DRAWINGS The above and other features, objects and advantages of the present invention will be better understood with reference to the following detailed description in conjunction with the accompanying drawings.

【図1】 本発明で使用するのに適するコンピュータシステムのブロック図である。[Figure 1]   FIG. 6 is a block diagram of a computer system suitable for use with the present invention.

【図2】 (A)本発明のコンテンツの安全な引き渡しシステムを実行することができる
広帯域ネットワークの概念ブロック図である。 (B)本発明のシステムの要素及び本発明による、他のネットワークの要素と
の相互作用を示している概念ブロック図である。
FIG. 2A is a conceptual block diagram of a broadband network capable of implementing the content secure delivery system of the present invention. (B) is a conceptual block diagram showing the elements of the system of the present invention and the interaction with elements of other networks according to the present invention.

【図3】 (A)本発明によるSCDPの概念ブロック図である。 (B)図3AのSCDPクライアントのランチャモジュールの概念ブロック図
である。 (C)図3AのSCDPクライアントのARFS・VxDモジュールの概念ブ
ロック図である。 (D)図3DのSCDPクライアントのRAFT・VxDモジュールの概念ブ
ロック図である。
FIG. 3A is a conceptual block diagram of SCDP according to the present invention. 3B is a conceptual block diagram of a launcher module of the SCDP client of FIG. 3A. (C) is a conceptual block diagram of the ARFS VxD module of the SCDP client of FIG. 3A. 3D is a conceptual block diagram of the RAFT VxD module of the SCDP client of FIG. 3D.

【図4】 (A)乃至(B)本発明による、コンテンツへの加入手順及びタイトルのラン
チ手順を示すフローチャートを合わせて示す。
4A and 4B together show a flowchart showing a procedure for joining a content and a procedure for launching a title according to the present invention.

【図5】 (A)乃至(C)本発明による、SCDPクライアントによって実行される手
順を段階的に示すフローチャートを合わせて示す。
5A to 5C together with a flowchart showing stepwise a procedure performed by a SCDP client according to the present invention.

【図6】 本発明による、SCDPクライアント構成要素によって実行される手順を示す
フローチャートである。
FIG. 6 is a flow chart illustrating a procedure performed by a SCDP client component according to the present invention.

【図7】 (A)本発明による図2のCASサーバの概念図である。 (B)本発明による、CASサーバによって実行される手順を示すフローチャ
ートである。
FIG. 7A is a conceptual diagram of the CAS server of FIG. 2 according to the present invention. (B) is a flowchart showing a procedure executed by a CAS server according to the present invention.

【図8】 本発明によるRAFTトークンの概念図である。[Figure 8]   FIG. 3 is a conceptual diagram of a RAFT token according to the present invention.

【図9】 本発明によるランチストリングの概念図である。[Figure 9]   It is a conceptual diagram of the launch string by this invention.

【図10】 本発明による図2のRAFTサーバの概念図である。[Figure 10]   FIG. 3 is a conceptual diagram of the RAFT server of FIG. 2 according to the present invention.

【図11】 本発明によるRAFTパケットヘッダの概念図である。FIG. 11   FIG. 3 is a conceptual diagram of a RAFT packet header according to the present invention.

【図12】 本発明によるbriqデータパッケージの概念ブロック図である。[Fig. 12]   FIG. 3 is a conceptual block diagram of a briq data package according to the present invention.

【図13】 本発明によるアクティベータの概念ブロック図である。[Fig. 13]   FIG. 3 is a conceptual block diagram of an activator according to the present invention.

【図14】 図14は、本発明によるEコマースの概念ブロック図である。FIG. 14   FIG. 14 is a conceptual block diagram of e-commerce according to the present invention.

───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.7 識別記号 FI テーマコート゛(参考) G06F 17/30 120 G06F 9/06 660C 660G (31)優先権主張番号 09/311,923 (32)優先日 平成11年5月12日(1999.5.12) (33)優先権主張国 米国(US) (31)優先権主張番号 09/310,229 (32)優先日 平成11年5月12日(1999.5.12) (33)優先権主張国 米国(US) (31)優先権主張番号 09/439,906 (32)優先日 平成11年11月12日(1999.11.12) (33)優先権主張国 米国(US) (81)指定国 EP(AT,BE,CH,CY, DE,DK,ES,FI,FR,GB,GR,IE,I T,LU,MC,NL,PT,SE),AU,CA,C N,JP,KR,SG,ZA (72)発明者 エイチン マーク ダブリュー アメリカ合衆国 マサチューセッツ州 02144 サマービル シャープ331 ハイラ ンド アベニュー 411エー (72)発明者 ロストチェック デービッド ジェイ アメリカ合衆国 マサチューセッツ州 02474 アーリントン ブルックデール ロード 9 Fターム(参考) 5B017 AA03 BA07 BB10 CA15 5B075 KK43 KK54 NK04 PQ05 5B076 FB01 5B082 EA12 GA11 HA05 ─────────────────────────────────────────────────── ─── Continuation of front page (51) Int.Cl. 7 Identification code FI theme code (reference) G06F 17/30 120 G06F 9/06 660C 660G (31) Priority claim number 09 / 311,923 (32) Priority Date May 12, 1999 (May 12, 1999) (33) Priority claiming country United States (US) (31) Priority claim number 09 / 310,229 (32) Priority date May 12, 1999 (May 12, 1999) (33) Priority claiming country United States (US) (31) Priority claim number 09 / 439,906 (32) Priority date November 12, 1999 (November 11, 1999) ( 33) Priority claiming countries United States (US) (81) Designated countries EP (AT, BE, CH, CY, DE, DK, ES, FI, FR, GB, GR, IE, IT, LU, MC, NL, (PT, SE), AU, CA, CN, J , KR, SG, ZA (72) Inventor Eightin Mark W02 Massachusetts, United States 02144 Somerville Sharp 331 Highland Avenue 411 A (72) Inventor Lost Check David Jay United States Massachusetts 02474 Arlington Brookdale Road 9 F Term (reference) 5B017 AA03 BA07 BB10 CA15 5B075 KK43 KK54 NK04 PQ05 5B076 FB01 5B082 EA12 GA11 HA05

Claims (21)

【特許請求の範囲】[Claims] 【請求項1】 ネットワークを介してコンテンツを引き渡すための方法であっ
て、 (a)前記ネットワークに機能的に接続されたコンテンツサーバ上に少なくと
も一つのタイトルを、実行不可能な形式で記憶する段階と、 (b)前記ネットワークに機能的に接続されたアクセスサーバに、前記タイト
ルの位置識別子と前記タイトルを実行可能な形式に処理するのに必要なデータと
を記憶する段階と、 (c)前記コンテンツサーバから前記タイトルの少なくとも一部を検索する以
前に、前記アクセスサーバから前記タイトルの前記位置識別子を入手することを
、前記ネットワークに機能的に接続されたクライアントプロセスに要求する段階
と、 (d)前記タイトルの前記一部を実行可能な形式に処理するのに必要な前記デ
ータを、前記アクセスサーバから入手するように、クライアントプロセスに要求
する段階と、を包含する方法。
1. A method for delivering content over a network, comprising: (a) storing at least one title in a non-executable format on a content server functionally connected to the network. (B) storing, in an access server functionally connected to the network, a position identifier of the title and data required to process the title into an executable format; (c) the Requesting a client process functionally connected to the network to obtain the location identifier of the title from the access server before retrieving at least a portion of the title from a content server; ) The data required to process the portion of the title into an executable format As obtained from the server, the method comprising the steps of requesting the client process, the.
【請求項2】 (e)前記クライアントプロセスに、前記アクセスサーバの署
名を入手すると共に、前記コンテンツサーバから前記タイトルの少なくとも一部
を検索する前に前記コンテンツサーバにその署名を提示するよう要求する段階を
更に包含する、請求項1に記載の方法。
2. (e) Requesting the client process to obtain the signature of the access server and present the signature to the content server before retrieving at least a portion of the title from the content server. The method of claim 1, further comprising a step.
【請求項3】 (e)前記クライアントプロセスが前記コンテンツサーバから
前記タイトル前記タイトルの少なくとも一部を検索可能な時間を定義する時間デ
ータを、前記アクセスサーバから入手するよう前記クライアントプロセスに要求
する段階を更に包含する、請求項1に記載の方法。
3. (e) requesting the client process to obtain from the access server time data defining the time at which the client process can retrieve at least a portion of the title from the content server. The method of claim 1, further comprising:
【請求項4】 (f)前記の時間が満期になった時点で且つ前記コンテンツサ
ーバから前記タイトル前記タイトルの少なくとも一部を検索する前に、新しい時
間データを前記アクセスサーバから入手するよう前記クライアントプロセスに要
求する段階を更に包含する、請求項3に記載の方法。
4. (f) The client to obtain new time data from the access server at the time the time expires and before retrieving at least a portion of the title from the content server. The method of claim 3, further comprising the steps required of the process.
【請求項5】 ネットワークを介してコンテンツを安全に引き渡すための装置
であって、 (a)前記ネットワークに機能的に接続されると共に、少なくとも一つのタイ
トルを、実行不可能な形式で記憶してあるコンテンツサーバと、 (b)前記ネットワークに機能的に接続されるアクセスサーバであって、前記
タイトルの位置識別子と前記タイトルを実行可能な形式に処理するのに必要なデ
ータとを記憶するアクセスサーバと、 (c)前記ネットワークに機能的に接続されるクライアントシステムであって
、前記タイトルの前記位置識別子と前記タイトルの前記一部を実行可能な形式に
処理するのに必要な前記データとを、前記アクセスサーバから入手するように構
成されたプログラムロジックを含んだクライアントシステムと、を包含する装置
5. A device for securely delivering content via a network, comprising: (a) being functionally connected to said network and storing at least one title in an inexecutable form. A content server, and (b) an access server functionally connected to the network, the access server storing a location identifier of the title and data necessary for processing the title into an executable format. And (c) a client system functionally connected to the network, the location identifier of the title and the data required to process the portion of the title into an executable format, A client system including program logic configured to obtain from the access server. apparatus.
【請求項6】 前記クライアントシステムが、 前記タイトルの一部を実行するよう構成されたプログラムロジックを更に包含
する、請求項5に記載の装置。
6. The apparatus of claim 5, wherein the client system further comprises program logic configured to execute a portion of the title.
【請求項7】 前記アクセスサーバが、 前記タイトルの少なくとも一部を前記コンテンツサーバから検索可能な時間を
定義する時間データを生成するように構成されたプログラムロジックを更に包含
する、請求項5に記載の装置。
7. The access server further comprises program logic configured to generate time data defining a time at which at least a portion of the title can be retrieved from the content server. Equipment.
【請求項8】 前記クライアントシステムが、 前記の時間が満期になった時点で、新しい時間データを前記アクセスサーバか
ら要求するように構成されたプログラムロジックを更に包含する、請求項7に記
載の装置。
8. The apparatus of claim 7, wherein the client system further comprises program logic configured to request new time data from the access server when the time expires. .
【請求項9】 前記ネットワークが広帯域アクセスネットワークを包含する、
請求項5に記載の装置。
9. The network comprises a broadband access network,
The device according to claim 5.
【請求項10】 ネットワークを介してコンテンツを引き渡すための装置であ
って、 (A)前記ネットワークに接続可能なコンテンツ・サーバシステムで、 (A.1)時間間隔を特定するデータを含くむと共にクライアントプロ
セスから受け取ったトークンに応答する認証プログラムロジックであって、前記
クライアントプロセスが特定の時間にメモリにアクセスする許可を受けているか
どうかを判断するよう構成された認証プログラムロジックと、 (A.2)前記クライアントプロセスから受け取られる共に前記メモリ
に記憶されたタイトルの一つを固有に特定するデータを含んだ前記トークンに応
答するアクセスプログラムロジックであって、前記メモリ及び前記トークンによ
り固有に特定された前記タイトルに対するアクセスを可能とするよう構成された
アクセスプログラムロジックとを包含した、コンテンツサーバシステムと、 (B)前記ネットワークに接続可能なアクセスサーバシステムであって、 (B.1)クライアントプロセスが提供したタイトルの固有識別子に応
答する変換プログラムロジックであって、前記タイトルの前記固有識別子を、前
記ネットワーク上の、前記タイトルにアクセス可能なアドレスを示す位置識別子
に変換するよう構成されている変換プログラムロジックと、 (B.2)クライアントプロセスからの要求に応答するアクティベータ
生成プログラムロジックであって、前記要求に応答してアクティベータを生成す
るアクティベータ生成プログラムロジックと、を包含するアクセスサーバシステ
ムと、 (C)前記コンテンツサーバ及び前記アクセスサーバシステムに前記ネットワ
ークを介して接続可能なクライアントシステムであって、 (C.1)前記アクセスサーバシステムから、トークンと、アクティベ
ータと、特定されたタイトルにアクセスできる前記コンテンツサーバの位置識別
子とを入手するよう構成されたプログラムロジックと、 (C.2)前記コンテンツサーバから前記特定されたタイトルの少なく
とも一部を検索するよう構成されたプログラムロジックと、 (C.3)前記コンテンツサーバから検索された前記特定されたタイト
ルの前記一部を実行するよう構成されたプログラムロジックと、を包含するクラ
イアントシステムと、 を包含する装置。
10. An apparatus for delivering content via a network, comprising: (A) a content server system connectable to the network, (A.1) including data specifying a time interval, and a client. Authenticator logic responsive to a token received from a process, the authenticator logic configured to determine if the client process is authorized to access memory at a particular time; and (A.2). Access program logic responsive to the token received from the client process and containing data uniquely identifying one of the titles stored in the memory, the access program logic uniquely identified by the memory and the token. Access to titles A content server system including an access program logic configured to: (B) an access server system connectable to the network, (B.1) responding to a unique identifier of a title provided by a client process A conversion program logic for converting the unique identifier of the title into a location identifier on the network indicating an address accessible to the title; and (B.2). An access server system that includes an activator generation program logic that responds to a request from a client process, the activator generation program logic that generates an activator in response to the request, and (C) the content server and The a A client system connectable to an access server system via the network, (C.1) a token, an activator, and a location identifier of the content server that can access a specified title from the access server system. (C.2) program logic configured to retrieve at least a portion of the identified title from the content server, and (C.3) retrieve from the content server. A client system including: program logic configured to execute the portion of the identified title identified by the client system;
【請求項11】 前記クライアントシステムが、そのシステム上で実行可能な
オペレーティングシステムを更に包含し、更に、前記クライアントプロセスが、 (C.4) 前記特定されたタイトルに関連したネットワーク・ファイ
ルシステムをマウントすると共に、前記クライアントシステムのメモリに前記タ
イトルに関連した複数レジストリエントリを記憶するよう構成されたプログラム
ロジックと、 (C.5)タイトル実行中に前記オペレーティングシステムからの複数
の要求を傍受すると共に、前記レジストリエントリに前記傍受した要求の選択部
分を転送するよう構成されたプログラムロジックとを更に包含する、請求項10
に記載の装置。
11. The client system further comprises an operating system executable on the system, the client process further comprising: (C.4) mounting a network file system associated with the identified title. And (C.5) intercepting multiple requests from the operating system during title execution, and (C.5) programming logic configured to store multiple registry entries associated with the title in memory of the client system. 11. Program logic configured to forward a selected portion of the intercepted request to the registry entry.
The device according to.
【請求項12】 前記アクティベータが暗号データを包含する、請求項10に
記載の装置。
12. The apparatus of claim 10, wherein the activator comprises cryptographic data.
【請求項13】 前記アクティベータが少なくとも一つのバイトコードを包含
し、更に、前記クライアントシステムが、 (C.4)前記アクティベータ内に含まれた前記バイトコードを解釈し
且つ実行するプログラムロジックを包含する、請求項10に記載の装置。
13. The activator includes at least one bytecode, and the client system further comprises: (C.4) program logic for interpreting and executing the bytecode contained within the activator. 11. The device of claim 10, which comprises.
【請求項14】 ローカルコンピュータシステム上のアプリケーションを、そ
のアプリケーションが前記ローカルコンピュータシステムにインストールされて
いなくても実行する方法であって、 (a)ネットワークマウント可能なファイルシステムと前記アプリケーション
に関連した一組のレジストリエントリとにアクセスする段階と、 (b)前記ネットワークファイルシステムをマウントする段階と、 (c)前記レジストリエントリを前記ローカルコンピュータシステムに記憶す
る段階と、 (d)遠隔源から前記アプリケーションの少なくとも一部を検索する段階と、 (e)前記ローカルコンピュータシステムのオペレーティングシステムの制御
下で前記アプリケーションを実行する段階と、 (f)前記オペレーティングシステムからの要求を傍受する段階と、 (g)前記傍受した要求の選択部分を、前記ローカルコンピュータシステムに
記憶されたレジストリエントリに転送する段階とを包含した、アプリケーション
の実行方法。
14. A method for executing an application on a local computer system even if the application is not installed on the local computer system, comprising: (a) a network mountable file system and one associated with the application. Accessing a set of registry entries; (b) mounting the network file system; (c) storing the registry entry on the local computer system; (d) the application from a remote source. Retrieving at least a portion, (e) executing the application under control of an operating system of the local computer system, and (f) from the operating system. A method of executing an application, comprising: intercepting a request; and (g) forwarding a selected portion of the intercepted request to a registry entry stored on the local computer system.
【請求項15】 プロセッサと、メモリと、1つかそれ以上のアプリケーショ
ンを実行する能力を備えたオペレーティングシステムとを備えたコンピュータシ
ステムにおいて、アプリケーションを前記コンピュータシステムにインストール
しなくても実行するためのシステムであって、 ネットワークファイルシステムをマウントすると共に前記アプリケーションに
関連した複数のレジストリエントリをメモリに記憶するように構成されたプログ
ラムロジックと、 遠隔源から前記アプリケーションの少なくとも一部を検索するように構成され
たプログラムロジックと、 前記オペレーティングシステムからの要求に応答するプログラムロジックであ
って、前記オペレーティングシステムからの要求を傍受すると共に前記傍受した
要求の選択部分を前記レジストリエントリに転送するよう構成されたプログラム
ロジックとを包含する、アプリケーションを実行するためのシステム。
15. A computer system comprising a processor, memory, and an operating system capable of executing one or more applications, the system for executing the applications without being installed on the computer system. And a program logic configured to mount a network file system and store a plurality of registry entries associated with the application in memory, and configured to retrieve at least a portion of the application from a remote source. And a program logic that responds to a request from the operating system, intercepting a request from the operating system and selecting a selected portion of the intercepted request. A system for executing an application including program logic configured to transfer to the registry entry.
【請求項16】 アクセスサーバと1つ又はそれ以上のタイトルデータソース
にコンピュータネットワークを介して機能的に接続されたローカルコンピュータ
システム上で実行されるクライアントプロセスにおいて、タイトルのオンデマン
ド引き渡しを可能とする方法であって、 (a)前記アクセスサーバからトークンと、アクティベータと、特定されたタ
イトルがアクセス可能なソースのネットワークアドレスとを入手する段階と、 (b)前記トークンを前記ソースに送信する段階であって、このトークンデー
タが、前記ソースにアクセス可能な時間間隔を定義する、送信段階と、 (c)前記ソースから前記タイトルの少なくとも一部を検索する段階と、 (d)前記ソースから検索したタイトルの前記一部を実行する段階と、 (e)前記アクセスサーバから更新されたトークンを入手する段階とを包含す
る、方法。
16. On-demand delivery of titles is enabled in a client process executing on a local computer system operably connected to an access server and one or more title data sources via a computer network. A method comprising: (a) obtaining a token, an activator, and a network address of a source from which the identified title is accessible from the access server; and (b) sending the token to the source. Where the token data defines a time interval during which the source is accessible, (c) retrieving at least a portion of the title from the source, and (d) retrieving from the source. Performing the portion of the title Access includes the steps of obtaining a token that is updated from the server, the method.
【請求項17】 前記タイトルがネットワークマウント可能なファイルシステ
ムと、一組のレジストリエントリとを包含し、更に、前記ステップ(d)が、 d1.前記ネットワークファイルシステムをマウントすると共に前記レジスト
リエントリ記憶する段階と、 d2.前記ローカルコンピュータシステムで実行されているオペレーティング
システムからの要求を傍受すると共に前記傍受された要求の選択部分を前記レジ
ストリエントリに転送する段階とを包含した、請求項9に記載の方法。
17. The title includes a network mountable file system and a set of registry entries, wherein step (d) further comprises d1. Mounting the network file system and storing the registry entry; d2. Intercepting a request from an operating system executing on the local computer system and forwarding a selected portion of the intercepted request to the registry entry.
【請求項18】 プロセッサと、メモリと、ネットワークインターフェースと
を備えると共に、コンピュータネットワークに接続可能なサーバ装置において、
要求プロセスによるタイトルへのアクセスを可能にする方法であって、 (a)要求プロセスからのランチストリングを認証する段階と、 (b)要求プロセスから受け取ったタイトルの固有識別子を、このタイトルに
アクセス可能な前記コンピュータネットワーク上のアドレスを示す位置識別子に
変換する段階と、 (c)アクティベータを生成する段階と、 (d)前記アクティベータを前記コンピュータネットワークを介して前記要求
プロセスに送る段階とを包含する、方法。
18. A server device, comprising a processor, a memory, and a network interface, which is connectable to a computer network,
A method of enabling access to a title by a requesting process, the method comprising: (a) authenticating a launch string from the requesting process; and (b) accessing the title with a unique identifier of the title received from the requesting process. A location identifier indicating an address on the computer network, (c) generating an activator, and (d) sending the activator to the requesting process via the computer network. how to.
【請求項19】 ロセッサと、メモリと、ネットワークインターフェースとを
備えると共に、コンピュータネットワーク 1つかそれ以上のクライアントプロ
セスに接続可能なサーバ装置で用いる方法であって、 (a)クライアントプロセスから、一定時間を特定するデータとタイトルを固
有に特定するデータとを含んだトークンを前記ネットワークインターフェースを
介して受け取る段階と、 (b)前記クライアントプロセスが特定の時間に前記タイトルにアクセスする
許可を受けているかどうか判断する段階と、 (c)前記段階(d)において前記クライアントが許可されていれば、前記メ
モリと前記トークンにより固有に特定されているタイトルにアクセスする段階と
、 (d)前記トークンにより特定されている前記タイトルの少なくとも一部を前
記クライアントに供給する段階とを含んだ、方法。
19. A method of using a server device, comprising a processor, a memory, and a network interface, which is connectable to one or more client processes of a computer network, comprising: (a) a fixed time from the client process. Receiving a token containing the identifying data and the data uniquely identifying the title via the network interface, and (b) determining whether the client process is authorized to access the title at a particular time. (C) accessing the title uniquely identified by the memory and the token if the client is authorized in step (d), and (d) identifying the title by the token. There are less of the above titles Also containing and supplying part to the client, method.
【請求項20】 1つかそれ以上の要求者プロセスへのタイトルのコンピュー
タネットワークを介した選択的引き渡しを可能とするする方法であって、 (a)要求者プロセスに、前記コンピュータネットワーク上のアドレスに実行
不可能な形式で記憶されているタイトルの選択した部分へのアクセスを所定の条
件で提供し、 (b)前記要求者プロセスに、前記タイトルを実行不可能な形式からの実行可
能な形式への処理に有用なデータを提供する段階と、 (c)前記タイトルが前記コンピュータ上にインストールされるのを防止する
一方で、前記コンピュータシステムにおける前記タイトルの選択した部分の実行
を許容する段階とを包含した、方法。
20. A method for enabling selective delivery of a title to one or more requestor processes via a computer network, the method comprising: (a) providing the requester process with an address on the computer network. Providing access to a selected portion of a title stored in an unexecutable form under certain conditions, (b) providing the requestor process with the title from an inexecutable form to an executable form. And (c) preventing the title from being installed on the computer while allowing execution of a selected portion of the title on the computer system. Inclusive, method.
【請求項21】 タイトルをコンピュータネットワークを介して1つかそれ以
上の要求者プロセスに引き渡す方法であって、 (a)要求者プロセスから、タイトルを特定するデータを受け取り、 (b)前記要求者プロセスに、前記タイトルにアクセス可能な前記コンピュー
タネットワーク上の位置を特定するデータと前記タイトルにアクセスするのに必
要な許可データとを提供する段階と、 (c)前記要求者プロセスから支払い情報を受け取る段階とを包含した、方法
21. A method of delivering a title to one or more requester processes via a computer network, comprising: (a) receiving data identifying a title from a requester process; and (b) said requestor process. And (c) receiving payment information from the requester process, providing data identifying the location on the computer network that has access to the title and authorization data necessary to access the title. A method including and.
JP2000583224A 1998-11-16 1999-11-15 Method and apparatus for securely delivering content over a broadband access network Expired - Lifetime JP4340013B2 (en)

Applications Claiming Priority (11)

Application Number Priority Date Filing Date Title
US10860298P 1998-11-16 1998-11-16
US60/108,602 1998-11-16
US09/310,229 1999-05-12
US09/311,923 1999-05-12
US09/311,923 US6374402B1 (en) 1998-11-16 1999-05-12 Method and apparatus for installation abstraction in a secure content delivery system
US09/310,294 US7017188B1 (en) 1998-11-16 1999-05-12 Method and apparatus for secure content delivery over broadband access networks
US09/310,294 1999-05-12
US09/310,229 US6763370B1 (en) 1998-11-16 1999-05-12 Method and apparatus for content protection in a secure content delivery system
US43990699A 1999-11-12 1999-11-12
US09/439,906 1999-11-12
PCT/US1999/027113 WO2000030323A2 (en) 1998-11-16 1999-11-15 Methods and apparatus for secure content delivery over broadband access networks

Publications (3)

Publication Number Publication Date
JP2003527645A true JP2003527645A (en) 2003-09-16
JP2003527645A5 JP2003527645A5 (en) 2009-06-25
JP4340013B2 JP4340013B2 (en) 2009-10-07

Family

ID=27537215

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000583224A Expired - Lifetime JP4340013B2 (en) 1998-11-16 1999-11-15 Method and apparatus for securely delivering content over a broadband access network

Country Status (6)

Country Link
EP (1) EP1131934B1 (en)
JP (1) JP4340013B2 (en)
AU (1) AU1727200A (en)
CA (1) CA2351078C (en)
ES (1) ES2618230T3 (en)
WO (1) WO2000030323A2 (en)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005539308A (en) * 2002-09-13 2005-12-22 サン・マイクロシステムズ・インコーポレイテッド System for digital content access control
JP2009539195A (en) * 2006-06-01 2009-11-12 マクロビジョン・コーポレーション Method and apparatus for transferring media over a network using a network interface device
US7676813B2 (en) 2004-09-30 2010-03-09 Citrix Systems, Inc. Method and system for accessing resources
US7752600B2 (en) 2004-09-30 2010-07-06 Citrix Systems, Inc. Method and apparatus for providing file-type associations to multiple applications
US7853947B2 (en) 2004-09-30 2010-12-14 Citrix Systems, Inc. System for virtualizing access to named system objects using rule action associated with request
US8095940B2 (en) 2005-09-19 2012-01-10 Citrix Systems, Inc. Method and system for locating and accessing resources
US8117559B2 (en) 2004-09-30 2012-02-14 Citrix Systems, Inc. Method and apparatus for virtualizing window information
US8131825B2 (en) 2005-10-07 2012-03-06 Citrix Systems, Inc. Method and a system for responding locally to requests for file metadata associated with files stored remotely
US8171479B2 (en) 2004-09-30 2012-05-01 Citrix Systems, Inc. Method and apparatus for providing an aggregate view of enumerated system resources from various isolation layers

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002082917A (en) * 2000-07-04 2002-03-22 Sony Computer Entertainment Inc Contents distribution method, contents distribution server, and client terminal in contents distribution infrastructure
EP2378733B1 (en) 2000-11-10 2013-03-13 AOL Inc. Digital content distribution and subscription system
CN101783807B (en) * 2001-01-17 2011-08-10 康坦夹德控股股份有限公司 System and method for digital rights management using a standard rendering engine
FI120778B (en) * 2001-12-05 2010-02-26 Sofia Digital Oy Method and system for activating content
US9165317B2 (en) 2002-07-10 2015-10-20 Rakuten, Inc. Methods, systems, and products for managing digital content
US7996503B2 (en) 2002-07-10 2011-08-09 At&T Intellectual Property I, L.P. System and method for managing access to digital content via digital rights policies
US20080313282A1 (en) 2002-09-10 2008-12-18 Warila Bruce W User interface, operating system and architecture
US7779034B2 (en) 2005-10-07 2010-08-17 Citrix Systems, Inc. Method and system for accessing a remote file in a directory structure associated with an application program executing locally
EP2224338A3 (en) 2007-09-12 2011-03-16 Citrix Systems, Inc. Methods and systems for generating desktop environments providing integrated access to remote and local resources
US8171483B2 (en) 2007-10-20 2012-05-01 Citrix Systems, Inc. Method and system for communicating between isolation environments
US8090797B2 (en) 2009-05-02 2012-01-03 Citrix Systems, Inc. Methods and systems for launching applications into existing isolation environments
GB201005733D0 (en) 2010-04-06 2010-05-19 Wallin Lars Digital asset authentication system and method
US20200349620A1 (en) * 2019-04-30 2020-11-05 Shopify Inc. Email address verification

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5363487A (en) * 1989-08-29 1994-11-08 Microsoft Corporation Method and system for dynamic volume tracking in an installable file system
US5935249A (en) * 1997-02-26 1999-08-10 Sun Microsystems, Inc. Mechanism for embedding network based control systems in a local network interface device
US20010011238A1 (en) * 1998-03-04 2001-08-02 Martin Forest Eberhard Digital rights management system

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
明石 修: "インターネットを用いた情報流通プラットフォーム:Infoket−I", NTT R&D NTT R&D, vol. 第46巻、第2号, JPN6008053071, 10 February 1997 (1997-02-10), pages 107 - 124, ISSN: 0001169539 *
細見 格 ITARU HOSOMI: "デジタル情報流通アーキテクチャMediaShellとその利用・課金制御", 情報処理学会研究報告 VOL.98 NO.85, vol. 第98巻,第85号, JPN7008007686, 19 September 1998 (1998-09-19), JP, pages 49 - 56, ISSN: 0001337691 *
鈴木 英明: "Infoketを用いた電子出版サービスの構成と評価", NTT R&D NTT R&D, vol. 第46巻第2号, JPN6008053074, 10 February 1997 (1997-02-10), ISSN: 0001169540 *

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005539308A (en) * 2002-09-13 2005-12-22 サン・マイクロシステムズ・インコーポレイテッド System for digital content access control
US8042120B2 (en) 2004-09-30 2011-10-18 Citrix Systems, Inc. Method and apparatus for moving processes between isolation environments
US7676813B2 (en) 2004-09-30 2010-03-09 Citrix Systems, Inc. Method and system for accessing resources
US7752600B2 (en) 2004-09-30 2010-07-06 Citrix Systems, Inc. Method and apparatus for providing file-type associations to multiple applications
US7853947B2 (en) 2004-09-30 2010-12-14 Citrix Systems, Inc. System for virtualizing access to named system objects using rule action associated with request
US8117559B2 (en) 2004-09-30 2012-02-14 Citrix Systems, Inc. Method and apparatus for virtualizing window information
US8132176B2 (en) 2004-09-30 2012-03-06 Citrix Systems, Inc. Method for accessing, by application programs, resources residing inside an application isolation scope
US8171479B2 (en) 2004-09-30 2012-05-01 Citrix Systems, Inc. Method and apparatus for providing an aggregate view of enumerated system resources from various isolation layers
US8302101B2 (en) 2004-09-30 2012-10-30 Citrix Systems, Inc. Methods and systems for accessing, by application programs, resources provided by an operating system
US8095940B2 (en) 2005-09-19 2012-01-10 Citrix Systems, Inc. Method and system for locating and accessing resources
US8131825B2 (en) 2005-10-07 2012-03-06 Citrix Systems, Inc. Method and a system for responding locally to requests for file metadata associated with files stored remotely
US7929551B2 (en) 2006-06-01 2011-04-19 Rovi Solutions Corporation Methods and apparatus for transferring media across a network using a network interface device
JP2009539195A (en) * 2006-06-01 2009-11-12 マクロビジョン・コーポレーション Method and apparatus for transferring media over a network using a network interface device
US9621605B2 (en) 2006-06-01 2017-04-11 Rovi Solutions Corporation Methods and apparatus for providing media from content providers using a network interface device

Also Published As

Publication number Publication date
WO2000030323A2 (en) 2000-05-25
CA2351078C (en) 2009-10-06
EP1131934A2 (en) 2001-09-12
AU1727200A (en) 2000-06-05
CA2351078A1 (en) 2000-05-25
ES2618230T3 (en) 2017-06-21
JP4340013B2 (en) 2009-10-07
WO2000030323A3 (en) 2000-08-10
EP1131934B1 (en) 2016-12-21

Similar Documents

Publication Publication Date Title
US7017188B1 (en) Method and apparatus for secure content delivery over broadband access networks
US6374402B1 (en) Method and apparatus for installation abstraction in a secure content delivery system
US7690039B2 (en) Method and apparatus for content protection in a secure content delivery system
JP4340013B2 (en) Method and apparatus for securely delivering content over a broadband access network
US9578075B2 (en) Software streaming system and method
EP1072143B1 (en) System for keying protected electronic data to particular media to prevent unauthorized copying
JP4512119B2 (en) System and method for managing and completing transactions while protecting the privacy of user information
US6434535B1 (en) System for prepayment of electronic content using removable media and for prevention of unauthorized copying of same
KR100467929B1 (en) System for protecting and managing digital contents
US20020082997A1 (en) Controlling and managing digital assets
US20020156911A1 (en) Systems and methods for delivering content over a computer network
US20060101521A1 (en) System and method for secure usage right management of digital products
JPH10269289A (en) Digital content distribution managing method, digital content reproducing method and its device
JP2003016041A (en) Communication system, server apparatus, client apparatus, cellular phone, communication method, providing method for coordination processing, method for coordination processing, method for representative charge, validating method for contents, program and recording medium
US7356847B2 (en) System for dynamically encrypting content for secure internet commerce and providing embedded fulfillment software
AU2002354095A1 (en) Methods and apparatus for secure distribution of program content
US20020055910A1 (en) Program component distribution
JP2002041347A (en) Information presentation system and device
US20080155654A1 (en) Method And Device For Re-Dispatching Specifically Coded Access Objects From A Server To A Mobile Terminal Device
WO2000030319A1 (en) System for keying protected electronic data to particular media to prevent unauthorized copying using asymmetric encryption and a unique identifier of the media
WO2000014925A2 (en) Method and system for the protected distribution of network files

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20040310

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20040310

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20051117

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20080909

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20080924

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081006

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081029

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20090129

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20090205

A524 Written submission of copy of amendment under article 19 pct

Free format text: JAPANESE INTERMEDIATE CODE: A524

Effective date: 20090428

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090604

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090703

R150 Certificate of patent or registration of utility model

Ref document number: 4340013

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120710

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120710

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120710

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120710

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130710

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term