基于SOA的大型招聘系统架构设计与实现
来源:华拓网
维普资讯 http://www.cqvip.com 计算机时代2008年第lO期 ·59· 基于SOA的大型招聘系统架构设计与实现 范新灿 (深圳职业技术学院电信学院,广东深圳518055) 摘要:良好的架构对于大型Web应用系统至关重要。文章通过对基于SOA的多层应用架构研究,分析了人才招聘系 统的SOA架构;运用RUP的系统建模,设计了业务架构模型和技术架构;并在应用中进行架构性能优化,有效地解决了 招聘系统的高并发、高负载问题。 关键词:SOA;架构;人才招聘;决策支持系统 0引言 随着互联网业务的不断丰富,网站开发技术不断细分,对 于大型网站来说,所采用的技术涉及面非常广,从硬件到软件、 编程语言、数据库、Web服务器、防火墙等各个领域都有了很高 的要求。大型网站,比如门户网站,在面对大量用户访问、高并 发请求方面,基本的解决方案是:使用高性能的服务器、高性能 的数据库、高效率的编程语言还有高性能的Web容器。采取这 些措施,在一定程度上意味着更大的投入,并且这样的解决思 路不能完全解决问题,没有很好的扩展性。 对于大型网站,采用良好的架构设计,能降低成本、提高性 能。架构设计应该完成的工作是:业务构件分析,应用架构设 计,按照面向构件的思想,识别构件、确定构件接口和行为,决 定服务构件需求,负责架构归档。我们为某国际大公司开发了 大型人才招聘网站,所搭建的系统平台,可使分布各地的公司 各部门复杂的人才招聘流程在网上平台流畅进行。系统架构基 于SOA,并应用了数据挖掘、智能决策和J2EE技术,将先进的 技术、思想与实际的应用很好结合,实现了人才招聘工作的自 动化、智能化,同时,通过对职位需求、招聘信息等数据的智能 分析,为相关部门提供了辅助决策依据。 1基于RUP的系统建模 在构建人才招聘网站架构的过程中,需要充分重视各种服 务级别的需求,一个企业级系统中的服务级别需求往往是错综 复杂的。RUP提供了一个以体系为中心、用例驱动与风险驱动 相结合的迭代软件开发过程。图1是基于RUP的人才招聘网 站开发的各个阶段划分,其中用例模型是其它模型的基础。 l需求j— 一l_.11分析l— 一l· l设计I— -f实现f— 一】··l测试1— U U U 用例模型 分析模型 设计模型 实现模型 测试模型 图l基于RUP的系统建模过程 需求捕捉阶段产生的关键工件有用例模型,补充规范和词 汇表。用例模型基于外部视角定义了系统的行为,包括与系统 进行交互的角色,以及描述交互内容的用例。基于人才招聘网 站由职位发布、网上求职、应聘管理、决策分析子系统组成。系 统涉及的角色有两类,一类为主导角色(指向系统输入信息的 角色),它们是人力资源部和部门负责招聘人员;另一类为被 动角色(指从系统中接受信息的角色),即求职者。在角色分析 和需求目标分析的基础上,所抽象出子系统的用例模型如图2 所示。 智能决策 人事管理 图2人才招聘网站的用例模型 2业务架构设计 本业务架构体系,是针对企事业信息管理系统中具有体系 性的、普遍性的问题而提供的通用解决方案。 图3所示是大型招聘网站的业务架构设计,其人才招聘系 统主要分为人才招聘和辅助决策支持两大功能。其中人才招聘 模块的功能有:职务发布、网上求职、应聘管理等;辅助决策功 能主要有人才评估和智能决策。人才评估系统对各部门进行信 息整合,抽取有效数据;利用人事知识库,对数据进行抽取、分 析,得到知识库作决策分析。系统还对历史招聘信息以及人才 信息进行汇总、统计、分析,得出人才关键信息库,再进行人工 智能分析(如根据公司现有人员职称构成、人员学历构成、人员 年龄构成和知识领域构成等信息进行分析),对招聘人员进行 评价、打分,并提供未来的趋势分析报告,对各数据进行对比、 分析,形成各类图表,为部门选择合适的人才提供决策支持。 分布各地的公司部门,登录系统后,可在网上填报本部门 的职位需求信息,并可以进行职位模板的维护。职位需求填报 后,公司人力资源部将进行审核确认,审核通过才能进行职位 信息的前台显示。应聘者进入招聘网站后,可以浏览各类招聘 信息,进行分类查询。查询到合适职位后,首先要通过注册、登 录,然后可在简历模板上填写或修正简历,也可浏览查询面试 反馈信息。各个部门可查询本部门的所有求职信息。系统具有 自动筛选功能,可根据系统设置,将不符合应聘要求的应聘者 维普资讯 http://www.cqvip.com 60· Computer Era No.1 0 2008 筛选掉,自动进行信息反馈。对满足条件的应聘者发送面试通 知,进入面试流程,人力资源部门对最终部门面试的结果进行 审批。系统同时具有自动评估功能,以量化的方式对人才综合 素质进行评价,例如,通过“知识储备、英语计算机能力、专业技 能、工作经验”等设定的指标进行考察,汁算人才的综合评分。 同时,系统也可对公司及部门的现有人员情况进行分析,从人 员职称结构、学历结构、年龄结构等多个方面进行分析,为新招 台独立;支持多种表示层技术:JSP/Velocity/FreeMaker/JSF/XML, 界面修改非常方便;页面设计遵守CSS2、W3C等规范,兼容主 流浏览器如IE(及其变种)、Firefox、Safari等;基于DIV+CSS的 页面设计;前端求职招聘与后端管理系统完全分离,安全、可 靠、稳定;页面缓存、页面压缩技术可以保证系统具有良好性能。 人才招聘网站通过策略接口,高度可配置,采用多种视图 技术,如JSP、Velocity、Tiles。Spring中间层能容易地与基于任 何其他Web MVC框架(如Struts、WebWork或Tapestry)的 聘职位提供决策依据。 Web层组合。表示层负责所有的用户交互。服务层封装了应用 图3大型招聘网站业务架构设计 3基于SOA的技术架构 人才招聘网站采用灵活的基于SOA的Web应用程序框 架,构建在核心的Spring架构功能之上,如图4所示。SOA是 种面向企业级服务的系统架构,在基于SOA架构的系统中, 具体应用程序的功能是由一些松耦合并且具有统一接口定义 方式的组件(也就是service)构建起来的。利用基于SOA的系 统构建方法,系统中所有的程序功能都被封装在一些功能模块 中,而这些功能模块就是SOA架构中的不同的服务(services)。 服务是封装成_E}=j于业务流程的可重用组件的应用程序函数。 0”档蛔 衄d sP岫 ‘D 釉孵僻·C4t t 略·1抽m Hpt, 埘hi) 窖 端 襄啊鹾 撺 }羼 薷业 熟键拜聚L ̄wE15 0 TM ̄ ’ ∞ }m … l P0 。 ” 图4基于SOA的多层Web应用架构 人才招聘网站采用J2EE技术平台,基于Spring+Hibernate 的轻量级技术架构,灵活、易扩展、移植性好,不需要复杂昂贵 的EJB容器;采用支持MVC 2的SOA的多层(n—tiers)系统架 构,强大、灵活、高效、易维护、可扩展,满足企业级应用的各种 要求;支持多种操作系统、数据库、应用服务器、浏览器;真正平 程序业务逻辑层,处理来自异构客户端的请求,同时与各种后 端系统交互。它采用Session Facade模式封装业务逻辑和业务 数据。Session Facade被开发为无状态的会话Enterprise JavaBean, 而数据则由实体Enterprise JavaBean来管理。 4架构性能优化 在构建人才招聘网站系统时,除了要考虑系统的架构及应 具有的功能以外,还要关注架构的可用性、容错能力、可重用 性、安全性、扩展性、可维护性、可靠性等各个方面,任何一个方 面的考虑不同都有可能为整个系统的构建埋下隐患。下面阐述 我们提高系统架构性能的解决方案。 HTML静态化效率最高、消耗最小的就是纯静态化的 html页面,所以我们尽可能采用静态页面。 图片服务器分离对于Web服务器来说,图片是最消耗资 源的,将图片与页面进行分离,建立独立的图片服务器,这样的 架构可以降低提供页面访问请求的服务器的系统压力。在应用 服务器和图片服务器上,进行不同的配置优化,尽可能少的 LoadModule,保证更低的系统消耗和更高的执行效率。 数据库集群和库表散列大型招聘网站在面对大量访问的 时候,需要使用数据库集群或者库表散列。但数据库集群由于 在架构、成本、扩张l生方面都会受到所采用数据库类型的限制, 所以需要从应用程序的角度来考虑改善系统架构,为此,使用 库表散列是最有效的解决方案。我们在应用程序中安装了业务 应用或者功能模块,将数据库分离,不同的模块对应不同的数 据库或者表,再按照一定的策略对某个页面或者功能进行更小 的数据库散列。比如用户表,按照用户ID进行表散列,这样就 能够低成本地提升系统的性能,并且提高了系统的可扩展性。 缓存网站架构中的缓存非常重要。除了Apache提供了自 己的缓存模块以外,也可以使用外加的Squid模块进行缓存。这 两种方式均可以有效地提高Apache的访问响应能力。 负载均衡负载均衡可以解决高负荷访问和大量并发请求 所产生的问题。我们采用了软件四层交换的技术来解决负载均 衡问题。软件四层交换可以使用Linux上常用的LVS来实现。 LVS就是Linux Virtual Server,它提供了基于心跳线heartbeat 的实时灾难应对解决方案,提高了系统的鲁棒性,同时它也提 供了灵活的虚拟VIP配置和管理功能,可以同时满足多种应用 需求,这对于分布式的系统来说是必不可少。在软件四层交换 的基础上搭建的squid集群,成本低、性能高,且还有很好的可 扩充性,很容易往架构里面增减节点。 维普资讯 http://www.cqvip.com 计算机时代2008年第10期 ·61· We b应用程序用户接口设计和应用 秦学礼 (浙江育英职业技术学院信息技术系,浙江杭 ’H 310018) 摘要:阐述了Web应用程序的用户接口技术和实现方法,给出了应用的实例。 关键词:Web浏览器;Web应用程序;单向用户接口;双向用户接口 0引言 创建辅助窗口主要是通过Web浏览器文档对象模型 Web应用程序中的用户接口是指用户的操作界面。实际应 (DOM)的Windows对象提供的Open方法来实现的。以IE为 用中,用户是通过Web浏览器访问Web应用程序。根据Web 例,Windows对象的Open方法的语法如下: 应用程序与用户操作之间的关系,用户接口分为两大类:单向 Window.open(url,windowName,windowFeatures,width,height) 用户接口与双向用户接口。单向用户接口主要包括辅助窗口、 其中,url用于指定辅助窗口中显示的页面;windowName 层和提示窗口,双向用户接VI主要包括对话框和表单。 表示辅助窗口的名称;windowFeatures用于设置辅助窗口的特 下一代Web应用程序是以动态、互动、开放和高度灵活为特 征,比如显示位置、是否出现滚动条等;width和height表示窗 征的,不仅超越了经典的web应用程序的功能,而且还超过了桌 口的宽度和高度。 面应用程序的功能。web应用程序或者互联网应用程序具有高 也可以用Javascript(VBscript)脚本创建辅助窗口,如使用 度的互动性,同桌面软件一样要有容易操作的用户界面。 以下的脚本代码实现创建辅助窗口。 此研究和设计有效的用户接口对Web应用程序设计是 function openSc ript(u rI,width,height) 非常有意义的。 (var Win=window.open(url,"openScript",'width=’+width+, height=’+height+,resizable=l,scrollbars=yes,menubar=no, 1单向用户接口 status=yes’): 通过单向用户接口,Web应用程序只能将信息传递给用 ) 户,不理会用户的响应。Web应用程序中典型的单向用户接口 代码中调用打开窗口的语句: 包括辅助窗口、层和提示窗口。 jaVasc pt:openScript(’buy.asp’,460,300) 1.1辅助窗口设计 buy.asp是生成辅助窗口页面的ASP程序(运行在服务器 辅助窗口是指页面中出现的其它Web浏览器窗口。辅助 端),460,300是窗口的宽度和高度。 窗口一般用于显示特定提示信息,比如紧急通知、注意事项以 buy.asp程序中显示提示信息的语句片段: 及宣传广告等内容,它广泛应用于各种Web应用程序中。图l if session(’’user name”、=…。then 是一个Web应用程序(电子商务系统)中的信息提示窗口。 response.write“<br>1.你尚未登录!请登录后再订购本站商品l>” response.write”<br>2.第一次来本站,请先注册会员(免费)!<br>” end if if trim(request(”hw_id”))_I…then response.write”没有此货物” response end end if 在ASP程序设计时,为了减轻服务器的负担,也可以使用 VBScript脚本运行在浏览器的MsgBox0函数创建辅助窗口,如 5结束语 参考文献: 招聘网站现已投入应用,运行情况良好,具有高并发和高 【1l毛立,须文波.基于RUP的J2EE应用建模研究【J】计算机工程与设 负载性,能很好满足大型企事业单位人事招聘管理和决策需 计.2007.2 【2】周莉,陆暑羹,魏建香分布式人口信息系统得架构及实统[J】.计算机应 要。通过灵活的系统设置,系统能适应可能发生的各种复杂情 用.2007.2. 况,具有灵活的应变能力和适用性。系统通用性强,易于维护, 【3】http://www.service—architecture.com/web—services/articles/ser一 并且很容易进行扩展。 n。 d_ №cture—soa—d。 h m ,20o5·
因篇幅问题不能全部显示,请点此查看更多更全内容