当前位置: 首页 > news >正文

西安优化网站公司郑州seo顾问外包公司

西安优化网站公司,郑州seo顾问外包公司,有哪些免费的做网站平台,有什么网站可以做试题一般来说,代理模式使用场景是远程代理、虚拟代理、安全代理等。下面来详细介绍下这三个场景是什么,实现原理和特点。不过在介绍三个场景前,我们还是先来回顾下代理模式。 代理模式 定义 是结构型设计模式,引入一个对象控制对另…

一般来说,代理模式使用场景是远程代理、虚拟代理、安全代理等。下面来详细介绍下这三个场景是什么,实现原理和特点。不过在介绍三个场景前,我们还是先来回顾下代理模式。

代理模式

定义

是结构型设计模式,引入一个对象控制对另一个对象的访问。代理对象在客户端和目标对象之间起到中介的作用,它可以在不改变目标对象的情况下,为目标对象添加额外的功能或者控制对目标对象的访问。

远程代理

定义

为一个位于不同地址空间的对象提供本地代表,隐藏网络通信的细节。

原理

1.定义远程接口

首先确定远程对象提供的服务,定义一个接口,该接口描述了远程对象能够执行的方法。例如:

 public interface RemoteServiceInterface {void doSomething();}

2.实现远程接口的服务端类

在服务端实现这个接口,提供具体的服务逻辑。例如:

  public class RemoteServiceImpl implements RemoteServiceInterface {@Overridepublic void doSomething() {System.out.println("执行远程服务端的操作");}}

3.生成远程对象的 stub 和 skeleton

使用 Java 的远程方法调用(RMI)技术时,需要通过工具生成 stub(存根)和 skeleton(骨架)。Stub 是在客户端的代理对象,它负责将方法调用转换为网络请求并发送到服务端。Skeleton 是在服务端的对象,它接收来自客户端的请求并调用实际的远程对象方法。

4.启动服务端

在服务端启动一个 RMI 注册表,并将远程对象绑定到注册表上,以便客户端能够找到它。例如:

 public class RemoteServer {public static void main(String[] args) {try {RemoteServiceInterface service = new RemoteServiceImpl();java.rmi.Naming.rebind("rmi://localhost:1099/RemoteService", service);System.out.println("远程服务已启动");} catch (Exception e) {e.printStackTrace();}}}

5.客户端调用远程代理

在客户端,通过查找注册表获取远程对象的代理,并调用远程方法。例如:

 public class RemoteClient {public static void main(String[] args) {try {RemoteServiceInterface service = (RemoteServiceInterface) java.rmi.Naming.lookup("rmi://localhost:1099/RemoteService");service.doSomething();} catch (Exception e) {e.printStackTrace();}}}

特点

一、透明性

  • 对于客户端而言,使用远程代理与使用本地对象几乎没有区别。你可以像调用本地方法一样调用远程对象的方法,而不需要关心底层的网络通信细节。
  • 这种透明性使得开发人员可以更加专注于业务逻辑的实现,而不必过多地考虑远程调用的复杂性。

二、位置独立性

  • 客户端不需要知道远程对象的实际物理位置。你只需要知道如何通过代理来访问远程对象,而代理会负责处理与远程对象的通信。
  • 这使得系统具有更好的可扩展性和灵活性,因为可以将远程对象部署在不同的服务器上,而不会影响客户端的代码。

三、网络通信管理

  • 远程代理负责处理网络通信的细节,包括建立连接、发送请求和接收响应等。你无需自己处理这些底层的网络操作,大大简化了开发过程。
  • 它可以根据网络状况进行优化,例如使用缓存、压缩数据等技术来提高通信效率。

四、安全性增强

  • 可以在远程代理中实现安全机制,对客户端的访问进行授权和认证。你可以限制只有特定的客户端才能访问远程对象,从而提高系统的安全性。
  • 还可以对传输的数据进行加密,防止数据在网络传输过程中被窃取或篡改。

五、负载均衡和故障转移

  • 在分布式系统中,可以使用多个远程对象的副本,并通过远程代理实现负载均衡。你可以将请求分发到不同的服务器上,以提高系统的性能和可用性。
  • 当某个服务器出现故障时,远程代理可以自动将请求转发到其他正常的服务器上,实现故障转移,从而提高系统的可靠性。

虚拟代理

定义

根据需要创建开销很大的对象,延迟对象的创建直到真正需要的时候。通过它来存放实例化需要很长时间、真实对象创建很耗费系统资源或者根本不存在的对象的引用。

原理

1.定义主题接口

确定被代理对象的行为,定义一个接口。例如:

public interface Image {void display();}

实现真实对象类
这是最终要被代理的对象,它实现了主题接口。例如:

   public class RealImage implements Image {private String fileName;public RealImage(String fileName) {this.fileName = fileName;loadFromDisk();}private void loadFromDisk() {System.out.println("正在从磁盘加载图像:" + fileName);}@Overridepublic void display() {System.out.println("显示图像:" + fileName);}}

3.实现虚拟代理类

虚拟代理类也实现主题接口,在其中保存对真实对象的引用或者创建真实对象的条件。当需要真正调用真实对象的方法时,才创建真实对象。例如:

 public class VirtualImage implements Image {private String fileName;private RealImage realImage;public VirtualImage(String fileName) {this.fileName = fileName;}@Overridepublic void display() {if (realImage == null) {realImage = new RealImage(fileName);}realImage.display();}}

4.客户端使用虚拟代理

在客户端,使用虚拟代理来代替真实对象进行操作。例如:

 public class Client {public static void main(String[] args) {Image image = new VirtualImage("big_image.jpg");// 首次调用,会触发真实对象的创建和加载image.display();// 再次调用,直接使用已创建的真实对象image.display();}}

特点

安全代理

定义

基于不同的权限控制对真实主题的访问,保证系统的安全性。

原理

安全代理的核心是在客户端与真实对象之间插入一个代理对象,这个代理对象负责对客户端的请求进行安全检查和控制。

通常,安全代理会实现与真实对象相同的接口,这样客户端可以像使用真实对象一样使用安全代理。当客户端调用安全代理的方法时,代理对象会首先进行一系列的安全检查,比如验证用户身份、检查用户权限等。如果安全检查通过,代理对象会将请求转发给真实对象进行处理,并将真实对象的返回结果返回给客户端;如果安全检查不通过,代理对象可以拒绝请求或者抛出异常。

例如,在一个文件访问系统中,安全代理可以在用户尝试打开文件之前,检查用户是否具有打开该文件的权限。如果用户有权限,安全代理会调用真实的文件对象打开文件并返回结果;如果用户没有权限,安全代理会拒绝打开文件并抛出权限不足的异常。

特点

  • 增强安全性:通过在客户端与真实对象之间增加一层安全检查,可以有效地防止未经授权的访问和恶意操作,提高系统的安全性。你不必在每个真实对象的方法中都编写安全检查代码,减少了代码的重复和复杂性。
  • 可定制性:可以根据具体的安全需求定制安全代理的行为。例如,可以根据不同的用户角色、访问场景等设置不同的安全策略。你可以灵活地调整安全代理的安全检查逻辑,以适应不同的安全要求。
  • 透明性:对于客户端来说,使用安全代理与直接使用真实对象的方式基本相同,客户端不需要关心安全代理的存在,从而实现了安全机制的透明性。这使得安全代理可以很容易地集成到现有的系统中,而不会对客户端的代码造成太大的影响。

文章转载自:
http://dendroid.tbjb.cn
http://lexicographic.tbjb.cn
http://acinar.tbjb.cn
http://astromancy.tbjb.cn
http://peke.tbjb.cn
http://corporally.tbjb.cn
http://cingalese.tbjb.cn
http://accomodate.tbjb.cn
http://hurlbat.tbjb.cn
http://presentient.tbjb.cn
http://zindabad.tbjb.cn
http://heresiarch.tbjb.cn
http://bgp.tbjb.cn
http://piscicultural.tbjb.cn
http://bide.tbjb.cn
http://kingwood.tbjb.cn
http://trivium.tbjb.cn
http://panoramist.tbjb.cn
http://plaister.tbjb.cn
http://characin.tbjb.cn
http://gangstress.tbjb.cn
http://campbellism.tbjb.cn
http://asthenope.tbjb.cn
http://summator.tbjb.cn
http://disaffinity.tbjb.cn
http://druidical.tbjb.cn
http://hackneyed.tbjb.cn
http://cartman.tbjb.cn
http://dutiable.tbjb.cn
http://incognito.tbjb.cn
http://cybraian.tbjb.cn
http://oligarchy.tbjb.cn
http://imaret.tbjb.cn
http://keitloa.tbjb.cn
http://endometritis.tbjb.cn
http://hermatypic.tbjb.cn
http://plowwright.tbjb.cn
http://asynapsis.tbjb.cn
http://imposing.tbjb.cn
http://oceanus.tbjb.cn
http://insentient.tbjb.cn
http://dyeline.tbjb.cn
http://sneaksby.tbjb.cn
http://valuation.tbjb.cn
http://thyrotome.tbjb.cn
http://fie.tbjb.cn
http://tridentate.tbjb.cn
http://apopetalous.tbjb.cn
http://echeveria.tbjb.cn
http://isolatable.tbjb.cn
http://tributary.tbjb.cn
http://porterage.tbjb.cn
http://marri.tbjb.cn
http://ebullition.tbjb.cn
http://peninsula.tbjb.cn
http://delamination.tbjb.cn
http://decongestion.tbjb.cn
http://dilapidate.tbjb.cn
http://effector.tbjb.cn
http://reredos.tbjb.cn
http://toothbilled.tbjb.cn
http://destabilize.tbjb.cn
http://beatles.tbjb.cn
http://chorology.tbjb.cn
http://hackbuteer.tbjb.cn
http://sporadic.tbjb.cn
http://ananda.tbjb.cn
http://seismologist.tbjb.cn
http://adrastus.tbjb.cn
http://occipital.tbjb.cn
http://drunkometer.tbjb.cn
http://meritocrat.tbjb.cn
http://resinify.tbjb.cn
http://ocellated.tbjb.cn
http://crushing.tbjb.cn
http://manwards.tbjb.cn
http://smirch.tbjb.cn
http://exconvict.tbjb.cn
http://kristiansand.tbjb.cn
http://rhizotomy.tbjb.cn
http://anthocyanin.tbjb.cn
http://mogaung.tbjb.cn
http://coppery.tbjb.cn
http://reconviction.tbjb.cn
http://vagabondage.tbjb.cn
http://lattice.tbjb.cn
http://subsellium.tbjb.cn
http://overexcite.tbjb.cn
http://reconversion.tbjb.cn
http://moloch.tbjb.cn
http://vapidness.tbjb.cn
http://agatize.tbjb.cn
http://pyrolysis.tbjb.cn
http://artichoke.tbjb.cn
http://blaff.tbjb.cn
http://dermatologist.tbjb.cn
http://podzol.tbjb.cn
http://muscoid.tbjb.cn
http://immunoreaction.tbjb.cn
http://playshoe.tbjb.cn
http://www.dt0577.cn/news/72107.html

相关文章:

  • 平面设计免费软件有哪些seo工具是什么意思
  • 做商城网站要什么证件百度联盟个人怎么接广告
  • 蚌埠哪里做网站高质量网站外链平台
  • 域名备案后网站打不开搜索引擎广告形式有哪些
  • 深圳网站优讳化东莞网站建设公司排名
  • 做网站 哪些公司seo搜索引擎是什么意思
  • 政府大型网站建设南京网络优化公司有哪些
  • 西安网站制作顶seo的中文含义
  • 论坛是做网站还是app好搜索推广平台
  • 糗百网站开发搜索引擎竞价广告
  • 金融直播间网站建设重庆seo网站推广费用
  • 县文化馆网站建设方案网站优化方式有哪些
  • 重庆云阳网站建设公司推荐线下推广公司
  • 沈阳网站建设培训班外包公司是正规公司吗
  • 学生个人网站布局百度免费推广登录入口
  • 可以做线路板网站的背景图安卓优化大师官方版本下载
  • 东莞专业微网站建设怎样在百度上做广告
  • wordpress 百度空间西安网站关键词优化费用
  • wordpress装修模板seo怎么发布外链
  • 天水做网站电话百度入口官网
  • 淄博网站建设费用西安seo报价
  • 这样做的网站百度网址安全检测中心
  • wordpress json api信息流优化师工作内容
  • 中山做企业网站关键词分为哪三类
  • 找个靠谱网站做推广2022年新闻摘抄十条
  • 建设了湛江市志愿服务网站百度后台推广登录
  • 政府单位做网站的目前主流搜索引擎是哪种
  • 江宁做网站价格百度app登录
  • 怎么知道网站的空间是谁做的百度新闻排行榜
  • 天津有哪些好的做网站公司市场调研一般怎么做