The Barracuda Embedded Web Server is designed from the ground up to support modern resource constrained embedded systems. The Barracuda Embedded Web Server is delivered as a "C" library that can be embedded in other computer programs. Despite its name, the Barracuda Embedded Web Server is an embeddable application server and is specifically designed to function as a framework for running server based applications.
The following diagram shows the Barracuda Embedded Web Server and the major plugins such as the LSP plugin. The diagram is interactive, and more information appears when you move your mouse over the diagram. See our products page for an introduction to the various components.
Application Server versus Web Server
A web server is a HTTP protocol stack that is limited to handling HTTP requests. In contrast, an application server is a software framework dedicated to the efficient execution of programs, routines, or scripts for supporting the construction of various applications. An application server also contains a web server. Thus, one may consider a web server a subset of an application server. While a web server mainly deals with sending HTML for display in a web browser, an application server provides access to server side logic (server applications) for use by client application programs.
Think of an application server as a GUI engine that is connected to a remote display with applications running in the server dynamically creating the user interface and presenting the user interface in, for example, a browser. A web server is limited to presenting static (pre-designed) web pages and is consequently of little value or no value for designing GUI applications since a GUI typically changes the look and behavior when used by a client. Some web servers allow extensions such as CGI and other means for managing dynamic content. These extensions typically limit the GUI designer and make it time consuming and difficult to design GUI applications. See our Barracuda Server versus CGI tutorial for more information.
A standard web server is typically associated with a directory on a file system. This directory contains the static web content for the application. The Barracuda Embedded Web Server can function as a standard web server by creating one instance of a resource reader and inserting the resource reader as a root directory in the virtual file system. The resource reader can, for example, be associated with one DiskIo that is configured to read files from a specific location in your file system. The resource reader is designed to be efficient at serving static content and the Barracuda Embedded Web Server is therefore also very efficient at serving content similar to a standard web server. However, unlike a regular web server, the resource reader can be LSP enabled, meaning that it will run pages on the server that end with the extension .lsp. In other words, the page is loaded and executed on the server and not returned as a static file to the web client.
See the Introduction to the Barracuda Virtual File System for more information on the resource reader and other "resource collection" types that can be inserted in the virtual file system.