JP6852337B2 - 情報処理装置、情報処理プログラム、情報処理システム及び情報処理方法 - Google Patents

情報処理装置、情報処理プログラム、情報処理システム及び情報処理方法 Download PDF

Info

Publication number
JP6852337B2
JP6852337B2 JP2016191968A JP2016191968A JP6852337B2 JP 6852337 B2 JP6852337 B2 JP 6852337B2 JP 2016191968 A JP2016191968 A JP 2016191968A JP 2016191968 A JP2016191968 A JP 2016191968A JP 6852337 B2 JP6852337 B2 JP 6852337B2
Authority
JP
Japan
Prior art keywords
data
input field
input
reliability
descriptor
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
JP2016191968A
Other languages
English (en)
Other versions
JP2018054503A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2016191968A priority Critical patent/JP6852337B2/ja
Priority to US15/684,107 priority patent/US10872159B2/en
Publication of JP2018054503A publication Critical patent/JP2018054503A/ja
Application granted granted Critical
Publication of JP6852337B2 publication Critical patent/JP6852337B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/031Protect user input by software means

Description

本発明は、情報処理装置、情報処理プログラム、情報処理システム及び情報処理方法に関する。
近年では、工場や医療の現場で使用する機器のデジタル化により、各種の機器により測定された測定値を帳票に反映させる、データ入力の自動化技術が知られている。
また、従来では、入力された測定値の改竄を防止するための工夫が成されている。具体的には、例えば、測定値を帳票に入力した際の位置情報と日時情報を帳票に自動的に記述することで、別の場所、別の日時において帳票の不正な編集を抑制することが知られている。
特開2004−085239号公報 特開2009−151610号公報 特開2002−267576号公報
データ入力の自動化において、入力されたデータの編集を禁止した場合、例えば操作ミス等により誤ったデータが入力された際に不便な場合がある。しかしながら、入力されたデータの編集を可能とすると、データの改竄の検証が困難となる可能性がある。
開示の技術は、改竄の有無を検証することができる情報処理装置、情報処理プログラム、情報処理システム及び情報処理方法を提供することを目的としている。
開示の技術は、帳票画面の入力欄の属性として記述された機器情報に基づいて機器を発見し、前記機器と対応する機器制御モジュールを、前記帳票画面を表示させる帳票プログラムに動的に組み込む機器制御組込部と、前記機器から取得したデータを、前記入力欄を特定する入力欄記述子と対応付けて、データの編集が可能な記憶領域へ格納するデータ取得部と、前記機器から取得したデータを、前記入力欄記述子と対応付けてデータの編集が禁止された保護記憶領域へ格納する情報出力部と、前記記憶領域に格納されたデータと、前記保護記憶領域に格納されたデータとを比較する比較部と、入力欄記述子と、前記入力欄記述子と対応する入力欄に入力されたデータとを取得し、前記入力されたデータの信頼度を算出する信頼度算出部と、を有し、前記信頼度算出部は、前記機器のハードウェアに関する信頼度を示すハードウェア種別情報と、前記機器制御モジュールに関する信頼度を示すソフトウェア種別情報と、前記機器の利用者に関する信頼度を示すユーザ種別情報と、に基づき、前記データの信頼度を算出し、前記保護記憶領域において、前記入力欄記述子と一致する入力欄記述子に、前記信頼度とを対応付けて格納する情報処理装置である。
上記各部は、上記各部を手順、上記各部を実現する処理としてコンピュータにより実行させる方法、プログラムを記憶したコンピュータ読み取り可能な記憶媒体とすることもできる。
改竄の有無を検証することができる。
第一の実施形態の概要について説明する図である。 第一の実施形態の帳票システムのシステム構成を説明する図である。 第一の実施形態の機器情報データベースを説明する図である。 ドライバデータベースの一例を説明する図である。 第一の実施形態の端末装置のハードウェア構成の一例を示す図である。 第一の実施形態の端末装置の機能を説明する図である。 第一の実施形態の保護情報を示す記述の一例を示す図である。 第一の実施形態の保護情報記憶部の一例を示す図である。 帳票生成部の機能を説明する図である。 第一の実施形態の端末装置の動作を説明する第一のシーケンス図である。 第一の実施形態の端末装置の動作を説明する第二のシーケンス図である。 第一の実施形態の端末装置の動作を説明する第二のシーケンス図である。 記述子抽出部、機器情報取得部、機器発見部、機器制御組込部の処理を説明するフローチャートである。 機器入力用ドライバの動作を説明するフローチャートである。 手入力用ドライバの動作を説明するフローチャートである。 保護情報出力部の処理を説明するフローチャートである。 データ取得部の処理を説明するフローチャートである。 信頼度算出部の処理を説明するフローチャートである。 保護領域生成部の処理を説明するフローチャートである。 帳票生成部の処理を説明するフローチャートである。 第一の実施形態の帳票プログラムにおけるデータの入力に関する記述を説明する図である。 第一の実施形態の帳票プログラムにおけるデータの出力に関する記述を説明する図である。 第一の実施形態の閲覧画面が表示された例を示す第一の図である。 第一の実施形態の閲覧画面が表示された例を示す第二の図である。 第二の実施形態の端末装置の機能を説明する図である。 第二の実施形態の閲覧画面が表示された例を示す第一の図である。 第二の実施形態の閲覧画面が表示された例を示す第二の図である。 第二の実施形態の保護情報を説明する図である。 第二の実施形態の保護情報記憶部の一例を示す図である。 第三の実施形態の端末装置の機能を説明する図である。
(第一の実施形態)
以下に図面を参照して第一の実施形態について説明する。図1は、第一の実施形態の概要について説明する図である。
本実施形態の端末装置100は、入力されたデータを2つの記憶領域に同時に記録するようにし、編集された後でもそれが適切なものであったかどうかを後から検証できるようにする。2つの記憶領域とは、記録されたデータの編集が可能な記憶領域と、記憶されたデータの編集が禁止された記憶領域である。
本実施形態の端末装置100は、端末装置100にインストールされた帳票プログラムにより、上述の処理を実現する。
図1の例では、端末装置100に帳票型の入力画面101が表示されており、入力画面101は、利用機器200で測定されたデータが入力される入力欄102を含んでいる。また、図1の例では、利用機器200を体重計である。
したがって、入力画面101では、入力欄102に、利用機器200で測定された体重がデータとして入力される。
ここで、本実施形態では、入力欄102に利用機器200で測定されたデータが入力されると、このデータを入力データ記憶部300と、保護情報記憶部400のそれぞれに記憶する。
より具体的には、端末装置100は、入力画面101を定義する画面定義情報において、入力されたデータを保護対象とする保護指定子が記述されていた場合に、入力欄102に入力されたデータを入力データ記憶部300及び保護情報記憶部400に記憶する。
入力データ記憶部300は、格納されたデータの編集が可能な記憶領域であり、保護情報記憶部400は、格納されたデータの編集が不可能な記憶領域である。
入力データ記憶部300には、少なくとも、入力欄102を特定する入力欄記述子と、入力されたデータとが入力データとして格納される。また、保護情報記憶部400には、少なくとも、入力欄102を特定する入力欄記述子と、入力されたデータと、このデータの信頼度とが保護情報として格納される。
本実施形態では、以上のように、入力されたデータを、格納後のデータが編集可能な入力データ記憶部300と、格納後のデータの編集が不可能な保護情報記憶部400の両方に格納する。したがって、本実施形態では、各記憶部に格納されたデータを比較することで、データの格納後の改竄の有無を検証することができる。
尚、図1では、利用機器200を体重計とした例を示しているが、利用機器はこれに限定されない。
また、本実施形態では、利用機器200により測定されたデータを、利用機器200から自動的に入力欄102へ入力させることができる。
本実施形態の端末装置100では、帳票プログラムは、利用機器200を特定する機器記述子を含んでいる。
本実施形態の端末装置100は、この機器記述子から得られる利用機器200の機器情報に基づき利用機器200の存在を検出し、利用機器200の機器制御モジュールを取得して組み込み、利用機器200からデータが自動的に入力されるようにした。
端末装置100は、利用機器200と対応する機器入力用ドライバを組み込むと、予め定義された画面定義にしたがって、利用機器200から取得したデータが入力される入力画面101をディスプレイ103に表示させる。次に、端末装置100は、利用機器200において、体重が測定されると、利用機器200が測定した体重(データ)を入力欄102に自動的に入力させる。よって、本実施形態では、利用機器200からのデータの動的入力を容易にする。
端末装置100は、入力欄102に自動的に入力されたデータを、機器記述子と、入力欄記述子と、対応付けて、入力データ記憶部300へ格納する。また、端末装置100は、入力欄102に自動的に入力されたデータを、機器記述子と、入力欄記述子と、データの信頼度と対応付けて、保護情報記憶部400へ格納する。
尚、本実施形態の機器制御モジュールは、利用機器を作動させるために必要となるソフトウェアであり、機器入力用ドライバを意味する。以下の説明では、機器制御モジュールを機器入力用ドライバと呼ぶ。
また、本実施形態では、端末装置100に対して、利用機器200で測定されたデータを利用者が手入力することもできる。
この場合、端末装置100は、入力欄102に直接入力されたデータを、入力欄記述子と対応付けて入力データ記憶部300に格納する。また、端末装置100は、入力欄102に直接入力されたデータを、入力欄記述子と信頼度と対応付けて保護情報記憶部400に格納する。
つまり、入力データ記憶部300と保護情報記憶部400に格納される情報は、入力欄102にデータが手入力により直接入力された場合には、データに機器記述子が対応付けられていない情報となる。
よって、本実施形態では、入力データ記憶部300と保護情報記憶部400のそれぞれに格納されたデータが、利用機器200から自動的に入力されたデータであるのか、端末装置100に対して手入力されたデータであるのかを判別することができる。
以下に、図面を参照して第一の実施形態の帳票システムについて説明する。図2は、第一の実施形態の帳票システムのシステム構成を説明する図である。
本実施形態の帳票システム10は、端末装置100と、サーバ装置500とを有する情報処理システムの1つである。
本実施形態の端末装置100には、帳票プログラム110がインストールされており、利用機器200が取得したデータを、端末装置100に表示された入力画面の入力欄に挿入する。挿入されたデータは、例えば端末装置100の有する各種のテーブル等に格納されても良いし、端末装置100における各種の処理に用いられても良い。
本実施形態のサーバ装置500は、機器情報データベース510とドライバデータベース520と、を有する。
機器情報データベース510は、利用機器200のそれぞれの機器情報が格納される。機器情報は、例えば利用機器200と対応する機器制御モジュールを取得する際のアクセス先等を含む情報である。ドライバデータベース520は、利用機器200のそれぞれのドライバ(ドライバ情報)が格納されている。
本実施形態の機器情報データベース510とドライバデータベース520は、例えばサーバ装置500の補助記憶装置等に設けられていても良い。また、本実施形態の機器情報データベース510とドライバデータベース520は、端末装置100に設けられていても良い。
以下に、図3及び図4を参照し、サーバ装置500の有する各データベースについて説明する。
図3は、第一の実施形態の機器情報データベースを説明する図である。図3では、機器情報データベース510に格納された機器情報の一例を示している。
図3に示す機器情報510−1は、キー(項目)と、その値とを対応付けた形式で記述されている。
記述510−2において、didの値は、機器を識別子する機器記述子を示しており、記述510−2では、体重計を示す識別子""/wscale"が対応付けられている。
記述510−3において、scanの値は、通信に使用される無線の種別を示しており、記述510−2では、typeとして、BLE(Bluetooth Low Energy)が対応付けられている。
記述510−4は、利用機器を特定するためのフィールド情報を示しており、記述510−4では、フィールド情報はuuid_16であり、このフィールド情報で特定されるフィールドの値が0x181dであることを示している。
記述510−5では、機器記述子と対応する利用機器のドライバの取得先が記述されている。
尚、機器情報510−1では、無線の種別を示す値は、BLE以外にも、Bluetooth(登録商標)や無線LAN(Local Area Network)等の無線規格を指定することができる。また、記述510−3において、scanの値は、通信が有線で行われる場合には、有線の種別を示しても良い。有線の通信とは、例えば、USB(Universal Serial Bus)による通信や、有線LAN等による通信である。USBによる通信では、デバイスクラスにより利用機器が特定され、有線LANによる通信の場合には、IPアドレスにより利用機器が特定される。
また、機器情報510−1では、利用機器を特定するためのフィールド情報として、uuid_16以外にも、MAC(Media Access Control)アドレスやアクセスポイントアドレス等も指定できる。
図4は、ドライバデータベースの一例を説明する図である。図4では、ドライバデータベース520に格納されたドライバ情報520−1をドライバ情報の一例として示している。
図4に示すドライバ情報520−1において、記述520−2は、ドライバのメタ情報を記述した情報である。記述520−3は、利用機器200の制御のためのドライバプログラムである。記述520−4は、利用機器200の制御に伴う画面表示部品を示している。記述520−5は、利用機器200の存在が検知されたことを画面に表示するために使用するドライバアイコンを示している。
本実施形態のドライバ情報とは、上述した記述520−2、520−3、520−4、520−5を1つのパッケージにしたものである。
次に、本実施形態の端末装置100について説明する。図5は、第一の実施形態の端末装置のハードウェア構成の一例を示す図である。
本実施形態の端末装置100は、それぞれバスBで相互に接続されている表示操作装置11、ドライブ装置12、補助記憶装置13、メモリ装置14、演算処理装置15及びインターフェイス装置16を含む情報処理装置である。
表示操作装置11は、各種の情報の入力と、各種の情報の出力(表示)の機能を実現するタッチパネル等である。インターフェイス装置16は、モデム、LANカード等を含み、ネットワークに接続する為に用いられる。
帳票プログラムは、端末装置100を制御する各種プログラムの少なくとも一部である。帳票アプリケーションは例えば記憶媒体17の配布やネットワークからのダウンロードなどによって提供される。帳票プログラムを記録した記憶媒体17は、CD−ROM、フレキシブルディスク、光磁気ディスク等の様に情報を光学的、電気的或いは磁気的に記録する記憶媒体、ROM、フラッシュメモリ等の様に情報を電気的に記録する半導体メモリ等、様々なタイプの記憶媒体を用いることができる。
また、帳票プログラムは、帳票プログラムを記録した記憶媒体17がドライブ装置12にセットされると記憶媒体17からドライブ装置12を介して補助記憶装置13にインストールされる。ネットワークからダウンロードされた帳票プログラムは、インターフェイス装置16を介して補助記憶装置13にインストールされる。
補助記憶装置13は、インストールされた帳票プログラムを格納すると共に、必要なファイル、データ等を格納する。メモリ装置14は、コンピュータの起動時に補助記憶装置13から帳票プログラムを読み出して格納する。そして、演算処理装置15はメモリ装置14に格納された帳票プログラムに従って、後述するような各種処理を実現している。
また、本実施形態の端末装置100は、一般的なノート型のコンピュータであっても良い。その場合、表示操作装置11の代わりに、入力装置と出力装置を有していても良い。また、本実施形態のサーバ装置500は、演算処理装置とメモリ装置を有する一般的なコンピュータであり、そのハードウェア構成は、図5に示す端末装置100と同様であるから、説明を省略する。
次に、図6を参照して本実施形態の端末装置100の機能について説明する。図6は、第一の実施形態の端末装置の機能を説明する図である。
本実施形態の端末装置100は、帳票プログラム110が演算処理装置15に実行されることで、以下の各部の機能を実現している。
本実施形態の帳票プログラム110は、画面定義情報記述部120、帳票処理部130、記憶部140を有する。
画面定義情報記述部120は、端末装置100における入力画面の表示方法やレイアウトの記述を含む。帳票処理部130は、帳票の内部的な処理の記述を含む。
本実施形態の画面定義情報記述部120に記述された画面定義情報は、機器記述子121、入力欄記述子122、保護指定子123を含む。
機器記述子121は、利用機器200を特定する機器IDに相当する。入力欄記述子122は、入力画面におけるデータの入力欄を特定する入力欄IDに相当する。保護指定子123は、入力されたデータを保護対象とするか否かを示す。
本実施形態では、保護指定子123により、保護対象とされないデータは、保護情報記憶部400には格納されず、入力データ記憶部300にのみ格納される。尚、保護指定子は明記されていても良いし、機器記述子が存在すれば保護指定子が明記されていると判断しても良い。
本実施形態の帳票処理部130は、記述子抽出部131、機器情報取得部132、機器発見部133、機器制御組込部134、データ取得部135、信頼度算出部136、保護情報出力部137、保護領域生成部138、帳票生成部139、出力部160を有する。
記述子抽出部131は、画面定義情報から機器記述子121、入力欄記述子122を抽出する。
機器情報取得部132は、機器記述子をキーとして、機器情報データベース510を検索し、後述する機器探索に用いる機器情報を取得する。尚、本実施形態の機器情報取得部132は、例えば、端末装置100において、データの自動入力が選択された場合に、機器情報を取得する処理を行っても良い。
機器発見部133は、取得した機器情報に基づき、端末装置100の周辺にある利用機器を探索し、存在を検知する。
機器制御組込部134は、ドライバデータベース520を参照し、存在を検知した利用機器を制御するための機器入力用ドライバ(機器制御モジュール)141を取得し、端末装置100に組み込む。言い換えれば、本実施形態の機器制御組込部134は、動的に機器入力用ドライバを取得して端末装置100に組み込む。
また、機器制御組込部134は、保護指定子123により、データが保護対象とされているか否かを判定し、保護対象とされていた場合、保護情報出力部137を呼び出すための記述を機器入力用ドライバ141や手入力用ドライバ142に組み込む。
データ取得部135は、機器入力用ドライバ141が組み込まれた場合には、機器入力用ドライバ141を利用して機器制御命令を利用機器200へ送信し、利用機器200からデータを取得する。また、データ取得部135は、端末装置100において、手入力による入力が選択された場合には、端末装置100の有する表示操作装置11等により入力されたデータを取得する。
また、データ取得部135は、取得したデータを、機器記述子121や入力欄記述子122と対応付けた入力データとして、入力データ記憶部300に格納する。
また、データ取得部135は、例えば利用機器200によりデータが入力された場合には、機器入力用ドライバ141により、利用機器200のメーカ名や製造番号といった、利用機器200のハードウェアの種別を示す情報から、機器入力用ドライバ141により算出された、ハードウェア(以下、HW)種別情報を取得する。本実施形態では、ハードウェア種別情報とは、利用機器200のハードウェアの信頼度を示す情報である。
さらに、データ取得部135は、機器入力用ドライバ141の製造メーカやコード署名等を、機器入力用ドライバ141の種別を示す情報を取得し、ソフトウェア種別情報を算出する。ソフトウェア種別情報とは、端末装置100に組み込まれる機器入力用ドライバ141の信頼度を示す情報である。
また、データ取得部135は、データが端末装置100に手入力される場合には、データを入力する利用者のユーザ情報を入力させ、このユーザ情報を利用者の種別を示す情報として取得する。尚、本実施形態のユーザ情報とは、例えば利用者が所属する部署や役職、階級等を含む情報であることが好ましい。
データ取得部135は、取得した各種別情報を信頼度算出部136へ渡す。
信頼度算出部136は、入力されたデータが信頼できる値であるか否か示す信頼の度合いを示す信頼度を算出する。そして、信頼度算出部136は、入力欄記述子と、算出した信頼度とを対応付けて保護情報記憶部400へ出力し、保護情報記憶部400において、入力欄記述子が一致する保護情報と信頼度を対応付ける。
具体的には、信頼度算出部136は、データが利用機器200により入力された場合には、ハードウェア種別情報とソフトウェア種別情報を用いて、入力されたデータの信頼度を算出する。また、信頼度算出部136は、データが手入力により入力された場合には、さらにユーザの種別を示す情報を用いて、ユーザの信頼度を示すユーザ種別情報を算出する。
保護情報出力部137は、入力されたデータが保護対象のデータである場合に、機器記述子や入力欄記述子を入力されたデータを対応付けた、保護情報の一部として保護情報記憶部400に出力する。保護情報の詳細は後述する。
保護領域生成部138は、帳票プログラムが端末装置100にインストールされたとき、保護情報記憶部400を生成し、設定する。
帳票生成部139は、入力データ記憶部300と、帳票画面の表示要求を受けて保護情報記憶部400とを参照して帳票画面を生成し、表示させる。帳票画面とは、入力されたデータを表示させる画面である。帳票生成部139の機能の詳細は後述する。
また、上述した各部の処理の詳細は後述する。
出力部160は、帳票生成部139が生成した帳票画面を外部出力機器に対して出力する。具体的には、例えば出力部160は、例えば帳票画面の印刷指示を受けて、帳票画面の画像データをプリンタへ出力する。
記憶部140は、端末装置100の補助記憶装置13、メモリ装置14等に設けられた記憶領域であり、機器制御組込部134が取得した機器入力用ドライバ141と、手入力用ドライバ142と、が格納される。手入力用ドライバ142は、例えば表示操作装置11のドライバであり、予め端末装置100が有していても良い。
また、記憶部140は、入力データ記憶部300が設けられる。本実施形態の記憶部140は、格納されたデータの編集が可能な記憶領域である。
保護情報記憶部400は、保護領域生成部138により設定される記憶領域であり、画面定義情報記述部120や入力データ記憶部300が置かれる空間とは隔離された記憶領域を示す。本実施形態では、例えば端末装置100に、セキュリティチップ等が搭載されていた場合には、セキュリティチップ内に保護情報記憶部400を設ける。セキュリティチップとは、情報の漏洩の防止を目的として、ハードディスクの暗号化を解く鍵を保管して、必要に応じてハードディスクの内容を復号化して利用可能とするチップである。
尚、本実施形態では、保護情報記憶部400は、端末装置100が有するものとしているが、これに限定されない。保護情報記憶部400は、例えば端末装置100の外部の装置に設けられていても良い。具体的には、例えば保護情報記憶部400は、端末装置100とネットワークを介して接続されるサーバに設けられていても良い。
次に、図7と図8を参照して、本実施形態の保護情報と、保護情報記憶部400について説明する。図7は、第一の実施形態の保護情報を示す記述の一例を示す図である。尚、図7では、データが利用機器200から端末装置100へ入力された場合の保護情報の例を示している。
本実施形態の保護情報71は、保護情報を識別するための識別子71−1と、入力されたデータ71−2と、利用機器200の機器記述子71−3と、入力欄を特定する入力欄識記述子71−4と、信頼度71−5とを含む。
尚、データが手入力であった場合には、保護情報71には、機器記述子71−3は含まれない。よって、以下の説明では、少なくとも、項目「識別子」、「データ」、「入力欄記述子(入力欄ID)」、「信頼度」を含む情報を保護情報と呼ぶ。項目「機器記述子」を含む保護情報は、データが利用機器200により入力された場合の保護情報となる。
本実施形態の保護情報出力部137は、入力されたデータが保護対象であった場合には、データ71−2と、機器記述子71−3と、入力欄記述子71−4とを対応付けて、保護情報71の一部として保護情報記憶部400に出力する。このとき、保護情報出力部137は、識別子71−1を付与しても良い。
また、信頼度算出部136は、ハードウェア種別情報とソフトウェア種別情報に基づき信頼度を算出すると、算出した信頼度を、各種別情報と対応付けられた入力欄記述子71−4と対応付けて保護情報記憶部400に格納する。
これにより、保護情報71が生成される。
図8は、第一の実施形態の保護情報記憶部の一例を示す図である。図8に示す保護情報記憶部400では、保護情報出力部137から出力された情報と、信頼度算出部136から出力された信頼度とが対応付けられた保護情報として格納される。
本実施形態の保護情報は、図7で示すように、情報の項目として、情報の識別子(ID)、入力されたデータ、機器記述子、入力欄記述子、信頼度を含む。
図8では、保護情報81、82が保護情報記憶部400に格納された場合を示している。例えば、保護情報81は、ID「0123」が付与されており、項目「データ」の値は「85」であり、項目「機器記述子」の値(機器ID)が「wscale」であり、項目「入力欄記述子」の値(入力欄ID)が「weight」であり、項目「信頼度」の値は「A」であることがわかる。
尚、図8の例では、1つの入力欄記述子に対して1つのレコードとなっているが、これに限定されない。保護情報記憶部400では、1つの入力欄に対してデータが入力される度に、この入力欄の入力欄記述子、入力されたデータを対応付けていく。したがって、保護情報記憶部400では、入力欄記述子毎に、入力欄記述子が示す入力欄に対するデータの入力の履歴が格納されることになる。
次に、図9を参照し、本実施形態の帳票生成部139の機能について説明する。図9は、帳票生成部の機能を説明する図である。
本実施形態の帳票生成部139は、端末装置100に表示させる帳票を生成し、出力する。本実施形態の帳票生成部139は、記述子検出部151、データ読出部152、画面生成部153を有する。
記述子検出部151は、画面定義情報から、データが保護対象となっている画面を検出し、入力欄記述子から入力欄を特定する。
データ読出部152は、保護情報記憶部400から、入力欄記述子と対応付けられたデータを読み出して、取得する。また、データ読出部152は、入力データ記憶部300からも、入力欄記述子と対応付けられたデータを読み出す。
画面生成部153は、読み出された2つのデータを比較し、比較結果と、保護情報に含まれる信頼度と、に基づき、帳票が表示された帳票画面(閲覧画面)を表示させる。
次に、図10を参照して本実施形態の端末装置100の動作について説明する。図10は、第一の実施形態の端末装置の動作を説明する第一のシーケンス図である。図10では、端末装置100が利用機器200により測定されたデータが入力され、このデータが保護指定子123により保護対象のデータとされた場合のシーケンス図を示している。
本実施形態の端末装置100において、帳票処理部130は、記述子抽出部131により、画面定義情報記述部120の画面定義情報を抽出する(ステップS1001)。続いて、記述子抽出部131は、画面定義情報から、機器記述子121、入力欄記述子122、保護指定子123を抽出する(ステップS1002)。続いて、帳票処理部130は、機器情報取得部132により、機器記述子121で機器情報データベース510を検索し、該当する機器情報を取得する(ステップS1003)。
続いて、帳票処理部130は、機器発見部133により、機器記述子121が示す利用機器200を探索し、利用機器200を発見する(ステップS1004)。
次に、帳票処理部130は、機器制御組込部134により、ドライバデータベース520から利用機器200と対応するドライバを取得し、ドライバ内の各モジュールを帳票プログラム110内に組み込む。また、図10の例では、保護指定子によりデータが保護対象となっているため、機器制御組込部134は、機器入力用ドライバ141に、保護情報出力部137を呼び出すための記述を組み込む(ステップS1005)。ここで、端末装置100は、利用機器200からのイベントの発生を待機している状態となる。
次に、帳票処理部130は、利用機器200と接続し(ステップS1006)、機器入力用ドライバ141により利用機器200が測定したデータを取得し(ステップS1007、1008)、機器記述子121、データ、入力欄記述子122を保護情報出力部137へ出力する(ステップS1009)。
保護情報出力部137は、受け付けたデータが保護対象となっているため、機器記述子121、データ、入力欄記述子122を保護情報記憶部400へ格納する(ステップS1010)。このとき、保護情報出力部137は、格納する情報にIDを付与する。
また、機器入力用ドライバ141は、機器記述子121、データ、入力欄記述子122をデータ取得部135へ出力する(ステップS1011)。このとき、機器入力用ドライバ141は、利用機器200のハードウェア種別情報を算出できた場合は、ハードウェア種別情報も共にデータ取得部135へ出力する。
続いて、データ取得部135は、機器記述子121、データ、入力欄記述子122、ハードウェア種別情報を信頼度算出部136へ渡す(ステップS1012)。このとき、データ取得部135は、機器入力用ドライバ141から、機器入力用ドライバ141のソフトウェア種別情報を算出できた場合は、ソフトウェア種別情報も信頼度算出部136へ渡す。
信頼度算出部136は、ハードウェア種別情報とソフトウェア種別情報とを取得すると、入力されたデータの信頼度を算出する(ステップS1013)。入力されたデータの信頼度の算出の詳細は後述する。
続いて、信頼度算出部136は、算出した信頼度と入力欄記述子とを保護情報記憶部400へ格納する(ステップS1014)。このとき、信頼度算出部136は、保護情報記憶部400において、信頼度と対応付けられた入力欄記述子と一致する入力欄記述子に、信頼度を対応付けて格納する。
尚、保護情報記憶部400に、信頼度と対応付けられた入力欄記述子が存在しない場合には、信頼度算出部136は、単に、信頼度と入力欄記述子のみを保護情報記憶部400へ格納する。保護情報記憶部400に、信頼度と対応付けられた入力欄記述子が存在しない場合とは、画面定義情報の保護指定子によって、入力されたデータが保護対象とされていない場合である。
続いて、データ取得部135は、データと入力欄記述子とを入力データ記憶部300へ格納する(ステップS1015)。
以上が、利用機器200により測定されたデータが端末装置100の入力画面に入力された際に、このデータが保護対象となっていた場合の端末装置100の動作である。
次に、図11を参照して、端末装置100の入力画面にデータが直接入力された場合の端末装置100の動作について説明する。
図11は、第一の実施形態の端末装置の動作を説明する第二のシーケンス図である。図11の例でも、入力画面に入力されたデータが、保護指定子により保護対象とされている場合を示している。
本実施形態の端末装置100において、帳票処理部130は、記述子抽出部131により、画面定義情報記述部120の画面定義情報から、入力欄記述子を抽出する(ステップS1101)。
図11の例では、保護指定子によりデータが保護対象となっているため、機器制御組込部134は、手入力用ドライバ142に、保護情報出力部137を呼び出すための記述を組み込む(ステップS1102)。
続いて、端末装置100は、例えば手入力用ドライバ142により、表示操作装置11等に対するデータの入力を受け付ける(ステップS1103)。続いて、手入力用ドライバ142は、入力画面においてデータが入力された場所から入力欄を特定し、入力されたデータを抽出する(ステップS1104)。
尚、本実施形態では、このとき、端末装置100においてデータを入力する利用者のユーザ情報を入力させても良い。具体的には、例えば入力画面を表示させる前に、ユーザ情報の入力画面を端末装置100に表示させ、ユーザ情報の入力が完了し、データの入力方法として、手入力が選択された場合に、データの入力画面を表示させても良い。
手入力用ドライバ142は、入力されたデータと、特定した入力欄の入力欄記述子とをデータ取得部135へ渡す(ステップS1105)。また、手入力用ドライバ142は、ユーザ情報を取得した場合には、このユーザ情報をデータ取得部135へ渡す。
データ取得部135は、データと、入力欄記述子と、ユーザ情報と、を信頼度算出部136へ渡す(ステップS1106)。信頼度算出部136は、ユーザ情報に基づき、データの信頼度を算出する(ステップS1107)。
図11のステップS1108とステップS1109の処理は、図10のステップS1014とステップS1015の処理と同様であるから、説明を省略する。
以上が、データが端末装置100の入力画面に手入力された際に、このデータが保護対象となっていた場合の端末装置100の動作である。
次に、図12を参照して、端末装置100に対して帳票画面の表示要求がなされた場合の端末装置100の動作について説明する。
図12は、第一の実施形態の端末装置の動作を説明する第三のシーケンス図である。
本実施形態において、端末装置100は、帳票画面の表示要求を受けて帳票処理部130を起動させる。言い換えれば、端末装置100は、帳票画面の表示要求を受けて、帳票プログラムを起動させる。そして、帳票処理部130は、帳票生成部139を呼び出す(ステップS1201)。
続いて、帳票生成部139は、画面定義情報記述部120から、帳票画面の画面定義情報を取得する(ステップS1202)。また、帳票生成部139は、入力データ記憶部300からデータを取得する(ステップS1203)。
次に、帳票生成部139は、画面定義情報に含まれる入力欄記述子122を保護情報記憶部400へ渡し(ステップS1204)、保護情報記憶部400から入力欄記述子と対応付けられたデータと信頼度とを取得する(ステップS1205)。
続いて、帳票生成部139は、取得した画面定義情報、データ、信頼度等に基づき、帳票画面の画面データを生成する(ステップS1206)。そして、帳票生成部139は、画面データを表示操作装置11に表示させる(ステップS1207)。
以上が、帳票画面の表示要求を受けた際の端末装置100の動作である。
次に、図13乃至図20を参照し、本実施形態の端末装置100の帳票処理部130の有する各部の処理の詳細を説明する。
はじめに、図13を参照して、帳票処理部130の記述子抽出部131、機器情報取得部132、機器発見部133、機器制御組込部134の処理について説明する。図13は、記述子抽出部、機器情報取得部、機器発見部、機器制御組込部の処理を説明するフローチャートである。
本実施形態の帳票処理部130において、記述子抽出部131は、画面定義情報記述部120から画面定義情報を抽出する(ステップS1301)。続いて、記述子抽出部131は、画面定義情報に機器記述子(機器ID)及び入力欄記述子(入力欄ID)が含まれるか否かを判定する(ステップS1302)。
ステップS1302において、2つの記述子が存在しない場合、記述子抽出部131は、画面定義情報に入力欄記述子(入力欄ID)が含まれるか否かを判定する(ステップS1303)。ステップS1303において、入力欄記述子が含まれない場合、帳票処理部130は処理を終了する。
ステップS1303において、入力欄記述子が含まれる場合、帳票処理部130は、後述するステップS1308へ進む。
尚、本実施形態では、画面定義情報に機器記述子が含まれる場合は、利用機器200から機器入力用ドライバ141を介して入力画面にデータが入力される場合を示し、機器記述子が含まれない場合は、入力画面に手入力でデータが入力される場合を示している。
ステップS1302において、2つの記述子が存在する場合、記述子抽出部131は、機器記述子と、入力欄記述子とを取得し、機器情報取得部132へ渡す(ステップS1304)。
機器情報取得部132は、機器記述子に基づき、機器情報データベース510から機器情報を取得し、機器発見部133に渡す。機器発見部133は、機器情報に基づき、端末装置100の周囲を探索する(ステップS1305)。
機器発見部133は、利用機器200を発見(検出)すると(ステップS1306)、機器制御組込部134は、ドライバデータベース520から発見した利用機器200と対応する機器入力用ドライバ141を取得し、機器入力用ドライバ141内の各モジュールを帳票プログラム110内に組み込む(ステップS1307)。
尚、ステップS1305において、機器発見部133が利用機器200を検出しない場合には、機器発見部133は利用機器200を発見するまで待機する。
続いて、機器制御組込部134は、画面定義情報の保護指定子により、入力されるデータが保護対象とされているか否かを判定する(ステップS1308)。
ステップS1308において、データが保護対象でない場合、機器制御組込部134は後述するステップS1310へ進む。
ステップS1308において、データが保護対象とされる場合、機器制御組込部134は、保護情報出力部137を呼び出すための記述を、機器入力用ドライバ141又は手入力用ドライバ142に追加する(ステップS1309)。
尚、ステップS1309では、画面定義情報に機器記述子が含まれる場合には、機器入力用ドライバ141に保護情報出力部137を呼び出すための記述が追加され、機器記述子が含まれない場合(ステップS1303でYes)の場合には、手入力用ドライバ142に保護情報出力部137を呼び出すための記述が追加される。
続いて、機器制御組込部134は、ドライバに機器記述子と入力欄記述子を渡し(ステップS1310)、処理を終了する。
尚、機器制御組込部134は、画面定義情報に機器記述子が含まれる場合には、機器入力用ドライバ141に機器記述子と入力欄記述子を渡し、機器記述子が含まれない場合(ステップS1303でYes)の場合には、手入力用ドライバ142に入力欄記述子を渡す。
次に、図14を参照して、機器入力用ドライバ141の動作について説明する。図14は、機器入力用ドライバの動作を説明するフローチャートである。
機器入力用ドライバ141が端末装置100に組み込まれると、機器制御組込部134から機器記述子と入力欄記述子とを受信する(ステップS1401)。続いて、機器入力用ドライバ141は、機器記述子が特定する利用機器200との接続を試みる(ステップS1402)。
機器入力用ドライバ141は、利用機器200との接続が成功したか否かを判定し(ステップS1403)、接続が成功していない場合には、接続が成功するまで試みる。
ステップS1403において、接続が成功した場合、機器入力用ドライバ141は、利用機器200から、利用機器200のハードウェアの種類を示す情報を取得する(ステップS1404)。
続いて、機器入力用ドライバ141は、ハードウェアの種類を示す情報を検証してハードウェアの信頼度を取得し、この信頼度をハードウェア種別情報として保持する(ステップS1405)。ハードウェアの信頼度の取得の方法の詳細は後述する。
続いて、機器入力用ドライバ141は、利用機器200からデータが入力されるまで待機し(ステップS1406)、データが入力されたか否かを判定する(ステップS1407)。
ステップS1407において、データが入力されない場合、機器入力用ドライバ141は、ステップS1406へ戻り、待機する。
ステップS1407において、データが入力された場合、機器入力用ドライバ141は、入力画面に入力されたデータを取得し(ステップS1408)、データを抽出する(ステップS1409)。
続いて、機器入力用ドライバ141は、保護情報出力部137に対し、抽出したデータと、機器記述子と、入力欄記述子とを渡す(ステップS1410)。続いて、機器入力用ドライバ141は、データ取得部135に対し、データと、機器記述子と、入力欄記述子と、ハードウェア種別情報と、を渡し(ステップS1411)、処理を終了する。
尚、図14の例では、機器入力用ドライバ141は、利用機器200のハードウェアの信頼度を取得するものとしたが、機器入力用ドライバ141は、利用機器200を用いて測定を行う利用者のユーザ情報を取得しても良い。ユーザ情報は、ハードウェア種別情報と同様に、データ取得部135へ渡される。
次に、図15を参照して、手入力用ドライバ142の動作について説明する。図15は、手入力用ドライバの動作を説明するフローチャートである。
本実施形態の手入力用ドライバ142は、端末装置100において、データの入力を行う利用者のユーザ情報の入力を受け付け、保持する(ステップS1501)。
続いて、手入力用ドライバ142は、端末装置100の入力画面において、入力欄の選択を受け付けたか否かを判定する(ステップS1502)。ステップS1502において、入力欄の選択を受け付けない場合、手入力用ドライバ142は、処理を終了する。尚、このとき、手入力用ドライバ142は、所定時間の間、継続して入力欄の選択を受け付けない場合に、処理を終了しても良い。
ステップS1502において、入力欄の選択を受け付けた場合、手入力用ドライバ142は、選択された入力欄の入力欄記述子を取得し、データの入力を待つ(ステップS1503)。
続いて、手入力用ドライバ142は、データが入力されたか否かを判定する(ステップS1503)。ステップS1504において、データが入力されない場合、手入力用ドライバ142は、データが入力されるまで待機する。
ステップS1504において、データが入力されると、手入力用ドライバ142は、データを取得し(ステップS1505)、入力画面から入力されたデータを抽出する(ステップS1506)。
続いて、手入力用ドライバ142は、保護情報出力部137に対し、抽出したデータと、入力欄記述子とを渡す(ステップS1507)。続いて、手入力用ドライバ142は、データ取得部135に対し、データと、入力欄記述子と、ユーザ情報と、を渡し(ステップS1508)、処理を終了する。
次に、図16を参照して、保護情報出力部137の処理について説明する。図16は、保護情報出力部の処理を説明するフローチャートである。
本実施形態の保護情報出力部137は、機器記述子、入力欄記述子、データの組合せ、又は、入力欄記述子、データの組合せを取得する(ステップS1601)。続いて、保護情報出力部137は、入力欄記述子に基づき、保護情報記憶部400に同一の入力欄記述子を含む保護情報が存在するか否か問い合わせる(ステップS1602)。
続いて、保護情報出力部137は、保護情報記憶部400内に、同一の入力欄記述子と対応付けられた保護情報が存在するか否かを判定する(ステップS1603)。
ステップS1603において、該当する保護情報が存在する場合、保護情報出力部137は、該当する保護情報に機器記述子が含まれる場合には、該当する保護情報の機器記述子とデータとを更新し(ステップS1604)、処理を終了する。
具体的には、保護情報出力部137は、入力欄記述子に対して、新たに取得したデータと機器記述子とを対応づけるようにする。したがって、この場合、保護情報記憶部400において、1つの入力欄記述子に対して、過去に対応付けられたデータと機器記述子と、ステップS1601で新たに取得したデータと機器記述子とが対応付けられることになる。この場合、データを取得した日時の情報を取得し、データと対応付けて保護情報記憶部400に格納しても良い。すなわち、本実施形態の保護情報記憶部400には、入力欄記述子毎のデータの入力の履歴が格納されることになる。
尚、該当する保護情報に機器記述子が含まれない場合、保護情報出力部137は、該当する保護情報のデータを上述した方法と同様に更新して処理を終了する。
ステップS1603において、該当する保護情報が存在しない場合、保護情報出力部137は、入力欄記述子と機器記述子とデータとを対応付けた1レコードを生成し、保護情報記憶部400へ書き込み(ステップS1605)、処理を終了する。尚、保護情報出力部137は、ステップS1601において機器記述子を取得していない場合、入力欄記述子とデータとを対応付けた1レコードを生成し、処理を終了する。
次に、図17を参照して本実施形態のデータ取得部135の処理について説明する。図17は、データ取得部の処理を説明するフローチャートである。
本実施形態のデータ取得部135は、機器記述子、入力欄記述子、データ、各種の情報を取得する(ステップS1701)。具体的には、データ取得部135は、機器入力用度ラバ141から、機器記述子、入力欄記述子、データ、ハードウェア種別情報を取得する。また、データ取得部135は、手入力用ドライバ142から、入力欄記述子、データ、ユーザ情報を取得する。
続いて、データ取得部135は、ステップS1701で機器記述子を取得したか否かを判定する(ステップS1702)。ステップS1702において、機器記述子を取得していない場合、データ取得部135は、後述するステップS1706へ進む。
ステップS1702において、機器記述子を取得した場合、データ取得部135は、機器入力用ドライバ141(ソフトウェア)の種別を示す情報を取得する(ステップS1703)。機器入力用ドライバ142の種別を示す情報とは、例えば、機器入力用ドライバ141のコード署名等である。
続いて、データ取得部135は、機器入力用ドライバ141の種別を示す情報の検証を行って、機器入力用ドライバ141の信頼度を取得し、ソフトウェア種別情報として保持する(ステップS1704)。ソフトウェアの信頼度の取得の方法の詳細は後述する。
続いて、データ取得部135は、データと、機器記述子と、入力欄記述子と、ハードウェア種別情報と、ソフトウェア種別情報とを信頼度算出部136へ渡し(ステップS175)、後述するステップS1707へ進む。
ステップS1702において、機器記述子を取得していない場合、データ取得部135は、ユーザ情報とデータとを信頼度算出部136へ渡し(ステップS1706)、ステップS1707へ続く。
データ取得部135は、画面定義情報から、入力欄記述子を取得する(ステップS1707)。続いて、データ取得部135は、ステップS1707で取得した入力欄記述子と、ステップS1701で取得した入力欄記述子とを比較し、一致するものがあるか否かを判定する(ステップS1708)。
ステップS1708において、一致する入力欄記述子ものが存在しない場合、データ取得部135は処理を終了する。
ステップS1708において、一致するものが存在する場合、入力画面において入力欄記述子で特定される入力欄内のデータを、入力されたデータに更新し(ステップS1709)、処理を終了する。
次に、図18を参照して、信頼度算出部136の処理について説明する。図18は、信頼度算出部の処理を説明するフローチャートである。
信頼度算出部136は、データ取得部135から出力されたデータを取得する(ステップS1801)。続いて、信頼度算出部136は、画面定義情報から入力欄記述子を取得し、入力欄記述子と対応するデータの信頼度を初期化する(ステップS1802)。
続いて、信頼度算出部136は、ステップS1801で取得した情報に機器記述子が含まれるか否かを判定する(ステップS1803)。
ステップS1803において、機器記述子が含まれる場合、信頼度算出部136は、ステップS1801で取得した情報からハードウェア種別情報とソフトウェア種別情報とを取得し(ステップS1804)、後述するステップS1808へ進む。
ステップS1803において、機器記述子が含まれない場合、信頼度算出部136は、ステップS1801で取得した情報から、ユーザ情報を取得する(ステップS1805)。
続いて、信頼度算出部136は、ユーザ情報に基づきデータを入力した利用者の信頼度を検証し(ステップS1806)、利用者の信頼度を取得して、ユーザ種別情報として保持する(ステップS1807)。
以下に、利用者の信頼度の取得について説明する。
ユーザ情報には、利用者の権限や役職等が含まれる。よって、信頼度算出部136は、利用者の権限や役職等と、信頼度とが対応付けられたテーブル等を参照し、利用者の信頼度を取得しても良い。具体的には、例えば、役職が一般社員である利用者よりも、役職が幹部である利用者の方が、信頼度が高くなる。
続いて、信頼度算出部136は、ハードウェア種別情報、ソフトウェア種別情報、ユーザ種別情報を用いて、入力されたデータの信頼度を算出する(ステップS1808)。
以下に、入力されたデータの信頼度の算出について説明する。本実施形態では、入力されたデータの信頼度は、以下の式によって算出される。
信頼度=Σ(ハードウェア種別情報×重み係数)+Σ(ソフトウェア種別情報×重み係数)+Σ(ユーザ種別情報×重み係数)
尚、本実施形態の信頼度算出部136は、ハードウェア種別情報、ソフトウェア種別情報、ユーザ種別情報のそれぞれについて、各種別情報と重み係数を対応付けた重みテーブルを有しているものとした。
重みテーブルでは、例えば、ハードウェア種別情報、ソフトウェア種別情報、ユーザ種別情報を算出するために行った検証の種類と、重み係数とが対応付けられていても良い。
続いて、信頼度算出部136は、算出したデータの信頼度を、保護情報記憶部400において、ステップS1801で取得した入力欄記述子と一致する入力欄記述子と対応付けて格納し(ステップS1809)、処理を終了する。
以上のように、本実施形態では、保護情報記憶部400において、入力欄記述子と、入力欄記述子が特定する入力欄に入力されたデータと、このデータの信頼度とが対応付けられた記憶される。
次に、図19を参照して、保護領域生成部138の処理について説明する。図19は、保護領域生成部の処理を説明するフローチャートである。
本実施形態の保護領域生成部138は、保護情報記憶部400が端末装置100の外部装置に設定されているか否かを判定する(ステップS1901)。ステップS1901において、外部装置に設定されている場合、保護領域生成部138は、後述するステップS1905へ進む。
ステップS1901において、外部装置に設定されていない場合、保護領域生成部138は、端末装置100にセキュリティチップが搭載されているか否かを判定する(ステップS1902)。ステップS1902において、セキュリティチップが搭載されていない場合、保護領域生成部138は、後述するステップS1906へ進む。
ステップS1902において、セキュリティチップが搭載されている場合、保護領域生成部138は、セキュリティチップの空き容量が保護情報記憶部400を設定するに際し十分であるか否かを判定する(ステップS1903)。尚、保護情報記憶部400の設定に必要な空き容量は、予め保護領域生成部138に設定されていても良い。
ステップS1903において、空き容量が不十分である場合、保護領域生成部138は、後述するステップS1906へ進む。
ステップS1903において、空き容量が十分である場合、保護領域生成部138は、セキュリティチップ内に、保護情報記憶部400を生成する(ステップS1904)。続いて、保護領域生成部138は、保護情報出力部137へ、保護情報記憶部400のアドレスを通知し(ステップS1905)、処理を終了する。
ステップS1902においてセキュリティチップが搭載されていない場合及びステップS1903において空き容量が不十分である場合、保護領域生成部138は、端末装置100の記憶領域内に保護情報記憶部400を生成する(ステップS1906)。続いて、保護領域生成部138は、保護情報記憶部400に格納されるデータの暗号化を保護情報出力部137に対して指示し(ステップS1907)、ステップS1905へ進む。
次に、図20を参照し、帳票生成部139の処理について説明する。図20は、帳票生成部の処理を説明するフローチャートである。
本実施形態の帳票生成部139は、帳票画面の表示要求を受けると、画面定義情報と、入力されたデータとを取得する(ステップS2001)。具体的には、帳票生成部139は、取得した画面定義情報に含まれる入力欄記述子を抽出し、入力データ記憶部300において、入力欄記述子と対応付けられたデータを取得する。
続いて帳票生成部139は、画面定義情報の保護指定子により、データが保護対象とされているか否かを判定する(ステップS2002)。ステップS2002において、データが保護対象とされていない場合、帳票生成部139は、取得したデータを入力欄に表示させた帳票画面の画面データを生成して端末装置100へ表示させ(ステップS2003)、処理を終了する。
ステップS2002において、データが保護対象とされていた場合、帳票生成部139は、保護情報記憶部400から、ステップS2001で取得した入力欄記述子と対応付けられたデータと、データの信頼度とを取得する(ステップS2004)。
続いて、帳票生成部139は、保護情報記憶部400から取得したデータを入力欄記述子で特定される入力欄に表示させ、信頼度に応じた加工を施した帳票画面の画面データを生成して端末装置100へ表示させる(ステップS2005)。具体的には、帳票生成部139は、入力欄に表示されたデータの信頼度が低い場合等には、信頼度が低いことを示す表示部品を帳票画面に表示させる。
続いて、帳票生成部139は、入力データ記憶部300において、ステップS2001で取得した入力欄記述子と対応付けられたデータと、保護情報記憶部400において入力欄記述子と対応付けられたデータとを比較する(ステップS2006)。ステップS2006において、両者が一致する場合、帳票生成部139は、処理を終了する。
ステップS2006において、両者が異なる場合、帳票生成部139は、入力データ記憶部300の該当するデータを、保護情報記憶部400における該当するデータで上書きし(ステップS2007)、処理を終了する。
また、本実施形態では、表示部品に対する操作を受けて付けて、保護情報記憶部400における入力欄記述子と対応するデータを帳票画面に表示させる。帳票生成部139による、信頼度に応じた加工の詳細は後述する。
本実施形態の帳票生成部139では、以上のように、入力欄と対応するデータが保護対象とされていた場合、編集が不可能な記憶領域である保護情報記憶部400に格納されたデータを帳票画面に表示させる。本実施形態では、これにより、帳票画面の入力欄に表示されたデータに対する手入力による編集を禁止する。言い換えれば、本実施形態では、帳票画面におけるデータの改竄を防止できる。
また、帳票生成部139は、保護情報記憶部400に格納されたデータの信頼度が低い場合には、その旨を示す表示部品を帳票画面に表示させる。
したがって、本実施形態によれば、帳票画面の閲覧者に対し、表示されているデータが改竄されたデータである可能性の有無を提示することができる。
次に、本実施形態のハードウェアの信頼度及びソフトウェアの信頼度の算出について説明する。
ハードウェアの信頼度は、機器入力用ドライバ141が、利用機器200の情報から利用機器200そのものの信頼性を検証した結果を値として算出したものである。
利用機器200は、TPM(Trusted Platform Module)と呼ばれる耐タンパ性を持つセキュリティチップが組み込まれている場合がある。この場合、TPMによって、利用機器200の正当性が保証される。
機器入力用ドライバ141は、TPMが利用機器200の正当性を保証していることを示す証明書情報を利用機器200から取得し、この証明書情報が正当であるか否かを公開鍵署名等の手法を用いて検証することで、利用機器200の信頼性を評価する。
このとき、機器入力用ドライバ141は、TPMと合わせて、利用機器200のハードウェア構成情報を動的に検証し、故障等の不具合の有無を確認し、これらの情報を組み合わせることで、ハードウェアの信頼度を算出する。
次に、ソフトウェアの信頼度の算出について説明する。
ソフトウェアの信頼度は、機器入力用ドライバ141の署名の検証情報や帳票プログラム110がサンドボックス上で実行されているか否か、セキュアで信頼できる実行環境で動作しているか否か、等によって検証が可能である。
具体的には、ソフトウェアの信頼度は、機器入力用ドライバ141やデバイスドライバが動作するシステム情報等から、利用機器200に入力されたデータが帳票処理部130に届くまでのパスの信頼性を検証した結果を値として算出されるものである。
例えば、機器入力用ドライバ141は基本的に機器メーカが利用機器200に準拠したソフトウェアをツールアプリケーションとして提供するものであり、機器入力用ドライバ141の不正な解析や改ざんなどを防止するために、コード署名が付加されている場合がある。
実施形態のデータ取得部135は、このコード署名が確かに機器メーカによって付加された署名であるかを検証することによって、機器入力用ドライバ141の信頼性を評価することができる。
また、近年では、機器入力用ドライバ141の仮想化・軽量化の技術が進み、機器入力用ドライバ141相当のツールアプリケーションを動的に挿抜することを可能としたフレームワークも存在する。その場合、このようなフレームワークそのもののコード署名や構成で信頼性を検証することも可能であり、これらの情報を組み合わせることで、ソフトウェア(機器入力用ドライバ141)の信頼度を算出することができる。
次に、利用者の信頼度の算出について説明する。
利用者の信頼度は、信頼度算出部136にて、帳票プログラムが動作する端末に手入力している利用者を判断し、利用者の所属や専門性などの情報から入力された値そのものの信頼性を評価した結果を値として算出したものである。
基本的に端末装置100は、各ユーザ専用の端末として動作させている場合が多い。そこで、本実施形態では、端末装置100に、端末装置100の端末IDとユーザ情報とを予め設定しておくことによって、信頼度算出部136は帳票にデータの入力を行った利用者の信頼性を判定することができる。
また、例えば、信頼度算出部136は、データの入力時に、利用者(入力者)に対してユーザ認証を行うことができれば、データを入力しているユーザを識別し、ユーザ情報の検証が可能になる。
信頼度算出部136は、これらのような手法を用いてユーザ情報を取得し、ユーザ情報から利用者の信頼度を算出するための所属や専門性情報等を抽出して、利用者の信頼度を算出することができる。
本実施形態の信頼度算出部136では、ハードウェアの信頼度(ハードウェア種別情報)と、ソフトウェアの信頼度(ソフトウェア種別情報)と、利用者の信頼度(ユーザ種別情報)とかに、例えば、以下のように信頼度を算出する。
信頼度=TMP署名検証結果×50+機器入力用ドライバの署名検証結果×30+ログの正当性検証結果×10+測定時間と場所の検証結果×10
本実施形態では、例えば信頼度の値が50以下となった場合に、帳票画面において、信頼度が低いことを示す表示部品が付加されても良い。
また、本実施形態では、信頼度が所定の閾値を超えない場合は、入力画面にエラーメッセージを表示させても良い。
次に、本実施形態の帳票プログラム110を示す記述について説明する。図21は、第一の実施形態の帳票プログラムにおけるデータの入力に関する記述を説明する図である。
本実施形態の端末装置100では、例えば、Android(登録商標) OS等を搭載する端末である。
帳票プログラム110では、画面定義情報記述部120と、帳票処理部130とに分けて動作する。図21の例では、帳票処理部130は、Androidアプリケーションのフレームワークの一種であるCordovaを利用するものとした。また、画面定義情報記述部120は、Cordovaのフレームワーク内で動作するものとした。
また、本実施形態の端末装置100は、通信インターフェイス150として、BLE(Bluetooth Low Energy)通信インターフェイス155やWi−Fi通信インターフェイス156等が具備されているものとする。
画面定義情報は、HTML(HyperText Markup Language)で記述されている。画面定義情報記述部120において、<div>〜</div>タグで囲まれた記述211は、が画面定義情報を示している。
記述211のうち、記述212が機器記述子121を示しており、記述213が入力欄記述子122を示しており、記述214が保護指定子123を示している。記述214において、protectionの値がtrueである場合に、入力欄記述子により特定される入力欄に入力されたデータが保護対象とされる。また、記述214において、protectionの値がfalseである場合に、入力欄記述子により特定される入力欄に入力されたデータは保護されない。
端末装置100において、帳票プログラム110が起動すると、帳票処理部130は、JavaScript(登録商標)インターフェイス600を自動的にロードする。JavaScriptインターフェイス600は、帳票入力インターフェイスと帳票出力インターフェイスを有し、帳票処理部130に対して、データの入力と、帳票の出力の機能を実行させる。
帳票入力インターフェイス600は、帳票プログラム110の起動時に自動実行される。本実施形態の帳票プログラム110では、記述215に示すGadget.use関数が呼び出されることによって、帳票処理部130の機能が実行される。
本実施形態の帳票処理部130の有する機能は、Cordovaのプラグインとして実装されても良い。帳票処理部130の有する機能は上述した通りである。
図22は、第一の実施形態の帳票プログラムにおけるデータの出力に関する記述を説明する図である。
図22では、入力欄102にデータが入力された帳票画面101Aにおいて、帳票画面101Aの印刷指示を行うボタン105が操作されて場合について説明する。
帳票画面101Aにおいて、ボタン105が操作されると、帳票出力インターフェイス700は、汎用的な出力機能が実行される前に、帳票生成部139を実行する。
具体的には、帳票処理部130は、ボタン105のクリックをトリガにして、記述221が示すwindow.print()により、帳票生成部139と出力部160が呼び出される。
本実施形態では、外部出力機器800で印刷処理を実行させる前に、閲覧画面101Bを生成し、表示させる。尚、閲覧画面は、例えば帳票を印刷する過程で表示される画面の1つであり、入力されたデータの改竄の有無を検証するために表示されても良い。
本実施形態の帳票生成部139において、記述子検出部151は、帳票画面101Aの画面定義情報を示す記述211のinput要素を取得し、保護指定子がtrueのものを検出し、input要素のidとvalueを取得する。
データ読出部152では、取得したid(入力欄記述子)に対応するvalue(データ)を保護情報記憶部400に問い合わせ、idに紐づくデータを取得する。
画面生成部153では、保護情報記憶部400から取得したデータと、入力データ記憶部300に格納されていたvalue値とを比較し、両者が異なる場合、入力データ記憶部300のvalue値を、idと紐付くvalueの値に上書きする。
また、画面生成部153は、例えば、画面定義情報に機器記述子121が含まれる場合には、閲覧画面101Bに、データが利用機器200から入力されたデータであることを示す表示部品106を表示させても良い。この表示部品106を閲覧画面101Bに表示させることで、閲覧者に対し、閲覧画面101Bに表示されたデータが利用機器200により入力されたものであることを把握させることができる。
尚、図22の例では、表示部品106はチェックマークとしたが、これに限定されない。表示部品106の形態は、例えば、アルファベットや数字であっても良いし、丸や四角等のマークであっても良い。
次に、図23、図24を参照して、本実施形態の閲覧画面の表示について説明する。図23は、第一の実施形態の閲覧画面が表示された例を示す第一の図である。
図23に示す閲覧画面230は、入力欄231、232を有しており、各入力欄に入力されたデータが表示されている。
また、閲覧画面230において、入力欄231の近傍には、データが利用機器200により入力されたデータであることを示す表示部品106が表示されている。よって、入力欄231に表示されたデータは、利用機器200により入力されたデータであることがわかる。
また、閲覧画面230において、入力欄232の近傍には、入力欄232に表示されたデータの信頼度が所定の閾値に達していないことを示す表示部品107が表示されている。したがって、入力欄232に表示されたデータは、正当な方法で入力されたデータではない可能性があることがわかる。
本実施形態では、閲覧画面230において、表示部品107を選択する操作を受け付けると、端末装置100の表示を閲覧画面230から、検証画面235へ遷移させる。検証画面235は、閲覧画面230上に、ポップアップ形式等によって表示されても良い。
検証画面235には、入力欄232に対するデータの入力の履歴を示すテーブル236と、不正な改変のおそれあることを通知するメッセージ237が表示される。
テーブル236は、情報の項目として、データの値、ユーザ、手入力、機器名、日付、信頼度を含む。項目「データ」、「日付」、「機器名」、「信頼度」は、保護情報記憶部400から取得される。尚、項目「機器名」は、保護情報記憶部400に格納された保護情報における機器記述子から取得されても良い。尚、本実施形態のテーブル236は、言い換えれば、保護情報記憶部400において、入力欄232の入力欄記述子と対応付けられたデータの一覧である。
項目「ユーザ」の値は、データの入力を行った利用者を示す。図23の例では、データが手入力により行われた場合と、利用機器200により行われた場合の両方において、ユーザ情報が取得されていることがわかる。
項目「手入力」の値は、データの入力が手入力で行われたか、利用機器200により行われたかを示す。項目「手入力」の値が、Manualである場合にデータが端末装置100において手入力されたことを示す。
したがって、図23に示すテーブル236によれば、入力欄232に対し、2016/9/1にユーザAがキーボードにより手入力したデータの信頼度は80であることがわかる。また、テーブル236によれば、入力欄232に対し、2016/9/2にユーザAが測定器を用いて入力したデータの信頼度は100であることがわかる。また、テーブル236によれば、入力欄232に対し、2016/9/5にユーザBが手入力したデータの信頼度は20であることがわかる。
したがって、閲覧画面230の閲覧者は、入力欄231に対するデータの編集が行われたか否か、や、誰が編集を行った、ということを把握することができる。図23の例では、ユーザBによるデータの入力が不正に改変であった可能性が高いことを検証できる。
図24は、第一の実施形態の閲覧画面が表示された例を示す第二の図である。図24に示す閲覧画面230Aでは、入力欄毎に、表示されたデータの信頼度を表示している。
閲覧画面230Aは、入力欄231、232を有しており、各入力欄に入力されたデータが表示されている。また、閲覧画面230Aでは、入力欄231に表示されたデータの信頼度を示す表示部品108と、入力欄232に表示されたデータの信頼度を示す表示部品109と、が、各入力欄と対応付けられて表示されている。
したがって、閲覧画面230Aでは、入力欄232に対して入力されたデータの信頼度が低いことがわかる。図24の例では、入力欄232に対応付けられた表示部品109を選択する操作が行われると、端末装置100の表示が閲覧画面230Aから、テーブル236とメッセージ237を含む検証画面235へ遷移する。
本実施形態では、端末装置100において、帳票の表示の形態等を設定するメニュー画面240を表示させることができる。また、本実施形態では、このメニュー画面240において、帳票の表示の形態として、信頼度表示モード241を設定する操作が行われた場合に、閲覧画面230Aのように入力欄毎にデータの信頼度を表示させても良い。
以上のように、本実施形態によれば、帳票の入力欄に入力されたデータの信頼度を算出し、保持している。したがって、本実施形態によれば、入力欄にデータが入力された後に、信頼度に応じて不正な改変が行われたか否かを検証させることができる。
また、本実施形態によれば、データと機器記述子とが対応付けられているか否かによって、データが利用機器200により入力されたものであるか、手入力されたものであるかを判別することができる。したがって、本実施形態によれば、データの入力の履歴において、どのデータが利用機器200の測定値として入力された値であり、どのデータが端末装置100において利用者が直接入力した値であるかを閲覧者に示すことができる。
さらに、本実施形態によれば、帳票を出力する際には、保護情報記憶部400に格納されたデータを入力欄と対応するデータとして出力する。したがって、本実施形態によれば、帳票に対するデータの編集を禁止することができる。また、本実施形態によれば、データが取得後に編集されていない値を帳票に反映させることができる。言い換えれば、本実施形態によれば、入力欄に入力されたデータをそのまま帳票に出力することができる。
(第二の実施形態)
以下に図面を参照して第二の実施形態について説明する。第二の実施形態では、保護情報記憶部400Aが端末装置100の外部に設けられた点が第一の実施形態と相違する。よって、以下の第二の実施形態の説明では、第一の実施形態との相違点についてのみ説明し、第一の実施形態と同様の機能構成を有するものには、第一の実施形態の説明で用いた符号と同様の符号を付与し、その説明を省略する。
図25は、第二の実施形態の端末装置の機能を説明する図である。本実施形態の端末装置100Aは、帳票プログラム110Aを有する。帳票プログラム110Aは、帳票処理部130Aを実現する。
帳票処理部130Aは、保護情報出力部137Aを有する。保護情報出力部137Aは、機器入力用ドライバ141や手入力用ドライバ142から取得した情報を、サーバ装置900に設けられた保護情報記憶部400Aへ送信する。サーバ装置900は、端末装置100とネットワークを介して接続される装置である。帳票システム10Aは、端末装置100Aとサーバ装置900とを含む。
次に、図26、図27を参照し、本実施形態の端末装置100Aに表示される閲覧画面について説明する。
図26は、第二の実施形態の閲覧画面が表示された例を示す第一の図である。図26の例では、閲覧画面230Bにおいて、入力欄231を選択する操作が行われると、帳票プログラム110Aが表示させる画面とは別のアプリケーションにより、検証ウィンドウ235Aが表示される。
本実施形態では、このように、帳票プログラム110A以外のアプリケーションによって検証ウィンドウ235Aを表示させるため、例えばPDF(Portable Document Format)ビューアやブラウザ等の既存のビューアアプリケーションを用いることができ、汎用性を高めることができる。
検証ウィンドウ235Aは、サーバ装置900において、保護情報記憶部400Aに基づき画面データが生成され、端末装置100Aに表示されても良い。また、検証ウィンドウ235Aは、端末装置100Aがサーバ装置900からネットワークを介して保護情報記憶部400Aに格納された入力欄231に対するデータの履歴を示す情報を取得し、帳票生成部139により画面データを生成して端末装置100Aに表示させても良い。
検証ウィンドウ235Aには、入力欄231に対するデータの履歴を示すテーブル236と、不正な改変のおそれがあることを示すメッセージ237が表示されている。
尚、図26の例では、帳票生成部139には保護情報記憶部400AのURLが通知されているものとした。帳票生成部139は、例えば、入力欄231が選択される操作を受け付けると、通知されたURLを参照して保護情報記憶部400Aへアクセスすれば良い。
図27は、第二の実施形態の閲覧画面が表示された例を示す第二の図である。図27に示す閲覧画面230Bは、例えば印刷プレビュー画面として表示される。
閲覧画面230Bでは、入力欄231と対応付けられた表示部品270が表示されている。図27の例では、表示部品270は、入力欄231に対して入力されたデータが格納されている保護情報記憶部400AのURLを示すQRコード(登録商標)である。
したがって、閲覧画面230Bを印刷した場合には、入力欄231の近傍にQRコード(表示部品)270が印刷された帳票が出力される。
この場合、例えば、帳票に印刷されたQRコード270を、端末装置100A等の有するQRコードリーダ271で読み取ることで、入力欄231に対するデータの入力の履歴を示すテーブル236を含む検証ウィンドウ235Aを表示させることができる。
尚、図27の例では、保護情報記憶部400AのURLは、予め帳票生成部139に通知されているものとした。
次に、本実施形態の保護情報記憶部400Aについて説明する。本実施形態の保護情報記憶部400Aに格納される保護情報は、保護情報記憶部400AのURL等の情報を含んでいても良い。
以下に、本実施形態の保護情報記憶部400Aと、保護情報について説明する。図28は、第二の実施形態の保護情報を説明する図である。尚、図28では、データが利用機器200から端末装置100Aへ入力された場合の保護情報の例を示している。
本実施形態の保護情報280は、保護情報を識別するための識別子71−1と、入力されたデータ71−2と、利用機器200の機器記述子71−3と、入力欄を特定する入力欄記述子71−4と、信頼度71−5とを含む。
また、本実施形態の保護情報280は、アプリ識別子280−1、端末識別子280−2、取得日時280−3、取得場所280−4、URL(Uniform Resource Locator)280−5を含む。
アプリ識別子280−1は、帳票プログラム110の識別子を示し、複数のバージョンや複数の種類の帳票プログラム110に対応させたときに、どの帳票プログラム110により入力されたデータであるかを示す。アプリ識別子280−1は、保護情報出力部137Aが情報を保護情報記憶部400Aへ出力する際に、書き込む。
端末識別子206−2は、データが入力された端末装置100Aの識別子である。取得日時280−3は、データを取得した日時を示す。取得場所280−4は、データが入力されたときの端末装置100Aの位置を示す。端末装置100Aの位置は、例えば端末装置100Aの位置を示す緯度・経度で示されても良いし、端末装置100Aが存在する居室の名称等で示されても良い。言い換えれば、取得場所280−4は、データが端末装置100Aに入力された場所を示す。URL280−5は、保護情報記憶部400Aの格納先を示す。
図29は、第二の実施形態の保護情報記憶部の一例を示す図である。図29に示す保護情報記憶部400Aでは、保護情報出力部137Aから出力された情報と、信頼度算出部136から出力された信頼度とが対応付けられた保護情報として格納される。
本実施形態の保護情報は、図28で示すように、情報の項目として、情報の識別子(ID)、入力欄記述子、機器記述子、アプリ識別子、入力されたデータ、取得場所、取得日時、URL、信頼度を含む。
以上のように、本実施形態では、保護情報記憶部400Aを外部のサーバ装置900に設けることで、保護情報記憶部400Aに格納されたデータをビッグデータとして活用することができる。
(第三の実施形態)
以下に図面を参照して第三の実施形態について説明する。第三の実施形態では、機器制御組込部が、信頼度算出部と保護情報出力部と保護領域生成部の機能を機器入力用ドライバに組み込む点が、第一の実施形態と相違する。よって、以下の第三の実施形態の説明では、第一の実施形態との相違点についてのみ説明し、第一の実施形態と同様の機能構成を有するものには、第一の実施形態の説明で用いた符号と同様の符号を付与し、その説明を省略する。
図30は、第三の実施形態の端末装置の機能を説明する図である。本実施形態の端末装置100Bは、帳票プログラム110Bを有する。帳票プログラム110Bは、帳票処理部130Bを実現する。
本実施形態の帳票処理部130Bは、記述子抽出部131、機器情報取得部132、機器発見部133、機器制御組込部134A、データ取得部135、帳票生成部139、
出力部160を有する。
本実施形態の機器制御組込部134Aは、画面定義情報において、データが保護対象とされていた場合、ドライバデータベース520から、利用機器200と対応するドライバを取得し、機器入力用ドライバ141として、端末装置100Bへ組み込む。
このとき、本実施形態の機器制御組込部134Aは、ドライバデータベース520から取得したドライバに対して、信頼度算出部136、保護情報出力部137、保護領域生成部138、データ送受信部161の機能も組み込む。
本実施形態のデータ送受信部161は、機器入力用ドライバ141Aから帳票処理部130Bに対してデータを送信し、帳票処理部130Bから機器入力用ドライバ141Aに対してデータの識別に必要な情報を受信する。
具体的には、機器制御組込部134Aは、ドライバデータベース520から、信頼度算出部136、保護情報出力部137、保護領域生成部138、データ送受信部161のそれぞれに対応する記述を取得し、ドライバへ組み込む。そして、機器制御組込部134Aは、各部の機能を組み込んだドライバを、機器入力用ドライバ141Aとして、端末装置100Bに組み込む。
本実施形態では、以上のように、機器入力用ドライバ141A側で、保護情報記憶部400に対するデータの入出力を行うようにした。
このようにすることで、保護情報記憶部400に係る処理と、帳票処理部130Bによる処理のそれぞれにおいて、動作する領域を分離させることができる。言い換えれば、本実施形態では、保護情報記憶部400に格納されている保護情報は、帳票プログラム110Bからは操作できない領域で管理されることになる。
よって、本実施形態によれば、帳票プログラム110によって、保護情報記憶部400に対して意図しない変更が加えられることを防止できる。
尚、図30の例では、信頼度算出部136、保護情報出力部137、保護領域生成部138、データ送受信部161は、機器入力用ドライバ141Aが有するものとしているが、これに限定されない。本実施形態では、信頼度算出部136、保護情報出力部137、保護領域生成部138、データ送受信部161を手入力用ドライバ142に備えさせても良い。この場合、機器制御組込部134Aは、機器入力用ドライバ141Aに上記各部を組み込む際に、手入力用ドライバ142にも、同様に上記各部を組み込んでも良い。
開示の技術では、以下に記載する付記のような形態が考えられる。
(付記1)
帳票画面の入力欄の属性として記述された機器情報に基づいて機器を発見し、前記機器と対応する機器制御モジュールを動的に組み込む機器制御組込部と、
前記機器から取得したデータを、前記入力欄を特定する入力欄記述子と対応付けて記憶領域へ格納するデータ取得部と、
前記機器から取得したデータを、前記入力欄記述子と対応付けて保護記憶領域へ格納する情報出力部と、を有する情報処理装置。
(付記2)
前記記憶領域は、格納されたデータの編集が可能な記憶領域であり、前記保護記憶領域は、格納されたデータの編集が禁止された記憶領域である、付記1記載の情報処理装置。
(付記3)
前記機器制御組込部は、
前記入力欄を含む帳票画面の定義として記述された画面定義情報において、保護指定子により、前記機器から取得したデータが保護対象とされていた場合に、前記情報出力部により、前記機器から取得したデータと、前記入力欄記述子とを前記保護記憶領域へ格納させる、付記2記載の情報処理装置。
(付記4)
入力欄記述子と、前記入力欄記述子と対応する入力欄に入力されたデータとを取得し、前記入力されたデータの信頼度を算出する信頼度算出部を有し、
前記信頼度算出部は、
前記機器のハードウェアに関する信頼度を示すハードウェア種別情報と、前記機器制御モジュールに関する信頼度を示すソフトウェア種別情報と、前記機器の利用者に関する信頼度を示すユーザ種別情報と、に基づき、前記データの信頼度を算出し、
前記保護記憶領域において、前記入力欄記述子と一致する入力欄記述子に、前記信頼度とを対応付けて格納する、付記3記載の情報処理装置。
(付記5)
前記電子帳票の表示要求を受けて、前記電子帳票を表示させる帳票生成部を有し、
前記帳票生成部は、
前記画面定義情報から、入力欄を特定する入力欄記述子を抽出し、前記保護記憶領域において、前記入力欄記述子と対応付けられたデータを、前記帳票画面の前記入力欄に表示させる、付記4記載の情報処理装置。
(付記6)
前記帳票生成部は、
前記画面定義情報に、前記機器を特定する機器記述子が含まれるとき、前記帳票画面に、前記入力欄に表示されたデータが前記機器から取得したデータであることを示す第一の表示部品を表示させる、付記5記載の情報処理装置。
(付記7)
前記帳票生成部は、
前記保護記憶領域において、前記入力欄記述子と対応付けられた信頼度が所定の閾値未満であるとき、前記帳票画面において、前記入力欄と対応付けて前記信頼度が低いことを示す第二の表示部品を表示させる、付記5又は6記載の情報処理装置。
(付記8)
前記帳票生成部は、
前記第二の表示部品を選択されたとき、前記保護記憶領域において、前記入力欄記述子と対応付けられたデータの一覧を表示させる、付記7記載の情報処理装置。
(付記9)
前記一覧は、
前記入力欄記述子と対応付けられたデータと、前記データの信頼度と、前記データが前記機器から取得したデータであるか否かを示す情報と、を含む、付記8記載の情報処理装置。
(付記10)
前記機器制御組込部は、
前記画面定義情報に、前記機器を特定する機器記述子が含まれるか否かを判定し、前記機器記述子が含まれる場合に、前記機器情報に基づいて前記機器を発見する、付記3乃至9の何れか一項に記載の情報処理装置。
(付記11)
帳票画面の入力欄の属性として記述された機器情報に基づいて機器を発見し、前記機器と対応する機器制御モジュールを動的に組み込む処理と、
前記機器から取得したデータを、前記入力欄を特定する入力欄記述子と対応付けて記憶領域へ格納する処理と、
前記機器から取得したデータを、前記入力欄記述子と対応付けて保護記憶領域へ格納する処理と、をコンピュータに実行させる情報処理プログラム。
(付記12)
情報処理装置と、サーバ装置とを有する情報処理システムであって、
前記サーバ装置は、機器制御モジュールが格納された記憶装置を有し、
前記情報処理装置は、
帳票画面の入力欄の属性として記述された機器情報に基づいて機器を発見し、前記機器と対応する機器制御モジュールを前記サーバ装置から動的に組み込む機器制御組込部と、
前記機器から取得したデータを、前記入力欄を特定する入力欄記述子と対応付けて記憶領域へ格納するデータ取得部と、
前記機器から取得したデータを、前記入力欄記述子と対応付けて保護記憶領域へ格納する情報出力部と、を有する情報処理システム。
(付記13)
情報処理装置と、サーバ装置とを有する情報処理システムであって、
前記情報処理装置は、
帳票画面の入力欄の属性として記述された機器情報に基づいて機器を発見し、前記機器と対応する機器制御モジュールを前記サーバ装置から動的に組み込む機器制御組込部と、
前記機器から取得したデータを、前記入力欄を特定する入力欄記述子と対応付けて記憶領域へ格納するデータ取得部と、
前記機器から取得したデータを、前記入力欄記述子と、を前記サーバ装置へ送信し、
前記サーバ装置は、前記機器から取得したデータを、前記入力欄記述子と、を対応付けて、保護記憶領域へ格納する、情報処理システム。
(付記14)
コンピュータによる情報処理方法であって、該コンピュータが、
帳票画面の入力欄の属性として記述された機器情報に基づいて機器を発見し、前記機器と対応する機器制御モジュールを動的に組み込み、
前記機器から取得したデータを、前記入力欄を特定する入力欄記述子と対応付けて記憶領域へ格納し、
前記機器から取得したデータを、前記入力欄記述子と対応付けて保護記憶領域へ格納する、情報処理方法。
(付記15)
帳票画面を表示させる帳票処理部と情報の送受信を行う送受信部と、
前記帳票画面の入力欄に入力されたデータを、前記入力欄を特定する入力欄記述子と対応付けて、データ格納後の編集が禁止された所定の記憶領域に格納する情報出力部と、
を有し、
前記送受信部は、
前記帳票画面の入力欄に入力されたデータを取得すると、前記データを前記帳票処理部へ送信し、
前記帳票処理部から、前記入力欄を特定する入力欄記述子を受信すると、前記所定の記憶領域において、前記入力欄記述子と対応付けられたデータを前記帳票処理部へ送信する、情報処理装置。
本発明は、具体的に開示された実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
10 帳票システム
100、100A、100B 端末装置
110、110A、110B 帳票プログラム
120 画面定義情報記述部
130、130A、130B 帳票処理部
131 記述子抽出部
132 機器情報取得部
133 機器発見部
134、134A 機器制御組込部
135 データ取得部
136 信頼度算出部
137 保護情報出力部
138 保護領域生成部
139 帳票生成部
140 記憶部
141、141A 機器入力用ドライバ
142 手入力用ドライバ
200 利用機器
300 入力データ記憶部
400、400A 保護情報記憶部
500 サーバ装置
510 機器情報データベース
520 ドライバデータベース

Claims (6)

  1. 帳票画面の入力欄の属性として記述された機器情報に基づいて機器を発見し、前記機器と対応する機器制御モジュールを、前記帳票画面を表示させる帳票プログラムに動的に組み込む機器制御組込部と、
    前記機器から取得したデータを、前記入力欄を特定する入力欄記述子と対応付けて、データの編集が可能な記憶領域へ格納するデータ取得部と、
    前記機器から取得したデータを、前記入力欄記述子と対応付けてデータの編集が禁止された保護記憶領域へ格納する情報出力部と、
    前記記憶領域に格納されたデータと、前記保護記憶領域に格納されたデータとを比較する比較部と、
    入力欄記述子と、前記入力欄記述子と対応する入力欄に入力されたデータとを取得し、前記入力されたデータの信頼度を算出する信頼度算出部と、を有し、
    前記信頼度算出部は、
    前記機器のハードウェアに関する信頼度を示すハードウェア種別情報と、前記機器制御モジュールに関する信頼度を示すソフトウェア種別情報と、前記機器の利用者に関する信頼度を示すユーザ種別情報と、に基づき、前記データの信頼度を算出し、
    前記保護記憶領域において、前記入力欄記述子と一致する入力欄記述子に、前記信頼度とを対応付けて格納する、情報処理装置。
  2. 前記機器制御組込部は、
    前記入力欄を含む帳票画面の定義として記述された画面定義情報において、保護指定子により、前記機器から取得したデータが保護対象とされていた場合に、前記情報出力部により、前記機器から取得したデータと、前記入力欄記述子とを前記保護記憶領域へ格納させる、請求項1記載の情報処理装置。
  3. 前記帳票画面の表示要求を受けて、前記帳票画面を表示させる帳票生成部を有し、
    前記帳票生成部は、
    前記画面定義情報から、入力欄を特定する入力欄記述子を抽出し、前記保護記憶領域において、前記入力欄記述子と対応付けられたデータを、前記帳票画面の前記入力欄に表示させる、請求項記載の情報処理装置。
  4. 帳票画面の入力欄の属性として記述された機器情報に基づいて機器を発見し、前記機器と対応する機器制御モジュールを、前記帳票画面を表示させる帳票プログラムに動的に組み込む処理と、
    前記機器から取得したデータを、前記入力欄を特定する入力欄記述子と対応付けて、データの編集が可能な記憶領域へ格納する処理と、
    前記機器から取得したデータを、前記入力欄記述子と対応付けて、データの編集が禁止された保護記憶領域へ格納する処理と、
    前記記憶領域に格納されたデータと、前記保護記憶領域に格納されたデータとを比較する処理と、
    入力欄記述子と、前記入力欄記述子と対応する入力欄に入力されたデータとを取得し、前記入力されたデータの信頼度を算出する処理と、をコンピュータに実行させ、
    前記信頼度を算出する処理は、
    前記機器のハードウェアに関する信頼度を示すハードウェア種別情報と、前記機器制御モジュールに関する信頼度を示すソフトウェア種別情報と、前記機器の利用者に関する信頼度を示すユーザ種別情報と、に基づき、前記データの信頼度を算出し、
    前記保護記憶領域において、前記入力欄記述子と一致する入力欄記述子に、前記信頼度とを対応付けて格納する、処理を前記コンピュータに実行させる情報処理プログラム。
  5. 情報処理装置と、サーバ装置とを有する情報処理システムであって、
    前記情報処理装置は、
    帳票画面の入力欄の属性として記述された機器情報に基づいて機器を発見し、前記機器と対応する機器制御モジュールを、前記帳票画面を表示させる帳票プログラムに前記サーバ装置から動的に組み込む機器制御組込部と、
    前記機器から取得したデータを、前記入力欄を特定する入力欄記述子と対応付けて、データの編集が可能な記憶領域へ格納するデータ取得部と、
    前記機器から取得したデータと、前記入力欄記述子と、を前記サーバ装置へ送信し、前記サーバ装置に、前記機器から取得したデータと、前記入力欄記述子と、を対応付けて、データの編集が禁止された保護記憶領域へ格納させる情報出力部と、
    前記記憶領域に格納されたデータと、前記保護記憶領域に格納されたデータとを比較する比較部と、
    入力欄記述子と、前記入力欄記述子と対応する入力欄に入力されたデータとを取得し、前記入力されたデータの信頼度を算出する信頼度算出部と、を有し、
    前記信頼度算出部は、
    前記機器のハードウェアに関する信頼度を示すハードウェア種別情報と、前記機器制御モジュールに関する信頼度を示すソフトウェア種別情報と、前記機器の利用者に関する信頼度を示すユーザ種別情報と、に基づき、前記データの信頼度を算出し、
    前記保護記憶領域において、前記入力欄記述子と一致する入力欄記述子に、前記信頼度とを対応付けて格納する、情報処理システム。
  6. コンピュータによる情報処理方法であって、該コンピュータが、
    帳票画面の入力欄の属性として記述された機器情報に基づいて機器を発見し、前記機器と対応する機器制御モジュールを、前記帳票画面を表示させる帳票プログラムに動的に組み込み、
    前記機器から取得したデータを、前記入力欄を特定する入力欄記述子と対応付けて、データの編集が可能な記憶領域へ格納し、
    前記機器から取得したデータを、前記入力欄記述子と対応付けて、データの編集が禁止された保護記憶領域へ格納し、
    前記記憶領域に格納されたデータと、前記保護記憶領域に格納されたデータとを比較し、
    入力欄記述子と、前記入力欄記述子と対応する入力欄に入力されたデータとを取得し、前記入力されたデータの信頼度を算出し、
    前記信頼度の算出において、
    前記機器のハードウェアに関する信頼度を示すハードウェア種別情報と、前記機器制御モジュールに関する信頼度を示すソフトウェア種別情報と、前記機器の利用者に関する信頼度を示すユーザ種別情報と、に基づき、前記データの信頼度を算出し、
    前記保護記憶領域において、前記入力欄記述子と一致する入力欄記述子に、前記信頼度とを対応付けて格納する、情報処理方法。
JP2016191968A 2016-09-29 2016-09-29 情報処理装置、情報処理プログラム、情報処理システム及び情報処理方法 Active JP6852337B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016191968A JP6852337B2 (ja) 2016-09-29 2016-09-29 情報処理装置、情報処理プログラム、情報処理システム及び情報処理方法
US15/684,107 US10872159B2 (en) 2016-09-29 2017-08-23 Apparatus and system for information processing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016191968A JP6852337B2 (ja) 2016-09-29 2016-09-29 情報処理装置、情報処理プログラム、情報処理システム及び情報処理方法

Publications (2)

Publication Number Publication Date
JP2018054503A JP2018054503A (ja) 2018-04-05
JP6852337B2 true JP6852337B2 (ja) 2021-03-31

Family

ID=61685503

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016191968A Active JP6852337B2 (ja) 2016-09-29 2016-09-29 情報処理装置、情報処理プログラム、情報処理システム及び情報処理方法

Country Status (2)

Country Link
US (1) US10872159B2 (ja)
JP (1) JP6852337B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7247725B2 (ja) * 2019-04-10 2023-03-29 京セラドキュメントソリューションズ株式会社 帳票処理装置及びモバイル端末装置
JP7366763B2 (ja) * 2020-01-17 2023-10-23 株式会社日立製作所 データ信頼度算出装置、データ信頼度算出方法およびデータ信頼度算出プログラム
JP7082772B1 (ja) 2021-09-10 2022-06-09 株式会社ブルーオーシャンシステム バイタルデータ入力装置,データ入力補助装置およびその制御プログラム

Family Cites Families (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3074536B2 (ja) * 1991-05-10 2000-08-07 株式会社日立製作所 電子カルテシステムの入出力制御方法
US5870467A (en) * 1994-09-16 1999-02-09 Kabushiki Kaisha Toshiba Method and apparatus for data input/output management suitable for protection of electronic writing data
JP3637080B2 (ja) * 1994-09-16 2005-04-06 株式会社東芝 データ入出力管理装置及びデータ入出力管理方法
JPH10275106A (ja) * 1997-03-31 1998-10-13 Tsushin Hoso Kiko データ更新方法およびデータ更新システム
JP4333973B2 (ja) 1999-07-21 2009-09-16 本田技研工業株式会社 クランクシャフトの振動防止構造
JP4390234B2 (ja) * 1999-08-06 2009-12-24 株式会社チノー 測定データ格納装置
EP1217942A1 (en) * 1999-09-24 2002-07-03 Healthetech, Inc. Physiological monitor and associated computation, display and communication unit
JP2001117821A (ja) * 1999-10-22 2001-04-27 Sony Corp 記録媒体、編集装置、記録システム
US8489437B1 (en) * 2000-11-02 2013-07-16 Sureharvest Method and system automatically to certify an agricultural product
JP3950624B2 (ja) * 2000-11-22 2007-08-01 日本電気株式会社 診療支援システム、その表示方法及びそのプログラムを記録した記録媒体
DE10057972A1 (de) 2000-11-22 2002-07-18 Zahnradfabrik Friedrichshafen Ermittlung von Getriebekenngrößen
CA2465321C (en) * 2001-11-06 2010-05-11 International Business Machines Corporation Method and system for the supply of data, transactions and electronic voting
US7558958B2 (en) * 2002-06-13 2009-07-07 Microsoft Corporation System and method for securely booting from a network
JP2004085239A (ja) 2002-08-23 2004-03-18 Nippon Dentsu Co Ltd 位置認証装置及び作業検査報告システム
ATE427623T1 (de) * 2002-12-20 2009-04-15 Nokia Corp Verfahren und vorrichtung zur organisation von benutzerseitiger information mit meta-information
US7941855B2 (en) * 2003-04-14 2011-05-10 New Mexico Technical Research Foundation Computationally intelligent agents for distributed intrusion detection system and method of practicing same
JP4150043B2 (ja) * 2003-12-12 2008-09-17 富士通株式会社 データ伝送装置
JP2005352535A (ja) * 2004-06-08 2005-12-22 Ark Joho Systems:Kk データを保護する方法
KR100717405B1 (ko) * 2005-09-09 2007-05-11 삼성전자주식회사 생체 신호 측정기 및 이를 이용한 건강 관리 방법
JP2007163199A (ja) * 2005-12-12 2007-06-28 Toshiba Corp データ記録装置、データ記録方法
JP2009151610A (ja) 2007-12-21 2009-07-09 Alive:Kk 地盤情報転送装置および地盤情報転送プログラム
JP2009176173A (ja) * 2008-01-28 2009-08-06 Fujifilm Corp 検査データ管理装置及び方法、並びに医用ネットワークシステム
US20090217058A1 (en) * 2008-02-27 2009-08-27 Spansion Llc Secure data transfer after authentication between memory and a requester
JP5322620B2 (ja) * 2008-12-18 2013-10-23 株式会社東芝 情報処理装置、プログラム開発システム、プログラム検証方法及びプログラム
JP5338306B2 (ja) * 2008-12-26 2013-11-13 富士通株式会社 データ記憶装置およびデータ記憶装置におけるデータ管理方法
JP2011022969A (ja) * 2009-07-21 2011-02-03 Toshiba Corp 電子カルテ生成装置
JP4510130B1 (ja) * 2009-11-10 2010-07-21 東屋株式会社 情報記録システム
US8652126B2 (en) * 2009-11-24 2014-02-18 General Electric Company Method and computer program for authenticating a physiological sensor, a sensor system, a patient monitor, and a physiological sensor
JP2011133967A (ja) * 2009-12-22 2011-07-07 Yokogawa Electric Corp 測定装置
EP2388730A1 (en) * 2010-05-17 2011-11-23 Nagravision S.A. Method for generating software code
US8904189B1 (en) * 2010-07-15 2014-12-02 The Research Foundation For The State University Of New York System and method for validating program execution at run-time using control flow signatures
US20130211265A1 (en) 2010-10-18 2013-08-15 3M Innovative Properties Company Multifunctional medical device for telemedicine applications
JP5796318B2 (ja) 2011-03-23 2015-10-21 オムロンヘルスケア株式会社 制御装置および認証方法
US8989376B2 (en) * 2012-03-29 2015-03-24 Alcatel Lucent Method and apparatus for authenticating video content
US9720925B1 (en) * 2012-04-12 2017-08-01 Orchard Valley Management Llc Software similarity searching
US9756074B2 (en) * 2013-12-26 2017-09-05 Fireeye, Inc. System and method for IPS and VM-based detection of suspicious objects
US10284619B2 (en) * 2014-01-22 2019-05-07 Telefonaktiebolaget Lm Ericsson (Publ) Method for scalable distributed network traffic analytics in telco
US9805201B2 (en) * 2014-06-23 2017-10-31 Google Inc. Trust agents
JP5753642B1 (ja) * 2014-12-03 2015-07-22 楽天株式会社 入力装置、フォーム入力方法、記録媒体およびプログラム
EP3276627A4 (en) * 2015-03-26 2018-11-21 Olympus Corporation Information recording device and information recording device falsification prevention method
US9990678B1 (en) * 2015-03-31 2018-06-05 Intuit Inc. Systems methods and articles of manufacture for assessing trustworthiness of electronic tax return data
US9606854B2 (en) * 2015-08-13 2017-03-28 At&T Intellectual Property I, L.P. Insider attack resistant system and method for cloud services integrity checking

Also Published As

Publication number Publication date
US10872159B2 (en) 2020-12-22
US20180089446A1 (en) 2018-03-29
JP2018054503A (ja) 2018-04-05

Similar Documents

Publication Publication Date Title
JP4742682B2 (ja) コンテンツ保護装置及びコンテンツ保護解除装置
KR101560448B1 (ko) 스크린 록 환경에서 특정 어플리케이션 호출을 위한 방법
US8386998B2 (en) Software development apparatus for model that requires security
JP4455375B2 (ja) 文書管理システム、文書処理装置及びその文書処理制御方法並びにプログラム
US10853097B1 (en) Robotic process automation with secure recording
JP6852337B2 (ja) 情報処理装置、情報処理プログラム、情報処理システム及び情報処理方法
KR101742900B1 (ko) 제3자를 통한 임의의 애플리케이션으로의 안전한 자동 인증 액세스
US7530117B2 (en) Method and apparatus for preventing unauthorized use of software
WO2012123821A1 (en) System, method, and computer program product for creation, transmission, and tracking of electronic document
CN109766152B (zh) 一种交互方法及装置
JP5274183B2 (ja) 画像処理装置、画像処理方法およびそのプログラムならびに記憶媒体
JP2014013474A (ja) ログ監査システム
JP6562100B2 (ja) ワークフローサーバ、ワークフローシステムと、その処理方法及びプログラム
JP2009025997A (ja) 情報検索表示装置
EP1519291A1 (en) Information processing method and apparatus for managing sales of software
JP2016146123A (ja) 管理装置とその制御方法、情報処理装置とその制御方法、個人番号管理システム、及びプログラム
US8115619B2 (en) Information processing apparatus, document management system and method, and computer program
JP5418135B2 (ja) テストプログラム実行プログラム、テストプログラム実行方法、およびテストプログラム実行装置
CN102402598A (zh) 应用文件系统访问
US20040148260A1 (en) Information processing apparatus, information processing system, information processing method, and program product
US20140082700A1 (en) Information processing apparatus, authentication system, authentication method, and program
JP7159571B2 (ja) 端末装置、プログラムおよび情報処理システム
JP2017194835A (ja) 認証プログラム、認証方法および認証装置
CN114008655A (zh) 服务器装置、服务器装置的控制方法、程序、正规品判定系统以及正规品判定系统的控制方法
JP6530607B2 (ja) システムおよびその制御方法、情報処理装置およびその制御方法、並びにプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190611

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200624

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200721

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200901

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201006

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210105

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210118

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210222

R150 Certificate of patent or registration of utility model

Ref document number: 6852337

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150