(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024039567
(43)【公開日】2024-03-22
(54)【発明の名称】情報処理装置、情報処理方法及び情報処理プログラム
(51)【国際特許分類】
G06F 8/70 20180101AFI20240314BHJP
【FI】
G06F8/70
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2022144219
(22)【出願日】2022-09-10
(71)【出願人】
【識別番号】522361401
【氏名又は名称】Covalent株式会社
(74)【代理人】
【識別番号】110003546
【氏名又は名称】弁理士法人伊藤IP特許事務所
(72)【発明者】
【氏名】小林 弘樹
(72)【発明者】
【氏名】森 恭一
【テーマコード(参考)】
5B376
【Fターム(参考)】
5B376BC38
5B376DA21
5B376FA13
(57)【要約】
【課題】複数のオープンソースソフトウェアが実装された所定の製品又はサービスに対するオープンソースソフトウェアに起因する障害の影響を特定する。
【解決手段】本開示の情報処理装置は、製品又はサービスに実装された複数のオープンソースソフトウェアを構成する複数のプログラムのソースコード群について、欠陥を有するソースコードに関する第1情報を取得することと、第1データベースに対して第1情報を入力して、該第1データベースの中から該第1情報の影響が及ぶ複数のソースコードを検索することと、第2データベースに対して検索された複数のソースコードに関する第2情報を入力して、該第2データベースの中から該第2情報の影響が及ぶ開発オブジェクトを取得することと、を実行する制御部を備える。
【選択図】
図3
【特許請求の範囲】
【請求項1】
複数のオープンソースソフトウェアが実装された所定の製品又はサービスに対するオープンソースソフトウェアに起因する障害の発生を管理する情報処理装置であって、
前記製品又は前記サービスに実装された前記複数のオープンソースソフトウェアを構成する複数のプログラムのソースコード群について、該ソースコード群の中から欠陥を有するソースコードに関する第1情報を取得することと、
前記製品又は前記サービスに実装された前記複数のオープンソースソフトウェアが該オープンソースソフトウェア間の依存関係とともに一覧として記憶された第1データベースに対して、前記第1情報を入力して、該第1データベースの中から該第1情報の影響が及ぶ複数のソースコードを検索することと、
前記製品又は前記サービスの開発情報に関する複数の開発オブジェクトが該開発オブジェクト間の依存関係とともに一覧として記憶された第2データベースに対して、検索された前記複数のソースコードに関する第2情報を入力して、該第2データベースの中から該第2情報の影響が及ぶ開発オブジェクトを取得することと、
を実行する制御部を備える、情報処理装置。
【請求項2】
前記第1データベースは、前記製品又は前記サービスの運用を管理する事業者である第1事業者によって管理され、
前記第2データベースは、前記製品又は前記サービスの開発を管理する事業者である第2事業者によって管理される、
請求項1に記載の情報処理装置。
【請求項3】
前記第1データベースは、所定のソフトウェア部品表である、
請求項2に記載の情報処理装置。
【請求項4】
前記第2データベースは、前記開発情報を上位から下位に追跡可能に構成されたデータベースである、
請求項2に記載の情報処理装置。
【請求項5】
前記制御部は、
前記第2情報の影響が及ぶ前記開発オブジェクトに基づいて、前記製品又は前記サービスに対する障害の程度を判定することと、
前記障害の程度に基づいて、前記製品又は前記サービスの運用継続の可否を判定するとともに、該運用継続の可否を前記第1事業者に通知することと、を更に実行し、
前記第2情報の影響が及ぶ前記開発オブジェクトが、前記開発情報に関する上位の開発オブジェクトである程、前記障害の程度が高いと判定する、
請求項4に記載の情報処理装置。
【請求項6】
複数のオープンソースソフトウェアが実装された所定の製品又はサービスに対するオープンソースソフトウェアに起因する障害の発生を管理する情報処理方法であって、
コンピュータが、
前記製品又は前記サービスに実装された前記複数のオープンソースソフトウェアを構成する複数のプログラムのソースコード群について、該ソースコード群の中から欠陥を有するソースコードに関する第1情報を取得することと、
前記製品又は前記サービスに実装された前記複数のオープンソースソフトウェアが該オープンソースソフトウェア間の依存関係とともに一覧として記憶された第1データベースに対して、前記第1情報を入力して、該第1データベースの中から該第1情報の影響が及ぶ複数のソースコードを検索することと、
前記製品又は前記サービスの開発情報に関する複数の開発オブジェクトが該開発オブジェクト間の依存関係とともに一覧として記憶された第2データベースに対して、検索された前記複数のソースコードに関する情報を入力して、該第2データベースの中から該情報の影響が及ぶ開発オブジェクトを取得することと、
を実行する情報処理方法。
【請求項7】
複数のオープンソースソフトウェアが実装された所定の製品又はサービスに対するオープンソースソフトウェアに起因する障害の発生を管理する情報処理プログラムであって、
コンピュータに、
前記製品又は前記サービスに実装された前記複数のオープンソースソフトウェアを構成する複数のプログラムのソースコード群について、該ソースコード群の中から欠陥を有するソースコードに関する第1情報を取得することと、
前記製品又は前記サービスに実装された前記複数のオープンソースソフトウェアが該オープンソースソフトウェア間の依存関係とともに一覧として記憶された第1データベースに対して、前記第1情報を入力して、該第1データベースの中から該第1情報の影響が及ぶ複数のソースコードを検索することと、
前記製品又は前記サービスの開発情報に関する複数の開発オブジェクトが該開発オブジェクト間の依存関係とともに一覧として記憶された第2データベースに対して、検索された前記複数のソースコードに関する情報を入力して、該第2データベースの中から該情報の影響が及ぶ開発オブジェクトを取得することと、
を実行させる情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数のオープンソースソフトウェアが実装された所定の製品又はサービスに対するオープンソースソフトウェアに起因する障害の発生を管理する情報処理装置、情報処理方法及び情報処理プログラムに関する。
【背景技術】
【0002】
近年、オープンソースソフトウェア(OSS)を利用したソフトウェアの開発が盛んになっている。ここで、OSSのライセンスの一つであるGPL(GNU General Public License)では、OSS自身に障害が発生した場合、その作成者は修正の責任を負うことがないため、OSSの使用者は、インターネット上の技術者が無償で修正するのを待つか自身で修正する必要がある。
【0003】
また、OSSの障害は、そのOSSを間接的に用いたソフトウェアに伝播するものがある。一方、OSSのバージョンアップがされる場合にも、そのOSSを間接的に用いたソフトウェアにもその影響が伝播し得る。そうすると、呼出関係を有するOSS間で修正漏れが発生する虞がある。
【0004】
ここで、特許文献1には、カスタマイズした基準ソースコードに対して、その基準ソースコードのバージョン変更による変更箇所を反映する場合に、変更すべき確度に基づいて修正候補箇所を提示する技術が開示されている。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
製品やサービスに対する従来までの開発では、これらに実装されるソフトウェアは、例えば、その製品やサービスを開発する事業者によって管理され運用されてきた。この場合、仮に、上記ソフトウェアに欠陥が発見された場合であっても、その製品やサービスを開発する事業者は、その影響を比較的簡単に特定することができた。一方、近年の、オープンソースソフトウェア(OSS)を利用したソフトウェアの開発によって、製品やサービスに対して複数のオープンソースソフトウェアが実装されるようになると、該製品やサービスに対するオープンソースソフトウェアに起因する障害が発生してしまうと、その製品やサービスを開発する事業者は、その影響を特定することが困難になることがあった。
【0007】
ここで、特許文献1に記載の技術によれば、基準ソースコードをカスタマイズした場合であっても、その基準ソースコードのバージョン変更による修正候補箇所が提示されるため、OSSの変更による影響を特定し易くなるようにも思われる。しかしながら、近年の複数のOSSが実装された製品やサービスにおいては、それら複数のOSSの管理と、該製品やサービスの開発情報の管理と、が別々に行われ得ることがわかり、このような場合、従来技術では、やはり、OSSの変更による影響を特定することが困難になることがわかった。
【0008】
本開示の目的は、複数のオープンソースソフトウェアが実装された所定の製品又はサービスに対するオープンソースソフトウェアに起因する障害の影響を特定することにある。
【課題を解決するための手段】
【0009】
本開示の情報処理装置は、複数のオープンソースソフトウェアが実装された所定の製品又はサービスに対するオープンソースソフトウェアに起因する障害の発生を管理する情報処理装置である。そして、この情報処理装置は、前記製品又は前記サービスに実装された前記複数のオープンソースソフトウェアを構成する複数のプログラムのソースコード群について、該ソースコード群の中から欠陥を有するソースコードに関する第1情報を取得することと、前記製品又は前記サービスに実装された前記複数のオープンソースソフトウェアが該オープンソースソフトウェア間の依存関係とともに一覧として記憶された第1データベースに対して、前記第1情報を入力して、該第1データベースの中から該第1情報の影響が及ぶ複数のソースコードを検索することと、前記製品又は前記サービスの開発情報に関する複数の開発オブジェクトが該開発オブジェクト間の依存関係とともに一覧として記憶された第2データベースに対して、検索された前記複数のソースコードに関する第2情報を入力して、該第2データベースの中から該第2情報の影響が及ぶ開発オブジェクトを取得することと、を実行する制御部を備える。
【0010】
上記の情報処理装置では、ユーザは、第1データベースを用いて、製品又はサービスに実装された複数のオープンソースソフトウェアのうち、欠陥を有するソースコードとそれに依存関係を有するソースコードを特定することができる。更に、ユーザは、第2データベースを用いて、これらソースコードの影響が及ぶ開発オブジェクトも把握することができる。そうすると、近年の複数のオープンソースソフトウェアが実装された製品やサービスにおいて、それら複数のオープンソースソフトウェアの管理と、該製品やサービスの開発情報の管理と、が、第1データベースと第2データベースで別々に行われたとしても、ユーザは、取得した開発オブジェクトに関する情報に基づいて、該製品やサービスに対するオープンソースソフトウェアに起因する障害の影響を簡単に把握することや、該製品やサービスの運用継続の可否の判断を迅速に行うことができる。
【0011】
ここで、上記の情報処理装置において、前記第1データベースは、前記製品又は前記サービスの運用を管理する事業者である第1事業者によって管理され、前記第2データベースは、前記製品又は前記サービスの開発を管理する事業者である第2事業者によって管理されてもよい。
【0012】
そして、前記第1データベースは、所定のソフトウェア部品表であってもよい。これは、例えば、製造業の部品表(BOM)をソフトウェアに適用したSBOM(Software Bill of Materials)である。また、前記第2データベースは、前記開発情報を上位から下位に追跡可能に構成されたデータベースであってもよい。なお、このような第2データベースは、製品又はサービスの開発で作成される成果物や文書について、要件定義モデル等の上位成果物から、アーキテクチャ設計モデル、詳細設計モデル等の下位成果物までの関連性や、ソフトウェアの結合テスト等に関する上位成果物から単体テスト等に関する下位成果物までの関連性を、追跡可能に構成されたトレーサビリティ管理ツールの機能を有する。
【0013】
そして、この場合、前記制御部は、前記第2情報の影響が及ぶ前記開発オブジェクトに基づいて、前記製品又は前記サービスに対する障害の程度を判定することと、前記障害の程度に基づいて、前記製品又は前記サービスの運用継続の可否を判定するとともに、該運用継続の可否を前記第1事業者に通知することと、を更に実行し、前記第2情報の影響が及ぶ前記開発オブジェクトが、前記開発情報に関する上位の開発オブジェクトである程、前記障害の程度が高いと判定してもよい。これによれば、ユーザは、上記の判定結果に基づいて、製品やサービスの運用を継続できるか否かを迅速に判断することができる。そうすると、複数のオープンソースソフトウェアが実装された製品又はサービスに対するオープンソースソフトウェアに起因する障害の発生をより適切に管理することができる。
【0014】
また、本開示は、コンピュータによる情報処理方法の側面から捉えることができる。すなわち、本開示の情報処理方法は、複数のオープンソースソフトウェアが実装された所定の製品又はサービスに対するオープンソースソフトウェアに起因する障害の発生を管理する情報処理方法であって、コンピュータが、前記製品又は前記サービスに実装された前記複数のオープンソースソフトウェアを構成する複数のプログラムのソースコード群について、該ソースコード群の中から欠陥を有するソースコードに関する第1情報を取得することと、前記製品又は前記サービスに実装された前記複数のオープンソースソフトウェアが該オープンソースソフトウェア間の依存関係とともに一覧として記憶された第1データベースに対して、前記第1情報を入力して、該第1データベースの中から該第1情報の影響が及ぶ複数のソースコードを検索することと、前記製品又は前記サービスの開発情報に関する複数の開発オブジェクトが該開発オブジェクト間の依存関係とともに一覧として記憶された第2データベースに対して、検索された前記複数のソースコードに関する情報を入力して、該第2データベースの中から該情報の影響が及ぶ開発オブジェクトを取得することと、を実行する。
【0015】
また、本開示は、情報処理プログラムの側面から捉えることができる。すなわち、本開示の情報処理プログラムは、複数のオープンソースソフトウェアが実装された所定の製品又はサービスに対するオープンソースソフトウェアに起因する障害の発生を管理する情報処理プログラムであって、コンピュータに、前記製品又は前記サービスに実装された前記複数のオープンソースソフトウェアを構成する複数のプログラムのソースコード群について、該ソースコード群の中から欠陥を有するソースコードに関する第1情報を取得することと、前記製品又は前記サービスに実装された前記複数のオープンソースソフトウェアが該オープンソースソフトウェア間の依存関係とともに一覧として記憶された第1データベースに対して、前記第1情報を入力して、該第1データベースの中から該第1情報の影響が及ぶ複数のソースコードを検索することと、前記製品又は前記サービスの開発情報に関する複数の開発オブジェクトが該開発オブジェクト間の依存関係とともに一覧として記憶された第2データベースに対して、検索された前記複数のソースコードに関する情報を入力して、該第2データベースの中から該情報の影響が及ぶ開発オブジェクトを取得することと、を実行させる。
【発明の効果】
【0016】
本開示によれば、複数のオープンソースソフトウェアが実装された所定の製品又はサービスに対するオープンソースソフトウェアに起因する障害の影響を特定することができる。
【図面の簡単な説明】
【0017】
【
図1】第1実施形態における情報処理システムの概略構成を示す図である。
【
図2】第1実施形態における、情報処理システムに含まれるサーバおよびユーザ端末の構成要素をより詳細に示した図である。
【
図3】第1実施形態における情報処理システムの動作の流れを例示する図である。
【
図4】第1実施形態において、第2データベースにおける影響オブジェクトが抽出される態様を説明するための図である。
【
図5】第2実施形態における情報処理システムの動作の流れを例示する図である。
【
図6】第2実施形態において、第2データベースにおける影響オブジェクトが抽出される態様を説明するための図であって、更に障害の程度の判定を説明するための図である。
【発明を実施するための形態】
【0018】
以下、図面に基づいて、本開示の実施の形態を説明する。以下の実施形態の構成は例示であり、本開示は実施形態の構成に限定されない。
【0019】
<第1実施形態>
第1実施形態における情報処理システムの概要について、
図1を参照しながら説明する。
図1は、本実施形態における情報処理システムの概略構成を示す図である。本実施形態に係る情報処理システム100は、ネットワーク200と、サーバ300と、ユーザ端末400と、第1データベースと、第2データベースと、を含んで構成される。なお、本開示の情報処理システムは、複数のオープンソースソフトウェアが実装された所定の製品又はサービスに対するオープンソースソフトウェアに起因する障害の発生を管理するシステムであって、該障害発生の管理がサーバ300によって実行される。また、上記の製品とは、例えば、自動車、家電、医療機器等であって、上記のサービスとは、例えば、オンラインゲームの提供等である。
【0020】
ネットワーク200は、例えば、IPネットワークであって、サーバ300とユーザ端末400との間、およびサーバ300と第1データベースや第2データベースとの間を通信可能に接続する。ネットワーク200は、IPネットワークであれば、無線であっても有線であっても無線と有線の組み合わせであってもよく、例えば、無線による通信であれば、ユーザ端末400は、無線LANアクセスポイント(不図示)にアクセスし、LANやWANを介してサーバ300と通信してもよい。また、ネットワーク200は、これらの例に限られず、例えば、公衆交換電話網や、光回線、ADSL回線、衛星通信網などであってもよい。
【0021】
サーバ300は、ネットワーク200を介して、ユーザ端末400と接続される。なお、
図1において、説明を簡単にするために、サーバ300は1台、ユーザ端末400は4台示してあるが、これらに限定されないことは言うまでもない。また、サーバ300は、第1データベースおよび第2データベースと接続される。
【0022】
サーバ300は、データの取得、生成、更新等の演算処理及び加工処理のための処理能力のあるコンピュータ機器であればどの様な電子機器でもよく、例えば、パーソナルコンピュータ、サーバ、メインフレーム、その他電子機器であってもよい。すなわち、サーバ300は、CPUやGPU等のプロセッサ、RAMやROM等の主記憶装置、EPROM、ハードディスクドライブ、リムーバブルメディア等の補助記憶装置を有するコンピュータとして構成することができる。なお、リムーバブルメディアは、例えば、USBメモリ、あるいは、CDやDVDのようなディスク記録媒体であってもよい。補助記憶装置には、オペレーティングシステム(OS)、各種プログラム、各種テーブル等が格納されている。
【0023】
また、サーバ300は、本実施形態に係る情報処理システム100専用のソフトウェアやハードウェア、OS等を設けずに、クラウドサーバによるSaaS(Software as a Service)、Paas(Platform as a Service)、IaaS(Infrastructure as a Service)を適宜用いてもよい。
【0024】
ユーザ端末400は、情報処理システム100を利用するユーザ(後述する運用ユーザや、開発ユーザ等)が保有する電子機器であって、データの取得、生成、更新等の演算処理及び加工処理のための処理能力のあるコンピュータ機器であればどの様な電子機器でもよく、例えば、携帯端末、タブレット端末、スマートフォン、ウェアラブル端末、パーソナルコンピュータ等、その他端末機器であってもよい。
【0025】
次に、
図2に基づいて、主にサーバ300とユーザ端末400の構成要素の詳細な説明を行う。
図2は、第1実施形態における、情報処理システム100に含まれるサーバ300およびユーザ端末400の構成要素をより詳細に示した図である。
【0026】
サーバ300は、機能部として通信部301、記憶部302、制御部303を有しており、補助記憶装置に格納されたプログラムを主記憶装置の作業領域にロードして実行し、プログラムの実行を通じて各機能部等が制御されることによって、各機能部における所定の目的に合致した各機能を実現することができる。ただし、一部または全部の機能はASICやFPGAのようなハードウェア回路によって実現されてもよい。
【0027】
ここで、通信部301は、サーバ300をネットワーク200に接続するための通信インタフェースである。通信部301は、例えば、ネットワークインタフェースボードや、無線通信のための無線通信回路を含んで構成される。サーバ300は、通信部301を介して、ユーザ端末400や第1データベース、第2データベース、その他の外部装置と通信可能に接続される。
【0028】
記憶部302は、主記憶装置と補助記憶装置を含んで構成される。主記憶装置は、制御部303によって実行されるプログラムや、当該制御プログラムが利用するデータが展開されるメモリである。補助記憶装置は、制御部303において実行されるプログラムや、当該制御プログラムが利用するデータが記憶される装置である。また、記憶部302は、ユーザ端末400等から送信されたデータを記憶し、記憶部302には、後述する第1情報、第2情報などが記憶される。なお、サーバ300は、通信部301を介してユーザ端末400等から送信されたデータを取得する。
【0029】
制御部303は、サーバ300が行う制御を司る機能部である。制御部303は、CPUなどの演算処理装置によって実現することができる。制御部303は、更に、第1取得部3031と、検索部3032と、第2取得部3033と、の3つの機能部を有して構成される。各機能部は、記憶されたプログラムをCPUによって実行することで実現してもよい。
【0030】
第1取得部3031は、製品又はサービスに実装された複数のオープンソースソフトウェア(OSS)を構成する複数のプログラムのソースコード群について、第1情報を取得する。ここで、第1情報とは、上記のソースコード群の中で、欠陥を有するソースコードに関する情報であって、該ソースコードの名称やプロパティ、欠陥箇所やその欠陥の内容等の情報である。そして、このような情報は、情報処理システム100を利用するユーザのユーザ端末400から送信され得る。第1取得部3031は、送信されたこのような情報を取得することで第1情報を取得し、これをサーバ300の記憶部302に記憶させる。
【0031】
ここで、本実施形態におけるユーザ端末400は、機能部として通信部401、入出力部402、記憶部403を有している。通信部401は、ユーザ端末400をネットワーク200に接続するための通信インタフェースであり、例えば、ネットワークインタフェースボードや、無線通信のための無線通信回路を含んで構成される。入出力部402は、通信部401を介して外部から送信されてきた情報等を表示させたり、通信部401を介して外部に情報を送信する際に当該情報を入力したりするための機能部である。記憶部403は、サーバ300の記憶部302と同様に主記憶装置と補助記憶装置を含んで構成される。
【0032】
入出力部402は、更に、表示部4021、操作入力部4022、画像・音声入出力部4023を有している。表示部4021は、各種情報を表示する機能を有し、例えば、LCD(Liquid Crystal Display)ディスプレイ、LED(Light Emitting Diode)ディスプレイ、OLED(Organic Light Emitting Diode)ディスプレイ等により実現される。操作入力部4022は、ユーザからの操作入力を受け付ける機能を有し、具体的には、タッチパネル等のソフトキーあるいはハードキーにより実現される。画像・音声入出力部4023は、静止画や動画等の画像の入力を受け付ける機能を有し、具体的には、Charged-Coupled Devices(CCD)、Metal-oxide-semiconductor(MOS)あるいはComplementary Metal-Oxide-Semiconductor(CMOS)等のイメージセンサを用いたカメラにより実現される。また、画像・音声入出力部4023は、音声の入出力を受け付ける機能を有し、具体的には、マイクやスピーカーにより実現される。
【0033】
情報処理システム100を利用するユーザは、このように構成されたユーザ端末400を用いて、上記の第1情報をサーバ300に送信することができる。ここで、サーバ300は、第1情報を入力するためのインタフェースをユーザ端末400に提供してもよい。そうすると、情報処理システム100を利用するユーザは、ユーザ端末400を介して上記のインタフェースに情報を入力することで、第1情報をサーバ300に送信することができる。
【0034】
検索部3032は、上述した第1情報を第1データベースに入力して、該第1データベースの中から該第1情報の影響が及ぶ複数のソースコードを検索する。ここで、第1データベースとは、製品又はサービスに実装された複数のオープンソースソフトウェア(OSS)が該オープンソースソフトウェア(OSS)間の依存関係とともに一覧として記憶されたデータベースであって、所定のソフトウェア部品表である。これは、例えば、製造業の部品表(BOM)をソフトウェアに適用したSBOM(Software Bill of Materials)である。そして、このようなデータベースは、製品又はサービスの運用を管理する事業者である運用ユーザ(本開示の第1事業者)によって管理される。なお、上記のSBOMには、OSSを検出するためのOSS検出ツールの機能、例えば、SBOMに登録されたソースコードをスキャンし、世界中のOSSの情報を蓄積したデータベースとの突合を行うことでOSSの有無を検出する機能が含まれ得る。そして、検索された複数のソースコードに関する情報は、第2情報としてサーバ300の記憶部302に記憶される。
【0035】
第2取得部3033は、上述した第2情報を第2データベースに入力して、該第2データベースの中から該第2情報の影響が及ぶ開発オブジェクトを取得する。ここで、第2データベースとは、製品又はサービスの開発情報に関する複数の開発オブジェクトが該開発オブジェクト間の依存関係とともに一覧として記憶されたデータベースであって、該開発情報を上位から下位に追跡可能に構成されたデータベースである。なお、このような第2データベースは、製品又はサービスの開発で作成される成果物や文書について、要件定義モデル等の上位成果物から、アーキテクチャ設計モデル、詳細設計モデル等の下位成果物までの関連性や、ソフトウェアの結合テスト等に関する上位成果物から単体テスト等に関する下位成果物までの関連性を、追跡可能に構成されたトレーサビリティ管理ツールの機能を有する。そして、このようなデータベースは、製品又はサービスの開発を管理する事業者である開発ユーザ(本開示の第2事業者)によって管理される。
【0036】
なお、制御部303が、第1取得部3031、検索部3032、および第2取得部3033の処理を実行することで、本開示に係る制御部として機能する。
【0037】
ここで、本実施形態における情報処理システム100の動作の流れについて説明する。
図3は、本実施形態における情報処理システム100の動作の流れを例示する図である。
図3では、本実施形態における情報処理システム100における各構成要素間の動作の流れ、および各構成要素が実行する処理を説明する。
【0038】
本実施形態では、先ず、情報処理システム100を利用するユーザのユーザ端末400に、第1情報が入力される(S101)。ここで、本実施形態における上記ユーザとは、例えば、運用ユーザである。運用ユーザは、運用する製品又はサービスに実装された複数のOSSを構成する複数のプログラムのソースコード群について、その欠陥を有するソースコードに関する情報を第1情報として、所定のインタフェースを用いてユーザ端末400に入力することができる。そして、第1情報は、ユーザ端末400からサーバ300に送信される。
【0039】
サーバ300は、ユーザ端末400から送信された第1情報を取得するとともに記憶部302に記憶させる(S102)。
【0040】
そして、サーバ300は、取得した第1情報を第1データベースに入力するとともに、該第1データベースの中から該第1情報の影響が及ぶ複数のソースコードに関する第2情報を検索する(S103)。なお、第1データベースは、例えば、SBOM(Software Bill of Materials)であって、製品又はサービスに実装された複数のOSS間の依存関係が一覧で記憶されている。
【0041】
そうすると、第1データベースでは、サーバ300から入力された情報が取得され(S104)、第2情報が抽出される(S105)。サーバ300から入力される第1情報は、欠陥を有するソースコードに関する情報(該ソースコードの名称やプロパティ、欠陥箇所やその欠陥の内容等)であるため、第1データベースの中で、該第1情報に係る欠陥を有するソースコードが特定され、該ソースコードと依存関係を有する複数のソースコードに関する情報(ソースコードの名称やプロパティ、欠陥を有するソースコードとの呼び出し関係等)が第2情報として抽出される。そして、サーバ300は、第1データベースからの第2情報を取得するとともに記憶部302に記憶させる(S106)。
【0042】
ここで、本実施形態では、上述したように、運用ユーザによって第1情報が入力される。そして、上記の第1データベースは、製品又はサービスの運用を管理する運用ユーザによって管理される。そのため、運用ユーザは、第1データベースを用いて、運用する製品又はサービスに対するOSSに起因する障害の発生を管理できるようにも思われる。しかしながら、近年の自動車や家電などIoT(Internet of Things)が進んだ製品においては、例えば、自動車のHMI(Human Machine Interface)のように、その製品を運用する(例えば、情報の配信やアップデート)事業者と、その製品を開発した事業者(その製品の開発メーカー等)と、が異なり得る。そうすると、その製品を運用する運用ユーザは、第1データベースを用いて、該製品に実装された複数のOSSのうち、欠陥を有するソースコードとそれに依存関係を有するソースコードを特定できるものの、その欠陥が該製品の運用に及ぼす影響について把握することまではできない。つまり、欠陥を有するソースコードとそれに依存関係を有するソースコードの特定だけでは、製品又はサービスに対するOSSに起因する障害の発生を適切に管理することができない。
【0043】
そこで、本開示の情報処理システム100では、次に、サーバ300が、取得した第2情報を第2データベースに入力するとともに、該第2データベースの中から該第2情報の影響が及ぶ開発オブジェクト(影響オブジェクト)を検索する(S107)。なお、第2データベースは、製品又はサービスの開発情報に関する複数の開発オブジェクトが該開発オブジェクト間の依存関係とともに一覧として記憶されたデータベースであって、該開発情報を上位から下位に追跡可能に構成されたトレーサビリティ管理ツールの機能を有するデータベースである。
【0044】
そうすると、第2データベースでは、サーバ300から入力された情報が取得され(S108)、第2情報の影響が及ぶ開発オブジェクトである影響オブジェクトが抽出される(S109)。
【0045】
ここで、
図4は、第1実施形態において、第2データベースにおける影響オブジェクトが抽出される態様を説明するための図である。本実施形態では、
図4に示すように、複数の開発オブジェクトが、要求・要件、設計、実装、試験の順に開発情報の上位から下位に追跡可能に記憶されている。そして、本実施形態では、第2情報に係るソースコードが、開発オブジェクトaに実装されている。つまり、第2情報の影響が及ぶ開発オブジェクト(影響オブジェクト)の一つは、開発オブジェクトaである。
【0046】
そうすると、第2データベースでは、
図4に示すように、開発オブジェクト間の依存関係が追跡可能に構成されているため、開発オブジェクトaと依存関係を有する開発オブジェクトa1、a2、a3、a4、a5、a6が影響オブジェクトとして更に抽出される。そして、サーバ300は、第2データベースからのこれら影響オブジェクトを取得する(S110)。
【0047】
そして、サーバ300は、取得した影響オブジェクトに関する情報を、情報処理システム100を利用するユーザのユーザ端末400に送信し(S111)、該ユーザ端末400が該情報を取得する(S112)。
【0048】
これによれば、情報処理システム100を利用するユーザ(例えば、運用ユーザ)は、製品又はサービスに実装された複数のOSSのうち、欠陥を有するソースコードとそれに依存関係を有するソースコードを特定できるだけでなく、これらソースコードの影響が及ぶ開発オブジェクトも把握することができる。そうすると、近年の複数のOSSが実装された製品やサービスにおいて、それら複数のOSSの管理と、該製品やサービスの開発情報の管理と、が別々に行われたとしても、例えば、運用ユーザは、取得した影響オブジェクトに関する情報に基づいて、該製品やサービスの運用を継続できるか否かを判断することができる。一方、例えば、開発ユーザは、自身が開発した製品やサービスに実装された複数のOSSのうちの一部のソースコードに欠陥が発見された場合、その情報を情報処理システム100に入力することで、該ソースコードの影響が及ぶ開発オブジェクトを簡単に把握することができる。そのため、開発ユーザは、製品やサービスに対するオープンソースソフトウェアに起因する障害について、その影響を簡単に特定し迅速に対応することが可能になる。
【0049】
以上に述べた情報処理システム100によれば、複数のオープンソースソフトウェアが実装された所定の製品又はサービスに対するオープンソースソフトウェアに起因する障害の影響を特定し、製品又はサービスに対するオープンソースソフトウェアに起因する障害の発生を適切に管理することができる。
【0050】
<第2実施形態>
第2実施形態における情報処理システム100について、
図5および
図6に基づいて説明する。
【0051】
図5は、本実施形態における情報処理システム100の動作の流れを例示する図である。
図5では、本実施形態における情報処理システム100における各構成要素間の動作の流れ、および各構成要素が実行する処理を説明する。なお、
図5に示す各処理において、上記の
図3に示した処理と実質的に同一の処理については、同一の符号を付してその詳細な説明を省略する。
【0052】
図5に示す例では、サーバ300は、S110の処理の後に、取得した影響オブジェクトに基づいて、製品又はサービスに対する障害の程度を判定する(S211)。S211の処理では、サーバ300は、取得した影響オブジェクトが開発情報に関する上位の開発オブジェクトである程、障害の程度が高いと判定する。これについて、
図6に基づいて説明する。
【0053】
図6は、第2実施形態において、第2データベースにおける影響オブジェクトが抽出される態様を説明するための図であって、更に障害の程度の判定を説明するための図である。
【0054】
ここで、
図6(a)は、上記の
図4と同一の図であって、開発オブジェクトa、a1、a2、a3、a4、a5、a6が影響オブジェクトとして抽出されている。そして、
図6(a)では、影響オブジェクトの範囲が、開発情報の最上位である要求・要件に関する開発オブジェクトにまで及んでいる。
【0055】
一方、
図6(b)では、第2情報に係るソースコードが、開発オブジェクトbに実装されている。つまり、第2情報の影響が及ぶ開発オブジェクト(影響オブジェクト)の一つは、開発オブジェクトbである。そして、開発オブジェクトbと依存関係を有する開発オブジェクトb1、b2が影響オブジェクトとして更に抽出される。そうすると、
図6(b)では、影響オブジェクトの範囲が、開発情報の要求・要件の一つ下位の設計に関する開発オブジェクトに及ぶことになる。
【0056】
ここで、開発情報に関する上位の開発オブジェクトほど、その他の開発オブジェクトへ影響が波及し易い。そこで、本実施形態では、サーバ300は、影響オブジェクトの範囲がより上位の開発オブジェクトにまで及んでいる
図6(a)の場合の方が、
図6(b)の場合よりも障害の程度が高いと判定する。
【0057】
そして、
図5に戻って、サーバ300は、S211の処理で判定した障害の程度に基づいて、製品又はサービスの運用継続の可否を判定する(S212)。S212の処理では、サーバ300は、例えば、影響オブジェクトの範囲が最上位の開発オブジェクトにまで及んでいて障害の程度が最も高い場合に、製品又はサービスの運用を継続できないと判定することができる。
【0058】
そして、サーバ300は、運用継続の可否に関する情報を、情報処理システム100を利用するユーザのユーザ端末400に送信し(S213)、該ユーザ端末400が該情報を取得する(S214)。
【0059】
これによれば、例えば、運用ユーザは、情報処理システム100による上記の判定結果に基づいて、製品やサービスの運用を継続できるか否かを迅速に判断することができる。そうすると、複数のオープンソースソフトウェアが実装された製品又はサービスに対するオープンソースソフトウェアに起因する障害の発生をより適切に管理することができる。
【0060】
以上に述べた情報処理システム100によっても、複数のオープンソースソフトウェアが実装された所定の製品又はサービスに対するオープンソースソフトウェアに起因する障害の発生を適切に管理することができる。
【0061】
<その他の変形例>
上記の実施形態はあくまでも一例であって、本開示はその要旨を逸脱しない範囲内で適宜変更して実施しうる。例えば、本開示において説明した処理や手段は、技術的な矛盾が生じない限りにおいて、自由に組み合わせて実施することができる。なお、上記の実施形態では、第1データベースが運用ユーザ(第1事業者)によって管理され、第2データベースが開発ユーザ(第2事業者)によって管理される例について説明したが、運用ユーザと開発ユーザとが同一の主体である場合には、これらデータベースが単一のユーザ(事業者)によって管理されてもよい。
【0062】
また、1つの装置が行うものとして説明した処理が、複数の装置によって分担して実行されてもよい。例えば、第1取得部3031をサーバ300とは別の演算処理装置に形成してもよい。このとき当該別の演算処理装置はサーバ300と好適に協働可能に構成される。また、異なる装置が行うものとして説明した処理が、1つの装置によって実行されても構わない。コンピュータシステムにおいて、各機能をどのようなハードウェア構成(サーバ構成)によって実現するかは柔軟に変更可能である。
【0063】
本開示は、上記の実施形態で説明した機能を実装したコンピュータプログラムをコンピュータに供給し、当該コンピュータが有する1つ以上のプロセッサがプログラムを読み出して実行することによっても実現可能である。このようなコンピュータプログラムは、コンピュータのシステムバスに接続可能な非一時的なコンピュータ可読記憶媒体によってコンピュータに提供されてもよいし、ネットワークを介してコンピュータに提供されてもよい。非一時的なコンピュータ可読記憶媒体は、例えば、磁気ディスク(フロッピー(登録商標)ディスク、ハードディスクドライブ(HDD)等)、光ディスク(CD-ROM、DVDディスク・ブルーレイディスク等)など任意のタイプのディスク、読み込み専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、EPROM、EEPROM、磁気カード、フラッシュメモリ、光学式カード、電子的命令を格納するために適した任意のタイプの媒体を含む。
【符号の説明】
【0064】
100・・・情報処理システム
200・・・ネットワーク
300・・・サーバ
301・・・通信部
302・・・記憶部
303・・・制御部
400・・・ユーザ端末