WO2015159873A1 - ワークフロー管理装置、ワークフロー管理方法およびワークフロー管理プログラム - Google Patents

ワークフロー管理装置、ワークフロー管理方法およびワークフロー管理プログラム Download PDF

Info

Publication number
WO2015159873A1
WO2015159873A1 PCT/JP2015/061431 JP2015061431W WO2015159873A1 WO 2015159873 A1 WO2015159873 A1 WO 2015159873A1 JP 2015061431 W JP2015061431 W JP 2015061431W WO 2015159873 A1 WO2015159873 A1 WO 2015159873A1
Authority
WO
WIPO (PCT)
Prior art keywords
stage
workflow
information
transition condition
current
Prior art date
Application number
PCT/JP2015/061431
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/304,218 priority Critical patent/US20170039501A1/en
Priority to EP15779716.8A priority patent/EP3133538A4/en
Publication of WO2015159873A1 publication Critical patent/WO2015159873A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • G06Q10/06316Sequencing of tasks or work
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • G06Q10/06311Scheduling, planning or task assignment for a person or group
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/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
    • H04L67/125Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks involving control of end-device applications over a network

Definitions

  • the present invention relates to data processing technology, and more particularly to workflow management technology.
  • the present inventor has proposed a technique for facilitating comprehensive energy management in an organization by recording changes in energy flow and stock in organizations of various granularities, such as households and business establishments, using energy bookkeeping (for example, Patent Document 1).
  • the energy event recording device of Patent Document 1 may be implemented as a sensor device.
  • each of a plurality of sensor devices operates autonomously. Therefore, in order to integrate a plurality of sensor devices and provide one service, it may be necessary to perform synchronous control of processing.
  • interrupt control and marker detection control for example, frame synchronization and timing synchronization
  • the amount of description for defining the control content increases and the description becomes complicated as the number of devices subject to synchronization control increases.
  • the present invention has been made in view of the above problems, and its main object is to control a plurality of devices in an environment where a plurality of devices connected to a network operate autonomously, and to provide one service as a whole. It is to provide a technique for efficiently realizing the above.
  • a workflow management apparatus maintains a transition condition for maintaining a transition condition from each stage to the next stage for a workflow that controls the operation of an external device over a plurality of stages.
  • the stage information holding unit that holds the stage information indicating the current stage of the workflow, and the external device to execute the operation according to the current stage by notifying the external device of the current stage of the workflow
  • a stage notification unit that updates the stage information so that the stage of the workflow is advanced when the external stage is notified that the operation of the current stage is completed and the current stage transition condition is satisfied .
  • the stage updating unit determines that the workflow is in the third stage next to the first stage when the transition condition of the first stage is satisfied but the transition condition of the second stage is not satisfied. And the stage information is updated to indicate that it is also the second stage.
  • Another aspect of the present invention is also a workflow management device.
  • This device has a transition condition holding unit that holds a transition condition from each stage to the next stage, and stage information that indicates which stage the workflow is currently in, for a workflow that controls the operation of an external device over a plurality of stages.
  • a stage information holding unit that holds the current stage of the workflow, a stage notification unit that causes the external device to execute an operation corresponding to the current stage by notifying the external device of the workflow, and an operation of the current stage from the external device
  • a stage updating unit that updates the stage information so that the stage of the workflow is advanced when the completion notification is notified and the current stage transition condition is satisfied.
  • the stage update unit Indicates that the workflow has finished the first stage and is also the second stage when the transition condition of the first stage is satisfied but the transition condition of the second stage is not satisfied
  • the stage information is updated, and the workflow is shifted to the third stage when the transition condition of the second stage is satisfied.
  • Still another aspect of the present invention is a workflow management method.
  • the current stage of the workflow is set to the external device according to stage information indicating which stage the workflow currently stored in a predetermined storage area is.
  • stage information indicating which stage the workflow currently stored in a predetermined storage area is.
  • the computer executes the step of updating the stage information so as to advance the stage of the workflow when the designated transition condition is satisfied.
  • the first stage and the second stage cannot be compared, and the third stage can be executed next to the first stage, but the third stage is the second stage. If the comparison is not possible, the updating step is the third stage after the first stage when the transition condition of the first stage is satisfied and the transition condition of the second stage is not satisfied.
  • the stage information is updated to indicate that it is also the second stage.
  • any combination of the above-described constituent elements and a representation of the present invention converted between a method, a system, a program, a recording medium storing the program, and the like are also effective as an aspect of the present invention.
  • the present invention it is possible to control a plurality of devices in an environment where a plurality of devices connected to the network operate autonomously and to efficiently realize one service as a whole.
  • a workflow-based system design in which a plurality of tasks are arranged in a partial order relationship will be described. Whether it is a project or a routine task, a workflow in the sense of an ordered set of tasks is the basic unit of recognition for systematically organizing, understanding, and executing some work. In the workflow, a resource for actually performing the task is allocated to each task constituting the workflow, thereby realizing a series of work and service.
  • the resource that actually performs the task may be, for example, a person, a program, a device, or the like, and is also referred to as an “agent” below.
  • agent an agent that is connected to a network such as the Internet and can communicate with an external device is also referred to as an “IOT (Internet Of Things) device”.
  • IOT Internet Of Things
  • a method for efficiently managing the parallel work of each agent has been sufficiently proposed so far.
  • the relationship between tasks in a workflow may have a semi-ordered structure rather than a linear order (ie full order).
  • there are multiple tasks that can be executed after a task and often any of these multiple tasks may be executed first.
  • These multiple tasks can be said to be in a parallel relationship, and the execution of each task can be executed in parallel.
  • This parallelism has a different dimension from the parallelism of task execution among a plurality of agents to which the same task is assigned.
  • a task stage When a task defined by a workflow is used as a causal order symbol for controlling the execution order, it is called a “task stage”. It is assumed that the activity of the agent corresponding to each task stage of the workflow is described as a program that performs autonomous operation in each node (for example, various devices such as a sensor on which the agent is mounted). Each node acquires information indicating which task stage it is currently in, and starts an individual agent program corresponding to that task stage. Each agent reports to the workflow side that the processing corresponding to the task stage has been completed, and waits for an instruction for the next task.
  • the function that controls the execution order of tasks by each agent in the real world based on the workflow is called “task manager”.
  • the task manager which can be called a workflow execution engine, notifies the agent which task stage should be executed now. Furthermore, a task completion notification is received from the agent, and the task stage is appropriately advanced. Thus, a data flow for task management occurs between the task manager and the agent.
  • distributed cooperative control controlling individual agents that operate autonomously in a distributed environment to operate cooperatively as a whole is also referred to as “distributed cooperative control”.
  • distributed cooperative control is realized using a workflow.
  • a system in which individual autonomous agents as a whole operate cooperatively by distributed cooperative control is also referred to as an “autonomous distributed cooperative system”.
  • a technique for managing a distributed cooperative workflow between IOT devices connected via a network is proposed.
  • the data flow in the sense of data stream between individual agents is also important. For example, an execution result of a measurement task or calculation task in a certain task stage must be transferred to a calculation task or control task in another task stage that receives the result. Further, such data flow between agents does not need to go through a task manager.
  • the data flow between the task manager and the agent and the data flow between one agent and another agent are realized by using a publish / subscribe (hereinafter also referred to as “PUB-SUB”) scheme.
  • PUB-SUB uses a special agent called a broker to share data between a transmission source and a transmission destination.
  • a sender entity that adds a tag called a topic to data to be passed to the recipient entity and sends the topic-added data to the broker is called a publisher.
  • the entity that registers a data transfer request with a specific topic added to the broker is called a subscriber.
  • the broker distributes data having topics registered by the subscriber to the subscriber.
  • PUB-SUB is a scheme that allows many-to-many transmission of necessary data to a necessary place without a concept such as an address.
  • a system that uses two management brokers for transferring management information related to a task stage between a task manager and an agent and a data broker for transferring data necessary for task execution between a plurality of agents. Propose.
  • the task manager publishes the currently executable task stage name to the management broker.
  • the agent registers the task stage name to be performed in advance in the broker, and when the registered task stage name is published, the agent subscribes the fact from the management broker to perform the task.
  • the agent that has completed the task publishes the task stage completion and necessary management information to the management broker, and publishes data for task execution by other agents to the data broker with the necessary topics attached.
  • the task manager determines whether the task stage can be changed. This is determined by the task transition predicate.
  • the task transition predicate is a program that determines whether or not to move to the next task stage based on task end information or management data received from the agent.
  • a predetermined environmental state temperature, etc.
  • the task manager of this system may implement a task transition predicate that determines that the next stage can be transitioned if half of the sensors complete the measurement (ie task processing) and send the task end information.
  • a task transition predicate that determines the transition of the stage by accepting the task end information indicating that the calculation has been completed may be implemented.
  • branch determination such as transition from a normal workflow to an emergency workflow is also implemented in the task transition predicate.
  • the task manager performs a handshake with an agent in the real world for each task stage.
  • parallelism between task stages is realized by publishing a plurality of task stage names in parallel.
  • a plurality of agents belonging to the same task stage perform tasks in parallel in the real world.
  • the parallel processing between agents does not affect the determination result by the task manager even if the order is changed or there is a delay. This is the same for both human project management and distributed cooperative control using workflow.
  • Case 1 Device management and energy accounting control with sensors:
  • the average temperature and the minimum illuminance are calculated from the data of the plurality of temperature sensors and the plurality of illuminance sensors, and the controller controls the air conditioner and the illumination based on the average temperature and the minimum illuminance.
  • the energy consumption is calculated based on the operating state of the air conditioner and the lighting, and the process of notifying the stakeholder of the calculation result is controlled.
  • Fig. 1 shows task stages for control of Case 1 and resource mapping to each task stage.
  • a plurality of sensors are assigned to the task stage of data collection by sensors (“S” in the figure).
  • resource allocation to each task stage is fixed.
  • FIG. 2 schematically shows data linkage via the broker.
  • the stage broker which is a management broker that mediates the stage management between the task manager and the real-world agent, and the data broker that mediates the data flow between multiple agents, each of the control flow and data flow are PUB -Mediate with SUB scheme.
  • Fig. 2 shows the data flow between multiple agents in a sequence diagram. From the characteristics of the sequence diagram, it seems that there is a context of processing depending on the position (upper and lower relationship) of the arrow, but actually includes processing executed in parallel. For example, the transfer of data from the sensor to the calculation node may be executed in any order. The transfer of calculation results from the calculation nodes 1 and 2 to the controllers 1 and 2 does not depend on the order.
  • the old activity diagram looks similar to the diagram of FIG. 1, but the control mechanism is not formulated.
  • FIG. 3 shows a simplified interior construction project such as an apartment.
  • the task execution resource real world agent
  • the task execution resource is an electrician, a plumber, a floor worker, a wall sticker, and a painter.
  • a plurality of task managers that control the workflow of FIG. 3 are operated in parallel, and each agent performs work in a specific room in accordance with an instruction from each task manager.
  • each agent holds an information terminal such as a PC, a smartphone, or a tablet terminal, and the task manager sends and receives task stage information to and from the information terminal.
  • Each agent when the assigned task in the assigned room is completed, inputs the fact of the completion to the information terminal, and the task manager advances the task stage as appropriate based on the completion notification from the information terminal of each agent.
  • Each agent initiates a task in another room if it is ready to be performed. To be in a state where it can be executed means that the previous task stage has been completed and the task manager has notified the start of a task stage corresponding to a task in another room. In this way, human agents (including information terminals held by humans) start a task upon receiving a stage start ready signal from the task manager.
  • the real-world operating system (hereinafter also referred to as “real-world OS”) considered by the present inventor is based on the task manager functions described so far, based on complex and distributed cooperative interactions of real-world agents. This is a mechanism for managing and executing each workflow.
  • IOE Internet Of Everything
  • various autonomous agents in a distributed environment are required to synchronize and cooperate to provide services designed as a workflow as a whole.
  • the real-world OS becomes a basic platform for designing, implementing, and managing various systems in which a huge number of agents are connected.
  • FIG. 4 shows the vision of the real world OS and schematically shows the control range of the real world OS.
  • the left side of the figure is a virtual area and includes a virtual agent by simulation.
  • the right side of the figure is the real-world agent management area.
  • the task manager is the core engine for agent-based simulation and also the control engine for real-world agents. This enables seamless connection from agent-based modeling in the virtual world to agent computing in the real world.
  • the virtual-world simulated workflow and the program agent are partially replaced with real-world agents (partial implementation)
  • Various design methods for prototyping are possible, and finally an agent-based simulation remains as a dynamic design for managing real-world agents.
  • the following (1) to (7) are assumed as examples of services that the real world OS can provide by executing distributed cooperative control on the IOT agent.
  • (1) As sensoring & control services provide energy sensoring and device control services in HEMS, BEMS, and CEMS, as well as monitoring services and security services in homes, offices, and communities.
  • FIG. 5 shows an IOT device control system 10 according to the embodiment.
  • the IOT device control system 10 is an information processing system that embodies an autonomous distributed cooperative system.
  • the IOT device control system 10 includes an IOT device 11, a workflow management device 12, a stakeholder terminal 13, and a broker 15.
  • the IOT device 11 is a plurality of types of agent devices existing in the real world. Each IOT device 11 is connected to the Internet and operates autonomously. For example, when a stage is notified from the workflow management apparatus 12 via a communication network, an operation corresponding to the stage is executed, and a program (and an MPU for executing the program for executing this operation) is executed. Etc.).
  • the IOT device 11 according to the embodiment includes a sensor device 20, a calculation node 30, a controller 40, and a service device 50.
  • the sensor device 20 is a device including various known sensors. For example, the sensor device 20 detects a surrounding environmental state and outputs information indicating the environmental state. Further, for example, when the surrounding environmental state becomes a specific state, the fact is detected and output.
  • the sensor device 20 according to the embodiment includes a plurality of temperature sensors 22 and a plurality of illuminance sensors 24. For example, it includes several hundred temperature sensors installed in a factory, and several tens of illuminance sensors installed in a room with an office building.
  • the calculation node 30 is an information processing apparatus that executes various calculation processes.
  • the calculation node 30 includes a temperature calculation node 32, an illuminance calculation node 34, and an accounting calculation node 36.
  • the temperature calculation node 32 calculates an average temperature based on the temperatures measured by the plurality of temperature sensors 22, and the illuminance calculation node 34 calculates the minimum illuminance based on the illuminance measured by the plurality of illuminance sensors 24.
  • the accounting calculation node 36 performs a predetermined energy accounting calculation based on the set temperature of the air conditioner and the lighting on / off state. For example, energy consumption, amount of consumption, etc. are calculated, and energy bookkeeping is executed.
  • the service device 50 is a device that provides users with various services in the world of life and industrial society while consuming energy such as electricity and gas, and can be said to be an energy consuming device.
  • the service device 50 includes an air conditioner 52 and a lighting 54.
  • the controller 40 is a control device that controls the operation of the service device 50.
  • the controller 40 includes an air conditioner controller 42 and a lighting controller 44.
  • the air conditioner controller 42 controls the set temperature of the air conditioner, and the lighting controller 44 controls lighting on / off.
  • the workflow management device 12 is an information processing device that embodies the task manager and the real-world OS described in the overview.
  • the workflow management device 12 controls the operations of the plurality of IOT devices 11 in accordance with the transition of task stages (hereinafter simply referred to as “stages”) defined in the workflow.
  • stages the transition of task stages
  • the physical mode of the workflow management apparatus 12 is not limited, and may be, for example, a PC or server, a microcontroller, or a single board computer.
  • the stakeholder terminal 13 is an information terminal operated by a predetermined stakeholder such as a person in charge of a company where the IOT device 11 is installed.
  • the stakeholder terminal 13 acquires energy accounting information as a calculation result by the accounting calculation node 36, and displays it on a display or the like as appropriate.
  • the broker 15 is a device that mediates data transmission / reception between devices according to the PUB-SUB scheme.
  • the broker 15 may be realized by a known message queue product or message-oriented middleware.
  • Each device in FIG. 5 communicates with the broker 15 by a PUB-SUB scheme according to a communication protocol defined by the broker 15 via a communication network such as LAN / WAN / Internet, and transmits / receives data between the devices.
  • the broker 15 includes a stage broker 16 and a data broker 17.
  • the stage broker 16 is the above-described management broker, and mediates transmission / reception of management information regarding the start / end of the stage between the workflow management apparatus 12 and each IOT device 11.
  • the data broker 17 mediates data transmission / reception between the IOT devices 11 or between the IOT device 11 and the stakeholder terminal 13.
  • the IOT device control system 10 what stage the workflow managed by the workflow management device 12 has and what processing the agent should perform in each stage are determined in advance, and the manufacture of the IOT device 11 is performed. To the public. Each IOT device 11 is mounted such that when a specific stage is notified from the workflow management apparatus 12, a process corresponding to the stage is performed.
  • the temperature sensor 22 is mounted so as to measure the ambient temperature, to publish the end of the task to the stage broker 16 and to publish the measured temperature to the data broker 17 when the notification of the temperature collection stage is subscribed.
  • the temperature calculation node 32 calculates the average value of the temperature measured by the plurality of temperature sensors 22 when the notification of the average temperature calculation stage is subscribed, publishes the end of the task to the stage broker 16 and calculates it. It is implemented to publish the average temperature to the data broker 17.
  • FIG. 6 is a block diagram showing a functional configuration of the workflow management apparatus 12 of FIG.
  • the workflow management apparatus 12 includes a communication unit 60, a control unit 70, and a data storage unit 80.
  • the communication unit 60 transmits / receives data to / from an external device according to a predetermined communication protocol. For example, data transmission / reception with the stage broker 16 in accordance with a PUB-SUB scheme is executed according to a predetermined message protocol.
  • the control unit 70 controls the operation of the workflow management apparatus 12.
  • workflow management in other words, data processing for performing distributed cooperative control of the plurality of IOT devices 11 is executed.
  • the data storage unit 80 is a storage area for storing various data that are referred to and updated in the data processing by the control unit 70.
  • Each block shown in the block diagram of the present specification can be realized in terms of hardware by an element such as a CPU and a memory of a computer or a mechanical device, and in terms of software, it can be realized by a computer program or the like. , Depicts functional blocks realized by their cooperation. Therefore, those skilled in the art will understand that these functional blocks can be realized in various forms by a combination of hardware and software.
  • an application program including a software module corresponding to each functional block of the control unit 70 may be installed in the workflow management apparatus 12. Then, the function of each functional block of the control unit 70 may be exhibited by the CPU of the workflow management apparatus 12 reading out and executing each software module in the memory.
  • Each functional block of the data storage unit 80 may be realized by storing data in a storage device such as a storage or a memory.
  • the data storage unit 80 includes a workflow information holding unit 82 and a stage information holding unit 84.
  • the workflow information holding unit 82 holds, as workflow information, the anteroposterior relationship of each stage determined by the workflow and the conditions for shifting from each stage to the next stage.
  • a typical transition condition is to receive a notification that the task of the stage has been completed from an agent that has completed the task associated with the stage in advance.
  • the subsequent stage is permitted after receiving the task end notification from some agents. You can determine what to get. In other words, even if task completion notifications are not received from all of a plurality of agents that have executed a task, it is determined that if a task completion notification is received from a predetermined number or more of the plurality of agents, the next stage is shifted to. be able to.
  • FIG. 7 schematically shows the workflow of the embodiment.
  • the workflow of the embodiment defines transitions between a plurality of stages and controls the operations of a plurality of types of real world agents in a form corresponding to case 1 (for example, FIG. 1) described in the overview.
  • the workflow information holding unit 82 is information indicating that the process proceeds to the temperature collection stage 100 and the illuminance collection stage 102 after the workflow starts, and that the next to the temperature collection stage 100 is the average temperature calculation stage 104 as the context of each stage. Hold. Further, information indicating that the next to the average temperature calculation stage 104 is the air conditioner control stage 108 and the next to the air conditioner control stage 108 is the energy accounting calculation stage 112 is held. Information indicating that the next to the illuminance collection stage 102 is the minimum illuminance calculation stage 106, the next to the minimum illuminance calculation stage 106 is the illumination control stage 110, and the next to the illumination control stage 110 is the energy accounting calculation stage 112. Hold. Also, information indicating that the workflow is ended by the end of the energy accounting calculation stage 112 is held.
  • the workflow information holding unit 82 is notified of the end of the temperature measurement task from 50 or more of the 100 temperature sensors 22 as a transition condition from the temperature collection stage 100 to the average temperature calculation stage 104. Is stipulated. Further, as a transition condition from the average temperature calculation stage 104 to the air conditioner control stage 108, it is defined that the end of the average temperature calculation task is notified from the temperature calculation node 32. Further, as a transition condition from the illuminance collection stage 102 to the minimum illuminance calculation stage 106, it is determined that the end of the illuminance measurement task is notified from 15 or more illuminance sensors 24 out of the 20 illuminance sensors 24. Further, as a transition condition from the minimum illuminance calculation stage 106 to the illumination control stage 110, it is defined that the end of the minimum illuminance calculation task is notified from the illuminance calculation node 34.
  • the stage information holding unit 84 holds stage information indicating which stage the workflow is currently in.
  • identification information (name, ID, etc.) of a new stage is recorded when the workflow stage shifts to a new stage different from the previous stage.
  • Stage information allows multiple stages to be recorded simultaneously as the current stage.
  • the temperature collection stage 100 to the average temperature calculation stage 104 to the air conditioner control stage 108 and the illuminance collection stage 102 to the minimum illuminance calculation stage 106 to the illumination control stage 110 are advanced in parallel. Therefore, the stage information holding unit 84 can hold stage information indicating that the current stage is the temperature collection stage 100 and any one of the illuminance collection stage 102, the minimum illuminance calculation stage 106, and the illumination control stage 110. .
  • the stage information holding unit 84 can hold stage information indicating that the current stage is the illuminance collection stage 102 and any of the temperature collection stage 100, the average temperature calculation stage 104, and the air conditioner control stage 108. .
  • the control unit 70 includes a stage notification unit 72, an end notification reception unit 74, a transition determination unit 76, and a stage update unit 78.
  • the stage notification unit 72 monitors the stage information held in the stage information holding unit 84, and when the stage information is updated, information indicating the current stage (hereinafter referred to as "current stage information") is a stage broker. 16 to send. Thereby, the current stage is notified to one or more IOT devices 11, and the operation corresponding to the current stage is executed in parallel by one or more IOT devices 11.
  • the current stage information transmitted by the stage notification unit 72 includes information (for example, stage name and ID) that can identify the current stage. For example, a message to which a topic indicating identification information of the current stage is added.
  • the contents specifying the operation mode of the IOT device 11 are excluded from the current stage information.
  • the current stage information does not include a command that directly defines the operation of the IOT device 11 or a parameter that is referred to when the IOT device 11 operates and indirectly defines the operation of the IOT device 11.
  • the workflow management apparatus 12 notifies the IOT device 11 of the current stage, and leaves the specific operation for the current stage to the implementation of each IOT device 11. Thereby, the independence of each IOT device 11 in the IOT device control system 10 is enhanced, and the security is enhanced.
  • the end notification receiving unit 74 receives the operation end notification transmitted from each IOT device 11 from the stage broker 16.
  • the operation end notification is information indicating that a process corresponding to the current stage of the workflow, in other words, a task determined to be executed in the current stage has ended, and can also be referred to as a “task end notification”.
  • the operation end notification may include identification information of a stage that has completed the operation on the IOT device 11 side.
  • the operation end notification does not include data obtained by task processing in the IOT device 11, for example, temperature data or average temperature data. These data are transmitted and received between the IOT devices 11 via the data broker 17. Thereby, the workflow management apparatus 12 can concentrate on the start, end, and transition determination of the stage.
  • the transition determination unit 76 determines whether the transition condition to the next stage held in the workflow information holding unit 82 for the current stage of the workflow is satisfied. Determine. When the transition determination unit 76 detects that the transition condition is satisfied, the transition determination unit 76 notifies the stage update unit 78 of the combination of the transition source stage and the transition destination stage.
  • the transition determination unit 76 may determine that the transition condition is satisfied when 50 or more operation end notifications indicating that the operation of the temperature collection stage 100 has ended are received.
  • the transition determination unit 76 may determine that the transition condition is satisfied when 15 or more operation end notifications indicating that the operation of the illuminance collection stage 102 has ended are received.
  • the stage update unit 78 stores the stage information held in the stage information holding unit 84 so as to advance the current stage to the next stage when the transfer determination unit 76 determines that the current stage transfer condition is satisfied. Update. Specifically, when a combination of the migration source stage and the migration destination stage is notified from the migration determination unit 76, the stage information is updated so that the migration source stage recorded in the stage information is switched to the migration destination stage.
  • the stage update unit 78 switches the migration source stage notified from the migration determination unit 76 among the plurality of stages to the migration destination stage. Update information.
  • the stage that is not designated as the migration source stage among the plurality of stages is kept recorded in the stage information, that is, maintained as the current stage.
  • the stage update unit 78 collects the current stage as the average temperature calculation stage 104 and the illuminance collection.
  • the stage information is updated so that the stage 102 is set.
  • the stage update unit 78 updates the stage information so that the current stage is the air conditioner control stage 108 and the illuminance collection stage 102.
  • FIG. 8 is a sequence diagram showing the operation of the IOT device control system 10.
  • FIG. 8 shows an operation when the workflow management apparatus 12 controls the IOT device 11 in accordance with the workflow of FIG.
  • FIG. 8 corresponds to case 1 (for example, FIG. 2) described in the overview.
  • case 1 for example, FIG. 2
  • the parallel stages for example, the illuminance collection stage 102 and the average temperature calculation stage 104
  • the processing of the parallel stages results in a context, but essentially Are executed in parallel.
  • each of the IOT devices 11 registers in advance a topic name predetermined for a specific stage in which the IOT device 11 should operate in the stage broker 16 and the data broker 17 in advance. Accordingly, each IOT device 11 operates as a subscriber of a message indicating the start of the specific stage and a message including data necessary for executing a task. Each IOT device 11 is mounted with an operation corresponding to the specific stage.
  • the temperature sensor 22 has a predetermined topic name indicating the start of the temperature collection stage registered in the stage broker 16 and a program defined to execute the temperature measurement process in the temperature collection stage.
  • the workflow management device 12 starts the workflow of FIG. 7 periodically or in response to a user instruction.
  • the stage update unit 78 of the workflow management apparatus 12 updates the stage information so that the current stage is the temperature collection stage 100 and the illuminance collection stage 102.
  • the stage notification unit 72 publishes the current stage information to which the topic indicating the temperature collection stage is added to the stage broker 16 (S2), and publishes the current stage information to which the topic of the illuminance collection stage is added to the stage broker 16 (S2). S4).
  • Each of the plurality of temperature sensors 22 subscribes the current stage information to which the topic indicating the temperature collection stage is added from the stage broker 16 (S6), and measures the ambient temperature. Then, a topic indicating the temperature measurement result is added, and a message including temperature data in the text is published to the data broker 17 (S8).
  • Each temperature sensor 22 publishes an operation end notification for the temperature collection stage to the stage broker 16 (S10), and the end notification receiving unit 74 of the workflow management apparatus 12 sends an operation end notification from each temperature sensor 22 to the stage broker 16. Subscribe (S12).
  • each of the plurality of illuminance sensors 24 subscribes the current stage information to which the topic indicating the illuminance collection stage is added from the stage broker 16 (S14), and measures the ambient illuminance. Then, a topic indicating the illuminance measurement result is added, and a message including the illuminance data in the text is published to the data broker 17 (S16). Each illuminance sensor 24 publishes an operation end notification for the illuminance collection stage to the stage broker 16 (S18), and the end notification reception unit 74 of the workflow management apparatus 12 sends an operation end notification from each illuminance sensor 24 to the stage broker 16. Subscribe (S20).
  • the transition determination unit 76 of the workflow management apparatus 12 determines that the transition condition from the temperature collection stage 100 to the average temperature calculation stage 104 is satisfied according to the reception status of the operation completion notification for the temperature collection stage. For example, it is determined that the transition condition is satisfied when 50 operation end notifications published from 50 temperature sensors 22, which is the number determined by the transition condition, out of several hundred temperature sensors 22 are subscrubbed.
  • the stage update unit 78 updates the stage information so as to switch the current stage from the temperature collection stage 100 to the average temperature calculation stage 104.
  • the transition determination unit 76 determines that the transition condition from the illuminance collection stage 102 to the minimum illuminance calculation stage 106 is satisfied according to the reception status of the operation end notification for the illuminance collection stage.
  • the stage update unit 78 updates the stage information so as to switch the current stage from the illuminance collection stage 102 to the minimum illuminance calculation stage 106.
  • the temperature collection stage 100 and the illuminance collection stage 102 are in a partial order relationship. That is, the execution order between these stages is not uniquely determined, and the execution order between the stages cannot be compared. In other words, which stage may be started first and which stage may be ended first.
  • the average temperature calculation stage 104 and the illuminance collection stage 102 next to the temperature collection stage 100 are also in a partial order relationship. That is, the execution order between these stages is not uniquely determined, and the execution order between the stages cannot be compared.
  • the order relationship between the stages is held in the workflow information holding unit 82.
  • the stage update unit 78 refers to the order relationship held in the workflow information holding unit 82, and the transition condition from the temperature collection stage 100 to the average temperature calculation stage 104 is satisfied, while the illuminance collection stage 102 changes to the minimum illuminance calculation stage.
  • the stage information is updated to indicate that the current stage of the workflow is the average temperature calculation stage 104 and also the illuminance collection stage 102. That is, the stage transition on the temperature collection stage 100 / average temperature calculation stage 104 side and the stage transition on the illuminance collection stage 102 / minimum illuminance calculation stage 106 side are executed independently.
  • the temperature calculation node 32 subscribes a plurality of temperature data to which a topic indicating the temperature measurement result is added from the data broker 17 (S22).
  • the illuminance calculation node 34 subscribes from the data broker 17 a plurality of illuminance data to which a topic indicating the illuminance measurement result is added (S24).
  • the stage notification unit 72 of the workflow management apparatus 12 publishes the current stage information to which the topic indicating the average temperature calculation stage is added to the stage broker 16 (S26), and the temperature calculation node 32 subscribes the current stage information from the stage broker 16. Live (S28).
  • the temperature calculation node 32 calculates an average temperature according to the temperatures measured by the plurality of temperature sensors 22, adds a topic indicating the average temperature calculation result, and publishes a message including the average temperature data in the text to the data broker 17. (S30).
  • the temperature calculation node 32 publishes an operation end notification for the average temperature calculation stage to the stage broker 16 (S32), and the end notification receiving unit 74 of the workflow management apparatus 12 subscribes the operation end notification from the stage broker 16 ( S34).
  • the air conditioner controller 42 subscribes the average temperature data to which the topic indicating the average temperature calculation result is added from the data broker 17 (S36).
  • the stage notification unit 72 of the workflow management apparatus 12 publishes the current stage information to which the topic indicating the minimum illuminance calculation stage is added to the stage broker 16 (S38), and the illuminance calculation node 34 receives the current stage information. Is subscribed from the stage broker 16 (S40).
  • the illuminance calculation node 34 calculates the minimum illuminance according to the illuminance measured by the plurality of illuminance sensors 24, adds a topic indicating the minimum illuminance calculation result, and publishes a message including the minimum illuminance data in the text to the data broker 17. (S42).
  • the illuminance calculation node 34 publishes an operation end notification for the minimum illuminance calculation stage to the stage broker 16 (S44), and the end notification receiving unit 74 of the workflow management apparatus 12 subscribes the operation end notification from the stage broker 16 ( S46).
  • the illumination controller 44 subscribes the minimum illuminance data to which the topic indicating the minimum illuminance calculation result is added from the data broker 17 (S48).
  • the transition determination unit 76 of the workflow management device 12 determines that the transition condition from the average temperature calculation stage 104 to the air conditioner control stage 108 is satisfied according to the reception status of the operation end notification for the average temperature calculation stage.
  • the stage update unit 78 updates the stage information so as to switch the current stage from the average temperature calculation stage 104 to the air conditioner control stage 108.
  • the transition determination unit 76 determines that the transition condition from the minimum illuminance calculation stage 106 to the illumination control stage 110 is satisfied according to the reception status of the operation end notification for the minimum illuminance calculation stage.
  • the stage update unit 78 updates the stage information so as to switch the current stage from the minimum illuminance calculation stage 106 to the illumination control stage 110.
  • the stage notification unit 72 of the workflow management apparatus 12 publishes the current stage information to which the topic indicating the air conditioner control stage is added to the stage broker 16 (S50), and the air conditioner controller 42 subscribes the current stage information from the stage broker 16. (S52).
  • the air conditioner controller 42 determines a new set temperature of the air conditioner 52 according to the average temperature determined by the temperature calculation node 32, and controls the air conditioner 52 to operate at the set temperature (S54).
  • the air conditioner controller 42 and the air conditioner 52 are directly connected, but may be indirectly connected via the data broker 17.
  • the air conditioner controller 42 adds a topic indicating the air conditioner control result, and publishes a message including the new set temperature in the text to the data broker 17 (S56).
  • the air conditioner controller 42 publishes an operation end notification for the air conditioner control stage to the stage broker 16 (S58), and the end notification receiving unit 74 of the workflow management apparatus 12 subscribes the operation end notification from the stage broker 16 ( S60).
  • the stage notification unit 72 of the workflow management apparatus 12 publishes the current stage information to which the topic indicating the lighting control stage is added to the stage broker 16 (S62), and the lighting controller 44 sets the current stage information to the stage. Subscribe from the broker 16 (S64).
  • the illumination controller 44 determines whether the illumination 54 is turned on or off according to the minimum illuminance determined by the illuminance calculation node 34, and turns on or off the illumination 54 (S66). In this example, the illumination controller 44 and the illumination 54 are directly connected, but may be indirectly connected via the data broker 17.
  • the lighting controller 44 adds a topic indicating the lighting control result, and publishes a message including the text of the on / off state of the lighting 54 to the data broker 17 (S68). Further, the lighting controller 44 publishes an operation end notification for the lighting control stage to the stage broker 16 (S70), and the end notification receiving unit 74 of the workflow management apparatus 12 subscribes the operation end notification from the stage broker 16 ( S72).
  • the accounting calculation node 36 subscribes the set temperature data to which the topic indicating the air conditioner control result is added from the data broker 17 (S74). In parallel with this, the accounting calculation node 36 subscribes the lighting on / off information to which the topic indicating the lighting control result is added from the data broker 17 (S76).
  • the transition determination unit 76 of the workflow management device 12 determines that the transition condition from the air conditioner control stage 108 to the energy accounting calculation stage 112 is satisfied according to the reception status of the operation end notification for the air conditioner control stage. Further, the transition determination unit 76 determines that the transition condition from the illumination control stage 110 to the energy accounting calculation stage 112 is satisfied according to the reception status of the operation end notification for the illumination control stage.
  • the stage update unit 78 determines the current stage when the transition condition from the air conditioner control stage 108 to the energy accounting calculation stage 112 is satisfied and the transition condition from the lighting control stage 110 to the energy accounting calculation stage 112 is also satisfied. Is updated from the air conditioner control stage 108 and the illumination control stage 110 to the energy accounting calculation stage 112.
  • a partial order relationship as an execution order between a plurality of stages.
  • the air conditioner control stage 108 and the illumination control stage 110 are in a partial order relationship. That is, the execution order between these stages is not uniquely determined, and the execution order between the stages cannot be compared. In other words, which stage may be started first and which stage may be ended first.
  • the energy accounting calculation stage 112 can be executed on condition that both the air conditioner control stage 108 and the illumination control stage 110 are completed. As described above, the order relationship between the stages is held in the workflow information holding unit 82.
  • the stage update unit 78 refers to the order relationship held in the workflow information holding unit 82, and the transition condition from the air conditioner control stage 108 to the energy accounting calculation stage 112 is satisfied, while the lighting control stage 110 changes to the energy accounting calculation stage. If the conditions for shifting to 112 are not satisfied, the stage information is updated to indicate that the air conditioner control stage 108 has been completed and is also the illumination control stage 110. Thereafter, when the transition condition from the lighting control stage 110 to the energy accounting calculation stage 112 is satisfied, the stage update unit 78 updates the stage information again so as to switch the current stage to the energy accounting calculation stage 112. As a result, the workflow is shifted to the energy accounting calculation stage 112.
  • the stage notification unit 72 of the workflow management device 12 publishes the current stage information to which the topic indicating the energy accounting calculation stage is added to the stage broker 16 (S78), and the accounting calculation node 36 subscribes the current stage information from the stage broker 16 to the subscriber. Live (S80).
  • the accounting calculation node 36 executes energy accounting calculation processing according to the set temperature of the air conditioner 52 determined by the air conditioner controller 42 and the on / off state of the lighting 54 determined by the lighting controller 44.
  • the accounting calculation node 36 adds a topic indicating the energy accounting calculation result, and publishes a message including the energy accounting data in the text to the data broker 17 (S82).
  • the accounting calculation node 36 publishes an operation end notification for the energy accounting calculation stage to the stage broker 16 (S84).
  • the end notification receiving unit 74 of the workflow management apparatus 12 subscribes the operation end notification for the energy accounting calculation stage from the stage broker 16 (S86).
  • the transition determination unit 76 determines that the transition condition from the energy accounting calculation stage 112 to the end stage is satisfied, the processing of one cycle of the workflow in FIG. 7 in the workflow management apparatus 12 is completed.
  • the workflow management apparatus 12 may repeat the processing of the workflow shown in FIG. 7, that is, the operation shown in FIG. 8 may be repeated periodically.
  • the stakeholder terminal 13 subscribes the energy accounting data to which the topic indicating the energy accounting calculation result is added from the data broker 17 (S88), and stores the data in a predetermined storage device.
  • the stakeholder terminal 13 may accumulate energy accounting data periodically notified from the accounting calculation node 36, and executes a process of aggregating the energy accounting data notified over a plurality of times on a daily or monthly basis. May be. Further, the totaled result may be stored in a predetermined storage device and may be output to a display or a printing device.
  • the workflow management apparatus 12 assigns tasks in a plurality of stages in parallel to a plurality of agents in parallel, and causes each agent to execute the tasks in parallel. Further, whether or not to advance each stage in parallel to the next stage is determined based on the reception status of the task end notifications that are transmitted independently from each other by the respective task assignment destination agents. As a result, even when the number of agents to be controlled increases, it is possible to efficiently provide a service in which each agent is operated in a coordinated manner. In other words, by making it possible to define the processing order of a plurality of tasks to be executed for providing one service in a semi-order, task processing by a large number of agents is efficiently controlled, and efficient service provision is realized. .
  • a transition condition for a certain stage it is possible to determine that a transition to the next stage is made when a task end notification is received from a predetermined number of agents among a plurality of agents assigned the task of the stage.
  • the stage transition is made when the number of received task end notifications reaches a predetermined number, regardless of which agent has specifically received the task end notification.
  • a stage broker 16 for data flow between the workflow management device 12 and the IOT device 11 and a data broker 17 for data flow between the IOT devices 11 are separately provided. It was. This makes it possible to provide a broker with optimized settings such as performance and security in accordance with the characteristics of data to be relayed, and effectively improve the performance and security of the entire system. For example, it is desirable for the stage broker 16 to have a setting that emphasizes security over performance.
  • the data broker 17 may be set according to the number of data to be mediated and the size of the data size, and a plurality of data brokers 17 may be provided according to the characteristics of the data to be mediated.
  • the IOT device 11 is shown as an agent to be controlled by the workflow management device 12, but the agent may be a person as shown in the outline example 2.
  • the workflow management apparatus 12 may notify the current stage to an information terminal held by a person. This information terminal may display the contents of the task corresponding to the notified stage on the display.
  • the person that is, the task worker
  • the information terminal transmits a task end notification to the workflow management device 12, and the workflow management device 12 performs the stage according to the task end notification. May be advanced.
  • a task transition predicate including stage transition conditions is added.
  • the workflow information holding unit 82 holds task transition predicates determined for each stage, and the stage update unit 78 determines the transition mode of each stage according to the task transition predicate.
  • various AND conditions, OR conditions, and NOT conditions regarding the stage transition can be described.
  • the task transition predicate of a certain stage specifies that the transition to the next stage is made when the transition condition is satisfied, and within a predetermined time after notifying the current stage information to the outside (or after transitioning to the current stage) If the condition for transition to the next stage is not satisfied (for example, a time-out due to a timer is detected), an alternative / exceptional stage transition may be executed.
  • the condition that the transition to the next stage is not satisfied within a predetermined time is, for example, a case where a predetermined standby time for waiting for a task end notification from the IOT device 11 has elapsed.
  • the task transition predicate may define that an alternative / exceptional stage transition is executed when a task end notification indicating an abnormality is returned from the IOT device 11 that has executed the task.
  • the stage update unit 78 may execute an alternative / exceptional stage transition when the transition condition is not satisfied within a predetermined time or when a task end notification indicating abnormality is returned.
  • An alternative / exceptional stage transition may be a transition to a specific stage in a previous workflow or a different workflow. For example, when the workflow management apparatus 12 executes control of external devices by a plurality of workflows in parallel, when an exception or error is detected in any workflow, a specific stage of a common workflow for exception processing is entered. It may be specified to be migrated. According to this modification, various stage transitions in the workflow can be realized, and various error processing and exception processing required for external device control by the workflow can be flexibly handled.
  • the IOT device 11 to be controlled by the workflow management device 12 may include a plurality of functions corresponding to a plurality of task stages, and a plurality of functions for calling the plurality of functions.
  • the API may be provided.
  • the plurality of APIs may include, for example, an interface A that is called when the start of the stage A is notified from the workflow management apparatus 12 and an interface B that is called when the start of the stage B is notified.
  • a plurality of types of roles that is, tasks
  • one IOT device 11 when one IOT device 11 is a multi-sensor device that detects a plurality of types of environmental information, the temperature collection stage 100 is notified to function as the temperature sensor 22 and the illuminance collection stage 102 is notified. Can function as the illuminance sensor 24. Further, for example, when one IOT device 11 is a controller that centrally controls a plurality of devices, the air conditioner control stage 108 is notified to function as the air conditioner controller 42, and the illumination control stage 110 is notified to the illumination controller. 44 can function.
  • One IOT device 11 receives stage notifications from a plurality of workflows operating on one workflow management apparatus 12 or a plurality of workflows operating on a plurality of workflow management apparatuses 12, and the stage notified from each workflow You may perform the task according to. That is, a plurality of workflows may use a service provided by one IOT device 11.
  • the IOT device 11 may identify a task in units of a combination of a workflow and a stage, in other words, may hold a correspondence relationship between a combination of a workflow and a stage and a task to be executed.
  • the workflow management apparatus 12 may transmit a combination of workflow identification information and stage identification information to the IOT device 11 as current stage information. If the call source workflow is different, the IOT device 11 may execute the same task even if the same stage name is notified. Conversely, if the call source workflow is different, the IOT device 11 is the same even if a different stage name is notified. A task may be executed.
  • the data flow between the workflow management device 12 and the IOT device 11 and the data flow between the plurality of IOT devices 11 are realized by the message technology via the broker, but data is transmitted and received by other technologies. May be.
  • known unicast communication, multicast communication, and P2P communication may be performed between the data transmission source device and the transmission destination device.
  • information notification and data sharing may be realized by one device uploading data to the cloud system and the other device downloading data from the cloud system.
  • IOT device control system 10 IOT device control system, 11 IOT device, 12 workflow management device, 16 stage broker, 17 data broker, 72 stage notification unit, 74 end notification reception unit, 76 transition determination unit, 78 stage update unit, 82 workflow information holding unit, 84 Stage information holding unit.
  • the present invention can be applied to an apparatus for managing a workflow.

Landscapes

  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Engineering & Computer Science (AREA)
  • Economics (AREA)
  • Strategic Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Operations Research (AREA)
  • General Physics & Mathematics (AREA)
  • Development Economics (AREA)
  • Game Theory and Decision Science (AREA)
  • Theoretical Computer Science (AREA)
  • Marketing (AREA)
  • Educational Administration (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

 ワークフロー管理装置12は、IOT機器11の動作を複数のステージに亘り制御するワークフローについて、各ステージから次のステージへの移行条件と、ワークフローの現在のステージを示すステージ情報を保持する。ステージ間に半順序関係があり、第1ステージと第2ステージが比較不可能でかつ、第3ステージが第1ステージの次に実行可能であるが、第3ステージが第2ステージとは比較不可能な場合には、ワークフロー管理装置12は、第1ステージの移行条件が満たされた一方、第2ステージの移行条件が満たされていない場合に、ワークフローが第1ステージの次の第3ステージであり、かつ、第2ステージでもあることを示すようステージ情報を更新する。

Description

ワークフロー管理装置、ワークフロー管理方法およびワークフロー管理プログラム
 本発明はデータ処理技術に関し、特にワークフロー管理技術に関する。
 本発明者は、家計や事業所等、様々な粒度の組織におけるエネルギーのフローおよびストックに関する変化をエネルギー簿記により記録し、組織における総合的なエネルギー管理を容易にする技術を提案している(例えば特許文献1参照)。特許文献1のエネルギーイベント記録装置はセンサ機器として実装されることがある。
国際公開第2013/168419号
 センサネットワークでは、複数のセンサ機器のそれぞれが自律的に動作する。そのため複数のセンサ機器を統合して1つのサービスを提供するためには、処理の同期制御が必要になることがあった。従来、並列分散処理における同期制御には、割り込み制御やマーカー検出制御(例えばフレーム同期、タイミング同期)が使用されてきた。しかし、従来の同期制御では、同期制御対象機器の増加に伴い、制御内容を定義するための記述量が増大し、また記述が複雑になっていた。
 本発明は上記課題を鑑みてなされたものであり、その主な目的は、ネットワークに接続された複数の機器が自律的に動作する環境下で、複数の機器を制御し、全体として1つのサービスを効率的に実現するための技術を提供することにある。
 上記課題を解決するために、本発明のある態様のワークフロー管理装置は、外部機器の動作を複数のステージに亘り制御するワークフローについて、各ステージから次のステージへの移行条件を保持する移行条件保持部と、ワークフローが現在どのステージであるかを示すステージ情報を保持するステージ情報保持部と、ワークフローの現在のステージを外部機器へ通知することにより、現在のステージに応じた動作を外部機器に実行させるステージ通知部と、外部機器から現在のステージの動作を終了した旨が通知されて現在のステージの移行条件が満たされた場合に、ワークフローのステージを進めるようステージ情報を更新するステージ更新部と、を備える。ワークフローのステージ間に半順序関係があり、第1ステージと第2ステージが比較不可能でかつ、第3ステージが第1ステージの次に実行可能であるが、第3ステージが第2ステージとは比較不可能な場合には、ステージ更新部は、第1ステージの移行条件が満たされた一方、第2ステージの移行条件が満たされていない場合に、ワークフローが第1ステージの次の第3ステージであり、かつ、第2ステージでもあることを示すようステージ情報を更新する。
 本発明の別の態様もまた、ワークフロー管理装置である。この装置は、外部機器の動作を複数のステージに亘り制御するワークフローについて、各ステージから次のステージへの移行条件を保持する移行条件保持部と、ワークフローが現在どのステージであるかを示すステージ情報を保持するステージ情報保持部と、ワークフローの現在のステージを外部機器へ通知することにより、現在のステージに応じた動作を外部機器に実行させるステージ通知部と、外部機器から現在のステージの動作を終了した旨が通知されて現在のステージの移行条件が満たされた場合に、ワークフローのステージを進めるようステージ情報を更新するステージ更新部と、を備える。ワークフローのステージ間に半順序関係があり、第1ステージと第2ステージが比較不可能でかつ、第3ステージが第1ステージと第2ステージの次に実行可能である場合には、ステージ更新部は、第1ステージの移行条件が満たされた一方、第2ステージの移行条件が満たされていない場合に、ワークフローが第1ステージを終了した状態であり、かつ、第2ステージでもあることを示すようステージ情報を更新し、第2ステージの移行条件が満たされた場合にワークフローを第3ステージへ移行させる。
 本発明のさらに別の態様は、ワークフロー管理方法である。この方法は、外部機器の動作を複数のステージに亘り制御するワークフローについて、所定の記憶領域に記憶されたワークフローが現在どのステージであるかを示すステージ情報にしたがって、ワークフローの現在のステージを外部機器へ通知することにより、現在のステージに応じた動作を外部機器に実行させるステップと、外部機器から現在のステージの動作を終了した旨が通知されて、現在のステージから次のステージへの予め定められた移行条件が満たされた場合に、ワークフローのステージを進めるようステージ情報を更新するステップと、をコンピュータが実行する。ワークフローのステージ間に半順序関係があり、第1ステージと第2ステージが比較不可能でかつ、第3ステージが第1ステージの次に実行可能であるが、第3ステージが第2ステージとは比較不可能な場合には、更新するステップは、第1ステージの移行条件が満たされた一方、第2ステージの移行条件が満たされていない場合に、ワークフローが第1ステージの次の第3ステージであり、かつ、第2ステージでもあることを示すようステージ情報を更新する。
 なお、以上の構成要素の任意の組合せ、本発明の表現を、方法、システム、プログラム、プログラムを格納した記録媒体などの間で変換したものもまた、本発明の態様として有効である。
 本発明によれば、ネットワークに接続された複数の機器が自律的に動作する環境下で、複数の機器を制御し、全体として1つのサービスを効率的に実現することができる。
分散協調制御の事例1を示す図である。 分散協調制御の事例1を示す図である。 分散協調制御の事例2を示す図である。 実世界OSによる制御範囲を模式的に示す図である。 実施の形態のIOT機器制御システムを示す図である。 図5のワークフロー管理装置の機能構成を示すブロック図である。 実施の形態のワークフローを模式的に示す図である。 IOT機器制御システムの動作を示すシーケンス図である。
 (概要の説明)
 まず、実施の形態の概要として、複数のタスクを半順序関係で整列したワークフローベースのシステムデザインを説明する。プロジェクトであれ定型業務であれ、順序づけられたタスクの集合という意味でのワークフローは、何らかの仕事を体系立てて整理し、理解し、実行するための基本的な認識の単位である。ワークフローは、ワークフローを構成する個々のタスクに対して、実際にタスクを遂行するリソースを割り当てていき、一連の作業、サービスを実現する。
 実際にタスクを遂行するリソースは、例えば人、プログラム、機器等であってよく、以下「エージェント」とも呼ぶ。特に、インターネット等のネットワークに接続されて外部機器と通信可能なエージェントを「IOT(Internet Of Things)機器」とも呼ぶ。
 様々なセンサやコントローラ、アクチュエータ等、膨大な数のエージェントを対象として、あるワークフローにおいてこれらの制御を行う場合に、各エージェントの並列作業を効率的に管理する手法は、これまで十分な提案がなされていない。ワークフロー内のタスク間の関係は、線形順序(すなわち全順序)ではなく半順序構造を持つことがある。例えば、あるタスクの後に実行可能な複数のタスクがあり、これら複数のタスクのどちらが先に実行されてもよいことがしばしばある。これら複数のタスクは並列関係と言え、各タスクの遂行を並列実行することができる。この並列性は、同じタスクが割り当てられた複数のエージェント間でのタスク遂行の並列性とは次元が異なる。
 ワークフローが定めるタスクを、実行順序を制御するための因果順序のシンボルとして用いる場合に「タスクステージ」と呼ぶ。ワークフローの各タスクステージに対応するエージェントの活動は、個々のノード(例えばエージェントが実装されたセンサ等、各種機器)において自律動作を行うプログラムとして記述されていることが前提となる。個々のノードは、現在どのタスクステージであるかを示す情報を取得し、そのタスクステージに対応する個々のエージェントプログラムを起動する。また、個々のエージェントはタスクステージに対応する処理が終了したことをワークフロー側へ報告し、次のタスクの指示を待つ。
 ワークフローにもとづいて、実世界のエージェント個々によるタスクの実行順序を制御する機能を「タスクマネージャ」と呼ぶ。タスクマネージャは、ワークフローの実行エンジンとも言え、今どのタスクステージを実行すべきであるかをエージェントへ通知する。さらにタスクの完了通知をエージェントから受け取り、適宜タスクステージを進める。このように、タスクマネージャとエージェント間にはタスク管理のためのデータフローが生じる。
 以下、分散した環境で自律的に動作する個々のエージェントを、全体として協調して動作するよう制御することを「分散協調制御」とも呼ぶ。実施の形態ではワークフローを使用して分散協調制御を実現する。また、分散協調制御により、自律した個々のエージェントを全体として協調動作させるシステムを「自律分散協調システム」とも呼ぶ。本実施の形態では、ネットワークを介して結ばれたIOT機器の間での分散協調的ワークフローの管理技術を提案する。
 自律分散協調システムでは、個々のエージェント間におけるデータストリームの意味でのデータフローも重要になる。例えば、あるタスクステージにおける計測タスクや計算タスクの実行結果は、その結果を入力とする別のタスクステージにおける計算タスクや制御タスクへ受け渡さなければならない。また、このようなエージェント間のデータフローはタスクマネージャを経由する必要はない。
 実施の形態では、タスクマネージャとエージェント間のデータフロー、および、あるエージェントと別のエージェント間のデータフローをパブリッシュ・サブスクライブ(以下「PUBーSUB」とも呼ぶ。)のスキームを使って実現する。PUB-SUBスキームは、送信元と送信先でデータを共有するために、ブローカと呼ばれる特殊なエージェントを用いる。
 送信先の主体に対して渡すべきデータにトピックと呼ばれるタグを付加し、トピックを付加したデータをブローカへ送信する送信元の主体はパブリッシャと呼ばれる。また、特定のトピックが付加されたデータの転送リクエストをブローカへ登録する主体(すなわちデータの送信先の主体)はサブスクライバと呼ばれる。ブローカへパブリッシュされたデータのうち、サブスクライバが登録したトピックを有するデータを、ブローカはサブスクライバへ配信する。
 PUB-SUBは、アドレス等の概念なしに必要なデータを必要な所に、多対多で送ることができるスキームである。実施の形態では、タスクマネージャとエージェント間においてタスクステージに関する管理情報を転送するための管理ブローカと、複数のエージェント間でタスク遂行に必要なデータを転送するためのデータブローカの2つを使用するシステムを提案する。
 タスクマネージャとエージェントの基本的な動作を説明する。
 (1)タスクマネージャは、管理ブローカに、現在実行可能なタスクステージ名をパブリッシュする。エージェントは、予め自分の遂行するタスクステージ名をブローカへ登録しておき、登録したタスクステージ名がパブリッシュされると、その事実を管理ブローカからサブスクライブしてタスクを遂行する。タスクの遂行が終了したエージェントは、タスクステージの終了と必要な管理情報を管理ブローカへパブリッシュするとともに、必要なトピックを付して他のエージェントによるタスク遂行用のデータをデータブローカへパブリッシュする。
 (2)タスクマネージャは、タスクステージの遷移可否を判断する。これを決めるのがタスク遷移述語である。タスク遷移述語は、エージェントから受け付けたタスク終了情報や管理データなどにもとづいて、次のタスクステージへ遷移してよいかを判定するプログラムである。
 例えば、エージェントとしてのセンサを数百個設置して所定の環境状態(温度等)を計測し、環境状態の平均値を求めて何らかの制御を実行するシステムを考える。このシステムのタスクマネージャには、半数のセンサが計測(すなわちタスク処理)を終了してタスク終了情報を送ってくれば、次のステージに遷移してよいことを定めるタスク遷移述語を実装してもよい。また、分散ストリーム計算においては、計算が無事終了したことを示すタスク終了情報の受け付けをもってステージの遷移を決定するタスク遷移述語を実装してもよい。また、計算が異常終了した旨のタスク終了情報を受け付けた場合に、通常のワークフローから非常用のワークフローへ遷移する等の分岐の判断についてもタスク遷移述語に実装する。
 (3)上記(1)(2)のプロセスを繰り返すことで、タスクマネージャはタスクステージ毎に実世界のエージェントとのハンドシェイクを遂行していく。この場合、タスクステージ間の並列性は、複数のタスクステージ名を並列してパブリッシュすることで実現される。また、同じタスクステージに属する複数のエージェントは、実世界において並列にタスクを遂行する。エージェント間の並列処理は、順序が入れ替わったり遅延があったとしても、タスクマネージャによる判定結果には影響がない。これは、人間によるプロジェクト管理においても、ワークフローを用いた分散協調制御においても同様である。
 次に分散協調制御の事例を説明する。
 事例1.センサによる機器の管理とエネルギー会計の制御:
 この例では、複数の温度センサと複数の照度センサのデータから、平均温度と最小照度を計算し、それをもとにコントローラがエアコンと照明を制御する。また、エアコンと照明の稼働状態にもとづいてエネルギー消費を計算し、その計算結果をステークホルダへ通知する処理を制御する。
 図1は、事例1の制御のためのタスクステージと、各タスクステージへのリソースマッピングを示している。事例1では、センサ(図中の「S」)によるデータ収集のタスクステージに対して複数のセンサが割り当てられている。また、各タスクステージに対するリソースの割当は固定的である。図2は、ブローカを介したデータ連携を模式的に示している。事例1では、タスクマネージャと実世界エージェント間のステージ管理を仲介する管理ブローカであるステージブローカと、複数のエージェント間のデータフローを仲介するデータブローカの2つが、制御フローとデータフローのそれぞれをPUB-SUBスキームで仲介する。
 図2では、複数のエージェント間のデータフローをシーケンス図で示している。シーケンス図の特性上、矢印の記載位置(上下関係)により処理の前後関係があるように見えるが、実際には並列実行される処理を含む。例えば、センサから計算ノードへのデータの転送はどの順序で実行されてもよい。また、計算ノード1、2からそれぞれコントローラ1、2への計算結果の転送も順序に依存しない。なお旧来のアクティビティ図は、図1の図式と同様に見えるが、制御のメカニズムは定式化されていない。
 事例2.内装工事のワークフローとタスク管理:
 図3は、マンション等の内装工事のプロジェクトを簡略化して示している。ここでは、タスクの遂行リソース(実世界エージェント)を電気工、配管工、床工、壁貼り工、塗装工とする。また、図3に示すプロジェクトが部屋の数だけあるとする。この場合、図3のワークフローを制御する複数のタスクマネージャを並行して動作させ、各エージェントは、各タスクマネージャからの指示にしたがって特定の部屋の作業を実施する。実際には、各エージェントは、PCやスマートフォン、タブレット端末等の情報端末を保持し、タスクマネージャは当該情報端末との間でタスクステージ情報を送受する。
 各エージェントは、割り当てられた部屋の担当タスクが終了すると、その終了の事実を情報端末へ入力し、タスクマネージャは各エージェントの情報端末からの終了通知にもとづいてタスクステージを適宜進行させる。各エージェントは、別の部屋の担当タスクを、それが遂行可能な状態にあるならば着手する。遂行可能な状態にあるとは、すなわち前段階のタスクステージが終了し、タスクマネージャから別の部屋のタスクに対応するタスクステージの開始が通知されたことである。このようにヒューマン・エージェント(人が保持する情報端末を含む)は、タスクマネージャからステージの着手可能信号を受け取ることを契機としてタスクに着手する。
 本発明者が考えるリアルワールド・オペレーティングシステム(以下「実世界OS」とも呼ぶ。)は、実世界のエージェントの複雑で分散協調的な相互作用を、これまでに述べたタスクマネージャの機能を中核にして、ワークフロー単位で管理し、実行させるための仕組みである。これからのIOE(Internet Of Everything)時代には、分散環境にある様々な自律的エージェントが同期し、協調し、全体としてワークフローとしてデザインされたサービスを提供することが求められる。実世界OSは、膨大なエージェントが結びついた様々なシステムを設計、実装、管理するための基幹プラットフォームになる。
 図4は、実世界OSのビジョンを示し、実世界OSによる制御範囲を模式的に示す。図の左側は仮想領域であり、シミュレーションによる仮想エージェントを含む。また図の右側は実世界エージェントの管理領域である。図4で示すように、タスクマネージャはエージェントベースのシミュレーションのコアエンジンになり、また、実世界エージェントの制御エンジンにもなる。これにより、仮想世界でのエージェントベースモデリングから、実世界でのエージェントコンピューティングまでシームレスに繋ぐことができる。シミュレーションによる設計と実世界エージェントを対象としたワークフローの管理の間で、仮想世界でシミュレーションをしたワークフローとプログラムとしてのエージェントを、実世界のエージェントに部分的に入れ替えること(部分実装)を行いながら、プロトタイピングを様々に行う設計方式が可能となり、最終的には実世界エージェントの管理のための動的な設計図として、エージェントベースのシミュレーションが残る。
 実世界OSが、IOTエージェントに対して分散協調制御を実行することで提供可能なサービスの例として、以下の(1)~(7)が想定される。
 (1)センサリング&コントロール系サービスとして、HEMS、BEMS、CEMSでのエネルギーセンサリングとそれによる機器制御のサービス、また、家やオフィス、コミュニティにおける見守りサービスやセキュリティサービスを提供する。
 (2)データの分散検索系サービスとして、複数の病院の電子カルテの並列検索サービスを提供する。
 (3)ビジネスデータ処理系サービスとして、図1~図3で示すような自律分散的なビジネスデータ処理を提供する。
 (4)安心安全やコミュニティ系のサービスとして、4-1)災害時のデータ収集とデータ共有サービス、4-2)災害時の電子カルテサービス、4-3)日常的なコミュニティでのアンケート調査と、調査結果の共有および加工サービスを提供する。
 (5)センサリング&統計・会計処理系サービスとして、HEMS、BEMS、CEMSでのエネルギーセンサリングにもとづくエネルギー統計サービスや会計処理サービスを提供する。
 (6)ライフログ系サービスとして、様々なライフログの収集・利用システムを提供する。
 (7)ファクトリー系サービスとして、工場のエネルギー管理システムから工場のセンサネットワークを提供する。
 このように、生活世界や産業社会の諸サービスは多かれ少なかれIOTエージェントを利活用した自律分散協調システムとしてデザインできる。その自律分散協調システムの設計、実装、制御を支援することが実世界OSの重要なミッションとなる。なお、実世界におけるIOTエージェントの複雑な相互作用をバーチャルにデザインし、エミュレーションによるテストを行いつつ、徐々に実世界エージェントに置き換えていくこと、そして最終的に実世界エージェントによる自律分散協調システムを実現するという新しいシステム開発手法も想定される。
 (実施の形態)
 以下では、上記の概要で説明した分散協調制御を実現するワークフロー管理装置を詳細に説明する。図5は、実施の形態のIOT機器制御システム10を示す。IOT機器制御システム10は、自律分散協調システムを具現化した情報処理システムである。IOT機器制御システム10は、IOT機器11、ワークフロー管理装置12、ステークホルダ端末13、ブローカ15を備える。
 IOT機器11は、実世界に存在する複数種類のエージェント機器である。各IOT機器11は、インターネットに接続されており、それぞれ自律して動作する。例えば、ワークフロー管理装置12から通信網を介してステージが通知された場合に、そのステージに対応する動作を実行するものであり、この動作を実行するためのプログラム(およびプログラムを実行するためのMPU等)を搭載したものであってよい。実施の形態のIOT機器11は、センサ機器20、計算ノード30、コントローラ40、サービス機器50を含む。
 センサ機器20は、公知の種々のセンサを備える機器である。例えばセンサ機器20は、周囲の環境状態を検出し、その環境状態を示す情報を出力する。また例えば、周囲の環境状態が特定の状態になった場合にその事実を検出し、出力する。実施の形態のセンサ機器20は、複数の温度センサ22と複数の照度センサ24を含む。例えば、工場に設置された数百個の温度センサを含み、また、オフィスビルのある居室に設置された数十個の照度センサを含む。
 計算ノード30は、各種の計算処理を実行する情報処理装置である。計算ノード30は、温度計算ノード32、照度計算ノード34、会計計算ノード36を含む。温度計算ノード32は、複数の温度センサ22により計測された温度にもとづ平均温度を計算し、照度計算ノード34は、複数の照度センサ24により計測された照度にもどづき最小照度を計算する。会計計算ノード36は、エアコンの設定温度と、照明のオンオフ状態にもとづいて、所定のエネルギー会計計算を実行する。例えば、エネルギーの消費量や消費金額等を算出し、またエネルギー簿記を実行する。
 サービス機器50は、電気やガス等のエネルギーを消費しつつ生活世界や産業社会の諸サービスをユーザへ提供する機器であり、エネルギー消費機器とも言える。サービス機器50は、エアコン52と照明54を含む。コントローラ40は、サービス機器50の動作を制御する制御機器である。コントローラ40は、エアコンコントローラ42と照明コントローラ44を含む。エアコンコントローラ42は、エアコンの設定温度を制御し、照明コントローラ44は、照明のオンオフを制御する。
 ワークフロー管理装置12は、概要で説明したタスクマネージャと実世界OSを具現化した情報処理装置である。ワークフロー管理装置12は、ワークフローで定められたタスクステージ(以下、単に「ステージ」と呼ぶ。)の遷移にしたがって、複数のIOT機器11の動作を制御する。ワークフロー管理装置12の詳細な機能は後述する。なおワークフロー管理装置12の物理的な態様に制限はなく、例えばPCやサーバでもよく、マイクロコントローラ、シングルボードコンピュータであってもよい。
 ステークホルダ端末13は、IOT機器11が設置された企業の担当者等、所定のステークホルダーにより操作される情報端末である。ステークホルダ端末13は、会計計算ノード36による計算結果であるエネルギー会計情報を取得し、適宜ディスプレイ等に表示させる。
 ブローカ15は、PUB-SUBスキームにより装置間でのデータ送受を仲介する装置である。ブローカ15は、公知のメッセージキュー製品やメッセージ指向ミドルウェアにより実現されてもよい。図5の各装置は、LAN・WAN・インターネット等の通信網を介し、ブローカ15が定める通信プロトコルにしたがってPUB-SUBのスキームにてブローカ15と通信し、装置間でデータを送受する。
 ブローカ15は、ステージブローカ16とデータブローカ17を含む。ステージブローカ16は、上述の管理ブローカであり、ワークフロー管理装置12と各IOT機器11間におけるステージの開始・終了に関する管理情報の送受を仲介する。データブローカ17は、IOT機器11同士、または、IOT機器11とステークホルダ端末13間におけるデータの送受を仲介する。
 ここでIOT機器制御システム10では、ワークフロー管理装置12が管理するワークフローがどのようなステージを有するか、また、各ステージにおいてエージェントがどのような処理をすべきかが予め決められ、IOT機器11の製造者に公開される。各IOT機器11は、ワークフロー管理装置12から特定のステージが通知された場合に、そのステージに応じた処理を行うよう実装される。
 例えば、後述の温度収集ステージについて、周囲の温度を取得するタスクを実行すべきであることが予め定められ、公開される。温度センサ22は、温度収集ステージの通知をサブスクライブしたことを契機に、周囲の温度を測定し、タスクの終了をステージブローカ16へパブリッシュし、測定した温度をデータブローカ17へパブリッシュするよう実装される。また後述の平均温度計算ステージについて、複数の温度データの平均を算出するタスクを実行すべきであることが予め定められ、公開される。温度計算ノード32は、平均温度計算ステージの通知をサブスクライブしたことを契機に、複数の温度センサ22が測定した温度の平均値を算出し、タスクの終了をステージブローカ16へパブリッシュし、算出した平均温度をデータブローカ17へパブリッシュするよう実装される。
 図6は、図5のワークフロー管理装置12の機能構成を示すブロック図である。ワークフロー管理装置12は、通信部60、制御部70、データ記憶部80を備える。通信部60は、所定の通信プロトコルにしたがって外部装置とデータを送受する。例えば、予め定められたメッセージプロトコルにしたがって、ステージブローカ16とのPUB-SUBスキームでのデータ送受を実行する。
 制御部70は、ワークフロー管理装置12の動作を制御する。また、ワークフロー管理、言い換えれば、複数のIOT機器11を分散協調制御するためのデータ処理を実行する。データ記憶部80は、制御部70によるデータ処理において参照され、また更新される各種データを記憶する記憶領域である。
 本明細書のブロック図で示す各ブロックは、ハードウェア的には、コンピュータのCPUやメモリをはじめとする素子や機械装置で実現でき、ソフトウェア的にはコンピュータプログラム等によって実現されるが、ここでは、それらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックはハードウェア、ソフトウェアの組合せによっていろいろなかたちで実現できることは、当業者には理解されるところである。
 例えば、制御部70の各機能ブロックに対応するソフトウェアモジュールを備えるアプリケーションプログラムがワークフロー管理装置12にインストールされてもよい。そして、ワークフロー管理装置12のCPUが、各ソフトウェアモジュールをメモリに読み出して実行することにより、制御部70の各機能ブロックの機能が発揮されてもよい。また、データ記憶部80の各機能ブロックは、ストレージやメモリ等の記憶装置がデータを記憶することにより実現されてもよい。
 データ記憶部80は、ワークフロー情報保持部82とステージ情報保持部84を含む。ワークフロー情報保持部82は、ワークフロー情報として、ワークフローが定める各ステージの前後関係と、各ステージから次のステージへ移行させる条件を保持する。典型的な移行条件は、ステージに予め対応づけられたタスクを終了したエージェントから、当該ステージのタスクを終了した旨の通知を受け付けることである。
 ただし、複数のエージェントが1つのステージのタスクを並列実行する場合、当該ステージから次のステージへの移行条件として、一部のエージェントからタスク終了通知を受け付けたことをもって次のステージへの以降を許可得することを定めることができる。言い換えれば、タスクを実行させた複数のエージェントの全てからタスク終了通知を受け付けなくても、複数のエージェントのうち所定数以上のエージェントからタスク終了通知を受け付ければ次のステージへ移行させることを定めることができる。
 図7は、実施の形態のワークフローを模式的に示す。実施の形態のワークフローは、概要で説明した事例1(例えば図1)に対応する形で、複数のステージ間の遷移を定め、また複数種類の実世界エージェントの動作を制御する。
 ワークフロー情報保持部82は、各ステージの前後関係として、ワークフロー開始後に、温度収集ステージ100と照度収集ステージ102に移行すること、温度収集ステージ100の次が平均温度計算ステージ104であることを示す情報を保持する。また、平均温度計算ステージ104の次がエアコン制御ステージ108であり、エアコン制御ステージ108の次がエネルギー会計計算ステージ112であることを示す情報を保持する。また、照度収集ステージ102の次が最小照度計算ステージ106であり、最小照度計算ステージ106の次が照明制御ステージ110であり、照明制御ステージ110の次がエネルギー会計計算ステージ112であることを示す情報を保持する。また、エネルギー会計計算ステージ112の終了によりワークフローが終了することを示す情報を保持する。
 またワークフロー情報保持部82は、温度収集ステージ100から平均温度計算ステージ104への移行条件として、100個の温度センサ22のうち50個以上の温度センサ22から温度測定タスクの終了が通知されることを定めている。また、平均温度計算ステージ104からエアコン制御ステージ108への移行条件として、温度計算ノード32から平均温度計算タスクの終了が通知されることを定めている。また、照度収集ステージ102から最小照度計算ステージ106への移行条件として、20個の照度センサ24のうち15個以上の照度センサ24から照度測定タスクの終了が通知されることを定めている。また、最小照度計算ステージ106から照明制御ステージ110への移行条件として、照度計算ノード34から最小照度計算タスクの終了が通知されることを定めている。
 図6に戻り、ステージ情報保持部84は、ワークフローが現在どのステージであるかを示すステージ情報を保持する。ステージ情報には、ワークフローのステージがそれまでとは異なる新たなステージに移行した場合に、新たなステージの識別情報(名称やID等)が記録される。
 ステージ情報は、現在のステージとして、複数のステージが同時に記録されることを許容する。図7の例では、温度収集ステージ100~平均温度計算ステージ104~エアコン制御ステージ108と、照度収集ステージ102~最小照度計算ステージ106~照明制御ステージ110が並列して進められる。したがってステージ情報保持部84は、現在のステージが温度収集ステージ100であり、かつ、照度収集ステージ102、最小照度計算ステージ106、照明制御ステージ110のいずれかでもあることを示すステージ情報を保持し得る。またステージ情報保持部84は、現在のステージが照度収集ステージ102であり、かつ、温度収集ステージ100、平均温度計算ステージ104、エアコン制御ステージ108のいずれかでもあることを示すステージ情報を保持し得る。
 制御部70は、ステージ通知部72、終了通知受付部74、移行判定部76、ステージ更新部78を含む。ステージ通知部72は、ステージ情報保持部84に保持されたステージ情報を監視し、ステージ情報が更新された場合に、現在のステージを示す情報(以下「現在ステージ情報」と呼ぶ。)をステージブローカ16へ送信する。これにより、現在のステージを1つ以上のIOT機器11へ通知し、現在のステージに応じた動作を1つ以上のIOT機器11に並列実行させる。
 ステージ通知部72が送信する現在ステージ情報は、現在のステージを識別可能な情報(例えばステージ名称やID)を含む。例えば、現在のステージの識別情報を示すトピックを付加したメッセージである。その一方、IOT機器11の動作態様を指定する内容は現在ステージ情報から排除されている。例えば現在ステージ情報は、IOT機器11の動作を直接的に規定するコマンドや、IOT機器11の動作時に参照され、IOT機器11の動作を間接的に規定するパラメータを含まない。このようにワークフロー管理装置12は、IOT機器11に対して現在のステージを通知しつつ、現在のステージに対する具体的な動作は各IOT機器11の実装に委ねる。これにより、IOT機器制御システム10における各IOT機器11の独立性を高め、またセキュリティを高める。
 終了通知受付部74は、各IOT機器11から送信された動作終了通知をステージブローカ16から受信する。動作終了通知は、ワークフローの現在のステージに対応する処理、言い換えれば、現在のステージで実行するよう定められたタスクが終了したことを示す情報であり、「タスク終了通知」とも言える。動作終了通知は、IOT機器11側で動作を終了したステージの識別情報を含むものであってよい。ただし動作終了通知は、IOT機器11におけるタスク処理で得られたデータ、例えば温度データや平均温度データを含まない。これらのデータは、データブローカ17を介して、IOT機器11同士で送受される。これにより、ワークフロー管理装置12は、ステージの開始、終了、移行判断に専念することができる。
 移行判定部76は、終了通知受付部74における動作終了通知の受信状況にもとづいて、ワークフローの現在のステージについてワークフロー情報保持部82に保持された次のステージへの移行条件が充足されたか否かを判定する。移行判定部76は、移行条件が充足されたことを検出すると、移行元のステージと移行先のステージの組み合わせをステージ更新部78へ通知する。
 例えば、温度収集ステージ100から平均温度計算ステージ104への移行条件として、100個の温度センサ22のうち半分の温度センサ22から温度測定タスクの終了が通知されることを定めることができる。この場合、移行判定部76は、温度収集ステージ100の動作が終了した旨を示す動作終了通知が50個以上受信された場合に上記移行条件が充足されたと判定してもよい。同様に、照度収集ステージ102から最小照度計算ステージ106への移行条件として、20個の照度センサ24のうち15個以上の照度センサ24から照度測定タスクの終了が通知されることを定めることができる。この場合、移行判定部76は、照度収集ステージ102の動作が終了した旨を示す動作終了通知が15個以上受信された場合に上記移行条件が充足されたと判定してもよい。
 ステージ更新部78は、現在のステージの移行条件が充足されたことが移行判定部76により判定された場合に、現在のステージを次のステージへ進めるようステージ情報保持部84に保持されたステージ情報を更新する。具体的には、移行判定部76から移行元ステージと移行先ステージの組み合わせが通知された場合に、ステージ情報に記録された移行元ステージを、移行先ステージへ切り替えるようステージ情報を更新する。
 またステージ更新部78は、複数のステージが現在のステージとしてステージ情報に記録されている場合、それら複数のステージのうち移行判定部76から通知された移行元ステージを、移行先ステージへ切り替えるようステージ情報を更新する。その一方、複数のステージのうち移行元ステージとして指定されないステージは、ステージ情報に記録されたままとし、すなわち現在のステージとして維持する。
 例えば、現在のステージが温度収集ステージ100と照度収集ステージ102であり、温度収集ステージ100の移行条件のみが充足された場合、ステージ更新部78は、現在のステージを平均温度計算ステージ104と照度収集ステージ102とするようステージ情報を更新する。その後、平均温度計算ステージ104の移行条件のみが充足された場合、ステージ更新部78は、現在のステージをエアコン制御ステージ108と照度収集ステージ102とするようステージ情報を更新する。このように、複数のステージを並列して進めるようワークフローが規定されている場合、IOT機器11の動作制御および次のステージへの遷移を、並列するステージ毎に独立して実行する。
 以上の構成によるIOT機器制御システム10の動作を以下説明する。
 図8は、IOT機器制御システム10の動作を示すシーケンス図である。図8は、図7のワークフローにしたがってワークフロー管理装置12がIOT機器11を制御する際の動作を示している。また図8は、概要で説明した事例1(例えば図2)に対応する。シーケンス図上、並列するステージ(例えば照度収集ステージ102と平均温度計算ステージ104等)の処理に前後関係があるように見えるが、並列するステージの処理は結果として前後関係が生じるものの、本質的には同時並列的に実行される。
 前提として、IOT機器11のそれぞれは、自身が動作すべき特定のステージに対して予め定められたトピック名をステージブローカ16およびデータブローカ17に事前に登録しておく。これにより、各IOT機器11は、上記特定のステージの開始を示すメッセージ、また、タスクを実行するために必要なデータを含むメッセージのサブスクライバとして動作する。また各IOT機器11は、上記特定のステージに対応する動作が実装される。例えば、温度センサ22は、温度収集ステージの開始を示す所定のトピック名をステージブローカ16に登録しておき、また、温度収集ステージにおいて温度測定処理を実行するよう定めたプログラムを搭載している。
 ワークフロー管理装置12は、定期的に、もしくは、ユーザの指示に応じて図7のワークフローを開始する。ワークフロー管理装置12のステージ更新部78は、現在のステージを、温度収集ステージ100および照度収集ステージ102とするようステージ情報を更新する。ステージ通知部72は、温度収集ステージを示すトピックを付加した現在ステージ情報をステージブローカ16へパブリッシュし(S2)、それとともに照度収集ステージのトピックを付加した現在ステージ情報をステージブローカ16へパブリッシュする(S4)。
 複数の温度センサ22のそれぞれは、温度収集ステージを示すトピックが付加された現在ステージ情報をステージブローカ16からサブスクライブし(S6)、周囲の温度を測定する。そして、温度測定結果を示すトピックを付加し、温度データを本文に含むメッセージをデータブローカ17へパブリッシュする(S8)。各温度センサ22は、温度収集ステージについての動作終了通知をステージブローカ16へパブリッシュし(S10)、ワークフロー管理装置12の終了通知受付部74は、各温度センサ22からの動作終了通知をステージブローカ16からサブスクライブする(S12)。
 これに並行して、複数の照度センサ24のそれぞれは、照度収集ステージを示すトピックが付加された現在ステージ情報をステージブローカ16からサブスクライブし(S14)、周囲の照度を測定する。そして、照度測定結果を示すトピックを付加し、照度データを本文に含むメッセージをデータブローカ17へパブリッシュする(S16)。各照度センサ24は、照度収集ステージについての動作終了通知をステージブローカ16へパブリッシュし(S18)、ワークフロー管理装置12の終了通知受付部74は、各照度センサ24からの動作終了通知をステージブローカ16からサブスクライブする(S20)。
 ワークフロー管理装置12の移行判定部76は、温度収集ステージについての動作終了通知の受信状況に応じて、温度収集ステージ100から平均温度計算ステージ104への移行条件が満たされたと判定する。例えば、数百個の温度センサ22のうち移行条件が定める個数である50個の温度センサ22からパブリッシュされた50個の動作終了通知をサブスクラブした場合に、移行条件が満たされたと判定する。ステージ更新部78は、現在のステージを温度収集ステージ100から平均温度計算ステージ104へ切り替えるようステージ情報を更新する。これに並行して、移行判定部76は、照度収集ステージについての動作終了通知の受信状況に応じて、照度収集ステージ102から最小照度計算ステージ106への移行条件が満たされたと判定する。例えば、数十個の照度センサ24のうち移行条件が定める個数の照度センサ24からパブリッシュされた当該個数の動作終了通知をサブスクラブした場合に、移行条件が満たされたと判定する。ステージ更新部78は、現在のステージを照度収集ステージ102から最小照度計算ステージ106へ切り替えるようステージ情報を更新する。
 このように実施の形態のワークフローでは、複数のステージ間の実行順序(言い換えれば前後関係)として半順序関係を規定することを許容する。例えば、温度収集ステージ100と照度収集ステージ102は半順序関係である。すなわち、これらのステージ間の実行順序は一意に定められておらず、ステージ間の実行順序を比較することはできない。言い換えれば、どちらのステージを先に開始してもよく、どちらのステージを先に終了してもよい。また、温度収集ステージ100の次の平均温度計算ステージ104と照度収集ステージ102も半順序関係である。すなわち、これらのステージ間の実行順序は一意に定められておらず、ステージ間の実行順序を比較することはできない。既述したように、このようなステージ間の順序関係はワークフロー情報保持部82に保持される。
 ステージ更新部78は、ワークフロー情報保持部82に保持された順序関係を参照し、温度収集ステージ100から平均温度計算ステージ104への移行条件が満たされた一方、照度収集ステージ102から最小照度計算ステージ106への移行条件が満たされていない場合、ワークフローの現在ステージが平均温度計算ステージ104であり、かつ、照度収集ステージ102でもあることを示すようステージ情報を更新する。すなわち、温度収集ステージ100・平均温度計算ステージ104側のステージ移行と、照度収集ステージ102・最小照度計算ステージ106側のステージ移行を独立して実行する。
 温度計算ノード32は、温度測定結果を示すトピックが付加された複数の温度データをデータブローカ17からサブスクライブする(S22)。照度計算ノード34は、照度測定結果を示すトピックが付加された複数の照度データをデータブローカ17からサブスクライブする(S24)。
 ワークフロー管理装置12のステージ通知部72は、平均温度計算ステージを示すトピックを付加した現在ステージ情報をステージブローカ16へパブリッシュし(S26)、温度計算ノード32はその現在ステージ情報をステージブローカ16からサブスクライブする(S28)。温度計算ノード32は、複数の温度センサ22で測定された温度にしたがって平均温度を算出し、平均温度計算結果を示すトピックを付加し、平均温度データを本文に含むメッセージをデータブローカ17へパブリッシュする(S30)。温度計算ノード32は、平均温度計算ステージについての動作終了通知をステージブローカ16へパブリッシュし(S32)、ワークフロー管理装置12の終了通知受付部74はその動作終了通知をステージブローカ16からサブスクライブする(S34)。エアコンコントローラ42は、平均温度計算結果を示すトピックが付加された平均温度データをデータブローカ17からサブスクライブする(S36)。
 これに並行して、ワークフロー管理装置12のステージ通知部72は、最小照度計算ステージを示すトピックを付加した現在ステージ情報をステージブローカ16へパブリッシュし(S38)、照度計算ノード34はその現在ステージ情報をステージブローカ16からサブスクライブする(S40)。照度計算ノード34は、複数の照度センサ24で測定された照度にしたがって最小照度を算出し、最小照度計算結果を示すトピックを付加し、最小照度データを本文に含むメッセージをデータブローカ17へパブリッシュする(S42)。照度計算ノード34は、最小照度計算ステージについての動作終了通知をステージブローカ16へパブリッシュし(S44)、ワークフロー管理装置12の終了通知受付部74はその動作終了通知をステージブローカ16からサブスクライブする(S46)。照明コントローラ44は、最小照度計算結果を示すトピックが付加された最小照度データをデータブローカ17からサブスクライブする(S48)。
 ワークフロー管理装置12の移行判定部76は、平均温度計算ステージについての動作終了通知の受信状況にしたがって、平均温度計算ステージ104からエアコン制御ステージ108への移行条件が満たされたと判定する。ステージ更新部78は、現在のステージを平均温度計算ステージ104からエアコン制御ステージ108へ切り替えるようステージ情報を更新する。これに並行して、移行判定部76は、最小照度計算ステージについての動作終了通知の受信状況にしたがって、最小照度計算ステージ106から照明制御ステージ110への移行条件が満たされたと判定する。ステージ更新部78は、現在のステージを最小照度計算ステージ106から照明制御ステージ110へ切り替えるようステージ情報を更新する。
 ワークフロー管理装置12のステージ通知部72は、エアコン制御ステージを示すトピックを付加した現在ステージ情報をステージブローカ16へパブリッシュし(S50)、エアコンコントローラ42はその現在ステージ情報をステージブローカ16からサブスクライブする(S52)。エアコンコントローラ42は、温度計算ノード32で決定された平均温度にしたがってエアコン52の新たな設定温度を決定し、その設定温度で動作するようエアコン52を制御する(S54)。この例ではエアコンコントローラ42とエアコン52が直接接続されるが、データブローカ17を介して間接的に接続されてもよい。
 エアコンコントローラ42は、エアコン制御結果を示すトピックを付加し、新たな設定温度を本文に含むメッセージをデータブローカ17へパブリッシュする(S56)。また、エアコンコントローラ42は、エアコン制御ステージについての動作終了通知をステージブローカ16へパブリッシュし(S58)、ワークフロー管理装置12の終了通知受付部74はその動作終了通知をステージブローカ16からサブスクライブする(S60)。
 これに並行して、ワークフロー管理装置12のステージ通知部72は、照明制御ステージを示すトピックを付加した現在ステージ情報をステージブローカ16へパブリッシュし(S62)、照明コントローラ44はその現在ステージ情報をステージブローカ16からサブスクライブする(S64)。照明コントローラ44は、照度計算ノード34で決定された最小照度にしたがって照明54のオンもしくはオフを決定し、照明54を点灯もしくは消灯させる(S66)。この例では照明コントローラ44と照明54が直接接続されるが、データブローカ17を介して間接的に接続されてもよい。
 照明コントローラ44は、照明制御結果を示すトピックを付加し、照明54のオンオフ状態を本文に含むメッセージをデータブローカ17へパブリッシュする(S68)。また、照明コントローラ44は、照明制御ステージについての動作終了通知をステージブローカ16へパブリッシュし(S70)、ワークフロー管理装置12の終了通知受付部74はその動作終了通知をステージブローカ16からサブスクライブする(S72)。
 会計計算ノード36は、エアコン制御結果を示すトピックが付加された設定温度データをデータブローカ17からサブスクライブする(S74)。これに並行して、会計計算ノード36は、照明制御結果を示すトピックが付加された照明オンオフ情報をデータブローカ17からサブスクライブする(S76)。
 ワークフロー管理装置12の移行判定部76は、エアコン制御ステージについての動作終了通知の受信状況にしたがって、エアコン制御ステージ108からエネルギー会計計算ステージ112への移行条件が満たされたと判定する。また移行判定部76は、照明制御ステージについての動作終了通知の受信状況にしたがって、照明制御ステージ110からエネルギー会計計算ステージ112への移行条件が満たされたと判定する。ステージ更新部78は、エアコン制御ステージ108からエネルギー会計計算ステージ112への移行条件が満たされ、かつ、照明制御ステージ110からエネルギー会計計算ステージ112への移行条件も満たされた場合に、現在のステージを、エアコン制御ステージ108および照明制御ステージ110から、エネルギー会計計算ステージ112へ切り替えるようステージ情報を更新する。
 このように実施の形態のワークフローでは、複数のステージ間の実行順序として半順序関係を規定することを許容する。例えば、エアコン制御ステージ108と照明制御ステージ110は半順序関係である。すなわち、これらのステージ間の実行順序は一意に定められておらず、ステージ間の実行順序を比較することはできない。言い換えれば、どちらのステージを先に開始してもよく、どちらのステージを先に終了してもよい。またここでは、エネルギー会計計算ステージ112は、エアコン制御ステージ108と照明制御ステージ110の両方が終了したことを条件として実行可能である。既述したように、このようなステージ間の順序関係はワークフロー情報保持部82に保持される。
 ステージ更新部78は、ワークフロー情報保持部82に保持された順序関係を参照し、エアコン制御ステージ108からエネルギー会計計算ステージ112への移行条件が満たされた一方、照明制御ステージ110からエネルギー会計計算ステージ112への移行条件が満たされていない場合に、エアコン制御ステージ108が終了した状態であり、かつ、照明制御ステージ110でもあることを示すようステージ情報を更新する。その後、照明制御ステージ110からエネルギー会計計算ステージ112の移行条件が満たされると、ステージ更新部78は、現在のステージをエネルギー会計計算ステージ112へ切り替えるようステージ情報を再度更新する。これにより、ワークフローをエネルギー会計計算ステージ112へ移行させる。
 ワークフロー管理装置12のステージ通知部72は、エネルギー会計計算ステージを示すトピックを付加した現在ステージ情報をステージブローカ16へパブリッシュし(S78)、会計計算ノード36はその現在ステージ情報をステージブローカ16からサブスクライブする(S80)。会計計算ノード36は、エアコンコントローラ42で決定されたエアコン52の設定温度と、照明コントローラ44で決定された照明54のオンオフにしたがって、エネルギー会計計算処理を実行する。会計計算ノード36は、エネルギー会計計算結果を示すトピックを付加し、エネルギー会計データを本文に含むメッセージをデータブローカ17へパブリッシュする(S82)。また、会計計算ノード36は、エネルギー会計計算ステージについての動作終了通知をステージブローカ16へパブリッシュする(S84)。
 ワークフロー管理装置12の終了通知受付部74は、エネルギー会計計算ステージについての動作終了通知をステージブローカ16からサブスクライブする(S86)。移行判定部76がエネルギー会計計算ステージ112からエンドステージへの移行条件が満たされたと判定すると、ワークフロー管理装置12における図7のワークフローの1サイクルの処理が完了する。なお、所定時間(10分等)が経過するたびに、ワークフロー管理装置12は図7のワークフローの処理を繰り返してもよく、すなわち、図8に示す動作を定期的に繰り返してもよい。
 ステークホルダ端末13は、エネルギー会計計算結果を示すトピックが付加されたエネルギー会計データをデータブローカ17からサブスクライブし(S88)、そのデータを所定の記憶装置に記憶させる。ステークホルダ端末13は、会計計算ノード36から定期的に通知されるエネルギー会計データを蓄積してもよく、複数回に亘り通知されたエネルギー会計データを1日単位や1月単位で集計する処理を実行してもよい。また、その集計結果を所定の記憶装置に記憶させ、また、ディスプレイや印刷装置へ出力してもよい。
 実施の形態のワークフロー管理装置12は、並列する複数のステージのタスクを複数のエージェントに並列して割当て、各エージェントにタスクを並列して実行させる。また、並列する各ステージを次のステージへ進めるか否かを、タスク割当先の各エージェントが互いに独立して送信するタスク終了通知の受信状況にもとづいて決定する。これにより、制御対象のエージェント数が増加しても、各エージェントを協調動作させたサービスの提供を効率的に実現することができる。すなわち、1つのサービス提供のために実行すべき複数のタスクの処理順序を半順序で定義可能にすることで、多数のエージェントによるタスク処理を効率的に制御し、効率的なサービス提供を実現する。
 例えば、あるステージの移行条件として、当該ステージのタスクを割当てた複数のエージェントのうち所定数のエージェントからタスク終了通知を受け付けた場合に次のステージへ移行することを定めることができる。この場合、具体的にどのエージェントからタスク終了通知を受け付けたかにはよらず、受信したタスク終了通知の個数が所定数に達したことを契機にステージ移行がなされる。これにより、タスク終了通知の送信元がエージェントAである場合の処理、エージェントBである場合の処理等、多くの種類の処理を定義する必要がなく、制御対象のエージェント数が増加しても、各エージェントを協調動作させたサービスの提供を効率的に実現することができる。
 また、実施の形態のIOT機器制御システム10では、ワークフロー管理装置12とIOT機器11間のデータフローのためのステージブローカ16と、IOT機器11同士のデータフローのためのデータブローカ17を別個に設けた。これにより、中継対象のデータの特性に合わせて、パフォーマンスやセキュリティ等の設定を最適化したブローカを設けることができ、システム全体のパフォーマンスやセキュリティを効果的に高めることができる。例えば、ステージブローカ16は、パフォーマンスよりもセキュリティを重点的に高めた設定とすることが望ましい。その一方、データブローカ17は、仲介するデータ数の多寡やデータサイズの大小に応じた設定がなされてもよく、仲介するデータの特性に応じて複数のデータブローカ17を設けてもよい。
 以上、本発明を実施の形態をもとに説明した。この実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
 第1の変形例を説明する。上記実施の形態では、ワークフロー管理装置12による制御対象のエージェントとしてIOT機器11を示したが、概要の事例2で示したように、エージェントは人であってもよい。この場合、ワークフロー管理装置12は、人が保持する情報端末に対して現在のステージを通知してもよい。この情報端末は、通知されたステージに応じたタスクの内容をディスプレイに表示させてもよい。人(すなわちタスク作業者)は、タスクが完了するとその旨を情報端末へ入力し、情報端末はワークフロー管理装置12へタスク終了通知を送信し、ワークフロー管理装置12は、そのタスク終了通知にしたがってステージを進行させてもよい。
 第2の変形例として、ステージの移行条件を含むタスク遷移述語について付言する。ワークフロー情報保持部82は、各ステージについて定められたタスク遷移述語を保持し、ステージ更新部78は、タスク遷移述語にしたがって各ステージの移行態様を決定する。タスク遷移述語には、ステージ移行に関する様々なAND条件、OR条件、NOT条件を記述可能である。
 あるステージのタスク遷移述語は、移行条件が満たされた場合に次のステージへ移行することを定め、かつ、現在のステージ情報を外部へ通知後(もしくは現在のステージへ移行後)の所定時間内に次のステージへの移行条件が満たされない(例えばタイマによるタイムアウトを検出した)場合に、代替的・例外的なステージ移行を実行することを定めてもよい。所定時間内に次のステージへの移行条件が満たされないとは、例えば、IOT機器11からのタスク終了通知を待つべき所定の待機時間が経過した場合である。同様に、タスク遷移述語は、タスクを実行したIOT機器11から異常を示すタスク終了通知が返された場合に、代替的・例外的なステージ移行を実行することを定めてもよい。
 ステージ更新部78は、所定時間内に移行条件が満たされない、または異常を示すタスク終了通知が返された場合に、代替的・例外的なステージ移行を実行してもよい。代替的・例外的なステージ移行は、それまでのワークフロー、もしくはそれまでとは異なるワークフローの特定のステージへ移行することでもよい。例えば、ワークフロー管理装置12が複数のワークフローによる外部機器の制御を並行して実行する場合に、どのワークフローで例外やエラーが検出された際にも、例外処理用の共通のワークフローの特定のステージへ移行することを規定したものでもよい。本変形例によると、ワークフローにおける多様なステージ遷移を実現でき、また、ワークフローによる外部機器制御に要求される様々なエラー処理、例外処理に柔軟に対応できる。
 第3の変形例を説明する。上記実施の形態では言及していないが、ワークフロー管理装置12により制御対象となるIOT機器11は、複数のタスクステージに対応した複数の機能を備えてもよく、それら複数の機能を呼び出すための複数のAPIを備えてもよい。複数のAPIは、例えば、ワークフロー管理装置12からステージAの開始が通知された場合に呼び出されるインタフェースAと、ステージBの開始が通知された場合に呼び出されるインタフェースBを含んでもよい。これにより、物理的に1つのIOT機器11に複数種類の役割(すなわちタスク)を実行させることができる。
 例えば、1つのIOT機器11が、複数種類の環境情報を検知するマルチセンサ機器の場合に、温度収集ステージ100を通知することで温度センサ22として機能させ、また、照度収集ステージ102を通知することで照度センサ24として機能させることができる。また例えば、1つのIOT機器11が、複数機器を集中制御するコントローラの場合に、エアコン制御ステージ108を通知することでエアコンコントローラ42として機能させ、また、照明制御ステージ110を通知することで照明コントローラ44として機能させることができる。
 なお、1つのIOT機器11は、1つのワークフロー管理装置12で動作する複数のワークフロー、または、複数のワークフロー管理装置12で動作する複数のワークフローからステージの通知を受け付け、各ワークフローから通知されたステージに応じたタスクを実行してもよい。すなわち、1つのIOT機器11によるサービスを複数のワークフローが利用してもよい。
 また、IOT機器11は、ワークフローとステージの組み合わせを単位としてタスクを識別してもよく、言い換えれば、ワークフローとステージの組み合わせと、実行すべきタスクとの対応関係を保持してもよい。この場合、ワークフロー管理装置12は、ワークフローの識別情報とステージの識別情報の組み合わせを、現在ステージ情報としてIOT機器11へ送信してもよい。IOT機器11は、呼び出し元のワークフローが異なれば、同じステージ名が通知されても異なるタスクを実行してもよく、逆に、呼び出し元のワークフローが異なれば、異なるステージ名が通知されても同じタスクを実行してもよい。
 第4の変形例を説明する。上記実施の形態では、ブローカを介したメッセージ技術により、ワークフロー管理装置12とIOT機器11間のデータフローと、複数のIOT機器11間のデータフローを実現したが、他の技術によりデータを送受してもよい。例えば、データの送信元装置と送信先装置間で公知のユニキャスト通信、マルチキャスト通信、P2P通信を実行してもよい。また、公知のデータ共有技術を使用してもよい。また、一方の装置がクラウドシステムへデータをアップロードし、他方の装置がクラウドシステムからデータをダウンロードすることで、情報通知およびデータ共有を実現してもよい。
 請求項に記載の各構成要件が果たすべき機能は、実施の形態および変形例において示された各構成要素の単体もしくはそれらの連携によって実現されることも当業者には理解されるところである。
 10 IOT機器制御システム、 11 IOT機器、 12 ワークフロー管理装置、 16 ステージブローカ、 17 データブローカ、 72 ステージ通知部、 74 終了通知受付部、 76 移行判定部、 78 ステージ更新部、 82 ワークフロー情報保持部、 84 ステージ情報保持部。
 本発明は、ワークフローを管理する装置に適用することができる。

Claims (7)

  1.  外部機器の動作を複数のステージに亘り制御するワークフローについて、各ステージから次のステージへの移行条件を保持する移行条件保持部と、
     前記ワークフローが現在どのステージであるかを示すステージ情報を保持するステージ情報保持部と、
     前記ワークフローの現在のステージを前記外部機器へ通知することにより、前記現在のステージに応じた動作を前記外部機器に実行させるステージ通知部と、
     前記外部機器から前記現在のステージの動作を終了した旨が通知されて前記現在のステージの移行条件が満たされた場合に、前記ワークフローのステージを進めるよう前記ステージ情報を更新するステージ更新部と、
     を備え、
     前記ワークフローのステージ間に半順序関係があり、第1ステージと第2ステージが比較不可能でかつ、第3ステージが第1ステージの次に実行可能であるが、第3ステージが第2ステージとは比較不可能な場合には、前記ステージ更新部は、第1ステージの移行条件が満たされた一方、第2ステージの移行条件が満たされていない場合に、前記ワークフローが第1ステージの次の第3ステージであり、かつ、第2ステージでもあることを示すよう前記ステージ情報を更新することを特徴とするワークフロー管理装置。
  2.  前記ステージ通知部は、前記ワークフローの現在のステージを識別可能な情報であり、かつ、前記外部機器の動作態様を指定する内容を排除した情報を前記外部機器へ送信することを特徴とする請求項1に記載のワークフロー管理装置。
  3.  前記ワークフローは複数の外部機器の動作を制御するものであり、
     前記複数の外部機器は、第1ブローカを介して、各機器が使用するデータを互いに送受し、
     前記ステージ通知部は、前記第1ブローカとは異なる第2ブローカを介して、前記ワークフローの現在のステージを識別可能な情報を前記複数の外部機器へ送信し、
     前記ステージ更新部は、前記第2ブローカを介して、前記複数の外部機器から動作終了通知を受信することを特徴とする請求項2に記載のワークフロー管理装置。
  4.  前記ステージ通知部は、前記ワークフローの現在のステージを複数の外部機器へ通知し、
     前記複数のステージのうち少なくとも1つの移行条件は、前記複数の外部機器の全てから動作終了通知がなくても、所定数の外部機器から動作終了通知を受け付けた場合に次のステージへ移行することを定めることを特徴とする請求項1から3のいずれかに記載のワークフロー管理装置。
  5.  外部機器の動作を複数のステージに亘り制御するワークフローについて、各ステージから次のステージへの移行条件を保持する移行条件保持部と、
     前記ワークフローが現在どのステージであるかを示すステージ情報を保持するステージ情報保持部と、
     前記ワークフローの現在のステージを前記外部機器へ通知することにより、前記現在のステージに応じた動作を前記外部機器に実行させるステージ通知部と、
     前記外部機器から前記現在のステージの動作を終了した旨が通知されて前記現在のステージの移行条件が満たされた場合に、前記ワークフローのステージを進めるよう前記ステージ情報を更新するステージ更新部と、
     を備え、
     前記ワークフローのステージ間に半順序関係があり、第1ステージと第2ステージが比較不可能でかつ、第3ステージが第1ステージと第2ステージの次に実行可能である場合には、前記ステージ更新部は、第1ステージの移行条件が満たされた一方、第2ステージの移行条件が満たされていない場合に、前記ワークフローが第1ステージを終了した状態であり、かつ、第2ステージでもあることを示すよう前記ステージ情報を更新し、第2ステージの移行条件が満たされた場合に前記ワークフローを第3ステージへ移行させることを特徴とするワークフロー管理装置。
  6.  外部機器の動作を複数のステージに亘り制御するワークフローについて、所定の記憶領域に記憶された前記ワークフローが現在どのステージであるかを示すステージ情報にしたがって、前記ワークフローの現在のステージを前記外部機器へ通知することにより、前記現在のステージに応じた動作を前記外部機器に実行させるステップと、
     前記外部機器から前記現在のステージの動作を終了した旨が通知されて、前記現在のステージから次のステージへの予め定められた移行条件が満たされた場合に、前記ワークフローのステージを進めるよう前記ステージ情報を更新するステップと、
     をコンピュータが実行し、
     前記ワークフローのステージ間に半順序関係があり、第1ステージと第2ステージが比較不可能でかつ、第3ステージが第1ステージの次に実行可能であるが、第3ステージが第2ステージとは比較不可能な場合には、前記更新するステップは、第1ステージの移行条件が満たされた一方、第2ステージの移行条件が満たされていない場合に、前記ワークフローが第1ステージの次の第3ステージであり、かつ、第2ステージでもあることを示すよう前記ステージ情報を更新することを特徴とするワークフロー管理方法。
  7.  外部機器の動作を複数のステージに亘り制御するワークフローについて、所定の記憶領域に記憶された前記ワークフローが現在どのステージであるかを示すステージ情報にしたがって、前記ワークフローの現在のステージを前記外部機器へ通知することにより、前記現在のステージに応じた動作を前記外部機器に実行させる機能と、
     前記外部機器から前記現在のステージの動作を終了した旨が通知されて、前記現在のステージから次のステージへの予め定められた移行条件が満たされた場合に、前記ワークフローのステージを進めるよう前記ステージ情報を更新する機能と、
     をコンピュータに実現させ、
     前記ワークフローのステージ間に半順序関係があり、第1ステージと第2ステージが比較不可能でかつ、第3ステージが第1ステージの次に実行可能であるが、第3ステージが第2ステージとは比較不可能な場合には、前記更新する機能は、第1ステージの移行条件が満たされた一方、第2ステージの移行条件が満たされていない場合に、前記ワークフローが第1ステージの次の第3ステージであり、かつ、第2ステージでもあることを示すよう前記ステージ情報を更新することを特徴とするワークフロー管理プログラム。
PCT/JP2015/061431 2014-04-15 2015-04-14 ワークフロー管理装置、ワークフロー管理方法およびワークフロー管理プログラム WO2015159873A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US15/304,218 US20170039501A1 (en) 2014-04-15 2015-04-14 Workflow management apparatus, workflow management method, and workflow management program
EP15779716.8A EP3133538A4 (en) 2014-04-15 2015-04-14 Workflow management apparatus, workflow management method, and workflow management program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2014-083629 2014-04-15
JP2014083629A JP6261079B2 (ja) 2014-04-15 2014-04-15 ワークフロー管理装置、ワークフロー管理方法およびワークフロー管理プログラム

Publications (1)

Publication Number Publication Date
WO2015159873A1 true WO2015159873A1 (ja) 2015-10-22

Family

ID=54324078

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2015/061431 WO2015159873A1 (ja) 2014-04-15 2015-04-14 ワークフロー管理装置、ワークフロー管理方法およびワークフロー管理プログラム

Country Status (4)

Country Link
US (1) US20170039501A1 (ja)
EP (1) EP3133538A4 (ja)
JP (1) JP6261079B2 (ja)
WO (1) WO2015159873A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017073009A1 (ja) * 2015-10-27 2017-05-04 日本電気株式会社 M2mノード装置、制御方法、及びプログラムが格納された非一時的なコンピュータ可読媒体

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6380902B2 (ja) 2016-06-15 2018-08-29 株式会社エム・クレスト 遠隔監視システム用端末、遠隔監視用プログラム及び遠隔監視システム
WO2018182661A1 (en) * 2017-03-31 2018-10-04 Intel Corporation Declarative intentional programming in machine-to-machine systems
US11194624B2 (en) * 2017-05-30 2021-12-07 Nec Corporation Partial order procedure planning device, partial order procedure planning method and partial order procedure planning program
US10742653B2 (en) 2018-03-23 2020-08-11 International Business Machines Corporation Automated individualized network security controls for internet of things (IoT) devices
US11140180B2 (en) 2018-03-23 2021-10-05 International Business Machines Corporation Guard system for automatic network flow controls for internet of things (IoT) devices
US11743350B2 (en) * 2021-01-07 2023-08-29 The Toronto-Dominion Bank System and method for integrating external services into process workflow environments
US11928626B2 (en) 2021-01-07 2024-03-12 The Toronto-Dominion Bank System and method for persisting data generated in executing a process workflow
US11561827B2 (en) 2021-01-07 2023-01-24 The Toronto-Dominion Bank System and method for executing a dynamic routing service
US20220398097A1 (en) * 2021-06-14 2022-12-15 Adobe Inc. Interactive and corporation-wide work analytics overview system

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001331468A (ja) * 2000-05-19 2001-11-30 Nec Corp 複数のコンピュータ間の連携業務フロー管理システム
WO2013168419A1 (ja) * 2012-05-10 2013-11-14 国立大学法人東京工業大学 情報処理システムおよびエネルギー情報の記録装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11306244A (ja) * 1998-04-16 1999-11-05 Hitachi Ltd ワーク管理システム
US7653566B2 (en) * 2000-11-30 2010-01-26 Handysoft Global Corporation Systems and methods for automating a process of business decision making and workflow
JP2004362050A (ja) * 2003-06-02 2004-12-24 Mitsubishi Electric Corp ワークフロー管理装置
US20060010025A1 (en) * 2004-07-09 2006-01-12 Sap Aktiengesellschaft E-mail notification support for workflows
US8341590B1 (en) * 2007-12-12 2012-12-25 Accurev, Inc. System for relating workflow status to code component status in a software project
US20060059423A1 (en) * 2004-09-13 2006-03-16 Stefan Lehmann Apparatus, system, and method for creating customized workflow documentation
US20130179208A1 (en) * 2012-01-11 2013-07-11 Microsoft Corporation Workflow tasks

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001331468A (ja) * 2000-05-19 2001-11-30 Nec Corp 複数のコンピュータ間の連携業務フロー管理システム
WO2013168419A1 (ja) * 2012-05-10 2013-11-14 国立大学法人東京工業大学 情報処理システムおよびエネルギー情報の記録装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
HIDEKI TANUMA: "Development of Agent-Based Social Simulation Language: SOARS", THE TRANSACTIONS OF THE INSTITUTE OF ELECTRONICS, INFORMATION AND COMMUNICATION ENGINEERS, vol. J90-D, 1 September 2007 (2007-09-01), pages 2415 - 2422, XP008184708 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017073009A1 (ja) * 2015-10-27 2017-05-04 日本電気株式会社 M2mノード装置、制御方法、及びプログラムが格納された非一時的なコンピュータ可読媒体

Also Published As

Publication number Publication date
JP2015204013A (ja) 2015-11-16
EP3133538A1 (en) 2017-02-22
EP3133538A4 (en) 2017-08-30
US20170039501A1 (en) 2017-02-09
JP6261079B2 (ja) 2018-01-17

Similar Documents

Publication Publication Date Title
JP6261079B2 (ja) ワークフロー管理装置、ワークフロー管理方法およびワークフロー管理プログラム
CN104067257B (zh) 自动化事件管理系统,管理事件方法及事件管理系统
Giang et al. Developing iot applications in the fog: A distributed dataflow approach
Popa et al. Deep learning model for home automation and energy reduction in a smart home environment platform
Nati et al. Smartcampus: A user-centric testbed for internet of things experimentation
CN103034536B (zh) 提高有状态应用的可用性
JP2019503129A (ja) モノのインターネット・エッジ・セキュア・ゲートウェイを使用するための装置および方法
CN105745585B (zh) 卸载人机交互任务
JP5238829B2 (ja) データ収集装置、データ収集プログラム、およびデータ収集システム
JP6927557B2 (ja) 管理システム
US10725794B2 (en) Data processing device, data processing method, setting management device, and data processing system
US10320605B2 (en) Rapid gateway swap
JP2010541077A (ja) 同期データおよびメタデータの交換
Sai et al. Smart Home Messenger Notifications System using IoT
JP2020149630A (ja) 制御システム、設定装置、および設定プログラム
Prist et al. Cyber-physical manufacturing systems: An architecture for sensor integration, production line simulation and cloud services
WO2016190894A1 (en) Multiple gateway virtualization
Nguyen et al. Software-defined virtual sensors for provisioning iot services on demand
JP5404943B2 (ja) データ収集装置、データ収集プログラム、およびデータ収集システム
Pi Puig et al. Intelligent Distributed System for Energy Efficient Control
Tao et al. Hybrid cloud architecture for cross-platform interoperability in smart homes
Javed et al. Fog paradigm for local energy management systems
Fortino et al. Decentralized management of building indoors through embedded software agents
Mehanovic et al. Brume-a horizontally scalable and fault tolerant building operating system
US20240104270A1 (en) Sustainable and self-adaptive federated digital twin framework

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 15779716

Country of ref document: EP

Kind code of ref document: A1

REEP Request for entry into the european phase

Ref document number: 2015779716

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 15304218

Country of ref document: US

Ref document number: 2015779716

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE