JP2007535770A - 非協調ソフトウェアプロジェクトをスタックさせるためのツール - Google Patents

非協調ソフトウェアプロジェクトをスタックさせるためのツール Download PDF

Info

Publication number
JP2007535770A
JP2007535770A JP2007511035A JP2007511035A JP2007535770A JP 2007535770 A JP2007535770 A JP 2007535770A JP 2007511035 A JP2007511035 A JP 2007511035A JP 2007511035 A JP2007511035 A JP 2007511035A JP 2007535770 A JP2007535770 A JP 2007535770A
Authority
JP
Japan
Prior art keywords
information
project
projects
stack
software
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.)
Pending
Application number
JP2007511035A
Other languages
English (en)
Inventor
コープ、ロッド
ウェイドナー、エリック
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
OpenLogic Inc
Original Assignee
OpenLogic Inc
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 OpenLogic Inc filed Critical OpenLogic Inc
Publication of JP2007535770A publication Critical patent/JP2007535770A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment

Abstract

オープンソースプロジェクトなど複数の非協調コンポーネントを含むソフトウェアスタックをアセンブルすることに関連する、幾つかの問題点に対処するためのツールを提供する。このツールはスタック用の個々のプロジェクトを識別し、従属関係を管理して、直感的なグラフィカルインタフェースを提供してユーザを補助する。また、フィルタ基準に従ってプロジェクトへのアクセス又はプロジェクトのインストールを制御するための、プロジェクトフィルタも提供する。このようにして、オープンソースその他のソフトウェアの使用に関する内部ポリシーのコンプライアンスが行われる。

Description

本発明はオープンソースプロジェクトなどスタックさせて利用可能なプロジェクトを含む、ソフトウェアプロジェクトに関する。より詳細には、本発明はソフトウェアスタックをアセンブル、インストール及びサポートする、即ち、ソフトウェアスタックのサービスを提供するためのツールに関する。
従来、ソフトウェア・パッケージはプロプライエタリな(proprietary)アプリケーションから形成されていた。それらのアプリケーションは一般に単一のソースによって又は産業パートナによって提供されており、そうしたパッケージ化を容易にするために協調手法により開発されている。しかしながら、そうしたパッケージのアセンブリ及び使用は、関連するライセンスによって一般に制限されている。さらに最近では、オープンソースソフトウェアの重要性及び利用可能性が急速に成長している。一般には、オープンソースソフトウェアではソースコードの複製及び改変が可能であるとともに、任意の目的でソフトウェアを使用することに加え、ソフトウェアを改変及び再頒布することの自由がユーザに一般に与えられている。これに関して、プロプライエタリソフトウェアのソースコードはエンドユーザには一般に利用可能でなく、またプロプライエタリソフトウェアのライセンスでは使用、複製、改変及び再頒布に対し厳しい制限が一般に設けられている点で、オープンソースソフトウェアはプロプライエタリソフトウェアから区別される。これに加えて、オープンソースソフトウェアは一般に無料又は妥当な複製料で利用可能とされるのに対し、多くの場合、プロプライエタリソフトウェアは利益目的で提供される。
オープンソースソフトウェアにはエンドユーザに対する幾つかの潜在的な利点が存在する。まず、エンドユーザがソースコードを利用可能であり、ライセンスにより実質的に自由な使用及び改変が許されているため、エンドユーザは特定の利用(endeavor)に対しコードを適合及び最適化するための大きな柔軟性を有する。これに関して、エンドユーザは特定のプロプライエタリシステムに束縛されない。これに加えて、オープンソースソフトウェアは非常に高品質であるとの傾向が研究により示されている。即ち、ソフトウェアのオープン性のため及び事実上ピアレビューの機会が無制限であるため、オープンソースソフトウェアでは一般に継続的に品質が改善される。さらに、オープンソースソフトウェアは一般に無料又はわずかなコストで利用可能であり、オープンソースソフトウェアをコスト効果的に使用する大きな可能性が存在する。これらの理由及び他の理由のため、多くの政府その他の団体は自身の制御下にあるシステムにおいて、プロプライエタリソフトウェアからオープンソースソフトウェアへの移行を必須とするか又は推奨している。
しかしながら、オープンソースソフトウェアその他の独立に開発されるソフトウェア、即ち、非協調ソフトウェアの潜在的な利点を完全に実現することに関して、現時点では大きな障害が存在する。そうした課題の1つはソフトウェアスタックをアセンブルすることである。通常、ソフトウェアシステム、アプリケーション又はツール(「プロジェクト」)は単独では機能しない。そればかりか、特定のプロジェクトがその適正な動作の前提要件として別のプロジェクト(例えば、オープンソースプロジェクト又はプロプライエタリプロジェクト)を必要とし、インストールされ、他のプロジェクトによって使用される場合がある。これらの垂直的な従属関係のため、複数のプロジェクトを含むソフトウェアスタックをエンドユーザが必要とする又は所望することが多くある。そのようなスタックのアセンブルには、利用に必要な個々のプロジェクトの識別や、従属関係の対処が含まれる
。これには、相当な専門技術及び時間が必要とされる場合がある。一部のオープンソースプロバイダは協調プロジェクト又はスタックを提供しているが、オープンソースソフトウェアは非協調である傾向がある。
一定のオープンソースソフトウェアなどの非協調ソフトウェアの使用に関連する別の困難は、インストールに関する。インストールには、種々の機械構成の問題点(issue)の対処、ソフトウェアプロジェクトの統合、競合の解決及び個々のプロジェクトの適正な相互動作やプロジェクト及び機械コンポーネント間の相互動作のテストが含まれる。インストールにおいても、相当な専門技術及び時間が必要とされる場合が多い。
これに加えて、そうした非協調ソフトウェアの使用に関して、幾つかのインストール後の問題点が存在する。例えば、ソフトウェアの使用には、ユーザマニュアルその他の文書を時々参照することが必要な場合がある。複数の非協調(例えば、オープンソース)プロジェクトを含むスタックにおいては、そのような文書が容易に利用可能でない場合がある。個々のプロジェクトにおいて文書が利用可能なときであっても、そのような文書は特定のソフトウェアスタックの環境に適合されていない場合がある。同様に、ソフトウェアスタック環境において、チュートリアルなどの訓練教材が利用可能でない場合や、最適化されていない場合がある。他のインストール後の問題点は、プロジェクトをアンインストールすること又はインストールされたプロジェクト又はスタックを改変することに関する。
本発明は、非協調プロジェクトを含む複数のプロジェクトからなるソフトウェアスタックをアセンブル、インストール及びサポートすること、即ち、ソフトウェアスタックのサービスを提供することに関する。プロジェクトは、プロプライエタリソフトウェアアプリケーション及びオープンソースプロジェクトなど、特定のアプリケーション用のソフトウェアコンポーネントである。スタックは、プロジェクトが機能ライブラリなど1つ以上のロジックリソースを共有するか、又は協調的かつ従属的に動作するよう構成されるように、2つ以上のプロジェクトを処理環境(単一の機械又は分散型)にインストールすることによって定義される。即ち、2つのプロジェクトは、プロジェクトのうちの第1のプロジェクトが第1のプロジェクトのアプリケーションの実質的な部分を定義する機能を実行するために、他の(第2の)プロジェクトなどのプロジェクトを必要とする、という従属関係を有する。したがって、それらのプロジェクトは垂直的に統合されている。これに関して、非協調プロジェクトは、スタックにおいてそのように協調的かつ従属的に動作するように特に事前に構成されていない。例えば、そうしたプロジェクトは独立に作業する複数の者によって、即ち、オープンソース開発者によって開発される。
詳細には、本発明は、複数の非協調コンポーネントを含むソフトウェアスタックに関する幾つかの上述の問題点に対処するためのツールに関する。このツールは、個々のプロジェクトを識別し、従属関係を管理して、直感的なグラフィカルインタフェースを提供してユーザを補助することによって、スタックアセンブリを容易とする。これに加えて、このツールは機械構成の問題点に対処し、競合を解決して、少なくとも部分的に自動化されたテストを実行することによって、インストールを容易とする。また、このツールは適切な文書及び訓練ツールの生成を含むインストール後の幾つかの問題点に対処するほか、プロジェクトのデインストール(de−installation)を容易とすることにより、プロジェクト及びソフトウェアスタックの置換の変更にも対処する。
本発明の一態様では、非協調ソフトウェアプロジェクトのスタックへの便利なアクセスを可能とするための方法及び装置(集合的には「ユーティリティ」)を提供する。詳細には、このユーティリティは対象のスタックに関する入力を受信する工程と、可能なスタックに関する情報にアクセスする工程と、入力に応答してスタック情報を出力する工程とを
含む。ユーザ又はユーザシステムの観点からは、このユーティリティは非協調ソフトウェアプロジェクトの(から形成される)スタックに関するスタック情報を提供するためにシステムにアクセスする工程と、対象のスタックに関する入力(例えば、ローカルプロセッサ又はリモートプロセッサへの)を送出する(submit)工程と、入力に応答してスタック情報を受信する工程とを含む。スタック情報には、例えば、1つ以上の可能なスタックのプロジェクト内容の識別と、1つ以上のスタックとしてのインストール用のプロジェクトと、1つ以上の可能なスタックのインストール情報とのうちの1つ以上が含まれてよい。これに関して、例えば、スタック又はスタックを定義する情報は入力に応答するプロジェクト又はプロジェクト情報からアセンブルされてもよく、そうしたスタック又はスタックを定義する情報が予め決定され、記憶されてもよい。即ち、スタック情報は種々の時及び種々の手法においてアセンブル可能である。いずれの場合においても、例えば、1つ以上のオープンソースプロジェクトを含む非協調ソフトウェアプロジェクトから形成されるスタックを、アセンブルする際、インストールする際、又はその両方の際に有用な情報に対し便利なアクセスが提供される。
本発明の別の態様では、ソフトウェアプロジェクトのスタックをアセンブルするためのユーティリティを提供する。即ち、このユーティリティはスタックのプロジェクト内容を判定する際に有用である。さらに、このユーティリティがスタックのアセンブリに関する競合、依存性特性その他の問題点を識別する際、解決する際、又はその両方の際に有用であり得ることは認められるであろう。このユーティリティは、コンピュータベースツールを操作して対象のスタックに関する入力情報を受信し、スタックの第1のプロジェクトの少なくとも第1の特性を判定し、スタックの第2のプロジェクトに関する情報を提供する工程を含む。入力情報により、例えば、このスタックの機能が識別されてよく、スタックに含まれる第1のプロジェクトが識別されてよく、又はその他、スタックをアセンブルするために初期情報が提供されてよい。
この入力情報に基づき、コンピュータベースツールは第1のプロジェクトの第1の特性を判定するように動作する。第1の特性は、例えば、第1のプロジェクトの従属関係又はリソース要件に関連してよい。これに関して、コンピュータベースツールは第1のプロジェクトの従属する1つ以上のプロジェクトを識別してもよく、第1のプロジェクトによって満たされる従属性を有する1つ以上のプロジェクトを識別してもよく、ポートその他のリソース要件に関連してもよい。この特性は、このスタックの第2のプロジェクトに関する情報を提供するために用いられる。したがって、例えば、従属関係、競合などがユーザへの出力において識別されるか、スタックアセンブリを補助するために解決されてよい。例えば、1つ以上のグラフィカルユーザインタフェースにより、所望のスタックアセンブリを完了するために解決する従属性及び競合が識別される。
このユーティリティを用いて、非協調プロジェクトのアセンブリを行うことが可能である。これに関して、第1及び第2のプロジェクトが非協調プロジェクトであってもよく、オープンソースプロジェクト、プロプライエタリプロジェクト、他のプロジェクト又はそれらの組み合わせであってもよい。好適には、スタックのうちの1つ以上のプロジェクトはツール、即ち、スタックのオペレーティングシステムレベルより上のスタックのアプリケーションレイヤにて動作する。
本発明の別の態様では、サポートされるプロジェクトのセットに関する情報及び従属性情報を含む知識ベースに対する参照によってスタックをアセンブルするためのユーティリティを提供する。詳細には、このユーティリティはソフトウェアプロジェクトのセットを識別する工程と、そのソフトウェアプロジェクトのセットにおいて、ソフトウェアプロジェクトの相互動作に関する従属関係のセットを判定する工程とを含む。コントローラは、従属関係を反映し、かつ、従属関係に基づくソフトウェアプロジェクトのうちの特定の1
つに関する情報にアクセスするための論理を含む。動作中、コントローラはプロジェクトのスタックをアセンブルする際に対象を示し、かつ、少なくともタイプによって、このスタックに含まれる少なくとも第1のプロジェクトを識別する、ユーザ入力を受信する。このユーザ入力及び従属関係に基づき、コントローラはスタックに含まれる少なくとも第2のプロジェクトを識別する。例えば、ユーザはスタックによって実行される特定の機能を指示してもよく、ユーザが使用の興味を有する特定のプロジェクトを指示してもよい。識別される機能の場合、コントローラはユーザが所望のプロジェクトを選択可能な機能に関連付けられているプロジェクトオプションを識別してもよい。いずれの場合においても、プロジェクトが識別されると、記憶済みの従属関係を用いて、前提要件プロジェクト、第1のプロジェクトによって使用されるプロジェクト及びさらなる関連する従属性を識別することが可能である。第1のプログラムグループと第2のプログラムグループとの間に、そうした従属関係が存在し得ることは認められるであろう。その場合、各グループはプロジェクト、及びスタックを定義するグループのアセンブリとして効果的に機能する。このようにして、ユーザは従属関係の満たされるスタック間でスタックを効率的にアセンブルすることが可能である。
本発明のさらなる態様では、プロジェクトのアクセス又は使用のリクエストに関するプロジェクトをフィルタリングするための方法を提供する。外部的に開発されたプロジェクトが容易に利用可能であることが多くのエンティティに対し問題であることは認識されている。特に、オープンソースプロジェクトのようなプロジェクトは、無料又はわずかなコストで利用可能である。結果として、ライセンス条項又は企業ポリシーのコンプライアンスを考慮することなく、そうしたプロジェクトがアクセスされる場合がある。さらに、上述のように、オープンソースのライセンスには、種々の条項及びオープンソースソフトウェアの再作成又は使用に関する義務が含まれ得る。多くの場合、エンティティは所望されない結果が発生するまで、そうしたオープンソースプロジェクトが使用されていることを認識しない。したがって、これに関するエンティティによって開発されるポリシーによるコンプライアンスを実行する際、そうしたエンティティを補助するためにツールを提供することが所望される。
本発明による関連するユーティリティはソフトウェアプロジェクトへのアクセス又はソフトウェアプロジェクトの使用に関するフィルタ基準を定義する工程と、1つ以上のソフトウェアプロジェクトへのアクセス又は1つ以上のソフトウェアプロジェクトの使用に対するリクエストを受信する工程と、コンピュータベースツールを操作してフィルタ基準に従いリクエストを処理し、リクエストに応答して出力を提供する工程とを含む。フィルタ基準はソフトウェアプロジェクトのプロバイダによって付与される権利から独立してリクエスト者に影響を与えるポリシー又はそのポリシーの欠如を反映する。したがって、例えば、フィルタ基準によって、どのプロジェクトがアクセスされるか、誰にアクセスされるか、及び何の目的でアクセスされるかが定義される。例えば、異なる人(例えば、ソフトウェア開発者、IT職員、経理担当など)に対し、及び異なる目的(厳密な内部使用か、製品への組み込みか)に対し、異なる基準が適用される。フィルタはスタックアセンブリ及びインストールツールに関連して実装されてよい。これに関して、グラフィカルユーザインタフェースは問題点における人又は目的に対し適切なプロジェクトオプションのみを提示してもよく、そうしたユーザインタフェースに関する選択において、フィルタ済みのプロジェクトが利用不可能とされてもよい。このようにして、プロジェクトに関するエンティティのポリシーの遵守が実施されてよい。プロジェクトは、例えば、プロジェクト毎にフィルタされてもよく、プロジェクトのタイプ又はカテゴリに基づきフィルタされてもよく、プロジェクトに関係するライセンスに基づきフィルタされてもよい。
本発明のさらなる態様では、非協調ソフトウェアをインストールするためのユーティリティを提供する。関連するシステムは、幾つかの非協調ソフトウェアプロジェクトをスタ
ックへと構成するための構成モジュールと、スタックをコンピュータ上にインストールするためのインストーラとを含む。例えば、構成モジュールはユーザ又はユーザシステムからのリクエストに応答してプロジェクトをスタックへ構成する。これに関して、そうしたスタックは上述のアセンブリツールの補助により識別されてよい。これに代えて、特定のリクエストを処理するより前に、プロジェクトがスタックへと構成されてもよい。好適には、スタックは、含まれるプロジェクトに関する従属性の問題点を解決するように構成される。これに加えて、そうした依存性の問題点の考慮又は潜在的な競合の解決に関してスタックがインストールされる機械の状態を、構成モジュールが考慮に含めてもよい。ユーザ又はユーザシステムの観点からは、このユーティリティは対象のスタックに関する入力情報を構成モジュールに送出する工程と、インストール情報を受信する工程とを含む。そうしたインストール情報には、例えば、インストール手続に関する情報、スタックにおける使用のための構成を反映するプロジェクト、及びインストールツールのうちの1つ以上が含まれる。したがって、このユーティリティは、非協調プロジェクトから形成されるスタックのインストールに関する幾つかの問題点に対処する。
本発明のさらなる態様では、機械その他、ユーザによって指定される他のシステム上に非協調プロジェクトのスタックをインストールするためのユーティリティを提供する。関連するインストーラは指定のシステムに実装されてもよく、LAN若しくはWANを介してシステムへ相互接続されてもよい。これに加えて、インストーラは上述のようにアセンブリユーティリティと動作可能に関連付けられてもよく、独立に動作してもよい。インストーラユーティリティは対象のスタックに関する入力情報を受信し、少なくともスタックの第1のプロジェクトの第1の特性を判定し、スタックの第2のプロジェクトに関する情報を提供するように動作する。入力情報によって、例えば、スタックの機能が識別されてもよく、第1のプロジェクトが少なくともタイプ毎に識別されてもよい。この情報に応答して、ユーティリティは第1のプロジェクトとの従属関係又は第1のプロジェクトのリソース要件を有する1つ以上のプロジェクトを識別する。従属関係を解決するため又はソース競合を回避するために、そうした情報が第2のプロジェクトを識別するために用いられてよい。このユーティリティは、プロジェクトのうちの1つ以上がツール、即ち、オペレーティングシステムレベルより上のスタックのアプリケーションレイヤにて動作する非協調プロジェクト(例えば、オープンソースプロジェクト)を含むスタックのインストールにおいて有用である。
本発明の別の態様では、非協調プロジェクトのインストール済みスタックに関するインストール後サポートを補助するためのユーティリティを提供する。このサポートユーティリティは、上述のようにアセンブリ及びインストールユーティリティのうちの1つ以上に関して提供されてもよく、独立に提供されてもよい。さらに、サポートユーティリティはローカルシステムに関して動作してもよく、ネットワーク、例えば、インターネットを介してアクセスされてもよい。サポートユーティリティは、幾つかの非協調ソフトウェアプロジェクトを含むスタックの識別を受信する工程と、記憶装置に選択的にアクセスし、そのスタックに対する特定のサポート情報を取得する工程と、ユーザにサポート情報を出力する工程とを含む。サポート情報には、例えば、パッケージに対し詳細に調整されるチュートリアル又は文書が含まれる。サポート情報はスタックに対し予めアセンブルされインデックス化されてもよく、リクエストに応答してアセンブルされる別個の大量の情報として記憶されてもよい。これに関して、文書は、例えば、特定のプロジェクトとの関係など、データのコンテキスト又は関係を識別する、例えば、XMLタグなどのメタデータと関連付けられ、構造化コンテンツとして記憶されてよい。テキスト及びグラフィックのうちの一方又は両方が、これに関してアセンブルされてよい。これに加えて、サポート情報はユーザの機械又はユーザのオペレーティングシステムに関する情報など、スタックの動作環境情報に基づき選択されてよい。
本発明のさらに別の態様では、非協調プロジェクトのインストール済みスタックに関する更新を管理するためのユーティリティを提供する。プロジェクト更新、従属性更新及びサポート情報更新など、スタックに関する更新が時間毎に利用可能となり得ることは認められるであろう。特に、非協調ソフトウェアプロジェクトのスタックにおいては、そうした更新の管理が問題となり得る。本発明のユーティリティは、スタックに関する更新の利用可能性に関する情報を受信する工程と、更新により影響を受ける可能性を有するスタックを識別する工程と、ユーザ又はユーザシステムに更新情報を提供する工程とを含む。更新情報には、例えば、更新が利用可能であることのユーザへの通知、更新されるソフトウェア、及びインストール情報のうちの1つ以上が含まれる。これに関して更新は自動的にインストールされてもよく、更新が所望されることの指示をユーザから受信するとインストールされてもよい。好適には、例えば、スタックの1つ以上のプロジェクトをアンインストールすることなく、以前にインストール済みのスタックのうちの少なくとも一部をインストール済み状態としたまま、更新インストールが行われる。関連する更新インストール処理には、インストール順序を決定する工程と、依存性又はリソース競合を解決する工程と、決定したインストール手続に従い更新のインストールを実行する工程と、インストール時に更新をテストする工程とが含まれる。また、関連するサポート教材は、更新に関連して利用可能とされてもよい。
本発明のさらなる態様では、ソフトウェアプロジェクトのスタック内のプロジェクトを置換することを可能とするためのユーティリティを提供する。このユーティリティは、複数のソフトウェアプロジェクトを含むインストール済みスタックに関する入力を受信する工程と、入力に応答して、ほぼ等しい機能を有する置換プロジェクトで第1のプロジェクトを置き換える工程とが含まれる。このユーティリティが、排他的ではないが、スタックを構成する際に大きな柔軟性を提供するライセンス条項を有する場合の多いオープンソースプロジェクトに関して特に有用であることは、認められるであろう。例えば、このユーティリティを用いて、所与のスタックの第1のデータベースプロジェクトを第2のデータベースプロジェクトで置き換えてもよい。このようにして、ユーザは所与の利用において最適な性能を有するスタックを構築(ビルド)するように、異なるプロジェクトを用いて実験することが可能である。
本発明のさらに別の態様では、ライセンス情報を管理するためのユーティリティを提供する。このユーティリティは、所与のソフトウェアライセンスに関する公開情報及び非公開情報を記憶する工程と、公開情報のうちの少なくとも一部へのアクセスを提供する工程と、非公開情報へのアクセスのリクエストを受信する工程と、リクエストに応答して、非公開情報へのアクセスの認可のベリファイを実行する工程と、ベリファイに基づき、非公開情報へのアクセスを選択的に提供する工程とを含む。例えば、非公開情報へのアクセスのリクエストに関して、ユーザはパスワードその他の認可情報を入力するよう促される。そうした情報への非認可アクセスを禁止するため、そうした認可情報を用いて非公開情報を暗号化及び解読してよい。
以下の記載では、本発明をスタックのアセンブリ、インストール及びサポート機能を含むグラフィカルインストーラシステムにおいて述べる。上述のように、本発明においては、そうした機能が統合型システムの部分としてではなく、独立に提供されてもよいことが認められるであろう。さらに、本発明の種々の態様は以下に記載の特定の文脈を超える用途を有することが認められるであろう。したがって、本記載は本発明の限定としてではなく例示として理解されるものである。
以下の記載では、最初に、オープンソースソフトウェア運動に関連してアプリケーション開発環境について記載する。この記載では、非協調プロジェクトをスタックさせること
の例示的な用途を示す。その後、本発明によるシステムアーキテクチャについて記載する。最後に、スタックのアセンブリ、インストール及びインストール後のサポートのための特定機能について、詳細に記載する。
1.オープンソースアプリケーション開発環境
本発明は、ソフトウェアスタック、例えば、1つ以上のオープンソースプロジェクトを含むスタックを、アセンブル、インストール及びサポートするためのツールに関する。上述のように、通常、オープンソースプロジェクトは非協調的であるとともに、カスタムスタックの構成の大きな自由を提供するライセンスに関連付けられているので、オープンソースプロジェクトを含むスタックは、本発明の種々の態様を示すのに特に適切である。実際、そうしたプロジェクトを所望通りに改変する及び組み合わせることの柔軟性が、オープンソフトウェア運動の主たる動機である。しかしながら、ライセンスの許可する場合、スタックがプロプライエタリアプリケーションや、又はオープンソースプロジェクト、プロプライエタリアプリケーション及び他の非協調プロジェクトの組み合わせから形成されてよいことは認められるであろう。実際、そのような組み合わせは次第に一般化するであろうことが予想される。いずれの場合においても、本発明は非協調ソフトウェアコンポーネント、即ち、機能ライブラリなどのロジックリソースを共有するように予め構成されていない、或いは、スタックにおいて協調的かつ従属的に動作するように特に構成されていないプロジェクト又はアプリケーションからなるスタックの形成において、特別な利点を有する。
以下の例では、アプリケーション開発環境に関連して、そうしたスタックについて記載する。これに関して、アプリケーション開発環境は、1つ以上のプロジェクト、即ち、オペレーティングシステムレベル又はハードウェアレベルより上で動作する、アプリケーション又は開発環境を含むスタックを表す。このことは、図1を参照することによって理解される。図1に示すように、一般に、完全なソフトウェア開発環境100はアプリケーションレイヤ102、開発環境ツールレイヤ104、オペレーティングシステムレイヤ106及びハードウェアレイヤ108を備える。一般に、選択されるハードウェア108上で機能する、選択されるソフトウェアオペレーティングシステム106に基づく作業開発環境において、開発ツール104を用いて、アプリケーション102が作成される。
従来、オペレーティングシステムソフトウェア及び開発ツールは競合する商業ベンダによって販売されており、ソフトウェアはプロプライエタリである。図2には、各レイヤのプロプライエタリ製品の例と共に、プロプライエタリソフトウェア開発環境200を示す。示すように、アプリケーションレイヤ202は種々の市販のウェブベースアプリケーション、ビジネスアプリケーションその他のアプリケーションを含む。開発環境ツールレイヤ204においては、Oracle、BEA、Rationalその他によって市販のツールが提供される。オペレーティングシステムレイヤ206において支配的なシステムはWindows及びUnixであるが、他のシステムも利用可能である。ハードウェアレイヤ208の製造者の例には、IBM、Apple、Sun、HP/Compact及びIntelが含まれる。
一般にソフトウェア開発環境におけるスタックの統合に関する柔軟性が限定されていることは認められるであろう。より詳細には、既存のオペレーティングシステムでは、特定の製品が充分な程度まで特定のハードウェア環境から独立して動作することが可能なオープンプラットフォームが提供される。さらに、多くの製品は複数のオペレーティングシステムに渡って動作することが可能である。しかしながら、アプリケーションレイヤ202及び開発環境ツールレイヤ204においては、オプションはこれより相当に限定されている。一部の商業ソフトウェア開発者は複数のプロプライエタリ製品の統合されたスタックの提供や、容易にスタックへ統合可能な個々の製品の提供を行っている。同様に、一部の
ソフトウェア開発によって、統合されたオープンソーススタック又は協調オープンソースプロジェクトが提供されている。これらの製品は対応するプロプライエタリ製品とよく似たように開発されているが、プロプライエタリなライセンス関係ではなくオープンソースのライセンス関係を有する。しかしながら、一般に、これらの商業開発者は競合する商業開発者の製品に関する相互動作に対応する動機をほとんど有しない。したがって、そうしたスタックは特定の商業開発者又は開発者及び産業パートナの製品に限定され得る。したがって、エンドユーザの有する柔軟性は限定的なものであり、特定製品の必要により、エンドユーザが全スタック環境に固定される場合がある。
オープンソースソフトウェア、詳細にはLinuxは、オペレーティングシステムレイヤにおいて広範に適合されるようになった。これに加えて、オープンソース開発ツール及びアプリケーションが出現している。図3には、オープンソースアプリケーション開発環境300を示す。即ち、オープンソースアプリケーション開発環境300は、アプリケーションレイヤ302及び開発環境ツールレイヤ304のうちの一方又は両方において、1つ以上のオープンソースプロジェクトを含む。また、プロプライエタリアプリケーションも利用可能であり、この開発環境300のそれらのレイヤにおいて利用されてよい。示すように、アプリケーションレイヤ302におけるオープンソースアプリケーションの一例は、OpenOfficeである。開発環境ツールレイヤ304におけるオープンソースツールの例には、Eclipse、MySQL及びApacheが含まれる。示した開発環境300には、オペレーティングシステムレイヤ306において、オープンソースオペレーティングシステムの一例(Linux)及びプロプライエタリオペレーティングシステムの一例(Unix)が含まれる。ハードウェアレイヤ308においては、幾つかのプロプライエタリOEM(相手先ブランド製造)業者が識別される。したがって、完全なオープンソースアプリケーション開発環境がオペレーティングシステムレイヤ及びハードウェアレイヤ306,308において、また開発環境レイヤ及びアプリケーションレイヤ302,304において、プロプライエタリな要素を含む又はサポートする、即ち、許可することは認められるであろう。
上述のように、多くの高品質なオープンソースプロジェクトが利用可能であるが、複数のオープンソースプロジェクトをスタックさせ(単独で又はプロプライエタリ製品と共に)完全なアプリケーション開発環境を可能とすることに関連する、幾つかの困難が存在する。このことを図4に示す。図4には、幾つかのオープンソースプロジェクト及びプロプライエタリ製品を示す。種々のコンポーネントを結ぶ線及び矢印は、前提要件など必須の及び条件的な従属関係や、インストールされて別のプロジェクトによって使用され得るプロジェクトを表す。特定の利用に適切なスタックをアセンブルするには、多くの場合、これらの従属関係や機械状態についての徹底した理解が必要である。
さらに、アセンブルされたスタックのインストールには、相当な専門技術及び時間が必要とされる場合がある。例えば、インストールの問題点には、適正なインストール順序の決定、種々のハードウェアの問題点の対処、競合の解決及びインストールされたスタックのテスト、例えば、必要なファイルがアクセス可能であるかの判定、が含まれる。インストール後の問題点には、適切な訓練ツール及び文書の提供や、特定のプロジェクト及びスタックのインストール並びに改変の実行が含まれる。以下に述べるように、これらの問題点は本発明によるシステムによって対処される。
2.システムアーキテクチャ
図5には、本発明によるソフトウェアスタックのアセンブリ、インストール及びサポートシステム500を示す。システム500はパーソナルコンピュータその他のプロセッサ又は処理ネットワークなどのユーザ機械502を操作するユーザが、スタックへアセンブリするオープンソースソフトウェアプロジェクト(及び他のソフトウェアプロジェクトの
うちの一方又は両方)を識別すること、そのプロジェクトをユーザ機械502に統合及びインストールすること、並びにそのスタックに特に関連する文書及び訓練教材を生成することを可能とするように動作する。システム500は、例えば、特定の利用において最適な性能を得るために、データベースその他、スタック内のツールの切換など、一定の追加の機能を提供する。特定のソフトウェア製品の商品化の際に通常、統合エンティティが既得権を有するプロプライエタリその他の協調ソフトウェアにおいてはそうした機能が一般にサポートされていないことや、一般にカスタマイズされた利用毎にスタックのアセンブリ、統合及びインストールが実行される現在の非協調オープンソースにおいてもそうした機能がサポートされていないことは、認められるであろう。
示したシステム500は、記載のオープンソーススタック機能に必要な知識を記憶及び提供する知識ベース504と、そうした機能を実行するためのロジックを提供するエンジン506とを備える。知識ベース504及びエンジン506はユーザ機械502上に実装されてもよく、WAN、例えば、インターネットなどのネットワークを介し、少なくとも部分的にユーザ機械502へアクセス可能であってもよい。さらに、知識ベース504及びエンジン506が単一の処理プラットフォーム上に実装されてもよく、分散型アーキテクチャが採用されてもよい。
示した知識ベース504には、サポートされる各プロジェクトに対し、識別情報及び法的情報、動作情報並びにカテゴリ情報など、プロジェクト情報504Aが含まれる。また、知識ベースには、ユーザ機械502に関する一定の機械状態情報504Bも含まれる。これに加えて、知識ベースには、テスト情報など、スタックレベルにて機能を実行する際に用いられる一定のスタック情報504Cが含まれる。
プロジェクト情報504Aに関して、所与のプロジェクトを識別するために知識ベース504に含まれる情報には、プロジェクトの名前、バージョン、タイプ、ホームURL、カテゴリ、説明(比較及び推薦と共に)及び完全なプロジェクト詳細へのリンクが含まれてよい。法的情報には一般に、完全なライセンス文を含む任意のライセンス及びそのライセンスへのリンクが含まれる。そうしたライセンス情報はユーザに重要な法的情報を提供し、さらに以下に述べるようなライセンスフィルタ機能をサポートする。プロジェクトはローカルに記憶されてもよく、インストール時にダウンロードその他によってアクセスされてもよい。
動作情報には、従属関係情報その他のリソース情報が含まれてよい。例えば、従属関係情報には、各プロジェクトに対する前提要件の一覧と共に、その従属性の存在する理由と従属プロジェクトの使用法との説明が含まれる。従属関係情報にはさらに、各プロジェクトを使用する他のプロジェクトの一覧と共に、その従属性の存在する理由と従属プロジェクトの使用法との説明が含まれてよい。以下の記載から理解されるように、そうした情報はスタックを適正にアセンブルするためや、ユーザにスタック説明情報を提供するために用いられる。従属関係情報に加えて、動作情報には使用されるポートなど他のリソース情報が含まれてよい。
カテゴリ情報によって、プロジェクトのソート及びフィルタリングが可能となる。例えば、利用されるカテゴリには以下が含まれる:
・クライアント
・データベース
・文書
・インターネット
・J2EE
・プログラミング
・サンプル
・セキュリティ
・サーバ
・ソースコード管理
・テスト
・XML
このようにして、ユーザが所望のプロジェクト情報に便利にアクセスすることが可能である。
機械状態情報504Bには、プロジェクトその他、ユーザ機械502上で利用可能又は利用不可能なリソースに関する更新された情報が含まれてよい。例えば、データベースなど特定のツールが予めインストールされている場合、この情報は知識ベース504に記憶され、発生する競合を回避するために従属性に対処し、スタックをアセンブルする際に考慮される。同様に、インストールされるプロジェクトの統合及び適正な相互動作を容易とするために、ポート利用その他のリソースの問題点が考慮される。
示した知識ベース504には、さらにスタック情報504Cが含まれる。一定の情報は個々のプロジェクトに対してではなく、スタックの組み合わせに対しインデックス化されてよい。例えば、上述のプロジェクト情報に対応する情報は共通スタックに対し記憶される。これに加えて、テストパラメータなど一定のインストール情報は、スタックの組み合わせに関連して定義されてよい。
知識ベース504は、動作環境情報など、示されていない種々の他の種類の情報を記憶してもよい。例えば、複数のオペレーティングシステムにおいてインストールをサポートし、プロジェクト又はスタックの特定の使用を特定のオペレーティングシステムと関連付けるために情報が記憶されてもよい。例えば、Windows上で開発されることやLinux上で展開されることが所望される。
以下に詳細に述べるように、エンジン506は実行時に知識ベース504にアクセスして全ての必要な情報を取得し、スタックのアセンブリ、インストール及びインストール後のサポートのためのロジックを実行する。ユーザはグラフィカルユーザインタフェース508を用いてプロンプトその他の情報を受信し、この機能の実装を補助するとともに、関連する情報を入力することが可能である。プリンタ510はハードコピー文書を生成することが可能である。
示したアーキテクチャにより、便利なシステム実装及び保守が可能となることは認められるであろう。詳細には、プロジェクトその他の情報は、エンジン506その他のシステムコンポーネントを実質的に更新することなく、単に知識ベース504を更新することによって、追加又は変更されることが可能である。さらに、エンジン506によって、オペレーティングシステムその他の実装の差異を通じて一貫した外観及び操作感(ルックアンドフィール;look and feel)を有するようにインタフェースをレンダリングすることが可能となる。
3.システム機能
上述のように、本発明によるシステムはアセンブリ、インストール及びインストール後のサポートに関するオープンソーススタック機能を提供する。
A.アセンブリ
一般にスタックアセンブリは、幾つかのオープンソースプロジェクト及び他のプロジェクトのうちの一方又は両方を識別し、特定の利用に対処するためのスタックを形成するこ
とに関する。これに関して、本発明のシステムを使用して、幾つかの機能を実行することが可能である。例えば、特定のプロジェクトに関する情報は、プロジェクトの説明や従属性情報を取得するためにアクセスされ得る。これに加えて、電子コマースウェブサイト設計など、共通のタイプの利用に対するスタックに関する情報がアクセスされ得る。このようにして、利用可能なオープンソースその他のリソースに関して限定された知識しか有しないソフトウェア開発者が迅速にスタックをアセンブルすることが可能である。また以下で述べるように、このシステムは、エンジンを用いて従属関係に対処し、スタックアセンブリを実行することが可能であるように、機械状態情報、プロジェクト情報及びスタック情報にアクセスするための完全な機能を有する。
図6には、スタックアセンブリに関して利用され得るユーザインタフェーススクリーン600を示す。示すように、ユーザインタフェース600は、プロジェクト識別パネル602、プロジェクト説明パネル604、前提要件パネル606及び被使用パネル608を備える。以下で述べるように、一般にプロジェクト識別パネル602は、状態及び一定の従属性情報を示すように、強調表示、灰色表示及び他のグラフィカル要素を用い、サポートされるプロジェクトの一覧を表示する。プロジェクト説明パネル604には、示すように、パネル602において強調表示されているプロジェクトの推薦その他の補助を含め、一定のプロジェクト識別及び説明情報が含まれる。前提要件パネル606では識別されるプロジェクトの前提要件であるプロジェクトが識別され、被使用パネル608では強調表示されているプロジェクトを使用し得る他のプロジェクトが識別される。
より詳細には、パネル602において主要プロジェクトは太字で示される。従属プロジェクトは通常の書体で示される。必須プロジェクトはチェックされており、変更は不可能である。パネル602においてプロジェクトが強調表示されているとき、そのプロジェクト、この場合にはTomcatに関する情報が、パネル604,606,608に対し提供される。示した例では、パネル604の頂部には、プロジェクトのタイトル及びバージョンと共に、例えば、必須プロジェクトであるかインストール済みプロジェクトであるかを示す括弧内の情報が識別される。次にプロジェクトのホームURLへのリンクが提供され、プロジェクトのライセンスを見るためのリンクが続く。また、プロジェクトのグループ化又はフィルタリングのために使用可能なプロジェクトに関連するカテゴリと、プロジェクトにより使用されるポートの識別とが示される。最後に、一部の場合、プロジェクトに関連する推薦又はティップス(tips)を含む、プロジェクトの説明が提供される。
被使用パネル608は、強調表示されているプロジェクトに従属する他のプロジェクトを表示する。反対に、前提要件パネル606は、強調表示されているプロジェクトをインストールするために必要な他のプロジェクトを示す。したがって、パネル606,608が集合的に対象プロジェクトの従属関係を定義することは認められるであろう。
この従属関係情報は知識ベースから導出され、スタックアセンブリに関連するグラフィカルフォームに補助を提供するためにエンジンによって使用される。これに関して、ユーザが関連するインストールボックスをチェックすることによってパネル602においてプロジェクトを選択し、そのプロジェクトが2以上の他のプロジェクトによって実行可能な前提要件を有する場合、或いは、未チェックの従属性が存在する場合、ユーザにそうした問題点の解決を促すようにインジケーション(オーディオ又は視覚的な)が提供される。これに関して、示した例ではプロジェクト名が赤く変化し、ユーザは従属性が解決されるまでスタックアセンブリを続行することが不可能となる。例えば、パネル602においてプロジェクトJBossが選択される場合、JBossの文字は赤く変化し、前提要件が必要であることを示す。次にユーザは前提要件パネル606を調べ得る。この場合、前提要件パネル606は、続行するにはJBossがMySQL又はPostgreSQLを必要とすることを示す。示した例では、従属性の問題点が解決されるまでGUI上の「次
へ」ボタンが無効化されるため、全ての要件が満たされるまでユーザが続行しないことが保証される。他の場合には、従属性が自動的に選択されてもよい。
示した例では、次にユーザは、JBossの従属性を満たすためにMySQLを選択することを決定する。この選択が行われると、もはやJBossプロジェクトは赤で表示されておらず、それによって、従属性が満たされるとともに、スタックのアセンブリ及びインストールが進行されてよいことを示す。上述のように、プロジェクトのタイプは、パネル604の頂部のプロジェクトの名前及びバージョンに続く括弧に表示される。プロジェクトのタイプには、「必須」、「従属」、「主要」又は「インストール済み」が含まれる。プロジェクトのタイプはリンクであり、クリックされる場合、プロジェクトのタイプの各々の説明を与える。同様に、ライセンス識別はリンクであり、クリックされる場合、パネル604にライセンスの完全なテキストを提示する。各プロジェクトに関連付けられているカテゴリもリンクである。それらのリンクがクリックされる場合、パネル604にはカテゴリ内の他のプロジェクトが表示される。例えば、カテゴリ「サーバ」がクリックされる場合、パネル604では「サーバ又は開発者のワークステーションに通常見出されるツール。通常はエンドユーザ用ではない」のような初期説明によって、続いてANTLR、Apache、Http Serverなどを含む一覧によってプロジェクト説明ボックスが満たされる。この説明に表示されるプロジェクトはリンクであり、選択される場合、その選択されたプロジェクトのさらに詳細な説明を提供する。これに関して、例えば、サポートされるプロジェクトが別のプロジェクトの説明に表示されるときに、リンクがテキスト全体を通じて提供されてもよい。
プロジェクトはインストールされると、次にユーザがシステムを起動するとき、そのインストール済みのプロジェクトは暗く表示され、もはや選択可能でない。
また、インストールモードとアンインストールモードとを切り換えるために、ツールバーにボタン(図示せず)が提供される。このボタンを選択し、例えば、インストールモードからアンインストールモードへ切り換える場合、ポップアップボックスが出現し、選択されるプロジェクトがインストールされていないことを警告し、それがユーザの意図であることを確認する。この意図がユーザによって確認されると、システムはアンインストールモードに入る。このモードでは、インストール済みのプロジェクトがパネル602のプロジェクト一覧に示される。この場合にも、主要なプロジェクトは太字で示され、従属性プロジェクトは通常の書体で示される。
例として、インストールモードでは、ユーザはインストール用にAspect J、Castor、Eclipse及びEclipseのプラグインを選択する。なお、これに関して、Eclipseプラグインが最初に選択される場合、Eclipseプロジェクトは自動的に選択される。全ての所望のプロジェクトが選択されると、ユーザは「次へ」ボタン610を選択し進行する。選択されるプロジェクトのうちの任意のプロジェクトが適正にインストールされるためにさらなる情報を必要とする場合、この情報を収集するためにプロジェクトプロパティページが示される。所望の場合、ポート(及び潜在的な他のリソース要件)をチェックして選択されるプロジェクトと機械状態が互換性であることを確認するために、示したプロジェクト選択とプロジェクトプロパティスクリーンとの間にさらなるユーザインタフェーススクリーンが提供されてもよい。選択されるプロジェクト要件が満たされない場合、ユーザはそれらを訂正する方法について指示される。一部の場合、これに関する任意の問題が自動的に訂正される。いずれの場合においても、全ての要件が満たされるまでインストールが阻止されることによって、潜在的なインストールの複雑性が回避される。問題点を解決する一手法として、ユーザは戻ることを選択しプロジェクト選択を変更することが可能である。
図7には一例を示す。この場合、ユーザはプロジェクトプロパティパネル702におい
て、JBoss及びMySQLに対するパスワードの入力及び再入力を促される。パネル704には選択されるプロパティの説明が与えられ、ユーザが訂正情報を入力するのを補助する。全ての必要なインストール情報が入力されると、図8に示すようなインストール指示スクリーン800が表示される。このスクリーンによって、インストールの妨げとなり得る共通の問題点を軽減する情報が提供される。このスクリーン800には、有用であり得る任意の追加の指示及び要件を取得するためのリンクが提供されてよい。
ユーザは、インストール指示スクリーン800を終了するとき、「次へ」ボタン802を選択し、図9に示すようなインストールスクリーン900へ進むことが可能である。ユーザはスクリーン900から「インストール開始」ボタン902を選択し、インストールを開始することが可能である。インストールの進行はウィンドウ904にてモニタ可能である。ポップアップウィンドウには、インストールが成功裏に完了する時が示され、インストール後の指示に関する情報が提供される。図10に示すように、インストールが完了すると、ユーザは「報告」ボタン1000を選択しインストール報告を生成すること、又は「完了」ボタン1002を選択しインストール処理を完了させることが可能である。インストール報告の一例を図11に示す。詳細には、報告1100には、報告時にインストールされている全てのプロジェクトの状態が示される。
このようにしてインストールされるプロジェクトには、例えば、以下が含まれる:
Figure 2007535770
Figure 2007535770
なお、この代表的な一覧には、オープンソースプロジェクトに加え、1つ以上のプロプライエタリアプリケーションが含まれる。当然のことながら、他のオープンソースプロジェクト及びプロプライエタリアプリケーションもサポートされてよい。
また、GUIはフィルタ機能を実行し、例えば、クライアントエンティティ内の、個々のユーザによる特定のプロジェクトへのアクセスを選択的に使用可能又は禁止としてよい。例えば、企業は、例えば、どのプロジェクトがアクセスされるか、そのプロジェクトがどのように使用されるか、及び誰に使用されるかに関するポリシーの実装を補助するように、システムを構成する。これに関して、企業はそうしたプロジェクトをプロジェクト毎又はタイプ毎に定義してもよく、内部的に使用されるプロジェクトのセット、製品に組み込まれる(一般的又は製品毎に)プロジェクトの同じセット又は異なるセット、及び他の目的のための他のプロジェクトのセットを指定してもよく、例えば、ソフトウェア開発者、IT職員、経理担当など、個人又は個人からなる1以上のセットによってアクセスされるプロジェクトを指定してもよい。
フィルタ、基礎となるポリシー及び関連するフィルタパラメータは、クライアントエンティティによって選択されるため、クライアントエンティティの責任である。法的環境その他、クライアントエンティティによって適切であると見なされる因子の考慮により、クライアントエンティティによってポリシーが作成された後、フィルタによって、そうしたポリシーの内部実施を実装及び改良するための便利なツールが提供される。そうした問題点についての完全な考慮の代わりとして、或いはこれに代えて完全な内部教育及び実施様式としてフィルタが用いられることを意図するものではない。
上述のように、種々のパラメータを用いてフィルタを構成してよい。そうしたパラメータの1つはライセンスのタイプである。オープンソースプロジェクトにおいては、現在45を超える異なる認識されるオープンソースライセンスが存在する。これらのライセンスには、例えば、一般公衆許諾契約書(GPL)、劣等一般公衆許諾契約書(LGPL)、BSD及びApacheのライセンスが含まれる。オープンソースライセンスは制限及び
義務が免除されているのではなく、これに関して、異なるライセンスには異なる制限及び義務が伴う。これらの制限及び義務は常に不明瞭でない訳ではなく、特定のライセンス条項は充分な注意を持って調べられる必要があるが、一定の特徴付けは可能である。例えば、一定のライセンスでは、ライセンスされているオープンソースソフトウェアと共に頒布される、プロプライエタリソフトウェアを含むソフトウェアのソースコードは、公開され利用可能とされることが必要である。一般にそうしたライセンスには、著作権表示に関する義務及びソフトウェアの複製に関する帰属が含まれる。したがって、一般にクライアントエンティティはコンプライアンスプログラムの一部として意図される使用に関連して、そうしたライセンスを注意深く考慮する必要がある。
これらのライセンスは示したフィルタのパラメータとして作用し得る。即ち、上述のように、ライセンス情報は示したシステムにおいてサポートされる各プロジェクトと関連付けられる。これらのライセンス表示は、例えば、フィルタのグラフィカルユーザインタフェースを用いてライセンス又はライセンスのタイプに基づきプロジェクトへのアクセスを使用可能又は不能として、クライアントエンティティ又はシステムオペレータによって選択又は選択取り消し(deselect)されてよい。そうした構成は特定のユーザ、ユーザグループ、意図される使用などにおいて実行されてよい。そうした1つ以上のフィルタの定義によって、GUIは、一般には選択されるフィルタパラメータに従って、プロジェクトへのアクセスを禁止又は実行するように動作する。
フィルタは二値的に機能を許可するか又は許可しないことに必ずしも限定されない。例えば、ライセンスの制限又は義務のレベルに対応して「赤」、「黄」、「緑」など、3以上のレベルが定義されてもよい。したがって、特定のクライアントエンティティは自身の裁量において、また自身の内部ポリシーに従って、GPLライセンスのプロジェクトが黄のフィルタレベルに関連付けられ、BSD及びApacheが緑のフィルタレベルに関連付けられることを決定してよい。
次にGUIは各フィルタレベルに関して異なるフィルタ機能を実行するように構成されることが可能である。例えば、「赤」のプロジェクトはプロジェクト識別パネル602(図6)から除外されるか、又は「赤」のプロジェクトの選択は使用不能とされる。黄のプロジェクトの場合、使用に関する適切な警告又は使用における制限(例えば、「内部使用のみ」又は「使用前にコンプライアンス担当者に相談を」)が表示されるか、又はインストールの完了にはパスワードその他の認可が要求される。緑のプロジェクトは上述のようにフィルタ禁止から免除されてアクセスされる。本発明により他のフィルタレベル及び関連するフィルタ機能が可能であることは認められるであろう。そうした自動化フィルタリングはポリシーの目標と一致してポリシーの目標を実行するには不完全な場合があり、完全な教育及びコンプライアンスプログラムに置き換わるものではないが、オープンソースその他のプロジェクトの使用を考慮する企業において重大な関心となるコンプライアンスプログラムの遵守を奨励するための有用な機構を提供する。
なお、そうしたフィルタ機能は示したシステムとは別の相当な価値を有し得る。例えば、フィルタは従業員による使用において提案されるプロジェクトを選別するために、コンプライアンス担当者によって、任意のスタックアセンブリ、インストール及びサポート機能から完全に独立して用いられる。さらに、そうしたフィルタは、例えば、関連するURLに基づき、指定されるプロジェクトのダウンロードを禁止するために、インターネットゲートウェイフィルタ(例えば、企業ポリシーに従ってインターネットアクセスを制限するために用いられる)と共に実装される。本発明による他のフィルタの実行環境及び使用が可能である。
図12は、本発明によるフィルタシステム1200を示す概略図である。示したシステ
ム1200は、1つ以上のフィルタ1202を実行するためのロジックを備える。例えば、クライアントエンティティ内の異なる複数のユーザ又はユーザグループに対し、異なる複数のフィルタ1202が定義される。
フィルタ1202は、ユーザインタフェース1204を介してユーザによって定義されてよい。これに関して、フィルタ識別情報、フィルタパラメータなどは、ユーザインタフェース1204上に表示されるテンプレート又は一連のメニューを介して入力されてよい。このようにして、ユーザはユーザパラメータ1208、使用パラメータ1210及びライセンスパラメータ1212など幾つかのフィルタパラメータを定義することが可能である。ユーザパラメータ1208によって、例えば、アプリケーション開発者、IT職員、経理担当など、特定のユーザ又はユーザグループが識別され得る。使用パラメータ1210によって、意図される使用又は許可される使用が定義される。したがって、例えば、プロジェクトのうちの1つのセットに内部使用を許可し、プロジェクトのうちの第2の(通常は、より限定された)セットに製品への組み込みを許可することが所望されてよい。ライセンスパラメータ1212によって、ライセンス関係に基づきプロジェクトのアクセス又は使用を制御することが可能となる。したがって、上述のように、一定のライセンスは緑のフィルタレベルと関連付けられ、他のライセンスは黄のフィルタレベルと関連付けられ、さらに他のライセンスは赤のフィルタレベルと関連付けられてよい。これらのフィルタレベルの各々に対し、適切なフィルタ規則が定義されてよい。
そうしたフィルタ構成情報に基づき、フィルタ1202はユーザシステム1214によるプロジェクト1206へのアクセス又はプロジェクト1206の使用を、選択的に許可する。例えば、フィルタ1202はプロジェクト1206のうちの選択的な1つへのアクセスを禁止してもよく、プロジェクト1206のうちの選択される1つのインストールを妨げてもよく、プロジェクト1206のうちの個別の1つへのアクセス又は個別の1つの使用に関して、一定の警告を提供するか又は一定の認可を要求してもよい。そうしたフィルタリング機能はユーザシステム1214の識別、ユーザシステム1214を介して入力されるユーザIDその他、ユーザの入力する意図される使用に応答して実行されてよい。プロジェクト1206は上述のようにスタックのアセンブリ、インストール及びサポートシステムに関しサポートされるプロジェクトの一覧、クライアントエンティティのコンプライアンスポリシーにより定義されるプロジェクトの一覧、又は、例えば、インターネットを介してプロジェクトをダウンロードするというリクエストに関して場合毎に識別される複数のプロジェクトによって定義されてよい。
図13は、本発明によるプロジェクトフィルタを構成し動作させるための処理1300を示すフローチャートである。示した処理1300は、フィルタ構成ユーティリティへアクセスする(1302)ことによって開始される。そうした構成は、クライアントエンティティ、システムプロバイダ又は他のオペレータによって実装されてよい。ユーティリティを用いて、フィルタが選択される(1304)。これには、フィルタ識別を構成される特定のフィルタと関連付けることが含まれる。なお、これに関して、クライアントエンティティ、システムプロバイダ又は他のオペレータは複数のライセンスを定義及び管理してよい。
フィルタが選択されると、そのフィルタに対するフィルタレベルが定義され得る(1306)。上述のように、これに関してフィルタは二値的であってもよく、2より多くのフィルタレベルを備えてもよい。したがって、二値フィルタは特定のユーザが特定の目的において特定のプロジェクトにアクセスすることを選択的に許可するか、又は許可しないように動作してよい。2より多くのフィルタレベルを有するフィルタはアクセスを許可するか、アクセスを許可しないか、又は一定の制限若しくは認可によってアクセスを許可してよい。次に個々のユーザ又はユーザグループは、定義されるライセンスとの関係において
選択され得る(1308)。これにより、個々のユーザ毎に又はアプリケーション開発グループなどのユーザグループ毎に、特定のプロジェクト又はプロジェクトグループ(例えば、関連するライセンスのタイプによって定義される)へのアクセスに関する異なったレベルが可能となる。
示した処理1300には、プロジェクトを定義されたフィルタレベルと関連付ける工程(1310)が含まれる。この場合にも、このことはプロジェクト毎に行われてもよく、又は例えば、上述のようにライセンスのタイプ又は別のカテゴリに基づきグループ化されているプロジェクトからなるグループによって行われてもよい。これに関して、例えば、有効期日及び複製又は頒布パラメータなど、他のフィルタパラメータが定義されてもよいことは認められるであろう。全ての所望のフィルタパラメータが定義されると、追加のフィルタの定義が必要であるか否かが判定される(1314)。追加のフィルタが定義される場合、この処理が繰り返される。追加のフィルタが定義されない場合、所望のプロジェクトフィルタ環境における使用のためにフィルタが有効化される(1316)。
使用中、フィルタは所与のフィルタ機能においてユーザを識別する(1318)ように動作する。ユーザはユーザの入力するユーザ識別情報に基づき、又はユーザ機械若しくはシステムのアイデンティティに基づき識別されてよい。また、意図される使用も識別されてよい(1320)。意図される使用はユーザによって入力されてもよく、ユーザグループその他の情報から推測されてもよい。これに関して、スタックのアセンブリ、インストール、デインストール及びサポート機能のうちの1つ以上に先立って、そうした情報をゲートウェイ機能として入力するようユーザを促すように動作してもよいことは認められるであろう。これに加えて、対象プロジェクトが識別される(1322)。特定の実装に応じて、バックグラウンドで又はスタックのアセンブリ、インストール及びサポート機能のうちの1つ以上の実行に先立って、そうした識別がインストールリクエストなどユーザの入力するリクエストに応答してもよく、ユーザ入力から独立して実行されてもよい。これに関して、フィルタはフィルタされたプロジェクトの表示を妨げるように動作してもよく、ユーザの入力から独立したフィルタされたプロジェクトの選択を妨げるように動作してもよい。最後に、フィルタはフィルタ機能を実行する(1324)ように動作する。そうした実行には、プロジェクトの識別されたセットへのアクセスを選択的に許可すること、プロジェクトの識別されたセットへのアクセス若しくはそのセットの特定の使用、又は制限情報/必要とされる適切な認可の表示を選択的に許可しないことが含まれる。
図15には、代表的なインストール処理1500を示す。示した処理は、スタックアセンブリに対する入力情報を受信する工程(1502)によって開始される。この処理が種々の手法によって開始されてよいことは認められるであろう。例えば、一部のユーザは、所与の利用に関連する特定のプロジェクトを含むパッケージをアセンブルすることに自身が興味を有することを認識する。この場合、そうしたユーザは、例えば、サポートされるプロジェクトの一覧をスクロールさせることによって、又は検索機能を用いることによって、そのプロジェクトを単に識別し、次に上述のように従属関係を通じて作用する。他の場合には、ユーザはプロプライエタリアプリケーションの名前を認識し、オープンソースの類似品を識別することに興味を有してもよい。そのような場合、そうした関係を識別するためのツールが提供されてよい。さらに他の場合、ユーザはプロジェクト名を認識せずに、対象の機能のみを認識する。それらの場合、ユーザが開始処理を開始させるのを補助するために、グラフィカルユーザインタフェースの形態で補助が提供される。例えば、プルダウンメニューなどのメニューが提供されることによって、ユーザが対象の機能を識別することが可能である。これに加えて又はこれに代えて、ユーザが対象のプロジェクトを識別するのを補助するために、例えば、プロジェクト説明情報へのリンクを用いて、サポートされるプロジェクトがグラフィカルに示されてもよい。さらなる代替として、幾つかのインタフェースを通じてユーザニーズを識別するインタビュー処理により、この処理が
開始されてもよい。これに関して、広範な種々のインタフェース機構が可能であることは認められるであろう。
いずれの場合においても、それによって入力情報が受信されると、示した処理1500には、1つ以上のプロジェクトに対するオプションを提供する工程(1504)が含まれる。したがって、例えば、対象のスタックがウェブ設計に関連することを入力情報が示す場合、種々のウェブ設計プロジェクトのオプションが識別される。例えば、強調表示することその他、サポートされるプロジェクトの一覧においてそうしたプロジェクトに対する注意を喚起することによって、そうした識別が実行される。これに代えて、上述のように、プロジェクト情報を提供するユーザインタフェースへのリンクを用いて、関連のプロジェクトが単に表示されてもよい。一部の場合には、オプションの選択ではなく唯一のプロジェクトのみが利用可能であり得ることは認められるであろう。
次にアセンブリ下のスタックの第1のプロジェクトにおいて、選択が受信され得る(1506)。例えば、示したオプションの一覧からグラフィカルユーザインタフェースを介して1つのプロジェクトが選択される。そうした選択が行われると、システムはそのプロジェクトにおける従属関係を判定する(1508)。そうした従属関係には、例えば、選択されたプロジェクトが従属するプロジェクトや、選択されたプロジェクトによって使用される他のプロジェクトが含まれる。また、システムは機械状態も判定する(1510)。例えば、これにはユーザの機械に既にインストールされているプロジェクトを識別することが含まれる。また、この時点でプロジェクトフィルタが適用されてもよい(1512)。この全ての処理に基づき、システムはプロジェクトフィルタ、機械状態及び従属関係を反映する表示をコンストラクト(1514)する。したがって、選択又はインストールにおいて利用可能なプロジェクトのセットは、プロジェクトフィルタに基づき限定され得る。機械状態に基づき、予めインストールされているプロジェクトがインストールにつれて識別されてもよく、インストールされる選択が利用不可能となってもよい。上述のように、種々のグラフィカル要素及び文字に従属関係が反映されてよい。
この表示から、このシステムはプロジェクト選択を受信し得る(1516)。例えば、ユーザは第1のプロジェクトの従属するプロジェクトを選択する。そうした選択の後、システムは全ての従属性が解決されているか否かを判定し得る(1518)。従属性が解決されていない場合、ユーザはさらなるプロジェクト選択を行うように促される。従属性が解決されている場合、システムはアセンブリが完了したことを示す(1520)。そうしたインジケーションはポップアップボックスその他、アクティブな表示要素によって提供されてもよく、単に従属性が残っていないことによって(例えば、第1のプロジェクトの表示が赤から黒へ切り換わる)提供されてもよい。
実際にインストールを実行することなく、単にスタックをアセンブルするために本発明のシステムが用いられてよいことは認められるであろう。このことは本発明の重要な態様である。例えば、従属関係の問題点と、クライアントエンティティのライセンスコンプライアンスプログラムに関連するフィルタ機能とに対処する処理を実行するために、例えば、開発者はその開発者のシステムに実装されているロジックを用いて、又はウェブサイトにアクセスして上述の機能を実行する。次に、本発明のシステムから独立して、そのスタックの個々のプロジェクトが取得され、インストールされる。しかしながら以下に述べるように、本発明のインストーラはインストールに関する種々の有用な機能を実行する。
B.インストール
従属関係が内部的に満たされているプロジェクトのセットの識別が、インストールが問題なく成功することを意味しないことは理解されるであろう。一般に、競合の問題点を解決し、プロジェクトを統合して(例えば、所与のプロジェクトが正しいデータベースを指
し示すよう構成されるように)、インストールされたスタックをプロジェクトの適切なインストール及び相互動作のためにテストすることがさらに必要である。これに加えて、インストールには特定の順序が必要である。本発明では、GUIはこれに関する種々の機能を実行するように動作する。
そうした一機能は、インストール前チェックを実行することである。例えば、GUIによってポートの競合が識別及び解決される。上述のように、個々のプロジェクトに関連付けられるプロジェクト情報によって、そのプロジェクトの利用するポートが識別される。このポート情報は競合の識別及び解決のため比較され得る。さらにシステムは、プロジェクトの必要とする任意のファイルその他のリソースが利用可能であることをベリファイするため、及びユーザ機械又はシステムにおいてプロジェクトの全ての環境要件が満たされていることをベリファイするために、チェックを実行する。
別の機能は実際のインストール処理の制御である。これに関して、エンジンはスタックのプロジェクト一覧を取得し、従属関係その他、インストールの適切な順序を決定するために必要なプロジェクト情報を解析し、次にその順序によりインストールを実行する。このインストールの実行に先立って、コントローラはロジックを実行し、所望のインストールを実施するために必要とされるリソースを識別してよい。
インストールに関してGUIの実行する別の機能は、データベースの統合である。これに関して、個々のプロジェクトが特定のデータベースを必要とし、異なるプロジェクトが異なるデータベースに関連付けられていてもよい。GUIはプロジェクトが所望のデータベースを指し示すよう、個々のプロジェクトを所望のデータベースと統合するように動作する。
インストール及びデータベースの統合が実行された後、インストールされたスタックの適正な動作をベリファイするために、インストールされたスタックに対しテストが実行されてよい。このことは、ユーザ機械上でスタックを実行し、次に特定のプロジェクト、プロジェクトの組み合わせ又はスタック全体に対し定義されるテスト手続を実行することによって実施される。例えば、そうしたテストには、特定のファイルを探すこと、ポートをチェックすること、サーバをピンすること(pinging)が含まれる。特定のテストが経験的に判定されてよいこと、即ち、共通のインストールエラーを識別する高い尤度を提供する獲得された専門技術に基づき判定されてよいことは認められるであろう。
次に、インストールされたスタックは選択されたサンプルを用いて実行される。即ち、インストールされたスタック用に特に設計されているチュートリアルは、GUIによって提供されてよい。ユーザは、このチュートリアルを実行し、インストール済みの統合されたスタックをどのように使用するかについて学習することが可能である。このスタックに関して、インストールされたスタックは一定のサンプルを実行する。これは、サンプルテストを提供するように動作する。即ち、サンプルの実行に関連してスタックの適正な動作がベリファイされる。これらのテストは上述のテストと同様であるが、先のテストより多くのソフトウェアスタックのレイヤに関係し、実行環境において動作する。これらのテストの結果としてエラーが識別される場合、エラーの解決又はインストール処理の一部を繰り返す指示に関する情報と共に、エラーメッセージが提供される。
プロジェクト更新の対処に関して同様の問題点が提示される。独立のリソース、例えば、複数のサードパーティ又はオープンソース開発者によるプロジェクトからなるスタックの動作においては、一般に更新が協調的でないことは認められるであろう。即ち、更新が異なる時に発生する場合や、互換性に対する影響を有する場合、有しない場合がある。上述のインストール処理は初期インストールに関して実施されるのみならず、更新インスト
ールに関して実施されることも可能である。即ち、所与の更新において、適切なチェック、インストールの順序決定、テストなどが設計及び実行されることが可能である。
これに関して、更新が手動で読み出されると更新のインストールが自動的に実施されてもよく、更新が利用可能であることがクライアントエンティティのユーザ又は管理者に示されてもよい。例えば、システムオペレータはサポートされるプロジェクトの更新の利用可能性をモニタし、適切な情報をユーザ又はクライアントエンティティにダウンロードする。次にユーザ又はクライアントエンティティがネットワークにログインすると、更新が利用可能であることが通知され、ユーザ又はクライアントエンティティはスタックのアセンブリ、インストール及びサポートのシステム又は影響を受けるプロジェクトの選択をロードする。そうした更新は更新されるプロジェクトオプション及びサポート教材に加え、更新されるソフトウェア更新に関連してもよい。次にユーザ又はクライアントエンティティは、更新をインストールすることを選択するか、更新をインストールしないことを選択する。これに関して、全てのユーザ/クライアントエンティティが全ての更新をインストールすることを望まない場合があることは認められるであろう。
したがって、示したシステムがインストール及び更新の処理に関して幾つかの利点を提供すること、また、スタックのアセンブリ又はインストール後のサポートから独立していると考えられるこのインストール処理が本発明の重要な態様を構成することは認められるであろう。即ち、このインストール処理の種々の要素は本発明から独立して開発されるスタックアセンブリにおいてさえ利点を提供する。しかしながら、複数のオープンソースプロジェクトのスタックのアセンブリ及びインストールに対してさえも、インストール後の一定のサポートが所望される場合がある。以下に述べるように、これに関して本発明は有意な利点を提供する。
C.インストール後サポート
オープンソースソフトウェアスタックをアセンブリ及びインストールすると、エンドユーザによるスタックの使用の用意が整う。しかしながら、スタックの最適な性能を可能とするには、種々のインストール後機能が有用な場合がある。以下で述べるように、本発明ではこれに関する種々の機能が提供される。インストールされたスタックの適正な使用及び性能についてエンドユーザを教育するためのチュートリアルから、多くのユーザは利益を得る。上述のように、一部のオープンソースソフトウェアプロジェクトにおいては、チュートリアルが利用可能である。しかしながら、一般にそうしたチュートリアルは、アセンブルされる特定のスタックにおいて指示を提供するように特に適合されている。本発明では、そうしたスタックにおいてチュートリアルが提供される。上述のシステムはオープンソースその他のプロジェクトの選択されたセットをサポートする。大きいが有限のソフトウェアスタックのセットを定義するように、それらのプロジェクトを組み合わせることが可能である。知識ベースは、それらのスタックの多く若しくは全部又はその一部に対するチュートリアル情報を記憶する。スタックがインストールされると、関連する1つ以上のチュートリアルがユーザによって実行されるように利用可能となる。
別の重要なインストール後機能は、ユーザマニュアルその他のサポート文書に関する。上述のように、個々のオープンソースプロジェクトに関してはサポート文書が利用可能な場合がある。しかしながら、従来、特定のスタックに関するサポート文書を取得する便利な機構は一般に存在しない。この問題は、本発明により、サポート文書を構造化されたXML文書として記憶することによって対処される。即ち、大量のサポート文書のテキストは、特定のプロジェクト、プロジェクトの組み合わせ及び全スタックに対しテキストをリンクさせるタグシステムにより関連付けられる。例えば、プロジェクト及びスタックは、親、子、その他の階層的タグ構造によって関連付けられる。特定のスタックがインストールされるとき、このタグシステムを用いて、カスタマイズされたサポート文書をコンパイ
ルし、関連するサポート文書を容易に読み出すことが可能である。また、関連するグラフィックがカスタムベースでアセンブルされてもよい。詳細には、サポート文書はLinux、Windows及びユーザによって指定される又は知識ベースに記憶されるユーザ機械情報により示される他の基準のうちの1つ以上において提供されてよく、これに関する適切な文書はメタデータ(例えば、タグ)関係に基づき読み出されてもよい。
オープンソースプロジェクト、プロジェクトの組み合わせ又は全スタックに対するカスタムチュートリアル及びサポート文書を提供する性能が、上述のスタックアセンブリ及びインストールツールから独立して利用され得る本発明の重要な利点であることは認められるであろう。例えば、上述のツールから独立してカスタムスタックインストールを実行した開発者は、本発明を利用してサポートのチュートリアル又は文書を取得することを望んでよい。例えば、これは開発者のシステムに実装されているロジックを実行することによって、又はそうしたチュートリアル又は文書を使用料ベースで提供するように動作するウェブサイトにアクセスすることによって実施される。
オープンソースソフトウェアの柔軟性と、本発明により提供されるアセンブリ及びインストールの容易性との組み合わせによって、プロプライエタリシステムにおいて又は本発明のツールの存在しない場合のオープンソースソフトウェアにおいて容易には実現不可能な幾つかの利点が得られる。例えば、ユーザは種々のスタックのオプションを試し、特定の利用に対していずれのオプションが最適であるかを判定することを望み得る。例えば、ユーザは特定のオープンソースソフトウェアスタックに関して異なる利用可能なデータベースツールを切り換えることを望み得る。本発明では、データベース切換機(スイッチャ)又は他のソフトウェアコンポーネントに対する切換機が提供されてよい。このようにして、ユーザは1つのデータベースと別のデータベースとの間でデータベースを切り換えさせるよう、システムに促すことが可能である。上述のように、このシステムはスタックの関連するプロジェクトが新たに選択されたデータベースを指し示すよう、スタックの関連するプロジェクトを統合するように動作する。次にユーザはスタックの性能を1つのデータベースツール(又は他のリソース)及び別のデータベースツール(又は他のリソース)と比較することが可能である。このようにして、特定の利用に対する性能の最適化が便利に実施されることが可能である。プロプライエタリシステムでは競合するプロバイダのツール間などの比較が一般に行われないことは認められるであろう。理論的には、オープンソースシステムではそうした比較が可能であるが、実際問題としては、ツール及び関連する統合の切換に関連する非常な複雑性のため、これは実行不可能である。
上述のシステムは幾つかの手法により実装されることが可能である。例えば、関連するロジックは定期的に提供される更新によって、物理的な形態でクライアントに流布される。これに代えて、関連するロジックはクライアントエンティティによってオペレータのウェブサイトからダウンロードされてよく、同様の手法により定期的に更新がダウンロードされてもよい。さらなる代替として、システムはホストされているアプリケーションとして動作されてもよい。いずれの場合においても、システムの使用は、例えば、ユーザ毎、年毎に、ライセンスされてよい。これに関して、非認可の改変に対してライセンス情報を保護しながら、そうしたライセンスに関する情報をライセンス取得者に利用可能とすることが所望される場合がある。
図14は、そうしたライセンス情報を管理するためのシステム1400を示す概略図である。示したシステムは、ユーザインタフェース1410を介してユーザに利用可能な情報を管理するためのライセンスマネージャ1402を備える。システム1400はシステムプロバイダのクライアント装置に実装されてもよく、別のロケーションに実装されてもよく、複数のプラットフォームに渡って分散されてもよい。ライセンスマネージャ1402は、ユーザインタフェース1410を介して入力されるライセンス情報のリクエストを
受信し、1404のライセンス情報へのアクセスを管理するように動作する。これに関して、ライセンス情報1404には、個々のライセンスに対するライセンスファイル1406が含まれる。ライセンスファイル1406は公開部分1406a及び非公開部分1406bを含む。公開部分1406a及び非公開部分1406bにて利用可能な情報は、ある程度まで重複する場合があるが、一般に非公開部分1406bは追加の情報を含む。示した実施例では、公開部分は、例えば、ライセンス識別及び有効期日を含む。そうした情報は、例えば、ユーザが問題点にあたるライセンスを識別し、クライアントエンティティに対する合法的な使用の情報を取得することを可能とするように用いられる。
非公開部分1406bは、ライセンス条項を定義する情報など、アクセスの制限についての追加の情報を含んでよい。1406bの非公開部分は、例えば、有効期日を更新するため又はライセンスされたシートを追加するために、認可された個人によってアクセスされることが可能である。これは、ユーザインタフェース1410を介してライセンス識別情報を入力し、制限されたアクセスフィールドへのアクセスをリクエストすることによって実行される。そうしたアクセスリクエストに応答して、ユーザはパスワードその他のセキュリティ情報の入力を促される。このパスワード情報は、1406の非公開部分に入力される情報を暗号化するため、又は非公開部分1406bから情報を解読するために用いられる。このようにして、ライセンス条項の実施に対する基本的情報などの情報の制限されたアクセスを保護しながら、適切なライセンス情報が利用可能となる。
アプリケーション開発環境のレイヤを示す図。 アプリケーション開発環境の種々のレイヤにおけるプロプライエタリアプリケーションの例を示す図。 オープンソースオプションを含むアプリケーション開発環境のレイヤを示す図。 アプリケーション開発環境におけるプロジェクトの一定の従属関係を示す図。 本発明によるソフトウェアスタックのアセンブリ、インストール及びサポートシステムの概略図。 図5のシステムの動作に関して提供され得るユーザインタフェーススクリーンの例の図。 図5のシステムの動作に関して提供され得るユーザインタフェーススクリーンの例の図。 図5のシステムの動作に関して提供され得るユーザインタフェーススクリーンの例の図。 図5のシステムの動作に関して提供され得るユーザインタフェーススクリーンの例の図。 図5のシステムの動作に関して提供され得るユーザインタフェーススクリーンの例の図。 図5のシステムの動作に関して提供され得るユーザインタフェーススクリーンの例の図。 本発明によるプロジェクトフィルタシステムを示す概略図。 図12のプロジェクトフィルタシステムの動作を示すフローチャート。 本発明によるライセンス管理システムの概略図。 本発明によるスタックアセンブリ処理を示すフローチャート。

Claims (32)

  1. 非協調ソフトウェアプロジェクトのスタックをアセンブルするための方法であって、
    非協調ソフトウェアプロジェクトのスタックを含むソフトウェアプロジェクトのスタックに関するスタック情報を提供するためにシステムにアクセスするシステムアクセス工程と、
    対象のスタックに関する入力を送出する入力送出工程と、
    入力に応答してスタック情報を受信するスタック情報受信工程と、
    システムアクセス工程はワイドエリアネットワークを介してリクエストを配信する工程を含むことと、からなる方法。
  2. スタック情報は1つ以上のオープンソースプロジェクトを含む第1のスタックに関する情報を含む請求項1に記載の方法。
  3. 非協調ソフトウェアプロジェクトのスタックをインストールするための方法であって、
    コンピュータベースツールを操作して、インストールされる複数の非協調ソフトウェアプロジェクトを識別する情報を受信する第1操作工程と、
    同コンピュータベースツールを操作して、同複数の非協調ソフトウェアプロジェクトのインストールに関する情報を記憶装置から読み出す第2操作工程と、
    同コンピュータベースツールを用いて同情報を処理し、同複数の非協調ソフトウェアプロジェクトのインストール手続を取得する情報処理工程と、
    同コンピュータベースツールを用いて同インストール手続を実行するインストール手続実行工程と、
    インストール手続実行工程の後、同複数の非協調ソフトウェアプロジェクトのうちの1つの更新を識別する更新識別工程と、からなる方法。
  4. 前記コンピュータベースツールを用いて前記更新に対するさらなるインストール手続を取得する工程と、
    前記コンピュータベースツールを用いて同さらなるインストール手続を実行する工程と、を含む請求項3に記載の方法。
  5. ユーザに前記更新に関する指示を促す工程を含む請求項3に記載の方法。
  6. 1つ以上のオープンソースソフトウェアコンポーネントに関する情報を記憶するための記憶装置と、
    コンピュータに対する第1のフィルタ情報を同1つ以上のオープンソースソフトウェアプロジェクトに関する第2のフィルタ情報と比較するフィルタと、
    フィルタが第1のフィルタ情報及び第2のフィルタ情報の比較結果に基づきコンピュータに対するインストール手続を判定することに応答するインストーラと、
    記憶装置は1つ以上のプロプライエタリソフトウェアプロジェクトに関する情報を記憶することと、からなる、ソフトウェアをインストールするように動作するシステム。
  7. 1つ以上のオープンソースソフトウェアコンポーネントに関する情報を記憶するための記憶装置と、
    コンピュータに対する第1のフィルタ情報を同1つ以上のオープンソースソフトウェアプロジェクトに関する第2のフィルタ情報と比較するフィルタと、
    フィルタが第1のフィルタ情報及び第2のフィルタ情報の比較結果に基づきコンピュータに対するインストール手続を判定することに応答するインストーラと、
    第2のフィルタ情報は一般公衆許諾契約書、劣等一般公衆許諾契約書及びプロプライエタリライセンスのうちの1つに関する関係を含むことと、からなる、ソフトウェアをイン
    ストールするように動作するシステム。
  8. 非協調ソフトウェアプロジェクトのスタックに対するサポートを取得するための方法であって、
    非協調ソフトウェアプロジェクトのスタックを含むソフトウェアプロジェクトのスタックに対するサポート情報を提供するためにサポートモジュールにアクセスするサポートモジュールアクセス工程と、
    ソフトウェアプロジェクトの第1のスタックに関する入力情報をサポートモジュールに提供する入力情報提供工程と、
    ソフトウェアプロジェクトの第1のスタックに関するサポート情報をサポートモジュールから受信するサポート情報受信工程と、
    入力情報提供工程はワイドエリアネットワークを介してサポートモジュールへリクエストを配信する工程を含むことと、からなる方法。
  9. 非協調プロジェクトのインストール済みスタックに関する更新を管理するための方法であって、
    更新の利用可能性に関する情報を取得する工程と、
    同更新により影響を受ける可能性を有するスタックを識別する工程と、
    同スタックに関連するユーザに更新情報を提供する工程と、
    更新情報は、更新が利用可能であることの通知、更新を反映するソフトウェア、及び更新のインストール情報のうちの1つを含むことと、からなる方法。
  10. 非協調プロジェクトのインストール済みスタックに関する更新を管理するための方法であって、
    更新の利用可能性に関する情報を取得する工程と、
    同更新により影響を受ける可能性を有するスタックを識別する工程と、
    同スタックに関連するユーザに更新情報を提供する工程と、
    同スタックを更新し、同スタックのうちの少なくとも一部をインストール済み状態とする工程と、からなる方法。
  11. ソフトウェアのライセンスを管理するための方法であって、
    所与のソフトウェアライセンスに関する公開情報及び非公開情報を記憶する情報記憶工程と、
    公開情報のうちの少なくとも一部へのアクセスを提供するアクセス提供工程と、
    非公開情報のうちの少なくとも一部へのアクセスのリクエストを受信するリクエスト受信工程と、
    リクエストに応答して、非公開情報へのアクセスの認可のベリファイを実行するベリファイ実行工程と、
    ベリファイに応答して、非公開情報のうちの一部へのアクセスを選択的に提供する選択的アクセス提供工程と、からなる方法。
  12. ベリファイ実行工程は認可情報を取得する工程を含む請求項11に記載の方法。
  13. ソフトウェアプロジェクトへのアクセス又はソフトウェアプロジェクトの使用を制御するための方法であって、
    ソフトウェアプロジェクトへのアクセス及びソフトウェアプロジェクトの使用のうちの一方に関するフィルタ基準を定義するフィルタ基準定義工程と、フィルタ基準は同ソフトウェアプロジェクトのプロバイダによって付与される権利から独立してリクエスト者に影響を与えるポリシー又はそのポリシーの欠如を反映することと、
    1つ以上のソフトウェアプロジェクトへのアクセス及び同1つ以上のソフトウェアプロ
    ジェクトの使用のうちの一方に対するリクエストを受信するリクエスト受信工程と、
    コンピュータベースツールを操作してフィルタ基準に従いリクエストを処理し、同リクエストに応答して出力を提供する操作工程と、からなる方法。
  14. フィルタ基準は特定のプロジェクトを識別することと、
    操作工程はリクエストをフィルタ基準の特定のプロジェクトと比較する工程を含むことと、を含む請求項13に記載の方法。
  15. フィルタ基準はプロジェクトのタイプを識別することと、
    操作工程はリクエストをプロジェクトのタイプと比較する工程を含むことと、を含む請求項13に記載の方法。
  16. フィルタ基準は前記ソフトウェアプロジェクトに関連付けられるライセンス情報に関することと、
    操作工程はリクエストをライセンス情報と比較する工程を含むことと、を含む請求項13に記載の方法。
  17. 前記ソフトウェアプロジェクトのセットに関する情報を記憶する工程と、
    操作工程は記憶した情報にアクセスする工程を含むことと、を含む請求項13に記載の方法。
  18. 記憶した情報はオープンソースプロジェクトのライセンスのタイプを含む請求項13に記載の方法。
  19. フィルタ基準はユーザに従属することと、
    操作工程はリクエストに関連するユーザを判定する工程を含むことと、を含む請求項13に記載の方法。
  20. フィルタ基準は使用に従属することと、
    操作工程はリクエストに関連する意図される使用を判定する工程を含むことと、を含む請求項13に記載の方法。
  21. コンピュータベースツールはアプリケーションをインストールするように動作することと、
    操作工程はフィルタ基準に基づき識別されるソフトウェアプロジェクトを選択的にインストールする工程を含むことと、を含む請求項13に記載の方法。
  22. リクエストは識別されるソフトウェアプロジェクトに関連する公開ネットワークノードへのアクセスを探すことと、
    操作工程は公開ネットワークノードとリクエストに関連するノードとの間の通信を制御する工程を含むことと、を含む請求項13に記載の方法。
  23. 出力を提供する工程はフィルタ基準を反映する表示を可能とする工程を含む請求項13に記載の方法。
  24. ソフトウェアプロジェクトの一覧と、ソフトウェアプロジェクトへのアクセス及びソフトウェアプロジェクトの使用のうちの一方に関するフィルタ基準とを記憶するための記憶装置と、
    ソフトウェアプロジェクトに関するリクエストを受信するためのインタフェース構造と、
    フィルタ基準に基づきリクエストに応答するためのソフトウェアプロジェクトのサブセットを判定するためのプロセッサと、からなるソフトウェアプロジェクトフィルタシステム。
  25. フィルタ基準は特定のプロジェクトを識別することと、
    プロセッサはリクエストを同プロジェクトと比較するように動作することと、を含む請求項24に記載のシステム。
  26. フィルタ基準はプロジェクトのタイプを識別することと、
    プロセッサはリクエストをプロジェクトのタイプと比較するように動作することと、を含む請求項24に記載のシステム。
  27. フィルタ基準は前記ソフトウェアプロジェクトに関連付けられるライセンス情報に関することと、
    プロセッサはリクエストをライセンス情報と比較するように動作することと、を含む請求項24に記載のシステム。
  28. フィルタ基準はユーザに従属することと、
    プロセッサはリクエストに関連するユーザを判定するように動作することと、を含む請求項24に記載のシステム。
  29. フィルタ基準は使用に従属することと、
    プロセッサはリクエストに関連する意図される使用を判定するように動作することと、を含む請求項24に記載のシステム。
  30. プロセッサは前記サブセットを反映する表示出力を提供するように動作する請求項24に記載のシステム。
  31. 定義されたポリシーに従ってソフトウェアプロジェクトにアクセスし、同ソフトウェアプロジェクトを使用するための方法であって、
    1つ以上のオープンソースプロジェクトを含むプロジェクトのセットへのアクセス及び同プロジェクトのセットの使用に関するポリシーを実装するためにフィルタモジュールにアクセスするフィルタモジュールアクセス工程と、
    同フィルタモジュールを使用して同プロジェクトのセットへのアクセス及び同プロジェクトのセットの使用のうちの一方を管理するプロジェクト管理工程と、からなる方法。
  32. フィルタモジュールアクセス工程はワイドエリアネットワークを介してフィルタモジュールへのリクエストを配信する工程を含む請求項31に記載の方法。
