WO2011135629A1 - 計算機システムにおけるソフトウェアの配布管理方法、及び、ソフトウェアの配布管理のための計算機システム - Google Patents

計算機システムにおけるソフトウェアの配布管理方法、及び、ソフトウェアの配布管理のための計算機システム Download PDF

Info

Publication number
WO2011135629A1
WO2011135629A1 PCT/JP2010/003077 JP2010003077W WO2011135629A1 WO 2011135629 A1 WO2011135629 A1 WO 2011135629A1 JP 2010003077 W JP2010003077 W JP 2010003077W WO 2011135629 A1 WO2011135629 A1 WO 2011135629A1
Authority
WO
WIPO (PCT)
Prior art keywords
software
client
representative
software image
client computer
Prior art date
Application number
PCT/JP2010/003077
Other languages
English (en)
French (fr)
Inventor
越智啓之
里見充則
紅山伸夫
小林紀浩
Original Assignee
株式会社日立製作所
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社日立製作所 filed Critical 株式会社日立製作所
Priority to PCT/JP2010/003077 priority Critical patent/WO2011135629A1/ja
Priority to JP2012512540A priority patent/JPWO2011135629A1/ja
Priority to US12/864,184 priority patent/US20110271275A1/en
Publication of WO2011135629A1 publication Critical patent/WO2011135629A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/63Image based installation; Cloning; Build to order

Definitions

  • the present invention relates to a software distribution management method in a computer system and a computer system for software distribution management.
  • P2P-type software programs are distributed among a plurality of clients to reduce the number of communications and the communication load between the server and the clients.
  • this prior art discloses that the number of representative clients is determined so that the degree of parallelism of the software distribution process is sufficient so that the software program distribution deadline specified by the administrator is satisfied. ing.
  • an object of the present invention is to provide one or both of the following two.
  • the present invention provides a plurality of clients, a server including software distributed to one or a plurality of the plurality of clients, a network connecting the servers and the plurality of clients, Is provided.
  • the server classifies the plurality of clients into a plurality of groups based on information from the plurality of clients, selects a representative client for each group, and distributes the software to the representative client.
  • the representative client that has received the distribution of the software distributes the software to other clients belonging to the same group.
  • the server outputs management display information to the management screen based on the software distribution management information.
  • the software distribution from the server to the representative client may be performed in advance.
  • the convenience of the software distribution management system using the representative client can be improved.
  • FIG. 3 shows a flowchart for achieving the main function of the server. Part of the client information table. It is another part of the client information table. It is an example of a client information history table. It is an example of a client grouping table. It is an example of a software list table. It is an example of a software distribution priority and a redundancy coefficient value table. It is an example of a software distribution status table. It is an example of the flowchart corresponding to the process in which a server transmits software to a representative client.
  • FIG. 12 shows an example of the software distribution task table. It is an example of the flowchart of a software delivery process of a representative client. It is an example of the flowchart of the reception process and installation process of a software of the request origin client of a software. It is an example of the flowchart which shows the outline
  • Embodiments of the computer system according to the present invention will be described below.
  • the information of the present invention will be described using expressions such as “aaa table”, “aaa list”, “aaaDB”, “aaa queue”, etc., but these information are not necessarily limited to tables, lists, DBs, queues,
  • the data structure may be expressed by a data structure other than these.
  • aaa table “aaa list”, “aaaDB”, “aaa queue”, etc. may be referred to as “aaa information” to indicate that they do not depend on the data structure.
  • program is used as the subject.
  • the program performs processing determined by being executed by the CPU using the memory and the communication port (communication control device), the CPU is used as the subject.
  • the explanation may be as follows.
  • processing disclosed with the program as the subject may be processing performed by a computer that executes the program.
  • a part or all of the program may be realized by dedicated hardware.
  • Various programs may be installed in each computer by a program distribution server computer or a storage medium.
  • FIG. 1 is a block diagram of a computer system for distributing software programs from a management server computer to a client computer group.
  • the computer system includes a file including a software program, a server computer (hereinafter simply referred to as “server”) 10 that manages distribution of software images corresponding to the software program to a client computer, and a plurality of client computers (hereinafter referred to as “server”). 14) are connected by a wide area network 26 such as the Internet.
  • server server computer
  • server client computers
  • the software image corresponding to the software program includes information and / or a program for enabling execution of the software program to be installed by the client. Further, when “corresponding” is expressed for a software program and a software image, it has the above-mentioned meaning. Since the expression “software image corresponding to a software program” is long as the description in the embodiment, it may be simply expressed as “software image”. Examples of the “information for enabling execution” and / or the “program” described above are as follows.
  • Software program file and its setting information Software program file and its setting information.
  • the software image may be a software program file itself.
  • the client may download a part or all of the files (or data) of the software program from the server 10 or other computers.
  • the client may extract the software program from the data embedded in the installation program file and make it executable.
  • the software image may include an identifier of the corresponding software program.
  • the software image corresponding to the predetermined software program stored in the representative client and the software image corresponding to the predetermined software program stored in the distribution server may not be the same data. This is because the software image data is not particularly limited as long as a predetermined software program designated as a request source client can be installed.
  • the software image corresponding to the predetermined software program stored in the first representative client and the software image corresponding to the predetermined software program stored in the second representative client may not be the same data. . This is because the software image data is not particularly limited as long as a predetermined software program designated as a request source client can be installed.
  • the software image that the representative client sends to the client is not the same as the software image received by the representative client, as long as it corresponds to the same software program. Good.
  • distributed refers to transferring a software image to be distributed between computers.
  • An example between computers is as follows.
  • “distribution” may be read as “send”, “receive”, and “forward” with the server, client, or representative client as the subject. Further, the “distributed” computer may or may not include installing the corresponding software program using the distributed software image.
  • installation refers to processing that enables execution of a software program to be installed.
  • An example of processing that can be executed is as follows.
  • the server 10 classifies a plurality of clients into groups, and determines clients to which software images should be distributed for each group. In order to distinguish a client receiving software image distribution from other clients, the client is hereinafter referred to as a representative client.
  • a client requesting a software image receives software image distribution from a representative client of the same group. In order to distinguish this client from the representative client, it is referred to as a requesting client.
  • the computer system distributes the software image of the server to the representative client in advance so that the pull-type software image can be distributed at high speed in an environment where the relay server is omitted.
  • This software image is formed in the representative client so that it can be transferred to another client, in other words, a temporary copy of the software image is formed in the representative client, and in other words, the software image is cached.
  • the first main function is to select a software image distributed from the server to the representative client.
  • the requesting client cannot receive the software image corresponding to the target software program from the representative client, the requesting client accesses the server and receives the distribution of the target software image.
  • the server determines the software program characteristics and the download status managed by the server, and distributes the software image with a higher priority to the client in preference to other software images as long as the client's free disk space permits. .
  • the second main function assumes the probability per unit time that the requesting client can access the software image corresponding to the target software program, and sets the representative client that stores the software image to satisfy this probability. It is to set redundantly.
  • the server When the requesting client needs to distribute the software program (or software image), the server causes a plurality of clients to exist redundantly in the computer system so that the requesting client can access the representative client.
  • the server selects the representative client so as to satisfy the target value. Note that the server determines the representative client by using the operating rate information of the client.
  • the third main function is to perform maintenance on the arrangement of software images within the group.
  • the server changes the representative client and the software image held by the representative client.
  • Reference numeral 14A denotes a client whose hardware configuration is shown in detail. Other clients are similarly configured.
  • Reference numeral 12 denotes a disk device which is a storage area of the server 10.
  • Reference numeral 14B denotes a disk device of the client 14A. Disk devices are also connected to other clients. The plurality of clients 14 are connected to each other by a LAN 76. A client 28 for displaying server management information is connected to the server-side LAN.
  • the server 10 controls communication between the disk device 12 and the memory 16 that stores the program code necessary for executing the distribution control of the software image, the processor 18 that executes the distribution control of the software, based on the program.
  • An interface 22 that controls communication with the client, and a bus 24 that interconnects these elements.
  • the memory 16 stores a software distribution management program 16000. When the CPU 18 executes the program, the server 10 performs software distribution management processing.
  • the software distribution management process of the server 10 is achieved from a plurality of functions.
  • the memory 16 is shown as a functional block diagram in which a block is assigned to each of a plurality of functions.
  • the processing units (30, 32, 34, 36, 40, and 42) are included in the software distribution management program 16000.
  • the description regarding each processing unit can be rephrased as the description regarding the software distribution management program 16000.
  • the client information management processing unit 30 manages client information, mainly inventory information.
  • the client information management processing unit includes a processing unit 30A that collects client information from the client, and a processing unit 30B that groups a plurality of clients based on the client information.
  • the software information management processing unit 36 manages information on the software image of the server 10, and a priority determination processing unit for the manager to determine the priority for distributing the software image to the client for each group of clients.
  • 36A and a redundancy coefficient value calculation processing unit 36B that calculates a characteristic value (redundancy coefficient value) relating to redundancy of a copy of a software image (software image cache) existing for each group of clients.
  • the representative client management processing unit 32 manages a client (representative client) to which a software image is to be distributed in advance for each group of clients. Based on this priority, the processing unit 32A determines the priority of the client. And a processing unit 32B for determining a representative client.
  • the communication processing unit 40 controls communication with the client, and includes a distribution processing unit 40A that performs software image distribution processing, and a result reception processing unit 40B that receives a distribution result from the client.
  • the rearrangement processing unit 34 performs processing for reconstructing the arrangement of software images in the client group, and the distribution status screen display processing unit 22 executes processing for displaying a management screen on the screen display client. It is.
  • the disk device 12 connected to the server includes a software image data 12A distributed from the server 10 to the client, a software program list table 12B, a client information table 12C, and a table 12D of information grouping clients.
  • a software image distribution priority and redundancy coefficient value table 12E and a software image distribution status table 12F are provided.
  • the client 14B includes a communication interface 50 that controls communication with the server, a disk interface 52 that controls communication with the disk difference 14B, processing for receiving distribution of software images from the server 10 or the representative client, A processor 58 for controlling the process of distributing the software image to the requesting client, a memory 60 in which a program for the process is stored, and an internal bus 56 for connecting these elements to each other.
  • the memory 60 stores a client side distribution management program 64000, and the CPU 58 executes the program to realize software distribution processing on the client 14 side.
  • the client-side distribution management program 64000 includes a client common processing unit 62 that implements processing common to a plurality of clients, and a representative client unique processing unit 64 that implements processing unique to the representative client.
  • client common processing unit 62 that implements processing common to a plurality of clients
  • representative client unique processing unit 64 that implements processing unique to the representative client.
  • description regarding each process part (62, 64) can be paraphrased with the description regarding the client side distribution management program 64000.
  • the client common processing unit 62 includes a client information transmission unit 62A that transmits client information to the server, a software reception processing unit 62B that receives a software image from the server 10 or the representative client, and software that uses the software image received from the representative client.
  • the representative client unique processing unit 64 includes a software transmission processing unit 64A that transmits the software image received from the server 10 to the requesting client.
  • the client disk 14B includes a software image data 70 received by the client, a software image distribution task table 72 from the representative client to the requesting client, and a software image transmission status table from the representative client to the requesting client. 74.
  • each processing unit stored in the memory 16 and the memory 60 may be a program code. However, as described above, some or all of the processing may be replaced by hardware. Further, when considered as the storage resource of the server 10, both the memory 16 and the disk 12 included in the storage resource may be included, but either the memory 16 or the disk 12 may be included in the storage resource. Good. In this case, it can be considered that the storage resource of the server 10 stores a program and information included in the memory 16 and a table (information) included in the disk 12.
  • the storage resource of the client 14A may also include both the memory 60 and the disk 14B included in the storage resource, but either the memory 60 or the disk 14B may be included in the storage resource. In this case, it can be considered that a program and information included in the memory 60 and a table (information) included in the disk 14B are stored as storage resources of the client 14A.
  • FIG. 2 shows a flowchart for achieving the main function of the server 10.
  • the server 10 collects client information from each of the plurality of clients 14 existing in the computer system (S200), and groups the clients 14 based on the collected information (S202).
  • the server 10 determines the priority order of the software images to be distributed to the client 14 (S204), and further calculates a characteristic value (redundancy coefficient value) regarding redundancy when the software image exists in the client group (S206). ).
  • the server 10 calculates priorities for a plurality of clients in each group (S208), and determines a representative client to which the software image is to be distributed (S210). Next, the server 10 distributes the software image and updates the distribution result (S212).
  • the collection processing unit 30A of the client information management processing unit 30 accesses the plurality of clients 14 periodically (or repeatedly), and receives client information, mainly inventory information and performance information from the client information transmission unit 62A of each client.
  • the collected information is updated and stored in the client information table 12B of the disk device 12.
  • Examples of inventory information collected from the client are address information (IP address and subnet mask), disk capacity, and free capacity of each client 14. This inventory information is used for grouping the clients 14.
  • the collection processing unit 30A further calculates an average operating rate of the client and registers it in the client information processing table 12C.
  • the client information management processing unit 30 obtains the average operating rate as follows, for example.
  • the server 10 accesses each client 14 at regular intervals, and checks whether the client is operating each time.
  • the client information management processing unit 30 determines the total time during which the client 14 is operating as the connectable time, calculates the ratio of the connectable time to the total value of the client business hours, and calculates this for each client.
  • the average occupancy rate For example, 12 hours from 08:00 to 20:00 is the total value of the business hours per day, and the server 10 sends a request for connection confirmation 12 times to the client 14 every hour, and the client 14 9 times. If there is a response, the daily operating rate is 0.75 (9/12).
  • the client information management processing unit 30 cumulatively records the operation rate for a specified number of days in a predetermined area of the memory 16, and sets the average value of the accumulated values as the average operation rate.
  • the daily operation rate for each client is stored in the client information history table (FIG. 4).
  • a client information history table is also stored in the disk device 12.
  • the client history table updates and stores the history of various client performances, and the average CPU usage rate, average disk I / O amount, and average network I / O amount are calculated using the average utilization rate. It is the same as the calculation method.
  • the grouping processing unit 30B of the client information management processing unit 30 refers to the client information table 12C and automatically classifies the plurality of clients 14 into groups. There are the following methods.
  • (E) Classify multiple clients depending on the department to which the client belongs.
  • the server 14 requests the administrator to input the identification information of the department to which each client 14 belongs, and registers the input result in the client information table 12C.
  • the grouping processing unit 30B registers the result of grouping a plurality of clients 14 in the grouping table 12D of the disk device 12.
  • FIG. 5 shows an example of a grouping table, which includes an entry for a group name and an entry for a client belonging to the group.
  • the priority determination processing unit 36A of the software information management processing unit 36 of the management server 10 determines the priority order for the administrator to distribute the software image arranged on the server 10 to the client 14 for each group of the clients 14. The priority determination process is performed.
  • the priority determination processing unit 36A performs priority determination processing for a plurality of types of software programs having entries in the software list table 12B illustrated in FIG.
  • the software list table 12B is stored in the disk device 12, and is referred to or updated by the software information management unit 36. There are the following methods for setting priorities in software programs.
  • the higher priority is set for a software program corresponding to a software image that has a large capacity and takes a long time to transfer.
  • the priority of the server 10 administrator is determined for each order set in a plurality of software programs. Alternatively, the priority is set to a value set by the administrator for the software program.
  • the software list table 12B includes the software program name and the size of the software image corresponding to the software program.
  • the capacity may be a value according to a predetermined rule such as a maximum value, an average value, or a minimum value of the image.
  • the software list table may include an installation rate and an increase rate of the installation rate.
  • the determined priority or the priority and priority set by the administrator are set in the software distribution priority and redundancy coefficient value table 12E. An example of this table is shown in FIG.
  • the priority for the software program for each group in addition to the redundancy coefficient value calculated by the software information management processing unit 36, the priority for the software program for each group, the software corresponding to the software program from the server The number of image downloads and the total number of downloads are registered.
  • download means “send” to be downloaded if the subject of the download source is the subject, and “receive” to be downloaded if the subject of the download destination is the subject.
  • the “redundancy coefficient value” is an index relating to redundancy in causing a copy of a specific software image to exist in each group.
  • the redundancy coefficient value increases, the software image is distributed within the group. The number of clients is increased. Therefore, when the client 14 needs a specific software image, the actual probability that the software image can be acquired from the representative client is high.
  • the corresponding software image can be copied as long as it corresponds to the specific software program that is the source of the image, even if the data is not the same as the specific software image. You may consider it.
  • the server 10 is made redundant by an input from the administrator. Set the coefficient value.
  • the redundancy coefficient value is determined by calculation and / or setting, assuming a target value of the probability that a copy of a software image accessible by the client per unit time exists in the group.
  • the calculation or setting of the redundancy coefficient value is performed in order from one of the following j to n for a plurality of software programs having entries in the software list table.
  • the redundancy coefficient value calculation processing unit 36B sets the redundancy coefficient value of the software program corresponding to the software image with the largest capacity to a value designated by the administrator, and increases the capacity of the software image in proportion to the decrease in the capacity of the software image. Decrease the value.
  • the redundancy coefficient value calculation processing unit 36B sets the initial value to a specific value or a value determined by any of j to l. Thereafter, the redundancy coefficient value calculation processing unit 36B includes a software list table (capacity for each software) 12B and a software distribution priority / redundancy coefficient value table (the number of downloads of software programs from the management server, the total number of downloads of software) 12E. Referring to FIG. 6, for each client group, “software capacity in FIG.
  • the total number of downloads is the total number of times that the software image corresponding to the software program is downloaded to the software request destination client 14 from the server 10 and the number of times that the software image is downloaded from the representative client in the same group.
  • the “number specified by the administrator” will be specifically described.
  • the server 10 has already distributed a plurality of software images corresponding to 10 types of software programs to the representative client, and wants to adjust the redundancy coefficient of each software program.
  • the server 10 first sorts the software programs in order of priority, and wants to increase the redundancy coefficient for the upper three types, and conversely, to decrease the redundancy coefficient for the lower three types.
  • “3” is “the number specified by the administrator”.
  • the representative client management processing unit 32 of the server 10 determines a representative client to which the software image should be distributed in advance by a push method in order to prepare for a pull-type software image distribution request from the client.
  • the representative client is a representative client that receives the distribution of the software image from the server 10 in each group and retransmits the software image to the subordinate clients.
  • the representative client management processing unit 32 performs client priority determination processing. 32A and a software image distribution destination determination processing unit 32B.
  • the server 10 After completing the prioritization of software programs (S204) and the calculation of software coefficient redundancy coefficient values (S206), the server 10 prioritizes the clients (S2008) and the representative client to be the distribution destination of the software. A determination process (S2010) is performed.
  • the priority determination processing unit 32A of the server 10 prioritizes clients for each group in order to determine or select a client as a representative client candidate to which a software image corresponding to the software program is distributed.
  • the priority determination processing unit 32B refers to one or a combination of the following viewpoints in order to determine the priority order of the clients, that is, the priority.
  • the client is not a notebook PC. Lower the priority of clients that can be disconnected from the network.
  • the priority determination processing unit 32A determines the priority order related to (o) to (s) with reference to the client information table 12C. Further, priorities listed in (t) and (u) are determined with reference to the software distribution status table 12F.
  • the priority determination processing unit 32A associates the software list table 12C and the software distribution status table 12F with the software name as a key, and obtains the capacity of the software image (or software program) distributed to the representative client.
  • the distribution destination determination processing unit 32B determines a representative client (group) to distribute the software image corresponding to the software program (S210).
  • the distribution destination determination processing unit 32B refers to the grouping table 12D and grasps clients belonging to the group for each group.
  • the clients are sorted in the priority order determined in S2010, and the average operation rate for each client is obtained in order based on the client information table 12C, and the average operation rate is integrated.
  • the distribution destination determination processing unit 32B refers to the integrated value and the redundant coefficient value of the software program registered in the software distribution priority / redundant coefficient table, and sorts clients until the integrated value exceeds the redundant coefficient value. Continue to end client sorting when the coefficient value is exceeded.
  • the sorted client becomes the representative client for the software program in which the redundancy coefficient value compared with the integrated value is set.
  • One or more clients are classified as representative clients.
  • the distribution destination determination processing unit 32B sorts the next client based on the priority. .
  • the distribution destination determination processing unit 32B determines a representative client to which a software image corresponding to the software program is to be distributed, an entry of the representative client is added to the software distribution status table 12F.
  • FIG. 8 is an example of a software distribution status table.
  • the software distribution status table includes a group name entry, a software name entry to be distributed, a representative client entry for each group, and a corresponding software image distribution status entry for each software program.
  • the distribution destination determination processing unit 32B When determining the representative client, the distribution destination determination processing unit 32B adds an entry of the representative client to the software distribution state table and registers “distribution schedule” in the distribution state of the software program (800). When a software image corresponding to the software program is distributed, the status is changed to “distributed” (802).
  • the server 10 determines the client to which the software image corresponding to the software program should be distributed regardless of the software redundancy coefficient value. For example, the server 10 maximizes the redundancy coefficient value of the software program, that is, the group There are a method of distributing a software image corresponding to a software program to all clients, a method of minimizing disk usage, and a mode of distributing a software image corresponding to a software program only to a client having the highest priority in the group.
  • the distribution processing unit 40A transfers the software image stored on the disk to the representative client group.
  • Software images are distributed in descending order of software program priority.
  • An administrator can set a restriction on a group to which a software image corresponding to the software program should be distributed for a predetermined software program.
  • the distribution processing unit 40A When there are a plurality of representative clients in the group, the distribution processing unit 40A attempts unicast communication with the representative clients in descending order of priority. A software image and list information for identifying other representative clients are transmitted to the representative client who has successfully communicated.
  • the representative client that receives the distribution of the software image performs unicast communication with another representative client of the same group based on the list information, and transfers the software image.
  • the status column of the software distribution status table 12F is set to “Distribution schedule”. To “distributed” (802).
  • the server 10 transmits a software image to the representative client 14, the second process in which the representative client 14 receives the software image from the management server 10, and There is a third process in which the representative client transmits the software image to another representative client in the same group.
  • FIG. 9 is a flowchart corresponding to the first process
  • FIG. 10 is a flowchart corresponding to the second process
  • FIG. 11 is a flowchart corresponding to the third process.
  • the distribution processing unit refers to the software distribution status table 12F and identifies the representative client to which the software image is to be distributed.
  • the distribution processing unit 40A transmits a request for confirming the acquisition status of the software image to be distributed to the representative client with the highest priority, and receives a response result to the request (S900).
  • the distribution processing unit 40A selects a software image corresponding to the software program to be distributed based on the software distribution status table 12F.
  • the result reception processing unit 40B determines whether or not the representative client has acquired the software image corresponding to the software program based on the response result from the representative client that has received the request (S902). Then, the software image is transmitted to the representative client (S904). If affirmative in S902, the process jumps to S904.
  • the result reception processing unit 40B updates the state of the representative client that acquired the software image to “distributed” in the software distribution status table 12F (S906).
  • the result reception processing unit 40B refers to the software distribution status table 12F and searches for other representative clients that belong to the same group as the representative client that distributed the software image (S908).
  • the result reception unit 40B selects a table entry that satisfies all of the following from the software distribution status table 12F.
  • the group name is the same as the group name corresponding to the representative client who received the software image.
  • the software name is the same as the name of the software program corresponding to the software image distributed to this representative client.
  • the distribution processing unit 40A transmits the client name belonging to the selected entry or entries to the representative client that transmitted the software image in S904 (S910).
  • the processing for receiving a software image from the server 10 4 performed by the representative client 14 will be described with reference to FIG.
  • the software reception processing unit 62B of the client 14 has already acquired the software image by referring to the software image data in the disk device 14B. It is determined whether or not (S1002).
  • the software reception processing unit 62B denies this determination, it responds that the software image has not been acquired to the result reception processing unit 40B of the server 10 (S10004).
  • the software reception processing unit 62B receives the software image from the server 10 via the communication interface 50, and stores it from the disk interface 52 in the software image storage area of the disk 14B (S1006).
  • the software distribution task table 72 manages a task for a representative client that has received a software image to transmit a software image to another representative client in the same group.
  • Figure 12 shows an example of the software distribution task table.
  • the software distribution task table includes a task entry, an entry of a corresponding software program name of a software image to be transmitted, an entry of a representative client to which a software image corresponding to the software program is to be transmitted, and an entry of a transmission state. Is provided.
  • a software image identifier may be used instead of the software program name.
  • the transmission state is set to “incomplete”. If S1002 is negative, the process jumps to S1006.
  • the former representative client is designated as the first representative client and the latter representative client is designated as the second representative client, and the two are distinguished for convenience.
  • the software transmission processing unit 64A of the first representative client refers to the software distribution task table 72, selects the second representative client whose status is not “completed”, and selects the second representative client via the communication interface 50 and the LAN 76. It is determined whether or not the second representative client can be connected (S1100).
  • the software transmission processing unit 64A determines whether the second representative client has acquired the software image based on the response (S1104).
  • the software transmission processing unit 64A reads the software image from the disk device 14B and transmits it to the second representative client (S1106).
  • the software transmission processing unit 64A reads a list of representative client names from the software distribution task table 72 and transmits it to the second representative client (S1108).
  • the software transmission processing unit 64A of the first representative client updates the “status” of the second representative client, which is the transmission destination of the software image, to “sent” in the software distribution status table 72 (S1110).
  • the server 10 is notified that the software image has been transmitted from the first representative client to the second representative client (S1112).
  • the distribution status screen display processing unit 42 of the server 10 creates a software image transmission status table based on the report from the second representative client, and displays this to the administrator. Details of this table will be described later.
  • the software transmission processing unit 64A updates the “status” entry of the second representative client for the transmission target software name to “completed” in the software distribution task table 72 (S1114).
  • the software transmission processing unit 64A makes a negative determination in S1104, the “status” in the software distribution task table is updated to “not connectable” and the process ends. Furthermore, if the software transmission processing unit 64A makes a positive determination in S1104, the process jumps to S1110.
  • the client acquires a list of representative clients belonging to the same group as the client from the server, and sequentially accesses the representative clients in the list.
  • the client can communicate with one of the representative clients. If the representative client holds a software image corresponding to a desired software program, the client receives this software image from the representative client. When communication with all representative clients is not possible or when all the representative clients do not have a software image corresponding to the desired software program, the client acquires a software image corresponding to the desired software program from the management server. .
  • the client If the server needs to distinguish between a download from the server and a download from the representative client in determining the software priority and redundancy factor values, the client must Report the type (management server or representative client). Then, the client installs a desired software program using the received software image.
  • the server manages the license for using the software program, or when the number of installations of the software program is used as a parameter for managing the distribution of the software program, the client reports to the server that the software program has been installed.
  • the representative client holds the software image corresponding to the software program in the memory (temporary copy) in the memory without installing the software program like the requesting client.
  • the software may be installed using a software image cache.
  • FIG. 13 is a flowchart of software distribution processing of the representative client.
  • the software transmission processing unit 64A of the representative client receives a connection request from the client (S1300), it determines whether or not it holds a software image corresponding to the software program requested by the client (S1302), and affirms this.
  • Information indicating that the software image corresponding to the requested software program is held is transmitted to the requesting client (S1304), and then the software image corresponding to the requested software program is transmitted (S1306).
  • the representative client transmits information indicating that the software image corresponding to the requested software program is not held to the requesting client (S1308).
  • FIG. 14 is a flowchart of software image reception processing and installation processing of the software requesting client.
  • the software reception processing unit 62B of the client 14 receives an input of a software program name to be installed from the user (S1400).
  • the software receiving unit 62B acquires information on a list of representative clients that hold software images corresponding to the software program designated by the user in S1400 in the group to which the software receiving unit 62B belongs (S1404).
  • the software receiving unit 62B that has acquired the list information performs the process described below for each representative client in the list.
  • the software reception processing unit 62B of the request source client 14 transmits a software image acquisition request to the representative client (S1406).
  • the name of the software program is specified in the request, an identifier of the software image may be specified.
  • the request source client 14 determines whether or not the representative client holds a software image corresponding to the target software program based on the response from the representative client (S1407).
  • the software reception processing unit 62B receives the software image corresponding to the target software program from the software transmission processing unit 64A of the representative client (S1408).
  • the request source client 14 reports to the server that the software image corresponding to the software program has been downloaded from the representative client (S1410), and then executes S1416 described later (S1410).
  • the request source client 14 accesses another representative client (sends an acquisition request) and tries to acquire a software image corresponding to the software program. If the acquisition of the software image is successful (S1412: No), the software program is installed using the acquired software image (S1416), and the fact is transmitted to the server (S1418).
  • the server 10 is accessed and the distribution processing unit 40B of the server 10 Receive software image distribution (S1414).
  • the installation processing unit 62C of the client 14 that has received the distribution of the software image installs the software program using the distributed software image (S1416), and transmits that fact to the server (S1418).
  • the representative client or server sets one of the requesting clients as a new representative client. Set and parallelize the transmission process. The processing related to the representative client will be described with reference to the flowchart.
  • FIG. 15 is a flowchart showing an outline of the operation of the representative client.
  • the representative client receives a connection request from the client requesting the software image (S1500), it is determined whether or not the representative client holds a software image corresponding to the requested software program (S1502).
  • the software transmission processing unit 64A of the representative client transmits information indicating that the software image corresponding to the software program is held to the requesting client (S1504).
  • the software transmission processing unit 64A of the representative client transmits a software image corresponding to the software program to the requesting client, and creates a new representative client (S1506).
  • the details of this step are as shown in the flowchart of FIG.
  • the software transmission processing unit 64A of the representative client stores the target client that transmits the software image in a predetermined work area of the memory 60 (S1600).
  • the plurality of target clients are stored in the work area.
  • the software transmission processing unit 64A sets this as the number of objects for which parallel transmission of software is executed, that is, the number of parallel processes (S1602).
  • the software transmission processing unit 64A compares the number of parallel processes and the specified number (S1604), and if it is determined that the number of parallel processes is equal to or greater than the specified number, registers necessary information in the software transmission status table 74 of the disk device 14B.
  • FIG. 17 is an example of a software transmission status table.
  • the software transmission status table includes an entry for a software program name, an entry for a software destination client name, an entry for a new representative flag, an entry for an interruption flag, and an entry for the name of the client that receives the software image corresponding to the software program. And have.
  • the software transmission processing unit 64A of the representative client selects a new representative client from a certain client, and sets a new representative flag in an entry having the client as the destination client name in the software transmission status table 74 (S1605). Note that this processing is not actually performed when a representative flag is already set for at least one of the plurality of destination clients.
  • a client that is scheduled to transmit a software image corresponding to a software program having the smallest number of bytes is a new representative client.
  • the representative client who is requested to distribute the software image makes an inquiry to the central server, and the client with the highest priority among the software image distribution destination client groups is set as the new representative client.
  • the software transmission processing unit 64A determines that the number of parallel processes is smaller than the specified number or ends the processing of S1605, the client transmission target name is added to the software transmission status table 74 (S1606).
  • the software transmission processing unit 64A performs processing for transmitting a software image. This process will be described in detail with reference to FIG. Note that the transmission process is achieved by dividing the software image into a plurality of blocks and sequentially transferring them.
  • the software transmission processing unit 64A of the representative client sets the type of packet for transmitting the block as “software” (S1800). Next, the packet is sent to the client to be transmitted (S1802).
  • the software transmission processing unit 64A searches the software transmission state table, confirms the interruption flag for the transmission target client (S1804), and determines the presence or absence of the interruption flag (S1806).
  • the software transmission processing unit 64A of the representative client sets the packet type to “interruption” (S1810), transmits the packet to the transmission destination client,
  • the client information of the software transmission status table 74 is transmitted to the client that transmitted the packet (S1812), and the process proceeds to S1610 in FIG.
  • the software transmission processing unit 64A of the representative client sets the packet type to “completed” (S1613).
  • the software transmission processing unit 64A of the representative client refers to the software transmission status table 74 and determines whether or not a new representative flag is set on the transmission target client (S1614). If it is determined that the new representative flag is not set, the transmission target client is notified that it is not the new representative (S1616). If it is determined that the new representative flag is set, the transmission target client is notified that it will become the new representative client (S1618). Further, the server is notified that the transmission target client has become a new representative (S1620).
  • the software transmission processing unit 64A selects half of the clients undergoing transmission processing or the designated ratio, and sets an interruption flag for the client entry in the software transmission status table 74 (S1622).
  • the name of the new representative client that has set the new representative flag is recorded as the receiving client of the entry of the destination client that has set the relay flag (S1624).
  • the packet type is determined (S1902). If the packet type is “completed”, the packet data is confirmed (S1904), it is determined whether there is a command for setting new representative flag data (S1906). All blocks of the software image received from the client are stored in the distribution software data storage area of the disk 14B (S1908).
  • the received block is stored in the disk 14B (S1912). If the packet type is “suspended”, the client whose software image distribution is suspended by receiving the suspended packet accesses the receiving client in the software transmission status table 74 as a new representative, and The interrupted software image is retransmitted from the client (S1910).
  • the server for example, checks the addition or removal of clients or periodically calculates the priority of the software program and the required redundancy coefficient value, and the copy of the software image is biased against the latest calculation result. If so, the software image copy in the client group is rearranged.
  • the server reallocation processing unit 34 periodically executes the following processing.
  • the server collects inventory information from clients connected to the server, and confirms the increase or decrease of clients in each group. The increase / decrease is calculated based on the difference between the previous collection result and the latest collection result. Each time inventory information is collected, the server records the last update date, and determines that clients that have not been updated for more than the time specified by the administrator have been removed.
  • (A) a recalculated method of matching the software and / or client priority with a software image arrangement state corresponding to the software program in the client group, (B) a software image corresponding to the current software program
  • the distribution status of the software image does not satisfy the redundancy desired by the administrator or exceeds the redundancy desired by the administrator, and the corresponding software image is rearranged.
  • the relocation processing unit 34 of the management server obtains one or a plurality of candidates for a new representative client for the client group that has undergone expansion or reduction.
  • the rearrangement processing unit 34 compares an existing representative client with a new representative client, and determines a client that is not a representative and a client that is a new representative.
  • the relocation processing unit 34 sends the address of a client to be a new representative client to any one of the existing representative clients, and gives a command to send software from the existing representative client to the new representative client.
  • the software transmission processing unit 64 of the representative client that has received this software transmission command transmits the software image to each of the newly representative clients, and when the transmission is completed, the transmission is completed to the relocation processing unit 34 of the server. To report.
  • the server receives the report of the completion of transmission, the server sends a command for deleting the software image to the client that is not represented.
  • the reallocation processing unit 34 refers to the current representative client by referring to the client information table 12C, acquires the latest average operating rate, and accumulates these.
  • the relocation processing unit 34 selects one of the existing representative clients, for example, selects a client with the smallest I / O load, and newly transmits a software image to the representative client. Send instructions.
  • the redundancy coefficient value is exceeded, the one with the lowest priority among the existing representative clients is removed in order from the target for integrating the average operating rate, and the integration result shows the corrected redundancy coefficient value. Continue this until below. A client that has been removed until just before the integration result falls below the redundancy coefficient value is determined to be excluded from the representative, and an instruction to delete the software image is sent to the client.
  • the server distribution status screen display processing unit 42 receives a screen display request from the administrator, it generates management display information based on the updated table information of the disk 12 and uses this for screen display. A display output is performed on the management screen of the client 28.
  • FIG. 20 shows an example of the management screen. This management screen has the following entries.
  • the group name corresponds to the group name column in the software distribution status table 12F.
  • the ⁇ total disk capacity, total free disk capacity ⁇ for each group corresponds to the total disk capacity column and free disk capacity column of the client information table 12C.
  • the total capacity of software images distributed for each group is obtained by associating the software distribution status table 12F and the software list table 12B with respect to software program names, and the “size” of the entry whose status column of the software distribution status table 12F is “distributed”. "Is a value compiled for each group.
  • the software name corresponds to the software name column in the software distribution status table 12F.
  • “Representative client count, representative client name” for each group and software corresponds to the client name column in the software distribution status table 12F.
  • the redundancy coefficient value of the software program for each group and each software program corresponds to the software distribution priority and the value of the redundancy coefficient value column of the redundancy coefficient value table 12E.
  • the software distribution status table 12F and the client information table 12B are combined with respect to the client name.
  • the average operating rate for each date corresponds to a value that is summarized for each group and each software program.
  • the client In response to an instruction from the server, it is determined whether or not the client is a representative client. In the case of the representative client, information (address, capacity, etc.) of the area where the software is cached is transmitted to the server. The server distributes software to the client in accordance with information from the client.
  • the push type distribution example from the server to the representative client has been described.
  • the method of distributing the software program to the representative client does not prevent the pull type based on the request from the representative client. Absent.
  • a pull-type client (or representative client) requests acquisition of a software image for a representative client or server
  • a software program name is specified in the request (representative clients or representative clients). And between servers may be the same).
  • distribution management since there may be a plurality of software images for installing one software program, distribution management (storage of necessary information or / and execution of processing) is performed as a software program. It was disclosed mainly.
  • a software image identifier may be used instead of the software program name specified at the time of acquisition.
  • distribution management of software images may be performed as software images instead of software programs.
  • the computer system of the present invention can be incorporated into a system in which a management server has a software image and the software image is distributed to clients based on a request from a client that requires the software image.

