分布式对话服务器的管理[Java编程]
本文“分布式对话服务器的管理[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
择要:
通过利用JDK 1.3中引入的RMI和Proxy API,本篇文章谈论了一种答应一台或多台servlet服务器在一台或多台对话服务器上保护对话信息的技术,采取这种技术后,单一点弊端就不会再呈现了.
假如系统中有一台或多台servlet服务器,对话信息只存在于运行着JVM的一台servlet服务器上,而不会被传输给其他servlet服务器.假如该servlet服务器当机或因为保护而被关机,任何保存在对话中的信息城市丧失.假如一个系统中有多台servlet服务器,一个带有对话的用户需求拜候对话中的任何信息,都需求被重新定向到同一台servlet服务器.曾经有专家倡议采取关系数据库保存全部的对话信息,但这仍旧存在单一点弊端的危险,那就是运行关系数据库的服务器.并且假如数据库出了弊端,全部的servlet服务器就都不能再拜候对话信息了.别的,在数据库中保存可串行化的对象在有些数据库中是对比难以实现的.
多服务器对话管理的另一个大概的途径是操纵JavaSpaces API来保护对话对象中的记录.当然,假如运行JavaSpaces的服务器由于保护或弊端而被关机,也会丧失全部的对话信息,我们再一次碰到了单一点弊端的问题.
要实现带有N个节点的分布式对话服务器,我们必须办理以下的三个问题:
若何成立一个库来存贮对话信息.
若何对分布式对话信息存贮库举行同步.
在一个对话信息存贮库脱离网络后,若何使该服务器从下一个对话信息存贮库中拜候对话信息.
Mnemosyne的简介
我们用来存贮对话信息的库是Mnemosyne界面的履行.履行Mnemosyne的对象负责管理对话信息存贮库中的全部对象,任何试图写、拜候或删除库中对象的对象都必须调用Mnemosyne的呼应的办法来实现呼应的操作.
一个对象要存贮在Mnemosyne,就必须履行Memory界面,该界面定义了equalsMemory()操作来探测二个内存对象能否相同,这就使 Mnemosyne判断出该当把哪个对象返回给read要求或take要求.Memory界面也可以举行串行化扩大,以便我们可以用RMI在网络上传输该对象.
Mnemosyne利用三种界面表达其状况.
1、CommonContext界面存贮Mnemosyne的全部信息.每个Mnemosyne都有一个CommonContext对象的实例,以便read、write、take Memory对象时在各个办法之间举行同步.在write大概take说Memory对象时,CommonContext对象既定义“silent”办法也定义“loud”办法,当在不举行事件告诉的情形下增添对象时,就会用到“silent”办法.比方,当Mnemosyne对象接纳到WriteRemoteEvent(向一个远程Mnemosyne对象写对象的告示.)事件后,假如它也但愿向CommonContext对象写另一个对象,它就无需告诉其他的远程CommonContext对象,最初的Mnemosyne已经告诉了它们,因此这种写是通过调用CommonContext对象的silentWrite()办法“静暗暗”地完成的.而“loud”办法例在有对象第一次被增添时将这一事件的具体信息告诉全部被调用的监听对象.
2、Transaction对象用于在read、write、take Memory对象时举行分布式事件处理,这意味在Mnemosyne对象上大概会有多步骤的操作.
3、TransactionContext界面管理分布式事件,使得系统可以中止或提交一个事件.
以上是“分布式对话服务器的管理[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |
- ·上一篇文章:Java学习的思绪
- ·下一篇文章:浅谈Socket编程及Java实现
- ·中查找“分布式对话服务器的管理”更多相关内容
- ·中查找“分布式对话服务器的管理”更多相关内容