WO2019176740A1 - デバイス割り当て制御方法、システムおよびプログラム - Google Patents

デバイス割り当て制御方法、システムおよびプログラム Download PDF

Info

Publication number
WO2019176740A1
WO2019176740A1 PCT/JP2019/009145 JP2019009145W WO2019176740A1 WO 2019176740 A1 WO2019176740 A1 WO 2019176740A1 JP 2019009145 W JP2019009145 W JP 2019009145W WO 2019176740 A1 WO2019176740 A1 WO 2019176740A1
Authority
WO
WIPO (PCT)
Prior art keywords
service
context
service program
state
program
Prior art date
Application number
PCT/JP2019/009145
Other languages
English (en)
French (fr)
Inventor
真彦 辻
真一郎 永徳
片山 幸久
Original Assignee
日本電信電話株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 日本電信電話株式会社 filed Critical 日本電信電話株式会社
Priority to US16/981,000 priority Critical patent/US11934881B2/en
Publication of WO2019176740A1 publication Critical patent/WO2019176740A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]

Definitions

  • the present invention relates to a method, a system, and a program for controlling assignment of a device related to execution of a service program to the service program.
  • Patent Document 1 a device that is used for a service that is always activated is always assigned and occupied by a service program related to the service, and thus cannot be shared by a plurality of services.
  • the present invention has been made paying attention to the above circumstances, and an object of the present invention is to provide a method, system, and program for executing device allocation processing and allocation release processing for a service program during execution of the service program There is to do.
  • a first aspect of the present invention is a device allocation control for allocating a device on a service provision field to a service program stored in a storage unit, which is executed by an apparatus including a hardware processor and a memory.
  • a predetermined service context as a processing unit of the service program starts based on data communicated between the device and the device assigned to the service program
  • a service context determination process for determining termination and execution of the predetermined service context determined to start when the predetermined service context is determined to start during execution of the service program by the device You Assigning a device used for the service program to the service program, and if it is determined that the predetermined service context is to be terminated, a device used to execute the predetermined service context determined to be terminated
  • a device occupation control process including at least one of processes for releasing the allocation to the service program.
  • the device allocation control method extracts a data communication event included in each of the predefined states and state transitions included in the service program, and the extracted states and states Based on the data communication event that each of the transitions has and the context coefficient corresponding to the score value that is set for each data communication event and indicates the ease of occurrence of another data communication event after the data communication event And a process of determining a service context as a processing unit of the service program.
  • the device allocation control method corrects the context coefficient based on a history of data communication events that occur between the device allocated to the service program and the device. Is further provided.
  • the device occupation control process determines that the predetermined service context starts, and a device used to execute the predetermined service context is a second service program. In the case of assignment, a process of notifying the time when the device can be assigned to the service program is provided.
  • the device occupation control process determines that the predetermined service context starts, and a device used to execute the predetermined service context is the second service program.
  • the history of the maintenance time of each state included in the second service program at the time of execution of the second service program, and the second service at the time of execution of the second service program A process of calculating a time at which the device can be assigned to the service program based on a state transition history indicating a state before and after a state transition in the program is provided.
  • the assignment of devices to the service program is controlled based on a service context that is a processing unit of the service program. For this reason, during the execution of the service program, there is a device that is not allocated to the service program even if it is a device that is required to execute the service program. Therefore, even when an interruption is caused by another service program, such a device can be assigned to the service program without interrupting the service program being executed, and the device can be shared by a plurality of services.
  • control is performed so that required devices are assigned to service programs in units of service contexts, preventing the use of the devices by other services during the period when the service programs require devices. It is also possible to do.
  • a service context which is a processing unit of the service program, is determined according to a criterion called a context coefficient.
  • the device allocation control to the service program is executed with the optimum granularity of the service context determined based on the context coefficient.
  • the context coefficient is corrected based on the actual data of the data communication event accompanying the execution of the service program.
  • the service context determined based on the context coefficient has a more realistic granularity. It becomes possible.
  • a time at which the device can be assigned to the service context is notified. For example, by using such notification, time management of a device shared between a plurality of services becomes easy.
  • the time at which a device assigned to the second service program can be assigned to another service program based on a past history when the second service program is executed is calculated.
  • the predicted time calculated based on the past actual data is highly reliable.
  • each aspect of the present invention it is possible to provide a method, a system, and a program for executing device allocation processing and allocation release processing for a service program during execution of the service program.
  • FIG. 1 is an overhead view of a first embodiment of the present invention.
  • FIG. 2 is a diagram showing an example of a service context configuration of the service program according to the first embodiment of the present invention.
  • FIG. 3 is a diagram illustrating an example of device occupation status and elapsed time according to the service program illustrated in FIG.
  • FIG. 4 is a block diagram showing a functional configuration of the device management system according to the first embodiment of the present invention.
  • FIG. 5 is a diagram illustrating an example of context coefficient information.
  • FIG. 6 is a diagram illustrating an example of service context information.
  • FIG. 7 is a diagram illustrating an example of device occupation information.
  • FIG. 8A is a diagram illustrating an example of state maintenance time log information.
  • FIG. 8B is a diagram illustrating an example of state transition log information.
  • FIG. 9 is a flowchart showing an example of service context determination processing executed by the control unit shown in FIG.
  • FIG. 10 is a diagram illustrating an outline of processing for determining a state transition in which a transition source state and a transition destination state are included in the same service context.
  • FIG. 11 is a first image diagram of a service context configuration of a service program related to a context coefficient correction process.
  • FIG. 12 is a diagram illustrating an example of device reservations and elapsed time according to the service program illustrated in FIG. 11.
  • FIG. 13 is a second image diagram of the service context configuration of the service program according to the context coefficient correction process.
  • FIG. 14 is a diagram illustrating an example of device reservations and elapsed time according to the service program illustrated in FIG. 13.
  • FIG. 13 is a first image diagram of a service context configuration of a service program related to a context coefficient correction process.
  • FIG. 12 is a diagram illustrating an example of device reservations and elapsed time according to the service program illustrated in FIG.
  • FIG. 15 is a sequence diagram showing an example of a service program registration process executed by the control unit shown in FIG.
  • FIG. 16 is a sequence diagram showing an example of a service start process executed by the control unit shown in FIG.
  • FIG. 17 is a sequence diagram showing an example of device occupation processing executed by the control unit shown in FIG.
  • FIG. 18 is a sequence diagram illustrating an example of a device occupation reservation process and a device occupation process executed by the control unit illustrated in FIG.
  • FIG. 19 is a sequence diagram illustrating an example of a device communication process executed by the control unit illustrated in FIG.
  • FIG. 20 is a sequence diagram illustrating an example of a service context switching process executed by the control unit illustrated in FIG.
  • FIG. 21 is a sequence diagram showing an example of service stop processing executed by the control unit shown in FIG.
  • FIG. 1 is an overhead view of a first embodiment of the present invention.
  • the device management system 1 according to the first embodiment of the present invention can provide a plurality of device cooperation services that can be provided by controlling devices on the service provision field.
  • a device controlled by a service program of a certain device cooperation service can be interrupt-controlled by a service program of another device cooperation service during execution of the service program.
  • FIG. 1 illustrates a state in which the device 3B controlled by the device cooperation service X service program is interrupt-controlled by the device cooperation service Y service program while the device cooperation service X is being provided.
  • a service context that is a processing unit of a service program is defined.
  • FIG. 2 is a diagram showing an example of a service context configuration of the service program according to the first embodiment of the present invention.
  • the service program handled in the first embodiment of the present invention is composed of “state” and “state transition”.
  • the state is a certain state of a service defined by the service program, and receives data transmitted from the device (hereinafter referred to as device transmission data), processes the device transmission data, and controls instructions for the device (hereinafter referred to as device). This is composed of one or more transmissions of control commands.
  • State transition is a condition for transitioning from one state to another, and consists of conditional expressions. Further, a part of the state transition condition includes a result of receiving device transmission data, for example, “if the data transmitted by the temperature sensor is 28 ° C. or higher”, transition to the next state.
  • the service program A includes a service context AC1 composed of the state A1 and the state A2, and a state A3, a state A4, a state A5, a state A6, and a state A7 as processing units of the service program as described above.
  • a service context AC2 and a service context AC3 including a state A8, a state A9, and a state A10 are defined.
  • the service program B includes a service context BC1 composed of a state B1, a state B2, a state B3, a state B4, a state B6, a state B7, a state B9, and a state B10.
  • a service context BC2, a service context BC3 composed of a state B5 and a state B8, and a service context BC4 composed of a state B11 are defined.
  • the service context AC1 when executed, only the device used for the processing of the state A1 and the state A2 is occupied by the service program A.
  • the processing of the service context AC1 is completed, the device occupied by the service program A during the execution of the service context AC1 is released.
  • FIG. 3 is a diagram showing an example of the occupation status and elapsed time of a certain device related to the service programs A and B shown in FIG.
  • the device since the service context AC1 of the service program A uses the device, the device is occupied from the service context AC1.
  • the occupation of the device is released. Thereafter, the device is occupied from the service context BC2 of the service program B.
  • the device since there is a reservation for occupation from the service context AC3 before the service context BC2 is completed, the device is reserved for the resource in the service context AC3 after the service context BC2 is completed.
  • the occupation state of the device is not changed, and after completion of the service context AC3, the device is reserved so that the service context BC3 can dedicate the device.
  • FIG. 4 is a block diagram showing a functional configuration of the device management system 1 according to the first embodiment of the present invention.
  • a device management system 1 will be described as a non-limiting example of a device allocation control system. Note that the device management system 1 shown in FIG. 4 is merely an example, and each component included in the device management system 1 may exist as a physically separate device in any combination.
  • the device management system 1 includes a control unit 11, a storage unit 12, and a communication interface unit 13 as hardware.
  • the communication interface unit 13 includes, for example, one or more wired or wireless communication interface units.
  • the communication interface unit 13 inputs, for example, a service program input by the input unit 2 including a keyboard, a mouse, and the like and an operation signal of the service program to the control unit 11.
  • the service program receives device transmission data via the device interface, for example, “When the first device transmits the first data, the second device performs the first process”. This is a program in which the processing logic of a service that transmits a device control command is described.
  • the communication interface unit 13 outputs device transmission data transmitted from devices 3A,..., 3N, which are terminals such as robots and sensors, to the control unit 11, such as device control instructions output from the control unit 11. Data is output to the devices 3A,..., 3N.
  • the storage unit 12 uses a non-volatile memory that can be written and read as needed, such as an HDD (Hard Disc Drive) or an SSD (Solid State Drive) as a storage medium, and a service program for realizing the present embodiment.
  • a storage unit 121, a context coefficient storage unit 122, a service context storage unit 123, a device occupation information storage unit 124, and a state transition information storage unit 125 are provided.
  • the service program storage unit 121 is used for storing registered service programs.
  • the context coefficient storage unit 122 stores context coefficient information.
  • the context coefficient information corresponds to, for example, a score value that is set for each event of reception of each device transmission data and transmission of each device control command and represents the ease of occurrence of another data communication event after the event. Contains a context factor.
  • the service context storage unit 123 is used for storing service context information.
  • the service context information includes, for example, service context information for each service program determined under the control of the service context analysis unit 112.
  • the device occupation information storage unit 124 is used for storing device occupation information.
  • the device occupation information includes, for example, information on a device group occupied by each service program being executed and a device group reserved for occupation.
  • the state transition information storage unit 125 is used for storing state transition information.
  • the state transition information includes, for example, state maintenance time log information including a log of the time required from the start of the state to the end of the state transition, the state and service context before the transition to a certain state, and the state.
  • State transition log information including a state transition log and a service context log.
  • the control unit 11 includes a hardware processor such as a CPU (Central Processing Unit) and a program memory, and in order to execute the processing functions in the present embodiment, a service program management unit 111, a service context analysis unit 112, A service context determination unit 113 and a device management unit 114 are provided. All of the processing functions in these units are realized by causing the hardware processor to execute a program stored in the program memory. Note that these processing functions are not realized using a program stored in a program memory, but may be realized using a program provided through a network.
  • a hardware processor such as a CPU (Central Processing Unit) and a program memory
  • the service program management unit 111 includes a registration management unit 1111 and an execution management unit 1112.
  • the registration management unit 1111 executes processing for registering a service program. Specifically, first, the registration management unit 1111 acquires a service program from the input unit 2 via the communication interface unit 13 and executes a process of storing the acquired service program in the service program storage unit 121. Thereafter, the registration management unit 1111 executes processing for requesting the service context analysis unit 112 to analyze the service program.
  • the execution management unit 1112 reads and executes the service program stored in the service program storage unit 121, transmits a device control command to the service context determination unit 113, and receives device transmission data from the service context determination unit 113. Execute. In addition, the execution management unit 1112 executes, as the service program is executed, the state maintenance time length history related to the service program as state maintenance time log information, and the state transition history related to the service program as state transition log information. Then, the process to be stored in the state transition information storage unit 125 is executed.
  • the service context analysis unit 112 In response to the request from the registration management unit 1111, the service context analysis unit 112 reads the service program stored in the service program storage unit 121 and refers to the context coefficient information stored in the context coefficient storage unit 122. Then, a process of determining the service context by analyzing the read service program is executed. Next, the service context analysis unit 112 executes a process of storing the determined service context information in the service context storage unit 123.
  • the service context determination unit 113 executes a process of receiving a device control command from the execution management unit 1112 of the service program management unit 111 and transmitting the received device control command to the device management unit 114. In addition, the service context determination unit 113 executes a process of receiving device transmission data from the device management unit 114 and transmitting the received device transmission data to the execution management unit 1112 of the service program management unit 111.
  • the service context determination unit 113 receives the device control command received from the execution management unit 1112 of the service program management unit 111, the device transmission data received from the device management unit 114, and the service stored in the service context storage unit 123. By determining in which state the service program being executed is in a state based on the context information, it is possible to execute processing for determining the start and end of the service context.
  • the service context determination unit 113 determines that the received device control instruction or device transmission data corresponds to a predetermined device control instruction or device transmission data included in the last state of the service context, and the service context ends. It is also possible to execute a process for determining the above. In addition, the service context determination unit 113 determines that the received device transmission data satisfies a state transition transition condition, and the service context including the state before the state transition transition ends or the state transition A process for determining that a service context including the state after the transition is started may be executed.
  • the service context determination unit 113 When the service context determination unit 113 determines the end of the service context, the service context determination unit 113 requests to release the device group occupied by the service program to execute the service context (hereinafter referred to as a device occupation release request). Is transmitted to the device management unit 114. In addition, the service context determination unit 113 occupies a device group that will not be used thereafter in the service context based on the determination of which state the service program being executed is in. A process of transmitting a device occupation release request for releasing the occupation of the device group to the device management unit 114 may be executed.
  • the service context determination unit 113 determines the start of the service context, the service context occupies a request for the service program to occupy a device group necessary for executing the service context (hereinafter referred to as a device occupancy request). ) Is transmitted to the device management unit 114.
  • the device management unit 114 receives the device control command from the service context determination unit 113, and transmits the received device control command to the destination real device among the devices 3A to 3N via the communication interface unit 13. Execute the process. In addition, the device management unit 114 acquires device transmission data transmitted from the devices 3A to 3N via the communication interface unit 13, and executes processing for transmitting the acquired data to the service context determination unit 113.
  • the device management unit 114 includes a device occupation control unit 1141, a device occupation start time calculation unit 1142, and a context coefficient correction unit 1143.
  • the device occupation control unit 1141 receives the device occupation request and the device occupation release request transmitted from the service context determination unit 113, and occupies and occupies the device group specified in the received device occupation request and device occupation release request. Execute the process to release. Thereafter, the device occupancy control unit 1141 executes processing for storing the occupancy or occupancy release information of the device group in the device occupancy information storage unit 124.
  • the device occupancy control unit 1141 executes occupancy reservation of the device group, and occupies the device group. Is stored in the device occupation information storage unit 124. The device occupancy control unit 1141 executes processing for occupying the device group reserved for exclusive use when the device group reserved for exclusive use is released exclusively.
  • the device occupancy start time calculation unit 1142 executes a process of reading the device occupancy information stored in the device occupancy information storage unit 124 when the device group occupancy reservation is made as described above. Thereafter, the device occupancy start time calculation unit 1142 calculates, as the device occupancy start time, a time at which the device group is released from other service programs and becomes available based on the read device occupancy information. Execute the process.
  • the context coefficient correction unit 1143 reads the state transition information stored in the state transition information storage unit 125, and reads and corrects the context coefficient stored in the context coefficient storage unit 122 based on the read state transition information. Then, a process of storing the corrected context coefficient in the context coefficient storage unit 122 is executed.
  • FIG. 6 shows an example of context coefficient information stored in the context coefficient storage unit 122.
  • the context coefficient information is registered in advance when the operator registers the service program, for example.
  • FIG. 6 shows an example of service context information stored in the service context storage unit 123.
  • FIG. 7 shows an example of the device occupation information stored in the device occupation information storage unit 124.
  • FIG. 8A shows an example of state maintenance time log information stored in the state transition information storage unit 125.
  • FIG. 8B shows an example of state transition log information stored in the state transition information storage unit 125.
  • the service context identifier, the state list, the used device list, and the set of context coefficients for each state and state transition stored in the service context storage unit 123 may be explicitly input when registering the service program.
  • the service context analysis unit 112 may automatically determine as follows.
  • FIG. 9 is a flowchart showing an example of service context determination processing executed by the control unit 11 shown in FIG.
  • the service context determination process is executed under the control of the service context analysis unit 112.
  • step S11 the control unit 11 reads a service program stored in the service program storage unit 121 under the control of the service context analysis unit 112, and a predefined state included in the read service program And state transitions are extracted and listed.
  • the state and the state transition are respectively “transmission of device control command” or “reception of device transmission data” that can be uniquely identified by “by device transmission / reception”, “device identifier”, and “device interface identifier”. It consists of one or more combinations.
  • step S12 under the control of the service context analysis unit 112, the control unit 11 extracts, for each state extracted in step S11, a device control command transmission event and a device transmission data reception event that the state has.
  • the control unit 11 reads out the context factor of the extracted device control command transmission and device transmission data reception event stored in the context coefficient storage unit 122. .
  • the control unit 11 transmits, for each of the extracted states, as a context coefficient of the state, an event of transmission of a device control command and reception of device transmission data included in the state. A value obtained by dividing the sum of the context coefficients by the total number of events of device control command transmission and device transmission data reception is calculated.
  • step S ⁇ b> 13 the control unit 11 transmits a device control instruction included in the state transition stored in the context coefficient storage unit 122 for each state transition extracted in step S ⁇ b> 11 under the control of the service context analysis unit 112.
  • the context coefficient of the event of receiving device transmission data is read.
  • the control unit 11 transmits the device control command and the device transmission data included in the state transition as the context coefficient of the state transition for each of the extracted state transitions.
  • the sum of the context coefficients of the events is divided by the total number of events of device control command transmission and device transmission data reception.
  • step S12 and step S13 may be executed in the reverse order as described above, or may be executed in parallel.
  • step S14 the control unit 11 uses the context coefficient of each state calculated in step S12 and the context coefficient of each state transition derived in step S13 under the control of the service context analysis unit 112, A service context related to the service program is determined and extracted.
  • step S14-1 a state transition in which the transition source state and the transition destination state are included in the same service context is determined. Specifically, the following state transition is determined as a state transition including the transition source state and the transition destination state in the same service context.
  • state transitions 3) and 4) may be included as state transitions that include the transition source and transition destination states in the same service context.
  • Each of the state transitions up to N (N is a natural number of 1 or more) in the next state transition For the state transitions, the weighted addition of the context coefficients of the state of each transition source is the context coefficient of the state of the transition source, the weighted addition of the context coefficients of each state transition is the context coefficient of the state transition, State transition corresponding to 1) or 2) is obtained by weighting and adding the context coefficients of each transition destination state as the context coefficient of the transition destination state.
  • step S14-2 a service context is extracted. Specifically, in step S14-1, a service context in which the transition source state of the state transition that has not been determined as "the state transition including the transition source state and the transition destination state in the same service context" is different from the state after the transition
  • the service context is extracted as follows.
  • FIG. 10 is a diagram showing an outline of the process for determining the state transition in step S14-1 to include the transition source state and the transition destination state in the same service context.
  • Patterns 1 to 4 are state transitions corresponding to the above 1).
  • Pattern 5 is a state transition corresponding to 2) above.
  • Patterns 6 to 8 are state transitions not corresponding to the above 1) and 2).
  • Context coefficient correction processing executed under the control of the context coefficient correction unit 1143 of the device management unit 114 will be described in detail.
  • a context coefficient is added or subtracted in the following cases using a log (state transition time, device reservation, control command reception time, etc.) at the time of service program execution. It is possible to re-extract the service context based on the context coefficient corrected in this way.
  • FIG. 11 is a first image diagram of a service context configuration of a service program related to context coefficient correction processing.
  • state A3 In service program A, state A3 often starts immediately after state A2.
  • the context coefficient of the state A2 in order to include the state A2 and the state A3 in one service context, the context coefficient of the state A2, the context coefficient of the state A3, or the state A2 to the state A3 Increase the context coefficient of state transition. This makes it easy to combine the two divided service contexts into one.
  • the length of time from when a service context a in the service program ends until the next service context b start request command is evaluated.
  • the time length is short, the last state of the service context a and the first state of the service context b, and the context coefficient of the state transition between the two states are increased.
  • FIG. 12 is a diagram showing an example of the exclusive reservation and elapsed time of the device related to the service program A shown in FIG.
  • the transition time of the service context AC1 and the transition to the next service context AC2 after the service context AC1 is completed
  • the context coefficient correction process is executed using the history of the time when the device transmission data satisfying the condition is received.
  • Context coefficient addition processing is performed using the evaluation value when adding the context coefficient.
  • dc s constant dc s : dc_ ⁇ all ⁇
  • the number of times of device control command transmission or device transmission data reception received for the first time within the threshold value b seconds after completion of the previous service context dc all service context AC_ ⁇ Number of occurrences of transition from i ⁇ to service context AC_ ⁇ j ⁇ t MC: Threshold value that determines whether or not to add a context coefficient
  • C_ ⁇ st_AC_ ⁇ i ⁇ Context coefficient C_ ⁇ tr_AC_ ⁇ i ⁇ of the event of transmission of a device control command or reception of device transmission data included in the last state of the service context
  • AC_ ⁇ i ⁇ service context
  • AC_ Context coefficient C_ ⁇ st_AC_ ⁇ j ⁇ of event of transmission of device control command or reception of device transmission data included in state transition from ⁇ i ⁇ to service context
  • FIG. 13 is a second image diagram of the service context configuration of the service program according to the context coefficient correction process.
  • FIG. 14 is a diagram showing an example of the exclusive reservation and elapsed time of the device related to the service program A shown in FIG.
  • the context coefficient correction processing related to the state A2 and the state A3 as described above, as shown in FIG. 14, from the state A2 to the state A3, which is a history of the time required for the state transition in a certain service context.
  • the context coefficient correction process is executed using the time required for the transition.
  • the service state update notification shown in FIG. 14 is generated when the device transmission data satisfies a certain transition condition and a state transition occurs in the execution management unit 1112 of the service program management unit 111. This is a notification that “the status has changed”.
  • the context coefficient subtraction process is performed using the evaluation value at the time of subtracting the context coefficient.
  • c constant st s : st_ ⁇ all ⁇
  • the number of times of transmission of device control command or reception of device transmission data received for the first time after the completion of the previous service context takes more than threshold d seconds st all : state ⁇ Number of occurrences of transition from i ⁇ to state ⁇ j ⁇ t DC : Threshold value for determining whether or not to subtract a context coefficient
  • C_ ⁇ st_ ⁇ i ⁇ context coefficient C_ ⁇ tr_ ⁇ i ⁇ of an event of transmission of a device control command or reception of device transmission data of the state ⁇ i ⁇ with respect to a state transition in the service context :
  • the device occupation start time calculation process executed under the control of the device occupation start time calculation unit 1142 of the device management unit 114 will be described in detail.
  • the device management unit 114 receives device occupation requests from a plurality of service programs. When the device management unit 114 receives a device occupation request from a certain service program, and the device is already occupied by another service program, the device management unit 114 accepts the priority set for each service program and the device occupation request. Allow or deny device occupancy requests based on time of day.
  • the device management unit 114 When the device management unit 114 rejects the device occupancy request, the device management unit 114 makes an occupancy reservation based on the priority set in each service program or the reception time of the device occupancy request, and notifies the device occupancy information storage unit 124 to that effect. Record. Furthermore, the device occupation start time calculation unit 1142 of the device management unit 114 may calculate and respond to the time when the device occupation can be performed collectively based on the service context information.
  • State maintenance time log information For each state constituting the service context, a log of the time required from the start of the state to the end is stored in the state transition information storage unit 125.
  • state transition information storage includes a state before the transition to the state and a log of the service context, and a state after the transition from the state and the log of the service context. Stored in the unit 125.
  • the device occupation information storage unit 124 stores each device included in a device list (hereinafter referred to as a “requested device list”) necessary for the service context designated by the service program that requested the device occupation. The following are extracted from the data:
  • request device occupation service context Service context in which the device is occupied
  • request device predecessor service context Other service context in which exclusive reservation of the device is made
  • the required execution time of the requested device occupation service context and the requested device predecessor service context extracted in the above step is calculated based on the data stored in the state transition information storage unit 125.
  • the service context execution start state and end state are acquired.
  • the state being executed is acquired as the execution start state, and the state that is executed last when transitioning from the service context to another service context as the execution end state A group is acquired.
  • the execution start state the state executed first when transitioning from the other service context to the service context is acquired, and as the execution end state, the service context A group of states that transition from to another service context is acquired.
  • a probability of transition from one state to another state (hereinafter referred to as a single state transition probability) is calculated.
  • the single state transition probability calculated in b) is changed to each combination of states before and after the transition.
  • the probability of transitioning the entire state from the execution start state to the execution end state (hereinafter referred to as the overall state transition probability) is calculated.
  • the state transition information storage unit 125 stores the time length required for each state transition with respect to the execution start state and execution end state having the highest overall state transition probability calculated in c) and the state group transitioning therebetween. Is calculated as an average of the time required for the same state transition, and the time length obtained by adding the calculated time length required for each state transition is calculated as “request device occupied service context” and “request device predecessor service context”. The time required for execution.
  • FIG. 15 is a sequence diagram showing an example of a service program registration process executed by the control unit 11 shown in FIG.
  • step S101 the operator inputs a service program to the input unit 2, and the control unit 11 acquires the service program from the input unit 2 under the control of the registration management unit 1111 of the service program management unit 111. Register the service program.
  • step S102 the control unit 11 stores the acquired service program in the service program storage unit 121 under the control of the registration management unit 1111.
  • step S103 the control unit 11 transmits a request for extracting the service context of the service program to the service context analysis unit 112 under the control of the registration management unit 1111.
  • step S104 the control unit 11 reads and acquires the service program stored in the service program storage unit 121 under the control of the service context analysis unit 112.
  • step S105 the control unit 11 reads the context coefficient of the event of reception of each device transmission data and transmission of each device control command stored in the context coefficient storage unit 122 under the control of the service context analysis unit 112. get.
  • step S106 the control unit 11 determines and extracts a service context related to the service program based on the context coefficient acquired in step S105 under the control of the service context analysis unit 112. In step S106, for example, processing similar to the service context determination processing described in detail above is executed.
  • step S107 the control unit 11 stores the determined service context information in the service context storage unit 123 under the control of the service context analysis unit 112.
  • step S108 the control unit 11 transmits a notification that the registration of the service program is completed to the registration management unit 1111 of the service program management unit 111 under the control of the service context analysis unit 112.
  • FIG. 16 is a sequence diagram showing an example of service start processing executed by the control unit 11 shown in FIG.
  • step S201 an operator inputs a start request for a registered service program via the input unit 2, and the control unit 11 acquires the start request under the control of the execution management unit 1112 of the service program management unit 111. .
  • step S202 the control unit 11 reads out and acquires the service program related to the start request stored in the service program storage unit 121 under the control of the execution management unit 1112.
  • step S203 the control unit 11 transmits a request for extracting the service context of the service program to the service context determination unit 113 under the control of the execution management unit 1112.
  • step S204 the control unit 11 reads out and acquires the service context information of the service program stored in the service context storage unit 123 under the control of the service context determination unit 113.
  • step S205 the control unit 11 sends a device occupancy request for the service program to occupy a device group necessary for executing the service context of the service program under the control of the service context determination unit 113. To the unit 114.
  • step S206 the control unit 11 determines whether or not the device can be occupied based on the device occupation request under the control of the device occupation control unit 1141 of the device management unit 114.
  • step S206 When it is determined in step S206 that the device can be occupied, a device occupation process is executed.
  • FIG. 17 is a sequence diagram showing an example of device occupation processing executed by the control unit 11 shown in FIG.
  • step S301 the control unit 11 executes device occupation processing based on the device occupation request under the control of the device occupation control unit 1141 of the device management unit 114.
  • step S ⁇ b> 302 the control unit 11 writes device occupancy status information based on the device occupancy process in the device occupancy information storage unit 124 under the control of the device occupancy control unit 1141, and is stored in the device occupancy information storage unit 124. Device occupancy information is updated.
  • step S303 the control unit 11 transmits a device occupation response to the execution management unit 1112 of the service program management unit 111 under the control of the device occupation control unit 1141.
  • step S304 the control unit 11 executes the service program under the control of the execution management unit 1112.
  • step S206 if it is determined in step S206 that device occupancy is not possible, device occupancy reservation processing is first executed, and then device occupancy processing is executed.
  • FIG. 18 is a sequence diagram illustrating an example of device occupation reservation processing and device occupation processing executed by the control unit 11 illustrated in FIG. 4.
  • a device occupation reservation process is executed from step S401 to step S408, and then a device occupation process is executed from step S409 to step S412.
  • step S401 the control unit 11 updates the reservation waiting list under the control of the device occupation control unit 1141 of the device management unit 114.
  • step S402 the control unit 11 reads and acquires the service context information stored in the service context storage unit 123 under the control of the device occupation start time calculation unit 1142 of the device management unit 114.
  • step S403 the control unit 11 reads and acquires the device occupation information stored in the device occupation information storage unit 124 under the control of the device occupation start time calculation unit 1142.
  • step S404 the control unit 11 reads and acquires the data transmission / reception history with the device stored in the state transition information storage unit 125 under the control of the device occupation start time calculation unit 1142.
  • step S402, step S403, and step S404 may be executed in an order different from that described above, or any of these processing may be executed in parallel.
  • step S405 the control unit 11 calculates the device occupation start time based on the information acquired in steps S402, S403, and S404 under the control of the device occupation start time calculation unit 1142.
  • step S405 for example, processing similar to the device occupation start time calculation processing described in detail above is executed.
  • step S ⁇ b> 406 the control unit 11 writes device occupation reservation status information in the device occupation information storage unit 124 under the control of the device occupation control unit 1141 of the device management unit 114 and stores the information in the device occupation information storage unit 124.
  • Device occupancy information is updated.
  • step S407 the control unit 11 transmits a device occupation reservation response to the execution management unit 1112 of the service program management unit 111 under the control of the device occupation control unit 1141.
  • step S408 the control unit 11 waits for a reservation for device occupation under the control of the execution management unit 1112.
  • control unit 11 executes device occupation processing under the control of the device occupation control unit 1141 of the device management unit 114 in step S409.
  • step S410 the control unit 11 writes device occupancy status information based on the device occupancy process in the device occupancy information storage unit 124 under the control of the device occupancy control unit 1141, and the device stored in the device occupancy information storage unit 124 Occupancy information is updated.
  • step S411 the control unit 11 transmits a device occupation response to the execution management unit 1112 of the service program management unit 111 under the control of the device occupation control unit 1141.
  • step S412 the control unit 11 executes the service program under the control of the execution management unit 1112.
  • FIG. 19 is a sequence diagram showing an example of a device communication process executed by the control unit 11 shown in FIG.
  • step S501 the control unit 11 executes the service program under the control of the execution management unit 1112 of the service program management unit 111.
  • step S502 the control unit 11 transmits a device control command to the service context determination unit 113 under the control of the execution management unit 1112.
  • step S503 the control unit 11 transmits a device control command to the device management unit 114 under the control of the service context determination unit 113.
  • step S504 the control unit 11 transmits a device control command to the destination device among the devices 3A to 3N under the control of the device management unit 114.
  • step S505 the control unit 11 stores information on a transmission event of the device control command in the state transition information storage unit 125 under the control of the device management unit 114.
  • step S506 among the devices 3A to 3N, the device occupied by the service program transmits data, and the control unit 11 acquires the device transmission data under the control of the device management unit 114.
  • step S507 the control unit 11 stores the information on the reception event of the device transmission data in the state transition information storage unit 125 under the control of the device management unit 114.
  • step S508 the control unit 11 transmits the device transmission data to the service context determination unit 113 under the control of the device management unit 114.
  • step S509 the control unit 11 transmits the device transmission data to the execution management unit 1112 of the service program management unit 111 under the control of the service context determination unit 113.
  • step S502 The device control command transmission process from step S502 to step S505 and the device transmission data reception process from step S506 to step S509 are repeated.
  • the transmission event information of the device control command stored in the state transition information storage unit 125 in step S505 and the reception event information of the device transmission data stored in the state transition information storage unit 125 in step S507 are used.
  • the context coefficient correction process can be executed.
  • step S510 the control unit 11 controls the history information of the transmission event of the device control command and the reception event of the device transmission data stored in the state transition information storage unit 125 under the control of the context coefficient correction unit 1143 of the device management unit 114. Is read and acquired.
  • step S511 under the control of the context coefficient correction unit 1143, the control unit 11 executes context coefficient correction processing based on the history information of the transmission event of the device control command and the reception event of the device transmission data acquired in step S510. To do. In step S511, for example, processing similar to the context coefficient correction processing described in detail above is executed.
  • step S512 the control unit 11 writes the corrected context coefficient value in the context coefficient storage unit 122 under the control of the context coefficient correction unit 1143, and the context coefficient stored in the context coefficient storage unit 122 is updated. .
  • step S510 to step S512 is not limited to the processing executed at the timing described above, and may be executed at an arbitrary timing.
  • FIG. 20 is a sequence diagram showing an example of service context switching processing executed by the control unit 11 shown in FIG.
  • step S601 among the devices 3A to 3N, the device occupied by the service program transmits data, and the control unit 11 acquires the device transmission data under the control of the device management unit 114.
  • step S602 the control unit 11 stores the information on the reception event of the device transmission data in the state transition information storage unit 125 under the control of the device management unit 114.
  • step S603 the control unit 11 transmits the device transmission data to the service context determination unit 113 under the control of the device management unit 114.
  • step S604 the control unit 11 transmits device transmission data to the execution management unit 1112 of the service program management unit 111 under the control of the service context determination unit 113.
  • step S605 the control unit 11 updates the service state of the service program if the device transmission data is device transmission data that satisfies a predetermined state transition condition under the control of the execution management unit 1112. To do.
  • step S 606 the control unit 11 transmits the service state update notification to the service context determination unit 113 under the control of the execution management unit 1112.
  • step S607 the control unit 11 reads and acquires the service context information related to the service program stored in the service context storage unit 123 under the control of the service context determination unit 113.
  • step S608 under the control of the service context determination unit 113, the control unit 11 performs processing for checking whether or not there is a change in the service context executed by the service program based on the service context information acquired in step S607. To do.
  • step S609 the control unit 11 sends a device occupation request or a device occupation release request to the device management unit 114 under the control of the service context determination unit 113. Send.
  • step S610 the control unit 11 executes device occupation release processing under the control of the device occupation control unit 1141 of the device management unit 114.
  • step S611 the control unit 11 writes the device occupancy status information based on the device occupancy release process in the device occupancy information storage unit 124 under the control of the device occupancy control unit 1141, and is stored in the device occupancy information storage unit 124. Device occupancy information is updated.
  • step S612 the control unit 11 determines whether or not the device can be occupied based on the device occupation request under the control of the device occupation control unit 1141.
  • step S612 If it is determined in step S612 that the device can be occupied, the processing from step S301 to step S304 is executed. On the other hand, if it is determined in step S612 that the device cannot be occupied, the processing from step S401 to step S412 is executed.
  • Service stop sequence The service stop process can be executed while the service program is started and the data communication with the device corresponding to the content of the service program is being executed.
  • FIG. 21 is a sequence diagram showing an example of service stop processing executed by the control unit 11 shown in FIG.
  • step S701 the operator inputs a stop request for the service program being executed via the input unit 2, and the control unit 11 acquires the stop request under the control of the execution management unit 1112 of the service program management unit 111. .
  • step S702 the control unit 11 executes the service program stop process under the control of the execution management unit 1112.
  • step S703 the control unit 11 transmits a device occupation release request for releasing the occupation of the device by the service program to the service context determination unit 113 under the control of the execution management unit 1112.
  • step S704 the control unit 11 transmits the device occupation release request to the device management unit 114 under the control of the service context determination unit 113.
  • step S705 the control unit 11 executes device occupation release processing based on the device occupation release request under the control of the device occupation control unit 1141 of the device management unit 114.
  • step S706 the control unit 11 writes the device occupancy status information based on the device occupancy release process in the device occupancy information storage unit 124 under the control of the device occupancy control unit 1141, and is stored in the device occupancy information storage unit 124. Device occupancy information is updated.
  • step S707 the control unit 11 transmits a notification to the service context determination unit 113 that the device has been released, under the control of the device management unit 114.
  • step S708 the control unit 11 transmits a notification that the device has been released to the execution management unit 1112 of the service program management unit 111 under the control of the service context determination unit 113.
  • a request for extracting a service context of a service program is transmitted to the service context analysis unit 112 under the control of the registration management unit 1111 of the service program management unit 111.
  • the context coefficient of the event of reception of each device transmission data and transmission of each device control command is acquired.
  • a service context related to the service program is determined and extracted based on the acquired context coefficient.
  • the device transmission data is transmitted to the execution management unit 1112 of the service program management unit 111 under the control of the service context determination unit 113. If the device transmission data is device transmission data that satisfies a predetermined state transition condition under the control of the execution management unit 1112, the service state of the service program is updated. After that, under the control of the execution management unit 1112, the service state update notification is transmitted to the service context determination unit 113. Under the control of the service context determination unit 113, service context information related to the service program is acquired, and based on the acquired service context information, whether or not there is a change in the service context executed by the service program is confirmed. When it is confirmed that the service context has been changed, a device occupation request or a device occupation release request is transmitted to the device management unit 114 under the control of the service context determination unit 113.
  • control is performed, during the execution of the service program, there are devices that are not allocated to the service program even though they are required to execute the service program. Therefore, even when an interruption is caused by another service program, such a device can be assigned to the service program without interrupting the service program being executed, and the device can be shared by a plurality of services.
  • control is performed so that required devices are assigned to service programs in units of service contexts, preventing the use of the devices by other services during the period when the service programs require devices. It is also possible to do.
  • the service context determined based on the context coefficient has a more realistic granularity. It becomes possible.
  • the device occupation control unit 1141 of the device management unit 114 it is determined whether the device can be occupied based on the device occupation request. If it is determined that the device cannot be occupied, the reservation waiting list is updated under the control of the device occupation control unit 1141 of the device management unit 114. Thereafter, under the control of the device occupation start time calculation unit 1142 of the device management unit 114, service context information, device occupation information, and data transmission / reception history with the device are acquired, the service context information, device occupation information, The device occupation start time is calculated based on the data transmission / reception history with the device.
  • the predicted time of device occupation start calculated based on past actual data is highly reliable, and it can be shared among multiple services by using the device occupation start time calculated in this way. Time management of the device to be performed becomes easy.
  • the configuration of the device management system the structure of data stored in the context coefficient storage unit, the service context storage unit, the device occupancy information storage unit, and the state transition information storage unit, respectively, are within the scope of the present invention. Various modifications can be made.
  • the present invention is not limited to the first embodiment as it is, and can be embodied by modifying the constituent elements without departing from the scope of the invention in the implementation stage.
  • various inventions can be formed by appropriately combining a plurality of constituent elements disclosed in the first embodiment. For example, some constituent elements may be deleted from all the constituent elements shown in the first embodiment. Furthermore, you may combine suitably the component covering different embodiment.
  • AC1, AC2, AC3, BC1, BC2, BC3, BC4 ... service context A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11 ... Status 1 ... Device management system 11 ... Control unit 111 ... Service program management unit 1111 ... Registration management unit 1112 ... Execution management unit 112 ... Service context analysis unit 113 ... Service context determination unit 114 ... Device management Unit 1141 ... device occupation control unit 1142 ... device occupation start time calculation unit 1143 ... context coefficient correction unit 12 ... storage unit 121 ... service program storage unit 122 ... context coefficient storage unit 123 ... service context storage unit 124 ... device occupation information storage 125 ... state transition information storage section 13 ... communication interface unit 2 ... input unit 3A, 3B, 3C, 3N ... Device NW ... communication network

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Economics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Human Resources & Organizations (AREA)
  • Strategic Management (AREA)
  • Game Theory and Decision Science (AREA)
  • Tourism & Hospitality (AREA)
  • Quality & Reliability (AREA)
  • General Business, Economics & Management (AREA)
  • Operations Research (AREA)
  • Marketing (AREA)
  • Educational Administration (AREA)
  • Development Economics (AREA)
  • Telephonic Communication Services (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Debugging And Monitoring (AREA)

Abstract

サービスプログラムの実行中に当該サービスプログラムへのデバイスの割り当て処理および割り当て解放処理を実行できるようにする。実行管理部(1112)の制御の下、受信されたデバイス送信データが所定の状態遷移の遷移条件を満たすデバイス送信データである場合、サービスプログラムのサービス状態が更新される。その後、実行管理部(1112)の制御の下、上記サービス状態の更新の通知がサービスコンテキスト判定部(113)に送信される。サービスコンテキスト判定部(113)の制御の下、サービスコンテキスト情報に基づいて、上記サービスプログラムで実行するサービスコンテキストの変更の有無が確認される。上記サービスコンテキストの変更が有ることが確認されると、サービスコンテキスト判定部(113)の制御の下、デバイス占有要求またはデバイス占有解放要求がデバイス管理部(114)に送信される。

Description

デバイス割り当て制御方法、システムおよびプログラム
 この発明は、サービスプログラムの実行に係るデバイスの当該サービスプログラムへの割り当てを制御する方法、システムおよびプログラムに関する。
 近年、状態と状態遷移とによる状態遷移モデルによりサービスプログラムを作成する技術が知られている。このようなサービスプログラムでは、当該サービスプログラムの実行に係るデバイスがサービスプログラムに関連付けて登録され、サービスプログラムの実行により、当該デバイス群を制御することでサービスが提供される(例えば、特許文献1を参照)。
日本国特開2017-97494号公報
 ところが、特許文献1に記載されるような技術では、常時起動するようなサービスで利用するデバイスは、当該サービスに係るサービスプログラムに常に割り当てられ占有されているため、複数サービスでの共用ができない。
 この発明は上記事情に着目してなされたもので、その目的とするところは、サービスプログラムの実行中に当該サービスプログラムへのデバイスの割り当て処理および割り当て解放処理を実行する方法、システムおよびプログラムを提供することにある。
 上記課題を解決するために、この発明の第1の態様は、ハードウェアプロセッサおよびメモリを備える装置が実行する、記憶部に記憶されているサービスプログラムにサービス提供フィールド上のデバイスを割り当てるデバイス割り当て制御方法にあって、前記装置による前記サービスプログラムの実行中に、当該サービスプログラムに割り当てられているデバイスと前記装置が通信するデータに基づいて、前記サービスプログラムの処理単位としての所定のサービスコンテキストが開始または終了することを判定するサービスコンテキスト判定過程と、前記装置による前記サービスプログラムの実行中に、前記所定のサービスコンテキストが開始すると判定された場合に、前記開始すると判定された所定のサービスコンテキストを実行するのに使用されるデバイスを前記サービスプログラムに割り当てる過程、および、前記所定のサービスコンテキストが終了すると判定された場合に、前記終了すると判定された所定のサービスコンテキストを実行するのに使用されるデバイスの前記サービスプログラムへの割り当てを解放する過程の少なくとも一方を備えるデバイス占有制御過程とを備えるようにしたものである。
 この発明の第2の態様は、前記デバイス割り当て制御方法が、前記サービスプログラムに含まれる予め定義された状態および状態遷移の各々が有するデータ通信イベントを抽出する過程と、前記抽出された状態および状態遷移の各々が有するデータ通信イベントと、当該データ通信イベント毎に設定された、当該データ通信イベント後の別のデータ通信イベントの発生のしやすさを表すスコア値に対応するコンテキスト係数とに基づいて、前記サービスプログラムの処理単位としてのサービスコンテキストを決定する過程とをさらに備えるようにしたものである。
 この発明の第3の態様は、前記デバイス割り当て制御方法が、前記サービスプログラムに割り当てられているデバイスと前記装置との間で発生したデータ通信イベントの履歴に基づいて、前記コンテキスト係数を補正する過程をさらに備えるようにしたものである。
 この発明の第4の態様は、前記デバイス占有制御過程が、前記所定のサービスコンテキストが開始すると判定され、かつ、当該所定のサービスコンテキストを実行するのに使用されるデバイスが第2のサービスプログラムに割り当てられている場合に、当該デバイスが前記サービスプログラムに割り当て可能となる時刻を通知する過程を備えるようにしたものである。
 この発明の第5の態様は、前記デバイス占有制御過程が、前記所定のサービスコンテキストが開始すると判定され、かつ、当該所定のサービスコンテキストを実行するのに使用されるデバイスが前記第2のサービスプログラムに割り当てられている場合に、前記第2のサービスプログラム実行時の当該第2のサービスプログラムに含まれる各状態の維持時間の履歴、および、前記第2のサービスプログラム実行時の当該第2のサービスプログラムにおける状態遷移の遷移前後の状態を示す状態遷移の履歴とに基づいて、前記デバイスが前記サービスプログラムに割り当て可能となる時刻を算出する過程を備えるようにしたものである。
 この発明の第1の態様によれば、サービスプログラムの実行中に、サービスプログラムの処理単位であるサービスコンテキストに基づいて、当該サービスプログラムへのデバイスの割り当てが制御される。このため、サービスプログラムの実行中に、当該サービスプログラムを実行するのに必要とされるデバイスであっても当該サービスプログラムに割り当てられていないデバイスが存在することとなる。したがって、他のサービスプログラムによる割り込みの際にも、実行中のサービスプログラムを中断することなくこのようなデバイスをそのサービスプログラムに割り当てることが可能となり、複数サービスによるデバイス共用が可能となる。一方、サービスコンテキストの単位でサービスプログラムにその都度必要とされるデバイスが割り当てられるように制御するので、当該サービスプログラムがデバイスを必要とする期間に他のサービスによりそのデバイスが利用されることを防止することも可能となる。
 この発明の第2の態様によれば、コンテキスト係数という基準にしたがって、上記サービスプログラムの処理単位であるサービスコンテキストが決定される。これにより、コンテキスト係数に基づいて決定されたサービスコンテキストの最適な粒度でサービスプログラムへのデバイスの割り当て制御が実行される。
 この発明の第3の態様によれば、上記サービスプログラムの実行に伴うデータ通信イベントの実データに基づいて上記コンテキスト係数が補正される。このように、例えば、上記サービスプログラムの実行に伴うその都度の通信状況等をコンテキスト係数に反映させることができるので、当該コンテキスト係数に基づいて決定されるサービスコンテキストをより現実に即した粒度とすることが可能となる。
 この発明の第4の態様によれば、サービスコンテキストを実行するのに使用したいデバイスが使用できない場合に、当該デバイスが上記サービスコンテキストに割り当て可能となる時刻が通知される。例えば、このような通知を利用することにより、複数のサービスの間で共用されるデバイスの時間管理が容易となる。
 この発明の第5の態様によれば、第2のサービスプログラム実行時の過去の履歴に基づいて、当該第2のサービスプログラムに割り当てられているデバイスが他のサービスプログラムに割り当て可能となる時刻が算出される。このように過去の実データに基づいて算出される予測時刻は信頼性が高いものとなる。
 すなわち、この発明の各態様によれば、サービスプログラムの実行中に当該サービスプログラムへのデバイスの割り当て処理および割り当て解放処理を実行する方法、システムおよびプログラムを提供することができる。
図1は、この発明の第1の実施形態の俯瞰図である。 図2は、この発明の第1の実施形態に係るサービスプログラムのサービスコンテキスト構成の一例を示す図である。 図3は、図2に示したサービスプログラムに係るデバイス占有状況と経過時間の一例を示す図である。 図4は、この発明の第1の実施形態に係るデバイス管理システムの機能構成を示すブロック図である。 図5は、コンテキスト係数情報の一例を示す図である。 図6は、サービスコンテキスト情報の一例を示す図である。 図7は、デバイス占有情報の一例を示す図である。 図8Aは、状態維持時間ログ情報の一例を示す図である。 図8Bは、状態遷移ログ情報の一例を示す図である。 図9は、図4に示した制御ユニットによって実行されるサービスコンテキスト決定処理の一例を示すフロー図である。 図10は、遷移元と遷移先の状態を同一のサービスコンテキストに含める状態遷移を決定する処理の概略を示す図である。 図11は、コンテキスト係数の補正処理に係る、サービスプログラムのサービスコンテキスト構成の第1のイメージ図である。 図12は、図11に示したサービスプログラムに係るデバイスの占有予約と経過時間の一例を示す図である。 図13は、コンテキスト係数の補正処理に係る、サービスプログラムのサービスコンテキスト構成の第2のイメージ図である。 図14は、図13に示したサービスプログラムに係るデバイスの占有予約と経過時間の一例を示す図である。 図15は、図4に示した制御ユニットによって実行されるサービスプログラム登録処理の一例を示すシーケンス図である。 図16は、図4に示した制御ユニットによって実行されるサービス開始処理の一例を示すシーケンス図である。 図17は、図4に示した制御ユニットによって実行されるデバイス占有処理の一例を示すシーケンス図である。 図18は、図4に示した制御ユニットによって実行されるデバイス占有予約処理およびデバイス占有処理の一例を示すシーケンス図である。 図19は、図4に示した制御ユニットによって実行されるデバイス通信処理の一例を示すシーケンス図である。 図20は、図4に示した制御ユニットによって実行されるサービスコンテキスト切替処理の一例を示すシーケンス図である。 図21は、図4に示した制御ユニットによって実行されるサービス停止処理の一例を示すシーケンス図である。
 以下、図面を参照してこの発明に係わる実施形態を説明する。 
 なお、本実施形態では、サービスプログラムにデバイスが割り当てられている状況を、サービスプログラムによりデバイスが占有されているという表現によっても表している点に留意して頂きたい。
 [第1の実施形態]
 図1は、この発明の第1の実施形態の俯瞰図である。 
 この発明の第1の実施形態に係るデバイス管理システム1は、サービス提供フィールド上のデバイスを制御することにより提供可能なデバイス連携サービスを複数提供することができる。デバイス管理システム1では、あるデバイス連携サービスのサービスプログラムにより制御されているデバイスが、当該サービスプログラムの実行中に他のデバイス連携サービスのサービスプログラムにより割り込み制御されることが可能となる。
 図1では、デバイス連携サービスXのサービスプログラムにより制御されているデバイス3Bが、デバイス連携サービスXの提供中に、デバイス連携サービスYのサービスプログラムにより割り込み制御される様子が図示されている。
 ここで、このような制御を可能にするために、サービスプログラムの処理単位であるサービスコンテキストを定義する。
 図2は、この発明の第1の実施形態に係るサービスプログラムのサービスコンテキスト構成の一例を示す図である。
 先ず、この発明の第1の実施形態で扱うサービスプログラムは、「状態」と「状態遷移」から構成される。
 状態は、サービスプログラムによって定義されるサービスのある一状態であり、デバイスから送信されたデータ(以降、デバイス送信データと称する。)の受信、デバイス送信データの処理、デバイスに対する制御命令(以降、デバイス制御命令と称する。)の送信のうち1つ以上から成る。
 状態遷移は、ある状態から別の状態へ遷移するための条件であり、条件式から成る。また、状態遷移条件の一部は、例えば「温度センサが送信するデータが28℃以上であったら」次の状態へ遷移する等の、デバイス送信データを受信した結果から成る。
 図2の例では、サービスプログラムAにおいて、上述したようなサービスプログラムの処理単位として、状態A1および状態A2からなるサービスコンテキストAC1と、状態A3、状態A4、状態A5、状態A6および状態A7からなるサービスコンテキストAC2と、状態A8、状態A9および状態A10からなるサービスコンテキストAC3とが定義されている。
 また、サービスプログラムBにおいては、上述したようなサービスプログラムの処理単位として、状態B1からなるサービスコンテキストBC1と、状態B2、状態B3、状態B4、状態B6、状態B7、状態B9および状態B10からなるサービスコンテキストBC2と、状態B5および状態B8からなるサービスコンテキストBC3と、状態B11からなるサービスコンテキストBC4とが定義されている。
 例えば、サービスコンテキストAC1が実行される際には状態A1および状態A2の処理に利用するデバイスだけをサービスプログラムAにより占有するようにする。サービスコンテキストAC1の処理が完了する際には、サービスコンテキストAC1の実行中にサービスプログラムAにより占有されていたデバイスを解放するようにする。
 このようにサービスプログラムの実行中にサービスコンテキスト単位でデバイス群の占有や占有解放が行われるようにするので、サービスプログラムの実行中にも、占有されていないデバイスを他のサービスプログラムにより割り込み制御することが可能となる。
 図3は、図2に示したサービスプログラムA,Bに係るあるデバイスの占有状況と経過時間の一例を示す図である。
 最初にサービスプログラムAのサービスコンテキストAC1は当該デバイスを用いるため、当該デバイスはサービスコンテキストAC1から占有された。サービスコンテキストAC1が完了すると、当該デバイスの占有は解放される。その後、サービスプログラムBのサービスコンテキストBC2から当該デバイスは占有された。その後、サービスコンテキストBC2の完了前に、サービスコンテキストAC3からの占有の予約があったため、サービスコンテキストBC2完了後は、当該デバイスはサービスコンテキストAC3にリソース予約される。その後、サービスコンテキストAC3の完了前にサービスコンテキストBC3からの占有の予約があったため、デバイスの占有状態は変更せず、サービスコンテキストAC3完了後はサービスコンテキストBC3がデバイスを専用できるよう当該デバイスは予約される。
 (構成)
 図4は、この発明の第1の実施形態に係るデバイス管理システム1の機能構成を示すブロック図である。本実施形態では、デバイス割り当て制御システムの非限定的な例としてデバイス管理システム1について説明する。なお、図4に示すデバイス管理システム1は一例に過ぎず、デバイス管理システム1が備える各構成要素は任意の組み合わせで物理的に別個の装置として存在していてもよい。
 デバイス管理システム1は、ハードウェアとして、制御ユニット11と、記憶ユニット12と、通信インタフェースユニット13とを備えている。
 通信インタフェースユニット13は、例えば1つ以上の有線または無線の通信インタフェースユニットを含んでいる。通信インタフェースユニット13は、例えばキーボードやマウス等を含む入力部2により入力されたサービスプログラムおよび当該サービスプログラムの操作信号を、制御ユニット11に入力する。なお、サービスプログラムは、例えば、「第1のデバイスが第1のデータを送信したら、第2のデバイスに第1の処理をさせる」のような、デバイスのインタフェースを介してデバイス送信データを受信したりデバイス制御命令を送信したりする、サービスの処理ロジックが記載されたプログラムである。
 また、通信インタフェースユニット13は、例えばロボットやセンサ等の端末であるデバイス3A,…,3Nから送信されたデバイス送信データを制御ユニット11に出力し、制御ユニット11から出力されたデバイス制御命令等のデータをデバイス3A,…,3Nに出力する。
 記憶ユニット12は、記憶媒体として例えばHDD(Hard Disc Drive)またはSSD(Solid State Drive)等の随時書き込みおよび読み出しが可能な不揮発メモリを使用したもので、本実施形態を実現するために、サービスプログラム記憶部121と、コンテキスト係数記憶部122と、サービスコンテキスト記憶部123と、デバイス占有情報記憶部124と、状態遷移情報記憶部125とを備えている。
 サービスプログラム記憶部121は、登録されるサービスプログラムを記憶させるために使用される。
 コンテキスト係数記憶部122は、コンテキスト係数情報を記憶している。コンテキスト係数情報は、例えば、各デバイス送信データの受信および各デバイス制御命令の送信のイベント毎に設定された、当該イベント後の別のデータ通信イベントの発生のしやすさを表すスコア値に対応するコンテキスト係数を含んでいる。
 サービスコンテキスト記憶部123は、サービスコンテキスト情報を記憶させるために使用される。サービスコンテキスト情報は、例えば、サービスコンテキスト解析部112の制御下で決定された、サービスプログラム毎のサービスコンテキスト情報を含んでいる。
 デバイス占有情報記憶部124は、デバイス占有情報を記憶させるために使用される。デバイス占有情報は、例えば、実行中の各サービスプログラムが占有しているデバイス群や占有予約しているデバイス群の情報を含んでいる。
 状態遷移情報記憶部125は、状態遷移情報を記憶させるために使用される。状態遷移情報は、例えば、状態遷移に関する、状態が開始されてから終了するまでに要した時間のログを含む状態維持時間ログ情報と、ある状態への遷移前の状態およびサービスコンテキストならびに当該状態からの遷移後の状態およびサービスコンテキストのログを含む状態遷移ログ情報とを含んでいる。
 制御ユニット11は、CPU(Central Processing Unit)等のハードウェアプロセッサと、プログラムメモリとを備え、本実施形態における処理機能を実行するために、サービスプログラム管理部111と、サービスコンテキスト解析部112と、サービスコンテキスト判定部113と、デバイス管理部114とを備えている。これらの各部における処理機能はいずれも、プログラムメモリに格納されたプログラムを上記ハードウェアプロセッサに実行させることによって実現される。なお、これらの処理機能は、プログラムメモリに格納されたプログラムを用いて実現されるのではなく、ネットワークを通して提供されるプログラムを用いて実現されてもよい。
 サービスプログラム管理部111は、登録管理部1111と実行管理部1112とを備えている。 
 登録管理部1111は、サービスプログラムを登録する処理を実行する。具体的には、先ず、登録管理部1111は、通信インタフェースユニット13を介して入力部2からサービスプログラムを取得し、当該取得されたサービスプログラムをサービスプログラム記憶部121に記憶させる処理を実行する。その後、登録管理部1111は、サービスコンテキスト解析部112に、上記サービスプログラムを解析するように要求する処理を実行する。
 実行管理部1112は、サービスプログラム記憶部121に記憶されたサービスプログラムを読み出して実行し、デバイス制御命令をサービスコンテキスト判定部113に送信し、デバイス送信データをサービスコンテキスト判定部113から受信する処理を実行する。また、実行管理部1112は、サービスプログラムの実行に伴い、当該サービスプログラムに係る状態の維持時間長の履歴を状態維持時間ログ情報として、当該サービスプログラムに係る状態遷移の履歴を状態遷移ログ情報として、状態遷移情報記憶部125に記憶させる処理を実行する。
 サービスコンテキスト解析部112は、登録管理部1111からの上記要求に応答して、サービスプログラム記憶部121に記憶されたサービスプログラムを読み出し、コンテキスト係数記憶部122に記憶されるコンテキスト係数情報を参照して、上記読み出されたサービスプログラムを解析してサービスコンテキストを決定する処理を実行する。次に、サービスコンテキスト解析部112は、上記決定されたサービスコンテキストの情報を、サービスコンテキスト記憶部123に記憶させる処理を実行する。
 サービスコンテキスト判定部113は、サービスプログラム管理部111の実行管理部1112からデバイス制御命令を受信し、当該受信されたデバイス制御命令をデバイス管理部114に送信する処理を実行する。また、サービスコンテキスト判定部113は、デバイス管理部114からデバイス送信データを受信し、当該受信されたデバイス送信データを、サービスプログラム管理部111の実行管理部1112に送信する処理を実行する。
 ここで、サービスコンテキスト判定部113は、サービスプログラム管理部111の実行管理部1112から受信したデバイス制御命令や、デバイス管理部114から受信したデバイス送信データと、サービスコンテキスト記憶部123に記憶されるサービスコンテキスト情報とに基づいて、実行中のサービスプログラムがどの状態にあるかを判定することにより、サービスコンテキストの開始および終了を判定する処理を実行することができる。
 例えば、サービスコンテキスト判定部113は、受信したデバイス制御命令やデバイス送信データがあるサービスコンテキストの最後の状態が有する所定のデバイス制御命令またはデバイス送信データに該当すると判定し、そのサービスコンテキストが終了することを判定する処理を実行するようにしてもよい。また、サービスコンテキスト判定部113は、受信したデバイス送信データがある状態遷移の遷移条件を満たすことを判定し、その状態遷移の遷移前の状態が含まれるサービスコンテキストが終了することや、その状態遷移の遷移後の状態が含まれるサービスコンテキストが開始することを判定する処理を実行するようにしてもよい。
 サービスコンテキスト判定部113は、サービスコンテキストの終了を判定した場合には、サービスプログラムが当該サービスコンテキストを実行するために占有していたデバイス群の占有を解放するための要求(以降、デバイス占有解放要求と称する。)をデバイス管理部114に送信する処理を実行する。また、サービスコンテキスト判定部113は、上記実行中のサービスプログラムがどの状態にあるかの判定に基づいて、当該サービスコンテキスト内で以降利用されることがないデバイス群がある場合には当該占有していたデバイス群の占有を解放するためのデバイス占有解放要求をデバイス管理部114に送信する処理を実行してもよい。
 さらに、サービスコンテキスト判定部113は、サービスコンテキストの開始を判定した場合には、当該サービスコンテキストを実行するために必要なデバイス群をサービスプログラムが占有するための要求(以降、デバイス占有要求と称する。)をデバイス管理部114に送信する処理を実行する。
 デバイス管理部114は、サービスコンテキスト判定部113からデバイス制御命令を受信し、当該受信されたデバイス制御命令を、通信インタフェースユニット13を介して、デバイス3A~3Nのうちの宛先の実デバイスに送信する処理を実行する。また、デバイス管理部114は、デバイス3A~3Nから送信されたデバイス送信データを通信インタフェースユニット13を介して取得し、当該取得されたデータを、サービスコンテキスト判定部113に送信する処理を実行する。
 ここで、デバイス管理部114は、デバイス占有制御部1141と、デバイス占有開始時刻算出部1142と、コンテキスト係数補正部1143とを備えている。 
 デバイス占有制御部1141は、サービスコンテキスト判定部113から送信されるデバイス占有要求およびデバイス占有解放要求を受信し、当該受信されたデバイス占有要求およびデバイス占有解放要求において指定されたデバイス群の占有や占有解放を行う処理を実行する。その後、デバイス占有制御部1141は、上記デバイス群の占有または占有解放の情報を、デバイス占有情報記憶部124に記憶させる処理を実行する。
 なお、デバイス占有制御部1141は、デバイス占有要求において指定されたデバイス群が他サービスプログラムで占有されている等により占有できない場合は、当該デバイス群の占有予約を実行し、当該デバイス群の占有予約の情報を、デバイス占有情報記憶部124に記憶させる処理を実行する。デバイス占有制御部1141は、上記占有予約したデバイス群が占有解放された際に、占有予約しておいたデバイス群の占有を行う処理を実行する。
 デバイス占有開始時刻算出部1142は、上述したようにデバイス群の占有予約をした際に、デバイス占有情報記憶部124に記憶されるデバイス占有情報を読み出す処理を実行する。その後、デバイス占有開始時刻算出部1142は、デバイス占有開始時刻として、上記読み出されたデバイス占有情報に基づいて、上記デバイス群が他のサービスプログラムから占有解放されて利用可能になる時刻を算出する処理を実行する。
 コンテキスト係数補正部1143は、状態遷移情報記憶部125に記憶される状態遷移情報を読み出し、当該読み出された状態遷移情報に基づいて、コンテキスト係数記憶部122に記憶されるコンテキスト係数を読み出して補正して、補正後のコンテキスト係数をコンテキスト係数記憶部122に記憶させる処理を実行する。
 図5、図6、図7、図8Aおよび図8Bにおいて、本実施形態で使用される情報のデータ構造を例示する。 
 図5では、コンテキスト係数記憶部122に記憶されるコンテキスト係数情報の一例が示されている。当該コンテキスト係数情報は、例えばオペレータがサービスプログラムの登録の際に予め登録しておくものとする。
 図6では、サービスコンテキスト記憶部123に記憶されるサービスコンテキスト情報の一例が示されている。
 図7では、デバイス占有情報記憶部124に記憶されるデバイス占有情報の一例が示されている。
 図8Aでは、状態遷移情報記憶部125に記憶される状態維持時間ログ情報の一例が示されている。
 図8Bでは、状態遷移情報記憶部125に記憶される状態遷移ログ情報の一例が示されている。
 (動作)
 次に、以上のように構成されたデバイス管理システム1の動作を説明する。
 先ず、図4に示したデバイス管理システム1の制御ユニット11によって実行される、サービスコンテキスト決定処理、コンテキスト係数補正処理、およびデバイス占有開始時刻算出処理について説明する。
 <サービスコンテキスト決定処理>
 サービスコンテキスト記憶部123に記憶されるサービスコンテキスト識別子、状態リスト、利用デバイスリスト、ならびに、各状態および状態遷移のコンテキスト係数のセットは、サービスプログラムの登録の際に明示的に入力してもよいが、サービスコンテキスト解析部112が以下のように自動決定するようにしてもよい。
 図9は、図4に示した制御ユニット11によって実行されるサービスコンテキスト決定処理の一例を示すフロー図である。当該サービスコンテキスト決定処理は、サービスコンテキスト解析部112の制御下で実行される。
 先ず、ステップS11において、制御ユニット11は、サービスコンテキスト解析部112の制御の下、サービスプログラム記憶部121に記憶されるサービスプログラムを読み出し、当該読み出されたサービスプログラムに含まれる予め定義された状態および状態遷移を抽出してリストアップする。
 ここで、状態および状態遷移は各々、「デバイス送信/受信別」、「デバイス識別子」および「デバイスインタフェース識別子」によって一意に識別可能な「デバイス制御命令の送信」または「デバイス送信データの受信」の1つないしは複数の組み合わせから成る。
 ステップS12において、制御ユニット11は、サービスコンテキスト解析部112の制御の下、ステップS11において抽出された状態毎に、当該状態が有するデバイス制御命令の送信およびデバイス送信データの受信のイベントを抽出する。次に、制御ユニット11は、サービスコンテキスト解析部112の制御の下、コンテキスト係数記憶部122に記憶される、上記抽出されたデバイス制御命令の送信およびデバイス送信データの受信のイベントのコンテキスト係数を読み出す。その後、制御ユニット11は、サービスコンテキスト解析部112の制御の下、上記抽出された状態毎に、当該状態のコンテキスト係数として、当該状態が有するデバイス制御命令の送信およびデバイス送信データの受信のイベントのコンテキスト係数の総和を、デバイス制御命令の送信およびデバイス送信データの受信のイベントの総数で割った値を算出する。
 ステップS13において、制御ユニット11は、サービスコンテキスト解析部112の制御の下、ステップS11において抽出された状態遷移毎に、コンテキスト係数記憶部122に記憶される、当該状態遷移が有するデバイス制御命令の送信またはデバイス送信データの受信のイベントのコンテキスト係数を読み出す。その後、制御ユニット11は、サービスコンテキスト解析部112の制御の下、上記抽出された状態遷移毎に、当該状態遷移のコンテキスト係数として、当該状態遷移が有するデバイス制御命令の送信およびデバイス送信データの受信のイベントのコンテキスト係数の総和を、デバイス制御命令の送信およびデバイス送信データの受信のイベントの総数で割った値を算出する。
 なお、ステップS12とステップS13の処理は、上述したのとは逆の順序で実行してもよいし、あるいは、並列して実行してもよい。
 ステップS14において、制御ユニット11は、サービスコンテキスト解析部112の制御の下、ステップS12において算出された各状態のコンテキスト係数と、ステップS13において導出された各状態遷移のコンテキスト係数とを利用して、上記サービスプログラムに係るサービスコンテキストを決定および抽出する。
 ステップS14におけるサービスコンテキストの決定処理の一例を以下に示す。
 先ず、ステップS14-1において、遷移元と遷移先の状態を同一のサービスコンテキストに含める状態遷移を決定する。具体的には、以下の状態遷移を、遷移元と遷移先の状態を同一のサービスコンテキストに含める状態遷移として決定する。
 1)コンテキスト係数が閾値t以上である状態遷移
 2)コンテキスト係数が閾値t未満であるが、遷移元の状態のコンテキスト係数と遷移先の状態のコンテキスト係数がともに閾値t以上である状態遷移
 また、遷移元と遷移先の状態を同一のサービスコンテキストに含める状態遷移として、以下の3),4)の状態遷移を含めてもよい。
 3)N(Nは1以上の自然数)個先の状態遷移に1)または2)に該当する状態遷移がある状態遷移
 4)N(Nは1以上の自然数)個先の状態遷移までの各状態遷移について、各遷移元の状態のコンテキスト係数を重み付けして加算したものを遷移元の状態のコンテキスト係数とし、各状態遷移のコンテキスト係数を重み付けして加算したものを状態遷移のコンテキスト係数とし、各遷移先の状態のコンテキスト係数を重み付けして加算したものを遷移先の状態のコンテキスト係数としたものが、1)または2)に該当する状態遷移
 次に、ステップS14-2において、サービスコンテキストを抽出する。具体的には、ステップS14-1において「遷移元と遷移先の状態を同一のサービスコンテキストに含める状態遷移」と決定されなかった状態遷移の遷移元の状態と遷移後の状態が異なるサービスコンテキストとなるように、サービスコンテキストを抽出する。
 図10は、ステップS14-1における、遷移元と遷移先の状態を同一のサービスコンテキストに含める状態遷移を決定する処理の概略を示す図である。
 パターン1~4は、上記の1)に該当する状態遷移である。パターン5は、上記の2)に該当する状態遷移である。パターン6~8は、上記の1),2)には該当しない状態遷移である。
 <コンテキスト係数補正処理>
 デバイス管理部114のコンテキスト係数補正部1143の制御下で実行されるコンテキスト係数補正処理について詳細に説明する。 
 当該コンテキスト係数補正処理では、サービスプログラム実行時のログ(状態遷移の時刻、デバイス予約、制御命令の受信時刻等)を用いて、以下の場合にコンテキスト係数の加算または減算が行われる。このように補正されたコンテキスト係数に基づいて、サービスコンテキストの再抽出を行うことが可能である。
 (1)加算処理
 図11は、コンテキスト係数の補正処理に係る、サービスプログラムのサービスコンテキスト構成の第1のイメージ図である。
 サービスプログラムAでは、状態A2終了後、状態A3が直ちに開始することが多い。この場合、図11に図示するように、状態A2と状態A3が1つのサービスコンテキストに含まれるようにするために、状態A2のコンテキスト係数、状態A3のコンテキスト係数、または、状態A2から状態A3への状態遷移のコンテキスト係数を大きくするようにする。これにより、分割した2つのサービスコンテキストが1つにまとめられやすくなる。
 このようなコンテキスト係数の補正処理では、サービスプログラム内のあるサービスコンテキストaが終了してから、次のサービスコンテキストbの開始要求命令を受けるまでの時間長の評価を行う。時間長が短い場合に、サービスコンテキストaの最後の状態とサービスコンテキストbの最初の状態、両者の状態間の状態遷移のコンテキスト係数が大きくなるようにする。
 図12は、図11に示したサービスプログラムAに係るデバイスの占有予約と経過時間の一例を示す図である。
 上述したような状態A2と状態A3とに係るコンテキスト係数の補正処理の例では、図12に示すように、サービスコンテキストAC1の完了時刻と、サービスコンテキストAC1完了後に次のサービスコンテキストAC2に遷移する遷移条件を満たすデバイス送信データを受信した時刻の履歴とを用いて、上記コンテキスト係数の補正処理を実行する。
 上記コンテキスト係数の補正処理では、指定された回数dc_{all}分、サービスコンテキストAC_{i}からサービスコンテキストAC_{j}への遷移が発生した時点で、
Figure JPOXMLDOC01-appb-M000001
なるコンテキスト係数加算時の評価値を用いてコンテキスト係数の加算処理を行う。ここで、a:定数dc:dc_{all}のうち、前サービスコンテキスト完了後から閾値b秒以内で初めて受信したデバイス制御命令の送信またはデバイス送信データの受信の回数dcall:サービスコンテキストAC_{i}からサービスコンテキストAC_{j}への遷移が発生した回数tMC:コンテキスト係数を加算するか加算しないかを定める閾値
 コンテキスト係数の加算は、以下の式にしたがって行われる。
Figure JPOXMLDOC01-appb-M000002
ここで、C_{st_AC_{i}}:サービスコンテキストAC_{i}の最後の状態が有するデバイス制御命令の送信またはデバイス送信データの受信のイベントのコンテキスト係数C_{tr_AC_{i}}:サービスコンテキストAC_{i}からサービスコンテキストAC_{j}への状態遷移が有するデバイス制御命令の送信またはデバイス送信データの受信のイベントのコンテキスト係数C_{st_AC_{j}}:サービスコンテキストAC_{j}の最初の状態が有するデバイス制御命令の送信またはデバイス送信データの受信のコンテキスト係数CMAX:コンテキスト係数の最大値
 (2)減算処理
 図13は、コンテキスト係数の補正処理に係る、サービスプログラムのサービスコンテキスト構成の第2のイメージ図である。
 サービスプログラムAでは、状態A2から状態A3に遷移するまでに常時時間を要する。この場合、図13に図示するように、状態A2と状態A3を別のサービスコンテキストに含まれるようにするために、状態A2のコンテキスト係数、状態A3のコンテキスト係数、または、状態A2から状態A3への状態遷移のコンテキスト係数が小さくするようにする。これにより、1つのサービスコンテキストが分割されやすくなり、また、他サービスによるデバイス共用を行いやすくすることができる。
 このようなコンテキスト係数の補正処理では、あるサービスコンテキスト開始後、当該サービスコンテキスト内の各状態遷移に要する時間長の評価を行う。時間長が長い場合に、当該状態遷移と遷移前状態、遷移先状態のコンテキスト係数が小さくなるようにする。
 図14は、図13に示したサービスプログラムAに係るデバイスの占有予約と経過時間の一例を示す図である。
 上述したような状態A2と状態A3とに係るコンテキスト係数の補正処理の例では、図14に示すように、あるサービスコンテキスト内において状態遷移に要した時間の履歴である、状態A2から状態A3に遷移するまでに要した時間を用いて、上記コンテキスト係数の補正処理を実行する。なお、図14において図示しているサービス状態の更新通知は、サービスプログラム管理部111の実行管理部1112において発生される、デバイス送信データがある遷移条件を満たし状態遷移が発生しているときにその「状態が変更となった」旨の通知である。
 上記コンテキスト係数の補正処理では、指定された回数st_{all}分、あるサービスコンテキスト内での遷移が発生した時点で、
Figure JPOXMLDOC01-appb-M000003
なるコンテキスト係数減算時の評価値を用いてコンテキスト係数の減算処理を行う。ここで、c:定数st:st_{all}のうち、前サービスコンテキスト完了後から閾値d秒以上要して初めて受信したデバイス制御命令の送信またはデバイス送信データの受信の回数stall:状態{i}から状態{j}への遷移が発生した回数tDC:コンテキスト係数を減算するか減算しないかを定める閾値
 コンテキスト係数の減算は、以下の式にしたがって行われる。
Figure JPOXMLDOC01-appb-M000004
ここで、C_{st_{i}}:サービスコンテキスト内での状態遷移に対し、状態{i}が有するデバイス制御命令の送信またはデバイス送信データの受信のイベントのコンテキスト係数C_{tr_{i}}:状態{i}から状態{j}への状態遷移が有する各デバイス制御命令の送信またはデバイス送信データの受信のイベントのコンテキスト係数C_{st_{j}}:状態{j}が有するデバイス制御命令の送信またはデバイス送信データの受信のイベントのコンテキスト係数CMIN:コンテキスト係数の最小値
 <デバイス占有開始時刻算出処理>
 デバイス管理部114のデバイス占有開始時刻算出部1142の制御下で実行されるデバイス占有開始時刻算出処理について詳細に説明する。 
 デバイス管理部114は、複数のサービスプログラムからのデバイス占有要求を受けつける。デバイス管理部114は、あるサービスプログラムからのデバイス占有要求を受け付けた際に、当該デバイスが他のサービスプログラムによって既に占有中の場合は、各サービスプログラムに設定された優先度やデバイス占有要求の受付時刻に基づいてデバイス占有要求を許可または拒否する。
 デバイス管理部114は、デバイス占有要求を拒否する場合には、各サービスプログラムに設定された優先度またはデバイス占有要求の受付時刻に基づいて占有予約を行い、デバイス占有情報記憶部124にその旨を記録する。さらに、デバイス管理部114のデバイス占有開始時刻算出部1142が、サービスコンテキストの情報に基づいて、デバイス占有を一括で可能となる時刻を算出し、応答してもよい。
 当該デバイス占有開始時刻算出処理では、次のログ情報が状態遷移情報記憶部125に記憶されていることを前提とする。
 1)状態維持時間ログ情報
  サービスコンテキストを構成する状態毎に、当該状態が開始されてから終了するまでに要した時間のログを、状態遷移情報記憶部125に記憶させておく。
 2)状態遷移ログ情報
  サービスコンテキストを構成する状態毎に、当該状態への遷移前の状態およびサービスコンテキストのログと、当該状態からの遷移後の状態およびサービスコンテキストのログとを、状態遷移情報記憶部125に記憶させておく。
 1)先ず、最初のステップにおいて、デバイス占有要求で要求されるデバイスの占有状況および占有予約状況が抽出される。具体的には、デバイス占有要求したサービスプログラムの指定されたサービスコンテキストで必要なデバイスリスト(以降、要求デバイスリストと称する。)に含まれるデバイス毎に、デバイス占有情報記憶部124に記憶されているデータから以下が抽出される。
  当該デバイスを占有中のサービスコンテキスト(以降、要求デバイス占有サービスコンテキストと称する。)
  当該デバイスの占有予約を行っている他サービスコンテキスト(以降、要求デバイス先約サービスコンテキストと称する。)
 2)次のステップでは、上記ステップにおいて抽出された要求デバイス占有サービスコンテキストと要求デバイス先約サービスコンテキストの実行所要時間が、状態遷移情報記憶部125に記憶されているデータに基づいて算出される。
 a)サービスコンテキストの実行開始状態および終了状態が取得される。
 算出対象が「要求デバイス占有サービスコンテキスト」の場合は、実行開始状態として、実行中の状態が取得され、実行終了状態として、当該サービスコンテキストから他サービスコンテキストへ遷移する際に最後に実行される状態群が取得される。
 算出対象が「要求デバイス先約サービスコンテキスト」の場合は、実行開始状態として、他サービスコンテキストから当該サービスコンテキストへ遷移した際に最初に実行される状態が取得され、実行終了状態として、当該サービスコンテキストから他サービスコンテキストへ遷移する状態群が取得される。
 b)状態遷移情報記憶部125に記憶される状態遷移ログ情報から、ある状態から他の状態に遷移する確率(以降、単独状態遷移確率と称する。)が算出される。遷移元の状態aから遷移可能な状態がb_{1},…,b_{n}のn個存在する場合、状態aから状態b_{i}への単独状態遷移確率が以下式より算出される。
 p_{a→b_{i}}=(状態aから状態b_{i}へ遷移した回数)/Σj=1..n(状態aから状態b_{j}へ遷移した回数)
 c)a)で取得された実行開始状態と実行終了状態の各組み合わせについて、その間に遷移する状態群の組み合わせ毎に、b)で算出された単独状態遷移確率を遷移前後の状態の各組み合わせに対して用いて、実行開始状態から実行終了状態まで全体の状態を遷移する確率(以降、全体状態遷移確率)が算出される。
 d)c)で算出された各全体状態遷移確率が最も高い実行開始状態、実行終了状態ならびにその間に遷移する状態群に対し、各状態遷移に要する時間長さを状態遷移情報記憶部125に記憶される同状態遷移に要した時間の平均として算出し、当該算出された各状態遷移に要する時間長さを加算した時間長を、「要求デバイス占有サービスコンテキスト」「要求デバイス先約サービスコンテキスト」の実行所要時間とする。
 3)2)の処理により算出された各「要求デバイス占有サービスコンテキスト」「要求デバイス先約サービスコンテキスト」の全てが終了する時刻が、当該サービスコンテキストの占有開始時刻として算出される。
 <動作シーケンス>
 (1)サービスプログラム登録シーケンス
 図15は、図4に示した制御ユニット11によって実行されるサービスプログラム登録処理の一例を示すシーケンス図である。
 ステップS101において、オペレータが入力部2にサービスプログラムを入力し、制御ユニット11は、サービスプログラム管理部111の登録管理部1111の制御の下、入力部2からサービスプログラムを取得し、当該取得されたサービスプログラムを登録する。
 ステップS102において、制御ユニット11は、登録管理部1111の制御の下、上記取得されたサービスプログラムをサービスプログラム記憶部121に記憶させる。
 ステップS103において、制御ユニット11は、登録管理部1111の制御の下、上記サービスプログラムのサービスコンテキストを抽出するための要求を、サービスコンテキスト解析部112に送信する。
 ステップS104において、制御ユニット11は、サービスコンテキスト解析部112の制御の下、サービスプログラム記憶部121に記憶される上記サービスプログラムを読み出して取得する。
 ステップS105において、制御ユニット11は、サービスコンテキスト解析部112の制御の下、コンテキスト係数記憶部122に記憶される、各デバイス送信データの受信および各デバイス制御命令の送信のイベントのコンテキスト係数を読み出して取得する。
 ステップS106において、制御ユニット11は、サービスコンテキスト解析部112の制御の下、ステップS105において取得されたコンテキスト係数に基づいて、上記サービスプログラムに係るサービスコンテキストを決定および抽出する。ステップS106では、例えば、上記で詳細に説明したサービスコンテキスト決定処理と同様の処理が実行される。
 ステップS107において、制御ユニット11は、サービスコンテキスト解析部112の制御の下、上記決定されたサービスコンテキストの情報を、サービスコンテキスト記憶部123に記憶させる。
 ステップS108において、制御ユニット11は、サービスコンテキスト解析部112の制御の下、サービスプログラム管理部111の登録管理部1111に、上記サービスプログラムが登録完了したとの通知を送信する。
 (2)サービス開始シーケンス
 サービスプログラムの登録が完了した後に、当該サービスプログラムによるサービスを開始することが可能となる。
 図16は、図4に示した制御ユニット11によって実行されるサービス開始処理の一例を示すシーケンス図である。
 ステップS201において、登録済みのサービスプログラムの開始要求をオペレータが入力部2を介して入力し、制御ユニット11は、サービスプログラム管理部111の実行管理部1112の制御の下、上記開始要求を取得する。
 ステップS202において、制御ユニット11は、実行管理部1112の制御の下、サービスプログラム記憶部121に記憶される、上記開始要求に係るサービスプログラムを読み出して取得する。
 ステップS203において、制御ユニット11は、実行管理部1112の制御の下、上記サービスプログラムのサービスコンテキストを抽出するための要求を、サービスコンテキスト判定部113に送信する。
 ステップS204において、制御ユニット11は、サービスコンテキスト判定部113の制御の下、サービスコンテキスト記憶部123に記憶される、上記サービスプログラムのサービスコンテキストの情報を読み出して取得する。
 ステップS205において、制御ユニット11は、サービスコンテキスト判定部113の制御の下、上記サービスプログラムのサービスコンテキストを実行するために必要なデバイス群を上記サービスプログラムが占有するためのデバイス占有要求を、デバイス管理部114に送信する。
 ステップS206において、制御ユニット11は、デバイス管理部114のデバイス占有制御部1141の制御の下、上記デバイス占有要求に基づくデバイス占有の可否を判定する。
 (3)デバイス占有シーケンス
 ステップS206においてデバイス占有が可能と判定された場合は、デバイス占有処理が実行される。
 図17は、図4に示した制御ユニット11によって実行されるデバイス占有処理の一例を示すシーケンス図である。
 ステップS301において、制御ユニット11は、デバイス管理部114のデバイス占有制御部1141の制御の下、上記デバイス占有要求に基づくデバイス占有処理を実行する。
 ステップS302において、制御ユニット11は、デバイス占有制御部1141の制御の下、上記デバイス占有処理に基づくデバイス占有状況の情報をデバイス占有情報記憶部124に書き込み、デバイス占有情報記憶部124に記憶されるデバイス占有情報が更新される。
 ステップS303において、制御ユニット11は、デバイス占有制御部1141の制御の下、サービスプログラム管理部111の実行管理部1112に、デバイス占有応答を送信する。
 ステップS304において、制御ユニット11は、実行管理部1112の制御の下、上記サービスプログラムを実行する。
 一方、ステップS206においてデバイス占有が不可と判定された場合は、先ずデバイス占有予約処理が実行され、その後にデバイス占有処理が実行される。
 図18は、図4に示した制御ユニット11によって実行されるデバイス占有予約処理およびデバイス占有処理の一例を示すシーケンス図である。 
 ステップS401からステップS408においてデバイス占有予約処理が実行され、その後、ステップS409からステップS412においてデバイス占有処理が実行される。
 ステップS401において、制御ユニット11は、デバイス管理部114のデバイス占有制御部1141の制御の下、予約待ちリストの更新をする。
 ステップS402において、制御ユニット11は、デバイス管理部114のデバイス占有開始時刻算出部1142の制御の下、サービスコンテキスト記憶部123に記憶されるサービスコンテキスト情報を読み出して取得する。
 ステップS403において、制御ユニット11は、デバイス占有開始時刻算出部1142の制御の下、デバイス占有情報記憶部124に記憶されるデバイス占有情報を読み出して取得する。
 ステップS404において、制御ユニット11は、デバイス占有開始時刻算出部1142の制御の下、状態遷移情報記憶部125に記憶される、デバイスとのデータ送受信履歴を読み出して取得する。
 なお、ステップS402、ステップS403およびステップS404の処理は、上述したのとは異なる順序で実行してもよいし、あるいは、これらのうちの任意の処理を並列して実行してもよい。
 ステップS405において、制御ユニット11は、デバイス占有開始時刻算出部1142の制御の下、ステップS402、ステップS403およびステップS404において取得した情報に基づいてデバイス占有開始時刻を算出する。ステップS405では、例えば、上記で詳細に説明したデバイス占有開始時刻算出処理と同様の処理が実行される。
 ステップS406において、制御ユニット11は、デバイス管理部114のデバイス占有制御部1141の制御の下、デバイス占有予約状況の情報をデバイス占有情報記憶部124に書き込み、デバイス占有情報記憶部124に記憶されるデバイス占有情報が更新される。
 ステップS407において、制御ユニット11は、デバイス占有制御部1141の制御の下、サービスプログラム管理部111の実行管理部1112に、デバイス占有予約応答を送信する。
 ステップS408において、制御ユニット11は、実行管理部1112の制御の下、デバイスの占有の予約待ちを行う。
 ステップS408において予約待ちしていたデバイスの占有が解放されると、ステップS409において、制御ユニット11は、デバイス管理部114のデバイス占有制御部1141の制御の下、デバイス占有処理を実行する。
 ステップS410において、制御ユニット11は、デバイス占有制御部1141の制御の下、デバイス占有処理に基づくデバイス占有状況の情報をデバイス占有情報記憶部124に書き込み、デバイス占有情報記憶部124に記憶されるデバイス占有情報が更新される。
 ステップS411において、制御ユニット11は、デバイス占有制御部1141の制御の下、サービスプログラム管理部111の実行管理部1112に、デバイス占有応答を送信する。
 ステップS412において、制御ユニット11は、実行管理部1112の制御の下、上記サービスプログラムを実行する。
 (4)デバイス通信シーケンス
 サービスプログラムが開始されると、当該サービスプログラムの内容に応じたデバイスとのデータ通信が実行される。
 図19は、図4に示した制御ユニット11によって実行されるデバイス通信処理の一例を示すシーケンス図である。
 ステップS501において、制御ユニット11は、サービスプログラム管理部111の実行管理部1112の制御の下、サービスプログラムを実行する。
 ステップS502において、制御ユニット11は、実行管理部1112の制御の下、デバイス制御命令をサービスコンテキスト判定部113に送信する。
 ステップS503において、制御ユニット11は、サービスコンテキスト判定部113の制御の下、デバイス制御命令をデバイス管理部114に送信する。
 ステップS504において、制御ユニット11は、デバイス管理部114の制御の下、デバイス制御命令をデバイス3A~3Nのうちの宛先のデバイスに送信する。
 ステップS505において、制御ユニット11は、デバイス管理部114の制御の下、デバイス制御命令の送信イベントの情報を状態遷移情報記憶部125に記憶させる。
 ステップS506において、デバイス3Aから3Nのうち、上記サービスプログラムが占有しているデバイスがデータを送信し、制御ユニット11は、デバイス管理部114の制御の下、当該デバイス送信データを取得する。
 ステップS507において、制御ユニット11は、デバイス管理部114の制御の下、デバイス送信データの受信イベントの情報を状態遷移情報記憶部125に記憶させる。
 ステップS508において、制御ユニット11は、デバイス管理部114の制御の下、デバイス送信データをサービスコンテキスト判定部113に送信する。
 ステップS509において、制御ユニット11は、サービスコンテキスト判定部113の制御の下、デバイス送信データをサービスプログラム管理部111の実行管理部1112に送信する。
 ステップS502からステップS505のデバイス制御命令送信処理と、ステップS506からステップS509のデバイス送信データ受信処理が繰り返される。
 ここで、ステップS505において状態遷移情報記憶部125に記憶されたデバイス制御命令の送信イベントの情報と、ステップS507において状態遷移情報記憶部125に記憶されたデバイス送信データの受信イベントの情報とを利用して、コンテキスト係数の補正処理を実行することができる。
 ステップS510において、制御ユニット11は、デバイス管理部114のコンテキスト係数補正部1143の制御の下、状態遷移情報記憶部125に記憶されるデバイス制御命令の送信イベントおよびデバイス送信データの受信イベントの履歴情報を読み出して取得する。
 ステップS511において、制御ユニット11は、コンテキスト係数補正部1143の制御の下、ステップS510において取得されたデバイス制御命令の送信イベントおよびデバイス送信データの受信イベントの履歴情報に基づいてコンテキスト係数補正処理を実行する。ステップS511では、例えば、上記で詳細に説明したコンテキスト係数補正処理と同様の処理が実行される。
 ステップS512において、制御ユニット11は、コンテキスト係数補正部1143の制御の下、補正後のコンテキスト係数の値をコンテキスト係数記憶部122に書き込み、コンテキスト係数記憶部122に記憶されるコンテキスト係数が更新される。
 なお、ステップS510からステップS512の処理は、上述したタイミングで実行されるものに限定されず、任意のタイミングで実行するようにしてもよい。
 (5)サービスコンテキスト切替シーケンス
 サービスプログラムが開始され、当該サービスプログラムの内容に応じたデバイスとのデータ通信の実行中に、当該サービスプログラムに係るサービスコンテキストの切替が行われる。
 図20は、図4に示した制御ユニット11によって実行されるサービスコンテキスト切替処理の一例を示すシーケンス図である。
 ステップS601において、デバイス3Aから3Nのうち、上記サービスプログラムが占有しているデバイスがデータを送信し、制御ユニット11は、デバイス管理部114の制御の下、当該デバイス送信データを取得する。
 ステップS602において、制御ユニット11は、デバイス管理部114の制御の下、デバイス送信データの受信イベントの情報を状態遷移情報記憶部125に記憶させる。
 ステップS603において、制御ユニット11は、デバイス管理部114の制御の下、デバイス送信データをサービスコンテキスト判定部113に送信する。
 ステップS604において、制御ユニット11は、サービスコンテキスト判定部113の制御の下、デバイス送信データをサービスプログラム管理部111の実行管理部1112に送信する。
 ここで、ステップS605において、制御ユニット11は、実行管理部1112の制御の下、上記デバイス送信データが所定の状態遷移の遷移条件を満たすデバイス送信データである場合、上記サービスプログラムのサービス状態を更新する。
 ステップS606において、制御ユニット11は、実行管理部1112の制御の下、上記サービス状態の更新の通知をサービスコンテキスト判定部113に送信する。
 ステップS607において、制御ユニット11は、サービスコンテキスト判定部113の制御の下、サービスコンテキスト記憶部123に記憶される上記サービスプログラムに係るサービスコンテキスト情報を読み出して取得する。
 ステップS608において、制御ユニット11は、サービスコンテキスト判定部113の制御の下、ステップS607において取得されたサービスコンテキスト情報に基づいて、上記サービスプログラムで実行するサービスコンテキストの変更の有無を確認する処理を実行する。
 ステップS608において上記サービスコンテキストの変更が有ることが確認されると、ステップS609において、制御ユニット11は、サービスコンテキスト判定部113の制御の下、デバイス占有要求またはデバイス占有解放要求をデバイス管理部114に送信する。
 ステップS610において、制御ユニット11は、デバイス管理部114のデバイス占有制御部1141の制御の下、デバイス占有解放処理を実行する。
 ステップS611において、制御ユニット11は、デバイス占有制御部1141の制御の下、上記デバイス占有解放処理に基づくデバイス占有状況の情報をデバイス占有情報記憶部124に書き込み、デバイス占有情報記憶部124に記憶されるデバイス占有情報が更新される。
 ステップS612において、制御ユニット11は、デバイス占有制御部1141の制御の下、上記デバイス占有要求に基づくデバイス占有の可否を判定する。
 ステップS612においてデバイス占有が可能と判定された場合は、ステップS301からステップS304の処理が実行される。一方、ステップS612においてデバイス占有が不可と判定された場合は、ステップS401からステップS412の処理が実行される。
 (6)サービス停止シーケンス
 サービスプログラムが開始され、当該サービスプログラムの内容に応じたデバイスとのデータ通信の実行中に、サービス停止の処理を実行することができる。
 図21は、図4に示した制御ユニット11によって実行されるサービス停止処理の一例を示すシーケンス図である。
 ステップS701において、実行中のサービスプログラムの停止要求をオペレータが入力部2を介して入力し、制御ユニット11は、サービスプログラム管理部111の実行管理部1112の制御の下、上記停止要求を取得する。
 ステップS702において、制御ユニット11は、実行管理部1112の制御の下、上記サービスプログラムの停止処理を実行する。
 ステップS703において、制御ユニット11は、実行管理部1112の制御の下、上記サービスプログラムによるデバイスの占有を解放するためのデバイス占有解放要求を、サービスコンテキスト判定部113に送信する。
 ステップS704において、制御ユニット11は、サービスコンテキスト判定部113の制御の下、上記デバイス占有解放要求をデバイス管理部114に送信する。
 ステップS705において、制御ユニット11は、デバイス管理部114のデバイス占有制御部1141の制御の下、上記デバイス占有解放要求に基づくデバイス占有解放処理を実行する。
 ステップS706において、制御ユニット11は、デバイス占有制御部1141の制御の下、上記デバイス占有解放処理に基づくデバイス占有状況の情報をデバイス占有情報記憶部124に書き込み、デバイス占有情報記憶部124に記憶されるデバイス占有情報が更新される。
 ステップS707において、制御ユニット11は、デバイス管理部114の制御の下、デバイスの占有を解放したとの通知をサービスコンテキスト判定部113に送信する。
 ステップS708において、制御ユニット11は、サービスコンテキスト判定部113の制御の下、上記デバイスの占有を解放したとの通知を、サービスプログラム管理部111の実行管理部1112に送信する。
 (効果)
 (1)サービスプログラム管理部111の登録管理部1111の制御の下、サービスプログラムのサービスコンテキストを抽出するための要求が、サービスコンテキスト解析部112に送信される。サービスコンテキスト解析部112の制御の下、各デバイス送信データの受信および各デバイス制御命令の送信のイベントのコンテキスト係数が取得される。サービスコンテキスト解析部112の制御の下、上記取得されたコンテキスト係数に基づいて、上記サービスプログラムに係るサービスコンテキストが決定および抽出される。
 これにより、コンテキスト係数に基づいて決定されたサービスコンテキストの最適な粒度で、次のようにサービスプログラムへのデバイスの割り当て制御を実行することができる。
 (2)サービスコンテキスト判定部113の制御の下、デバイス送信データがサービスプログラム管理部111の実行管理部1112に送信される。実行管理部1112の制御の下、上記デバイス送信データが所定の状態遷移の遷移条件を満たすデバイス送信データである場合、上記サービスプログラムのサービス状態が更新される。その後、実行管理部1112の制御の下、上記サービス状態の更新の通知がサービスコンテキスト判定部113に送信される。サービスコンテキスト判定部113の制御の下、上記サービスプログラムに係るサービスコンテキスト情報が取得され、当該取得されたサービスコンテキスト情報に基づいて、上記サービスプログラムで実行するサービスコンテキストの変更の有無が確認される。上記サービスコンテキストの変更が有ることが確認されると、サービスコンテキスト判定部113の制御の下、デバイス占有要求またはデバイス占有解放要求がデバイス管理部114に送信される。
 このような制御が行われるため、サービスプログラムの実行中に、当該サービスプログラムを実行するのに必要とされるデバイスであっても当該サービスプログラムに割り当てられていないデバイスが存在することとなる。したがって、他のサービスプログラムによる割り込みの際にも、実行中のサービスプログラムを中断することなくこのようなデバイスをそのサービスプログラムに割り当てることが可能となり、複数サービスによるデバイス共用が可能となる。一方、サービスコンテキストの単位でサービスプログラムにその都度必要とされるデバイスが割り当てられるように制御するので、当該サービスプログラムがデバイスを必要とする期間に他のサービスによりそのデバイスが利用されることを防止することも可能となる。
 (3)デバイス管理部114のコンテキスト係数補正部1143の制御の下、デバイス制御命令の送信イベントおよびデバイス送信データの受信イベントの履歴情報が取得される。コンテキスト係数補正部1143の制御の下、当該取得されたデバイス制御命令の送信イベントおよびデバイス送信データの受信イベントの履歴情報に基づいて、コンテキスト係数補正処理が実行される。
 このように、例えば、上記サービスプログラムの実行に伴うその都度の通信状況等をコンテキスト係数に反映させることができるので、当該コンテキスト係数に基づいて決定されるサービスコンテキストをより現実に即した粒度とすることが可能となる。
 (4)デバイス管理部114のデバイス占有制御部1141の制御の下、デバイス占有要求に基づくデバイス占有の可否が判定される。デバイス占有が不可と判定された場合は、デバイス管理部114のデバイス占有制御部1141の制御の下、予約待ちリストの更新がされる。その後、デバイス管理部114のデバイス占有開始時刻算出部1142の制御の下、サービスコンテキスト情報と、デバイス占有情報と、デバイスとのデータ送受信履歴が取得され、当該サービスコンテキスト情報と、デバイス占有情報と、デバイスとのデータ送受信履歴とに基づいて、デバイス占有開始時刻が算出される。
 このように過去の実データに基づいて算出されるデバイス占有開始の予測時刻は信頼性が高いものとなり、このように算出されたデバイス占有開始時刻を利用することにより、複数のサービスの間で共用されるデバイスの時間管理が容易となる。
 [他の実施形態]
 なお、この発明は上記第1の実施形態に限定されるものではない。
 例えば、デバイス管理システムの構成や、コンテキスト係数記憶部、サービスコンテキスト記憶部、デバイス占有情報記憶部、状態遷移情報記憶部にそれぞれ記憶されるデータの構造等について、この発明の要旨を逸脱しない範囲で種々変形して実施可能である。
 要するにこの発明は、上記第1の実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記第1の実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、上記第1の実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
 AC1,AC2,AC3,BC1,BC2,BC3,BC4…サービスコンテキスト
 A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,B1,B2,B3,B4,B5,B6,B7,B8,B9,B10,B11…状態
 1…デバイス管理システム
 11…制御ユニット
 111…サービスプログラム管理部
 1111…登録管理部
 1112…実行管理部
 112…サービスコンテキスト解析部
 113…サービスコンテキスト判定部
 114…デバイス管理部
 1141…デバイス占有制御部
 1142…デバイス占有開始時刻算出部
 1143…コンテキスト係数補正部
 12…記憶ユニット
 121…サービスプログラム記憶部
 122…コンテキスト係数記憶部
 123…サービスコンテキスト記憶部
 124…デバイス占有情報記憶部
 125…状態遷移情報記憶部
 13…通信インタフェースユニット
 2…入力部
 3A,3B,3C,3N…デバイス
 NW…通信ネットワーク

Claims (7)

  1.  ハードウェアプロセッサおよびメモリを備える装置が実行する、記憶部に記憶されているサービスプログラムにサービス提供フィールド上のデバイスを割り当てるデバイス割り当て制御方法であって、
     前記装置による前記サービスプログラムの実行中に、当該サービスプログラムに割り当てられているデバイスと前記装置が通信するデータに基づいて、前記サービスプログラムの処理単位としての所定のサービスコンテキストが開始または終了することを判定するサービスコンテキスト判定過程と、
     前記装置による前記サービスプログラムの実行中に、
      前記所定のサービスコンテキストが開始すると判定された場合に、前記開始すると判定された所定のサービスコンテキストを実行するのに使用されるデバイスを前記サービスプログラムに割り当てる過程、および、
      前記所定のサービスコンテキストが終了すると判定された場合に、前記終了すると判定された所定のサービスコンテキストを実行するのに使用されるデバイスの前記サービスプログラムへの割り当てを解放する過程の少なくとも一方を備えるデバイス占有制御過程と
     を備えるデバイス割り当て制御方法。
  2.  前記サービスプログラムに含まれる予め定義された状態および状態遷移の各々が有するデータ通信イベントを抽出する過程と、
     前記抽出された状態および状態遷移の各々が有するデータ通信イベントと、当該データ通信イベント毎に設定された、当該データ通信イベント後の別のデータ通信イベントの発生のしやすさを表すスコア値に対応するコンテキスト係数とに基づいて、前記サービスプログラムの処理単位としてのサービスコンテキストを決定する過程と
     をさらに備える、請求項1に記載のデバイス割り当て制御方法。
  3.  前記サービスプログラムに割り当てられているデバイスと前記装置との間で発生したデータ通信イベントの履歴に基づいて、前記コンテキスト係数を補正する過程をさらに備える、請求項2に記載のデバイス割り当て制御方法。
  4.  前記デバイス占有制御過程は、前記所定のサービスコンテキストが開始すると判定され、かつ、当該所定のサービスコンテキストを実行するのに使用されるデバイスが第2のサービスプログラムに割り当てられている場合に、当該デバイスが前記サービスプログラムに割り当て可能となる時刻を通知する過程を備える、請求項1乃至3のいずれかに記載のデバイス割り当て制御方法。
  5.  前記デバイス占有制御過程は、前記所定のサービスコンテキストが開始すると判定され、かつ、当該所定のサービスコンテキストを実行するのに使用されるデバイスが前記第2のサービスプログラムに割り当てられている場合に、前記第2のサービスプログラム実行時の当該第2のサービスプログラムに含まれる各状態の維持時間の履歴、および、前記第2のサービスプログラム実行時の当該第2のサービスプログラムにおける状態遷移の遷移前後の状態を示す状態遷移の履歴とに基づいて、前記デバイスが前記サービスプログラムに割り当て可能となる時刻を算出する過程を備える、請求項4に記載のデバイス割り当て制御方法。
  6.  記憶部に記憶されているサービスプログラムにサービス提供フィールド上のデバイスを割り当てるデバイス割り当て制御システムであって、
     前記システムによる前記サービスプログラムの実行中に、当該サービスプログラムに割り当てられているデバイスと前記システムが通信するデータに基づいて、前記サービスプログラムの処理単位としての所定のサービスコンテキストが開始または終了することを判定するサービスコンテキスト判定部と、
     前記システムによる前記サービスプログラムの実行中に、
      前記所定のサービスコンテキストが開始すると判定された場合に、前記開始すると判定された所定のサービスコンテキストを実行するのに使用されるデバイスを前記サービスプログラムに割り当てる制御部、および、
      前記所定のサービスコンテキストが終了すると判定された場合に、前記終了すると判定された所定のサービスコンテキストを実行するのに使用されるデバイスの前記サービスプログラムへの割り当てを解放する制御部の少なくとも一方を備えるデバイス占有制御部と
     を備えるデバイス割り当て制御システム。
  7.  請求項1乃至5のいずれかに記載のデバイス割り当て制御方法が備える各過程を前記ハードウェアプロセッサに実現させるプログラム。
PCT/JP2019/009145 2018-03-15 2019-03-07 デバイス割り当て制御方法、システムおよびプログラム WO2019176740A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US16/981,000 US11934881B2 (en) 2018-03-15 2019-03-07 Service program device allocation and release

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2018047897A JP6793143B2 (ja) 2018-03-15 2018-03-15 デバイス割り当て制御方法、システムおよびプログラム
JP2018-047897 2018-03-15

Publications (1)

Publication Number Publication Date
WO2019176740A1 true WO2019176740A1 (ja) 2019-09-19

Family

ID=67906621

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2019/009145 WO2019176740A1 (ja) 2018-03-15 2019-03-07 デバイス割り当て制御方法、システムおよびプログラム

Country Status (3)

Country Link
US (1) US11934881B2 (ja)
JP (1) JP6793143B2 (ja)
WO (1) WO2019176740A1 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005100320A (ja) * 2003-08-27 2005-04-14 Nippon Telegr & Teleph Corp <Ntt> 複数のサービスを同時に利用する際のサービス制御システム、方法、プログラムおよび記録媒体
JP2009223793A (ja) * 2008-03-18 2009-10-01 Fujitsu Ltd 情報処理装置、情報処理装置の制御方法及びコンピュータプログラム
JP2017063268A (ja) * 2015-09-24 2017-03-30 パナソニックIpマネジメント株式会社 調停方法、調停装置及び調停プログラム
JP2017097494A (ja) * 2015-11-19 2017-06-01 日本電信電話株式会社 状態遷移処理装置、状態遷移処理方法、状態遷移処理プログラム

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8234650B1 (en) * 1999-08-23 2012-07-31 Oracle America, Inc. Approach for allocating resources to an apparatus
US8010954B2 (en) * 2007-02-14 2011-08-30 The Mathworks, Inc. Parallel programming interface to dynamically allocate program portions
US8108845B2 (en) * 2007-02-14 2012-01-31 The Mathworks, Inc. Parallel programming computing system to dynamically allocate program portions
AU2011293350B2 (en) * 2010-08-24 2015-10-29 Solano Labs, Inc. Method and apparatus for clearing cloud compute demand
US9628402B2 (en) * 2011-09-22 2017-04-18 International Business Machines Corporation Provisioning of resources
US9507638B2 (en) * 2011-11-08 2016-11-29 Nvidia Corporation Compute work distribution reference counters
US9268604B1 (en) * 2012-12-11 2016-02-23 The Boeing Company Automated allocation of vehicle systems for different specified vehicle testing tasks
US20150067171A1 (en) * 2013-08-30 2015-03-05 Verizon Patent And Licensing Inc. Cloud service brokering systems and methods

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005100320A (ja) * 2003-08-27 2005-04-14 Nippon Telegr & Teleph Corp <Ntt> 複数のサービスを同時に利用する際のサービス制御システム、方法、プログラムおよび記録媒体
JP2009223793A (ja) * 2008-03-18 2009-10-01 Fujitsu Ltd 情報処理装置、情報処理装置の制御方法及びコンピュータプログラム
JP2017063268A (ja) * 2015-09-24 2017-03-30 パナソニックIpマネジメント株式会社 調停方法、調停装置及び調停プログラム
JP2017097494A (ja) * 2015-11-19 2017-06-01 日本電信電話株式会社 状態遷移処理装置、状態遷移処理方法、状態遷移処理プログラム

Also Published As

Publication number Publication date
JP6793143B2 (ja) 2020-12-02
US11934881B2 (en) 2024-03-19
JP2019160024A (ja) 2019-09-19
US20210109794A1 (en) 2021-04-15

Similar Documents

Publication Publication Date Title
US9296588B2 (en) Best group selection in elevator dispatching system incorporating redirector information
US9302885B2 (en) Best group selection in elevator dispatching system incorporating group score information
CN109298936A (zh) 一种资源调度方法及装置
KR101553650B1 (ko) 멀티코어 시스템에서의 로드 밸런싱 장치 및 방법
US8584810B2 (en) Building specification data for elevator system, elevator control device and destination floor reception terminal device
CN107074480B (zh) 电梯系统中的呼叫分配
CN113010309B (zh) 集群资源调度方法、装置、存储介质、设备和程序产品
WO2019176740A1 (ja) デバイス割り当て制御方法、システムおよびプログラム
JP6357807B2 (ja) タスク割当プログラム、タスク実行プログラム、マスタサーバ、スレーブサーバおよびタスク割当方法
JP6232698B2 (ja) ネットワークスイッチ装置、タスク移動方法、およびタスク移動プログラム
JP3952058B2 (ja) 推定伸長率に基づくトランザクション負荷分散方法及び方式並びにコンピュータ可読記録媒体
CN113472591A (zh) 一种业务性能的确定方法及装置
JP2017178482A (ja) 群管理制御装置及び群管理制御システム
JP7491396B2 (ja) コンピュータシステムおよびフロー制御方法
JP7237436B1 (ja) エレベータ情報処理装置
JP7384214B2 (ja) 解析処理装置、システム、方法及びプログラム
JP6558008B2 (ja) 転送装置、転送システムおよびプログラム
KR102285963B1 (ko) 멀티 노드를 이용한 작업 스케줄링 방법 및 그 장치
JP5552929B2 (ja) 電文送信制御プログラム、通信装置及び電文送信制御方法
WO2015125453A1 (ja) 情報処理装置及び負荷制御方法
JP5488029B2 (ja) 分散処理システム、分散処理方法、及びプログラム
JP6174519B2 (ja) 資源割当装置およびその動作方法
WO2019176739A1 (ja) デバイス割り当て方法、システムおよびプログラム
JPH03278136A (ja) 計算機システムの負荷制御方法及び装置
JP2021092904A (ja) Cpuリソース管理装置

Legal Events

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

Ref document number: 19767607

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19767607

Country of ref document: EP

Kind code of ref document: A1