年系统架构设计师论文范文
架构设计师考试作文

架构设计师考试作文在软件架构设计这个神秘又有趣的领域里,有一个至关重要的元素常常被忽视,那就是用户体验。
就好像我们盖一栋大楼,只想着怎么把框架搭得结实,却忘了大楼是给人住的,住得舒不舒服才是关键呢。
咱先说说我遇到的一个事儿吧。
有个软件,从技术层面看那可真是厉害得不得了,架构师估计是个技术大神,各种先进的技术堆叠在一起,就像搭积木一样,搭出了一个超级复杂的架构。
可是呢,等用户拿到手一用,全都懵圈了。
界面就像迷宫一样,操作流程复杂得像解一道高难度的数学题。
这就好比你给一个小朋友一个超级炫酷但是有一百个按钮的玩具,他除了哭还能干嘛呢?所以啊,在架构设计的时候,咱们得把用户体验放在心上。
这就像是给用户铺一条平坦又有趣的路。
在设计架构的时候就要考虑到软件未来的功能扩展和变化要符合用户的使用习惯。
比如说,一个购物软件,用户的习惯就是简单快捷地找到商品、下单、付款。
如果我们的架构设计导致每次找个商品都要在无数个菜单里翻来翻去,那用户肯定会跑得比兔子还快。
再就是界面设计得友好。
这就像我们去一家餐厅,装修得高大上但是桌子椅子摆放得乱七八糟,顾客肯定也不会舒服。
软件的界面要是颜色搭配刺眼,按钮布局杂乱无章,那用户看一眼就不想再看第二眼了。
我们要像室内设计师精心布置房间一样,把软件界面弄得简洁又美观,让用户一看到就觉得赏心悦目。
还有啊,软件的响应速度也很关键。
你能想象你每次点击一个按钮,软件都要像个老乌龟一样慢悠悠地反应半天吗?这就好比你去饭店点菜,等个菜等了几个小时,你肯定会气炸的。
在架构设计的时候,就要考虑到数据处理、服务器性能等因素,保证软件能快速响应用户的操作。
从技术角度来说,也许有人会觉得用户体验是个可有可无的东西,只要软件功能实现了就好。
但是啊,这种想法就像是只做了个空壳子,没有灵魂。
软件是为用户服务的,没有好的用户体验,再厉害的架构也只能是孤芳自赏。
就像一个绝世武功高手,但是没人愿意跟他过招,因为他浑身都是刺,靠近就会受伤,那这武功再高又有什么用呢?所以,咱们这些架构设计师啊,在埋头研究各种技术、构建复杂架构的时候,一定要时不时地抬起头来,从用户的角度去看看我们的设计。
系统架构设计师论文总结模板

设计模式不是为每个人准备的,而是基于业务来选择设计模式,需要时就能想到它。
要明白一点,技术永远为业务服务,技术只是满足业务需要的一个工具。
我们需要掌握每种设计模式的应用场景、特征、优缺点,以及每种设计模式的关联关系,这样就能够很好地满足日常业务的需要。
许多设计模式的功能类似,界限不是特别清楚(为了能让大家更好的理解,每个章节后面都列出了类似功能设计模式之间的对比)。
大家不要疑惑,设计模式不是为了特定场景而生的,而是为了让大家可以更好和更快地开发。
设计模式只是实现了七大设计原则的具体方式,套用太多设计模式只会陷入模式套路陷阱,最后代码写的凌乱不堪。
在实际工作中很少会规定必须使用哪种设计模式,这样只会限制别人。
不能为了使用设计模式而去做架构,而是有了做架构的需求后,发现它符合某一类设计模式的结构,在将两者结合。
用设计模式,否则可能会使设计变得复杂,使软件难以调试和维护。
2.分析成功的模式应用项目对现有的应用实例进行分析是一个很好的学习途径,应当注意学习已有的项目,而不仅是学习设计模式如何实现,更重要的是注意在什么场合使用设计模式。
3.充分了解所使用的开发平台设计模式大部分都是针对面向对象的软件设计,因此在理论上适合任何面向对象的语言,但随着技术的发展和编程环境的改善,设计模式的实现方式会有很大的差别。
在一些平台下,某些设计模式是自然实现的。
不仅指编程语言,平台还包括平台引入的技术。
例如,Java EE 引入了反射机制和依赖注入,这些技术的使用使设计模式的实现方式产生了改变。
4.在编程中领悟模式软件开发是一项实践工作,最直接的方法就是编程。
没有从来不下棋却熟悉定式的围棋高手,也没有不会编程就能成为架构设计师的先例。
掌握设计模式是水到渠成的事情,除了理论只是和实践积累,可能会“渐悟”或者“顿悟”。
5.避免设计过度设计模式解决的是设计不足的问题,但同时也要避免设计过度。
一定要牢记简洁原则,要知道设计模式是为了使设计简单,而不是更复杂。
系统架构设计师论文(模板)

摘要:2012年1月,我作为项目经理,主持XX保险公司全国再保险大集中管理系统的建设项目,该项目为期2年半,总投资为1800万人民币,通过该项目,实现XX保险公司整体信息化转型升级的战略中再保险板块的落地,完成全国海量再保险业务数据的集中部署运行,迁移整合历史数据,全面替代上一代系统。
该项目时间紧任务重、涉及人员组织多,直接相关XX保险公司内部60个部门400余人,外部配合协作30多个厂商团队300余人。
该项目2014年5月完成系统上线,2014年6月通过最终验收,得到了用户的一致肯定,顺利达成了项目既定目标。
本文作者结合实际经验,以该项目为例,讨论一下项目建设的【软件分析、软件设计、、】这几个过程来进行论述。
正文:2012年1月,我作为项目经理,主持XX保险公司全国再保险大集中管理系统的建设项目,该平台为期2年半,总投资为1800万人民币。
该项目时间紧任务重,具有相当的挑战性,一是业务模式升级,需按照最新的再保险业务流程,完成系统功能的分析开发,进而具体落地公司再保险业务流程的再造;二是技术要求高,要实现全国海量再保险业务数据的集中部署运行,每日处理数据量达到3000万笔以上,同时要满足性能要求。
三是数据整合难,需要将上一代系统的中历时十年的数据,按其有效性进行分类、转化、整合,实现历史存续业务数据在新系统环境下,按照新新模式正常运行。
四是涉及人员组织多,直接研发团队成员36人,XX保险公司总部再保险部、财务部、风险部、八大业务部、40个省公司等400余人,同时涉及外部配合协作承保系统、核保系统、理赔系统、收付费系统、财务系统等30多个厂商团队300余人。
我担任项目第一负责人,负责项目整体技术方案评估、立项论证以及项目管理工作。
在项目启动前,负责分析项目的预期经济效益、可选技术方案,分析关联项目影响,并向公司提交立项报告。
项目启动后,作为主要负责人,牵头与公司内部技术专家、外部架构师一同建立项目技术架构组,设计项目整体技术架构,同时挑选项目内部成员,建立需求分析组、系统开发组、系统测试组、运维支持组,开展业务需求分析、系统设计、数据迁移方案、上线切换方案工作。
hadoop 系统架构设计师 作文

英文回答:The Hadoop architecture designer is the professional responsible for developing and implementing the Hadoop architecture。
They should have extensive data—processing experience, an in—depth understanding of the multiponent aspects of the Hadoop ecosystem, and a deep understandingof the principles of system architecture design。
As Hadoop architecture architects, they should develop a sound system architecture programme based on business needs to ensure high availability, performance and scalability of the system。
They also need to work closely with team members to assist in the implementation of the system architecture and to monitor and optimize the functioning of the system。
Hadoop系统架构设计师是负责制定并实施Hadoop系统架构的专业人士。
他们应当拥有丰富的大数据处理经验,深刻了解Hadoop生态系统的多元组件,具备系统架构设计原理的深刻理解。
作为Hadoop系统架构设计师,他们应当根据业务需求制定合理的系统架构方案,以确保系统的高可用性、高性能和可扩展性。
论软件系统架构风格 范文

论软件系统架构风格范文朋友,今天咱们来聊聊软件系统架构风格这事儿。
你可以把软件系统想象成一个超级复杂的大迷宫,而架构风格呢,就像是这个迷宫的设计蓝图。
首先得说说分层架构风格,这就像是盖楼一样,一层一层的。
比如说,最底下那层可能是管数据存储的,就像大楼的地基,数据在这儿安安稳稳地待着。
往上一层呢,可能是处理业务逻辑的,就好比楼里的各种管道电线布局,得让各个功能正常运转。
再往上,就是和用户交互的那层啦,就像大楼的外立面,用户直接看到和用到的部分。
这种分层的好处就是每一层分工明确,要是哪一层出了问题,就像楼里某一层水管爆了,你可以很快定位到是哪一层的毛病,不会满世界瞎找。
然后是事件驱动架构风格。
这就有点像在一个热闹的市场里,每个摊位(组件)都在等着特定的消息(事件)。
一旦某个消息传来,就像有人在市场里大喊一声“新鲜水果到货啦”,相关的摊位就开始行动起来。
比如说,有个消息是用户下单了,那订单处理组件就被这个事件触发,开始处理订单流程。
这种风格特别适合那种需要高度交互和实时响应的系统,就像电商平台,每时每刻都有各种各样的事件在触发不同的操作。
还有微服务架构风格呢,这就好比把一个大公司拆分成好多小团队。
每个微服务就像是一个小团队,各自负责一块特定的业务功能。
比如说,有专门负责用户认证的微服务,有处理商品推荐的微服务。
它们之间通过轻量级的通信方式来协作,就像小团队之间打电话或者发个邮件。
这样做的好处是每个微服务可以独立开发、部署和扩展。
要是商品推荐这个小团队想搞个新算法,不用影响到整个大系统,就像小团队内部自己搞个小创新,不影响其他部门的正常工作。
管道过滤器架构风格也很有趣。
想象一下,数据就像水流,在一个个管道里流动,而过滤器呢,就是管道中间的小滤网。
比如说,你要处理一个文件,可能先有个过滤器把文件里的格式错误筛掉,然后下一个过滤器对数据进行加密之类的操作。
每个过滤器只做一件特定的事情,数据就这么依次通过各个过滤器,最后得到处理好的结果。
系统分析师论文范文-论信息系统架构设计

论信息系统架构设计【摘要】本人于2010年7月参加国内某某知名港口供电业务系统的开发工作,在该项目中主要担任系统架构师工作,主要负责该系统架构和网络安全体系架构设计。
近年来随着港口吞吐量的增加,港口供电业务信息化需求越来越强,而传统的管理方式已经无法满足业务需求,因此我们开发此系统。
通过需求分析,我们将该系统分解为港口供电系统电费管理、生产调度管理、安全管理、机电设备管理、物资管理、申报流程管理、网上办公管理、报表及查询分析管理。
本文以某某港口的供电业务系统为例,分析了管道/过滤器体系架构风格、事件驱动风格、层次架构风格以及客户端浏览器风格,以及以上三种架构风格是如何在该系统中应用的,充分说明了体系架构风格对系统开发的重要性。
实践证明,采用良好的软件体系架构风格,不仅可以节省开发和维护成本,提高系统开发的效率,而且可以使系统具有很好的开放性、易扩展性,便于移植性。
【正文】本人于2010年7月参加了国内某某知名港口供电业务系统的开发工作,在该项目中担任系统架构师工作,主要负责系统架构和网络安全体系架构的设计。
随着港口生产业务的发展,港口供电线系统越来越繁忙,而传统的管理方式越来越无法满足港口供电系统信息化管理需求。
原来存在一的些信息系统“信息孤岛”现在较为明显。
因此,开发新的系统满足日系增长的港口供电业务系统信息化要求日益强烈,为了消除“信息孤岛”现象,同时使新开发的系统能够适应港口未来业务的发展,新的系统架构必须设计良好,具备兼容性、可扩充性。
通过需求分析我们将该系统分为电费管理、生产调度管理、安全管理、机电设备管理、物资管理、申报流程管理、网上办公管理、报表及查询分析管理模块。
为了适应港口供电系统信息化不断发展的需求以及对整个系统架构的分析。
我们采用面向服务(SOA)的架构,运用WCF技术进行设计。
数据库采用oracle10g,系统通过微软的.net平台C#进行开发。
为了高效的开发出此系统,我们采用以下方法来实现此系统功能。
系统架构师 范文 10篇

系统架构师范文 10篇作为系统架构师,他们负责设计和实施复杂的软件系统架构。
下面是10篇关于系统架构师的范文,从不同角度介绍了他们的职责、技能和重要性。
1. 系统架构师的职责:系统架构师负责分析和理解客户需求,设计系统架构,并确保系统能够满足性能、可靠性和安全性的要求。
他们需要与开发团队合作,确保系统的可扩展性和可维护性,并解决系统开发过程中的技术难题。
2. 系统架构师的技能:系统架构师需要具备广泛的技术知识,包括软件开发、数据库设计、网络和安全等方面的知识。
他们还需要具备良好的沟通和团队合作能力,能够与不同的利益相关者进行有效的沟通,并协调开发团队的工作。
3. 系统架构师的重要性:系统架构师在软件开发过程中起着至关重要的作用。
他们的设计决策直接影响系统的性能、可靠性和可维护性。
一个好的系统架构可以提高系统的效率和可扩展性,减少开发和维护的成本,提高用户的满意度。
4. 系统架构师的角色:系统架构师不仅仅是一个技术专家,还需要扮演领导者和顾问的角色。
他们需要领导开发团队,指导团队成员的工作,并为项目提供技术支持和建议。
他们还需要与客户和利益相关者进行沟通,理解他们的需求,并提供解决方案。
5. 系统架构师的挑战:系统架构师面临着许多挑战,包括技术变化的快速发展、项目需求的不确定性以及团队协作的复杂性。
他们需要不断学习和更新自己的技术知识,同时保持对业务需求的敏感性,以便设计出最佳的系统架构。
6. 系统架构师的方法和工具:系统架构师使用各种方法和工具来支持他们的工作。
例如,他们可以使用UML(统一建模语言)来建模系统架构,使用设计模式来解决常见的设计问题,使用性能测试工具来评估系统的性能等。
7. 系统架构师的职业发展:系统架构师是一个高级的职业角色,他们可以通过不断学习和积累经验来提升自己的职业水平。
他们可以参加培训课程、获得相关认证,并积极参与行业交流活动,与其他系统架构师分享经验和知识。
8. 系统架构师的团队合作:系统架构师需要与开发团队密切合作,确保系统架构的正确实施。
软考高级系统架构设计师范文

