WO2018092226A1 - コンピュータシステム、api提供方法及びプログラム - Google Patents

コンピュータシステム、api提供方法及びプログラム Download PDF

Info

Publication number
WO2018092226A1
WO2018092226A1 PCT/JP2016/084028 JP2016084028W WO2018092226A1 WO 2018092226 A1 WO2018092226 A1 WO 2018092226A1 JP 2016084028 W JP2016084028 W JP 2016084028W WO 2018092226 A1 WO2018092226 A1 WO 2018092226A1
Authority
WO
WIPO (PCT)
Prior art keywords
computer
api
sensor data
module
optimal
Prior art date
Application number
PCT/JP2016/084028
Other languages
English (en)
French (fr)
Inventor
俊二 菅谷
Original Assignee
株式会社オプティム
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社オプティム filed Critical 株式会社オプティム
Priority to US15/771,555 priority Critical patent/US10623578B2/en
Priority to PCT/JP2016/084028 priority patent/WO2018092226A1/ja
Priority to JP2018525637A priority patent/JP6404529B1/ja
Publication of WO2018092226A1 publication Critical patent/WO2018092226A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M7/00Arrangements for interconnection between switching centres
    • H04M7/0012Details of application programming interfaces [API] for telephone networks; Arrangements which combine a telephonic communication equipment and a computer, i.e. computer telephony integration [CPI] arrangements
    • H04M7/0021Details of Application Programming Interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5055Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering software capabilities, i.e. software resources associated or available to the machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W88/00Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
    • H04W88/18Service support devices; Network management devices

Definitions

  • the present invention relates to a computer system using cloud computing, an API providing method, and a program.
  • an API Application Programming Interface
  • an application that performs processing by exchanging between an edge device and a computer, performs various calculations.
  • Non-Patent Document 1 a configuration is disclosed in which an information system builder selects an API corresponding to data in advance, and this API executes a necessary process (see Non-Patent Document 1). ).
  • Non-Patent Document 1 the information system builder has to select an API to be executed by the system. Therefore, when there are a plurality of API types, an appropriate API cannot always be selected. In particular, since a computer that provides an API is different for each company, it is not easy to select an appropriate API in consideration of other computers.
  • an edge device if an edge device is determined, sensor data to be acquired is also determined, and therefore, attention has been paid to the fact that an optimum API may be selected based on the sensor data.
  • attention is paid to the point that an API may be determined by a combination of acquired sensor data.
  • An object of the present invention is to provide a computer system, an API providing method, and a program that make it easy to select an appropriate API.
  • the present invention provides the following solutions.
  • the present invention provides sensor data acquisition means for acquiring sensor data from an edge device; API selection means for selecting an optimal computer API according to the acquired sensor data; Calculation control means for controlling the computer to calculate using the API of the selected computer; A calculation result providing means for providing the calculated result; A computer system is provided.
  • a computer system acquires sensor data from an edge device, selects an optimal computer API according to the acquired sensor data, and uses the selected computer API to calculate the computer. And the calculation result is provided.
  • the present invention is a computer system category, but also in other categories such as an API providing method and program, the same actions and effects according to the category are exhibited.
  • FIG. 1 is a diagram showing an overview of an API providing system 1.
  • FIG. 2 is an overall configuration diagram of the API providing system 1.
  • FIG. 3 is a functional block diagram of the computer 10, the edge device 100, the user terminal 200, and the computer 300.
  • FIG. 4 is a flowchart showing a standard acceptance process executed by the computer 10 and the user terminal 200.
  • FIG. 5 is a flowchart showing sensor data acquisition processing executed by the computer 10 and the edge device 100.
  • FIG. 6 is a flowchart showing an API selection process executed by the computer 10.
  • FIG. 7 is a flowchart showing a recommendation process executed by the computer 10 and the user terminal 200.
  • FIG. 8 is a flowchart showing calculation result provision processing executed by the computer 10, the user terminal 200, and the computer 300.
  • FIG. 9 is a diagram illustrating an example of the reference database.
  • FIG. 10 is a diagram illustrating an example of an API database.
  • FIG. 11 is a diagram illustrating an example of the recommended comment screen 400.
  • FIG. 12 is a diagram illustrating an example of the recommended comment screen 500.
  • FIG. 1 is a diagram for explaining an overview of an API providing system 1 which is a preferred embodiment of the present invention.
  • the API providing system 1 includes a computer 10, an edge device (network camera 100a, drone 100b, sensor device 100c) 100, a user terminal 200, and a computer 300.
  • the computer 10 is a computing device connected to the edge device 100, the user terminal 200, and the computer 300 so that data communication is possible.
  • the edge device 100 is a network device connected to the computer 10 so that data communication is possible.
  • the edge device 100 is, for example, a wearable terminal such as a smart glass or a head-mounted display, an unmanned aircraft such as a drone, an imaging device that captures an image such as a moving image or a still image, or an environment such as various spatial information or time information It is a sensor device for detecting data and other articles.
  • the user terminal 200 is a terminal device connected to the computer 10 so that data communication is possible.
  • the user terminal 200 is, for example, an electronic product such as a netbook terminal, a slate terminal, an electronic book terminal, and a portable music player, a wearable terminal, and the like in addition to a mobile phone, a portable information terminal, a tablet terminal, and a personal computer.
  • the computer 300 is a computing device connected to the computer 10 so that data communication is possible.
  • the computer 300 stores the API and executes the calculation.
  • the number of the computer 10, the edge device 100, the user terminal 200, and the computer 300 is not restricted to the number shown in FIG. 1, It can change suitably.
  • the computer 10, the edge device 100, the user terminal 200, or the computer 300 is not limited to a real device, and may be a virtual device. Each process described below may be realized by any one or a combination of the computer 10, the edge device 100, the user terminal 200, and the computer 300.
  • the edge device 100 acquires sensor data by performing acquisition of environmental data, image capturing, and the like (step S01).
  • the sensor data means environmental data, image data, etc. acquired by the edge device 100.
  • the edge device 100 acquires environmental data using various sensors.
  • the edge device 100 captures an image with an imaging device and acquires image data.
  • the edge device 100 transmits the acquired sensor data to the computer 10 (step S02).
  • the computer 10 receives sensor data.
  • the computer 10 selects the optimal API of the computer 300 according to the received sensor data (step S03).
  • the computer 10 acquires sensor data by receiving the sensor data.
  • the computer 10 refers to a database in which an identifier for identifying the sensor data such as the type and name of the sensor data is associated with the API of the optimum computer 300, so that the optimum computer Select 300 APIs.
  • the computer 10 acquires a plurality of sensor data from one edge device 100 or acquires sensor data from each of the plurality of edge devices 100, the computer 10 combines the acquired sensor data with the optimum computer 300.
  • the optimum API of the computer 300 is selected by referring to the database associated with the API.
  • the computer 10 receives in advance a criterion (for example, usage fee, processing speed, user evaluation, security safety, number of API usage, etc.) for selecting an optimal API of the computer 300 from the user.
  • the optimal API of the computer 300 may be selected based on the sensor data.
  • the computer 10 may select an optimal API of the computer 300 based on at least one of the above-described criteria and sensor data.
  • the computer 10 transmits API data (an identifier such as an API name, an identifier such as the name of the computer 300 and an identifier such as a provider name) that is data related to the API of the selected optimal computer 300 to the user terminal 200. Therefore, this API may be recommended to the user.
  • the user terminal 200 recommends the API of the optimal computer 300 according to the sensor data to the user by displaying a recommendation screen that recommends the API based on the API data.
  • the computer 10 transmits to the computer 300 a calculation instruction for calculation using the selected API so that the computer 300 calculates using the API of the selected computer 300 (step S04).
  • the computer 300 receives a calculation instruction.
  • the computer 300 performs necessary calculations based on this instruction (step S05).
  • the computer 300 transmits a calculation result, which is a result calculated based on the calculation instruction, to the computer 10 as calculation result data (step S06).
  • the computer 10 receives the calculation result data and acquires the calculation result data.
  • the computer 10 provides the calculation result by transmitting the acquired calculation result data to the user terminal 200 (step S07).
  • the user terminal 200 receives the provided calculation result and displays the calculation result based on the calculation result (step S08).
  • FIG. 2 is a diagram showing a system configuration of the API providing system 1 which is a preferred embodiment of the present invention.
  • the API providing system 1 includes a computer 10, an edge device (network camera 100a, drone 100b, sensor device 100c) 100, a user terminal 200, a computer 300, a public line network (Internet network, third and fourth generation communication network, etc.) It consists of five.
  • the number of the computer 10, the edge device 100, the user terminal 200, and the computer 300 is not restricted to the number shown in FIG. 2, It can change suitably.
  • the computer 10, the edge device 100, the user terminal 200, or the computer 300 is not limited to a real device, and may be a virtual device. Each process described below may be realized by any one or a combination of the computer 10, the edge device 100, the user terminal 200, and the computer 300.
  • the type of the edge device 100 is not limited to the example described above, and can be changed as appropriate.
  • the computer 10 is the above-described computing device having the functions described later.
  • the edge device 100 is the above-described network device having the functions described later.
  • the user terminal 200 is the above-described terminal device having the functions described later.
  • the computer 300 is the above-described computing device having the functions described later.
  • FIG. 3 is a functional block diagram of the computer 10, the edge device 100, the user terminal 200, and the computer 300.
  • the computer 10 includes a CPU (Central Processing Unit), a RAM (Random Access Memory), a ROM (Read Only Memory), and the like as the control unit 11, and can communicate with other devices (cameras and sensors) as the communication unit 12. For example, a device compatible with WiFi (Wireless Fidelity) compliant with IEEE802.11.
  • the computer 10 also includes a data storage unit such as a hard disk, a semiconductor memory, a recording medium, or a memory card as the storage unit 13.
  • the storage unit 13 stores various databases described later.
  • the computer 10 includes, as the processing unit 14, a computer 300 and a device for executing various processes such as API selection.
  • the control unit 11 when the control unit 11 reads a predetermined program, in cooperation with the communication unit 12, the reference data receiving module 20, the sensor data receiving module 21, the recommended comment transmitting module 22, the used API receiving module 23, the calculation An instruction transmission module 24, a calculation result receiving module 25, and a calculation result providing module 26 are realized. Further, in the computer 10, the control unit 11 reads a predetermined program, thereby realizing the storage module 30 in cooperation with the storage unit 13. In the computer 10, the control unit 11 reads a predetermined program to realize the sensor data determination module 40, the reference determination module 41, the API selection module 42, and the recommended comment creation module 43 in cooperation with the processing unit 14. To do.
  • the edge device 100 includes a CPU, RAM, ROM, and the like as the control unit 110, and a device for enabling communication with other devices as the communication unit 120.
  • the edge device 100 includes a device for acquiring environment data and image data as the acquisition unit 140.
  • control unit 110 reads a predetermined program, thereby realizing the sensor data transmission module 150 in cooperation with the communication unit 120. Further, in the edge device 100, the control unit 110 reads a predetermined program, thereby realizing the sensor data acquisition module 160 and the device recognition module 161 in cooperation with the acquisition unit 140.
  • the user terminal 200 includes a CPU, RAM, ROM, and the like as the control unit 210, and a device for enabling communication with other devices as the communication unit 220.
  • the user terminal 200 includes, as the input / output unit 240, a display unit that outputs and displays data and images controlled by the control unit 210, a touch panel that accepts input, a keyboard, an input unit such as a mouse, and the like.
  • the control unit 210 when the control unit 210 reads a predetermined program, the reference data transmission module 250, the recommended comment reception module 251, the used API transmission module 252, and the calculation result reception module 253 are cooperated with the communication unit 220. Realize. In the user terminal 200, the control unit 210 reads a predetermined program, thereby realizing the input receiving module 260, the rank setting module 261, and the display module 262 in cooperation with the input / output unit 240.
  • the computer 300 includes a CPU, RAM, ROM, and the like as the control unit 310, and a device for enabling communication with other devices as the communication unit 320.
  • the calculation unit 340 includes a device for executing necessary calculations.
  • the control unit 310 when the control unit 310 reads a predetermined program, the calculation instruction reception module 350 and the calculation result transmission module 351 are realized in cooperation with the communication unit 320. In the computer 300, the control unit 310 reads a predetermined program, thereby realizing the calculation module 360 in cooperation with the calculation unit 340.
  • FIG. 4 is a diagram illustrating a flowchart of the reference reception process executed by the computer 10 and the user terminal 200. The processing executed by the modules of each device described above will be described together with this processing.
  • the input receiving module 260 receives a reference input from the user when selecting the optimum API of the computer 300 (step S10).
  • the input reception module 260 receives at least one input of a usage fee, a processing speed, user evaluation, security safety, and the number of APIs used as the reference.
  • the input receiving module 260 may receive each criterion itself, or may receive input of specific numerical values and information of the above-described criterion.
  • the usage fee is an amount necessary for using the API, which means an amount necessary for a predetermined number of times of use and an amount necessary for a predetermined period of time.
  • the processing speed means the number of instructions that can be processed per unit time of the computer 300 and the speed at which the computer 300 executes various processes.
  • the user evaluation means an evaluation made by itself or another user with respect to the API of each computer 300.
  • the security safety means the security level of the security of the computer 300 or API, and means evaluation of information leakage or other security robustness in use.
  • the number of APIs used means the number of people who actually use the APIs.
  • the input receiving module 260 receives the input of the priority order with respect to the received reference (step S11).
  • the order setting module 261 sets a priority order as a reference based on the priority order received (step S12).
  • step S12 when the order setting module 261 receives one reference, the order setting module 261 sets a number as the priority order for the one reference. Specifically, “1” is set for this one reference.
  • the rank setting module 261 sets a number as a priority for each of the plurality of standards. Specifically, “1”, “2”, “3”,... Are set in descending order of priority.
  • the order setting module 261 sets numbers in descending order of priority.
  • the reference data transmission module 250 transmits to the computer 10 the reference data indicating the input standard and the priority order of the reference (step S13).
  • the reference data receiving module 20 receives reference data.
  • the storage module 30 stores a reference database based on the reference data (step S14).
  • the storage module 30 stores the reference that received the input and the numerical value set as the priority order of the reference in association with each other.
  • FIG. 9 is a diagram illustrating an example of the reference database.
  • the storage module 30 stores a reference and a priority in association with each other as a reference database.
  • the storage module 30 stores the reference received in step S11 and the priority received in step S12 in association with each other.
  • the storage module 30 stores “usage fee”, “processing speed”, “user evaluation”, “security safety”, and “number of API usage” as criteria.
  • the storage module 30 stores “1”, “2”, “3”, “4”, and “5” as priorities.
  • “usage fee” and “1” are associated with each other.
  • “processing speed” and “2”, “user evaluation” and “3”, “security safety” and “4”, “number of API usage” and “5”, Each is associated.
  • the storage module 30 may store criteria and priorities other than those described above, and the contents of each item can be changed as appropriate.
  • the storage module 30 may store the reference database for each user, or may store all users together.
  • FIG. 5 is a diagram illustrating a flowchart of sensor data acquisition processing executed by the computer 10 and the edge device 100. The processing executed by the modules of each device described above will be described together with this processing.
  • the sensor data acquisition module 160 acquires sensor data (step S20).
  • the sensor data acquisition module 160 uses the environmental data such as spatial information and time information in the place or space where the sensor data acquisition module 160 is installed, such as sunlight, temperature, humidity, etc. Or image data indicating an image such as a still image is acquired as sensor data.
  • the sensor data acquisition module 160 acquires this sensor data at a predetermined timing (for example, when a predetermined time, a predetermined time interval, or an acquisition instruction from the user terminal 200 is received).
  • the sensor data acquisition module 160 acquires one or a plurality of sensor data.
  • the sensor data acquisition module 160 may acquire one or a plurality of sensor data by one edge device 100, or may acquire one or a plurality of sensor data by a plurality of edge devices 100.
  • the sensor data acquisition module 160 may acquire data other than the data described above as sensor data.
  • the device recognition module 161 recognizes the type of the edge device 100 that has acquired the sensor data this time (step S21). In step S21, the device recognition module 161 determines an identifier for recognizing its type.
  • the identifier recognized by the device recognition module 161 is, for example, an identifier that can uniquely identify the edge device 100 such as its own device number, IP address, manufacturing number, and MAC address.
  • the sensor data transmission module 150 transmits the acquired sensor data and the recognized type of the edge device 100 to the computer 10 as acquisition data (step S22).
  • the sensor data receiving module 21 receives the acquired data.
  • the computer 10 acquires the sensor data and the identifier of the edge device 100 by receiving the acquired data.
  • the above is the sensor data acquisition process.
  • FIG. 6 is a diagram illustrating a flowchart of API selection processing executed by the computer 10. Processing executed by each module described above will be described together with this processing.
  • the sensor data determination module 40 determines the type of the acquired sensor data (step S30). In step S30, the sensor data determination module 40 determines the type of sensor data based on the identifier of the edge device 100 included in the acquired data. Further, when acquiring a plurality of sensor data from one edge device 100 or a plurality of edge devices 100, the sensor data determination module 40 performs data mining or multiple processing on the sensor data in addition to the identifier of the edge device 100. By executing a variable analysis, the type of each sensor data is determined.
  • the reference discriminating module 41 discriminates the reference with the highest priority from the above-described reference database (step S31).
  • the reference determination module 41 determines a reference having the highest priority based on a reference database preset by a user who intends to execute the current calculation.
  • the reference determination module 41 may determine not only the highest priority standard but also a predetermined number of standards in descending order of priority.
  • the API selection module 42 selects the optimal API of the computer 300 according to the determined type of sensor data and the criteria received from the user (step S32). In step S32, the API selection module 42 selects an optimal API of the computer 300 by referring to the API database.
  • FIG. 10 is a diagram illustrating an example of an API database.
  • the storage module 30 stores the name of the type of sensor data, the contents of the reference, the name of the computer 300, and the name of the API in association with each other.
  • “Type” means the type of sensor data acquired by the edge device 100.
  • “Standard” means a standard having the highest priority among the standards received by the user terminal 200.
  • “Computer” means an identifier such as the name and model number of a computing device that executes the calculation.
  • API means an identifier such as a name of an application used for calculation.
  • the API database associates each standard received from the user, the computer 300 that satisfies the conditions of each standard, and the API of the computer 300 for each type.
  • the computer 10 acquires data corresponding to the reference from an external database, a provider's WEB site, or the like, and stores the API of the computer 300, sensor data, and the reference in association with each other based on the acquired data. For example, the computer 10 evaluates the API of the computer 300 designated by another user based on the reference, and associates the API of the computer 300 corresponding to the reference with the sensor data and the reference based on the evaluation.
  • a pair of the API and reference of the computer 300 designated by another user is learned as teacher data, and data is generated.
  • the computer 10 acquires a new reference, a new computer 300 API, new sensor data, and the like, the computer 10 stores the data in association with the API of the computer 300 corresponding to the reference based on the learned data. .
  • each item of the API database is not limited to the above-described example, and other items may be added.
  • the reference item may receive other contents from the user and add the received reference.
  • Each item of the API database may be at least one of a usage fee, a processing speed, user evaluation, security safety, and the number of APIs used.
  • the identifier is not limited to the name, and may be other identifiers for identifying sensor data, reference, computer, and API.
  • an API database may be provided for each type of sensor data.
  • the API selection module 42 refers to the API database based on the determined type of sensor data and the determined criterion with the highest priority, and extracts the API of the computer 300 associated therewith. .
  • the API selection module 42 selects the extracted computer 300 and the API of this computer 300. In this way, the API selection module 42 selects the API of the optimal computer 300 based on at least one of the criteria when the user selects the API of the optimal computer 300.
  • the API selection module 42 selects the API of each computer 300 associated with the selected criterion in the API database.
  • the API of the computer 300 is subjected to ranking according to the priority order of the reference, and the API of the computer 300 is selected together with an identifier such as a number or a symbol indicating the ranking from the highest ranking.
  • FIG. 7 is a diagram illustrating a flowchart of recommended processing executed by the computer 10 and the user terminal 200. The processing executed by the modules of each device described above will be described together with this processing.
  • the recommended comment creating module 43 creates a recommended comment related to the API of the optimum computer 300 selected by the API selecting module 42 in the process of step S31 described above (step S40). In step S ⁇ b> 40, the recommended comment creating module 43 creates a recommended comment including the API of the selected computer 300 and the standard that is the reason for selecting the API of the computer 300.
  • the recommended comment transmission module 22 transmits recommended comment data, which is the created recommended comment, to the user terminal 200 (step S41).
  • the recommended comment receiving module 251 receives recommended comment data.
  • the display module 262 displays a recommended comment based on the received recommended comment data (step S42).
  • FIG. 11 is a diagram illustrating an example of the recommended comment screen 400.
  • the display module 262 displays a recommended comment 410 and a use icon 420 as the recommended comment screen 400.
  • the recommended comment 410 displays an API of the selected computer 300 and a standard that is the reason for selecting the API of the computer 300.
  • the use icon 420 receives input from the user, executes billing processing necessary for using the API of the computer 300 displayed in the recommended comment 410, and executes each processing necessary for using the API of the computer 300. To do.
  • FIG. 12 is a diagram illustrating an example of the recommended comment screen 500.
  • the difference from the recommended comment screen 400 in FIG. 11 is that the API of the computer 300 is selected based on a plurality of criteria.
  • the display module 262 displays recommended comments 510 to 514 and a use icon 520 as a recommended comment screen 500.
  • an API of the selected computer 300, a standard that is the reason for selecting the API of the computer 300, and a recommendation level are displayed. This recommendation degree is displayed as a number corresponding to the priority order of the reference received from the user.
  • the recommendation degree of a low number is displayed on the API of the computer 300 selected according to the criterion with high priority.
  • the priority order in the reference database is “usage fee”, “processing speed”, “user evaluation”, “security safety”, “number of API usage”, so select based on the usage fee.
  • the recommended degree of API of the computer 300 selected is 1, the recommended degree of API of the computer 300 selected based on the processing speed is 2, the recommended degree of API of the computer 300 selected based on the user evaluation is 3, and based on security safety
  • the recommended degree of API of the selected computer 300 is displayed as 4, and the recommended degree of API of the selected computer 300 based on the number of APIs used is displayed as 5.
  • the display module 262 accepts selection input to any of the recommended comments 510 to 514.
  • the use icon 520 receives an input from the user, executes an accounting process necessary for using the API of the computer 300 of any of the recommended comments 510 to 514 that have received the selection input, and uses the API of the computer 300. Execute each process necessary for.
  • the display module 262 is not limited to the above-described example, but only the recommended comments of the API of the computer 300 with the highest recommendation level, the predetermined number of comments of the API of the computer 300 in the order of the higher recommendation level, etc.
  • the number of recommended comments to be displayed and the contents thereof can be changed as appropriate. Further, the processing necessary for automatically using the API of the computer 300 displayed as the recommended comment may be executed without displaying the use icon 520.
  • the usage API transmission module 252 transmits usage API data indicating the API of the computer 300 desired by the user to the computer 10 (step S43).
  • the use API transmission module 252 receives the API or selection input of the computer 300 selected by the use icon 420 received by the display module 262, and uses API data indicating the API of the computer 300 selected by the use icon 520. Is transmitted to the computer 10.
  • the use API receiving module 23 receives use API data.
  • FIG. 8 is a flowchart of calculation result providing processing executed by the computer 10, the user terminal 200, and the computer 300. The processing executed by the modules of each device described above will be described together with this processing.
  • the calculation instruction transmission module 24 uses the API of the selected computer 300 to transmit a calculation instruction for instructing the computer 300 to perform calculation and sensor data to the computer 300 (step S50).
  • the computer 10 transmits a calculation instruction to the computer 300, and controls the computer 300 to perform calculation using the API of the selected computer 300.
  • step S50 the calculation instruction transmission module 24 transmits the calculation instruction and the sensor data to the API of the computer 300 selected in step S32 described above or the API of the computer 300 desired by the user in step S43 described above.
  • the calculation instruction and the sensor data are transmitted to the API of the computer 300 selected in step S32 described above, and the priority
  • a calculation instruction and sensor data are transmitted to the API of the computer 300 desired by the user in step S43 described above.
  • the calculation instruction receiving module 350 receives a calculation instruction and sensor data.
  • the calculation module 360 performs necessary calculations on the sensor data based on the calculation instruction (step S51).
  • the calculation module 360 performs necessary calculations using the API included in the calculation instruction.
  • the calculation module 360 executes various calculations such as, for example, crop harvest time prediction, necessity prediction for agricultural chemicals, necessity prediction for watering, and the like.
  • the calculation result transmission module 351 transmits the calculation result data, which is the calculation result, to the computer 10 (step S52).
  • the calculation result receiving module 25 receives calculation result data.
  • the calculation result providing module 26 transmits the received calculation result data to the user terminal 200 (step S53).
  • step S ⁇ b> 53 the computer 10 provides the result calculated by the computer 300 by transmitting the calculation result data to the user terminal 200.
  • the calculation result receiving module 253 receives calculation result data.
  • the display module 262 displays the calculation result based on the received calculation result data.
  • the means and functions described above are realized by a computer (including a CPU, an information processing apparatus, and various terminals) reading and executing a predetermined program.
  • the program is provided, for example, in a form (SaaS: Software as a Service) provided from a computer via a network.
  • the program is provided in a form recorded on a computer-readable recording medium such as a flexible disk, CD (CD-ROM, etc.), DVD (DVD-ROM, DVD-RAM, etc.).
  • the computer reads the program from the recording medium, transfers it to the internal storage device or the external storage device, stores it, and executes it.
  • the program may be recorded in advance in a storage device (recording medium) such as a magnetic disk, an optical disk, or a magneto-optical disk, and provided from the storage device to a computer via a communication line.
  • 1 API providing system, 10 computers, 100 edge devices, 200 user terminals, 300 computers

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】適切なAPIを選択することが容易なコンピュータシステム、API提供方法及びプログラムを提供することを目的とする。 【解決手段】コンピュータシステムは、エッジデバイス100からセンサデータを取得し、前記取得したセンサデータに応じて、最適な計算機300のAPIを選択し、前記選択した計算機300のAPIを利用して、当該計算機300に計算させるように制御し、前記計算した結果を、提供する。また、コンピュータシステムは、前記取得したセンサデータに応じて、使用料金、処理速度、ユーザ評価、セキュリティ安全性、APIの利用数の少なくとも一つに基づいて、最適な計算機300のAPIを選択する。また、コンピュータシステムは、予めユーザから、最適な計算機300のAPIを選択する際の基準を受け付け、当該基準に基づいて、最適な計算機300のAPIを選択する。また、コンピュータシステムは、前記計算機300に計算させるように制御する前に、選択した最適な計算機300のAPIをユーザに推奨する。

Description

コンピュータシステム、API提供方法及びプログラム
 本発明は、クラウドコンピューティングによるコンピュータシステム、API提供方法及びプログラムに関する。
 近年、企業が提供するクラウドソリューションにおいて、エッジデバイス、コンピュータとコンピュータとのやり取りで処理を行うアプリケーションであるAPI(Application Programming Interface)が各種計算を実行している。
 このような企業が提供するクラウドソリューションとして、情報システム構築者がデータに応じたAPIを予め選択しておき、このAPIが、必要な処理を実行する構成が開示されている(非特許文献1参照)。
https://aws.Amazon.com/jp/
 しかしながら、非特許文献1の構成では、システムが実行するAPIを、情報システム構築者が、自ら選択する必要があった。そのため、APIの種類が複数存在する場合、必ずしも適切なAPIを選択できているとは限らなかった。特に、APIを提供する計算機が、企業毎に異なっているため、他の計算機まで考慮して適切なAPIを選択することは容易ではなかった。
 そこで、本発明では、エッジデバイスが決定されれば、取得するセンサデータも決定されるため、このセンサデータによって、最適なAPIを選択すればよいという点に着目した。また、エッジデバイスが複数存在する場合や、一つのエッジデバイスから複数のセンサデータを取得する場合、取得したセンサデータの組み合わせにより、APIを決定すればよい点に着目した。
 本発明の目的は、適切なAPIを選択することが容易なコンピュータシステム、API提供方法及びプログラムを提供することを目的とする。
 本発明では、以下のような解決手段を提供する。
 本発明は、エッジデバイスからセンサデータを取得するセンサデータ取得手段と、
 前記取得したセンサデータに応じて、最適な計算機のAPIを選択するAPI選択手段と、
 前記選択した計算機のAPIを利用して、当該計算機に計算させるように制御する計算制御手段と、
 前記計算した結果を、提供する計算結果提供手段と、
 を備えることを特徴とするコンピュータシステムを提供する。
 本発明によれば、コンピュータシステムは、エッジデバイスからセンサデータを取得し、前記取得したセンサデータに応じて、最適な計算機のAPIを選択し、前記選択した計算機のAPIを利用して、当該計算機に計算させるように制御し、前記計算した結果を、提供する。
 本発明は、コンピュータシステムのカテゴリであるが、API提供方法及びプログラム等の他のカテゴリにおいても、そのカテゴリに応じた同様の作用・効果を発揮する。
 本発明によれば、適切なAPIを選択することが容易なコンピュータシステム、API提供方法及びプログラムを提供することが可能となる。
図1は、API提供システム1の概要を示す図である。 図2は、API提供システム1の全体構成図である。 図3は、コンピュータ10、エッジデバイス100、ユーザ端末200、計算機300の機能ブロック図である。 図4は、コンピュータ10、ユーザ端末200が実行する基準受付処理を示すフローチャートである。 図5は、コンピュータ10、エッジデバイス100が実行するセンサデータ取得処理を示すフローチャートである。 図6は、コンピュータ10が実行するAPI選択処理を示すフローチャートである。 図7は、コンピュータ10、ユーザ端末200が実行する推奨処理を示すフローチャートである。 図8は、コンピュータ10、ユーザ端末200、計算機300が実行する計算結果提供処理を示すフローチャートである。 図9は、基準データベースの一例を示す図である。 図10は、APIデータベースの一例を示す図である。 図11は、推奨コメント画面400の一例を示す図である。 図12は、推奨コメント画面500の一例を示す図である。
 以下、本発明を実施するための最良の形態について図を参照しながら説明する。なお、これはあくまでも一例であって、本発明の技術的範囲はこれに限られるものではない。
 [API提供システム1の概要]
 本発明の好適な実施形態の概要について、図1に基づいて説明する。図1は、本発明の好適な実施形態であるAPI提供システム1の概要を説明するための図である。API提供システム1は、コンピュータ10、エッジデバイス(ネットワークカメラ100a、ドローン100b、センサ装置100c)100、ユーザ端末200、計算機300から構成される。
 コンピュータ10は、エッジデバイス100、ユーザ端末200及び計算機300とデータ通信可能に接続された計算装置である。
 エッジデバイス100は、コンピュータ10とデータ通信可能に接続されたネットワーク装置である。エッジデバイス100は、例えば、スマートグラス、ヘッドマウントディスプレイ等のウェアラブル端末や、ドローン等の無人航空機や、動画や静止画等の画像を撮像する撮像装置や、様々な空間情報又は時間情報等の環境データを検知するセンサ装置や、その他の物品である。
 ユーザ端末200は、コンピュータ10とデータ通信可能に接続された端末装置である。ユーザ端末200は、例えば、携帯電話、携帯情報端末、タブレット端末、パーソナルコンピュータに加え、ネットブック端末、スレート端末、電子書籍端末、携帯型音楽プレーヤ等の電化製品や、ウェアラブル端末等である。
 計算機300は、コンピュータ10とデータ通信可能に接続された計算装置である。計算機300は、APIを記憶し、計算を実行する。
 なお、コンピュータ10、エッジデバイス100、ユーザ端末200及び計算機300の数は、図1で示した数に限らず、適宜変更可能である。また、コンピュータ10、エッジデバイス100、ユーザ端末200又は計算機300は、実在する装置に限らず、仮想的な装置であってもよい。また、後述する各処理は、コンピュータ10、エッジデバイス100、ユーザ端末200又は計算機300のいずれか又は複数の組み合わせにより実現されてもよい。
 エッジデバイス100は、環境データの取得や、画像の撮像等を実行することによりセンサデータを取得する(ステップS01)。センサデータとは、エッジデバイス100が取得する環境データや画像データ等を意味する。エッジデバイス100は、各種センサにより、環境データを取得する。また、エッジデバイス100は、撮像装置により、画像を撮像し、画像データを取得する。
 エッジデバイス100は、コンピュータ10に取得したセンサデータを送信する(ステップS02)。
 コンピュータ10は、センサデータを受信する。コンピュータ10は、受信したセンサデータに応じて、最適な計算機300のAPIを選択する(ステップS03)。コンピュータ10は、センサデータを受信することにより、センサデータを取得する。コンピュータ10は、一のセンサデータを取得した場合、センサデータの種類や名称等のセンサデータを識別する識別子と、最適な計算機300のAPIとを対応付けたデータベースを参照することにより、最適な計算機300のAPIを選択する。また、コンピュータ10は、一のエッジデバイス100から複数のセンサデータを取得する場合や、複数のエッジデバイス100の其々からセンサデータを取得する場合、取得したセンサデータの組み合わせと、最適な計算機300のAPIとを対応付けたデータベースを参照することにより、最適な計算機300のAPIを選択する。
 なお、コンピュータ10は、予めユーザから、最適な計算機300のAPIを選択する際の基準(例えば、使用料金、処理速度、ユーザ評価、セキュリティ安全性、APIの利用数等)を受け付け、この基準と、センサデータとに基づいて、最適な計算機300のAPIを選択してもよい。コンピュータ10は、上述した基準の少なくとも一つと、センサデータとに基づいて、最適な計算機300のAPIを選択してもよい。
 また、コンピュータ10は、選択した最適な計算機300のAPIに関するデータであるAPIデータ(APIの名称等の識別子、計算機300の名称、提供者名等の識別子等)を、ユーザ端末200に送信することにより、ユーザに対してこのAPIを推奨してもよい。このとき、ユーザ端末200は、このAPIデータに基づいて、APIを推奨する推奨画面を表示することにより、センサデータに応じた最適な計算機300のAPIをユーザに推奨する。
 コンピュータ10は、選択した計算機300のAPIを利用して、この計算機300に計算させるように、選択したAPIを利用して計算させる計算指示を計算機300に送信する(ステップS04)。
 計算機300は、計算指示を受信する。計算機300は、この指示に基づいて、必要な計算を実行する(ステップS05)。
 計算機300は、計算指示に基づいて計算した結果である計算結果を計算結果データとして、コンピュータ10に送信する(ステップS06)。コンピュータ10は、計算結果データを受信し、計算結果データを取得する。
 コンピュータ10は、取得した計算結果データを、ユーザ端末200に送信することにより、計算結果を提供する(ステップS07)。
 ユーザ端末200は、提供された計算結果を受信し、この計算結果に基づいた計算結果を表示する(ステップS08)。
 以上が、API提供システム1の概要である。
 [API提供システム1のシステム構成]
 図2に基づいて、本発明の好適な実施形態であるAPI提供システム1のシステム構成について説明する。図2は、本発明の好適な実施形態であるAPI提供システム1のシステム構成を示す図である。API提供システム1は、コンピュータ10、エッジデバイス(ネットワークカメラ100a、ドローン100b、センサ装置100c)100、ユーザ端末200、計算機300、公衆回線網(インターネット網や、第3、第4世代通信網等)5から構成さる。
 なお、コンピュータ10、エッジデバイス100、ユーザ端末200、計算機300の数は、図2で示した数に限らず、適宜変更可能である。また、コンピュータ10、エッジデバイス100、ユーザ端末200又は計算機300は、実在する装置に限らず、仮想的な装置であってもよい。また、後述する各処理は、コンピュータ10、エッジデバイス100、ユーザ端末200又は計算機300のいずれか又は複数の組み合わせにより実現されてもよい。また、エッジデバイス100の種類は、上述した例に限らず、適宜変更可能である。
 コンピュータ10は、後述の機能を備えた上述した計算装置である。
 エッジデバイス100は、後述の機能を備えた上述したネットワーク装置である。
 ユーザ端末200は、後述の機能を備えた上述した端末装置である。
 計算機300は、後述の機能を備えた上述した計算装置である。
 [各機能の説明]
 図3に基づいて、本発明の好適な実施形態であるAPI提供システム1の機能について説明する。図3は、コンピュータ10、エッジデバイス100、ユーザ端末200、計算機300の機能ブロック図を示す図である。
 コンピュータ10は、制御部11として、CPU(Central Processing Unit)、RAM(Random Access Memory)、ROM(Read Only Memory)等を備え、通信部12として、他の機器(カメラ・センサ)と通信可能にするためのデバイス、例えば、IEEE802.11に準拠したWiFi(Wireless Fidelity)対応デバイス等を備える。また、コンピュータ10は、記憶部13として、ハードディスクや半導体メモリ、記録媒体、メモリカード等によるデータのストレージ部を備える。記憶部13には、後述する各種データベースが記憶される。また、コンピュータ10は、処理部14として、計算機300及びAPIの選択等の各種処理を実行するためのデバイス等を備える。
 コンピュータ10において、制御部11が所定のプログラムを読み込むことにより、通信部12と協働して、基準データ受信モジュール20、センサデータ受信モジュール21、推奨コメント送信モジュール22、使用API受信モジュール23、計算指示送信モジュール24、計算結果受信モジュール25、計算結果提供モジュール26を実現する。また、コンピュータ10において、制御部11が所定のプログラムを読み込むことにより、記憶部13と協働して、記憶モジュール30を実現する。また、コンピュータ10において、制御部11が所定のプログラムを読み込むことにより、処理部14と協働して、センサデータ判別モジュール40、基準判別モジュール41、API選択モジュール42、推奨コメント作成モジュール43を実現する。
 エッジデバイス100は、コンピュータ10と同様に、制御部110として、CPU、RAM、ROM等を備え、通信部120として、他の機器と通信可能にするためのデバイスを備える。また、エッジデバイス100は、取得部140として、環境データや画像データを取得するためのデバイス等を備える。
 エッジデバイス100において、制御部110が所定のプログラムを読み込むことにより、通信部120と協働して、センサデータ送信モジュール150を実現する。また、エッジデバイス100において、制御部110が所定のプログラムを読み込むことにより、取得部140と協働して、センサデータ取得モジュール160、デバイス認識モジュール161を実現する。
 ユーザ端末200は、コンピュータ10と同様に、制御部210として、CPU、RAM、ROM等を備え、通信部220として、他の機器と通信可能にするためのデバイスを備える。また、ユーザ端末200は、入出力部240として、制御部210で制御したデータや画像を出力表示する表示部、入力を受け付けるタッチパネルやキーボード、マウス等の入力部等を備える。
 ユーザ端末200において、制御部210が所定のプログラムを読み込むことにより、通信部220と協働して、基準データ送信モジュール250、推奨コメント受信モジュール251、使用API送信モジュール252、計算結果受信モジュール253を実現する。また、ユーザ端末200において、制御部210が所定のプログラムを読み込むことにより、入出力部240と協働して、入力受付モジュール260、順位設定モジュール261、表示モジュール262を実現する。
 計算機300は、コンピュータ10と同様に、制御部310として、CPU、RAM、ROM等を備え、通信部320として、他の機器と通信可能にするためのデバイスを備える。また、計算部340として、必要な計算を実行するためのデバイス等を備える。
 計算機300において、制御部310が所定のプログラムを読み込むことにより、通信部320と協働して、計算指示受信モジュール350、計算結果送信モジュール351を実現する。また、計算機300において、制御部310が所定のプログラムを読み込むことにより、計算部340と協働して、計算モジュール360を実現する。
 [基準受付処理]
 図4に基づいて、API提供システム1が実行する基準受付処理について説明する。図4は、コンピュータ10及びユーザ端末200が実行する基準受付処理のフローチャートを示す図である。上述した各装置のモジュールが実行する処理について、本処理に併せて説明する。
 入力受付モジュール260は、ユーザから、最適な計算機300のAPIを選択する際の基準の入力を受け付ける(ステップS10)。ステップS10において、入力受付モジュール260は、この基準として、使用料金、処理速度、ユーザ評価、セキュリティ安全性、APIの利用数の少なくとも一つの入力を受け付ける。入力受付モジュール260は、各基準そのものを受け付けてもよいし、上述した基準の具体的な数値や情報等の入力を受け付けてもよい。
 利用料金とは、APIの利用に必要な金額であり、これは、所定の回数の使用に必要な金額、所定の期間の使用に必要な金額を意味する。処理速度とは、計算機300の単位時間あたりに処理できる命令数や計算機300が様々な処理を実行する速度を意味する。ユーザ評価とは、自身又は他のユーザが各計算機300のAPIに対して下した評価を意味する。セキュリティ安全性とは、計算機300又はAPIのセキュリティの安全度であり使用に際して、情報漏洩やその他のセキュリティ上の堅牢性における評価を意味する。APIの利用数は、APIを実際に使用する人数を意味する。
 入力受付モジュール260は、受け付けた基準に対して優先順位の入力を受け付ける(ステップS11)。
 順位設定モジュール261は、入力を受け付けた優先順位に基づいて、基準に優先順位を設定する(ステップS12)。ステップS12において、順位設定モジュール261は、一の基準を受け付けた場合、この一の基準に対して、優先順位として、数字を設定する。具体的には、この一の基準に対して、「1」を設定する。また、順位設定モジュール261は、複数の基準を受け付けた場合、この複数の基準の各々に対して、優先順位として数字を設定する。具体的には、優先順位が高い順番に、「1」、「2」、「3」、…、を設定する。順位設定モジュール261は、複数の基準を受け付けた場合、優先順位が高い順に、数字を設定する。
 基準データ送信モジュール250は、入力を受け付けた基準及びこの基準の優先順位を示す基準データを、コンピュータ10に送信する(ステップS13)。
 基準データ受信モジュール20は、基準データを受信する。記憶モジュール30は、基準データに基づいた基準データベースを記憶する(ステップS14)。ステップS14において、記憶モジュール30は、入力を受け付けた基準と、この基準の優先順位として設定された数値とを対応付けて記憶する。
 [基準データベース]
 図9に基づいて、記憶モジュール30が記憶する基準データベースについて説明する。図9は、基準データベースの一例を示す図である。記憶モジュール30は、基準データベースとして、基準と優先順位とを対応付けて記憶する。記憶モジュール30は、ステップS11において受け付けた基準と、ステップS12において受け付けた優先順位とを対応付けて記憶する。図9において、記憶モジュール30は、基準として、「使用料金」、「処理速度」、「ユーザ評価」、「セキュリティ安全性」、「APIの利用数」を記憶する。また、記憶モジュール30は、優先順位として、「1」、「2」、「3」、「4」、「5」を記憶する。記憶モジュール30は、「使用料金」と「1」とが対応付けられている。同様に、「処理速度」と「2」とが、「ユーザ評価」と「3」とが、「セキュリティ安全性」と「4」とが、「APIの利用数」と「5」とが、其々対応付けられている。
 なお、記憶モジュール30は、上述した例以外の基準及び優先順位を記憶してもよく、各項目の内容は適宜変更可能である。また、記憶モジュール30は、基準データベースを、ユーザ毎に、記憶してもよいし、すべてのユーザをまとめて記憶してもよい。
 以上が、基準受付処理である。
 [センサデータ取得処理]
 図5に基づいて、API提供システム1が実行するセンサデータ取得処理について説明する。図5は、コンピュータ10、エッジデバイス100が実行するセンサデータ取得処理のフローチャートを示す図である。上述した各装置のモジュールが実行する処理について、本処理に併せて説明する。
 センサデータ取得モジュール160は、センサデータを取得する(ステップS20)。ステップS20において、センサデータ取得モジュール160は、日照、気温、湿度等の自身が設置される場所又は空間における空間情報や時間情報等の環境データや、自身が有するカメラ等の撮像装置により撮像する動画や静止画等の画像を示す画像データ等をセンサデータとして取得する。センサデータ取得モジュール160は、所定のタイミング(例えば、予め定められた時刻、予め定められた時間間隔、ユーザ端末200からの取得指示を受け付けたとき)により、このセンサデータを取得する。センサデータ取得モジュール160は、一又は複数のセンサデータを取得する。センサデータ取得モジュール160は、一のエッジデバイス100により一又は複数のセンサデータを取得してもよいし、複数のエッジデバイス100により、一又は複数のセンサデータを取得してもよい。なお、センサデータ取得モジュール160は、上述したデータ以外のデータをセンサデータとして取得してもよい。
 デバイス認識モジュール161は、今回センサデータを取得したエッジデバイス100の種別を認識する(ステップS21)。ステップS21において、デバイス認識モジュール161は、自身の種別を認識する識別子を判別する。デバイス認識モジュール161は認識する識別子は、例えば、自身の機器番号、IPアドレス、製造番号、MACアドレス等のエッジデバイス100を一意に特定可能な識別子である。
 センサデータ送信モジュール150は、取得したセンサデータと、認識したエッジデバイス100の種別とを取得データとして、コンピュータ10に送信する(ステップS22)。
 センサデータ受信モジュール21は、取得データを受信する。コンピュータ10は、取得データを受信することにより、センサデータ及びエッジデバイス100の識別子を取得する。
 以上が、センサデータ取得処理である。
 [API選択処理]
 図6に基づいて、API提供システム1が実行するAPI選択処理について説明する。図6は、コンピュータ10が実行するAPI選択処理のフローチャートを示す図である。上述した各モジュールが実行する処理について、本処理に併せて説明する。
 センサデータ判別モジュール40は、取得したセンサデータの種別を判別する(ステップS30)。ステップS30において、センサデータ判別モジュール40は、取得データに含まれるエッジデバイス100の識別子に基づいて、センサデータの種別を判別する。また、センサデータ判別モジュール40は、一のエッジデバイス100又は複数のエッジデバイス100から、複数のセンサデータを取得した場合、エッジデバイス100の識別子に加えて、センサデータに対して、データマイニングや多変量解析を実行することにより、各センサデータの種別を判別する。
 基準判別モジュール41は、上述した基準データベースから、最も優先順位が高い基準を判別する(ステップS31)。ステップS31において、基準判別モジュール41は、今回計算を実行しようとするユーザが予め設定した基準データベースに基づいて、優先順位が最も高い基準を判別する。
 なお、基準判別モジュール41は、優先順位が最も高い基準のみではなく、優先順位が高い順に、所定の数だけ基準を判別してもよい。
 API選択モジュール42は、判別したセンサデータの種別及びユーザから受け付けた基準に応じて、最適な計算機300のAPIを選択する(ステップS32)。ステップS32において、API選択モジュール42は、最適な計算機300のAPIを、APIデータベースを参照することにより選択する。
 [APIデータベース]
 図10に基づいて、記憶モジュール30が記憶するAPIデータベースについて説明する。図10は、APIデータベースの一例を示す図である。記憶モジュール30は、センサデータの種別の名称と、基準の内容と、計算機300の名称と、APIの名称とを対応付けて記憶する。「種別」は、エッジデバイス100が取得したセンサデータの種別を意味する。「基準」は、ユーザ端末200が受け付けた基準のうち、優先順位が最も高い基準を意味する。「計算機」は、計算を実行する計算装置の名称や型番等の識別子を意味する。「API」は、計算に用いるアプリケーションの名称等の識別子を意味する。APIデータベースは、各種別に、ユーザから受け付けた各基準と、各基準の条件を満たす計算機300と、この計算機300のAPIとを対応付けている。コンピュータ10は、外部データベースや提供者のWEBサイト等から、基準に対応するデータを取得し、この取得したデータに基づいて、この計算機300のAPIとセンサデータと基準とを対応付けて記憶する。また、コンピュータ10は、例えば、他のユーザが指定した計算機300のAPIを、基準に基づいて評価し、この評価に基づいて、基準に対応する計算機300のAPIとセンサデータと基準とを対応付けて記憶する。また、他のユーザが指定した計算機300のAPIと基準とのペアを教師データとして学習し、データを生成する。そして、コンピュータ10は、新たな基準、新たな計算機300のAPI、新たなセンサデータ等を取得した際には、学習したデータに基づいて、基準に対応する計算機300のAPIに対応付けて記憶する。
 なお、APIデータベースの各項目は、上述した例に限らず、その他の項目が追加されていてもよい。例えば、基準の項目は、ユーザからその他の内容を受け付け、受け付けた基準を追加してもよい。また、APIデータベースの各項目は、使用料金、処理速度、ユーザ評価、セキュリティ安全性、APIの利用数の少なくとも一つであってもよい。また、名称に限らず、センサデータ、基準、計算機、APIを識別するための他の識別子であってもよい。また、一のセンサデータの種別毎に、APIデータベースを有していてもよい。
 ステップS31において、API選択モジュール42は、判別したセンサデータの種別と、判別した優先順位の最も高い基準とに基づいて、APIデータベースを参照し、これらに対応付けられた計算機300のAPIを抽出する。API選択モジュール42は、抽出した計算機300及びこの計算機300のAPIを選択する。API選択モジュール42は、このようにすることにより、ユーザが最適な計算機300のAPIを選択する際の基準の少なくとも一つに基づいて、最適な計算機300のAPIを選択する。
 なお、基準判別モジュール41は、優先順位が高い順に、所定の数だけ基準を選択する場合、API選択モジュール42は、APIデータベースにおいて、選択された基準に対応付けられた其々の計算機300のAPIを抽出し、基準の優先順位に応じた順位付けをこの計算機300のAPIに行い、順位が高いものから、この順位を示す数字又は記号等の識別子とともに、計算機300のAPIを選択する。
 以上が、API選択処理である。
 [推奨処理]
 図7に基づいて、API提供システム1が実行する推奨処理について説明する。図7は、コンピュータ10、ユーザ端末200が実行する推奨処理のフローチャートを示す図である。上述した各装置のモジュールが実行する処理について、本処理に併せて説明する。
 推奨コメント作成モジュール43は、上述したステップS31の処理においてAPI選択モジュール42が選択した最適な計算機300のAPIに関する推奨コメントを作成する(ステップS40)。ステップS40において、推奨コメント作成モジュール43は、選択した計算機300のAPIと、この計算機300のAPIを選択した理由である基準とを含む推奨コメントを作成する。
 推奨コメント送信モジュール22は、作成した推奨コメントである推奨コメントデータを、ユーザ端末200に送信する(ステップS41)。
 推奨コメント受信モジュール251は、推奨コメントデータを受信する。表示モジュール262は、受信した推奨コメントデータに基づいて、推奨コメントを表示する(ステップS42)。
 図11に基づいて、表示モジュール262が表示する推奨コメントについて説明する。図11は、推奨コメント画面400の一例を示す図である。図11において、表示モジュール262は、推奨コメント画面400として、推奨コメント410及び使用アイコン420を表示する。推奨コメント410には、選択した計算機300のAPIと、この計算機300のAPIを選択した理由となる基準を表示する。使用アイコン420は、ユーザからの入力を受け付け、この推奨コメント410に表示した計算機300のAPIの使用に必要な課金処理を実行し、この計算機300のAPIを使用するために必要な各処理を実行する。
 図12に基づいて、表示モジュール262が表示する推奨コメントについて説明する。図12は、推奨コメント画面500の一例を示す図である。図11における推奨コメント画面400との相違点は、複数の基準に基づいて計算機300のAPIを選択している点である。図12において、表示モジュール262は、推奨コメント画面500として、推奨コメント510~514、使用アイコン520を表示する。推奨コメント510~514には、選択した計算機300のAPIと、この計算機300のAPIを選択した理由となる基準と、推奨度とを表示する。この推奨度は、ユーザから受け付けた基準の優先順位に応じた数字として表示する。すなわち、優先順位が高い基準に応じて選択された計算機300のAPIには、低い数字の推奨度を表示する。図12において、基準データベースにおける優先順位が「使用料金」、「処理速度」、「ユーザ評価」、「セキュリティ安全性」、「APIの利用数」の順であることから、使用料金に基づいて選択した計算機300のAPIの推奨度を1、処理速度に基づいて選択した計算機300のAPIの推奨度を2、ユーザ評価に基づいて選択した計算機300のAPIの推奨度を3、セキュリティ安全性に基づいて選択した計算機300のAPIの推奨度を4、APIの利用数に基づいて選択した計算機300のAPIの推奨度を5として表示する。表示モジュール262は、推奨コメント510~514のいずれかへの選択入力を受け付ける。使用アイコン520は、ユーザからの入力を受け付け、選択入力を受け付けた推奨コメント510~514のいずれかの計算機300のAPIの使用に必要な課金処理を実行し、この計算機300のAPIを使用するために必要な各処理を実行する。
 なお、表示モジュール262は、上述した例に限らず、推奨度が最も高い計算機300のAPIの推奨コメントのみ、推奨度が高い順番に所定の数だけの計算機300のAPIのコメントを表示する等、推奨コメントを表示する数及びその内容は適宜変更可能である。また、使用アイコン520を表示せずに、推奨コメントとして表示した計算機300のAPIを自動的に使用するために必要な処理を実行してもよい。
 使用API送信モジュール252は、ユーザが所望した計算機300のAPIを示す使用APIデータを、コンピュータ10に送信する(ステップS43)。ステップS43において、使用API送信モジュール252は、表示モジュール262が受け付けた使用アイコン420により選択された計算機300のAPI又は選択入力を受け付け、使用アイコン520により選択された計算機300のAPIを示す使用APIデータを、コンピュータ10に送信する。
 使用API受信モジュール23は、使用APIデータを受信する。
 以上が、推奨処理である。
 [計算結果提供処理]
 図8に基づいて、API提供システム1が実行する計算結果提供処理について説明する。図8は、コンピュータ10、ユーザ端末200、計算機300が実行する計算結果提供処理のフローチャートを示す図である。上述した各装置のモジュールが実行する処理について、本処理に併せて説明する。
 計算指示送信モジュール24は、選択した計算機300のAPIを利用して、この計算機300に計算させるように指示する計算指示と、センサデータとを計算機300に送信する(ステップS50)。ステップS50において、コンピュータ10は、計算機300に計算指示を送信することにより、選択した計算機300のAPIを利用して、この計算機300に計算させるように制御する。
 ステップS50において、計算指示送信モジュール24は、上述したステップS32において選択した計算機300のAPI又は上述したステップS43においてユーザが所望した計算機300のAPIに、計算指示と、センサデータとを送信する。これは、例えば、優先順位が最も高い一の計算機300のAPIのみが選択された場合、上述したステップS32において選択した計算機300のAPIに対して計算指示と、センサデータとを送信し、優先順位に応じた複数の計算機300のAPIが選択された場合、上述したステップS43においてユーザが所望した計算機300のAPIに計算指示と、センサデータとを送信する。
 計算指示受信モジュール350は、計算指示と、センサデータとを受信する。計算モジュール360は、計算指示に基づいて、このセンサデータに対して必要な計算を実行する(ステップS51)。ステップS51において、計算モジュール360は、計算指示に含まれるAPIを利用して、必要な計算を実行する。計算モジュール360は、例えば、農作物の収穫時期予測、農薬等の必要性予測、散水等の必要性予測等の各種計算を実行する。
 計算結果送信モジュール351は、計算した結果である計算結果データを、コンピュータ10に送信する(ステップS52)。
 計算結果受信モジュール25は、計算結果データを受信する。計算結果提供モジュール26は、受信した計算結果データを、ユーザ端末200に送信する(ステップS53)。ステップS53において、コンピュータ10は、ユーザ端末200に計算結果データを送信することにより、計算機300が計算した結果を提供する。
 計算結果受信モジュール253は、計算結果データを受信する。表示モジュール262は、受信した計算結果データに基づいて、計算結果を表示する。
 以上が、計算結果提供処理である。
 上述した手段、機能は、コンピュータ(CPU、情報処理装置、各種端末を含む)が、所定のプログラムを読み込んで、実行することによって実現される。プログラムは、例えば、コンピュータからネットワーク経由で提供される(SaaS:ソフトウェア・アズ・ア・サービス)形態で提供される。また、プログラムは、例えば、フレキシブルディスク、CD(CD-ROMなど)、DVD(DVD-ROM、DVD-RAMなど)等のコンピュータ読取可能な記録媒体に記録された形態で提供される。この場合、コンピュータはその記録媒体からプログラムを読み取って内部記憶装置又は外部記憶装置に転送し記憶して実行する。また、そのプログラムを、例えば、磁気ディスク、光ディスク、光磁気ディスク等の記憶装置(記録媒体)に予め記録しておき、その記憶装置から通信回線を介してコンピュータに提供するようにしてもよい。
 以上、本発明の実施形態について説明したが、本発明は上述したこれらの実施形態に限るものではない。また、本発明の実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、本発明の実施形態に記載されたものに限定されるものではない。
 1 API提供システム、10 コンピュータ、100 エッジデバイス、200 ユーザ端末、300 計算機

Claims (6)

  1.  エッジデバイスからセンサデータを取得するセンサデータ取得手段と、
     前記取得したセンサデータに応じて、最適な計算機のAPIを選択するAPI選択手段と、
     前記選択した計算機のAPIを利用して、当該計算機に計算させるように制御する計算制御手段と、
     前記計算した結果を、提供する計算結果提供手段と、
     を備えることを特徴とするコンピュータシステム。
  2.  前記API選択手段は、前記取得したセンサデータに応じて、使用料金、処理速度、ユーザ評価、セキュリティ安全性、APIの利用数の少なくとも一つに基づいて、最適な計算機のAPIを選択する、
     ことを特徴とする請求項1に記載のコンピュータシステム。
  3.  前記API選択手段は、予めユーザから、最適な計算機のAPIを選択する際の基準を受け付け、当該基準に基づいて、最適な計算機のAPIを選択する、
     ことを特徴とする請求項1に記載のコンピュータシステム。
  4.  前記計算制御手段が、前記計算機に計算させるように制御する前に、選択した最適な計算機のAPIをユーザに推奨する推奨手段と、
     を備えることを特徴とする請求項1に記載のコンピュータシステム。
  5.  エッジデバイスからセンサデータを取得するステップと、
     前記取得したセンサデータに応じて、最適な計算機のAPIを選択するステップと、
     前記選択した計算機のAPIを利用して、当該計算機に計算させるように制御するステップと、
     前記計算した結果を、提供するステップと、
     を備えることを特徴とするAPI提供方法。
  6.  コンピュータシステムに、
     エッジデバイスからセンサデータを取得するステップ、
     前記取得したセンサデータに応じて、最適な計算機のAPIを選択するステップ、
     前記選択した計算機のAPIを利用して、当該計算機に計算させるように制御するステップ、
     前記計算した結果を、提供するステップ、
     を実行させるためのプログラム。
PCT/JP2016/084028 2016-11-17 2016-11-17 コンピュータシステム、api提供方法及びプログラム WO2018092226A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US15/771,555 US10623578B2 (en) 2016-11-17 2016-11-17 Computer system, method for providing API, and program
PCT/JP2016/084028 WO2018092226A1 (ja) 2016-11-17 2016-11-17 コンピュータシステム、api提供方法及びプログラム
JP2018525637A JP6404529B1 (ja) 2016-11-17 2016-11-17 コンピュータシステム、api提供方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2016/084028 WO2018092226A1 (ja) 2016-11-17 2016-11-17 コンピュータシステム、api提供方法及びプログラム

Publications (1)

Publication Number Publication Date
WO2018092226A1 true WO2018092226A1 (ja) 2018-05-24

Family

ID=62145295

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2016/084028 WO2018092226A1 (ja) 2016-11-17 2016-11-17 コンピュータシステム、api提供方法及びプログラム

Country Status (3)

Country Link
US (1) US10623578B2 (ja)
JP (1) JP6404529B1 (ja)
WO (1) WO2018092226A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022180841A1 (ja) * 2021-02-26 2022-09-01 株式会社KPMG Ignition Tokyo Apiを利用するためのプログラム、装置、及び方法

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7167762B2 (ja) * 2019-02-15 2022-11-09 株式会社リコー 情報処理システム、情報処理方法、および情報処理装置
US11761798B2 (en) * 2020-03-23 2023-09-19 Canon Kabushiki Kaisha Information processing system, information processing method, recording medium, node device, gateway device, manufacturing system, method of manufacturing product
JP2021153289A (ja) * 2020-03-23 2021-09-30 キヤノン株式会社 情報処理システム、情報処理方法、制御プログラム、記録媒体、ノード装置、ゲートウェイ装置、製造システム、物品の製造方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013114465A (ja) * 2011-11-29 2013-06-10 Zenrin Datacom Co Ltd サービス推奨装置及びサービス推奨方法
JP2014222480A (ja) * 2013-05-14 2014-11-27 株式会社東芝 サービス提供システム、サービス提供方法およびサービス提供管理装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4543930B2 (ja) 2005-01-07 2010-09-15 ソニー株式会社 情報処理装置および方法、並びにプログラム
US9077773B2 (en) * 2011-11-17 2015-07-07 Mashape, Inc. Cloud-based hub for facilitating distribution and consumption of application programming interfaces
US9948572B2 (en) * 2015-10-28 2018-04-17 Verizon Patent And Licensing Inc. Internet of things application framework
US10462262B2 (en) * 2016-01-06 2019-10-29 Northrop Grumman Systems Corporation Middleware abstraction layer (MAL)

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013114465A (ja) * 2011-11-29 2013-06-10 Zenrin Datacom Co Ltd サービス推奨装置及びサービス推奨方法
JP2014222480A (ja) * 2013-05-14 2014-11-27 株式会社東芝 サービス提供システム、サービス提供方法およびサービス提供管理装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
TATJANA SCHEFFLER ET AL., vol. 2013, no. 30, 16 May 2013 (2013-05-16), pages 1 - 6, Retrieved from the Internet <URL:URL:https://ipsj.ixsq.nii.ac.jp/ej/?action=repository_action_common_download&item_id=92398&item_no=l&attribute_id=l&file_no=l> [retrieved on 20170111] *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022180841A1 (ja) * 2021-02-26 2022-09-01 株式会社KPMG Ignition Tokyo Apiを利用するためのプログラム、装置、及び方法
JPWO2022180841A1 (ja) * 2021-02-26 2022-09-01
JP7310043B2 (ja) 2021-02-26 2023-07-18 株式会社KPMG Ignition Tokyo Apiを利用するためのプログラム、装置、及び方法

Also Published As

Publication number Publication date
JP6404529B1 (ja) 2018-10-10
US10623578B2 (en) 2020-04-14
US20190342454A1 (en) 2019-11-07
JPWO2018092226A1 (ja) 2018-11-15

Similar Documents

Publication Publication Date Title
AU2017245374B2 (en) Index configuration for searchable data in network
US20190289199A1 (en) Automatic guided capturing and presentation of images
US20140040259A1 (en) Information processing apparatus and information processing method
JP6404529B1 (ja) コンピュータシステム、api提供方法及びプログラム
US10460258B2 (en) Computer system, and method and program for controlling edge device
US10324987B2 (en) Application search using device capabilities
US9047326B2 (en) Index configuration for searchable data in network
CN106165463A (zh) 选择与地理围栏相关的用户
KR20240013273A (ko) 상호작용형 정보 인터페이스
US20160162482A1 (en) Automated image ranking
WO2022240506A1 (en) Net promoter score uplift for specific verbatim topic derived from user feedback
US20170195129A1 (en) Method and device to control secondary devices
KR20200013164A (ko) 전자 장치, 및 전자 장치의 제어 방법
WO2016189905A1 (ja) 情報処理装置、情報処理方法及びプログラム
US9712653B2 (en) Data transmission device, data transmission method and program for data transmission device
JP6267840B1 (ja) コンピュータシステム、エッジデバイス制御方法及びプログラム
US20200159797A1 (en) Device for generating user profile and system comprising the device
WO2019026166A1 (ja) 作業データ分類システム、作業データ分類方法、およびプログラム
WO2017208351A1 (ja) 撮像画像共有システム、撮像画像共有方法及びプログラム
KR20210152739A (ko) 전자장치 및 그 제어방법
JP2024079332A (ja) 情報提供装置、情報処理システム、情報提供方法、及びプログラム
CN117591638A (zh) 一种问题答复的干预方法、装置、设备及介质

Legal Events

Date Code Title Description
ENP Entry into the national phase

Ref document number: 2018525637

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

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

Country of ref document: EP

Kind code of ref document: A1