JP3898769B2 - コミュニケーションシステムにおけるコンピュータ間で情報を処理するための方法 - Google Patents

コミュニケーションシステムにおけるコンピュータ間で情報を処理するための方法 Download PDF

Info

Publication number
JP3898769B2
JP3898769B2 JP07930293A JP7930293A JP3898769B2 JP 3898769 B2 JP3898769 B2 JP 3898769B2 JP 07930293 A JP07930293 A JP 07930293A JP 7930293 A JP7930293 A JP 7930293A JP 3898769 B2 JP3898769 B2 JP 3898769B2
Authority
JP
Japan
Prior art keywords
program
data
instructions
file
user
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
JP07930293A
Other languages
English (en)
Other versions
JPH06295286A (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.)
Addison M Fischer
Original Assignee
Addison M Fischer
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 Addison M Fischer filed Critical Addison M Fischer
Publication of JPH06295286A publication Critical patent/JPH06295286A/ja
Application granted granted Critical
Publication of JP3898769B2 publication Critical patent/JP3898769B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/606Protecting data by securing the transmission between two devices or processes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • 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
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • 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
    • 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/126Applying verification of the received information the source of the received data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/56Financial cryptography, e.g. electronic payment or e-cash
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • 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
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Business, Economics & Management (AREA)
  • Health & Medical Sciences (AREA)
  • Strategic Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Human Resources & Organizations (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Data Mining & Analysis (AREA)
  • Operations Research (AREA)
  • Economics (AREA)
  • General Business, Economics & Management (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • Marketing (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Computer And Data Communications (AREA)
  • Storage Device Security (AREA)
  • Debugging And Monitoring (AREA)
  • Information Transfer Between Computers (AREA)
  • Plural Heterocyclic Compounds (AREA)
  • Spinning Or Twisting Of Yarns (AREA)

Description

【0001】
この発明は一人のコンピュータ使用者から他のコンピュータ使用者へ必要な関連データとともにそれ自体を移動させる能力を有し、それにより様々なコンピュータノードでのデータ処理、データ認証、およびデータ収集のための強力なツールとなる「移動」(travelling) プログラムを創造するための方法および装置に関する。
【0002】
【発明の背景および要約】
組織内においては、文書はしばしば人手を介して移動する。複数の組織間で文文書をやり取りする必要がある場合には、郵便または配達サービスがしばしば採用される。
【0003】
組織内および組織間での電子的文書伝送技術についてはよく知られている。電子郵便システム、電子伝達システム等の急速な発達により或る種の商取引が自動化されかつ多くの場合不必要である人手による文書の伝達の幾らかはなくなった。
【0004】
ユーザ間(たとえば組織内)で自動的に情報を伝達するための或る先行技術の方法論は、いわゆる「電子形式」方法論を利用する。この「電子形式」方法論はユーザに対しデータを提供し、従来技術の表示装置によりユーザの入力を促し、入力されたデータが正確に入れられたことを確証しかつその後そのようなデータを他のユーザに伝送するというものである。
【0005】
多くの観点において、この電子形式の方法論は非常に限定されたものである。たとえば、データが何らかの値を表わしている場合、常にデータが操作もしくは改ざんまたは単に偽造される危険性がつきまとう。この危険性に対処する試みには、ディジタル的にサインされるべき或る種の重要なフィールドにフラグをつけることが含まれていた。これにより特定の入力フィールドについて或る限られた量ではあるが入れられたものと全く同じであるとする認証が可能となる。
【0006】
しかしながら、この方法では、複雑なデータ構造を組立てかつその後ディジタル的にサインすることは不可能である。本願は、いかなるアルゴリズム等に従っても、移動プログラムがサインされるべきディジタル資料および必要に応じて確証されるべきディジタル資料を計算することを可能にする。
【0007】
こうして、たとえば、本願発明によれば、サインされる実際のデータがいかなるフィールドデータ自体とも違うようになることが可能となる。実際、サインされた資料がユーザにより提供される実際のデータを全く含んでいないということも可能である。
【0008】
たとえば、特にこのことが有益である1つの態様は、本願発明の移動プログラムがエントリーされたデータの局面に基づきEDI(電子データ交換)トランザクションを創出する場合である。プログラムはEDIトランザクションにサインする能力を有する。このようなEDIトランザクションは他の表のファイルまたはこの移動プログラムを駆動するスーパバイザーまたはインタプリタからのプログラム内の内部表に基づきルックアップされた複雑なディジタル情報から構成され得る。こうして、或る種のテーブルから選択された「X」として単にエントリーされたかもしれない入力フィールドと、サインされる実際のディジタル資料は全く異なっている。
【0009】
上記のディジタル署名のタイプは寿命が長いデータ構成に対する応用が考えられ、かつ恐らくは或る期間を経て異なるものにより確証され得ると考えられる。たとえば、EDIの場合、署名はEDIトランザクション自体に結びつけられることが可能で、かつこのトランザクションの将来の受け手により確証され、それは移動プログラムの脈絡を外れたものでもよい。このタイプのディジタル署名は紙の購入注文書または契約書の下の部分にある手書きによる署名に類似するものである。
【0010】
任意のデータにサインすることが可能な点に加えて、本願発明によれば、プログラムはどのユーザがこの署名プロセスに参加すべきかを何らかの知られた基準に基づき条件的に決定することを可能である。
【0011】
たとえば、本願発明によれば、この移動プログラムは特定のデータ、ユーザまたは組合せについてどのような共同署名の必要性が存在し得るかについてプログラムの範囲内で論理的な決定を下すことができる。これにはユーザのX.500(certificate)証明または補強されたディジタル証明(たとえば本願発明人の米国特許第4,868,877号または第5,005,200号によるもの)に含まれる情報を含み得る。完全なプログラムとしてのフレキシビリティが存在するので、このように取り出された情報をこの移動プログラムの将来の伝送ルートの調整に使用することさえ可能である。
【0012】
簡単な認証のためにディジタル署名を使用する点に加えて、本願発明は、許可の要件および使用を含みかつ確証することをも可能にする。これはたとえば許可の証明および委任を管理するという第4,868,877号および第5,005,200号の教示を利用する。
【0013】
一方、本願発明はまたディジタル署名を使用して移動プログラムが他のタイプの貴重な認証を提供することを可能にする。たとえば、本願発明による保安の便宜として、一人のユーザから他のユーザへの伝送のすべてに関してディジタル署名認証を行なうことが可能となる。これは移動プログラム自体、その変数および補助的データまたはファイルを含む。
【0014】
この第2のタイプのディジタル認証は、部分的には、長期間の署名を保持するという点で上記のデータ中心の認証とは相違しており、というのも伝送される変数および他のデータが、一度受け手側のユーザが行動をとった場合に変更されるからである。この第2のタイプの認証はしたがって基本的には不正の防止策として考えられかつまたこの形式の実際のユーザの一人によるものであっても許可されない不正を法的に過去に遡って監査するために使用され得る。
【0015】
加えて、本願発明はまた、いかなるバグまたは「ウィルス」も侵入していないことを確認するために、何らかの信頼のおける発行権者(たとえば著者)により移動プログラム自体にサイン、認証および許可が行なわれ得る第3のタイプの認証を提供する(これはルートに沿ったプログラムの有効な所有権を有する使用者による感染さえも防止する)。
【0016】
本願発明は、使用者のグループの間でのデータ収集の自動化のための独自の機構を提供する。移動プログラムが一人のユーザに送られ、関連するデータファイルを取り付け(または切り離し)かつ次のユーザへと移動し得る。一人または二人以上のユーザから収集されたデータまたはファイルは他のユーザにより保管されるかまたは所望であればバッチ処理のために蓄積され得る。この方法論により個々のユーザがすべての必要なデータを必要なフォーマットで伝送することに頼る必要がなくなる。
【0017】
この発明はまた組織内でのユーザから次のユーザへそれ自体が送られる移動プログラムの脈絡における電子文書交換(EDI)と、データの収集、編集、および是認を効果的に行なう。プログラムの論理により決定される適当な時点で、他の組織へ伝送するために標準EDIトランザクション(たとえばX12 850購入注文トランザクションセット)をプログラムで発生することが可能である。移動プログラムは終了したトランザクションのセットにディジタル的にサインすることが可能である。したがって、標準化されたEDIおよび標準化された署名を処理し得る受け手側の組織であれば、その受け手側の組織が本願発明により教示される入手可能なすべての強力な技術を有していなくても、入来する資料を認証しかつ処理することが可能となる。
【0018】
逆に、この発明により、一般的なEDIトランザクション、恐らくはサインされたものを移動プログラムが受けかつそれらが構文解析されその変数に組込まれることを可能にする。移動プログラムはそこで入力を確証し、表示装置内に組込み、かつ必要に応じて様々な受け手の間を移動させる能力を有する。
【0019】
本願発明のこれらのおよび他の特徴は添付の図面とともに見るとき、以下の発明の好ましい実施例の説明を読むことによりより良く理解されることであろう。
【0020】
【好ましい実施例の詳細な説明】
図1は本願発明に関し使用可能な例示的通信システムを示すブロック図である。このシステムは端末A、B、…、Nがその上で通信を行ない得る通信チャネル12を含む。通信チャネル12は、たとえば電話線等の保安処理がなされていない通信チャネルでもよい。
【0021】
端末A、B、…、Nは例示目的のみにより従来技術のキーボード/CRT表示装置4に結合されるプロセッサ(メインメモリ)を有するIBM PC互換性コンピュータでもよい。メインメモリ2を有するプロセッサはディスクメモリ等の不揮発性記憶装置にも結合される。各端末A、B、…、Nはまた従来技術のモデム(それぞれ6、8、10)に結合されると、移動プログラムを含むメッセージを端子が伝送および受信することを可能にする従来技術のIBM PC通信ボード(図示せず)を含む。
【0022】
本明細書中で使用する、「移動プログラム」はディジタルデータ構造であって、連続する命令と関連データとを含み、かつ移動プログラムを受けかつそれ自体をプログラムにより決定されるすべての関連データとともに次の受け手または行先へ伝送するための少なくとも1つの次の行先または受け手を決定する能力を有する。
【0023】
各端末はメッセージを発生し、その移動プログラムに固有の論理、データ、および機能をロードしかつ実行するのに必要ないかなるディジタル署名動作をも達成し(これについては本明細書内でより詳細に説明する)、かつそのメッセージを通信チャネル12(または通信チャネル12に接続され得る通信ネットワーク(図示せず))に接続された他の端末に伝送することができる。
【0024】
発明者の米国特許第4,868,877号および5,005,200号ならびに第5,001,752号に記載されるディジタル署名および証明方法論がここで使用されてもよく、これら特許についてはここに引用により援用する。代替的には、より従来技術のディジタル署名方法論が使用されてもよい。
【0025】
本願発明の例示的実施例に従う「移動プログラム」構造および方法論をより詳細に論じる前に、実際の商取引の脈絡における一般的な動作の例について簡単に説明する。まず、図1の端末Aのユーザが、回路設計プロジェクトを完成するためにコンポーネント部品を入手しようとしている会社における設計チームの一員である比較的地位の低い技術者と想定する。
【0026】
キーボード4を使用するこの技術者が以下に詳細に説明するようなタイプの部品要求「移動プログラム」をアクセスしたとする。要求「移動プログラム」は技術者に対し必要とされるコンポーネント部品を説明するように促す。移動プログラムはそれ自体を自動的に次の行先、たとえば端末Bへのアクセスを有し、この組織構造内ではより高い地位にあり、この要求を認めかつディジタル的にこれにサインする権限を有している上役に自動的に伝送する命令シーケンスを含む。移動プログラムはまた補助的な情報たとえば将来の行先で必要なまたは役に立つかもしれないファイルを伝送してもよい。上役はこの要求に適切にディジタル的にサインを行なうよう促される。ディジタル署名が単に特定の可変の値だけではなく可変の名称をも反映することは可能である。代替的には、プログラム内で計算される変数から生じる何らかの集合的構造を反映してもよく、その値がファイルから読出されたデータ、ユーザによる入力、プログラム内に内蔵されたデータ、様々な署名者の証明、またはユーザの環境から取出されるデータ(たとえばユーザのID)等を含む多くの源のいずれかに基づいていてもよい。
【0027】
要求が認められれば、要求の形式は組織内ではこれが認められない場合とは違った経路をとることになる。移動プログラムは組織内でそれ自体をどこへ伝送すべきかを、動作端末Bでの上役からの入力に基づいて決定する知能を有し得る。移動プログラムはまた所望であれば要求に関連する適切なデータを、端末Bに関連するメモリにロードしかつ所望であれば組織内のどこか先に進める必要がある端末Bからのいずれかのファイルを取付けることになる。
【0028】
一度署名がなされると、移動プログラムはその後いつでも、その後のどのユーザに対しても、かついずれの理由であっても、資料が確証されるように再計算し、かつディジタル署名確証を行なう能力を有する。
【0029】
このような確証の結果はいずれの受け手に対しても告知されることが可能で、または多くの場合には、移動プログラムは単に確証を行ないかつ(データの改ざんが行なわれたことを示唆する)不良があれば、問題を告知する。
【0030】
移動プログラムモニタは第4,868,877号および第5,005,200号の教示を実施し得るので、いずれの受け手も必要な許可が行なわれたことを確認することができるように、許可についてもチェックすることが可能である。
【0031】
特定のデータ構造が構築されかつ移動プログラムの制御の下サインが行なわれた後、引続きこのデータ構造を再構築しかつその署名を他のものに与えることが可能である。このようなデータはこの後はいずれのものによっても改ざんされ得ない。
【0032】
しかしながら、この発明はまたすべての伝送されたデータが一人のユーザから次のユーザに送られる際にディジタル的にサインされるという能力を実現する。受け手のコンピュータ内の移動プログラム処理装置は移動プログラムがロードされると自動的にこの署名を確証することができる。これによりコンポーネント等が途中で変更されたり改ざんされたりすることはないことを確実にする。この全体的署名のみがこの特定の伝送の間のデータの状態を表わし、かつその後のユーザにとってはいかなる意味ももたないが、これは第三者に邪魔されない完璧な伝送を確保するとともに、この形式を所有している参加ユーザによる改ざんを追跡する必要がある場合には法的監査機構を提供する。この全体的署名はこの署名が移動プログラム自体によって伝送プロセスの一部として条件的に誘引され得るという点において電子郵便がサインされる現在の能力とは異なるものである。
【0033】
最終的には、組織構造内ですべての許可が得られた後、移動プロセスは実際の購入注文をつくり出すことになる。
【0034】
これは多くの態様でなされ得る。移動プログラムが幾つかの方法を支持し、所与の状況に応じた1つの最も適切なものを選択してもよい。ここでは4つの可能性について述べる。
【0035】
1.移動プログラムは物理的に郵送されると考えられる用紙の上に最終購入注文を単にプリントアウトし得る(会社のロゴ、レターヘッド等をプリントすることさえも可能)。
【0036】
2.移動プログラムは、外へ向けてのコンピュータ−ファックス能力に結合されると、販売者のファックス装置上に現われると考えられる購入注文画像を自動的に発生することが可能である。購入者は用紙を生成する必要がない。
【0037】
3.販売者がまた本願発明の移動プログラム方法論を支持することがわかっていれば、移動プログラムが販売者を単に次の行先に指定することも可能である。
【0038】
4.販売者が本願発明を使用せずまたは購入者の移動プログラムが、販売者がこの移動プログラムの方法論を取り扱う能力があるかどうかはっきり判断できないという可能性も高い。
【0039】
したがって、移動プログラムはその内部データを操作して標準EDI(電子データ交換)トランザクションを構築し、これが広い範囲で認識かつ処理される。移動プログラムはまたコンピュータEDIトランザクションに対しディジタル署名をさせてもよく、かつ署名およびトランザクションの双方が伝送され得る。移動プログラムはその後EDIトランザクションと何らかの可能な署名とを受け手に対し伝送する(このような伝送はその方向づけられた移動の一部としてのユーザからユーザへの移動プログラムおよびその付属するものの伝送とは独立しており、かつこれと混同されるべきではない)。
【0040】
標準EDIトランザクションを取り扱うことができる受け手ならば誰でも受け取ったEDI入力を扱うことができる。ディジタル署名を取り扱うことが可能な受け手であれば誰でもこのトランザクションを認証することができる。さらに、受け手がこれらを認識するに足るソフトウェア能力を有している場合には、この受け手は署名の一部として実施され得る認証を自動的に確証することができる。どの範囲まで証明がサインされたトランザクションとともに伝送されるかは移動プログラムの論理による。
【0041】
上記のいずれの場合においても、幾つかの可能なレベルの自動化のいずれかを使用して、移動プログラムは販売者への購入注文(P.O.)情報をスピンオフすることが可能である。これに引続いて、移動プログラムはそれ自体の1つのバージョンまたは恐らくは単なる文字を発生者に戻し、P.O.が送られたことを告知する。他の情報はアーカイブか、またはさらなる処理を待つために待合せに送られ得る。この情報は簡単なメッセージ、ファイルに加えられた記録で、さもなくば恐らくは移動プログラムがフルのトラバーサル(自動「メイリング」または「伝送」)を予定する。
【0042】
図2は本願発明の例示的実施例に従う移動プログラムとその関連するコンポーネントの構造を示す。図2の移動プログラムは少なくとも以下の多重フィールドのセグメントを含む。第1のヘッダセグメント20は好ましくはコンポーネントセグメントの各々の大きさ、関連するプログラム(かつできれば以下に述べる他のセグメント)の名称、日付、各コンポーネントのタイプ(たとえばプログラムはソース言語プログラムかまたはプログラムは既にコンパイルされたPコードか等)、形式の識別、それを行なうために必要なインタプリタのバージョン、プログラム再開の適切なポイントで実行を再開することが必要なデータ(たとえば実行スタック、PCB等)、最も最近のトラバーサルに関連する日付、およびプログラム許可情報(PAI)を識別する。移動プログラム構造内の各セグメントは「各コンポーネントのタイプおよびサイズ」フィールド「S」がヘッダセグメント20内に含まれることがないようにそれ自体の表現を含み得る。本願の目的に従い、プログラム許可情報(PAI)は関連するプログラムが行なうことが許可される動作の範囲を規定する保安情報とみなされ得る(たとえばファイルへのアクセスの定義、プログラム呼出能力、電子郵便発生能力、データを他のユーザへ発送する能力、文書をリリースする能力、機械言語プログラムを実行する能力、メモリの特定の領域をアクセスする能力、ユーザに対し情報を表示する能力、ディジタル署名を要求する能力、ディジタル公証装置(digital notary public)等にアクセスする能力である)。プログラム許可情報の性質および使用に関してのさらなる詳細については本願出願人の出願である「プログラム許可情報を利用するコンピュータシステム法および装置」という名称の出願(代理人事件番号264−29)に見られる。ヘッダセグメント20はまた関連の移動プログラムのバージョン番号を含む。
【0043】
移動プログラム構造22セグメントは実施例のヘッダに従いかつ好ましくは再構築された外部の実施プログラム言語(たとえばREXX言語)またはPASCALもしくはCOBOLに近いもので書かれる。プログラム自体はたとえば購入注文に関連する応用に関したものでもよい。
【0044】
移動プログラムはそれ自体をさらなる受け手に送る能力を含む上記に述べたような特徴を有することになる。したがって、プログラム22は一人または二人以上の受け手に入手可能な何らかの媒体を経由してそれ自体を先に送る命令を含むことになり、これが本明細書中では「トラバーサル」として知られる。1つのソースコード命令または幾つかのPコード命令が一人または二人以上の識別された受け手に対して移動プログラムを結果として「トラバーサル」するのに必要かもしれない。図2に示される移動プログラム構造はいかなる特定のコンピュータアーキテクチャからも独立するように設計されておりかつ国際標準(たとえばX.209フォーマット)に従い構成されている。
【0045】
移動プログラムはまた「変数セグメント」24を含む。第1のユーザにより実行される前に、変数セグメント24はほとんど空でもよい。一度プログラムが受け手に送られると、さらなる変数がプログラムにより要求されるとおりに規定されることになりそれによりプログラムがさらに実行されると変数の数が増えることになる。例示目的のみで、変数セグメント24は或る変数たとえば「トータル.ドル.受領」をこの変数の実際のデータ値とともに識別し得る。
【0046】
各変数は図2に示されるフィールド32−42の各々に示される関連情報を有し得る。フィールド32は変数名称の大きさを識別する。変数名称自体はフィールド34に記憶される。変数の値の大きさはフィールド36に示される。変数の値はフィールド38内にある。フィールド40は変数が属する実行スタックレベルを識別する。実行スタックレベルが識別されるのは、同じ変数名称がプログラム内の異なるレベルに存在し得るからである(たとえば1つの変数名称は第1のサブルーチン内に存在してもよく、かつ同じ変数名称が別のまたは集まったサブルーチン内に存在しかつしかも異なる定義を有し得る)。実行スタックレベルは受け手のコンピュータ内の移動プログラムを再構築して送り手のコンピュータ内で有していたものと同じ論理構造をとらせるために有益である。フィールド42は変数のタイプ、たとえばストリング、8ビットバイト、整数等を識別し得る随意のフィールドである。
【0047】
「変数」セグメント24はまたそれぞれの変数および関連情報のディジタル署名を含み得る。こうして、1つまたは2つ以上の変数が移動プログラムの実行経路の間の様々な時点でとられたディジタル署名を反映することが可能となる。本願発明の重要な局面の1つは、移動プログラムがどのようなタイプの情報に対してもディジタル署名をつくり出すことが可能な点である。この署名自体が変数として運ばれる。この署名を確証するためには、プログラムがサインされた正確な値を示し(またはできれば再計算し)、その後それを署名値(これも変数で表わされる)とともに通過させて移動プログラムの確証署名(VERIFYSIGNATURE)機能に送ることが必要となる。変数のディジタル署名を含むことにより、受け手側は、データが1)不正を受けておらず、2)有効なサインを受け、かつ3)サインした人物が適切に許可を受けたものであったことを確証することが可能となる。許可をディジタル署名と関連づけるための好ましい機構を記載する上記の米国特許第5,005,200号を参照されたい。
【0048】
たとえば、上記の米国特許第5,005,200号に記載のとおり受け手によりいかなる署名でも確証され得るように、図2のセグメント26は移動プログラムに何らかのディジタル署名と関連する証明を含んで示される。代替的には、証明はディジタル署名とともに「変数」セクションに含まれ得る。
【0049】
セグメント28A−28Nは、移動プログラムが移動プログラムのユーザに属するファイルを取り付けかつ記憶することが可能になるように記録されかつ名前をつけられたファイル画像を含む。その後、ユーザのファイルは移動プログラムとともに他の先行するユーザのファイルとともに伝送され得る。ファイルに名前をつけることでユーザによるファイルの後々のアクセスが容易となりかつ移動プログラムのユーザがたとえばさらに伝送されるファイルまたは特定のユーザが特定の状況下で保管するファイルを識別することが可能となる。
【0050】
移動プログラムはまた「変数セグメント」30を含み、これはたとえば受け手が、移動構造全体の伝送が最後に送られてからは不正を受けていないことを確証し得るように移動構造全体のディジタル署名を含む。
移動プログラムデータ構造について記載してきたが、ここで移動プログラムの実行の間に使用されるデータ構造と移動プログラムを実行するための関連ソフトウェアについて説明する。実行制御領域(XCA)データ構造が図3に示される。XCAは一度移動プログラムが受け手により受け取られかつPコードにコンパイルされると(最初からPコードで送られた場合は除く)移動プログラムを実行するプログラムにより要求される情報を特定する。
【0051】
図3に示されるとおり、XCAセグメント82は入来のファイル内に現われたプログラムのアドレスおよび大きさを識別する。本明細書全体を通して、或るセグメントが「アドレス」または「位置」を記憶するものとして記述される場合には、データは物理的または論理的アドレスでかつ実際の物理的メモリ位置を必ずしも直接的に特定する必要がない点を認識されたい。プログラムはソースまたはPコードで受け取られかつどちらであるかについての表示が維持される。実行制御領域はプログラムのPコード版のアドレスとその大きさを表わすセグメント84を含む。現在のプログラム制御ブロックのアドレス(またはアドレスへのポインタ)はセグメント86内で識別される。たとえば使用されるファイル制御ブロック(FCB)のリストを移動プログラムに関連するファイルに取り付けかつ取り外す位置はセグメント88に示される。移動プログラムに取り付けられる証明を制御するために使用される証明制御領域(CCA)のアドレスはセグメント90内に示される。「変数」情報表(VIT)の位置は変数を「B−ツリー」の形式で制御かつ維持するセグメント92内に示され、このツリーは各プログラム「変数」の位置を識別する階層2進ツリー構造である。
【0052】
実行制御領域はまた移動プログラム内に存在する認証と許可とを確証するために使用され得る保安情報セグメント94を含む。セグメント96はアクセスを必要とするかもしれない入来の移動プログラムを含むファイルの名称を規定する。セグメント98はプログラム自体が入来経路に沿ってメイルされた回数を追い続ける。実行制御領域はまた入力パラメータセクション110を含み、これによりプログラムの実行に関連するパラメータが識別され得る。実行制御領域セグメント102はヘッダ情報が入手可能になるように移動プログラムファイルから受け取った入力ベッダ情報を識別する。
【0053】
図4は移動プログラムがファイルをそれ自体に取り付けまたは取り外すときに使用されるファイル制御ブロック(FCB)のデータ構造を示す。ファイル制御ブロックは特定のユーザのシステム内で取り付けられるかまたは外される特定のファイルを指すタグを識別するタグフィールド116を含む。ファイル制御ブロックもまた次のファイル制御ブロックへのポインタであるセグメント110を含む。ファイル制御ブロックはまた関連するファイルが受け取られた移動プログラムによりちょうど取り付けられたものかどうか、ファイルが次のトラバーサルの際(たとえば次のメイリング)の際に取り外され得るか否か、ファイルが外へ出たか(すなわち関連のファイル画像が別個のユーザファイル内にロードされたか)どうか等の様々な状態を規定する状態セグメント112と、ファイルが流れ中心(stream oriented)のものかまたは記録中心(record oriented)のものか等の「ファイルのタイプ」に関するインジケータとを有する。ファイルの他の属性はこのフィールド内で規定され得る。
【0054】
セグメント114は問題の特定のファイルがすばやくアクセスされ得るように主の入来の移動プログラムファイル内のファイルの位置に関する表示を記憶する。セグメント118はファイルのローカル名(すなわち移動プログラムの最も最近の受け手により識別されたファイル名)を識別する。ファイルのローカル名は、ファイルが取り付けられかつさらなる受け手に送られるかまたは既に取り付けられたファイルが「外に出されている」、すなわち特定のユーザにより局所的に記憶されている場合に典型的に与えられるものである。加えて、図4に示されるとおり、FCBは関連ファイルのハッシュを含んでもよい。当業者により理解されるとおり、ハッシュとは基礎となるデータを与えられれば、コンピュータでは計算が容易なはずである「1方向」機能である。ハッシュ値を与えられればハッシュ機能は計算的には基礎となるデータを決定することもそのハッシュとして特定される値を有するいかなるデータをつくり出すことも不可能なはずである。すべての実用目的に関して、元のデータの集合体にハッシュ機能を与えることから得られた値は元のデータの偽造不可能な独自のフィンガプリントである。元のデータがいずれかの態様で変更された場合には、その修正されたデータのハッシュは異なるものになる。
【0055】
図5は移動プログラムの実行の間に使用され得る例示的プログラム制御ブロックを示す。プログラム制御ブロックは1つのルーチンが他のルーチンを呼出し、各ルーチンが関連のプログラム制御ブロックを有する構成化されたプログラミングコンテキストにおいて実行されているプログラムに関する制御情報の追跡を続ける。
【0056】
プログラム制御ブロックセグメント50はプログラム実行制御スタックにおける先行するプログラム制御ブロックを指し示す。プログラム制御ブロックは現在の実行プログラム内において実行されるべき次のPコード位置を規定するセグメント52を含みセグメント54は行なわれた最後のPコード動作のタイプを規定する。セグメント56は表現評価の間に使用される表現評価スタックに対するポインタを含む。実行スタックは、実行スタックが表現の評価と内部状態の追跡のために使用されるという点でプログラムスタックとは典型的に異なっている。セグメント58はこのスタックプログラムのレベルを規定しかつセグメント60は共有される変数のリストに対するポインタを規定する。REXX言語においては、「露出された」ステートメントが共有された変数をアクセスするために使用され得る。
【0057】
図6は変数を制御するために使用される可変制御ブロックデータ構造(VCB)を示す。セグメント62はBツリーのうちどこに変数が位置しかつ幾つかのポインタを含み得るかを識別する。セグメント64は変数値の大きさを識別しかつセグメント66はその値がメモリのどこに位置するかを示すポインタを識別する。セグメント68は変数のタイプを識別するために随意に使用され得る。セグメント70は移動プログラムのどのレベルに変数が関連しているかを識別して、プログラムが実行された後に、プログラムに関連していたいずれかの位置を示す変数が容易に削除され得るようにする。セグメント76および80は変数の名称の大きさおよび名称それぞれを識別する。
【0058】
ここで、移動プログラムの実行の説明に戻る。インタプリタ実行駆動プログラムの「ローダ」部により行なわれる動作のシーケンスが図7−12に示される。これらの動作は移動プログラムを実行するための準備に関連する。
【0059】
移動プログラムは対話型ユーザモード、すなわち他のプログラムにより呼出されるモード、または情報を収集しながらノードからノードへ送られるバッチ動作モード等の複数の異なるモードの1つにおいて実行し得る。初期化情報は特定の動作モードおよび関連する実行時間パラメータを識別するスタートアップ動作(120)の間に入力される。
【0060】
図7−12に示されるフローチャートは図2に示される移動プログラム構造がどのようにしてロードされるかを示す。移動プログラムをロードする際に、インタプリタが実行制御領域XCAと初期プログラム制御ブロックPCBとをつくり出す。これにより入力パラメータへのアクセスが省かれ、変数情報表(VIT)をロードしかつ初期化するために与えられていた入力ファイルの名称が省かれる(122)。フローチャートブロック122において、実行制御領域および移動プログラムに関連するプログラム制御ブロックが設定される。様々なXCAおよびPCBフィールドが引続く処理の間に満たされる。
【0061】
この後、ローダは、図2に示されるような移動プログラムのセグメント、すなわちヘッダ、プログラム、変数、証明、ファイルおよびクロージャセグメントのローディングを開始する。たとえばヘッダプログラム等の上記の移動プログラムセグメントの各々をロードすることにより以下のように適切なデータが充填されることになる。
【0062】
ブロック124では、より多くのセグメントを処理する必要があるかどうかの判断が行なわれる。もし必要であれば、初期入力はそのセグメントに関して読出されかつセグメントのタイプが判定され、その後セグメントの処理がセグメントのタイプに応じて開始される(126)。
【0063】
図8のヘッダ処理に戻ると、処理されているセグメントが第1のセグメントかどうかを判断するためのチェックが行なわれる(150)。もしそうでない場合には、ヘッダが最初のセグメントでなければならないので、エラー状態が存在することになる(152)。第1のセグメントが処理されている場合には、ヘッダが読出されハッシュされる。ヘッダのデータがXCA内に記憶される(154)。
【0064】
ルーチンはここでエントリーポイントLで分岐して図7に戻る。ローダは処理されるべきセグメントがまだあるかどうかを判定する(124)。もしそうならばブロック126が実行されて図9に示すような「プログラム」セグメントの処理が結果として行なわれる。最初、ヘッダが存在するかかつまだプログラムはロードされていないかどうかを判定するチェックが行なわれる(160)。もし答えがノーであれば、エラー状態が存在することになる(162)。もし答えがイエスの場合には、プログラムが読出されかつハッシュがとられる(164)。
【0065】
その後、プログラムハッシュおよび/またはプログラムに関連するディジタル署名(および/またはヘッダ)が確証される(166)。ディジタル署名が適正に許可されておらずまたは確証されない場合には、エラー状態が生じる(166)。確証が発生すると、移動プログラムに関する保安および許可情報が蓄えられる(170)。代替的には、このような許可情報はヘッダまたはプログラムセグメント内に保持され得る。
【0066】
ブロック172においてプログラムがPコードとして送られたかどうかを判定するチェックが行なわれる。Pコードではなくソースコードが送られた場合には、ソースコードは当業者に周知の従来技術のコンパイラ技術を利用してPコードにコンパイルされかつソースコード画像は記憶174から削除される。ブロック172でのチェックにかかわらず、プログラムの入来ファイルにおける位置−−ソースであるかPコードフォーマットであるかにかかわらず−−がXCA内に蓄えられる。入来画像の位置および範囲を知ることで最終的な外へ向かうトラバーサルにプログラムをコピーすることが簡略化される。最終的には、Pコードが単にコンパイルされたか否か、または入来ファイルから読出されたか否かにかかわらず、Pコードの主記憶アドレスおよび大きさが178の実行制御領域(XCA)内に設定され、その後図7に示されるルーチンがブロック124に再びエントリーされて、これにより図10に示す「変数」セグメント処理等の残ったセグメントのローディングが生じる。
【0067】
ブロック190に示されるような「変数」セグメントの処理において、ヘッダおよびプログラムはロードされているが先行する変数は何もないかどうかを決定するチェックが行なわれる。もしそうでない場合、エラー条件は結果的に192になる。もしヘッダおよびプログラムはロードされているが先行する変数が何もなければ、もしあればすべての変数を読出す反復処理が開始される。194で読出すべき変数が(さらに)あるか否かを決定するチェックが行なわれる。もし読出すべき変数がさらにあれば、各変数について変数制御ブロック(VCB)が図6に示されるように作成され、変数制御ブロック(VCB)への変数識別子および値の挿入ならびにVCBにおける或る状態条件のセットによって完成される。さらに、変数制御ブロックは変数情報テーブル(VIT)の適切なスポットに加えられ、そのテーブルはすべてのプログラム変数を含む(196)。
【0068】
さらに、たとえば移動プログラムの前の実行に関する他の変数情報が198において適切にメモリスタックまたはプログラム制御ブロック内にロードされる。代替的に、そのような「制御」情報をここよりもヘッダセグメントに保持することが望ましいかもしれない。その後、ルーチンはブロック194に分岐して戻り、そこでさらなる変数を読出すことが必要であるか否かを決定するチェックが行なわれる。この処理は変数がもはや読出される必要がなくなるまで継続し、必要がなくなった点でルーチンは図7のブロック124に分岐して戻り、その結果次のセグメントをロードする。
【0069】
図11に示されるように、各証明が読出され(200)、証明エレメントが作成され、それは記憶装置の証明制御エリア(CCA)に加えられる(202)。図11に概略的に示されるように、すべての証明が受け取られるまでこのプロセスは反復され、その時点でルーチンはブロック124に分岐して戻りさらなるセグメントの検査を行なう。
【0070】
代替的に、プログラムセグメントより前に証明セグメントを伝送し、それによってプログラム認証/許可の一部として使用される証明がプログラム変数およびユーザからユーザへの認証によって使用されるあらゆる証明とともに維持され得ることが望ましいであろう。
【0071】
このブランチ動作の結果、図12に示される「ファイル」セグメント処理が行なわれる。ファイルセグメントは典型的に「変数」セグメントに追従するので、変数セグメントが(たとえ空であっても)既にロードされたか否かを決定するチェックが行なわれる。もしそうでなければ、エラーが検出されており、適切なエラーメッセージが212で発生される。もし「変数」セグメントが既にロードされていれば、ブロック214に示されるように、そのファイルに関連のファイルタグが既にロードされたか否かを決定するチェックが行なわれる。もしそうであれば、216でエラーが検出され、ファイルが二重にされていることを示す。
【0072】
もしファイルタグが既にロードされていなければ、ブロック218に示されるように、ファイル制御ブロックがファイルのために組立てられ、タグ名がセットされ、移動プログラムと既に関連しているかもしれない他の状態識別子がセットされ、ファイル位置が入ってくるファイルに関してセットされる。
【0073】
その後、ファイルが読出され、そのハッシュが計算され、FCBのセグメント115に保管される。ファイルのサイズはFCBのセグメント114に保管される。ファイルはこのときメモリ内にロードされる必要がない(220)。その後、作成されているファイル制御ブロックがXCAに収集されたファイル制御ブロックリストに加えられ、このルーチンはブロック124に分岐して戻り次のセグメント(恐らく「クロージャ」)を処理する。
【0074】
図13の「クロージャ」処理において、前のセグメントの各々についての前のすべてのハッシュからハッシュが計算される(230)。すべての「セグメント」材料がハッシュを施されて読出されることが認識されるべきである。ブロック232において、230でとられ、計算されたハッシュが、(クロージャセグメントに記憶されている)移動プログラムが送られたときに加えられたハッシュと一致しているか否かを決定するチェックが行なわれる。もし一致していなければ、エラー条件は234になる。
【0075】
もし一致していれば、移動プログラムがサインされた否かに関するチェックが行なわれる(236)。もしそうでなければ、ブロック238に示されるように、伝送データが全くサインされないという通知をあるいは提示するような、所望されるいかなるレベルの機密保護をも組込む処置が行なわれる(238)。
【0076】
もし伝送がサインされたならば、240で署名が確証され、移動プログラム(および関連の購買注文または他の形式)を実際に送った当事者を正確に識別するメッセージがユーザに提示される。このルーチンは次の図7のブロック124に分岐して戻る。
【0077】
図13の「クロージャ」処理が完了すると、ブロック124で処理されるべきセグメントがもうないかが決定される。その後、クロージャがうまく受信され、処理されたか否かを決定するチェックが行なわれる(128)。もしそうでなければ、このルーチンは不首尾な有効性のチェックを行ない(130)、132で停止を処理した後、実行を中止する。
【0078】
もしブロック128におけるチェックでクロージャがうまく完了したことが明らかになると、プログラム実行の準備のための様々なステップが行なわれる(134)。この点で、スタックが復元され、変数情報テーブルおよび変数制御ブロックが復元される。プログラム制御ブロックは実行再開点を含むように復元される。
【0079】
その後、図14に示されるルーチンが開始され、Pコード命令を実際に処理する。次の問題がここで検討されねばならない。すなわちプログラム実行が送り手の機械から(トラバーサルの一部として)伝送されたときと同じ状態で有効に復元されるため、移動プログラムが送る機械内にあり、送る機械自体から戻ったところであるか、または受け手の機械で復元されたところであるかをいかにして区別し得るかという問題である。
【0080】
この発明は多数の方法でこの問題を処理することを許容する。もしトラバーサル機能がビルトイン機能として実現されれば、インタプリタは特別な値(たとえば「0」)をプログラムへ、それがそれ自身をうまく送った後に戻し、別の値(たとえば「1」)をプログラムへ、その実行が受け手の機械上で復元されるときに戻すであろう。移動プログラムはこの状況を区別するためにこの値をテストすることができる。この区別が行なわれ得る別の方法は、移動プログラムに「先行トラバーサルの数」を抽出する機能を与えることによる(XCAのセグメント98)。このトラバーサルを行なう前に、プログラムはこの機能を使用して先行−トラバーサル−計数機能を保管することができる。もしそれが変数の値と一致すれば、プログラムは送り手のコンピュータで実行が再開していることを知り、もしそれが異なっていれば(1だけ大きいはずであるが)、プログラムは受け手のコンピュータで実行が再開していることがわかる。
【0081】
第1のユーザが移動プログラムを発生するとき、図7−13に示されるローダルーチンは極めて少ない変数、ファイル、または証明で、あるいはそれらなしで実行される。したがって、前述のステップのあるものは最初の処理の間省略されるであろう。ローダルーチンは移動プログラムが初めて実行されるか、さらなる受け手によって実行されるかにかかわらず実行される。
【0082】
図14はPコード命令の処理において行なわれる動作を示す。これは実行されるあらゆるPコード命令について反復される。ブロック250に示されるように、次のPコード命令のロケーションが現在のPCB(52)から引出され、これが「現在の」Pコード動作になる。ブロック252において、Pコード動作の長さが決定され、「次のPコード」位置(52)が更新され、後に続くPコード命令を反映する。この型の現在のPコード動作は(54)に保管される(これはインタプリタが正確な動作に基づいて僅かな変化しか有さない共通ルーチンを共用するのに有用である。たとえば「コール」動作および「機能呼出」動作が、機能呼出がパラメータが戻されることを期待する以外は同じである。)。
【0083】
その後、ブロック254に示されるように、示されるPコード動作が行なわれる。ほとんどのPコード機能はデータ操作、論理テストおよびプログラムフロー制御を含む。例示のみによって、このようなPコード動作は変数を位置決めして、スタックにその変数をプッシュすることと、次のPコード動作をリセットしてそれによってブランチ動作において生じるであろうようなフロー制御を変化させることと、演算またはストリング動作を行なうことと、ポップされたスタック値に基づいてIF/THEN/ELSE動作を行なうことと、スタック値に基づいてDO/ITERATE/UNTIL/WHILE、または他の動作を行なうことと、スタック値に基づいてSELECT/WHEN/OTHERWISE動作を行なうことと、「END」動作を行なってDO/WHEN/SELECT動作を閉じることとを含んでもよい。
【0084】
この発明の独特の動作に関連して様々なPコード動作が詳細に説明される。ここに与えられた手引によって、Pコード機能はインタプリタの書込の精通者によって簡単な態様で実現され得る。
【0085】
しかし、特定のPコード機能の詳細をしばらく無視すると、好ましい設計はPコード動作がそれらの完了時に論理「割込」を発生することを許容する。
【0086】
これらはPコード処理の処理が何か他の外部動作が行なわれねばならない間、中断されることを許容する。この割込概念は好ましい設計において冗長な待機、または外部作業が呼出されるときは常に作業記憶のロールアウトを容易にするために使用される。
【0087】
図15において、ブロック256でPコードルーチンから戻ると、インタプリタはルーチンが論理割込の信号を送ったか否かを決定する。もし送っていなければ、250に戻り、次のPコード動作を取扱う。
【0088】
もし割込が示されたならば、ブロック258の特別なチェックが、これが特別な「EXIT」要求であるか否かを決定するために行なわれる。もしそうであれば、記憶、ファイル、変数、ロードサブルーチンなどのようなこのプログラムの終わりで解放されるべきすべての資源がブロック260で廃棄される。260によって保管されているであろうPコード動作からの可能性のある戻り値がブロック259でこの移動プログラムの呼出人へ戻される。
【0089】
これがEXITではないと仮定すると、ブロック261はROLLOUTが行なわれるべきか否かを決定する。たとえば或る環境において、作業記憶には、ユーザが入力を入れるのを完了する間、または移動プログラムが時間間隔が満期になるのを待機している間、または冗長な(もしくは大きい)外部プログラムが移動プログラム論理から呼出されている間、またはディジタル署名ルーチンが実行されている間(それがユーザ入力を含むことが多いので)、ロールアウトされることが有用である。
【0090】
Pコード割込および可能性のあるROLLOUTを生じるルーチンは、それらがビルトイン機能として、または言語ステートメント(それら自身のPコードを含む)として組込まれるか否かにかかわらず、次のものを含む。
【0091】
SIGN
いかなるコンピュータデータへもディジタル署名を与え、そうすることにおいて、ユーザに多数の証明から選択することを請求し、かつユーザに個人の署名が解読され、使用されることを許容するユーザの秘密のパスワードキーを与えることを請求するであろう。
【0092】
DISPLAY
画面を構成、かつ出力し、ユーザの入力供給を待機する。
【0093】
TIMEWAIT
未来時間に到達するまで実行を中断する。
SELECT.FROM.DIRECTORY
たとえばユーザのディレクトリ、またはファイルのディレクトリなどからの選択を許容する。
NOTARIZE
時間公認装置がそれ自身のディジタル署名を与えるのを待機する。
【0094】
或る環境において、ROLLOUTは不適切であり、これらの場合、ブロック262、264、268におけるロールアウトおよびロールイン処理は存在しないか、または禁止されるであろう。
【0095】
いかなる場合も、「割込」の信号を送るPコード動作はまた少なくとも3つの関連の(「コールバック」)機能のアドレスを供給する。
【0096】
−− プレ−ロールアウトルーチン。ロールアウトの準備において必要ないかなる機能も行なう。これは一時記憶にパームフィールドを準備して・・・へ送ることを含んでもよい。
【0097】
−− インター−ロールアウトルーチン。できる限り多くの作業記憶が補助記憶へロールアウトされた後実行する。
【0098】
−− ポスト−待機ルーチン。インター−ロールアウトルーチンが終了した後、および作業記憶が補助から復元された後ロールバックの後の詳細を取扱う。典型的にはこれは、一時記憶に残っており、かつ実行上にロードされるか、またはプログラム変数内にコピーされねばならないインター−ロールアウトルーチンにより計算された結果値をコピーすることを含む。
【0099】
ブロック261において、プレ−ロールアウトルーチンが呼出される。これは空のルーチンであるか、またはたとえばインター−ロールアウトルーチンのためのパラメータをセットアップしてもよい。
【0100】
ブロック262において、もし環境および状況が適当に与えられれば、ロールアウト機能が行なわれる。もし行なわれれば、ROLLOUTはVCBおよびそれらの値、FCB、証明およびCCA、実行スタック、VIT、XCA、Pコード自体、ならびに他のいかなるブロックをも含むすべての作業記憶を(ファイルのような)ある補助記憶へ書込むことからなる。インタプリタ自体は記憶から開放されてもよく、十分な残余プログラムおよびデータがインタプリタおよび作業記憶を後に再ロードするために残っていると仮定すると、これは特別なブロック(264)で行なわれてもよい。
【0101】
ステップ266において、インター−ロールアウトルーチンが呼出される。典型的にはこのルーチンはユーザが入力を行なうこと、または未来時間もしくは他の事象まで待機すること、または入力を待機する、もしくは他の遅延を引き起こす、もしくはROLLOUTによって空にされた大きい記憶を要求するであろう別のプログラムを呼出すことを待機する。
【0102】
ブロック268において、インター−ロールアウトが終了した後、インタプリタが再ロードされ、実行スタック、すべての制御ブロック、Pコードを含む作業記憶が補助記憶から復元される。
【0103】
次にブロック270において、いかなる最終処理も行なわれ、動作を一掃する。たとえば、これは典型的にインター−ロールアウトルーチンにより戻された結果を実行スタックへ、またはプログラム「変数」へコピーすることを含む。
【0104】
これは割込を完了し、次に制御がPコードハンドラ(250)の先頭へ戻され、そこで次のPコード命令が処理される。
【0105】
これより関係のある幾つかのPコード動作が検証される。
好ましい実施例のインタプリタは3つのCALLおよび機能を取扱う。すなわちインタプリタへ「ビルトイン」されたルーチン、移動プログラムの一部として書込まれるルーチン、およびインタプリタまたはプログラムの外部にあり、プログラムが実行されるとき動的に位置決めされ、呼出されるルーチンである。
【0106】
図17において、ビルトイン機能がかなり簡単に表わされ、インタプリタはPコードのインデックスに基づき特定の機能を単に位置決めし、(インタプリタ内の)ルーチンのアドレスを検索し、それを呼出す。しかし、ほとんどのものは行なわないが、幾つかのビルトイン機能がPコード割込の信号を送るかもしれないということを認識することが重要である。この場合、ビルトイン機能は必要なプレ−ロールアウト、インター−ロールアウトおよびポスト−待機ルーチンを与えねばならない。
【0107】
Pコードインタプリタは常にCALLおよび機能を区別し、機能の場合においてのみ実行スタックへ結果を戻すことに備える。たとえば、SIGN機能は供給されたデータ上で計算されたディジタル署名を表わす値を戻す。
【0108】
図16(A)においてプログラムルーチンへの呼出/機能によって新しいPCB実行レベルが300で作成される。新しいPCBはルーチンのPコードエントリ点へ次のPコード命令(52)をセットすることによって、サブルーチンの開始時に実行を開始するようにセットされる。ルーチンの最初の命令はブロック250に再び入るときアクセスされるであろう。パラメータがプログラムルーチンのために準備され、適当な状態条件がセットされ、PCBのプログラムレベル58が呼出プログラムより1つ高くセットされ、PCBは今現在のPCB(82)として実行スタックの先頭に置かれる。プログラムルーチンの結果はPコードRETURN動作を通して呼出人へ送られる。
【0109】
図16(B)において、対応するプログラムRETURN Pコード動作がいかに動作するかが見られる。ブロック1200はRETURNが最高の(唯一の)レベルのPCBからつくられるかを決定し、その場合これはEXITとして動作し、ブロック1204はPコード「EXIT」割込が要求されているという信号を送り、プログラム全体のRESULTとしてブロック261によって最終的に戻される(図15)べき値として(もしあれば)戻りRESULTを送る。
【0110】
さもなければ、ブロック1204において、(たとえば呼出人のPCBでフィールド54をチェックすることによって)呼出人がCALLまたは機能を使用したか否かに関する決定が行なわれ、後者の場合ブロック1206がスタック上に戻りVALUEを置く(またはRETURNがオペランドを有さなければ省略時の値を作成する)。
【0111】
ブロック1208において、現在のレベルが一掃され、記憶域、ファイル、変数などを含むこのサブルーチンに個人的な(別名「プログラムレベル」)すべての資源が開放される。呼出人と共用されない変数のような資源は開放されず、利用可能である。
【0112】
ブロック1210において、現在のPCBが開放され、それによって呼出人のPCBが現在のものとなり、ブロック256ヘ戻り、そこで実行が再開する。
【0113】
インタプリタはビルトインルーチンを含み、これらは移動プログラムへディジタル署名、ユーザファイルを与えることに関する特定の移動プログラム関連機能、および他の機能を達成して、移動プログラムの設計者がこのような機能をプログラミングすることに関与する必要性を除去する。
【0114】
Pコード動作はプログラム制御に影響を及ぼすRETURN機能の性能およびプログラム制御ブロックに関するPROC動作を含んでもよい。インタプリタはこの中に説明される対話式表示方法論/言語を使用するDISPLAY動作も行なう。インタプリタはTRAVERSE動作も行ない、その結果すべての関連データと同様別の受け手へ移動プログラムが「メイリング」される。
【0115】
図18は外部機能または呼出を実行するために行なわれる動作のシーケンスを例示的に示す。このような外部機能または呼出はインタプリタ、または移動プログラムの一部へは組込まれないが、むしろユーザのプログラムライブラリの一部に組込まれる。名前をつけられた機能または呼出は幾つかの可能性のあるライブラリのいずれかから354で位置決めされる。
【0116】
356においてプログラムが見つかったか決定するチェックが行なわれる。もしプログラムが見つからなければ、所望ならばプログラムが終了したか、または省略時の処置が行なわれたかを決定するチェックが358で行なわれてもよい。もし終了の決定がなされると、エラーメッセージが発生され、様々なハウスキーピング/クリーンアップ動作が前述のように行なわれた後プログラムが出される(360、362)。
【0117】
もしブロック358のチェックが省略時の処置がとられるべきであると示せば、たとえば特別な省略時機能値を戻す(368)ことによって省略時の処置がとられ、ルーチンは図14のノード0へ分岐して戻り、さらなるPコード命令の実行を開始する。
【0118】
もしプログラムがブロック356で行なわれたチェックの結果見つかれば、パラメータがプログラムによって構成される(364)。外部ルーチンの呼出は可能性のあるロールアウトとともにPコード割込を含む。これは、もし外部プログラムが冗長であるか、またはいかなる環境においてももし外部ルーチンが膨大であると、複数のユーザのスワッピング環境において記憶を保存することを許容し、したがって移動プログラムによって使用される記憶は外部プログラムを満足に行なうために空にされるべきである。この場合、Pコード割込がブロック366で信号によって送られる。示されるPRE−ROLLOUTルーチンはスタック(または変数)から一時記憶へ外部へコピーされる。INTER−ROLLOUTルーチンはEXTERNALルーチンを呼出し、いかなる戻された結果をも受け、POST−WAITルーチンは(もし外部ルーチンが機能として呼出されたならば)戻された結果をスタックへコピーする。
【0119】
外部ルーチンは実際に別の移動プログラムであることが可能である。もしそうであれば、Pコードインタプリタの既存の既にロードされた画像を使用し、新しいパラメータの組をブロック120へ単に送ることによって特別な最適化が行なわれてもよい(図7)。この場合、特別な論理がブロック262および264に挿入され、インタプリタのコード自体を開放することを条件付きで回避することが必要であろう。
【0120】
これよりこの実施例によって使用される様々な特別のビルトイン機能に注意が向けられる。これらの多くはビルトイン機能として、またはそれら自身の特別なPコード動作を伴う言語ステートメントとしてのいずれかで実行され得る。
【0121】
図20および21は移動プログラムがそれ自身を予め定められた受け手へ伝送するとき行なわれる動作を示す。ブロック398において、いかなるプログラム許可情報もまずチェックされ、トラバーサル動作が許容されることを保証する。(僅かな移動プログラムは移動することを許容されないかもしれないが、単に最初の使用で終了する幾つかの機能を行なうことは許容されることが考えられる。)プログラムが移動することを許容されない稀な場合には、特別な戻りコードが呼出人へ与えられる。
【0122】
この実施例はビルトイン機能として「TRAVERSE」動作を実現する。さらに、この機能は機能の直接の呼出人へ「0」を戻し、機能が受け手のコンピュータで再開された後呼出人へ「1」を戻すように規定される。先に説明したように、戻りコードのこの違いはプログラムが送り手および受け手のコンピュータ間の区別をすることを許容する。
【0123】
これを行なうためにブロック399では、TRAVERSE機能がまず実行スタック上に値「1」を予めロードし、スタックがそのままで伝送されることがわかる。これはしたがって移動プログラムが受け手のコンピュータ上で再構成され、再開されたとき戻されるであろう値である。「変数」情報テーブル、処理制御ブロック、様々なスタック、変数制御ブロックのようなすべての関連の変数データが、図2に示されるフォーマットのような伝送フォーマット内に集められる。
【0124】
ブロック402で示されるように、移動プログラムヘッダが構成され、伝送される。移動プログラムはセグメントごとに伝送されるが、実際にはフィールドごとのフォーマットで、または所望ならば何か別の方法で伝送され得る。好ましくは、ハッシュが各セグメントについてそれが伝送されるに伴いとられる。
【0125】
その後、404においてプログラムおよび移動プログラムとともに受取られた入力ファイルからのいかなる許可情報も出力伝送ファイルへコピーされる。「変数」セグメントは各変数の名前、現在値、および関連の状態を含んで伝送される(406)。この、または前のトラバーサル中ディジタル(許可)署名を行なう一部として集められたいかなる証明も伝送される。それゆえ、ディジタル署名動作が行なわれるときはいつも、408においてすべての関連の証明が移動プログラムの証明セクションに収集され、伝送される。署名はプログラム内で(すなわち変数制御ブロック内で)変数として保持される。現在好ましい実施例における証明はビルトイン機能呼出を介してアクセスされ得る材料として扱われる。
【0126】
代替的に、プログラム自体を認証し、許可する署名および全体の伝送の署名に関する証明でさえも証明パッケージ内に含むことが可能であろう。しかし、これはすべての証明が証明セグメントが書込まれたときに明瞭にわかることが必要であり、セグメントの論理および恐らく位置が最適な処理を保証するために再び順序付けされることが必要であろう。
【0127】
この実現において、ヘッダまたはプログラムセグメント内のプログラム許可情報によりプログラムの許可署名に関する証明と、クロージャセグメント内の署名によりユーザからユーザへの伝送署名許可のための証明とを保持することが好ましい。
【0128】
証明が伝送された後、すべてのファイル制御ブロックが調べられ、その結果410において前のトラバーサル中に伝送されているであろうすべてのファイルおよび新たに取付けられたファイルのいかなるものの検査も行なわれる。ブロック412において調べるべきファイル制御ブロックがまだあるか否かを決定するチェックが行なわれる。ブロック414で調べられたファイルがスケジュールされて切り離されたか否かを決定するチェックが行なわれる。もしそうであればルーチンは412へ分岐して戻り、ファイルまたはファイルタグのいずれも伝送のためにコピーされない。もしファイルがスケジュールされ、切り離されなければ、416でファイルタグ名が伝送内にコピーされる。
【0129】
関係のファイルが前方に運ばれている入ってくる移動プログラムの一部であるか否かを決定するチェックが行なわれる(418)。もしそれが入ってくるトラバーサルの一部であったと決定されれば、ファイル自体と同様入ってくるトラバーサルからのすべてのファイル属性が外部への伝送ファイルにコピーされる(422)。422でこの入力ファイル名は実行制御エリアXCAを介してアクセスされてもよく、ファイルの入力位置はファイル制御ブロックに関連する。
【0130】
もしファイルが入ってくるトラバーサルの一部ではないが、むしろ移動プログラム実行中に取付けられたものならば、ファイル、ファイルの型、およびその属性が420において伝送ファイル内にコピーされる。その後、ルーチンはブロック412に分岐して戻り、すべてのファイル制御ブロックが調べられるまで、調べるべきファイル制御ブロックがまだあるか否かを決定する。
【0131】
図21に示されるように、すべてのFCBのものが調べられると、全体のユーザからユーザへのディジタル署名がシステムプログラムによって要求されているかまたは必要とされているか否かを決定するチェックが430で行なわれる。このような全体の署名は伝送された情報との変更を検出することにおいて有用であろう。
もし全体のディジタル署名がとられれば、伝送されたすべての材料のハッシュ上のディジタル署名動作が行なわれる(432)。ディジタル署名動作は米国特許第5,005,200 号(または所望されるような関連の許可認証属性を有さない慣用的なディジタル署名技術)の教示に従って行なわれてもよい。ブロック432に示されるように、ハッシュは予め伝送の各部分についてとられた。代替的にハッシュがハッシュの各々についてとられてもよいことが注目される。ディジタル署名ステップは署名を行なうユーザ対話を含んでもよい。
【0132】
その後、正当性の立証が「クロージャ」セグメントとして伝送の終わりに与えられる。正当性の立証は前の材料を反映するハッシュを伝送することによって与えられる。サインされたハッシュは434においてユーザからユーザへの認証を示すべきである。最終署名の正当性を立証するのに必要ないかなる証明も証明セグメント内には既になく、CLOSUREセグメントに含まれるべきである。その後、伝送が436で閉じられる。
【0133】
最後にブロック437で、伝送されたプログラムのためにそれが受け手のところに到着したとき実行スタック上に予めロードされた値「1」が除去され、現在の呼出人へ戻されてそれがそれ自身を区別することを許容する値「0」と置換えられる。
【0134】
ディジタル署名を作成することは典型的に、恐らく証明を選択して個人のキーを開けるか、またはユーザに彼のディジタル署名トークン装置を作動することを求めることのようなユーザ対話を含み、図20および21に説明される材料が実際に好ましい実施例においてPコード割込ルーチンとして作動するであろう。一例として、TRAVERSE機能コードがPコード割込をトリガし、そこでブロック399から430までの論理がPRE−ROLLOUTルーチンとして作動するが、432のブロックは、前述のユーザ対話を必要とするであろうためINTER−ROLLOUTルーチンとして作動するかもしれない。ブロックはその後(434など)POST−WAITルーチンとして作動する。
【0135】
移動プログラムはそれ自身を何度もその実行中に様々な受け手へ伝送することが所望されるように設計され得る。このような多重伝送において、変数は各伝送に先立ち適切に変更され得る。この態様において、処理を行なう位置にあるプログラムは実現依存の態様で各受け手について異なる。
【0136】
図22は移動プログラムへファイルを取付けるための動作のシーケンスを示す。取付ファイルルーチンは識別されたファイルタグおよび識別されたファイル名に応答する。ブロック440で示されるように、同じタグを有するファイル制御ブロックが存在するか否かを決定するチェックが行なわれる。もしそうであれば、同じタグを有する前のファイルが442で削除される。
【0137】
その後、特定のファイル名がユーザによってアクセス可能な既存のファイルを反映するか否かを決定するチェックが行なわれる。この点で、移動プログラムはファイルにアクセスする能力を含むプログラムが行なうことができる動作範囲を規定するプログラム許可情報に関するものであってもよい。
【0138】
このようなプログラム許可情報はファイル名がアクセス可能であるか否かを決定するためにチェックされるであろう。もしファイル名がユーザによってアクセス可能でなければ、エラーコード/メッセージが446でユーザへ戻される。
【0139】
もしファイル名がユーザにアクセス可能であれば、ファイル制御ブロック(FCB)が特定のタグおよびファイル名によって組立てられ、ファイルが448で次の、かつ後に続く移動プログラムの伝送中に取付けられるであろう。ルーチンはその後ファイルがうまく取付けられていることを示して再開される。
【0140】
図23はユーザシステムからファイルがいかにして消去されるかを示す。「消去」機能が実行されようとするとき、機密保護コードが、プログラムがこのような動作を行なうことを許可されたかどうかを決定するためにチェックされる(450)。もし機密保護コードが、プログラムが特定のファイルを消去することを許可されたことを示せば(452)、消去動作が行なわれ、454でルーチンはファイルがうまく消去されたか否かを示し、分岐して戻る。代替的に、もしプログラムが消去動作を行なうことを許可されなければ、呼出ルーチンが、ファイルが消去されることができないということを示すエラーメッセージとともに戻される(456)。
【0141】
図24はファイルを移動プログラムから切り離す際行なわれる動作のシーケンスを示す。ブロック458に示されるように、切り離されるべきファイルに関する識別されたタグについてファイル制御ブロックが存在するか否かを決定するチェックが行なわれる。もしFCBが存在しなければ、主ルーチンが、ファイルが切り離されることができないということを示すエラーメッセージとともに462で戻される。もしファイル制御ブロックが458で決定されるように存在すれば、ファイル制御ブロックは460で削除され、主ルーチンが、ファイルがうまく切り離されたということを示して戻される。
【0142】
図25は、ファイルが「移出」されるべきとき、すなわちユーザファイルへ変形されるとき行なわれる動作のシーケンスを示す。移動プログラムはたとえば簡易言語を表わす特定のファイルをとり、移動プログラムがさらなる行先へ送られた後もこのようなファイルをユーザとともに残る受け手ユーザのファイルへ変換してもよい。「移出」されるべきファイルはタグおよび出力ファイル名、ならびにもし所望であればファイルが再び書込まれてもよいか否かを識別する再書込インジケータによって識別されるであろう。
【0143】
498でまずファイル制御ブロックが特定のタグについて存在するか否かがチェックされる。もしFCBが存在しなければ、適切なエラー表示コードが発生され、呼出ルーチンが(504)へ戻る。もしFCBが特定のタグとともに存在しなければ、ファイルが入ってくる移動プログラムの一部であるか否かを決定するチェックが500で行なわれる。もし移出されるべきファイルが入ってくるトラバーサルの一部でなかったならば、それはユーザによって取付けられており、既にユーザのファイル内に存在しているにちがいなく、したがって502で新たに取付けられたファイルを移出することが許容されないということを示すエラーメッセージが発生される。もしファイルが入ってくるトラバーサルの一部であったならば、特定のファイルが既に存在しているか否かを決定するチェックが行なわれる(480)。もしそうであれば、ブロック482で特定のファイルを再び書込むことが許可されるか否かを決定するチェックが行なわれる。このチェックはプログラムが(もし「オーバライティング」がなければ)特定の既存ファイルを変更するか、または(もし「オーバライティング」が許容されれば)特定のファイルを消去し、作成するかいずれが許容されるかを決定することを含む。もしそうでなければブロック484はプログラムへアクセスエラーを戻すために使用される。もし482のチェックが再書込を許可すれば、ファイルがオーバライティングされるべきか、または新たな材料がファイルの終わりに加えられるべきかに関する決定が行なわれる(486)。もしオーバライティングが486で示されれば、既存ファイルが消去される(488)。もしプログラム許可機密保全情報によって許可されれば新たなファイルが作成され、ファイルの初めに書込を開始するように準備がなされる(490)。
【0144】
もしオーバライティングが486で示されないが、新たな材料データが終わりに加えられるべきであれば、既存のファイルの終わりに加えることを開始する準備がブロック492に示されるように行なわれる。その後、データは入ってくるトラバーサルファイルにおける正しい位置から出力ファイルへコピーされ(494)、移出動作がうまく行なわれていることを示し、主ルーチンが再び入れられる(496)。
【0145】
図26は材料がディジタル的にサインされるべきとき行なわれる動作のシーケンスが例示的に示される。ディジタル署名機能の実現において、まずディジタルサイン動作がブロック510で示されるようにプログラムによって許可されるか否かを決定するチェックが行なわれる。プログラムがディジタル署名動作を行なうことを許可されるか否かは、プログラムに関連し、かつプログラムが許可を与えられない動作が行なわれないことを確実にするように実行するとき常に監視されるプログラム許可情報によって制御される。もしディジタル署名動作が許可されなければ、511でディジタル署名機能を拒絶するエラーメッセージが発生される。
【0146】
もしディジタル署名動作が許可されれば、ブロック514においてSIGN機能が、実際の署名を行なうことに関連するユーザ対話を行なうであろうINTER−ROLLOUTルーチン(図27に示される)による受信の準備において一時記憶へ(データ内容に必要とされる許可のような)パラメータとともにサインされるべきデータの画像を移動することによってユーザ対話の準備をする。
【0147】
ブロック512においてPコードルーチンは後述の割込ルーチンによって信号を送られる。
【0148】
もしディジタル署名許可が許可されれば、ユーザへどの証明が署名動作のために使用されるべきであるかを請求するために表示パネルが提示されねばならない。署名動作は引用によってここに明確に援用されている本発明者の米国特許第5,005,200 号に従って好ましくは行なわれる。ユーザは米国特許第5,005,200 号の線に沿って構成されたものを含むディジタル署名動作を行なうために広範囲の証明を所有してもよい。INTER−ROLLOUTルーチンはブロック509で記憶の多くがロールアウトされた後(署名ルーチン自体がむろん記憶内に残らねばならない)、制御が与えられる。
【0149】
もし署名を行なうために適当な証明がなければ、制御はブロック515に進み、サイン動作へ戻されるべきエラーインジケータを発生する。もし署名を行なうのに適当な証明が1つだけあれば、それは自動的に(513)へ送られる。もし1つより多くの適当な証明があれば、ユーザは選択することが求められる(516)。もしユーザが断れば(517)、適切なエラーインジケータが発生され、プログラムへ送られる(515)。さもなければ選択された適当な証明が(513)へ送られる。
【0150】
関連の個人のキーが次に位置決めされる(513)。もしブロック518がユーザのトークン上にそれが位置決めされることを決定すれば、それがディジタル署名を行なうことができるようにトークンへ通信を請求するためにステップ(524)が使用される。そうでなければ、ユーザの個人のキーは秘密のパスワードフレーズ下で暗号化されたシステムにおいて位置決めされる。ユーザはこのパスワードを請求され(520)、これは個人のキーを解読するために使用される。エラーまたは無効なパスワードが検出されれば、適切なエラーメッセージが発生される。本物のユーザ以外の誰かによって推量することを禁じるために、正しいパスワードを与える試行は限られた回数しか許容されない。
【0151】
ブロック522においてパスワードは個人のキーを解読するために使用され、これはひいては必要な許可に従ってメッセージをサインするために使用される。この動作の後、秘密の材料のすべての痕跡が消去され、署名および証明が一時記憶に戻される(268、図15)。(270)において一時記憶から実行スタックへ署名を動かすPOST−WAITルーチン(530)へ制御が与えられる。
【0152】
ブロック532において、動作が検査され、もしうまく行なわれていれば、サインする人の証明のプルーフ階層が得られる。証明はもし既に現われていなければ、(XCA(90など)に保持される)全体の証明収集物へ加えられる。
【0153】
図28は情報をユーザへ表示する際行なわれる動作のシーケンスを示す。移動プログラムは図28に関連して説明される表示レイアウト能力とともに関連される。移動プログラムのレイアウト能力は付加的に高められた能力とともにユーザの対話式表示モードにおける使用のためのアプリケーションをタイプセットすることに従来関連していた機能を適用する。
【0154】
画面は入力フィールドが容易に移動され、ユーザとの極めて融通性のある対話を行なうための様々な属性と関連され得るようにレイアウトされてもよい。様々な表示に関連する動作および機能はブロック540に要約される。表示はインタプリタの表示処理部分によって制御される特定のレイアウト定義処理に基づき出力を提示する。
【0155】
表示処理はレイアウト定義におけるフィールドおよびフィールドの集まりの条件属性および静的属性の分析を含む。表示処理サブルーチンにおいて、条件論理を使用する変数置換および反復が必要に応じて行なわれる。変数置換が許可されているが、このシステムは、たとえフィールドがレイアウト定義によって指示されるようにその最終出力位置へ流れ込まされても、入力変数とそのフィールドが対応する変数制御ブロック(VCB)における画面上の表示されるべき場所との間の結合を保持する。
【0156】
色、フォント、ボールド体(boldface) /イタリック、様式、サイズ、下線、ブリンク、反転映像、非表示(たとえばパスワードの隠蔽のため)、高輝度表示などを含む属性が各フィールドへ与えられる。さらに、可能性のあるエラーメッセージが検出されたエラー条件に適当な場所に挿入され、適切なカーソル位置が示される。
【0157】
ブロック540に使用されるレイアウト言語は画面出力の定義だけではなく入力を受け取るための定義も許可する。ブロック542に示されるように、アプリケーションによって適切に、入力フィールドを許容するユーザの端末へフィールドが書込まれる。前に述べたように、データ構造は、ユーザが適切な入力フィールドへのデータエントリーを行なった後に補助記憶へロールアウトされ(544)、ロールバック(546)されてもよい。
【0158】
このために、ステップ544はPコード割込の信号を実際に送り、ブロック545を関連のINTER−ROLLOUTルーチンとして、かつブロック546を関連の変数のためにVCBへ入力フィールドをマップして戻さなければならないPOST−WAITルーチンとして実行させることを含む。これはデータを一時記憶を介して通過させることを含む。
【0159】
その後、入力が分析され、入力データがすべての関連の変数に挿入される。すべての入力フィールドについて548でフィールドの正当性が立証される。それゆえ、多数のフィールドについて数字だけが入れられることを確実にするようにチェックが行なわれてもよい。同様に、入力フィールドが特定の属性を有するか否かを決定するチェックが行なわれてもよい。
【0160】
その後、ブロック550でフィールドのいずれかでエラーがあったか否かを決定するチェックが行なわれる。もしエラーがあれば、エラーメッセージが発生され、カーソルが誤ったフィールドに位置決めされ(552)、その後ルーチンが540へ分岐して戻り、エラーメッセージ表示を発生する。
【0161】
もし550のチェックで特定フィールドのエラーを明らかにすることができなければ、さらなるチェックが行なわれ、フィールドが脈絡において正しい(たとえば2つの隣接するフィールドが個々には正しいが、エラー条件がフィールドの組合せに関して規定されるかもしれない。)という相互確証が554で行なわれる。相互確証に基づき、フィールドが脈絡のエラーを含むか否かに関する決定が行なわれる。もしなければ、558で呼出人への復帰が行なわれる。もし脈絡のエラーがあれば、エラーメッセージがブロック552に従って発生される。
【0162】
個々のフィールドの双方の確証は完全にプログラムの制御下にあることが注目されるべきである。様々な仕様、利用ルーチンおよび共通の状況の取扱いの簡略化への便宜があってよいが、一般にいかなる可能性のある正当性立証も可能である。フィールドの相互の正当性立証がより意味的な関心を含んでもよく、したがって特別なプログラミングを必要とする傾向がある。
【0163】
図29は時間遅延ルーチンによって行なわれる動作のシーケンスを示す。時間遅延機能は予め定められた時間間隔で起きる(wake up)ために使用されてもよく、入ってくる電子郵便が到着したか否かを確かめるチェックを行ない、それ自身をそのメイルに取付け、それによって入ってくる電子データ変換を効率的に取り扱うために使用されてもよい。したがって、このような時間遅延機構を通して、移動プログラムはメイルが到着したかどうかをチェックするために特定のメイルボックスを予め定められた時間間隔で検査し得る。もしメイルが到着していれば、移動プログラムはさらなる受け手によって取扱われるべき行先へメイルを送ることができる。代替的に、移動プログラムは(メイルのような)入ってくるデータを検査し、様々な内容のインジケータに基づき自動的にトラバースを行ない、メイルを適切に処理し得るそれ自身の新しい「瞬間」を引き起こすことができる。むろん、最初の「瞬間」は到着するあらゆる瞬間に実行および処理を継続し得る。
【0164】
たとえば、もし入ってくる情報がたまたまEDIトランザクションであったならば、移動プログラムは(たとえばREADビルトイン機能を使用して)情報を読出し、それを壊して離し、内部変数にし、誰によって処理されるべきかを決定し、適切なトラバーサルを行なう。一度うまく送られれば、レターが処分、移動、または記録され、プログラムはその変数をクリアし、入力をさらに探すことを再開することができる。
【0165】
代替的に、到着した材料の型を決定した後、別のプログラムを呼出し、入ってくるデータを処理することができる。もし他方のプログラムがたまたま移動プログラムであれば、そのプログラムは必要な入力情報を与えられ、それ自体を取扱いに適切なようにTRAVERSEし得る。
【0166】
これはたとえば1つの移動プログラムがEDIトランザクションのような入来データのための自動ルータとして作用し、それ自体を取り扱う準備ができていないトランザクションを他の移動プログラムに渡すことを可能にするであろう。
【0167】
さらに、もしEDIがサインされれば、その移動プログラムは即座に署名を確証することができるであろう。もし署名が有効であれば、特にそれが米国特許第5,005,200 号に従って行なわれれば、内容に対する許可がプログラムに基づいて画面表示され、移動プログラムは自動的にインスタンスをスピンオフして、入来トランザクションを処理することができるであろう。
【0168】
たとえば、適切な高められた許可があれば、入ってくる買い注文は自動的にかつ瞬時に発送部に送られ、注文に応じることが可能であろう。
【0169】
到着したがサインされていない品物、または権限のある署名よりもむしろ単純な署名を使用した品物であれば、特例処理またはより詳細な検査のために様々な事務員に送られるであろう。
【0170】
ブロック570に示されるように、時間遅延ルーチンは指定された時間に対してシステムアラームクロックをセットする。その後、補助記憶へのデータのオプションのロールアウトが適切なルーチンでPコード割込をスケジューリングすることによって実行され(572)、その後指定された時間期間の経過後にデータのロールインが実行される。その後呼出ルーチンへの戻りが発生する(576)。
【0171】
図30は「ディレクトリから選択」機能のための一連の動作を示す。このディレクトリはファイルのディレクトリまたはユーザのディレクトリなどであり得る。はじめに、リストがすべての候補項目から580で作成される。その後ディスプレイは582でリストの少なくとも一部分を表示するように発生される。ユーザは示されたこれらの項目から選択する機会を有し(583、585)、その後この機能は機能結果としてかまたは特別な変数の組のいずれかとして、選択された項目の名前を戻す(584)。
【0172】
再び他で説明されたように、実際のWAITはPコード割込機能の使用によって実行される。この場合、INTER−ROLLOUTルーチンはユーザが選択肢から選択するのを待ち、入力をPOST−WAITルーチンを介してプログラム変数に戻す。
【0173】
図31はインタプリタプログラムがユーザがディジタル署名を実行することをどのように許容するかを示すルーチンである。ブロック600に示されるように、ディジタル的に署名されるべきデータはプログラムがアクセスすることが可能なデータに基づいて組立てられ、これにはユーザが供給した入力、ファイルから読出されたデータ、前のトラバーサルから蓄積されたデータ、ユーザの環境に基づくデータ(たとえばユーザのTSO名)、時間、プログラムそれ自体に組込まれたデータ、およびビルトイン機能から引出されたデータ(たとえばビルトインX12データディクショナリ)が含まれる。適切な情報がユーザに表示される(602)。ユーザはそれから、ブロック604に示されるように、自分がデータにサインしたいかどうかを決定する。もしユーザが署名を実行したいことを示せば、システムは、図26に例示されるように、署名機能を呼出し、さらにユーザと対話し、署名を完了する(606)。その後608でディジタル署名が発生されプログラム変数として保管される。
【0174】
図31およびそれに続くフローチャートは、どのようにユーザがそこに説明された移動プログラム法を利用しながら、比較的少ない動作を行なって、前述のインタプリタに組込まれた強力な機能を達成するかをある程度示す。
【0175】
図32はユーザがどのように受信された情報を確証するかを例証する。ブロック610に示されるように、確証されることが期待されるデータが組立てられる。その後、組立てられたデータおよび保管されたディジタル署名とともに任意の可能な権限要求を有する「確証」機能が呼出される。確証機能は米国特許第5,005,200 号で述べられたように、または従来のディジタル署名動作が変数をサインするために利用される場合には標準的なディジタル署名技術を使用して、達成され得る。その後、ブロック回路12の処理に基づいて署名が確証されたかどうかが決定される(614)。もしそうであれば、プログラム実行が続行される。もしそうでなければ、誤り状態は616でそのデータが不当にも変更されたか、または何からの種類のプログラミングエラーがあったことを示すことになる。戻りコードは署名が無効であるかどうか、それが許可能力を支援したかどうか、およびもしそうであればその許可が確認されたかどうかをプログラムが区別することを可能にするように規定される。
【0176】
図33は移動プログラムがどのように転送されるべきファイルを集めるかを例示す。はじめに、プログラムは620でたとえばユーザにファイルのリストを表示することによって転送されるべきファイルを決定する。ファイルを決定するためにユーザ対話をする必要があるかどうか決定するためにチェックが行なわれ得る(622)。もしイエスであれば、ユーザは624で転送されるべきファイルを決定するように促される。もしファイルを決定するためにユーザ対話を行なう必要がなければ、全体のファイル内容は626で転送されるべきデータの組に付けられる。動作は図22に述べられた付加された機能を使用して達成され、この図は前に説明されたようにファイルコントロールブロックを構築することを含む。
【0177】
図34は指定されたファイルからデータを読出す際に実行される移動プログラム動作を例示する。はじめに読出されるべきデータを含むファイルが決定される(630)。その後、632でデータが指定されたファイルから読出されプログラム変数として保管される。図35は移動プログラムがどのようにプログラム変数からファイルを更新または作成し得るかを例示する。ブロック640に示されるように、その中にデータが書込まれるべきユーザファイルがまず決定される。その後、642でプログラム変数をユーザファイルに書込む機能が呼出される。
【0178】
すべての場合に明らかに説明されていなくても、データ損失、変更、損傷または露見につながり得るプログラム機能であれば何でも、セキュリティコントロールの支配下にあることが理解されなければならない。このようなコントロールはプログラムレベルで与えられるかまたは入来プログラムに結びつけられ、恐らくはやはりユーザによって課せられるものと或る予め定められた態様で組み合わされることによって行なわれる。
【0179】
したがって、たとえば上述の場合には、移動プログラムはもしプログラムがそのように権限づけられればユーザのデータファイルを読出すかまたは書込むことができるだけである。
【0180】
セキュリティ制約は少なくとも以下のクラスの機能に対して存在する。
データをユーザに表示する。
【0181】
入力をユーザから請求する。
ディジタル署名を実行する。
【0182】
ユーザファイルからデータを読出す。
ユーザファイルを作成する。
【0183】
ユーザファイルを消去する。
データをユーザファイルに書込む。
【0184】
ユーザファイル名を変える。
ユーザファイルを付加する。
【0185】
付加されたファイルをユーザファイルに出す。
ディジタル公証装置を呼出す。
【0186】
入来する電子メイルを受信する。
電子メイルの内容を読出す。
【0187】
入来するメイルを移動または記録する。
入来するメイルを消去する。
【0188】
外部へ行く電子メイルを作成する、または様々なタイプのデータ送信を行なう。
【0189】
様々なタイプの装置、デバイスおよびサービス(FAX、プリンタ、オフィス機器、ロボット装置、製造装置など)に結合される。
【0190】
プログラムトラバーサルを実行する。
外部プログラムを呼出す。
【0191】
他の移動プログラムをアクセス、更新、能動化、消去、変更、呼出し、または付加する。
【0192】
図36はどのように移動プログラムが分割され多数の異なった受信者に送られるように設計され得るかを例示し、図37はどのように前に分割されたプログラムが併合され得るかを示す。
【0193】
まず図36を参照して、移動プログラムはたとえば多数の異なった受信者からサーベイデータを獲得するために、またはデータを集めるもしくは組織の多数の異なった幹部にデータを分配するために、移動プログラムを分割する必要があるかもしれない。はじめに、移動プログラムは650で分割の準備をするために様々なハウスキーピング動作を実行する。その後、変数は652で特定のアプリケーション要求、たとえば特定のユーザによって実行されるサーベイに従って設定される。654で行先ユーザが決定され、図20および図21に従ってトラバース機能が呼出され、プログラムのイメージ、プログラム変数とともに個々の受信者に適合された任意の他の適切なデータを送信する。送信された変数はインスタンス1(656)からインスタンス2(658)、インスタンス3(660)、そしてインスタンスN(662)へと変化し得る。
【0194】
それに対して送信すべきより多くの行先があるかどうかを決定するためにチェックが最終的に行なわれる(664)。もしそうであれば、ルーチンは652に分岐して戻り、さらなる行先に送信する。もしさらなる行先がなければ、最終的な転送が654に対して上で説明されたのと同一の態様で666で実行され、668で最終的な「インスタンス」をもたらし、その後分割動作の完了になる。
【0195】
他の例において、マスタプログラムが単に何らかの他の処理に進むこともあり得る。恐らく、もしそれが入力ディストリビュータのようなバッチ環境で実行していれば、かつすべての入力が現在使い尽くされていれば(多数のユーザにスピンオフされたばかりで)、それは何か他のものが到着するまで遅延するであろう。
【0196】
図37の併合動作を参照して、移動プログラムはそれ自体をユーザからユーザに転送して、併合動作が完了するまでデータをさらに併合するインテリジェンスを有する。はじめに、移動プログラムは併合行先に到着し実行される(680)。これが予め定められた変数が設定されることによって決定されるマスタ「インスタンス」であるかどうかを決定するためにチェックが行なわれる。もし682でこれがマスタインスタンスでないことが決定されれば、684でスレーブインスタンスが識別される。(685)で、スレーブプログラムはそれが特別な「DEBRIEF」パラメータで呼出されたどうかをチェックし(これはいつスレーブがマスタによって呼出されているかを決定するためにこのプログラムによって使用される単なる規約である)、もしそうなら(687)、すべての適切な情報はマスタインスタンスに戻り、退出する。もしこれがDEBRIEF呼出しでなければ、マスタインスタンスが利用可能であるかどうか、つまり既に到着しているかを決定するために686でチェックが行なわれる。もしマスタインスタンスが利用可能であれば、図18に示される呼出の使用によって、696でマスタインスタンスへの呼出が行なわれる。マスタインスタンスが呼出された後、ルーチンはブロック680に分岐して戻る。もしマスタが利用可能でなければ、688でその連続に対するマスタコントロールがまだ到着していないというメッセージが発せられる。
【0197】
マスタインスタンスが到着し、呼出されたと仮定して、ブロック682で、これがマスタインスタンスであることが決定され、692で何か他のスレーブインスタンスが到着したかどうかを決定するためにチェックが行なわれる。もしそうであれば、スレーブインスタンスは予め定められたパラメータで呼出され、694でデータの収集を開始する(恐らく「デブリーフィング(debriefing)」と呼ばれる)。エントリポイントAでデータはインスタンスから集められ、706でマスタに戻され、収集ファイルに書込まれる。その後呼出されたばかりのインスタンスは708で消去され、ルーチンは692に分岐して戻り、その場合には他のインスタンスが到着したかどうかのさらなる情報が集められる。
【0198】
もし他のさらなるインスタンスが到着していなければ、そのファイルはすべてのインスタンスがすべて到着したかどうかを見るためにチェックされる(698)。もしそれらが到着していれば、700で決定されたように、データは収集から移動プログラムの変数に読込まれ得る。収集ファイルの予想されるサイズおよび処理の性質に依存して、その瞬間に完成されたファイルを処理し、それ自体を次の行先にトラバースするか、またはその結果を大切に保護して単純なメッセージ、恐らくはEDIトランザクションにし、その生のデータを単に送信することが、マスタプログラムにとってより望ましいかもしれない。
【0199】
他の場合において、プログラムがファイルをそれ自体にATTACHし、それを大量に別のプロセスに転送することが適切であるかもしれない。704でそのファイルは消去され、集合体データは次の行先に送信される。もしすべてのインスタンスがまだ到着していなければ、「形式が到着するのを待つ」のようなメッセージが発行され(702)、ルーチンは一時的に退出させられる。
【0200】
図38は以前に分割された移動プログラム情報を併合するための代替のアプローチを示す。ブロック710で示されるように、移動プログラムは併合行先に到着し、実行される。収集されたデータは712で特別ファイルに書込まれる。714に示されるように、すべての他のインスタンスが到着したかどうかを決定するためにチェックが行なわれる。もしそうであれば、収集されたデータは716で処理され、プログラムは718で次の行先にトラバースし、ルーチンは退出させられる。もしすべての他のインスタンスが714で決定されたように到着していなければ、「より多くの形式が到着するまで待つ」のようなメッセージが表示され(720)、現在のインスタンスは722で消去され、ルーチンは退出させられる。
【0201】
図39は移動プログラムが電子データ交換(EDI)生成機能を収容するためにどのように設計されたかを示すフローチャートである。図39は特定の「X12」標準特徴がどのように使用され得るかをより具体的に示す。X12標準は関連するデータディクショナリおよびセグメントディクショナリを有する。X12セグメントディクショナリは、たとえば、買い注文を規定するために必要なすべてのセグメントを規定するために使用され得る。各セグメントはその後ディクショナリで調べられる一片のデータであるとして規定される。項目の量を特定するために多くの異なった方法があるので、データの多くの変化がX12で許容される。
【0202】
このシステムはX12データディクショナリをビルトイン機能と呼ばれ得るインタプリタにはめ込む。ブロック720で示されるように、はじめセグメント名前および項目「XX、YY、WW、..」を特定することによってX12サブルーチンへの呼出が行なわれる。プログラムは組織の環境に典型的な人気のある共通オプションにX12データコードを与えることが可能であり、その結果通常の使用のためにオプションの短いリストを構築することが可能である。このような項目の例は買い注文脈絡において、項目数、部品数および量である。この呼出はビルトインデータディクショナリへの呼出になる。
【0203】
その短いリストが空であるかどうかを決定するためにチェックが行なわれる(724で示されるように)。もしそうであれば、セグメント名が736ですべての関連するデータオプションのセグメントディクショナリテーブルを場所決めするビルトイン機能X12SEGLISTを呼出すために使用される。その後、X12DATANAMEビルトイン機能はデータディクショナリを使って738で各関連する説明データを拡張するために使用され、長い完全なリストが740で表示される。
【0204】
もし724でのチェックが短いリストがあることを示せば、X12DATANAMEデータディクショナリは短いリストのオプションの各々の拡張された記述を場所決めするために使用される。その後728で短いリストが表示される。その後ユーザが730で示されたような完全な長いリストを望んでいるかどうかを決定するためにチェックが行なわれる。もしその答えがイエスであれば、ブロック736は上述のように実行される。もしノーであれば、短いリストかまたは長いリストのいずれかからのユーザの選択が受け入れられる(732)。
【0205】
すべてのデータが集められるかどうかを決定するためにブロック734でチェックが行なわれる。もしそうであれば、我々は742で完成されたX12トランザクションを組立てかつ発行し、それからそのルーチンを退出させる。742に関連して参照される発行動作に対して、この発明は全体の移動プログラムをメイルすることに加えて、特定の組のX12データをメイルする能力を熟慮する。もしすべてのデータが734のチェックによって示されるように集められなければ、より多くのデータ項目が検索され、ルーチン実行が繰返される。
【0206】
図40は電子データ交換トランザクションを受信する際の移動プログラムの用途に関連する。たとえば、特定のユーザは移動プログラムが発生した買い注文を受信したかもしれない。はじめに、受信されたEDIトランザクションは750で読出される。恐らくタイマ遅延によって、図29を使って説明されたように、入力としてそれ自体のコピーを産出する移動プログラムが到着する。符号化されたEDIはそれから752でプログラム変数に構文解析される。受信されたEDIはそれから記録保管所に移動され、可能な監査のために受信されたものを保存する。このセグメントは756で結合されたセグメントディクショナリを経て処理される。X12に関連するセグメント規則は強化され、それはたとえば758で特定のフィールドの或る種類のデータを有しないことに関連するかもしれない。各データ項目に対して、各セグメントに関連するデータディクショナリは760で場所決めされる。DESC=X12DATANAME(SEGCODE,DATA ITEM)である762で示されるようなステートメントに対して、このステートメントはデータディクショナリへの呼出という結果になり、データ項目の意味のある記述を得るであろう。検索された意味のある記述は表示変数におかれ、その結果たとえば買い注文フォーマットでの買い注文の表示になる。すべてのデータ項目はブロック762に分岐して戻ることによって処理され、すべてのセグメントは756に分岐して戻ることによって処理される。
【0207】
この好ましい実施例はまたディジタル公証、本発明者の米国特許第5,001,752 号(引用によりここに援用する)によって説明されるような公証装置、または同様に他の装置にアクセスすることが可能なビルトイン機能を与えることによってディジタル公証機構へのアクセスを許容する。
【0208】
移動プログラムがそのような機構にアクセスすることを許容することによって、移動プログラムはデータをプラットホームに移動させることが可能であり、そこではディジタル公証は容易にアクセスされ、そのようにするためにビルトイン機能を使用する。これは重要な署名、入ってくるトラフィックのための、または何らかの他の理由のためのタイムスタンプのための公証を可能にする。このような公証はプログラムの厳しい制御下にあるので、自動的であろうとユーザ要求に基づくものであろうと任意の基準が使用され得る。
【0209】
やはり以前に説明されたように、この機構は外へ出ていくFAXへの結合を考慮しており、その結果電子形式は、EDIに変換されるまたは印刷されることに加えて、最終的な受信者にFAXすることも可能であるようにされる。
【0210】
また明らかに述べられていないが暗に示されているように、移動プログラムがEDIトランザクションを発しているときでさえ、それは依然として後で能動化されてもよい。一例はまずはじめに電子要求として機能し、それから十分な是認署名の後、買い注文を発生する移動プログラムであろう。それはその後それ自体を保管所に送り、そこで対応するインボイスおよび請求書が最終的に到着(電子的または他の態様で)したときに再び能動化され、その注文を受け取った船積および請求書と一致させるための方法として機能し得る。それはどの項目が受け取られ、どれがまだペンディングであるかを追跡する論理を組込み得る。それ自体を柔軟に方向づける能力のために、それは多くの異なった場所に広がり得る。船積および受取りを扱う限りにおいて、移動プログラムをバーコードリーダと結合し、人間のデータ入力なしに送りかつ受け取られる材料を実証することもまた可能である。
【0211】
好ましい実施例は移動プログラムがオフィス機器および他の装置ならびに機構を含む様々な装置に結合され得ることを想定する。
【0212】
また、任意の所与のトラバーサルは様々な受信者に同時に送られ得る。
以下のリストは好ましい実施例が実行することが可能な上述の機能の多くを繰返しかつ要約する(かつ幾つかの付加的な機能を識別する)。このリストは例示のみであり、この発明が有利に適用され得る他の多くのアプリケーションを余すところなく示すことが意図されるものではない。
レイアウト言語(たとえばTxXまたはSCRIPTに類似)を使用してユーザにデータを表示する。
【0213】
レイアウト型言語(TeXまたはSCRIPTに類似)を使用してユーザから入力を請求する。
【0214】
プログラムコントロール下で計算されたデータのためのディジタル署名を実行する。
【0215】
プログラムコントロール下で計算されたデータに基づいてディジタル署名を確証する。
【0216】
署名者の証明から引出された提案を送ることを恐らく含んで共同署名を処理する。
【0217】
ユーザファイルからデータを読出す。
ユーザファイルを作成する。
【0218】
ユーザファイルを消去する。
データをユーザファイルに書込む。
【0219】
ユーザファイル名を変える。
入来する電子メイルを受信する。
【0220】
電子メイルの内容を読出す。
入来するメイルを移動または記録する。
【0221】
入来するメイルを消去する。
外へ行く電子メイルを作成する。
【0222】
外へ行くFAXサーバーに結合するおよびそれを制御する。
プリンタに結合するおよびそれを制御する。
【0223】
グラフィカルイメージを作成する。
オーディオ信号を送受信することが可能なデバイスに結合するおよびそれを制御する。
【0224】
オフィス機器、コンピュータ機器(テープ、ディスクなど)、ロボット装置、製造装置などを含む様々なタイプの装置にアクセスする。
【0225】
移動プログラムのインスタンスを多重トラバーサルによって幾つかのインスタンスに分割する。
【0226】
恐らく同一のプログラムを示すことさえせずに、幾つかの移動プログラムに含まれたデータを単一の形式に再結合することが可能である。
【0227】
移動プログラムの他のインスタンスを消去する。
外部プログラムを呼出す。
【0228】
サブルーチンとして他の移動プログラムを呼出す。
独立して実行する機能として他の移動プログラムを能動化する。
【0229】
ドーマント(非実行)移動プログラムからデータを抽出する。
プログラムの名前、他の状態などのような、それを実行する必要性を伴わずに他の(非実行)移動プログラムについての情報を決定する。
【0230】
ディジタル署名に関連する証明から情報を抽出する。この情報はもし共同署名要求が含まれれば直接送ることを助けるために使用される。
【0231】
他のプログラム内のデータ変数として移動プログラムのコピーをつくる、またはファイルとして他のものへ移動プログラムをATTACHする。
【0232】
1つの移動プログラム(「キャリア」)を他のものの新しいバージョンを様々な行先に輸送するために使用し、現存するインスタンスのプログラムセグメントをそのプログラムのより最新のバージョンである別のものと置換える。こうするための1つの方法は、より新しいプログラムセグメントが現存する移動プログラムの端部に加えられるようにすることである。現存するインタプリタ/ローダの増強は、クロージャセグメントに従うプログラムセグメントは提案されたプログラム改訂を反映したことを認識するであろう。どんな通常送信でも実行された後に、提案された改訂されたプログラムに関連するディジタル署名を実証し、もしそれらが適切な権限を実行していれば、標準トラバーサルの一部として到着したプログラムの代わりに新しいプログラムを使用し始めるであろう。
【0233】
ユーザファイルを付加する。
付加されたファイルをユーザファイルに出す。
【0234】
前に付加されたファイルを取り除く。
ディジタル公証装置にアクセスする。
【0235】
プログラムトラバーサルを実行する。
ユーザデータを送信し(トラバーサル以外で)、その結果その送信は移動プログラムそれ自体を含まないようにする(たとえばメッセージを他の行先に単に送る)。
【0236】
EDI(たとえばX12またはEDIFACT)の使用、作成、表示、構築および受信を単純化するためのビルトイン機能を使用して、移動プログラムのこれらの機能を供給する必要性を伴わずに、共通の情報および機構を便利に供給する。これはデータエレメントディクショナリ、セグメントディクショナリ、セグメント規則およびトランザクションセット自体にアクセスするビルトイン機能を含む。
【0237】
この発明を現在最も実際的な実施例であると考えられるものと関連して説明してきたが、この発明は開示された実施例に制限されるものではないことが理解されなければならず、それとは反対に前掲の特許請求の範囲の精神および範囲内に含まれる様々な修正および等価の配列をカバーすることが意図される。
【図面の簡単な説明】
【図1】本願発明の例示的実施例に従う通信システムのブロック図である。
【図2】移動プログラムとその関連するコンポーネントの例示的構造を示す図である。
【図3】例示的実行制御領域データ構造を示す図である。
【図4】移動プログラムがファイルをそれ自体に取り付けまたはそれ自体からファイルを外す際に使用されるファイル制御ブロック(FCB)のデータ構造を示す図である。
【図5】移動プログラムの実行の際に使用される処理制御ブロックを示す図である。
【図6】変数を制御するために使用される変数制御ブロックデータ構造(VCB)を示す図である。
【図7】例示的移動プログラムローダの図である。
【図8】ヘッダがロードされる様子を示す図である。
【図9】移動プログラムの「プログラム」セグメントがロードされる様子を示す図である。
【図10】移動プログラムの「変数」セグメントがロードされる様子を示す図である。
【図11】移動プログラムの「証明」セグメントがロードされる様子を示す図である。
【図12】移動プログラムの「ファイル」セグメントがロードされる様子を示す図である。
【図13】移動プログラムの「クロージャ」セグメントがロードされる様子を示す図である。
【図14】Pコード命令の処理の際に行なわれる動作を表わす図である。
【図15】Pコード動作が行なわれた後に行なわれる処理を示す図である。
【図16】(A)および(B)はプログラム規定による機能または呼出を取り扱うための処理を示す図である。
【図17】内蔵機能を取り扱うための動作のシーケンスを示す図である。
【図18】外部機能または呼出を実行するために行なわれる動作のシーケンスを示す図である。
【図19】外部機能または呼出を実行するために行なわれる動作のシーケンスを示す図である。
【図20】移動プログラムがそれ自体を予め定められた受け手に対しメイルする際に行なわれる動作を示す図である。
【図21】移動プログラムがそれ自体を予め定められた受け手に対しメイルする際に行なわれる動作を示す図である。
【図22】移動プログラムに対しファイルを取り付けるための動作のシーケンスを示す図である。
【図23】ファイルがユーザのシステムから消去され得る様子を示す図である。
【図24】移動プログラムからファイルを取り外す際に行なわれる動作のシーケンスを示す図である。
【図25】ファイルがユーザのファイル内に変換されたときに行なわれる動作のシーケンスを示す図である。
【図26】資料がディジタル的にサインされる場合に行なわれる動作のシーケンスを示す図である。
【図27】「INTER−ROLLOUT」機能により行なわれる動作のシーケンスを示す図である。
【図28】情報をユーザに対し表示する際に行なわれる動作のシーケンスを示す図である。
【図29】「時間遅延」ルーチンにより行なわれる動作のシーケンスを示す図である。
【図30】「名簿からの選択」機能のための動作のシーケンスを示す図である。
【図31】インタプリタプログラムによってユーザがディジタル署名を行なうことが可能になる様子を示すルーチンを示す図である。
【図32】受け取られた情報をユーザが確証する様子を示す図である。
【図33】移動プログラムが伝達されるべきファイルを収集する様子を示す図である。
【図34】特定されたファイルからデータを読出す際に行なわれる移動プログラムの動作を示す図である。
【図35】移動プログラムがプログラム変数からファイルを更新またはつくり出し得る様子を示す図である。
【図36】移動プログラムが分割されるべく設計されかつプログラムを数々の異なる受け手に対し送り得る様子を示す図である。
【図37】事前に分割されたプログラムがマージされ得る様子を示す図である。
【図38】事前に分割された移動プログラム情報をマージする代替的方策を示す図である。
【図39】移動プログラムが電子文書交換発生機能を受け入れるべく設計された態様を示すフローチャートである。
【図40】電子データ交換トランザクションを受ける際の移動プログラムの使用について示す図である。
【符号の説明】
2…処理装置W/主メモリ
4…キーボード/CRT
6…モデム
12…通信チャネル

