Information Technology Reference
In-Depth Information
teams to rely on a centralized frontend platform team. It also takes management discipline
to not allow exceptions.
4.3.1 Frontends
The frontends are responsible for tasks that are common to all applications, thus reducing
the complexity of the applications. Because the user interactions and application services
are decoupled, each can focus on doing one thing well.
Thefrontendshandleallcookieprocessing,sessionpipelining(handlingmultipleHTTP
requests over the same TCP connection), compression, and encryption. The frontends can
implement HTTP 2.0 even though the application servers may still be stuck on HTTP 1.1.
In fact, application servers often implement a simpler subset of the HTTP protocol, know-
ing they will be behind frontends that implement HTTP fully. End users still benefit from
these features because the frontend supports them and acts as a gateway.
Frontend software can track the ever-changing HTTP protocol definition so that the ap-
plication servers do not have to. HTTP started out as a simple protocol, handling simple
requests. Over time, it has evolved to have a much richer feature set, which makes it more
complex and difficult to implement. Being able to independently upgrade the frontends
means not having to wait for each application server to do so.
Frontends process everything related to the users logging in and logging out. Handling
these tasks at the frontend tier makes it easy to have a unified username and password in-
frastructure for all applications. The requests from the frontends to the application layer
include the username that has been pre-authenticated. The applications can trust this in-
formation implicitly.
Frontends often fix problems so that the application servers don't have to. For example,
HTTP headers are case insensitive, but some application servers have broken implementa-
tionsthatassumetheyarecasesensitive.Frontendscanautomaticallydowncaseallheaders
so that the application servers only see the clean protocol headers that they naively expect.
Ifanapplicationserverdoesn'tsupportIPv6,thefrontendcanreceiverequestsviaIPv6but
speak IPv4 to the backends.
Some application servers don't even use HTTP. Some companies have invented their
own protocols for communication between the frontends and the application servers that
are much faster and more efficient.
Search WWH ::




Custom Search