用户登录  |  用户注册
首 页商业源码原创产品编程论坛
当前位置:PB创新网文章中心编程技巧计算机理论

基于XML的三层C/S模型

减小字体 增大字体 作者:佚名  来源:本站整理  发布时间:2009-01-10 12:08:34
书资料管理为例,它是基于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 LoadDocument()

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

上一页  [1] [2] 

Tags:

作者:佚名

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
PB创新网ourmis.com】Copyright © 2000-2009 . All Rights Reserved .
页面执行时间:35,812.50000 毫秒
Email:ourmis@126.com QQ:2322888 蜀ICP备05006790号