InitRech 2015/2016, sujet 23

De Wiki de Projets IMA

Smews: Smart and Mobile Embedded Web Server

Summary

This paper discuss the technical feasibility of embedded Web servers and propose a solution for tiny devices such as Arduino or Funcard.

The number of devices running in our environment increase and the desire of connect all of them and do it with the minimum of program and memory is even bigger than 2009 (Date of the article). Smews is operating system desing to support both IPv4 and IPv6 ant to be used as an embedded web server. The project is under the CeCILL license and the program's sources are available on GitHub.This include the capicity to be recognized in a network and exchange with peripherals via the internet protocol TCP/IP.

The state of art show us that the internet of thing answer the question of the unavailability for the devices running around us to communicate. The well-known standard for this kind of system is the UPnP but this technology have several drawbacks like security or the unavailability to create hierarchical network. Because of the hardware constrained devices, it's important to keep in mind that the connexion are available in a little perimeter, the physical layer of this communication is therefore limited to (USB, Bluetooth, ZigBee...). Another technology which uses a non standard protocol is described by the authors and could be use on tiny hardware constraint devices. The JXTA is mentionned for its capability to be run on this kind of hardware, instead of the the successor of the UpnP : DPWS. This last one have bigger memory and cpu usage need but include a secure authentication system. To understand the dilemma, the authors described the actual design of the Web of Things, by explaining the AJAX model (Asynchronous JavaScript and XML)

This web design is done in two phase :

  • The reception of static files (HTML, CSS, Javascript).
  • The execution of the files get in the first phase and the asynchronous exchange between server and user.

This methodology reduces web traffic because "dynamic content are semantic information and the formation rules are loaded only once in the initialization phase." But if we dig even deeper the protocol uses to discuss are running in a different way and allow multiple request in short time. Like the IP/TCP, uses to communicate in a network, is running on this way, and is a problem for our tiny device with few Mhz frequency and kilo byte of memory. This paper claim a Personal Area Network (PAN) wherein tiny devices can easily discuss. A user (standard web browser) with more power than our peripheral can be running and do an more complicated execution. This is the main goal of the Internet of thing. The capabilty to tiny devices to discuss, interact without user activity via the conception of this macro-kernel named Smews.

This state of art is the beginning for our contributors and expose the problem by replying it.

Main Contribution

The authors propose an architecture that can handle simultaneous connections. Smews is designed to use a single shared buffer so only one information is processed at a time. Smews share information between the IP Stack and the application for an improvement of performance. For the same goal, Smews does not waiting the acknowledgement for static file like a traditional TCP stack. It retrieve data in case of retransmission and defined shared buffer is provided to transmit server-side generators. As a result this server is able to have several in-flight packets for most of the Web contents it serves and have large MSS size handle even with a small sized buffer.This architecture can use standard file like html, css, js and some native code.

Miniweb and µIP are the 2 others Embedded web servers use for the comparison. They show us that Miniweb is just able to use static files and µIP use more memory thanks to the protothreads it use to handle the TCP connections. The comparison sets out that Smews is more efficient than the 2 others explained with their architecture designed for minimal shared content. In Smews, OgO files and static web files are preproceed to create C content. The compiler generates the binairies from C files and S-S generators. This is the best way to incrust the static content into the hardware and save some memory.

Applications

Because of his ease to implement and his minimalism design, this device can have multiple applications for a large public. The advantage of Smews is his mobility mixed with an external battery you obtain a smart device which can interact directly with other user or local running devices.To take advantage of his mobility, you must implement a wireless communication First of all you can install a collaborate working server. When you are on travel with colleague and have to work on the same folder and immediately share your content.

For Private Local Communication, Smews can be used as a web page to communicate over a nightly festival or political communication. This oblige the user to be near the source so you restraint your visibility and can your public. Suppose that this web server is also the way to create a local ChatRoom, and why not a Local Social Network.

Of course all the domotic applications are also a possibility. This can be implement in each devices. The fact that this local network is out of internet reinforce the security of your installation. Included in a camera, linked to a Smartphone this will be easy to control the camera with your phone. In fact, you can also take off the screen of the camera and reduce the size of it and his energy consumption and it's just an example. Smews can be implement in all sort of devices all oh them accessible via a simple web browser. But with the Funcard it could be also possible to reduces the number of card in your purse. Via a Web browser it may be possible to "configure" our card to be used as a Credit card or Social Security card and all of your fidelity card.

Back in the day, UPnP has take a large advance but the security of the system is always poorer than Smaws can accomplish. This is a reason why Smews could be more popular in the Open Source community and the development could be assure by independent programmer.

In conclusion this research prove that tiny devices could easily be upgrade to network and to keep advantge of his size and security design it's make an intersting advanced in the communication between devices and interaction. It's an interesting alternative to UPnP for developer who wants his personal area network.