(57)【要約】【課題】出力データを生成するためのシステムおよび方法を提供する。【解決手段】本発明は、セカンダリ装置とともに使用するための出力を生成するためのプライマリ装置に関し、両方の装置はそれぞれ第１コンフィギュレーションと第２コンフィギュレーションとを有する。コンフィギュレーションバリデータは、第１及び第２コンフィギュレーションに、互いに互換性があるか否かを判定する。コンフリクトモジュールは、第１コンフィギュレーションと第２コンフィギュレーションとの間のコンフリクトを決定する。対応するシステム、ソフトウェア及び方法も開示される。【選択図】図２
2015011708.tif 000002
【特許請求の範囲】
【請求項１】
セカンダリ装置とともに使用するための出力を生成するためのプライマリ装置であって、前記プライマリ装置が、
前記プライマリ装置の第１コンフィギュレーションと前記セカンダリ装置の第２コンフィギュレーションとに互換性があるか否かを判定するコンフィギュレーションバリデータと、
前記第１コンフィギュレーションと前記第２コンフィギュレーションとの間のコンフリクトを決定するためのコンフリクトモジュールと、
を有する装置。
【請求項２】
請求項１に記載の装置であって、さらに、サポートされていない機能をスキップするかフィルタリングするかのどちらかのためのデータソースバリデータを有する、装置。
【請求項３】
請求項２に記載の装置であって、前記第１コンフィギュレーション、前記第２コンフィギュレーション、および、出力生成モジュールのそれぞれが、バージョン識別子を有する、装置。
【請求項４】
請求項３に記載の装置であって、各コンフィギュレーションはコンフリクト機能セットに関連付けられている、装置。
【請求項５】
請求項４に記載の装置であって、複数のコンフリクト機能セットがある場合、前記コンフリクトモジュールは、さらに、コンフリクト機能セットを選択するための、コンフリクトバージョンセレクタまたはマニュアルコンフィギュレーションモジュールのどちらかを有する、装置。
【請求項６】
請求項５に記載の装置であって、前記コンフリクトバージョンセレクタは、前記第２コンフィギュレーションと同じバージョン識別子を有するコンフリクト機能セットを選択する、装置。
【請求項７】
請求項６に記載の装置であって、前記第２コンフィギュレーションと同じバージョン識別子を有するコンフリクト機能セットが無い場合、前記コンフリクトバージョンセレクタは、前記第２コンフィギュレーションのバージョン識別子に先行するバージョン識別子を有する前記コンフリクト機能セットを選択する、装置。
【請求項８】
請求項３に記載の装置であって、前記出力生成モジュールのバージョンが前記第２コンフィギュレーションのバージョンに対応する場合、前記出力生成モジュールからの前記出力のデータは、適切な方法で処理することができる、装置。
【請求項９】
請求項３に記載の装置であって、複数の前記出力生成モジュールがある場合、さらに、前記第２コンフィギュレーションと同じバージョン識別子を有する出力生成モジュールを選択するための出力生成モジュールセレクタを有する、装置。
【請求項１０】
プライマリ装置からの出力を受信するためのセカンダリ装置であって、前記セカンダリ装置が、
前記プライマリ装置の第１コンフィギュレーションと前記セカンダリ装置の第２コンフィギュレーションとに互換性があるか否かを判定するコンフィギュレーションバリデータと、
前記第１コンフィギュレーションと前記第２コンフィギュレーションとの間のコンフリクトを決定するためのコンフリクトモジュールと、
を有する装置。
【請求項１１】
請求項１に記載の前記プライマリ装置を使用して、出力データを生成するためのシステムであって、前記出力データを受信する、請求項１０に記載の前記セカンダリ装置を備えたシステム。
【請求項１２】
プライマリ装置において実行され、プライマリ装置から入力され、セカンダリ装置とともに使用するための出力を生成するための方法であって、それぞれの装置が第１および第２コンフィギュレーションを有する方法が、
前記第１コンフィギュレーションが前記第２コンフィギュレーションと互換性があるか否かを決定するステップと、
前記第１コンフィギュレーションが前記第２コンフィギュレーションと互換性がある場合、前記第１コンフィギュレーションと前記第２コンフィギュレーションとの間のコンフリクトを決定するステップと、
を有する方法。
【請求項１３】
請求項１２に記載の方法であって、前記第１コンフィギュレーションと前記第２コンフィギュレーションとのそれぞれは、バージョン識別子を有する、方法。
【請求項１４】
請求項１３に記載の方法であって、それぞれのバージョン識別子は、コンフリクト機能セットと関連付けられている、方法。
【請求項１５】
請求項１４に記載の方法であって、さらに、前記第２コンフィギュレーションのバージョン識別子と同じバージョン識別子のコンフリクト機能セットがないとき、前記第２コンフィギュレーションのバージョン識別子に先行するバージョン識別子を有するコンフリクト機能セットを選択する、ことを含む方法。
【請求項１６】
請求項１４に記載の方法であって、さらに、複数のコンフリクト機能セットがあるとき、マニュアルコンフィギュレーションモジュールを使用してコンフリクト機能セットを選択する、ことを含む方法。
【請求項１７】
プライマリ装置上で使用するためのプログラムであって、セカンダリ装置とともに使用するための出力を生成するための前記プログラムであり、前記プログラムが、
前記プライマリ装置の第１コンフィギュレーションと前記セカンダリ装置の第２コンフィギュレーションとに互換性があるか否かを判定するステップと、
前記第１コンフィギュレーションと前記第２コンフィギュレーションとの間のコンフリクトを決定するためのステップと、
を有するプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一の装置から他の装置に転送される出力データを生成するためのシステムおよび方法に関する。
【背景技術】
【０００２】
クライアントとサーバとのコンピュータがあるコンピューティングシステムにおいて、クライアントソフトウェアをホストするクライアントコンピュータへ、ユーザがデータを入力する。クライアントコンピュータは、サーバコンピュータと互換性のあるフォーマットで、入力データを処理し、出力データを生成する。次いで、ユーザは、さらなる処理のために、クライアントコンピュータからサーバコンピュータに、アップロードまたはダウンロードのような、転送動作を実行する。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
一般に、ソフトウェアおよびアプリケーションは、複数のバージョンを有し、各後続のバージョンが拡張および／または追加機能を有する。通常、各クライアントおよびサーバコンピュータには唯一つのバージョンがある。クライアントコンピュータがサーバコンピュータのための出力データを生成する場合、出力データの生成は、サーバコンピュータにおいてサポートされているクライアントコンピュータの機能に基づいて実行される。クライアントコンピュータによって生成された出力データは、クライアントに対応するバージョンを有するサーバコンピュータ向けのみである。サーバコンピュータが異なるバージョンである場合、クライアントコンピュータは、サーバコンピュータによって、受け入れられないかもしれないし、または、正しく処理されないかもしれない、ダウンロード処理を続行してしまう。これは、データの整合性の欠如を引き起こす。
【０００４】
図１に示すように、従来技術では、クライアントコンピュータは、対応するバージョンを有するサーバコンピュータのための出力を生成できるのみであることを意味する、唯一つの１対１のマッピングがある。ソフトウェアまたはアプリケーションの異なるバージョンを有するコンピューティングシステムのため、クライアントまたはサーバとして複数のコンピュータが設定されることが必要とされている。これは、処理のためのアップロードまたはダウンロード中にデータが転送されたとき、データの整合性を維持するために使用可能であるように、ソフトウェアおよびアプリケーションの対応するバージョンを保証するためである。クライアントコンピュータとサーバコンピュータのソフトウェア／アプリケーションのバージョンに互換性がないとき、データ転送は高い失敗率を有している。
【０００５】
従来技術では、データ転送の成功を保証する方法は、クライアントコンピュータの入力データが、ターゲットサーバコンピュータと互換性があることを確認することである。これは、ターゲットサーバコンピュータによりサポートされている機能と、入力データの各機能を検証することによって行われる。これは、コンピュータリソース（たとえば、メモリー、プロセッサなど）と、人的リソース（比較プロセスに費やすための時間）にとって、非効率的である。
【０００６】
代わりに、クライアントと、対応するサーバコンピュータは、すべての新しいソフトウェアまたはアプリケーションのバージョンを、同時にアップグレードする必要がある。しかしながら、これは、コンピューティングリソースの不要な休止時間（downtime）を引き起こす。例えば、クライアントコンピュータにおけるマイナーな拡張のための新しいバージョンは、クライアントコンピュータ上の変更に影響されない、対応するサーバにインストールされる必要はない。他の例において、クライアントはアップグレード後にさらに準備作業が必要であり、一方、対応するサーバは連続運転にしておく必要がある場合、クライアントと、対応するサーバとのためのアップグレードのスケジュールが異なることがある。
【０００７】
さらに、出力データは、1つのバージョンと互換性のある出力データのみを生成することができる出力生成モジュールによって、生成される。そのため、各リビジョンのための、対応する出力生成モジュールがある。さらに、各出力生成モジュールは、出力データ形式の１つのタイプのみを生成することができる。出力データ形式が他のサーバのために異なる場合、異なる出力生成モジュールが必要とされる。
【０００８】
コンピューティングシステムにとっての出力データの生成を実行するための、より最適な方法が必要とされている。
【課題を解決するための手段】
【０００９】
第１の態様においては、セカンダリ装置とともに使用するための出力を生成するためのプライマリ装置が提供される。前記プライマリ装置は、前記プライマリ装置の第１コンフィギュレーションと前記セカンダリ装置の第２コンフィギュレーションとに互換性があるか否かを決定するコンフィギュレーションバリデータと；前記第１コンフィギュレーションと前記第２コンフィギュレーションとの間のコンフリクトを決定するためのコンフリクトモジュールと、を有する。前記プライマリ装置は、さらに、サポートされていない機能をスキップするかフィルタリングするかのどちらかのためのデータソースバリデータを有してもよい。
【００１０】
前記第１コンフィギュレーション、前記第２コンフィギュレーション、および、出力生成モジュールのそれぞれは、好ましくは、バージョン識別子を有する。各コンフィギュレーションは、好ましくは、コンフリクト機能セットに関連付けられている。好ましくは、前記出力生成モジュールのバージョンが前記第２コンフィギュレーションのバージョンに対応する場合、前記出力生成モジュールからの前記出力のデータは、適切な方法で処理することができる。複数の前記出力生成モジュールがある場合、さらに、前記第２コンフィギュレーションと同じバージョン識別子を有する出力生成モジュールを選択するための出力生成モジュールセレクタを有する。
【００１１】
複数のコンフリクト機能セットがある場合、前記コンフリクトモジュールは、さらに、コンフリクト機能セットを選択するための、コンフリクトバージョンセレクタまたはマニュアルコンフィギュレーションモジュールのどちらかを有することが好ましい。前記コンフリクトバージョンセレクタは、前記第２コンフィギュレーションと同じバージョン識別子を有するコンフリクト機能セットを選択することが好ましい。
【００１２】
また、前記第２コンフィギュレーションと同じバージョン識別子を有するコンフリクト機能セットが無い場合、前記コンフリクトバージョンセレクタは、前記第２コンフィギュレーションのバージョン識別子に先行するバージョン識別子を有する前記コンフリクト機能セットを選択することが好ましい。
【００１３】
第２の態様においては、プライマリ装置からの出力を受信するためのセカンダリ装置が提供される。前記セカンダリ装置は、前記プライマリ装置の第１コンフィギュレーションと前記セカンダリ装置の第２コンフィギュレーションとに互換性があるか否かを決定するコンフィギュレーションバリデータと；前記第１コンフィギュレーションと前記第２コンフィギュレーションとの間のコンフリクトを決定するためのコンフリクトモジュールと、を有する。
【００１４】
第３の態様においては、前記プライマリ装置を使用して出力データを生成するためのシステムであって、前記出力データを受信する、前記セカンダリ装置を備えたシステムが提供される。
【００１５】
第４の態様においては、プライマリ装置において実行され、プライマリ装置から入力され、セカンダリ装置とともに使用するための出力を生成するための方法が提供される。好ましくは、それぞれの装置が第１および第２コンフィギュレーションを有する。前記方法は、前記第１コンフィギュレーションが前記第２コンフィギュレーションと互換性があるか否かを決定するステップと；前記第１コンフィギュレーションが前記第２コンフィギュレーションと互換性がある場合、前記第１コンフィギュレーションと前記第２コンフィギュレーションとの間のコンフリクトを決定するステップと、を有する。
【００１６】
前記第１コンフィギュレーションと前記第２コンフィギュレーションとのそれぞれは、バージョン識別子を有することが好ましい。それぞれのバージョン識別子は、コンフリクト機能セットと関連付けられていることが好ましい。
【００１７】
前記方法は、さらに、前記第２コンフィギュレーションのバージョン識別子と同じバージョン識別子のコンフリクト機能セットがないとき、前記第２コンフィギュレーションのバージョン識別子に先行するバージョン識別子を有するコンフリクト機能セットを選択する、ことを含んでもよい。
【００１８】
前記方法は、さらに、複数のコンフリクト機能セットがあるとき、マニュアルコンフィギュレーションモジュールを使用してコンフリクト機能セットを選択する、ことを含んでもよい。
【００１９】
最後の態様においては、プライマリ装置上で使用するためのソフトウェアプログラムであって、セカンダリ装置とともに使用するための出力を生成するための前記ソフトウェアプログラムが提供される。前記ソフトウェアプログラムは、前記プライマリ装置の第１コンフィギュレーションと前記セカンダリ装置の第２コンフィギュレーションとに互換性があるか否かを決定するコンフィギュレーションバリデータ；前記第１コンフィギュレーションと前記第２コンフィギュレーションとの間のコンフリクトを決定するためのコンフリクトモジュールと、を有する。
【図面の簡単な説明】
【００２０】
本発明がより完全に理解されるために、本発明の実施形態は、添付の図面を参照して、単なる例として、説明される。
【図１】従来技術を示す図である。
【図２】本発明のシステムの好ましい実施形態の概略図である。
【図３】図２のシステムにおいて使用される装置の構成の好適な実施形態の概略図である。
【図４Ａ】動作シナリオの一例を示す表である。
【図４Ｂ】動作シナリオの一例を示す表である。
【図５】本発明の方法の好ましい実施形態の動作フローである。
【発明を実施するための形態】
【００２１】
ここで、本発明の好ましい実施形態が詳細に参照され、その実施形態の例は添付図面に示されている。好ましい実施形態と併せて本発明を説明するが、これらの実施形態に本発明を限定するものではないことが理解されるであろう。それどころか、本発明は、添付の特許請求の範囲によって定義される本発明の精神および範囲内に含まれ得る代替、変形および均等物を包含することを意図している。さらに、本発明の以下の詳細な説明において、多数の特定の詳細が、本発明の完全な理解を提供するために説明される。しかしながら、これらの特定の詳細なしに本発明を実施できることは、当技術分野の当業者には明確である。他の例では、周知の方法、手順、構成要素、および機能は、本発明の態様を不必要に不明確にしないように、詳細には説明されない。
【００２２】
図2を参照すると、本発明は、システム200において、プライマリ装置202からセカンダリ装置204への出力データ210を生成するためのプライマリ装置202に関する。
プライマリ装置202の例はクライアントコンピュータであり、セカンダリ装置204の例はサーバコンピュータであり、その逆、または、同時、すなわち両方がクライアントであるか、または、両方がサーバである。装置202と装置204との両方は、少なくとも一つの共通のソフトウェアまたはアプリケーションを有している。装置202と装置204との両方におけるソフトウェアまたはアプリケーションは、異なるバージョンである。ソフトウェアまたはアプリケーションでは、各コンピュータは、コンフィギュレーション300を有している。コンフィギュレーション300の例が図3に示されている。各コンフィギュレーション300は、いくつかのパラメータ302と機能304とを有している。これらの機能は、パラメータのためのフォーマット定義である。各コンフィギュレーションのバージョンは、コンフィギュレーション300のためのバージョン識別子を有している。新しいバージョンでは、機能の追加／バリエーション／拡張がある。
【００２３】
本発明は、また、プライマリ装置202からの出力データ210を受信するための、システム200内のセカンダリ装置204に関する。プライマリ装置202の例はクライアントコンピュータであり、セカンダリ装置204の例はサーバコンピュータであり、その逆、または、同時、すなわち両方がクライアントであるか、または、両方がサーバである。両装置は、少なくとも1つの共通のソフトウェアまたはアプリケーションを有している。両装置上のソフトウェアまたはアプリケーションは異なるバージョンである。ソフトウェアまたはアプリケーションでは、各装置は、コンフィギュレーション300を有している。
【００２４】
ユーザにより入力されたデータは、プライマリ装置202によって受信される。ユーザ入力データは、キーボード、タッチスクリーンディスプレイ、オートランデータファイルをともなったデータ記憶装置などの任意の入出／出力装置を使用するユーザによって手動で入力される。それに対応して、プライマリ装置202と互換性のある形式を有するソースファイルが生成される。プライマリ装置202は、さらなるデータ処理のための、ソースファイルを読み出す。入力データは、データソースデータベース206に格納される。指定されたソフトウェアまたはアプリケーションのための入力データをユーザが入力した後、ユーザは、セカンダリ装置204への出力データ210として、プライマリ装置202からの入力データを送信するための転送動作を開始する。出力データ210は、セカンダリ装置204において更なる処理を受けるデータである。あるいは、出力データ210は、セカンダリ装置204のソフトウェアまたはアプリケーションにおいてアップデートされるコンフィギュレーション300であってもよい。
【００２５】
転送動作は、まず装置202、204の両方の間のネットワーク接続が確立され、次に装置202、204の両方における関連するソフトウェア間またはアプリケーション間のネットワーク接続が確立されることによって、開始される。コンフィギュレーションバリデータ208は、（プライマリ装置202の）第１と（セカンダリ装置204の）第２コンフィギュレーション212、214とが、互いに互換性があるか否かを判定する。これは、プライマリ装置202とセカンダリ装置204とのコンフィギュレーションバージョンを互いに比較することによって判定される。あるいは、これは、コンフィギュレーション内のパラメータを比較することによって行われる。
【００２６】
コンフィギュレーション212、214の両方に互換性があると判定された後、コンフリクトモジュール209が、コンフィギュレーション212と214との間のコンフリクトを決定するために使用される。第１コンフィギュレーション212の少なくとも一つの機能が、この少なくとも一つの機能による出力データが第２コンフィギュレーション214に転送された場合において、コンフリクトを引き起こしたとき、コンフリクトが発生する。コンフリクトが発生する例として、第２コンフィギュレーション214において機能が発見されない場合、第２コンフィギュレーションにおける同じ機能と機能が異なる場合、構造における変化のため、機能が、第１コンフィギュレーション212における機能と同一ではない場合、などの例がある。
【００２７】
コンフリクトする機能を特定するための様々な方法、および、アルゴリズムがある。好ましい実施形態において、コンフリクト機能はコンフリクト機能セットに格納される。コンフリクト機能セットのバージョンは、特定のコンフィギュレーションのバージョンと同様である。例えば、コンフィギュレーションバージョン1.0は機能F1、F2を有し、コンフィギュレーションバージョン2.0は機能F1、F2’、F3、F4キーを有している。F2’はF2からマイナーチェンジであり、F3、F4は新しい機能である。コンフリクト機能セット2.0は機能F2’、F3、F4を有している。コンフィギュレーションバージョン3.0は、機能F1、F2’、F3、F4、F5、F6を有している。コンフリクト機能セット3.0は、機能F5とF6とを有している。この例では、1.0から2.0、2.0から3.0の間の中間コンフィギュレーションバージョンは存在しない。コンフリクト機能セットは、コンフリクト機能セットの編集物（compilation）／収集物（collection）／蓄積物（accumulation）を含めることができる。例えば、コンフリクト機能セット特徴をまとめた3.0と2.0との編集物は、コンフィギュレーションバージョン1.0とコンフリクトしているコンフィギュレーションバージョン3.0の機能のために、機能F2’、F3、F4、F5、F6を有する。
【００２８】
図3を参照すると、コンフィギュレーション300の概略図が、例示の目的で示されている。コンフィギュレーション300は、コンフィギュレーションセット306と、機能セット308の集合を有している。上記の説明の一部を参照すると、コンフィギュレーションバージョンN.0は、コンフィギュレーションセットバージョン1.0からNの集合である。機能セットは、コンフリクトモジュール209における、コンフリクトする機能を特定する効率を向上させている。
【００２９】
コンフィギュレーション300は、前のリビジョンの機能から、異なるメモリーまたは異なる構造に、別個に、新しいリビジョンの新しい機能を格納してもよい。ストレージのこのモードは、ソフトウェアまたはアプリケーションの処理効率を向上させることができる。従って、コンフリクトセットは、関連するメモリー装置または構造から適切な方法で得られる。
【００３０】
複数のコンフリクト機能セット310をともなったデータベースが存在してもよい。コンフリクト機能セットセレクタ216が、適切なコンフリクト機能セットを選択するために使用される。複数のコンフリクト機能セットのバージョンと第２コンフィギュレーション214とを比較することによって、検索が実行される。一致がある場合、コンフリクト機能セットのバージョンが第２コンフィギュレーション214と同じであり、コンフリクト機能セットは、選択された一致するバージョンである。
【００３１】
一致がない場合、コンフリクト機能セットセレクタ216は、先行するバージョンを識別する。先行するバージョンは、第２コンフィギュレーション214よりも前のバージョン、および／または、最新バージョンである。
【００３２】
いくつかの動作シナリオの表が、図4Aに示される。列400は、様々なシナリオを識別する。第１／クライアントコンフィギュレーション212のバージョンは列402に示されており、第２／サーバコンフィギュレーション214のバージョンが列404に示されており、利用可能なコンフリクト機能セットのバージョンが列406で示されており、選択されたコンフリクト機能セットのバージョンが列408に示されている。シナリオAでは、第１コンフィギュレーション212のバージョンはR5.01であり、第２コンフィギュレーション214のバージョンはR5.01である。一致するものがあるため、選択されたコンフリクト機能セットは、R5.01である。
【００３３】
シナリオBでは、一致するコンフリクト機能セットのバージョンが無い。第２コンフィギュレーション214のバージョンR5.02について、先行するバージョンがR5.01であるとすると、コンフリクト機能セットのバージョンR5.01が、このように選択される。コンフリクト機能セットのバージョンR5.03またはR5.04を選択することは、コンフリクトまたはエラーを引き起こすかもしれない。
【００３４】
コンフリクト機能セットが、第２コンフィギュレーション214のバージョンと同じバージョンを有していない場合、コンフリクト機能セットのバージョンを選択する、ユーザのためのオプションがある。マニュアルコンフィギュレーションモジュールは、コンフリクト機能セットのバージョンを選択するために、ユーザに利用される。マニュアルコンフィギュレーションモジュールは、ユーザの選択のために、コンフリクト機能セットのバージョンのリストを提供してもよい。更なるオプションは、選択のために、機能のリストを提供することである。
【００３５】
説明のためにシナリオBを使用する。、セカンダリ装置204から受信した第２コンフィギュレーション214がR5.02であり、コンフリクトバージョンセレクタ216がコンフリクト機能セットR5.01を選択する。しかしながら、ユーザは、物理的装置または他の手段からコンフィギュレーションを検証した後、第２コンフィギュレーション214は、実はR5.03であることを知っている。また、データ転送の前に解決するための時間がユーザにないために生じる、ネットワークまたは他に起因する転送エラーがありえる。別の例では、第２コンフィギュレーション214のバージョンがR5.05であり、ユーザが、新しいバージョンは、データ転送には影響しない／コンフリクトの問題を引き起こさない、追加機能やアルゴリズムの変更を有することを知っている。そのため、コンフリクト機能セットのバージョンR5.04が手動で選択されてもよい。
【００３６】
有利なことに、これは、異常または予期しない状況に対して、ユーザが正常なデータ転送を完了するためのコントロールをすることを可能にするセーフティネットとして機能する。別の利点は、データソースバリデータ218が入力されたデータを検証するときであり、（検証プロセスは下記に記載される）、データソースバリデータ218は、早期にエラーをともなう出力データの生成処理を終了する代わりに、未サポート機能をスキップまたはフィルタする。
【００３７】
プライマリ装置202のデータソースバリデータ218は、入力データが、選択されたコンフリクト機能セット310内の機能を含んでいるか否かを判定する。選択されたコンフリクト機能セット310内の機能が、入力データに含まれていない場合、入力データが有効であると判定される。第１コンフィギュレーション212及び/又は第２コンフィギュレーション214の機能と比較して、選択されたコンフリクト機能セットは、より少ない機能を有しているが、第２コンフィギュレーション214のすべての機能を使用する場合と比較して、入力データを検証するために、コンフリクト機能セット310の機能のより小さいリストを使用する方がより効率的である。入力データを検証することにより、セカンダリ装置204のための、より良いデータの整合性が得られる。同時に、エラーを解決することに費やす時間と労力とが低減し、メモリーの使用量が低減する。
【００３８】
プライマリ装置202の出力生成モジュール220は、セカンダリ装置204に対しての出力データ210を生成するために、コンフリクト機能セット310の機能を有していない、検証された入力データの処理をする。出力データ210は、第２コンフィギュレーション214とコンフリクトする任意の機能を有していないため、出力データ210は、ソフトウェアやアプリケーションの第２コンフィギュレーション214において処理されるのに適している。出力生成モジュール220は、第２コンフィギュレーション214に適した形式で、出力データ210を生成する。
【００３９】
出力生成モジュール220は、後続のコンフィギュレーションバージョンに対して、通常ユニークである。そのため、それぞれが第２コンフィギュレーション214に対応する、プライマリ装置202の複数の出力生成モジュール220がある。各出力生成モジュール220のバージョンは、バージョン識別子によって識別される。出力生成モジュールセレクタは、第２コンフィギュレーション214のバージョンと同じバージョンを有する出力生成モジュール220を選択するために使用されてもよい。選択は、複数の出力生成モジュール220のバージョンと、第２コンフィギュレーション214のバージョンとを比較することによって行われる。一致がある場合、出力生成モジュール220のバージョンが第２コンフィギュレーション214のバージョンと一致し、一致するバージョンの出力生成モジュール220が選択される。
【００４０】
一致がない場合、出力生成モジュールセレクタは、続いて、先行するバージョンを識別する。先行するバージョンは、第２コンフィギュレーション214よりも前のバージョン、および／または、最新バージョンである。
【００４１】
動作シナリオの別の表が、図4Bに示される。列410は、様々なシナリオを識別する。第１／クライアントコンフィギュレーション212のバージョンは列412に示されており、第２／サーバコンフィギュレーション214のバージョンが列414に示されており、利用可能な出力生成モジュール220のバージョンが列416に示されており、選択された出力生成モジュール220のバージョンが列418に示されている。シナリオAでは、第１コンフィギュレーション212のバージョンはR5.01であり、第２コンフィギュレーション214のバージョンはR5.01である。一致するものがあるため、選択された出力生成モジュール220のバージョンは、R5.01である。
【００４２】
シナリオBでは、一致する出力生成モジュール220のバージョンが無い。第２コンフィギュレーション214のバージョンR5.02について、先行するバージョンがR5.01であるとすると、出力生成モジュールのバージョンR5.01は、このように選択される。出力生成モジュール220のバージョンR5.03またはR5.04を選択することは、コンフリクトまたはエラーを引き起こすかもしれない。
【００４３】
出力生成モジュール220が、第２コンフィギュレーション214のバージョンと同じバージョンを有していない場合、出力生成モジュール220のバージョンを選択するためのオプションがある。好ましくは、マニュアルコンフィギュレーションモジュールは、出力生成モジュール220のバージョンを選択するために、ユーザに利用可能である。マニュアルコンフィギュレーションモジュールは、ユーザの選択のために、出力生成モジュール220のバージョンのリストを提供してもよい。
【００４４】
説明のためにシナリオBを使用して、セカンダリ装置204から受信した第２コンフィギュレーション214がR5.02であり、出力生成モジュール220のバージョンセレクタが出力生成モジュールバージョンR5.01を選択する。しかしながら、ユーザは、物理的装置または他の手段からコンフィギュレーションを検証した後、第２コンフィギュレーション214は、実はR5.03であることを知っている。また、データ転送の前に解決するための時間がユーザにないために生じる、ネットワークまたは他に起因する転送エラーがありえる。別の例では、第２コンフィギュレーション214のバージョンがR5.05であり、ユーザが、新しいバージョンは、データ転送には影響しない／コンフリクトの問題を引きここさない、追加機能やアルゴリズムの変更を有することを知っている。そのため、コンフリクト機能セットのバージョンR5.04が手動で選択されてもよい。
【００４５】
出力生成モジュールセレクタは、コンフィギュレーションバリデータ208内にあることが好ましい。有利なことに、これは、システムをスケーラブルにすることができる。
ユーザが、プライマリ装置202からセカンダリ装置204へのデータ転送を実行するために、遠隔地に行こうとするとき、ユーザは、利用可能なすべてのバージョンの代わりに、関連する出力生成モジュールのバージョンを持つだけでよい。
【００４６】
当然ながら、上述した処理は、プライマリ装置202とセカンダリ装置204とにおいて使用される少なくとも１つのソフトウェアプログラムによって実行される。少なくとも１つのソフトウェアプログラムがなければ、上述した処理は実行されることができないであろう。
【００４７】
本発明の好ましい実施形態によれば、クライアント／プライマリ装置202内のソフトウェアまたはアプリケーションは、サーバ／セカンダリ装置204内の対応するソフトウェアまたはアプリケーションの複数のバージョンと対話することができる。各装置が異なるソフトウェアのバージョンを有する複数の装置が存在するシステムにおいて、本発明を用いて、クライアント／プライマリ装置202は、コンフリクトする機能を使用するデータを検証することにより、効率的に任意の他の装置にデータを転送することができる。データ転送のために、異なる装置に、ソフトウェアまたはアプリケーションの複数のバージョンを維持する必要はない。これは、クライアントにおいて更なる柔軟性を提供しながら、メモリーと他のリソースとのコストを削減する。
【００４８】
複数のクライアント／第１のソフトウェアのバージョンの各々が異なる装置で動作するコンピューティングシステムにおいて、装置の数は最小化され、それに対応して運用コストが低減される。さらに、ユーザは、いずれのクライアントソフトウェアのバージョンが、対応するサーバソフトウェアへのデータ転送に使用可能であるかを特定する必要がない。これは、ユーザートレーニングの要件と学習コストを削減し、より少ない操作ミスや混乱を通じて、続いて、生産性が向上する。本発明は、クライアントとサーバとのソフトウェアのバージョンが異なる場合であっても、データ転送を確実に行うことが可能なため、クライアントとサーバとのソフトウェアのバージョンを、独立してアップグレードすることができ、しかも運転における信頼性がある。
【００４９】
上述の１つ又は全てのモジュール−コンフリクトバージョンセレクタ、マニュアルコンフィギュレーションモジュール、データソースバリデータ218、出力生成モジュール220−は、入力データを処理するために、および、出力データ210を生成するために、プライマリ装置202、他の装置、または、外部記憶装置に格納され、アクセスされてもよい。
【００５０】
コンフィギュレーションまたはコンフィギュレーションセットは、ユーザアプリケーション、サーバプロセス、または、オペレーティングシステムの設定のような任意のソフトウェアのための、パラメータ、機能、命令、定義をともなったファイルである。
【００５１】
バージョン番号を含むパラメータの例は；ネットワークのTCP／IPアドレス；ドメインネーム、冗長（redundancy）；マシン名；ユーザ名；ユーザーグループ；オペレーションシステム、アンチウイルス、ITセキュリティなどのソフトウェアの仕様；プロセッサ、メモリーなどのハードウェアの仕様；ライセンスキー;サーバの種類である。
【００５２】
機能の例は、プロトコル、プラグイン、コンポーネント、ユニット、部品（parts）、アイテム、要素（ingredients）、部品（pieces）、セグメント、エレメント（elements）、モジュール、周辺機器および構成要素（constituents）を含む。
【００５３】
本発明の別の態様によれば、出力データを生成するための装置で実行される方法500が、図5に示される。当然のことながら、上記の段落において記載された必須の構成は、下記の段落においても同一の識別番号が付される。ステップ501において、ユーザは、プライマリ装置202に入出力装置を用いて入力データを提供する。プライマリ装置202は、所望のソフトウェアのための第１コンフィギュレーションを有している。ステップ502において、プライマリ装置202は、セカンダリ装置204との接続を確立し、プライマリ装置202の所望のソフトウェアは、セカンダリ装置204の対応する所望のソフトウェアとの接続を確立する。通信すべき両方の装置に用いられる通信プロトコルに基づいて、接続が確立される。セカンダリ装置204は、所望のソフトウェアのための第２コンフィギュレーションを有している。
【００５４】
ステップ503において、第２コンフィギュレーションが、セカンダリ装置204から送信され、ステップ503において、プライマリ装置202によって受信される。第２コンフィギュレーションは、通信すべき両方の装置で用いられる通信プロトコルに基づいて送信される。ステップ504、505において、第１コンフィギュレーションと第２コンフィギュレーションとに互換性があるか否かが判定される。互換性がない場合、ステップ511において、ユーザにはエラーがプロンプトされる。
【００５５】
両方のコンフィギュレーションに互換性があると判定された場合、ステップ506において、コンフリクト機能が識別される。好ましくは、コンフリクト機能セット310は、ソフトウェアまたはアプリケーション・コンフィギュレーションのバージョンごとに設けられている。コンフリクト機能セット310には、識別を容易にするために、バージョン識別子が割り当てられている。コンフリクトバージョンセレクタ216は、適切なバージョン識別子を選択する。最も適切なバージョン識別子は、第２コンフィギュレーションのバージョン識別子と同じバージョン識別子である。同じバージョン識別子が存在しない場合、第２コンフィギュレーションのバージョン識別子に先行するバージョン識別子が選択される。先行するバージョンは、第２コンフィギュレーションのバージョンよりも以前のものであり、かつ、最新のものである。
【００５６】
好ましくは、マニュアルコンフィギュレーションモジュールは、手動選択がより適切である場合に、ユーザが手動でバージョン識別子を選択するために設けられている。
【００５７】
ステップ507において、選択されたコンフリクト機能セット310の機能のリストが、入力データをステップ508において検証するために取得される。これは、コンフリクト機能セット310の任意の機能が、入力データの中にあるか否かを判定することにより、実行される。入力データが、コンフリクト機能セット310の任意の機能を有していないと判定された場合、出力データが生成される。入力データを検証することができない場合、ステップ511において、ユーザにはエラーがプロンプトされる。
【００５８】
出力生成モジュール220は、セカンダリ装置204内のソフトウェア／アプリケーション・コンフィギュレーションの所望のバージョンに適している出力データ210を生成するために設けられている。好ましくは、各出力生成モジュール220は、バージョン識別子を有する。ステップ510において、適切な出力生成モジュール220が選択される。適切な選択は、第２コンフィギュレーションと同じバージョン識別子を有する出力生成モジュール220である。選択された出力生成モジュール220は、次に、ステップ512において、出力データを生成するためにロードされる。ステップ513において、出力データが、プライマリ装置202からセカンダリ装置204に転送される。転送は、通信すべき両方の装置202、204に用いられる通信プロトコルに基づいている。
【００５９】
また、当然ながら、上述した方法500は、プライマリ装置202とセカンダリ装置204とにおいて使用される少なくとも１つのソフトウェアプログラムによって実行される。少なくとも１つのソフトウェアプログラムがなければ、上述した方法500は実行されることができないであろう。
【符号の説明】
【００６０】
２００  システム
２０２  プライマリ装置
２０４  セカンダリ装置
２０６  データソースデータベース
２０８  コンフィギュレーションバリデータ
２０９  コンフリクトモジュール
２１０  出力データ
２１２  第１コンフィギュレーション（クライアントコンフィギュレーション）
２１４  第２コンフィギュレーション（サーバコンフィギュレーション）
２１６  コンフリクト機能セットセレクタ（コンフリクトバージョンセレクタ）
２１８  データソースバリデータ
２２０  出力生成モジュール
３００  コンフィギュレーション
３０２  パラメータ
３０６  コンフィギュレーションセット
３０８  機能セット
３１０  コンフリクト機能セット
【図１】
2015011708.tif 000003
【図２】
2015011708.tif 000004
【図３】
2015011708.tif 000005
【図４Ａ】
2015011708.tif 000006
【図４Ｂ】
2015011708.tif 000007
【図５】
2015011708.tif 000008