JP2014510318A - アプリケーションを認証するためのシグネチャを生成する方法及びシステム - Google Patents

アプリケーションを認証するためのシグネチャを生成する方法及びシステム Download PDF

Info

Publication number
JP2014510318A
JP2014510318A JP2013535162A JP2013535162A JP2014510318A JP 2014510318 A JP2014510318 A JP 2014510318A JP 2013535162 A JP2013535162 A JP 2013535162A JP 2013535162 A JP2013535162 A JP 2013535162A JP 2014510318 A JP2014510318 A JP 2014510318A
Authority
JP
Japan
Prior art keywords
module
application
document
user
metadata
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2013535162A
Other languages
English (en)
Other versions
JP5971254B2 (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.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
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 Ricoh Co Ltd filed Critical Ricoh Co Ltd
Publication of JP2014510318A publication Critical patent/JP2014510318A/ja
Application granted granted Critical
Publication of JP5971254B2 publication Critical patent/JP5971254B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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
    • 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

Abstract

アプリケーションを認証する方法及びシステム。本システムは、複数の携帯電子装置、少なくとも1つのプロセスオーガナイザ、少なくとも1つのモジュールデベロッパ、少なくとも1つのタスクパフォーマ及びワークフローサーバを有する。プロセスオーガナイザは、アプリケーションを生成する。プロセスオーガナイザは、アプリケーションに含まれるモジュールをモジュールデベロッパから要求できる。あるいは、プロセスオーガナイザは、アプリケーションを完了させるためタスクを実行するタスクパフォーマと合意を行う。アプリケーションは、ワークフローサーバに送信され、ワークフローサーバは、アプリケーションを表示及び販売するためのオンラインマーケットプレースを含む。ユーザは、ストアを介しアプリケーションを購入する。ルーティングモジュールは、シグネチャを生成し、アプリケーション、モジュール又はドキュメントがルーティングされる前にデータの整合性を判断するため、シグネチャとアプリケーション、モジュール又はドキュメントのメタデータ及びシークレット情報とを比較する。

Description

本発明の実施例は、アプリケーション、モジュール及びドキュメントの生成及び変更に関する。特に、本発明は、エンティティとの間で当該ドキュメントが伝送される毎にシグネチャを生成することと、ドキュメントを提供する前にシグネチャを認証するためのシステムとに関する。
携帯計算装置の利用が、多くのユーザに一般的になってきている。従来のデスクトップコンピュータを有することに加えて、多くのユーザはまた、いくつかのタイプの携帯計算装置を有する。現在の携帯計算装置の具体例として、Sony Corp.からのReader、AmazonからのKingle及びBarnes&NobleからのNookなどの読書用の電子装置があげられる。より小型の携帯計算装置として、いくつか例とあげると、Apple Computer Inc.からのiPhone、Research In MotionからのBlackberry及びPalmからのPreを含む多数のスマートフォンがあげられる。異なるレベルの処理能力及びサイズを提供するノートブック、ラップトップ及びタブレットコンピュータの販売が拡大してきている。
ユーザはしばしば、娯楽用又はビジネス用に携帯計算装置にアプリケーションをダウンロードする。例えば、付加価値を追加する再販売業者などのプロセスオーガナイザは、医師が患者のカルテにデータを入力するためのアプリケーションを作成する。プロセスオーガナイザは、ドキュメントに添付される音声を転写するなど、ドキュメントに対して各種処理を実行したり、医師がドキュメントにメモを手書きするときに手書き解析を実行するためのモジュールデベロッパを取得する。ドキュメントが完成すると、プロセスオーガナイザは、管理者がドキュメントを購入可能なストアに当該ドキュメントをアップロードする。
この設定による1つの問題点は、ドキュメントが少なくとも1つのプロセスオーガナイザ及び複数のモジュールデベロッパ又はタスクパフォーマに送信されるため、違法行為の複数の機会があるということである。プロセスオーガナイザ、モジュールデベロッパ又はタスクパフォーマが認証されていない可能性があるため、ドキュメントは他のパーティなどにより傍受される可能性がある。これは、ビジネスが成長する能力は顧客情報をセキュアに維持することに依存するため、問題である。従って、ドキュメントがパーティ間でセキュアにわたされることを保証することが必要とされる。
本発明の実施例は、アプリケーションを認証するためのシグネチャを生成する方法及びシステムを提供することによって、従来技術の短所及び制約を解消する。一実施例では、本発明の実施例のシステムは、複数の携帯電子装置、少なくとも1つのプロセスオーガナイザ、少なくとも1つのモジュールデベロッパ、少なくとも1つのタスクパフォーマ及びワークフローサーバを有する。プロセスオーガナイザは、アプリケーションを生成する。プロセスオーガナイザは、アプリケーションに含まれるモジュールを要求する。あるいは、プロセスオーガナイザは、アプリケーションを完成させるため、タスクを実行するタスクパフォーマと同意する。これは、プロセスオーガナイザがドキュメントの全体構成を生成するのが得意であるが、トランスクリプション、手書き認識などの特殊なエリアを知らないときに、特に有用である。アプリケーションは、アプリケーションを表示及び販売するためのオンラインマーケットプレースモジュールを有するワークフローサーバに送信される。ユーザは、ストアを介しアプリケーションを購入する。
一実施例では、システムはまた、携帯計算装置上で利用するためカスタマイズされたドキュメントを要求及び購入するアドミニストレータを含む。アドミニストレータは、プロセスオーガナイザと接触し、カスタマイズされたドキュメントを生成するアプリケーションを要求できる。例えば、パッケージを配送する企業は、特定のユーザインタフェース又は特殊な機能を所望する可能性がある。プロセスオーガナイザは、アプリケーションを生成し、それをストアにアップロードする。アドミニストレータは、アプリケーションを購入し、それを携帯計算装置上でドキュメントを利用する各種従業員に送信する。
携帯計算装置、プロセスオーガナイザ、タスクパフォーマ及びモジュールデベロッパは、それぞれがログ処理モジュールを有する計算装置である。計算装置の1つがアプリケーション、モジュール又はドキュメントを受信し、アクションを実行すると、ログ処理ユニットは、メタデータとしてアプリケーションに関連するアクションのハッシュを生成する。計算装置がアプリケーション、モジュール又はドキュメントを送信すると、ワークフローサーバは、アプリケーション、モジュール又はドキュメントを認証し、それを宛先にルーティングする。ワークフローサーバは、シグネチャを生成し、当該シグネチャとアプリケーション、モジュール又はドキュメントのメタデータ及びシークレット情報とを比較することによって、アプリケーション、モジュール又はドキュメントを認証する。当該比較が整合している場合、アプリケーション、モジュール又はドキュメントはそれの次の宛先にルーティングされる。当該比較が整合していない場合、アプリケーション、モジュール又はドキュメントをワークフローサーバ及び/又は宛先計算装置に送信する最後の計算装置にエラーが通知される。
本発明の実施例はまた、ドキュメントをルーティングし、ドキュメントの真正性を検証する方法を含むいくつかの新規な方法を含む。一実施例では、ワークフローサーバは、アプリケーション、モジュール又はドキュメントを受信する。ワークフローサーバは、メタデータとシークレット情報とを抽出し、ハッシュを計算する。ワークフローサーバは、シグネチャとメタデータ、シークレット情報及び計算されたハッシュとを比較する。当該比較がコンフリクトを示す場合、エラーメッセージが送信される。コンフリクトがない場合、ワークフローサーバは、宛先とメタデータに指定される宛先とを比較する。コンフリクトがある場合、エラーメッセージが送信される。コンフリクトがない場合、ワークフローサーバは、アプリケーションをそれの宛先にルーティングする。
ここに説明される特徴及び効果は、必ずしもすべてが含まれるとは限らず、多数のさらなる特徴及び効果は、図面及び説明に関して当業者に明らかであろう。さらに、明細書に用いられる言語は可読性及び教示目的のため主として選択され、本発明の主題の範囲を限定するものでないことに留意すべきである。
本発明は、同様の参照番号が同様の要素を参照するのに利用される添付した図面において限定することなく例示のため示される。
図1は、本発明の実施例によるドキュメントをルーティングするためのシステムの実施例のブロック図である。 図2Aは、本発明の実施例による携帯計算装置、プロセスオーガナイザ、タスクパフォーマ又はモジュールデベロッパの実施例のブロック図である。 図2Bは、本発明の実施例によるワークフローサーバのブロック図である。 図3Aは、本発明の実施例による登録モジュールの実施例のブロック図である。 図3Bは、本発明の実施例によるページを有するドキュメントを含むアプリケーションのグラフィカル表示である。 図3Cは、本発明の実施例によるログエントリのグラフィカル表示である。 図4は、本発明の実施例によるルーティングモジュールの実施例のブロック図である。 図5は、本発明の実施例によるオンラインマーケットプレースモジュールの実施例である。 図6Aは、ユーザ、アプリケーション及びモジュールのための本発明の実施例の登録処理を示すフロー図である。 図6Bは、モジュールデベロッパからのモジュールを搭載したアプリケーションの登録処理を示すフロー図である。 図6Cは、タスクパフォーマからタスクを購入するアプリケーションの登録処理を示すフロー図である。 図7は、本発明の実施例によるアプリケーションシグネチャの生成を示すフロー図である。 図8は、本発明の実施例によるドキュメントの変更及びドキュメントシグネチャの生成を示すフロー図である。 図9は、本発明の実施例によるドキュメントをルーティングするためのステップを示すフロー図である。
ワークフローシステムにおいてアプリケーション、モジュール及びドキュメントを認証及びルーティングするためのシステムが説明される。以下の説明では、説明のため、多数の具体的な詳細が本発明の完全な理解を提供するため与えられる。しかしながら、本発明はこれらの具体的詳細なしに実現可能であることが当業者に明らかであろう。他の例では、本発明を不明りょうにすることを回避するため、構成及び装置はブロック図により示される。例えば、本発明の実施例は、電子ペーパー、eペーパー又は電子インクディスプレイを利用するAmazonのKindleなどのハードウェア及びソフトウェアプラットフォームに例示される携帯計算装置を参照して、以下で実施例により説明される。しかしながら、本発明の実施例は、インク、データ及びコマンドを取得し、ドキュメントを電子的に送信可能な何れかのタイプの携帯計算装置に適用される。
明細書における“一実施例”又は“実施例”という表現は、当該実施例に関して説明される特定の特徴、構成又は特性が本発明の少なくとも1つの実施例に含まれることを意味する。明細書の各所における“一実施例では”というフレーズの出現は、必ずしもすべてが同一の実施例を参照しているとは限らない。特に、本発明の実施例は、2つの異なるアーキテクチャに関して後述され、コンポーネントの一部は双方のアーキテクチャにおいて動作可能である一方、他のものはそうでない。
以下の詳細な説明のいくつかの部分は、コンピュータメモリ内のデータビットに対する演算のアルゴリズム及びシンボル表現に関して提供される。これらのアルゴリズムによる説明及び表現は、データ処理分野の当業者が自らの研究の本質を当該分野の他者に最も効果的に伝えるのに利用される手段である。アルゴリズムは、ここでは一般に、所望の結果を導く自己一貫的なステップシーケンスであると想定される。これらのステップは、物理量の物理的操作を要求するものである。通常、必要ではないが、これらの量は格納、転送、合成、比較及び操作可能な電気又は磁気信号のドキュメントをとる。主に通常の利用のため、これらの信号をビット、値、要素、シンボル、文字、項、数などとして参照することが便利であるとわかる。
しかしながら、上記及び同様の用語のすべては適切な物理量に関連付けされ、これらの量に適用される単なる便宜上のラベルであることに留意すべきである。特段の断りがない場合、以下の説明から明らかなように、本説明を通じて、“処理”、“計算”、“算出”、“決定”、“表示”などの用語を利用した説明は、コンピュータシステムのレジスタ及びメモリ内で物理(電子)量として表現されるデータを操作して、コンピュータシステムのメモリ、レジスタ又は他の情報ストレージ、伝送又は表示装置内の物理量として同様に表現される他のデータに変換するコンピュータシステム又は同様の電子計算装置のアクション及びプロセスを表す。
本発明の実施例はまた、ここでの処理を実行する装置に関する。当該装置は、要求される目的のため具体的に構成されてもよいし、あるいはコンピュータに格納されているコンピュータプログラムにより選択的にアクティブ化又は再設定される汎用コンピュータを有してもよい。このようなコンピュータプログラムは、限定することなく、フロッピー(登録商標)ディスク、光ディスク、CD ROM及び光磁気ディスクを含む何れかのタイプのディスク、ROM、RAM、EPROM、EEPROM、磁気若しくは光カード又は電子命令を格納するのに適した何れかのタイプのメディアなど、それぞれがコンピュータシステムバスに接続されたコンピュータ可読記憶媒体に格納されてもよい。
本発明は、完全にハードウェアの実施例、完全にソフトウェアの実施例又はハードウェアとソフトウェア要素との双方を含む実施例のドキュメントをとることが可能である。好適な実施例では、本発明は、以下に限定されることなく、ファームウェア、レジデントソフトウェア、マイクロコードなどを含むソフトウェアにより実現される。
さらに、本発明は、コンピュータ又は何れかの命令実行システムによる利用のため又は関連するプログラムコードを提供するコンピュータ利用可能な媒体又はコンピュータ可読媒体からアクセス可能なコンピュータプログラムプロダクトのドキュメントをとることが可能である。本説明のため、コンピュータ利用可能な媒体又はコンピュータ可読媒体は、命令実行システム、装置又はデバイスによる利用のため又は関連してプログラムを内蔵、格納、通信、伝搬又は伝送可能な任意の装置とすることが可能である。
上記媒体は、電子、磁気、光学、電磁気、赤外線又は半導体システム(又は装置若しくはデバイス)又は伝搬媒体とすることが可能である。コンピュータ可読媒体の具体例として、半導体若しくはソリッドステートメモリ、磁気テープ、着脱可能なコンピュータディスケット、RAM、ROM,リジッド磁気ディスク及び光ディスクがあげられる。光ディスクの現在の具体例は、CD−ROM、CD−R/W及びDVDを含む。
プログラムコードを格納及び/又は実行するのに適したデータ処理システムは、システムバスを介しメモリ要素に直接的又は間接的に接続される少なくとも1つのプロセッサを含む。メモリ要素は、実行中にバルクストレージからコードが抽出される必要のある回数を低減するため、プログラムコードの実際の実行中に利用されるローカルメモリ、バルクストレージ及び少なくともいくつかのプログラムコードの一時的な格納を提供するキャッシュメモリを含むことが可能である。
入出力(I/O)装置(限定することなく、キーボード、ディスプレイ、ポインティング装置などを含む)は、I/Oコントローラを介在して又は直接的にシステムに接続可能である。
ネットワークアダプタはまた、データ処理システムがプライベート又はパブリックネットワークを介在することにより他のデータ処理システム、リモートプリンタ又は記憶装置に接続することを可能にするため、システムに接続されてもよい。モデム、ケーブルモデム及びイーサネット(登録商標)カードは、現在利用可能なタイプのネットワークアダプタの単なるいくつかである。
最後に、ここに提供されるアルゴリズム及びディスプレイは、何れか特定のコンピュータ又は他の装置に本来的に関連するものでない。各種の汎用システムが、ここでの教示によるプログラムにより利用されてもよいし、又は要求された方法のステップを実行するためより特化した装置を構成することが便利であるとわかるかもしれない。これら各種システムについて要求される構成は、以下の説明から明らかになるであろう。さらに、本発明の実施例は、特定のプログラミング言語を参照して説明される。各種プログラミング言語がここに説明されるような本発明の教示を実現するのに利用可能であることが理解されるであろう。
システム概略
図1は、アプリケーションを生成及び認証するシステム100の実施例を示す。図1を参照して、本実施例のシステム100は、複数の携帯計算装置102a〜102n、ネットワーク104、プロセスオーガナイザ108、モジュールデベロッパ135、タスクパフォーマ139及びワークフローサーバ106を有する。
複数の携帯計算装置102a〜102nは、各自の接続112a〜112nを介しネットワーク104に無線接続される。携帯計算装置102は、ワークフローサーバ106に接続され、一実施例では、プロセスオーガナイザ108、タスクパフォーマ139及びモジュールデベロッパ135に接続される。携帯計算装置102a〜102nは、ディスプレイ、ストロークキャプチャ機能、オーディオキャプチャ機能、ジェスチャ認識機能及び無線通信機能を有する。携帯計算装置102a〜102nは、イメージ(ドキュメント又は書類など)を受信し、受信したイメージにストロークアノテーションを追加し、注釈付けされた受信したイメージを送信するよう構成される。携帯計算装置102a〜102nの実施例が、図2Aを参照して以下でより詳細に説明される。
ネットワーク104は、従来タイプの有線又は無線であり、スターコンフィギュレーション、トークンリングコンフィギュレーション又は当業者に既知の他のコンフィギュレーションなどの何れかの個数のコンフィギュレーションを有してもよい。さらに、ネットワーク104は、複数の装置が通信可能なローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)(インターネットなど)及び/又は他の何れかの相互接続されたデータパスを有してもよい。さらなる実施例では、ネットワーク104はピア・ツー・ピアネットワークであってもよい。ネットワーク104はまた、各種の異なる通信プロトコルによりデータを送信するための通信ネットワークの部分に接続されるか、又は内蔵してもよい。さらなる他の実施例では、ネットワーク104は、SMS(Short Messaging Service)、MMS(Multimedia Messaging Service)、HTTP(Hypertext Transfer Protocol)、直接的なデータ接続、WAP、電子メールなどを介しデータを送受信するため、Bluetooth(登録商標)通信ネットワーク又はセルラ通信ネットワークを含む。
プロセスオーガナイザ108は、アプリケーションを生成し、信号ライン118を介しネットワーク104を利用して当該アプリケーションをワークフローサーバ106に送信する計算装置である。プロセスオーガナイザ108は、ワークフローサーバ106、モジュールデベロッパ135及びタスクパフォーマ139に接続され、一実施例では、携帯計算装置102に接続される。プロセスオーガナイザ108は、ワークフローサーバ106に登録及びアップロードされ、ワークフローサーバ106により運営されるオンラインマーケットプレースにおいて販売されるアプリケーションを生成する。他の実施例では、管理者(図示せず)は、ストアにアップロード及び販売されるカスタマイズされたアプリケーションをプロセスオーガナイザ108から要求する。
プロセスオーガナイザ108は、共同プロセスとしてアプリケーションを生成する。一実施例では、プロセスオーガナイザ108は、アプリケーションに搭載されるモジュールデベロッパ135からモジュールを購入する。他の実施例では、携帯計算装置102は、オンラインマーケットプレースを介しモジュールを購入する。モジュールデベロッパ135は、プロセスオーガナイザ108により開発されたアプリケーションに搭載されるモジュールを生成する計算装置である。モジュールデベロッパ135は、信号ライン137を介しネットワーク104を用いて通信する。モジュールデベロッパ135は、プロセスオーガナイザ108及びワークフローサーバ106に接続され、一実施例では、携帯計算装置102に接続される。
例えば、プロセスオーガナイザ108は、医療書類を生成するためのアプリケーションを生成する。医療書類は、医師のオフィスにおいて利用される。まず、患者は、スタイラスを利用して計算装置102に個人情報を入力する。ユーザ入力は手書きされる。この結果、アプリケーションは、手書きをテキストに変換するモジュールを有する。次に、医師は、書類のエンドに言葉により提供される自分のメモを添付する。この結果、アプリケーションは、音声をテキストに変換するモジュールを有する。最後に、医師のメモは、患者に対する処方箋を含む。処方箋が変換されると、アプリケーションは、処方箋を調合するため患者の薬局に処方箋を送信するモジュールを有する必要がある。
他の実施例では、プロセスオーガナイザ108は、購入用のアプリケーションを生成し、要求された各種タスクを実行するため、タスクパフォーマ139と同意を確立する。タスクパフォーマ139は、プロセスオーガナイザ108により開発されたアプリケーションのタスクを実行する計算装置である。タスクパフォーマ139は、信号ライン141を介しネットワーク104を利用して通信する。タスクパフォーマ139は、プロセスオーガナイザ108及びワークフローサーバ106に接続され、一実施例では、携帯計算装置102に接続される。
例えば、医療アプリケーションの具体例を利用して、プロセスオーガナイザ108は、ワークフローサーバ106により運営されるオンラインマーケットプレースを介し顧客にアプリケーションを販売する。顧客は、携帯計算装置102aから変換対象の音声を有した書類をワークフローサーバ106に送信する。ワークフローサーバ106は、音声をタスクパフォーマ139に送信し、タスクパフォーマ139は、当該変換を完了させ、信号ライン141を介しワークフローサーバ106に変換結果を送信する。ワークフローサーバ106は、その後、完成した書類を携帯計算装置102aに送り返す。
一実施例では、携帯計算装置102のユーザは、ワークフローサーバ106からアプリケーションを購入する。アプリケーションは、携帯計算装置102に表示されるドキュメントを生成する。他の実施例では、管理者(図示せず)は、携帯計算装置102に表示されるカスタマイズされたアプリケーションを生成するため、プロセスオーガナイザ108に依頼する。例えば、管理者は、配送会社を運営し、プロセスオーガナイザ108にパッケージの輸送及び配送を追跡するためのカスタマイズされたアプリケーションを生成するよう要求する。携帯計算装置102は、パッケージを配送する従業員により利用される。
ワークフローサーバ106は、携帯計算装置102a〜102n、プロセスオーガナイザ108、モジュールデベロッパ135及びタスクパフォーマ139と通信するため、信号ライン116を介しネットワーク104に接続される。ワークフローサーバ106は、オンラインマーケットプレースモジュール270、ルーティングモジュール272及び登録モジュール275(図2Bを参照)を有する。ワークフローサーバ106は、携帯計算装置102a〜102nにアプリケーションを販売するためオンラインマーケットプレースモジュール270を維持し、一意的な識別子及びシークレット情報を生成する登録モジュール275を利用し、アプリケーション、モジュール及びドキュメントの真正性を検証し、それらをネットワーク104の計算装置にルーティングするルーティングモジュール272を利用する。ワークフローサーバ106は、図2A、3A及び4〜9を参照して以下でより詳細に説明される。
図1のシステムは1つのみのワークフローサーバ106しか示していないが、例えば、他のファンクション、企業、機関、組織構成に専用の何れかの個数の追加的なワークフローサーバがあってもよい。計算装置102a〜nは、複数のワークフローサーバ106と通信してもよい。ドキュメントの特定のページ又はセクションが、異なるワークフローサーバに関連付け可能である。また、複合的なドキュメントの一部が、複合的なドキュメント全体を送信する代わりに転送可能である。
計算装置202
図2Aを参照して、計算装置202のコンポーネントが説明される。計算装置202は、表示装置206、ストロークキャプチャ装置及びモジュール208、入力装置210、出力装置215、プロセッサ302、メモリ304、通信ユニット306、一意的な装置ID308、クロック310、メタデータモジュール312、他の入出力(I/O)装置326、ログ処理モジュール314、アプリケーションモジュール318、プレゼンテーションモジュール222及び転送モジュール316を有する。一実施例では、計算装置202は、携帯計算装置102a〜nである。他の実施例では、計算装置202は、プロセスオーガナイザ108である。さらなる他の実施例では、計算装置202は、モジュールデベロッパ135である。他の実施例では、計算装置202はタスクパフォーマ139である。
プロセッサ302は、計算を実行し、表示装置206に電子表示信号を提供し、ストローク入力を検出及び処理する算術ロジックユニット、マイクロプロセッサ、汎用コントローラ又は他の何れかのプロセッサアレイを有する。プロセッサ302は、計算装置202のその他のコンポーネントと通信するため、バス220に接続される。プロセッサ302は、データ信号を処理し、CISC(Complex Instruction Set Computer)アーキテクチャ、RISC(Reduced Instruction Set Computer)アーキテクチャ又は命令セットの組み合わせを実現するアーキテクチャを含む各種計算アーキテクチャを有してもよい。図3には単一のプロセッサしか示されていないが、複数のプロセッサが含まれてもよい。計算装置202の処理能力は、イメージの表示、記録したストローク及びストロークの送信をサポートすることに限定されてもよい。処理能力は、各種タイプの画像処理、ストローク処理又は認識タスクを含むより複雑なタスクを実行するのに十分なものであってもよい。他のプロセッサ、オペレーティングシステム、センサ、ディスプレイ及び物理的コンフィギュレーションが可能であることが当業者に明らかであろう。計算装置202はまた、限定することなく、WINDOWS(登録商標)、MacOS X、Android又はUNIX(登録商標)ベースのオペレーティングシステムなど、プロセッサにより実行可能なオペレーティングシステムを含む。
メモリ304は、プロセッサ302により実行されてもよい命令及び/又はデータを格納する。命令及び/又はデータは、ここに説明される技術の何れか及び/又はすべてを実行するためのコードを有してもよい。メモリ304は、DRAMデバイス、SRAMデバイス、フラッシュメモリ又は当該分野で知られている他の何れかのメモリデバイスであってもよい。一実施例では、メモリ304はまた、より永続的にログ情報を格納するため、ハードディスクドライブやフラッシュドライブなどの不揮発性メモリを有する。メモリ304は、計算装置202のその他のコンポーネントと通信するため、バス220により接続される。
通信ユニット306は、アンテナ及びバス220に接続される。他の実施例では、通信ユニット306は、ネットワーク104との直接的な物理的接続のためのポートを備えてもよい。通信ユニット306は、複合的なドキュメントを送受信するための送受信機を有する。一実施例では、通信ユニット306は、アクセスポイントとの無線通信のためのWiFi送受信機を有する。他の実施例では、通信ユニット306は、他の装置との無線通信のためのBluetooth(登録商標)送受信機を有する。さらなる他の実施例では、通信ユニット306は、SMS、MMS、HTTP、直接的なデータ接続、WAP、電子メールなどを介しセルラ通信ネットワークによりデータを送受信するためのセルラ通信送受信機を有する。さらなる他の実施例では、通信ユニット306は、限定することなく、USB、SD又はCAT−5などの有線接続のためのポートを有する。通信ユニット306は、複数の処理システムを含みうるネットワーク104とプロセッサ302とをリンクさせる。処理システムのネットワークは、複数の装置が通信可能なローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)(インターネットなど)及び/又は他の何れかの相互接続されたデータパスを有してもよい。通信ユニット306はまた、当業者に理解されるように、TCP/IP、HTTP、SSH、git HTTPS及びSMTPなどの標準的なネットワークプロトコルを利用して、ファイル(メディアオブジェクト)の配信のため、ネットワーク104との他の従来の接続を提供する。
計算装置202は、一意的な装置識別子308のストレージを有する。計算装置202は、必要に応じて、一意的な識別子を他のコンポーネントに提供するため、バス220に接続される。一実施例では、ストレージは、一意的な装置識別子308を格納するROMである。他の実施例では、一意的な装置識別子308は、パブリックキー−プライベートキーペアを格納する不揮発性ストレージである。他の実施例では、パブリックキー−プライベートキーペアは、当該装置のCPU又はメインボードに一体化された特殊な信頼された計算メモリ内に格納される。アプリケーションになされた変更が認証されたエンティティにより実行されたことを保証するため、ユーザの真正性を検証するのに利用される一意的な識別子を計算装置202が有することが有用である。
一実施例では、一意的な識別子は、計算装置202におけるネットワークチップのハードウェアMACアドレスである。一意的な識別子308は、通信ユニット306などの他の機能ブロックの内部にあってもよいし、又はメモリユニット304の不揮発性ストレージ内にあってもよい。他の実施例では、一意的な識別子は、計算装置202上のメモリカードに関連する一意的なIDであり、このようにして、ある装置との関連付けは、予想される動作でありうるメモリカードが移動されると、異なる装置に移ることになる。一意的な識別子は、各種処理について有用であるが、典型的には、大きなセキュリティを提供しない。例えば、ハードウェアMACアドレスは、他の装置により模倣可能である。従って、RSA(登録商標)などのパブリックキー暗号化システムからのキーのペアに装置を関連付けすることが、価値があることがある。一実施例では、計算装置202は、配布されたプライベートキーとパブリックキーとを備えて製造又は構成される。このとき、計算装置202は、装置上で生じるストローク、イメージ、ログ又は他のメディアのデジタル署名のためにそれのプライベートキーを利用可能である。他の者は、パブリックキーを利用して当該メディアを検証してもよい。パブリックキーはまた、装置とのシークレット情報の通信を提供するよう利用されてもよい。暗号化のための装置のパブリックキーの利用は、特定の計算装置202のみを意図したページイメージ又はメタデータに他者のアクセスを制限することになる。
クロック310は、従来のタイプであり、計算装置202のローカルタイムの指示を提供する。特に、クロック310は、複合的なドキュメントが処理されるローカル時間を提供するのに利用される。この時間値はまた、ログ処理モジュール314を利用して、ローカルログにデータと共に格納される。クロック310は、システムバス220を利用して、当該情報をプロセッサ302及びログ処理モジュール314に通信するよう構成される。
アプリケーションモジュール318は、計算装置202がプロセスオーガナイザ108又はモジュールデベロッパ135であるかに依存して、アプリケーション又はモジュールを生成するためのルーチンを有するソフトウェアである。プロセスオーガナイザ108は、アプリケーションを生成するアプリケーションモジュール318を有する。モジュールデベロッパは、モジュールを生成するアプリケーションモジュール318を有する。一実施例では、アプリケーションモジュール318は、メモリ304に格納され、プロセッサ302によりアクセス可能であって実行可能である。
メタデータモジュール312は、ドキュメントからメタデータを抽出し、メタデータをドキュメントの一部として格納するためのルーチンを含むソフトウェアである。一実施例では、メタデータモジュール312は、ドキュメントメタデータと共にイメージ/ページメタデータの双方にアクセスするため、図7〜10を参照して後述される機能を提供するため、プロセッサ302により実行可能な命令である。一実施例では、メタデータモジュール312は、メモリ304に格納され、プロセッサ302によりアクセス可能であって実行可能である。何れかのイベントでは、メタデータモジュール312は、計算装置202のプロセッサ302及び他のコンポーネントと連係して通信するよう構成される。
ログ処理モジュール314は、ローカルログを生成してメモリ304に、より詳細にはメモリ304の不揮発性記憶部分にローカルログを格納するためのルーチンを含むソフトウェアである。一実施例では、ログ処理モジュール314は、計算装置202及びワークフローサーバ106の関連するログにメタデータを格納するため、プロセッサ302により実行可能なルーチンのセットである。ログ処理モジュール314は、トランザクションにおいてワークフローの完了の検証を提供するのに特に重要である。一実施例では、ログ処理モジュール314はまた、ネットワーク上の公衆に利用可能な位置においてそれの特定の計算装置202のログを公開又は格納するためのルーチンを有する。ログ処理モジュール314は、バス220によってプロセッサ302、メモリ304及び通信ユニット306に接続される。以下の図3Cは、ログに格納されている情報のタイプの具体例を示す。
ログ処理モジュール314は、以前のログエントリの暗号化ハッシュを含む各ログエントリハッシュデータに関連する暗号化ハッシュを生成する。暗号化ハッシュの格納又は公開は、ログの以前のすべてのエントリに対するチェックサムを提供する。従って、公開されたハッシュが“信頼”されている場合、以前のすべてのログハッシュを再計算し、同一の最終的なハッシュが得られるか確認することが可能である。ログエントリを生成するためハッシュ処理されたデータの何れか又はログの何れかの部分に対する変更が検出可能である。このようなログ及びログエントリのハッシュ計算及び検証のフォーマット及び詳細は、それぞれが参照することによりその全体がここに援用される、2005年12月29日に出願された米国特許第7,849,053号“Coordination and Tracking of Workflows”、2008年10月2日に出願された米国特許出願第12/244,714号“Method Apparatus for Tamper Proof Camera Logs”及び2004年7月9日に出願された米国特許出願第10/887,998号“Synchronizing Distributed Work Through Document Logs”に説明される。
暗号化ハッシュはまた、検証用に利用されることに加えてデータをインデックス処理するのに利用可能であるため、コンテンツベース識別子(CBI)と呼ばれる。最も最近の暗号化ハッシュの刊行物は、それぞれが参照することによりその全体がここに援用される、2008年10月2日に出願された米国特許出願第12/224,707号“Method and Apparatus for Risk Analysys of Entangled Logs”及び2008年10月2日に出願された米国特許出願第12/244,721号“Method & Apparatus for Automatically Publishing Content Based Identifiers”に説明されるように、他の信頼されるログに対して、又は電子メールを介したものとすることが可能である。従って、暗号化ハッシュ又はCBIを含むログが維持される。最近のログエントリのCBIは、他のログファイルに格納され、電子メール又は他のプロトコルを介し公開される。これらのCBIは、CBIが公開された時からログが変更されなかったことを検証するのに以降に利用可能である。
転送モジュール316は、ワークフローサーバ106との間でアプリケーション、モジュール及びドキュメントを送受信するためのソフトウェア及びルーチンである。一実施例では、転送モジュール316は、オンラインマーケットプレースにおける表示用のアプリケーション又はモジュールをワークフローサーバ106に送信する。他の実施例では、転送モジュール316は、限定することなく、コンピュータ108、ワークフローサーバ106又は他の携帯計算装置102などの他の何れかの計算装置からフォーマット化されたメッセージとしてドキュメントを送受信する。転送モジュール316は、プロセッサ302及び通信ユニット306との通信のため、バス220により接続される。転送モジュール316は、電子メール、ファイル転送、XMPP又は特定用途アプリケーションなどによって、計算装置202からアプリケーション、モジュール、ドキュメント又はフォーマット化されたメッセージを送受信するためのものである。
表示装置206と揃えられて、デジタル化タブレット又はグラフィックスパッドなどのストロークキャプチャ装置208がある。ストロークキャプチャ装置208は、ディスプレイの上下又は周辺にありうる受信機を備えた接触検知装置、超音波、電磁気若しくは光検知装置である。ストロークキャプチャ装置208は、スタイラス204、指又は他の実装からストローク又は動作を受け付けることが可能である。ストロークキャプチャ装置208は、スタイラス204のためのセンサであり、認識可能な手書き、印刷及び他の描画をキャプチャするのに十分な解像度を有する。一実施例では、表示装置206には、接触反応透過パネルが表示装置206の画面をカバーするタッチ画面が備えられる。一実施例では、ストロークキャプチャ装置208は、Wacom Co.,Ltd.により製造販売されているデジタル化装置である。他の実施例では、ストロークキャプチャ装置208は、1つの接触点の水平方向及び垂直方向のポジションを返すシンプルなセンサである。さらなる他の実施例では、ストロークキャプチャ装置208は、スタイラス上のボタンが押下された場合、又はイレースなどのスタイラスが反転された場合、圧力、位置、時間の表示及びスタイラス204のID番号、タイプ若しくは表示を返す複数のより複雑なセンサである。いくつかのセンサは、複数の接触点を返してもよい。いくつかのセンサは、スタイラスベースの接触入力と指ベースの接触入力とを区別することが可能であってもよい。ストロークキャプチャ装置208は、ストロークキャプチャモジュール208の一部であるか、又はストロークキャプチャモジュール208と通信するよう構成される。
バス220は、計算装置202を介し情報及びデータを通信するための共有バスを表す。バス220は、ISA(Industry Standard Architecture)バス、PCI(Peripheral Component Interconnect)バス、USB(Universal Serial Bus)又は同様の機能を提供するため当該分野において知られている他のいくつかのバスを含む1以上のバスを表すものであってもよい。システムバス220を介しプロセッサ302に接続されるさらなるコンポーネントは、表示装置206、ストロークキャプチャ装置及びモジュール208、入力装置210、出力装置215、プロセッサ302、メモリ304、通信ユニット306、一意的装置識別子ストレージ308、クロック310、メタデータモジュール312、ログ処理モジュール314、転送モジュール316、アプリケーションモジュール318、プレゼンテーションモジュール222及びその他のアプリケーション324を有する。また、機能的要素の間の最も効率的な通信を提供するよう設計された計算システム202における複数のバスがあってもよい。
プレゼンテーションモジュール222は、表示装置206上にドキュメントを表示し、入力装置210からの入力に応答して画像の表示を調整するためのソフトウェア及びルーチンである。プレゼンテーションモジュール222は、図5〜9を参照して後述されるデュアルモードユーザインタフェースを表示させるルーチンを実行する。一実施例では、プレゼンテーションモジュール222は、表示装置206上に画像を表示させるためプロセッサ302により実行可能なシンクライアントルーチンである。プレゼンテーションモジュール222は、バス220により表示装置206、プロセッサ302及びメモリ304に接続される。
その他のアプリケーションは、他の各種タイプの機能のため、プロセッサ302により実行可能な他のソフトウェア及びルーチンを含む。一実施例では、限定することなく、ワードプロセッシングアプリケーション、電子メールアプリケーション、財務アプリケーション及びウェブブラウザアプリケーションを含む1以上のアプリケーションプログラムが、プロセッサ302により実行される。
最後に、計算装置202は、1以上の他のI/Oデバイス326を有してもよい。例えば、他のI/Oデバイス326は、音声を生成するためのスピーカー、音声を記録するためのマイクロフォン、ドキュメント、画像若しくはビデオを記録するためのスキャナ若しくはカメラ、及び加速度計、ページャモータ又は触覚フィードバックなどの他のセンサ若しくはフィードバック装置を含むものであってもよい。任意的には、その他のI/Oデバイス326は、音声処理を実現するための1以上のアナログ・デジタルコンバータ若しくはデジタル・アナログコンバータ、及び/又は1以上のデジタル信号プロセッサを含むものであってもよい。これら他のI/Oデバイス326は、バス220によってプロセッサ302及びメモリ304との通信のため接続される。任意的には、マイクロコントローラが、パワーシステム制御を実現し、低速な重要度の低いタスクからメインプロセッサ302をオフロードするため、他のI/Oデバイス326の一部として追加されてもよい。
ワークフローサーバ106
図2Bを参照して、ワークフローサーバ106の実施例がより詳細に説明される。ワークフローサーバ106は、プロセッサ291、メモリ290、通信ユニット293、オンラインマーケットプレースモジュール270、クロック294、ルーチングモジュール272、プレゼンテーションモジュール295、登録モジュール275、他の入出力装置296、他のアプリケーション297、ログ処理モジュール298、転送モジュール299及びデータストレージ260を有する。他の実施例では、ワークフローサーバ106はさらに、表示装置279、出力装置280、一意的装置ID292及び入力装置281を有する。
当業者は、ワークフローサーバ106のコンポーネントの一部が計算装置202のコンポーネントと同一又は類似の機能を有することを認識しており、このため、これらのコンポーネントの説明はここでは繰り返されない。例えば、プロセッサ291、メモリ290、通信ユニット293、転送モジュール299、ログ処理モジュール298、クロック294、他のアプリケーション297、表示装置279、出力装置280、一意的装置ID292及び入力装置281は、図2Aのプロセッサ302、メモリ304、通信ユニット306、転送モジュール316、ログ処理モジュール314、クロック310、他のI/Oデバイス326、表示装置206、出力装置215、一意的装置ID308及び入力装置210とそれぞれ類似した機能を有する。
ワークフローサーバ106と計算装置202とのコンポーネントの間の相違が以下に説明される。例えば、通信ユニット293は、無線の代わりに有線によりワークフローサーバ106とネットワーク104とを接続してもよい。プロセッサ291は、ワークフローサーバ106が多数の携帯計算装置102にサービスを提供する可能性があるため、プロセッサ302より計算的に強力なものである。転送モジュール299は、電子メールクライアントに対するような電子メールサーバである。表示装置279はCRT(Cathode−Ray Tube)であってもよく、出力装置280はスピーカーセットである。入力装置281は、キーボード及びマウスタイプコントローラを含む。当業者は、ワークフローサーバ106のコンポーネントがリモートクライアントに対するハードウェアサーバとして機能するとき、他の各種装置がありうることを認識するであろう。
ログ処理モジュール298は、異なる計算装置から送信されるログからグローバルログを生成する。グローバルログは、異なる計算装置において行われたすべての動作の中央ログである。グローバルログは、個々のログからのハッシュを含むが、各トランザクション中に具体的に行われたことに関する詳細は含まない。具体的なアクションは、アプリケーション、ドキュメント又はモジュールに関連するメタデータを抽出することによって再生成可能である。
登録モジュール275は、オンラインマーケットプレースモジュール270にアップロードするため、識別子を生成し、アプリケーション及びモジュールを構成するためのソフトウェア及びルーチンである。一実施例では、登録モジュール275は、図6〜8を参照して後述されるような識別子及び秘密鍵を生成するため、プロセッサ294により実行可能なルーチンである。アプリケーション又はモジュールは、アップロードのためオンラインマーケットプレースモジュール270に登録及び送信される。登録モジュール275は、バス320によってプロセッサ291、メモリ290及びオンラインマーケットプレースモジュール270に接続される。
ルーチングモジュール272は、アプリケーション、モジュール又はドキュメントと共に受信されたメタデータを抽出し、データストレージ260からシークレット情報を抽出し、シグネチャを生成し、当該シグネチャとアプリケーション、モジュール又はドキュメントのメタデータと比較し、当該比較がデータのコンフリクトを生じさせた場合にはエラーを生成し、シグネチャがアプリケーション、モジュール又はドキュメントのメタデータに一致した場合、アプリケーションをそれの宛先にルーティングするためのソフトウェア及びルーチンである。一実施例では、ルーチングモジュール272は、メタデータに規定された宛先間の比較をし、当該比較が許容される場合、アプリケーション、モジュール又はドキュメントを宛先にルーティングするため、プロセッサ291により実行可能なルーチンである。比較ステップの何れかがデータのコンフリクトを生じさせる場合、エラーメッセージが送信される。ルーティングモジュール272は、バス320によってプロセッサ291及びメモリ290に接続される。
オンラインマーケットプレースモジュール270は、アプリケーション、モジュール及びドキュメントをオンラインストアにアップロードし、購入用にアプリケーション、モジュール及びドキュメントを提示し、当該購入アプリケーションをユーザに課金し、ルーティングするとアプリケーションの生成することに関係するエンティティにクレジットを配布するためのソフトウェア及びルーチンである。一実施例では、オンラインマーケットプレースモジュール270は、アプリケーションの最初の購入と追加的なサービスのための以降の料金とについてユーザに月単位固定料金又はサービス毎に課金するため、プロセッサ291により実行可能なルーチンである。オンラインマーケットプレースモジュール270は、プロセッサ291、メモリ290、登録モジュール275及びルーチングモジュール272に接続される。
一実施例では、データストレージ260は、ワークフローサーバ106の一部である。他の実施例では、データストレージ260は、ワークフローサーバ106に接続される。例えば、このような他の実施例では、データストレージ260は、Amazon S3などのオンラインストレージサービスである。データストレージ260は、不揮発性メモリ装置又は同様の永続的記憶装置及び媒体である。データストレージ装置260は、プロセッサ291のためデータ及び命令を格納し、ハードディスクドライブ、フロッピー(登録商標)ディスクドライブ、CD ROM装置、DVD ROM装置、DVD RAM装置、DVD RW装置、フラッシュメモリ装置又は当該分野において知られている他の何れかのマスストレージ装置を含む1以上の装置を有する。データストレージ260は、アプリケーションと、ハッシュ、識別子、秘密鍵、シグネチャなどを含む関連するメタデータとを格納するのに利用される。データストレージ260の構成は、図3A及び3Bを参照して以下においてより詳細に説明される。
登録モジュール275
図3Aは、登録モジュール275の一実施例を示す。一実施例では、登録モジュール275は、それぞれがバス320に接続される、入出力モジュール307、識別情報(ID)生成ユニット310、アプリケーション生成ユニット322及びモジュール生成ユニット344を有する。アプリケーション又は装置の登録中、I/Oモジュール307は、異なる識別子に対するリクエストを受信し、当該リクエストをID生成ユニット310に送信する。
アプリケーション、ドキュメント及びモジュールの間の相違を理解するのを支援するため、図3Bは、アプリケーション346のグラフィカル表現を示す。アプリケーション346は、ドキュメント348を生成するためのソフトウェア及びルーチンを含むものであってもよく、又はドキュメントは、当該アプリケーションに関連する他のツールにより生成されたものであってもよい。アプリケーション346は、タスクを実行するための異なるモジュールを含むことが可能であるか、又はモジュールは、別々に購入可能である。
ドキュメント348は、ページ350a,350b,350c,...,350nを有する。一実施例では、ユーザは、アプリケーション346を購入し、ドキュメント348を生成し、ページ350a〜nを記入するための情報を提供する。アプリケーション346が特定の機能を欠落している場合、ドキュメント348は、タスクを実行するためオンラインマーケットプレースモジュール270上で利用可能とされる異なるタスクパフォーマ139に送信される。プロセスオーガナイザ108は、典型的には、タスクを完了させるため、異なるタスクパフォーマ139にドキュメント348を送信するため、アグリーメントとメタデータとを設定するためのものである。しかしながら、当業者は、オンラインマーケットプレースモジュール270を介しタスクパフォーマ139から追加的なサービスを顧客が購入するなど、他のビジネスモデルが利用可能であることを認識するであろう。課金のためのフォーマット及び詳細は、参照することによりその全体がここに援用される、2009年9月8日に出願された米国出願第12/555,686号“Multi−Provider Forms Processing System with Retry upon Failure”に説明される。
図3Aに戻って、ID生成ユニット310は、識別子を生成し、当該識別子をデータストレージ260に格納するためのソフトウェア及びルーチンを含む。ID生成ユニット310は、バス320によってプロセッサ291、メモリ290及びデータストレージ260に接続される。ID生成ユニット310は、登録されている何れかのアプリケーション又はモジュールについてグローバルに一意的な識別子(GUID)を生成する。GUIDは、アプリケーションが登録される毎に更新され、これにより、GUIDは、アプリケーション又はモジュールのバージョンに固有のものとなる。従って、ID生成ユニット310は、アプリケーションバージョンGUIDを生成することになる。
ID生成ユニット310はまた、登録されている何れかのアプリケーション又はモジュールについてシークレット情報を生成する。一実施例では、当該シークレット情報は、パブリック/プライベートキーの組み合わせにおけるプライベートキーである。当該シークレット情報は、ワークフローサーバ106及びプロセスオーガナイザ108又はモジュールデベロッパ135に知られている。ワークフローサーバ106は、シークレット情報をデータストレージ260に格納し、当該シークレット情報が他のパーティにより傍受されないことを保証するため、最初の送信後はシークレット情報を送信しない。
ID生成ユニット310はまた、アプリケーション、モジュール又はドキュメントに対して変更を行った何れかのエンティティについて、携帯計算装置102及びユーザID354などの登録されている何れかの装置に対する一意的な装置ID351を生成する。一意的な装置ID351は、携帯計算装置102に対してユーザにより変更されたドキュメントが認証された装置上で変更されていることを保証する。ユーザID354は、アプリケーション、モジュール又はドキュメントに関する何れかの問題のソースをより容易に特定するため変更がなされた計算装置をトラッキングするのに利用される。一実施例では、ID生成ユニット310がユーザID354を生成した後、ID生成ユニット310は、ユーザがホームアドレス、クレジットカード情報、課金アドレスなどを含むアカウントを確定することを要求し、これにより、ユーザは、アプリケーション、モジュール又はドキュメントの購入又は販売後に適切に課金されることになる。この情報は、データストレージ260に格納され、ユーザのプライバシを保護するため暗号化される。
ログ処理モジュール314,298はまた、他の情報をメタデータとして保存する。図3Cは、アプリケーション、ドキュメント又はモジュールと関連して保存されるメタデータ370の一例を示す。本例では、一意的装置ID351は、携帯計算装置102などの計算装置202を特定する。アプリケーション又はモジュールバージョンGUID352は、利用されるアプリケーションの識別子である。ユーザID354は、アプリケーション、ドキュメント又はモジュールのユーザを特定する。価格356は、購入されたアプリケーション、実行される以降の何れかのアクションの価格などの価格を含む。トランザクションステップID358は、何れのトランザクションがすでに実行されたか、また何れのトランザクションが維持されているかトラッキングするため、ワークフローサーバ106により利用される。トランザクションが完了する毎に、新たなIDはトランザクションステップID358に追加される。
結果データ360のハッシュは、最も最近に実行されたアクションのハッシュである。一実施襟では、結果データ360のハッシュは、ローリングハッシュである。ローリングハッシュは、以前のハッシュと新たなハッシュとのハッシュである。ハッシュオフセット362は、以前のログエントリのハッシュ値と最も最近のハッシュとの間の相違である。以前のログエントリのハッシュ値を計算するための情報を含めることによって、当該情報は、以降に利用可能であり、他の関連するログエントリと比較することによって検証のため調べることができる。
アプリケーション生成ユニット322は、登録されたアプリケーションをオンラインマーケットプレースモジュール270に送信するためのソフトウェア及びルーチンである。アプリケーション生成ユニット322は、プロセスオーガナイザ108からアプリケーションと、ID生成ユニット310から識別子とを受信する。アプリケーション生成ユニット322は、識別子及びアプリケーションをオンラインマーケットプレースモジュール270に適したフォーマットにフォーマット化し、フォーマット化された識別子とアプリケーションとをオンラインマーケットプレースモジュール270に送信する。アプリケーション生成ユニット322は、バス320によってプロセッサ291及びメモリ290に接続される。
モジュール生成ユニット344は、登録されたモジュールをオンラインマーケットプレースモジュール270に送信するためのソフトウェア及びルーチンである。モジュール生成ユニット344は、モジュールデベロッパ135からモジュールと、ID生成ユニット310から識別子とを受信する。モジュール生成ユニット344は、識別子とアプリケーションとをオンラインマーケットプレースモジュール270に適したフォーマットにフォーマット化し、フォーマット化された識別子とモジュールとをオンラインマーケットプレースモジュール270に送信する。モジュール生成ユニット344は、バス320によってプロセッサ291とメモリ290とに接続される。
ルーティングモジュール272
図4に戻って、一実施例では、ルーティングモジュール272は、プロセッサ291、メモリ290、オンラインマーケットプレースモジュール270及びI/Oモジュール407のための通信ユニット293と通信するためバス320に接続されるI/Oモジュール407、コントローラ403、抽出エンジン410、比較ユニット422及びエラーハンドリングモジュール429を有する。
I/Oモジュール407は、アプリケーション、モジュール及びドキュメントをそれらの宛先に送受信するためのソフトウェア及びルーチンである。I/Oモジュール407は、電子メール、ファイル転送、XMPP又は特定用途アプリケーションなどによって、プロセスオーガナイザ108、携帯計算装置102及びモジュールデベロッパ135から、各自のメタデータ370を含むアプリケーション、モジュール及びドキュメントを受信し、それをコントローラ403に送信する。検証処理が完了すると、コントローラ403は、アプリケーション、モジュール又はドキュメントをトランザクションステップID358により指定されるような携帯計算装置102、プロセスオーガナイザ108、モジュールデベロッパ135又はタスクパフォーマ139に送信するI/Oモジュール407に通信ユニット293を介しアプリケーション、モジュール又はドキュメントを送信する。
コントローラ403は、アプリケーション、モジュール又はドキュメントの検証処理を制御するためのソフトウェア及びルーチンである。一実施例では、コントローラ403は、I/Oモジュール407、抽出エンジン410、比較ユニット422及びエラーハンドリングモジュール429の間のルーティングを制御することによって、アプリケーション、モジュール又はドキュメントの検証を実行するため、プロセッサ291により実行可能なルーチンである。コントローラ403はまた、トランザクションステップID358を抽出し、ルーティング処理において次のステップを特定することによって、アプリケーション、モジュール又はドキュメントをどこにルーティングすべきか決定する。
比較ユニット422がアプリケーション、モジュール又はドキュメントが真正であることを検証すると、コントローラ403は、トランザクションステップID358などに基づき、ドキュメント自体の内部に格納されているメタデータ370に基づき、当該ドキュメントの次の宛先を決定する。トランザクションステップID358は、ドキュメントの追加的な処理、ドキュメントがどのようにルーティングされるべきか、及びルーティングの宛先を指定する。例えば、メタデータとして格納される電子メールアドレスの順序付けされた系列は、ドキュメントが連続する各電子メールアドレスにわたされるワークフローの一例である。
抽出エンジン410は、メタデータ370を受信し、メタデータ370からアプリケーション/モジュールバージョンGUID352、結果データ360のハッシュ及びハッシュオフセットを抽出する。抽出エンジン410はまた、データストレージ260からアプリケーション又はモジュールシークレット情報を抽出する。抽出エンジン410は、その後、シグネチャを生成するため、アプリケーション/モジュールバージョンGUID352、結果データ360のハッシュ、ハッシュオフセット362及びシークレット情報をハッシュ処理する。シグネチャは、比較ユニット422に送信される。
ブランクドキュメントが生成されるか、又はドキュメント、アプリケーション若しくはモジュールが変更されると、抽出エンジン410は、シグネチャを生成する。ブランクドキュメントについて、シグネチャは、アプリケーションシークレット情報、ローリングハッシュ及びハッシュオフセットの署名付きハッシュである。ワークフローサーバ106にアップロード及び変更されたアプリケーション、ドキュメント又はモジュールについて、シグネチャは、ローリングハッシュ、ハッシュオフセット、アプリケーションバージョンGUID352及びアプリケーションシークレット情報を有する。シグネチャハッシュは、アプリケーション、ドキュメント又はモジュールに関連するメタデータ370に結果データ360のハッシュとして保存され、ログに戻され、ローリングハッシュを生成するためログ処理モジュール314により利用される。アプリケーションシークレット情報がハッシュ処理され、当該ハッシュは一般に不可逆的であるため、シークレット情報はワークフローサーバ106及びプロセスオーガナイザ108又はモジュールデベロッパ135によってしか知られない。
比較ユニット422は、整合性を確認するため、アプリケーション、モジュール又はドキュメントのシグネチャとアプリケーション、モジュール又はドキュメントのメタデータ370とを比較するためのソフトウェア及びルーチンである。これらのハッシュが整合しない場合、コントローラ403は、エラーハンドリングモジュール429にエラーメッセージを生成するよう指示する。情報が整合している場合、比較ユニット422は、宛先と次にトランザクションステップID358によって指定される次の宛先とを比較する。情報がコンフリクトしている場合、エラーハンドリングモジュール429は、エラーメッセージを生成する。比較ユニット422はまた、送信元のユーザがアプリケーションに対するアクセス権限を有し続けるかテストしてもよく、有しない場合、エラーハンドリングモジュール429は、エラーメッセージを生成する。情報が整合している場合、I/Oモジュール407は、それの次の宛先にアプリケーション、モジュール又はドキュメントを送信する。
エラーハンドリングモジュール429は、シグネチャとアプリケーション、モジュール又はドキュメントのメタデータとの間の不整合を携帯計算装置102、プロセスオーガナイザ108、モジュールデベロッパ135又はタスクパフォーマ139に通知するため、コントローラ403から命令を受信するためのソフトウェア及びルーチンである。一実施例では、エラーハンドリングモジュール429は、最後の計算装置についてアプリケーション、モジュール又はドキュメントをワークフローサーバ106に送信するための通知を生成する。他の実施例では、エラーハンドリングモジュール429は、他の通知と共に又は代わりに、意図した宛先の携帯計算装置102、プロセスオーガナイザ108、モジュールデベロッパ135又はタスクパフォーマ139について通知を生成する。エラーハンドリングモジュール429は、トランザクションステップID358から情報を抽出することによって、どこに通知を送信すべきか決定する。
オンラインマーケットプレースモジュール270
図5は、バス320によってプロセッサ291、メモリ290及びI/Oモジュール507について通信ユニット293と通信するため接続されるI/Oモジュール507、課金モジュール510、プレゼンテーションモジュール522及び検証モジュール529を有するオンラインマーケットプレースモジュール270の一実施例である。
課金モジュール510は、完了されたトランザクションの処理のため要求元のパーティに課金するため、プロセッサ291により実行可能なソフトウェア及びルーチンである。トランザクションは、アプリケーションの購入、モジュールの購入、タスクの実行、アプリケーション及び/又はモジュールのセットの購入などを含む。一実施例では、課金モジュール510は、認証された要求元のパーティ、関連する携帯計算装置102、識別番号、課金アドレス、支払タイプ及びデータ並びに他のセキュリティ及び課金情報のリストを含む。課金モジュール510はまた、プロセスオーガナイザ108、タスクパフォーマ139及びモジュールデベロッパ135について類似するタイプの情報を含む。課金モジュール510は、要求元のパーティに請求書を送信するか、又はクレジットカードに自動的に課金する。
紙と同様の処理における各ステップは、トランザクションとみなされる。一実施例では、価格が交渉され、プロセスオーガナイザ108、タスクパフォーマ139、モジュールデベロッパ135及びワークフローサーバ106により設定されている。各トランザクションは、ステップを実行するための価格、タスクパフォーマ139及び/又はモジュールデベロッパ135に提供された当該価格の一部、及びワークフローサーバ106が保持する当該価格の一部を含む。
他の実施例では、課金モジュール510は、ネットワーク上で利用可能なサービスプロバイダの個数、トランザクションを実行可能なサービスプロバイダの個数、これがトランザクションにおける最初の試みであるか、トランザクションに要求されるQoS(Quality of Service)及び他の各種ファクタに基づき、特定のトランザクションについて価格を動的に決定する。このような実施例では、課金モジュール510は、最低価格によりトランザクションを完了させるため、マーケットメーカーと同様に機能する。
課金モジュール510は、トランザクションの状態を決定するため、ルーティングモジュール272に接続される。トランザクションが処理されると、課金モジュール510は、要求元のパーティ及びトランザクションステップを実行したエンティティ(プロセスオーガナイザ108、タスクパフォーマ139又はモジュールデベロッパ135)に関する情報と、当該処理に関する他の情報とを蓄積する。課金モジュール510は、その後、エンティティ及び要求元のパーティのそれぞれのクレジット又はデビットの記述を生成する。
一実施例では、課金モジュール510は、多数のトランザクションの情報を累積し、アプリケーション、モジュール又はドキュメントに関するトランザクション系列全体が完了するまで、要求元パーティには課金しない。このような実施例は、課金モジュール510とルーティングモジュール272との間の連係及び通信を要求し、これにより、課金モジュール510は、何れのトランザクションが何れのドキュメントの処理に関連し、当該ドキュメントのすべての処理(トランザクション)が完了したときとを知ることになる。
他の実施例では、課金モジュール510はまた、取消又はクレジットを生成及び処理する。このような取消又はクレジットは、ログの監査、顧客の不満、特定されたエラー若しくは訂正、又はトランザクションが良好に、完全に又は適切に実行されなかったことの検出などに応答して、要求元のパーティが課金されたずっと後に生成可能である。当業者は、電子課金、資産移転、クレジットカード処理などを含む従来の各種課金機能が、課金モジュール510により実現可能であることを理解するであろう。
他の実施例では、課金モジュール510は、トランザクションを表す課金コードのリスト又はスケジュールを維持する。各課金コードは、提供及び/又は完了させるべきサービスを特定するため、トランザクションステップID358に関連して利用可能である。一実施例では、課金コードは、サービスを実行するための関連するパラメータと共に予め交渉された価格と、エンティティとワークフローサーバ106との間の価格の割当てとを有する。当業者は、このような課金コードがバルクディスカウント又は特別なプライベートな価格決定の同意などの追加的な情報を含むものであってもよいことを認識するであろう。さらなる他の実施例では、課金モジュール510は、マーケット状態及び他のプライベートな合意と整合する課金スケジュールの更新及び編集を可能にするため、プロセッサ291及び通信ユニット293と連係する。
プレゼンテーションモジュール522は、購入用のアプリケーション、モジュール及びドキュメントをオンラインマーケットプレースモジュール270において表示するためのソフトウェア及びルーチンである。プレゼンテーションモジュール522は、レーティングシステム、分類システム、アプリケーションを検出するためのサーチバーなどと共に、アプリケーション、モジュール及びドキュメントを表示するためのユーザインタフェースを生成する。一実施例では、プレゼンテーションモジュール522は、医師のオフィスの医療アプリケーションなどの汎用アプリケーションと、スミス先生の医療アプリケーションなどのカスタマイズされたアプリケーションとの双方を表示する。
カスタマイズされたアプリケーションは、すべての人が閲覧し、スミス先生のみが購入するため表示可能である。カスタマイズされたアプリケーション、モジュール又はドキュメントをすべての人に表示する効果は、カスタマイズされたアプリケーションを作成するエンティティの能力を示すということである。不利益は、顧客が自分のカスタマイズされたアプリケーション、モジュール又はドキュメントを他のユーザに表示したくないかもしれないということである。従って、一実施例では、カスタマイズされたアプリケーション、モジュール又はドキュメントは、ユーザが同意した後に始めてすべての人に表示される。
他の実施例では、カスタマイズされたアプリケーション、モジュール及びドキュメントは、特定のユーザのみに表示される。各ユーザには一意的なID354が割り当てられているため、ユーザの一意的なID354に従って、アプリケーション、モジュール及びドキュメントが表示される。プレゼンテーションモジュール522はまた、ユーザに固有の処理済みのアプリケーション、モジュール及びドキュメントを表示する。例えば、医師は、患者の書類に音声記録を添付し、音声からテキストへの変換のためドキュメントを送信する。当該処理は、タスクパフォーマ139により実行される。タスクパフォーマ139が処理を完了すると、ドキュメントは、医師がダウンロードするためオンラインマーケットプレースモジュール270にアップロード、認証及び表示される。これは、加えて又は代わりにユーザに処理済みのドキュメントを直接送信することが可能である。
検証モジュール529は、オンラインマーケットプレースのためアプリケーション、モジュール及びドキュメントを検証するためのソフトウェア及びモジュールを有する。一実施例では、検証モジュール529は、比較ユニット422について上述されたものに類似した認証ステップを実行する。他の実施例では、検証モジュール529は、計算装置102、プロセスオーガナイザ108、タスクパフォーマ139又はモジュールデベロッパ135のユーザからの不満や低いレーティングを受信することに応答して、アプリケーション、モジュール及びドキュメントをフラグ付けする。
方法
図6A〜9を参照して、本発明の実施例の方法がより詳細に説明される。
図6Aは、本発明の実施例による顧客、アプリケーション及びモジュールを登録するための方法の一実施例を示す。当該処理は、携帯計算装置102、プロセスオーガナイザ108、タスクパフォーマ139又はモジュールデベロッパ135が登録モジュール275による登録を開始する(602)ことにより開始される。一実施例では、オンラインマーケットプレース270は、ユーザを登録するためのログイン画面を有するユーザインタフェースを生成する。一実施例では、ユーザインタフェースは、ブラウザに表示される。ログイン画面が表示されると、それは、パスワード及び/又はユーザ名のエントリと選択可能なボタンとのフィールドを含む。ユーザは、要録された情報を提供し、携帯計算装置102にユーザ名及び/又はパスワードを入力するためのボタンを選択する。登録モジュール275は、ユーザのユーザIDを生成する(604)。ユーザIDはユーザに一意的なものであり、例えば、ユーザ名及びパスワードを設定するなどによって確定される。
登録モジュール275は、ユーザが顧客又はエンティティであるか判断する。顧客は、携帯計算装置102のユーザである。ユーザが顧客であると判断したことに応答して、登録モジュール275は、携帯計算装置について一意的な装置IDを生成する(606)。一実施例では、一意的な装置IDは、ユーザIDに関連付けされる。これは、一意的な装置IDが一意的な装置IDの番号の欠落により他の装置のために再利用された場合、特に重要である。
エンティティは、アプリケーションを生成するプロセスオーガナイザ108と、モジュールを生成するモジュールデベロッパ135とを有する。ユーザがエンティティである判断したことに応答して、登録モジュール275は、アプリケーション/モジュールバージョンのグローバルに一意的な識別子(GUID)352を生成する(608)。GUIDは、アプリケーション又はモジュールと関連付けされ、アプリケーション又はモジュールのバージョン番号を含む。バージョン番号は、アプリケーション又はモジュールの異なるバージョンに行われた変更を追跡するため、ルーティングモジュール272により利用される。バージョン番号は、価格決定構成を追跡するため、オンラインマーケットプレース270により利用される。例えば、ユーザがバージョン1〜2にアップグレードすることを所望する場合、バージョン2は追加的な機能を提供するため、アップグレードに関するコストがあるかもしれない。プロセスオーガナイザ108又はモジュールデベロッパ135は、アプリケーション又はモジュールバージョンGUID352をアプリケーションメタデータとして格納する(610)。
登録モジュール275は、アプリケーション又はモジュールについてシークレット情報を生成し(612)、当該シークレット情報をプロセスオーガナイザ108又はモジュールデベロッパ135に送信する。一実施例では、シークレット情報は、パブリック/プライベートキーペアのプライベート部分である。シークレット情報は、プロセスオーガナイザ108又はモジュールデベロッパ135及び登録モジュール275によってのみ知られる。これは、未認証のエンティティがアプリケーション及びモジュールを傍受し、認証されていない変更を行う能力を低下させる。一実施例では、プロセスオーガナイザ108又はモジュールデベロッパ135はシークレット情報を格納するが、未認証のエンティティがメタデータを解読することを回避するためメタデータとしては格納しない。他の実施例では、シークレット情報は、登録モジュール275内で生成され、プロセスオーガナイザ108又はモジュールデベロッパ135には開示されないが、代わりに検証モジュール529に利用可能とされる。
GUID及びシークレット情報が生成されると、アプリケーション又はモジュールは確定され、アプリケーション又はモジュールとメタデータとが、オンラインマーケットプレース270にアップロードされる(614)。オンラインマーケットプレース270は、プロセスオーガナイザ108又はモジュールデベロッパ135は支払構成を指定するよう要求する(616)。支払構成は、アプリケーションを購入するための価格356と、追加的なサービスのための以降の料金とを含む。例えば、医師のオフィスの書類の上記具体例では、顧客はまず書類を購入し、変換サービスのため追加的な金銭を支払うことを選択できる。追加的なサービスは、月単位の課金又はサービス毎に課金される。登録処理が終了すると、オンラインマーケットプレース270は、販売用にアプリケーション又はモジュールを表示する(618)。
一実施例では、モジュールは、個別のタスクを実行するため顧客により購入される。他の実施例では、モジュールは、プロセスオーガナイザ108のアプリケーションに含めるため、プロセスオーガナイザ108により購入される。図6Bは、モジュールをアプリケーションに内蔵し、アプリケーションを登録モジュール275により再登録するためのステップを示す。さらなる他の実施例では、プロセスオーガナイザ108は、タスクパフォーマ139からタスクを購入する。これらのステップは、図6Cに示される。
図6Bを参照して、プロセスオーガナイザ108は、オンラインマーケットプレース270からモジュールを購入する(620)。プロセスオーガナイザ108は、モジュールをアプリケーションに含める(622)。プロセスオーガナイザ108は、アプリケーションをワークフローサーバ106にアップロードすることによって、アプリケーションを再登録するか、又はアプリケーションをアップロードする前に新たなアプリケーションのバージョンのGUIDを要求する。登録モジュール275は、新たなアプリケーションのバージョンのGUID624を生成し、これをプロセスオーガナイザ108に送信する。オンラインマーケットプレース270は、例えば、収入の何れのパーセンテージがモジュールを供給するためモジュールデベロッパ135に属するかなどを指定することによって、ユーザが支払構成を更新することを要求する(626)。ルーティングモジュール272は、アプリケーションに対する変更が承認されたことを保証するため、更新されたアプリケーションを認証する(628)。認証ステップは、図7〜9を参照して以下に詳細に説明される。オンラインマーケットプレース270は、更新されたアプリケーションを表示する(630)。顧客が更新されたアプリケーションを購入すると、オンラインマーケットプレース270は、更新されたアプリケーションの購入を受信する(632)。オンラインマーケットプレース270は、更新された支払構成に従って、プロセスオーガナイザ108及びモジュールデベロッパ135にクレジットを配布する。
図6Cは、タスクパフォーマ139からタスクを購入するためのステップを示す。プロセスオーガナイザ108は、タスクパフォーマ139からタスクを購入し(636)、オンラインマーケットプレース270がアプリケーションに関する支払構成を更新できるように(638)、オンラインマーケットプレース270に情報を送信する。一実施例では、更新されたアプリケーションは、このときにワークフローサーバ106にアップロードされる。他の実施例では、更新されたアプリケーションは、再登録後にアップロードされる。登録モジュール275は、新たなアプリケーションバージョンGUID352を生成する(640)。ルーティングモジュール272は、図7〜9を参照して説明される処理を利用して、更新されたアプリケーションを認証する(642)。オンラインマーケットプレース270は、更新されたアプリケーションを表示する(644)。顧客が更新されたアプリケーションを購入すると、オンラインマーケットプレース270は、更新されたアプリケーションの購入を受信し(646)、プロセスオーガナイザ108とタスクパフォーマ139とにクレジットを配布する(648)。一実施例では、タスクパフォーマ139のみが、実行されている合意されたタスクが完了すると、クレジットを受信する。
図7を参照して、フロー図700は、アプリケーションについてアプリケーションシグネチャを取得する処理を示す。プロセスオーガナイザ108は、ワークフローサーバ106上でブランクドキュメントを生成する(702)。ルーティングモジュール272は、データストレージ260からシークレット情報を抽出し(704)、メタデータを抽出し、当該ハッシュがシークレット情報、ローリングドキュメントハッシュ及びハッシュオフセットを合成したアプリケーションシグネチャファイル署名付きハッシュを生成する(706)。登録モジュール275は、アプリケーションと共にメタデータとしてアプリケーションシグネチャを格納する(708)。
図8は、ドキュメントが変更された後にシグネチャを生成するステップを示すフロー図800である。ユーザは、ドキュメントを変更する(802)。例えば、顧客は書式に情報を入力し、プロセスオーガナイザ108はドキュメントに対して変更を行い、あるいは、タスクパフォーマ139はタスクを実行することによってドキュメントを変更する。ドキュメントに対して変更を行ったユーザは、ドキュメントをワークフローサーバ106に送信する(804)。ルーティングモジュール272は、ローリングハッシュ、ローリングハッシュオフセット、アプリケーションバージョンGUID352及びシークレット情報を合成したドキュメントシグネチャを生成する(806)。当該ドキュメントシグネチャは、アプリケーションバージョンGUID352を有しているため、アプリケーションシグネチャと異なる。ルーティングモジュール272は、修正されたドキュメント共に、メタデータとしてドキュメントシグネチャ、アプリケーションバージョンGUID352、ハッシュ及びハッシュオフセットを格納する。ドキュメント及びメタデータは、ログ処理モジュール314がシグネチャをローリングハッシュに変換する計算装置202に送信される。
図9を参照して、アプリケーション、モジュール又はドキュメントをルーティングするフロー図900が示される。ワークフローサーバ106は、アプリケーション、モジュール又はドキュメントを受信する(902)。ルーティングモジュール272は、メタデータとシークレット情報とを抽出し(904)、ドキュメントについてハッシュを計算する。メタデータは、図3Cに示される情報を含む。具体的には、メタデータは、一意的装置ID351、アプリケーションバージョンGUID352、ユーザID354、価格356、トランザクションステップID358、結果データのハッシュ360及びハッシュオフセット362を含む。ルーティングモジュール272は、シグネチャとメタデータ、シグネチャ及び計算されたハッシュとを比較する(906)。
ルーティングモジュール272は、比較により問題があるか判断する。データが整合していない場合、ルーティングモジュール272は、エラーメッセージを送信する(908)。エラーメッセージは、データをアップロードしたユーザ、ドキュメントを次に受信するユーザ又はこれらの双方に送信される。データが整合している場合、ルーティングモジュール272は、当該宛先とメタデータに指定された宛先とを比較する(910)。当該比較は、宛先がリストにあり、送信元のユーザが送信時にアクセス可能であることを保証するため、許容される宛先のリストをチェックすることを含む。当該比較に問題がある場合、ルーティングモジュール272は、エラーメッセージを送信する(908)。当該比較が許容される場合、ルーティングモジュール272は、アプリケーションを当該宛先にルーティングする(912)。
本発明の実施例の上記説明は、例示及び説明のために与えられたものである。それは、本発明の実施例を開示された正確な文言に限定し、又は網羅的であることを意図したものでない。上記教示に基づき、多数の変更及び変形が可能である。本発明の実施例の範囲は当該詳細な説明により限定されるのでなく、本出願の請求項によって限定されることが意図される。当業者に理解されるように、本発明の実施例は、それの趣旨又は本質的な特性から逸脱することなく、他の具体的なドキュメントにより実現されてもよい。同様に、モジュール、ルーチン、特徴、属性、方法及び他の態様の特定の名称及び分割は必須又は重要なく、本発明の実施例又はその特徴を実現する機構は、異なる名前、分割及び/又はドキュメントを有してもよい。さらに、当業者に明らかなように、本発明の実施例のモジュール、ルーチン、特徴、属性、方法及び他の態様は、ソフトウェア、ハードウェア、ファームウェア又はこれら3つの何れかの組み合わせとして実現可能である。また、本発明の実施例のコンポーネントと、その具体例であるモジュールとがソフトウェアとして実現される場合、コンポーネントは、スタンドアローンプログラムとして、より大きなプログラムの一部として、複数の別々のプログラムとして、静的若しくは動的にリンクされたライブラリとして、カーネルロード可能なモジュールとして、デバイスドライバとして、及び/又はコンピュータプログラミングの当業者に現在若しくは将来的に知られるすべての及び他の何れかの方法により実現可能である。さらに、本発明の実施例は、何れか特定のプログラミング言語による、又は何れか特定のオペレーティングシステム又は環境の実現形態に限定されるものでない。従って、本発明の実施例の開示は、以下の請求項に与えられる本発明の実施例の範囲について限定的でなく例示的なものであると意図される。
本出願は、参照することによりその内容のすべてがここに含まれる、米国特許商標庁により2011年2月3日に出願された米国優先権出願第13/020643に基づく。

Claims (20)

  1. アプリケーション、モジュール及びドキュメントの少なくとも1つを送信する方法であって、
    前記ドキュメントを変更するステップと、
    前記ドキュメントをワークフローサーバに送信するステップと、
    ローリングハッシュ、ローリングハッシュオフセット、グローバルに一意的な識別情報及びシークレット情報を合成するドキュメントシグネチャを生成するステップと、
    を有する方法。
  2. 前記アプリケーション、前記モジュール及び前記ドキュメントの少なくとも1つに関連するメタデータとして、前記ドキュメントシグネチャ、前記グローバルに一意的な識別情報及び前記シークレット情報を格納するステップをさらに有する、請求項1記載の方法。
  3. 前記ドキュメントを受信するステップと、
    メタデータと前記シークレット情報とを抽出するステップと、
    前記ハッシュを計算するステップと、
    前記シグネチャと前記メタデータ、前記シークレット情報及び前記ハッシュとを比較するステップと、
    をさらに有する、請求項1記載の方法。
  4. 前記シグネチャと前記メタデータ、前記シークレット情報及び前記ハッシュとを比較することによって、問題を検出するステップと、
    エラーメッセージを送信するステップと、
    をさらに有する、請求項3記載の方法。
  5. 前記アプリケーション、前記モジュール及び前記ドキュメントの少なくとも1つの宛先と前記メタデータに指定された宛先とを比較するステップをさらに有する、請求項4記載の方法。
  6. 前記宛先を比較することによって問題を検出するステップと、
    エラーメッセージを送信するステップと、
    をさらに有する、請求項5記載の方法。
  7. 前記エラーメッセージは、プロセスオーガナイザ、顧客、タスクパフォーマ及びモジュールデベロッパの少なくとも1つに送信される、請求項6記載の方法。
  8. 前記アプリケーション、前記モジュール及び前記ドキュメントの少なくとも1つをルーティングするステップをさらに有する、請求項5記載の方法。
  9. ユーザを登録する方法であって、
    ユーザについて登録を開始するステップと、
    ユーザ識別情報を生成するステップと、
    前記ユーザが顧客又はエンティティであるか判断するステップと、
    前記ユーザが顧客であることに応答して、一意的な装置識別情報を生成するステップと、
    を有する方法。
  10. アプリケーションを購入するステップをさらに有する、請求項9記載の方法。
  11. 前記アプリケーションを受信するステップと、
    前記アプリケーションからドキュメントを生成するステップと、
    をさらに有する、請求項10記載の方法。
  12. データを前記ドキュメントに入力するステップと、
    前記ドキュメントを処理のためワークフローサーバに送信するステップと、
    をさらに有する、請求項10記載の方法。
  13. アプリケーション、モジュール及びドキュメントの少なくとも1つを送信する方法であって、
    ユーザについて登録を開始するステップと、
    ユーザ識別情報を生成するステップと、
    前記ユーザが顧客又はエンティティであるか判断するステップと、
    前記ユーザがエンティティであることに応答して、アプリケーション及びモジュールの少なくとも1つに対応する第1アプリケーションバージョンのグローバルに一意的な識別子を生成するステップと、
    シークレット情報を生成するステップと、
    アプリケーション及びモジュールの少なくとも1つをオンラインマーケットプレースモジュールにアップロードするステップと、
    を有する方法。
  14. モジュールを購入するステップと、
    更新されたアプリケーションを生成するため、前記モジュールを前記アプリケーションに含めるステップと、
    第2アプリケーションバージョンのグローバルに一意的な識別子を生成するステップと、
    をさらに有する、請求項13記載の方法。
  15. 支払構成を更新するステップと、
    前記更新されたアプリケーションを認証するステップと、
    前記更新されたアプリケーションを表示するステップと、
    をさらに有する、請求項14記載の方法。
  16. 更新されたアプリケーションの購入を受信するステップと、
    前記アプリケーションの作成者と前記モジュールの作成者とにクレジットを配布するステップと、
    をさらに有する、請求項15記載の方法。
  17. タスクを購入するステップと、
    第2のグローバルに一意的な識別子を生成するステップと、
    をさらに有する、請求項13記載の方法。
  18. 支払構成を更新するステップと、
    前記更新されたアプリケーションを認証するステップと、
    前記更新されたアプリケーションを表示するステップと、
    をさらに有する、請求項17記載の方法。
  19. 前記更新されたアプリケーションの購入を受信するステップと、
    前記アプリケーションの作成者と前記タスクの実行者とにクレジットを配布するステップと、
    をさらに有する、請求項18記載の方法。
  20. 前記クレジットは、前記タスクの完了に応答して配布される、請求項19記載の方法。