软考高级系统架构设计师范文各位小伙伴,今天咱们来唠唠软件架构这事儿。
在软件世界的初期啊,就像是盖小茅屋似的,简单直接。
那时候的软件架构可没现在这么复杂。
比如说,一个小型的单机应用,可能就是简单的一层架构,所有的功能代码都揉吧揉吧放在一起。
就像一个小盒子,里面装着实现各种功能的零碎玩意儿,虽然简单,但是也能满足基本的需求,就好比小茅屋能遮风挡雨一样。
随着用户需求像气球一样膨胀,软件也得跟着成长啊。
这时候就出现了分层架构,这可就像是给软件盖了个小楼。
一般常见的三层架构,有表示层、业务逻辑层和数据访问层。
表示层就像是房子的外观,是用户能直接看到和交互的部分,要设计得美观又好用。
业务逻辑层呢,就像是房子的骨架,支撑着各种业务规则和流程的运行。
而数据访问层则是小楼的地基,负责跟数据库打交道,存储和获取数据。
这分层的好处可多了,就像小楼各个部分分工明确,哪出了问题也好找,维护起来方便多了。
再往后呢,微服务架构就闪亮登场了。
这微服务啊,就像是把原来的大楼拆成了一个个小公寓。
每个微服务都有自己独立的功能,就像每个小公寓都能满足住户不同的生活需求一样。
它们可以用不同的技术栈来开发,彼此之间通过轻量级的通信机制,比如说RESTful API来交流。
这样做的好处是,开发团队可以针对每个微服务独立开发、测试、部署,效率大大提高。
就好比一个小区里,不同的小公寓可以同时装修,互不干扰。
而且,如果一个微服务出了问题,也不会像以前那样一下子把整个系统搞垮,就像一个小公寓着火了,不会把整个小区都烧没了,是不是很机智?不过呢,在设计软件架构的时候,也不是越新越复杂就越好。
咱们得考虑很多实际的因素。
比如说成本,新的架构可能需要更多的技术人才和硬件资源,这就像盖豪华别墅肯定比盖小茅屋花钱多一样。
还有就是团队的技术能力,如果团队成员对新架构不太熟悉,那硬上就可能会搞出一堆麻烦来,就像让一群只会盖土坯房的工匠去盖摩天大楼,那肯定会状况百出。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
论文目录一、论基于DSSA的软件架构设计与应用二、论基于Rest服务的web应用系统设计三、论软件可靠性设计与应用一论基于DSSA的软件架构设计与应用精品文档,超值下载【摘要】去年三月份,我所在的公司启动国网电力用户用电信息采集系统项目,我被任命为项目负责人。
国网电力用户用电信息采集系统是国家电网公司坚强智能电网建设的一部分。
由于公司之前为南网(主要是广东省)开发过类似用电信息采集系统,且公司准备在电力行业做强做大,我提出了采用DSSA技术来研发国网用电信息采集系统,得到公司领导层的一致赞同。
由于项目功能实现上具有明显的阶段性,我决定采用演化方式来实现DSSA及完成应用产品开发。
一是对原有系统、文档及国网用电信息系统功能规范进行分析,完成DSSA;二是对原有系统进行部件提取,做为核心资源的公共部件;三是加强对核心资源的管理,方便研发工程师查找部件及扩展部件。
经过近一年的努力,终于完成了公司用电信息采集系统核心资源的建立,也完成了国网电力用户用电信息采集系统项目。
【正文】去年三月份,我所在的公司启动国网电力用户用电信息采集系统项目,我被任命为项目负责人。
国网电力用户用电信息采集系统是国家电网公司坚强智能电网建设的一部分。
公司之前开发过广东电网公司计量营销一体化系统,类似于用电信息采集系统。
我对广东电网公司计量营销一体化系统的功能规范和国网电力用户用电信息采集系统的功能规范进行分析,发现除了系统内各自的通信协议不同外,其它的功能需求大体上相同。
整个采集系统都是分三层实现,主站层,采集终端层和电能表层。
由于电能表已经规范化了,有专门的表计生产厂家,这一层不需要投入资源进行研发。
从公司目前现状来看,主站层投入研发工作量较少,一是主站的开发中模块化做得比较好;二是用户的需求基本一致。
国网用电信息采集系统仅需要在广东电网公司计量营销一体化系统主站进行界面调整和支持国网用电信息采集系统通信协议即可达到要求。
根据之前开发的经验,用电信息采集系统开发的重点是采集终端的开发。
因为采集终端需要安装到现场,而现场的用电环境各异,能够到达的远程信道也不同。
采集终端可维护性低或可靠性低,则会产生大量的维护工作,影响公司品牌及利润。
根据用电信息采集系统的要求,采集终端分为集中抄表终端、专变采集终端和公变采集终端。
广东电网公司计量营销一体化系统的采集终端大体上也分为上述三类:低压集抄终端、负荷管理终端、配变监测终端。
通过对采集终端的功能要求进行分析,可以看出它们归属于一个产品家族。
我在项目组启动会议上提议采用DSSA技术进行采集终端产品的研发,建立公司用电信息采集系统核心资源,同时将计量营销一体化系统的采集终端也归结到产品家族中。
众所周知,DSSA(特定领域软件架构)就是在一个特定的问题领域中支持一组应用的开发,这些应用形成产品家族。
DSSA是软件重用的一种手段,它由领域模型、参考需求、参考架构组成重用元素。
用电信息采集系统各终端基本需求都是对外接的电能表或测量点的读数进行采集,稍做处理后通过GPRS/CDMA信道远程传输给采集系统主站端。
采集终端的功能模块一般包括测量点采集模块,表计规约模块,现场总线模块,PPP拨号模块,主站命令模块,本地维护模块,程序升级模块,数据存储模块,交流采样模块,负荷控制模块等等。
由于采集终端在现场使用的特殊性,它的非功能性要求主要集中在可靠性、可修改性和易用性。
现场用电环境复杂,信道各异,要求采集终端具有高可靠性。
由于市场上的电能表支持的规约各异及现场总线发展快速,要求采集终端可扩展性强,能快速支持新的表计规约和现场总线,且支持远程升级操作。
由于在现场施工时多是由工程队进行安装,工程队人员的素质高低不齐,要求采集终端在本地操作具有一定的智能化,且要求调试简单。
根据以上分析,采集终端软件架构采用分层设计比较合适。
分层设计的软件可修改性和可扩展性比较好。
由于分层开发,将关注点分离到各层,将系统的复杂度分到各层中,相应可靠性也可以得到提高。
在用电信息采集系统研发中,我决定采用演化方式进行开发。
首先对原有系统、文档及国网用电信息系统功能规范进行分析,完成DSSA。
在项目启始阶段,我对计量营销一体化系统及用户需求文档及设计文档进行分析,将用户需求用EXCEL表格列出来。
然后再对国网用电信息采集系统的功能规范进行分析,用同样的方式列出用户需求,需求比对后发现它们之间的功能要求大体上是一样的。
但由于通信协议不同,会导致一些功能在实现上有差别,如主从终端连接功能,用电信息采集系统采用一条命令完成主从终端的所有通信,而计量营销一体化系统分成建链、传输、断链三条命令来实现。
于是我决定将基础业务模块做成通用的模块,根据不同的参数来初始化模块,或各具体产品自己适配模块。
按照这个需求,我对核心资源进行分层设计。
总体上,核心资源分成三层,由低到高依次是:基础资源层,基础业务层,扩展业务层。
基础资源层包括多进程框架,GUI系统,系统API和驱动封装,虚拟通道模块等等。
由于采集终端的操作系统是LINUX,而且通讯口资源比较多,采用一个进程管理一个通讯口,单一管理便于维护,因此提供多进程框架,方便应用开发时的进程增加。
对系统API和驱动进行封装,方便以后代码的移植。
基础业务层主要包括用电信息采集系统的各个基础功能模块,有现场总线模块、表计规约模块、测量点采集模块、交流采样模块、负荷控制模块等等。
扩展业务层主要对基础业务层中的各个模块进行参数化和适配,以适应本系统的需要。
根据目前的情况,扩展业务层主要有计量营销一体化系统部件包和国网用电信息采集系统部件包。
其次对原有系统进行部件提取,做为核心资源的公共部件。
计量营销一体化系统的采集终端在研发时由于没有采用组件开发技术,各功能模块和应用层耦合较强,在提取公共部件时需要对应用层解耦。
各个具体的功能都有相应的控制参数,而控制参数可以由主站命令模块进行读写,将控制参数管理模块做成中介者模式,很好地实现了各功能模块的解耦。
如PPP拨号模块,和应用层的拨号参数读写命令耦合在一起,通过参数管理模块将主站命令模块和PPP拨号模块解耦。
在对计量营销一体化系统的采集终端进行部件提取过程中,每完成一个部件的提取,则对原采集终端软件系统进行重构,并完成集成测试和确认测试。
这样可以始终端保持原采集终端软件系统可行,成为第一个验证部件的产品。
最后加强对核心资源的管理,方便研发工程师查找部件及扩展部件。
到了开发的后期,核心资源库的公共组件慢慢多起来了,同时由于在扩展业务层对很多基础部件进行了参数化和功能扩展,很多部件在标识和功能上都差异不大,出现了有点混淆的问题。
为了更好地管理,我建立了WIKI服务器,采用WIKI服务器进行组件管理,在WIKI服务器上对组件的标识、功能、接口及与相关组件的差别等等进行了描述。
研发工程师输入相关的关键字就能找到匹配的组件及每个组件详细的说明,方便研发工程师使用。
随着用电信息采集系统核心资源库的建立,国网用电信息采集系统项目的功能也逐渐完善起来。
采集终端软件系统在今年8月份通过了国家电网电力科学研究院的全功能测试,这对全体项目组成员是一个振奋人心的好消息,说明我们的努力得到了认可。
(2811字)二论基于rest服务的web应用系统设计【摘要】2011年上半年,我在上海中软资源软件有限公司(ICSS),作为项目组长参与了公司人事管理(HR)系统开发。
在系统开发前,公司在信息化建设中,也已采用请假流程、薪资管理、招聘等系统,虽然较为成熟,但彼此间互相独立,业务数据无法共享。
且公司各个分公司间,对HR系统使用情况也截然不同,有的分公司由于各种原因,仍然采用手工管理本应信息系统化的业务流程。
公司是以软件外包业务为主,所以人力资源管理系统在公司信息化建设中的地位至关重要。
这次开发的HR系统,将整合现有的业务系统,在整个公司内部推行使用,以解决信息孤岛带来的效率低下问题。
为了以后的扩展需要,保证在业务和空间尽可能大的扩展性。
因此,经过研讨,决定采用REST Web服务方式实现系统应用层。
本文将就HR系统开发过程,描述一下对REST服务的使用和认识的体会。
【正文】上海中软HR管理系统整体采用基于B/S的三层架构设计。
我做为项目组长参与系统需求分析至测试和部署的整个过程,直接向IT部门总监汇报。
负责沟通需求,建立项目组,确定系统架构风格和技术实现方案。
预定开发周期为120天,系统部署后有两个月的试运行期,项目组人数在5-10人间变动。
由于项目开发资源(比如时间)紧张,公司HR系统业务逻辑复杂,旧系统改进与新需求交织,项目组对业务并不熟悉,难以在一开始预估将所有业务移植到新系统的时间。
因此,在开发模型选择上,采用螺旋式增量开发。
首先不必追求大而全,在开发完系统基本框架基础上,优先移植最亟待改进的业务。
经与领导和HR部门沟通研究,递交了系统准备实现的功能列表,按不同实现优先级排列,标记为P1的功能优先级最高,必须实现。
标记为P2/P3/P4的功能优先级依次降低,必要时可以根据资源情况需要进行裁剪。
在开发技术的选择上,由于本公司业务以微软外包为主,公司的开发人员大都熟悉一项或多项微软开发技术,作为微软公司合作伙伴可以低成本获取软件开发和管理工具,方便地获取技术支持。
所以决定该系统采用微软技术:表示层基于 4.0;中间业务层采用REST服务实现,基于WCF(Windows Communication Foundation) 4.0; 数据访问层基于微软的ORM构件-AEF( Entity Framework) 4.0。
在构件的选择上,尽可能降低开发工作量,提高效率,力求避免把主要精力放在通用的技术细节,而是放在业务逻辑的研究和实现上。
系统部署共有三台服务器:两台Web服务器Windows Server 2008 + IIS 7.5,分别运行系统网站及REST服务;一台数据库服务器Windows Server 2008 + SQL Server 2008。
经过试运行,于7月份投入正式使用。
目前系统状况良好,经运行评估,实现了全部必须功能,性能、安全性等质量均达到了原定设计要求。
目前系统正在根据业务需要,由后续项目组做二次开发中。
采用REST服务方式实现系统业务逻辑层,完全符合项目开发时考虑的两个因素:简单和灵活。
传统的Internet Web服务一般基于SOAP协议,构造SOAP请求XML虽然目前.NET Framework已实现较好地封装,但不便非.Net语言调用,如客户端页面中大量采用了Ajax技术,使用JavaScript构造Soap请求非常困难。
在调用服务的Web页面开发完成前,为了调试和测试服务,必须写单独的测试程序,十分不便。
相比之下,而REST服务具有非常出色地灵活性。