Landscapes

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

Abstract

【課題】代表クライアントを用いたソフトウェア配信管理システムの利便性を向上させる。 【解決手段】本発明に係る計算機システムは、複数のクライアントと、前記複数のクライアントの一つ又は複数に配布するソフトウェアを含むサーバと、前記サーバと前記複数のクライアントと、を備える。前記サーバは、前記複数のクライアントからの情報に基づいて、前記複数のクライアントを複数のグループに分類し、各グループについて代表クライアントを選定し、前記代表クライアントへ前記ソフトウェアを配布することを実行する。前記ソフトウェアの配布を受けた前記代表クライアントは、同一グループに属する他のクライアントに前記ソフトウェアを当該他のクライアントに配布する。サーバは、ソフトウェアの配布管理情報に基づいて、管理用表示情報を管理画面に出力する。なお、サーバから代表クライアントへのソフトウェア配布は事前に行われても良い。

Description

計算機システムにおけるソフトウェアの配布管理方法、及び、ソフトウェアの配布管理のための計算機システム
 本発明は、計算機システムにおけるソフトウェアの配布管理方法、及び、ソフトウェアの配布管理のための計算機システムに関するものである。
 大容量のソフトウェアプログラムをクライアントに配布する技術において、クライアントと中央の管理サーバとの通信がボトルネックとなる。この傾向は、インターネット等の比較的低速の回線によって、中央管理サーバとクライアント群とが接続される環境では顕著である。
 その対策の一例として、複数のクライアント間でP2P型のソフトウェアプログラムの配布を行うことによって、サーバとクライアント間の通信回数や通信負荷の低減を図っている。
 この種の方式に関連した先行技術として、例えば、特開2009-271904号公報に記載されたものが存在する。この先行技術は、管理者が指定したソフトウェアプログラムをクライアント群へ配布する、いわゆるプッシュ型の配布に関して、P2P型の配布方式を提案している。すなわち、管理装置は、クライアント群の中から代表クライアントを選択し、代表クライアントを中継サーバのように動作させて、代表クライアントから他のクライアントへソフトウェアプログラムの配布を行うようにしている。
 さらに、この先行技術は、代表クライアントの数を、ソフトウェアの配布処理の並列度が十分になるように決定して、管理者が指定した、ソフトウェアプログラムの配布期限を満たすようにすることを開示している。
 さらに、他の関連先行技術として、米国特許7,529,809号公報に記載されたものがある。この先行技術は、クライアントのユーザが必要としたタイミングでソフトウェアプログラムを配布する、いわゆるプル型のソフトウェアプログラムの配布システムにおいて、サーバとクライアントとの間でソフトウェアプログラムの転送回数を減らす方式を開示している。
 すなわち、複数のクライアントが、リモートサイトのソフトウェアプログラムを要求する場合には、複数のクライアント間でネゴシエーションを行い、一回だけリモートサイトからソフトウェアプログラムを代表クライアントにダウンロードする方式が提案されている。
特開2009-271904号公報 米国特許7,529,809号公報
 既存の先行技術は代表クライアントを用いたソフトウェア配布について開示はしているが、利便性については向上の余地がある。その例としては以下の二つがある。
 (A)既述の先行技術では、クライアントへのソフトウェアの配布の状態、例えば、ソフトウェアのダウンロードに影響を与える設定、ソフトウェアのダウンロードの進捗などを把握できず管理面における利便性が低い。
 (B)既述の先行技術では、ソフトウェアが代表クライアントに存在しない場合、クライアントがネットワークを介してサーバからソフトウェアを取得するまでの時間が長いため、クライアントを用いるユーザの利便性が低い。
 そこで、本発明は以下の二つのいずれか又は両方を提供することを目的とする。
 (1)クライアントへのソフトウェアの配布の状態、ソフトウェアのダウンロードの進捗などを把握できる、ソフトウェアの配布管理システムを提供する。
 (2)クライアントがネットワークを介してサーバからソフトウェアを迅速に取得できる、ソフトウェアの配布管理システムを提供する。
 そこで、本発明は、係る課題を解決するために、複数のクライアントと、前記複数のクライアントの一つ又は複数に配布するソフトウェアを含むサーバと、前記サーバと前記複数のクライアントとを接続するネットワーク、を備える。
 前記サーバは、前記複数のクライアントからの情報に基づいて、前記複数のクライアントを複数のグループに分類し、各グループについて代表クライアントを選定し、前記代表クライアントへ前記ソフトウェアを配布することを実行する。
 前記ソフトウェアの配布を受けた前記代表クライアントは、同一グループに属する他のクライアントに前記ソフトウェアを当該他のクライアントに配布する。
 サーバは、ソフトウェアの配布管理情報に基づいて、管理用表示情報を管理画面に出力する。なお、サーバから代表クライアントへのソフトウェア配布は事前に行われてもよい。
 以上説明した本発明によれば、代表クライアントを用いたソフトウェア配布管理システムの利便性を向上させることができる。
