WO2012114889A1 - アプリケーション構築配置システム、アプリケーション構築配置方法、およびプログラム - Google Patents

アプリケーション構築配置システム、アプリケーション構築配置方法、およびプログラム Download PDF

Info

Publication number
WO2012114889A1
WO2012114889A1 PCT/JP2012/052967 JP2012052967W WO2012114889A1 WO 2012114889 A1 WO2012114889 A1 WO 2012114889A1 JP 2012052967 W JP2012052967 W JP 2012052967W WO 2012114889 A1 WO2012114889 A1 WO 2012114889A1
Authority
WO
WIPO (PCT)
Prior art keywords
application
processing
module
construction
user terminal
Prior art date
Application number
PCT/JP2012/052967
Other languages
English (en)
French (fr)
Inventor
聡 辻
Original Assignee
日本電気株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 日本電気株式会社 filed Critical 日本電気株式会社
Priority to JP2013500953A priority Critical patent/JPWO2012114889A1/ja
Publication of WO2012114889A1 publication Critical patent/WO2012114889A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]

Definitions

  • the present invention relates to an application placement system that places an application on communication resources constituting a network.
  • cloud As the use of cloud computing (hereinafter referred to as “cloud”) becomes widespread, computing resources such as many servers and PCs (personal computers) are arranged on a communication network (hereinafter referred to as network), and terminals are used on these computing resources.
  • a form of providing a service such as a web service by executing an application of a service provided to a person (user) has become common.
  • the services provided by the above applications are diverse, and there are still services such as e-mail, SNS (Social Networking Service), and video distribution, and the types of services are expected to increase in the future.
  • SNS Social Networking Service
  • video distribution and the types of services are expected to increase in the future.
  • Non-Patent Document 1 a large number of cameras are installed in a stadium, and a user obtains an image captured by a desired camera using a user-side terminal, or tracks a specific person to obtain a user-desired image.
  • a service that can acquire and display the video is disclosed.
  • terminals that use such services are also diversified and have advanced functions, such as desktop PCs, laptop PCs, tablet PCs, and mobile phones.
  • terminals that can be connected to a network and can receive services provided using the cloud, such as telephones and portable game machines.
  • Patent Document 1 a system that transmits data to a terminal after converting the data format into a format that can be handled by the terminal on the cloud side is disclosed.
  • Patent Document 1 includes an application table that stores information on the types of data that can be processed by an application, means for extracting an application that can process data to be processed, and the like. By selecting an application from the above format and an output format specified by the user, desired data conversion is performed.
  • Patent Document 2 a system for providing an appropriate service to a terminal based on the environment (function, network status, location, battery status, etc.) of the mobile terminal is disclosed (Patent Document 2). Furthermore, as another related technique, a module group that selects a function module for image processing corresponding to a request image from a plurality of different function modules based on an input request (image) and performs processing suitable for the image data. An automatic generation system is disclosed (Patent Document 3).
  • Patent Document 1 it is not possible to perform different processing for each user only by converting the data format, and it is not possible to provide various services corresponding to user terminals. Inconvenience can occur.
  • Patent Document 2 does not mention the dynamic arrangement of applications that realize services, and therefore, a video distribution application or the like in which communication delay or the like greatly affects the user's experience In this case, there is a disadvantage that a delay occurs.
  • Patent Document 3 since it is premised that the types of input / output data for the modules match, the types of combinations are limited, and the types and numbers of input / output data are different. There is an inconvenience that it is not possible to generate various applications composed of various modules.
  • An object of the present invention is to provide an application construction / arrangement system, method, and program capable of generating an application in response to a request and reliably providing an execution result of the application to a user terminal.
  • an application construction and arrangement system comprises an application construction unit that constructs an application executed on a resource node in response to a request from a user terminal, and a process that is a component of the application
  • a module management unit that stores modules, and a processing resource determination and placement unit that places the constructed application in the resource node;
  • the application construction unit acquires a processing module constituting the application from the module management unit based on processing content included in a request from the user terminal, and reduces processing load on execution of the application based on the processing content. It has a processing module selection acquisition function that estimates an execution load value to indicate and determines a combination pattern of the acquired different processing modules based on the estimated execution load value.
  • the processing resource determination and arrangement unit includes a processing resource determination function that determines a resource node that is an execution destination of the application based on the processing content of the constructed application and the estimated execution load value. Yes.
  • the application construction and placement method constructs an application to be executed on a resource node connected via a network in response to a request from a user terminal, and deploys the constructed application to the resource node.
  • An application construction and placement method The application building unit that builds the application acquires the processing module constituting the application from the module management unit based on the processing content included in the request from the user terminal, and executes the application based on the processing content Estimating an execution load value indicating a processing load, and determining a combination pattern of the acquired different processing modules based on the estimated execution load value; Based on the processing contents of the constructed application and the execution load value, the processing resource determination arrangement unit determines a resource node that is the execution destination of the application, The resource node executes the application sent from the processing resource determination and arrangement unit, and provides the execution result to the user terminal.
  • An application construction arrangement program includes an application construction unit that constructs an application executed on a resource node connected via a network in response to a request from a user terminal, and a component of the application.
  • An application construction and placement system comprising a module management unit that stores processing modules and a processing resource determination and placement unit that places the constructed application in the resource node, and is executed on the user terminal at the resource node
  • An application construction arrangement program for providing an execution result of the application, Based on the processing content included in the request from the user terminal, the processing module selection acquisition processing function for acquiring the processing module constituting the application from the module management unit based on the processing content included in the request from the user terminal, based on the processing content included in the request from the user terminal
  • a load estimation processing function for estimating an execution load value indicating a processing load for executing an application, and a module combination pattern for determining a combination pattern of the acquired different processing modules based on the execution load value estimated by the load estimation processing function
  • the processing module constituting the web application to be generated is extracted based on the request data, and the resource node on which the web application is executed is determined based on the processing load in the resource node. Can be provided to the user terminal more reliably.
  • FIG. 1 It is a schematic block diagram which shows the application construction arrangement
  • FIG. 8 is an explanatory diagram showing one candidate of connectable modules in the same group in the processing flow shown in FIG. 7. It is explanatory drawing which showed an example at the time of inserting the connection module which converts a data format with respect to the processing flow shown in FIG. It is explanatory drawing which showed an example at the time of inserting the other module which converts a data format with respect to the processing flow shown in FIG. It is explanatory drawing which shows an example of the table information managed by the module management block in the application construction arrangement system shown in FIG. It is explanatory drawing which shows an example of the table information managed by the module management block in the application construction arrangement system shown in FIG. It is a schematic block diagram which shows the application construction arrangement
  • the application construction / arrangement system constructs and executes a user terminal 10 that requests application execution processing, and constructs a predetermined application in response to a request from the user terminal 10.
  • an application construction placement apparatus 1 that places the resource node as an environment.
  • the resource node is a node having a communication function for connecting to a network and a function for processing an application.
  • a server equipped with a network card or a device combining a server and a network switch corresponds to a resource node.
  • the resource node is provided in the computing resource / network resource 50 which is a real resource connected in advance to the application construction / arrangement apparatus 1 via the network.
  • the application construction placement apparatus 1 includes a module management block (module management unit) 22 that manages processing modules registered in advance as application components in response to a request from the user terminal 10, and an application construction request (request) from the user terminal 10. ) To acquire an application construction module from the module management block 22 and construct an application based on the module, and an execution environment of the application constructed by the application construction block 20 A processing allocation determination block (processing resource determination allocation unit) that determines the resource node as a node and allocates the constructed application to the resource node via the network And a 30.
  • the block indicates one functional unit realized by at least one of software, a program, and hardware.
  • the calculation resource / network resource 50 refers to all computers capable of executing some program such as a personal computer (PC) and a server, and all network devices such as a network switch, a router, and a network cable.
  • the computing resources are connected to each other by network resources.
  • the user terminal 10 activates a request transmission application for requesting execution of an application or the like, and transmits an application construction request to the application construction placement apparatus 1 (request transmission function).
  • the application is assumed to be a web application executed by a web server on the Internet, for example. Further, the request transmission application may be, for example, a browser program for browsing a website executed on the user terminal 10.
  • the application for request transmission is a browser
  • address information such as a URL indicating the execution source of the web application is input to the browser, or a link for executing the web application in the browser is selected and specified. In this case, it is assumed that the application construction request is sent out.
  • the application construction request includes a description related to the input data format, the output data format, the processing to be performed on the data, and the dependency between the processing.
  • the dependency between processes indicates a restriction that must be observed with respect to the execution order of processes, for example, that this process must be executed before executing a certain process.
  • the user terminal 10 obtains an execution result display means (not shown) for acquiring an execution result of an application executed on a resource node such as a web server in the computing resource / network resource 50 and outputting and displaying the execution result.
  • a resource node such as a web server in the computing resource / network resource 50
  • the execution result of the application in response to the application construction request issued from the user terminal 10 is sent to the user terminal 10 from the resource node of the calculation resource / network resource 50 that is the execution source via the Internet.
  • the application construction arrangement device 1 may be configured to acquire the application execution result from the resource node and transfer it to the user terminal 10.
  • the user terminal 10 may be configured to transmit an application construction request to the application construction block 20 using a specific processing content in the user terminal 10 as a search key.
  • a predetermined format for expressing the processing content in the user terminal 10 is used.
  • a unique ID or label assigned to the specific processing content is included in the application construction request.
  • the application construction block 20 of the application construction placement apparatus 1 accesses the module management block 22 when an application construction request (hereinafter referred to as “request”) from the user terminal 10 is acquired, and includes an input data format included in the request,
  • the module management block 22 is searched using the output data format, the process performed on the data, and the dependency (execution order) between different processes as a search key, and information related to the module corresponding to the search key is acquired (processing module) Selection acquisition function).
  • the module refers to a software program or hardware that provides some function.
  • the hardware includes configuration information for setting hardware that can be configured by a third party such as an FPGA (Field Programmable Gate Array) from a special purpose processor.
  • FPGA Field Programmable Gate Array
  • the information related to the module includes at least the module ID, the input format, and the output format. If the module name is uniquely determined for the module, the module name may be acquired instead of the ID.
  • the application building block 20 constructs an application corresponding to the request from the user terminal 10 by connecting the acquired modules (application construction function).
  • the application construction block 20 may construct a connection module for enabling connection between different acquired modules based on the request contents, and may connect the modules via the constructed connection module.
  • Connection module construction function / processing module selection acquisition function That is, the application construction block 20 acquires the processing module constituting the application from the module management block 22 based on the processing content included in the request from the user terminal 10, and based on the processing content,
  • a processing module selection / acquisition function is provided that estimates an execution load value indicating a processing load related to execution and determines a combination pattern of the acquired different processing modules based on the estimated execution load value.
  • processing allocation determination block (processing resource determination allocation unit) 30 described above performs the application based on the processing contents of the constructed application and the estimated execution load value, as will be described later.
  • the processing resource determination function for determining the resource node that is the execution destination of the process is provided.
  • processing modules A, B, C, D, and E in FIG. 5 are not processing modules as specific components of the application, but indicate processing units of the module when the application is executed.
  • process A input data at the time of executing the application is received, and some processing is performed on the input data, and processes B to D are respectively performed on the data (process data) passed as the previous process result. , Do some processing.
  • process E it is assumed that some processing is performed on the process data from process D, and the process data as the final process result of the application is output.
  • the application building block 20 extracts a processing unit based on the content of the request input from the user terminal 10.
  • process dependency relationship information (execution order relationship information) that is information indicating a dependency relationship (execution order) between application processes (for example, processes A, B, C, D, and E) is extracted from the content of the request, Based on this process dependency information, process contents are grouped (process grouping function / module execution order determination function).
  • the application construction block 20 processes the execution order of the processing modules in the constructed application based on the acquired number of input data that can be received in each processing module and the number of output data as the processing result of each processing module.
  • a module execution order determination function for determining as a dependency relationship is provided.
  • the group set by the processing grouping function is constructed so as to delimit processes having a dependency relationship with each other.
  • the order of the processes in the group can be changed. Note that the processing order between different groups is not interchanged.
  • FIG. 6 shows an example of a result of the application building block 20 grouping the processing groups (A to E) shown in FIG.
  • the processing groups 1 to 4 are divided into four groups.
  • the application construction block 20 searches the module management block 22 based on the processing contents included in the processing group, acquires processing modules (hereinafter referred to as “modules”) constituting the same processing group, and each module.
  • Module information that is information related to the module is acquired (corresponding module acquisition function).
  • FIG. 7 An example of the result of this processing is shown in FIG. In FIG. 7, a module candidate is selected for each of the processes A to E (processing module selection / acquisition function).
  • connection possibility between groups is not determined, and only selective extraction of processing modules that can be applied to each processing is performed. For this reason, although specific processing module candidates are listed in the lower part of FIG. 7, it is uncertain whether or not they can be connected, and therefore it is assumed that the processes are not connected.
  • the module information includes an ID, an input format, and an output format that are uniquely assigned to the module.
  • the module name may be acquired from the module management block 22 instead of the ID.
  • the application building block 20 determines whether or not one or more modules are selected corresponding to each of all the processes (processes A to E) as a result of executing the corresponding module acquisition function, and corresponds to each process.
  • the patterns that can be connected between the modules that realize each processing are examined for a plurality of processing modules belonging to each group (intra-group connection pattern specifying function).
  • the application construction block 20 extracts candidates that can be interconnected for processes in the same group.
  • the application building block 20 compares the patterns in which the modules can be connected, for example, by comparing the input / output data formats in the modules, and extracts the modules having a common data format as modules that can be connected to each other.
  • group 3 in which a plurality of different processes are included in the same group, even if the process of module D1 is performed after the process of module C (C ⁇ D1), the process of module D2 Even if the processing of module C is performed after performing (in order of D2 ⁇ C), it can be realized.
  • the modules cannot be connected in the order of D1 ⁇ C or D2 ⁇ C.
  • module D1, and module D2 for group 3 that is, when the input / output data format of module C is different from the input / output data format of module D1 and module D2.
  • the application construction block 20 searches for modules (connection modules) that appropriately convert the data format and relay-connect C, D1, and D2.
  • the application building block 20 obtains, for example, data format conversion modules c 'and d' as the search result (FIG. 9).
  • connection module c ′ and d ′ are obtained from the module management block by executing this connection module search function
  • the application building block 20 displays the module C belonging to the group 3 as shown in FIG.
  • D1 are connected via a connection module c ′
  • modules D2 and C are connected via a connection module d ′.
  • the application building block 20 leaves only usable modules as candidates when a usable module is identified in the target processing group at the time of performing the intra-group connection pattern identifying process.
  • the application construction block 20 determines whether or not each processing group can be connected to another processing group in the order of the processing flow with respect to the processing module at the start and end of each processing group. For the connection processing between groups, the application building block 20 determines a module or a combination of modules that can be connected based on the data format of the input / output data of each group for the extracted module or the combination of modules. (Connectable module determination function)
  • the output data format (output format) of the processing module B1 belonging to the group 2 is different from the input data format (input format) of the processing module C belonging to the group 3
  • the output format and the input format are used as search keys. Search in the module management block 22 (group connection module search function).
  • the application construction block 20 determines whether each processing group included in the application processing is connected to another processing group.
  • a connection module for enabling connection between corresponding processing groups is searched based on the processing flow of the application.
  • the conversion module (connection module for group connection) corresponding to the search key is not found, the application building block 20 determines that there is no module that is a building element of the application requested from the user terminal 10. Then, the user terminal 10 is notified of a message indicating that the application construction has failed.
  • FIG. 10 shows a case where the data format conversion module b ′ is inserted as an output side module (terminal module) belonging to group 2 and a case where it is inserted as an input side module (starting module) belonging to group 3.
  • module b ′ When a module for converting the data format of input / output data (here, module b ′) is retrieved and extracted, the application building block 20 connects the module b ′, which is a data format conversion module between processing groups, to the target group. It is inserted as the original output side or the connection destination input side, and the processing group is connected through this data format conversion module (processing group connection function).
  • the application building block 20 examines the processing load, processing time, etc. at the time of executing each application, and determines the connection pattern according to the processing load, processing time, etc. at the processing device at the time of application execution (static). Load determination function).
  • connection pattern that reduces the processing load on the CPU during application execution is selected as a module connection pattern in the application that is finally constructed.
  • connection pattern is selected based on the reference data.
  • the application construction unit 20 reduces the processing load at the user terminal when the execution result of the application is acquired based on the hardware information related to the processing capability at the user terminal 10 included in the request.
  • a static load determination function for determining the connection pattern of the acquired processing modules is provided.
  • the application building block 20 may determine the connection pattern randomly based on the processing flow of the application when there are a plurality of connectable module connection patterns. In this case, it is possible to quickly construct an application after selecting and extracting modules constituting the application.
  • the application building block 20 is configured to determine in order for each processing module whether or not connection is possible from the first module in the above processing flow when executing the connectable module extraction function described above. It may be set to be determined in parallel.
  • the application construction block 20 sends a mapping request to the processing placement determination block (processing resource decision placement unit) 30 to execute the mapping processing for determining the resource node that is the placement destination of the constructed application.
  • a request is made to the placement determination block 30 (mapping request function).
  • the mapping request includes application information indicating information indicating which module is selected (selected module information), information indicating how the selected modules are connected (intermodule connection information), and the like. It shall be assumed.
  • the module management block 22 stores a module for building an application and module information which is information related to each module as a module information table 221 (FIG. 2).
  • a module information table 221 (FIG. 2).
  • an ID uniquely assigned to each module, a module name, processing contents of the module, an input format of input to each module, and an output format from the module are registered in advance. It shall be.
  • the module management block 22 provides this module to the application construction block 20 as a candidate for an application construction element when the module corresponding to the search key is hit by the search by the module construction processing by the application construction block 20.
  • the module management block 22 sets the formats of input data and output data (input format and output format) in advance for the processing (A and E in FIG. 6) set as the input / output processing of the application. Therefore, in addition to the information indicating the processing contents, the data input format and output format are also used as search keys. This makes it possible to narrow down the modules that can be used. Further, this makes it possible to speed up the module search process in the module management block 22.
  • the module management block 22 has a module for realizing an application when no module corresponding to the processing unit can be searched and extracted in the search process (that is, when there is no corresponding module (no search hit)).
  • the application building block 20 is notified of the existence.
  • the module management block 22 includes an ID uniquely assigned to the module, the module name, the processing contents of the module, the number of inputs to the module, the input format, the number of outputs from the module, and the output format.
  • the table information (FIG. 11) 222 may be set to be registered / managed as module information.
  • the numbers of input data and output data of the table information 222 in FIG. 11 are not values indicating how many modules a certain module can be connected to, but the number of input data given to the module, The number of output data output from the module is indicated.
  • the module in the case of a module that receives video data from two cameras, the module must have at least two inputs. In addition, when there is a module that transfers even and odd frames of video data to different modules, the number of outputs is two.
  • the module management block 22 manages the module information in the form of the table information 222
  • the processing flow of the application that can be constructed by the application construction block 20 is shown in FIG. 14 and FIG.
  • process B in FIG. 14 and process A in FIG. 15 are processes having a plurality of different output data (here, two), and process E in FIG. 14 and process G in FIG. Indicates a process with input data. Further, the process D of FIG. 15 shows a process having a plurality of different input data and a plurality of different output data.
  • the application construction block 20 It is possible to construct an application including a plurality of processing contents including a plurality of input / output data processing units.
  • the module management block 22 may be set to manage a module for building an application as the table information 223 (FIG. 12).
  • the table information 223 includes an ID uniquely assigned to each module, a module name (Module Name), processing contents of each module, an input data format (input format) in each module, each It is assumed that the output data format (output format) from the module and the processing cost of the module are included as registration contents.
  • the processing cost indicates the processing load and processing time in the processing target (that is, the resource node) when the module execution processing is performed.
  • the module management block 22 estimates the processing load and processing time when the constructed application is executed by a reference computer (computer), and uses this as a reference (for example, a reference value of 1) in each resource node.
  • a reference for example, a reference value of 1
  • the processing load and processing time during application execution (or a relative value with respect to the reference value 1) are estimated and calculated and registered in the table information 223.
  • the module management block 22 is not only a single index such as a processing load and a processing time but also a setting for performing weighting corresponding to each index based on the correlation between a plurality of different indexes in each resource node. Good (set weight value).
  • the processing placement determination block 30 can determine the placement destination of the application so that the weighting index value indicating the value obtained by adding the set weighting value is within a certain value range in each resource node, Thereby, the processing load in each resource node when the application distributed in each resource node in the computing resource network resource 50 is executed is effectively distributed.
  • the module management block 20 manages the processing cost for each index as an item different from other items such as the input / output data format, thereby making it possible to handle various indexes.
  • the application construction block 20 narrows down the information on the processing cost in the case of access to the module management block 22 for module search according to the request, or the module management block 22 based on the search key.
  • the module ID is acquired together with the input format and output format.
  • the processing arrangement determination block (processing resource determination arrangement unit) 30 described above executes detection of the processing state of the execution result of the application provided to the user terminal 10.
  • the application building block 20 allows an acceptable delay (as a connection pattern of modules constituting the application) in the application building process ( It is possible to select a connection pattern giving priority to a short processing time so as not to exceed the maximum value of (processing time).
  • the application building block 20 sets the total amount of resources (resource nodes) that can be used according to the charging status when, for example, the user terminal is charged when using the application building arrangement device, and the total amount It is also possible to construct an application by selecting modules so as not to exceed.
  • the processing allocation determination block (processing resource determination allocation unit) 30 described above sets the total amount of resources that can be allocated for execution of the application, and the application within the range of the set total resource amount. And a resource total amount determining function for determining the resource node for executing the above.
  • the information regarding the processing cost is also used as an index of arrangement when the processing arrangement determination block 30 determines the arrangement of the application. For this reason, when the application construction block 20 issues an application placement request, the processing placement determination block 30 may include information related to the processing cost in the request.
  • the application building block 20 determines the processing time and time when selecting a module.
  • An application can be constructed using an index such as processing load (processing module selection acquisition function).
  • processing arrangement determination block 30 described above can also determine the application arrangement destination using the processing cost information when determining the arrangement of the application (execution of the processing resource determination function). It becomes possible to improve the quality of the service provided to the user terminal 10 and to effectively distribute the processing cost in the calculation resource / network resource 50 used.
  • the processing arrangement determination block 30 detects a processing load situation in a resource node set in advance from the computing resource network resource 50 via the network (load situation monitoring function).
  • the processing arrangement determination block 30 has a processing resource determination function for determining a resource node as an application arrangement destination for executing a web application based on the detected processing load.
  • the processing arrangement determination block 30 operates the processing resource determination function, and when an application mapping request is sent from the application construction block 20, based on the application information included in the mapping request, the calculation resource / network resource A resource node (in this case, 50-1) for operating the application in 50 is determined, and the application is distributed to the resource node (application distribution function). At the time of application distribution, a resource node as an application placement destination is determined based on the detected processing load (processing resource determination function).
  • the setting may be determined using a known method for managing computing resources or network resources (for example, a method as disclosed in Patent Document 3).
  • the computing resource / network resource 50 includes a plurality of different resource nodes (50-1 to 50-n) that communicate with each other via a communication line, and each resource node (50-1 to 50-n) When an application is sent from the arrangement determination block 30, it has an application introduction execution function for introducing and executing the application.
  • Each resource node of the computing resource / network resource 50 provides the execution result of the application to the user terminal 10 via a communication line such as the Internet.
  • the execution result of the application in the resource node may be a setting for application construction to be sent to the user terminal 10 via the location system 1.
  • the application building block 20 constructs an application in response to an application construction request from the user terminal 10, and thus constructs various applications in accordance with the request from the user terminal 10, It is possible to effectively distribute and arrange the resource nodes of the calculation resource / network resource 50.
  • the application building block 20 which is an application building unit acquires a processing module constituting an application from the module management block (module management unit) 22 based on the processing content included in the request from the user terminal 10 (processing module selection step). ). Subsequently, an execution load value indicating the processing load for executing the application is estimated based on the above processing contents (load estimation step), and a combination pattern of the acquired different processing modules is determined based on the estimated execution load value.
  • the processing arrangement determination block 30 serving as a processing resource determination unit determines a resource node that is an execution destination of the application based on the processing contents of the application constructed by the application construction block 20 and the execution load value described above ( Processing resource determination step), and then the resource node executes the application sent from the processing arrangement determination block 30 and provides the execution result to the user terminal 10.
  • the execution contents of the processing module selection step, the load estimation step, the module connection pattern determination step, and the processing resource determination step may be configured to be programmed and executed by a computer.
  • the program may be recorded on a non-temporary recording medium such as a DVD, a CD, or a flash memory. In this case, the program is read from the recording medium by a computer and executed.
  • the user terminal 10 activates an application for request transmission (FIG. 3: step S100).
  • an application construction request is issued to the application construction block 20.
  • This application construction request includes at least an input data format, an output data format, a process performed on the data, and a description regarding a dependency relationship between the processes.
  • the application construction block 20 accesses the module management block 22 using the processing to be performed on the data included in the application construction request from the user terminal 10 as a search key, and obtains information on usable processing modules. (FIG. 3: Step S200).
  • the application construction block 20 accesses the module management block 22 by using the processing to be performed on the data, the input format of the processing, and the output format of the processing as a search key, and obtains information on usable processing modules. get.
  • the information on the processing module includes at least the module ID, the input format, and the output format. If the module name is uniquely determined for the module, the module name may be acquired instead of the ID.
  • the application construction block 20 connects the selected modules to construct an application (FIG. 3: application construction process / step S205).
  • the application construction block 20 transmits a mapping request to the real resource of the application to the processing arrangement determination block 30 in order to execute the constructed application at the resource node of the computing resource / network resource 50 (FIG. 3: step).
  • the mapping request includes information on which module is selected, connection information indicating how the selected modules are connected, and the like.
  • the processing arrangement determination block 30 determines a delivery destination based on the mapping request set in advance in the calculation resource / network resource 50 and the application contents (FIG. 3: The application is transmitted to the resource node together with step S300) (FIG. 3: step S310).
  • the resource node that is the mapping destination of the application of the computational resource / network resource 50 acquires the application, installs and executes the application, and sends the execution result of the application to the user terminal 10.
  • mapping method is realized by using a method for managing calculation resources and network resources as disclosed in Patent Document 3.
  • step S205 the application construction process in the application construction block 20 will be described based on the flowchart of FIG.
  • the application construction block 20 performs grouping of processing contents (processing units) based on information indicating dependencies between different processing units included in the request input from the user terminal 10 (FIG. 4: step S2000).
  • the group set here is constructed so as to divide different processing modules having dependency relations, and the order of processes within the group may be changed, but the order between the groups is not changed.
  • FIG. 6 shows the result of grouping the processes (A to E).
  • the application construction block 20 acquires information related to the module as a component that realizes each process from the module management block 22 (FIG. 4: step S2005).
  • the information regarding the module includes the ID of the module, the input format, and the output format.
  • the module management block 22 manages a module for building an application. As shown in FIG. 2, the module management block 22 assigns an ID uniquely assigned to the module, a module name, and the module name. It is assumed that the processing content, the input format of input to the module, and the output format from the module are registered in advance.
  • the application construction block 20 gives the module management block 22 information indicating the processing contents of the application to be constructed as a search key, and searches for and acquires available module candidates.
  • the application building block 20 is limited to the data input format and the output format for the processing (for example, A and E in FIG. 6) positioned at the input / output of the application, and therefore information indicating the processing content.
  • the data input format and output format may be passed as search keys to the module management block 22 to perform a search with more narrowed available modules.
  • step S2005 it is assumed that one or more processing modules are selected for each processing unit (for example, A to E).
  • step S2007 If no corresponding module is retrieved and extracted (FIG. 4: No, step S2007), it is determined that there is no means for realizing the requested application, and the user terminal 10 indicates that the construction of the application has failed. Will be notified.
  • the application construction block 20 searches and accesses the module management block 22 using the processing content as a search key, a predetermined format for expressing the processing content is used.
  • the application construction block 20 assigns a unique ID or label to the processing content, and includes this ID or label in the application construction request.
  • connection possibility between groups is not determined, and the application building block 20 selects a module that can be applied to each process.
  • the application building block 20 selects a module that can be applied to each process.
  • FIG. 7 although specific module candidates are listed, it is uncertain whether or not they can be connected, and therefore it is assumed that the processes are not connected.
  • step S2007 when one or more modules are selected corresponding to all the processes included in the application (FIG. 4: YES, step S2007), the application building block 20 performs a plurality of processes in the same group. For the included group, the connectable patterns of modules realizing each process are listed (FIG. 4: step S2010).
  • this connectable pattern can be found by comparing the input and output of the module.
  • FIG. 8 shows a state in which candidates that can be connected are listed for processes in the same group.
  • the group 3 includes a plurality of processes in the same group, and FIG. 8 shows that there are modules that can be realized by C ⁇ D1 or D2 ⁇ C. This also indicates that connection of modules D1 ⁇ C and C ⁇ D2 is impossible.
  • step S2010 when there is a group for which a connectable pattern is not found in (FIG. 4: step S2010) (FIG. 4: NO, step S2020), the application building block 20 outputs a module that realizes the processing of the group. Whether there is a module that can convert the data format to be converted into the input data format for the other module is accessed to the module management block 22 using the process input / output as a search key (FIG. 4: step S2030).
  • the application building block 20 When searching for a module that converts the data format, the application building block 20 outputs the output of the module listed as the connection source process candidate and the connection destination process for the connection target process. Search for a conversion module whose data format matches both of the candidate module inputs.
  • step S2030 if a necessary conversion module is not found in (FIG. 4: step S2030) (FIG. 4: no, step S2040), it is determined that there is no means for building the application requested from the user terminal 10, and the application The user 10 is notified that the construction has failed.
  • step S2030 when a conversion module is found in (FIG. 4: step S2030) (FIG. 4: YES, step S2040), the application building block 20 adds the found conversion module to the target group (FIG. 4: step). S2050), the module connection pattern is searched again (FIG. 4: Step S2010).
  • Step S2100 the application construction block 20 connects processing between groups (FIG. 4: Step S2100).
  • Step S2100 the input / output data formats of the respective groups are compared with respect to the module or module combination candidate searched and extracted corresponding to the processing of each group, and the connectable modules or module combinations are determined. select.
  • the connection may be determined in order from the beginning of the process flow, or the adaptability of connection between groups may be determined in parallel.
  • step S2120 determines whether or not all the groups have been connected. If connection has failed (No: step S2120), the same processing as in steps S2030 to S2050 is performed.
  • the search processing of the data format conversion module for enabling connection between groups is performed.
  • the search method for the data format conversion module is the same as the flow from step S2030 to step S2050 in FIG.
  • step S2120 in FIG. 4 determines whether a data format conversion module for input / output between groups is found (FIG. 4: yes, step S2140).
  • the data format conversion module is connected to the target group. Insert into the original output side or the input side of the connection destination.
  • FIG. 10 shows a case where the conversion module b ′ is inserted.
  • module B1 is selected in group 2
  • module C and module D1 are selected in group 3, respectively.
  • the application construction block 20 narrows down the connection patterns when there are a plurality of module connection patterns for realizing the application requested by the user (FIG. 4: YES, step S2130) (FIG. 4: Step S2160).
  • connection pattern narrowing-down process in step S2160 for example, the application building block 20 may be set to randomly select a connection pattern. Further, a setting may be made in which some standard such as the number of modules to be used and cost is introduced and a connection pattern is selected based on the standard.
  • the application building block 20 changes the connection pattern of the modules constituting the application according to the processing contents of the application building request from the user terminal 10 to the application building request from the user terminal 10. Determine according to the processing content. Thereby, various applications according to the request of the user terminal 10 can be generated.
  • Embodiment 2 which is another embodiment of the present invention, will be described with reference to FIG.
  • terminal information in the user terminal 10 is acquired as an internal configuration of the application construction arrangement device 2, and this is stored in an application construction block (in this modification, 20-1).
  • the point provided with the terminal information management block 40 to notify is different from the case of the application construction placement apparatus 1 of the first embodiment described above.
  • the terminal information management block 40 acquires terminal information that is information related to the terminal of the user terminal 10 via the application construction block 20-1, and manages this.
  • the terminal information of the user terminal 10 includes, for example, static information such as hardware specifications such as the CPU performance, the amount of installed memory, and the display resolution, which are internal configurations of the user terminal 10, the current position of the user terminal 10, It is assumed that dynamic information such as remaining battery level and network status is included.
  • the terminal information may include information regarding the installed application and data formats that can be processed by the application as information regarding the terminal of the user 10.
  • the user terminal 10 may be set to transmit terminal information set in advance to the terminal information management block 40 periodically or when issuing an application construction request.
  • the application building block 20-1 in the second embodiment makes a search query to the module management block 22 by using the terminal information acquired by the terminal information management block 40 as a search key when building an application, and the user terminal 10 It is assumed that the module corresponding to the request is acquired. For example, when narrowing down connection patterns, by using the terminal information of the user terminal 10, the application building block 20-1 can build an application according to the specifications and dynamic information of the user terminal 10. It becomes. That is, the application building block 20-1 detects the communication state in the user terminal 10 as important terminal information, and the execution result of the application based on the detected communication state. A dynamic load determination function for determining a connection pattern of the acquired processing modules for reducing communication load in the user terminal.
  • the processing unit or module connection pattern constituting the application may be changed according to the network status, and thereby, when the application is executed, a video with a small network load may be distributed to the user terminal 10. .
  • the application building block 20-1 can build an application according to the network communication state in the user terminal 10, and the user terminal 10 can execute the application stably according to the network state in the user terminal 10. The result can be acquired.
  • the processing on the user terminal 10 side that acquires the execution result of the application is suppressed. It is good also as a setting from which the connection pattern of an application is selected.
  • the process is performed so that the user terminal 10 performs a predetermined process. It may be a setting that generates and constructs an application that performs allocation, that is, selects a connection pattern (construction pattern).
  • the application construction block 20-1 transfers the user terminal information to the processing arrangement determination block 30 in addition to the information about the constructed application.
  • the processing arrangement determination block 30 arranges the application in the computing resource / network resource 50 based on the terminal information of the user terminal 10. That is, the above-described processing arrangement determination block 30 includes connection position information indicating the connection position of the user terminal 10 to the network and a connection position specifying function for detecting the communication stability to the network, and the user terminal 10 And a communication speed determination function for determining a processing node that provides the execution result of the application based on the identified connection position and communication speed of the user terminal 10. Thereby, for example, based on information on the current location of the user terminal 10, it is possible to use a network resource (resource node) that exists as close to the user terminal 10 as possible in the network. Other configurations are the same as those of the first embodiment.
  • FIG. 16 is similar to FIG. 3 in the first embodiment until the application corresponding to the request transmitted by the user terminal 10 in the second embodiment is constructed and arranged in the resource node of the computing resource / network resource 50. The operation steps are shown.
  • the application construction block 20-1 of the second embodiment makes an inquiry about the terminal information of the user terminal 10 to the terminal information management block 40 as described above in the application construction process of step S205 (FIG. 16: step). S207).
  • the terminal information management block 40 returns the terminal information of the user terminal 10 in response to the inquiry from the application construction block 20-1.
  • the application construction block 20-1 acquires terminal information and uses the terminal information as a search key in the application construction processing (FIG. 16: step S205).
  • the application building block 20-1 searches for the connection pattern using the terminal information of the user terminal 10.
  • the module management block 22 searches for a connection pattern according to the terminal information of the user terminal 10, so that the application construction block 20-1 can perform a search that effectively narrows down the search target based on the terminal information. it can.
  • the application construction block 20-1 forwards the terminal information of the user terminal 10 to the processing arrangement determination block 30 as a mapping request in addition to the constructed application and information related to the application (FIG. 16: step S210).
  • the processing arrangement determination block 30 determines an arrangement destination of the application calculation resource / network resource 50 based on the terminal information of the user terminal 10 (FIG. 16: step S300). Thereby, the process arrangement
  • the execution result of the application can be provided to the user terminal 10 in a more stable state.
  • the application construction block 20-1 constructs an application using the terminal information managed by the terminal information management block 40, and the application construction block 21 starts from the terminal information management block 40.
  • the processing arrangement determination block 30 By transferring the acquired terminal information to the processing arrangement determination block 30, it is possible to perform application construction and arrangement in consideration of the status of the terminal of the user 10. As a result, it is possible to construct an appropriate application according to the state and situation indicated by the static information and dynamic information of the user terminal 10.
  • Embodiment 3 of the present invention will be described with reference to FIG.
  • an application constructed by the application construction block 20-2 is acquired as an internal configuration of the application construction arrangement device 3, and the application is stored so that it can be referred to from the application construction block 20-2.
  • the point provided with the cache management block 60 is different from the case of the application construction and arrangement apparatus 1 of the first embodiment described above.
  • the application cache management block 60 functions as a cache storage unit (configuration module storage unit) that acquires the application constructed by the application construction block 20-2 and holds it for a predetermined period of time, for example.
  • FIG. 18 shows cache table information 601 which is an example of information held (cached) by the application cache management block 60.
  • an ID for uniquely identifying a built application is associated with information related to the construction of the application.
  • a hash value is generated when an application is constructed based on the content of an application construction request from the user terminal 10 or terminal information of the user terminal 10, and this is used for application identification. It shall be used as ID. Further, a hash value may be generated based on information used for application construction.
  • the information related to application construction indicates, for example, information about modules used for application construction and connection between modules.
  • the application construction block 20-2 refers to the application cache management block 60, search and reference are performed based on this ID. That is, the application construction block 20-2 in this case includes the above-described configuration module storage means for storing the processing modules included in the constructed application and the execution order of the processing modules as an application log. When a request identical to the request stored in the means is sent, the log reference construction function is constructed (extracted and set) based on the application log stored in the configuration module storage means. .
  • Other configurations are the same as those of the first embodiment described above.
  • FIG. 19 shows operation steps when the cache management block 60 is referred to before the application construction block 20-2 constructs an application in the third embodiment.
  • the application building block 20-2 when an application building request is sent from the user terminal 10, processing contents included in the application building request are registered in the application cache management block (cache management block) 60 in advance. It is determined whether or not (cached) (FIG. 19: Step S1900). At this time, the application construction block 20-2 performs a search in the cache management block 60 using the processing contents of the application included in the application construction request as a search key.
  • step S1900 when an entry such as a module or an application that matches the search key is registered in advance (FIG. 19: YES, step S1900), the application construction block 20-2 is registered in the cache management block 60 in advance. A module is acquired and an application construction process is performed using the module (end: successful construction of the application).
  • the application cache management block 60 may be configured to manage entries such as applications built in the past as hash values.
  • the application construction block 20-2 calculates a hash value based on the processing contents of the application and searches the registration contents in the cache management block 60 based on the processing contents when the application cache management block 60 searches (FIG. 19). : Step S1900).
  • Step S1900 the processing shown in the flowchart of FIG. 4 is executed to construct an application.
  • the application construction block 20-2 registers information on the newly constructed application as an entry in the application cache management block 60 (FIG. 19: Step S2200). At this time, the application construction block 20-2 may hash and register the entry that is the registration content.
  • the cache management block 60 since the amount of application information that can be registered in the cache management block 60 is generally limited, the cache management block 60 depends on the access frequency for each entry and the elapsed time since registration.
  • the entry (registration information) may be changed.
  • Such registration information replacement processing can be realized by a technique similar to control in a cache memory generally mounted on a CPU.
  • the application construction block 20-2 registers the application constructed in the past from the application cache management block 60.
  • the processing is performed by the position determination block 30 in the calculation resource / network resource 50.
  • An application construction unit that constructs an application to be executed on a resource node in response to a request from a user terminal, a module management unit that stores a processing module that is a component of the application, and the constructed application
  • a processing resource determination and placement unit to be placed in the resource node;
  • the application construction unit acquires a processing module constituting the application from the module management unit based on processing content included in a request from the user terminal, and reduces processing load on execution of the application based on the processing content. It has a processing module selection acquisition function that estimates an execution load value to indicate and determines a combination pattern of the acquired different processing modules based on the estimated execution load value.
  • the processing resource determination and arrangement unit includes a processing resource determination function that determines a resource node that is an execution destination of the application based on the processing content of the constructed application and the estimated execution load value.
  • the application building unit determines the execution order of the processing modules in the built application based on the number of input data that can be received in each acquired processing module and the number of output data as a processing result of each processing module.
  • An application construction / arrangement system having a module execution order determination function for determining relations.
  • Appendix 3 In the application construction and arrangement system described in Appendix 1, The application construction unit Based on the hardware information related to the processing capability at the user terminal included in the request, the connection pattern of the acquired processing module is determined for reducing the processing load at the user terminal when the execution result of the application is acquired.
  • An application construction and placement system characterized by having a static load determination function.
  • the application construction unit The communication state detection function for detecting the communication state in the user terminal as important terminal information, and the acquisition for reducing the communication load in the user terminal when receiving and acquiring the execution result of the application based on the detected communication state And a dynamic load determining function for determining a connection pattern of the processing modules.
  • the processing resource determining and arranging unit A connection position specifying function for detecting connection position information indicating a connection position of the user terminal to the network and communication stability to the network; An application construction comprising a communication speed determining function for determining a processing node for providing the execution result of the application to the user terminal based on the identified connection position and communication speed of the user terminal Placement system.
  • the application construction unit A configuration module storage means for storing a processing module included in the constructed application and an execution order of the processing module as an application log,
  • An application construction arrangement system comprising a log reference construction function for construction based on an application log stored in the configuration module storage means when a request identical to the stored request is sent.
  • Appendix 7 In the application construction and arrangement system described in Appendix 1, The processing resource determining and arranging unit A resource total amount determining function for setting a resource total amount that can be allocated for execution of the application and for determining the resource node that executes the application within a range of the set resource total amount is provided. Application construction placement system.
  • the processing resource determining and arranging unit An execution result processing detection function for detecting a processing state of an execution result of the application provided to the user terminal; An execution result processing delay time calculation function for calculating a processing delay time of the execution result of the application based on the detected processing state;
  • An application construction and arrangement system comprising: a processing node connection pattern update function for updating the connection pattern of the extracted processing nodes for suppressing the processing delay time.
  • An application construction arrangement method for constructing an application to be executed on a resource node connected via a network in response to a request from a user terminal, and deploying the constructed application to the resource node The application construction unit that constructs the application acquires the processing module constituting the application from the module management unit based on the processing content included in the request from the user terminal, and executes the application based on the processing content Estimating an execution load value indicating a processing load, and determining a combination pattern of the acquired different processing modules based on the estimated execution load value; Based on the processing contents of the constructed application and the execution load value, the processing resource determination arrangement unit determines a resource node that is the execution destination of the application, An application construction and arrangement method, wherein the resource node executes the application sent from the processing resource determination and arrangement unit, and provides the execution result to the user terminal.
  • the application management part which builds the application performed on the resource node connected via the network according to the request
  • the module management part which memorize
  • the present invention relates to an application construction system, method, and program, and is particularly useful for a system capable of constructing an application according to a function of a terminal, a terminal state, an input / output data format, and processing contents. it can.
  • Application construction arrangement device 10 User terminal 20, 20-1, 20-2 Application construction block (application construction unit) 22 Module management block (module management block) 30 processing allocation determination block (processing resource determination allocation unit) 40 Terminal information management block 50 Computing resource / Network resource 60 Application cache management block

Landscapes

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

Abstract

【課題】要求に応じて生成したアプリケーションの実行結果をユーザ端末に提供する。 【解決手段】アプリケーションを生成するアプリケーション構築ブロック20と、ユーザ端末10からの要求に含まれる処理内容に基づきアプリケーションを構成する処理モジュールを保持するモジュール管理ブロック22と、生成されたアプリケーションの処理内容および前記実行負荷値に基づき前記アプリケーションを実行先である資源ノードを決定する処理配置決定30を有し、アプリケーション構築ブロック20が、アプリケーションの実行にかかる処理負荷を示す実行負荷値を推定し、これに基づき処理モジュールの結合パターンを決定する。

Description

アプリケーション構築配置システム、アプリケーション構築配置方法、およびプログラム
 本発明は、ネットワークを構成する通信資源上にアプリケーションを配置するアプリケーション配置システムに関する。
 クラウドコンピューティング(以下、「クラウド」という)の利用が広まるにつれて、通信ネットワーク(以下、ネットワーク)上に多くのサーバやPC(パーソナルコンピュータ)といった計算資源が配置され、これら計算資源の上で端末利用者(ユーザ)に提供するサービスのアプリケーションを実行することで、ウェブサービスなどのサービス提供を行う形が一般的になってきている。
 上記アプリケーションにより提供されるサービスは多様であり、現状でも、電子メールやSNS(Social Networking Service)、動画配信などのサービスが存在し、今後もサービスの種類は増加すると予想される。
 例えば、非特許文献1では、スタジアムに多数のカメラを設置し、ユーザは、ユーザ側端末を利用して所望のカメラが撮影する映像を取得したり、特定の人物をトラッキングすることで、ユーザ所望の映像を取得して表示することができるサービスが開示されている。
 このようなサービスの特徴として、ネットワーク(一般的にはインターネット)にさえつながれば、世界中のどこででも同じようにサービスを利用することができる点が挙げられる。
 一方、このようなサービスを利用する側の端末(以下、「ユーザ端末」という)も多様化、高機能化が進んでおり、デスクトップ型のPC、ラップトップ型のPC、タブレット型のPC、携帯電話、携帯ゲーム機など、ネットワークに接続可能であり、クラウドを使用して提供されるサービスを受けることが可能な端末の種類は多岐にわたっている。
 そのため、受けられるサービスが同一である場合でも、取得した情報を処理する環境がユーザの利用する端末ごとに異なるという状況が生じ、これにより、実行される処理がユーザによって異なるということも考えられる。
 このような現状から、端末によっては特定のサービスを受けられない可能性が出てきている。
 例えば、動画配信では一般に、その容量を削減するためにデータ圧縮のためのエンコードを行った上で、ネットワークに流され、端末側でデコード処理を行った上で動画を再生する。
 このエンコードやデコードのためのアルゴリズム(コーデック)は日々進化しており、高効率な圧縮が可能になってきている。しかし、一方でコーデックによっては、デコード処理の負荷が高く、端末側に高性能なCPU(Central Processing Unit)やデコード専用のハードウェアを搭載することで、新しいアルゴリズムに対応している例も見られる。
 そのため、携帯電話など、ハードウェアの変更がユーザの手では困難な端末の場合、端末の世代が古くなると、新しいコーデックに対応できず、新しいコーデックを使用した動画配信サービスを受けられない可能性がある。
 また、世代の古い端末など、サービスに対応していない端末でも、サービスを受けられるようにすることが望まれる。
 これに対する関連技術として、クラウド側でデータの形式を端末が扱える形式に変換した上で、端末にデータを送信するシステムが開示されている(特許文献1)。
 特許文献1に開示されたシステムでは、アプリケーションが処理することができるデータの種類に関する情報を格納したアプリケーションテーブルと、処理対象のデータを処理可能なアプリケーションを抽出する手段などを備え、処理対象のデータの形式と、ユーザが指定する出力形式からアプリケーションを選択することで、所望のデータ変換が行われる。
 また、携帯電話や携帯ゲーム機などの携帯端末の利用が広まっている現状から、携帯端末の状況を元に、クラウド側で適切にデータの加工を行うことも必要である。例えば、携帯端末の電波状況やバッテリー残量を確認し、転送データ量の少ない、または消費電力の小さい形式のデータに変換した上で、端末に転送することが考えられる。
 これに対する関連技術として、携帯端末の環境(機能、ネットワークの状態、位置、バッテリー状態など)に基づき、適切なサービスを端末に提供するためのシステムが開示されている(特許文献2)。
 更に、他の関連技術として、入力されたリクエスト(画像)に基づき、異なる複数の機能モジュールからリクエスト画像に対応する画像処理用の機能モジュールを選出し、画像データに適した処理を行うモジュール群を自動生成するシステムが開示されている(特許文献3)。
特表2002-207775号公報 特開2005-522763号公報 特開2010-170311号公報
 しかしながら、上記特許文献1に開示された関連技術では、データの形式の変換のみでは、ユーザごとに異なった処理を行うことができず、ユーザ端末に対応した、多様なサービス提供を行うことができないという不都合が生じ得る。
 また、上記特許文献2に開示された関連技術では、サービスを実現するアプリケーションの動的配置については言及していないことから、通信の遅延などがユーザの体感に大きな影響を与える映像配信用アプリケーションなどの場合に、遅延が発生してしまうといった不都合がある。
 また、上記特許文献3に開示された関連技術では、モジュールに対する入出力データの種別が合致することが前提となるため、組み合わせの種類が限定的であり、入出力データの種別や数が異なる多様なモジュールからなる多様なアプリケーションを生成することができないという不都合がある。
 本発明は、要求に応じたアプリケーションを生成すると共にこのアプリケーションの実行結果を確実にユーザ端末に対して提供することを可能とするアプリケーション構築配置システム、方法、およびプログラムを提供することを、その目的とする。
 上記目的を達成するために、本発明に係るアプリケーション構築配置システムは、資源ノード上で実行されるアプリケーションをユーザ端末からの要求に応じて構築するアプリケーション構築部と、前記アプリケーションの構成要素である処理モジュールを記憶するモジュール管理部と、前記構築したアプリケーションを前記資源ノードに配置する処理資源決定配置部とを設け、
 前記アプリケーション構築部は、前記ユーザ端末からの要求に含まれる処理内容に基づき前記モジュール管理部から前記アプリケーションを構成する処理モジュールを取得すると共に、前記処理内容に基づき前記アプリケーションの実行にかかる処理負荷を示す実行負荷値を推定し当該推定した実行負荷値に基づいて前記取得した異なる処理モジュールの結合パターンを決定する処理モジュール選出取得機能を有し、
 前記処理資源決定配置部は、構築された前記アプリケーションの処理内容および推定された前記実行負荷値に基づき前記アプリケーションの実行先である資源ノードを決定する処理資源決定機能を備えていることを特徴としている。
 また、本発明にかかるアプリケーション構築配置方法は、ネットワークを介して接続された資源ノード上で実行されるアプリケーションをユーザ端末からの要求に応じて構築し、この構築したアプリケーションを前記資源ノードに配備するアプリケーション構築配置方法であって、
 前記アプリケーションを構築するアプリケーション構築部が、前記ユーザ端末からの要求に含まれる処理内容に基づき前記アプリケーションを構成する前記処理モジュールをモジュール管理部から取得して前記処理内容に基づき前記アプリケーションの実行にかかる処理負荷を示す実行負荷値を推定し、且つ当該推定された実行負荷値に基づいて前記取得した異なる処理モジュールの結合パターンを決定し、
 前記構築されたアプリケーションの処理内容および前記実行負荷値に基づいて、前記処理資源決定配置部が前記アプリケーションの実行先である資源ノードを決定し、
 前記資源ノードが、前記処理資源決定配置部から送られた前記アプリケーションを実行し、その実行結果を前記ユーザ端末に提供するようにしたことを特徴としている。
 又、本発明にかかるアプリケーション構築配置プログラムは、ネットワークを介して接続された資源ノード上で実行されるアプリケーションをユーザ端末からの要求に応じて構築するアプリケーション構築部と、前記アプリケーションの構成要素である処理モジュールを記憶するモジュール管理部と、前記構築したアプリケーションを前記資源ノードに配置する処理資源決定配置部とを備えたアプリケーション構築配置システムにあって、前記ユーザ端末に、前記資源ノードで実行される前記アプリケーションの実行結果を提供するためのアプリケーション構築配置プログラムであって、
 前記ユーザ端末からの要求に含まれる処理内容に基づき前記アプリケーションを構成する前記処理モジュールをモジュール管理部から取得する処理モジュール選出取得処理機能、前記ユーザ端末からの要求に含まれる処理内容に基づいて前記アプリケーションの実行にかかる処理負荷を示す実行負荷値を推定する負荷推定処理機能、この負荷推定処理機能で推定された実行負荷値に基づいて前記取得した異なる処理モジュールの結合パターンを決定するモジュール結合パターン決定処理機能、および前記構築されたアプリケーションの処理内容および前記実行負荷値に基づいて前記アプリケーションの実行先である資源ノードを決定する処理資源決定処理機能とを、前記アプリケーション構築配置システムのコンピュータに実行させるようにしたことを特徴としている。
 本発明は、生成するウェブアプリケーションを構成する前記処理モジュールを要求データに基づき抽出し、資源ノードにおける処理負荷に基づきウェブアプリケーションが実行される資源ノードを決定する構成としたことにより、アプリケーションの実行結果をより確実にユーザ端末に対して提供することができる。
本発明における実施形態1に係るアプリケーション構築配置システムを示す概略ブロック図である。 図1に示したアプリケーション構築配置システムにおけるモジュール管理ブロック22で管理されるテーブル情報の一例を示す説明図である。 図1に示したアプリケーション構築配置システムにおける全体的な動作内容を示すシーケンス図である。 図1に示したアプリケーション構築配置システムにおけるステップS200の動作内容を詳細に示したフローチャートである。 図1に示したアプリケーション構築配置システムにおけるアプリケーションの処理フローの一例を示した説明図である。 図5に示した処理フローに対してグループ化した結果の一例を示す説明図である。 図5,6に示した処理フローに対応して取得されたモジュールの一例を示す説明図である。 図7に示した処理フローの同一グループ内の接続可能なモジュールの一候補を示す説明図である。 図8に示した処理フローに対してデータ形式を変換する接続モジュールを挿入した場合の一例を示した説明図である。 図8に示した処理フローに対してデータ形式を変換する他のモジュールを挿入した場合の一例を示した説明図である。 図1に示したアプリケーション構築配置システムにおけるモジュール管理ブロックで管理されるテーブル情報の一例を示す説明図である。 図1に示したアプリケーション構築配置システムにおけるモジュール管理ブロックで管理されるテーブル情報の一例を示す説明図である。 本発明における実施形態2に係るアプリケーション構築配置システムを示す概略ブロック図である。 図13に示したアプリケーション構築配置システムにおけるアプリケーションの処理フローの一例を示した説明図である。 図13に示したアプリケーション構築配置システムにおけるアプリケーションの処理フローの一例を示した説明図である。 図13に示したアプリケーション構築配置システムにおける全体的な動作処理ステップを示すシーケンスチャートである。 本発明における実施形態3に係るアプリケーション構築配置システムを示す概略ブロック図である。 図17に示したアプリケーション構築配置システムのアプリケーションキャッシュ管理ブロックが保持するテーブル情報の一例を示す説明図である。 図17に示したアプリケーション構築配置システムにおけるアプリケーション構築ブロックの動作ステップを示すフローチャートである。
[実施形態1]
 次に、本発明の第1実施形態について、その基本的構成内容を説明し、その後に具体的な内容を説明する。
 本第1実施形態であるアプリケーション構築配置システムは、図1に示すように、アプリケーションの実行処理を要求するユーザ端末10と、このユーザ端末10からの要請に応じて所定のアプリケーションを構築すると共に実行環境である資源ノードに配置するアプリケーション構築配置装置1とを備えている。
 ここで、資源ノードは、ネットワークに接続する通信機能と、アプリケーションを処理する機能を備えたノードであり、例えば、ネットワークカードを搭載したサーバや、サーバとネットワークスイッチを組み合わせた装置が資源ノードに該当する。本実施形態では、資源ノードは、ネットワークを介して上記アプリケーション構築配置装置1に予め接続された実資源である計算資源・ネットワーク資源50に備えられる。
 上記アプリケーション構築配置装置1は、ユーザ端末10からの要求に対するアプリケーションの構成要素として予め登録された処理モジュールを管理するモジュール管理ブロック(モジュール管理部)22と、ユーザ端末10からのアプリケーション構築リクエスト(要求)に応じてモジュール管理ブロック22からアプリケーション構築用のモジュールを取得すると共にこれに基づいてアプリケーションを構築するアプリケーション構築ブロック(アプリケーション構築部)20と、このアプリケーション構築ブロック20により構築されたアプリケーションの実行環境としての資源ノードを決定すると共に構築した前記アプリケーションをネットワークを介して資源ノードに対して配置する処理配置決定ブロック(処理資源決定配置部)30とを備えている。
 ここで、ブロックとは、ソフトウエア,プログラム,及びハードウェアの少なくとも何れかによって実現される一機能単位を示す。又、計算資源・ネットワーク資源50は、パーソナルコンピュータ(PC)やサーバなどの何らかのプログラムを実行可能な計算機全般と、ネットワークスイッチやルータやネットワークケーブル等のネットワーク装置全般を指称する。そして、計算資源は、ネットワーク資源により相互に接続される。
 以下、これを、具体的に詳述する。
 ユーザ端末10は、アプリケーションなどの実行を要求するためのリクエスト発信用アプリケーションを起動し、アプリケーション構築配置装置1に対してアプリケーション構築リクエストを送信する(リクエスト送信機能)。
 上記アプリケーションは、例えば、インターネット上におけるウェブサーバで実行されるウェブアプリケーションであるものとする。また、リクエスト発信用アプリケーションは、例えば、ユーザ端末10で実行されるウェブサイト閲覧用のブラウザプログラムであってもよい。
 ここでは、ユーザ端末10がリクエスト発信用アプリケーションを起動した場合、ユーザ端末10からアプリケーション構築ブロック20に対して、予め設定されたアプリケーション構築リクエストが送り込まれるものとする。
 尚、リクエスト発信用アプリケーションがブラウザである場合には、ブラウザに対してウェブアプリケーションの実行元を示すURLなどのアドレス情報が入力された場合や、ブラウザにおけるウェブアプリケーション実行用のリンクが選択指定された場合に、上記アプリケーション構築リクエストが送出されるものとする。
 また、上記アプリケーション構築リクエストには、入力データ形式、出力データ形式、データに対して行う処理、および処理間の依存関係に係る記述が含まれているものとする。ここで、処理間の依存関係とは、例えば、ある処理を実行する前にこの処理を実行しなければならない、というような、処理の実行順序に関する守らなければならない制約を示す。
 また、ユーザ端末10は、計算資源・ネットワーク資源50におけるウェブサーバなどの資源ノード上で実行されたアプリケーションの実行結果を取得すると共にこの実行結果を出力表示する実行結果表示手段(図示せず)を備えている。
 尚、上記ユーザ端末10から出されるアプリケーション構築リクエストに対するアプリケーションの実行結果は、実行元である計算資源・ネットワーク資源50の資源ノードからユーザ端末10に対してインターネットを介して送り込まれる。また、アプリケーション構築配置装置1は、上記資源ノードから上記アプリケーション実行結果を取得し、ユーザ端末10に転送する設定としてもよい。
 また、ユーザ端末10は、当該ユーザ端末10における特定の処理内容を、検索キーとするアプリケーション構築リクエストをアプリケーション構築ブロック20に送信する設定であってもよい。
 この場合は、ユーザ端末10における処理内容を表現するための予め定められた形式が用いられ、例えば、特定の処理内容に対して割り当てられた一意のIDやラベルがアプリケーション構築リクエストに含まれているものとする。
 アプリケーション構築配置装置1のアプリケーション構築ブロック20は、ユーザ端末10からのアプリケーション構築リクエスト(以下「リクエスト」という)を取得した場合にモジュール管理ブロック22にアクセスを行い、リクエストに含まれる、入力データ形式、出力データ形式、データに対して行う処理、および異なる処理間の依存関係(実行順序)を検索キーとしてモジュール管理ブロック22の検索を行い、検索キーに対応するモジュールに係る情報を取得する(処理モジュール選出取得機能)。
 ここで、モジュールとは、何らかの機能を提供するソフトウエア・プラグラム、又はハードウェアを指称する。ハードウェアについては、特定用途向けの専用プロセッサからFPGA( Field Programmable Gate Array)のような第三者によって構成可能なハードウェアを設定するための構成情報等も含むものとする。
 尚、上記モジュールに係る情報には、少なくとも、モジュールのID、入力形式、および出力形式が含まれるものとする。また、モジュール名がモジュールに対して一意に定まる場合には、IDの代わりにモジュール名を取得してもよい。
 また、アプリケーション構築ブロック20は、取得したモジュール同士を接続することによりユーザ端末10からのリクエストに対応したアプリケーションの構築を行う(アプリケーション構築機能)。
 更に、アプリケーション構築ブロック20は、リクエスト内容に基づき、取得した異なるモジュールを相互に接続可能とするための接続モジュールを構築すると共に、この構築した接続モジュールを介してモジュール同士の接続を行ってもよい(接続モジュール構築機能/処理モジュール選出取得機能)。
 即ち、上記アプリケーション構築ブロック20は、前記ユーザ端末10からの要求に含まれる処理内容に基づいて前記モジュール管理ブロック22から前記アプリケーションを構成する処理モジュールを取得すると共に、前記処理内容に基づき当該アプリケーションの実行にかかる処理負荷を示す実行負荷値を推定し当該推定した実行負荷値に基づいて前記取得した異なる処理モジュールの結合パターンを決定する処理モジュール選出取得機能を備えている。
 又、これに対応して、前述した処理配置決定ブロック(処理資源決定配置部)30部は、後述するように、構築された前記アプリケーションの処理内容および推定された前記実行負荷値に基づき前記アプリケーションの実行先である資源ノードを決定する処理資源決定機能を備えている。
 ここで、アプリケーション構築ブロック20が構築するアプリケーションの一例として、図5に示すような処理モジュールの流れ(処理フロー/実行順序)を持つアプリケーションを構築する場合について説明する。
 この図5における処理モジュールA、B、C、D、およびEは、それぞれアプリケーションの具体的な構成要素としての処理モジュールではなく、アプリケーションの実行時におけるモジュールの処理単位を示す。
 例えば、処理Aでは、アプリケーション実行時における入力データを受け付け、この入力データに対して何らかの処理を行い、処理B~Dはそれぞれ、その前の処理結果として渡されたデータ(処理データ)に対して、何らかの処理を行う。
 また、処理Eでは、処理Dからの処理データに対して何らかの処理を行い、アプリケーションの最終処理結果としての処理データを出力するものとする。
 アプリケーション構築ブロック20は、ユーザ端末10から入力されたリクエストの内容に基づき処理単位を抽出する。また、リクエストの内容からアプリケーション処理(例えば、処理A、B、C、D、およびE)間の依存関係(実行順序)を示す情報である処理依存関係情報(実行順序関係情報)を抽出し、この処理依存関係情報に基づいて、処理内容のグルーピングを行う(処理グループ化機能/モジュール実行順位決定機能)。
 即ち、アプリケーション構築ブロック20は、前記取得した各処理モジュールにおける入力受け付け可能な入力データの数および各処理モジュールの処理結果としての出力データの数に基づき前記構築したアプリケーションにおける処理モジュールの実行順位を処理の依存関係として決定するモジュール実行順位決定機能を備えている。
 ここで、上記処理グループ化機能により設定されるグループは、相互に依存関係のある処理を区切るように構築されるものとする。また、グループ内の処理は順序を入れ替えが可能であるものとする。尚、異なるグループ間における処理順序は入れ替えられないものとする。
 ここで、図5に示した処理群(A~E)に対してアプリケーション構築ブロック20がグループ化を行った結果の一例を図6に示す。この図6では、処理グループ1~4の4つのグループに分割されている。
 更に、アプリケーション構築ブロック20は、処理グループに含まれる処理内容に基づきモジュール管理ブロック22を検索し、同一の処理グループを構成する処理モジュール(以下、「モジュール」という)を取得し、また、各モジュールに係る情報であるモジュール情報を取得する(対応モジュール取得機能)。この処理の結果の一例を図7に示す。この図7では、A~Eの各処理に対して、モジュールの候補が選択されている(処理モジュール選出取得機能)。
 尚、この段階ではグループ同士(グループ相互間)の接続可能性については判定を行わず、各処理に適用することが可能な処理モジュールの選択抽出のみを行う。このため、図7の下段においては、具体的な処理モジュールの候補は列挙されているものの、それらが接続可能かどうかは未確定であるため、各処理同士は接続されていないものとする。
 ここで、上記モジュール情報には、そのモジュールに固有に割り当てられたID、入力形式、出力形式が含まれるものとする。尚、モジュール名がモジュールに対して一意に定まる場合には、モジュール管理ブロック22から上記IDの代わりにモジュール名を取得してもよい。
 アプリケーション構築ブロック20は、上記対応モジュール取得機能を実行した結果、全ての処理(処理A~E)それぞれに対応して1つ以上のモジュールが選択されたか否かを判定し、各処理に対応して1つ以上のモジュールが選択抽出された場合、各グループに所属する複数の処理モジュールに対して、各処理を実現するモジュール同士の接続可能なパターンを調べる(グループ内接続パターン特定機能)。
 ここで、上記グループ内接続パターン特定機能の処理内容の一例について、図8に基づき説明する。
 まず、アプリケーション構築ブロック20は、同一グループ内の処理について、相互接続可能な候補を抽出する。このとき、アプリケーション構築ブロック20はモジュール同士の接続可能なパターンを、例えばモジュールにおける入出力のデータ形式を比較し、共通のデータ形式であるモジュール同士を相互に接続可能なモジュールとして抽出する。
 例えば、同一グループ内に異なる複数の処理が含まれるグループ3(図8)においては、モジュールCの処理を行った後にモジュールD1の処理を行っても(C→D1という順)、モジュールD2の処理を行った後にモジュールCの処理を行っても(D2→Cという順)実現可能であるものとする。
 尚、ここでは、D1→CやD2→Cという順でモジュールの接続はできないことも示されているものとする。
 ここで、グループ3について、モジュールCとモジュールD1、モジュールD2を接続する処理フローが存在しない場合、つまり、モジュールCの入出力データ形式とモジュールD1、モジュールD2の入出力データ形式とが異なる場合に、アプリケーション構築ブロック20は、データ形式を適切に変換しCとD1、およびD2、をそれぞれ中継接続するモジュール(接続モジュール)を検索する。
 ここで、アプリケーション構築ブロック20は上記検索結果として、例えば、データ形式変換モジュールc’およびd’を得るものとする(図9)。
 この接続モジュール検索機能を実行することによってモジュール管理ブロックから接続モジュールc’、およびd’それぞれが得られた場合に、アプリケーション構築ブロック20は、図9に示すように、グループ3に所属するモジュールCおよびD1を接続モジュールc’を介して接続し、モジュールD2およびCを接続モジュールd’を介して接続する。
 尚、アプリケーション構築ブロック20は、グループ内接続パターン特定処理を行う時点で対象の処理グループ内で使用可能なモジュールが特定される場合には、使用可能なモジュールのみを候補として残すものとする。
 更に、アプリケーション構築ブロック20は、各処理グループにおける始端および終端の処理モジュールについて、上記処理フローの順で各処理グループが他の処理グループと接続可能であるか否かを判定する。
 アプリケーション構築ブロック20は、グループ間の接続処理について、抽出されたモジュール、またはモジュールの組み合わせの候補に対して、グループそれぞれの入出力データのデータ形式に基づき接続可能なモジュール、またはモジュールの組み合わせを決定する(接続可能モジュール決定機能)。
 ここで、例えば、グループ2に属する処理モジュールB1の出力データ形式(出力形式)とグループ3に属する処理モジュールCにおける入力データ形式(入力形式)が異なる場合、出力形式および入力形式を検索キーとして、モジュール管理ブロック22内の検索を行う(グループ接続用モジュール検索機能)。
 アプリケーション構築ブロック20は、アプリケーション処理に含まれる各処理グループが他の処理グループと接続されたか否かを判定する。
 ここで、他のどの処理グループとも接続されていない処理グループが有る場合、アプリケーションの処理フローに基づき、対応する処理グループ同士の接続を可能とするための接続用モジュールの検索を行う。
 ここで、上記検索キーに対応する変換モジュール(グループ接続用の接続モジュール)が見つからなかった場合、アプリケーション構築ブロック20は、ユーザ端末10からリクエストされたアプリケーションの構築要素であるモジュールが存在しないと判定し、アプリケーションの構築に失敗したことを示すメッセージをユーザ端末10に通知する。
 一方、上記検索キーに対応するモジュール(グループ接続用の接続モジュール)としてのモジュールb’が検索抽出された場合、アプリケーション構築ブロック20は、図10に示すように、このモジュールb’を対象の各グループに追加する。
 図10に、データ形式変換モジュールb' を、グループ2に属する出力側モジュール(終端モジュール)として挿入した場合と、グループ3に属する入力側モジュール(始端モジュール)として挿入した場合とをそれぞれ示す。
 入出力データのデータ形式を変換するモジュール(ここでは、モジュールb’)が検索抽出された場合、アプリケーション構築ブロック20は、処理グループ間のデータ形式変換モジュールであるモジュールb’を、対象グループの接続元の出力側、もしくは、接続先の入力側として挿入し、このデータ形式変換モジュールを介して処理グループの接続を行う(処理グループ接続機能)。
 ここで、アプリケーションを構築するためのモジュール接続パターンが複数存在する場合に(例えば、グループ3において、図8のモジュールC→モジュールD1、モジュールD2→モジュールCのどちらの接続パターンでも前後のグループと接続可能な場合)、アプリケーション構築ブロック20は、それぞれのアプリケーション実行時における処理負荷、処理時間等を調べ、アプリケーション実行時における処理デバイスにおける処理負荷、処理時間等などに応じて接続パターンを決定する(静的負荷決定機能)。
 ここでは、例えば、アプリケーション実行時におけるCPUの処理負荷が軽減される接続パターンを最終的に構築されるアプリケーションにおけるモジュールの接続パターンとして選択する。
 また、使用するモジュール数やアプリケーション実行時のコストなどに係る基準データがリクエスト内に含まれている場合には、この基準データに基づき接続パターンを選択するものとする。
 換言すると、前記アプリケーション構築部20は、前記要求に含まれた前記ユーザ端末10における処理能力に係るハードウェア情報に基づき、前記アプリケーションの実行結果を取得したときの前記ユーザ端末における処理負荷軽減用に前記取得した処理モジュールの接続パターンを決定する静的負荷決定機能を備えている。
 尚、アプリケーション構築ブロック20は、接続可能なモジュールの接続パターンが複数ある場合に、アプリケーションの処理フローに基づきランダムに接続パターンを決定してもよい。この場合は、アプリケーションを構成するモジュールを選択し抽出した後、迅速にアプリケーションを構築することが可能となる。
 アプリケーション構築ブロック20は、前述した接続可能モジュール抽出機能を実行するにあたって、上記処理フローにおける最初のモジュールから接続可能であるか否かを、各処理モジュールについて、それぞれ順番に判定する設定であってもよいし、並列に判定する設定であってもよい。
 アプリケーション構築ブロック20は、処理配置決定ブロック(処理資源決定配置部)30に対してマッピング要求を送信することにより、上記構築したアプリケーションの配置先である資源ノードを決定するマッピング処理の実行を、処理配置決定ブロック30に要求する(マッピング要求機能)。
 尚、マッピング要求には、どのモジュールを選択したかを示す情報(選択モジュール情報)や、選択したモジュール間をどのように接続したかを示す情報(モジュール間接続情報)などを示すアプリケーション情報が含まれているものとする。
 モジュール管理ブロック22は、アプリケーションを構築するためのモジュール、および各モジュールに係る情報であるモジュール情報を、モジュール情報テーブル221(図2)として記憶している。
 尚、モジュール管理ブロック22には、各モジュールに対して固有に予め割り当てられたID、モジュール名、そのモジュールの処理内容、各モジュールへの入力の入力形式、およびモジュールからの出力形式が予め登録されているものとする。
 モジュール管理ブロック22は、アプリケーション構築ブロック20によるモジュールの検索処理より検索キーに対応するモジュールが検索ヒットした場合に、このモジュールをアプリケーション構築要素の候補としてアプリケーション構築ブロック20に提供する。
 ここで、モジュール管理ブロック22は、アプリケーションの入出力用処理として設定された処理(図6のAとE)については、入力データおよび出力データそれぞれの形式(入力形式と出力形式)が予め設定されているため、処理内容を示す情報に加えて、データの入力形式や出力形式も検索キーとする。
 これにより、利用可能なモジュールを絞り込むことが可能となり、更には、これによりモジュール管理ブロック22におけるモジュールの検索処理を迅速化することが可能となる。
 モジュール管理ブロック22は、上記検索処理で、処理単位に対応するモジュールが1つも検索抽出できない場合(つまり、対応するモジュールがない(検索ヒットしない)場合)には、アプリケーションを実現するためのモジュールが存在ことをアプリケーション構築ブロック20に通知する。
(モジュール管理ブロックの変形例1)
 モジュール管理ブロック22は、モジュールに固有に振られたIDと、モジュール名、そのモジュールの処理内容、モジュールへの入力の数、入力の形式、モジュールからの出力の数と、出力の形式とを含むテーブル情報(図11)222をモジュール情報として登録・管理する設定であってもよい。
 尚、図11におけるテーブル情報222の入力データおよび出力データの数とは、あるモジュールが何個のモジュールと接続可能であるかを示す値ではなく、そのモジュールに対して与える入力データの個数や、そのモジュールから出力される出力データの個数を示すものとする。
 例えば、2台のカメラからの映像データを入力とするモジュールの場合、そのモジュールは少なくとも入力数が2でなければならない。
 また、映像データの偶数フレームと奇数フレームを異なるモジュールに転送するモジュールが存在する場合、出力数は2となる。
 これにより、例えば、複数の入力データを必要とするモジュールや、複数の出力データを出力するモジュールを含むアプリケーションを構築することが可能となる。
 ここで、モジュール管理ブロック22がモジュール情報をテーブル情報222の形式で管理している場合に、アプリケーション構築ブロック20で構築することが可能なアプリケーションの処理フローを、図14および図15に示す。
 ここで、例えば、図14の処理B、図15の処理Aは複数の異なる出力データ(ここでは、2つ)を有する処理であり、図14の処理E、図15の処理Gは異なる複数の入力データがある処理を示す。また、図15の処理Dは、異なる複数の入力データおよび異なる複数の複数の出力データを有する処理を示す。
 以上のように、モジュール管理ブロック22が各モジュールにおける入力データの数、および出力データの数を含むモジュール情報をテーブル情報222として管理している場合には、アプリケーション構築ブロック20では、処理フロー内に複数の入出力データの処理単位を含む、より多様な処理内容を含むアプリケーションを構築することが可能となる。
(モジュール管理ブロックの変形例2)
 また、モジュール管理ブロック22は、アプリケーションを構築するためのモジュールをテーブル情報223(図12)として管理する設定であってもよい。
 このテーブル情報223には、図12に示すように、各モジュールに固有に振られたIDと、モジュール名(Module Name)、各モジュールの処理内容、各モジュールにおける入力データ形式(入力形式)、各モジュールからの出力データ形式(出力形式)、およびモジュールの処理コストが登録内容として含まれるものとする。
 尚、上記処理コストは、モジュールの実行処理を行った際の処理対象(つまり、資源ノード)における処理負荷や、処理時間を示すものとする。
 モジュール管理ブロック22は、例えば、上記構築したアプリケーションを基準となる計算機(コンピュータ)で実行した場合の処理負荷や処理時間を推定し、これを基準として(例えば基準値1とする)各資源ノードにおけるアプリケーション実行時の処理負荷や処理時間(または、基準値1に対する相対値)を推定算出して、テーブル情報223に登録する。
 また、モジュール管理ブロック22は、処理負荷、処理時間といった単一の指標だけでなく、各資源ノードにおける異なる複数の指標の相関関係に基づき、各指標に対応して重み付けを行う設定であってもよい(重み付け値を設定)。
 この場合、処理配置決定ブロック30は、上記設定された重み付け値を加算した値を示す重み付け指標値が各資源ノードで一定値範囲内となるように、アプリケーションの配置先を決定することができ、これにより、計算資源ネットワーク資源50における各資源ノードで分配されたアプリケーションが実行されたときの各資源ノードにおける処理負荷が有効に分散される。
 また、モジュール管理ブロック20が処理コストを指標ごとに、入出力データ形式などの他の項目とは別の項目として管理することにより、様々な指標を扱うことが可能となる。
 尚、アプリケーション構築ブロック20は、上記処理コストに関する情報を、リクエストに応じてモジュール管理ブロック22に対してモジュール検索のためのアクセスの場合や、モジュール管理ブロック22に対して検索キーに基づきモジュールの絞込み検索を行う場合などに、モジュールのIDと、入力形式、出力形式とともに取得するものとする。
 また、処理コストに関する情報は、アプリケーション構築ブロック20が、接続パターンの絞込みを行う場合に取得してもよい。
 ここで、このアプリケーション構築ブロック20に対応して、前述した処理配置決定ブロック(処理資源決定配置部)30は、ユーザ端末10に対して提供された前記アプリケーションの実行結果の処理状態を検知する実行結果処理検知機能と、この検知した処理状態に基づいて前記アプリケーションの前記実行結果の処理遅延時間を算出する実行結果処理遅延時間算出機能と、前記処理遅延時間の抑制用に抽出された前記処理ノードの接続パターンを更新する処理ノード接続パターン更新機能とを備えている。
 これにより、例えば、ユーザ端末10がリアルタイム性の求められるアプリケーションのリクエストを出した際に、アプリケーション構築ブロック20は、アプリケーションの構築処理にあたって、アプリケーションを構成するモジュールの接続パターンとして、許容される遅延(処理時間)の最大値を超えないような、処理時間が短いことを優先した接続パターンを選択することが可能になる。
 また、アプリケーション構築ブロック20は、例えば、ユーザ端末がアプリケーション構築配置装置を利用する際に課金される場合などにその課金状況に応じて利用可能なリソース(資源ノード)の総量を設定し、その総量を超えないようにモジュールを選択することによりアプリケーションの構築を行うといったことも可能となる。
 これに対応して、前述した処理配置決定ブロック(処理資源決定配置部)30は、前記アプリケーションの実行用に割り当て可能なリソース総量を設定すると共に、当該設定されたリソース総量の範囲内で前記アプリケーションの実行を行う前記資源ノードを決定する資源総量決定機能とを備えている。
 そして、上記処理コストに関する情報は、処理配置決定ブロック30が、アプリケーションの配置を決定する際にも、配置の指標として用いられる。このため、アプリケーション構築ブロック20が、アプリケーションの配置リクエストを出す際に、処理配置決定ブロック30に処理コストに関する情報をリクエスト内に含める設定であってもよい。
 以上のように、モジュール管理ブロック22の変形例2においては、モジュール管理ブロック22が、モジュールのコスト値を保持しているため、アプリケーション構築ブロック20は、モジュールを選択する際には、処理時間や処理負荷といった指標を用いて、アプリケーションを構築することができる(処理モジュール選出取得機能)。
 また、前述した処理配置決定ブロック30は、アプリケーションの配置を決定する際にも、処理コストの情報を用いてアプリケーションの配置先を決定することができ(処理資源決定機能の実行)、この場合、ユーザ端末10に提供されるサービスの品質向上や、使用される計算資源・ネットワーク資源50における処理コストを有効に分散することが可能となる。
 上記処理配置決定ブロック30は、計算資源ネットワーク資源50からネットワークを介して予め設定された資源ノードにおける処理負荷状況を検知する(負荷状況モニタ機能)。
 また、処理配置決定ブロック30は、検知した処理負荷に基づき、ウェブアプリケーションの実行を行う、アプリケーション配置先としての資源ノードを決定する処理資源決定機能を備えている。
 処理配置決定ブロック30は、この処理資源決定機能を稼働させて、アプリケーション構築ブロック20からアプリケーションのマッピング要求が送り込まれた場合に、このマッピング要求に含まれるアプリケーション情報に基づいて、計算資源・ネットワーク資源50における上記アプリケーションを動作させる資源ノード(ここでは、50-1とする)を決定し、この資源ノードに対してアプリケーションの配信を行う(アプリケーション配信機能)。アプリケーション配信の際には、検知した処理負荷に基づき、アプリケーション配置先としての資源ノードを決定する(処理資源決定機能)。
 尚、この処理資源決定機能では、例えば、公知の計算資源やネットワーク資源を管理する手法(例えば特許文献3に示されるような手法)を用いて決定する設定であってもよい。
 計算資源・ネットワーク資源50は、通信回線を介して相互に通信を行う異なる複数の資源ノード(50-1~50-n)を備え、各資源ノード(50-1~50-n)は、処理配置決定ブロック30からアプリケーションが送り込まれた場合にこれを導入して実行するアプリケーション導入実行機能を有する。
 また、計算資源・ネットワーク資源50の各資源ノードは、アプリケーションの実行結果をユーザ端末10に対してインターネットなどの通信回線を介して提供する。
 尚、資源ノードにおけるアプリケーションの実行結果はアプリケーション構築は位置システム1を介してユーザ端末10に送られる設定であってもよい。
 以上のように、本実施形態1では、アプリケーション構築ブロック20が、ユーザ端末10からのアプリケーション構築リクエストに応じてアプリケーションを構築するため、ユーザ端末10のリクエストに応じた、多様なアプリケーションを構築し、計算資源・ネットワーク資源50の資源ノードに対して有効に分散配置することが可能となる。
