WO2024025252A1 - 오프-디맨드 기반 콘텐츠 다운로드를 위한 방법 및 장치 - Google Patents
오프-디맨드 기반 콘텐츠 다운로드를 위한 방법 및 장치 Download PDFInfo
- Publication number
- WO2024025252A1 WO2024025252A1 PCT/KR2023/010508 KR2023010508W WO2024025252A1 WO 2024025252 A1 WO2024025252 A1 WO 2024025252A1 KR 2023010508 W KR2023010508 W KR 2023010508W WO 2024025252 A1 WO2024025252 A1 WO 2024025252A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- download
- content
- terminal
- client terminal
- downloading
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 51
- 230000008569 process Effects 0.000 claims abstract description 20
- 239000003795 chemical substances by application Substances 0.000 description 16
- 230000001413 cellular effect Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 9
- 230000005540 biological transmission Effects 0.000 description 7
- 230000000694 effects Effects 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000010079 rubber tapping Methods 0.000 description 2
- 230000004622 sleep time Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/41—Structure of client; Structure of client peripherals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/41—Structure of client; Structure of client peripherals
- H04N21/4104—Peripherals receiving signals from specially adapted client devices
- H04N21/4108—Peripherals receiving signals from specially adapted client devices characterised by an identification number or address, e.g. local network address
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/443—OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/443—OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
- H04N21/4432—Powering on the client, e.g. bootstrap loading using setup parameters being stored locally or received from the server
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/443—OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
- H04N21/4436—Power management, e.g. shutting down unused components of the receiver
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/45—Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
- H04N21/458—Scheduling content for creating a personalised stream, e.g. by combining a locally stored advertisement with an incoming stream; Updating operations, e.g. for OS modules ; time-related management operations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/45—Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
- H04N21/466—Learning process for intelligent management, e.g. learning user preferences for recommending movies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/45—Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
- H04N21/466—Learning process for intelligent management, e.g. learning user preferences for recommending movies
- H04N21/4668—Learning process for intelligent management, e.g. learning user preferences for recommending movies for recommending content, e.g. movies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/482—End-user interface for program selection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/482—End-user interface for program selection
- H04N21/4826—End-user interface for program selection using recommendation lists, e.g. of programs or channels sorted out according to their score
Definitions
- This disclosure relates to a method and device for off-demand based content download.
- OTT services Over-The-Top services
- the number of OTT services that provide a download service that allows users to download desired content in advance and enable content playback even in situations where streaming is not possible, such as in poor network environments or on airplanes, is increasing.
- Download services are mainly provided in the form of downloads to continue watching content that a user is watching, or downloads in response to a user's download request for specific content. These download services cause the terminal to download content in advance that may not be viewed, causing a large load on the back-end system. Therefore, it is necessary to provide a download service and simultaneously prevent the download service from being excessively active.
- Most existing OTT services are provided in an on-demand manner based on user requests, and since the service is launched based on user demand, a lot of statistical data is needed to predict traffic according to the service. There is a problem that it is necessary and traffic control is difficult.
- the purpose of the present disclosure is to provide a method and device that can provide personalized recommended content to users on an off-demand basis.
- the purpose of the present disclosure is to provide a method and device that can provide a stable service by minimizing network load caused by off-demand based downloading.
- a method of operating a terminal for pre-downloading content prior to a user's request comprising: obtaining an identifier assigned to the terminal; Obtaining a list of one or more contents organized through personalized recommendations for the user; and downloading at least a portion of the one or more contents in one or more time sections determined based on the identifier among preset pre-download sections.
- a download policy manager that obtains an identifier assigned to a terminal and a list of one or more contents organized through personalized recommendations for the user of the terminal; and a download agent that downloads at least a portion of the one or more contents in one or more time sections determined based on the identifier among the preset pre-download sections.
- a computer-readable recording medium storing instructions, wherein the instructions, when executed by the computer, cause the computer to perform the above-described method. provides.
- a stable service can be provided by controlling traffic to minimize network load due to off-demand based downloading.
- the timing of providing recommended content can be limited to the minimum time based on network usage standards, thereby increasing network utilization and ensuring the stability of network infrastructure operation.
- FIG. 1 is a block diagram schematically showing a content provision system according to an embodiment of the present disclosure.
- Figure 2 is a flowchart showing a service provision procedure according to an embodiment of the present disclosure.
- Figure 3 is an example diagram for explaining a scheduling method according to an embodiment of the present disclosure.
- Figure 4 is a flowchart showing the operation of a client terminal for off-demand based download according to an embodiment of the present disclosure.
- Figure 5 is a flowchart showing the operation of a client terminal to prevent service failure due to off-demand based download according to an embodiment of the present disclosure.
- Figure 6 is a flowchart showing the operation of a client terminal for managing incompletely downloaded content according to an embodiment of the present disclosure.
- Figure 7 is a block diagram schematically showing a client terminal according to an embodiment of the present disclosure.
- symbols such as first, second, i), ii), a), and b) may be used. These codes are only used to distinguish the component from other components, and the nature, sequence, or order of the component is not limited by the code. In the specification, when a part is said to 'include' or 'have' a certain element, this means that it does not exclude other elements, but may further include other elements, unless explicitly stated to the contrary. .
- FIG. 1 is a block diagram schematically showing a content provision system according to an embodiment of the present disclosure.
- the content provision system 10 may include all or part of a client terminal (100), a content server (120), and a back-end platform (140). there is. Not all blocks shown in FIG. 1 are essential components, and some blocks included in the content providing system 10 may be added, changed, or deleted in other embodiments.
- the client terminal 100 is a device that can receive and play content from the content server 120 using wireless or wired communication.
- the content may be media content, but is not limited to this example.
- the client terminal 100 may include an application that can receive various services related to content from the content server 120 and/or the back-end platform 140.
- the client terminal 100 can download and/or receive content from the content server 120 through streaming and play it.
- the content server 120 may be implemented as a CDN (Content Delivery Network) including an original server and one or more cache servers.
- CDN Content Delivery Network
- the backend platform 140 may perform user authentication by linking account information with the client terminal 100 and provide application initial setting information for service linking to the client terminal 100.
- the back-end platform 140 may provide the client terminal 100 with a playlist including a list of one or more contents and a Uniform Resource Locator (URL) for downloading the contents.
- the programming list may be a programming list of personalized recommended content for the user of the client terminal 100, but is not limited to this example.
- the client terminal 100 requests user authentication from the content server 120 and/or the back-end platform 140 via an API gateway (Application Programming Interface gateway). , initial setting information request, content list request, and/or content request, etc. may be transmitted and a response thereto may be received.
- the API gateway may serve to integrate end points for requests from the client terminal 100.
- the API gateway delivers the requests received from the client terminal 100 to the content server 120 and/or the back-end platform 140, and sends the responses received from the content server 120 and/or the back-end platform 140 to the client terminal. It can be delivered to (100).
- the API gateway may process and deliver the received request or response.
- Figure 2 is a flowchart showing a service provision procedure according to an embodiment of the present disclosure.
- the client terminal 100 may call an authentication API to perform user authentication (S210).
- the user authentication request transmitted by the client terminal 100 may include user account information.
- the client terminal 100 may call the initial setup API to obtain application initial setup information for service integration from the backend platform 140 (S220).
- the application initial setting information may include an identifier (IDentifier) assigned to the client terminal 100.
- the identifier may be a unique identifier (unique ID) for an application installed on the client terminal 100 and/or a user, but is not limited thereto.
- the application initial setting information may further include setting information for the pre-download section, setting information for frames and slots constituting the pre-download section, and/or scheduling policy.
- the client terminal 100 may apply the received application initial setting information to the application (S230).
- the client terminal 100 may obtain a play list from the backend platform 140 by calling the content list request API (S240).
- the content list request API may be, but is not limited to, an Electronic Program Guide (EPG) API.
- the playlist may include a list of contents organized through personalized recommendations for the user of the client terminal 100.
- the playlist may further include an address (URL, Uniform Resource Locator) for downloading each content, the number of media segments to be downloaded in advance for each content, and/or a time value, etc.
- the time value may be, for example, a time value corresponding to the last download point to support a resume or resume function for content with a download history.
- the contents may be a plurality of different videos or a plurality of different sections within a single video, but are not limited thereto.
- the client terminal 100 may schedule a time period for downloading contents in the content list based on application initial setting information (S250). For example, the client terminal 100 may determine one or more time sections for downloading content within a preset pre-download section.
- the time section may be a time section corresponding to a target slot determined based on the identifier among a plurality of slots constituting each frame included in the pre-download section. Specific details about the scheduling method of the client terminal 100 will be described later with reference to FIG. 3.
- the client terminal 100 may download at least some of the contents in the content list within the scheduled time interval (S260).
- the client terminal 100 may download content from the content server 120 by calling the content request API.
- the download of content may be initiated without receiving a download request from the user and may be performed in the background of the client terminal 100.
- the client terminal 100 may repeatedly download content within a scheduled time interval until a preset download end condition is satisfied (S270).
- the download end condition may include, for example, completion of download of all contents in the content list or end of the pre-download section, but is not limited thereto.
- the client terminal 100 can play the selected content without a network connection (S290).
- Figure 3 is an example diagram for explaining a scheduling method according to an embodiment of the present disclosure.
- the pre-download section may be composed of N frames (where N is a natural number), and each frame may be composed of M slots (where M is a natural number).
- the client terminal 100 may determine one or more target slots to perform content download among slots constituting each frame based on the identifier obtained in the initial setup procedure. For example, the number of the target slot where the i-th client terminal will perform content download in the j-th frame may be determined as in Equation 1, but is not limited to this, and each client terminal 100 or back-end platform 140 It may vary depending on the scheduling policy.
- n j (i) is the number of the target slot where the ith client terminal will perform content download in the jth frame
- seed(i) is the identifier assigned to the ith client terminal
- ⁇ slot is the number of slots in each frame. This is a slot offset to make the target slot number different.
- the client terminal 100 may be unable to download content from a specific slot due to various obstacles.
- time diversity to overcome service failure can be provided by adjusting the length of the frame and the number of slots within the frame. For example, assuming that the typical service interruption period due to an infrastructure failure is 1 hour and the frame length is set to 1 hour, the client terminal 100 can download content in a frame other than the frame in which the infrastructure failure occurred. there is.
- the pre-download section, the number of frames in the pre-download section, the length of the frame, the number of slots in each frame, and/or slot offset, etc. are set by the back-end platform 140 and sent to the client terminal 100 through application initialization information. It may be indicated to, but is not limited to this.
- the pre-download section may be designated by the user, or may be determined by the client terminal 100 based on whether the user is using the client terminal 100.
- the slot offset may be a value set by the client terminal 100 itself or a setting value included in the installation file of the application.
- Figure 4 is a flowchart showing the operation of a client terminal for off-demand based download according to an embodiment of the present disclosure.
- the client terminal 100 may obtain an assigned identifier and a list of one or more contents organized through personalized recommendations for the user of the client terminal 100 (S400).
- the identifier and content list may be obtained from the back-end platform 140 during an initial setup procedure following execution of an application providing a content service, but are not limited thereto.
- the client terminal 100 can set a wake-up time for content download and switch to sleep mode (S410).
- sleep mode may mean a state in which off-demand based downloading is disabled
- wakeup mode may mean a state in which off-demand based downloading is activated.
- Off-demand based download may refer to a download that is initiated without receiving a download request from the user.
- the client terminal 100 can set the wake-up time based on the acquired identifier. For example, among the target slots determined in each frame within the pre-download section, the start time of the closest target slot after the current time can be set as the wake-up time.
- the client terminal 100 can continuously monitor the time and check whether the set wake-up time has been reached (S420).
- the client terminal 100 may maintain the sleep mode until the set wake-up time arrives (S420, NO).
- the client terminal 100 can switch from the sleep mode to the wake-up mode and download at least part of the content in the content list (S430).
- the client terminal 100 can continuously monitor the time and check whether the preset sleep point has been reached (S440).
- the sleep time may correspond to the end time of the target slot.
- the client terminal 100 may compare the current time with the end time of the target slot or check whether a time corresponding to the length of the target slot has elapsed from the wake-up time.
- the client terminal 100 may proceed with downloading content until the set sleep point is reached (S440, NO).
- the client terminal 100 can check whether all content in the content list has been downloaded (S450).
- the client terminal 100 may set the start point of the target slot in the next frame to the wake-up point and switch to sleep mode (S410). .
- processes S410 to S450 shown in FIG. 4 may be performed in the background of the client terminal 100.
- Figure 5 is a flowchart showing the operation of a client terminal to prevent service failure due to off-demand based download according to an embodiment of the present disclosure.
- the client terminal 100 When performing processes S420 to S440 of FIG. 4, the client terminal 100 does not switch to the wake-up mode even if the wake-up time has arrived, or switches to the sleep mode even before the sleep time has arrived, based on preset conditions. can do.
- the client terminal 100 periodically or aperiodically (e.g., when it is determined as YES in step S420) before starting content download in the target slot in the current frame or during content download. , when NO is determined in process S440), it is possible to check whether a wireless LAN connection is established (S500). For example, the client terminal 100 may check whether a Wi-Fi (Wireless Fidelity) connection is established through an external device such as a wireless access point.
- Wi-Fi Wireless Fidelity
- the client terminal 100 may switch to wake-up mode (or maintain wake-up mode) and download at least part of the content in the content list (S430). .
- the client terminal 100 can check whether the state of the cellular network satisfies preset conditions (S520).
- the client terminal 100 can utilize wireless signal strength (RSSI, Received Signal Strength Indicator) to check the network status without control information from a separate server.
- RSSI wireless signal strength
- the client terminal 100 may check whether the wireless signal strength of the cellular network satisfies the condition of being equal to or greater than a preset strength.
- the client terminal 100 sets the start time of the target slot in the next frame as the wake-up time and maintains sleep mode (or switches to sleep mode). ) can be done (S410).
- the client terminal 100 may check whether the location and/or current time of the terminal 100 satisfies the preset condition (S540). The client terminal 100 may check whether the location and current time of the client terminal 100 satisfy the condition of not falling within a preset download ban area and/or download ban time zone. Meanwhile, FIG. 5 shows that the client terminal 100 checks the location and/or time conditions only when the state of the cellular network satisfies preset conditions, but the present disclosure is not limited to this order.
- the client terminal 100 sets the start time of the target slot in the next frame to the wake-up time and enters sleep mode. can be maintained (or switched to sleep mode) (S410).
- the client terminal 100 switches to wake-up mode (or maintains wake-up mode) to establish a cellular network. At least part of the content in the content list can be downloaded (S430).
- the client terminal 100 controls off-demand based downloads based on whether at least one of the wireless connection status, location, and current time satisfies a preset condition, thereby processing the user's real-time request. Failure of on-demand services can be prevented. In particular, the client terminal 100 can prevent failure of paid services using the cellular network by checking the status of the cellular network or whether there is an event. For example, when a real-time large-scale event such as the World Cup or the Olympics occurs, the request for on-demand service using the cellular network may be very large. At this time, the client terminal 100 can control the off-demand based download service through terminal location information and/or time information that can be acquired by itself.
- Figure 6 is a flowchart showing the operation of a client terminal for managing incompletely downloaded content according to an embodiment of the present disclosure.
- the client terminal 100 may manage content that has not been downloaded until the end of the target slot in the current frame based on preset conditions.
- the client terminal 100 can check whether all target slots in the pre-download section have ended (S600). As an example, the client terminal 100 may check whether the current frame is the last frame in the pre-download section. As another example, the client terminal 100 may check whether the time difference between the current time and the end of the pre-download section is less than or equal to a preset threshold.
- the client terminal 100 may set the start time of the target slot in the next frame as the wake-up time and switch to sleep mode (S410).
- the client terminal 100 can check whether content can be continued from another pre-download section (S620). For example, if the application supports the resume function and/or the user allows the resume function, the client terminal 100 may determine that content from another pre-download section is possible.
- the client terminal 100 may set the start time of the target slot determined in the first frame within the next pre-download section as the wake-up time and switch to sleep mode (S410). Accordingly, even if there is incomplete content that has not been completely downloaded in a specific pre-download section, the client terminal 100 can download the remaining portion of the incomplete content in the next pre-download section.
- the next pre-download section may be, for example, a pre-download section designated for another date, but is not limited thereto.
- the client terminal 100 can check whether it is possible to continue watching the content using streaming (S620). For example, if the application supports the resume function and/or the continue view function is permitted by the user, the client terminal 100 may determine that content continuation is possible.
- the client terminal 100 may delete incomplete content that has not been downloaded within the pre-download section (S660).
- the client terminal 100 may not delete incomplete content that has not completed downloading within the pre-download section. Thereafter, when the incomplete content is selected as content to be played, the client terminal 100 can play the remaining portion of the incomplete content through streaming.
- Figure 7 is a block diagram schematically showing a client terminal according to an embodiment of the present disclosure.
- the client terminal 100 has a download policy manager (700), a download agent (710), a storage (720), a storage manager (730), and a local All or all of the web server (local web server, 740), local web server manager (750), player (760), player manager (player manager, 770), and user interface (user interface, 780) It may include some. Not all blocks shown in FIG. 7 are essential elements, and in other embodiments, some blocks included in the client terminal 100 may be added, changed, or deleted.
- the client terminal 100 and each component thereof may be implemented as hardware or software, or may be implemented as a combination of hardware and software. Additionally, the function of each component may be implemented as software, and one or more processors may be implemented to execute the function of the software corresponding to each component.
- the download policy manager 700 can manage policies and settings for downloading content.
- the download policy manager 700 can determine the content to be downloaded and the time period for downloading the content.
- the download policy manager 700 can receive and manage the application initial setting information and play list from the back-end platform 140.
- the application initial setting information may include an identifier assigned to the client terminal 100.
- a playlist may include a list of one or more contents organized through personalized recommendations to the user.
- the download policy manager 700 may use the acquired application initial setting information to determine a time period for the download agent 710 to download content in the playlist.
- the download policy manager 700 may switch the operation mode of the download agent 710 based on the determined time period.
- the download policy manager 700 operates in each time section corresponding to a target slot determined based on the identifier assigned to the client terminal 100 among a plurality of slots constituting each frame included in the preset pre-download section.
- the download agent 710 can be controlled to switch from sleep mode to wake-up mode.
- the download policy manager 700 sets the start point of the target slot of the next frame as the wake-up point of the download agent 710. You can set it and switch the download agent 710 to sleep mode.
- the download policy manager 700 can be set to the wake-up time of the download agent 710 and the download agent 710 can be switched to sleep mode.
- the download agent 710 may download all or part of data for playing each of the contents in the playlist in advance from the content server 120 and store it in the storage 720.
- data for playing content may include media segments and/or content properties constituting the content.
- a media segment may be composed of various media formats such as mp4, fmp4 (fragmented mp4), or ts (transport stream), and content properties include video/audio configuration information such as PAT or PMT and the index of the segment. It may include a manifest file, but is not limited to this example.
- the download agent 710 may download the content in the content list in advance from the content server 120 and store it in the storage 720 without a content request from the user. Meanwhile, when content whose download has not been completed is selected as content to be played, the download agent 710 can download the remaining portion of the content in a streaming manner.
- the download agent 710 can manage data stored in the storage 720.
- the download agent 710 may delete unnecessary data from the data stored in the storage 720 according to preset conditions. For example, if there is incomplete content that has not been downloaded within a specific pre-download section, and it is impossible to continue watching using streaming or to continue from another pre-download section, the download agent 710 removes the incomplete content from the storage 720. data can be deleted.
- the storage 720 may temporarily or semi-permanently store media segments and/or content attributes downloaded by the download agent 710.
- the storage manager 730 can check the download status and delete unnecessary data from the data stored in the storage 720.
- the local web server 740 supports content playback in the player 760 by delivering media segments and/or content properties stored in the storage 720 to the player 760, and the local web server manager 750 supports the local Settings such as the port of the web server 740 can be controlled.
- the player 760 can perform the function of playing content using media segments obtained from the local web server 740, and the player manager 770 can check the download status of the content and/or the user interface 780.
- the player 760 can be controlled according to the command given.
- the player 760 may be provided with a buffer, and playback of content may begin only when a certain amount of segments are filled in the buffer to overcome network jitter.
- the local web server 740 delivers data pre-stored in the storage 720 to the player 760, and conditions for playback of the player 760 can be satisfied quickly.
- the local web server 740 can dramatically reduce the time required for buffering by quickly filling the buffer of the player 760 with media segments pre-stored in the storage 720.
- the local web server 740 by using the local web server 740, interaction between the player 760 and service infrastructure such as the content server 120 can be minimized. Additionally, since the player 760 only needs to request consecutive segments from the local web server 740, it can be simply implemented using a known player.
- the user interface 780 may be a physical medium or a virtual medium implemented for temporary or permanent access to enable interaction between the user and the client terminal 100.
- the user interface 780 may include at least one input means that the user can operate and at least one output means that displays the results of the user's use.
- the user interface may include at least one object designed to interact with the user, such as a display screen, keyboard, mouse, text, or icon.
- the user interface 780 may display a list of one or more contents organized through personalized recommendations to the user and/or allow the user to select the contents he/she wants to view.
- the user interface 780 may receive a user's request to play or switch content through a preset gesture input.
- gesture inputs include swipe, flick, pan, tap, double tap, drag and drop, and pinch in and out. out) and may include at least one of.
- the user may request a switch to another channel through a swipe motion in a first direction, and may request a switch to other content within the same channel through a swipe motion in a second direction.
- each channel may consist of content of a specific genre, such as entertainment, drama, movie, and/or documentary.
- first direction and the second direction may be a vertical direction (i.e., upward or downward) or a horizontal direction (i.e., left or right), respectively, but are not limited to these examples.
- the user may request content playback or switching by tapping or double tapping at least one side of the screen displayed by the user interface 780.
- devices and/or methods according to an embodiment of the present disclosure can provide an off-demand based download service that can be started without a user's request.
- Off-demand services enable stable management of network traffic compared to on-demand services. Specifically, in the case of on-demand services, traffic control is difficult because content must be provided immediately according to the user's service demand. On the other hand, in an off-demand service, stable management of network traffic is possible because the timing of service provision and the timing of traffic generation on the network can be varied.
- the Utilization can occur independently.
- One terminal can play on-demand content while simultaneously downloading off-demand content in the background. Therefore, in the worst case, we can consider a case where users of both services use the services at the same time.
- the service capacity available in the infrastructure in the worst case is R on-demand ⁇ N on-demand + R off -demand ⁇ N off becomes -demand .
- off-demand traffic control it is possible to encourage off-demand content downloads during times when there is little on-demand traffic by setting a pre-download section, and furthermore, by assigning target slots, it is possible to download specific slots through target slot allocation. Traffic distribution can also be induced by dividing the users performing downloads equally. If the number of frames in the pre-download section and the number of slots in each frame are N frame and M, respectively, the minimum transmission amount of the content server 120 is up to (R off -demand ⁇ N off -demand )/(M ⁇ N frame ) It can be reduced, and the peak transmission amount can also be determined only by on-demand traffic, as R on-demand ⁇ N on-demand .
- Each component of the device or method according to the present invention may be implemented as hardware or software, or may be implemented as a combination of hardware and software. Additionally, the function of each component may be implemented as software and a microprocessor may be implemented to execute the function of the software corresponding to each component.
- Various implementations of the systems and techniques described herein may include digital electronic circuits, integrated circuits, field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), computer hardware, firmware, software, and/or these. It can be realized through combination.
- These various implementations may include being implemented as one or more computer programs executable on a programmable system.
- the programmable system includes at least one programmable processor (which may be a special purpose processor) coupled to receive data and instructions from and transmit data and instructions to a storage system, at least one input device, and at least one output device. or may be a general-purpose processor).
- Computer programs also known as programs, software, software applications or code
- Computer-readable recording media include all types of recording devices that store data that can be read by a computer system. These computer-readable recording media are non-volatile or non-transitory such as ROM, CD-ROM, magnetic tape, floppy disk, memory card, hard disk, magneto-optical disk, and storage device. It may be a medium, and may further include a transitory medium such as a data transmission medium. Additionally, the computer-readable recording medium may be distributed in a computer system connected to a network, and the computer-readable code may be stored and executed in a distributed manner.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Information Transfer Between Computers (AREA)
Abstract
오프-디맨드 기반 콘텐츠 다운로드를 위한 방법 및 장치를 개시한다. 본 개시의 일 측면에 의하면, 사용자의 요청에 앞서 콘텐츠를 미리 다운로드하기 위한 단말의 동작방법으로서, 상기 단말에 부여된 식별자를 획득하는 과정; 상기 사용자에 대해 개인화된 추천을 통해 편성된 하나 이상의 콘텐츠들의 목록을 획득하는 과정; 및 기설정된 사전 다운로드 구간 중 상기 식별자를 기반으로 결정된 하나 이상의 시간 구간에서, 상기 하나 이상의 콘텐츠들의 적어도 일부를 다운로드하는 과정을 포함하는 것을 특징으로 하는 단말의 동작방법을 제공한다.
Description
본 개시는 오프-디맨드 기반 콘텐츠 다운로드를 위한 방법 및 장치에 관한 것이다.
이하에 기술되는 내용은 단순히 본 실시예와 관련되는 배경 정보만을 제공할 뿐 종래기술을 구성하는 것이 아니다.
미디어 시청 행태가 점차 실시간 콘텐츠에서 주문형 콘텐츠 위주로 변해감에 따라 다양한 OTT 서비스(Over-The-Top service)들의 차별화가 시도되고 있다. 특히, 사용자가 원하는 콘텐츠를 미리 다운로드하여, 네트워크 환경이 안 좋은 상황이나 비행기 등 스트리밍이 불가능한 상황에서도 콘텐츠 재생이 가능하도록 하는 다운로드 서비스를 제공하는 OTT 서비스들이 늘어나고 있다.
다운로드 서비스들은 주로 사용자가 시청 중인 콘텐츠의 이어보기를 위한 다운로드, 또는 특정 콘텐츠들에 대한 사용자의 다운로드 요청에 따른 다운로드 형태로 제공되고 있다. 이러한 다운로드 서비스들은, 시청하지도 않을 수 있는 콘텐츠들을 단말이 미리 다운로드하도록 하므로, 백엔드 시스템에 많은 부하를 유발한다. 그러므로 다운로드 서비스를 제공함과 동시에, 다운로드 서비스가 과도하게 활성되는 것을 방지할 필요가 있다. 기존의 OTT 서비스들은 대부분 사용자의 요청에 기반한 온-디맨드(on-demand) 방식으로 제공되고 있으며, 이는 사용자의 수요에 의해 서비스가 개시되기 때문에, 서비스에 따른 트래픽을 예측하는 데에는 많은 통계적인 데이터들이 필요하고, 트래픽 제어가 어렵다는 문제가 있다.
한편, 인공지능 기반의 콘텐츠 추천 서비스들이 보다 정교해지면서, 추천 콘텐츠를 사용자에게 노출하는 것은 OTT 서비스들에게 일상적인 일이 되었다. 하지만, 대다수의 OTT 서비스들은 추천된 콘텐츠를 스트리밍을 통해서 제공하고 있으며, 다운로드 형태로 제공하고 있지는 않다.
본 개시는, 사용자에게 개인화된 추천 콘텐츠를 오프-디맨드(off-demand) 기반으로 서비스할 수 있는 방법 및 장치를 제공하는 데 일 목적이 있다.
본 개시는, 오프-디맨드 기반 다운로드에 의한 네트워크 부하를 최소화하여 안정적인 서비스를 제공할 수 있는 방법 및 장치를 제공하는 데 일 목적이 있다.
본 발명이 해결하고자 하는 과제들은 이상에서 언급한 과제들로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
본 개시의 일 측면에 의하면, 사용자의 요청에 앞서 콘텐츠를 미리 다운로드하기 위한 단말의 동작방법으로서, 상기 단말에 부여된 식별자를 획득하는 과정; 상기 사용자에 대해 개인화된 추천을 통해 편성된 하나 이상의 콘텐츠들의 목록을 획득하는 과정; 및 기설정된 사전 다운로드 구간 중 상기 식별자를 기반으로 결정된 하나 이상의 시간 구간에서, 상기 하나 이상의 콘텐츠들의 적어도 일부를 다운로드하는 과정을 포함하는 것을 특징으로 하는 단말의 동작방법을 제공한다.
본 개시의 다른 측면에 의하면, 단말에 부여된 식별자 및 상기 단말의 사용자에 대해 개인화된 추천을 통해 편성된 하나 이상의 콘텐츠들의 목록을 획득하는 다운로드 정책 매니저; 및 기설정된 사전 다운로드 구간 중 상기 식별자를 기반으로 결정된 하나 이상의 시간 구간에서, 상기 하나 이상의 콘텐츠들의 적어도 일부를 다운로드하는 다운로드 에이전트를 포함하는 단말을 제공한다.
본 개시의 또 다른 측면에 의하면, 명령어가 저장된 컴퓨터로 읽을 수 있는 기록매체로서, 상기 명령어는 상기 컴퓨터에 의해 실행될 때 상기 컴퓨터로 하여금, 전술한 방법을 수행하도록 하는, 컴퓨터로 읽을 수 있는 기록매체를 제공한다.
본 개시의 실시예에 의하면, 사용자에게 개인화된 추천 콘텐츠를 오프-디맨드 기반으로 서비스할 수 있다는 효과가 있다.
본 개시의 실시예에 의하면, 오프-디맨드 기반 다운로드에 의한 네트워크 부하가 최소화되도록 트래픽을 제어하여 안정적인 서비스를 제공할 수 있다. 예를 들어, 추천 콘텐츠를 제공하는 시점을 네트워크 사용 기준의 최한시로 제한할 수 있으며, 이를 통해 네트워크 사용률을 높이고, 네트워크 인프라 운용의 안정성을 보장할 수 있다.
본 개시의 실시예에 의하면, 사용자 입장에서는 스트리밍으로 소요되는 시간과 네트워크 환경 등의 여러가지 문제에서 자유로워질 수 있다는 효과가 있다.
본 개시의 효과들은 이상에서 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 개시의 일 실시예에 따른 콘텐츠 제공 시스템을 개략적으로 나타낸 블록 구성도이다.
도 2는 본 개시의 일 실시예에 따른 서비스 제공 절차를 나타낸 흐름도이다.
도 3은 본 개시의 일 실시예에 따른 스케줄링 방법을 설명하기 위한 예시도이다.
도 4는 본 개시의 일 실시예에 따른 오프-디맨드 기반 다운로드를 위한 클라이언트 단말의 동작을 나타낸 흐름도이다.
도 5는 본 개시의 일 실시예에 따른 오프-디맨드 기반 다운로드에 의한 서비스 장애를 방지하기 위한 클라이언트 단말의 동작을 나타낸 흐름도이다.
도 6은 본 개시의 일 실시예에 따른 다운로드 미완료 콘텐츠를 관리하기 위한 클라이언트 단말의 동작을 나타낸 흐름도이다.
도 7은 본 개시의 일 실시예에 따른 클라이언트 단말을 개략적으로 나타낸 블록 구성도이다.
이하, 본 개시의 일부 실시예들을 예시적인 도면을 이용해 상세하게 설명한다. 각 도면의 구성 요소들에 참조 부호를 부가함에 있어서, 동일한 구성 요소들에 대해서는 비록 다른 도면 상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 개시를 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 개시의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
본 개시에 따른 실시예의 구성요소를 설명하는 데 있어서, 제1, 제2, i), ii), a), b) 등의 부호를 사용할 수 있다. 이러한 부호는 그 구성요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 부호에 의해 해당 구성요소의 본질 또는 차례나 순서 등이 한정되지 않는다. 명세서에서 어떤 부분이 어떤 구성요소를 '포함' 또는 '구비'한다고 할 때, 이는 명시적으로 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
첨부된 도면과 함께 이하에 개시될 상세한 설명은 본 개시의 예시적인 실시형태를 설명하고자 하는 것이며, 본 개시가 실시될 수 있는 유일한 실시형태를 나타내고자 하는 것이 아니다.
도 1은 본 개시의 일 실시예에 따른 콘텐츠 제공 시스템을 개략적으로 나타낸 블록 구성도이다.
도 1에 도시되 듯이, 콘텐츠 제공 시스템(10)은 클라이언트 단말(client terminal, 100), 콘텐츠 서버(content sever, 120) 및 백엔드 플랫폼(back-end platform, 140)의 전부 또는 일부를 포함할 수 있다. 도 1에 도시된 모든 블록이 필수 구성요소는 아니며, 다른 실시예에서 콘텐츠 제공 시스템(10)에 포함된 일부 블록이 추가, 변경 또는 삭제될 수 있다.
클라이언트 단말(100)은 무선 또는 유선 통신 방식을 이용하여 콘텐츠 서버(120)로부터 콘텐츠를 수신하여 재생할 수 있는 장치이다. 여기서, 콘텐츠는 미디어 콘텐츠일 수 있으나, 이러한 예시에 한정되는 것은 아니다. 클라이언트 단말(100)은 콘텐츠 서버(120) 및/또는 백엔드 플랫폼(140)으로부터 콘텐츠와 관련된 각종 서비스를 제공받을 수 있는 어플리케이션(application)을 포함할 수 있다.
클라이언트 단말(100)은 콘텐츠 서버(120)로부터 콘텐츠를 다운로드 및/또는 스트리밍 방식으로 수신하여 재생할 수 있다. 이때, 효율적인 콘텐츠 송수신을 위해, 콘텐츠 서버(120)는 원본 서버(original server) 및 하나 이상의 캐시 서버(cache server)를 포함하는 CDN(Content Delivery Network)으로 구현될 수 있다.
백엔드 플랫폼(140)은 클라이언트 단말(100)과의 계정 정보 연동을 통해 사용자 인증을 수행하고, 서비스 연동을 위한 어플리케이션 초기 설정정보를 클라이언트 단말(100)에 제공할 수 있다. 백엔드 플랫폼(140)은 하나 이상의 콘텐츠들의 편성 목록을 포함하는 플레이리스트(playlist) 및 콘텐츠들의 다운로드를 위한 주소(URL, Uniform Resource Locator)를 클라이언트 단말(100)에게 제공할 수 있다. 여기서, 편성목록은, 클라이언트 단말(100)의 사용자에 대해 개인화된 추천 콘텐츠의 편성목록일 수 있으나 이러한 예시에 한정되는 것은 아니다.
한편, 도 1에는 도시되어 있지 않지만, 일부 실시예들에서 클라이언트 단말(100)은 API 게이트웨이(Application Programming Interface gateway)를 경유하여, 콘텐츠 서버(120) 및/또는 백엔드 플랫폼(140)에게 사용자 인증 요청, 초기 설정정보 요청, 콘텐츠 목록 요청 및/또는 콘텐츠 요청 등을 전송하고, 이에 대한 응답을 수신할 수 있다. 여기서, API 게이트웨이는 클라이언트 단말(100)의 요청에 대한 엔드 포인트(end point)를 통합하는 역할을 수행할 수 있다. API 게이트웨이는 클라이언트 단말(100)로부터 수신한 요청들을 콘텐츠 서버(120) 및/또는 백엔드 플랫폼(140)에게 전달하고, 콘텐츠 서버(120) 및/또는 백엔드 플랫폼(140)으로부터 수신한 응답을 클라이언트 단말(100)에게 전달할 수 있다. 실시예들에 따라, API 게이트웨이는 수신한 요청 또는 응답을 가공하여 전달할 수도 있다.
도 2는 본 개시의 일 실시예에 따른 서비스 제공 절차를 나타낸 흐름도이다.
클라이언트 단말(100)에 설치된 어플리케이션의 실행에 따라 서비스가 개시되면(S200), 클라이언트 단말(100)은 인증 API를 호출하여 사용자 인증을 수행할 수 있다(S210). 여기서, 클라이언트 단말(100)이 전송하는 사용자 인증 요청에는 사용자 계정 정보가 포함될 수 있다.
클라이언트 단말(100)은 초기설정 API를 호출하여, 백엔드 플랫폼(140)으로부터 서비스 연동을 위한 어플리케이션 초기설정 정보를 획득할 수 있다(S220). 여기서, 어플리케이션 초기설정 정보는, 클라이언트 단말(100)에 부여된 식별자(IDentifier)를 포함할 수 있다. 여기서, 식별자는, 클라이언트 단말(100)에 설치된 어플리케이션 및/또는 사용자에 대한 고유 식별자(unique ID)일 수 있으나 이에 한정되는 것은 아니다. 또한, 어플리케이션 초기설정 정보에는, 사전 다운로드 구간에 대한 설정정보, 사전 다운로드 구간을 구성하는 프레임 및 슬롯에 대한 설정정보 및/또는 스케줄링 정책 등이 더 포함되어 있을 수 있다.
클라이언트 단말(100)은 수신한 어플리케이션 초기설정 정보를 어플리케이션에 적용할 수 있다(S230).
클라이언트 단말(100)은 콘텐츠 목록 요청 API를 호출하여 백엔드 플랫폼(140)으로부터 플레이 리스트를 획득할 수 있다(S240). 여기서, 콘텐츠 목록 요청 API는 전자 프로그램 가이드(EPG, Electronic Program Guide) API일 수 있으나 이에 한정되는 것은 아니다. 플레이리스트에는, 클라이언트 단말(100)의 사용자에 대해 개인화된 추천 등을 통해 편성된 콘텐츠들의 목록을 포함할 수 있다. 또한, 플레이리스트에는 각 콘텐츠의 다운로드를 위한 주소(URL, Uniform Resource Locator), 콘텐츠별로 미리 다운로드할 미디어 세그먼트의 수 및/또는 시간 값 등이 더 포함되어 있을 수 있다. 여기서, 시간 값은, 예를 들어, 다운로드 이력이 있는 콘텐츠에 대한, 이어보기 또는 이어받기 기능을 지원하기 위한, 마지막 다운로드 지점에 대응하는 시간 값일 수 있다. 한편, 콘텐츠들은, 서로 다른 복수개의 동영상, 또는 단일 동영상 내의 서로 다른 복수개의 구간들일 수 있으나, 이에 한정되는 것은 아니다.
클라이언트 단말(100)은 어플리케이션 초기설정 정보를 기초로, 콘텐츠 목록 내의 콘텐츠들을 다운로드할 시간 구간을 스케줄링할 수 있다(S250). 예를 들어, 클라이언트 단말(100)은 기설정된 사전 다운로드 구간 내에서, 콘텐츠들을 다운로드할 하나 이상의 시간 구간을 결정할 수 있다. 여기서, 시간 구간은, 사전 다운로드 구간에 포함된 각 프레임을 구성하는 복수의 슬롯들 중에서, 식별자를 기초로 결정된 타겟 슬롯에 대응하는 시간 구간일 수 있다. 클라이언트 단말(100)의 스케줄링 방법에 대한 구체적인 내용은 도 3을 참조하여 후술하도록 한다.
클라이언트 단말(100)은 스케줄링된 시간 구간 내에서, 콘텐츠 목록 내의 콘텐츠들의 적어도 일부를 다운로드할 수 있다(S260). 클라이언트 단말(100)은 콘텐츠 요청 API를 호출하여, 콘텐츠 서버(120)로부터 콘텐츠를 다운로드할 수 있다. 여기서, 콘텐츠의 다운로드는, 사용자로부터의 다운로드 요청 수신 없이 개시될 수 있으며, 클라이언트 단말(100)의 백그라운드에서 수행될 수 있다.
클라이언트 단말(100)은 기설정된 다운로드 종료 조건을 만족하기 전까지, 스케줄링된 시간 구간 내에서 콘텐츠의 다운로드를 반복적으로 수행할 수 있다(S270). 여기서, 다운로드 종료 조건은 예컨대, 콘텐츠 목록 내의 모든 콘텐츠들의 다운로드 완료 또는 사전 다운로드 구간의 종료 등을 포함할 수 있으나 이에 한정되는 것은 아니다.
이후, 어플리케이션이 실행되어(S280), 클라이언트 단말(100) 또는 사용자에 의해 콘텐츠가 선택되면, 클라이언트 단말(100)은 네트워크 연결 없이 선택된 콘텐츠를 재생할 수 있다(S290).
도 3은 본 개시의 일 실시예에 따른 스케줄링 방법을 설명하기 위한 예시도이다.
도 3을 참조하면, 사전 다운로드 구간은, N개의 프레임(여기서, N은 자연수)으로 구성될 수 있으며, 각 프레임은 M개의 슬롯(여기서, M은 자연수)으로 구성될 수 있다.
클라이언트 단말(100)은 초기설정 절차에서 획득한 식별자를 기초로, 각 프레임을 구성하는 슬롯들 중에서 콘텐츠 다운로드를 수행할 하나 이상의 타겟 슬롯을 결정할 수 있다. 예를 들어, i번째 클라이언트 단말이 j번째 프레임에서 콘텐츠 다운로드를 수행할 타겟 슬롯의 번호는 수학식 1과 같이 결정될 수 있으나, 이에 한정되는 것은 아니며, 각 클라이언트 단말(100) 또는 백엔드 플랫폼(140)의 스케줄링 정책에 따라 달라질 수 있다.
여기서, nj(i)는 i번째 클라이언트 단말이 j번째 프레임에서 콘텐츠 다운로드를 수행할 타겟 슬롯의 번호이고, seed(i)는 i번째 클라이언트 단말에 부여된 식별자이며, △slot은 각 프레임에서의 타겟 슬롯의 번호를 다르게 만들기 위한 슬롯 오프셋(offset)이다.
실제 서비스 운용환경에서, 다양한 장애 요인들로 인해 클라이언트 단말(100)이 특정 슬롯에서 콘텐츠를 다운로드하지 못하는 경우가 발생할 수 있다. 이때, 본 개시와 같은 타겟 슬롯 할당방식을 이용하는 경우, 프레임의 길이와 프레임 내 슬롯 수의 조절 등을 통해 서비스 장애 극복을 위한 시간 다양성(time diversity)을 제공할 수 있다. 예를 들어, 인프라 장애 발생에 따른 통상적인 서비스 중지 기간이 1시간이고 프레임의 길이가 1시간으로 설정된 경우를 가정하면, 인프라 장애가 발생한 프레임 외 다른 프레임에서 클라이언트 단말(100)이 콘텐츠를 다운로드할 수 있다.
한편, 사전 다운로드 구간, 사전 다운로드 구간 내의 프레임 수, 프레임의 길이, 각 프레임 내의 슬롯 수 및/또는 슬롯 오프셋 등은, 백엔드 플랫폼(140)에 의해 설정되고 어플리케이션 초기설정 정보를 통해 클라이언트 단말(100)에게 지시될 수 있으나, 이에 한정되는 것은 아니다. 일 예로, 사전 다운로드 구간은, 사용자에 의해 지정되거나, 사용자가 클라이언트 단말(100)을 사용 중인지 여부 등을 기초로 클라이언트 단말(100)에 의해 자체적으로 결정될 수도 있다. 다른 예로, 슬롯 오프셋은, 클라이언트 단말(100)에서 자체적으로 설정된 값이거나, 어플리케이션의 설치 파일에 포함된 설정 값일 수 있다.
도 4는 본 개시의 일 실시예에 따른 오프-디맨드 기반 다운로드를 위한 클라이언트 단말의 동작을 나타낸 흐름도이다.
클라이언트 단말(100)은, 부여된 식별자, 및 클라이언트 단말(100)의 사용자에 대해 개인화된 추천을 통해 편성된 하나 이상의 콘텐츠들의 목록을 획득할 수 있다(S400). 여기서, 식별자 및 콘텐츠 목록은, 콘텐츠 서비스를 제공하는 어플리케이션의 실행에 따른 초기설정 절차에서 백엔드 플랫폼(140)으로부터 획득될 수 있으나, 이에 한정되는 것은 아니다.
클라이언트 단말(100)은 콘텐츠 다운로드를 위한 웨이크업 시점을 설정하고, 슬립 모드로 전환할 수 있다(S410). 여기서, 슬립 모드는 오프-디맨드 기반 다운로드가 비활성화된 상태이고, 웨이크업 모드는 오프-디맨드 기반 다운로드가 활성화된 상태를 의미할 수 있다. 오프-디맨드 기반 다운로드는, 사용자로부터의 다운로드 요청 수신 없이 개시되는 다운로드를 의미할 수 있다. 클라이언트 단말(100)은 획득한 식별자를 기초로 웨이크업 시점을 설정할 수 있다. 예를 들어, 사전 다운로드 구간 내 각 프레임에서 결정된 타겟 슬롯 중에서, 현재 시점 이후의 가장 인접한 타겟 슬롯의 시작 시점을 웨이크업 시점으로 설정할 수 있다.
클라이언트 단말(100)은 시간을 지속적으로 모니터링하여, 설정된 웨이크업 시점이 도달하였는지 확인할 수 있다(S420). 클라이언트 단말(100)은 설정된 웨이크업 시점이 도달하기 전까지 슬립 모드를 유지할 수 있다(S420, NO).
설정된 웨이크업 시점이 도달하면(S420, YES), 클라이언트 단말(100)은 슬립 모드에서 웨이크업 모드로 전환하여, 콘텐츠 목록 내의 콘텐츠의 적어도 일부를 다운로드할 수 있다(S430).
클라이언트 단말(100)은 시간을 지속적으로 모니터링하여, 기설정된 슬립 시점이 도달하였는지 확인할 수 있다(S440). 여기서, 슬립 시점은, 타겟 슬롯의 종료 시점에 대응할 수 있다. 클라이언트 단말(100)은 현재 시점을 타겟 슬롯의 종료 시점과 비교하거나, 웨이크업 시점으로부터 타겟 슬롯의 길이에 대응하는 시간이 경과하였는지 확인할 수 있다. 클라이언트 단말(100)은 설정된 슬립 시점이 도달하기 전까지 콘텐츠 다운로드를 진행할 수 있다(S440, NO).
기설정된 슬립 시점이 도달하면(S440, YES), 클라이언트 단말(100)은 콘텐츠 목록 내의 모든 콘텐츠의 다운로드가 완료되었는지 확인할 수 있다(S450).
슬립 시점까지 다운로드를 완료하지 못한 콘텐츠가 존재하는 경우(S450, NO), 클라이언트 단말(100)은 다음 프레임 내의 타겟 슬롯의 시작 시점을 웨이크 업 시점으로 설정하고 슬립 모드로 전환할 수 있다(S410).
한편, 도 4에 도시된 과정 S410 내지 과정 S450은, 클라이언트 단말(100)의 백그라운드에서 수행될 수 있다.
도 5는 본 개시의 일 실시예에 따른 오프-디맨드 기반 다운로드에 의한 서비스 장애를 방지하기 위한 클라이언트 단말의 동작을 나타낸 흐름도이다.
도 4의 과정 S420 내지 S440을 수행함에 있어, 클라이언트 단말(100)은 기설정된 조건에 기초하여, 웨이크업 시점이 도달하였더라도 웨이크업 모드로 전환하지 않거나, 슬립 시점이 도달하기 전이라도 슬립 모드로 전환할 수 있다.
도 5를 참조하면, 클라이언트 단말(100)은 현재 프레임 내의 타겟 슬롯에서 콘텐츠 다운로드를 개시하기 이전(예컨대, 과정 S420에서 YES로 판단된 때) 또는 콘텐츠 다운로드를 진행하는 도중에 주기 또는 비주기적으로(예컨대, 과정 S440에서 NO로 판단된 때), 무선랜 연결이 수립되어 있는지 확인할 수 있다(S500). 예를 들어, 클라이언트 단말(100)은 무선 액세스 포인트(Access Point) 등과 같은 외부 장치를 통한 와이파이(Wi-Fi: Wireless Fidelity) 연결이 수립되어 있는지 여부를 확인할 수 있다.
무선랜 연결이 수립되어 있는 경우(S500, YES), 클라이언트 단말(100)은 웨이크업 모드로 전환(또는 웨이크업 모드를 유지)하여, 콘텐츠 목록 내의 콘텐츠의 적어도 일부를 다운로드할 수 있다(S430).
한편, 무선랜 연결이 수립되어 있지 않은 경우(S500, NO), 클라이언트 단말(100)은 셀룰러 망(cellular network)의 상태가 기설정된 조건을 만족하는지 확인할 수 있다(S520). 클라이언트 단말(100)은 별도의 서버로부터의 제어정보 없이 망 상태를 확인하기 위해, 무선 신호 세기(RSSI, Received Signal Strength Indicator)를 활용할 수 있다. 예를 들어, 클라이언트 단말(100)은 셀룰러 망의 무선 신호 세기가 기설정된 세기 이상인 조건을 만족하는지 확인할 수 있다.
셀룰러 망의 상태가 기설정된 조건을 만족하지 않는 경우(S520, NO), 클라이언트 단말(100)은 다음 프레임 내의 타겟 슬롯의 시작 시점을 웨이크 업 시점으로 설정하고 슬립모드를 유지(또는 슬립 모드로 전환)할 수 있다(S410).
셀룰러 망의 상태가 기설정된 조건을 만족하는 경우(S520, YES), 클라이언트 단말(100)은, 단말(100)의 위치 및/또는 현재시간이 기설정된 조건을 만족하는지 확인할 수 있다(S540). 클라이언트 단말(100)은, 클라이언트 단말(100)의 위치 및 현재시간이 기설정된 다운로드 금지 지역 및/또는 다운로드 금지 시간대에 속하지 않는 조건을 만족하는지 확인할 수 있다. 한편, 도 5에서는 셀룰러 망의 상태가 기설정된 조건을 만족하는 경우에만 클라이언트 단말(100)이 위치 및/또는 시간 조건을 확인하는 것으로 도시하고 있으나, 본 개시가 이러한 순서에 한정되는 것은 아니다.
클라이언트 단말(100)의 위치 및/또는 현재시간이 기설정된 조건을 만족하지 않는 경우(S540, NO), 클라이언트 단말(100)은 다음 프레임 내의 타겟 슬롯의 시작 시점을 웨이크 업 시점으로 설정하고 슬립 모드를 유지(또는 슬립 모드로 전환)할 수 있다(S410).
클라이언트 단말(100)의 위치 및/또는 현재시간이 기설정된 조건을 만족하는 경우(S540, YES), 클라이언트 단말(100)은 웨이크업 모드로 전환(또는 웨이크업 모드를 유지)하여, 셀룰러 망을 통해 콘텐츠 목록 내의 콘텐츠의 적어도 일부를 다운로드할 수 있다(S430).
이상과 같이, 클라이언트 단말(100)은 무선 연결 상태, 위치 및 현재시간 중 적어도 하나가 기설정된 조건을 만족하는지에 기초하여, 오프-디맨드 기반 다운로드를 제어함으로써, 사용자의 실시간적 요청을 처리해야 하는 온-디맨드(on-demand) 서비스의 장애를 방지할 수 있다. 특히, 클라이언트 단말(100)은, 셀룰러 망의 상태 또는 이벤트 여부 등을 확인함으로써 셀룰러 망을 이용하는 유료 서비스의 장애를 방지할 수 있다. 예를 들어, 월드컵이나 올림픽과 같은 실시간 대규모 이벤트가 발생하는 경우에는 셀룰러 망을 이용한 온-디맨드 서비스의 요청이 매우 클 수 있다. 이때, 클라이언트 단말(100)은 자체적으로 획득할 수 있는 단말 위치 정보 및/또는 시간정보를 통해서 오프-디맨드 기반 다운로드 서비스를 제어할 수 있다.
도 6은 본 개시의 일 실시예에 따른 다운로드 미완료 콘텐츠를 관리하기 위한 클라이언트 단말의 동작을 나타낸 흐름도이다.
도 4의 과정 S450을 수행함에 있어, 클라이언트 단말(100)은 기설정된 조건에 기초하여, 현재 프레임 내 타겟 슬롯의 종료 시점까지 다운로드를 완료하지 못한 콘텐츠를 관리할 수 있다.
현재 프레임 내 타겟 슬롯의 종료 시점까지 다운로드를 완료하지 못한 콘텐츠가 존재하는 경우(S450, NO), 클라이언트 단말(100)은 사전 다운로드 구간 내의 모든 타겟 슬롯이 종료되었는지 확인할 수 있다(S600). 일 예로, 클라이언트 단말(100)은 현재 프레임이 사전 다운로드 구간 내의 마지막 프레임인지 확인할 수 있다. 다른 예로, 클라이언트 단말(100)은 현재 시점과 사전 다운로드 구간의 종료 시점 간의 시간 차가 기설정된 임계치 이하인지를 확인할 수도 있다.
모든 타겟 슬롯이 종료되지 않은 경우(S600, NO), 클라이언트 단말(100)은 다음 프레임 내의 타겟 슬롯의 시작 시점을 웨이크 업 시점으로 설정하고 슬립 모드로 전환할 수 있다(S410).
모든 타겟 슬롯이 종료된 경우(S600, NO), 클라이언트 단말(100)은 다른 사전 다운로드 구간에서의 콘텐츠 이어받기가 가능한지 확인할 수 있다(S620). 예를 들어, 어플리케이션이 이어받기 기능을 지원하고/거나 사용자에 의해 이어받기 기능이 허용된 경우, 클라이언트 단말(100)은 다른 사전 다운로드 구간에서의 콘텐츠 이어받기가 가능한 것으로 판단할 수 있다.
콘텐츠 이어받기가 가능한 경우(S620), 클라이언트 단말(100)은 다음번의 사전 다운로드 구간 내의 첫번째 프레임에서 결정된 타겟 슬롯의 시작 시점을 웨이크업 시점으로 설정하고, 슬립 모드로 전환할 수 있다(S410). 이에 따라, 클라이언트 단말(100)은 특정 사전 다운로드 구간에서 다운로드를 완료하지 못한 미완료 콘텐츠가 존재하더라도, 다음번의 사전 다운로드 구간에서 미완료 콘텐츠의 나머지 부분을 다운로드할 수 있다. 다음번의 사전 다운로드 구간은, 예를 들어, 다른 날짜에 대해 지정된 사전 다운로드 구간일 수 있으나 이에 한정되는 것은 아니다.
콘텐츠 이어받기가 불가능한 경우(S640), 클라이언트 단말(100)은 스트리밍을 이용한 콘텐츠 이어보기가 가능한지 확인할 수 있다(S620). 예를 들어, 어플리케이션이 이어보기 기능을 지원하고/거나 사용자에 의해 이어보기 기능이 허용된 경우, 클라이언트 단말(100)은 콘텐츠 이어보기가 가능한 것으로 판단할 수 있다.
스트리밍을 이용한 이어보기가 불가능한 경우(S640, NO), 클라이언트 단말(100)은 사전 다운로드 구간 내에서 다운로드를 완료하지 못한 미완료 콘텐츠를 삭제할 수 있다(S660).
반면, 스트리밍을 이용한 이어보기가 가능한 경우에는(S640, YES), 클라이언트 단말(100)은 사전 다운로드 구간 내에서 다운로드를 완료하지 못한 미완료 콘텐츠를 삭제하지 않을 수 있다. 이후, 해당 미완료 콘텐츠가 재생할 콘텐츠로 선택되면, 클라이언트 단말(100)은 미완료 콘텐츠의 나머지 부분을 스트리밍으로 재생할 수 있다.
도 7은 본 개시의 일 실시예에 따른 클라이언트 단말을 개략적으로 나타낸 블록 구성도이다.
도 7에 도시되 듯이, 클라이언트 단말(100)은 다운로드 정책 매니저(download policy manager, 700), 다운로드 에이전트(download agent, 710), 스토리지(storage, 720), 스토리지 매니저(storage manager, 730), 로컬 웹서버(local web server, 740), 로컬 웹서버 매니저(local web server manager, 750), 플레이어(player, 760), 플레이어 매니저(player manager, 770) 및 사용자 인터페이스(user interface, 780)의 전부 또는 일부를 포함할 수 있다. 도 7에 도시된 모든 블록이 필수 구성요소는 아니며, 다른 실시예에서 클라이언트 단말(100)에 포함된 일부 블록이 추가, 변경 또는 삭제될 수 있다. 클라이언트 단말(100) 및 이의 각 구성요소는 하드웨어 또는 소프트웨어로 구현되거나, 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다. 또한, 각 구성요소의 기능이 소프트웨어로 구현되고, 하나 이상의 프로세서가 각 구성요소에 대응하는 소프트웨어의 기능을 실행하도록 구현될 수도 있다.
다운로드 정책 매니저(700)는 콘텐츠의 다운로드를 위한 정책 및 설정들을 관리할 수 있다. 다운로드 정책 매니저(700)는 다운로드할 콘텐츠 및 해당 콘텐츠를 다운로드할 시간 구간을 결정할 수 있다. 이를 위해, 다운로드 정책 매니저(700)는 백엔드 플랫폼(140)으로부터 어플리케이션 초기설정 정보 및 플레이 리스트를 수신하여 관리할 수 있다. 여기서, 어플리케이션 초기설정 정보는, 클라이언트 단말(100)에 부여된 식별자를 포함할 수 있다. 또한, 플레이 리스트는 사용자에 대해 개인화된 추천을 통해 편성된 하나 이상의 콘텐츠들의 목록을 포함할 수 있다.
다운로드 정책 매니저(700)는 획득한 어플리케이션 초기설정 정보를 이용하여 다운로드 에이전트(710)가 플레이리스트 내의 콘텐츠를 다운로드할 시간 구간을 결정할 수 있다. 다운로드 정책 매니저(700)는 결정된 시간 구간을 기초로, 다운로드 에이전트(710)의 동작 모드를 전환시킬 수 있다.
일 예로, 다운로드 정책 매니저(700)는 기설정된 사전 다운로드 구간에 포함된 각 프레임을 구성하는 복수의 슬롯들 중에서, 클라이언트 단말(100)에 부여된 식별자를 기초로 결정된 타겟 슬롯에 대응하는 시간 구간마다 다운로드 에이전트(710)가 슬립 모드에서 웨이크업 모드로 전환하도록 제어할 수 있다. 다른 예로, 다운로드 정책 매니저(700)는 특정 프레임에서의 타겟 슬롯의 종료 시점까지 다운로드를 완료하지 못한 콘텐츠가 존재하는 경우, 다음 프레임의 타겟 슬롯의 시작 시점을 다운로드 에이전트(710)의 웨이크 업 시점으로 설정하고 다운로드 에이전트(710)를 슬립 모드로 전환시킬 수 있다. 다른 예로, 다운로드 정책 매니저(700)는 특정 프레임의 타겟 슬롯에 대응하는 시간 구간 내에서, 클라이언트 단말(100)의 무선 연결 상태, 위치 및 현재시간 중 적어도 하나가 기설정된 조건을 만족하는 경우, 다음 프레임의 타겟 슬롯의 시작 시점을 다운로드 에이전트(710)의 웨이크 업 시점으로 설정하고 다운로드 에이전트(710)를 슬립 모드로 전환시킬 수 있다.
다운로드 에이전트(710)는, 플레이리스트 내의 콘텐츠들 각각의 재생을 위한 데이터의 전부 또는 일부를 콘텐츠 서버(120)로부터 미리 다운로드하여 스토리지(720)에 저장할 수 있다. 여기서, 콘텐츠의 재생을 위한 데이터는, 콘텐츠를 구성하는 미디어 세그먼트 및/또는 콘텐츠 속성을 포함할 수 있다. 미디어 세그먼트는 mp4, fmp4(fragmented mp4) 또는 ts(transport stream) 등과 같은 다양한 미디어 포맷으로 구성될 수 있고, 콘텐츠 속성은, PAT 또는 PMT 등과 같은 비디오/오디오 구성 정보 및 세그먼트의 인덱스(index) 등을 포함하는 매니페스트(manifest) 파일을 포함할 수 있으나 이러한 예시에 한정되는 것은 아니다.
다운로드 에이전트(710)는, 사용자로부터의 콘텐츠 요청 없이, 콘텐츠 목록 내의 콘텐츠들을 콘텐츠 서버(120)로부터 미리 다운로드하여 스토리지(720)에 저장할 수 있다. 한편, 다운로드가 미완료된 콘텐츠가 재생할 콘텐츠로 선택되면, 다운로드 에이전트(710)는 해당 콘텐츠의 남은 부분을 스트리밍 방식으로 다운로드할 수 있다.
또한, 다운로드 에이전트(710)는 스토리지(720)에 저장된 데이터들을 관리할 수 있다. 다운로드 에이전트(710)는 미리 설정된 조건에 따라 스토리지(720)에 저장된 데이터들 중에서 필요없는 데이터들을 삭제할 수 있다. 예컨대, 특정 사전 다운로드 구간 내에서 다운로드를 완료하지 못한 미완료 콘텐츠가 존재하고, 스트리밍을 이용한 이어보기 또는 다른 사전 다운로드 구간에서의 이어받기가 불가능한 경우, 다운로드 에이전트(710)는 스토리지(720)에서 미완료 콘텐츠의 데이터를 삭제할 수 있다.
스토리지(720)는 다운로드 에이전트(710)가 다운로드한 미디어 세그먼트들 및/또는 콘텐츠 속성을 임시적으로 또는 반영구적으로 저장할 수 있다. 스토리지 매니저(730)는 다운로드 상태를 확인하고, 스토리지(720)에 저장된 데이터들 중에서 불필요한 데이터들을 삭제할 수 있다.
로컬 웹서버(740)는 스토리지(720)에 저장된 미디어 세그먼트들 및/또는 콘텐츠 속성을 플레이어(760)로 전달하여 플레이어(760)에서의 콘텐츠 재생을 지원하며, 로컬 웹서버 매니저(750)는 로컬 웹서버(740)의 포트 등의 설정을 제어할 수 있다.
플레이어(760)는 로컬 웹서버(740)로부터 획득한 미디어 세그먼트 등을 이용하여 콘텐츠를 재생하는 기능을 수행할 수 있으며, 플레이어 매니저(770)는 콘텐츠의 다운로드 상황 및/또는 사용자 인터페이스(780)에서 내려지는 명령에 따라, 플레이어(760)를 제어할 수 있다.
플레이어(760)는 버퍼(buffer)를 구비할 수 있으며, 네트워크 지터(jitter)를 극복하기 위해 일정 분량의 세그먼트들이 버퍼 내에 채워져 있어야지만 콘텐츠의 재생을 시작할 수 있다. 콘텐츠 목록 내의 어느 한 콘텐츠가 재생 또는 전환할 콘텐츠로 선택되는 경우, 로컬 웹서버(740)는 스토리지(720)에 미리 저장된 데이터들을 플레이어(760)로 전달하여, 플레이어(760)의 재생을 위한 조건을 빠르게 만족시킬 수 있다.
일반적으로, 클라이언트 단말(100)과 콘텐츠 서버(120) 간 통신에는 공용(public) 망을 경유하기 때문에 안정적인 고속 전송을 보장하기 어려울 수 있다. 그러나 본 개시에 따른 로컬 웹서버(740)를 통한 통신은 클라이언트 단말(100)의 내부에서 일어나므로 안정적인 고속 전송을 충분히 보장할 수 있으며 HOL(Head Of Line Blocking) 문제를 일으키지 않는다. 이에 따라, 로컬 웹서버(740)는 스토리지(720)에 미리 저장된 미디어 세그먼트들을 플레이어(760)의 버퍼 내에 빠르게 채움으로써, 버퍼링에 소요되는 시간을 획기적으로 줄일 수 있다.
본 개시의 일 실시예에 따르면 로컬 웹서버(740)를 이용함으로써, 콘텐츠 서버(120) 등과 같은 서비스 인프라와 플레이어(760) 간의 인터랙션(interaction)을 최소화할 수 있다. 또한, 플레이어(760)는 로컬 웹서버(740)에게 연속된 세그먼트를 요청하기만 하면되므로, 공지의 플레이어를 이용하여 간단하게 구현할 수 있다.
사용자 인터페이스(780)는, 사용자와 클라이언트 단말(100) 간의 상호작용을 할 수 있도록 일시적 또는 영구적인 접근을 목적으로 구현된 물리적 매체(physical medium) 또는 가상 매체(virtual medium)일 수 있다.
사용자 인터페이스(780)는 사용자가 조작할 수 있는 적어도 하나의 입력 수단 및 사용자의 이용 결과를 표시하는 적어도 하나의 출력 수단을 포함할 수 있다. 사용자 인터페이스는 디스플레이 화면, 키보드, 마우스, 텍스트 또는 아이콘 등 사용자와 상호작용하도록 설계된 적어도 하나의 오브젝트(object)를 포함할 수 있다.
사용자 인터페이스(780)는 사용자에 대해 개인화된 추천을 통해 편성된 하나 이상의 콘텐츠들의 목록을 표시하고/거나, 사용자로부터 시청을 원하는 콘텐츠를 선택받을 수 있다. 일 실시예에서, 사용자 인터페이스(780)는 기설정된 제스쳐 입력을 통해 사용자의 콘텐츠 재생 또는 전환 요청을 입력받을 수 있다. 여기서, 제스쳐 입력은 스와이프(swipe), 플릭(flick), 팬(pan), 탭(tap), 더블 탭(double tap), 드래그 앤 드롭(drag and drop), 핀치 인 앤 아웃(pinch in and out) 및 중 적어도 하나를 포함할 수 있다. 일 예로, 사용자는 제1 방향의 스와이프 동작을 통해 다른 채널로의 전환을 요청할 수 있으며, 제2 방향의 스와이프 동작을 통해 동일 채널 내에서 다른 콘텐츠로의 전환을 요청할 수 있다. 여기서, 각 채널은 예능, 드라마, 영화 및/또는 다큐 등의 특정 장르의 콘텐츠들로 구성될 수 있다. 한편, 제1 방향 및 제2 방향은 각각 수직 방향(즉, 상향 또는 하향) 또는 수평 방향(즉, 좌향 또는 우향)일 수 있으나 이러한 예시에 한정되는 것은 아니다. 다른 예로, 사용자는, 사용자 인터페이스(780)가 표출하는 화면의 적어도 일측을 탭 또는 더블 탭하는 동작을 통해, 콘텐츠 재생 또는 전환을 요청할 수도 있다.
이상과 같이, 본 개시의 일 실시예에 따른 장치 및/또는 방법들은, 사용자의 요청 없이 개시될 수 있는 오프-디맨드 기반 다운로드 서비스를 제공할 수 있다. 오프-디맨드 서비스는, 온-디맨드 서비스 대비 네트워크 트래픽의 안정적인 관리가 가능하다. 구체적으로 온-디맨드 서비스의 경우, 사용자의 서비스 수요에 따라서 콘텐츠가 즉시적으로 제공되어야 하므로 트래픽의 제어가 어려운 측면이 있다. 이에 반해, 오프-디맨드 서비스에서는, 서비스 제공 시점과 트래픽이 네트워크 상에서 발생되는 시점을 달리할 수 있기 때문에 네트워크 트래픽의 안정적인 관리가 가능하다.
예를 들어, 오프-디맨드 트래픽임에도 이를 랜덤(random)하게 제어하지 않고 발생시키게 되는 경우에 비해 트래픽 제어를 통해서 얻을 수 있는 이점을 정리하면 다음과 같다.
우선, 콘텐츠를 온-디맨드 서비스로 제공받는 사용자의 수와 오프-디맨드 서비스로 제공받는 사용자의 수를 각각 Non-demand 및 Noff -demand라고 할 때, 온-디맨드 서비스 및 오프-디맨드 서비스의 이용은 독립적으로 일어날 수 있다. 하나의 단말이 온-디맨드 콘텐츠를 재생하는 동시에 백그라운드에서 오프-디맨드 콘텐츠를 다운로드할 수 있다. 따라서, 최악의 경우로 두 서비스의 사용자가 모두 동시에 서비스를 이용하는 경우를 생각해볼 수 있다. 이때, 콘텐츠 서버(120)를 통해서 서비스되는 평균 전송속도를 각각 Ron-demand 및 Roff -demand라고 하면, 최악의 경우 인프라에서 가용한 서비스 용량은 Ron-demand×Non-demand + Roff -demand×Noff -demand이 된다.
이에 반해, 오프-디맨드 트래픽 제어가 이루어지는 경우, 사전 다운로드 구간 설정을 통해 온-디맨드 트래픽이 거의 없는 시간대에 오프-디맨드 콘텐츠 다운로드를 수행하도록 유도하는 것이 가능하고, 더욱이, 타겟 슬롯 할당을 통해 특정 슬롯에서 다운로드를 수행하는 사용자들을 균등하게 나눠서 트래픽 분산 역시 유도할 수 있다. 사전 다운로드 구간 내의 프레임 수 및 각 프레임 내의 슬롯 수를 각각 Nframe 및 M이라 할 때, 콘텐츠 서버(120)의 최저 전송량은 (Roff -demand×Noff -demand)/(M×Nframe) 까지 줄일 수 있으며, 피크 전송량도 Ron-demand×Non-demand 으로, 온-디맨드 트래픽으로만 결정될 수 있다.
본 발명에 따른 장치 또는 방법의 각 구성요소는 하드웨어 또는 소프트웨어로 구현되거나, 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다. 또한, 각 구성요소의 기능이 소프트웨어로 구현되고 마이크로프로세서가 각 구성요소에 대응하는 소프트웨어의 기능을 실행하도록 구현될 수도 있다.
본 명세서에 설명되는 시스템들 및 기법들의 다양한 구현예들은, 디지털 전자 회로, 집적회로, FPGA(field programmable gate array), ASIC(application specific integrated circuit), 컴퓨터 하드웨어, 펌웨어, 소프트웨어, 및/또는 이들의 조합으로 실현될 수 있다. 이러한 다양한 구현예들은 프로그래밍가능 시스템 상에서 실행 가능한 하나 이상의 컴퓨터 프로그램들로 구현되는 것을 포함할 수 있다. 프로그래밍가능 시스템은, 저장 시스템, 적어도 하나의 입력 디바이스, 그리고 적어도 하나의 출력 디바이스로부터 데이터 및 명령들을 수신하고 이들에게 데이터 및 명령들을 전송하도록 결합되는 적어도 하나의 프로그래밍가능 프로세서(이것은 특수 목적 프로세서일 수 있거나 혹은 범용 프로세서일 수 있음)를 포함한다. 컴퓨터 프로그램들(이것은 또한 프로그램들, 소프트웨어, 소프트웨어 애플리케이션들 혹은 코드로서 알려져 있음)은 프로그래밍가능 프로세서에 대한 명령어들을 포함하며 "컴퓨터가 읽을 수 있는 기록매체"에 저장된다.
컴퓨터가 읽을 수 있는 기록매체는, 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 이러한 컴퓨터가 읽을 수 있는 기록매체는 ROM, CD-ROM, 자기 테이프, 플로피디스크, 메모리 카드, 하드 디스크, 광자기 디스크, 스토리지 디바이스 등의 비휘발성(non-volatile) 또는 비일시적인(non-transitory) 매체일 수 있으며, 또한 데이터 전송 매체(data transmission medium)와 같은 일시적인(transitory) 매체를 더 포함할 수도 있다. 또한, 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수도 있다.
본 명세서의 흐름도/타이밍도에서는 각 과정들을 순차적으로 실행하는 것으로 기재하고 있으나, 이는 본 개시의 일 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것이다. 다시 말해, 본 개시의 일 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 개시의 일 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 흐름도/타이밍도에 기재된 순서를 변경하여 실행하거나 각 과정들 중 하나 이상의 과정을 병렬적으로 실행하는 것으로 다양하게 수정 및 변형하여 적용 가능할 것이므로, 흐름도/타이밍도는 시계열적인 순서로 한정되는 것은 아니다.
이상의 설명은 본 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 실시예들은 본 실시예의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 실시예의 기술 사상의 범위가 한정되는 것은 아니다. 본 실시예의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 실시예의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
(부호의 설명)
10: 콘텐츠 제공 시스템
CROSS-REFERENCE TO RELATED APPLICATION
본 특허출원은, 본 명세서에 그 전체가 참고로서 포함되는, 2022년 7월 26일에 한국에 출원한 특허출원번호 제10-2022-0092470호에 대해 우선권을 주장한다.
Claims (10)
- 사용자의 요청에 앞서 콘텐츠를 미리 다운로드하기 위한 단말의 동작방법으로서,상기 단말에 부여된 식별자를 획득하는 과정;상기 사용자에 대해 개인화된 추천을 통해 편성된 하나 이상의 콘텐츠들의 목록을 획득하는 과정; 및기설정된 사전 다운로드 구간 중, 상기 식별자를 기반으로 결정된 하나 이상의 시간 구간에서, 상기 하나 이상의 콘텐츠들의 적어도 일부를 다운로드하는 과정을 포함하는 것을 특징으로 하는 단말의 동작방법.
- 제1항에 있어서,상기 식별자 및 상기 목록은,상기 단말에 탑재된 어플리케이션의 실행에 따른 초기설정 절차에서 획득되는 것을 특징으로 하는 단말의 동작방법.
- 제1항에 있어서,상기 다운로드하는 과정은, 상기 사용자로부터의 다운로드 요청 수신 없이 개시되는 것을 특징으로 하는 단말의 동작방법.
- 제1항에 있어서,상기 시간 구간은,상기 사전 다운로드 구간에 포함된 각 프레임을 구성하는 복수의 슬롯들 중에서, 상기 식별자를 기초로 결정된 타겟 슬롯에 대응하는 시간 구간이고,상기 다운로드하는 과정은,현재 프레임의 타겟 슬롯의 시작 시점에서 웨이크업 모드로 전환하는 과정; 및상기 현재 프레임의 타겟 슬롯의 종료 시점까지 다운로드를 완료하지 못한 콘텐츠가 존재하는 경우, 다음 프레임의 타겟 슬롯의 시작 시점을 웨이크 업 시점으로 설정하고 슬립 모드로 전환하는 과정을 포함하는 것을 특징으로 하는 단말의 동작방법.
- 제4항에 있어서,상기 다운로드하는 과정은,상기 현재 프레임의 타겟 슬롯에 대응하는 시간 구간 내에서, 상기 단말의 무선 연결 상태, 상기 단말의 위치 및 현재시간 중 적어도 하나가 기설정된 조건을 만족하는 경우, 상기 다음 프레임 내의 타겟 슬롯을 웨이크 업 시점으로 설정하고 슬립 모드로 전환하는 것을 특징으로 하는 단말의 동작방법.
- 제1항에 있어서,상기 다운로드하는 과정 이후에,상기 사전 다운로드 구간 내에서 다운로드를 완료하지 못한 미완료 콘텐츠가 존재하는 경우, 상기 미완료 콘텐츠를 삭제하는 과정을 추가로 포함하는 것을 특징으로 하는, 단말의 동작방법.
- 제1항에 있어서,상기 다운로드하는 과정 이후에,상기 사전 다운로드 구간 내에서 다운로드를 완료하지 못한 미완료 콘텐츠가 존재하는 경우, 다음번의 사전 다운로드 구간에서 상기 미완료 콘텐츠의 나머지 부분을 다운로드하는 과정을 추가로 포함하는 것을 특징으로 하는, 단말의 동작방법.
- 제1항에 있어서,상기 다운로드하는 과정 이후에,상기 사전 다운로드 구간 내에서 다운로드를 완료하지 못한 미완료 콘텐츠가 재생 콘텐츠로 선택되는 경우, 상기 미완료 콘텐츠의 나머지 부분을 스트리밍으로 재생하는 과정을 추가로 포함하는 것을 특징으로 하는, 단말의 동작방법.
- 명령어가 저장된 컴퓨터로 읽을 수 있는 기록매체로서, 상기 명령어는 상기 컴퓨터에 의해 실행될 때 상기 컴퓨터로 하여금, 제1항에 따른 방법을 수행하도록 하는, 컴퓨터로 읽을 수 있는 기록매체.
- 단말에 부여된 식별자 및 상기 단말의 사용자에 대해 개인화된 추천을 통해 편성된 하나 이상의 콘텐츠들의 목록을 획득하는 다운로드 정책 매니저; 및기설정된 사전 다운로드 구간 중 상기 식별자를 기반으로 결정된 하나 이상의 시간 구간에서, 상기 하나 이상의 콘텐츠들의 적어도 일부를 다운로드하는 다운로드 에이전트를 포함하는 단말.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020220092470A KR20240014830A (ko) | 2022-07-26 | 2022-07-26 | 오프 디맨드 기반 콘텐츠 다운로드를 위한 방법 및 장치 |
KR10-2022-0092470 | 2022-07-26 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2024025252A1 true WO2024025252A1 (ko) | 2024-02-01 |
Family
ID=89706835
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/KR2023/010508 WO2024025252A1 (ko) | 2022-07-26 | 2023-07-20 | 오프-디맨드 기반 콘텐츠 다운로드를 위한 방법 및 장치 |
Country Status (2)
Country | Link |
---|---|
KR (1) | KR20240014830A (ko) |
WO (1) | WO2024025252A1 (ko) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20070091693A (ko) * | 2005-06-07 | 2007-09-11 | 야후! 인크. | 모바일 사용자 프로파일에 기초한 컨텐트 프리페칭 시스템 및 방법 |
KR20110139269A (ko) * | 2009-04-16 | 2011-12-28 | 마이크로소프트 코포레이션 | 디지털 콘텐츠 항목들의 순차화된 전송 |
KR20140046964A (ko) * | 2012-10-11 | 2014-04-21 | 위스트론 코포레이션 | 스트리밍 데이터 다운로드 방법 및 그의 컴퓨터 판독 가능한 기록 매체 |
KR20160106626A (ko) * | 2014-01-13 | 2016-09-12 | 페이스북, 인크. | 우선순위-기반의 디지털 컨텐츠 다운로드를 위한 시스템 및 방법 |
KR20210049600A (ko) * | 2019-10-25 | 2021-05-06 | 삼성전자주식회사 | 엣지 컴퓨팅 서비스를 이용하여 콘텐츠를 제공하기 위한 방법 및 장치 |
-
2022
- 2022-07-26 KR KR1020220092470A patent/KR20240014830A/ko unknown
-
2023
- 2023-07-20 WO PCT/KR2023/010508 patent/WO2024025252A1/ko unknown
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20070091693A (ko) * | 2005-06-07 | 2007-09-11 | 야후! 인크. | 모바일 사용자 프로파일에 기초한 컨텐트 프리페칭 시스템 및 방법 |
KR20110139269A (ko) * | 2009-04-16 | 2011-12-28 | 마이크로소프트 코포레이션 | 디지털 콘텐츠 항목들의 순차화된 전송 |
KR20140046964A (ko) * | 2012-10-11 | 2014-04-21 | 위스트론 코포레이션 | 스트리밍 데이터 다운로드 방법 및 그의 컴퓨터 판독 가능한 기록 매체 |
KR20160106626A (ko) * | 2014-01-13 | 2016-09-12 | 페이스북, 인크. | 우선순위-기반의 디지털 컨텐츠 다운로드를 위한 시스템 및 방법 |
KR20210049600A (ko) * | 2019-10-25 | 2021-05-06 | 삼성전자주식회사 | 엣지 컴퓨팅 서비스를 이용하여 콘텐츠를 제공하기 위한 방법 및 장치 |
Also Published As
Publication number | Publication date |
---|---|
KR20240014830A (ko) | 2024-02-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9516103B2 (en) | Managing linear multimedia content delivery | |
KR101432303B1 (ko) | 대역 요구 장치, 클라이언트 기기, 대역 요구 방법 및 기록 매체 | |
WO2011122909A2 (en) | Method and apparatus for providing timeshift service in digital broadcasting system and system thereof | |
WO2011136496A2 (en) | Method and apparatus for playing live content | |
WO2014038796A1 (ko) | 목록정보를 통해 구간들의 정보가 제공되는 미디어 컨텐트의 데이터를 중계하는 방법 및 장치 | |
WO2012138183A2 (en) | Apparatus and method for providing content using a network condition-based adaptive data streaming service | |
WO2013073866A1 (ko) | 통신 시스템에서 캐쉬 메모리 관리 방법 및 장치 | |
WO2013024966A1 (ko) | 콘텐트 수신 방법 및 장치 | |
WO2014069905A1 (ko) | 적응형 스트리밍을 이용한 미디어 세그먼트 송수신 방법 및 장치 | |
KR20230150878A (ko) | 데이터 송신 방법 및 장치, 그리고 서버, 저장 매체, 및 프로그램 제품 | |
WO2014058129A1 (en) | Electronic apparatus, server, and control method of system | |
US20080153461A1 (en) | Methods and Apparatus for a Virtual Content Channel Structure in a Broadband Wireless Network with Location-Based Content | |
WO2024025252A1 (ko) | 오프-디맨드 기반 콘텐츠 다운로드를 위한 방법 및 장치 | |
WO2019088721A1 (ko) | 오픈형 생중계 플랫폼 | |
JP4480673B2 (ja) | 動的チャンネルを利用する注文型マルチメディアデータサービス方法及びその装置 | |
CN101753568B (zh) | 内容接收装置和内容接收方法 | |
WO2013154364A1 (ko) | 스트리밍 재생 방법 및 이를 이용한 컴퓨팅 장치 | |
WO2016018102A1 (ko) | 클라우드 스트리밍 기반 방송 연동형 서비스 시스템, 방송 연동형 서비스 클라이언트 장치, 트리거 컨텐츠 제공 서버 및 이를 이용한 방법 | |
WO2015156476A1 (ko) | 청크 기반의 끊김 없는 스트림 송수신 장치 및 그 방법 | |
WO2015005613A1 (ko) | 네트워크 부하 분산 기반 vod 콘텐츠 제공 장치 및 방법 | |
WO2024005479A1 (ko) | 로컬 웹서버를 이용한 다운로드 데이터 및 스트리밍 데이터 간 연속 재생 방법 및 이를 위한 장치 | |
CN113676739B (zh) | 一种视频播放方法、装置、设备及存储介质 | |
WO2011118989A2 (en) | Method of managing selection information with respect to media content, and user device, service, and storage medium for executing the method | |
CN114143569A (zh) | 一种网页录制和直播方法及系统 | |
WO2018084360A1 (ko) | 미디어 버퍼 제어를 이용한 효율적인 무선 네트워크 스트리밍 중계 엔진 시스템 |
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: 23846911 Country of ref document: EP Kind code of ref document: A1 |