本発明の実施形態に係る、管理サーバからクライアント群にソフトウェアの配布を実施するための計算機システムのブロック図である。 サーバの主機能を達成するためのフローチャートを示す。 クライアント情報テーブルの一部である。 クライアント情報テーブルの他の一部である。 クライアント情報履歴テーブルの一例である。 クライアントのグルーピングテーブルの一例である。 ソフトウェア一覧テーブルの一例である。 ソフトウェア配布優先度と冗長係数値テーブルの一例である。 ソフトウェア配布状況テーブルの一例である。 サーバが代表クライアントへソフトウェアを送信する処理に対応するフローチャートの一例である。 代表クライアントが管理サーバからフトウエアを受信する処理の一例に係るフローチャートである。 代表クライアントが、同一グループの他の代表クライアントへソフトウェアを送信する一例に係るフローチャートである。 図12にソフトウェア配布タスクテーブルの一例である。 代表クライアントのソフトウェア配信処理のフローチャートの一例である。 ソフトウェアの要求元クライアントのソフトウェアの受信処理とインストール処理のフローチャートの一例である。 代表クライアントの動作の概要を示すフローチャートの一例である。 複数のクライアントから、新規の代表クライアントを作成する処理のフローチャートの一例である。 ソフトウェア送信状況テーブルの一例である。 代表クライアントのソフトウェアの送信又は中断のフローチャートの一例である。 クライアントのソフトウェアの受信のフローチャートの一例である。 ソフトウェアの配信管理画面の一部である。 ソフトウェアの配信管理画面の他の一部である。
 以下に本発明に係る計算機システムの実施形態について説明する。なお、以後の説明では「aaaテーブル」、「aaaリスト」、「aaaDB」、「aaaキュー」等の表現にて本発明の情報を説明するが、これら情報は必ずしもテーブル、リスト、DB、キュー、等に限定されるわけではなく、これら以外のデータ構造で表現されていてもよい。
 そのため、データ構造に依存しないことを示すために「aaaテーブル」、「aaaリスト」、「aaaDB」、「aaaキュー」等について「aaa情報」と呼ぶことがある。
 さらに、各情報の内容を説明する際に、「識別情報」、「識別子」、「名」、「名前」、「ID」という表現を用いるが、これらについてはお互いに置換が可能である。
 以後の説明では「プログラム」を主語として説明を行う場合があるが、プログラムはCPUによって実行されることで定められた処理をメモリ及び通信ポート(通信制御装置)を用いながら行うため、CPUを主語とした説明としてもよい。
 また、プログラムを主語として開示された処理はプログラムを実行する計算機が行う処理としてもよい。また、プログラムの一部または全てが専用ハードウエアによって実現されてもよい。
 また、各種プログラムは、プログラム配布サーバ計算機や記憶メディアによって各計算機にインストールされてもよい。
 図1は、管理サーバ計算機からクライアント計算機群にソフトウェアプログラムの配布を実施するための計算機システムのブロック図である。
 なお、この計算機システムのハードウエア構成は、既述の特開2009-271904号公報に類するものである。したがって、特開2009-271904号公報の全ての記載事項が本願に引用され、そして補充される。
 計算機システムは、ソフトウェアプログラムを含むファイルを備え、クライアント計算機にソフトウェアプログラムに対応するソフトウェアイメージの配布を管理するサーバ計算機(以下、単に「サーバ」と呼ぶ。)10と、複数のクライアント計算機(以下、単に「クライアント」と呼ぶ。)14と、が、インターネット等の広域ネットワーク26によって接続された構成を備えている。
 なお、ソフトウェアプログラムに対応するソフトウェアイメージには、クライアントがインストール対象とするソフトウェアプログラムを実行可能とするための情報及び/又はプログラムが含まれる。また、ソフトウェアプログラムとソフトウェアイメージについて「対応する」と表現した場合は前述の意味を持つものとする。実施形態中の説明として「ソフトウェアプログラムに対応したソフトウェアイメージ」という表現は長いため、単に「ソフトウェアイメージ」と表現する場合もある。なお、既述の「実行可能とするための情報」及び/又は「プログラム」の例は以下のとおりである。
 * ソフトウェアプログラムのファイルとその設定情報。当然ながらソフトウェアイメージがソフトウェアプログラムのファイルそのものでもよい。
 * ソフトウェアプログラムをインストールするためのインストールプログラムファイルと、インストールプログラムの設定情報。
 なお、インストールプログラムを実行することで、クライアントはソフトウェアプログラムの一部または全てのファイル(又はデータ)をサーバ10またはその他の計算機からダウンロードしてもよい。
 また、インストールプログラムを実行することで、クライアントはインストールプログラムファイル内部に埋め込まれたデータからソフトウェアプログラムを取り出して、実行可能としてもよい。また、ソフトウェアイメージは対応元のソフトウェアプログラムの識別子を含んでもよい。
 なお、代表クライアントが格納する所定のソフトウェアプログラムに対応したソフトウェアイメージと、配布サーバが格納する前述の所定のソフトウェアプログラムに対応したソフトウェアイメージは同一のデータでなくてもよい。なぜならば、要求元クライアントとしては指定した所定のソフトウェアプログラムがインストールできれば、ソフトウェアイメージのデータについては特に問わないからである。
 同様に、第1の代表クライアントが格納する所定のソフトウェアプログラムに対応したソフトウェアイメージと、第2の代表クライアントが格納する前述の所定のソフトウェアプログラムに対応したソフトウェアイメージは同一のデータでなくてもよい。なぜならば、要求元クライアントとしては指定した所定のソフトウェアプログラムがインストールできれば、ソフトウェアイメージのデータについては特に問わないからである。
 このような状況があるため、代表クライアントがクライアント(または他の代表クライアント)に送信するソフトウェアイメージは、当該代表クライアントが受信したソフトウェアイメージと同一でなくても、同じソフトウェアプログラムに対応していればよい。
 なお、上述のサーバ、代表クライアント、他の代表クライアントの何れか二つの間でのインストールイメージのデータ同一性が必要とされない場合は、ソフトウェアイメージの優先順位の代わりとしてソフトウェアプログラムの優先順位を採用してもよい。
 なお、本明細書で言うところの「配布」とは、配布対象のソフトウェアイメージを計算機間で転送することを指す。なお、計算機間の一例は以下である。
 * サーバから、クライアントまたは代表クライアント
 * 代表クライアントから、クライアント又は別な代表クライアント
 従って、「配布」は、サーバ、クライアント、または代表クライアントを主語として「送信」「受信」「転送」と読み替えてもよい。さらに、「配布」された計算機が配布されたソフトウェアイメージを用いて対応するソフトウェアプログラムをインストールすることを含めてもよく、または含めなくてもよい。
 なお、「インストール」とはインストール対象のソフトウェアプログラムを実行可能とする処理を指す。実行可能とする処理の一例は以下の通りである。
 * インストール対象のソフトウェアプログラムをインストール対象のクライアントで最初に実行する。
 * ソフトウェアプログラムのファイルを、プログラム実行に適切なクライアントのディスクの適切なフォルダ(またはディレクトリ)に格納する。さらに、必須ではないが当該ソフトウェアプログラムの設定情報を設定ファイルまたはレジストリに記録する場合もある。
 * ソフトウェアプログラムは分割してオンデマンドに配布される、アプリケーション仮想化のアプリケーションストリーミングの場合は、上記に以外の例として、配布されたソフトウェアプログラムを実行中に当該プログラムの一部をオンデマンド受信可能とする処理を指してもよい。
 サーバ10は複数のクライアントをグループに分類し、各グループについてソフトウェアイメージを配布すべきクライアントを決定する。ソフトウェアイメージの配布を受けるクライントを他のクライアントと区別するために、以下、当該クライアントを代表クライントと称する。ソフトウェアイメージを要求するクライアントは、同一グループの代表クライアントからソフトウェアイメージの配布を受ける。このクライアントを代表クライアントと区別するために、要求元クライアント、と称する。
 プル型の通信において、ボトルネックとなるサーバとの通信回数を減らすには、クライアントが所属するグループにソフトウェアイメージを予め配置することが有効である。また、ノートPCのようにネットワークから切り離されることが多いクライアントも存在することから、クライアントのグループにソフトウェアイメージを冗長的に配置することが好ましい。なお、ソフトウェアイメージの配置とは代表クライアントにソフトウェアイメージを格納することを意味する。
 すなわち、前記計算機システムは、中継サーバを省略する環境において、プル型のソフトウェアイメージの配布を高速にて実行できるように、サーバのソフトウェアイメージを予め代表クライアントに配布し、かつ、このソフトウェアイメージを他のクライアントに転送できるように、代表クライアントにおいてこのソフトウェアイメージを形成、換言すれば、代表クライアントにソフトウェアイメージの一時コピーを形成、さらに換言すれば、ソフトウェアイメージをキャッシュする。
 その際、有限な記憶容量の下で、クライアントにソフトウェアイメージのキャッシュを持たせるため、計算機システムには次の主機能が実装されている。
 第1の主機能は、サーバから代表クライアントへ配布されるソフトウェアイメージを選択することである。要求元クライアントが代表クライアントから目的のソフトウェアプログラムに対応するソフトウェアイメージを受信できなかった場合、要求元クライアントはサーバにアクセスして目的のソフトウェアイメージの配布を受けることになる。
 これは、低速なネットワークを介することになって、ソフトウェアイメージの配布に長時間を有するばかりか、サーバの負荷が増大する。そこで、サーバは、ソフトウェアプログラムの特性やサーバが管理するダウンロード状況から判断し、優先度が高いソフトウェアイメージを、クライアントのディスク空き容量が許す範囲で、他のソフトウェアイメージに優先してクライアントに配布する。
 第2の主機能は、要求元クライアントが、目的のソフトウェアプログラムに対応するソフトウェアイメージにアクセスできる、単位時間あたりの確率を想定し、この確率を満足させるように、ソフトウェアイメージを格納する代表クライアントを冗長的に設定することである。
 要求元クライアントがソフトウェアプログラム(またはソフトウェアイメージ)の配布を必要とした時点で、要求元クライアントが代表クライアントにアクセスできるように、サーバは、複数クライアントを冗長的に計算機システムに存在させる。
 そこで、管理者が、代表クライアントの冗長性に関する特性値を目標値としてサーバに設定すると、サーバはこの目標値を満たすように代表クライアントを選定する。なお、サーバは、クライアントの稼働率情報を利用して、代表クライアントを決定する。
 第3の主機能は、グループ内でのソフトウェアイメージの配置について、メンテナンスを行うことである。クライアントの増減や、ソフトウェアイメージの優先順位の変更を受けて、サーバは、代表クライアントや代表クライアントが保持するソフトウェアイメージを変更する。
 以下に、計算機システムのハード構成及びその諸動作を詳しく説明する。符号14Aは、ハードウエア構成が詳細に示されたクライアントである。他のクライアントも同じように構成されている。符号12はサーバ10の記憶領域であるディスク装置である。
 符号14Bはクライアント14Aのディスク装置である。他のクライアントにもディスク装置が接続されている。複数のクライアント14はLAN76によって互いに接続されている。サーバ側のLANにはサーバの管理情報を表示するクライアント28が接続されている。
 サーバ10は、ソフトウェアイメージの配布制御の実施に必要なプログラムコードを格納したメモリ16と、当該プログラムに基づいて、ソフトウェアの配布制御を実施するプロセッサ18と、ディスク装置12との間の通信を制御するインターフェース22と、クライアントとの通信とを制御するインターフェース20と、これらの各要素を相互に接続するバス24と、を備えている。メモリ16はソフトウェア配布管理プログラム16000を格納し、当該プログラムをCPU18が実行することによりサーバ10によるソフトウェア配布管理処理を行う。
 サーバ10のソフトウェア配布管理処理は複数の機能から達成される。この機能を明らかにするために、メモリ16を、複数機能の各々にブロックを割当てた機能ブロック図として示した。これは言い方を変えると各処理部(30、32、34、36、40、及び42)はソフトウェア配布管理プログラム16000に含まれるともいえる。また、別な言い方としては各処理部に関する説明はソフトウェア配布管理プログラム16000に関する説明と言い換えることもできる。
 クライアント情報管理処理部30は、クライアントの情報、主として、インベントリ情報を管理するものである。クライアント情報管理処理部は、クライアント情報をクライアントから収集する処理部30Aと、クライアント情報に基づいて、複数のクライアントをグルーピングする処理部30Bとを有する。
 ソフトウェア情報管理処理部36はサーバ10のソフトウェアイメージの情報を管理するものであり、クライアントのグループ毎に、管理者が、ソフトウェアイメージをクライアントに配布するための優先順位を決定する優先度決定処理部36Aと、クライアントのグループ毎に存在するソフトウェアイメージのコピー(ソフトウェアイメージのキャッシュ)の冗長性に係る特性値(冗長係数値)を計算する冗長係数値計算処理部36Bを有する。
 代表クライアント管理処理部32は、クライアントのグループ毎に、ソフトウェアイメージを予め配布すべきクライアント(代表クライアント)を管理するものであり、クライアントの優先度を決定する処理部32Aと、この優先度に基づいて代表クライアントを決定する処理部32Bと、を有する。
 通信処理部40はクライアントとの通信を制御するものであり、ソフトウェアイメージの配布の処理を行う配布処理部40Aと、クライアントからの配布結果を受け付ける結果受付処理部40Bとを有する。
 再配置処理部34は、ソフトウェアイメージのクライアント群における配置を再構築するための処理を行うものであり、配布状況画面表示処理部22は画面表示用クライアントに管理画面を表示する処理を実行するものである。
 サーバに接続するディスク装置12は、サーバ10からクライアントに配布されるソフトウェアイメージのデータ12Aと、ソフトウェアプログラムの一覧のテーブル12Bと、クライアント情報のテーブル12Cと、クライアントをグルーピングした情報のテーブル12Dと、ソフトウェアイメージを配布する優先度と冗長係数値のテーブル12Eと、ソフトウェアイメージの配布状況のテーブル12Fとを備えている。
 クライント14Bは、サーバとの通信を制御する通信インターフェース50と、ディスク相違14Bとの通信を制御するディスクインターフェース52と、サーバ10又は代表クライアントからソフトウェアイメージの配布を受ける処理と、代表クライアントがソフトウェアイメージの要求元クライアントにソフトウェアイメージを配布する処理とを制御するプロセッサ58と、これら処理のためのプログラムが格納されたメモリ60と、これら各要素を互いに接続する内部バス56とを備えている。メモリ60はクライアント側配布管理プログラム64000を格納し、当該プログラムをCPU58が実行することによりクライアント14側のソフトウェア配布処理を実現する。
 クライアント側配布管理プログラム64000は、複数のクライアントに共通する処理を実現するクライアント共通処理部62と、代表クライアントに固有の処理を実現する代表クライアント固有処理部64とを含む。なお、各処理部(62、64)に関する説明はクライアント側配布管理プログラム64000に関する説明と言い換えることもできる。
 クライアント共通処理部62は、クライアント情報をサーバに送信するクライアント情報送信部62Aと、サーバ10又は代表クライアントからソフトウェアイメージを受信するソフトウェア受信処理部62Bと、代表クライアントから受信したソフトウェアイメージを用いてソフトウェアプログラムをインストールするインストール処理部62Cと、を有する。
 代表クライアント固有処理部64は、サーバ10から受信したソフトウェアイメージを要求元クライアントに送信するソフトウェア送信処理部64Aを有している。クライアントのディスク14Bは、クライアントが受信したソフトウェアイメージのデータ70と、代表クライアントから要求元クライアンへのソフトウェアイメージの配布タスクのテーブル72と、代表クライアントから要求元クライアントへのソフトウェアイメージの送信状況のテーブル74と、を有する。
 なお、メモリ16及びメモリ60に格納されている各処理部はプログラムコードであることが考えられるが、前述の通り、一部または全ての処理をハードウェアで代替してもよい。また、サーバ10の記憶資源として考えた場合、記憶資源に含まれるメモリ16とディスク12の両方が含まれていてもよいが、メモリ16またはディスク12の何れかが記憶資源に含まれていてもよい。この場合、サーバ10の記憶資源としてはメモリ16に含まれるプログラム及び情報、及びディスク12に含まれるテーブル(情報)が格納されていると考えることが出来る。
 なお、クライアント14Aの記憶資源についても、記憶資源に含まれるメモリ60とディスク14Bの両方が含まれていてもよいが、メモリ60またはディスク14Bの何れかが記憶資源に含まれていてもよい。この場合、クライアント14Aの記憶資源としてはメモリ60に含まれるプログラム及び情報、及びディスク14Bに含まれるテーブル(情報)が格納されていると考えることが出来る。
 図2に、サーバ10の前記主機能を達成するためのフローチャートを示す。サーバ10は、先ず、計算機システムに存在する複数のクライアント14のそれぞれからクライアント情報を収集し(S200)、収集した情報に基づいてクライアント14のグループ分けを行う(S202)。
 次いで、サーバ10はクライアント14に配布するソフトウェアイメージの優先順位を決定し(S204)、さらに、ソフトウェアイメージがクライアントのグループに存在する際の冗長性に関する特性値(冗長係数値)を計算する(S206)。
 サーバ10は各グループの複数のクライアントについて優先順位を計算して(S208)、ソフトウェアイメージを配布すべき代表クライアントを決定する(S210)。次いで、サーバ10は、ソフトウェアイメージの配布を実施し、配布結果を更新する(S212)。
 次に、各ステップの詳細について説明する。
 (S200):
 クライアント情報管理処理部30の収集処理部30Aは複数のクライアント14に定期的(または繰り返し)にアクセスして、各クライアントのクライアント情報送信部62Aから、クライアント情報、主に、インベントリ情報や性能情報を収集し、収集した情報をディスク装置12のクライアント情報テーブル12Bに更新格納する。
 クライアントから収集するインベントリ情報の一例は、各クライアント14のアドレス情報(IPアドレスやサブネットマスク)、ディスク容量、空き容量、である。このインベントリ情報はクライアント14のグルーピングに利用される。収集処理部30Aは、さらに、クライアントの平均稼働率を算出して、これをクライアント情報処理テーブル12Cに登録する。
 図3A及び図3Bに、クライアント情報処理テーブル12Cを示す。クライアント情報管理処理部30は、平均稼働率を、例えば、次のようにして求める。サーバ10から各クライアント14に一定時間毎にアクセスし、クライアントがその都度稼動しているか否かを確認する。
 クライアント情報管理処理部30は、クライアント14が稼動している時間の合計を接続可能時間と判定し、さらに、クライアントの業務時間の合計値に対する接続可能時間の割合を算出して、これをクライアント毎の平均稼働率とする。例えば、08:00~20:00までの12時間が1日の業務時間の合計値であり、サーバ10がクライアント14に1時間毎に12回接続確認の要求を送信し、クライアント14から9回応答があったとすると、一日の稼働率は0.75(9/12)になる。
 クライアント情報管理処理部30は、規定の日数分の稼働率をメモリ16の所定領域に累積記録し、累積値の平均値を平均稼働率とする。クライアント毎の日毎の稼働率は、クライアント情報履歴テーブル(図4)に格納する。クライアント情報履歴テーブルもディスク装置12に格納されている。クライアント履歴テーブルは、クライアントの諸性能の履歴が年月日毎に更新格納されており、平均CPU利用率、平均ディスクI/O量、平均ネットワークI/O量の値の算出方法は平均稼働率の算出方法と同じである。
 (S202):
 次に、クライアント情報管理処理部30のグルーピング処理部30Bは、クライアント情報テーブル12Cを参照して、複数のクライアント14をグループに自動分類する。その方式として、次のものがある。
 (a) 複数のクライアントをサブネット毎に分ける。
 (b) 複数のクライアントを、IGMP(Internet Group Management Protocol)によって管理されるマルチキャストグループに分ける。
 (c) ルータのホップ数を取得し、固定もしくは管理者指定の閾値により複数のクライアントをグループに分類する。
 (d) OSPF(Open Shortest Path First)等のルーティングプロトコルが用いるパス毎のコストを取得し、固定もしくは管理者指定の閾値により、複数のクライアントを分類する。
 (e) クライアントが所属する部門の違いにより、複数のクライアントを分類する。このためには、サーバ14は、クライアント14毎に所属する部門の識別情報の入力を管理者に求め、入力結果をクライアント情報テーブル12Cに登録する。
 グルーピング処理部30Bは、複数のクライアント14をグルーピングした結果をディスク装置12のグルーピングテーブル12Dに登録する。図5は、グルーピングテーブルの一例であり、グループ名のエントリと、グループに属するクライアントのエントリとを有する。
 (S204):
 管理サーバ10のソフトウェア情報管理処理部36の優先度決定処理部36Aは、クライアント14のグループ毎に、管理者が、サーバ10に配置されたソフトウェアイメージをクライアント14に配布するための優先順位を決定する優先度決定処理を行う。
 なお、本実施例では上述の通り、複数のソフトウェアイメージが同じソフトウェアプログラムに対応する場合にも対応するため、優先度決定に必要な情報はソフトウェアプログラムに対して保持する場合を例として説明する。しかし、よりシンプルに同様の情報をソフトウェアイメージに対して保持してもよい。この場合は各情報の「ソフトウェア名」または「ソフトウェアプログラム名」とされた説明を「ソフトウェアイメージの識別子」と置き変えればよい。なお、「ソフトウェア名」は「ソフトウェアプログラム名」と同じ意味である。
 優先度決定処理部36Aは、図6に示すソフトウェア一覧テーブル12Bにエントリがある、複数種類のソフトウェアプログラムについて、優先度決定処理を行う。ソフトウェア一覧テーブル12Bは、ディスク装置12に格納され、ソフトウェア情報管理部36によって参照、又は更新される。ソフトウェアプログラムに優先度を設定する方式として、以下のものがある。
 (f) 容量が大きく、転送に時間がかかるソフトウェアイメージに対応するソフトウェアプログラムほど優先度を大きく設定する。
 (g) グループ内で、ソフトウェアプログラムがインストールされたクライアンマシン数が全クライアントマシン数に対して成す比(インストール率)が高いソフトウェア程優先度を大きく設定する。
 (h) このインストール率の直近での増加率が高いソフトウェアプログラムほど優先度を大きく設定する。
 (i) サーバ10の管理者が、複数のソフトウェアプログラムに設定した順番毎に優先度を決定する。又は、優先度を管理者がソフトウェアプログラムに対して設定した値とする。
 ソフトウェア一覧テーブル12Bには、ソフトウェアプログラム名とソフトウェアプログラムに対応するソフトウェアイメージのサイズが含まれている。なお、同じソフトウェアプログラムに対応するソフトウェアイメージが複数ある場合は、当該容量は例えば当該イメージの最大値、平均値、最小値等の所定のルールに従った値を入れても良い。
 その他に、ソフトウェア一覧テーブルに、インストール率、インストール率の増加率が含まれてもよい。決定された優先度或いは管理者によって設定された優先度や優先順位は、ソフトウェア配布優先度と冗長係数値テーブル12Eに設定される。このテーブルの一例を図7に示す。
 図7のソフトウェア配布優先度・冗長係数値テーブルには、ソフトウェア情報管理処理部36によって計算された冗長係数値の他、グループ毎のソフトウェアプログラムについての優先度、サーバからのソフトウェアプログラムに対応するソフトウェアイメージのダウンロード回数、総ダウンロード回数と、が登録されている。なお、ダウンロードという言葉は、ダウンロード元の存在を主語とした場合はダウンロード対象の「送信」を意味し、ダウンロード先の存在を主語とした場合はダウンロード対象の「受信」を意味する。
 (S206):
 次に、サーバ10のソフトウェア情報管理処理部36の冗長係数値計算処理部は、ソフトウェアの冗長係数値の計算処理を実行する。
 ここで、「冗長係数値」とは、特定のソフトウェアイメージのコピーを各グループに存在させる上での冗長性に関する指標であり、冗長係数値が高くなると、グループ内で、ソフトウェアイメージが配布されるクライアント数が増加される。したがって、クライアント14が特定のソフトウェアイメージを必要としたとき、当該ソフトウェアイメージを代表クライアントから取得できる実際の確率が高いことになる。
 なお、「特定のソフトウェアイメージのコピー」については、当該イメージの対応元である特定のソフトウェアプログラムに対応していれば、特定のソフトウェアイメージとはデータ同一でなくても、対応ソフトウェアイメージをコピーと見做してもよい。
 ソフトウェアプログラムに対応するソフトウェアイメージに対して、要求元クライアントが単位時間あたりに、代表クライアントのソフトウェアイメージのキャッシュにアクセス可能な所定確率を実現するために、サーバ10は管理者からの入力によって、冗長係数値を設定する。
 クライアントのグループ毎に、クライアントが単位時間にアクセス可能なソフトウェアイメージのコピーが当該グループに存在する確率の目標値を想定して、冗長係数値は、計算、及び/又は設定によって決定される。この冗長係数値の計算或いは設定は、ソフトウェア一覧テーブルにエントリがある複数のソフトウェアプログラムについて、順番に、次のjからnいずれかによって、行われる。
 (j) 冗長係数値計算処理部36Bは、最も大きな容量のソフトウェアイメージに対応するソフトウェアプログラムの冗長係数値を管理者が指定した値にし、ソフトウェアイメージの容量が小さなくなるのに比例して、係数値を小さくする。
 (k) 管理者が設定した優先度が最も高いソフトウェアプログラムの冗長係数値を管理者が設定した値にし、優先度が小さくなるのに比例して、値を小さくする。
 (l) ソフトウェアプログラムの冗長係数値を管理者が設定した値にする。
 (m) 冗長係数値計算処理部36Bは、その初期値を特定の値にし、或いは、j~lのいずれかで決めた値とする。その後、冗長係数値計算処理部36Bは、ソフトウェア一覧テーブル(ソフトウェア毎の容量)12Bとソフトウェア配布優先度・冗長係数値テーブル(管理サーバからのソフトウェアプログラムのダウンロード回数、ソフトウェアの総ダウンロード回数)12Eとを参照して、クライアントのグループ別に、「図6のソフトウェアの容量×(配布管理サーバからのダウンロード回数÷総ダウンロード回数)」、即ち、ソフトウェアプログラムに対応したソフトウェアイメージの容量とソフトウェアプログラムに対応したソフトウェアイメージの配布状況との組み合わせによるソフトウェアプログラムの特性を定期的に測定し、一定期間内の平均量が、管理者が指定した上限の閾値を超えた場合に冗長係数値を特定の値だけ増やし、下限を下回った場合に特定の値だけ減らす。
 なお、総ダウンロード回数は、ソフトウェアプログラムに対応するソフトウェアイメージがソフトウェアの要求先クライアント14に、サーバ10からダウンロードされた回数と、同一グループ内の代表クライアントからダウンロードされた回数との合計数である。
 (n) 前記(m)の測定結果を複数のソフトウェアプログラムについてソートし、値の大きいものから順に管理者が指定した数のソフトウェアプログラムについて冗長係数値を特定の値だけ増やし、値の小さなものから順に管理者が指定した数のソフトウェアプログラムについて特定の値だけ減らす。
 ここで、「管理者が指定した数」について具体的に説明する。例えば、サーバ10が10種類のソフトウェアプログラムに対応する複数のソフトウェアイメージが代表クライアントに配布済みとし、各ソフトウェアプログラムの冗長係数を調整したいとする。そのために、サーバ10は、まずソフトウェアプログラムを優先順位でソートし、上位3種類については冗長係数を増やしたい、逆に、下位3種類については冗長係数を減らしたい、ということをする。この例での「3」が、「管理者が指定した数」となる。
 (S208,S210):
 サーバ10の代表クライアント管理処理部32は、各グループについて、クライアントからのプル型のソフトウェアイメージ配信要求に備えるために、ソフトウェアイメージをプッシュ方式によって予め配布すべき代表クライアントを決定する。
 代表クライアントは、各グループにおいて、サーバ10からソフトウェアイメージの配布を受け、これを配下のクライアントに再送信するべく、代表となるクライアントであり、代表クライアント管理処理部32は、クライアントの優先度決定処理部32Aと、ソフトウェアイメージの配布先決定処理部32Bと、を有する。
 サーバ10は、ソフトウェアプログラムの優先順位付け(S204)、ソフトウェアプログラムの冗長係数値の計算(S206)を終了した後、クライアントの優先順位付け処理(S2008)、ソフトウェアの配布先とすべき代表クライアントの決定処理(S2010)を行う。
 サーバ10の優先度決定処理部32Aは、ソフトウェアプログラムに対応するソフトウェアイメージが配布される代表クライアントの候補となるクライアントを決定或いは選択するために、グループ毎に、クライアントの優先順位付けを行なう。優先度決定処理部32Bが、クライアントの優先順位、すなわち、優先度を決定するには、次の複数の観点の一つ又は組み合わせを参照する。
 (o) クライアントがノートPCでないこと。ネットワークから切断される可能性のあるクライアントの優先度を低くする。
 (p) 平均CPU稼働率が少ないほど優先順位が高いこと。
 (q) 平均ディスクI/Oが少ないほど優先順位が高いこと。
 (r) 平均ネットワークI/Oが少ないほど優先順位が高いこと。
 (s) 平均稼働率が高いほど優先順位が高いこと。
 (t) 配布済み及び/又は配布される予定のソフトウェアイメージ数またはソフトウェアプログラム数が少ないほど優先順位が高いこと。
 (u) 配布済み及び/又は配布される予定のソフトウェアイメージの総容量またはソフトウェアプログラムの総容量が少ないほど優先度が高いこと。
 優先度決定処理部32Aは、(o)~(s)に係る優先順位を、クライアント情報テーブル12Cを参照して決定する。さらに、(t),(u)に掲げる優先順位を、ソフトウェア配布状況テーブル12Fを参照して決定する。
 優先度決定処理部32Aは、ソフトウェア一覧テーブル12Cとソフトウェア配布状況テーブル12Fとをソフトウェア名をキーにして関連させて、代表クライアントに配布されるソフトウェアイメージ(またはソフトウェアプログラム)の容量を得る。
 次いで、優先度決定処理部32Aがクライアントの優先度を決定すると、配布先決定処理部32Bがソフトウェアプログラムに対応したソフトウェアイメージを配布すべき代表クライアント(群)を決定する(S210)。
 すなわち、配布先決定処理部32Bは、グルーピングテーブル12Dを参照して、グループ毎に、グループに所属するクライアントを把握する。
 そして、S2010で決定した優先度順にクライアントをソートし、クライアント情報テーブル12Cに基づいて、クライアントごとの平均稼働率を順番に取得して平均稼働率を積算する。
 配布先決定処理部32Bは、積算値と、ソフトウェア配布優先度・冗長係数テーブルに登録されているソフトウェアプログラムの冗長係数値と、を参照し、積算値が冗長係数値を超えるまでクライアントのソートを継続し、係数値を超えた時点でクライアントのソートを終了する。
 ソートされたクライアントが、積算値と比較された冗長係数値が設定されたソフトウェアプログラムについて、代表クライアントになる。一つ又は複数のクライアントが代表クライアントに分類される。
 なお、ソフトウェアの容量が、選択されたクライアントの最大ディスク容量を超える場合には、当該クライアントは代表クライアントに選択されず、配布先決定処理部32Bは、優先度に基づいて次のクライアントをソートする。
 配布先決定処理部32Bが、ソフトウェアプログラムに対応したソフトウェアイメージを配布すべき代表クライアントを決定すると、ソフトウェアの配布状況テーブル12Fに当該代表クライアントのエントリを追加する。
 図8はソフトウェア配布状況テーブルの一例である。ソフトウェア配布状況テーブルは、グループ名のエントリと、配布すべきソフトウェア名のエントリと、グループ毎の代表クライアントのエントリと、ソフトウェアプログラム毎の対応ソフトウェアイメージの配布状態のエントリと、を有する。
 配布先決定処理部32Bは、代表クライアントを決定すると、ソフトウェア配布状態テーブルに代表クライアントのエントリを追加し、ソフトウェアプログラムの配布状態に「配布予定」を登録する(800)。なお、ソフトウェアプログラムに対応するソフトウェアイメージが配布されると、状態は「配布済み」に変更される(802)。
 なお、サーバ10がソフトウェアの冗長係数値に拘わらず、ソフトウェアプログラムに対応したソフトウェアイメージを配布すべきクライアントを決定する形態として、例えば、ソフトウェアプログラムの冗長係数値を最大化する方式、即ち、グループの全てのクライアントへソフトウェアプログラムに対応したソフトウェアイメージを配布する方式、ディスク使用量を最小化する方式、グループの最も優先度が高いクライアントのみにソフトウェアプログラムに対応したソフトウェアイメージを配布する形態がある。
 (S212):
 次いで、サーバ10の通信処理部40は、フローチャートのS214に示されるように、S212で決定された、ソフトウェアプログラムに対応したソフトウェアイメージの配布先である代表クライアントにソフトウェアイメージの配布処理と、配布結果を代表クライアントから受付けてソフトウェア配状況テーブル12Fに登録する、配布結果受付処理とを実行する。
 配布処理部40Aは、代表クライアント群に、ディスクに格納されているソフトウェアイメージを転送する。ソフトウェアイメージの配布はソフトウェアプログラムの優先度が高い順に行われる。管理者は所定のソフトウェアプログラムに対して、当該ソフトウェアプログラムに対応するソフトウェアイメージが配布されるべきグループに制限を設定することができる。
 グループ内に複数の代表クライアントがある場合には、配布処理部40Aは、優先度の高い順に、代表クライアントに対してユニキャスト通信を試みる。通信に成功した代表クライアントにソフトウェアイメージ、及び、他の代表クライアントを識別するための一覧情報を送信する。
 ソフトウェアイメージの配布を受けた代表クライアントは、一覧情報に基づいて、同一グループの他の代表クライアントに対してユニキャスト通信を行い、ソフトウェアイメージを転送する。
 そして、結果受付処理部40Bが、配布結果受付処理によって、ソフトウェアイメージを配布した代表クライアントからソフトウェアイメージの受信した旨の配布結果応答を確認すると、ソフトウェア配布状況テーブル12Fの状態の欄を「配布予定」から「配布済み」に変更する(802)。
 管理サーバから代表クライアントへのソフトウェアイメージの配布には、サーバ10が代表クライアント14へソフトウェアイメージを送信する第1の処理、代表クライアント14が管理サーバ10からソフトウェアイメージを受信する第2の処理、そして、代表クライアントが、同一グループの他の代表クライアントへソフトウェアイメージを送信する第3の処理と、がある。
 図9は第1の処理に対応するフローチャートであり、図10は第2の処理に対応するフローチャートであり、図11は第3の処理に対応するフローチャートである。
 図9のフローチャートを説明する。配布処理部は40A、ソフトウェア配布状況テーブル12Fを参照し、ソフトウェアイメージを配信すべき代表クライアントを特定する。
 そして、配布処理部40Aは、最も優先度が高い代表クライアントに対して、配布すべきソフトウェアイメージの取得状況を確認するためのリクエストを送信し、リクエストに対する応答結果を受信する(S900)。
 なお、リクエストに対する応答が無い場合には、リクエストの送信先代表クライアントへの通信は不可能として、優先度に従って、他の代表クライアントへリクエストを送信する。また、配布処理部40Aは、配布すべきソフトウェアプログラムに対応するソフトウェアイメージを、ソフトウェア配布状況テーブル12Fに基づいて選定する。
 次いで、結果受付処理部40Bは、リクエストを受けた代表クライアントからの応答結果に基づいて、代表クライアントがソフトウェアプログラムに対応したソフトウェアイメージを取得済みか否かの判定を行い(S902)、これを否定すると代表クライアントにソフトウェアイメージを送信する(S904)。S902を肯定するとS904をジャンプする。
 次いで、結果受付処理部40Bは、ソフトウェア配布状況テーブル12Fにおいて、ソフトウェアイメージを取得した代表クライアントの状態を「配布済み」に更新する(S906)。
 次いで、結果受付処理部40Bは、ソフトウェア配布状況テーブ12Fを参照して、ソフトウェアイメージを配布した代表クライアントと同一グループに属する他の代表クライアントを検索する(S908)。
 この検索は次のようにして行われる。結果受付部40Bは、ソフトウェア配布状況テーブル12Fから、以下の全てを満たすテーブルのエントリを選定する。
 * グループ名がソフトウェアイメージの送信を受けた代表クライアントに対応するグループ名と同一である。
 * ソフトウェア名がこの代表クライアントに配布したソフトウェアイメージに対応するソフトウェアプログラムの名前と同一である。
 * 状態が「配布予定」である。
 そして、配布処理部40Aは選定した一つ又は複数のエントリに属するクライアント名を、S904において、ソフトウェアイメージを送信した代表クライアントに送信する(S910)。
 次に、図10に基づいて、代表クライアント14が行う、サーバ104からのソフトウェアイメージの受信処理を説明する。クライアント14のソフトウェア受信処理部62Bは、サーバ10からソフトウェアイメージの取得状況を確認するためのリクエストを受信すると(S1000)、ディスク装置14B内のソフトウェアイメージのデータを参照して、ソフトウェアイメージを取得済みか否か判定する(S1002)。
 ソフトウェア受信処理部62Bがこの判定を否定すると、ソフトウェアイメージの未取得をサーバ10の結果受付処理部40Bに応答する(S10004)。
 次いで、ソフトウェア受信処理部62Bは、サーバ10からソフトウェアイメージを、通信インターフェース50を介して受信し、これをディスクインターフェース52からディスク14Bのソフトウェアイメージの記憶領域に保存する(S1006)。
 次いで、ソフトウェア受信処理部サーバ10からクライアント名の一覧を受信して、受信データをソフトウェア配布タスクテーブル72に登録する。
 ソフトウェア配布タスクテーブル72は、ソフトウェアイメージの送信を受けた代表クライアントが同一グループの他の代表クライアントにソフトウェアイメージを送信するためのタスクを管理するものである。
 図12にソフトウェア配布タスクテーブルの例を示す。ソフトウェア配布タスクテーブルには、タスクのエントリと、送信すべきソフトウェアイメージの対応元ソフトウェアプログラム名のエントリと、ソフトウェアプログラムに対応したソフトウェアイメージを送信すべき代表クライアントのエントリと、送信状態のエントリとが設けられている。
 なお、ソフトウェアプログラム名の代わりとしてソフトウェアイメージの識別子を用いても良い。ソフトウェア送信処理部64Aがクライアント名を送信タスク一覧テーブルに登録した最初の状態では、送信状態を「未完了」に設定する。なお、S1002が否定されると、処理はS1006にジャンプする。
 次に、図11に基づいて、サーバ10からソフトウェアイメージの配布を受けた代表クライアント14が、この代表クライアントと同一グループに属する他の代表クライアントに当該ソフトウェアイメージを分配するフローチャートについて説明する。
 このフローチャートの説明を分かりやすくするため、前者の代表クライアントを第1の代表クライアントと、後者の代表クライアントを第2の代表クライアントとして、便宜上両者を区別する。
 第1の代表クライアントのソフトウェア送信処理部64Aは、ソフトウェア配布タスクテーブル72を参照して、状態が「完了」でない第2の代表クライアントを選定し、通信インターフェース50及びLAN76を介して、選定された第2の代表クライアントに接続できるか否かを判定する(S1100)。
 この判定を肯定すると、当該第2の代表クライアントに対してソフトウェアイメージの取得状況を確認するリクエストを送信し、その返答を受け取る(S1102)。
 次いで、ソフトウェア送信処理部64Aは、返答に基づいて、第2の代表クライアントがソフトウェアイメージを、取得済みか否かを判定する(S1104)。
 この判定を否定すると、ソフトウェア送信処理部64Aは、ディスク装置14Bからソフトウェアイメージを読み出して、これを第2の代表クライアントに送信する(S1106)。
 次いで、ソフトウェア送信処理部64Aは、ソフトウェア配布タスクテーブル72から代表クライアント名称の一覧を読み出し、これを第2の代表クライアントに送信する(S1108)。
 第1の代表クライアントのソフトウェア送信処理部64Aは、ソフトウェア配布ステータステーブル72において、ソフトウェアイメージの送信先である第2の代表クライアントの「状態」を「送信済」に更新し(S1110)、第2の代表クライアントからソフトウェアイメージを受信した旨の応答を受けると、サーバ10に、第1の代表クライアントから第2の代表クライアントへソフトウェアイメージの送信が済んだことを報告する(S1112)。
 なお、サーバ10の配布状況画面表示処理部42は、第2の代表クライアントからの係る報告に基づいて、ソフトウェアイメージの送信状況テーブルを作成し、これを管理者に表示する。このテーブルの詳細は後述する。
 次いで、ソフトウェア送信処理部64Aは、ソフトウェア配布タスクテーブル72において、送信対象ソフトウェア名に対する第2の代表クライアントの「状態」のエントリを「完了」に更新する(S1114)。
 なお、ソフトウェア送信処理部64AがS1104を否定判定すると、ソフトウェア配布タスクテーブルの「状態」を「接続不可」に更新して処理を終了する。さらに、ソフトウェア送信処理部64Aが、S1104を肯定判定すると、S1110にジャンプする。
 次に、クライアントが代表クライアントからソフトウェアイメージを取得し、これをインストールする動作について説明する。
 クライアントのユーザが、あるソフトウェアプログラムを必要とした場合、当該クライアントは、自身と同じグループに属す代表クライアントの一覧をサーバから取得し、一覧中の代表クライアントへ順次アクセスする。
 クライアントは、代表クライアントの1つと通信でき、代表クライアントが所望のソフトウェアプログラムに対応するソフトウェアイメージを保持していれば、代表クライアントからこのソフトウェアイメージを受信する。全ての代表クライアントと通信できない、あるいは、全代表クライアントが所望のソフトウェアプログラムに対応するソフトウェアイメージを所有していなかった場合には、クライアントは管理サーバから所望のソフトウェアプログラムに対応したソフトウェアイメージを取得する。
 サーバが、ソフトウェアの優先度および冗長係数値を決定する上で、サーバからのダウンロードか代表クライアントからのダウンロードかを区別することが必要な場合、クライアントは、サーバに対し、ソフトウェアイメージの取得元の種類(管理サーバか、或いは、代表クライアントか)を報告する。そして、クライアントは、受信したソフトウェアイメージを用いて所望のソフトウェアプログラムをインストールする。
 サーバがソフトウェアプログラムの使用ライセンスを管理する場合、あるいは、ソフトウェアプログラムのインストール回数を、ソフトウェアプログラムの配布の管理のパラメタとして用いる場合、クライアントはサーバに対し、ソフトウェアプログラムをインストールしたことを報告する。
 なお、代表クライアントは要求元クライアントのようにソフトウェアプログラムをインストレールすることなく、ソフトウェアプログラムに対応したソフトウェアイメージをキャッシュ(一時コピー)の状態でメモリに保持する。一方、代表クライアントがソフトウェアプログラムを必要とする場合は、ソフトウェアイメージのキャッシュを用いてインストールを行えばよい。
 図13は代表クライアントのソフトウェア配布処理のフローチャートである。代表クライアントのソフトウェア送信処理部64Aは、クライアントから接続要求受けると(S1300)、クライアントから要求されたソフトウェアプログラムに対応したソフトウェアイメージを保持しているか否かを判定し(S1302)、これを肯定すると、要求されたソフトウェアプログラムに対応したソフトウェアイメージを保持していることを表す情報を要求元クライアントに送信し(S1304)、次いで、要求されたソフトウェアプログラムに対応するソフトウェアイメージを送信する(S1306)。
 S12002の判定を否定すると、代表クライアントは、要求元クライアントへ要求されたソフトウェアプログラムに対応するソフトウェアイメージを保持していないことを示す情報を送信する(S1308)。
 図14は、ソフトウェアの要求元クライアントのソフトウェアイメージの受信処理とインストール処理のフローチャートである。クライアント14のソフトウェア受信処理部62Bは、ユーザから、インストールしたいソフトウェアプログラム名の入力を受ける(S1400)。
 次いで、ソフトウェア受信部62Bは、サーバ10から、自身が所属するグループにおいて、S1400においてユーザが指定したソフトウェアプログラムに対応するソフトウェアイメージを保持する代表クライアントの一覧の情報を取得する(S1404)。一覧の情報を取得したソフトウェア受信部62Bは、一覧中の各代表クライアントに対して、後述の処理を行う。
 次いで、要求元クライアント14のソフトウェア受信処理部62Bは、代表クライアントにソフトウェアイメージの取得要求を送信する(S1406)。なお、当該要求で指定するのはソフトウェアプログラムの名前だが、ソフトウェアイメージの識別子を指定してもよい。
 要求元クライアント14は、代表クライアントからの応答に基づいて、代表クライアントが目的のソフトウェアプログラムに対応するソフトウェアイメージを保持しているか否かを判定する(S1407)。
 これを肯定すると、ソフトウェア受信処理部62Bは、代表クライアントのソフトウェア送信処理部64Aから目的のソフトウェアプログラムに対応するソフトウェアイメージを受信する(S1408)。
 次いで、要求元クライアント14は、サーバに、代表クライアントからソフトウェアプログラムに対応したソフトウェアイメージをダウンロードしたことを報告し(S1410)、次いで、後述するS1416を実行する(S1410)。
 S1407の判定が否定されると、要求元クライアント14は、他の代表クライアントにアクセスして(取得要求を送信)、ソフトウェアプログラムに対応したソフトウェアイメージの取得を試みる。ソフトウェアイメージの取得が成功すると(S1412:No)、取得できたソフトウェアイメージを用いてソフトウェアプログラムをインストールし(S1416)、その旨をサーバに送信する(S1418)。
 一方、要求元クライアントのソフトウェア受信処理部62Bがソフトウェアプログラムに対応するソフトウェアイメージを全ての代表クライアントから取得できないと判定すると(S1412:Yes)、サーバ10にアクセスし、サーバ10の配布処理部40Bからソフトウェアイメージ配布を受ける(S1414)。
 ソフトウェアイメージの配布を受けたクライアント14のインストール処理部62Cは、配布されたソフトウェアイメージを用いてソフトウェアプログラムをインストールし(S1416)、その旨をサーバに送信する(S1418)。
 次に、代表クライアントに複数のクライアントから同時にソフトウェアイメージの配布の要求があった場合における、代表クライアントの動作について説明する。
 あるグループ内のある代表クライアントが、ある時点において、同一のソフトウェアイメージの規定数以上の取得要求を同時に処理する場合、代表クライアント又はサーバは、要求を出したクライアントの1つを新たな代表クライアントとして設定し、送信処理を並列化する。代表クライアントの係る処理をフローチャートにしたがって用いて説明する。
 図15は代表クライアントの動作の概要を示すフローチャートである。代表クライアントが、ソフトウェアイメージの要求元クライアントから接続要求を受けると(S1500)、要求されたソフトウェアプログラムに対応するソフトウェアイメージを保持しているか否かを判定する(S1502)。
 この判定を肯定すると、代表クライアントのソフトウェア送信処理部64Aは、ソフトウェアプログラムに対応するソフトウェアイメージを保持していることを示す情報を要求元クライアントに送信する(S1504)。
 次いで、代表クライアントのソフトウェア送信処理部64Aは、ソフトウェアプログラムに対応するソフトウェアイメージを要求元クライアントに送信し、そして、新規の代表クライアントを作成する(S1506)。このステップの詳細は、後述の図16のフローチャートに示すとおりである。
 代表クライアントが要求されたソフトウェアプログラムに対応するソフトウェアイメージを保持していないと判定すると、その旨を示す情報を要求元クライアントに送信する(S1508)。
 図16のフローチャートに示すように、代表クライアントのソフトウェア送信処理部64Aはソフトウェアイメージを送信する対象クライアントをメモリ60の所定のワーク領域に格納する(S1600)。対象クライアントが複数存在する場合には、複数の対象クライアントがワーク領域に格納される。
 ソフトウェア送信処理部64Aは、ワーク領域を参照して、複数のクライアントが登録されていると、これを、ソフトウェアの並列送信が実行されている対象数、即ち、並列処理数とする(S1602)。
 ソフトウェア送信処理部64Aは、並列処理数と規定数とを比較し(S1604)、並列数が規定数以上であると判定すると、ディスク装置14Bのソフトウェア送信状況テーブル74に必要な情報を登録する。
 図17は、ソフトウェア送信状況テーブルの一例である。ソフトウェア送信状況テーブルは、ソフトウェアプログラム名のエントリと、ソフトウェアの送信先クライアント名のエントリと、新代表フラグのエントリと、中断フラグのエントリと、ソフトウェアプログラムに対応したソフトウェアイメージの受信元クライアント名のエントリとを有している。
 代表クライアントのソフトウェア送信処理部64Aはあるクライアントの中から新規の代表クライアントを選択し、ソフトウェア送信状況テーブル74において、当該クライアントを送信先クライアント名とするエントリに新代表フラグを立てる(S1605)。