JP2013535162A 2011-02-03 2012-01-27 アプリケーションを認証するためのシグネチャを生成する方法及びシステム Expired - Fee Related JP5971254B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/020,643 2011-02-03
US13/020,643 US8504480B2 (en) 2011-02-03 2011-02-03 Creation of signatures for authenticating applications
PCT/JP2012/052435 WO2012105666A1 (en) 2011-02-03 2012-01-27 Creation of signatures for authenticating applications

Publications (2)

Publication Number Publication Date
JP2014510318A true JP2014510318A (ja) 2014-04-24
JP5971254B2 JP5971254B2 (ja) 2016-08-17

Family

ID=46601340

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013535162A Expired - Fee Related JP5971254B2 (ja) 2011-02-03 2012-01-27 アプリケーションを認証するためのシグネチャを生成する方法及びシステム

Country Status (8)

Country Link
US (1) US8504480B2 (ja)
EP (1) EP2671187A4 (ja)
JP (1) JP5971254B2 (ja)
KR (1) KR20130114710A (ja)
CN (1) CN103339636B (ja)
AU (1) AU2012211684A1 (ja)
SG (1) SG192233A1 (ja)
WO (1) WO2012105666A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019058696A1 (ja) * 2017-09-20 2019-03-28 富士ゼロックス株式会社 情報処理装置、保護処理装置及び利用端末
KR20210034471A (ko) * 2019-09-20 2021-03-30 삼성전자주식회사 데이터베이스 내 타겟 키를 검색하는 방법, 시스템, 및 비-휘발성 컴퓨터 판독가능한 매체

