(58)【調査した分野】(Int.Cl.,DB名)
前記次のフェッチ要求は、予め定められたスケジュール、前記フェッチ要求のタイムアウトの直後、または、前記フェッチ要求のタイムアウトから予め定められた時間の経過後、のうちのいずれかに従って、送信される、請求項2に記載のコンピュータ読取可能なプログラム。
【発明を実施するための形態】
【0016】
詳細な説明
本明細書では、オフライン機能をサポートするために構築されるモバイル治験モニター(CRA)アプリケーションフレームワークを提供するシステムおよび方法について説明する。このCRAアプリケーションフレームワークは、モバイル装置上のデータベースおよびファイルシステムに対する宣言型タグを用いて、データを暗号化しキャッシュする一般的な方法を提供する。宣言型プログラミングを使用することにより、CRAアプリケーションフレームワークを可能にするのに必要な符号化の量を最小にする。CRAアプリケーションフレームワークによって、ユーザはオフラインデータをキャッシュすることができ、データをモバイル装置にダウンロードすることができ、モバイル装置をオフライン中に操作することができる。
【0017】
一実施形態において、CRAアプリケーションフレームワークは、トリップレポートに関連するアクティビティを実行する。トリップレポートの作成は、リソースを最も使用する作業のうちの1つである。一般的に、トリップレポート作成要求を処理するスレッドは、次にそのトリップレポートを生成する。CRAアプリケーションフレームワークに課される負担の量を減らすために、トリップレポートに関連するアクティビティは、非同期で実行される。よって、異なるスレッドが、トリップレポート作成要求を処理し、トリップレポートを生成する。多くのリソースを使用する作業を、別々のスレッドに分けることによって、CRAアプリケーションフレームワークは、サーバリソースに対する制御をより良好に行なうことができ、より高い拡張性を可能にし、システムの信頼性を高める。
【0018】
たとえば、
図1は、オフライン機能を有するCRAアプリケーションフレームワークに関連する方法の代表的な実施形態を示す。この方法100は、臨床研究からのデータを管理するために使用されるCRAアプリケーションフレームワーク内で実行される。このCRAアプリケーションフレームワークによって、モバイル装置とサーバの間の通信が容易になる。
【0019】
臨床試験現場を訪れるユーザは、その医療機関へのトリップに関するデータを保存し管理するために使用されるモバイル装置を有している。所望のデータを確実に取得するために、ユーザは、トリップレポートデータを、トリップレポートスケルトンの中の予め定められたスペースに入力する。トリップレポートスケルトンを受信するために、110で、トリップレポートスケルトン作成要求が、モバイル装置から、この要求を第1のスレッドで処理するサーバに送信される。120で、この作成要求が、サーバによって確認される。130で、トリップレポートスケルトンが、サーバ上の第2のスレッドで作成される。サーバのリソースをより良好に分散させるために、第1のスレッドは第2のスレッドと非同期で動作する。
【0020】
140で、モバイル装置は、作成されたトリップレポートスケルトンを取出すためのフェッチ要求を発行する。第1のスレッドと第2のスレッドが非同期で動作するので、トリップレポートスケルトンが要求されたときにトリップレポートスケルトンは準備できていない場合がある。150で、トリップレポートスケルトンをモバイル装置に送信する準備ができているか否かが判断される。トリップレポートスケルトンの準備ができていなければ、この方法100は160に進み、160でフェッチ要求はタイムアウトする。170で、モバイル装置は、トリップレポートスケルトンを取出すために次のフェッチ要求を発行する。追加のフェッチ要求を送信するタイミングは、予め定められたスケジュールに従うものであってもよい。その代わりに、160でフェッチ要求がタイムアウトした直後に追加のフェッチ要求を送信してもよく、または、160でフェッチ要求がタイムアウトしてから予め定められた時間が経過した後に追加のフェッチ要求を送信してもよい。次に、この方法100はステップ150に戻り、トリップレポートをモバイル装置に送信する準備ができているか否かが判断される。
【0021】
トリップレポートスケルトンの準備ができていれば、この方法100はステップ180に進み、180において、モバイル装置がトリップレポートスケルトンを受信する。180で、モバイル装置は、トリップレポートスケルトンを、自己記述オブジェクト(Self Describing Object)として受信する。臨床研究のカスタマイズとは無関係に、臨床データを、モバイル装置上のSDOに入力することができる。SDOは、モバイル装置がトリップレポートスケルトンをモバイル装置上でレンダリングできるようにするメタデータを含む。したがって、モバイル装置は、データがトリップレポートスケルトンに入力されているときに遠隔サーバにアクセスする必要はない。これにより、モバイル装置が遠隔サーバにアクセスしなければならない回数を少なくする。
【0022】
図2は、オフライン機能を有するCRAアプリケーションフレームワークに関連する方法の、ある実施形態を示す。トリップレポートスケルトンは自己記述オブジェクト(SDO)として生成される。SDOフォーマットであるトリップレポートスケルトンの1つの利点として、トリップレポートデータを操作するのに汎用ツールを使用できることが挙げられる。自己記述データは、さまざまな種類のデータをツールが正確に操作する必要があるという情報を含む。SDOフォーマットであるトリップレポートスケルトンの別の利点として、これがCRAアプリケーションフレームワークをよりロバストでフレキシブルなものにすることが挙げられる。異なる装置(たとえばモバイル装置、サーバ)上で実行している複数のプログラムが、これら異なる装置がトリップレポートデータを配置する場所が異なっているにもかかわらず、1つのプログラムにインターフェイスしてもよい。
【0023】
210で、トリップレポートをモバイル装置上でレンダリングするためのメタデータが作成され、サーバ上に格納される。220で、格納されたメタデータは、標準トリップレポートと組合わされて、SDOフォーマットのスケルトントリップレポートが作成される。230で、このスケルトントリップレポートはモバイル装置によってフェッチされる。240で、モバイル装置は、埋込まれたメタデータに基づいてスケルトントリップレポートをレンダリングする。250で、トリップレポートデータはスケルトントリップレポートに入力される。トリップレポートスケルトンはモバイル装置上でSDOとして維持されるので、データは、モバイル装置によって、スケルトントリップレポートに、サーバがこのデータへの即時アクセスを有しているか否かにかかわらず、入力される。データは、モバイル装置がオフライン(すなわちサーバから切断されている)ときに入力することができる。
【0024】
モバイル装置がモバイル装置パラメータを満たしていることに応じ、260で、完成したトリップレポートはサーバに返送されて格納される。上記装置パラメータは、予め定められた割合のトリップレポートデータを含んでトリップレポートスケルトンを完成させることを含み得る。その代わりに、装置パラメータは、モバイル装置とサーバの間の関係の関数であってもよい。たとえば、完成したトリップレポートは、モバイル装置とサーバの間でネットワークリンクが確立されたときに、ロジックに送信されてもよい。
【0025】
図3は、オフライン機能を有するCRAアプリケーションフレームワークに関連するシステムの、代表的な一実施形態を示す。トリップレポートは大幅にカスタマイズされている。トリップレポートのカスタマイズによって、下にあるデータ構造、関連する臨床コンポーネント、および、サーバ側ロジック310とモバイル装置350の間の通信を容易にするトリップレポートウェブサービスが、変化する。サーバ側ロジック310とモバイル装置350は、CRAアプリケーションフレームワーク300を用いてトリップレポートデータを伝達する。
【0026】
サーバ側ロジック310は、標準トリップレポート320とメタデータ330とを格納している。標準トリップレポート320は、カスタムトリップレポートにリンクされた、一般化された構造である。したがって、カスタムトリップレポートを、高度にカスタマイズして、カスタムトリップレポート形態が複数のユーザへの配布に適さなくなるようにしてもよい。標準トリップレポート320は、多数のトリップについて、多数のユーザに、たとえこれらのユーザが異なるモバイル装置を使用しているときでも、標準トリップレポート320を配布できるよう、一般化される。
【0027】
メタデータ330は、標準トリップレポート320をモバイル装置350上でレンダリングする(たとえば、個々の画面レンダリング、個々のフィールドレンダリングおよび検証、画面遷移、およびデータ変更イベントのハンドリング)ために使用される。たとえば、標準トリップレポート320は、カスタムアクティビティ属性(たとえばチェックリスト機能性)をサポートする。メタデータ330は、カスタムアクティビティ属性をモバイル装置350上でレンダリングする。管理者によってメタデータ330が生成されサーバ側ロジック310上に格納される。メタデータが一旦格納されると、任意の数の、モバイル装置350のようなモバイル装置は、レンダリングのためにメタデータを使用することができる。モバイル装置が送信する作成要求は、モバイル装置にとって正しいメタデータがわかるよう、モバイル装置識別子等のデバイスデータを含んでいてもよい。
【0028】
標準トリップレポート320およびメタデータ330は、サーバ側ロジック310上のSDOトランスフォーマ315によって組合わされてトリップレポートスケルトン340を作成する。トリップレポートスケルトン340は自己記述オブジェクト(SDO)である。SDOは、標準トリップレポート320と同様、オブジェクト指向コンピュータプログラミング言語(たとえばJAVA(登録商標))によって定義される。たとえば、サーバ側ロジックから見ると、トリップレポートスケルトン340は、Java(登録商標)からJavaScript(登録商標)オブジェクト表記法(JavaScript Object Notation)(JSON)への非直列化のためにJSONにおいて構築された平易なJava(登録商標)オブジェクトである、SDOである。標準トリップレポート320は、特殊な表記法を含むクラスを用いてXMLの直列化を使用し易くする。
【0029】
したがって、SDOクラスは、標準トリップレポートクラスと構造的に類似する。標準トリップレポート320とトリップレポートスケルトン340の相違点は、トリップレポートスケルトン340がSDOフォーマットでありメタデータ330をさらに含むことである。サーバ側ロジック310はまた、モバイル装置350がトリップレポートスケルトン340をロードして同期させるためのアプリケーションプログラミングインターフェイス(application programming interface)(API)を提供する。
【0030】
SDOトランスフォーマ315はまた、トリップレポートスケルトン340を標準トリップレポート320に逆変換する。カスタムトリップレポートが標準トリップレポート320に変換されるときに、カスタムトリップレポートの特徴のうちのいくつかが失われる場合がある。したがって、カスタムトリップレポートから標準トリップレポート320への変換は「損失が多い」と考えられる。しかしながら、カスタムトリップレポートから標準トリップレポート320への変換中に失われた情報は、逆変換中にリストアされる。たとえば、サーバ側ロジック310は、カスタムトリップレポートを、カスタムトリップレポートを保存することによって持続する。サーバ側ロジックがトリップレポートスケルトン340を、トリップに関する情報とともに受信したとき、結果として得られる修正されたトリップレポートスケルトンは、逆変換中にカスタムトリップレポートとマージされる。このように、トリップレポートスケルトンの使用によって失われたトリップレポートデータは、リストアすることができる。
【0031】
図4は、オフライン機能を有するCRAアプリケーションフレームワークと関連するシステムの別の典型的な実施形態を示す。モバイル装置350はトリップレポートスケルトン360を既に受信している。モバイル装置350は、
図1について説明したやり方でトリップレポートスケルトン360を受信してもよい。モバイル装置350は、トリップレポートデータ370を入力し、トリップレポートデータ370を、CRAアプリケーションフレームワークシステム300のモバイル装置350上のトリップレポートスケルトン360に局所的に格納する。
【0032】
モバイル装置350から見ると、トリップレポートスケルトン360は、汎用再帰的辞書/アレイ構造に非直列化されたSDOである。レンダリングロジック375は、トリップレポートスケルトン360に含まれるメタデータに基づいて、トリップレポートスケルトン360をレンダリングする。トリップレポートデータ370は、モバイル装置350がネットワークに接続されているか、ネットワークから切断されているか、または接続が間欠的であるかにかかわらず、操作することができる。トリップレポートデータ370をサーバ側ロジック310と同期させる必要があるとき、トリップレポートデータ370を含むトリップレポートスケルトン360をサーバ側ロジック310に送り返すことができる。よって、ネットワークインタラクションは、トリップレポートデータ370をモバイル装置上350で操作し都合がよいときに送信できるので、最小になる。
【0033】
トリップレポートスケルトン360は、持続(persistence)スタック380を用いてモバイル装置350上に局所的に格納される。持続スタック380は、モバイル装置350上でトリップレポートデータ370の暗号化を実行する。持続スタック380はまた、トリップレポートスケルトン360を格納し、取出し、トリップレポートデータ370の変更を追跡し、更新を実行する。
【0034】
持続スタック380は、持続コンテキスト385と、持続モデル390と、持続記憶装置395とを含む。持続コンテキスト385は、SDOであるトリップレポートスケルトン360等のオブジェクトを、オブジェクトをユニークキーと関連付けることによって、登録する。オブジェクトをユニークキーと関連付けるやり方は多数存在することを当業者は認識するであろう。たとえば、持続コンテキスト385は、持続コンテキスト委譲(delegate)方法を用いてユニークキーをオブジェクトに関連付けてもよい。
【0035】
持続コンテキスト385はまた、トリップレポートスケルトン360に生じた変化を、トリップレポートデータ370が変更されたことを持続スタック380が検出したときに、トリップレポートスケルトン360がダーティ状態であると評価することによって、追跡する。トリップレポートスケルトン360がダーティであると考えられる場合、トリップレポートデータ370に対する更新アクションをスケジュールする。更新アクションによって、フラグ付のトリップレポートスケルトン360が持続コンテキスト385に保存され、こうすることによってトリップレポートデータ370を保存する。トリップレポートスケルトン360が依然としてダーティであれば、更新をファイナライズし、結果として「ダーティ」フラグがクリアされる。
【0036】
持続コンテキスト385は、多数のイベント(たとえば実行されている変更、初期化)に応じて、トリップレポートスケルトン360の変化を検出する。たとえば、初期化時に、持続コンテキスト
385は、管理されているトリップレポートスケルトン360のうちのいずれかがダーティ状態であるか否か検証する。トリップレポートスケルトン360等のトリップレポートスケルトンがダーティであれば、持続コンテキスト
385は、更新動作が完了していなかったと判断し、続いて、持続コンテキスト
385は、トリップレポートスケルトンに対する更新動作を再度スケジュールする。
【0037】
持続モデル390は、トリップレポートデータ370のインメモリコレクションを提供する。持続モデル390はまた、以前に持続されたトリップレポートスケルトンを、持続コンテキストからロードする。持続モデル390は、前に持続されたダーティ状態のアイテム、または、入ってきたトリップレポートデータ370のタイムスタンプよりも大きなタイムスタンプを有するオブジェクトは、更新しない。持続記憶装置395は、トリップレポートスケルトン360のようなトリップレポートスケルトンを保存する。持続記憶装置395はまた、トリップレポートデータ370を暗号化し解読する。
【0038】
CRAアプリケーションフレームワーク300は、宣言型プログラミングを用いてオフラインデータのキャッシュを容易にすることができ、かつ、ユーザがデータをモバイル装置350にダウンロードしオフライン中にこのデータを管理することを、可能にする。システムは、モバイル装置上でデータをキャッシュし、キャッシュされたデータのライフサイクルをモニターし、動的同期機能を提供する。別の実施形態では、システムは、宣言型プログラミングを用いてさまざまなフォーマットでキャッシュされたデータを表示するように構成されたウィジェット(widget)を提供する。一実施形態において、システムは、設定を用いてセンシティブデータが
HIPAA法およびCFR(連邦規則集)第11条に準拠するようにすることができる。
【0039】
別の実施形態において、上記方法および/またはこれら方法と均等なものは、コンピュータで実行可能な命令を用いて実現されてもよい。よって、一実施形態では、非一時的なコンピュータ読取可能な媒体が、コンピュータで実行可能な命令を格納して構成され、この命令は、マシン(たとえばプロセッサ、コンピュータ等)によって実行されると、このマシン(および/または関連するコンポーネント)に、上記方法を実行させる。別の実施形態では、上記システム、方法、および/またはこれらと均等なものを、ロジックにおいて実現してもよい。
【0040】
図5は、本明細書に記載の代表的なシステムおよび方法、ならびにこれらと均等なものが機能し得る、代表的な計算装置を示す。この代表的な計算装置は、バス508によって、動作可能に接続された、プロセッサ502と、メモリ504と、入出力ポート510とを含む、コンピュータ500であってもよい。一例において、コンピュータ500は、CRAアプリケーションフレームワーク上で動作するように、かつ、モバイル装置がオフラインで機能できるようにするように構成された、サーバ側ロジック530を含み得る。他の例において、サーバ側ロジック530は、ハードウェア、命令が格納されている非一時的なコンピュータ読取可能な媒体、ファームウェア、および/またはこれらを組み合わせたものにおいて実現されてもよい。サーバ側ロジック530はバス508に装着されたハードウェアコンポーネントとして示されているが、一例ではサーバ側ロジック530をプロセッサ502内で実現できることが理解されるはずである。
【0041】
一実施形態において、サーバ側ロジック530は、標準トリップレポートをメタデータと組み合わせてSDOを作成するための手段(たとえばハードウェア、非一時的なコンピュータ読取可能な媒体、ファームウェア)を有する。この手段は、たとえば、SDOを作成するようにプログラムされたASICとして実現されてもよい。また、この手段は、データ516としてコンピュータ500に与えられ、一時的にメモリ504に保存されその後プロセッサ502によって実行される、格納された、コンピュータで実行可能な命令として、実現されてもよい。これに代えて、サーバ側ロジックの機能をモバイル装置上で実現してもよい。
【0042】
コンピュータ500の代表的な構成を大まかに説明すると、プロセッサ502は、デュアルマイクロプロセッサおよびその他のマルチプロセッサアーキテクチャを含む多種多様なプロセッサであってもよい。メモリ504は、揮発性メモリおよび/または不揮発性メモリを含み得る。不揮発性メモリは、たとえば、ROM、PROM等を含み得る。揮発性メモリは、たとえば、RAM、SRAM、DRAM等を含み得る。
【0043】
ディスク506は、たとえば、入出力インターフェイス(たとえばカード、装置)518および入出力ポート510を介して、コンピュータ500に動作可能に接続されてもよい。ディスク506は、たとえば、磁気ディスクドライブ、ソリッドステートディスクドライブ、フロッピー(登録商標)ディスクドライブ、テープドライブ、Zipドライブ、フラッシュメモリカード、メモリスティック等であってもよい。さらに、ディスク506は、CD−ROMドライブ、CD−Rドライブ、CD−RWドライブ、DVD ROM等であってもよい。メモリ504は、たとえば、プロセス514および/またはデータ516を格納することができる。ディスク506および/またはメモリ504は、コンピュータ500のリソースを制御し割当てるオペレーティングシステムを格納することができる。
【0044】
バス508は、1つの内部バス相互接続アーキテクチャおよび/またはその他のバスもしくはメッシュアーキテクチャであってもよい。1本のバスが示されているが、コンピュータ500が、その他のバス(たとえばPCIE、1394、USB、イーサネット(登録商標))を用いてさまざまな装置、ロジック、および周辺機器と通信し得ることが、理解されるはずである。バス508は、たとえば、メモリバス、メモリコントローラ、周辺バス、外部バス、クロスバースイッチ、および/またはローカルバスを含む種類のものであってもよい。
【0045】
コンピュータ500は、入出力インターフェイス518および入出力ポート510を介して入出力装置と対話してもよい。入出力装置は、たとえば、キーボード、マイク、ポインティングおよびセレクトデバイス、カメラ、ビデオカード、ディスプレイ、ディスク506、ネットワーク装置520等であってもよい。入出力ポート510は、たとえば、シリアルポート、パラレルポート、およびUSBポートを含み得る。
【0046】
コンピュータ500は、ネットワーク環境において動作することができ、したがって、入出力インターフェイス518および/または入出力ポート510を介してネットワーク装置520に接続されてもよい。ネットワーク装置520を通して、コンピュータ500はネットワークと対話し得る。このネットワークを通して、コンピュータ500は、遠隔コンピュータ(たとえばモバイル装置)に論理的に接続されてもよい。コンピュータ500が対話し得るネットワークは、LAN、WAN、およびその他のネットワークを含むが、これに限定されない。
【0047】
別の実施形態において、上記方法および/またはこれら方法と均等なものは、コンピュータで実行可能な命令で実現されてもよい。よって、一実施形態では、非一時的なコンピュータ読取可能な媒体が、コンピュータで実行可能な命令を格納して構成され、この命令は、マシン(たとえばプロセッサ、コンピュータ等)によって実行されると、このマシン(および/または関連するコンポーネント)に、
図1および
図2の方法を実行させる。
【0048】
説明を簡潔にするために、図面において説明されている手法は、一連のブロックとして示され説明されているが、この手法はブロックの順序によって限定されるものではないことが理解されるはずである。いくつかのブロックは、示され説明されているものと、順序が異なっている可能性があり、および/または同時である可能性がある。加えて、代表的な手法を実現するために、示されているブロックすべてを使用しなくてもよい場合がある。ブロックを組み合わせてまたは分離して複数のコンポーネントにしてもよい。さらに、追加のおよび/または代替の手法が、示されていない追加のブロックを用いることができる。
【0049】
以下の記載には、本明細書で使用される選択された用語の定義が含まれる。これらの定義は、用語の範囲に含まれ実現のために使用し得る、コンポーネントのさまざまな例および/または形態を含む。上記例は、限定を意図したものではない。用語は、その単数形および複数形どちらも定義の範囲に含まれ得る。
【0050】
「一実施形態」、「ある実施形態」、「一例」、「ある例」等は、このように記載された実施形態または例が、特定の特徴、構造、特性、性質、要素、または限定を含み得るものの、必ずしもすべての実施形態または例が上記特定の特徴、構造、特性、性質、要素、または限定を含むとは限らないことを、示している。さらに、「一実施形態において」という表現を繰返し使用している場合、同一の実施形態を指していることもあるが、必ずしも同一の実施形態を指している訳ではない。
【0051】
ASIC(application specific integrated circuit):アプリケーション専用集積回路
CD(compact disk):コンパクトディスク
CD−R(CD recordable):書込み可能なCD
CD−RW(CD rewriteable):書換え可能なCD
DVD(digital versatile disk and/or digital video disk):デジタル多用途ディスクおよび/またはデジタルビデオディスク
HTTP(hypertext transfer protocol):ハイパーテキスト転送プロトコル
LAN(local area network):ローカルエリアネットワーク
PCI(peripheral component interconnect):周辺コンポーネント相互接続
PCIE(PCI express):PCIエクスプレス
RAM(random access memory):ランダムアクセスメモリ
DRAM(dynamic RAM):ダイナミックRAM
SRAM(synchronous RAM):同期RAM
ROM(read only memory):読取り専用メモリ
PROM(programmable ROM):プログラマブルROM
EPROM(erasable PROM):消去可能PROM
USB(universal serial bus):ユニバーサルシリアルバス
XML(extensible markup language):拡張マークアップ言語
WAN(wide area network):ワイドエリアネットワーク
本明細書で使用される「コンピュータコンポーネント」は、コンピュータに関連するエンティティ(たとえばハードウェア、ファームウェア、実行中の命令、その組合せ)を意味する。コンピュータコンポーネントは、たとえば、プロセッサ上で実行するプロセス、プロセッサ、オブジェクト、実行可能なもの、実行のスレッド、およびコンピュータを含み得る。コンピュータコンポーネントは、プロセスおよび/またはスレッドの中に存在するものであってもよい。コンピュータコンポーネントは、一つのコンピュータ上に配置されていてもよく、および/または複数のコンピュータ間に分散されていてもよい。
【0052】
本明細書で使用される「コンピュータ通信」は、計算装置(たとえばコンピュータ、携帯情報端末、携帯電話)間の通信を意味し、たとえば、ネットワーク転送、ファイル転送、アプレット転送、電子メール、HTTP転送等であってもよい。コンピュータ通信は、たとえば、無線システム(例としてIEEE802.11)、イーサネット(登録商標)システム(たとえばIEEE802.3)、トークンリングシステム(たとえばIEEE802.5)、LAN、WAN、二点間システム、回路交換システム、パケット交換システム等を通して行なわれるものであってもよい。
【0053】
本明細書で使用される「コンピュータ読取可能な媒体」は、命令および/またはデータを格納する非一時的な媒体を意味する。コンピュータ読取可能な媒体が取り得る形態は、不揮発性媒体および揮発性媒体を含むが、これに限定されない。不揮発性媒体は、たとえば、光ディスク、磁気ディスク等を含み得る。揮発性媒体は、たとえば、半導体メモリ、動的メモリ等を含み得る。コンピュータ読取可能な媒体の一般的な形態は、フロッピー(登録商標)ディスク、フレキシブルディスク、ハードディスク、磁気テープ、その他の磁気媒体、ASIC、CD、その他の光媒体、RAM、ROM、メモリチップまたはカード、メモリスティック、および、コンピュータ、プロセッサ、またはその他の電子機器による読取が可能なその他の媒体を含み得るが、これに限定されない。
【0054】
いくつかの例では、「データベース」を用いて1つのテーブルを意味する。その他の例では、「データベース」を用いて一組のテーブルを意味する場合がある。さらにその他の例では、「データベース」が一組のデータ記憶装置およびこれらデータ記憶装置に対するアクセスおよび/または操作のための方法を意味する場合がある。
【0055】
本明細書で使用される「ロジック」は、ハードウェア、ファームウェア、命令を格納している非一時的なコンピュータ読取可能な媒体、マシン上で実行中の命令、および/または、これら各々の組合せであって、1つの(複数の)機能または1つの(複数の)動作を実施する、および/または別のロジック、方法、および/またはシステムからの機能または動作を生じさせる、組合せを含むが、これに限定されない。ロジックは、アルゴリズムによって制御されるマイクロプロセッサ、離散ロジック(たとえばASIC)、アナログ回路、デジタル回路、プログラムされたロジック装置、命令を含むメモリ装置等を含み得る。ロジックは、1つ以上のゲート、ゲートの組合せ、または、その他の回路コンポーネントを含み得る。複数のロジックについて説明する場合、これら複数のロジックを1つの物理ロジックに組込むことが可能であろう。同様に、1つのロジックについて説明する場合、この1つのロジックを複数の物理ロジック間に分散させることが可能であろう。
【0056】
「動作可能な接続」、または、エンティティが「動作可能に接続される」ようにする接続とは、信号、物理的に伝達されるもの、および/または論理的に伝達されるものを、送信および/または受信し得るようにする接続を意味する。動作可能な接続は、物理的インターフェイス、電気的インターフェイス、および/またはデータインターフェイスを含み得る。動作可能な接続は、動作可能な制御を可能にするのに十分な、インターフェイスおよび/または接続の、異なる組合せを含み得る。たとえば、2つのエンティティを動作可能に接続することによって、これらの間で、信号を、直接、または、1つ以上の中間エンティティ(たとえばプロセッサ、オペレーティングシステム、ロジック、非一時的なコンピュータ読取可能な媒体)を通して、伝達することができる。論理的および/または物理的な通信チャネルを用いて、動作可能な接続をなすことができる。
【0057】
本明細書で使用される「ユーザ」は、1人以上の人、1つ以上のコンピュータもしくはその他の装置、またはこれらの組合せを含むが、これに限定されない。
【0058】
代表的なシステム、方法等を、例を説明することによって示し、例は、非常に詳細に説明してきたが、出願人は、以下の特許請求の範囲をこのような詳細事項に制限することも限定することも全く意図していない。当然ながら、本明細書に記載のシステム、方法等を説明することを目的としてコンポーネントまたは手法の考えられる組合せをすべて説明することは不可能である。このため、本開示は、示され説明されている、特定の詳細事項、典型的な装置、説明のための例に、限定されない。よって、本願は、以下の特許請求の範囲に含まれる、変更、修正、および変形を包含することを意図している。
【0059】
詳細な説明または請求項において「含む(includes)」または「含んでいる(including)」という用語が使用されている場合、「備える(comprising)」という用語が請求項における移行語として用いられているときの解釈と同様に、上記用語が包括的であることが意図されている。
【0060】
詳細な説明または請求項において「または」という用語が使用されている場合(たとえばAまたはB)、「AまたはBまたはAとB双方」を意味することが意図されている。出願人が「AのみまたはBのみであってAとB双方ではない」ことを示すことを意図する場合は、「AのみまたはBのみであってAとB双方ではない」という表現を使用する。よって、本明細書における「または」という用語の用法は、包括的用法であって、排他的用法ではない。Bryan A. Garner, A Dictionary of Modern Legal Usage 624 (2d. Ed. 1995)参照。
【0061】
本明細書において「A、B、およびCのうちの1つ以上」という表現が使用されている場合(たとえば、A、B、およびCのうちの1つ以上を記憶するように構成されたデータ記憶装置)、これは、A、B、C、AB、AC、BC、および/またはABCという1組の可能性(たとえば、データ記憶装置は、Aのみ、Bのみ、Cのみ、A&B、A&C、B&C、および/またはA&B&Cを記憶し得ること)を意味することを意図する。Aのうちの1つ、Bのうちの1つ、およびCのうちの1つを要求することを意図しているのではない。出願人が「Aのうちの少なくとも1つ、Bのうちの少なくとも1つ、およびCのうちの少なくとも1つ」を示すことを意図する場合は、「Aのうちの少なくとも1つ、Bのうちの少なくとも1つ、およびCのうちの少なくとも1つ」という表現を使用する。