Claims (11)

  1. 複数個のコンピュータと、前記複数のコンピュータが結合されるチャネルとを有し、前記複数のコンピュータが前記チャネルを介してメッセージを交換することが可能なコミュニケーションシステムにおいて、前記コンピュータ間で情報を処理するための方法であって、
    コンピュータに命令の組を含む第1の移動プログラムを与えるステップを含み、前記命令の組は、前記命令の組を受信するべき少なくとも1つの次の行先を決定する命令と、前記命令の組を少なくとも行先および実行すべき処理を規定するデータおよび移動中に収集されたデータを含む添付データとともに前記次の行先に送信するための命令を含み、
    前記第1の移動プログラムの実行に応答して、前記複数のコンピュータのうちのすくなくとも1つに第2の移動プログラムを与えるステップを備え、前記第2の移動プログラムは、前記第1の移動プログラム処理と別個の処理を実行するように前記第1の移動プログラムの命令の組と別個の命令の組を有し、
    前記第1の移動プログラムの処理と別個の処理を第2の移動プログラムが行うように第2の移動プログラムを実行するステップと、
    前記添付データに含まれる許可情報に従って、前記すくなくとも1つのコンピュータで前記第2の移動プログラムが実行することのできる処理を前記第2の移動プログラムが実行可能な処理全てよりも少ない処理に制限するステップとを含む、方法。
  2. 前記コンピュータは前記第1の移動プログラムを実行して、前記第2の移動プログラムによって実行されるべき処理を規定するデータを前記第2の移動プログラムに与えるステップをさらに備える、請求項1に記載の方法。
  3. 前記第2の移動プログラムを実行して前記第2の移動プログラムのデータを前記第1の移動プログラムに戻すステップをさらに備える、請求項1に記載の方法。
  4. 前記第1および第2の移動プログラム両者は、これらの移動プログラムおよびデータが様々なコンピュータシステムおよびハードウェアアーキテクチャ上で解釈され得るようなフォーマットで送信される、請求項1に記載の方法。
  5. 前記フォーマットは少なくとも2つの異なる形式のコンピュータで処理することが可能である、請求項4に記載の方法。
  6. 前記コンピュータにより第1の移動プログラムを実行して前記第2の移動プログラムをメモリから消去するステップをさらに備える、請求項1に記載の方法。
  7. 前記第2の移動プログラムは添付データとしてインスタンスを有し、前記第2の移動プログラムを実行して前記インスタンスを処理した後、前記第2の移動プログラムのインスタンスを前記第2の移動プログラムに保存するステップをさらに備える、請求項1に記載の方法。
  8. 複数個のコンピュータと、前記複数のコンピュータが結合されるチャネルとを有し、前記複数のコンピュータが前記チャネルを介してメッセージを交換することが可能なコミュニケーションシステムにおいて、前記複数のコンピュータ間で情報を処理するための方法であって、
    第1のコンピュータに第1の命令の組を与えるステップを含み、前記第1の命令の組は、前記第1のコンピュータによって実行され、かつ前記第1の命令の組を受信すべき少なくとも1つの次の行先を決定する命令と、前記第1の命令の組を少なくとも行先および実行すべき処理を規定するデータおよび移動中に収集されたデータを含む添付データとともに前記次の行先に送信するための命令を含み、さらに
    前記第1の命令の組に含まれるファイル選択命令を行してファイルを選択するステップと、
    前記第1のコンピュータにより前記第1の命令の組を実行して、前記ファイルの情報を前記ファイルに関連する情報とともに前記次の行先に送信するステップと、
    前記第1のコンピュータにより前記第1の命令の組行して、前記第1の命令の組と異なる第2の命令の組を前記次の行先に与えるステップとを備え、前記第2の命令の組は前記第1の命令の組と別個の処理を行い、かつ前記添付データに含まれる許可情報に従って前記第2の命令の組が実行することのできる処理を、前記第2の命令の組が実行することのできる処理のすべてより少ない処理に制限するステップを備える、方法。
  9. 少なくとも前記第2の命令の組にディジタル的にサインするステップをさらに含む、請求項8に記載の方法。
  10. 少なくとも前記第2の命令の組の少なくとも一部のハッシュ値を計算して前記少なくとも一部の安全性を確保するステップをさらに含む、請求項8に記載の方法。
  11. 複数個のコンピュータと前記複数のコンピュータが結合されるチャネルとを有し、前記複数のコンピュータが前記チャネルを介してメッセージを交換することが可能なコミュニケーションシステムにおいて情報を送るための方法であって、
    第1のコンピュータに命令の組を与えるステップを含み、前記命令の組は、各々が前記命令の組を含む複数個のインスタンスを発生する命令と、前記インスタンスのうちの1つをそれに添付された少なくとも行先および実行すべき処理を規定するデータおよび移動中に収集されたデータを含む添付データとともに各々受信する少なくとも第1および第2の行先への送信を開始する命令を含み、さらに
    前記第1および第2の行先に送信された前記インスタンスの命令の組は、それぞれ個々の送信経路の間に蓄積されたデータを後で併合する命令を含み
    前記添付データに含まれる許可情報に従って、前記第1および第2の次の行先で前記命令の組が実行することのできる処理の組を前記命令の組が実行可能な処理のすべてよりも少ない処理に制限するステップと、
    前記第1のコンピュータにより前記送信の開始前に前記添付データに含まれ変数を設定して1つのインスタンスをマスタインスタンスとして設定するステップと、
    併合行先においてコンピュータにより前記マスタインスタンスを制御して前記マスタインスタンス以外の他のインスタンスが前記併合行先に到達したときに前記他のインスタンスからデータを抽出するステップとを含む、方法。
JP07930293A 1992-04-06 1993-04-06 コミュニケーションシステムにおけるコンピュータ間で情報を処理するための方法 Expired - Fee Related JP3898769B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US86355292A 1992-04-06 1992-04-06
US863552 1992-04-06

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2004169277A Division JP3973647B2 (ja) 1992-04-06 2004-06-08 コミュニケーションシステムにおいてコンピュータ間で情報を処理する方法

Publications (2)

Publication Number Publication Date
JPH06295286A JPH06295286A (ja) 1994-10-21
JP3898769B2 true JP3898769B2 (ja) 2007-03-28

Family

ID=25341285

Family Applications (2)

Application Number Title Priority Date Filing Date
JP07930293A Expired - Fee Related JP3898769B2 (ja) 1992-04-06 1993-04-06 コミュニケーションシステムにおけるコンピュータ間で情報を処理するための方法
JP2004169277A Expired - Lifetime JP3973647B2 (ja) 1992-04-06 2004-06-08 コミュニケーションシステムにおいてコンピュータ間で情報を処理する方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2004169277A Expired - Lifetime JP3973647B2 (ja) 1992-04-06 2004-06-08 コミュニケーションシステムにおいてコンピュータ間で情報を処理する方法

Country Status (11)

Country Link
US (2) US5390247A (ja)
EP (2) EP1031908A3 (ja)
JP (2) JP3898769B2 (ja)
AT (1) ATE198800T1 (ja)
AU (1) AU662805B2 (ja)
CA (1) CA2093094C (ja)
DE (1) DE69329869T2 (ja)
DK (1) DK0565314T3 (ja)
ES (1) ES2153371T3 (ja)
GR (1) GR3035527T3 (ja)
PT (1) PT565314E (ja)

