Abstract:
An extensible binary mark-up language is disclosed that is compatible with existing XML standards yet provides significantly improved efficiencies for XML-based data storage and communications, particularly for narrow and low bandwidth communication media. A corresponding extensible non-binary mark-up language is also disclosed that is compatible with the XML standard. This dual-representation common message format (CMF) allows standard XML tools to be utilized in viewing and editing XML-based data and allows a CMF parser to be utilized to convert the XML formatted information into an extensible binary representation for actual communication through a medium or storage on a wide range of media. Advantages include a very compact, yet flexible and extensible binary data representation (CMF-B) for a corresponding extensible mark-up language (CMF-X), a data packaging scheme that allows for the effective transport of XML-based data over existing data channels, including narrow-bandwidth channels that utilize existing network protocols, and a CMF parser that allows for seamless conversion between CMF-B and CMF-X.

Description:
RELATED APPLICATIONS 
       [0001]    This application is a continuation application of the following co-pending application: U.S. patent application Ser. No. 10/864,773 which was filed on Jun. 9, 2004 and is entitled “EXTENSIBLE BINARY MARK-UP LANGUAGE FOR EFFICIENT XML-BASED DATA COMMUNICATIONS AND RELATED SYSTEMS AND METHODS,” which is hereby expressly incorporated by reference in its entirety. 
     
    
     NOTICE OF COPYRIGHT 
       [0002]    A portion of this patent document contains material which is subject to a copyright protection. The copyright owner has no objection to the reproduction by anyone of the patent disclosure, as it appears in the Patent and Trademark Office patent files or records, but otherwise reserves all copyright rights whatsoever. 
       TECHNICAL FIELD OF THE INVENTION 
       [0003]    This invention relates to the transmission of data across communications media, and more particularly to methods and architectures for communicating XML-based data files. 
       BACKGROUND 
       [0004]    Transmitted information for current computer systems is often formatted using the extensible mark-up language (XML) standard. The XML standard provides a powerful and efficient language through which to communicate a wide range of data and information in a standard format that can be recognized across a wide variety of different computing platforms. As such, XML provides a flexible and common framework for improving compatibility of data transfer between systems. One significant disadvantage to XML, however, is that the XML standard was not designed for communication efficiency, which is needed in certain environments such as narrow or limited bandwidth channels. The relative inefficiency of communicating XML-formatted data, therefore, causes problems with devices such as cell phones, dial-up modems, and other low or narrow bandwidth systems. 
         [0005]      FIG. 1  (prior art) provides a block for a prior art system in which XML formatted data is communicated through a network. Block  104  represents an XML formatted document, data or information that is to be communicated by one system to another through a network  102  and reconstructed or received as XML formatted document, data or information, as represented by block  106 . The network  102  can be made up of any of a wide variety of communications systems and devices, both wired and wireless, that ultimately provide communication connectivity between two systems. As shown in  FIG. 1 , the defined technique for communicating this XML formatted document  104  is to represent the text as ASCII or Unicode data words, to transmit this ASCII or Unicode data from a first system through the network as represented by line  108 , and to receive this ASCII or Unicode data from the network by a second system as represented by line  110 . 
         [0006]    The ASCII and Unicode standards are two well-known textual coding schemes for representing text characters as sets of binary bits. The ASCII standard provides an 8-bit data byte that represents a character set of 256 commonly used characters, including the alpha-numeric and punctuation symbols. The Unicode standard basically provides an extension of ASCII with similar encoding but additional 8-bit bytes representing additional characters for coverage of languages other than English to include Japanese, Chinese, and numerous other languages and lexicons. As with typical textual encoding schemes, ASCII and Unicode possess inherent inefficiencies in that they are limited in range and extension by their encoding scheme. For example, typical textual formats, such as ASCII, use fixed bit fields which are not easily extended. They are also extremely inefficient methods for the encoding of numbers in that each numerical digit as well as included decimal points each consume at least 8-bits. Additionally transmission systems typically use inflexible fixed bit messages or field groups. Changes to such formats are also time consuming and costly in terms of labor, shipping and installation. In addition, in fixed bit message or field grouping constructs many dependencies often exist between fields (e.g., separate accuracy, multiplier, unit, and overlay field indicators). To reduce bandwidth requirements to transmit typical binary encoded data, data is often manipulated in scale, units, etc. to reduce the total fixed bits for the transmission. The disadvantage is that this reduction in fixed bits typically results in loss of accuracy from the measurement initially generated by the producing device. 
         [0007]    Previous efforts have existed to provide a binary XML content format. One such effort is called Wireless Application Protocol Binary XML (WBXML). This WBXML specification defines a compact binary representation of XML. This binary XML content format is designed to reduce the transmission size of XML documents, allowing more effective use of XML data on narrowband communication channels. The binary format is also designed to allow for compact transmission with no loss of functionality or semantic information. The format is designed to preserve the element structure of XML, allowing a browser to skip unknown elements or attributes. The binary format encodes the parsed physical form of an XML document, i.e., the structure and content of the document entities. Meta-information, including the document type definition and conditional sections, is removed when the document is converted to the binary format. Unfortunately, the WBXML content format does not adequately define a binary XML solution that achieves needed user and operational requirements. For example, the WBXML structure utilizes a number of less efficient or less extensible encoding approaches such as inclusion of null bytes to indicate the end of string values; inclusion of a string table in the binary transmission instance; and use of fixed tokenization with code spaces, code pages, and end tokens to replicate the textual structure of XML into the WBXML binary representation. 
         [0008]    One other approach attempted to generate binary formatting through the tokenization of tags and attribute names, as described in published U.S. Patent Application No. 2003/0046317A1, which is entitled “Method and System for Providing an XML Binary Format.” The encoding approach described in this published application concentrates on the minimization of processing time and thus also utilizes a number of less space efficient or less extensible encoding methods and structures. Such undesirable methods and structures include a requirement for a pre-defined fixed set of tokens, inclusion of a length value to indicate the number of characters in all strings, and inclusion of END tokens. 
       SUMMARY OF THE INVENTION 
       [0009]    The present invention provides an extensible binary mark-up language that is compatible with existing XML standards yet provides significantly improved efficiencies for XML-based data communications, particularly for narrow and low bandwidth communication media. The present invention also provides a corresponding extensible non-binary mark-up language that is compatible with the XML standard. This dual-representation common message format (CMF) provided by the present invention allows standard XML tools to be utilized in viewing and editing XML-based data and allows a CMF parser to be utilized to convert the XML formatted information into an extensible binary representation for actual communication through a medium. The present invention thereby provides a flexible and extensible binary data representation (CMF-B) for a corresponding extensible mark-up language (CMF-X), a data packaging scheme that allows for the effective transport of XML-based data over existing data channels, including narrow-bandwidth channels that utilize existing network protocols, and a CMF parser that allows for seamless conversion between CMF-B and CMF-X, as desired. 
         [0010]    In one embodiment, the present invention is a method for transmitting data formatted in an extensible markup language (XML), including providing a dual-representation format parser for converting between an extensible markup language (XML) representation that is compatible with standard XML and an extensible binary representation that is configured to reduce a number of bits required to represent common data as compared to the XML representation, accessing an XML representation of data according to a document type definition (DTD), parsing the XML representation to generate a binary representation of the data according to the DTD, and transmitting the binary representation. 
         [0011]    In another embodiment, the present invention is a system for transmitting data formatted in an extensible markup language (XML), including a parser configured to convert from an extensible markup language (XML) representation that is compatible with standard XML to an extensible binary representation that is configured to reduce a number of bits required to represent common data as compared to the XML representation where the XML representation and the binary representation is defined according to document type definition (DTD), and a communication interface coupled to the parser and configured to transmit the binary representation through a medium. Similarly, the present invention is also a system for receiving data formatted in an extensible markup language (XML), comprising: a parser configured to convert to an extensible markup language (XML) representation that is compatible with standard XML from an extensible binary representation that is configured to reduce a number of bits required to represent common data as compared to the XML representation where the XML representation and the binary representation being defined according to a document type definition (DTD), and a communication interface coupled to the parser and configured to receive the binary representation through a medium. 
     
    
     
       DESCRIPTION OF THE DRAWINGS 
         [0012]    It is noted that the appended drawings illustrate only exemplary embodiments of the invention and are, therefore, not to be considered limiting of its scope, for the invention may admit to other equally effective embodiments. 
           [0013]      FIG. 1  (prior art) is a block diagram for a prior art system in which XML formatted data is communicated directly through a network as ASCII encoded data. 
           [0014]      FIG. 2  is a block diagram for an embodiment according to the present invention where CMF parsers are utilized for conversion between XML-based ASCII or Unicode encoded data to binary CMF data for network communications. 
           [0015]      FIG. 3A  is a block diagram for a system that includes a CMF parser according to the present invention. 
           [0016]      FIG. 3B  is a block diagram for a CMF parser according to the present invention. 
           [0017]      FIG. 4  is a block diagram for an extensible binary data format according to the present invention. 
       
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
       [0018]    The present invention provides an extensible binary coding (CMF-B) and related extensible mark-up language (CMF-X) that achieves an efficient dual-representation format and allows for efficient communication of XML-based data through communication media, particularly those with narrow or low bandwidth constraints. The present invention thereby achieves a dual-representation of the same data that can be seamlessly converted back and forth. The CMF-X data format is preferably a fully XML-compliant, ASCII-based, subset implementation of XML that can be used with commercial-off-the-shelf (COTS) tools and is human readable. Due to the tag-based nature of XML and the use of text for all tags and data, CMF-X can be fully extensible and byte-based. The CMF-B data format is preferably an XML-based, compact, binary representation that is efficient for transmission through networks, particularly those where bandwidth and critical timing constraints are encountered, such as in over-the-air (OTA) transmissions. As discussed below, new binary data constructs can be created to provide individual field and package structures that are extensibility equivalent and similar to XML. Further details and embodiments of the present invention are described below. In addition, the APPENDIX included below provides a detailed explanation of the CMF-X and CMF-B data formats. 
         [0019]      FIG. 2  is a block diagram for an embodiment  200  according to the present invention where CMF parsers  202  and  204  are utilized for conversion between XML-based ASCII encoded data to binary CMF data for communications through network  102 . In particular, unlike  FIG. 1A  (prior art) where ASCII data is packaged and transmitted across network  102 , CMF parser  202  converts the XML formatted document (CMF-X) from ASCII data into binary CMF (CMF-B) data for transmission through network  102 , as represented by line  206 . This CMF-B data, which is described in further detail in the APPENDIX attached below, is extensible and preferable infinitely extensible. Once passed through network  102 , the CMF-B data is received by CMF parser  204 , as represented by line  208 . CMF parser  204  THEN converts the CMF-B data back into an XML recognizable ASCII format (CMF-X). As described below, the CMF-B data coding of the present invention allows for reduced bandwidth requirements by reducing the number of bits that are transmitted. It is further noted that the network  102  can be made up of any of a wide variety of communications systems and devices, both wired and wireless, that ultimately provide communication connectivity between two systems. It is also noted that the present invention is particularly useful for narrow or low bandwidth communication channels, such as those that have a bandwidth or data rate of less than 9600 baud. It is further noted that the present invention is not limited to communications systems and may be equally applicable to other hardware or software systems and media such as data storage systems, EPROMs, gate arrays, programmable logic devices (PLDs), video devices, audio devices, graphical devices, flash memory, fiber optics, Digital Video Discs (DVDs), and Compact Discs (CDs), amongst other systems in which data is transferred. 
         [0020]      FIG. 3A  is a block diagram for a system  300  that includes a CMF parser  350  according to the present invention. Block  352  represents a XML formatted CMF data (CMF-X) that can be manipulated by a user, as desired, using standard XML tools, as represented by block  354 . As discussed in more detailed below, the CMF-X format is compatible with standard XML but does not necessarily implement all aspects of the XML standard. The CMF parser  350  allows for seamless conversion from the CMF-X data to extensible binary CMF data (CMF-B) as represented by block  356 . The communications interface  358  can then preferably use the CMF-B formatted data from block  356  for transmission to external systems that also have operational CMF parsers. If desired, the system  300  could also transmit CMF-X data from block  352  to external systems, if desired. These less efficient communications may be desirable, for example, where the receiving external system does not have an operational CMF parser or where the bandwidth of the communication channel is large enough to handle the larger bit-rates needed to transfer XML formatted data. Additionally, the CMF parser  350  could also provide an XML-equivalent form of the data via other standard interfaces such as the Document Object Model (DOM). 
         [0021]      FIG. 3B  is a block diagram for a CMF parser  350  according to the present invention. The CMF parser  350  includes a CMF converter and data packager  310  that converts data between the two formats and creates data packets, as discussed in further detail in the APPENDIX below. XML representations  302  represent the extensible mark-up language protocols and formats supported by the CMF-X data coding scheme. This CMF-X data is preferably compatible with standard XML. Blocks  304 ,  306  . . .  308  represent individual CMF-X representations CMFX 1 , CMFX 2  . . . CMFX(N). Similarly, extensible binary representations  312  represent the extensible binary protocols and formats that are supported by the CMF-B data coding scheme. This CMF-B data format is preferably constructed so as to make data transmissions more efficient. Blocks  314 ,  316  . . .  318  represent individual CMF-B representations CMFB 1 , CMFB 2  . . . CMFB(N) that correspond to CMF-X representations. In operation, the CMF parser  350  takes the CMF-X data from block  352  and uses a mapping or conversion scheme within block  310  to convert this CMF-X data to CMF-B data provided to block  356 . Going the other way, the CMF parser  305  takes the CMF-B data from block  356  and uses a mapping or conversion scheme within block  310  to convert this CMF-B data to CMF-X data provided to block  352 . The XML representations  302  and correlating extensible binary representations  312  are utilized to provide this conversion. The parser  350 , therefore, provides seamless dual-representation functionality. 
         [0022]      FIG. 4  is a block diagram for an extensible binary data format  400  according to the present invention. Although this data format is described in more detail in the APPENDIX below, the basic idea for an extensible binary data format is presented in  FIG. 4 . In particular, the binary data  404  is extensible, and preferably infinitely extensible, with the use of termination indicator bits  406 . In the embodiment depicted, data bytes  420 A,  420 B . . .  420 C are each 8-bit data bytes, as represented by element  402 . More particularly, byte  420 A includes a single termination indicator bit  414 , as a most-significant-bit (MSB), and seven data bits  412 . Similarly, byte  420 B includes a single termination indicator bit  416 , as its MSB, and seven data bits  410 . And byte  420 C includes a single termination indicator bit  418 , as its MSB, and seven data bits  408 . The termination indicator bits  406  for each data byte of the extensible binary data  404  indicates whether or not another byte is needed to complete the data word. When the bit is a “0” as with termination indicators  414  and  416 , additional bytes are needed to complete the data word. When the bit is a “1” as with termination indicator  418 , the data word ends with this byte. In this way, a non-fixed data word is implemented by the extensible binary coding of the present invention which allows for efficient and advantageous representations of XML-based data for efficient data communications. It is noted that the 8-bit byte embodiment  400  described with respect to  FIG. 4  could be modified if desired. More generally, an X-bit base data byte could be used with N-bits (one or more) representing a termination indicator and M-bits representing the data portion of the X-bit data word. Thus, the N-bits plus M-bits make up the base X-bit data byte. 
         [0023]    In contrast with the present invention, some prior approaches define a method for utilization of the upper bit of an 8-bit byte as an indicator of either multi-byte continuation or, less commonly, as termination of multiple bytes. Prior approaches do so for unsigned integer values or token extension, but this invention does so as part of a comprehensive and consistent, multi-byte, and preferably infinite extensibility approach across all values of the XML-based binary element structure to include positive (i.e. unsigned) integers; strings; floating point mantissa, exponent, and extension values; enumerated values; binary tags; pattern values; and packed Boolean values. All values and all components of the byte stream of this invention utilize a multi-byte structure identified by use of a termination indicator. Additionally, this invention makes specific use of the special case of all 8 bits being zero which is not otherwise a normal value when utilizing the upper bit of value bytes as a termination indicator. 
         [0024]    The present invention further provides a unique approach for declaration of binary data types and tags via a standard XML Document Type Definition (DTD) file which utilizes the XML attribute construct to identify and declare elements; assign numbers to element tag names; and identify an element&#39;s type definitions as well as element characteristics such as value ranges, accuracy ranges, defined reportable units, and reporting path specific characteristics. This differs from utilizing tokenization during parse processing of a data stream to identify the components of the equivalent XML structure within the binary equivalent and to identify tags and tag names in that for this invention the attributes within the DTD file identify the structure components. 
         [0025]    The CMF specification, which has been attached as an APPENDIX below, further describes the embodiments described above. This CMF specification is subject to the notice of copyright at the beginning of this specification. 

 
         [0026]    Further modifications and alternative embodiments of this invention will be apparent to those skilled in the art in view of this description. It will be recognized, therefore, that the present invention is not limited by these example arrangements. Accordingly, this description is to be construed as illustrative only and is for the purpose of teaching those skilled in the art the manner of carrying out the invention. It is to be understood that the forms of the invention herein shown and described are to be taken as the presently preferred embodiments. Various changes may be made in the implementations and architectures. For example, equivalent elements may be substituted for those illustrated and described herein, and certain features of the invention may be utilized independently of the use of other features, all as would be apparent to one skilled in the art after having the benefit of this description of the invention.