分布式对话服务器的管理

摘要:

通过使用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界面管理分布式事务,使得系统可以中止或提交一个事务。

时间: 2024-11-01 07:35:02

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

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

当添加或删除一个Memory对象时,经过同步的本地Mnemosyne对象需要对所有的Mnemosyne进行更新,可以通过notify()方法来完成这一任务.无论是发生write或take事件,Mnemosyne都会针对发生的事件调用适当的监听者的notify()方法.在synchronize()方法中,我们把本地Mnemosyne注册为所有远程Mnemosyne的take和write事件的监听者,一旦远程Mnemosyne上有take和write事件发生,就会调用本地 Mnemosyne的not

分布式对话服务器的管理(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