JP6660911B2 - 信頼性判定装置、信頼性判定システムおよびソースコード共有システム - Google Patents

信頼性判定装置、信頼性判定システムおよびソースコード共有システム Download PDF

Info

Publication number
JP6660911B2
JP6660911B2 JP2017069087A JP2017069087A JP6660911B2 JP 6660911 B2 JP6660911 B2 JP 6660911B2 JP 2017069087 A JP2017069087 A JP 2017069087A JP 2017069087 A JP2017069087 A JP 2017069087A JP 6660911 B2 JP6660911 B2 JP 6660911B2
Authority
JP
Japan
Prior art keywords
source code
unit
hardware
version
reliability
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
JP2017069087A
Other languages
English (en)
Other versions
JP2018169969A (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.)
KDDI Corp
Original Assignee
KDDI 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 KDDI Corp filed Critical KDDI Corp
Priority to JP2017069087A priority Critical patent/JP6660911B2/ja
Publication of JP2018169969A publication Critical patent/JP2018169969A/ja
Application granted granted Critical
Publication of JP6660911B2 publication Critical patent/JP6660911B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Description

本発明は、動作不良を起こした際の原因がハードウェアにある可能性が高いかソフトウェアにある可能性が高いか判断できる信頼性判定装置、信頼性判定システム、およびソースコード共有システムに関する。
近年、ソースコードをデバイス間で共有し、それぞれのデバイスで編集可能とするため、様々な技術が提案されている。特許文献1では、アプリケーションのローカル環境のクローンをサーバ上に生成することで、複数のユーザがコンテンツを編集することを可能にしている。
また、特許文献2では、第1のユーザが作成したソースコードの未確定変更情報を第2のユーザに共有し、第2のユーザが第1のユーザに対して未確定変更情報を確定させる指示を行った後、第1のユーザが当該確定指示を行うことができるソースコード共有支援装置を開示している。これにより、ソースコードの共有の際、不安定なソースコードがソースコード管理サーバに紛れ込むことを防ぐことを可能にしている。
特許第5649171号公報 特許第6029117号公報
しかし、ハードウェア制御を含むアプリケーションの場合、動作不良の原因がハードウェア、ソフトウェアの双方に存在する可能性がある。そのため、ソースコードを共有した際に動作不良があった場合、その原因がハードウェアにあるのか、ソフトウェアにあるのか切り分ける作業が必要となる。
また、動作確認がとれていないハードウェア上で開発されたソフトウェアには、本来想定しない動作を引き起こしてしまう可能性がある。しかしながら、特許文献1も2もこの点については考慮されていない。
本発明は、このような事情に鑑みてなされたものであり、動作確認をしたハードウェアとソフトウェアのバージョン管理を行い、ハードウェアとソフトウェアのバージョン毎の信頼性を設定することで、ハードウェアとソフトウェアのバージョン毎の信頼性を用いてさらに信頼性を判定することができ、動作不良を起こした際の原因がハードウェアにある可能性が高いかソフトウェアにある可能性が高いか判断できる信頼性判定装置、信頼性判定システム、およびソースコード共有システムを提供することを目的とする。
(1)上記の目的を達成するため、本発明は、以下のような手段を講じた。すなわち、本発明の信頼性判定装置は、ソースコードをデバイス間で共有するためにハードウェアおよびソフトウェアの信頼性を判定する信頼性判定装置であって、前記デバイスでソースコードを含むアプリケーションが実行され、その実行動作が正常であったか異常であったかを示す実行結果を取得し、前記実行結果と前記ハードウェアバージョンおよび前記ソフトウェアバージョンとを含む実行結果情報と、ハードウェアバージョンおよびソフトウェアバージョン毎の判定結果とを記録する実行結果管理部と、前記実行結果情報、並びに前記実行結果情報に含まれるハードウェアバージョンと同一のハードウェアバージョンの判定結果またはソフトウェアバージョンと同一のソフトウェアバージョンの判定結果に基づき、デバイスのハードウェアおよびソフトウェアの信頼性をそれぞれ判定する判定部と、を備える。
このように、動作確認をしたハードウェアとソフトウェアのバージョン管理を行い、ハードウェアとソフトウェアのバージョン毎の信頼性を設定することで、ハードウェアとソフトウェアのバージョン毎の信頼性を用いてさらに信頼性を判定することができ、動作不良を起こした際の原因がハードウェアにある可能性が高いかソフトウェアにある可能性が高いか判断できる。
(2)また、本発明の信頼性判定装置において、前記判定部は、前記実行結果が正常であった場合、前記実行結果情報に含まれる前記ハードウェアバージョンおよび前記ソフトウェアバージョンを信頼性が高いと判定し、前記実行結果が異常であった場合に、前記ハードウェアバージョンおよび前記ソフトウェアバージョンのいずれも信頼性が高いと判定されていない場合は、前記ハードウェアバージョンおよび前記ソフトウェアバージョンを信頼性が低いと判定し、前記ハードウェアバージョンは信頼性が高いと判定されておらず、前記ソフトウェアバージョンは信頼性が高いと判定されていた場合は、前記ハードウェアバージョンのみ信頼性が低いと判定し、前記ハードウェアバージョンは信頼性が高いと判定されており、前記ソフトウェアバージョンは信頼性が高いと判定されていない場合は、前記ソフトウェアバージョンのみ信頼性が低いと判定し、前記ハードウェアバージョンおよび前記ソフトウェアバージョンのいずれも信頼性が高いと判定されている場合は、ユーザ設定により前記ソフトウェアバージョンおよび前記ハードウェアバージョンの信頼性を判定しなおす。
これにより、ハードウェアとソフトウェアのバージョン毎の信頼性を用いた信頼性の判定を具体的に行うことができる。
(3)また、本発明の信頼性判定装置において、前記判定部は、ソフトウェアバージョンおよびハードウェアバージョンの信頼性の高さの度合いを示す信頼度を算出する。
これにより、実行結果が正常でなかった場合に、信頼度を参照することで、ソフトウェア、ハードウェアのどちらに原因がありそうかを詳細に判断することができる。
(4)また、本発明の信頼性判定装置は、前記判定部の判定結果に基づいてデバイスのハードウェアバージョン毎にソースコード編集権限を設定する、編集権限管理部と、をさらに備える。
これにより、ソースコードをデバイス間で共有する際に、編集権限を有するデバイスで編集されたソースコードと、編集権限を有さないデバイスで編集されたソースコードとの間に差を設けることができ、不安定なソースコードが紛れ込む確率を下げることができる。
(5)また、本発明の信頼性判定システムは、デバイスとサーバによって構成され、ソースコードをデバイス間で共有するためにハードウェアおよびソフトウェアの信頼性を判定する信頼性判定システムであって、前記サーバは、上記(1)記載の信頼性判定装置、を備え、前記デバイスは、前記デバイスに接続されたハードウェアのバージョンを記録するハードウェアバージョン管理部と、ソースコードおよび前記ソースコードに関連付けられたソフトウェアバージョンを受信するソースコード受信部と、前記受信したソースコードおよびソフトウェアバージョンを関連付けて記録するアプリケーション記憶部と、前記アプリケーション記憶部に記録されたソースコードを実行するアプリケーション実行部と、前記アプリケーション実行部に従い前記デバイスに接続されたハードウェアを制御するハードウェア制御部と、前記アプリケーションが実行された実行動作が正常であったか異常であったかを示す実行結果を判定または取得し、前記実行結果と前記ハードウェアバージョンおよび前記ソフトウェアバージョンとを含む実行結果情報を、信頼性判定装置の実行結果管理部に通知する実行結果登録部と、を備える。
これにより、ハードウェアとソフトウェアのバージョン毎の信頼性に基づいてさらに信頼性を判定することができ、動作不良を起こした際の原因がハードウェアにある可能性が高いかソフトウェアにある可能性が高いか判断できる。
(6)また、本発明の信頼性判定システムにおいて、前記ハードウェアバージョン管理部は、ハードウェアが未変更であるか変更済みであるかを選択する選択手段を備え、変更済みが選択された場合に前記ハードウェアバージョンを更新する。
これにより、ハードウェアバージョンの更新を、ユーザの選択に基づいて判定することができる。
(7)また、本発明の信頼性判定システムにおいて、前記ハードウェアバージョン管理部は、前記デバイスに接続されたハードウェアリストを検出する検出手段を備え、前記ハードウェアリストに変化があった場合に、前記ハードウェアバージョンを更新する。
これにより、ハードウェアバージョンを自動で更新することができる。
(8)また、本発明の信頼性判定システムにおいて、前記実行結果登録部は、アプリケーション実行部が実行するアプリケーションのソフトウェアおよびハードウェアの動作が正常か異常を選択させる選択手段を備え、当該選択手段による選択結果を実行結果として登録する。
これにより、出力結果が正常か異常かを、ユーザの選択に基づいて判定することができる。
(9)また、本発明の信頼性判定システムにおいて、前記実行結果登録部は、アプリケーションが正常動作した場合の出力結果の範囲を示す設定値を保持し、アプリケーションの出力結果が前記設定値の範囲内か範囲外かを確認し、前記設定値の範囲内であった場合に実行結果を正常として登録し、前記設定値の範囲外であった場合に実行結果を異常として登録する。
これにより、出力結果が正常か異常かを、予め設定した値に基づいて、自動で判断することができる。
(10)また、本発明のソースコード共有システムは、少なくとも2つのデバイスと、サーバによって構成され、ソースコードをデバイス間で共有するソースコード共有システムであって、前記サーバは、上記(1)記載の信頼性判定装置を備え、前記デバイスは、前記デバイスに接続されたハードウェアのバージョンを記録するハードウェアバージョン管理部と、ソースコードおよび前記ソースコードに関連付けられたソフトウェアバージョンを受信するソースコード受信部と、前記受信したソースコードおよびソフトウェアバージョンを関連付けて記録するアプリケーション記憶部と、前記アプリケーション記憶部に記録されたソースコードを実行するアプリケーション実行部と、前記アプリケーション実行部に従い前記デバイスに接続されたハードウェアを制御するハードウェア制御部と、前記アプリケーションが実行された実行動作が正常であったか異常であったかを示す実行結果を判定または取得し、前記実行結果と前記ハードウェアバージョンおよび前記ソフトウェアバージョンとを含む実行結果情報を、信頼性判定装置の実行結果管理部に通知する実行結果登録部と、を備え、信頼性が高いことが確認されたソフトウェアバージョンを有するソースコードを複数のデバイスで共有する。
これにより、ハードウェアとソフトウェアのバージョン毎の信頼性に基づいてさらに信頼性を判定した結果、信頼性が確認されたソフトウェアバージョンを有するソースコードを複数のデバイスで共有することができる。
(11)また、本発明のソースコード共有システムは、少なくとも2つのデバイスと、サーバによって構成され、ソースコードをデバイス間で共有するソースコード共有システムであって、前記サーバは、上記(4)記載の信頼性判定装置と、前記編集権限情報を送信する編集権限情報送信部と、を備え、前記デバイスは、前記デバイスに接続されたハードウェアのバージョンを記録するハードウェアバージョン管理部と、ソースコードおよび前記ソースコードに関連付けられたソフトウェアバージョンを受信するソースコード受信部と、前記受信したソースコードおよびソフトウェアバージョンを関連付けて記録するアプリケーション記憶部と、前記アプリケーション記憶部に記憶されたソースコードを実行するアプリケーション実行部と、前記アプリケーション実行部に従い前記デバイスに接続されたハードウェアを制御するハードウェア制御部と、前記アプリケーションの動作が正常であったか異常であったかを示す実行結果、前記アプリケーションが実行された実行動作が正常であったか異常であったかを示す実行結果を判定または取得し、前記実行結果と前記ハードウェアバージョンおよび前記ソフトウェアバージョンとを含む実行結果情報を、信頼性判定装置の実行結果管理部に通知する実行結果登録部と、ユーザによる入力を受け付け、前記アプリケーション記憶部に記憶されたソースコードを編集する編集部と、前記サーバから編集権限情報を取得する編集権限情報取得部と、前記取得した編集権限情報に基づいて編集したソースコードを送信するソースコード送信部と、を備え、信頼性が高いことが確認されたソフトウェアバージョンを有するソースコードを複数のデバイスで共有する。
これにより、編集権限を有するデバイスで編集されたソースコードを複数のデバイスで共有することができる。
(12)また、本発明のソースコード共有システムは、少なくとも2つのデバイスと、サーバと、ソースコード編集部によって構成され、ソースコードをデバイス間で共有するソースコード共有システムであって、前記サーバは、上記(4)記載の信頼性判定装置と、前記編集権限情報を送信する編集権限情報送信部と、ユーザ固有のユーザIDとデバイス固有のデバイスIDとを関連付けて記録するユーザ情報管理部と、を備え、前記ソースコード編集部は、ソースコードおよび前記ソースコードに関連付けられたソフトウェアバージョンを受信する第1のソースコード受信部と、前記受信したソースコードおよびソフトウェアバージョンを関連付けて記録する第1のアプリケーション記憶部と、前記ソースコードを編集する前記ユーザIDの認証を行うユーザ認証部と、前記認証されたユーザIDに基づいて編集されたソースコードに新規のソフトウェアバージョンを付与し、前記ユーザIDと関連付けて前記第1のアプリケーション記憶部に記録する編集部と、前記認証されたユーザIDに関連付けられた前記デバイスIDに付与された編集権限を取得する編集権限情報取得部と、前記取得した編集権限情報に基づいて、前記ユーザIDと関連付けられた前記デバイスおよびその他のデバイスに編集されたソースコードを送信するソースコード送信部と、を備え、前記デバイスは、前記デバイスに接続されたハードウェアのバージョンを記録するハードウェアバージョン管理部と、前記ソースコード送信部から送信されたソースコードおよび前記ソースコードに関連付けられたソフトウェアバージョンを受信する第2のソースコード受信部と、前記受信したソースコードおよびソフトウェアバージョンを関連付けて記録する第2のアプリケーション記憶部と、前記アプリケーション記憶部に記録されたソースコードを実行するアプリケーション実行部と、前記アプリケーション実行部に従い前記デバイスに接続されたハードウェアを制御するハードウェア制御部と、前記アプリケーションが実行された実行動作が正常であったか異常であったかを示す実行結果を判定または取得し、前記実行結果と前記ハードウェアバージョンおよび前記ソフトウェアバージョンとを含む実行結果情報を、信頼性判定装置の実行結果管理部に通知する実行結果登録部と、を備え、信頼性が高いことが確認されたソフトウェアバージョンを有するソースコードを複数のデバイスで共有する。
これにより、編集権限をユーザIDと関連付けて管理でき、編集部がデバイスと異なる構成とすることができ、編集権限を有するユーザIDに基づいて編集されたソースコードを複数のデバイスで共有することができる。
(13)また、本発明のソースコード共有システムにおいて、第1のデバイスは、信頼性が高いと確認されていないハードウェアバージョンを有し、信頼性が高いと確認されているハードウェアバージョンを有する第2のデバイスの検索を前記サーバに要求する動作確認デバイス検索部と、前記サーバから応答された第2のデバイスに対しソースコードを含む動作確認要求を送信する動作確認要求送信部と、をさらに備え、前記第2のデバイスは、前記第1のデバイスから送信される動作確認要求を受信する動作確認要求受信部と、動作確認結果を前記第1のデバイスに送信する動作確認結果送信部と、をさらに備え、前記サーバは、前記第1のデバイスからの要求に基づき、信頼性が高いと確認されているハードウェアバージョンを有する第2のデバイスを応答する動作確認デバイス応答部と、をさらに備え、前記判定部は、前記第2のデバイスから送信された前記動作確認結果に基づいて、前記第1のデバイスから送信されたソースコードのソフトウェアバージョンの信頼性を判定する。
これにより、ハードウェアの動作確認がとれていない第1のデバイス上で編集したソースコードを共有する際、ハードウェアの動作確認がとれている第2のデバイスに動作確認を要求し、当該第2のデバイスで動作確認がとれた場合にソースコードの共有を許可することで、不安定なソースコードが紛れ込む確率を下げることができる。
(14)また、本発明のソースコード共有システムにおいて、前記サーバは、ソフトウェアバージョンおよびハードウェアバージョンの信頼性の高さの度合いを示す信頼度を算出し、前記動作確認デバイス検索部は、ハードウェアバージョンの信頼度に基づいて前記第2のデバイスを選出する。
これにより、ハードウェアの動作確認がとれている第2のデバイスが複数存在する場合に、信頼度に基づいて第2のデバイスを選出することができる。
(15)また、本発明のソースコード共有システムにおいて、前記デバイスは、前記サーバに信頼性が高いと確認されたソースコードをテストコードとして要求するテストコード要求部をさらに備え、前記サーバは、前記デバイスのテストコードの要求に対して、前記デバイスのハードウェアバージョンに応じてテストコードを送信し、テストコードの実行結果が正常であるときは、前記デバイスのハードウェアバージョンの信頼性が高いと判定する。
これにより、編集不可であった場合でも、テストコードを用いてハードウェアの信頼性が高いことを確認でき、編集可能となる。
本発明によれば、動作確認をしたハードウェアとソフトウェアのバージョン管理を行い、ハードウェアとソフトウェアのバージョン毎の信頼性を設定することで、ハードウェアとソフトウェアのバージョン毎の信頼性を用いてさらに信頼性を判定することができ、動作不良を起こした際の原因がハードウェアにある可能性が高いかソフトウェアにある可能性が高いか判断できる。
第1の実施形態に係るソースコード共有システムの構成の一例を示すブロック図である。 デバイスがソースコードを受信してからアプリケーションの動作確認を行い、ソフトウェア、ハードウェアの信頼性を判定するまでの処理を示すフローチャートである。 信頼性の判定をする際の手順を示すフローチャートである。 実行結果管理部に登録される情報の一例を示す表である。 信頼度の算出をする際の手順を示すフローチャートである。 第1の実施形態の変形例1の構成の一例を示すブロック図である。 第1の実施形態の変形例2の構成の一例を示すブロック図である。 第2の実施形態に係るソースコード共有システムの構成の一例を示すブロック図である。 デバイスがソースコードを受信してから、編集権限の設定を行うまでの処理を示すフローチャートである。 デバイスでソースコードを編集してから、編集内容を他のデバイスへ送信するまでの処理を示すフローチャートである。 第2の実施形態の変形例の構成の一例を示すブロック図である。 第3の実施形態に係るソースコード共有システムの構成の一例を示すブロック図である。 動作確認処理を含む、ソースコード共有までの処理を示すフローチャートである。 動作確認を行う場合の検索要求から動作確認の受信までの処理を示すフローチャートである。 第4の実施形態に係るソースコード共有システムの構成の一例を示すブロック図である。 テストコード要求処理を含む、ソースコード共有までの処理を示すフローチャートである。 ソフトウェアおよびハードウェアのバージョン進化の例を示す樹形図である。
[第1の実施形態]
(ソースコード共有システムの構成)
図1は、本実施形態に係るソースコード共有システムの構成の一例を示すブロック図である。ソースコード共有システム10は、複数のデバイス200とサーバ100によって構成されている。なお、特に説明しない場合は、ブロック図に記載されているデバイスと同様のデバイスが複数存在するものとする。サーバ100は、信頼性判定装置30を備える。デバイス200はセンサやアクチュエータなどのハードウェアを含み、デバイス200上で実行されるアプリケーションは当該ハードウェアの制御を含む。例えば、一定時間毎にセンサ情報を取得する、ロボットアームのアクチュエータを制御する、といったものである。なお、本実施形態ではサーバ100が信頼性判定装置30を備える構成としているが、信頼性判定装置30がサーバ100と別に設けられていてもよいし、信頼性判定装置30の一部の機能が別の装置(デバイス200など)に設けられていてもよい。
信頼性判定装置30は、実行結果管理部110、および判定部120から構成されている。実行結果管理部110は、ソースコードを含むアプリケーションの動作が正常であったか異常であったかを示す実行結果を取得し、実行結果とハードウェアバージョンおよびソフトウェアバージョン(後述する)とを含む実行結果情報と、ハードウェアバージョンおよびソフトウェアバージョン毎の判定結果とを記録する。実行結果は、アプリケーションが正しく動作したかどうかのブーリアン値である。
判定部120は、実行結果管理部110に登録される実行結果、並びに実行結果情報に含まれるハードウェアバージョンと同一のハードウェアバージョンの判定結果またはソフトウェアバージョンと同一のソフトウェアバージョンの判定結果に基づき、各デバイスのハードウェアおよびソフトウェアの信頼性をそれぞれ判定する。判定部120により判定された判定結果は実行結果管理部110に記録される。
デバイス200は、ハードウェアバージョン管理部210、ソースコード受信部220、アプリケーション記憶部230、アプリケーション実行部240、ハードウェア制御部250、および実行結果登録部260から構成されている。ハードウェアバージョン管理部210は、デバイス200に接続されるハードウェアのバージョンを記録する。デバイス200のハードウェアバージョンは、ハードウェアのバージョンを示すユニークIDである。ハードウェアのバージョンは、デバイス200が作製されるのと同時に付与される。以降、デバイス200に接続されるハードウェアに変更が加えられる度に、ハードウェアバージョン管理部210が管理するハードウェアバージョンを更新し、新たなバージョンIDを付与する。ハードウェアバージョンは、同様の構成のデバイスであっても、デバイス毎に異なる値が付与される。
ハードウェアバージョン管理部210は、ハードウェアバージョンとともにデバイスIDを管理してもよい。また、ハードウェアバージョンにデバイスIDを含む構成としてもよい。デバイスIDは、デバイス毎に付与されるユニークIDである。デバイスIDは、デバイスが製造された際に付与される文字列である。あるいは、デバイスがネットワークに接続する際のネットワークアドレスやネットワークインターフェイスのMACアドレスなどを基に固有のIDを付与してもよい。
ハードウェアバージョン管理部210は、ハードウェアに変更が加えられたかどうかを選択する選択手段を提示してもよい。これにより、ハードウェアバージョンの更新を、ユーザの選択に基づいて判定することができる。この場合、開発者はハードウェアに変更を加える度に当該選択手段に従い、ハードウェアに変更を加えたという選択を行う。ハードウェアバージョン管理部210は変更が加えられたという選択を受け取る度に新たなハードウェアバージョンを付与するための更新処理を行う。選択手段は、デバイスにボタン、スイッチなどを備え、当該ボタン、スイッチを操作することであってもよいし、ディスプレイと入力手段(マウスやキーボード)をデバイスに備え、当該ディスプレイに表示されたユーザインタフェース(UI)を当該入力手段により操作することでもよい。あるいは、デバイス200とネットワークで接続された別の機器(例えばサーバ100)にディスプレイと入力手段を備え、当該機器上で操作することでもよい。
あるいは、ハードウェアバージョン管理部210が定期的にデバイスとハードウェア間の通信に用いられるシリアルバス(I2Cなど)をスキャンし、シリアルバスに接続されているハードウェアリストを取得し、当該ハードウェアリストに変化があった場合に、新たなバージョンIDを付与してもよい。これにより、ハードウェアバージョンを自動で更新することができる。また、ハードウェアの耐用年数などを考慮し、前回付与したバージョンIDから一定期間経過した際にハードウェアバージョン更新処理を行ってもよい。
ソースコード受信部220は、ソースコードおよびソースコードに関連付けられたソフトウェアバージョンを受信する。アプリケーション記憶部230は、ソースコード受信部220が受信したソースコードおよびソフトウェアバージョンを関連付けて記録する。
ソフトウェアバージョンは、ソフトウェアのバージョンを示すユニークIDである。ソフトウェアのバージョンは、ソースコードに編集が加えられる度に自動的に更新され、付与されるユニークなIDを用いる。あるいは、ある編集のまとまり毎に開発者がバージョン登録を行い、その際にソースコードに付与されるユニークなIDを用いてもよい。ソフトウェアバージョンおよびハードウェアバージョンは、サーバにより付与されてもよい。
アプリケーション実行部240は、アプリケーション記憶部230に記録されたソースコードを実行する。ハードウェア制御部250は、アプリケーション実行部240に従いデバイス200に接続されたハードウェアを制御する。その結果、例えば、一定時間毎にセンサ情報を取得する、ロボットアームのアクチュエータを制御する、といったデバイス200に接続されたハードウェアの制御ができる。
実行結果登録部260は、ソースコードを含むアプリケーションが実行された実行動作が正常であったか異常であったかを示す実行結果を判定または取得し、実行結果とハードウェアバージョンおよびソフトウェアバージョンとを含む実行結果情報を、信頼性判定装置30の実行結果管理部110に通知する。
実行結果登録部260は、アプリケーションの動作確認を行う開発者に対し、アプリケーションのソフトウェアおよびハードウェアが正しく動作したかを選択させる選択手段を提示してもよい。これにより、出力結果が正常か異常かを、ユーザの選択に基づいて判定することができる。この場合、開発者は提示に従い、当該選択手段により選択し、実行結果を登録する。選択手段は、デバイスにボタン、スイッチなどを備え、当該ボタン、スイッチを操作することであってもよいし、ディスプレイと入力手段(マウスやキーボード)をデバイスに備え、当該ディスプレイに表示されたUIを当該入力手段により操作することでもよい。あるいは、デバイス200とネットワークで接続された別の機器(例えばサーバ100)にディスプレイと入力手段を備え、当該機器上で操作することでもよい。
実行結果登録部260は、アプリケーションが正常動作した場合の出力結果の範囲を予め設定しておき、アプリケーションを実行した際の出力結果が当該範囲内であるかどうかを確認することで、自動的に正しく動作したかどうかを登録してもよい。これにより、出力結果が正常か異常かを、予め設定した値に基づいて、自動で判断することができる。例えば、あるセンサの値を取得するアプリケーションにおいて、正常動作した場合のセンサ値の取り得る値を設定しておき、アプリケーションの出力結果が当該設定値の範囲内かどうかを判定する。
なお、ソースコード共有システム10を信頼性判定システム70として機能させる場合は、デバイス200は1つのみでもよい。
(ソースコード共有システムの動作)
図2は、デバイスがソースコードを受信してからアプリケーションの動作確認を行い、ソフトウェア、ハードウェアの信頼性を判定するまでの処理を示すフローチャートである。まず、デバイスは、ソースコードを受信する(ステップS1)。次に、デバイスは、受信したソースコードを含むアプリケーションの実行を行い(ステップS2)、実行結果情報をサーバに通知する。そして、サーバは、実行結果情報を登録し(ステップS3)、ソフトウェアおよびハードウェアの信頼性を判定する(ステップS4)。
図3は、信頼性の判定をする際の手順を示すフローチャートである。まず、判定部は、実行結果情報を取得する(ステップT1)。次に、実行結果情報に含まれるハードウェアバージョンおよびソフトウェアバージョンの信頼性を取得する(ステップT2)。次に、実行結果が正常であった場合、当該ハードウェアバージョン、ソフトウェアバージョンを信頼性が高いと判定し(ステップT3)、判定結果を実行結果管理部に通知する(ステップT4)。一方、実行結果が正常でなかった場合、当該ハードウェアバージョンおよび当該ソフトウェアバージョンの信頼性が高いと確認されているか否かを判断する。いずれも信頼性が高いと確認されていなかった場合、当該ハードウェアバージョンおよびソフトウェアバージョンを信頼性が低いと判定し(ステップT5)、判定結果を実行結果管理部に通知する(ステップT4)。また、いずれか一方のみ信頼性が高いと確認されている場合、他方の信頼性が低いと判定し(ステップT6)、判定結果を実行結果管理部に通知する(ステップT4)。
また、実行結果が正常でなく、いずれも信頼性が高いと確認できている場合には、判定をしないでユーザに通知する(ステップT7)。この場合、ユーザ設定により、当該ソフトウェアバージョンおよび当該ハードウェアバージョンのどちらか一方、あるいは両方を信頼性が低いと判定し直すようにしてもよい。
例えば、一度信頼性が高いと確認できたハードウェアがすぐに故障するよりは、ソフトウェアの環境変数の埋め込み等による問題の可能性が高いという判断であれば、当該ソフトウェアバージョンのみ信頼性が低いと判定し直す。あるいは、温度が低い/高いなどの特定の環境条件により正常に動作しないという可能性が高いという判断であれば、当該ハードウェアバージョンのみ信頼性が低いと判定し直す。あるいは、原因が特定できないため、当該ハードウェアバージョン、ソフトウェアバージョンの両方を信頼性が低いと判定しなおす。
このような判定を用いると、ソースコードを複数のデバイスで共有した際、実行結果が正常でなかった場合に、ハードウェアに原因がある可能性が高いのかソフトウェアに原因がある可能性が高いのかを判断し、修正することができる。
具体的には下記のような手順が考えられる。
a) まず、デバイスID=Da、ハードウェアバージョン=Hx、ソフトウェアバージョン=S0について、当該ハードウェアバージョンおよび当該ソフトウェアバージョンの信頼性はまだ確認されていないとする。このときの実行結果がfalseであった場合(result(Da,Hx,S0)=false)、当該ハードウェアバージョンおよび当該ソフトウェアバージョンは信頼性が低いと判定して、sw(S0)=false,hw(Hx)=falseを登録する。
b) ソフトウェアS0を修正し、ソフトウェアS1とした際に、実行結果がtrueであった場合(result(Da,Hx,S1)=true)に、当該ハードウェアバージョン、ソフトウェアバージョンにおける、当該デバイスIDのソフトウェアおよびハードウェアは信頼性が高いと判定して、sw(S1)=true, hw(Hx)=trueを登録する。
c) デバイスDbがソフトウェアS1を受信し、ハードウェアバージョン=Hyにおいて、S1を実行した際、実行結果がfalseであった場合(result(Db,Hy,S1)=false)、当該ソフトウェアS1の信頼性はすでに確認されているため、sw(S1)=trueである。当該ハードウェアバージョンHyの信頼性については、実行結果がfalseであったため、信頼性が低いと判定され、hw(Hy)=falseとして登録される。
d) デバイスDbのハードウェアを修正し、ハードウェアバージョンをHzとした際に、ソフトウェアS1を実行し、実行結果がtrueであった場合(result(Db,Hz,S1)=true)、当該ハードウェアバージョンHzは信頼性が高いと判定され、hw(Hz)=trueとして登録される。
図4は、実行結果管理部に登録される情報の一例を示す表である。なお、上記判定方法は一例であり、その他の判定方法を用いてもよい。また、複数回の実行結果を用いたり、複数の過去の信頼性の情報を用いたりしてもよい。
ここで、ソフトウェアおよびハードウェアの信頼性(true,false)の他に信頼性の高さの度合いを示す信頼度という概念を導入することもできる。例えば、ソフトウェアが特定のハードウェア上でのみ動くような固有の設定値を含んでいたり、ハードウェアが特定の条件(環境(温度、湿度、など)条件、動作条件(動作速度、繰り返し間隔、など))でのみ動作するように作成されていたりする場合に、実行結果が正常であっても、ソフトウェアおよびハードウェアの信頼性が高いことを保証できない場合が存在する。
このような場合に、信頼性のように高低2値ではない信頼度を設定することで、詳細な判断が可能となる。ソフトウェアバージョンS1の信頼度Csw(S1)は、複数のハードウェアで動作させ、正常な実行結果が得られる毎に信頼度Csw(S1)を増加させ、正常な実行結果が得られなかった場合には信頼度Csw(S1)を減少させる。ハードウェアバージョンHxの信頼度Chw(Hx)は、複数のソフトウェアを動作させ、正常な実行結果が得られる毎に信頼度Chw(Hx)を増加させ、正常な実行結果が得られなかった場合には信頼度Chw(Hx)を減少させる。
信頼度の計算方法には、例えば図5のような方法が考えられる。図5は、信頼度の算出をする際の手順を示すフローチャートである。ソフトウェアの初期信頼度をC_s、ハードウェアの初期信頼度をC_hとして予め設定する。初期信頼度は0より大きく1未満の任意の数値とすることができる。例えば、C_s=C_h=0.5とする。実行結果Result(Hx,S1)を基に信頼度の更新を行う処理をする。
n>=0,m>=0の整数n,mに対して、
ソフトウェアバージョンS1をn回目に更新した際の信頼度をCsw(S1,n)、
ハードウェアバージョンHxのm回目に更新した際の信頼度をChw(Hx,m)と表す。
S1の更新回数n=0、すなわち、S1の信頼度の設定がまだ行われていなかった場合、
Csw(S1,n)=C_s (n=0)
とする(ステップU1)。
Hxの更新回数m=0、すなわち、Hxの信頼度の設定がまだ行われていなかった場合、
Chw(Hx,m)=C_h (m=0)
とする(ステップU2)。
実行結果Result(Hx,S1)が正常(=true)だった場合には、まず以下の式によりソフトウェアの信頼度を更新する(ステップU3)。
Csw(S1,n+1) = 1-(1-Csw(S1,n))(1-Chw(Hx,m))
その後、以下の式によりハードウェアの信頼度を更新する(ステップU4)。
Chw(Hx,m+1) = 1-(1-Chw(Hx,m))(1-Csw(S1,n+1))
実行結果Result(Hx,S1)が異常(=false)だった場合には、まず以下の式によりソフトウェアの信頼度を更新する(ステップU5)。
Csw(S1,n+1)=Csw(S1,n)(1-Chw(Hx,m))
その後、以下の式によりハードウェアの信頼度を更新する(ステップU6)。
Chw(Hx,m+1)=Chw(Hx,m)(1-Csw(S1,n+1))
以上の計算により、実行結果が異常であった場合に、信頼度の高いハードウェア(ソフトウェア)上で動作させていた場合、ソフトウェア(ハードウェア)に問題がある可能性が高いと判断して、信頼度が大きく低下する。一方、信頼度の低いハードウェア(ソフトウェア)上で動作させていた場合、ハードウェア(ソフトウェア)に問題がある可能性が高いと判断して、信頼度の低下率は低く抑えることができる。
また、実行結果が正常であった場合に、信頼度の高いハードウェア(ソフトウェア)上で動作させていた場合、ハードウェア/ソフトウェアともに正常である可能性が高いと判断して、信頼度は大きく上昇する。一方、信頼度の低いハードウェア(ソフトウェア)上で動作させていた場合、偶然正しく動作した可能性も高いと判断して、ソフトウェア(ハードウェア)信頼度の上昇率は低く抑えることができる。これにより、実行結果が正常でなかった場合に、信頼度を参照することで、ソフトウェア、ハードウェアのどちらに原因がありそうかを詳細に判断することができる。
前述の信頼度の更新において、特定のハードウェア(ソフトウェア)バージョンにおいて実行結果が正常であり、ソフトウェア(ハードウェア)を更新した際に実行結果が異常となり、ハードウェア(ソフトウェア)の信頼度が低下し、何度かのバージョンアップの末に原因がソフトウェア(ハードウェア)であると特定できた場合、実行結果が正常であった段階での値を基に信頼度を更新してもよい。
例えば、あるハードウェアバージョンHxにおいて、ソフトウェアバージョンS1で正常動作を確認した後(ハードウェアの信頼度=Chw(Hx,1))、ソフトウェアバージョンをS2,S3,と更新していった場合に実行結果が異常となり(ハードウェアの信頼度=Chw(Hx,3)< Chw(Hx,1))、S4に更新した際に実行結果が正常となり、Hxの異常ではなかったことが判明した場合、直前に更新された信頼度Chw(Hx,3)ではなく、実行結果が正常であった段階の信頼度Chw(Hx,1)を用いて、以下のように信頼度を更新する。
Chw(Hx,4) = 1-(1-Chw(Hx,1))(1-Csw(S4,0))
信頼度の概念を導入した際に、信頼度が設定した閾値以下になった場合に当該ソフトウェア/ハードウェアバージョンは信頼性が低いと判定する、あるいは信頼度が設定した閾値以上になった場合に当該ソフトウェア/ハードウェアバージョンは信頼性が高いと判定することにより、ソフトウェア/ハードウェアの信頼性を判定してもよい。
上記の説明では、実行結果登録部260、ハードウェアバージョン管理部210をデバイス200に備えた場合の実施形態を示したが、図6に示すように、これらをサーバ100に備えてもよい。図6は、第1の実施形態の変形例1の構成の一例を示すブロック図である。この場合、ハードウェア開発者があるデバイス200に接続されたハードウェアに変更を加えた場合、サーバ100に具備されたハードウェアバージョン管理部210に対し、デバイス200に関連付けられたハードウェアバージョンを更新する処理を行う。また、サーバ100に具備された実行結果登録部260により、実行結果を実行結果管理部110に登録する。なお、以降のブロック図では、信頼性判定装置30を図示しない。
図7は、第1の実施形態の変形例2の構成の一例を示すブロック図である。アプリケーションの出力結果を基に実行結果を自動判定する場合は、図7に示すように、デバイス200にアプリケーション出力結果送信部270を備え、サーバ100にアプリケーション出力結果受信部130を備える構成としてもよい。アプリケーション出力結果送信部270は、デバイス200で実行したアプリケーションの出力結果を、デバイスIDと関連付けてサーバ100に送信する。アプリケーション出力結果受信部130は、アプリケーション出力結果を受信し、サーバはこれを基に実行結果を判定して実行結果管理部110に当該実行結果を登録する。
このように、動作確認をしたハードウェアとソフトウェアのバージョン管理を行い、ハードウェアとソフトウェアのバージョン毎の信頼性を設定することで、ハードウェアとソフトウェアのバージョン毎の信頼性を用いてさらに信頼性を判定することができ、動作不良を起こした際の原因がハードウェアにある可能性が高いかソフトウェアにある可能性が高いか判断できる。その結果、信頼性が高いことが確認されたソフトウェアバージョンを有するソースコードを複数のデバイスで共有することができる。
[第2の実施形態]
(ソースコード共有システムの構成)
図8は、本実施形態に係るソースコード共有システム10の構成の一例を示すブロック図である。本実施形態では、ハードウェアおよびソフトウェアの信頼性に基づいて、各デバイスで編集されたソースコードを他のデバイスへ送信する権限を与えるかどうかを判断する。ソースコード共有システム10の構成は、第1の実施形態と同様である。
デバイス200は、第1の実施形態の構成に加えて、編集部280、編集権限情報取得部290、およびソースコード送信部300を備える。編集部280は、ユーザによる入力を受け付け、デバイスのアプリケーション記憶部230に記録されたソースコードを編集する。
編集権限情報取得部290は、サーバ100に対して編集権限の取得要求を送信し、サーバ100から編集権限情報を取得する。
ソースコード送信部300は、取得した編集権限情報に基づいて編集したソースコードを送信する。ソースコード送信部300は、取得した編集権限情報が編集可能であった場合には、編集が加えられたソースコードを他のデバイスにも送信する。編集不可であった場合には、編集が加えられたソースコードを他のデバイスには送信しない。
ここで、編集可能であった場合に、編集が加えられたソースコードを他のデバイスに対して送信するかどうかを選択する手段を提示して、送信するという選択が行われた際にのみ、他のデバイスに当該ソースコードを送信するようにしてもよい。また、ソースコードに編集を加える前に編集権限を取得し、デバイス内でのソースコードの編集自体の権限を管理するようにしてもよい。
サーバ100は、第1の実施形態の構成に加えて、編集権限管理部140、および編集権限情報送信部150を備える。編集権限管理部140は、ハードウェアおよびソフトウェアの信頼性に基づいて、各デバイスで編集されたソースコードを他のデバイスへ送信する権限を与えるかどうかを判断する。編集権限は、デバイスの現在時刻のハードウェアバージョンおよび編集が加えられたソースコードのソフトウェアバージョンにおいて、いずれも信頼性が高いことが確認されているデバイスに対して、編集可能という権限が与えられ、編集が加えられたソースコードの送信が許可される。それ以外のデバイスに対しては編集不可の権限が与えられ、ソースコードの送信は許可されない。編集権限管理部140で管理する編集権限は、ソースコードのハードウェア制御に関わる部分のみに限ってもよい。なお、上記の権限付与の条件は一例であり、上記の条件以外の条件により権限を付与してもよい。
編集権限情報送信部150は、デバイス200の編集権限情報取得部290から送信された編集権限の取得要求に対し、編集権限情報を送信する。
(ソースコード共有システムの動作)
図9は、デバイスがソースコードを受信してから、編集権限の設定を行うまでの処理を示すフローチャートである。ソフトウェア、ハードウェアの信頼性を判定するまでの処理は前述の通り行う(ステップV1〜V4)。その後、サーバに備えられた編集権限管理部により、当該判定結果に基づき編集権限の設定を行う(ステップV5)。編集権限は、デバイスの現在時刻のハードウェアバージョン(Hnow)およびソフトウェアバージョン(Snow)において、いずれも信頼性が高いことが確認されている(hw(Hnow)=true,sw(Snow)=true)場合、信頼性が高いことが確認されたデバイスに対して、編集可能という権限が与えられ、それ以外のデバイスに対しては編集不可の権限が与えられる。
図10は、デバイスでソースコードを編集してから、編集内容を他のデバイスへ送信するまでの処理を示すフローチャートである。デバイスD_editに備えられた編集部は、ユーザによる入力を受け付け、デバイスのアプリケーション記憶部に記憶されたソースコードを編集する。その後、デバイスD_editに備えられた編集権限情報取得部により、サーバに対して編集権限の取得要求が送信される(ステップW1)。
サーバは、デバイスD_editから送信された編集権限の取得要求を受信し(ステップW2)、設定された編集権限を参照し、デバイスD_editに与えられている編集権限情報を取得する。このとき、編集権限の取得要求に含まれるハードウェアバージョンまたはソフトウェアバージョンの少なくとも一方の信頼性が確認されていないときは、再度判定と編集権限の設定を行ってもよい。そして、デバイスD_editに当該権限情報を送信する(ステップW3)。
デバイスD_editは、サーバから送信される編集権限を取得し(ステップW4)、編集可能であった場合には、編集が加えられたソースコードを他のデバイスにも送信し(ステップW5)、終了する。編集不可であった場合には、編集が加えられたソースコードを他のデバイスには送信せず、処理を終了する。
これにより、ソースコードをデバイス間で共有する際に、編集権限を有するデバイスで編集されたソースコードと、編集権限を有さないデバイスで編集されたソースコードとの間に差を設けることができ、不安定なソースコードが紛れ込む確率を下げることができる。
上記では、編集部280、編集権限情報取得部290、ソースコード送信部300をデバイス200に備えた場合の実施形態について説明したが、図11に示すように、サーバ100にユーザ情報管理部160を備え、ソースコード受信部220、アプリケーション記憶部230、編集部280、編集権限情報取得部290、ユーザ認証部170、ソースコード送信部300を備えたソースコード編集部400を設けてもよい。この場合、ソースコード編集部400は、デバイス200およびサーバ100とネットワーク経由で接続されているとする。また、ソースコード編集部400は、サーバ100内に備えてもよいし、デバイス200およびサーバ100とネットワーク経由で接続された別の機器上に備えてもよい。
この変形例では、サーバ100に具備されたユーザ情報管理部160は、ユーザIDとユーザが動作確認に用いるデバイスのデバイスIDとを結びつけて管理する。新規のユーザIDが登録された場合、動作確認に用いるデバイスIDの入力手段を提示し、デバイスIDを入力させる。デバイスIDの入力手段の提示は、新規ユーザの登録時でもよいし、ユーザIDに紐付けられた編集権限を取得する際でもよい。
ソースコード編集部400に備えられたソースコード受信部220は、ソースコードを受信し、ソフトウェアバージョンと関連付けてアプリケーション記憶部230に記憶する。ユーザ認証部170は、ソースコードの編集を行うユーザの認証を行う。ユーザ認証は、例えばユーザIDと別途設定したパスワードを入力することで行う。
編集部280は、ユーザによる入力を受け付け、ソースコード編集部400に備えられたアプリケーション記憶部230に記録されているソースコードを編集する。編集されたソースコードには新たなソフトウェアバージョンが付与され、編集を行ったユーザのユーザIDと関連付けられ、ソースコード編集部400のアプリケーション記憶部230に記憶される。編集されたソースコードは、ユーザIDと関連付けられたデバイス200へ送信され、アプリケーションの実行、判定、および編集権限の設定が行われる。編集権限情報取得部290は、認証されたユーザIDと関連付けられたデバイスIDに付与された編集権限を取得する。
ソースコード送信部300は、取得した編集権限が、編集可能であった場合には、編集が加えられたソースコードを他のデバイスに送信する。編集不可であった場合には、編集が加えられたソースコードを他のデバイスには送信しない。
これにより、編集権限をユーザIDと関連付けて管理でき、ソースコード編集部がデバイスと異なる構成とすることができる。また、編集権限を有するユーザIDに基づいて編集されたソースコードを複数のデバイスで共有することができる。
[第3の実施形態]
(ソースコード共有システムの構成)
図12は、本実施形態に係るソースコード共有システム10の構成の一例を示すブロック図である。全ての開発者が、信頼性の高いハードウェアを所有できるとは限らない。また、編集されたソースコードの確認をできないデバイスもある。そのため、本実施形態では、信頼性の高いハードウェアを持つ開発者に対して、ソースコードの編集内容と、動作確認要求を送信し、動作確認を行うことで、信頼性の高いハードウェアを持たない開発者がソースコードを共有することができるようにする。本実施形態に係るソースコード共有システム10は、信頼性が確認できていないハードウェアを持つ第1のデバイス201、信頼性が高いことが確認できているハードウェアを持つ第2のデバイス202、およびサーバ100により構成されている。
第1のデバイスは、編集権限情報取得部290、動作確認要求判定部310、動作確認デバイス検索部320、動作確認要求送信部330、および動作確認受信部340から構成されている。動作確認要求判定部310は、動作確認を実施するかどうかを判定する。判定方法は、毎回動作確認要求を行うこととしてもよいし、動作確認を行うかどうかを選択する選択手段を提示し、動作確認を行うという選択が行われた場合にのみ、動作確認要求を行うこととしてもよい。
動作確認デバイス検索部320は、動作確認要求を行うと判定された場合、信頼性が高いことが確認されているハードウェアを持つ第2のデバイス202をサーバ100に問い合わせる。当該第2のデバイス202は、第1のデバイス201が編集を加える前のソースコードのソフトウェアバージョンについて、実行結果が正常であるハードウェアバージョンを、当該デバイス検索問い合わせを実施した時刻においても備えているデバイスとする。
条件を満たす第2のデバイス202が複数みつかった場合は、以下のような方法でデバイスを選定し、送信する。(1)ランダムで一つのデバイスを選定する。(2)一つのデバイスを選択するための選択手段を提示し、選択されたデバイスを選定する。(3)前述の信頼度の概念が導入されていた場合、信頼度の最も高いハードウェアバージョンを持つデバイスを選定する。なお、第2のデバイスの選定は、サーバ100が行ってもよいし、第1のデバイス201が行ってもよい。
動作確認要求送信部330は、サーバ100から通知された第2のデバイス202に対して、編集されたソースコードと動作確認要求を送信する。
第2のデバイス202は、第1の実施形態と同様の構成に加えて、動作確認要求受信部350、判定結果受信部360、および動作確認結果送信部370を備える。動作確認要求受信部350は、第1のデバイス201の動作確認要求送信部330から送信された、編集されたソースコードと動作確認要求を受信する。
判定結果受信部360は、編集されたソースコードに基づいた実行結果に対する、サーバ100の判定結果を受信する。動作確認結果送信部370は、第1のデバイス201に対し、受信した判定結果を送信する。なお、判定結果は、サーバ100から第1のデバイス201に対し直接送信してもよい。
サーバ100は、第1の実施形態と同様の構成に加えて、動作確認デバイス応答部180を備える。動作確認デバイス応答部180は、第1のデバイス201の動作確認デバイス検索部320からの問い合わせに応じて、条件を満たす第2のデバイス202を検索し、検索結果を第1のデバイス201に対して応答する。
(ソースコード共有システムの動作)
図13は、動作確認処理を含む、ソースコード共有までの処理を示すフローチャートである。編集権限の取得までは、前述の通り処理を行う(ステップX1〜X4)。編集権限の取得の結果、編集不可であった場合には、第1のデバイスは、第2のデバイスへ動作確認要求を送信するかどうかを判定する。動作確認要求を行うと判定された場合、第1のデバイスは、動作確認処理をする(ステップX5)。動作確認処理の詳細は後述する。動作確認が成功した場合、第1のデバイスは、他のデバイスにソースコードの送信をし(ステップX6)、終了する。また、動作確認要求を行わないと判定された場合、および、動作確認が成功しなかった場合、そのまま終了する。
図14は、動作確認を行う場合の検索要求から動作確認の受信までの処理を示すフローチャートである。まず、第1のデバイスは、信頼性が確認できているハードウェアを持つ第2のデバイスの検索要求をサーバに送信する(ステップY1)。次に、サーバは、第2のデバイスの検索要求を受信し(ステップY2)、条件を満たす第2のデバイスを検索し、検索結果を第1のデバイスに対して応答する(ステップY3)。
そして、第1のデバイスは、サーバの応答を受信し(ステップY4)、条件を満たす第2のデバイスが存在しない場合、そこで処理を終了する。また、条件を満たす第2のデバイスが存在する場合、第1のデバイスは、第2のデバイスに対して、編集されたソースコード(ソフトウェアバージョンS1’)と動作確認要求を送信する(ステップY5)。
第2のデバイスは、編集されたソースコードと動作確認要求を受信し(ステップY6)、受信したソースコードS1’を実行する(ステップY7)。そして、実行結果情報をサーバに登録する(ステップY8)。サーバは登録された実行結果情報に基づいてソフトウェアの信頼性を判定する(ステップY9)。第2のデバイスは、サーバの判定結果を受信し(ステップY10)、第1のデバイスに対し、動作確認結果を送信する(ステップY11)。動作確認結果は、ソフトウェアの信頼性(sw(S1’)(=true/falseのブーリアン値))である。
第1のデバイスは、動作確認結果を受信する(ステップY12)。動作確認が成功であった場合は、前述の方法と同様、他のデバイスに対してソースコードの送信を行う。動作確認が失敗であった場合は、そのまま処理を終了する。
これにより、ハードウェアの動作確認がとれていない第1のデバイス上で編集したソースコードを共有する際、ハードウェアの動作確認がとれている第2のデバイスに動作確認を要求し、当該第2のデバイスで動作確認がとれた場合にソースコードの共有を許可することで、不安定なソースコードが紛れ込む確率を下げることができる。
[第4の実施形態]
(ソースコード共有システムの構成)
図15は、本実施形態に係るソースコード共有システム10の構成の一例を示すブロック図である。ハードウェアおよびソフトウェアのいずれも信頼性が高いことが確認されていない場合は、いずれかを修正したとしても、どちらに問題が生じているか判断できない場合がある。本実施形態では、編集不可であって、ハードウェアとソフトウェアのいずれに問題が生じているか判断できない場合に、ハードウェアの信頼性が高いことを確認して、ハードウェアに問題が生じている可能性が低いことを判断できるようにするため、テストコードの提供を要求して検証する機能を備える。ソースコード共有システム10の構成は、第2の実施形態と同様である。
デバイス200は、第2の実施形態の構成に加えて、テストコード要求部380を備える。テストコード要求部380は、サーバ100のテストコード送信部190にテストコードを要求する。
サーバ100は、第2の実施形態の構成に加えて、テストコード送信部190を備える。テストコード送信部190は、デバイス200のテストコード要求部380のテストコード要求を受信し、サーバ100の保有する信頼性が高いことが確認されたソースコードから適切なものをテストコードとして送信する。ソースコードからテストコードを選択する基準は様々考えられるが、例えば、次のようにする。すなわち、編集を加える前のソースコードのソフトウェアバージョンの信頼性が高いと登録された際の実行結果が示すハードウェアバージョンについて、同一のハードウェアバージョンであるデバイスの信頼性が高いことを確認したソフトウェアの中で最も古いソフトウェアバージョンのソースコードをテストコードとして送信する。
また、編集を加える前のソースコードのソフトウェアバージョンの信頼性が高いと登録された際の実行結果が示すハードウェアバージョンについて、同一のハードウェアバージョンであるデバイスの信頼性が高いことを確認したソフトウェアの中で最も新しいソフトウェアバージョンのソースコードをテストコードとして提供してもよい。
テストコードとして、最も古いコードを提供する場合は、最も古いコードが当該ハードウェアを動作させる必要最低限の機能を持ったコードであり、挙動が単純でテストコードに適するという考えに基づく。また、最も新しいコードを提供する場合は、最も新しいコードが当該ハードウェアを動作させるために必要なエラー処理が十分に記述され、エラーが発生しにくくテストコードに適するという考えに基づく。
(ソースコード共有システムの動作)
図16は、テストコード要求処理を含む、ソースコード共有までの処理を示すフローチャートである。編集権限の取得までは、前述の通り処理を行う(ステップZ1〜Z4)。編集権限の取得の結果、編集不可であった場合には、デバイスは、サーバにテストコードを要求する(ステップZ5)。サーバは、サーバの保有するソースコードから適切なものをテストコードとして送信する(ステップZ6)。
次に、デバイスは、テストコードを受信する(ステップZ7)。そして、受信したソースコードを含むアプリケーションを実行し、ハードウェアの信頼性の確認をする(ステップZ8)。なお、図16のフローチャートは、信頼性の確認の処理の詳細は省略した。ハードウェアの信頼性の確認の結果、信頼性が高いことが確認された場合は、編集されたソースコード(ソフトウェア)に問題がある可能性が高いことが分かる。このときは、再度、ソースコードの編集(修正)をして、編集権限の取得要求をすればよい。また、信頼性が高いことが確認されなかった場合は、ハードウェアに問題がある可能性が高いことが分かるため、編集されたソースコードを送信しないで終了する。
図17はソフトウェアおよびハードウェアのバージョン進化の例を示す樹形図である。図17において、最も古いソフトウェアバージョンのソースコードをテストコードとして選択する場合を例に説明する。
a) 例えばソフトウェアバージョンS004、ハードウェアバージョンH001で信頼性が高い(result(S004,H001)=true)と確認されていた場合に、信頼性が高いと確認できていないハードウェアバージョンH001’を持つ新たなデバイス上でS004から派生されたソフトウェアS004’を共有しようとした場合を考える。この場合、S004の信頼性が高いと確認できたハードウェア(=H001)によって、信頼性が高いことが確認されたソフトウェアの中で最も古いソフトウェア(=S001)をテストコードとして提供する。そして、テストコードであるソフトウェアバージョンS001、ハードウェアバージョンH001’で信頼性が高い(result(S001,H001’)=true)と確認された場合には、ハードウェアバージョンH001’の信頼性が高いと判定される。
b) また、例えばソフトウェアバージョンS102、ハードウェアバージョンH002で信頼性が高い(result(S102,H002)=true)と確認されていた場合に、信頼性が確認できていないハードウェアバージョンH002’を持つ新たなデバイス上でS102から派生されたソフトウェアS102’を共有しようとした場合を考える。この場合、S102の信頼性が高いと確認できたハードウェア(=H002)によって、信頼性が高いことが確認されたソフトウェアの中で最も古いソフトウェア(=S101)をテストコードとして提供する。その後の処理は、上述a)と同様である
また、図17において、最も新しいソフトウェアバージョンのソースコードをテストコードとして選択する場合は、a)の場合にはS004をテストコードとして提供し、b)の場合には、S102をテストコードとして提供する。なお、図17において、H001とH001’およびH002とH002’はそれぞれ同じデバイスIDを有するとし、H001とH002は異なるデバイスIDを有するとする。
これにより、編集不可であり、ハードウェアまたはソフトウェアのいずれも信頼性が高いことが確認されていない場合でも、テストコードを用いてハードウェアの信頼性が高いことを確認でき、ハードウェアに問題が生じている可能性が低いことを判断できる。
10 ソースコード共有システム
30 信頼性判定装置
50 信頼性判定システム
100 サーバ
110 実行結果管理部
120 判定部
130 アプリケーション出力結果受信部
140 編集権限管理部
150 編集権限情報送信部
160 ユーザ情報管理部
170 ユーザ認証部
180 動作確認デバイス応答部
190 テストコード送信部
200 デバイス
201 第1のデバイス
202 第2のデバイス
210 ハードウェアバージョン管理部
220 ソースコード受信部
230 アプリケーション記憶部
240 アプリケーション実行部
250 ハードウェア制御部
260 実行結果登録部
270 アプリケーション出力結果送信部
280 編集部
290 編集権限情報取得部
300 ソースコード送信部
310 動作確認要求判定部
320 動作確認デバイス検索部
330 動作確認要求送信部
340 動作確認受信部
350 動作確認要求受信部
360 判定結果受信部
370 動作確認結果送信部
380 テストコード要求部
400 ソースコード編集部

Claims (15)

  1. ソースコードをデバイス間で共有するためにハードウェアおよびソフトウェアの信頼性を判定する信頼性判定装置であって、
    前記デバイスでソースコードを含むアプリケーションが実行され、その実行動作が正常であったか異常であったかを示す実行結果を取得し、前記実行結果と前記ハードウェアバージョンおよび前記ソフトウェアバージョンとを含む実行結果情報と、ハードウェアバージョンおよびソフトウェアバージョン毎の判定結果とを記録する実行結果管理部と、
    前記実行結果情報、並びに前記実行結果情報に含まれるハードウェアバージョンと同一のハードウェアバージョンの判定結果またはソフトウェアバージョンと同一のソフトウェアバージョンの判定結果に基づき、デバイスのハードウェアおよびソフトウェアの信頼性をそれぞれ判定する判定部と、を備える、ことを特徴とする信頼性判定装置。
  2. 前記判定部は、
    前記実行結果が正常であった場合、前記実行結果情報に含まれる前記ハードウェアバージョンおよび前記ソフトウェアバージョンを信頼性が高いと判定し、
    前記実行結果が異常であった場合に、
    前記ハードウェアバージョンおよび前記ソフトウェアバージョンのいずれも信頼性が高いと判定されていない場合は、前記ハードウェアバージョンおよび前記ソフトウェアバージョンを信頼性が低いと判定し、
    前記ハードウェアバージョンは信頼性が高いと判定されておらず、前記ソフトウェアバージョンは信頼性が高いと判定されていた場合は、前記ハードウェアバージョンのみ信頼性が低いと判定し、
    前記ハードウェアバージョンは信頼性が高いと判定されており、前記ソフトウェアバージョンは信頼性が高いと判定されていない場合は、前記ソフトウェアバージョンのみ信頼性が低いと判定し、
    前記ハードウェアバージョンおよび前記ソフトウェアバージョンのいずれも信頼性が高いと判定されている場合は、ユーザ設定により前記ソフトウェアバージョンおよび前記ハードウェアバージョンの信頼性を判定しなおす、ことを特徴とする請求項1記載の信頼性判定装置。
  3. 前記判定部は、ソフトウェアバージョンおよびハードウェアバージョンの信頼性の高さの度合いを示す信頼度を算出する、ことを特徴とする請求項1記載の信頼性判定装置。
  4. 前記判定部の判定結果に基づいてデバイスのハードウェアバージョン毎にソースコード編集権限を設定する、編集権限管理部と、をさらに備えることを特徴とする請求項1記載の信頼性判定装置。
  5. デバイスとサーバによって構成され、ソースコードをデバイス間で共有するためにハードウェアおよびソフトウェアの信頼性を判定する信頼性判定システムであって、
    前記サーバは、
    請求項1記載の信頼性判定装置、を備え、
    前記デバイスは、
    前記デバイスに接続されたハードウェアのバージョンを記録するハードウェアバージョン管理部と、
    ソースコードおよび前記ソースコードに関連付けられたソフトウェアバージョンを受信するソースコード受信部と、
    前記受信したソースコードおよびソフトウェアバージョンを関連付けて記録するアプリケーション記憶部と、
    前記アプリケーション記憶部に記録されたソースコードを実行するアプリケーション実行部と、
    前記アプリケーション実行部に従い前記デバイスに接続されたハードウェアを制御するハードウェア制御部と、
    前記アプリケーションが実行された実行動作が正常であったか異常であったかを示す実行結果を判定または取得し、前記実行結果と前記ハードウェアバージョンおよび前記ソフトウェアバージョンとを含む実行結果情報を、信頼性判定装置の実行結果管理部に通知する実行結果登録部と、を備えることを特徴とする信頼性判定システム。
  6. 前記ハードウェアバージョン管理部は、
    ハードウェアが未変更であるか変更済みであるかを選択する選択手段を備え、
    変更済みが選択された場合に前記ハードウェアバージョンを更新する、ことを特徴とする請求項5記載の信頼性判定システム。
  7. 前記ハードウェアバージョン管理部は、
    前記デバイスに接続されたハードウェアリストを検出する検出手段を備え、
    前記ハードウェアリストに変化があった場合に、前記ハードウェアバージョンを更新する、ことを特徴とする請求項5に記載の信頼性判定システム。
  8. 前記実行結果登録部は、
    アプリケーション実行部が実行するアプリケーションのソフトウェアおよびハードウェアの動作が正常か異常を選択させる選択手段を備え、
    当該選択手段による選択結果を実行結果として登録する、ことを特徴とする請求項5に記載の信頼性判定システム。
  9. 前記実行結果登録部は、
    アプリケーションが正常動作した場合の出力結果の範囲を示す設定値を保持し、
    アプリケーションの出力結果が前記設定値の範囲内か範囲外かを確認し、
    前記設定値の範囲内であった場合に実行結果を正常として登録し、
    前記設定値の範囲外であった場合に実行結果を異常として登録する、ことを特徴とする請求項5記載の信頼性判定システム。
  10. 少なくとも2つのデバイスと、サーバによって構成され、ソースコードをデバイス間で共有するソースコード共有システムであって、
    前記サーバは、
    請求項1記載の信頼性判定装置を備え、
    前記デバイスは、
    前記デバイスに接続されたハードウェアのバージョンを記録するハードウェアバージョン管理部と、
    ソースコードおよび前記ソースコードに関連付けられたソフトウェアバージョンを受信するソースコード受信部と、
    前記受信したソースコードおよびソフトウェアバージョンを関連付けて記録するアプリケーション記憶部と、
    前記アプリケーション記憶部に記録されたソースコードを実行するアプリケーション実行部と、
    前記アプリケーション実行部に従い前記デバイスに接続されたハードウェアを制御するハードウェア制御部と、
    前記アプリケーションが実行された実行動作が正常であったか異常であったかを示す実行結果を判定または取得し、前記実行結果と前記ハードウェアバージョンおよび前記ソフトウェアバージョンとを含む実行結果情報を、信頼性判定装置の実行結果管理部に通知する実行結果登録部と、を備え、
    信頼性が高いことが確認されたソフトウェアバージョンを有するソースコードを複数のデバイスで共有する、ことを特徴とするソースコード共有システム。
  11. 少なくとも2つのデバイスと、サーバによって構成され、ソースコードをデバイス間で共有するソースコード共有システムであって、
    前記サーバは、
    請求項4記載の信頼性判定装置と、
    前記編集権限情報を送信する編集権限情報送信部と、を備え、
    前記デバイスは、
    前記デバイスに接続されたハードウェアのバージョンを記録するハードウェアバージョン管理部と、
    ソースコードおよび前記ソースコードに関連付けられたソフトウェアバージョンを受信するソースコード受信部と、
    前記受信したソースコードおよびソフトウェアバージョンを関連付けて記録するアプリケーション記憶部と、
    前記アプリケーション記憶部に記録されたソースコードを実行するアプリケーション実行部と、
    前記アプリケーション実行部に従い前記デバイスに接続されたハードウェアを制御するハードウェア制御部と、
    前記アプリケーションが実行された実行動作が正常であったか異常であったかを示す実行結果を判定または取得し、前記実行結果と前記ハードウェアバージョンおよび前記ソフトウェアバージョンとを含む実行結果情報を、信頼性判定装置の実行結果管理部に通知する実行結果登録部と、
    ユーザによる入力を受け付け、前記アプリケーション記憶部に記録されたソースコードを編集する編集部と、
    前記サーバから編集権限情報を取得する編集権限情報取得部と、
    前記取得した編集権限情報に基づいて編集したソースコードを送信するソースコード送信部と、を備え、
    信頼性が高いことが確認されたソフトウェアバージョンを有するソースコードを複数のデバイスで共有することを特徴とするソースコード共有システム。
  12. 少なくとも2つのデバイスと、サーバと、ソースコード編集部によって構成され、ソースコードをデバイス間で共有するソースコード共有システムであって、
    前記サーバは、
    請求項4記載の信頼性判定装置と、
    前記編集権限情報を送信する編集権限情報送信部と、
    ユーザ固有のユーザIDとデバイス固有のデバイスIDとを関連付けて記録するユーザ情報管理部と、を備え、
    前記ソースコード編集部は、
    ソースコードおよび前記ソースコードに関連付けられたソフトウェアバージョンを受信する第1のソースコード受信部と、
    前記受信したソースコードおよびソフトウェアバージョンを関連付けて記録する第1のアプリケーション記憶部と、
    前記ソースコードを編集する前記ユーザIDの認証を行うユーザ認証部と、
    前記認証されたユーザIDに基づいて編集されたソースコードに新規のソフトウェアバージョンを付与し、前記ユーザIDと関連付けて前記第1のアプリケーション記憶部に記録する編集部と、
    前記認証されたユーザIDに関連付けられた前記デバイスIDに付与された編集権限を取得する編集権限情報取得部と、
    前記取得した編集権限情報に基づいて、前記ユーザIDと関連付けられた前記デバイスおよびその他のデバイスに編集されたソースコードを送信するソースコード送信部と、を備え、
    前記デバイスは、
    前記デバイスに接続されたハードウェアのバージョンを記録するハードウェアバージョン管理部と、
    前記ソースコード送信部から送信されたソースコードおよび前記ソースコードに関連付けられたソフトウェアバージョンを受信する第2のソースコード受信部と、
    前記受信したソースコードおよびソフトウェアバージョンを関連付けて記録する第2のアプリケーション記憶部と、
    前記アプリケーション記憶部に記録されたソースコードを実行するアプリケーション実行部と、
    前記アプリケーション実行部に従い前記デバイスに接続されたハードウェアを制御するハードウェア制御部と、
    前記アプリケーションが実行された実行動作が正常であったか異常であったかを示す実行結果を判定または取得し、前記実行結果と前記ハードウェアバージョンおよび前記ソフトウェアバージョンとを含む実行結果情報を、信頼性判定装置の実行結果管理部に通知する実行結果登録部と、を備え、
    信頼性が高いことが確認されたソフトウェアバージョンを有するソースコードを複数のデバイスで共有することを特徴とするソースコード共有システム。
  13. 第1のデバイスは、信頼性が高いと確認されていないハードウェアバージョンを有し、
    信頼性が高いと確認されているハードウェアバージョンを有する第2のデバイスの検索を前記サーバに要求する動作確認デバイス検索部と、
    前記サーバから応答された第2のデバイスに対しソースコードを含む動作確認要求を送信する動作確認要求送信部と、をさらに備え、
    前記第2のデバイスは、
    前記第1のデバイスから送信される動作確認要求を受信する動作確認要求受信部と、
    動作確認結果を前記第1のデバイスに送信する動作確認結果送信部と、をさらに備え、
    前記サーバは、
    前記第1のデバイスからの要求に基づき、信頼性が高いと確認されているハードウェアバージョンを有する第2のデバイスを応答する動作確認デバイス応答部と、をさらに備え、
    前記判定部は、前記第2のデバイスから送信された前記動作確認結果に基づいて、前記第1のデバイスから送信されたソースコードのソフトウェアバージョンの信頼性を判定する、ことを特徴とする請求項11または12に記載のソースコード共有システム。
  14. 前記サーバは、ソフトウェアバージョンおよびハードウェアバージョンの信頼性の高さの度合いを示す信頼度を算出し、
    前記動作確認デバイス検索部は、ハードウェアバージョンの信頼度に基づいて前記第2のデバイスを選出する、ことを特徴とする請求項13記載のソースコード共有システム。
  15. 前記デバイスは、
    前記サーバに信頼性が高いと確認されたソースコードをテストコードとして要求するテストコード要求部をさらに備え、
    前記サーバは、前記デバイスのテストコードの要求に対して、前記デバイスのハードウェアバージョンに応じてテストコードを送信し、テストコードの実行結果が正常であるときは、前記デバイスのハードウェアバージョンの信頼性が高いと判定する、ことを特徴とする請求項11記載のソースコード共有システム。
