实用体系结构new

实用体系结构new

ID:38695851

大小:31.00 KB

页数:5页

时间:2019-06-17

实用体系结构new_第1页
实用体系结构new_第2页
实用体系结构new_第3页
实用体系结构new_第4页
实用体系结构new_第5页
资源描述:

《实用体系结构new》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、实用体系结构:逻辑分层为什么我们就要使用n(物理)层体系结构来构建系统?这是一篇基础性的文章,介绍了人们对于软件的一种理念,即当我们面对新项目时往往将系统明确地分为三个物理层次:表现层,用以处理所有用户输入和数据显示问题;业务逻辑层,存放所有“业务逻辑”(本身是一个完全无定性的名词,可准确表示说话者希望其表达的意思);数据访问或资源层,存放用于检索、修改或存储数据的所有代码。当被问道为什么要这样做时,许多人只能说出最普通的答案,“因为我的老师(或前任主管或刚读过的一本书)总是这种做”。与普通的进程内调用相比,跨物理层通信会带来高达三到六个数量级的巨大性能成本,两者的

2、差距就相当于一个是到楼下杂货店而另一个是到冥王星。归根结底,请记住以物理分层的方式构建应用程序并不是开发人员的唯一选择。举个例子,想想UNIX开发人员早已熟知而.NET开发人员随着MicrosoftWindowsPowerShell的即将推出才开始领悟到的一个真谛:将小部件分割成可以互馈的片段可以创建出一些功能极强的合成工具,避免了用来维护复杂应用程序所需的相应复杂性。例如,对一般的C#或VisualBasic语言开发人员而言,创建一个能够在文本文件中搜索并替换某个字符串序列的工具可能是件容易的工作,而这对于掌握PowerShell的人则更加显得微不足道,因为它只需

3、串联几个“cmdlets”:其中一个用于遍历文件,另一个用于搜索文件内容并用新文本替换所搜索的文本,第三个用于将新内容写入磁盘。这是一个非常好的模型。具体而言,由于每个组件都能够专注于特定的任务(遍历、搜索、写入),从而简化了它们的维护和设计工作。在匆忙地对n(物理)层模型做出审判之前,它应该得到一次救赎的机会。对于初学者,我们可以对过于通用的“n层”一词的使用稍加重新界定,并指出“物理层”和“逻辑层”的重要区别。“逻辑层”是对软件的逻辑分割,是在开发人员级对各关注点的基础分割,这样我们可以更加容易地划分系统的职责。这在[POSA1]中有进一步的论述。在这本书中谈及

4、逻辑层模式时讲到,使用逻辑层“有助于构筑可以分解为子任务组(每组子任务处于某个抽象级别)的应用程序”。换句话说,它是对各关注点的典型分割方式:将企业系统中所涉及的各种任务(包括检索数据、存储数据、针对数据执行业务规则、显示数据、搜集输入值等等)分割为组件或子节,以便我们能够更加轻松地跟踪在何时何处发生了什么。当然,最为常见的方式是将任务分为“表现”、“逻辑”和“数据访问”(逻辑)层。但请注意,我们并没有立即假定每个逻辑层将在“哪里”运行,目前还没有。而另一方面,“物理层”是硬件(通常是某种形式的计算机)的物理分层,我们系统的一部分或全部可以运行于其上。传统的客户机/

5、服务器计算(即写入可以针对运行于单独服务器上的数据库执行SQL语句的程序)是一个由两个物理层构成的系统。我们每天都享用的万维网也是在两(物理)层方法的基础上构建的,其中一个物理层(即客户机)位于某人的家中或办公室内并远程访问位于某处服务器机房中的另一个物理层。这样的例子数不胜数。这似乎有些文不切题。归根结底,表现层不总是在客户计算机上吗?数据访问层不总是在数据库服务器上吗?而业务逻辑层不总是在前两者之间某处的计算机上吗?我们来进一步研究一下基于Web的典型三(物理)层应用程序模型:基于Web的应用程序中的“表现”逻辑层是Web浏览器,因此不在我们的掌控之中。浏览器将

6、要显示的HTML通常必须从服务器内所运行的某种形式(ASP或ASP.NET)的代码组件中生成并被发送给浏览器。这就意味着“表现”逻辑层现在要跨两个物理层进行分割。同样,“数据访问“逻辑层也并不是完全位于数据库物理层,因为用于访问和处理数据的命令(即SQL)必须从数据库层之外被生成和发送。这就意味着,与表现逻辑层一样,数据访问逻辑层代码现在至少要跨两个物理层进行分割。这使我们认识到,尽管人们似乎很自然地认为表现逻辑层是在客户机物理层上运行,而实际上这种情况仅存在于目前称为“富客户机”或“智能客户机”的应用环境中。除此之外,“物理层”和“逻辑层”之间的联系多半是偶然的,

7、决不是从前认为的一对一的映射。软件设计逻辑分层背后的原理和原因是众所周知的,并且在软件体系结构领域已被普遍接受。然而,物理分层仍然是一个见仁见智的讨论话题;如果要将数据推到网络中去,确保进行物理分层确实是十分必要的。在某种程度上,要理解我们为什么至少需要两个物理层是相当容易的,因为出于成本和数据集中化考虑,我们通常不希望将服务器级计算机放在用户面前。但大多数关于n个物理层的讨论中会提到第三个物理层,负责托管业务组件或逻辑;在规范的Web应用程序图表中,有时还会出现第四个物理层,这四层分别是客户端层、Web服务器层、业务逻辑层和数据库层。为什么是四个物理层?就这点

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。