WO2023032106A1 - ジョブ管理システム及びその制御方法 - Google Patents

ジョブ管理システム及びその制御方法 Download PDF

Info

Publication number
WO2023032106A1
WO2023032106A1 PCT/JP2021/032201 JP2021032201W WO2023032106A1 WO 2023032106 A1 WO2023032106 A1 WO 2023032106A1 JP 2021032201 W JP2021032201 W JP 2021032201W WO 2023032106 A1 WO2023032106 A1 WO 2023032106A1
Authority
WO
WIPO (PCT)
Prior art keywords
job
execution
unit
inquiry
request
Prior art date
Application number
PCT/JP2021/032201
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 PCT/JP2021/032201 priority Critical patent/WO2023032106A1/ja
Priority to US18/044,786 priority patent/US20230367632A1/en
Publication of WO2023032106A1 publication Critical patent/WO2023032106A1/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/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/40Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using virtualisation of network functions or resources, e.g. SDN or NFV entities

Definitions

  • the present invention relates to a job management system and its control method.
  • Patent Document 1 discloses that an order for a product purchased by a customer is broken down into VNF (Virtualized Network Function) units and NFVI (Network Functions Virtualization Infrastructure ) describes the technology to deploy on.
  • VNF Virtualized Network Function
  • NFVI Network Functions Virtualization Infrastructure
  • the job execution unit in operation may be switched to a different type of job execution unit due to replacement.
  • the job execution unit in operation may be switched to another job execution unit with the same function due to version upgrade or the like.
  • the present invention has been made in view of the above circumstances, and one of its purposes is to provide a job management system and its control method that enable seamless switching of job execution units.
  • a job management system includes first execution control means for instructing a first job execution unit to execute a job in response to acceptance of a job execution request; a second execution control means for instructing a second job execution unit to execute the job in response to the acceptance of the execution request; and an execution request output for sequentially outputting the job execution request to the first execution control means.
  • first execution control means for instructing a first job execution unit to execute a job in response to acceptance of a job execution request
  • a second execution control means for instructing a second job execution unit to execute the job in response to the acceptance of the execution request
  • an execution request output for sequentially outputting the job execution request to the first execution control means.
  • a switching means for switching to a control means; a first inquiry means for inquiring of the first job execution section about the status of a job whose execution has been instructed to the first job execution section; 2, if it is determined that the execution of an incomplete job by the first job execution unit has failed based on the result of the inquiry, the execution request output unit outputs the job to the second execution control means.
  • the first inquiry means, in response to determination of success or failure of execution of all jobs instructed to be executed by the first job execution unit based on the result of the inquiry, Terminate the inquiry.
  • the first inquiry means terminates the inquiry when it is confirmed that execution of all jobs instructed to be executed by the first job execution unit has been completed based on the result of the inquiry. .
  • execution request receiving means for receiving a job execution request from an operation support system
  • job data storage means for storing job data representing the job
  • the execution request output means stores the job data before the output destination of the job execution request is switched to the second execution control means.
  • a job execution request indicated by the job data is output to the first execution control means
  • the execution request output means outputs the job execution request to the first execution control means.
  • a request for execution of the job indicated by the job data is output to the second execution control means.
  • This aspect may further include notification means for notifying the operation support system of the success or failure of job execution determined based on the result of the inquiry.
  • a second inquiry unit for inquiring the second job execution unit about the status of the job whose execution has been instructed to the second job execution unit, wherein the notification unit comprises the first inquiry unit and the While inquiries are being made by both of the second inquiry means, the success or failure of job execution determined based on the result of the inquiry by the first inquiry means and the inquiry by the second inquiry means.
  • the operation support system may be notified of the success or failure of job execution determined based on the result.
  • the execution request output means outputs the job execution request to the second execution control means without the notification means notifying the operation support system that the execution of the job has failed. good too.
  • a control method for a job management system includes first execution control means for instructing a first job execution unit to execute a job in response to acceptance of a job execution request; and second execution control means for instructing a second job execution unit to execute the job in response to the acceptance of the job execution request, wherein the job execution request is sequentially received by the first outputting to an execution control means; and outputting a job execution request output destination from the first execution control means to the second execution when there is an unfinished job in the first job execution unit.
  • a step of switching to a control means a step of inquiring of the first job execution part about the status of the job whose execution has been instructed to the first job execution part; after switching to the second execution control means, if it is determined that the execution of an incomplete job by the first job execution unit has failed based on the result of the inquiry, the job execution request is sent to the second execution control means and outputting.
  • FIG. 1 illustrates an example of a job control system
  • FIG. 1 is a diagram showing an example of the configuration of a job management system
  • FIG. FIG. 4 is a diagram showing an example of job status data
  • 1 illustrates an example of a job control system
  • FIG. 4 is a diagram showing an example of job status data
  • 1 illustrates an example of a job control system
  • FIG. 4 is a flow chart showing an example of the flow of processing executed by the job management system
  • 4 is a flow chart showing an example of the flow of processing executed by the job management system
  • FIG. 4 is a flow chart showing an example of the flow of processing executed by the job management system
  • FIG. 1 is a diagram showing an example of a job control system 1 according to one embodiment of the present invention.
  • the job control system 1 includes an operation support system (OSS) 10, a job management system 12, and a job execution unit 14.
  • FIG. 1 shows a first job execution section 14a as an example of the job execution section 14 included in the job control system 1.
  • OSS operation support system
  • job management system 12 job management system
  • job execution unit 14 job execution unit 14
  • the job management system 12 includes an execution request reception unit 20, a job data storage unit 22, an execution request output unit 24, an abstraction layer 26, a notification unit 28, and a switching unit 30.
  • the abstraction layer 26 includes an execution control section 32 , a job status data storage section 34 and an inquiry section 36 .
  • the execution control section 32 includes a relay section 38 and a client section 40 .
  • FIG. 1 shows a first execution control section 32 a as an example of the execution control section 32 included in the job control system 1 .
  • a first inquiry unit 36 a is shown as an example of the inquiry unit 36 .
  • a first relay portion 38 a is shown as an example of the relay portion 38 .
  • a first client section 40a is shown.
  • the OSS 10 and the job management system 12 are computer systems such as a cloud platform in which a cluster of nodes (which can also be called computers or servers) that execute containerized applications is constructed.
  • the job management system 12 and the job execution unit 14 may be, for example, a cluster constructed in a central data center (CDC), which is a data center of a mobile communication carrier.
  • CDC central data center
  • the cluster according to this embodiment is, for example, a set of nodes on which software (specifically, Kubernetes, for example) that manages containerized workloads and services is installed.
  • the cluster according to the present embodiment is, for example, a Kubernetes cluster that defines a range in which pods, which are containerized applications, can be managed.
  • a Kubernetes cluster can also be said to be a set of multiple nodes on which Kubernetes can deploy pods.
  • FIG. 2 is a diagram showing an example of the configuration of the job management system 12 according to this embodiment.
  • the job management system 12 includes a processor 50, a storage unit 52, and a communication unit 54, for example.
  • the processor 50 is, for example, a program-controlled device such as a microprocessor that operates according to programs installed in the job management system 12 .
  • the storage unit 52 is, for example, a storage element such as ROM or RAM, a solid state drive (SSD), a hard disk drive (HDD), or the like.
  • the storage unit 52 stores programs and the like executed by the processor 50 .
  • the communication unit 54 is, for example, a communication interface such as a NIC (Network Interface Card) or a wireless LAN module.
  • NIC Network Interface Card
  • SDN Software-Defined Networking
  • the communication unit 54 exchanges data with the OSS 10, a cluster built in an external data center (regional data center (RDC), edge data center, etc.), and the like.
  • RDC regional data center
  • edge data center etc.
  • the execution request receiving unit 20 is implemented mainly by the processor 50 and the communication unit 54.
  • the job data storage unit 22 and the job status data storage unit 34 are mainly implemented by the storage unit 52 .
  • the execution request output unit 24, the execution control unit 32, the inquiry unit 36, and the switching unit 30 are mainly implemented by the processor 50, the storage unit 52, and the communication unit .
  • the notification unit 28 is implemented mainly by the communication unit 54 .
  • the functions described above may be implemented by causing the processor 50 to execute a program containing commands corresponding to the functions described above, which is installed in the job management system 12, which is a computer.
  • This program may be supplied to the job management system 12 via computer-readable information storage media such as optical discs, magnetic discs, magnetic tapes, magneto-optical discs, and flash memory, or via the Internet. .
  • the OSS 10 transmits a job execution request to the job management system 12 . Then, the execution request receiving section 20 of the job management system 12 receives this execution request from the OSS 10 .
  • An example of such a job is a job for constructing a network service (NS).
  • a job execution request may be sent to the job management system 12 according to an instruction from an administrator or user of the OSS 10 .
  • the execution request receiving unit 20 generates job data indicating the job to be executed according to the received execution request, and outputs the job data to the job data storage unit 22 .
  • the job data storage unit 22 stores, for example, job data indicating a job to be executed in this embodiment.
  • the job data storage unit 22 receives and stores job data output from the execution request receiving unit 20 .
  • the job data according to the present embodiment may be data indicating a job for constructing elements included in the 4th generation mobile communication system (4G) or the 5th generation mobile communication system (5G). More specifically, for example, the job data is data indicating a job for constructing elements such as NS, network function (NF), CNFC (Containerized Network Function Component), and pod included in 4G and 5G communication systems.
  • Job data may then include location data indicating the location where the element is constructed.
  • the execution request output unit 24 sequentially acquires job data stored in the job data storage unit 22, for example. In addition, when acquiring job data from the job data storage unit 22 , the execution request output unit 24 deletes the job data from the job data storage unit 22 .
  • the execution request output unit 24 outputs job execution requests to the sequential execution control unit 32, for example.
  • the execution request output unit 24 sequentially outputs job execution requests to the first execution control unit 32a.
  • the execution request output unit 24 outputs, for example, a job execution request corresponding to job data acquired from the job data storage unit 22 to the execution control unit 32 .
  • the execution request output unit 24 issues a job execution request according to the job data for the plurality of job data. , sequentially to the execution control unit 32 .
  • the execution control unit 32 instructs the job execution unit 14 to execute the job in response to acceptance of the job execution request.
  • the first execution control unit 32a instructs the first job execution unit 14a to execute the job in response to acceptance of the job execution request.
  • the execution request output unit 24 outputs a job execution request to the first relay unit 38a included in the first execution control unit 32a.
  • the first relay unit 38a then outputs this execution request to the first client unit 40a.
  • the first client unit 40a outputs a job execution instruction corresponding to the execution request to the first job execution unit 14a.
  • the job execution unit 14 receives a job execution instruction from the execution control unit 32 and executes the job.
  • the job execution unit 14 may be implemented including a job execution engine such as a workflow engine.
  • the job execution unit 14 may generate at least one new job execution request in response to acceptance of a job execution instruction. For example, in response to acceptance of an NS construction request, multiple NF construction requests included in the NS may be generated. Also, in response to the reception of the NF construction request, a construction request for a plurality of CNFCs (Containerized Network Function Components) included in the NF may be generated. Also, in response to receiving a CNFC construction request, a construction request for a plurality of pods included in the CNFC may be generated.
  • CNFCs Containerized Network Function Components
  • the job execution unit 14 may output an execution request for at least one newly generated job to the execution request reception unit 20 .
  • the job execution unit 14 may, for example, construct the pod in response to receiving a pod construction request.
  • the job execution unit 14 may output a pod deployment request to Kubernetes installed in the job management system 12 or Kubernetes installed in a cluster of an external data center. Then, the Kubernetes that receives the pod deployment request may deploy the pod.
  • the first job execution unit 14a receives a job execution instruction from the first client unit 40a of the first execution control unit 32a and executes the job.
  • the job status data storage unit 34 stores, for example, job status data indicating the status of the job instructed to be executed by the job execution unit 14 .
  • FIG. 3 is a diagram showing an example of job status data.
  • the job status data includes, for example, a job ID, an engine ID, a local job ID, execution status data, instruction date/time data, and the like.
  • the job status data is data associated with a job that the job management system 12 has instructed the job execution unit 14 to execute in response to an execution request received from the OSS 10 .
  • a job ID is, for example, job identification information uniquely assigned to a job whose execution request is received from the OSS 10 in this embodiment.
  • the identification information of the job associated with the execution request received from the OSS 10 may be set as the job ID of the job status data associated with the job.
  • the engine ID is, for example, identification information of the job execution unit 14 to which execution of the job is instructed.
  • the job management system 12 instructs only the first job execution section 14a to execute the job. Therefore, in the example of FIG. 3, "001", which is a value corresponding to the first job execution unit 14a, is set as the engine ID for all job status data.
  • the local job ID is, for example, identification information of a job locally managed by the job execution unit 14 and for which the job execution unit 14 has received an execution instruction.
  • the same value as the job ID may be set as the value of the local job ID.
  • the execution status data is, for example, data indicating the execution status of a job that the job execution unit 14 has been instructed to execute.
  • "normal termination” indicates normal termination
  • "abnormal termination” indicates abnormal termination
  • "executing” indicates execution
  • "not executed” indicates non-execution.
  • the execution status data values are not limited to these examples.
  • the value of the execution status data is appropriately updated based on the result of inquiry by the inquiry unit 36, as will be described later.
  • the instruction date/time data is, for example, data indicating the date/time of the job execution instruction.
  • job status data associated with the job may be generated at the same time.
  • the execution control unit 32 may then cause the job status data storage unit 34 to store the generated job status data.
  • the first execution control section 32a when the first execution control section 32a outputs a job execution instruction to the first job execution section 14a, it may also generate job status data associated with the job. Then, the first execution control section 32a may cause the job status data storage section 34 to store the generated job status data.
  • the first relay unit 38a when the first relay unit 38a outputs a job execution request to the first client unit 40a, it also generates job status data associated with the job, and sends the generated job status data. It may be stored in the job status data storage unit 34 . In this case, the output date and time of the job execution request to the first client unit 40a may be set in the instruction date and time data included in the job status data.
  • the first client unit 40a When the first client unit 40a outputs a job execution instruction to the first job execution unit 14a, it also generates job status data associated with the job, and sends the generated job status data to the job status. It may be stored in the data storage section 34 . In this case, the output date and time of the job execution request to the first job execution unit 14a may be set in the instruction date and time data included in the job status data.
  • the inquiry unit 36 inquires of the job execution unit 14 about the status of the job that the job execution unit 14 has been instructed to execute.
  • the inquiry unit 36 may, for example, make inquiries to the job execution unit 14 at predetermined time intervals.
  • the inquiry unit 36 may inquire of the job execution unit 14 via the client unit 40 about the status of the job that the job execution unit 14 has instructed to execute.
  • the inquiry unit 36 may transmit the job ID of the job whose status is to be inquired to the client unit 40 .
  • the client section 40 may access the job execution section 14 and specify the status of the job corresponding to the job ID.
  • the client unit 40 may transmit data indicating the status of the identified job to the inquiry unit 36 .
  • the inquiry unit 36 is associated with the job execution unit 14 .
  • the inquiry unit 36 then identifies job status data including the engine ID associated with the job execution unit 14 associated with the inquiry unit 36 .
  • the inquiry unit 36 inquires of the job execution unit 14 associated with the inquiry unit 36 about the status of the job indicated by the specified job status data.
  • the inquiry unit 36 may inquire of the job execution unit 14 associated with the inquiry unit 36 about the status of the job associated with the job status data including the execution status data indicating that the job is incomplete.
  • the execution status data indicating incomplete execution refers to, for example, execution status data with a value of "unexecuted” or "executing".
  • the first inquiry unit 36a is associated with the first job execution unit 14a.
  • the first inquiry unit 36a may inquire of the first job execution unit 14a about the status of the job that the first job execution unit 14a has been instructed to execute.
  • the first inquiring unit 36a among the job status data stored in the job status data storage unit 34, checks the status of the job associated with the job status data whose engine ID value is "001". An inquiry may be made to the 1-job executing section 14a.
  • the inquiry unit 36 may update the execution status data included in the job status data of the inquired job based on the result of the above inquiry.
  • the inquiry unit 36 changes the value of the execution status data included in the job status data of the job to "executing". You may update.
  • the inquiry unit 36 updates the value of the execution status data included in the job status data of the job to "normally ended”. good too.
  • the inquiry unit 36 updates the value of the execution status data included in the job status data of the job to "abnormal end”. good too.
  • the inquiry unit 36 outputs to the notification unit 28 a normal completion notification associated with the job ID of the job for which it has been confirmed that the job has been completed normally. Further, the inquiry unit 36 outputs an abnormal end notification associated with the job ID of the job to the notification unit 28 for the job confirmed to have ended abnormally.
  • the inquiry unit 36 may output to the notification unit 28 an abnormal end notification associated with the job ID of the job for which a timeout has occurred. For example, for a job that has not ended normally or abnormally even after a predetermined time has passed since the date and time indicated by the instruction date and time data, the inquiry unit 36 sends an abnormal end notification associated with the job ID of the job. can be output to In this case, the inquiry unit 36 may update the value of the execution status data included in the job status data of the job to "abnormal end".
  • the first inquiry unit 36a updates the execution status data included in the job status data of the inquired job as described above based on the result of the inquiry to the first job execution unit 14a. becomes.
  • the first inquiry unit 36a sends a normal completion notification associated with the job ID of the job for which the normal completion of the job is confirmed based on the result of the inquiry to the first job execution unit 14a. 28.
  • the first inquiry unit 36a sends an abnormal end notification associated with the job ID of a job that has been confirmed to have ended abnormally based on the result of the inquiry to the first job execution unit 14a. 28.
  • the first inquiry unit 36a outputs to the notification unit 28 an abnormal end notification associated with the job ID of the job whose execution has been instructed to the first job execution unit 14a and which has timed out.
  • the notification unit 28 notifies the OSS 10 of the success or failure of job execution determined based on the result of the inquiry by the inquiry unit 36 .
  • the notification unit 28 may transmit the normal end notification to the OSS 10 in response to reception of the normal end notification from the inquiry unit 36 .
  • the notification unit 28 may transmit the abnormal termination notification to the OSS 10 in response to reception of the abnormal termination notification from the inquiry unit 36 .
  • the OSS 10 may send a retry request for the abnormally terminated job to the job management system 12 in response to receiving the abnormal termination notification.
  • the OSS 10 sends an execution request, which is a retry request, to the job management system 12. It may be sent to system 12 .
  • an execution request which is a request, may be sent.
  • the switching unit 30 switches the output destination of the job execution request by the execution request output unit 24 .
  • the switching unit 30 may switch the output destination of the job execution request by the execution request output unit 24 in response to reception of a switching instruction signal from a terminal used by the administrator of the job management system 12 .
  • the first job execution unit 14a in operation may be switched to a different type of job execution unit 14 due to replacement or the like. Also, the first job execution unit 14a in operation may be switched to another job execution unit 14 having the same function due to version upgrade or the like.
  • FIG. 4 is a diagram showing an example of the job control system 1 after the job execution engine has been migrated. As shown in FIG. 4, the job control system 1 shows a second job execution section 14b, which is the job execution section 14 used after switching.
  • the second job execution unit 14b may be of a different type (different vendor) than the first job execution unit 14a.
  • the second job execution section 14b may be the same type of job execution section 14 as the first job execution section 14a and may be an upgraded version of the first job execution section 14a.
  • the second execution control section 32b and the second inquiry section 36b are newly activated.
  • the second execution control section 32b includes a second relay section 38b and a second client section 40b.
  • the switching unit 30 switches the output destination of the job execution request by the execution request output unit 24 from the first execution control unit 32a to the second execution control unit 32b.
  • the switching unit 30 causes the execution request output unit 24 to output the job execution request to the first execution control unit 32a.
  • the first relay unit 38a included in the first execution control unit 32a is stopped, and the switching process ends.
  • the job management system 12 may execute the switching process described above in response to reception of a switching instruction signal from a terminal used by the administrator of the job management system 12 .
  • the execution request output unit 24 acquires job data from the job data storage unit 22 and outputs the job data to the second execution control unit 32b.
  • the job execution request shown is output to the first execution control unit 32a.
  • the execution request output unit 24 acquires the job data from the job data storage unit 22, and executes the job indicated by the job data. is output to the second execution control unit 32b.
  • the second execution control section 32b instructs the second job execution section 14b to execute the job.
  • the execution request output unit 24 sends the job execution request to the second relay unit 38b included in the second execution control unit 32b. to output The second relay unit 38b then outputs this execution request to the second client unit 40b. Then, the second client unit 40b outputs a job execution instruction corresponding to the execution request to the second job execution unit 14b.
  • the second job execution unit 14b receives a job execution instruction from the second client unit 40b of the second execution control unit 32b, and executes the job.
  • the second job execution unit 14b may generate at least one new job execution request in response to acceptance of a job execution instruction, similar to the first job execution unit 14a. Then, the second job execution unit 14b may output an execution request for the newly generated at least one job to the execution request accepting unit 20.
  • FIG. 1 A block diagram illustrating an exemplary computing environment in accordance with the present disclosure.
  • the second job execution unit 14b may build the pod in response to receiving a pod construction request, similar to the first job execution unit 14a.
  • the second job execution unit 14b may output a pod deployment request to Kubernetes installed in the job management system 12 or Kubernetes installed in a cluster of an external data center. Then, the Kubernetes that receives the pod deployment request may deploy the pod.
  • job status data associated with the job may also be generated. good.
  • the second execution control section 32b may cause the job status data storage section 34 to store the generated job status data.
  • "002" corresponding to the second job execution section 14b is set.
  • the second relay unit 38b when the second relay unit 38b outputs a job execution request to the second client unit 40b, it also generates job status data associated with the job, and sends the generated job status data. It may be stored in the job status data storage unit 34 . In this case, the output date and time of the job execution request to the second client unit 40b may be set in the instruction date and time data included in the job status data.
  • the second client unit 40b When the second client unit 40b outputs a job execution instruction to the second job execution unit 14b, it also generates job status data associated with the job, and sends the generated job status data to the job status. It may be stored in the data storage section 34 . In this case, the output date and time of the job execution request to the second job execution unit 14b may be set in the instruction date and time data included in the job status data.
  • the format of the execution request (for example, data structure and format) that can be received by the first relay unit 38a and the format of the execution request that can be received by the second relay unit 38b may be the same.
  • the format of the execution request output by the execution request output unit 24 to the first relay unit 38a and the format of the execution request output to the second relay unit 38b may be the same.
  • the format of the execution request output by the execution request output unit 24 to the first relay unit 38a and the format of the execution request output to the second relay unit 38b may be different.
  • the format of the execution request that can be accepted by the first client unit 40a and the format of the execution request that can be accepted by the second client unit 40b may be the same.
  • the format of the execution request output by the first relay unit 38a to the first client unit 40a and the format of the execution request output by the second relay unit 38b to the second client unit 40b may be the same.
  • the first client unit 40a is, for example, a client module associated with the first job execution unit 14a. Output to the unit 14a.
  • the second client unit 40b is, for example, a client module associated with the second job execution unit 14b. Output to the unit 14b.
  • the second inquiry unit 36b is associated with the second job execution unit 14b.
  • the second job execution unit 14b may be inquired about the status of the job that the second job execution unit 14b has been instructed to execute.
  • the second inquiring unit 36b among the job status data stored in the job status data storage unit 34, asks the status of the job associated with the job status data whose engine ID value is "002". You may inquire to the 2-job execution unit 14b.
  • the second inquiry section 36b updates the execution status data included in the job status data of the inquired job as described above.
  • the second inquiry unit 36b sends a normal completion notification associated with the job ID of a job that has been confirmed to have ended normally based on the result of the inquiry to the second job execution unit 14b. 28. In addition, the second inquiry unit 36b sends an abnormal end notification associated with the job ID of a job that has been confirmed to have ended abnormally based on the result of the inquiry to the second job execution unit 14b. 28.
  • the second inquiry unit 36b outputs to the notification unit 28 an abnormal end notification associated with the job ID of the job whose execution has been instructed to the second job execution unit 14b and which has timed out.
  • the notification unit 28 determines the success or failure of the execution of the job determined based on the inquiry result by the first inquiry unit 36a as described above. OSS 10 is notified. Further, in the present embodiment, while the second inquiry unit 36b is inquiring, the notification unit 28 determines whether the execution of the job has been successful or not based on the result of the inquiry by the second inquiry unit 36b. OSS 10 is notified as follows.
  • the notification unit 28 makes a determination based on the result of the inquiry by the first inquiry unit 36a while the inquiry is made by both the first inquiry unit 36a and the second inquiry unit 36b.
  • the OSS 10 is notified of both the success or failure of the job execution and the success or failure of the job execution determined based on the result of the inquiry by the second inquiry unit 36b.
  • the first inquiry unit 36a transmits an abnormal termination notification for the job to the OSS 10 .
  • the OSS 10 transmits a retry request for the job to the job management system 12 .
  • job data indicating the job is stored in the job data storage unit 22 .
  • the execution request output unit 24 acquires the job data.
  • the execution request output unit 24 outputs a job execution request corresponding to the acquired job data to the second relay unit 38b included in the second execution control unit 32b.
  • the first job execution unit 14a is executed based on the result of the inquiry made by the first inquiry unit 36a to the first job execution unit 14a.
  • the execution request output unit 24 outputs the job execution request to the second execution control unit 32b.
  • the second execution control unit 32b generates job status data associated with the job, and causes the job status data storage unit 34 to store the generated job status data.
  • the job status data newly stored in this way is shown at the bottom.
  • the job ID value of this job status data is set to "0103", which is the same job ID as that of the abnormally terminated job.
  • the engine ID value of this job status data is set to "002", which is the value corresponding to the second job execution unit 14b.
  • the value of the local job ID of the job status data includes the identification of the job that is locally managed by the second job execution unit 14b and whose execution instruction has been received by the second job execution unit 14b. "0001" which is information is set.
  • the value of this local job ID is different from the local job ID of the job status data associated with the job executed by the first job execution unit 14a.
  • the first job execution unit 14a determines that the execution of an incomplete job has failed, it is not limited to the case where it is confirmed that the job ended abnormally as described above. .
  • the first job execution unit 14a has timed out an unfinished job, it corresponds to a case where the first job execution unit 14a determines that the execution of the unfinished job has failed. Therefore, in the present embodiment, even when a timeout occurs for an unfinished job in the first job execution unit 14a, the execution request output unit 24 similarly outputs the job execution request to the second execution control unit 32b. It will be done.
  • the first inquiry unit 36a determines the success or failure of execution of all the jobs that the first job execution unit 14a has been instructed to execute based on the result of the inquiry to the first job execution unit 14a. Terminate the inquiry accordingly.
  • the first inquiry unit 36a determines the success or failure of execution of all the jobs instructed to be executed by the first job execution unit 14a based on the result of the inquiry to the first job execution unit 14a. Depending on what is determined, it may stop itself.
  • the first inquiry unit 36a checks all the job status data stored in the job status data storage unit 34 and having an engine ID value of "001" (1) when the value of the execution status data is "normally completed”. , (2) the value of the execution status data is "abnormal end", or (3) a timeout has occurred for the corresponding job. Triggered by this detection, the first inquiry unit 36a may terminate the inquiry to the first job execution unit 14a. Then, the first inquiry unit 36a may stop itself.
  • the first inquiry unit 36a based on the result of the inquiry to the first job execution unit 14a, confirms that the first job execution unit 14a has been instructed to execute all the jobs, You can end the inquiry. For example, the first inquiry unit 36a searches all the job status data stored in the job status data storage unit 34 whose engine ID value is "001" (1) when the execution status data value is " It may be detected that either condition of (2) the value of the execution status data being "abnormal termination" is satisfied. Triggered by this detection, the first inquiry unit 36a may terminate the inquiry to the first job execution unit 14a. Then, the first inquiry unit 36a may stop itself.
  • the first inquiry unit 36a may terminate the inquiry to the first job execution unit 14a. Then, the first inquiry unit 36a may stop itself.
  • job data storage unit 22 may be implemented by, for example, Apache Kafka (trademark).
  • execution request output unit 24 may be implemented as a Kafka Consumer, for example.
  • the operation of the second job execution unit 14b can be started.
  • the execution request output unit 24 outputs the job execution request to the second execution control unit 32b without outputting the job execution request to the first execution control unit 32a.
  • the control unit 32b instructs the second job execution unit 14b to execute the job. Therefore, after the second job execution unit 14b starts operating, the first job execution unit 14a will not be instructed to execute a new job.
  • the The job execution request is output to the second job execution unit 14b instead of the first job execution unit 14a.
  • the first job execution unit 14a will not re-execute a job whose execution has failed in the first job execution unit 14a.
  • the unit 14a is released from executing this job. In this way, the job that the first job execution unit 14a has been instructed to execute before switching the job execution unit 14 is smoothly released from the first job execution unit 14a.
  • an abnormal end notification associated with the job ID of the job is output to the notification unit 28. You may choose not to do so.
  • an abnormal end notification associated with the job ID of the job may be prevented from being output to the notification unit 28. For example, if the number of consecutive failures of a job determined to have failed is equal to or less than a predetermined number of times, an abnormal termination notification associated with the job ID of the job is output to the notification unit 28. You may choose not to do so.
  • the execution request output unit 24 may output the job execution request to the execution control unit 32 without outputting the abnormal end notification to the notification unit 28 .
  • the execution request output section 24 will output the job execution request to the first execution control section 32a. After the output destination of the job execution request is switched to the second execution control unit 32b, the execution request output unit 24 outputs the job execution request to the second execution control unit 32b.
  • the execution request output unit 24 may output the job execution request to the second execution control unit 32b without the notification unit 28 notifying the OSS 10 that the job execution has failed. For example, if the number of consecutive failures of execution of the job is equal to or less than a predetermined number of times, the execution request output unit 24 does not output an abnormal end notification to the notification unit 28, and the execution request output unit 24 The job execution request may be output to the second execution control section 32b.
  • the job management system 12 may detect activation of the second job execution section 14b, which is the new job execution section 14. Then, the job management system 12 may activate the second execution control unit 32b and the second inquiry unit 36b in response to detection that the second job execution unit 14b has been activated. Also, the job management system 12 may detect activation of the second client unit 40b. Then, the job management system 12 may activate the second relay unit 38b and the second inquiry unit 36b in response to detection that the second client unit 40b has been activated.
  • the execution request output unit 24 acquires job data from the job data storage unit 22 (S101).
  • the execution request output unit 24 erases the job data acquired in the process shown in S101 from the job data storage unit 22 (S102).
  • the execution request output unit 24 outputs a job execution request corresponding to the job data acquired in the process shown in S101 to the relay unit 38 of the execution control unit 32 set as the output destination (S103).
  • the job execution request is output to the first relay unit 38a.
  • the job execution request is output to the second relay unit 38b.
  • the relay unit 38 that has received the job execution request in the process of S103 outputs the execution request to the client unit 40 (S104).
  • the job execution request is output from the first relay unit 38a to the first client unit 40a.
  • the job execution request is output from the second relay unit 38b to the second client unit 40b.
  • the relay unit 38 that has received the job execution request in the process of S103 generates job status data associated with the job, and stores this job status data in the job status data storage unit 34 (S105).
  • the client unit 40 that has received the job execution request in the processing shown in S104 outputs the job execution instruction to the job execution unit 14 (S106), and returns to the processing shown in S101.
  • the first client unit 40a outputs a job execution instruction to the first job execution unit 14a.
  • the second client unit 40b outputs a job execution instruction to the second job execution unit 14b.
  • the inquiry unit 36 identifies job status data including the engine ID associated with the job execution unit 14 associated with the inquiry unit 36 from among the job status data stored in the job status data storage unit 34. (S201).
  • the inquiry unit 36 selects one of the job status data specified in the process shown in S201 for which the processes shown in S203 to S209 have not been executed (S202).
  • the inquiry unit 36 determines whether or not the job associated with the job status data is the object of inquiry (S203).
  • the job may be determined to be an inquiry target.
  • the inquiry unit 36 associates the job status associated with the job status data selected in the process shown in S202 with the inquiry unit 36. (S204).
  • the inquiry unit 36 determines whether the status of the job has changed based on the result of the inquiry in the process shown in S204 (S205).
  • S205 it is determined whether or not there has been a change from not being executed to being executed, a change from being executed to normal termination, or a change from being being executed to abnormal termination. Further, in the process shown in S205, it is also determined whether or not the job has timed out.
  • the value of the execution status data of the job status data associated with the job is updated to the value corresponding to the status after the change (S206). For example, when it is confirmed that the job is running, the value of the execution status data is changed to "running". Also, when it is confirmed that the job has ended normally, the value of the execution status data is changed to "normally ended”. Further, when it is confirmed that the job has ended abnormally, the value of the execution status data is changed to "abnormally ended”. Here, when it is determined that the job has timed out in the process shown in S205, the value of the execution status data may be changed to "abnormal end".
  • the inquiry unit 36 determines whether or not the job has ended (S207). Here, for example, it is confirmed whether the value of the execution status data of the job status data associated with the job is "normally terminated” or "abnormally terminated.”
  • the inquiry unit 36 When it is determined that the job has ended (S207: Y), the inquiry unit 36 outputs an end notification associated with the job ID of the job to the notification unit 28 (S208). As described above, a normal end notification is output to the notification unit 28 when the job ends normally, and an abnormal end notification is output to the notification unit 28 when the job ends abnormally.
  • the notification unit 28 transmits to the OSS 10 the end notification input from the inquiry unit 36 in the processing shown in S208 (S209).
  • the inquiry unit 36 confirms whether or not the processes shown in S203 to S209 have been executed for all the job status data specified in the process shown in S201 (S210). If it is determined in the process of S203 that the job is not the inquiry target (S203: N), the process of S210 is also executed. Even if it is determined that the status of the job has not changed in the process shown in S205 (S205: N), the process shown in S210 is executed. Even if it is determined that the job has not ended in the process shown in S207 (S207: N), the process shown in S210 is executed.
  • the execution request output unit 24 sends the job execution request for retry to the relay unit 38 instead of executing the process shown in S208. You may perform processing to output to.
  • the inquiry unit 36 may hold data indicating the number of consecutive failures in execution of jobs with the same job ID. Then, if the number of consecutive failures of job execution is equal to or less than the predetermined number of times, instead of executing the process shown in S208 described above, the execution request output unit 24 outputs the relevant job execution request for retry. A process of outputting a job execution request to the relay unit 38 may be executed.
  • the processing shown in S201 to S210 is similarly executed in both the first inquiry unit 36a and the second inquiry unit 36b.
  • the first inquiry unit 36a confirms whether or not all jobs associated with the job status data specified in the process shown in S201 have ended. do.

Abstract

ジョブ実行部のシームレスな切替を可能にするジョブ管理システム及びその制御方法を提供する。切替部(30)は、第1ジョブ実行部(14a)で未完了のジョブが存在している際に、実行要求出力部(24)によるジョブの実行要求の出力先を第1実行制御部(32a)から第2実行制御部(32b)に切り替える。第1問い合わせ部(36a)は、第1ジョブ実行部(14a)に実行を指示したジョブの状況を第1ジョブ実行部(14a)に問い合わせる。ジョブの実行要求の出力先が第2実行制御部(32b)に切り替わった後に、問い合わせの結果に基づいて第1ジョブ実行部(14a)で未完了のジョブの実行が失敗したと判定される場合に、実行要求出力部(24)が、当該ジョブの実行要求を第2実行制御部(32b)に出力する。

Description

ジョブ管理システム及びその制御方法
 本発明は、ジョブ管理システム及びその制御方法に関する。
 ネットワークサービスの購入に応じた機能ユニット群の構築に関する技術の一例として、特許文献1には、顧客が購入した製品のオーダを、VNF(Virtualized Network Function)単位に分解し、NFVI(Network Functions Virtualization Infrastructure)上にデプロイする技術が記載されている。
 また、ワークフローエンジン等のジョブ実行部に上述したようなVNFのデプロイ等のジョブを実行させる技術が知られている。
国際公開第2018/181826号
 例えばリプレースなどによって運用しているジョブ実行部を異なる種類のジョブ実行部に切り替えることがある。また、バージョンアップなどによって運用しているジョブ実行部を同機能の別のジョブ実行部に切り替えることがある。
 このようなジョブ実行部の切替が行われる際には、特許文献1に記載の技術を用いても、ジョブ実行部の切替が終わるまでジョブの実行を中断する必要があった。
 本発明は上記実情に鑑みてなされたものであって、その目的の一つは、ジョブ実行部のシームレスな切替を可能にするジョブ管理システム及びその制御方法を提供することにある。
 上記課題を解決するために、本発明に係るジョブ管理システムは、ジョブの実行要求の受付に応じて、当該ジョブの実行を第1のジョブ実行部に指示する第1の実行制御手段と、ジョブの実行要求の受付に応じて、当該ジョブの実行を第2のジョブ実行部に指示する第2の実行制御手段と、ジョブの実行要求を順次前記第1の実行制御手段に出力する実行要求出力手段と、前記第1のジョブ実行部で未完了のジョブが存在している際に、前記実行要求出力手段によるジョブの実行要求の出力先を前記第1の実行制御手段から前記第2の実行制御手段に切り替える切替手段と、前記第1のジョブ実行部に実行を指示したジョブの状況を前記第1のジョブ実行部に問い合わせる第1の問い合わせ手段と、ジョブの実行要求の出力先が前記第2の実行制御手段に切り替わった後に、前記問い合わせの結果に基づいて前記第1のジョブ実行部で未完了のジョブの実行が失敗したと判定される場合に、前記実行要求出力手段が、当該ジョブの実行要求を前記第2の実行制御手段に出力する。
 本発明の一態様では、前記第1の問い合わせ手段は、前記問い合わせの結果に基づいて前記第1のジョブ実行部に実行を指示したすべてのジョブについて実行の成否が判定されたことに応じて、前記問い合わせを終了する。
 あるいは、前記第1の問い合わせ手段は、前記問い合わせの結果に基づいて前記第1のジョブ実行部に実行を指示したすべてのジョブの実行の終了が確認されたことに応じて、前記問い合わせを終了する。
 また、本発明の一態様では、オペレーションサポートシステムからジョブの実行要求を受け付ける実行要求受付手段と、前記ジョブを示すジョブデータを記憶するジョブデータ記憶手段と、をさらに含み、前記実行要求出力手段は、前記ジョブデータ記憶手段に記憶されている前記ジョブデータを順次取得し、前記実行要求出力手段は、ジョブの実行要求の出力先が前記第2の実行制御手段に切り替わる前は、前記ジョブデータ記憶手段からの前記ジョブデータの取得に応じて、当該ジョブデータが示すジョブの実行要求を前記第1の実行制御手段に出力し、前記実行要求出力手段は、ジョブの実行要求の出力先が前記第2の実行制御手段に切り替わった後は、前記ジョブデータ記憶手段からの前記ジョブデータの取得に応じて、当該ジョブデータが示すジョブの実行要求を前記第2の実行制御手段に出力する。
 この態様では、前記問い合わせの結果に基づいて判定されるジョブの実行の成否を前記オペレーションサポートシステムに通知する通知手段、をさらに含んでもよい。
 さらに、前記第2のジョブ実行部に実行を指示したジョブの状況を前記第2のジョブ実行部に問い合わせる第2の問い合わせ手段、をさらに含み、前記通知手段は、前記第1の問い合わせ手段と前記第2の問い合わせ手段の両方による問い合わせが行われている間は、前記第1の問い合わせ手段による問い合わせの結果に基づいて判定されるジョブの実行の成否、及び、前記第2の問い合わせ手段による問い合わせの結果に基づいて判定されるジョブの実行の成否を前記オペレーションサポートシステムに通知してもよい。
 また、ジョブの実行要求の出力先が前記第2の実行制御手段に切り替わった後に、前記問い合わせの結果に基づいて前記第1のジョブ実行部で未完了のジョブの実行が失敗したと判定される場合に、前記通知手段が当該ジョブの実行が失敗したことを前記オペレーションサポートシステムに通知することなく、前記実行要求出力手段が、当該ジョブの実行要求を前記第2の実行制御手段に出力してもよい。
 また、本発明に係るジョブ管理システムの制御方法は、ジョブの実行要求の受付に応じて、当該ジョブの実行を第1のジョブ実行部に指示する第1の実行制御手段と、ジョブの実行要求の受付に応じて、当該ジョブの実行を第2のジョブ実行部に指示する第2の実行制御手段と、を含むジョブ管理システムの制御方法であって、ジョブの実行要求を順次前記第1の実行制御手段に出力するステップと、前記第1のジョブ実行部で未完了のジョブが存在している際に、ジョブの実行要求の出力先を前記第1の実行制御手段から前記第2の実行制御手段に切り替えるステップと、前記第1のジョブ実行部に実行を指示したジョブの状況を前記第1のジョブ実行部に問い合わせるステップと、ジョブの実行要求の出力先が前記第2の実行制御手段に切り替わった後に、前記問い合わせの結果に基づいて前記第1のジョブ実行部で未完了のジョブの実行が失敗したと判定される場合に、当該ジョブの実行要求を前記第2の実行制御手段に出力するステップと、を含む。
ジョブ制御システムの一例を示す図である。 ジョブ管理システムの構成の一例を示す図である。 ジョブ状況データの一例を示す図である。 ジョブ制御システムの一例を示す図である。 ジョブ状況データの一例を示す図である。 ジョブ制御システムの一例を示す図である。 ジョブ管理システムで実行される処理の流れの一例を示すフローチャートである。 ジョブ管理システムで実行される処理の流れの一例を示すフローチャートである。
 以下、本発明の一実施形態について図面に基づき詳細に説明する。
 図1は、本発明の一実施形態に係るジョブ制御システム1の一例を示す図である。図1に示すように、本実施形態に係るジョブ制御システム1には、オペレーションサポートシステム(OSS)10、ジョブ管理システム12、ジョブ実行部14、が含まれる。図1には、ジョブ制御システム1に含まれるジョブ実行部14の一例として、第1ジョブ実行部14aが示されている。
 図1に示すように、ジョブ管理システム12には、実行要求受付部20、ジョブデータ記憶部22、実行要求出力部24、抽象化レイヤ26、通知部28、切替部30、が含まれる。そして、抽象化レイヤ26には、実行制御部32、ジョブ状況データ記憶部34、問い合わせ部36、が含まれる。そして、実行制御部32には、中継部38、及び、クライアント部40が含まれる。図1には、ジョブ制御システム1に含まれる実行制御部32の一例として、第1実行制御部32aが示されている。また、問い合わせ部36の一例として、第1問い合わせ部36aが示されている。また、中継部38の一例として、第1中継部38aが示されている。また、クライアント部40の一例として、第1クライアント部40aが示されている。
 本実施形態に係るOSS10や、ジョブ管理システム12は、コンテナ化されたアプリケーションを実行するノード(コンピュータ、サーバとも言える)のクラスタが構築されたクラウド基盤等のコンピュータシステムである。
 本実施形態に係るジョブ管理システム12や、ジョブ実行部14が、例えば、移動通信事業者のデータセンタであるセントラルデータセンタ(CDC)に構築されたクラスタであってもよい。
 また、本実施形態に係るクラスタは、例えば、コンテナ化されたワークロードやサービスを管理するソフトウェア(具体的には例えばクバネテス)がインストールされたノードのセットである。また、本実施形態に係るクラスタは、例えば、クバネテスがコンテナ化されたアプリケーションであるpodを管理可能な範囲を定めたクバネテスクラスタである。クバネテスクラスタは、クバネテスがpodをデプロイ可能な複数のノードのセットであるとも言える。
 図2は、本実施形態に係るジョブ管理システム12の構成の一例を示す図である。図2に示すように、本実施形態に係るジョブ管理システム12には、例えば、プロセッサ50、記憶部52、通信部54が含まれる。プロセッサ50は、例えば、ジョブ管理システム12にインストールされるプログラムに従って動作するマイクロプロセッサ等のプログラム制御デバイスである。記憶部52は、例えば、ROMやRAM等の記憶素子や、ソリッドステートドライブ(SSD)、ハードディスクドライブ(HDD)などである。記憶部52には、プロセッサ50によって実行されるプログラムなどが記憶される。通信部54は、例えば、NIC(Network Interface Card)や無線LANモジュールなどといった通信インタフェースである。なお、通信部54において、SDN(Software-Defined Networking)が実装されていてもよい。通信部54は、OSS10、外部のデータセンタ(リージョナルデータセンタ(RDC)やエッジデータセンタなど)に構築されたクラスタ、などとの間でデータを授受する。
 実行要求受付部20は、プロセッサ50と通信部54を主として実装される。ジョブデータ記憶部22、ジョブ状況データ記憶部34は、記憶部52を主として実装される。実行要求出力部24、実行制御部32、問い合わせ部36、切替部30は、プロセッサ50、記憶部52、通信部54を主として実装される。通知部28は、通信部54を主として実装される。
 以上の機能は、コンピュータであるジョブ管理システム12にインストールされた、以上の機能に対応する指令を含むプログラムをプロセッサ50で実行することにより実装されてもよい。このプログラムは、例えば、光ディスク、磁気ディスク、磁気テープ、光磁気ディスク、フラッシュメモリ等のコンピュータ読み取り可能な情報記憶媒体を介して、あるいは、インターネットなどを介してジョブ管理システム12に供給されてもよい。
 本実施形態に係るOSS10は、例えば、ジョブの実行要求をジョブ管理システム12に送信する。すると、ジョブ管理システム12の実行要求受付部20が、OSS10から、この実行要求を受け付ける。当該ジョブの一例としては、ネットワークサービス(NS)を構築するジョブなどが挙げられる。ジョブの実行要求は、OSS10の管理者やユーザの指示に従ってジョブ管理システム12に送信されてもよい。
 そして、実行要求受付部20は、本実施形態では例えば、受け付けた実行要求に応じた、実行対象のジョブを示すジョブデータを生成して、ジョブデータ記憶部22に出力する。
 ジョブデータ記憶部22は、本実施形態では例えば、実行対象のジョブを示すジョブデータを記憶する。例えば、ジョブデータ記憶部22は、実行要求受付部20から出力されるジョブデータを受け付けて、記憶する。
 例えば、本実施形態に係るジョブデータが、第4世代移動通信システム(4G)や、第5世代移動通信システム(5G)に含まれる要素を構築するジョブを示すデータであってもよい。より具体的には例えば、ジョブデータが、4Gや5Gの通信システムに含まれる、NS、ネットワークファンクション(NF)、CNFC(Containerized Network Function Component)、podなどの要素を構築するジョブを示すデータであってもよい。そして、ジョブデータが、当該要素が構築されるロケーションを示すロケーションデータを含んでいてもよい。
 実行要求出力部24は、本実施形態では例えば、ジョブデータ記憶部22に記憶されているジョブデータを順次取得する。また、実行要求出力部24は、ジョブデータ記憶部22からジョブデータを取得すると、当該ジョブデータをジョブデータ記憶部22から消去する。
 そして、実行要求出力部24は、本実施形態では例えば、ジョブの実行要求を順次実行制御部32に出力する。図1の例では、実行要求出力部24は、ジョブの実行要求を順次第1実行制御部32aに出力する。実行要求出力部24は、本実施形態では例えば、ジョブデータ記憶部22から取得されるジョブデータに応じたジョブの実行要求を、実行制御部32に出力する。本実施形態では例えば、ジョブデータ記憶部22に複数のジョブデータが記憶されている場合には、実行要求出力部24は、これら複数のジョブデータについて、当該ジョブデータに応じたジョブの実行要求を、順次、実行制御部32に出力する。
 そして、実行制御部32は、本実施形態では例えば、ジョブの実行要求の受付に応じて、当該ジョブの実行をジョブ実行部14に指示する。図1の例では、第1実行制御部32aが、ジョブの実行要求の受付に応じて、当該ジョブの実行を第1ジョブ実行部14aに指示する。
 本実施形態では例えば、実行要求出力部24は、第1実行制御部32aに含まれる第1中継部38aにジョブの実行要求を出力する。そして、第1中継部38aは、第1クライアント部40aに、この実行要求を出力する。そして、第1クライアント部40aが、この実行要求に応じたジョブの実行指示を第1ジョブ実行部14aに出力する。
 ジョブ実行部14は、本実施形態では例えば、実行制御部32からジョブの実行指示を受け付けて、当該ジョブを実行する。ジョブ実行部14は、ワークフローエンジンなどのジョブ実行エンジンを含んで実装されていてもよい。
 ここで、本実施形態において、ジョブ実行部14が、ジョブの実行指示の受付に応じて、少なくとも1つの新たなジョブの実行要求を生成してもよい。例えば、NSの構築要求の受付に応じて、当該NSに含まれる複数のNFの構築要求を生成してもよい。また、NFの構築要求の受付に応じて、当該NFに含まれる複数のCNFC(Containerized Network Function Component)の構築要求を生成してもよい。また、CNFCの構築要求の受付に応じて、当該CNFCに含まれる複数のpodの構築要求を生成してもよい。
 そして、ジョブ実行部14は、新たに生成された少なくとも1つのジョブの実行要求を実行要求受付部20に出力してもよい。
 また、ジョブ実行部14は、例えば、podの構築要求の受付に応じて、当該podを構築してもよい。ここで例えば、ジョブ実行部14が、ジョブ管理システム12にインストールされているクバネテスや外部のデータセンタのクラスタにインストールされているクバネテスにpodのデプロイ要求を出力してもよい。そしてpodのデプロイ要求を受け付けたクバネテスが当該podをデプロイしてもよい。
 図1の例では、第1ジョブ実行部14aが、第1実行制御部32aの第1クライアント部40aからジョブの実行指示を受け付けて、当該ジョブを実行することとなる。
 ジョブ状況データ記憶部34は、本実施形態では例えば、ジョブ実行部14に実行を指示したジョブの状況を示すジョブ状況データを記憶する。
 図3は、ジョブ状況データの一例を示す図である。図3に示すように、本実施形態に係るジョブ状況データには、例えば、ジョブID、エンジンID、ローカルジョブID、実行状況データ、指示日時データ、などが含まれる。
 ジョブ状況データは、ジョブ管理システム12がOSS10から受け付けた実行要求に応じて、ジョブ実行部14に実行を指示したジョブに対応付けられるデータである。
 ジョブIDは、本実施形態では例えば、OSS10から実行要求を受け付けたジョブに対して一意に割り当てられるジョブの識別情報である。例えば、OSS10から受け付ける実行要求に関連付けられているジョブの識別情報が当該ジョブに対応付けられるジョブ状況データのジョブIDとして設定されてもよい。
 エンジンIDは、本実施形態では例えば、当該ジョブの実行の指示先であるジョブ実行部14の識別情報である。図1の例では、ジョブ管理システム12は、第1ジョブ実行部14aだけにジョブの実行を指示することとなる。そのため、図3の例では、すべてのジョブ状況データのエンジンIDとして、第1ジョブ実行部14aに対応する値である「001」が設定されている。
 ローカルジョブIDは、本実施形態では例えば、ジョブ実行部14でローカルに管理されている、当該ジョブ実行部14が実行指示を受け付けたジョブの識別情報である。ローカルジョブIDの値としてジョブIDと同じ値が設定されてもよい。
 実行状況データは、本実施形態では例えば、ジョブ実行部14に実行を指示したジョブの実行状況を示すデータである。図3には、正常終了したことを示す「正常終了」、異常終了したことを示す「異常終了」、実行中であることを示す「実行中」、未実行であることを示す「未実行」が、実行状況データの値として例示されている。実行状況データの値は、これらの例には限定されない。実行状況データの値は、後述するように、問い合わせ部36による問い合わせの結果に基づいて、適宜更新される。
 指示日時データは、本実施形態では例えば、当該ジョブの実行指示の日時を示すデータである。
 本実施形態では例えば、実行制御部32が、ジョブの実行指示をジョブ実行部14に出力する際に、併せて、当該ジョブに対応付けられるジョブ状況データを生成してもよい。そして、実行制御部32は、生成されたジョブ状況データをジョブ状況データ記憶部34に記憶させてもよい。
 図1の例では、第1実行制御部32aが、ジョブの実行指示を第1ジョブ実行部14aに出力する際に、併せて、当該ジョブに対応付けられるジョブ状況データを生成してもよい。そして、第1実行制御部32aは、生成されたジョブ状況データをジョブ状況データ記憶部34に記憶させてもよい。
 ここで例えば、第1中継部38aが、第1クライアント部40aにジョブの実行要求を出力する際に、併せて、当該ジョブに対応付けられるジョブ状況データを生成し、生成されるジョブ状況データをジョブ状況データ記憶部34に記憶させてもよい。この場合、ジョブ状況データに含まれる指示日時データには、第1クライアント部40aへのジョブの実行要求の出力日時が設定されてもよい。
 なお、第1クライアント部40aがジョブの実行指示を第1ジョブ実行部14aに出力する際に、併せて、当該ジョブに対応付けられるジョブ状況データを生成し、生成されるジョブ状況データをジョブ状況データ記憶部34に記憶させてもよい。この場合、ジョブ状況データに含まれる指示日時データには、第1ジョブ実行部14aへのジョブの実行要求の出力日時が設定されてもよい。
 問い合わせ部36は、本実施形態では例えば、ジョブ実行部14に実行を指示したジョブの状況を当該ジョブ実行部14に問い合わせる。問い合わせ部36は、例えば、所定時間間隔で、ジョブ実行部14への問い合わせを行ってもよい。
 また、図1に示すように、問い合わせ部36は、クライアント部40を経由して、ジョブ実行部14に実行を指示したジョブの状況を問い合わせてもよい。例えば、問い合わせ部36は、クライアント部40に状況を問い合わせるジョブのジョブIDを送信してもよい。そして、クライアント部40が、ジョブ実行部14にアクセスして当該ジョブIDに対応するジョブの状況を特定してもよい。そして、クライアント部40が、特定されたジョブの状況を示すデータを問い合わせ部36に送信してもよい。
 本実施形態に係る問い合わせ部36は、ジョブ実行部14に対応付けられている。そして、問い合わせ部36は、当該問い合わせ部36に対応付けられるジョブ実行部14に対応付けられるエンジンIDを含むジョブ状況データを特定する。そして、問い合わせ部36は、特定されるジョブ状況データが示すジョブの状況を、当該問い合わせ部36に対応付けられるジョブ実行部14に問い合わせる。
 例えば、問い合わせ部36は、未完了であることを示す実行状況データを含むジョブ状況データに対応付けられるジョブの状況を、当該問い合わせ部36に対応付けられるジョブ実行部14に問い合わせてもよい。ここで、未完了であることを示す実行状況データとは、図3の例では、例えば、値が「未実行」又は「実行中」である実行状況データを指す。
 例えば、図1の例において、第1問い合わせ部36aが、第1ジョブ実行部14aに対応付けられていることとする。この場合、第1問い合わせ部36aが、第1ジョブ実行部14aに実行を指示したジョブの状況を第1ジョブ実行部14aに問い合わせてもよい。例えば、第1問い合わせ部36aが、ジョブ状況データ記憶部34に記憶されているジョブ状況データのうちの、エンジンIDの値が「001」であるジョブ状況データに対応付けられるジョブの状況を、第1ジョブ実行部14aに問い合わせてもよい。
 そして、問い合わせ部36は、上述の問い合わせの結果に基づいて、問い合わせたジョブのジョブ状況データに含まれる実行状況データを更新してもよい。
 例えば、問い合わせ部36は、未実行であったジョブが実行中となっていたことが確認されたことに応じて、当該ジョブのジョブ状況データに含まれる実行状況データの値を「実行中」に更新してもよい。
 また、問い合わせ部36は、実行中であったジョブが正常終了したことが確認されたことに応じて、当該ジョブのジョブ状況データに含まれる実行状況データの値を「正常終了」に更新してもよい。
 また、問い合わせ部36は、実行中であったジョブが異常終了したことが確認されたことに応じて、当該ジョブのジョブ状況データに含まれる実行状況データの値を「異常終了」に更新してもよい。
 また、問い合わせ部36は、正常終了したことが確認されたジョブについては、当該ジョブのジョブIDが関連付けられた正常終了通知を通知部28に出力する。また、問い合わせ部36は、異常終了したことが確認されたジョブについては、当該ジョブのジョブIDが関連付けられた異常終了通知を通知部28に出力する。
 また、問い合わせ部36は、タイムアウトが発生したジョブについて、当該ジョブのジョブIDが関連付けられた異常終了通知を通知部28に出力してもよい。例えば、問い合わせ部36は、指示日時データが示す日時から所定時間が経過しても正常終了又は異常終了となっていないジョブについては、当該ジョブのジョブIDが関連付けられた異常終了通知を通知部28に出力してもよい。この場合、問い合わせ部36は、当該ジョブのジョブ状況データに含まれる実行状況データの値を「異常終了」に更新してもよい。
 本実施形態では、第1問い合わせ部36aが、第1ジョブ実行部14aへの問い合わせの結果に基づいて、上述のようにして、問い合わせたジョブのジョブ状況データに含まれる実行状況データを更新することとなる。
 そして、第1問い合わせ部36aが、第1ジョブ実行部14aへの問い合わせの結果に基づいて正常終了したことが確認されたジョブについては、当該ジョブのジョブIDが関連付けられた正常終了通知を通知部28に出力する。また、第1問い合わせ部36aは、第1ジョブ実行部14aへの問い合わせの結果に基づいて異常終了したことが確認されたジョブについては、当該ジョブのジョブIDが関連付けられた異常終了通知を通知部28に出力する。
 また、第1問い合わせ部36aは、第1ジョブ実行部14aに実行を指示したジョブであってタイムアウトが発生したジョブについて、当該ジョブのジョブIDが関連付けられた異常終了通知を通知部28に出力してもよい。
 通知部28は、本実施形態では例えば、問い合わせ部36による問い合わせの結果に基づいて判定されるジョブの実行の成否をOSS10に通知する。ここで通知部28は、問い合わせ部36からの正常終了通知の受付に応じて、当該正常終了通知をOSS10に送信してもよい。また、通知部28は、問い合わせ部36からの異常終了通知の受付に応じて、当該異常終了通知をOSS10に送信してもよい。
 OSS10は、異常終了通知の受信に応じて、異常終了したジョブのリトライ要求をジョブ管理システム12に送信してもよい。
 また、OSS10は、ジョブの実行要求をジョブ管理システム12に送信してから所定のタイムアウト期間が経過しても当該ジョブの終了が確認されない場合に、当該ジョブのリトライ要求である実行要求をジョブ管理システム12に送信してもよい。例えば、ジョブの実行要求をジョブ管理システム12に送信してから所定のタイムアウト期間が経過しても当該ジョブについての上述の正常終了通知も異常終了通知も受信していない場合に、当該ジョブのリトライ要求である実行要求が送信されるようにしてもよい。
 切替部30は、本実施形態では例えば、実行要求出力部24によるジョブの実行要求の出力先を切り替える。ここで、切替部30は、ジョブ管理システム12の管理者が使用する端末からの切替指示信号の受付に応じて、実行要求出力部24によるジョブの実行要求の出力先を切り替えてもよい。
 図1に示すジョブ制御システム1の運用中に、リプレースなどによって運用している第1ジョブ実行部14aを異なる種類のジョブ実行部14に切り替えることがある。また、バージョンアップなどによって運用している第1ジョブ実行部14aを同機能の別のジョブ実行部14に切り替えることがある。
 以下、本実施形態における上述のようなジョブ実行部14の切替に係る切替処理の一例について説明する。
 図4は、ジョブ実行エンジンが移行された後のジョブ制御システム1の一例を示す図である。図4に示すように、ジョブ制御システム1には、切替後に用いられるジョブ実行部14である第2ジョブ実行部14bが示されている。
 第2ジョブ実行部14bは、例えば、第1ジョブ実行部14aとは異なる種類(異なるベンダ)のものであってもよい。また、第2ジョブ実行部14bは、第1ジョブ実行部14aと同種類のジョブ実行部14であって第1ジョブ実行部14aをバージョンアップしたものであってもよい。
 切替処理では、まず、図4に示すように、ジョブ管理システム12で、第2実行制御部32b、及び、第2問い合わせ部36bが新たに起動される。図4に示すように、第2実行制御部32bには、第2中継部38bと、第2クライアント部40bと、が含まれる。
 そして、切替部30が、実行要求出力部24によるジョブの実行要求の出力先を第1実行制御部32aから第2実行制御部32bに切り替える。本実施形態では、切替部30は、第1ジョブ実行部14aで未完了のジョブが存在している際に、実行要求出力部24によるジョブの実行要求の出力先を第1実行制御部32aから第2実行制御部32bに切り替える。すなわち、ジョブ状況データ記憶部34に記憶されているジョブ状況データに、エンジンIDの値が「001」であって、実行状況データの値が「未実行」又は「実行中」であるものが存在している際に、ジョブの実行要求の出力先が切り替わることとなる。
 そして、図4に示すように、第1実行制御部32aに含まれる第1中継部38aが停止され、切替処理は終了する。
 本実施形態において、ジョブ管理システム12の管理者が使用する端末からの切替指示信号の受付に応じて、ジョブ管理システム12が、以上で説明した切替処理を実行してもよい。
 上述のように、実行要求出力部24は、ジョブの実行要求の出力先が第2実行制御部32bに切り替わる前は、ジョブデータ記憶部22からのジョブデータの取得に応じて、当該ジョブデータが示すジョブの実行要求を第1実行制御部32aに出力する。
 そして、実行要求出力部24は、ジョブの実行要求の出力先が第2実行制御部32bに切り替わった後は、ジョブデータ記憶部22からのジョブデータの取得に応じて、当該ジョブデータが示すジョブの実行要求を第2実行制御部32bに出力することとなる。そして、第2実行制御部32bは、ジョブの実行要求の受付に応じて、当該ジョブの実行を第2ジョブ実行部14bに指示する。
 ここでは例えば、ジョブの実行要求の出力先が第2実行制御部32bに切り替わった後は、実行要求出力部24は、第2実行制御部32bに含まれる第2中継部38bにジョブの実行要求を出力する。そして、第2中継部38bは、第2クライアント部40bに、この実行要求を出力する。そして、第2クライアント部40bが、この実行要求に応じたジョブの実行指示を第2ジョブ実行部14bに出力する。
 そして、第2ジョブ実行部14bが、第2実行制御部32bの第2クライアント部40bからジョブの実行指示を受け付けて、当該ジョブを実行することとなる。
 上述のように、第2ジョブ実行部14bは、第1ジョブ実行部14aと同様に、ジョブの実行指示の受付に応じて、少なくとも1つの新たなジョブの実行要求を生成してもよい。そして、第2ジョブ実行部14bは、新たに生成された少なくとも1つのジョブの実行要求を実行要求受付部20に出力してもよい。
 また、第2ジョブ実行部14bは、第1ジョブ実行部14aと同様に、podの構築要求の受付に応じて、当該podを構築してもよい。ここで例えば、第2ジョブ実行部14bが、ジョブ管理システム12にインストールされているクバネテスや外部のデータセンタのクラスタにインストールされているクバネテスにpodのデプロイ要求を出力してもよい。そしてpodのデプロイ要求を受け付けたクバネテスが当該podをデプロイしてもよい。
 そして、図4の例では、第2実行制御部32bが、ジョブの実行指示を第2ジョブ実行部14bに出力する際に、併せて、当該ジョブに対応付けられるジョブ状況データを生成してもよい。そして、第2実行制御部32bは、生成されたジョブ状況データをジョブ状況データ記憶部34に記憶させてもよい。以下、このようにしてジョブ状況データ記憶部34に記憶されるジョブ状況データのエンジンIDとして、第2ジョブ実行部14bに対応する値である「002」が設定されることとする。
 ここで例えば、第2中継部38bが、第2クライアント部40bにジョブの実行要求を出力する際に、併せて、当該ジョブに対応付けられるジョブ状況データを生成し、生成されるジョブ状況データをジョブ状況データ記憶部34に記憶させてもよい。この場合、ジョブ状況データに含まれる指示日時データには、第2クライアント部40bへのジョブの実行要求の出力日時が設定されてもよい。
 なお、第2クライアント部40bがジョブの実行指示を第2ジョブ実行部14bに出力する際に、併せて、当該ジョブに対応付けられるジョブ状況データを生成し、生成されるジョブ状況データをジョブ状況データ記憶部34に記憶させてもよい。この場合、ジョブ状況データに含まれる指示日時データには、第2ジョブ実行部14bへのジョブの実行要求の出力日時が設定されてもよい。
 本実施形態において、第1中継部38aが受付可能な実行要求の形式(例えば、データ構造やフォーマット)と、第2中継部38bが受付可能な実行要求の形式は同じであってもよい。そして、実行要求出力部24が第1中継部38aに出力する実行要求の形式と、第2中継部38bに出力する実行要求の形式は同じであってもよい。
 また、実行要求出力部24が第1中継部38aに出力する実行要求の形式と、第2中継部38bに出力する実行要求の形式は異なっていてもよい。
 また、本実施形態において、第1クライアント部40aが受付可能な実行要求の形式と、第2クライアント部40bが受付可能な実行要求の形式は同じであってもよい。そして、第1中継部38aが第1クライアント部40aに出力する実行要求の形式と、第2中継部38bが第2クライアント部40bに出力する実行要求の形式は同じであってもよい。
 また、本実施形態では、第1クライアント部40aは、例えば、第1ジョブ実行部14aに対応付けられるクライアントモジュールであり、第1ジョブ実行部14aが受付可能な形式の実行指示を第1ジョブ実行部14aに出力する。
 また、本実施形態では、第2クライアント部40bは、例えば、第2ジョブ実行部14bに対応付けられるクライアントモジュールであり、第2ジョブ実行部14bが受付可能な形式の実行指示を第2ジョブ実行部14bに出力する。
 また、本実施形態に係る第2問い合わせ部36bは、第2ジョブ実行部14bに対応付けられていることとする。この場合、第2ジョブ実行部14bに実行を指示したジョブの状況を第2ジョブ実行部14bに問い合わせてもよい。例えば、第2問い合わせ部36bが、ジョブ状況データ記憶部34に記憶されているジョブ状況データのうちの、エンジンIDの値が「002」であるジョブ状況データに対応付けられるジョブの状況を、第2ジョブ実行部14bに問い合わせてもよい。
 そして、第2問い合わせ部36bは、第2ジョブ実行部14bへの問い合わせの結果に基づいて、上述のようにして、問い合わせたジョブのジョブ状況データに含まれる実行状況データを更新する。
 また、第2問い合わせ部36bは、第2ジョブ実行部14bへの問い合わせの結果に基づいて正常終了したことが確認されたジョブについては、当該ジョブのジョブIDが関連付けられた正常終了通知を通知部28に出力する。また、第2問い合わせ部36bは、第2ジョブ実行部14bへの問い合わせの結果に基づいて異常終了したことが確認されたジョブについては、当該ジョブのジョブIDが関連付けられた異常終了通知を通知部28に出力する。
 また、第2問い合わせ部36bは、第2ジョブ実行部14bに実行を指示したジョブであってタイムアウトが発生したジョブについて、当該ジョブのジョブIDが関連付けられた異常終了通知を通知部28に出力してもよい。
 通知部28は、本実施形態では、第1問い合わせ部36aによる問い合わせが行われている間は、第1問い合わせ部36aによる問い合わせの結果に基づいて判定されるジョブの実行の成否を上述のようにOSS10に通知する。また、通知部28は、本実施形態では、第2問い合わせ部36bによる問い合わせが行われている間は、第2問い合わせ部36bによる問い合わせの結果に基づいて判定されるジョブの実行の成否を上述のようにOSS10に通知する。
 そして、本実施形態に係る通知部28は、第1問い合わせ部36aと第2問い合わせ部36bの両方による問い合わせが行われている間は、第1問い合わせ部36aによる問い合わせの結果に基づいて判定されるジョブの実行の成否、及び、第2問い合わせ部36bによる問い合わせの結果に基づいて判定されるジョブの実行の成否の両方をOSS10に通知する。
 本実施形態において例えば、ジョブの実行要求の出力先が第2実行制御部32bに切り替わった後に、第1問い合わせ部36aによって、図3に示すように、ジョブIDが「0103」であるジョブについて、異常終了となったことが確認されたとする。そして、通知部28が、当該ジョブについての異常終了通知をOSS10に送信したとする。そして、OSS10が当該ジョブのリトライ要求をジョブ管理システム12に送信したとする。そして、当該ジョブを示すジョブデータがジョブデータ記憶部22に記憶されたとする。そして、実行要求出力部24が、当該ジョブデータを取得したとする。
 この場合、本実施形態では、実行要求出力部24は、取得されるジョブデータに応じたジョブの実行要求を、第2実行制御部32bに含まれる第2中継部38bに出力する。
 このように本実施形態では、ジョブの実行要求の出力先が第2実行制御部32bに切り替わった後に、第1問い合わせ部36aによる第1ジョブ実行部14aへの問い合わせの結果に基づいて第1ジョブ実行部14aで未完了のジョブの実行が失敗したと判定される場合に、実行要求出力部24は、当該ジョブの実行要求を第2実行制御部32bに出力することとなる。
 また、併せて、上述のように、第2実行制御部32bは、当該ジョブに対応付けられるジョブ状況データを生成し、生成されるジョブ状況データをジョブ状況データ記憶部34に記憶させる。
 図5には、このようにして新たに記憶されたジョブ状況データが一番下に示されている。このジョブ状況データのジョブIDの値には、異常終了したジョブと同じジョブIDである「0103」が設定されている。そして、このジョブ状況データのエンジンIDの値には、第2ジョブ実行部14bに対応する値である「002」が設定されている。
 また、図5の例では、このジョブ状況データのローカルジョブIDの値には、第2ジョブ実行部14bでローカルに管理されている、第2ジョブ実行部14bが実行指示を受け付けたジョブの識別情報である「0001」が設定されている。図5の例では、このローカルジョブIDの値は、第1ジョブ実行部14aで実行された当該ジョブに対応付けられるジョブ状況データのローカルジョブIDとは異なる値となっている。
 なお、本実施形態において、第1ジョブ実行部14aで未完了のジョブの実行が失敗したと判定される場合は、上述のようにジョブが異常終了となったことが確認された場合に限定されない。例えば、第1ジョブ実行部14aで未完了のジョブについてタイムアウトが発生した場合も、第1ジョブ実行部14aで未完了のジョブの実行が失敗したと判定される場合に相当する。そのため、本実施形態では、第1ジョブ実行部14aで未完了のジョブについてタイムアウトが発生した場合も同様にして、実行要求出力部24は、当該ジョブの実行要求を第2実行制御部32bに出力することとなる。
 第1問い合わせ部36aは、本実施形態では例えば、第1ジョブ実行部14aへの問い合わせの結果に基づいて第1ジョブ実行部14aに実行を指示したすべてのジョブについて実行の成否が判定されたことに応じて、問い合わせを終了する。ここで、図6に示すように、第1問い合わせ部36aは、第1ジョブ実行部14aへの問い合わせの結果に基づいて第1ジョブ実行部14aに実行を指示したすべてのジョブについて実行の成否が判定されたことに応じて、自らを停止させてもよい。
 第1問い合わせ部36aは、例えば、ジョブ状況データ記憶部34に記憶されている、エンジンIDの値が「001」であるジョブ状況データのすべてについて、(1)実行状況データの値が「正常終了」である、(2)実行状況データの値が「異常終了」である、又は、(3)対応するジョブについてタイムアウトが発生した、のいずれかの条件を満足したことを検出してもよい。そして、第1問い合わせ部36aは、この検出をトリガとして、第1ジョブ実行部14aへの問い合わせを終了してもよい。そして、第1問い合わせ部36aは、自らを停止させてもよい。
 あるいは、第1問い合わせ部36aは、第1ジョブ実行部14aへの問い合わせの結果に基づいて第1ジョブ実行部14aに実行を指示したすべてのジョブの実行の終了が確認されたことに応じて、問い合わせを終了してもよい。例えば、第1問い合わせ部36aは、例えば、ジョブ状況データ記憶部34に記憶されている、エンジンIDの値が「001」であるジョブ状況データのすべてについて、(1)実行状況データの値が「正常終了」である、又は、(2)実行状況データの値が「異常終了」である、のいずれかの条件を満足したことを検出してもよい。そして、第1問い合わせ部36aは、この検出をトリガとして、第1ジョブ実行部14aへの問い合わせを終了してもよい。そして、第1問い合わせ部36aは、自らを停止させてもよい。
 また、第2ジョブ実行部14bが起動してから所定時間が経過したら、第1問い合わせ部36aは、第1ジョブ実行部14aへの問い合わせを終了してもよい。そして、第1問い合わせ部36aは、自らを停止させてもよい。
 なお、ジョブデータ記憶部22は、例えば、Apache Kafka(商標)によって実装されてもよい。そして、実行要求出力部24は、例えば、Kafka Consumerとして実装されてもよい。
 本実施形態では、第1ジョブ実行部14aで未完了のジョブが存在していても、第2ジョブ実行部14bの運用を開始することができる。そして、第2ジョブ実行部14bの運用開始後は、実行要求出力部24は、ジョブの実行要求を第1実行制御部32aに出力せずに第2実行制御部32bに出力し、第2実行制御部32bが、当該ジョブの実行を第2ジョブ実行部14bに指示する。そのため、第2ジョブ実行部14bの運用開始後は、第1ジョブ実行部14aは新たなジョブの実行を指示されることはない。
 また、第2ジョブ実行部14bの運用が開始されても第1ジョブ実行部14aで未完了のジョブについては強制終了されずに実行が継続される。そして、このような未完了のジョブの状況は引き続き確認される。
 その後、異常終了となったことが確認された、タイムアウトが発生した、などの理由により、第1ジョブ実行部14aで未完了のジョブの実行が失敗したと判定されると、リトライのための当該ジョブの実行要求は第1ジョブ実行部14aではなく第2ジョブ実行部14bに出力される。
 このように、第2ジョブ実行部14bの運用が開始された後は、第1ジョブ実行部14aで実行が失敗したジョブを第1ジョブ実行部14aが再度実行することはなく、第1ジョブ実行部14aはこのジョブの実行から解放される。このようにして、ジョブ実行部14の切替前に第1ジョブ実行部14aに実行を指示していたジョブが、第1ジョブ実行部14aからスムーズに解放されていくこととなる。
 そして、このようなジョブ実行部14の切替があっても、OSS10によるジョブ管理システム12へのジョブの実行要求の送信は影響を受けない。
 以上のようにして、本実施形態によれば、ジョブ実行部14のシームレスな切替が可能になる。
 また、本実施形態において、ジョブの実行が失敗したと判定される場合であっても、所定の条件を満足する場合は、当該ジョブのジョブIDが関連付けられた異常終了通知を通知部28に出力されないようにしてもよい。
 例えば、ジョブの実行が失敗したと判定される場合であっても、当該ジョブのジョブIDが関連付けられた異常終了通知が通知部28に出力されないようにしてもよい。例えば、失敗したと判定されたジョブについて、実行が失敗したと連続して判定された回数が所定回数以下である場合は、当該ジョブのジョブIDが関連付けられた異常終了通知が通知部28に出力されないようにしてもよい。
 そして、この場合、通知部28への異常終了通知の出力が行われることなく、実行要求出力部24が、当該ジョブの実行要求を実行制御部32に出力してもよい。
 この場合、ジョブの実行要求の出力先が第2実行制御部32bに切り替わる前であれば、実行要求出力部24は、当該ジョブの実行要求を第1実行制御部32aに出力することとなる。そして、ジョブの実行要求の出力先が第2実行制御部32bに切り替わった後は、実行要求出力部24は、当該ジョブの実行要求を第2実行制御部32bに出力することとなる。
 ここで例えば、ジョブの実行要求の出力先が第2実行制御部32bに切り替わった後に、第1問い合わせ部36aによる問い合わせの結果に基づいて第1ジョブ実行部14aで未完了のジョブの実行が失敗したと判定されたとする。この場合に、通知部28が当該ジョブの実行が失敗したことをOSS10に通知することなく、実行要求出力部24が、当該ジョブの実行要求を第2実行制御部32bに出力してもよい。例えば、当該ジョブについて実行が失敗したと連続して判定された回数が所定回数以下である場合は、通知部28への異常終了通知の出力が行われることなく、実行要求出力部24が、当該ジョブの実行要求を第2実行制御部32bに出力してもよい。
 このようにすれば、OSS10が実行要求の再送を行うことなく、切替前のジョブ実行部14で実行が失敗したジョブを切替後のジョブ実行部14に実行(リトライ)させることが可能になる。
 本実施形態において、ジョブ管理システム12が、新たなジョブ実行部14である第2ジョブ実行部14bの起動を検出してもよい。そして、ジョブ管理システム12が、第2ジョブ実行部14bが起動されたことの検出に応じて、第2実行制御部32b、及び、第2問い合わせ部36bを起動させてもよい。また、ジョブ管理システム12が、第2クライアント部40bの起動を検出してもよい。そして、ジョブ管理システム12が、第2クライアント部40bが起動されたことの検出に応じて、第2中継部38b、及び、第2問い合わせ部36bを起動させてもよい。
 ここで、本実施形態に係るジョブ管理システム12で実行される、ジョブデータが示すジョブの実行に関する処理の流れの一例を、図7に示すフロー図を参照しながら説明する。
 まず、実行要求出力部24が、ジョブデータ記憶部22から、ジョブデータを取得する(S101)。
 そして、実行要求出力部24は、S101に示す処理で取得したジョブデータをジョブデータ記憶部22から消去する(S102)。
 そして、実行要求出力部24が、S101に示す処理で取得したジョブデータに応じたジョブの実行要求を出力先として設定されている実行制御部32の中継部38に出力する(S103)。S103に示す処理では、例えば、ジョブ実行部14の切替前であれば、ジョブの実行要求は第1中継部38aに出力される。ジョブ実行部14の切替後であれば、ジョブの実行要求は第2中継部38bに出力される。
 そして、S103に処理でジョブの実行要求を受け付けた中継部38は、クライアント部40に当該実行要求を出力する(S104)。S104に示す処理では、例えば、ジョブ実行部14の切替前であれば、ジョブの実行要求は第1中継部38aから第1クライアント部40aに出力される。ジョブ実行部14の切替後であれば、ジョブの実行要求は第2中継部38bから第2クライアント部40bに出力される。
 そして、S103に処理でジョブの実行要求を受け付けた中継部38は、当該ジョブに対応付けられるジョブ状況データを生成して、このジョブ状況データをジョブ状況データ記憶部34に記憶させる(S105)。
 そして、S104に示す処理でジョブの実行要求を受け付けたクライアント部40は、当該ジョブの実行指示をジョブ実行部14に出力して(S106)、S101に示す処理に戻る。S106に示す処理では、例えば、ジョブ実行部14の切替前であれば、第1クライアント部40aがジョブの実行指示を第1ジョブ実行部14aに出力する。ジョブ実行部14の切替後であれば、第2クライアント部40bがジョブの実行指示を第2ジョブ実行部14bに出力する。
 次に、本実施形態に係るジョブ管理システム12で実行される、ジョブ実行部14で実行されているジョブの状況の問い合わせに関する処理の流れの一例を、図8に示すフロー図を参照しながら説明する。
 まず、問い合わせ部36は、ジョブ状況データ記憶部34に記憶されているジョブ状況データのうちから、当該問い合わせ部36に対応付けられるジョブ実行部14に対応付けられるエンジンIDを含むジョブ状況データを特定する(S201)。
 そして、問い合わせ部36は、S201に示す処理で特定されたジョブ状況データのうち、S203~S209に示す処理が未実行のものを1つ選択する(S202)。
 そして、問い合わせ部36は、S202に示す処理で選択されたジョブ状況データに基づいて、ジョブ状況データに対応付けられるジョブが問い合わせ対象であるか否かを判定する(S203)。ここで例えば、当該ジョブが未完了である場合(例えば、当該ジョブに対応付けられるジョブ状況データに含まれる実行状況データの値が「未実行」又は「実行中」である場合)に、当該ジョブが問い合わせ対象であると判定されてもよい。
 ジョブが問い合わせ対象であると判定された場合は(S203:Y)、問い合わせ部36は、S202に示す処理で選択されたジョブ状況データに対応付けられるジョブの状況を、当該問い合わせ部36に対応付けられるジョブ実行部14に問い合わせる(S204)。
 そして、問い合わせ部36は、S204に示す処理での問い合わせの結果に基づいて、当該ジョブの状況が変化したか否かを判定する(S205)。ここでは、例えば、未実行から実行中への変化や、実行中から正常終了への変化や、実行中から異常終了への変化があったか否かが判定される。また、S205に示す処理では、当該ジョブがタイムアウトしたか否かについても判定される。
 ジョブの状況が変化したと判定された場合は(S205:Y)、当該ジョブに対応付けられるジョブ状況データの実行状況データの値を、変化後の状況に対応する値に更新する(S206)。例えば、ジョブが実行中になったことが確認された場合は、実行状況データの値は「実行中」に変更される。また、ジョブが正常終了したことが確認された場合は、実行状況データの値は「正常終了」に変更される。また、ジョブが異常終了したことが確認された場合は、実行状況データの値は「異常終了」に変更される。ここで、S205に示す処理でジョブがタイムアウトしたと判定された場合に、実行状況データの値が「異常終了」に変更されてもよい。
 そして、問い合わせ部36は、当該ジョブが終了したか否かを判定する(S207)。ここでは例えば、例えば、当該ジョブに対応付けられるジョブ状況データの実行状況データの値が「正常終了」又は「異常終了」となったか否かが確認される。
 当該ジョブが終了したと判定された場合は(S207:Y)、問い合わせ部36は、通知部28に、当該ジョブのジョブIDが関連付けられた終了通知を通知部28に出力する(S208)。上述のように、当該ジョブが正常終了した場合は正常終了通知が通知部28に出力され、当該ジョブが異常終了した場合は異常終了通知が通知部28に出力される。
 そして、通知部28は、S208に示す処理で問い合わせ部36から入力された終了通知をOSS10に送信する(S209)。
 そして、問い合わせ部36は、S201に示す処理で特定されたすべてのジョブ状況データについて、S203~S209に示す処理が実行されたか否かを確認する(S210)。S203に示す処理で当該ジョブが問い合わせ対象でないと判定された場合も(S203:N)、S210に示す処理が実行される。S205に示す処理で、当該ジョブの状況が変化したと判定されなかった場合も(S205:N)、S210に示す処理が実行される。S207に示す処理で当該ジョブが終了したと判定されなかった場合も(S207:N)、S210に示す処理が実行される。
 S201に示す処理で特定されたすべてのジョブ状況データについてS203~S209に示す処理が実行されていない場合は(S210:N)、S202に示す処理に戻る。
 S201に示す処理で特定されたすべてのジョブ状況データについてS203~S209に示す処理が実行された場合は(S210:Y)、S201に示す処理に戻る。
 S207に示す処理で、当該ジョブの実行が異常終了したか否かが判定されてもよい。そして、当該ジョブの実行が異常終了したと判定された場合は、上述のS208に示す処理が実行される代わりに、実行要求出力部24が、リトライのための当該ジョブの実行要求を中継部38に出力する処理を実行してもよい。
 例えば、問い合わせ部36が、ジョブIDが同じであるジョブの実行が連続して失敗した回数を示すデータを保持していてもよい。そして、ジョブの実行が失敗したと連続して判定された回数が所定回数以下である場合は、上述のS208に示す処理が実行される代わりに、実行要求出力部24が、リトライのための当該ジョブの実行要求を中継部38に出力する処理を実行してもよい。
 S201~S210に示す処理は、第1問い合わせ部36aにおいても第2問い合わせ部36bにおいても同様に実行される。
 また、ジョブの実行要求の出力先が第2実行制御部32bに切り替わった後においては、本実施形態では例えば、S210に示す処理においてS201に示す処理で特定されたすべてのジョブ状況データについてS203~S209に示す処理が実行されたことが確認された場合は、その後、第1問い合わせ部36aが、S201に示す処理で特定されたジョブ状況データに対応付けられるジョブがすべて終了したか否かを確認する。
 ここで、S201に示す処理で特定されたジョブ状況データに対応付けられるジョブがすべて終了したことが確認された場合は、第1問い合わせ部36aは、自らを停止させる。そうでない場合は、S201に示す処理に戻る。
 なお、本発明は上述の実施形態に限定されるものではない。
 また、上記の具体的な数値や文字列、並びに、図面中の具体的な数値や文字列は例示であり、これらの数値や文字列には限定されない。

Claims (8)

  1.  ジョブの実行要求の受付に応じて、当該ジョブの実行を第1のジョブ実行部に指示する第1の実行制御手段と、
     ジョブの実行要求の受付に応じて、当該ジョブの実行を第2のジョブ実行部に指示する第2の実行制御手段と、
     ジョブの実行要求を順次前記第1の実行制御手段に出力する実行要求出力手段と、
     前記第1のジョブ実行部で未完了のジョブが存在している際に、前記実行要求出力手段によるジョブの実行要求の出力先を前記第1の実行制御手段から前記第2の実行制御手段に切り替える切替手段と、
     前記第1のジョブ実行部に実行を指示したジョブの状況を前記第1のジョブ実行部に問い合わせる第1の問い合わせ手段と、
     ジョブの実行要求の出力先が前記第2の実行制御手段に切り替わった後に、前記問い合わせの結果に基づいて前記第1のジョブ実行部で未完了のジョブの実行が失敗したと判定される場合に、前記実行要求出力手段が、当該ジョブの実行要求を前記第2の実行制御手段に出力する、
     ことを特徴とするジョブ管理システム。
  2.  前記第1の問い合わせ手段は、前記問い合わせの結果に基づいて前記第1のジョブ実行部に実行を指示したすべてのジョブについて実行の成否が判定されたことに応じて、前記問い合わせを終了する、
     ことを特徴とする請求項1に記載のジョブ管理システム。
  3.  前記第1の問い合わせ手段は、前記問い合わせの結果に基づいて前記第1のジョブ実行部に実行を指示したすべてのジョブの実行の終了が確認されたことに応じて、前記問い合わせを終了する、
     ことを特徴とする請求項1に記載のジョブ管理システム。
  4.  オペレーションサポートシステムからジョブの実行要求を受け付ける実行要求受付手段と、
     前記ジョブを示すジョブデータを記憶するジョブデータ記憶手段と、をさらに含み、
     前記実行要求出力手段は、前記ジョブデータ記憶手段に記憶されている前記ジョブデータを順次取得し、
     前記実行要求出力手段は、ジョブの実行要求の出力先が前記第2の実行制御手段に切り替わる前は、前記ジョブデータ記憶手段からの前記ジョブデータの取得に応じて、当該ジョブデータが示すジョブの実行要求を前記第1の実行制御手段に出力し、
     前記実行要求出力手段は、ジョブの実行要求の出力先が前記第2の実行制御手段に切り替わった後は、前記ジョブデータ記憶手段からの前記ジョブデータの取得に応じて、当該ジョブデータが示すジョブの実行要求を前記第2の実行制御手段に出力する、
     ことを特徴とする請求項1から3のいずれか一項に記載のジョブ管理システム。
  5.  前記問い合わせの結果に基づいて判定されるジョブの実行の成否を前記オペレーションサポートシステムに通知する通知手段、をさらに含む、
     ことを特徴とする請求項4に記載のジョブ管理システム。
  6.  前記第2のジョブ実行部に実行を指示したジョブの状況を前記第2のジョブ実行部に問い合わせる第2の問い合わせ手段、をさらに含み、
     前記通知手段は、前記第1の問い合わせ手段と前記第2の問い合わせ手段の両方による問い合わせが行われている間は、前記第1の問い合わせ手段による問い合わせの結果に基づいて判定されるジョブの実行の成否、及び、前記第2の問い合わせ手段による問い合わせの結果に基づいて判定されるジョブの実行の成否を前記オペレーションサポートシステムに通知する、
     ことを特徴とする請求項5に記載のジョブ管理システム。
  7.  ジョブの実行要求の出力先が前記第2の実行制御手段に切り替わった後に、前記問い合わせの結果に基づいて前記第1のジョブ実行部で未完了のジョブの実行が失敗したと判定される場合に、前記通知手段が当該ジョブの実行が失敗したことを前記オペレーションサポートシステムに通知することなく、前記実行要求出力手段が、当該ジョブの実行要求を前記第2の実行制御手段に出力する、
     ことを特徴とする請求項5又は6に記載のジョブ管理システム。
  8.  ジョブの実行要求の受付に応じて、当該ジョブの実行を第1のジョブ実行部に指示する第1の実行制御手段と、ジョブの実行要求の受付に応じて、当該ジョブの実行を第2のジョブ実行部に指示する第2の実行制御手段と、を含むジョブ管理システムの制御方法であって、
     ジョブの実行要求を順次前記第1の実行制御手段に出力するステップと、
     前記第1のジョブ実行部で未完了のジョブが存在している際に、ジョブの実行要求の出力先を前記第1の実行制御手段から前記第2の実行制御手段に切り替えるステップと、
     前記第1のジョブ実行部に実行を指示したジョブの状況を前記第1のジョブ実行部に問い合わせるステップと、
     ジョブの実行要求の出力先が前記第2の実行制御手段に切り替わった後に、前記問い合わせの結果に基づいて前記第1のジョブ実行部で未完了のジョブの実行が失敗したと判定される場合に、当該ジョブの実行要求を前記第2の実行制御手段に出力するステップと、
     を含むことを特徴とするジョブ管理システムの制御方法。
PCT/JP2021/032201 2021-09-01 2021-09-01 ジョブ管理システム及びその制御方法 WO2023032106A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/JP2021/032201 WO2023032106A1 (ja) 2021-09-01 2021-09-01 ジョブ管理システム及びその制御方法
US18/044,786 US20230367632A1 (en) 2021-09-01 2021-09-01 Job management system and control method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2021/032201 WO2023032106A1 (ja) 2021-09-01 2021-09-01 ジョブ管理システム及びその制御方法

Publications (1)

Publication Number Publication Date
WO2023032106A1 true WO2023032106A1 (ja) 2023-03-09

Family

ID=85410823

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/032201 WO2023032106A1 (ja) 2021-09-01 2021-09-01 ジョブ管理システム及びその制御方法

Country Status (2)

Country Link
US (1) US20230367632A1 (ja)
WO (1) WO2023032106A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010053169A1 (ja) * 2008-11-10 2010-05-14 日本電気株式会社 ジョブ実行システム、方法及びプログラム
JP2012128573A (ja) * 2010-12-14 2012-07-05 Mitsubishi Electric Corp 二重化システムおよびそのシステムを用いたビル管理システム
US20190007416A1 (en) * 2017-06-30 2019-01-03 Datamax-O'neil Corporation Managing a fleet of devices

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010053169A1 (ja) * 2008-11-10 2010-05-14 日本電気株式会社 ジョブ実行システム、方法及びプログラム
JP2012128573A (ja) * 2010-12-14 2012-07-05 Mitsubishi Electric Corp 二重化システムおよびそのシステムを用いたビル管理システム
US20190007416A1 (en) * 2017-06-30 2019-01-03 Datamax-O'neil Corporation Managing a fleet of devices

Also Published As

Publication number Publication date
US20230367632A1 (en) 2023-11-16

Similar Documents

Publication Publication Date Title
US6971095B2 (en) Automatic firmware version upgrade system
US7703091B1 (en) Methods and apparatus for installing agents in a managed network
US8607219B2 (en) Information processing device and a firmware updating method of the information processing device
KR102027604B1 (ko) 상태 보존형 애플리케이션의 가용성 증가 기법
US7127635B2 (en) Method for correcting a program running on a computer system
JP5513997B2 (ja) 通信システムおよび通信システム更新方法
CN100478929C (zh) 非破坏性多路径设备驱动器更新系统和方法
US6944653B2 (en) Zero-click deployment of data processing systems
EP0687975B1 (en) Method and system for downloading data to network nodes
US9069597B2 (en) Operation management device and method for job continuation using a virtual machine
US20100115342A1 (en) System evaluation apparatus
JP2006268172A (ja) サーバシステムおよびオンラインソフトウェア更新方法
JP2005209191A (ja) 高可用性システムの遠隔エンタープライズ管理
JP2008123412A (ja) 計算機システム、システムソフトウェア更新方法及び第1サーバ装置
CN111143044B (zh) 任务调度管理系统、方法、装置及其可存储介质
WO2010000142A1 (zh) 一种分布式网管系统及其维护管理方法
JP2007304845A (ja) 仮想計算機システムおよびソフトウェア更新方法
JP3901060B2 (ja) アプリケーションの更新処理方法、更新処理システム及び更新処理プログラム
JP4167643B2 (ja) 業務システムの運用方法、運用管理システムおよび運用プログラム
JPH11259326A (ja) ホットスタンバイシステムおよびホットスタンバイシステムにおける自動再実行方法およびその記録媒体
WO2023032106A1 (ja) ジョブ管理システム及びその制御方法
CN112559461A (zh) 文件传输方法及装置、存储介质及电子设备
JP2006113754A (ja) ソフトウェア更新装置及び方法
JP2003345638A (ja) 記憶制御装置の制御方法及び記憶制御装置及びプログラム
JP2001027951A (ja) マルチプロセッサ構成の情報処理システムにおけるファイルロード装置と記録媒体

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

Country of ref document: EP

Kind code of ref document: A1