The present invention relates generally to Universal Plug and Play (UPnP) technology. More particularly, the present invention relates to the use of media servers in a UPnP environment.
This section is intended to provide a background or context to the invention that is recited in the claims. The description herein may include concepts that could be pursued, but are not necessarily ones that have been previously conceived or pursued. Therefore, unless otherwise indicated herein, what is described in this section is not prior art to the description and claims in this application and is not admitted to be prior art by inclusion in this section.
UPnP technology defines an architecture for pervasive peer-to-peer network connectivity of intelligent appliances, wireless devices, and personal computer devices of all types. UPnP is designed to bring easy-to-use, flexible, standards-based connectivity to ad-hoc or unmanaged networks whether in the home, in a small business, public spaces, or attached to the Internet. UPnP technology provides a distributed, open networking architecture that leverages Transmission Control Protocol/Internet Protocol (TCP/IP) and Web technologies in order to enable seamless proximity networking, in addition to control and data transfer among networked devices.
The UPnP Device Architecture (UDA) is designed to support zero-configuration, “invisible” networking and automatic discovery for a breadth of device categories from a wide range of vendors. In other words, UPnP enables a device to be capable of dynamically joining a network, obtaining an IP address, conveying the device's capabilities, and learning about the presence and capabilities of other devices.
A UPnP media server defines a UPnP entity that can serve multimedia for use and playing by various devices. Such a media server provides a content director, which shows which types of content can be provided by the media server.
Various embodiments provide a system and method by which a media server's operations may be improved. In various embodiments, a new action parameter, for resource-intensive actions such as browse and CreateObject operations, is provided. This new parameter may be used as a “hint” by a control point to inform a device about a forthcoming action. This parameter allows the media server to optimize its operations, for example by increasing the priority of server processes, scheduling maintenance operations so that they occur at a later time, etc. Information related to the action may be provided by a control point which orders multimedia actions to occur in a home network.
Various embodiments provide a method, computer program product, and apparatus for improving performance-related characteristics at a server device. According to various embodiments, a message is received at a server device concerning a request made by a control point device. The message includes an indication that subsequent related requests will be made by the control point device. A first set of results is returned to the control point device in response to the request, and at least one responsive action is taken in response to the indication. The responsive one action is, at least, related to improving resource utilization at the server device at least during a period in which the subsequent related requests are expected.
Various embodiments also provide a method, computer program product, and apparatus for improving performance-related characteristics at a server device. First, it is determined that a control point device desires to make a plurality of related requests directed to a server device. In response to the determination, a message concerning a particular request is prepared. The message includes an indication that subsequent related requests will be made. The message is then transmitted to a server device, whereby the indication is usable by the server device in taking at least one responsive action in response to the indication. The at least one action is related to improving resource utilization at the server device at least during a period in which the subsequent related requests are expected.
These and other advantages and features of various embodiments of the present invention, together with the organization and manner of operation thereof, will become apparent from the following detailed description when taken in conjunction with the accompanying drawings, wherein like elements have like numerals throughout the several drawings described below. Additionally, a mechanism may be provided by which the owner of the mobile media server may be notified if a processing-intensive task is about to be commenced.
Various embodiments provide a system and method by which a media server's operations may be improved. When a media server is implemented on a device with limited resources, the commencing of resource-intensive operations on the media server can result in distorted operations and a poor overall user experience. This may be especially true in the event that the device is already processing a resource-intensive tasks when a new operation is requested.
In various embodiments, the control point which is communicating with the media server can provide a “hint” to the media server that there will be sequential operations. In response, the media server device or other receiving device can use this information to better optimize its internal operations. For example, in a case where there is structured query language (SQL)-based metadata storage implementation in the media server, there will be often be a great deal of computer processing time used for every individual SQL database “read” operation. Therefore, if the control point can hint to the media server that there will be several browsing requests in the near future, then the media server can adjust its own operations so as to delay other process during the time that subsequent requests are expected. This can result in a shorter latency period in communications between the control point and the media server and thus better a user experience. This can also result in an end user of the media service device having a better user experience, since he or she can decide to delay certain processing actions until the control point has received all of the information that it requested.
The process in
As can be observed in
In the embodiment depicted in
The precise manner in which the “Sequence” identifier may be used may vary. The variance may depend upon, for example, system settings, system preferences, and user instructions. As mentioned above, the media server 120 can make several decisions on its own in response to receiving such an identifier in a message. The decision-making process may be dependent upon a series of default settings, a set of preferences of the owner of the media server 120, or a combination of the two. Additionally, when such an identifier is received by the media server 120, it is possible for the owner of the media server 120 to be notified of information relating to this identifier. It should also be noted that, although the process depicted in
In addition to the above, it is also possible that an end user of the media server device 105 (such as where the media server device 105 is also the end user's own mobile telephone) may wish to initiate a massive performance critical share operation action of its own at the media server device 105. Such an operation may produce a great deal of new metadata. If the end user is aware that a long lasting sequential operation is about to commence, at the request of a control point 115, or is already in progress, he or she may decide to wait to start the operation until a later time. Alternatively, if the operation is considered to be very resource critical, then the media server device's software can prioritize or hide operations in the media server device's user interface while the already-initiated operation is ongoing. Other control points in the network can also obtain information about ongoing operation through the use of State variables. For example, such variables can indicate whether existing operations are or are not producing any events of ongoing operation, and indications may be provided to other users in the network at a given moment.
At 320, a message is relayed from the media server 120 to an application engine 300, with this message indicating that a sequential CreateObject action is taking place. At 325, the application engine informs the media server device's user interface 310 that the media server 120 is in use. In the event that the end user of the media server device 105 wishes to perform its own resource-intensive task, such as copying a large container file, for example, then it may decide to delay this procedure given the interactions between the control point device 100 and the media server 120. Alternatively, if the procedure is already underway, the end user may decide to temporarily pause this action.
Subsequent to 325, the control point device 100 and the media server device 105 will continue to exchange requests and responses. These messages are depicted at 330 and 335, respectively. The nature and timing of the messages may vary. As an example, the messages may take the form of the types depicted in
It should also be noted that, in the scenario depicted in
For exemplification, the system 10 shown in
The exemplary communication devices of the system 10 may include, but are not limited to, an electronic device 12 in the form of a mobile telephone, a combination personal digital assistant (PDA) and mobile telephone 14, a PDA 16, an integrated messaging device (IMD) 18, a desktop computer 20, a notebook computer 22, etc. The communication devices may be stationary or mobile as when carried by an individual who is moving. The communication devices may also be located in a mode of transportation including, but not limited to, an automobile, a truck, a taxi, a bus, a train, a boat, an airplane, a bicycle, a motorcycle, etc. Some or all of the communication devices may send and receive calls and messages and communicate with service providers through a wireless connection 25 to a base station 24. The base station 24 may be connected to a network server 26 that allows communication between the mobile telephone network 11 and the Internet 28. The system 10 may include additional communication devices and communication devices of different types.
The communication devices may communicate using various transmission technologies including, but not limited to, Code Division Multiple Access (CDMA), Global System for Mobile Communications (GSM), Universal Mobile Telecommunications System (UMTS), Time Division Multiple Access (TDMA), Frequency Division Multiple Access (FDMA), Transmission Control Protocol/Internet Protocol (TCP/IP), Short Messaging Service (SMS), Multimedia Messaging Service (MMS), e-mail, Instant Messaging Service (IMS), Bluetooth, IEEE 802.11, etc. A communication device involved in implementing various embodiments of the present invention may communicate using various media including, but not limited to, radio, infrared, laser, cable connection, and the like.
Various embodiments described herein are described in the general context of method steps or processes, which may be implemented in one embodiment by a computer program product, embodied in a computer-readable medium, including computer-executable instructions, such as program code, executed by computers in networked environments. A computer-readable medium may include removable and non-removable storage devices including, but not limited to, Read Only Memory (ROM), Random Access Memory (RAM), compact discs (CDs), digital versatile discs (DVD), etc. Generally, program modules may include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. Computer-executable instructions, associated data structures, and program modules represent examples of program code for executing steps of the methods disclosed herein. The particular sequence of such executable instructions or associated data structures represents examples of corresponding acts for implementing the functions described in such steps or processes.
Embodiments of the present invention may be implemented in software, hardware, application logic or a combination of software, hardware and application logic. The software, application logic and/or hardware may reside, for example, on a chipset, a mobile device, a desktop, a laptop or a server. Software and web implementations of various embodiments can be accomplished with standard programming techniques with rule-based logic and other logic to accomplish various database searching steps or processes, correlation steps or processes, comparison steps or processes and decision steps or processes. Various embodiments may also be fully or partially implemented within network elements or modules. It should be noted that the words “component” and “module,” as used herein and in the following claims, is intended to encompass implementations using one or more lines of software code, and/or hardware implementations, and/or equipment for receiving manual inputs.
Individual and specific structures described in the foregoing examples should be understood as constituting representative structure of means for performing specific functions described in the following the claims, although limitations in the claims should not be interpreted as constituting “means plus function” limitations in the event that the term “means” is not used therein. Additionally, the use of the term “step” in the foregoing description should not be used to construe any specific limitation in the claims as constituting a “step plus function” limitation. To the extent that individual references, including issued patents, patent applications, and non-patent publications, are described or otherwise mentioned herein, such references are not intended and should not be interpreted as limiting the scope of the following claims.
The foregoing description of embodiments has been presented for purposes of illustration and description. The foregoing description is not intended to be exhaustive or to limit embodiments of the present invention to the precise form disclosed, and modifications and variations are possible in light of the above teachings or may be acquired from practice of various embodiments. The embodiments discussed herein were chosen and described in order to explain the principles and the nature of various embodiments and its practical application to enable one skilled in the art to utilize the present invention in various embodiments and with various modifications as are suited to the particular use contemplated. The features of the embodiments described herein may be combined in all possible combinations of methods, apparatus, modules, systems, and computer program products.
This application claims priority under 35 U.S.C. § 119(e) from U.S. Provisional Application Ser. No. 61/045,889, filed Apr. 17, 2008, incorporated herein by reference in its entirety.
| Number | Date | Country | |
|---|---|---|---|
| 61045889 | Apr 2008 | US |