WO2021117251A1 - 通信モジュール、通信システム及び通信方法 - Google Patents
通信モジュール、通信システム及び通信方法 Download PDFInfo
- Publication number
- WO2021117251A1 WO2021117251A1 PCT/JP2019/049066 JP2019049066W WO2021117251A1 WO 2021117251 A1 WO2021117251 A1 WO 2021117251A1 JP 2019049066 W JP2019049066 W JP 2019049066W WO 2021117251 A1 WO2021117251 A1 WO 2021117251A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- application
- communication
- communication module
- data
- setting
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M15/00—Arrangements for metering, time-control or time indication ; Metering, charging or billing arrangements for voice wireline or wireless communications, e.g. VoIP
- H04M15/58—Arrangements for metering, time-control or time indication ; Metering, charging or billing arrangements for voice wireline or wireless communications, e.g. VoIP based on statistics of usage or network monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16Y—INFORMATION AND COMMUNICATION TECHNOLOGY SPECIALLY ADAPTED FOR THE INTERNET OF THINGS [IoT]
- G16Y10/00—Economic sectors
- G16Y10/75—Information technology; Communication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0823—Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M1/00—Substation equipment, e.g. for use by subscribers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M11/00—Telephonic communication systems specially adapted for combination with other electrical systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M15/00—Arrangements for metering, time-control or time indication ; Metering, charging or billing arrangements for voice wireline or wireless communications, e.g. VoIP
- H04M15/80—Rating or billing plans; Tariff determination aspects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M17/00—Prepayment of wireline communication systems, wireless communication systems or telephone systems
- H04M17/02—Coin-freed or check-freed systems, e.g. mobile- or card-operated phones, public telephones or booths
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M17/00—Prepayment of wireline communication systems, wireless communication systems or telephone systems
- H04M17/10—Account details or usage
- H04M17/103—Account details or usage using SIMs (USIMs) or calling cards
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/24—Accounting or billing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
Definitions
- the present invention generally relates to data communication.
- Patent Document 1 As a technology related to a communication module, for example, there is a technology disclosed in Patent Document 1.
- Data is being collected from various industrial devices (for example, compressors, motors, industrial inkjet printers, etc.) such as IoT (Internet of things).
- industrial devices for example, compressors, motors, industrial inkjet printers, etc.
- IoT Internet of things
- Each of these various industrial devices requires a communication module for data communication (eg, data transmission).
- Communication interface standards include, for example, RS232C, RS485, Ethernet (registered trademark), and the like.
- Communication interface standards typically involve the physical layer. Examples of communication protocols include UDP (User Datagram Protocol), MQTT (Message Queuing Telemetry Transport), and Modbus protocol. Communication protocols typically involve layers above the layer to which the communication interface standard belongs.
- Which type of communication interface standard and communication protocol is adopted usually depends on the industrial equipment.
- industrial equipment There are various types of industrial equipment.
- a manufacturer that provides a plurality of types of industrial equipment that is, a manufacturer that manufactures a single motor and its application equipment, an air compressor, adopts different communication interface standards or communication protocols for each of the air compressor and the motor.
- a cloud monitoring system or communication conversion device that communicates via the IoT gateway is provided after providing a communication conversion device corresponding to each. It was necessary to build a monitoring system, and it was difficult to promote IoT in factories and the like due to the correspondence of communication standards for each industrial device.
- the communication module has a plurality of communication interfaces corresponding to a plurality of different types of communication interface standards.
- a plurality of programs executed by the communication module include a first application executed on the OS (Operating System) and one or more second applications executed on the OS.
- Each of the one or more second applications is an application that communicates according to one or more communication protocols on one or more communication interface standards, and is an application that can be arbitrarily installed and arbitrarily uninstalled. ..
- the first application is an application as middleware between the OS and one or more second applications.
- a general-purpose communication module that enables data communication regardless of the type of device is realized.
- the configuration of the entire system according to the embodiment is shown.
- the physical configuration of the communication module is shown.
- the logical configuration of the communication module is shown.
- An example of the flow of data communication is shown.
- An example of the setting flow related to the application is shown.
- the configuration of the management server is shown.
- the outline of the billing flow is shown.
- the "communication interface device” may be one or more communication interface devices.
- One or more communication interface devices may be one or more communication interface devices of the same type (for example, one or more NICs (Network Interface Cards)) or two or more different types of communication interface devices (for example, NICs). It may be HBA (Host Bus Adapter).
- the "memory” is one or more memory devices which are an example of one or more storage devices, and may be typically a main storage device. At least one memory device in the memory may be a volatile memory device or a non-volatile memory device.
- the "permanent storage device” may be one or more permanent storage devices which are an example of one or more storage devices.
- the persistent storage device is typically a non-volatile storage device (for example, an auxiliary storage device), specifically, for example, HDD (Hard Disk Drive), SSD (Solid State Drive), NVMe (Non-Volatile). It may be a Memory Express) drive or an SCM (Storage Class Memory).
- the “storage device” may be at least a memory of a memory and a persistent storage device.
- the processor may be one or more processor devices.
- the at least one processor device is typically a microprocessor device such as a CPU (Central Processing Unit), but may be another type of processor device such as a GPU (Graphics Processing Unit).
- At least one processor device may be single-core or multi-core.
- At least one processor device may be a processor core.
- At least one processor device is a circuit (for example, FPGA (Field-Programmable Gate Array)), CPLD (Complex Programmable Logic Device) or ASIC (Application) which is an aggregate of gate arrays according to a hardware description language that performs a part or all of processing. It may be a processor device in a broad sense such as Specific Integrated Circuit)).
- information obtained by obtaining an output for an input may be described by an expression such as "xxx table", but the information may be data having any structure (for example, a structure). It may be structured data or unstructured data), a neural network that generates an output for an input, a genetic algorithm, or a learning model represented by a random forest. Therefore, the "xxx table” can be referred to as "xxx information”. Further, in the following description, the configuration of each table is an example, and one table may be divided into two or more tables, or all or a part of the two or more tables may be one table. You may.
- the function may be described by the expression of "yy part", but the function may be realized by executing one or more computer programs by the processor, or one. It may be realized by the above hardware circuit (for example, FPGA or ASIC), or may be realized by a combination thereof.
- a function is realized by executing a program by a processor, the specified processing is appropriately performed using a storage device and / or an interface device, so that the function may be at least a part of the processor. Good.
- the process described with the function as the subject may be a process performed by a processor or a device having the processor.
- the program may be installed from the program source.
- the program source may be, for example, a program distribution computer or a computer-readable recording medium (eg, a non-temporary recording medium).
- the description of each function is an example, and a plurality of functions may be combined into one function, or one function may be divided into a plurality of functions.
- the process may be described with "program” as the subject, but the program is executed by the processor to appropriately perform the specified process in the storage device and / or the interface device and the like.
- the subject of the process may be a processor (or a device such as a controller having that processor) because it is performed while using it.
- the program may be installed from the program source into a device such as a calculator.
- the program source may be, for example, a program distribution server or a computer-readable (eg, non-temporary) recording medium.
- two or more programs may be realized as one program, or one program may be realized as two or more programs.
- a common code among reference codes may be used when explaining without distinguishing elements of the same type, and a reference code may be used when distinguishing elements of the same type.
- communication module 101 when the communication modules are not distinguished, they are referred to as "communication module 101", and when the communication modules are distinguished, they are referred to as “communication module 101A” and “communication module 101B".
- -Module provider An entity that provides a communication module (for example, a company).
- -User An entity that provides industrial equipment (for example, a manufacturer of industrial equipment). For example, a user obtains (for example, purchases) a communication module and provides (for example, sells) industrial equipment to which the obtained communication module is connected.
- -End user An entity that uses industrial equipment to which a communication module is connected (for example, a company that has a factory with a production line consisting of multiple industrial equipment). Although a company having a factory equipped with a manufacturing line is an end user, it can also be a user when purchasing a communication module.
- -Telecom carrier An entity that manages a predetermined communication network (for example, a mobile phone carrier).
- the communication module 101 can play a role as a communication interface device of the industrial device 103 (an example of the device).
- the data acquired by the industrial device 103 for example, there are data representing the status of the industrial device 103 and data representing the measured value acquired by the sensor of the industrial device 103.
- the data acquired by the industrial equipment 103 is transmitted by the communication module 101.
- the relationship between the industrial equipment 103 and the communication module 101 may be 1: 1 or many: 1, 1: many, or many: many.
- the communication module 101 is a general-purpose module that does not depend on the type of the industrial equipment 103, and is therefore typically considered to be 1: 1 or many: 1.
- 1: 1 is a case where the communication module 101B and the industrial device 103B communicate with each other. Further, the other: 1 is a case where the communication module 101B communicates with the industrial devices 103A and 103B, other industrial devices or the sensor group 163.
- the communication module 101 may be provided in various forms.
- the communication module 101B may be externally attached to the industrial device 103B provided with the sensor group 163 (one or more sensors), or may be connected in advance to the industrial device 103A (for example, the industrial device main body) and the industrial device 103A.
- An industrial equipment unit 105 may be provided that includes a (eg, built-in) communication module 101A.
- the communication interface standard or communication protocol of the industrial device 103A is different from the communication interface standard or communication protocol for communication via the communication network 109A (communication network 109B).
- the communication module 101A communication module 101B
- the industrial device 103A industrial device 103B
- the communication network 109A communication network 109B
- the communication networks 109A and 109B may be the same communication network or different communication networks.
- Each of the communication networks 109A and 109B is a wireless communication network (for example, a closed network) in the present embodiment, but may be a wired communication network or a VPN (Virtual Private Network).
- the communication network 109C is connected to the communication networks 109A and 109B.
- the communication network 109C is typically the Internet, but may be another type of communication network. Two or more communication networks 109A to 109C may be the same communication network.
- the communication carrier server 107, the distribution server 117, the management server 115, the user system 111 (which may be a user server), and the end user client 113 are connected to the communication network 109C.
- Any of the telecommunications carrier server 107, the distribution server 117, the management server 115, the user system 111, and the end user client 113 may be a physical computer, and may be realized on a plurality of types of computer resources (for example, a cloud platform). It may be a virtual system.
- the telecommunications carrier server 107 is a telecommunications carrier server.
- the telecommunications carrier manages, for example, communication networks 109A and 109B.
- the telecommunications carrier server 107 determines the charge according to the amount of communication via the communication networks 109A and 109B for each user or each end user. The determined fee will be charged to the user or end user.
- the distribution server 117 is a server that installs an application on the communication module 101.
- the distribution server 117 may be, for example, a server as a system (for example, an app store) managed by an entity other than the end user.
- an application is simply called an application.
- the management server 115 is a server that manages the communication module 101, determines the usage fee of the communication module 101, specifies and calculates the usage status of the application mounted on the communication module, and the like.
- "Region" means a geographical area and may be separated by various units such as country, state, province, and city. By dividing the communication range and communication area for each region, data can be managed within the set predetermined region.
- the user server 111 is a user server.
- the user server 111 may represent the usage history of the industrial device 103 used by the end user and analyze the data for a certain period of time transmitted from the communication module 101 connected to the industrial device 103.
- the user server 111 acquires the analysis application from the distribution server 117, and the user system 111 or the management server 115 measures the number of times the acquired analysis application is used, the usage time, and the usage status, and specifies the consideration for the use of the analysis application. can do.
- the user can create the user application 180 on the user system 111.
- the created user application 180 is uploaded to the distribution server 107.
- the user application 180 desired by the end user can be downloaded from the distribution server 107 to the communication module 101.
- the management server 115 acquires and manages the download information obtained by downloading the user application 180, thereby specifying the consideration for the download of the user application 180 to the end user of the communication module 101. It is possible to specify not only the download but also the consideration based on the number of times the user application 180 is used and the usage status. The specified consideration can be collected together with the amount of communication usage. Further, the collected consideration is paid from the telecommunications carrier or the telecommunications carrier to the user of the user system 111 via the administrator of the distribution server 117.
- the end user can download the application required by the communication module 101 among the applications created by the user in the user system 111. Since the usage status of the application and the consideration corresponding to the download can be collected through the telecommunications carrier, the end user can pay the telecommunications carrier together with the communication amount without paying the user directly. In addition, the consideration paid by the end user does not have to be paid individually to the user, but is paid via the telecommunications carrier or the administrator of the distribution server 117, thus providing a system that improves the convenience of the end user. be able to.
- the communication module 101 can use the communication of the mobile phone network, it is possible to specify and collect the consideration for the user application 180 described above.
- the end user client 113 may be a computer (for example, a personal computer or a smartphone) used by the end user, and is a client of the user server 111.
- the clients for the user server 111A of the user A are the end user clients 113Aa and 113Ab
- the clients for the user server 111B of the user B are the end user clients 113Ba and 113Bb.
- the information of the communication module 101 can be displayed by the end user client 113, and when the communication module 101 has a display means, the communication module 101 can be used as the end user client 113.
- the display means of the end user client 113 can be provided with an input unit such as a touch panel or an input means such as a keyboard separately, and the user application 113 registered in the distribution server 117 can be purchased using the input unit or the input means. it can.
- FIG. 2 shows the physical configuration of the communication module 101.
- the communication module 101 includes a plurality of communication ports 205A, 205B, ..., And a plurality of antennas 201A, 201B, ... As an example of a plurality of communication interfaces corresponding to a plurality of different types of communication interface standards.
- As the communication port 205 for example, an RJ45 port for Ethernet (registered trademark) and EtherCAT (registered trademark), a port for RS232C, and a port for RS485 can be adopted.
- I2C Inter-Integrated Circuit
- CAN Controller Area Network
- a certain communication port 205 may be used for maintenance communication such as updating the firmware of the communication module 101. Further, if the port used for communication for such maintenance is an independent port different from the communication port 205, the communication can be exclusively used, so that the security of the system of the communication module 101 is further improved.
- an antenna for LTE Long Term Evolution
- an antenna for GPS Global Positioning System
- an antenna for Bluetooth registered trademark
- a signal processing unit 207 that processes signals transmitted and received via the antenna 201 may be provided in the communication module 101.
- signal processing units 207A, 207B, ... Corresponding to the antennas 201A, 201B, ... May be provided.
- the communication module 101 has a SIM (Subscriber Identity Module) card slot 213.
- SIM Subscriber Identity Module
- a SIM card 211 storing subscriber identification information is inserted into the slot 213.
- the SIM card slot 213 is not limited to a physical one, and e-SIM (Embedded SIM) can be used.
- the end user can select a telecommunications carrier suitable for the region in which the telecommunications module 101 is used.
- the distribution server 117 can also select to show or hide the user application suitable for the region and the telecommunications carrier to the end user.
- This embodiment to which e-SIM is applied can provide services suitable for each region, and the usage status of user applications and the collection of download consideration are also via the telecommunications carrier. Therefore, laws and ordinances for each region are required. It is possible to provide convenience by the service corresponding to.
- the SIM card 211 and the SIM card slot 213 will be described as a representative, but the e-SIM can also be implemented as described above.
- the communication module 101 has a control unit 209.
- the control unit 209 includes a communication interface device 221 and a memory 223 and a processor 225 connected to them.
- the SIM card 211, each communication port 205, and each signal processing unit 207 are connected to the interface device 221.
- File system information 251 includes directories and files. In the file system information 251 the directory and the file have a tree-structured relationship, for example. File system information 251 includes, for each of the plurality of programs, a structure containing the program's executable file.
- the memory 223 may have a secure area 281.
- the secure area 281 may store the private key A of the communication module 101 (the key pair consisting of the public key A and the private key A in the public key authentication method, which corresponds to the private key A).
- the end user client 113 decrypts the data using the public key A corresponding to the private key A, so that the data is transmitted from the communication module 101. Can be secured.
- the end user when the key pair consisting of the public key B and the private key B of the end user client 113 in the public key authentication method corresponding to the public key B is stored in the secure area 281 of the communication module 101, the end user When the user of the client 113 manages and uses the private key B corresponding to the public key B, the information acquired by the communication module 101 from the industrial device 103 or the like can be protected.
- the memory 223 has the secure area 281, it is desirable that the bus signal line connecting the processor 225 and the memory 223 is not easily probed by mounting the processor 225 and the memory 223 in the same chip. ..
- the processor 225 executes a plurality of programs (for example, executable files of a plurality of programs) stored in the memory 223.
- FIG. 3 shows the logical configuration of the communication module 101.
- the plurality of programs executed by the processor 225 include the firmware 305, the OS (Operating System) 301, and the plurality of applications 303.
- OS301 may be, for example, an open source OS, such as Linux®.
- the public key management table 351 is stored in the memory 223.
- the public key management table 351 stores a management server ID and information representing the public key of the management server 115 for each management server 115.
- the public key management table 351 will be described as an example of managing the public key, but the private key can also be managed as described above.
- the plurality of applications 303 include a first application 303A executed on the OS 301 and one or a plurality of second applications 303C executed on the OS 301.
- the end user or the user can use the communication module 101 as the application 303 by downloading the user application 180 described with reference to FIG.
- the second application 303C is often an application related to the system or communication of the communication module 101. Not only the user but also the manufacturer of the communication module 101 (also called a vendor, supplier or provider) updates the firmware or software by OTA (On The Air) for each communication module 101 via the management server 170. It is possible to carry out.
- the vendor is the user. Since the first application 303A can be updated using OTA, security measures and bug fixes can be facilitated, and the communication module 101 can be made more secure.
- Each of one or more of the second application 303Cs of the one or more second applications 303C is an application that performs communication according to one or more communication protocols on one or more communication interface standards, and is optionally It is an application that is installed and can be uninstalled arbitrarily.
- One or more examples of the second application 303C are a router application 303C1 (an application for functioning the communication module 101 as a router that relays communication according to IP (Internet Protocol)) and a Modbus application 303C2 (for communicating with the Modbus protocol). App) and MQTT app 303C3 (app for communicating with MQTT protocol).
- the first application 303A is an application as middleware between the OS 301 and one or more second applications.
- the first application 303A may be referred to as a "framework".
- the communication module 101 is provided with a plurality of communication interfaces corresponding to a plurality of different types of communication interface standards, and a second application corresponding to the types of communication interface standards and communication protocols is installed (or activated). Activation means that before the execution of the second application, the distribution server 117 downloads and installs the second application on the OS301 as the second application, and the user or the end user uses the second application from the administrator of the second application. It means being allowed to do so.
- the user or the end user can execute the second application.
- the activation and the usage status of the second application can be grasped. It is possible to calculate the usage fee of the second application based on the usage status.
- the usage status may be grasped by the distribution server 115, or the usage time and the number of times of use may be measured on the second application side and transmitted to the distribution server 117 or the management server 115.
- each application 303 is independent, there is a framework 303A as middleware between the OS 301 and one or more second applications 303C. Therefore, cooperation between the applications 303 is supported, and thus a general-purpose communication module 101 that enables data communication independent of the type of interface of the industrial device 103 connected to the communication module 101 is realized. ..
- An independent execution environment such as a container may be constructed for each application 303, and the application 303 may be executed in the execution environment.
- the application 303 is regarded as a process by the OS 301. Is executed. Therefore, the amount of resources required for the communication module 101 can be reduced as compared with a configuration in which an execution environment such as a container is required.
- the user collects data via the communication module 101 about the industrial device 103 to which the communication module 101 is connected and used by the end user, and analyzes the collected data to provide a higher value service for the end user. Can be expected.
- the user or the end user can install the second application 303C created by the user on the communication module 101, or uninstall the second application 303C from the communication module 101.
- the second application 303C may be installed (or uninstalled) by the provider of the communication module 101 in response to a request from the user (or without a request from the user).
- the framework 303 confirms the usage status of the first application 303 running on the framework 303 and the interface with which the first application communicates, and whether it is the first application that is not used. Alternatively, if the first application is in use, it can be installed, uninstalled, or updated when it is not in use.
- the process such as installation only needs to confirm the status of each application in a 1: 1 relationship, not in a 1: 1 relationship, and installation etc. becomes easy.
- installation or the like can be realized without interfering with the communication of the industrial device 103 connected to the communication module 101.
- the second application 303C may be a second application 303C for end users prepared by a user or a module provider, or may be a second application 303C for users such as an analysis application.
- the second application 303C may be installed with an application selected by the user from a distribution server 117 such as an application store.
- a second application (not shown) that can be selected on the Web screen of a Web browser in which the framework 303A accesses the distribution server 117 and is executed by a computer (not shown) connected to the communication module 101.
- the icon of the second application may be displayed, and the second application selected by the user from the Web screen may be installed in the communication module 101.
- the amount charged to the end user or the user may be determined depending on how much the second application 303C is used. The method of determining the billing amount will be described later.
- the monitoring application 303B1 is an example of the third application 303B.
- the framework 303A and the monitoring application 303B1 may be installed (for example, pre-installed) by the provider of the communication module 101.
- the monitoring application 303B1 will be described later.
- the framework 303A may also serve as a third application 303B such as the monitoring application 303B1. That is, the framework 303A may also serve as the monitoring application 303B1.
- the "third application” may be an application other than the first application and the second application among the applications on the OS 303.
- FIG. 4 shows an example of the flow of data communication.
- Framework 303A manages each second application 303.
- each second application 303 stores the usage history (for example, operation information) of the second application 303 in the area set in the memory 223 for the second application 303.
- the framework 303A may refer to the usage history registered in the area corresponding to the second application 303 for each second application 303.
- each second application 303 may support any two or more types of communication protocols and communication interface standards.
- a communication protocol for data transmission to the management server 115 it is conceivable to use a communication protocol such as MQQT protocol or UDP. If a single second application needs to perform data communication with the industrial device 103 and data communication with other than the industrial device 103, the development of the second application is complicated.
- a local second application that communicates with the industrial device 103 connected to the communication module 101 but does not communicate with other than the industrial device 103 (that is, performs local communication) and the communication module.
- a global second application that communicates with other than the industrial device 103 connected to 101 and does not communicate with the industrial device 103 (that is, performs global communication) is prepared.
- each of the local second application and the global second application will be easier than the development of the second application that performs both local communication and global communication. Further, since the second application is not required for each combination of the communication protocol or communication interface standard of local communication and the communication protocol or communication interface standard of global communication, it is expected that the resources of the communication module 101 can be used efficiently. The interface.
- memory access etc. may collide on the OS, but the framework monitors these second applications and monitors them.
- Each of the second applications can be operated by controlling the access to the memory and the like.
- the Modbus application 303C2 is an example of a local second application. That is, the Modbus application 303C2, which is a local second application, is an example of becoming the first second application.
- the MQTT app 303C3 is an example of a global second app. That is, the MQTT application 303C2, which is the second global application, is an example of becoming the second second application.
- the Modbus application 303C2 receives data from the industrial device 103B connected to the communication interface via a communication interface corresponding to a communication interface standard (for example, RS485) in which communication according to the Modbus protocol is performed.
- the MQTT app 303C3 uses the data received by the Modbus app 303C2 or the processed data of the data via a communication interface compatible with the communication interface standard in which communication is performed in accordance with the MQTT protocol, such as the management server 115 (an example of a predetermined server). ).
- the MQTT app 303C3 may be an example of a local second app, depending on the industrial device 103 connected to the communication module 101.
- the cooperation between the second applications 303C may be the above-mentioned direct cooperation or indirect cooperation.
- the cooperation between the second application 303C may be as follows, for example.
- the Modbus application 303C2 writes the data received from the industrial device 103B to the area of the memory 223 corresponding to the Modbus application 303C2.
- the MQTT application 303C3 reads data from the area corresponding to the Modbus application 303C2 and sends the read data to the management server 115.
- the MQTT application 303C3 can know the address of the area corresponding to the Modbus application 303C2 from the response to the inquiry to the framework 303A or from the information set for the MQTT application 303C3.
- the user can set the communication timing for the Modbus application 303C2 to receive the data and the communication timing for the Modbus application 303C2 to transmit the data in the communication module 101 via the framework 303A. ..
- each second application 303C is regarded as a process by OS301 and executed.
- Each second application 303C writes a usage history (for example, the amount of resources) such as an execution log in the area set for the second application 303.
- Framework 303A does not know what is caused by the execution of each second application 303C (for example, what kind of resource is used and how much).
- the monitoring application 303B1 is installed in the communication module 101. For example, the monitoring application 303B1 periodically inquires of the framework 303A whether or not there is data in the area corresponding to the second application 303C for each second application 303C. If there is data, the framework 303A reads the data from the area and returns it to the monitoring application 303B1, and if there is no data, the framework 303A responds to the monitoring application 303B1 that there is no data.
- the data received from the framework 303A in response to the inquiry by the monitoring application 303B1 includes information representing the usage history of the second application 303C.
- the monitoring application 303B1 associates the data received from the framework 303A with the application ID of the monitoring application 303B1 and the application ID of the second application 303C corresponding to the data, and the MQTT application which is an example of the global second application. Pass it to 303C3 (for example, write it to a predetermined area in the memory 223).
- the MQTT application 303C3 transmits the passed data to the management server 115.
- the management server 115 stores data associated with the application ID of the monitoring application 303B1.
- the data includes information representing the usage history of the second application 303C. In this way, by executing the monitoring application 303B1 for monitoring the situation in the communication module 101 in the communication module 101, each second application 303C can be tracked through the framework 303A.
- the reliability of the communication module 101 will be maintained. For example, suppose that the communication module 101 that has executed the plurality of second applications 303C goes down. In this case, it can be expected that the module provider analyzes the usage history of each second application 303C stored in the management server 115 to identify the problematic second application 303C. In this way, it can be expected that the module provider gives feedback on the status of the communication module 101 to the user.
- the modified data of the second application 303C (or the new version of the application 303C) having a problem is provided to the communication module 101 via or not via the distribution server 117.
- each second application 303C it is predetermined in which area of the memory 223 the information representing the usage history is written. For example, for each second application 303C, the setting value representing the address of the write destination area is input to the setting file through the setting screen generated by the framework 303A based on the setting definition file described later corresponding to the second application 303C. The registered value may be used.
- the monitoring application 303B1 acquires information representing the usage history of the second application 303C by referring to a predetermined area for each second application 303C, and obtains the data including the information in the MQTT application 303C3. Can be passed to a global second app like.
- the monitoring application 303B1 since the global second application 303C such as the MQTT application 303C3 exists, the monitoring application 303B1 transmits data to the management server 115 via the global second application 303C, but the monitoring application 303B1 However, it has a global communication function, and the monitoring application 303B1 itself may transmit data to the management server 115.
- another third application 303B may be installed in place of or in addition to the monitoring application 303B1.
- the billing application 303B2 which is an application for determining the billing amount, may be installed.
- Data communication amount (in other words, communication by an application other than the second application 303C (for example, monitoring application 303B1)), which is the amount of data communicated by the framework 303A via the communication interface by the second application 303C.
- Data communication volume excluding data communication volume may be specified.
- the data communication amount may be specified from the usage history of each application 303, for example.
- the billing application 303B2 may determine the billing amount based on the specified data communication amount.
- the determined billing amount may be the usage billing amount of the communication module 101 or the usage billing amount of the industrial device 103 to which the communication module 101 is connected.
- the billing amount is determined by a core device such as the management server 115, but may be determined by an edge device such as the communication module 101 connected to the industrial device 103, as will be described later. ..
- FIG. 5 shows an outline of the installation of the application 303 and the settings related to the application 303.
- the file system information 251 there is a tree-structured directory 511 and a file 501. Specifically, for example, there is an application top directory 511A under the root directory 511T, and an application directory 511R is created for each application 303 directly under the application top directory 511A.
- the application directory 511R stores a set of data related to the application 303 corresponding to the application directory 511R.
- Each of the directory 511 and the file 501 may be an example of an object.
- the setting value for the application is input by the operator via the setting screen, but the setting screen of the application is an application-specific screen based on the information described in the source code of the application. If the configuration of each application is unique to the application, it is considered that the cooperation between the applications is complicated.
- an application structure composed of an executable file 501E1, a setting definition file 501F2, and a setting file 501S3 is adopted.
- the executable file 501E is a file corresponding to the main body of the second application 303C.
- the execution of the second application 303C is the execution of the execution file 501E of the second application 303C.
- the setting definition file 501F2 is a file representing one or more setting items for the second application 303C.
- the setting file 501S3 is a file in which one or more input values are registered when one or more setting values are input for the one or more setting items.
- the framework 303A constructs and provides a setting screen based on the setting definition file 501F2, and registers the setting value input to the setting screen in the setting file 501S3.
- each second application 303C follows the setting value registered in the setting file 501S3 corresponding to the second application 303C. This facilitates cooperation between the applications 303. Further, since the setting screen is constructed and provided by the framework 303A, it is considered that the development of the second application 303 is easy.
- Framework 303A provides a CUI (Character User Interface) as an example of an interface for installing the application 303.
- the application 303 may be installed so that the distribution server 117 stores the application structure in the application top directory 511A (an example of a predetermined directory) via the CUI provided by the framework 303A.
- the Modbus directory 511R2 is created in the application top directory 511A, and the application structure of the Modbus application 303C2 (executable file 501E2, setting definition file 501D2, and setting file 501S2) is created in the Modbus directory 511R2. Is stored. This storage process may be performed when the Modbus application 303C2 is installed.
- the installation of the application 303 on the communication module 101 may be a so-called pull-type installation performed in response to a request from the end user, but in the present embodiment, the distribution server 117 actively installs the application 303 without a request from the end user. Perform a so-called push-type installation that is performed (eg, according to a request from the user or module provider).
- the distribution server 117 is an example of a system managed by an entity other than the end user.
- push-type installation and application distribution timing are set based on the serial number of the communication module 101, the IMEI (International Mobile Equipment Identity) of the SIM card 211, and the information of the connected communication carrier. You should change it.
- GUI Graphic User Interface
- Modbus application 303C2 is adopted as an example.
- the framework 303A generates a setting screen that accepts one or more setting values for one or more setting items represented by the setting definition file 501D2 based on the setting definition file 501D2 of the specified Modbus application 303C2, and generates the setting screen. Provide the setting screen.
- the management terminal 605 is communicably connected to the communication module 101 via or without the network 109.
- the management terminal 605 may be an example of a calculator having an input / output device.
- the setting screen generated by the framework 303A is provided and displayed on the management terminal 605. For one or more setting items represented by the setting screen, one or more setting values are input by the operator of the management terminal 605.
- the framework 303A registers one or more setting values input to the setting screen in the setting file 501S2 of the Modbus application 303C2.
- the execution of the Modbus application 303C2 (for example, the cycle of collecting data from the industrial device 103 according to the Modbus protocol and the storage destination area of the collected data) follows the setting value registered in the setting file 501S2.
- the framework 303A may manage the installation management information of the application 303 (for example, a list of installed applications), but in the present embodiment, the framework 303A has an application structure in the application top directory 511A. It is possible to manage what is stored as if the application is installed, and handle it so that the installation management information is not managed.
- Framework 303A identifies that the second application 303C has been installed by referring to the application top directory 511A.
- the installation management information is managed, if the power supplied to the communication module 101 is cut off or disconnected during the installation of the second application 303, the structure under the application top directory 511A and the contents represented by the installation management information will be changed. Inconsistencies can occur.
- the existence of the application structure under the application top directory 511A is managed as having installed the application 303, so that the above-mentioned inconsistency is less likely to occur and the management cost of the application installation information is reduced. It can be reduced.
- FIG. 6 shows an example of the setting flow related to the application.
- Framework 303A provides the setting screen. Specifically, for example, framework 303A identifies installed apps by referring to the app top directory 511A, and displays a list of identified apps (for example, a list of identified app icons 603R). The menu screen 601T is provided.
- the framework 303A is based on the setting definition file 501D of the application corresponding to the specified icon 603R, and one or more settings represented by the setting definition file 501D.
- Generate a setting screen that is a GUI that accepts one or more setting values for an item (for example, a GUI that has a UI for inputting setting values for each of the one or more setting items represented by the setting definition file 501D). Provide the generated setting screen.
- the icon 603R2 corresponding to the Modbus application 303C2 is specified.
- the setting items are layered like a large item and a small item.
- the framework 303A refers to the setting definition file 501D2 of the Modbus application 303C2, and first, first, a list of one or more setting large items described in the setting definition file 501D2 (for example, one or more setting large items).
- a menu screen 601M displaying one or more icons representing each item) is generated, and the menu screen 601M is provided.
- the framework 303A identifies one or more setting minor items belonging to the specified setting major item from the setting definition file 501D2, and the specified setting.
- a setting screen 601A having a UI (UI for inputting a setting value) 605 for each sub-item is generated, and the generated setting screen 601A is provided.
- the setting screen 601A1 displaying the input UI 605aa, 605ab, ... Corresponding to the setting minor items "device name”, "port name”, ... Provided.
- the setting screen 601A2 displaying the input UI 605ba, 605bb, ... Corresponding to the setting minor items "device name", "register #”, ... Provided.
- the example of screen transition is not limited to the example shown in FIG.
- a setting screen in which the screens 601M and 601A are integrated that is, a setting screen in which each setting minor item and its input UI 605 are displayed is displayed for each setting major item. May be done.
- the framework 303A can generate and provide a setting screen based on the setting definition file 501D of the application.
- the setting screen may be provided to the management terminal 605 (an example of a calculator) illustrated in FIG. Further, the setting screen may be a screen that can be displayed by a Web browser executed by the management terminal 605. Since the setting value can be input via a general browser such as a Web browser, it is highly convenient.
- FIG. 7 shows an example of the configuration of the management server 115.
- the management server 115 may be a computer system including an interface device 721, a storage device 723, and a processor 725 connected to the interface device 721, or a virtual system realized by executing one or more programs in the computer system. System may be used.
- the processor 725 By executing at least one of the programs stored in the storage device 723, the processor 725 is realized with functions such as a management unit 761 and a billing unit 763.
- the storage device 723 may have a secure area 781.
- the secure area 781 may store the private key or public key of the management server 115.
- the storage device 723 stores the public key management table 751, the user management table 753, and the usage management table 755.
- the public key management table 751 when the secure area 781 has the private key stores the communication module ID and the information representing the public key of the communication module 101 for each communication module 101.
- the user management table 753 is connected to the user ID, the user's information (for example, contact information (for example, e-mail address)), the module ID of the communication module 101 used, and the communication module 101 for each user. Information on the industrial equipment 103) is stored.
- the usage management table 755 stores a module ID and information representing the application usage history of the communication module 101 for each communication module 101.
- the application usage history may include at least one of the following for each application 303 installed in the communication module 101.
- -App ID The ID of the app 303 in the communication module 101.
- -User ID The ID of the user who used the application 303.
- -End user ID The ID of the end user who used the application 303.
- -Installation time The time when the app was installed.
- -Activation time The time when the installed application was activated (for example, the start of use was desired).
- -Region ID The ID of the region to which the communication module 101 at the time of application execution belongs.
- -Resource usage The amount of resources used to run the app.
- -App status The status of the app (for example, normal or abnormal).
- the region where the communication module 101 is arranged at the time of executing the application is specified, for example, based on the GPS signal received by the communication module 101 that executes the application. It may be based on the information of the base station or communication carrier to which the SIM card 211 is connected, and the GNSS (Global Navigation Satellite System) signal.
- GNSS Global Navigation Satellite System
- the “resource” is a resource of the communication module 101 (typically, a calculation resource such as a communication interface, a memory 223, and a processor 225).
- a calculation resource such as a communication interface, a memory 223, and a processor 225.
- resource usage amount various resource usage amounts such as data communication amount, processor usage rate, processor usage time, and memory usage amount can be adopted.
- Data including information representing the application usage history (for example, resource usage) for each application 303 in the communication module 101 is acquired from the memory 223 by the monitoring application 303B1 in the communication module 101, for example, through OS301, and monitored. It is transmitted from the application 303B1 to the management server 115, for example, through the global second application 303C.
- the management unit 761 registers the data in the column corresponding to the communication module 101 of the transmission source of the data in the usage management table 755.
- the billing unit 763 determines the billing amount related to the use of the communication module 101 based on the usage management table 755.
- the monitoring application 303B1 monitors other than the sensor and status of the industrial device 103 connected to the communication module 101. It may be executed as a second application separately from the monitoring application 303B1. For example, the monitoring application 303B1 can update the firmware of the device connected to the communication module 101.
- the monitoring application 303B1 monitors the firmware revision information and the contents of the firmware of the industrial device 103, the revision information of the firmware corresponding to the industrial device 103 registered in the distribution server 117, and the contents of the firmware.
- the firmware stored in the distribution server 117 is updated or registered, it is compared with the firmware of the industrial device 103, and if there is a difference, it is displayed that the new firmware of the industrial device 103 exists in the end user client 113. To do.
- the communication module 101 updates the firmware of the connected industrial device 103.
- the billing amount can be determined or calculated using the number of times the firmware has been updated, the time of communication, and the like.
- the billing amount can be determined, calculated, and managed by the distribution server 117 or the management server 115.
- the firmware may be updated as appropriate during the contract period.
- the contract information may be registered in the monitoring application 117. .. When the contract period expires or before it expires, you should renew the contract or check with the user or end user. If the contract expires, you can charge for it individually, which allows you to update the firmware to meet your needs.
- FIG. 8 shows an outline of the billing amount and the flow of the billing method using the usage status and usage history of the application.
- the management unit 761 receives data from the communication modules 101A, 101B, .... For each communication module 101, the received data includes information representing the application usage history in the communication module 101. The management unit 761 registers the received data in the column corresponding to the communication module 101 of the transmission source of the data.
- the billing unit 763 selects the communication module 101 whose billing amount for a predetermined period is undecided from the communication modules 101 represented by the usage management table 755, and displays information representing the application usage history of the communication module 101 from the usage management table 755. get.
- the information representing the application usage history may be specified by the billing unit 763 from the data from the communication module 101 instead of being registered in the usage management table 755 (that is, the usage management table 755 may not be present). ..
- the billing unit 763 determines the billing amount related to the use of the communication module 101 based on the information representing the application usage history.
- the billing unit 763 specifies the usage history of each second application 303C from the information representing the application usage history, and determines the charging amount related to the use of the communication module 101 based on the usage history of each second application 303C. You can.
- the second application 303C can be installed according to the user's request. Further, the framework 303A in the communication module 101 receives the designation of the second application 303C desired by the end user among the one or more installed second applications 303C from the user (or the end user), and the designated second application 303C is received. You may activate app 303C.
- the second application 303C can be arbitrarily installed or activated, but the usage history of each second application 303C is monitored and notified to the management server 115. Based on such application usage history, the billing amount for using the communication module 101 is determined.
- the base of the billing amount is limited to the application usage history (for example, resource usage) caused by the use of the second application 303C, which is an application that can be arbitrarily installed (or activated), and the second The application usage history not caused by the use of the application 303C (for example, the data communication amount of the monitoring application 303B1) is not included.
- the application usage history for example, resource usage
- the second application usage history not caused by the use of the application 303C for example, the data communication amount of the monitoring application 303B1
- the "billing amount related to the use of the communication module 101" may be a billing amount for each user, or may be a billing amount for each end user of the user for each user.
- the amount charged by the user to the end user may be determined based on the amount charged for each end user.
- the usage history of the second application 303C includes information indicating the activation time of the second application 303C.
- the usage time from the installation time may be used, but it is expected that a more appropriate billing amount will be determined based on the usage time from the activation time.
- the communication module 101 has a SIM card 211 (an example of a card storing subscriber identification information) corresponding to a predetermined communication network (for example, communication network 109A or 109B) and storing subscriber identification information.
- the communication timing as an example of the setting value set by the second application 303C (for example, the global second application) via the setting screen provided by the framework 303A for the data including the subscriber identification information in the SIM card 211. Then, the management server 115 may be transmitted.
- the billing unit 763 has determined the billing amount so that the telecommunications carrier managing the predetermined communication network (for example, communication network 109A or 109B) can bill the fee reflecting the determined billing amount.
- Information representing the above may be transmitted to the telecommunications carrier (for example, to the telecommunications carrier server 107).
- the communication charge charged to the user (or end user) by the telecommunications carrier that manages the predetermined communication network used for the communication of the communication module 101 is charged to the user (or end user). Can be expected to be reflected in the price.
- the billing unit 763 determines the activation time of a second application 303C represented by the application usage history of the communication module 101A (an example of the first communication module) and the application usage history of the communication module 101B (an example of the second communication module). Based on the activation time of the same second application 303C (the same second application 303C as a certain second application 303C) represented by, the charge amount A for the communication module 101A and the charge amount B for the communication module 101B are determined. You can.
- the base of the amount of money related to the use of the common second application 303C can be the activation time of the second pre-303C (for example, the usage time from the activation time).
- the second application 303C The earlier activation time may be cheaper.
- the active use of the second application 303C can be promoted.
- the earlier activation time is cheaper, which means lowering the unit price of the monthly or annual subscription contract of App 303C. Every time the number of activations of the application 303C exceeds a predetermined number, it is possible to reduce the usage fee or the ratio of the usage fee of the user who has already been activated.
- the first user who uses from the first time is A yen per month and uses from the second time later than the first time.
- the second user to do is B yen per month.
- the first user is C yen, which is cheaper than the monthly A yen
- the second user should pay D yen, which is cheaper than B yen per month.
- the first user can be given preferential treatment, which leads to promotion of the use of the application.
- the debugging and updating of the application by the user progresses, and it is possible to build an ecosystem that creates a communication module 101 that can be safely used by all vendors, users, and end users.
- the management unit 761 may restrict the use of all or part of the communication module 101 for which the charge amount has been determined, provided that the payment is not made by the payment deadline for the determined charge amount. In this way, the usage restriction of the communication module 101 can be applied from the management server 115.
- Any application 303 in the communication module 101 may specify the region in which the communication module 101 exists (for example, the region is specified by communicating with a predetermined server based on the position detected by the GPS signal. Good).
- the specified region is a predetermined region
- any application in the communication module 101 may restrict communication using the subscriber identification information corresponding to the communication network belonging to the predetermined region.
- the application 303 that specifies the region and the application 303 that restricts communication may be the same or different, or may be any of the first application, the second application, and the third application. As a result, the data handled by each region or country can be restricted, and the user or the end user can perform data communication of the industrial equipment with peace of mind.
- management servers 115A and 115B belonging to a plurality of regions to which a plurality of communication networks 109A and 109B (see FIG. 1) belong.
- the management unit 761 of the management server 115A belonging to the region in which the communication module 101A exists may specify the permitted region which is the region where the communication of the communication module 101A is permitted.
- the management unit of the management server 115A 761 may restrict communication using the subscriber identification information corresponding to the communication network 109B belonging to the region.
- processing may be performed in place of or in addition to at least a part of the above-mentioned processing.
- the data sent and received between the communication module 101 and the management server 115 may be encrypted and decrypted according to the public key cryptosystem. That is, when the application 303 in the communication module 101 transmits data to the management server 115, the application 303 encrypts the data using the public key of the management server 115 (public key specified from the public key management table 351). , The encrypted data may be transmitted to the management server 115.
- the management unit 761 of the management server 115 may decrypt the data by using the private key of the management server 115.
- the management unit 761 in the management server 115 transmits data to the communication module 101
- the management unit 761 encrypts the data using the public key of the communication module 101 (public key specified from the public key management table 751).
- the encrypted data may be transmitted to the communication module 101.
- Any application 303 in the communication module 101 may decrypt the data using the private key of the communication module 101.
- any application 303 in the communication module 101 encrypts the subscriber identification information in the SIM card 211 using the public key of the management server 115, and the encrypted subscriber identification information is encrypted. May be sent to the management server 115.
- any application 303 in the communication module 101 exchanges the subscriber identification information and the data to be transmitted (for example, the data acquired from the industrial device 103). After encrypting the included data with the public key of the management server 115, the encrypted data may be transmitted to the management server 115 based on the communication timing set through the framework 303A.
- the management unit 761 of the management server 115 may receive the encrypted data and decrypt the data with the private key of the management server 115.
- the management unit 761 may specify the communication module 101 based on the subscriber identification information contained in the decrypted data, and authenticate that the specified communication module 101 performs communication.
- the billing unit 763 determines the billing amount for the communication module 101 based on the data communication volume of the authenticated communication module 101 (the data communication volume specified from the application usage history represented by the transmission target data of the decrypted data). You can do it.
- the data to be transmitted from the communication module 101 includes activation information indicating that the application 303 installed in the communication module 101 is activated (for example, a user or an end user requests the management server 115 to use the application 303). Good.
- the activation information may also be encrypted using the public key of the management server 115.
- the billing unit 763 of the management server 115 may determine the billing amount for the communication module 101 by using the activation information contained in the decrypted data.
- the data representing the determined billing amount may be transmitted to a telecommunications carrier (for example, telecommunications carrier server 107) that manages the communication network through which the encrypted data has passed.
- a telecommunications carrier for example, telecommunications carrier server 107
- the above-determined billing amount may be reflected in the communication charge charged by the telecommunications carrier to the user (or end user).
- the billing unit 763 may determine the billing amount for the communication module 101A and the billing amount for the communication module 101B using the time when the communication module 101A activates the application and the time when the communication module 101B activates the same application. .. For example, the charge amount for the communication module, which is the earlier of the activation time in the communication module 101A and the activation time in the communication module 101B, may be cheaper.
- the management unit 761 of the management server 115 When the management unit 761 of the management server 115 receives information indicating that the user has paid a fee to the communication carrier, the communication of the communication module 101 used by the user is continued, or the application in the communication module 101 is used. You may allow the 303 to continue to be used.
- the management unit 761 of the management server 115 When the management unit 761 of the management server 115 does not receive the information indicating that the user has paid the communication carrier, the communication of the communication module 101 or the use of the application 303 in the communication module 101 may be prohibited.
- the communication module 101 When the management unit 761 of the management server 115 does not receive the information indicating that the user has paid the communication carrier, the communication module 101 continues to communicate for a predetermined period or use the application for a predetermined period. May be allowed.
- the management server 115 may be provided for each predetermined region.
- the SIM card 211 of the communication module 101 may store a plurality of the subscriber identification information corresponding to the plurality of connected communication networks.
- the management unit 761 of the management server 115, or any application 303 in the communication module 101 causes the communication module 101 to identify the information representing the region in which the communication module 101 exists and the communication network belonging to the region.
- the subscriber identification information to be used may be specified.
- any application 303 in the communication module 101 may be set to prohibit communication to the management server 115 belonging to a predetermined region depending on the region in which the communication module 101 exists.
- the management unit 761 of the management server 115 receives data from the communication module 101 existing in a predetermined region, or when communication using the predetermined subscriber identification information among a plurality of subscriber identification information is performed. If so, the communication of the communication module 101 may be prohibited. “Prohibiting communication of the communication module 101” may mean prohibiting the communication module 101 from performing communication using predetermined subscriber identification information.
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Accounting & Taxation (AREA)
- General Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- General Engineering & Computer Science (AREA)
- Probability & Statistics with Applications (AREA)
- General Business, Economics & Management (AREA)
- Economics (AREA)
- Development Economics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Stored Programmes (AREA)
- Telephonic Communication Services (AREA)
- Computer And Data Communications (AREA)
- Telephone Function (AREA)
Abstract
機器の種類に依存しないデータ通信を可能にする汎用的な通信モジュールを実現するため、通信モジュールが、異なる複数種類の通信インターフェース規格に対応した複数の通信インターフェースを有する。通信モジュールで実行される複数のプログラムが、OS(Operating System)上で実行される第1アプリと、OS上で実行される一つ又は複数の第2アプリとを含む。一つ以上の第2アプリの各々は、一つ以上の通信インターフェース規格上での一つ以上の通信プロトコルに従う通信を行うアプリであり、且つ、任意にインストールされ任意にアンインストール可能なアプリである。第1アプリは、OSと一つ又は複数の第2アプリとの間のミドルウェアとしてのアプリである。
Description
本発明は、概して、データ通信に関する。
通信モジュールに関する技術として、例えば特許文献1に開示の技術がある。
IoT(Internet of things)のように様々な産業機器(例えば、コンプレッサ、モータ及び産業向けインクジェットプリンタ等)からデータを収集することが行われるようになってきている。このような様々な産業機器の各々には、データ通信(例えばデータ送信)のための通信モジュールが必要になる。
通信モジュールに関わる要素として、通信に採用される通信インターフェース規格、及び、通信に採用される通信プロトコルといった要素があるが、いずれの要素も様々である。通信インターフェース規格としては、例えば、RS232C、RS485及びEthernet(登録商標)等がある。通信インターフェース規格は、典型的には、物理レイヤに関わる。通信プロトコルとしては、例えば、UDP(User Datagram Protocol)、MQTT(Message Queuing Telemetry Transport)及びModbusプロトコル等がある。通信プロトコルは、典型的には、通信インターフェース規格が属するレイヤよりも上位のレイヤに関わる。
いずれの種類の通信インターフェース規格及び通信プロトコルが採用されるかは、通常、産業機器に依存する。産業機器の種類も、様々である。例えば、複数種類の産業機器を提供するメーカ、すなわち、モータ単体とその応用機器であるエアーコンプレッサを製造するメーカであっても、エアーコンプレッサとモータそれぞれで異なる通信インターフェース規格または通信プロトコルを採用する場合があり、これらエアーコンプレッサとモータをまとめて監視等を行う場合には、それぞれに対応する通信変換装置を設けた上でIoTゲートウェイを介して通信されるクラウド監視システムまたは通信変換装置を設けオンプレミスの監視システムを構築する必要があり、このような産業機器ごとの通信規格の対応事情によって工場等のIoT化が進めにくくなっていた。
このため、産業機器の種類に依存しないデータ通信を可能にする汎用的な通信モジュールが実現されることが望ましい。
このような課題は、産業機器以外の機器についてもあり得る。
通信モジュールが、異なる複数種類の通信インターフェース規格に対応した複数の通信インターフェースを有する。通信モジュールで実行される複数のプログラムが、OS(Operating System)上で実行される第1アプリと、OS上で実行される一つ又は複数の第2アプリとを含む。一つ以上の第2アプリの各々は、一つ以上の通信インターフェース規格上での一つ以上の通信プロトコルに従う通信を行うアプリであり、且つ、任意にインストールされ任意にアンインストール可能なアプリである。第1アプリは、OSと一つ又は複数の第2アプリとの間のミドルウェアとしてのアプリである。
機器の種類に依存しないデータ通信を可能にする汎用的な通信モジュールが実現される。
以下の説明では、「通信インターフェース装置」は、一つ以上の通信インターフェースデバイスでよい。一つ以上の通信インターフェースデバイスは、一つ以上の同種の通信インターフェースデバイス(例えば一つ以上のNIC(Network Interface Card))であってもよいし二つ以上の異種の通信インターフェースデバイス(例えばNICとHBA(Host Bus Adapter))であってもよい。
また、以下の説明では、「メモリ」は、一つ以上の記憶デバイスの一例である一つ以上のメモリデバイスであり、典型的には主記憶デバイスでよい。メモリにおける少なくとも一つのメモリデバイスは、揮発性メモリデバイスであってもよいし不揮発性メモリデバイスであってもよい。
また、以下の説明では、「永続記憶装置」は、一つ以上の記憶デバイスの一例である一つ以上の永続記憶デバイスでよい。永続記憶デバイスは、典型的には、不揮発性の記憶デバイス(例えば補助記憶デバイス)でよく、具体的には、例えば、HDD(Hard Disk Drive)、SSD(Solid State Drive)、NVMe(Non-Volatile Memory Express)ドライブ、又は、SCM(Storage Class Memory)でよい。
また、以下の説明では、「記憶装置」は、メモリと永続記憶装置の少なくともメモリでよい。
また、以下の説明では、「プロセッサ」は、一つ以上のプロセッサデバイスでよい。少なくとも一つのプロセッサデバイスは、典型的には、CPU(Central Processing Unit)のようなマイクロプロセッサデバイスでよいが、GPU(Graphics Processing Unit)のような他種のプロセッサデバイスでもよい。少なくとも一つのプロセッサデバイスは、シングルコアでもよいしマルチコアでもよい。少なくとも一つのプロセッサデバイスは、プロセッサコアでもよい。少なくとも一つのプロセッサデバイスは、処理の一部又は全部を行うハードウェア記述言語によりゲートアレイの集合体である回路(例えばFPGA(Field-Programmable Gate Array)、CPLD(Complex Programmable Logic Device)又はASIC(Application Specific Integrated Circuit))といった広義のプロセッサデバイスでもよい。
また、以下の説明では、「xxxテーブル」といった表現にて、入力に対して出力が得られる情報を説明することがあるが、当該情報は、どのような構造のデータでもよいし(例えば、構造化データでもよいし非構造化データでもよいし)、入力に対する出力を発生するニューラルネットワーク、遺伝的アルゴリズムやランダムフォレストに代表されるような学習モデルでもよい。従って、「xxxテーブル」を「xxx情報」と言うことができる。また、以下の説明において、各テーブルの構成は一例であり、一つのテーブルは、二つ以上のテーブルに分割されてもよいし、二つ以上のテーブルの全部又は一部が一つのテーブルであってもよい。
また、以下の説明では、「yyy部」の表現にて機能を説明することがあるが、機能は、一つ以上のコンピュータプログラムがプロセッサによって実行されることで実現されてもよいし、一つ以上のハードウェア回路(例えばFPGA又はASIC)によって実現されてもよいし、それらの組合せによって実現されてもよい。プログラムがプロセッサによって実行されることで機能が実現される場合、定められた処理が、適宜に記憶装置及び/又はインターフェース装置等を用いながら行われるため、機能はプロセッサの少なくとも一部とされてもよい。機能を主語として説明された処理は、プロセッサあるいはそのプロセッサを有する装置が行う処理としてもよい。プログラムは、プログラムソースからインストールされてもよい。プログラムソースは、例えば、プログラム配布計算機又は計算機が読み取り可能な記録媒体(例えば非一時的な記録媒体)であってもよい。各機能の説明は一例であり、複数の機能が一つの機能にまとめられたり、一つの機能が複数の機能に分割されたりしてもよい。
また、以下の説明では、「プログラム」を主語として処理を説明する場合があるが、プログラムは、プロセッサによって実行されることで、定められた処理を、適宜に記憶装置及び/又はインターフェース装置等を用いながら行うため、処理の主語が、プロセッサ(或いは、そのプロセッサを有するコントローラのようなデバイス)とされてもよい。プログラムは、プログラムソースから計算機のような装置にインストールされてもよい。プログラムソースは、例えば、プログラム配布サーバ又は計算機が読み取り可能な(例えば非一時的な)記録媒体であってもよい。また、以下の説明において、二つ以上のプログラムが一つのプログラムとして実現されてもよいし、一つのプログラムが二つ以上のプログラムとして実現されてもよい。
また、以下の説明では、同種の要素を区別しないで説明する場合には、参照符号のうちの共通符号を使用し、同種の要素を区別する場合は、参照符号を使用することがある。例えば、通信モジュールを区別しない場合には、「通信モジュール101」と言い、通信モジュールを区別する場合には、「通信モジュール101A」、「通信モジュール101B」のように言う。
以下、一実施形態を説明する。なお、以下の実施形態では、エンティティとして、下記が存在するものとする。
・モジュール提供者:通信モジュールを提供するエンティティ(例えば、企業)。
・ユーザ:産業機器を提供するエンティティ(例えば、産業機器のメーカ)。例えば、ユーザは、通信モジュールを入手(例えば購入)し、入手した通信モジュールが接続された産業機器を提供(例えば販売)する。
・エンドユーザ:通信モジュールが接続された産業機器を使用するエンティティ(例えば、複数の産業機器からなる製造ラインを備えた工場を有する企業)。なお、製造ラインを備えた工場を有する企業はエンドユーザでありながら、通信モジュールを購入する場合はユーザにもなり得る。
・通信事業者:所定の通信網を管理するエンティティ(例えば、携帯電話キャリア)。
・モジュール提供者:通信モジュールを提供するエンティティ(例えば、企業)。
・ユーザ:産業機器を提供するエンティティ(例えば、産業機器のメーカ)。例えば、ユーザは、通信モジュールを入手(例えば購入)し、入手した通信モジュールが接続された産業機器を提供(例えば販売)する。
・エンドユーザ:通信モジュールが接続された産業機器を使用するエンティティ(例えば、複数の産業機器からなる製造ラインを備えた工場を有する企業)。なお、製造ラインを備えた工場を有する企業はエンドユーザでありながら、通信モジュールを購入する場合はユーザにもなり得る。
・通信事業者:所定の通信網を管理するエンティティ(例えば、携帯電話キャリア)。
本発明の実施形態について、産業機器の通信規格対応事情に起因するIoT化が進められにくい状況を説明したが、昨今のIoTに関する事情について説明する。IoT化が進めにくい背景として、産業機器の耐用年数は家庭用の電気機器に比べて長いため、専用の自社製品との通信することが考慮されている。このため、産業機器よりも上位のレイヤーを含むエッジやフォグレイヤーと通信することが考慮されていない製品が現在も利用されており、別途産業機器にセンサを取り付けしたり、産業機器専用の通信ポートに対して所定の通信コマンドを送信し返ってきたステータスを受信した後に変換する通信変換装置が必要となる場合がある。
こうした事情から、産業分野は、労働人口減少に伴う労働の効率化や省人化等の社会的要請に対して、IoT化した産業機器が望まれている。このような課題を解決するために本発明の実施形態に係るシステム全体の構成を図1を用いて説明する。
通信モジュール101が、産業機器103(機器の一例)の通信インターフェース装置としての役割を担うことができる。産業機器103が取得するデータとして、例えば、産業機器103のステータスを表すデータや、産業機器103のセンサにより取得された計測値を表すデータがある。産業機器103が取得したデータが、通信モジュール101で送信される。
産業機器103と通信モジュール101との関係は、1:1でもよいし、多:1でもよいし、1:多でもよいし、多:多でもよい。通信モジュール101は、後述するように、産業機器103の種類に依存しない汎用的なモジュールなので、典型的には、1:1又は多:1になると考えられる。1:1とは、通信モジュール101Bと産業機器103Bが通信する場合である。また、他:1とは、産業機器103A、103B、他の産業機器またはセンサ郡163と通信モジュール101Bが通信する場合である。
通信モジュール101の提供形態は様々でよい。例えば、通信モジュール101Bは、センサ群163(一つ以上のセンサ)が設けられた産業機器103Bに外付けされてもよいし、産業機器103A(例えば、産業機器本体)と産業機器103Aに予め接続された(例えば内蔵された)通信モジュール101Aとを含んだ産業機器ユニット105が提供されてもよい。
産業機器103A(産業機器103B)の通信インターフェース規格又は通信プロトコルは、通信網109A(通信網109B)を介した通信のための通信インターフェース規格又は通信プロトコルは異なる。産業機器103A(産業機器103B)に通信モジュール101A(通信モジュール101B)が接続されることで、産業機器103A(産業機器103B)が通信モジュール101A(通信モジュール101B)経由で通信網109A(通信網109B)を介したデータ通信を行うことができる。通信網109A及び109Bは、同一の通信網でもよいし異なる通信網でもよい。通信網109A及び109Bの各々は、本実施形態では無線通信網(例えば閉域網)であるが、有線通信網でもよいし、VPN(Virtual Private Network)でもよい。
通信網109A及び109Bに通信網109Cが接続されている。通信網109Cは、典型的にはインターネットであるが、他種の通信網でもよい。通信網109A~109Cの二つ以上が同一の通信網でもよい。
通信網109Cに、通信事業者サーバ107、配信サーバ117、管理サーバ115、ユーザシステム111(ユーザサーバでもよい)、及びエンドユーザクライアント113が接続されている。通信事業者サーバ107、配信サーバ117、管理サーバ115、ユーザシステム111、及びエンドユーザクライアント113のいずれも、物理的な計算機でもよいし、複数種類の計算リソース(例えば、クラウド基盤)上に実現された仮想的なシステムでもよい。
通信事業者サーバ107は、通信事業者のサーバである。通信事業者は、例えば、通信網109A及び109Bを管理する。通信事業者サーバ107は、ユーザ別又はエンドユーザ別に、通信網109A及び109Bを介した通信の通信量に応じた料金を決定する。決定された料金が、ユーザ又はエンドユーザに請求される。
配信サーバ117は、通信モジュール101にアプリをインストールするサーバである。配信サーバ117は、例えば、エンドユーザ以外のエンティティによって管理されるシステム(例えば、アプリストア)としてのサーバでよい。上記のようにアプリケーションを単にアプリと呼ぶ。
管理サーバ115は、通信モジュール101を管理したり、通信モジュール101の使用料金を決定したり、通信モジュールに搭載されるアプリケーションの使用状況を特定や算定等をするサーバである。複数のリージョンに対応した複数の管理サーバ115A、115B、…があってもよい。「リージョン」は、地理的な範囲を意味し、国、州、県、市といった様々な単位で区切られてよい。リージョンごとに通信範囲や通信領域を区切ることで、設定した所定のリージョン内でデータ管理をすることができる。
ユーザサーバ111は、ユーザのサーバである。例えば、ユーザサーバ111は、エンドユーザが使用する産業機器103の使用履歴を表し当該産業機器103に接続されている通信モジュール101から送信された一定期間分のデータを分析してよい。このとき、ユーザサーバ111は配信サーバ117から分析アプリケーションを取得し、取得した分析アプリケーションの使用回数、使用時間、使用状況をユーザシステム111もしくは管理サーバ115が計測し、分析アプリケーションの使用に対する対価を特定することができる。
ユーザは、ユーザシステム111でユーザアプリケーション180を作成することができる。作成したユーザアプリケーション180は、配信サーバ107にアップロードされる。エンドユーザが望むユーザアプリケーション180を、配信サーバ107から通信モジュール101にダウンロードすることができる。
ユーザアプリケーション180をダウンロードしたダウンロード情報を管理サーバ115が取得し管理することで、通信モジュール101のエンドユーザに対してユーザアプリケーション180のダウンロードに対する対価を特定する。ダウンロードのみならずユーザアプリケーション180の利用回数や利用状況に基づいた対価を特定することができる。特定された対価は通信利用量と共に回収することができる。また、回収した対価は通信事業者または通信事業者から配信サーバ117の管理者を介してユーザシステム111のユーザに支払われる。
これにより、ユーザがユーザシステム111で作成したアプリケーションのうちエンドユーザが通信モジュール101で必要なアプリケーションをダウンロードすることができる。そのアプリケーションの利用状況やダウンロードに対応する対価を通信事業者を介して回収することができるため、エンドユーザは直接ユーザへ対価を支払うことなく通信事業者に通信量と併せて支払うことできる。また、エンドユーザが支払った対価は、エンドユーザが個別にユーザへ支払う必要がなく、通信事業者や配信サーバ117の管理者経由で支払われるため、エンドユーザの利便性が向上するシステムを提供することができる。
通信モジュール101が携帯電話網の通信を利用できることから上記したユーザアプリケーション180に関する対価の特定と回収を実現できる。
エンドユーザクライアント113は、エンドユーザが使用する計算機(例えば、パーソナルコンピュータ又はスマートフォン)でよく、ユーザサーバ111のクライアントである。図1が示す例では、ユーザAのユーザサーバ111Aにとってのクライアントが、エンドユーザクライアント113Aa及び113Abであり、ユーザBのユーザサーバ111Bにとってのクライアントが、エンドユーザクライアント113Ba及び113Bbである。
通信モジュール101の情報はエンドユーザクライアント113で表示することができる、また、通信モジュール101に表示手段を持たせた場合には通信モジュール101をエンドユーザクライアント113として利用することもできる。エンドユーザクライアント113の表示手段にはタッチパネル等の入力部または別途キーボード等の入力手段を設けることができ、入力部または入力手段を用いて配信サーバ117に登録されたユーザアプリケーション113を購入することができる。
図2は、通信モジュール101の物理的な構成を示す。
通信モジュール101は、異なる複数種類の通信インターフェース規格に対応した複数の通信インターフェースの一例として、複数の通信ポート205A、205B、…と、複数のアンテナ201A、201B、…とを備える。通信ポート205としては、例えば、Eathernet(登録商標)、EtherCAT(登録商標)用のRJ45ポート、RS232C用のポート、及び、RS485用のポートを採用することができる。その他、I2C(Inter-Integrated Circuit)やCAN(Controller Area Network)(登録商標)を用いることができるため、物理的に使用できる通信規格であれば実施形態が限定されるものではない。
或る通信ポート205が、通信モジュール101のファームウェアのアップデートといった保守のための通信に使用されてもよい。また、そのような保守のための通信に使用されるポートは、通信ポート205とは異なる独立したポートであると通信を専有できるためより通信モジュール101のシステムの安全性が向上する。
また、アンテナ201としては、LTE(Long Term Evolution)用のアンテナ、GPS(Global Positioning System)用のアンテナ、及び、Bluetooth(登録商標)用のアンテナを採用することができる。アンテナ201毎に、当該アンテナ201を介して送受信される信号の処理を行う信号処理ユニット207が通信モジュール101に設けられていてよい。例えば、図示の通り、アンテナ201A、201B、…にそれぞれ対応した信号処理ユニット207A、207B、…が設けられていてよい。
通信モジュール101は、SIM(Subscriber Identity Module)カードスロット213を有する。当該スロット213に、加入者識別情報を格納しているSIMカード211が挿される。
また、SIMカードスロット213は物理的なものに限られずe-SIM(Embedded SIM)を利用することができる。この場合は、エンドユーザは、通信モジュール101を利用するリージョンに適した通信事業者を選択することができる。併せて、配信サーバ117もリージョンや通信事業者に適したユーザアプリケーションをエンドユーザに対して表示または非表示を選択することができる。
e-SIMを適用した本実施形態は、リージョンごとに適したサービスを提供することができ、ユーザアプリケーションの利用状況やダウンロードの対価の回収も通信事業者経由となるため、リージョンごとの法令や条例に対応するサービスによる利便性を提供することができる。以下、SIMカード211とSIMカードスロット213について代表して説明するが、e-SIMであっても上記したように実施できる。
通信モジュール101は、制御ユニット209を有する。制御ユニット209が、通信インターフェース装置221、メモリ223及びそれらに接続されたプロセッサ225を有する。インターフェース装置221に、SIMカード211、各通信ポート205及び各信号処理ユニット207が接続される。
メモリ223が、ファイルシステム情報251を格納する。ファイルシステム情報251は、ディレクトリとファイルを含む。ファイルシステム情報251において、ディレクトリとファイルは例えば木構造の関係を有する。ファイルシステム情報251が、複数のプログラムの各々について、プログラムの実行ファイルを含む構造体を含む。
また、メモリ223は、セキュア領域281を有してよい。セキュア領域281は、通信モジュール101の秘密鍵A(公開鍵認証方式における公開鍵Aと秘密鍵Aからなる鍵ペアのうち、秘密鍵Aに相当するもの)を格納してよい。通信モジュール101のセキュア領域281に秘密鍵Aを格納した場合は、エンドユーザクライアント113が秘密鍵Aに対応する公開鍵Aを用いてデータを復号することで、通信モジュール101から送信されたことを担保することができる。また、公開鍵認証方式におけるエンドユーザクライアント113の公開鍵Bと秘密鍵Bからなる鍵ペアのうち、公開鍵Bに相当するものを通信モジュール101のセキュア領域281に格納した場合には、エンドユーザクライアント113のユーザが公開鍵Bに対応する秘密鍵Bを管理し用いることで通信モジュール101が産業機器103等から取得した情報を保護することができる。なお、メモリ223がセキュア領域281を有している場合は、プロセッサ225とメモリ223を同一のチップ内に実装するなどにより、両者を接続するバス信号線が容易にプロービングされない構造であることが望ましい。
プロセッサ225は、メモリ223に格納されている複数のプログラム(例えば、複数のプログラムの実行ファイル)を実行する。
図3は、通信モジュール101の論理的な構成を示す。
プロセッサ225により実行される複数のプログラムは、ファームウェア305、OS(Operating System)301、及び、複数のアプリ303を含む。OS301は、例えば、オープンソースのOS、例えば、Linux(登録商標)でよい。また、メモリ223に、公開鍵管理テーブル351が格納される。公開鍵管理テーブル351は、管理サーバ115毎に、管理サーバIDと、当該管理サーバ115の公開鍵を表す情報とを格納する。なお、本実施例では代表して公開鍵管理テーブル351は公開鍵を管理する例として説明するが上記したように秘密鍵を管理することもできる。
複数のアプリ303は、OS301上で実行される第1アプリ303Aと、OS301上で実行される一つ又は複数の第2アプリ303Cとを含む。エンドユーザまたはユーザは、通信モジュール101が図1で説明したユーザアプリケーション180をダウンロードすることで、アプリ303として利用することができる。
例えば、第2アプリ303Cは、通信モジュール101のシステムや通信に関するアプリケーションであることが多い。ユーザのみならず通信モジュール101の製造企業(ベンダ、供給者または提供者とも呼ぶ)が、管理サーバ170を経由して各通信モジュール101に対してOTA(On The Air)によるファームウェアアップデートまたはソフトウェアアップデートを実施することが可能である。この場合、ベンダはユーザとなる。第1アプリ303AをOTAを用いて更新できるため、セキュリティ対策やバグfixが容易となり、より安心した通信モジュール101とすることができる。
一つ又は複数の第2アプリ303Cのうちの一つ以上の第2アプリ303Cの各々は、一つ以上の通信インターフェース規格上での一つ以上の通信プロトコルに従う通信を行うアプリであり、任意にインストールされ任意にアンインストール可能なアプリである。一つ又は複数の第2アプリ303Cの一例が、ルータアプリ303C1(IP(Internet Protocol)に従う通信を中継するルータとして通信モジュール101を機能させるためのアプリ)、Modbusアプリ303C2(Modbusプロトコルで通信するためのアプリ)、及び、MQTTアプリ303C3(MQTTプロトコルで通信するためのアプリ)である。
第1アプリ303Aは、OS301と一つ又は複数の第2アプリとの間のミドルウェアとしてのアプリである。以下、第1アプリ303Aを、「フレームワーク」と呼ぶことがある。
通信モジュール101は、異なる複数種類の通信インターフェース規格に対応した複数の通信インターフェースを備え、通信インターフェース規格や通信プロトコルの種類に応じた第2アプリがインストール(又はアクティベート)される。アクティベートとは、予め第2アプリの実行前に、配信サーバ117から第2アプリとしてOS301上にダウンロードとインストールをしておき、第2アプリの管理者からユーザまたはエンドユーザが第2アプリを利用することを許可されることをいう。
その後、ユーザまたはエンドユーザは第2アプリを実行することができる。アクティベート処理の際に、管理サーバ115を介してユーザまたはエンドユーザがアクティベートを要求する処理とユーザが第2アプリをアクティベートする処理を管理するとアクティベートや第2アプリの利用状況を把握できるため、この把握された利用状況を基に第2アプリの利用料の計算が可能となる。なお、利用状況の把握は配信サーバ115が行ってもよく、また、第2アプリ側で利用時間や利用回数を計測し、配信サーバ117や管理サーバ115へ送信することもできる。
個々のアプリ303は独立しているが、OS301と一つ又は複数の第2アプリ303Cとの間のミドルウェアとしてのフレームワーク303Aが存在する。このため、アプリ303間の連携が支援され、以って、通信モジュール101に接続される産業機器103が有するインターフェースの種類に依存しないデータ通信を可能にする汎用的な通信モジュール101が実現される。
なお、アプリ303毎にコンテナのような独立した実行環境が構築され当該実行環境においてアプリ303が実行されてもよいが、図3に例示の構成によれば、アプリ303はOS301によりプロセスとみなされて実行される。このため、コンテナのような実行環境が必要とされる構成と比べて、通信モジュール101の必要とされるリソース量は小さくすることができる。
ユーザは、通信モジュール101が接続されエンドユーザに使用される産業機器103について通信モジュール101経由でデータを収集し、収集されたデータを分析することで、エンドユーザにとってより価値の高いサービスを提供することが期待できる。
ユーザまたはエンドユーザは、通信モジュール101にユーザによって作られた第2アプリ303Cをインストールしたり、通信モジュール101から第2アプリ303Cをアンインストールしたりすることができる。
第2アプリ303Cは、ユーザからの要求に応答して(又は、ユーザからの要求無しに)、通信モジュール101の提供者によってインストール(又はアンインストール)されてもよい。
このインストール等の処理の際に、フレームワーク303がフレームワーク303上で動作する第1アプリ303や第1アプリが通信するインターフェースの使用状況を確認し、使用していない第1アプリであるか、あるいは第1アプリが使用中であれば、非使用のときにインストールやアンインストールあるいはアップデート処理をすることができる。
これにより、インストール等のプロセスが各アプリの状況を1:多の関係ではなく、プロセスとフレームワーク303が1:1の関係で確認するだけでよくなり、インストール等が容易となる。また、通信モジュール101と接続された産業機器103の通信を阻害せずにインストール等を実現することができる。
第2アプリ303Cは、ユーザ又はモジュール提供者等によって用意されたエンドユーザ向けの第2アプリ303Cでもよいし、分析用アプリのようにユーザ向けの第2アプリ303Cでもよい。第2アプリ303Cは、アプリストアのような配信サーバ117からユーザにより選択されたアプリがインストールされてもよい。
具体的には、例えば、フレームワーク303Aが、配信サーバ117にアクセスし、通信モジュール101に接続された計算機(図示しない)で実行されるWebブラウザのWeb画面上に、選択可能な第2アプリ(例えば、第2アプリのアイコン)を表示し、ユーザによりWeb画面から選択された第2アプリを、通信モジュール101にインストールしてよい。いずれの第2アプリ303Cがどの程度使用されたかに応じて、エンドユーザ又はユーザに対する課金額が決定されてよい。課金額の決定方法については後に説明する。
また、監視アプリ303B1は、第3アプリ303Bの一例である。フレームワーク303A及び監視アプリ303B1は、通信モジュール101の提供者によってインストール(例えば、プリインストール)されてよい。監視アプリ303B1については後述する。なお、フレームワーク303Aが、監視アプリ303B1のような第3アプリ303Bを兼ねてよい。すなわち、フレームワーク303Aが、監視アプリ303B1を兼ねてもよい。なお、「第3アプリ」とは、OS303上のアプリのうち第1アプリ及び第2アプリ以外のアプリでよい。
図4は、データ通信の流れの一例を示す。
フレームワーク303Aが、各第2アプリ303を管理する。例えば、各第2アプリ303は、当該第2アプリ303についてメモリ223の設定された領域に、当該第2アプリ303の使用履歴(例えば、稼働情報)を格納する。フレームワーク303Aが、各第2アプリ303について、当該第2アプリ303に対応した領域に登録された使用履歴を参照してよい。
通信モジュール101が異なる複数種類の通信インターフェース規格に対応した複数の通信インターフェースを有するため、個々の第2アプリ303が、任意の二種類以上の通信プロトコルや通信インターフェース規格に対応してもよい。
しかし、通信プロトコルや、通信プロトコルが関わるレイヤの下位レイヤに属するや通信インターフェース規格は、様々である。このため、産業機器103とのデータ通信のための通信プロトコルや通信インターフェース規格と、産業機器103以外とのデータ通信のための通信プロトコルや通信インターフェース規格との組合せの数は膨大となり得る。
例えば、産業機器103からデータを受信し受信したデータを管理サーバ115に送信するケースを考察する。産業機器103がModbusプロトコルをサポートしていれば、データ受信の通信プロトコルとしてModbusプロトコルを使用することが考えられる。
一方、管理サーバ115へのデータ送信の通信プロトコルとしては、MQQTプロトコルやUDPといった通信プロトコルを使用することが考えられる。単一の第2アプリが、産業機器103とのデータ通信と産業機器103以外とのデータ通信とを行う必要があると、第2アプリの開発が煩雑である。
そこで、本実施形態では、通信モジュール101に接続された産業機器103との通信を行うが産業機器103以外との通信を行わない(つまり、ローカル通信を行う)ローカルの第2アプリと、通信モジュール101に接続された産業機器103以外との通信を行い当該産業機器103との通信を行わない(つまり、グローバル通信を行う)グローバルの第2アプリとが用意される。
ローカルの第2アプリとグローバルの第2アプリの各々の開発は、ローカル通信とグローバル通信の両方を行う第2アプリの開発に比べて容易であることが期待される。また、ローカル通信の通信プロトコルや通信インターフェース規格とグローバル通信の通信プロトコルや通信インターフェース規格との組合せ毎に第2アプリが必要とならないので、通信モジュール101のリソースを効率的に使用することも期待される。
これらのローカル通信を行う第2アプリとグローバル通信を行う第2アプリそれぞれが自由に動作すると、OS上でメモリのアクセス等がぶつかる場合があるが、フレームワークがこれらの第2アプリを監視し、メモリへのアクセス等を制御することにより第2アプリそれぞれを動作させることができる。
図4が示す例によれば、Modbusアプリ303C2が、ローカルの第2アプリの一例である。すわなち、ローカルの第2アプリであるModbusアプリ303C2が、第1の第2アプリとなる一例である。また、MQTTアプリ303C3が、グローバルの第2アプリの一例である。すなわち、グローバルの第2アプリであるMQTTアプリ303C2が、第2の第2アプリとなる一例である。
例えば、Modbusアプリ303C2が、Modbusプロトコルに従う通信が行われる通信インターフェース規格(例えばRS485)に対応した通信インターフェース経由で、当該通信インターフェースに接続されている産業機器103Bからデータを受信する。MQTTアプリ303C3が、Modbusアプリ303C2が受信したデータ又は当該データの加工後のデータを、MQTTプロトコルに従う通信が行われる通信インターフェース規格に対応した通信インターフェース経由で、管理サーバ115等(所定のサーバの一例)に送信する。
なお、通信モジュール101に接続される産業機器103によっては、MQTTアプリ303C3がローカルの第2アプリの一例となることもあり得る。本発明の一実施形態に係るフレームワークを用いることで、このようなローカルとグローバルの接続を切り替えることや別アプリとしてローカル向けMQTTアプリとグローバル向けMQTTアプリを併存させることができる。第2アプリ303C間の連携は、上述した直接の連携でも間接の連携でもよい。
Modbusアプリ303C2とMQTTアプリ303C3を例に取ると、それらの第2アプリ303C間の連携は、例えば、次の通りでよい。Modbusアプリ303C2が、産業機器103Bから受信したデータを、メモリ223のうちの、Modbusアプリ303C2に対応した領域に書き込む。
MQTTアプリ303C3が、Modbusアプリ303C2に対応した領域からデータを読み出し、読み出したデータを管理サーバ115に送信する。MQTTアプリ303C3は、Modbusアプリ303C2に対応した領域のアドレスを、フレームワーク303Aへの問合せに対する応答から、又は、MQTTアプリ303C3について設定された情報から、知ることができる。
また、後述するように、ユーザは、Modbusアプリ303C2がデータを受信する通信タイミングや、Modbusアプリ303C2がデータを送信する通信タイミングを、フレームワーク303A経由で通信モジュール101に設定することが可能である。
さて、個々の第2アプリ303Cは、OS301によりプロセスとみなされて実行される。個々の第2アプリ303Cは、実行ログのような使用履歴(例えば、リソース量)を、当該第2アプリ303について設定された領域に書き込む。フレームワーク303Aは、個々の第2アプリ303Cの実行によって何が発生するか(例えば、いずれの種類のリソースがどの程度使用されるか)かまではわからない。
そこで、本実施形態では、監視アプリ303B1が通信モジュール101にインストールされる。監視アプリ303B1は、例えば、第2アプリ303C毎に、定期的に、フレームワーク303Aに対し、当該第2アプリ303Cに対応した領域にデータがあるか否かを問合せる。フレームワーク303Aは、データがあれば、当該データを領域から読み出して監視アプリ303B1に返し、データが無ければ、データが無いことを監視アプリ303B1に回答する。
監視アプリ303B1が問合せに応答してフレームワーク303Aから受信するデータは、第2アプリ303Cの使用履歴を表す情報を含んでいる。監視アプリ303B1は、フレームワーク303Aから受信したデータを、監視アプリ303B1のアプリIDと、当該データに対応した第2アプリ303CのアプリIDとに関連付けて、グローバルの第2アプリの一例であるMQTTアプリ303C3に渡す(例えば、メモリ223における所定の領域に書き込む)。MQTTアプリ303C3が、渡されたデータを管理サーバ115に送信する。
管理サーバ115は、監視アプリ303B1のアプリIDが関連付いたデータを格納する。当該データは、第2アプリ303Cの使用履歴を表す情報を含む。このように、通信モジュール101内の状況を監視する監視アプリ303B1が通信モジュール101において実行されることで、各第2アプリ303Cを、フレームワーク303Aを通じて追跡することができる。
結果として、通信モジュール101の信頼性を維持することが期待される。例えば、複数の第2アプリ303Cを実行していた通信モジュール101がシステムダウンしたとする。この場合、管理サーバ115に格納された、各第2アプリ303Cの使用履歴を、モジュール提供者が分析することで、問題のあった第2アプリ303Cを特定することが期待できる。このようにして、モジュール提供者からユーザへ通信モジュール101の状況のフィードバックをすることが期待できる。
また、問題があった第2アプリ303Cの修正データ(又は、当該アプリ303Cの新バージョン)を配布サーバ117経由又は非経由で通信モジュール101に提供することも期待できる。
なお、第2アプリ303C毎に、メモリ223のどの領域に使用履歴を表す情報を書き込むかは、予め決められている。例えば、各第2アプリ303Cについて、書込み先領域のアドレスを表す設定値は、当該第2アプリ303Cに対応した後述の設定定義ファイルに基づきフレームワーク303Aによって生成された設定画面を通じて入力され設定ファイルに登録された値でよい。
監視アプリ303B1は、各第2アプリ303Cについて、予め決められた領域を参照することで、当該第2アプリ303Cの使用履歴を表す情報を取得し、当該情報を含んだデータを、MQTTアプリ303C3のようなグローバルの第2アプリに渡すことができる。
また、本実施形態では、MQTTアプリ303C3のようなグローバルの第2アプリ303Cが存在するため、監視アプリ303B1は、グローバルの第2アプリ303C経由でデータを管理サーバ115に送信するが、監視アプリ303B1が、グローバル通信の機能を有していて、監視アプリ303B1それ自体が、管理サーバ115にデータを送信してもよい。
また、監視アプリ303B1に代えて又は加えて、他の第3アプリ303Bがインストールされてもよい。例えば、課金額を決定するアプリである課金アプリ303B2がインストールされてもよい。
フレームワーク303Aが、第2アプリ303Cにより通信インターフェース経由で通信されたデータの量であるデータ通信量(別の言い方をすれば、第2アプリ303C以外のアプリ(例えば、監視アプリ303B1)による通信のデータ通信量を除くデータ通信量)を特定してよい。
当該データ通信量は、例えば、アプリ303毎の使用履歴から特定されてよい。課金アプリ303B2が、当該特定されたデータ通信量に基づいて、課金額を決定してよい。決定された課金額は、通信モジュール101の使用課金額でもよいし、通信モジュール101が接続された産業機器103の使用課金額でもよい。
課金額の決定は、本実施形態では、後述するように、管理サーバ115のようなコア装置によって行われるが、産業機器103に接続された通信モジュール101のようなエッジ装置によって行われてもよい。
図5は、アプリ303のインストールとアプリ303に関する設定との概要を示す。
ファイルシステム情報251によれば、木構造のディレクトリ511とファイル501とがある。具体的には、例えば、ルートディレクトリ511Tの下位に、アプリトップディレクトリ511Aがあり、アプリトップディレクトリ511Aの直下に、アプリ303毎にアプリディレクトリ511Rが作成される。
アプリディレクトリ511Rに、当該アプリディレクトリ511Rに対応するアプリ303に関わるデータ一式が格納される。なお、ディレクトリ511及びファイル501の各々は、オブジェクトの一例でよい。
一般に、アプリ(アプリケーションプログラム)に対する設定値は、設定画面経由でオペレータにより入力されるが、アプリの設定画面は、アプリのソースコードに記述された情報に基づくアプリ固有の画面である。アプリ毎に構成がアプリ固有であると、アプリ間の連携が煩雑であると考えられる。
アプリごとに異なるインターフェースであると、通信モジュール101のエンドユーザまたはユーザはアプリごとにその利用方法を習得する必要が生じるためである。また、インターフェース情報をアプリごとに持たせると通信モジュールの101のメモリを消費やプロセッサのリソース使用量が増加するため、インターフェースを共通化することで汎用機に比べてリソースが小さい組み込み機器である通信モジュール101のリソース使用量を小さくすることができる。
そこで、本実施形態では、少なくとも第2アプリ303Cについて、実行ファイル501E1、設定定義ファイル501F2及び設定ファイル501S3から構成されたアプリ構造体が採用される。
実行ファイル501Eは、第2アプリ303Cの本体に相当するファイルである。第2アプリ303Cの実行は、当該第2アプリ303Cの実行ファイル501Eの実行である。設定定義ファイル501F2は、第2アプリ303Cについて一つ以上の設定項目を表すファイルである。
設定ファイル501S3は、当該一つ以上の設定項目について一つ以上の設定値が入力された場合に当該入力された一つ以上の設定値が登録されるファイルである。フレームワーク303Aが、設定定義ファイル501F2を基に設定画面を構築して提供し、設定画面に入力された設定値を設定ファイル501S3に登録する。
各第2アプリ303Cの実行は、当該第2アプリ303Cに対応した設定ファイル501S3に登録された設定値に従う。これにより、アプリ303間の連携がし易い。また、設定画面はフレームワーク303Aにより構築され提供されるので、第2アプリ303の開発もし易いと考えられる。
フレームワーク303Aは、アプリ303のインストールのためのインターフェースの一例として、CUI(Character User Interface)を提供する。フレームワーク303Aが提供するCUI経由で、配信サーバ117が、アプリ構造体をアプリトップディレクトリ511A(所定のディレクトリの一例)に格納することが、アプリ303のインストールでよい。
例えば、図5が示す例によれば、アプリトップディレクトリ511Aに、Modbusディレクトリ511R2が作成され、Modbusディレクトリ511R2に、Modbusアプリ303C2のアプリ構造体(実行ファイル501E2、設定定義ファイル501D2及び設定ファイル501S2)が格納される。この格納処理は、Modbusアプリ303C2のインストールの際に行うとよい。
また、通信モジュール101に対するアプリ303のインストールは、エンドユーザからの要求に応じて行われるいわゆるプル型のインストールでもよいが、本実施形態では、エンドユーザからの要求無しに配信サーバ117によって能動的に行われる(例えば、ユーザ又はモジュール提供者からの要求に従い行われる)いわゆるプッシュ型のインストールを行う。
これにより、ユーザ又はモジュール提供者は、通信モジュール101の信頼性を維持することが期待できる。配信サーバ117は、エンドユーザ以外のエンティティにより管理されるシステムの一例である。ネットワークへの負荷を低減させるため、通信モジュール101の製造番号、SIMカード211が有するIMEI(International Mobile Equipment Identity)や接続される通信キャリアの情報を基に、プッシュ型のインストールやアプリの配信タイミングを変更するとよい。
フレームワーク303Aは、アプリ303の設定画面としてのインターフェースの一例として、GUI(Graphical User Interface)を提供する。図5が示す例によれば、Modbusアプリ303C2が例として採用されている。
フレームワーク303Aが、指定されたModbusアプリ303C2の設定定義ファイル501D2を基に、当該設定定義ファイル501D2が表す一つ以上の設定項目について一つ以上の設定値を受け付ける設定画面を生成し、当該生成した設定画面を提供する。
例えば、ネットワーク109経由又は非経由で、管理端末605が通信モジュール101に通信可能に接続される。管理端末605は、入出力装置を有する計算機の一例でよい。
フレームワーク303Aにより生成された設定画面は、管理端末605に提供され表示される。当該設定画面が表す一つ以上の設定項目について、管理端末605のオペレータにより、一つ以上の設定値が入力される。当該設定画面に入力された一つ以上の設定値を、フレームワーク303Aが、Modbusアプリ303C2の設定ファイル501S2に登録する。
Modbusアプリ303C2の実行(例えば、Modbusプロトコルに従い産業機器103からデータを収集する周期、及び、収集したデータの格納先領域)は、設定ファイル501S2に登録された設定値に従う。
なお、フレームワーク303Aは、アプリ303のインストール管理情報(例えば、インストール済のアプリのリスト)を管理してもよいが、本実施形態では、フレームワーク303Aは、アプリトップディレクトリ511Aにアプリ構造体が格納されていることをアプリがインストールされていると管理し、インストール管理情報を管理しないように扱うことができる。
フレームワーク303Aは、アプリトップディレクトリ511Aを参照することで、第2アプリ303Cのインストール済を特定する。インストール管理情報が管理されるケースにおいて、第2アプリ303のインストール中に通信モジュール101に供給される電源の遮断や切断が生じると、アプリトップディレクトリ511A下の構造とインストール管理情報が表す内容とに不整合が起こり得る。本実施形態では、アプリトップディレクトリ511Aの下位にアプリ構造体が存在することが、アプリ303のインストール済として管理されるので、上述のような不整合は生じにくくなりアプリのインストール情報の管理コストを低減させることができる。
図6は、アプリに関する設定の流れの一例を示す。
フレームワーク303Aが、設定画面を提供する。具体的には、例えば、フレームワーク303Aが、アプリトップディレクトリ511Aを参照することでインストール済のアプリを特定し、特定されたアプリのリスト(例えば、特定されたアプリのアイコン603Rのリスト)を表示したメニュー画面601Tを提供する。
いずれかのアプリのアイコン603Rがオペレータにより指定されると、フレームワーク303Aは、指定されたアイコン603Rに対応したアプリの設定定義ファイル501Dに基づいて、当該設定定義ファイル501Dが表す一つ以上の設定項目について一つ以上の設定値を受け付けるGUI(例えば、当該設定定義ファイル501Dが表す一つ以上の設定項目の各々について、設定値の入力用のUIを有するGUI)である設定画面を生成し、生成した設定画面を提供する。
図6が示す例によれば、Modbusアプリ303C2に対応したアイコン603R2が指定されている。また、設定項目は、大項目と小項目のように階層化されている。この場合、フレームワーク303Aは、Modbusアプリ303C2の設定定義ファイル501D2を参照し、まず、当該設定定義ファイル501D2に記述されている一つ以上の設定大項目のリスト(例えば、一つ以上の設定大項目をそれぞれ表す一つ以上のアイコン)を表示したメニュー画面601Mを生成し、メニュー画面601Mを提供する。
メニュー画面601Mからいずれかの設定大項目が指定された場合、フレームワーク303Aは、設定定義ファイル501D2から、指定された設定大項目に属する一つ以上の設定小項目を特定し、特定された設定小項目毎のUI(設定値の入力用のUI)605を有する設定画面601Aを生成し、生成した設定画面601Aを提供する。
例えば、設定大項目“接続先デバイス設定”が指定された場合、設定小項目“デバイス名”、“ポート名”、…にそれぞれ対応する入力用UI605aa、605ab、…が表示された設定画面601A1が提供される。また、例えば、設定大項目“接続設定”が指定された場合、設定小項目“デバイス名”、“レジスタ#”、…にそれぞれ対応する入力用UI605ba、605bb、…が表示された設定画面601A2が提供される。
画面遷移の例は、図6が示す例に限られないでよい。例えば、アプリのアイコン603Rが指定された場合、画面601Mと601Aが一体となった設定画面、すなわち、設定大項目毎に、各設定小項目とその入力用UI605とが表示された設定画面が表示されてもよい。
このように、フレームワーク303Aは、アプリの設定定義ファイル501Dを基に設定画面を生成し提供することができる。
なお、設定画面の提供先は、図5に例示した管理端末605(計算機の一例)でよい。また、設定画面は、管理端末605で実行されるWebブラウザにより表示可能な画面でよい。Webブラウザのような一般的なブラウザ経由で設定値を入力可能なので、利便性が高い。
図7は、管理サーバ115の構成の一例を示す。
管理サーバ115は、インターフェース装置721、記憶装置723及びそれらに接続されたプロセッサ725を備える計算機システムであってもよいし、当該計算機システムで一つ以上のプログラムが実行されることで実現される仮想的なシステムであってもよい。
記憶装置723に格納されているプログラムのうちの少なくとも一つのプログラムが実行されることで、プロセッサ725に、管理部761及び課金部763といった機能が実現される。
記憶装置723が、セキュア領域781を有してよい。セキュア領域781は、管理サーバ115の秘密鍵または公開鍵を格納してよい。
記憶装置723が、公開鍵管理テーブル751、ユーザ管理テーブル753及び使用管理テーブル755を格納する。
セキュア領域781に秘密鍵を持たせた場合の公開鍵管理テーブル751は、通信モジュール101毎に、通信モジュールIDと、当該通信モジュール101の公開鍵を表す情報とを格納する。
ユーザ管理テーブル753は、ユーザ毎に、ユーザIDと、当該ユーザの情報(例えば、連絡先(例えば、電子メールアドレス)、使用される通信モジュール101のモジュールID、及び、当該通信モジュール101に接続されている産業機器103の情報)を格納する。
使用管理テーブル755は、通信モジュール101毎に、モジュールIDと、当該通信モジュール101のアプリ使用履歴を表す情報を格納する。アプリ使用履歴は、通信モジュール101にインストールされているアプリ303毎に、下記のうちの少なくとも一つを含んでよい。
・アプリID:通信モジュール101におけるアプリ303のID。
・ユーザID:アプリ303を使用したユーザのID。
・エンドユーザID:アプリ303を使用したエンドユーザのID。
・インストール時刻:アプリがインストールされた時刻。
・アクティベート時刻:インストールされたアプリがアクティベートされた(例えば、使用開始が希望された)時刻。
・リージョンID:アプリ実行時の通信モジュール101が属するリージョンのID。
・リソース使用量:アプリの実行において使用されたリソースの量。
・アプリステータス:アプリのステータス(例えば、正常や異常)。
・アプリID:通信モジュール101におけるアプリ303のID。
・ユーザID:アプリ303を使用したユーザのID。
・エンドユーザID:アプリ303を使用したエンドユーザのID。
・インストール時刻:アプリがインストールされた時刻。
・アクティベート時刻:インストールされたアプリがアクティベートされた(例えば、使用開始が希望された)時刻。
・リージョンID:アプリ実行時の通信モジュール101が属するリージョンのID。
・リソース使用量:アプリの実行において使用されたリソースの量。
・アプリステータス:アプリのステータス(例えば、正常や異常)。
アプリ実行時の通信モジュール101が配置されるリージョンの特定は、例えば、当該アプリを実行する通信モジュール101が受信したGPS信号を基に検出される。SIMカード211が接続される基地局や通信キャリアの情報、GNSS(Global Navigation Satellite System)信号を基にしてもよい。
また、「リソース」は、通信モジュール101のリソース(典型的には、通信インターフェース、メモリ223及びプロセッサ225といった計算リソース)である。「リソース使用量」としては、データ通信量、プロセッサ使用率、プロセッサ使用時間及びメモリ使用量といった種々のリソース使用量を採用できる。
通信モジュール101におけるアプリ303毎のアプリ使用履歴(例えば、リソース使用量)を表す情報を含んだデータは、当該通信モジュール101における監視アプリ303B1によって、例えば、OS301通じて、メモリ223から取得され、監視アプリ303B1から、例えばグローバルの第2アプリ303Cを通じて、管理サーバ115に送信される。管理部761が、当該データを、使用管理テーブル755のうち、当該データの送信元の通信モジュール101に対応した欄に登録する。課金部763が、使用管理テーブル755を基に、通信モジュール101の使用に関する課金額を決定する。
監視アプリ303B1が通信モジュール101に接続された産業機器103のセンサやステータス以外を監視する変形例について説明する。監視アプリ303B1とは別に第2アプリとして実行してもよい。例えば、監視アプリ303B1は、通信モジュール101に接続された機器のファームウェアのアップデートを行うことができる。
監視アプリ303B1は、産業機器103のファームウェアのリビジョン情報やファームウェアの内容と配信サーバ117に登録された産業機器103に対応するファームウェアのリビジョン情報やそのファームウェアの内容を監視する。
配信サーバ117に記憶されるファームウェアが更新または登録された場合に、産業機器103のファームウェアと比較し、差分がある場合には、エンドユーザクライアント113に産業機器103の新しいファームウェアが存在することを表示する。
表示され、ユーザまたはエンドユーザがファームウェアの更新を行うことに同意した場合には、通信モジュール101は接続された産業機器103のファームウェアを更新する。このファームウェアを更新した回数や通信を行った時間等を用いて課金額を決定または算出することができる。課金額は配信サーバ117または管理サーバ115で決定、算出、管理することができる。また、ユーザやエンドユーザがファームウェアの自動更新のサブスクリプション契約を行っている場合には、契約期間中は適宜ファームウェアを更新してもよく、この場合は契約情報を監視アプリ117に登録等するとよい。契約期間を満了した場合や満了前には契約を更新するかユーザまたはエンドユーザに確認するとよい。契約満了の場合は個別に課金することもでき、これによりユーザニーズに対応するファームウェアのアップデートを実現できる。
図8は、アプリの使用状況や使用履歴を用いた課金額や課金方法の流れの概要を示す。
管理サーバ115において、管理部761が、通信モジュール101A、101B、…からデータを受信する。各通信モジュール101について、受信したデータは、当該通信モジュール101におけるアプリ使用履歴を表す情報を含む。管理部761は、受信したデータを、当該データの送信元の通信モジュール101に対応した欄に登録する。
課金部763が、使用管理テーブル755が表す通信モジュール101のうち所定期間についての課金額が未決定の通信モジュール101を選択し、当該通信モジュール101についてアプリ使用履歴を表す情報を使用管理テーブル755から取得する。アプリ使用履歴を表す情報は、使用管理テーブル755に登録されることに代えて、通信モジュール101からのデータから課金部763により特定されてもよい(すなわち、使用管理テーブル755は無くてもよい)。課金部763は、アプリ使用履歴を表す情報に基づいて、通信モジュール101の使用に関する課金額を決定する。
例えば、課金部763は、アプリ使用履歴を表す情報から、各第2アプリ303Cの使用履歴を特定し、各第2アプリ303Cの使用履歴を基に、通信モジュール101の使用に関する課金額を決定してよい。
通信モジュール101によれば、第2アプリ303Cをユーザの要求に応じてインストールすることができる。また、通信モジュール101におけるフレームワーク303Aが、インストール済の一つ以上の第2アプリ303Cのうちエンドユーザ所望の第2アプリ303Cの指定をユーザ(又はエンドユーザ)から受け付け、当該指定された第2アプリ303Cをアクティベートしてよい。
このように任意に第2アプリ303Cをインストール又はアクティベートすることができるが、各第2アプリ303Cの使用履歴は監視され管理サーバ115に通知される。このようなアプリ使用履歴を基に、通信モジュール101の使用に関する課金額が決定される。
この例では、課金額のベースは、任意にインストール(又はアクティベート)が可能なアプリである第2アプリ303Cの使用に起因したアプリ使用履歴(例えば、リソース使用量)に限られており、第2アプリ303Cの使用に起因しないアプリ使用履歴(例えば、監視アプリ303B1のデータ通信量)は含まれない。
このため、ユーザにとって、課される金額が適切であることが期待され、以って、産業機器103の種類に依存しないデータ通信を可能にする汎用的な通信モジュール101の利用促進が期待される。
なお、「通信モジュール101の使用に関する課金額」とは、ユーザ毎の課金額であってもよいし、各ユーザについて当該ユーザのエンドユーザ毎の課金額であってもよい。エンドユーザ毎の課金額を基に、ユーザが、エンドユーザに課する金額を決定してもよい。
また、第2アプリ303Cの使用履歴は、当該第2アプリ303Cのアクティベート時刻を表す情報を含んでいる。インストール時刻からの使用時間でもよいが、アクティベート時刻からの使用時間をベースにすることで、より適切な課金額の決定が期待される。
通信モジュール101が、所定の通信網(例えば、通信網109A又は109B)に対応し加入者識別情報を格納したSIMカード211(加入者識別情報を格納したカードの一例)を有している。第2アプリ303C(例えば、グローバルの第2アプリ)が、SIMカード211内の加入者識別情報を含むデータを、フレームワーク303Aが提供した設定画面経由で設定された設定値の一例としての通信タイミングで、管理サーバ115送信してよい。
このように、加入者識別情報を含むデータの送信タイミングを、フレームワーク303A経由で設定した通信タイミングに制限することができる。なお、課金部763が、決定された課金額が反映された料金を所定の通信網(例えば、通信網109A又は109B)を管理する通信事業者が請求可能にするために、決定された課金額を表す情報を、当該通信事業者宛に(例えば、通信事業者サーバ107に)送信してよい。
これにより、通信モジュール101の通信に使用された所定の通信網を管理する通信事業者からユーザ(又はエンドユーザ)に対して課される通信料金を、当該ユーザ(又はエンドユーザ)についての課金額が反映された料金とすることが期待できる。
課金部763が、通信モジュール101A(第1の通信モジュールの一例)のアプリ利用履歴が表す或る第2アプリ303Cのアクティベート時刻と、通信モジュール101B(第2の通信モジュールの一例)のアプリ使用履歴が表す同一の第2アプリ303C(或る第2アプリ303Cと同一の第2アプリ303C)のアクティベート時刻とを基に、通信モジュール101Aに関する課金額Aと通信モジュール101Bに関する課金額Bとを決定してよい。
このように、共通の第2アプリ303Cの使用に関する金額のベースを、当該第2プリ303Cのアクティベート時刻(例えば、アクティベート時刻からの使用時間)とすることができる。例えば、課金額Aのうち上記或る第2アプリ303Cの使用に関わる部分の料金と、課金額Bのうち同一の第2アプリの使用に関わる部分の料金とのうち、当該第2アプリ303Cのアクティベート時刻が早い方の料金が安くてよい。これにより、第2アプリ303Cの積極的な利用を促進できる。
アクティベート時刻が早い方の料金が安いとは、アプリ303Cの月間または年間のサブスクリプション契約の単価を低くするということである。アプリ303Cのアクティベート数が所定数を超えるごとに、既にアクティベートされていた利用者の利用料または利用料の比率を下げることもできる。
例えば、第2アプリ303Cの利用者が第一の利用者数の場合には、第一の時刻から利用する第一の利用者は月額A円、第一の時刻より遅い第二の時刻から利用する第二の利用者は月額B円である。その後、第二の共通アプリ303Cの利用者数が第一の利用者数より増加し第二の利用者数になった場合には、第一の利用者は月額A円より安価なC円、第二の利用者は月額B円より安価なD円とするとよい。
さらに、B<Dの関係となると、より第一の利用者を優遇できるため、アプリの利用促進に繋がる。ひいては、ユーザによるアプリのデバッグやアップデートも進み、ベンダ、ユーザ、エンドユーザ全体で安心して利用できる通信モジュール101を作り上げるエコシステムを構築することができる。
管理部761は、決定された課金額の支払期限までの支払が無ければ、当該課金額が決定された通信モジュール101の全部又は一部の使用を制限してよい。このように、通信モジュール101の使用制限を管理サーバ115からかけることができる。
通信モジュール101におけるいずれかのアプリ303が、当該通信モジュール101が存在するリージョンを特定してよい(例えば、GPS信号により検出された位置を基に所定のサーバと通信することでリージョンを特定してよい)。当該特定されたリージョンが所定のリージョンの場合、通信モジュール101におけるいずれかのアプリが、当該所定のリージョンに属する通信網に対応した加入者識別情報を用いた通信を制限してよい。
これにより、モジュール提供者が通信を制限したいリージョンで通信モジュール101が制限無しに通信することを避けることができる。なお、リージョンを特定するアプリ303と、通信を制限するアプリ303は、同一でもよいし異なってもよく、また、第1アプリ、第2アプリ及び第3アプリのいずれでもよい。これにより、地域や国ごとで取り扱うデータを制限することができ、ユーザまたはエンドユーザは安心して産業機器のデータ通信を行うことができる。
例えば、複数の通信網109A及び109B(図1参照)が属する複数のリージョンに属する複数の管理サーバ115A及び115Bがあってよい。通信モジュール101Aが存在するリージョンに属する管理サーバ115Aの管理部761が、当該通信モジュール101Aの通信が許可されているリージョンである許可リージョンを特定してよい。
当該許可リージョンに、通信モジュール101Aが存在するリージョンが該当しない場合(例えば、通信モジュール101Aが、通信網109Aが属するリージョンではなく通信網109Bが属するリージョンに存在する場合)、管理サーバ115Aの管理部761が、当該リージョンに属する通信網109Bに対応した加入者識別情報を用いた通信を制限してよい。
また、上述した処理の少なくとも一部に代えて又は加えて、下記のような処理が行われてもよい。
通信モジュール101と管理サーバ115間で送受信されるデータは、公開鍵暗号方式に従う暗号化と復号が行われてよい。すなわち、通信モジュール101におけるアプリ303が管理サーバ115にデータを送信する場合、当該アプリ303が、管理サーバ115の公開鍵(公開鍵管理テーブル351から特定された公開鍵)を用いてデータを暗号化し、暗号化されたデータを管理サーバ115に送信してよい。
管理サーバ115の管理部761が、管理サーバ115の秘密鍵を用いて当該データを復号してもよい。一方、管理サーバ115における管理部761が通信モジュール101にデータを送信する場合、管理部761が、通信モジュール101の公開鍵(公開鍵管理テーブル751から特定された公開鍵)を用いてデータを暗号化し、暗号化されたデータを通信モジュール101に送信してよい。通信モジュール101におけるいずれかのアプリ303が、通信モジュール101の秘密鍵を用いて当該データを復号してもよい。
このような環境において、例えば、通信モジュール101におけるいずれかのアプリ303が、SIMカード211内の加入者識別情報を、管理サーバ115の公開鍵を用いて暗号化し、暗号化された加入者識別情報を管理サーバ115に送信してよい。
通信モジュール101が接続される通信網経由の通信を行う場合に、通信モジュール101におけるいずれかのアプリ303が、加入者識別情報と送信対象データ(例えば、産業機器103から取得されたデータ)とを含んだデータを、管理サーバ115の公開鍵で暗号化した後、フレームワーク303Aを通じて設定された通信タイミングに基づいて、当該暗号化されたデータを管理サーバ115へ送信してよい。
管理サーバ115の管理部761が、暗号化されたデータを受信し、当該データを管理サーバ115の秘密鍵で復号してよい。管理部761が、復号されたデータが有する加入者識別情報に基づいて、通信モジュール101を特定し、特定された通信モジュール101が通信を行うことを認証してよい。
課金部763が、認証された通信モジュール101のデータ通信量(復号されたデータが有する送信対象データが表すアプリ使用履歴から特定されたデータ通信量)に基づいて、通信モジュール101に関する課金額を決定してよい。
通信モジュール101からの送信対象データは、当該通信モジュール101にインストールされたアプリ303をアクティベートすること(例えば、ユーザまたはエンドユーザから管理サーバ115へ使用希望を受けたこと)を表すアクティベート情報を含んでよい。
結果として、アクティベート情報も、管理サーバ115の公開鍵を用いて暗号化されてよい。管理サーバ115の課金部763が、復号されたデータが有するアクティベート情報を用いて、通信モジュール101に関する課金額を決定してよい。
決定された課金額を表すデータは、暗号化されたデータが経由した通信網を管理する通信事業者(例えば、通信事業者サーバ107)に送信されてよい。通信事業者からユーザ(又はエンドユーザ)へ課される通信料金に、上記決定された課金額が反映されてよい。
通信モジュール101Aがアプリをアクティベートした時刻と通信モジュール101Bが同一のアプリをアクティベートした時刻とを用いて、課金部763が、通信モジュール101Aに関する課金額と通信モジュール101Bに関する課金額とを決定してよい。例えば、通信モジュール101Aでのアクティベート時刻と通信モジュール101Bでのアクティベート時刻とのうち早い方の通信モジュールに関する課金額が安価となってよい。
管理サーバ115の管理部761が、ユーザが通信事業者へ料金を支払ったことを表す情報を受信した場合に、当該ユーザが使用する通信モジュール101の通信を継続すること又は当該通信モジュール101におけるアプリ303の使用を継続することを許可してよい。
管理サーバ115の管理部761が、ユーザが通信事業者へ料金を支払ったことを表す情報を受信しない場合に、通信モジュール101の通信又は通信モジュール101におけるアプリ303の使用を禁止してよい。
管理サーバ115の管理部761が、ユーザが通信事業者へ料金を支払ったことを表す情報を受信しない場合に、通信モジュール101に対して所定期間の通信又は所定期間のアプリの使用を継続することを許可してよい。
管理サーバ115は、所定のリージョン毎に設けられてよい。通信モジュール101のSIMカード211が、接続される複数の通信網に対応する複数の前記加入者識別情報を格納していてよい。管理サーバ115の管理部761が、又は、通信モジュール101におけるいずれかのアプリ303が、通信モジュール101が存在するリージョンを表す情報と当該リージョンに属する通信網を特定することによって、当該通信モジュール101が使用する加入者識別情報を特定してよい。
例えば、通信モジュール101におけるいずれかのアプリ303は、当該通信モジュール101が存在するリージョンによって、所定のリージョンに属する管理サーバ115への通信を禁止するように設定されてよい。
また、例えば、管理サーバ115の管理部761が、所定のリージョンに存在する通信モジュール101からデータを受信した場合、又は、複数の加入者識別情報のうち所定の加入者識別情報を用いた通信がなされた場合、当該通信モジュール101の通信を禁止してよい。「通信モジュール101の通信を禁止」とは、当該通信モジュール101が所定の加入者識別情報を用いた通信を行うことを禁止することでよい。
ただし、この場合、通信モジュール101のグローバル側の通信は禁止するが、ローカル側の通信は許可するとよい。ローカル側の通信を許可することで、通信モジュール101に接続される産業機器103の動作を維持することができる。
以上、一実施形態を説明したが、これは本発明の説明のための例示であって、本発明の範囲をこの実施形態にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実行することが可能である。
101:通信モジュール
Claims (20)
- 異なる複数種類の通信インターフェース規格に対応した複数の通信インターフェースと、
OS(Operating System)を含む複数のプログラムが格納されるメモリと、
前記複数の通信インターフェースと前記メモリとに接続され前記複数のプログラムを実行するプロセッサと
を備え、
前記複数のプログラムは、前記OS上で実行される第1アプリと、前記OS上で実行される一つ又は複数の第2アプリとを含み、
前記一つ又は複数の第2アプリのうちの一つ以上の第2アプリの各々は、一つ以上の通信インターフェース規格上での一つ以上の通信プロトコルに従う通信を行うアプリであり、且つ、任意にインストールされ任意にアンインストール可能なアプリであり、
前記第1アプリは、前記OSと前記一つ又は複数の第2アプリとの間のミドルウェアとしてのアプリである、
通信モジュール。 - 前記一つ又は複数の第2アプリの各々について、
当該第2アプリの実行オブジェクトと、
当該第2アプリについて一つ以上の設定項目を表す設定定義オブジェクトと、
当該一つ以上の設定項目について一つ以上の設定値が入力された場合に当該入力された一つ以上の設定値が登録される設定オブジェクトと
を含んだアプリ構造体があり、
前記一つ又は複数の第2アプリの各々について、当該第2アプリの実行は、当該第2アプリの設定オブジェクトに基づいており、
前記第1アプリが、
指定された第2アプリの設定定義オブジェクトを基に、当該設定定義オブジェクトが表す一つ以上の設定項目について一つ以上の設定値を受け付けるUI(User Interface)である設定画面を生成し、
当該生成した設定画面を提供し、
当該設定画面が表す一つ以上の設定項目について当該設定画面に入力された一つ以上の設定値を、前記指定された第2アプリの設定オブジェクトに登録する、
請求項1に記載の通信モジュール。 - 前記設定画面は、前記通信モジュールに通信可能に接続された計算機で実行されるWebブラウザにより表示可能な画面である、
請求項2に記載の通信モジュール。 - 前記一つ又は複数の第2アプリにそれぞれ対応した一つ又は複数のアプリ構造体は、ファイルシステムにおける所定のディレクトリに格納され、
各アプリ構造体において、実行オブジェクト、設定定義オブジェクト及び設定オブジェクトとは、それぞれ、実行ファイル、設定定義ファイル及び設定ファイルであり、
前記第1アプリは、前記所定のディレクトリを参照することで、前記一つ又は複数の第2アプリのインストール済を特定する、
請求項2に記載の通信モジュール。 - 前記通信モジュールのエンドユーザ以外のエンティティにより管理されるシステムから当該エンドユーザの要求無しに第2アプリのアプリ構造体が前記所定のディレクトリに格納される、
請求項4に記載の通信モジュール。 - 第1の第2アプリが、当該第1の第2アプリに対応した通信プロトコルに従う通信が行われる通信インターフェース規格に対応した通信インターフェース経由で、当該通信インターフェースに接続されている機器からデータを受信し、
前記第1の第2アプリとは別の第2アプリである第2の第2アプリが、前記第1の第2アプリが受信したデータ又は当該データの加工後のデータを、当該第2の第2アプリに対応した通信プロトコルに従う通信が行われる通信インターフェース規格に対応した通信インターフェース経由で、所定のサーバに送信する、
請求項1に記載の通信モジュール。 - 前記複数のプログラムが、第3アプリとして監視アプリを含み、
少なくとも一つの第2アプリのリソース使用量が前記OSにより前記メモリに格納されるようになっており、
前記監視アプリが、
前記少なくとも一つの第2アプリのリソース使用量を前記第1アプリに問い合わせ、
当該問合せに応答して前記第1アプリにより前記メモリから取得され前記第1アプリから回答されたリソース使用量を表すデータを、前記第2の第2アプリに渡し、
前記第2の第2アプリが、渡されたデータを前記所定のサーバに送信する、
請求項6に記載の通信モジュール。 - 前記複数のプログラムが、第3アプリとして監視アプリを含み、
少なくとも一つの第2アプリのリソース使用量が前記OSにより前記メモリに格納されるようになっており、
前記監視アプリが、
前記少なくとも一つの第2アプリのリソース使用量を前記第1アプリに問い合わせ、
当該問合せに応答して前記第1アプリにより前記メモリから取得され前記第1アプリから回答されたリソース使用量を表すデータを、いずれかの第2アプリ経由又は非経由で、サーバに送信する、
請求項1に記載の通信モジュール。 - 前記複数のプログラムが、第3アプリとして課金アプリを含み、
前記第1アプリが、第2アプリにより通信インターフェース経由で通信されたデータの量であるデータ通信量を特定し、
前記課金アプリが、前記特定されたデータ通信量に基づいて、通信モジュールの使用に関する課金額を決定する、
請求項1に記載の通信モジュール。 - 異なる複数種類の通信インターフェース規格に対応した複数の通信インターフェースを有する通信モジュールと、
サーバと
を備え、
前記通信モジュールが、OS(Operating System)と、当該OS上で実行される第1アプリと、当該OS上で実行される一つ又は複数の第2アプリとを有し、
前記一つ又は複数の第2アプリのうちの一つ以上の第2アプリの各々は、一つ以上の通信インターフェース規格上での一つ以上の通信プロトコルに従う通信を行うアプリであり、且つ、任意にインストールされ任意にアンインストール可能なアプリであり、
前記第1アプリは、前記OSと前記一つ又は複数の第2アプリとの間のミドルウェアとしてのアプリであり、
第1の第2アプリが、当該第1の第2アプリに対応した通信プロトコルに従う通信が行われる通信インターフェース規格に対応した通信インターフェース経由で、当該通信インターフェースに接続されている機器からデータを受信し、
前記第1の第2アプリそれ自体又は別の第2アプリである第2の第2アプリが、当該第2の第2アプリに対応した通信プロトコルに従う通信が行われる通信インターフェース規格に対応した通信インターフェース経由で、前記サーバにデータを送信する、
通信システム。 - 前記第2の第2アプリから送信されるデータが、第2アプリにより通信インターフェース経由で通信されたデータの量であるデータ通信量を含み当該第2アプリの使用履歴であるアプリ使用履歴を表すデータを含み、
前記サーバが、前記第2の第2アプリからのデータから特定される前記アプリ使用履歴に基づいて、前記通信モジュールの使用に関する課金額を決定する、
請求項10に記載の通信システム。 - 前記アプリ使用履歴は、第2アプリと当該第2アプリのアクティベート時刻とを表す情報を含む、
請求項11に記載の通信システム。 - 前記通信モジュールが、所定の通信網に対応し加入者識別情報を格納したカードを有しており、
前記第2の第2アプリが、前記カード内の加入者識別情報を含むデータを、前記第1アプリ経由で設定された通信タイミングで、前記サーバに送信する、
請求項11に記載の通信システム。 - 前記サーバが、前記決定された課金額が反映された料金を前記所定の通信網を管理する通信事業者が請求可能にするために、前記決定された課金額を表す情報を、当該通信事業者宛に送信する、
請求項13に記載の通信システム。 - 前記通信モジュールとして、少なくとも第1の通信モジュールと第2の通信モジュールとがあり、
前記サーバが、前記第1の通信モジュールのアプリ利用履歴が表す或る第2アプリのアクティベート時刻と、前記第2の通信モジュールのアプリ使用履歴が表す同一の第2アプリのアクティベート時刻とを基に、前記第1の通信モジュールに関する第1の課金額と前記第2の通信モジュールに関する第2の課金額とを決定する、
請求項11に記載の通信システム。 - 前記第1の課金額のうち前記或る第2アプリの使用に関わる部分の料金と、前記第2の課金額のうち前記同一の第2アプリの使用に関わる部分の料金とのうち、当該第2アプリのアクティベート時刻が早い方の料金が安い、
請求項15に記載の通信システム。 - 前記サーバは、決定された課金額の支払期限までの支払が無ければ、当該課金額が決定された通信モジュールの全部又は一部の使用を制限する、
請求項11に記載の通信システム。 - 前記通信モジュールが、複数のリージョンに属する複数の通信網の各々について当該通信網の加入者識別情報を格納したカードを有しており、
前記通信モジュールにおけるいずれかのアプリが、当該通信モジュールが存在するリージョンを特定し、
当該特定されたリージョンが所定のリージョンの場合、前記通信モジュールにおけるいずれかのアプリが、当該所定のリージョンに属する通信網に対応した加入者識別情報を用いた通信を制限する、
請求項10に記載の通信システム。 - 前記サーバとして、複数の通信網が属する複数のリージョンに属する複数のサーバがあり、
前記通信モジュールが、前記複数の通信網の各々について当該通信網の加入者識別情報を格納したカードを有しており、
前記通信モジュールが存在するリージョンに属するサーバが、
当該通信モジュールの通信が許可されているリージョンである許可リージョンを特定し、
当該許可リージョンに、前記通信モジュールが存在するリージョンが該当しない場合、当該リージョンに属する通信網に対応した加入者識別情報を用いた通信を制限する、
請求項10に記載の通信システム。 - 異なる複数種類の通信インターフェース規格に対応した複数の通信インターフェースと、OS(Operating System)と、当該OS上で実行される第1アプリとを有する通信モジュールに、通信に使用される通信インターフェース規格に対応し当該OS上で実行され任意にアンインストール可能な第2アプリをインストールし、
前記OSと前記第2アプリとの間のミドルウェアとしてのアプリである第1アプリ経由で前記第2アプリについて設定された通信タイミングで、当該第2アプリが、当該第2アプリに対応した通信インターフェース規格上での通信プロトコルに従う通信を行う、
通信方法。
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2019/049066 WO2021117251A1 (ja) | 2019-12-13 | 2019-12-13 | 通信モジュール、通信システム及び通信方法 |
CN201980102858.XA CN114787786A (zh) | 2019-12-13 | 2019-12-13 | 通信模块、通信***和通信方法 |
US17/784,716 US20230021036A1 (en) | 2019-12-13 | 2019-12-13 | Communication Module, Communication System, and Communication Method |
JP2020517599A JP6746826B1 (ja) | 2019-12-13 | 2019-12-13 | 通信モジュール、通信システム及び通信方法 |
JP2020133292A JP7330929B2 (ja) | 2019-12-13 | 2020-08-05 | 通信モジュール、通信システム及び通信方法 |
JP2022171755A JP7513678B2 (ja) | 2019-12-13 | 2022-10-26 | 通信モジュール、通信システム及び通信方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2019/049066 WO2021117251A1 (ja) | 2019-12-13 | 2019-12-13 | 通信モジュール、通信システム及び通信方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2021117251A1 true WO2021117251A1 (ja) | 2021-06-17 |
Family
ID=72146304
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2019/049066 WO2021117251A1 (ja) | 2019-12-13 | 2019-12-13 | 通信モジュール、通信システム及び通信方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230021036A1 (ja) |
JP (3) | JP6746826B1 (ja) |
CN (1) | CN114787786A (ja) |
WO (1) | WO2021117251A1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2023091541A (ja) * | 2021-12-20 | 2023-06-30 | 株式会社日立産機システム | データ共有装置、通信システム、通信方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019001107A (ja) * | 2017-06-16 | 2019-01-10 | キヤノン株式会社 | 印刷制御装置、制御方法、プログラム |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2345661A1 (en) * | 1998-10-02 | 2000-04-13 | International Business Machines Corporation | Conversational browser and conversational systems |
JP2003242415A (ja) * | 2002-02-18 | 2003-08-29 | Dainippon Printing Co Ltd | ソフトウェア課金管理システムおよび方法 |
JP2005223788A (ja) * | 2004-02-09 | 2005-08-18 | Matsushita Electric Ind Co Ltd | ソフトウェア無線機及びソフトウェア無線機のソフトウェアダウンロード方法 |
CN104253840B (zh) * | 2013-06-28 | 2017-12-12 | ***股份有限公司 | 用于支持多种类型安全载体之间通信的装置及其通信方法 |
CN106604269A (zh) * | 2016-11-30 | 2017-04-26 | 努比亚技术有限公司 | 一种移动终端网络通信的方法和*** |
JP6612826B2 (ja) * | 2017-09-29 | 2019-11-27 | 株式会社日立製作所 | コンテナ管理装置、コンテナ管理方法、及びコンテナ管理プログラム |
US11067968B2 (en) * | 2017-11-03 | 2021-07-20 | Honeywell International Inc. | IIOT (industrial internet of things) communications interface |
-
2019
- 2019-12-13 JP JP2020517599A patent/JP6746826B1/ja active Active
- 2019-12-13 CN CN201980102858.XA patent/CN114787786A/zh active Pending
- 2019-12-13 US US17/784,716 patent/US20230021036A1/en active Pending
- 2019-12-13 WO PCT/JP2019/049066 patent/WO2021117251A1/ja active Application Filing
-
2020
- 2020-08-05 JP JP2020133292A patent/JP7330929B2/ja active Active
-
2022
- 2022-10-26 JP JP2022171755A patent/JP7513678B2/ja active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019001107A (ja) * | 2017-06-16 | 2019-01-10 | キヤノン株式会社 | 印刷制御装置、制御方法、プログラム |
Non-Patent Citations (1)
Title |
---|
NAKAZAWA, JIN, TOKUDA, HIDEYUKI: "A pluggable S2S communication middleware for home ubiquitous computing", IPSJ JOURNAL, vol. 44, 15 July 2003 (2003-07-15), pages 119 - 130 * |
Also Published As
Publication number | Publication date |
---|---|
US20230021036A1 (en) | 2023-01-19 |
JPWO2021117251A1 (ja) | 2021-12-09 |
JP7330929B2 (ja) | 2023-08-22 |
JP6746826B1 (ja) | 2020-08-26 |
CN114787786A (zh) | 2022-07-22 |
JP7513678B2 (ja) | 2024-07-09 |
JP2023011738A (ja) | 2023-01-24 |
JP2021096822A (ja) | 2021-06-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111279320B (zh) | 实现微服务配置和管理的api储存库 | |
US10341468B2 (en) | System and method for managing communications between a portable data terminal and a server | |
US9928041B2 (en) | Managing a software appliance | |
US8935687B2 (en) | Incrementally updating a software appliance | |
US8458658B2 (en) | Methods and systems for dynamically building a software appliance | |
US8924920B2 (en) | Providing a software appliance based on a role | |
US20170201589A1 (en) | System and process for managing network communications | |
US9032367B2 (en) | Providing a demo appliance and migrating the demo appliance to a production appliance | |
CN101727449A (zh) | 利用远程应用处理本地文件的***和方法 | |
CN110149409B (zh) | 云主机元数据服务管理方法、***、设备及存储介质 | |
US20160191411A1 (en) | Cloud service system and method | |
US20140006815A1 (en) | Power management control of remote servers | |
US20120226740A1 (en) | System and method to provide remote device management for mobile virtualized platforms | |
JP2021502732A (ja) | ゲートウェイ管理コンソールにアクセスするためのコンピュータ処理方法、装置、システム、およびプログラム | |
US20220311661A1 (en) | System and method for automated information technology services management | |
KR20160136489A (ko) | 클라우드 서비스를 위한 가상화 기반 자원 관리 방법 | |
US8984579B2 (en) | Evaluation systems and methods for coordinating software agents | |
US20080071891A1 (en) | Signaling partial service configuration changes in appnets | |
JP7513678B2 (ja) | 通信モジュール、通信システム及び通信方法 | |
US20080068381A1 (en) | Using network access port linkages for data structure update decisions | |
KR20120066399A (ko) | 휴대 단말에서의 레거시 usb 장치 서비스 시스템 및 그 방법 | |
JP6915342B2 (ja) | 会計情報システム及び会計情報システムの設定方法 | |
US10049190B1 (en) | Method and apparatus for remotely managing a resource at a computer | |
KR100741369B1 (ko) | 컴퓨터 원격 제어 방법 | |
JP2011248495A (ja) | アプリケーションダウンロード方法、及びそのシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
ENP | Entry into the national phase |
Ref document number: 2020517599 Country of ref document: JP Kind code of ref document: A |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 19955648 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 19955648 Country of ref document: EP Kind code of ref document: A1 |