The present invention relates to the field of data communications and more particularly relates to a system and method for delivering PC based content through a relay system using Really Simple Syndication (RSS) protocol.
In recent years the number of computers in use is increasing at an ever quickening pace. Along with the huge increase in the number of computers in use around the world, is a parallel increase in the number of computers connected to the Internet. Further, the world is witnessing an explosion of wireless devices that have the capability of connecting to the Internet as well. Such wireless devices include, for example, laptop computers, notebooks, palmtops, PDAs, cellular telephones with email and web browsing capabilities and other mobile wireless devices.
Often times, a user would need to transfer content between a personal computer (PC) (e.g., desktop or laptop) and a mobile device or other computer. Traditionally, the transfer of content between personal computers and mobile devices is typically carried out using (1) direct cables that physically connect both devices, (2) Bluetooth, WiMedia, UWB or some other short distance wireless access method or (3) removable media (e.g., digital flash memory based media cards, etc.).
In the case of direct cable and Bluetooth connections, the storage capacity on the receiving device (i.e. cellular phone, mobile device, laptop, desktop, etc.) must be sufficiently large enough to hold the PC content being transferred (e.g., video files, audio files, etc.). The problem is that the majority of the cellular phones and other mobile devices available today do not contain sufficient storage to hold the large sized files video, picture or audio files typically transferred. Further most cellular telephones and other types of mobile device do not have slots for flash memory media storage cards.
Moreover, very few services existing today provide a user the ability to stream media from their own personal computers. Rather, the majority of currently existing services supply the content that the end-user views on their device but they do not provide a delivery mechanism for this content.
There is thus a need for a mechanism that overcomes the disadvantages of the prior art. In particular, there is a need for a mechanism that is able to deliver PC content from one computing device to another without the need for direct physical connections between the two computing devices. Further, the mechanism should be able to stream contents from a user's PC without requiring the availability of large flash media cards on the receiving computing device.
The present invention is a system and method for delivering personal computer (PC) based content through a server based relay system using really simple syndication (RSS). The mechanism of the present invention is operative to stream any type of PC content such as directories, files such as pictures (JPG, BMP, etc.), video (MPG, AVI, etc.) and audio (MP3, MPC, WMA, etc.) and application data (email from Microsoft Outlook, etc.).
The mechanism comprises a multimedia server (MMS) that resides on the user's source computer (i.e. the computer with the content to be accessed; the “server”) and a multimedia client (MMC) that resides on the destination or target computing device (the “client”). It is important to note that it is not required that the MMC be implemented as a separate application. This is because the MMS is operative to generate RSS content that can be formatted into HTML. Thus, the “client” can simply be an ordinary web browser. The destination or target computing device can comprise any type of processing device such as a desktop PC, laptop PC, notebook, palmtop, PDA, cellular telephone with web access, etc., and is not critical to the invention.
The mechanism of the present invention provides a user with complete access to the content on their PC (e.g., audio, video, files, application data, etc.) through the MMS content server that resides on their source PC. The multimedia server converts (i.e. translates or renders) files and resources to be delivered as an RSS document which can be further “stylized” through HTML style sheets (like XSTL) and delivered to anything capable of consuming web pages, such as for example, an ordinary Internet browser like Microsoft Internet Explorer or a specialized reader. An illustrative example of the application of the mechanism of the invention to a music player is provided infra.
The mechanism of the invention is also operative to render (i.e. generate) the RSS documents from the various PC items selected by a user to be made available to the MMC device. In the event the desired PC items include application data (e.g., emails within an email application, or other application specific items), the invention provides a mechanism for representing application data as RSS documents. Further, the invention provides a mechanism for the delivery of RSS documents to the multimedia client and for permitting the user at the client device to interact with the RSS document displayed as a web page through clicking on “elements” of the RSS document that are represented on the web page as links and operate as ordinary HTML. Clicking on a link is processed by the MMS (which includes an integrated web server capable of processing such requests) and may point to a local file (in which case the link is a Universal Resource Indicator (URI) to the file on the local hard drive where the MMS is located) or an external resource (i.e. a file on a network drive or located elsewhere on the Internet).
The invention also comprises a relay mechanism whereby the location of the MMS on the Internet does not need to be known by the MMC. MMSs register their locations with a third party authentication server located anywhere on the Internet. The MMC requests from the authentication server the location of an MMS using a unique serial number assigned to and used to uniquely identify each MMS. In this architecture, the relationship between the MMS and the MMC is a “peer-to-peer” relationship wherein the MMC makes direct requests to the MMS and such requests are not processed by a third-party computing agent and then delivered to the MMS.
Note that some aspects of the invention described herein may be constructed as software objects that are executed in embedded devices as firmware, software objects that are executed as part of a software application on either an embedded or non-embedded computer system such as a central processing unit (CPU), digital signal processor (DSP), microcomputer, minicomputer, microprocessor, etc. running a real-time operating system such as WinCE, Symbian, OSE, Embedded LINUX, etc. or non-real time operating system such as Windows, UNIX, LINUX, etc., or as soft core realized HDL circuits embodied in an Application Specific Integrated Circuit (ASIC) or Field Programmable Gate Array (FPGA), or as functionally equivalent discrete hardware components.
There is therefore provided in accordance with the invention, a method of delivering personal computer (PC) content over a network, the method comprising the steps of rendering, on a multimedia server (MMS), a plurality of PC based items as really simple syndication (RSS) documents and storing the RSS documents in memory, generating, on a multimedia client (MMC), a request for one or more RSS documents, in response to the request, retrieving one or more RSS documents on the server from the memory and sending the one or more RSS documents retrieved to the multimedia client.
There is also provided in accordance with the invention, a method of delivering personal computer (PC) content over a network, the method comprising the steps of requesting from an authentication service a location of a multimedia server (MMS) running on a user's PC, establishing a peer-to-peer connection between a multimedia client (MMC) and the MMS, rendering, on the MMS, a plurality of PC based items as really simple syndication (RSS) documents and storing the RSS documents in memory, generating on the MMC a request for one or more RSS documents and forwarding the request to the MMS, in response to the request, retrieving one or more RSS documents on the MMS from the memory and sending the one or more RSS documents retrieved to the MMC.
There is further provided in accordance with the invention, a system for delivering personal computer (PC) content over a network comprising a really simple syndication (RSS) document database located on one or more servers, the RSS document database for storing one or more RSS documents, each RSS document associated with a particular PC based item, one or more multimedia clients (MMCs) coupled to the network, each MMC operative to generate a request message for an RSS document in response to a user input command, each MMC operative to send the request message to a multimedia server (MMS) coupled to the network, and to process and display the requested RSS document received from the MMS and the MMS operative to render a plurality of PC items, each PC item rendered as an RSS document stored in the RSS document database, the MMS operative to receive the request message from the MMC and, in response thereto, to retrieve the requested RSS document from the RSS database and forward the requested RSS document to the MMC.
There is also provided in accordance with the invention, a method of delivering personal computer (PC) content over a network for use on a multimedia server (MMS) computer coupled to the network, the method comprising the steps of rendering a plurality of PC based items as really simple syndication (RSS) documents and storing the RSS documents in an RSS document database, receiving a request for one or more RSS documents from a multimedia client (MMC) coupled to the network, in response to the request, retrieving one or more RSS documents from the RSS document database and sending the one or more requested RSS documents to the multimedia client.
There is further provided in accordance with the invention, a multimedia server (MMS) coupled to a network for delivering personal computer (PC) content over the network comprising a really simple syndication (RSS) document database for storing one or more RSS documents, each RSS document associated with a particular PC based item, a user configuration database for storing an index of application related data selected to be viewed by a user, a web server operative to receiving requests for RSS documents from one or more multimedia clients (MMCs) coupled to the network and to display a web page containing the requested RSS document to the MMC and an RSS agent coupled to the RSS document database, the user configuration database and the web server, the RSS agent operative to render user selected PC based items as RSS documents utilizing the user configuration database and to store the RSS documents in the RSS document database, the RSS agent operative to retrieve an RSS document from the RSS document database in response to a request received from an MMC and to forward the requested RSS document to the requesting MMC, the RSS agent operative to retrieve application specific data utilizing the user configuration database in response to a corresponding request received from an MMC.
There is also provided in accordance with the invention, a computer program product comprising a computer usable medium having computer usable program code for delivering personal computer (PC) content over a network, the computer program product including, computer usable program code for rendering a plurality of PC based items as really simple syndication (RSS) documents and storing the RSS documents in an RSS document database, computer usable program code for receiving a request for one or more RSS documents from a multimedia client (MMC) coupled to the network, computer usable program code for in response to the request, retrieving one or more RSS documents from the RSS document database and computer usable program code for sending the one or more requested RSS documents to the multimedia client.
The invention is herein described, by way of example only, with reference to the accompanying drawings, wherein:
The following notation is used throughout this document.
Term Definition
API Application Programming Interface
ASIC Application Specific Integrated Circuit
AVI Audio Video Interleave
BMP Windows Bitmap
CD-ROM Compact Disc-Read Only Memory
CPU Central Processing Unit
DSP Digital Signal Processor
EEROM Electrically Erasable Read Only Memory
FM Frequency Modulation
FPGA Field Programmable Gate Array
FTP File Transfer Protocol
GUI Graphical User Interface
HTTP Hypertext Transfer Protocol
HTTPS SSL secured HTTP
IP Internet Protocol
JPG Joint Photographic Experts Group
LAN Local Area Network
MAC Media Access Control
MD5 Message-Digest algorithm 5
MMC Multimedia Client
MMS Multimedia Server
MPC Media Player Classic
MPG Motion Picture Group
NIC Network Interface Card
PC Personal Computer
PDA Personal Digital Assistant
RAM Random Access Memory
RF Radio Frequency
ROM Read Only Memory
RSA Rivest Shamir Adleman encryption algorithm,
RSS Really Simple Syndication
SIM Subscriber Identity Module
URI Uniform Resource Identifier
USB Universal Serial Bus
UWB Ultra Wideband
WAN Wide Area Network.
WMA Windows Media Audio
WWAN Wireless Wide Area Network
XHTML Extensible HyperText Markup Language
XML Extensible Markup Language
XSTL eXtensible Style Sheet Language Transformation
The present invention is a system and method for delivering personal computer (PC) based content through a server based relay system using really simple syndication (RSS). The mechanism of the present invention is operative to stream any type of PC content such as directories, files such as pictures (JPG, BMP, etc.), video (MPG, AVI, etc.) and audio (MP3, MPC, WMA, etc.).
Some portions of the detailed descriptions which follow are presented in terms of procedures, logic blocks, processing, steps, and other symbolic representations of operations on data bits within a computer memory. These descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. A procedure, logic block, process, etc., is generally conceived to be a self-consistent sequence of steps or instructions leading to a desired result. The steps require physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared and otherwise manipulated in a computer system. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, bytes, words, values, elements, symbols, characters, terms, numbers, or the like.
It should be borne in mind that all of the above and similar terms are to be associated with the appropriate physical quantities they represent and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the following discussions, it is appreciated that throughout the present invention, discussions utilizing terms such as ‘processing,’ ‘computing,’ ‘calculating,’ ‘determining,’ ‘displaying’ or the like, refer to the action and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices.
The invention can take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment containing both hardware and software elements. In a preferred embodiment, the invention is implemented in software, which includes but is not limited to firmware, resident software, microcode, etc.
Furthermore, the invention can take the form of a computer program product accessible from a computer-usable or computer-readable medium providing program code for use by or in connection with a computer or any instruction execution system. For the purposes of this description, a computer-usable or computer readable medium can be any apparatus that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device.
A block diagram illustrating an example network incorporating an authentication server, multimedia server (MMS) and multimedia client (MMC), all constructed in accordance with the present invention is shown in
The multimedia server (MMS) 12 resides on the user's source computer (i.e. the computer with the content to be accessed; hereinafter referred to as the “server” or MMS). The multimedia client (MMC) resides on the destination or target computing device (hereinafter the “client” or MMC). The MMC may be construed as any software, hardware or combination of software and hardware, capable of communicating with the MMS which includes, but is not limited to, a conventional web browser, a custom application or any other software that can access HTML and render such to the end user. The destination or target computing device can comprise any type of processing device such as a desktop PC, laptop PC, notebook, palmtop, PDA, cellular telephone with web access, etc., and is not critical to the operation of the invention.
The mechanism of the present invention provides a user with complete access to the content on their PC (e.g., audio, video, files, application data, etc.) through the MMS content server that resides on their source PC. The multimedia server converts (i.e. translates or renders) files and resources to be delivered as an RSS document which can be further “stylized” through HTML style sheets (like XSTL) and delivered to anything capable of consuming web pages, such as for example, an ordinary Internet browser like Microsoft Internet Explorer or a specialized reader.
The invention also comprises a relay mechanism whereby the location of the MMS on the Internet does not need to be known by the MMC. MMSs register their locations with a third party authentication server located anywhere on the Internet. The MMC requests from the authentication server the location of an MMS using a unique serial number assigned to and used to uniquely identify each MMS.
Once the location of the MMS is known, a peer-to-peer connection with the MMS is created as indicated in
Note that in this example, the manner of how the MMC communicates with the MMS is not critical to the invention. For illustrative purposes only, user B uses a wireless PDA and user C uses a mobile device such as a cellular telephone wherein each connects to the Internet through the wireless network 20. The PC is shown connected directly to the Internet, however, it is appreciated that a laptop equipped with a wireless card can communicate over the wireless network 20 as well.
A block diagram illustrating an example computer processing system architecture suitable for use with the present invention is shown in
The computer system is connected to one or more external networks such as a LAN or WAN 54 via communication lines connected to the system via a network interface card (NIC). A local communications I/F 66 provides connections to various wireless, serial and parallel devices. Examples include Bluetooth, UWB, USB, Firewire, etc. The network adapters 56 and local communications I/F 66 coupled to the system enable the data processing system to become coupled to other data processing systems or remote printers or storage devices through intervening private or public networks. Modems, cable modem and Ethernet cards are just a few of the currently available types of network adapters.
The system also comprises magnetic or semiconductor based storage device 52 for storing application programs and data. The system comprises computer readable storage medium that may include any suitable memory means, including but not limited to, magnetic storage, optical storage, semiconductor volatile or non-volatile memory, biological memory devices, or any other memory storage device.
Software adapted to implement the RSS based PC content delivery mechanism is adapted to reside on a computer readable medium, such as a magnetic disk within a disk drive unit. Alternatively, the computer readable medium may comprise a floppy disk, removable hard disk, Flash memory 46, EEROM based memory, bubble memory storage, ROM storage, distribution media, intermediate storage media, execution memory of a computer, and any other medium or device capable of storing for later reading by a computer a computer program implementing the method of this invention. The software adapted to implement the RSS based PC content delivery mechanism of the present invention may also reside, in whole or in part, in the static or dynamic main memories or in firmware within the processor of the computer system (i.e. within microcontroller, microprocessor or microcomputer internal memory).
Other digital computer system configurations can also be employed to implement the RSS based PC content delivery mechanism of the present invention, and to the extent that a particular system configuration is capable of implementing the system and methods of this invention, it is equivalent to the representative digital computer system of
Once they are programmed to perform particular functions pursuant to instructions from program software that implements the system and methods of this invention, such digital computer systems in effect become special purpose computers particular to the method of this invention. The techniques necessary for this are well-known to those skilled in the art of computer systems.
It is noted that computer programs implementing the system and methods of this invention will commonly be distributed to users on a distribution medium such as floppy disk or CD-ROM or may be downloaded over a network such as the Internet using FTP, HTTP, or other suitable protocols. From there, they will often be copied to a hard disk or a similar intermediate storage medium. When the programs are to be run, they will be loaded either from their distribution medium or their intermediate storage medium into the execution memory of the computer, configuring the computer to act in accordance with the method of this invention. All these operations are well-known to those skilled in the art of computer systems.
A block diagram illustrating an example mobile device/cellular phone/PDA system architecture suitable for use with the present invention is shown in
Several user interface devices include microphone 84, speaker 82 and associated audio codec 80, a keypad for entering dialing digits 86, vibrator 88 for alerting a user, camera and related circuitry 100, a TV tuner 102 and associated antenna 104, display 106 and associated display controller 108 and GPS receiver and associated antenna 92.
A USB interface connection 78 provides a serial link to a user's PC or other device. An FM tuner 72 and antenna 74 provide the user the ability to listen to FM broadcasts. WLAN interface 76 provides wireless connectivity when in a hot spot or within the range of an ad hoc, infrastructure or mesh based wireless network. SIM card 116 provides the interface to a user's SIM card for storing user data such as address book entries, etc.
Portable power is provided by the battery 124 coupled to battery management circuitry 122. External power is provided via USB power 118 or an AC/DC adapter 120 connected to the battery management circuitry which is operative to manage the charging and discharging of the battery 124.
A block diagram illustrating the authentication server of the present invention in more detail is shown in
In operation, each MMS communicates (i.e. registers) its WAN IP address to the IP authentication server before any PC content can be delivered. The transfer of the IP address and related server information is encrypted at the MMS before transmission utilizing a standard encryption methodology (e.g., public/private key, RSA, Blowfish, etc.). The MMS transmits this message to the authentication server by way of HTTPS (SSL secured HTTP communication). The authentication server listens for transmission traffic on a specific IP address and port number. When an MMS attempts to deliver data to that IP address and/or port number, it first sends its serial number in a hash sequence to the authentication server which decrypts the information to reveal the serial number. Note that only an authentication server with the correct hash key can decrypt the unique serial number within the hash that was encrypted using the same key by the MMS. Note also that the serial number is generated through a random process by the company delivering the MMS to the end user and provided to the user once payment for the MMS has been processed.
Once the serial number has been verified after being decrypted, the authentication server creates a unique “connection key” that is transmitted to the MMS. This key is then appended to each and every transmission between the MMS and the authentication server during the transaction of sending data from the MMS to the authentication server. Any communication that does not have a key appended to it will not be recognized by the authentication server. The data from the MMS is then sent in encrypted text to the authentication server which decrypts the message from the MMS and verifies it against a record in the user information database using the MAC address as the primary key. If no record is found, a unique serial number is generated corresponding to the MMS. A new record is created in the user information database and the serial number along with the IP address, MAC address and port number of the MMS are stored therein. The record stored in the authentication server user information database comprises the IP address, MAC address and port number of the MMS on the user's PC.
If the MMS sending the message is already registered and the MMS is verified to be authentic, the IP authentication module updates the record in the user information database corresponding to the MAC address in the message with the current WAN IP address of the MMS. In this manner, the authentication server is kept up to date when the MMS changes location.
When a MMC requests the location of a MMS, it sends a request to the authentication server. The request includes the unique serial number previously assigned to the MMS. The user information database is searched for a matching MMS record using the serial number as the key. If a matching MMS record is found and if the received request is from a browser, the IP redirection module is operative to HTTP redirect the browser to the IP address on record for the MMS in the request. The redirection can be accomplished through a simple web based form into which the user enters the unique serial number corresponding to the MMS, a username, and one or more credentials. The IP redirection module retrieves the WAN IP address and port number from the user configuration database and passes the web browser request to the requesting user client which then redirects to that IP address, passing the encrypted username and password encrypted with the serial number of the MMS to the MMS where it is decrypted using the MMS serial number. Once decrypted, a unique session is created that is shared between the MMS and the MMC or conventional web browser for the transmission session.
A block diagram illustrating the multimedia client (MMC) of the present invention in more detail is shown in
The RSS reader is a software application that runs on the client for processing and displaying (i.e. rendering) the RSS document stored on the user's computer which was generated by the MMS and delivered to the MMC via the network. The RSS reader also provides connectivity to the MMS and authentication server. The RSS reader application provides basic functionality, such as search, browse, select, etc., that allows the user to interact with the RSS document and retrieve elements from the user's PC via the MMS. This is accomplished when the user clicks on an item within the list displayed by the MMC on the client. The RSS reader requests the selected object from the MMS using the item's URI. The MMS, in response, sends (i.e. streams) the item to the MMC for processing and display by the RSS reader.
When the RSS reader first establishes a connection directly with the MMS, the reader sends credentials which are validated and authenticated by the RSS agent portion of the MMS on the user's computer. The credential comprise username, password and serial number of the MMS.
The IP request module is operative to initiate a connection to the authentication server by sending a request to the authentication server for the IP Address of the MMS it wants to connect to. The request comprises the unique serial number and/or MAC address associated with the MMS. The authentication server, via the IP authentication module, is operative to authenticate the message and retrieve the WAN IP address and port number of the MMS corresponding to the serial number included with the request. The IP address and port number are then sent to the MMC whereby the RSS reader configures and creates a direct connection with the desired MMS using the WAN IP address and port number.
The application forward module functions to forward the RSS document sent by the MMS to the particular application(s) 168 that is designated to handle that type of document on the client computing device. In the case a document type is received wherein the supporting application is not known, the user can be queried for the application to open the file with.
A block diagram illustrating the multimedia server (MMS) of the present invention in more detail is shown in
The primary function of the RSS agent is to take input (i.e. PC items such as files, etc.) from the user and convert the input to an RSS compatible document. The agent also functions to provide the connectivity between the MMS and the reader in the MMC and to handle requests for documents received from the MMC. The agent also provides the user interface between the user and the MMS. For example, management functions provided by the agent include: (1) checking for authorized access to both the MMS and the RSS documents via username and password as well as (2) emailing credentials to users when the credentials are created.
The agent comprises an IP notification task which functions to monitor the NIC through which the connection by the MMC to the MMS is made. Any changes detected in the WAN IP address of assigned to the NIC are relayed to the authentication server. If a change is detected, the IP notification task is operative to send a change message to the authentication comprising the WAN IP address, MAC address of the NIC card and port number of the MMS server.
The HTTP server module of the MMS provides the capability to the user for web-based viewing/streaming of PC content through a conventional Internet web browser.
The agent has access to the PC hard disk contents 180 and also interfaces with one or more applications 184. The applications have access to the hard disk contents 180 and their associated application data 182 which may be stored on the hard disk 180 or separately.
A block diagram illustrating the processing sequence of the RSS based PC content delivery system of the present invention is shown in
With reference to
Processing Sequence Step 1 (Referenced 138):
The RSS agent application in the MMS on the user's computer communicates its WAN IP address (e.g., the IP address assigned to it by an ISP) to the third party service on the remote authentication server. As described supra, the WAN IP address is sent along with the MAC address of the network interface card (NIC) as well as the port number of the MMS that the application will use to listen for incoming requests from MMCs. The data is encrypted using a standard encryption algorithm and incorporated in a message sent to the authentication server. The authentication server functions to decrypt the message and, using the MAC address as a key, updates a corresponding record in the user information database with the new WAN IP address if a record corresponding to that MMS already exists.
Processing Sequence Step 2 (Referenced 140):
If a record is not in the user information database, the authentication server generates a unique serial number to be associated with the MMS. The authentication server sends the serial number back to the MMS. The MMS stores the serial number for use in authenticating requests from the MMC for RSS documents. Ultimately, the user at the MMC must provide the appropriate serial number corresponding to the MMS desired to receive content from.
Processing Sequence Step 3 (Referenced 142):
When initiated by a user, the MMC in the client computing device contacts the third-party service running on the authentication server using the unique serial number corresponding to the MMS on the user's PC. Note that the serial number and other information were entered into the MMC upon first use along with the username and password of the MMS. In the event that the MMC is a conventional web browser, such credentials can be stored in a medium on the user's hard drive (such as a “cookie”) and transmitted to the MMS for authentication. The authentication server attempts to authenticate and verify the received information.
Processing Sequence Step 4 (Referenced 144):
If the authentication server finds a match and successfully resolves the serial number sent by the MMC, it retrieves the corresponding record from the user information database which comprises the IP address and port number of the MMS associated with that serial number. The IP address and port number are sent back to the MMC.
Processing Sequence Step 5 (Referenced 146):
Having obtained the location of the MMS, the MMC connects to MMS via the Internet using the IP address and port number received from the authentication server. This creates a “peer-to-peer” relationship in which requests sent by the MMC are sent directly to the MMS and not to a third-party or intermediary for translation or processing. The MMC sends the username and password that was entered upon first use along with the serial number associated with that MMS. The MMS on the user's PC resolves, verifies and authenticates the credentials.
Processing Sequence Step 6 (Referenced 148):
The user at the MMC then enters a request (e.g., query, command, etc.) which is relayed to the MMS. In response, the MMS on the user's PC returns the RSS document corresponding to the request. The RSS document is received by the RSS reader in the MMC which functions to process and display the contents of the RSS document. If the document displayed offers further selection, the MMC user selects an item from the document (via any suitable input method). The application forwarder passes the selection to the appropriate application for rendering (i.e. media player for music, video player for video, etc.)
Example uses of the RSS based PC content delivery mechanism of the invention include remote document management and email access. Remote document access permits a user to view word processing documents (e.g., Word, Wordperfect, etc.) located on the user's PC over the network on the client computing device (MMC). The only requirement is that the appropriate word processing document readers are available on the client computing device (MMC). Email access would operate by rendering and displaying the data from the email program (e.g., Microsoft Outlook) and allowing the user to interact with that data through RSS. By rendering the email data as RSS, the user is able to view her/his emails from the client computing device and click on an element (as represented as a link in HTML) which retrieves further information about the email (e.g., the entire body of the email) from the email application as rendered as an RSS element by the MMS. In this case, the emails must be rendered at the MMS into plain text for inclusion into an RSS document before being sent to the MMC. This is achieved by indexing the email with unique ID numbers into an RSS document. A user then clicks on an element allowing the MMS to retrieve the specific, detailed email using that unique ID. This process is described in more detail infra in connection with
It is important to note that regardless of the application, the mechanism of the invention is operative to render (i.e. convert) into RSS format all data on the user's PC (i.e. the server) that is to be served to the MMC over the network.
The invention utilizes the really simple syndication (RSS) format to represent documents for delivery to the target or client computing device. Every object that can be identified through a Uniform Resource Identifier (URI) is a resource that can be embedded in an RSS document. An RSS document contains information about which information objects are to be found under a URI. In addition, it can include a description of the resource and the individual information objects, the specification of a unique identifier for the objects and other information. It is also possible that the information object described may be completely embedded in the feed document. In this case, the invention provides a method of generating RSS documents from the application data. This is achieved by indexing the email with unique ID numbers into an RSS document. A user then clicks on an element allowing the MMS to retrieve the specific, detailed email using that unique ID. This process is described in more detail infra in connection with
All RSS documents are translated into serialized strings of characters and they use existing formats for content, i.e. simple text, HTML, XHTML, other XML vocabularies. RSS works independently of the internal structure of the information. Any item or collection of information can be the object of a RSS document. There are two kinds of information objects in all RSS formats, that is, collections of new information items and new individual items of information. The collections are called a channel (or a feed); an object within a collection is called an item or an entry. Both the channel and the item comprise content information, metadata, and information about the identification and linking of information objects.
An RSS document may describe another web resource, namely, the resource that is identified by the content of the link element. The presence of an element called a link, and with it, the ability to identify a document it refers to, distinguishes RSS documents from other web formats like HTML. The link element only states what the RSS document describes.
One of the characteristics of RSS is that the description is defined very generically making it is possible to include any type of content in the description. Thus, any kind of web content can be sampled and further distributed in an RSS document. This characteristic of RSS is used by the present invention.
In addition, RSS, as a subset of XML, can be “translated” and “stylized” through eXtensible Style Sheet (XSTL) into HTML and thereby consumed by any application capable of rendering HTML content, such as a conventional web browser. This mechanism allows “serialized content” such as RSS to be embedded into an otherwise normal looking webpage and not a list of RSS data elements.
As described supra and with reference to
The user interacts with the agent through an interface provided by the agent on the MMS that allows her/him to select a desired type of indexing. Once the user makes a selection of what files or directories are to be rendered into RSS format by the agent, that information is stored in a user configuration database 174 that the agent can access at any time.
Once user configuration information is stored, the agent generates the RSS representation of the selected files, directories or application data (e.g., email from a personal information management such as Microsoft Outlook).
The process of creating the RSS representation of the selected data is as follows: (1) first, the agent reads the directory or file name from the hard disk 180; (2) the agent then writes the directory or file name into an RSS element enclosure such as shown below.
Each <item> element created is appended to a single RSS document that is then encrypted by the agent. The encrypted RSS document is then stored in a RSS documents database 176 accessible by the Agent. The RSS documents are encrypted using any well-known encryption algorithm such as RSA, MD5, public/private key, etc.
In the event the desired PC items include application data (e.g., emails within an email application, or other application specific items), the invention provides a mechanism for representing application data as RSS documents. Further, the invention provides a mechanism for the delivery of RSS documents to the multimedia client and for permitting the user at the client device to interact with the RSS document displayed as a web page.
A flow diagram illustrating the method of representing application data in RSS format is shown in
The agent then attempts to communicate with the application using the appropriate API and presents the user with application data (step 192). From the application data presented, the user further specifies the particular data to be available for serving to the MMC (step 194). The data selection can be performed using dialog boxes and other various graphical user interface (GUI) elements.
Once selected, the user's choices (i.e. the data to be served) and any required username, password or other parameters the agent needs to access the data, are stored as configuration data in the user configuration database 174 by the agent for future access (step 196). Note that the data stored in the user configuration database can be stored in either clear text or encrypted text depending on the particular implementation.
Once the configuration data is stored, at some point later in time, the agent retrieves the data from the user configuration database and creates a representation of the data that can be utilized by the agent (step 198). Each application accessed by the agent is assigned a unique ID for identification purposes. This unique ID is stored in a master dataset of applications 178 in any suitable format, such as XML. This master dataset could be represented as the following:
Note that the number of parameters is not limited. When a request is made by a requesting multimedia client for data (i.e. a user clicks on an element in a web page that corresponds to a request for getting more detailed data from an application), the agent receives the request in the following form:
The ‘application ID’ is used to retrieve the configuration data and other information from the master dataset of applications 178. To retrieve the data, the agent compares all the <ID> tag records in the XML file looking for a match on the ID. The agent then pieces together a command string to the application consisting of the name of the API function and each parameter that exists within the recursive parameter tags. The API function is pulled from the API tag of the appropriate XML record corresponding to that application. The agent then passes this information to the application executable (determined from the location tag within the XML record) and processes the returning data into the RSS document.
When the agent represents the data, the <Item> tag within the RSS document may be modified depending upon the specific requirements of the application data. For example, an email may be represented as the following
In order to create an ‘index’ of the application data, the agent goes through the entire application data file (based upon the example data presented) and creates a numerical index of the items within the file (step 200). Note that an item represents a complete record of data that the user indicated they wanted to see (i.e. serve to the MMC). This index is stored in the configuration information database 174 in order to permit access to the application data by the agent (step 202).
In the event that the user changes the requirements of the data (i.e. different elements of data from the application are to be served), the agent ‘re-indexes’ the entire application data file according to the new data set and stores the resulting new index in the user configuration database (step 204).
A flow diagram illustrating the request/response method of the multimedia client is shown in
A user can request information at the MMC by accessing the web server 186 by navigating to its IP address (step 210). The MMC must first obtain the IP address and port number of the MMS by sending a request containing the serial number of the MMS to the authentication server. Note that the IP address of the MMS is the address assigned to the computer, by a router or similar networking component, on which the agent and MMS are located.
Once the IP address and port number are obtained from the authentication server and the MMC has ‘logged into’ the MMS, the MMC generates and sends a document request to the MMS (step 212). The web serve 186 receives the request from the MMC and forwards it to the agent (step 214).
Note that in the event that the computer on which the agent resides has multiple web servers running (e.g., from multiple applications), a unique port number can be used to further narrow the request to the agent. A request to the agent then might be formed as such: http://192.168.1.99:1475 where the number to the right of the colon is the unique port number.
When the request from the multimedia client is received, the agent then searches for the requested RSS document in the RSS document database 176. If found, the agent retrieves the RSS document from the RSS document database (step 216). The agent then decrypts the RSS document using the complementary algorithm used to encrypt the document (step 218). The agent then passes the RSS document to the web server which generates and delivers the web page to the requesting client (step 220). The MMC receives the web page (step 222) and the RSS reader 164 (
The web server 186 is configured to deliver to a requesting client a web page that displays the RSS document. At the MMC, each of the <Items> within the RSS document is displayed as a link on the web page and appropriately stylized through an XSTL style sheet if one is provided to the user through the MMS. When the requesting user clicks on a link in the webpage, a corresponding request is sent to the MMS. The web server receives this request and passes it to the agent. The agent processes the request and retrieves the file or directory associated with the link and rendered as an RSS document and passes the document to the web server 186. The web server, in turn, serves the web page to the requesting client. In the event that the link points to a file, the request may be processed as a “Save This File” response, allowing the requesting user at the MMC to save the file (depending on the computing device and its operating system). In the event that the link a user clicks on represents application data or data points further down the hierarchy of the application (e.g., displaying the full text of an email), a corresponding server side agent task in the MMS processes the corresponding request by searching for data within the application data database 182 associated with the particular application.
Note that all RSS formats are pure source text-based content formats. Thus, the RSS reader in the MMC is operative to determine any necessary additional presentation instructions that must be adapted to the respective presentation medium (i.e. the display, etc.). The presentation instructions allow the reader to present RSS documents in different media or in different contexts. In one example, embodiment, the reader in the MMC is adapted to present the RSS documents by first converting them into HTML and then using a conventional HTML browser or toolkit to display the HTML.
To aid in illustrating the principles of the RSS based PC content delivery mechanism of the present invention, an example application comprising a music player is presented. The content in this item represents an example application built using the technology architecture described hereinabove to stream music files located on a user's PC to a cellular phone having an appropriate music player application installed therein.
The following description including the numerous class definitions and corresponding
The example music application is intended to execute on the server. The following are the main features of the application. A diagram illustrating the logical architecture of the server based music application portion of the example music retrieval system is shown in
Start Server: This task allows the user to start the MMS from the server music application. A diagram illustrating the sequencing for the Start Server task is shown in
Stop Server: This task allows the user to stop the MMS from the server music application. A diagram illustrating the sequencing for the Stop Server task is shown in
Automatic Start: When the PC is started, the MMS is started automatically. A diagram illustrating the sequencing for Auto Start Server task is shown in
Search Files: Users can search audio files from the audio folder or play list of the music player application installed on the user's PC and generate RSS documents. A diagram illustrating the sequencing for the Search Files task is shown in
Manage Files: Users can view and delete audio files, which were already added to the RSS document. A diagram illustrating the sequencing for the Manage Files task is shown in
Manage Play List: Users can view and delete audio files, which were already added from the play list of the music player application. A diagram illustrating the sequencing for the Manage Play List task is shown in
Share Music File: Users can share music files for accessing by the RSS reader in the MMC. A diagram illustrating the sequencing for the Share Music File task is shown in
Create User: Users can create credentials for the reader in the MMC and send credential to the MMC user via email. A diagram illustrating the sequencing for the Create User task is shown in
Import Play List: Users can import the entire play list of the music player and add that play list to the RSS document. A diagram illustrating the sequencing for the Import Play List task is shown in
Additional task sequence diagrams are provided for Preferences, Help and About tasks are shown in
The MMS is intended to execute on the user's PC. Although the operation of the MMS was described in detail supra, the following are highlights of its main features. A diagram illustrating the logical architecture of the MMS server portion of the example music retrieval system is shown in
Send Info to IP Authentication Service: The MMS server sends its information to the IP authentication server which generates a unique serial key. The serial key is sent to the MMS server. The MMS server uses this serial key whenever it sends updated information to the IP authentication server. This server runs on the machine whose IP address is likely dynamic.
Process Request from the MMC: When server receives a request from the MMC it processes that request and sends a response to the MMC.
Update RSS document (i.e. XML file in the case of RSS 2.0): Periodically, the MMS checks the RSS document rendered by the agent and if it finds any changes, the agent updates the document.
The IP authentication service runs on a remote authentication server. Although the operation of the IP authentication service was described in detail supra, the following are highlights of its main features. A diagram illustrating the logical architecture of the IP authentication server of the example music retrieval system is shown in
Provide MMS information to the MMC: When the reader in the MMC is started it connects to the IP authentication service and requests the MMS related information in accordance with the unique serial key. The IP authentication service retrieves and sends the MMS related information to the reader in the MMC.
Generate Serial Key: When an MMS server connects to the IP authentication service for the first time, it generates a unique serial number for that MMS server, and stores MMS related information in its MMS user information database.
Update MMS Server Information: Upon receipt of a request to change the MMS information, the IP authentication service updates the information in its MMS user information database accordingly using the serial number as the index key to the database.
Although the operation of the MMC was described in detail supra, the following are highlights of its main features. A diagram illustrating the logical architecture of the MMC of the example music retrieval system is shown in
Login: When the MMC is started, the user connects to the MMS server. The user enters a username, password and serial number of the MMS server. The MMC then connects to the IP authentication service and requests the IP address and port number of the MMS server corresponding to the serial key. Once the MMS related information is received, the MMC connects to the MMS server. A user can save login information in a preferences profile for future use and can check options for automatic login when the MMC is started. A diagram illustrating the sequencing for the Login task is shown in
Logout: After finishing work, a user logouts from the MMS server. If the user quits the application without logging out then the user will automatically be logged out from the MMS server. A diagram illustrating the sequencing for the Logout task is shown in
Change Password: Users can change the password. For that user will send a change password request to the MMS server and MMS server will change the password. A diagram illustrating the sequencing for the Change Password task is shown in
Preferences: Users can change and save information in the preferences for login. A diagram illustrating the sequencing for the Preferences task is shown in
Play: Users can select a file for streaming and play that file on the MMC. A diagram illustrating the sequencing for the Play task is shown in
Search: Users can search for songs using the MMS server associated with the MMC. The MMC sends a search request to the MMS server and parses the received response and presents the search results to the user. Users can cancel the search request in the middle of a search. A diagram illustrating the sequencing for the Search task is shown in
The following are Class definitions used in the implementation of the example music player. Class definitions are provided for the (1) music application running on the MMS (user's PC), (2) the MMS, (3) the IP authentication service and (4) the MMC.
Class Name: CMMSApp
Documentation: This class is derived from CWinApp. The object of this class provides member functions for initializing the application (and each instance of it) and for running the application. When application is executed it shows the main dialog box of the application.
Derived from: CWinApp.
Public Methods:
Class Name: CMMSDlg
Documentation: This class is inherited from CDialog. This class provides methods for searching files, create credential, import play list and manage server and XML files.
Derived from: CDialog
Public Properties:
Protected Methods:
Public Methods:
Private Methods:
Class Name: CWebServer
Documentation: This class implements methods for managing MMS server.
Derived from:
Public Properties:
Protected Properties:
Private Properties:
Public Methods:
Protected Methods:
Private Methods:
Class Name: CAboutMMSDlg
Documentation: The object of this depicts the copyright and version info about the MMS System.
Derived from: CDialog
Protected Properties:
Public Properties:
Private Properties:
Public Methods:
Protected Methods:
Private Methods:
Class Name: CMusicFileDlg
Documentation: This class provides the methods to show the search result as well as view, add and delete the music file in XML file.
Derived from: CDialog
Public Properties:
Protected Properties:
Private Properties:
Protected Methods:
Public Methods:
Private Methods:
Class Name: CPlayerDlg
Documentation: This class provides all information of the music player installed on the PC to the user.
Derived from: CDialog
Public Properties:
Protected Properties:
Private Properties:
Public Methods:
Protected Methods:
Private Methods:
Class Name: CProgDlg
Documentation: The object of this class shows the progress bar when searching is in progress.
Derived from: CDialog
Public Properties:
Protected Properties:
Private Properties:
Protected Methods:
Public Methods:
Private Methods:
Class Name: CUserDlg
Documentation: this class provides functionalities for creating userid and send userid's information to its user.
Derived from: CDialog
Public Properties:
Protected Properties:
Private Properties:
Protected Methods:
Public Methods:
Private Methods:
Class Name: CEmail
Documentation: This class provides sending email functionality.
Derived from:
Public Properties:
Protected Properties:
Private Properties:
Public Methods:
Protected Methods:
Private Methods:
Class Name: CPrefDlg
Documentation: This class provides functionality to choose and save the IP address and port number where MMS server will be running.
Derived from: CDialog
Public Properties:
Protected Properties:
Private Properties:
Public Methods:
Protected Methods:
Private Methods:
Class Name: CLog
Documentation: This class provides functionalities for writing log file and clear it.
Derived from:
Private Properties:
Protected Properties:
Public Properties:
Public Methods:
Protected Methods:
Private Methods:
Class Name: CGenericServer
Documentation: This class creates the client thread, helper thread and provides way to connect multiple clients to the web server.
Derived from: CLog
Public Properties:
Protected Properties:
Private Properties:
Public Methods:
Protected Methods:
Private Methods:
Class Name: CHTTPServer
Documentation: This class is derived from CgenericServer and provides the functionalities to start, stop and process the client's request.
Derived from: CGenericServer
Public Properties:
Protected Properties:
Private Properties:
Public Methods:
Class Name: CIPLog
Documentation: This class provides functionalities for writing log file and clear it.
Derived from:
Private Properties:
Protected Properties:
Public Properties:
Public Methods:
Protected Methods:
Private Methods:
Class Name: CGenericServer
Documentation: This class creates the client thread, helper thread and provides way to connect multiple clients to the web server.
Derived from: CLog
Public Properties:
Protected Properties:
Private Properties:
Public Methods:
Protected Methods:
Private Methods:
Class Name: MMRApp
Documentation: This class provides functionality to instantiated the object of CloginDlg and CMMRDlg.
Derived from: CWinApp
Private Properties:
Protected Properties:
Public Properties:
Public Methods:
Protected Methods:
Private Methods:
Class Name: CLoginDlg
Documentation: This class provides the functionalities to take the login input from the user and connect to the IPAuth service to get the MMS server's info and connect to the MMS server.
Derived from: CDialog
Public Properties:
Protected Properties:
Private Properties:
Public Methods:
Protected Methods:
Private Methods:
Class Name: CMMRDlg
Documentation: This class provides the functionalities to change password, stream and play file, save preferences, search for the music files in the MMS server, login as different user and logout.
Derived from: CDialog
Public Properties:
Protected Properties:
Private Properties:
Public Methods:
Protected Methods:
Private Methods:
Class Name: CChangePwdDlg
Documentation: This class provides functionality to change the password.
Derived from: CDialog
Public Properties:
Protected Properties:
Private Properties:
Public Methods:
Protected Methods:
Private Methods:
Class Name: CMMRPrefDlg
Documentation: This class provides functionality to change the preferences info.
Derived from: CDialog
Public Properties:
Protected Properties:
Private Properties:
Public Methods:
Protected Methods:
Private Methods:
Class Name: CClient
Documentation: This class provides functionality to change the preferences info.
Derived from: CDialog
Public Properties:
Protected Properties:
Private Properties:
Public Methods:
Protected Methods:
Private Methods:
The dialog box definitions for the example music player application will now be presented. In addition, screen shots associated with several of the dialog boxes are provided.
The dialog box definition for the Music Application is presented below. A screen shot of the Music Application main dialog box is shown in
The dialog box definition for the Show Music Files is presented below. A screen shot of an example Show Music Files dialog box of the example music retrieval system is shown in
The dialog box definition for the Create User is presented below. A screen shot of an example Create User dialog box of the example music retrieval system is shown in
The dialog box definition for the Music Player is presented below.
The dialog box definition for the About MMS is presented below.
The dialog box definition for the MMS Preferences is presented below. A screen shot of an example MMS Preferences dialog box of the example music retrieval system is shown in
The dialog box definition for the MMC Login is presented below. A screen shot of an example MMC Login dialog box of the example music retrieval system is shown in
The dialog box definition for the MMC Search is presented below. A screen shot of an example MMC Search dialog box of the example music retrieval system is shown in
The dialog box definition for the MMC Change Password is presented below.
The dialog box definition for the MMC Preferences is presented below. A screen shot of an example MMC Preferences dialog box of the example music retrieval system is shown in
In alternative embodiments, the methods of the present invention may be applicable to implementations of the invention in integrated circuits, field programmable gate arrays (FPGAs), chip sets or application specific integrated circuits (ASICs), DSP circuits, wireless implementations and other communication system products.
It is intended that the appended claims cover all such features and advantages of the invention that fall within the spirit and scope of the present invention. As numerous modifications and changes will readily occur to those skilled in the art, it is intended that the invention not be limited to the limited number of embodiments described herein. Accordingly, it will be appreciated that all suitable variations, modifications and equivalents may be resorted to, falling within the spirit and scope of the present invention.
This application claims priority under 35 U.S.C. § 119(e) to U.S. Provisional Application Ser. No. 60/701,663, filed Jul. 20, 2005, entitled “System And Method For Delivery of PC Content To Mobile Devices Through A Server Based Relay System,” incorporated herein by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
60701663 | Jul 2005 | US |