US9342356B2 - Task execution control for generating context information of a user to locate available services - Google Patents
Task execution control for generating context information of a user to locate available services Download PDFInfo
- Publication number
- US9342356B2 US9342356B2 US14/041,551 US201314041551A US9342356B2 US 9342356 B2 US9342356 B2 US 9342356B2 US 201314041551 A US201314041551 A US 201314041551A US 9342356 B2 US9342356 B2 US 9342356B2
- Authority
- US
- United States
- Prior art keywords
- task
- execution
- service
- information
- user
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related, expires
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0631—Resource planning, allocation, distributing or scheduling for enterprises or organisations
- G06Q10/06311—Scheduling, planning or task assignment for a person or group
Definitions
- the embodiments discussed herein are related to a task execution controller, a task execution control system, and task execution control method that execute tasks according to the state of a user.
- context represents information indicative of the situation of a person and/or a thing.
- the context of a user A is information indicating the name of an office, which represents the current location of the user A, the current time, etc.
- a task means work that is to be executed by the user, a terminal of the user, or a peripheral device of the user. For example, when the user enters a room, a task may be “to turn on lights in the room”, and when the user prints out documents, a task may be “to print sentences using a printer nearby”.
- a conventional technique related to task execution support using context in a content distribution network, the content desired by a user is moved to storage near an access point for the user, based on context information of the user (information indicating the user's position, a network use status, a work status), to perform load distribution (see, for example, Japanese Laid-Open Patent Publication No. 2004-348495).
- context information of a user information indicating the user's position, a network use status, a work status
- a suitable presence information providing application is executed according to the context of the user (see., for example, Japanese Laid-Open Patent Publication No. 2008-282068).
- a service provided by a peripheral device for executing a task cannot be confirmed, and therefore, a suitable task cannot be selected by the service provided by the peripheral device.
- This service represents a function that is provided by the peripheral device and has low granularity, such as a service performed through the Universal Plug and Play (UPnP) protocol.
- UUPnP Universal Plug and Play
- a specific example of such a service is printing by a printer, etc.
- the conventional techniques offer a system that assumes execution of a single task only. As a result, when multiple tasks are present, the system cannot select and execute a task in an execution order determined by considering the context of the user and therefore, cannot efficiently execute the service desired by the user.
- the service desired by the user is assumed to be a service made up of a combination of tasks or each different service that the user enjoys at different locations to which the user moves.
- the system of the conventional techniques cannot support such a service.
- a task execution controller includes a context generating unit that generates context information concerning a user and a surrounding situation of the user; a task managing unit that stores multiple tasks the user attempts to execute, selects a task according to the context information and a predetermined task selection rule, and controls execution of the task; and a service managing unit that confirms services executed by a device used for execution of the task, gives notification of a service corresponding to the execution of the task selected by the task managing unit, to the device and causes the device to perform the service.
- the task managing unit selects a task by using, as the task selection rule, information of priority levels of tasks and an execution-related dependency relation between tasks preset among the tasks.
- FIG. 1 depicts a schematic configuration of a task execution control system according to embodiments
- FIG. 2 depicts a detailed configuration of a task execution control system according to a first embodiment
- FIG. 3 is a block diagram for explaining an information collecting function
- FIG. 4 is an explanatory diagram of a process by a context generating unit
- FIG. 5 is a flowchart of a process by the context generating unit
- FIG. 6 is an explanatory diagram of a process by a task managing unit
- FIG. 7 is a flowchart of a process by the task managing unit
- FIG. 8 is an explanatory diagram of a process by a service managing unit
- FIG. 9 is a flowchart of a process by the service managing unit
- FIG. 10 is an explanatory diagram of a process by a peripheral device linking unit
- FIG. 11 is a flowchart of a service search process by the peripheral device linking unit
- FIG. 12 is a flowchart of a process related to a task controller executed of the peripheral device linking unit
- FIG. 13 is an explanatory diagram of a process by a peripheral device
- FIG. 14A is a table indicating specific examples of tasks
- FIG. 14B is an explanatory diagram of dependency relations between tasks
- FIG. 15 is a table of an example of data collected from a terminal or peripheral device
- FIG. 16 is a table of an example of generated context information
- FIG. 17 is table of an example of context acquisition control information
- FIG. 18 is a table of an example of a task selection rule
- FIG. 19 is a table of an example of a task/service correspondence relation
- FIG. 20 is a table of an example of device/service definition information
- FIG. 21A is a table of an example of a task selection rule
- FIG. 21B is an explanatory diagram of the dependency relations between tasks
- FIG. 22 is a table of an example of a task/service correspondence relation
- FIG. 23 is a table of an example of context acquisition control information
- FIG. 24 is a table of an example of additional information of registered tasks
- FIG. 25 is a sequence diagram of a task execution procedure
- FIG. 26 depicts a configuration of a task execution control system according to a second embodiment
- FIG. 27 is a flowchart of a process by the task managing unit
- FIG. 28 is a flowchart of a process that is executed when a task ends at the task managing unit and the terminal is suspended;
- FIGS. 29A and 29B are flowcharts of a process by the task managing unit of checking a service for a task standing by for execution;
- FIG. 30 is a flowchart of a process executed by the terminal
- FIGS. 31A, 31B, 31C, and 31D are sequence diagrams of a procedure of executing a task
- FIG. 32 is a table of an example of context information
- FIG. 33 is a table of an example of task management information
- FIG. 34 is a table of an example of task management information
- FIG. 35 is a table of an example of task controller management information
- FIG. 36 is a table of an example of task/service corresponding information.
- FIG. 37 is a table of task execution management information under management by the task scheduler.
- the disclosed technique is a technique for controlling the execution of a task of a user.
- a task execution controller that supervises task execution control performs the following control processes.
- a task management function selects a task to be executed, based on the context of the user.
- a selection rule (execution-related dependency relation between tasks, indicative of priority levels and task flows) is set for each task.
- a service management function determines whether a task is executable, based on available service information that the output device (terminal, peripheral device, etc.) has.
- a peripheral device control function controls an application executed by the terminal and the peripheral device, causes the peripheral device to execute the task, and provides a service corresponding to the context of the user.
- FIG. 1 depicts a schematic configuration of a task execution control system according to embodiments.
- a task execution control system 100 includes a server 101 , multiple terminals 102 , and multiple peripheral devices (controlled devices) 103 .
- the server 101 , terminals 102 , and peripheral devices 103 are interconnected through an information communication network 104 and exchange various types of information.
- the information communication network is provided as a wired network or a radio network.
- the server 101 is a computer that can communicate with the terminals 102 and with the peripheral devices 103 , and has functions of context generation, task management, service management, etc. Each function of the server 101 can be implemented by causing a CPU to execute software stored in ROM, RAM, etc., and can also be implemented by hardware.
- Each terminal 102 is a device possessed by the user and includes an information communication unit and a computer processing unit, and is provided as, for example, a PC, note PC, cellular phone, PDA, smart phone, etc.
- the terminal 102 may be equipped with a terminal built-in sensor 112 , such as GPS for position measurement and an acceleration sensor for acceleration detection.
- the terminal 102 aggregates information concerning measurement by the terminal built-in sensor 112 and sends the measurement information to the server 101 , which can use the measurement information as information for context generation.
- One terminal 102 can communicate with the peripheral devices 103 through the information communication network 104 .
- Each function of the terminal 102 can be implemented by causing a CPU to execute software stored in ROM, RAM, etc., and can also be implemented by hardware.
- Each peripheral device 103 has a controlled unit 113 that can actuate various functions of the peripheral device 103 using information from the information communication unit and the information communication network 104 .
- the peripheral device 103 is provided as, for example, a computer, printer, projector, TV set, lighting, etc.
- the peripheral device 103 may be equipped with a device built-in sensor 114 , such as GPS and an acceleration sensor.
- the peripheral device 103 aggregates information concerning measurement by the device built-in sensor 114 and sends the measurement information to the server 101 , which can use the measurement information as information for context generation.
- the user's terminal 102 may be used as the peripheral device 103 .
- FIG. 2 depicts a detailed configuration of a task execution control system according to a first embodiment.
- the internal functions of the server 101 , the terminal 102 , and the peripheral device 103 of the task execution control system 100 will hereinafter be described.
- the server 101 includes a context generating unit 201 , a task managing unit 202 , a service managing unit 203 , and a sensor/terminal information aggregating unit 204 .
- the context generating unit 201 makes a judgment on the user and the surroundings thereof (context) and generates information (context) of the user and the surroundings.
- the context indicates, for example, a place; time; actions, physical condition, and ability of the user; the surrounding environment of the user; etc.
- the context also includes information concerning work that the user is engaged in, such as information of a schedule and a job to execute.
- the generated context information is output to the task managing unit 202 .
- the task managing unit 202 retains task information, and controls task execution according to the context of the user and information of the peripheral device 103 .
- the task managing unit 202 includes a context acquisition control information storing unit 211 , a registered task storing unit 212 , a task selection rule storing unit 213 , and a task selecting unit 214 .
- the context acquisition control information storing unit 211 transmits to the context generating unit 201 , the granularity of context and timing of context acquisition as context acquisition control information.
- the registered task storing unit 212 stores a list of tasks registered by the user.
- the task selection rule storing unit 213 sets the order in which tasks are to be executed, based on the priority order of the tasks and work flow.
- the task selecting unit 214 selects an execution task from the registered task storing unit 212 according to a task selection rule, and performs scheduling of task execution via a task scheduler 214 a.
- the task selection rule is set in the form of a table in which a context condition for each task, the priority level (priority order) of each task, and dependency task information indicating the dependency of each task on another task (dependency task ID) are correlated with each other for each task to which a task ID is given.
- a task ID is an ID for identifying a task.
- a context condition is a condition that is checked against information from the context generating unit 201 . When the condition matches the information, the task corresponding to the condition is executed.
- a priority level is set so that when multiple executable tasks are present, the tasks are executed in descending order of priority level.
- a dependency task ID is the ID of a task that must end before the execution of an execution task.
- the service managing unit 203 confirms available services of the peripheral device 103 and notifies the task managing unit 202 , and to execute a task selected by the task managing unit 202 , transmits a command or program for using a necessary service to the terminal 102 .
- the service managing unit 203 includes a task/service correspondence relation storing unit 221 , an available service cache 222 , an available service checking unit 223 , a task/service checking unit 224 , a task/controller storing unit 225 , a task/controller managing unit 226 , and a device/service definition information storing unit 227 .
- the task/service correspondence relation storing unit 221 stores correspondence relation information of services necessary for executing tasks.
- the correlation between a task and a service can be obtained by referring to a table.
- the available service cache 222 temporarily stores a service notified from the terminal 102 that is available at the peripheral device 103 that is near the terminal 102 .
- the available service checking unit 223 checks whether a service for executing a task is present by referring to the available service cache 222 , and if no service is present, makes a search request to the terminal 102 .
- the task/service checking unit 224 acquires service information corresponding to the task, from the task/service correspondence relation storing unit 221 , and compares the acquired service information against service information acquired from the available service checking unit 223 .
- the task controller storing unit 225 stores a task controller for executing a task.
- the task controller is software that controls a service for executing a task.
- One task controller can control multiple tasks.
- the task/controller managing unit 226 acquires the controller corresponding to the task, from the task controller storing unit 225 , and transmits the acquired controller to the terminal 102 .
- the device/service definition information storing unit 227 stores a device/service definition of the peripheral device 103 and transmits the device/service definition to the terminal 102 .
- the device/service definition is data describing the device type of the peripheral device 103 and the service that the controlled unit 113 of the peripheral device 103 can provide or is a file describing a service.
- the device/service definition is composed of an XML file describing a device definition and a service definition in an UPnP platform.
- the sensor/terminal information aggregating unit 204 aggregates data based on sensor information transmitted from the terminal 102 or the peripheral device 103 , or based on available service information of the peripheral device 103 , transmitted from the available service checking unit 223 , and transmits the aggregated data as information for context generation, to the context generating unit 201 .
- the terminal 102 includes the terminal built-in sensor 112 , a peripheral device linking unit 231 , and a sensor/terminal information aggregating unit 232 .
- the peripheral device linking unit 231 searches a service of the peripheral device 103 that is near the terminal 102 and communicates the searched service to the server 101 , and controls the peripheral device 103 according to a program or command from the server 101 .
- the peripheral device linking unit 231 includes a service searching/notifying unit 233 and a task controller executing unit 234 .
- the service searching/notifying unit 233 searches a service of the peripheral device 103 near the terminal 102 and notifies the server 101 of the found service.
- a service for example, M-SEARCH in the UPnP protocol is used.
- the task controller executing unit 234 downloads a task controller transmitted from the server 101 and supervises control over the peripheral device 103 and execution of the application 235 .
- the sensor/terminal information aggregating unit 232 collects and aggregates data from sensor information provided by the device built-in sensor 114 of the peripheral device 103 near the terminal 102 , and transmits the aggregated data to the server 101 .
- the peripheral device 103 includes the controlled unit 113 , the device built-in sensor 114 , and a responding/advertising unit 241 .
- the responding/advertising unit 241 makes a response to a device search message from the terminal 102 near the peripheral device 103 , and regularly advertises the presence of the peripheral device 103 and device information to the terminal 102 .
- the controlled unit 113 follows a control command from the terminal 102 and controls a function that the peripheral device 103 has.
- FIG. 3 is a block diagram for explaining an information collecting function.
- a sensor information collecting process by the sensor/terminal information aggregating unit 204 and the sensor/terminal information aggregating unit 232 incorporated in the server 101 and the terminal 102 , respectively, will be described, referring to FIG. 3 .
- Sensor information aggregated by the sensor/terminal information aggregating unit 232 of the terminal 102 is collected by the sensor/terminal information aggregating unit 204 of the server 101 , where the sensor information is processed in the same manner as in the sensor/terminal information aggregating unit 232 in the terminal 102 .
- the sensor information aggregated by the terminal 102 may be aggregated by the sensor/terminal information aggregating unit 232 in a different terminal 102 , without being transmitted directly to the sensor/terminal information aggregating unit 204 of the server 101 and then transmitted as aggregated information, to the server 101 .
- Data measured by the device built-in sensor 114 in the peripheral device 103 may be transmitted directly to the sensor/terminal information aggregating unit 204 in the server 101 , without being transmitted to the sensor/terminal information aggregating unit 232 of the terminal 102 .
- the sensor/terminal information aggregating unit 232 of the terminal 102 can aggregate measurement data for reducing the volume of traffic and data processing required for transferring sensor information to the server 101 .
- the sensor/terminal information aggregating unit 232 averages data measured at 10:00:00 and data measured at 10:00:05, and then replaces both data with the calculated average as data measured at 10:00:00. In this manner, the data of two measurements are aggregated into one that is of a smaller size and transferred to the server 101 .
- FIG. 4 is an explanatory diagram of a process by the context generating unit.
- a process of generating context and transmitting context information to the task managing unit 202 by the context generating unit 201 of the server 101 will be described.
- the context generating unit 201 acquires from the sensor/terminal information aggregating unit 204 , sensor information and information of the peripheral device 103 and also acquires context acquisition control information from the context acquisition control information storing unit 211 . Based on the sensor information, information of the peripheral device 103 , and context acquisition control information, the context generating unit 201 generates context and sends the context to the task selecting unit 214 .
- FIG. 5 is a flowchart of the process by the context generating unit.
- the context generating unit 201 acquires from the sensor/terminal information aggregating unit 204 , sensor information and information of the peripheral device 103 (step S 501 ). Based on the acquired information, the context generating unit 201 generates context (step S 502 ). The context generating unit 201 determines whether context acquisition control information has been received from the task managing unit 202 (step S 503 ). If the context acquisition control information has been received (step S 503 : YES), the context generating unit 201 determines whether it is time to acquire the context indicated by the context control information (step S 504 ).
- step S 504 If it is time to acquire the context (step S 504 : YES), the context generating unit 201 processes the context (into an abstract or specific form) based on the context acquisition control information (step S 505 ), and transmits context information to the task managing unit 202 (step S 506 ).
- step S 504 the context generating unit 201 ends the process, and again executes the operations at step S 501 and at subsequent steps, at the next time to acquire context.
- step S 503 determines at step S 503 that the context acquisition control information has not yet been received from the task managing unit 202 (step S 503 : NO)
- the context generating unit 201 receives context acquisition control information from the task managing unit 202 (step S 507 ), and executes the operations at step S 504 and at subsequent steps.
- FIG. 6 is an explanatory diagram of a process by the task managing unit.
- a process by the task managing unit 202 of selecting a task and transmitting task information to the service managing unit 203 will be described.
- the task selecting unit 214 selects an executable task from the registered task storing unit 212 , based on context information and a task selection rule (including information of priority levels, dependency task IDs, etc.) stored in the task selection rule storing unit 213 . If one or more executable tasks are present, based on information from the service managing unit 203 (task/service checking unit 224 ), the task selecting unit 214 transmits to the service managing unit 203 , information of a task having the highest priority level among selected tasks.
- a task selection rule including information of priority levels, dependency task IDs, etc.
- An administrator terminal 102 a is connected to the server 101 (task managing unit 202 ), in which context acquisition control information is stored in the context acquisition control information storing unit 211 , task information is stored in the registered task storing unit 212 , and information of the priority levels (priority order) of tasks and dependency tasks (dependency task IDs) is stored in the selection rule storing unit 213 .
- FIG. 7 is a flowchart of a process by the task managing unit.
- a process executed by the task selecting unit 214 of the task managing unit 202 will be described.
- the task selecting unit 214 awaits the acquisition of context information by the context generating unit 201 (step S 701 ), and then acquires the context information from the context generating unit 201 (step S 702 ).
- the task selecting unit 214 determines whether data matching the received context information is present in a task selection rule table (step S 703 ). If matching data is present (step S 703 : YES), the task selecting unit 214 determines whether a task having a dependency task that has ended is present concerning the matching data (step S 704 ).
- step S 704 YES
- the task selecting unit 214 selects the tasks having a dependency task that has ended, and transmits to the service managing unit 203 , information of the task that has the highest priority order among the selected tasks (step S 705 ). If data matching the received context information is not present at step S 703 (step S 703 : NO) and no task having a dependency task that has ended is present at step S 704 (step S 704 : NO), the task selecting unit 214 ends the task selecting process.
- the task selecting unit 214 determines whether a non-executable task message has been received from the service managing unit 203 (step S 706 ). If a non-executable task message has been received (step S 706 : YES), the task selecting unit 214 again selects based on the context information and the task selection rule, a task to be executed from among tasks indicated by task information stored by the registered task storing unit 212 and excluding the non-executable task, (step S 707 ), and returns to step S 703 . If a non-executable task message has not been received from the service managing unit 203 (step S 706 : NO), the task selecting unit 214 ends the task selecting process.
- FIG. 8 is an explanatory diagram of a process by the service managing unit. A process for confirming a service and transmitting a task controller by the service managing unit 203 will be described.
- the task/service checking unit 224 acquires information of a task for which notification has been received from the task managing unit 202 (task selecting unit 214 ).
- the task/service checking unit 224 also acquires from the task/service correspondence relation storing unit 221 , service information corresponding to the task and acquires service information from the available service checking unit 223 .
- the task/service checking unit 224 thus checks the transmitted information of the task against the service information to see if the task is executable.
- the task controller managing unit 226 acquires executable task information (execution task information) from the task/service checking unit 224 , further acquires the task controller corresponding to the executable task information from the task controller storing unit 225 , and transmits the acquired task controller to the terminal 102 .
- the device/service definition information storing unit 227 stores the device/service definition of the peripheral device 103 .
- the terminal 102 refers to the device/service definition information storing unit 227 for a service of the peripheral device 103 searched by the terminal 102 , and receives notification of the service.
- the available service cache 222 stores device service information from the terminal 102 , and is referred to by the available service checking unit 223 when the available service checking unit 223 checks a service to use.
- the device service information stored in the available service cache 222 is deleted after a given period elapses.
- the administrator terminal 102 a is connected to the server 101 (service managing unit 203 ), in which information of the correlation between tasks and services is stored in the task/service correspondence relation storing unit 221 , task controllers are stored in the task controller storing unit 225 , and device/service definitions are stored in the device/service definition information storing unit 227 .
- FIG. 9 is a flowchart of a process by the service managing unit.
- the process executed by the service managing unit 203 will be described.
- the task/service checking unit 224 awaits acquisition of task information by the task managing unit 202 (step S 901 ), and then acquires the task information from the task managing unit 202 (step S 902 ).
- the task/service checking unit 224 acquires from the task/service correspondence relation storing unit 221 , a service for executing the task indicated by the task information (step S 903 ).
- the task/service checking unit 224 checks whether service information of the acquired service is present in the available service cache 222 via the available service checking unit 223 (step S 904 ). If the service information is present (step S 904 : YES), the task controller managing unit 226 acquires a task controller for executing the task, from the task controller storing unit 225 (step S 905 ), transmits the acquired task controller to the terminal 102 (step S 906 ), and ends the processing of one task.
- step S 904 the task/service checking unit 224 checks whether the available service checking unit 223 has made a request for searching a service of the peripheral device 103 a given number of times or more, to the terminal 102 (step S 907 ). If the service checking unit 223 has made the request a given number of times or more (step S 907 : YES), the task/service checking unit 224 transmits a non-executable task message to the task managing unit 202 (step S 908 ), and ends one cycle of the process.
- step S 907 if the available service checking unit 223 has not made the request for searching the service of the peripheral device 103 a given number of times or more, to the terminal 102 (step S 907 : NO), the available service checking unit 223 transmits to the terminal 102 , the request for searching the service of the peripheral device 103 (step S 909 ), and after the elapse of a given period, checks the available service cache 222 (step S 910 ). Subsequently, the process flow returns to step S 904 .
- FIG. 10 is an explanatory diagram of a process by the peripheral device linking unit.
- Service search performed by the peripheral device linking unit 231 of the terminal 102 and device control performed by the task controller will be described.
- the service searching/notifying unit 233 searches the peripheral device 103 in response to a request for searching a service of the peripheral device 103 made by the service managing unit 203 (available service checking unit 223 ) of the server 101 .
- the service searching/notifying unit 233 acquires the service of the peripheral device 103 from device/service definition information storing unit 227 , and transmits the service of the peripheral device 103 to the available service cache 222 of the service managing unit 203 and to the sensor/terminal information aggregating unit 232 .
- the task controller executing unit 234 controls the application 235 and the peripheral device 103 according to a received task controller from the service managing unit 203 (task controller managing unit 226 ).
- FIG. 11 is a flowchart of a service search process by the peripheral device linking unit.
- the service search process executed by the service searching/notifying unit 233 of the peripheral device linking unit 231 will be described.
- the service searching/notifying unit 233 awaits receipt of a request that is from the service managing unit 203 of the server 101 and for the search of a service of the peripheral device 103 (available service checking unit 223 ) (step S 1101 ).
- the service searching/notifying unit 233 searches for the peripheral device 103 (step S 1103 ).
- the service searching/notifying unit 233 Upon receiving a response to the search from the peripheral device 103 (step S 1104 ), the service searching/notifying unit 233 acquires the service of the peripheral device 103 from the device/service definition information storing unit 227 , according to the response to the search from the peripheral device 103 (step S 1105 ). The service searching/notifying unit 233 transmits the acquired service to the available service cache 222 of the service managing unit 203 (step S 1106 ) and to the sensor/terminal information aggregating unit 232 (step S 1107 ), and ends one cycle of the process.
- FIG. 12 is a flowchart of a process related to a task controller executed by the peripheral device linking unit.
- a process of receiving and executing a task controller performed by the task controller executing unit 234 of the peripheral device linking unit 231 will be described.
- the task controller executing unit 234 awaits receipt of a task controller from the service managing unit 203 (task controller managing unit 226 ) of the server 101 (step S 1201 ).
- the task controller executing unit 234 controls the application 235 and the peripheral device 103 according to the received task controller (step S 1203 ), and ends one cycle of the process.
- FIG. 13 is an explanatory diagram of a process by the peripheral device.
- the responding/advertising unit 241 Upon receiving a device search message from the peripheral device linking unit 231 (service searching/notifying unit 233 ) of the terminal 102 , the responding/advertising unit 241 sends a response indicating the presence of the peripheral device 103 and device information.
- the controlled unit 113 follows a control command from the peripheral device linking unit 231 (task controller executing unit 234 ) of the terminal 102 to execute/control a function that the peripheral device 103 has.
- the device built-in sensor 114 sends sensor measurement information to the sensor/terminal information aggregating unit 232 of the terminal 102 or to the sensor/terminal information aggregating unit 204 of the server 101 .
- This task represents work of preparing and cooking individual ingredients in a cooking procedure, in which cooking is performed automatically according to a pre-registered dependency relation.
- Each peripheral device 103 (cooking instrument) can be operated from the terminal 102 .
- the cooking instrument is equipped with a temperature sensor, timer, etc., which is equivalent to the device built-in sensor 114 .
- FIG. 14A is a table indicating specific examples of tasks and depicts task information 1400 concerning the cooking of hamburger steaks.
- the information 1400 is stored in the registered task storing unit 212 .
- the task information 1400 is composed of information concerning task IDs, users, and tasks.
- Task IDs T 1 to T 6 are set in the table of task information 1400 , where a task with the task ID T 1 is “prepare ingredients”, to which a user “A” corresponds.
- Tasks following the task T 1 in descending order are cooking tasks, among which a task with the task ID T 6 is “bake the ingredient”, to which the user “A” corresponds.
- the tasks T 1 to T 6 are executed by controlling the cooking instrument, which is the peripheral device 103 , via the terminal 102 .
- information indicative of an instruction to “prepare ingredients” is displayed on the display unit (not depicted) of the terminal 102 to give the instruction to the user.
- FIG. 14B is an explanatory diagram of the dependency relation between tasks.
- the task T 1 is executed at the start of cooking.
- the tasks T 2 and T 4 branch in their dependency relation with the task T 1 and can be executed simultaneously, but must be executed after the end of the task T 1 according to the dependency relation.
- the task T 3 is executed after execution of the task T 2 because of the dependency relation between the tasks T 3 and T 2 .
- the task T 5 is executed after execution of the tasks T 3 and T 4 because of the dependency relation between the task T 5 and the tasks T 3 and T 4 .
- the task T 6 is executed after execution of the task T 5 because of the dependency relation between the tasks T 6 and T 5 .
- FIG. 15 is a table of an example of data collected from the terminal or peripheral device. This table indicates an example of measurement data transmitted from the terminal built-in sensor 112 of the terminal 102 or the device built-in sensor 114 of the peripheral device 103 .
- Measurement data 1500 of FIG. 15 is collected using, as the device built-in sensor 114 , a temperature sensor of a cooking instrument (portable cooking stove, pot, fry pan, etc.), which is the peripheral device 103 .
- the sensor/terminal information aggregating unit 232 of the terminal 102 collects measurements of the temperature sensor and uses the measurements for generating context information.
- FIG. 15 indicates that a temperature detected by a sensor with a sensor ID 1 at a time “10:00:00” is “200.4° C.”, and that a temperature detected later by the sensor with the sensor ID 1 at a time “10:00:01” is “200.6° C.”.
- FIG. 16 is a table of an example of generated context information.
- Context information 1600 of FIG. 16 uses information indicative of whether a cooking instrument has a high temperature or low temperature, as context.
- the context information 1600 is generated in such a way that, for example, the context generating unit 201 detects the presence of the user A in the kitchen (place) at a set time “10:00:15” and generates context information correlating the user A, the location, and the time with each other.
- the context generating unit 201 further detects the temperature of a stove 1 to be 180° C. or higher and the temperature of a stove 2 to be 200° C. or higher, as detailed information.
- the context generating unit 201 generates context information of multiple users.
- FIG. 17 is table of an example of context acquisition control information.
- Context acquisition control information 1700 is stored in the context acquisition control information storing unit 211 , and is made up of information of context granularity, context acquisition timing, etc.
- This example of the context acquisition control information 1700 indicates for the user A that acquired context is “temperature”, acquisition timing is “meeting a condition”, and a condition is “the temperature of the portable cooking stove 1 is 180° C. or higher”.
- the context generating unit 201 transmits temperature information as context, to the task managing unit 202 .
- FIG. 18 is a table of an example of a task selection rule.
- a task selection rule 1800 stored in the task selection rule storing unit 213 will be described.
- the task selection rule 1800 includes context conditions, priority levels, and dependency task IDs, for the above registered tasks. For example, a context condition “end of T 1 ”, a priority level “P 2 ”, and a dependency task ID “T 1 ” are set for the task T 2 . In the column of the priority level, P 1 ⁇ P 2 is satisfied.
- FIG. 19 is a table of an example of a task/service correspondence relation.
- Task/service correspondence relation information 1900 stored in the task/service correspondence relation storing unit 221 will be described.
- the task/service correspondence relation information 1900 correlates a service of the peripheral device 103 (cooking instrument) necessary for executing a task, with each task.
- a service for the task T 2 is “vegetable cutter service”, which corresponds to the task T 2 “cut onions into small pieces” among the registered tasks (see FIG. 14A ).
- FIG. 20 is a table of an example of device/service definition information.
- Device/service definition information 2000 stored in the device/service definition information storing unit 227 will be described.
- the device/service definition information 2000 correlates with each cooking instrument, a service provided by a cooking instrument, which is the peripheral device 103 .
- a service provided by a “vegetable cutter”, i.e., a device (controlled unit 113 ) is “vegetable cutter service”.
- the task managing unit 202 first selects and executes the task T 1 (“prepare ingredients”) for which the context condition is “NULL”. At this time, although a service corresponding to the task T 1 is indicated as “NULL”, a message telling the user which ingredient is needed is displayed on the user's terminal 102 .
- the service managing unit 203 gives notification of the end of the task T 1 executed by the peripheral device 103 to the task managing unit 202 via the terminal 102 .
- the task managing unit 202 selects and executes the task T 2 (“cut onions into tiny pieces”) for which the context condition is the end of the task T 1 and the priority level is high.
- the task controller executing unit 234 uses the “vegetable cutter service” provided by the “vegetable cutter”, which is the peripheral device 103 .
- the task managing unit 202 When the service managing unit 203 gives notification of the end of the task T 2 to the task managing unit 202 , if a context condition “end of T 2 && portable cooking stove 1 . temperature ⁇ 180° C.” is met, the task managing unit 202 selects and executes the task T 3 (“pan-fry onions”) whose priority level is P 2 . If the context condition is not met, the task T 4 “grind meat into minced meat” may be executed first. In executing the task T 3 , the task controller executing unit 234 uses a “device temperature adjusting service” and a “timer service” provided by the “portable cooking stove 1 ”, which is the peripheral device 103 .
- the task managing unit 202 executes the task T 4 .
- the task controller executing unit 234 uses a “meat grinder service” provided by a “grinder”, which is the peripheral device 103 .
- the task managing unit 202 executes the task T 5 “mix the ingredients and shape into hamburger steaks” for which the context condition is the end of the tasks T 3 and T 4 .
- the task controller executing unit 234 uses an “ingredient mixer service” provided by a “mixer”, which is the peripheral device 103 .
- the task managing unit 202 selects and executes the task T 6 “bake the ingredients” for which the context condition is the end of the tasks T 5 .
- the task controller executing unit 234 uses a “device temperature adjusting service” and a “timer service” provided by the “portable cooking stove 2 ”, which is the peripheral device 103 .
- the order of execution of multiple tasks is managed to execute the tasks in the managed order. This allows the user to perform cooking skillfully and efficiently. Based on the dependency relation between tasks and priority levels given to the tasks, the user can avoid making an error in the cooking procedure and properly execute a necessary cooking operation on a case by case basis.
- Repair work described below is composed of multiple repair steps, each of which corresponds to a task.
- the worker performs repair work according to repair procedures displayed sequentially in synchronization with the proceeding of the repair work. Repair procedures are indicated, for example, as “detach screws from a place A and a place B to remove a part C”, etc.
- no branching occurs in the dependency relation between tasks because the tasks are arranged in series in a time-dependent sequence.
- the outline of the repair work is as follows. 1. First, the server 101 transmits the URL of a content describing work procedures, to the terminal 102 . 2. Receiving the URL, the terminal 102 starts a browser and transmits the URL to the browser. 3. At the terminal 102 , the browser accesses the specified URL to display the content describing work procedures. 4. The worker performs repair work according to the displayed content. 5. When one repair step is completed, the worker manipulates a “work completion button” on the browser of the terminal 102 . 6. The server 101 receives a transmission of work completion from the terminal 102 , and transmits the URL of a content describing the next repair step to the terminal 102 . Thereafter, the server 101 repeats the processes of 4. to 6. for the terminal 102 until all repair steps are completed.
- the dependency relation between tasks will be described.
- a case of car repair work is assumed, in which a worker A performs the repair work, which starts at 13:30.
- the repair work consists of three repair steps (tasks) representing tasks T 1 , T 2 , and T 3 . These tasks must be executed in order.
- the tasks consist of the task T 1 “get rid of used oil”, the task T 2 “clean the engine interior”, and the task T 3 “inject new oil”.
- FIG. 21A is a table of an example of a task selection rule.
- a task selection rule 2100 stored in the task selection rule storing unit 213 sets a context condition “end of T 1 ”, a priority level “5”, and a dependency task ID “T 1 ”, for the task T 2 .
- a priority level having a higher numerical value represents a higher priority level. In the example of FIG. 21A , however, all priority levels are same.
- FIG. 21B is an explanatory diagram of the dependency relation between tasks.
- the task T 1 is executed at the start of the repair work, and the task T 2 is executed after the end of the task T 1 because of their dependency relation.
- the task T 3 is executed following execution of the task T 2 because of their dependency relation.
- FIG. 22 is a table of an example of a task/service correspondence relation.
- no service information entry is included (NULL entries are included) in the task/service correspondence relation information 2200 because a service provided by the peripheral device 103 is not used for execution of a task in this case.
- task ID entries of T 1 to T 3 may be omitted from the task/service correspondence relation information 2200 . If no task ID entry is included in the task/service correspondence relation information 2200 , the task/service checking unit 224 determines that no service of the peripheral device 103 is used.
- FIG. 23 is a table of an example of context acquisition control information.
- the context acquisition control information 2300 is stored in the context acquisition control information storing unit 211 , and includes information concerning the granularity, acquisition timing, etc. of context.
- acquired context “time”, acquisition timing “meeting a condition”, and a condition “13:30” are set for the worker A, i.e., the user.
- the context generating unit 201 transmits time information as context, to the task managing unit 202 .
- FIG. 24 is a table of an example of additional information of registered tasks. Additional information of tasks will be described referring to FIG. 24 .
- the server 101 when the server 101 makes a task start request to the terminal 102 , the server 101 transmits the URL of content describing car repair work to the terminal 102 .
- task IDs and URLs as task-related information are stored as task information 2400 of FIG. 24 .
- Additional information (URL) transmitted to the terminal 102 is managed in the following ways.
- the context generating unit 201 manages the additional information.
- the task managing unit 202 receives task-related information from the context generating unit 201 and sends the received information directly to the terminal 102 .
- the context generating unit 201 defines the application 235 that receives a task start request, and the application 235 manages the additional information (URL). In this case, the application 235 transmits the task start request accompanying task-related information to the task managing unit 202 .
- the task managing unit 202 sends the incoming task-related information from the application 235 directly to the terminal 102 .
- the task managing unit 202 When the task managing unit 202 recognizes the need to start a task Tx, the task managing unit 202 transmits a task start request message to the terminal 102 .
- the task start request message includes an ordinary Web browser (installed in advance in the terminal 102 ) as the application 235 to start and a URL to be accessed by the Web browser. 2.
- the terminal 102 Upon receiving the task start request message, the terminal 102 starts the Web browser, delivers the URL transmitted from the server 101 , to the Web browser, and accesses the URL. 3.
- the contents corresponding to the URL is displayed on the display unit of the terminal 102 . This content is information necessary for executing the tasks T 1 to T 3 according to the type of a car to be repaired.
- the content indicating an oil replacement procedure for the car to be repaired (first remove a bolt B from a point A, etc.) is displayed. 4.
- the worker performs repair work corresponding to a task while viewing the content displayed on the terminal 102 , and when one task (repair step) is completed, manipulates the “work completion” button displayed on the display unit of the terminal 102 . 5.
- the terminal 102 transmits a message of the completion of the task Tx to the task managing unit 202 .
- the task managing unit 202 gives notification of the completion of the task Tx to the context generating unit 201 .
- the context generating unit 201 updates context of the worker.
- the server 101 starts control for the start of a new task through the task selecting unit 214 .
- the server 101 thus returns to 1. to execute a process for the next task.
- FIG. 25 is a sequence diagram of a task execution procedure.
- a content holding unit 2500 depicted in FIG. 25 is included in the context generating unit 201 , and holds the contents designated by a URL.
- the context generating unit 201 of the server 101 detects a time “13:30” (step S 2501 ), and transmits context information to the task managing unit 202 (step S 2502 ).
- This context information indicates that the user ID is the worker A and that the present time is “13:30”.
- the task managing unit 202 receives the context information and makes a task start request to the terminal 102 of the worker A (step S 2503 ).
- This task start request indicates a browser as the application 235 and a URL to access as the URL of the task T 1 depicted in FIG. 24 (http://carA_oil1.html).
- the task controller executing unit 234 receives the task start request and makes a start request to the browser, which is the application 235 (step S 2504 ).
- This start request includes the URL of the task T 1 (http://carA_oil1.html).
- the terminal 102 Based on the start request, the terminal 102 makes an HTTP request for content display to the content holding unit 2500 of the server 101 (step S 2505 ).
- the HTTP request includes the above URL address, and the content holding unit 2500 sends an HTTP response back to the browser 235 of the terminal 102 (step S 2506 ).
- the terminal 102 causes the Web screen to appear on the display unit, where the Web screen exhibits the repair step of the task T 1 . This allows the user to easily execute one repair step of the task T 1 while viewing the screen on the display unit.
- the worker A manipulates the “work end” button displayed on the display unit of the terminal 102 (step S 2507 ).
- the browser 235 then transmits a task end message to the task managing unit 202 of the server 101 (step S 2508 ).
- This task end message includes the user ID as the worker A and context as the end of the task T 1 .
- the task managing unit 202 selects the task T 2 that is to be executed following the end of the task T 1 because of the dependency relation with the task T 1 , as a task to execute next, and makes a task start request to the terminal 102 of the worker A (step S 2509 ). Subsequently, the same process above is performed on the task T 3 .
- task execution using the terminal is also possible.
- the above car repair work can be performed skillfully and efficiently at each step of the work by managing the order of execution of multiple tasks and executing the task in order.
- Information necessary at each repair step is displayed on the screen of the display unit of the terminal. As a result, the user does not make an error in identifying the location of repair work or a part to repair and can complete repair work by switching between screens to browse necessary information.
- the first embodiment based on context of the user and the user's surrounding environment and on a service provided by the peripheral device, multiple tasks can be executed in order of priority and the dependency relation between tasks are taken into consideration. This suppresses the user's error in work and drops in work efficiency.
- context processing is distinguished clearly from task processing. As a result, an algorithm for the context processing can be changed easily without exerting any effect on the task processing. This facilitates system development.
- a second embodiment relates to a configuration in which a new task interrupts causing suspension of a task under execution. Interruption by a task occurs when, for example, a user is suddenly forced to process a new job while executing a routine job.
- a interrupt process and a suspension process are executed by respective users.
- FIG. 26 depicts a configuration of a task execution control system according to the second embodiment.
- constitute elements different from the constitute elements of the first embodiment are extracted and depicted, and constitute elements other than the extracted constitute elements are substantially the same as the constitute elements of the first embodiment ( FIG. 2 ) but are different in the following aspects.
- the context generating unit 201 each context condition that must be met to start each task is entered. Based on the context condition, the context generating unit 201 determines the presence/absence of a task that can be started, and when a task that can be started is present, transmits information of the task to the task selecting unit 214 .
- Every process supposed to be executed by each task is executed by the application 235 .
- the application 235 is referred to as a task controller.
- the task controller executing unit 234 serves as a unit that performs common control over the task controller, such as the start, suspension, and resumption of the task controller.
- the constituent elements different from the constituent elements of the first embodiment will be described.
- the task selecting unit 214 of the task managing unit 202 makes a request for starting, suspending, or resuming task execution, to the task controller executing unit 234 of the terminal 102 , and receives a response of starting, suspending, or resuming task execution.
- the task scheduler 214 a incorporated in the task selecting unit 214 receives context information for each user from the context generating unit 201 , and manages information concerning one or more tasks in a stand-by state and tasks being executed (task queue).
- the task scheduler 214 a manages the ID and priority level of a task under execution (task information of 0 or 1 tasks) as task under execution 2601 and the ID and priority level of a task in a stand-by state (task information of 0 or more tasks), using a task queue 2602 .
- the task scheduler 214 a manages tasks that can be executed by the terminal 102 , based on a list of task IDs and task priority levels.
- the registered task storing unit 212 stores information of user ID 2611 , task ID 2612 , task start condition 2613 , priority level 2614 , and execution state 2615 in the form of a table.
- User ID 2611 represents the ID of a user who is to execute a task. If a user who is to execute the task is not specified, an ID indicative of no user being specified (e.g., 0) is stored as the user ID 2611 .
- Task ID 2612 represents the identifier (ID) of a task.
- Task start condition 2613 represents a condition for starting a task.
- Priority level 2614 represents the priority level of a task.
- Execution state 2615 represents the execution state of a task (not executed, completed).
- the task controller executing unit 234 of the terminal 102 controls the start, suspension, and resumption of the task controller by following an instruction from the task scheduler 214 a of the server 101 .
- the task controller executing unit 234 also performs control for installing and uninstalling the task controller.
- FIG. 27 is a flowchart of a process by the task managing unit.
- the task scheduler 214 a executes a task based on notification from the context generating unit 201 .
- the task scheduler 214 a receives from the context generating unit 201 , notification that a task start condition has been met (step S 2701 ).
- the task scheduler 214 a determines whether the terminal 102 is in a suspended state (step S 2702 ). If the terminal 102 is in a suspended state (step S 2702 : YES), the task scheduler 214 a proceeds to step S 2706 .
- step S 2702 the task scheduler 214 a proceeds to step S 2703 .
- the task scheduler 214 a determines that the terminal 102 is in the suspended state if a terminal suspension flag is set, and determines that the terminal 102 is not in the suspended state if the flag is not set.
- the task scheduler 214 a selects an executable task from the registered task storing unit 212 .
- the task scheduler 214 a determines whether a task under execution at the terminal 102 is present (step S 2704 ). If a task under execution is present (step S 2704 : YES), the task scheduler 214 a proceeds to step S 2705 . If no task under execution is present (step S 2704 : NO), the task scheduler 214 a proceeds to step S 2708 .
- step S 2705 the task scheduler 214 a determines whether a task with a priority level higher than that of a task under execution at the terminal 102 is present among the executable tasks selected at step S 2703 . If a task with the higher priority level is present (step S 2705 : YES), the task scheduler 214 a proceeds to step S 2707 . If no task with the higher priority level is present (step S 2705 : NO), the task scheduler 214 a proceeds to step S 2706 .
- the task scheduler 214 a attaches all executable tasks selected at step S 2703 to the task queue 2602 , and ends the entire process.
- the task queue 2602 manages tasks not executed at the terminal 102 (including a suspended task) among tasks for which the context generating unit 201 determined that start conditions have been met.
- the task scheduler 214 a attaches to the task queue 2602 , a task having a priority level less than or equal to that of a task under execution at the terminal 102 .
- a task having a high priority level that is not attached to the task queue 2602 is determined to be an execution candidate task.
- the task scheduler 214 a makes a request to the service managing unit 203 , for determining the executability/non-executability of a task having the highest priority level among execution candidate tasks whose executability/non-executability has not been determined. If no service of the peripheral device 103 is used at the execution of a task, the task is executed immediately.
- step S 2709 if the response (from the service managing unit 203 ) to the request made at step S 2708 indicates a determination result that the task is executable (step S 2709 : task executable), the task scheduler 214 a proceeds to step S 2712 . If the response indicates that the task is not executable (step S 2709 : task not executable), the task scheduler 214 a proceeds to step S 2710 .
- the task scheduler 214 a attaches to the task queue 2602 , a task that has been determined to not be executable as a result of the determination of the service executability/non-executability.
- the task scheduler 214 a determines whether an execution candidate task whose service executability/non-executability has not been determined is present. If such an execution candidate task is present (step S 2711 : YES), the task scheduler 214 a proceeds to step S 2708 . If such an execution candidate task is not present (step S 2711 : NO), the task scheduler 214 a ends the entire process.
- the task scheduler 214 a determines whether a task under execution at the terminal 102 is present. If the task under execution is present (step S 2712 : YES), the task scheduler 214 a proceeds to step S 2713 . If no task under execution is present (step S 2712 : NO), the task scheduler 214 a proceeds to step S 2716 . At step S 2713 , the task scheduler 214 a transmits to the terminal 102 , a request for suspending a task under execution. At step S 2714 , the task scheduler 214 a receives from the terminal 102 , notification of the completion of suspension of the task under execution. At step S 2715 , the task scheduler 214 a updates the state of the completely suspended task registered in the registered task storing unit 212 to “suspended”, and attaches the task to the task queue 2602 .
- the task scheduler 214 a transmits to the terminal 102 , a request for starting execution of a task determined to be executable at step S 2709 .
- the task scheduler 214 a receives from the terminal 102 , a response indicating start of execution of the task.
- the task scheduler 214 a updates the state of the started task registered in the registered task storing unit 212 , to “under execution”, and handles this task as a task under execution.
- the task scheduler 214 a attaches to the task queue 2602 , each remaining execution candidate task whose service executability/non-executability has not been determined, and ends the entire process.
- FIG. 28 is a flowchart of a process that is executed when a task ends at the task managing unit and the terminal is suspended. The process executed in a case where a task under execution at the terminal 102 is ended and in a case where the terminal is suspended will be described.
- the terminal 102 is put in a suspended state when the user operates the terminal 102 under a certain situation to bring the terminal 102 into a state where the terminal 102 does not accept task control from the server 101 .
- the task scheduler 214 a receives notification of task execution completion from the terminal 102 following the completion of the task executed at the terminal 102 (step S 2801 ).
- the task scheduler 214 a transmits to the terminal 102 , a response to the task execution completion transmission (step S 2802 ).
- the task scheduler 214 a updates the state of the completed task registered in the registered task storing unit 212 to “completed” (step S 2803 ), and deletes task information indicating this task as a task under execution (step S 2804 ).
- the task scheduler 214 a then proceeds to a process of determining a task to execute next (step S 2805 ).
- the task scheduler 214 a receives notification of terminal suspension from the terminal 102 (step S 2806 ).
- the task scheduler 214 a sets a terminal suspension flag for the terminal 102 (step S 2807 ).
- the task scheduler 214 a then transmits to the terminal 102 , a response to the terminal suspension notification (step S 2808 ).
- the task scheduler 214 a determines whether notification of terminal resumption has been received from the terminal 102 (step S 2809 ).
- step S 2809 YES
- the task scheduler 214 a resets the terminal suspension flag for the terminal 102 (step S 2810 ), and proceeds to step S 2805 . If no notification of terminal resumption has been received (step S 2809 : NO), the task scheduler 214 a attaches a new task meeting a task start condition to the task queue 2602 (step S 2811 ), and returns to step S 2809 .
- FIGS. 29A and 29B are flowcharts of a process by the task managing unit of checking a service for a task standing by for execution. A process of periodically checking the presence/absence of a service necessary for execution of a task standing by in the task queue will be described. Some of steps depicted in FIG. 29 are executed in the same manner when a task under execution at the terminal 102 is ended.
- the task scheduler 214 a determines whether the terminal 102 is in a suspended state (step S 2901 ). If the terminal 102 is in a suspended state (step S 2901 : YES), the task scheduler 214 a proceeds to step S 2904 . If the terminal 102 is not in a suspended state (step S 2901 : NO), the task scheduler 214 a determines whether a task under execution at the terminal 102 is present (step S 2902 ). If task under execution is present (step S 2902 : YES), the task scheduler 214 a proceeds to step S 2903 . If the task under execution is not present (step S 2902 : NO), the task scheduler 214 a proceeds to step S 2905 .
- the task scheduler 214 a determines whether a task having a priority level higher than that of a task under execution at the terminal 102 is present among tasks in the task queue 2602 . If task having a higher priority level is present (step S 2903 : YES), the task scheduler 214 a proceeds to step S 2906 . If no task having a higher priority level is present (step S 2903 : NO), the task scheduler 214 a stands by for a fixed period (step S 2904 ) and ends the process (after which the process is restarted from step S 2901 ). The fixed period may be changed dynamically depending on the priority levels of tasks in the task queue 2602 . For example, the period may be determined to be shorter when the priority levels are higher, or may be changed for each task.
- step S 2905 the task scheduler 214 a selects all tasks in the task queue 2602 as execution candidate tasks, and proceeds to step S 2907 .
- step S 2906 the task scheduler 214 a selects (a set of) tasks having priority levels higher than that of a task under execution at the terminal 102 , as execution candidate tasks, and proceeds to step S 2907 .
- the task scheduler 214 a checks with the context generating unit 201 on whether an execution condition for a task with the highest priority among execution candidate tasks of which executability/non-executability is not determined is met. This means that whether a candidate task can be executed (resumed) under the current context is checked. Based on the result of the check at step S 2907 , the task scheduler 214 a determines whether execution of this task is possible (step S 2908 ). If execution of the task is impossible (step S 2908 : NO), the task scheduler 214 a proceeds to step S 2909 . If execution of the task is possible (step S 2908 : YES), the task scheduler 214 a proceeds to step S 2910 .
- step S 2909 for a task for which a task start condition is not met because of a change in context, the task scheduler 214 a resets a task start condition on the context generating unit 201 .
- the task scheduler 214 a detaches the task from the task queue 2602 , and proceeds to step S 2919 .
- the task scheduler 214 a transmits to the service managing unit 203 , a request to determine the executability/non-executability of a task and receives a response from the service managing unit 203 . If the response indicates that the task is executable (step S 2911 : executable), the task scheduler 214 a proceeds to step S 2912 . If the response indicates that the task is not executable (step S 2911 : not executable), the task scheduler 214 a proceeds to step S 2919 .
- step S 2912 the task scheduler 214 a determines whether a task is under execution at the terminal 102 . If a task is under execution (step S 2912 : YES), the task scheduler 214 a proceeds to step S 2913 . If no task is under execution (step S 2912 : NO), the task scheduler 214 a proceeds to step S 2916 .
- the task scheduler 214 a transmits to the terminal 102 , a request to suspend the task under execution.
- the task scheduler 214 a receives from the terminal 102 , notification of completion of suspension of the task under execution (step S 2914 ).
- the task scheduler 214 a updates the state of the completely suspended task registered in the registered task storing unit 212 to “suspended”, and attaches the task to the task queue 2602 (step S 2915 ).
- the task scheduler 214 a then transmits to the terminal 102 , a request to start execution of a task determined to be executable at step S 2911 (step S 2916 ). If the task determined to be executable is in a “suspended” state, the task scheduler 214 a transmits a request to resume the task to the terminal 102 .
- the task scheduler 214 a receives from the terminal 102 , a response indicating start of execution of the task (step S 2917 ).
- the task scheduler 214 a receives from the terminal 102 , a response indicating resumption of the task.
- the task scheduler 214 a then updates the state of the started task registered in the registered task storing unit 212 , to “under execution”.
- the task scheduler 214 a handles this task as a task under execution (step S 2918 ), and proceeds to step S 2904 .
- the task scheduler 214 a regards a task for which the executability/non-executability is determined, as a determined task.
- the task scheduler 214 a determines whether an execution candidate task for which the executability/non-executability has not been determined is present (step S 2920 ). If an execution candidate task for which the executability/non-executability has not been determined is present (step S 2920 : YES), the task scheduler 214 a proceeds to step S 2907 . If no execution candidate task for which the executability/non-executability has not been determined is present (step S 2920 : NO), the task scheduler 214 a proceeds to step S 2904 .
- FIG. 30 is a flowchart of a process executed by the terminal.
- a process executed by the task controller executing unit 234 of the terminal 102 will be described. Any one of step S 3001 , step S 3005 , step S 3008 , step S 3011 , step S 3014 , and step S 3016 described below starts in response to reception of a request or notification.
- step S 3001 when the task controller executing unit 234 receives from the task managing unit 202 of the server 101 , a request to start task execution (step S 3001 ), the task controller executing unit 234 downloads a task controller from the service managing unit 203 and installs the task controller (step S 3002 ). However, if a task controller needed for task execution is installed in advance in the terminal 102 , this step is omitted.
- the task controller executing unit 234 starts the task controller (step S 3003 ), transmits to the task managing unit 202 , a response indicating start of task execution (step S 3004 ), and ends the process.
- step S 3005 when the task controller executing unit 234 receives notification of task completion from the task controller (step S 3005 ), the task controller executing unit 234 transmits the notification of task completion to the task managing unit 202 (step S 3006 ), uninstalls the task controller (step S 3007 ), and ends the process.
- the step of uninstalling the task controller may be omitted when memory of the terminal 102 has surplus memory capacity of a given size.
- step S 3008 when the task controller executing unit 234 receives a request for task suspension from the task managing unit 202 , the task controller executing unit 234 suspends the task controller (step S 3009 ), transmits a response of task suspension completion to the task managing unit 202 (step S 3010 ), and ends the process.
- step S 3011 when the task controller executing unit 234 receives a request for task resumption from the task managing unit 202 , the task controller executing unit 234 restarts the suspended task controller (step S 3012 ), transmits a response indicating task resumption completion to the task managing unit 202 (step S 3013 ), and ends the process.
- the task controller executing unit 234 receives from the task controller, a request to suspend the terminal.
- the user may issue an instruction to suspend the terminal directly to the task controller executing unit 234 , by-passing the task controller.
- the task controller executing unit 234 then sends notification of suspension of the terminal to the task managing unit 202 (step S 3015 ), and ends the process.
- the task controller executing unit 234 receives a request to restart the terminal from the task controller.
- the user may issue an instruction to restart the terminal directly to the task controller executing unit 234 , by-passing the task controller.
- the task controller executing unit 234 then sends notification of restarting of the terminal to the task managing unit 202 (step S 3017 ), and ends the process.
- the task controller detects the occurrence of the exceptional case and sends notification of the occurrence of the exceptional case to the task controller executing unit 234 . Receiving the notification, the task controller executing unit 234 sends the notification to the task managing unit 202 . Subsequently, the task managing unit 202 suspends the task and then checks the presence of a different executable task. If a different executable task is found, the task managing unit 202 requests the terminal 102 to execute that task.
- This process for an exceptional case is similar to the process by the task managing unit 202 depicted in FIG. 27 and to the process by the controller executing unit 234 depicted in FIG. 30 , and is therefore omitted in further description.
- FIGS. 31A, 31B, 31C, and 31D are sequence diagrams of a procedure of executing a task. An example of a specific process of executing a task will be described referring to these sequence diagrams. The following example is an example of providing support for security patrol work.
- a context managing server 3101 is a server that includes the context generating unit 201
- a task managing server 3102 is a server including the task managing unit 202 and the service managing unit 203 .
- the user A carrying the terminal 102 makes patrol rounds.
- the terminal 102 has a position sensor as the terminal built-in sensor 112 .
- Various methods of acquiring position information by the position sensor are available, such as a GPS or an RFID reader incorporated in the terminal 102 reading an RFID tag attached to a specific place.
- Controllers 3111 to 3113 are equivalent to task controllers downloaded from the task managing server 3102 .
- Step S 3101 Using the administrator terminal 102 a , an administrator registers into the task managing server 3102 , a warehouse patrol task to be executed by the user A who is at a control center at 22:00.
- Step S 3102 The administrator registers the same task as the task at step S 3101 , into the context managing server 3101 .
- Step S 3103 The administrator registers a task of patrolling the warehouse A that is to be executed by the user A who is in the warehouse A after 22:00.
- Step S 3104 The administrator registers into the context managing server 3101 , the same task as the task at step S 3103 .
- Step S 3105 The administrator registers a trouble check task that is to be executed when a trouble sensor 1 switches on.
- Step S 3106 The administrator registers into the context managing server 3101 , the same task as the task at step S 3105 .
- Step S 3107 The position sensor 112 of the portable terminal 102 carried by the user A notifies the context managing server 3101 that the user A is in the control center.
- Step S 3108 Recognizing that the user A is in the control center and the current time is 22:00, the context managing server 3101 transmits to the task managing server 3102 , notification that a start condition for the warehouse patrol task registered at step S 3102 is met.
- the task managing server 3102 transmits to the task controller executing unit 234 of the terminal 102 , a request to start the warehouse patrol task registered at step S 3101 .
- Step S 3110 The task controller executing unit 234 accesses a specified URL and makes a request for downloading the warehouse patrol controller 3111 .
- Step S 3111 The task managing server 3102 sends to the task controller executing unit 234 , a response indicating downloading. As a result, the warehouse patrol controller 3111 is downloaded and installed in the terminal 102 .
- Step S 3112 The task controller executing unit 234 starts the downloaded warehouse patrol controller 3111 .
- Step S 3113 The started warehouse patrol controller 3111 transmits to the task controller executing unit 234 , notification of the completion of start of the warehouse patrol controller 3111 .
- Step S 3114 The task controller executing unit 234 transmits to the task managing server 3102 , notification of the completion of start of a task 1 .
- Step S 3115 The task managing server 3102 transmits the start of the task 1 to the context managing server 3101 .
- the context managing server 3101 updates the state of the user A to “executing the task 1 ”.
- Step S 3116 The warehouse patrol controller 3111 displays the warehouse A on the screen, as information of a place to patrol. The user checks the screen and manipulates the “OK” button.
- Step S 3117 Consequent to the “OK” button being manipulated, the warehouse patrol controller 3111 transmits notification of the completion of the task to the task controller executing unit 234 , and ends the process.
- Step S 3118 The task controller executing unit 234 transmits notification of the completion of the task 1 to the task managing server 3102 .
- Step S 3119 The task managing server 3102 transmits notification of the completion of the task 1 to the context managing server 3101 .
- the context managing server 3101 updates the state of the user A to “idle”.
- Step S 3120 When the user A arrives at the warehouse A, which is the place to patrol, the position sensor 112 of the terminal 102 detects the user A to be at the warehouse A, and transmits to the context managing server 3101 , notification indicating that the user A is at the warehouse A.
- Step S 3121 Recognizing that the user A is in the warehouse A after 22:00, the context managing server 3101 transmits to the task managing server 3102 , notification that a start condition for the warehouse A patrol task registered at step S 3104 is met.
- Step S 3122 Recognizing that a device and a service necessary for execution of the warehouse A patrol task are present, the task managing server 3102 makes a request for searching the device and service.
- Step S 3123 The service searching/notifying unit 233 of the terminal 102 of the user A retrieves the device and service. For example, when the universal plug and play (UPnP) protocol is adopted, the service searching/notifying unit 233 multicasts an M-SEARCH message to the surroundings.
- UFP universal plug and play
- Step S 3124 When a lighting device 113 in the warehouse A receives the search message, the lighting device 113 transmits a search response because the lighting device 113 is the specified device and is capable of providing a lighting control service. While the lighting device 113 directly transmits a response indicating device/service information thereof in this example, the lighting device 113 may transmit a response indicating the URL of a file describing the device/service information of the lighting device 113 . In such a case, the terminal 102 of the user A acquires the file from the device/service definition information storing unit 227 , based on the URL, thereby acquires the device/service definition information.
- Step S 3125 The service searching/notifying unit 233 transmits the result of service search to the task managing server 3102 .
- Step S 3126 When confirming that the device and service necessary for the warehouse A patrol task are present near the user A, the task managing server 3102 transmits a task start request to the task controller executing unit 234 of the terminal 102 .
- Step S 3127 The task controller executing unit 234 accesses the specified URL and makes a request for downloading the warehouse A patrol controller 3112 .
- Step S 3128 The warehouse A patrol controller 3112 is downloaded to the task controller executing unit 234 and is installed in the terminal 102 .
- Step S 3129 The task controller executing unit 234 starts the downloaded warehouse A patrol controller 3112 .
- Step S 3130 The started warehouse A patrol controller 3112 transmits notification of the completion of start of the warehouse A patrol controller 3112 , to the task controller executing unit 234 .
- Step S 3131 The task controller executing unit 234 transmits notification the completion of start of a task 2 , to the task managing server 3102 .
- Step S 3132 The task managing server 3102 transmits notification of the start of the task 2 to the context managing server 3101 .
- the context managing server 3101 updates the state of the user A to “executing the task 2 ”.
- Step S 3133 The warehouse A patrol controller 3112 displays a lighting-ON button, a lighting-OFF button, a trouble-detection button, and a no trouble button for the warehouse A on the screen. The user manipulates the lighting-ON button.
- Step S 3134 The warehouse A patrol controller 3112 requests the lighting device of the warehouse A retrieved at step S 3122 to execute the lighting control service with a parameter ON.
- Step S 3135 The lighting device 113 of the warehouse A executes the service requested at step S 3131 (e.g., turns on the lighting) and then sends back a response of service execution.
- the user A starts patrolling the warehouse A.
- Step S 3136 If a trouble sensor ( 114 ) installed in a building B detects trouble, the trouble sensor ( 114 ) transmits detection of the trouble to the context managing server 3101 .
- Step S 3138 Upon referring to task management information and confirming that any one is allowed to execute the task, the task managing server 3102 selects the user A as an executer of this task.
- Various methods of selecting a user are conceivable, which include, for example, selecting a user on patrol at a location closest to a trouble sensor 1 ( 114 ) of the building B among a list of users on patrol and their current positions; and selecting a user standing by at the control center.
- Such user selection may be performed by an application running on a different server.
- the task managing server 3102 having received the transmission of the task start condition being met sends notification of user selection to the application, and the application selects a user, based on context information of the user acquired from the context managing server 3101 , and sends a response indicating the user to the task managing server 3102 .
- Step S 3139 The task controller executing unit 234 makes a request to suspend the warehouse A patrol controller 3112 .
- Step S 3140 The warehouse A patrol controller 3112 sends back a response to the suspension request.
- Step S 3141 The task controller executing unit 234 transmits to the task managing server 3102 , notification that the warehouse A patrol task has been suspended.
- Step S 3142 The task managing server 3102 transmits to the task controller executing unit 234 of the terminal 102 of the user A, a request to start the trouble check task.
- Step S 3143 The task controller executing unit 234 accesses a specified URL and makes a request for downloading the trouble check controller.
- Step S 3144 The trouble check controller 3113 is downloaded to the task controller executing unit 234 and is installed in the terminal 102 .
- Step S 3145 The task controller executing unit 234 starts the downloaded trouble check controller 3113 .
- Step S 3146 The started trouble check controller 3113 transmits to the task controller executing unit 234 , notification of the completion of start of the trouble check controller 3113 .
- Step S 3147 The task controller executing unit 234 transmits to the task managing server 3102 , notification of the completion of start of the task.
- Step S 3148 The task managing server 3102 transmits the start of the task 3 to the context managing server 3101 .
- the context managing server 3101 updates the state of the user A to “executing the task 3 ”.
- Step S 3149 The started trouble check controller 3113 displays a message “Trouble sensor 1 ( 114 ) has detected trouble. Check the presence/absence of trouble immediately.”, the “trouble-detection” button, and the “no trouble” button, on the screen of the terminal 102 of the user A. Having confirmed the screen, the user A rushes to the place in the building B where the trouble sensor 1 ( 114 ) is installed, confirms that no trouble has actually occurred, and manipulates the “no trouble” button (the terminal 102 registers the user's position when the user A moves to the building B, but this process is not depicted in the sequence diagram.)
- Step S 3150 Consequent to the “no trouble” button being manipulated, the trouble check controller 3113 transmits notification of the completion of the task to the task controller executing unit 234 , and ends the process.
- Step S 3151 The task controller executing unit 234 transmits notification of the completion of the task to the task managing server 3102 .
- Step S 3152 The task managing server 3102 transmits notification of the completion of the task 3 to the context managing server 3101 .
- the context managing server 3101 updates the state of the user A to “idle”, or may store at step S 3148 , the state “executing task 2 ” preceding the start of execution of the task 3 and bring the user A back to the state “executing task 2 ” (setting the state of the user A to “idle” causes no problem because the state of the user A returns to the “executing task 2 ” at step S 3157 to follow.)
- Step S 3154 The task controller executing unit 234 restarts the suspended warehouse A patrol controller 3112 .
- Step S 3155 The restarted warehouse A patrol controller 3112 transmits notification of the completion of the restarting to the task controller executing unit 234 .
- Step S 3156 The controller executing unit 234 transmits to the task managing server 3102 , notification of the completion of resumption of the task 2 .
- Step S 3157 The task managing server 3102 transmits notification of the resumption of the task 2 to the context managing server 3101 , which updates the state of the user A to “executing task 2 ”.
- Step S 3158 When the warehouse A patrol controller 3112 is restarted and the screen thereof is displayed, the user A returns to the warehouse A to resume the patrol. In this manner, the screen of the warehouse A patrol controller 3112 is displayed on the terminal 102 . This allows the user A to resume the suspended warehouse A patrol work without forgetting it.
- the user manipulates the “lighting-OFF” button (the terminal 102 registers the user's position when the user A returns to the warehouse A, but this process is not depicted in the sequence diagram).
- Step S 3159 The warehouse A patrol controller 3112 makes a request to the lighting device 113 of the warehouse A searched at step S 3122 to execute the lighting control service with a parameter OFF.
- Step S 3160 The lighting device 113 of the warehouse A executes the service requested at step S 3153 (e.g., turns off the lighting) and then sends back a response of service execution.
- the service requested at step S 3153 e.g., turns off the lighting
- Step S 3161 The user A manipulates the “no trouble” button of the warehouse A patrol controller 3112 and ends the patrol of the warehouse A.
- Step S 3162 Consequent to the “no trouble” button being manipulated, the warehouse A patrol controller 3112 transmits notification of the completion of the task to the task controller executing unit 234 , and ends the process.
- Step S 3163 The task controller executing unit 234 transmits notification of the completion of the task to the task managing server 3102 .
- Step S 3164 The task managing server 3102 transmits notification of the completion of the task 2 to the context managing server 3101 .
- the context managing server 3101 updates the state of the user A to “idle”.
- the above task definition is described as an example, and task definition is not limited to the task dividing method as described above.
- starting patrolling the warehouse is defined as one task and is separated from the warehouse A patrol task, which is actual work to perform.
- both tasks may be integrated together and defined as a single task.
- subtasks such as warehouse A patrol and warehouse B patrol, are defined as tasks subordinate to the overall patrol task, and each task controller corresponding to each of these subtasks is defined.
- a “warehouse A patrol start” button is manipulated, a controller necessary for executing a subtask corresponding to “warehouse A patrol” is started.
- a task controller is downloaded each time the start has been requested.
- a controller for a frequent task e.g., trouble check controller 3113
- the task controller corresponding to the task is left installed in the terminal 102 .
- the task controller may be uninstalled following the completion of the task to release the memory occupied by the task controller.
- FIG. 32 is a table of an example of context information.
- Context information 3200 under management by the context managing server 3101 is used to manage the state of each user and device.
- the context information 3200 includes information of time 3201 , user context 3202 , and device context 3203 .
- Time 3201 represents current time information used in common in the system.
- User context 3202 represents state information of each user, and is information for managing the location of the user and the execution state of a task.
- Device context 3203 represents state information of each device, and is information for managing the place of installation of the device (building B) and the state of the device (ON/OFF state of the trouble sensor 1 ( 114 )).
- FIG. 33 is a table of an example of task management information.
- the context managing server 3101 manages tasks using task management information 3300 .
- the task management information 3300 is information for managing start conditions for tasks to be executed by individual users, and includes information of UID, time, place, others, and TID.
- UID represents information of the ID of a user who is to execute a task
- time represents information of a time condition under which a task is to be executed
- place represents information of a place condition under which a task is to be executed
- others represent information of a condition other than the above conditions, under which condition a task is to be executed
- TID represent information of the ID of a task that is to be executed when the above conditions are met.
- the context managing server 3101 searches the task managing information 3300 corresponding to the user or device and determines the presence/absence of a task for execution. To perform this determination process faster, additional data may be managed. For example, flag information indicating for each user whether the user has a task to execute (task not executed yet) may be managed as context managing data. In this case, for a user having no tasks to execute, the process of determining the presence/absence of a task for execution is not performed even if context changes.
- FIG. 34 is a table of an example of task management information.
- the task managing unit 202 of the task managing server 3102 manages tasks using task management information 3400 .
- the task management information 3400 is task management information concerning tasks to be executed by individual users, and includes information of UID, TID, time, place, priority level, and state.
- UID represents information of the ID of a user who is to execute a task
- TID represents the ID of a task for execution
- time represents information of a time to execute a task
- place represents information of a place where a task is to be executed
- priority represents the priority of a task
- state represents the execution state of a task (not executed/under execution/completed).
- “#” entry in the UID item indicates that the task 3 is not defined as a task to be executed by a specific user. A user who is to execute such a task is determined dynamically depending on situations.
- FIG. 35 is a table of an example of task controller management information.
- Task controller management information 3500 is information concerning task controllers necessary for executing tasks, and is under management by the service managing unit 203 of the task managing server 3102 .
- the task controller management information 3500 includes information of TID and controller URL.
- TID represents a task ID
- controller URL represents information of a URL indicating the storage place of a controller necessary for executing a task.
- FIG. 36 is a table of an example of task/service corresponding information.
- Task/service corresponding information 3600 is information concerning devices and services necessary for executing individual task, and is under management by the service managing unit 203 of the task managing server 3102 .
- the task/service corresponding information 3600 includes information of TID, device, and service.
- TID represents a task ID
- device represents a device name
- service represents a service name.
- NA (Not Applicable) entered in the table of FIG. 36 indicates that no device and service is necessary for executing a task.
- FIG. 37 is a table of task execution management information under management by the task scheduler.
- the task scheduler 214 a manages information concerning task execution control for each user, as task execution management information 3700 .
- the task execution management information 3700 includes task under execution 2601 and task queue 2602 , each of which is information concerning the user A for managing TID and priority level.
- the task under execution 2601 is information concerning a task under execution, in which TID represents information of the ID of the task and priority level represents the priority level of the task.
- the task queue 2602 is information concerning a task standing by for execution, in which TID represents information of the ID of the task and priority level represents the priority level of the task.
- zero or one task is entered in the task queue 2602 . However, when task suspension occurs several times, two or more tasks may be entered in the task queue 2602 .
- Step S 3111 to S 3117 A task under execution or a task standing by for execution is not present (not depicted).
- Step S 3114 Because the start of the task 1 has been completed, information concerning the task 1 is stored as the task under execution 2601 . Because no task standing by for execution is present, the task queue 2602 has no information (which is indicated as NA).
- Step S 3118 When the task 1 is completed, information concerning the task 1 is deleted from the task under execution 2601 . As a result, no task under execution or task standing by for execution is present (not depicted).
- Step S 3131 Because the start of the task 2 has been completed, information concerning the task 2 is stored as the task under execution 2601 . Because no task standing by for execution is present, the task queue 2602 has no information.
- Step S 3156 When the task 3 is completed at step S 3151 , information of the task 3 is deleted from the task under execution 2601 (not depicted). When execution of the task 2 is resumed at step S 3156 , information concerning the task 2 is stored as the task under execution 2601 .
- Step S 3163 When execution of the task 2 is completed, information of the task 2 is deleted from the task under execution 2601 . As a result, no task under execution or task standing by for execution is present (not depicted).
- a flag (not depicted in FIG. 37 ) indicative of whether the terminal 102 is suspended is provided for each terminal 102 .
- the terminal 102 sets the flag so that task control over the terminal 102 is suspended during a period in which the flag is kept raised. If notification that a start condition for a task has been met is issued during that period, information concerning the task is entered in the task queue 2602 , regardless of the priority level of the task.
- multiple tasks can be executed in order while priority orders and the dependency relation between tasks are taken into consideration in the same manner as in the first embodiment.
- suspension and resumption of execution of the task can be controlled based on the priority levels of both tasks. This allows efficient processing of multiple tasks.
- task control corresponding to the movement of the user is performed. This allows the user to receive a necessary service at each destination while continuing to change positions.
- an effect is achieved such that a task desired by a user can be executed efficiently according to the situation of the user.
Landscapes
- Business, Economics & Management (AREA)
- Engineering & Computer Science (AREA)
- Human Resources & Organizations (AREA)
- Theoretical Computer Science (AREA)
- Strategic Management (AREA)
- Entrepreneurship & Innovation (AREA)
- Economics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Educational Administration (AREA)
- Development Economics (AREA)
- Game Theory and Decision Science (AREA)
- Marketing (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- General Engineering & Computer Science (AREA)
- Computer And Data Communications (AREA)
- Telephonic Communication Services (AREA)
Abstract
Description
2. Upon receiving the task start request message, the terminal 102 starts the Web browser, delivers the URL transmitted from the
3. As the result of 2. of the procedure, the contents corresponding to the URL is displayed on the display unit of the terminal 102. This content is information necessary for executing the tasks T1 to T3 according to the type of a car to be repaired. For example, the content indicating an oil replacement procedure for the car to be repaired (first remove a bolt B from a point A, etc.) is displayed.
4. The worker performs repair work corresponding to a task while viewing the content displayed on the terminal 102, and when one task (repair step) is completed, manipulates the “work completion” button displayed on the display unit of the terminal 102.
5. As a result of manipulation of the button, the terminal 102 transmits a message of the completion of the task Tx to the
6. The
7. In response to the update of the context, the
(Step S3109) The task managing server 3102 transmits to the task
(Step S3110) The task
(Step S3138) Upon referring to task management information and confirming that any one is allowed to execute the task, the task managing server 3102 selects the user A as an executer of this task. Various methods of selecting a user are conceivable, which include, for example, selecting a user on patrol at a location closest to a trouble sensor 1 (114) of the building B among a list of users on patrol and their current positions; and selecting a user standing by at the control center. Such user selection may be performed by an application running on a different server. In such a case, the task managing server 3102 having received the transmission of the task start condition being met sends notification of user selection to the application, and the application selects a user, based on context information of the user acquired from the
Claims (13)
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2011/058144 WO2012131962A1 (en) | 2011-03-30 | 2011-03-30 | Task execution control device, task execution control system, and task execution control method |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2011/058144 Continuation WO2012131962A1 (en) | 2011-03-30 | 2011-03-30 | Task execution control device, task execution control system, and task execution control method |
Publications (2)
Publication Number | Publication Date |
---|---|
US20140040905A1 US20140040905A1 (en) | 2014-02-06 |
US9342356B2 true US9342356B2 (en) | 2016-05-17 |
Family
ID=46929785
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/041,551 Expired - Fee Related US9342356B2 (en) | 2011-03-30 | 2013-09-30 | Task execution control for generating context information of a user to locate available services |
Country Status (3)
Country | Link |
---|---|
US (1) | US9342356B2 (en) |
JP (1) | JP5682705B2 (en) |
WO (1) | WO2012131962A1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190034223A1 (en) * | 2016-03-31 | 2019-01-31 | Alibaba Group Holding Limited | Task resource scheduling method and apparatus |
Families Citing this family (88)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8977255B2 (en) | 2007-04-03 | 2015-03-10 | Apple Inc. | Method and system for operating a multi-function portable electronic device using voice-activation |
US8676904B2 (en) | 2008-10-02 | 2014-03-18 | Apple Inc. | Electronic devices with voice command and contextual data processing capabilities |
DE212014000045U1 (en) | 2013-02-07 | 2015-09-24 | Apple Inc. | Voice trigger for a digital assistant |
CN104348855B (en) * | 2013-07-29 | 2018-04-27 | 华为技术有限公司 | Processing method, mobile terminal and the server of user information |
WO2015015917A1 (en) * | 2013-07-31 | 2015-02-05 | ソニー株式会社 | Service provision apparatus, service provision method, and program |
JP6318751B2 (en) * | 2014-03-20 | 2018-05-09 | 富士通株式会社 | Information processing apparatus, action switching method, and action switching program |
US9715875B2 (en) | 2014-05-30 | 2017-07-25 | Apple Inc. | Reducing the need for manual start/end-pointing and trigger phrases |
US10170123B2 (en) | 2014-05-30 | 2019-01-01 | Apple Inc. | Intelligent assistant for home automation |
US9338493B2 (en) | 2014-06-30 | 2016-05-10 | Apple Inc. | Intelligent automated assistant for TV user interactions |
US20160103708A1 (en) * | 2014-10-09 | 2016-04-14 | Profoundis Labs Pvt Ltd | System and method for task execution in data processing |
US10606859B2 (en) | 2014-11-24 | 2020-03-31 | Asana, Inc. | Client side system and method for search backed calendar user interface |
US11244264B2 (en) * | 2014-12-29 | 2022-02-08 | Hand Held Products, Inc. | Interleaving surprise activities in workflow |
US9886953B2 (en) | 2015-03-08 | 2018-02-06 | Apple Inc. | Virtual assistant activation |
US10460227B2 (en) | 2015-05-15 | 2019-10-29 | Apple Inc. | Virtual assistant in a communication session |
US10671428B2 (en) | 2015-09-08 | 2020-06-02 | Apple Inc. | Distributed personal assistant |
US10747498B2 (en) | 2015-09-08 | 2020-08-18 | Apple Inc. | Zero latency digital assistant |
US10691473B2 (en) | 2015-11-06 | 2020-06-23 | Apple Inc. | Intelligent automated assistant in a messaging environment |
JP6641936B2 (en) * | 2015-12-01 | 2020-02-05 | 富士通株式会社 | Information processing apparatus, information processing program, and information processing method |
US11734064B2 (en) | 2016-02-05 | 2023-08-22 | Sas Institute Inc. | Automated virtual machine resource management in container-supported many task computing |
US11080031B2 (en) * | 2016-02-05 | 2021-08-03 | Sas Institute Inc. | Message-based coordination of container-supported many task computing |
US10586535B2 (en) | 2016-06-10 | 2020-03-10 | Apple Inc. | Intelligent digital assistant in a multi-tasking environment |
US12197817B2 (en) | 2016-06-11 | 2025-01-14 | Apple Inc. | Intelligent device arbitration and control |
DK201670540A1 (en) | 2016-06-11 | 2018-01-08 | Apple Inc | Application integration with a digital assistant |
JP2018041287A (en) * | 2016-09-07 | 2018-03-15 | 富士通株式会社 | Schedule display program, schedule display method, and schedule display device |
JP6592416B2 (en) | 2016-09-29 | 2019-10-16 | マクセル株式会社 | Task execution order determination system and task execution method |
US11204787B2 (en) | 2017-01-09 | 2021-12-21 | Apple Inc. | Application integration with a digital assistant |
DK201770428A1 (en) | 2017-05-12 | 2019-02-18 | Apple Inc. | Low-latency intelligent automated assistant |
DK179496B1 (en) | 2017-05-12 | 2019-01-15 | Apple Inc. | USER-SPECIFIC Acoustic Models |
US20180336275A1 (en) | 2017-05-16 | 2018-11-22 | Apple Inc. | Intelligent automated assistant for media exploration |
US10977434B2 (en) | 2017-07-11 | 2021-04-13 | Asana, Inc. | Database model which provides management of custom fields and methods and apparatus therfor |
CN110166962B (en) * | 2018-02-14 | 2021-01-05 | 华为技术有限公司 | Rule management method and equipment |
US10623359B1 (en) | 2018-02-28 | 2020-04-14 | Asana, Inc. | Systems and methods for generating tasks based on chat sessions between users of a collaboration environment |
US10818288B2 (en) | 2018-03-26 | 2020-10-27 | Apple Inc. | Natural assistant interaction |
US11138021B1 (en) | 2018-04-02 | 2021-10-05 | Asana, Inc. | Systems and methods to facilitate task-specific workspaces for a collaboration work management platform |
US10613735B1 (en) | 2018-04-04 | 2020-04-07 | Asana, Inc. | Systems and methods for preloading an amount of content based on user scrolling |
US10928918B2 (en) | 2018-05-07 | 2021-02-23 | Apple Inc. | Raise to speak |
DK201870355A1 (en) | 2018-06-01 | 2019-12-16 | Apple Inc. | Virtual assistant operation in multi-device environments |
DK180639B1 (en) | 2018-06-01 | 2021-11-04 | Apple Inc | DISABILITY OF ATTENTION-ATTENTIVE VIRTUAL ASSISTANT |
US10785046B1 (en) | 2018-06-08 | 2020-09-22 | Asana, Inc. | Systems and methods for providing a collaboration work management platform that facilitates differentiation between users in an overarching group and one or more subsets of individual users |
US11462215B2 (en) | 2018-09-28 | 2022-10-04 | Apple Inc. | Multi-modal inputs for voice commands |
US11748158B2 (en) | 2018-09-30 | 2023-09-05 | Sas Institute Inc. | Data object preparation for execution of multiple task routine instances in many task computing |
US10616151B1 (en) | 2018-10-17 | 2020-04-07 | Asana, Inc. | Systems and methods for generating and presenting graphical user interfaces |
US10956845B1 (en) | 2018-12-06 | 2021-03-23 | Asana, Inc. | Systems and methods for generating prioritization models and predicting workflow prioritizations |
US11113667B1 (en) | 2018-12-18 | 2021-09-07 | Asana, Inc. | Systems and methods for providing a dashboard for a collaboration work management platform |
US11568366B1 (en) | 2018-12-18 | 2023-01-31 | Asana, Inc. | Systems and methods for generating status requests for units of work |
US11782737B2 (en) | 2019-01-08 | 2023-10-10 | Asana, Inc. | Systems and methods for determining and presenting a graphical user interface including template metrics |
US10684870B1 (en) | 2019-01-08 | 2020-06-16 | Asana, Inc. | Systems and methods for determining and presenting a graphical user interface including template metrics |
US11204683B1 (en) | 2019-01-09 | 2021-12-21 | Asana, Inc. | Systems and methods for generating and tracking hardcoded communications in a collaboration management platform |
US11348573B2 (en) | 2019-03-18 | 2022-05-31 | Apple Inc. | Multimodality in digital assistant systems |
US11307752B2 (en) | 2019-05-06 | 2022-04-19 | Apple Inc. | User configurable task triggers |
DK201970509A1 (en) | 2019-05-06 | 2021-01-15 | Apple Inc | Spoken notifications |
US11468890B2 (en) | 2019-06-01 | 2022-10-11 | Apple Inc. | Methods and user interfaces for voice-based control of electronic devices |
US11341445B1 (en) | 2019-11-14 | 2022-05-24 | Asana, Inc. | Systems and methods to measure and visualize threshold of user workload |
US11783253B1 (en) | 2020-02-11 | 2023-10-10 | Asana, Inc. | Systems and methods to effectuate sets of automated actions outside and/or within a collaboration environment based on trigger events occurring outside and/or within the collaboration environment |
US11599855B1 (en) | 2020-02-14 | 2023-03-07 | Asana, Inc. | Systems and methods to attribute automated actions within a collaboration environment |
US11763259B1 (en) | 2020-02-20 | 2023-09-19 | Asana, Inc. | Systems and methods to generate units of work in a collaboration environment |
US12301635B2 (en) | 2020-05-11 | 2025-05-13 | Apple Inc. | Digital assistant hardware abstraction |
US11061543B1 (en) | 2020-05-11 | 2021-07-13 | Apple Inc. | Providing relevant data items based on context |
US11455601B1 (en) | 2020-06-29 | 2022-09-27 | Asana, Inc. | Systems and methods to measure and visualize workload for completing individual units of work |
US11900323B1 (en) | 2020-06-29 | 2024-02-13 | Asana, Inc. | Systems and methods to generate units of work within a collaboration environment based on video dictation |
US11490204B2 (en) | 2020-07-20 | 2022-11-01 | Apple Inc. | Multi-device audio adjustment coordination |
US11438683B2 (en) | 2020-07-21 | 2022-09-06 | Apple Inc. | User identification using headphones |
US11449836B1 (en) | 2020-07-21 | 2022-09-20 | Asana, Inc. | Systems and methods to facilitate user engagement with units of work assigned within a collaboration environment |
US11568339B2 (en) | 2020-08-18 | 2023-01-31 | Asana, Inc. | Systems and methods to characterize units of work based on business objectives |
US11769115B1 (en) | 2020-11-23 | 2023-09-26 | Asana, Inc. | Systems and methods to provide measures of user workload when generating units of work based on chat sessions between users of a collaboration environment |
US11405435B1 (en) | 2020-12-02 | 2022-08-02 | Asana, Inc. | Systems and methods to present views of records in chat sessions between users of a collaboration environment |
US11694162B1 (en) | 2021-04-01 | 2023-07-04 | Asana, Inc. | Systems and methods to recommend templates for project-level graphical user interfaces within a collaboration environment |
US11676107B1 (en) | 2021-04-14 | 2023-06-13 | Asana, Inc. | Systems and methods to facilitate interaction with a collaboration environment based on assignment of project-level roles |
US11553045B1 (en) | 2021-04-29 | 2023-01-10 | Asana, Inc. | Systems and methods to automatically update status of projects within a collaboration environment |
US11803814B1 (en) | 2021-05-07 | 2023-10-31 | Asana, Inc. | Systems and methods to facilitate nesting of portfolios within a collaboration environment |
US11792028B1 (en) | 2021-05-13 | 2023-10-17 | Asana, Inc. | Systems and methods to link meetings with units of work of a collaboration environment |
US11809222B1 (en) | 2021-05-24 | 2023-11-07 | Asana, Inc. | Systems and methods to generate units of work within a collaboration environment based on selection of text |
US12141756B1 (en) | 2021-05-24 | 2024-11-12 | Asana, Inc. | Systems and methods to generate project-level graphical user interfaces within a collaboration environment |
CN113360260B (en) * | 2021-06-01 | 2023-03-14 | 上海安吉星信息服务有限公司 | Vehicle data acquisition method and system, storage medium and server |
US12093859B1 (en) | 2021-06-02 | 2024-09-17 | Asana, Inc. | Systems and methods to measure and visualize workload for individual users |
US12182505B1 (en) | 2021-06-10 | 2024-12-31 | Asana, Inc. | Systems and methods to provide user-generated project-level graphical user interfaces within a collaboration environment |
US11756000B2 (en) | 2021-09-08 | 2023-09-12 | Asana, Inc. | Systems and methods to effectuate sets of automated actions within a collaboration environment including embedded third-party content based on trigger events |
US12159262B1 (en) | 2021-10-04 | 2024-12-03 | Asana, Inc. | Systems and methods to provide user-generated graphical user interfaces within a collaboration environment |
US11635884B1 (en) | 2021-10-11 | 2023-04-25 | Asana, Inc. | Systems and methods to provide personalized graphical user interfaces within a collaboration environment |
US12093896B1 (en) | 2022-01-10 | 2024-09-17 | Asana, Inc. | Systems and methods to prioritize resources of projects within a collaboration environment |
US12118514B1 (en) | 2022-02-17 | 2024-10-15 | Asana, Inc. | Systems and methods to generate records within a collaboration environment based on a machine learning model trained from a text corpus |
US11997425B1 (en) | 2022-02-17 | 2024-05-28 | Asana, Inc. | Systems and methods to generate correspondences between portions of recorded audio content and records of a collaboration environment |
US11836681B1 (en) | 2022-02-17 | 2023-12-05 | Asana, Inc. | Systems and methods to generate records within a collaboration environment |
US12190292B1 (en) | 2022-02-17 | 2025-01-07 | Asana, Inc. | Systems and methods to train and/or use a machine learning model to generate correspondences between portions of recorded audio content and work unit records of a collaboration environment |
US12051045B1 (en) | 2022-04-28 | 2024-07-30 | Asana, Inc. | Systems and methods to characterize work unit records of a collaboration environment based on stages within a workflow |
US12288171B1 (en) | 2022-07-18 | 2025-04-29 | Asana, Inc. | Systems and methods to provide records for new users of a collaboration environment |
US11863601B1 (en) | 2022-11-18 | 2024-01-02 | Asana, Inc. | Systems and methods to execute branching automation schemes in a collaboration environment |
US12287849B1 (en) | 2022-11-28 | 2025-04-29 | Asana, Inc. | Systems and methods to automatically classify records managed by a collaboration environment |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5560011A (en) * | 1993-10-19 | 1996-09-24 | New Media Development Association | Computer system for monitoring a user's utilization pattern to determine useful tasks |
US20020169752A1 (en) | 2001-05-10 | 2002-11-14 | Takato Kusama | Workflow system |
JP2003030389A (en) | 2001-05-10 | 2003-01-31 | Hitachi Ltd | Workflow management method, its execution system, and its processing program |
JP2004348495A (en) | 2003-05-23 | 2004-12-09 | Hitachi Ltd | Personal storage service provision method |
WO2006003817A1 (en) | 2004-07-02 | 2006-01-12 | Matsushita Electric Industrial Co., Ltd. | Device controller |
US20060156252A1 (en) | 2005-01-10 | 2006-07-13 | Samsung Electronics Co., Ltd. | Contextual task recommendation system and method for determining user's context and suggesting tasks |
JP2007164519A (en) | 2005-12-14 | 2007-06-28 | Toshiba Corp | Work plan creation device and work plan creation processing program |
JP2008015585A (en) | 2006-07-03 | 2008-01-24 | National Institute Of Information & Communication Technology | Living task support system |
JP2008033618A (en) | 2006-07-28 | 2008-02-14 | Hitachi Ltd | Manager device, control method, and control program |
JP2008097297A (en) | 2006-10-11 | 2008-04-24 | Nippon Telegr & Teleph Corp <Ntt> | COMMUNICATION DEVICE, COMMUNICATION METHOD, AND COMMUNICATION PROGRAM |
JP2008282068A (en) | 2007-05-08 | 2008-11-20 | Access Co Ltd | Execution environment software, presence information providing program, terminal device, and presence management system |
JP2010113621A (en) | 2008-11-07 | 2010-05-20 | Nippon Telegr & Teleph Corp <Ntt> | Place task information processor |
-
2011
- 2011-03-30 JP JP2013506962A patent/JP5682705B2/en not_active Expired - Fee Related
- 2011-03-30 WO PCT/JP2011/058144 patent/WO2012131962A1/en active Application Filing
-
2013
- 2013-09-30 US US14/041,551 patent/US9342356B2/en not_active Expired - Fee Related
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5560011A (en) * | 1993-10-19 | 1996-09-24 | New Media Development Association | Computer system for monitoring a user's utilization pattern to determine useful tasks |
US20020169752A1 (en) | 2001-05-10 | 2002-11-14 | Takato Kusama | Workflow system |
JP2003030389A (en) | 2001-05-10 | 2003-01-31 | Hitachi Ltd | Workflow management method, its execution system, and its processing program |
JP2004348495A (en) | 2003-05-23 | 2004-12-09 | Hitachi Ltd | Personal storage service provision method |
WO2006003817A1 (en) | 2004-07-02 | 2006-01-12 | Matsushita Electric Industrial Co., Ltd. | Device controller |
US20070176786A1 (en) | 2004-07-02 | 2007-08-02 | Kakuya Yamamoto | Device control apparatus |
JP2006228198A (en) | 2005-01-10 | 2006-08-31 | Samsung Electronics Co Ltd | Contextual task proposal system and method for determining a user's context and proposing a task |
US20060156252A1 (en) | 2005-01-10 | 2006-07-13 | Samsung Electronics Co., Ltd. | Contextual task recommendation system and method for determining user's context and suggesting tasks |
JP2007164519A (en) | 2005-12-14 | 2007-06-28 | Toshiba Corp | Work plan creation device and work plan creation processing program |
JP2008015585A (en) | 2006-07-03 | 2008-01-24 | National Institute Of Information & Communication Technology | Living task support system |
JP2008033618A (en) | 2006-07-28 | 2008-02-14 | Hitachi Ltd | Manager device, control method, and control program |
JP2008097297A (en) | 2006-10-11 | 2008-04-24 | Nippon Telegr & Teleph Corp <Ntt> | COMMUNICATION DEVICE, COMMUNICATION METHOD, AND COMMUNICATION PROGRAM |
JP2008282068A (en) | 2007-05-08 | 2008-11-20 | Access Co Ltd | Execution environment software, presence information providing program, terminal device, and presence management system |
JP2010113621A (en) | 2008-11-07 | 2010-05-20 | Nippon Telegr & Teleph Corp <Ntt> | Place task information processor |
Non-Patent Citations (3)
Title |
---|
International Search Report mailed May 31, 2011 in corresponding International Application No. PCT/JP2011/058144. |
Japanese Office Action dated Sep. 9, 2014 in corresponding Japanese Patent Application No. 2013-506962. |
PCT International Preliminary Report on Patentability mailed Oct. 10, 2013 in corresponding International Application No. PCT/JP2011/058144. |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190034223A1 (en) * | 2016-03-31 | 2019-01-31 | Alibaba Group Holding Limited | Task resource scheduling method and apparatus |
US10936359B2 (en) * | 2016-03-31 | 2021-03-02 | Alibaba Group Holding Limited | Task resource scheduling method and apparatus |
Also Published As
Publication number | Publication date |
---|---|
WO2012131962A1 (en) | 2012-10-04 |
JPWO2012131962A1 (en) | 2014-07-24 |
JP5682705B2 (en) | 2015-03-11 |
US20140040905A1 (en) | 2014-02-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9342356B2 (en) | Task execution control for generating context information of a user to locate available services | |
CN112000448B (en) | Application management method based on micro-service architecture | |
US8601157B2 (en) | Device, method, and system of communicating via relay device, and recording medium storing communication control program | |
US9954968B2 (en) | Remote access gateway configurable control system | |
US8700931B2 (en) | Method and system for managing power of a mobile device | |
US9705962B2 (en) | Asynchronous reporting system | |
CN105453035B (en) | Method for receiving the update to the component software for being stored in computer systems division | |
CN110114761A (en) | Software renewing apparatus and software update system | |
CN110913015A (en) | Distributed quick installation method, system and medium for cloud mobile phone APP | |
KR20130017234A (en) | Method of updating software list on software as a service and system for the same | |
US10514713B2 (en) | Mailbox data storage system | |
CN111488181A (en) | Task scheduling method and device, storage medium and server | |
CN108173840A (en) | Intelligent logistics terminal integration middleware based on cloud platform | |
CN105787300B (en) | Method and system for controlling use of software | |
JP2008262351A (en) | Access control device | |
CN117221326A (en) | Software load balancing scheduling method, system, electronic equipment and storage medium | |
CN107038056B (en) | Streaming computing mode dispatching method based on Android platform | |
KR102017631B1 (en) | Terminal apparatus and method for transmitting and receiving data | |
KR20180075073A (en) | Internet of things framework and method of operating the same | |
JP6381242B2 (en) | Information processing apparatus, information processing method, and program | |
CN111309457A (en) | Method, terminal, collection node and system for collecting meal ordering shop information | |
JP2017076857A (en) | Management device, information processing unit, control method of management device, control method and program of information processing unit | |
JP7175314B2 (en) | Equipment management device, equipment management system, equipment management method, and program | |
JP2013152513A (en) | Task management system, task management server, task management method and task management program | |
US10191770B2 (en) | Maintenance tasks based on device role |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: FUJITSU LIMITED, JAPAN Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:TSUNODA, TADANOBU;USHIKI, KAZUMASA;FUJINO, NOBUTSUGU;AND OTHERS;SIGNING DATES FROM 20130815 TO 20130822;REEL/FRAME:031377/0552 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
FEPP | Fee payment procedure |
Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
LAPS | Lapse for failure to pay maintenance fees |
Free format text: PATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
STCH | Information on status: patent discontinuation |
Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362 |
|
FP | Lapsed due to failure to pay maintenance fee |
Effective date: 20200517 |