JP4851703B2 - コンピュータプログラムのライセンスの施行を支援するシステム - Google Patents

コンピュータプログラムのライセンスの施行を支援するシステム Download PDF

Info

Publication number
JP4851703B2
JP4851703B2 JP2004302186A JP2004302186A JP4851703B2 JP 4851703 B2 JP4851703 B2 JP 4851703B2 JP 2004302186 A JP2004302186 A JP 2004302186A JP 2004302186 A JP2004302186 A JP 2004302186A JP 4851703 B2 JP4851703 B2 JP 4851703B2
Authority
JP
Japan
Prior art keywords
license
call
rights
computer program
computer
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.)
Expired - Fee Related
Application number
JP2004302186A
Other languages
English (en)
Other versions
JP2005129049A (ja
Inventor
ガニャクティ カグラル
チャン ニン
スコット スー ウェン−ピン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2005129049A publication Critical patent/JP2005129049A/ja
Application granted granted Critical
Publication of JP4851703B2 publication Critical patent/JP4851703B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A01AGRICULTURE; FORESTRY; ANIMAL HUSBANDRY; HUNTING; TRAPPING; FISHING
    • A01KANIMAL HUSBANDRY; AVICULTURE; APICULTURE; PISCICULTURE; FISHING; REARING OR BREEDING ANIMALS, NOT OTHERWISE PROVIDED FOR; NEW BREEDS OF ANIMALS
    • A01K87/00Fishing rods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • 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
    • 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]
    • G06F21/106Enforcing content protection by specific content processing
    • G06F21/1063Personalisation
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01QANTENNAS, i.e. RADIO AERIALS
    • H01Q1/00Details of, or arrangements associated with, antennas
    • H01Q1/12Supports; Mounting means
    • H01Q1/22Supports; Mounting means by structural association with other equipment or articles
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01QANTENNAS, i.e. RADIO AERIALS
    • H01Q1/00Details of, or arrangements associated with, antennas
    • H01Q1/27Adaptation for use in or on movable bodies
    • H01Q1/32Adaptation for use in or on road or rail vehicles
    • H01Q1/325Adaptation for use in or on road or rail vehicles characterised by the location of the antenna on the vehicle
    • H01Q1/3275Adaptation for use in or on road or rail vehicles characterised by the location of the antenna on the vehicle mounted on a horizontal surface of the vehicle, e.g. on roof, hood, trunk
    • 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
    • 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
    • G06Q2220/00Business processing using cryptography
    • G06Q2220/10Usage protection of distributed data files
    • G06Q2220/18Licensing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • General Engineering & Computer Science (AREA)
  • Environmental Sciences (AREA)
  • Finance (AREA)
  • Accounting & Taxation (AREA)
  • Technology Law (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Multimedia (AREA)
  • Marine Sciences & Fisheries (AREA)
  • Animal Husbandry (AREA)
  • Biodiversity & Conservation Biology (AREA)
  • Remote Sensing (AREA)
  • Marketing (AREA)
  • Mathematical Physics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • General Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Economics (AREA)
  • Development Economics (AREA)
  • Storage Device Security (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Stored Programmes (AREA)

Description

本発明は、コンピュータプログラムのライセンスの施行を支援するシステムに関する。より具体的には、一般に、コンピュータソフトウェアの分野に関し、電子ライセンスの施行を支援するプログラミングインタフェースに関連した、コンピュータプログラムのライセンスの施行を支援するシステム、ライセンスに関連付けられるコンピュータプログラムの使用を制約する方法、及び記録媒体に関する。
商用生産されたソフトウェアは、従来、ソフトウェア使用の許容条項を確定するライセンスの下で利用可能とされた。ソフトウェアライセンス化の実施が最初に開始されたとき、ライセンスは、一般に、ソフトウェアに関するユーザの権利を確定する法律文書の形態を取った。そのような文書は、法的施行システムに依拠した。それ以来、ライセンスを電子的に施行することが所望されている。すなわち、コンピュータプログラムが、ライセンスとは対照的な方式で、ソフトウェアの使用を能動的に阻止する、または防止するコードを包含することが望ましい。
電子ライセンスの施行に備えるほとんどのソフトウェアは、ソフトウェアのライセンス化およびライセンスの使用を管理するために、それ自体のインフラストラクチャを提供する。したがって、通常の市販ソフトウェアプロダクトは、プロダクトの中核機能を実施するためのコードを含むことが可能であるだけでなく、そのコードと共に、ソフトウェアのライセンスを獲得、評価、および管理するためのコードをも所持することが可能である。各ソフトウェアベンダが、このインフラストラクチャを開発して、ソフトウェアに組み込むのは、しばしば、無駄な努力の重複である。したがって、ソフトウェアのライセンス化(licensing)に関する基本的な機能を実施するシステムを提供することが望ましい。この場合、広範なソフトウェア応用分野によって、一様かつ確定された方式で、システムを使用することができる。
いくつかの文献に上述のような従来の技術に関連した技術内容が開示されている(例えば、特許文献1、2参照)。
米国特許第5,539,741号明細書 米国特許第6,100,882号明細書
以上を考慮すると、従来の技術の欠点を克服する機構が必要である。
本発明は、このような状況に鑑みてなされたもので、その目的とするところは、ライセンス化のためのプログラミングインタフェースを有する、コンピュータプログラムのライセンスの施行を支援するシステムを提供することにある。
本発明は、ソフトウェアプロダクトによって使用されるあるライセンス化機能を提供するソフトウェアライセンス化アプリケーションプログラミングインタフェース(API)を提供する。ライセンスサービスが、ライセンスの使用に関する機能を実施し、APIによりこれらの機能をソフトウェアプロダクトに公開する。サービスは、ライセンスを獲得する、ライセンスを格納ならびに管理する、ライセンスを改竄から保護する、ライセンスの妥当性を評価する、および、ライセンスが、ライセンスが使用されるマシンならびに/もしくはソフトウェアプロダクトに適切にバインド(bind)されているかを評価する、などの機能を実施する。ソフトウェアは、APIのメソッド(method)を呼び出すことによって、この機能を利用することができる。
APIの通常の使用では、アプリケーションを識別するためにライセンスサービスによって使用される固有のハンドルを得るために、ソフトウェアプロダクトが、「オープン」APIメソッドを呼び出す。次いで、ソフトウェアプロダクトは、「consume-right」APIメソッドを呼び出す。「consume(消費する)」は、この文脈では、規定された権利の行使を意味する。「consume-right」メソッドの呼出しは、ソフトウェアプロダクトのハンドルおよび消費される権利の名称によってパラメータ化される。次いで、ライセンスサービスは、名称付き権利を包含する1つまたは複数の有効で適切にバインドされたライセンスを特定することを試行する。そのようなライセンスが存在しない場合、ソフトウェアプロダクトは、失敗(failure)を通知される。そのようなライセンスが存在する場合、権利は、ライセンスの1つにバインドされ、呼出しソフトウェアプロダクトは、バインディング(binding)を通知される。そのような場合、ソフトウェアプロダクトは、権利が存在することを認識しており、この権利に関連する機能であればどんなものでも実施することができる。
好適実施形態では、ライセンスサービスは、ソフトウェアが権利下で実施することができる、もしくはできないことを確定せず、または、ソフトウェアの使用に対する実質的な制約を強制しない。むしろ、ライセンスサービスは、権利が存在する、またはしないに関係なく、ソフトウェアプロダクトがAPIを呼び出すことによって判定することができるような方式で、ライセンスを管理し、それにより、ソフトウェアは、相応してふるまうことができる。たとえば、権利は、ユーザがソフトウェアプロダクトを実行する権利を有することを示す「run」を呼び出される可能性がある。ソフトウェアプロダクトは、APIを使用して、ソフトウェアを実行する有効な(および適切にバインドされ、かつ満了していない)権利が存在するかについて判定することができる。しかし、APIコールが、ソフトウェアを実行する権利が存在しないという指示で戻る場合、この権利が存在しないということに基づいて、動作を停止する、またはある他のアクションを取るのは、ソフトウェアの役割である。
権利が、「consume-right」メソッドの呼出しに成功した後に利用可能になる情報に関連する可能性がある。たとえば、所与のソフトウェアプロダクトが、編集、印刷、保存などがいつ許容されるかに関する個々の規則を有する可能性があり、これらの規則は、権利を包含するライセンスに格納することができる。APIは、この情報をライセンスから取り出すことを可能にする「get-information」メソッドを提供する。
本発明の他の特徴については、以下で記述する。
以上の概述、ならびに好適実施形態の以下の詳細な記述は、添付の図面と関連して読まれるとき、より良好に理解される。本発明を示すために、図面では、本発明の例示的な構築が示される。しかし、本発明は、開示される特定の方法および手段に限定されるものではない。
本発明によれば、ライセンス化のためのプログラミングインタフェースを提供できる。
以下、図面を参照して本発明を適用できる実施形態を詳細に説明する。
概観
市販ソフトウェアの使用は、通常、ライセンスによって管理され、このライセンスが、ソフトウェア自体によって施行することができる電子形態で埋め込まれることが、ますます一般的になっている。電子ライセンス化システムを創出する1つの課題は、ライセンスの使用を管理するために、インフラストラクチャが必要とされることである。このインフラストラクチャを各ソフトウェアプロダクトについて複製することは、厄介で無駄である。本発明は、異なるソフトウェアプロダクトが、様々なライセンス化機能を実施する共通インフラストラクチャを使用するのを可能にするAPIを提供する。
例示的なコンピューティング構成
図1は、本発明の態様を実施することが可能である例示的なコンピューティング環境を示す。計算システム環境100は、適切なコンピューティング環境の単なる一例であり、本発明の使用または機能の範囲に関する限定を示唆することを意図しない。また、コンピューティング環境100は、例示的な動作環境100に示される構成要素のいずれか1つまたは組合せに関するあらゆる依存性または用件として解釈されるべきではない。
本発明は、多くの他の汎用または専用のコンピューティングシステム環境または構成で動作する。本発明との使用に適している可能性がある周知のコンピューティングシステム、環境、および/または構成の例は、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースシステム、セットトップボックス、プログラム可能家庭用電化製品、ネットワークPC(personal computer)、ミニコンピュータ、メインフレームコンピュータ、組み込み式システム、上記のシステムまたは装置のいずれかを含む分散型コンピューティング環境などを含むが、これに限定されるものではない。
本発明は、コンピュータによって実行されるプログラムモジュールなどのコンピュータ実行可能命令の一般的な状況において記述することが可能である。一般に、プログラムモジュールは、特定のタスクを実施する、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。本発明は、分散型コンピューティング環境において実施することも可能であり、この場合、タスクは、通信ネットワークまたは他のデータ伝送媒体を経て連結されるリモート処理装置によって実施される。分散型コンピューティング環境では、プログラムモジュールおよび他のデータは、メモリ記憶装置を含むローカルなコンピュータ記憶媒体およびリモートコンピュータ記憶媒体の両方に位置することが可能である。
図1を参照すると、本発明を実施する例示的なシステムは、コンピュータ110の形態にある汎用計算装置を含む。コンピュータ110の構成要素は、プロセッサ120、システムメモリ130、およびシステムメモリを含む様々なシステム構成要素をプロセッサ120に結合するシステムバス121を含む。プロセッサ120は、マルチスレッドプロセッサ上において支援されるものなど、複数の論理プロセッサを表す可能性がある。システムバス121は、メモリバスまたはメモリ制御装置、周辺バス、および様々なバスアーキテクチャのいずれかを使用するローカルバスを含むいくつかのタイプのバス構造のいずれかとすることが可能である。例として、そのようなアーキテクチャは、業界標準アーキテクチャ(ISA)バス、MCA(Micro−Channel Architecture)バスEISA(Extended ISA)、IDE(Intelligent Drive Electronics)バス、VESA(Standards Association)ローカルバス、およびPCI(Peripheral Component Interconnect)バス(メザニンバスとしても既知)を含むが、これに限定されるものではない。システムバス121は、通信装置内において、ポイントツーポイント接続、スイッチングファブリックなどとして実施することも可能である。
コンピュータ110は、通常、様々なコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータ110によってアクセスすることができるあらゆる利用可能な媒体とすることができ、揮発性媒体および不揮発性媒体でリムーバブル媒体およびノンリムーバブル媒体の両方を含む。例として、コンピュータ可読媒体は、コンピュータ記憶媒体および通信媒体を含むことが可能であるが、これに限定されるものではない。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの、情報を記憶するあらゆる方法または技術において実施される揮発性および不揮発性でリムーバブルおよびノンリムーバブルな媒体の両方を含む。コンピュータ記憶媒体は、RAM(read-only memory)、ROM(random access memory)、EEPROM(electrically erasable programmable read-only memory)、フラッシュメモリもしくは他のメモリ技術、CD(compact disc)ROM、DVD(Digital Versatile Disc)もしくは他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置もしくは他の磁気記憶装置、あるいは、所望の情報を記憶するために使用することができ、かつコンピュータ110によってアクセスすることができるあらゆる他の媒体を含むが、これに限定されるものではない。通信媒体は、通常、搬送波または他のトランスポート機構などの変調データ信号において、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータを実現し、かつ任意の情報配信媒体を含む。「変調データ信号」という用語は、特性セットの1つもしくは複数を有する信号、または情報を信号に符号化するような方式で変更された信号を意味する。例として、通信媒体は、有線ネットワークまたは直接配線接続などの有線媒体、および音響、RF(radio frequency)、赤外線などの無線媒体、ならびに他の無線媒体を含むが、これに限定されるものではない。上記のいずれかの組合せも、コンピュータ可読媒体の範囲内に含まれるべきである。
システムメモリ130は、読取り専用メモリ(ROM)131およびランダムアクセスメモリ(RAM)132など、揮発性メモリおよび/または不揮発性メモリの形態にあるコンピュータ記憶媒体を含む。スタートアップ中などにコンピュータ110内の要素間において情報を転送するのを補助する基本的なルーチンを含むBIOS(Basic Input/Output System)133が、通常、ROM131に記憶されている。RAM132は、通常、プロセッサ120によって即座にアクセス可能である、および/または目下動作されているデータおよび/またはプログラムモジュールを含む。例として、図1は、オペレーティングシステム134、アプリケーションプログラム135、他のプログラムモジュール136、およびプログラムデータ137を示すが、これに限定されるものではない。
コンピュータ110は、他のリムーバブル/ノンリムーバブルで揮発性/不揮発性のコンピュータ記憶媒体をも含むことが可能である。例としてのみ、図1は、ノンリムーバブル不揮発性磁気媒体から読み取る、またはそれに書き込むハードディスクドライブ140、リムーバブル不揮発性磁気ディスク152から読み取る、またはそれに書き込む磁気ディスクドライブ151、CD ROMもしくは他の光学媒体などのリムーバブル不揮発性光ディスク156から読み取る、またはそれに書き込む光ディスクドライブ155を示す。例示的なオペレーティング環境において使用することができる他のリムーバブル/ノンリムーバブルで揮発性/不揮発性のコンピュータ記憶媒体は、磁気テープカセット、フラッシュメモリカード、DVD、デジタルビデオテープ、ソリッドステートRAM、ソリッドステートROMなどを含むが、これに限定されるものではない。ハードディスクドライブ141は、通常、インタフェース140などのノンリムーバブルメモリインタフェースを経てシステムバス121に接続され、磁気ディスクドライブ151および光ディスクドライブ155は、通常、インタフェース150などのリムーバブルメモリインタフェースによってシステムバス121に接続される。
上記で解説され、かつ図1に示されたドライブおよび関連するコンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、および他のデータの記憶装置をコンピュータ110に提供する。図1では、たとえば、ハードディスクドライブ141が、オペレーティングシステム144、アプリケーションプログラム145、他のプログラムモジュール146、およびプログラムデータ147を記憶するように示されている。これらの構成要素は、オペレーティングシステム134、アプリケーションプログラム135、他のプログラムモジュール136、およびプログラムデータ137と同じ、または異なるとすることができることに留意されたい。オペレーティングシステム144、アプリケーションプログラム145、他のプログラムモジュール146、およびプログラムデータ147は、少なくともそれらが異なるコピーであることを示すために、ここでは異なる番号が与えられている。ユーザが、キーボード162、および一般にマウス、トラックボール、またはタッチパッドと呼ばれるポインティングデバイス161などの入力装置により、コマンドおよび情報を入力することが可能である。他の入力装置(図示せず)は、マイクロフォンフォン、ジョイスティック、ゲームパッド、衛星放送受信アンテナ、スキャナなどを含むことが可能である。これらおよび他の入力装置は、しばしば、システムバスに結合されるユーザ入力インタフェース160を経て、プロセッサ120に接続されるが、パラレルポート、ゲームポート、またはユニバーサルシリアルバス(USB)などの他のインタフェースおよびバス構造によって接続することも可能である。モニタ191または他のタイプの表示装置も、ビデオインタフェース190などのインタフェースを介して、システムバス121に接続される。モニタの他に、コンピュータは、出力周辺インタフェース195を経て接続することが可能である、スピーカ197およびプリンタ196などの他の周辺出力装置をも含むことが可能である。
コンピュータ110は、リモートコンピュータ180など、1つまたは複数のリモートコンピュータへの論理接続を使用するネットワーク環境において動作することが可能である。リモートコンピュータ180は、パーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピアデバイス、または他の共通ネットワークノードとすることが可能であり、通常、コンピュータ110に関して上記で記述した要素の多くまたはすべてを含むが、図1では、メモリ記憶装置181のみが示されていた。図1に示した論理接続は、ローカルエリアネットワーク(LAN)171およびワイドエリアネットワーク(WAN)173を含むが、他のネットワークを含むことも可能である。そのようなネットワーキング環境は、オフィス、企業全体のコンピュータネットワーク、イントラネット、およびインターネットにおいて一般的である。
LANネットワーキング環境において使用されるとき、コンピュータ110は、ネットワークインタフェースまたはアダプタ170を経てLAN171に接続される。WANネットワーキング環境において使用されるとき、コンピュータ110は、通常、インターネットなどのWAN173上で通信を確立するために、モデム172または他の手段を含む。モデム172は、内蔵または外付けとすることが可能であり、ユーザ入力インタフェース160または他の適切な機能を介して、システムバス121に接続することが可能である。ネットワーク環境では、コンピュータ110に関して示したプログラムモジュール、またはその一部は、リモートメモリ記憶装置に記憶することが可能である。例として、図1は、メモリ装置181上に存在するリモートアプリケーションプログラム185を示すが、これに限定されるものではない。図示したネットワーク接続は例示であり、かつコンピュータ間の通信リンクを確立する他の手段を使用することが可能であることが理解されるであろう。
ソフトウェアライセンス化サービス
図2は、ソフトウェアライセンス化サービス202を提供する例示的なシステムを示す。ソフトウェアライセンス化サービス202は、コンピュータ110(図1に示す)の内部において動作する。一例では、ソフトウェアライセンス化サービス202は、コンピュータ110上で実行されるオペレーティングシステムの一部である。ソフトウェアライセンス化サービスは、ソフトウェアのライセンスファイルが記憶されるライセンスストア204を維持する。ライセンスファイルは、たとえば、ソフトウェアに対する権利を規定し、かつそれらの権利の行使する様々なタイプの条件をも規定することが可能であるXrML(eXtensible Rights Markup Language)ファイルとすることが可能である。ソフトウェア204は、トラストストア206をも維持する。トラストストア206は、耐改竄方式で認証不可能動的データを記憶する。トラストストア206は、ライセンス確認プロセスにおいて使用されるデータを記憶する。たとえば、あるライセンスは、満了日を有する可能性があり、時計のロールバックのために満了日が迂回されることを防止するために、時計が常に先に進むことを保証するように、現行時間(および経過時間)をトラストストア206に周期的に記憶することが可能である。
ソフトウェアライセンス化サービス202は、ライセンスストア204およびトラストストア206を管理し、また、ソフトウェアのライセンス化に関する様々な機能を実施する。たとえば、ソフトウェアライセンス化サービス202は、ライセンスファイルをパースする(parse)モジュール、特定のマシンおよび/またはソフトウェアプロダクトの特定の事例にライセンスをバインドするのを施行するモジュール、ならびにセキュアタイマ/カウンタ(上記で記述された方式でトラストストア206を使用する)を包含することが可能である。
ソフトウェアライセンス化サービス202は、アプリケーションソフトウェア(アプリケーション135など)がソフトウェアライセンス化サービス202を使用するのを可能にするアプリケーションプログラミングインタフェース(API)208を公開する。アプリケーション135は、API208のメソッドに対するLPC(local procedure call)を作成することによって、ソフトウェアライセンス化サービスAPI208のフィーチャを呼び出すことが可能である。ソフトウェアライセンス化サービス202によって公開することが可能であるAPIのメソッドの例示的なセットについて、以下で記述する。
API208がアプリケーションによって使用される方式について、図3を参照して記述する。まず、アプリケーションは、APIコールを作成する(302)。次いで、サービス202は、APIコールを処理し(304)、APIコールの結果をアプリケーションに戻す(306)。たとえば、APIコールは、ライセンスにおいて許可された権利を行使(「consume(消費)」)する、またはライセンスから情報を取り出すことを要求することが可能である。次いで、アプリケーションは、APIコールの結果を受け取り、その結果に基づいて、アプリケーションのふるまいがどうあるべきであるかを判定する(308)。すなわち、ソフトウェアライセンス化サービス202は、好適実施形態では、ライセンスを直接施行せず、ライセンスを管理し、かつ使用することができるインフラストラクチャを提供する。たとえば、アプリケーションが、権利を消費するためにAPIコールを作成し、サービス202が、この権利を許可する有効なライセンスが存在しないと判定する場合、サービス202は、好適実施形態では、アプリケーションが実行されるのを阻止せず、代わりに、この権利が利用可能ではないことをアプリケーションに通知する。したがって、アプリケーションは、それ自体の機構を使用して、権利の利用不性能に応答して何を実施するかを判定することができる。APIのこの側面は、サービス202によって提供されるライセンス化インフラストラクチャをどのように使用すべきであるかを決定する適応性をソフトウェアベンダに提供する。他の実施態様では、アプリケーションは、ライセンス化サービス機能にバインドすることができる。
ソフトウェアライセンス化APIの例
以下は、ソフトウェアライセンス化サービスによって公開することが可能である例示的な1組のAPIのメソッドである。
SLOpen
SLOpen関数(function)は、すべてのその後のSL APIコールについて使用されなければならないSLクライアントコンテキストハンドルをオープンする。(例示的なAPIの記述を通して、「SL」は、ソフトウェアライセンス化サービスを指す。したがって、SLクライアントコンテキストハンドルは、ソフトウェアライセンス化サービスと通信するクライアントによって使用されるハンドルである。)
Figure 0004851703
パラメータ
pguidApp
「入力」アプリケーションを一意に識別するアプリケーションGUIDに対するポインタ。この引数がNULLである場合、E_INVALIDARGエラーが戻される。
phSLC
「出力」SLクライアントコンテキストハンドル、または、失敗である場合、INVALID_HANDLE_VALUE。
注釈
SLOpenによって戻されたコンテキストハンドルをクローズするために、SLClose関数を使用する。
アプリケーションGUID:アプリケーションの固有ID。Microsoft(登録商標) OFFICE(商標)アプリケーションスイートのWINDOWS(登録商標)バージョンでは、WinWord(商標)は、Excel(商標)のアプリケーションGUIDとは異なるアプリケーションGUIDを有する。たとえば、ウィンドウズ(登録商標)自体は、アプリケーションであるが、多くのプログラムの複合体である。
オフィス(商標)の場合、ユーザが、オフィス(商標)スイート(Office Suite)およびWinWord(商標)のスタンドアロンプロダクトの両方をマシンにインストールすることができる。SLの観点から、両プロダクトのWinWord(商標)は、同じアプリケーションGUIDを有する。WinWord(商標)のアプリケーションGUIDは、2つのプロダクトGUIDに関連する。すなわち、WinWord(商標)は、オフィス(商標)スイートのプロダクトライセンスまたはWinWord(商標)のプロダクトライセンスの両方を使用することができる。
SLOpenが成功したとき:
RPC(remote procedure call)バインディングが確立されている。
コンテキストメモリが、SLサービス上に創出される。コンテキストは、クライアントのコーラー(caller)のステータス情報を維持するために使用される。
SLC(SLクライアントコンテキスト)ハンドルは、ファイルハンドルと同様である。プロセスが、複数のSLコンテキストハンドルをオープンすることができるが、ハンドルは、コーラーのプロセス内において有効である。
リターン
成功または失敗。
SLClose
SLClose関数は、オープンされたSLクライアントコンテキストハンドルをクローズする。コンテキストのあらゆる情報が、自動的に解放される。
Figure 0004851703
パラメータ
hSLC
「入力」カレントSLクライアントコンテキストハンドルに対するハンドル。
注釈
SLCloseが実施されるとき、RPCバインディングが解放され、コンテキストは破壊される。
リターン
成功または失敗。
SLInstall
SLInstall関数は、アプリケーションのライセンスをインストールし、アプリケーションの情報を登録する。
Figure 0004851703
パラメータ
hSLC
「入力」カレントSLクライアントコンテキストハンドルに対するハンドル。
pAppPrdKey
「入力」アプリケーションプロダクトキー構造。プロダクトキーは、MS(マイクロソフト)プロダクトキーフォーマットまたはアプリケーションのプロダクトキーフォーマットとすることができる。
Figure 0004851703
eProdKeyTypeは、以下の値の1つとすることができる。
SL_PRODKEY_CUSTOM
SL_PRODKEY_MS2002
SL_PRODKEY_MS2003
プロダクトキーのタイプが、MSプロダクトキーではない場合(すなわち、eProdKeyType==SL_PRODKEY_CUSTOM)、コーラーは、カスタムプロダクトキー情報を埋めなければならない。プロダクトがMSプロダクトキーを使用する場合、CustomPrdKeyInfoを無視することができる。
Figure 0004851703
SL_PRODKEYのカレントバージョン番号は、1である。コーラーは、dwVersionフィールドにおいて、SL_CURRENT_PRODLKEY_VERSIONを使用することができる。
dwNumOfApps
「入力」pguidAppsのアプリケーションGUIDの番号。
pguidApps
「入力」GUIDのアプリケーションのリスト。アプリケーションGUIDは、ライセンスがインストールされている対象のアプリケーションを表す。たとえば、オフィス(商標)セットアップ(Office Setup)プログラムは、この関数を呼び出して、pguidAppsにおいて各アプリケーションGUIDを規定することによって、Word(商標)、Excel(商標)のライセンスをインストールすることができる。pguidAppは、ここではNULLではない場合もある。
dwNumOfApps
「入力」ライセンスファイルの番号。
ppszLicFile
「入力」 ストリングのアレイにおけるファイル名。
リターン
成功または失敗。
SLUninstall
SLUninstall関数は、プロダクトのライセンスをアプリケーションからアンインストールする。
Figure 0004851703
パラメータ
hSLC
「入力」カレントSLクライアントコンテキストハンドルに対するハンドル。
pAppPrdKey
「入力」SLInstallに関する上記の定義を参照。
注釈
アプリケーションは、2つ以上のプロダクトライセンスを有することができる。たとえば、ユーザがオフィス(商標)スイートをアンインストールするとき、オフィス(商標)スイートのライセンスとWinWord(商標)との関連は除去されるべきであるが、WinWord(商標)スタンドアロンプロダクトからのライセンスは、除去されるべきではない。
SLUninstallが成功したとき:
このプロダクトキーに関連する情報は、除去される。(関連する情報について、上記のSLInstall参照)
アプリケーションGUIDに関連するプロダクトキーは、除去される。
プロダクトGUIDに関連するライセンスファイルは、依然として維持されることが好ましい。
リターン
成功または失敗。
SLConsumeRight
SLConsumeRight関数は、アプリケーションに、局所的に記憶されたライセンスに対する権利を調査または行使させる。この関数を呼び出すことは、ライセンスを、pszRightNameに記述された権利にバインドする。この権利をカレントコーラーによって行使することができない場合、アプリケーションは失敗である。関数が成功する場合、この権利に関連するアクションを実行することができる(使用カウントを減少させる、時間割り当てを減少させる、または何もしない、など)。
Figure 0004851703
パラメータ
hSLC
「入力」カレントSLクライアントコンテキストハンドルに対するハンドル。
pszRightName
「入力」権利の名称は、評価される必要がある。現行の設計では、権利の名称は、アプリケーションによって確定される。SLがライセンスをオープンし、権利の名称に基づいて、条件を評価する。
pAsyncContext
「入力/出力」pAsyncContextがNULLである場合、この関数は、同期モードにおいて作用し、そうでない場合、この関数は、非同期モードにおいて作用する。SL_ASYNC_CONTEXTは、コーラーにとって不明瞭であり、SLCによって管理される。
注釈
アプリケーションGUID(SLOpenにおいて規定される)に関連するすべてのライセンスは、1つの論理ライセンスにおいて概念的に組み合わされる。
権利の複数の消費可能な許可が存在する場合、より高い優先順位を有するライセンスが、まず消費される。
リターン
成功または失敗。
SLInitializeAsyncContext
SLInitializeAsyncContext関数は、非同期コールを作成するために、SLC機能(function)の非同期コンテキストを初期化する。
Figure 0004851703
パラメータ
pAsyncContext
「入力/出力」非同期コール情報を包含する非同期コンテキストに対するポインタ。
hEvent
「入力」同期に使用されるイベントオブジェクト。
pvReserved
「入力」拡張のためにリザーブされる。
リターン
成功または失敗。
SLCancelAsyncCall
SLCancelAsyncCall関数は、非同期コールを消去するために使用される。
Figure 0004851703
パラメータ
pAsyncContext
「入力」SL非同期コールの非同期コンテキスト。
fAbortCall
「入力」TRUEである場合、コールは、即座に消去される。FALSEである場合、SLがコールを完了するのを待機する。
注釈
コーラーが非同期コールの消去を要求するのに、打切りおよび非打切りの2つの方式がある。打切り消去では(fAbortCallがTRUEである)、SLCancelAsyncCall関数は、SLCからの応答を待機せずに、消去通知をSLCに送信し、非同期コールは、即座に消去される。非打切り消去では(fAbortCallがFALSEである)、SLCancelAsyncCall関数は、SLCに消去を通知し、コーラーは、SLCがコールを完了するのを待機する。
リターン
成功または失敗。
SLCompleteAsyncCall
SLCompelteAsyncCall関数は、SLC非同期コールを完了するために使用される。
Figure 0004851703
パラメータ
pAsyncContext
「入力」SL非同期コールの非同期コンテキスト。
phrAsyncCall
「出力」提出された非同期コールのエラーコード。
注釈
応答が到着する前に、コーラーがこの関数を呼び出す場合、コールは、E_SLC_ASYNC_CALL_PENDINGを戻す。バッファは、有効でなければならず、また、リターン値を受け取るように十分大きくなければならない。コールが、E_SLC_ASYNC_CALL_PENDINGを戻さない場合、このSLCompleteAsyncCallの呼出しは、非同期コールについて最終である。この関数の呼出し後、成功または失敗に関係なく、この非同期コールに割り付けられたすべてのリソースが、自由になる(SL_ASYNC_CONTEXT構造に対する新しいコールが開始されるまで、SLCompleteAsyncCall関数またはSLCancelAsyncCall関数に対するその後のコールは、結果を確定しない)。
リターン
値 意味
S_OK コールは、首尾よく完了された。
E_SLC_INVALID_ASYNC_CONTEXT 非同期コールのコンテキストは、有効ではない。
E_SLC_ASYNC_CALL_PENDING コールは、まだ完了していない。
E_SLC_CALL_CANCELLED コールは、消去された。
SLGetInformation
SLGetLicenseInfo機能は、様々な情報を得るために使用される。
Figure 0004851703
パラメータ
hSLC
「入力」カレントSLクライアントコンテキストハンドルに対するハンドル。
dwCategory
「入力」情報のカテゴリ。
[カテゴリ] [意味]
SL_CAT_RIGHTDATA バインドされた権利から情報を得る。ライセンスは、これらの権利のデータを得る前に、首尾よく消費されなければならない。
SL_CAT_DYNAMICPROPERTY ライセンスにはないが、実行時間において計算される情報を得る。たとえば、RemainingGracePeriodDaysである。権利は、コーリングの前に消費されなければならない。
Figure 0004851703
SL_CAT_SERVICEINFO ライセンスに依存しない情報を得る。コーラーは、ライセンスを消費せずに、このカテゴリの情報を得ることができる。
Figure 0004851703
SL_CAT_WINDOWS(登録商標)INFO ウィンドウズ(登録商標)ライセンスにおけるバインド権利プロパティである情報を得る。これは、コンポーネント化のためである。ウィンドウズ(登録商標)ライセンスは、SLサービスによって消費されており、SLサービスは、バインド権利プロパティを維持する。
SL_CAT_ENUMLICINFO SLEnumLicenseisが呼び出され、成功したとき、コーラーは、このカテゴリを使用することによって、列挙されたライセンスの情報について質問することができる。
pszKeyName
「入力」BuildNumberなどのキーの名称。
pdwType
「出力」データのタイプ。
値 意味
SL_DATATYPE_SZ ユニコードストリング
SL_DATATYPE_DWORD DWORD
SL_DATATYPE_BINARY バイナリ
pcbValue
「出力」割り付けられたバッファのサイズ(バイトで)。
ppbValue
「出力」成功である場合、データは、SLCによって割り付けられたバッファにおいて戻される。コーラーは、メモリを自由にするために、SLFreeMemoryを呼び出さなければならない。
リターン
成功または失敗。
SLAcquireLicense
SLAcquireLicense関数は、ユーザのオンラインライセンスを得るために使用される。SLCは、アプリケーションに関連するプロダクトキーを列挙して、最高プロダクト優先順位を有するプロダクトキーをピックアップする(SLInstall、登録情報参照)。次いで、SLは、ボックス外ライセンスからクリアリングハウスURL(Uniform Resource Locator)を得て、ライセンスを得るためにクリアリングハウスに接続される。
SLAcquireLicenseは、長いプロセスであることがある。アプリケーションは、pAsyncContextを規定することによって、非同期モードにおいてこの関数を呼び出すことができる(NULLは、同期モードを意味する)。
Figure 0004851703
パラメータ
hSLC
「入力」カレントSLクライアントコンテキストハンドルに対するハンドル。
pszProdKeyHash
「入力」プロダクトキーハッシュのストリング。プロダクトキーハッシュは、SLInstallが、ライセンス化サービスによって呼び出されて、維持されるときに創出される。
pszPublishingLicense
「入力」発行ライセンスのストリング。
pAsyncContext
「入力」SL非同期コールの非同期コンテキスト。
注釈
得られたライセンスは、相応してライセンスストアに記憶され、ライセンス情報も登録される(SLInstall参照)。
アプリケーションは、より多くのクライアント情報をライセンスに追加する必要がある可能性がある。アプリケーションは、情報をコールのpbAppDataに置くことができ、このデータは、クリアリングハウスに送信される。
この関数が成功したとき:
必要なバインド情報を規定されたライセンスサーバに送信した。
ライセンスサーバからライセンスを受け取る。
ライセンスをライセンスストアに記憶した。クライアントファイルを記憶する方式については、上記のSLInstallの記述を参照されたい。
リターン
成功または失敗。
SLGenerateTextChallenge
バンド外方式(電話、eメール、ファイルシェアなど)で、ライセンス発行者に経路指定されるチャレンジテキストを生成し、インストールする。
Figure 0004851703
パラメータ
hSLC
「入力」カレントSLクライアントコンテキストハンドルに対するハンドル。
pszProdKeyHash
「入力」プロダクトキーハッシュのストリング。プロダクトキーハッシュは、SLInstallが、ライセンス化サービスによって呼び出されて、維持されるときに創出される。
bSingleSession
「入力」ライセンス発行からの対応するテキスト応答が、このSLCセッションハンドルの寿命の間のみ有効であるかを規定する。
ppszChallenge
「出力」成功である場合、テキストチャレンジは、SLCによって割り付けられたバッファにおいて戻される。コーラーは、割り付けられたメモリを自由にするために、SLFreeMemoryを呼び出す必要がある。
リターン
成功または失敗。
SLDepositTextResponse
応答を、ライセンス化システムのインストールチャレンジテキストに付着させる(deposit)。条件付きアクセスコードでライセンスを活動化させるために使用される。ライセンスについて発行された未解決のテキストチャレンジが存在する場合のみ有効である。当初のライセンスが、チャレンジは単一セッションについてのみ有効であると規定した場合、このAPIは、SLCハンドルがクローズされる前、または応答の付着が失敗する前に、応答で呼び出されなければならない。
Figure 0004851703
パラメータ
hSLC
「入力」カレント行SLクライアントコンテキストハンドルに対するハンドル。
pszProdKeyHash
プロダクトキーハッシュのストリング。
pszChallenge
「入力」応答テキスト。
リターン
成功または失敗。
SLEnumLicense
SLEnumLicense関数は、インストールされたライセンスを列挙して、ライセンスから情報を得るために使用される。
Figure 0004851703
パラメータ
hSLC
「入力」カレントSLクライアントコンテキストハンドルに対するハンドル。
pguidApp
「入力」SLInstallを参照されたい。pguidAppがNULLではない場合、このGUIDに関連するライセンスが列挙される。GUIDがNULLである場合、すべてのライセンスが列挙される。
dwIndex
「入力」取り出されるライセンスのインデックス番号。この値は、SLEnumLicense関数に対する第1のコールについてゼロであり、その後のコールについて増大されるはずである。
関数は、任意の順序でライセンスを戻すことが可能である。
リターン
E_SL_NO_MORE_DATA−指定されたインデックスにライセンスはない。
注釈
SLEnumLicensesが成功した場合、SLGetInformationを呼び出すことによって、選択されたライセンス情報にアクセスすることができ、カテゴリは、SL_CAT_ENUMLICINFOである。
サンプル:
Figure 0004851703
SLFreeMemory
SLFreeMemory関数は、SLCによって割り付けられたメモリを自由にするために使用される。
Figure 0004851703
パラメータ
pvMemBlock
「入力」以前に割り付けられたメモリブロックが自由にされる。
リターン
なし
ソフトウェアの使用を制御するためのソフトウェアライセンス化APIの使用
ソフトウェアプロダクトが、ライセンスの権利の消費、およびライセンスからのデータの取り出しを含めて、ライセンス化に関する様々な目的に本発明のAPIを使用する。上記で留意したように、APIにより、ソフトウェアは、どのような権利がライセンスに存在するかを判定することが可能であるが、フィーチャへのアクセスを許可または否定する、動作を完全に停止するなど、その情報でどうすべきであるかを判定するのは、ソフトウェアの役割であることが好ましい。図4および5の以下の記述は、本発明のAPIがソフトウェアプロダクトによって使用される方式を示す。
図4は、アプリケーションが権利を「消費する(consume)」例示的なプロセスを示す。アプリケーションは、SLConsumeRightメソッドを呼び出す(402)。上記で解説したように、SLConsumeRight関数に対する引数は、ライセンス化サービスによって割り当てられるクライアントハンドル、および権利の名称(権利が属するソフトウェアのベンダによって割り当てられる)を含む。ライセンス化サービス(図2に示したサービス202)は、コールを受け取る(404)。次いで、サービスは、権利を包含するライセンスを特定し、ライセンスのバインディングおよび妥当性を検査する。上記で留意したように、ライセンスは、ライセンスストアに配置される。SLConsumeRightコールが属するアプリケーションソフトウェアに属するライセンスが、2つ以上存在する場合、適用可能なライセンスの1つを選択するために、優先順位規則が使用される。バインディングを検査することは、(1)ライセンスが、クライアントハンドルによって識別されたアプリケーションのプロダクトキーにバインドされる、および(2)ライセンスが、ソフトウェアが実行されているマシン(または、カレントマシンがメンバであるマシンのグループ)にバインドされることについて判定することを意味する。妥当性を検査することは、権利が満了していない(満了日を規定するライセンスの場合)こと、および権利の使用の最大数を超えていない(ライセンスが、権利を使用する(すなわち「消費する」)ことが可能である時間の最大数を規定する場合)ことについて判定することを含むことが可能である。
ライセンスおよび/または権利が、適切にバインドされ、かつ有効である場合(408)、ライセンスは、APIコールにおいて要求された権利にバインドされている(412)。(ライセンスをマシン、環境、およびプロダクトキーに「バインドすること」は、ライセンスが、どのマシンおよびプロダクトキーでライセンスを使用することができるかを規定することを意味する;ライセンスを権利に「バインドすること」は、消費関数が成功したことを意味し、権利は、特定のライセンスから消費されていることに留意されたい。この記述を通して、上記は、「バインドすること」の意味が適用される文脈から明らかになるであろう。)次いで、APIコールは、コーリングアプリケーションに戻り、コールが成功したことを示す(414)。ライセンスおよび/または権利が無効であることが判明した場合、またはマシン、環境、もしくはプロダクトIDに適切にバインドされていないことが判明した場合、SLConsumeRightコールは、コーリングアプリケーションに戻り、動作が失敗したことを示す(410)。
SLConsumeRightコールが、失敗して戻る場合、コールにおいて規定された権利は、ライセンスから消費することができず、その権利に関する情報は、コーリングアプリケーションにとって利用可能ではない。しかし、権利が首尾よく消費される場合、アプリケーションは、ライセンスへの権利のバインディングを使用して、権利に関する情報をライセンスから得ることができる。たとえば、ライセンスが、アプリケーションを実行することが可能であることを示す「run」と呼ばれる一般的な権利を包含することが可能である。しかし、「run」の権利について、ライセンスは、アプリケーションの使用に関するより具体的なパラメータを包含することが可能である。たとえば、ライセンスは、アプリケーションの特定のフィーチャ(たとえば、印刷、編集、保存など)がターンオンまたはターンオフされるべきであるかを規定することが可能であり、また、これらのフィーチャの使用について特有のパラメータを与えることが可能である(たとえば、特定のドメインにおいて実行されているマシン上でのみ、ドキュメントを保存することができる、または、印刷フィーチャは、30日間のみ使用することができる、など)。SL APIは、特定のタイプの情報が権利に関連付けられることを必要とせず、アプリケーションベンダが、任意のタイプの情報を権利に関連付けることができる機構を提供する。この情報は、その後、アプリケーションによって取り出し、解釈することができる。
権利が、図4に記述されたように首尾よく消費されたと想定すると、アプリケーションは、次いで、権利に関連する情報を取り出すことが可能である。この情報を取り出すプロセスを図5に示す。
まず、アプリケーションは、バインド権利についてSLGetInformationメソッドを呼び出す(502)。取り出すことのできる様々なタイプの情報は、SLGetInformationメソッドの記述に関連して上記で記述されている。次いで、ライセンス化サービスは、コールを受け取る(504)。サービスは、バインド権利を包含するライセンスファイルから、要求された情報を取り出す(506)。次いで、ライセンス化サービスは、この情報をバッファに置き(508)、コーリングアプリケーションに戻る(510)。次いで、コーリングアプリケーションは、バッファの内容を読み取り、取り出された情報に基づいて、必要と見なされるアクションであればどんなものでも実施する。
ライセンス化サービスは、SLGetInformationコールの一部として扱われている情報の意味を認識しない可能性があることに留意されたい。上記で解説したように、ライセンス化フレームワークは、ソフトウェアベンダが権利を創出することができ、かつ情報を権利に関連付けることができる機構を提供する。本発明は、権利に関連付けることができる情報のいずれの特定のタイプにも限定されない。情報をライセンスから取り出すとき、情報は、単に、ライセンス化サービスによってバッファのアプリケーションに渡される。次いで、アプリケーションは、取り出された情報を解釈して、その情報に基づいて、取るべきアクションを決定し、それ自体のセキュリティフィーチャを使用して、アプリケーションの決定を施行する(たとえば、取り出された情報に基づいて、アプリケーションが印刷フィーチャを不能にする場合、アプリケーションは、このフィーチャを実際に不能にするコード、およびおそらくは、ハッカーが、印刷フィーチャを不能にすることで改竄することを防止するコードを包含する)。
以上の例は、単に例示のために提供されており、決して本発明の限定と解釈されるべきではないことに留意されたい。本発明は、様々な実施形態に関して記述されているが、本明細書において使用される語は、限定の語ではなく、記述および例示の語であることを理解されたい。さらに、本発明は、本明細書において、特定の手段、材料、および実施形態に関して記述されているが、本発明は、本明細書において開示した具体例に限定されると解釈されるべきではない。むしろ、本発明は、請求項の範囲内にあるようなすべての機能的に等価な構造、方法、および使用に拡張される。当業者なら、本明細書の教示の利益を有することにより、多くの修正を実施することが可能であり、変更は、態様において、本発明の範囲および趣旨から逸脱せずに行うことが可能である。
本発明を適用できる実施形態の例示的なコンピューティング環境のブロック図である。 本発明を適用できる実施形態のシステムが、ライセンス化機能を実施し、かつソフトウェアプロダクトによって使用されるAPIを公開するアーキテクチャのブロック図である。 本発明を適用できる実施形態のソフトウェアプロダクトがライセンス化APIを使用する方法の流れ図である。 本発明を適用できる実施形態のソフトウェアプロダクトが権利を消費する方法の流れ図である。 本発明を適用できる実施形態のソフトウェアプロダクトが消費権利に関する情報を取り出す方法の流れ図である。
符号の説明
110 コンピュータ
135 アプリケーション
202 ソフトウェアライセンス化サービス
204 ライセンスストア
206 トラストストア
208 API

Claims (22)

  1. システムであって、
    複数のコンピュータプログラムによって使用可能なコンピュータ実行可能命令を有するライセンス化コンポーネントと、
    前記ライセンス化コンポーネントによって管理され、複数のライセンスを記憶するライセンスストアと、
    ここで、該各ライセンスは、前記各コンピュータプログラムに、
    前記ライセンス化コンポーネントを使用するための許可を付与する権利を含み、
    前記ライセンス化コンポーネントによって管理され、前記各ライセンスの前記権利に関連付けられたデータを記憶するトラストストアと、
    前記ライセンス化コンポーネントによって前記各コンピュータプログラムに公開される呼出し可能インターフェースと、
    ここで、前記呼出し可能インターフェースは、
    前記各コンピュータプログラムから前記権利の識別子を受け取り、前記権利を行使することができるかについて判定する権利消費メソッドと、
    前記各コンピュータプログラムから前記権利の識別子を受け取り、前記データを前記各コンピュータプログラムに提供する情報取出メソッドとを含み、
    前記ライセンス化コンポーネントは、
    前記各コンピュータプログラムが作成したAPIコールを処理する手段と、
    ここで、前記APIコールは、前記権利消費メソッドおよび前記情報取出メソッドを用いて作成されたメソッドであり、
    前記APIコールの処理結果を前記各コンピュータプログラムに戻す手段を含み、
    ここで、前記APIコールの処理結果は、前記権利を許可する有効なライセンスが存在しないと判定した場合、該権利が利用可能でないことを示す通知を含むことを特徴とするシステム。
  2. 前記呼出し可能インタフェースは、
    ハンドルを前記各コンピュータプログラムに提供するハンドルオープンメソッドをさらに具え、
    前記権利消費メソッドは、前記各コンピュータプログラムから前記ハンドルを受け取り、
    前記ハンドルを使用して、前記権利消費メソッドに対するコールが取り出されるものである前記各コンピュータプログラムを識別することを特徴とする請求項1記載のシステム。
  3. 前記権利消費メソッドにより、前記ライセンス化コンポーネントは、
    前記ライセンスストアが前記各コンピュータプログラムに関連付けられるかどうかと、
    どのライセンスが、前記各コンピュータプログラムに関連付けられる複数のライセンスの中から選択されるかを判定することと
    を具えた1つまたは複数のファクタに基づいて、前記ライセンスを選択することを特徴とする請求項1記載のシステム。
  4. 前記呼出し可能インタフェースは、
    非同期モードで処理されるコンテキストを初期化し、かつ前記コンテキストの識別子を前記各コンピュータプログラムに提供する非同期コンテキストイニシエータメソッドをさらに具え、
    前記権利消費メソッドは、前記各コンピュータプログラムから前記コンテキストの前記識別子を取り出し、前記コンテキストの前記識別子に応答して、権利消費要求を非同期モードで処理することを特徴とする請求項1記載のシステム。
  5. 前記権利消費メソッドは、前記権利が前記ライセンスにおいて識別されるかに基づいて、前記権利を行使することができるかについて判定することを特徴とする請求項1記載のシステム。
  6. 前記各コンピュータプログラムおよび前記ライセンス化コンポーネントが、本システム上の所定のマシン上で実行され、前記権利消費メソッドは、前記ライセンスが前記マシンにバインドされるかに
    基づいて、前記権利を行使することができるかについて判定することを特徴とする請求項1記載のシステム。
  7. 前記各コンピュータプログラムは、プロダクト識別子に関連付けられ、前記権利消費メソッドは、前記ライセンスが、コンピュータプログラムが実行されているマシン、または当該マシンがメンバであるクラスのマシンにバインドされるかに基づいて、前記権利を行使することができるかについて判定することを特徴とする請求項1記載のシステム。
  8. システムにおける方法であって、
    該システムは、ライセンス化コンポーネントと、ライセンスストアと、トラストストアと、呼出し可能インターフェースとを有し、前記ライセンス化コンポーネントは、複数のコンピュータプログラムによって使用可能なコンピュータ実行可能命令を有し、前記ライセンスストアは、前記ライセンス化コンポーネントによって管理され、複数のライセンスを記憶し、ここで、該各ライセンスは、前記各コンピュータプログラムに、前記ライセンス化コンポーネントを使用するための許可を付与する権利を含み、前記トラストストアは、前記ライセンス化コンポーネントによって管理され、前記各ライセンスの前記権利に関連付けられたデータを記憶し、前記呼出し可能インターフェースは、前記ライセンス化コンポーネントによって前記各コンピュータプログラムに公開され、前記呼出し可能インターフェースは、前記各コンピュータプログラムから前記権利の識別子を受け取り、前記権利を行使することができるかについて判定する権利消費メソッドと、前記各コンピュータプログラムから前記権利の識別子を受け取り、前記データを前記各コンピュータプログラムに提供する情報取出メソッドとを含み、
    該方法は、
    前記各コンピュータプログラムにおいて、APIコールを作成するステップと、
    ここで、前記APIコールは、前記権利消費メソッドおよび前記情報取出メソッドを用いて作成されたメソッドであり、
    前記ライセンス化コンポーネントにおいて、前記APIコールを処理し、該APIコールの処理結果を前記各コンピュータプログラムに戻すステップと
    を含み、ここで、前記APIコールの処理結果は、前記権利を許可する有効なライセンスが存在しないと判定した場合、該権利が利用可能でないことを示す通知を含むことを特徴とする方法。
  9. 前記ライセンス化コンポーネントを、前記ライセンス化コンポーネントの呼出し可能インタフェースの第1のメソッドに対する第1のコールを作成することによって呼び出し、
    前記第1のコールが、前記権利に関連付けられる識別子によってパラメータ化されるステップと、
    前記第1のコールに応答して、前記権利が行使可能であるかの指示を受け取るステップと、
    前記指示に従って、第1のふるまいまたは第2のふるまいを実行するステップと、
    ここで、前記第1のふるまいは、前記各コンピュータプログラムが実行されることを可能にすることを含み、前記第2のふるまいは、前記各コンピュータプログラムの実行を中止することを含み、
    を具えたことを特徴とする請求項8記載の方法。
  10. 前記第1のふるまいは、前記各コンピュータプログラムが、第1の組の関数を実施することを可能にすることをさらに含み、前記第2のふるまいは、前記第1の組の関数と同一ではない第2の組の関数を実施することを可能にすることをさらに含むことを特徴とする請求項9記載の方法。
  11. 前記呼出し可能インタフェースの第2のメソッドに対し、第2のコールを作成し、前記第2のメソッドが、前記権利の指示によってパラメータ化されるステップと、
    前記第2のコールに応答して、前記権利に関連付けられたデータを受け取るステップと
    をさらに具えたことを特徴とする請求項9記載の方法。
  12. 前記1組のデータに基づいて、前記各コンピュータプログラムの動作を指図するステップをさらに具えたことを特徴とする請求項10記載の方法。
  13. 前記呼出し可能インタフェースの第2のメソッドに対し、第2のコールを作成するステップと、
    前記第2のコールに応答して、ハンドルを受け取るステップとをさらに具え、
    前記第2のコールが、前記第1のコールの前に作成され、前記第1のコールが、前記ハンドルによってさらにパラメータ化されることを特徴とする請求項9記載の方法。
  14. 前記呼出し可能インタフェースの第2のメソッドに対し、第2のコールを作成するステップと、
    前記第2のコールに応答して、非同期モードで処理されるコンテキストを受け取るステップとをさらに備え、
    前記第2のコールが、前記第1のコールの前に作成され、前記第1のコールが、前記非同期コンテキストによってさらにパラメータ化され、前記各コンピュータプログラムが、前記第1のコールが非同期モードで処理されている間に、少なくとも1つのアクションを実施することを特徴とする請求項9記載の方法。
  15. 前記第1のメソッドは、
    前記ライセンスが、前記各コンピュータプログラムが実行されているマシンまたは環境にバインドされるかどうかと、
    前記ライセンスまたは権利が、前記各コンピュータプログラムに関連付けられたプロダクト識別子にバインドされるかどうかと、
    前記ライセンスまたは権利が満了したかどうかと、
    前記権利が、前記ライセンスにおいて規定された権利の回数を超えて消費されたかどうかを含む1つまたは複数のファクタに基づいて、前記権利が行使可能であるかについて判定することを特徴とする請求項9記載の方法。
  16. 前記各コンピュータプログラムから、前記各コンピュータプログラムの権利を識別する第1のメソッドのコールを受け取るステップと、
    前記権利が、前記ライセンスに包含され、かつ行使可能であることを判定するステップと、
    前記権利が行使可能であるという指示を前記各コンピュータプログラムに戻すステップと
    をさらに具えたことを特徴とする請求項8記載の方法。
  17. 前記指示は、前記権利を前記ライセンスにバインドすることを備えることを特徴とする請求項16記載の方法。
  18. 前記判定するステップは、前記権利が前記ライセンスにおいて規定されているかに基づくことを特徴とする請求項16記載の方法。
  19. 前記判定するステップは、前記ライセンスが、前記各コンピュータプログラムが実行されているマシンにバインドされるかに基づくことを特徴とする請求項16記載の方法。
  20. 前記判定するステップは、前記ライセンスまたは権利が、前記各コンピュータプログラムにバインドされるかに基づくことを特徴とする請求項16記載の方法。
  21. 前記判定するステップは、前記ライセンスまたは権利が満了していないかに基づくことを特徴とする請求項16記載の方法。
  22. 前記判定するステップは、前記ライセンスが限界を超える回数消費されているかに基づくことを特徴とする請求項16記載の方法。
JP2004302186A 2003-10-24 2004-10-15 コンピュータプログラムのライセンスの施行を支援するシステム Expired - Fee Related JP4851703B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/692,868 US10437964B2 (en) 2003-10-24 2003-10-24 Programming interface for licensing
US10/692,868 2003-10-24

Publications (2)

Publication Number Publication Date
JP2005129049A JP2005129049A (ja) 2005-05-19
JP4851703B2 true JP4851703B2 (ja) 2012-01-11

Family

ID=34394578

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004302186A Expired - Fee Related JP4851703B2 (ja) 2003-10-24 2004-10-15 コンピュータプログラムのライセンスの施行を支援するシステム

Country Status (18)

Country Link
US (2) US10437964B2 (ja)
EP (1) EP1526427A3 (ja)
JP (1) JP4851703B2 (ja)
KR (1) KR101231266B1 (ja)
CN (1) CN100468325C (ja)
AU (1) AU2004216596B2 (ja)
BR (1) BRPI0404376A (ja)
CA (1) CA2482182C (ja)
CO (1) CO5630045A1 (ja)
IL (1) IL164074A (ja)
MX (1) MXPA04009395A (ja)
MY (1) MY153272A (ja)
NO (1) NO331572B1 (ja)
NZ (1) NZ535532A (ja)
RU (1) RU2377634C2 (ja)
SG (1) SG111200A1 (ja)
TW (1) TWI465935B (ja)
ZA (1) ZA200407586B (ja)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030130953A1 (en) * 2002-01-09 2003-07-10 Innerpresence Networks, Inc. Systems and methods for monitoring the presence of assets within a system and enforcing policies governing assets
US10437964B2 (en) 2003-10-24 2019-10-08 Microsoft Technology Licensing, Llc Programming interface for licensing
US20070143228A1 (en) * 2005-12-15 2007-06-21 Microsoft Corporation Licensing matrix
US7921059B2 (en) * 2005-12-15 2011-04-05 Microsoft Corporation Licensing upsell
US20070250711A1 (en) * 2006-04-25 2007-10-25 Phonified Llc System and method for presenting and inputting information on a mobile device
EP1901190A1 (en) * 2006-09-15 2008-03-19 Sony DADC Austria AG Method and system for managing access to add-on data files
US11201868B2 (en) * 2006-10-23 2021-12-14 Nokia Technologies Oy System and method for adjusting the behavior of an application based on the DRM status of the application
US20080134348A1 (en) * 2006-12-05 2008-06-05 Microsoft Corporation Conditional policies in software licenses
KR101389928B1 (ko) 2007-01-30 2014-04-30 삼성전자주식회사 상호 배제 기능을 수행하기 위한 방법 및 이를 이용한drm 디바이스
US20090228904A1 (en) * 2008-03-04 2009-09-10 Microsoft Corporation Declarative support for asynchronous methods
JP5065100B2 (ja) * 2008-03-05 2012-10-31 京セラドキュメントソリューションズ株式会社 ライセンス管理システムおよびライセンス管理プログラム
JP5084577B2 (ja) 2008-03-24 2012-11-28 株式会社ソニー・コンピュータエンタテインメント 情報処理装置
US8538889B2 (en) * 2008-06-25 2013-09-17 Microsoft Corporation Application hierarchy and state manipulation
US8935528B2 (en) 2008-06-26 2015-01-13 Microsoft Corporation Techniques for ensuring authentication and integrity of communications
CN101534319B (zh) * 2008-11-11 2012-01-04 全旅通(北京)信息服务有限公司 一种解除指令间依赖关系的方法、系统和代理服务器
US20100293536A1 (en) * 2009-05-12 2010-11-18 Microsoft Corporation Enhanced product functionality based on user identification
US9424399B2 (en) 2009-05-12 2016-08-23 Microsoft Technology Licensing, Llc Availability of permission models in roaming environments
US20100293103A1 (en) * 2009-05-12 2010-11-18 Microsoft Corporation Interaction model to migrate states and data
JP5633302B2 (ja) * 2010-10-22 2014-12-03 株式会社リコー 情報管理装置、情報管理プログラム及び情報管理システム
US9165332B2 (en) * 2012-01-27 2015-10-20 Microsoft Technology Licensing, Llc Application licensing using multiple forms of licensing
EP2648125B1 (de) * 2012-03-05 2014-11-19 Steinberg Media Technologies GmbH Verfahren zur Autorisierung eines Programmablaufs
US10242164B2 (en) 2015-10-19 2019-03-26 Microsoft Technology Licensing, Llc Managing application specific feature rights
US20170213305A1 (en) * 2016-01-21 2017-07-27 Blackberry Limited Distribution of licenses for a third-party service operating in association with a licensed first-party service
CN106934254B (zh) * 2017-02-15 2020-05-26 中国银联股份有限公司 一种开源许可证的分析方法及装置
US11663337B2 (en) * 2018-07-20 2023-05-30 George Mason University Methods and systems for system call reduction
AU2020294004A1 (en) * 2019-06-11 2022-02-17 Net-Thunder, Llc Automatically deployed information technology (it) system and method with enhanced security

Family Cites Families (297)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5847820B2 (ja) 1975-12-17 1983-10-25 株式会社日立製作所 カラ−ジユゾウカン
US5023907A (en) 1988-09-30 1991-06-11 Apollo Computer, Inc. Network license server
US5155806A (en) 1989-03-15 1992-10-13 Sun Microsystems, Inc. Method and apparatus for displaying context sensitive help information on a display
GB8918553D0 (en) 1989-08-15 1989-09-27 Digital Equipment Int Message control system
US5287514A (en) 1990-01-08 1994-02-15 Microsoft Corporation Method and system for customizing a user interface in a computer system
JP3270102B2 (ja) * 1991-03-11 2002-04-02 ヒューレット・パッカード・カンパニー ライセンス付与方法及びシステム
EP0538464B1 (en) 1991-05-08 1998-12-30 Digital Equipment Corporation License management system
DE69228350T2 (de) 1991-05-08 1999-09-23 Digital Equipment Corp., Maynard Verwaltungssschnittstelle und format für lizenzverwaltungssystem
US5204897A (en) * 1991-06-28 1993-04-20 Digital Equipment Corporation Management interface for license management system
JP2967961B2 (ja) 1991-12-16 1999-10-25 インターナショナル・ビジネス・マシーンズ・コーポレイション 月別の予定表表示の提示方法
US5519606A (en) 1992-01-21 1996-05-21 Starfish Software, Inc. System and methods for appointment reconciliation
JPH0785216B2 (ja) 1992-02-07 1995-09-13 インターナショナル・ビジネス・マシーンズ・コーポレイション メニュー表示装置および方法
US5416895A (en) 1992-04-08 1995-05-16 Borland International, Inc. System and methods for improved spreadsheet interface with user-familiar objects
US6236396B1 (en) 1992-05-27 2001-05-22 Apple Computer, Inc. Method and apparatus for controlling a scheduler
US5544295A (en) 1992-05-27 1996-08-06 Apple Computer, Inc. Method and apparatus for indicating a change in status of an object and its disposition using animation
US5570109A (en) 1992-05-27 1996-10-29 Apple Computer, Inc. Schedule and to-do list for a pen-based computer system
US5659693A (en) 1992-08-27 1997-08-19 Starfish Software, Inc. User interface with individually configurable panel interface for use in a computer system
US5734915A (en) 1992-11-25 1998-03-31 Eastman Kodak Company Method and apparatus for composing digital medical imagery
US5500936A (en) 1993-03-12 1996-03-19 Asymetrix Corporation Multi-media slide presentation system with a moveable, tracked popup menu with button and title bars
US5588107A (en) 1993-03-22 1996-12-24 Island Graphics Corporation Method and apparatus for selectably expandable menus
JPH06342357A (ja) 1993-06-01 1994-12-13 Mitsubishi Electric Corp ユーザインタフェース方式
US5634128A (en) 1993-09-24 1997-05-27 International Business Machines Corporation Method and system for controlling access to objects in a data processing system
US5495411A (en) * 1993-12-22 1996-02-27 Ananda; Mohan Secure software rental system using continuous asynchronous password verification
US5885006A (en) 1994-02-08 1999-03-23 Plastic Bearings & Housings Australasia Pty. Ltd. Plain bearing assembly
JPH09510567A (ja) 1994-03-21 1997-10-21 オブジェクト テクノロジー ライセンシング コーポレイション ドキュメント・プロキシィ・フレームワーク
US5563946A (en) * 1994-04-25 1996-10-08 International Business Machines Corporation Method and apparatus for enabling trial period use of software products: method and apparatus for passing encrypted files between data processing systems
WO1995031773A1 (en) 1994-05-16 1995-11-23 Apple Computer, Inc. Switching between appearance/behavior themes in graphical user interfaces
US6404433B1 (en) 1994-05-16 2002-06-11 Apple Computer, Inc. Data-driven layout engine
US5555364A (en) 1994-08-23 1996-09-10 Prosoft Corporation Windowed computer display
WO1996009579A1 (en) 1994-09-22 1996-03-28 Izak Van Cruyningen Popup menus with directional gestures
US5588108A (en) 1994-09-27 1996-12-24 Micrografx, Inc. System and method for generating graphics charts
US5721847A (en) 1994-10-21 1998-02-24 Microsoft Corporation Method and system for linking controls with cells of a spreadsheet
US5629980A (en) * 1994-11-23 1997-05-13 Xerox Corporation System for controlling the distribution and use of digital works
JPH08263438A (ja) 1994-11-23 1996-10-11 Xerox Corp ディジタルワークの配給及び使用制御システム並びにディジタルワークへのアクセス制御方法
US5831606A (en) 1994-12-13 1998-11-03 Microsoft Corporation Shell extensions for an operating system
US5625783A (en) 1994-12-13 1997-04-29 Microsoft Corporation Automated system and method for dynamic menu construction in a graphical user interface
US5748964A (en) 1994-12-20 1998-05-05 Sun Microsystems, Inc. Bytecode program interpreter apparatus and method with pre-verification of data type restrictions
US5760773A (en) 1995-01-06 1998-06-02 Microsoft Corporation Methods and apparatus for interacting with data objects using action handles
US5893125A (en) 1995-01-27 1999-04-06 Borland International, Inc. Non-modal database system with methods for incremental maintenance
US5664208A (en) 1995-05-16 1997-09-02 Apple Computer, Inc. Methods and apparatuses for seamless compound document processing
US5619631A (en) 1995-06-07 1997-04-08 Binaryblitz Method and apparatus for data alteration by manipulation of representational graphs
US5940847A (en) 1995-06-07 1999-08-17 Microsoft Corporation System and method for automatically correcting multi-word data entry errors
US5778402A (en) 1995-06-07 1998-07-07 Microsoft Corporation Method and system for auto-formatting a document using an event-based rule engine to format a document as the user types
US5671412A (en) * 1995-07-28 1997-09-23 Globetrotter Software, Incorporated License management system for software applications
US5778404A (en) 1995-08-07 1998-07-07 Apple Computer, Inc. String inserter for pen-based computer systems and method for providing same
US5634100A (en) 1995-08-07 1997-05-27 Apple Computer, Inc. System and method for event parameter interdependence and adjustment with pen input
JP2986078B2 (ja) 1995-08-28 1999-12-06 インターナショナル・ビジネス・マシーンズ・コーポレイション カレンダーの表示方法及び表示装置
US5821936A (en) 1995-11-20 1998-10-13 Siemens Business Communication Systems, Inc. Interface method and system for sequencing display menu items
US20010011253A1 (en) * 1998-08-04 2001-08-02 Christopher D. Coley Automated system for management of licensed software
US5855006A (en) 1996-03-01 1998-12-29 Humware Personal activity scheduling apparatus
US5838321A (en) 1996-05-06 1998-11-17 Ast Research, Inc. User interface with embedded objects for personal computers and the like
US6493006B1 (en) 1996-05-10 2002-12-10 Apple Computer, Inc. Graphical user interface having contextual menus
US5933841A (en) 1996-05-17 1999-08-03 Ameritech Corporation Structured document browser
WO1997046962A1 (en) 1996-06-07 1997-12-11 At & T Corp. Finding an e-mail message to which another e-mail message is a response
US6085206A (en) 1996-06-20 2000-07-04 Microsoft Corporation Method and system for verifying accuracy of spelling and grammatical composition of a document
US6073108A (en) 1996-06-21 2000-06-06 Paul, Hastings, Janofsky & Walker Task-based classification and analysis system
US5899979A (en) 1996-07-22 1999-05-04 International Business Machines Corporation Method and system for automatically integrating scheduled work items onto an electronic calendar
US5828376A (en) 1996-09-23 1998-10-27 J. D. Edwards World Source Company Menu control in a graphical user interface
US6018343A (en) 1996-09-27 2000-01-25 Timecruiser Computing Corp. Web calendar architecture and uses thereof
US5842009A (en) 1996-09-30 1998-11-24 Apple Computer, Inc. System for automatically retrieving information relevant to a user's scheduled event
US5926806A (en) 1996-10-18 1999-07-20 Apple Computer, Inc. Method and system for displaying related information from a database
PT932865E (pt) 1996-10-25 2002-12-31 Schlumberger Systems & Service Utilizacao de linguagem de programacao de nivel elevado com um microcontrolador
JP3383170B2 (ja) 1996-10-29 2003-03-04 株式会社東芝 消費電力制限機能つきプロセッサ
US6012075A (en) 1996-11-14 2000-01-04 Microsoft Corporation Method and system for background grammar checking an electronic document
EP0847019A1 (en) 1996-12-04 1998-06-10 Koninklijke Philips Electronics N.V. Method and system for selecting an information item in an information processing system, and local station in such a system
US7248150B2 (en) 1997-01-29 2007-07-24 Directed Electronics, Inc. Menu-driven remote control transmitter
US5999938A (en) 1997-01-31 1999-12-07 Microsoft Corporation System and method for creating a new data structure in memory populated with data from an existing data structure
US6034683A (en) 1997-03-26 2000-03-07 Netscape Communications Corporation Time line for desktop metaphor
WO1998044407A1 (en) 1997-03-28 1998-10-08 Sun Microsystems, Inc. Method and apparatus for configuring sliding panels
US6118480A (en) 1997-05-05 2000-09-12 Flashpoint Technology, Inc. Method and apparatus for integrating a digital camera user interface across multiple operating modes
EP0881559B1 (en) 1997-05-28 2003-08-20 Siemens Aktiengesellschaft Computer system for protecting software and a method for protecting software
US5940078A (en) 1997-06-17 1999-08-17 Sun Microsystems, Inc. Method and apparatus for changing the appearance of icon images on a computer display monitor
DE19730112A1 (de) 1997-07-14 1999-01-21 Ericsson Telefon Ab L M Empfangs- und Speichervorrichtung für Übertragungseinheiten
US6384849B1 (en) 1997-07-14 2002-05-07 Microsoft Corporation Method for displaying controls in a system using a graphical user interface
US6188995B1 (en) * 1997-07-28 2001-02-13 Apple Computer, Inc. Method and apparatus for enforcing software licenses
GB2328539B (en) 1997-08-22 2001-04-18 Ibm Data charting
US6882354B1 (en) 1997-09-17 2005-04-19 Sun Microsystems, Inc. Scroll bars with user feedback
JP2001517822A (ja) 1997-09-19 2001-10-09 パク,ヒョ,ジョーン 独立的ソフトウェア登録サーバを利用したソフトウェア使用権管理システム
US6289502B1 (en) 1997-09-26 2001-09-11 Massachusetts Institute Of Technology Model-based software design and validation
US6433801B1 (en) 1997-09-26 2002-08-13 Ericsson Inc. Method and apparatus for using a touch screen display on a portable intelligent communications device
US5970466A (en) 1997-10-06 1999-10-19 Impromed, Inc. Graphical computer system and method for appointment scheduling
IL135439A (en) 1997-10-06 2004-09-27 Mark R Stiegemeier Single-document active user interface, method and system for implementing same
US6121965A (en) 1997-10-17 2000-09-19 Lucent Technologies Inc. User interface for graphical application tool
JP3377419B2 (ja) 1997-11-11 2003-02-17 インターナショナル・ビジネス・マシーンズ・コーポレーション 命令列生成方法及び装置、変換方法、及びコンピュータ
US6289505B1 (en) 1997-11-18 2001-09-11 Sun Microsystems, Inc. Method, apparatus and computer programmed product for binary re-optimization using a high level language compiler
US6216122B1 (en) 1997-11-19 2001-04-10 Netscape Communications Corporation Electronic mail indexing folder having a search scope and interval
US6188403B1 (en) 1997-11-21 2001-02-13 Portola Dimensional Systems, Inc. User-friendly graphics generator using direct manipulation
US5898436A (en) 1997-12-05 1999-04-27 Hewlett-Packard Company Graphical user interface for digital image editing
US5960406A (en) 1998-01-22 1999-09-28 Ecal, Corp. Scheduling system for use between users on the web
US6211879B1 (en) 1999-01-13 2001-04-03 Planetweb, Inc. System and method for navigating in multiple windows
JP2938420B2 (ja) 1998-01-30 1999-08-23 インターナショナル・ビジネス・マシーンズ・コーポレイション ファンクション選択方法及び装置、ファンクションを選択するための制御プログラムを格納した記憶媒体、オブジェクトの操作方法及び装置、オブジェクトを操作するための制御プログラムを格納した記憶媒体、複合アイコンを格納した記憶媒体
US6385596B1 (en) * 1998-02-06 2002-05-07 Liquid Audio, Inc. Secure online music distribution system
US6219670B1 (en) 1998-02-18 2001-04-17 International Business Machines Corporation Method and apparatus for filtering a table list before opening with a graphical user interface
US6067087A (en) 1998-03-03 2000-05-23 Microsoft Corporation Method for building menus during idle times
US6189146B1 (en) 1998-03-18 2001-02-13 Microsoft Corporation System and method for software licensing
GB2335822B (en) 1998-03-25 2003-09-10 Nokia Mobile Phones Ltd Context sensitive pop-up window for a portable phone
US6173316B1 (en) 1998-04-08 2001-01-09 Geoworks Corporation Wireless communication device with markup language based man-machine interface
US6226747B1 (en) 1998-04-10 2001-05-01 Microsoft Corporation Method for preventing software piracy during installation from a read only storage medium
US6115777A (en) * 1998-04-21 2000-09-05 Idea Corporation LOADRS instruction and asynchronous context switch
US6175363B1 (en) 1998-05-29 2001-01-16 Hewlett-Packard Company Method and system to provide functionality access based on user approach to network and system management tasks
US6301704B1 (en) 1998-06-16 2001-10-09 Silicon Graphics, Inc. Method, system, and computer program product for using static single assignment form as a program representation and a medium for performing global scalar optimization
US6133915A (en) 1998-06-17 2000-10-17 Microsoft Corporation System and method for customizing controls on a toolbar
US6101480A (en) 1998-06-19 2000-08-08 International Business Machines Electronic calendar with group scheduling and automated scheduling techniques for coordinating conflicting schedules
US6727919B1 (en) 1998-07-07 2004-04-27 International Business Machines Corporation Flexible mouse-driven method of user interface
US6414700B1 (en) 1998-07-21 2002-07-02 Silicon Graphics, Inc. System for accessing a large number of menu items using a zoned menu bar
US6307544B1 (en) 1998-07-23 2001-10-23 International Business Machines Corporation Method and apparatus for delivering a dynamic context sensitive integrated user assistance solution
US6359634B1 (en) 1998-08-25 2002-03-19 International Business Machines Corporation Method and computer program product for graphical user interface (GUI) organization control for extending GUI applications
GB2341052B (en) 1998-08-26 2003-05-14 Nokia Mobile Phones Ltd Wireless communication terminal
US6166738A (en) 1998-09-14 2000-12-26 Microsoft Corporation Methods, apparatus and data structures for providing a user interface, which exploits spatial memory in three-dimensions, to objects
US6373507B1 (en) 1998-09-14 2002-04-16 Microsoft Corporation Computer-implemented image acquistion system
US6232971B1 (en) 1998-09-23 2001-05-15 International Business Machines Corporation Variable modality child windows
US6480865B1 (en) 1998-10-05 2002-11-12 International Business Machines Corporation Facility for adding dynamism to an extensible markup language
EP1145157A4 (en) 1998-10-28 2007-10-17 Yahoo Inc METHOD FOR CONTROLLING INTERFACE OF INTERNET BROWSER AND CONTROLLABLE BROWSER INTERFACE
US6305012B1 (en) 1998-12-03 2001-10-16 International Business Machines Corporation Method and apparatus for dynamic selection of instructions for compiling using tags
US20030097361A1 (en) 1998-12-07 2003-05-22 Dinh Truong T Message center based desktop systems
US6546417B1 (en) 1998-12-10 2003-04-08 Intellinet, Inc. Enhanced electronic mail system including methods and apparatus for identifying mime types and for displaying different icons
US6353451B1 (en) 1998-12-16 2002-03-05 Intel Corporation Method of providing aerial perspective in a graphical user interface
US6635089B1 (en) 1999-01-13 2003-10-21 International Business Machines Corporation Method for producing composite XML document object model trees using dynamic data retrievals
US6493731B1 (en) 1999-01-27 2002-12-10 Xerox Corporation Document management system for recording and viewing the history of document use
US6459441B1 (en) 1999-03-03 2002-10-01 Dassault Systemes Software interface
US6369840B1 (en) 1999-03-10 2002-04-09 America Online, Inc. Multi-layered online calendaring and purchasing
US6429882B1 (en) 1999-03-15 2002-08-06 Sun Microsystems, Inc. User interface component
US6308322B1 (en) 1999-04-06 2001-10-23 Hewlett-Packard Company Method and apparatus for reduction of indirect branch instruction overhead through use of target address hints
US6466236B1 (en) 1999-04-08 2002-10-15 Palm, Inc. System and method for displaying and manipulating multiple calendars on a personal digital assistant
US6587881B1 (en) * 1999-04-09 2003-07-01 Microsoft Corporation Software server usage governor
US6697948B1 (en) * 1999-05-05 2004-02-24 Michael O. Rabin Methods and apparatus for protecting information
JP2001034775A (ja) 1999-05-17 2001-02-09 Fuji Photo Film Co Ltd 履歴画像表示方法
US7100112B1 (en) 1999-05-20 2006-08-29 Microsoft Corporation Dynamic properties of documents and the use of these properties
EP1777255A3 (en) 1999-06-11 2007-07-11 Sydney Hyman Image making medium
US6691281B1 (en) 1999-06-15 2004-02-10 Microsoft Corporation Publishing/republishing data tables in HTML documents while maintaining formatting and functionality for restoring back the data tables
US6456304B1 (en) 1999-06-30 2002-09-24 Microsoft Corporation Procedural toolbar user interface
US6621504B1 (en) 1999-08-06 2003-09-16 Avid Technology, Inc. Editor for effect tree parameters
EP1076279A1 (en) * 1999-08-13 2001-02-14 Hewlett-Packard Company Computer platforms and their methods of operation
US8015049B1 (en) 1999-08-18 2011-09-06 S.F. Ip Properties 61 Llc On-line appointment system
US6538673B1 (en) 1999-08-23 2003-03-25 Divine Technology Ventures Method for extracting digests, reformatting, and automatic monitoring of structured online documents based on visual programming of document tree navigation and transformation
GB2353679A (en) 1999-08-25 2001-02-28 Ibm Prioritized display of messages
US6405216B1 (en) 1999-09-17 2002-06-11 International Business Machines Corporation Internet-based application program interface (API) documentation interface
US6732330B1 (en) 1999-09-30 2004-05-04 International Business Machines Corporation Scripting language blocks to support multiple scripting languages in a single web page
US7082567B1 (en) 1999-10-18 2006-07-25 Rose Blush Software Llc Enhanced human computer user interface system for searching and browsing documents
US6578192B1 (en) 1999-10-20 2003-06-10 International Business Machines Corporation Method and system for supporting dynamic document content expressed in a component-level language
US7152207B1 (en) 1999-11-05 2006-12-19 Decentrix Inc. Method and apparatus for providing conditional customization for generating a web site
US6734880B2 (en) 1999-11-24 2004-05-11 Stentor, Inc. User interface for a medical informatics systems
US6924797B1 (en) 1999-11-30 2005-08-02 International Business Machines Corp. Arrangement of information into linear form for display on diverse display devices
US20030088516A1 (en) * 1999-12-21 2003-05-08 Eric B. Remer Software anti-piracy licensing
US6686938B1 (en) 2000-01-05 2004-02-03 Apple Computer, Inc. Method and system for providing an embedded application toolbar
US6904449B1 (en) 2000-01-14 2005-06-07 Accenture Llp System and method for an application provider framework
US6621508B1 (en) 2000-01-18 2003-09-16 Seiko Epson Corporation Information processing system
ATE364874T1 (de) 2000-04-07 2007-07-15 Viatech Technologies Inc System und eingebetteter lizenzsteuerungsmechanismus für die erzeugung und verteilung von dateien mit digitalem inhalt sowie erzwingung von lizenziertem gebrauch von dateien mit digitalem inhalt
US6618732B1 (en) 2000-04-11 2003-09-09 Revelink, Inc. Database query handler supporting querying of textual annotations of relations between data objects
US20030206646A1 (en) 2000-04-24 2003-11-06 Brackett Charles C. Imaging system having means for creating, managing and selecting from list of exam descriptions
US7249325B1 (en) 2000-05-11 2007-07-24 Palmsource, Inc. Automatically centered scrolling in a tab-based user interface
US6785868B1 (en) 2000-05-31 2004-08-31 Palm Source, Inc. Method and apparatus for managing calendar information from a shared database and managing calendar information from multiple users
US7346848B1 (en) 2000-06-21 2008-03-18 Microsoft Corporation Single window navigation methods and systems
US7111238B1 (en) 2000-06-23 2006-09-19 Microsoft Corporation System and method for maintaining text formatting consistency within an electronic document
WO2002005079A2 (en) 2000-07-07 2002-01-17 Openwave Systems, Inc. Graphical user interface features of a browser in a hand-held wireless communication device
US7178098B2 (en) 2000-07-13 2007-02-13 International Business Machines Corporation Method and system in an electronic spreadsheet for handling user-defined options in a copy/cut—paste operation
US6583798B1 (en) 2000-07-21 2003-06-24 Microsoft Corporation On-object user interface
US6871195B2 (en) 2000-09-13 2005-03-22 E-Promentor Method and system for remote electronic monitoring and mentoring of computer assisted performance support
JP3530475B2 (ja) 2000-09-25 2004-05-24 三洋電機株式会社 折畳式通信端末装置および情報表示方法
US6988241B1 (en) 2000-10-16 2006-01-17 International Business Machines Corporation Client side, web-based spreadsheet
US6825859B1 (en) 2000-11-13 2004-11-30 Corel Corporation System and method for processing content changes of on-screen items
US7020848B2 (en) 2000-12-20 2006-03-28 Eastman Kodak Company Comprehensive, multi-dimensional graphical user interface using picture metadata for navigating and retrieving pictures in a picture database
US6925605B2 (en) 2000-12-28 2005-08-02 International Business Machines Corporation Collating table for email
US7266768B2 (en) 2001-01-09 2007-09-04 Sharp Laboratories Of America, Inc. Systems and methods for manipulating electronic information using a three-dimensional iconic representation
US6801227B2 (en) 2001-01-16 2004-10-05 Siemens Medical Solutions Health Services Inc. System and user interface supporting user navigation and concurrent application operation
US20020149623A1 (en) 2001-01-26 2002-10-17 Alan West State and data driven dynamic menu and toolbar architecture
JP2004519047A (ja) 2001-02-15 2004-06-24 スフィッス メール インコーポレーテッド 電子メール・メッセージ・システム
US7110936B2 (en) 2001-02-23 2006-09-19 Complementsoft Llc System and method for generating and maintaining software code
US6906717B2 (en) 2001-02-27 2005-06-14 Microsoft Corporation Multiple chart user interface
US20020133557A1 (en) 2001-03-03 2002-09-19 Winarski Donna Ilene Robinson Sorting e-mail
US6964025B2 (en) 2001-03-20 2005-11-08 Microsoft Corporation Auto thumbnail gallery
EP1243998B1 (en) 2001-03-21 2017-04-19 Excalibur IP, LLC A technique for license management and online software license enforcement
GB2373604B (en) 2001-03-23 2004-10-27 Ibm A method and system for controlling use of software programs
US7174514B2 (en) 2001-03-28 2007-02-06 Siebel Systems, Inc. Engine to present a user interface based on a logical structure, such as one for a customer relationship management system, across a web site
TW502180B (en) 2001-03-30 2002-09-11 Ulead Systems Inc Previewing method of editing multimedia effect
CN1237804C (zh) 2001-04-19 2006-01-18 松下电器产业株式会社 许可证管理系统、许可证管理设备、中继设备和终端设备
US20030098891A1 (en) 2001-04-30 2003-05-29 International Business Machines Corporation System and method for multifunction menu objects
US20020163538A1 (en) 2001-05-07 2002-11-07 Koninklijke Philips Electronics N.V. Electronic mail guide
US7039647B2 (en) 2001-05-10 2006-05-02 International Business Machines Corporation Drag and drop technique for building queries
US7334196B2 (en) 2001-06-25 2008-02-19 Siemens Medical Solutions Health Services Corporation User interface display navigation and item selection system
US6826729B1 (en) 2001-06-29 2004-11-30 Microsoft Corporation Gallery user interface controls
US20030011638A1 (en) 2001-07-10 2003-01-16 Sun-Woo Chung Pop-up menu system
US7620911B2 (en) 2001-07-12 2009-11-17 Autodesk, Inc. Collapsible dialog window
US20030066025A1 (en) 2001-07-13 2003-04-03 Garner Harold R. Method and system for information retrieval
US7251776B2 (en) 2001-07-13 2007-07-31 Netview Technologies, Inc. System and method for efficiently and flexibly utilizing spreadsheet information
GB2377858B (en) 2001-07-19 2005-04-20 Inventec Appliances Corp Method for simplifying cellular phone menu selection
US6999068B2 (en) 2001-08-21 2006-02-14 Hewlett-Packard Development Company, L.P. System and method for enabling users to edit graphical images
US7046848B1 (en) 2001-08-22 2006-05-16 Olcott Peter L Method and system for recognizing machine generated character glyphs and icons in graphic images
EP1436693A2 (en) * 2001-08-29 2004-07-14 Globespanvirata, Inc. Key interface for secure object manipulation
US20030043211A1 (en) 2001-09-05 2003-03-06 Kremer Karl Heinz Image-forming system having a graphic user interface with print option representation using thumbnail images
US20030076957A1 (en) * 2001-10-18 2003-04-24 Nadarajah Asokan Method, system and computer program product for integrity-protected storage in a personal communication device
JP2003141020A (ja) 2001-10-31 2003-05-16 Toshiba Tec Corp 情報保管出力システム及び情報保管出力サービス
US7032210B2 (en) 2001-11-11 2006-04-18 International Business Machines Corporation Method and system for generating program source code of a computer application from an information model
US7359936B2 (en) 2001-11-27 2008-04-15 International Business Machines Corporation Method and apparatus for electronic mail interaction with grouped message types
US7363590B2 (en) 2001-11-27 2008-04-22 International Business Machines Corporation Calendar bar interface for electronic mail interaction
US6801230B2 (en) 2001-12-18 2004-10-05 Stanley W. Driskell Method to display and manage computer pop-up controls
AU2003201491A1 (en) 2002-01-08 2003-07-24 Sap Aktiengesellschaft Enhanced email management system
US7039596B1 (en) 2002-01-18 2006-05-02 America Online, Inc. Calendar overlays
US6947928B2 (en) 2002-02-26 2005-09-20 International Business Machines Corporation Graphical user interface for building queries with hierarchical conditions
US6850255B2 (en) 2002-02-28 2005-02-01 James Edward Muschetto Method and apparatus for accessing information, computer programs and electronic communications across multiple computing devices using a graphical user interface
US7003730B2 (en) 2002-03-08 2006-02-21 International Business Machines Corporation Graphical user interface to build event-based dynamic searches or queries using event profiles
US20040117451A1 (en) 2002-03-22 2004-06-17 Chung Michael Myung-Jin Methods and systems for electronic mail internet target and direct marketing and electronic mail banner
US20030195937A1 (en) 2002-04-16 2003-10-16 Kontact Software Inc. Intelligent message screening
US20040012633A1 (en) 2002-04-26 2004-01-22 Affymetrix, Inc., A Corporation Organized Under The Laws Of Delaware System, method, and computer program product for dynamic display, and analysis of biological sequence data
WO2003098500A1 (en) 2002-05-16 2003-11-27 Decision Curve Limited Method and apparatus for automatically producing spreadsheet-based models
US6972762B2 (en) 2002-05-21 2005-12-06 Microsoft Corporation System and method for interactive grouping of pie chart slices
US20040100504A1 (en) 2002-05-24 2004-05-27 Jored Sommer Item selection systems and methods of displaying the same
US7434163B2 (en) 2002-05-31 2008-10-07 Sap Aktiengesellschaft Document structures for delta handling in server pages
US20030227487A1 (en) 2002-06-01 2003-12-11 Hugh Harlan M. Method and apparatus for creating and accessing associative data structures under a shared model of categories, rules, triggers and data relationship permissions
US7191411B2 (en) 2002-06-06 2007-03-13 Moehrle Armin E Active path menu navigation system
GB2389499B (en) 2002-06-06 2005-09-28 Focus Solutions Group Plc Electronic data capture and verification
EP1376337A1 (en) 2002-06-12 2004-01-02 Commerce One Operations, Inc. Action/command/business object application framework
US20040003351A1 (en) 2002-06-28 2004-01-01 Microsoft Corporation Navigating a resource browser session
GB2391148B (en) 2002-07-19 2006-01-04 Autodesk Canada Inc Selecting functions via a graphical user interface
US7814055B2 (en) 2002-08-28 2010-10-12 Apple Inc. Method of managing a calendar and a computer system for implementing that method
EP1546972A1 (en) 2002-09-09 2005-06-29 Apple Computer, Inc. A computer program comprising a plurality of calendars
US20040056894A1 (en) 2002-09-19 2004-03-25 Igor Zaika System and method for describing and instantiating extensible user interfaces
US7386535B1 (en) 2002-10-02 2008-06-10 Q.Know Technologies, Inc. Computer assisted and/or implemented method for group collarboration on projects incorporating electronic information
US20040230508A1 (en) 2002-10-29 2004-11-18 Minnis Raymond Albert System for generating financial statements using templates
US20040100505A1 (en) 2002-11-21 2004-05-27 Cazier Robert Paul System for and method of prioritizing menu information
US20040107197A1 (en) 2002-11-29 2004-06-03 Shen Yu Yong System, method and user interface allowing customized portfolio management
CA2414053A1 (en) 2002-12-09 2004-06-09 Corel Corporation System and method for manipulating a document object model
US7360174B2 (en) 2002-12-19 2008-04-15 Microsoft Corporation Contact user interface
US7376698B2 (en) 2002-12-20 2008-05-20 Sap Ag System for preserving scripting objects and cloning the objects to a new document in response to a reload of the new document
US20040133854A1 (en) 2003-01-08 2004-07-08 Black Karl S. Persistent document object model
US20060111931A1 (en) 2003-01-09 2006-05-25 General Electric Company Method for the use of and interaction with business system transfer functions
US20040186775A1 (en) 2003-01-29 2004-09-23 Margiloff William A. Systems and methods for providing an improved toolbar
US7212208B2 (en) 2003-02-25 2007-05-01 Bahram Khozai System and method to present and display multiple data using enhanced box charts
US7539985B2 (en) 2003-02-26 2009-05-26 Bea Systems, Inc. Systems and methods for dynamic component versioning
US9003295B2 (en) 2003-03-17 2015-04-07 Leo Martin Baschy User interface driven access control system and method
US6983889B2 (en) 2003-03-21 2006-01-10 Home Comfort Zones, Inc. Forced-air zone climate control system for existing residential houses
US7823077B2 (en) 2003-03-24 2010-10-26 Microsoft Corporation System and method for user modification of metadata in a shell browser
US7188308B2 (en) 2003-04-08 2007-03-06 Thomas Weise Interface and method for exploring a collection of data
US7328409B2 (en) 2003-04-17 2008-02-05 International Business Machines Corporation Method, system, and computer program product for user customization of menu items
US7337185B2 (en) 2003-04-30 2008-02-26 Yahoo! Inc. System and method for providing an improved graphical user interface for search
JP4347123B2 (ja) 2003-05-02 2009-10-21 キヤノン株式会社 文書処理システムおよび文書処理方法およびコンピュータが読取り可能な記憶媒体およびプログラム
US7567964B2 (en) 2003-05-08 2009-07-28 Oracle International Corporation Configurable search graphical user interface and engine
US7962522B2 (en) 2003-06-03 2011-06-14 Norris Iii Forbes Holten Flexible, dynamic menu-based web-page architecture
US7178101B2 (en) 2003-06-24 2007-02-13 Microsoft Corporation Content template system
US9715678B2 (en) 2003-06-26 2017-07-25 Microsoft Technology Licensing, Llc Side-by-side shared calendars
US7716593B2 (en) 2003-07-01 2010-05-11 Microsoft Corporation Conversation grouping of electronic mail records
US7392249B1 (en) 2003-07-01 2008-06-24 Microsoft Corporation Methods, systems, and computer-readable mediums for providing persisting and continuously updating search folders
US20050005249A1 (en) 2003-07-01 2005-01-06 Microsoft Corporation Combined content selection and display user interface
US20050055433A1 (en) 2003-07-11 2005-03-10 Boban Mathew System and method for advanced rule creation and management within an integrated virtual workspace
US7027463B2 (en) 2003-07-11 2006-04-11 Sonolink Communications Systems, Llc System and method for multi-tiered rule filtering
US20050044500A1 (en) 2003-07-18 2005-02-24 Katsunori Orimoto Agent display device and agent display method
US20050021504A1 (en) 2003-07-22 2005-01-27 Charles Atchison Methods, systems, and computer program products for querying a database for employee data and organizing the obtained data
JP2005056233A (ja) 2003-08-06 2005-03-03 Nec Corp 移動体通信装置、移動体通信装置の電子メールの受信動作方法及びその電子メールの受信動作プログラム
US7472286B2 (en) * 2003-08-29 2008-12-30 Microsoft Corporation Selectively authorizing software functionality after installation of the software
US7325204B2 (en) 2003-08-29 2008-01-29 Yahoo! Inc. Slideout windows
US20050144241A1 (en) 2003-10-17 2005-06-30 Stata Raymond P. Systems and methods for a search-based email client
US20050086135A1 (en) 2003-10-20 2005-04-21 Li-Chin Lu Automatic bookkeeping system
US6990637B2 (en) 2003-10-23 2006-01-24 Microsoft Corporation Graphical user interface for 3-dimensional view of a data collection based on an attribute of the data
US7346769B2 (en) 2003-10-23 2008-03-18 International Business Machines Corporation Method for selective encryption within documents
US10437964B2 (en) 2003-10-24 2019-10-08 Microsoft Technology Licensing, Llc Programming interface for licensing
US20050117179A1 (en) 2003-11-06 2005-06-02 Tatsuo Ito Output information providing method, output information providing system, document outputting method, and document outputting system
US7996514B2 (en) 2003-12-23 2011-08-09 Microsoft Corporation System and method for sharing information based on proximity
US20050172262A1 (en) 2004-01-30 2005-08-04 Ahika Corporation Site menu - browser toolbar-based user interface for navigating web site pages
US7856596B2 (en) 2004-02-17 2010-12-21 Microsoft Corporation Method and system for separation of content and layout definitions in a display description
US7469385B2 (en) 2004-02-20 2008-12-23 Microsoft Corporation Methods and systems for abstraction of logical editing operations
EP1725957A4 (en) 2004-03-15 2009-06-10 Yahoo Inc SEARCH SYSTEMS AND METHODS WITH INTEGRATION OF USER NANNOTATION
US7574674B2 (en) 2004-04-02 2009-08-11 Microsoft Corporation Method for controlling filename display for image and video file types
US20060080408A1 (en) 2004-04-30 2006-04-13 Vulcan Inc. Smart home control of electronic devices
US20050278656A1 (en) 2004-06-10 2005-12-15 Microsoft Corporation User control for dynamically adjusting the scope of a data set
US7954050B2 (en) 2004-06-25 2011-05-31 Icesoft Technologies Canada Corp. Systems and methods for rendering and increasing portability of document-based user interface software objects
US7720845B2 (en) 2004-08-13 2010-05-18 Yahoo! Inc. Systems and methods for updating query results based on query deltas
US8255828B2 (en) 2004-08-16 2012-08-28 Microsoft Corporation Command user interface for displaying selectable software functionality controls
US9015621B2 (en) 2004-08-16 2015-04-21 Microsoft Technology Licensing, Llc Command user interface for displaying multiple sections of software functionality controls
US8117542B2 (en) 2004-08-16 2012-02-14 Microsoft Corporation User interface for displaying selectable software functionality controls that are contextually relevant to a selected object
US7505954B2 (en) 2004-08-18 2009-03-17 International Business Machines Corporation Search bar with intelligent parametric search statement generation
US8239375B2 (en) 2004-08-31 2012-08-07 Research In Motion Limited Method of searching for personal information management (PIM) information and handheld electronic device employing the same
US20090094332A1 (en) 2004-09-02 2009-04-09 Zimbra, Inc. System and method for enabling offline use of email through a browser interface
US8126895B2 (en) 2004-10-07 2012-02-28 Computer Associates Think, Inc. Method, apparatus, and computer program product for indexing, synchronizing and searching digital data
US20060095865A1 (en) 2004-11-04 2006-05-04 Rostom Mohamed A Dynamic graphical user interface for a desktop environment
US8402384B2 (en) 2004-11-09 2013-03-19 Research In Motion Limited Dynamic bar oriented user interface
US20080263101A1 (en) 2004-11-12 2008-10-23 Justsystems Corporation Data Processing Device and Data Processing Method
CN100458774C (zh) 2004-11-29 2009-02-04 国际商业机器公司 文档编辑器及文档编辑方法
US7546522B2 (en) 2004-12-20 2009-06-09 Microsoft Corporation Method, system, and computer-readable medium for applying a global formatting scheme to a chart in an electronic document
US20060173824A1 (en) 2005-02-01 2006-08-03 Metalincs Corporation Electronic communication analysis and visualization
US7921372B2 (en) 2005-03-25 2011-04-05 Microsoft Corporation System and method for pinning tabs in a tabbed browser
US7530029B2 (en) 2005-05-24 2009-05-05 Microsoft Corporation Narrow mode navigation pane
JP2007006373A (ja) 2005-06-27 2007-01-11 Konica Minolta Business Technologies Inc 書類データ管理システム、画像形成装置、書類データ管理方法、およびコンピュータプログラム
US7627561B2 (en) 2005-09-12 2009-12-01 Microsoft Corporation Search and find using expanded search scope
US8627222B2 (en) 2005-09-12 2014-01-07 Microsoft Corporation Expanded search and find user interface
US7739259B2 (en) 2005-09-12 2010-06-15 Microsoft Corporation Integrated search and find user interface
US7484180B2 (en) 2005-11-07 2009-01-27 Microsoft Corporation Getting started experience
US7975224B2 (en) 2005-12-21 2011-07-05 Xerox Corporation WYSIWYG multifunction device finishing options
JP2007287136A (ja) 2006-03-23 2007-11-01 Oce Technologies Bv オブジェクトの順序付けられた集合に対する処理動作をプログラミングするためのシステム
US20070240057A1 (en) 2006-04-11 2007-10-11 Microsoft Corporation User interface element for displaying contextual information
US8209308B2 (en) 2006-05-01 2012-06-26 Rueben Steven L Method for presentation of revisions of an electronic document
US8605090B2 (en) 2006-06-01 2013-12-10 Microsoft Corporation Modifying and formatting a chart using pictorially provided chart elements
US20080034304A1 (en) 2006-08-02 2008-02-07 Feuerbacher Frank P Method, System, and Program Product for Focus Switching Delay in a Graphical User Interface
US7805705B2 (en) 2006-08-04 2010-09-28 Apple Inc. Graphically depicting program code depth
US7793226B2 (en) 2006-08-14 2010-09-07 International Business Machines Corporation Method and system for grouping and stacking tab user interface objects with icon status indicators
US8762880B2 (en) 2007-06-29 2014-06-24 Microsoft Corporation Exposing non-authoring features through document status information in an out-space user interface
US8201103B2 (en) 2007-06-29 2012-06-12 Microsoft Corporation Accessing an out-space user interface for a document editor program
US8484578B2 (en) 2007-06-29 2013-07-09 Microsoft Corporation Communication between a document editor in-space user interface and a document editor out-space user interface

Also Published As

Publication number Publication date
US20200034516A1 (en) 2020-01-30
NZ535532A (en) 2006-11-30
EP1526427A2 (en) 2005-04-27
KR20050039537A (ko) 2005-04-29
CA2482182A1 (en) 2005-04-24
MXPA04009395A (es) 2005-05-16
ZA200407586B (en) 2005-05-25
CA2482182C (en) 2017-03-28
SG111200A1 (en) 2005-05-30
RU2377634C2 (ru) 2009-12-27
CN1609802A (zh) 2005-04-27
NO331572B1 (no) 2012-01-30
JP2005129049A (ja) 2005-05-19
TW200515243A (en) 2005-05-01
AU2004216596B2 (en) 2010-03-11
EP1526427A3 (en) 2005-07-06
CN100468325C (zh) 2009-03-11
MY153272A (en) 2015-01-29
AU2004216596A1 (en) 2005-05-12
TWI465935B (zh) 2014-12-21
IL164074A0 (en) 2005-12-18
IL164074A (en) 2010-06-30
NO20044099L (no) 2005-04-25
KR101231266B1 (ko) 2013-02-07
CO5630045A1 (es) 2006-04-28
US20050091168A1 (en) 2005-04-28
BRPI0404376A (pt) 2005-06-21
US10437964B2 (en) 2019-10-08
RU2004131031A (ru) 2006-04-10

Similar Documents

Publication Publication Date Title
JP4851703B2 (ja) コンピュータプログラムのライセンスの施行を支援するシステム
US7472286B2 (en) Selectively authorizing software functionality after installation of the software
JP4718753B2 (ja) コードアセンブリに関連する許可要求を使用して許可セットをフィルタすること
CN101208928B (zh) 运行具有低权限的因特网应用程序
US20090222879A1 (en) Super policy in information protection systems
US10133875B2 (en) Digital rights management system implementing version control
WO2014199464A1 (ja) 開発環境システム、開発環境装置、開発環境提供方法及びプログラム
JP2005129066A (ja) オペレーティングシステムリソース保護
TW200419442A (en) System architecture and related methods for dynamically adding software components to extend functionality of system processes
KR20050039634A (ko) 소프트웨어 제품의 애플리케이션 식별자
WO2009148647A2 (en) Centralized enforcement of name-based computer system security rules
JP2005259126A (ja) コードのメータリングされた実行
US7647629B2 (en) Hosted code runtime protection
US7076557B1 (en) Applying a permission grant set to a call stack during runtime
US7203697B2 (en) Fine-grained authorization using mbeans
US20210286767A1 (en) Architecture, method and apparatus for enforcing collection and display of computer file metadata
US20070294530A1 (en) Verification System and Method for Accessing Resources in a Computing Environment
KR20090097174A (ko) 소프트웨어 라이센스에서의 조건부 정책
JP2006107505A (ja) アクセス認可のapi
US20070038572A1 (en) Method, system and computer program for metering software usage
JP2004013832A (ja) コンピュータセキュリティシステム、コンピュータセキュリティ方法、及び記録媒体
CN115270117A (zh) 依于子程序执行的应用程序控管方法
KR100696752B1 (ko) 비인가응용프로그램의 실행통제방법 및 상기 방법이 기록된 컴퓨터로 읽을 수 있는 기록매체

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071012

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101210

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110308

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110610

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110912

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: 20111018

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: 20111021

R150 Certificate of patent or registration of utility model

Ref document number: 4851703

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: 20141028

Year of fee payment: 3

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

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

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

LAPS Cancellation because of no payment of annual fees