Families Citing this family (62)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2500356A (en) 2011-01-20 2013-09-18 Box Inc Real time notification of activities that occur in a web-based collaboration environment
EP2729877A4 (en) 2011-07-08 2015-06-17 Box Inc DESKTOP APPLICATION FOR ACCESS AND INTERACTION WITH JOBS IN A CLOUD-BASED CONTENT MANAGEMENT SYSTEM AND SYNCHRONIZATION MECHANISMS THEREFOR
WO2013062599A1 (en) 2011-10-26 2013-05-02 Box, Inc. Enhanced multimedia content preview rendering in a cloud content management system
US9098474B2 (en) 2011-10-26 2015-08-04 Box, Inc. Preview pre-generation based on heuristics and algorithmic prediction/assessment of predicted user behavior for enhancement of user experience
WO2013082320A1 (en) 2011-11-29 2013-06-06 Box, Inc. Mobile platform file and folder selection functionalities for offline access and synchronization
US9904435B2 (en) 2012-01-06 2018-02-27 Box, Inc. System and method for actionable event generation for task delegation and management via a discussion forum in a web-based collaboration environment
US11232481B2 (en) 2012-01-30 2022-01-25 Box, Inc. Extended applications of multimedia content previews in the cloud-based content management system
US9965745B2 (en) 2012-02-24 2018-05-08 Box, Inc. System and method for promoting enterprise adoption of a web-based collaboration environment
US8856090B1 (en) * 2012-03-20 2014-10-07 Amazon Technologies, Inc. Client-based computation of checksums for product information
US9575981B2 (en) 2012-04-11 2017-02-21 Box, Inc. Cloud service enabled to handle a set of files depicted to a user as a single file in a native operating system
US9413587B2 (en) 2012-05-02 2016-08-09 Box, Inc. System and method for a third-party application to access content within a cloud-based platform
GB2505272B (en) 2012-05-04 2014-07-09 Box Inc Repository redundancy implementation of a system which incrementally updates clients with events that occurred via cloud-enabled platform
US20130311386A1 (en) 2012-05-18 2013-11-21 Mehdi Tehranchi System and method for creating and managing encapsulated workflow packages
US9691051B2 (en) 2012-05-21 2017-06-27 Box, Inc. Security enhancement through application access control
US8914900B2 (en) 2012-05-23 2014-12-16 Box, Inc. Methods, architectures and security mechanisms for a third-party application to access content in a cloud-based platform
US9712510B2 (en) 2012-07-06 2017-07-18 Box, Inc. Systems and methods for securely submitting comments among users via external messaging applications in a cloud-based platform
GB2505072A (en) 2012-07-06 2014-02-19 Box Inc Identifying users and collaborators as search results in a cloud-based system
US9794256B2 (en) 2012-07-30 2017-10-17 Box, Inc. System and method for advanced control tools for administrators in a cloud-based service
GB2513671A (en) 2012-08-27 2014-11-05 Box Inc Server side techniques for reducing database workload in implementing selective subfolder synchronization in a cloud-based environment
US9135462B2 (en) 2012-08-29 2015-09-15 Box, Inc. Upload and download streaming encryption to/from a cloud-based platform
US9195519B2 (en) 2012-09-06 2015-11-24 Box, Inc. Disabling the self-referential appearance of a mobile application in an intent via a background registration
US9117087B2 (en) 2012-09-06 2015-08-25 Box, Inc. System and method for creating a secure channel for inter-application communication based on intents
US9292833B2 (en) 2012-09-14 2016-03-22 Box, Inc. Batching notifications of activities that occur in a web-based collaboration environment
US10915492B2 (en) * 2012-09-19 2021-02-09 Box, Inc. Cloud-based platform enabled with media content indexed for text-based searches and/or metadata extraction
US9959420B2 (en) 2012-10-02 2018-05-01 Box, Inc. System and method for enhanced security and management mechanisms for enterprise administrators in a cloud-based environment
US9495364B2 (en) 2012-10-04 2016-11-15 Box, Inc. Enhanced quick search features, low-barrier commenting/interactive features in a collaboration platform
US9665349B2 (en) 2012-10-05 2017-05-30 Box, Inc. System and method for generating embeddable widgets which enable access to a cloud-based collaboration platform
US10235383B2 (en) 2012-12-19 2019-03-19 Box, Inc. Method and apparatus for synchronization of items with read-only permissions in a cloud-based environment
US9396245B2 (en) 2013-01-02 2016-07-19 Box, Inc. Race condition handling in a system which incrementally updates clients with events that occurred in a cloud-based collaboration platform
US9953036B2 (en) 2013-01-09 2018-04-24 Box, Inc. File system monitoring in a system which incrementally updates clients with events that occurred in a cloud-based collaboration platform
EP2755151A3 (en) 2013-01-11 2014-09-24 Box, Inc. Functionalities, features and user interface of a synchronization client to a cloud-based environment
EP2757491A1 (en) 2013-01-17 2014-07-23 Box, Inc. Conflict resolution, retry condition management, and handling of problem files for the synchronization client to a cloud-based platform
CN104982002B (zh) * 2013-01-30 2019-03-05 柯布朗·德杰 视频签名系统及方法
KR101523309B1 (ko) * 2013-01-31 2015-06-02 한국인터넷진흥원 어플리케이션 배포 시스템 및 방법
US10725968B2 (en) 2013-05-10 2020-07-28 Box, Inc. Top down delete or unsynchronization on delete of and depiction of item synchronization with a synchronization client to a cloud-based platform
US10846074B2 (en) 2013-05-10 2020-11-24 Box, Inc. Identification and handling of items to be ignored for synchronization with a cloud-based platform by a synchronization client
GB2515192B (en) 2013-06-13 2016-12-14 Box Inc Systems and methods for synchronization event building and/or collapsing by a synchronization component of a cloud-based platform
US9805050B2 (en) 2013-06-21 2017-10-31 Box, Inc. Maintaining and updating file system shadows on a local device by a synchronization client of a cloud-based platform
US9535924B2 (en) 2013-07-30 2017-01-03 Box, Inc. Scalability improvement in a system which incrementally updates clients with events that occurred in a cloud-based collaboration platform
US9535909B2 (en) 2013-09-13 2017-01-03 Box, Inc. Configurable event-based automation architecture for cloud-based collaboration platforms
US10509527B2 (en) 2013-09-13 2019-12-17 Box, Inc. Systems and methods for configuring event-based automation in cloud-based collaboration platforms
US9531718B2 (en) 2013-09-19 2016-12-27 Google Inc. Confirming the identity of integrator applications
KR101498820B1 (ko) * 2013-11-06 2015-03-05 순천향대학교 산학협력단 안드로이드 환경에서의 어플리케이션 리패키징 탐지 방법
US10530854B2 (en) 2014-05-30 2020-01-07 Box, Inc. Synchronization of permissioned content in cloud-based environments
US9894119B2 (en) 2014-08-29 2018-02-13 Box, Inc. Configurable metadata-based automation and content classification architecture for cloud-based collaboration platforms
US10038731B2 (en) 2014-08-29 2018-07-31 Box, Inc. Managing flow-based interactions with cloud-based shared content
AU2017218452B2 (en) * 2016-02-08 2019-06-20 Lindsay MOLONEY A system and method for document information authenticity verification
US10419225B2 (en) * 2017-01-30 2019-09-17 Factom, Inc. Validating documents via blockchain
US10411897B2 (en) 2017-02-17 2019-09-10 Factom, Inc. Secret sharing via blockchains
US10817873B2 (en) 2017-03-22 2020-10-27 Factom, Inc. Auditing of electronic documents
US10476049B2 (en) 2017-07-17 2019-11-12 Robert Bosch Battery Systems Llc Mechanically fastened through-wall current collector
US11146402B2 (en) * 2017-11-17 2021-10-12 Monkton, Inc. Non-repudiation method and system
GB2569662B (en) * 2017-12-21 2022-08-03 Cirrus Logic Int Semiconductor Ltd Secure audio output
CN108345693B (zh) * 2018-03-16 2022-01-28 中国银行股份有限公司 一种文件处理方法及装置
US11134120B2 (en) 2018-05-18 2021-09-28 Inveniam Capital Partners, Inc. Load balancing in blockchain environments
US11170366B2 (en) 2018-05-18 2021-11-09 Inveniam Capital Partners, Inc. Private blockchain services
US11295296B2 (en) 2018-08-06 2022-04-05 Inveniam Capital Partners, Inc. Digital contracts in blockchain environments
US11328290B2 (en) 2018-08-06 2022-05-10 Inveniam Capital Partners, Inc. Stable cryptocurrency coinage
FR3093576B1 (fr) * 2019-03-07 2021-12-10 Informatique 65800 Calcul de signature et vérification d’intégrité de données numériques
CN109993510B (zh) * 2019-03-11 2020-12-11 杭州复杂美科技有限公司 助记词生成方法、私钥生成方法、钱包导入方法
CN109977022B (zh) * 2019-04-03 2023-01-10 网易(杭州)网络有限公司 游戏资源的检查方法、装置、系统及存储介质
US11444749B2 (en) 2020-01-17 2022-09-13 Inveniam Capital Partners, Inc. Separating hashing from proof-of-work in blockchain environments

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999035785A2 (en) * 1997-12-31 1999-07-15 Koninklijke Philips Electronics N.V. Transmitting revisions with digital signatures
JP2004180278A (ja) * 2002-11-15 2004-06-24 Canon Inc 情報処理装置、サーバ装置、電子データ管理システム、情報処理システム、情報処理方法、コンピュータプログラム及びコンピュータ読み取り可能な記憶媒体
JP2004272531A (ja) * 2003-03-07 2004-09-30 Nippon Telegr & Teleph Corp <Ntt> 台帳データベース構築システム及び構築方法並びに構築プログラム及び記録媒体
JP2006269591A (ja) * 2005-03-23 2006-10-05 Hitachi Kokusai Electric Inc 基板処理装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5892900A (en) * 1996-08-30 1999-04-06 Intertrust Technologies Corp. Systems and methods for secure transaction management and electronic rights protection
US7587368B2 (en) * 2000-07-06 2009-09-08 David Paul Felsher Information record infrastructure, system and method
US20040068757A1 (en) * 2002-10-08 2004-04-08 Heredia Edwin Arturo Digital signatures for digital television applications
US20080243688A1 (en) 2007-03-28 2008-10-02 Hart Peter E Method and Apparatus for Recording Transactions with a Portable Logging Device
US9363258B2 (en) * 2007-12-17 2016-06-07 International Business Machines Corporation Secure digital signature system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999035785A2 (en) * 1997-12-31 1999-07-15 Koninklijke Philips Electronics N.V. Transmitting revisions with digital signatures
JP2001515612A (ja) * 1997-12-31 2001-09-18 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ デジタル署名を有する改訂の送信
JP2004180278A (ja) * 2002-11-15 2004-06-24 Canon Inc 情報処理装置、サーバ装置、電子データ管理システム、情報処理システム、情報処理方法、コンピュータプログラム及びコンピュータ読み取り可能な記憶媒体
JP2004272531A (ja) * 2003-03-07 2004-09-30 Nippon Telegr & Teleph Corp <Ntt> 台帳データベース構築システム及び構築方法並びに構築プログラム及び記録媒体
JP2006269591A (ja) * 2005-03-23 2006-10-05 Hitachi Kokusai Electric Inc 基板処理装置

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019058696A1 (ja) * 2017-09-20 2019-03-28 富士ゼロックス株式会社 情報処理装置、保護処理装置及び利用端末
JP2019057040A (ja) * 2017-09-20 2019-04-11 富士ゼロックス株式会社 情報処理装置、保護処理装置及び利用端末
US11178292B2 (en) 2017-09-20 2021-11-16 Fujifilm Business Innovation Corp. Information processing apparatus, protection processing apparatus and terminal device for limiting access to a document
KR20210034471A (ko) * 2019-09-20 2021-03-30 삼성전자주식회사 데이터베이스 내 타겟 키를 검색하는 방법, 시스템, 및 비-휘발성 컴퓨터 판독가능한 매체
KR102645141B1 (ko) 2019-09-20 2024-03-12 삼성전자주식회사 데이터베이스 내 타겟 키를 검색하는 방법, 시스템, 및 비-휘발성 컴퓨터 판독가능한 매체

