XBUP - eXtensible Binary Universal Protocol - Documentation
[Up]

# Documentation: Comparison

This document is part of the eXtensible Binary Universal Protocol project documentation. Provides comparison of achieved results with other similar projects.

## Introduction

Although the primary implementation is not optimized for performance, it's already possible to recognize the performance characteristics at this level of the proposed data representation variant.

## Performance Characteristics

First, it seems to be useful to evaluate various features of the Protocol relating to the performance. This is essentially a CPU, memory and transmission consumption.

## Document Size

The primary objective is not to achieve as smallest size of the document as possible, but still XBUP protocol is reach relatively good results in this area. As opposed to text markup languages it's certainly more economical. In comparison with static binary protocols it's more demanding, but this is a price to pay for better achieved properties. The advantage is, for example, that the basic shapes of numbers are single and thus the common stored value is single byte, therefore better efficiency can be achieved.

In the future, with the possibility of compression of the whole subtree document and with transparent access to them should be considered. This should enable to achieve even greater savings in file sizes.

## Computation Consumption

In the case of computing demands the XBUP protocol is not much successful. It does not use the number forms, which are used to represent data in the most recent computers, and it is therefore necessary to apply conversions. This applies to both basic types of integer, real numbers, as well as the to other major proposed forms of higher structures, such as date and time.

On the other hand, the good performance results is achieved because the possibility of placing the length of blocks and thus both blocks and the whole subtree can be easily skipped which means faster access to internal blocks. If more powerful variant would be requested, it is possible to create additional ancillary structures with indexes. Indicating infinite length of the block, it is possible to avoid the need to calculate the size of blocks, which is appropriate especially in the generation of communication streams in real time. It's advisable to combine both such techniques.

## Transfer Bandwidth

Communication performance dependents on the quantity and ratio of data transferred in both directions and the interdependence of the data streams in both directions. If both streams wait on the other, the total necessary time for communication is increasing.

## Performance Comparison

The protocol can be compared with several types currently used protocols and data formats.

## Markup Languages

Especially compared with the currently most used XML markup language, may prove the benefits which could bring XBUP implementation of the Protocol to this area.

## Comparison with XML

XML standard is one of the very sophisticated text markup languages with a rigorous interoperability and scalability. It's entirely focused on full the text representation and has only minimal support for non-structured binary data. The basic standard also does not distinguish the data type, and there are several alternative ways to define the structure and data types of XML documents, such as DTD, XML-Schema, Schematron, Relax NG. XML as such is not suitable for use as an universal format mainly due to the following characteristics:

- Dependence on the language - readability differs if language is known, and format has to reflect changes in the language, text description are vague definitions, ans same for abbreviations
- Structure ambiguity - the use of tag vs. atributu attribute
- Text format - a text browser / editor is required to use for reading, for data processing text parsing is needed.

For more see criticisms like XML Sucks, or Binary XML Use Cases.

In addition to XML, related formats can be also compared, especially if their equivalent exists in the protocol XBUP:

- DTD - Document Type Definition represents restrictions on the names of tags, attributes and subtags permitted in the tree. These properties are in the Protocol XBUP defined as part of the level 2 and 3 specification.
- XML Schema - Compared with DTD it defines the addition types of attributes and values, or restrictions ranges using enumeration, or border values. This ability is about to be provided on the 5th level.
- CSS - Cascade Style Sheet is represented in the Protocol as a general transformation introducing additional default value or as links.

XML can be compared, for example, in the following aspects:

- Effectiveness of representation -
- Extensibility -
- Universality - XML does not provide such wide expression range like XBUP protocol does. Problems are in areas such as digital signatures, encryption and compression in general. This problem is usually solved using other formats.

## XML Binary Variants

One of the activities of the W3C was also an effort to create a binary XML variant by adding new features with the preservation of the text form and features as much as possible. These activities resulted in the creation of many variations of binary XML form, with the possibility of further development until the selection of the best candidate and his standardization.

Technically this is a compression with the preservation of tree structure accessibility.

## Network Communication Protocols

Another possible comparison can focus on the protocols used for network communication between multiple network nodes.

## Other Comparable Formats

Although the aim of many following projects focus only on the successful implementation of a limited area, these projects still can provide a comparison of certain aspects…

## Extensible Binary Meta-Language

The aim of the EBML project is to create containers for data objects specifically for the project of Matroska multimedia container.

EBML project uses some similar types such as natural numbers with a variable length. The disadvantage, however, is its specific focus on multimedia containers and limited options for expansion of functionality and the definitions inconsistency.

## Business Benefits

Another aspect is the commercial impact of the usage of the project. Results may vary according to level of the introduction of application.

The cost of the introduction depends on the need for support for the implementation of this protocol in a language or environment used for the development of the product. As the project is developed under the appropriate licenses, therefor in the case of an extension of the project it should not be a problem to found the implementation in appropriate language. …

## Links

Some relevant links:

XML - Extensible Markup Language http://www.w3.org/XML/
Why XML sucks - http://xmlsucks.org
Binary XML use cases - http://www.w3.org/TR/xbc-use-cases/
EBML - Extensible Binary Meta-Language http://ebml.sourceforge.net/
Matroska - extensible open standard Audio/Video container http://www.matroska.org/

Homepage: http://xbup.org
License: GNU Free Documentation License (FDL)