[実施形態1の動作説明]
 次に、アプリケーション構築配置システムの動作説明を行う。
 まず、アプリケーション構築部であるアプリケーション構築ブロック20が、ユーザ端末10からの要求に含まれる処理内容に基づきアプリケーションを構成する処理モジュールをモジュール管理ブロック(モジュール管理部)22から取得する(処理モジュール選出工程)。
 続いて、上記処理内容に基づきアプリケーションの実行にかかる処理負荷を示す実行負荷値を推定し(負荷推定工程)、この推定された実行負荷値に基づき、取得した異なる処理モジュールの結合パターンを決定する(モジュール結合パターン決定工程)
 次に、処理資源決定部である処理配置決定ブロック30が、アプリケーション構築ブロック20によって構築されたアプリケーションの処理内容および前述した実行負荷値に基づいて、アプリケーションを実行先である資源ノードを決定し(処理資源決定工程)、次いで、当該資源ノードが、処理配置決定ブロック30から送られた前記アプリケーションを実行し、その実行結果をユーザ端末10に提供する
 ここで、上記処理モジュール選出工程、負荷推定工程、モジュール結合パターン決定工程、および処理資源決定工程については、その実行内容をプログラム化し、コンピュータに実行させるように構成してもよい。本実施形態1における以下に示す各動作工程についても同様であり、また、かかる点については、後述する各実施形態2,実施形態3についても同様である。
 また、本プログラムは、非一時的な記録媒体、例えば、DVD、CD、フラッシュメモリなどに記録されてもよい。その場合、本プログラムは、記録媒体からコンピュータによって読み出され、実行される。
 次に、上述した実施形態1に係る、アプリケーション構築・配置システムの動作について、図3のシーケンス図および図4のフローチャートに基づき詳述する。
 まず、ユーザ端末10が、リクエスト送信用のアプリケーションを起動する(図3:ステップS100)。ここで、アプリケーションを起動された場合にアプリケーション構築ブロック20に対してアプリケーション構築リクエストが出される。
 このアプリケーション構築リクエストには、少なくとも、入力データ形式と、出力データ形式と、データに対して行う処理と、処理間の依存関係に関する記述が含まれているものとする。
 次に、アプリケーション構築ブロック20は、ユーザ端末10からのアプリケーション構築リクエストに含まれる、データに対して行う処理と、を検索キーとしてモジュール管理ブロック22にアクセスし、使用可能な処理モジュールに関する情報を取得する(図3:ステップS200)。
 ここで、アプリケーション構築ブロック20は、データに対して行う処理、その処理の入力形式、およびその処理の出力形式を検索キーとして、モジュール管理ブロック22にアクセスを行い、使用可能な処理モジュールに関する情報を取得する。
 この処理モジュールに関する情報には、少なくとも、そのモジュールのIDと、入力形式、出力形式が含まれる。また、モジュール名がモジュールに対して一意に定まる場合には、IDの代わりにモジュール名を取得してもよい。
 次に、アプリケーション構築ブロック20は、選択したモジュール同士を接続して、アプリケーションを構築する(図3:アプリケーション構築工程/ステップS205)。
 次に、アプリケーション構築ブロック20は、構築したアプリケーションを計算資源・ネットワーク資源50の資源ノードで実行するために、処理配置決定ブロック30にアプリケーションの実資源へのマッピング要求を送信する(図3:ステップS210)。
 尚、このマッピング要求には、どのモジュールを選択したのかに関する情報や、選択したモジュール間をどのように接続したかを示す接続情報、などが含まれるものとする。
 次に、処理配置決定ブロック30は、アプリケーション構築ブロック20からのマッピング要求に応じて、計算資源・ネットワーク資源50における予め設定されたマッピング要求、およびアプリケーション内容に基づき配信先を決定する(図3:ステップS300)と共にアプリケーションを資源ノードに対して送信する(図3:ステップS310)。
 最後に、計算資源・ネットワーク資源50のアプリケーションのマッピング先である資源ノードはアプリケーションを取得すると共に、このアプリケーションの導入および実行を行い、このアプリケーションの実行結果はユーザ端末10に送られる。
 尚、上記マッピングの手法としては、特許文献3に示されるような計算資源やネットワーク資源を管理する手法を用いることにより実現されるものとする。
 次に、アプリケーション構築ブロック20における、アプリケーション構築工程(図3:ステップS205)について、図4のフローチャートに基づき説明する。
 アプリケーション構築ブロック20は、ユーザ端末10から入力されたリクエストに含まれる、異なる処理単位間の依存関係を示す情報に基づき処理内容(処理単位)のグルーピングを行う(図4:ステップS2000)。
 ここで設定されるグループは、依存関係のある異なる処理モジュールを区切るように構築され、グループ内の処理は順序を入れ替えてもよいが、グループ間の順序は入れ替えられないものとする。図6に、処理(A~E)をグルーピングした結果を示す。
 次に、アプリケーション構築ブロック20は、各処理を実現する構成要素としてのモジュールに係る情報をモジュール管理ブロック22から取得する(図4:ステップS2005)。
 ここで、モジュールに関する情報には、そのモジュールのIDと、入力形式、出力形式が含まれるものとする。
 尚、モジュール管理ブロック22は、上述のように、アプリケーションを構築するためのモジュールを管理しており、図2に示されるように、モジュールに固有に振られたIDと、モジュール名、そのモジュールの処理内容、モジュールへの入力の入力形式、モジュールからの出力形式が予め登録されているものとする。
 アプリケーション構築ブロック20は、モジュール管理ブロック22に対して、構築するアプリケーションの処理内容を示す情報を検索キーとして与え、利用可能なモジュールの候補を検索し取得する。
 ここで、アプリケーション構築ブロック20は、アプリケーションの入出力に位置する処理(例えば、図6のAとE)について、それぞれデータの入力形式と出力形式に制約がかかっているため、処理内容を示す情報に加えて、データの入力形式や出力形式も検索キーとしてモジュール管理ブロック22に渡すことにより、利用可能なモジュールをより絞り込んだ検索を行ってもよい。
 ここで、ステップS2005の時点では、各処理単位(例えば、A~E)に対して、1つ以上の処理モジュールが選択されるものとする。
 例えば、図7では、処理Bと処理Dに対応するモジュールが2つずつ抽出されている。(処理B:モジュールB1、B2、処理D:モジュールD1、D2)。
 ここで、対応するモジュールが1つも検索抽出されない場合は(図4:ノー、ステップS2007)、リクエストされたアプリケーションを実現する手段が存在しないと判定され、アプリケーションの構築に失敗した旨がユーザ端末10に通知される。
 尚、アプリケーション構築ブロック20が処理内容を検索キーとしてモジュール管理ブロック22に検索アクセスする場合は、処理内容を表現するための、予め定められた形式を用いるものとする。この場合、アプリケーション構築ブロック20は、例えば処理内容に対して一意なIDやラベルを割り振り、アプリケーション構築リクエストにこのIDやラベルを含める。
 更に、この時点では、グループ間の接続可能性については判定を行わず、アプリケーション構築ブロック20は各処理に適用することが可能なモジュールを選択するものとする。例えば、図7においては、具体的なモジュールの候補は列挙されているものの、それらが接続可能かどうかは未確定であるため、各処理同士は接続されていないものとする。
 次に、アプリケーション構築ブロック20は、アプリケーションに含まれる全ての処理それぞれに対応して、1つ以上のモジュールが選択された場合(図4:イエス、ステップS2007)、同一グループ内に複数の処理を含むグループに対して、各処理を実現するモジュール同士の接続可能なパターンを列挙する(図4:ステップS2010)。
 ここで、この接続可能なパターンはモジュールの入出力を比較することで探し出すことが可能である。
 図8に、同一グループ内の処理について、接続可能な候補を挙げた状態を示す。
 尚、図5の例では、同一グループに複数の処理が含まれるグループはグループ3のみであり、図8ではC→D1でも、D2→Cでも実現可能なモジュールが存在することを示している。また、これにより、D1→Cや、C→D2というモジュールの接続は不可であることも示されているものとする。
 次に、アプリケーション構築ブロック20は、(図4:ステップS2010)で接続可能なパターンが見つからなかったグループが存在する場合(図4:ノー、ステップS2020)、そのグループの処理を実現するモジュールが出力するデータ形式を、他方のモジュールに対する入力データ形式に変換可能なモジュールが存在するかどうか、モジュール管理ブロック22に対して、処理の入出力を検索キーとしてアクセスする(図4:ステップS2030)。
 このデータ形式を変換するモジュールの検索を行う場合には、アプリケーション構築ブロック20は、接続対象の処理に対して、接続元の処理の候補として挙げられているモジュールの出力と、接続先の処理の候補として挙げられているモジュールの入力の双方にデータ形式が適合する変換モジュールを検索する。
 更に、(図4:ステップS2030)で必要な変換モジュールが見つからなかった場合(図4:ノー、ステップS2040)、ユーザ端末10からリクエストされたアプリケーションを構築する手段が存在しないと判定し、アプリケーションの構築に失敗した旨がユーザ10に通知する。
 次に、アプリケーション構築ブロック20は、(図4:ステップS2030)で変換モジュールが見つかった場合に(図4:イエス、ステップS2040)、見つかった変換モジュールを対象のグループに追加し(図4:ステップS2050)、再度、モジュールの接続パターンの検索を行う(図4:ステップS2010)。
 尚、変換モジュールが選択された時点で、対象の処理グループで使用可能なモジュールが限定される場合には、使用可能なモジュールのみを候補として残すものとする。
 ここで、グループ3について、C→D1、またはD2→Cという処理を実現可能なモジュールが存在しなかった場合に、それぞれc’、d’という、データ形式を変換するモジュールが挿入された状態を図9に示す。
 これにより、各グループ内の処理を実現する処理モジュールが見つかったことになる(図4:イエス、ステップS2020)。
 次いで、アプリケーション構築ブロック20は、グループ間の処理の接続を行う(図4:ステップS2100)。
 このステップS2100では、各グループの処理に対応して検索抽出されたモジュール、またはモジュールの組み合わせの候補について、それぞれのグループの入出力のデータ形式を比較し、接続可能なモジュール、またはモジュールの組み合わせを選択する。
 この処理においては、処理の流れの最初から順に接続を判定しても良いし、各グループ間の接続の適合可能性を並列に判定してもよい。
 次に、アプリケーション構築ブロック20は、全てのグループを接続できたかどうか判定を行い(図4:ステップS2120)、接続できなかった場合(ノー:ステップS2120)、ステップS2030~ステップS2050の処理と同様に、グループ間の接続を可能とするための、データ形式変換モジュールの探索処理を行う。データ形式変換モジュールの探索方法は、図4のステップS2030~ステップS2050の流れと同様である。
 図4のステップS2120でノーの判定となり、グループ間の入出力のデータ形式変換モジュールが見つかった場合(図4:イエス、ステップS2140)、ステップS2050と異なり、データ形式変換モジュールを、対象グループの接続元の出力側、もしくは、接続先の入力側に挿入する。
 ここで、グループ2とグループ3を直接接続可能なモジュールの候補が存在し買った場合に、グループ2の出力側にデータ形式変換モジュールb’を挿入した場合と、グループ3の入力側にデータ形式変換モジュールb’を挿入した場合を図10に示す。
 なお、この図10においては、グループ2ではモジュールB1が、グループ3ではモジュールCとモジュールD1がそれぞれ選択されている。
 次に、アプリケーション構築ブロック20は、ユーザからリクエストのあったアプリケーションを実現するためのモジュールの接続パターンが複数存在する場合(図4:イエス、ステップS2130)、接続パターンの絞込みを行う(図4:ステップS2160)。
 尚、ステップS2160での接続パターンの絞込み処理においては、例えば、アプリケーション構築ブロック20がランダムに接続パターンを選択する設定であってもよい。また、使用するモジュール数やコストなどの何らかの基準を導入して、これに基づき接続パターンを選択する設定であってもよい。
 以上のように、本実施形態1では、アプリケーション構築ブロック20がユーザ端末10からのアプリケーション構築リクエストの処理内容に応じて、アプリケーションを構成するモジュールの接続パターンを、ユーザ端末10からのアプリケーション構築リクエストの処理内容に応じて決定する。これにより、ユーザ端末10のリクエストに応じた、多様なアプリケーションを生成することができる。
 [実施形態2]
 次に、本発明の他の実施形態である実施形態2について図13に基づき説明する。
 この実施形態2では、図13に示すように、アプリケーション構築配置装置2の内部構成として、ユーザ端末10における端末情報を取得し、これをアプリケーション構築ブロック(この変形例では20-1とする)に通知する端末情報管理ブロック40を備えた点が上述した実施形態1のアプリケーション構築配置装置1の場合と相違する。
 その他の内部構成は、図1のアプリケーション構築・配置システム1と同様であるため、図13について図1と同様の構成要素には同一の符号を付するものとする。
 端末情報管理ブロック40は、アプリケーション構築ブロック20-1を介してユーザ端末10の端末に関する情報である端末情報を取得し、これを管理する。
 ユーザ端末10の端末情報は、例えば、ユーザ端末10における内部構成であるCPUの性能、搭載メモリ量、ディスプレイの解像度などのハードウェアスペックのような静的な情報や、ユーザ端末10の現在位置、バッテリー残量、ネットワークの状況などの動的な情報が含まれるものとする。
 また、端末情報には、インストールされているアプリケーションと、アプリケーションで処理可能なデータフォーマットに関する情報も、ユーザ10の端末に関する情報として含まれていてもよい。
 ユーザ端末10は、定期的に、または、アプリケーション構築リクエストを発行する際に、端末情報管理ブロック40に対して予め設定された端末情報を送信する設定であってもよい。
 本実施形態2におけるアプリケーション構築ブロック20-1は、アプリケーションを構築する際に、端末情報管理ブロック40が取得した端末情報を検索キーとして、モジュール管理ブロック22に対して検索問い合せを行い、ユーザ端末10のリクエストに対応したモジュールを取得するものとする。
 例えば、接続パターンの絞込みを行う場合に、ユーザ端末10の端末情報を用いることにより、アプリケーション構築ブロック20-1では、ユーザ端末10のスペックや動的な情報に応じたアプリケーションを構築することが可能となる。
 即ち、アプリケーション構築ブロック20-1は、ユーザ端末10における通信状態を重要な端末情報として検出する通信状態検知機能と、この検出した通信状態に基づいて前記アプリケーションの実行結果を受信取得する際の前記ユーザ端末における通信負荷軽減用に前記取得した処理モジュールの接続パターンを決定する動的負荷決定機能とを備えている。
 そして、例えば、ユーザ端末10におけるインターネットに対するネットワーク回線が輻輳状態にあるときに、資源ノードにおけるアプリケーションの実行結果としてユーザ端末10に映像配信が行われる場合、データサイズを削減して、ネットワークの状況が悪くても、なるべく映像の途切れないように映像配信を行うことが可能なアプリケーションを構築し、計算資源・ネットワーク資源50に対して配信することが可能となる。
 また、この場合、ネットワークの状況に応じてアプリケーションを構成する処理単位やモジュールの接続パターンを変更し、これにより、アプリケーションを実行した場合にネットワーク負荷の小さい映像をユーザ端末10に配信してもよい。
 これにより、アプリケーション構築ブロック20-1は、ユーザ端末10におけるネットワーク通信状態に応じたアプリケーションを構築することができ、ユーザ端末10では、ユーザ端末10におけるネットワーク状況に応じて、安定的にアプリケーションの実行結果を取得することが可能となる。
 また、例えば、端末情報に基づきユーザ端末10のバッテリー残量が一定値より少ないことが検知された場合には、アプリケーションの実行結果を取得するユーザ端末10側での処理が抑制されるように、アプリケーションの接続パターンが選択される設定としてもよい。
 また、ユーザ端末10の性能が一定レベルより高く、更にはバッテリー残量に予め設定された一定値より余裕がある場合には、ユーザ端末10側に予め設定された処理を行わせるように、処理の割り当てを行うアプリケーションを生成し構築する、つまり、接続パターン(構築パターン)を選択する設定であってもよい。
 アプリケーション構築ブロック20-1は、構築したアプリケーションに関する情報に加えて、ユーザの端末情報を処理配置決定ブロック30に転送する。
 この場合、処理配置決定ブロック30は、ユーザ端末10の端末情報に基づきアプリケーションを計算資源・ネットワーク資源50に配置する。
 即ち、前述した処理配置決定ブロック30は、前記ユーザ端末10の前記ネットワークへの接続位置を示す接続位置情報および前記ネットワークへの通信安定度を検知する接続位置特定機能と、前記ユーザ端末10に対して前記アプリケーションの実行結果の提供を行う処理ノードを前記特定された前記ユーザ端末10の接続位置および通信速度に基づき決定する通信速度決定機能とを備えている。
 これにより、例えば、ユーザ端末10の現在位置に関する情報に基づき、なるべくユーザ端末10にネットワーク的に近い位置に存在するネットワーク資源(資源ノード)を使用するといったことが可能となる。
 その他の構成は前述した実施形態1と同一となっている。
 次に、実施形態2の動作について、図16のシーケンス図に基づき説明する。
 図16は、実施形態1における図3と同様に、本実施形態2における、ユーザ端末10が送信したリクエストに対応するアプリケーションが構築され、計算資源・ネットワーク資源50の資源ノードに配置されるまでの動作ステップを示している。
 以下、本実施形態2における実施形態1と相違する構成内容に係る動作内容について、説明する。
 本実施形態2のアプリケーション構築ブロック20-1は、ステップS205のアプリケーション構築工程内において、上述のように、端末情報管理ブロック40に対してユーザ端末10の端末情報の問い合わせを行う(図16:ステップS207)。
 次いで、端末情報管理ブロック40は、アプリケーション構築ブロック20-1からの問い合わせに対してユーザ端末10の端末情報を返す。
 アプリケーション構築ブロック20-1は端末情報を取得し、アプリケーション構築処理(図16:ステップS205)の中で、上記端末情報を検索キーとして利用する。
 具体的には、図4のステップS2160の接続パターンの絞込みを行うときに、アプリケーション構築ブロック20-1はユーザ端末10の端末情報を用いて接続パターンの検索を行う。これにより、モジュール管理ブロック22では、ユーザ端末10の端末情報に応じた接続パターンの検索が行われるため、アプリケーション構築ブロック20-1は検索対象を端末情報に基づき有効に絞り込んだ検索を行うことができる。
 また、アプリケーション構築ブロック20-1は、構築したアプリケーションと、このアプリケーションに関する情報に加えて、ユーザ端末10の端末情報を、マッピング要求として処理配置決定ブロック30に転送する(図16:ステップS210)。
 次いで、処理配置決定ブロック30は、ユーザ端末10の端末情報に基づき、アプリケーションの計算資源・ネットワーク資源50における配置先を決定する(図16:ステップS300)。
 これにより、処理配置決定ブロック30は、例えば、ユーザ端末10の現在位置を示す情報から、ユーザ端末10に対してネットワーク的に近い資源ノードに対して構築されたアプリケーションをマッピングすることができる。
 このため、ネットワーク資源(ネットワーク)50上でユーザ端末10に対してより近い、つまり、アプリケーションの実行結果がユーザ端末10に送られるまでにアプリケーション実行結果が経由する資源ノードの数を軽減することができるため、ユーザ端末10に対してより安定した状態でアプリケーションの実行結果を提供することができる。
 以上のように、実施形態2では、アプリケーション構築ブロック20-1が、端末情報管理ブロック40が管理する端末情報を用いて、アプリケーションの構築を行い、アプリケーション構築ブロック21が、端末情報管理ブロック40から取得した端末情報を、処理配置決定ブロック30に転送することで、ユーザ10の端末の状況を考慮したアプリケーション構築・配置を行うことが可能となる。結果として、ユーザ端末10の静的情報や動的情報の示す状態や状況に応じて適切なアプリケーションを構築することが可能となる。
[実施形態3]
 次に、本発明の実施形態3について図17に基づき説明する。
 この実施形態3では、図17に示すように、アプリケーション構築配置装置3の内部構成として、アプリケーション構築ブロック20-2が構築したアプリケーションを取得し、アプリケーション構築ブロック20-2から参照可能に保持するアプリケーションキャッシュ管理ブロック60を備えた点が上述した実施形態1のアプリケーション構築配置装置1の場合と相違する。
 その他の内部構成は、図1のアプリケーション構築・配置システム1と同様であるため、図17について図1と同一の構成要素には同一の符号を付するものとする。
 アプリケーションキャッシュ管理ブロック60は、アプリケーション構築ブロック20-2が構築したアプリケーションを取得して、例えば、予め設定された一定期間、これを保持するキャッシュ記憶手段(構成モジュール記憶手段)として機能する。
 ここで、アプリケーションキャッシュ管理ブロック60が保持している(キャッシュされた)情報の一例であるキャッシュテーブル情報601を図18に示す。
 このキャッシュテーブル情報では、構築されたアプリケーションを一意に識別するためのIDと、そのアプリケーションの構築に関する情報とが対応付けられている。
 ここでは、上記IDの例として、ユーザ端末10からのアプリケーション構築リクエストの内容や、ユーザ端末10の端末情報などに基づいて、アプリケーションを構築する際にハッシュ値を生成し、これをアプリケーション識別用のIDのとして用いるものとする。また、アプリケーションの構築に係り利用される情報に基づきハッシュ値を生成してもよい。
 ここで、アプリケーションの構築に関する情報とは、例えば、アプリケーションの構築に使用したモジュールや、モジュール間の接続に関する情報を示す。
 更に、アプリケーション構築ブロック20-2がアプリケーションキャッシュ管理ブロック60を参照する際には、このIDに基づき検索、参照を行うものとする。
 即ち、この場合のアプリケーション構築ブロック20-2は、前記構築したアプリケーションに含まれる処理モジュールおよび当該処理モジュールの実行順位をアプリケーションログとして記憶する前述した構成モジュール記憶手段を備えており、この構成モジュール記憶手段に記憶した要求と同一の要求が送り込まれた場合に、前記構成モジュール記憶手段に記憶されたアプリケーションログに基づいて構築する(取り出して設定する)ログ参照構築機能を備えた構成となっている。
 その他の構成は前述した第1実施形態と同一となっている。
 次に、実施形態3の動作について、図19のフローチャートに基づき説明する。
 図19は、本実施形態3における、アプリケーション構築ブロック20-2がアプリケーションの構築を行うのに先だち、キャッシュ管理ブロック60の参照を行う場合の動作ステップを示している。
 まず、アプリケーション構築ブロック20-2は、ユーザ端末10からアプリケーション構築リクエストが送り込まれた場合に、アプリケーション構築リクエストに含まれる処理内容がアプリケーションキャッシュ管理ブロック(キャッシュ管理ブロック)60内に予め登録されている(キャッシュされている)か否かの判定を行う(図19:ステップS1900)。
 この時、アプリケーション構築ブロック20-2は、このアプリケーション構築リクエストに含まれるアプリケーションの処理内容を検索キーとして、キャッシュ管理ブロック60内の検索を行う。
 ここで、上記検索キーに合致するモジュールやアプリケーションなどのエントリが予め登録されている場合に(図19:イエス、ステップS1900)、アプリケーション構築ブロック20-2は、キャッシュ管理ブロック60に予め登録されたモジュールを取得して、これを用いてアプリケーション構築処理を行う(終了:アプリケーションの構築成功)。
 尚、アプリケーションキャッシュ管理ブロック60は、過去に構築されたアプリケーションなどのエントリをハッシュ値として管理する設定であってもよい。
 この場合、アプリケーション構築ブロック20-2は、アプリケーションキャッシュ管理ブロック60で検索を行うにあたり、アプリケーションの処理内容に基づきハッシュ値を算出し、これに基づきキャッシュ管理ブロック60における登録内容を検索する(図19:ステップS1900)。
 これにより、アプリケーション構築ブロック20-2により行われる、キャッシュ管理ブロック60の登録内容の検索処理を高速化することが可能となる。
 また、これにより、アプリケーション構築配置装置3に対して接続された異なるユーザ端末間で、同様な端末環境を利用している場合に、過去に構築されたアプリケーションを利用することにより、異なるユーザ端末間で生成されたアプリケーション構築情報を共有することが可能となる。
 一方、エントリが存在しない場合は、存在しないことを示す通知がアプリケーション構築ブロック20-2に返され、アプリケーション構築ブロック20-2は、リクエストを満たすようなアプリケーションが存在しない場合は(図19:ノー、ステップS1900)、図4のフローチャートに示される処理を実行し、アプリケーションを構築する。
 次いで、アプリケーション構築ブロック20-2は、アプリケーション構築後に、当該新規に構築したアプリケーションに関する情報を、エントリとしてアプリケーションキャッシュ管理ブロック60に登録する(図19:ステップS2200)。
 このとき、アプリケーション構築ブロック20-2は、登録内容であるエントリをハッシュ化して登録してもよい。
 尚、キャッシュ管理ブロック60に登録可能なアプリケーションの情報の量には限りがあるのが一般的であるため、キャッシュ管理ブロック60は、各エントリに対するアクセス頻度や登録されてからの経過時間に応じて、エントリ(登録情報)の入れ替えを行う設定であってもよい。また、このような登録情報の入れ替え処理は、一般にCPUに搭載されているキャッシュメモリにおける制御と同様の技術により実現可能である。
 以上のように、本実施形態3(図17)では、キャッシュ管理ブロック60内に過去にアプリケーション構築ブロック20-2で構築されたアプリケーションに関する情報がエントリ(登録情報)として登録されている。
 このため、この登録情報を参照することにより、同様のアプリケーションの構築リクエストがユーザ端末10から送り込まれた場合に、アプリケーション構築ブロック20-2が、アプリケーションキャッシュ管理ブロック60から過去に構築したアプリケーションに関する登録情報を取得することにより、モジュールを新たに取得し接続するアプリケーションの構築処理を行うことなく、アプリケーションを生成することができ、この場合、処理は位置決定ブロック30は、計算資源・ネットワーク資源50における資源ノードに対してより迅速に、アプリケーションを配置することが可能となる。
 上述の実施形態については、その新規な技術的内容の要点をまとめると、以下のようになる。
 尚、上記実施形態の一部または全部は、新規な技術として以下のようにまとめられるが、本発明は必ずしもこれに限定されるものではない。
(付記1)資源ノード上で実行されるアプリケーションをユーザ端末からの要求に応じて構築するアプリケーション構築部と、前記アプリケーションの構成要素である処理モジュールを記憶するモジュール管理部と、前記構築したアプリケーションを前記資源ノードに配置する処理資源決定配置部とを設け、
 前記アプリケーション構築部は、前記ユーザ端末からの要求に含まれる処理内容に基づき前記モジュール管理部から前記アプリケーションを構成する処理モジュールを取得すると共に、前記処理内容に基づき前記アプリケーションの実行にかかる処理負荷を示す実行負荷値を推定し当該推定した実行負荷値に基づいて前記取得した異なる処理モジュールの結合パターンを決定する処理モジュール選出取得機能を有し、
 前記処理資源決定配置部は、構築された前記アプリケーションの処理内容および推定された前記実行負荷値に基づき前記アプリケーションの実行先である資源ノードを決定する処理資源決定機能を備えていることを特徴としたアプリケーション構築配置システム。
(付記2)付記1に記載のアプリケーション構築配置システムにおいて、
 前記アプリケーション構築部は、前記取得した各処理モジュールにおける入力受け付け可能な入力データの数および各処理モジュールの処理結果としての出力データの数に基づき前記構築したアプリケーションにおける処理モジュールの実行順位を処理の依存関係として決定するモジュール実行順位決定機能を備えたことを特徴とするアプリケーション構築配置システム。
(付記3)付記1に記載のアプリケーション構築配置システムにおいて、
 前記アプリケーション構築部は、
 前記要求に含まれた前記ユーザ端末における処理能力に係るハードウェア情報に基づき、前記アプリケーションの実行結果を取得したときの前記ユーザ端末における処理負荷軽減用に前記取得した処理モジュールの接続パターンを決定する静的負荷決定機能を備えたことを特徴とするアプリケーション構築配置システム。
(付記4)付記1に記載のアプリケーション構築配置システムにおいて、
 前記アプリケーション構築部は、
 前記ユーザ端末における通信状態を重要な端末情報として検出する通信状態検知機能と、前記検出した通信状態に基づいて前記アプリケーションの実行結果を受信取得する際の前記ユーザ端末における通信負荷軽減用に前記取得した処理モジュールの接続パターンを決定する動的負荷決定機能とを備えたことを特徴とするアプリケーション構築配置システム。
(付記5)付記1に記載のアプリケーション構築配置システムにおいて、
 前記処理資源決定配置部は、
 前記ユーザ端末の前記ネットワークへの接続位置を示す接続位置情報および前記ネットワークへの通信安定度を検知する接続位置特定機能と、
 前記ユーザ端末に対して前記アプリケーションの実行結果の提供を行う処理ノードを前記特定された前記ユーザ端末の接続位置および通信速度に基づき決定する通信速度決定機能とを備えたことを特徴とするアプリケーション構築配置システム。
(付記6)付記1に記載のアプリケーション構築配置システムにおいて、
 前記アプリケーション構築部は、
 前記構築したアプリケーションに含まれる処理モジュールおよび当該処理モジュールの実行順位をアプリケーションログとして記憶する構成モジュール記憶手段を備え、
 前記記憶した要求と同一の要求が送り込まれた場合に、前記構成モジュール記憶手段に記憶されたアプリケーションログに基づき構築するログ参照構築機能を備えたことを特徴とするアプリケーション構築配置システム。
(付記7)付記1に記載のアプリケーション構築配置システムにおいて、
 前記処理資源決定配置部は、
 前記アプリケーションの実行用に割り当て可能なリソース総量を設定すると共に、当該設定されたリソース総量の範囲内で前記アプリケーションの実行を行う前記資源ノードを決定する資源総量決定機能とを備えたことを特徴とするアプリケーション構築配置システム。
(付記8)付記1に記載のアプリケーション構築配置システムにおいて、
 前記処理資源決定配置部は、
 前記ユーザ端末に対して提供された前記アプリケーションの実行結果の処理状態を検知する実行結果処理検知機能と、
 前記検知した処理状態に基づき前記アプリケーションの前記実行結果の処理遅延時間を算出する実行結果処理遅延時間算出機能と、
 前記処理遅延時間の抑制用に前記抽出された処理ノードの接続パターンを更新する処理ノード接続パターン更新機能とを備えたことを特徴とするアプリケーション構築配置システム。
(付記9)ネットワークを介して接続された資源ノード上で実行されるアプリケーションをユーザ端末からの要求に応じて構築し、この構築したアプリケーションを前記資源ノードに配備するアプリケーション構築配置方法であって、
 前記アプリケーションを構築するアプリケーション構築部が、前記ユーザ端末からの要求に含まれる処理内容に基づき前記アプリケーションを構成する前記処理モジュールをモジュール管理部から取得して前記処理内容に基づき前記アプリケーションの実行にかかる処理負荷を示す実行負荷値を推定し、且つ当該推定された実行負荷値に基づいて前記取得した異なる処理モジュールの結合パターンを決定し、
 前記構築されたアプリケーションの処理内容および前記実行負荷値に基づいて、前記処理資源決定配置部が前記アプリケーションの実行先である資源ノードを決定し、
 前記資源ノードが、前記処理資源決定配置部から送られた前記アプリケーションを実行し、その実行結果を前記ユーザ端末に提供するようにしたことを特徴とするアプリケーション構築配置方法。
(付記10)ネットワークを介して接続された資源ノード上で実行されるアプリケーションをユーザ端末からの要求に応じて構築するアプリケーション構築部と、前記アプリケーションの構成要素である処理モジュールを記憶するモジュール管理部と、前記構築したアプリケーションを前記資源ノードに配置する処理資源決定配置部とを備えたアプリケーション構築配置システムにあって、前記ユーザ端末に、前記資源ノードで実行される前記アプリケーションの実行結果を提供するためのアプリケーション構築配置プログラムであって、
 前記ユーザ端末からの要求に含まれる処理内容に基づき前記アプリケーションを構成する前記処理モジュールをモジュール管理部から取得する処理モジュール選出取得処理機能、
 前記ユーザ端末からの要求に含まれる処理内容に基づいて前記アプリケーションの実行にかかる処理負荷を示す実行負荷値を推定する負荷推定処理機能、
 この負荷推定処理機能で推定された実行負荷値に基づいて前記取得した異なる処理モジュールの結合パターンを決定するモジュール結合パターン決定処理機能、
 および前記構築されたアプリケーションの処理内容および前記実行負荷値に基づいて前記アプリケーションの実行先である資源ノードを決定する処理資源決定処理機能とを設け、
 これらの各処理機能を、前記アプリケーション構築配置システムのコンピュータに実現させるようにしたことを特徴とするアプリケーション構築配置プログラム。
 この出願は2011年2月23日に出願された日本出願特願2011-037701を基礎とする優先権を主張し、その開示の全てをここに取り込む。
 本発明は、アプリケーション構築システム、方法、プログラムに関し、特に端末の持つ機能、端末の状態、入出力データ形式、処理内容に応じてアプリケーションを構築することができるシステムに対して有用に適用することができる。
 1、2、3 アプリケーション構築配置装置
 10 ユーザ端末
 20、20-1、20-2 アプリケーション構築ブロック(アプリケーション構築部)
 22 モジュール管理ブロック(モジュール管理部)
 30 処理配置決定ブロック(処理資源決定配置部)
 40 端末情報管理ブロック
 50 計算資源・ネットワーク資源
 60 アプリケーションキャッシュ管理ブロック

Claims (10)

  1.  資源ノード上で実行されるアプリケーションをユーザ端末からの要求に応じて構築するアプリケーション構築部と、前記アプリケーションの構成要素である処理モジュールを記憶するモジュール管理部と、前記構築したアプリケーションを前記資源ノードに配置する処理資源決定配置部とを設け、
     前記アプリケーション構築部は、前記ユーザ端末からの要求に含まれる処理内容に基づき前記モジュール管理部から前記アプリケーションを構成する処理モジュールを取得すると共に、前記処理内容に基づき前記アプリケーションの実行にかかる処理負荷を示す実行負荷値を推定し当該推定した実行負荷値に基づいて前記取得した異なる処理モジュールの結合パターンを決定する処理モジュール選出取得機能を有し、
     前記処理資源決定配置部は、構築された前記アプリケーションの処理内容および推定された前記実行負荷値に基づき前記アプリケーションの実行先である資源ノードを決定する処理資源決定機能を備えていることを特徴としたアプリケーション構築配置システム。
  2.  請求項1に記載のアプリケーション構築配置システムにおいて、
     前記アプリケーション構築部は、前記取得した各処理モジュールにおける入力受け付け可能な入力データの数および各処理モジュールの処理結果としての出力データの数に基づき前記構築したアプリケーションにおける処理モジュールの実行順位を処理の依存関係として決定するモジュール実行順位決定機能を備えたことを特徴とするアプリケーション構築配置システム。
  3.  請求項1に記載のアプリケーション構築配置システムにおいて、
     前記アプリケーション構築部は、
     前記要求に含まれた前記ユーザ端末における処理能力に係るハードウェア情報に基づき、前記アプリケーションの実行結果を取得したときの前記ユーザ端末における処理負荷軽減用に前記取得した処理モジュールの接続パターンを決定する静的負荷決定機能を備えたことを特徴とするアプリケーション構築配置システム。
  4.  請求項1に記載のアプリケーション構築配置システムにおいて、
     前記アプリケーション構築部は、
     前記ユーザ端末における通信状態を重要な端末情報として検出する通信状態検知機能と、前記検出した通信状態に基づいて前記アプリケーションの実行結果を受信取得する際の前記ユーザ端末における通信負荷軽減用に前記取得した処理モジュールの接続パターンを決定する動的負荷決定機能とを備えたことを特徴とするアプリケーション構築配置システム。
  5.  請求項1に記載のアプリケーション構築配置システムにおいて、
     前記処理資源決定配置部は、
     前記ユーザ端末の前記ネットワークへの接続位置を示す接続位置情報および前記ネットワークへの通信安定度を検知する接続位置特定機能と、
     前記ユーザ端末に対して前記アプリケーションの実行結果の提供を行う処理ノードを前記特定された前記ユーザ端末の接続位置および通信速度に基づき決定する通信速度決定機能とを備えたことを特徴とするアプリケーション構築配置システム。
  6.  請求項1に記載のアプリケーション構築配置システムにおいて、
     前記アプリケーション構築部は、
     前記構築したアプリケーションに含まれる処理モジュールおよび当該処理モジュールの実行順位をアプリケーションログとして記憶する構成モジュール記憶手段を備え、
     前記記憶した要求と同一の要求が送り込まれた場合に、前記構成モジュール記憶手段に記憶されたアプリケーションログに基づき構築するログ参照構築機能を備えたことを特徴とするアプリケーション構築配置システム。
  7.  請求項1に記載のアプリケーション構築配置システムにおいて、
     前記処理資源決定配置部は、
     前記アプリケーションの実行用に割り当て可能なリソース総量を設定すると共に、当該設定されたリソース総量の範囲内で前記アプリケーションの実行を行う前記資源ノードを決定する資源総量決定機能とを備えたことを特徴とするアプリケーション構築配置システム。
  8.  請求項1に記載のアプリケーション構築配置システムにおいて、
     前記処理資源決定配置部は、
     前記ユーザ端末に対して提供された前記アプリケーションの実行結果の処理状態を検知する実行結果処理検知機能と、
     前記検知した処理状態に基づき前記アプリケーションの前記実行結果の処理遅延時間を算出する実行結果処理遅延時間算出機能と、
     前記処理遅延時間の抑制用に前記抽出された処理ノードの接続パターンを更新する処理ノード接続パターン更新機能とを備えたことを特徴とするアプリケーション構築配置システム。
  9.  ネットワークを介して接続された資源ノード上で実行されるアプリケーションをユーザ端末からの要求に応じて構築し、この構築したアプリケーションを前記資源ノードに配備するアプリケーション構築配置方法であって、
     前記アプリケーションを構築するアプリケーション構築部が、前記ユーザ端末からの要求に含まれる処理内容に基づき前記アプリケーションを構成する前記処理モジュールをモジュール管理部から取得して前記処理内容に基づき前記アプリケーションの実行にかかる処理負荷を示す実行負荷値を推定し、且つ当該推定された実行負荷値に基づいて前記取得した異なる処理モジュールの結合パターンを決定し、
     前記構築されたアプリケーションの処理内容および前記実行負荷値に基づいて、前記処理資源決定配置部が前記アプリケーションの実行先である資源ノードを決定し、
     前記資源ノードが、前記処理資源決定配置部から送られた前記アプリケーションを実行し、その実行結果を前記ユーザ端末に提供するようにしたことを特徴とするアプリケーション構築配置方法。
  10.  ネットワークを介して接続された資源ノード上で実行されるアプリケーションをユーザ端末からの要求に応じて構築するアプリケーション構築部と、前記アプリケーションの構成要素である処理モジュールを記憶するモジュール管理部と、前記構築したアプリケーションを前記資源ノードに配置する処理資源決定配置部とを備えたアプリケーション構築配置システムにあって、前記ユーザ端末に、前記資源ノードで実行される前記アプリケーションの実行結果を提供するためのアプリケーション構築配置プログラムであって、
     前記ユーザ端末からの要求に含まれる処理内容に基づき前記アプリケーションを構成する前記処理モジュールをモジュール管理部から取得する処理モジュール選出取得処理機能、
     前記ユーザ端末からの要求に含まれる処理内容に基づいて前記アプリケーションの実行にかかる処理負荷を示す実行負荷値を推定する負荷推定処理機能、
     この負荷推定処理機能で推定された実行負荷値に基づいて前記取得した異なる処理モジュールの結合パターンを決定するモジュール結合パターン決定処理機能、
     および前記構築されたアプリケーションの処理内容および前記実行負荷値に基づいて前記アプリケーションの実行先である資源ノードを決定する処理資源決定処理機能とを設け、
     これらの各処理機能を、前記アプリケーション構築配置システムのコンピュータに実現させるようにしたことを特徴とするアプリケーション構築配置プログラム。
PCT/JP2012/052967 2011-02-23 2012-02-09 アプリケーション構築配置システム、アプリケーション構築配置方法、およびプログラム WO2012114889A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013500953A JPWO2012114889A1 (ja) 2011-02-23 2012-02-09 アプリケーション構築配置システム、アプリケーション構築配置方法、およびプログラム

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2011-037701 2011-02-23
JP2011037701 2011-02-23

Publications (1)

Publication Number Publication Date
WO2012114889A1 true WO2012114889A1 (ja) 2012-08-30

Family

ID=46720674

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2012/052967 WO2012114889A1 (ja) 2011-02-23 2012-02-09 アプリケーション構築配置システム、アプリケーション構築配置方法、およびプログラム

Country Status (2)

Country Link
JP (1) JPWO2012114889A1 (ja)
WO (1) WO2012114889A1 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015212911A (ja) * 2014-05-07 2015-11-26 富士通株式会社 ソフトウェア選択装置、ソフトウェア選択方法、及びソフトウェア選択プログラム
JP2016062300A (ja) * 2014-09-18 2016-04-25 日本電気株式会社 ソースコード生成装置、ソースコード生成方法およびソースコード生成プログラム
JP6235108B1 (ja) * 2016-11-29 2017-11-22 株式会社 ヴァル研究所 情報処理装置、アプリ連携方法およびコンピュータプログラム
JP2018088243A (ja) * 2017-10-25 2018-06-07 株式会社 ヴァル研究所 情報処理装置およびコンピュータプログラム
JP2020144617A (ja) * 2019-03-06 2020-09-10 株式会社デンソー 処理配置制御方法、処理配置制御システム、処理配置制御装置、およびサーバ装置
WO2023181425A1 (ja) * 2022-03-25 2023-09-28 株式会社Nttドコモ ネットワークノード及び通信方法

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1115849A (ja) * 1997-06-26 1999-01-22 Fujitsu Ltd サーバ連携制御方法
JP2001043199A (ja) * 1999-06-17 2001-02-16 Internatl Business Mach Corp <Ibm> 異種サーバにまたがるサービス指向資源管理
JP2002083150A (ja) * 2000-09-06 2002-03-22 Nippon Telegr & Teleph Corp <Ntt> コンポーネント・ソフトウェア通信方法及びシステム
JP2003150572A (ja) * 2001-11-19 2003-05-23 Mitsubishi Electric Corp 連携サービス保証システム
JP2004362449A (ja) * 2003-06-06 2004-12-24 Mitsubishi Electric Corp サービス提供装置及びサービスコーディネータ装置及びサービス提供方法及びサービスコーディネート方法及びプログラム及びプログラムを記録したコンピュータ読み取り可能な記録媒体
JP2006190008A (ja) * 2005-01-04 2006-07-20 Nippon Telegr & Teleph Corp <Ntt> データ連携装置及びデータ連携方法
JP2008130033A (ja) * 2006-11-24 2008-06-05 Nippon Telegr & Teleph Corp <Ntt> サービス連携方法
JP2008204430A (ja) * 2007-01-25 2008-09-04 Hitachi Ltd ビジネスプロセス再構成方法、そのプログラム及び計算機
JP2008217158A (ja) * 2007-02-28 2008-09-18 Nippon Telegr & Teleph Corp <Ntt> サービスコンポーネント選択方法、サービスコンポーネント選択装置及びサービス選択プログラム
JP2009540469A (ja) * 2006-06-15 2009-11-19 インターナショナル・ビジネス・マシーンズ・コーポレーション サービス・インフラストラクチャのオン・デマンド合成及び分解のための方法及び装置
WO2010082538A1 (ja) * 2009-01-15 2010-07-22 インターナショナル・ビジネス・マシーンズ・コーポレーション 複数のアプリケーション間でのデータ連携を支援する装置、方法及びコンピュータプログラム

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1115849A (ja) * 1997-06-26 1999-01-22 Fujitsu Ltd サーバ連携制御方法
JP2001043199A (ja) * 1999-06-17 2001-02-16 Internatl Business Mach Corp <Ibm> 異種サーバにまたがるサービス指向資源管理
JP2002083150A (ja) * 2000-09-06 2002-03-22 Nippon Telegr & Teleph Corp <Ntt> コンポーネント・ソフトウェア通信方法及びシステム
JP2003150572A (ja) * 2001-11-19 2003-05-23 Mitsubishi Electric Corp 連携サービス保証システム
JP2004362449A (ja) * 2003-06-06 2004-12-24 Mitsubishi Electric Corp サービス提供装置及びサービスコーディネータ装置及びサービス提供方法及びサービスコーディネート方法及びプログラム及びプログラムを記録したコンピュータ読み取り可能な記録媒体
JP2006190008A (ja) * 2005-01-04 2006-07-20 Nippon Telegr & Teleph Corp <Ntt> データ連携装置及びデータ連携方法
JP2009540469A (ja) * 2006-06-15 2009-11-19 インターナショナル・ビジネス・マシーンズ・コーポレーション サービス・インフラストラクチャのオン・デマンド合成及び分解のための方法及び装置
JP2008130033A (ja) * 2006-11-24 2008-06-05 Nippon Telegr & Teleph Corp <Ntt> サービス連携方法
JP2008204430A (ja) * 2007-01-25 2008-09-04 Hitachi Ltd ビジネスプロセス再構成方法、そのプログラム及び計算機
JP2008217158A (ja) * 2007-02-28 2008-09-18 Nippon Telegr & Teleph Corp <Ntt> サービスコンポーネント選択方法、サービスコンポーネント選択装置及びサービス選択プログラム
WO2010082538A1 (ja) * 2009-01-15 2010-07-22 インターナショナル・ビジネス・マシーンズ・コーポレーション 複数のアプリケーション間でのデータ連携を支援する装置、方法及びコンピュータプログラム

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015212911A (ja) * 2014-05-07 2015-11-26 富士通株式会社 ソフトウェア選択装置、ソフトウェア選択方法、及びソフトウェア選択プログラム
JP2016062300A (ja) * 2014-09-18 2016-04-25 日本電気株式会社 ソースコード生成装置、ソースコード生成方法およびソースコード生成プログラム
JP6235108B1 (ja) * 2016-11-29 2017-11-22 株式会社 ヴァル研究所 情報処理装置、アプリ連携方法およびコンピュータプログラム
JP2018088163A (ja) * 2016-11-29 2018-06-07 株式会社 ヴァル研究所 情報処理装置、アプリ連携方法およびコンピュータプログラム
JP2018088243A (ja) * 2017-10-25 2018-06-07 株式会社 ヴァル研究所 情報処理装置およびコンピュータプログラム
JP2020144617A (ja) * 2019-03-06 2020-09-10 株式会社デンソー 処理配置制御方法、処理配置制御システム、処理配置制御装置、およびサーバ装置
WO2020179330A1 (ja) * 2019-03-06 2020-09-10 株式会社デンソー 処理配置制御方法、処理配置制御システム、処理配置制御装置、およびサーバ装置
JP7243303B2 (ja) 2019-03-06 2023-03-22 株式会社デンソー 処理配置制御方法、処理配置制御システム、処理配置制御装置、およびサーバ装置
WO2023181425A1 (ja) * 2022-03-25 2023-09-28 株式会社Nttドコモ ネットワークノード及び通信方法

Also Published As

Publication number Publication date
JPWO2012114889A1 (ja) 2014-07-07

Similar Documents

Publication Publication Date Title
JP6643760B2 (ja) ショートリンクの処理方法、デバイス、及びサーバ
US9237190B2 (en) Node and method for generating shortened name robust against change in hierarchical name in content-centric network (CCN)
US10083177B2 (en) Data caching among interconnected devices
US9002932B2 (en) Cloud computing access gateway and method for providing a user terminal access to a cloud provider
WO2012114889A1 (ja) アプリケーション構築配置システム、アプリケーション構築配置方法、およびプログラム
WO2017114206A1 (zh) 短链接处理方法、装置及短链接服务器
US9148332B2 (en) Content delivery network
EP3161669B1 (en) Memcached systems having local caches
US9229762B2 (en) Host providing system and host providing method
CN108683668A (zh) 内容分发网络中的资源校验方法、装置、存储介质及设备
CN114827145B (zh) 服务器集群系统、元数据的访问方法及装置
CN104199863A (zh) 存储设备上的文件的查找方法、装置及路由器
JP6972714B2 (ja) データ取得プログラム、装置、及び方法
CN106462635A (zh) 智能网页内容拦截
CN111193603A (zh) 网络架构的生成方法、装置、可读存储介质和计算机设备
CN107172214A (zh) 一种具有负载均衡的服务节点发现方法及装置
CN110168513A (zh) 在不同存储系统中对大文件的部分存储
US20080126356A1 (en) Web service management systems and methods
CN112040023B (zh) 对象访问方法、装置、电子设备及机器可读存储介质
US11233739B2 (en) Load balancing system and method
CN111314407B (zh) 用于处理元数据的通信设备和通信方法
CN109088913B (zh) 请求数据的方法和负载均衡服务器
US20160234299A1 (en) Management server and operation method thereof and server system
EP2654269B1 (en) Node and method for generating shortened name robust against change in hierarchical name in content-centric network (CCN)
CN117112451B (zh) 测试方法、装置、电子设备及计算机可读存储介质

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

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2013500953

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 12749757

Country of ref document: EP

Kind code of ref document: A1