Embedded HTTP server
Encyclopedia
An embedded HTTP server is a component of a software system that implements the HTTP
Hypertext Transfer Protocol
The Hypertext Transfer Protocol is a networking protocol for distributed, collaborative, hypermedia information systems. HTTP is the foundation of data communication for the World Wide Web....

 protocol. Examples of usage within an application might be:
  • To provide a thin-client interface for a traditional application..
  • To provide indexing, reporting, and debugging
    Debugging
    Debugging is a methodical process of finding and reducing the number of bugs, or defects, in a computer program or a piece of electronic hardware, thus making it behave as expected. Debugging tends to be harder when various subsystems are tightly coupled, as changes in one may cause bugs to emerge...

     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
    Web service
    A Web service is a method of communication between two electronic devices over the web.The W3C defines a "Web service" as "a software system designed to support interoperable machine-to-machine interaction over a network". It has an interface described in a machine-processable format...

    , and possibly using XML
    XML
    Extensible Markup Language is a set of rules for encoding documents in machine-readable form. It is defined in the XML 1.0 Specification produced by the W3C, and several other related specifications, all gratis open standards....

     as the data format.
  • To develop a web application
    Web application
    A web application is an application that is accessed over a network such as the Internet or an intranet. The term may also mean a computer software application that is coded in a browser-supported language and reliant on a common web browser to render the application executable.Web applications are...



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 firewalls and intranet routers.
  • HTTP clients (e.g. web browser
    Web browser
    A web browser is a software application for retrieving, presenting, and traversing information resources on the World Wide Web. An information resource is identified by a Uniform Resource Identifier and may be a web page, image, video, or other piece of content...

    s) 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
    Ubiquitous computing
    Ubiquitous computing is a post-desktop model of human-computer interaction in which information processing has been thoroughly integrated into everyday objects and activities. In the course of ordinary activities, someone "using" ubiquitous computing engages many computational devices and systems...

    .

Typical requirements

Natural limitations of the platforms where an embedded HTTP server runs contribute to the list of the functional requirements of the embedded, or more precise, embeddable HTTP server. Some of these requirements:
  • "Small" RAM
    Ram
    -Animals:*Ram, an uncastrated male sheep*Ram cichlid, a species of freshwater fish endemic to Colombia and Venezuela-Military:*Battering ram*Ramming, a military tactic in which one vehicle runs into another...

     and ROM
    Read-only memory
    Read-only memory is a class of storage medium used in computers and other electronic devices. Data stored in ROM cannot be modified, or can be modified only slowly or with difficulty, so it is mainly used to distribute firmware .In its strictest sense, ROM refers only...

     footprint. The exact size depends on the system, but in many cases anything over several megabytes is not embeddable.
  • Minimal CPU utilization.
  • Cross compilation support for multiple CPU and operating system combinations.
  • Easy integration with an existing application, including static linking with the operating system and application.
  • Serving pages from application memory if there is no file system.
  • Modularity.
  • Single thread and multi-thread support.

For every specific project requirements can vary significantly. For example, ROM and RAM footprints can be very serious constraint and limit the choices of the system designer. C++
C++
C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell...

 or JVM
Java Virtual Machine
A Java virtual machine is a virtual machine capable of executing Java bytecode. It is the code execution component of the Java software platform. Sun Microsystems stated that there are over 4.5 billion JVM-enabled devices.-Overview:...

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.
The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK