(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6299461
(24)【登録日】2018年3月9日
(45)【発行日】2018年3月28日
(54)【発明の名称】出力データを生成するためのシステムおよび方法
(51)【国際特許分類】
G06F 9/445 20180101AFI20180319BHJP
【FI】
G06F9/06 650C
【請求項の数】16
【全頁数】15
(21)【出願番号】特願2014-123150(P2014-123150)
(22)【出願日】2014年6月16日
(65)【公開番号】特開2015-11708(P2015-11708A)
(43)【公開日】2015年1月19日
【審査請求日】2016年8月5日
(31)【優先権主張番号】13/929,057
(32)【優先日】2013年6月27日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】000006507
【氏名又は名称】横河電機株式会社
(74)【代理人】
【識別番号】100064908
【弁理士】
【氏名又は名称】志賀 正武
(74)【代理人】
【識別番号】100108578
【弁理士】
【氏名又は名称】高橋 詔男
(74)【代理人】
【識別番号】100089037
【弁理士】
【氏名又は名称】渡邊 隆
(74)【代理人】
【識別番号】100094400
【弁理士】
【氏名又は名称】鈴木 三義
(74)【代理人】
【識別番号】100108453
【弁理士】
【氏名又は名称】村山 靖彦
(72)【発明者】
【氏名】カ・ワイ・キャシー・チュ
(72)【発明者】
【氏名】リ・ナイング・オー
(72)【発明者】
【氏名】マリセル・バカカオ
(72)【発明者】
【氏名】アセリソン・ナヴァロ
(72)【発明者】
【氏名】チャオ・チェン
【審査官】
坂庭 剛史
(56)【参考文献】
【文献】
特開昭63−205747(JP,A)
【文献】
特開2007−188374(JP,A)
【文献】
特開2009−181337(JP,A)
【文献】
特表2011−510388(JP,A)
【文献】
米国特許出願公開第2011/0173168(US,A1)
【文献】
特開2005−148877(JP,A)
【文献】
特開2004−334767(JP,A)
【文献】
特開平04−255153(JP,A)
【文献】
特開2010−146044(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/44
G06F 9/445
(57)【特許請求の範囲】
【請求項1】
セカンダリ装置とともに使用するための出力を生成するためのプライマリ装置であって、前記プライマリ装置が、
前記プライマリ装置の第1コンフィギュレーションと前記セカンダリ装置の第2コンフィギュレーションとに互換性があるか否かを判定するコンフィギュレーションバリデータと、
前記第1コンフィギュレーションと前記第2コンフィギュレーションとの間のコンフリクトを決定するためのコンフリクトモジュールと、
前記互換性に関する判定と前記コンフリクトに関する決定との結果に基づいて、前記出力を生成するための出力生成モジュールと
を有し、
決定されたコンフリクトと異なるコンフリクトがマニュアルで選択されることが可能である、装置。
【請求項2】
請求項1に記載の装置であって、さらに、サポートされていない機能をスキップするかフィルタリングするかのどちらかのためのデータソースバリデータを有する、装置。
【請求項3】
請求項2に記載の装置であって、前記第1コンフィギュレーション、前記第2コンフィギュレーション、および、前記出力生成モジュールのそれぞれが、バージョン識別子を有する、装置。
【請求項4】
請求項3に記載の装置であって、各コンフィギュレーションはコンフリクト機能セットに関連付けられている、装置。
【請求項5】
請求項4に記載の装置であって、複数のコンフリクト機能セットがある場合、前記コンフリクトモジュールは、さらに、コンフリクト機能セットを選択するための、コンフリクトバージョンセレクタまたはマニュアルコンフィギュレーションモジュールのどちらかを有する、装置。
【請求項6】
請求項5に記載の装置であって、前記コンフリクトバージョンセレクタは、前記第2コンフィギュレーションと同じバージョン識別子を有するコンフリクト機能セットを選択する、装置。
【請求項7】
請求項6に記載の装置であって、前記第2コンフィギュレーションと同じバージョン識別子を有するコンフリクト機能セットが無い場合、前記コンフリクトバージョンセレクタは、前記第2コンフィギュレーションのバージョン識別子に先行するバージョン識別子を有する前記コンフリクト機能セットを選択する、装置。
【請求項8】
請求項3に記載の装置であって、前記出力生成モジュールのバージョンが前記第2コンフィギュレーションのバージョンに対応する場合、前記出力生成モジュールからの前記出力のデータは、適切な方法で処理することができる、装置。
【請求項9】
請求項3に記載の装置であって、複数の前記出力生成モジュールがある場合、さらに、前記第2コンフィギュレーションと同じバージョン識別子を有する出力生成モジュールを選択するための出力生成モジュールセレクタを有する、装置。
【請求項10】
請求項1に記載の前記プライマリ装置を使用して、出力データを生成するためのシステム。
【請求項11】
プライマリ装置において実行され、プライマリ装置から入力され、セカンダリ装置とともに使用するための出力を生成するための方法であって、それぞれの装置が第1および第2コンフィギュレーションを有する方法が、
前記第1コンフィギュレーションが前記第2コンフィギュレーションと互換性があるか否かを決定するステップと、
前記第1コンフィギュレーションが前記第2コンフィギュレーションと互換性がある場合、前記第1コンフィギュレーションと前記第2コンフィギュレーションとの間のコンフリクトを決定するステップと、
前記互換性に関する決定と前記コンフリクトに関する決定との結果に基づいて、前記出力を生成するステップと
を有し、
決定されたコンフリクトと異なるコンフリクトがマニュアルで選択されることが可能である、方法。
【請求項12】
請求項11に記載の方法であって、前記第1コンフィギュレーションと前記第2コンフィギュレーションとのそれぞれは、バージョン識別子を有する、方法。
【請求項13】
請求項12に記載の方法であって、それぞれのバージョン識別子は、コンフリクト機能セットと関連付けられている、方法。
【請求項14】
請求項13に記載の方法であって、さらに、前記第2コンフィギュレーションのバージョン識別子と同じバージョン識別子のコンフリクト機能セットがないとき、前記第2コンフィギュレーションのバージョン識別子に先行するバージョン識別子を有するコンフリクト機能セットを選択する、ことを含む方法。
【請求項15】
請求項13に記載の方法であって、さらに、複数のコンフリクト機能セットがあるとき、マニュアルコンフィギュレーションモジュールを使用してコンフリクト機能セットを選択する、ことを含む方法。
【請求項16】
プライマリ装置上で使用するためのプログラムであって、セカンダリ装置とともに使用するための出力を生成するための前記プログラムであり、前記プログラムが、
前記プライマリ装置の第1コンフィギュレーションと前記セカンダリ装置の第2コンフィギュレーションとに互換性があるか否かを判定するステップと、
前記第1コンフィギュレーションと前記第2コンフィギュレーションとの間のコンフリクトを決定するためのステップと、
前記互換性に関する判定と前記コンフリクトに関する決定との結果に基づいて、前記出力を生成するステップと
を有し、
決定されたコンフリクトと異なるコンフリクトがマニュアルで選択されることが可能である、プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一の装置から他の装置に転送される出力データを生成するためのシステムおよび方法に関する。
【背景技術】
【0002】
クライアントとサーバとのコンピュータがあるコンピューティングシステムにおいて、クライアントソフトウェアをホストするクライアントコンピュータへ、ユーザがデータを入力する。クライアントコンピュータは、サーバコンピュータと互換性のあるフォーマットで、入力データを処理し、出力データを生成する。次いで、ユーザは、さらなる処理のために、クライアントコンピュータからサーバコンピュータに、アップロードまたはダウンロードのような、転送動作を実行する。
【発明の概要】
【発明が解決しようとする課題】
【0003】
一般に、ソフトウェアおよびアプリケーションは、複数のバージョンを有し、各後続のバージョンが拡張および/または追加機能を有する。通常、各クライアントおよびサーバコンピュータには唯一つのバージョンがある。クライアントコンピュータがサーバコンピュータのための出力データを生成する場合、出力データの生成は、サーバコンピュータにおいてサポートされているクライアントコンピュータの機能に基づいて実行される。クライアントコンピュータによって生成された出力データは、クライアントに対応するバージョンを有するサーバコンピュータ向けのみである。サーバコンピュータが異なるバージョンである場合、クライアントコンピュータは、サーバコンピュータによって、受け入れられないかもしれないし、または、正しく処理されないかもしれない、ダウンロード処理を続行してしまう。これは、データの整合性の欠如を引き起こす。
【0004】
図1に示すように、従来技術では、クライアントコンピュータは、対応するバージョンを有するサーバコンピュータのための出力を生成できるのみであることを意味する、唯一つの1対1のマッピングがある。ソフトウェアまたはアプリケーションの異なるバージョンを有するコンピューティングシステムのため、クライアントまたはサーバとして複数のコンピュータが設定されることが必要とされている。これは、処理のためのアップロードまたはダウンロード中にデータが転送されたとき、データの整合性を維持するために使用可能であるように、ソフトウェアおよびアプリケーションの対応するバージョンを保証するためである。クライアントコンピュータとサーバコンピュータのソフトウェア/アプリケーションのバージョンに互換性がないとき、データ転送は高い失敗率を有している。
【0005】
従来技術では、データ転送の成功を保証する方法は、クライアントコンピュータの入力データが、ターゲットサーバコンピュータと互換性があることを確認することである。これは、ターゲットサーバコンピュータによりサポートされている機能と、入力データの各機能を検証することによって行われる。これは、コンピュータリソース(たとえば、メモリー、プロセッサなど)と、人的リソース(比較プロセスに費やすための時間)にとって、非効率的である。
【0006】
代わりに、クライアントと、対応するサーバコンピュータは、すべての新しいソフトウェアまたはアプリケーションのバージョンを、同時にアップグレードする必要がある。しかしながら、これは、コンピューティングリソースの不要な休止時間(downtime)を引き起こす。例えば、クライアントコンピュータにおけるマイナーな拡張のための新しいバージョンは、クライアントコンピュータ上の変更に影響されない、対応するサーバにインストールされる必要はない。他の例において、クライアントはアップグレード後にさらに準備作業が必要であり、一方、対応するサーバは連続運転にしておく必要がある場合、クライアントと、対応するサーバとのためのアップグレードのスケジュールが異なることがある。
【0007】
さらに、出力データは、1つのバージョンと互換性のある出力データのみを生成することができる出力生成モジュールによって、生成される。そのため、各リビジョンのための、対応する出力生成モジュールがある。さらに、各出力生成モジュールは、出力データ形式の1つのタイプのみを生成することができる。出力データ形式が他のサーバのために異なる場合、異なる出力生成モジュールが必要とされる。
【0008】
コンピューティングシステムにとっての出力データの生成を実行するための、より最適な方法が必要とされている。
【課題を解決するための手段】
【0009】
第1の態様においては、セカンダリ装置とともに使用するための出力を生成するためのプライマリ装置が提供される。前記プライマリ装置は、前記プライマリ装置の第1コンフィギュレーションと前記セカンダリ装置の第2コンフィギュレーションとに互換性があるか否かを決定するコンフィギュレーションバリデータと;前記第1コンフィギュレーションと前記第2コンフィギュレーションとの間のコンフリクトを決定するためのコンフリクトモジュールと、を有する。前記プライマリ装置は、さらに、サポートされていない機能をスキップするかフィルタリングするかのどちらかのためのデータソースバリデータを有してもよい。
【0010】
前記第1コンフィギュレーション、前記第2コンフィギュレーション、および、出力生成モジュールのそれぞれは、好ましくは、バージョン識別子を有する。各コンフィギュレーションは、好ましくは、コンフリクト機能セットに関連付けられている。好ましくは、前記出力生成モジュールのバージョンが前記第2コンフィギュレーションのバージョンに対応する場合、前記出力生成モジュールからの前記出力のデータは、適切な方法で処理することができる。複数の前記出力生成モジュールがある場合、さらに、前記第2コンフィギュレーションと同じバージョン識別子を有する出力生成モジュールを選択するための出力生成モジュールセレクタを有する。
【0011】
複数のコンフリクト機能セットがある場合、前記コンフリクトモジュールは、さらに、コンフリクト機能セットを選択するための、コンフリクトバージョンセレクタまたはマニュアルコンフィギュレーションモジュールのどちらかを有することが好ましい。前記コンフリクトバージョンセレクタは、前記第2コンフィギュレーションと同じバージョン識別子を有するコンフリクト機能セットを選択することが好ましい。
【0012】
また、前記第2コンフィギュレーションと同じバージョン識別子を有するコンフリクト機能セットが無い場合、前記コンフリクトバージョンセレクタは、前記第2コンフィギュレーションのバージョン識別子に先行するバージョン識別子を有する前記コンフリクト機能セットを選択することが好ましい。
【0013】
第2の態様においては、プライマリ装置からの出力を受信するためのセカンダリ装置が提供される。前記セカンダリ装置は、前記プライマリ装置の第1コンフィギュレーションと前記セカンダリ装置の第2コンフィギュレーションとに互換性があるか否かを決定するコンフィギュレーションバリデータと;前記第1コンフィギュレーションと前記第2コンフィギュレーションとの間のコンフリクトを決定するためのコンフリクトモジュールと、を有する。
【0014】
第3の態様においては、前記プライマリ装置を使用して出力データを生成するためのシステムであって、前記出力データを受信する、前記セカンダリ装置を備えたシステムが提供される。
【0015】
第4の態様においては、プライマリ装置において実行され、プライマリ装置から入力され、セカンダリ装置とともに使用するための出力を生成するための方法が提供される。好ましくは、それぞれの装置が第1および第2コンフィギュレーションを有する。前記方法は、前記第1コンフィギュレーションが前記第2コンフィギュレーションと互換性があるか否かを決定するステップと;前記第1コンフィギュレーションが前記第2コンフィギュレーションと互換性がある場合、前記第1コンフィギュレーションと前記第2コンフィギュレーションとの間のコンフリクトを決定するステップと、を有する。
【0016】
前記第1コンフィギュレーションと前記第2コンフィギュレーションとのそれぞれは、バージョン識別子を有することが好ましい。それぞれのバージョン識別子は、コンフリクト機能セットと関連付けられていることが好ましい。
【0017】
前記方法は、さらに、前記第2コンフィギュレーションのバージョン識別子と同じバージョン識別子のコンフリクト機能セットがないとき、前記第2コンフィギュレーションのバージョン識別子に先行するバージョン識別子を有するコンフリクト機能セットを選択する、ことを含んでもよい。
【0018】
前記方法は、さらに、複数のコンフリクト機能セットがあるとき、マニュアルコンフィギュレーションモジュールを使用してコンフリクト機能セットを選択する、ことを含んでもよい。
【0019】
最後の態様においては、プライマリ装置上で使用するためのソフトウェアプログラムであって、セカンダリ装置とともに使用するための出力を生成するための前記ソフトウェアプログラムが提供される。前記ソフトウェアプログラムは、前記プライマリ装置の第1コンフィギュレーションと前記セカンダリ装置の第2コンフィギュレーションとに互換性があるか否かを決定するコンフィギュレーションバリデータ;前記第1コンフィギュレーションと前記第2コンフィギュレーションとの間のコンフリクトを決定するためのコンフリクトモジュールと、を有する。
【図面の簡単な説明】
【0020】
本発明がより完全に理解されるために、本発明の実施形態は、添付の図面を参照して、単なる例として、説明される。
【
図2】本発明のシステムの好ましい実施形態の概略図である。
【
図3】
図2のシステムにおいて使用される装置の構成の好適な実施形態の概略図である。
【
図5】本発明の方法の好ましい実施形態の動作フローである。
【発明を実施するための形態】
【0021】
ここで、本発明の好ましい実施形態が詳細に参照され、その実施形態の例は添付図面に示されている。好ましい実施形態と併せて本発明を説明するが、これらの実施形態に本発明を限定するものではないことが理解されるであろう。それどころか、本発明は、添付の特許請求の範囲によって定義される本発明の精神および範囲内に含まれ得る代替、変形および均等物を包含することを意図している。さらに、本発明の以下の詳細な説明において、多数の特定の詳細が、本発明の完全な理解を提供するために説明される。しかしながら、これらの特定の詳細なしに本発明を実施できることは、当技術分野の当業者には明確である。他の例では、周知の方法、手順、構成要素、および機能は、本発明の態様を不必要に不明確にしないように、詳細には説明されない。
【0022】
図2を参照すると、本発明は、システム200において、プライマリ装置202からセカンダリ装置204への出力データ210を生成するためのプライマリ装置202に関する。
プライマリ装置202の例はクライアントコンピュータであり、セカンダリ装置204の例はサーバコンピュータであり、その逆、または、同時、すなわち両方がクライアントであるか、または、両方がサーバである。装置202と装置204との両方は、少なくとも一つの共通のソフトウェアまたはアプリケーションを有している。装置202と装置204との両方におけるソフトウェアまたはアプリケーションは、異なるバージョンである。ソフトウェアまたはアプリケーションでは、各コンピュータは、コンフィギュレーション300を有している。コンフィギュレーション300の例が
図3に示されている。各コンフィギュレーション300は、いくつかのパラメータ302と機能304とを有している。これらの機能は、パラメータのためのフォーマット定義である。各コンフィギュレーションのバージョンは、コンフィギュレーション300のためのバージョン識別子を有している。新しいバージョンでは、機能の追加/バリエーション/拡張がある。
【0023】
本発明は、また、プライマリ装置202からの出力データ210を受信するための、システム200内のセカンダリ装置204に関する。プライマリ装置202の例はクライアントコンピュータであり、セカンダリ装置204の例はサーバコンピュータであり、その逆、または、同時、すなわち両方がクライアントであるか、または、両方がサーバである。両装置は、少なくとも1つの共通のソフトウェアまたはアプリケーションを有している。両装置上のソフトウェアまたはアプリケーションは異なるバージョンである。ソフトウェアまたはアプリケーションでは、各装置は、コンフィギュレーション300を有している。
【0024】
ユーザにより入力されたデータは、プライマリ装置202によって受信される。ユーザ入力データは、キーボード、タッチスクリーンディスプレイ、オートランデータファイルをともなったデータ記憶装置などの任意の入出/出力装置を使用するユーザによって手動で入力される。それに対応して、プライマリ装置202と互換性のある形式を有するソースファイルが生成される。プライマリ装置202は、さらなるデータ処理のための、ソースファイルを読み出す。入力データは、データソースデータベース206に格納される。指定されたソフトウェアまたはアプリケーションのための入力データをユーザが入力した後、ユーザは、セカンダリ装置204への出力データ210として、プライマリ装置202からの入力データを送信するための転送動作を開始する。出力データ210は、セカンダリ装置204において更なる処理を受けるデータである。あるいは、出力データ210は、セカンダリ装置204のソフトウェアまたはアプリケーションにおいてアップデートされるコンフィギュレーション300であってもよい。
【0025】
転送動作は、まず装置202、204の両方の間のネットワーク接続が確立され、次に装置202、204の両方における関連するソフトウェア間またはアプリケーション間のネットワーク接続が確立されることによって、開始される。コンフィギュレーションバリデータ208は、(プライマリ装置202の)第1と(セカンダリ装置204の)第2コンフィギュレーション212、214とが、互いに互換性があるか否かを判定する。これは、プライマリ装置202とセカンダリ装置204とのコンフィギュレーションバージョンを互いに比較することによって判定される。あるいは、これは、コンフィギュレーション内のパラメータを比較することによって行われる。
【0026】
コンフィギュレーション212、214の両方に互換性があると判定された後、コンフリクトモジュール209が、コンフィギュレーション212と214との間のコンフリクトを決定するために使用される。第1コンフィギュレーション212の少なくとも一つの機能が、この少なくとも一つの機能による出力データが第2コンフィギュレーション214に転送された場合において、コンフリクトを引き起こしたとき、コンフリクトが発生する。コンフリクトが発生する例として、第2コンフィギュレーション214において機能が発見されない場合、第2コンフィギュレーションにおける同じ機能と機能が異なる場合、構造における変化のため、機能が、第1コンフィギュレーション212における機能と同一ではない場合、などの例がある。
【0027】
コンフリクトする機能を特定するための様々な方法、および、アルゴリズムがある。好ましい実施形態において、コンフリクト機能はコンフリクト機能セットに格納される。コンフリクト機能セットのバージョンは、特定のコンフィギュレーションのバージョンと同様である。例えば、コンフィギュレーションバージョン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を有する。
【0028】
図3を参照すると、コンフィギュレーション300の概略図が、例示の目的で示されている。コンフィギュレーション300は、コンフィギュレーションセット306と、機能セット308の集合を有している。上記の説明の一部を参照すると、コンフィギュレーションバージョンN.0は、コンフィギュレーションセットバージョン1.0からNの集合である。機能セットは、コンフリクトモジュール209における、コンフリクトする機能を特定する効率を向上させている。
【0029】
コンフィギュレーション300は、前のリビジョンの機能から、異なるメモリーまたは異なる構造に、別個に、新しいリビジョンの新しい機能を格納してもよい。ストレージのこのモードは、ソフトウェアまたはアプリケーションの処理効率を向上させることができる。従って、コンフリクトセットは、関連するメモリー装置または構造から適切な方法で得られる。
【0030】
複数のコンフリクト機能セット310をともなったデータベースが存在してもよい。コンフリクト機能セットセレクタ216が、適切なコンフリクト機能セットを選択するために使用される。複数のコンフリクト機能セットのバージョンと第2コンフィギュレーション214とを比較することによって、検索が実行される。一致がある場合、コンフリクト機能セットのバージョンが第2コンフィギュレーション214と同じであり、コンフリクト機能セットは、選択された一致するバージョンである。
【0031】
一致がない場合、コンフリクト機能セットセレクタ216は、先行するバージョンを識別する。先行するバージョンは、第2コンフィギュレーション214よりも前のバージョン、および/または、最新バージョンである。
【0032】
いくつかの動作シナリオの表が、
図4Aに示される。列400は、様々なシナリオを識別する。第1/クライアントコンフィギュレーション212のバージョンは列402に示されており、第2/サーバコンフィギュレーション214のバージョンが列404に示されており、利用可能なコンフリクト機能セットのバージョンが列406で示されており、選択されたコンフリクト機能セットのバージョンが列408に示されている。シナリオAでは、第1コンフィギュレーション212のバージョンはR5.01であり、第2コンフィギュレーション214のバージョンはR5.01である。一致するものがあるため、選択されたコンフリクト機能セットは、R5.01である。
【0033】
シナリオBでは、一致するコンフリクト機能セットのバージョンが無い。第2コンフィギュレーション214のバージョンR5.02について、先行するバージョンがR5.01であるとすると、コンフリクト機能セットのバージョンR5.01が、このように選択される。コンフリクト機能セットのバージョンR5.03またはR5.04を選択することは、コンフリクトまたはエラーを引き起こすかもしれない。
【0034】
コンフリクト機能セットが、第2コンフィギュレーション214のバージョンと同じバージョンを有していない場合、コンフリクト機能セットのバージョンを選択する、ユーザのためのオプションがある。マニュアルコンフィギュレーションモジュールは、コンフリクト機能セットのバージョンを選択するために、ユーザに利用される。マニュアルコンフィギュレーションモジュールは、ユーザの選択のために、コンフリクト機能セットのバージョンのリストを提供してもよい。更なるオプションは、選択のために、機能のリストを提供することである。
【0035】
説明のためにシナリオBを使用する。、セカンダリ装置204から受信した第2コンフィギュレーション214がR5.02であり、コンフリクトバージョンセレクタ216がコンフリクト機能セットR5.01を選択する。しかしながら、ユーザは、物理的装置または他の手段からコンフィギュレーションを検証した後、第2コンフィギュレーション214は、実はR5.03であることを知っている。また、データ転送の前に解決するための時間がユーザにないために生じる、ネットワークまたは他に起因する転送エラーがありえる。別の例では、第2コンフィギュレーション214のバージョンがR5.05であり、ユーザが、新しいバージョンは、データ転送には影響しない/コンフリクトの問題を引き起こさない、追加機能やアルゴリズムの変更を有することを知っている。そのため、コンフリクト機能セットのバージョンR5.04が手動で選択されてもよい。
【0036】
有利なことに、これは、異常または予期しない状況に対して、ユーザが正常なデータ転送を完了するためのコントロールをすることを可能にするセーフティネットとして機能する。別の利点は、データソースバリデータ218が入力されたデータを検証するときであり、(検証プロセスは下記に記載される)、データソースバリデータ218は、早期にエラーをともなう出力データの生成処理を終了する代わりに、未サポート機能をスキップまたはフィルタする。
【0037】
プライマリ装置202のデータソースバリデータ218は、入力データが、選択されたコンフリクト機能セット310内の機能を含んでいるか否かを判定する。選択されたコンフリクト機能セット310内の機能が、入力データに含まれていない場合、入力データが有効であると判定される。第1コンフィギュレーション212及び/又は第2コンフィギュレーション214の機能と比較して、選択されたコンフリクト機能セットは、より少ない機能を有しているが、第2コンフィギュレーション214のすべての機能を使用する場合と比較して、入力データを検証するために、コンフリクト機能セット310の機能のより小さいリストを使用する方がより効率的である。入力データを検証することにより、セカンダリ装置204のための、より良いデータの整合性が得られる。同時に、エラーを解決することに費やす時間と労力とが低減し、メモリーの使用量が低減する。
【0038】
プライマリ装置202の出力生成モジュール220は、セカンダリ装置204に対しての出力データ210を生成するために、コンフリクト機能セット310の機能を有していない、検証された入力データの処理をする。出力データ210は、第2コンフィギュレーション214とコンフリクトする任意の機能を有していないため、出力データ210は、ソフトウェアやアプリケーションの第2コンフィギュレーション214において処理されるのに適している。出力生成モジュール220は、第2コンフィギュレーション214に適した形式で、出力データ210を生成する。
【0039】
出力生成モジュール220は、後続のコンフィギュレーションバージョンに対して、通常ユニークである。そのため、それぞれが第2コンフィギュレーション214に対応する、プライマリ装置202の複数の出力生成モジュール220がある。各出力生成モジュール220のバージョンは、バージョン識別子によって識別される。出力生成モジュールセレクタは、第2コンフィギュレーション214のバージョンと同じバージョンを有する出力生成モジュール220を選択するために使用されてもよい。選択は、複数の出力生成モジュール220のバージョンと、第2コンフィギュレーション214のバージョンとを比較することによって行われる。一致がある場合、出力生成モジュール220のバージョンが第2コンフィギュレーション214のバージョンと一致し、一致するバージョンの出力生成モジュール220が選択される。
【0040】
一致がない場合、出力生成モジュールセレクタは、続いて、先行するバージョンを識別する。先行するバージョンは、第2コンフィギュレーション214よりも前のバージョン、および/または、最新バージョンである。
【0041】
動作シナリオの別の表が、
図4Bに示される。列410は、様々なシナリオを識別する。第1/クライアントコンフィギュレーション212のバージョンは列412に示されており、第2/サーバコンフィギュレーション214のバージョンが列414に示されており、利用可能な出力生成モジュール220のバージョンが列416に示されており、選択された出力生成モジュール220のバージョンが列418に示されている。シナリオAでは、第1コンフィギュレーション212のバージョンはR5.01であり、第2コンフィギュレーション214のバージョンはR5.01である。一致するものがあるため、選択された出力生成モジュール220のバージョンは、R5.01である。
【0042】
シナリオBでは、一致する出力生成モジュール220のバージョンが無い。第2コンフィギュレーション214のバージョンR5.02について、先行するバージョンがR5.01であるとすると、出力生成モジュールのバージョンR5.01は、このように選択される。出力生成モジュール220のバージョンR5.03またはR5.04を選択することは、コンフリクトまたはエラーを引き起こすかもしれない。
【0043】
出力生成モジュール220が、第2コンフィギュレーション214のバージョンと同じバージョンを有していない場合、出力生成モジュール220のバージョンを選択するためのオプションがある。好ましくは、マニュアルコンフィギュレーションモジュールは、出力生成モジュール220のバージョンを選択するために、ユーザに利用可能である。マニュアルコンフィギュレーションモジュールは、ユーザの選択のために、出力生成モジュール220のバージョンのリストを提供してもよい。
【0044】
説明のためにシナリオBを使用して、セカンダリ装置204から受信した第2コンフィギュレーション214がR5.02であり、出力生成モジュール220のバージョンセレクタが出力生成モジュールバージョンR5.01を選択する。しかしながら、ユーザは、物理的装置または他の手段からコンフィギュレーションを検証した後、第2コンフィギュレーション214は、実はR5.03であることを知っている。また、データ転送の前に解決するための時間がユーザにないために生じる、ネットワークまたは他に起因する転送エラーがありえる。別の例では、第2コンフィギュレーション214のバージョンがR5.05であり、ユーザが、新しいバージョンは、データ転送には影響しない/コンフリクトの問題を引きここさない、追加機能やアルゴリズムの変更を有することを知っている。そのため、コンフリクト機能セットのバージョンR5.04が手動で選択されてもよい。
【0045】
出力生成モジュールセレクタは、コンフィギュレーションバリデータ208内にあることが好ましい。有利なことに、これは、システムをスケーラブルにすることができる。
ユーザが、プライマリ装置202からセカンダリ装置204へのデータ転送を実行するために、遠隔地に行こうとするとき、ユーザは、利用可能なすべてのバージョンの代わりに、関連する出力生成モジュールのバージョンを持つだけでよい。
【0046】
当然ながら、上述した処理は、プライマリ装置202とセカンダリ装置204とにおいて使用される少なくとも1つのソフトウェアプログラムによって実行される。少なくとも1つのソフトウェアプログラムがなければ、上述した処理は実行されることができないであろう。
【0047】
本発明の好ましい実施形態によれば、クライアント/プライマリ装置202内のソフトウェアまたはアプリケーションは、サーバ/セカンダリ装置204内の対応するソフトウェアまたはアプリケーションの複数のバージョンと対話することができる。各装置が異なるソフトウェアのバージョンを有する複数の装置が存在するシステムにおいて、本発明を用いて、クライアント/プライマリ装置202は、コンフリクトする機能を使用するデータを検証することにより、効率的に任意の他の装置にデータを転送することができる。データ転送のために、異なる装置に、ソフトウェアまたはアプリケーションの複数のバージョンを維持する必要はない。これは、クライアントにおいて更なる柔軟性を提供しながら、メモリーと他のリソースとのコストを削減する。
【0048】
複数のクライアント/第1のソフトウェアのバージョンの各々が異なる装置で動作するコンピューティングシステムにおいて、装置の数は最小化され、それに対応して運用コストが低減される。さらに、ユーザは、いずれのクライアントソフトウェアのバージョンが、対応するサーバソフトウェアへのデータ転送に使用可能であるかを特定する必要がない。これは、ユーザートレーニングの要件と学習コストを削減し、より少ない操作ミスや混乱を通じて、続いて、生産性が向上する。本発明は、クライアントとサーバとのソフトウェアのバージョンが異なる場合であっても、データ転送を確実に行うことが可能なため、クライアントとサーバとのソフトウェアのバージョンを、独立してアップグレードすることができ、しかも運転における信頼性がある。
【0049】
上述の1つ又は全てのモジュール−コンフリクトバージョンセレクタ、マニュアルコンフィギュレーションモジュール、データソースバリデータ218、出力生成モジュール220−は、入力データを処理するために、および、出力データ210を生成するために、プライマリ装置202、他の装置、または、外部記憶装置に格納され、アクセスされてもよい。
【0050】
コンフィギュレーションまたはコンフィギュレーションセットは、ユーザアプリケーション、サーバプロセス、または、オペレーティングシステムの設定のような任意のソフトウェアのための、パラメータ、機能、命令、定義をともなったファイルである。
【0051】
バージョン番号を含むパラメータの例は;ネットワークのTCP/IPアドレス;ドメインネーム、冗長(redundancy);マシン名;ユーザ名;ユーザーグループ;オペレーションシステム、アンチウイルス、ITセキュリティなどのソフトウェアの仕様;プロセッサ、メモリーなどのハードウェアの仕様;ライセンスキー;サーバの種類である。
【0052】
機能の例は、プロトコル、プラグイン、コンポーネント、ユニット、部品(parts)、アイテム、要素(ingredients)、部品(pieces)、セグメント、エレメント(elements)、モジュール、周辺機器および構成要素(constituents)を含む。
【0053】
本発明の別の態様によれば、出力データを生成するための装置で実行される方法500が、
図5に示される。当然のことながら、上記の段落において記載された必須の構成は、下記の段落においても同一の識別番号が付される。ステップ501において、ユーザは、プライマリ装置202に入出力装置を用いて入力データを提供する。プライマリ装置202は、所望のソフトウェアのための第1コンフィギュレーションを有している。ステップ502において、プライマリ装置202は、セカンダリ装置204との接続を確立し、プライマリ装置202の所望のソフトウェアは、セカンダリ装置204の対応する所望のソフトウェアとの接続を確立する。通信すべき両方の装置に用いられる通信プロトコルに基づいて、接続が確立される。セカンダリ装置204は、所望のソフトウェアのための第2コンフィギュレーションを有している。
【0054】
ステップ503において、第2コンフィギュレーションが、セカンダリ装置204から送信され、ステップ503において、プライマリ装置202によって受信される。第2コンフィギュレーションは、通信すべき両方の装置で用いられる通信プロトコルに基づいて送信される。ステップ504、505において、第1コンフィギュレーションと第2コンフィギュレーションとに互換性があるか否かが判定される。互換性がない場合、ステップ511において、ユーザにはエラーがプロンプトされる。
【0055】
両方のコンフィギュレーションに互換性があると判定された場合、ステップ506において、コンフリクト機能が識別される。好ましくは、コンフリクト機能セット310は、ソフトウェアまたはアプリケーション・コンフィギュレーションのバージョンごとに設けられている。コンフリクト機能セット310には、識別を容易にするために、バージョン識別子が割り当てられている。コンフリクトバージョンセレクタ216は、適切なバージョン識別子を選択する。最も適切なバージョン識別子は、第2コンフィギュレーションのバージョン識別子と同じバージョン識別子である。同じバージョン識別子が存在しない場合、第2コンフィギュレーションのバージョン識別子に先行するバージョン識別子が選択される。先行するバージョンは、第2コンフィギュレーションのバージョンよりも以前のものであり、かつ、最新のものである。
【0056】
好ましくは、マニュアルコンフィギュレーションモジュールは、手動選択がより適切である場合に、ユーザが手動でバージョン識別子を選択するために設けられている。
【0057】
ステップ507において、選択されたコンフリクト機能セット310の機能のリストが、入力データをステップ508において検証するために取得される。これは、コンフリクト機能セット310の任意の機能が、入力データの中にあるか否かを判定することにより、実行される。入力データが、コンフリクト機能セット310の任意の機能を有していないと判定された場合、出力データが生成される。入力データを検証することができない場合、ステップ511において、ユーザにはエラーがプロンプトされる。
【0058】
出力生成モジュール220は、セカンダリ装置204内のソフトウェア/アプリケーション・コンフィギュレーションの所望のバージョンに適している出力データ210を生成するために設けられている。好ましくは、各出力生成モジュール220は、バージョン識別子を有する。ステップ510において、適切な出力生成モジュール220が選択される。適切な選択は、第2コンフィギュレーションと同じバージョン識別子を有する出力生成モジュール220である。選択された出力生成モジュール220は、次に、ステップ512において、出力データを生成するためにロードされる。ステップ513において、出力データが、プライマリ装置202からセカンダリ装置204に転送される。転送は、通信すべき両方の装置202、204に用いられる通信プロトコルに基づいている。
【0059】
また、当然ながら、上述した方法500は、プライマリ装置202とセカンダリ装置204とにおいて使用される少なくとも1つのソフトウェアプログラムによって実行される。少なくとも1つのソフトウェアプログラムがなければ、上述した方法500は実行されることができないであろう。
【符号の説明】
【0060】
200 システム
202 プライマリ装置
204 セカンダリ装置
206 データソースデータベース
208 コンフィギュレーションバリデータ
209 コンフリクトモジュール
210 出力データ
212 第1コンフィギュレーション(クライアントコンフィギュレーション)
214 第2コンフィギュレーション(サーバコンフィギュレーション)
216 コンフリクト機能セットセレクタ(コンフリクトバージョンセレクタ)
218 データソースバリデータ
220 出力生成モジュール
300 コンフィギュレーション
302 パラメータ
306 コンフィギュレーションセット
308 機能セット
310 コンフリクト機能セット