White Paper
Introduction
The field of machine-to-machine (M2M) communications is rapidly expanding, however, it adoption cannot yet be termed widespread. One of the reasons behind this is the difficulty in building end-to-end solutions. In most cases, every component, from the device and embedded code, to the back-end application and web interface is a custom effort. This has begun to change. Radio manufacturers and third party integrators have started offering complete telemetry modules inclusive of the radio, power supply, I/O, and even the enclosure and connectors. The availability of this sort of hardware, in many cases reduces the device side hardware design to the selection of an off the shelf component. The advent of the Telemetry Service Provider (TSP) which, for a monthly fee, provides all of the interfaces to carriers, data storage, web interfaces, and other back-end functions, now allows the server side of an M2M application to be purchased as a service rather than architected at great expense and effort. Even though both the hardware and the back-end are available as off the shelf products, the device manufacturers have difficulty selling their products because there is still a significant integration effort in writing embedded code to talk to a back-end service. Similarly, back-end providers are expending resources writing embedded applications because they cant sell their service without devices that can talk to it. The missing piece of the pervasive off-the-shelf telemetry application is a widely adopted protocol allowing embedded code to be written for the commercially available hardware to talk to the server-side application available for hire at the TSP. If this protocol existed, especially as an open standard, device manufacturers as well as third parties could write the embedded applications to interface to any TSP that implemented the protocol. Complete M2M applications could then be constructed from three potentially off the shelf components: back-end services, device hardware, and embedded code. The end users would be able to choose to buy the entire application as a package, implement one or more of the components themselves, or acquire them from different sources. They would all be able to interface because they relied on a standard protocol. M2MXML is being developed as an open standard to be this protocol. The standard, along with supporting code libraries is being developed in the open-source community and is hosted at http://www.m2mxml.org.
Bandwidth Intensive
Many protocols that were not designed for M2M applications are incredibly bloated when viewed in the context of wireless networks.
Complex
The fact that an M2M protocol needs to be implemented, in some cases, by devices that have very limited computational resources, means that a protocol needs to be simple. This need is further exacerbated by the fact that many of the individuals who would implement the embedded code are principally hardware designers and not software engineers and frequently work individually or in very small teams.
Over Engineered
Many protocol standards are over-designed, with XML protocols being some of the worst. They are written in an attempt to satisfy all members of a committee and often the result is a protocol may satisfy everyone, but is useable by no one.
XML Based
As its name implies, M2MXML is implemented using the eXtensible Markup Language. This choice was made to leverage an existing and well known grammar, and to allow the use of widely available third party APIs for handling XML. XML in
the embedded world has often been criticized as too bloated, but intelligent use allows the previously mentioned balance of terseness to be reached
Self-Contained messages
In order to facilitate its use on high latency and low availability networks, as well as to decrease the complexity of transactions, M2MXML is essentially composed of self-contained messages. Generally transactions are a single fire and forget message, or a request message followed by a response message.
Transport Agnostic
M2MXML does not specify anything about what transport protocols are used. Any protocol for delivering XML can be used to deliver M2XML.
Extensibility
M2MXML is meant to be the framework for communications in a wide range of M2M applications. Therefore, its design is not meant to include all of the possible commands and configuration parameters, etc. that a complex application would need to define. Parts of the protocol are meant to be defined in an application specific manner. However, the protocol is meant to complete enough that the vast majority of simple applications can use it out of the box.
Examples
A quick way to provide a general feel for M2MXML is to show a few examples. This is not meant to be a tutorial or any sort of reference documentation. These examples are just meant to demonstrate the simplicity and intuitiveness of the protocol.
be customized. The turnOn command is part of the base specification, but additional commands specific to an application can be added. Request: <M2MXML ver=1.0> <Command address=relay1 name=turnOn seq=2876/> </M2MXML> Response: <M2MXML ver=1.0> <Response address=relay1 resultCode=0 seq=2876/> </M2MXML>
Viel mehr als nur Dokumente.
Entdecken, was Scribd alles zu bieten hat, inklusive Bücher und Hörbücher von großen Verlagen.
Jederzeit kündbar.