# Application delivery controller

> Mediated Wiki article. Canonical URL: https://mediated.wiki/source/Application_delivery_controller
> Markdown URL: https://mediated.wiki/source/Application_delivery_controller.md
> Source: https://en.wikipedia.org/wiki/Application_delivery_controller
> Source revision: 1128166272
> License: Creative Commons Attribution-ShareAlike 4.0 International (https://creativecommons.org/licenses/by-sa/4.0/)

{{Short description|Computer network device}}
{{more citations needed|date=May 2007}}
An '''application delivery controller''' ('''ADC''') is a [computer network](/source/computer_network) device in a [datacenter](/source/datacenter), often part of an [application delivery network](/source/application_delivery_network) (ADN), that helps perform common tasks, such as those done by [web accelerator](/source/web_accelerator)s to remove load from the [web server](/source/web_server)s themselves. Many also provide [load balancing](/source/Load_balancing_(computing)). ADCs are often placed in the [DMZ](/source/DMZ_(computing)), between the outer [firewall](/source/Firewall_(computing)) or router and a [web farm](/source/web_farm).{{citation needed|date=April 2022}}

==Features==
An Application Delivery Controller (ADC) is a type of server that provides a variety of services designed to optimize the distribution of load being handled by backend content servers. An ADC directs web request traffic to optimal data sources in order to remove unnecessary load from web servers. To accomplish this, an ADC includes many OSI layer 3-7 services, including load-balancing. 

ADCs are intended to be deployed within the DMZ of a computer server cluster hosting web applications and/or services. In this sense, an ADC can be envisioned as a drop-in load balancer replacement. But that is where the similarities end. When an ADC receives a web request from an external host, it enacts the following process (assuming all features exist and are enabled):

# Serve as TLS endpoint for the cluster and decrypt incoming requests (HTTPS-only).
# Examine the Request URI and determine the type of resource being requested.
# Verify that the entity making the request is authorized to access the given URI.
# Perform any URI translation, if applicable.
# Lookup the pool of hosts associated with that resource type (e.g. image, stylesheet, HTML, etc).
# In the case of login requests, the request may be translated, rather than simply forwarded, to an instance within a pool of authentication servers.
# In the case of static objects, the ADC may serve the object directly from its own internal cache or direct it to a dedicated static object repository.
# Maintain a table describing the health of the servers in every pool via one of several methods (e.g. average response time).
# Forward the request to the server within the target pool with the best health score.

Features commonly found in ADCs include: 

* [Traffic Shaping](/source/Traffic_Shaping)
* [SSL/TLS offloading](/source/TLS_termination_proxy)
* [Web Application Firewall](/source/Web_application_firewall)
* [DNS](/source/Domain_Name_System)
* [Reverse Proxy](/source/Reverse_Proxy)
* [API Gateway](/source/API_management)
* [HTTP Content Redirection](/source/HTTP_Content_Redirection)
* [Server Health Monitoring](/source/Server_Health_Monitoring)
* Payload Compression/Decompression
* [A/B Testing](/source/A%2FB_Testing)
* Facilitation of zero-downtime server maintenance cycles (by temporarily removing servers being upgraded from their respective pool)
* [Authorization](/source/Authorization) & [Access Control](/source/Access_Control) (but typically does not include [Authentication](/source/Authentication))

In the context of Telco infrastructure, an ADC could provide access control services for a Gi-LAN area.

==History==
Starting around 2004, first generation ADCs offered simple application acceleration and [load balancing](/source/load_balancing_(computing)).{{citation needed|date=April 2022}}

In 2006, ADCs began to mature when they began featuring advanced applications services such as [compression](/source/data_compression), [caching](/source/caching_(computing)), [connection multiplexing](/source/Multiplexing), [traffic shaping](/source/traffic_shaping), [application layer security](/source/Application_firewall), [SSL offload](/source/SSL_acceleration), and [content switching](/source/Content_switch), combined with services like server [load balancing](/source/Load_balancing_(computing)) in an integrated services framework that optimized and secured business critical application flows.{{citation needed|date=April 2022}}

By 2007, application acceleration products were available from many companies.<ref>{{cite web | url= http://www.networkworld.com/newsletters/accel/2007/0702netop1.html | title=Gear makers bundle network optimization features |first=Ann |last=Bednarz |date=2007-07-03 | publisher=Network World | accessdate=2013-05-26 }}</ref><!-- does not mention ADC! -->

Until leaving the market in 2012, [Cisco Systems](/source/Cisco_Systems) offered application delivery controllers. Market leaders like [F5 Networks](/source/F5_Networks), [Radware](/source/Radware), and [Citrix](/source/Citrix) had been gaining market share from Cisco in previous years.<ref name="eweek1">{{cite web | url= http://www.eweek.com/c/a/Enterprise-Networking/Cisco-Ending-ADC-Business-Ceding-Market-to-F5-Citrix-Riverbed-198757/ | title=Cisco Ending ADC Business, Ceding Market to F5, Citrix, Riverbed – | publisher= eweek.com | first=Jeffrey |last=Burt | date=2012-09-20 | accessdate=2013-06-27 }}</ref>

The ADC market segment became fragmented into two general areas: 1) general network optimization; and 2) application/framework specific optimization. Both types of devices improve performance, but the latter is usually more aware of optimization strategies that work best with a particular application framework, focusing on [ASP.NET](/source/ASP.NET) or [AJAX](/source/AJAX) applications, for example.<ref>{{cite web|url=http://www.internetnews.com/infra/article.php/3744311/Interop+Applications+And+Networks+Need+to+Unite.html |title=Applications And Networks Need to Unite |publisher=InternetNews.com |first=Sean Michael |last=Kerner |date=2008-05-01 |accessdate=2013-05-26 |archiveurl=https://web.archive.org/web/20080505080358/http://www.internetnews.com/infra/article.php/3744311/Interop%2BApplications%2BAnd%2BNetworks%2BNeed%2Bto%2BUnite.htm |archivedate=2008-05-05 |url-status=live }}</ref><!-- does not use the term ADC --><ref>Edgenexus Limited (2022). Edgenexus load balancers and Application. Retrieved from https://www.edgenexus.io/.</ref>

==See also==
*[Application delivery network](/source/Application_delivery_network) (ADN)

== References ==
{{reflist|1}}

{{DEFAULTSORT:Advance Application Delivery Controller}}
Category:Networking hardware
Category:Load balancing (computing)

---
Adapted from the Wikipedia article [Application delivery controller](https://en.wikipedia.org/wiki/Application_delivery_controller) by Wikipedia contributors ([contributor history](https://en.wikipedia.org/wiki/Application_delivery_controller?action=history)). Available under [Creative Commons Attribution-ShareAlike 4.0 International](https://creativecommons.org/licenses/by-sa/4.0/). Changes may have been made.