Also Published As

Publication number Publication date
WO2012105666A1 (en) 2012-08-09
EP2671187A1 (en) 2013-12-11
KR20130114710A (ko) 2013-10-17
AU2012211684A1 (en) 2013-08-22
EP2671187A4 (en) 2016-01-27
US20120203670A1 (en) 2012-08-09
CN103339636B (zh) 2016-02-17
CN103339636A (zh) 2013-10-02
US8504480B2 (en) 2013-08-06
SG192233A1 (en) 2013-09-30
JP5971254B2 (ja) 2016-08-17

Similar Documents

Publication Publication Date Title
JP5971254B2 (ja) アプリケーションを認証するためのシグネチャを生成する方法及びシステム
US11403684B2 (en) System, manufacture, and method for performing transactions similar to previous transactions
US11956243B2 (en) Unified identity verification
EP3405862B1 (en) Network node authentication
US8392289B1 (en) Cancelling a purchasing request
US20170148021A1 (en) Homogenization of online flows and backend processes
US9965760B2 (en) Systems and methods for facilitating electronic transactions utilizing a mobile computing device
US11222314B2 (en) Systems and methods for securing electronic transactions
US20180191685A1 (en) Recurring transfer notifications and secure transfers
US20130246280A1 (en) Secure digital invoice processing
US20210117970A1 (en) Corroborating data to verify transactions
US10956907B2 (en) Authorization of transactions based on automated validation of customer speech
RU2604433C2 (ru) Метод и система процессинга электронного документооборота без использования карт
WO2016076934A2 (en) Verification system for secure transmission in a distributed processing network
US11599627B2 (en) System employing smart device for secure and authenticated event execution
US20230177596A1 (en) Embedded payment tokens in digital media objects
US20140365378A1 (en) Web-based automated bill negotiation system
US9026474B2 (en) Generating printable certificates to verify log authenticity
US20210279699A1 (en) Instant digital issuance
US20200379661A1 (en) Modular data processing and storage system
US20120136788A1 (en) System and method for secure transfer of funds
US20210166235A1 (en) System and method for transferring and rolling-over funds between accounts
CN115147101A (zh) 安全支付方法、装置、电子设备、介质和程序产品
JP2024507067A (ja) 組み込みカード・リーダ・セキュリティ
KR101359396B1 (ko) 상품 판매 방법, 상품 판매 서버, 상품 구매 방법, 단말기, 기록매체 및 시스템

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150127

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160308

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160509

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160627

R151 Written notification of patent or utility model registration

Ref document number: 5971254

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees