[go: up one dir, main page]

WO2024236881A1 - Application management device and application management server - Google Patents

Application management device and application management server Download PDF

Info

Publication number
WO2024236881A1
WO2024236881A1 PCT/JP2024/007693 JP2024007693W WO2024236881A1 WO 2024236881 A1 WO2024236881 A1 WO 2024236881A1 JP 2024007693 W JP2024007693 W JP 2024007693W WO 2024236881 A1 WO2024236881 A1 WO 2024236881A1
Authority
WO
WIPO (PCT)
Prior art keywords
application
function
information
developer
management
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
PCT/JP2024/007693
Other languages
French (fr)
Japanese (ja)
Inventor
純史 矢野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sumitomo Electric Industries Ltd
Original Assignee
Sumitomo Electric Industries Ltd
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 Sumitomo Electric Industries Ltd filed Critical Sumitomo Electric Industries Ltd
Publication of WO2024236881A1 publication Critical patent/WO2024236881A1/en
Pending legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management

Definitions

  • the present disclosure relates to an application management device and an application management server.
  • This application claims priority based on Japanese Patent Application No. 2023-080721, filed on May 16, 2023, the disclosure of which is incorporated herein in its entirety.
  • Patent Document 1 discloses a maintenance management system that executes multiple types of preset maintenance management functions for each partial service as maintenance processing for an application for providing a service composed of multiple partial services, and that is provided for each of the partial services and each of the maintenance management functions, and that has a plurality of operation component functional units that have an execution unit that starts the action of the corresponding function when it detects result information that determines that the corresponding action has been completed in all partial services for other maintenance management functions that have been preset as a precursor to the action of the corresponding function, and an action notification unit that issues a start message when the action of the corresponding function starts and an end message when the action of the corresponding function ends, and an action merging determination unit that is connected to the plurality of operation component functional units via a message bus and determines whether the corresponding action has been completed in all partial services for each of the maintenance management functions based on the start message and end message issued by the action notification unit of each operation component functional unit, and that transmits the corresponding result information to the plurality of operation component functional units when it determines
  • An application management device includes a display device, a program execution unit, and a storage device storing a software development kit, and the program execution unit is programmed to implement an application development function for developing an application to be executed by the program execution unit using the software development kit, a function for generating management information for managing an application developed by the application development function, a log acquisition setting function for setting up the acquisition of an execution log of the application, an authentication information acquisition function for acquiring authentication information for authenticating the developer of the application, and a function for transmitting the application, the management information, the setting information set by the log acquisition setting function, and the authentication information to an application management server.
  • FIG. 1 is a schematic diagram showing a schematic configuration of an application management system according to a first embodiment of the present disclosure.
  • FIG. 2 is a schematic diagram showing a schematic configuration during execution of application management by the application management system according to the first embodiment of the present disclosure.
  • FIG. 3 is a schematic diagram showing the functional configuration of the development terminal shown in FIG.
  • FIG. 4 is a schematic diagram showing a schematic configuration of the management information generating program shown in FIG.
  • FIG. 5 is a table showing a schematic configuration of the application management information.
  • FIG. 6 is a schematic diagram showing an example of a screen display of the development terminal according to the first embodiment of this disclosure.
  • FIG. 7 is a schematic diagram showing the configuration of an execution environment according to the first embodiment of the present disclosure.
  • FIG. 1 is a schematic diagram showing a schematic configuration of an application management system according to a first embodiment of the present disclosure.
  • FIG. 2 is a schematic diagram showing a schematic configuration during execution of application management by the application management system according to the first embodiment of the present
  • FIG. 8 is a sequence diagram of application management in the application management system according to the first embodiment of the present disclosure.
  • FIG. 9 is a schematic diagram showing the process of application registration in the first embodiment of the present disclosure.
  • FIG. 10 is a schematic diagram showing the process of application registration in the first embodiment of the present disclosure.
  • FIG. 11 is a schematic diagram showing an approval process of an application in the first embodiment of the present disclosure.
  • FIG. 12 is a schematic diagram showing an application distribution process in the first embodiment of the present disclosure.
  • FIG. 13 is a schematic diagram showing another example of the application distribution process in the first embodiment of the present disclosure.
  • FIG. 14 is a diagram showing the appearance of the development terminal in the first embodiment of this disclosure.
  • FIG. 15 is a hardware block diagram of the development terminal shown in FIG.
  • Next-generation connected cars will be required to realize connected services that are suited to the CASE (Connected, Autonomous/Automated, Shared, Electric) era. For this reason, it is expected that the vehicle's electrical/electronic architecture will be centrally controlled in next-generation connected cars. In addition, it is expected that software, including applications, will be frequently added and updated in next-generation connected cars via OTA (Over-the-Air) from outside the vehicle.
  • OTA Over-the-Air
  • Patent Document 1 One proposal for solving these problems is disclosed in Patent Document 1. According to Patent Document 1, this technology makes it possible to easily execute maintenance management processes for service provision applications.
  • Patent Document 1 makes it easy to perform maintenance work on applications created by multiple businesses. However, the technology in Patent Document 1 does not allow for centralized management of the contents of individual applications.
  • An object of the present disclosure is to provide an application management device and an application management server that can centrally manage applications created by a plurality of businesses.
  • An application management device includes a display device, a program execution unit, and a storage device storing a software development kit, and the program execution unit is programmed to implement an application development function for developing an application to be executed by the program execution unit using the software development kit, a function for generating management information for managing an application developed by the application development function, a log acquisition setting function for setting the acquisition of an execution log of the application, an authentication information acquisition function for acquiring authentication information for authenticating a developer of the application, and a function for transmitting the application, the management information, the setting information set by the log acquisition setting function, and the authentication information to a specified application management server.
  • SDK Software Development Kit
  • the function of generating management information may include at least one of the following: a function of creating attribute information of the application required for managing the application; a function of acquiring a hash value of the application; a function of acquiring library information identifying libraries used by the application; a function of creating a schedule for distributing the application to terminals; a function of generating version information of the application based on the revision contents of the application input by the developer; a function of allowing the developer to specify the installation destination of the application; and a function of allowing the developer to specify the installation time of the application.
  • At least one of the application attributes, verification of the authenticity of the application, application vulnerabilities, distribution schedule, version information, installation destination, installation time, etc. can be managed in the application management server, enabling centralized management of applications.
  • the log acquisition setting function may include a transfer mechanism designation function that designates a transfer mechanism for transferring messages output from the application when the application is executed to a device other than the device on which the application is running.
  • the messages output from the application may include messages to standard output and messages to standard error output, and the transfer mechanism designation function may designate the transfer mechanisms for the messages to standard output and the messages to standard error output independently of each other.
  • the application is intended to be executed as a Docker container, and the transfer mechanism designation function may designate a logging driver that processes the output of the application in the Docker system.
  • the authentication information acquisition function may include an authentication information acquisition function that acquires identification information of the developer from the developer.
  • An application management server includes a storage device and a program execution unit, and the program execution unit is programmed to receive from the application management device management information for managing an application developed by the application management device, log acquisition setting information indicating settings for acquiring execution logs of the application, and authentication information for authenticating the developer of the application, and to execute a developer authentication function for authenticating the developer of the application, an approval process execution function for performing approval processing for receiving approval for distribution to a distribution destination for the application for which authentication by the developer authentication function has been completed, and an application distribution function for distributing the application approved by the approval process execution function to a distribution destination in accordance with conditions specified by the management information.
  • the application management server is able to authenticate the developer of the application and set log acquisition from the application, and management information for managing the application can be acquired. As a result, applications can be managed centrally in the application management server.
  • the management information may include a schedule for distributing the application to terminals and the types of terminals to which the application is to be distributed
  • the application distribution function may include a schedule distribution function for distributing the application to terminals that match the terminal types according to the schedule.
  • the schedule distribution function may include a task preparation function that specifies the terminal type, the schedule, and information that identifies the application, and prepares a task for causing a terminal device to download the application from the application management server.
  • the application management server can prepare a task for distributing the application, thereby distributing the application to a specified type of terminal according to a schedule. As a result, it becomes possible to centrally manage applications in the application management server.
  • This disclosure can be realized not only as an application management device and an application management server equipped with such characteristic processing units, but also as an application management method having such characteristic processing steps, or as a program for causing a computer to execute such steps. It can also be realized as a semiconductor integrated circuit that realizes part or all of the application management device, or as an application management system that includes the application management device.
  • an application management system 50 is operated by an enterprise that manages systems to be developed (hereinafter, referred to as a "management enterprise").
  • the application management system 50 includes a development terminal 60 used by a developer 80 who develops the system.
  • a software development kit (SDK (Software Development Kit)) 62 that is created by the management enterprise for application development and distributed to each developer is installed in the development terminal 60.
  • the development terminal 60 develops an application using the SDK 62.
  • the SDK 62 is provided with not only tools for application development, but also various mechanisms for managing applications developed using the SDK 62.
  • the application management system 50 further includes an application management server 68 that receives an upload 66 of an application program 64 developed by a developer 80, performs authentication processing for the developer 80 and approval processing by an approver 70 of the central business operator, and then performs distribution processing 74 of the approved application 72 to an on-board device 78 installed in a vehicle 76 to which the application is to be distributed.
  • the application management server 68 is shown as a so-called cloud.
  • an onboard device 78 of a vehicle 76 operates an application distributed from an application management server 68
  • the onboard device 78 transmits management information 110 output by the application to an application operation server 112.
  • An administrator 114 of the system operator 100 manages the operation status of each application based on the management information received by the application operation server 112. Note that in this embodiment, the logs output by each application being executed are used as the management information 110.
  • the development terminal 60, application management server 68, and in-vehicle device 78 do not need to be located within the same country.
  • the development terminal 60 is often located in multiple countries.
  • the application management server 68 is a so-called cloud, and multiple servers may exist in various countries and regions and communicate with each other to implement the functions of a single application management server 68.
  • the country in which the in-vehicle device 78 is located is not limited by the country or region in which the development terminal 60 is located or the country or region in which the application management server 68 is located.
  • the development terminal 60 includes a communication unit 162 for two-way communication with the application management server 68, and a program execution unit 160 including a CPU (Central Processing Unit) 170.
  • the development terminal 60 is a computer equipped with a communication unit 162.
  • the monitor 140 and the keyboard 142 each communicate with the CPU 170 via an appropriate interface.
  • the development terminal 60 further includes a storage unit 164 connected to the program execution unit 160.
  • the storage unit 164 includes a volatile storage device that allows high-speed access, such as a RAM (Random Access Memory), and a non-volatile storage device that allows relatively slow access, such as a Solid State Drive (SSD) or a hard disk.
  • the former is primarily used as temporary storage during program execution, and the latter is used as a storage device for information that is not frequently accessed, such as the program or management information after collection.
  • the storage unit 164 stores an SDK 180, which is the same as the SDK 62 shown in FIG. 1, a management information generation program 182, and a log acquisition setting program 184.
  • the management information generation program 182 generates management information to be added to an application when the application is uploaded to the application management server 68.
  • the log acquisition setting program 184 performs settings related to the logs that the uploaded application outputs during operation.
  • the storage unit 164 further stores an authentication information acquisition program 186 and an upload program 188.
  • the authentication information acquisition program 186 acquires authentication information from the developer 80 for performing authentication processing for the developer 80 when uploading an application to the application management server 68.
  • the upload program 188 executes processing to upload a completed application to the application management server 68.
  • FIG. 4 shows details of various functions related to application management possessed by the management information generation program 182 shown in FIG. 3.
  • the management information generation program 182 includes an attribute information creation function 230 that creates attribute information representing the attributes of an application, a hash value calculation function 232 that calculates a hash value for verifying the identity of the final completed application, a version information creation function 234 that creates version information that changes as the application is modified, and a schedule creation function 236 that creates a distribution schedule for the completed application.
  • the management information generation program 182 further includes a library information acquisition function 238 for acquiring information about libraries used internally by the application, an installation destination setting function 240 for setting information about the vehicle-mounted device to which the application is to be distributed and installed, and, if necessary, an installation time setting function 242 for setting the time at which the application is to be distributed to the installation destination.
  • a library information acquisition function 238 for acquiring information about libraries used internally by the application
  • an installation destination setting function 240 for setting information about the vehicle-mounted device to which the application is to be distributed and installed
  • an installation time setting function 242 for setting the time at which the application is to be distributed to the installation destination.
  • the management information generation program 182 uses these functions to generate management information for managing applications created using the SDK 180.
  • the items to be managed by the management information include the application name, version, hash value, a list of OSS (Open Source Software) libraries being used (OSS list), installation destination, and installation time.
  • OSS Open Source Software
  • the information managed for each managed item includes the creator of the managed item, information about how the content of the managed item was created or obtained, and the use of the managed item.
  • FIG. 5 shows an example of management information.
  • the creator of the application name is the developer.
  • the method of obtaining or creating the name is that the SDK 180 obtains the name entered by the developer.
  • the purpose of the information is to use it as an identifier for identifying the application.
  • the SDK is the creator of the version information, and creates it by combining the revision details specified by the developer with information about all versions of the same application that the SDK retrieves from the cloud.
  • the version information is used as an identifier together with the application name.
  • FIG. 6 shows an application upload screen 270.
  • upload screen 270 is the screen used when an application developer uploads a completed application to application management server 68 shown in FIG. 1.
  • the upload screen 270 further includes a change specification list 302 that consists of four options that the developer can select for changes made to the application by the developer.
  • the change specification list 302 includes four check boxes. The first check box is selected when a new application is created. The second check box is selected when revisions are made to the application that significantly affect the appearance, operability, or behavior of the application's interface. The third check box is selected when minor improvements to the application or partial additions are made. The fourth check box is selected when bug fixes or minor modifications are made to the application.
  • the upload screen 270 further includes an ID field 304, a password field 306, a send button 308, and a cancel button 310.
  • the ID field 304 is used to input a developer's identifier.
  • the password field 306 is used to input a password assigned to the developer.
  • the send button 308 is clicked to send the application to the application management server 68 after confirming the password input.
  • the cancel button 310 is clicked to abort the transmission and return the screen to the previous screen.
  • the version information is created mainly based on which option in the change specification list 302 is selected. For example, when creating a new version, the version information is set to "1.0.0". When the second option is selected, if the version information of the previous version was "X.Y.Z", the new version information increments X. When the third option is selected, Y is incremented. And when the fourth option is selected, Z is incremented.
  • the creator of the hash value is the SDK.
  • the hash value is obtained by the SDK calculating the hash value of the application before it is uploaded.
  • the hash value is used to determine whether the application has been tampered with or impersonated.
  • the OSS list is created by the SDK, which obtains the names of libraries included in the application. This information is used to determine whether the libraries included in the application have vulnerabilities.
  • the creator of the information regarding the installation destination is the developer.
  • the developer decides on the installation destination and enters it on a specific input screen prepared by the SDK, and the SDK acquires this information.
  • the information regarding the installation destination is selected by the developer in order to control the installation destination of the application.
  • This installation destination is specified, for example, by the model number of the corresponding in-vehicle unit or the identifier of an individual in-vehicle unit.
  • Information related to the installation time is created by the developer.
  • the developer enters the installation time on a specific input screen prepared by the SDK. This information is specified by the developer in order to control the application installation time. Depending on the service, it may be necessary to change the specifications all at once at a specific timing. In such cases, the application installation time may be specified. Note that if the application distribution time and distribution location are entered, they are added as additional information to the application management information.
  • the log acquisition setting function (log acquisition setting function) will be described below.
  • a container (Docker container) 360 provided by Docker (registered trademark) is used as the execution environment 350 for each application.
  • the Docker logging mechanism is used for log output. In the logging mechanism, normal logs from the application are output to standard output 362, and error logs are output to network 364. Note that standard output is usually written as stdout, and standard error output is written as stderr.
  • a logging driver 366 is specified individually. By specifying the logging driver 366, the format of the log, the transfer destination, etc. can be specified. It is possible to analyze the log at the transfer destination and transfer the result to the cloud.
  • the first driver 368 can convert the log output to the standard output 362 into a predetermined format and transfer it to the first transfer destination 370
  • the second driver 372 can convert the log output to the network 364 into a predetermined format and transfer it to the second transfer destination 374.
  • the log output setting is information for setting which logging driver is used, what format is used, when, and where the log output to the standard output 362 and the network 364 is transferred by the application.
  • the log acquisition setting program 184 shown in FIG. 3 The program itself for acquiring the log is provided by Docker and is separate from the log acquisition setting program 184.
  • the function of specifying a transfer mechanism for transferring messages output from an application when the application is executed to a device other than the device on which the application is running is called the transfer mechanism specification function.
  • the system provided by Docker is called the Docker system.
  • FIG. 8 shows a sequence diagram of processing between the developer 80, SDK 62, application management server 68, approver 70, administrator 114, and in-vehicle device 78 in this embodiment.
  • the developer 80 uses the SDK 62 to perform application development 400.
  • the developer 80 launches the upload screen 270 shown in FIG. 9 (FIG. 6) in order to upload the application to the application management server 68 shown in FIG. 1.
  • the developer 80 selects one of the change specification lists 302 and enters his/her own identifier in the ID field 304 and his/her password in the password field 306.
  • the management information generation program 182 shown in FIG. 3 executes the application management information acquisition process 402 shown in FIG. 8 based on the input by the developer 80 and the contents of the application.
  • the attribute information creation function 230 of the application management information acquisition process 402 shown in FIG. 4 creates attribute information of the application (e.g., the name of the application, the name of the creator, the transmission time, etc.).
  • the hash value calculation function 232 calculates a hash value based on the object code of the application.
  • the version information creation function 234 creates new version information based on the change specification list 302 and the version information of the application of the same name collected from the application management server 68.
  • the schedule creation function 236 creates schedule information based on the schedule specified by the developer 80.
  • the library information acquisition function 238 acquires library information from, for example, a library included in the object program.
  • the installation destination setting function 240 sets information related to the installation destination based on the input by the developer 80.
  • the installation time setting function 242 sets the installation time based on the input by the developer 80. All of this management information becomes information accompanying the application.
  • the log information acquisition setting process 404 is executed. Specifically, the log acquisition setting program 184 shown in FIG. 3 sets the logging driver used by the application in the Docker container based on the contents of the application, for both the standard output 362 and the network 364 shown in FIG. 7. In this embodiment, this information is realized as a series of commands that configure the container according to the specified settings.
  • authentication processing 406 of the application is executed.
  • Authentication processing 406 is executed when the developer 80 clicks the send button 308 on the upload screen 270 shown in FIG. 9 to start authentication processing 440 of the application.
  • the SDK 62 adds to the application the application management information, log information acquisition setting information, and authentication information consisting of the developer 80's identifier and password.
  • the application management information is acquired in an application management information acquisition process 402.
  • the log information acquisition setting information is set in a log information acquisition setting process 404.
  • the developer 80's identifier is entered in the ID field 304 in FIG. 9, and the developer 80's password is entered in the password field 306 in FIG. 9.
  • the SDK 62 executes an application sending process 442 that sends this information to the application management server 68.
  • the application management server 68 which has received this application together with the management information and authentication information, executes developer authentication 444. That is, the application management server 68 refers to a developer database managed by the application management server 68 (or another authentication server), compares the identifier and password of the developer 80 with the recorded information, and authenticates the developer. If the authentication fails, the application management server 68 notifies the SDK 62 accordingly. Referring to FIG. 9, if this authentication is successful, the application is registered in the application management table 482 together with the management information (bottom line of FIG. 9). However, the application has not yet been approved for distribution. Therefore, a value indicating that the application being processed (test1) is not yet available for distribution is assigned to the flag indicating whether the application being processed (test1) is available for distribution (indicated by "Not yet” in FIG. 10).
  • the application approval process 408 is started in the application management server 68.
  • developer 80 inputs his/her own identifier and password, as in upload screen 270.
  • this disclosure is not limited to such an embodiment.
  • developer 80 may be provided with a card-type employee ID card on which information equivalent to the identifier and password is recorded in advance. Such an example is shown in FIG. 10.
  • upload screen 500 in this example differs from upload screen 270 shown in FIG. 9 in that, instead of ID field 304 and password field 306 of upload screen 270, upload screen 500 displays prompt 504 urging the user to hold their employee ID card over a card reader.
  • upload screen 500 is the same as upload screen 270.
  • a card reader 502 must be connected to development terminal 60 so that it can read the employee ID card. After information corresponding to developer 80's identifier and password has been read from the employee ID card, the processing by upload screen 500 is the same as the processing by upload screen 270.
  • the application management server 68 makes an application approval request 450 for an application that has successfully passed developer authentication 444 to an approver 70 preset in the project. Specifically, the application management server 68 sends the application approval request 450 to the approver 70 via a workflow or email. In response to this application approval request 450, the approver 70 confirms 452 the contents of the application and management information. If there are no particular problems, the approver 70 gives approval 454 for the distribution of the application. Information regarding approval 454 is sent to the application management server 68. As a result, the application becomes available for distribution.
  • FIG. 8 Details of the application approval process 408 (FIG. 8) in this embodiment will be described with reference to FIG. 11. As shown in FIG. 11, before the approval of application test1, the distribution approval column 572 of the record 570 storing the information of application test1 in the application management table 482 is "Not yet.” In other words, the distribution of application test1 has not yet been approved.
  • an approval request is first sent from the application management table 482 to the first administrator 550. If the first administrator 550 approves this approval request, an approval request is further sent to the second administrator 552. If the second administrator 552 approves this approval request, an approval request is further sent to the responsible person 554. If the responsible person 554 approves this approval request, the value of the distribution approval column 572 of the record 570 becomes "Done", as shown in the application management table 482 shown in the lower part of Figure 11. As a result, it becomes possible to distribute the application test1 to each in-vehicle device.
  • an application cannot be distributed without approval from three parties: two administrators and the final person in charge.
  • the approval path may be changed based on the importance and behavior of the application. For example, an approval path may be set up such that stricter approval processing is performed for an application that only reads data and an application that writes data. The more important the application, the more approvers may be allowed, or approval may be obtained from an approver with higher authority.
  • the administrator 114 determines that it is time to transmit the application to the in-vehicle device 78, the administrator 114 issues an instruction 410 to the application management server 68 to deliver the application to the in-vehicle device by OTA.
  • the application management server 68 executes an OTA task creation/addition process 412.
  • the application management server 68 includes a software management program 610 that receives an application uploaded from the development terminal 60, authenticates the developer, verifies the authenticity of the application, and executes distribution approval processing.
  • the distribution manager 580 determines when to distribute (install) an application (e.g., application test1) to which in-vehicle device, and issues instructions to the software management program 610.
  • the software management program 610 creates a task 622 for application distribution for each applicable application, and registers it in the task management table 616.
  • the task is to install or update the application via OTA.
  • the application management server 68 further includes a software distribution program 612 and a software storage unit 614.
  • the software distribution program 612 reads out a task that has reached the designated distribution time from among the tasks registered in the task management table 616.
  • the software distribution program 612 distributes the application specified by the task to the distribution destination specified by the task, and causes it to be installed.
  • the software storage unit 614 stores software (applications) that are managed by the software management program 610 as the application management table 482.
  • the software distribution program 612 performs the following process.
  • the application management server 68 executes the OTA task creation/addition process 412, which means that the application management server 68 is ready to instruct the in-vehicle device 78 corresponding to that task.
  • the in-vehicle device 78 performs the application acquisition process 618 as follows. That is, the in-vehicle device 78 executes the client process 414 to access the application management server 68 (or an intermediate message broker) according to the MQTT (Message Queuing Telemetry Transport) protocol, and determines whether there is a message for the in-vehicle device 78.
  • MQTT Message Queuing Telemetry Transport
  • the in-vehicle device 78 reads out the task 624 (FIG. 12) specified by that message from the application management server 68.
  • the task 624 is a task 416 (FIG. 8) that instructs the vehicle-mounted device 78 to download an application from a specified address in the software storage unit 614 of the application management server 68 and install it therein.
  • the vehicle-mounted device 78 receives this instruction, it accesses 626 (FIG. 12) the specified address in the software storage unit 614 and acquires 418 (FIG. 8) the application from the address.
  • the vehicle-mounted device 78 further compares the hash value calculated for the acquired application with the hash value of the management information to confirm the validity of the application, and then installs 420 the application.
  • the installation 420 here is an addition if there is no existing old version of the application, and an update if an old version exists.
  • the vehicle-mounted device 78 transmits an installation completion notice 422 to the application management server 68. By performing such processing, a specified application can be distributed to each vehicle-mounted device 78 specified by the administrator 114 at the time specified by the distribution administrator 580.
  • the in-vehicle device 78 starts executing the application.
  • the log output by the application is acquired by a logging driver defined by the log information acquisition setting, and the information (log) that is the content of the log is periodically uploaded 424, 426 to the application management server 68 by the application management agent.
  • additional information 630 includes the delivery time (delivery period) and installation destination information of the application. This information is added to application management table 482 in the form of additional information 630 for the relevant application (e.g. application test1) in application management table 482.
  • additional information 630 includes the installation destination of the relevant application (specific information of the relevant in-vehicle device), status information indicating whether it has been delivered or not, and the installation time (period).
  • the software management program 610 can automatically read the delivery time and installation destination of the application from the additional information 630, and automatically prepare a task 622 according to the read information and write it to task management table 616. After the task is written to task management table 616, the application is delivered in the same manner as when the delivery manager 580 determines the installation destination and delivery time.
  • FIG. 14 is an external view of a computer system that operates as, for example, the development terminal 60 shown in Fig. 1.
  • the computer that constitutes the application management server 68 has a similar configuration.
  • FIG. 15 is a hardware block diagram of the computer system shown in FIG. 14.
  • the application management server 68 shown in FIG. 1 can also be realized by a computer system essentially having a similar configuration to the development terminal 60.
  • this development terminal 60 includes a computer 640 having a DVD (Digital Versatile Disc) drive 672, and a keyboard 644, a mouse 646, and a monitor 642 for interacting with a user, all of which are connected to the computer 640.
  • DVD Digital Versatile Disc
  • keyboard 644 a mouse 646, and a monitor 642 for interacting with a user, all of which are connected to the computer 640.
  • monitor 642 for a user interaction becomes necessary, and any general hardware and software that can be used for user interaction (e.g., a touch panel, voice input, or a general pointing device) can be used.
  • computer 640 includes, in addition to DVD drive 672, a CPU 660, a GPU (Graphics Processing Unit) 662, and a bus 680 connected to CPU 660, GPU 662, and DVD drive 672.
  • Computer 640 further includes ROM (Read-Only Memory) 666, RAM 668, and SSD 670.
  • ROM 666 is connected to bus 680 and stores the boot-up program of computer 640, etc.
  • RAM 668 is connected to bus 680 and stores instructions constituting a program, system programs, working data, etc.
  • SSD 670 is a non-volatile memory connected to bus 680.
  • the SSD 670 is for storing programs executed by the CPU 660 and the GPU 662, as well as data used by the programs executed by the CPU 660 and the GPU 662.
  • the computer 640 further includes a network I/F (Interface) 678 and a USB (Universal Serial Bus) port 676.
  • the network I/F 678 provides a connection to a network 656 (network 364 shown in FIG. 7) that enables communication with other terminals.
  • the USB port 676 allows a USB memory 654 to be attached/detached, and provides communication between the USB memory 654 and each part in the computer 640.
  • Computer 640 further includes an audio I/F 674.
  • Audio I/F 674 is connected to microphone 652, speaker 650, and bus 680, and has the function of reading audio signals, video signals, and text data according to instructions from CPU 660, converting them to analog, amplifying them, and driving speaker 650.
  • the audio signals, video signals, and text data are generated by CPU 660 and stored in RAM 668 or SSD 670.
  • Audio I/F 674 also has the function of digitizing the analog audio signal from microphone 652 and storing it in any address in RAM 668 or SSD 670 specified by CPU 660.
  • the programs implementing the functions of the development terminal 60 and the application management server 68 are stored in, for example, the SSD 670, the RAM 668, the DVD 648, the USB memory 654, or a storage medium of an external device (not shown).
  • the external device is connected to the bus 680 via the network I/F 678 and the network 656.
  • these data and parameters are written to the SSD 670 from outside, for example, and loaded into the RAM 668 when the computer 640 is executed.
  • Computer programs for operating this computer system to implement the functions of the development terminal 60 and application management server 68 shown in FIG. 1 and each of their components are stored on a DVD 648 inserted into a DVD drive 672, and transferred from the DVD drive 672 to the SSD 670.
  • these programs are stored in a USB memory 654, and the USB memory 654 is inserted into a USB port 676, and the programs are transferred to the SSD 670.
  • the programs may be sent to the computer 640 via the network 656 and stored in the SSD 670.
  • the program is loaded into RAM 668 when executed.
  • the source program may be input using keyboard 644, monitor 642, and mouse 646, and the compiled object program may be stored in SSD 670.
  • a program that functions as a virtual machine environment must be installed in advance on computer 640.
  • the CPU 660 reads a program from the RAM 668 according to an address indicated by an internal register called a program counter (not shown), interprets the instructions, reads data required to execute the instructions from the RAM 668, the SSD 670, or other devices according to the address specified by the instruction, and executes the process specified by the instruction.
  • the CPU 660 stores the execution result data in the RAM 668, the SSD 670, a register in the CPU 660, or the like, at an address specified by the program. At this time, the value of the program counter is also updated by the program.
  • the computer program may be loaded directly into the RAM 668 from the DVD 648, the USB memory 654, or via the network 656.
  • some tasks (mainly numerical calculations) are dispatched to the GPU 662 according to instructions contained in the program or according to the analysis results of the CPU 660 when executing the instructions.
  • the program for implementing the functions of each part according to the above-mentioned embodiment by computer 640 includes a plurality of instructions written and arranged to operate computer 640 to implement those functions. Some of the basic functions required to execute the instructions may be provided by the operating system (OS (Operating System)) running on computer 640, a third party program, various toolkit modules installed on computer 640, or the program execution environment. Therefore, this program does not necessarily include all of the functions required to implement the system and method of this embodiment. This program only needs to include instructions that perform the operations of each of the above-mentioned devices and their components by statically linking the appropriate functions or modules at compile time or dynamically calling them at run time in a controlled manner to obtain the desired results. The method of operating computer 640 for this purpose is well known, so it will not be repeated here.
  • OS Operating System
  • the GPU 662 is capable of parallel processing, and can execute a large amount of calculations associated with machine learning simultaneously in parallel or in a pipelined manner. For example, parallel calculation elements discovered in a program when the program is compiled, or parallel calculation elements discovered when the program is executed, are dispatched from the CPU 660 to the GPU 662 at any time and executed, and the results are returned to the CPU 660 directly or via a specified address in the RAM 668, and assigned to a specified variable in the program.
  • Each process (each function) in the above-mentioned embodiment is implemented by a processing circuit (circuitry) including one or more processors.
  • the above-mentioned processing circuit may be configured by an integrated circuit combining one or more memories, various analog circuits, and various digital circuits in addition to the above-mentioned one or more processors.
  • the above-mentioned one or more memories store programs (instructions) that cause the above-mentioned one or more processors to execute each of the above-mentioned processes.
  • the above-mentioned one or more processors may execute each of the above-mentioned processes according to the above-mentioned programs read from the above-mentioned one or more memories, or may execute each of the above-mentioned processes according to a logic circuit designed in advance to execute each of the above-mentioned processes.
  • the above-mentioned processor may be a CPU, GPU, DSP (Digital Signal Processor), FPGA (Field-Programmable Gate Array), ASIC (Application Specific Integrated Circuit), or any other processor suitable for computer control.
  • the physically separated processors may cooperate with each other to execute the above processes.
  • the processors mounted on each of the physically separated computers may cooperate with each other via a network such as a LAN (Local Area Network), a WAN (Wide Area Network), or the Internet to execute the above processes.
  • the program may be installed in the memory from an external server device or the like via the network, or may be distributed in a state stored in a recording medium such as a CD-ROM (Compact Disc Read-Only Memory), a DVD-ROM (Digital Versatile Disc Read-Only Memory), or a semiconductor memory, and installed in the memory from the recording medium.
  • Application management system 60 Development terminal 62, 180 SDK 64 Application program 66, 424, 426 Upload 68 Application management server 70 Approver 72 Application 74 Distribution process 76 Vehicle 78 Vehicle-mounted device 80 Developer 100 System operator 110 Management information 112 Application operation server 114, 550, 552 Administrator 140, 642 Monitor 142, 644 Keyboard 160 Program execution unit 162 Communication unit 164 Storage unit 170, 660 CPU 182 Management information generation program 184 Log acquisition setting program 186 Authentication information acquisition program 188 Upload program 230 Attribute information creation function 232 Hash value calculation function 234 Version information creation function 236 Schedule creation function 238 Library information acquisition function 240 Installation destination setting function 242 Installation time setting function 270, 500 Upload screen 300 Title 302 Change designation list 304 ID field 306 Password field 308 Send button 310 Cancel button 350 Execution environment 360 Container (Docker container) 362 Standard output 364, 656 Network 366 Logging driver 368 First driver 370 First transfer destination 372 Second driver 374 Second transfer destination 380 Docker container 400 Application development 402

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

This application management device comprises a display device, a program execution unit, and a storage device that stores a software development kit, wherein the program execution unit is programmed to implement: an application development function for developing an application to be executed by the program execution unit, using the software development kit; a function for generating management information for managing the application developed by the application development function; a log acquisition setting function for setting the acquisition of execution logs of the application; an authentication information acquisition function for acquiring authentication information for authenticating the developer of the application; and a function for transmitting the application, the management information, set information set by the log acquisition setting function, and the authentication information to an application management server.

Description

アプリケーション管理装置、およびアプリケーション管理サーバApplication management device and application management server

 この開示は、アプリケーション管理装置、およびアプリケーション管理サーバに関する。
 この出願は、2023年5月16日に出願された日本出願特願2023-080721号を基礎とする優先権を主張し、その開示のすべてをここに取り込む。
The present disclosure relates to an application management device and an application management server.
This application claims priority based on Japanese Patent Application No. 2023-080721, filed on May 16, 2023, the disclosure of which is incorporated herein in its entirety.

 特許文献1は、複数の部分サービスで構成されるサービスの提供用アプリケーションに関する保守処理として、各部分サービスについて、予め設定された複数種別の保守管理機能を実行させる保守管理システムであって、前記部分サービスごと、および前記保守管理機能ごとに設けられ、該当する機能のアクションの前段として予め設定された他の保守管理機能についてすべての部分サービスで該当するアクションが終了したと判定した結果情報を検知したときに、該当する機能のアクションを開始する実行部と、該当する機能のアクション開始時に開始メッセージを発出するとともに当該機能のアクション終了時に終了メッセージを発出するアクション通知部とを有する複数の運用部品機能部と、前記複数の運用部品機能部にメッセージバスを介して接続され、各運用部品機能部のアクション通知部から発出された開始メッセージおよび終了メッセージに基づいて、前記保守管理機能ごとに、すべての部分サービスで該当するアクションが終了したか否かを判定し、すべての部分サービスで該当するアクションが終了したと判定すると、該当する結果情報を前記複数の運用部品機能部に送信するアクション合流判定部とを備えることを特徴とする保守管理システムを開示する。 Patent Document 1 discloses a maintenance management system that executes multiple types of preset maintenance management functions for each partial service as maintenance processing for an application for providing a service composed of multiple partial services, and that is provided for each of the partial services and each of the maintenance management functions, and that has a plurality of operation component functional units that have an execution unit that starts the action of the corresponding function when it detects result information that determines that the corresponding action has been completed in all partial services for other maintenance management functions that have been preset as a precursor to the action of the corresponding function, and an action notification unit that issues a start message when the action of the corresponding function starts and an end message when the action of the corresponding function ends, and an action merging determination unit that is connected to the plurality of operation component functional units via a message bus and determines whether the corresponding action has been completed in all partial services for each of the maintenance management functions based on the start message and end message issued by the action notification unit of each operation component functional unit, and that transmits the corresponding result information to the plurality of operation component functional units when it determines that the corresponding action has been completed in all partial services.

特開2020-135504号公報JP 2020-135504 A

 本開示の一態様に係るアプリケーション管理装置は、表示装置と、プログラム実行部と、ソフトウェア開発キットを記憶した記憶装置とを含み、前記プログラム実行部は、前記ソフトウェア開発キットを使用して、前記プログラム実行部が実行するアプリケーションを開発するアプリケーション開発機能と、前記アプリケーション開発機能により開発されたアプリケーションを管理するための管理情報を生成する機能と、前記アプリケーションの実行ログの取得の設定を行うログ取得設定機能と、前記アプリケーションの開発者を認証するための認証情報を取得する認証情報取得機能と、前記アプリケーションと、前記管理情報と、前記ログ取得設定機能によって設定された設定情報と、前記認証情報とをアプリケーション管理サーバに送信する機能とを実装するようにプログラムされている。 An application management device according to one aspect of the present disclosure includes a display device, a program execution unit, and a storage device storing a software development kit, and the program execution unit is programmed to implement an application development function for developing an application to be executed by the program execution unit using the software development kit, a function for generating management information for managing an application developed by the application development function, a log acquisition setting function for setting up the acquisition of an execution log of the application, an authentication information acquisition function for acquiring authentication information for authenticating the developer of the application, and a function for transmitting the application, the management information, the setting information set by the log acquisition setting function, and the authentication information to an application management server.

図1は、この開示の第1実施形態に係るアプリケーション管理システムの概略構成を示す模式図である。FIG. 1 is a schematic diagram showing a schematic configuration of an application management system according to a first embodiment of the present disclosure. 図2は、この開示の第1実施形態に係るアプリケーション管理システムによるアプリケーション管理の実行時の概略構成を示す模式図である。FIG. 2 is a schematic diagram showing a schematic configuration during execution of application management by the application management system according to the first embodiment of the present disclosure. 図3は、図1に示す開発用端末の機能的構成を示す模式図である。FIG. 3 is a schematic diagram showing the functional configuration of the development terminal shown in FIG. 図4は、図3に示す管理情報生成プログラムの概略構成を示す模式図である。FIG. 4 is a schematic diagram showing a schematic configuration of the management information generating program shown in FIG. 図5は、アプリケーション管理情報の概略構成を表形式により示す表である。FIG. 5 is a table showing a schematic configuration of the application management information. 図6は、この開示の第1実施形態に係る開発用端末の画面表示の1例を示す模式図である。FIG. 6 is a schematic diagram showing an example of a screen display of the development terminal according to the first embodiment of this disclosure. 図7は、この開示の第1実施形態に係る実行環境の構成を示す模式図である。FIG. 7 is a schematic diagram showing the configuration of an execution environment according to the first embodiment of the present disclosure. 図8は、この開示の第1実施形態に係るアプリケーション管理システムにおけるアプリケーション管理のシーケンス図である。FIG. 8 is a sequence diagram of application management in the application management system according to the first embodiment of the present disclosure. 図9は、この開示の第1実施形態におけるアプリケーション登録の過程を示す模式図である。FIG. 9 is a schematic diagram showing the process of application registration in the first embodiment of the present disclosure. 図10は、この開示の第1実施形態におけるアプリケーション登録の過程を示す模式図である。FIG. 10 is a schematic diagram showing the process of application registration in the first embodiment of the present disclosure. 図11は、この開示の第1実施形態におけるアプリケーションの承認過程を示す模式図である。FIG. 11 is a schematic diagram showing an approval process of an application in the first embodiment of the present disclosure. 図12は、この開示の第1実施形態におけるアプリケーションの配信過程を示す模式図である。FIG. 12 is a schematic diagram showing an application distribution process in the first embodiment of the present disclosure. 図13は、この開示の第1実施形態におけるアプリケーションの配信過程の他の例を示す模式図である。FIG. 13 is a schematic diagram showing another example of the application distribution process in the first embodiment of the present disclosure. 図14は、この開示の第1実施形態における開発用端末の外観を示す図である。FIG. 14 is a diagram showing the appearance of the development terminal in the first embodiment of this disclosure. 図15は、図14に示す開発用端末のハードウェアブロック図である。FIG. 15 is a hardware block diagram of the development terminal shown in FIG.

 次世代コネクテッドカーにおいては、CASE(Connected,Autonomous/Automated,Shared,Electric)時代に対応したコネクテッドサービスを実現することが求められる。そのため、次世代コネクテッドカーにおいては、車両の電気/電子アーキテクチャが集中制御化されることが予想される。また、次世代コネクテッドカーにおいては、アプリケーションを含めたソフトウェアは、車外からのOTA(Over-The-Air)により頻繁に追加され、更新されることが予想される。 Next-generation connected cars will be required to realize connected services that are suited to the CASE (Connected, Autonomous/Automated, Shared, Electric) era. For this reason, it is expected that the vehicle's electrical/electronic architecture will be centrally controlled in next-generation connected cars. In addition, it is expected that software, including applications, will be frequently added and updated in next-generation connected cars via OTA (Over-the-Air) from outside the vehicle.

 モビリティサービスは日々進化し、ますます多様化する。そのため、コネクテッドカーの車載機において多様なアプリケーションおよびサービスソフトウェア(以下、「アプリケーションなど」という。)が動作することは確実である。 Mobility services are evolving and becoming more diverse every day. As a result, it is certain that a wide variety of applications and service software (hereinafter referred to as "applications, etc.") will run on the onboard devices of connected cars.

 そうした状況においては、車載器が実行するアプリケーションなども、通常のウェブサーバおよびスマートフォンアプリと同じく、悪意ある第三者による攻撃のターゲットになる可能性を考慮する必要がある。次世代コネクテッドカーにおいても安心安全を提供するために、車両において動作するアプリケーションなどの管理を行うことは必須項目の一つである。 In such a situation, it is necessary to consider the possibility that applications run by in-vehicle devices could become targets of attacks by malicious third parties, just like regular web servers and smartphone apps. In order to provide safety and security in next-generation connected cars, managing applications running in the vehicle is one of the essential aspects.

 以上のような状況においては、次世代コネクテッドカーにおいて動作するアプリケーションなどの管理を確実に行う必要がある。しかし、アプリケーションなどの管理のために、コネクテッドカーに専用のアプリケーションを導入したり、管理基盤を導入したりする場合には、導入コストが高くなるという問題がある。これに加えて、車載機において動作するアプリケーションなどは、単一の事業者が作成するとは限らないという問題がある。複数の事業者により作成されたアプリケーションを一元的に管理することは極めて難しい。 In the circumstances described above, it is necessary to ensure that applications that run on next-generation connected cars are managed properly. However, introducing dedicated applications or a management platform into connected cars to manage applications raises the issue of high implementation costs. In addition, there is the issue that applications that run on in-vehicle devices are not necessarily created by a single operator. It is extremely difficult to centrally manage applications created by multiple operators.

 こうした問題を解決するための一つの提案が特許文献1に開示されている。特許文献1によれば、この技術により、サービス提供用アプリケーションの保守管理処理を容易に実行させることができるとされている。 One proposal for solving these problems is disclosed in Patent Document 1. According to Patent Document 1, this technology makes it possible to easily execute maintenance management processes for service provision applications.

 上記特許文献1に開示の技術によれば、複数の事業者により作成されたアプリケーションであっても、その保守作業を容易に実行できる。しかし、特許文献1の技術によっては、個々のアプリケーションの内容まで一元的に管理することはできない。 The technology disclosed in Patent Document 1 makes it easy to perform maintenance work on applications created by multiple businesses. However, the technology in Patent Document 1 does not allow for centralized management of the contents of individual applications.

 [本開示が解決しようとする課題]
 この開示は、複数の事業者により作成されたアプリケーションを一元的に管理できるアプリケーション管理装置、およびアプリケーション管理サーバを提供することを目的とする。
[Problem to be solved by this disclosure]
An object of the present disclosure is to provide an application management device and an application management server that can centrally manage applications created by a plurality of businesses.

 [本開示の効果]
 以上のようにこの開示によると、複数の事業者により作成されたアプリケーションを一元的に管理できるアプリケーション管理装置、およびアプリケーション管理サーバを提供できる。
[Effects of the present disclosure]
As described above, according to this disclosure, it is possible to provide an application management device and an application management server that are capable of centrally managing applications created by a plurality of businesses.

 [本開示の実施形態の説明]
 以下の説明および図面では、同一の部品には同一の参照番号を付してある。したがって、それらについての詳細な説明は繰返さない。なお、以下に記載する実施形態の少なくとも一部を任意に組み合わせてもよい。
[Description of the embodiments of the present disclosure]
In the following description and drawings, the same parts are denoted by the same reference numerals. Therefore, detailed description thereof will not be repeated. Note that at least some of the embodiments described below may be combined in any manner.

 (1)この開示の第1の局面に係るアプリケーション管理装置は、表示装置と、プログラム実行部と、ソフトウェア開発キットを記憶した記憶装置とを含み、前記プログラム実行部は、前記ソフトウェア開発キットを使用して、前記プログラム実行部が実行するアプリケーションを開発するアプリケーション開発機能と、前記アプリケーション開発機能により開発されたアプリケーションを管理するための管理情報を生成する機能と、前記アプリケーションの実行ログの取得の設定を行うログ取得設定機能と、前記アプリケーションの開発者を認証するための認証情報を取得する認証情報取得機能と、前記アプリケーションと、前記管理情報と、前記ログ取得設定機能によって設定された設定情報と、前記認証情報とを所定のアプリケーション管理サーバに送信する機能とを実装するようにプログラムされている。この構成により、SDK(Software Development Kit)により作成されたアプリケーションの開発者が認証でき、アプリケーション管理サーバにおいてアプリケーションの一元管理が可能になる。 (1) An application management device according to a first aspect of this disclosure includes a display device, a program execution unit, and a storage device storing a software development kit, and the program execution unit is programmed to implement an application development function for developing an application to be executed by the program execution unit using the software development kit, a function for generating management information for managing an application developed by the application development function, a log acquisition setting function for setting the acquisition of an execution log of the application, an authentication information acquisition function for acquiring authentication information for authenticating a developer of the application, and a function for transmitting the application, the management information, the setting information set by the log acquisition setting function, and the authentication information to a specified application management server. With this configuration, the developer of an application created by an SDK (Software Development Kit) can be authenticated, and the application can be centrally managed by the application management server.

 (2)上記(1)において、前記管理情報を生成する機能は、前記アプリケーションを管理するために必要な前記アプリケーションの属性情報を作成する機能、前記アプリケーションのハッシュ値を取得する機能、前記アプリケーションが使用するライブラリを特定するライブラリ情報を取得する機能、前記アプリケーションを端末に配信するスケジュールを作成する機能、前記開発者により入力された、前記アプリケーションの改定内容に基づいて、前記アプリケーションのバージョン情報を生成する機能、前記アプリケーションのインストール先を前記開発者により指定させる機能、前記アプリケーションのインストール時刻に関する指定を前記開発者に行わせる機能、のうちの少なくとも一つを含んでもよい。この構成により、SDKにより作成されたアプリケーションの開発者の認証に加え、アプリケーションの属性、アプリケーションの真正性に関する検証、アプリケーションの脆弱性、配信のスケジュール、バージョン情報、インストール先、インストール時刻などの少なくとも一つをアプリケーション管理サーバにおいて管理でき、アプリケーションの一元管理が可能になる。 (2) In (1) above, the function of generating management information may include at least one of the following: a function of creating attribute information of the application required for managing the application; a function of acquiring a hash value of the application; a function of acquiring library information identifying libraries used by the application; a function of creating a schedule for distributing the application to terminals; a function of generating version information of the application based on the revision contents of the application input by the developer; a function of allowing the developer to specify the installation destination of the application; and a function of allowing the developer to specify the installation time of the application. With this configuration, in addition to authenticating the developer of an application created by the SDK, at least one of the application attributes, verification of the authenticity of the application, application vulnerabilities, distribution schedule, version information, installation destination, installation time, etc. can be managed in the application management server, enabling centralized management of applications.

 (3)上記(1)または(2)において、前記ログ取得設定機能は、前記アプリケーションの実行時に前記アプリケーションから出力されるメッセージを、前記アプリケーションが稼働している装置と別の装置に転送するための転送機構を指定する転送機構指定機能を含んでもよい。この構成により、SDKにより作成されたアプリケーションの開発者の認証に加え、アプリケーションから出力されるメッセージの転送先をアプリケーション管理サーバにおいて管理でき、アプリケーションの一元管理が可能になる。 (3) In the above (1) or (2), the log acquisition setting function may include a transfer mechanism designation function that designates a transfer mechanism for transferring messages output from the application when the application is executed to a device other than the device on which the application is running. With this configuration, in addition to authenticating the developer of an application created by the SDK, the transfer destination of messages output from the application can be managed by the application management server, enabling centralized management of applications.

 (4)上記(3)において、前記アプリケーションから出力されるメッセージは、標準出力へのメッセージと、標準エラー出力へのメッセージとを含んでもよく、前記転送機構指定機能は、前記標準出力へのメッセージと、前記標準エラー出力へのメッセージとについて互いに独立に前記転送機構を指定してもよい。この構成により、SDKにより作成されたアプリケーションの開発者の認証に加え、アプリケーションから出力される通常のメッセージの転送先とエラーメッセージの転送先を別々にアプリケーション管理サーバにおいて管理でき、アプリケーションの一元管理が可能になる。 (4) In (3) above, the messages output from the application may include messages to standard output and messages to standard error output, and the transfer mechanism designation function may designate the transfer mechanisms for the messages to standard output and the messages to standard error output independently of each other. With this configuration, in addition to authenticating the developer of an application created by the SDK, the transfer destinations for normal messages and error messages output from the application can be managed separately in the application management server, enabling centralized management of applications.

 (5)上記(4)において、前記アプリケーションは、Dockerコンテナとして実行することが予定されており、前記転送機構指定機能は、Dockerシステムにおいて前記アプリケーションの出力を処理するロギングドライバを指定してもよい。この構成により、SDKにより作成されたアプリケーションの開発者の認証に加え、アプリケーションから出力される通常のメッセージの転送先とエラーメッセージの転送先を別々にアプリケーション管理サーバにおいて簡単に管理できる。その結果、アプリケーションの一元管理が可能になる。 (5) In (4) above, the application is intended to be executed as a Docker container, and the transfer mechanism designation function may designate a logging driver that processes the output of the application in the Docker system. With this configuration, in addition to authenticating the developer of an application created by the SDK, the transfer destinations of normal messages output by the application and the transfer destinations of error messages can be easily managed separately on the application management server. As a result, applications can be managed centrally.

 (6)上記(1)から(5)のいずれかにおいて、前記認証情報取得機能は、前記開発者の識別情報を前記開発者から取得する認証情報取得機能を含んでもよい。この構成により、SDKにより作成されたアプリケーションの開発者の認証に必要な情報を開発者本人から得てアプリケーション管理サーバが開発者の認証を実行できる。その結果、アプリケーションの一元管理が可能になる。 (6) In any of (1) to (5) above, the authentication information acquisition function may include an authentication information acquisition function that acquires identification information of the developer from the developer. With this configuration, the application management server can obtain information required for authenticating the developer of an application created by the SDK from the developer himself, and execute authentication of the developer. As a result, centralized management of applications becomes possible.

 (7)この開示の第2の局面に係るアプリケーション管理サーバは、記憶装置と、プログラム実行部とを含み、前記プログラム実行部は、アプリケーション管理装置から、前記アプリケーション管理装置により開発されたアプリケーションを管理するための管理情報と、前記アプリケーションの実行ログの取得の設定を示すログ取得設定情報と、前記アプリケーションの開発者を認証するための認証情報とを受信し、前記アプリケーションの開発者の認証を行う開発者認証機能と、前記開発者認証機能による認証が完了した前記アプリケーションについて、配信先への配信の承認を受ける承認処理を行う承認処理実行機能と、前記承認処理実行機能による承認を受けた前記アプリケーションを、前記管理情報により指定された条件に従って配信先に配信するアプリケーション配信機能とを実行するようにプログラムされている。この構成により、アプリケーション管理サーバにおいて、アプリケーションの開発者の認証およびアプリケーションからのログ取得の設定が可能になり、アプリケーションを管理するための管理情報が取得できる。その結果、アプリケーション管理サーバにおいて、一元的にアプリケーションを管理することが可能になる。 (7) An application management server according to a second aspect of this disclosure includes a storage device and a program execution unit, and the program execution unit is programmed to receive from the application management device management information for managing an application developed by the application management device, log acquisition setting information indicating settings for acquiring execution logs of the application, and authentication information for authenticating the developer of the application, and to execute a developer authentication function for authenticating the developer of the application, an approval process execution function for performing approval processing for receiving approval for distribution to a distribution destination for the application for which authentication by the developer authentication function has been completed, and an application distribution function for distributing the application approved by the approval process execution function to a distribution destination in accordance with conditions specified by the management information. With this configuration, the application management server is able to authenticate the developer of the application and set log acquisition from the application, and management information for managing the application can be acquired. As a result, applications can be managed centrally in the application management server.

 (8)上記(7)において、前記管理情報は、前記アプリケーションを端末に配信するスケジュール、および前記アプリケーションの配信対象の端末種類を含んでもよく、前記アプリケーション配信機能は、前記アプリケーションを、前記端末種類に適合する端末に、前記スケジュールに従って配信するスケジュール配信機能を含んでもよい。この構成により、アプリケーション管理サーバにおいて、アプリケーションの開発者の認証およびアプリケーションからのログ取得の設定が可能になることに加え、管理情報を用いて、アプリケーションの配信スケジュール、配信対象を管理し、スケジュールに従って指定の種類の端末にアプリケーションを配信できる。その結果、アプリケーション管理サーバにおいて、一元的にアプリケーションを管理することが可能になる。 (8) In (7) above, the management information may include a schedule for distributing the application to terminals and the types of terminals to which the application is to be distributed, and the application distribution function may include a schedule distribution function for distributing the application to terminals that match the terminal types according to the schedule. This configuration not only enables the application management server to authenticate application developers and set log acquisition from applications, but also allows the application distribution schedule and distribution targets to be managed using the management information, and the application to be distributed to specified types of terminals according to the schedule. As a result, applications can be managed centrally in the application management server.

 (9)上記(8)において、前記スケジュール配信機能は、前記端末種類、前記スケジュール、および前記アプリケーションを識別する情報を指定して、端末装置に前記アプリケーションを前記アプリケーション管理サーバからダウンロードさせるタスクを準備するタスク準備機能を含んでもよい。この構成により、アプリケーション管理サーバにおいて、アプリケーションの配信についてのタスクを準備することにより、スケジュールに従って指定の種類の端末にアプリケーションを配信できる。その結果、アプリケーション管理サーバにおいて、一元的にアプリケーションを管理することが可能になる。 (9) In (8) above, the schedule distribution function may include a task preparation function that specifies the terminal type, the schedule, and information that identifies the application, and prepares a task for causing a terminal device to download the application from the application management server. With this configuration, the application management server can prepare a task for distributing the application, thereby distributing the application to a specified type of terminal according to a schedule. As a result, it becomes possible to centrally manage applications in the application management server.

 この開示は、このような特徴的な処理部を備えたアプリケーション管理装置、およびアプリケーション管理サーバとして実現できるだけでなく、係る特徴的な処理をステップとするアプリケーション管理方法として実現したり、係るステップをコンピュータに実行させるためのプログラムとして実現したりできる。また、アプリケーション管理装置の一部または全部を実現する半導体集積回路として実現したり、アプリケーション管理装置を含むアプリケーション管理システムとして実現したりできる。 This disclosure can be realized not only as an application management device and an application management server equipped with such characteristic processing units, but also as an application management method having such characteristic processing steps, or as a program for causing a computer to execute such steps. It can also be realized as a semiconductor integrated circuit that realizes part or all of the application management device, or as an application management system that includes the application management device.

 [本開示の実施形態の詳細]
 本開示の実施形態に係るアプリケーション管理装置、およびアプリケーション管理サーバの具体例を、以下に図面を参照しつつ説明する。なお、本開示はこれらの例示に限定されるものではなく、請求の範囲によって示され、請求の範囲と均等の意味および範囲内における全ての変更が含まれることが意図される。
[Details of the embodiment of the present disclosure]
Specific examples of an application management device and an application management server according to an embodiment of the present disclosure will be described below with reference to the drawings. Note that the present disclosure is not limited to these examples, but is defined by the claims, and is intended to include all modifications within the meaning and scope of the claims.

 1.第1実施形態
 図1を参照して、この開示の第1実施形態に係るアプリケーション管理システム50は、開発対象のシステムを統括する事業者(以下、「統括事業者」という。)が運営するものである。アプリケーション管理システム50は、開発する開発者80の使用する開発用端末60を含む。この開発用端末60には、アプリケーション開発のために統括事業者が作成し各開発者に配布するソフトウェア開発キット(SDK(Software Development Kit))62が導入されている。開発用端末60は、このSDK62を使用してアプリケーションを開発する。SDK62は、アプリケーション開発のためのツールなどだけではなく、このSDK62を使用して開発したアプリケーションの管理のための様々な仕組みが備えられている。
1. First embodiment With reference to FIG. 1, an application management system 50 according to a first embodiment of this disclosure is operated by an enterprise that manages systems to be developed (hereinafter, referred to as a "management enterprise"). The application management system 50 includes a development terminal 60 used by a developer 80 who develops the system. A software development kit (SDK (Software Development Kit)) 62 that is created by the management enterprise for application development and distributed to each developer is installed in the development terminal 60. The development terminal 60 develops an application using the SDK 62. The SDK 62 is provided with not only tools for application development, but also various mechanisms for managing applications developed using the SDK 62.

 アプリケーション管理システム50はさらに、開発者80が開発したアプリケーションプログラム64のアップロード66を受け、開発者80の認証処理および統括事業者の承認者70による承認処理を実行し、さらにアプリケーションの配布対象となる車両76に搭載された車載機78に、承認後のアプリケーション72の配信処理74を実行するアプリケーション管理サーバ68を含む。図1においては、アプリケーション管理サーバ68をいわゆるクラウドとして示す。 The application management system 50 further includes an application management server 68 that receives an upload 66 of an application program 64 developed by a developer 80, performs authentication processing for the developer 80 and approval processing by an approver 70 of the central business operator, and then performs distribution processing 74 of the approved application 72 to an on-board device 78 installed in a vehicle 76 to which the application is to be distributed. In FIG. 1, the application management server 68 is shown as a so-called cloud.

 図2を参照して、車両76の車載機78がアプリケーション管理サーバ68から配信されたアプリケーションの運用においては、車載機78は、アプリケーションの出力する管理情報110をアプリケーション運用サーバ112に送信する。システム運用者100の管理者114がアプリケーション運用サーバ112の受信した管理情報に基づいて、各アプリケーションの運用状況を管理する。なお、この実施形態においては、管理情報110として、実行中の各アプリケーションが出力するログを用いるものとする。 Referring to FIG. 2, when an onboard device 78 of a vehicle 76 operates an application distributed from an application management server 68, the onboard device 78 transmits management information 110 output by the application to an application operation server 112. An administrator 114 of the system operator 100 manages the operation status of each application based on the management information received by the application operation server 112. Note that in this embodiment, the logs output by each application being executed are used as the management information 110.

 なお、開発用端末60、アプリケーション管理サーバ68、および車載機78などは、同一の国内に存在している必要はない。例えば開発用端末60は複数の国に分散して配置されることが多い。アプリケーション管理サーバ68についても同じである。すなわち、アプリケーション管理サーバ68はいわゆるクラウドとなっており、複数のサーバが様々な国および地域に存在して互いに通信を行うことにより、一つのアプリケーション管理サーバ68の機能を実装するようにしてもよい。さらに、車載機78の存在する国も開発用端末60が存在する国および地域、またはアプリケーション管理サーバ68が存在する国および地域によっては制限されない。 Note that the development terminal 60, application management server 68, and in-vehicle device 78 do not need to be located within the same country. For example, the development terminal 60 is often located in multiple countries. The same is true for the application management server 68. In other words, the application management server 68 is a so-called cloud, and multiple servers may exist in various countries and regions and communicate with each other to implement the functions of a single application management server 68. Furthermore, the country in which the in-vehicle device 78 is located is not limited by the country or region in which the development terminal 60 is located or the country or region in which the application management server 68 is located.

 図3を参照して、図1に示す開発用端末60には、モニタ140およびキーボード142など、アプリケーション作成に必要な入出力デバイスが接続されている。開発用端末60は、アプリケーション管理サーバ68との間において双方向通信を行うための通信部162と、CPU(Central Processing Unit)170を含むプログラム実行部160とを含む。すなわち、開発用端末60は通信部162を備えたコンピュータである。モニタ140およびキーボード142は、それぞれ適切なインターフェイスを介してCPU170との通信を行う。 Referring to FIG. 3, input/output devices necessary for application creation, such as a monitor 140 and a keyboard 142, are connected to the development terminal 60 shown in FIG. 1. The development terminal 60 includes a communication unit 162 for two-way communication with the application management server 68, and a program execution unit 160 including a CPU (Central Processing Unit) 170. In other words, the development terminal 60 is a computer equipped with a communication unit 162. The monitor 140 and the keyboard 142 each communicate with the CPU 170 via an appropriate interface.

 開発用端末60はさらに、プログラム実行部160に接続された記憶部164を含む。記憶部164は、RAM(Random Access Memory)などの高速アクセスが可能な揮発性の記憶装置と、SSD(Solid State Drive)、さらにハードディスクなど、比較的低速アクセスではあるが不揮発性の記憶装置とを含む。前者は主としてプログラムの実行時の一時的記憶として使用され、後者はプログラムまたは収集後の管理情報など、頻繁にはアクセスしない情報の記憶装置として用いられる。 The development terminal 60 further includes a storage unit 164 connected to the program execution unit 160. The storage unit 164 includes a volatile storage device that allows high-speed access, such as a RAM (Random Access Memory), and a non-volatile storage device that allows relatively slow access, such as a Solid State Drive (SSD) or a hard disk. The former is primarily used as temporary storage during program execution, and the latter is used as a storage device for information that is not frequently accessed, such as the program or management information after collection.

 記憶部164は、図1に示すSDK62と同じSDK180と、管理情報生成プログラム182と、ログ取得設定プログラム184とを記憶している。管理情報生成プログラム182は、アプリケーション管理サーバ68にアプリケーションをアップロードする際に、そのアプリケーションに付加する管理情報を生成する。ログ取得設定プログラム184は、アップロードされるアプリケーションが運用時に出力するログに関する設定を行う。 The storage unit 164 stores an SDK 180, which is the same as the SDK 62 shown in FIG. 1, a management information generation program 182, and a log acquisition setting program 184. The management information generation program 182 generates management information to be added to an application when the application is uploaded to the application management server 68. The log acquisition setting program 184 performs settings related to the logs that the uploaded application outputs during operation.

 記憶部164はさらに、認証情報取得プログラム186と、アップロードプログラム188とを記憶している。認証情報取得プログラム186は、アプリケーションをアプリケーション管理サーバ68にアップロードする際に、開発者80の認証処理を行うための認証情報を開発者80から取得する。アップロードプログラム188は、完成したアプリケーションをアプリケーション管理サーバ68にアップロードする処理を実行する。 The storage unit 164 further stores an authentication information acquisition program 186 and an upload program 188. The authentication information acquisition program 186 acquires authentication information from the developer 80 for performing authentication processing for the developer 80 when uploading an application to the application management server 68. The upload program 188 executes processing to upload a completed application to the application management server 68.

 図4に、図3に示す管理情報生成プログラム182の持つアプリケーション管理に関する各種機能の詳細を示す。図4を参照して、管理情報生成プログラム182は、アプリケーションの属性を表す属性情報を作成する属性情報作成機能230と、最終的に完成したアプリケーションの同一性を確認するためのハッシュ値を算出するハッシュ値算出機能232と、アプリケーションの変更に伴って変化するバージョン情報を作成するバージョン情報作成機能234と、完成したアプリケーションの配信スケジュールを作成するためのスケジュール作成機能236とを含む。 FIG. 4 shows details of various functions related to application management possessed by the management information generation program 182 shown in FIG. 3. Referring to FIG. 4, the management information generation program 182 includes an attribute information creation function 230 that creates attribute information representing the attributes of an application, a hash value calculation function 232 that calculates a hash value for verifying the identity of the final completed application, a version information creation function 234 that creates version information that changes as the application is modified, and a schedule creation function 236 that creates a distribution schedule for the completed application.

 管理情報生成プログラム182はさらに、アプリケーションが内部において使用しているライブラリに関する情報を取得するためのライブラリ情報取得機能238と、アプリケーションを配信してインストールする車載機に関する情報を設定するためのインストール先設定機能240と、必要に応じて、アプリケーションをインストール先に配信する時刻を設定するためのインストール時刻設定機能242とを含む。 The management information generation program 182 further includes a library information acquisition function 238 for acquiring information about libraries used internally by the application, an installation destination setting function 240 for setting information about the vehicle-mounted device to which the application is to be distributed and installed, and, if necessary, an installation time setting function 242 for setting the time at which the application is to be distributed to the installation destination.

 管理情報生成プログラム182は、こうした機能を使用することにより、SDK180を使用して作成されたアプリケーションを管理するための管理情報を生成する。 The management information generation program 182 uses these functions to generate management information for managing applications created using the SDK 180.

 図5に、管理情報の詳細を示す。図5を参照して、管理情報による管理対象項目は、アプリケーションの名称と、バージョンと、ハッシュ値と、使用されているOSS(Open Source Software)ライブラリのリスト(OSSリスト)と、インストール先と、インストール時刻とを含む。 Details of the management information are shown in Figure 5. Referring to Figure 5, the items to be managed by the management information include the application name, version, hash value, a list of OSS (Open Source Software) libraries being used (OSS list), installation destination, and installation time.

 各管理対象項目について管理する情報は、その管理対象項目の作成者と、その管理対象項目の内容の作成または取得方法に関する情報と、その管理対象項目の用途とを含む。 The information managed for each managed item includes the creator of the managed item, information about how the content of the managed item was created or obtained, and the use of the managed item.

 図5に示すのは、管理情報の一例である。例えば、ここにあげる例においては、アプリケーションの名称については、作成者は開発者である。その取得方法または作成方法としては、開発者が入力した名称をSDK180が入手する、という方法を使用する。用途としてはアプリケーションを識別するための識別子として使用される。 FIG. 5 shows an example of management information. In this example, the creator of the application name is the developer. The method of obtaining or creating the name is that the SDK 180 obtains the name entered by the developer. The purpose of the information is to use it as an identifier for identifying the application.

 バージョンに関する情報の作成者はSDKであり、開発者が指定した改定内容と、SDKが同一アプリケーションについてクラウドから取得した全バージョンに関する情報とをあわせて、SDKが作成する。バージョン情報は、アプリケーションの名称とあわせて識別子として使用される。 The SDK is the creator of the version information, and creates it by combining the revision details specified by the developer with information about all versions of the same application that the SDK retrieves from the cloud. The version information is used as an identifier together with the application name.

 図6を参照して、バージョン情報の作成方法について説明する。図6に示すのは、アプリケーションのアップロード画面270である。アップロード画面270は、「アプリケーションtest1をサーバに登録します。」というタイトル300からも分かるとおり、アプリケーションの開発者が、完成したアプリケーションを図1に示すアプリケーション管理サーバ68にアップロードするときの画面である。 The method for creating version information will be described with reference to FIG. 6. FIG. 6 shows an application upload screen 270. As can be seen from the title 300, "Register application test1 on the server," upload screen 270 is the screen used when an application developer uploads a completed application to application management server 68 shown in FIG. 1.

 アップロード画面270はさらに、開発者が行ったアプリケーションへの変更について開発者が選択するための4つの選択肢からなる変更指定リスト302を含む。変更指定リスト302は4つのチェックボックスを含む。1番目のチェックボックスは、アプリケーションが新規作成されたときに選択される。2番目のチェックボックスは、アプリケーションのインターフェイスの見た目、操作性、または振る舞いに大きく影響する改定をアプリケーションに対して行ったときに選択される。3番目のチェックボックスは、アプリケーションに対して、細かな機能向上、または部分的な追加を行ったときに選択される。4番目のチェックボックスは、アプリケーションのバグ修正、または微細な修正を行ったときに選択される。 The upload screen 270 further includes a change specification list 302 that consists of four options that the developer can select for changes made to the application by the developer. The change specification list 302 includes four check boxes. The first check box is selected when a new application is created. The second check box is selected when revisions are made to the application that significantly affect the appearance, operability, or behavior of the application's interface. The third check box is selected when minor improvements to the application or partial additions are made. The fourth check box is selected when bug fixes or minor modifications are made to the application.

 アップロード画面270はさらに、IDフィールド304、パスワードフィールド306、送信ボタン308、キャンセルボタン310を含む。IDフィールド304は、開発者の識別子を入力する。パスワードフィールド306は、開発者に割り当てられたパスワードを入力する。送信ボタン308は、そのパスワードの入力を確認後、アプリケーションをアプリケーション管理サーバ68に送信するときにクリックする。キャンセルボタン310は、その送信を中止し、画面をこの前の画面に戻すときにクリックする。 The upload screen 270 further includes an ID field 304, a password field 306, a send button 308, and a cancel button 310. The ID field 304 is used to input a developer's identifier. The password field 306 is used to input a password assigned to the developer. The send button 308 is clicked to send the application to the application management server 68 after confirming the password input. The cancel button 310 is clicked to abort the transmission and return the screen to the previous screen.

 バージョン情報は、主として変更指定リスト302のうち、いずれが選択されたかに基づいて作成される。例えば新規作成時にはバージョン情報は「1.0.0」に設定される。2番目の選択肢が選択されたときには、前バージョンのバージョン情報が「X.Y.Z」であったとすれば、新たなバージョン情報はXをインクリメントする。3番目の選択肢が選択されたときには、Yをインクリメントする。そして、4番目の選択肢が選択されたときにはZをインクリメントする。 The version information is created mainly based on which option in the change specification list 302 is selected. For example, when creating a new version, the version information is set to "1.0.0". When the second option is selected, if the version information of the previous version was "X.Y.Z", the new version information increments X. When the third option is selected, Y is incremented. And when the fourth option is selected, Z is incremented.

 再び図5を参照して、ハッシュ値の作成者はSDKである。ハッシュ値は、アップロード前のアプリケーションのハッシュ値をSDKが算出することにより取得される。ハッシュ値は、アプリケーションの改ざんまたはなりすましの判定に使用される。 Referring again to FIG. 5, the creator of the hash value is the SDK. The hash value is obtained by the SDK calculating the hash value of the application before it is uploaded. The hash value is used to determine whether the application has been tampered with or impersonated.

 OSSリストの作成者はSDKであり、アプリケーションが含むライブラリの名称をSDKが取得する。この情報は、アプリケーションが含むライブラリに脆弱性があるか否かを判定するために使用される。 The OSS list is created by the SDK, which obtains the names of libraries included in the application. This information is used to determine whether the libraries included in the application have vulnerabilities.

 インストール先に関する情報の作成者は開発者である。開発者がインストール先を決定し、SDKにより準備される所定の入力画面において入力し、SDKが、この情報を取得する。インストール先に関する情報は、開発者がアプリケーションのインストール先を制御するために開発者が選定する。このインストール先とは、例えば該当する車載機の機番、個別の車載機の識別子などにより指定される。 The creator of the information regarding the installation destination is the developer. The developer decides on the installation destination and enters it on a specific input screen prepared by the SDK, and the SDK acquires this information. The information regarding the installation destination is selected by the developer in order to control the installation destination of the application. This installation destination is specified, for example, by the model number of the corresponding in-vehicle unit or the identifier of an individual in-vehicle unit.

 インストール時刻に関する情報は開発者により作成される。インストール時刻については、開発者がSDKにより準備された所定の入力画面において入力する。この情報は、アプリケーションのインストール時刻を制御するために開発者が指定する。サービスによっては、所定のタイミングにおいて一斉にその仕様を変更したい場合もある。そうした場合にアプリケーションのインストール時刻を指定してもよい。なお、アプリケーションの配信時刻および配信場所の入力があれば、アプリケーション管理情報に付帯情報として付与される。 Information related to the installation time is created by the developer. The developer enters the installation time on a specific input screen prepared by the SDK. This information is specified by the developer in order to control the application installation time. Depending on the service, it may be necessary to change the specifications all at once at a specific timing. In such cases, the application installation time may be specified. Note that if the application distribution time and distribution location are entered, they are added as additional information to the application management information.

 以下、ログ取得設定の機能(ログ取得設定機能)について説明する。図7を参照して、この実施形態においては、各アプリケーションの実行環境350として、Docker(登録商標)により提供されるコンテナ(Dockerコンテナ)360を利用する。ログ出力には、DockerのLogging機構を利用する。Logging機構においては、アプリケーションからの通常のログについては標準出力362に出力し、エラーログについてはネットワーク364に出力する。なお、標準出力は、通常はstdoutと表記され、標準エラー出力はstderrと表記される。 The log acquisition setting function (log acquisition setting function) will be described below. With reference to FIG. 7, in this embodiment, a container (Docker container) 360 provided by Docker (registered trademark) is used as the execution environment 350 for each application. The Docker logging mechanism is used for log output. In the logging mechanism, normal logs from the application are output to standard output 362, and error logs are output to network 364. Note that standard output is usually written as stdout, and standard error output is written as stderr.

 これら標準出力362およびネットワーク364の各々について、個別にロギングドライバ366を指定する。ロギングドライバ366を指定することにより、ログの形式、転送先などを指定できる。転送先においてログの分析を行い、その結果をさらにクラウドに転送することなどが可能になる。例えば第1ドライバ368により、標準出力362に出力されたログを所定の形式にして第1転送先370に転送し、第2ドライバ372により、ネットワーク364に出力されたログを所定の形式にして第2転送先374に転送する、などの処理が行える。ログ出力設定は、そのアプリケーションが標準出力362およびネットワーク364に出力したログを、どのロギングドライバを使用して、どのような形式を用い、どのようなタイミングにより、どこに転送するかを設定するための情報である。これらの設定を行うのが、図3に示すログ取得設定プログラム184である。なお、ログ取得を行うプログラム自体は、Dockerにより提供されるものであり、ログ取得設定プログラム184とは別のものである。なお、アプリケーションの実行時にアプリケーションから出力されるメッセージを、アプリケーションが稼働している装置と別の装置に転送するための転送機構を指定する機能を、転送機構指定機能と称する。また、Dockerにより提供されるシステムを、Dockerシステムと称する。 For each of the standard output 362 and the network 364, a logging driver 366 is specified individually. By specifying the logging driver 366, the format of the log, the transfer destination, etc. can be specified. It is possible to analyze the log at the transfer destination and transfer the result to the cloud. For example, the first driver 368 can convert the log output to the standard output 362 into a predetermined format and transfer it to the first transfer destination 370, and the second driver 372 can convert the log output to the network 364 into a predetermined format and transfer it to the second transfer destination 374. The log output setting is information for setting which logging driver is used, what format is used, when, and where the log output to the standard output 362 and the network 364 is transferred by the application. These settings are made by the log acquisition setting program 184 shown in FIG. 3. The program itself for acquiring the log is provided by Docker and is separate from the log acquisition setting program 184. The function of specifying a transfer mechanism for transferring messages output from an application when the application is executed to a device other than the device on which the application is running is called the transfer mechanism specification function. Also, the system provided by Docker is called the Docker system.

 図8は、この実施形態において、開発者80、SDK62、アプリケーション管理サーバ68、承認者70、管理者114、および車載機78の間における処理のシーケンス図を示す。図8を参照して、まず開発者80がSDK62を使用してアプリケーション開発400を行う。次に開発者80は、アプリケーションを図1に示すアプリケーション管理サーバ68にアップロードするために、図9(図6)に示すアップロード画面270を起動する。開発者80は、変更指定リスト302のいずれかを選択し、自己の識別子をIDフィールド304に、パスワードをパスワードフィールド306に、それぞれ入力する。 FIG. 8 shows a sequence diagram of processing between the developer 80, SDK 62, application management server 68, approver 70, administrator 114, and in-vehicle device 78 in this embodiment. Referring to FIG. 8, first the developer 80 uses the SDK 62 to perform application development 400. Next, the developer 80 launches the upload screen 270 shown in FIG. 9 (FIG. 6) in order to upload the application to the application management server 68 shown in FIG. 1. The developer 80 selects one of the change specification lists 302 and enters his/her own identifier in the ID field 304 and his/her password in the password field 306.

 このとき、図3に示す管理情報生成プログラム182は、開発者80による入力およびアプリケーションの内容に基づいて、図8に示すアプリ管理情報取得処理402を実行する。具体的には、図4に示す、アプリ管理情報取得処理402の属性情報作成機能230が、アプリケーションの属性情報(例えばアプリケーションの名称、作成者名、送信時刻など)を作成する。ハッシュ値算出機能232が、アプリケーションのオブジェクトコードに基づいてハッシュ値を算出する。バージョン情報作成機能234は、変更指定リスト302と、アプリケーション管理サーバ68から収集した同じ名称のアプリケーションのバージョン情報に基づいて新たなバージョン情報を作成する。スケジュール作成機能236は、開発者80により指定されたスケジュールに基づいてスケジュール情報を作成する。ライブラリ情報取得機能238は、例えばオブジェクトプログラムに含まれるライブラリからライブラリ情報を取得する。インストール先設定機能240は、開発者80による入力に基づいてインストール先に関する情報を設定する。インストール時刻設定機能242は、開発者80による入力に基づいて、インストール時刻を設定する。これら管理情報は、いずれもアプリケーションに付随する情報となる。 At this time, the management information generation program 182 shown in FIG. 3 executes the application management information acquisition process 402 shown in FIG. 8 based on the input by the developer 80 and the contents of the application. Specifically, the attribute information creation function 230 of the application management information acquisition process 402 shown in FIG. 4 creates attribute information of the application (e.g., the name of the application, the name of the creator, the transmission time, etc.). The hash value calculation function 232 calculates a hash value based on the object code of the application. The version information creation function 234 creates new version information based on the change specification list 302 and the version information of the application of the same name collected from the application management server 68. The schedule creation function 236 creates schedule information based on the schedule specified by the developer 80. The library information acquisition function 238 acquires library information from, for example, a library included in the object program. The installation destination setting function 240 sets information related to the installation destination based on the input by the developer 80. The installation time setting function 242 sets the installation time based on the input by the developer 80. All of this management information becomes information accompanying the application.

 続いて、ログ情報取得設定処理404が実行される。具体的には、図3に示すログ取得設定プログラム184が、アプリケーションの内容に基づき、Dockerコンテナにおいてそのアプリケーションが使用するロギングドライバを、図7に示す標準出力362およびネットワーク364の双方について設定する。この情報は、この実施形態においては、指定された設定に従ってコンテナを設定する一連のコマンド列として実現される。 Then, the log information acquisition setting process 404 is executed. Specifically, the log acquisition setting program 184 shown in FIG. 3 sets the logging driver used by the application in the Docker container based on the contents of the application, for both the standard output 362 and the network 364 shown in FIG. 7. In this embodiment, this information is realized as a series of commands that configure the container according to the specified settings.

 図8を参照して、続いて、アプリの認証処理406が実行される。認証処理406は、図9に示すアップロード画面270において、開発者80が、送信ボタン308をクリックしてアプリケーションの認証処理440を開始することにより実行される。 Referring to FIG. 8, next, authentication processing 406 of the application is executed. Authentication processing 406 is executed when the developer 80 clicks the send button 308 on the upload screen 270 shown in FIG. 9 to start authentication processing 440 of the application.

 具体的には、開発者80が図9に示す送信ボタン308をクリックすることにより、アプリ管理情報、ログ情報取得設定情報、および開発者80の識別子とパスワードからなる認証情報が、SDK62によってアプリケーションに付加される。アプリ管理情報は、アプリ管理情報取得処理402において取得される。ログ情報取得設定情報は、ログ情報取得設定処理404において設定される。開発者80の識別子は図9のIDフィールド304に入力され、開発者80のパスワードは、図9のパスワードフィールド306に入力される。SDK62は、これらの情報をアプリケーション管理サーバ68へ送付するアプリケーション送付処理442を実行する。 Specifically, when the developer 80 clicks the send button 308 shown in FIG. 9, the SDK 62 adds to the application the application management information, log information acquisition setting information, and authentication information consisting of the developer 80's identifier and password. The application management information is acquired in an application management information acquisition process 402. The log information acquisition setting information is set in a log information acquisition setting process 404. The developer 80's identifier is entered in the ID field 304 in FIG. 9, and the developer 80's password is entered in the password field 306 in FIG. 9. The SDK 62 executes an application sending process 442 that sends this information to the application management server 68.

 このアプリケーションを管理情報および認証情報とともに受信したアプリケーション管理サーバ68においては、開発者認証444を実行する。すなわち、アプリケーション管理サーバ68は、アプリケーション管理サーバ68(または他の認証サーバ)が管理している開発者データベースを参照して開発者80の識別子およびパスワードを、記録されている情報と照合し、開発者の認証を行う。認証に失敗すればアプリケーション管理サーバ68からSDK62にその旨が通知される。図9を参照して、この認証に成功すれば、アプリケーションは、管理情報とともにアプリケーション管理テーブル482に登録される(図9の最下行)。ただし、まだアプリケーションの配信の承認はされていない。そのため、処理中のアプリケーション(test1)が配信可能か否かを示すフラグには、まだ承認がされておらず配信が可能でないことを示す値が代入されている(図10において「未」により示す。)。 The application management server 68, which has received this application together with the management information and authentication information, executes developer authentication 444. That is, the application management server 68 refers to a developer database managed by the application management server 68 (or another authentication server), compares the identifier and password of the developer 80 with the recorded information, and authenticates the developer. If the authentication fails, the application management server 68 notifies the SDK 62 accordingly. Referring to FIG. 9, if this authentication is successful, the application is registered in the application management table 482 together with the management information (bottom line of FIG. 9). However, the application has not yet been approved for distribution. Therefore, a value indicating that the application being processed (test1) is not yet available for distribution is assigned to the flag indicating whether the application being processed (test1) is available for distribution (indicated by "Not yet" in FIG. 10).

 この後、アプリケーション管理サーバ68においてアプリケーション承認処理408が開始される。 After this, the application approval process 408 is started in the application management server 68.

 なお、図9に示す例においてはアップロード画面270のように、開発者80が自らの識別子とパスワードとを入力する。しかしこの開示は、そのような実施形態に限定されるわけではない。例えば、識別子とパスワードとを手入力させることに代えて、予め開発者80に対してその識別子とパスワードとに相当する情報を記録した、カード形式の社員証を配布してもよい。図10にそうした例を示す。 In the example shown in FIG. 9, developer 80 inputs his/her own identifier and password, as in upload screen 270. However, this disclosure is not limited to such an embodiment. For example, instead of having developer 80 input the identifier and password manually, developer 80 may be provided with a card-type employee ID card on which information equivalent to the identifier and password is recorded in advance. Such an example is shown in FIG. 10.

 図10を参照して、この例のアップロード画面500は、アップロード画面270のIDフィールド304およびパスワードフィールド306に代えて、社員証をカードリーダにかざすよう促すプロンプト504を表示する点において図9に示すアップロード画面270と異なる。その他の点において、アップロード画面500はアップロード画面270と同じである。ただし、開発用端末60には、カードリーダ502を接続し、社員証を読み込むことができるようにしておく必要がある。社員証から開発者80の識別子およびパスワードに相当する情報を読み込んだ後は、アップロード画面500による処理はアップロード画面270による処理と同じである。 Referring to FIG. 10, upload screen 500 in this example differs from upload screen 270 shown in FIG. 9 in that, instead of ID field 304 and password field 306 of upload screen 270, upload screen 500 displays prompt 504 urging the user to hold their employee ID card over a card reader. In other respects, upload screen 500 is the same as upload screen 270. However, a card reader 502 must be connected to development terminal 60 so that it can read the employee ID card. After information corresponding to developer 80's identifier and password has been read from the employee ID card, the processing by upload screen 500 is the same as the processing by upload screen 270.

 再び図8を参照して、アプリケーション承認処理408においては、アプリケーション管理サーバ68は、プロジェクトにおいて予め設定された承認者70に対して、開発者認証444に成功したアプリケーションに関するアプリケーション承認依頼450を行う。具体的には、アプリケーション管理サーバ68は、承認者70に対してワークフロー経由または電子メール経由などにより、アプリケーション承認依頼450を送信する。承認者70がこのアプリケーション承認依頼450に応答してアプリケーションおよび管理情報について内容確認452をする。特に問題がなければ承認者70はアプリケーションの配信に関する承認454を行う。承認454に関する情報はアプリケーション管理サーバ68に送信される。この結果、アプリケーションは配信可能状態となる。 Referring again to FIG. 8, in the application approval process 408, the application management server 68 makes an application approval request 450 for an application that has successfully passed developer authentication 444 to an approver 70 preset in the project. Specifically, the application management server 68 sends the application approval request 450 to the approver 70 via a workflow or email. In response to this application approval request 450, the approver 70 confirms 452 the contents of the application and management information. If there are no particular problems, the approver 70 gives approval 454 for the distribution of the application. Information regarding approval 454 is sent to the application management server 68. As a result, the application becomes available for distribution.

 この実施形態におけるアプリケーション承認処理408(図8)の詳細を、図11を参照して説明する。図11に示すように、アプリケーションtest1の承認前には、アプリケーション管理テーブル482においてアプリケーションtest1の情報を格納したレコード570の配信承認欄572は「未」となっている。すなわちアプリケーションtest1の配信がまだ認められていない。 Details of the application approval process 408 (FIG. 8) in this embodiment will be described with reference to FIG. 11. As shown in FIG. 11, before the approval of application test1, the distribution approval column 572 of the record 570 storing the information of application test1 in the application management table 482 is "Not yet." In other words, the distribution of application test1 has not yet been approved.

 この実施形態においては、アプリケーションの認証処理が完了すると、まず第1管理者550に対して承認依頼がアプリケーション管理テーブル482から送られる。第1管理者550がこの承認依頼を承認すると、さらに承認依頼が第2管理者552に送信される。第2管理者552がこの承認依頼を承認すると、さらに責任者554に対して承認依頼が送信される。責任者554がこの承認依頼を承認すると、図11の下段に示すアプリケーション管理テーブル482により示されるように、レコード570の配信承認欄572の値が「済」となる。その結果、アプリケーションtest1を各車載装置に配信することが可能になる。 In this embodiment, when the application authentication process is completed, an approval request is first sent from the application management table 482 to the first administrator 550. If the first administrator 550 approves this approval request, an approval request is further sent to the second administrator 552. If the second administrator 552 approves this approval request, an approval request is further sent to the responsible person 554. If the responsible person 554 approves this approval request, the value of the distribution approval column 572 of the record 570 becomes "Done", as shown in the application management table 482 shown in the lower part of Figure 11. As a result, it becomes possible to distribute the application test1 to each in-vehicle device.

 なお、この実施形態においては、上記したように2人の管理者による承認と、最後の責任者による承認との3者の承認を受けないとアプリケーションの配信が認められない。しかしこの開示はそのような実施形態には限定されない。アプリケーションの重要度、振る舞いなどに基づいて、承認経路を変更してもよい。例えばデータに対して読み出しのみ行うアプリケーションと、データに対して書き込みなどを行うアプリケーショとにおいて、後者をより厳重に承認処理が行われるような承認経路を設けるようにしてもよい。アプリケーションの重要度が高ければ高いほど、承認者の数を多くしてもよいし、またはより権限の高い承認者による承認を受けるようにしてもよい。 In this embodiment, as described above, an application cannot be distributed without approval from three parties: two administrators and the final person in charge. However, this disclosure is not limited to such an embodiment. The approval path may be changed based on the importance and behavior of the application. For example, an approval path may be set up such that stricter approval processing is performed for an application that only reads data and an application that writes data. The more important the application, the more approvers may be allowed, or approval may be obtained from an approver with higher authority.

 再び図8を参照して、アプリケーション承認処理408が完了した後、管理者114がアプリケーションを車載機78に送信する時刻であると判定すると、管理者114はアプリケーション管理サーバ68に対して車載機に対してOTAによりアプリケーションを配信する指示410を行う。この指示410に応答して、アプリケーション管理サーバ68は、OTAタスク作成・追加処理412を実行する。 Referring again to FIG. 8, after the application approval process 408 is completed, when the administrator 114 determines that it is time to transmit the application to the in-vehicle device 78, the administrator 114 issues an instruction 410 to the application management server 68 to deliver the application to the in-vehicle device by OTA. In response to this instruction 410, the application management server 68 executes an OTA task creation/addition process 412.

 指示410およびOTAタスク作成・追加処理412について、図12を参照して説明する。アプリケーション管理サーバ68は、既に説明したように、開発用端末60からのアプリケーションのアップロードを受けて、開発者の認証およびアプリケーションの真正性の検証と、配信承認処理とを実行するソフトウェア管理プログラム610を含む。 The instruction 410 and the OTA task creation/addition process 412 will be described with reference to FIG. 12. As already described, the application management server 68 includes a software management program 610 that receives an application uploaded from the development terminal 60, authenticates the developer, verifies the authenticity of the application, and executes distribution approval processing.

 たとえば配信管理者580は、アプリケーション(例えばアプリケーションtest1)を、どの車載機にいつ配信(インストール)するかを決定し、ソフトウェア管理プログラム610に対して指示を行う。ソフトウェア管理プログラム610は、この指示に応答して、該当する各アプリケーションについてアプリケーション配信のためのタスク622を作成し、タスク管理テーブル616に登録する。この実施形態においては、タスクはOTAによりアプリケーションをインストールまたは更新する、というものである。 For example, the distribution manager 580 determines when to distribute (install) an application (e.g., application test1) to which in-vehicle device, and issues instructions to the software management program 610. In response to this instruction, the software management program 610 creates a task 622 for application distribution for each applicable application, and registers it in the task management table 616. In this embodiment, the task is to install or update the application via OTA.

 アプリケーション管理サーバ68はさらに、ソフトウェア配信プログラム612とソフトウェア保管部614とを含む。ソフトウェア配信プログラム612は、タスク管理テーブル616に登録されたタスクのうち、配信指定時刻となったタスクを読み出す。ソフトウェア配信プログラム612は、そのタスクにより指定されたアプリケーションを、そのタスクにより指定された配信先に配信し、インストールさせる。ソフトウェア保管部614は、ソフトウェア管理プログラム610によりアプリケーション管理テーブル482として管理されているソフトウェア(アプリケーション)を保管する。 The application management server 68 further includes a software distribution program 612 and a software storage unit 614. The software distribution program 612 reads out a task that has reached the designated distribution time from among the tasks registered in the task management table 616. The software distribution program 612 distributes the application specified by the task to the distribution destination specified by the task, and causes it to be installed. The software storage unit 614 stores software (applications) that are managed by the software management program 610 as the application management table 482.

 具体的には、ソフトウェア配信プログラム612は以下のような処理を行う。図8に戻り、アプリケーション管理サーバ68がOTAタスク作成・追加処理412を実行する事により、そのタスクに該当する車載機78に対してタスクを指示する準備が整ったことになる。この状態において車載機78が起動すると、車載機78は以下のようにしてアプリケーション取得処理618を行う。すなわち、車載機78は、MQTT(Message Queuing Telemetry Transport)プロトコルに従い、アプリケーション管理サーバ68(または中間のメッセージブローカ)をアクセスするクライアント処理414を実行し、車載機78に対するメッセージがあるか否かを判定する。メッセージがあると、車載機78はそのメッセージにより指定されるタスク624(図12)をアプリケーション管理サーバ68から読み出す。そのタスク624は、アプリケーション管理サーバ68のソフトウェア保管部614の所定アドレスからアプリケーションをダウンロードし、車載機78にインストールするように指示するタスク416(図8)である。車載機78は、この指示を受けると、ソフトウェア保管部614の指定されたアドレスにアクセス626(図12)し、そのアドレスからアプリケーションを取得418(図8)する。車載機78はさらに、取得されたアプリケーションについて算出されたハッシュ値を管理情報のハッシュ値と比較することにより、そのアプリケーションの正当性を確認した後、インストール420する。ここにいうインストール420は、既存の古いバージョンのアプリケーションがなければ追加となり、古いバージョンが存在すれば更新となる。アプリケーションのインストール420が完了すると、車載機78はインストール完了通知422をアプリケーション管理サーバ68に送信する。こうした処理を行うことにより、管理者114が指定した車載機78の各々について、配信管理者580が指定した時刻に所定のアプリケーションを配信できる。 Specifically, the software distribution program 612 performs the following process. Returning to FIG. 8, the application management server 68 executes the OTA task creation/addition process 412, which means that the application management server 68 is ready to instruct the in-vehicle device 78 corresponding to that task. When the in-vehicle device 78 starts up in this state, the in-vehicle device 78 performs the application acquisition process 618 as follows. That is, the in-vehicle device 78 executes the client process 414 to access the application management server 68 (or an intermediate message broker) according to the MQTT (Message Queuing Telemetry Transport) protocol, and determines whether there is a message for the in-vehicle device 78. If there is a message, the in-vehicle device 78 reads out the task 624 (FIG. 12) specified by that message from the application management server 68. The task 624 is a task 416 (FIG. 8) that instructs the vehicle-mounted device 78 to download an application from a specified address in the software storage unit 614 of the application management server 68 and install it therein. When the vehicle-mounted device 78 receives this instruction, it accesses 626 (FIG. 12) the specified address in the software storage unit 614 and acquires 418 (FIG. 8) the application from the address. The vehicle-mounted device 78 further compares the hash value calculated for the acquired application with the hash value of the management information to confirm the validity of the application, and then installs 420 the application. The installation 420 here is an addition if there is no existing old version of the application, and an update if an old version exists. When the installation 420 of the application is completed, the vehicle-mounted device 78 transmits an installation completion notice 422 to the application management server 68. By performing such processing, a specified application can be distributed to each vehicle-mounted device 78 specified by the administrator 114 at the time specified by the distribution administrator 580.

 図8を参照して、アプリケーションのインストール420の完了後は、車載機78がアプリケーションの実行を開始する。その結果、図7に示すように、アプリケーションが出力するログが、ログ情報取得設定により定められるロギングドライバにより取得され、その内容である情報(ログ)が、アプリ管理エージェントによりアプリケーション管理サーバ68に定期的にアップロード424、アップロード426される。 Referring to FIG. 8, after the installation 420 of the application is completed, the in-vehicle device 78 starts executing the application. As a result, as shown in FIG. 7, the log output by the application is acquired by a logging driver defined by the log information acquisition setting, and the information (log) that is the content of the log is periodically uploaded 424, 426 to the application management server 68 by the application management agent.

 図13を参照して、図1に示す開発者80が、アプリケーションに対して付帯情報630を付加していた場合のアプリケーション管理サーバ68の動作について説明する。付帯情報630は、既に記載したようにアプリケーションの配信時刻(配信期間)およびインストール先情報を含む。これら情報は、アプリケーション管理テーブル482において、該当するアプリケーション(例えばアプリケーションtest1)に対する付帯情報630という形によりアプリケーション管理テーブル482に付加されている。この実施形態においては、付帯情報630は、該当するアプリケーションのインストール先(関係する車載機の特定情報)と、配信済か否かを示す状態情報と、インストール時刻(期間)とを含む。 With reference to FIG. 13, the operation of application management server 68 when developer 80 shown in FIG. 1 has added additional information 630 to an application will be described. As already described, additional information 630 includes the delivery time (delivery period) and installation destination information of the application. This information is added to application management table 482 in the form of additional information 630 for the relevant application (e.g. application test1) in application management table 482. In this embodiment, additional information 630 includes the installation destination of the relevant application (specific information of the relevant in-vehicle device), status information indicating whether it has been delivered or not, and the installation time (period).

 アプリケーション管理テーブル482が付帯情報630のような付帯情報を持つ場合、アプリケーションの配信時刻およびインストール先は、付帯情報630からソフトウェア管理プログラム610が自動的に読み出し、読み出した情報にしたがったタスク622を自動的に準備しタスク管理テーブル616に書き込むことができる。タスク管理テーブル616にタスクが書き込まれた後は、配信管理者580がインストール先および配信時刻を決定する場合と同じようにしてアプリケーションが配信される。 When application management table 482 has additional information such as additional information 630, the software management program 610 can automatically read the delivery time and installation destination of the application from the additional information 630, and automatically prepare a task 622 according to the read information and write it to task management table 616. After the task is written to task management table 616, the application is delivered in the same manner as when the delivery manager 580 determines the installation destination and delivery time.

 2.コンピュータによる実現
 図14は、例えば図1に示す開発用端末60として動作するコンピュータシステムの外観図である。なお、アプリケーション管理サーバ68を構成するコンピュータも類似の構成である。
2. Implementation by a Computer Fig. 14 is an external view of a computer system that operates as, for example, the development terminal 60 shown in Fig. 1. The computer that constitutes the application management server 68 has a similar configuration.

 図15は、図14に示すコンピュータシステムのハードウェアブロック図である。なお、図1に示すアプリケーション管理サーバ68についてもそれぞれ本質的には開発用端末60とほぼ類似の構成のコンピュータシステムにより実現できる。ここでは開発用端末60として動作するコンピュータシステムの構成についてのみ述べることとし、他の装置を実現するコンピュータシステムの構成の詳細については述べない。 FIG. 15 is a hardware block diagram of the computer system shown in FIG. 14. Note that the application management server 68 shown in FIG. 1 can also be realized by a computer system essentially having a similar configuration to the development terminal 60. Here, we will only describe the configuration of the computer system that operates as the development terminal 60, and will not go into details of the configuration of the computer system that realizes the other devices.

 図14を参照して、この開発用端末60は、DVD(Digital Versatile Disc)ドライブ672を有するコンピュータ640と、いずれもコンピュータ640に接続された、ユーザと対話するためのキーボード644、マウス646、およびモニタ642とを含む。もちろんこれらはユーザ対話が必要となったときのための構成の一例であって、ユーザ対話に利用できる一般のハードウェアおよびソフトウェア(例えばタッチパネル、音声入力、ポインティングデバイス一般)であればどのようなものも利用できる。 Referring to FIG. 14, this development terminal 60 includes a computer 640 having a DVD (Digital Versatile Disc) drive 672, and a keyboard 644, a mouse 646, and a monitor 642 for interacting with a user, all of which are connected to the computer 640. Of course, these are just one example of a configuration for when user interaction becomes necessary, and any general hardware and software that can be used for user interaction (e.g., a touch panel, voice input, or a general pointing device) can be used.

 図15を参照して、コンピュータ640は、DVDドライブ672に加えて、CPU660と、GPU(Graphics Processing Unit)662と、CPU660、GPU662、DVDドライブ672に接続されたバス680とを含む。コンピュータ640はさらに、ROM(Read-Only Memory)666と、RAM668と、SSD670とを含む。ROM666は、バス680に接続され、コンピュータ640のブートアッププログラムなどを記憶する。RAM668は、バス680に接続され、プログラムを構成する命令、システムプログラム、および作業データなどを記憶する。SSD670は、バス680に接続された不揮発性メモリである。SSD670は、CPU660およびGPU662が実行するプログラム、ならびにCPU660およびGPU662が実行するプログラムが使用するデータなどを記憶するためのものである。コンピュータ640はさらに、ネットワークI/F(Interface)678と、USB(Universal Serial Bus)ポート676とを含む。ネットワークI/F678は、他端末との通信を可能とするネットワーク656(図7に示すネットワーク364)への接続を提供する。USBポート676は、USBメモリ654が着脱可能であり、USBメモリ654とコンピュータ640内の各部との通信を提供する。 Referring to FIG. 15, computer 640 includes, in addition to DVD drive 672, a CPU 660, a GPU (Graphics Processing Unit) 662, and a bus 680 connected to CPU 660, GPU 662, and DVD drive 672. Computer 640 further includes ROM (Read-Only Memory) 666, RAM 668, and SSD 670. ROM 666 is connected to bus 680 and stores the boot-up program of computer 640, etc. RAM 668 is connected to bus 680 and stores instructions constituting a program, system programs, working data, etc. SSD 670 is a non-volatile memory connected to bus 680. The SSD 670 is for storing programs executed by the CPU 660 and the GPU 662, as well as data used by the programs executed by the CPU 660 and the GPU 662. The computer 640 further includes a network I/F (Interface) 678 and a USB (Universal Serial Bus) port 676. The network I/F 678 provides a connection to a network 656 (network 364 shown in FIG. 7) that enables communication with other terminals. The USB port 676 allows a USB memory 654 to be attached/detached, and provides communication between the USB memory 654 and each part in the computer 640.

 コンピュータ640はさらに、音声I/F674を含む。音声I/F674は、マイクロフォン652およびスピーカ650とバス680とに接続され、音声信号、映像信号およびテキストデータをCPU660の指示に従って読み出し、アナログ変換および増幅処理をしてスピーカ650を駆動する機能を持つ。なお、音声信号、映像信号およびテキストデータは、CPU660により生成され、RAM668またはSSD670に保存される。また、音声I/F674は、マイクロフォン652からのアナログの音声信号をデジタル化し、RAM668またはSSD670の、CPU660により指定される任意のアドレスに保存する機能を持つ。 Computer 640 further includes an audio I/F 674. Audio I/F 674 is connected to microphone 652, speaker 650, and bus 680, and has the function of reading audio signals, video signals, and text data according to instructions from CPU 660, converting them to analog, amplifying them, and driving speaker 650. The audio signals, video signals, and text data are generated by CPU 660 and stored in RAM 668 or SSD 670. Audio I/F 674 also has the function of digitizing the analog audio signal from microphone 652 and storing it in any address in RAM 668 or SSD 670 specified by CPU 660.

 上記実施形態においては開発用端末60およびアプリケーション管理サーバ68などの各機能を実装するプログラムなどは、例えばSSD670、RAM668、DVD648、USBメモリ654、または外部装置(図示しない)の記憶媒体に格納される。外部装置は、ネットワークI/F678およびネットワーク656を介してバス680に接続されている。典型的には、これらのデータおよびパラメータなどは、例えば外部からSSD670に書込まれコンピュータ640の実行時にはRAM668にロードされる。 In the above embodiment, the programs implementing the functions of the development terminal 60 and the application management server 68 are stored in, for example, the SSD 670, the RAM 668, the DVD 648, the USB memory 654, or a storage medium of an external device (not shown). The external device is connected to the bus 680 via the network I/F 678 and the network 656. Typically, these data and parameters are written to the SSD 670 from outside, for example, and loaded into the RAM 668 when the computer 640 is executed.

 このコンピュータシステムを、図1に示す開発用端末60およびアプリケーション管理サーバ68ならびにその各構成要素の機能を実装するよう動作させるためのコンピュータプログラムは、DVDドライブ672に装着されるDVD648に記憶され、DVDドライブ672からSSD670に転送される。または、これらのプログラムはUSBメモリ654に記憶され、USBメモリ654をUSBポート676に装着し、プログラムをSSD670に転送する。または、このプログラムはネットワーク656を通じてコンピュータ640に送信されSSD670に記憶されてもよい。 Computer programs for operating this computer system to implement the functions of the development terminal 60 and application management server 68 shown in FIG. 1 and each of their components are stored on a DVD 648 inserted into a DVD drive 672, and transferred from the DVD drive 672 to the SSD 670. Alternatively, these programs are stored in a USB memory 654, and the USB memory 654 is inserted into a USB port 676, and the programs are transferred to the SSD 670. Alternatively, the programs may be sent to the computer 640 via the network 656 and stored in the SSD 670.

 プログラムは実行のときにRAM668にロードされる。もちろん、キーボード644、モニタ642およびマウス646を用いてソースプログラムを入力し、コンパイルした後のオブジェクトプログラムをSSD670に格納してもよい。上記実施形態のように仮想マシン上において動作するプログラムの場合には、仮想マシン環境として機能するプログラムを予めコンピュータ640にインストールしておく必要がある。 The program is loaded into RAM 668 when executed. Of course, the source program may be input using keyboard 644, monitor 642, and mouse 646, and the compiled object program may be stored in SSD 670. In the case of a program that runs on a virtual machine as in the above embodiment, a program that functions as a virtual machine environment must be installed in advance on computer 640.

 CPU660は、その内部のプログラムカウンタと呼ばれるレジスタ(図示せず)により示されるアドレスに従ってRAM668からプログラムを読み出して命令を解釈し、命令の実行に必要なデータを命令により指定されるアドレスに従ってRAM668、SSD670またはそれ以外の機器から読み出して命令により指定される処理を実行する。CPU660は、実行結果のデータを、RAM668、SSD670、CPU660内のレジスタなど、プログラムにより指定されるアドレスに格納する。このとき、プログラムカウンタの値もプログラムによって更新される。コンピュータプログラムは、DVD648から、USBメモリ654から、またはネットワーク656を介して、RAM668に直接にロードしてもよい。なお、CPU660が実行するプログラムのうち、一部のタスク(主として数値計算)については、プログラムに含まれる命令により、またはCPU660による命令実行時の解析結果に従って、GPU662にディスパッチされる。 The CPU 660 reads a program from the RAM 668 according to an address indicated by an internal register called a program counter (not shown), interprets the instructions, reads data required to execute the instructions from the RAM 668, the SSD 670, or other devices according to the address specified by the instruction, and executes the process specified by the instruction. The CPU 660 stores the execution result data in the RAM 668, the SSD 670, a register in the CPU 660, or the like, at an address specified by the program. At this time, the value of the program counter is also updated by the program. The computer program may be loaded directly into the RAM 668 from the DVD 648, the USB memory 654, or via the network 656. Of the programs executed by the CPU 660, some tasks (mainly numerical calculations) are dispatched to the GPU 662 according to instructions contained in the program or according to the analysis results of the CPU 660 when executing the instructions.

 コンピュータ640により上記した実施形態に係る各部の機能を実装するプログラムは、それら機能を実装するようコンピュータ640を動作させるように記述され配列された複数の命令を含む。この命令を実行するのに必要な基本的機能のいくつかはコンピュータ640上において動作するオペレーティングシステム(OS(Operating System))もしくはサードパーティのプログラム、コンピュータ640にインストールされる各種ツールキットのモジュールまたはプログラムの実行環境により提供される場合もある。したがって、このプログラムはこの実施形態のシステムおよび方法を実装するのに必要な機能全てを必ずしも含まなくてよい。このプログラムは、命令のうち、所望の結果が得られるように制御されたやり方によって適切な機能またはモジュールなどをコンパイル時に静的にリンクすることにより、または実行時に動的に呼出すことにより、上記した各装置およびその構成要素としての動作を実行する命令のみを含んでいればよい。そのためのコンピュータ640の動作方法は周知なため、ここでは繰り返さない。 The program for implementing the functions of each part according to the above-mentioned embodiment by computer 640 includes a plurality of instructions written and arranged to operate computer 640 to implement those functions. Some of the basic functions required to execute the instructions may be provided by the operating system (OS (Operating System)) running on computer 640, a third party program, various toolkit modules installed on computer 640, or the program execution environment. Therefore, this program does not necessarily include all of the functions required to implement the system and method of this embodiment. This program only needs to include instructions that perform the operations of each of the above-mentioned devices and their components by statically linking the appropriate functions or modules at compile time or dynamically calling them at run time in a controlled manner to obtain the desired results. The method of operating computer 640 for this purpose is well known, so it will not be repeated here.

 なお、GPU662は並列処理を行うことが可能であり、機械学習に伴う多量の計算を同時並列的またはパイプライン的に実行できる。例えばプログラムのコンパイル時にプログラム中に発見された並列的計算要素、またはプログラムの実行時に発見された並列的計算要素は、随時、CPU660からGPU662にディスパッチされ、実行され、その結果が直接に、またはRAM668の所定アドレスを介してCPU660に返され、プログラム中の所定の変数に代入される。 The GPU 662 is capable of parallel processing, and can execute a large amount of calculations associated with machine learning simultaneously in parallel or in a pipelined manner. For example, parallel calculation elements discovered in a program when the program is compiled, or parallel calculation elements discovered when the program is executed, are dispatched from the CPU 660 to the GPU 662 at any time and executed, and the results are returned to the CPU 660 directly or via a specified address in the RAM 668, and assigned to a specified variable in the program.

 上述の実施形態の各処理(各機能)は、1または複数のプロセッサを含む処理回路(Circuitry)により実装される。上記処理回路は、上記1または複数のプロセッサに加え、1または複数のメモリ、各種アナログ回路、各種デジタル回路が組み合わされた集積回路などにより構成されてもよい。上記1または複数のメモリは、上記各処理を上記1または複数のプロセッサに実行させるプログラム(命令)を格納する。上記1または複数のプロセッサは、上記1または複数のメモリから読み出した上記プログラムに従い上記各処理を実行してもよいし、予め上記各処理を実行するように設計された論理回路に従って上記各処理を実行してもよい。上記プロセッサは、CPU、GPU、DSP(Digital Signal Processor)、FPGA(Field-Programmable Gate Array)、ASIC(Application Specific Integrated Circuit)など、コンピュータの制御に適合する種々のプロセッサであってよい。なお物理的に分離した上記複数のプロセッサが互いに協働して上記各処理を実行してもよい。例えば物理的に分離した複数のコンピュータのそれぞれに搭載された上記プロセッサがLAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどのネットワークを介して互いに協働して上記各処理を実行してもよい。上記プログラムは、外部のサーバ装置などから上記ネットワークを介して上記メモリにインストールされてもよいし、CD-ROM(Compact Disc Read-Only Memory)、DVD-ROM(Digital Versatile Disc Read-Only Memory)、半導体メモリなどの記録媒体に格納された状態において流通し、上記記録媒体から上記メモリにインストールされてもよい。 Each process (each function) in the above-mentioned embodiment is implemented by a processing circuit (circuitry) including one or more processors. The above-mentioned processing circuit may be configured by an integrated circuit combining one or more memories, various analog circuits, and various digital circuits in addition to the above-mentioned one or more processors. The above-mentioned one or more memories store programs (instructions) that cause the above-mentioned one or more processors to execute each of the above-mentioned processes. The above-mentioned one or more processors may execute each of the above-mentioned processes according to the above-mentioned programs read from the above-mentioned one or more memories, or may execute each of the above-mentioned processes according to a logic circuit designed in advance to execute each of the above-mentioned processes. The above-mentioned processor may be a CPU, GPU, DSP (Digital Signal Processor), FPGA (Field-Programmable Gate Array), ASIC (Application Specific Integrated Circuit), or any other processor suitable for computer control. The physically separated processors may cooperate with each other to execute the above processes. For example, the processors mounted on each of the physically separated computers may cooperate with each other via a network such as a LAN (Local Area Network), a WAN (Wide Area Network), or the Internet to execute the above processes. The program may be installed in the memory from an external server device or the like via the network, or may be distributed in a state stored in a recording medium such as a CD-ROM (Compact Disc Read-Only Memory), a DVD-ROM (Digital Versatile Disc Read-Only Memory), or a semiconductor memory, and installed in the memory from the recording medium.

 今回開示された実施の形態は全ての点において例示であって制限的なものではないと考えられるべきである。本開示の範囲は、開示の詳細な説明の記載により示されるわけではなく、請求の範囲の各請求項によって示され、請求の範囲の文言と均等の意味および範囲内における全ての変更が含まれることが意図される。 The embodiments disclosed herein should be considered in all respects as illustrative and not restrictive. The scope of the present disclosure is indicated not by the detailed description of the disclosure, but by each claim in the claims, and is intended to include all modifications within the meaning and scope of the claims.

50 アプリケーション管理システム
60 開発用端末
62、180 SDK
64 アプリケーションプログラム
66、424、426 アップロード
68 アプリケーション管理サーバ
70 承認者
72 アプリケーション
74 配信処理
76 車両
78 車載機
80 開発者
100 システム運用者
110 管理情報
112 アプリケーション運用サーバ
114、550、552 管理者
140、642 モニタ
142、644 キーボード
160 プログラム実行部
162 通信部
164 記憶部
170、660 CPU
182 管理情報生成プログラム
184 ログ取得設定プログラム
186 認証情報取得プログラム
188 アップロードプログラム
230 属性情報作成機能
232 ハッシュ値算出機能
234 バージョン情報作成機能
236 スケジュール作成機能
238 ライブラリ情報取得機能
240 インストール先設定機能
242 インストール時刻設定機能
270、500 アップロード画面
300 タイトル
302 変更指定リスト
304 IDフィールド
306 パスワードフィールド
308 送信ボタン
310 キャンセルボタン
350 実行環境
360 コンテナ(Dockerコンテナ)
362 標準出力
364、656 ネットワーク
366 ロギングドライバ
368 第1ドライバ
370 第1転送先
372 第2ドライバ
374 第2転送先
380 Dockerコンテナ
400 アプリケーション開発
402 アプリ管理情報取得処理
404 ログ情報取得設定処理
406、440 認証処理
408 アプリケーション承認処理
410 指示
412 OTAタスク作成・追加処理
414 クライアント処理
416、622、624 タスク
418 取得
420 インストール
422 インストール完了通知
442 アプリケーション送付処理
444 開発者認証
450 アプリケーション承認依頼
452 内容確認
454 承認
482 アプリケーション管理テーブル
502 カードリーダ
504 プロンプト
554 責任者
570 レコード
572 配信承認欄
580 配信管理者
610 ソフトウェア管理プログラム
612 ソフトウェア配信プログラム
614 ソフトウェア保管部
616 タスク管理テーブル
618 アプリケーション取得処理
626 アクセス
630 付帯情報
640 コンピュータ
646 マウス
648 DVD
650 スピーカ
652 マイクロフォン
654 USBメモリ
662 GPU
666 ROM
668 RAM
670 SSD
672 DVDドライブ
674 音声I/F
676 USBポート
678 ネットワークI/F
680 バス
50 Application management system 60 Development terminal 62, 180 SDK
64 Application program 66, 424, 426 Upload 68 Application management server 70 Approver 72 Application 74 Distribution process 76 Vehicle 78 Vehicle-mounted device 80 Developer 100 System operator 110 Management information 112 Application operation server 114, 550, 552 Administrator 140, 642 Monitor 142, 644 Keyboard 160 Program execution unit 162 Communication unit 164 Storage unit 170, 660 CPU
182 Management information generation program 184 Log acquisition setting program 186 Authentication information acquisition program 188 Upload program 230 Attribute information creation function 232 Hash value calculation function 234 Version information creation function 236 Schedule creation function 238 Library information acquisition function 240 Installation destination setting function 242 Installation time setting function 270, 500 Upload screen 300 Title 302 Change designation list 304 ID field 306 Password field 308 Send button 310 Cancel button 350 Execution environment 360 Container (Docker container)
362 Standard output 364, 656 Network 366 Logging driver 368 First driver 370 First transfer destination 372 Second driver 374 Second transfer destination 380 Docker container 400 Application development 402 App management information acquisition process 404 Log information acquisition setting process 406, 440 Authentication process 408 Application approval process 410 Instruction 412 OTA task creation/addition process 414 Client process 416, 622, 624 Task 418 Acquisition 420 Installation 422 Installation completion notification 442 Application delivery process 444 Developer authentication 450 Application approval request 452 Content confirmation 454 Approval 482 Application management table 502 Card reader 504 Prompt 554 Person in charge 570 Record 572 Distribution approval column 580 Distribution manager 610 Software management program 612 Software distribution program 614 Software storage unit 616 Task management table 618 Application acquisition process 626 Access 630 Additional information 640 Computer 646 Mouse 648 DVD
650 Speaker 652 Microphone 654 USB memory 662 GPU
666 ROM
668 RAM
670 SSD
672 DVD drive 674 Audio I/F
676 USB port 678 Network I/F
680 Bus

Claims (9)

 表示装置と、
 プログラム実行部と、
 ソフトウェア開発キットを記憶した記憶装置と、を含み、
 前記プログラム実行部は、
 前記ソフトウェア開発キットを使用して、前記プログラム実行部が実行するアプリケーションを開発するアプリケーション開発機能と、
 前記アプリケーションを管理するための管理情報を生成する機能と、
 前記アプリケーションの実行ログの取得の設定を行うログ取得設定機能と、
 前記アプリケーションの開発者を認証するための認証情報を取得する認証情報取得機能と、
 前記アプリケーションと、前記管理情報と、前記ログ取得設定機能によって設定された設定情報と、前記認証情報とをアプリケーション管理サーバに送信する機能とを実装するようにプログラムされている、アプリケーション管理装置。
A display device;
A program execution unit;
a storage device storing a software development kit;
The program execution unit is
an application development function for developing an application to be executed by the program execution unit using the software development kit;
A function of generating management information for managing the application;
A log acquisition setting function for setting acquisition of an execution log of the application;
an authentication information acquisition function for acquiring authentication information for authenticating a developer of the application;
an application management device programmed to implement a function of transmitting the application, the management information, the setting information set by the log acquisition setting function, and the authentication information to an application management server;
 前記管理情報を生成する機能は、
 前記アプリケーションを管理するために必要な前記アプリケーションの属性情報を作成する機能、
 前記アプリケーションのハッシュ値を取得する機能、
 前記アプリケーションが使用するライブラリを特定するライブラリ情報を取得する機能、
 前記アプリケーションを端末に配信するスケジュールを作成する機能、
 前記開発者により入力された、前記アプリケーションの改定内容に基づいて、前記アプリケーションのバージョン情報を生成する機能、
 前記アプリケーションのインストール先を前記開発者により指定させる機能、
 前記アプリケーションのインストール時刻に関する指定を前記開発者に行わせる機能、
 のうちの少なくとも一つを含む、請求項1に記載のアプリケーション管理装置。
The function of generating the management information is
A function for creating attribute information of the application necessary for managing the application;
A function for obtaining a hash value of the application;
A function for acquiring library information that identifies libraries used by the application;
A function for creating a schedule for delivering the application to a terminal;
A function of generating version information of the application based on the revision contents of the application input by the developer;
A function that allows the developer to specify the installation destination of the application;
a function for allowing the developer to specify the installation time of the application;
The application management device according to claim 1 , comprising at least one of:
 前記ログ取得設定機能は、前記アプリケーションの実行時に前記アプリケーションから出力されるメッセージを、前記アプリケーションが稼働している装置と別の装置に転送するための転送機構を指定する転送機構指定機能を含む、請求項1または請求項2に記載のアプリケーション管理装置。 The application management device according to claim 1 or 2, wherein the log acquisition setting function includes a transfer mechanism designation function that designates a transfer mechanism for transferring messages output from the application when the application is executed to a device other than the device on which the application is running.  前記アプリケーションから出力されるメッセージは、標準出力へのメッセージと、標準エラー出力へのメッセージとを含み、
 前記転送機構指定機能は、前記標準出力へのメッセージと、前記標準エラー出力へのメッセージとについて互いに独立に前記転送機構を指定する、請求項3に記載のアプリケーション管理装置。
The messages output from the application include a message to a standard output and a message to a standard error output;
4. The application management apparatus according to claim 3, wherein said transfer mechanism designation function designates said transfer mechanisms for messages to said standard output and for messages to said standard error output independently of each other.
 前記アプリケーションは、Dockerコンテナとして実行することが予定されており、
 前記転送機構指定機能は、Dockerシステムにおいて前記アプリケーションの出力を処理するロギングドライバを指定する、請求項4に記載のアプリケーション管理装置。
the application is intended to run as a Docker container;
The application management device according to claim 4 , wherein the transfer mechanism specification function specifies a logging driver that processes output of the application in a Docker system.
 前記認証情報取得機能は、前記開発者の識別情報を前記開発者から取得する認証情報取得機能を含む、請求項1から請求項5のいずれか1項に記載のアプリケーション管理装置。 The application management device according to any one of claims 1 to 5, wherein the authentication information acquisition function includes an authentication information acquisition function that acquires identification information of the developer from the developer.  記憶装置と、
 プログラム実行部とを含み、
 前記プログラム実行部は、
 アプリケーション管理装置から、前記アプリケーション管理装置により開発されたアプリケーションを管理するための管理情報と、前記アプリケーションの実行ログの取得の設定を示すログ取得設定情報と、前記アプリケーションの開発者を認証するための認証情報とを受信し、前記アプリケーションの開発者の認証を行う開発者認証機能と、
 前記開発者認証機能による認証が完了した前記アプリケーションについて、配信先への配信の承認を受ける承認処理を行う承認処理実行機能と、
 前記承認処理実行機能による承認を受けた前記アプリケーションを、前記管理情報により指定された条件に従って配信先に配信するアプリケーション配信機能とを実行するようにプログラムされている、アプリケーション管理サーバ。
A storage device;
a program execution unit;
The program execution unit is
a developer authentication function that receives, from an application management device, management information for managing an application developed by the application management device, log acquisition setting information indicating settings for acquiring an execution log of the application, and authentication information for authenticating a developer of the application, and authenticates the developer of the application;
an approval process execution function that performs an approval process for receiving approval for distribution to a distribution destination for the application that has been authenticated by the developer authentication function;
an application management server programmed to execute an application distribution function for distributing the application approved by the approval process execution function to a distribution destination in accordance with conditions specified by the management information.
 前記管理情報は、前記アプリケーションを端末に配信するスケジュール、及び前記アプリケーションの配信対象の端末種類を含み、
 前記アプリケーション配信機能は、前記アプリケーションを、前記端末種類に適合する端末に、前記スケジュールに従って配信するスケジュール配信機能を含む、請求項7に記載のアプリケーション管理サーバ。
the management information includes a schedule for distributing the application to a terminal and a terminal type to which the application is to be distributed;
8. The application management server according to claim 7, wherein the application distribution function includes a schedule distribution function for distributing the application to a terminal compatible with the terminal type according to the schedule.
 前記スケジュール配信機能は、
 前記端末種類、前記スケジュール、および前記アプリケーションを識別する情報を指定して、端末装置に前記アプリケーションを前記アプリケーション管理サーバからダウンロードさせるタスクを準備するタスク準備機能を含む、請求項8に記載のアプリケーション管理サーバ。
The schedule distribution function includes:
9. The application management server according to claim 8, further comprising a task preparation function for preparing a task for causing a terminal device to download said application from said application management server by specifying information for identifying said terminal type, said schedule, and said application.
PCT/JP2024/007693 2023-05-16 2024-03-01 Application management device and application management server Pending WO2024236881A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2023-080721 2023-05-16
JP2023080721 2023-05-16

Publications (1)

Publication Number Publication Date
WO2024236881A1 true WO2024236881A1 (en) 2024-11-21

Family

ID=93519327

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2024/007693 Pending WO2024236881A1 (en) 2023-05-16 2024-03-01 Application management device and application management server

Country Status (1)

Country Link
WO (1) WO2024236881A1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112181401A (en) * 2020-08-20 2021-01-05 第四范式(北京)技术有限公司 Application construction method and application construction platform
WO2022182392A1 (en) * 2021-02-26 2022-09-01 Slack Technologies, Inc. Hosting event-based applications

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112181401A (en) * 2020-08-20 2021-01-05 第四范式(北京)技术有限公司 Application construction method and application construction platform
WO2022182392A1 (en) * 2021-02-26 2022-09-01 Slack Technologies, Inc. Hosting event-based applications

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
YAMADA, YUSHIN: "Learning the the Basics and Terminology! Introduction to Microsoft Azure", C&R RESEARCH, 21 January 2022 (2022-01-21), pages 20 - 22, XP009559052, ISBN: 978-4-86354-368-3 *

Similar Documents

Publication Publication Date Title
US11449478B2 (en) Blockchain implemented data migration audit trail
US10515003B1 (en) Installation testing in automated application distribution
US9350610B2 (en) System and method for configuration management service
US9098364B2 (en) Migration services for systems
US20110154441A1 (en) Online development environment server, online marketplace server, online development environment constituting method, and developed application providing method
US20070169079A1 (en) Software update management
US20220222079A1 (en) Change management of services deployed on datacenters configured in cloud platforms
US20020004824A1 (en) Method and apparatus for automatically deploying data and simultaneously Executing computer program scripts in a computer network
US20150082016A1 (en) Methods, systems, and computer readable mediums for updating components in a converged infrastructure system
CN114666412A (en) Access Services in Hybrid Cloud Computing Systems
JP2021524962A (en) Automatic data projection to smart contract groups on the blockchain
EP2667301B1 (en) Decision service manager
US20170149788A1 (en) Information processing apparatus, terminal apparatus, program, and information processing system
WO2022126372A1 (en) Multi-service multi-environment management method and system
US20060271926A1 (en) Split download for electronic software downloads
US20210075701A1 (en) Method and system for onboarding a virtual network function package utilized by one or more network services
CN114500268B (en) Method and device for deploying char resources, server and storage medium
US11048479B2 (en) Software conversion simulation mode
JP5090809B2 (en) Management server, management method, program, and recording medium
WO2024236881A1 (en) Application management device and application management server
US20240143385A1 (en) Long Duration Asynchronous Transaction Monitoring of Distributed Systems
Selvaraj Building RESTful APIs with Laravel (PHP)
CN118885184A (en) Workflow migration method, device, equipment, storage medium and program product
Flamer et al. ADL Enterprise Learner Record Repository Systems Integration Plan
CN120762687A (en) Code deployment method, device, electronic equipment and computer program product

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

Country of ref document: EP

Kind code of ref document: A1