JP2017069087A 2017-03-30 2017-03-30 信頼性判定装置、信頼性判定システムおよびソースコード共有システム Active JP6660911B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017069087A JP6660911B2 (ja) 2017-03-30 2017-03-30 信頼性判定装置、信頼性判定システムおよびソースコード共有システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017069087A JP6660911B2 (ja) 2017-03-30 2017-03-30 信頼性判定装置、信頼性判定システムおよびソースコード共有システム

Publications (2)

Publication Number Publication Date
JP2018169969A JP2018169969A (ja) 2018-11-01
JP6660911B2 true JP6660911B2 (ja) 2020-03-11

Family

ID=64018019

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017069087A Active JP6660911B2 (ja) 2017-03-30 2017-03-30 信頼性判定装置、信頼性判定システムおよびソースコード共有システム

Country Status (1)

Country Link
JP (1) JP6660911B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109946536A (zh) * 2019-01-17 2019-06-28 北京航空航天大学 一种基于opc技术的可靠性综合试验系统
CN109918126A (zh) * 2019-01-28 2019-06-21 平安普惠企业管理有限公司 代码编辑的方法、装置、计算机设备和存储介质

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4834970B2 (ja) * 2004-09-13 2011-12-14 富士ゼロックス株式会社 情報処理装置及びこれを用いた情報処理システム
JP4727278B2 (ja) * 2005-04-05 2011-07-20 株式会社エヌ・ティ・ティ・ドコモ アプリケーションプログラム検証システム、アプリケーションプログラム検証方法およびコンピュータプログラム
JP2007199947A (ja) * 2006-01-25 2007-08-09 Hitachi Ltd インストール支援方法、インストール支援システム、及びプログラム
JP5368878B2 (ja) * 2009-05-25 2013-12-18 キヤノン株式会社 情報処理装置、製造装置及びデバイス製造方法
US20130198370A1 (en) * 2010-05-14 2013-08-01 Hitachi, Ltd. Method for visualizing server reliability, computer system, and management server
JP6257373B2 (ja) * 2014-02-24 2018-01-10 三菱電機株式会社 障害抽出支援装置

Also Published As

Publication number Publication date
JP2018169969A (ja) 2018-11-01

Similar Documents

Publication Publication Date Title
RU2628203C2 (ru) Лицензирование приложения с использованием поставщиков синхронизации
JP5256097B2 (ja) ログイン処理装置、ログイン処理方法及びプログラム
CN113806657B (zh) 基于微前端架构的页面加载方法、系统、设备及存储介质
JP6406336B2 (ja) センサ開通テストシステム、センサ開通テスト管理端末、センサ、センサ開通テスト方法及びプログラム
WO2008050512A1 (fr) Dispositif, procédé et programme de commande de démarrage
US20190312955A1 (en) Digital rights list for device groups
AU2019201237A1 (en) Updating software packets in water installation controlling apparatus
JP6660911B2 (ja) 信頼性判定装置、信頼性判定システムおよびソースコード共有システム
JP2012069088A (ja) 医用情報処理装置及びソフトウェア配信システム
JP7068912B2 (ja) 情報処理装置、機器、不具合解析システム、不具合解析方法およびプログラム
AU2014276026B2 (en) Information processing device, information processing method, and program
JP2009217395A (ja) 仮想サーバソフトウェア更新システム、仮想サーバソフトウェア更新方法、サーバ、及びサーバ用プログラム
JP7411960B2 (ja) 制御装置、制御システム、制御方法、および、プログラム
JP2007026391A (ja) 運用管理ルール流用装置、運用管理ルール流用方法およびプログラム
JP2008225878A (ja) 配布システム、配布サーバ、配布方法およびプログラム
JP5168348B2 (ja) 制御装置および制御プログラム
CN111522560A (zh) 软件安装方法、装置、存储介质及电子设备
JP2010128776A (ja) 携帯端末自動メンテナンス装置および携帯端末自動メンテナンス方法
JP2020087018A (ja) 機能管理システム、情報処理装置およびプログラム
JP4643491B2 (ja) ゲートウェイ管理方法
JP5676417B2 (ja) コンピュータプログラム管理装置、コンピュータプログラム管理方法、及びコンピュータプログラムを管理するコンピュータプログラム
JP5975910B2 (ja) データ処理装置、データ処理方法、データ処理プログラムおよび連携業務システム
JP4724491B2 (ja) 資源配布管理プログラム、資源配布管理方法および資源配布管理装置
CN114510282A (zh) 一种自动化应用的运行方法、装置、设备以及存储介质
JP4910456B2 (ja) 更新情報管理方法および更新情報管理サーバ

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190311

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200120

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: 20200128

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200210

R150 Certificate of patent or registration of utility model

Ref document number: 6660911

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150