Embedded Remote Calculation System

Background

This is a teamwork project intended for 2007 Microsoft ImagineCup Embedded Development Competition, and the members are four junior students from Department of Electronic Engineering in Tsinghua University. Devices are becoming smaller, more portable and are having a greater impact on our everyday lives. This competition challenges us to go beyond the desktop, challenge our creativity, and to build a complete hardware and software solution using Windows CE and the hardware provided. To address that year's Imagine Cup theme — education, we proposed a novel idea to solve a practical problem — how to acquire powerful calculation capability using mobile embedded device. By adopting wireless network technology and Windows Mobile based device, we designed a system that could provide users seamless mobile calculation experience, as well as maximized extensibility and flexibility.

Demand Analysis

With the rapid development of mobile technology, more and more portable electronic devices have stepped into our life. PDA, laptop and things like that benefit us a lot since people can now deal with routine affairs as well as entertainment over the Internet even if they are away from the personal computers. On the other hand, the processing capacity of a machine is almost in positive correlation to its size — that is, more convenience usually means slower CPU rate and smaller memory space. If we want to do a complex calculation task whose requirement is far beyond the capacity of the mobile embedded devices, the only choice for most people nowadays is to put off these problems when they are out, and fix them back in their personal computers. Overall, the contradiction between the processing capacity and the mobile convenience seems to be irreconcilable in the current situation.

Besides the problem itself, we also analyzed the end-users. For students, especially those in universities or colleges, it would be good news if they are able to use their portable devices to enjoy the combination of powerful computing ability and the convenient mobility. Students who major in science or technology are sure to face all kinds of computing problems or simulation needs. And corresponding specialized software would probably demand a rather high processing capacity. However, students may usually spend much of their time in classrooms where they are far away from their PCs in the dormitories or laboratories.

In addition, the directors of departments such as ministry of personnel in a company will face the same problem as well. Very often they need to go out on some errands. And it would be so beneficial that they can manage the databases of the company just by using their mobile devices.

It will also do scientific exploration a favor if the scientists can make use of the central database when they are collecting the specimens or some other information in the outdoors. In this way, the scientists can get real-time feedback which helps them better decide what to do next.

Solutions

The system we designed consisted of three parts. They are related to each other to a minimized extent deliberately. This enables us to focus on the very part of the problem that is intended to be solved, and meanwhile enhances the overall flexibility and extendibility of the system. Terminologically, they are called the communication module, the remote module, and the end-user module. Together they provide a complete solution to the problem identified earlier, i.e. powerful yet mobile calculation capability.

The communication module is the fundamental part of the system, functioning as the underlying layer which connects the end-user terminal and the remote desktop computer that is actually doing the calculation work. Since the communication task is relatively straight-forward and does not change with time, this module is the most stable one of all the three in terms of upgrade and extension. Technically, we choose TCP/IP protocol as the underlying network layer, upon which a wide variety of wireless technology is available, such as Bluetooth, GPRS, and WiFi. For simplicity and quick response, we employed a custom application layer protocol based on SOCKS interface. Our communication module is capable of transmitting large amount of data in universal format reliably. It is a bi-directional bridge that is transparent to the end user or the remote desktop computer.

In our scheme, the remote module is the core of the system — it awaits connection request sent by the end-user module, receives and converts the data to the format that calculation software can understand, loads the corresponding software, feeds it with the input data, retrieves the result, and finally sends it back. For common calculation software (e.g. MATLAB, SPICE, NS2), the preceding steps should suffice — the only tricky part lies in how each software is called and controlled by the remote module. There exist several solutions. To command-line based software, the input and output data can be directly fed into and fetched from the target software by executing command-line instructions; to open source or open interface software, a plug-in program can be written to fulfill the task; to the rest, the bottom-line is to communicating with them by system API functions — certainly not as effective as the other methods. In fact, the remote module embodies the true power of our design. It incorporates plug-in based design, which makes interactions with distinct software independently and thus greatly enhances its expandability. And with some more imagination, one can easily extend its functionality into a number of areas other than calculation — say, a remote access interface which searches and retrieves digital photos from one's huge collection stored in home computer, or a remote administration interface which manages a website remotely.

As a module directly facing end-user, the end-user module is totally implemented in the target hardware platform, using Windows Mobile technology. It is responsible of taking inputs from the user, as well as reformatting and presenting the calculation result transmitted through network. To maximize compatibility, we use universal data formats such as XML for both control message (end-user to remote machine) and result data (the reverse direction). In addition to providing encapsulation for general-purpose information like numeric or character data, it can be easily extended to incorporate other data like commands or metadata. A striking feature of this module is that it is capable of rearranging and reformatting the result data, which takes advantage of the natural feature of calculation software, and thus greatly saves communication bandwidth demand.

Features and Comparison

As far as methodology is concerned, our design features in its module-based design. By intentional minimizing function overlap between the three modules, we can more easily partition work among different members. However, the more beneficial and consequential point is that, by applying this method of partition, we can break the whole system down into smaller scale, employing the "divide and conquer" idea to raise efficiency. Another significant feature of our design is that it is totally based on plug-in driven open interface architecture. At the user end, besides built-in basic I/O function, one can extend the program capability simply by loading extra plug-ins, such as ones that provide support for bitmaps, sound clip, or mathematic equations. It is the same case at the remote end. Each plug-in corresponds to a specific calculation software, or more broadly, a specific task.

a number of methods have been taken to solve the problem we are discussing here, none of them effective enough. Most people would prefer to use a mobile computer, including laptop, tablet PC, or newly marketed UMPC. However, compared to embedded systems, they suffer from a number of problems such as weight, power on/off time, battery life, etc., which prevent them to be truly called mobile. And the rest minorities take two strategies mainly. One of them is handheld based calculation software, which is usually limited in function; the other is remote login program, such as Remote Desktop in Windows which also suffers from multiple problems ranging from overdue bandwidth demand to deteriorated user experience (imagine using a small 320 × 240 screen to browse a large 1024 × 768 desktop). Our solution is inherently similar to the last one mentioned above, but the creativity is that we improve the user experience by transmitting a converted format of data over the network, rather than the raw data such as the remote screen captured directly. This greatly increases efficiency and makes the solution superior to common remote login methods.

Return