なお、複数の送信先クライアントのうち少なくとも一つのクライアントに代表フラグが既に立っている場合には、この処理を実際には行わない。
 新代表クライアントの選び方として、バイト数が最も少ないソフトウェアプログラムに対応するソフトウェアイメージが送信される予定のクライアントを新代表クライアントとする方式がある。
 また、ソフトウェアイメージの配布を要求された代表クライアントが、中央サーバに照会し、ソフトウェアイメージの配布先クライアント群の中で最も優先度の高いクライアントを新代表クライアントとする。
 ソフトウェア送信処理部64Aが、並列処理数が規定数より小さいと判定し、又は、S1605の処理を終了すると、ソフトウェア送信状況テーブル74に、送信対象のクライアント名を追加する(S1606)。次いで、ソフトウェア送信処理部64Aは、ソフトウェアイメージの送信のための処理を実施する。この処理を、図18に基づいて詳しく説明する。なお、送信の処理は、ソフトウェアイメージを複数のブロックに分け、順次転送されることによって達成される。
 代表クライアントのソフトウェア送信処理部64Aは、ブロックを送信するためのパケットの種類を「ソフトウェア」とする(S1800)。次いで、パケットを送信対象であるクライアントに送る(S1802)。
 次いで、ソフトウェア送信処理部64Aは、ソフトウェア送信状態テーブルを検索し、送信対象のクライアントについて中断フラグを確認し(S1804)、中断フラグの有無を判定する(S1806)。
 中断フラグが立っていないと判定すると、ソフトウェアイメージ送信の完了を判定し(S1808)、未完了と判定するとS1800に戻る。完了と判定すると図16のS1610に移動する。
 S1806において、中断フラグが立っていると判定されると、代表クライアントのソフトウェア送信処理部64Aは、パケットの種類を「中断」とし(S1810)、送信先クライアントに当該パケットを送信し、さらに、当該パケットを送信したクライアントに、ソフトウェア送信状況テーブル74の受信元クライアント情報を送信して(S1812)、図16のS1610に移動する。
 図16のS1610において、代表クライアントのソフトウェア送信処理部64Aは、ソフトウェアイメージの送信が中断されたと判定すると、中断された対象のクライアント名のエントリをソフトウェア送信状況テーブルから削除する(S1612)。
 S1610が中断されないとの判定であると、代表クライアントのソフトウェア送信処理部64Aは、パケットの種類を「完了」にする(S1613)。
 次いで、代表クライアントのソフトウェア送信処理部64Aは、ソフトウェア送信状況テーブル74を参照して、送信対象クライントに新代表フラグが立っているか否かを判定する(S1614)。新代表フラグが立っていないと判定すると、送信対象クライアントに新代表ではないことを通知する(S1616)。新代表フラグが立っていることを判定すると、送信対象クライアントに新代表クライアントになることを通知する(S1618)。さらに、サーバに送信対象クライアントが新代表になったことを通知する(S1620)。
 次いで、ソフトウェア送信処理部64Aは、送信処理中のクライアントのうち半数あるいは指定された割合のものを選び、ソフトウェア送信状況テーブル74における、当該クライアントのエントリに中断フラグを立てる(S1622)。
 さらに、中継フラグを立てた送信先クライアントのエントリの受信元クライアントとして、新代表フラグを立てた新代表クライアントの名称を記録する(S1624)。
 サーバ又は新代表クライアントからソフトウェアイメージの配布を受けるクライアントの動作は、既述の図14に沿ったものになるが「ソフトウェアイメージを受信する」(S1408)が、図19のルーチンに置き換わる。
 すなわち、要求元クライアントのソフトウェア受信処理部62Bがパケットを取得すると、パケットの種類を確認する(S1900)。
 次いで、パケットの種類を判定する(S1902)。パケットの種類が「完了」の場合には、パケットのデータを確認して(S1904)、新代表フラグデータを立てるコマンドが存在するか否かを判定し(S1906)、この判定を肯定すると、代表クライアントから受信した、ソフトウェアイメージの全ブロックをディスク14Bの配布用ソフトウェアデータ格納領域に保存する(S1908)。
 一方、パケットの種類が「ソフトウェア」の場合は、受信したブロックをディスク14Bに保存する(S1912)。また、パケットの種類が「中断」の場合は、中断パケットを受信してソフトウェアイメージの配布が中断されたクライアントは、ソフトウェア送信状況テーブル74の受信元クライアントに、新代表としてアクセスし、当該受信元クライアントから、中断されたソフトウェアイメージの再送信を受ける(S1910)。
 次に、サーバによって、クライアント群に一旦配置したソフトウェアプログラムに対応するソフトウェアイメージのコピーを再配置する動作について説明する。なお、ソフトウェアイメージのコピーの定義については既に説明した通りである。
 サーバは、例えば、クライアントの増設又は減設を確認すると、又は、定期的に、ソフトウェアプログラムの優先度と必要な冗長係数値を計算し、最新の計算結果に対して、ソフトウェアイメージのコピーが偏って配置されていれば、クライアント群におけるソフトウェアイメージのコピーを再配置する。
 以下、サーバが行う、再配置の処理について説明する。サーバの再配置処理部34は、定期的に、以下の処理を実行する。
 (1)クライアントの増減を確認する。サーバは、当該サーバに接続するクライアントから、インベントリ情報を収集し、各グループ内でのクライアントの増減を確認する。増減を、前回の収集結果と最新の収集結果との差分に基づいて計算する。サーバは、インベントリ情報を収集する都度、最終更新日を記録し、管理者が指定した時間以上に亘って更新が無かったクライアントは減設されたと判定する。
 (2)クライアントが増減された場合、代表クライアントのリストをメンテナンスする。クライアントの減設が代表クライアントに及ぶと、ソフトウェア配布状況テーブル12F等の減設されたクライアントのエントリを削除する。
 (3)ソフトウェアプログラムの優先度、冗長係数、クライアントの優先度を、増設又は減設後のクライアント群について再計算を実行する。
 (4)クライアント群に対して、ソフトウェアプログラムに対応したソフトウェアイメージを再配置する。この再配置の処理方式には複数の形態がある。
 例えば、(A)計算し直した、ソフトウェア及び/又はクライアントの優先度に、クライアント群でのソフトウェアプログラムに対応したソフトウェアイメージの配置状況を合わせる方式、(B)現状のソフトウェアプログラムに対応したソフトウェアイメージの配布状況が、管理者が望む冗長性を満足していない、あるいは、管理者が望む冗長性を超過している場合に、対応するソフトウェアイメージの再配置を行う方式である。
 先ず、(A)の方式について説明する。管理サーバの再配置処理部34は、増設又は減設が生じたクライアント群について、新規の代表クライアントの一つ又は複数の候補を得る。再配置処理部34は、既存の代表クライアントと新規の代表クライアントとを比較し、代表から外れるクライアントと、新たに代表になるクライアントを判定する。
 再配置処理部34は、既存の代表クライアントの任意の1つに対し、新規に代表クライアントになるクライアントのアドレスを送ると共に、新代表クライアントへ既存代表クライアントからソフトウェアを送信する命令を与える。
 このソフトウェア送信命令を受けた代表クライアントのソフトウェア送信処理部64は、新規に代表となるクライアントのそれぞれへソフトウェアイメージを送信し、送信が完了するとサーバの再配置処理部34へこの送信が完了したことを報告する。サーバは、送信完了の報告を受けると、代表から外れるクライアントにソフトウェアイメージを削除するための命令を送る。
 次に(B)の方式について説明する。再配置処理部34は、現状の代表クライアントについて、クライアント情報テーブル12Cをして参照して、最新の平均稼働率を取得し、これらを積算する。
 この積算結果が修正後の冗長係数値と比較して、冗長係数値に対して不足している場合には、不足分を補うように、優先度順に新たなクライアントを新規の代表とする。
 さらに、再配置処理部34は、既存の代表クライアントの1つを選び、例えば、最もI/O負荷が小さいクライアントを選択して、このクライアントに、新規に代表クライアントにソフトウェアイメージを送信するための命令を送る。
 反対に冗長係数値を超えている場合には、既存の代表クライアントのうち最も優先度の低いものを、平均稼働率を積算する対象から順番に除いて、積算結果が修正後の冗長係数値を下回るまでこれを続ける。積算結果が冗長係数値を下回る直前まで除かれたクライアントを代表から除くべきものと判断して、当該クライアントにソフトウェアイメージを削除する命令を送る。
 次に、サーバの配布状況画面表示処理部42が管理者から画面表示の要求を受けると、ディスク12の更新後の各テーブル情報に基づいて、管理用表示情報を生成し、これを画面表示用クライアント28の管理画面に表示出力を行う。図20は管理画面の一例である。この管理画面は、次の各エントリを有している。
 グループ名は、ソフトウェア配布状況テーブル12Fのグループ名のカラムに対応する。グループ毎の{総ディスク容量、総空きディスク容量}は、クライアント情報テーブル12Cのディスク総容量カラム、ディスク空き容量カラムに対応する。
 グループ毎の配布したソフトウェアイメージの総容量は、ソフトウェア配布状況テーブル12Fとソフトウェア一覧テーブル12Bとをソフトウェアプログラム名について関連させ、ソフトウェア配布状況テーブル12Fの状態カラムが「配布済み」であるエントリの「サイズ」をグループ毎にまとめた値である。
 ソフトウェア名は、ソフトウェア配布状況テーブル12Fのソフトウェア名のカラムに対応する。グループ毎、ソフトウェア毎の「代表クライアント数、代表クライアントの名前」は、ソフトウェア配布状況テーブル12Fの、クライアント名のカラムに対応する。
