基于XML的三层C/S模型

三层C/S结构及其应用开发 三层C/S结构及其应用开发(本文转载自软件工程专家网www.21cmm.com) 一、三层C/S的基本硬件结构  传统的二层C/S结构存在以下几个局限:1它是单一服务器且以局域网为中心的,所以难以扩展至大型企业广域网或Internet;2受限于供应商;3软、硬件的组合及集成能力有限;4难以管理大量的客户机。因此,三层C/S结构应运而生。  三层C/S结构是将应用功能分成表示层、功能 阅读详情

[摘要]可扩展标志语言(简称XML)在实现信息标准化、信息的交流与共享上有其独特的技术优势,因此它受到了广泛的重视。全文首先提出了基于XML的三层Client/Server模型;然后对其从数据获取、传输至显示以及外部处理的应用进行分析;接着以图书资料管理系统为例,说明了其具体的实现;最后对基于XML的三层C/S模型在信息标准化、数据处理等方面的应用优势进行了总结。

 

[关键字]XML、Client/Server模型、三层结构模型.

 

1.问题的提出

 

      可扩展的标记语言 (Extensible Markup Language,缩写为XML)是SGML (Standard Generalized Markup Language,标准通用标记语言)的一个子集,是简化的SGML。它是互联网联合组织(W3C)创建一组规范,以便于软件开发人员和内容创作者在网页上组织信息,其目的不仅在于满足不断增长的网络应用需求,而且也在于确保在通过网络进行交互合作时,具有良好的可靠性与互操作性。

      随着Web技术、分布式对象技术两者的有机结合,传统的Client/Server主从结构逐渐向灵活的多级分布式Web计算模型进行着演变。多级分布式Web体系结构可划分为三层:表示层(客户机层)、功能层(应用服务器层)、数据层(数据库服务器层)。

      而由于XML可以自定义文件类型,有利于信息的表达和结构化组织,而且可以以一致的方式格式化和传送数据,若将其运用到三层Client/Server模型中,必将产生很大的网络应用优势。于是也就引出了本文讨论的问题--基于XML的三层C/S模型。

 

2.基于XML的三层C/S模型

 

      从网络体系结构各层次上看,基于XML的三层C/S模型具体实现的功能概括如下:

 

数据层--实现数据的集成,XML数据产生于多种数据源,但都以统一的XML格式表达传输。

功能层--实现数据的发送与处理,应用服务器通过HTTP交换数据,通过DOM处理XML数据。

表示层--实现数据的显示,XML数据的可以有多种表现形式,而且可以为外部直接访问、编辑或转换,也可被其他系统所用。


      在基于XML的三层C/S模型中把XML作为一种结构化信息交换的表示方法,负责所有与数据源的通信,根据最终用户的要求,聚集和组织从多个远程数据库服务器上获取数据,并用XML形式交互式的把数据源返回的消息传递给客户机。

 

2.1从数据层获取数据生成XML文档

 

      由于XML能够使不同来源的结构化的数据很容易的结合在一起,所以通过XML,可以在中间层服务器上对从后端数据库和其它应用处来的数据进行集成。然后,数据就能被发送到客户或其他服务器做进一步的集合、处理和分发。

      虽然每个数据库描述数据都是不同的,但XML可以自己定义文件标签,例如:通过XML,图书管理资料就可以很容易以标准的方式按照书名、作者、图书简介或其他的标准进行分类。

 

2.2 XML数据的发送与刷新

 

      利用XML开放的、基于文本的格式,可以将它通过HTTP像HTML一样传送。同时,中间层应用服务器将支持XML更新功能,将数据服务器上数据的变化及时地传递给客户,反之亦然。因此,中间层能够从客户端得到更新的数据,并把数据传送到数据储存服务器上。

 

2.3 XML数据在表示层的显示

 

      XML描述的数据发到表示层后,能够用多种方式显示。XML定义的数据,其显示与内容是分开的,因此允许对同一数据指定不同的显示方式,使数据更合理地表现出来。CSS和XSL为数据的显示提供了公布的机制,本地的数据能够以客户配置、使用者选择或其他标准决定的方式动态地表现出来。
      HTML描述数据的外观,而XML描述数据本身。由于XML注重的是内容,其显示要通过XSL(eXtensible Stylesheet Language,可扩展样式语言)或CSS来实现。XSL是为XML文件定义的一种标识语言,它提供类似但却远远超过CSS的强大功能。

      XSL以包含了一套元素集的XML语法规范而定义,该语法规范将被用来把XML文件转换成HTML文件或XML文档。一个XSL样式表集合了一系列设计规则以用于将信息从XML文件中汲取出,并将其转换成HTML等其它格式。XSL凭借其可扩展性能够控制无穷无尽的标签,而控制每个标签的方式也是无穷尽的。这就给Web提供了高级的布局特性。

 

2.4 处理和编辑XML数据

 

      在基于XML的C/S模型中,不但能够通过XML集合多个数据源的数据,并把数据源数据及时传输给表示层,而且,只要能理解XML数据,就能从客户层处理和编辑中间层的数据,然后通过中间层与数据层之间的数据刷新机制,对数据层数据进行刷新。

      运用XML解析器能够读入一串XML数据,经过处理,产生一棵结构树,并且使用DOM把所有数据元素作为对象。解析器或者用脚本把数据进行进一步的处理,或者把数据移交给另外的应用软件或对象进行进一步的处理。

      DOM实际上是一个应用编程接口(API),用来定义一种标准方法。通过这种方法,能够处理XML结构树的元素。对象模式控制着使用者如何同结构树交流,并且把所有树的元素作为对象暴露出来。DOM用扩展方式支持名域、数据类型、查询和XSL转化。

 

3. 基于XML的三层C/S模型的应用实例

 

      下面具体介绍如何实现基于XML的三层C/S模型,以我们做所过的三层C/S 模式的图书资料管理为例,它是基于XML表达、传输与处理的。

 

3.1 获取数据生成XML文档

 

      中间层通过XML获取数据源数据,生成XML文档,其中每一的书目信息包括:书名、作者、图书简介、出版日期。下面所列的就是获取数据源的一段典型例程。

 

<%@ LANGUAGE=VBScript %>

<? XML VERSION="1.0" encoding="GB2312" ?>

    <图书资料管理>

<%Set Connection=Server.CreateObject("ADODB.Connection")

Connection.Open

Set ItemRecordset =Connection.Execute("select * from item ")

Do while Not ItemRecordset.EOF%>`

<书目>

<书名><%= ItemRecordset("书名") %></书名>

<作者><%= ItemRecordset("作者") %></作者>

<图书简介><%= ItemRecordset("图书简介") %></图书简介>

<出版日期><%= ItemRecordset("出版日期") %></出版日期>

</书目>

<%ItemRecordset.MoveNext

Loop%>

</图书资料管理>


3.2 XML文档通过HTTP从应用服务器传送到客户机层,并且支持XML更新功能,使得中间层或数据服务器上数据的变化可以传递给客户。

 

3.3 XML数据的在表示层(客户机层)的表达

 

      发送到客户端的数据(图书资料管理数据),可以根据用户对象及其不同的应用要求有不同的显示形式。如下所示的XSL样式表,就是一个显示示例,将生成一个HTML文档,包括一个表格,其中的一行就为一个"书目"元素。

 

<xsl:template match="/">

<HTML>

<HEAD>

<TITLE>图书资料管理</TITLE>

</HEAD>

<BODY>

<TABLE>

<xsl:for-each select="图书资料管理">

<TR>

<xsl:for-each select="书目">

<TD>

<xsl:process-children/>

</TD>

</xsl:for-each>

</TR>

</xsl:for-each>

</TABLE>

</BODY>

</HTML>

</xsl:template>

 

3.4 编辑、处理数据的实现

 

      只要理解了中间层XML文档的数据,就能从任何地方处理和编辑数据(图书资料管理数据)。

      如下例所示,LoadDocument程序打开XML文档,然后调用另一个程序DisplayNode,它用来显示文档的结构。LoadDocument传递给正在打开的XML文档的ChildNodes属性一个引用作为它的参数,同时传递一个整数用来标示开始显示的层次级别。代码利用参数来格式化在Visual Basic文档结构显示窗口中的文本。

      DisplayNode属性的函数会遍历文档寻找需要的NODE_TEXT节点类型串,一旦代码找到一个NODE_TEXT的节点,它会利用NodeValue属性来获得相应的文本串。另外,当前节点的ParentNode属性指向一个元素类型的节点。元素节点实现了一个NodeName属性。

 

Public Sub LoadDoc

ument()

 

Dim xDoc As MSXML.DOMDocument

Set xDoc = New MSXML.DOMDocument

xDoc.validateOnParse = False

If xDoc.Load("C:/My Documents/sample.xml") Then

DisplayNode xDoc.childNodes, 0

Else

' The document failed to load.

End If

End Sub

Public Sub DisplayNode(ByRef Nodes As MSXML.IXMLDOMNodeList, _

ByVal Indent As Integer)

Dim xNode As MSXML.IXMLDOMNode

Indent = Indent + 2

For Each xNode In Nodes

If xNode.nodeType = NODE_TEXT Then

Debug.Print Space$(Indent) & xNode.parentNode.nodeName & _

":" & xNode.nodeValue

End If

If xNode.hasChildNodes Then

DisplayNode xNode.childNodes, Indent

End If

Next xNode

End Sub

 

4.总结

 

      在基于XML的三层C/S模型中,中间层一次性从远程数据库中获取满足客户需求的信息,生成相应的XML文档,以后中间层就不需要再与远程数据库进行交互了,即与远程数据库的连接也就终止了。一旦中间件软件把满足客户需要的信息组装起来以后,就可以以XML 形式发送给客户了,这样客户与中间层也就无需进一步交互。

      同时,丰富的XML数据发送给客户端后,客户应用和脚本语言就可以直接使用这些数据,这时客户端与中间层服务器之间连接就可以中止了。

      因此,在C/S模型中发送给中间层的信息是简洁的、个人化的和精确的。应用服务器负责在正确的时候组装并交付正确的信息,这将网络上的流量减小并提供了高度的交互能力和用户的满意程度。而且,由于中间层可以提供动态的、易访问的内容,这些内容可以被客户方操作。而且,无需刷新整个用户界面就可以更新页面的内容,这样就减少了从服务器方获取客户方已有的信息所需的交互时间。用户可以方便的远程管理数据,使得网络成为一种具有更大的交互性和互操作性的媒体。

      其次,运用基于XML的三层C/S模型,XML结构化的数据可以从商业规范和表现形式中分离出来,而且可以更详细地定义某个数据对象的数据结构,解决了信息标准化的问题。

      通过在三层C/S模型使用XML,使得企业之间可以通过网络,与合作伙伴间,进行跨平台,跨操作系统的信息交换。

 

 

 

参考文献

 

[1] Hiroshi Maruyama ,Kent Tamura , Naohiko Uramoto .XML and Java Developing Web Applications[M]. Addison-Wesley, August 1999.

[2] Ed Tittel, Norbert Mikula , Ramesh Chandak . XML For DUMMIES [M]. IDG BOOKS Worldwide ,
Inc ,1999.

[3] 宋晓梁,刘东生,许满武. 中间件及其在三层客户机/服务器模型中的应用[N] . 计算机应用990713

Windows虚拟机在KVM上CPU核数限制?手把手教你突破2核限制 本文针对KVM虚拟化平台上Windows虚拟机CPU核数受限问题,深入剖析了其根源在于Windows系统对CPU插槽(socket)的识别限制。通过详解CPU拓扑(socket、core、thread)的配置原理,提供了从libvirt XML手动编辑到virt-manager图形化操作两种方案,手把手教你突破默认的2核限制,有效分配更多vCPU资源。 阅读详情

相关推荐

信息系统架构模型_1.单机应用模式和客户机/服务器模式

单机应用系统是最简单的软件结构,是指运行在一台物理机器上的独立应用程序。客户机/服务器模式是信息系统中最常见的一种。C/S概念可理解为基于TCP/IP协议的进程间通信IPC编程的“发送”与“反射”程序结构,即Client方向Server方发送一个TCP或UDP数据包,然后Server方根据接收到的请求向Client方回送TCP或UDP数据包

huaqianzkh的专栏 2759

xml模块/三层结构

day19 一、xml模块 1、xml的定义:   xml是一种可扩展的标记语言,用标签来组织数据的语言。 2、xml的特点   相比于json,xml的使用场景更加广泛,但是语法格式相比json复杂很多。   json:前后台交互数据时,一般使用json   xml:当需要自定义文档时使用xml 注:xml是实现不同语言或程序之间进行数据交换的协议,跟json差不多,但json使...

weixin_30708329的博客 393

阿里云Ubuntu部署Steam饥荒联机版服务器:从零到多人联机的完整指南

本文详细介绍了在阿里云Ubuntu系统上部署Steam饥荒联机版服务器的完整流程,包括环境准备、SteamCMD安装、服务端配置、Mod管理及后台运行技巧。通过2核4GB的ECS实例配置和端口设置,实现5人流畅联机体验,适合游戏爱好者快速搭建专属服务器

weixin_29229261的博客 994

用C#与XML创建动态分层菜单

(作者:青苹果工作室编译 2001年04月02日 11:35)  从在复杂的B2B交易中的交换数据到为应用程序提供配置文件结构,XML在许多方面大显身手!由于XML不断地获得软件的支持,我们完全能够预见:XML的应用将不断增加。本文就介绍这样一种应用程序,它使用XML创建类似于Windows开始菜单的分层菜单系统,从而向终端用户提供更满意的Web体验。   这个应用程序将使用 C#、XML服务器

曾登高 2852

Smart3D将已经生成的OSGB格式的模型转换成S3C格式

Smart3D如何生成OSGB数据的S3C索引生成OSGB模型生成S3C索引生模型可视化功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 生成OSGB模型 目前市面上生产的倾斜模型,尤其是Smart3D生成的倾斜摄影三维模型数据的组

marlon666的博客 1万+

SpringMVC初步整合

返回ModelAndView userList会被上面的配置解析器解析然后拼接为一个前端页面路径。请求到达前端控制器 然后通过映射器跟适配器对应的url 跟方法找到具体的Controller。Model 数据 javaBean 数据封装 与数据库直接交互 读写数据。View 前端的展示 JSP HTML展示数据 与用户交互。我在之前的笔记中总结了Mybatis 跟 Spring的依赖包。B/S 浏览器 服务器架构 java开发基本上都是B/S。最后视图解析器解析该返回内容的View解析到前端。

沸羊羊 419

基于 软件体系结构(第3版)考试重点和复习指南

第一章 软件体系结构概述 软件危机的表现和产生的原因 软件危机 1.软件成本日益增长 2.开发进度难以控制 3.软件质量差 4.软件维护困难 产生原因 1.用户需求不明确 2.缺乏正确的理论指导 3.软件规模越来越大 4.软件复杂度越来越高 软件危机与软件体系结构的关系 软件危机引起软件工程的研究,软件危机的加剧,人们认识到软件体系结构的重要性,并对软件体系结构开始系统地深入地研究,是提高软件生产率和解决软件问题最有希望的途径。 构件与重用的定义及他们之间的关系 构件:语义完整,语法正确,有重用价值的单位软

weixin_47056553的博客 6872

计算机相关内容摘要,计算机专业文献摘要.doc

计算机专业文献摘要毕业设计(论文)文献摘要专业计算机科学与技术学生姓名班级BM计算机061学号0651410102指导教师博 雅 学 院ASP.NET动态网站开发技术实用教程】ASP.NET+SQL组建动态网站Microsoft SQL Server2005开发指南新编ASP.NET 2.0+SQL Server 2005从入门到精通本书围绕ASNET 2.0和SQL Server 2005技术...

weixin_33734921的博客 560

C/S、B/S及三层结构

C/S、B/S及三层结构作者:谢攀 来源:计算机世界 http://www.csai.cn 2003年0331日  编者按: 为了更贴近软件开发人员,为他们提供一个技术交流的平台,从本期开始,实用技术栏目更名为应用沙龙,下设软件开发工具及技术、数据库、网络管理和知识窗四个子栏目。虽然栏目的设置和名称变化了,但不变的是我们的读者定位,是关注我国程序员的成长、为软件工程师服务的宗旨,是为我国

ykqiu的专栏 1124

B/S三层体系结构

为什么80%的码农都做不了架构师?>>> ...

weixin_33968104的博客 8006

Spring MVC入门(一)

一、关于三层架构和 MVC 三层架构 我们的开发架构一般都是基于两种形式,一种是 C/S 架构,也就是客户端/服务器,另一种是 B/S 架构,也就是浏览器服务器。在 JavaEE 开发中,几乎全都是基于 B/S 架构的开发。那么在 B/S 架构中,系统标准的三层架构包括:表现层、业务层、持久层。 三层架构中,每一层各司其职,接下来我们就说说每层都负责哪些方面: 表现层: 也就是我们常说的web层。...

月哥说了算的博客 188

智能客户端:C/S与B/S的融合

C/S架构与B/S架构都存在不可避免的局限,而智能客户端恰好能克服它们存在的问题,提高用户满意度,降低总体拥有成本。 人们对智能客户端的关注开始于微软。事实上,自微软推出.NET战略以来,其最令人关注的技术新动向之一就是对智能客户端(Smart Client)技术的深入研究与应用推广。尤其是微软公司将这种体系结构纳入到.Net框架后,它立即引起了业界广泛的关注。 微软对于智能客户端的定

zhujiaxing666666的专栏 2134

(转帖)C/S、B/S及三层结构漫谈

(转帖)C/S、B/S及三层结构漫谈 编者按: 为了更贴近软件开发人员,为他们提供一个技术交流的平台,从本期开始,实用技术栏目更名为应用沙龙,下设软件开发工具及技术、数据库、网络管理和知识窗四个子栏目。虽然栏目的设置和名称变化了,但不变的是我们的读者定位,是关注我国程序员的成长、为软件工程师服务的宗旨,是为我国的软件人员提供一个交流园地的目的,...

weixin_34116110的博客 182

#笔记-三层架构MVC

逻辑层:是系统实现业务逻辑与数据操作的核心部门,它的任务是接受用户的请求,首先执行扩展的应用程序并与数据库进行链接,通过SQL方式向数据库服务器提出数据处理申请,然后等到数据库服务器将数据处理的结果提交给Web服务器,再由Web服务器将结果传回给客户端。它的任务是由Web浏览器向网络的Web服务器发出服务请求,Web服务器用H77"P协议把所需的协议传给客户端,客户机接受传来的主页文件,并把它显示在浏览器上。数据层:即数据库服务器,在数据层中包含系统的数据处理逻辑,位于数据库的服务器端。

Nikiki_C的博客 347

做WEB C#  C/S

什么是 C/S   ?  我是一点不懂, 如何写S呢, 更不懂, 但就是想不通, 一直压在了心里,我很少去问人, 因为没什么人可说的,  现在才知多和人交流是好的, 这么多东西都是可交流, C客户端, S就是服务端, 两都之间怎通信呢, 通过SOCKET remoute  。。。。想白在那公司呆了半年多,竟然这个都没懂怎写, 因为忙自己工作,也没管它了,我是做设备上的, 所以没

militala的专栏 1095
上一篇: 基于LINUX操作系统的防火墙技术及其具体实现
下一篇: 地面沉降研究综述
caiyd08
博客等级 码龄17年 57粉丝 64原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值