分布式对话服务器的管理(3)

  当添加或删除一个Memory对象时,经过同步的本地Mnemosyne对象需要对所有的Mnemosyne进行更新,可以通过notify()方法来完成这一任务。无论是发生write或take事件,Mnemosyne都会针对发生的事件调用适当的监听者的notify()方法。在synchronize()方法中,我们把本地Mnemosyne注册为所有远程Mnemosyne的take和write事件的监听者,一旦远程Mnemosyne上有take和write事件发生,就会调用本地 Mnemosyne的notify()方法。然后,本地Mnemosyne必须对事件作出反应。下面是Mnemosyne如何与远程Mnemosyne进行同步的例子:
public void notify(RemoteEvent remoteEvent) throws RemoteException
{
// 回写被写的内存,但无需通知所有的Mnemosyne
if(remoteEvent instanceof WriteRemoteEvent)
{
WriteRemoteEvent wre = (WriteRemoteEvent) remoteEvent;
commonContext.silentWrite(wre.getMemory());
}
file:// 取被写的Memory,但无需通知所有的Mnemosyne
if(remoteEvent instanceof TakeRemoteEvent)
{
TakeRemoteEvent tre = (TakeRemoteEvent) remoteEvent;
commonContext.silentTake(tre.getMemory());
}
}
  现在已经创建了一个控制所有memory对象的Mnemosyne,它自动与远程Mnemosyne保持同步,如果任何一个远程Mnemosynes得到或失去一个Memory对象时,都可以使它保持最新的状态。
  要通过Mnemosyne管理HTTP对话,servlet需要创建HttpSession的实例(从HttpServletRequest中使用getSession()),在实现Memory对象的类中封装对话,并调用Mnemosyne对象的write()方法把封装类写到一个Mnemosyne中。
  通过调用write()方法,封装着对话的Memory对象沿着网络传送给Mnemosyne,并通知远程机器。当对象被写到Mnemosyne时,WriteRemoteEvent被发送给在Mnemosyne上注册的所有WriteRemoteEventListeners,这样,所有其他的Mnemosynes就能将新的对象作为Mnemosynes添加到它们的对话信息存贮库中。
  要对存贮的对话进行查询,servlet调用read()方法查找包含对话的Memory对象,如果Mnemosyne找到了要查找的对象,则该对象通过RMI返回到servlet服务器。
  最后,要删除对话,servlet就会调用Mnemosyne的take()方法,Mnemosyne将象有read事件发生那样退还Memory对象,同时从其存贮对象库中删除该Memory对象。同时,向其所有TakeRemoteEventListeners发送TakeRemoteEvent事件,通知所有的远程Mnemosynes该Memory对象已经被删除了。
  建立对话服务器
  上面我们已经讨论了如何在多服务器上维护对话存贮库,下面我们将讨论如何建立对话服务器。在初始化过程中,对话服务器完成下列任务:
  ━━创建本地Mnemosyne对象。
  ━━把本地Mnemosyne绑定到RMI。
  ━━把本地Mnemosyne与其他的远程Mnemosyne进行同步。

时间: 2024-09-08 17:51:47

分布式对话服务器的管理(3)的相关文章

分布式对话服务器的管理

摘要: 通过使用JDK 1.3中引入的RMI和Proxy API,本篇文章讨论了一种允许一台或多台servlet服务器在一台或多台对话服务器上维护对话信息的技术,采用这种技术后,单一点故障就不会再出现了. 如果系统中有一台或多台servlet服务器,对话信息只存在于运行着JVM的一台servlet服务器上,而不会被传输给其他servlet服务器.如果该servlet服务器当机或因为维护而被关机,任何保存在对话中的信息都会丢失.如果一个系统中有多台servlet服务器,一个带有对话的用户需要访问对

分布式对话服务器的管理(5)

远程访问Mnemosyne 下面我们来讨论在servlet服务器上访问远程Mnemosyne的方法.要在无需特定服务器在线的情况下加载一个包含对话信息的Mnemosyne,需要创建一个FailoverHandler的实例,FailoverHandler利用JDK 1.3中的Proxy API处理对话服务器当机的问题.FailoverHandler把一个代表访问远程对话服务器的RMI URL的字符串数组作为参数,然后,从Proxy类中获取Mnemosyne实例.下面的SessionManager类

ftp服务器-毕设求大神指点!!题目是基于SaaS模式的分布式FTP服务器技术研究

