JP2007200313A - ネットワーク機器システム - Google Patents

ネットワーク機器システム Download PDF

Info

Publication number
JP2007200313A
JP2007200313A JP2006356100A JP2006356100A JP2007200313A JP 2007200313 A JP2007200313 A JP 2007200313A JP 2006356100 A JP2006356100 A JP 2006356100A JP 2006356100 A JP2006356100 A JP 2006356100A JP 2007200313 A JP2007200313 A JP 2007200313A
Authority
JP
Japan
Prior art keywords
function
network device
unit
variable
functions
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.)
Granted
Application number
JP2006356100A
Other languages
English (en)
Other versions
JP4966004B2 (ja
Inventor
Satoyuki Hatanaka
智行 畑中
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.)
Panasonic Electric Works Co Ltd
Original Assignee
Matsushita Electric Works 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 Matsushita Electric Works Ltd filed Critical Matsushita Electric Works Ltd
Priority to JP2006356100A priority Critical patent/JP4966004B2/ja
Publication of JP2007200313A publication Critical patent/JP2007200313A/ja
Application granted granted Critical
Publication of JP4966004B2 publication Critical patent/JP4966004B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/465Distributed object oriented systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Computer And Data Communications (AREA)
  • Exchange Systems With Centralized Control (AREA)

Abstract

【課題】システムの変更・拡張に容易に対応でき、デッドロックが生じる恐れもなく且つシステムを最適化できるネットワーク機器システムを提供する。
【解決手段】このネットワーク機器システムは、関数処理系のシステムで、各ネットワーク機器が割り当てられた関数を実行することによってシステム全体として所定の動作を行う。各機器は、関数記憶部10と、変数記憶交換器11と、実行関数選択部12と、関数実行部13とを備える。変数記憶交換器は、電気通信回線を介して各ネットワーク機器と接続されており、関数記憶部に記憶された関数の実行に必要な変数を記憶し、各機器間で共有する。実行関数選択部は、変数記憶交換器が記憶している変数を参照し、関数実行部に記憶された関数のうち実行可能な関数を選択する。関数実行部は、実行関数選択部により選択された関数を実行すると共に、実行結果によって、変数記憶交換器に記憶された変数を更新する。
【選択図】図2

Description

本発明は、ネットワーク機器システムに関し、より詳細には分散型関数処理系のネットワーク機器システムに関する。
従来、インターネット等の電気通信回線を介して複数のネットワーク機器が接続され、各ネットワーク機器が連係して所定の動作を行うネットワーク機器システムが提供されている。例えば、センターサーバと、各家庭に設置されたホームサーバや各種設備機器(例えば情報表示装置や空調制御装置など)がインターネット回線を介して接続され、インターネットを介して家庭内の設備機器の制御や電力監視などを行うシステムが提供されている。
このようなシステムを設計するために、従来オブジェクト指向型言語が広く用いられている。オブジェクト指向型言語は、カプセル化、継承、ポリモーフィズムなどの特徴を有し、特に大規模なソフトウェア開発において有効である。
オブジェクト指向型言語によって構成されたネットワーク機器システムに新しいネットワーク機器を追加する場合、そのネットワーク機器がシステム全体に及ぼす影響を検証する必要あり、その作業は、システムが複雑になるにつれて多くの時間と労力を要する。これは、オブジェクト指向型言語では各オブジェクトが相互作用しながら動作しており、あるオブジェクトを追加すると、そのオブジェクトによって他のオブジェクトの状態が影響を受けるからである。システムの検証が不完全な場合、いわゆるデッドロックが発生する恐れもある。従って、システムが複雑になるにつれ、オブジェクト指向型言語によって構成されたネットワーク機器システムに新しいネットワーク機器を追加するのは容易ではなかった。さらに、オブジェクトは内部状態情報を多く抱えているため、システムの検証の際にある問題が生じると、その問題を再現させるためには内部状態情報を特定し再現する必要があるため、デバッグも容易ではなかった。
ところで、特許文献1は、複数のエージェントが通信により所定のシステム特性に従って協調動作しタスクを処理する自律分散型システムを開示している。この分散型システムでは、システム全体の問題を独立に求解可能な子問題に分解し、各エージェントがネゴシエーションによって各子問題の分担を決めている。各子問題は、他の子問題と依存関係がなく且つ各子問題の結果が他の子問題で必要とされないように設定される。この自立分散型システムでは、各エージェントが自律して問題を解決するため、システム設定の変更など、システムの保守が容易となると記載されている。
そこでシステム変更に容易に対応するために、このような自律分散型システムを、上述のネットワーク機器システムに適用することが考えられる。しかしながら、上述のようなネットワーク機器システムは、システム全体の問題を子問題に分解するのが困難であり、また分解された子問題間に依存関係があるため、上記文献の自律分散型システムを適用することは困難であった。
特開平8−137697号公報
本発明は上記の問題点を解決するために為されたものであって、システムの変更・拡張に容易に対応でき、デッドロックが生じる恐れもなく、且つシステムを最適化できるネットワーク機器システムを提供することを目的とする。
本発明の発明者は、上記問題を解決するために、いわゆる関数型言語に着目した。関数型言語は、数学的な言語仕様をもつプログラミング言語(例えば、Haskell)のことで、状態という概念をもたず、引数によってのみ結果が決まり、副作用がなく、参照透過性を有する。
本発明のネットワーク機器システムは、電気通信回線に接続された複数のネットワーク機器が互いに連係して所定の動作を行うネットワーク機器システムであって、関数型言語の関数の組み合わせによってシステム全体が構築されている。そして、システム全体の関数を適切に各ネットワーク機器に分散させ、各ネットワーク機器が各自に割り当てられた関数を実行することによってシステム全体として所定の動作を行うように構成されている。
各ネットワーク機器は、関数記憶部と、変数記憶交換器と、実行関数選択部と、関数実行部とを備える。関数記憶部は、自ネットワーク機器において実行が必要な関数を記憶する。変数記憶交換器は電気通信回線を介して各ネットワーク機器と接続され、各ネットワーク機器の関数記憶部に記憶された関数の実行に必要な変数を記憶し、各ネットワーク機器間で共有する。実行関数選択部は、前記変数記憶交換器が記憶している変数を参照し、自ネットワーク機器の関数実行部に記憶された関数のうち実行可能な関数を選択する。関数実行部は、前記実行関数選択部により選択された関数を前記変数記憶交換器に記憶された変数を用いて実行すると共に、関数の実行によって得られた変数によって、前記変数記憶交換器に記憶された変数を更新する。
関数型言語では、ある関数の実行に必要な変数を監視し、その関数の実行に必要な変数が全て拘束された時点で、その関数を実行することができる。従来研究されている関数処理系では、各関数は主にコンピュータの内部で処理されるため、関数の実行に必要な変数を監視することは容易であった。しかしながら、本発明のように遠隔地に各ネットワーク機器が設置されたネットワーク機器システムに関数処理系を適用する場合、如何に変数を監視するかが問題となる。そこで、本発明の発明者は、各ネットワーク機器に上述の関数記憶部と、変数記憶交換器と、実行関数選択部と、関数実行部とを設けることによってこの問題を解決した。
すなわち、本発明のネットワーク機器システムにおいては、システム全体の関数の実行に必要な変数が、電気通信回線を介して互いに接続された各ネットワーク機器の変数記憶交換器によって記憶・共有される。実行関数選択部は、変数記憶交換器が共有している変数を参照し、自ネットワーク機器の関数実行部に記憶された関数のうち実行可能な関数があれば、その関数を選択する。関数実行部は前記実行関数選択部により選択された関数を実行すると共に、実行結果によって前記変数記憶交換器に記憶された変数を更新(拘束)する。更新された変数は別の関数で使用され、再びその実行結果によって、変数記憶交換器に記憶された変数が更新される。
上述の構成によって、分散したネットワーク機器に関数処理系が実装された分散型関数処理系のネットワーク機器システムを実現することができた。このネットワーク機器システムは、関数処理系によって構成されているため、新しい関数を追加しても、その副作用がなく、システムの変更に容易に対応できる。また、関数処理系は、実行順序に依存しないため、デッドロックが生じる恐れもない。また、各ネットワーク機器に関数を適切に分散させることによって、システムの最適化を図ることができる。関数の分散のさせ方に拘わらず、システム全体の挙動は、変化しないことが数学的に保証できる。
好ましくは、前記関数記憶部は、少なくとも自ネットワーク機器に固有の関数を記憶する。自ネットワーク機器に固有の関数とは、そのネットワーク機器にしか実行できない関数のことであり、例えば、センサの値を読むなど、入出力に関する関数であることが多い。ネットワーク機器システムでは、各ネットワーク機器が“センサの値を読む”などその機器固有の関数を備えていることが多く、すべての関数をシステム全体に分散させることはできない。従って、少なくとも自ネットワーク機器に固有の関数は自ネットワーク機器の関数記憶部で記憶し、自ネットワーク機器に固有でない関数は各ネットワーク機器に分散して割り当てることによって、入出力に応じて時系列で処理が進むような関数処理系のネットワーク機器システムを実現することができる。
好ましくは、このネットワーク機器システムは、さらに機能分散ネゴシエーション部を備える。機能分散ネゴシエーション部は、電気通信回線を介して他のネットワーク機器と接続され、前記関数記憶部に記憶された関数のうち、自ネットワーク機器に固有の関数を除いた関数を他のネットワーク機器に委譲する機能を有する。前記関数記憶部は、前記機能分散ネゴシエーション部によって他のネットワーク機器から委譲された関数を記憶する。この場合、関数の計算主体を動的に変更し、システムの最適化・能力向上を分散的に図ることができる。
好ましくは、前記機能分散ネゴシエーション部は、各ネットワーク機器に対して処理負荷を問い合わせ、各ネットワーク機器からその回答を受け取り、その回答に基づいて、関数を委譲する他のネットワーク機器を決定する。この場合、その関数を委譲するのに好ましいネットワーク機器を選択することができる。なお、前記処理負荷は、各ネットワーク機器の負荷状況や、ある関数の実行に必要な処理時間などを含む。
好ましくは、前記複数のネットワーク機器の少なくとも一つは、このネットワーク機器システムで使用される関数の実装を記憶した関数リポジトリを備え、各ネットワーク機器はさらに、前記関数実行部が所定の関数を実行するのに必要な関数の実装を記憶する関数実装記憶部と、前記機能分散ネゴシエーション部によって他のネットワーク機器から委譲された関数のうち、前記関数実装記憶部に記憶されていない関数の実装を、前記関数リポジトリから取得する関数実装追加部とを備える。この場合、システムの変更・拡張が容易となる。
好ましくは、各ネットワーク機器はさらに、前記変数記憶交換器に記憶された変数を、各ネットワーク機器間で共有すべき共有変数と共有しない非共有変数とに区分する変数公開制御部を備え、前記変数記憶交換器は、共用変数のみを電気通信回線を介して各ネットワーク機器間で共有する。この場合、変数記憶交換器で不要な変数を共有するのを抑制することができ、変数を共有するためのネットワーク負荷を下げることができる。
好ましくは、前記複数のネットワーク機器は、少なくとも、センターサーバと、各家庭に設置されるホームサーバと、各家庭に設置される設備機器とを含む。この場合、センターサーバと家庭内のホームサーバや設備機器が互いに接続されたホームシステムを構築することが出来き、処理能力の高いセンターサーバやホームサーバに関数を分散させることで、システムの処理能力を向上させることができる。
以下、本発明を添付の図面を参照しながら詳細に説明する。
図1は、本発明の実施形態に係る分散型関数処理系のネットワーク機器システムの構成を示す図である。このネットワーク機器システムでは、ネットワーク機器として、センターサーバ1、各家庭Hに設置されたホームサーバ3、および各家庭Hに設置された情報表示装置4、空調制御装置5などの各種設備機器が、インターネット回線2やLANを介して互いに接続されている。なお、本実施形態においては理解を容易とするために上述のネットワーク機器のみを例に挙げたが、もちろんネットワーク機器はこれらに限定されるものではない。
センターサーバ1は、ネットワーク機能を有する汎用のコンピュータ装置で構成されており、このネットワーク機器システムで使用される関数の実装を記憶した関数実装リポジトリ6を備える。
ホームサーバ3は、センターサーバ1と連係をとりながら家庭内の各設備機器にLANを通じて様々な機能を提供する。ホームサーバ3は、ゲートウェイ機能や、Webサーバ機能などを備えていても良い。
情報表示装置4は、ディスプレイを備え、ディスプレイ上に各種情報を表示することができる。
空調制御装置5は、室内の温度を検知する温度センサ(図示せず)を備え、インターネットを介して宅内外から室内の空調を制御することができる。空調制御装置5を宅内で操作する際は、情報表示装置4のディスプレイ上に空調制御装置5の操作画面が表示され、使用者は情報表示装置4のディスプレイを見ながら操作できる。
このネットワーク機器システムは、関数の組み合わせによってシステム全体が構築された関数処理系のシステムである。すなわち、システム全体の機能が関数型言語の関数の組み合わせによって記述されている。関数処理系のシステムでは、各ネットワーク機器固有の関数を除いて、関数の実行はどのネットワーク機器が行ってもよい。すなわち、ネットワーク機器システム内において、関数はその実行場所(計算主体)を問わない。従ってこのネットワーク機器システムは、システム全体で必要とされる関数群を適切に各ネットワーク機器に分散させ、各ネットワーク機器が各自に割り当てられた関数を実行することによってシステム全体として所定の動作を行うように構成されている。
関数を分散させる方法は、例えば、センターサーバ1或いはホームサーバ3に、ネットワーク機器の組み合わせに応じて各ネットワーク機器に割り当てる関数を記したリストを予め保存しておき、センターサーバ1或いはホームサーバ3は、そのリストを参照しながらネットワーク機器の組み合わせに応じて、各関数を各ネットワーク機器に静的に分散させても良い。或いは、上記リストにないネットワーク機器の組み合わせが行われた場合や、センターサーバ1、ホームサーバ3に予め上記リストを持っていない場合などは、センターサーバ1或いはホームサーバ3が各ネットワーク機器から各ネットワーク機器の処理能力(スペック)を吸い上げ、各ネットワーク機器の処理能力を基に最適な分散方法をシミュレーションし、シミュレーション結果に基づいて動的に分散させても良い。或いは、詳しくは後述するように、各ネットワーク機器がネゴシエーションによって、互いに動的に分散させても良い。
図2に示すように、ホームサーバ3、および情報表示装置4、空調制御装置5は、それぞれ、関数記憶部10と、変数記憶交換器11と、実行関数選択部12と、関数実行部13と、機能分散ネゴシエーション部14と、関数実装記憶部15と、実装関数追加部16と、変数公開制御部17とを備える。
関数記憶部10は、自ネットワーク機器において実行が必要な関数を記憶する。ここで、自ネットワーク機器において実行が必要な関数とは、大きく次の3種類の関数がある。
第1は、他のネットワーク機器では実行できないそのネットワーク機器固有の関数である。例えば、“空調制御装置5の温度センサを読む”という関数があるとすると、その関数は温度センサを備えた空調制御装置5でしか実行できない。このように、関数記憶部10は、少なくともそのネットワーク機器固有の関数を記憶する。
第2は、センターサーバ1或いはホームサーバ3、あるいは他のネットワーク機器とのネゴシエーションの結果、他のネットワーク機器から委譲された関数である。
第3は、ネットワーク機器の出荷時から関数記憶部10に記憶され、他のネットワーク機器に委譲されていない関数である。
変数記憶交換器11は、LANやインターネット回線などの電気通信回線を介して各ネットワーク機器と接続されており、各ネットワーク機器の関数記憶部10に記憶された関数の実行に必要な変数を記憶し、各ネットワーク機器間で共有する。共有の仕方としては、例えば、共用変数が更新された変数交換器11が各ネットワーク機器の変数交換器11に対してマルチキャストで共用変数の更新リストを伝達し、共用変数の更新リストを受けた各変数交換器11がその更新リストに記載されている共用変数を記憶するようにすればよい。
実行関数選択部12は、変数記憶交換器11が共有している変数を定期的に参照し、自ネットワーク機器の関数実行部10に記憶された関数のうち実行可能な関数を選択する。
関数実行部13は、実行関数選択部12により選択された関数を変数記憶交換器11に記憶された変数を用いて実行する。また、関数実行部13は、関数の実行によって得られた変数によって、前記変数記憶交換器に記憶された変数を更新する。
関数実装記憶部15は、関数実行部13が関数記憶部10に記憶された関数を実行するのに必要な実装を記憶している。
以下、変数記憶交換器11、実行関数選択部12、関数実行部13、関数実装記憶部15について、図3のフローチャートを参照しながら、具体的に説明する。
あるネットワーク機器の関数記憶部10に、次の2つの関数が記憶されているとする(換言すれば、あるネットワーク機器に次の2つの関数が割り当てられているとする。)。
c=f(a,b); (関数1)
e=g(d); (関数2)
ただし、a,b,c,d,eは変数で、f(a,b)は、変数a,bを引数とする関数を意味し、g(d)は変数dを引数とする関数を意味する。
実行関数選択部12は、変数記憶交換器11が共有している変数を定期的に参照し、自ネットワーク機器の関数実行部10に記憶された関数(すなわち、f(a,b),g(d))の実行に必要な変数(すなわち、a,b,d)が拘束されているか否かを調べる(ステップS1)。具体的には、実行関数選択部12は、自ネットワーク機器の関数実行部10に記憶された関数の実行に必要な変数a,b,dと、変数記憶交換器11に記憶された変数とのパターンマッチングを行っている。
あるタイミングで、変数記憶交換器11において、変数a,bが共に拘束されたとする。実行関数選択部12は、パターンマッチングの結果、自ネットワーク機器の関数実行部10に記憶された関数f(a,b)の実行に必要な変数a,bが、変数記憶交換器11で拘束されたことを検知すると、実行可能となった関数f(a,b)を選択する(ステップS2)。
関数実行部13は、実行関数選択部12で関数f(a,b)が選択されると、関数実装記憶部15からその関数f(a,b)の実行に必要な実装を取得し、変数記憶交換器11に記憶された変数a,bを用いて、関数f(a,b)を実行する(ステップS3)。そして、関数実行部13は、関数の実行によって得られた変数c(c=f(a,b))で、変数記憶交換器11に記憶された変数を更新する(ステップS4)。これによって、変数cが変数記憶交換器11に新たに記憶され、各ネットワーク機器間で共有される。
この変数cはこのネットワーク機器では使用されないが、別のネットワーク機器によって使用され、その結果によって新たな変数が拘束(更新)され、連鎖的に次々と関数が実行される。
その間、このネットワーク機器は、ステップS1に戻って、再び、変数記憶交換器11が共有している変数を定期的に参照し、自ネットワーク機器の関数実行部10に記憶された関数(すなわち、g(d))の実行に必要な変数(すなわち、d)が拘束されているか否かを調べる。あるタイミングで変数dが拘束されると、実行可能となった関数g(d)を選択する(ステップS2)。そして、関数実行部13は、関数g(d)の実行に必要な実装を関数実装記憶部15から取得し、関数g(d)を実行する(ステップS3)。そして、関数実行13は、得られた変数e(e=g(d))で、変数記憶交換器11に記憶された変数を更新する(ステップS4)。
以上のように、関数型処理系のこのネットワーク機器システムでは、システム全体の関数のうち、関数の実行に必要な変数が拘束された関数から順に次々と実行され、結果的に、システム全体の関数が実行される。
なお、実行関数選択部12が定期的に変数記憶交換器11を参照しにいく代わりに、変数が更新されると、その更新をトリガーとして、変数記憶交換器11が自設備機器内の実行関数選択部12にイベントを挙げるようにしてもよい。或いは、実行関数選択部12は、変数記憶交換器11に共有されている全ての変数を参照するのではなく、予め設定された必要な変数のみを部分的に参照するようにしてもよい。この場合、実行関数選択部12が変数記憶交換器11に記憶された変数全てを参照する場合と比較して、実行関数選択部12の負荷を減らすことができ、また、実行関数選択部12の参照速度を速めることができる。
次に、機能分散ネゴシエーション部14について説明する。機能分散ネゴシエーション部14は、LANなどを介して他のネットワーク機器の機能分散ネゴシエーション部14と接続され、関数記憶部10に記憶された関数を他のネットワーク機器に委譲する機能を有する。
上述のように、このネットワーク機器システムは、関数型処理系のため、ネットワーク機器固有の関数を除いては、関数の実行はどのネットワーク機器が行ってもよく、関数を各ネットワーク機器に適切に分散させることによって、システムの最適化・機能向上を図ることが出来る。
機能分散ネゴシエーション部14は、センターサーバ1やホームサーバ3が関数の分散を集中的に行うのではなく、各ネットワーク機器が自ネットワーク機器に割り当てられた関数を他のネットワーク機器に動的且つ分散的に委譲するために設けられている。
機能分散ネゴシエーション部14が起動されるタイミングは特に限定されるものではないが、例えば、各設備機器が自設備機器のCPUの稼働率をモニタする検出手段を備え自設備機器の処理能力が限界に近づいたときや、システムに新しいネットワーク機器が取り付けられたとき、或いは、ネットワーク機器のソフトウェアが更新されたときなどに、機能分散ネゴシエーション部14は起動される。
機能分散ネゴシエーション部14が起動されると、機能分散ネゴシエーション部14は、自ネットワーク機器の関数記憶部10に記憶された関数のうち、自ネットワーク機器固有の関数を除いた関数の計算主体について、他のネットワーク機器の機能分散ネゴシエーション部14と交渉を行う。具体的には、機能分散ネゴシエーション部14は、ある関数の実行に必要な処理負荷(処理時間、処理能力などを含む)を各ネットワーク機器にマルチキャストで問い合わせ、各ネットワーク機器より回答を受け取る。そして、その回答に基づいて、最終的にその関数を委譲するのに最も好ましいネットワーク機器を決定する。好ましくは、処理負荷だけでなく、通信のオーバーヘッド等の条件も考慮して、委譲するネットワーク機器を決定する。もし回答の結果、自ネットワーク機器が実行するのが最も好ましいと判断した場合は、委譲せずに自ネットワーク機器で実行する。
関数を委譲されたネットワーク機器は、関数記憶部10に委譲された関数を記憶する。そしてそれ以降、その関数はそのネットワーク機器によって実行される。
このように、関数の計算主体を負荷状況や、処理時間や処理能力に応じて動的に変更することでシステムの最適化・機能向上を動的かつ分散的に図ることができる。
以下、機能分散ネゴシエーション部14について具体例を挙げて説明する。
図4Aに示すように、ある家庭に、空調制御装置5と情報表示装置4とが設置されているとする。空調制御装置5と情報表示装置4とはLANを介して接続されており、空調制御装置5を使用する際は、情報表示装置4のディスプレイ上に空調制御装置5の操作画面が表示され、使用者は情報表示装置4のディスプレイを見ながら操作できる。
空調制御装置5には、関数A〜Cが割り当てられ記憶されているとする。関数Aは、空調制御装置5固有の関数(ここでは、空調制御装置5の温度センサの値を読むという関数とする)で、関数B、Cは、空調制御装置5固有の関数ではなく、他のネットワーク機器に委譲可能な関数である。関数Cは、情報表示装置4に表示させる空調制御装置5の操作画面を作成するための関数(以下、作画関数Cと称す。)とする。
図4Aの場合、まず空調制御装置5の関数A(温度センサの値を読む関数)が空調制御装置5によって実行される。次に、関数Aの実行によって拘束された変数を基に、関数B、C、或いは、情報表示装置4の別の関数が実行される。その後、ある関数の実行によって拘束された変数に基づいて、別の関数が実行され、結果的に情報表示装置4、空調制御装置5の全ての関数が時系列で次々と実行される。
また、例えば、ホームセキュリティーシステムにおいては、人体検知センサ、照明器具、カメラ装置、情報表示装置、ホームサーバ等がネットワーク機器として動作する。まず、人体検知センサが人体検知の関数を実行した結果の変数を自機器の変数記憶交換器11において拘束し、各ネットワーク機器と共有する。次に、照明器具及びカメラ装置にある、その拘束されたその変数を入力とする関数が、入力変数が拘束されたことによって実行され、それぞれ、たとえば照明を点灯させたり、カメラ撮像を開始したりする。さらに、カメラが、その関数処理の結果、ある変数(たとえば撮影時間などの意味をもった変数)を拘束し、この変数を各ネットワーク機器間で共有すると、ホームサーバがその変数を入力として、Webブラウザ付TVなどの情報表示装置に表示させる関数を実行する。このように、ホームセキュリティーシステムを実現することも可能となる。
ところで、図4Aの場合、作画関数Cは空調制御装置5に割り当てられているため、空調制御装置5の操作画面は空調制御装置5自身によって作画される。しかしながら、空調制御装置5は、処理能力が低いため、情報表示装置4には単純な操作画面しか表示することができない。
ここで、図4Aのネットワーク機器システムに、図4Bに示すように、処理能力の高いホームサーバ3を新たに追加したとする。ホームサーバ3をシステムに設置すると、システムに新しいネットワーク機器が取り付けられたことに起因するトリガーによって、空調制御装置5とホームサーバ3、情報表示装置4の各機能分散ネゴシエーション部14が、関数の計算主体について交渉を始める。
空調制御装置5は、関数記憶部10に記憶されている関数B,Cの実行に必要な処理時間や処理能力をホームサーバ3、表示制御装置4にマルチキャストで問い合わせる。ここで、関数Aは空調制御装置5固有の関数のため、交渉対象とならない。
その結果、関数C(作画関数C)に関しては、ホームサーバ3が、空調制御装置5、情報表示装置4よりも処理時間、処理能力が優れていることがわかると、空調制御装置5は関数Cをホームサーバ3に委譲する。
関数Cを委譲されたホームサーバ3は、ホームサーバ3の関数記憶部10に関数Cを記憶し、それ以降、ホームサーバ3が関数Cを実行する。ホームサーバ3は作画の処理時間が短く、かつ処理能力も高いため、図4Bでは、情報表示装置4のディスプレイに、色彩豊かな操作画面を高速に表示することができる。
委譲されなかった関数A,Bは、これまでどおり、空調制御装置5が実行する。
以上のように、機能分散ネゴシエーション部14によって関数の計算主体を動的に変更することができ、それによってシステムの最適化・機能向上を図ることができる。しかも、関数型処理系の関数は副作用がないため、関数を委譲しても、委譲先のネットワーク機器本来の動作に影響を及ぼすことがない。つまり、図4Bの例では、ホームサーバ3に、空調制御装置5の作画関数Cが委譲されたとしても、ホームサーバ3の本来の動作は保証できる。もちろん、空調制御装置5の動作も保証できる。
図4A,図4Bでは、機能分散ネゴシエーション部14によって処理時間、および作画能力が向上されたが、もちろん、機能分散ネゴシエーション部14によって他の能力、例えば、作動状況の履歴を参照する履歴参照能力や、消費電力を下げる能力などを高めることもできる。
また、図4A,図4Bでは、機能分散ネゴシエーション部14が交渉を行う範囲は、家庭内に設置されたネットワーク機器3,4,5のみであったが、例えば、図1のように家庭内の設備機器がインターネット2を介してセンターサーバ1と接続されているような場合は、各機能分散ネゴシエーション部14はセンターサーバ1を含めた範囲で交渉を行うようにしてもよい。センターサーバ1に関数を委譲した場合、さらに処理能力を向上できる可能性がある。
ところで、機能分散ネゴシエーション部14によって新しい関数が委譲されると、自ネットワーク機器の関数実装記憶部15にその関数の実装が記憶されていない場合がある。関数実装記憶部15がシステムで使用される全ての関数の実装を記憶するようにしてもよいが、記憶容量が無駄であり現実的ではない。また新たに追加された関数にも対応できない。そこで、図2に示すように、各ネットワーク機器は、実装関数追加部16を備えるのが好ましい。実装関数追加部16はインターネット2を介して、センターサーバ1の関数実装リポジトリ6と接続されている。機能分散ネゴシエーション部14によって、関数実装記憶部15に実装がない関数が委譲されると、実装関数追加部16はインターネット回線を介して、関数実装リポジトリ6からその関数の実装を取得する。これにより、関数実装記憶部15に実装が記憶されていない関数が委譲されても、関数実行部13はその関数を実行できるようになる。また、新しいネットワーク機器をシステムに追加しても、センターサーバ1の関数実装リポジトリ6にその実装を記憶させるだけで、どのネットワーク機器もその関数を実行できるようになる。なお、関数実装追加部16は、関数リポジトリ6のみではなく、関数を委譲したネットワーク機器から、関数の実装を取得しても良い。
より好ましいシステム構成としては、各ネットワーク機器は、図2に示すように、変数公開制御部17を備える。変数公開制御部17は、変数記憶交換器11に記憶された変数を、各ネットワーク機器間で共有すべき共有変数と共有しない非共有変数とに区分し、変数記憶交換器11は、共用変数のみを電気通信回線を介して各ネットワーク機器間で共有する。
より詳細に述べると、変数記憶交換器11が共有する変数の数は、システムが大きくなるにつれて多くなる。しかしながら、全ての変数を共有する必要はなく、例えば、ある関数Xの実行によって拘束された変数αを別の関数Yが使用する場合、もし双方の関数X,Yが同じネットワーク機器で実行されるならば、その変数αを公開(共有)する必要はない。従って、その場合、変数公開制御部17は、変数αを非共用変数とし、変数記憶交換器11は、変数αをネットワーク機器間で共用しない。しかし、もし双方の関数X,Yが別のネットワーク機器で実行されるならば、その変数αは公開(共有)しなければならず、その場合、変数公開制御部17は、変数αを共用変数とし、変数記憶交換器11は、変数αを電気通信回線を介して各ネットワーク機器間で共有する。なお、どの変数を共用変数とすべきかは、機能分散ネゴシエーション部14の交渉結果によってわかる。変数公開制御部17を設けることで、不要な変数を共有するのを抑制することができ、それにより変数を共有するためのネットワーク負荷を下げることができる。
以上のように各ネットワーク機器を構成することで、分散型関数処理系のネットワーク機器システムを実現することができる。このネットワーク機器システムは、関数処理系の関数の組み合わせによって構成されているため、新たなネットワーク機器を追加しても、新しいネットワーク機器の機能(関数)が既存のネットワーク機器システムに副作用を与えることがなく、システムの変更に容易に対応できる。また、システム全体の関数を各ネットワーク機器間(図1では、センターサーバ1、ホームサーバ3、情報表示装置4、空調制御装置5間)で適切に分散させることで、システム全体の最適化・能力向上を図ることができる。例えば、図1のシステムに防犯装置(図示せず)を追加したとしても、防犯装置に設けられた関数が既存のネットワーク機器の関数に副作用を与えることがないため、容易に防犯装置をシステムに追加することができ、防犯装置の検出機能以外の機能を担う関数を各ネットワーク機器の処理負荷に応じて委譲させることも可能である。関数を分散させる方法は、センサーサーバ1或いはホームサーバ3が集中的に行っても良いし、各ネットワーク機器が、機能分散ネゴシエーション部14によって分散的に行っても良い。関数の分散のさせ方に拘わらず、システム全体の挙動は、変化しないことが数学的に保証できる。また、関数処理系は、実行順序に依存しないため、デッドロックが生じる恐れもない。
上記のように、本発明の技術的思想に反することなしに、広範に異なる実施形態を構成することができることは明白なので、この発明は、請求の範囲において限定した以外は、その特定の実施形態に制約されるものではない。
本発明の実施形態に係るネットワーク機器システムの構成を示す図である。 図1のネットワーク機器システムに使用される各ネットワーク機器の構成を示すブロック図である。 図1のネットワーク機器システムにおいて関数が実行される手順を説明するためのフローチャートである。 図1のネットワーク機器システムにおいて関数の委譲を説明するための図である。 図1のネットワーク機器システムにおいて関数の委譲を説明するための図である。
符号の説明
1 センターサーバ
2 インターネット
3 ホームサーバ
4 情報表示装置
5 空調制御装置
6 関数リポジトリ
10 関数記憶部
11 変数記憶交換器
12 実行関数選択部
13 関数実行部
14 機能分散ネゴシエーション部
15 関数実装記憶部
16 実装関数追加部
17 変数公開制御部

Claims (7)

  1. 電気通信回線に接続された複数のネットワーク機器が互いに連係して所定の動作を行うネットワーク機器システムであって、
    このネットワーク機器システムは関数の組み合わせによってシステム全体が構築され、各ネットワーク機器が各自に割り当てられた関数を実行することによってシステム全体として所定の動作を行うように構成されており、
    各ネットワーク機器は以下の構成を備える:
    関数記憶部;この関数記憶部は、自ネットワーク機器において実行が必要な関数を記憶する;
    変数記憶交換器;この変数記憶交換器は電気通信回線を介して各ネットワーク機器と接続され、各ネットワーク機器の前記関数記憶部に記憶された関数の実行に必要な変数を記憶し、各ネットワーク機器間で共有する;
    実行関数選択部;この実行関数選択部は、前記変数記憶交換器が記憶している変数を参照し、自ネットワーク機器の関数実行部に記憶された関数のうち実行可能な関数を選択する;
    関数実行部;この関数実行部は、前記実行関数選択部により選択された関数を前記変数記憶交換器に記憶された変数を用いて実行すると共に、関数の実行によって得られた変数によって、前記変数記憶交換器に記憶された変数を更新する。
  2. 請求項1に記載の分散型関数処理系を用いたネットワーク機器システムにおいて、
    前記関数記憶部は、少なくとも自ネットワーク機器に固有の関数を記憶する。
  3. 請求項1に記載の分散型関数処理系を用いたネットワーク機器システムにおいて、
    各ネットワーク機器はさらに、機能分散ネゴシエーション部を備え、この機能分散ネゴシエーション部は、電気通信回線を介して他のネットワーク機器と接続され、前記関数記憶部に記憶された関数のうち、自ネットワーク機器に固有の関数を除いた関数を、他のネットワーク機器に委譲する機能を有し、
    前記関数記憶部は、前記機能分散ネゴシエーション部によって他のネットワーク機器から委譲された関数を記憶する。
  4. 請求項3に記載の分散型関数処理系を用いたネットワーク機器システムにおいて、
    前記機能分散ネゴシエーション部は、各ネットワーク機器に対して処理負荷を問い合わせ、各ネットワーク機器からその回答を受け取り、その回答に基づいて、関数を委譲する他のネットワーク機器を決定する。
  5. 請求項3に記載の分散型関数処理系を用いたネットワーク機器システムにおいて、
    前記複数のネットワーク機器の少なくとも一つは、このネットワーク機器システムで使用される関数の実装を記憶した関数リポジトリを備え、
    各ネットワーク機器はさらに、
    前記関数実行部が所定の関数を実行するのに必要な関数の実装を記憶する関数実装記憶部と、
    前記機能分散ネゴシエーション部によって他のネットワーク機器から委譲された関数のうち、前記関数実装記憶部に記憶されていない関数の実装を、前記関数リポジトリから取得する関数実装追加部とを備える。
  6. 請求項1に記載の分散型関数処理系を用いたネットワーク機器システムにおいて、
    各ネットワーク機器はさらに、前記変数記憶交換器に記憶された変数を、各ネットワーク機器間で共有すべき共有変数と共有しない非共有変数とに区分する変数公開制御部を備え、
    前記変数記憶交換器は、共用変数のみを電気通信回線を介して各ネットワーク機器間で共有する。
  7. 請求項1に記載の分散型関数処理系を用いたネットワーク機器システムにおいて、
    前記複数のネットワーク機器は、少なくとも、センターサーバと、各家庭に設置されるホームサーバと、各家庭に設置される設備機器とを含む。
JP2006356100A 2005-12-28 2006-12-28 ネットワーク機器システム Expired - Fee Related JP4966004B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006356100A JP4966004B2 (ja) 2005-12-28 2006-12-28 ネットワーク機器システム

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2005379947 2005-12-28
JP2005379947 2005-12-28
JP2006356100A JP4966004B2 (ja) 2005-12-28 2006-12-28 ネットワーク機器システム

Publications (2)

Publication Number Publication Date
JP2007200313A true JP2007200313A (ja) 2007-08-09
JP4966004B2 JP4966004B2 (ja) 2012-07-04

Family

ID=38218126

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006356100A Expired - Fee Related JP4966004B2 (ja) 2005-12-28 2006-12-28 ネットワーク機器システム

Country Status (5)

Country Link
EP (1) EP1890238B1 (ja)
JP (1) JP4966004B2 (ja)
KR (1) KR100928913B1 (ja)
CN (1) CN100514314C (ja)
WO (1) WO2007074905A1 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101662420B (zh) * 2008-08-29 2012-09-05 国际商业机器公司 用于整合网络设备的系统和方法
US11372536B2 (en) 2012-11-20 2022-06-28 Samsung Electronics Company, Ltd. Transition and interaction model for wearable electronic device
US10423214B2 (en) 2012-11-20 2019-09-24 Samsung Electronics Company, Ltd Delegating processing from wearable electronic device
JP6463598B2 (ja) * 2012-11-20 2019-02-06 三星電子株式会社Samsung Electronics Co.,Ltd. 着用式電子デバイスからのプロセッシングの委任
US10185416B2 (en) 2012-11-20 2019-01-22 Samsung Electronics Co., Ltd. User gesture input to wearable electronic device involving movement of device
US11237719B2 (en) * 2012-11-20 2022-02-01 Samsung Electronics Company, Ltd. Controlling remote electronic device with wearable electronic device
US10551928B2 (en) 2012-11-20 2020-02-04 Samsung Electronics Company, Ltd. GUI transitions on wearable electronic device
US11157436B2 (en) 2012-11-20 2021-10-26 Samsung Electronics Company, Ltd. Services associated with wearable electronic device
US8994827B2 (en) 2012-11-20 2015-03-31 Samsung Electronics Co., Ltd Wearable electronic device
US10691332B2 (en) 2014-02-28 2020-06-23 Samsung Electronics Company, Ltd. Text input on an interactive display
CN108304492B (zh) * 2018-01-09 2020-07-31 武汉斗鱼网络科技有限公司 一种搜索列表更新方法、存储介质、设备及系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08137697A (ja) * 1994-11-15 1996-05-31 Kobe Steel Ltd 自律分散型システム
JPH11232108A (ja) * 1998-02-12 1999-08-27 Mitsubishi Electric Corp 自律協調処理装置、自律協調処理方法、並びに、その記録媒体
JP2002057785A (ja) * 2000-08-11 2002-02-22 Kenwood Corp 自動車電話装置
JP2004126896A (ja) * 2002-10-02 2004-04-22 Hitachi Ltd 自律分散データ計算処理サーバーシステム
JP2004265425A (ja) * 2004-03-08 2004-09-24 Fuji Xerox Co Ltd メッセージ通信方法及び装置
JP2005251068A (ja) * 2004-03-08 2005-09-15 Nippon Telegr & Teleph Corp <Ntt> 分散機能連携システム、分散機能管理装置、分散機能連携方法、およびプログラム

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2490100A (en) * 1999-01-07 2000-07-24 Iq Netsolutions, Inc. Distributed processing systems incorporating a plurality of cells which process information in response to single events

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08137697A (ja) * 1994-11-15 1996-05-31 Kobe Steel Ltd 自律分散型システム
JPH11232108A (ja) * 1998-02-12 1999-08-27 Mitsubishi Electric Corp 自律協調処理装置、自律協調処理方法、並びに、その記録媒体
JP2002057785A (ja) * 2000-08-11 2002-02-22 Kenwood Corp 自動車電話装置
JP2004126896A (ja) * 2002-10-02 2004-04-22 Hitachi Ltd 自律分散データ計算処理サーバーシステム
JP2004265425A (ja) * 2004-03-08 2004-09-24 Fuji Xerox Co Ltd メッセージ通信方法及び装置
JP2005251068A (ja) * 2004-03-08 2005-09-15 Nippon Telegr & Teleph Corp <Ntt> 分散機能連携システム、分散機能管理装置、分散機能連携方法、およびプログラム

Also Published As

Publication number Publication date
KR100928913B1 (ko) 2009-11-30
CN100514314C (zh) 2009-07-15
EP1890238A4 (en) 2009-07-15
CN101103342A (zh) 2008-01-09
WO2007074905A1 (ja) 2007-07-05
KR20070090911A (ko) 2007-09-06
JP4966004B2 (ja) 2012-07-04
EP1890238A1 (en) 2008-02-20
EP1890238B1 (en) 2011-10-19

Similar Documents

Publication Publication Date Title
JP4966004B2 (ja) ネットワーク機器システム
EP2812801B1 (en) Application context transfer for distributed computing resources
Peoples et al. Performance evaluation of green data centre management supporting sustainable growth of the internet of things
WO2019099111A1 (en) Distributed software-defined industrial systems
Goethals et al. Extending kubernetes clusters to low-resource edge devices using virtual kubelets
US20150253748A1 (en) Apparatus and methods for providing building automation system data updates to a web client
Hossain et al. IoTbed: A Generic Architecture for Testbed as a Service for Internet of Things-Based Systems.
Kathiravelu et al. Cassowary: Middleware platform for context-aware smart buildings with software-defined sensor networks
Nguyen et al. High performance peer-to-peer distributed computing with application to obstacle problem
CN115480538A (zh) 用于工业过程工厂的软件定义过程控制系统的可视化
Hou et al. Optimization of web service-based control system for balance between network traffic and delay
KR101214488B1 (ko) 설비 관제 시스템 및 이의 운전 방법
Park et al. An efficient dynamic integration middleware for cyber-physical systems in mobile environments
US7877467B2 (en) Network equipment system
Guerrero-Contreras et al. Dynamic replication and deployment of services in mobile environments
EP3719646B1 (en) Method for communicating in a network-distributed process control system and network-distributed process control system
WO2020189204A1 (ja) 制御システム、中継装置、および中継プログラム
Marchese et al. Communication Aware Scheduling of Microservices-based Applications on Kubernetes Clusters.
Kos et al. nodewatcher: A substrate for growing your own community network
Mehanovic et al. Brume-a horizontally scalable and fault tolerant building operating system
Pahl et al. Enabling sustainable smart neighborhoods
Jaszczyk et al. Updatable multi-agent osgi architecture for smart home system
Takase et al. Work-in-Progress: Design Concept of a Lightweight Runtime Environment for Robot Software Components Onto Embedded Devices
Betts et al. Engineering MAS–a device integration framework for smart home environments
JP4079175B2 (ja) ネットワークシステム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090825

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20100903

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110307

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110412

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110613

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20120112

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120330

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150406

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees