JP7243825B2 - 制御装置、制御方法及び制御プログラム - Google Patents

制御装置、制御方法及び制御プログラム Download PDF

Info

Publication number
JP7243825B2
JP7243825B2 JP2021525455A JP2021525455A JP7243825B2 JP 7243825 B2 JP7243825 B2 JP 7243825B2 JP 2021525455 A JP2021525455 A JP 2021525455A JP 2021525455 A JP2021525455 A JP 2021525455A JP 7243825 B2 JP7243825 B2 JP 7243825B2
Authority
JP
Japan
Prior art keywords
learning
iot
unit
normal communication
control
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
JP2021525455A
Other languages
English (en)
Other versions
JPWO2020250319A1 (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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Publication of JPWO2020250319A1 publication Critical patent/JPWO2020250319A1/ja
Application granted granted Critical
Publication of JP7243825B2 publication Critical patent/JP7243825B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/16Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using machine learning or artificial intelligence
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/14Network analysis or design
    • H04L41/145Network analysis or design involving simulating, designing, planning or modelling of a network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16YINFORMATION AND COMMUNICATION TECHNOLOGY SPECIALLY ADAPTED FOR THE INTERNET OF THINGS [IoT]
    • G16Y20/00Information sensed or collected by the things
    • G16Y20/10Information sensed or collected by the things relating to the environment, e.g. temperature; relating to location
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16YINFORMATION AND COMMUNICATION TECHNOLOGY SPECIALLY ADAPTED FOR THE INTERNET OF THINGS [IoT]
    • G16Y30/00IoT infrastructure
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16YINFORMATION AND COMMUNICATION TECHNOLOGY SPECIALLY ADAPTED FOR THE INTERNET OF THINGS [IoT]
    • G16Y40/00IoT characterised by the purpose of the information processing
    • G16Y40/10Detection; Monitoring
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/66Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Medical Informatics (AREA)
  • Theoretical Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Environmental & Geological Engineering (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Toxicology (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Computer And Data Communications (AREA)

Description

本発明は、制御装置、制御方法及び制御プログラムに関する。
カメラや温湿度センサ等の機器をIoT(Internet of Things)機器として通信ネットワークにつなげるIoTゲートウェイ(GW)が知られている。IoT機器は、通常は限定された通信先としか通信しないなど、正常な通信のパターンが限定されている。このため、IoT機器のセキュリティ対策として、正常な通信のパターンを網羅するモデル(以降、正常通信モデルとする。)を、IoT GWが作成する(例えば、非特許文献1参照)。そして、IoT GWは、IoT機器がIoT GWを介して通信する際に、正常通信モデルを満たす正常通信のみを許可し、正常通信モデルを満たさない異常通信は遮断する。
張一凡他、「非集中化IoTセキュリティ制御の検討」、信学技報ICSS2017-58(2018-03)
しかしながら、学習が短期間である場合には正常通信モデルの精度が低下するとともに、適用後に正常通信モデルの過不足が発生する可能性があった。一方、精度を確保するために長期間の学習を行った場合には、正常通信モデルの作成までに時間がかかり、利便性が低下するという問題があった。
本発明は、上記に鑑みてなされたものであって、正常通信モデルの精度と利便性とを保持しながら、IoT機器の通信制御を実現することができる制御装置、制御方法及び制御プログラムを提供することを目的とする。
上述した課題を解決し、目的を達成するために、本発明に係る制御装置は、IoT GWに接続されているIoT機器の正常な通信パターンを学習させた正常通信モデルをIoT機器ごとに作成する学習部と、学習部による学習について、学習環境の負荷を基に、学習の中断、学習の終了、学習の続行及び学習の再開を判定し、判定結果に基づいて学習部による学習処理を制御する判定部と、を有することを特徴とする。
また、本発明に係る制御方法は、制御装置が実行する制御方法であって、IoT GWに接続されているIoT機器の正常な通信パターンを学習させた正常通信モデルをIoT機器ごとに作成する学習工程と、学習工程による学習について、学習環境の負荷を基に、学習の中断、学習の終了、学習の続行及び学習の再開を判定し、判定結果に基づいて学習工程における学習処理を制御する判定工程と、を含んだことを特徴とする。
また、本発明に係る制御プログラムは、IoT GWに接続されているIoT機器の正常な通信パターンを学習させた正常通信モデルをIoT機器ごとに作成する学習ステップと、学習ステップによる学習について、学習環境の負荷を基に、学習の中断、学習の終了、学習の続行及び学習の再開を判定し、判定結果に基づいて学習ステップにおける学習処理を制御する判定ステップと、をコンピュータに実行させる。
本発明によれば、正常通信モデルの精度と利便性とを保持しながら、IoT機器の通信制御を実現することができる。
図1は、実施の形態に係る通信システムの構成の一例を示す図である。 図2は、図1に示すIoT GWの構成の一例を示すブロック図である。 図3は、正常通信モデルの一例を説明する図である。 図4は、IoT機器の通信パターンに対する学習結果とその収束を説明する図である。 図5は、IoT機器の通信パターンに対する学習結果とその収束を説明する図である。 図6は、図2に示すIoT GWが実施する学習に対する制御処理の処理手順のフローチャートである。 図7は、図6に示す中断終了判定処理の処理手順を示すフローチャートである。 図8は、図6に示す続行判定処理の処理手順を示すフローチャートである。 図9は、図6に示す再開判定処理の処理手順を示すフローチャートである。 図10は、従来における正常通信モデルの作成処理と、本実施の形態に係るIoT GWによる正常通信モデルの作成処理を説明する図である。 図11は、実施例1における学習処理を説明する図である。 図12は、図1に示すサーバの構成の一例を示すブロック図である。 図13は、プログラムが実行されることにより、実施の形態のIoT GW及びサーバが実現されるコンピュータの一例を示す図である。
以下、図面を参照して、本発明の一実施の形態を詳細に説明する。なお、この実施の形態により本発明が限定されるものではない。また、図面の記載において、同一部分には同一の符号を付して示している。
[実施の形態]
本実施の形態では、IoT GWに接続するIoT機器の通信を、IoT機器の正常な通信のパターンを網羅する正常通信モデルを用いて制御する通信システムについて説明する。
[通信システムの構成の一例]
実施の形態に係る通信システムについて説明する。図1は、実施の形態に係る通信システム1の構成の一例を示す図である。実施の形態に係る通信システム1は、ネットワークNを介して、複数のIoT GW10(制御装置)とサーバ20とが接続される構成を有する。また、IoT GW10は、複数のIoT機器30を収容する。
IoT GW10は、配下のIoT機器30と、ネットワークNを介した外部装置との通信を制御する。IoT GW10は、例えば、IoTサービスを提供するサービス提供者が提供する装置である。IoT GW10は、配下のIoT機器30から情報を受信し、サーバ20に送信する。また、IoT GW10は、配下のIoT機器30から受信した情報や予め設定される情報等に基づき、IoT機器30の通信を制御する。IoT GW10は、IoT機器30の通信について、正常通信モデルを基に、異常通信を発生させたIoT機器30の通信を遮断する。また、IoT GW10は、異常通信の発生をユーザに通知する処理を行う。
サーバ20は、IoT GW10を提供するサービス提供者が管理する情報処理装置である。サーバ20の構成は特に限定されない。サーバ20は、例えば、物理的に一つのサーバであっても、複数のサーバにまたがって仮想的に構築される仮想サーバであってもよい。
IoT機器30は、IoT GW10の制御対象機器である。IoT機器30は、例えば、所定の空間および位置に配置される温度センサ、照度センサ、人感センサ、開閉センサ等のセンサである。また、例えば、IoT機器30は、IoTサービスにより消費電力量を制御される情報処理装置である。また、例えば、IoT機器30は、所定空間の画像を撮影してIoT GW10に送信する撮像装置である。なお、各IoT GW10に収容されるIoT機器30の数は、特に限定されない。
IoT機器30は、IoT GW10と通信可能に接続する。IoT機器30とIoT GW10との間は、有線ネットワーク、無線ネットワーク、または、その組み合わせを用いて、接続されている。
[IoT GWの構成]
図2を参照し、IoT GW10の構成及び機能の一例について説明する。図2は、図1に示すIoT GW10の構成の一例を示すブロック図である。図2に示すように、IoT GW10は、通信部11、記憶部12及び制御部13を有する。
通信部11は、ネットワーク等を介して接続された他の装置との間で、各種情報を送受信する通信インタフェースである。通信部11は、NIC(Network Interface Card)等で実現され、LAN(Local Area Network)やインターネットなどの電気通信回線を介した他の装置と制御部13(後述)との間の通信を行う。例えば、通信部11は、IoT機器30との間の通信を行う。また、通信部11は、サーバ20との間の通信を行う。
記憶部12は、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現され、IoT GW10を動作させる処理プログラムや、処理プログラムの実行中に使用されるデータなどが記憶される。記憶部12は、機器識別情報121及び正常通信モデル122を有する。
機器識別情報121は、IoT機器30の通信の特徴を示す情報であり、例えば、IoT機器30の通信パターンを示す情報である。機器識別情報121は、IoT GW10がIoT機器30の通信を把捉し解析することによって取得することができる情報である。機器識別情報121は、例えば、機器毎の開放ポート、通信先、通信頻度、通信プロトコル、通信データサイズ、ペイロードの特徴等である。機器識別情報121は、例えば、IoT機器30の通信先のドメイン名である。
正常通信モデル122は、各IoT機器30の正常な通信パターンを学習させたモデルであり、IoT機器30ごとに作成される。正常通信モデル122は、IoT GW10が各IoT機器30の通信を、通信先数、パケットサイズなどの複数の観点から、統計的に解析し、学習することによって、作成される。正常通信モデル122は、正常通信に関する情報であり、IoT GW10は、IoT機器30がIoT GW10を介して通信する際に、正常通信モデル122を満たす正常通信のみを許可し、正常通信モデルを満たさない異常通信は遮断する。
図3は、正常通信モデル122の一例を説明する図である。図3に示すように、正常通信モデル122は、例えば、通信の実績に基づくホワイトリストである。例えば、正常通信モデル122は、IoT機器30ごとに作成されたホワイトリスト群である。具体的には、正常通信モデル122は、IoT機器(a)については、「URL(a1)」,「URL(a2)」が正常通信先であることを示すホワイトリストを有する。
また、正常通信モデル122は、通信の統計値に基づく信頼区間を示す情報であってもよい。統計値は、単位時間当たりのパケットの特徴量のことであり、例えば、送信パケット数及び受信パケット数等である。
制御部13は、IoT GW10全体を制御する。制御部13は、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)等の電子回路や、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)等の集積回路である。また、制御部13は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、内部メモリを用いて各処理を実行する。また、制御部13は、各種のプログラムが動作することにより各種の処理部として機能する。制御部13は、学習部131、判定部132及び通信制御部133を有する。
学習部131は、IoT GW10に接続されているIoT機器30の正常な通信パターンを学習させた正常通信モデル122をIoT機器30ごとに作成する。また、学習部131は、判定部132の判定結果に応じて、IoT機器30の正常な通信パターンの学習の中断、学習の終了、学習の続行及び学習の再開を行い、正常通信モデル122の作成及び更新を継続して行う。学習部131は、判定部132によって判定された期間、学習を続行または再開することにより、最新の正常通信モデル122を作成または更新することができる。なお、学習方法については、既存のいずれの学習方法を用いてもよい。
なお、学習環境として、1,2台程度のIoT機器30の通信の学習だけで高負荷(例:CPU使用率90%以上等)となるような極端に低性能な環境は想定しない。また、本実施の形態では、学習を中断してから、後程続行することが可能である場合を前提とする。また、バッチ処理による通信の場合、通信開始から終了までのすべての通信内容を学習の対象とする必要がある。本実施の形態では、通信の途中で学習を中断する可能性があるため、バッチ処理の採用は推奨しない。
判定部132は、学習部131による学習について、学習環境の負荷を基に、学習の中断、学習の終了、学習の続行及び学習の再開を判定し、判定結果に基づいて学習部131による学習処理を制御する。判定部132は、学習部131による学習の期間を制御して、IoT機器30に対する正常通信モデル122の精度を保持しながら、正常通信モデル122の利便性の低下を防いでいる。
判定部132は、学習環境の負荷、学習対象のIoT機器30の台数、学習結果または前回の学習を終了してからの期間を基に、学習部131による学習の期間を制御する。判定部132は、中断終了判定部134(第1の判定部)、続行判定部135(第2の判定部)及び再開判定部136(第3の判定部)を有する。
中断終了判定部134は、学習環境の負荷、学習対象のIoT機器30の台数及び学習結果を基に、学習部131による学習の中断または学習の終了を、学習中であるIoT機器ごとに判定する。中断終了判定部134は、学習部131に対し、学習の中断を判定した場合には学習の中断を判定したIoT機器30に関する学習を中断させる。中断終了判定部134は、学習部131に対し、学習の終了を判定した場合には学習の終了を判定したIoT機器30に関する学習を終了させる。
中断終了判定部134は、学習結果が一定値より収束している場合、すなわち、収束率が一定値未満である場合には、学習の終了を判定する。中断終了判定部134は、収束率が一定値以上である場合には、学習の中断を判定する。
図4及び図5は、IoT機器30の通信パターンに対する学習結果とその収束を説明する図である。図4は、ホワイトリストの場合について示し、学習データ件数に対するホワイトリストの通信先数の変化を示すグラフの傾きが収束率となる。この場合、傾き(収束率)が一定値未満の時点で学習が完了する(図4の(1)参照)。また、図5は、通信区間の場合について示し、経過時間に対する閾値の変化を示すグラフの傾きが収束率となる。この場合、傾き(収束率)が一定値未満の時点で学習が完了する(図5の(1)参照)。
続行判定部135は、学習環境の負荷、学習対象のIoT機器30の台数及び中断期間の長さを基に、中断された学習の続行の可否を、学習が中断中であるIoT機器30ごとに定期的に判定する。続行判定部135は、学習部131に対し、学習の続行を判定した場合には、学習の続行を判定したIoT機器30に関する学習を続行させる。
続行判定部135は、学習部131に対し、所定の条件を満たす台数分だけIoT機器30の通信に対する学習を続行させる。例えば、所定の条件の一つは、IoT GW10のリソース使用率が、b%以上a%未満である。この条件を満たす場合には、続行判定部135は、直近の中断期間が長いIoT機器30の上位1位の1台についての学習を学習部131に続行させる。また、所定の条件の一つは、IoT GW10のリソース使用率が、c%以上b%未満である。この条件を満たす場合には、続行判定部135は、直近の中断期間が長いIoT機器30の上位1位及び2位の2台についての学習を学習部131に続行させる。
再開判定部136は、前回の学習を終了してからの期間、学習環境の負荷及び学習対象のIoT機器30の台数を基に、学習の再開の可否を定期的に判定し、学習の再開を判定した場合には、学習部131に学習を再開させる。
通信制御部133は、学習部131が作成または更新した正常通信モデル122を用いて、IoT機器30の通信を制御する。通信制御部133は、IoT機器30がIoT GW10を介して通信する際に、正常通信モデル122を満たす正常通信のみを許可し、正常通信モデルを満たさない異常通信は遮断する。通信制御部133は、学習の最初の中断時点または学習の終了時点までに学習部131が作成または更新した正常通信モデル122を適用して、IoT機器30の通信を制御する。したがって、通信制御部133は、最新の正常通信モデル122を用いることができる。
[学習に対する制御処理の処理手順]
次に、図6を参照して、IoT GW10が実施する学習に対する制御処理の処理手順について説明する。図6は、図2に示すIoT GW10が実施する学習に対する制御処理の処理手順のフローチャートである。
図6に示すように、IoT GW10は、IoT GW10にIoT機器30が接続し、利用者による学習承認を受け付けると(ステップS1)、学習部131は、学習を開始する(ステップS2)。IoT GW10は、学習を継続している間、作成または更新中の正常通信モデル122を定期的にIoT機器30に適用し、IoT機器30は、正常通信モデル122に基づいて通信を実行する。IoT GW10は、学習を開始してから一定の条件を満たした場合に学習を中断または終了する。
まず、IoT GW10では、中断終了判定部134が、学習開始後、学習環境の負荷、学習対象のIoT機器30の台数及び学習結果を基に、学習部131による学習の中断または学習の終了を、学習中であるIoT機器30ごとに判定する中断終了判定処理を定期的に行う(ステップS3)。そして、判定部132は、中断終了判定処理における判定結果が、中断判定または終了判定であるかを判定する(ステップS4)。
中断終了判定処理における判定結果が中断である場合(ステップS4:中断)、中断終了判定部134は、学習部131による学習を中断させる(ステップS5)。最初の学習である場合には、正常通信モデル122が作成されていないため、学習部131は、中断時点までに作成した正常通信モデル122を、暫定的にIoT GW10に適用する。また、2回目以降の学習である場合には、既に作成された正常通信モデル122が適用されているため、学習部131は、中断時点までに更新した正常通信モデル122を適用しない。IoT機器30は、適用された正常通信モデル122に基づいて通信を実行する。
続いて、続行判定部135は、学習環境の負荷、学習対象のIoT機器30の台数及び中断期間の長さを基に、中断された学習の続行の可否を、学習が中断中であるIoT機器30ごとに定期的に判定する続行判定処理を行う(ステップS6)。判定部132は、続行判定処理における判定結果が、続行判定であるかを判定する(ステップS7)。
続行判定処理における判定結果が続行判定でない場合(ステップS7:No)、ステップS6に戻り、続行判定部135は、続行判定処理を行う。一方、続行判定処理における判定結果が続行判定である場合(ステップS7:Yes)、続行判定部135は、続行と判定されたIoT機器30についての学習を学習部131に続行させ(ステップS8)、ステップS3に進む。
これに対し、中断終了判定処理における判定結果が終了である場合(ステップS4:終了)、中断終了判定部134は、学習部131による学習を終了させる(ステップS9)。学習部131は、終了時点までに作成または更新した正常通信モデル122をIoT GW10に適用し、IoT機器30は、正常通信モデル122に基づいて通信を実行する。
学習部131は、学習終了後、一定の条件を満たした場合に学習を再開する。具体的には、再開判定部136が、前回の学習を終了してからの期間、学習環境の負荷及び学習対象のIoT機器30の台数を基に、学習の再開の可否を定期的に判定する再開判定処理を行う(ステップS10)。判定部132は、再開判定処理における判定結果が再開判定であるか否かを判定する(ステップS11)。
再開判定処理における判定結果が再開判定でない場合(ステップS11:No)、ステップS10に戻り、再開判定部136は、再開判定処理を行う。一方、再開判定処理における判定結果が再開判定である場合(ステップS11:Yes)、再開判定部136は、再開と判定されたIoT機器30についての学習を学習部131に再開させ(ステップS12)、ステップS3に進む。
なお、学習部131が学習を継続する間、作成中または更新中の正常通信モデル122は、IoT GW10には適用しない。作成済みまたは更新済みの正常通信モデル122がIoT GW10に適用される。
[中断終了判定処理]
次に、図6に示す中断終了判定処理(ステップS3)について説明する。図7は、図6に示す中断終了判定処理の処理手順を示すフローチャートである。中断終了判定部134は、ステップS21~ステップS26に示す処理を定期的に実行することによって、学習部131による学習を中断または終了するかを、IoT機器30ごとに判定する。
図7に示すように、中断終了判定部134は、学習起因による学習の環境負荷が一定値以上であるか否かを判定する(ステップS21)。中断終了判定部134は、例えば、自装置のCPU使用率が一定値以上であるか、或いは、自装置のメモリ使用量が一定値以上であるかを判定する。CPU使用率に関する判定値、メモリ使用量に関する判定値は、予め設定される。
学習起因による学習の環境負荷が一定値以上である場合(ステップS21:Yes)、中断終了判定部134は、学習中の全IoT機器30の台数が一定数以上であるか否かを判定する(ステップS22)。
学習中の全IoT機器30の台数が一定数以上である場合(ステップS22:Yes)、中断終了判定部134は、学習中のIoT機器30ごとに、中断回数が最も小さく、かつ、正常通信モデル122の学習結果が最も収束しているか否かを判定する。言い換えると、中断終了判定部134は、判定対象のIoT機器30について、中断回数及び学習の収束率が最小値であるか否かを判定する(ステップS23)。
学習起因による学習の環境負荷が一定値以上でない場合(ステップS21:No)、学習中の全IoT機器30の台数が一定数以上でない場合(ステップS22:No)、または、中断回数及び学習の収束率が最小値でない場合(ステップS23:No)、中断終了判定部134は、ステップS21の処理に戻る。
中断回数及び学習の収束率が最小値であるIoT機器30がある場合(ステップS23:Yes)、中断終了判定部134は、このIoT機器30について、正常通信モデル122の学習結果が一定値(閾値)より収束しているか否か、すなわち、収束率が一定値未満であるか否かを判定する(ステップS24)。
収束率が一定値未満である場合(ステップS24:Yes)、中断終了判定部134は、このIoT機器30について、学習部131による学習の終了を判定する(ステップS25)。一方、収束率が一定値未満でない場合(ステップS24:No)、中断終了判定部134は、このIoT機器30について、学習部131による学習の中断を判定する(ステップS26)。
[続行判定処理]
次に、図6に示す続行判定処理(ステップS6)について説明する。図8は、図6に示す続行判定処理の処理手順を示すフローチャートである。続行判定部135は、ステップS31~ステップS34に示す処理を定期的に実行することによって、学習部131による学習を続行するか否かを、IoT機器30ごとに判定する。
図8に示すように、続行判定部135は、まず、学習起因による学習の環境負荷が一定値未満であるか否かを判定する(ステップS31)。続行判定部135は、例えば、自装置のCPU使用率が一定値未満であるか、或いは、自装置のメモリ使用量が一定値未満であるかを判定する。CPU使用率に関する判定値、メモリ使用量に関する判定値は、予め設定される。
学習起因による学習の環境負荷が一定値未満である場合(ステップS31:Yes)、続行判定部135は、学習を中断中の全IoT機器30の台数が一定数未満であるか否かを判定する(ステップS32)。
学習中の全IoT機器30の台数が一定数未満である場合(ステップS32:Yes)、続行判定部135は、学習を中断中の全IoT機器30のうち、直近の学習の中断期間が長いIoT機器30について、中断期間の長さに応じて、所定の条件を満たすIoT機器30があるか否かを判定する(ステップS33)。
所定の条件の一つは、例えば、IoT GW10のリソース使用率が、b%以上a%未満である。この条件を満たす場合には、続行判定部135は、直近の中断期間が長いIoT機器30の上位1位の1台についての学習を学習部131に続行させる。また、所定の条件の一つは、IoT GW10のリソース使用率が、c%以上b%未満である。この条件を満たす場合には、続行判定部135は、直近の中断期間が長いIoT機器30の上位1位及び2位の2台についての学習を学習部131に続行させる。
所定の条件を満たすIoT機器30がある場合(ステップS33:Yes)、所定の条件を満たすIoT機器30の台数分、学習部131による学習を続行させる判定を行う(ステップS34)。
学習起因による学習の環境負荷が一定値未満でない場合(ステップS31:No)、学習中の全IoT機器30の台数が一定数未満でない場合(ステップS32:No)、または、所定の条件を満たすIoT機器30がない場合(ステップS33:No)、続行判定部135は、ステップS31の処理に戻る。
[再開判定処理]
次に、図6に示す再開判定処理(ステップS10)について説明する。図9は、図6に示す再開判定処理の処理手順を示すフローチャートである。再開判定部136は、ステップS41~ステップS45に示す処理を定期的に実行することによって、学習部131による学習を再開する否かを判定する。
図9に示すように、再開判定部136は、直近の学習の終了からの期間が一定値の倍数であるか否かを判定する(ステップS41)。一定値は、IoT GW10の環境負荷等を考慮して設定される。一定値は、例えば、1週間、2週間、3週間等である。直近の学習の終了からの期間が一定値の倍数でない場合(ステップS41:No)、再開判定部136は、ステップS41の処理に戻る。
直近の学習の終了からの期間が一定値の倍数である場合(ステップS41:Yes)、再開判定部136は、学習を再開することを考慮すべき条件を満たすか否かを判定する。具体的には、再開判定部136は、学習起因による学習の環境負荷が一定値未満であるか否かを判定する(ステップS42)。中断終了判定部134は、例えば、自装置のCPU使用率が一定値未満であるか、或いは、自装置のメモリ使用量が一定値未満であるかを判定する。CPU使用率に関する判定値、メモリ使用量に関する判定値は、予め設定される。
続いて、学習起因による学習の環境負荷が一定値未満である場合(ステップS42:Yes)、再開判定部136は、学習中の全IoT機器30の台数が一定数未満であるか否かを判定する(ステップS43)。
学習中の全IoT機器30の台数が一定数未満である場合(ステップS43:Yes)、学習を再開することが可能であるため、再開判定部136は、学習部131による学習の再開を判定する(ステップS45)。
これに対し、学習起因による学習の環境負荷が一定値未満でない場合(ステップS42:No)、または、学習中の全IoT機器30の台数が一定数未満でない場合(ステップS43:No)、再開判定部136は、ステップS42及びステップS43の確認回数が一定値未満であるか否かを判定する(ステップS44)。
確認回数が一定値未満である場合(ステップS44:Yes)、再開判定部136は、ステップS42の処理に戻る。また、確認回数が一定値未満でない場合(ステップS44:No)、再開判定部136は、ステップS41の処理に戻る。
[実施の形態の効果]
本実施の形態に係るIoT GW10は、自装置に接続されているIoT機器30の正常な通信パターンを学習させた正常通信モデルをIoT機器30ごとに作成する。そして、IoT GW10は、学習部131による学習について、学習の中断、学習の終了、学習の続行及び学習の再開を判定し、判定結果に基づいて、学習部131による学習処理を制御する。そして、IoT GW10は、学習部131が作成した正常通信モデルを適用して、IoT機器30の通信を制御する。
このように、IoT GW10は、学習を継続させつつ、学習により作成または更新された最新の正常通信モデルを定期的に適用することによって、正常通信モデルの精度と利便性とを保持しながら、IoT機器30の通信制御を実現することができる。
図10は、従来における正常通信モデルの作成処理と、本実施の形態に係るIoT GW10による正常通信モデルの作成処理を説明する図である。学習により正常通信モデルを作成して適用するに際して、従来の方法では、学習を終了してから正常通信モデルを適用していた。
しかしながら、従来の方法では、学習が長期間である場合(図10の(1)参照)、正常通信モデルの適用までに長期間を要するため、利便性が低下する。また、従来の方法では、学習が短期間である場合(図10の(2)参照)、正常通信モデルの精度が低下し、かつ、適用後に正常通信モデルの過不足が発生する可能性がある。
これに対し、IoT GW10では、学習を継続しつつ、学習により作成または更新された最新の正常通信モデルを定期的に適用することが可能である(図10の(3)参照)。
さらに、IoT GW10は、学習環境の負荷、学習対象のIoT機器30の台数、学習結果、及び、中断期間または終了期間の長さを基に、学習の中断、学習の終了、学習の続行及び学習の再開を判定し、判定結果に基づいて、学習部131による学習処理を制御する。
したがって、IoT GW10は、学習を継続しつつ最新の正常通信モデルを適用する際、高負荷時には学習を中断または終了し、高負荷時以外に学習を続行または再開している。このように、IoT GW10は、学習環境の負荷、学習対象のIoT機器30の台数、学習結果、及び、中断期間または終了期間の長さを考慮して学習の期間を適切に設定するため、IoT機器30の数の増加にともない学習の処理が高負荷となることを回避している。
[実施例1]
次に、実施例1について説明する。図11は、実施例1における学習処理を説明する図である。まず、学習の中断、終了、続行及び再開の条件を以下のように設定する。
学習の中断及び終了、及び、学習の続行については、5分周期で確認する。そして、学習起因による学習環境の負荷を確認する際の条件は、学習の中断または終了の判定に関しては、CPU使用率が60%以上である。なお、この条件は、図7のステップS21の判定条件である。また、学習起因による学習環境の負荷を確認する際の条件は、学習の続行または再開の判定に関しては、CPU使用率が60%未満である。なお、この条件は、図8のステップS31または図9のステップS42の判定条件である。
学習中の全IoT機器30の台数を確認する際の条件は、学習の中断または終了の判定に関しては、10台以上である。なお、この条件は、図7のステップS22の判定条件である。また、学習中の全IoT機器30の台数を確認する際の条件は、学習の続行または再開の判定に関しては、10台未満である。なお、この条件は、図8のステップS32または図9のステップS43の判定条件である。
学習の中断及び終了の条件となる収束率は、収束率が0.1以上の場合は学習中断とし、収束率が0.1未満の場合は学習終了とする。
学習の続行の条件として、学習起因によるCPU使用率と続行台数の関係に関しては、CPU使用率50%以上60%未満の場合は中断期間が長い上位1台について学習続行とする。また、学習の続行の条件として、CPU使用率40%以上50%未満の場合は中断期間が長い上位2台について学習続行とする。また、学習の続行の条件として、CPU使用率40%未満の場合は中断期間が長い上位3台について学習続行とする。
この条件で、学習を制御した場合、IoT GW10は、時刻「HH:00」の場合には、収束率が0.1以上であるIoT機器(a)の学習を中断する。IoT GW10は、この学習が最初の学習である場合、中断時点までに作成したIoT機器(a)に関する正常通信モデルを適用する。
続いて、時刻「HH:05」の場合、条件に基づき、CPU使用率が55%であるため、中断期間が長い上位の1台、この場合には、IoT機器(a)の学習を続行する。そして、時刻「HH:10」の場合、収束率が0.1未満となったIoT機器(b)の学習を終了する。そして、IoT GW10は、学習が終了したIoT機器(b)に関する正常通信モデルを適用する。
[変形例1]
また、本実施の形態では、IoT GW10が、IoT機器30の通信を学習し、正常通信モデルを作成する場合を例に説明したが、サーバ20が、正常通信モデルを作成してもよい。図12は、図1に示すサーバ20の構成の一例を示すブロック図である。
図12に示すように、サーバ20は、ネットワーク等を介して接続された他の装置との間で通信を行う通信部21と、RAMやフラッシュメモリ等によって構成される記憶部22と、CPU等によって構成される制御部23とを有する。
サーバ20では、通信部21を介して、IoT GW10から、IoT GW10が収容するIoT機器30の正常な通信パターンを取得し、学習部131が、正常通信モデル122をIoT機器30ごとに作成する。そして、判定部132は、学習部131による学習について、学習の中断、学習の終了、学習の続行及び学習の再開を判定し、判定結果に基づいて学習部131による学習処理を制御する。
IoT GW10において正常通信モデル122の作成が難しい場合、サーバ20が、正常通信モデル122をIoT機器30ごとに作成または更新し、最新の正常通信モデルを、IoT GW10に適用してもよい。
[システム構成等]
図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部又は任意の一部が、CPU及び当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
また、本実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的に行なうこともでき、あるいは、手動的に行なわれるものとして説明した処理の全部又は一部を公知の方法で自動的に行なうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
[プログラム]
図13は、プログラムが実行されることにより、IoT GW10及びサーバ20が実現されるコンピュータの一例を示す図である。コンピュータ1000は、例えば、メモリ1010、CPU1020を有する。また、コンピュータ1000は、ハードディスクドライブインタフェース1030、ディスクドライブインタフェース1040、シリアルポートインタフェース1050、ビデオアダプタ1060、ネットワークインタフェース1070を有する。これらの各部は、バス1080によって接続される。
メモリ1010は、ROM1011及びRAM1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、ハードディスクドライブ1090に接続される。ディスクドライブインタフェース1040は、ディスクドライブ1100に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ1100に挿入される。シリアルポートインタフェース1050は、例えばマウス1110、キーボード1120に接続される。ビデオアダプタ1060は、例えばディスプレイ1130に接続される。
ハードディスクドライブ1090は、例えば、OS(Operating System)1091、アプリケーションプログラム1092、プログラムモジュール1093、プログラムデータ1094を記憶する。すなわち、IoT GW10及びサーバ20の各処理を規定するプログラムは、コンピュータにより実行可能なコードが記述されたプログラムモジュール1093として実装される。プログラムモジュール1093は、例えばハードディスクドライブ1090に記憶される。例えば、IoT GW10及びサーバ20における機能構成と同様の処理を実行するためのプログラムモジュール1093が、ハードディスクドライブ1090に記憶される。なお、ハードディスクドライブ1090は、SSD(Solid State Drive)により代替されてもよい。
また、上述した実施形態の処理で用いられる設定データは、プログラムデータ1094として、例えばメモリ1010やハードディスクドライブ1090に記憶される。そして、CPU1020が、メモリ1010やハードディスクドライブ1090に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出して実行する。
なお、プログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1090に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ1100等を介してCPU1020によって読み出されてもよい。あるいは、プログラムモジュール1093及びプログラムデータ1094は、ネットワーク(LAN、WAN(Wide Area Network)等)を介して接続された他のコンピュータに記憶されてもよい。そして、プログラムモジュール1093及びプログラムデータ1094は、他のコンピュータから、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
以上、本発明者によってなされた発明を適用した実施形態について説明したが、本実施形態による本発明の開示の一部をなす記述及び図面により本発明は限定されることはない。すなわち、本実施形態に基づいて当業者等によりなされる他の実施形態、実施例及び運用技術等は全て本発明の範疇に含まれる。
1 通信システム
10 IoT GW
11,21 通信部
12,22 記憶部
13,23 制御部
121 機器識別情報
122 正常通信モデル
131 学習部
132 判定部
133 通信制御部
134 中断終了判定部
135 続行判定部
136 再開判定部
20 サーバ
30 IoT機器
N ネットワーク

Claims (7)

  1. IoTゲートウェイに接続されているIoT機器の正常な通信パターンを学習させた正常通信モデルを前記IoT機器ごとに作成する学習部と、
    前記学習部による学習について、学習環境を提供するプロセッサの負荷を基に、学習の中断、学習の終了、学習の続行及び学習の再開を判定し、判定結果に基づいて前記学習部による学習処理を制御する判定部と、
    を有することを特徴とする制御装置。
  2. 前記学習部が作成した前記正常通信モデルを適用して、前記IoT機器の通信を制御する通信制御部
    をさらに有することを特徴とする請求項1に記載の制御装置。
  3. 前記判定部は、
    学習環境の負荷、学習対象のIoT機器の台数及び学習結果を基に、前記学習部による学習の中断または学習の終了を、学習中である前記IoT機器ごとに判定し、前記学習部に対し、学習の中断を判定した場合には学習の中断を判定した前記IoT機器に関する学習を中断させ、学習の終了を判定した場合には学習の終了を判定した前記IoT機器に関する学習を終了させる第1の判定部
    を有することを特徴とする請求項1または2に記載の制御装置。
  4. 前記判定部は、
    学習環境の負荷、学習対象の前記IoT機器の台数及び中断期間の長さを基に、中断された学習の続行の可否を、学習が中断中である前記IoT機器ごとに定期的に判定し、前記学習部に対し、学習の続行を判定した場合には学習の続行を判定した前記IoT機器に関する学習を続行させる第2の判定部
    を有することを特徴とする請求項3に記載の制御装置。
  5. 前記判定部は、
    前回の学習を終了してからの期間、学習環境の負荷及び学習対象のIoT機器の台数を基に、学習の再開の可否を定期的に判定し、学習の再開を判定した場合には前記学習部に学習を再開させる第3の判定部
    を有することを特徴とする請求項3または4に記載の制御装置。
  6. 制御装置が実行する制御方法であって、
    IoTゲートウェイに接続されているIoT機器の正常な通信パターンを学習させた正常通信モデルを前記IoT機器ごとに作成する学習工程と、
    前記学習工程による学習について、学習環境を提供するプロセッサの負荷を基に、学習の中断、学習の終了、学習の続行及び学習の再開を判定し、判定結果に基づいて前記学習工程における学習処理を制御する判定工程と、
    を含んだことを特徴とする制御方法。
  7. IoTゲートウェイに接続されているIoT機器の正常な通信パターンを学習させた正常通信モデルを前記IoT機器ごとに作成する学習ステップと、
    前記学習ステップによる学習について、学習環境を提供するプロセッサの負荷を基に、学習の中断、学習の終了、学習の続行及び学習の再開を判定し、判定結果に基づいて前記学習ステップにおける学習処理を制御する判定ステップと、
    をコンピュータに実行させるための制御プログラム。
JP2021525455A 2019-06-11 2019-06-11 制御装置、制御方法及び制御プログラム Active JP7243825B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2019/023161 WO2020250319A1 (ja) 2019-06-11 2019-06-11 制御装置、制御方法及び制御プログラム

Publications (2)

Publication Number Publication Date
JPWO2020250319A1 JPWO2020250319A1 (ja) 2020-12-17
JP7243825B2 true JP7243825B2 (ja) 2023-03-22

Family

ID=73781347

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021525455A Active JP7243825B2 (ja) 2019-06-11 2019-06-11 制御装置、制御方法及び制御プログラム

Country Status (3)

Country Link
US (1) US11765047B2 (ja)
JP (1) JP7243825B2 (ja)
WO (1) WO2020250319A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111835842B (zh) * 2020-07-02 2023-02-28 远景智能国际私人投资有限公司 网关资源的更新方法、装置及物联网控制平台
US20240129202A1 (en) * 2021-02-18 2024-04-18 Nippon Telegraph And Telephone Corporation Analysis device, analysis system, analysis method, and analysis program

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016136233A (ja) 2015-01-19 2016-07-28 株式会社デンソー 音声学習システム、音声学習方法
JP2017207939A (ja) 2016-05-19 2017-11-24 日本電信電話株式会社 リスクベース認証装置、リスク判定モデル用学習データ生成装置、リスク判定モデル学習装置、リスク判定モデル用学習データ生成方法、リスク判定モデル学習方法、プログラム
JP2018092613A (ja) 2016-12-06 2018-06-14 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 情報処理装置、情報処理方法及びプログラム

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11500082B2 (en) * 2018-11-14 2022-11-15 Lockheed Martin Corporation Iterative learning adaptive sonar system, apparatus, method, and computer program product

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016136233A (ja) 2015-01-19 2016-07-28 株式会社デンソー 音声学習システム、音声学習方法
JP2017207939A (ja) 2016-05-19 2017-11-24 日本電信電話株式会社 リスクベース認証装置、リスク判定モデル用学習データ生成装置、リスク判定モデル学習装置、リスク判定モデル用学習データ生成方法、リスク判定モデル学習方法、プログラム
JP2018092613A (ja) 2016-12-06 2018-06-14 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 情報処理装置、情報処理方法及びプログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
張 一凡 他,非集中化IoTセキュリティ制御の検討,電子情報通信学会技術研究報告,一般社団法人電子情報通信学会,2018年02月28日,第117巻 第481号,第43頁-第48頁

Also Published As

Publication number Publication date
US11765047B2 (en) 2023-09-19
WO2020250319A1 (ja) 2020-12-17
JPWO2020250319A1 (ja) 2020-12-17
US20220311677A1 (en) 2022-09-29

Similar Documents

Publication Publication Date Title
JP6029074B2 (ja) ネットワークトラフィックにおける到着間遅延の低減
KR102284467B1 (ko) 네트워크 디바이스에서의 수신된 패킷의 처리와 연관된 전력 관리 기법
US20110078291A1 (en) Distributed performance monitoring in soft real-time distributed systems
JP7243825B2 (ja) 制御装置、制御方法及び制御プログラム
CN105049502B (zh) 一种云端网络管理系统中设备软件更新的方法和装置
US9270556B2 (en) Flow control in packet processing systems
US9681351B2 (en) Apparatus, system, and method for predicting roaming patterns of mobile devices within wireless networks
Chen et al. The case for making tight control plane latency guarantees in SDN switches
US9866443B1 (en) Server data port learning at data switch
WO2016172848A1 (zh) 一种调整云计算中虚拟资源的方法及装置
EP3414952B1 (en) Power-aware network communication
US8060592B1 (en) Selectively updating network devices by a network management application
WO2016110087A1 (zh) 一种控制上网时间的方法、装置及计算机存储介质
WO2020100581A1 (ja) 評価装置、評価方法および評価プログラム
WO2016195619A1 (en) Application of network flow rule action based on packet counter
US20180101490A1 (en) Slave device
US9661023B1 (en) Systems and methods for automatic endpoint protection and policy management
JP2015222882A (ja) 通信スループット予測装置、通信スループット予測方法、及び、プログラム
TWI826999B (zh) 時間敏感網路配置方法、裝置及計算機可讀存儲介質
WO2021002022A1 (ja) 通信装置、通信方法及びプログラム
Yetim et al. Adaptive delay-tolerant scheduling for efficient cellular and WiFi usage
Buh et al. Adaptive network-traffic balancing on multi-core software networking devices
JP2016048833A (ja) ネットワークシステム及びそのバージョン変更方法
US10080196B2 (en) Method and apparatus for prolonging lasting time of inactive mode
US11632319B2 (en) Processing device and moving method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211018

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220830

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221027

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230220

R150 Certificate of patent or registration of utility model

Ref document number: 7243825

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150