Topics...

FAQ

Frequently Asked Questions

What platforms are supported?

xAP is intended to operate with the widest practicable range of devices -  from low end embedded processors through to server PCs. These extremes have been demonstrated in practice.

What programming languages are supported?

You will find toolkits for C, Perl, Python, Visual Basic and Active X here.  Links to other toolkits can also be found on the official xAP website, www.xapautomation.org.

Do I have to have a network?

xAP is network agnostic. xAP devices do have to communicate, but the means of communication is open-ended. Different network infrastructures may be bridged, allowing xAP devices on different physical networks to intercommunicate seamlessly. xAP has been deployed on two different kinds of serial network, as well as on 10baseT (wired LAN) and 802.11b (wireless LAN) TCP/IP networks. Support for additional networks will be added in due course.

Isn't xAP similar to uPnP?

There is some overlap between the goals of uPnP and xAP, but there are also  major differences.

  • xAP is network agnostic; uPnP is limited to TCP/IP networks in its native  implementation.
  • xAP is suited to very limited capability devices and high-end devices  alike; uPnP messages are typically several kilobytes in size and require an XML parser in order to interpret them.
  • uPnP is focussed on automatic discovery and configuration of a devices  network capabilities. xAP solves this problem from another perspective, by requiring minimal configuration.

    Isn't xAP similar to Apple Rendezvous or ZeroConf?

    Again, there is some overlap, but there are also some major differences

  • xAP doesn't use point-to-point communications. It's not a requirement for  a xAP enabled device to have a unique address on a network.
  • ZeroConf and Apple Rendezvous are aimed at discovery of devices within a TCP/IP world. xAP is not constrained to operating over a single  network.

    Why doesn't xAP use XML?

    One of the main design goals for xAP was a fast, light weight implementation - both in terms of network utilisation and device processing power. The flexible structure of XML is comparatively difficult to parse, and XML messages are prone  to bloat. In contrast, the xAP wire format is essentially untyped (or rather, it is implicitly typed), and the structure constrained, which allows for very light parsers which are able to operate at lightning speed with a minimum of resources.

    Can I use xAP in commercial applications?

    Anyone is free to implement xAP devices or applications based on the xAP specification and use them as they please. Several authors have implemented xAP  software toolkits, in addition to the ones found here, and they can be located  via the official xAP automation web site. The majority of the software on this  site is not licenced for commercial use, but nonetheless I welcome  the use of xAP in commercial products - subject to a dialogue with any prospective commercial user to agree the scope of their project prior to releasing the code for commercial use.

    What is a xAP hub?

    A xAP hub allows more than one xAP enabled application to run on the same PC.  It allows an incoming message to be delivered to multiple applications  concurrently, something that can't be done any other way with a TCP/IP stack.

    What is a xAP bridge?

    A xAP bridge connects two independent xAP networks together, so that xAP messages flow between the networks on a bi-directional basis. The  inter-connected networks do not have to be of the same type - serial and TCP/IP networks may be joined, within certain constraints.

    What is the maximum size of a xAP message?

    The size of a xAP message is determined by the capabilities of the underlying  network. For current implementations, the lowest common denominator of all networks allows for a maximum single message payload of 1,500 bytes. Although this sounds small, it is ample for most control applications.

    Can xAP messages be concatenated, fragmented, sequenced or "chunked"?

    All these questions are usually driving at the same thing: can you split a large message over multiple xAP messages, given that the maximum xAP message size across all networks is 1,500 bytes. There is no support within the xAP  protocol for sending messages with a payload which spans more than one message. This could be added at the application layer, but is discouraged; a better approach would be to pass the details of how to retrieve the data associated with a larger message over an alternative medium (e.g. the URL of a web server,  perhaps).

    Can xAP messages get lost?

    Yes, xAP messages can be lost. UDP messages are inherently unreliable in networking terms. Serial networks can suffer from occasional bursts of electrical interference. In practice, in a domestic environment, I have never seen a message get lost. These reassurances may not be sufficient  for all control scenarios: In critical control environments, the sender and  receiver should be tightly coupled - with the reciever sending an acknowledgement to indicate that an instruction has been performed.

    What address models does xAP support?

    The xAP addressing model is a little unusual. The primary mode of addressing is source based addressing. Instead of messages being directed at a  specific device, all devices receive all messages and then make their own decision on whether or not that message is relevant to them. This has a number of advantages - perhaps the most significant of which is the promotion of a loosely coupled system. Senders and receivers do not to be explicitly  connected on a point-to-point basis, which vastly simplifies configuration and allows new systems to be added on an ad-hoc basis. In some special cases, such as device configuration, it is a requirement to deliver a message to a specific recipient. This is the second mode of xAP addressing, targeted addressing.

    What is Source Addressing?

    Thus the primary mode of addressing in the xAP world is source based addressing, in which the sender is identified and the recipient determines if a message is of interest.

    What is Targeted Addressing?

    Targeted addressing allows a message to be directed at a specific recipient. This is useful, for example, in situations where a device needs to be explicitly configured. Except in special cases, the use of targeted addressing is discouraged because it breaks the "loose-coupling" model which is promoted by  xAP.

    What forms of group addressing are supported?

    Group addressing is inherent to xAP in that any number of devices may be activated concurrently by a single, source addressed message, in a one-to-many  relationship. The source addressing mechanism also supports wildcards, allowing many-to-many relationships to also be established.

    What is a heartbeat?

    The xAP protocol specifies a special control message, called a heartbeat.  Wherever possible, xAP enabled devices and applications are encourage to broadcast this message periodically to provide a network-wide indication of  system health. The heartbeat interval is defined at the discretion of the  application developer - it is typically of the order of a 15 secs-5  mins depending on the application.

    Does xAP support fault tolerance?

    xAP promotes the use of regular heartbeats. Any application on the network is  encouraged to send a heartbeat message periodically, and these may be heard by all xAP applications on the network. Multiple instances of the same xAP  application can detect the loss of a heartbeat and use this as a failover  mechanism.

     

    Related...

     

    Copyright (c) 2002-2006 Patrick Lidstone unless otherwise stated.
    All rights reserved.