Families Citing this family (199)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3200877B2 (ja) * 1991-09-03 2001-08-20 株式会社日立製作所 オフィス情報処理システム
US5557780A (en) * 1992-04-30 1996-09-17 Micron Technology, Inc. Electronic data interchange system for managing non-standard data
ATE177857T1 (de) 1992-05-15 1999-04-15 Addison M Fischer Verfahren und vorrichtung zur sicherheit eines computersystem mit programmberechtigungsdatenstrukturen
JPH06110925A (ja) * 1992-09-28 1994-04-22 Hitachi Ltd ネットワークで接続された計算機とその利用方法
US7209901B2 (en) 1992-12-15 2007-04-24 Sl Patent Holdings Llc C/O Aol Time Warner Method for selling, protecting, and redistributing digital goods
US7831516B2 (en) * 1992-12-15 2010-11-09 Sl Patent Holdings Llc System and method for redistributing and licensing access to protected information among a plurality of devices
US6266654B1 (en) * 1992-12-15 2001-07-24 Softlock.Com, Inc. Method for tracking software lineage
US7089212B2 (en) * 1992-12-15 2006-08-08 Sl Patent Holdings Llc System and method for controlling access to protected information
AU683038B2 (en) * 1993-08-10 1997-10-30 Addison M. Fischer A method for operating computers and for processing information among computers
US5475756A (en) * 1994-02-17 1995-12-12 At&T Corp. Method of authenticating a terminal in a transaction execution system
US5668878A (en) * 1994-02-28 1997-09-16 Brands; Stefanus Alfonsus Secure cryptographic methods for electronic transfer of information
JP2846837B2 (ja) * 1994-05-11 1999-01-13 インターナショナル・ビジネス・マシーンズ・コーポレイション 障害を早期検出するためのソフトウェア制御方式のデータ処理方法
US6769009B1 (en) 1994-05-31 2004-07-27 Richard R. Reisman Method and system for selecting a personalized set of information channels
US5694546A (en) 1994-05-31 1997-12-02 Reisman; Richard R. System for automatic unattended electronic information transport between a server and a client by a vendor provided transport software with a manifest list
EP0709766A1 (en) * 1994-10-29 1996-05-01 International Business Machines Corporation Method for the transmission of line-oriented data sets
JPH08263438A (ja) 1994-11-23 1996-10-11 Xerox Corp ディジタルワークの配給及び使用制御システム並びにディジタルワークへのアクセス制御方法
EP0717337B1 (en) * 1994-12-13 2001-08-01 International Business Machines Corporation Method and system for the secured distribution of programs
US5664207A (en) * 1994-12-16 1997-09-02 Xcellenet, Inc. Systems and methods for automatically sharing information among remote/mobile nodes
US5878230A (en) * 1995-01-05 1999-03-02 International Business Machines Corporation System for email messages wherein the sender designates whether the recipient replies or forwards to addresses also designated by the sender
US7743248B2 (en) * 1995-01-17 2010-06-22 Eoriginal, Inc. System and method for a remote access service enabling trust and interoperability when retrieving certificate status from multiple certification authority reporting components
US5748738A (en) * 1995-01-17 1998-05-05 Document Authentication Systems, Inc. System and method for electronic transmission, storage and retrieval of authenticated documents
US6237096B1 (en) 1995-01-17 2001-05-22 Eoriginal Inc. System and method for electronic transmission storage and retrieval of authenticated documents
US7162635B2 (en) * 1995-01-17 2007-01-09 Eoriginal, Inc. System and method for electronic transmission, storage, and retrieval of authenticated electronic original documents
US5943422A (en) 1996-08-12 1999-08-24 Intertrust Technologies Corp. Steganographic techniques for securely delivering electronic digital rights management control information over insecure communication channels
US20060206397A1 (en) * 1995-02-13 2006-09-14 Intertrust Technologies Corp. Cryptographic methods, apparatus and systems for storage media electronic right management in closed and connected appliances
US7124302B2 (en) * 1995-02-13 2006-10-17 Intertrust Technologies Corp. Systems and methods for secure transaction management and electronic rights protection
US7133845B1 (en) * 1995-02-13 2006-11-07 Intertrust Technologies Corp. System and methods for secure transaction management and electronic rights protection
US6658568B1 (en) 1995-02-13 2003-12-02 Intertrust Technologies Corporation Trusted infrastructure support system, methods and techniques for secure electronic commerce transaction and rights management
US20080141033A1 (en) * 1995-02-13 2008-06-12 Intertrust Technologies Corporation Trusted and secure techniques, systems and methods for item delivery and execution
US7095854B1 (en) * 1995-02-13 2006-08-22 Intertrust Technologies Corp. Systems and methods for secure transaction management and electronic rights protection
US20120166807A1 (en) 1996-08-12 2012-06-28 Intertrust Technologies Corp. Systems and Methods Using Cryptography to Protect Secure Computing Environments
US7133846B1 (en) 1995-02-13 2006-11-07 Intertrust Technologies Corp. Digital certificate support system, methods and techniques for secure electronic commerce transaction and rights management
CN1869997A (zh) * 1995-02-13 2006-11-29 英特特拉斯特技术公司 用于安全交易管理和电子权利保护的系统和方法
US6157721A (en) 1996-08-12 2000-12-05 Intertrust Technologies Corp. Systems and methods using cryptography to protect secure computing environments
US6948070B1 (en) 1995-02-13 2005-09-20 Intertrust Technologies Corporation Systems and methods for secure transaction management and electronic rights protection
US7143290B1 (en) * 1995-02-13 2006-11-28 Intertrust Technologies Corporation Trusted and secure techniques, systems and methods for item delivery and execution
US5892900A (en) 1996-08-30 1999-04-06 Intertrust Technologies Corp. Systems and methods for secure transaction management and electronic rights protection
JPH08249290A (ja) * 1995-03-10 1996-09-27 Hitachi Ltd 分散システム
US20060136923A1 (en) * 1995-05-30 2006-06-22 Kahn Robert E System for distributed task execution
AU5953296A (en) * 1995-05-30 1996-12-18 Corporation For National Research Initiatives System for distributed task execution
JP4162099B2 (ja) 1995-06-02 2008-10-08 富士通株式会社 ウィルス感染に対処する機能を持つ装置及びその記憶装置
US5812669A (en) * 1995-07-19 1998-09-22 Jenkins; Lew Method and system for providing secure EDI over an open network
US7337315B2 (en) * 1995-10-02 2008-02-26 Corestreet, Ltd. Efficient certificate revocation
US5699431A (en) * 1995-11-13 1997-12-16 Northern Telecom Limited Method for efficient management of certificate revocation lists and update information
US5845077A (en) * 1995-11-27 1998-12-01 Microsoft Corporation Method and system for identifying and obtaining computer software from a remote computer
US20060265336A1 (en) * 1996-02-26 2006-11-23 Graphon Corporation Automated system for management of licensed digital assets
US20010011253A1 (en) * 1998-08-04 2001-08-02 Christopher D. Coley Automated system for management of licensed software
US5933503A (en) * 1996-03-15 1999-08-03 Novell, Inc Controlled modular cryptography apparatus and method
US5758126A (en) * 1996-03-19 1998-05-26 Sterling Commerce, Inc. Customizable bidirectional EDI translation system
US6003007A (en) 1996-03-28 1999-12-14 Dirienzo; Andrew L. Attachment integrated claims system and operating method therefor
US9619841B2 (en) 1996-03-28 2017-04-11 Integrated Claims Systems, Llc Systems to assist in the creation, transmission, and processing of health insurance claims
US6049671A (en) * 1996-04-18 2000-04-11 Microsoft Corporation Method for identifying and obtaining computer software from a network computer
US5864620A (en) * 1996-04-24 1999-01-26 Cybersource Corporation Method and system for controlling distribution of software in a multitiered distribution chain
US8229844B2 (en) 1996-06-05 2012-07-24 Fraud Control Systems.Com Corporation Method of billing a purchase made over a computer network
US7555458B1 (en) 1996-06-05 2009-06-30 Fraud Control System.Com Corporation Method of billing a purchase made over a computer network
US20030195847A1 (en) 1996-06-05 2003-10-16 David Felger Method of billing a purchase made over a computer network
JPH09325928A (ja) * 1996-06-06 1997-12-16 Fuji Xerox Co Ltd メッセージ通信方法及び装置
US7590853B1 (en) 1996-08-12 2009-09-15 Intertrust Technologies Corporation Systems and methods using cryptography to protect secure computing environments
US5794234A (en) * 1996-08-14 1998-08-11 The Ec Company Method and system for providing electronic commerce between incompatible data processing systems
JP3952544B2 (ja) * 1996-09-17 2007-08-01 株式会社東芝 分散システム
DE69728424T2 (de) * 1996-10-23 2005-02-17 SDGI Holdings, Inc., Wilmington Abstandsstück für wirbel
EP0840476B1 (en) * 1996-10-31 2005-08-17 Matsushita Electric Industrial Co., Ltd. Encrypted communication system that limits the damage caused when a secret key has been leaked
US6253323B1 (en) * 1996-11-01 2001-06-26 Intel Corporation Object-based digital signatures
US9219755B2 (en) 1996-11-08 2015-12-22 Finjan, Inc. Malicious mobile code runtime monitoring system and methods
US7058822B2 (en) 2000-03-30 2006-06-06 Finjan Software, Ltd. Malicious mobile code runtime monitoring system and methods
US8079086B1 (en) 1997-11-06 2011-12-13 Finjan, Inc. Malicious mobile code runtime monitoring system and methods
US6367012B1 (en) * 1996-12-06 2002-04-02 Microsoft Corporation Embedding certifications in executable files for network transmission
JPH10170596A (ja) * 1996-12-09 1998-06-26 Hitachi Ltd 絶縁機器診断システム及び部分放電検出法
US6802061B1 (en) * 1996-12-12 2004-10-05 Microsoft Corporation Automatic software downloading from a computer network
US6347398B1 (en) 1996-12-12 2002-02-12 Microsoft Corporation Automatic software downloading from a computer network
US6285991B1 (en) 1996-12-13 2001-09-04 Visa International Service Association Secure interactive electronic account statement delivery system
AU775197B2 (en) * 1996-12-13 2004-07-22 Visa International Service Association Secure interactive electronic account statement delivery system
FR2757661B1 (fr) * 1996-12-24 1999-01-22 Gemplus Card Int Procede de transfert securise de donnees par un reseau de communication
US6839842B1 (en) * 1996-12-27 2005-01-04 Intel Corporation Method and apparatus for authenticating information
US5963944A (en) * 1996-12-30 1999-10-05 Intel Corporation System and method for distributing and indexing computerized documents using independent agents
WO1998033125A1 (en) * 1997-01-24 1998-07-30 Extricity Software, Inc. A system and method for creating, executing and maintaining cross-enterprise processes
US6260145B1 (en) * 1997-02-14 2001-07-10 Fujitsu Limited System and method of authentication of digital information
US5872848A (en) * 1997-02-18 1999-02-16 Arcanvs Method and apparatus for witnessed authentication of electronic documents
US5920861A (en) * 1997-02-25 1999-07-06 Intertrust Technologies Corp. Techniques for defining using and manipulating rights management data structures
IL133024A (en) * 1997-05-29 2003-11-23 Sun Microsystems Inc Method and apparatus for signing and sealing objects
WO1998056129A1 (en) * 1997-06-04 1998-12-10 Simple Access Partners, Llc System and method for processing transaction messages
US6122372A (en) * 1997-06-04 2000-09-19 Signet Assurance Company Llc System and method for encapsulating transaction messages with verifiable data generated identifiers
US6256667B1 (en) 1997-09-29 2001-07-03 Viewlocity Ab Intelligent messaging
JPH1131105A (ja) * 1997-07-10 1999-02-02 Fuji Xerox Co Ltd データカプセル生成装置および方法
US6112304A (en) * 1997-08-27 2000-08-29 Zipsoft, Inc. Distributed computing architecture
US6832202B1 (en) * 1997-08-29 2004-12-14 Electronic Data Systems Corporation Method and system of routing requests for authorized approval
EP0907120A3 (en) * 1997-10-02 2004-03-24 Tumbleweed Software Corporation Method amd apparatus for delivering documents over an electronic network
US7092914B1 (en) * 1997-11-06 2006-08-15 Intertrust Technologies Corporation Methods for matching, selecting, narrowcasting, and/or classifying based on rights management and/or other information
US6112181A (en) 1997-11-06 2000-08-29 Intertrust Technologies Corporation Systems and methods for matching, selecting, narrowcasting, and/or classifying based on rights management and/or other information
US6275937B1 (en) * 1997-11-06 2001-08-14 International Business Machines Corporation Collaborative server processing of content and meta-information with application to virus checking in a server network
US6385627B1 (en) 1997-11-24 2002-05-07 International Business Machines Corporation Method, apparatus and computer program product for providing document user role indication
US6094731A (en) * 1997-11-24 2000-07-25 Symantec Corporation Antivirus accelerator for computer networks
CA2226062A1 (en) * 1997-12-31 1999-06-30 Ibm Canada Limited-Ibm Canada Limitee Workflow mechanism for a stateless environment
JP3579240B2 (ja) * 1998-02-13 2004-10-20 富士通株式会社 電子メール装置及び電子メールプログラムを記録したコンピュータ読取可能な記録媒体
US6862732B1 (en) * 1998-02-25 2005-03-01 Metaserver, Inc. Method and apparatus for event-driven processing of data
US6324650B1 (en) 1998-03-16 2001-11-27 John W.L. Ogilvie Message content protection and conditional disclosure
US6532451B1 (en) * 1998-03-23 2003-03-11 Novell, Inc. Nested strong loader apparatus and method
US6615350B1 (en) 1998-03-23 2003-09-02 Novell, Inc. Module authentication and binding library extensions
US6701433B1 (en) 1998-03-23 2004-03-02 Novell, Inc. Method and apparatus for escrowing properties used for accessing executable modules
US6751735B1 (en) 1998-03-23 2004-06-15 Novell, Inc. Apparatus for control of cryptography implementations in third party applications
JPH11282684A (ja) 1998-03-27 1999-10-15 Canon Inc 画像処理装置、画像処理装置の制御方法、および記憶媒体
US6754822B1 (en) * 1998-04-30 2004-06-22 Fraunhofer-Gesellschaft Zur Forderung Der Angewandten Forshung E.V. Active watermarks and watermark agents
US7046258B1 (en) * 1998-05-28 2006-05-16 Canon Kabushiki Kaisha Display and control of permitted data processing based on control information extracted from the data
US6553403B1 (en) * 1998-06-03 2003-04-22 International Business Machines Corporation System, method and computer program product for monitoring in a distributed computing environment
US6549932B1 (en) * 1998-06-03 2003-04-15 International Business Machines Corporation System, method and computer program product for discovery in a distributed computing environment
US6460070B1 (en) * 1998-06-03 2002-10-01 International Business Machines Corporation Mobile agents for fault diagnosis and correction in a distributed computer environment
US6308274B1 (en) 1998-06-12 2001-10-23 Microsoft Corporation Least privilege via restricted tokens
US6505300B2 (en) * 1998-06-12 2003-01-07 Microsoft Corporation Method and system for secure running of untrusted content
US6308273B1 (en) 1998-06-12 2001-10-23 Microsoft Corporation Method and system of security location discrimination
US6279111B1 (en) 1998-06-12 2001-08-21 Microsoft Corporation Security model using restricted tokens
US6381742B2 (en) 1998-06-19 2002-04-30 Microsoft Corporation Software package management
CA2242130A1 (en) * 1998-08-07 2000-02-07 Silanis Technology Inc. Method for parallel approval of documents in a distributed network
CA2246049A1 (en) 1998-09-25 2000-03-25 Silanis Technology Inc. Method of creating authenticated verifiable reproductions of electronic documents
CA2246006A1 (en) * 1998-09-25 2000-03-25 Silanis Technology Inc. Remote template approvals in a distributed network environment
US6567917B1 (en) * 1999-02-01 2003-05-20 Cisco Technology, Inc. Method and system for providing tamper-resistant executable software
WO2000062140A2 (en) * 1999-04-12 2000-10-19 Silanis Technology Inc. Secure electronic document creation, approval and distribution method in an open and distributed network environment
US6671805B1 (en) 1999-06-17 2003-12-30 Ilumin Corporation System and method for document-driven processing of digitally-signed electronic documents
WO2000062143A1 (en) * 1999-04-13 2000-10-19 Ilumin Corporation System and method for document-driven processing of digitally-signed electronic documents
US6389537B1 (en) * 1999-04-23 2002-05-14 Intel Corporation Platform and method for assuring integrity of trusted agent communications
US7650504B2 (en) * 1999-07-22 2010-01-19 Macrovision Corporation System and method of verifying the authenticity of dynamically connectable executable images
US7243236B1 (en) * 1999-07-29 2007-07-10 Intertrust Technologies Corp. Systems and methods for using cryptography to protect secure and insecure computing environments
DE60023013T2 (de) 1999-07-30 2006-06-29 Intertrust Technologies Corp., Santa Clara Verfahren und systeme zur transaktionsaufzeichnungsübertragung unter anwendung von schwellen und einem mehrstufigen protokoll
US7406603B1 (en) 1999-08-31 2008-07-29 Intertrust Technologies Corp. Data protection systems and methods
US6985885B1 (en) 1999-09-21 2006-01-10 Intertrust Technologies Corp. Systems and methods for pricing and selling digital goods
US6931420B1 (en) 1999-09-24 2005-08-16 Silanis Technology Inc. Method for the separate authentication of a template and user data
TW503355B (en) * 1999-11-17 2002-09-21 Ibm System and method for communication with mobile data processing devices by way of ""mobile software agents""
US6954858B1 (en) * 1999-12-22 2005-10-11 Kimberly Joyce Welborn Computer virus avoidance system and mechanism
US8037193B2 (en) 1999-12-24 2011-10-11 Telstra Corporation Limited Virtual token
GB0003920D0 (en) * 2000-02-21 2000-04-05 Ncipher Corp Limited Computer system
US7086085B1 (en) 2000-04-11 2006-08-01 Bruce E Brown Variable trust levels for authentication
US7124408B1 (en) * 2000-06-28 2006-10-17 Microsoft Corporation Binding by hash
JP2002014871A (ja) * 2000-06-29 2002-01-18 Fujitsu Ltd コンテンツチェック方法、コンテンツ更新方法、および処理装置
AU7317601A (en) * 2000-07-11 2002-01-21 Sap Ag Method, apparatus, and system for network-based peer-to-peer business transactions
JP2002032290A (ja) * 2000-07-13 2002-01-31 Canon Inc 検査方法及び検査システム
US7546275B1 (en) * 2000-07-20 2009-06-09 International Business Machines Corporation Decentralized electronic certified payment
US6691070B1 (en) * 2000-11-03 2004-02-10 Mack Information Systems System and method for monitoring a controlled environment
US7574481B2 (en) * 2000-12-20 2009-08-11 Microsoft Corporation Method and system for enabling offline detection of software updates
US6948065B2 (en) 2000-12-27 2005-09-20 Intel Corporation Platform and method for securely transmitting an authorization secret
US20020091940A1 (en) * 2001-01-05 2002-07-11 Welborn Christopher Michael E-mail user behavior modification system and mechanism for computer virus avoidance
TWI238637B (en) * 2001-01-10 2005-08-21 Ibm Method and system for processing of documents with electronic signatures
US20070219918A1 (en) * 2001-01-19 2007-09-20 Jonathan Schull System and method for controlling access to protected information
US6981038B2 (en) * 2001-01-23 2005-12-27 International Business Machines Corporation Methods, systems and computer program products for determining simple network management protocol (SNMP) object identifiers in a management information base (MIB) file
AT4577U3 (de) * 2001-04-13 2006-09-15 It Solution Information Techno Programmlogik für datenverarbeitungsanlagen zur medienbruchfreien fertigung und weiterverarbeitungelektronischer signaturen für strukturierte daten, die in ein grafisches layout eingebettet sind
NO313810B1 (no) * 2001-04-25 2002-12-02 Ericsson Telefon Ab L M Kryptografisk signering i smÕ enheter
US20040117726A1 (en) * 2001-06-19 2004-06-17 Ryu Inada Electronic document format control apparatus and method
US6721956B2 (en) * 2001-07-17 2004-04-13 Scientific-Atlanta, Inc. Interactive information services system and associated method for capturing transaction data
GB2382008B (en) * 2001-11-13 2005-04-20 Sun Microsystems Inc Message generation
US8819253B2 (en) 2001-11-13 2014-08-26 Oracle America, Inc. Network message generation for automated authentication
US7370366B2 (en) 2001-11-16 2008-05-06 International Business Machines Corporation Data management system and method
US7137004B2 (en) 2001-11-16 2006-11-14 Microsoft Corporation Manifest-based trusted agent management in a trusted operating system environment
JP2003244138A (ja) * 2002-02-18 2003-08-29 Fujitsu Ltd 原本作成装置及び原本性保証装置
US7213269B2 (en) 2002-02-21 2007-05-01 Adobe Systems Incorporated Application rights enabling
US6978276B2 (en) * 2002-03-21 2005-12-20 International Business Machines Corporation Method and system for detaching files to a specified location
US8086867B2 (en) * 2002-03-26 2011-12-27 Northrop Grumman Systems Corporation Secure identity and privilege system
US7184985B2 (en) * 2002-05-30 2007-02-27 Microsoft Corporation Method, system, and apparatus for providing secure access to a digital work
US8660960B2 (en) 2002-11-27 2014-02-25 Adobe Systems Incorporated Document digest allowing selective changes to a document
US7278168B1 (en) 2002-11-27 2007-10-02 Adobe Systems Incorporated Dynamic enabling of functionality in electronic document readers
US9818136B1 (en) 2003-02-05 2017-11-14 Steven M. Hoffberg System and method for determining contingent relevance
US7735144B2 (en) 2003-05-16 2010-06-08 Adobe Systems Incorporated Document modification detection and prevention
US7315947B2 (en) 2003-05-20 2008-01-01 Adobe Systems Incorporated Author signatures for legal purposes
JP2005149029A (ja) * 2003-11-13 2005-06-09 Matsushita Electric Ind Co Ltd コンテンツ配信システム、コンテンツサーバ、コンテンツ受信装置、コンテンツ配信方法、プログラム及び記録媒体
US7574706B2 (en) * 2003-12-15 2009-08-11 Microsoft Corporation System and method for managing and communicating software updates
US7478381B2 (en) * 2003-12-15 2009-01-13 Microsoft Corporation Managing software updates and a software distribution service
US7590589B2 (en) 2004-09-10 2009-09-15 Hoffberg Steven M Game theoretic prioritization scheme for mobile ad hoc networks permitting hierarchal deference
JP4537235B2 (ja) 2005-03-15 2010-09-01 キヤノン株式会社 電子メール通信装置及び電子メール通信方法並びにプログラム
KR100880288B1 (ko) * 2005-03-15 2009-01-23 캐논 가부시끼가이샤 전자 메일 통신 장치 및 데이터 처리 방법
US20060271493A1 (en) * 2005-05-24 2006-11-30 Contentguard Holdings, Inc. Method and apparatus for executing code in accordance with usage rights
US8874477B2 (en) 2005-10-04 2014-10-28 Steven Mark Hoffberg Multifactorial optimization system and method
EP1780653B1 (en) 2005-10-20 2011-11-30 Sap Ag Controlled path-based process execution
JP4754982B2 (ja) * 2006-02-13 2011-08-24 パナソニック株式会社 ファイル転送システム
US9514117B2 (en) 2007-02-28 2016-12-06 Docusign, Inc. System and method for document tagging templates
US9092629B2 (en) * 2007-04-16 2015-07-28 The Directv Group, Inc. Method and apparatus for authenticating a code image upon starting a device
US8949706B2 (en) 2007-07-18 2015-02-03 Docusign, Inc. Systems and methods for distributed electronic signature documents
US8655961B2 (en) 2007-07-18 2014-02-18 Docusign, Inc. Systems and methods for distributed electronic signature documents
US8321933B2 (en) * 2007-11-14 2012-11-27 Caterpillar Inc. Securing electronic control unit code
US8484752B2 (en) * 2007-11-14 2013-07-09 Caterpillar Inc. Verifying authenticity of electronic control unit code
US8312023B2 (en) * 2007-12-21 2012-11-13 Georgetown University Automated forensic document signatures
JP2008312204A (ja) * 2008-06-09 2008-12-25 Canon Inc 画像処理装置、画像処理装置の制御方法、および記憶媒体
US20100106977A1 (en) * 2008-10-24 2010-04-29 Jan Patrik Persson Method and Apparatus for Secure Software Platform Access
US8682998B2 (en) * 2008-10-31 2014-03-25 Software Ag Method and server cluster for map reducing flow services and large documents
US8239496B2 (en) * 2009-03-13 2012-08-07 Docusign, Inc. Systems and methods for document management transformation and security
JP4743297B2 (ja) * 2009-03-16 2011-08-10 コニカミノルタビジネステクノロジーズ株式会社 画像形成装置、機能拡張方法およびユーザ認証システム
JP4522476B2 (ja) * 2009-04-24 2010-08-11 キヤノン株式会社 画像処理装置、画像処理装置の制御方法、および記憶媒体
JP4856225B2 (ja) * 2009-09-15 2012-01-18 株式会社沖データ 画像データ生成装置
US8683214B2 (en) * 2009-09-17 2014-03-25 Panasonic Corporation Method and device that verifies application program modules
JP4642927B2 (ja) * 2010-04-12 2011-03-02 キヤノン株式会社 画像処理装置、画像処理装置の制御方法、および記憶媒体
US9251131B2 (en) 2010-05-04 2016-02-02 Docusign, Inc. Systems and methods for distributed electronic signature documents including version control
US20110300516A1 (en) * 2010-06-02 2011-12-08 Microsoft Corporation Tactile Tile Vocalization
CA2802358C (en) 2010-06-11 2019-06-11 Docusign, Inc. Web-based electronically signed documents
JP2011078114A (ja) * 2010-11-10 2011-04-14 Canon Inc 画像処理装置、画像処理装置の制御方法、およびプログラム
US9824198B2 (en) 2011-07-14 2017-11-21 Docusign, Inc. System and method for identity and reputation score based on transaction history
WO2013010172A2 (en) 2011-07-14 2013-01-17 Docusign, Inc. Online signature identity and verification in community
US9268758B2 (en) 2011-07-14 2016-02-23 Docusign, Inc. Method for associating third party content with online document signing
CN104025078B (zh) 2011-08-25 2017-03-08 多塞股份公司 用于在与签名人相关联的客户端计算设备上促进电子签名的方法和设备
US10511732B2 (en) 2011-08-25 2019-12-17 Docusign, Inc. Mobile solution for importing and signing third-party electronic signature documents
US9230130B2 (en) 2012-03-22 2016-01-05 Docusign, Inc. System and method for rules-based control of custody of electronic signature transactions
US10453058B2 (en) 2014-12-17 2019-10-22 Heartland Payment Systems, Inc. E-signature
US10694352B2 (en) 2015-10-28 2020-06-23 Activision Publishing, Inc. System and method of using physical objects to control software access
US11157626B1 (en) 2019-05-29 2021-10-26 Northrop Grumman Systems Corporation Bi-directional chain of trust network

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01195568A (ja) * 1988-01-29 1989-08-07 Hitachi Ltd 電子化文書編集制御方式
US4868877A (en) * 1988-02-12 1989-09-19 Fischer Addison M Public key/signature cryptosystem with enhanced digital signature certification
US5005200A (en) * 1988-02-12 1991-04-02 Fischer Addison M Public key/signature cryptosystem with enhanced digital signature certification
US5214702A (en) * 1988-02-12 1993-05-25 Fischer Addison M Public key/signature cryptosystem with enhanced digital signature certification
US4951196A (en) * 1988-05-04 1990-08-21 Supply Tech, Inc. Method and apparatus for electronic data interchange
US5022080A (en) * 1990-04-16 1991-06-04 Durst Robert T Electronic notary
CA2041992A1 (en) * 1990-05-18 1991-11-19 Yeshayahu Artsy Routing objects on action paths in a distributed computing system
US5142578A (en) * 1991-08-22 1992-08-25 International Business Machines Corporation Hybrid public key algorithm/data encryption algorithm key distribution method based on control vectors
US5164988A (en) * 1991-10-31 1992-11-17 International Business Machines Corporation Method to establish and enforce a network cryptographic security policy in a public key cryptosystem
US5261002A (en) * 1992-03-13 1993-11-09 Digital Equipment Corporation Method of issuance and revocation of certificates of authenticity used in public key networks and other systems
EP0578212B1 (en) * 1992-07-07 2000-06-14 Sharp Kabushiki Kaisha Active control apparatus with an adaptive digital filter

Also Published As

Publication number Publication date
EP0565314B1 (en) 2001-01-17
EP0565314A2 (en) 1993-10-13
US5337360A (en) 1994-08-09
ES2153371T3 (es) 2001-03-01
JP2004348751A (ja) 2004-12-09
JP3973647B2 (ja) 2007-09-12
DK0565314T3 (da) 2001-03-19
PT565314E (pt) 2001-05-31
ATE198800T1 (de) 2001-02-15
DE69329869D1 (de) 2001-02-22
US5390247A (en) 1995-02-14
EP0565314A3 (ja) 1994-01-19
JPH06295286A (ja) 1994-10-21
GR3035527T3 (en) 2001-06-29
EP1031908A2 (en) 2000-08-30
CA2093094A1 (en) 1993-10-07
AU3560793A (en) 1993-10-07
DE69329869T2 (de) 2001-08-16
EP1031908A3 (en) 2004-12-15
CA2093094C (en) 2000-07-11
AU662805B2 (en) 1995-09-14

Similar Documents

Publication Publication Date Title
JP3898769B2 (ja) コミュニケーションシステムにおけるコンピュータ間で情報を処理するための方法
JP3786722B2 (ja) デジタル署名を用いた進行オブジェクト指向型プログラムの有効利用方法および装置
US7093132B2 (en) Method and apparatus for protecting ongoing system integrity of a software product using digital signatures
CN101364221B (zh) 文档管理装置、文档管理系统和方法
US6014651A (en) Commercial online software distribution systems and methods using encryption for security
US6415385B1 (en) Digital signaturing method and system for packaging specialized native files for open network transport and for burning onto CD-ROM
US20040039741A1 (en) Method and system for managing a data object so as to comply with predetermined conditions for usage
EP1318488A2 (en) IC card with capability of having plurality of card managers installed
JPH02135938A (ja) 情報通信システム
CA2242130A1 (en) Method for parallel approval of documents in a distributed network
US6282535B1 (en) Digital signaturing method and system for wrapping multiple files into a container for open network transport and for burning onto CD-ROM.
US9928349B2 (en) System and method for controlling the disposition of computer-based objects
US7290137B2 (en) Information processing apparatus, executable module generating method, and storage medium
US7409555B2 (en) Electronic document active content assurance
JP2004030617A (ja) インターネットを利用したトランザクションサービスシステムおよびその方法
AU722119B2 (en) A method for operating computers and for processing information among computers
JPS63153633A (ja) プログラムの利用制限方式
Sherlock et al. Com beyond microsoft: Designing and implementing com servers on compaq platforms
Watson et al. An Automated Invoicing System for Online Interlibrary Loan Requests
JP2001325038A (ja) サンプルパターン提供システム用制御装置及び表示装置
Fischer WORKFLOW. 2000---ELECTRONIC DOCUMENT AUTHORIZATION IN PRACTICE
Gates et al. Small job development software project documentation for the activity management system. Revision 1
Gray CDMS: CAD data set system design description. Revision 1

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20031209

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20040303

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20040308

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040608

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040706

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040928

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20041214

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050309

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20050520

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20060303

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061030

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20061222

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees