説明

ライセンス管理装置、ライセンス管理方法及びそのプログラム

【課題】1台の端末上で複数の仮想マシンを動作させる場合においても正しくソフトウェアのライセンス管理を行うことができるようにする。
【解決手段】動作するソフトウェアの識別子と、各ソフトウェアに対するライセンス状態を予め記憶しておき、ソフトウェアの識別子(SW−ID)を含むソフトウェアの起動要求情報に対して、ライセンス管理部112が、対応するライセンス状態を参照してライセンスを保持しているか否か判断し、保持している場合には、起動を許可する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明はソフトウェアの適切なライセンス管理を行う装置、方法及びプログラムに関する。
【背景技術】
【0002】
ソフトウェアのライセンス管理は、ソフトウェア開発元の収益の確保や、ソフトウェアの発展のための研究開発費の確保の観点からも重要である。世界80カ所以上の国や地域でビジネスソフトウェアの権利保護等を行っている非営利団体ビジネスソフトウェア アライアンス(BSA)の発表では、2007年の日本における違法コピーによる被害は約2100億円であるとされ、ライセンス管理をより適切に行う方法が必要とされている。
【0003】
非特許文献1がアクティベーションを用いたソフトウェアのライセンス管理を行う従来技術として知られている。アクティベーションとは、端末にインストールされるソフトウェアのユーザが、正規のライセンスを所有していることを確認する方法である。具体的には、インストールされた端末の構成要素(CPUやHDDの型番、NICのMACアドレスなど)から固有値を作成し、この固有値を利用して認証する方法である。この固有値は端末毎に異なることとなり、ソフトウェアの違法コピー等を行い異なる端末で不正に動作させようとした場合に、固有値が異なることで認証が失敗し、ソフトウェアを不正に利用されることを防ぐ事ができる。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】" Windows XP プロダクト アクティベーション",[online],[平成21年6月4日検索],インターネット<URL:http://technet.microsoft.com/ja-jp/library/ bb457054.aspx>
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、従来技術は仮想マシン上で利用されるソフトウェアのライセンス管理を行うことができないという問題がある。
近年、仮想化技術が進展しており、1台の端末上に仮想的に複数の計算機環境(仮想マシン)を実現することが一般的になっている。仮想化技術によれば、仮想マシンをコピーするだけで、1台の端末上で複数の仮想マシンを動作させること等が可能となる。
【0006】
1台の端末上で複数の仮想マシンを動作させる際、ソフトウェアから見た動作環境である仮想マシンの構成は複数の仮想マシン間で同一のものとなる。すると、端末の構成要素(CPUやHDDの型番、NICのMACアドレスなど)から固有値を作成するアクティベーションの技術における固有値は同一のものとなる。すなわち、仮想マシンが異なってもアクティベーションの認証が成立してしまう。ここでユーザがソフトウェア1本分のみのライセンスを所持しており、複数台の仮想マシン上の複数のソフトウェア分のライセンスが許可されていない場合には、不正なソフトウェアの利用となり、ライセンス管理ができていないこととなる。
【0007】
特に、今後1台の端末上で複数の仮想マシンを利用する状況が増えてくることが予想さされる。具体的には、私用の仮想マシンと、業務用の仮想マシンを搭載した端末で、その時の作業内容にあわせて仮想マシンを使い分けることが考えられる。このような際に、私用では無償で利用でき、業務用では有償となるようなライセンス条件のソフトウェアを利用すると、従来のアクティベーションの技術では、私用の仮想マシンと業務用の仮想マシンの固有値が同一となるため、固有値を利用した認証では、無償の状況なのか、有償の状況なのかの判断がつかないという問題が生じる。このような状況でもライセンスを管理できる方法が望まれる。
【課題を解決するための手段】
【0008】
上記の課題を解決するために、本発明は、動作するソフトウェアの識別子(以下、「SW−ID」という)と、各ソフトウェアに対するライセンス状態を予め記憶しておき、SW−IDを含むソフトウェアの起動要求情報に対して、ライセンス管理部が、対応するライセンス状態を参照してライセンスを保持しているか否か判断し、保持している場合には、起動を許可する。
【発明の効果】
【0009】
本発明に係るライセンス管理装置は、ライセンス管理部が、ソフトウェアの起動を許可してライセンス管理を行うため、適切なライセンス管理が可能となるという効果を奏する。
【図面の簡単な説明】
【0010】
【図1】ライセンス管理装置100の構成例を示す図。
【図2】ライセンス管理装置100のライセンス管理表のデータ例を示す図。
【図3】ライセンス管理装置100の処理フロー例を示す図。
【図4】ライセンス管理装置100内の各部のデータフローを示す図。
【図5】ライセンス管理装置100のハードウェア構成を例示したブロック図。
【図6】ライセンス管理装置200、300の構成例を示す図。
【図7】ライセンス管理装置200のライセンス管理表のデータ例を示す図。
【図8】ライセンス管理装置200の処理フロー例を示す図。
【図9】ライセンス管理装置200内の各部のデータフローを示す図。
【図10】ライセンス管理装置300とライセンス管理サーバ400の構成例を示す図。
【発明を実施するための形態】
【0011】
以下、本発明の実施の形態について、詳細に説明する。
【実施例1】
【0012】
図1はライセンス管理装置100の構成例を示す。図1を用いて実施例1に係るライセンス管理装置100を説明する。
ライセンス管理装置100は、記憶部103、オペレーティングシステム(以下「OS」という)部110、ハッシュ値管理部140を有する。さらに、OS部110は、制御部111及びライセンス管理部112を備える。
ライセンス管理装置100には、ソフトウェア120がインストールされ、そのライセンス管理を行う。なお、ライセンス管理装置100を単に端末ともいう。
【0013】
<記憶部103>
記憶部103は、OS上で動作するソフトウェア120の識別子(以下「SW−ID」という)と、各ソフトウェアに対するライセンス状態をライセンス管理表としてソフトウェアの起動要求に先立ち予め記憶しておく。図2はライセンス管理表のデータ例を示す。ライセンス管理表は、SW−IDと、そのソフトウェアに対するライセンス状態を表すデータベースである。図中、ライセンス状態「可」は対応するソフトウェアが利用可能であることを、ライセンス状態「不可」は対応するソフトウェアが利用不可能であることを意味する。例えば、SW−IDがSW1のソフトウェアが利用可能であり、SW−IDがSW2のソフトウェアが利用不可能であることを示す。
<OS部110>
OS部110は、例えば、キーボード入力や画面出力といった入出力機能やディスクやメモリの管理など、多くのソフトウェアから共通して利用される基本的な機能を提供する。ソフトウェア120は、OS上で動作し、ソフトウェアの起動要求情報はOS部110に送られる。
<ソフトウェア120>
ソフトウェア120は、ライセンス管理装置100のOS上で動作する。また、利用に際してライセンスを必要とする。なお、本実施例では、1種類のソフトウェアがライセンス管理装置100上にインストールされているが、2種類以上のソフトウェアがインストールされてもよい。
<制御部111>
制御部111は、ライセンス管理に関する全体の動作を制御する。
【0014】
<ライセンス管理部112>
ライセンス管理部112は、SW−IDを含むソフトウェアの起動要求情報を受け取ったときに、記憶部103に記憶されたライセンス管理表の対応するライセンス状態を参照してライセンスを保持しているか否か判断し、保持している場合には、起動許可情報を制御部111に送る。
なお、ソフトウェアのインストールの際には、ライセンス管理表に新規のSW−IDが記憶されることとなるが、この際には、ソフトウェアのインストールメディアの中に予め記載された情報等に基づき、インターネット上のサーバへの登録が必要になるようにしても良い。これにより、過去にインストールしたソフトウェアを、別のライセンス管理装置にインストールすることを防ぐことが可能となり、更に厳密なライセンス管理に応用することも可能となる。
<ハッシュ値管理部140>
ハッシュ値管理部140は、OSの起動時に改ざんが無いことを確かめるために必要な、OSのハッシュ値を記憶する。
【0015】
<処理フロー例>
図3はライセンス管理装置100の処理フロー例を、図4はライセンス管理装置100内の各部のデータフローを示す。OS部110は、ソフトウェア120の起動要求を待ち、ユーザの操作によりソフトウェア120の起動が要求されると(s101)、起動を要求されたソフトウェアに対応するSW-IDを含む起動要求情報を制御部111へ送信する(s103)。起動要求情報を受信した制御部111は、OS部110から送信された起動要求情報をライセンス管理部112へ送信する(s111a)。ライセンス管理部112はライセンス管理表を参照し、ライセンス管理表に受け取ったSW−IDが存在するか否かを判定し(s112a)、存在する場合には、さらにこのSW-IDに対応するソフトウェアのライセンスを保持しているか否かを判定し(s112b)、ライセンスを保持している場合には、起動許可情報を制御部111に送る(s112c)。
なお、ライセンス管理表にSW−IDが存在しない場合、及び、SW−IDに対応するライセンスを保持していない場合には、ソフトウェアの起動を禁止し、エラーを出力する構成としてもよい(s112d)。
【0016】
制御部111は、ライセンス管理部112から送信された起動許可情報をOS部110へ送信する(s111c)。起動許可情報を受信したOS部110は、ソフトウェア120を起動する(s105)。
<効果>
本発明によれば、ソフトウェアの起動時にOSが制御部にソフトウェアの起動可否確認を行うこととなる。仮想マシンを利用した際でも仮想マシン上で動作するOS毎に異なるライセンス管理表を持つこととなるため、OS毎すなわち仮想マシン毎に適切なライセンス管理が可能となる。なお、従来技術から異なる端末上のソフトウェアのライセンスを管理するという思想はあったが、同一端末上のソフトウェアのライセンスを管理するという思想に至ることは困難であった。本発明は、この問題点を発見し、新たなライセンス管理技術を創作した。
【0017】
また、ハッシュ値管理部に記憶されたハッシュ値を用いた確認を行うことにより、OSに改竄がないことが証明され、ライセンス管理をすり抜けるためのOS改竄を防ぐことが可能となり、より厳密にライセンスの管理が可能となる。但し、ハッシュ値管理部は必ずしも設けなくともよい。
<ハードウェア構成>
図5は、本実施例におけるライセンス管理装置100のハードウェア構成を例示したブロック図である。図5に例示するように、この例のライセンス管理装置100は、それぞれCPU(Central Processing Unit)11、入力部12、出力部13、補助記憶装置14、ROM(Read Only Memory)15、RAM(Random Access Memory)16及びバス17を有している。
【0018】
この例のCPU11は、制御部11a、演算部11b及びレジスタ11cを有し、レジスタ11cに読み込まれた各種プログラムに従って様々な演算処理を実行する。また、入力部12は、データが入力される入力インターフェース、キーボード、マウス等であり、出力部13は、データが出力される出力インターフェース等である。補助記憶装置14は、例えば、ハードディスク、半導体メモリ等であり、ライセンス管理装置100としてコンピュータを機能させるためのプログラムや各種データが格納される。また、RAM16には、上記のプログラムや各種データが展開され、CUP11等から利用される。また、バス17は、CPU11、入力部12、出力部13、補助記憶装置14、ROM15及びRAM16を通信可能に接続する。なお、このようなハードウェアの具体例としては、例えば、パーソナルコンピュータの他、サーバ装置やワークステーション等を例示できる。
<プログラム構成>
上述のように、補助記憶装置14には、本実施例のライセンス管理装置100の各処理を実行するための各プログラムが格納される。ライセンス管理プログラムを構成する各プログラムは、単一のプログラム列として記載されていてもよく、また、少なくとも一部のプログラムが別個のモジュールとしてライブラリに格納されていてもよい。
<ハードウェアとプログラムとの協働>
CPU11は、読み込まれたOSプログラムに従い、補助記憶装置14に格納されている上述のプログラムや各種データをRAM16に展開する。そして、このプログラムやデータが書き込まれたRAM16上のアドレスがCPU11のレジスタ11cに格納される。CPU11の制御部11aは、レジスタ11cに格納されたこれらのアドレスを順次読み出し、読み出したアドレスが示すRAM16上の領域からプログラムやデータを読み出し、そのプログラムが示す演算を演算部11bに順次実行させ、その演算結果をレジスタ11cに格納していく。
【0019】
図1は、このようにCPU11に上述のプログラムが読み込まれて実行されることにより構成されるライセンス管理装置100の機能構成を例示したブロック図である。
【0020】
ここで、記憶部103は、補助記憶装置14、RAM16、レジスタ11c、その他のバッファメモリやキャッシュメモリ等の何れか、あるいはこれらを併用した記憶領域に相当する。また、OS部110、ハッシュ値管理部140、制御部111、ライセンス管理部112は、CPU11にライセンス管理プログラムを実行させることにより構成されるものである。
【実施例2】
【0021】
図6はライセンス管理装置200の構成例を示す。図6を用いて実施例2に係るライセンス管理装置200を説明する。
【0022】
ライセンス管理装置200は、記憶部203、仮想マシン管理部210、ハッシュ値管理部240を有する。さらに、仮想マシン管理部210は、制御部211及びライセンス管理部212を備える。実施例1と異なる部分のみ説明する。
ライセンス管理装置200上では、ソフトウェア242及び仮想マシン220、230が動作する。ライセンス管理装置200は、例えば、ソフトウェア242及び各仮想マシンのOS上で動作するソフトウェア222、232のライセンス管理を行う。
【0023】
<記憶部203>
記憶部203は、ソフトウェアの起動要求に先立ち、ライセンス管理装置200、各仮想マシン220、230の識別子(以下「VM−ID」という)と、ライセンス管理装置200のOS上で動作するソフトウェア242、及び、各仮想マシン220、230のOS221,231上で動作するソフトウェア222、232の識別子(以下「SW−ID」という)と、この組合せに対するライセンス状態をライセンス管理表としてソフトウェアの起動要求に先立ち予め記憶しておく。図7はライセンス管理表のデータ例を示す。なお、「VM0」はライセンス管理装置200のVM−IDを、「VM1」は仮想マシン220のVM−IDを、「VM2」は仮想マシン230のVM−IDを示す。VM−IDがVM0,VM1である仮想マシンにおいて、SW−IDがSW1およびSW2であるソフトウェアが利用できることを示している。また、VM−IDがVM2である仮想マシンにおいて、SW−IDがSW1であるソフトウェアは利用可能であるが、SW2であるソフトウェアが利用できないことを示している。
<仮想マシン管理部210>
仮想マシン220、230は仮想マシン管理部210上で動作し、ソフトウェア222、232は、それぞれ仮想マシン220、230のOS221、231上で動作し、ソフトウェア242は仮想マシン管理部210上で動作する。各ソフトウェアの起動要求情報は仮想管理マシン管理部210に送られる。
<仮想マシン220及び230>
仮想マシン220及び230は、ライセンス管理装置200上で動作する。なお、本実施例では、2台の仮想マシンがライセンス管理装置200上で動作しているが、3台以上の仮想マシンが動作していてもよい。仮想マシン220及び230は、それぞれOS221及び231を有する。また、ソフトウェア222、232を有する。
【0024】
<ソフトウェア222、232及び242>
ソフトウェア222、232及び242は、それぞれOS221、231及び仮想マシン管理部210上で動作する。また、利用に際してライセンスを必要とする。
<ハッシュ値管理部240>
ハッシュ値管理部240は、OS221、231の起動時に改ざんが無いことを確かめるために必要な、OS221,231のハッシュ値を記憶する。また、OSのハッシュ値に加えて、コンピュータを仮想マシン管理部210として機能させるためのプログラムや仮想マシン220,230のハッシュ値を記憶しても良い。
<制御部211>
制御部211は、ライセンス管理に関する全体の動作を制御する。
【0025】
<ライセンス管理部212>
ライセンス管理部212は、VM−ID及びSW−IDを含むソフトウェアの起動要求情報に対して、記憶部203に記憶された対応するライセンス状態を参照してライセンスを保持しているか否か判断し、保持している場合には、起動許可情報を制御部に送る。
<処理フロー例>
図8はライセンス管理装置200の処理フロー例を、図9はライセンス管理装置200内の各部のデータフローを示す。仮想マシン管理部210は、各ソフトウェアの起動要求を待ち、ユーザの操作によりソフトウェアの起動が要求されると(s201)、起動を要求されたライセンス管理装置または仮想マシンに対応するVM−IDと起動を要求されたソフトウェアに対応するSW-IDを含む起動要求情報を制御部211へ送信する(s203)。起動要求情報を受信した制御部211は、仮想マシン管理部210から送信された起動要求情報をライセンス管理部212へ送信する(s211a)。ライセンス管理部212は記憶部203に記憶されたライセンス管理表を参照し、ライセンス管理表にVM−IDとSW−IDの組合せが存在するか否かを判定し(s212a)、存在する場合には、さらにこの組合せに対応するソフトウェアのライセンスを保持しているか否かを判定し(s212b)、ライセンスを保持している場合には、起動許可情報を制御部211に送る(s212c)。
【0026】
なお、ライセンス管理表にVM−IDとSW−IDの組合せが存在しない場合、及び、SW−IDに対応するライセンスを保持していない場合には、ソフトウェアの起動を禁止し、エラーを出力する構成としてもよい(s212d)。
【0027】
制御部211は、ライセンス管理部212から送信された起動許可情報を仮想マシン管理部210、OS221または231へ送信する(s211c)。起動許可情報を受信した仮想マシン管理部210、OS221または231は、ソフトウェア242、222または232を起動する(s205)。
このような構成により、仮想マシン毎のライセンス管理を行うことができ、適切なライセンス管理が可能となるという効果を奏する。
【実施例3】
【0028】
図6はライセンス管理装置300の構成例を、図10はライセンス管理装置300とライセンス管理サーバ400の構成例を示す。実施例2と異なる部分についてのみ説明する。
【0029】
ライセンス管理装置300は、通信回線500を介して、ライセンス管理サーバ400と接続される。なお、ライセンス管理装置300は、図示しない通信部を有し、これを介し通信回線と接続する。通信部は、例えば、LANアダプタ等である。
【0030】
以下、本発明におけるソフトウェアのインストールにおける一手順を述べる。
まずユーザの操作によって、仮想マシン管理部310、仮想マシン220または230上にソフトウェアをインストールする処理が開始される。仮想マシン管理部310は、インストールの際にインストールメディアに固有の識別子(以下「P−ID」という、例えば製造番号等)をソフトウェアのインストールメディアから取得し、P-IDとVM−IDを組合せ、ライセンス管理サーバ400に送信する。なお、このとき送信するVM−IDは、ソフトウェアをインストールされる仮想マシンまたはライセンス管理装置のVM−IDである。
【0031】
ライセンス管理サーバ400は、受信したP−ID,VM−IDを記憶する記憶部と、判定部とを有する。
判定部は、記憶部を参照して、新たに受け取ったP−IDが過去に受け取ったP−IDと同一か否かを判定する。異なる場合にはインストールを許可する。同一の場合にはさらに新たに受け取ったP−IDとVM−IDの組合せが過去に受け取ったP−IDとVM−IDの組合せと同一か否か判定する。同一の場合にはインストールを許可する。
【0032】
新たに受け取ったP−IDが過去に受け取ったP−IDと同一であって、かつ、P−IDとVM−IDの組合せが過去に受け取ったP−IDとVM−IDの組合せと異なる場合には、異なるライセンス管理装置または仮想マシンに同一のソフトウェアがインストールされる可能性があるため、仮想マシン管理部310に警告を送付する、もしくは、インストールの禁止を送付する構成としても良い。なお、新たに受け取ったP−IDとVM−IDの組合せが過去に受け取ったP−IDとVM−IDの組合せと同一の場合には、同一のライセンス管理装置または仮想マシンに同一のソフトウェアを再インストールしていると考えられるため、インストールを許可する。
【0033】
ソフトウェアの起動に際してのライセンス管理装置300の処理は、実施例2と同様である。
【0034】
このような構成とすることによって、1本分のみソフトウェアのライセンスを保持するユーザが、そのソフトウェアを異なるライセンス管理装置にインストールしようとした場合には、ライセンス管理サーバ400の許可を得られず、より適切なライセンス管理が可能となる。なお、実施例1のライセンス管理装置100についても同様の構成とし、同様の効果を得ることができる。なお、インストール時のみでなく、ソフトウェアの起動時にもライセンス管理サーバ400のような外部の装置に問い合わせる構成も考えられるが、ネットワークへの接続が必要となり、そのようなネットワークへの接続を必要としない本発明の方法との差異となる。
【0035】
なお、本発明はこれらの内容に限定されるものではない。本発明の技術的思想の範囲内で考えられるその他の態様も本発明の範囲内に含まれる。例えば、ライセンス管理装置は、仮想マシンやソフトウェアをインストールする前であっても記憶部、制御部、ライセンス管理部等を備えていればよい。
【符号の説明】
【0036】
100、200、300 ライセンス管理装置
103、203、303 記憶部
110 OS部
210、310 仮想マシン管理装置
111、211、311 制御部
112、212、312 ライセンス管理部


