(57)【要約】      （修正有）【課題】エンタープライズ・システムにおいて展開されるソフトウェアを作製する。【解決手段】ソフトウェアは最初ベースパッケージ２１０を含み、現在は拡張パッケージ２２０及び２３０を含む。拡張パッケージ２４０は、ベースパッケージ２１０に対し、重複ファイルと新たなファイルを含む。コンピュータを使用して、ファイルの特性を識別する、各ベースパッケージ２１０及び拡張パッケージ２２０、２３０及び２４０のファイルのインデックスを作成し、インデックスに記載されたファイルの特性を比較して、拡張パッケージ２４２の重複ファイル及び新たなファイルを識別し、新たなファイルのみを含む展開パッケージを作成することを含む。【選択図】図２
2014235738.tif 000002
【特許請求の範囲】
【請求項１】
エンタープライズ・システム（１１０）において展開されるソフトウェアを作製する方法であって、前記ソフトウェアはベースパッケージ（２１０）と拡張パッケージ（２２０）とを含み、前記拡張パッケージ（２２０、２３０及び２４０）は、前記ベースパッケージ（２１０）に対する重複ファイル及び新たなファイルを含み、前記方法はコンピュータを使用して、
前記ベースパッケージ及び前記拡張パッケージ（２２０、２３０及び２４０）各々の前記ファイルの特性を識別するファイルのインデックス（３２０）を作成することと、
前記インデックス（３２０）に記載された前記ファイルの特性を比較して、前記拡張パッケージ（３３０）の前記重複ファイル及び前記新たなファイルを識別することと、
前記新たなファイルのみを含む展開パッケージ（３４０）を作成することとを含み、
展開は、拡張パッケージをインストールする代わりに前記新たなファイルのみをインストールすることによって実施され、これにより、増分ソフトウェアパッケージがインストールされ、ネットワークトラフィック及び必要なサーバスペースが削減される階層化アプローチが可能になる方法。
【請求項２】
前記インデックス（３２０）を作成することが、各ファイルの暗号化ハッシュ関数を生成することを含み、前記ファイルを比較することが、前記暗号化ハッシュ関数を比較することを含む、請求項１に記載の方法。  
【請求項３】
前記展開パッケージを、前記エンタープライズ・システム（１１０）のエンドユーザのコンピュータ（３５０）に送ることをさらに含む、請求項１に記載の方法。
【請求項４】
新たな拡張パッケージ（２４０）が入手可能になった場合、前記新たな拡張パッケージ（２４０）に対して新たなファイルのインデックスが作成され、前記新たなファイルのインデックスが前記以前の拡張パッケージ（３３０）のファイルのインデックス（３２０）と比較されて前記新たな拡張パッケージ（２４０）において新たなファイルが識別され、新たな展開パッケージ（３４０）は、前記新たな拡張パッケージ（２４０）の前記新たなファイルのみから作成される、請求項１に記載の方法。  
【請求項５】
前記重複ファイルを識別することが、各拡張パッケージ（３３０）をその直前のパッケージとのみ比較することを含む、請求項４に記載の方法。    
【請求項６】
再帰的反復を使用して、前記重複ファイルが識別される、請求項１に記載の方法。
【請求項７】
拡張ソフトウェアパッケージ（２３０）と前のパッケージ（２２０）のファイルのインデックス（３２０）を作成することであって、前記インデックス（３２０）により前記ファイルの特性が識別され、前記拡張パッケージ（２４０）は前のパッケージ、及びその上に加わった新たなファイルのすべてのファイルを含む、作成することと、
前記インデックス（３２０）に記載される前記ファイルの特性（３３０）を比較して、前記拡張パッケージ（２４０）の前記重複ファイルと前記新たなファイルを識別することと、
前記拡張パッケージ（２４０）に前記新たなファイルのみを含む展開パッケージ（３４０）を作成することであって、展開は、拡張パッケージをインストールする代わりに前記新たなファイルのみをインストールすることによって実施され、これにより、増分ソフトウェアパッケージがインストールされ、ネットワークトラフィック及び必要とされるサーバスペースが削減される階層的アプローチが可能になる、作成することと
を実施するようにプログラミングされるコンピュータを備えるシステム。
【請求項８】
前記コンピュータが、各ファイルの暗号化ハッシュ関数を作成するようにプログラミングされ、前記コンピュータが、前記暗号化ハッシュ関数を比較することによって前記ファイルを比較するようにプログラミングされている、請求項７に記載のシステム。
【請求項９】
前記コンピュータが、前記展開パッケージ（３４０）をエンタープライズ・システム（１１０）のエンドユーザのコンピュータ（１３０）へ送るようにさらにプログラミングされている、請求項７に記載のシステム。
【請求項１０】
前記重複ファイルが再帰的反復によって識別される、請求項７に記載のシステム。    
【発明の詳細な説明】
【技術分野】
【０００１】
航空宇宙、自動車及び造船産業の会社は、概念化、設計、製造、及びエンジニアリングを含む製品開発の複数の段階において、市販のＣＡＤ／ＣＡＭソフトウェアを使用する。エンタープライズ・システムにおける何千ものエンドユーザが製品開発に貢献している。
【背景技術】
【０００２】
民間のベンダーは、ＣＡＤ／ＣＡＭソフトウェアをベースパッケージとして提供する。ベースパッケージをインストールすることによって、各エンドユーザのコンピュータにソフトウェアのベースコンフィギュレーションがインストールされる。  
【０００３】
拡張パッケージをインストールすることによって、その後ベースコンフィギュレーションに新たな機能性が追加される。通常、各拡張パッケージは、前のパッケージのすべてのファイルと、その上に追加のファイルを含む。ベースコンフィギュレーションは、第１拡張パッケージをインストールすることによってアップグレードされる。その後、アップグレードされたコンフィギュレーションは、第２拡張パッケージをインストールすることなどによってさらにアップグレードされる。
【０００４】
各拡張パッケージにより、前のすべてのファイルが置き換えられる。再コンフィギュレーションと認証には時間がかかる場合がある。エラーが発生しうる。適切に機能していた前のコンフィギュレーションが適切に機能しなくなる可能性がある。何千ものエンドユーザがいるエンタープライズ・システムでは、再コンフィギュレーションと認証は高くつく可能性がある。  
【０００５】
より良い方法が望まれる。
【発明の概要】
【０００６】
本明細書の実施形態によれば、本方法において、エンタープライズ・システムにおいて展開されるソフトウェアが作成される。このソフトウェアには、ベースパッケージと拡張パッケージが含まれ、拡張パッケージには、ベースパッケージに対する重複ファイル及び新たなファイルが含まれる。この方法は、コンピュータを使用して、各ベースパッケージ及び拡張パッケージに対してファイルの特性を識別するインデックスを作成し、インデックスに記載されたファイルの特性を比較して、拡張パッケージの重複ファイル及び新たなファイルを識別し、新たなファイルのみを含む展開パッケージを作成することを含む。この方法はさらに、サイズによってパッケージを分類するステップを含むことが好ましく、展開パッケージを作成する前に、新たなファイルからユーザ固有情報を除去することによって、エンドユーザが、展開パッケージをインストールした後で、ユーザ固有情報を追加することができるようになるステップを含むことがさらに好ましい。上述の方法においては、展開パッケージはリンクされておらず、ソフトウェアは、各パッケージが少なくとも１０万個のファイルを有するＣＡＤ／ＣＡＭソフトウェアであり、展開パッケージを作成することが、圧縮ファイルごとに数およびファイルサイズ要件を満たしながら圧縮ファイルを作成することを含む。  
【０００７】
本明細書の別の実施形態によれば、システムは、拡張ソフトウェアパッケージ及び前のパッケージのファイルの特性を識別する、ファイルのインデックスを作成するようにプログラミングされたコンピュータを備える。拡張パッケージは、前のパッケージと、その上に加わった新たなファイルのすべてのファイルを含む。このコンピュータはさらに、インデックスに記載されたファイルの特性を比較して、拡張パッケージの重複ファイルと新たなファイルを識別し、拡張パッケージの新たなファイルのみを含む展開パッケージを作成するようにプログラミングされている。
【０００８】
本発明の別の実施形態によれば、製品は、コンピュータに拡張ソフトウェアパッケージのすべてのファイルの特性を識別させ、ファイルの特性を比較して拡張パッケージにおけるすべての重複ファイルを識別させ、また拡張パッケージの新たなファイルのみを含む展開パッケージを作成させる、データでコード化されたコンピュータ可読メモリを含み、拡張パッケージは、前のパッケージと、その上に加わった新たなファイルのすべてのファイルを含む。
【０００９】
これらの特徴および機能は、種々の実施形態において単独で達成することも、他の実施形態において組み合わせることもできる。実施形態のさらなる詳細は、下記の説明及び図面を参照することによって理解することができる。
【図面の簡単な説明】
【００１０】
【図１】ソフトウェアインテグレータ（１２０）と、エンドユーザのコンピュータを含む、エンタープライズ・システムの図である。
【図２】ベースパッケージと、いくつかの拡張パッケージの図である。
【図３】エンタープライズ・システムにおいて展開されるソフトウェアを作製する方法の図である。
【図４】エンタープライズ・システムにおいて展開されるソフトウェアを作製する方法の図である。
【図５】エンタープライズ・システムにおいて展開されるソフトウェアを作製するコンピュータの図である。
【発明を実施するための形態】
【００１１】
図１を参照する。図１は、ネットワーク１４０を介して複数のエンドユーザのコンピュータ１３０と通信するソフトウェアインテグレータ１２０と呼ばれるコンピュータシステムを含むエンタープライズ・システム１１０を示すものである。エンタープライズ・システム１１０には、何千ものエンドユーザのコンピュータ１３０がある。一実施例では、ソフトウェアインテグレータ１２０により、市販のＣＡＤ／ＣＡＭソフトウェアがエンドユーザのコンピュータ１３０に分配される。エンドユーザのコンピュータ１３０は、市販のＣＡＤ／ＣＡＭソフトウェアを製品開発に利用する。    
【００１２】
ソフトウェアは最初にベースパッケージとして展開され、ベースパッケージは各エンドユーザのコンピュータ１３０にインストールされる。時間が経過すると、ソフトウェアインテグレータ１２０により、このエンドユーザの幾つかの、あるいは全てのコンピュータ１３０にアップグレードソフトウェアが提供される。アップグレードは拡張パッケージの形態で提供される。
【００１３】
ソフトウェアの種々のパッケージを示す図２をさらに参照する。パッケージは、ベースパッケージ２１０、第１拡張パッケージ２２０、第２拡張パッケージ２３０、及び第３拡張パッケージ２４０を含む。この３つの拡張パッケージ２２０〜２４０は、実施例としてのみ示すものである。実際には、ベースパッケージ２１０と、一又は複数の拡張パッケージが含まれる。      
【００１４】
ベースパッケージ２１０には、ファイルのオリジナルセット２１２が格納される。第１拡張パッケージ２２０には、ファイルのオリジナルセット２１２、及び新たなファイルの第１セット２２２が格納される。第２拡張パッケージ２３０には、オリジナルセット２１２と第１セット２２２、及び新たなファイルの第２セット２３２が格納される。第３拡張パッケージ２４０には、オリジナルセット２１２、第１セット２２２と第２セット２３２、及び新たなファイルの第３セット２４２が格納される。  
【００１５】
アップグレードを実施するためには、管理コンピュータは、拡張パッケージをエンドユーザのコンピュータ１３０へ送らない。代わりに、管理コンピュータは新たなファイルのみを含む展開パッケージを送る。エンドユーザのコンピュータ上のソフトウェアは、新たなファイルをインストールするだけで改善される（例：新しい機能性が追加される）。  
【００１６】
ここで図３を参照する。図３は、ベースパッケージと拡張パッケージから展開パッケージを作成する方法を示す。この方法は、ソフトウェアインテグレータ１２０によって行われる。  
【００１７】
ブロック３１０において、比較のためにパッケージがサイズによって分類される。この分類は、ベースパッケージと、拡張パッケージの順序付けを識別するために行われる。ベースパッケージが最も小さく、次のパッケージはそれぞれ前のパッケージよりも大きくなる。
【００１８】
ブロック３２０において、ベースパッケージと拡張パッケージそれぞれに対しファイルのインデックスが作成される。各インデックスは、パッケージのファイルの特性を識別するものである。特性の例には、非限定的に、ファイル名とファイルサイズが含まれる。
【００１９】
別の特性は、固有の識別子である。例えば、各ファイルに対して暗号化ハッシュ関数が算出される。各ファイルは、固有の暗号化ハッシュ関数を有する。例えば、ＭＤ５メッセージ・ダイジェストアルゴリズム（チェックサム）等の暗号化ハッシュ関数が算出される。ファイルのＭＤ５ハッシュは、ファイルのコンテンツを１２８ビットの指紋にコード化することによって算出される。
【００２０】
ブロック３３０において、インデックスに記載されるファイルの特性が比較され、拡張パッケージの重複ファイルと新たなファイルが識別される。例えば、暗号化ハッシュ関数が比較され、新たなファイルと拡張ファイルが識別される。    
【００２１】
ブロック３４０において、新たなファイルのみを含む展開パッケージが作成される。ブロック３５０において、エンタープライズ・システムのエンドユーザのコンピュータへ展開パッケージが送られる。エンドユーザのコンピュータは、新たな拡張パッケージをインストールする代わりに、新たなファイルのみをインストールすることによってアップグレードを実施する。
【００２２】
図２に示すソフトウェアを考察する。ベースパッケージ２１０が展開されインストールされた後、新たなアプリケーションと新たな機能性が開発される。ソフトウェアベンダーは、第１拡張パッケージ２２０の新たなファイル２２２においてこれらの新たなアプリケーション及び機能性を利用可能にする。図３の方法は、ベースパッケージ２１０及び拡張パッケージ２２０において行われ、第１展開パッケージが作られる。第１展開パッケージには、新たなファイル２２２のみが格納されている。    
【００２３】
後に、ソフトウェアベンダーによって第２拡張パッケージ２３０が利用可能になる。図３の方法は、第１拡張パッケージ２２０及び第２拡張パッケージ２３０において実施されて第２展開パッケージが作られる。第２展開パッケージには、第２拡張パッケージ２３０の新たなファイルのみが格納されている。    
【００２４】
後に、ソフトウェアベンダーによって第３拡張パッケージ２４０が利用可能になる。図３の方法は、第２拡張パッケージ２３０及び第３拡張パッケージ２４０において実施され、第３展開パッケージが作られる。第３展開パッケージには、第３拡張パッケージ２４０の新たなファイルのみが格納されている。
【００２５】
この結果、新たなアプリケーション及び機能性を提供するために増分パッケージが追加される、アップグレードへの階層化アプローチが可能になる。各エンドユーザが拡張パッケージをインストールする代わりに、エンドユーザのコンピュータは、前のパッケージに格納されていなかったファイルのみをインストールする。完全なコンフィギュレーションがインストールされないため、再コンフィギュレーションエラーが回避され、認証時間が短縮される。以前のコンフィギュレーションが機能している場合、そのコンフィギュレーションのファイルが置き換えられていないために、機能が継続する。新たなファイルのみがインストールされる。その他の利点には、ネットワークトラフィックを減らす、エンドユーザのコンピュータのハードディスクのスペースを節約する、複数のコンフィギュレーションを保存するのに要するサーバのスペースを節約することが含まれる。このような節約は、単独のエンドユーザのコンピュータにとってはささいなものに見えるかもしれないが、何百万ものファイルを含むパッケージ、また何千ものエンドユーザのコンピュータを有するエンタープライズ・システムにとっては重大である。  
【００２６】
展開パッケージが作られる際に、大幅な時間及びリソースもまた節約される。本明細書の方法は、市販のソフトウェアを使って数ギガバイトのデータを処理して何百万ものファイルが格納されたパッケージのファイルを手動で比較し、その後で重複していないファイルのみを分配するよりも迅速でエラーが起きにくい。
【００２７】
ブロック３１０における分類を使用して、「リンクされていない」展開パッケージが作成される。「リンクされていない」とは、展開パッケージの任意の組み合わせをインストールすることができるという意味である。対照的に、拡張パッケージはリンクされているため、各拡張パッケージはベースファイルを含む必要があり、最新の拡張パッケージをインストールする前に、以前のパッケージをすべてインストールしなければならない。
【００２８】
通常、各エンドユーザのコンピュータのソフトウェアは、第１展開パッケージをインストールした後に、第２展開パッケージをインストールし、その後、第３パッケージをインストールする等によってアップデートされる。しかしながら、本明細書に記載の方法はそれほど限定されていない。ある場合には、エンドユーザのコンピュータは一又は複数の拡張パッケージを省略することができる。例えば、ベースコンフィギュレーションは第１展開パッケージ、そして次に第３展開パッケージでアップグレードされるが、第２展開パッケージではアップグレードされない。  
【００２９】
本明細書に記載の方法は、特定の種類のソフトウェア成果物に限定されない。ある実施例では、ソフトウェアはＣＡＤ／ＣＡＭソフトウェアである。航空機のような複雑な製品の設計においては、各パッケージに何十万ものファイルが格納されており、何千ものエンドユーザが使用する。  
【００３０】
別の実施例では、本明細書に記載の方法を使用して、ドキュメンテーションがアップデートされる。ベースパッケージがインストールされた後で、任意の拡張パッケージのファイルが次にインストールされる。すべてのファイルをインストールする必要はない。例えば、ベースパッケージのオリジナルファイルと、第２拡張パッケージの新たなファイルがインストールされるが、第１拡張パッケージの新たなファイルはインストールされない。  
【００３１】
さらに別の実施例では、本明細書に記載の方法を使用して、コンピュータのオペレーティングシステムがアップデートされる。新たなファイルのみが追加される。    
【００３２】
ここで図４を参照する。図４は、エンタープライズ・システムにおいて展開されるソフトウェアを作製する方法のさらに詳細な実施例を示す。ブロック４１０において、現在のパッケージと前のパッケージのファイルのインデックスが作成される。各ファイルのＭＤ５メッセージが算出される。したがって、ＭＤ５メッセージによって各インデックスの各ファイルが識別される。インデックスはＸＭＬファイル、テキストファイル等の形態であってよい。ブロック４２０では、サイズによってパッケージが分類される。    
【００３３】
ブロック４３０では、現在の拡張パッケージのインデックスにおいて重複ファイルを識別するために再帰的反復が行われる。ブロック４３０のコンテンツは、再帰的アルゴリズムの一例を提供するものである。  
【００３４】
ブロック４４０において、ユーザ固有情報が新たなファイルから除去される。これにより、展開パッケージがインストールされた後で、エンドユーザがユーザ固有情報を追加することが可能になる。これによりインストール時間が短縮されることが確認されている。  
【００３５】
ブロック４５０において、新たなファイルから展開パッケージが作成される。このステップは、ネットワーク制約、及び分配媒体の制約にしたがって、圧縮ファイルごとの数及びファイルサイズ要件を満たしながら、圧縮ファイルを作成することを含む。ある実施形態では、展開パッケージのサイズはユーザによって定義される。  
【００３６】
圧縮ファイルは、自己解凍型である。自己解凍型ファイルにより、エンドユーザのコンピュータにおいてアップグレードを完全に自動化することが可能になる。  
【００３７】
ブロック４６０において、展開パッケージに認証ファイルが含められる。認証ファイルは、パッケージのソフトウェアベンダーによって最初に作製された第１認証ファイルを含む。第１認証ファイルは、パッケージとともに含まれるべきすべてのファイルを識別する。対応する展開パッケージがインストールされた後で、エンドユーザのコンピュータはインストールされたコンフィギュレーションの第２ファイルを作成し、第１ファイルと第２ファイルを比較する。２つのファイルが同一である場合、インストールは完了である。ソフトウェアインテグレータによる認証の監視は必要ない。  
【００３８】
図５は、エンタープライズ・システムにおいて展開されるソフトウェアを作製するコンピュータ５１０の図である。コンピュータ５１０は、プロセッサ５２０と、コード５４０でコード化されたコンピュータ可読メモリ５３０を含む。コード５４０が実行されると、コンピュータ５１０はベースパッケージ、及び拡張パッケージそれぞれに対してファイルのインデックスを作成し、このインデックスを使用して各拡張パッケージの重複ファイルと新たなファイルを識別し、新たなファイルのみを含む一又は複数の展開パッケージを作成する。図１のソフトウェアインテグレータ１２０は、一又は複数のこのようなコンピュータ５１０を含む。
【符号の説明】
【００３９】
１１０    エンタープライズシステム
１２０    ソフトウェアインテグレータ
１３０    エンドユーザのコンピュータ
１４０    ネットワーク
２１０    ベースパッケージ
２１２    オリジナルファイルセット
２２０    拡張パッケージ１
２１２    オリジナルファイルセット
２２２    第１ファイルセット
２３０    拡張パッケージ２
２３２    第２ファイルセット
２４０    拡張パッケージ３
２４２    第３ファイルセット
５１０    コンピュータ
５２０    プロセッサ
５３０    メモリ
５４０    コード
【図１】
2014235738.tif 000003
【図２】
2014235738.tif 000004
【図３】
2014235738.tif 000005
【図４】
2014235738.tif 000006
【図５】
2014235738.tif 000007
【外国語明細書】
2014235738000001.pdf
2014235738000002.pdf
2014235738000003.pdf
2014235738000004.pdf