Yaler - a simple, open and scalable relay infrastructure

The Yaler relay infrastructure enables secure Web access to embedded systems behind a firewall, a NAT or a mobile network gateway. All you need on your device is a TCP socket. A simple HTTP handshake makes your Web service running on the device accessible from any Web browser, cURL or other HTTP client, allowing you to remotely monitor and control your device.

How it works

The Yaler relay infrastructure allows a device to publish1 itself under a unique name, e.g. device-id. Whenever a Web client tries to access2 a resource on the device, Yaler asks the device to switch3 to Reverse HTTP, and forwards4 the client request. After processing the request, the device responds5 and Yaler returns6 the response back to the client.

Platforms and languages successfully tested with Yaler include .NET (C#), .NET Micro Framework (Netduino), Android, Arduino, C, Java, J2ME (on a Siemens TC65i GPRS modem), Linux (on Intel and ARM), Mono (on a Sheevaplug running Debian), Python, Silverlight (including streaming Video) and SunSPOT (a Wireless Sensor Network node).

Download

Get the latest source code with hg clone http://hg.yaler.org/yaler or download it as a ZIP file.

Demo

Try http://try.yaler.net/~arduino/led – a Web-enabled Arduino that lets you control the color of an LED from your browser. While it is located behind a firewall and does not have a public IP address, the device can still be accessed through Yaler. If the Arduino is not running you might get a 504 Gateway Timeout.

About

Yaler aims to provide a simple, open and scalable relay infrastructure for the Web of Things. Yaler was created by Oberon microsystems and is now developed and owned by the spin-off company Yaler GmbH. Yaler is released for non-commercial use with full source at no charge. For a hosted, pay-per-use service with premium enterprise support please visit Yaler GmbH at http://yaler.net/.

Some additional technical information can be found in this demo abstract (PDF) and on the WoT 2010 presentation slides.

Community

Join http://groups.google.com/group/yaler or subscribe to the mailing list by sending an email to yaler+subscribe@googlegroups.com. And of course there is an RSS feed for news about the project. Or, if you don't mind also getting updates on our company, just follow @yaler on Twitter.

YalerTunnel

YalerTunnel provides generic tunneling via the Yaler relay infrastructure. Take any service (e.g. a Web server or a SSH daemon) and make it accessible from the Internet, no matter if the service runs behind a firewall, a NAT or a mobile network gateway. Get the latest YalerTunnel source with hg clone http://hg.yaler.org/yalertunnel or download it as a ZIP file.

YalerContrib

YalerContrib contains Yaler examples, libraries and contributions for various programming languages and platforms released as open source. Get the latest source with hg clone http://hg.yaler.org/yalercontrib or download it as a ZIP file.