グループ毎、ソフトウェアプログラム毎の、ソフトウェアプログラムの冗長係数値は、ソフトウェア配布優先度と冗長係数値テーブル12Eの、冗長係数値カラムの値に対応する。
 グループ毎、ソフトウェアプログラム毎の、全代表クライアントの合計平均稼動率の履歴は、ソフトウェア配布状況テーブル12Fとクライアント情報テーブル12Bとを、クライアント名について結合し、ソフトウェア配布状況テーブル12Fの状態カラムが「配布済み」であるエントリについて、日付毎の平均稼働率を、グループ毎かつソフトウェアプログラム毎にまとめた値に対応する。
 既述の実施形態の変形例として、次のものがある。サーバからの指示で、クライアントが自身を代表クライアントであるか否かを判断し、代表クライアントの場合には、ソフトウェアがキャッシュされる領域の情報(アドレス、容量など)をサーバに送信する。サーバはクライアントからの情報に応じてソフトウェアを当該クライアントに配布する。
 既述の実施形態では、サーバから代表クライアントへのプッシュ型の配布例について説明したが、ソフトウェアプログラムを代表クライアントへ配布する方式は、代表クライアントからの要求に基づくプル型であることを妨げるものではない。
 また、以上の実施形態では、プル型のクライアント(又は代表クライアント)が代表クライアント又はサーバに対するソフトウェアイメージの取得を要求する場合は、当該要求にてソフトウェアプログラム名を指定する(代表クライアント同士や代表クライアントとサーバ間も同様であってもよい)。
 これにより代表クライアント又はサーバから指定されたソフトウェアプログラム名に対応するソフトウェアイメージを代表クライアント又はサーバから受信する。また、ソフトウェアイメージの配布管理については一つのソフトウェアプログラムのインストールのために複数のソフトウェアイメージが存在する場合があるため、ソフトウェアプログラムとして配布管理(必要な情報の格納又は/及び処理の実施)を行うことを中心に開示した。
 しかし、取得時に指定するソフトウェアプログラム名の代わりにソフトウェアイメージの識別子を用いてもよい。また、ソフトウェアイメージの配布管理としてソフトウェアプログラムとしてではなく、ソフトウェアイメージとして配布管理を行ってもよい。
 本発明の計算機システムは、管理サーバがソフトウェアイメージを備え、ソフトウェアイメージを必要とするクライアントの要求に基づいて、当該ソフトウェアイメージをクライアントに配布するシステムに組み込むことができる。
10・・・ソフトウェア配布用管理サーバ
12・・・サーバのディスク装置
14・・・クライアント
14A・・代表クライアント
14B・・クライアントのディスク装置
28・・・画面表示用クライアント

Claims (14)

  1.  計算機システムにおけるソフトウェアプログラムに対応するソフトウェアイメージの配布管理方法であって、
     前記計算機システムは、
      複数のクライアント計算機と、
      前記複数のクライアント計算機の一つ又は複数に配布するソフトウェアイメージを含むサーバと、
      前記サーバ計算機と前記複数のクライアント計算機とを接続するネットワークと、
    を備え、
     前記サーバ計算機は、
     前記複数のクライアント計算機からの情報に基づいて、前記複数のクライアント計算機を複数のグループに分類する第1のステップと、
     各グループについて代表クライアント計算機を選定するステップと、
     前記代表クライアント計算機へ前記ソフトウェアプログラムに対応するソフトウェアイメージを配布するステップと、
     を実行し、
     前記ソフトウェアイメージの配布を受けた前記代表クライアント計算機は、同一グループに属する他のクライアント計算機からの要求に基づいて前記ソフトウェアイメージを当該他のクライアント計算機に配布する、
     計算機システムにおけるソフトウェアイメージの配布管理方法。
  2.  前記サーバ計算機は、
     前記ソフトウェアイメージを複数含み、
     当該複数のソフトウェアプログラム又はソフトウェアイメージの属性に基づいて夫々の優先度を決定し、
     当該優先度に基づく優先順位にしたがって前記代表クライアント計算機へ前記複数のソフトウェアイメージを配布する、
     請求項1記載の計算機システムにおけるソフトウェアイメージの配布管理方法。
  3.  前記サーバ計算機は、
     前記複数のクライアント計算機のリソース情報に基づいて夫々の優先度を決定し、
     前記優先度に基づく優先順位にしたがって前記代表クライアント計算機へ前記ソフトウェアイメージを配布する、
     請求項2記載の計算機システムにおけるソフトウェアイメージの配布管理方法。
  4.  前記サーバ計算機は、
     前記複数のグループの少なくとも一つに、前記ソフトウェアイメージを存在させる割合に関する目標値を設定し、
     前記複数のクライアント計算機から収集したリソース情報に基づいて、前記複数のクライアント計算機夫々の稼働状況を判定し、
     前記目標値が設定されたグループに属する複数のクライアント計算機の中から、前記クライアント計算機の優先度にしたがって、一つのクライアント計算機を順番に選択し、
     選択したクライアント計算機の前記稼働状況情報の合算値が前記目標値に到達するまで前記クライアント計算機の選択を継続し、
     前記選択された一つ又は複数のクライアント計算機を前記代表クライアント計算機として設定する、
     請求項3記載の計算機システムにおけるソフトウェアイメージの配布管理方法。
  5.  前記サーバ計算機は、前記ソフトウェアプログラムの優先度が高いほど前記目標値を高く設定する、請求項4記載の計算機システムにおけるソフトウェアイメージの配布管理方法。
  6.  前記サーバ計算機は、
     同一グループに複数の前記代表クライアント計算機を設定し、
     前記複数の代表クライアント計算機の一つに前記優先度順にアクセスして、一つの代表クライアント計算機に前記ソフトウェアイメージを配布し、
     前記ソフトウェアイメージの配布を受けた代表クライアント計算機は、他の代表クライアント計算機に当該ソフトウェアイメージを配布する、
     請求項3記載の計算機システムにおけるソフトウェアイメージの配布管理方法。
  7.  前記代表クライアント計算機が、同一のソフトウェアイメージの配布要求を前記複数のクライアント計算機から受信すると、
     前記サーバ計算機は、
     前記複数のクライアント計算機の少なくとも一つを新代表クライアント計算機に設定し、
     前記新代表クライアント計算機から、前記複数のクライアント計算機のうち前記新代表クライアント計算機以外のクライアント計算機に前記ソフトウェアイメージを配布する、
     請求項3記載の計算機システムにおけるソフトウェアイメージの配布管理方法。
  8.  前記サーバ計算機は、前記複数のクライアント計算機のうち、前記優先度が高いクライアント計算機を前記新代表クライアント計算機に設定する、
     請求項7記載の計算機システムにおけるソフトウェアイメージの配布管理方法。
  9.  前記代表クライアント計算機は、前記新代表以外の前記複数のクライアント計算機への前記ソフトウェアイメージの配布を中断し、
     前記新代表クライアント計算機は、前記ソフトウェアイメージの配布が中断されたクライアント計算機に対して前記ソフトウェアイメージの配布を実行する、
     請求項7記載の計算機システムにおけるソフトウェアイメージの配布管理方法。
  10.  前記サーバ計算機は、
     前記ソフトウェアイメージを前記代表クライアント計算機に配布した後、当該代表クライアント計算機に変更を設定し、
     変更後の代表クライアント計算機に対して前記ソフトウェアイメージの配布を再配置する、
     請求項1記載の計算機システムにおけるソフトウェアイメージの配布管理方法。
  11.  前記サーバ計算機は、
     前記クライアント計算機の増設及び/又は減設を判定し、
     当該判定に基づいて前記変更を設定し、
     前記変更の設定に基づく新たな代表クライアント計算機は、前記変更の設定の前の代表クライアント計算機から前記ソフトウェアイメージの配布を受け、
     前記変更の設定に基づいて、前記代表クライアント計算機から除かれたクライアント計算機は、前記配布されたソフトウェアイメージを削除する、
     請求項11記載の計算機システムにおけるソフトウェアイメージの配布管理方法。
  12.  複数のクライアント計算機と、
     前記複数のクライアント計算機の一つ又は複数に配布するソフトウェアイメージを含むサーバ計算機と、
     前記サーバ計算機と前記複数のクライアント計算機とを接続するネットワークと、
    を備える計算機システムであって、
     前記サーバ計算機は、
     前記複数のクライアント計算機とのインターフェースと、
     前記ソフトウェアイメージの配布管理プログラムを含む第1のメモリと、
     前記ソフトウェアと前記ソフトウェアイメージの配布管理情報を含む第2のメモリと、
     前記配布管理プログラムと前記配布管理情報とに基づいて、前記ソフトウェアイメージの配布管理処理を実行するCPUと、
     を備え、
     前記CPUは、前記複数のクライアント計算機からの情報に基づいて、前記複数のクライアント計算機を複数のグループに分類し、各グループについて代表クライアント計算機を選定し、前記代表クライアント計算機へ前記ソフトウェアイメージを配布し、
     前記ソフトウェアイメージの配布を受けた前記代表クライアント計算機は、前記ソフトウェアイメージを当該他のクライアント計算機に配布し、
     前記CPUは、前記第2のメモリの前記ソフトウェアイメージの配布管理情報に基づいて、管理用表示情報を生成し、当該管理用表示情報を管理画面に出力する、
    計算機システム。
  13.  前記第2のメモリは、前記ソフトウェアイメージを複数含み、
     前記CPUは、
     当該複数のソフトウェアイメージの属性に基づいて夫々の優先度と前記複数のクライアント計算機のリソース情報に基づいて夫々の優先度とを夫々決定し、
     当該決定された優先度に基づく優先順位にしたがって前記代表クライアント計算機へ前記複数のソフトウェアイメージを配布し、
     前記複数のグループの少なくとも一つに、前記ソフトウェアイメージを存在させる割合に関する目標値を設定し、
     前記複数のクライアント計算機から収集したリソース情報に基づいて、前記複数のクライアント計算機夫々の稼働状況を判定し、
     前記目標値が設定されたグループに属する複数のクライアント計算機の中から、前記クライアント計算機の優先度にしたがって、一つのクライアント計算機を順番に選択し、
     選択したクライアント計算機の前記稼働状況情報の合算値が前記目標値に到達するまで前記クライアント計算機の選択を継続し、
     前記選択された一つ又は複数のクライアント計算機を前記代表クライアント計算機として設定し、
     同一グループに複数の前記代表クライアント計算機を設定し、
     前記複数の代表クライアント計算機の一つに前記優先度順にアクセスして、一つの代表クライアント計算機に前記ソフトウェアイメージを配布し、
     前記ソフトウェアイメージの配布を受けた代表クライアント計算機に、他の代表クライアント計算機に当該ソフトウェアイメージを配布させ、
     前記代表クライアント計算機が同一のソフトウェアイメージの配布要求を前記複数のクライアント計算機から受信すると、前記複数のクライアント計算機の少なくとも一つを新代表クライアント計算機に設定し、
     前記新代表クライアント計算機に、前記複数のクライアント計算機のうち前記新代表クライアント計算機以外のクライアント計算機に前記ソフトウェアイメージを配布させ、
     前記代表クライアント計算機は、前記新代表以外の前記複数のクライアント計算機への前記ソフトウェアイメージの配布を中断し、
     前記新代表クライアント計算機は、前記ソフトウェアの配布が中断されたクライアント計算機に対して前記ソフトウェアイメージの配布を実行し、
     前記CPUは、
     前記クライアント計算機の増設及び/又は減設を判定すると、前記ソフトウェアイメージを前記代表クライアント計算機に配布した後、当該代表クライアント計算機に変更を設定し、前記変更の設定に基づく新たな代表クライアント計算機に、前記変更の設定の前の代表クライアント計算機から前記ソフトウェアイメージの配布を受けさせ、
     前記変更の設定に基づいて、前記代表クライアント計算機から除かれたクライアント計算機に、前記配布されたソフトウェアイメージを削除させる、
     請求項12記載のソフトウェアイメージの配布管理のための計算機システム。
  14.  サーバ計算機と、第1のクライアント計算機と、に接続された第2のクライアント計算機が読み取り可能な記憶媒体であって、
     前記記憶媒体は、
     前記第2のクライアント計算機に、前記サーバから代表クライアントを特定する情報を受信させ、前記代表クライアントを特定する情報に基いて、前記第1のクライアント計算機と前記第2のクライアント計算機とから代表クライアント計算機を特定させる、代表クライアント特定プログラムコードと、
     前記代表クライアント計算機が前記第2のクライアント計算機の場合は、前記第2のクライアント計算機に、以下の(A1)乃至(A3)を実行させるソフトウェア配布プログラムコードと、
     (A1)前記サーバ計算機からソフトウェアプログラムのソフトウェアイメージを受信して前記第2のクライアント計算機のメモリ又はディスクに格納させ、
     (A2)前記ソフトウェア取得要求を受信し、前記ソフトウェア取得要求によって指定されたソフトウェアプログラムに対応するソフトウェアイメージを、前記第2のクライアント計算機のメモリ又はディスクに格納しているか確認させ、
     (A3)前記(A2)の確認の結果、前記指定されたソフトウェアプログラムのソフトウェアイメージを格納している場合は、前記指定されたソフトウェアプログラムに対応するソフトウェアイメージを送信させ、
     前記代表クライアント計算機が前記第1のクライアント計算機の場合は、前記第2のクライアント計算機に、以下の(B1)乃至(B4)を実行させるソフトウェアインストールプログラムコードと、
     (B1)インストール対象の所定のソフトウェアプログラムを指定したインストール入力を受信させ、
     (B2)前記所定のソフトウェアプログラムを指定したソフトウェア取得要求を、前記代表クライアント計算機又は前記サーバに送信させ、
     (B3)前記ソフトウェア取得要求に応じた所定のソフトウェアプログラムに対応する所定のソフトウェアイメージを受信させ、
     (B4)前記所定のソフトウェアイメージを用いて前記所定のソフトウェアプログラムをインストールさせ、
     前記第2のクライアント計算機に、前記代表クライアント計算機の識別子を表示させる、代表クライアント表示プログラムコードと、
     を格納することを特徴とした記憶媒体。
PCT/JP2010/003077 2010-04-28 2010-04-28 計算機システムにおけるソフトウェアの配布管理方法、及び、ソフトウェアの配布管理のための計算機システム WO2011135629A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
PCT/JP2010/003077 WO2011135629A1 (ja) 2010-04-28 2010-04-28 計算機システムにおけるソフトウェアの配布管理方法、及び、ソフトウェアの配布管理のための計算機システム
JP2012512540A JPWO2011135629A1 (ja) 2010-04-28 2010-04-28 計算機システムにおけるソフトウェアの配布管理方法、及び、ソフトウェアの配布管理のための計算機システム
US12/864,184 US20110271275A1 (en) 2010-04-28 2010-04-28 Software distribution management method of computer system and computer system for software distribution management

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2010/003077 WO2011135629A1 (ja) 2010-04-28 2010-04-28 計算機システムにおけるソフトウェアの配布管理方法、及び、ソフトウェアの配布管理のための計算機システム

Publications (1)

Publication Number Publication Date
WO2011135629A1 true WO2011135629A1 (ja) 2011-11-03

Family

ID=44859360

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2010/003077 WO2011135629A1 (ja) 2010-04-28 2010-04-28 計算機システムにおけるソフトウェアの配布管理方法、及び、ソフトウェアの配布管理のための計算機システム

Country Status (3)

Country Link
US (1) US20110271275A1 (ja)
JP (1) JPWO2011135629A1 (ja)
WO (1) WO2011135629A1 (ja)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016132454A1 (ja) * 2015-02-17 2016-08-25 富士通株式会社 アプリケーション配信方法、アプリケーション配信プログラム、およびサーバ
JP2017021566A (ja) * 2015-07-10 2017-01-26 日本電気株式会社 ネットワーク管理装置、通信装置、プログラム更新システムおよびプログラム更新方法
WO2017209049A1 (ja) * 2016-06-02 2017-12-07 住友電気工業株式会社 プログラム配信システム、サーバ、プログラム配信方法、およびコンピュータプログラム
WO2018142751A1 (ja) * 2017-02-01 2018-08-09 住友電気工業株式会社 制御装置、プログラム更新方法、およびコンピュータプログラム
US10229207B2 (en) 2012-10-11 2019-03-12 Thomson Licensing Solution for distributed application life-cycle management
JP2021043545A (ja) * 2019-09-06 2021-03-18 キヤノン株式会社 管理システムおよびその制御方法、並びにプログラム
US11144295B2 (en) 2016-03-02 2021-10-12 Sumitomo Electric Industries, Ltd. Program updating system, program updating method, and computer program
JP2022551560A (ja) * 2019-10-09 2022-12-12 トヨタ モーター ノース アメリカ,インコーポレイティド 輸送装置ソフトウェアアップデートの管理
US11755314B2 (en) 2019-10-09 2023-09-12 Toyota Motor North America, Inc. Management of transport software updates
JP7389949B2 (ja) 2019-09-20 2023-12-01 章弘 長谷川 ファイル配布システム、及びファイル配布プログラム
US11868764B2 (en) 2019-10-09 2024-01-09 Toyota Motor North America, Inc. Management of transport software updates
US11868757B2 (en) 2019-10-09 2024-01-09 Toyota Motor North America, Inc. Management of transport software updates

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2452325A (en) * 2007-08-31 2009-03-04 Sony Corp Method and system for distributing software to a portable device using software on a pre-recorded medium.
JP5449044B2 (ja) * 2010-06-10 2014-03-19 シャープ株式会社 サーバ装置、端末装置およびアプリケーション制御システム
US8762521B2 (en) * 2011-03-14 2014-06-24 1E Limited Monitoring the distribution of software
CN102521031B (zh) * 2011-12-13 2014-11-05 华为终端有限公司 移动终端预置应用程序的管理方法和移动终端
JP2013238949A (ja) * 2012-05-14 2013-11-28 Ricoh Co Ltd 情報配信装置、及び情報配信システム並びにプログラム
US20130332522A1 (en) * 2012-06-08 2013-12-12 Microsoft Corporation Fast channel for system management
US9432452B2 (en) * 2012-09-10 2016-08-30 Joosy, Inc. Systems and methods for dynamic networked peer-to-peer content distribution
US9411571B2 (en) * 2013-02-28 2016-08-09 Adobe Systems Incorporated Method and apparatus for deploying software as a service
JP2014216943A (ja) * 2013-04-26 2014-11-17 株式会社東芝 電子機器、方法、及びプログラム
US9696982B1 (en) * 2013-11-05 2017-07-04 Amazon Technologies, Inc. Safe host deployment for a heterogeneous host fleet
JP6365070B2 (ja) * 2014-07-28 2018-08-01 富士通株式会社 検索プログラム、装置、及び方法
US9395969B2 (en) * 2014-09-23 2016-07-19 International Business Machines Corporation Complex computer environment installation
US10200416B2 (en) * 2015-02-24 2019-02-05 Vizio Inc Global setting for casting content to networked renderer
WO2018103033A1 (en) * 2016-12-08 2018-06-14 Hewlett Packard Enterprise Development Lp Software classification
CN110896404B (zh) * 2018-09-12 2021-09-14 华为技术有限公司 数据处理的方法、装置和计算节点
US11221837B2 (en) 2019-04-11 2022-01-11 Microsoft Technology Licensing, Llc Creating and deploying packages to devices in a fleet based on operations derived from a machine learning model
US11029936B2 (en) * 2019-04-11 2021-06-08 Microsoft Technology Licensing, Llc Deploying packages to devices in a fleet in stages

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002124945A (ja) * 2000-10-12 2002-04-26 Ntt Comware Corp ファイル多重配信方法及びシステム装置
JP2006172305A (ja) * 2004-12-17 2006-06-29 Nec Corp 無線基地局装置及びプログラムダウンロード方法並びにそのプログラム
JP2009271904A (ja) * 2008-04-10 2009-11-19 Hitachi Ltd 配布管理方法、配布管理システム、および配布管理サーバ
JP2010032976A (ja) * 2008-07-31 2010-02-12 Daiichikosho Co Ltd 通信カラオケシステム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8898256B2 (en) * 2004-07-13 2014-11-25 International Business Machines Corporation Prioritization of application component distribution
US7770168B1 (en) * 2005-05-25 2010-08-03 Landesk Software Limited Systems and methods for distributing software using nodes within a network group
WO2009007967A2 (en) * 2007-07-09 2009-01-15 Nolio Ltd. System and method for application process automation over a computer network
US8201164B2 (en) * 2007-07-20 2012-06-12 Microsoft Corporation Dynamically regulating content downloads
US9665729B2 (en) * 2009-04-13 2017-05-30 Microsoft Technology Licensing, Llc Revocation of application on mobile device

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002124945A (ja) * 2000-10-12 2002-04-26 Ntt Comware Corp ファイル多重配信方法及びシステム装置
JP2006172305A (ja) * 2004-12-17 2006-06-29 Nec Corp 無線基地局装置及びプログラムダウンロード方法並びにそのプログラム
JP2009271904A (ja) * 2008-04-10 2009-11-19 Hitachi Ltd 配布管理方法、配布管理システム、および配布管理サーバ
JP2010032976A (ja) * 2008-07-31 2010-02-12 Daiichikosho Co Ltd 通信カラオケシステム

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10229207B2 (en) 2012-10-11 2019-03-12 Thomson Licensing Solution for distributed application life-cycle management
JPWO2016132454A1 (ja) * 2015-02-17 2018-01-18 富士通株式会社 アプリケーション配信方法、アプリケーション配信プログラム、およびサーバ
WO2016132454A1 (ja) * 2015-02-17 2016-08-25 富士通株式会社 アプリケーション配信方法、アプリケーション配信プログラム、およびサーバ
JP2017021566A (ja) * 2015-07-10 2017-01-26 日本電気株式会社 ネットワーク管理装置、通信装置、プログラム更新システムおよびプログラム更新方法
US11144295B2 (en) 2016-03-02 2021-10-12 Sumitomo Electric Industries, Ltd. Program updating system, program updating method, and computer program
WO2017209049A1 (ja) * 2016-06-02 2017-12-07 住友電気工業株式会社 プログラム配信システム、サーバ、プログラム配信方法、およびコンピュータプログラム
WO2018142751A1 (ja) * 2017-02-01 2018-08-09 住友電気工業株式会社 制御装置、プログラム更新方法、およびコンピュータプログラム
JPWO2018142751A1 (ja) * 2017-02-01 2019-02-07 住友電気工業株式会社 制御装置、プログラム更新方法、およびコンピュータプログラム
US10705826B2 (en) 2017-02-01 2020-07-07 Sumitomo Electric Industries, Ltd. Control apparatus, program updating method, and computer program
JP2021043545A (ja) * 2019-09-06 2021-03-18 キヤノン株式会社 管理システムおよびその制御方法、並びにプログラム
JP7374675B2 (ja) 2019-09-06 2023-11-07 キヤノン株式会社 管理システムおよびその制御方法、並びにプログラム
JP7389949B2 (ja) 2019-09-20 2023-12-01 章弘 長谷川 ファイル配布システム、及びファイル配布プログラム
JP2022551560A (ja) * 2019-10-09 2022-12-12 トヨタ モーター ノース アメリカ,インコーポレイティド 輸送装置ソフトウェアアップデートの管理
US11755314B2 (en) 2019-10-09 2023-09-12 Toyota Motor North America, Inc. Management of transport software updates
JP7376695B2 (ja) 2019-10-09 2023-11-08 トヨタ モーター ノース アメリカ,インコーポレイティド 輸送装置ソフトウェアアップデートの管理
US11868764B2 (en) 2019-10-09 2024-01-09 Toyota Motor North America, Inc. Management of transport software updates
US11868757B2 (en) 2019-10-09 2024-01-09 Toyota Motor North America, Inc. Management of transport software updates

Also Published As

Publication number Publication date
JPWO2011135629A1 (ja) 2013-07-18
US20110271275A1 (en) 2011-11-03

Similar Documents

Publication Publication Date Title
WO2011135629A1 (ja) 計算機システムにおけるソフトウェアの配布管理方法、及び、ソフトウェアの配布管理のための計算機システム
JP4265245B2 (ja) 計算機システム
US11082512B2 (en) Routing and filtering event notifications
US8346843B2 (en) System and method for scalable data distribution
JP4621273B2 (ja) データ同期方法、データ同期プログラム、データベースサーバ装置、および、データベースシステム
CN102170396B (zh) 一种基于区分服务的云存储系统QoS控制方法
US8819080B2 (en) System and method for collection, retrieval, and distribution of data
US20140237071A1 (en) Caching in Mobile Networks
US8661055B2 (en) File server system and storage control method
US9361474B2 (en) Network filesystem asynchronous I/O scheduling
KR20120072907A (ko) 오브젝트를 복수 개의 데이터 노드들의 위치에 기반하여 분산 저장하는 분산 저장 시스템 및 그 위치 기반 분산 저장 방법 및 컴퓨터에 의하여 독출 가능한 저장 매체
US8086629B2 (en) Content delivery apparatus, content delivery method, and content delivery program
JP2014044677A (ja) 送信制御プログラム、通信ノード、および送信制御方法
EP2203840A2 (en) Exchange of syncronization data and metadata
US20160234129A1 (en) Communication system, queue management server, and communication method
JP2004199578A (ja) コンテンツ配信方法及び装置並びにプログラム及び記録媒体
JP6011786B2 (ja) 分散ストレージシステム、分散ストレージデータ配置制御方法及び分散ストレージデータ配置制御用プログラム
JP3672483B2 (ja) コンテンツ配信装置、コンテンツ配信方法、コンテンツ配信プログラムを記録した記録媒体
WO2013065151A1 (ja) 計算機システム、データ転送方法、および、データ転送プログラム
CN114124971B (zh) 一种基于边缘缓存的cdn-p2p网络的内容副本放置方法
JP4064162B2 (ja) ファイル蓄積装置および方法
JP6617087B2 (ja) 分散処理システム、分散処理方法および分散処理プログラム
JP2021170289A (ja) 情報処理システム、情報処理装置およびプログラム
JP4483633B2 (ja) ハードウェアリソースの状態を管理するための情報処理装置、方法及びプログラム

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 12864184

Country of ref document: US

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

Ref document number: 10850650

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2012512540

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 10850650

Country of ref document: EP

Kind code of ref document: A1