问题描述 毕设求大神指点!!题目是基于SaaS模式的分布式FTP服务器技术研究 内容是: 目前,云计算正在各领域得到越来越多的应用,出现了多种云计算环境,掌握云计算的概念,熟悉相关云计算平台上的软件开发方法,对提高学生综合运用所学知识解决实际问题具有十分重要的现实意义.作为云计算平台之一的百度云,已得到了广泛应用, 本课题在理解FTP服务器模式的前提下,在saas环境下建立分布式的ftp服务,用户可通过ftp客户端传送数据. 该课题具有以下要求: 1. 了解云计算的基本原理,掌握基于saas的开

关于服务器密码管理的问题

问题描述 关于服务器密码管理的问题 公司现在有一台服务器,里面装有很重要的资料.对于这服务器的管理,公司要求必须两个人同时在场,一个人掌握一半的密码,这样的做法很麻烦也很费事儿,大家有没有什么更好的方法解决这个问题呢?有没有什么产品,可以每次生成一个KEY,输入进去就可以登录了之类的呢? 解决方案 如果是每次生成密码有第三人在的话.可以先设定密码后用MD5加密.每人一半秘钥.这样俩人就不知道对方的秘钥以及自己的那一半是啥.需要的时候.俩人将各自的秘钥组合一下.直接读取出.

Windows 2000 Web和FTP服务器的管理

Web和FTP服务器创建好之后,还需要进行适当的管理才能使用户的信息安全有效的被其他访问者访问.Web和FTP服务器的管理基本相同,包括一些常规管理和安全管理,下面对其中的七个主要方面进行介绍. 启用过期内容 启用过期内容就是指通过设置来保证自己的站点的过期信息不被发布出去.当用户的Web和FTP站点上的信息有很强的时效性时,进行过期内容设置是非常必要的,这不但有利于净化用户的Web和FTP站点,而且有利于访问者进行信息查找.在启用过期内容时,用户可直接为整个站点设置,也可为某个目录设置.下面简

DHCP服务器维护管理技巧

有关DHCP服务器维护管理的技巧,相信各位网络管理人员多数已经耳熟能详了.不过,在不同的管理运行环境下,我们对DHCP服务器的管理要求也有所不同,这就要求我们必须善于总结,及时挖掘出新环境下的管理维护"绝招",才能确保DHCP服务器始终高效运行!这不,本文下面总结出来的DHCP服务器维护新技巧,相信会给各位带来耳目一新的感觉! 巧妙给DHCP服务器"搬家" 服务器进行硬件升级是不可避免的事情,每次进行升级操作时,网络管理人员往往需要花费大量的时间去重新配置DHCP服

⑫云上场景:筋斗云,基于分布式云服务器的深度挖掘

筋斗云呼叫系统是为中小型呼叫中心专门设计的,现服务上海.安徽.山东的呼叫中心客户,为呼叫中心行业降低了资金和技术门槛,同时也为客户提供高质量的呼叫中心服务. 目前每日通过筋斗云呼叫系统产生通话200万个,通话录音200万条.同时IP电话对网络要求特别高,稍有延迟就会出现卡顿的状态.早期,筋斗云采用自建mysql服务器,不仅出现几次漏账单情况,同时2000路以上电话的通话数据库的性能和安全也成为其继续发展的瓶颈. 阿里云服务的技术输出使得筋斗云解决了互联互通.数据库.存储.服务器维护等诸多问题.采

灵活安全 力登推出全新服务器远程管理设备

近日美国力登公司推出了新一代服务器 远程管理设备-- Dominion KX2-101,该产品可以提供灵活管理服务器及简化服务器机架布线的安全远程管理解决方案,利用该产品,企业管理者可以从世界任何地方都安全.畅通地访问自己服务器的单一端口.KVM-over-IP 远程管理设备.美国力登针对服务器远程管理推出的这款低成本.小体积的设备仅有手掌大小,它的大小和新功能使管理数据中心.测试实验室和分支机构更具多样性.据报道, 新的产品解决方案可以提供与美国力登的多端口 Dominion KX II解决方

服务器虚拟化管理软件需要购买吗?

很多厂商都提供了服务器虚拟化管理软件,管理员一定对这类软件是否适合其组织充满疑问.在决定是否要购买服务器虚拟化管理软件时有七个问题需要考虑. 1.服务器虚拟化部署规模有多大? 需要考虑的第一个问题是虚拟基础设施的规模.诸如VMware ESXi以及微软Hyper-V这样的Hypervisor都自带内置的管理工具.这类工具通常能够处理基础性的日常工作任务,比如创建.修改.删除虚拟机.然而内置的管理工具往往不适合更大规模的虚拟化部署环境. 就微软的Hyper-V而言,内置的管理工具Hyper-V M