您的位置:首页 > 其它

软件三层结构设计

2011-05-19 19:38 197 查看
本人在一家大型的台资制造企业里从事OA系统和生产管理系统的开发,作为公司资深IT的技术骨干,在2011年5月,我负责了公司里“电子表单申请系统”的开发。考虑到系统的可维护性、可扩展性、可用性,我选择了三层结构作为该系统的软件体系结构,在详细的设计三层结构的过程中,我采用ASP.NET ,oracle 10g,我采用的架构得到了同事和领导的一致认同和称赞。但是,我也看到在三层结构设计中存在的一些不足,例如中间层得负载均衡算法过于简单,容易造成系统的负荷不均衡,没有使用缓冲技术。
我所在的公司是一家大型的台资制造企业,厂里的员工多达数千人,公司非常重视企业的信息化建设,强调以企业的信息化带动生产制造的信息化、物流的信息化和办公的自动化。居于这种管理理念,我们公司开展了员工建议提案系统/电子表单申请系统。
像我们公司这种劳动密集型的制造企业,非常鼓励员工的创新,所以提出了员工建议提案系统。这个系统并非不同的提案系统,它设计到公司的CIP系统(改善提案系统)、epatent系统(专利系统)和6sigma系统(6西格玛系统),每个系统都设计到公司的提案,而员工建议提案系统需要收集各个提案系统的数据进行汇总分析,以生成报表。
为了增强系统的可扩展性、可维护行和可用性,我决定使用ibatis.net作为系统的持久层框架。Presentation表示层,Business Logic业务逻辑层,Persistence持久层,业务逻辑层负责前台页面的UI显示,业务逻辑层, 持久层是一个很核心的层,持久层从上到下,可以细化为Abstraction Layer抽象层,Persistence Framework持久框架-->JDBC-->iBatis.net,jdbc就是一个框架,ibaits.net是在jdbc之上的一个持久化框架。Driver/Interface驱动接口层。
我们采用分层设计的思想。在表现层,我们采用了ajax,jquery技术,局部刷新技术。业务逻辑就是业务的执行先后顺序,增删改查。持久层负责数据的持久化操作。ibatis.net在标准的持久化框架如ADO.NET中所出的位置是什么呢,简单来书就是在ADO.NET的基础上封装的一层,ibatis.net提供了很多操作底层数据库的API.我们是这种API操作底层数据库变得更加方便。
官方的调查和统计,与传统的ADO.NET进行比较,
1、使用ibatis.net 减少了61%的代码量。
2、ibatis.net是目前最简单的持久化框架之一,在目前流行的持久化框架当中,ibatis.net算是最简单的。
3、架构级性能增强。
4、SQL代码从程序代码中彻底分离,可重用很强。整个业务逻辑没有一个SQL语句,页面显得非常干净,如果像ADO.NET中把sql语句和业务代码混在一起的话,页面会显得非常混乱。
5、增强了项目中的分工。因为SQL语句已经独立出来了,项目中的分工也更加细化了,那么项目组中负责数据库同事就可以只关注SQL语句的编写,做业务逻辑的,就只可以关心业务逻辑的编写,当程序要调用SQL时,程序只需要获得sql语句中的id即可(或者说statementName).这也正是ibatis.net框架所带来的好处。
5、增强了移植行。
分层:
分层的目的是为了好管理,不然的话,你都放在一起不好管,
分层后,每一层做的东西就比较单一。
所有的技术和方案都是有场景的。在什么场景下,怎样分比较好。
分层也是有场景的,场景决定分层。
在这种场景下,三层架构可能是好的,但在另一种场景下,则未

需求分析的重要性:需求分析
作为一个可扩展性的系统,新系统必须充分考虑今后可能的扩充和改变,不能仅仅按当前应用需求来设计数据库。
确定用户的最终需求是一件很困难的事,这是因为一方面用户缺少计算机知识,开始时无法确定计算机究竟能为自己做什么,不能做什么,因此往往不能准确地表达自己的需求,所提出的需求往往不断地变化。另一方面,设计人员缺少用户的专业知识,不易理解用户的真正需求,甚至误解用户的需求。因此设计人员必须不断深入地与用户交流,才能逐步确定用户的实际需求。
确定系统边界,我们要在框子里面办事情。

会要讨论法:是指开发方和用户方召开若干次需求讨论会议,达到que底弄清项目需求的一种需求获取方法。
原型法:对于某些试验性、探索性的项目,更是难于得到一个准确、无二义性的需求。而原型法是获取这类项目需求的有效方法。原型法强调的是软件开发人员与用户不断的交互,使用户及早获得直观的学习系统的机会,通过原型的不断循环、迭代、演进,不断适应用户任务改变的需求,在原型的不断演进中获取准确的用户需求。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: