本明細書全体にわたって「一実施形態」、「或る実施形態」について述べていること、または類似した言葉は、その実施形態に関連して説明される特定のフィーチャ、構造、または特性が、少なくとも1つの実施形態に含まれることを意味する。それ故、本明細書全体にわたる「一実施形態において」、「或る実施形態において」という句、または類似した言葉の出現は、すべて同一の実施形態を参照することが可能であるが、必ずしもそうでなくてもよく、特に明記しない限り、「1つまたは複数の、ただし、すべでではない実施形態」を意味する。「含む」、「備える」、「有する」という用語、およびその変形は、特に明記しない限り、「含むが、限定されない」を意味する。アイテムの列挙されるリストは、特に明記しない限り、それらのアイテムのいずれか、またはすべてが相互排他的であること、および/または相互包含的であることを意味しない。「或る」および「その」という用語は、特に明記しない限り、「1つまたは複数の」を指すこともする。
さらに、実施形態の説明されるフィーチャ、利点、および特徴は、任意の適切な様態で組み合わされてよい。実施形態は、特定の実施形態の特定のフィーチャまたは利点のうちの1つまたは複数を伴わずに実施されてよいことが、当業者には認識されよう。他の実例において、すべての実施形態に存在しなくてよい、さらなるフィーチャおよび利点が、いくつかの実施形態において認識されることが可能である。
実施形態のこれらのフィーチャおよび利点は、後段の説明、および添付の特許請求の範囲からより完全に明らかとなり、あるいは後段に提示される実施形態の実践によって学ばれてよい。当業者によって理解されるとおり、本発明の態様は、システム、方法、および/またはコンピュータプログラム製品として具現化されることが可能である。したがって、本発明の態様は、完全にハードウェア実施形態の形態をとっても、完全にソフトウェア実施形態(ファームウェア、常駐ソフトウェア、マイクロコード、その他を含む)をとっても、あるいは、すべて一般的に「回路」、「モジュール」、もしくは「システム」と本明細書において呼ばれてもよいソフトウェア態様とハードウェア態様を組み合わせる実施形態の形態をとってもよい。さらに、本発明の態様は、プログラムコードが具現化されている1つまたは複数のコンピュータ可読媒体として具現化されたコンピュータプログラム製品の形態をとってよい。
本明細書において説明される機能ユニットの多くは、それらのユニットの実装上の独立性をさらに特に強調するために、モジュールとラベル付けされている。例えば、モジュールは、カスタムVLSI回路もしくはゲートアレイ、ロジックチップ、トランジスタなどの既成の半導体、または他のディスクリートの構成要素を備えるハードウェア回路として実装されてよい。また、モジュールは、フィールドプログラマブルゲートアレイ、プログラマブルアレイロジック、プログラマブルロジックデバイス、またはそれに類するものなどのプログラマブルハードウェアデバイスとして実装されてもよい。
また、モジュールは、様々なタイプのプロセッサによって実行されるようにソフトウェアとして実装されてもよい。プログラムコードの識別されるモジュールは、例えば、オブジェクト、手続き、または関数として組織化されてよい、コンピュータ命令の1つまたは複数の物理ブロックもしくは論理ブロックを、例えば、備えてよい。それでも、識別されるモジュールの複数の実行ファイルは、物理的に一緒に配置される必要はないが、論理的に一緒に合わせられたとき、そのモジュールを構成し、そのモジュールの表明された目的を実現する、様々なロケーションに記憶された別々の命令を備えてよい。
実際、プログラムコードのモジュールは、単一の命令であってもよく、または多くの命令であってもよく、異なるコードセグメントにわたって、異なるプログラムの間で、いくつかのメモリデバイスにまたがって分散されることさえ可能である。同様に、動作データが、モジュール内に本明細書において識別され、例示されることが可能であり、任意の適切な形態で具現化されること、および/または任意の適切なタイプのデータ構造内で組織化されることが可能である。動作データは、単一のデータセットとして集められてもよく、または異なるストレージデバイスを含む異なるロケーションにわたって分散されてもよく、少なくとも部分的に、システムまたはネットワーク上の単なる電子信号として存在してもよい。モジュール、またはモジュールの複数の部分がソフトウェアとして実装される場合、プログラムコードは、1つまたは複数のコンピュータ可読媒体に記憶されること、および/またはそのような媒体上で伝播させられることが可能である。
コンピュータプログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を有する1つの(または複数の)コンピュータ可読記憶媒体を含んでもよい。
コンピュータ可読記憶媒体は、命令実行デバイスによって使用されるように命令を保持し、記憶することができる有形のデバイスであることが可能である。コンピュータ可読記憶媒体は、例えば、電子ストレージデバイス、磁気ストレージデバイス、光ストレージデバイス、電磁ストレージデバイス、半導体ストレージデバイス、または以上の任意の適切な組合せであってもよいが、これらには限定されない。コンピュータ可読記憶媒体のより具体的な例の網羅的でないリストは、以下、すなわち、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(「RAM」)、読取り専用メモリ(「ROM」)、消去可能なプログラマブル読取り専用メモリ(「EPROM」もしくはフラッシュメモリ)、スタティックランダムアクセスメモリ(「SRAM」)、ポータブルコンパクトディスク読取り専用メモリ(「CD-ROM」)、デジタルバーサタイルディスク(「DVD」)、メモリスティック、フロッピディスク、パンチカード、もしくは命令が記録されている溝の中の隆起構造などの機械的に符号化されたデバイス、および以上の任意の適切な組合せを含む。本明細書において使用されるコンピュータ可読記憶媒体は、電波もしくは他の自由に伝播する電磁波、導波路もしくは他の伝達媒体を通じて伝播する電磁波(例えば、光ファイバケーブルを通過する光パルス)、または配線を通じて伝送される電気信号などの一過性の信号そのものであると解釈されるべきではない。
本明細書において説明されるコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスに、またはネットワーク、例えば、インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク、および/または無線ネットワークを介して外部コンピュータもしくは外部ストレージデバイスにダウンロードされることが可能である。ネットワークは、銅伝送ケーブル、伝送光ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ、および/またはエッジサーバを備えてよい。各コンピューティング/処理デバイスにおけるネットワークアダプタまたはネットワークインターフェースが、ネットワークからコンピュータ可読プログラム命令を受信し、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体に記憶されるようにコンピュータ可読プログラム命令を転送する。
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、またはSmalltalk(R)、C++、もしくはそれに類するものなどのオブジェクト指向プログラミング言語、および「C」プログラミング言語もしくはそれに類似したプログラミング言語などの従来の手続き型プログラミング言語を含め、1つまたは複数のプログラミング言語の任意の組合せで書かれたソースコードもしくはオブジェクトコードであってよい。コンピュータ可読プログラム命令は、全体がユーザのコンピュータ上で実行されても、一部がユーザのコンピュータ上で実行されても、スタンドアロンのソフトウェアパッケージとして実行されても、一部がユーザのコンピュータ上で、かつ一部が遠隔コンピュータ上で実行されても、全体が遠隔コンピュータもしくは遠隔サーバの上で実行されてもよい。全体が遠隔コンピュータもしくは遠隔サーバの上で実行されるシナリオにおいて、遠隔コンピュータは、ローカルエリアネットワーク(LAN)もしくはワイドエリアネットワーク(WAN)を含む任意のタイプのネットワークを通じてユーザのコンピュータに接続されてよく、または接続は、外部コンピュータに対して行われてもよい(例えば、インターネットサービスプロバイダを使用してインターネットを通じて)。一部の実施形態において、例えば、プログラマブルロジック回路、フィールドプログラマブルゲートアレイ(FPGA)、またはプログラマブルロジックアレイ(PLA)を含む電子回路が、本発明の態様を実行するために、電子回路をカスタマイズするようにコンピュータ可読プログラム命令の状態情報を利用することによってコンピュータ可読プログラム命令を実行することが可能である。
本実施形態の態様は、本発明の実施形態による方法、装置(システム)、およびコンピュータプログラム製品のフローチャートおよび/またはブロック図を参照して本明細書において説明される。フローチャートおよび/またはブロック図の各ブロック、ならびにフローチャートおよび/またはブロック図におけるブロックの組合せは、コンピュータ可読プログラム命令によって実施されることが可能であることが理解されよう。
これらのコンピュータ可読プログラム命令は、そのコンピュータまたは他のプログラマブルデータ処理装置のプロセッサを介して実行されるそれらの命令が、フローチャートおよび/またはブロック図の1つまたは複数のブロックに指定される機能/動作を実施する手段を作り出すべく、汎用コンピュータ、専用コンピュータ、または他のプログラマブルデータ処理装置のプロセッサに提供されてマシンを作り出すものであってよい。また、これらのコンピュータ可読プログラム命令は、命令が記憶されているコンピュータ可読記憶媒体が、フローチャートおよび/またはブロック図の1つまたは複数のブロックに指定される機能/動作の態様を実施する命令を含む製造品を備えるべく、特定の様態で機能するようにコンピュータ、プログラマブルデータ処理装置、および/または他のデバイスを導くことができるコンピュータ可読記憶媒体に記憶されてもよい。
また、コンピュータ可読プログラム命令は、コンピュータ、他のプログラマブルデータ処理装置、または他のデバイス上で実行される命令が、フローチャートおよび/またはブロック図の1つまたは複数のブロックに指定される機能/動作を実施するように、コンピュータによって実施されるプロセスを作り出すべく、コンピュータ、他のプログラマブル装置、または他のデバイスにロードされ、コンピュータ上、他のプログラマブル装置上、または他のデバイス上で一連の動作ステップを実行させるものであってもよい。
図における概略フローチャート図および/または概略ブロック図は、本発明の様々な実施形態による装置、システム、方法、およびコンピュータプログラム製品の可能な実装形態のアーキテクチャ、機能、および動作を例示する。これに関して、概略フローチャート図および/または概略ブロック図における各ブロックは、指定された論理機能を実施するためのプログラムコードの1つまたは複数の実行可能命令を備える、コードのモジュール、セグメント、または部分を表すことが可能である。
また、一部の代替の実装形態において、ブロックに記載される機能は、図に記載される順序を外れて生じてよいことにも留意されたい。例えば、連続して示される2つのブロックが、実際には、実質的に同時に実行されてよく、またはそれらのブロックが、時として、関与する機能に依存して、逆の順序で実行されてよい。図に示される1つもしくは複数のブロック、またはそれらのいくつかの部分に機能、論理、または効果が均等である他のステップおよび方法が、構想されることが可能である。
様々な矢印の種類、および線の種類が、フローチャートおよび/またはブロック図において使用されることが可能であるものの、それらは、対応する実施形態の範囲を限定することはないものと理解される。実際、一部の矢印または他のコネクタは、示される実施形態の論理的流れだけを示すように使用されることが可能である。例えば、或る矢印は、示される実施形態の列挙されるステップの間の不定の持続時間の待機期間または監視期間を示すことが可能である。また、ブロック図および/またはフローチャート図の各ブロック、ならびにブロック図および/またはフローチャート図におけるブロックの組合せは、指定された機能もしくは動作を実行する専用のハードウェアベースのシステムによって、または専用のハードウェアとプログラムコードとの組合せによって実施されることが可能であることにも留意されたい。
図1Aおよび図1Bは、自動化された企業トランザクションデータアグリゲーションおよび会計のためのシステム100、101の実施形態を示す。一実施形態において、システム100、101が、1つまたは複数のハードウェアデバイス102、1つもしくは複数の企業トランザクションモジュール104(例えば、1つもしくは複数のハードウェアデバイス102上に配置されたバックエンド企業トランザクションモジュール104b、および/または1つもしくは複数のフロントエンド企業トランザクションモジュール104a)、1つもしくは複数のデータネットワーク106または他の通信チャネル、1つもしくは複数のサードパーティサービスプロバイダ108(例えば、1つもしくは複数のサービスプロバイダ108の1つもしくは複数のサーバ108、1つもしくは複数のクラウドサービスプロバイダまたはネットワークサービスプロバイダ、あるいはそれに類するもの)、および/または1つもしくは複数のバックエンドサーバ110を含む。いくつかの実施形態において、図1Aおよび/または図1Bに或る特定の数のハードウェアデバイス102、企業トランザクションモジュール104、データネットワーク106、サードパーティサービスプロバイダ108、および/またはバックエンドサーバ110が示されるものの、本開示に鑑みて、任意の数のハードウェアデバイス102、企業トランザクションモジュール104、データネットワーク106、サードパーティサービスプロバイダ108、および/またはバックエンドサーバ110が、自動化された企業トランザクションデータアグリゲーションおよび会計のためのシステム100、101に含まれてよいことが当業者には認識されよう。
一般に、企業トランザクションモジュール104が、いくつかの実施形態において、エンティティ(例えば、ユーザ、ビジネスエンティティ、またはそれに類するもの)に関する電子金融トランザクションデータを監視すること、および/または処理することを行い、各トランザクションに関する会計カテゴリを決定する。トランザクションおよび/または決定された会計カテゴリに基づいて、様々な実施形態において、企業トランザクションモジュール104が、エンティティのための金融商品に関するオファ(例えば、算出された不足を補填すべきブリッジローン、売掛金の検出された増加に基づく、現在の与信と比べてより好条件の与信、またはそれに類するもの)を選択してよく、税務書類に記入すること、および/または提出することを行ってよく、総勘定元帳を準備してよく、財務諸表を準備してよく、予測される事象(例えば、不足、マイナス残高、またはそれに類するもの)についてユーザに知らせを表示してよく、マイナス残高を防止すべく資金を振り替えてよく、および/または他の1つまたは複数の会計タスクを迅速に、正確に自動化してよい。一部の実施形態において、企業トランザクションモジュール104は、金融機関のためのサーバ110上に配置されてよく、金融機関によって保持されるエンティティ(例えば、ユーザ、ビジネスエンティティ、またはそれに類するもの)の1つまたは複数の口座に関する金融機関のトランザクションデータを監視すること、および/あるいは処理することを行ってよく、かつ/または企業トランザクションモジュール104は、金融機関によって保持されない口座に関する1つまたは複数のサードパーティサービスプロバイダ108からのトランザクションデータを集約して、エンティティが、1つまたは複数の保持される口座、および/あるいは集約される口座に関して金融機関から直接に自動化された会計サービスにアクセスすることを可能にしてよい。
一実施形態において、システム100、101は、1つまたは複数のハードウェアデバイス102を含む。ハードウェアデバイス102(例えば、コンピューティングデバイス、情報取扱いデバイス、またはそれに類するもの)は、デスクトップコンピュータ、ラップトップコンピュータ、モバイルデバイス、タブレットコンピュータ、スマートフォン、セットトップボックス、ゲームコンソール、スマートTV、スマートウオッチ、フィットネスバンド、光学ヘッドマウントディスプレイ(例えば、仮想現実ヘッドセット、スマートグラス、またはそれに類するもの)、HDMI(登録商標)もしくは他の電子ディスプレイドングル、携帯情報端末、ならびに/あるいはプロセッサ(例えば、中央処理装置(CPU)、プロセッサコア、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブルロジック、特定用途向け集積回路(ASIC)、コントローラ、マイクロコントローラ、および/または別の半導体集積回路デバイス)、揮発性メモリ、および/または不揮発性記憶媒体を備える別のコンピューティングデバイスのうちの1つまたは複数を含んでよい。いくつかの実施形態において、ハードウェアデバイス102は、後段で説明されるとおり、データネットワーク106を介して、1つまたは複数のサードパーティサービスプロバイダ108の1つもしくは複数のサーバ108、および/または1つもしくは複数のバックエンドサーバ110と通信状態にある。ハードウェアデバイス102は、さらなる実施形態において、様々なプログラム、プログラムコード、アプリケーション、命令、機能、またはそれに類するものを実行することができる。
一実施形態において、サードパーティサービスプロバイダ108またはそれに類するもの(例えば、異なる金融機関、データアグリゲーションサーバ、またはそれに類するもの)からのエンティティのトランザクションデータを集約するために、企業トランザクションモジュール104が、1つまたは複数のサードパーティサービスプロバイダ108に関するエンティティの電子資格証明(例えば、ユーザ名およびパスワード、指紋スキャン、網膜スキャン、デジタル証明書、個人識別番号(PIN)、チャレンジ応答、セキュリティトークン、ハードウェアトークン、ソフトウェアトークン、DNAシーケンス、署名、顔認識、音声パターン認識、生体電気信号、二要素認証資格証明、またはそれに類するもの)を決定するおよび/または受信するように構成されてよい。企業トランザクションモジュール104は、いくつかの実施形態において、エンティティに関連付けられた、かつ/またはエンティティによって所有されるが、サードパーティサービスプロバイダ108のサーバ108によって記憶された(例えば、エンティティによってではなく、バックエンドサーバ110に関連付けられた金融機関、もしくはそれに類するものによって所有される、維持される、かつ/またはコントロールされるハードウェアによって記憶された)エンティティに関する金融トランザクション記録もしくは他の金融データ、および/またはその他のデータなどの、ユーザに関連付けられたデータをサーバ108からダウンロードすべく、エンティティもしくはその他のユーザの電子資格証明を使用してサードパーティサービスプロバイダ108のサーバ108にアクセスする。企業トランザクションモジュール104は、様々な実施形態において、ダウンロードされたデータをユーザにローカルで提供してよく(例えば、ハードウェアデバイス102の電子ディスプレイ上でそのデータを表示して)、ダウンロードされたデータを、サードパーティサービスプロバイダ108と系列関係になくてもよい遠隔サーバ110(例えば、バックエンド企業トランザクションモジュール104b)または他の遠隔デバイス(例えば、ユーザの別のハードウェアデバイス102、異なるユーザのハードウェアデバイス102、またはそれに類するもの)にユーザのハードウェアデバイス102から提供すること、および/またはそのようなサーバまたは遠隔デバイスのためにパッケージ化することを行ってよく、ダウンロードされたデータに基づいて、ユーザに(例えば、ハードウェアデバイス102上で)1つまたは複数のアラート、メッセージ、オファ、広告、および/または他の通信を提供してよく、あるいは以上に類することを行ってよい。
一実施形態において、企業トランザクションモジュール104の少なくとも一部分(例えば、フロントエンド企業トランザクションモジュール104a、またはそれに類するもの)が、サードパーティサービスプロバイダ108のサーバ108から企業トランザクションモジュール104がダウンロードするデータを使用してよい、企業金融管理アプリケーション(例えば、複数の金融機関からのエンティティの金融トランザクションを表示するため、エンティティの金融予算および/または金融目標を算出するため、および/または表示するため、エンティティの口座残高を算出するため、および/または表示するため、エンティティの利益および損失を算出するため、および/または表示するため、または以上に類することのためのコンピュータ実行可能コード)、会計アプリケーション、またはそれに類するものなどの、ハードウェアデバイス102上で実行される別のアプリケーションと一体化されること、またはそれ以外でその一部であることが可能である。
一実施形態において、企業トランザクションモジュール104aは、分散型システム101を備えてよく、企業トランザクションモジュール104aおよび/または関連付けられたハードウェアデバイス102が、実質的に独立にデータをダウンロードすること、および/または集約することを行う(例えば、グローバルクロックなしに、構成要素の独立した成功および/または失敗でデータを並行して、または並行してではなくダウンロードして)。分散型企業トランザクションモジュール104aは、エンティティおよび/または他のユーザに関するデータの分散型アグリゲーションを協調させるべく、互いに、および/またはバックエンド企業トランザクションモジュール104bにメッセージを渡すことが可能である。一実施形態において、企業トランザクションモジュール104aは、1つまたは複数のアグリゲーション機能を実行するのに集中サーバまたは他のデバイスに排他的に依拠するのではなく、分散化される(例えば、エンティティまたはその他のユーザに関連付けられたハードウェアデバイス102が、データをダウンロードすることなどの1つまたは複数のアグリゲーション機能を実行する)。
分散型および/または分散化されたシステム100、101において、バックエンド企業トランザクションモジュール104bおよび/またはバックエンドサーバ110などの中央エンティティが、いくつかの実施形態において、それでも、ユーザの資格証明またはそれに類するものを使用して1つまたは複数の企業トランザクションモジュール104aに、サードパーティサービスプロバイダ108のサーバ108にアクセスするための命令を備える1つまたは複数のメッセージを提供してよい。例えば、バックエンド企業トランザクションモジュール104bが、1つまたは複数のハードウェアデバイス102の1つまたは複数の企業トランザクションモジュール104aに、企業トランザクションモジュール104aがそれを使用してユーザのデータにアクセスして、ダウンロードしてよい、ユーザの電子資格証明を入力するためのロケーション(例えば、テキストボックス、フィールド、ラベル、座標、またはそれに類するもの)、ユーザの電子資格証明をサブミットするための命令(例えば、押すべきボタン、クリックすべきリンク、またはそれに類するもの)、ユーザに関連付けられたデータの1つまたは複数のロケーション(例えば、テーブルもしくはチャートにおける行、テーブルもしくはチャートにおける列、ユニフォームリソースロケータ(URL)もしくは他のアドレス、座標、ラベル、またはそれに類するもの)、および/またはその他の命令もしくは情報などの、サードパーティサービス108のサーバ108にアクセスするための命令の1つまたは複数のセットを提供してよい。
1つまたは複数の企業トランザクションモジュール104は、いくつかの実施形態において、1つまたは複数のサードパーティサービスプロバイダ108のサーバ108からのダウンロードされたユーザデータおよび/または集約されたユーザデータを他の1つまたは複数のエンティティ(例えば、サードパーティサービスプロバイダ108と系列関係にない遠隔サーバ110もしくは他のハードウェアデバイス102、バックエンド企業トランザクションモジュール104b、またはそれに類するもの)に提供するインターフェース(例えば、アプリケーションプログラミングインターフェース(API))を提供してよい。インターフェースは、一実施形態において、ユーザのハードウェアデバイス102の企業トランザクションモジュール104aと1つまたは複数のバックエンド企業トランザクションモジュール104bとの間のプライベートインターフェースを備える。例えば、このことは、データをダウンロードしたユーザのハードウェアデバイス102がオフにされた、バッテリ切れである、データネットワーク106に接続されていない、またはそれに類するような場合でさえ、バックエンド企業トランザクションモジュール104bが、複数のロケーションで、複数のハードウェアデバイス102上で、複数のチャネルを通じて、またはそれに類することにより、ダウンロードされたユーザデータおよび/または集約されたユーザデータに対するアクセスをユーザに提供できるようにすることが可能である。別の実施形態において、インターフェースは、セキュリティ保護されてよいパブリックインターフェースおよび/またはオープンインターフェースを備え、ユーザが、企業トランザクションモジュール104からユーザのダウンロードされたデータを、そのデータを記憶すること、処理すること、および/またはそれ以外で使用することを行うように他の1つまたは複数のツール、サービス、および/または他のエンティティに共有することを可能にする。
様々な実施形態において、企業トランザクションモジュール104が、ハードウェアとして、ソフトウェアとして、またはハードウェアとソフトウェアの何らかの組合せとして具現化されてよい。一実施形態において、企業トランザクションモジュール104は、ハードウェアデバイス102、バックエンドサーバ110、またはそれに類するもののプロセッサ上で実行されるように非一時的のコンピュータ可読記憶媒体上に記憶された実行可能プログラムコードを備えてよい。例えば、企業トランザクションモジュール104は、ハードウェアデバイス102、バックエンドサーバ110、以上の1つまたは複数の組合せ、またはそれに類するもののうちの1つまたは複数の上で実行される実行可能プログラムコードとして具現化されてよい。そのような実施形態において、企業トランザクションモジュール104の動作を実行する様々なモジュールは、後段で説明されるとおり、ハードウェアデバイス102、バックエンドサーバ110、この2つの組合せ、および/またはそれに類するものの上に配置されてよい。
様々な実施形態において、企業トランザクションモジュール104は、バックエンドサーバ110、ユーザのハードウェアデバイス102(例えば、ドングル、無線で、および/またはUSBもしくは専有の通信ポートなどのデータポートを介して電話機102もしくはタブレット102と通信状態にあるケース内の1つまたは複数の半導体集積回路デバイスを含む電話機102またはタブレット102のための保護ケース、または別の周辺デバイス)、またはデータネットワーク106上の他のどこかにインストールされること、またはその上に展開されること、ならびに/あるいはユーザのハードウェアデバイス102と一緒に配置されることが可能なハードウェア機器として具現化されてよい。いくつかの実施形態において、企業トランザクションモジュール104が、有線接続(例えば、USB接続)によって、または無線接続(例えば、Bluetooth(R)、Wi-Fi(R)、近距離無線通信(NFC)、またはそれに類するもの)によって、ラップトップコンピュータ、サーバ、タブレットコンピュータ、スマートフォン、またはそれに類するものなどの別のハードウェアデバイス102に付加される、電子ディスプレイデバイス(例えば、HDMIポート、DisplayPortポート、Mini DisplayPortポート、VGAポート、DVIポート、またはそれに類するものを使用するテレビまたはモニタ)に付加される、データネットワーク106上で実質的に独立して動作する、またはそれに類することを行う、別のハードウェアデバイス102に付加されるセキュリティ保護されたハードウェアドングルまたは他のハードウェア機器デバイス(例えば、セットトップボックス、ネットワーク機器、またはそれに類するもの)などのハードウェアデバイスを備えてよい。企業トランザクションモジュール104のハードウェア機器が、電源インターフェース、有線ネットワークインターフェースおよび/または無線ネットワークインターフェース、ディスプレイデバイスに出力するグラフィカルインターフェース(例えば、1つもしくは複数のディスプレイポートを有するグラフィックスカードおよび/またはGPU)、および/または企業トランザクションモジュール104に関連して本明細書において説明される機能を実行するように構成された、後段で説明される半導体集積回路デバイスを備えてよい。
企業トランザクションモジュール104が、そのような実施形態において、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブルロジック、FPGAもしくは他のプログラマブルロジックのためのファームウェア、マイクロコントローラ上で実行するためのマイクロコード、特定用途向け集積回路(ASIC)、プロセッサ、プロセッサコア、またはそれに類するものなどの、半導体集積回路デバイス(例えば、1つもしくは複数のチップ、ダイ、または他のディスクリートのロジックハードウェア)、またはそれに類するものを備えてよい。一実施形態において、企業トランザクションモジュール104が、1つまたは複数の電線もしくは電気接続(例えば、揮発性メモリ、不揮発性記憶媒体、ネットワークインターフェース、周辺デバイス、グラフィカル/ディスプレイインターフェースに対する)を有するプリント基板上に実装されてよい。ハードウェア機器は、データを送受信するように構成された1つまたは複数のピン、パッド、または他の電気接続(例えば、プリント基板またはそれに類するものの1つまたは複数の電線と導通状態にある)、ならびに企業トランザクションモジュール104の様々な機能を実行するように構成された1つもしくは複数のハードウェア回路および/または他の電気回路を含んでよい。
企業トランザクションモジュール104の半導体集積回路デバイスまたは他のハードウェア機器は、いくつかの実施形態において、ランダムアクセスメモリ(RAM)、ダイナミックRAM(DRAM)、キャッシュ、またはそれに類するものを含んでよいが、以上には限定されない、1つまたは複数の揮発性メモリ媒体を備え、かつ/またはそのようなメモリ媒体に通信可能に結合される。一実施形態において、企業トランザクションモジュール104の半導体集積回路デバイスまたは他のハードウェア機器は、NANDフラッシュメモリ、NORフラッシュメモリ、ナノランダムアクセスメモリ(ナノRAMもしくはNRAM)、ナノ結晶配線ベースのメモリ、シリコン酸化物ベースの10ナノメートル未満のプロセスメモリ、グラフェンメモリ、シリコン-酸化膜-窒化膜-酸化膜-シリコン(SONOS)、抵抗変化型RAM(RRAM(登録商標))、プログラマブルメタライゼーションセル(PMC)、導電性ブリッジRAM(CBRAM)、磁気抵抗RAM(MRAM)、ダイナミックRAM(DRAM)、相変化RAM(PRAMもしくはPCM)、磁気記憶媒体(例えば、ハードディスク、テープ)、光記憶媒体、またはそれに類するものを含んでよいが、以上には限定されない1つまたは複数の不揮発性メモリ媒体を備え、かつ/またはそのようなメモリ媒体に通信可能に結合される。
データネットワーク106は、一実施形態において、デジタル通信を送信するデジタル通信ネットワークを含む。データネットワーク106は、無線セルラネットワークなどの無線ネットワーク、Wi-Fiネットワークなどのローカル無線ネットワーク、Bluetooth(R)ネットワーク、近距離無線通信(NFC)ネットワーク、アドホックネットワーク、および/またはそれに類するものを含んでよい。データネットワーク106は、ワイドエリアネットワーク(WAN)、ストレージエリアネットワーク(SAN)、ローカルエリアネットワーク(LAN)、光ファイバネットワーク、インターネット、または他のデジタル通信ネットワークを含んでよい。データネットワーク106は、2つ以上のネットワークを含んでよい。データネットワーク106は、1つまたは複数のサーバ、ルータ、スイッチ、および/または他のネットワーキング設備を含んでよい。また、データネットワーク106は、ハードディスクドライブ、光ドライブ、不揮発性メモリ、RAM、またはそれに類するものなどの1つまたは複数のコンピュータ可読記憶媒体を含んでもよい。
1つまたは複数のサードパーティサービスプロバイダ108は、一実施形態において、1つまたは複数のウェブサイトをホストする1つまたは複数のウェブサーバ、企業イントラネットシステム、アプリケーションサーバ、アプリケーションプログラミングインターフェース(API)サーバ、認証サーバ、またはそれに類するものなどの1つまたは複数のネットワークアクセス可能なコンピューティングシステムを含んでよい。1つまたは複数のサードパーティサービスプロバイダ108は、様々な機関または組織と関係するシステムを含んでよい。例えば、サードパーティサービスプロバイダ108は、エンティティまたは他のユーザに関連付けられたデータを記憶する金融機関、政府機関、公益事業会社、電子メールプロバイダ、サイト、データストレージサイト、電子商取引サイト、または別のエンティティに対する電子アクセスを提供するシステムを含んでよい。サードパーティサービスプロバイダ108は、ユーザが、ユーザに関連付けられたデータをアップロードすること、閲覧すること、作成すること、および/または変更することを行うユーザ口座を作成することを可能にしてよい。したがって、サードパーティサービスプロバイダ108は、ユーザが、ユーザのデータにアクセスすべく、ユーザ名/パスワード組合せなどの資格証明を提供することができるウェブサイト、アプリケーション、または類似したフロントエンドのログイン要素もしくはログインページなどの許可システムを含んでよい。
一実施形態において、1つもしくは複数のバックエンドサーバ110および/または1つもしくは複数のバックエンド企業トランザクションモジュール104bは、1つまたは複数のフロントエンド企業トランザクションモジュール104のための中央管理および/または中央ストレージを提供する。例えば、1つもしくは複数のバックエンド企業トランザクションモジュール104b、および/またはバックエンドサーバ110は、企業トランザクションモジュール104aからのダウンロードされたユーザデータを一元的に記憶してよく、データネットワーク106を介して企業トランザクションモジュール104aに命令を提供してよく、またはそれに類することを行ってよい。バックエンドサーバ110が、ハードウェアデバイス102および/または1つもしくは複数のサードパーティサービスプロバイダ108から遠隔に配置された1つまたは複数のサーバを含んでよい。バックエンドサーバ110が、図2および/または図3の企業トランザクションモジュール104に関して後段で説明されるモジュールまたはサブモジュールの少なくとも一部分を含んでよく、企業トランザクションモジュール104のハードウェアを備えてよく、1つまたは複数の非一時的のコンピュータ可読記憶媒体に企業トランザクションモジュール104の実行可能プログラムコードを記憶してよく、かつ/または、本明細書において説明される企業トランザクションモジュール104の様々な動作のうちの1つまたは複数をそれ以外で実行してよい。
企業トランザクションモジュール104が、いくつかの実施形態において、1つまたは複数のエンティティ(例えば、ビジネスエンティティ、金融口座保持者、ユーザ、またはそれに類するもの)に関するトランザクションデータ(例えば、金融トランザクションデータ、企業トランザクションデータおよび/もしくは商業トランザクションデータ、またはそれに類するもの)を集約するように構成される。企業トランザクションデータおよび/もしくは商業トランザクションデータは、ビジネス購入に関するデータ記録、給与記録(例えば、支払額)、収益トランザクション(例えば、エンティティからの顧客購入額、エンティティに対する顧客支払額、またはそれに類するもの)、現金引出し、クレジットカードトランザクション、払戻し要求および/もしくは払戻し支払い、インボイス(例えば、ビジネスエンティティからのインボイス、ビジネスエンティティに対するインボイス、またはそれに類するもの)、売掛金、買掛金、株式付与、株式取得、投資家トランザクション、配当、利子、保険、俸給、手形、減価償却費、および/またはビジネスエンティティもしくは他のユーザに関連付けられた他のデータを含んでよい。
企業トランザクションモジュール104が、ビジネスエンティティに関する集約されたトランザクションデータを清浄化すること、カテゴリに分けること、および/または分類することをしてよい。いくつかの実施形態において、企業トランザクションモジュール104は、ユーザ(例えば、ビジネスエンティティ)に関する企業トランザクションおよび/または商業トランザクションを総勘定元帳(GL)コードまたは他の会計カテゴリにマッピングしてよい。企業トランザクションモジュール104が、ユーザ(例えば、ビジネスエンティティに関連付けられた管理者もしくは他のユーザ、またはそれに類するもの)から1つまたは複数のトランザクションマッピングを受信してよい。例えば、ユーザが、カテゴリおよび/もしくは分類(例えば、トランザクションの性質)からのGLコードもしくは他の会計カテゴリに対する、被支払人および/もしくはサードパーティからのGLコードもしくは他の会計カテゴリに対する、口座および/もしくは口座タイプからのGLコードもしくは他の会計カテゴリに対する、またはそれに類する1つまたは複数のマッピングおよび/またはベクトルを企業トランザクションモジュール104に提供してよい。さらなる実施形態において、企業トランザクションモジュール104は、自動化された様態で(例えば、ユーザによる前の1つまたは複数のマッピングに基づいて、機械学習もしくは他の人工知能を使用して、規則セットに基づいて、またはそれに類するものに基づいて)1つまたは複数のトランザクションマッピングを決定してよい。
一部の実施形態において、企業トランザクションモジュール104が、銀行、信用組合、またはそれに類するものなどの金融機関によって提供され、かつ/またはそのような金融機関に関連付けられ、その金融機関のビジネスエンティティ口座保持者の企業トランザクションおよび/または商業トランザクションを処理するように構成される。その金融機関からの企業トランザクションおよび/または商業トランザクションをエクスポートして、企業リソース計画(ERP)システムに入力する代わりに、またはその金融機関からの企業トランザクションおよび/または商業トランザクション自体を集約するようERPに要求する代わりに、金融機関が、その金融機関のビジネスエンティティユーザ(例えば、口座保持者)に関する企業トランザクションおよび/もしくは商業トランザクションまたは他のビジネスデータを収集すること、記憶すること、管理すること、処理すること、および/または解釈することを行う企業トランザクションモジュール104を提供してよい。
金融機関が、一実施形態において、サードパーティサービスプロバイダ108と比べて、企業トランザクションデータおよび/または商業トランザクションデータを清浄化すること、カテゴリに分けること、および/またはGLコードおよび/もしくは他の会計カテゴリにマッピングすることにおいて有利な立場にあることが可能である(例えば、金融機関は、トランザクションに関連付けられたより多くのデータに対するアクセスを有することが可能であり、サードパーティと比べて、より早期にトランザクションデータを受信することが可能であり、より大きいトランザクション履歴を有することが可能であり、またはそれに類することが可能である)。さらに、金融機関が、一部の実施形態において、企業トランザクションモジュール104の予測に基づいてビジネスエンティティに金融商品(例えば、予想される不足期間中のブリッジローン、予測される不履行より前の修正された制限事項を伴うローン、よりパフォーマンスの良い投資口座、またはそれに類するもの)を提供するさらなる能力を有してよい。
いくつかの実施形態において、企業トランザクションモジュール104が、企業トランザクションデータおよび/もしくは商業トランザクションデータ、清浄化され、かつ/もしくはカテゴリに分けられたトランザクションデータ、GLコードおよび/もしくは他の会計カテゴリにマッピングされた企業トランザクションデータおよび/もしくは商業トランザクションデータ、またはそれに類するものを、それを介して提供してよいインターフェース(例えば、アプリケーションプログラミングインターフェース(API)、別のネットワークインターフェース、グラフィカルユーザインターフェース(GUI)、コマンドラインインターフェース(CLI)、またはそれに類するもの)を1つもしくは複数のサードパーティサービスプロバイダ108、1つもしくは複数のビジネスエンティティもしくは他のユーザ、またはそれに類するものに提供してよい。例えば、企業トランザクションモジュール104が、サードパーティERPもしくは他のサードパーティソフトウェア、サードパーティサービスプロバイダ108、またはそれに類するものと統合されること、および/または、それ以外でサードパーティERPもしくは他のサードパーティソフトウェア、サードパーティサービスプロバイダ108、またはそれに類するものに対するデータアクセスを提供することが可能である(例えば、企業トランザクションモジュール104が、1つまたは複数の企業トランザクションおよび/または商業トランザクションをGLコードおよび/または他の会計カテゴリにマッピングし、マッピングされたトランザクションをGLコードによってERPにロードすること、またはそれに類することを行うことが可能である)。
ビジネスエンティティが、会計のため、見積金額もしくは指値を算出するため、財務諸表のため、またはそれに類することのために企業トランザクションモジュール104から受信されたデータを使用してよい。一部の実施形態において、企業トランザクションモジュール104は、集約されたトランザクションデータ、および集約されたトランザクションデータに関する決定された会計カテゴリに基づいて、ビジネスエンティティのために税務書類、財務諸表、総勘定元帳、またはそれに類するものを動的に生成すること、および/またはそのようなものに動的に記入することが可能である。
本明細書において使用されるトランザクションは、ビジネスエンティティおよび/もしくは別のユーザ、ユーザのハードウェアデバイス102、ユーザの口座、またはそれに類するものに関連付けられた検出され、かつ/または記録された電子的出来事またはそれに類するものを備えてよい。トランザクションは、様々な実施形態において、企業トランザクションモジュール104、サービスプロバイダ108、バックエンドサーバ110、ユーザのハードウェアデバイス102、またはそれに類するもの上で生じること、および/または企業トランザクションモジュール104、サービスプロバイダ108、バックエンドサーバ110、ユーザのハードウェアデバイス102、またはそれに類するものによって検出されること、および/または記録されることが可能である。例えば、様々な実施形態において、トランザクションは、クレジットカード支払いもしくはデビットカード支払い、直接振込み、電子請求書決済、小切手支払い、現金支払い、自動クリアリングハウス(ACH)支払い、オンライン資金振替えおよび/もしくは電子資金振替え(EFT)、電信送金、モバイル支払いおよび/もしくは無線支払い、インボイス、未払費用、口座間の振替え、給与支払い、引出し、収益トランザクション、払戻し金、売掛金、買掛金、俸給支払い、株式付与、株式取得、投資、配当、利子支払い、ローン支払い、保険支払い、減価償却費またはそれに類するもののうちの1つもしくは複数を備えてよい。
繰り返すトランザクションは、複数回、生じる事象を備えてよい。繰り返すトランザクションの複数の異なる発生は、いくつかの実施形態において、少なくとも1つの属性を共通で備えてよく(例えば、かつ/または異なる1つまたは複数の属性を有してよい)。例えば、繰り返すトランザクションの異なる複数の発生は、同一のサービスプロバイダ108、ウェブサイト、および/もしくは他のエンティティに関連してよく、周期的に同一時刻に、もしくはほぼ同一時刻に(例えば、毎日、同一時刻に、もしくはほぼ同一時刻に、毎週、毎月、毎四半期、毎年、もしくは他の期間ごとに同一日に、および/または数日内に、またはそれに類するように)生じてよく、同一の、もしくは類似した(例えば、事前定義されたパーセンテージもしくは金額の範囲内で)トランザクション金額に関連してよく、かつ/または他の1つもしくは複数の類似性を有してよい。企業トランザクションモジュール104は、少なくとも閾値数の類似性を有する1つまたは複数の繰り返すトランザクションを選択するように構成されてよく、要求される1つまたは複数の類似性を有する1つまたは複数の繰り返すトランザクションだけを選択してよく、または類似したことを行ってよい。一実施形態において、企業トランザクションモジュール104は、ユーザ(例えば、ハードウェアデバイス102上のエンドユーザ、バックエンドサーバ110の管理者、またはそれに類するもの)が、繰り返すトランザクションに関する閾値数の類似性を定義する規則、繰り返されるトランザクションに関する1つまたは複数の類似性を要求する規則、繰り返されるトランザクションに関して1つまたは複数の違いを許す規則、またはそれに類するものなどの、企業トランザクションモジュール104が、1つまたは複数の繰り返すトランザクションを識別する1つまたは複数の規則を選択すること、またはそれ以外で定義することを可能にするインターフェース(例えば、グラフィカルユーザインターフェース(GUI)、アプリケーションプログラミングインターフェース(API)、コマンドラインインターフェース(CLI)、および/または別のインターフェース)を提供してよい。
いくつかの実施形態において、繰り返すトランザクションは、複数の時間周期のそれぞれの間の同一時刻に、もしくはほぼ同一時刻に(例えば、毎日、同一時刻に、もしくはほぼ同一時刻に、毎週、毎月、毎四半期、毎年、もしくは他の期間ごとに同一日に、および/または数日内に、またはそれに類するように)生じる繰り返されるトランザクションなどの、事前定義された1つまたは複数の類似性を有し、かつ/または同一のもしくは類似した(例えば、事前定義されたパーセンテージもしくは金額の範囲内の)トランザクション金額、またはそれに類するものに関連する種類の繰り返されるトランザクションである。一実施形態において、企業トランザクションモジュール104は、任意の繰り返すトランザクション(例えば、繰り返し生じる事象/トランザクションと、繰り返し生じない事象/トランザクションを含む)を識別するように構成されてよい。
図2は、企業トランザクションモジュール104の一実施形態を示す。図示される実施形態において、企業トランザクションモジュール104は、メタデータモジュール202と、カテゴリ分けモジュール204と、オファモジュール206と、通信モジュール208と、ディスプレイモジュール210とを含む。
一実施形態において、メタデータモジュール202は、1つまたは複数の金融トランザクションに関するメタデータ記録(例えば、ビジネスエンティティおよび/もしくは他のユーザの1つもしくは複数の金融口座に関する、金融機関によってビジネスエンティティおよび/もしくは他のユーザのために保持される少なくとも1つの金融口座に関する、サードパーティ金融機関108によってビジネスエンティティおよび/もしくは他のユーザのために保持され、かつ集約された少なくとも1つの金融口座に関する、またはそれに類する)を作成するように構成される。メタデータモジュール202は、一実施形態において、メタデータ記録を作成するために、金融機関によって保持される(例えば、金融機関のためのデータベース、不揮発性ストレージデバイス、および/または他のデータストレージに記憶された)金融トランザクションデータを処理してよい。このようにして、一部の実施形態において、金融機関のためのサーバ110上にインストールされたメタデータモジュール202が、金融機関のユーザ/顧客の金融トランザクションデータに関するメタデータ記録を決定すべく金融機関独自の保持されるデータを使用してよい(例えば、ユーザ/顧客のために自動化された総勘定元帳、会計、および/または税務準備サービスを提供するために)。
さらなる実施形態において、メタデータモジュール202は、メタデータ記録を作成するために、サードパーティサービスプロバイダ(例えば、サードパーティ金融機関、サードパーティデータ集約者、またはそれに類するもの)のサーバ108からダウンロードされ、かつ/または集約された金融トランザクションデータを処理してよい。一部の実施形態において、メタデータモジュール202は、金融機関の保持されるデータと、1つまたは複数のサードパーティ金融機関の集約されたデータの両方、またはそれに類するものからビジネスエンティティおよび/または他のユーザの口座に関する金融トランザクションデータを処理してよい。
メタデータモジュール202は、企業トランザクションモジュール104にローカルのコンピューティングデバイス110上、および/またはサーバ110上(例えば、メタデータモジュール202と同一のコンピューティングデバイス110上、異なるコンピューティングデバイス110上ではあるが、同一のローカルデータネットワーク106上、金融機関の電子資格証明を使用して遠隔コンピューティングデバイス110上、および/またはワイドエリアネットワーク106上、またはそれに類する)のデータベース、データファイル、または他のデータ構造から直接に、金融機関によって保持される金融トランザクションデータにアクセスしてよい。メタデータモジュール202は、さらなる実施形態において、サードパーティ金融機関108のためのサーバ108からサードパーティ金融機関108に関する金融トランザクションデータにアクセスしてよい(例えば、サードパーティ金融機関108のAPIデータ接続を使用して、ワイドエリアネットワークデータネットワーク106を介して、またはそれに類することにより)。
一部の実施形態において、メタデータモジュール202は、サードパーティデータ集約者のサーバ108(例えば、1つまたは複数の金融機関から金融トランザクションデータをダウンロードして、ダウンロードされたデータをメタデータモジュール202に提供すること、またはそれに類することを行う、仲介者を備えてよい)から1つまたは複数の金融機関に関する金融トランザクションデータにアクセスしてよい。メタデータモジュール202および/またはサードパーティデータ集約者サーバ108が、一実施形態において、ビジネスエンティティおよび/または他のユーザに代行して金融機関にログインすること、およびビジネスエンティティおよび/または他のユーザに関する金融トランザクションデータをダウンロードすることを行うように、図3に関連して後段で説明されるとおり、直接アクセスモジュール307を備えること、および/または直接アクセスモジュール307と通信状態にあることが可能である。
本明細書において使用されるメタデータ記録は、金融トランザクションデータを記述し、かつ/または金融トランザクションデータのために作成されたさらなるデータを備える。例えば、様々な実施形態において、メタデータモジュール202が、トランザクション金額、トランザクション日付、支払いカテゴリ、エンティティ識別子、金融トランザクションが繰り返し生じるトランザクションおよび/もしくはサブスクリプションであるかどうかの分類、口座識別子、トランザクションタイプ、および/または金融トランザクションに関する他のメタデータを備えるメタデータ記録を生成すべく、ダウンロードされた金融トランザクションデータを構文解析してよい。
一実施形態において、メタデータモジュール202によって決定されるメタデータ記録は、支払い金額、販売金額、購入金額、貸方金額、借方金額、預入金額、引出し金額、RDC金額、給料支払小切手金額、直接振込み金額、ローン金額、インボイス金額、口座売掛金金額、口座買掛金金額、またはそれに類するものなどの金融トランザクションに関するトランザクション金額を含んでよい。メタデータモジュール202によって決定されるメタデータ記録は、一部の実施形態において、支払い日付、インボイス日付、締切り日、またはそれに類するものなどの金融トランザクションに関するトランザクション日付を含んでよい。さらなる実施形態において、メタデータモジュール202によって決定されるメタデータ記録は、金融トランザクションに関する支出カテゴリ(例えば、家/世帯、抵当、自動車/交通手段、食料雑貨類、オフィス用品、ビジネスサービス、請求書/公益事業サービス料金、医療、種々雑多、食料、食事/レストラン、保険、贈り物/寄付、教育、エンターテイメント、手数料/料金、財務、衣服、家の修理、健康/フィットネス、収入、投資、子供、パーソナルケア、ペット、買い物、税金、移転、旅行、および/または支出の他のカテゴリもしくは下位カテゴリなどのトランザクションのタイプ)を含んでよい。メタデータモジュール202によって決定されるメタデータ記録は、一実施形態において、メタデータ記録に関連付けられた金融トランザクションの被支払人、支払人、顧客、ベンダ、サービスプロバイダ、被雇用者、投資家、株主、ユーザ、および/または別の関係者に関する名前および/もしくは他の識別子などのエンティティ識別子を含んでよい。
いくつかの実施形態において、メタデータモジュール202によって決定されるメタデータ記録は、金融トランザクションが繰り返し生じるトランザクションおよび/もしくはサブスクリプションであるかどうかの分類(例えば、フラグ、ビットマップ、文字列、および/または別の標識を使用する)を含んでよい。例えば、繰り返し生じるトランザクションは、トランザクション金額が時とともに異なる場合でさえ、時間周期ごと(例えば、毎年、毎四半期、毎月、隔週、毎週、毎日、またはそれに類するように)に同一時刻に、もしくはほぼ同一時刻に支払われる、同一のベンダ、同一の業者、同一の金融機関、および/または同一のサービスプロバイダを相手にした繰り返される金融トランザクション(例えば、サブスクリプション、クレジットカード支払い、ローン支払い、商品の繰り返し生じる発送、保険、またはそれに類するもの)を含んでよく、サブスクリプションが、実質的に同一のトランザクション金額(例えば、事前定義された範囲内、もしくはほぼ事前定義された範囲、またはそれに類する)を伴う繰り返し生じるトランザクション(例えば、オンラインサービスサブスクリプション、ソフトウェアサブスクリプション、印刷刊行物サブスクリプション、会員、またはそれに類するもの)であってよい。
メタデータモジュール202によって決定されるメタデータ記録は、一部の実施形態において、金融トランザクションに関連付けられた口座(例えば、支払い/振替えが行われた口座、支払い/振替えを受けた口座、またはそれに類するもの)に関する口座番号、口座名、クレジットカード番号、クレジットカード名、またはそれに類するものなどの、関連付けられた金融トランザクションに関する口座識別子を含んでよい。一実施形態において、メタデータモジュール202によって決定されるメタデータ記録は、関連付けられた金融トランザクションに関するトランザクションタイプ(例えば、金融トランザクションが、クレジットカードトランザクションであったか、デビットカードトランザクションであったか、現金トランザクションであったか、電信送金トランザクションであったか、ACHトランザクションであったか、EFTトランザクションであったか、インボイスであったか、未払費用トランザクションであったか、口座振替えトランザクションであったか、モバイル支払いトランザクションであったか、またはそれに類するものであったか)を含んでよい。いくつかの実施形態において、メタデータモジュール202によって決定されるメタデータ記録は、金融トランザクションに関する地理的ロケーション(例えば、所在地、経度および緯度などの地理的座標、業者番号および/もしくは店番号、および/または別の地理的ロケーション)を備えてよい。他の実施形態において、メタデータモジュール202が、金融トランザクションデータに関する他のメタデータ記録を決定してよい。
メタデータモジュール202が、一実施形態において、金融トランザクションデータに関するメタデータ記録を決定すべくコンピュータ可読文字の文字列を備える金融トランザクションデータを処理してよい。コンピュータ可読文字の文字列は、少なくとも部分的に無意味であってよく、かつ/または人間のユーザが理解する、もしくは解読するのが困難であってよい(例えば、数字コード、ASCIIコード、および/または他のコンピュータ可読文字を少なくとも部分的に備えて)。
一部の実施形態において、メタデータモジュール202が、金融トランザクションを清浄化して(例えば、コンピュータ可読文字列を人間可読文字列に変換して)よく、金融トランザクションのカテゴリを決定してよく、かつ/または金融トランザクションの分類を決定してよい。例えば、メタデータモジュール202は、特定の業者、またはトランザクションの他の関係者のクラスタ化された記述を備えることが可能な、異質である、無意味である、またはそれに類するものであるとメタデータモジュール202によって識別された1つもしくは複数の英数字および/または他の記号もしくは文字を文字列から除去することによって、金融トランザクションを記述する文字列(例えば、電子記録)を清浄化してよい。メタデータモジュール202は、一実施形態において、トランザクション記述から異質の文字を除去しながら、特定の業者、および/またはトランザクションの他の関係者を識別すべく(例えば、前の使用、トランザクション履歴、またはそれに類するものに基づいて)それらの異質の文字を使用してよい。
例えば、トランザクションを記述する文字列が、「56902 ABCXYZ PAYMENT 56902 8756250331」またはそれに類するものとして表されてよい。メタデータモジュール202が、ビジネスエンティティまたは他のユーザが、トランザクション記述から業者または他の関係者をよりうまく識別して、その業者または他の関係者が直ちに認識可能であるようにするようにするのを助けるべく、異質の情報を除去してよい。前述の例において、メタデータモジュール202は、その記述を清浄化して、ユーザが、例えば、ユーザの住宅ローン融資会社またはそれに類するものとして直ちに識別することが可能である「ABCXYZ Company」にしてよい。メタデータモジュール202は、繰り返し生じる、または繰り返す記述が書き込まれると、メタデータモジュール202が、業者またはその他の関係者の記述を認識し、それに相応してその業者または関係者を一貫して識別するように、ビジネスエンティティまたは他のユーザの履歴に基づいて記述を適合させてよく、自動的にカスタマイズしてよい。一部の実施形態において、メタデータモジュール202は、トランザクションおよび/または任意の関連するトランザクションデータをビジネスエンティティまたは他のユーザに提示する前に、金融トランザクションを清浄化すること、カテゴリに分けること、および/または分類することをしてよい。
さらなる実施形態において、メタデータモジュール202は、パターンに基づいて索引付け可能な文字列をマッチングしてよく、マッチングを調べるのに要する時間が、他のアルゴリズムと比べて大幅に短くなることを可能にしてよい。一部の実施形態において、メタデータモジュール202は、1つまたは複数のブルームフィルタ、またはそれに類するものを使用することによって、文字列マッチング速度を増加させてよく、不揮発性ストレージに対するアクセスを制限してよい。メタデータモジュール202は、索引を参照するよりもまず先に、データセットにおけるマッチングの存在を決定すべく1つまたは複数のブルームフィルタを使用してよい。これらの技法を通じて、メタデータモジュール202は、大きいデータセットにおける一意のパターンに関するシークタイムをO(1)からO(log(n))までの範囲に短縮してよい。
一部の実施形態において、ブルームフィルタは、マッチングされる文字列が、探索されるべきデータベースに存在するかどうかをメタデータモジュール202に示してよい。マッチングされるべき文字列が存在しない場合、データベースにアクセスすることが省かれることが可能であり、時間が節約される。ブルームフィルタが揮発性メモリ(例えば、DRAM、SRAM、またはそれに類するもの)に保持される場合、さらなる速度節約が得られることが可能である。
ブルームフィルタは、メタデータモジュール202が、要素(例えば、金融トランザクションを記述する文字列)がセット(例えば、前のマッチングのセット、知られている業者/ベンダのセット、またはそれに類するもの)のメンバであるかどうかを試験するのに使用してよい、空間効率の高い確率論的データ構造である。一部の実施形態において、ブルームフィルタを用いて偽陽性取出し結果が、可能であることがあるが、偽陰性は、そうではないことが可能である(例えば、クエリが、「セット内にある可能性がある」または「セットに入っていないことが確かである」を戻してよい)。
空のブルームフィルタは、0に設定されたm個のビットのビットアレイであってよい。それぞれが、何らかのセット要素を、一様のランダムな分布を有するm個のアレイ位置のうちの1つにマッピングする、またはハッシュする、異なるk個のハッシュ関数が定義されていてよい。要素を追加するのに、メタデータモジュール202が、k個のアレイ位置を得るようにk個のハッシュ関数のそれぞれにその要素をフィードしてよく、それらの位置におけるビットを1に設定すること、またはそれに類することを行ってよい。
要素に関してクエリを行う(例えば、その要素がセットに入っているかどうかを試験する)のに、メタデータモジュール202は、k個のアレイ位置を得るようにk個のハッシュ関数のそれぞれにその要素をフィードしてよい。これらの位置におけるビットのいずれかが0である場合、その要素は、セットに入っていない。その要素がセットに入っていたとした場合、それらのビットは、その要素が挿入されたとき、1に設定されていることになる。ビットが1である場合、その要素が、セットに入っている、またはそれらのビットが、他の要素の挿入の間、偶然、1に設定されており(例えば、ハッシング衝突が生じている)、偽陽性をもたらしている。ブルームフィルタの一部の実施形態において、陽性結果と偽陽性とを区別する方法が存在しなくてもよい。他の実施形態において、より高度なブルームフィルタが、偽陽性を管理する、かつ/または回避する衝突取扱い技法を使用してよい。
一部の実施形態において、異なる独立したk個のハッシュ関数を設計することの要件は、大きいkの場合、法外に高い可能性がある。幅広い出力を有する良好なハッシュ関数に関して、いくつかの実施形態において、ハッシュなどの異なるビットフィールドの間に、存在したとしてもわずかしか相互関係が存在しない可能性があり、したがって、このタイプのハッシュが、そのハッシュの出力をスライスして複数のビットフィールドにすることによって、「異なる」複数のハッシュ関数を生成するのに使用されてよい。他の実施形態において、異なるkの初期値(0,1,...k-1などの)を、初期値を取り入れるハッシュ関数に渡してよく、これらの値を鍵に追加して(もしくは付加して)よく、またはそれに類することを行ってよい。より大きいm、および/またはより大きいkに関して、いくつかの実施形態において、ハッシュ関数の間の独立性が、偽陽性率の無視できるほど小さな増加を伴って緩和されてよい。
一実施形態において、単純なブルームフィルタから要素を除去することは、偽陰性が許されてはならないため、サポートされることが可能でない。例えば、或る要素が、k個のビットにマッピングされることが可能であり、それらのk個のビットのうちの任意の1つのビットを0に設定することが、その要素を除去するのに十分であることが可能であるものの、そうすることは、そのビット上に偶々、マッピングされている他の要素を除去することももたらす可能性がある。或る要素が除去されるのにそれらのビットに影響する別の要素が追加されているかどうかを決定する方法は存在しない可能性があるので、或るビットをクリアすることは、偽陰性の可能性を生じさせる可能性がある。
いくつかの実施形態において、メタデータモジュール202は、除去されているアイテムを含む第2のブルームフィルタを維持することによって、ブルームフィルタからの要素の1回の除去をシミュレートしてよい。しかし、第2のフィルタにおける偽陽性は、合成フィルタにおいて偽陰性となる可能性があり、このことは、望ましくない可能性がある。このアプローチにおいて、前に除去されたアイテムを再び追加することは、「除去された」フィルタからそのアイテムを除去しなければならない可能性があるので、可能でないことがある。一部の実施形態において、偽陽性率が高くなりすぎたとき、メタデータモジュール202は、そのフィルタを再生成してよい。
ブルームフィルタは、一部の実施形態において、セットを表す他のいくつかのデータ構造に優る空間的利点を有することが可能である。リンクされた構造は、ポインタに関するさらなる線形空間オーバーヘッドを被る可能性がある。一実施形態において、対照的に、約1%の誤り率と、kの最適の値とを有するブルームフィルタが、要素のサイズにかかわらず、1要素当たり約9.6ビットを使用することが可能である。さらなる実施形態において、1要素当たり約4.8ビットを追加することが、誤り率を約1/10に減らすことが可能である。
また、ブルームフィルタは、一部の実施形態において、セットに既に入っているアイテムの数とは完全に独立に、アイテムを追加するのに必要とされる時間、または或るアイテムがセットに入っているかどうかを確認するのに必要とされる時間が、一定の定数、O(k)であることが可能であるという、特異な特性を有することも可能である。ハードウェア実施形態において、ブルームフィルタのk個のルックアップは、独立であることが可能であり、並列化されてよい。
特定のデータアイテムにアクセスする速度は、一実施形態において、検索可能な索引またはデータベース索引の使用によって高められてよい。本明細書において使用されるデータベース索引は、データベーステーブル上のデータ取出し動作の速度を向上させるデータ構造である。データベース索引は、書込みがより遅くなる、記憶スペースがより小さくなる、またはそれに類する犠牲を払って、データ取出し速度を高めることが可能である。データベース索引は、データベーステーブルの1つまたは複数の列を使用して作成されてよく、順序付けられた記録の迅速なランダムルックアップと効率的なアクセスの両方の基礎を提供する。データベース索引は、一部の実施形態において、データベース内のどこで当該の文字列を探すべきかをコンピュータに告げて、ディスクアクセスを減らし、それ故、検索時間を短縮する。
データストアがN個のデータオブジェクトを包含するものと想定して、それらのオブジェクトのうちの1つを、そのオブジェクトのフィールドのうちの1つの値に基づいて取り出すことが所望される。素朴な実装は、マッチングが見つかるまで各オブジェクトを取り出し、調べる。ルックアップの成功は、平均でそれらのオブジェクトの半分を取り出し、ルックアップの失敗は、試行のたびにそれらのオブジェクトのすべてを取り出す。このことは、最悪事例における動作の数がO(N)または線形時間であることを意味する。データストアは、普通、数百万のオブジェクトを包含し、ルックアップは、一般的な動作であるので、一部の実施形態において、このパフォーマンスを向上させることが望ましい可能性がある。
本明細書において使用される索引は、データ記録ルックアップおよび/またはデータ記録取出しのパフォーマンスを向上させる任意のデータ構造を含む。この目的で使用されることが可能な、異なる多くのデータ構造が存在する。ルックアップパフォーマンス、索引サイズ、および索引更新パフォーマンスを含む設計上のトレードオフが存在するが、一部の索引設計は、対数(O(log(N)))ルックアップパフォーマンスを示すことが可能であり、一部の適用においては、均一の(O(1))パフォーマンスを実現することが可能であることがある。
パターンに基づいて大きなデータセットを他の大きなデータセットに照らしてマッチングする金融機関、ビジネスエンティティ、図書館、研究機関、大学、政府機関、またはそれに類するものなどのエンティティに関して、メタデータモジュール202が、データ処理を関連付けるための処理時間および必要とされるハードウェア/ソフトウェアの相当な量を節約する。1つまたは複数のブルームフィルタおよび検索可能な索引の存在の追加が、パフォーマンス速度をさらに向上させることが可能である。
メタデータモジュール202が使用してよい1つの技法の単純化された例が、以下のとおりである:
データセットに照らしてマッチングされるべき入力文字列:
「APL*APPLE iTUNES STOR xxxxxxxx7753 CA 12/30」
提供される実施形態において、入力文字列の要素は、空白スペースと、数字パターンと、非アルファベット文字(記号)と、アルファベットテキストとを含む。この文字列をマッチングのためのパターンに変換した1つの派生形態が、以下のとおりである:
非アルファ/非スペース/非数字の文字をスペースで置き換える:
「APL APPLE iTUNES STOR xxxxxxxx7753 CA 12 30」
繰り返す空白スペースを単一のスペースで置き換える:
「APL APPLE iTUNES STOR xxxxxxxx7753 CA 12 30」
数字の文字を#で置き換える:
「APL APPLE iTUNES STOR xxxxxxxx#### CA ## ##」
繰り返すすべての#を単一の#で置き換える:
「APL APPLE iTUNES STOR xxxxxxxx# CA # #」
大文字と小文字の表記を標準化する(大文字または小文字):
「APL APPLE ITUNES STOR xxxxxxxx# CA # #」
メタデータモジュール202によって処理されるこのパターンは、一意の索引マッチングおよび並べ替え/検索に関する知られているパターン(例えば、「Apple iTunes Store」または別の標準化された文字列を返すことが可能な)を使用する一意の索引において使用されてよい。一部の実施形態において、パターンベースの文字列への標準化された変換は、新たな入力文字列から導き出されたパターンがマッチングと見なされるには厳密にマッチングしなければならないので「距離」または「ファジイマッチング」の商を計算する必要なしに、一意の索引が「ファジイな」パターンとマッチングすることを可能にする。
この方法を存在(ブルーム)フィルタと組み合わせて利用して、いくつかの実施形態において、メタデータモジュール202が、データベースにアクセスする前に、検索されるべきパターンまたは文字列の存在を決定することを可能にして、不揮発性ストレージから索引を読み取ることを回避して、さらに多くの時間を節約する。例えば、メタデータモジュール202によって実行されてよいステップは、様々な実施形態において、データベースにおけるデータのセットに照らしてマッチングされるべきシーケンスを受け付けること、データベースにパターンベースの文字列が存在するかどうかを決定すべく、ブルームフィルタを使用して、シーケンスのパターンベースの文字列への標準化された変換を実行すること、およびデータベースにパターンベースの文字列が存在する場合、そのデータベース内のどこでそのパターンベースの文字列を探すべきかを決定すべく検索可能な索引を使用すること、検索可能な索引からの情報に基づいて、そのデータベースにおいてそのパターンベースの文字列を探すこと、およびそのパターンベースの文字列がそのデータベースにおいてマッチングを有するかどうかの答えを戻すことを含んでよい。
一部の実施形態において、メタデータモジュール202が、メタデータ記録に関連付けられた同一の金融トランザクションデータに(例えば、同一のデータベーステーブル、同一のデータファイル、またはそれに類するもの)にメタデータ記録を付加してよい。別の実施形態において、メタデータモジュール202が、メタデータ記録を、金融トランザクションデータとは別個に、ただし、金融トランザクションデータに関連付けられて記憶してよい(例えば、別個のデータベーステーブル、データベース、ファイル、および/または他のデータ構造に、ただし、一意の識別子、一次鍵/二次鍵、索引、マッピング、またはそれに類するものに関連付けられて)。
一実施形態において、カテゴリ分けモジュール204は、メタデータモジュール202からのメタデータ記録に基づいて、金融トランザクションに関する会計カテゴリ(例えば、総勘定元帳コードおよび/もしくは口座、またはそれに類するもの)を決定するように構成される。本明細書において使用される会計カテゴリは、金融トランザクションの共有される特性(例えば、類似したメタデータ記録、またはそれに類するもの)に基づく金融トランザクションのクラスまたは分割を備える。一実施形態において、会計カテゴリは、ビジネスエンティティまたは他のユーザに関する総勘定元帳コードおよび/または口座(例えば、ビジネスエンティティまたは他のユーザに関する複数の台帳口座の集まり)を備えてよい。例えば、カテゴリ分けモジュール204が、複数の金融トランザクションのそれぞれを、貸方または借方として会計カテゴリ(例えば、総勘定元帳における勘定)に追加してよい。カテゴリ分けモジュール204は、デフォルトの会計カテゴリ(例えば、口座のデフォルトのチャート、デフォルトの総勘定元帳コード、またはそれに類するもの)を使用すること、および/またはユーザ(例えば、ビジネスエンティティに関連付けられた管理者または他のユーザ)がカスタムの会計カテゴリ(例えば、口座のカスタムのチャート、カスタムの総勘定元帳コードおよび/もしくは勘定、またはそれに類するもの)を定義することを可能にするユーザインターフェースを提供することが可能である。
一部の実施形態において、カテゴリ分けモジュール204が、ビジネスエンティティまたは他のユーザに関する階層組織チャートに基づいて、ビジネスエンティティまたは他のユーザに関する会計カテゴリを自動的に導き出してよい。例えば、カテゴリ分けモジュール204が、階層組織チャートからの各部門、各役員、各パートナ、各株主、各被雇用者、またはその他のエンティティに関する勘定および/または会計カテゴリの他のセットのチャートを複製すること、および/またはそれ以外で繰り返すことをしてよい(例えば、各会計カテゴリにおけるカテゴリごとに借方および貸方を追跡して、またはそれに類することを行って)。いくつかの実施形態において、カテゴリ分けモジュール204が、デフォルトの組織チャートを使用すること、および/またはユーザ(例えば、ビジネスエンティティに関連付けられた管理者または他のユーザ)がカスタムの組織チャートを定義することを可能にするユーザインターフェースを提供することをしてよい。
カテゴリ分けモジュール204が、一部の実施形態において、会計カテゴリに基づいて、金融トランザクションをカテゴリに分けるための規則セットを決定すること、および/または使用することをしてよい(例えば、カテゴリ分けモジュール204は、同一の規則セットを使用して、後続の金融トランザクションに関する会計カテゴリを決定してよく、時とともに規則セットを動的に構築すること、および/または更新することを行ってよく、またはそれに類することを行ってよい)。例えば、カテゴリ分けモジュール204のための規則セットは、メタデータ記録の要素を会計カテゴリにマッピングする規則および/または他の命令もしくは標識を備えてよい。カテゴリ分けモジュール204が、会計カテゴリを決定すべく金融トランザクションに関するメタデータモジュール202からのメタデータ記録を規則セット(例えば、索引、マッピング構造、関数、ツリー、またはそれに類するもの)に入力してよい。
メタデータ記録から会計カテゴリへのマッピングは、様々な実施形態において、ユーザ入力(例えば、ユーザが、金融トランザクションに関する会計カテゴリを定義すること)に基づいて、金融トランザクションの識別された関係者に関する公開記録(例えば、ビジネスエンティティに関する状態記録、ビジネスエンティティに関するウェブサイト、またはそれに類するもの)に基づいて、いずれの被雇用者または他のユーザが金融トランザクションを行ったかに基づいて、複数のビジネスエンティティまたは他のユーザに関する金融トランザクションの機械学習および/または他の人工知能解析に基づいて、金融トランザクションの識別された関係者の1つまたは複数のウェブサイトの機械学習および/または他の人工知能解析に基づいて、金融トランザクションに関して決定されたアイテムレベルのデータに基づいて、あるいは以上に類することに基づいてよい。一部の実施形態において、カテゴリ分けモジュール204が、業者、または金融トランザクションの他の関係者に基づいて(例えば、同一の業者または他の関係者との各金融トランザクションに関する類似したマッピングを使用して)、複数のユーザ(例えば、複数のビジネスエンティティ)に関するマッピングを標準化してよい。一実施形態において、カテゴリ分けモジュール204は、ユーザが、メタデータ記録の異なる要素(例えば、トランザクション金額、トランザクション日付、支出カテゴリ、エンティティ識別子、金融トランザクションが繰り返し生じるトランザクションおよび/もしくはサブスクリプションであるかどうかの分類、口座識別子、トランザクションタイプ、および/または金融トランザクションに関する他のメタデータ)の動的に選択可能な組合せから動的に選択可能な会計カテゴリに対するマッピングをカスタマイズすることを可能にするユーザインターフェースを提供してよく、複雑な会計のための柔軟性のあるカスタムのマッピングオプションを提供する。
ビジネスエンティティの各金融トランザクションに関する会計カテゴリを動的に決定することによって、一部の実施形態において、カテゴリ分けモジュール204が、ビジネスエンティティの金融プロファイルおよび/または状態の動的で、リアルタイムの見通しを得てよく、カテゴリ分けモジュール204に関連付けられた金融機関が、ビジネスエンティティにさらなるサービスを提供すべく、ビジネスエンティティのためのサービスおよび/または商品をカスタマイズすることを可能にする(例えば、総勘定元帳、貸借対照表、損益計算書、記入された税務書類、またはそれに類するものを動的に生成して)。一実施形態において、オファモジュール206が、カテゴリ分けモジュール204によって決定された会計カテゴリ、および/またはメタデータモジュール202によって決定されたメタデータ記録に基づいて、金融機関の金融商品に関するオファを選択するように構成される。
本明細書において使用される金融商品は、金融機関の口座保持者または他のユーザに金融機関によって提供される商品および/またはサービスを備える。例えば、様々な実施形態において、金融商品は、ローン、購入資金調達、普通預金口座、当座預金口座、投資口座、保険、会計サービス、税務サービス、総勘定元帳を生成すること、貸借対照表を生成すること、損益計算書を生成すること、税務書類に記入すること、給与支払いサービス、またはそれに類するものを備えてよい。
いくつかの実施形態において、オファモジュール206が、ビジネスエンティティの金融トランザクション、メタデータ記録、および/または会計カテゴリを監視してよく、ビジネスエンティティに関する将来の事象を予測し、予測される事象に基づいて金融商品を選択してよい。例えば、オファモジュール206が、資金の将来の不足、マイナス口座残高、ローンまたは他の口座に関する財務制限事項の将来の不履行、資金の将来の超過、またはそれに類するものなどの事象を予測すべく、口座買掛金および口座売掛金、口座残高、利益および損失、またはそれに類するものを監視してよい。
一実施形態において、オファモジュール206が、資金の将来の不足を予測することに応答して、ビジネスエンティティに関するブリッジローンを備える金融商品を選択してよい。オファモジュール206は、予測される将来の不足を補填し、ビジネスエンティティによって受け取られるべき口座未払い金資金によって返済されるようにブリッジローンの金額を選択してよい。例えば、オファモジュール206は、予測されるトランザクションを条件として、金融機関が、所定の期間まで、所定の金額まで、またはそれに類するようにビジネスまたは他のユーザにブリッジローンを提供するオファを選択してよい。一部の実施形態において、オファモジュール206は、ビジネスエンティティまたは他のユーザが、後続の事象(例えば、所定の期間、選択された口座売掛金支払いが受け取られること、またはそれに類すること)に応答して、ブリッジローンの自動的支払い(例えば、全額の)を許可することを可能にしてよい。さらなる実施形態において、オファモジュール206は、マイナス口座残高を予測してよく、マイナス残高を有すると予測される口座に異なる口座から資金を自動的に振り替える(例えば、マイナス残高もしくはそれに類するものを回避すべく)サービスを備える金融商品をオファしてよい。
ビジネスエンティティによる財務制限事項の将来の不履行を予測することに応答して、オファモジュール206が、一部の実施形態において、既存の金融商品および/もしくは口座に関する修正された財務制限事項を備えた金融商品、異なる財務制限事項を有する新たな金融口座、またはそれに類するものを選択してよい。本明細書において使用される財務制限事項は、金融機関から金融商品、口座、および/または契約条件を受け取るためにビジネスエンティティおよび他のユーザによって同意される条件を備える。例えば、財務制限事項は、1つまたは複数の貸借対照表科目を許さない、1つまたは複数の比が事前定義された限度を下回ること、もしくは上回ることを許さない、またはそれに類することを行うようにする同意を備えてよい。オファモジュール206は、一実施形態において、ビジネスエンティティの口座に関するメタデータ記録および/または会計カテゴリに基づいて、ビジネスエンティティに関する修正された財務制限条項、異なる財務制限条項、またはそれに類するもの(例えば、ビジネスエンティティが、修正された財務制限条項、異なる財務制限条項、またはそれに類するものを守ることができそうであるように選択された)を選択してよい。
いくつかの実施形態において、オファモジュール206が、ビジネスエンティティの金融トランザクションメタデータ記録および/または会計カテゴリに基づいて、ビジネスエンティティのリスク分析、信用力、および/またはオファの選択された金融商品の支払いをする能力を動的に決定してよい。一部の実施形態において、オファモジュール206は、異なる金融機関によって保持されるビジネスエンティティまたは他のユーザの外部口座に関する利率、手数料、またはそれに類するものを、その外部口座に関して集約された金融トランザクションに基づいて決定するように構成される。オファモジュール206によって選択される金融商品は、一実施形態において、異なる金融機関からの競合する金融商品(例えば、ローン、口座、保険、またはそれに類するもの)と比べて、より良い利率(例えば、ローンに関するより低い利率、投資口座に関するより高い利率、またはそれに類するもの)、より低い手数料、および/または他の1つもしくは複数のより良い契約条件で選択されてよい。
通信モジュール208が、いくつかの実施形態において、バックエンドハードウェアコンピュータサーバ110上に配置されたバックエンド企業トランザクションモジュール104bと、ユーザのハードウェアデバイス102上に配置されたフロントエンド企業トランザクションモジュール104aとの間でデータを通信するように構成されてよい。ハードウェアコンピュータサーバ110の通信モジュール208が、データネットワーク106を介して、ユーザのハードウェアデバイス102がデータを受信する、ユーザのハードウェアデバイス102のネットワークインターフェースにデータを送信すべくハードウェアコンピュータサーバ110のネットワークインターフェースを使用してよい。
通信モジュール208は、バックエンドハードウェアコンピュータサーバ110とユーザのハードウェアデバイス102との間でデータを通信するために事前定義されたプロトコル、フォーマット、インターフェース、またはそれに類するものを使用してよい。通信モジュール208は、様々な実施形態において、金融トランザクションデータ、メタデータ記録、会計カテゴリ、金融商品に関するオファ、総勘定元帳、損益計算書、自動記入された税務書類、リスク分析、信用格付け、もしくは信用力の他の指標、口座残高、予算、および/または他のデータを通信してよい。
例えば、一実施形態において、バックエンド企業トランザクションモジュール104bの通信モジュール208が、バックエンドハードウェアコンピュータサーバ110のネットワークインターフェースからデータネットワーク106を介してユーザのハードウェアデバイス102のネットワークインターフェースに、オファモジュール206によって選択された金融商品に関するオファを送信する。ユーザのハードウェアデバイス102の通信モジュール208が、いくつかの実施形態において、ユーザのハードウェアデバイス102のネットワークインターフェースを使用して、ハードウェアコンピュータサーバ110のネットワークインターフェースから金融機関の金融商品に関するオファを受信するように構成される。
一実施形態において、ディスプレイモジュール210が、ユーザのハードウェアデバイス102の電子ディスプレイ上でユーザにユーザインターフェースを提供するように、および/またはそれ以外でデータを表示するように構成される。いくつかの実施形態において、ディスプレイモジュール210は、ユーザのハードウェアデバイス102の電子ディスプレイ上でユーザにオファモジュール206からの金融機関の金融商品に関するオファを表示してよい。さらなる実施形態において、ディスプレイモジュール210は、通信モジュール208から受信された金融トランザクションデータ、メタデータ記録、会計カテゴリ、金融商品に関するオファ、総勘定元帳、損益計算書、自動記入された税務書類、リスク分析、信用格付け、もしくは信用力の他の指標、口座残高、予算、および/または他のデータを表示してよい。
一実施形態において、ディスプレイモジュール210が、ユーザまたは関連付けられたビジネスエンティティの口座に関する予測されるマイナス残高について、ユーザのハードウェアデバイス102の電子ディスプレイ上でユーザに通知するように構成される。ディスプレイモジュール210は、一部の実施形態において、マイナス残高またはそれに類することを防止するために、ユーザが、マイナス残高を有すると予測される口座への異なる口座からの資金の振替えを承認するユーザインターフェースを提供してよい。
いくつかの実施形態において、ディスプレイモジュール210は、カテゴリ分けモジュール204(例えば、ハードウェアコンピュータサーバ110上に配置された)が口座買掛金金融トランザクションに関する口座買掛金会計カテゴリを決定する(例えば、支払いを承認するユーザからの入力、またはそれに類するものに応答して、企業トランザクションモジュール104が支払いを自動的に行うことが可能であるように)ことに応答して、ハードウェアデバイス102の電子ディスプレイ上でユーザに口座買掛金金融トランザクションに関する支払いの承認を促す指示を出すように構成される。
ディスプレイモジュール210が、様々な実施形態において、プッシュ通知、グラフィカルユーザインターフェース(例えば、モバイルアプリケーション、または他のコンピュータ実行可能コードの)、電子メール、テキストメッセージ、またはそれに類するものを使用して、ハードウェアデバイス102の電子ディスプレイ上でユーザに表示すること、および/または指示を出すことをしてよい。
図3は、企業トランザクションモジュール104の別の実施形態を示す。示される実施形態において、企業トランザクションモジュール104は、メタデータモジュール202と、カテゴリ分けモジュール204と、オファモジュール206と、通信モジュール208と、ディスプレイモジュール210とを含み、認証モジュール301と、直接アクセスモジュール307と、インターフェースモジュール313と、ルートモジュール314と、頻度モジュール316と、試験モジュール318と、規則セットモジュール320と、オーバーライドモジュール322と、予測モジュール324と、出力モジュール326と、承認モジュール328と、アイテムレベルモジュール330と、重複除去モジュール332とをさらに含む。
認証モジュール301は、図示される実施形態において、ローカル認証モジュール302と、ネットワーク認証モジュール304と、パスワードマネージャモジュール306とを含む。直接アクセスモジュール307は、図示される実施形態において、パターンモジュール308と、アクセス修復モジュール310と、階層モジュール312とを含む。メタデータモジュール202、カテゴリ分けモジュール204、オファモジュール206、通信モジュール208、および/またはディスプレイモジュール210は、一部の実施形態において、図2に関して前段で説明されるメタデータモジュール202、カテゴリ分けモジュール204、オファモジュール206、通信モジュール208、および/またはディスプレイモジュール210のうちの1つまたは複数と実質的に同様であってよい。図示される企業トランザクションモジュール104のいくつかの部分(例えば、図示されるモジュールまたはそのようなモジュールの部分のうちの1つまたは複数)は、バックエンドハードウェアコンピュータサーバ110(例えば、金融機関のための)上、ハードウェアデバイス102(例えば、ビジネスエンティティまたはそれに類するものに関連付けられたユーザの)上、および/またはサードパーティハードウェアコンピュータサーバ108(例えば、サードパーティ金融機関、サードパーティデータ集約者、サードパーティサービスプロバイダ、またはそれに類するもののサーバ108)上に配置されてよい。
一実施形態において、認証モジュール301は、ユーザのハードウェアデバイス102上でユーザから、サードパーティサービスプロバイダ108(例えば、サードパーティ金融機関108またはそれに類するもの)に関するユーザの電子資格証明を受信する。さらなる実施形態において、認証モジュール301は、直接アクセスモジュール307が、異なるユーザに関するデータをダウンロードすること(例えば、単一のユーザのハードウェアデバイス102から複数のユーザに関するデータをダウンロードして)が可能であるように暗号化されてよい、かつ/またはそれ以外でセキュリティ保護されてよい、異なるユーザに関する電子資格証明を受信してよい(例えば、異なるハードウェアデバイス102から、バックエンド企業トランザクションモジュール104から、またはそれに類するものから)。
例えば、分散型/分散化されたシステム100、101において、1名のユーザのハードウェアデバイス102がオフにされた、スリープ状態にある、バッテリ切れである、サードパーティサービスプロバイダ108によってブロックされている、またはそれに類する場合、いくつかの実施形態において、異なるユーザのハードウェアデバイス102上、および/またはバックエンドサーバ110上の企業トランザクションモジュール104が、その1名のユーザの電子資格証明を使用して、その1名のユーザのためにデータをダウンロードしてよく、そのデータをその1名のユーザのハードウェアデバイス102に送信してよく、その1名のユーザのハードウェアデバイス102にアラートおよび/またはプッシュ通知を送信してよく、またはそれに類することを行ってよい。このようにして、一実施形態において、ユーザは、ユーザ自身のハードウェアデバイス102がブロックされている、利用できない、またはそれに類する場合でさえ、データを集約すること、アラートおよび/またはプッシュ通知を受信すること、またはそれに類することを続けてよい。1つまたは複数の認証モジュール301と協働して、企業トランザクションモジュール104a、104bが、いくつかの実施形態において、ユーザが、別のユーザの電子資格証明、ダウンロードされたデータ、または他のプライベートデータおよび/もしくは慎重な扱いを要するデータを見ること、および/またはそれらにアクセスすることが可能でないように、セキュリティ保護されたプロトコルおよび/または暗号化されたプロトコルを使用して互いに通信してよく、かつ/またはセキュリティ保護された様態および/または暗号化された様態で電子資格証明を記憶してよい。
企業トランザクションモジュール104がハードウェア(例えば、FPGA、ASIC、またはそれに類するものなどの半導体集積回路デバイス)を備える実施形態において、認証モジュール301は、暗号鍵を記憶する、セキュリティ保護されていないバスもしくはストレージに解読されたデータを出力しない、セキュリティ保護された暗号プロセッサ(例えば、1つまたは複数の物理的なセキュリティ対策を有するパッケージングに埋め込まれたチップもしくはマイクロプロセッサの上の専用コンピュータ)、セキュリティ保護されたストレージデバイス、TPMチップおよび/またはTPMセキュリティデバイスなどの信頼されるプラットフォームモジュール(TPM)、セキュリティ保護されたブートROMもしくは他のタイプのROM、認証チップ、あるいはそれに類するものなどの、電子資格証明、ダウンロードされたデータ、および/または他の慎重な扱いを要するデータおよび/もしくはプライベートデータを記憶するため、および/または処理するための専用セキュリティハードウェアを備えてよい。別の実施形態において、認証モジュール301は、専用のセキュリティハードウェアとともに、またはそのようなハードウェアなしにユーザの既存のハードウェアデバイス102のソフトウェアおよび/またはハードウェアを使用して(例えば、RAM、NAND、および/または他の汎用ストレージにおけるデータを暗号化して)、セキュリティ保護された様態および/または暗号化された様態で電子資格証明、ダウンロードされたデータ、および/または他の慎重な扱いを要するデータを記憶すること、および/または処理することをしてよい。いくつかの実施形態において、認証モジュール301は、第2の(例えば、異なる)ユーザのハードウェアデバイス102によって受信され(例えば、データネットワーク106またはそれに類するものを介して第1のユーザのハードウェアデバイス102から)、処理され、かつ/または記憶される、第1のユーザに関連付けられたデータ(例えば、電子資格証明、ダウンロードされたデータ)を暗号化すること、および/またはセキュリティ保護することをしてよく、第1のユーザのデータが、異なるユーザのハードウェアデバイス102からダウンロードされること、および/または集約されることを依然として許しながら、第2のユーザが、第1のユーザのデータにアクセスすることを防止する。
一実施形態において、前述したとおり、電子資格証明は、認証モジュール301が、それによってユーザの身元および/または許可を認証すること、および/または検証することをしてよい、ユーザ名およびパスワード、指紋スキャン、網膜スキャン、デジタル証明書、個人識別番号(PIN)、チャレンジ応答、セキュリティトークン、ハードウェアトークン、ソフトウェアトークン、DNAシーケンス、署名、顔認識、音声パターン認識、生体電気信号、二要素認証資格証明、または他の情報のうちの1つまたは複数を備えてよい。
認証モジュール301は、いくつかの実施形態において、企業トランザクションモジュール104が、異なる複数のサードパーティサービスプロバイダ108からユーザのデータをダウンロードすること、集約すること、および/または組み合わせることが可能であるように、異なるサードパーティサービスプロバイダ108(例えば、異なるソーシャルネットワーク、異なる写真共有サイト、異なる金融機関)に対するユーザの異なる口座に関してユーザから異なる資格証明を受信してよい。一実施形態において、認証モジュール301は、ユーザから1つまたは複数のパスワードもしくは他の電子資格証明を受信する代わりに、および/またはそうすることに加えて、1つまたは複数のサードパーティサービスプロバイダ108に関する1つまたは複数のパスワードもしくは他の電子資格証明をユーザのために管理すること、および/または決定することをしてよい。例えば、いくつかの実施形態において、認証モジュール301は、サードパーティサービスプロバイダ108に対するユーザの口座に関してユーザから資格証明の初期のセット(例えば、ユーザ名およびパスワード)を受信してよく、認証モジュール301は、認証モジュール301によって決定される、新たなパスワードを設定すべく、サードパーティサービスプロバイダ108に対するユーザの口座にアクセスするのに電子資格証明の初期のセットを使用してよい。認証モジュール301は、一実施形態において、ユーザによって通常、作成され、かつ/またはユーザに記憶可能なものと比べて、より強いセキュリティ保護された(例えば、より長い、より多くの数字の、大文字と小文字と間のばらつきがより大きい、より頻繁に変更される、またはそれに類する)パスワードまたは他の電子資格証明を決定してよい。
一実施形態において、ローカル認証モジュール302が、ユーザのハードウェアデバイス102上、ユーザのハードウェアデバイス102に転送される、および/もしくはユーザのハードウェアデバイス102から転送される、またはそれに類する、ダウンロードされたデータ、記憶されたパスワード、および/または他のデータへのユーザアクセスをセキュリティ保護すること、および/または認証することを行う。例えば、ローカル認証モジュール302は、ハードウェアデバイス102に対するアクセスを得るのにユーザによって使用されるPIN、パスワード、指紋認証、顔認識、または他の電子資格証明などの、ユーザのハードウェアデバイス102の1つもしくは複数のセキュリティシステムおよび/または認証システムと協働してよい。さらなる実施形態において、ローカル認証モジュール302は、インターフェースモジュール313が、ダウンロードされた/集約されたデータ、および/またはアラートもしくは他のメッセージに対するアクセスをユーザに提供することを許すのに先立って、ユーザを認証してよい。例えば、ローカル認証モジュール302は、ユーザのために、企業トランザクションモジュール104に関連付けられた電子資格証明を管理すること、および/またはそのような電子資格証明にアクセスすることをしてよく、ユーザが企業トランザクションモジュール104のアプリケーションおよび/またはサービスにアクセスすることに応答して、ユーザを認証してよい。
いくつかの実施形態において、ローカル認証モジュール302は、ユーザのハードウェアデバイス102の上で、異なるユーザに関連付けられた電子資格証明および/またはダウンロードされたデータを暗号化すること、および/またはそれ以外でセキュリティ保護することを行って、ユーザが、その異なるユーザに関連付けられたデータにアクセスすることは可能でないが、その異なるユーザは、そのデータが、その異なるユーザのハードウェアデバイス102に、バックエンドサーバ110に、またはそれに類するものに送信されると、そのデータにアクセスすることが可能であるようにしてよい。異なるハードウェアデバイス102、110のローカル認証モジュール302が、データネットワーク106を介して、1つのハードウェアデバイス102、110から別のハードウェアデバイス102、110にデータ(例えば、1つまたは複数の電子資格証明、ダウンロードされたデータ、またはそれに類するもの)をセキュリティ保護された様態で転送すべく協働してよい。さらなる実施形態において、ローカル認証モジュール302は、ユーザの電子資格証明および/またはダウンロードされたデータが、単一のハードウェアデバイス102上に、セキュリティ保護されたリポジトリの中に、またはそれに類するものに留まり(例えば、データネットワーク106上で送信されず)、バックエンドサーバ110、別のユーザのハードウェアデバイス102、またはそれに類するものの上に記憶されないこと、および/またはそのようなものにアクセスすることが可能でないことを確実にしてよい。
一実施形態において、ネットワーク認証モジュール304は、ユーザのハードウェアデバイス102上、バックエンドサーバ110上、またはそれに類するものの上に1つまたは複数のサードパーティサービスプロバイダ108に関するユーザの電子資格証明を受信すること、および/または記憶することをする。ネットワーク認証モジュール304は、様々な実施形態において、ユーザのハードウェアデバイス102から、バックエンドサーバ110から、またはそれに類するものから、ユーザからのユーザの電子資格証明を受信してよい。ネットワーク認証モジュール304は、サードパーティサービスプロバイダ108のサーバ108にユーザの電子資格証明を提供すべく直接アクセスモジュール307と協働してよい(例えば、ネットワーク認証モジュール304は、サーバ108に提供すべく直接アクセスモジュール307に電子資格証明を提供してよく、ネットワーク認証モジュール304は、サーバ108に直接に電子資格証明を提供してよく、またはそれに類することを行ってよい)。
ネットワーク認証モジュール304は、いくつかの実施形態において、1つまたは複数のサードパーティサービスプロバイダ108に関するユーザの電子資格証明を、サードパーティサービスプロバイダ108のサーバ108に提供されること、またはそれに類することが行われながら、ユーザのハードウェアデバイス102上、データネットワーク106上、異なるユーザのハードウェアデバイス102上、バックエンドサーバ110上で暗号化すること、および/またはそれ以外でセキュリティ保護することを行うようにローカル認証モジュール302と協働してよい。さらなる実施形態において、ネットワーク認証モジュール304は、ユーザの電子資格証明が、ユーザのハードウェアデバイス102上だけに記憶され、ユーザのハードウェアデバイス102からサードパーティサービスプロバイダ108のサーバ108に送信されることを確実にし、バックエンドサーバ110上、異なるユーザのハードウェアデバイス102上、またはそれに類するものの上にユーザの電子資格証明を記憶しない。別の実施形態において、ネットワーク認証モジュール304は、バックエンドサーバ110上、異なるユーザのハードウェアデバイス102上、またはそれに類するものの上にサードパーティサービスプロバイダ108に関するユーザの電子資格証明をセキュリティ保護された様態で記憶して(例えば、セキュリティ保護された暗号化を使用して)、ルートモジュール314に関連して後段で説明されるとおり、ユーザのハードウェアデバイス102が、利用できない、ブロックされている、またはそれに類するようである場合でさえ、直接アクセスモジュール307が、ユーザに関連付けられたデータにアクセスすること、および/またはそのようなデータをダウンロードすることが可能であるようにしてよい。いくつかの実施形態において、ネットワーク認証モジュール304および/またはローカル認証モジュール302は、ユーザが、セキュリティのレベル、またはそれに類するものを決定してよいようにするように、電子資格証明が、ユーザ入力に基づいて定義された設定に基づいて、異なるユーザのハードウェアデバイス102、バックエンドサーバ110、またはそれに類するものに送信されること、および/またはそのようなものによって記憶されることを可能にする。
一実施形態において、パスワードマネージャモジュール306が、複数のサードパーティサービスプロバイダ108に関するユーザの電子資格証明を管理すること、および/または記憶することをして、直接アクセスモジュール307が、その複数のサードパーティサービスプロバイダ108のそれぞれからユーザに関連付けられたデータにアクセスすること、および/またはダウンロードすることが可能であるようにしてよい。パスワードマネージャモジュール306は、いくつかの実施形態において、複数のサードパーティサービスプロバイダ108のそれぞれに関する異なるセキュリティ保護された資格証明を生成すること、および/またはそれ以外で管理することをしてよい。
パスワードマネージャモジュール306は、一実施形態において、ユーザのハードウェアデバイス102上にユーザに関する生成された資格証明をセキュリティ保護された様態で記憶して、ユーザが、その生成された電子資格証明を覚えて、入力しなくてもよいようにしてよい。例えば、直接アクセスモジュール307が、生成された電子資格証明を使用してサードパーティサービスプロバイダ108にアクセスすることを可能にすることに加えて、パスワードマネージャモジュール306は、ユーザが電子資格証明を手作業で入力することなしに、ユーザがウェブブラウザにおいてウェブページを訪れること、またはそれに類することに応答して、ウェブページ上のフォームの1つまたは複数のインターフェース要素にユーザの電子資格証明(例えば、ユーザ名、パスワード)を自動的に入力してよい。パスワードマネージャモジュール306は、いくつかの実施形態において、毎週、毎月、2ヵ月ごと、3ヵ月ごと、4ヵ月ごと、5ヵ月ごと、6ヵ月ごと、毎年、2年ごと、ユーザ要求に応答して、サードパーティサービスプロバイダ108からの要求に応答して、および/または別の期間にわたって、または別の周期的トリガに応答してなど、ユーザの電子資格証明を周期的に更新すること(例えば、異なるパスワードなどの異なる資格証明を再生成して、その再生成された異なる資格証明を用いてサードパーティサービスプロバイダ108に対するユーザの口座を更新すること)をしてよい。
パスワードマネージャモジュール306は、一実施形態において、ユーザの異なるハードウェアデバイス102、ウェブブラウザ、またはそれに類するものにわたってユーザの電子資格証明(例えば、ユーザによって提供された、パスワードマネージャモジュール306によって生成された、またはそれに類する)を同期してよい。例えば、パスワードマネージャモジュール306および/またはユーザが、電子資格証明を更新すること、またはそれ以外で変更することに応答して、パスワードマネージャモジュール306は、ユーザの異なるハードウェアデバイス102上の他の1つまたは複数のパスワードマネージャモジュール306にその更新/変更を伝播させること、またはそれに類することを行ってよい。
一実施形態において、直接アクセスモジュール307が、認証モジュール301からのユーザの電子資格証明を使用して、ユーザのハードウェアデバイス102から、かつ/またはバックエンドサーバ110から、1つまたは複数のサードパーティサービスプロバイダ108の1つまたは複数のサーバ108にアクセスする(例えば、ハードウェアデバイス102に関連付けられたユーザのために、異なるユーザのために、またはそれに類することで)。直接アクセスモジュール307が、いくつかの実施形態において、ユーザのハードウェアデバイス102に直接にデータをダウンロードすることの代わりに、またはそうすることに加えて、ユーザに関連付けられたデータ(例えば、ユーザのソーシャルメディア書込み、ユーザの写真、ユーザの金融トランザクション、またはそれに類するもの)を、1つまたは複数のサードパーティサービスプロバイダ108の1つまたは複数のサーバ108から、ユーザの(例えば、処理のため、および/またはダウンロードされたデータに関連付けられたユーザのハードウェアデバイス102に転送するために、ダウンロードされたデータに関連付けられたユーザの、異なるユーザの、またはそれに類する)ハードウェアデバイス102に、かつ/または直接アクセスモジュール307に関連付けられたバックエンドサーバ110にダウンロードする(例えば、ユーザのハードウェアデバイス102の利用可能性に基づいて、第2のロケーションにデータをバックアップすること、またはそれに類することを行うように)。
直接アクセスモジュール307は、いくつかの実施形態において、ユーザの電子資格証明を使用してサーバ108にアクセスすること、および/またはユーザに関連付けられたデータをダウンロードすることを行うのにサードパーティサービスプロバイダ108のサーバ108のウェブページインターフェースを使用してよい。例えば、いくつかの実施形態において、直接アクセスモジュール307が、サードパーティサービスプロバイダ108のサーバ108からウェブページをダウンロードすること/ロードすること、そのウェブページ上のフォームにおけるテキストボックスにユーザに関するユーザ名およびパスワード、または他の電子資格証明を入力すること、そのウェブページのサブミットボタンまたは他のインターフェース要素を使用してユーザ名およびパスワード、または他の電子資格証明をサブミットすること、および/またはそれ以外で、ユーザに関連付けられたサーバ108上のデータに許可されたアクセスを得るべく、ウェブサイトを使用して電子資格証明をサブミットすることをしてよい。後段で説明されるとおり、パターンモジュール308が、直接アクセスモジュール307がサーバ108にアクセスすることを可能にする命令(例えば、電子資格証明をサブミットするためのロケーションもしくは方法、またはそれに類するもの)を受信すること、および/または提供することをしてよい。
ユーザの電子資格証明を用いてサードパーティサービスプロバイダ108のサーバ108に対して認証を行うことに成功し、サーバ108にアクセスすることに応答して、直接アクセスモジュール307は、サーバ108から、ユーザに関連付けられたデータ(例えば、ユーザの口座、またはそれに類するものから)を、ユーザに関連付けられたハードウェアデバイス102に、バックエンドサーバ110に、ユーザの代理としてそのデータをダウンロードする別のユーザのハードウェアデバイス102に、またはそれに類するものにダウンロードしてよい。後段で説明されるとおり、いくつかの実施形態において、パターンモジュール308は、直接アクセスモジュール307が、サードパーティサービスプロバイダ108のサーバ108からユーザに関連付けられたデータをダウンロードすることを可能にする命令(例えば、そのデータに関するロケーションに対するURLもしくは他のリンク、1つまたは複数のウェブページもしくは他のデータ構造の範囲内でデータを探し出すためのラベルもしくは他の識別子、またはそれに類するもの)を受信すること、および/または提供することをしてよい。直接アクセスモジュール307は、いくつかの実施形態において、ユーザに関連付けられたデータを探し出すこと、ダウンロードすること、および/もしくは抽出すること、またはそれに類することを行うべく、エントリロケーションを探し出すべく1つまたは複数のウェブページを構文解析すること、および/または電子資格証明をサブミットすることをして、スクリーンスクレイピング様態でサーバ108からの1つまたは複数のウェブページからのデータを認証すること、および/またはそのようなデータにアクセスすることをするよう、パターンモジュール308からの命令に従ってよい。
一実施形態において、直接アクセスモジュール307は、サードパーティサービスプロバイダ108のサーバ108のAPIまたは他のアクセスプロトコルを使用して、電子資格証明を送信すること、もしくはそれ以外でサブミットすること、および/またはデータを受信すること、もしくはそれ以外でダウンロードすることをする。例えば、直接アクセスモジュール307は、サードパーティサービスプロバイダ108のサーバ108(例えば、APIサーバ108)によって指定され、かつ/またはサーバ108に適合するフォーマットで要求を送信してよい。送信される要求は、ユーザに関する電子資格証明、もしくはその一部分(例えば、ユーザ名および/またはパスワード)を備えてよく、後続の要求は、ユーザに関する電子資格証明、もしくはその一部分(例えば、最初の要求に関するサーバ108からの肯定応答を受信すること、またはそれに類することに応答して)を備えてよく、かつ/または直接アクセスモジュール307が、サーバ108の異なるアクセスプロトコルを使用してよい。
直接アクセスモジュール307からのデータに対する要求に応答して(例えば、直接アクセスモジュール307が、サーバ108のアクセスプロトコルを使用してユーザを認証することに応答して)、サードパーティサービスプロバイダ108のサーバ108が、ユーザに関連付けられたデータを送信すること、および/または戻すこと(例えば、1つまたは複数のメッセージ、パケット、ペイロードにおいて、直接アクセスモジュール307がそのデータを取り出してよいロケーションに対するURLもしくは他のポインタとして、またはそれに類するように)をしてよい。直接アクセスモジュール307は、様々な実施形態において、ユーザに関連付けられたデータを、データネットワーク106を介してサードパーティサービスプロバイダ108のサーバ108から直接に受信してよく、ユーザに関連付けられたデータのロケーションに対するポインタ、URL、または他のリンクをサードパーティサービスプロバイダ108のサーバ108から受信してよく、ユーザに関連付けられたデータを、データネットワーク106上の別のエンティティから受信してよく(例えば、サードパーティサービスプロバイダ108のサーバ108からの他のエンティティまたはそれに類するものに対する要求に応答して)、またはそれ以外で、ユーザに関連付けられたデータを、サードパーティサービスプロバイダ108のアクセスプロトコルにより受信してよい。
一実施形態において、サードパーティサービスプロバイダ108が、APIまたは他のアクセスプロトコルを直接アクセスモジュール307に提供する。さらなる実施形態において、直接アクセスモジュール307が、サードパーティサービスプロバイダ108のアプリケーション(例えば、モバイルアプリケーション)のためのラッパ、および/またはプラグインもしくは拡張の役割をしてよく、そのアプリケーションが、サードパーティサービスプロバイダ108のAPIまたは他のアクセスプロトコルにアクセスを有してよい。別の実施形態において、直接アクセスモジュール307が、サードパーティサービスプロバイダ108のアプリケーションの観察、またはそれに類することを通じて、サードパーティサービスプロバイダ108のアプリケーション(例えば、モバイルアプリケーション)と同一の様態でAPIまたは他のアクセスプロトコルを使用するように構成されてよい。いくつかの実施形態において、直接アクセスモジュール307が、ユーザに関連付けられたデータにアクセスすべく(例えば、アプリケーションおよび/もしくはユーザによって既にダウンロードされているデータにアクセスして、アプリケーションおよび/もしくはウェブブラウザのデータベースもしくは他のデータストアにアクセスして、サードパーティサービスプロバイダ108のウェブページを、ユーザがそのウェブページにアクセスするにつれて、スキャンし、かつ/もしくはスクリーンスクレイピングして、またはそれに類することをして)サードパーティサービスプロバイダ108のアプリケーション、ユーザがサードパーティサービスプロバイダ108のサービスにアクセスするウェブブラウザ、またはそれに類するものと協働してよい。
直接アクセスモジュール307は、いくつかの実施形態において、異なるサードパーティサービスプロバイダ108に異なる様態でアクセスしてよい。例えば、第1のサードパーティサービスプロバイダ108が、APIまたは他のアクセスプロトコルへのアクセスを直接アクセスモジュール307に与えることが可能である一方で、直接アクセスモジュール307は、第2のサードパーティサービスプロバイダ108からのデータにアクセスし、そのデータをダウンロードするのにウェブページインターフェース(例えば、スクリーンスクレイピング)を使用すること、またはそれに類することを行うことが可能である。一実施形態において、遠隔バックエンドサーバ110が、ファーストパーティサービスプロバイダ110(例えば、企業トランザクションモジュール104のベンダおよび/またはプロバイダ)に関連付けられてよく、直接アクセスモジュール307は、ユーザに関連付けられたデータを、ファーストパーティサービスプロバイダ110と、1つまたは複数のサードパーティサービスプロバイダ108の両方からダウンロードして、ユーザが、単一のインターフェースおよび/またはアプリケーションにおいてそのデータにアクセスすることが可能であるようにそのデータを一緒に集約してよい。例えば、インターフェースモジュール313に関連して後段で説明されるとおり、インターフェースモジュール313は、単一の写真アプリケーション内で複数のサードパーティクラウドストレージプロバイダ108からユーザの写真に対するアクセスをユーザに提供してよく、単一の企業金融管理アプリケーション内および/またはオンラインバンキングアプリケーション内でユーザの個人金融情報に対するアクセスをユーザに提供してよく、単一のソーシャルネットワーキングアプリケーション内で複数のソーシャルネットワークからの書込みに対するアクセスをユーザに提供してよく、またはそれに類することを行ってよい。
直接アクセスモジュール307は、いくつかの実施形態において、ダウンロードされたデータおよび/または集約されたデータを、1つまたは複数のサードパーティサービスプロバイダ108とは独立に記憶してよい。例えば、直接アクセスモジュール307は、ユーザのダウンロードされたデータおよび/または集約されたデータを、ユーザのハードウェアデバイス102上に、ユーザによってアクセス可能であるバックエンドサーバ110上に、またはそれに類するものに記憶してよい。このようにして、いくつかの実施形態において、ユーザは、サードパーティサービスプロバイダ108が閉鎖した、または利用できない場合でさえ、ユーザのデータをコントロールすること、および/またはユーザのデータにアクセスすることが可能であり、ユーザが、サードパーティサービスプロバイダ108によってサポートされない場合でさえ、ユーザによって所望される任意の様態でユーザのデータを使用することが可能であり、またはそれに類することを行うことが可能である。
直接アクセスモジュール307は、一実施形態において、1つまたは複数のサードパーティサービスプロバイダ108からデータをダウンロードすることに加えて、および/またはそうする代わりに、ユーザ入力に応答して、1つまたは複数のサードパーティサービスプロバイダ108にデータをアップロードすること、および/または1つまたは複数のサードパーティサービスプロバイダ108の1つまたは複数の設定を変更すること、あるいはそれに類することを行ってよい。例えば、データが写真を備える実施形態において、直接アクセスモジュール307は、ユーザのハードウェアデバイス102から1つまたは複数のサードパーティサービスプロバイダ108に写真を(例えば、ユーザがハードウェアデバイス102で編集した、ダウンロードされた写真、またはそれに類するもの)アップロードしてよい。データがソーシャルメディア書込みまたは他のコンテンツを備える実施形態において、直接アクセスモジュール307は、ユーザから入力(例えば、写真、テキストの書込み、1つもしくは複数の絵文字、ビデオ、文書もしくは他のファイル、またはそれに類するもの)を受信し、その受信された入力を、1つまたは複数のサードパーティサービスプロバイダ108(例えば、ソーシャルメディアサイトまたはそれに類するもの)にアップロードしてよい。データが金融トランザクションまたは他の金融データを備える実施形態において、直接アクセスモジュール307は、請求書支払いもしくは他の支払い、または資金振替えをスケジュールすること、小切手を遠隔で預金すること(例えば、小切手の表および/または裏の写真をアップロードすること、またはそれに類することによって)、および/または別のアクションを実行することを行ってよい。
直接アクセスモジュール307は、口座タイプもしくは口座プラン、口座に関連付けられたクレジットカード情報もしくは他の支払い情報、口座に関連付けられた電話番号もしくはアドレスまたは他の連絡先情報、口座に関するパスワードまたは他の電子資格証明、および/またはサードパーティサービスプロバイダ108に関するユーザの他の口座情報などの、サードパーティサービスプロバイダ108に対するユーザの口座情報を更新すること、または変更することをしてよい。直接アクセスモジュール307は、データをダウンロードすることに関して本明細書において説明されるのと実質的に類似した様態でデータを更新すること、および/またはアップロードをすることをしてよい(例えば、サードパーティサービスプロバイダ108に関するユーザの電子資格証明を決定すること、サードパーティサービスプロバイダ108のサーバ108にアクセスすること、データをアップロードすること、および/もしくはサードパーティサービスプロバイダ108にそのデータを提供すること、またはそれに類することをして)。
一実施形態において、パターンモジュール308が、直接アクセスモジュール307がサーバ(例えば、ユーザのデータが記憶され、かつ/またはアクセス可能である以外のロケーションを含んでよい)にアクセスする、サードパーティサービスプロバイダ108の1つまたは複数のサーバ108上の複数のロケーションの順序付けられたリスト(例えば、パターン、スクリプト、またはそれに類するもの)、直接アクセスモジュール307が、サーバ108上のロケーションにアクセスする合間に待つ1つまたは複数の遅延、および/またはサーバのデータにアクセスするためのアクセスパターンの他の構成要素を決定する。ロケーションは、いくつかの実施形態において、ウェブページ、ウェブページの部分、画像もしくは他のデータファイル、データベースもしくは他のデータストア、モバイルアプリケーションのページもしくはセクション、またはそれに類するものなどの、サードパーティサービスプロバイダ108の1つまたは複数のサーバ、またはそれに類するものによって提供される独立にアドレス指定可能であり、かつ/またはアクセス可能なコンテンツおよび/または資産を備える。パターンモジュール308は、一実施形態において、直接アクセスモジュール307が、所望されるデータをダウンロードするのにアクセスする必要も、使用する必要もない1つまたは複数のロケーションおよび/または遅延を包含するパターン/順序付けられたリストを決定し、代わりに、パターン/順序付けられたリストは、サードパーティサービスプロバイダ108のサーバにアクセスする直接アクセスモジュール307とサードパーティサービスプロバイダのサーバにアクセスするユーザとをサードパーティサービスプロバイダ108が区別するのを困難にする、または不可能にしてよい。
パターンモジュール308は、一実施形態において、ウェブブラウザ、モバイルアプリケーション、またはそれに類するものにおいて識別された平均パターンもしくは組み合わされたパターンに基づいて、またはウェブブラウザ、モバイルアプリケーション、またはそれに類するものを使用してサードパーティサービスプロバイダ108にアクセスする複数のユーザの挙動に基づいて、複数のロケーションおよび/または1つもしくは複数の遅延(例えば、パターン/順序付けられたリスト)を決定すること、および/または選択することをしてよい。パターンモジュール308は、一実施形態において、1名または複数名のユーザを、その1名または複数名のユーザがいずれのリンク、データ、ウェブページ、および/または他のロケーションにアクセスするか、その1名または複数名のユーザがどれだけの時間、様々なロケーションにアクセスするか、その1名または複数名のユーザがロケーションにアクセスする順序、またはそれに類するものを追跡して、それらのユーザが、サードパーティサービスプロバイダ108のサーバにアクセスするにつれ、監視してよい(例えば、所定の期間にわたって、またはそれに類するように)。いくつかの実施形態において、監視される1名または複数名のユーザは、直接アクセスモジュール307が使用して、サードパーティサービスプロバイダ108のサーバにアクセスする、より現実的なアクセスパターンを提供するために、そのユーザのアクセスを一時的に、または永久に監視する許可をパターンモジュール308に与えているボランティアであってよい。
さらなる実施形態において、パターンモジュール308は、ユーザのハードウェアデバイス102のウェブブラウザ、モバイルアプリケーションもしくはデスクトップアプリケーション、または他のインターフェースを使用してサードパーティサービスにアクセスする、パターンモジュール308が配置されたハードウェアデバイス102に関連付けられたユーザの挙動において識別されるパターンに基づいて、複数のロケーション、および/または異なるロケーションにアクセスする合間の1つもしくは複数の遅延を決定すること、および/または選択することをする。例えば、パターンモジュール308は、ユーザのハードウェアデバイス102のネットワークハードウェア(例えば、データ、および/またはサードパーティサービスプロバイダ108のサーバとの対話を監視すべくデータネットワーク106と通信状態にあるネットワークアクセスカードおよび/もしくはネットワークアクセスチップ、プロセッサ、FPGA、ASIC、またはそれに類するもの)、ユーザのハードウェアデバイス102のプロセッサ上で実行されるウェブブラウザプラグインもしくはウェブブラウザ拡張、モバイルアプリケーションおよび/もしくはデスクトップアプリケーション、またはそれに類するものを備えてよい。パターンモジュール308は、ユーザのハードウェアデバイス102から1つまたは複数のサードパーティサービスプロバイダ108の1つまたは複数のサーバに関するユーザの活動を監視する許可を、ユーザに要求し、受信してよい。
パターンモジュール308は、いくつかの実施形態において、1名または複数名のユーザのアクセスパターンの検出された変化、またはそれに類するものに基づいて、時とともにパターン/順序付けられたリストを更新してよい。一実施形態において、パターンモジュール308は、サードパーティサービスプロバイダ108のサーバ108、および/またはユーザに関連付けられたデータが壊れること、および/またはアクセス不能になることに応答して、後段で説明されるとおり、パターン/順序付けられたリストを更新するようにアクセス修復モジュール310と協調すること、および/または協働することをしてよい。
一実施形態において、アクセス修復モジュール310は、サードパーティサービスプロバイダ108のサーバ108へのアクセス、および/またはユーザに関連付けられたデータが壊れていること、および/またはアクセス不能になることを検出する。アクセス修復モジュール310は、いくつかの実施形態において、ユーザが、ユーザの電子資格証明に関する入力ロケーション、ユーザに関連付けられたデータのロケーション、またはそれに類するものをグラフィックスで識別することを可能にするインターフェースをユーザに提供する。例えば、アクセス修復モジュール310は、エンドユーザが、電子資格証明に関する入力ロケーション、電子資格証明をサブミットするためのアクション、データのロケーション、またはそれに類するものを識別することを可能にするGUI、コマンドラインインターフェース(CLI)、API、および/または別のインターフェースを提供してよい。アクセス修復モジュール310は、一実施形態において、ユーザのハードウェアデバイス102上でユーザにインターフェースを提供する。
いくつかの実施形態において、例えば、アクセス修復モジュール310は、ユーザのハードウェアデバイス102の電子ディスプレイ画面上でサードパーティサービスプロバイダ108のウェブサイトの1つまたは複数のページの上にインターフェースを重ね合わせてよい。アクセス修復モジュール310は、複数のユーザがサードパーティサービスプロバイダ108のサーバに対すアクセスに関する修復および/または更新を定義することを可能にする(例えば、ネットワーク106を介して分散型の様態および/もしくは分散化された様態で、異なるハードウェアデバイス102またはそれに類するものから)、1つまたは複数のインターフェース(例えば、GUI、CLI、API、オーバーレイ、またはそれに類するもの)を複数のユーザに提供してよい。
アクセス修復モジュール310は、いくつかの実施形態において、ユーザが、確認すること、または変更する/訂正することをしてよい(例えば、基本インターフェース、標準インターフェース、初心者ユーザインターフェース、またはそれに類するものにおいて)、ユーザのための1つもしくは複数の示唆504および/または推奨504を決定すること、および/または表示することをしてよい。例えば、アクセス修復モジュール310は、ユーザがユーザ名を入力する示唆されるロケーション、ユーザがパスワードを入力する示唆されるロケーション、示唆される資格証明サブミットアクション、ユーザに関連付けられたデータの示唆されるロケーションを有する1つまたは複数のインターフェース要素、および/またはユーザが、サードパーティサービスプロバイダ108のウェブサイト内の1つまたは複数のロケーションをグラフィックスで識別することを可能にする他の1つまたは複数のインターフェース要素を表示してよい。
アクセス修復モジュール310は、いくつかの実施形態において、ユーザの電子資格証明に関する入力ロケーション、ユーザの電子資格証明をサブミットするためのアクション、ユーザに関連付けられたデータのロケーション、またはそれに類するものの推定および/または予測を決定すべく、サーバ108上の1つもしくは複数のページおよび/または他のロケーション(例えば、1つもしくは複数のウェブサイト、ウェブアプリ、またはそれに類するもの)を処理する。一実施形態において、アクセス修復モジュール310は、1つもしくは複数のロケーションおよび/またはアクションを推定してよい(例えば、ウェブサイトの1つもしくは複数のページをスキャンすること、および/もしくは構文解析することによって、ウェブサイトの1つもしくは複数のページにアクセスする他のユーザからの入力に基づいて、ウェブサイトの1つもしくは複数のページに対するユーザの前の対話に基づいて、ウェブサイトの機械学習および/または人工知能解析を使用して行われた予測、ウェブサイトの1つもしくは複数のページに対する履歴上の変更の、および/もしくは類似した1つもしくは複数のウェブサイトの統計解析に基づいて、またはそれに類することにより)。アクセス修復モジュール310は、ユーザが、インターフェースを使用して推定および/または予測が正しいか否かを確認してよいように、ユーザの電子資格証明に関する入力ロケーション、ユーザに関連付けられたデータのロケーション、またはそれに類するものの推定および/または予測をインターフェースにおいてユーザに表示してよい。
アクセス修復モジュール310は、ロケーションに対する矢印もしくは他のポインタ、ロケーションのリンクもしくは他の識別子、ロケーションの周囲のボックスもしくは他の強調表示、テキストを太字、イタリック体、および/または下線付きにするようにロケーションに関するテキストラベル付けを変更することによって、またはそれに類するものを用いて、推定される1つまたは複数のロケーションおよび/またはアクションを示してよい。ユーザは、いくつかの実施形態において、アクセス修復モジュール310によって示唆されるロケーションを確認する、または変更する/訂正するようにクリックすること、選択すること、またはそれ以外で識別することをしてよい。例えば、ユーザが、ロケーションおよび/またはアクションに関連付けられたインターフェース要素をクリックしてよく、もしくはそれ以外で選択してよく、そのロケーションをクリックしてよく、もしくはそれ以外で選択してよく、かつ/またはそのアクションを実行してよく、そのロケーションおよび/またはアクションを、アクセス修復モジュール310が記録してよい(例えば、そのロケーションおよび/またはアクションを識別するテキストフィールドを自動的に入力し、そのアクションが、ユーザなしに、異なるユーザに関して、またはそれに類することで自動的に繰り返されることを可能にするマクロを記録して)。
いくつかの実施形態において、標準ユーザインターフェース、基本ユーザインターフェース、または初心者ユーザインターフェースの代わりに、またはそれに加えて、アクセス修復モジュール310は、ウェブサイトのソースコード、および/またはウェブサイトの他の詳細を有する高度なインターフェースを、経験のあるユーザ、またはそれに類するもののために提供してよい。例えば、一実施形態において、高度なアクセス修復インターフェースが、1名または複数名の高度なユーザが、ウェブサイト自体において目に見えなくてよく、かつ/または直ちに明白でなくてよい、ウェブサイトのソースコード内で1つまたは複数のロケーションおよび/またはアクションを識別することを可能にしてよい。いくつかの実施形態において、アクセス修復モジュール310は、ユーザが、標準ユーザインターフェースもしくは標準ユーザビューと高度なユーザインターフェースもしくは高度なユーザビューとの間で選択すること、および/または切り換えることを可能にするユーザインターフェース要素を提供してよい。
一実施形態において、階層モジュール312が、直接アクセスモジュール307に、ユーザの電子資格証明を使用してサードパーティサービスプロバイダ108のサーバ108にアクセスするため、ユーザに関連付けられたデータをダウンロードするため、またはそれに類することのための命令の異なる複数のセットの順序付けられたリストを提供する。命令の異なる各セットは、いくつかの実施形態において、ユーザの電子資格証明を入力するためのロケーション、ユーザの電子資格証明をサブミットするための命令、ユーザに関連付けられたデータの1つもしくは複数のロケーション、またはそれに類するものを備える。
階層モジュール312は、一実施形態において、バックエンドサーバ110(例えば、バックエンドサーバ110のバックエンド企業トランザクションモジュール104b)から、ピアツーピア様態で別のユーザハードウェアデバイス102(例えば、ユーザハードウェアデバイス102の企業トランザクションモジュール104a)から、試験モジュール318から、またはそれに類するものから命令の1つまたは複数のセットを受信してよい。階層モジュール312は、いくつかの実施形態において、異なるユーザハードウェアデバイス102および/またはユーザによる命令の異なるセットの使用の成功および/または不成功の履歴、またはそれに類するものに基づいて、順序付けられたリスト(例えば、グローバル階層順序)に既に入っている命令の異なる複数のセットを受信してよい。一実施形態において、階層モジュール312は、ユーザによる命令の異なるセットの使用の成功および/または不成功の履歴(例えば、ユーザの1つまたは複数のハードウェアデバイス102からの)に基づいて、単一のユーザに関する命令の異なる複数のセットのために階層を決定すること、および/または命令の異なる複数のセットから順序付けられたリスト(例えば、カスタムの階層または個別化された階層)を作成することをしてよい。
直接アクセスモジュール104は、一実施形態において、命令のセットのうちの1つが成功し、直接アクセスモジュール104が、サードパーティサービスプロバイダ108からのデータにアクセスすること、および/またはそのようなデータをダウンロードすることができるまで、リストの順序で、サードパーティサービスプロバイダ108のサーバ108にアクセスするための命令の複数のセットの順序付けられたリストを1つずつ試みてよい。階層モジュール312は、一実施形態において、命令の最も新しく使用されることに成功したセットを一番上に(例えば、試みるべき最初のセットとして)配置してよい。例えば、ユーザのハードウェアデバイス102のための階層モジュール312が、直接アクセスモジュール307が、命令のそのセットを使用してサードパーティサービスプロバイダ108からのデータにアクセスすること、および/またはそのようなデータをダウンロードすることに成功したことに応答して、サードパーティサービスプロバイダ108にアクセスするための命令のセットを、リストの一番上に配置してよい(例えば、時とともにリストの順序を調整して)。いくつかの実施形態において、階層モジュール312は、第1の順序(例えば、グローバル順序)におけるサードパーティサービスプロバイダ108のサーバ108にアクセスするための命令の異なる複数のセットの順序付けられたリストを受信してよく、単一のユーザの使用/ハードウェアデバイス102の使用に基づいて、時とともに命令のそれらの異なるセットを動的に調整すること、および/または並べ替えることを行ってよい(例えば、命令のセットを、ユーザ/ハードウェアデバイス102に関して命令のそのセットを使用するアクセスが成功した場合、リストにおいて上に移動し、命令のセットを、ユーザ/ハードウェアデバイス102に関して命令のそのセットを使用するアクセスが不成功であった場合、リストにおいて下に移動すること、またはそれに類することを行って)。
階層モジュール312は、いくつかの実施形態において、命令の1つもしくは複数のセット、命令の複数のセットの順序付けられたリスト、またはそれに類するものを、データネットワーク106を介して別のユーザのハードウェアデバイス102の階層モジュール312と(例えば、その別のユーザのハードウェアデバイス102に対して、ピアツーピア様態で直接に、バックエンドサーバ110のバックエンド企業トランザクションモジュール104b経由で間接的に、またはそれに類するように)共有するように構成されてよい。命令の異なるセットは、様々な実施形態において、異なる口座タイプ、異なる口座設定、異なる発信元システム(例えば、企業買収もしくはそれに類することに起因して、同一のサードパーティサービスプロバイダ108の異なるユーザが、異なる1つもしくは複数の設定、異なるアクセス方法、またはそれに類するものを有することが可能である)、システム変更もしくはシステムアップグレード、および/または同一のサードパーティサービスプロバイダ108の異なるユーザに関する口座、サービス、またはそれに類するものにおける別の違いに起因して、異なるユーザに関して成功であることも、不成功であることも可能である。
一実施形態において、インターフェースモジュール313が、直接アクセスモジュール307によってダウンロードされたユーザのデータを、ユーザのハードウェアデバイス102(例えば、ダウンロードされたデータに関連付けられたユーザの、異なるユーザの)から、ダウンロードされたデータに関連付けられたユーザのハードウェアデバイス102(例えば、ユーザの1つのハードウェアデバイス102から、同一のユーザの別のハードウェアデバイス102に、異なるユーザのハードウェアデバイス102によってデータがダウンロードされたことに応答して)、データがそこからダウンロードされたサードパーティサービスプロバイダ108とは系列関係にない(例えば、そのサードパーティサービスプロバイダ108によって所有されない、運用されない、コントロールされない、またはそれに類するような)遠隔サーバ110もしくは他の遠隔デバイス102、またはそれに類するものなどの別のエンティティに提供する。例えば、インターフェースモジュール313は、ユーザのダウンロードされたデータおよび/または集約されたデータを、ユーザのハードウェアデバイス102に、バックエンド企業トランザクションモジュール104bに、バックエンドサーバ110に、異なるサードパーティサービスプロバイダ108に、ユーザの異なる/第2のハードウェアデバイス102に、またはそれに類するものに提供するAPIまたは他のインターフェースを提供してよい。
いくつかの実施形態において、いずれのハードウェアデバイス102、110が、ユーザに関連付けられたデータをダウンロードしたかがユーザにトランスペアレントであること、および/または実質的にトランスペアレント(例えば、明白でない)であることが可能である。例えば、インターフェースモジュール313が、ユーザに関連付けられたダウンロードされたデータを、ユーザの1つのハードウェアデバイス102からユーザの別のハードウェアデバイス102に、ユーザのハードウェアデバイス102からバックエンドサーバ110(例えば、そこから、ユーザが、ウェブブラウザ、アプリケーション、またはそれに類するものを使用して、そのデータにアクセスしてよい)に、バックエンドサーバ110からユーザのハードウェアデバイス102に、またはそれに類するように提供してよく、ユーザが、データがダウンロードされたロケーションとは異なるロケーションからデータにアクセスすることを可能にする。
いくつかの実施形態において、インターフェースモジュール313が、ユーザのハードウェアデバイス102上でグラフィカルユーザインターフェース(GUI)を提供し、そのGUIを通じてユーザにそのユーザに関連付けられたダウンロードされたデータを提供する(例えば、ユーザがそのデータを直接に閲覧することを可能にし、そのデータに基づいて、ユーザに1つもしくは複数の通知および/または推奨を提供し、そのデータに基づいて、ユーザに1つまたは複数のテーブルもしくはチャートを提供し、そのデータと関係する1つもしくは複数の統計の概要を提供し、またはそれに類することを行って)。インターフェースモジュール313は、様々な実施形態において、データがダウンロードされたのと同一のハードウェアデバイス102から、データがダウンロードされたハードウェアデバイス102、110とは異なるハードウェアデバイス102上で、またはそれに類するようにGUIをユーザに提供してよい。
例えば、ユーザに関連付けられたデータが写真を備える、一実施形態において、インターフェースモジュール313が、ユーザが、ユーザのダウンロードされた写真および/または集約された写真を閲覧すること、および/またはそれ以外でそのような写真にアクセスすることをしてよい、写真管理インターフェース、写真編集インターフェース、またはそれに類するものを提供してよい。ユーザに関連付けられたデータがユーザの金融トランザクション履歴(例えば、銀行、信用組合、ローン会社、またはそれに類するものなどの1つまたは複数の金融機関108からダウンロードされた購入トランザクションおよび/または他の金融トランザクション)を備える、さらなる実施形態において、インターフェースモジュール313は、ユーザが、ユーザのダウンロードされた金融トランザクション履歴および/もしくは集約された金融トランザクション履歴、ならびに/またはそれらの履歴に基づくアラートもしくは推奨を閲覧してよい、企業金融管理インターフェースを、トランザクションのリスト、1つもしくは複数の予算、1つもしくは複数の金融目標、負債管理インターフェース、純資産インターフェース、および/または別の企業金融管理インターフェースとともに提供してよい。ユーザに関連付けられたデータがソーシャルメディア書込みを備える、別の実施形態において、インターフェースモジュール313は、ユーザが閲覧するソーシャルメディア書込みのストリーム、フィード、および/またはウォール(例えば、複数のソーシャルネットワーク108から、ユーザの様々な連絡先もしくは友人から、またはそれに類するものからのダウンロードされたソーシャルメディア書込みおよび/または集約されたソーシャルメディア書込み)を備えるGUIを提供してよい。
インターフェースモジュール313は、いくつかの実施形態において、ユーザが、いずれのデバイス102、いずれのユーザ、いずれのサードパーティサービスプロバイダ110、またはそれに類するものがいずれのデータにアクセスしてよいかを定義することを可能にする、1つまたは複数のアクセスコントロールをユーザに提供してよい。例えば、インターフェースモジュール313は、或るモバイルアプリケーション、サードパーティサービスのための或るAPI、或るプラグインもしくは拡張、或るユーザ、或るハードウェアデバイス102、および/または他の1つもしくは複数のエンティティが、1つもしくは複数のサードパーティサービスプロバイダ108からのユーザのためにダウンロードされたデータにアクセスするのをユーザが許すこと、および/または制限することを行う(例えば、サードパーティサービスプロバイダ108もしくは他のデータソースによる、データタイプによる、アクセスを要求するエンティティによる、および/または他の粒度におけるアクセスコントロールを用いて)インターフェースを提供してよい。このようにして、企業トランザクションモジュール104は、いくつかの実施形態において、他の1つもしくは複数のデバイス102および/またはサービスが、ユーザの許可を得て、アクセスすること、および使用することが可能な集約されたデータのローカルリポジトリを備えてよい。
一実施形態において、ルートモジュール314が、直接アクセスモジュール307が、サードパーティサービスプロバイダ108のサーバ108から、ユーザに関連付けられたデータをダウンロードするユーザのハードウェアデバイス102が利用可能であるかどうかを決定する。ルートモジュール314は、いくつかの実施形態において、ルートモジュール314が、ユーザのハードウェアデバイス102が利用できないと決定することに応答して、ユーザに関連付けられたデータを、サーバ108から遠隔バックエンドサーバ110にダウンロードすべく、ユーザの電子資格証明を使用して、遠隔バックエンドサーバ110から、サードパーティサービスプロバイダ108のサーバ108にアクセスしてよい。ルートモジュール314は、一実施形態において、遠隔バックエンドサーバ110にダウンロードされた、ユーザに関連付けられたデータに基づいて、ユーザのハードウェアデバイス102上でユーザに1つまたは複数のアラート(例えば、サードパーティサービスプロバイダ108からのダウンロードされたデータ、サードパーティサービスプロバイダ108からのデータに基づいて決定された推奨もしくは示唆、サードパーティサービスプロバイダ108からのデータにて検出された事象もしくは他のトリガに基づく通知もしくは他のアラート、またはそれに類するもの)を提供する。
いくつかの実施形態において、ルートモジュール314は、単一のユーザおよび/または口座に関連付けられた複数のハードウェアデバイス102のリストを維持し、かつ/または記憶する。ユーザおよび/または口座に関連付けられた1つのハードウェアデバイス102が利用できない(例えば、電源が切られている、航空機モードになっている、データネットワーク106に接続されていない、またはそれに類すること)と決定することに応答して、ルートモジュール314は、ユーザおよび/または口座の、異なる利用可能なハードウェアデバイス102から、サードパーティサービスプロバイダ108のサーバ108にアクセスしてよく、異なる、利用可能なハードウェアデバイス102上で1つもしくは複数の通知または他のアラートを提供すること、またはそれに類することを行ってよい。ルートモジュール314は、様々な実施形態において、ユーザの1つもしくは複数のハードウェアデバイス102、異なるユーザの1つもしくは複数のハードウェアデバイス102、1つもしくは複数のバックエンドサーバ110、および/または別のハードウェアデバイスなどの複数のハードウェアデバイスの間で、サードパーティサービスプロバイダ108からユーザのためのデータをダウンロードすることを、セキュリティ保護された様態で動的にルーティングしてよい。
ルートモジュール314は、一実施形態において、サードパーティサービスプロバイダ108から同一のユーザのためにデータをダウンロードすることに関して、複数のハードウェアデバイス102、110(例えば、同一のユーザの、異なるユーザの、またはそれに類する)の間で周期的に交番させること、または輪番させることをしてよい。例えば、データがダウンロードされるデバイス102、110を輪番させること、および/または交番させることは、ダウンロードすることが、詐欺的である、または不適切であると誤って解釈される可能性を低くすることが可能である。別の実施形態において、ルートモジュール314は、信頼されるデバイス、またはそれに類するものとしてサードパーティサービスプロバイダ108によって許可されること、および/または識別されることが可能な、同一のデバイス102、110(例えば、ユーザの一次ハードウェアデバイス102、バックエンドサーバ110、またはそれに類するもの)、からデータをダウンロードしてよい。
一実施形態において、頻度モジュール316は、直接アクセスモジュール307がサードパーティサービスプロバイダ108のサーバ108にアクセスする頻度を設定する。頻度モジュール316は、いくつかの実施形態において、遠隔バックエンドサーバ110(例えば、遠隔バックエンドサーバ110上で実行される頻度モジュール316)が、異なるユーザおよび/または異なるハードウェアデバイス102のための複数の直接アクセスモジュール307に関して頻度を決定するように、アクセスされているサードパーティサービスプロバイダ108と系列関係にないことが可能な遠隔バックエンドサーバ110からの入力に基づいて、頻度を決定する。例えば、頻度モジュール316は、単一のユーザおよび/またはハードウェアデバイス102が、或る時間周期内の許される閾値回数(例えば、10分ごとに1回、半時間ごとに1回、1時間ごとに1回、1日に2回、1日に3回、1日に4回、またはそれに類する回数)を超えて同一のサードパーティサービスプロバイダ108にアクセスすることを制限してよい。頻度モジュール316は、いくつかの実施形態において、サードパーティサービスプロバイダ108によるサービスの不慮の拒否、またはそれに類することを防止するようにアクセス頻度を制限する。
頻度モジュール316は、いくつかの実施形態において、ユーザおよび/またはハードウェアデバイス102がサードパーティサービスプロバイダ108にアクセスしてよい頻度を時とともに動的に調整してよい。例えば、頻度モジュール316は、異なるサードパーティサービスプロバイダ108のそれぞれに関する合計のアクセス帯域幅および/またはダウンロード帯域幅に上限を設けるべく、またはそのような帯域幅を制限すべく(例えば、いずれの単一のサードパーティサービスプロバイダ108も圧倒すること、またはそれに類することがないように)、複数のユーザ(例えば、すべてのユーザ、利用可能なユーザ、アクティブなユーザ、またはそれに類するもの)によるアクセスおよび/またはダウンロードを監視してよい。このようにして、一実施形態において、ユーザおよび/またはハードウェアデバイス102は、データにアクセスしている、かつ/またはデータをダウンロードしている他のユーザおよび/またはハードウェアデバイス102がより少ないとき(例えば、低いピーク時)、より高い頻度でデータにアクセスすること、および/またはデータをダウンロードすることをしてよいが、データにアクセスしている、かつ/またはデータをダウンロードしている他のユーザおよび/またはハードウェアデバイス102がより多いとき(例えば、高いピーク時)、より低い上限もしくはより低いアクセス頻度に制限されてよい。
さらなる実施形態において、頻度モジュール316は、ユーザからの入力に基づいて頻度を決定し、ユーザが、他のユーザおよび/またはバックエンドサーバ110とは独立にアクセス頻度を設定することを可能にする。頻度モジュール316は、ユーザが、1つまたは複数のハードウェアデバイス102を使用して、1つまたは複数のサードパーティサービスプロバイダ108からデータをダウンロードするためのアクセス頻度を設定すること、および/または調整することを可能にする(例えば、ユーザが、異なるサードパーティサービスプロバイダ108、そのユーザの異なるハードウェアデバイス102、またはそれに類するものに関して異なるアクセス頻度を設定することを可能にする異なる設定を提供する)ユーザインターフェース(例えば、GUI、CLI、API、またはそれに類するもの)を提供してよい。
一実施形態において、試験モジュール318が、ユーザから受信された1つまたは複数のロケーションおよび/または命令が正確である(例えば、サードパーティサービスプロバイダ108のサーバからのデータにアクセスするのに使用可能)か否かを検証すべく、アクセス修復モジュール310と協働する。試験モジュール318は、いくつかの実施形態において、異なるユーザの電子資格証明、またはそれに類するものを使用して、アクセス修復モジュール310が単一のユーザから受信した識別に基づいて、異なる複数のユーザ(例えば、サンプルグループまたは試験セット)のためにサードパーティサービスプロバイダ108のサーバ108にアクセスしようと試みる。
試験モジュール318は、いくつかの実施形態において、異なるユーザ(例えば、サンプルグループまたは試験セット)に関連付けられたデータが、単一のユーザからの識別を使用してアクセス可能であるかどうかを決定する。試験モジュール318は、アクセス修復モジュール310が異なるユーザから受信した識別を使用して、サードパーティサービスプロバイダ108からのデータに繰り返しアクセスしようと試みてよい(例えば、異なるハードウェアデバイス102上で、データネットワーク106を介して単一のハードウェアデバイス102上の試験モジュール318に送信される、データネットワーク106を介して異なるハードウェアデバイス102上の複数の試験モジュール318に送信される、中央バックエンドサーバ110上の試験モジュール318に送信される、またはそれに類するように)。
試験モジュール318は、一実施形態において、単一のユーザからの識別を使用してデータがアクセス可能である異なるユーザ(例えば、サンプルグループまたは試験セット)の量が閾値を満足させることに応答して、サードパーティサービスプロバイダ108のサーバ108にアクセスするために、ユーザからの1つまたは複数の識別を、直接アクセスモジュール307の他のインスタンスに提供する(例えば、他の試験モジュール318)。例えば、単一のユーザからの識別が、事前定義された数の他の試験ユーザ(例えば、2名のユーザ、10名のユーザ、100名のユーザ、1000名のユーザ、試験ユーザの50%、試験ユーザの75%、および/または別の事前定義された閾値数の試験ユーザ)がサードパーティサービスプロバイダ108からのそれらのユーザのデータにアクセスするのを可能にすることに成功した場合、試験モジュール318は、その識別に基づく命令をさらなるユーザ(例えば、すべてのユーザ、または実質的にすべてのユーザ、またはそれに類するもの)に提供してよい。
いくつかの実施形態において、試験モジュール318が、単一のユーザからの識別を使用して、試験モジュール318が、サードパーティサービスプロバイダ108からのユーザのデータにアクセスするための命令を提供するユーザの数を備える試験サイズを増加させることに成功することが可能である(例えば、1名または複数名の試験ユーザから開始して、2名以上、3名以上、4名以上、5名以上、10名以上、20名以上、30名以上、40名以上、50名以上、100名以上、500名以上、1,000名以上、5,000名以上、10,000名以上、100,000名以上、1,000,000名以上、および/または増加することに成功する他の数の試験ユーザに増加させて)。試験モジュール318は、一実施形態において、階層モジュール312に関して後段でより詳細に説明されるとおり、単一のユーザからの識別に基づく、サードパーティサービスプロバイダ108のサーバ108にアクセスするための命令の異なる複数のセットの順序付けられたリストからの命令を含む。
試験モジュール318は、いくつかの実施形態において、1名または複数名のユーザからの識別を、その1つまたは複数のユーザに関する1つまたは複数の信頼要因(例えば、得点またはそれに類するもの)に基づいて優先順位付けするように構成される。信頼要因は、一実施形態において、ユーザの識別が正しい尤度を示す得点または他のメタデータを備えてよい。例えば、様々な実施形態において、信頼要因は、ユーザの前の識別の履歴(例えば、正しい、または誤った)、1つまたは複数の企業トランザクションモジュール104のプロバイダに対するユーザの系列関係(例えば、作成者、ベンダ、所有者、販売業者、再販業者、製造業者、バックエンドサーバ110、またはそれに類するもの)、他のユーザからの肯定的/否定的な標示(例えば、投票、いいね、使用、フィードバック、星、裏書、またはそれに類するもの)、および/またはユーザの識別が正しい可能性が高いか否かの他の標示のうちの1つまたは複数を含んでよく、かつ/またはそのような1つまたは複数に基づいてよい。試験モジュール318は、ユーザに関連付けられた1つまたは複数の信頼要因に基づいて、ユーザの識別を提供すべき他のユーザの数を決定してよい(例えば、より高い信頼要因に応答して、ユーザの識別が他のユーザに提供されるレートを加速させて、より低い信頼要因に応答して、ユーザの識別が他のユーザに提供されるレートを低下させて、またはそれに類することを行って)。
試験モジュール318は、管理者、仲裁者ユーザ、またはそれに類するものが、識別を除去すること、識別を調整すること、および/もしくはオーバーライドすること、ユーザに関する信頼要因を調整すること、および/もしくはオーバーライドすること、ユーザが識別を提供することを禁止すること、および/またはそれ以外でユーザもしくはユーザの識別をオーバーライドすることを可能にするオーバーライドインターフェースを提供してよい。様々な実施形態において、試験モジュール318は、オーバーライドインターフェースをGUI、API、CLI、またはそれに類するものとして管理者および/または仲裁者に提供してよい。
いくつかの実施形態において、試験モジュール318は、1つまたは複数の企業トランザクションモジュール104およびそれらのモジュール104のアグリゲーションサービスが、試験モジュール318が、最も効果的なソリューション、またはそれに類するもの(例えば、1名または複数名のユーザからの標示に基づいて命令のセット)を試験し、使用するので、自己回復型、自己試験型、および/または自己増分展開型となることをもたらす。
一実施形態において、規則セットモジュール320が、カテゴリ分けモジュール204が、規則セットモジュール320からの決定された規則セットを使用して、後続の金融トランザクションに関する会計カテゴリを決定することが可能であるように、カテゴリ分けモジュール204によって決定された会計カテゴリに基づいて、金融トランザクションをカテゴリに分けるための規則セットを決定すること、および/または使用することを行うように構成される。例えば、規則セットモジュール320が、メタデータモジュール202からのメタデータ記録の要素をカテゴリ分けモジュール204の会計カテゴリにマッピングする規則および/または他の命令もしくは標示を備える、カテゴリ分けモジュール204のための規則セットを決定してよい。規則セットは、メタデータ記録の1つまたは複数の要素を受信し、会計カテゴリを出力する索引、マッピング構造、関数、ツリー、またはそれに類するものを含んでよい。
規則セットモジュール320は、メタデータ記録から会計カテゴリに対するマッピングを、様々な実施形態において、ユーザ入力(例えば、ユーザが、金融トランザクションに関する会計カテゴリを定義すること)、金融トランザクションの識別された関係者に関する公開の記録(例えば、ビジネスエンティティに関する状態記録、ビジネスエンティティに関するウェブサイト、またはそれに類するもの)、いずれの被雇用者もしくは他のユーザがその金融トランザクションを行ったか、複数のビジネスエンティティもしくは他のユーザに関する金融トランザクションの機械学習および/もしくは他の人工知能解析、金融トランザクションの識別された関係者に関する1つもしくは複数のウェブサイトの機械学習および/もしくは他の人工知能解析、金融トランザクションに関して決定されたアイテムレベルのデータ(例えば、アイテムレベルモジュール330に関して後段で説明される)、またはそれに類するものに基づけてよい。
一部の実施形態において、規則セットモジュール320は、金融トランザクションの業者もしくは他の関係者に基づいて(例えば、同一の業者もしくは他の関係者を相手にした各金融トランザクションに関して類似したマッピングを使用して)、複数のユーザ(例えば、複数のビジネスエンティティ)に関するマッピングを標準化してよい。一実施形態において、規則セットモジュール320は、ユーザが、メタデータ記録の異なる要素(例えば、トランザクション金額、トランザクション日付、支出カテゴリ、エンティティ識別子、金融トランザクションが繰り返し生じるトランザクションおよび/もしくはサブスクリプションであるかどうかの分類、口座識別子、トランザクションタイプ、および/または金融トランザクションに関する他のメタデータ)の動的に選択可能な組合せから動的に選択可能な会計カテゴリに対するマッピングをカスタマイズすることを可能にするユーザインターフェースを提供してよく、複雑な会計のための柔軟性のあるカスタムのマッピングオプションを提供する。
一実施形態において、オーバーライドモジュール322が、ユーザ(例えば、ビジネスエンティティに関連付けられたユーザ、またはそれに類するもの)が、1つまたは複数の金融トランザクションに関する会計カテゴリをオーバーライドする(例えば、1つまたは複数の金融トランザクションに関して、カテゴリ分けモジュール204がさもなければ決定するのとは異なる会計カテゴリを選択する)インターフェースを提供するように構成されてよい。オーバーライドモジュール322が、一部の実施形態において、オーバーライドされたトランザクションの後に続く、類似したメタデータ記録(例えば、オーバーライドのためにユーザによって選択されたメタデータ記録の要素、またはそれに類するものなどの、メタデータ記録の少なくとも事前定義された部分とマッチングするメタデータ記録)を有する1つまたは複数の金融トランザクションに関してユーザからのオーバーライドを執行してよい。いくつかの実施形態において、カテゴリ分けモジュール204が、異なるユーザ/ビジネスエンティティの1つまたは複数の金融トランザクションに関する会計カテゴリを決定するために、1名のユーザ/ビジネスエンティティからの1つまたは複数のオーバーライドを使用してよい(例えば、少なくとも閾値数のユーザ/ビジネスエンティティが同一のオーバーライドを選択したこと、またはそれに類することに応答して)。
一実施形態において、予測モジュール324が、ビジネスエンティティに関する将来の事象を予測するために(例えば、オファモジュール206が、予測された事象、またはそれに類するものに基づいて、金融商品を選択するために)ビジネスエンティティの金融トランザクション、メタデータ記録、および/または会計カテゴリを監視するように構成されてよい。例えば、予測モジュール324が、資金の将来の不足、マイナス口座残高、ローンまたは他の口座に関する財務制限事項の将来の不履行、資金の将来の超過、またはそれに類するものなどの事象を予測すべく、口座買掛金および口座売掛金、口座残高、利益および損失、またはそれに類するものを、履歴トランザクションデータに基づいて、監視してよい。予測モジュール324が、様々な実施形態において、予測解析、機械学習もしくは他の人工知能、またはそれに類するものを使用して、トランザクションデータ、メタデータ記録、および/または会計カテゴリを処理することによって事象を予測してよい。
一実施形態において、出力モジュール326が、金融トランザクションデータ、メタデータ記録、および/または会計カテゴリに基づいて、ユーザに対して、1つまたは複数の出力を決定すること、および/または提供することを行うように構成される(例えば、出力が通信モジュール208によって送信され、ディスプレイモジュール210が表示し、それに類することが行われるように)。例えば、様々な実施形態において、出力モジュール326が、金融機関の金融商品に関するオファ(例えば、オファモジュール206と協働して)、総勘定元帳、損益計算書、行政府税務書類の要素、リスク解析、信用格付け、もしくは信用力の他の指標、またはそれに類するものを決定すべく、金融トランザクションデータ、メタデータ記録、および/または会計カテゴリを処理してよい。出力モジュール326が、決定された出力を、通信モジュール208に(例えば、別の企業トランザクションモジュール104に、ハードウェアデバイス102に、サードパーティサーバ108に、バックエンドサーバ110に、またはそれに類するものに送信するように)に提供してよい。例えば、出力モジュール326が、行政府ハードウェアコンピュータデバイス108のアプリケーションプログラミングインターフェース(API)、またはそれに類するものを使用して、1つまたは複数の行政府税務書類を行政府ハードウェアコンピュータデバイス108に電子的にサブミットしてよい(例えば、通信モジュール208またはそれに類するものを使用して)。
一実施形態において、承認モジュール328が、ハードウェアデバイス102の電子ディスプレイ上でユーザに、支払いの承認、オファの受け入れ、行政府税務書類をサブミットする許可、またはそれに類するものを促す指示を出すように構成される。例えば、一部の実施形態において、承認モジュール328が、カテゴリ分けモジュール204(例えば、ハードウェアコンピュータサーバ110上に配置された)が、口座買掛金金融トランザクションに関する口座買掛金会計カテゴリを決定したことに応答して、ユーザに口座買掛金金融トランザクションの承認を促す指示を出してよい(例えば、支払いを承認するユーザからの入力、またはそれに類するものに応答して、企業トランザクションモジュール104が、その支払いを自動的に行ってよいように)。
承認モジュール328は、プッシュ通知、グラフィカルユーザインターフェース(例えば、モバイルアプリケーションまたは他のコンピュータ実行可能コードの)、電子メール、テキストメッセージ、またはそれに類するものを使用して、ハードウェアデバイス102の電子ディスプレイ上でユーザに促す指示を出すようにディスプレイモジュール210と協働してよい。
一実施形態において、アイテムレベルモジュール330が、金融トランザクションの関係者であるサードパーティ(例えば、ベンダ、業者、サービスプロバイダ、またはそれに類するもの)のサードパーティハードウェアサーバ108から、金融トランザクションに関するアイテムレベルデータをダウンロードすることによって、同一の金融トランザクションからの異なるアイテムに関する異なる会計カテゴリを決定すべくカテゴリ分けモジュール204と協調するように構成されてよい。アイテムレベルモジュール330が、アイテムレベルデータをダウンロードすべく、サードパーティに対するビジネスエンティティまたは他のユーザの口座にログインするようにビジネスエンティティまたは他のユーザに関する電子資格証明を使用してよい。
一実施形態において、アイテムレベルモジュール330が、1つまたは複数のサードパーティサービスプロバイダ108に関するユーザの電子資格証明(例えば、ユーザ名およびパスワード、指紋スキャン、網膜スキャン、デジタル証明書、個人識別番号(PIN)、チャレンジ応答、セキュリティトークン、ハードウェアトークン、ソフトウェアトークン、DNAシーケンス、署名、顔認識、音声パターン認識、生体電気信号、二要素認証資格証明、またはそれに類するもの)を決定すること、および/または受信することを行うように構成される。アイテムレベルモジュール330は、いくつかの実施形態において、ユーザの購入履歴、ユーザの写真、ユーザのソーシャルメディア書込み、ユーザの医療記録、ユーザの金融トランザクション記録もしくは他の金融データ、および/またはユーザに関連付けられ、かつ/もしくはユーザによって所有されるが、サードパーティサービスプロバイダ108のサーバ108によって記憶される(例えば、ユーザによって所有されること、維持されること、および/または制御されることのないハードウェアによって記憶される)他のデータなどの、ユーザに関連付けられたデータをサーバ108からダウンロードすべく、ユーザの電子資格証明を使用してサードパーティサービスプロバイダ108のサーバ108にアクセスする。アイテムレベルモジュール330は、様々な実施形態において、ダウンロードされたデータを、ユーザにローカルで提供してよく(例えば、ハードウェアデバイス102の電子ディスプレイ上でそのデータを表示して)、ダウンロードされたデータを、ユーザのハードウェアデバイス102から、サードパーティサービスプロバイダ108と系列関係になくてよい遠隔サーバ110(例えば、バックエンドアイテムレベルモジュール330)に提供してよく、ダウンロードされたデータに基づいて、1つもしくは複数のアラート、メッセージ、広告、または他の通信をユーザに提供してよく(例えば、ハードウェアデバイス102上で)、あるいはそれに類することを行ってよい。
アイテムレベルモジュール330は、一実施形態において、1つまたは複数のサードパーティサービスプロバイダ110からのアイテムレベルデータをダウンロードすること、および/または集約することをする。いくつかの実施形態において、アイテムレベルデータは、より大きいアイテムの一部を形成する1つまたは複数の下位アイテムの識別を備える。例えば、アイテムレベルデータは、ユーザが、より大きい、単一のトランザクション内で購入した1つまたは複数の個別のアイテム(例えば、商品および/またはサービス)に関する識別子を備えてよい。1つまたは複数の個別のアイテムに関するアイテムレベル識別子は、アイテムの名前、ストックキーピングユニット(SKU)識別子、統一商品コード(UPC)、国際商品番号(EAN)、国際取引商品番号(GTIN)、またはそれに類するもののうちの1つまたは複数を含んでよい。
アイテムレベルデータは、いくつかの実施形態において、一部のサードパーティサービスプロバイダ108からは利用できない可能性がある。例えば、金融機関108が、アイテムレベルモジュール330に、各トランザクションに関する日付、金額、ロケーションもしくはベンダ、またはそれに類するもののうちの1つまたは複数を含むが、トランザクション内のアイテムに関するアイテムレベル情報のまったくない、1つまたは複数のトランザクションのリストを提供することが可能である。アイテムレベルデータをダウンロードすること、および/または集約することを行うために、一実施形態において、アイテムレベルモジュール330は、トランザクション内のアイテムに関するアイテムレベル情報にアクセスし、そのような情報をダウンロードすべく(例えば、ユーザの購入履歴、トランザクション履歴、注文履歴、口座履歴、閲覧履歴もしくはリスニング履歴、またはそれに類するものにアクセスすることによって)、オンラインショッピングウェブサイト、オーディオウェブサイト、ビデオウェブサイト、および/もしくは他のデジタルメディアウェブサイト、小売店のためのロイヤルティウェブサイトおよび/もしくは報償ウェブサイト、またはそれに類するものなどの、識別されたトランザクションに関連付けられたサードパーティサービスプロバイダ108にアクセスするようにユーザの電子資格証明を使用してよい。
例えば、アイテムレベルモジュール330は、Apple(R) iTunes(R)、Google(R) Play(R)、Netflix(R)、Hulu(R)、Amazon(R)、またはそれに類するものなどのデジタルメディアプロバイダのウェブサイトから購入され、かつ/もしくは閲覧された映画および/もしくはテレビ番組、購入され、かつ/もしくは読まれた電子書籍、またはそれに類するものを備えるアイテムレベルデータをダウンロードしてよい。アイテムレベルモジュール330は、Amazon(R)またはそれに類するものなどのオンライン小売業者のウェブサイトから購入された物理的商品もしくは他のアイテムを備えるアイテムレベルデータをダウンロードしてよい。アイテムレベルモジュール330は、レストランのロイヤルティウェブサイトおよび/もしくは報償ウェブサイトから注文されたメニューアイテムを備えるアイテムレベルデータをダウンロードしてよく、食料雑貨品店、百貨店、ハードウェア店、もしくはそれに類するもののロイヤルティウェブサイトおよび/もしくは報償ウェブサイトから、店クレジットカード口座ウェブサイトから、またはそれに類するものから購入された個別の商品に関するアイテムレベルデータをダウンロードしてよい。
アイテムレベルモジュール330は、後段でより詳細に説明されるアクセスパターンおよび/またはスクリーンスクレイピングを使用して、リストアップされる履歴内の1つまたは複数の個別のアイテムを自動的にクリックし、もしくは選択し、そのアイテムに関するもたらされるアイテムレベルデータをダウンロードして、リストアップされる履歴に戻り、リストアップされる各アイテムに関して繰り返すこと、またはそれに類することを行ってよい。いくつかの実施形態において、トランザクションに関するアイテムレベルデータがサードパーティサービスプロバイダ108から入手可能でないことを決定することに応答して、またはおよび/またはユーザからの要求に応答して、アイテムレベルモジュール330は、1つまたは複数のサードパーティサービスプロバイダ108からアイテムレベルデータをダウンロードすることの代わりに、かつ/またはそうすることに加えて、サードパーティサービスプロバイダ108からの紙の領収書を撮影すべく、かつ/またはスキャンすべく、ハードウェアデバイス102のカメラ、スキャナ、またはそれに類するものを使用してよく、領収書からアイテムレベルデータを決定すべく光学文字認識を使用してよい。
一実施形態において、アイテムレベルモジュール330は、アイテムレベルデータを有さないダウンロードされ、かつ/または集約されたトランザクションデータ(例えば、金融機関からの、金融トランザクションデータアグリゲーションサーバ104bからの、またはそれに類するものからの)を、トランザクションが行われた特定のサードパーティサービスプロバイダ108からダウンロードされ、かつ/または集約されたアイテムレベルデータと互いに関係付けてよい。例えば、アイテムレベルモジュール330は、トランザクションデータにおいてリストアップされるロケーション識別子および/もしくはベンダ識別子、またはその一部を、トランザクションが行われた実際のサードパーティサービスプロバイダ108とマッチングし、サードパーティサービスプロバイダ108からのアイテムレベルデータにアクセスし、トランザクション金額、トランザクション日付、トランザクションロケーション、商品画像、商品リンク、アイテムの数、またはそれに類するものに基づいて、トランザクションデータをアイテムレベルデータにマッチングさせてよい。アイテムレベルモジュール330は、ユーザがトランザクション履歴を、個々のトランザクションに関するアイテムレベルデータと一緒に閲覧することを可能にするパーソナル金融管理インターフェース内でユーザにアイテムレベルデータを提示してよく、アイテムレベルデータに基づいてトランザクションをカテゴリに分けてよく(例えば、予算またはそれに類するものに含めるために)、アイテムレベルデータに基づいて推奨および/または広告を提供すること、および/またはそれ以外でアイテムレベルデータをユーザに提供することをしてよい。
一実施形態において、重複除去モジュール332が、メタデータモジュール202からのメタデータ記録、またはそれに類するものに基づいて、手作業で入力された金融トランザクション、および電子的に生成された金融トランザクションを重複除去するように構成される。例えば、重複除去モジュール332が、重複する金融トランザクションに関するデータを組み合わせること、統合すること、および/または削除することをしてよい(例えば、重複する金融トランザクションに関する少なくとも所定の量のメタデータ記録がマッチングすること、またはそれに類することに応答して)。重複除去モジュール332が、メタデータ記録からの決定された1つまたは複数の属性(例えば、エンティティ名、トランザクション日付、トランザクション金額、会計カテゴリ、またはそれに類するもの)を比較してよい。このようにして、いくつかの実施形態において、重複除去モジュール332が、ユーザが、電子的にも記録される金融トランザクションを手作業で入力する場合でさえ、記録が正確であり、口座の帳尻が合うことを確実にしてよい。
さらなる実施形態において、重複除去モジュール332が、支払いトランザクションを未払い金トランザクション、またはそれに類するものに自動的にマッチングさせてよい(例えば、重複除去ではなく、会計の目的で)。例えば、重複除去モジュール332が、支払いトランザクションからのエンティティ名、金額、またはそれに類するものを未払い金トランザクション、口座売掛金トランザクション、またはそれに類するものにマッチングさせるようにメタデータ記録を処理してよく、マッチングするトランザクションに関係しているものとして印を付けてよい。
図4は、組織チャート402と、勘定のチャート404と、会計カテゴリ406とを備えるシステム400の一実施形態を示す。図示される実施形態において、カテゴリ分けモジュール204が、ビジネスエンティティの金融トランザクションに関する会計カテゴリ406を作成すべく、ビジネスエンティティに関する階層組織チャート402を勘定のチャート404と組み合わせる。図示される実施形態において、カテゴリ分けモジュール204が、階層組織チャート402における様々なエントリに関する勘定のチャート404を複製している(例えば、異なる役員、部門、またはそれに類するものに関して)。カテゴリ分けモジュール204に関して前述したとおり、様々な実施形態において、階層組織チャート402および/または勘定のチャート404は、カテゴリ分けモジュール204によって提供されるデフォルトであってよく、ユーザによってビジネスエンティティのためにカスタマイズされてよく、またはそれに類するものであってよい。
図5は、自動化された企業トランザクションデータアグリゲーションおよび会計のための方法600の一実施形態を示す。方法500が始まり、メタデータモジュール202が、会社の1つまたは複数の金融口座(例えば、金融機関によってその会社のために保持される少なくとも1つの金融口座、またはそれに類するものを含む)に関する複数の金融トランザクションに関するメタデータ記録を作成する(502)。
カテゴリ分けモジュール204が、作成された(502)メタデータ記録に基づいて、金融トランザクションに関する会計カテゴリを決定する(504)。オファモジュール206が、決定された(504)会計カテゴリおよび/または作成された(502)メタデータ記録に基づいて、金融機関の金融商品に関するオファを選択する(506)。
通信モジュール208が、ユーザのハードウェアデバイス102のネットワークインターフェースを使用して、ハードウェアコンピュータサーバ110のネットワークインターフェースから金融機関の金融商品に関する選択された(506)オファを受信する(508)。ディスプレイモジュール210が、金融機関の金融商品に関する受信された(508)オファを、ユーザのハードウェアデバイス102の電子ディスプレイ上でユーザに表示し(510)、方法500は、終了する。
図6は、自動化された企業トランザクションデータアグリゲーションおよび会計のための方法600の一実施形態を示す。方法600が始まり、直接アクセスモジュール307(例えば、サードパーティデータ集約者108のハードウェアコンピュータサーバ上、金融機関のバックエンドハードウェアコンピュータサーバ110上、ユーザのハードウェアデバイス102上、またはそれに類するものの上に配置された)が、ビジネスエンティティに関するローカル金融トランザクションデータおよび/またはサードパーティ金融トランザクションデータを集約する(602)。メタデータモジュール202が、集約された(602)金融トランザクションデータに関するメタデータ記録を作成する(604)。
オーバーライドモジュール322が、ユーザが、金融トランザクションを会計カテゴリにマッピングすることに関してオーバーライドを有するかどうかを決定する(606)。オーバーライドモジュール322が、ユーザがオーバーライドを有すると決定した(606)場合、規則セットモジュール320が、金融トランザクションを会計カテゴリにマッピングするための規則セットを、そのオーバーライドで更新する(610)。カテゴリ分けモジュール204が、規則セットモジュール320からの規則セットを使用して、集約された(602)金融トランザクションに関する会計カテゴリを決定する(612)。
予測モジュール324が、ビジネスエンティティに関する予測(例えば、予測される不足、マイナスの残高、財務制限事項の不履行、またはそれに類するもの)が存在するかどうかを決定する(614)。予測モジュール324が、ビジネスエンティティに関する予測が存在すると決定した(614)場合、承認モジュール328が、その予測についてユーザに知らせる指示を出す(616)(例えば、ユーザに通知し、改善策、金融商品へのオファ、またはそれに類するものに関してユーザから承認を受信すべく)。
承認モジュール328が、金融トランザクションが口座買掛金トランザクションであるかどうかを決定する(618)。承認モジュール328が、金融トランザクションが口座買掛金トランザクションであると決定した(618)場合、承認モジュール328は、その支払いを自動的に行う承認を促す指示をユーザに出す(620)。ユーザが、その支払いを承認した(622)場合、出力モジュール326は、その支払いを行う(624)。
出力モジュール326は、ユーザがさらなる出力(例えば、総勘定元帳、損益計算書、行政府税務書類の要素、リスク解析、信用格付け、もしくは信用力の他の指標、またはそれに類するもの)を要求したかどうかを決定する(626)。出力モジュール326が、ユーザがさらなる出力を要求したと決定した(626)場合、出力モジュール326は、要求された出力(例えば、総勘定元帳、損益計算書、行政府税務書類の要素、リスク解析、信用格付け、もしくは信用力の他の指標、またはそれに類するもの)をフォーマットし、通信モジュール208と協働して、要求される宛先(例えば、ユーザのハードウェアデバイス102、行政府ハードウェアコンピュータデバイス108などのサードパーティハードウェアコンピュータサーバ108、またはそれに類するもの)に送信する。方法600は、後続の集約された(602)金融トランザクションデータに関して続く。
ビジネスエンティティの1つまたは複数の金融口座に関する複数の金融トランザクションに関してメタデータ記録を作成するための手段が、様々な実施形態において、ハードウェアデバイス102、バックエンドサーバ110、サードパーティサーバ108、企業トランザクションモジュール104、メタデータモジュール202、プロセッサ(例えば、中央処理装置(CPU)、プロセッサコア、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブルロジック、特定用途向け集積回路(ASIC)、コントローラ、マイクロコントローラ、および/または別の半導体集積回路デバイス)、ハードウェア機器もしくは他のハードウェアデバイス、他の論理ハードウェア、および/またはコンピュータ可読記憶媒体上に記憶された他の実行可能コードのうちの1つまたは複数を含んでよい。他の実施形態が、ビジネスエンティティの1つまたは複数の金融口座に関する複数の金融トランザクションに関してメタデータ記録を作成するための類似した、または均等の手段を含んでよい。
メタデータ記録に基づいて金融トランザクションに関する会計カテゴリを決定するための手段が、様々な実施形態において、ハードウェアデバイス102、バックエンドサーバ110、サードパーティサーバ108、企業トランザクションモジュール104、カテゴリ分けモジュール204、規則セットモジュール320、オーバーライドモジュール322、プロセッサ(例えば、中央処理装置(CPU)、プロセッサコア、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブルロジック、特定用途向け集積回路(ASIC)、コントローラ、マイクロコントローラ、および/または別の半導体集積回路デバイス)、ハードウェア機器もしくは他のハードウェアデバイス、他の論理ハードウェア、および/またはコンピュータ可読記憶媒体上に記憶された他の実行可能コードのうちの1つまたは複数を含んでよい。他の実施形態が、メタデータ記録に基づいて金融トランザクションに関する会計カテゴリを決定するための類似した、または均等の手段を含んでよい。
決定された会計カテゴリおよび/または作成されたメタデータ記録に基づいて金融機関の金融商品に関するオファを選択するための手段が、様々な実施形態において、ハードウェアデバイス102、バックエンドサーバ110、サードパーティサーバ108、企業トランザクションモジュール104、オファモジュール206、プロセッサ(例えば、中央処理装置(CPU)、プロセッサコア、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブルロジック、特定用途向け集積回路(ASIC)、コントローラ、マイクロコントローラ、および/または別の半導体集積回路デバイス)、ハードウェア機器もしくは他のハードウェアデバイス、他の論理ハードウェア、および/またはコンピュータ可読記憶媒体上に記憶された他の実行可能コードのうちの1つまたは複数を含んでよい。他の実施形態が、決定された会計カテゴリおよび/または作成されたメタデータ記録に基づいて金融機関の金融商品に関するオファを選択するための類似した、または均等の手段を含んでよい。
金融機関の金融商品に関するオファを、1つまたは複数の金融口座に関連付けられたユーザに表示するための手段が、様々な実施形態において、電子ディスプレイ画面、ハードウェアデバイス102、バックエンドサーバ110、サードパーティサーバ108、企業トランザクションモジュール104、通信モジュール208、ディスプレイモジュール210、出力モジュール326、承認モジュール328、プロセッサ(例えば、中央処理装置(CPU)、プロセッサコア、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブルロジック、特定用途向け集積回路(ASIC)、コントローラ、マイクロコントローラ、および/または別の半導体集積回路デバイス)、ハードウェア機器もしくは他のハードウェアデバイス、他の論理ハードウェア、および/またはコンピュータ可読記憶媒体上に記憶された他の実行可能コードのうちの1つまたは複数を含んでよい。他の実施形態が、金融機関の金融商品に関するオファを、1つまたは複数の金融口座に関連付けられたユーザに表示するための類似した、または均等の手段を含んでよい。
本明細書において説明されるその他の方法ステップを実行するための手段が、様々な実施形態において、ハードウェアデバイス102、バックエンドサーバ110、サードパーティサーバ108、企業トランザクションモジュール104、認証モジュール301、ローカル認証モジュール302、ネットワーク認証モジュール304、パスワードマネージャモジュール306、直接アクセスモジュール307、パターンモジュール308、アクセス修復モジュール310、階層モジュール312、メタデータモジュール202、カテゴリ分けモジュール204、オファモジュール206、通信モジュール208、ディスプレイモジュール210、インターフェースモジュール313、ルートモジュール314、頻度モジュール316、試験モジュール318、規則セットモジュール320、オーバーライドモジュール322、予測モジュール324、出力モジュール326、承認モジュール328、アイテムレベルモジュール330、重複除去モジュール332、プロセッサ(例えば、中央処理装置(CPU)、プロセッサコア、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブルロジック、特定用途向け集積回路(ASIC)、コントローラ、マイクロコントローラ、および/または別の半導体集積回路デバイス)、ハードウェア機器もしくは他のハードウェアデバイス、他の論理ハードウェア、および/またはコンピュータ可読記憶媒体上に記憶された他の実行可能コードのうちの1つまたは複数を含んでよい。他の実施形態が、本明細書において説明される方法ステップのうちの1つまたは複数を実行するための類似した、または均等の手段を含んでよい。
本発明は、本発明の趣旨または基本的な特徴から逸脱することなく、他の特定の形態で具現化されてよい。説明される実施形態は、すべての点で例示的であるに過ぎず、限定的ではないものと見なされるべきである。したがって、本発明の範囲は、以上の説明によってではなく、添付の特許請求の範囲によって示される。特許請求の範囲と均等の趣旨および範囲に含まれるすべての変更が、特許請求の範囲に包含されるものとする。