• 代理模式


           代理模式用于构造具有解耦组件的分布式系统。这些组件可以通过远程服务调用彼此交互。代理组件负责组件之间的通信协调。服务器将其功能(服务和特征)发布给代理。客户端从代理请求服务,然后代理将客户端重定向到其注册中心的适当服务。代理者(Broker)模式可以用于构建带有隔离组件的分布式软件,该软件通过远程服务调用进行交互。
    使用场景:在客户端不能直接访问组件的情况下,通过代理组件进行访问。大致的使用环境,分为一下三类:1.直接访问IP或者组件不安全;2.访问次数特别多;3.对某些网站没有访问权限。

           将要解决的问题:在环境处于情况1时,会有以下几个问题:在访问某些网站时,不想透露自己真实的IP,上网者也希望通过这种方法隐藏自己的IP,免受攻击;对组件直接访问不安全。在环境处于情况2时,会有以下几个问题:对组件的无限制访问低效,需要控制机制(代理模式)。在环境处于情况3时,会有以下几个问题:自身IP访问受限,希望突破自身IP访问限制,访问不能访问的站点,例如一些教育网站。单位或团体资源无法访问,如某大学FTP(前提是该代理地址在该资源 的允许访问范围之内)。使用教育网内地址段免费代理服务器,就可以用于对教育网开放的各类FTP下载上传,以及各类资料查询共享等服务。

           解决方案:让客户机通过组件代表访问,而不是通过组件本身进行访问,这种中间的代表组件就是代理,代理提供了原件相同的接口,而且保证了对原件的正确访问,为了完成这种功能,代理保持对它所表示的原件的作用。

     

           实例:假设要做一个电子商务的系统,这个系统无疑需要展示商品、提供购买流程。同时这个系统也需要有针对供应商的订货、发货、入账等流程。除了交易处理,还需要有评价系统管理信用;统计和推荐系统增加销售量;用户帐号系统保障安全和便利等等。这些模块和功能一般比较复杂,但是一般涉及到买家和卖家两个角色,因此往往根据这个规则,划定了两类模块,分别实施其功能,最后通过一个数据平台来存储这些数据。

            一种情况是你需要调用的对象在另外一台机器上,你需要跨越网络才能访问,如果让你直接coding去调用,你需要处理网络连接、处理打包、解包等等非常复杂的步骤,所以为了简化客户端的处理,我们使用代理模式,在客户端建立一个远程对象的代理,客户端就象调用本地对象一样调用该代理,再由代理去跟实际对象联系,对于客户端来说可能根本没有感觉到调用的东西在网络另外一端,这实际上就是Web Service的工作原理。另一种情况虽然你所要调用的对象就在本地,但是由于调用非常耗时,你怕影响你正常的操作,所以特意找个代理来处理这种耗时情况,一个最容易理解的就是Word里面装了很大一张图片,在word被打开的时候我们肯定要加载里面的内容一起打开,但是如果等加载完这个大图片再打开Word用户等得可能早已经跳脚了,所以我们可以为这个图片设置一个代理,让代理慢慢打开这个图片而不影响Word本来的打开的功能。

     

  • 相关阅读:
    linux中文字体
    连接数据库服务器端的几个常见错误
    分布式部署下的报表调用 API调用 权限问题以及性能方案
    报表在IBM AIX系统下resin部署
    ASP.Net与JSP如何共享Session值
    async与await
    从小程序到小程序云开发
    什么是 FOUC(无样式内容闪烁)?你如何来避免 FOUC?
    微信小程序知识云开发
    变量的解构赋值
  • 原文地址:https://www.cnblogs.com/baiyue/p/9088194.html
Copyright © 2020-2023  润新知