`
isiqi
  • 浏览: 15998617 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

ASP.NET中CMS的体系结构

阅读更多
CMS三层体系结构

我曾在开发CMS(内容管理系统)三层体系结构上受到好评,不过那已经是好久以前的事了。CMS三层体系结构与标准三层客户端/服务器体系结构是基本对应的。CMS三层体系结构没有什么难以理解的内容,都是一些常识性的东西。它的每一层对应着一个体系结构中必须的元素:交互(interaction)、操作(manipulation)以及存储。这三层是:

  • 表示层——处理与用户的交互、交流。
  • 事务逻辑(business logic)层——处理用户所需要的信息。
  • 数据库层——存储系统所处理的所有数据。

图A中直观的表示了CMS三层体系结构。图A所示的层分别位于不同的机器上,实际上,多个层可以存在于同一台计算机中,但是将它们分布在多台计算机中可以更好的分配CMS系统的负荷。

图A

CMS三层体系结构

CMS n层体系结构

简单的说,CMS n层体系结构就是把CMS三层体系结构的各个层分解为多个层,如B所示。把层进行分解的好处是使得各个层更好的协调工作从而提高了系统性能;同时这也使得系统分布在更多的计算机上,这样可以减少系统由于指定计算机耗时过多而造成的瓶颈,从而提高了系统负荷。

图B

CMS n层体系结构

表示层是什么?

尽管表示层并不见得比其它层更重要,但是它几乎得到了全部的荣耀——因为它是唯一的CMS用户可以看到的层。这个层负责CMS与用户的交互工作。

表示层实际上由两部分组成:即Web客户端和Web服务器。Web客户端驻留在用户计算机中,通常用来接受Web浏览器的表格(form)。Web服务器位于Web主机地址上,用来生成动态Web页面和组成CMS系统的表格。

Web客户端与Web服务器端通过“请求——回应”的方式来相互通信。Web客户端向Web服务器发出请求,Web服务器根据请求作出回应。

Web客户端使用的是HTTP的请求方式。如:

GET /index.html HTTP/1.0
User-Agent: Mozilla/4.0 (compatible; MSIE 5.0; Windows NT)
Host: www.18idea.com
Web servers respond using the HTTP response. For example:
HTTP/1.1 200 OK
Server: Microsoft-IIS/5.0
Date: Thu, 12 Jul 2002 19:19:52 GMT
Connection: Keep-Alive
Content-Length: 1270
Content-Type: text/html
Set-Cookie: ASPSESSIONIDQQQGQGDC=MOFPDBPCPNIBACIBDCIOFCCL; path=/
Cache-control: private

<HTML>
<BODY>
...
</BODY>
</HTML>

HTML嵌入了Web服务器发出的回应,该回应用来指示浏览器显示什么内容;JavaScript用来实现客户端的基本功能。最近以来,其它技术,如Java applet和ActiveX组件开始流行了,不过Web服务器在最初发出的回应中,绝大多数还是使用HTML,这包括了服务器发出的用于通知客户端使用何种HTML以外的技术来接管后面的执行过程的回应。

事务逻辑层是什么?

重申一次,事务逻辑层的功能可以放到单个的服务器上(三层体系结构),也可以分布到多个服务器上(n层体系结构)。事务逻辑层的功能包括以下三个部分:

  • 访问(获取和保存)数据库层的数据。
  • 从表示层获取数据。
  • 执行必要的运算并且/或者处理数据。

事务逻辑层从数据库层获取数据,并根据表示层的需要来对数据进行处理。事务逻辑层也可以获得表示层提供的数据,并根据数据库层的需要对其进行处理。

CMS事务逻辑层的许多逻辑与其它两个层的交接(interfacing)有关。在Microsoft.NET下,由于ADO.NET、.NET remoting和Web服务器的帮助,这种逻辑的复杂性大多都被降低了。有了.NET之后,该层的最复杂的逻辑就是用于处理事务逻辑而进行计算和处理数据任务了(用C#或者Managed C++)。

什么是数据库层

数据库层的名字告诉了我们它的任务是什么了;它用来处理CMS数据。一个不太引人注意的地方就是,它的数据存储和检索功能并不限制于数据库。它可以是单个或者一系列平面文件(flat file),可能是XML格式。不过,数据通常还是存在数据库中。数据库的类型并不重要,因为对绝大多数CMS系统来说Microsoft SQL Server 2000与Oracle以及Sybase同样优秀(至少,你在Windows环境下)。也就是说,微软公司已经为Microsoft SQL Server 2000优化了.NET接口(interface);这可能会给它一个小小的优势(edge)。不过其它数据库提供商也没有闲着,微软的这个优势很快就会消失。

如果你不偏好某种数据库,你最好按通用的方式编写代码,这样你可以把任何数据库嵌入到你的CMS中。谁知道将来会怎样?今年所选择的数据库,明年你可能就不想再用了,是不是?

数据库层通常有它所在的计算机加载和访问。在大型的CMS中,通常在另一台计算机上保存一个镜像拷贝,这样可以在主机发生故障时,可以用它来顶替。

数据库层的内部工作过程、以及数据库本身,对一般的编程者来说是一个迷。开发者在本层的主要任务就是建立数据库、创建并载入数据库纲要(schema),偶尔也需要生成报表,还有一点就是要常常备份数据库。

选择哪一种体系结构?

选择哪一种体系结构(三层或者n层)取决于以下因素:

  • CMS 需要实现的功能
  • 数据的数量
  • 并行工作的用户数量
  • 预期的增长

基本上,如果你的CMS系统将一直保持较小的规模,最好选择三层体系结构。相反,如果你估计CMS系统会越来越大,n层体系结构是一个明智的选择。

由于服务器间的通信量不高,三层体系结构更容易实现。但是在.NET中,并不一定要这么做。由于三层体系容易构建,所以可以早日投入使用。这样,如果市场要求很急迫,三层体系结构也可以作为大的CMS系统的暂时解决方案;把三层体系结构的方案几乎“无痛苦”的移植到n层体系结构是可行的。不过,你要认识到,拥有大量用户的三层体系的CMS系统很可能会超负荷的。

小结

现在你应该基本理解这两种主要用于CMS的体系结构。同时,你也应该可以科学的评估你应该使用哪一种体系结构。


分享到:
评论

相关推荐

    asp.net知识库

    ASP.NET 中的正则表达式 常用的匹配正则表达式和实例 经典正则表达式 delegate vs. event 我是谁?[C#] 表达式计算引擎 正式发布表达式计算引擎WfcExp V0.9(附源码) 运算表达式类的原理及其实现 #实现的18位身份证...

    Orchard:Orchard是基于ASP.NET MVC平台构建的免费,开源,以社区为中心的内容管理系统

    Orchard是建立在将可扩展性放在首位的现代体系结构之上的,这是它的第一要务。 Orchard中的所有组件都可以替换或扩展。 内容是由易于组合的构建块构建的。 模块以非常分离的方式扩展了系统,例如,评论模块可以轻松...

    网软志成分类信息网站系统.net官方商业版

    分类信息网站系统正式版提供有桔红色.net综合风格分类网站模板,同时还提供有.net同城风格分类信息网页模板,asp.net分类信息网站系统地方门户版风格网站模板免费大餐来了,完全免费的asp.net+mssql简易风格分类信息...

    Composite C1 v3.2.4497.34793.zip

    基于.NET4开发的最新技术,精心设计的可插拔的体系结构和API和完整的LINQ数据访问及其处置的访问,使之成为一个灵活的系统,易于安装,Windows Azure的迁移容易,这两个文件的基础和SQL Server数据支持,很多免费的...

    teclyn:使用CQRS和事件源的AC#Asp.Net生产就绪框架

    我在以下情况下使用了类似的工具: 大公司初创企业IT服务公司银行业务客户关系管理系统(CRM) 内容管理系统(CMS) 新闻网站后台工具(自动备份,大量电子邮件发送) Teclyn是对这些类型的体系结构进行5年以上思考...

    H5智能内核-基于MVC架构的全新Zoomla!逐浪CMS2 x3.8发布

    MVC 是三种 ASP.NET 编程模式中的一种。 MVC 是一种使用 MVC(Model View Controller 模型-视图-控制器)设计创建 Web 应用程序的模式: Model(模型)表示应用程序核心(比如数据库记录列表)。 View(视图)...

    Composite C1 v3.2.4497.34793

     基于.NET4开发的最新技术,精心设计的可插拔的体系结构和API和完整的LINQ数据访问及其处置的访问,使之成为一个灵活的系统,易于安装,Windows Azure的迁移容易,这两个文件的基础和SQL Server数据支持,很多免费...

    Shangducms Teamsuit! v1.1.0 Final 编译版.rar

    Shangducms NT 是一套基于Web2.0思想设计,采用asp.net 2.0/3.x开发的内容管理系统.它同时也是一套Web2.0全面解决方案,包含:新闻,下载,商城,博客,知道,积分,交友,广告,投票,圈子,群组,饭否等功能,可以根据用户需求...

    dynamic-delivery-4-tridion

    DD4T是一个轻量级的框架,它将SDL Tridion CMS链接到您的MVC Web应用程序体系结构。 它同时适用于Java(Spring MVC)和.NET(ASP.NET MVC 3、4和5),并且支持Tridion 2009、2011和2013。 得到它 资料下载模板安装...

    艺帆仿百度云手机简约手机官方网站模板V1.8

    资源版本:艺帆企业CMS V1.8 版本类似:免费完整版(不带会员系统) 论坛社区:http://www.x1j.net 官方网站:http://web.i5808.com 适用行业:手机网站模板,手机网站源码,精美云手机网站模板,艺帆手机网站模板 类型:...

Global site tag (gtag.js) - Google Analytics