Today, Internet of Things (IoT) is a key very famous. In the future all things will be “online”, so IoT will improve so much. As you know, the image processing, computer vision or machine learning use a lot of processor and RAM. So run the code on server and client calls the code to get result is a best choice. For an simple and performance IoT, we use client-server with CGI programming as bellow.
Firstly, you need to see this image:
On the server, we use the Common Gateway Interface (CGI), each CGI function maybe implement a simple calculator like sum 2 numbers or a complex method like detect a face in an image.
Why CGI programming?
First of all, let the Wikipedia introduce you a bit about CGI
With CGI programming, the server will be very modular. We can create multiple modules, each module execute a function and it is separate or call others CGI on this server or even on other servers.
3. Disadvantage of the architecture
As you see, this architecture need a server for execute all algorithms and sure that it needs the internet ;D
In other hand, the device need wifi or other sensor like blue-tooth, 3G, 4G, … to use the algorithms running on the server. But in the IoT generation, that is not a big problem?
Advantage of the architecture
We can list many advantage such as:
– The total price will reduce for many devices: you can imagine, we make millions camera, each camera is power for object detection, face detection, face recognition, scene classification, etc. So each camera need a vary hight power processor for execute algorithms. Instead of that, we make a small processor and a wifi card for send data to server, call cgi online function on the server and get the result. That will reduce so much the price.
– The speed improve in the future that the speed of Internet become very fast.
– Things become smart: all things will be controlled automatic online.
– And so on: with this architecture, we just programming for normal computer, don’t need to build for each different processor. So many type of device like ip camera, robot, toy electronic, drone, etc could use the same online function.
The image processing, computer vision or machine learning use a lot of processor and RAM. So run the code on server and client calls the code to get result is a best choice. With this architecture, all things will be controlled automatic online. We think in the future, all device use algorithms running on normal computer, don’t need to build for each different processor. So many type of device like ip camera, robot, toy electronic, drone, etc could use the same online function. What do you think about that? Is that possible? If we provide a smart server that can respond your tasks like object tracking, face tracking, …, do you want to use it?