陈应权
摘 要:SOAP(SimpleObjectAccessProtocol,简单对象访问协议)主要是从信息服务角度提升性能和功能水平,通过分散和数据接口交换信息服务处理,可以保证信息服务符合资源定位的需求,提高客户端和服务端信息服务能力。保证各项信息交换服务符合协议控制的要求。
关键词:SOAP;信息服务;XML
中图分类号:TP393
SOAP架构的底层是传送协议,如HTTP和SMTP。采用和传统客户机/服务器模式的集中式共享不同的架构。SOAP模式在网络中每个节点都是“对等”。这些数量巨大的节点共同构建了一个网络环境(重叠网、网中网、覆盖网),每个节点都能迅速查询路由表,访问任何一个节点,同时任何一个节点都能访问此节点,也就是每个节点同时充当服务器和客户端的角色。F载资源时,可以从多个节点并行下载数据,不会有C/S结构的服务器端的瓶颈.而且节点越多下载资源的速度反而越快。
1 面向SOAP的信息服务架构设计
SOAP技术的一个核心问题就是资源定位,围绕着资源定位算法诞生2种主要的SOAP架构,称为结构化SOAP和非结构化SOAP架构。
1.1 非结构化SOAP
非结构化SOAP是指其中一台计算机充当中心控制,负责响应所有接入计算机的资源定位请求,所有的资源位置信息都在这个中央服务器上,这时的SOAP并不是一个严格对等的结构。资源的分享需要通过中央服务器“路由”。但这有个缺陷就是当接入的计算机越多中心服务器的压力就越犬,最大好处就是简单,以及资源存储的位置和网络结构无关,这也是这种模式被称为“非结构”的原因。这种结构是典型的资源分享方式。
1.2 结构化SOAP
SOAP结构化体系就是所有接入的计算机都处于对等的地位,也称为纯SOAP。相对于非结构的SOAP来说是没有中心控制点。结构化SOAP有着复杂的资源定位算法,资源的定位和一个具体的Hash算法密切相关,各种不同的结构化SOAP其区别主要在于Hash算法不同,最为典型的Hash算法为Chord这类算法也叫DHT(DistributedHashTable),该算法广泛应用于分布资源。
2 Web网络结构设计
对于结构化SOAP只能通过Hash码查找资源,不支持模糊查询,每次查找联动多个Node,查询效率不如非结构SOAP高。网络波动对结构SOAP的影响比较大,Node的加入和退出对覆盖网路结构有改变,不能保证数据的安全。退出的Node有可能带走部分数据,加入Node可能需要移动数据。还有这2种SOAP体系不太适合存储大尺寸数据文件,也没有统一的存储空间分配调度和管理。结构化SOAP没有负载分担。
虽然SOAP有其局限性,但相对于传统C/S模式,SOAP思想的出现为软件的开发带来新的思路,SOAP最初主要用来在Internet上构建数据分享平台,我们也可以利用其基本的构建分享平台思想,构建新的存储平台。本文就是在某种意义上充分借鉴了非结构化SOAP的思想的基础上,构建的一个数据接口交换文件系统。
不同组的存储服务器之间不会相互通信,同组内的存储服务器之间会相互连接进行文件同步。存储服务器采用binlog文件记录文件上传、删除等更新操作。binlog中只记录文件名,不记录文件内容。
文件同步只在同组内的存储服务器之间进行,采用push方式,即源头服务器同步给目标服务器。只有源头数据才需要同步,备份数据并不需要再次同步,否则就构成环路了。有个例外,就是新增加一台存储服务器时,由已有的一台存储服务器将已有的所有数据(包括源头数据和备份数据)同步给该新增服务器。
存储服务器中由专门的线程根据binlog进行文件同步。为了最大程度地避免相互影响以及出于系统简洁性考虑,存储服务器对组内除自己以外的每台服务器都会启动一个线程来进行文件同步。
3 可扩展标识语言select设计
select最早于1983年出现在4.2BSD中,它通过一个select()系统调用来监视多个文件描述符的数组,当select()返回后,该数组中就绪的文件描述符便会被内核修改标志位,使得进程可以获得这些文件描述符从而进行后续的读写操作。
select目前几乎在所有的平台上支持,其良好跨平台支持也是它的一个优点,事实上从现在看来,这也是它所剩不多的优点之一。select的一个缺点在于单个进程能够监视的文件描述符的数量存在最大限制,在Linux上一般为1024,不过可以通过修改宏定义甚至重新编译内核的方式提升这一限制。
另外,select()所维护的存储大量文件描述符的数据结构,随着文件描述符数量的增大,其复制的开销也线性增长。同时,由于网络响应时间的延迟使得大量TCP连接处于非活跃状态,但调用select()会对所有socket进行一次线性扫描,所以这也浪费了一定的开销。
3.1 信息服务文件访问模型设计优化
一个系统的设计存在着很多的约束条件,系统运行的环境便是其中重要的约束条件之一。本系统主要是为广大中、小型的电商网站考虑而设计,因此并不是运行在商用的、高性能的服务器上,而是运行于普通机器所组成的集群上以便于节省成本以及便于扩展。又因为本系统被设计为主要用作诸如图片服务器等场合,因此虽然对大文件存储同样支持的非常好,但更加主要的还是用于存储数量巨大的小型文件,并对此做出了特别的优化。本系统主要应用的是“一次写入多次取出”的文件访问模型。一个文件一旦经上传、写入后,就不需要改变了。
另外,众所周知大多数网站都需要存储用户上传的文件,如图片、视频、电子文档等。出于降低带宽和存储成本的考虑,网站通常都会限制用户上传的文件大小,例如图片文件不能超过5兆字节、视频文件不能超过100兆字节等。本系统不对文件进行分块存储,与支持文件分块存储的其它数据接口交换文件系统相比,更加简洁高效,并且完全能满足绝大多数互联网应用的实际需要。
3.2 系统的技术方案
数据接口交换系统设计中有一个重要的目标,是以这样的方式构建系统:它可以从部分失效中自动恢复,而且不会严重的影响整体性能。特别是,当故障发生时,数据接口交换系统应该在进行恢复的同时继续以可接受的方式进行操作,也就是说,它应该能容忍错误,在发生错误时某种程度上可以继续操作。
由于本数据接口交换文件系统运行在由多台普通的机器所组成的集群上[15],而普通机器一般相对商用高性能服务器来说更容易发生故障一些,比如操作系统存在的缺陷,人为的非法操作造成的错误或者磁盘、内存、网络、意外断电造成的问题等等。正因为如此,某些机器在某些时间可能是无法工作的,而一些机器发生故障后则可能不能恢复。因此,系统的设计必须满足可用性、可靠性、安全性以及可维护性。
4 总结
客户端和存储服务器主动连接跟踪服务器。存储服务器主动向跟踪服务器报告其状态信息,包括磁盘剩余空间、文件同步状况、文件上传下载次数等统计信息。存储服务器会连接集群中所有的跟踪服务器,向他们报告自己的状态。存储服务器启动一个单独的线程来完成对一台跟踪服务器的连接和定时报告。需要说明的是,一个组包含的存储服务器不是通过配置文件设定的,而是通过跟踪服务器获取到的。
参考文献:
[1]孙健.单点登录技术在数字化校园网中的应用[J].科技信息,2010(30).
[2]胡立春,武友新,张烨.SOAP环境下的统一用户管理系统的研究与实现[J].计算机工程与设计,2007(04).
[3]杜淑琴.基于轻量目录访问协议和SOAP的统一认证框架设计[J].现代计算机,2006(02).
[4]薛宏智,王俊,张书杰.基于SOAP的企业访问控制系统设计与实现[J].计算机与信息技术,2006(Z1).
[5]赵保翠,刘岗.基于SOAP的统一用户管理系统的设计和实现[J].微电子学与计算机,2005(11).