WO2016088237A1 - 配信方法、装置、及びプログラム - Google Patents
配信方法、装置、及びプログラム Download PDFInfo
- Publication number
- WO2016088237A1 WO2016088237A1 PCT/JP2014/082174 JP2014082174W WO2016088237A1 WO 2016088237 A1 WO2016088237 A1 WO 2016088237A1 JP 2014082174 W JP2014082174 W JP 2014082174W WO 2016088237 A1 WO2016088237 A1 WO 2016088237A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- file group
- distribution
- file
- application
- distributed
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
- G06F16/972—Access to data in other repository systems, e.g. legacy data or dynamic Web page generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/62—Establishing a time schedule for servicing the requests
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
Definitions
- the disclosed technology relates to a distribution method, a distribution device, and a distribution program.
- WEB applications are mainstream as applications that run on multiple platforms.
- a specification called a packaged web application in which a plurality of files necessary for the operation of the application are collected into one package is used.
- the client terminal that executes the packaged web application must first download the package. For this reason, if a download request is made simultaneously from a plurality of client terminals, the communication band is compressed, it takes time to download the package to each client terminal, and the application may not be executed immediately when the user wants to use it.
- the package is divided into a plurality of file groups and distributed sequentially to reduce the amount of data distributed at one time. Conceivable. In this case, a file group that has not yet been distributed may be required at the client terminal, and a wasteful waiting time may be required until the necessary file group is distributed.
- a data processing system for generating file reference information in which a reference to each data in a file by a program is recorded has been proposed.
- data to be referred to at each stage of program execution is collected from the file, and data group information relating to reference to each data group of the data group and file is created.
- data group information relating to reference to each data group of the data group and file is created.
- a file is created based on the received data group information and data group, and is referenced at each stage of program execution.
- the waiting time in the client terminal may be reduced.
- the required file order differs for each client terminal that executes the application, it may not be appropriate to determine the distribution order of the file group by referring to the predetermined data group information as in the prior art. is there.
- the file group is not prefetched and the file request from the client terminal is It will occur frequently. In such a case, there is a problem that the waiting time until a necessary file is distributed becomes long in the client terminal.
- the disclosed technology aims to reduce waiting time at a client terminal when an application is divided and distributed, as one aspect.
- the disclosed technology delivers a plurality of file groups obtained by dividing an application by a predetermined number of divisions to a terminal. At that time, the next distribution is performed based on the transition status of the file group determined in advance based on the usage order of each of the plurality of file groups when the application is executed, and the usage status of the file group in the terminal. Determine the file group. Then, the determined file group is distributed to the terminal.
- the disclosed technology has, as one aspect, the effect that the waiting time at the client terminal can be reduced when the application is divided and distributed.
- a distribution device that divides a packaged web application into a plurality of file groups for distribution will be described.
- a packaged web application combined into one package is also simply referred to as an “application”.
- the distribution system 10 includes a distribution device 20 and a plurality of client terminals 40.
- the distribution device 20 and each of the plurality of client terminals 40 are connected to each other via the network 15.
- FIG. 2 shows a functional block diagram of each of the distribution device 20 and the client terminal 40.
- the distribution device 20 includes a registration unit 21, a request reception unit 22, a determination unit 23 including a division number determination unit 24 and a management unit 25, a distribution unit 26, and an update unit 27.
- the distribution device 20 includes a storage unit 30.
- the storage unit 30 includes an application holding unit 31 and stores a file group table 32, a file group transition table 33, a division number table 34, a management information table 35, and an access log table 36.
- the client terminal 40 for example, a personal computer, a tablet terminal, a smartphone, or the like can be used. As illustrated in FIG. 2, the client terminal 40 includes a request unit 41, an execution unit 42, and an acquisition unit 43. The client terminal 40 includes a storage unit 50. The storage unit 50 includes a file holding unit 52 and stores an access log 51.
- each functional unit of the distribution apparatus 20 will be described, and a table used by each functional unit will be described together.
- the registration unit 21 accepts an application to be newly registered.
- the application received here is a packaged web application, and a plurality of files necessary for executing the application are collected into one package.
- the package also includes application identification information (application ID).
- the registration unit 21 stores the received application in the application holding unit 31.
- the registration unit 21 converts each of a plurality of files included in the received application into a predetermined number of divisions (conceptually shown in FIG. 3 based on the structure of each file and the link structure between files, as shown in FIG.
- the file group is divided into details (described later).
- the example of FIG. 3 divides the application into four file groups, file groups A, B, C, and D, of which files “index.html”, “main.js”, and “style” .css ”is included.
- the predetermined number of divisions is four is shown, but a plurality of types (for example, 1, 2, 3, 4, etc.) are set in advance as the predetermined number of divisions. Can do. Therefore, when the file is divided into one file group (no division), when the two file groups are divided, the application is divided for each kind of the set division number as follows.
- the registration unit 21 registers, in a file group table 32 as shown in FIG. 4, for example, which of the divided file groups each file included in the application is included in.
- the file group table 32 shown in FIG. 4 includes information of “application ID”, “number of divisions”, “file name”, “file path”, and “file group” for each file.
- Application ID is an application ID of an application including a file corresponding to each row.
- the “number of divisions” is the type of application division number (eg, 1, 2, 3, 4, etc.).
- the “file path” is information indicating the position in the application holding unit 31 of the file identified by “file name”.
- the “file group” is a file identified by the file name in the “file name” column when the application indicated by the application ID in the “application ID” column is divided by the division number in the “number of divisions” column. It is information indicating whether it is included in a group.
- the registration unit 21 analyzes the transition state of the file group based on the structure of each file included in the received application and the link structure between files.
- the transition state represents the order in which each of the plurality of file groups is required (used) and the required scheduled time when the application is executed on the client terminal 40. For example, if it is determined that the file group A includes a file required immediately after the start of the application based on the file structure of each file, the file group A is analyzed as a transition from the start. In addition, when a link from a file included in the file group A to a file included in the file group B is extended, the file group A is analyzed to transition to the file group B.
- a transition graph as shown in FIG. 5 is obtained as a result of analysis of the transition status of the file group.
- the necessary file group is shown in Maru, and the file group that has transitioned so far is shown in the square.
- the underlined file group indicates that the file group has just transitioned.
- the number of seconds indicated in the arrow in FIG. 5 represents the time until the transition from the transition source file group to the transition destination file group, that is, the time until the next file group becomes necessary.
- the scheduled time is given, for example, a value according to the contents of each file, the amount of data, a random value, a predetermined constant value, or the like.
- the registration unit 21 registers, for example, the analysis result of the transition state represented by the transition graph shown in FIG. 5 in the file group transition table 33 as shown in FIG.
- Each row of the file group transition table 33 shown in FIG. 6 indicates one transition state.
- a transition pattern from one transition source file group to another transition destination file group is defined as one transition status.
- Each transition status includes information of “application ID”, “number of divisions”, “transition source”, “transition destination”, and “scheduled time”.
- “Transition source” is information on the file group of the transition source obtained from the analyzed transition status
- “Transition destination” is information on the file group of the transition destination.
- the “scheduled time” is the time until the transition from the file group in the “transition source” column to the file group in the “transition destination” column.
- the request receiving unit 22 receives a distribution start request, a file request, and a distribution end request transmitted from the client terminal 40.
- the distribution start request is a request for starting distribution of an application, and includes identification information (client ID) of the client terminal 40 and an application ID of the application that the client terminal 40 requests to start distribution.
- the request receiving unit 22 passes the received distribution start request to the division number determining unit 24.
- the file request is a file distribution request not held by the client terminal 40, and includes a client ID, an application ID, and a file name of a necessary file.
- the request reception unit 22 passes the received file request to the distribution unit 26.
- the distribution end request is a request for ending application distribution, and includes a client ID and an application ID, and may include an access log (details will be described later).
- the request reception unit 22 delivers the received distribution end request to the management unit 25.
- the division number determination unit 24 determines the application division number indicated by the application ID included in the distribution start request delivered from the request reception unit 22.
- the more client terminals 40 that are simultaneously connected to the distribution apparatus 20 the lower the communication speed when a large amount of data is distributed at one time.
- the division number of the application is determined according to the number of client terminals connected to the distribution device 20.
- the division number determination unit 24 acquires the number of client terminals connected to the distribution device 20.
- the number of client terminals connected to the distribution device 20 may be the number of client terminals 40 with which connection is established with the distribution device 20, or a file is being distributed from the distribution device 20.
- the number of client terminals 40 may be used. In the present embodiment, the former case will be described.
- the division number determination unit 24 notifies the management unit 25 of the client ID and application ID included in the distribution start request in order to manage the client terminal 40 connected to the distribution device 20. As a result, as described later, the management unit 25 increases the number of client terminals connected to the distribution device 20 by 1 in the management information table 35.
- the division number determination unit 24 refers to the management information table 35 and counts the number of client terminals connected to the distribution device 20.
- the division number determination unit 24 determines the application division number based on a predetermined relationship so that the application division number increases as the number of connected clients increases. For example, the division number determination unit 24 uses the division number table 34 that defines the correspondence relationship between the number of connected client terminals and the number of divisions as shown in FIG. Determine the number. The division number determination unit 24 notifies the management unit 25 of the determined division number together with the client ID and application ID included in the distribution start request.
- the management unit 25 manages the client terminal 40 connected to the distribution apparatus 20, the distribution status of the file group actually distributed to the client terminal 40, and the distribution schedule of the file group, for example, as shown in FIG. Use to manage.
- Each row of the management information table 35 shown in FIG. 8 corresponds to one management information, and each management information includes “client ID”, “application ID”, “number of divisions”, “distribution status”, and “distributed file group”. , “Delivery schedule file group”, and “schedule time” information.
- the management unit 25 is notified in the “client ID” column and the “application ID” column of the management information table 35. Record the client ID and application ID.
- the management unit 25 records “not yet” in the “distribution status” column.
- the “distribution status” column is “not yet”, it indicates that the distribution of the file group to the corresponding client terminal 40 is not completed and is connected to the distribution apparatus 20.
- the management information table 35 counts the management information in which the “distribution status” column is “not yet” (including the case of “not yet (distributed)” described later), so that the client connected to the distribution apparatus 20 is connected. The number of terminals can be acquired.
- the management unit 25 records the division number in the management information table 35. Specifically, the management unit 25 stores the “client ID” column and the “application ID” column of the management information table 35 in the “division number” column of the management information that matches the notified client ID and application ID. Record the notified number of divisions.
- the management unit 25 when the management unit 25 records the division number in the management information table 35, the file group to be distributed first with respect to the application with the application ID notified from the division number determination unit 24 is referred to the file group transition table 33. decide. Specifically, in the file group transition table 33, the management unit 25 matches the notified application ID and the number of divisions in the “application ID” and “number of divisions” fields, and the “transition source” field is blank. Search transition status. And the management part 25 acquires the information of the file group of the "transition destination" column in the searched transition condition with the information of the "scheduled time” column as a file group to be delivered first. The management unit 25 associates the notified client ID, application ID, and number of divisions with the acquired file group and scheduled time in the “distribution scheduled file group” column and “scheduled time” column of the management information table 35. To record.
- the file group to be distributed first is immediately distributed in response to the distribution start request, and the scheduled time is set to “0”.
- the management unit 25 records the time obtained by adding the time acquired from the “scheduled time” field of the file group transition table 33 to the current time in the “scheduled time” field of the management information table 35. Further, in the example of FIG. 8, the scheduled time is expressed in milliseconds.
- the management unit 25 receives, from the distribution unit 26, the client ID of the client terminal 40 that has distributed the file group, the application ID of the distribution target application, the number of divisions, and the notification of the distributed file group as the distribution status. Then, the management unit 25 searches for management information in which the “client ID” column and the “application ID” column of the management information table 35 match the notified client ID and application ID. Then, the management unit 25 adds the information of the notified file group to the “distributed file group” column of the searched management information, and sets a flag indicating that the added file group is the file group delivered immediately before. Stand up. In the example of FIG. 8, the file group with the flag raised is represented by underlining.
- the management unit 25 determines the distribution schedule of the file group after the first time based on the file group transition table 33 and the usage status of the file group in the client terminal 40, and stores it in the management information table 35. Record.
- the usage status of the file group in the client terminal 40 the distribution status of the file group delivered from the delivery device 20 to the client terminal 40, that is, information in the “distributed file group” column is used.
- the management unit 25 performs the following processing using the transition status of the file group transition table 33 in which the “application ID” and “number of divisions” of the management information to which the information of the distributed file group is added match. Do.
- the management unit 25 compares the “distributed file group” column of the management information table 35 with the “transition source” column of the file group transition table 33. Then, the management unit 25 determines whether or not there is a transition state in which the “transition source” column of the file group transition table 33 matches the “distributed file group” column of the management information table 35. If there is, the management unit 25 acquires information in the “transition destination” column and the “scheduled time” column of the transition status.
- the management unit 25 acquires information on the “transition destination” column and the “scheduled time” column of the transition status selected by the predetermined rule from the management information table 35.
- the predetermined rule for example, it is possible to select a transition situation that includes the most file group that matches the file group in the “distributed file group” field in the “transition source” field, or to select it randomly.
- the management unit 25 records the information of the acquired file group in the “transition destination” column in the “delivery scheduled file group” column of the management information table 35 and adds the time in the “scheduled time” column to the current time. The recorded time is recorded in the “scheduled time” column of the management information table 35.
- the management unit 25 determines the file group in the “delivery scheduled file group” column of the management information whose time in the “scheduled time” column of the management information table 35 is closest to the current time as the file group to be distributed next. Then, the management unit 25 notifies the information of the determined file group to the distribution unit 26 together with information in the “client ID” column, “application ID” column, and “number of divisions” column of the management information.
- the management unit 25 records “not yet (distributed)” in the “distribution status” column after receiving the notification of the start of distribution of the file group from the distribution unit 26 until receiving the notification of distribution completion. This represents that the file group is currently being distributed to the target client terminal 40.
- the management unit 25 receives the notification of the completion of the distribution of the file group from the distribution unit 26, the management unit 25 refers to the file group table 32 and the “distributed file group” column, and distributes all the file groups for the distribution target application. Whether or not is completed.
- the management unit 25 records “completed” in the “distribution status” field when the distribution of all the file groups is completed, and the “distribution status” field when there is an undistributed file group. Record “Not” in
- the “client ID” column and the “application ID” column of the management information table 35 indicate the client ID and application included in the distribution end request. Search for management information that matches the ID.
- the management unit 25 records “completed” in the “distribution status” column of the retrieved management information. Thereby, in the management information table 35, the number of client terminals connected to the distribution apparatus 20 is decreased by one.
- the management unit 25 registers the access log in the access log table 36 when the access log is included in the distribution end request.
- management information table 35 may be deleted from the management information table 35 instead of recording “completed” in the “distribution status” column.
- the distribution unit 26 receives the file group, the number of divisions, the client ID, and the application ID notified from the management unit 25. Then, the distribution unit 26 searches the file group table 32 for lines in which the “application ID” field, the “number of divisions” field, and the “file group” match the notified number of divisions, application ID, and file group. To do. The distribution unit 26 acquires all the file names in the “file name” column and the file path in the “file path” column of the searched row, and acquires all the files included in the corresponding file group from the application holding unit 31. . The distribution unit 26 distributes the acquired file group to the client terminal 40 indicated by the notified client ID.
- the distribution unit 26 counts the management information whose “distribution status” column of the management information table 35 is “not yet distributed”, thereby counting the number of client terminals that are distributing the file group.
- the delivery unit 26 temporarily waits and delivers the file group at a timing when the number of client terminals that are delivering the file group is less than the predetermined number. To do. In this way, by limiting the number of clients that can simultaneously distribute a file group, it is possible to reduce the compression of the communication band.
- the distribution unit 26 refers to the management information table 35 and acquires the division number of the application including the requested file. Specifically, the distribution unit 26 determines that the “client ID” column and the “application ID” column of the management information table 35 match the client ID and application ID included in the file request. To obtain the number of divisions. The distribution unit 26 includes a row in which the “application ID” field, the “file name” field, and the “number of divisions” field of the file group table 32 match the application ID, file name, and acquired number of divisions included in the file request. Search for. The distribution unit 26 acquires the file group in the “file group” column of the searched row from the application holding unit 31 and distributes the file group to the client terminal 40 indicated by the client ID included in the file request.
- the distribution unit 26 notifies the management unit 25 of the start of distribution when starting distribution of the file group to the client terminal 40.
- the distribution unit 26 distributes to the management unit 25 the information including the client ID of the client terminal 40 that distributed the file group, the application ID of the distribution target application, the number of divisions, and the distributed file group. Notify the delivery completion along with the situation.
- the update unit 27 updates the application division and file group transition table 33 based on the access log stored in the access log table 36.
- each row of the access log table 36 corresponds to one access log, and the access log includes “client ID”, “application ID”, “file name”, and “file access time”. Contains information.
- the “file access time” is the time when the client terminal 40 accesses the file holding unit 52 (details will be described later) of the client terminal 40 in order to acquire a file that is necessary when executing the application. Regardless of whether or not a necessary file can be acquired from the file holding unit 52, the time when the file is actually needed can be recorded by recording the time when the file holding unit 52 was accessed as a log. .
- the update unit 27 arranges the access logs stored in the access log table 36 in time series using the file access time for each client ID and each application ID. Then, the updating unit 27 divides the application again into a predetermined number of divisions, similarly to the registration unit 21. In addition, the updating unit 27 analyzes the transition status of the file group again based on the accessed file order and the accessed time interval, and updates the file group transition table 33 again.
- the update unit 27 obtains a transition graph representing the transition status of the file group as shown in FIG.
- the pattern of the transition situation accessing the file group D and the file groups A, C, and D are held.
- a transition status pattern for accessing the file group B is added.
- the access log table 36 includes an access log accessed in a state where a necessary file is not held in the file holding unit 52 of the client terminal 40, that is, in a transition state that is not registered in the file group transition table 33. Therefore, when the transition status is analyzed again, a difference from the transition status registered at the beginning occurs.
- the percentage indicated in the arrow is the transition probability
- the number of seconds is the transition average time.
- file group A is requested immediately after the start of the application, then file group B is requested after an average of 4 seconds with a probability of 80%, and file group C is requested after an average of 3 seconds with a probability of 20%.
- the request unit 41 transmits an application distribution start request to the distribution apparatus 20 in response to a user input or a request from another application. Further, the request unit 41 transmits the file distribution requested by the execution unit 42 described later to the distribution apparatus 20 as a file request. The request unit 41 transmits an application distribution end request to the distribution apparatus 20 together with the access log 51 when a user input or an end of the application is requested from the execution unit 42 described later.
- the execution unit 42 executes the application, and when the file is read in the application, the execution unit 42 accesses the file holding unit 52 and acquires the file. If the required file is not held in the file holding unit 52, the requesting unit 41 is requested for the required file. Further, the execution unit 42 records the access log 51 that has accessed the file holding unit 52.
- the acquisition unit 43 acquires the file group distributed from the distribution device 20 and stores it in the file holding unit 52.
- the distribution device 20 can be realized by, for example, the computer 60 shown in FIG.
- the computer 60 includes a CPU 61, a memory 62 as a temporary storage area, and a nonvolatile storage device 63.
- the computer 60 also includes an input / output interface (I / F) 64 to which an input / output device 68 such as a display device and an input device is connected.
- the computer 60 also includes a read / write (R / W) unit 65 that controls reading and writing of data with respect to the recording medium 69 and a network I / F 66 connected to the network 15 such as the Internet.
- the CPU 61, the memory 62, the storage device 63, the input / output I / F 64, the R / W unit 65, and the network I / F 66 are connected to each other via a bus 67.
- the storage device 63 can be realized by an HDD (Hard Disk Drive), an SSD (solid disk drive), a flash memory, or the like.
- a distribution program 70 for causing the computer 60 to function as the distribution device 20 is stored in the storage device 63 as a storage medium.
- the storage device 63 has a data storage area 79 in which data for configuring various tables is stored.
- the CPU 61 reads the distribution program 70 from the storage device 63 and expands it in the memory 62, and sequentially executes the processes included in the distribution program 70. Further, the CPU 61 reads data from the data storage area 79 and develops it in the memory 62 as various tables.
- the distribution program 70 includes a registration process 71, a request reception process 72, a determination process 73, a distribution process 76, and an update process 77.
- the CPU 61 operates as the registration unit 21 illustrated in FIG. 2 by executing the registration process 71. Further, the CPU 61 operates as the request receiving unit 22 illustrated in FIG. 2 by executing the request receiving process 72. Further, the CPU 61 operates as the determination unit 23 illustrated in FIG. 2 by executing the determination process 73. Further, the CPU 61 operates as the distribution unit 26 illustrated in FIG. 2 by executing the distribution process 76. The CPU 61 operates as the update unit 27 illustrated in FIG. 2 by executing the update process 77. As a result, the computer 60 that has executed the distribution program 70 functions as the distribution device 20.
- the client terminal 40 can be realized by a computer 80 shown in FIG. 12, for example.
- the computer 80 includes a CPU 81, a memory 82, a storage device 83, an input / output I / F 84 connected to the input / output device 88, an R / W unit 85 that controls reading and writing of data with respect to the recording medium 89, and a network I / F 86. Is provided.
- the CPU 81, memory 82, storage device 83, input / output I / F 84, R / W unit 85, and network I / F 86 are connected to each other via a bus 87.
- a client-side program 90 for causing the computer 80 to function as the client terminal 40 is stored.
- the storage device 83 has a data storage area 100 in which various data are stored.
- the CPU 81 reads the client-side program 90 from the storage device 83 and expands it in the memory 82, and sequentially executes the processes included in the client-side program 90.
- the client side program 90 has a request process 91, an execution process 92, and an acquisition process 93.
- the CPU 81 operates as the request unit 41 illustrated in FIG. 2 by executing the request process 91. Further, the CPU 81 operates as the execution unit 42 illustrated in FIG. 2 by executing the execution process 92. The CPU 81 operates as the acquisition unit 43 illustrated in FIG. 2 by executing the acquisition process 93.
- the computer 80 that has executed the client-side program 90 functions as the client terminal 40.
- Each of the distribution device 20 and the client terminal 40 can be realized by, for example, a semiconductor integrated circuit, more specifically, an ASIC (Application Specific Specific Integrated Circuit) or the like.
- a semiconductor integrated circuit more specifically, an ASIC (Application Specific Specific Integrated Circuit) or the like.
- the distribution apparatus 20 executes a registration process shown in FIG.
- the distribution device 20 executes the determination process illustrated in FIGS. 14 and 17 and the distribution process illustrated in FIG. 15.
- the update process shown in FIG. 18 is executed in the distribution device at an arbitrary timing such as once a day or once a month.
- the client terminal 40 the client side processing shown in FIG. 19 is executed.
- each process is explained in full detail.
- step S11 the registration unit 21 stores the input application in the application holding unit 31.
- step S12 the registration unit 21 selects one from preset types of application division numbers (eg, 1, 2, 3, 4, etc.).
- step S13 the registration unit 21 divides each of the plurality of files included in the received application into the selected number of divisions based on the structure of each file and the link structure between files. Then, the registration unit 21 registers, in a file group table 32 as shown in FIG. 4, for example, which of the divided file groups each file included in the application is included in.
- step S14 the registration unit 21 analyzes the transition state of the file group based on the structure of each file of the received application and the link structure between files. Then, the registration unit 21 registers the analyzed transition status in a file group transition table 33 as shown in FIG. 6, for example.
- step S15 the registration unit 21 determines whether or not all preset division numbers have been selected. If there is an unselected division number, the process returns to step S12, the next division number is selected, and the processes of steps S13 to S15 are repeated. If all the division numbers have been selected, the registration process is terminated.
- step S21 the request receiving unit 22 determines the type of request received from the client terminal 40. If the request received from the client terminal 40 is a distribution start request, the request reception unit 22 passes the received distribution start request to the division number determination unit 24, and the process proceeds to step S22. In the case of a file request, the request reception unit 22 passes the received file request to the distribution unit 26, and the process proceeds to step S27. In the case of a distribution end request, the request receiving unit 22 passes the received distribution end request to the management unit 25, and the process proceeds to step S51 in FIG.
- step S22 the division number determination unit 24 notifies the management unit 25 of the client ID and application ID included in the distribution start request. Then, the management unit 25 increases the number of client terminals connected to the distribution device 20 by 1 in the management information table 35 based on the notified information. The division number determination unit 24 refers to the management information table 35 and acquires the number of client terminals currently connected to the distribution device 20.
- step S23 the division number determination unit 24 determines the application division number based on the acquired number of connected client terminals and the division number table 34. For example, when the acquired number of connected client terminals is “25” and the division number table 34 shown in FIG. 7 is used, the division number determination unit 24 determines the division number as “4”. The division number determination unit 24 notifies the management unit 25 of the determined division number. Then, the management unit 25 records the division number in the management information table 35.
- step S 24 the management unit 25 refers to the file group transition table 33, acquires information on the file group to be distributed first in response to the application distribution request, and records it in the management information table 35.
- the management unit 25 since the file group to be distributed first is to be distributed immediately, the management unit 25 immediately determines the recorded file group as the file group to be distributed next, and the client ID and application ID , And the number of divisions are notified to the distribution unit 26.
- step S25 the distribution unit 26 searches the file group table 32 for the file name and file path of the file included in the determined file group, and acquires the corresponding file group from the application holding unit 31.
- the distribution unit 26 notifies the management unit 25 of the start of distribution and distributes the acquired file group to the client terminal 40 indicated by the notified client ID. Then, when the distribution is completed, the distribution unit 26 notifies the management unit 25 of the distribution completion together with the distribution status.
- the management unit 25 records the “distribution status” column of the management information table 35 based on the notification of distribution start and distribution completion.
- step S26 the management unit 25 records the distribution status notified from the distribution unit 26 in the management information table 35.
- step S40 a schedule determination process to be described later is executed, and the determination process ends.
- the distribution unit 26 refers to the management information table 35 and refers to the application including the requested file. Get the number of divisions.
- step S28 the distribution unit 26 determines a file group including the requested file as a file group to be distributed based on the obtained division number and the file group table 32, and proceeds to step S25.
- the distribution process starts when the management unit 25 notifies the distribution unit 26 of the file group, the number of divisions, the client ID, and the application ID.
- step S31 the distribution unit 26 refers to the “distribution status” column of the management information table 35 and counts the number of client terminals that are distributing the file group. Then, the distribution unit 26 determines whether or not the number of client terminals being distributed is less than a predetermined number th. If the number of client terminals being distributed is less than the predetermined number th, the process proceeds to step S32. If the number of client terminals being distributed is equal to or greater than the predetermined number th, the determination in this step is repeated.
- step S32 the distribution unit 26 specifies the file group notified from the management unit 25 from the file group table 32, acquires the specified file group from the application holding unit 31, and distributes it to the client terminal 40. Then, the distribution unit 26 notifies the management unit 25 of the distribution status.
- step S33 the management unit 25 records the distribution status notified from the distribution unit 26 in the management information table 35.
- step S40 a schedule determination process to be described later is executed, and the distribution process ends.
- step S40 of the determination process (FIG. 14) and the distribution process (FIG. 15) will be described with reference to FIG.
- step S41 the management unit 25 has a transition state in which a file group that matches the file group of the “distributed file group” in the management information table 35 is registered in the “transition source” column in the file group transition table 33. It is determined whether or not. If it exists, the process proceeds to step S42, and if it does not exist, the process proceeds to step S43.
- step S42 the management unit 25 acquires information in the “transition destination” column and the “scheduled time” column of the transition status in which the file group in the “transition destination” column matches the “distributed file group”. Then, the management unit 25 records the acquired information in the management information table 35, and returns to the determination process or the distribution process.
- step S43 the management unit 25 acquires information on the “transition destination” column and the “scheduled time” column of the transition status selected by the predetermined rule from the file group transition table 33. Then, the management unit 25 records the acquired information in the management information table 35, and returns to the determination process or the distribution process.
- the management unit 25 includes the client ID and application ID included in the distribution end request delivered from the request reception unit 22, and the “client ID” column and “application ID” column of the management information table 35. Search for matching management information.
- the management unit 25 records “completed” in the “distribution status” column of the retrieved management information.
- step S52 the management unit 25 determines whether or not an access log is included in the distribution end request. If an access log is included, the process proceeds to step S53, where the management unit 25 registers the access log in the access log table 36 and ends the determination process. If the access log is not included, the determination process is terminated as it is.
- step S61 the updating unit 27 selects one from the applications registered in the application holding unit 31.
- step S12 the updating unit 27 selects one division number.
- step S62 the updating unit 27 arranges the access logs accumulated in the access log table 36 in time series using the file access time for each client ID and each application ID. To analyze.
- step S63 the updating unit 27 redivides the application into a predetermined number of divisions based on the analysis result of the access log, and updates the file group table 32.
- step S64 the update unit 27 analyzes the transition status of the file group based on the order of the accessed file and the accessed time interval from the analysis result of the access log, and the file group transition table 33. Update.
- step S15 the update unit 27 determines whether or not all the division numbers have been selected. If there is an unselected division number, the process returns to step S12. If all the division numbers have been selected, the process proceeds to step S65.
- step S65 the update unit 27 determines whether all of the applications registered in the application holding unit 31 have been selected. If there is an unselected application, the process returns to step S61, the next application is selected, and the processes of steps S61 to S65 are repeated. If all applications have been selected, the update process is terminated.
- step S71 the request unit 41 transmits a distribution start request including the client ID of the terminal itself and the application ID of the application requesting the distribution start to the distribution apparatus 20.
- step S72 the acquisition unit 43 determines whether a file group distributed from the distribution device 20 has been acquired. If not, wait until acquisition. If acquired, the process proceeds to step S 73, and the acquisition unit 43 stores the acquired file group in the file holding unit 52.
- step S74 the execution unit 42 executes the application while accessing the file held in the file holding unit 52.
- step S ⁇ b> 75 the execution unit 42 determines whether a file necessary for executing the application is held in the file holding unit 52. If the file is held, the process proceeds to step S76, and the execution unit 42 acquires a necessary file from the file holding unit 52, and proceeds to step S78. On the other hand, when the required file is not held in the file holding unit 52, the execution unit 42 requests the required file from the request unit 41. Then, the request unit 41 transmits a file request including the client ID, the application ID, and the file name of the necessary file to the distribution device 20, and the process proceeds to step S78.
- step S78 the execution unit 42 records the access log 51 including the file access time for accessing the file holding unit 52 and the file name of the necessary file.
- step S79 the execution unit 42 determines whether or not to end the execution of the application. If the process ends, the process proceeds to step S80; otherwise, the process returns to step S74.
- step S80 the request unit 41 transmits a distribution end request including the client ID, the application ID, and the access log to the distribution device 20, and ends the client-side processing.
- the application is divided into a plurality of file groups and distributed.
- the distribution schedule of the file group is dynamically determined based on the transition status of the file groups of a plurality of patterns determined in advance and the usage status of the file at the client terminal.
- the file group including the necessary files is distributed immediately upon request from the client terminal. To do. Even in this case, the file group to be distributed next is determined using the information of the file group distributed to the client terminal, that is, the file group information acquired by the client terminal. For this reason, subsequent prefetch distribution can be performed without being affected by the prefetch distribution once deviated.
- the packaged web application has a characteristic that a page transition is performed by a user operation. Therefore, the next necessary file group is changed by the user operation.
- the transition in page units indicates that the connection between the previously acquired file group and the next required file group is strong. Therefore, it is effective to estimate the file group necessary for the next time from at least the file group acquired immediately before at the client terminal, instead of deciding all the delivery schedules first.
- the division number for dividing the application into a plurality of file groups is determined based on the number of client terminals connected to the distribution apparatus. Accordingly, it is possible to adaptively cope with a change in the number of connected client terminals, and to avoid unnecessary application division while reducing pressure on the communication band.
- the correlation between the capacity of the application to be distributed and the communication band is high. For example, a test application may be distributed all at once to client terminals held by students in a school. Therefore, by adjusting the number of divided applications, the capacity of the application to be distributed can be adjusted, and compression of the communication band can be avoided.
- the access log in the client terminal uses the access log in the client terminal to re-divide the application and re-analyze the transition status. Therefore, after that, it is possible to determine a delivery schedule that reflects the actual usage status of the file in the client terminal, and more appropriately pre-reading delivery.
- the distribution schedule may be determined in consideration of the attribute of the user who uses the client terminal.
- the user attribute information is also transmitted when an application distribution start request is transmitted from the client terminal to the distribution apparatus.
- a file group table and a file transition table are prepared for each user attribute.
- user attributes are also managed as management information items.
- a file group table and a file transition table corresponding to the user attributes recorded in the management information table are selected to determine a delivery schedule.
- the distribution schedule of a file group can be determined more appropriately for an application having different page transitions due to differences in user attributes.
- the distribution status of the file group distributed from the distribution device to the client terminal is used as the usage status of the file group in the client terminal is described, but the present invention is not limited to this. Whenever there is a file access on the client terminal side, the access time, the accessed file, or the file group including the file is notified to the distribution device, etc., so that the usage status of the file group on the client terminal can be directly acquired. Good.
- the access log acquired from the client terminal is used for the re-division of the application and the re-analysis of the transition state has been described.
- the present invention is not limited to this, and the distribution state recorded in the management information table is It may be used.
- information on the time at which each distributed file group is distributed may be recorded.
- the management information table as shown in FIG. 8 or FIG. 20 is managed on the distribution apparatus side, but may be managed on the client terminal side.
- the information on the number of divisions determined by the distribution apparatus and the partial information of the file group transition table corresponding to the application requested by the client terminal and the determined number of divisions are transmitted to the client side.
- the file group request schedule may be determined by the same method as the above-described distribution schedule determination, and the file group may be requested from the distribution apparatus according to the determined schedule.
- the distribution program 70 is stored (installed) in the storage device 63 and the client-side program 90 is stored in the storage device 83 in advance.
- the present invention is not limited to this. It is also possible to provide the information recorded in a storage medium such as a CD-ROM, DVD-ROM, or USB memory.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
アプリケーションを分割して配信する際に、クライアント端末での待機時間を低減する。アプリケーションを所定の分割数で分割した複数のファイル群をクライアント端末に配信する。その際に、アプリケーションが実行される際の複数のファイル群の各々の使用順に基づいて予め定めたファイル群の遷移状況、及びクライアント端末におけるファイル群の使用状況に基づいて、次に配信するファイル群を決定する。そして、決定されたファイル群を、クライアント端末に配信する。
Description
開示の技術は、配信方法、配信装置、及び配信プログラムに関する。
マルチプラットフォームで動作するアプリケーションとして、ウェブアプリケーションが主流になっている。ウェブアプリケーションをオフラインで動作させるために、アプリケーションの動作に必要な複数のファイルを1つのパッケージにまとめたパッケージドウェブアプリケーションという仕様が用いられている。
パッケージドウェブアプリケーションを実行するクライアント端末側では、まず、パッケージをダウンロードする必要がある。そのため、複数のクライアント端末から同時にダウンロード要求が行われると、通信帯域が圧迫され、各クライアント端末へのパッケージのダウンロードに時間を要し、ユーザが利用したいときにすぐアプリケーションを実行できない場合がある。
複数のクライアント端末がパッケージを同時にダウンロードする際の通信帯域の圧迫を低減するために、パッケージを複数のファイル群に分割して順次配信することで、1度に配信するデータ量を抑制することが考えられる。この場合、まだ配信されていないファイル群がクライアント端末で必要となる場合もあり、必要なファイル群が配信されるまでの無駄な待機時間が生じる場合がある。
そこで、プログラムによるファイル中の各データへの参照を記録したファイル参照情報を生成するデータ処理システムが提案されている。このシステムでは、ファイル参照情報に基づいて、ファイルの中からプログラム実行の各段階毎に参照が開始されるデータを集めてデータ群並びにファイルの各データ群への参照に関するデータ群情報を作成する。そして、クライアント側では、受信したデータ群情報及びデータ群に基づいてファイルを作成して、プログラム実行の各段階で参照する。
従来技術では、データ群情報を参照して、クライアント端末で必要となるファイルを先読みしてクライアント端末に配信することで、クライアント端末における待機時間を削減できる場合もある。
しかし、アプリケーションを実行するクライアント端末毎に必要となるファイルの順序は異なるため、従来技術のように予め定めたデータ群情報を参照してファイル群の配信順を決定することは適切ではない場合がある。特に、クライアント端末におけるアプリケーション実行の最初の段階で、データ群情報が表す順序とは異なる順序でファイルが必要となった場合には、ファイル群の先読み配信が外れて、クライアント端末からのファイル要求が頻発することになる。このような場合には、クライアント端末において、必要なファイルが配信されるまでの待機時間が長くなる、という問題がある。
開示の技術は、一つの側面として、アプリケーションを分割して配信する際に、クライアント端末での待機時間を低減することを目的とする。
開示の技術は、一つの態様として、アプリケーションを所定の分割数で分割した複数のファイル群を端末に配信する。その際に、前記アプリケーションが実行される際の前記複数のファイル群の各々の使用順に基づいて予め定めたファイル群の遷移状況、及び前記端末におけるファイル群の使用状況に基づいて、次に配信するファイル群を決定する。そして、決定されたファイル群を、前記端末に配信する。
開示の技術は、一つの側面として、アプリケーションを分割して配信する際に、クライアント端末での待機時間を低減することができる、という効果を有する。
以下、図面を参照して開示の技術に係る実施形態の一例を詳細に説明する。本実施形態では、パッケージドウェブアプリケーションを複数のファイル群に分割して配信する配信装置について説明する。以下では、1つのパッケージにまとめられるパッケージドウェブアプリケーションを単に「アプリケーション」ともいう。
図1に示すように、本実施形態に係る配信システム10は、配信装置20と、複数のクライアント端末40とを含む。配信装置20と、複数のクライアント端末40の各々とは、ネットワーク15を介して互いに接続される。
図2に、配信装置20及びクライアント端末40の各々の機能ブロック図を示す。図2に示すように、配信装置20は、登録部21と、要求受信部22と、分割数決定部24及び管理部25を含む決定部23と、配信部26と、更新部27とを含む。また、配信装置20は記憶部30を備える。記憶部30は、アプリ保持部31を有すると共に、ファイル群テーブル32と、ファイル群遷移テーブル33と、分割数テーブル34と、管理情報テーブル35と、アクセスログテーブル36とを記憶する。
クライアント端末40としては、例えば、パーソナルコンピュータ、タブレット端末、スマートフォン等を用いることができる。また、図2に示すように、クライアント端末40は、要求部41と、実行部42と、取得部43とを含む。また、クライアント端末40は記憶部50を備える。記憶部50は、ファイル保持部52を備えると共に、アクセスログ51を記憶する。
まず、配信装置20の各機能部について説明すると共に、各機能部で利用するテーブル等についてあわせて説明する。
登録部21は、新規に登録するアプリケーションを受け付ける。ここで受け付けるアプリケーションは、パッケージドウェブアプリケーションであり、アプリケーションの実行に必要な複数のファイルが1つのパッケージにまとめられたものである。また、パッケージには、アプリケーションの識別情報(アプリID)も含まれる。登録部21は、受け付けたアプリケーションをアプリ保持部31に記憶する。
また、登録部21は、受け付けたアプリケーションに含まれる複数のファイルの各々を、各ファイルの構造、及びファイル間のリンク構造に基づいて、図3に概念的に示すように、所定の分割数(詳細は後述)のファイル群に分割する。図3の例は、アプリケーションをファイル群A、B、C、及びDの4つのファイル群に分割し、そのうちファイル群Aには、ファイル「index.html」、「main.js」、及び「style.css」が含まれる例を示している。なお、図3の例では、所定の分割数を4とする例を示しているが、所定の分割数として予め複数の種類(例えば、1、2、3、4等)を設定しておくことができる。従って、1つのファイル群に分割した場合(分割なし)、2つのファイル群の分割した場合、・・・のように、設定された分割数の種類毎にアプリケーションを分割する。
登録部21は、アプリケーションに含まれる各ファイルが、分割されたファイル群のいずれに含まれるかを、例えば図4に示すようなファイル群テーブル32に登録する。図4に示すファイル群テーブル32は、ファイル毎に、「アプリID」、「分割数」、「ファイル名」、「ファイルパス」、及び「ファイル群」の情報を含む。「アプリID」は、各行に対応したファイルを含むアプリケーションのアプリIDである。「分割数」は、アプリケーションの分割数の種類(例えば、1、2、3、4等)である。「ファイルパス」は、「ファイル名」で識別されるファイルのアプリ保持部31における位置を示す情報である。「ファイル群」は、「アプリID」欄のアプリIDが示すアプリケーションを、「分割数」欄の分割数で分割した際に、「ファイル名」欄のファイル名で識別されるファイルがいずれのファイル群に含まれるかを示す情報である。
さらに、登録部21は、受け付けたアプリケーションに含まれる各ファイルの構造、及びファイル間のリンク構造に基づいて、ファイル群の遷移状況を解析する。遷移状況とは、アプリケーションがクライアント端末40で実行される際に、複数のファイル群の各々が必要となる(使用される)順番、及び必要となる予定時間を表すものである。例えば、各ファイルのファイル構造に基づいて、アプリケーションの開始直後に必要となるファイルがファイル群Aに含まれると判断された場合、開始からファイル群Aに遷移すると解析する。また、ファイル群Aに含まれるファイルから、ファイル群Bに含まれるファイルへのリンクが張られている場合、ファイル群Aからファイル群Bに遷移すると解析する。
例えば、ファイル群の遷移状況の解析の結果、図5に示すような遷移グラフが得られたとする。なお、図5では、必要となるファイル群を丸内に、それまでに遷移してきたファイル群を四角内に示している。また、四角内に表記されたファイル群のうち、下線が引いてあるファイル群は、直前に遷移したファイル群であることを示している。なお、図5において矢印に併記している秒数は、遷移元のファイル群から遷移先のファイル群へ遷移するまでの時間、すなわち、次のファイル群が必要となるまでの時間を表している。アプリケーションの初期登録時には、予定時間は、例えば、各ファイルの内容やデータ量等に応じた値、ランダムな値、予め定めた一定値等を付与する。
登録部21は、例えば図5に示す遷移グラフで表される遷移状況の解析結果を、例えば図6に示すようなファイル群遷移テーブル33に登録する。図6に示すファイル群遷移テーブル33の各行は、1つの遷移状況を示す。ここでは、ある遷移元のファイル群から別の遷移先のファイル群へ遷移するパターンを1つの遷移状況とする。各遷移状況は、「アプリID」、「分割数」、「遷移元」、「遷移先」、及び「予定時間」の情報を含む。「遷移元」は、解析した遷移状況から得られる遷移元のファイル群の情報、「遷移先」は、同じく遷移先のファイル群の情報である。「予定時間」は、「遷移元」欄のファイル群から「遷移先」欄のファイル群に遷移するまでの時間である。
なお、図6の例では、「遷移元」欄には、それまでに遷移してきた全てのファイル群を登録し、直前に遷移したファイル群に下線を引いて示している。また、アプリケーションの実行直後に必要となるファイル群には遷移元が存在しないため、「遷移元」欄がブランク(図6では「-」)となる。
要求受信部22は、クライアント端末40から送信される配信開始要求、ファイル要求、及び配信終了要求を受信する。配信開始要求は、アプリケーションの配信を開始する要求であり、クライアント端末40の識別情報(クライアントID)、及びそのクライアント端末40が配信開始を要求するアプリケーションのアプリIDを含む。要求受信部22は、受信した配信開始要求を分割数決定部24に受け渡す。ファイル要求は、クライアント端末40で保持していないファイルの配信要求であり、クライアントID、アプリID、及び必要なファイルのファイル名を含む。要求受信部22は、受信したファイル要求を配信部26に受け渡す。配信終了要求は、アプリケーションの配信を終了する要求であり、クライアントID、及びアプリIDを含み、またアクセスログ(詳細は後述)を含んでもよい。要求受信部22は、受信した配信終了要求を管理部25に受け渡す。
分割数決定部24は、要求受信部22から受け渡された配信開始要求に含まれるアプリIDが示すアプリケーションの分割数を決定する。ここで、配信装置20に同時に接続しているクライアント端末40が多ければ多いほど、1度に大量のデータを配信した際の通信速度が低下する。一方、接続されているクライアント端末40が少ない場合には、1度に大量のデータを配信したとしても、通信速度の低下は少ない。そこで、本実施形態では、配信装置20に接続されているクライアント端末数に応じて、アプリケーションの分割数を決定する。
具体的には、分割数決定部24は、配信装置20に接続されているクライアント端末数を取得する。ここで、配信装置20に接続されているクライアント端末数は、配信装置20との間で接続が確立されているクライアント端末40の数であってもよいし、配信装置20からファイルを配信中のクライアント端末40の数であってもよい。本実施形態では、前者の場合について説明する。分割数決定部24は、管理情報テーブル35において、配信装置20と接続中のクライアント端末40を管理するために、配信開始要求に含まれるクライアントID及びアプリIDを管理部25に通知する。これにより、後述するように、管理部25により、管理情報テーブル35において、配信装置20と接続中のクライアント端末数が1増加される。分割数決定部24は、管理情報テーブル35を参照して、配信装置20と接続中のクライアント端末数をカウントする。
また、分割数決定部24は、接続中のクライアント数が多いほどアプリケーションの分割数が大きくなるように予め定めた関係に基づいて、アプリケーションの分割数を決定する。例えば、分割数決定部24は、図7に示すような、接続中のクライアント端末数と分割数との対応関係を定めた分割数テーブル34から、カウントした接続中のクライアント端末数に対応する分割数を決定する。分割数決定部24は、決定した分割数を、配信開始要求に含まれるクライアントID及びアプリIDと共に、管理部25に通知する。
管理部25は、配信装置20に接続中のクライアント端末40、実際にクライアント端末40へ配信されたファイル群の配信状況、及びファイル群の配信スケジュールを、例えば図8に示すような管理情報テーブル35を用いて管理する。図8に示す管理情報テーブル35の各行は1つの管理情報に相当し、各管理情報は、「クライアントID」、「アプリID」、「分割数」、「配信状況」、「配信済みファイル群」、「配信予定ファイル群」、及び「予定時間」の情報を含む。
具体的には、管理部25は、分割数決定部24からクライアントID及びアプリIDが通知された場合には、管理情報テーブル35の「クライアントID」欄、「アプリID」欄に、通知されたクライアントID及びアプリIDを記録する。また、管理部25は、「配信状況」欄に「未」を記録する。なお、「配信状況」欄が「未」の場合は、該当のクライアント端末40へのファイル群の配信が完了しておらず、配信装置20と接続状態にあることを表す。これにより、管理情報テーブル35において、「配信状況」欄が「未」(後述する「未(配信中)」の場合を含む)の管理情報をカウントすることで、配信装置20と接続中のクライアント端末数を取得することができる。
また、管理部25は、分割数決定部24からクライアントID、アプリID、及び分割数が通知された場合には、管理情報テーブル35に分割数を記録する。具体的には、管理部25は、管理情報テーブル35の「クライアントID」欄、及び「アプリID」欄が、通知されたクライアントID及びアプリIDと一致する管理情報の「分割数」欄に、通知された分割数を記録する。
また、管理部25は、分割数を管理情報テーブル35に記録すると、ファイル群遷移テーブル33を参照して、分割数決定部24から通知されたアプリIDのアプリケーションについて、最初に配信するファイル群を決定する。具体的には、管理部25は、ファイル群遷移テーブル33において、「アプリID」及び「分割数」欄が、通知されたアプリID及び分割数に一致し、かつ「遷移元」欄がブランクの遷移状況を検索する。そして、管理部25は、検索した遷移状況における「遷移先」欄のファイル群の情報を、最初に配信するファイル群として、「予定時間」欄の情報と共に取得する。管理部25は、通知されたクライアントID、アプリID、及び分割数に対応付けて、取得したファイル群及び予定時間を、管理情報テーブル35の「配信予定ファイル群」欄、及び「予定時間」欄に記録する。
なお、本実施形態では、最初に配信するファイル群については、配信開始要求に応じて即時配信することとし、予定時間を「0」としている。また、管理部25は、ファイル群遷移テーブル33の「予定時間」欄から取得した時間を現在時刻に加算した時間を、管理情報テーブル35の「予定時間」欄に記録する。また、図8の例では、予定時間をミリ秒単位で表している。
また、管理部25は、配信部26から配信状況として、ファイル群を配信したクライアント端末40のクライアントID、配信対象のアプリケーションのアプリID、分割数、及び配信したファイル群の通知を受け取る。そして、管理部25は、管理情報テーブル35の「クライアントID」欄、及び「アプリID」欄が、通知されたクライアントID及びアプリIDと一致する管理情報を検索する。そして、管理部25は、検索した管理情報の「配信済みファイル群」欄に通知されたファイル群の情報を追加すると共に、追加したファイル群が直前に配信したファイル群であることを示すフラグを立てる。図8の例では、フラグを立てたファイル群を、下線を引いて表している。
また、管理部25は、ファイル群の配信後、初回以降のファイル群の配信スケジュールを、ファイル群遷移テーブル33、及びクライアント端末40におけるファイル群の使用状況に基づいて決定し、管理情報テーブル35に記録する。本実施形態では、クライアント端末40におけるファイル群の使用状況として、配信装置20からクライアント端末40に配信したファイル群の配信状況、すなわち「配信済みファイル群」欄の情報を用いる。
具体的には、管理部25は、配信したファイル群の情報を追加した管理情報の「アプリID」及び「分割数」が一致するファイル群遷移テーブル33の遷移状況を用いて、以下の処理を行う。管理部25は、管理情報テーブル35の「配信済みファイル群」欄と、ファイル群遷移テーブル33の「遷移元」欄とを比較する。そして、管理部25は、ファイル群遷移テーブル33の「遷移元」欄が、管理情報テーブル35の「配信済みファイル群」欄と一致する遷移状況が存在するか否かを判定する。存在する場合には、管理部25は、その遷移状況の「遷移先」欄、及び「予定時間」欄の情報を取得する。
一致する遷移状況が存在しない場合には、管理部25は、管理情報テーブル35から所定のルールで選択した遷移状況の「遷移先」欄、及び「予定時間」欄の情報を取得する。所定のルールとしては、例えば、「配信済みファイル群」欄のファイル群と一致するファイル群を「遷移元」欄に最も多く含む遷移状況を選択したり、ランダムに選択したりすることができる。なお、少なくとも直前に配信されたファイル群が一致する遷移状況を選択することが、パッケージドウェブアプリケーションの特性上好ましい。
そして、管理部25は、取得した「遷移先」欄のファイル群の情報を、管理情報テーブル35の「配信予定ファイル群」欄に記録すると共に、「予定時間」欄の時間を現在時刻に加算した時間を、管理情報テーブル35の「予定時間」欄に記録する。
また、管理部25は、管理情報テーブル35の「予定時間」欄の時間が、現時点に最も近い管理情報の「配信予定ファイル群」欄のファイル群を、次に配信するファイル群として決定する。そして、管理部25は、決定したファイル群の情報を、その管理情報の「クライアントID」欄、「アプリID」欄、及び「分割数」欄の情報と共に配信部26へ通知する。
また、管理部25は、配信部26からファイル群の配信開始の通知を受けてから、配信完了の通知を受け取るまでの間、「配信状況」欄に「未(配信中)」を記録する。これは、対象のクライアント端末40に現在ファイル群を配信中であることを表す。また、管理部25は、配信部26からファイル群の配信完了の通知を受け取ると、ファイル群テーブル32、及び「配信済みファイル群」欄を参照し、配信対象のアプリケーションについて全てのファイル群の配信が完了しているか否かを判定する。管理部25は、全てのファイル群の配信が完了している場合には、「配信状況」欄に「完了」を記録し、未配信のファイル群が存在する場合には、「配信状況」欄に「未」を記録する。
また、管理部25は、要求受信部22から配信終了要求を受け渡されると、管理情報テーブル35の「クライアントID」欄、及び「アプリID」欄が、配信終了要求に含まれるクライアントID及びアプリIDと一致する管理情報を検索する。管理部25は、検索した管理情報の「配信状況」欄に「完了」を記録する。これにより、管理情報テーブル35において、配信装置20に接続中のクライアント端末数を1減少させる。また、管理部25は、配信終了要求にアクセスログが含まれる場合には、アクセスログをアクセスログテーブル36に登録する。
なお、「配信状況」欄に「完了」を記録することに変えて、該当の管理情報を、管理情報テーブル35から削除してもよい。
配信部26は、管理部25から通知されたファイル群、分割数、クライアントID、及びアプリIDを受け取る。そして、配信部26は、ファイル群テーブル32において、「アプリID」欄、「分割数」欄、及び「ファイル群」が、通知された分割数、アプリID、及びファイル群と一致する行を検索する。配信部26は、検索した行の「ファイル名」欄のファイル名、及び「ファイルパス」欄のファイルパスを全て取得し、該当のファイル群に含まれる全てのファイルをアプリ保持部31から取得する。配信部26は、取得したファイル群を、通知されたクライアントIDが示すクライアント端末40に配信する。
この際、配信部26は、管理情報テーブル35の「配信状況」欄が「未(配信中)」の管理情報をカウントすることで、ファイル群を配信中のクライアント端末数をカウントする。配信部26は、ファイル群を配信中のクライアント端末数が所定数以上の場合には、一旦待機し、ファイル群を配信中のクライアント端末数が所定数未満となったタイミングで、ファイル群を配信する。このように、ファイル群を同時に配信できるクライアント数に制限を設けることで、通信帯域の圧迫を低減することができる。
また、配信部26は、要求受信部22からファイル要求を受け渡された場合には、管理情報テーブル35を参照して、要求されているファイルを含むアプリケーションの分割数を取得する。具体的には、配信部26は、管理情報テーブル35の「クライアントID」欄、及び「アプリID」欄が、ファイル要求に含まれるクライアントID及びアプリIDと一致する管理情報の「分割数」欄から、該当の分割数を取得する。配信部26は、ファイル群テーブル32の「アプリID」欄、「ファイル名」欄、及び「分割数」欄が、ファイル要求に含まれるアプリID、ファイル名、及び取得した分割数と一致する行を検索する。配信部26は、検索した行の「ファイル群」欄のファイル群を、アプリ保持部31から取得し、ファイル要求に含まれるクライアントIDが示すクライアント端末40に配信する。
また、配信部26は、クライアント端末40へファイル群の配信を開始する際には、管理部25に配信開始を通知する。また、配信部26は、配信が完了すると、管理部25に、ファイル群を配信したクライアント端末40のクライアントID、配信対象のアプリケーションのアプリID、分割数、及び配信したファイル群の情報を含む配信状況と共に、配信完了を通知する。
更新部27は、アクセスログテーブル36に蓄積されたアクセスログに基づいて、アプリケーションの分割、及びファイル群遷移テーブル33を更新する。例えば、図9に示すように、アクセスログテーブル36の各行は1つのアクセスログに相当し、アクセスログは、「クライアントID」、「アプリID」、「ファイル名」、及び「ファイルアクセス時間」の情報を含む。「ファイルアクセス時間」は、クライアント端末40において、アプリケーション実行時に必要となったファイルを取得するために、クライアント端末40のファイル保持部52(詳細は後述)にアクセスした時間である。ファイル保持部52から必要なファイルが取得できたか否かに関わらず、ファイル保持部52にアクセスした時間をログとして記録することで、実際にそのファイルが必要になった時間を記録することができる。
更新部27は、アクセスログテーブル36に蓄積されたアクセスログを、クライアントID毎かつアプリID毎に、ファイルアクセス時間を用いて時系列に並べる。そして、更新部27は、登録部21と同様に、再度アプリケーションを所定の分割数に分割する。また、更新部27は、アクセスされたファイルの順番、及びアクセスされた時間間隔に基づいて、登録部21と同様に、再度ファイル群の遷移状況を解析し、ファイル群遷移テーブル33を更新する。
例えば、更新部27により、図10に示すようなファイル群の遷移状況を表す遷移グラフが得られたとする。この場合、図5に示す遷移グラフに対して、ファイル群A及びCを保持している状況で、ファイル群Dにアクセスする遷移状況のパターン、及びファイル群A、C、及びDを保持している状況で、ファイル群Bにアクセスする遷移状況のパターンが追加されている。アクセスログテーブル36には、クライアント端末40のファイル保持部52に必要なファイルが保持されていない状態、すなわち、ファイル群遷移テーブル33に登録されていない遷移状況でアクセスされたアクセスログも含まれる。従って、再度遷移状況を解析した場合には、初期に登録した遷移状況とは差異が生じる。
なお、図10において、矢印に併記したパーセンテージは遷移確率、秒数は遷移平均時間である。例えば、図10では、アプリケーションの開始からすぐにファイル群Aが要求され、その後80%の確率で平均4秒後にファイル群Bが要求され、20%の確率で平均3秒後にファイル群Cが要求されることを表している。
アクセスログを用いてファイルの分割、及びファイル群遷移テーブル33を更新することで、クライアント端末40で必要となるファイルを、より精度良く先読みして配信できる可能性が高まる。
次に、クライアント端末40の各機能部について説明する。
要求部41は、ユーザの入力、または他のアプリケーションからの要求に応じて、配信装置20にアプリケーションの配信開始要求を送信する。また、要求部41は、後述する実行部42から要求されたファイルの配信を配信装置20にファイル要求として送信する。また、要求部41は、ユーザの入力、または後述する実行部42からアプリケーションの終了が要求されると、アクセスログ51と共に、アプリケーションの配信終了要求を配信装置20に送信する。
実行部42は、アプリケーションを実行し、アプリケーション内でファイルの読込があった場合には、ファイル保持部52にアクセスしてファイルを取得する。ファイル保持部52に必要なファイルが保持されていない場合には、要求部41に必要なファイルを要求する。また、実行部42は、ファイル保持部52にアクセスしたアクセスログ51を記録する。
取得部43は、配信装置20から配信されたファイル群を取得し、ファイル保持部52に記憶する。
配信装置20は、例えば、図11に示すコンピュータ60で実現することができる。コンピュータ60はCPU61、一時記憶領域としてのメモリ62、及び不揮発性の記憶装置63を備える。また、コンピュータ60は、表示装置及び入力装置等の入出力装置68が接続される入出力インターフェース(I/F)64を備える。また、コンピュータ60は、記録媒体69に対するデータの読み込み及び書き込みを制御するread/write(R/W)部65、及びインターネット等のネットワーク15に接続されるネットワークI/F66を備える。CPU61、メモリ62、記憶装置63、入出力I/F64、R/W部65、及びネットワークI/F66は、バス67を介して互いに接続される。
記憶装置63は、HDD(Hard Disk Drive)、SSD(solid state drive)、フラッシュメモリ等によって実現できる。記憶媒体としての記憶装置63には、コンピュータ60を配信装置20として機能させるための配信プログラム70が記憶される。また、記憶装置63は、各種テーブルを構成するためのデータが記憶されるデータ記憶領域79を有する。CPU61は、配信プログラム70を記憶装置63から読み出してメモリ62に展開し、配信プログラム70が有するプロセスを順次実行する。また、CPU61は、データ記憶領域79からデータを読み出して、各種テーブルとしてメモリ62に展開する。
配信プログラム70は、登録プロセス71と、要求受信プロセス72と、決定プロセス73と、配信プロセス76と、更新プロセス77とを有する。CPU61は、登録プロセス71を実行することで、図2に示す登録部21として動作する。また、CPU61は、要求受信プロセス72を実行することで、図2に示す要求受信部22として動作する。また、CPU61は、決定プロセス73を実行することで、図2に示す決定部23として動作する。また、CPU61は、配信プロセス76を実行することで、図2に示す配信部26として動作する。また、CPU61は、更新プロセス77を実行することで、図2に示す更新部27として動作する。これにより、配信プログラム70を実行したコンピュータ60が、配信装置20として機能することになる。
クライアント端末40は、例えば、図12に示すコンピュータ80で実現することができる。コンピュータ80は、CPU81、メモリ82、記憶装置83、入出力装置88が接続される入出力I/F84、記録媒体89に対するデータの読み込み及び書き込みを制御するR/W部85、及びネットワークI/F86を備える。CPU81、メモリ82、記憶装置83、入出力I/F84、R/W部85、及びネットワークI/F86は、バス87を介して互いに接続される。
記憶媒体としての記憶装置83には、コンピュータ80を、クライアント端末40として機能させるためのクライアント側プログラム90が記憶される。また、記憶装置83は、各種データが記憶されるデータ記憶領域100を有する。CPU81は、クライアント側プログラム90を記憶装置83から読み出してメモリ82に展開し、クライアント側プログラム90が有するプロセスを順次実行する。
クライアント側プログラム90は、要求プロセス91と、実行プロセス92と、取得プロセス93とを有する。CPU81は、要求プロセス91を実行することで、図2に示す要求部41として動作する。また、CPU81は、実行プロセス92を実行することで、図2に示す実行部42として動作する。また、CPU81は、取得プロセス93を実行することで、図2に示す取得部43として動作する。これにより、クライアント側プログラム90を実行したコンピュータ80が、クライアント端末40として機能することになる。
なお、配信装置20及びクライアント端末40の各々は、例えば半導体集積回路、より詳しくはASIC(Application Specific Integrated Circuit)等で実現することも可能である。
次に、本実施形態に係る配信システム10の作用について説明する。
配信装置20に新規に登録するアプリケーションが入力されると、配信装置20において、図13に示す登録処理が実行される。また、クライアント端末40から送信された要求を受信すると、配信装置20において、図14及び図17に示す決定処理、並びに図15に示す配信処理が実行される。また、例えば1日1回、月に1回などの任意のタイミングで、配信装置において、図18に示す更新処理が実行される。一方、クライアント端末40においては、図19に示すクライアント側処理が実行される。以下、各処理について詳述する。
まず、図13に示す登録処理について説明する。
ステップS11で、登録部21が、入力されたアプリケーションを、アプリ保持部31に記憶する。次に、ステップS12で、登録部21が、予め設定されたアプリケーションの分割数の種類(例えば、1、2、3、4等)から1つを選択する。
次に、ステップS13で、登録部21が、受け付けたアプリケーションに含まれる複数のファイルの各々を、各ファイルの構造、及びファイル間のリンク構造に基づいて、選択した分割数に分割する。そして、登録部21は、アプリケーションに含まれる各ファイルが、分割されたファイル群のいずれに含まれるかを、例えば図4に示すようなファイル群テーブル32に登録する。
次に、ステップS14で、登録部21が、受け付けたアプリケーションの各ファイルの構造、及びファイル間のリンク構造に基づいて、ファイル群の遷移状況を解析する。そして、登録部21は、解析した遷移状況を、例えば図6に示すようなファイル群遷移テーブル33に登録する。
次に、ステップS15で、登録部21が、予め設定されている分割数を全て選択済みか否かを判定する。未選択の分割数が存在する場合には、処理はステップS12に戻り、次の分割数を選択し、ステップS13~S15の処理を繰り返す。全ての分割数について選択済みの場合には、登録処理を終了する。
次に、図14に示す決定処理について説明する。
ステップS21で、要求受信部22が、クライアント端末40から受信した要求の種別を判定する。クライアント端末40から受信した要求が配信開始要求の場合には、要求受信部22が、受信した配信開始要求を分割数決定部24に受け渡し、処理はステップS22へ移行する。ファイル要求の場合には、要求受信部22が、受信したファイル要求を配信部26に受け渡し、処理はステップS27へ移行する。配信終了要求の場合には、要求受信部22が、受信した配信終了要求を管理部25に受け渡し、処理は図17のステップS51へ移行する。
ステップS22では、分割数決定部24が、配信開始要求に含まれるクライアントID及びアプリIDを管理部25に通知する。そして、管理部25が、通知された情報に基づいて、管理情報テーブル35において、配信装置20と接続中のクライアント端末数を1増やす。分割数決定部24は、管理情報テーブル35を参照して、配信装置20に接続中のクライアント端末数を取得する。
次に、ステップS23で、分割数決定部24が、取得した接続中のクライアント端末数、及び分割数テーブル34に基づいて、アプリケーションの分割数を決定する。例えば、取得した接続中のクライアント端末数が「25」で、図7に示す分割数テーブル34を利用する場合、分割数決定部24は、分割数を「4」と決定する。分割数決定部24は、決定した分割数を管理部25に通知する。そして、管理部25が、管理情報テーブル35に分割数を記録する。
次に、ステップS24で、管理部25が、ファイル群遷移テーブル33を参照して、アプリケーションの配信要求に対して最初に配信するファイル群の情報を取得し、管理情報テーブル35に記録する。本実施形態では、最初に配信するファイル群は、即時配信することとしているため、管理部25が、即時に、記録されたファイル群を次に配信するファイル群として決定し、クライアントID、アプリID、及び分割数と共に配信部26へ通知する。
次に、ステップS25で、配信部26は、決定したファイル群に含まれるファイルのファイル名及びファイルパスをファイル群テーブル32から検索し、該当のファイル群をアプリ保持部31から取得する。配信部26は、管理部25に配信開始を通知すると共に、取得したファイル群を、通知されたクライアントIDが示すクライアント端末40に配信する。そして、配信部26は、配信が完了すると、配信状況と共に、配信完了を管理部25に通知する。管理部25は、配信開始及び配信完了の通知に基づいて、管理情報テーブル35の「配信状況」欄を記録する。
次に、ステップS26で、管理部25が、配信部26から通知された配信状況を、管理情報テーブル35に記録する。次に、ステップS40で、後述するスケジュール決定処理が実行されて、決定処理を終了する。
一方、クライアント端末40から受信した要求がファイル要求であるとして、処理がステップS27へ移行した場合には、配信部26が、管理情報テーブル35を参照して、要求されているファイルを含むアプリケーションの分割数を取得する。
次に、ステップS28で、配信部26が、取得した分割数及びファイル群テーブル32に基づいて、要求されているファイルを含むファイル群を配信するファイル群として決定し、ステップS25へ移行する。
次に、図15に示す配信処理について説明する。配信処理は、管理部25から、ファイル群、分割数、クライアントID、及びアプリIDが配信部26に通知されると開始する。
ステップS31で、配信部26が、管理情報テーブル35の「配信状況」欄を参照して、ファイル群を配信中のクライアント端末数をカウントする。そして、配信部26は、配信中のクライアント端末数が、所定数th未満か否かを判定する。配信中のクライアント端末数が、所定数th未満の場合には、処理はステップS32へ移行し、配信中のクライアント端末数が、所定数th以上の場合には、本ステップの判定を繰り返す。
ステップS32では、配信部26が、管理部25から通知されたファイル群をファイル群テーブル32から特定し、アプリ保持部31から特定したファイル群を取得し、クライアント端末40に配信する。そして、配信部26は、配信状況を管理部25へ通知する。
次に、ステップS33で、管理部25が、配信部26から通知された配信状況を、管理情報テーブル35に記録する。次に、ステップS40で、後述するスケジュール決定処理が実行されて、配信処理を終了する。
次に、決定処理(図14)、及び配信処理(図15)のステップS40で実行されるスケジュール決定処理について、図16を参照して説明する。
ステップS41で、管理部25が、ファイル群遷移テーブル33において、管理情報テーブル35の「配信済みファイル群」のファイル群と一致するファイル群が「遷移元」欄に登録された遷移状況が存在するか否かを判定する。存在する場合には、処理はステップS42へ移行し、存在しない場合には、処理はステップS43へ移行する。
ステップS42では、管理部25が、「遷移先」欄のファイル群が「配信済みファイル群」と一致する遷移状況の「遷移先」欄、及び「予定時間」欄の情報を取得する。そして、管理部25は、取得した情報を管理情報テーブル35に記録し、決定処理または配信処理に戻る。
一方、ステップS43では、管理部25が、ファイル群遷移テーブル33から所定のルールで選択した遷移状況の「遷移先」欄、及び「予定時間」欄の情報を取得する。そして、管理部25は、取得した情報を管理情報テーブル35に記録し、決定処理または配信処理に戻る。
次に、図17を参照して、上記決定処理のステップS21で、クライアント端末40から受け付けた要求が配信終了要求であった場合の処理について説明する。
ステップS51で、管理部25が、要求受信部22からから受け渡された配信終了要求に含まれるクライアントID及びアプリIDと、管理情報テーブル35の「クライアントID」欄、及び「アプリID」欄が一致する管理情報を検索する。管理部25は、検索した管理情報の「配信状況」欄に「完了」を記録する。
次に、ステップS52で、管理部25が、配信終了要求にアクセスログが含まれるか否かを判定する。アクセスログが含まれる場合には、処理はステップS53へ移行し、管理部25が、アクセスログをアクセスログテーブル36に登録して、決定処理を終了する。アクセスログが含まれない場合には、そのまま決定処理を終了する。
次に、図18に示す更新処理について説明する。なお、登録処理(図13)と同様の処理については、同一符号を付して、詳細な説明を省略する。
ステップS61で、更新部27は、アプリ保持部31に登録されたアプリケーションから1つを選択する。次に、ステップS12で、更新部27は、分割数を1つ選択する。
次に、ステップS62で、更新部27が、アクセスログテーブル36に蓄積されたアクセスログを、クライアントID毎かつアプリID毎に、ファイルアクセス時間を用いて時系列に並べるなどして、アクセスログを解析する。次に、ステップS63で、更新部27は、アクセスログの解析結果に基づいて、アプリケーションを所定の分割数に再分割し、ファイル群テーブル32を更新する。
次に、ステップS64で、更新部27が、アクセスログの解析結果から、アクセスされたファイルの順番、及びアクセスされた時間間隔に基づいて、ファイル群の遷移状況を解析し、ファイル群遷移テーブル33を更新する。
次に、ステップS15で、更新部27が、全ての分割数を選択済みか否かを判定し、未選択の分割数が存在する場合には、処理はステップS12に戻る。全ての分割数を選択済みの場合には、処理はステップS65へ移行する。
ステップS65では、更新部27が、アプリ保持部31に登録されたアプリケーションの全てを選択済みか否かを判定する。未選択のアプリケーションが存在する場合には、処理はステップS61に戻り、次のアプリケーションを選択して、ステップS61~S65の処理を繰り返す。全てのアプリケーションを選択済みの場合には、更新処理を終了する。
次に、図19に示すクライアント側処理について説明する。
ステップS71で、要求部41が、自端末のクライアントID、及び配信開始を要求するアプリケーションのアプリIDを含む配信開始要求を、配信装置20へ送信する。
次に、ステップS72で、取得部43が、配信装置20から配信されたファイル群を取得したか否かを判定する。取得していない場合には、取得するまで待機する。取得した場合には、処理はステップS73へ移行し、取得部43が、取得したファイル群をファイル保持部52に記憶する。
次に、ステップS74で、実行部42が、ファイル保持部52に保持されたファイルにアクセスしながら、アプリケーションを実行する。次に、ステップS75で、実行部42が、アプリケーションの実行に必要なファイルがファイル保持部52に保持されているか否かを判定する。保持されている場合には、処理はステップS76へ移行し、実行部42が、ファイル保持部52から必要なファイルを取得し、ステップS78へ移行する。一方、必要なファイルがファイル保持部52に保持されていない場合には、実行部42が、要求部41に必要なファイルを要求する。そして、要求部41が、クライアントID、アプリID、及び必要なファイルのファイル名を含むファイル要求を、配信装置20に送信し、ステップS78へ移行する。
ステップS78では、実行部42が、ファイル保持部52にアクセスしたファイルアクセス時間、及び必要なファイルのファイル名を含むアクセスログ51を記録する。
次に、ステップS79で、実行部42が、アプリケーションの実行を終了するか否かを判定する。終了する場合には、処理はステップS80へ移行し、終了しない場合には、処理はステップS74に戻る。
ステップS80では、要求部41が、クライアントID、アプリID、及びアクセスログを含む配信終了要求を、配信装置20に送信し、クライアント側処理を終了する。
以上説明したように、本実施形態に係る配信装置によれば、アプリケーションを複数のファイル群に分割して配信する。この際、予め定めた複数パターンのファイル群の遷移状況と、クライアント端末でのファイルの使用状況とに基づいて、動的にファイル群の配信スケジュールを決定する。これにより、アプリケーションを実行するクライアント端末で必要となるファイルを、適切に先読み配信することができ、アプリケーションを分割して配信する際に、クライアント端末での待機時間を低減することができる。
また、決定した配信スケジュールに基づいて配信されたファイル群に、クライアント端末で必要なファイルが含まれていない場合には、クライアント端末の要求に応じて、即時に必要なファイルを含むファイル群を配信する。そして、この場合でも、クライアント端末に配信したファイル群、すなわちクライアント端末で取得したファイル群の情報を用いて、次に配信するファイル群を決定する。このため、1度外れた先読み配信に影響されることなく、以降の先読み配信を行うことができる。
また、少なくともクライアント端末で直前に取得したファイル群の情報を用いて配信スケジュールを決定することで、先読み精度の高い配信スケジュールを決定することができる。特に、パッケージドウェブアプリケーションは、ユーザ操作によってページ遷移していくという特性を有するため、ユーザの操作によって、次に必要なファイル群が変化する。また、ページ単位での遷移することは、前回取得したファイル群とその次に必要となるファイル群との結びつきが強いことを表す。従って、始めに全ての配信スケジュールを決めるのでなく、次回に必要なファイル群を、少なくともクライアント端末で直前に取得したファイル群から推定することが有効となる。
また、アプリケーションを複数のファイル群に分割する分割数を、配信装置に接続中のクライアント端末数に基づいて決定する。これにより、接続中のクライアント端末数の変化にも適応的に対応して、通信帯域の圧迫を低減しつつ、不要なアプリケーションの分割を回避することができる。特に、所定エリア内だけのローカルネットワークや、アプリケーションサーバ毎の専用ネットワークなどの環境では、配信するアプリケーションの容量と、通信帯域との相関が高い。例えば、学校で生徒が保持するクライアント端末に一斉にテストのアプリケーションを配信するような場合である。従って、アプリケーションの分割数を調整することで、配信するアプリケーションの容量を調整し、通信帯域の圧迫を回避することができる。
また、クライアント端末におけるアクセスログを用いて、アプリケーションの再分割、及び遷移状況の再解析を行う。そのため、それ以降は、クライアント端末における実際のファイルの使用状況を反映した配信スケジュールの決定が可能となり、より適切に先読み配信することができる。
なお、開示の技術は、上記実施形態の態様に限定されない。例えば、クライアント端末を利用するユーザの属性を考慮して、配信スケジュールを決定してもよい。この場合、クライアント端末からアプリケーションの配信開始要求を配信装置に送信する際などに、ユーザの属性情報も送信する。そして、配信装置では、ファイル群テーブル及びファイル遷移テーブルを、ユーザの属性毎に用意しておく。また、図20に示すように、管理情報テーブルにおいて、管理情報の項目として、ユーザの属性も管理する。そして、管理情報テーブルに記録されたユーザの属性に応じたファイル群テーブル及びファイル遷移テーブルを選択して、配信スケジュールを決定する。これにより、ユーザの属性の相違により、ページ遷移が異なるようなアプリケーションに対して、より適切にファイル群の配信スケジュールを決定することができる。さらに、この場合、ユーザの属性に応じたファイル群遷移テーブルに、配信済みファイル群と「遷移元」が一致する遷移状況が存在しない場合には、類似する属性についてのファイル群遷移テーブルから、該当の遷移状況を選択してもよい。
また、上記実施形態では、クライアント端末でのファイル群の使用状況として、配信装置からクライアント端末へ配信したファイル群の配信状況を用いる場合について説明したが、これに限定されない。クライアント端末側でファイルアクセスがある都度、アクセス時間、及びアクセスしたファイル、またはそのファイルを含むファイル群を配信装置に通知するなどして、クライアント端末でのファイル群の使用状況を直接取得してもよい。
また、上記実施形態では、アプリケーションの再分割、及び遷移状況の再解析に、クライアント端末から取得したアクセスログを用いる場合について説明したが、これに限定されず、管理情報テーブルに記録した配信状況を用いてもよい。この場合、配信済みファイル群の情報に加え、配信済みの各ファイル群を配信した時間の情報も記録しておくとよい。
また、上記実施形態では、配信装置側で図8や図20に示すような管理情報テーブルを管理する場合について説明したが、クライアント端末側で管理するようにしてもよい。この場合、配信装置で決定した分割数の情報と、クライアント端末が要求するアプリケーション及び決定した分割数に対応したファイル群遷移テーブルの部分情報とをクライアント側に送信する。そして、クライアント端末において、上記の配信スケジュールの決定と同様の方法で、ファイル群の要求スケジュールを決定し、決定したスケジュールに従って、配信装置にファイル群を要求すればよい。
また、上記では、配信プログラム70が記憶装置63に、クライアント側プログラム90が記憶装置83に予め記憶(インストール)されている態様を説明したが、これに限定されない。CD-ROM、DVD-ROM、USBメモリ等の記憶媒体に記録された形態で提供することも可能である。
Claims (24)
- コンピュータに、
アプリケーションを所定の分割数で分割した複数のファイル群を端末に配信する際に、前記アプリケーションが実行される際の前記複数のファイル群の各々の使用順に基づいて予め定めたファイル群の遷移状況、及び前記端末におけるファイル群の使用状況に基づいて、次に配信するファイル群を決定し、
決定したファイル群を、前記端末に配信する
ことを含む処理を実行させる配信方法。 - 前記次に配信するファイル群を決定する際に、前記所定の分割数を、前記アプリケーションの配信を要求するために接続されている端末数に応じて決定する請求項1記載の配信方法。
- 前記ファイル群の遷移状況として、前記アプリケーションが実行される際に、前記複数のファイル群の各々が必要となる順番、及び必要となる予定時間のパターンを複数定めた請求項1または請求項2記載の配信方法。
- 前記端末におけるファイル群の使用状況を、前記端末に配信されたファイル群の配信状況とする請求項1~請求項3のいずれか1項記載の配信方法。
- 前記端末に配信されたファイル群の配信状況を、少なくとも直前に配信したファイル群の配信状況とする請求項4記載の配信方法。
- 前記次に配信するファイル群の決定に用いるために、前記端末に配信されたファイル群の配信状況、前記ファイル群の遷移状況に基づいて決定した次に配信するファイル群、及び該ファイル群が必要となる予定時間を含む管理情報を管理する請求項1~請求項5のいずれか1項記載の配信方法。
- 前記決定したファイル群を配信する際に、前記管理情報に基づいて、前記予定時間が現時点に近い順にファイル群を配信する請求項6記載の配信方法。
- 前記決定したファイル群を配信することに加え、前記端末からファイル群の配信を要求された場合、要求されたファイル群を、要求されたタイミングで配信する請求項1~請求項7のいずれか1項記載の配信方法。
- 前記決定したファイル群を配信する際に、ファイル群が配信されている他の端末数が所定数以下の場合に配信する請求項1~請求項8のいずれか1項記載の配信方法。
- 前記コンピュータに、前記端末に配信されたファイル群の配信状況、または、前記端末におけるファイル群の使用状況に基づいて、前記アプリケーションの分割、及び前記ファイル群の遷移状況を更新することをさらに含む処理を実行させる請求項1~請求項9のいずれか1項記載の配信方法。
- 前記次に配信するファイル群を決定する際に、ユーザの属性に応じた前記ファイル群の遷移状況、及び前記端末のユーザの属性に基づいて、前記次に配信するファイル群を決定する請求項1~請求項10のいずれか1項記載の配信方法。
- アプリケーションを所定の分割数で分割した複数のファイル群を端末に配信する際に、前記アプリケーションが実行される際の前記複数のファイル群の各々の使用順に基づいて予め定めたファイル群の遷移状況、及び前記端末におけるファイル群の使用状況に基づいて、次に配信するファイル群を決定する決定部と、
前記決定部で決定されたファイル群を、前記端末に配信する配信部と、
を含む配信装置。 - 前記決定部は、前記所定の分割数を、前記アプリケーションの配信を要求するために接続されている端末数に応じて決定する請求項12記載の配信装置。
- 前記ファイル群の遷移状況として、前記アプリケーションが実行される際に、前記複数のファイル群の各々が必要となる順番、及び必要となる予定時間のパターンを複数定めた請求項12または請求項13記載の配信装置。
- 前記端末におけるファイル群の使用状況を、前記端末に配信されたファイル群の配信状況とする請求項12~請求項14のいずれか1項記載の配信装置。
- 前記端末に配信されたファイル群の配信状況を、少なくとも直前に配信したファイル群の配信状況とする請求項15記載の配信装置。
- 前記決定部は、前記端末に配信されたファイル群の配信状況、前記ファイル群の遷移状況に基づいて決定した次に配信するファイル群、及び該ファイル群が必要となる予定時間を含む管理情報を管理する請求項12~請求項16のいずれか1項記載の配信装置。
- 前記配信部は、前記管理情報に基づいて、前記予定時間が現時点に近い順にファイル群を配信する請求項17記載の配信装置。
- 前記配信部は、前記端末からファイル群の配信を要求された場合、要求されたファイル群を、要求されたタイミングで配信する請求項12~請求項18のいずれか1項記載の配信装置。
- 前記配信部は、ファイル群が配信されている他の端末数が所定数以下の場合に、前記決定部で決定されたファイル群を配信する請求項12~請求項19のいずれか1項記載の配信装置。
- 前記端末に配信されたファイル群の配信状況、または、前記端末におけるファイル群の使用状況に基づいて、前記アプリケーションの分割、及び前記ファイル群の遷移状況を更新する更新部を含む請求項12~請求項20のいずれか1項記載の配信装置。
- 前記決定部は、ユーザの属性に応じた前記ファイル群の遷移状況、及び前記端末のユーザの属性に基づいて、前記次に配信するファイル群を決定する請求項12~請求項21のいずれか1項記載の配信装置。
- コンピュータに、
アプリケーションを所定の分割数で分割した複数のファイル群を端末に配信する際に、前記アプリケーションが実行される際の前記複数のファイル群の各々の使用順に基づいて予め定めたファイル群の遷移状況、及び前記端末におけるファイル群の使用状況に基づいて、次に配信するファイル群を決定し、
決定したファイル群を、前記端末に配信する
ことを含む処理を実行させる配信プログラム。 - コンピュータに、
アプリケーションを所定の分割数で分割した複数のファイル群を端末に配信する際に、前記アプリケーションが実行される際の前記複数のファイル群の各々の使用順に基づいて予め定めたファイル群の遷移状況、及び前記端末におけるファイル群の使用状況に基づいて、次に配信するファイル群を決定し、
決定したファイル群を、前記端末に配信する
ことを含む処理を実行させる配信プログラムを記憶した記憶媒体。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2014/082174 WO2016088237A1 (ja) | 2014-12-04 | 2014-12-04 | 配信方法、装置、及びプログラム |
EP14907482.5A EP3229144A4 (en) | 2014-12-04 | 2014-12-04 | Distribution method, device, and program |
JP2016562156A JPWO2016088237A1 (ja) | 2014-12-04 | 2014-12-04 | 配信方法、装置、及びプログラム |
US15/605,182 US20170264668A1 (en) | 2014-12-04 | 2017-05-25 | File delivery method, device, and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2014/082174 WO2016088237A1 (ja) | 2014-12-04 | 2014-12-04 | 配信方法、装置、及びプログラム |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/605,182 Continuation US20170264668A1 (en) | 2014-12-04 | 2017-05-25 | File delivery method, device, and program |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2016088237A1 true WO2016088237A1 (ja) | 2016-06-09 |
Family
ID=56091209
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2014/082174 WO2016088237A1 (ja) | 2014-12-04 | 2014-12-04 | 配信方法、装置、及びプログラム |
Country Status (4)
Country | Link |
---|---|
US (1) | US20170264668A1 (ja) |
EP (1) | EP3229144A4 (ja) |
JP (1) | JPWO2016088237A1 (ja) |
WO (1) | WO2016088237A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021199187A1 (ja) * | 2020-03-30 | 2021-10-07 | 三菱電機株式会社 | 無線機器及び空気調和システム |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110531982B (zh) * | 2018-05-23 | 2022-12-13 | 福建天晴数码有限公司 | 一种自适应打包方法及系统 |
US20200241500A1 (en) * | 2019-01-25 | 2020-07-30 | Taiwan Development Institute | Numerical control machine tool processing program sharing method |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000330881A (ja) * | 1999-05-24 | 2000-11-30 | Hitachi Software Eng Co Ltd | データ配信制御方法およびシステム |
JP2003288290A (ja) * | 2002-03-28 | 2003-10-10 | Nippon Telegr & Teleph Corp <Ntt> | ファイル配信方法 |
JP2009009297A (ja) * | 2007-06-27 | 2009-01-15 | Noritsu Koki Co Ltd | データ配信方法およびデータ配信システム |
JP2012037981A (ja) * | 2010-08-04 | 2012-02-23 | Panasonic Corp | コンテンツ再生装置、コンテンツ再生方法、プログラム、及びコンテンツ配信システム |
JP2013257834A (ja) * | 2012-06-14 | 2013-12-26 | Sharp Corp | データ配信システム、データ配信方法及び配信サーバー |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7197570B2 (en) * | 1998-07-22 | 2007-03-27 | Appstream Inc. | System and method to send predicted application streamlets to a client device |
US20020078184A1 (en) * | 2000-12-18 | 2002-06-20 | Eiji Ujyo | Record medium, multicast delivery method and multicast receiving method |
JP5400889B2 (ja) * | 2010-03-31 | 2014-01-29 | 株式会社日立ソリューションズ | ファイルサーバ装置、及びストレージシステムの管理方法、並びにプログラム |
US8782106B2 (en) * | 2010-07-02 | 2014-07-15 | Code Systems Corporation | Method and system for managing execution of virtual applications |
US8521902B2 (en) * | 2010-12-02 | 2013-08-27 | Microsoft Corporation | Shared buffer for connectionless transfer protocols |
US9054920B2 (en) * | 2011-03-31 | 2015-06-09 | Alcatel Lucent | Managing data file transmission |
WO2014048477A1 (en) * | 2012-09-27 | 2014-04-03 | Telefonaktiebolaget L M Ericsson (Publ) | Content delivery in a communications network |
US10101801B2 (en) * | 2013-11-13 | 2018-10-16 | Cisco Technology, Inc. | Method and apparatus for prefetching content in a data stream |
US9483636B2 (en) * | 2014-01-17 | 2016-11-01 | Microsoft Technology Licensing, Llc | Runtime application integrity protection |
US20150229701A1 (en) * | 2014-02-12 | 2015-08-13 | Bank Of America Corporation | Sending files with multiple job sessions |
-
2014
- 2014-12-04 EP EP14907482.5A patent/EP3229144A4/en not_active Withdrawn
- 2014-12-04 JP JP2016562156A patent/JPWO2016088237A1/ja not_active Withdrawn
- 2014-12-04 WO PCT/JP2014/082174 patent/WO2016088237A1/ja active Application Filing
-
2017
- 2017-05-25 US US15/605,182 patent/US20170264668A1/en not_active Abandoned
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000330881A (ja) * | 1999-05-24 | 2000-11-30 | Hitachi Software Eng Co Ltd | データ配信制御方法およびシステム |
JP2003288290A (ja) * | 2002-03-28 | 2003-10-10 | Nippon Telegr & Teleph Corp <Ntt> | ファイル配信方法 |
JP2009009297A (ja) * | 2007-06-27 | 2009-01-15 | Noritsu Koki Co Ltd | データ配信方法およびデータ配信システム |
JP2012037981A (ja) * | 2010-08-04 | 2012-02-23 | Panasonic Corp | コンテンツ再生装置、コンテンツ再生方法、プログラム、及びコンテンツ配信システム |
JP2013257834A (ja) * | 2012-06-14 | 2013-12-26 | Sharp Corp | データ配信システム、データ配信方法及び配信サーバー |
Non-Patent Citations (1)
Title |
---|
See also references of EP3229144A4 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021199187A1 (ja) * | 2020-03-30 | 2021-10-07 | 三菱電機株式会社 | 無線機器及び空気調和システム |
JPWO2021199187A1 (ja) * | 2020-03-30 | 2021-10-07 | ||
JP7267503B2 (ja) | 2020-03-30 | 2023-05-01 | 三菱電機株式会社 | 無線機器及び空気調和システム |
Also Published As
Publication number | Publication date |
---|---|
EP3229144A1 (en) | 2017-10-11 |
EP3229144A4 (en) | 2017-11-15 |
US20170264668A1 (en) | 2017-09-14 |
JPWO2016088237A1 (ja) | 2017-09-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210044662A1 (en) | Server side data cache system | |
KR101792582B1 (ko) | 칼럼형 데이터베이스의 히스토그램을 이용한 효율적인 질의 처리 | |
US8555018B1 (en) | Techniques for storing data | |
US10606806B2 (en) | Method and apparatus for storing time series data | |
US8271501B2 (en) | Web search among rich media objects | |
CN103970870A (zh) | 数据库查询方法和服务器 | |
TWI712907B (zh) | 一種透過文件獲取對網頁進行區塊鏈存證的方法及裝置 | |
JP2013535065A (ja) | コンテンツアイテムヒストグラムを用いた流行のコンテンツアイテムの識別 | |
US9684463B1 (en) | Predictive block allocation in a flash device | |
CN103488766A (zh) | 应用程序搜索方法和装置 | |
JP6870466B2 (ja) | 制御プログラム、制御方法、制御装置、及びデータベースサーバ | |
US20080140691A1 (en) | Method, Device and Computer Program Product for Optimizing File Placement in a Storage System | |
CN105138649A (zh) | 数据的搜索方法、装置及终端 | |
WO2016088237A1 (ja) | 配信方法、装置、及びプログラム | |
CN110222046B (zh) | 列表数据的处理方法、装置、服务器和存储介质 | |
CN106156038B (zh) | 数据存储方法和装置 | |
CN101247405A (zh) | 计算下载时间及资源下载的方法、系统及装置 | |
US9405786B2 (en) | System and method for database flow management | |
CN113127438B (zh) | 用于存储数据的方法、装置、服务器和介质 | |
JP2016103115A (ja) | データベースを管理するシステム及び方法 | |
CN113297267A (zh) | 数据缓存和任务处理方法、装置、设备以及存储介质 | |
CN108021464B (zh) | 一种应用程序响应数据的兜底处理的方法以及装置 | |
US9177255B1 (en) | Cloud systems and methods for determining the probability that a second application is installed based on installation characteristics | |
US20130332664A1 (en) | System and Method for Managing Network Navigation | |
TW201905669A (zh) | App應用展示介面的方法、裝置和電子設備 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 14907482 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2016562156 Country of ref document: JP Kind code of ref document: A |
|
REEP | Request for entry into the european phase |
Ref document number: 2014907482 Country of ref document: EP |
|
NENP | Non-entry into the national phase |
Ref country code: DE |