JP7103868B2 - 管理装置、管理方法及びプログラム - Google Patents

管理装置、管理方法及びプログラム Download PDF

Info

Publication number
JP7103868B2
JP7103868B2 JP2018121904A JP2018121904A JP7103868B2 JP 7103868 B2 JP7103868 B2 JP 7103868B2 JP 2018121904 A JP2018121904 A JP 2018121904A JP 2018121904 A JP2018121904 A JP 2018121904A JP 7103868 B2 JP7103868 B2 JP 7103868B2
Authority
JP
Japan
Prior art keywords
software
information
name
name identification
definition information
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.)
Active
Application number
JP2018121904A
Other languages
English (en)
Other versions
JP2020004005A (ja
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.)
NTT TechnoCross Corp
Original Assignee
NTT TechnoCross Corp
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 NTT TechnoCross Corp filed Critical NTT TechnoCross Corp
Priority to JP2018121904A priority Critical patent/JP7103868B2/ja
Publication of JP2020004005A publication Critical patent/JP2020004005A/ja
Application granted granted Critical
Publication of JP7103868B2 publication Critical patent/JP7103868B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Description

本発明は、管理装置、管理方法及びプログラムに関する。
企業等では、ネットワーク内に大量の情報装置(例えば、PC(パーソナルコンピュータ)等の各種端末やサーバ装置等)が存在し、これらの情報装置にインストールされているソフトウェアの数も膨大である。このため、各企業等では、保有しているソフトウェア資産やライセンス等を効率的に管理するため、IT(Information Technology)資産管理システムを導入している場合が多い。
IT資産管理システムでは、例えば、企業内で保有しているソフトウェア資産を台帳(この台帳は「ソフトウェア資産管理台帳」とも呼ばれる。)を用いて管理している。
特開2001-005659号公報
例えば、ソフトウェア資産管理台帳で管理されていないソフトウェアが情報装置にインストールされてしまう事態が起こり得る。これは、情報装置の利用者が、例えば、自身の判断でソフトウェアを購入及びインストールしてしまう場合があるためである。
このような場合、IT資産管理システムの管理者等は、情報装置にインストールされたソフトウェアを特定した上で、特定したソフトウェアをソフトウェア資産管理台帳に登録する必要がある。このようなソフトウェアの特定は名寄せとも呼ばれ、ソフトウェアの名称(以降、「ソフトウェア名」とも表す。)と、メーカ等から提供されるソフトウェア辞書とを用いて行われる。
しかしながら、ソフトウェアのバージョン等によってはソフトウェア名が異なる場合があり、ソフトウェアの名寄せを適切に行うことができないことがある。このため、ソフトウェアの名寄せが行えずに不明なソフトウェアと扱われてしまったり、実際とは異なるソフトウェアと名寄せされてしまったりする場合がある。
本発明の実施の形態は、上記の点に鑑みてなされたもので、ソフトウェアの名寄せを支援することを目的とする。
上記目的を達成するため、本発明の実施の形態は、複数の情報装置にインストールされているソフトウェア資産を管理する管理装置であって、少なくともソフトウェア名がそれぞれ含まれる複数のソフトウェア定義情報を用いて、前記情報装置にインストールされているソフトウェアを名寄せする名寄せ手段と、前記名寄せ手段によるソフトウェアの名寄せが失敗した場合、機械学習の手法により、前記複数のソフトウェア定義情報のうち、前記名寄せが失敗したソフトウェアとの類似度に基づきソフトウェア定義情報を選択する選択手段と、前記選択手段により選択された前記ソフトウェア定義情報を、前記名寄せが失敗したソフトウェアに類似するソフトウェアに関する情報としてユーザにレコメンドするレコメンド手段と、を有することを特徴とする。
ソフトウェアの名寄せを支援することができる。
本実施形態に係る資産管理システムの全体構成の一例を示す図である。 本実施形態に係る管理装置の機能構成の一例を示す図である。 ソフトウェアインベントリ情報の一例を示す図である。 ソフトウェア定義情報の一例を示す図である。 ソフトウェア定義情報の作成処理の一例を示すフローチャートである。 名寄せ処理の一例を示すフローチャートである。 アラート画面の一例を示す図である。 追加ソフトウェア定義レコードの一例を説明する図である。 ソフトウェア定義情報の更新処理の一例を示すフローチャートである。 ソフトウェア定義情報への反映及びフィードバックの一例を説明する図である。
以下、本発明の実施の形態(以降、「本実施形態」とも表す。)について、図面を参照しながら説明する。本実施形態では、IT資産としてソフトウェア資産を管理する資産管理システム1について説明する。なお、以下で説明する実施形態は一例に過ぎず、本発明が適用される実施形態は、以下の実施形態に限られるわけではない。
<全体構成>
まず、本実施形態に係る資産管理システム1の全体構成について、図1を参照しながら説明する。図1は、本実施形態に係る資産管理システム1の全体構成の一例を示す図である。
図1に示すように、本実施形態に係る資産管理システム1は、管理装置10と、収集装置20と、1以上の情報装置30と、管理者端末40とを有する。
情報装置30は、例えばPCやスマートフォン、タブレット端末等の各種端末やサーバ装置等である。情報装置30には、例えば、各種ソフトウェアがインストールされている。情報装置30にインストールされているソフトウェアが、管理装置10による管理対象のソフトウェア資産である。また、情報装置30自身(又は、情報装置30に含まれる各種機器又は装置等)は、管理装置10による管理対象のハードウェア資産である。なお、ソフトウェアには、ライセンス契約等により購入したソフトウェアやプリインストールされているソフトウェア、或るソフトウェアに対する更新プログラム、セキュリティパッチ等が含まれる。
また、情報装置30には、当該情報装置30にインストールされているソフトウェアに関する情報を示すソフトウェアインベントリ情報を収集装置20に送信する専用のソフトウェア(インベントリ収集用ソフトウェア)がインストールされている。なお、インベントリ収集用ソフトウェアは、当該情報装置30自身(又は、情報装置30に含まれる各種機器又は装置等)に関する情報を示すハードウェアインベントリ情報も収集装置20に送信しても良い。以降では、インベントリ収集用ソフトウェアは、ソフトウェアインベントリ情報を収集装置20に送信するものとして説明をする。
ここで、インベントリとは、保有資産を示す用語であり、IT資産管理等の分野で広く用いられている用語である。なお、インベントリ収集用ソフトウェア自身も、管理装置10による管理対象のソフトウェアに含まれていても良い。
ただし、収集装置20が情報装置30からソフトウェアインベントリ情報を取得することができる場合(すなわち、例えば、エージェントレス方式のインベントリ収集用ソフトウェアが収集装置20にインストールされている場合等)には、当該情報装置30にインベントリ収集用ソフトウェアがインストールされていなくても良い。
収集装置20は、情報装置30から送信されたソフトウェアインベントリ情報を収集するコンピュータ又はコンピュータシステムである。収集装置20は、情報装置30から収集したソフトウェアインベントリ情報を管理装置10に送信する。
なお、収集装置20は、管理装置10と一体で構成されていても良い。すなわち、収集装置20が備える機能(ソフトウェアインベントリ情報の収集機能)を管理装置10が有していても良い。
管理装置10は、IT資産を管理するコンピュータ又はコンピュータシステムである。管理装置10は、収集装置20が収集したソフトウェアインベントリ情報を用いて、ソフトウェア名の名寄せを行って、ソフトウェアをソフトウェア資産として登録する。また、管理装置10は、機械学習の手法を用いて、名寄せができなかったソフトウェアに対して、当該ソフトウェアに近いソフトウェアをユーザ(例えば、管理者端末40のユーザ等)にレコメンドする。
ここで、名寄せとは、ソフトウェアインベントリ情報に含まれる各ソフトウェア名に対して、後述するソフトウェア定義レコードを特定することである。ソフトウェア定義レコードには、ソフトウェアを一意に識別するID(ソフトウェアID)と、ソフトウェア名とが含まれている。したがって、ソフトウェアインベントリ情報に含まれる各ソフトウェア名に対して名寄せが行われることで、特定されたソフトウェア定義レコードに含まれるソフトウェアIDを用いて、これらのソフトウェアIDに対応するソフトウェアがソフトウェア資産管理台帳に登録されているか否かを判定することができるようになる。
管理者端末40は、例えばPCやスマートフォン、タブレット端末等の各種端末であり、例えば、情報装置30の管理者等が利用する。管理者端末40には、例えば、管理装置10から通知されたアラートの一覧等が表示される。なお、管理者端末40は、管理装置10と一体で構成されていても良い。
<機能構成>
次に、本実施形態に係る管理装置10の機能構成について、図2を参照しながら説明する。図2は、本実施形態に係る管理装置10の機能構成の一例を示す図である。
図2に示すように、本実施形態に係る管理装置10は、ソフトウェア定義処理部110と、名寄せ処理部120と、台帳登録部130とを有する。これら各機能部は、管理装置10にインストールされた1以上のプログラムがCPU(Central Processing Unit)に実行させる処理により実現される。
また、本実施形態に係る管理装置10は、記憶部140を有する。当該記憶部は、例えばHDD(Hard Disk Drive)やSSD(Solid State Drive)等を用いて実現可能である。なお、当該記憶部は、管理装置10とネットワークを介して接続される記憶装置等を用いて実現されていても良い。
記憶部140には、ソフトウェアインベントリ情報210と、ソフトウェア定義情報220と、ソフトウェア資産管理台帳情報230とが記憶されている。なお、これらの各情報は、1つの記憶装置を用いて実現された記憶部140に記憶されていても良いし、複数の記憶装置を用いて実現された記憶部140に記憶されていても良い。
ソフトウェアインベントリ情報210は、収集装置20により、情報装置30毎に収集されたソフトウェアインベントリ情報である。1つのソフトウェアインベントリ情報210には、当該情報装置30にインストールされているソフトウェア毎に、当該ソフトウェアに関する情報(例えば、ソフトウェア名やインストール日等)を示すレコード(以降、「ソフトウェアインベントリレコード」とも表す。)が含まれている。ソフトウェアインベントリ情報の詳細については後述する。
ソフトウェア定義情報220は、ソフトウェアの定義やソフトウェアの特徴量等が含まれる情報である。1つのソフトウェア定義情報220には、ソフトウェア毎に、当該ソフトウェアの定義(例えば、ソフトウェア名等)や特徴量等で構成されるレコード(以降、「ソフトウェア定義レコード」とも表す。)が含まれる。このようなソフトウェア定義情報220は、機械学習の手法を用いて、ソフトウェア定義処理部110により作成される。ソフトウェア定義情報220の詳細については後述する。
ソフトウェア資産管理台帳情報230は、ソフトウェア資産管理台帳を示す情報である。ソフトウェアIDやソフトウェア名、メーカ名等が含まれる情報がソフトウェア資産管理台帳情報230に登録されることで、当該ソフトウェアIDにより識別されるソフトウェアがソフトウェア資産として管理される。
ソフトウェア定義処理部110は、機械学習の手法を用いて、ソフトウェア辞書情報240からソフトウェア定義情報220を作成する処理を行う。また、ソフトウェア定義処理部110は、当該機械学習の手法を用いて、ソフトウェア定義情報220と、レコメンドしたソフトウェア定義レコードのうちのユーザにより選択されたソフトウェア定義レコードとからソフトウェア定義情報220を更新する処理を行う。
ここで、ソフトウェア定義情報220は、当該機械学習の手法における学習データセットであり、当該ソフトウェア定義情報220を構成する各ソフトウェア定義レコードは、学習データである。機械学習の手法としては、レコメンデーションのタスクに用いられる任意の手法(例えば、近傍探索や協調フィルタリング等)を用いることができるが、本実施形態では、一例として、近傍探索を用いる場合について説明する。近傍探索では、ソフトウェア名の特徴量を用いて、名寄せができなかったソフトウェアと距離が近い順に所定の件数のソフトウェア定義レコードがユーザにレコメンドされる。なお、距離は、類似度と称されても良い。
ソフトウェア定義処理部110には、トークン分割部111と、頻度計算部112と、特徴ベクトル計算部113と、レコード作成部114とが含まれる。
トークン分割部111は、ソフトウェア定義情報220の作成時に、ソフトウェア辞書情報240を構成する各レコードに含まれるソフトウェア名を所定のトークンに分割する。また、トークン分割部111は、ソフトウェア定義情報220の更新時に、更新対象のソフトウェア定義情報220を構成する各レコードに含まれるソフトウェア名を所定のトークンに分割する。ソフトウェア名をトークンに分割する手法としては、例えば、N-gramやわかち書き等の手法が用いられる。なお、わかち書きとは、例えば、文字列をスペースや形態素解析により分割する手法のことである。
頻度計算部112は、トークン分割部111により分割されたトークンを用いて、TF-IDF(単語頻度-逆文書頻度)によりTF値及びIDF値を計算する。
特徴ベクトル計算部113は、頻度計算部112により計算されたTF値及びIDF値を用いて、ソフトウェア辞書情報240又は更新対象のソフトウェア定義情報220を構成する各レコードに含まれるソフトウェア名の特徴ベクトルを計算する。ここで、特徴ベクトルは、例えば、Bag-of-Wordsによって表現されたベクトルである。
レコード作成部114は、ソフトウェア辞書情報240又は更新対象のソフトウェア定義情報220を構成する各レコードと、頻度計算部112により計算されたTF値と、特徴ベクトル計算部113により計算された特徴ベクトルとを用いて、ソフトウェア定義レコードを作成する。例えば、ソフトウェア定義情報220の作成時では、レコード作成部114は、ソフトウェア辞書情報240を構成する各レコードに含まれるソフトウェア定義(例えば、ソフトウェア名等)と、TF値と、特徴ベクトルとを対応付けることで、ソフトウェア定義レコードを作成する。また、例えば、ソフトウェア定義情報220の更新時では、レコード作成部114は、TF値及び特徴ベクトルを用いて、更新対象のソフトウェア定義情報220を構成するソフトウェア定義レコードを更新する。なお、以降では、ソフトウェア辞書情報240を構成するレコードを「ソフトウェア辞書レコード」とも表す。
名寄せ処理部120は、ソフトウェア定義情報220を用いて、ソフトウェアインベントリ情報210を構成する各レコードに含まれるソフトウェア名の名寄せを行う。ここで、名寄せ処理部120には、取得部121と、判定部122と、トークン分割部123と、頻度計算部124と、特徴ベクトル計算部125と、レコメンド対象選択部126と、アラート通知部127と、名寄せ登録部128とが含まれる。
取得部121は、ソフトウェアインベントリ情報210からソフトウェアインベントリレコードを1件取得する。
判定部122は、取得部121により取得されたソフトウェアインベントリレコードに含まれるソフトウェア名がソフトウェア定義情報220に登録されているか否かを判定する。言い換えれば、判定部122は、ソフトウェアインベントリレコードに含まれるソフトウェア名の名寄せを行うことができたか否かを判定する。このとき、判定部122は、ソフトウェアインベントリレコードに含まれるソフトウェア名がソフトウェア定義情報220に登録されていると判定された場合、当該ソフトウェア名の名寄せが行われたと判定する。一方で、判定部122は、ソフトウェアインベントリレコードに含まれるソフトウェア名がソフトウェア定義情報220に登録されていないと判定された場合、当該ソフトウェア名の名寄せを行うことができなかったと判定する。
トークン分割部123は、ソフトウェアインベントリレコードに含まれるソフトウェア名の名寄せを行うことができなかった場合(すなわち、名寄せが失敗した場合)、当該ソフトウェア名を所定のトークンに分割する。ソフトウェア名をトークンに分割する手法は、ソフトウェア定義処理部110のトークン分割部111と同様の手法を用いる。
頻度計算部124は、トークン分割部123により分割されたトークンを用いて、TF-IDFによりTF値を計算する。
特徴ベクトル計算部125は、頻度計算部124により計算されたTF値と、予め計算されているIDF値とを用いて、取得部121により取得されたソフトウェアインベントリレコードに含まれるソフトウェア名の特徴ベクトルを計算する。
レコメンド対象選択部126は、特徴ベクトル計算部125により計算された特徴ベクトルと、ソフトウェア定義情報220を構成する各ソフトウェア定義レコードに含まれる特徴ベクトルとを用いて、レコメンド対象のソフトウェア定義レコードを選択する。これにより、ユーザにレコメンドされるソフトウェア定義レコードが選択される。
アラート通知部127は、レコメンド対象選択部126によりソフトウェア定義レコードが選択された場合(すなわち、名寄せを行うことができなかったソフトウェア名がソフトウェアインベントリ情報210に存在する場合)、アラートを通知する。アラートの通知先としては、例えば、管理者端末40が挙げられる。なお、名寄せを行うことができなかったソフトウェア名のソフトウェアがインストールされている情報装置30にアラートが通知されても良い。
名寄せ登録部128は、例えば管理者端末40等の操作に応じて、名寄せを行うことができなかったソフトウェア名と、ユーザにより選択されたソフトウェア定義レコードとを用いて、追加ソフトウェア定義レコードを作成する。そして、名寄せ登録部128は、追加ソフトウェア定義レコードをソフトウェア定義情報220に追加する。これにより、名寄せを行うことができなかったソフトウェア名が含まれるレコードがソフトウェア定義情報220に追加される。
なお、名寄せ処理部120には、トークン分割部123と、頻度計算部124と、特徴ベクトル計算部125とが含まれていなくても良い。この場合、名寄せ処理部120は、ソフトウェア定義処理部110のトークン分割部111と、頻度計算部112と、特徴ベクトル計算部113によってトークン分割とTF値の計算と特徴ベクトルの計算とを行えば良い。
台帳登録部130は、名寄せ処理部120による名寄せが失敗した場合、名寄せ登録部128により作成された追加ソフトウェア定義レコードを用いて、当該追加ソフトウェア定義レコードに含まれるソフトウェアIDやソフトウェア名等をソフトウェア資産管理台帳情報230に登録する。これにより、当該ソフトウェアID及びソフトウェア名のソフトウェアがソフトウェア資産として管理される。
また、台帳登録部130は、名寄せ処理部120による名寄せが行われたソフトウェアであっても(すなわち、名寄せが成功した場合であっても)、ソフトウェア資産管理台帳情報230に登録されていない場合は、当該ソフトウェアに関する情報をソフトウェア資産管理台帳情報230に登録する。なお、本実施形態では、名寄せ処理部120により名寄せが行われたソフトウェアは、ソフトウェア資産管理台帳情報230に登録されているものとする。
<ソフトウェアインベントリ情報210>
ここで、ソフトウェアインベントリ情報210について、図3を参照しながら説明する。図3は、ソフトウェアインベントリ情報210の一例を示す図である。
図3に示すように、ソフトウェアインベントリ情報210には、1以上のソフトウェアインベントリレコードが含まれる。また、これらの各レコードには、「ハードウェアID」、「ソフトウェア名」、「メーカ名」及び「インストール日」等が含まれる。
「ハードウェアID」は、ソフトウェアインベントリ情報210の収集元の情報装置30を一意に識別するIDである。「ソフトウェア名」は、当該情報装置30にインストールされているソフトウェアの名称である。なお、この名称は、例えば、ソフトウェアのインストール名である。
「メーカ名」は、当該ソフトウェアの製造メーカの名称である。「インストール日」は、当該ソフトウェアを当該情報装置30にインストールした日付である。なお、「インストール日」は、当該ソフトウェアを当該情報装置30にインストールした日時であっても良い。
このように、1つのソフトウェアインベントリ情報210は、1台の情報装置30にインストールされている各ソフトウェアのソフトウェア名等が含まれるソフトウェアインベントリレコードで構成されている。
<ソフトウェア定義情報220>
次に、ソフトウェア定義情報220について、図4を参照しながら説明する。図4は、ソフトウェア定義情報220の一例を示す図である。
図4に示すように、ソフトウェア定義情報220には、1以上のソフトウェア定義レコードが含まれる。また、これらの各レコードには、「ソフトウェアID」、「ソフトウェア名」、「メーカ名」、「有償/無償区分」、「種別」、「TF値」及び「特徴ベクトル」等が含まれる。
「ソフトウェアID」は、上述したように、ソフトウェアを一意に識別するIDである。「ソフトウェア名」は、ソフトウェアの名称である。なお、この名称は、インストール名であっても良いし、例えば正規化された名称であっても良い。正規化された名称とは、例えば、半角や全角、空白の有無等の表記法を統一したソフトウェア名のことである。
「メーカ名」は、上述したように、当該ソフトウェアの製造メーカの名称である。「有償/無償区分」は、当該ソフトウェアが有償又は無償のいずれであるかを示す区分である。「種別」は、当該ソフトウェアの種別である。ソフトウェアの種別としては、例えば、「業務系」、「ユーティリティ」、「その他」等がある。「業務系」とは、各種業務を直接的又は間接的に支援する機能を提供するソフトウェアであり、例えば、ワープロソフトや表計算ソフト等の各種アプリケーションソフトウェアが挙げられる。「ユーティリティ」とは、補助的な機能を提供するソフトウェアであり、例えば、プリンタドライバや暗号化ソフトウェア等が挙げられる。「その他」とは、「業務系」及び「ユーティリティ」以外のソフトウェアであり、例えば、ソフトウェアの更新プログラムやセキュリティパッチ等が挙げられる。
「TF値」は、頻度計算部112又は頻度計算部124により計算されたTF値(ソフトウェア名に含まれる各トークンのTF値)である。「特徴ベクトル」は、特徴ベクトル計算部113又は特徴ベクトル計算部125により計算された特徴ベクトルである。
このように、ソフトウェア定義情報220は、ソフトウェアIDやソフトウェア名、有償/無償区分、TF値、特徴ベクトル等が含まれるソフトウェア定義レコードで構成されている。ここで、例えば、ソフトウェアIDと、ソフトウェア名と、メーカ名と、有償/無償区分と、種別とがソフトウェア定義に該当する。ただし、ソフトウェア定義には、少なくともソフトウェアIDとソフトウェア名とが含まれていれば良い。
<ソフトウェア定義情報220の作成処理>
以降では、ソフトウェア辞書情報240からソフトウェア定義情報220を作成する処理について、図5を参照しながら説明する。図5は、ソフトウェア定義情報の作成処理の一例を示すフローチャートである。なお、ソフトウェア定義情報220の作成処理は、例えば、本実施形態に係る資産管理システム1の稼働を開始する際に、1度実行されれば良い。ただし、必要に応じて、適宜、ソフトウェア定義情報220の作成処理が実行されても良い。
まず、ソフトウェア定義処理部110のトークン分割部111は、ソフトウェア辞書情報240を構成する各ソフトウェア辞書レコードに含まれるソフトウェア名を所定のトークンに分割する(ステップS101)。ここで、トークン分割部111は、例えば、N-gramやわかち書き等の手法により、各ソフトウェア辞書レコードにそれぞれ含まれるソフトウェア名をトークンに分割すれば良い。
なお、上記のソフトウェア辞書情報240は、記憶部140に記憶されていても良いし、例えばネットワークを介して取得されても良い。
次に、ソフトウェア定義処理部110の頻度計算部112は、トークン分割部111により分割されたトークンを用いて、各トークンのTF値及びIDF値を計算する(ステップS102)。なお、TF値とは、1つの文書(すなわち、1つのソフトウェア名)中におけるトークンの出現頻度(例えば、出現回数)のことである。一方で、IDF値とは、全ての文書(すなわち、全てのソフトウェア名)中におけるトークンの出現頻度の逆数のことである。なお、IDF値は、トークン毎に、例えば、記憶部140に記憶される。
次に、ソフトウェア定義処理部110の特徴ベクトル計算部113は、頻度計算部112により計算されたTF値及びIDF値を用いて、各ソフトウェア定義レコードに含まれるソフトウェア名の特徴ベクトルを計算する(ステップS103)。ここで、上記のステップS101でトークン分割部111により分割されたトークンの異なり語数をMとすれば、各特徴ベクトルはM次元のベクトルで表すことができる。以降では、特徴ベクトルの各要素のうち、或るトークンi(1≦i≦M)に対応する要素をxで表す。
特徴ベクトル計算部113は、Bag-of-Wordsにより、例えば、ソフトウェア定義レコード毎に、当該ソフトウェア定義レコードのソフトウェア名に含まれるトークンiのTF値とIDF値との積(すなわち、TF-IDF値)を要素xとするベクトルを特徴ベクトルとすれば良い。又は、特徴ベクトル計算部113は、例えば、ソフトウェア定義レコード毎に、当該ソフトウェア定義レコードのソフトウェア名にトークンiが含まれる場合は要素xを1、そうでない場合は要素xを0としたベクトルを特徴ベクトルとしても良い。
次に、ソフトウェア定義処理部110のレコード作成部114は、ソフトウェア辞書情報240を構成する各レコードに含まれるソフトウェア定義と、頻度計算部112により計算されたTF値と、特徴ベクトル計算部113により計算された特徴ベクトルとを用いて、ソフトウェア定義レコードを作成する(ステップS104)。すなわち、レコード作成部114は、ソフトウェア辞書情報240を構成する各レコード毎に、当該レコードに含まれるソフトウェア定義と、当該レコードから計算されたTF値と、当該レコードから計算された特徴ベクトルとを対応付けたソフトウェア定義レコードを作成する。これにより、これらのソフトウェア定義レコードにより構成されるソフトウェア定義情報220が作成される。なお、ソフトウェア定義情報220が作成された後は、ソフトウェア辞書情報240が削除されても良い。
<名寄せ処理>
以降では、ソフトウェア定義情報220を用いて、ソフトウェアインベントリ情報210を構成する各ソフトウェアインベントリレコードのソフトウェア名を名寄せする処理について、図6を参照しながら説明する。図6は、名寄せ処理の一例を示すフローチャートである。以降では、或る情報装置30から収集されたソフトウェアインベントリ情報210を構成する各ソフトウェアインベントリレコードのソフトウェア名を名寄せする場合について説明する。
まず、名寄せ処理部120の取得部121は、ソフトウェアインベントリ情報210からソフトウェアインベントリレコードを1件取得する(ステップS201)。
次に、名寄せ処理部120の判定部122は、取得部121により取得されたソフトウェアインベントリレコードに含まれるソフトウェア名がソフトウェア定義情報220に登録されているか否かを判定する(ステップS202)。すなわち、判定部122は、ソフトウェア定義情報220を構成する各レコードのうち、当該ソフトウェアインベントリレコードに含まれるソフトウェア名が含まれるレコードが存在するか否かを判定する。
ステップS202で当該ソフトウェア名がソフトウェア定義情報220に登録されていると判定された場合、名寄せ処理部120は、ステップS207に進む。この場合は、当該ソフトウェア名の名寄せが行われた場合である。
一方で、ステップS202で当該ソフトウェア名がソフトウェア定義情報220に登録されていないと判定された場合、名寄せ処理部120のトークン分割部123は、ソフトウェアインベントリレコードに含まれるソフトウェア名を所定のトークンに分割する(ステップS203)。ソフトウェア名をトークンに分割する手法は、上記のステップS101と同様の手法を用いる。
次に、名寄せ処理部120の頻度計算部124は、トークン分割部123により分割されたトークンを用いて、各トークンのTF値を計算する(ステップS204)。
次に、名寄せ処理部120の特徴ベクトル計算部125は、頻度計算部124により計算されたTF値と、記憶部140に記憶されているIDF値とを用いて、当該ソフトウェアインベントリレコードに含まれるソフトウェア名の特徴ベクトルを計算する(ステップS205)。すなわち、特徴ベクトル計算部125は、上記のステップS103と同様に、Bag-of-Wordsにより、特徴ベクトルを計算する。
次に、名寄せ処理部120のレコメンド対象選択部126は、特徴ベクトル計算部125により計算された特徴ベクトルと、ソフトウェア定義情報220を構成する各ソフトウェア定義レコードに含まれる特徴ベクトルとを用いて、レコメンド対象のソフトウェア定義レコードを選択する(ステップS206)。例えば、レコメンド対象選択部126は、特徴ベクトル計算部125により計算された特徴ベクトルと、ソフトウェア定義情報220を構成する各ソフトウェア定義レコードに含まれる特徴ベクトルとの距離を計算した上で、距離が近い順にL件のソフトウェア定義レコードをソフトウェア定義情報220から取得する。これにより、レコメンド対象として、L件のソフトウェア定義レコードが選択される。このように選択されたレコメンド対象は、例えば、当該ソフトウェアインベントリレコードと対応付けて記憶部140に記憶される。
なお、上記のLは、管理装置10の管理者等のユーザ等によって任意の値が設定される。また、上記の距離としては、例えば、ユークリッド距離、コサイン類似度、マンハッタン距離等の任意の距離を用いることができる。
ステップS206に続いて又はステップS202で該当のソフトウェア名がソフトウェア定義情報220に登録されていると判定された場合、名寄せ処理部120の取得部121は、ソフトウェアインベントリ情報210から全てのソフトウェアインベントリレコードを取得したか否かを判定する(ステップS207)。
ステップS207でソフトウェアインベントリ情報210から全てのソフトウェアインベントリレコードを取得したと判定されなかった場合、名寄せ処理部120は、ステップS201に戻る。これにより、ソフトウェアインベントリ情報210を構成する各ソフトウェアインベントリレコードに対して、上記のステップS202~ステップS207の処理(ただし、ステップS203~ステップS206の処理はステップS202でNOと判定された場合のみ)が繰り返し実行される。
一方で、ステップS207でソフトウェアインベントリ情報210から全てのソフトウェアインベントリレコードを取得したと判定された場合、名寄せ処理部120のアラート通知部127は、アラート通知要であるか否かを判定する(ステップS208)。アラート通知部127は、例えば、上記のステップS206でレコメンド対象が選択された場合はアラート通知要と判定し、一方で、上記のステップS206でレコメンド対象が選択されなかった場合(すなわち、上記のステップS206の処理が実行されなかった場合)はアラート通知不要と判定する。
ステップS208でアラート通知要であると判定されなかった場合、名寄せ処理部120は、名寄せ処理を終了する。この場合、当該ソフトウェアインベントリ情報210を構成する各ソフトウェアインベントリレコードに含まれる全てのソフトウェア名の名寄せが行われたことを意味する。
一方で、ステップS208でアラート通知要であると判定された場合、名寄せ処理部120のアラート通知部127は、アラートとして、名寄せが行われなかった(すなわち、名寄せが失敗した)ソフトウェアが存在することを通知する(ステップS209)。アラートの通知先としては、例えば、管理者端末40が挙げられる。
<アラート画面>
ここで、例えば、アラートが通知された管理者端末40は、Webブラウザ等により管理装置10にアクセスすることで、例えば図7に示すアラート画面G100を表示させることができる。図7は、アラート画面G100の一例を示す図である。
図7に示すアラート画面G100は、名寄せに失敗したソフトウェアが存在することを示す画面であり、アラート情報欄G110と、ソフトウェア定義レコメンド欄G120とが含まれる。
アラート情報欄G110には、名寄せに失敗したソフトウェアが存在することを示すアラートが表示される。ソフトウェア定義レコメンド欄G120には、名寄せに失敗したソフトウェアに近いソフトウェアの一覧が表示されるレコメンド欄G121が含まれる。このレコメンド欄G121には、上記のステップS206で選択されたレコメンド対象のソフトウェア定義レコードが一覧で表示される。
また、このレコメンド欄G121には、スコア一覧G122も表示される。スコアとは、上記のステップS206で計算された距離に基づく値であり、距離が小さい程、スコアが1に近くなる。すなわち、スコアが1に近い程、名寄せに失敗したソフトウェアのソフトウェア名と、ソフトウェア定義レコードのソフトウェア名とが近いことを表している。
ユーザは、レコメンド欄G121において、スコア一覧G122を参考にして、名寄せに失敗したソフトウェアと最も近いソフトウェアのソフトウェア定義レコードに対応する登録ボタンG123を押下する。これにより、名寄せ登録部128により追加ソフトウェア定義レコードが作成される。そして、名寄せ登録部128により追加ソフトウェア定義レコードがソフトウェア定義情報220に追加される。
このように、ユーザによって登録ボタンG123が押下されることで、名寄せを行うことができなかったソフトウェア名が含まれるレコード(追加ソフトウェア定義レコード)がソフトウェア定義情報220に追加される。後述するように、このソフトウェア定義情報220が更新されることで(すなわち、特徴ベクトルの再計算等が行われることで)、追加ソフトウェア定義レコードも名寄せ処理に用いることができるようになる。
<追加ソフトウェア定義レコード>
ここで、名寄せ登録部128により作成される追加ソフトウェア定義レコードについて、図8を参照しながら説明する。図8は、追加ソフトウェア定義レコードの一例を説明する図である。
図8に示すように、追加ソフトウェア定義レコードには、「ソフトウェアID」、「ソフトウェア名」、「メーカ名」、「有償/無償区分」、「種別」、「TF値」及び「特徴ベクトル」等が含まれる。
ここで、「ソフトウェアID」は、例えば、ソフトウェア定義情報220を構成する各レコードで一意になるように、名寄せ登録部128により生成される。「ソフトウェア名」は、名寄せに失敗したソフトウェアインベントリレコードのソフトウェア名が設定される。また、「メーカ名」、「有償/無償区分」及び「種別」は、ユーザにより選択されたソフトウェア定義レコード(すなわち、ユーザが押下した登録ボタンG123に対応するソフトウェア定義レコード)のメーカ名、有償/無償区分及び種別がそれぞれ設定される。一方で、「TF値」及び「特徴ベクトル」には値が設定されない。これらの「TF値」及び「特徴ベクトル」には、後述するように、ソフトウェア定義情報220の更新処理で値が設定される。ただし、「TF値」及び「特徴ベクトル」には、例えば、上記のステップS204及びステップS205で計算されたTF値及び特徴ベクトル(すなわち、名寄せに失敗したソフトウェア名のTF値及び特徴ベクトル)が設定されても良い。
このように、追加ソフトウェア定義レコードでは、名寄せに失敗したソフトウェアのソフトウェア名と、このソフトウェアに近いとユーザにより選択されたソフトウェアのソフトウェア定義(ただし、ソフトウェア名を除く)とが対応付けられている。これは、名寄せに失敗したソフトウェアのメーカ名や有償/無償区分、種別等として、このソフトウェアに近いとユーザにより選択されたソフトウェアのメーカ名や有償/無償区分、種別等を設定した追加ソフトウェア定義レコードが作成されることを意味する。
<ソフトウェア定義情報220の更新処理>
以降では、ソフトウェア定義情報220を更新する処理について、図9を参照しながら説明する。図9は、ソフトウェア定義情報220の更新処理の一例を示すフローチャートである。なお、ソフトウェア定義情報220の更新処理は、例えば、日次等の所定の時間毎に繰り返し実行される。図9の更新処理で更新対象となるソフトウェア定義情報220には、追加ソフトウェア定義レコードが含まれているものとする。
ただし、更新対象のソフトウェア定義情報220に追加ソフトウェア定義レコードが含まれていなくても良い。この場合、更新前後でソフトウェア定義情報220は同一となる。
まず、ソフトウェア定義処理部110のトークン分割部111は、ソフトウェア定義情報220を構成する各ソフトウェア定義レコード(追加ソフトウェア定義レコードも含む。)に含まれるソフトウェア名を所定のトークンに分割する(ステップS301)。ソフトウェア名をトークンに分割する手法は、上記のステップS101と同様の手法を用いる。
次に、ソフトウェア定義処理部110の頻度計算部112は、トークン分割部111により分割されたトークンを用いて、各トークンのTF値及びIDF値を計算する(ステップS302)。なお、IDF値は、トークン毎に、例えば、記憶部140に記憶(上書き)される。
次に、ソフトウェア定義処理部110の特徴ベクトル計算部113は、頻度計算部112により計算されたTF値及びIDF値を用いて、各ソフトウェア定義レコードに含まれるソフトウェア名の特徴ベクトルを計算する(ステップS303)。すなわち、特徴ベクトル計算部113は、上記のステップS103と同様に、Bag-of-Wordsにより、特徴ベクトルを計算する。
次に、ソフトウェア定義処理部110のレコード作成部114は、ソフトウェア定義レコード毎に、上記のステップS302で計算されたTF値と、上記のステップS303で計算された特徴ベクトルとで、当該ソフトウェア定義レコードに含まれるTF値と特徴ベクトルとをそれぞれ更新する(ステップS304)。これにより、ソフトウェア定義情報220が更新される。すなわち、追加ソフトウェア定義レコードも含む、ソフトウェア定義情報220の各レコードが更新される。したがって、この更新後のソフトウェア定義情報220を用いて、上記の名寄せ処理を行うことができる。
<まとめ>
以上のように、本実施形態に係る資産管理システム1では、情報装置30にインストールされているソフトウェアの名寄せを行うことができる。このとき、本実施形態に係る資産管理システム1では、機械学習の手法を用いて、名寄せができなかったソフトウェアに近いソフトウェアをユーザにレコメンドする。そして、本実施形態に係る資産管理システム1では、レコメンドしたソフトウェアに対するユーザの選択に応じて、レコメンドに用いられる学習データセット(ソフトウェア定義情報220)を再学習する。
すなわち、本実施形態に係る資産管理システム1では、図10に示すように、ソフトウェア定義情報220の作成処理により学習データセット(ソフトウェア定義情報220)を作成した後、名寄せ処理により、名寄せに失敗したソフトウェアに近いソフトウェアをユーザにレコメンドする。そして、本実施形態に係る資産管理システム1では、レコメンドしたソフトウェアに対するユーザの選択を、ソフトウェア定義情報220の更新処理によって反映する。これにより、学習データセットの再学習が行われ、再学習の結果が名寄せ処理にフィードバックされる。
このように、本実施形態に係る資産管理システム1は、レコメンドしたソフトウェアに対するユーザの選択の反映と、学習データセットの再学習とを繰り返す。これにより、本実施形態に係る資産管理システム1では、ソフトウェアの名寄せに失敗した場合に、より高い精度で、名寄せに失敗したソフトウェアに近いソフトウェアをレコメンドすることができるようになる。
なお、本実施形態では、機械学習の手法として近傍探索を用いたが、レコメンデーションのタスクに用いられる任意の機械学習の手法を用いることができる。
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
1 資産管理システム
10 管理装置
20 収集装置
30 情報装置
110 ソフトウェア定義処理部
111 トークン分割部
112 頻度計算部
113 特徴ベクトル計算部
114 レコード作成部
120 名寄せ処理部
121 取得部
122 判定部
123 トークン分割部
124 頻度計算部
125 特徴ベクトル計算部
126 レコメンド対象選択部
127 アラート通知部
128 名寄せ登録部
130 台帳登録部
140 記憶部
210 ソフトウェアインベントリ情報
220 ソフトウェア定義情報
230 ソフトウェア資産管理台帳情報
240 ソフトウェア辞書情報

Claims (8)

  1. 複数の情報装置にインストールされているソフトウェア資産を管理する管理装置であって、
    少なくともソフトウェア名がそれぞれ含まれる複数のソフトウェア定義情報を用いて、前記情報装置にインストールされているソフトウェアを名寄せする名寄せ手段と、
    前記名寄せ手段によるソフトウェアの名寄せが失敗した場合、機械学習の手法により、前記複数のソフトウェア定義情報のうち、前記名寄せが失敗したソフトウェアとの類似度が高い順に予め決められた個数の複数のソフトウェア定義情報を選択する選択手段と、
    前記選択手段により選択された複数の前記ソフトウェア定義情報を、前記名寄せが失敗したソフトウェアに類似するソフトウェアに関する情報としてユーザにレコメンドするレコメンド手段と、
    を有することを特徴とする管理装置。
  2. 前記レコメンド手段によりレコメンドされた前記ソフトウェアに関する情報の中からユーザにより選択されたソフトウェアに関する情報を用いて、前記名寄せが失敗したソフトウェアのソフトウェア名と、前記ソフトウェアに関する情報のうちの所定の情報とが含まれるソフトウェア定義情報を作成する作成手段を有し、
    前記名寄せ手段は、
    前記作成手段により作成されたソフトウェア定義情報も含む複数のソフトウェア定義情報を用いて、前記情報装置にインストールされているソフトウェアを名寄せする、ことを特徴とする請求項1に記載の管理装置。
  3. 前記名寄せ手段は、
    前記複数のソフトウェア定義情報の中に、前記情報装置にインストールされているソフトウェアのソフトウェア名が含まれるソフトウェア定義情報が存在するか否かを判定することで、前記情報装置にインストールされているソフトウェアを名寄せする、ことを特徴とする請求項1又は2に記載の管理装置。
  4. 前記名寄せ手段によるソフトウェアの名寄せが失敗した場合、該名寄せに失敗したことを所定の端末に通知するための通知手段を有し、
    前記レコメンド手段は、
    前記端末のユーザに対して、複数の前記ソフトウェア定義情報を、前記名寄せが失敗したソフトウェアに類似するソフトウェアに関する情報としてレコメンドする、ことを特徴とする請求項1乃至3の何れか一項に記載の管理装置。
  5. 前記機械学習の手法は、近傍探索であり、
    前記選択手段は、
    前記名寄せ手段による前記ソフトウェアの名寄せが失敗した場合、前記複数のソフトウェア定義情報のうち、前記名寄せが失敗したソフトウェアとの所定の距離が近い順に上位L件のソフトウェア定義情報を選択する、ことを特徴とする請求項1乃至4の何れか一項に記載の管理装置。
  6. 前記距離は、ソフトウェア名の特徴ベクトル間のユークリッド距離、コサイン類似度又はマンハッタン距離のいずれかである、ことを特徴とする請求項に記載の管理装置。
  7. 複数の情報装置にインストールされているソフトウェア資産を管理する管理装置が、
    少なくともソフトウェア名がそれぞれ含まれる複数のソフトウェア定義情報を用いて、前記情報装置にインストールされているソフトウェアを名寄せする名寄せ手順と、
    前記名寄せ手順によるソフトウェアの名寄せが失敗した場合、機械学習の手法により、前記複数のソフトウェア定義情報のうち、前記名寄せが失敗したソフトウェアとの類似度が高い順に予め決められた個数の複数のソフトウェア定義情報を選択する選択手順と、
    前記選択手順により選択された複数の前記ソフトウェア定義情報を、前記名寄せが失敗したソフトウェアに類似するソフトウェアに関する情報としてユーザにレコメンドするレコメンド手順と、
    を実行することを特徴とする管理方法。
  8. コンピュータを、請求項1乃至の何れか一項に記載の管理装置における各手段として機能させるためのプログラム。