【特許請求の範囲】
【請求項1】
ソフトウェアのライセンス管理を行うライセンス管理装置であって、
当該ライセンス管理装置のOS上で動作するソフトウェアの識別子(以下「SW−ID」という)及び各ソフトウェアに対するライセンス状態をソフトウェアの起動要求に先立って記憶する記憶部と、
ライセンス管理に関する全体の動作を制御する制御部と、
SW−IDを含むソフトウェアの起動要求情報に対して、前記記憶部の対応する前記ライセンス状態を参照してライセンスを保持しているか否か判断し、保持している場合には、起動許可情報を前記制御部に送るライセンス管理部と、を有する、
ことを特徴とするライセンス管理装置。
【請求項2】
ソフトウェアのライセンス管理を行うライセンス管理装置であって、
当該ライセンス管理装置及び前記各仮想マシンの識別子(以下「VM−ID」という)と、当該ライセンス管理装置のOS上で動作するソフトウェア及び前記各仮想マシンのOS上で動作するソフトウェアの識別子(以下「SW−ID」という)と、この組合せに対するライセンス状態とをソフトウェアの起動要求に先立って記憶する記憶部と、
ライセンス管理に関する全体の動作を制御する制御部と、
前記VM−ID及び前記SW−IDを含むソフトウェアの起動要求情報に対して、対応するライセンス状態を参照してライセンスを保持しているか否か判断し、保持している場合には、起動許可情報を制御部に送るライセンス管理部と、を有する、
ことを特徴とするライセンス管理装置。
【請求項3】
端末にインストールされるソフトウェアのライセンス管理を行うライセンス管理方法であって、
前記端末のOS上で動作するソフトウェアの識別子(以下「SW−ID」という)と、各ソフトウェアに対するライセンス状態をソフトウェアの起動要求に先立って記憶するステップと、
前記OSが、前記ソフトウェアの起動要求情報を受け取るステップと、
ライセンス管理に関する全体の動作を制御する制御部が、前記OSから起動要求情報を受け取るステップと、
SW−IDを含むソフトウェアの起動要求情報に対して、対応する前記ライセンス状態を参照してライセンスを保持しているか否か判断し、ライセンスを保持している場合には、起動許可情報を前記制御部に送るライセンス管理ステップと、を有する
ことを特徴とするライセンス管理方法。
【請求項4】
端末にインストールされるソフトウェアのライセンス管理、及び、端末にインストールされる仮想マシンのOS上で動作するソフトウェアのライセンス管理を行うライセンス管理方法であって、
前記端末及び前記端末上で動作する各仮想マシンの識別子(以下「VM−ID」という)と、前記端末のOS上で動作するソフトウェア及び前記各仮想マシンのOS上で動作するソフトウェアの識別子(以下「SW−ID」という)と、この組合せに対するライセンス状態とをソフトウェアの起動要求に先立って記憶するステップと、
ライセンス管理に関する全体の動作を制御する制御部が、前記ソフトウェアの起動要求情報を受け取るステップと、
前記VM−ID及び前記SW−IDを含むソフトウェアの起動要求情報に対して、対応するライセンス状態を参照してライセンスを保持しているか否か判断し、保持している場合には、起動許可情報を制御部に送るライセンス管理ステップと、を有する、
ことを特徴とするライセンス管理方法。
【請求項5】
コンピュータを請求項1または請求項2記載のライセンス管理装置として機能させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2010−287081(P2010−287081A)
【公開日】平成22年12月24日(2010.12.24)
【国際特許分類】
【出願番号】特願2009−140868(P2009−140868)
【出願日】平成21年6月12日(2009.6.12)
【出願人】(000004226)日本電信電話株式会社 (13,992)
【Fターム(参考)】