JP2007511035A 2004-04-28 2005-04-28 非協調ソフトウェアプロジェクトをスタックさせるためのツール Pending JP2007535770A (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US56631104P 2004-04-28 2004-04-28
US56631004P 2004-04-28 2004-04-28
US56630104P 2004-04-28 2004-04-28
PCT/US2005/014912 WO2005104798A2 (en) 2004-04-28 2005-04-28 Tools for stacking uncoordinated software projects

Publications (1)

Publication Number Publication Date
JP2007535770A true JP2007535770A (ja) 2007-12-06

Family

ID=35242188

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007511035A Pending JP2007535770A (ja) 2004-04-28 2005-04-28 非協調ソフトウェアプロジェクトをスタックさせるためのツール

Country Status (6)

Country Link
US (5) US7665086B2 (ja)
EP (1) EP1763792A4 (ja)
JP (1) JP2007535770A (ja)
AU (1) AU2005237638A1 (ja)
CA (1) CA2563786A1 (ja)
WO (1) WO2005104798A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017204272A (ja) * 2016-05-09 2017-11-16 株式会社トゥービーソフトTobesoft Co., Ltd. オープンソース基盤ソースコードマッチング方法及び装置

Families Citing this family (64)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5944530A (en) 1996-08-13 1999-08-31 Ho; Chi Fai Learning method and system that consider a student's concentration level
US9792659B2 (en) * 1999-04-13 2017-10-17 Iplearn, Llc Computer-aided methods and apparatus to access materials in a network environment
US7804609B2 (en) * 2003-11-07 2010-09-28 Desktop Standard Corporation Methods and systems to connect network printers
CA2563786A1 (en) * 2004-04-28 2005-11-10 Openlogic, Inc. Tools for stacking uncoordinated software projects
US7496910B2 (en) * 2004-05-21 2009-02-24 Desktopstandard Corporation System for policy-based management of software updates
US7757220B2 (en) * 2004-10-21 2010-07-13 Discovery Machine, Inc. Computer interchange of knowledge hierarchies
US7590933B2 (en) * 2004-11-17 2009-09-15 International Business Machines Corporation Method for displaying an annotated file
WO2006110991A1 (en) * 2005-04-18 2006-10-26 Research In Motion Limited Method and system for controlling software version updates
US7552429B2 (en) * 2005-04-21 2009-06-23 International Business Machines Corporation Integrated development environment for managing software licensing restrictions
US8527504B1 (en) * 2005-09-01 2013-09-03 At&T Intellectual Property Ii, L.P. Data network content filtering using categorized filtering parameters
US20110191743A1 (en) * 2005-11-02 2011-08-04 Openlogic, Inc. Stack macros and project extensibility for project stacking and support system
US20080052663A1 (en) * 2006-07-17 2008-02-28 Rod Cope Project extensibility and certification for stacking and support tool
US20070244897A1 (en) * 2006-04-18 2007-10-18 David Voskuil Methods and systems for change management for a group policy environment
US8132188B2 (en) * 2006-04-21 2012-03-06 International Business Machines Corporation Method and system for extension registry filtering
US7971187B2 (en) * 2006-04-24 2011-06-28 Microsoft Corporation Configurable software stack
US10838714B2 (en) 2006-04-24 2020-11-17 Servicenow, Inc. Applying packages to configure software stacks
US8925052B2 (en) * 2006-07-26 2014-12-30 At&T Intellectual Property I, L.P. Application integration
US20080184277A1 (en) * 2007-01-26 2008-07-31 Microsoft Corporation Systems management policy validation, distribution and enactment
US8065675B2 (en) * 2007-03-21 2011-11-22 Yahoo! Inc. In-page installer
US20080281904A1 (en) * 2007-05-11 2008-11-13 Va Software Corporation Associating service listings with open source projects
US8762984B2 (en) * 2007-05-31 2014-06-24 Microsoft Corporation Content distribution infrastructure
US8347279B2 (en) * 2007-06-07 2013-01-01 International Business Machines Corporation Base application and stack application synchronization for software installation and maintenance
US8065671B1 (en) * 2007-08-20 2011-11-22 United States Automobile Association (USAA) Systems and methods for product updates with provisioning of data items
US8612966B2 (en) * 2007-11-29 2013-12-17 Red Hat, Inc. Method and system for preparing software offerings having software application code and post-install configuration information
US8230397B2 (en) * 2008-01-23 2012-07-24 International Business Machines Corporation Automated solution that detects configuration problems in an eclipse-based software application
DE112009000173T5 (de) * 2008-01-23 2011-06-09 Itid Consulting, Ltd. Informationsverarbeitungssystem, Programm und Informationsverarbeitungsverfahren
US10460085B2 (en) 2008-03-13 2019-10-29 Mattel, Inc. Tablet computer
US8688845B2 (en) * 2008-06-27 2014-04-01 Microsoft Corporation Remote computing session feature differentiation
US8306946B2 (en) * 2008-10-06 2012-11-06 Teradata Us, Inc. Deployment manager for master data management
US8453112B1 (en) * 2008-11-13 2013-05-28 Adobe Systems Incorporated Systems and methods for collaboratively creating applications using a multiple source file project that can be accessed and edited like a single file
US8949788B2 (en) * 2008-12-17 2015-02-03 Red Hat, Inc. Building and packaging software
US20100175044A1 (en) * 2009-01-07 2010-07-08 Infosys Technologies Limited Method for creating software factory for developing j2ee applications
US8412852B2 (en) * 2009-02-05 2013-04-02 International Business Machines Corporation Guaranteeing a single copy of a shared assembly per process
WO2010096479A1 (en) * 2009-02-17 2010-08-26 Fuhu, Inc. System and method for providing expert search in a modular computing system
US9639347B2 (en) * 2009-12-21 2017-05-02 International Business Machines Corporation Updating a firmware package
US20110209144A1 (en) * 2010-02-19 2011-08-25 International Business Machines Corporation Application runtime expert for deployment of an application on multiple computer systems
JP2011253417A (ja) * 2010-06-03 2011-12-15 Ricoh Co Ltd 情報処理装置、プログラム導入支援方法、及びプログラム導入支援プログラム
US20110302565A1 (en) * 2010-06-07 2011-12-08 Ferris Michael S Implicit workspace dependencies
US8832654B2 (en) * 2010-06-15 2014-09-09 Unisys Corporation System and method for autonomous generation of software documentation
US8498982B1 (en) 2010-07-07 2013-07-30 Openlogic, Inc. Noise reduction for content matching analysis results for protectable content
US20120240096A1 (en) * 2011-03-20 2012-09-20 White Source Ltd. Open source management system and method
KR20120118353A (ko) * 2011-04-18 2012-10-26 삼성전자주식회사 방송수신장치 및 서비스 설치 방법
US9170779B2 (en) 2011-07-19 2015-10-27 International Business Machines Corporation Managing an application development environment
US20130191249A1 (en) * 2012-01-23 2013-07-25 International Business Machines Corporation Personalizing customer response
US9152414B2 (en) * 2012-03-26 2015-10-06 Tata Consultancy Services Limited System and method to select compatible open-source software and components for developed or conceptualized solution
US20130326479A1 (en) * 2012-06-01 2013-12-05 Qnx Software Systems Limited System and method for tracking compliance information for a build-system product
US20140089898A1 (en) * 2012-09-27 2014-03-27 International Business Machines Corporation Using multiple technical writers to produce a specified software documentation package
US9274760B2 (en) * 2013-07-11 2016-03-01 Sap Se Adaptive developer experience based on project types and process templates
CN103488738A (zh) * 2013-09-18 2014-01-01 北京思特奇信息技术股份有限公司 一种自动实现java对象及数据表sql文件的方法及系统
US9740854B2 (en) 2013-10-25 2017-08-22 Red Hat, Inc. System and method for code protection
US10382279B2 (en) 2014-06-30 2019-08-13 Emc Corporation Dynamically composed compute nodes comprising disaggregated components
US9852138B2 (en) 2014-06-30 2017-12-26 EMC IP Holding Company LLC Content fabric for a distributed file system
US9442717B2 (en) 2014-07-15 2016-09-13 Vmware, Inc. Techniques for automatically identifying input files used to generate output files in a software build process
CN105260214B (zh) * 2015-11-03 2018-12-18 用友网络科技股份有限公司 应用于复杂erp系统的智能补丁推送方法及系统
US9841952B2 (en) 2015-12-29 2017-12-12 Wipro Limited System and method for dynamically composing an integrated open source stack
US10331909B2 (en) * 2016-01-26 2019-06-25 International Business Machines Corporation Dynamic data flow analysis for dynamic languages programs
US10831463B2 (en) 2017-03-08 2020-11-10 International Business Machines Corporation Intelligent software deployment on an IaaS platform
US11816190B2 (en) * 2017-06-30 2023-11-14 Tata Consultancy Services Limited Systems and methods to analyze open source components in software products
US11150635B2 (en) * 2017-10-02 2021-10-19 Fisher-Rosemount Systems, Inc. Projects within a process control asset management system
US10896037B2 (en) * 2018-08-07 2021-01-19 Dell Products, L.P. Method and apparatus for open source analytics for information handling systems
US11210430B2 (en) 2019-04-02 2021-12-28 Dell Products L.P. System and method to negotiate encryption responsibilities between an encryption capable controller and a self encrypting drive
US11498211B2 (en) * 2019-12-30 2022-11-15 Intrinsic Innovation Llc Composability framework for robotic control system
US11288166B2 (en) 2020-07-20 2022-03-29 Red Hat, Inc. Determining a recommended software-stack for a target software item
US11900093B2 (en) 2021-07-20 2024-02-13 Red Hat, Inc. Constructing pipelines for implementing a software-stack resolution process

Family Cites Families (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5860012A (en) * 1993-09-30 1999-01-12 Intel Corporation Installation of application software through a network from a source computer system on to a target computer system
US5553282A (en) 1994-12-09 1996-09-03 Taligent, Inc. Software project history database and method of operation
US5892900A (en) * 1996-08-30 1999-04-06 Intertrust Technologies Corp. Systems and methods for secure transaction management and electronic rights protection
US5765152A (en) 1995-10-13 1998-06-09 Trustees Of Dartmouth College System and method for managing copyrighted electronic media
FR2745649B1 (fr) * 1996-03-01 1998-04-30 Bull Sa Systeme de configuration de logiciels preconfigures sur des systemes ouverts en reseau dans un environnement distribue et procede mis en oeuvre par un tel systeme
JPH10240502A (ja) * 1997-02-21 1998-09-11 Internatl Intelligent Inf:Kk 情報機器内の環境を転送する方式
US7424543B2 (en) 1999-09-08 2008-09-09 Rice Iii James L System and method of permissive data flow and application transfer
US6715144B2 (en) * 1999-12-30 2004-03-30 International Business Machines Corporation Request based automation of software installation, customization and activation
US6895581B1 (en) * 2000-03-30 2005-05-17 Microsoft Corporation Replaceable classes and virtual constructors for object-oriented programming languages
DE10121790B4 (de) * 2000-06-03 2006-11-23 International Business Machines Corp. Softwarekonfigurationsverfahren zur Verwendung in einem Computersystem
US20020049738A1 (en) * 2000-08-03 2002-04-25 Epstein Bruce A. Information collaboration and reliability assessment
US7958185B2 (en) 2000-09-18 2011-06-07 Bentley Systems, Inc. Spatial data enabled engineering, construction, and operations computer-aided design (CAD) project system, method and computer program product
US7233940B2 (en) * 2000-11-06 2007-06-19 Answers Corporation System for processing at least partially structured data
US7331034B2 (en) * 2001-01-09 2008-02-12 Anderson Thomas G Distributed software development tool
US8275716B2 (en) * 2001-05-31 2012-09-25 Contentguard Holdings, Inc. Method and system for subscription digital rights management
US20030009740A1 (en) * 2001-06-11 2003-01-09 Esoftbank (Beijing) Software Systems Co., Ltd. Dual & parallel software development model
US7043716B2 (en) * 2001-06-13 2006-05-09 Arius Software Corporation System and method for multiple level architecture by use of abstract application notation
EP1563389A4 (en) * 2001-08-01 2008-06-25 Actona Technologies Ltd VIRTUAL DATA DISTRIBUTION NETWORK
US7069547B2 (en) * 2001-10-30 2006-06-27 International Business Machines Corporation Method, system, and program for utilizing impact analysis metadata of program statements in a development environment
US20030135842A1 (en) * 2002-01-16 2003-07-17 Jan-Erik Frey Software development tool for embedded computer systems
WO2003088119A1 (en) * 2002-04-08 2003-10-23 Topcoder, Inc. System and method for soliciting proposals for software development services
US20040054566A1 (en) 2002-06-17 2004-03-18 J'maev Jack Ivan Method and apparatus for event driven project management
CA2391733A1 (en) * 2002-06-26 2003-12-26 Ibm Canada Limited-Ibm Canada Limitee Framework to access a remote system from an integrated development environment
US20040073789A1 (en) * 2002-10-15 2004-04-15 Powers John Stephenson Method for collaborative software licensing of electronically distributed computer programs
US7185344B2 (en) * 2003-03-14 2007-02-27 Hewlett-Packard Development Company, L.P. Method of porting software
KR100499050B1 (ko) * 2003-05-29 2005-07-04 주식회사 팬택 이동통신을 위한 임베디드 시스템의 구현 방법
US7246156B2 (en) * 2003-06-09 2007-07-17 Industrial Defender, Inc. Method and computer program product for monitoring an industrial network
US7882488B2 (en) * 2003-10-20 2011-02-01 Robert Zeidman Software tool for synthesizing a real-time operating system
US7188118B2 (en) * 2003-11-26 2007-03-06 Veritas Operating Corporation System and method for detecting file content similarity within a file system
US7516331B2 (en) * 2003-11-26 2009-04-07 International Business Machines Corporation Tamper-resistant trusted java virtual machine and method of using the same
US7552093B2 (en) 2003-12-04 2009-06-23 Black Duck Software, Inc. Resolving license dependencies for aggregations of legally-protectable content
US20060116966A1 (en) * 2003-12-04 2006-06-01 Pedersen Palle M Methods and systems for verifying protectable content
US8700533B2 (en) * 2003-12-04 2014-04-15 Black Duck Software, Inc. Authenticating licenses for legally-protectable content based on license profiles and content identifiers
US9489687B2 (en) * 2003-12-04 2016-11-08 Black Duck Software, Inc. Methods and systems for managing software development
US20050183021A1 (en) * 2004-02-13 2005-08-18 Allen Joel E. Method for electronically packaging a user's personal computing environment on a computer or device, and mobilizing it for transfer over a network
US7503031B2 (en) * 2004-02-19 2009-03-10 International Business Machines Corporation Method of transforming an application into an on-demand service
US7418491B2 (en) * 2004-02-19 2008-08-26 International Business Machines Corporation Architecture for a centralized management system
CA2563786A1 (en) * 2004-04-28 2005-11-10 Openlogic, Inc. Tools for stacking uncoordinated software projects
KR100607141B1 (ko) * 2004-05-12 2006-08-01 한국생산기술연구원 개방형 분산처리구조의 로봇 제어 시스템
US20070299825A1 (en) * 2004-09-20 2007-12-27 Koders, Inc. Source Code Search Engine
US7797245B2 (en) * 2005-03-18 2010-09-14 Black Duck Software, Inc. Methods and systems for identifying an area of interest in protectable content
US7565348B1 (en) * 2005-03-24 2009-07-21 Palamida, Inc. Determining a document similarity metric
US7904875B2 (en) * 2005-12-12 2011-03-08 Microsoft Corporation Configuring and allocating software product technical services
US20070240102A1 (en) * 2006-03-02 2007-10-11 International Business Machines Corporation Software development tool for sharing test and deployment assets
US8010538B2 (en) * 2006-05-08 2011-08-30 Black Duck Software, Inc. Methods and systems for reporting regions of interest in content files
US7631294B2 (en) * 2006-09-19 2009-12-08 Black Duck Software, Inc. Notification system for source code discovery
US8010803B2 (en) * 2006-10-12 2011-08-30 Black Duck Software, Inc. Methods and apparatus for automated export compliance
US7681045B2 (en) * 2006-10-12 2010-03-16 Black Duck Software, Inc. Software algorithm identification
WO2009062293A1 (en) * 2007-11-13 2009-05-22 Protecode Incorporated System and method for capturing and certifying digital content pedigree
US20090177635A1 (en) * 2008-01-08 2009-07-09 Protecode Incorporated System and Method to Automatically Enhance Confidence in Intellectual Property Ownership
US8024313B2 (en) * 2008-05-09 2011-09-20 Protecode Incorporated System and method for enhanced direction of automated content identification in a distributed environment

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017204272A (ja) * 2016-05-09 2017-11-16 株式会社トゥービーソフトTobesoft Co., Ltd. オープンソース基盤ソースコードマッチング方法及び装置

Also Published As

Publication number Publication date
AU2005237638A1 (en) 2005-11-10
US20100192119A1 (en) 2010-07-29
US8832647B2 (en) 2014-09-09
EP1763792A2 (en) 2007-03-21
US7669199B2 (en) 2010-02-23
US20060031226A1 (en) 2006-02-09
CA2563786A1 (en) 2005-11-10
US7661089B2 (en) 2010-02-09
WO2005104798A2 (en) 2005-11-10
US7665086B2 (en) 2010-02-16
US20060036651A1 (en) 2006-02-16
US20060036652A1 (en) 2006-02-16
US20060031227A1 (en) 2006-02-09
WO2005104798A3 (en) 2006-05-26
US7657866B2 (en) 2010-02-02
EP1763792A4 (en) 2008-12-03

Similar Documents

Publication Publication Date Title
US7665086B2 (en) Software project filter
US8881092B2 (en) Stack or project extensibility and certification for stacking tool
US10013536B2 (en) License activation and management
US8635232B2 (en) Systems and methods for exporting, publishing, browsing and installing on-demand applications in a multi-tenant database environment
US8589306B1 (en) Open source license management
JP2004192644A (ja) 電子ソフトウェア設計仕様文書検証方法及び装置、並びにコンピュータ可読媒体
US11803553B2 (en) Providing triggers based on one-to-many or many-to-one relationships in a system of record
US20110191743A1 (en) Stack macros and project extensibility for project stacking and support system
Web Getting Started Guide
Hassell Learning Windows Server 2003
Svidergol et al. Exam Ref MS-101 Microsoft 365 Mobility and Security
AU2022315233A1 (en) Systems, methods, applications, and user interfaces for providing triggers in a system of record
Jones et al. System Center Configuration Manager Reporting Unleashed
Mignault et al. Oracle Application Express Administration: For DBAs and Developers
Frampton et al. Cluster Management
Scalable et al. Oracle Application Express Administration
Iranzo et al. D4. 1b: Services & tools specification

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080423

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110809

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20111109

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20111116

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120410