首页 | 互联网 | IT动态 | IT培训 | Cisco | Windows | Linux | Java | .Net | Oracle | 软件测试 | C/C++ | 嵌入式开发 | 存储世界 | 服务器
网络设备 | IDC | 安全 | 求职招聘 | 数字网校 | 网页设计 | 平面设计 | 技术专题 | 电子书下载 | 教学视频 | 源码下载 | 搜索 | 博客 | 论坛
ASP | ASP.NET | JSP | PHP | AJAX | XML | Java script | HTML/CSS | 服务器类
各大城市软件开发培训、软件人才免费咨询热线:400-700-5807
 您现在的位置: 中国IT实验室 >> WEB开发 >> WEB开发 >> 正文
软件架构训练基础教程之层次及使用
ChinaItLab  2004-12-28  保存本文    收藏本站


  两层系统(图12)允许用户界面和应用程序代码直接访问数据库和网络存储的API。应用程序使用数据库中存储的数据模型,但是不需要在该模型之上建立逻辑模型。当开发中的系统是一个原型系统或者已经知道其生命周期较短,期间API不会发生变化的时候,两层应用程序是理想的。典型情形下,这种方式用于小型的应用程序,它们的开发成本和时间都很少。
  
 

  
图12.两层架构

  
  此外,两层系统对于面向组件的开发环境也有意义,这种方式用在特定组件的实现之中。组件接口提供了一个隔离层,与这种方式的后果相反。使用脚本语言建立的多数应用程序都属于这一类,因为这种情况下多架构层的开发可能非常麻烦,不切实际。
  
  最后,两层的方式将提供更好的性能,并减少控制资源锁定的机制的需求。尽管两层模型在处理多个并发用户使用应用程序方面的能力有些欠缺,但是它的简单性可能远远优于其它的选择。此外,通过向数据库应用程序添加通用的数据处理程序,常常能用数据存储过程来消除一些简单的共享数据的问题。
  
  随着数据库的发展,三层(Three-tier)应用程序已经很普通了。三层系统(图13)满足了执行的隔离的需求。它基本上对于存储/数据库层可能被修改的任何应用系统都是理想的。但是,这种技术的隔离并不仅限于数据库。它能够,并且应该用在任何不要求应用程序开发者,或更重要的应用程序维护人员对于最低层有详细的了解就能共享代码的环境。
  
 

  
图13.三层架构

  
  相当频繁的重复使用是一个主要的设计考虑因素,在这种情形下需要建立应用程序模型以允许它的一部分被多个用户界面查看组件重复使用。它有一个指导方针是,在应用程序需要相同数据的多个视图的任何时候,开发者应该考虑使用三层方式代替两层方式。
  
  从两层模型迁移到三层模型需要考虑的主要问题包括适当的网络资源的可用性和管理并发数据访问的加锁方案。
  
  作为越来越强调网络计算的结果,最近出现了一种新的趋势,就是四层系统(图14)。当应用程序层需要支持高级行为的时候,可以考虑四层系统。四层模型与三层模型相似,但是其应用程序层被分解为表现层和对话层。表现层呈现了应用程序模型的视图部分,以及被特定视图的操作所约束的应用程序逻辑。对话层处理表现组件之间的资源共享的问题,包括与潜在的分布式业务对象模型通讯。
  
 

  
图14.四层架构

  
  当表现组件之间需要大量的协调,并且需要在它们之间共享很多资源的时候就需要四层开发方式。例如,由于性能问题的缘故,缓冲是必要的。对话层允许很多不同的表现组件利用缓冲提供的性能优势。同样,如果某个客户端被迫作出多个、潜在的复杂的分布式结论,就可以考虑把这种逻辑封装到应用程序的一个对话层中。
  
  很多因素表明考虑四层开发方式的需求为数众多。很明显,任何四层系统预期的生命周期很长。已有的组件和子系统的重复使用对于引发与四层系统相关的费用来说通常都是足够充分的理由。同样,预计个别组件会频繁改变设计的目标的环境需要把系统的主要部分与组件实现中的变化隔离开来。四层方式提供了对随技术的发展(包括传统的和新的技术)组件和子系统不断地移植的支持。此外,四层系统比三层系统更容易升级。
  
  其它一些考虑因素包括组件的可靠性是未知的或可变的系统。在间歇性的组件失败中,四层系统可以轻易地合并运行时发现机制(runtime discovery mechanisms)以切换到不同的组件实现上。有四个或多个层次的很多复杂系统最少提供了发现新能力(例如,涉及到新的Web服务实现时,它们就实现了UDDI记录)的一些能力。如果环境利用了多个、潜在地冲突的技术,四层系统提供了用于管理对话管理层(session management layer)或业务域对象层中的差异的机制。同样,如果客户端有多种不同的应用模型,而这些模型都需要共享共同的数据资源,那么四层模型也可能是理想的。经常地,在其它的应用程序组件不希望阻塞并等待资源,不得不在对话层中管理客户端的访问的环境中,应用程序组件允许业务域组件处理资源管理的问题并能够经受得住等待大多数资源。
  
  对等(peer-to-peer,P2P)架构方式对于多数需要高度可升级的系统是理想的。同样,当分布式组件需要协调完成某种事务并且通讯以及其它组件的可靠性可能变化的时候,它们也是有用的。在开发P2P系统的时候操作环境很容易被理解是非常重要的,因为不好的习惯可能导致重大的灾难。同样,当使用P2P技术的时候,接口的标准化和不允许修改也是很重要的。被迫应付多个P2P网络的不兼容的版本简直是个梦魇。
  
  N层和/或这些方式的组合(图15)应该仅仅用于十分复杂的、由多个软件生命周期不同的子系统和组件构成的系统。这对于大多数大型的不同种类的企业系统是真实的,在这种情况下,在任何时候组件都在升级、更换或添加。对于这种系统,考虑的事项必须通知系统组件的管理部门。
  

  
图15.N层和对等架构的组合

  
  哪些特性值得使用复杂的N层系统呢?通常,它包括管理用于增强用户体验的大量数据的系统。其需求可能包括记载了用户的概要信息、允许用户设置参数控制Web页面和应用程序、管理复杂的安全需求(例如用于控制资源的访问控制列表)、允许用户要求后端应用程序中的存储管理和规则执行的进行改变等一些Web站点和应用程序。
  
  有了N层应用程序,应用程序的功能被分解为大量的逻辑层,它们可以分开维护和配置。每个层次的功能没有三层应用程序那么标准,并且经常把很多层合并成一组来提供表现、应用和/或业务逻辑和存储管理功能。支持多个层次的主要优点是更容易修改某个层次而不需要改变很多层次(在大多数情形中不需要改变其它任何层次)。此外,通过变更一个或多个层次的分布或载入,应用程序能够被扩大为处理大量的用户负载和/或数据。通常这种缩放对于其它层次是透明的,在很多情况下还是自动的。实际上,多层架构被设想为跨多个计算机和处理器分布程序,而不是在某个应用程序中定义软件的边界。
中国IT教育热线咨询
相关文章
Flash+PHP+Mysql简单留言本制作实例教程
基础知识:Java Web三层架构的配置详解
使用AJAX技术构建更优秀的Web应用程序
ASP应用程序设计的Web状态管理分析
Ajax驱动的Web站点
最新文章
·Ajax光环背后的隐患
·Windows操作系统下JSP程序开发环
·如何在Java程序中实现FTP的上传下
·Java应用:编写高级JavaScript应
·初学者学习java第一步——JDK环境
 文章评论

 精彩友情推荐
·Asp源码 PHP源码
·CGI源码 JSP源码
·建站书籍教程
·服务器软件 .net源码
·建站工具软件
·IDC资讯大全
·机房品质万里行
·IDC托管必备知识
·全国IDC报价
·网站推广优化
ASP.NET ASP PHP JSP
·ASP.NET开发中的八个最佳实践09-21
·ASP.NET开发中的验证码技术09-18
·控件开发asp.net处理标签间内容09-18
·程序员成为成为编程高手的二十二条军规09-18
·VS 2005和ASP.NET 2.0中处理CSS样式表09-17
·如何有效监控.NET应用程序09-16
·浅析ASP.NET 2.0 Client Callback09-16
·探讨ASP.NETMVC框架内置AJAX支持编程技术09-15
·ASP.NET2.0的URL映射的实现方法09-13
·Java\.net\PHP比较 程序员眼中的.Net世界09-12
·asp.net中实现观察者设计模式09-12
·谈JSP与XML的交互09-01
·ASP连接11种数据库语法总结09-01
·如何利用ASP实现邮箱访问09-01
·ASP随机数的应用技术09-01
·定时使用DWRUtil.addRow生成表格08-27
·ASP申请单动态添加实现方法及代码08-27
·关于ASP中脚本执行顺序的讲解08-25
·ASP程序实现网页伪静态页源代码08-25
·ASP如何调用webservice08-22
·ASP实例:读取xml文件的程序08-14
·Asp组件检测函数08-11
·Linux系统下让PHP提高性能的工具APC05-06
·一个完整、安全的PHP用户登录系统11-14
·Apache+PHP+MySQL建立数据库驱动的动态网站08-24
·用SSH与PHP相连接 确保数据传输的安全性08-23
·PHP5手动最简安装方法08-03
·PHP程序加速探索之服务器负载测试07-11
·完全讲解PHP+MySQL的分页显示示例分析05-30
·用Suhosin加强PHP脚本语言安全性05-26
·初学入门 PHP 和 MySQL05-17
·传奇的诞生 PHP三位创始人简介05-10
·大型系统上PHP令人不爽的九大原因05-10
·JSTL中fn表达式的使用说明09-18
·JSP Web框架研究:Struts09-16
·JSF在GlassFish管理控制台中的应用09-12
·介绍JSP程序动态网站环境搭建的详细步骤09-12
·Jsp页面中文参数传递get和post方法分析09-12
·Java\.net\PHP比较 程序员眼中的.Net世界09-11
·JavaScript最常用的55个经典技巧09-08
·Windows操作系统下JSP程序开发环境配置09-03
·JSF点滴积累--权限验证09-03
·小小分页帮助程序08-29
·经验分享全过程JSP程序员完全蜕变手册08-27
  培训中心
人才交流中心 技术交流中心
  ITLab技术交流平台: