JP7181491B2 - Information processing system, access control device, access control method and access control program - Google Patents

Information processing system, access control device, access control method and access control program Download PDF

Info

Publication number
JP7181491B2
JP7181491B2 JP2021534503A JP2021534503A JP7181491B2 JP 7181491 B2 JP7181491 B2 JP 7181491B2 JP 2021534503 A JP2021534503 A JP 2021534503A JP 2021534503 A JP2021534503 A JP 2021534503A JP 7181491 B2 JP7181491 B2 JP 7181491B2
Authority
JP
Japan
Prior art keywords
plug
data
access control
user
access
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
JP2021534503A
Other languages
Japanese (ja)
Other versions
JPWO2021014633A1 (en
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
Publication of JPWO2021014633A1 publication Critical patent/JPWO2021014633A1/ja
Application granted granted Critical
Publication of JP7181491B2 publication Critical patent/JP7181491B2/en
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/62Protecting access to data via a platform, e.g. using keys or access control rules
    • 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Transfer Between Computers (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は情報処理システム、アクセス制御装置、アクセス制御方法およびアクセス制御プログラムに関する。 The present invention relates to an information processing system, an access control device, an access control method and an access control program.

情報処理システムとして、様々な端末装置からイベントメッセージを収集し、情報処理システムが保持するデータをイベントメッセージに応じて更新し、データの更新に応じた情報処理を実行するイベント処理システムがある。例えば、情報処理システムは、スマートフォンや車載装置などの端末装置から、センサデバイスを用いて測定されたセンサデータを含むイベントメッセージを収集し、端末装置の状態を示すステートデータを保持する。例えば、情報処理システムは、ステートデータの更新を検出し、現在の端末装置の状態に応じた情報を提供するという情報サービスを実現する。 As an information processing system, there is an event processing system that collects event messages from various terminal devices, updates data held by the information processing system according to the event messages, and executes information processing according to the updated data. For example, the information processing system collects event messages including sensor data measured using sensor devices from terminal devices such as smartphones and in-vehicle devices, and holds state data indicating the state of the terminal devices. For example, the information processing system realizes an information service that detects update of state data and provides information according to the current state of the terminal device.

なお、複数のエンティティ装置の間でイベントメッセージを転送するイベント転送方法が提案されている。提案のイベント転送方法では、各エンティティ装置は、受信したイベントメッセージの属性情報とルータに登録されたフィルタ情報とを照合し、照合結果に基づいて不要なイベントメッセージの転送を抑止する。また、クライアント装置に接続されたデバイスにサーバ装置からアクセスすることを許容するデバイス管理システムが提案されている。提案のデバイス管理システムでは、クライアント装置は、クライアントアプリケーションとデバイスとの間のデータ通信と、サーバ装置とデバイスとの間のデータ通信を、排他的に実行するよう制御する。また、IoT(Internet of Things)の複数のエンティティ装置の間でイベントメッセージを送信する方法が提案されている。 An event transfer method for transferring event messages between a plurality of entity devices has been proposed. In the proposed event forwarding method, each entity device compares the attribute information of the received event message with the filter information registered in the router, and suppresses the forwarding of unnecessary event messages based on the result of the matching. A device management system has also been proposed that allows a server device to access a device connected to a client device. In the proposed device management system, the client device exclusively controls data communication between the client application and the device and data communication between the server device and the device. Also, a method of transmitting an event message between a plurality of IoT (Internet of Things) entity devices has been proposed.

特開2004-302960号公報Japanese Patent Application Laid-Open No. 2004-302960 特開2008-4072号公報Japanese Unexamined Patent Application Publication No. 2008-4072 国際公開第2014/130568号WO2014/130568

複数のデータ項目を含むデータを保持する情報処理システムに対して、それら複数のデータ項目の少なくとも一部を利用した新たな情報サービスを追加したいことがある。そこで、あるユーザ(例えば、ある開発者)のプログラムを、データの更新に応じて当該プログラムが実行されるように情報処理システムに登録することが考えられる。 A new information service using at least part of a plurality of data items may be desired to be added to an information processing system that holds data including a plurality of data items. Therefore, it is conceivable to register a program of a certain user (for example, a certain developer) in the information processing system so that the program is executed according to the update of data.

ただし、情報セキュリティの観点から、収集される様々なデータ項目の中には、当該ユーザにアクセスを許可してもよいデータ項目とアクセスを許可したくないデータ項目とが混在することがある。よって、ユーザのプログラムからのデータアクセスの認証が問題となる。この点、プログラムを登録した後に、あるデータ項目に対するアクセスが発生する毎に、ACL(Access Control List)などの認証情報を参照して当該データ項目に対するアクセスの可否を判断する方法も考えられる。しかし、データアクセス毎にアクセス権限を確認するようにすると、オーバヘッドによりデータ処理が遅延するおそれがある。 However, from the viewpoint of information security, among the various data items collected, there may be a mixture of data items to which the user may be permitted to access and data items to which the user should not be permitted to access. Thus, authentication of data access from the user's program becomes a problem. In this regard, a method of referring to authentication information such as an ACL (Access Control List) and determining whether or not to allow access to a data item each time a data item is accessed after program registration is also conceivable. However, if the access authority is confirmed for each data access, data processing may be delayed due to overhead.

1つの側面では、本発明は、追加のプログラムを用いたデータ処理の遅延を抑制できる情報処理システム、アクセス制御装置、アクセス制御方法およびアクセス制御プログラムを提供することを目的とする。 An object of the present invention in one aspect is to provide an information processing system, an access control device, an access control method, and an access control program that can suppress delays in data processing using an additional program.

1つの態様では、データ処理装置とアクセス制御装置とを有する情報処理システムが提供される。データ処理装置は、複数のデータ項目を含むデータを記憶し、登録されたプログラムが存在する場合、データの更新に応じて登録されたプログラムを実行する。アクセス制御装置は、ユーザの対象プログラムを含む登録要求を受け付け、対象プログラムを分析して複数のデータ項目のうち対象プログラムからアクセスされ得るデータ項目を検出し、ユーザがアクセス権限を有するデータ項目またはユーザがアクセス権限を有しないデータ項目を示すアクセス制御情報に基づいて、検出したデータ項目に対するアクセス権限をユーザが有するか判定し、アクセス権限を有すると判定した場合、対象プログラムをデータ処理装置に登録することを許可する。 In one aspect, an information processing system is provided having a data processing device and an access control device. A data processing device stores data including a plurality of data items, and when a registered program exists, executes the registered program according to the update of the data. The access control device accepts a registration request including a user's target program, analyzes the target program, detects data items that can be accessed from the target program from among a plurality of data items, and determines data items to which the user has access authority or user access rights. determines whether the user has access authority to the detected data item based on access control information indicating data items to which the user does not have access authority, and registers the target program in the data processing apparatus when it is determined that the user has access authority Allow

また、1つの態様では、記憶部と処理部とを有するアクセス制御装置が提供される。また、1つの態様では、コンピュータが実行するアクセス制御方法が提供される。また、1つの態様では、コンピュータに実行させるアクセス制御プログラムが提供される。 Also, in one aspect, an access control device having a storage unit and a processing unit is provided. In one aspect, a computer implemented access control method is also provided. Also, in one aspect, an access control program for execution by a computer is provided.

1つの側面では、追加のプログラムを用いたデータ処理の遅延が抑制される。
本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
In one aspect, data processing delays using additional programs are reduced.
The above and other objects, features and advantages of the present invention will become apparent from the following description taken in conjunction with the accompanying drawings which represent exemplary preferred embodiments of the invention.

第1の実施の形態の情報処理システムの例を説明する図である。1 is a diagram illustrating an example of an information processing system according to a first embodiment; FIG. 第2の実施の形態の情報処理システムの例を示す図である。It is a figure which shows the example of the information processing system of 2nd Embodiment. ファイアウォールのハードウェア例を示すブロック図である。FIG. 3 is a block diagram showing a hardware example of a firewall; FIG. ノードの機能例を示すブロック図である。4 is a block diagram showing an example of functions of a node; FIG. デバイスオブジェクトの機能例を示すブロック図である。4 is a block diagram showing an example of functions of a device object; FIG. ステートテーブルとプラグインテーブルの例を示す図である。FIG. 3 is a diagram showing examples of a state table and a plug-in table; FIG. メッセージのフォーマット例を示す図である。FIG. 4 is a diagram showing a format example of a message; ファイアウォールの機能例を示すブロック図である。4 is a block diagram showing an example of functions of a firewall; FIG. アクセス制御リストと解析結果テーブルの例を示す図である。FIG. 10 illustrates an example of an access control list and an analysis result table; FIG. プラグインの解析例を示す図である。FIG. 10 is a diagram showing an analysis example of a plug-in; プラグインの認証例を示す図である。FIG. 10 is a diagram showing an example of plug-in authentication; ファイアウォールを通じたプラグインの配置例を示す図である。FIG. 4 is a diagram showing an example of placement of plug-ins through a firewall; プラグイン生成の手順例を示すフローチャートである。6 is a flow chart showing an example of a procedure for generating a plug-in; プラグイン認証の手順例を示すフローチャートである。FIG. 11 is a flowchart showing an example of a plug-in authentication procedure; FIG. プラグイン追加の手順例を示すフローチャートである。6 is a flow chart showing an example of a procedure for adding a plug-in; ACL更新の手順例を示すフローチャートである。FIG. 11 is a flowchart illustrating an example procedure for updating an ACL; FIG.

以下、本実施の形態を図面を参照して説明する。
[第1の実施の形態]
第1の実施の形態を説明する。
Hereinafter, this embodiment will be described with reference to the drawings.
[First embodiment]
A first embodiment will be described.

図1は、第1の実施の形態の情報処理システムの例を説明する図である。
第1の実施の形態の情報処理システムは、データ処理装置10およびアクセス制御装置20を含む。データ処理装置10およびアクセス制御装置20は、ネットワークに接続されている。データ処理装置10およびアクセス制御装置20を、コンピュータ、情報処理装置、サーバコンピュータ、サーバ装置などと言うこともできる。
FIG. 1 is a diagram illustrating an example of an information processing system according to the first embodiment.
The information processing system of the first embodiment includes a data processing device 10 and an access control device 20. FIG. The data processing device 10 and the access control device 20 are connected to a network. The data processing device 10 and the access control device 20 can also be called a computer, an information processing device, a server computer, a server device, or the like.

データ処理装置10は、データを記憶し、データの更新に応じてプログラムを実行するというイベント駆動型の情報処理を行う。第1の実施の形態の情報処理システムを、イベント処理システムと言うこともできる。第1の実施の形態の情報処理システムは、2以上のデータ処理装置を含む並列処理システムであってもよい。データ処理装置10を、ノードと言うこともできる。データ処理装置10に対しては、データの更新に応じて実行される新たなプログラムを登録することができる。アクセス制御装置20は、あるユーザの新たなプログラムをデータ処理装置10に登録する際、当該ユーザのデータへのアクセス権限を確認してプログラムの登録可否を判定する。アクセス制御装置20を、ファイアウォール、ゲートウェイ、セキュリティ装置、プログラム検査装置などと言うこともできる。 The data processing device 10 stores data and performs event-driven information processing by executing a program according to data update. The information processing system of the first embodiment can also be called an event processing system. The information processing system of the first embodiment may be a parallel processing system including two or more data processors. The data processing device 10 can also be called a node. A new program to be executed according to data update can be registered in the data processing device 10 . When registering a new program of a certain user in the data processing apparatus 10, the access control device 20 confirms the user's data access authority and determines whether the program can be registered. The access control device 20 can also be referred to as a firewall, gateway, security device, program checking device, or the like.

データ処理装置10は、記憶部11および処理部12を有する。アクセス制御装置20は、記憶部21および処理部22を有する。記憶部11および記憶部21は、RAM(Random Access Memory)などの揮発性半導体メモリでもよいし、HDD(Hard Disk Drive)やフラッシュメモリなどの不揮発性ストレージでもよい。処理部12,22は、例えば、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、DSP(Digital Signal Processor)などのプロセッサである。ただし、処理部12,22は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの特定用途の電子回路を含んでもよい。プロセッサは、メモリ(記憶部11,21でもよい)に記憶されたプログラムを実行する。複数のプロセッサの集合を「マルチプロセッサ」または単に「プロセッサ」と言うことがある。 The data processing device 10 has a storage section 11 and a processing section 12 . The access control device 20 has a storage section 21 and a processing section 22 . The storage unit 11 and the storage unit 21 may be volatile semiconductor memory such as RAM (Random Access Memory), or may be non-volatile storage such as HDD (Hard Disk Drive) or flash memory. The processing units 12 and 22 are processors such as CPUs (Central Processing Units), GPUs (Graphics Processing Units), and DSPs (Digital Signal Processors), for example. However, the processing units 12 and 22 may include electronic circuits for specific purposes, such as ASICs (Application Specific Integrated Circuits) and FPGAs (Field Programmable Gate Arrays). The processor executes a program stored in memory (which may be storage units 11 and 21). A collection of multiple processors is sometimes called a "multiprocessor" or simply a "processor."

記憶部11は、データ13を記憶する。データ13は、データ項目X,Y,Zなどの複数のデータ項目を含む。複数のデータ項目を、複数のレコードと言うこともできる。データ13は、キーとバリューの組を複数含むキーバリュー形式データであってもよい。データ13は更新されることがある。データ13は、端末装置の状態を示すステートデータであってもよく、端末装置からデータ処理装置10に送信されるイベントメッセージに応じて更新されてもよい。記憶部11は、データ13に対応付けてプログラムを記憶することがある。例えば、記憶部11は、特定のデータ項目に対応付けてプログラムを記憶する。 The storage unit 11 stores data 13 . Data 13 includes a plurality of data items such as data items X, Y, and Z. FIG. Multiple data items can also be called multiple records. The data 13 may be key-value format data including a plurality of pairs of key and value. Data 13 may be updated. The data 13 may be state data indicating the state of the terminal device, and may be updated according to an event message transmitted from the terminal device to the data processing device 10 . The storage unit 11 may store programs in association with the data 13 . For example, the storage unit 11 stores programs in association with specific data items.

処理部12は、データ13に対してプログラムを登録することがある。このプログラムは、データに対して着脱可能であり、プラグインと言うこともできる。プログラムの登録は、アクセス制御装置20から要求されることも有り得る。プログラムの登録は、データ処理装置10の稼働中に動的に行われてもよい。また、処理部12は、データ13の更新を検出する。例えば、処理部12は、端末装置から受信するイベントメッセージに応じてデータ13を更新する。データ13の更新を検出したときに、登録されたプログラムが存在する場合、処理部12は、登録されたプログラムを起動する。登録されたプログラムが特定のデータ項目に対応付けられている場合、処理部12は、特定のデータ項目の値の更新を検出したときに、登録されたプログラムを起動してもよい。 The processing unit 12 may register programs for the data 13 . This program is detachable from the data and can be called a plug-in. Program registration may be requested by the access control device 20 . Program registration may be performed dynamically while the data processing apparatus 10 is in operation. Also, the processing unit 12 detects an update of the data 13 . For example, the processing unit 12 updates the data 13 according to event messages received from terminal devices. If the registered program exists when the update of the data 13 is detected, the processing unit 12 activates the registered program. If the registered program is associated with a specific data item, the processing unit 12 may activate the registered program when detecting an update of the value of the specific data item.

記憶部21は、アクセス制御情報24を記憶する。アクセス制御情報24は、データ項目X,Y,Zなどの複数のデータ項目のうち、あるユーザがアクセス権限を有するデータ項目、または、あるユーザがアクセス権限を有しないデータ項目を示す。アクセス制御情報24を、アクセス制御リスト(ACL)と言うこともできる。アクセス制御情報24は、いわゆるホワイトリストでもよいしブラックリストでもよい。アクセス制御情報24は、例えば、管理者によって予め作成される。 The storage unit 21 stores access control information 24 . The access control information 24 indicates a data item to which a certain user has access authority or a data item to which a certain user does not have access authority among a plurality of data items such as data items X, Y, and Z. FIG. Access control information 24 may also be referred to as an access control list (ACL). The access control information 24 may be a so-called whitelist or a blacklist. The access control information 24 is created in advance by an administrator, for example.

処理部22は、あるユーザの対象プログラム23を含む登録要求を受け付ける。登録要求は、データ処理装置10への対象プログラム23の登録の要求を示す。対象プログラム23を、プラグインと言うこともできる。対象プログラム23は、例えば、開発者である当該ユーザにより作成されたものである。アクセス制御装置20は、当該ユーザが使用する開発端末から登録要求を受信してもよい。対象プログラム23は、高水準言語で記述されたソースコードでもよいし、ソースコードから変換されて中間言語で記述された中間コードでもよいし、機械可読なオブジェクトコードでもよい。 The processing unit 22 accepts a registration request including the target program 23 of a certain user. A registration request indicates a request for registration of the target program 23 in the data processing apparatus 10 . The target program 23 can also be called a plug-in. The target program 23 is, for example, created by the user who is a developer. The access control device 20 may receive the registration request from the development terminal used by the user. The target program 23 may be source code written in a high-level language, intermediate code converted from the source code and written in an intermediate language, or machine-readable object code.

処理部22は、登録要求に含まれる対象プログラム23を分析して、データ項目X,Y,Zなどの複数のデータ項目のうち、対象プログラム23からアクセスされ得るデータ項目を検出する。例えば、処理部22は、抽象解釈(Abstract Interpretation)などの静的プログラム解析方法を用いて、アクセス先のデータ項目を示す変数の取り得る値を抽出し、アクセス先となり得るデータ項目を特定する。アクセス先のデータ項目を示す変数は、例えば、データ13にアクセスする関数の引数として用いられる変数である。 The processing unit 22 analyzes the target program 23 included in the registration request, and detects data items that can be accessed from the target program 23 among a plurality of data items such as data items X, Y, and Z. For example, the processing unit 22 uses a static program analysis method such as abstract interpretation to extract possible values of variables indicating data items to be accessed, and specifies data items to be accessed. A variable indicating a data item to be accessed is, for example, a variable used as an argument of a function that accesses the data 13 .

処理部22は、アクセス制御情報24に基づいて、検出したデータ項目に対するアクセス権限を当該ユーザが有するか判定する。検出したデータ項目が2以上ある場合、処理部22は、検出した2以上のデータ項目の全てに対して当該ユーザがアクセス権限を有するか判定する。例えば、対象プログラム23から、アクセスされ得るデータ項目としてデータ項目Yが検出されたとする。これに対して、アクセス制御情報24は、ユーザがデータ項目X,Yに対するアクセス権限を有し、データ項目Zに対するアクセス権限を有しないことを示しているとする。その場合、処理部22は、検出されたデータ項目Yに対するアクセス権限をユーザが有していることを確認する。 Based on the access control information 24, the processing unit 22 determines whether the user has access rights to the detected data item. If there are two or more detected data items, the processing unit 22 determines whether the user has access authority to all of the two or more detected data items. For example, assume that data item Y is detected as an accessible data item from target program 23 . In contrast, access control information 24 indicates that the user has access rights to data items X and Y, but does not have access rights to data item Z. FIG. In that case, the processing unit 22 confirms that the user has access rights to the data item Y that has been detected.

アクセス権限を有すると判定した場合、処理部22は、対象プログラム23をデータ処理装置10に登録することを許可する。その場合、例えば、アクセス制御装置20は、対象プログラム23を含む登録要求をデータ処理装置10に転送する。これにより、データ処理装置10に対象プログラム23が登録される。例えば、データ処理装置10において、データ13のデータ項目Yが更新されると対象プログラム23が起動される。一方、アクセス権限を有しないと判定した場合、処理部22は、対象プログラム23をデータ処理装置10に登録することを拒否する。その場合、例えば、アクセス制御装置20は、対象プログラム23を含む登録要求をデータ処理装置10に転送することを抑止する。アクセス制御装置20は、開発端末に拒否メッセージを送信してもよい。 When determining that the user has access authority, the processing unit 22 permits the registration of the target program 23 in the data processing apparatus 10 . In that case, for example, the access control device 20 transfers a registration request including the target program 23 to the data processing device 10 . Thereby, the target program 23 is registered in the data processing device 10 . For example, in the data processing device 10, when the data item Y of the data 13 is updated, the target program 23 is activated. On the other hand, if it is determined that the user does not have access authority, the processing unit 22 refuses to register the target program 23 in the data processing apparatus 10 . In that case, for example, the access control device 20 prevents the registration request including the target program 23 from being transferred to the data processing device 10 . The access control device 20 may send a rejection message to the development terminal.

第1の実施の形態の情報処理システムによれば、対象プログラム23をデータ処理装置10に登録する前に、対象プログラム23を分析してアクセスされ得るデータ項目が検出される。そして、アクセス制御情報24に基づいて、検出されたデータ項目に対するアクセス権限をユーザが有するか判定され、アクセス権限を有する場合、データ13の更新に応じて実行されるように対象プログラム23がデータ処理装置10に登録される。データ処理装置10は、登録後に対象プログラム23からデータ13へのアクセスが発生した際には、アクセス先のデータ項目に対するアクセス権限を確認しなくてもよい。 According to the information processing system of the first embodiment, before the target program 23 is registered in the data processor 10, the target program 23 is analyzed to detect data items that can be accessed. Based on the access control information 24, it is determined whether or not the user has access authority to the detected data item. Registered in device 10 . When the target program 23 accesses the data 13 after registration, the data processing apparatus 10 does not need to check the access authority for the data item to be accessed.

これにより、データ13の中に、あるユーザにアクセスを許可してもよいデータ項目とアクセスを許可したくないデータ項目とが混在していても、データ項目単位のアクセス制御を実現することができ、情報セキュリティを向上させることができる。また、対象プログラム23の登録後は、データ処理装置10においてアクセス権限の確認を省略することができ、アクセス毎にアクセス制御情報24を参照しなくてもよい。これにより、実際のアクセス時にアクセス権限を確認する方法と比べて、アクセス権限の確認のオーバヘッドを削減でき、データ処理装置10のデータ処理の遅延を抑制することができる。 As a result, even if the data 13 contains a mixture of data items to which a certain user may be permitted to access and data items to which access should not be permitted, it is possible to implement access control for each data item. , can improve information security. In addition, after the target program 23 is registered, it is possible to omit confirmation of access authority in the data processing apparatus 10, and the access control information 24 does not have to be referred to for each access. As a result, compared to the method of confirming the access authority at the time of actual access, the overhead of confirming the access authority can be reduced, and the data processing delay of the data processing device 10 can be suppressed.

[第2の実施の形態]
次に、第2の実施の形態を説明する。
図2は、第2の実施の形態の情報処理システムの例を示す図である。
[Second embodiment]
Next, a second embodiment will be described.
FIG. 2 is a diagram illustrating an example of an information processing system according to the second embodiment.

第2の実施の形態の情報処理システムは、デバイスからデータセンタにイベントメッセージを収集し、イベントメッセージをリアルタイムに処理してイベント駆動型のサービスを提供するリアルタイム動的イベント処理システムである。 The information processing system of the second embodiment is a real-time dynamic event processing system that collects event messages from devices to a data center, processes the event messages in real time, and provides event-driven services.

第2の実施の形態の情報処理システムは、ネットワーク52に接続されたデータセンタ50、デバイス60,60a,60b,60c,60d,60eなどの複数のデバイス、および、開発装置70,70a,70bなどの複数の開発装置を含む。データセンタ50は、ネットワーク51に接続されたファイアウォール100、メッセージサーバ200、ノード300,300a,300bなどの複数のノード、および、業務サーバ400,400a,400bなどの複数の業務サーバを含む。 The information processing system of the second embodiment includes a data center 50 connected to a network 52, a plurality of devices such as devices 60, 60a, 60b, 60c, 60d, and 60e, and development devices 70, 70a, and 70b. including multiple development devices of The data center 50 includes a firewall 100 connected to a network 51, a message server 200, multiple nodes such as nodes 300, 300a and 300b, and multiple business servers such as business servers 400, 400a and 400b.

ネットワーク51は、例えば、LAN(Local Area Network)などのデータ通信ネットワークである。ネットワーク52は、例えば、インターネットなどの広域データ通信ネットワークである。なお、ファイアウォール100は、第1の実施の形態のアクセス制御装置20に対応し、ノード300は、第1の実施の形態のデータ処理装置10に対応する。 The network 51 is, for example, a data communication network such as a LAN (Local Area Network). Network 52 is, for example, a wide area data communication network such as the Internet. Note that the firewall 100 corresponds to the access control device 20 of the first embodiment, and the node 300 corresponds to the data processing device 10 of the first embodiment.

デバイス60,60a,60b,60c,60d,60eは、イベントの発生を検出し、イベントを示すイベントメッセージをネットワーク52を介してメッセージサーバ200に送信する端末装置である。デバイス60,60a,60b,60c,60d,60eは、センサを用いて測定されたセンサデータを、イベントメッセージに含めて送信する。 The devices 60 , 60 a , 60 b , 60 c , 60 d and 60 e are terminal devices that detect the occurrence of events and transmit event messages indicating the events to the message server 200 via the network 52 . Devices 60, 60a, 60b, 60c, 60d, and 60e include sensor data measured using sensors in an event message and transmit the event message.

デバイス60,60a,60bは、例えば、スマートフォンやタブレット端末などの携帯端末装置である。デバイス60c,60d,60eは、例えば、車両に搭載される車載装置である。デバイス60,60a,60b,60c,60d,60eは、GPS(Global Positioning System)を用いて測定された緯度および経度を含む位置情報を、イベントメッセージに含めて送信してもよい。また、デバイス60,60a,60b,60c,60d,60eは、現在の移動速度を、イベントメッセージに含めて送信してもよい。 Devices 60, 60a, and 60b are, for example, mobile terminal devices such as smartphones and tablet terminals. Devices 60c, 60d, and 60e are, for example, in-vehicle devices mounted in vehicles. Devices 60, 60a, 60b, 60c, 60d, and 60e may transmit location information including latitude and longitude measured using GPS (Global Positioning System) in event messages. Also, the devices 60, 60a, 60b, 60c, 60d, and 60e may include the current moving speed in the event message and transmit it.

開発装置70,70a,70bは、データセンタ50で稼働させるアプリケーションソフトウェアの開発に使用される端末装置である。開発装置70,70a,70bは、アプリケーションソフトウェアの開発者や管理者によって使用される。例えば、開発装置70は管理者によって使用され、開発装置70aは開発者Aによって使用され、開発装置70bは開発装置70aとは異なる開発者である開発者Bによって使用される。 The development devices 70 , 70 a and 70 b are terminal devices used for developing application software to be run in the data center 50 . The development devices 70, 70a, 70b are used by application software developers and administrators. For example, development device 70 is used by an administrator, development device 70a is used by developer A, and development device 70b is used by developer B who is a different developer from development device 70a.

開発装置70,70a,70bは、ノード300,300a,300bを停止させずに、着脱可能なアプリケーションプログラムであるプラグインをノード300,300a,300bに追加することができる。また、開発装置70,70a,70bは、ノード300,300a,300bを停止させずに、プラグインをノード300,300a,300bから削除することができる。その際、開発装置70,70a,70bは、プラグインの追加または削除を示す制御メッセージをファイアウォール100に送信する。管理者が使用する開発装置70は、ファイアウォール100に対して、ノード300,300a,300bに配置可能なプラグインの条件を示す制御情報を設定する。 The development devices 70, 70a, 70b can add plug-ins, which are detachable application programs, to the nodes 300, 300a, 300b without stopping the nodes 300, 300a, 300b. Also, the development devices 70, 70a, 70b can delete plug-ins from the nodes 300, 300a, 300b without stopping the nodes 300, 300a, 300b. At that time, the development devices 70, 70a, 70b transmit to the firewall 100 a control message indicating the addition or deletion of the plug-in. The development device 70 used by the administrator sets control information indicating conditions for plug-ins that can be placed in the nodes 300, 300a, and 300b to the firewall 100. FIG.

ファイアウォール100は、開発装置70,70a,70bから制御メッセージを受信し、プラグインの変更の可否を判定するサーバコンピュータである。ノード300,300a,300bのプラグインの変更は、ファイアウォール100を経由して行われる。ファイアウォール100を、ゲートウェイやセキュリティ装置などと言うこともできる。また、プラグインに関して、開発者や管理者をユーザと言うことができる。 The firewall 100 is a server computer that receives control messages from the development devices 70, 70a, and 70b and determines whether plug-ins can be changed. Plug-ins of nodes 300 , 300 a and 300 b are changed via firewall 100 . Firewall 100 may also be referred to as a gateway, security device, or the like. Also, developers and administrators can be referred to as users with respect to plug-ins.

ファイアウォール100は、ノード300,300a,300bに配置可能なプラグインの条件を示す制御情報を保持している。ファイアウォール100は、開発装置70,70a,70bから制御メッセージを受信すると、受信した制御メッセージによって要求されるプラグインの追加や削除などのプラグインの変更が、所定のセキュリティ条件を満たすか判定する。所定のセキュリティ条件を満たす場合、ファイアウォール100は、制御メッセージをメッセージサーバ200に転送する。一方、所定のセキュリティ条件を満たさない場合、ファイアウォール100は、制御メッセージの転送を拒否する。 The firewall 100 holds control information indicating conditions for plug-ins that can be placed in the nodes 300, 300a, and 300b. When the firewall 100 receives a control message from the development devices 70, 70a, and 70b, the firewall 100 determines whether a change in plugins such as addition or deletion of plugins requested by the received control message satisfies a predetermined security condition. Firewall 100 forwards the control message to message server 200 if predetermined security conditions are met. On the other hand, if the predetermined security conditions are not satisfied, the firewall 100 refuses transfer of the control message.

メッセージサーバ200は、イベントメッセージや制御メッセージなどのメッセージを転送するサーバコンピュータである。メッセージサーバ200は、受信したメッセージを保持するメッセージキューを有し、各メッセージをノード300,300a,300bの1つに転送する。メッセージサーバ200を、負荷分散装置と言うこともできる。 The message server 200 is a server computer that transfers messages such as event messages and control messages. The message server 200 has message queues that hold received messages and forwards each message to one of the nodes 300, 300a, 300b. The message server 200 can also be called a load balancer.

メッセージサーバ200は、デバイス60,60a,60b,60c,60d,60eからイベントメッセージを受信し、ノード300,300a,300bにイベントメッセージを振り分ける。また、メッセージサーバ200は、ファイアウォール100から制御メッセージを受信し、ノード300,300a,300bに制御メッセージを振り分ける。制御メッセージについては、ファイアウォール100によるセキュリティ検査が行われる。そのため、メッセージサーバ200は、開発装置70,70a,70bからメッセージサーバ200に直接送信された制御メッセージなど、ファイアウォール100を経由しない制御メッセージを拒否するようにする。 The message server 200 receives event messages from the devices 60, 60a, 60b, 60c, 60d and 60e and distributes the event messages to the nodes 300, 300a and 300b. Also, the message server 200 receives control messages from the firewall 100 and distributes the control messages to the nodes 300, 300a, and 300b. Control messages are subject to security inspection by the firewall 100 . Therefore, the message server 200 rejects control messages that do not pass through the firewall 100, such as control messages directly sent to the message server 200 from the development devices 70, 70a, and 70b.

ノード300,300a,300bは、デバイス60,60a,60b,60c,60d,60eのイベントメッセージを分散して処理するサーバコンピュータである。ノード300,300a,300bは、デバイス60,60a,60b,60c,60d,60eの状態を示すステートデータを分散して保持する。 Nodes 300, 300a, 300b are server computers that distribute and process event messages of devices 60, 60a, 60b, 60c, 60d, 60e. Nodes 300, 300a and 300b distribute and hold state data indicating the states of devices 60, 60a, 60b, 60c, 60d and 60e.

ノード300,300a,300bは、他ノードで管理されているデバイスのイベントメッセージを受信すると、当該他ノードにイベントメッセージを転送する。ノード300,300a,300bは、自ノードで管理しているデバイスのイベントメッセージを受信すると、そのデバイスのステートデータを更新する。例えば、ノード300,300a,300bは、イベントメッセージに含まれるセンサデータをステートデータに上書きする。更新されたステートデータに対してプラグインが対応付けられている場合、ノード300,300a,300bは、対応付けられたプラグインを起動する。 When nodes 300, 300a, and 300b receive an event message from a device managed by another node, they transfer the event message to the other node. When the nodes 300, 300a, and 300b receive the event message of the device managed by their own node, they update the state data of the device. For example, the nodes 300, 300a, and 300b overwrite the sensor data included in the event message with the state data. If a plugin is associated with the updated state data, nodes 300, 300a, and 300b activate the associated plugin.

ノード300,300a,300bは、プラグインを実行してステートデータを処理し、イベント駆動型の情報サービスを起動する。例えば、ノード300,300a,300bは、緯度および経度を含む位置情報の更新に応じて、所定のエリアに存在する移動端末装置を検出する。また、例えば、ノード300,300a,300bは、移動速度を示す速度情報の更新に応じて、渋滞に巻き込まれている車載装置を検出する。イベント駆動型の情報サービスは、プラグインの追加によって実現することができる。ノード300,300a,300bは、プラグインの実行結果に応じて、外部の業務システムを形成する業務サーバ400,400a,400bを呼び出すことがある。 Nodes 300, 300a, 300b execute plug-ins to process state data and invoke event-driven information services. For example, nodes 300, 300a, and 300b detect mobile terminal devices existing in a predetermined area according to updated location information including latitude and longitude. Also, for example, the nodes 300, 300a, and 300b detect an in-vehicle device caught in a traffic jam according to the update of speed information indicating the moving speed. Event-driven information services can be realized by adding plug-ins. The nodes 300, 300a, and 300b may call the business servers 400, 400a, and 400b forming an external business system according to the execution result of the plug-in.

また、ノード300,300a,300bは、メッセージサーバ200から制御メッセージを受信する。ノード300,300a,300bは、プラグインの変更対象が他ノードである制御メッセージを受信すると、当該他ノードに制御メッセージを転送する。ノード300,300a,300bは、プラグインの変更対象が自ノードである制御メッセージを受信すると、制御メッセージに応じてプラグインの追加または削除を行う。プラグイン自体であるバイナリプログラムは、制御メッセージに含まれて配布される。このため、複数のノードから共通リポジトリへのアクセスの集中を抑制することができる。 Nodes 300 , 300 a and 300 b also receive control messages from message server 200 . When the nodes 300, 300a, and 300b receive the control message indicating that the plug-in change target is another node, they transfer the control message to the other node. When the nodes 300, 300a, and 300b receive the control message indicating that the change target of the plug-in is their own node, they add or delete the plug-in according to the control message. The binary program, which is the plug-in itself, is distributed in the control message. Therefore, it is possible to suppress the concentration of accesses from a plurality of nodes to the common repository.

業務サーバ400,400a,400bは、リアルタイム動的イベント処理の外部の業務システムを形成するサーバコンピュータである。業務サーバ400,400a,400bは、ノード300,300a,300bからイベント処理結果を受信し、イベント処理結果に基づいて業務アプリケーションを実行し、業務サービスを提供する。 Business servers 400, 400a, and 400b are server computers forming a business system external to real-time dynamic event processing. The business servers 400, 400a, 400b receive event processing results from the nodes 300, 300a, 300b, execute business applications based on the event processing results, and provide business services.

例えば、業務サーバ400は、人事管理システムを形成する。業務サーバ400aは、各種の情報をまとめるダッシュボードシステムを形成する。その場合、業務サーバ400aは、デバイス60,60a,60b,60c,60d,60eに各種の情報を提供してもよいし、所定の管理者に各種の情報を提供してもよい。業務サーバ400bは、運転管理システムを形成する。その場合、業務サーバ400bは、道路交通情報を他のシステムに提供してもよいし、各車両の自動運転制御を実現してもよい。 For example, the business server 400 forms a personnel management system. The business server 400a forms a dashboard system that organizes various types of information. In that case, the business server 400a may provide various information to the devices 60, 60a, 60b, 60c, 60d, and 60e, or may provide various information to a predetermined administrator. The business server 400b forms an operation management system. In that case, business server 400b may provide road traffic information to other systems, and may realize automatic operation control of each vehicle.

図3は、ファイアウォールのハードウェア例を示すブロック図である。
ファイアウォール100は、CPU101、RAM102、HDD103、画像インタフェース104、入力インタフェース105、媒体リーダ106および通信インタフェース107を有する。ファイアウォール100の上記ユニットは、バスに接続されている。なお、CPU101は、第1の実施の形態の処理部22に対応する。RAM102またはHDD103は、第1の実施の形態の記憶部21に対応する。デバイス60,60a,60b,60c,60d,60e、開発装置70,70a,70b、メッセージサーバ200、ノード300,300a,300bおよび業務サーバ400,400a,400bも、ファイアウォール100と同様のハードウェアを有する。
FIG. 3 is a block diagram showing a hardware example of a firewall.
Firewall 100 has CPU 101 , RAM 102 , HDD 103 , image interface 104 , input interface 105 , media reader 106 and communication interface 107 . The above units of firewall 100 are connected to a bus. Note that the CPU 101 corresponds to the processing unit 22 of the first embodiment. The RAM 102 or HDD 103 corresponds to the storage section 21 of the first embodiment. Devices 60, 60a, 60b, 60c, 60d, 60e, development devices 70, 70a, 70b, message server 200, nodes 300, 300a, 300b, and business servers 400, 400a, 400b also have hardware similar to firewall 100. .

CPU101は、プログラムの命令を実行するプロセッサである。CPU101は、HDD103に記憶されたプログラムやデータの少なくとも一部をRAM102にロードし、プログラムを実行する。なお、CPU101は複数のプロセッサコアを備えてもよく、ファイアウォール100は複数のプロセッサを備えてもよい。複数のプロセッサの集合を「マルチプロセッサ」または単に「プロセッサ」と言うことがある。 The CPU 101 is a processor that executes program instructions. The CPU 101 loads at least part of the programs and data stored in the HDD 103 into the RAM 102 and executes the programs. Note that the CPU 101 may include multiple processor cores, and the firewall 100 may include multiple processors. A collection of multiple processors is sometimes called a "multiprocessor" or simply a "processor."

RAM102は、CPU101が実行するプログラムやCPU101が演算に使用するデータを一時的に記憶する揮発性の半導体メモリである。なお、ファイアウォール100は、RAM以外の種類のメモリを備えてもよく、複数のメモリを備えてもよい。 The RAM 102 is a volatile semiconductor memory that temporarily stores programs executed by the CPU 101 and data used by the CPU 101 for calculation. Note that the firewall 100 may be provided with a type of memory other than the RAM, and may be provided with a plurality of memories.

HDD103は、OS(Operating System)やミドルウェアやアプリケーションソフトウェアなどのソフトウェアのプログラム、および、データを記憶する不揮発性ストレージである。なお、ファイアウォール100は、フラッシュメモリやSSD(Solid State Drive)など他の種類のストレージを備えてもよく、複数のストレージを備えてもよい。 The HDD 103 is a nonvolatile storage that stores an OS (Operating System), software programs such as middleware and application software, and data. Note that the firewall 100 may include other types of storage such as flash memory and SSD (Solid State Drive), or may include multiple storages.

画像インタフェース104は、CPU101からの命令に従って、ファイアウォール100に接続された表示装置111に画像を出力する。表示装置111として、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ(LCD:Liquid Crystal Display)、有機EL(OEL:Organic Electro-Luminescence)ディスプレイ、プロジェクタなど、任意の種類の表示装置を使用することができる。また、ファイアウォール100に、プリンタなど表示装置111以外の出力デバイスが接続されてもよい。 The image interface 104 outputs an image to the display device 111 connected to the firewall 100 according to commands from the CPU 101 . As the display device 111, any type of display device can be used, such as a CRT (Cathode Ray Tube) display, a liquid crystal display (LCD: Liquid Crystal Display), an organic EL (OEL: Organic Electro-Luminescence) display, or a projector. . Also, an output device other than the display device 111, such as a printer, may be connected to the firewall 100. FIG.

入力インタフェース105は、ファイアウォール100に接続された入力デバイス112から入力信号を受け付ける。入力デバイス112として、マウス、タッチパネル、タッチパッド、キーボードなど、任意の種類の入力デバイスを使用することができる。また、ファイアウォール100に複数種類の入力デバイスが接続されてもよい。 Input interface 105 receives an input signal from input device 112 connected to firewall 100 . Input device 112 can be any type of input device such as a mouse, touch panel, touch pad, keyboard, or the like. Also, multiple types of input devices may be connected to the firewall 100 .

媒体リーダ106は、記録媒体113に記録されたプログラムやデータを読み取る読み取り装置である。記録媒体113として、フレキシブルディスク(FD:Flexible Disk)やHDDなどの磁気ディスク、CD(Compact Disc)やDVD(Digital Versatile Disc)などの光ディスク、半導体メモリなど、任意の種類の記録媒体を使用することができる。媒体リーダ106は、例えば、記録媒体113から読み取ったプログラムやデータを、RAM102やHDD103などの他の記録媒体にコピーする。読み取られたプログラムは、例えば、CPU101によって実行される。なお、記録媒体113は可搬型記録媒体であってもよく、プログラムやデータの配布に用いられることがある。また、記録媒体113やHDD103を、コンピュータ読み取り可能な記録媒体と言うことがある。 The medium reader 106 is a reading device that reads programs and data recorded on the recording medium 113 . Any type of recording medium can be used as the recording medium 113, such as magnetic disks such as flexible disks (FDs) and HDDs, optical disks such as CDs (Compact Discs) and DVDs (Digital Versatile Discs), and semiconductor memories. can be done. The medium reader 106 copies, for example, programs and data read from the recording medium 113 to other recording media such as the RAM 102 and the HDD 103 . The read program is executed by the CPU 101, for example. Note that the recording medium 113 may be a portable recording medium, and may be used for distribution of programs and data. Also, the recording medium 113 and the HDD 103 may be referred to as a computer-readable recording medium.

通信インタフェース107は、ネットワーク51に接続され、他の情報処理装置と通信する。通信インタフェース107は、例えば、スイッチやルータなどの有線通信装置に接続される有線通信インタフェースである。 The communication interface 107 is connected to the network 51 and communicates with other information processing apparatuses. The communication interface 107 is, for example, a wired communication interface connected to a wired communication device such as a switch or router.

次に、リアルタイム動的イベント処理について説明する。
図4は、ノードの機能例を示すブロック図である。
ノード300,300a,300bは、以下のソフトウェアモジュールを有する。ノード300は、メッセージ転送部310,310aなどの複数のメッセージ転送部、デバイスオブジェクト320,320aなどの複数のデバイスオブジェクト、および、サービスオブジェクト330などの1以上のサービスオブジェクトを有する。ノード300aは、メッセージ転送部310b,310cなどの複数のメッセージ転送部、デバイスオブジェクト320b,320cなどの複数のデバイスオブジェクト、および、サービスオブジェクト330aなどの1以上のサービスオブジェクトを有する。ノード300bは、メッセージ転送部310d,310eなどの複数のメッセージ転送部、デバイスオブジェクト320d,320eなどの複数のデバイスオブジェクト、および、サービスオブジェクト330bなどの1以上のサービスオブジェクトを有する。
Next, real-time dynamic event processing will be described.
FIG. 4 is a block diagram showing an example of functions of a node.
Nodes 300, 300a, 300b have the following software modules. Node 300 has a plurality of message transfer units such as message transfer units 310 and 310a, a plurality of device objects such as device objects 320 and 320a, and one or more service objects such as service object 330. FIG. Node 300a has a plurality of message transfer units such as message transfer units 310b and 310c, a plurality of device objects such as device objects 320b and 320c, and one or more service objects such as service object 330a. Node 300b has a plurality of message transfer units such as message transfer units 310d and 310e, a plurality of device objects such as device objects 320d and 320e, and one or more service objects such as service object 330b.

メッセージサーバ200は、イベントメッセージを受信し、メッセージ転送部310,310a,310b,310c,310d,310eにイベントメッセージを振り分けて転送する。イベントメッセージの振り分けは、例えば、ラウンドロビン方式で行う。メッセージ転送部310,310a,310b,310c,310d,310eは、イベントメッセージを送信したデバイスに対応するデバイスオブジェクトを判定し、判定したデバイスオブジェクトに対してイベントメッセージを転送する。このとき、メッセージ転送部310,310a,310b,310c,310d,310eは、何れのデバイスオブジェクトが何れのノードに配置されているかを知っているものとする。転送先のデバイスオブジェクトは、同一ノードにあることもあるし他ノードにあることもある。 The message server 200 receives event messages, distributes the event messages to the message transfer units 310, 310a, 310b, 310c, 310d, and 310e and transfers them. Event messages are distributed by, for example, a round-robin method. The message transfer units 310, 310a, 310b, 310c, 310d, and 310e determine the device object corresponding to the device that transmitted the event message, and transfer the event message to the determined device object. At this time, it is assumed that the message transfer units 310, 310a, 310b, 310c, 310d, and 310e know which device object is placed in which node. The transfer destination device object may be in the same node or in another node.

デバイスオブジェクト320,320a,320b,320c,320d,320eは、デバイスの状態を示すステートデータを管理する。1つのデバイスオブジェクトは1つのデバイスに対応する。具体的には、デバイスオブジェクト320はデバイス60に対応する。デバイスオブジェクト320aはデバイス60aに対応する。デバイスオブジェクト320bはデバイス60bに対応する。デバイスオブジェクト320cはデバイス60cに対応する。デバイスオブジェクト320dはデバイス60dに対応する。デバイスオブジェクト320eはデバイス60eに対応する。 Device objects 320, 320a, 320b, 320c, 320d, and 320e manage state data indicating device states. One device object corresponds to one device. Specifically, device object 320 corresponds to device 60 . Device object 320a corresponds to device 60a. Device object 320b corresponds to device 60b. Device object 320c corresponds to device 60c. Device object 320d corresponds to device 60d. Device object 320e corresponds to device 60e.

デバイスオブジェクト320,320a,320b,320c,320d,320eは、イベントメッセージを受信すると、イベントメッセージに含まれるセンサデータを用いて自身のステートデータを更新する。ステートデータは、キーとバリューを対応付けたキーバリュー形式データである。デバイスオブジェクト320,320a,320b,320c,320d,320eは、あるキーとバリューの組がイベントメッセージに含まれている場合、当該キーに対応するバリューをステートデータに上書きする。 When the device objects 320, 320a, 320b, 320c, 320d, and 320e receive the event message, they update their own state data using the sensor data included in the event message. State data is key-value format data in which keys and values are associated with each other. The device objects 320, 320a, 320b, 320c, 320d, and 320e overwrite the state data with the value corresponding to the key when the event message includes a key-value pair.

デバイスオブジェクト320,320a,320b,320c,320d,320eでは、ステートデータのキーに対してプラグインを対応付けることが可能である。プラグインを追加する制御メッセージでは、対象のデバイスオブジェクトと対象のキーが指定される。よって、デバイスオブジェクトによって異なるプラグインが配置されることがある。また、同一のデバイスオブジェクトに2以上のプラグインが配置されることがある。それら2以上のプラグインは、同一のキーに対応付けられることもあるし異なるキーに対応付けられることもある。1つのプラグインが2以上のキーに対応付けられることもある。 In device objects 320, 320a, 320b, 320c, 320d, and 320e, plug-ins can be associated with state data keys. The control message to add the plug-in specifies the target device object and the target key. Therefore, different plug-ins may be arranged depending on the device object. Also, two or more plug-ins may be placed in the same device object. These two or more plug-ins may be associated with the same key or with different keys. A single plug-in may be associated with more than one key.

デバイスオブジェクト320,320a,320b,320c,320d,320eは、バリューが更新されたキーにプラグインが対応付けられている場合、そのプラグインを起動する。デバイスオブジェクト320,320a,320b,320c,320d,320eは、プラグインに従って、ステートデータの参照または更新を行うことがあり、他のイベントメッセージを生成して何れかのサービスオブジェクトに送信することがある。 The device objects 320, 320a, 320b, 320c, 320d, and 320e activate the plug-in when the key whose value has been updated is associated with the plug-in. Device objects 320, 320a, 320b, 320c, 320d, and 320e may reference or update state data, and may generate and send other event messages to any of the service objects, depending on the plug-in. .

サービスオブジェクト330,330a,330bは、情報サービスに対応するオブジェクトである。例えば、サービスオブジェクト330,330a,330bは、所定のエリアに存在するデバイスの検出、移動速度が閾値未満のデバイスの検出、移動速度が閾値を超えるデバイスの検出などを行う。サービスオブジェクト330,330a,330bは、プラグインの実行に伴ってデバイスオブジェクト320,320a,320b,320c,320d,320eからイベントメッセージを受信することがある。 Service objects 330, 330a, and 330b are objects corresponding to information services. For example, the service objects 330, 330a, and 330b detect devices existing in a predetermined area, detect devices whose moving speed is less than a threshold value, detect devices whose moving speed exceeds a threshold value, and the like. The service objects 330, 330a, 330b may receive event messages from the device objects 320, 320a, 320b, 320c, 320d, 320e as the plug-ins are executed.

イベントメッセージの送信元のデバイスオブジェクトは、同一ノードにあることもあるし他ノードにあることもある。何れのデバイスオブジェクトが何れのサービスオブジェクトにイベントメッセージを送信するかは、プラグインの実装による。サービスオブジェクト330,330a,330bは、ステートデータを保持することがある。サービスオブジェクト330,330a,330bは、受信したイベントメッセージおよびステートデータに基づいてデータ処理を行う。その結果、サービスオブジェクト330,330a,330bは、何れかの業務サーバにメッセージを送信することがある。 The device object that sent the event message may be in the same node or in another node. Which device object sends the event message to which service object depends on the implementation of the plug-in. Service objects 330, 330a, 330b may hold state data. Service objects 330, 330a, 330b perform data processing based on received event messages and state data. As a result, service objects 330, 330a, 330b may send messages to any business server.

また、メッセージサーバ200は、制御メッセージをファイアウォール100から受信し、メッセージ転送部310,310a,310b,310c,310d,310eに制御メッセージを振り分けて転送する。メッセージ転送部310,310a,310b,310c,310d,310eは、プラグイン変更の対象となるデバイスオブジェクトを判定し、判定したデバイスオブジェクトに対して制御メッセージを転送する。 Also, the message server 200 receives control messages from the firewall 100, distributes the control messages to the message transfer units 310, 310a, 310b, 310c, 310d, and 310e and transfers them. The message transfer units 310, 310a, 310b, 310c, 310d, and 310e determine the device object to be changed in the plug-in, and transfer the control message to the determined device object.

デバイスオブジェクト320,320a,320b,320c,320d,320eは、プラグイン追加の制御メッセージを受信すると、制御メッセージに含まれるプラグインを、制御メッセージで指定されたキーに対応付けて保存する。これにより、そのキーに対応するバリューの更新時にそのプラグインが実行されることになる。また、デバイスオブジェクト320,320a,320b,320c,320d,320eは、プラグイン削除の制御メッセージを受信すると、制御メッセージで指定されたプラグインを削除する。このように、開発者によって動的にプラグインの追加や削除が可能となる。 When the device objects 320, 320a, 320b, 320c, 320d, and 320e receive the plug-in addition control message, they store the plug-in included in the control message in association with the key specified by the control message. This will cause the plugin to be executed when the value corresponding to that key is updated. When the device objects 320, 320a, 320b, 320c, 320d, and 320e receive the plug-in deletion control message, they delete the plug-in specified by the control message. In this way, developers can dynamically add or remove plug-ins.

図5は、デバイスオブジェクトの機能例を示すブロック図である。
デバイスオブジェクト320は、ステート記憶部321、プラグイン記憶部322、メッセージ判別部323、ステート管理部324、プラグイン管理部325およびプラグイン実行部326を有する。他のデバイスオブジェクトも同様のモジュールを有する。ステート記憶部321およびプラグイン記憶部322には、例えば、RAMの記憶領域のうちデバイスオブジェクト320に割り当てられた記憶領域が使用される。メッセージ判別部323、ステート管理部324、プラグイン管理部325およびプラグイン実行部326は、例えば、プログラムを用いて実装される。
FIG. 5 is a block diagram showing an example of functions of a device object.
The device object 320 has a state storage section 321 , a plug-in storage section 322 , a message determination section 323 , a state management section 324 , a plug-in management section 325 and a plug-in execution section 326 . Other device objects have similar modules. For the state storage unit 321 and the plug-in storage unit 322, for example, a storage area allocated to the device object 320 in the RAM storage area is used. The message determination unit 323, the state management unit 324, the plug-in management unit 325, and the plug-in execution unit 326 are implemented using programs, for example.

ステート記憶部321は、キーバリュー形式のステートデータを記憶する。ステートデータには、キーとバリューの組が1つ以上含まれる。プラグイン記憶部322は、ステートデータに含まれるキーと対応付けてプラグインを記憶する。デバイスオブジェクト320が受信する制御メッセージには、コンパイル済みのプラグインプログラムが含まれている。プラグインは、デバイスオブジェクト320にて実行可能に配置される。 The state storage unit 321 stores state data in key-value format. State data includes one or more pairs of key and value. The plug-in storage unit 322 stores plug-ins in association with keys included in state data. Control messages received by the device object 320 contain compiled plug-in programs. A plug-in is placed executable on the device object 320 .

メッセージ判別部323は、何れかのメッセージ転送部からメッセージを受信し、受信したメッセージの種別を判別する。メッセージの種別には、イベントとプラグイン追加とプラグイン削除が含まれる。メッセージ判別部323は、イベントメッセージをステート管理部324に出力する。また、メッセージ判別部323は、プラグイン追加またはプラグイン削除を示す制御メッセージをプラグイン管理部325に出力する。 The message determination unit 323 receives a message from any message transfer unit and determines the type of the received message. Message types include events, plugin additions, and plugin deletions. The message determination section 323 outputs the event message to the state management section 324 . Also, the message determination unit 323 outputs a control message indicating plug-in addition or plug-in deletion to the plug-in management unit 325 .

ステート管理部324は、メッセージ判別部323からイベントメッセージを取得する。すると、ステート管理部324は、イベントメッセージからキーとバリューの組を抽出する。1つのイベントメッセージに、キーとバリューの組が2つ以上含まれていることもある。ステート管理部324は、ステート記憶部321に記憶されたステートデータから、イベントメッセージから抽出されたキーを検索し、当該キーに対応するステートデータのバリューを、イベントメッセージから抽出されたバリューに更新する。なお、イベントメッセージから抽出されたキーがステートデータに存在しない場合、ステート管理部324は、抽出されたキーとバリューの組をステートデータに追加すればよい。 The state management unit 324 acquires event messages from the message determination unit 323 . The state management unit 324 then extracts a key-value pair from the event message. A single event message may contain more than one key-value pair. The state management unit 324 searches the state data stored in the state storage unit 321 for the key extracted from the event message, and updates the value of the state data corresponding to the key to the value extracted from the event message. . If the key extracted from the event message does not exist in the state data, the state management unit 324 may add the extracted key-value pair to the state data.

プラグイン管理部325は、メッセージ判別部323からプラグイン追加の制御メッセージを取得する。すると、プラグイン管理部325は、制御メッセージで指定されたキーと対応付けて、制御メッセージに含まれるプラグインをプラグイン記憶部322に保存する。また、プラグイン管理部325は、メッセージ判別部323からプラグイン削除の制御メッセージを取得する。すると、プラグイン管理部325は、制御メッセージで指定されたプラグインをプラグイン記憶部322から削除する。 The plug-in management unit 325 acquires a plug-in addition control message from the message determination unit 323 . Then, the plug-in management unit 325 stores the plug-in included in the control message in the plug-in storage unit 322 in association with the key specified by the control message. The plug-in management unit 325 also acquires a plug-in deletion control message from the message determination unit 323 . The plug-in management unit 325 then deletes the plug-in specified by the control message from the plug-in storage unit 322 .

プラグイン追加にあたり、プラグイン管理部325は、ステートデータの更新に応答してすぐにプラグインが実行されるように、制御メッセージに含まれるプラグラインのプログラムに対して変換処理を行うことがある。例えば、制御メッセージに含まれるプラグラインのプログラムは、ソースコードからコンパイルされて所定の低水準言語で記述されたバイトコードであることがある。その場合、プラグイン管理部325は、クラスローダを用いて当該バイトコードを実行可能クラスに変換し、変換された当該プラグインをすぐに呼び出し可能な状態に登録することが考えられる。 When adding a plug-in, the plug-in management unit 325 may convert the plug-line program included in the control message so that the plug-in is executed immediately in response to the update of the state data. . For example, the plug-in program included in the control message may be bytecode compiled from source code and written in a predetermined low-level language. In that case, the plug-in management unit 325 may use a class loader to convert the bytecode into an executable class, and register the converted plug-in in a ready-to-call state.

プラグイン実行部326は、ステート管理部324によってステートデータのキーに対応するバリューが更新されたことを検出する。すると、プラグイン実行部326は、バリューが更新されたキーに対応付けられているプラグインを検索する。プラグイン実行部326は、該当するプラグインが存在する場合、そのプラグインを実行する。なお、あるキーに対応するバリューがイベントメッセージに応じて上書きされても、バリューが上書き前から変化していない場合には、バリューが更新されていないとみなしてもよい。 The plug-in execution unit 326 detects that the value corresponding to the state data key has been updated by the state management unit 324 . Then, the plug-in execution unit 326 searches for a plug-in associated with the key whose value has been updated. The plug-in execution unit 326 executes the plug-in if the corresponding plug-in exists. Note that even if the value corresponding to a certain key is overwritten in response to an event message, if the value has not changed since before the overwriting, it may be considered that the value has not been updated.

図6は、ステートテーブルとプラグインテーブルの例を示す図である。
ステートテーブル327は、ステート記憶部321に記憶される。ステートテーブル327には、キーとバリューを対応付けた1以上のレコードが登録される。キーには、例えば、速度、緯度、経度などが含まれる。これらのキーに対応するバリューは、デバイス60がセンサを用いて測定し、イベントメッセージに含めて送信したものである。例えば、デバイス60が、これらのバリューを含むイベントメッセージを定期的に送信する。
FIG. 6 is a diagram showing examples of a state table and a plug-in table.
State table 327 is stored in state storage unit 321 . One or more records that associate keys and values are registered in the state table 327 . Keys include, for example, speed, latitude, longitude, and so on. Values corresponding to these keys are measured by the device 60 using a sensor and transmitted in an event message. For example, device 60 periodically sends event messages containing these values.

デバイスオブジェクト320は、「速度」のバリューを含むイベントメッセージを受信すると、「速度」と対応付けてそのバリューをステートテーブル327に上書きする。同様に、デバイスオブジェクト320は、「緯度」のバリューを含むイベントメッセージを受信すると、「緯度」と対応付けてそのバリューをステートテーブル327に上書きする。デバイスオブジェクト320は、「経度」のバリューを含むイベントメッセージを受信すると、「経度」と対応付けてそのバリューをステートテーブル327に上書きする。速度、緯度および経度に対しては、プラグインを追加することができる。 When the device object 320 receives an event message containing the value of “speed”, it overwrites the value in the state table 327 in association with “speed”. Similarly, when the device object 320 receives an event message containing the value of “latitude”, it overwrites the value in the state table 327 in association with “latitude”. When the device object 320 receives an event message containing the value of “longitude”, it overwrites the value in the state table 327 in association with “longitude”. Plugins can be added for speed, latitude and longitude.

プラグインテーブル328は、プラグイン記憶部322に記憶される。プラグインテーブル328には、1以上のキーに対応付けてプラグインのバイナリプログラム(プラグインバイナリ)が登録される。プラグインテーブル328には、異なる開発者によって作成されたプラグインバイナリを登録することができる。例えば、「速度」に対して、開発者Aによって作成されたプラグインA1が登録され、「緯度」および「経度」に対して、開発者Bによって作成されたプラグインB1が登録される。 A plug-in table 328 is stored in the plug-in storage unit 322 . Plug-in binary programs (plug-in binaries) are registered in the plug-in table 328 in association with one or more keys. The plugin table 328 can register plugin binaries created by different developers. For example, plug-in A1 created by developer A is registered for "speed", and plug-in B1 created by developer B is registered for "latitude" and "longitude".

この場合、ステートテーブル327の「速度」のバリューが更新された場合、デバイスオブジェクト320はプラグインA1を起動することになる。ステートテーブル327の「緯度」のバリューが更新された場合、デバイスオブジェクト320はプラグインB1を起動することになる。ステートテーブル327の「経度」のバリューが更新された場合、デバイスオブジェクト320はプラグインB1を起動することになる。 In this case, when the "speed" value in the state table 327 is updated, the device object 320 will activate plug-in A1. If the "latitude" value in the state table 327 is updated, the device object 320 will activate plug-in B1. If the "longitude" value in the state table 327 is updated, the device object 320 will activate plug-in B1.

図7は、メッセージのフォーマット例を示す図である。
メッセージ判別部323は、イベントメッセージ61、プラグイン追加の制御メッセージ71、および、プラグイン削除の制御メッセージ72を受信することがある。
FIG. 7 is a diagram showing a format example of a message.
The message determination unit 323 may receive an event message 61 , a plug-in addition control message 71 , and a plug-in deletion control message 72 .

イベントメッセージ61は、オブジェクトID、種別およびセンサデータを含む。オブジェクトIDは、デバイスオブジェクトを識別する識別子である。オブジェクトIDは、デバイスを識別する識別子であると言うこともできる。オブジェクトIDは、イベントメッセージ61を生成するデバイスによって付与され、イベントメッセージ61の宛先のデバイスオブジェクトを特定するために参照される。イベントメッセージ61の種別は「イベント」である。センサデータは、キーとバリューの組を1つ以上含む。 Event message 61 includes an object ID, type and sensor data. An object ID is an identifier that identifies a device object. An object ID can also be said to be an identifier that identifies a device. The object ID is assigned by the device that generates the event message 61 and is referenced to identify the destination device object of the event message 61 . The type of the event message 61 is "event". Sensor data includes one or more key-value pairs.

制御メッセージ71は、オブジェクトID、種別、ユーザID、キー、プラグインIDおよびプラグインバイナリを含む。オブジェクトIDは、プラグインを追加する対象のオブジェクトを識別する識別子である。オブジェクトIDは、制御メッセージ71の宛先のデバイスオブジェクトを特定するために参照される。制御メッセージ71の種別は「追加」である。ユーザIDは、プラグインを作成した開発者または管理者を識別する識別子である。キーは、プラグインを追加する対象のキーを示す。プラグインIDは、プラグインを識別する識別子である。プラグインIDは、プラグインバイナリのハッシュ値など、プラグイン自体から算出される識別子であってもよい。プラグインバイナリは、プラグインのコンパイル済みのバイナリ形式プログラムである。 Control message 71 includes object ID, type, user ID, key, plugin ID and plugin binary. The object ID is an identifier that identifies the object to which the plug-in is added. The object ID is referenced to specify the destination device object of the control message 71 . The type of the control message 71 is "add". A user ID is an identifier that identifies a developer or administrator who created a plug-in. The key indicates the key to which the plug-in is added. A plug-in ID is an identifier that identifies a plug-in. The plugin ID may be an identifier calculated from the plugin itself, such as a hash value of the plugin binary. A plugin binary is a compiled binary program of the plugin.

制御メッセージ72は、オブジェクトID、種別、ユーザID、キーおよびプラグインIDを含む。オブジェクトIDは、プラグインを削除する対象のオブジェクトを識別する識別子である。オブジェクトIDは、制御メッセージ72の宛先のデバイスオブジェクトを特定するために参照される。制御メッセージ72の種別は「削除」である。ユーザIDは、プラグインを削除する開発者または管理者を識別する識別子である。キーは、プラグインを削除する対象のキーを示す。ただし、プラグインが2以上のキーと対応付けられている場合に、一部のキーとの対応付けのみを解除し、他のキーとの対応付けを残す場合もある。プラグインIDは、プラグインを識別する識別子である。 Control message 72 includes object ID, type, user ID, key and plug-in ID. The object ID is an identifier that identifies an object whose plug-in is to be deleted. The object ID is referenced to identify the device object to which the control message 72 is directed. The type of the control message 72 is "deletion". A user ID is an identifier that identifies a developer or administrator who deletes a plug-in. The key indicates the target key for deleting the plug-in. However, when a plug-in is associated with two or more keys, the association with some keys may be canceled and the association with other keys may remain. A plug-in ID is an identifier that identifies a plug-in.

次に、デバイスオブジェクト320,320a,320b,320c,320d,320eが有するステートデータのセキュリティについて説明する。
前述のように、同一のデバイスオブジェクトに対して、異なるユーザのプラグインを混在させて配置することができる。プラグインは、ステートデータからバリューを読み出すことがあり、ステートデータにバリューを書き込むことがある。このとき、ステートデータの中には、情報セキュリティの観点から、あるユーザにアクセスを許可するバリューと当該ユーザにアクセスを許可したくないバリューが存在することがある。そこで、プラグインからステートデータへのアクセスをキー単位で制御することが好ましい。
Next, the security of state data possessed by the device objects 320, 320a, 320b, 320c, 320d, and 320e will be described.
As described above, plug-ins of different users can be mixed and arranged for the same device object. A plug-in may read values from state data and write values to state data. At this time, from the viewpoint of information security, the state data may contain a value to which a certain user is permitted to access and a value to which the user should not be permitted to access. Therefore, it is preferable to control access to state data from plug-ins in units of keys.

アクセス制御方法としては、リアルタイム動的イベント処理システムの外部に、アクセス制御リスト(ACL)を保持する集中管理サーバを設け、プラグインからステートデータへのアクセス毎に集中管理サーバにアクセス可否を問い合わせる方法も考えられる。しかし、この方法では、アクセス権限の確認のオーバヘッドが大きくなり、リアルタイム動的イベント処理のスループットが低下するおそれがある。 As an access control method, a centralized management server that holds an access control list (ACL) is provided outside the real-time dynamic event processing system, and an access permission inquiry is made to the centralized management server each time a plug-in accesses state data. is also conceivable. However, this method may increase the overhead of checking access rights and reduce the throughput of real-time dynamic event processing.

また、アクセス制御方法として、ノード300,300a,300bにACLをコピーし、プラグインからステートデータへのアクセス毎にノード内でアクセス権限を確認する方法も考えられる。しかし、この方法でも、アクセス権限の確認のオーバヘッドが大きくなり、リアルタイム動的イベント処理のスループットが低下するおそれがある。また、ACLの更新時に、複数のノードのACLの一貫性を保持することが難しい場合がある。 Also, as an access control method, a method of copying the ACL to the nodes 300, 300a, and 300b and confirming the access authority within the node each time the plug-in accesses the state data is also conceivable. However, even with this method, the overhead of checking access rights increases, and the throughput of real-time dynamic event processing may decrease. Also, when updating ACLs, it may be difficult to keep the ACLs of multiple nodes consistent.

そこで、第2の実施の形態では、ノード300,300a,300bにプラグインを配置する前に、ファイアウォール100がプラグインを分析してACLに適合していることを確認する。そして、プラグインがACLに適合していることが確認された後は、プラグインからステートデータへのアクセス時にアクセス権限を確認することを省略する。これにより、プラグイン実行時のアクセス制御のオーバヘッドを削減し、リアルタイム動的イベント処理のスループットを向上させることができる。 Therefore, in the second embodiment, the firewall 100 analyzes the plug-in and confirms that it conforms to the ACL before placing the plug-in on the nodes 300, 300a, and 300b. After it is confirmed that the plug-in conforms to the ACL, the checking of the access authority is omitted when the plug-in accesses the state data. As a result, the overhead of access control during plug-in execution can be reduced, and the throughput of real-time dynamic event processing can be improved.

ただし、アクセス時のアクセス権限の確認が省略されるため、ACLが示すセキュリティポリシーが管理者によって事後的に変更された場合、配置済みの既存プラグインが更新後のACLに適合しなくなることがある。そこで、ファイアウォール100は、管理者がACLを更新する際に、自動的に既存プラグインを再検証するようにする。 However, since the access authority check is omitted when accessing, if the security policy indicated by the ACL is changed after the fact by the administrator, the existing plugins that have already been deployed may not be compatible with the updated ACL. . Therefore, the firewall 100 automatically revalidates the existing plug-ins when the administrator updates the ACL.

図8は、ファイアウォールの機能例を示すブロック図である。
ファイアウォール100は、ACL記憶部121、解析結果データベース122、メッセージ通信部123、プラグイン解析部124、認証部125およびACL更新部126を有する。ACL記憶部121および解析結果データベース122は、例えば、RAM102またはHDD103の記憶領域を用いて実装される。メッセージ通信部123、プラグイン解析部124、認証部125およびACL更新部126は、例えば、CPU101が実行するプログラムを用いて実装される。
FIG. 8 is a block diagram showing an example of firewall functions.
Firewall 100 has ACL storage unit 121 , analysis result database 122 , message communication unit 123 , plug-in analysis unit 124 , authentication unit 125 and ACL update unit 126 . The ACL storage unit 121 and the analysis result database 122 are implemented using storage areas of the RAM 102 or the HDD 103, for example. The message communication unit 123, the plug-in analysis unit 124, the authentication unit 125, and the ACL update unit 126 are implemented using programs executed by the CPU 101, for example.

ACL記憶部121は、ユーザとオブジェクトとアクセスを許可するキーとを対応付けたアクセス制御リスト(ACL)を記憶する。ACLは、予め管理者によって作成される。ACLは、管理者によって事後的に更新されることもある。あるユーザがプラグインを開発し、あるオブジェクトにそのプラグインを追加しようとする場合、そのプラグインからアクセスされる可能性のあるキーの全てがACLとマッチすれば、そのプラグインの追加が許可されることになる。なお、第2の実施の形態では、アクセスを許可するキーを示すホワイトリスト形式のACLを用いているが、アクセスを許可しないキーを示すブラックリスト形式のACLを用いるようにしてもよい。 The ACL storage unit 121 stores an access control list (ACL) in which users, objects, and access-permitting keys are associated with each other. ACLs are created in advance by an administrator. ACLs may also be updated after the fact by an administrator. If a user develops a plugin and tries to add it to an object, the addition of the plugin is allowed if all of the keys that can be accessed by the plugin match the ACL. will be In the second embodiment, a whitelist ACL indicating keys for which access is permitted is used, but a blacklist ACL indicating keys for which access is not permitted may be used.

解析結果データベース122は、ノード300,300a,300bに追加された既存プラグインについての解析結果を記憶する履歴データベースである。解析結果データベース122に記憶された解析結果は、ACLの更新時に既存プラグインの再解析を抑制するために参照される。ただし、ファイアウォール100が解析結果データベース122をもたずに、ACLの更新時に既存プラグインを再解析するようにしてもよい。 The analysis result database 122 is a history database that stores analysis results of existing plug-ins added to the nodes 300, 300a, and 300b. The analysis results stored in the analysis result database 122 are referenced to suppress reanalysis of existing plug-ins when updating the ACL. However, the firewall 100 may not have the analysis result database 122 and re-analyze existing plug-ins when updating the ACL.

メッセージ通信部123は、開発装置70,70a,70bから制御メッセージを受信する。メッセージ通信部123は、プラグイン追加の制御メッセージをプラグイン解析部124に出力し、プラグインの認証結果を認証部125から取得する。認証成功、すなわち、プラグイン追加を許可する場合、メッセージ通信部123は、制御メッセージをメッセージサーバ200に転送する。一方、認証失敗、すなわち、プラグイン追加を拒否する場合、メッセージ通信部123は、制御メッセージをメッセージサーバ200に転送せず、制御メッセージを送信した開発装置にエラーを通知する。 Message communication unit 123 receives control messages from development devices 70, 70a, and 70b. Message communication unit 123 outputs a plug-in addition control message to plug-in analysis unit 124 and acquires a plug-in authentication result from authentication unit 125 . If the authentication is successful, that is, if the plug-in addition is permitted, the message communication section 123 transfers the control message to the message server 200 . On the other hand, if the authentication fails, that is, if the addition of the plug-in is rejected, the message communication unit 123 does not transfer the control message to the message server 200 and notifies the development device that transmitted the control message of an error.

なお、ファイアウォール100は、プラグイン削除の制御メッセージについては、認証を行わずにメッセージサーバ200に転送するようにしてもよい。また、ファイアウォール100は、プラグイン削除の制御メッセージについて、削除権限を確認した上でメッセージサーバ200に転送するようにしてもよい。ファイアウォール100は、解析結果データベース122から、削除するプラグインの解析結果を削除するようにしてもよい。 Note that the firewall 100 may transfer the plug-in deletion control message to the message server 200 without performing authentication. Further, the firewall 100 may transfer the plug-in deletion control message to the message server 200 after confirming deletion authority. The firewall 100 may delete the analysis result of the plugin to be deleted from the analysis result database 122 .

プラグイン解析部124は、プラグイン追加の制御メッセージをメッセージ通信部123から取得する。すると、プラグイン解析部124は、制御メッセージに含まれるプラグインバイナリを解析して、プラグインからアクセスされる可能性があるキーを抽出する。キーの抽出には、抽象解釈などの静的プログラム解析方法を利用する。例えば、プラグイン解析部124は、ステートデータにアクセスする関数の引数として使用されている変数を検出し、その変数が取り得る値を、アクセスされる可能性があるキーとして抽出する。 The plug-in analysis unit 124 acquires a plug-in addition control message from the message communication unit 123 . The plug-in analysis unit 124 then analyzes the plug-in binary included in the control message and extracts keys that may be accessed from the plug-in. Key extraction uses static program analysis methods such as abstract interpretation. For example, the plug-in analysis unit 124 detects a variable that is used as an argument of a function that accesses state data, and extracts possible values of that variable as keys that may be accessed.

プラグイン解析部124は、解析結果を認証部125に出力する。また、プラグイン解析部124は、認証部125が認証成功と判定した場合、ユーザとオブジェクトとプラグインとアクセス先キーを対応付けた認証結果を解析結果データベース122に保存する。 Plug-in analysis unit 124 outputs the analysis result to authentication unit 125 . Further, when the authentication unit 125 determines that the authentication is successful, the plug-in analysis unit 124 saves in the analysis result database 122 the authentication result in which the user, the object, the plug-in, and the access destination key are associated with each other.

認証部125は、プラグイン解析部124から解析結果を取得する。すると、認証部125は、アクセスされる可能性があるキーの全てが、ACL記憶部121に記憶されたACLにマッチするか判定する。すなわち、認証部125は、プラグインを作成したユーザおよび対象のオブジェクトに対応するアクセス許可キーをACLから検索する。認証部125は、プラグイン解析部124で抽出されたキーそれぞれが、ACLが示すアクセス許可キーの範囲に属しているか判定する。抽出されたキーの全てがACLにマッチした場合、認証部125は、プラグイン追加を許可し、メッセージ通信部123に認証成功を通知する。一方、抽出されたキーの中にACLにマッチしないものがある場合、認証部125は、プラグイン追加を拒否し、メッセージ通信部123に認証失敗を通知する。 Authentication unit 125 acquires the analysis result from plug-in analysis unit 124 . Then, the authentication unit 125 determines whether or not all keys that may be accessed match the ACL stored in the ACL storage unit 121 . That is, the authentication unit 125 searches the ACL for an access permission key corresponding to the user who created the plug-in and the target object. The authentication unit 125 determines whether each key extracted by the plug-in analysis unit 124 belongs to the range of access permission keys indicated by the ACL. If all of the extracted keys match the ACL, the authentication unit 125 permits plug-in addition and notifies the message communication unit 123 of authentication success. On the other hand, if any of the extracted keys does not match the ACL, the authentication unit 125 rejects the plug-in addition and notifies the message communication unit 123 of authentication failure.

ACL更新部126は、管理者が使用する開発装置70から、新ACLを含むACL更新メッセージを受信する。すると、ACL更新部126は、解析結果データベース122から、ノード300,300a,300bに配置済みの既存プラグインの解析結果を読み出す。ACL更新部126は、認証部125と同様の方法で、既存プラグインからアクセスされる可能性のあるキーが新ACLにマッチするか判定する。 The ACL updater 126 receives an ACL update message including a new ACL from the development device 70 used by the administrator. Then, the ACL updating unit 126 reads the analysis results of the existing plug-ins already arranged in the nodes 300, 300a, and 300b from the analysis result database 122. FIG. The ACL updating unit 126 uses the same method as the authenticating unit 125 to determine whether a key that may be accessed by an existing plug-in matches the new ACL.

旧ACLが新ACLに更新されることにより、旧ACLに適合していた既存プラグインが新ACLに適合しなくなることがある。不適合の既存プラグインが存在する場合、ACL更新部126は、管理者が使用する開発装置70に警告メッセージを送信する。そして、ACL更新部126は、ACL記憶部121の旧ACLを新ACLに置換する。 When the old ACL is updated to the new ACL, existing plug-ins that conform to the old ACL may no longer conform to the new ACL. If there is an existing incompatible plug-in, the ACL updater 126 sends a warning message to the development device 70 used by the administrator. Then, the ACL updating unit 126 replaces the old ACL in the ACL storage unit 121 with the new ACL.

図9は、アクセス制御リストと解析結果テーブルの例を示す図である。
アクセス制御リスト127は、ACL記憶部121に記憶される。アクセス制御リスト127には、ユーザIDとオブジェクトIDとキーを含む1以上のレコードが登録される。ユーザIDは、開発者と管理者を含むユーザを識別する識別子である。オブジェクトIDは、プラグインを配置する対象のデバイスオブジェクトを識別する識別子である。オブジェクトIDとして、「car001」のように、1つのデバイスオブジェクトの識別子を指定してもよい。また、オブジェクトIDとして、「car」のように、デバイスの種類を表すクラス名を用いて、デバイスオブジェクトの識別子の範囲を指定してもよい。また、オブジェクトIDでは、任意の文字列を表すワイルドカード(*)を用いてもよい。
FIG. 9 is a diagram showing examples of an access control list and an analysis result table.
The access control list 127 is stored in the ACL storage unit 121. FIG. One or more records including user IDs, object IDs, and keys are registered in the access control list 127 . A user ID is an identifier that identifies a user, including developers and administrators. The object ID is an identifier that identifies the device object to which the plug-in is to be placed. An identifier of one device object such as "car001" may be specified as the object ID. Also, as the object ID, a class name representing the type of device, such as "car", may be used to specify the range of device object identifiers. A wild card (*) representing an arbitrary character string may be used in the object ID.

キーは、プラグインからのアクセスを許可するアクセス許可キーである。アクセス許可キーとして、「速度」のように、特定の1つのキーを指定してもよい。また、アクセス許可キーでは、正規表現を用いてもよく、ワイルドカード(*)を用いてキーの範囲を指定してもよい。ワイルドカードを末尾に付すことで、アクセスを許可するキーのプレフィックスを指定することができる。例えば、「a*」と記載することで、「a」や「aa」や「ab」など、「a」から始まる全てのキーを指定することができる。 The key is an access permission key that allows access from plugins. A specific key, such as "speed", may be specified as an access permission key. Also, in the access permission key, a regular expression may be used, or a wildcard (*) may be used to specify the key range. A trailing wildcard allows you to specify a key prefix for which access is allowed. For example, by writing "a*", all keys beginning with "a" such as "a", "aa", and "ab" can be specified.

なお、リアルタイム動的イベント処理システムによっては、あるオブジェクトに配置されたプラグインが、他のオブジェクトにメッセージを送信することで他のオブジェクトのステートデータにアクセスすることも有り得る。その場合、アクセス制御リスト127を、ユーザIDとアクセス元オブジェクトIDとアクセス先オブジェクトIDとキーとを含むように拡張することが考えられる。アクセス元オブジェクトIDは、プラグインが配置されるオブジェクトを識別する識別子である。アクセス先オブジェクトIDは、アクセス先のステートデータが属するオブジェクトを識別する識別子である。 Note that in some real-time dynamic event processing systems, a plug-in located in one object may access state data in another object by sending messages to the other object. In that case, the access control list 127 may be expanded to include user IDs, access source object IDs, access destination object IDs, and keys. The access source object ID is an identifier that identifies the object in which the plug-in is arranged. The access destination object ID is an identifier that identifies the object to which the access destination state data belongs.

解析結果テーブル128は、解析結果データベース122に記憶される。解析結果テーブル128には、ユーザID、オブジェクトID、プラグインIDおよび解析結果を含む1以上のレコードが登録される。ユーザIDは、プラグインを作成したユーザを識別する識別子である。オブジェクトIDは、プラグインを配置したデバイスオブジェクトを識別する識別子である。プラグインIDは、配置したプラグインを識別する識別子である。解析結果は、プラグインからアクセスされる可能性のあるキーと、アクセス方法がバリューの読み出し(read)であるかバリューの書き込み(write)であるかを示す。 The analysis result table 128 is stored in the analysis result database 122. FIG. One or more records including user IDs, object IDs, plug-in IDs, and analysis results are registered in the analysis result table 128 . The user ID is an identifier that identifies the user who created the plug-in. The object ID is an identifier that identifies the device object in which the plug-in is arranged. The plug-in ID is an identifier that identifies the placed plug-in. The analysis result indicates a key that may be accessed from the plug-in and whether the access method is to read the value (read) or write the value (write).

なお、既存プラグインが新ACLに適合しているか検証するという観点からは、解析結果テーブル128がプラグインIDを含まなくてもよい。プラグインIDは、新ACLに適合しない既存プラグインが検出された場合に、不適合の既存プラグインを削除するために使用されることがある。また、解析結果テーブル128を、プラグインIDとキーとアクセス方法とを対応付けたテーブルと、ユーザIDとオブジェクトIDとプラグインIDとを対応付けたテーブルとに分割して正規化してもよい。 Note that the analysis result table 128 may not include the plug-in ID from the viewpoint of verifying whether the existing plug-in conforms to the new ACL. The plug-in ID may be used to remove the non-conforming existing plug-in when an existing plug-in that does not conform to the new ACL is detected. Further, the analysis result table 128 may be normalized by dividing it into a table in which plug-in IDs, keys, and access methods are associated with each other, and a table in which user IDs, object IDs, and plug-in IDs are associated with each other.

次に、プラグインの解析例および認証例について説明する。
図10は、プラグインの解析例を示す図である。
ここでは説明を容易にするため、プラグインをソースコード形式で記述している。実際にはプラグイン解析部124は、コンパイル済みのプラグインバイナリを解析する。
Next, an analysis example and an authentication example of a plug-in will be described.
FIG. 10 is a diagram illustrating an example of plug-in analysis.
For ease of explanation, the plug-in is written in source code format. The plug-in analysis unit 124 actually analyzes compiled plug-in binaries.

プラグインプログラム131は、プラグインの一例である。プラグインプログラム131では、変数namespaceの初期値が文字列「exampleSumPlugin」に設定される。次に、ループ変数iが0から9まで変化する間、変数namespaceの末尾に「.」とループ変数iの値を追加したものが、変数fieldに代入され、変数fieldの値をキーとしてステートデータから数値が読み出され、その数値が変数sumに加算される。次に、変数sumの値が偶数か判定され、偶数なら変数namespaceの末技に「.output.even」が追加され、奇数なら変数namespaceの末技に「.output.odd」が追加される。最後に、変数namespaceの値をキーとし変数sumの値をバリューとして、ステートデータが更新される。 The plug-in program 131 is an example of a plug-in. In the plug-in program 131, the initial value of the variable namespace is set to the character string "exampleSumPlugin". Next, while the loop variable i changes from 0 to 9, the value of the loop variable i added to the end of the variable namespace is substituted into the variable field, and the state data is read from and added to the variable sum. Next, it is determined whether the value of the variable sum is an even number, and if it is even, ".output.even" is added to the ending of the variable namespace, and if it is odd, ".output.odd" is added to the ending of the variable namespace. Finally, the state data is updated using the value of the variable namespace as a key and the value of the variable sum as a value.

プラグイン解析部124は、抽象解釈によりプラグインプログラム131を解析する。抽象解釈では、プラグイン解析部124は、変数に値を代入する代入命令を検出し、代入命令毎にその時点で変数が取り得る値を示すアノテーションを付加する。なお、ソースコードにおける変数はバイトコードにおけるレジスタに対応し、プラグインバイナリの解析ではレジスタに値を代入する代入命令毎にアノテーションを付加することになる。 The plug-in analysis unit 124 analyzes the plug-in program 131 by abstract interpretation. In abstract interpretation, the plug-in analysis unit 124 detects an assignment instruction that assigns a value to a variable, and adds an annotation indicating the possible values that the variable can take at that time for each assignment instruction. A variable in the source code corresponds to a register in the bytecode, and an annotation is added to each assignment instruction that assigns a value to the register in the analysis of the plug-in binary.

プラグインプログラム131からは、アノテーションを付加したプラグインプログラム132が生成される。プラグインプログラム132では、変数namespaceを初期化する際の変数namespaceの値域は、「exampleSumPlugin」である。ループ内で変数fieldに値を代入する際の変数fieldの値域は、「exampleSumPlugin.*」である。ここで「*」は、任意の文字列を表すワイルドカードである。変数sumの値が偶数であると判定された際の変数namespaceの値域は、「exampleSumPlugin.output.even」である。変数sumの値が奇数であると判定された際の変数namespaceの値域は、「exampleSumPlugin.output.odd」である。最終的な変数namespaceの値域は、「exampleSumPlugin.output.*」である。 A plug-in program 132 with annotations is generated from the plug-in program 131 . In the plug-in program 132, the value range of the variable namespace when initializing the variable namespace is "exampleSumPlugin". The value range of the variable field when assigning a value to the variable field within the loop is "exampleSumPlugin.*". Here, "*" is a wildcard representing any character string. The value range of the variable namespace when the value of the variable sum is determined to be an even number is "exampleSumPlugin.output.even". The value range of the variable namespace when the value of the variable sum is determined to be an odd number is "exampleSumPlugin.output.odd". The value range of the final variable namespace is "exampleSumPlugin.output.*".

次に、プラグイン解析部124は、ステートデータからバリューを読み出す関数getStateと、ステートデータにバリューを書き込む関数setStateを検出する。プラグイン解析部124は、関数getStateや関数setStateからキーを示す引数を抽出し、その時点で引数が取り得る値を特定する。 Next, the plug-in analysis unit 124 detects a function getState that reads a value from state data and a function setState that writes a value to state data. The plug-in analysis unit 124 extracts an argument indicating a key from the function getState and function setState, and specifies the possible values of the argument at that time.

プラグインプログラム132からは、プラグインプログラム133が生成される。プラグインプログラム133では、変数fieldの値をキーとしてステートデータからバリューが読み出されている。この時点における変数fieldの値域は「exampleSumPlugin.*」である。よって、プラグインプログラム131では、「exampleSumPlugin.*」というキーに対してread処理が行われると判定される。また、プラグインプログラム133では、変数namespaceの値をキーとしてステートデータにバリューが書き込まれている。この時点における変数namespaceの値域は「exampleSumPlugin.output.*」である。よって、プラグインプログラム131では、「exampleSumPlugin.output.*」というキーに対してwrite処理が行われると判定される。 A plug-in program 133 is generated from the plug-in program 132 . In the plug-in program 133, a value is read from the state data using the value of the variable field as a key. The value range of the variable field at this time is "exampleSumPlugin.*". Therefore, in the plug-in program 131, it is determined that the read process is performed for the key "exampleSumPlugin.*". In the plug-in program 133, a value is written in the state data using the value of the variable namespace as a key. At this point, the value range of the variable namespace is "exampleSumPlugin.output.*". Therefore, in the plug-in program 131, it is determined that the write process is performed for the key "exampleSumPlugin.output.*".

図11は、プラグインの認証例を示す図である。
プラグインの解析結果やアクセス制御リスト127では、キーの指定にワイルドカードが使用され得る。このため、認証部125は、キーの範囲の包含関係を判定する。プラグインの解析結果が示すキー範囲の全体が、アクセス制御リスト127が示すキー範囲に包含されている場合、そのプラグインの追加が許可される。一方、プラグインの解析結果が示すキー範囲の少なくとも一部分が、アクセス制御リスト127が示すキー範囲に包含されていない場合、そのプラグインの追加が拒否される。
FIG. 11 is a diagram illustrating an example of plug-in authentication.
Wildcards can be used to specify keys in the plug-in analysis results and the access control list 127 . Therefore, the authentication unit 125 determines the inclusion relationship of the key range. If the entire key range indicated by the plug-in analysis result is included in the key range indicated by the access control list 127, the plug-in is permitted to be added. On the other hand, if at least part of the key range indicated by the plug-in analysis result is not included in the key range indicated by the access control list 127, the addition of the plug-in is rejected.

プラグインプログラム134,135,136は、プラグインの一例である。プラグインプログラム134は、キーとして具体的な文字列「a」を指定している。よって、プラグインプログラム134によってアクセスされ得るキーは「a」である。プラグインプログラム135は、キーとして具体的な文字列「a」を指定することがあり、その文字列に1以上の「c」を付加したものをキーとして指定することもある。よって、プラグインプログラム135によってアクセスされ得るキーは「a*」である。プラグインプログラム136は、キーとして関数の戻り値を使用している。よって、プラグインプログラム136によってアクセスされ得るキーは「*」であり不明である。 Plug-in programs 134, 135, and 136 are examples of plug-ins. The plug-in program 134 designates a specific character string "a" as the key. Thus, the key that can be accessed by the plug-in program 134 is "a". The plug-in program 135 may specify a specific character string "a" as a key, and may specify a character string with one or more "c"s added as a key. Thus, the key that can be accessed by plug-in program 135 is "a*". The plug-in program 136 uses function return values as keys. Thus, the key that can be accessed by the plug-in program 136 is "*" and is unknown.

プラグインを作成したユーザが開発者Aであり、追加先のデバイスオブジェクトが「car001」であり、アクセス制御リスト127には、そのユーザIDおよびオブジェクトIDに対応付けてアクセス許可キー「a*」が登録されているとする。「a」は「a*」に包含されるため、プラグインプログラム134の追加は許可される。また、「a*」は「a*」に包含されるため、プラグインプログラム135の追加は許可される。一方、「*」は「a*」に包含されないため、プラグインプログラム136の追加は拒否される。このように、キーの範囲の包含関係に基づいてプラグインの追加可否が判定される。 The user who created the plug-in is developer A, the device object to which it is added is "car001", and the access control list 127 has an access permission key "a*" associated with the user ID and object ID. Assume that it is registered. Since "a" is included in "a*", the addition of plug-in program 134 is permitted. Also, since "a*" is included in "a*", addition of the plug-in program 135 is permitted. On the other hand, since "*" is not included in "a*", the addition of plug-in program 136 is rejected. In this way, whether or not a plug-in can be added is determined based on the key range inclusion relationship.

図12は、ファイアウォールを通じたプラグインの配置例を示す図である。
ファイアウォール100は、プラグイン追加の制御メッセージ141,142を受信する。制御メッセージ141は、開発者Bが作成したプラグイン143(プラグインB1)を、デバイスオブジェクト「car001」に追加することを要求する。制御メッセージ142は、開発者Bが作成したプラグイン144(プラグインB2)を、デバイスオブジェクト「car001」に追加することを要求する。
FIG. 12 is a diagram showing an example of placement of plug-ins through a firewall.
Firewall 100 receives plug-in addition control messages 141 and 142 . The control message 141 requests that the plug-in 143 (plug-in B1) created by the developer B be added to the device object "car001". Control message 142 requests that plug-in 144 (plug-in B2) created by developer B be added to device object "car001."

ファイアウォール100は、プラグイン143を解析し、プラグイン143からアクセスされる可能性のあるキーが「緯度」と「経度」であると判定する。また、ファイアウォール100は、プラグイン144を解析し、プラグイン144からアクセスされる可能性のあるキーが「速度」であると判定する。これに対して、ファイアウォール100が有するアクセス制御リスト127には、開発者Bによるデバイスオブジェクト「car001」のキー「緯度」へのアクセスが許可されることが記載されている。また、アクセス制御リスト127には、開発者Bによるデバイスオブジェクト「car001」のキー「経度」へのアクセスが許可されることが記載されている。 The firewall 100 analyzes the plug-in 143 and determines that the keys that may be accessed from the plug-in 143 are "latitude" and "longitude". Firewall 100 also analyzes plug-in 144 and determines that the key that may be accessed from plug-in 144 is "speed." On the other hand, the access control list 127 of the firewall 100 describes that access by the developer B to the key "latitude" of the device object "car001" is permitted. The access control list 127 also describes that access by the developer B to the key "longitude" of the device object "car001" is permitted.

すると、ファイアウォール100は、プラグイン143をデバイスオブジェクト「car001」に追加することを許可し、メッセージサーバ200を経由してノード300に制御メッセージ141を転送する。ノード300のデバイスオブジェクト320は、制御メッセージ141を受信し、制御メッセージ141に含まれるプラグイン143を登録する。例えば、デバイスオブジェクト320は、ステートテーブル327のキー「緯度」および「経度」に対応付けてプラグイン143を登録する。これにより、「緯度」または「経度」のバリューが更新されたときにプラグイン143が実行される。プラグイン143がステートテーブル327にアクセスする際はアクセス権限の確認は不要である。 Firewall 100 then allows plug-in 143 to be added to device object “car001” and forwards control message 141 to node 300 via message server 200 . Device object 320 of node 300 receives control message 141 and registers plug-in 143 included in control message 141 . For example, the device object 320 registers the plug-in 143 in association with the keys “latitude” and “longitude” of the state table 327 . As a result, the plug-in 143 is executed when the value of "latitude" or "longitude" is updated. When the plug-in 143 accesses the state table 327, confirmation of access authority is unnecessary.

一方、ファイアウォール100は、プラグイン144をデバイスオブジェクト「car001」に追加することを拒否する。この場合、制御メッセージ142はノード300に転送されず、プラグイン144はデバイスオブジェクト320に登録されない。 On the other hand, firewall 100 denies adding plug-in 144 to device object “car001”. In this case, control message 142 is not forwarded to node 300 and plug-in 144 is not registered with device object 320 .

次に、第2の実施の形態の情報処理システムの手順例について説明する。
図13は、プラグイン生成の手順例を示すフローチャートである。
プラグイン生成は、開発装置70,70a,70bなどの開発装置で実行される。ここでは、代表して開発装置70が実行するものとして説明する。
Next, a procedure example of the information processing system according to the second embodiment will be described.
FIG. 13 is a flow chart showing an example of a plug-in generation procedure.
Plug-in generation is executed by development devices such as development devices 70, 70a, and 70b. Here, description will be given assuming that the development device 70 executes it as a representative.

(S10)開発装置70は、ユーザから入力を受け付け、ユーザからの入力に応じてプラグインのソースコードを作成する。ただし、開発装置70は、他の情報処理装置からプラグインのソースコードのファイルを受信してもよい。 (S10) The development device 70 receives an input from the user and creates a plug-in source code according to the input from the user. However, the development device 70 may receive a plug-in source code file from another information processing device.

(S11)開発装置70は、ステップS10で作成されたプラグインのソースコードをコンパイルし、プラグインバイナリを生成する。例えば、開発装置70は、プラグインのソースコードを、中間言語で記述されたバイトコードに変換する。 (S11) The development device 70 compiles the plug-in source code created in step S10 to generate a plug-in binary. For example, the development device 70 converts the plug-in source code into bytecode written in an intermediate language.

(S12)開発装置70は、ステップS11で生成されたプラグインバイナリを含むプラグイン追加の制御メッセージを生成する。制御メッセージのオブジェクトIDは、配置先のデバイスオブジェクトの識別子であり、ユーザから指定される。制御メッセージのユーザIDは、開発装置70を使用するユーザの識別子である。制御メッセージのキーは、プラグインの実行条件とするキーであり、ユーザから指定される。制御メッセージのプラグインIDは、プラグインバイナリから自動的に生成されてもよい。 (S12) The development device 70 generates a plug-in addition control message including the plug-in binary generated in step S11. The object ID of the control message is the identifier of the device object at the placement destination, and is specified by the user. The user ID of the control message is the identifier of the user who uses development device 70 . The key of the control message is a key used as a plug-in execution condition and is specified by the user. The plugin ID of the control message may be automatically generated from the plugin binary.

(S13)開発装置70は、ステップS12で生成された制御メッセージをファイアウォール100に送信する。なお、制御メッセージをメッセージサーバ200に直接送信した場合、メッセージサーバ200でその制御メッセージが拒否され、メッセージサーバ200から開発装置70にエラーが通知されることになる。 (S13) The development device 70 transmits the control message generated in step S12 to the firewall 100. FIG. If the control message is directly transmitted to the message server 200, the message server 200 rejects the control message, and the message server 200 notifies the development device 70 of an error.

図14は、プラグイン認証の手順例を示すフローチャートである。
プラグイン認証は、ファイアウォール100で実行される。
(S20)メッセージ通信部123は、プラグイン追加の制御メッセージを受信する。
FIG. 14 is a flow chart showing an example procedure for plug-in authentication.
Plugin authentication is performed at firewall 100 .
(S20) The message communication unit 123 receives a control message for plug-in addition.

(S21)プラグイン解析部124は、制御メッセージからプラグインバイナリを抽出する。プラグイン解析部124は、抽象解析などの静的プログラム解析方法を用いてプラグインバイナリを解析し、プラグインの意味解析を行う。例えば、プラグイン解析部124は、プラグインバイナリから、ステートデータからバリューを読み出すリード関数およびステートデータにバリューを書き込むライト関数を検出する。プラグイン解析部124は、リード関数およびライト関数それぞれの引数の取り得る値(値域)を判定する。 (S21) The plugin analysis unit 124 extracts the plugin binary from the control message. The plug-in analysis unit 124 analyzes the plug-in binary using a static program analysis method such as abstract analysis, and performs semantic analysis of the plug-in. For example, the plug-in analysis unit 124 detects a read function that reads a value from state data and a write function that writes a value to state data from the plug-in binary. The plug-in analysis unit 124 determines possible values (value ranges) of the arguments of the read function and the write function.

(S22)プラグイン解析部124は、ステップS21の解析結果に基づいて、プラグインにおいてリード対象またはライト対象となる可能性があるキーを抽出する。
(S23)認証部125は、ステップS22で抽出されたキーを1つ選択する。
(S22) The plug-in analysis unit 124 extracts keys that may be subject to read or write in the plug-in based on the analysis result of step S21.
(S23) The authentication unit 125 selects one key extracted in step S22.

(S24)認証部125は、制御メッセージからユーザIDおよびオブジェクトIDを抽出する。認証部125は、抽出したユーザIDおよびオブジェクトIDと、ステップS23で選択したキーとを用いて、アクセス制御リスト127を検索する。このとき、認証部125は、条件を満たすレコードをアクセス制御リスト127から検索することになる。条件を満たすレコードは、指定のユーザIDおよびオブジェクトIDを含み、かつ、指定のキーを包含するアクセス許可キーを含むレコードである。 (S24) The authentication unit 125 extracts the user ID and object ID from the control message. Authentication unit 125 searches access control list 127 using the extracted user ID and object ID, and the key selected in step S23. At this time, the authentication unit 125 searches the access control list 127 for a record that satisfies the conditions. A record that satisfies the conditions is a record that includes the specified user ID and object ID, and an access permission key that includes the specified key.

(S25)認証部125は、指定のユーザIDおよびオブジェクトIDのもとで、ステップS23で選択したキーのアクセスが許可されているか判断する。ステップS24で該当するレコードがアクセス制御リスト127から検索された場合、アクセスが許可されていると判断される。該当するレコードがアクセス制御リスト127から検索されなかった場合、アクセスが許可されていないと判断される。選択したキーのアクセスが許可されている場合はステップS26に進み、許可されていない場合はステップS30に進む。 (S25) The authentication unit 125 determines whether access to the key selected in step S23 is permitted under the specified user ID and object ID. If the corresponding record is retrieved from the access control list 127 in step S24, it is determined that access is permitted. If no corresponding record is retrieved from the access control list 127, it is determined that access is not permitted. If access to the selected key is permitted, the process proceeds to step S26; otherwise, the process proceeds to step S30.

(S26)認証部125は、ステップS23において、ステップS22で抽出されたキーを全て選択したか判断する。全てのキーを選択した場合はステップS27に進み、未選択のキーがある場合はステップS23に戻る。 (S26) In step S23, the authentication unit 125 determines whether all the keys extracted in step S22 have been selected. If all keys have been selected, the process proceeds to step S27, and if there are unselected keys, the process returns to step S23.

(S27)認証部125は、ステップS21の解析結果を参照して、プラグインが所定の禁止API(Application Programming Interface)を使用しているか判断する。禁止APIは、セキュリティの観点からプラグインが使用することは好ましくないライブラリ関数であり、予め管理者によって定義される。例えば、禁止APIには、ローカルファイルシステムにアクセスする関数が含まれる。禁止APIを使用している場合はステップS30に進み、禁止APIを使用していない場合はステップS28に進む。 (S27) The authentication unit 125 refers to the analysis result of step S21 and determines whether the plug-in uses a predetermined prohibited API (Application Programming Interface). Forbidden APIs are library functions that are not desirable for plug-ins to use from the security point of view, and are defined in advance by the administrator. For example, prohibited APIs include functions that access the local file system. If the prohibited API is used, the process proceeds to step S30, and if the prohibited API is not used, the process proceeds to step S28.

(S28)プラグイン解析部124は、ステップS21の解析結果を、解析結果データベース122に含まれる解析結果テーブル128に登録する。
(S29)メッセージ通信部123は、ステップS20で受信した制御メッセージをメッセージサーバ200に転送する。そして、プラグイン認証が終了する。
(S28) The plug-in analysis unit 124 registers the analysis result of step S21 in the analysis result table 128 included in the analysis result database 122. FIG.
(S29) The message communication unit 123 transfers the control message received in step S20 to the message server 200. FIG. Then, plug-in authentication ends.

(S30)メッセージ通信部123は、受信した制御メッセージを破棄し、制御メッセージを送信した開発装置に対してプラグイン追加拒否を通知する。
図15は、プラグイン追加の手順例を示すフローチャートである。
(S30) The message communication unit 123 discards the received control message and notifies the development apparatus that transmitted the control message of the plug-in addition refusal.
FIG. 15 is a flow chart showing an example procedure for adding a plug-in.

プラグイン追加は、メッセージサーバ200とノード300,300a,300bとが連携して実行される。ここでは、代表してノード300が実行するものとし、プラグイン追加先がデバイスオブジェクト320であるとして説明する。 Addition of the plug-in is performed by cooperation between the message server 200 and the nodes 300, 300a, and 300b. Here, it is assumed that the node 300 is the representative and that the plug-in addition destination is the device object 320 .

(S40)メッセージサーバ200は、プラグイン追加の制御メッセージを受信する。なお、メッセージサーバ200は、ファイアウォール100からは制御メッセージを受け付ける一方、他の情報処理装置からは制御メッセージを受け付けない。 (S40) The message server 200 receives the plug-in addition control message. Note that the message server 200 accepts control messages from the firewall 100, but does not accept control messages from other information processing devices.

(S41)メッセージサーバ200は、ノード300のメッセージ転送部310に制御メッセージを転送する。メッセージサーバ200は、ラウンドロビン方式で転送先を選択してもよい。メッセージ転送部310は、制御メッセージに含まれるオブジェクトIDを参照して、制御メッセージをデバイスオブジェクト320に転送する。 ( S<b>41 ) The message server 200 transfers the control message to the message transfer section 310 of the node 300 . The message server 200 may select forwarding destinations in a round-robin fashion. The message transfer unit 310 transfers the control message to the device object 320 by referring to the object ID included in the control message.

(S42)デバイスオブジェクト320のプラグイン管理部325は、制御メッセージからプラグインバイナリを抽出する。プラグイン管理部325は、プラグインバイナリの変換処理を行う。例えば、プラグイン管理部325は、クラスローダを用いてプラグインのバイトコードを実行可能クラスに変換する。 (S42) The plug-in manager 325 of the device object 320 extracts the plug-in binary from the control message. The plug-in management unit 325 performs plug-in binary conversion processing. For example, the plug-in manager 325 converts plug-in bytecodes into executable classes using a class loader.

(S43)プラグイン管理部325は、制御メッセージで指定されたキーに対応するバリューが更新されたときにプラグインが呼び出されるようにプラグインを登録する。プラグイン管理部325は、プラグインテーブル328にプラグインを登録する。 (S43) The plug-in management unit 325 registers the plug-in so that the plug-in is called when the value corresponding to the key specified by the control message is updated. The plugin management unit 325 registers plugins in the plugin table 328 .

図16は、ACL更新の手順例を示すフローチャートである。
ACL更新は、ファイアウォール100で実行される。
(S50)ACL更新部126は、新アクセス制御リスト(新ACL)を受信する。新アクセス制御リストは、例えば、管理者が使用する開発装置70から送信される。
FIG. 16 is a flowchart illustrating an example procedure for updating an ACL.
ACL updates are performed at firewall 100 .
(S50) The ACL updating unit 126 receives the new access control list (new ACL). The new access control list is sent, for example, from the development device 70 used by the administrator.

(S51)ACL更新部126は、認証部125において行われるプラグイン認証を一時的に停止する。その間に到着した制御メッセージは保留されることになる。
(S52)ACL更新部126は、解析結果データベース122に含まれる解析結果テーブル128から、既存プラグインのレコードを1つ選択する。
(S51) The ACL updating unit 126 temporarily suspends plug-in authentication performed by the authenticating unit 125. FIG. Control messages arriving in the meantime will be held.
(S52) The ACL updating unit 126 selects one existing plug-in record from the analysis result table 128 included in the analysis result database 122. FIG.

(S53)ACL更新部126は、ステップS52で選択したレコードに含まれる解析結果から、リード対象またはライト対象となる可能性があるキーを1つ選択する。
(S54)ACL更新部126は、ステップS52で選択した既存プラグインのレコードからユーザIDおよびオブジェクトIDを抽出する。ACL更新部126は、抽出したユーザIDおよびオブジェクトIDと、ステップS53で選択したキーとを用いて、ステップS50で受信した新アクセス制御リストを検索する。このとき、ACL更新部126は、条件を満たすレコードを新アクセス制御リストから検索することになる。条件を満たすレコードは、指定のユーザIDおよびオブジェクトIDを含み、かつ、指定のキーを包含するアクセス許可キーを含むレコードである。
(S53) The ACL updating unit 126 selects one key that may become a read target or write target from the analysis results included in the record selected in step S52.
(S54) The ACL updating unit 126 extracts the user ID and object ID from the record of the existing plug-in selected in step S52. The ACL updating unit 126 searches the new access control list received in step S50 using the extracted user ID and object ID and the key selected in step S53. At this time, the ACL updating unit 126 searches the new access control list for a record that satisfies the conditions. A record that satisfies the conditions is a record that includes the specified user ID and object ID, and an access permission key that includes the specified key.

(S55)ACL更新部126は、指定のユーザIDおよびオブジェクトIDのもとで、ステップS53で選択したキーのアクセスが許可されているか判断する。ステップS54で該当するレコードが新アクセス制御リストから検索された場合、アクセスが許可されていると判断される。該当するレコードが新アクセス制御リストから検索されなかった場合、アクセスが許可されていないと判断される。選択したキーのアクセスが許可されている場合はステップS56に進み、許可されていない場合はステップS57に進む。 (S55) The ACL updating unit 126 determines whether access to the key selected in step S53 is permitted under the specified user ID and object ID. If the corresponding record is retrieved from the new access control list in step S54, it is determined that access is permitted. If the corresponding record is not retrieved from the new access control list, it is determined that access is not permitted. If access to the selected key is permitted, the process proceeds to step S56; otherwise, the process proceeds to step S57.

(S56)ACL更新部126は、ステップS53において、解析結果に含まれるキーを全て選択したか判断する。全てのキーを選択した場合はステップS58に進み、未選択のキーがある場合はステップS53に戻る。 (S56) The ACL updating unit 126 determines whether all the keys included in the analysis result have been selected in step S53. If all keys have been selected, the process proceeds to step S58, and if there are unselected keys, the process returns to step S53.

(S57)ACL更新部126は、新アクセス制御リストを送信した開発装置に対して、ステップS52で選択した既存プラグインを不適合プラグインとして通知する。例えば、ACL更新部126は、プラグインIDを開発装置70に送信する。 (S57) The ACL updating unit 126 notifies the development device that transmitted the new access control list of the existing plug-in selected in step S52 as an incompatible plug-in. For example, the ACL updating unit 126 transmits the plug-in ID to the development device 70. FIG.

(S58)ACL更新部126は、ステップS52において、解析結果テーブル128から全ての既存プラグインのレコードを選択したか判断する。全て選択した場合はステップS59に進み、未選択のものがある場合はステップS52に戻る。 (S58) The ACL updating unit 126 determines whether or not all existing plug-in records have been selected from the analysis result table 128 in step S52. If all have been selected, the process proceeds to step S59, and if there are unselected items, the process returns to step S52.

(S59)ACL更新部126は、ACL記憶部121に記憶された旧アクセス制御リストを、ステップS50で受信した新アクセス制御リストに置換する。
(S60)ACL更新部126は、ステップS51のプラグイン認証の停止を解除する。これにより、保留されていた制御メッセージの処理が再開される。
(S59) The ACL updating unit 126 replaces the old access control list stored in the ACL storage unit 121 with the new access control list received in step S50.
(S60) The ACL updating unit 126 cancels suspension of plug-in authentication in step S51. This resumes processing of the pending control message.

第2の実施の形態の情報処理システムによれば、デバイスからイベントメッセージが収集され、デバイスに対応するデバイスオブジェクトにおいて、デバイスの状態を示すステートデータが保持される。デバイスオブジェクトに配置されたプラグインがステートデータの更新に応じて起動され、イベント駆動型のデータ処理が行われる。これにより、リアルタイム動的イベント処理を効率的に実行することができる。また、デバイスオブジェクトを停止させずに、デバイスオブジェクトにプラグインを追加することができる。これにより、ステートデータを利用するサービスの追加や更新を動的に行うことができ、リアルタイム動的イベント処理の停止を抑制することができる。 According to the information processing system of the second embodiment, event messages are collected from devices, and state data indicating device states are held in device objects corresponding to the devices. A plug-in placed in the device object is activated according to the update of state data, and event-driven data processing is performed. This allows real-time dynamic event processing to be performed efficiently. Also, plug-ins can be added to the device object without stopping the device object. As a result, it is possible to dynamically add or update services that use state data, and to suppress stoppage of real-time dynamic event processing.

また、同一のデバイスオブジェクトに異なる開発者のプラグインを配置することができる。よって、リアルタイム動的イベント処理システム上に様々なアプリケーションソフトウェアを実装することが可能となる。また、ステートデータに含まれるキー単位で、プラグインからアクセス可能なデータを制限するアクセス制御を行うことができる。よって、デバイスから収集されるステートデータを保護することができる。 Also, plug-ins from different developers can be placed in the same device object. Therefore, it becomes possible to implement various application software on the real-time dynamic event processing system. In addition, access control can be performed to limit data accessible from plug-ins in units of keys included in state data. Therefore, state data collected from the device can be protected.

また、アクセス権限の確認は、プラグインをデバイスオブジェクトに追加する前にプラグインを解析することで行われ、プラグインが配置された後は省略される。よって、プラグインがステートデータにアクセスする毎にアクセス権限を確認しなくてよく、アクセス制御のオーバヘッドが削減され、リアルタイム動的イベント処理のスループットを向上させることができる。例えば、アクセス制御リストを保持する集中管理サーバに、ステートデータへのアクセス毎に問い合わせる方法と比べて、通信オーバヘッドを削減できる。また、例えば、アクセス制御リストを複数のノードに配布する方法と比べて、アクセス制御リストの更新時にアクセス制御リストの一貫性を維持することが容易となる。 Also, checking for access rights is done by parsing the plugin before adding it to the device object, and omitted after the plugin is deployed. Therefore, it is not necessary to confirm the access authority each time the plug-in accesses the state data, thereby reducing the overhead of access control and improving the throughput of real-time dynamic event processing. For example, communication overhead can be reduced compared to a method of inquiring a centralized management server holding an access control list each time state data is accessed. Also, for example, compared to the method of distributing the access control list to a plurality of nodes, it becomes easier to maintain the consistency of the access control list when updating the access control list.

また、プラグインの解析では、抽象解釈などの意味解析が行われる。よって、プラグインが許可されていないキーにアクセスすることを見逃すリスクを低減できる。例えば、プラグインとして、キーを示す変数に初期値を書き込んだ後、その変数の値を事後的に書き換えてアクセス先のキーを変更してしまうプログラムも作成することが可能である。そのようなプラグインに対しても、ソースコードの記述を追跡する単純な静的プログラム解析方法と比べて、許可されていないキーにアクセスするリスクを評価することができる。 Semantic analysis such as abstract interpretation is performed in the plug-in analysis. Therefore, it is possible to reduce the risk of overlooking that the plug-in accesses unauthorized keys. For example, as a plug-in, it is possible to create a program that writes an initial value to a variable indicating a key, and then rewrites the value of that variable ex post facto to change the access destination key. Even for such plugins, the risk of accessing unauthorized keys can be assessed compared to simple static program analysis methods that trace source code descriptions.

また、プラグイン追加時の解析結果が履歴データベースに保存され、アクセス制御リストの更新時には、既存プラグインが新アクセス制御リストに適合しているか自動的に検査される。そして、不適合の既存プラグインが存在する場合には、新アクセス制御リストを作成した管理者に警告が通知される。よって、ステートデータへのアクセス毎にアクセス権限を確認しなくても、事後的にアクセス制御リストに適合しなくなったプラグインを検出でき、ステートデータのセキュリティを維持することができる。 In addition, the analysis results when plug-ins are added are saved in the history database, and when the access control list is updated, existing plug-ins are automatically checked to see if they are compatible with the new access control list. Then, if there is an existing incompatible plug-in, a warning is sent to the administrator who created the new access control list. Therefore, plug-ins that no longer conform to the access control list can be detected ex post facto without confirming the access authority each time the state data is accessed, and the security of the state data can be maintained.

上記については単に本発明の原理を示すものである。更に、多数の変形や変更が当業者にとって可能であり、本発明は上記に示し、説明した正確な構成および応用例に限定されるものではなく、対応する全ての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされる。 The foregoing merely illustrates the principles of the invention. Furthermore, many variations and modifications will occur to those skilled in the art, and the present invention is not limited to the precise construction and applications shown and described above, and all corresponding variations and equivalents are and the equivalents thereof.

10 データ処理装置
11,21 記憶部
12,22 処理部
13 データ
20 アクセス制御装置
23 対象プログラム
24 アクセス制御情報
REFERENCE SIGNS LIST 10 data processing device 11, 21 storage unit 12, 22 processing unit 13 data 20 access control device 23 target program 24 access control information

Claims (8)

複数のデータ項目を含むデータを記憶し、登録されたプログラムが存在する場合、前記データの更新に応じて前記登録されたプログラムを実行するデータ処理装置と、
ユーザの対象プログラムを含む登録要求を受け付け、前記対象プログラムを分析して前記複数のデータ項目のうち前記対象プログラムからアクセスされ得るデータ項目を検出し、前記ユーザがアクセス権限を有するデータ項目または前記ユーザがアクセス権限を有しないデータ項目を示すアクセス制御情報に基づいて、前記検出したデータ項目に対するアクセス権限を前記ユーザが有するか判定し、アクセス権限を有すると判定した場合、前記対象プログラムを前記データ処理装置に登録することを許可するアクセス制御装置と、
を有する情報処理システム。
a data processing device that stores data including a plurality of data items, and executes the registered program in accordance with an update of the data when the registered program exists;
receiving a registration request including a user's target program, analyzing the target program to detect a data item that can be accessed from the target program from among the plurality of data items, and detecting a data item to which the user has access authority or the user determining whether the user has access authority to the detected data item based on access control information indicating data items to which the user does not have access authority; an access control device that permits registration with a device;
An information processing system having
前記アクセス制御装置は、前記対象プログラムの登録を許可した後、前記アクセス制御情報の更新要求を受け付け、更新後の前記アクセス制御情報に基づいて、前記検出したデータ項目に対するアクセス権限を前記ユーザが有するか再判定し、アクセス権限を有しなくなったと判定した場合に警告メッセージを出力する、
請求項1記載の情報処理システム。
After permitting registration of the target program, the access control device accepts a request to update the access control information, and the user has access authority to the detected data item based on the updated access control information. re-determine whether or not, and output a warning message when it is determined that you no longer have access privileges,
The information processing system according to claim 1.
前記アクセス制御装置は、前記検出したデータ項目を示す分析履歴を保存し、前記分析履歴を用いて、更新後の前記アクセス制御情報に基づく再判定を行う、
請求項2記載の情報処理システム。
The access control device stores an analysis history indicating the detected data items, and uses the analysis history to perform re-determination based on the updated access control information.
3. The information processing system according to claim 2.
前記アクセス制御装置は、前記登録要求を受信し、前記対象プログラムの登録を許可する場合は前記登録要求を前記データ処理装置に転送し、前記対象プログラムの登録を拒否する場合は前記登録要求の転送を抑止する、
請求項1記載の情報処理システム。
The access control device receives the registration request, transfers the registration request to the data processing device when permitting registration of the target program, and transfers the registration request when rejecting registration of the target program. suppress the
The information processing system according to claim 1.
前記データ処理装置は、複数の端末装置に対応する複数のオブジェクトを生成し、前記複数のオブジェクトそれぞれに前記データおよび前記登録されたプログラムを保持させ、
前記登録要求は、登録先オブジェクトの指定を含み、前記アクセス制御情報は、オブジェクトとデータ項目の組に対してアクセス権限の有無を示し、
前記アクセス制御装置は、前記アクセス制御情報に基づいて、前記登録先オブジェクトの前記検出したデータ項目に対するアクセス権限を前記ユーザが有するか判定する、
請求項1記載の情報処理システム。
The data processing device generates a plurality of objects corresponding to a plurality of terminal devices, causes each of the plurality of objects to hold the data and the registered program,
the registration request includes designation of a registration destination object, the access control information indicates whether or not there is access authority for a set of an object and a data item;
The access control device determines whether the user has access rights to the detected data item of the registration destination object, based on the access control information.
The information processing system according to claim 1.
複数のデータ項目のうちユーザがアクセス権限を有するデータ項目または前記ユーザがアクセス権限を有しないデータ項目を示すアクセス制御情報を記憶する記憶部と、
前記ユーザの対象プログラムを含む登録要求を受け付け、前記対象プログラムを分析して前記複数のデータ項目のうち前記対象プログラムからアクセスされ得るデータ項目を検出し、前記アクセス制御情報に基づいて、前記検出したデータ項目に対するアクセス権限を前記ユーザが有するか判定し、アクセス権限を有すると判定した場合、前記対象プログラムを、前記複数のデータ項目を含むデータの更新に応じて前記対象プログラムが実行されるように情報処理システムに登録することを許可する処理部と、
を有するアクセス制御装置。
a storage unit for storing access control information indicating a data item to which a user has access authority or a data item to which the user does not have access authority among a plurality of data items;
receiving a registration request including the user's target program, analyzing the target program to detect a data item that can be accessed from the target program from among the plurality of data items, and determining the detected data item based on the access control information determining whether the user has the access authority to the data item, and if it is determined that the user has the access authority, the target program is executed in accordance with the update of the data including the plurality of data items; a processing unit that permits registration in an information processing system;
an access control device having
コンピュータが、
ユーザの対象プログラムを含む登録要求を受け付け、前記対象プログラムを分析して複数のデータ項目のうち前記対象プログラムからアクセスされ得るデータ項目を検出し、
前記複数のデータ項目のうち前記ユーザがアクセス権限を有するデータ項目または前記ユーザがアクセス権限を有しないデータ項目を示すアクセス制御情報に基づいて、前記検出したデータ項目に対するアクセス権限を前記ユーザが有するか判定し、
アクセス権限を有すると判定した場合、前記対象プログラムを、前記複数のデータ項目を含むデータの更新に応じて前記対象プログラムが実行されるように情報処理システムに登録することを許可する、
アクセス制御方法。
the computer
receiving a registration request including a user's target program, analyzing the target program and detecting data items that can be accessed from the target program among a plurality of data items;
whether the user has access authority to the detected data item based on access control information indicating data items to which the user has access authority or data items to which the user does not have access authority among the plurality of data items; judge,
If it is determined that the access authority is granted, the target program is permitted to be registered in the information processing system so that the target program is executed in accordance with the update of the data including the plurality of data items.
Access control method.
コンピュータに、
ユーザの対象プログラムを含む登録要求を受け付け、前記対象プログラムを分析して複数のデータ項目のうち前記対象プログラムからアクセスされ得るデータ項目を検出し、
前記複数のデータ項目のうち前記ユーザがアクセス権限を有するデータ項目または前記ユーザがアクセス権限を有しないデータ項目を示すアクセス制御情報に基づいて、前記検出したデータ項目に対するアクセス権限を前記ユーザが有するか判定し、
アクセス権限を有すると判定した場合、前記対象プログラムを、前記複数のデータ項目を含むデータの更新に応じて前記対象プログラムが実行されるように情報処理システムに登録することを許可する、
処理を実行させるアクセス制御プログラム。
to the computer,
receiving a registration request including a user's target program, analyzing the target program and detecting data items that can be accessed from the target program among a plurality of data items;
whether the user has access authority to the detected data item based on access control information indicating data items to which the user has access authority or data items to which the user does not have access authority among the plurality of data items; judge,
If it is determined that the access authority is granted, the target program is permitted to be registered in the information processing system so that the target program is executed in accordance with the update of the data including the plurality of data items.
The access control program that causes the action to take place.
JP2021534503A 2019-07-25 2019-07-25 Information processing system, access control device, access control method and access control program Active JP7181491B2 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2019/029175 WO2021014633A1 (en) 2019-07-25 2019-07-25 Information processing system, access control device, access control method, and access control program

Publications (2)

Publication Number Publication Date
JPWO2021014633A1 JPWO2021014633A1 (en) 2021-01-28
JP7181491B2 true JP7181491B2 (en) 2022-12-01

Family

ID=74192556

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021534503A Active JP7181491B2 (en) 2019-07-25 2019-07-25 Information processing system, access control device, access control method and access control program

Country Status (2)

Country Link
JP (1) JP7181491B2 (en)
WO (1) WO2021014633A1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008243089A (en) 2007-03-28 2008-10-09 Fujitsu Ltd Access right control program and access management device
JP2009271567A (en) 2008-04-30 2009-11-19 Ricoh Co Ltd Image forming device, access control method and control program
US20160232344A1 (en) 2015-02-11 2016-08-11 Electronics And Telecommunications Research Institute Method for re-adjusting application permission and user terminal for performing the same method
JP6149890B2 (en) 2015-04-10 2017-06-21 カシオ計算機株式会社 Musical sound generation device and musical sound generation program

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06149890A (en) * 1992-11-16 1994-05-31 Ricoh Co Ltd Document information managing device

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008243089A (en) 2007-03-28 2008-10-09 Fujitsu Ltd Access right control program and access management device
JP2009271567A (en) 2008-04-30 2009-11-19 Ricoh Co Ltd Image forming device, access control method and control program
US20160232344A1 (en) 2015-02-11 2016-08-11 Electronics And Telecommunications Research Institute Method for re-adjusting application permission and user terminal for performing the same method
JP6149890B2 (en) 2015-04-10 2017-06-21 カシオ計算機株式会社 Musical sound generation device and musical sound generation program

Also Published As

Publication number Publication date
JPWO2021014633A1 (en) 2021-01-28
WO2021014633A1 (en) 2021-01-28

Similar Documents

Publication Publication Date Title
US11985170B2 (en) Endpoint data loss prevention (DLP)
US11334562B2 (en) Blockchain based data management system and method thereof
CN1773417B (en) System and method of aggregating the knowledge base of antivirus software applications
JP5462254B2 (en) Granting least privilege access for computing processes
KR101201118B1 (en) System and method of aggregating the knowledge base of antivirus software applications
WO2019226363A1 (en) Small-footprint endpoint data loss prevention (dlp)
US11403027B2 (en) Technology for governance of data retention and transfer
US20010051515A1 (en) Mobile application peer-to-peer security system and method
US7974985B1 (en) System and method for duplication of virtual server files
US11138311B2 (en) Distributed security introspection
US20060156030A1 (en) Data processing system and method
US9158572B1 (en) Method to automatically redirect SRB routines to a zIIP eligible enclave
US11416631B2 (en) Dynamic monitoring of movement of data
US11489844B2 (en) On-the-fly creation of transient least privileged roles for serverless functions
US8352947B2 (en) Method to automatically redirect SRB routines to a zIIP eligible enclave
US20070038572A1 (en) Method, system and computer program for metering software usage
JP7181491B2 (en) Information processing system, access control device, access control method and access control program
US9229787B2 (en) Method and system for propagating modification operations in service-oriented architecture
KR20030086722A (en) System for detecting a kernel backdoor, method for detecting a kernel backdoor and method for recovering a kernel data using the same
US20180069859A1 (en) Mobile terminal and control method thereof
JP2006106986A (en) Access management method and information processor
EP3915029B1 (en) Scalable incremental analysis using caller and callee summaries
KR20190061831A (en) System and method of detecting confidential information based on 2-tier for endpoint DLP
US20060272005A1 (en) Security optimization techniques for web applications
US20230169046A1 (en) File Transfer Prioritization During Replication

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211110

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20221031

R150 Certificate of patent or registration of utility model

Ref document number: 7181491

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150