JP2018121904A 2018-06-27 2018-06-27 管理装置、管理方法及びプログラム Active JP7103868B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018121904A JP7103868B2 (ja) 2018-06-27 2018-06-27 管理装置、管理方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018121904A JP7103868B2 (ja) 2018-06-27 2018-06-27 管理装置、管理方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2020004005A JP2020004005A (ja) 2020-01-09
JP7103868B2 true JP7103868B2 (ja) 2022-07-20

Family

ID=69100041

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018121904A Active JP7103868B2 (ja) 2018-06-27 2018-06-27 管理装置、管理方法及びプログラム

Country Status (1)

Country Link
JP (1) JP7103868B2 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012159884A (ja) 2011-01-28 2012-08-23 Fujitsu Ltd 情報照合装置、情報照合方法および情報照合プログラム
JP2013065068A (ja) 2011-09-15 2013-04-11 Fujitsu Ltd 辞書作成プログラム,辞書作成装置および辞書作成方法
JP2015130040A (ja) 2014-01-07 2015-07-16 株式会社日立システムズ 名寄せ装置、名寄せシステム、方法及びプログラム

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3331692B2 (ja) * 1993-09-03 2002-10-07 富士通株式会社 異表記語辞書作成支援装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012159884A (ja) 2011-01-28 2012-08-23 Fujitsu Ltd 情報照合装置、情報照合方法および情報照合プログラム
JP2013065068A (ja) 2011-09-15 2013-04-11 Fujitsu Ltd 辞書作成プログラム,辞書作成装置および辞書作成方法
JP2015130040A (ja) 2014-01-07 2015-07-16 株式会社日立システムズ 名寄せ装置、名寄せシステム、方法及びプログラム

Also Published As

Publication number Publication date
JP2020004005A (ja) 2020-01-09

Similar Documents

Publication Publication Date Title
US11797595B2 (en) Method, apparatus, and computer program product for user-specific contextual integration for a searchable enterprise platform
CN101625697B (zh) 文档管理设备、文档管理系统和文档管理方法
US10331441B2 (en) Source code mapping through context specific key word indexes and fingerprinting
US20230086966A1 (en) Search systems and methods utilizing search based user clustering
US10134067B2 (en) Autocomplete of searches for data stored in multi-tenant architecture
US20130024769A1 (en) Apparatus and method for processing a document
WO2019111508A1 (ja) 情報処理装置、情報処理方法およびプログラム
CN112685443B (zh) 数据查询方法、装置、电子设备和计算机可读存储介质
US9043328B2 (en) Configurable catalog builder system
US8954988B1 (en) Automated assessment of terms of service in an API marketplace
WO2012115254A1 (ja) 検索装置、検索方法、検索プログラム、及びそのプログラムを記憶するコンピュータ読取可能な記録媒体
US11151308B2 (en) Electronic document processing system
JP3987018B2 (ja) 統合業務ソフトウェアの導入運用支援システム
JP7103868B2 (ja) 管理装置、管理方法及びプログラム
JP7162484B2 (ja) ヘルプ情報表示システム、ヘルプ情報表示装置、ヘルプ情報表示方法及びヘルプ情報表示プログラム
US11874730B2 (en) Identifying log anomaly resolution from anomalous system logs
JP5918714B2 (ja) 文献検索装置、文献検索方法、プログラム、および文献検索システム
US8914899B2 (en) Directing users to preferred software services
AU2018214042A1 (en) Information displaying method and apparatus
JP2011070348A (ja) 情報処理システム、情報処理方法、およびプログラム
US10185747B2 (en) Presenting publisher data sets in context
JP5718630B2 (ja) 情報処理装置、情報資産管理システム、情報資産管理方法、及びプログラム
JP2011186769A (ja) コンテンツ管理システム、コンテンツ管理装置、及びアクセス制御方法
JPWO2020245887A1 (ja) 文章生成装置、文章生成方法、および文章生成プログラム
JP2009271671A (ja) 情報処理装置、情報処理方法、プログラム及び記録媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201127

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20211112

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211130

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20220128

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220329

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220607

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220707

R150 Certificate of patent or registration of utility model

Ref document number: 7103868

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150