
An embedded HTTP server is an
HTTP server
An HTTP server is a computer (software) program (or even a software component included in an other program) that plays the role of a server in a client–server model by implementing the ''server part'' of the HTTP and/or HTTPS network protocol ...
used in an
embedded system.
The HTTP server is usually implemented as a
software component of an
application
Application may refer to:
Mathematics and computing
* Application software, computer software designed to help the user to perform specific tasks
** Application layer, an abstraction layer that specifies protocols and interface methods used in a c ...
(embedded) system that controls and/or monitors a machine with mechanical and/or electrical parts.
The HTTP server implements the
HTTP protocol
Protocol may refer to:
Sociology and politics
* Protocol (politics), a formal agreement between nation states
* Protocol (diplomacy), the etiquette of diplomacy and affairs of state
* Etiquette, a code of personal behavior
Science and technology
...
in order to allow communications with one or more local or remote
users using a
browser. The aim is to let users to interact with information provided by the embedded system (
user interface, data monitoring,
data logging, data configuration, etc.) via
network, without using traditional peripherals required for local user interfaces (
display
Display may refer to:
Technology
* Display device, output device for presenting information, including:
** Cathode ray tube, video display that provides a quality picture, but can be very heavy and deep
** Electronic visual display, output devi ...
,
keyboard
Keyboard may refer to:
Text input
* Keyboard, part of a typewriter
* Computer keyboard
** Keyboard layout, the software control of computer keyboards and their mapping
** Keyboard technology, computer keyboard hardware and firmware
Music
* Musi ...
, etc.).
In some cases the functionalities provided via HTTP server allow also program-to-program communications, e.g. to retrieve data logged about the monitored machine, etc.
Usages
Examples of usage within an embedded application might be (e.g.):
* to provide a
thin client interface for a traditional application;
* to provide
index
Index (or its plural form indices) may refer to:
Arts, entertainment, and media Fictional entities
* Index (''A Certain Magical Index''), a character in the light novel series ''A Certain Magical Index''
* The Index, an item on a Halo megastru ...
ing,
reporting, and
debugging
In computer programming and software development, debugging is the process of finding and resolving '' bugs'' (defects or problems that prevent correct operation) within computer programs, software, or systems.
Debugging tactics can involve in ...
tools during the development stage;
* to implement a protocol for the distribution and acquisition of information to be displayed in the regular interface — possibly a
web service, and possibly using
XML as the
data format;
* to develop a
web application.
Advantages
There are a few advantages to using HTTP to perform the above:
* HTTP is a well studied cross-platform protocol and there are mature implementations freely available;
* HTTP is seldom blocked by
firewall
Firewall may refer to:
* Firewall (computing), a technological barrier designed to prevent unauthorized or unwanted communications between computer networks or hosts
* Firewall (construction), a barrier inside a building, designed to limit the spre ...
s and
intranet
An intranet is a computer network for sharing information, easier communication, collaboration tools, operational systems, and other computing services within an organization, usually to the exclusion of access by outsiders. The term is used in c ...
routers;
* HTTP clients (e.g.
web browsers) are readily available with all modern computers;
* there is a growing tendency of using embedded HTTP servers in applications that parallels the rising trends of
home-networking and
ubiquitous computing.
Typical requirements
Natural limitations of the platforms where an embedded HTTP server runs contribute to the list of the non-functional requirements of the embedded, or more precise, embeddable HTTP server. Some of these requirements are the following ones.
* "Small"
RAM and
ROM
Rom, or ROM may refer to:
Biomechanics and medicine
* Risk of mortality, a medical classification to estimate the likelihood of death for a patient
* Rupture of membranes, a term used during pregnancy to describe a rupture of the amniotic sac
* R ...
footprint. The exact size depends on the system, but in many cases anything over several megabytes is not embeddable.
* Minimal
CPU
A central processing unit (CPU), also called a central processor, main processor or just processor, is the electronic circuitry that executes instructions comprising a computer program. The CPU performs basic arithmetic, logic, controlling, and ...
utilization.
*
Cross compilation
A cross compiler is a compiler capable of creating executable code for a platform other than the one on which the compiler is running. For example, a compiler that runs on a PC but generates code that runs on an Android smartphone is a cross c ...
support for multiple
CPU
A central processing unit (CPU), also called a central processor, main processor or just processor, is the electronic circuitry that executes instructions comprising a computer program. The CPU performs basic arithmetic, logic, controlling, and ...
and
operating system combinations.
* Easy integration with an existing application, including
static linking with the operating system and application.
* Serving
pages from
application
Application may refer to:
Mathematics and computing
* Application software, computer software designed to help the user to perform specific tasks
** Application layer, an abstraction layer that specifies protocols and interface methods used in a c ...
memory if there is no
file system
In computing, file system or filesystem (often abbreviated to fs) is a method and data structure that the operating system uses to control how data is stored and retrieved. Without a file system, data placed in a storage medium would be one larg ...
.
*
Modularity
Broadly speaking, modularity is the degree to which a system's components may be separated and recombined, often with the benefit of flexibility and variety in use. The concept of modularity is used primarily to reduce complexity by breaking a sy ...
.
* Single
thread
Thread may refer to:
Objects
* Thread (yarn), a kind of thin yarn used for sewing
** Thread (unit of measurement), a cotton yarn measure
* Screw thread, a helical ridge on a cylindrical fastener
Arts and entertainment
* ''Thread'' (film), 2016 ...
and
multi-thread support.
For every specific project, requirements can vary significantly. For example, ROM and RAM footprints can be a very serious constraint and limit the choices of the system designer.
C++ or
JVM
A Java virtual machine (JVM) is a virtual machine that enables a computer to run Java programs as well as programs written in other languages that are also compiled to Java bytecode. The JVM is detailed by a specification that formally describes ...
availability for the system can be another constraint. Frequently performance is an issue, because typical embedded systems run multiple simultaneous tasks and an HTTP server is only one of them and may be configured as a low
priority task.
See also
*
Comparison of web server software
*
Comparison of application servers
*
Server (computing)
*
HTTP server
An HTTP server is a computer (software) program (or even a software component included in an other program) that plays the role of a server in a client–server model by implementing the ''server part'' of the HTTP and/or HTTPS network protocol ...
*
Web server
A web server is computer software and underlying hardware that accepts requests via HTTP (the network protocol created to distribute web content) or its secure variant HTTPS. A user agent, commonly a web browser or web crawler, initiate ...
References
{{Reflist
External links
libmicrohttpdcontains an extensive list of embedded HTTP server libraries towards the bottom of the page
*
ttps://realtimelogic.com/articles/What-is-an-Embedded-Application-Server Embedded Web Server vs. Embedded Application Server