分层架构(精选8篇)
分层架构 篇1
一、概述
网络的最大价值, 在于信息化的应用。由于企业信息化与企业生产经营已经逐渐成为一个共同的载体, 企业对网络安全保护的要求日益提高。当前利用结构化的观点和方法来看待企业网络安全系统是主流思想, 通过各层的弱点及攻击的可能性对各层进行分析及防护, 对可能发生的攻击事件或漏洞做到事前防护, 合理地利用各种硬件设备, 通过完善的管理手段来建设一个稳定、安全、可靠的企业信息网络平台。
二、企业网络安全架构
企业网络管理的核心是网络应用, 如何架构一个安全、可靠的网络环境是网络管理的一大课题。在网络安全隐患无处不在的今天, 安全需求格外重要。当企业在架构网络前, 应当全面的分析相应网络中可能存在的安全隐患, 以及网络应用中必要的安全需求。
1、网络安全威胁
从目前的企业网络使用情况及日后的应用发展来看, 主要存在以下几种安全威胁: (1) 、病毒感染。病毒感染是危害面最广的安全隐患, 威胁整体网络运行。组建企业网络时选择部署整个网络系统的病毒防御系统。 (2) 、黑客入侵和攻击。黑客攻击的危害性很大, 入侵途径和攻击方式多样化, 难以预防。目前防御措施主要是通过部署防火墙系统、入侵检测系统、网络隔离技术等防御黑客攻击, 还应辅以系统漏洞和补丁升级系统。 (3) 、非法访问。非法用户访问企业网络时可能携带、放置病毒或其它恶意程序, 也可能删除服务器系统文件和数据以及窃取企业机密信息等。防御措施除了防火墙系统、入侵检测系统和网络隔离技术外, 还应注意在网络管理中引入安全机制, 如对关键部门划分子网隔离保护, 对重要的数据和文件进行加密以及对于需要进行远程访问的用户, 注意权限配置工作。 (4) 、数据损坏或丢失。网络数据对于企业来说是非常重要的。数据的备份是一切安全措施中最彻底有效, 也是最后一项保护措施。
2、网络架构概念
企业网络安全是系统结构本身的安全, 应利用结构化的观点和方法来看待企业安全系统。全方位的、整体的信息安全防范体系应是分层次的, 不同层次反映了不同的安全问题。根据搭建网络的应用现状和结构, 从物理层安全、系统层安全、网络层安全、应用层安全及安全管理五个方面来考虑网络的安全架构。
三、学院网络安全系统分析
结合本学院网络建设的实际情况, 在此对分层架构安全体系进行具体阐述并对网络层的安全进行重点研究。
1、物理层安全
物理层的安全主要就是对设备和链路及其物理环境的安全保护。
这里着重考虑学院信息中心的建设。信息中心作为学院的数据中心, 承载所有的应用服务器的运行, 所以信息中心的安全是最基础的安全保障。信息中心的建设除了要保证温度、湿度、防雷、防火以及不间断供电以外, 还应注重信息中心的综合布线布局, 做好整体规划及标记, 力争布线的简洁、有序, 便于日后维护及故障排查。
2、系统层安全
主要包括操作系统安全和应用系统安全。系统层的安全, 主要考虑操作系统的漏洞补丁。利用内网架设的补丁升级中心 (wsus) , 对于微软发布的系统补丁, 进行补丁下载和安装, 提高操作系统的安全性, 有效降低系统的安全风险。我们还可以采用绿盟的极光远程安全评估系统扫描出整个网络中所有设备上的漏洞, 并且与wsus服务联动, 仅在绿盟的设备上就可以对这些漏洞进行修补。对于应用系统服务器来说, 除了加强登陆的身份认证权限, 还应该尽量开放最少的端口, 保证服务器的正常使用。
3、网络层安全
网络层安全是我们考虑最多, 也是防范要求最多的一个层面。这里从以下几个方面进行阐述:
(1) 确定安全域的划分
安全域的划分就是制定安全边界。根据资源位置进行划分的目标是将同一网络安全等级的资源, 根据对学院的重要性、面临的外来攻击风险、内在的运行风险不同, 划分成多个网络安全区域。划分的原则是将同一网络安全层次内客户端之间的连接控制在相同的安全域内, 尽量消除不同安全层次之间的联系, 实施相互逻辑或物理隔离。
从目前情况分析, 学院内部的财务处和人事处因业务及数据的保密性和敏感度, 需要阻止任何的外部访问。所以这两个位置与网络中其它处室在逻辑上应是隔离状态。这里主要使用交换机利用vlan对各个不同的功能区域进行划分。除了保证物理位置及逻辑位置的隔离以外, 划分vlan的另一个好处就是减小广播包的数量, 控制网络流量, 避免广播风暴的产生。在实际工作中曾经遇到财务处网段被其他网段访问的安全问题。此问题涉及财务的机密文件和重要报表数据, 所以问题较严重。在这之前财务处是被独立划分为一个网段, 与其它网段用ACL列表进行隔离。但是在客户端统一纳入学院域之后, 之前做的ACL列表不起任何作用。经分析, 我们发现在域内pc之间的通讯协议发生了变化, 于是将所有的TCP、UDP协议进行拦截, 只对部分可以互访的终端服务器进行允许控制。对于需要外网进行访问的服务器, 比如web服务器、ftp服务器、邮件服务器等需要把它们分离出来, 不需要进入内网进行保护。其它服务器则放置于内网保护区域内, 独立划分为一个vlan。
(2) 攻击阻断
这里主要采用防火墙、入侵防护、防病毒系统进行外部阻断。
首先, 为了保护内部网络, 在Internet出口部署防火墙, 将内部网络与因特网隔离, 只在内部网与外部网之间设立唯一的通道, 将攻击危险阻断在外, 并限制网络互访从而保护企业内部网络。另外, 利用防火墙的端口, 设置LAN区、SSN区以及外网区。LAN区是不对外开放区, 所有的客户端及需要保护的服务器放置在这个区域里。SSN区域里放置需要外部访问的服务器, 如web服务器、ftp服务器及邮件服务器。
由于防火墙处于网关的位置, 不可能对进出攻击做出太多判断, 否则会严重影响网络性能。所以这里需要部署入侵保护系统 (Ips) 作为防火墙的有力补充。将Ips串联在主干线路中, 是网络安全的第二道屏障, 可构成完整的网络安全解决方案。除此之外, 我们还可以进行恰当的设置, 使防火墙、Ips联动起来。当Ips检测到入侵和攻击后, 会通过联动接口部件, 将入侵特征和事件报告给防火墙, 防火墙接到入侵信息后会动态地修改自己的安全访问控制策略, 在下一次防火墙不需要Ips也可以将入侵流量屏蔽掉。这样防火墙和Ips联动起来后, 防火墙的访问控制规则和Ips的规则链会随着网络安全状况的变化而不断调整, 这样不仅能提高安全性, 而且不必要的访问控制规则和规则链会被及时地删除掉, 对网络性能造成的影响也会降到最低。
防病毒系统应该是网络安全的第三道屏障。在网络技术日新月异的今天, 即使网络部署了防火墙和入侵保护系统后, 仍然会存在漏洞。学院网络应该建立立体防毒体系, 就是指在网络的边界处部署硬件防毒墙, 然后再在整个网络内部部署网络版杀毒软件。这样防病毒系统不仅部署在每一个客户端上, 能够对源于内部网络的攻击或者是防火墙无法隔离的攻击行为、恶意代码进行阻拦, 而且防病毒系统也部署在服务器上和网络边界处。这样从边界到内部, 整个网络进行立体地防护, 极大地提高了全网的防毒能力, 是防火墙及入侵保护系统的有力补充。
(3) 远程接入控制
对于学院的三个分院以及外出办公人员, 需要通过Internet访问学院本部, 这里考虑vpn (虚拟私有网络) 技术来实现。现有vpn技术有Ipsec vpn以及ssl vpn。从学院目前网络使用情况并考虑日后发展状况, 将以Ipsec vpn作为点对点连结, 再配以ssl vpn的远程访问方案。在交通分院、建设分院、卫生分院三地之间架设防火墙, 利用防火墙的网关对网关的Ipsec vpn满足三地办公的需要, 再选购ssl vpn来满足移动办公人员访问学院内网高安全性及可靠性的需求。我们目前一直使用天融信防火墙自带的ipsec vpn, 除了因为网络问题带来的故障以外, 可以说vpn功能基本达到了我们的需求。但是对于它的移动vpn, 因为客户端的产品型号、操作系统及应用软件的差异, 有必要另选用一套ssl vpn满足移动办公访问学院内网的需求。
(4) 身份认证
对于不同的应用, 访问者的操作权限应该通过身份认证系统来实现。身份认证有利于保证被访问资源的安全, 也是对远程接入安全控制的有益补充。
4、应用层安全
主要包括网页防篡改、数据库的漏洞修补、数据的完整性检验以及数据的备份和恢复。这里将注意力大部分集中在数据库的安全上。主要的工作应该是登陆的身份验证管理、数据库的使用权限管理和数据库中对象的使用权限管理。对于网页防篡改可以在web服务器前部署web应用防火墙。对于数据库来说, 为了提高用户访问数据库的速度和数据库中数据的安全性, 我们可以采取磁盘阵列来代替普通的存储设备, 极大地扩展了存储容量, 在性能和安全性上也有了大幅度的提高。考虑到以后我们的应用不断增多, 数据量不断加大, 为了保证性能和安全性, 我们可以着手建设SAN或NAS, 甚至可以做异地容灾备份, 即使发生自然灾害, 我们也可以在最短的时间内恢复我们的数据和我们的应用。
5、网络安全管理体系的建立
实现网络安全的过程是复杂的。这个复杂的过程需要严格有效的管理才能保证整个过程的有效性, 才能保证安全控制措施有效地发挥其效能, 从而确保实现预期的安全目标。因此, 建立有组织的安全管理体系是网络安全的核心。其过程如下: (1) 、安全需求分析。明确目前及未来几年的安全需求, 即我们需要建设什么样的网络, 网络状况如何, 未来发展如何等等, 有针对性地构建适用的安全体系结构, 从而有效地保证网络系统的安全; (2) 、制定安全策略。根据不同部门的应用及安全需求, 分别制定部门的计算机网络安全策略, 做到资源最优化; (3) 、外部支持。通过专业的安全服务机构的支持, 将使网络安全体系更加完善, 并可以得到更新的安全资讯, 为计算机网络安全提供预警。定期进行巡检, 保证所有网络设备和安全系统的运转正常, 提早发现隐患, 将网络故障对学院整体的影响降至最低。
6、计算机网络安全管理
安全管理是计算机网络安全的重要环节之一, 也是计算机网络安全体系结构的基础性组成部分。通过恰当的管理活动, 规范组织的各项业务活动, 使网络有序地运行, 这是获取安全的一个重要条件。安全管理是构建安全架构的核心。网络安全所要达到的目的是保证网络应用在需要时可以被随时使用。在安全方面, 我们倡导“三分技术, 七分管理”, 指的是通过管理手段和技术手段来实现更高的安全性。信息安全管理包括安全技术和设备的管理、安全管理制度、部门与人员的组织规则等。管理措施的另外一个方面, 就是加强网络安全宣传, 提高学院职工对网络安全的认识和保护网络安全的自觉性, 从每个网络用户开始进行“主动防护”, 防止“病从口入”。
四、总结
任何一种单一的技术或产品都无法满足我们对网络安全的要求, 只有将技术和管理有机的结合起来, 合理分析需求, 按照体系架构进行安全方案的部署, 从控制网络安全建设、运行和维护的全过程入手, 才能提高整个网络的安全水平。
摘要:随着网络的普及化, 企业信息化建设对网络安全的要求日益加剧。本文讨论了分层架构企业网络安全的概念, 提出结构化的网络安全系统解决方案, 并结合职业学院的网络安全实例进行具体阐述。
关键词:网络安全,分层架构,安全管理
参考文献
[1]李卫.计算机网络安全与管理[M].北京:清华大学出版社, 2004.
[2]袁德明, 乔月圆.计算机IT技术[M].北京:电子工业出版社, 2007.
[3]葛彦强, 汪向征.计算机网络安全实用技术[M].中国水利水电出版社, 2010.
分层架构 篇2
关键词:企业总机;分层架构;系统设计;实现
近年来,随着通信在企业发展中的地位越来越重要,在企业通信发展的过程中,现代企业必须要通过综合性的工具进行交流,从而能够有效提升企业的价值。为了能有效提升价值,企业必须要不断提高其信息化水平,在信息服务领域中,企业的信息服务应该要从生产、管理、财务、运作等方面发展,从而让企业有效地摆脱地域或时间上的控制,并有效地提高企业信息沟通效率,促进企业与社会之间的发展与交流。在这种情况下,传统的PBX系统已经不能满足日益复杂的社会发展和企业发展需求,企业也应该不断提升管理和信息服务系统。
企业总机系统融合了语言导航、短信群发、电话会议、网络传真、日程管理等多种信息咨询和通信服务,并支持手机、互联网、客户端等方面进行介入,从而满足企业个性化发展的需求。下文主要对企业总系统设计与实践进行研究。
一、结构系统分析
企业总机系统结构主要采用分层架构模型,其中主要将业务进行介入和控制,甚至能将业务进行分离,从而进一步实现系统内部的耦合,以应对商务变化发展的需求。整个系统层次主要分成接入层、控制层以及辅助层。通过不同的层次能够实现系统之间的承载。各层次之间的方式可以互相对立,其结构图如下图所示:
从图中可以显示出,接入层当中负责语言输入、传真业务等方面的为SoftACD系统,短信、邮件等非实时业务系统的接入主要由多媒体网完成;控制层当中则可以对所有呼叫事件进行统一排队和分析,并对资源进行调度和管理,其中IVR负责业务处理,文本语音主要通过TTS进行转换,ASR主要负责自动语言识别、MS的作用就在于对会议资源进行收集。此外,通过人工进行处理,能够有效地对各项业务进行编辑,如通讯业务、通讯内容等,并可以通过DB/NAS进行数据内容的备份。
此外,关于多媒体网,目前还可以通过NGCC技术实现软件技术交换。主要包括IP技术、分布式处理技术、多媒體统一接入技术等。这些技术能够满足3G网络的技术要求,从而能够方便呼叫中心系统实现承载与控制的核心要求,以太网结构为基础,能够支持分布式网络布局,并实现语音和数据上的处理。
NGCC系统的基本特征主要包括业务的控制和分离以及业务的承载与分离。其中业务的控制可以通过纯软件进行,并能有效提高公司效率。承载分离则主要是呼叫控制和传送层之间进行开放,并将控制各自的技术,控制技术和承载技术独立发展,互不影响。
此外,由于目前网络中存在各种各样的客户端,不同的客户端有着不同的接入方式,使用不同的接入网和承载网,有利于用户对总机系统的使用。
二、企业总机系统的总体架构
企业总机系统是目前全新的通讯业务平台,该系统能够有效地完善公共管理功能以及具备标准的接口功能,主要分析如下:
1.通讯业务功能
通讯业务功能是整个系统的核心部分之一,所有的业务都需要通过访问和处理,从而能有效地满足综合信息业务需求,下文进行详细分析:
(1)自动外呼系统。该系统能够帮助用户在网上进行通讯录搜索,当搜索到指定人员之后,可以直接进行拨号,无需输入密码,方便快捷。
(2)短信群发。该系统可以达到信息群发效果。用户需要进行信息上的群发,如加入问候、会议通知、面试通知等,进行单条信息发送非常浪费时间。有了群发系统,用户等能在电脑上或手机上实现群发,并设置定时发送。
(3)电话会议。用户可以在网上进行电话会议。在公司中通过总机号码举行会议或加入会议。此外,会议管理人员或分级人员也可以通过登录网站对会议进行监控,安排合适的会议资源,从而对会议进行有效管理。
2.座席功能
关于座席功能主要包括以下几个方面:
(1)呼叫录音。用户在进行通话的过程中,系统可以通过特定的分选机对通话内容进行录音。企业管理人员还可以通过管理录音,对录音进行查看或下载。
(2)语音留言。语音留言主要是对语音进行查询,还可以通过服务器进行呼叫处理,将需要进行语音录音的转到留言服务器当中,并对语音留言服务在数据库中统一进行记录。
(3)会议应用服务。会议功能的应用还可以根据会议的类型配置不同的参加人数。用户可以根据参加人数,调查会议模式,并设定会议时间,在该时间段内,可以对会议的内容进行确认并激活。
3.公共管理功能
企业总机系统能为用户提供丰富的管理功能,其中主要包括以下几点:
(1)数据管理。数据管理主要是系统通过对数据进行添加、删除、查询、备份、恢复等手段,对系统中的各项数据进行管理和维护,在配置数据的过程中,用户也可以对数据进行合法检查。
(2)权限管理。企业用户可以根据系统提供的分级权限进行管理,并保证系统具有高度的安全性。因此企业用户主要包括:一般用户和管理员以及各个级别的用户,电信用户主要是系统的管理人员。
(3)安全管理。用户可以通过设置防火墙,防止不法分子进行侵入。因此,系统中应该对所有的服务器设置相应的防火墙,如门户服务器,在防火墙上开设对应的端口,对于有需要访问的相关设备,应该建立DMZ(非军事区),并对其他设备进行隔离。
三、以分层架构为基础的企业总机系统设计发展前景
以分层架构为基础的企业总机系统具有适应性强,设计和定制灵活的特点,并能有效地提高企业的运作效率。
(1)适应性强。对于很多企业来讲,都需要使用语音导航、呼叫转入等,对于一些商务企业来讲更是如此。因此,可以对企业的名片、电话会议、网络传真等方面进行应用,用户也可以进行外呼、群发信息等,因此具有较强的适应性。
(2)设计和定制灵活。对不同的企业来讲,个性化的语音流程非常重要,它可以设计企业的工作时间段,并进行调整,也能够实现语音播报、语音提醒等方面工作,设计和定制方面都具有极大的灵活性。
随着社会的发展,企业对信息通讯的要求越来越高。通过对企业总机系统进行设计,能够有效地为企业定制个性化服务,符合业务需求。利用分层架构为基础,对企业总机系统进行设计,能使企业总机系统日益完善,并丰富其实用性。
参考文献:
[1]邓星航.基于NGCC技术的企业总机系统设计与实现[J].福建电脑,2011,3(05).
[2]江承兴.基于分层架构的企业总机系统设计与实现[J].软件导刊,2011,10(07).
(作者单位 河北师范大学后勤集团)
.NET平台的分层架构设计研究 篇3
“在传统的系统设计中,通常对数据库的访问、业务逻辑及可视元素等代码混编,这样不但代码风格不美观,所写的程序更是可读性差,耦合度高,不容易维护,灵活性差,不容易扩展,更谈不上复用。为了解决这个问题,有人提出了N层架构思想,即将各个功能块明确分开,放置在独立的层中,各层之间通过协作来完成整体功能。所以,分层架构可以说是以牺牲系统性能换取可维护性的手段。
2 分层架构设计的关键性原则
2.1 分层架构逐渐调用原则及单向调用原则
约定将N层架构的各层依次编号为1、2、…、K、…、N-1、N,其中层的编号越大,则越处在上层。那么,架构设计应该满足以下两个原则:
(1)第K(1<K<=N)层只准依赖第K-1层,而不可依赖其他底层。(2)如果P层依赖Q层,则P的编号一定大于Q。
其中第一个原则,保证了依赖的逐层性,及整个架构的依赖是逐层向下的,而不能跨层依赖。第一个原则,则保证了依赖的单向性,及只能上层依赖底层,而不能底层反过来依赖上层[1]。
2.2 单一职责原则
就一个类而言,应该仅有一个引起它变化的原因。软件设计工作的关键在于发现职责并把那些职责相互分离。如果设计者能够想到多于一个的动机去改变一个类,那么这个类就具有多于一个的职责,一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力。这种耦合会导致脆弱的设计,当变化发生是,设计会遭受到意想不到的破坏[2]。
2.3 开放-封闭原则
开放-封闭原则,是说软件实体(类、模块、函数等等)应该可以扩展(Open for extension),但是不可修改(Closed for modification)[3]。开放-封闭原则是面向对象设计的核心所在。遵循这个原则可以带来面向对象技术所声称的巨大好处,也就是可维护、可扩展、可复用、灵活性好。具体到N层架构中,可以描述为:当K-1层有了一个新的具体实现时,它应该可以在不修改K层的情况下,与K层无缝连接,顺利交互。
2.4 依赖倒转原则
依赖倒转原则:A.高层模块不应该依赖底层模块。两个都应该依赖抽象;B.抽象不应该依赖细节,细节应该依赖抽象[4]。如果不管高层模块还是底层模块都依赖于抽象,具体一点就是借口或抽象类,只要接口是稳定的,那么任何一个的更改都不用担心其他收到影响,这就使得无论高层模块还是底层模块都可以很容易地被复用。
3 图书馆管理系统的架构设计
3.1 架构设计的选择
3.1.1 表示层设计及对应框架的选择原则
在系统架构设计的框架选择方向,比较稳妥的方法是选择主流的、已得到证明了的Web应用框架,而不是开发者自行设计和开发新的框架。在本项目中,选择比较成熟并广为人知的Apache Struts框架。
3.1.2 业务逻辑层中的具体技术实现
本项目系统是一个典型的不需要远程访问功能支持的普通Web应用系统,因此选用普通的Java Bean组件技术,并充分利用Spring框架中Io C(Inversion of Control)和AOP(Aspect-Oriented Programming)的特性,将是实现业务逻辑层的更好选择。
3.1.3 持久层设计
由于需要利用关系型数据库实现项目数据的持久化,但在目前的应用系统中可以选择以下形式的持久层技术来加以实现。
(1)标准的JDBC技术。这是最为灵活和通用的实现方法和技术,然而低级、复杂的JDBC API难以使用,而且质量差的JDBC代码很难运转良好和满足企业级项目数据访问的要求。
(2)EJB的实体Bean(EJB Entity Beans)。J2EE平台中的容器管理持久化技术(Container-Managed Persistence,CMP)形式的实体组件(Entity Bean)是一种分离数据访问代码和实现O/R Mapping功能的重量级解决方案,它是以应用服务器为中心的方法,并受到EJB容器的约束。
(3)轻量级的O/R Mapping框架。一个对象关系映射(O/R Mapping)框架采用以面向对象为中心的方法实现应用系统中数据的持久化,一个以对象为中心的应用是易于开发并具有高度的可移植性的。本项目选用功能比较强大的Hibernate O/R Mapping框架,主要是基于Hibernate框架的技术成熟性并广为人知,这将有利于组建满足项目技术要求的开发团队。
3.2 系统的层次划分
因此,本系统的整体架构设计由DWR+Struts+Spring+Hibernate框架构成,同时整个系统被分为5层———表示层、处理层、服务层、数据访问层和数据层。
3.2.1 表示层设计
经过与客户的交流后,对客户的需求进行分析,然后将程序的使用者划分成不同的类,为不同类别的用户提供相应的Web服务的调用接口界面。Web服务的调用对用户来说是完全透明的,用户只需根据界面提供的接口和功能说明提供相应的参数即可,Web服务执行结束后,结果将自动返回。由JSP,HTML等技术实现,通过浏览器向用户显示,并通过对服务层各服务的调用来实现其相应功能。
3.2.2 请求处理层设计
处理层也可以称为业务流程层,关注点主要集中在业务规则的制定、业务流程的实现等与业务需求有关的系统设计,业务逻辑层处于数据访问层与表示层中间,起到了数据交换中承上启下的作用。处理层负责响应用户界面层的请求,通过在服务层中调用数据访问层与数据库进行交互。处理层中的业务流程通过调用一个或者多个Web服务来实现。
3.2.3 服务层设计
服务层是图书馆管理系统中最重要的一层,在这层中将运用底层功能组件来构建系统所需要的不同功能的服务。在服务层中,服务被划分为公有的和私有的服务。公有服务是指那些在系统外部可用的服务,也可能是企业外部的,它们是一些典型的、有业务意义的服务。私有服务没有任何的业务意义,它们的存在是用来支持业务服务的并且对于其他系统来说没有一点可用性。
本系统选取的是ASP.NET MVC,同时为了和系统分层架构相结合,对模型和控制器部分做了相应的逻辑分析,具体如下:
View:Taylor Web项目下View文件夹,视图资源文件夹Content。
Model:转换成业务实体即Taylor Entity,模型的行为被分离到Taylor BLL进行处理。
Controller:Taylor Web项目下Controllers文件夹。
3.2.4 数据访问层和数据层设计
数据访问层中包含了对数据层的数据访问的逻辑,与业务逻辑分开,此层的重复利用的可能性非常大,因为几乎所有的系统都要与数据库进行交互,而且对数据库的操作基本上相同。数据访问层中数据访问逻辑调用相应的Web服务来实现对数据库的操作。数据层中存放了与图书馆管理相关的业务数据和历史数据,这些数据存放在一个或者多个数据库中。数据层对数据库的操作命令完全来自于数据访问层,执行结束后将结果返回到数据访问层。
4 结束语
架构并非一种绝对的解决方案,而是充分整合现有的资源以达到相对的最佳的平衡的解决方案。在系统开发过程中,通过使用多层架构模型,可以规避开发初期出现的大量重复工作,有效降低开发成本。通过开发先行单元,还能够在后续单元的开发过程中使用了其相似的特点复用了先行单元,从而达到优化代码和代码重构的效果。
摘要:随着互联网技术的不断发展,传统的软件设计方法已无法继续满足用户的需求。软件设计逐渐开始将重心转移到系统架构的设计上来,耦合度低且具有良好可维护性及扩展性的系统备受青睐。文章以图书馆管理系统为例,结合分层架构中常用的设计模式对.NET平台上的分层架构进行深入的研究和探讨。
关键词:分层架构,架构设计模型,分布式架构
参考文献
[1]章立民.ASP.NET开发实战范例宝典[M].科学出版社.2010.10.
[2]Chang-Sup Park,Soyeon Park.Efficient execution of composite Web services exchanging intensional data[J].Information Sciences178(.2008)317-339.
[3]Andrew N.K.Chen,Sagnika Sen,Benjamin B.M.Shao.Strategies for effective Web services adoption for dynamic e-businesses[J].Decision Support Systems,(2006)789-809.
分层架构 篇4
随着市场竞争加剧, 大多数中小型企业不再满足用功能单一的传统PBX系统进行内外部沟通, 而是日益需要能够提升企业管理及客服水平的综合信息服务系统, 以增强企业的经营及市场能力。
企业总机系统融合了自动语音导航、点击拨号、短信群发、电话会议、网络传真、漏话提醒、日程管理、座席服务等多种通讯业务, 支持固话、手机、互联网、客户端等多种接入方式, 可适应不同企业个性化、定制化的综合信息服务需求。
1 系统架构
企业总机系统采用分层架构模型, 将业务接入、业务控制以及业务应用进行分离, 实现系统内部松耦合, 以灵活、快速响应业务变化对系统的需求。整个系统层次结构划分为接入层、控制层、应用层以及其他辅助层, 通过各层次系统模块间的承载关系, 实现系统功能。在层次化的体系结构中, 各层之间均采用协议或API封装的方式作为接口, 使得各层相对独立。具体结构如图1。
在图1中, 接入层的SoftACD负责语音、传真等实时业务的接入, 多媒体网关负责短信、邮件等非实时业务的接入;控制层的CTI负责所有呼叫事件的统一排队和路由, 并对系统内所有资源进行统一调度和管理, IVR负责自动业务处理, TTS负责文本语音转换, ASR负责自动语音识别转换, MS负责会议资源, FAX负责传真资源及协议转换, Agent负责人工业务的处理;应用层的AS提供所有的业务逻辑, 包括通讯业务、公共管理、接口管理等, DB/NAS负责数据存储与数据备份。
2 功能结构
企业总机系统提供了多样的通信业务功能、完善的公共管理功能以及标准的接口管理功能, 见图2。
2.1 通讯业务功能
企业总机系统融合了多种通信业务功能, 可满足不同企业个性化的综合信息服务需求。
(1) 自动语音导航。用户拨打企业的电话号码后, 可根据语音提示选择所需服务。企业的管理员则可登陆自助网站进行多级个性化语音菜单、个性化欢迎语、企业名片、企业广告、内外流程差异等相关设置。提示语音支持文本转语音 (TTS) 和语音文件。语音文件支持wav、mp3等格式。企业名片及广告语音文件可由客户自主录制及上传。系统自动鉴权主叫用户是否为企业员工, 并提供差异化的语音流程。
(2) 自动外呼。用户可以在自助网站上查询通讯录, 查询到指定人员后, 直接点击拨号, 无须在话机上手工输入号码;也可预先导入一批联系人号码, 按预置规则及时间要求发起外呼。
(3) 短信群发。用户可在自助服务网站上发送一对一或批量短信, 如节日问候、会议通知等。短信接收方可以是小灵通或手机;支持联系人批量导入。企业管理员可控制员工发送短信的权限;支持文本方式发送、语音方式发送;支持立即发送、定时发送;支持长短信发送;支持发送结果短信提醒等功能。
(4) 电话会议。用户可在自助网站上预订会议, 也可拨打总机号码在语音提示下发起或加入会议。一个企业可同时申请多个会议。 (1) 发起会议:企业成员可登陆自助网站发起会议, 也可拨打总机号码发起会议; (2) 加入会议:企业成员可拨打总机号码, 根据语音提示加入会议; (3) 会议监控:会议管理员或分机成员可登陆自助网站监控会场资源、管理会场。
(5) 网络传真。企业员工可网上收发电子传真, 也可用传统传真机拨打总机号码通过鉴权后收发传真。 (1) 在网上收发传真:企业成员登陆企业自助网站后, 将文档上传到服务器, 点击发送传真后即可完成传真发送。支持从通讯录中选择号码作为目标号码发送传真。支持群发、定时发送和立即发送。在发件箱中可查看、下载传真文件以及查看发送结果、时间、页数等情况; (2) 在传统传真机上收发传真:企业成员可在传统传真机上通过拨打总机号码, 在语音菜单提示下给他人发送传真或接收传真;系统自动接收传真并保留在服务器端后, 传真到达后会短信提醒接收方。
(6) 漏话提醒。企业管理员可为员工设置漏话提醒, 当主叫用户拨总机转接该分机时, 若被叫未开机, 则系统将在被叫开机后向其发送漏话短信提醒。
(7) 日程管理。企业管理员可对企业所有或部分员工发布公告, 发送方式支持文本短信、语音推送及网站公告;分机用户可登陆自助网站设置自己的日程安排, 系统按设定的方式、时间进行提醒;企业成员也可对特定的客户信息进行设置, 以便系统定期发送客户关怀 (文本短信或语音短信) 。
(8) 座席服务。主叫用户拨打总机号码后, 可拨0转接人工服务, 系统按预置排队规则自动将话务接续到空闲座席, 由人工座席进行号码查询、话务转接以及代维等其他服务。企业可根据需要设置人工服务为自动语音流程里的某个分键或拨打后直接进入人工服务。
2.2 公共管理功能
企业总机系统提供了丰富的管理功能, 主要包括:数据管理、权限管理、安全管理、环境监控、告警管理、日志管理、话务统计、数据备份等, 具体如下:
(1) 数据管理。系统提供增加、删除、修改、查询、存储、备份、恢复等操作手段, 可对系统运行的各种数据 (如通讯录数据、流程文件、语音文件等) 进行有效的管理和维护;在配置数据时, 可对相关配置数据作合法性检查。
(2) 权限管理。系统提供企业用户权限和电信用户权限的分级管理的双重机制, 来保证系统的高度权限管理的安全性。企业用户分为企业管理员及分机成员, 电信用户分为系统管理员及区域管理员。
(3) 安全管理。过部署防火墙来隔离内外网络、阻止非法访问和入侵。系统的所有服务器统一部署在防火墙之内, 对于外部用户需要访问的服务器, 比如门户服务器等, 在防火墙上配置开放相应端口。对于需访问Internet的坐席与设备, 在逻辑上设立DMZ (demilitarized zone, 非军事区) 与其他设备隔离, 并部署杀毒软件。
(4) 环境监控。系统支持对硬件设备及关键进程的运行状态监测, 对座席客户端运行环境 (软件配置、网络时延及连接状态) 监测, 对用户异常登录/注册行为监测以及异常呼叫波动的监测与控制。
(5) 告警管理。系统自动接收并处理各节点设备产生的各种告警信息, 根据告警种类和级别触发相应告警消息 (如短信、邮件、自动呼叫等) , 提醒维护人员及时检查处理, 并将经过解释后的告警消息通过网管接口送往网管中心。系统支持告警记录查询、告警方式设置等功能, 并默认至少保存3个月的历史告警信息。
(6) 日志管理。系统提供的日志包括后台用户操作命令日志、前后台程序运行日志等, 为日后用户管理和故障分析定位提供参考信息。
(7) 话务统计。系统可对各种呼叫类型的业务及对象进行测量和统计, 以便了解设备、网络的运行状况, 为业务网络规划、系统运行维护等提供基础数据。系统支持不同统计周期 (分钟、小时、天等) 、不同任务对象、参数阈值、任务状态的查询。
(8) 数据备份。为保证系统数据的安全性, 系统按一定周期在指定时间, 执行数据自动备份 (如配置数据、通讯录数据、企业音源文件等) , 以备将来系统恢复还原、分析使用。
2.3 接口管理功能
企业总机系统与多个外部应用系统存在接口, 具体如下:
(1) 业务开通接口。现与电信业务开通系统的对接, 系统通过读取接口表中的工单数据, 完成企业数据/分机数据创建、业务变更、销户等处理。
(2) 计费系统接口。实现与电信计费系统的对接, 生成呼叫记录CDR, 并按照电信计费系统的接口要求, 提供给电信计费系统。
(3) 数据同步接口。实现与电信号百平台间的数据交互、同步及业务对接, 完成企业用户数据同步处理。
(4) 短信网关接口。实现与短信网关的短信消息转发处理, 包括:漏话短信、语音留言通知、传真通知以及自助网站的短信发送。
(5) 增值网管接口实现与电信增值网管系统的对接, 提供关键设备状态、中继链路状态、程序进程状态、坐席状态、数据库性能等监控与告警信息。
(6) CP/SP接口。实现与第三方CP/SP系统的对接, 为其平台提供账户创建、漏话/呼叫事件转发、外呼及话单数据同步接口。
3 应用前景
该系统具有业务适应性强、部署方便、流程定制灵活、二次开发快速及运营管理方便等特点。
(1) 业务适应性强。对于一般小企业, 可以侧重呼入转接、语音导航等应用;对于中等商务企业, 可以侧重企业名片、定制IVR流程、电话会议、网络传真等应用;对于营销型企业, 则可侧重自动外呼、短信群发、日程管理及客户关怀等应用。
(2) 座席部署方便。基于SIP协议的座席架构灵活, 可集中部署在某地, 也可分散部署在多个地方, 只要具备宽带网络环境, 即可进行人工座席服务, 无须架设传统TDM中继线路。
(3) 流程定制灵活。针对不同企业定制个性化语音流程及值班模式需求, 可设置企业工作时间段, 超出该时间段后系统自动转入预定的值班模式, 包括自动语音播报、员工值班、座席值班等多种模式。
(4) 二次开发快速。由于系统采用分层架构, 模块间松耦合, 可以灵活、快速地进行二次开发, 满足将企业总机系统与企业自有信息化系统的业务流程融合的需求。
(5) 运营管理方便。系统可以满足电信级运营的用户管理、计费、网管等要求, 并可灵活开展租赁及业务外包服务。
参考文献
[1]马晓军.外包呼叫中心平台的发展及NGCC外包平台优势分析[J].电信科学, 2009 (1) .
[2][美]瑞德.呼叫中心设计[M].北京:电子工业出版社, 2008.
[3]李跃.呼叫中心关键应用技术[M].北京:北京邮电大学出版社, 2005.
分层架构 篇5
关键词:网络分层,架构设计模型,电力行业
引言
随着电力企业的信息化企业建设战略部署的不断推进, 使得信息化应用的推进速度不断加快。电力企业的运行模式开始发生明显变化, 信息系统逐步成为电力企业的关键核心基础生产系统之一。作业信息系统的基础通信平台———网络互联系统逐步显现出它的重要性。当前电力企业已经对网络系统非常依赖, 一旦因各种灾难或突发事件而造成网络通信中断, 直接会导致电力企业的生产停顿甚至瘫痪。因此, 如何规范电力企业信息网络建设架构, 提高电力企业基础网络通信系统的建设安全性、稳定性、可扩展性、经济性, 为电力企业生产提供高保障的网络通信服务, 是我们后续电力网络系统不断优化建设的探索方向。就电力行业如何通过层次化的网络架构设计思想, 通过网络分层架构, 实现电力行业网络基础架构的安全、稳定、灵活扩展和较高的建设经济性提出一套设计思路, 以期为电力企业的网络建设提供点滴参考规划建议。
1 网络架构问题引出的思考
现有电力企业均建设了多种网络。由于建设时期不同和建设的目的不同, 多种网络结构相互混合交叉, 不少电力企业的核心设备即是大楼局域网的核心交换机同时也担当城域网的核心路由器, 甚至还担当广域网的核心路由器。网络的架构较简单, 多为星形架构或者利用二层或二三层混合的环路架构。这种不同网络区域的功能过多的集中到某几台核心设备上的设计思路, 在早期电力应用对网络依赖程度相对弱关联的时候是适用的, 但随着电力应用的集中, 电力应用对信息网络平台的依赖不断提升, 要求网络必须安全、稳定、扩灵活扩展。这类传统网络设计思路给网络系统的安全、稳定带诸多不确定因素。任何一个局域网内的网络故障, 直接影响网络的核心设备, 由于核心设备同时担当多张网络的核心, 直接导致全网震荡, 给全网的运行安全带来严重威胁。
2 网络架构区域的规范
为提出一套有效的网络分层的层次架构网络设计思路。有必要对电力企业的网络系统划分区域, 以便于架构的设计组织。
2.1 骨干网
骨干网用于连接各个地区局城域网, 实现各网络间流量的汇聚和转发, 可独立进行管理的网络平台。一般由省核心站点、各地区局接入站点组成。分为核心层和边缘层两层, 核心层由核心路由器组成, 负责对各城域流量的汇聚和转发。边缘层由边缘路由器组成, 主要负责特定城域站点流量的汇聚和转发。
2.2 城域网
城域网在地区局区域范围内组建, 用于实现语音、视频、数据等多种业务汇聚和转发, 可独立进行管理的网络平台。一般由地区局核心站点、城区接入点、郊区接入点、各县局接入站点组成。分为核心层和业务接入控制层两层, 核心层由出口路由器组成, 负责对业务接入控制点设备进行汇接并提供IP城域网到骨干网的出口。业务接入控制层由业务路由器组成, 主要负责业务接入控制。
2.3 接入网
接入网在地区局一定范围内组建的, 用于实现语音、视频、数据等多种业务接入, 可独立进行管理的IP网络平台。分为汇聚层和用户接入层两层。汇聚层主要由园区汇聚交换机、大楼汇聚交换机和SDH/MSTP/RPR设备组成。接入层主要由楼层交换机、综合布线系统等组成。
3 网络分层架构模型
网络分层设计模式可以使用于各种层级的网络设计规划, 可以是省到地市局, 也可以是地市到县局的网络设计规划。本文提出的网络分层架构模型建议按图1进行统一规划:
3.1 骨干网拓扑架构
推荐采用网状网结构, 宜采用IP/MPLS+Optical, 到同一站点的链路要做到物理独立。 (见图2)
3.2 城域网拓扑架构
推荐采用口型拓扑结构, 宜采用IP/MPLS+O ptical, 到同一站点的链路要做到物理独立。 (见图3)
3.3 接入网拓扑架构
应紧密结合各自链路资源情况, 可采用环形、星型或混合的拓扑结构。
4 网络路由协议在网络分层架构中的规划
4.1 骨干网
骨干网内可使用传统路由技术, 也可以采用MPLS技术, 对相互独立的业务进行VPN划分。针对电力信息网络的骨干网, 建议采用MPLS技术, 充分利用MPLS-VPN技术给多业务网络通信带来的便利。MPLS技术的承载网络内的IGP路由协议建议采用OSPF或ISIS路由协议, 采用平面路由设计。域间路由协议推荐EBGP或静态路由实现路由交换和控制。骨干网中路由器的Loopback地址和链路地址的路由建议由IGP路由协议宣告;其他路由推荐由IBGP承载。由于IBGP路由协议要求相邻的BGP对等体之间实现网状连接, 因此, 建议在骨干网内选择2台性能较好的路由器设备配置成RR (路由反射器) , RR应成对设置, 相互备份。在边缘路由器上对来自城域网路由进行汇总过滤后发布。VPN内部的路由协议可由各个VPN网络独立设计。
4.2 城域网
城域网内同样可以采用传统路由技术或者采用MPLS技术, 对相互独立的业务进行VPN划分。针对电力信息网络的特点, 建议采用MPLS技术, 对分布于各个地区局、县局的多种应用进行VPN业务划分。城域网内的MPLS技术承载网络内路由, 建议采用IGP路由协议, 如OSPF或ISIS路由协议, 采用平面路由设计。域间路由推荐采用E-BGP或静态路由实现路由交换和控制。承载网内路由器Loopback地址和链路地址的路由宣告建议由IGP路由协议承担;其他路由由IGP或IBGP承载。采用IBGP路由协议时, 建议在城域网内选择至少2台高性能路由器担当RR (路由反射器) 角色, RR应成对设置, 相互备份。在业务路由器上对接入网进入的路由进行汇总和过滤后发布。
4.3 接入网
接入网内一般不建议再细分多个VPN业务网络。接入网是针对一特定应用目的而建设的路由网络。网内的路由协议一般建议采用动态路由协议, 除非单链路的非常简单网络架构。动态路由协议, 优先推荐采用OSPF路由协议。
5 IP地址规划
IP地址分为网络设备IP地址和用户IP地址。网络中的路由器的链路地址和Loopback地址采用省公司统一分配的私有地址, 交换机的管理地址原则上采用省公司统一分配的私有地址, 用户地址采用国网公司统一分配的IP地址。为骨干网、骨干网下每个城域网、城域网下每个接入网所分配的路由器的链路地址和Loopback地址、交换机管理地址、用户地址为一段或几段连续地址, 以分配的段少为佳。 (下转130页) “演”与“看”的角色, 缺乏对知识深入引导和研讨, 忽略了学生主体思维动机的激发, 当然也就很难激起学生的创新意识、培养学生的创新能力。再说, 通过观看演示实验得出教学的结论在教师看来“很显然”, 而对学生来说却“很茫然”。如能将一些演示实验教法进行改进, 让学生去自主探索, 经过分析、讨论, 透过现象看本质, 则会从中悟出很多课本上学不到的知识。
例如在“阿基米德定律”教学中, 教师先让学生进行猜想“影响物体浮力大小的因素有哪些?”这时学生会猜想可能与物体的形状、物体的密度、物体排开液体的体积、物体浸入液体中的深度、液体的密度等因素有关, 然后让学生根据猜想提出实验方案, 教师为其提供所需的实验器材, 并在此基础上让学生演示给同学们看, 式因为重视学生获取知识的过程, 有时会影响原来的教学计划, 这是正常的, 特别在开始阶段, 学生还未适应这种教学模式, 同样会影响原来的教学计划, 因此, 教师要做好统筹安排。
其次, 营造和谐氛围是实验探究教学的基础。要在整个教学活动过程中始终发挥学生的主体作用, 教师在教学中应该对每个学生都寄予成功的希望, 对学生的表现多做鼓励性评价, 公平给予每个学生以成功的机会。积极创设一个宽松的情境, 努力营造一个和谐的氛围。让每位学生以开放的心态将思维发散开来, 大胆发表对问题的看法, 相互释难答疑, 相互启发补充, 充分发挥所思所想, 促进学生个性的发展和创新能力的提高。
其三, 在整个教学活动过程中, 老师要积极 (上接18页) 所分配的地址需包含备用地址。
每个连续地址段以C类地址为分配单位, 长度为2的N次方, N为正整数。
6 结论
分层架构 篇6
Entity Framework 4.0随Visual Studio 2010正式发布以来,应用日益得到推广。Entity Framework实现了ORM框架,极大方便了开发人员实现关系型数据库对象的映射,并能生成用于检索和持久化数据的繁琐代码,同时,Entity Framework提供从数据库到A-DO.NET实体对象模型和从ADO.NET实体对象向数据库模型的双向映射功能。
Entity Framework的核心技术是EDM(Entity Data Model,实体数据模型),由三个主要概念组成。概念模型由概念架构定义语言文件(.csdl)来定义,映射由映射规范语言文件(.msl),存储模型(也称逻辑模型)由存储架构定义语言文件(.ssdl)定义,三者组合成EDM模式。EDM模式在项目中的存储形式是扩展名为.edmx的文件。此文件可以使用Visual Studio2010中的EDM设计器来设计,也可以手工编辑此文件来自定义CSDL、MSL与SSDL。
2 Entity Framework在分层架构中的应用
现代应用系统开发由于系统规模、分工合作以及系统扩展性要求,基本都已采用多层架构,并以B/S模型为主。本文以大学教学管理系统中学生信息管理部分功能为例,展示Entity Framework 4.0技术在ASP.NET 4.0分层架构中应用技术。
2.1 创建数据库
图1为系统的一般性分层架构,图2为系统数据库关系图,其中包括外键。
为提高数据库访问性能,对数据库的访问基本通过存储过程完成,分别对各表创建查询全部记录(Get_List)、查找指定主键值记录(Get By XXXX)、分页查询(GetPaged)、添加记录(Insert)、更新记录(Update)、查找指定条件记录(Find)以及删除记录(Delete)的存储过程。以下代码为以学生表(Student)为例查询指定班级所有学生记录的存储过程。
查询指定班级所有学生记录的存储过程:
CREATE PROCEDURE[dbo].[Student_Get By Class Id]
(@Class Id int)
AS
SET ANSI_NULLS OFF
SELECT[Student Id],[Student Name],[Id Number],[Phone]
[Mobile],[Student Address],[Class Id]
FROM[dbo].[Student]
WHERE[Class Id]=@Class Id
SET ANSI_NULLS ON
2.2 创建实体数据模型
在项目中创建类库项目,作为数据访问层,类库项目名称为Teaching Sys DAL。删除项目中自动创建的类,再添加新项,选择类型“ADO.NET实体数据模型”,输入新项名称“Teaching Sys”。在向导中模型内容选择“从数据库生成”,创建指向对应数据库的连接,然后选择Classes、Student表以及对应的共15个存储过程。
完成实体数据模型创建基本工作后,还需要添加对各存储过程的调用,展开“模型浏览器”中的“存储过程”,选择各存储过程,通过快捷菜单项“添加函数导入”,注意:对于各函数的返回内容集合类型的选择,如果存储过程返回对应表的结果集,则应选择为“实体”,并选择表对应实体类型,至此,实体数据模型创建完成。
2.3 创建存储过程管理类
在DAL类库中,创建新的类“Student DAL”,以实现对Student数据访问存储过程的管理,可以选择把类声明为public和static类型。在类中,分别对各存储过程添加对应的调用方法,以下为查询指定班号班级内所有学生信息存储过程的调用方法:
2.4 创建业务逻辑层
添加业务逻辑层对应的类库项目(Teaching Sys BLL),添加对数据访问层类库项目和System.Data.Entity类库的引用,创建实现学生信息的业务逻辑类Student BLL,在类中添加需要对学生信息进行管理的各种业务逻辑处理方法,以下为获取指定班号班级所有学生信息的业务逻辑方法:
2.5 完成界面层
在完成业务逻辑层类库项目后,界面层的开发工作量被有效地大大减少,主要工作在于完成界面的设计与实现,业务的实现和数据的访问都已由对应类库项目完成,各页面或用户控件应用业务逻辑层及数据访问层功能的方法与一般类的使用方法完全一致。
3 结论
Entity Framework 4.0技术可以大大提高程序开发效率及质量,结合存储过程及良好的实体模型设计,可以在保证系统多层架构的基础上全面提高系统设计水平。但同时也有一些不足,如对实体类型的定义和数据访问类库整合在一起,如能分开则更好。
参考文献
[1]CodeSmith Tools.http://www.codesmithtools.com/.
[2]netTiers Generate Tiers of Joy.http://www.nettiers.com/.
分层架构 篇7
软件架构( Architecture) 就是将整个系统分解为多个逻辑子系统,以及包或者是层,并制定这多者之间的逻辑关系和物理分布关系。软件架构是软件设计与开发中的一个重要环节,在软件开发过程中,当需求和架构确定之后,整个软件就基本上已经定型[1]。一个良好的软件架构可以提高软件的性能,并增强其健壮性,还能帮助项目管理者合理安排项目人员的角色和任务,在降低软件开发风险的同时,减少开发成本,优化整个软件设计过程[2]。
无论是C/S或是B/S架构的软件,分层均已成为企业级软件的现行标准。目前,软件通常分为客户层( 客户端) 、应用层( 应用服务器) 、数据层( 数据库服务器) 三层结构[3,4], 但这种结构的伸缩性较差,数据表示和数据处理处于同一层次当中,难以管理和维护升级。后来,应用层得到了进一步细分,形成数据表示层、业务逻辑层和数据存取层,使软件程序的结构实现了完全划分,且各层次逻辑上相互独立,由此而显著提高了软件的性能和开发能力[5],如图1 所示。
由图1 可见,这种架构方式虽然数据表示、业务逻辑和数据存取三个层次已经逻辑上分开,但物理上仍共存于单一的应用服务器中。随着软件规模的扩大,该种架构出现了应用服务器负担过重、数据共享困难和数据安全等问题,对其分析如下:
( 1) 软件要实现的业务算法比之前更为复杂,业务逻辑层则随之日益庞大。数据量的增大和用户数量的增加意味着访问量的上升,对数据存取也产生了更快速度和更高效率的要求。很多人性化、色彩丰富的用户交互界面技术开始在表示层中应用,这些技术将占用大量的计算机资源。上述三点导致了应用程序服务器的负担越来越大。
( 2) 不同应用系统之间的数据共享是信息系统软件发展的一个必然趋势。在图1 的架构方式中想要实现数据共享, 必须将数据库服务器公开给外部其它的软件系统。这就直接暴露了数据源,对数据安全性形成了较大风险。
Java EE平台为分层体系架构的实现提供了良好的技术基础,因其提供了一个有效的企业应用架构解决方法以及多个可重用组件用于开发者灵活的技术选择。目前,应用最为广泛的是Struts2、Spring和Hibernate( 简称SSH) 三大轻量级开源框架技术的整合,使用这些技术可以方便地实现软件的三层架构[6]。其中,Struts是基于MVC体系架构的Web应用程序,主要针对表示层设计,提供了标记库、输入校验和国际化等一系列强大的用户交互功能。Spring是基于IoC( In- version of Control,IoC) 和AOP( Aspect Oriented Programming, AOP) 的框架,具有良好的模块化效果,能有效组织系统的各个层次。而Hibernate则使用ORM( Object/Relation Mapping, ORM) 思想实现数据库操作,是优秀的数据存取工具,提供了从Java类到数据表之间的映射,可以大大减少操作数据库的工作量。仍需一提的是,XFire是新一代的Java Web服务引擎,支持协议广泛,易于和现有成熟框架整合应用,并可轻松实现在Java EE应用中发布Web Service[7,8]。
本文在研究了Java EE平台下的Strust2、Spring、Hiber- nate和XFire( 简称SSHX) 四个框架技术的基础上,设计得到一种可以分层部署的软件架构,即各个层次可以分别部署在不同的服务器上。与一般的SSH不同,该架构通过Spring与XFire整合的方式实现Web Service技术,并将该技术应用于层次间的相互调用之中,使软件层次不仅在逻辑上,而且在物理上也可以相互独立,从而使以上问题得到顺利解决。
1 分层部署软件架构的设计
实现数据表示层、业务逻辑层和数据存取层物理独立的关键是确保分离后各个层次之间依然能够无障碍地连接与通信。Web Service可以在这方面提供相应的技术支持。 Web Service是一个平台独立、松耦合、自包容、且基于可编程的Web的应用程序,可使用开放的XML标准来描述、发布、 发现、协调和配置这些应用程序,用于开发分布式的互操作的应用程序[9,10,11]。Web Service构建于通行的Internet标准协议之上,通过Web进行客户端和服务器端通信,用其实现统一数据平台的接口,可使平台配置灵活、结构简单、且易于扩展[12,13,14]。
基于Web Service分层部署软架构如图2 所示。
在图2 中,表示层、业务逻辑层和数据存取层分别部署在不同的服务器上,各层之间可根据需要通过内网使用Web Service进行通信。客户端与表示层之间的交互不变。设计中增加了数据共享服务器,专门为其它应用系统提供数据共享服务,提供的访问方式也是通过Web Service来最终实现。 为了更好地实现数据保护,规定数据存取层服务器可以对数据库进行读和写操作,而数据共享服务器却只能对数据库进行读操作。
经过分析可知,该架构具有以下几个特点:
( 1) 灵活性。分层部署模式并非固定不变的,可以根据需要灵活处理。例如,如果表示层与业务逻辑层都比较小, 就没有必要分开,则可将其合并在一台服务器上,只要保证层次之间的接口不变即可。又例如业务逻辑层比较庞大,即可将其细分为业务逻辑层1、业务逻辑层2、…、业务逻辑层n,规定并发布其访问接口后就可以分别部署在不同的服务器中。
( 2) 透明性。由于Web Service具有良好的封装性,访问者能够且仅能看到该对象提供的功能列表( 接口) ,内部的实现细节对其来说都是透明的。因此,只要接口不变,对任何一个层次进行升级维护时,均不会影响到其它层次。
2 应用实例—大学生党员信息系统的设计与实现
2. 1 使用分层部署软件架构
某高校的大学生党员信息系统是一套基于B/S架构的网络数据库应用系统,实现目标是将党建工作从基层党支部的党员基础信息维护,到高层的党委组织部对信息的审核和统计分析等一整套日常工作管理流程纳入整个信息化系统, 其核心功能包括: 党员基本信息维护、党员参加培训班管理、 党员网上学习与测试、党员级别管理、党员奖惩信息管理、阶段性统计汇总等。
经过深入细致的需求分析后发现,系统中并不都是对原始数据的简单的查询、录入、删除和修改操作,还将涉及另外一些功能,比如随机组卷、阅卷、培训班的分配、培训时间控制、党员情况汇总等功能。这些功能则需要对录入的原始数据进行较复杂的业务逻辑处理后返回用户界面或者存入数据库,其具体实现过程往往会用到许多不同功能的类和方法,操作起来也更为复杂。另外,系统还要求用户界面使用ExtJS、JQuery、Flash等先进的页面交互技术,提高页面的美观效果。
该高校当前存在有学生管理信息系统、教务管理信息系统等多个信息系统,而这些系统已发布了针对数据共享的Web Service。在此基础上,党员管理信息系统将需要从学生信息系统中获得学生的姓名、班级、专业等基本信息,还需要从教务信息系统中获得学生的学习成绩信息。此外,也要提供党员的党籍信息给其它系统访问。
基于以上分析,最终采用了如图2 所示分层部署的软件架构,其系统逻辑总共分为6 层,分别为: 客户端、Web表示层、业务逻辑层、数据存取层、数据共享层和实体数据库层。 具体实现时,由于表示层和数据存取层比较简单,可共用一台服务器。而数据共享层则负责从远程系统读取数据以及提供数据给其它系统调用,即需单独设置服务器。部署后的系统整体拓扑图如图3 所示。
2. 2 系统类设计
根据已经设计的系统架构模型,系统的程序结构中至少有三种组件需要编写,分别是: 实现表示层的Action组件、实现业务逻辑层的Service组件以及实现数据存取层和数据共享层DAO组件。这三种组件之间的相互调用由Spring动态注入完成,而且需要应用面向对象的多态性的特点,使用接口编程实现。Action类通常从Struts框架提供的ActionSup- port中继承,因为ActionSupport中已经定义了一些通用的与用户交互的功能,如输入检验等。Dao组件通常继承Sping提供的HibernateDaoSupport类,简化操作数据库的编程方法。因此,得到的系统类图如图4 所示,而由于篇幅原因,部分接口和类未在图中列出。
在图4 中,IDangyanExDao为对外发布提供给其它系统获取本系统共享数据的接口。而IStudentDao和IScoreDao分别属于学生信息管理系统和教务管理系统中发布的接口,本系统不进行实现,其实现是在IStudentServiceImpl类中由Spring与XFire共同从远程的Web Service中获取并动态注入。
2. 3 Web Service的实现
2. 3. 1 Web Service的发布
Web Service的发布是实现分层部署的关键,通过编程来获得实现是比较麻烦的。借助XFire与Spring的结合,可以简单容易地在Java EE环境中发布Web Service。需要发布一项服务时,首先要设计完成对外公开的接口,再针对这个接口将其实现。比如数据共享层服务器有党员信息查询服务, 接口为IDangyuanExDao ,实现类为IDanyuanExDaoImpl,要发布这个服务,即需在Spring的核心配置文件applicationCon- text. xml做如下配置:
< bean id = " DangyuanExService " class = " org. codehaus. xfire. spring. ServiceBean" >
< property name = " serviceBean" ref = " dangyuanexser- vice" > < / property >
< property name = " serviceClass" value = " org. ws. IDan- gyuanExDao" > < / property >
< / bean >
其中,serviceClass属性为对外的公共接口,serviceBean为该接口的真正的实现类,需要在Spring中配置为bean的形式,这个实现类是非公开的,可起到保护核心算法的作用。
2. 3. 2 Web Service的调用
通过Spring与XFire的结合,不仅利于对Web Service的发布,同样也利于对Web Service的调用。例如,业务逻辑层服务器要调用远程数据。具体实现为: 首先,业务逻辑层将数据存储层发布的服务接口引入到程序中,根据Java的多态特性,直接使用接口对象进行编程,接口对象的实例化交给Spring的IoC来完成。Spring容器即会根据用户的配置从数据存储服务器获得相应的实例,并完成相应的数据读取功能。这个过程需要XFire的参与,具体的配置如下:
< bean id = " studentservice" class = " org. codehaus. xfire. spring. remoting. XFireClientFactoryBean" >
< property name = " serviceClass" > < value > org. ws. IS- tudent < / value > < / property >
< property name = " wsdlDocumentUrl" > < value > http: / / 127. 0. 0. 1: 8090 / services / IStudent? wsdl < / value > < / prop- erty >
< / bean >
其中serviceClass还是公共接口,wsdlDocumentUrl为提供服务的地址。
2. 3. 3 复杂数据类型的传输
当调用一个Web Service后返回的数据类型为复杂数据类型( 如列表,且每一个元素都不是基本数据类型) ,此时如果不做特殊处理,就可能会发生XFireRuntimeException异常报警。这是因为系统无法识别用户自定义的数据类型,需要通过XXX. aegis. xml( XXX代表使用了复杂数据类型的类或者接口的名字) 来告诉系统具体的数据类型,该文件与其相关联的类或者接口均在同一路径下,具体配置如下:
< mapping >
< method name = " findAll" >
< mapping >
以上配置说明findAll方法返回的结果集中每一个元素的数据类型为org. po. Student。
3 结束语
通过对软件的分层部署,把逻辑上独立的层次部署到不同的服务中,有效地减轻了部署到单一应用程序服务器的负担。通过设置数据共享服务,既可以为不同软件系统提供一种方便的数据共享方式,又可以隐藏数据库服务器,较好地保护了数据的安全。应用实例表明这种架构方式是可行的。 虽然本文使用Java EE平台下的SSHX框架实现了本文提出的软件分层部署架构,但架构使用的Web Service是通用的技术标准,对类似的网络数据库应用系统提供了一个可以复用的软件架构方式。
摘要:为了解决逻辑分层软件架构中存在数据共享困难和服务器负担过重的问题,提出一种可以分层部署的架构方式。该方式通过Web Service可以在不同的服务器之间进行无缝连接与通信,把逻辑上独立的软件层次部署到不同的服务器上,实现软件层次物理上独立,有效解决以上问题。
分层架构 篇8
1 系统分析
档案管理是学校管理工作的一个重要组成部分。一个学校的管理水平、发展轨迹、 文化积淀、办学特色, 常常可以从档案中反映出来。实现档案管理的科学化、现代化, 是摆在高校档案管理人员面前的一项重要任务。高校档案业务系统目的是为了将高校发展过程之中一些有价值的文字、 图表等媒体进行有效的存储, 并且在需要的时候进行查询。由于设计到大量数据的存储和查询, 高校业务系统也属于相对复杂的业务信息系统。
2 分层体系设计
由于高校的档案管理系统相对复杂, 并且需求会随着系统的运行逐步地发生变化, 要灵活地应对这种变化, 需要通过分层体系设计来提高系统的灵活性和可扩展性, 以此应对系统中的需求扩展。目前4层体系结构是相对流行的一种设计体系, 在4层体系结构中, 将业务系统的开发分层表示层、业务层、持久化层和数据层。表示层负责为用户提供操作界 面, 业务层处理系统的业务数据, 并且完成系统的事务处理、日志处理、权限控制和异常处理, 持久化层负责将业务对象存储到关系数据库中, 数据层完成数据的存储工作。
3 具体实现
表示层负责为用户提供操作界面, 在当今流行的B/S架构中, 在基于J2EE的架构体系中表示层主要通过JSP+CSS+Javascript来为用户呈现相应的功能, 表示层和业务层之间的调用关系一般都是通过目前较为流行的MVC模式来进行实现的, 用户的所有请求首先提交给表示层的Controller对象, 再由Controller调用业务层的操作接口, 之后将操作的结果回传给视图对象。
业务层用来控制业务系统的业务逻辑, 它通过MVC和视图层进行数据交换, 并且调用持久化层完成和数据库的交互, 业务层的第一个作用是用来进行事务控制, 很多业务操作可能会涉及不同对象对数据库的操作, 如删除一个档案的分类信息, 需要先处理档案分类中的档案信息, 这样如果第一个处理成功, 而第二个处理失败, 没有办法进行回滚, 数据会发生异常, 故需要在业务层进行事务处理, 在业务层将事务存储到一个线程中, 在需要进行事务提交的时候统一处理; 业务层的第二个作用是用来进行日志控制, 业务系统的日志信息都在业务层进行存储; 业务层的第三个作用是用来进行异常控制, 当操作员进行了非法操作之后会在业务层统一抛出异常来告知操作者操作出现问题; 最后业务层还负责系统的权限细粒度控制, 用户所访问的任何功能都可以在业务层进行控制, 用户信息在表示层中通过一个特殊的线程对象来进行存储。
持久化层用来完成业务对象和数据库的操作, 目前的数据库基本都是关系型的数据库, 要把业务对象存储到关系数据库中, 需要进行ORM的映射操作, 持久化层主要用来完成ORM的操作。对于J2EE的架构而言, 最基本的实现方式就是JDBC, 使用JDBC最大的优点是运行效率高 , 但缺点也很明显, 用户的开发效率较低, 已经有了大量的开源开发框架提供对业务对象的持久化操作, 如: Hibernate、MyBatis、JPA等, 鉴于Hibernate是目前最为流行的开发框架, 所以持久化层通过Hibernate的技术予以实现。
数据层负责业务对象的存储业务, 目前关系型数据库较多, SQL Server数据库仅仅只能用于Windows的环境, 对于一个复杂的业务系统而言, 服务器的环境应该选择Linux更为合适。另外Oracle虽然是关系型数据库的佼佼者, 但是价格较高, 特别是运用于集群的环境还需要增加更多的额外成本。而开源的MySQL数据库不仅性能稳定, 而且可以非常容易地实现数据库的集群, 所以数据层业务通过MySQL数据库进行存储。
分层模型使得业务系统真正实现高内聚, 低耦合, 这样将为系统的扩展性提供有效保障, 但是高层对底层的调用依然会存在一些耦合关系, 此时可以利用IOC (控制反转) 设计模式将高层对底层的调用通过DI (依赖注入) 的方式注入到高层对底层的引用对象中, 这样可以将高层和底层之间的关系彻底解耦合, 更大程度上提高系统的扩展性和灵活性。
4 关键问题和解决方案
使用分层体系架构进行开发时会存在以下两个主要的问题:
在业务系统的流程中, 在业务层和持久化层均会涉及到获取表示层中的一些关键数据, 如细粒度的权限控制和日志控制的用户信息, 很多信息是存储于表示层, 而权限处理, 日志控制这些事务性的操作都集中在业务层。共享数据如果仅仅通过参数进行传递的话会使系统丧失灵活性。解决这个 问题的主要方法是将业务数据存储于一个独立的线程中, 在整个请求过程之中从该线程中取数据即可, J2EE框架中的ThreadLocal可以有效地解决这种问题 , 在界面层通过拦截器将需要共享的数据存储于ThreadLocal中, 之后在业务层和持久化层根据需求访问即可。
业务层的数据库事务处理同时也是分层体系中需要解决的另外一个比较重要的问题, 业务层需要调用多个持久化层的处理对象来处理一项重要的业务, 如删除档案操作, 需要先删除和档案相关的业务对象之后才能删除该档案。由于不同的持久化对象的每一次处理都是一个独立的事务, 这样将会导致以上业务无法粗粒度的控制事务, 这样很有可能会导致严重的安全后果, 可能删除了部分关联对象, 但是档案信息却没有删除。解决这个问题的方案是将事务放到一个独立的线程中, 在业务层等操作完成之后统一进行。Spring框架中提供的声明式事务可以有效地解决这个问题。
5 结语