a is a representation of a conventional SVG RTP packet;
b is a representation of an SVG RTP packet containing fragmentation units utilized by various embodiments of the present invention;
a is a representation showing a first option for the syntax of a fragment header utilized in one embodiment of the present invention;
b is a representation showing a second option for the syntax of a fragment header utilized in one embodiment of the present invention;
c is a representation showing a third option for the syntax of a fragment header utilized in one embodiment of the present invention;
a is a representation showing a first option for the syntax of a fragment header utilized in the second embodiment of the present invention;
b is a representation showing a second option for the syntax of a fragment header utilized in the second embodiment of the present invention;
Various embodiments of the present invention describe a method of fragmenting XML-based data, as for example, in an XML document, at a server or similar network element, and the subsequent formation and transport of this fragmented data from the server to a receiver. These embodiments of the present invention include two types of XML fragmentation techniques, i.e., Brute Force and Syntactic Based. Brute force based fragmentation fragmentation involves an arbitrary splitting of XML data based on MTU size without taking into consideration the syntactic structure of the XML content. Syntactic based fragmentation involves the splitting of XML data based on MTU size taking the underlying syntactic structure of the XML content into consideration. In addition, the payload representations for each of these techniques are described herein. A generalized overview of this process is illustrated in
The various embodiments of the present invention also provide different methodologies and rules for fragmenting XML data and for subsequent representations of the payload format that define and describe such fragments. The rules define the manner in which the XML data can be split, i.e., at the appropriate places, along with payload headers to help a receiver of the fragmented XML data to still be able to use the data in the event that one or more fragments are lost before reaching the receiver.
Several common use cases for which the fragmentation of XML-based content can be utilized for streaming purposes are described below. It should be noted, however, that there are a plurality of other uses for which the fragmentation of XML-based content could be performed. One such common use involves Interactive TV (iTV) Mobile services. The iTV Mobile service is understood as having the ability to provide a deterministic rendering and behavior of rich media content, which includes audio-video content, text, images, XML based content such as SVG, together with TV and radio channels in an end user interface. The iTV Mobile service provides convenient navigation through content in a single application or service and allows synchronized interaction both locally and remotely. For example, the iTV Mobile service allows users to perform actions such as voting and personalization (e.g.: related menus or sub-menus, advertising and content relating to an end-user profile or service subscription.
The iTV use case can be described in four steps which correspond to four services and sub-services available in an iTV mobile service. The first service is an iTV profile/menu service having the following sub-services: (1) Mosaic menu: TV Channel landscape; (2) Electronic Program Guide and triggering of related iTV service; (3) actual iTV service; and (4) Personalized Menu “sport news.” The second service can comprise a live enterprise data feed, where stock tickers that stream real-time quotes, live intra-day charts that show technical indicators, and news monitoring, weather alerts, charts, business updates, etc. are provided. The third service can comprise live chat. The live chat service can be incorporated within, but not limited to a web cam, video channel, or rich media blog service. End users can register, save their surname and exchange messages. Live chat messages appear dynamically in the live chat service along with rich media data provided by the end user. The live chat service can be either private or public in one or more channels at the same time. End users are dynamically alerted when new messages from other users arrive. Dynamic updating of messages within the live chat service can also occur without reloading a complete page. The fourth exemplary service is karaoke, where a music TV channel or video clip catalog is displayed together with the animated lyrics of a song. The animated lyrics can comprise fluid-like animation applied to the text characters of the song's lyrics in order to make the text characters appear as though they were being sung along with the song (e.g., smooth color transition of fonts, scrolling of text, etc.) The end user is then able to download a song of his/her choice along with the complete animated lyrics by selecting an interactive button.
As discussed above, an RTP payload is used to describe and/or define an XML data fragment. Therefore, an RTP payload format is also defined. A prior art RTP packet format is shown in
b shows an RTP packet format used in the various embodiments of the present invention. In addition to the RTP header 522, the common payload header 524, and the payload 526, a fragmentation unit (FU) header 550 which follows the common payload header 524 and a fragment header 552 which in turn follows the FU header 550 are also defined. It should be noted that although it is not shown in
The syntax of the FU header 550 is also shown in
The syntax of the fragment header 552 depends on the fragmentation type 556 indicated in the FU header 550. For various values of the fragmentation type, the syntax and semantics of the fragment header are described below.
For each fragmentation-type, the syntax of the fragmentation header will satisfy certain requirements. For a lossless case, where no fragments are lost, the syntax enables a receiver to reassemble the content sample from its fragments when all fragments are received. For a lossy case, when one or more fragments of a content sample are lost, the syntax may allow the receiver to conceal the effect of packet loss on the reassembled sample.
In one embodiment of the present invention, a first type of fragmentation, referred to as brute force XML fragmentation, can be utilized. This embodiment of XML fragmentation involves an arbitrary splitting of XML data based on MTU size without taking into consideration the syntactic structure of the XML content.
When brute force XML fragmentation is utilized, as shown in
Three possible options exist regarding a fragment header syntax for brute-force fragmentation: (0) Start flag, End flag; (1) Sample ID; (2)
TotalFragmentsPerSample. They are summarized with their associated advantages and disadvantages in Table 1 and illustrated in
a shows an RTP fragment packet 628, where the fragment header 652 comprises a 2-bit binary syntax identifier 660, indicating option 0, start and end flag fields 662, and reserved field 668.
Focusing on the third syntax option, for error recovery, a receiver can first identify the missing fragments from the syntax of the received fragments. As shown in Table 1, among the three options, the third syntax helps the receiver in determining the fraction of the missing fragments. The receiver may then decide whether to request retransmission of any missing fragment packets or to perform error-concealment by engaging in post-processing. Although sequence numbers associated with each RTP packet allows the receiver to know the proper ordering of the RTP packets, and consequently, whether any RTP packet is missing, they do not inform the receiver of which particular XML sample any one fragment is a part. Therefore, in addition to sequence numbers, the total number of fragments that comprise a sample is also provided with each fragment. If packet loss occurs, the receiver can correctly estimate how many fragments of a particular sample are in fact missing. In addition, the P flag in the common payload header informs the receiver what the priorities of the missing fragments are, while the TotalFragmentsPerSample informs how much percentage of a given sample is lost. Hence, these two types of information at different granularities, help facilitate selective retransmission of any lost fragment packets.
As described with regard to
In another embodiment of the present invention, a method of XML fragmentation referred to as syntactic XML fragmentation is utilized, which involves the splitting of XML data based on MTU size. In addition, the underlying syntactic structure of the XML content is taken into consideration.
If packet loss is experienced when utilizing syntactic XML fragmentation in an embodiment of the present invention, it is relatively easy for a receiver to reassemble XML data without errors in XML document object model (DOM) reconstruction because the nesting structure of the XML content is known. In addition, it is easy to perform error concealment if fragment packets are lost. However, a higher level of complexity is encountered when fragmenting XML data using syntactic XML fragmentation. Moreover, in a scenario where it is known that either all fragments are received by the receiver or very few fragments are lost, syntactic XML fragmentation may be viewed as extra overhead, both for fragmentation and reassembly purposes. In such a case, brute force XML fragmentation may be a preferable approach.
Referring to
Where the fragmentation of XML content is concerned, there is a correlation between the above-mentioned nesting properties (i.e., syntactic structure) that the XML content exhibits and correct reassembly of its fragments at a receiver. By having prior knowledge of the syntactic structure of the XML content, the receiver is more intelligent in terms of how the fragments can be re-assembled. Because brute force XML fragmentation does not take the syntactic structure of XML content into consideration, it mainly relies on retransmission for correct DOM reconstruction in the event of packet loss. However, if there is a predictable chance that frequent small-scale packet loss occurs, syntactic XML fragmentation provides a more efficient way of DOM reconstruction. In order to store the appropriate syntactic information with the fragments for transmission and reassembly, various embodiments of the present invention utilize a nesting representation with corresponding nesting IDs. One embodiment of such a representation is depicted in
Certain rules should be observed as well when utilizing nesting IDs. These include: (1) Only nesting IDs belonging to one sample are stored in each packet. In other words, nesting IDs belonging to different samples are not included in the same packet; (2) For each XML fragment, if more than one nesting ID is stored in the fragment, and all child elements are contained within the parent element, only the nesting ID of the outermost element is stored as the inner content is automatically included. For example, again referring to
As is the case with brute force XML fragmentation, several possible options for the fragment header syntax in syntactic XML fragmentation also exist. These options are summarized in Table 2 with their respective advantages and disadvantages, and illustrated in
For error recovery when utilizing syntactic XML fragmentation, a receiver should be able to first identify the missing fragments from the syntax of the received fragments. Among the two options summarized in Table 2, Syntax Option 1 helps the receiver in determining the fraction of the missing fragments with minimal ambiguity. Syntactic fragmentation can help the receiver to perform error concealment by reconstructing the DOM correctly by either excluding the missing elements or “guesstimating” the missing information from the content received. Such error concealment methods can be used rather than retransmission particularly when frequent packet loss occurs. This prevents the frequent retransmission of missing packets, which can tie up transmission resources and increase traffic.
In syntactic XML fragmentation, similar to brute force XML fragmentation, the P flag in the common payload header informs the receiver what the priorities of the missing fragments are. This information is important as it allows the receiver to decide whether to request retransmission or perform error concealment. While in brute force XML, priority assignment for a particular sample is determined at the authoring level, in syntactic based fragmentation, priority can depend on the nesting property of the XML content. Basically, a given element with many children can be deemed to be important and assigned a high priority. For example, in SVG, the “svg” element, which is denoted by the <svg> and </svg> tags are the outermost tags in an SVG, XML document, and hence have a large number of children. Therefore, a rule for assigning priority can be represented as follows: If C(E)>Ti then mark E as Pi; where, C(E) denotes the number of children of element E, Ti is the threshold number used to demarcate a particular priority Pi, and 0<=i<=N, where N is the total number of priorities that can be assigned to the fragment packets. In the event of packet loss, if the priority of the missing packet is high, the receiver can opt for retransmission rather than error concealment and vice-versa.
a shows an RTP fragment packet 1328, where the fragment header 1352 is comprised of a 2-bit, binary syntax identifier indicating syntax option 0, a nesting ID field 1362, and a reserved field 1368.
Other alternative embodiments of the present invention are still possible. In one alternative embodiment, brute force XML fragmentation can be modified by reordering fields in the fragment header. Brute force XML fragmentation can also be modified to specify the minimum possible size of fields in the payload format. This is useful for reducing overhead since certain fields can be longer than the specified values contained in those fields. Brute force XML fragmentation can be further modified by utilizing a different notation for the fields in the payload. Likewise, syntactic XML fragmentation can also be modified by reordering fields in the fragment header. Syntactic XML fragmentation can be modified by specifying a possible size for the fields in the fragment header, where some fields can be shorter or longer than the specified values contained in those fields. Yet again, syntactic XML fragmentation can be modified by using a different notation for the fields in the fragment header. The nesting ID arrangement described above that can be used in syntactic XML fragmentation, can also be varied, although the general idea of storing nesting IDs in the payload is agnostic of the arrangement itself. Priority assignments based on an XML syntactic structure used in syntactic XML fragmentation 2, can also vary, although like the varying of nesting IDs, the general idea of determining priority based on the nesting level of the various XML elements is agnostic of the scheme itself.
For exemplification, the system 10 shown in
The exemplary communication devices of the system 10 may include, but are not limited to, a mobile device 12, a combination PDA and mobile telephone 14, a PDA 16, an integrated messaging device (IMD) 18, a desktop computer 20, and a notebook computer 22. 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 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, Digital Video Broadcast-Handheld (DVB-H), Internet Protocol Device Control (IPDC), Media FLO, etc. A communication device may communicate using various media including, but not limited to, radio, infrared, laser, cable connection, and the like.
The present invention is described in the general context of method steps, which may be implemented in one embodiment by a program product including computer-executable instructions, such as program code, executed by computers in networked environments. Generally, program modules 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.
Software and web implementations of the present invention could be accomplished with standard programming techniques with rule based logic and other logic to accomplish the various database searching steps, correlation steps, comparison steps and decision steps.
The foregoing description of embodiments of the present invention have been presented for purposes of illustration and description. It is not intended to be exhaustive or to limit 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 the present invention. The embodiments were chosen and described in order to explain the principles of the present invention 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.