应用交付网络
应用交付网络
传统计算机网络主要关注的是网络的互连互通,而应用则关注的是业务逻辑功能,如何将两者合在一起,让网络更好的支持应用,同时应用最优化的利用网络,这就是应用交付网络(Application Delivery Networking,ADN)。
应用交付网络围绕着应用和网络主要为企业解决一下几个问题:
安全 - 目前业界已经达成共识,网络安全对于网络应用的保障是至关重要的环 节。而在应用交付网络中强调的是应用的安全,无论身居何处,应用交付网络可以预先提供 全面的防护措施,以避免那些不正当的恶意访问和攻击,确保应用数据/信息准确,未被篡改。在一个完善的应用交付网络设计中,会有网络传输包检测,甚至对 SSL 协议中传输的内容进行安全检查、隔离。
应用加速及优化 - 应用交付网络可以优化用户的网络应用,使网络达到更快的速度并 能减少资源消耗。无论是在全球的某个角落或者公司总部使用笔记本进行连接,应用交付网 络都可以确保应用程序的高速运行。一个完善的应用交付网络设计中,应当关注的一个重点就是如何提高广域网用 户的访问速度,实现就近访问、更小的带宽占用和应用访问速度的提升。
高可用 - 应用交付网络所提供的解决方案保证网络应用的持久性与可靠 性,在基于安全、正常运行、高可靠基础上允许用户强有力并灵活地来设定各种应用的优先 权,从而保证了各种网络应用的高可用性。一个完善的应用交付网络设计中,应该充分考虑到应用的高可用性需求,通过 自动、完善的切换手段,保证业务的不间断性和持续性。
代理(Proxy)
在软件设计和应用交付领域,代理(Proxy)的架构范式一直存在,如下图,代理作为请求发起方和服务提供方之间的一个中介,请求方通过代理向服务器发送请求,服务器通过代理将结果返回给请求发起者。
软件设计里的 Proxy Pattern 核心思想是在调运某一个方法之前,先将请求发送到代理,代理可以执行一些业务逻辑后再调运这个方法(Java 代理的例子);Spring 目前依然是应用开发领域最受开发者欢迎的模型,Spring 早期面向切面的架构里面是经典的代理范式,就是在服务调运的链路上添加一层一层逻辑处理层;JEE 标准也有大量关于代理范式的应用,Servlet 的 Filter, EJB 的 Interceptor 都是经典的代理设计。
应用交付领域代理更充当着对应用安全保护,应用高可用等,同事能让应用的消费者和业务领域专家有更好的体验。本部分重点在应用交付领域探讨代理相关的技术,首先给代理进行一个定义。
什么是代理(Proxy)
代理是位于客户端和服务器之间的硬件或软件解决方案,可充当客户端和服务器直接的中介,也可以主动发起一些请求或对某些请求作出响应。
代理有一个特点是可以使应用相对匿名,客户端访问者对应用不可知,应用在一定程度上匿名。代理有多种类型,有半代理、全代理、转发代理、反向代理等,接下来依次对这些不同类型的代理做一解释
代理的类型
类型 | 描述 |
---|---|
| |
| |
半代理分两种类型:
半代理有自己的使用场景,服务器直接返回方式通常用于一些流式协议,初次连接代理用在一些安全控制场景 | |
|