JP5312742B2 - スプレッドシート及び他文書におけるデータ及びコードの変更の監査及びトラッキング - Google Patents

スプレッドシート及び他文書におけるデータ及びコードの変更の監査及びトラッキング Download PDF

Info

Publication number
JP5312742B2
JP5312742B2 JP2006552693A JP2006552693A JP5312742B2 JP 5312742 B2 JP5312742 B2 JP 5312742B2 JP 2006552693 A JP2006552693 A JP 2006552693A JP 2006552693 A JP2006552693 A JP 2006552693A JP 5312742 B2 JP5312742 B2 JP 5312742B2
Authority
JP
Japan
Prior art keywords
file
data
change
spreadsheet
function
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.)
Active
Application number
JP2006552693A
Other languages
English (en)
Other versions
JP2007522575A (ja
JP2007522575A5 (ja
Inventor
リーブス アンドリュー
カルバーウェル ジェイムズ
ウィットマン アーロン
Original Assignee
クラスター セブン リミテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by クラスター セブン リミテッド filed Critical クラスター セブン リミテッド
Publication of JP2007522575A publication Critical patent/JP2007522575A/ja
Publication of JP2007522575A5 publication Critical patent/JP2007522575A5/ja
Application granted granted Critical
Publication of JP5312742B2 publication Critical patent/JP5312742B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/197Version control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/177Editing, e.g. inserting or deleting of tables; using ruled lines
    • G06F40/18Editing, e.g. inserting or deleting of tables; using ruled lines of spreadsheets

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Description

本発明は、スプレッドシート及び他文書におけるデータ及びコードの変更の監査及びトラッキングに関する。
スプレッドシートアプリケーションは、ユーザーが2次元および3次元配列データを操作することを可能にするコンピュータプログラムである。スプレッドシートアプリケーションのユーザーには2次元配列のセルが表示され、それぞれのセルには数値データ、テキスト、ソフトウェアオブジェクト、または数式が格納されるようになっている。3次元スプレッドシートは、一定の順序を有するこのような配列を複数備えている。セルが数式を含む場合は、数式が定義する計算の結果が通常表示される。数式は、その入力変数の中に、同じ表または他の表の他のセルの値を含むことができる。もちろん他のセルの値は、当該他のセルが含む数式によって計算される結果であっても構わない。このようなセル間の結合は、いくらでも複雑にすることができる。
スプレッドシートは、個人のデータの迅速な計算を行うために用いられるツールとして開発された。これに対し、組織の運営に重要なデータ及び機能は、従来、特定の管理された動作をこれらデータ上で実行するためにプログラマーが開発してきたコンピュータアプリケーションをサポートするデータベースに保存されるものであった。パーソナルコンピュータのパワーの拡大に伴い、コンピュータスプレッドシートは数多くの組織で遍在的になった。従って実際、多くの組織はこのような従来のデータ管理モデルに従わなくなってきている。かつて、プログラムされたデータベースではできない計算を行うために急いで作られたスプレッドシートが、今ではその作成者の業務に中心的な位置を占める必須のツールとなり、実際、ビジネスの運営においても中心的な位置を占めるようになってきている。
米国特許第5303146号明細書 A paper by Paul Goldwater and Lois S. Mahoney "Collaborate on Spreadsheets Journal of Accountancy Online Issues, January 2004 OASIS Open Document Essentials- Using OASIS Open Document XML by J. David Eisenberg, 9 December 2003, Chapter 4 "Text Documents"
現状においては、ユーザーにとってスプレッドシートの魅力である機能は、組織全体の視点から見ると歓迎すべきものとはいえない。スプレッドシートは簡単に変更することができる。しかし、スプレッドシートのセルの相互接続性は、そのような変更がどのような結果をもたらすか、予測が難しいということを意味する。これは、スプレッドシートが他の者によって作成されたかもしれない別のスプレッドシートに参照されている場合、特に顕著である。さらに、特定の時点におけるスプレッドシートの内容を特定することができないため、スプレッドシートの内容から導き出された結論の背景を辿ることができないことがある。さらに、現代のパーソナルコンピュータのパワーをもってすれば、スプレッドシートアプリケーションのスクリプト言語でいくらでも複雑な計算、動作を行うことが現実的に可能である。しかし、このようなコードは、従来のプログラム言語のプログラマーにはおなじみのバージョン制御および変更トラッキングを受けない。
明らかに、このような状況は大きな組織にとって容認できるものではない。何故なら、データおよび機能の品質管理が不可能であり、さらに財政不正管理を防ぐために必要な、監査可能なビジネス行為(口座の準備など)をビジネス内に構築するのにも妨げとなるからである。
んな特定の時点におけるスプレッドシートの状態でも再現でき、かつ状態間の変化を質問できるような方法で、スプレッドシートにおいて行われる動作を記録するメカニズムを提供することが有利であると正しく理解したこの際、スプレッドシートの魅力である本来の柔軟性を失わないようにすることが非常に望ましい
非特許文献1には、複数のユーザに使用されるスプレッドシート内で変更をトラッキングする、Microsoft Excel(商標)などのシステムが記載されている。全ての変更が引き起こされるにつれて、モニタリングおよびストアリングすることによって動作する。示されている図5によると、変更はスプレッドシートのバージョンの形態で記録される。非特許文献2には、実質的に同じであるテキストドキュメントに関係してOpenOffice.org内で使用されるトラッキング機能が第6ページに記載されている。
特許文献1には、様々なバージョンまたはスプレッドシートモデルの「scenarios」を作成および管理するスプレッドシート内のいわゆる「scenario management」が記載されている。スプレッドシートの補正バージョンは、ベースバージョンと比較されてセルの値の差分を決定し、異なるscenariosはベースバージョンからの変更としてストアされる。セル変更は、差分または「delta」として記録されてもよい。システムは「what if?」タイプの分析を提供する。
第1の形態に基づく本発明は、それぞれが複数のセルを含む1つまたは複数のスプレッドシートのデータを監視および監査するためのシステムを提供し、このシステムは、スプレッドシートデータを含むファイルを格納し得るファイルストアと、データベースと、監視手段とを備え、その監視手段は、ファイルストア内のスプレッドシートデータの変更を検出し、その変更をデータベースに記録するようにする。
監視手段は、ファイルストア内の連続したバージョンのファイルを比較するように動作可能な比較手段を含む。これにより、システムが同じファイルの連続して保存されたバージョン間の相違を決定することを可能にしている。さらに詳しくは、比較手段は最新のバージョンの各セルを以前のバージョンの対応するセルと比較し、セルの内容が変更されたことを決定した場合は、変更の記録を作成する。したがって、変更はセル−セル基準に記録され得る。記録は、変更の性質を分類するデータを含んでいる。
データベースに適当なデータを格納することにより、個別のスプレッドシートになされた変更全ての完全な履歴を作成することができる。
ファイルストアは、本発明の様々の実施形態において様々な形態を取り得、様々な要素を含むことができる。例えば、ファイルストアは、ファイルサーバーとワークステーションコンピュータとのうちの1つまたは2つ以上を含むことができる。ファイルストアの要素は、様々な地点に散在しローカルエリアまたはワイドエリアネットワークリンクによって互いに接続されていてもよい。同様に、監視手段も、ローカルエリアまたはワイドエリアのネットワークリンクを用いてファイルストアにアクセスしてもよい。監視手段は、ファイルストア内から監視対象のスプレッドシートを探すファイル位置探索モジュールを含むことが最も好ましい。
システムによって生成された記録を検査することにより、スプレッドシートファイルになされた変更の性質を質的に理解することができる。変更の性質は:データ追加、データ変更、データ削除、関数追加、関数変更、関数削除、データから関数へ、関数からデータへ、セルエラー、関数再計算、スクリプト変更、外部参照変更、指名範囲変更、リンク変更、パスワード変更、シート追加、シート削除、シート名称変更、スプレッドシート名称変更、スプレッドシート削除、スプレッドシート追加、のうちの1つまたは2つ以上に分類することができる。実施例の全てがこれらの分類の全てを有するわけではなく、実施例によっては上記リストにない分類を含んでいてもよい。記録には、いつ変更がなされたかを示すタイムスタンプや変更を行ったユーザーの身元など、追加データが含まれていてもよい。
ここで、二進数フォーマットで格納されたファイルを互いに比較するのが生来困難であることはよく知られている。そこで、本発明のより効果的な実施例においては、監視されているファイルは分析され、テキストベースのフォーマット(XMLなど)等、より処理しやすいフォーマットに変換される。XMLにはさらに、処理を行うツールが多々ある、ならびにテキストベースのシリアル形式及び階層的形式の双方で表示可能である、といった利点もある。
スプレッドシートアプリケーションは、計算ツールとしての発展と並行して、これまでになく強力なスクリプト能力も統合してきた。これにより、今ではスプレッドシートアプリケーションは、強力なプログラミング環境とみなされるまでに発展している。例えば、マイクロソフトエクセルの場合、プログラミング言語であるVisual Basic for Applications (VBA)が高度に複雑なプログラムの実現を可能にするスクリプト言語として備えられている。スプレッドシートデータと同様、これはユーザーに、迅速かつ柔軟にプログラムを作成する能力を提供する。しかしこの柔軟性は、ソフトウェアの開発に対して管理がほぼないことを意味している。特に、バージョンコントロールやソースコード管理のシステムがないため、プログラムコードの変更が何故なされたのか、後から確認することは不可能である。
この問題は本発明を具現するシステムを使用することによって改善され得る。データベースはコードになされた変更の履歴を含み、コードの一定期間における発展及び進化を監視及び監査することができるようにする。
別の形態における本発明は、コンピュータのハードウェアで実行可能であり、本発明の監視手段を形成するコンピュータプログラム製品を提供する
発明の実施例の動作によりネットワークのクライアントの動作に干渉することは望ましくなく、本実施例の存在はクライアントのユーザーにはできる限り透明であることが望ましい。このため、本発明の実施例は、ネットワークのクライアントとは非同期に動作することがきわめて望ましい。特に、本実施例がファイルストアに格納されたファイルを処理する間、クライアントの動作が遮断されるべきではない。
図1に示すように、本実施例は既存のビジネスデスクトップおよびネットワーク環境と共に機能するシステムである。動作にあたっては、システムはネットワーク内のスプレッドシートファイルの存在を検出し、ビジネスが管理上の目的で選択したファイルを取り込む。次いでシステムは、これらファイルの内容のデータベースを作成する。最初のデータベースが作成されると、システムは管理されているファイルにおきるイベントを探すべく、ネットワークを監視する。スプレッドシートのファイル保存を(排他的にではなく)含む特定のトリガーイベントがおきると、システムはファイルのコピーを検索し、それを要素パーツに分解し、これをデータベースに保持されているオリジナルと比較する。システムは、データベースになされた変更を保存する。ファイルが名称変更された場合、削除された場合、または移動された場合は、それもデータベースに記録する。システムは、データベースが中央で収集したデータをビジネスが閲覧できるようにしている。このシステムは、既存の技術を使ったポータルを用いることによって、データを収集し分析することができる。
図2に示すように、このシステムは、複数のネットワークドメインにアクセスし、管理対象のファイル維持のための作業を行うことができる。システムは、ファイルの内容を拡張可能マークアップ言語、 Extensible Markup Language (XML)での表現に変換し、このフォーマットを用いて比較を行う。システムは、ファイルの保存、ファイル変更のトラッキング及び検出及び取り込みに際しては、もっとも細かいレベルで作業を行う。データベースはこの大変細かいレベルにおいて入力されている。ビジネスユーザーは、自身のレポートツールや分析の選択をデータに適用することができる。本発明は、データに何が行われるかについて限定するものではない。
図3に示すように、システムはアクセスが許されたドメインにて機能することができる。システムは、ファイル、イベントおよびイベント後バージョンのファイルを探知して、データベースを作成する。
図4に示すように、システムはターゲットのネットワーク環境をスキャンし、監視されるべきファイル全てのリストを引き出す。本発明では、前回スキャン以降新たに作成されたファイルの存在、削除されたファイルの存在を特定する。このスキャンにより、自動ソフトウェアツールまたはビジネスが処理開始(図1)やファイル維持(図2)のためにファイルの取り込みをトリガーすることができるレポートを作成する。
図面の詳細な説明
後の記述は、図面を参照し、参照符号を使用してプロセス中のステートまたはステップである図中のブロックを識別する。上述されたように、図1は、発明の実施形態のハイレベルな概略図である。図1に示されているように、ビジネスデスクトップおよびネットワーキング環境に関連して、発明の好ましい実施形態はターゲット環境101内で機能する。
システムの第1の機能は、ターゲット環境102内の全てのファイルを識別することである。これは、以下に記述するように、図4内に詳細に示されている。システムの次の機能は、マネージメント103の範囲を定義およびセットすることである。これは、特別なファイル、ファイルのネストまたはドメインおよびトリガイベントがマネージメントについて選択103されることを許容する。システムの次の機能は、ネットワーク104を越えたファイルをキャプチャすることである。このプロセスは、ネットワークにログされた個々のPC内に位置するファイルをキャプチャすることを含む。このプロセスは、図3に詳述されている。システムの次の機能は、ファイルおよびファイルの内容105のデータベースを構築することである。システムのさらなる機能は、データを集計し、分散データ106の中央集約ストアを作成することである。重要な並行する機能は、データの維持(図1のブロック107および図3の310)であり、図1の実施形態内のデータ維持のプロセスを示す、後述する、図2に詳細に示される。マネージメント下の様々なファイルが、集合的にファイルストアを構成する、ネットワークを越えたいくらかの異なるPC内にストアされてよい(ブロック104として表される)。
図1および特にブロック108を再び参照すると、システムは何のファイルが存在するか109、ファイルに何の変更が起こったか110、および誰がデータをマニピュレートしているか111を知らなければならない。このために、全てのデータの監査証跡およびアクティビティの履歴が構築され112−113、データがシステム114によって分析される。
上述のプロセスから結果的に生じるデータが得られるように、システムの次の機能はデータへのポータルアクセスを形成する115。ポータル116を経由したデータへのアクセスが与えられるかもしれない。他の可能な機能は、報告ツールの提供とファイルまたはアプリケーションを復元する能力である。
図1および図2のプロセス内にストアされたデータの維持に関与する機能は、ここでさらに詳しく説明される。第1のステップとして、上述のように例えばファイル保存機能であり得る、トリガイベント201が発生する。つぎに管理下のファイルが取り込まれ202、ワークブック204を含む様々な部門203からの図3に詳述される。例えば、図2に記載されるように、1つのワークブック2が(b)部門に位置し得る一方で、2つのワークブックが(a)部門に位置し得る。データ維持の次のステップ205において、取り込まれたファイルの内容がXMLに変換される。次のステップ206において取り込まれたファイルは、以前のバージョンのファイルと比較されて、発生した変更が探知される。これらの変更が取り込まれ207、データベースに入力される208。データへのポータルアクセスが形成され209、ポータルからのデータへのアクセス210が提供される。報告ツール211はシステムによってまた提供される。
図1においてファイルを取り込むことに関連した機能は、図3に図示されている。このプロセスは適切なドメインの選択およびアクセス301、ワークブック304を含む様々な部門からの図4に示されるようなファイルの存在特定302mファイル取得305、管理用ファイル選択306、およびファイル内容をXMLに変換すること307を含んでいる。バイナリ内に保持されたファイルの親バージョンが取り込まれ308、データベース入力309される。
ネットワークにログオンされる各PCを含むターゲット環境におけるネットワークを越えてファイルを識別することに関連した機能は、図4に図示される。このプロセスは、ターゲット環境内の適切なドメインの選択およびアクセス取得401と、全てのエクセルファイルについてネットワークの探知402を含む。このプロセスは複数スキャンを行い動作があるかチェックするサブプロセス403、新規作成されたファイルがあるかチェックするサブプロセス404、見つからなかったファイルがあるかチェックするサブプロセス405を含んでいる。これらのサブプロセスの結果は、見つかったファイルおよび動作につきレポート作成し406、ビジネス用にレポート作成する407ために使用される。このレポートは、ターゲット環境102内の全てのファイルを識別し、図3中のログオンされる個々のPCを含むネットワーク104を介したファイルの取り込みを可能にする。
実施例のより詳しい記述
本発明の本実施例は、コンピュータのネットワーク内で実施される。このネットワーク内には、任意多数のクライアントがあり、これらクライアントはパーソナルコンピュータであり、ユーザーはこれらパーソナルコンピュータでスプレッドシートアプリケーションを実行してスプレッドシートを展開し、使用することができる。ユーザーは、個人のスプレッドシートファイルをこれらコンピュータに格納してもよい。ファイルは、ネットワークにリンクされたどのドライブからでも監視することができる。いつもではないが通常、重要なスプレッドシートは中央ファイルサーバーに置かれている。またネットワークには監視サーバーが置かれており、ユーザーがスプレッドシートに実行した活動を監視し、および記録する役目を負っている。
図5に示すように、組織内のコンピュータネットワークは任意多数のクライアントコンピュータ10を有している。各クライアントコンピュータ10はユーザーに用いられて、スプレッドシートを含むパーソナル文書を作成する。典型的には、各クライアントコンピュータは、スプレッドシートに関連する個人的嗜好と作業習慣とを有する1人のユーザーによって使用される。
各クライアントコンピュータ10は、ネットワーク12に接続されている。これは、図示のため、図1には統合されたネットワークとして示されている。しかし、実際の実施例では、多数のサブネット、およびローカルエリアネットワークリンクとワイドエリアネットワークリンクとを有することが多い。
ネットワーク12には、1つまたは2つ以上のファイルサーバー14が接続されている。ネットワークのポリシーにより、ユーザーはファイルを自身のクライアントマシン10若しくはファイルサーバー14に保存することができる。クライアントコンピュータ10によるローカル保存と、ファイルサーバー14とで、多様なファイルストアを形成している。
監視サーバー16は、ネットワーク12に接続され、オペレーターのポリシーによってファイルストア全体または一部のみにアクセスできるようになっている。本発明によって提供されるプロセスが行われるのは、監視サーバー16の内部である。監視サーバー16の構成は、ネットワーク全体の性質に大きく依存する。監視サーバー16は、クライアント10で実行されるソフトウェアの動作の遅れが最小になるように、タスクを処理し得なければならない。監視サーバー16は、場合によっては単一のマシンでもよいし、場合によってはサーバー44で複数文書のパラレル処理が可能なように制御されたマシンのクラスターであってもよい。これらに関する詳細は後述される。
図6において、ファイルストア内のスプレッドシートファイル全体が20で示されている。図6の他のアイテムは、監視サーバー16の論理コンポーネントである。これらのコンポーネントは、ウォッチングサービス22と、コントローラサービス24と、メタ格納データベース26と、非同期フレームワーク30とを含み、非同期フレームワーク30は監視サービス32及びプロセスサービス34を有する。システム全体の動作は、タスクメッセージを種々の論理コンポーネントの間で回すことにより制御される。これにより、更なるマシンをクラスターに追加し、タスクメッセージをそれらの間で回すことによって、システムの規模を拡大することが可能であるという利点がある。さらに、監視サーバーがスプレッドシートファイル20をクライアントと非同期に処理することが可能となり、これによりそのユーザーのスプレッドシートプログラムの動作との干渉を最小限に留めることができる。
ウォッチングサービス22の機能は、スプレッドシートファイル20を監視し、それらのうちのいずれかが変更されたときにイベントを立ち上げるものである。変更が検出されると、ファイルが読まれ、その現在の内容と前回ファイルが読まれたときのファイル内容とが比較され、そして特定された変更は次いでデータベースに格納される。こうして、ファイルストアのファイルが変更される度に、記録が生成される。従って、ファイルストアにあるままのファイルから始め、記録された変更を逆に適用することによって、その展開途中の以前の状態のファイルにさかのぼることができる。ウォッチングサービス22を備えることにより、ファイルの変更時に動作をトリガーするためのフックをスプレッドシートプログラムに備えておく必要がなくなる。
総じて、この実施例はMicrosoftのExcelを用いて形成されたスプレッドシート処理に関する。このアプリケーションは、ファイル名拡張子が一般に“XLS”であるファイル(一般に“XLSファイル”と呼ばれる)にスプレッドシートを格納する。これらは、バイナリファイルである。しかし、本発明の原理は、スプレッドシートデータがどのように格納されるかに依らず、他のアプリケーションで作成されたスプレッドシートにも適用可能である。バイナリファイルについて内容分析を行うのが難しいことはよく知られるところであるので、本実施例ではXLSファイルをまず拡張可能マークアップ言語、Extensible Markup Language (XML)形式による表現に転換するアプローチをとっている。他のスプレッドシートプログラム、特にOpenOffice.org Calcは、XMLをネイティブのファイルフォーマットとして使っている。従って、ファイル処理にあたって変換のステップを省くことができる。
上述のように、この実施例はコンピュータのクラスターに対して実施される。サーバーが行う動作は、個別のタスクとして行われる。タスクオブジェクトが形成されると、タスクキューに置かれる。タスクがキューの先頭にくると、クラスター内の最初に処理可能となるマシンによって処理が行われる。
図7は、全てのタスクが導出される基となる親クラスの構造を図示するものである。各タスクオブジェクト36により4つの手法が示されている。それらは、操作タスク、開始タスク、実行タスク、終了タスクである。操作タスクは、非同期フレームワークがオブジェクトを開始するための方法である。またこれは、トレーシングコードへのログ記入も行う。タスクが処理中に用いる状態変数を含むトランザクション状態オブジェクトTransaction State Object(TSO)も入力として受け付ける。開始タスク手法は、実行のコンフィギュレーション変数を設定する。実行タスクは、タスクを完了するための全ての機能を行う。終了タスクは、終了動作を全て行う。
図7に図示されたクラスから導出される主要クラス自身が、図8に示されている。これらは、ファイルストアからのファイル検索、ファイルの内容の変換と比較、マクロの処理、データベース内のストアの操作、及び変更情報の操作を行うためのタスクオブジェクトを含む。これらクラスにつき、簡単に述べる。
ファイル検索:このクラスは、ファイルをターゲットの変更位置からコピーする役目を果たす。
変換:このクラスは、XLSファイルを取得し、ファイルをXMLワークシートに解体する役目を果たす。変換クラスは、全てのデルタオペレーションを行うために比較クラスとマクロクラスとを呼び出す。このクラスは、指名された領域を全て解体し、変更を検出する。またこのクラスは、比較及びマクロ分解タスクを非同期フレームワークに変更する。
比較:このクラスは、最新時点での状態を計算及び分類し、「デルタ」と呼ばれる、XMLの2時点間の変更の記載を行う。このクラスは、全種類の変更および全種類のセルを分類し、デルタ変更をそれぞれ関連する変更で関連付ける。このクラスは、以下のアルゴリズムを用いる。
ポインタを前XMLファイルと現ファイルのXMLファイルとから最初のセルに置く。
2つのセルのセルマトリックス位置(行位置、列位置)を比較する。もし現セル位置と前セル位置とが同じであれば、セルの値及び数式とを比較して違いがないかをみる。この比較によって、変更の種類が特定され、および分類される。もしセルが数式を含んでいれば、そのセルは“数式”の種類によりタグが付けられ、これにより固定値を含むセルと数式評価の結果同じ値が表示されるセルとが明確に区別される。セル変化の違いも確立されている。整数値の場合、差は2つの整数の差である。ストリングの差は、各ストリングの長さに基づいて決められる。日付の差は、日数に基づいて計算される。現セル位置が前セル位置よりも大きい場合、「データ追加」の記録がデルタXMLファイルに追加される。もし前セル位置が現セル位置よりも大きい場合、「データ削除」の記録がデルタXMLファイルに追加される。
ファイルのセルマトリクス位置の最も小さいセルから次のセルを取得し、セルマトリクス位置を比較することによって比較処理を再び始める。
この処理を、前および現XMLファイルが共にファイルの最後まで読まれるまで繰り返す。
この処理が終わると、デルタXMLファイルができる。このファイルは、現時点と前時点との間の違いを分類したものが含まれている。
大量ロード:このクラスは、変換/比較タスクによって生成されたデルタファイルを大量挿入する役目を果たす。
XML格納:このクラスは、文書の変換により生成されたXMLファイルを保存する役目を果たす。このクラスは、生成された現XMLファイルを圧縮し、前ファイルを除去して新しいファイルをデータ保存部にアップロードする。
マクロ解体:このクラスは、2時点における2つのプログラムスクリプトの差を計算する。取り込まれたスクリプトは、既存のソースコード制御システム40に統合されてもよい。
リミットチェッカー:このクラスは、データストア内の変更の種類を監視し、特定のターゲットに対して警告を発する。
図9から図14は、図8の様々なクラスの操作を図示するものである。これらの図を参照すると、各ケースにおいて、操作タスクメソッド510は、ログエントリをトレーシングコード内にするログトレースコール機能512をコールする。状態確認オペレーション514もまた実行される。開始タスクメソッド516は初期変数を設定し581、キュー設定を形成する520。メタ格納部26は開始時状態に設定522を含んでいる。タスクが完了すると、終了タスクメソッド524が、メタ格納部26内に完了状態を設定する526。
図9は図8のファイル検索のクラスのオペレーションを図示している。ファイル検索クラス実行タスクメソッド530はファイルを検索する機能532と、トランザクション状態オブジェクト(TSO)を経由してファイルが存在するかチェックする機能、非同期フレームワーク30にファイルを追加する機能を含んでいる。
図10において図示されるように、変換クラス実行タスクメソッドは、ワークブック(WB)を処理する機能540を含んでいる。これはワークブックを開く機能542、ワークブックの保護解除する機能544、ワークシート(WS)動作リストを計算する機能546、ワークブック内に氏名範囲を作成する機能548、ワークブック内にマクロを分割する機能550、およびXMLファイルとしてワークブックを保存する機能552を含んでいる。実行タスクメソッドはXMLワークシートを分割する機能554、XMLヘッダーを処理する機能556、および各ワークシートをフレームワークに追加する機能558を含んでいる。この最後の機能において、比較タスクを発動するトランザクション状態オブジェクト(TSO)は、非同期フレームワーク30に発行される。非同期巣フレームワーク(AF)結果を取得する機能560において、スプレッドシート内の変更を表す「デルタ」のXMLファイルネームを含む比較タスクは、非同期フレームワークから戻されて、ロードデータセット562を生成する。各マクロはトランザクション状態オブジェクトをマクロ分解クラス566に発行することによって処理され、バルクロード568はトランザクション状態オブジェクトをバルクローダクラスに発行することによって実行される。
図11に図示されるように、マクロ分解実行タスクメソッドは、スクリプトのチェックサムが違うかチェックする機能570を含んでいる。トランザクション状態オブジェクトはメタ格納部26内にファイル格納する機能572およびソースコード制御システム40によって発行される。非同期フレームワーク内でマクロリミットの要求するために機能574はフレームワーク30に提供される。
図12に図示されるように、比較クラス実行タスクメソッドはメタ格納部26からワークシートのタイムポイントバージョンを取得する機能580を含んでいる。チェックサムをチェックする機能582、ワークシートを比較する機能584、処理要旨を設定する機能586、および比較からの結果のデルタファイル位置リターンの機能588も提供される。チェックサムをチェックする機能582は、590において示されるように、チェックサムが同じであれば「変更なし」と設定する。ワークシート比較機能584は、XML要素を追加するための結合されたプロセス592を有する。
図13に図示されるように、大量ロードクラス実行タスクメソッドは、スプレッドシート比較から生成された各デルタファイルを非同期フレームワーク30に追加するための機能を含んでいる。ロード機能はメタ格納部26にデータを提供する。ある機能は、非同期フレームワークからの結果を待つ。
最後に、図14に図示されるように、XMLストレージクラス実行タスクメソッドはXMLファイルを圧縮する機能610を含んでいる。圧縮されたXMLファイルは、ファイル格納機能612によってメタ格納部26に格納される。メタ格納部から前ファイルを消去する機能614もまた実行される。
本実施例にウェブベースのインターフェースが備えられ、ユーザーがそこからデータベース内のデータにアクセスできる場合、これによってスプレッドシート動作の全てを監視できる中心ポイントを提供する。監視サーバー16(図5参照)において実行される処理は、データベースに適用されるクエリーを生成し、これらクエリーの結果を基に、ウェブサーバー38によってウェブブラウザに提供されるページが生成される。クエリーの範囲と生成されるレポートとには、本質的に制限はない。これらは、システムの特定のユーザーの特定の要求に応じることができる。また。同じインターフェースを、システムの構成と維持とに用いることもできる。ウェブベースのインターフェースをデータベースに設置することは日常的に行われる業務であり、ここではこれ以上の細かい説明は行わない。
さらに、クエリーの結果に基づいて警告を生成することもできる。例えば管理者は、特定のスプレッドシートのある部分につき、一連の禁止行為を規定してもよく、または、特定のセルの値が予め定めた範囲の外に移動したときに警告で知らせるようにしてもよい。システムは、警告が発生されるべきことを検出したときに、電子メールメッセージを生成し、そして予め定めたアドレスに送信してもよい。
他のウェブベースインターフェースによって提供される主要スクリーンのいくつかにつき、簡単に述べる。
図1は、どのファイルが監視されているかをユーザーが見ることができ、およびファイルがリンクされている場合にはリンクされたファイルのヒエラルキーをユーザーが見ることができるスクリーンを示す。
図1は、スプレッドシート内の特定のセルの値が、時間を経るにつれどのように変遷したかを、ユーザーが監視することができるスクリーンを示す。このスクリーンでは、値はグラフによって示されている。
図1は、時間を経るにつれスプレッドシートになされた変更の要旨をユーザーに示すスクリーンを示す。各変更の性質及び変更を行った人が特定されている。
図1は、本発明のソースコード制御の形態を示している。図19では、右手側の画面が現バージョンのプログラムコードの一部を表示し、左手側の画面は前バージョンのコードを表示している。
かくして、図示されたシステムは、各スプレッドシートが従来の態様で複数のセルから構成されている、スプレッドシート内のデータをモニタリングおよび監査するために有利なシステムを提供する。システムは、クライアントマシン10および/またはファイルサーバ14内で実施されてもよいファイルストアを含んでいる。ファイルストア内に、スプレッドシートデータを含んでいるファイル20が格納される。
システムはメタ格納部26内のデータベースと、ウォッチングサービス22を含む監視アレンジメントとを提供する。監視アレンジメントはファイルストア内のスプレッドシートデータにおける変更を検出し、検出された変更をデータベースに記録するように動作する。データベースはこの目的のために使用されることを注意されたい(上述のとおり、従来技術におけるトラッキングされたデータはスプレッドシート自体に格納される。)
監視手段は、比較機能206および84を含んでいる。これはファイルストア内のファイルの連続したバージョンを比較する、すなわち、最新のバージョンを以前のバージョンと比較する。(上述したように、従来技術のシステムは、実行された全ての変更をトラッキングすることを企図しており、最新のバージョンを以前のバージョンと比較するは企図していない。)
比較は、最新のバージョンにおける各セルを以前のバージョンにおける対応するセルと比較することを意味する。セルが変更されたという内容を決定する場合、比較機能はデータベース内に保持された変更の記録を作成する。
各変更の性質は分類される。データベースに格納される変更の記録は、変更の性質を分類するデータを含んでいる。
このシステムにおいて、比較機能は、セル内で、値の変更だけでなく、式の変更をも検出する。
MicrosoftおよびExcelは、マイクロソフト・コーポレーションの商標である。
本発明の実施例を例示として、添付の図面を参照にして詳述する。ここで
本発明の実施例の概略を示す高レベル模式図である。 図1の実施例のデータ維持プロセスを示す図である。 図1の実施例のファイルのキャプチャプロセスを示す図である。 図1の実施例の部分を示す図である。 本発明が実施された組織内におけるコンピュータネットワークの全体図である。 本発明の実施例の主要機能部を示すブロック図である。 他のタスクのクラスが導出される基となる、基本クラスを示す図である。 種々のタスクのクラスを示す図である。 ファイル検索クラスの動作を示す図である。 変換クラスの動作を示す図である。 マクロ分解クラスの動作を示す図である。 比較クラスの動作を示す図である。 大量ロードクラスの動作を示す図である。 XML保存クラスの動作を示す図である。 本実施例の動作中に生成される種々のディスプレイのスクリーン図である。 本実施例の動作中に生成される種々のディスプレイのスクリーン図である。 本実施例の動作中に生成される種々のディスプレイのスクリーン図である。 本実施例の動作中に生成される種々のディスプレイのスクリーン図である。

Claims (9)

  1. それぞれが複数のセルを含む1つまたは2つ以上のスプレッドシートのデータを監視および監査するためのシステムであって、
    スプレッドシートデータを含むファイル(20)を格納し得るファイルストア(10、14)と、
    1またはそれ以上の前記スプレッドシートデータを含むファイルを格納するファイルストアとは別のデータベース(26)と、
    前記1又はそれ以上のスプレッドシートファイルのコンテンツをデータベースにロードする手段と、
    監視手段(22)とを備え、
    該監視手段は前記ファイルストア内のスプレッドシートデータの変更を継続的に検出し、セル内の数式の変更を含む前記変更を前記データベースに記録するようにし、
    前記監視手段は、最新のバージョン内の各セルと前バージョン内の対応するセルを比較することによって、前記ファイルストア内の最新のバージョンのファイルを以前のバージョンのファイルと比較する比較手段を有し、セルの内容が変更されたと判断された場合に、変更の性質を分類するデータを含んだ記録をデータベースに作成して、前記データベースが各バージョンの個別のスプレッドシートになされた変更の全ての完全な履歴を含み、前回のバージョンおよびそれ以前に保存されたバージョンのスプレッドシートの状態を再現可能なようにしたことを特徴とするシステム。
  2. 前記変更の性質は:データ追加、データ変更、データ削除、関数追加、関数変更、関数削除、データから関数へ、関数からデータへ、セルエラー、関数再計算、スクリプト変更、外部参照変更、指定範囲変更、リンク変更、パスワード変更、シート追加、シート削除、シート名称変更、スプレッドシート名称変更、スプレッドシート削除、スプレッドシート追加、のうちの1つまたは2つ以上として分類されていることを特徴とする請求項1に記載のシステム。
  3. 前記記録には、変更がなされた時間を示すタイムスタンプが含まれていることを特徴とする請求項1または2に記載のシステム。
  4. 前記記録には、変更をしたユーザーを特定するデータが含まれていることを特徴とする請求項1乃至3のいずれかに記載のシステム。
  5. 監視対象のファイルは、前記比較手段によって処理される前に分析され、およびXMLに変換されることを特徴とする請求項1乃至4のいずれかに記載のシステム。
  6. 前記比較手段はセル内の値と式の両方の変更を検出することを特徴とする請求項1乃至5のいずれかに記載のシステム。
  7. 前記比較手段は、最新のセルマトリクス位置が以前のセルマトリクス位置よりも大きい場合に、記録はデータが追加されたことを示し、最新のセルマトリクス位置が以前のセルマトリクス位置よりも小さい場合に、記録はデータが削除されたことを示すことを特徴とする、請求項1乃至6のいずれかに記載のシステム。
  8. 前記監視手段は、前記監視手段が監視するようになっているファイルを生成するネットワーククライアントとは非同期に動作するようにしたことを特徴とする請求項1乃至7のいずれかに記載のシステム。
  9. 請求項1乃至8のいずれかに記載のシステムのロードする手段と監視手段としてコンピュータを機能させることを特徴とする、プログラム。
JP2006552693A 2004-02-12 2005-02-14 スプレッドシート及び他文書におけるデータ及びコードの変更の監査及びトラッキング Active JP5312742B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB0403059.9 2004-02-12
GBGB0403059.9A GB0403059D0 (en) 2004-02-12 2004-02-12 Xigence version 1.0
PCT/GB2005/000529 WO2005081126A2 (en) 2004-02-12 2005-02-14 Auditing and tracking changes of data and code in spreadsheets and other documents

Publications (3)

Publication Number Publication Date
JP2007522575A JP2007522575A (ja) 2007-08-09
JP2007522575A5 JP2007522575A5 (ja) 2009-11-26
JP5312742B2 true JP5312742B2 (ja) 2013-10-09

Family

ID=32011746

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006552693A Active JP5312742B2 (ja) 2004-02-12 2005-02-14 スプレッドシート及び他文書におけるデータ及びコードの変更の監査及びトラッキング

Country Status (4)

Country Link
EP (1) EP1719060A2 (ja)
JP (1) JP5312742B2 (ja)
GB (1) GB0403059D0 (ja)
WO (1) WO2005081126A2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9734139B2 (en) 2005-02-14 2017-08-15 Cluster Seven Limited Auditing and tracking changes of data and code in spreadsheets and other documents
US9501463B2 (en) 2005-12-08 2016-11-22 Microsoft Technology Licensing, Llc Spreadsheet cell-based notifications
GB2433614A (en) * 2005-12-23 2007-06-27 Mark Martindale Data tracking system
US8656272B2 (en) * 2006-04-28 2014-02-18 Microsoft Corporation Persisting instance-level report customizations
ES2362378T3 (es) * 2006-07-31 2011-07-04 Cluster Seven Limited Almacenamiento y tratamiento de hojas de cálculo y otros documentos.
CN101127034B (zh) 2006-08-18 2012-05-23 国际商业机器公司 数据组织、查询、呈现、存档、恢复、删除、提炼方法及装置和系统
GB201509331D0 (en) 2015-05-29 2015-07-15 Cluster Seven Ltd Visualization method and system

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01250142A (ja) * 1988-03-30 1989-10-05 Mitsubishi Electric Corp 電子計算機におけるプログラム編集方法
JPH05108437A (ja) * 1991-10-14 1993-04-30 Nec Corp プログラムフアイル変更履歴管理方法
US5303146A (en) 1993-03-11 1994-04-12 Borland International, Inc. System and methods for improved scenario management in an electronic spreadsheet
US5806078A (en) 1994-06-09 1998-09-08 Softool Corporation Version management system
JP4003237B2 (ja) * 1996-05-10 2007-11-07 カシオ計算機株式会社 帳票出力装置
JP2001109618A (ja) * 1999-10-13 2001-04-20 Nec Eng Ltd 履歴管理ファイルシステム
JP2001256043A (ja) * 2000-03-10 2001-09-21 Toshiba Corp プログラムソースの修正履歴管理方法および修正履歴管理システム
JP2003058534A (ja) * 2001-08-09 2003-02-28 Casio Comput Co Ltd データ処理装置およびプログラム

Also Published As

Publication number Publication date
JP2007522575A (ja) 2007-08-09
WO2005081126A3 (en) 2006-06-22
WO2005081126A2 (en) 2005-09-01
EP1719060A2 (en) 2006-11-08
GB0403059D0 (en) 2004-03-17

Similar Documents

Publication Publication Date Title
US9734139B2 (en) Auditing and tracking changes of data and code in spreadsheets and other documents
JP5592451B2 (ja) スプレッドシートおよびその他の文書の記憶および処理
US8429463B2 (en) Log management method and apparatus, information processing apparatus with log management apparatus and storage medium
US7620856B2 (en) Framework for automated testing of enterprise computer systems
US6199070B1 (en) Using a database for program logs
US7974896B2 (en) Methods, systems, and computer program products for financial analysis and data gathering
US6370542B1 (en) Method and apparatus for knowledge acquisition and management
JP5312742B2 (ja) スプレッドシート及び他文書におけるデータ及びコードの変更の監査及びトラッキング
US8898178B2 (en) Solution monitoring system
US20160203426A1 (en) Supplemental System for Business Intelligence Systems
US8140479B2 (en) Logical classification of objects on a computer system
US20120144374A1 (en) Capturing Replayable Information at Software Defect Locations in a Multi-Tenant Environment
US20060085798A1 (en) Method and apparatus for correlation of events in a distributed multi-system computing environment
CN105723335A (zh) 数据流探索
US20090013334A1 (en) Apparatus for Presenting Event Flows Using Sequence Diagrams
US20100049746A1 (en) Method of classifying spreadsheet files managed within a spreadsheet risk reconnaissance network
US20100049745A1 (en) Method of implementing an organization's policy on spreadsheet documents monitored using a spreadsheet risk reconnaissance network
JP2017045238A (ja) 情報処理システム、情報処理装置、及び情報処理方法
Hoiem et al. Designing and using integrated data collection and analysis tools: challenges and considerations
Aljedaani et al. Bug reports evolution in open source systems
JP7412938B2 (ja) 情報分析装置、情報分析方法、情報分析システムおよびプログラム
JP5576570B2 (ja) 業務仕様からワークフローを生成する方法、プログラム及びシステム
US7640335B1 (en) User-configurable network analysis digest system and method
JP4532056B2 (ja) 情報支援分析装置及びその制御方法、プログラム
JP3840814B2 (ja) ワークプロセス管理装置、方法、及び記憶媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080208

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091009

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101029

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110128

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110204

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110225

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110304

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110329

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110607

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111006

RD13 Notification of appointment of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7433

Effective date: 20111122

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20111122

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

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20111214

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

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20120113

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120815

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120820

RD15 Notification of revocation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7435

Effective date: 20121002

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130514

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130703

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 5312742

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250