- What is Eddie?
Eddie is an
open source effort aimed at delivering a commercial
grade, quality of service driven web server solution.
Eddie is a 100% software solution written primarily in
the functional programming language Erlang
(www.erlang.org) and is available for Solaris,
Linux and *BSD.
Eddie provides advanced automatic traffic management
and configuration of geographically distributed
server sites, consisting of one or more Local Area Networks.
At each site, certain servers are designated as
Front End Servers. These servers are
responsible for controlling and distributing incoming
traffic across designated Back End Servers,
and tracking the availability of Back End
Web Servers within the site. Back End Servers may
support a range of Web servers, including Apache.
Currently, Eddie consists of two software packages:
- The Enhanced DNS server, which provides load
balancing and monitoring of site accessibility for
geographically distributed web sites.
- An Intelligent HTTP Gateway which provides site based
Load Balancing, Reliability, Scalability, Performance Optimisation
and Quality of Service.
- Who would use Eddie?
Eddie's simplicity and flexibility make it useful to a wide range
of potential users, including:
- What is Load Balancing?
In distributed computer systems, load balancing is the act of
spreading incoming traffic across all computers that can perform
a particular function. By spreading traffic across a number of computers
in proportion to their capacity, load balancing attempts to ensure that
no computer is offered traffic beyond its capacity while others are
running below their capacity. This helps to ensure user response times
are minimised when the total offered traffic is less than the total
capacity of all computers in the system.
Eddie uses advanced load balancing techniqes to achieve this aim. In addition,
Eddie ensures that each request received from a user during a session with the
web server is sent to the same computer. This enables Eddie to guarantee
that state information, if required, is preserved during the user session.
This differs from more simplistic load balancing schemes which may load
balance all incoming requests independent of whether or not they are part of
an active session.
Load balancing by itself does not guarantee rapid response time and
user Quality of Service. This is the job of
admission control.
- What is Admission Control?
Admission control is the process of controlling the rate at
which new jobs are accepted for processing. The aim of admission
control is to ensure that all jobs accepted for processing
are processed in an acceptable period of time, in other words, the aim
is to provide the user with a better Quality of Service. Typically, this is
achieved by monitoring the resource usage of a computer and throttling
or rejecting the acceptance of new jobs when the available
resources are running low.
In the context of Eddie, the aim of the admission control is to ensure
that each user accepted to the system receives rapid response time
for each request that they send.
The Eddie Intelligent HTTP Gateway
creates a virtual session for users accessing the web site.
Each request from a user is considered to be part of a single session.
When a new user comes to the site, the Intelligent HTTP Gateway
decides whether sufficient resources exist to process the expected
sequence of user requests in a timely fashion.
If there are sufficient resources, the user is immediately admitted.
Once a user has been admitted, each request from the user bypasses the admission
control and is immediately sent to a Back End Server for processing.
This guarantees that a user, once admitted, will not be thrown out
of the system.
If there are not sufficient resources, Eddie either queues or
rejects the user. If queued, the user is held until resources
become available and then notfied of their entry to the server.
- How does Eddie improve reliability?
Eddie enables multiple forms of reliability to be achieved.
- How does Eddie provide scalability?
Scalability in Eddie enhanced web servers is achieved by simply adding
a new server and updating the configuration files. The capacity
of the new machine will be automatically determined and will be added
to the capacity of entire distributed web server.
- How does Eddie help improve the performance
of distributed web sites?
The Eddie Intelligent HTTP Gateway package allows
specialised functions to be allocated to specific
Back End Servers. As each user request arrives,
it is parsed by the Front End Server which then:
- Splits multiple requests within HTTP 1.1 persistent
connections into a number of individual requests.
- Sends the individual requests to Back End Servers
specialised to those requests.
This allows a system administrator to, for example,
dedicate certain Back End Servers to be CGI processing
engines, while other machines may be dedicated to acting
as image repositories. The individual machines may then
be tuned to optimise their performance to these specific tasks.
The allocation of functionality and information to Back End Servers
is specified by the system administrator in the
Eddie configuration files.
- Does my web site need to be architected
specially to use Eddie?
Logically, Eddie enhanced distributed web servers have three types of servers:
However, Eddie is entirely software and so each computer within the
distributed web server can be configured simultaneously as one or more
of the above.
In order to get the full user Quality of Service benefits
of the Admission Control function in the Intelligent HTTP Gateway package,
it is recommended that Back End Servers not be combined with the
Enhanced DNS and Intelligent HTTP Gateway packages on the same machine.
- What operating systems are
supported by Eddie?
Eddie currently supports
- Which web server software is
supported by Eddie?
Eddie supports all web servers which are HTTP 1.1 or earlier compliant
that run on supported operating systems.
These include
- What are the licensing arrangements
with Eddie?
We use the Erlang Public License (EPL). EPL is a
derivative work of the Mozilla
Public License (MPL). It contains terms which
differ from MPL, mainly in terms of
jurisdiction. The license is constructed in
accordance with the laws of Sweden
(MPL is not ;-). You may obtain a copy of the license at
http://eddie.sourceforge.net/EPL.
We also provide a text intended to help you
understand the legal text. It can be
obtained at http://eddie.sourceforge.net/txt/EPL-explained.txt.
The legal text is the
license, so if you have any doubts, refer to the legal text.
Do you have questions concerning the license?
The FAQs written by Mozilla for
MPL also apply to EPL in most cases. The FAQ
re for informative purposes
only, and do not in any way constitute a legally
inding portion of the License.
- How do I get help with Eddie?
At present Eddie is open source, User Supported software.
In the near future we are hoping that we will be able to
announce commercial support for Eddie. Until then the
following is available: Mailing Lists There are currently
two mailing-lists available.
The Core Team can be contacted by using these mailing lists.
We request
that you mail the mailing lists and check the mail archives
before mailing the Core team.