三层C/S模型(精选4篇)
三层C/S模型 篇1
1 基于XML的三层Client/Server模型
与HTML一样,XML是从所有标记语言的元语SGML那里派生出来的。XML也是一种元语言,一个定义Web应用的SGML子集。它是互联网联合组织(W3C)创建的一组规范,以软件开发人员和内容创作者在网页上组织信息。其目的不仅在于满足不断增长的网络应用需求,也在于确保在通过网络进行交互合作时,具有良好的可靠性与互操作性。
随着Web技术、分布式对象技术两者的有机结合,传统的Client/Server主从结构逐渐向灵活的多级分布式Web计算模型进行着演变。多级分布式Web体系结构可划分为3层:表示层(客户机层)、功能层(应用服务器层)、数据层(数据库服务器层),如图1。
而由于XML可以自定义文件类型,有利于信息的表达和结构化组织,而且可以一致的方式格式化和传送数据,若将其运用到三层Client/Server模型中,必将产生很大的网络应用优势。于是也就引出了讨论的问题———基于XML的三层C/S模型。
2 应用实例
具体介绍如何实现基于XML的三层C/S模型。三层C/S模式的学生信息管理系统为例,它是基于XML表达、传输与处理的。
2.1 获取数据生成XML文档
中间层通过XML获取数据源数据,生成XML文档,其中每一个学生信息包括:学号、姓名、班级、出生日期。下面所列的就是获取数据源的一段典型例程:
2.2 XML文档的传送
XML文档通过HTTP从应用服务器传送到客户机层,并且支持XML更新功能,使得中间层或数据服务器上数据的变化可以传递给客户。
2.3 XML数据在表示层的表达
发送到客户端的数据(学生信息管理数据),可以根据用户对象及其不同的应用要求有不同的显示形式。如下所示的XSM样式表,就是一个显示示例,将生成一个HTML文档,包括一个表格,其中的一行就为一个"学生信息"元素。
2.4 编辑、处理数据的实现
只要理解中间层XML文档的数据,就能从任何地方处理和编辑数据(学生信息管理数据)。
如下例所示,LoadDocument程序打开XML文档,然后调用另一个程序DisplayNode,它用来显示文档的结构。LoadDocument传递给正在打开的XML文档的StudentNodes属性引用作为它的参数,同时传递一个整数用来表示开始显示的层次级别。代码利用参数来格式化在VisualBasic文档结构显示窗口中的文本。
DisplayNode属性的函数会遍历文档寻找需要的NODE_TEXT节点类型串,一旦代码找到一个NODE_TEXT的节点,它会利用NodeValue属性来获得相应的文本串。另外,当前节点的ParentNode属性指向一个元素类型的节点,元素节点实现了一个NodeName属性。
3 结语
从学生管理系统的软件分析结果中可以得到,在基于XML的三层C/S模型中,中间层一次性从远程数据库中获取满足客户需求的信息,生成相应的XML文档,以后中间层就不需要再与远程数据库进行交互了。一旦中间层软件把满足客户需要的信息组装起来,就可以以XML形式发送给客户了,这样客户与中间层也就无需进一步交互。
因此,在C/S模型中发送给中间层的信息是简洁的、个人化的和精确的。应用服务器负责在正确的时间组装并交付正确的信息,这将网络上的流量减小并提供了高度的交互能力和用户的满意程度。由于中间层可以提供动态的、容易访问的内容,这些内容可以被客户方操作。无需刷新整个用户界面就可以更新页面的内容,这样就减少了从服务器方获取客户方已有的信息所需的交互时间。用户可以方便地远程管理数据,使得网络成为一种具有更大的交互性和互操作性的媒体,能够进行跨平台、跨操作系统的信息交换。
摘要:通过对基于XML的三层Client/Server理论模型进行研究,提出了该模型在学生信息管理系统中的应用,并给出了该系统从数据获取、传输、功能操作及其显示等具体细节的实现。
关键词:学生管理信息系统,XML,Client/Server模型三层结构模型
参考文献
[1]宋晓梁.中间件及其在三层客户机/服务器模型中的应用.计算机应用.
[2]张友生.软件体系结构.清华大学出版社.
[3]张友生.软件体系结构模型.计算机工程与应用.
三层C/S模型 篇2
XML是Extensible Markup Language的缩写, 即可扩展标记语言, 是一种人们可以用来创建自己的标记的标记语言。它由万维网协会 (W3C) 创建, 用来克服HTML (即超文本标记语言 (Hypertext Markup Language) , 它是所有网页的基础) 的局限。和HTML一样, XML基于SGML (Standard Generalized Markup Language:标准通用标记语言) 。尽管SGML已在出版业中使用了数十年, 但对其理解方面的复杂性使许多本打算使用它的人望而却步。SGML也代表“听起来很棒, 但或许以后会用 (Sounds great, maybe later) ”。XML是为Web设计的。
XML实际上是Web上表示结构化信息的一种标准文本格式, 它没有复杂的语法和包罗万象的数据定义。XML同HTML一样, 都来自SGML。SGML是一种在Web发明之前就早已存在的用标记来描述文档资料的通用语言。但SGML十分庞大且难以学习和使用。鉴于此, 人们提出了HTML语言。但近年来, 随着Web应用的不断深入, HTML在需求广泛的应用中已显得捉襟见肘, 有人建议直接使用SGML作为Web语言。但SGML太庞大了, 学用两难尚且不说, 就是全面实现SGML的浏览器也非常困难。于是Web标准化组织W3C建议使用一种精简的SGML版本———XML。XML与SGML一样, 是一个用来定义其他语言的元语言。与SGML相比, XML规范不到SGML规范的1/10, 简单易懂, 是一门既无标签集也无语法的新一代标记语言。
XML继承了SGML的许多特性, 一是可扩展性。XML允许使用者创建和使用他们自己的标记而不是HTML的有限词汇表。这一点至关重要, 企业可以用XML为电子商务和供应链集成等应用定义自己的标记语言, 甚至特定行业一起来定义该领域的特殊标记语言, 作为该领域信息共享与数据交换的基础。
二是是灵活性。HTML很难进一步发展, 就是因为它是格式、超文本和图形用户界面语义的混合, 要同时发展这些混合在一起的功能是很困难的。而XML提供了一种结构化的数据表示方式, 使得用户界面分离于结构化数据。所以, Web用户所追求的许多先进功能在XML环境下更容易实现。
三是自描述性。XML文档通常包含一个文档类型声明, 因而XML文档是自描述的。不仅人能读懂XML文档, 计算机也能处理。XML表示数据的方式真正做到了独立于应用系统, 并且数据能够重用。XML文档被看作是文档的数据库化和数据的文档化。
除了上述先进特性以外, XML还具有简明性。它只有SGML约20%的复杂性, 但却具有SGML约80%的功能。XML比完整的SGML简单得多, 易学、易用并且易实现。另外, XML也吸收了人们多年来在Web上使用HTML的经验。XML支持世界上几乎所有的主要语言, 并且不同语言的文本可以在同一文档中混合使用, 应用XML的软件能处理这些语言的任何组合。所有这一切将使XML成为数据表示的一个开放标准, 这种数据表示独立于机器平台、供应商以及编程语言。它将为网络计算注入新的活力, 并为信息技术带来新的机遇。目前, 许多大公司和开发人员已经开始使用XML, 包括B2B在内的许多优秀应用已经证实了XML将会改变今后创建应用程序的方式。
从1998年开始, XML被引入许多网络协议, 以便于为两个软件提供相互通信的标准方法。简单对象访问协议 (SOAP) 和XML-RPC规范为软件交互提供了独立于平台的方式, 从而为分布式计算环境打开了大门。几乎所有主要的软件厂商都支持SOAP。SOAP的快速成功史无前例地提高了软件的互操作潜力。当今, Web服务革命正在兴起, 而SOAP正是其基础协议。
二、XML对各个数据库的支持应用
由于XML具有标记不同字段 (field) 的能力, 使得搜索变得更简单和动态化, 从而把企业准备扔进废纸篓的文件变成了进行数据挖掘的宝藏。XML把内容从演示格式中解放出来, 使材料可以多次重复使用。同样的内容可以分别用于新闻发布、白皮书、宣传册、演示和Web页面。对那些需要把不兼容的系统融合在一起的企业, XML可以充当公共传输工具, 以中性格式进行数据传输。此外, XML还可以处理各种数据, 包括文本、图像和声音, 并且可以由用户进行扩展以处理任何特殊类型的数据。从去年以来, 三大主流数据库厂商分别以不同的形式对外宣布:支持XML。
(一) DB2与XML
IBM加强对Viper数据库XML性能的全面支持。DB2 Viper将从根本上改变数据库的游戏规则。通过将Viper置于信息构架的核心位置, 用户可以快速地从传统数据管理转换到前所未有的信息管理技术上来, 这可以使他们将信息提升为一种服务。
(二) Oracle与XML
2005年年初, Oracle发布支持XML的工具包, 并宣称与许多共享件和试用版XML组件不同, 产品版本的Oracle XDK提供XML支持 (已经过严格的企业生产环境验证, 包括Oracle SOA、Oracle JDeveloper/ADF、Oracle XML DB和Oracle XML Publisher) 。使用Oracle XDK的Oracle用户可享受24x7的正式支持。
(三) SQL Server与XML
XML (扩展标记语言) 已经成为当今最重要的因特网技术之一。XML的基于文本结构的灵活性使得它可以应用在不可置信的广阔范围的网络任务中。
三、基于XML的三层C/S模型
从网络体系结构各层次上看, 基于XML的三层C/S模型具体实现的功能概括如下:
数据层———实现数据的集成, XML数据产生于多种数据源, 但都以统一的XML格式表达传输。
功能层———实现数据的发送与处理, 应用服务器通过http交换数据, 通过dom处理XML数据。
表示层———实现数据的显示, XML数据可以有多种表现形式, 而且可以为外部直接访问、编辑或转换, 也可被其他系统所用。
在基于XML的三层C/S模型中把XML作为一种结构化信息交换的表示方法, 负责所有与数据源的通信, 根据最终用户的要求, 聚集和组织从多个远程数据库服务器上获取数据, 并用XML形式交互式地把数据源返回的消息传递给客户机。
以下是XML的三层C/S模型应用过程:
1.从数据层获取数据生成XML文档
由于XML能够使不同来源的结构化的数据很容易地结合在一起, 所以通过XML, 可以在中间层服务器上对从后端数据库和其他应用处来的数据进行集成。然后, 数据就能被发送到客户或其他服务器作进一步的集合、处理和分发。
虽然每个数据库描述数据都是不同的, 但XML可以自己定义文件标签, 例如:通过XML, 图书管理资料就可以很容易以标准的方式按照书名、作者、图书简介或其他的标准进行分类。
2.XML数据的发送与刷新
利用XML开放的、基于文本的格式, 可以将它通过http像html一样传送。同时, 中间层应用服务器将支持XML更新功能, 将数据服务器上数据的变化及时地传递给客户, 反之亦然。因此, 中间层能够从客户端得到更新的数据, 并把数据传送到数据储存服务器上。
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提供了高级的布局特性。
4.处理和编辑XML数据
在基于XML的C/S模型中, 不但能够通过XML集合多个数据源的数据, 并把数据源数据及时传输给表示层;而且, 只要能理解XML数据, 就能从客户层处理和编辑中间层的数据, 然后通过中间层与数据层之间的数据刷新机制, 对数据层数据进行刷新。
运用XML解析器能够读入一串XML数据, 经过处理, 产生一棵结构树, 并且使用dom把所有数据元素作为对象。解析器或者用脚本把数据进行进一步的处理, 或者把数据移交给另外的应用软件或对象进行进一步的处理。
dom实际上是一个应用编程接口 (api) , 用来定义一种标准方法。通过这种方法, 能够处理XML结构树的元素。对象模式控制着使用者如何同结构树交流, 并且把所有树的元素作为对象暴露出来。dom用扩展方式支持名域、数据类型、查询和xsl转化。
5.基于XML的三层C/S模型的应用实例
下面具体介绍如何实现基于XML的三层C/S模型, 以笔者做所过的三层C/S模式的图书资料管理为例。它是基于XML表达、传输与处理的, 其详细实现如下:
(1) 获取数据生成XML文档
中间层通过XML获取数据源数据, 生成XML文档, 其中每一书目的信息包括:书名、作者、图书简介、出版日期。下面所列的就是获取数据源的一段典型例程。
(2) XML文档通过http从应用服务器传送到客户机层, 并且支持XML更新功能, 使得中间层或数据服务器上数据的变化可以传递给客户。
(3) XML数据在表示层 (客户机层) 的表达
发送到客户端的数据 (图书资料管理数据) , 可以根据用户对象及其不同的应用要求有不同的显示形式。如下所示的xsl样式表, 就是一个显示示例, 将生成一个html文档, 包括一个表格, 其中的一行就为一个“书目”元素。
(4) 编辑、处理数据的实现
只要理解了中间层XML文档的数据, 就能从任何地方处理和编辑数据 (图书资料管理数据) 。
如下例所示, loaddocument程序打开XML文档, 然后调用另一个程序displaynode, 它用来显示文档的结构。loaddocument传递给正在打开的XML文档的childnodes属性一个引用作为它的参数, 同时传递一个整数用来标示开始显示的层次级别。代码利用参数来格式化在visual basic文档结构显示窗口中的文本。
displaynode属性的函数会遍历文档寻找需要的node_text节点类型串, 一旦代码找到一个node_text的节点, 它会利用nodevalue属性来获得相应的文本串。另外, 当前节点的parentnode属性指向一个元素类型的节点。元素节点实现了一个nodename属性,
四、总结
在基于XML的三层C/S模型中, 中间层一次性从远程数据库中获取满足客户需求的信息, 生成相应的XML文档, 以后中间层就不需要再与远程数据库进行交互了, 即与远程数据库的连接也就终止了。一旦中间件软件把满足客户需要的信息组装起来以后, 就可以以XML形式发送给客户了, 这样客户与中间层也就无需进一步交互。XML的实体机制是一种节省大量时间的工具, 而且也是将多种不同型态的数据并入XML文件中的方法。在XML文件中, 你可以将经常使用的XML文字区段定义成实体, 可以快速地将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, august1999.
[2]ed tittel, norbert mikula, ramesh chandak.XML for dum-mies[M].idg booksworldwide, inc, 1999.
三层C/S模型 篇3
1系统总体方案
发射机远程监控系统主要实现对发射机的远程监测与控制。系统中远程监控计算机通过通信接口与发射机本地监控系统建立网络连接,传输命令帧和数据帧,如图1所示。发射机本地监控系统将发射机运行的状态数据传送给远程监控系统,远程监控系统对数据进行处理,用来监视发射机的工作状态。用户可以通过远程监控系统发送控制命令给发射机本地监控系统,由发射机本地监控系统执行相关操作。通过远程监控系统,可以在远离现场的监控室中对发射机进行实时监控。
2功能描述
在系统软件设计时,可以从需要实现功能的角度分为以下部分,如图2所示。
1) 运行状态显示模块: 通过通信接口读取发射机的运行数据并进行处理,将处理后的数据分类保存至数据库,监测显示各部发射机的工作状态,判断并在界面上显示发射机是否正常工作,当出现故障时发出声光报警。
2) 参数调整模块: 用户通过人机交互界面,设置发射机自动开关机时间和上下限参数。该模块将来自人机交互界面的设置参数操作事件进行转译,通过通信接口下发到对应的发射机本地监控系统中,实现参数修改,并将操作用户、时间和结果保存至数据日志模块,以备查询。
3) 控制模块: 用户通过人机交互界面对发射机执行控制操作,如开关机命令,该模块将来自人机交互界面的控制操作事件转译为控制系统命令,通过通信接口下发给对应的发射机本地监控系统,并将操作用户、时间和操作命令详细信息保存至数据库日志模块,以备查询。
4) 日志管理模块: 添加、删除登陆用户,修改登陆密码,查询用户登录记录和相关操作,查询历史运行数据( 包括正常数据和故障数据) 并按照规定生成历史状态运行表。
5) 数据存储模块: 将系统处理的数据按照正常运行数据、故障数据和日志数据分类存储。
6) 通信模块: 此远程监控系统实现时考虑到与不同厂家设计的发射机本地监控系统通信兼容的问题,可以通过以太网和串口两种通信方式提供远程监控服务功能。
3系统软件设计
系统设计时采用3层C/S( Client /Server) 架构模型, 该架构将显示、处理和数据分布到独立的软件系统中,使得结构更加灵活。本系统软件设计时按照业务功能采用3层模型分别为: 人机交互层、系统业务逻辑层和数据存储及通信层,如图3所示。
1) 人机交互层: 位于最外层( 最上层) ,离用户最近。 用于显示数据和接收用户输入的数据,为用户提供一种交互式的操作界面。
2) 系统业务逻辑层: 针对具体问题进行操作。按照功能分为运行数据模块、系统数据模块、系统命令模块和用户管理模块。
3) 数据存储和通信层: 该层用来实现发射机远程监控系统和发射机本地监控系统之间的通信,并将业务逻辑层处理的发射机运行数据和相关操作分类存储至数据库的相关表中。
三层C/S模型克服了客户端工作量大、软件重用性差的局限性[6]。当用户通过人机交互层查看数据或进行远程控制时,它向系统业务逻辑层发送请求,系统业务逻辑层从数据存储及通信层获取数据,并对所获取的数据进行相应的处理,它直接地分离了人机交互层和数据存储及通信层。该模型各层之间是向下依赖的关系,底层对于上层来说是“无知”的,在不改变接口定义的前提下对上层程序重新设计不会影响调用底层程序。当系统中相应的功能需要改变或更新时,开发人员只需关注整个结构中的其中某一层,只需要在对应层中改变相应的部分而不需要改变整个软件程序,使系统具有良好灵活性和可扩展性。 各层之间的接口相对独立,降低了层与层之间的依赖,同时可为多用户提供访问,有利于各层逻辑的复用和软件标准化。
在系统软件实现时采用Lab VIEW进行开发,它是美国NI公司推出的一种通用虚拟仪器开发软件,包含了丰富的功能函数库和完备的总线设备驱动程序。它的最大特点是其基于图形的编程方式,它采用了框图而非传统的文本方式的编程方法。这种编程方式强调信号处理的实际过程,编程简单、调试方便。
3. 1人机交互层
三层模型中人机交互层与系统业务逻辑层的分离,只需关注人机交互界面上数据的显示和相关参数的输入, 不需要考虑系统业务逻辑的操作,因此在设计的时候考虑用事件驱动编程方式来实现,即某个事件一旦被触发,系统马上就去执行与该事件对应的事件过程。等该事件过程执行完毕后,系统又处于等待某个事件发生的状态。
3. 2业务逻辑层
业务逻辑层是系统架构的核心部分,主要完成业务规则制定、业务流程实现和与业务需求有关的设计。它位于分层系统的中间位置,在数据交换中起到了承上启下的作用,对于数据访问及通信层它是调用者; 而对于表示层它是被调用者。在业务逻辑层设计时采用TM( Table Module) 模型,该模型根据系统功能组织业务模块和数据表,每个模块对应各自的数据表,做到最大限度的业务功能和数据表相对应。该模型比较直观,操作集中,设计的程序简洁、高效。在本远程监控系统中,业务逻辑层中的运行数据模块、系统数据模块和系统命令模块实现如图4所示。
3. 3数据存储及通信层
3. 3. 1通信及数据库设计
在实现发射机远程监控系统与本地监控系统通信时,考虑到不同厂家提供串口和以太网通信接口的兼容性,采用适配器将串口通信转换成以太网通信方式。统一通信接口,通信协议采用TCP/IP协议。
通信过程为: 首先通过IP地址与端口号,在发射机本地监控系统端建立侦听,等待远程监控系统连接。然后远程监控系统根据IP地址和端口号发出连接请求,等到远程监控系统和本地监控系统建立连接后,通过读写函数即可进行TCP通信。
3. 3. 2数据库选择和设计
随着发射机运行状态数据的积累,对运行状态数据的管理和分析要求日益提高,因而有必要将数据库引入监控系统中。
选择使用SQL Server关系数据库管理系统,它是真正的客户机/服务器体系结构,具有图形化用户界面,使系统管理和数据库管理更加直观、简单。SQL Server提供了丰富的应用程序接口来访问数据库,主要的访问方法有: ODBC,API,OLE DB,Trabsact - SQL和DB - Library,客户机可以通过这些API作为动态链接库来使用,并通过客户端的网络库与SQL Server服务器通信。
在Lab VIEW编程环境下访问数据库通常有以下几种途径:
1) 利用NI公司的附加工具包Lab VIEW SQL - Tool- kit进行数据库访问,该方法简单易用,可以节约开发时间,提高工作效率。但是这种工具包比较昂贵,无疑会提高开发成本。
2) 利用Lab VIEW用户开发的免费数据库访问工具包Lab SQL对数据库进行访问,优点是简单易用,但该工具包不具备远程数据库访问功能。
3) 利用Lab VIEW的Aetive X功能,调用Mi. emsoft ADO控件,并利用SQL语言来实现数据访问。它的优点是结构灵活,可用于网络访问,不会增加系统成本。但需要对Microsoft ADO控件以及SQL语言有较深的了解,并且要从底层开始进行复杂的编程。其次,对于分布式、跨平台的Intemet上的数据库访问,功能还不够完善。
在本监控系统设计数据库访问时,利用方式2) 对数据库进行访问。使用之前在Lab VIEW中安装Lab SQL数据库访问工具包,即在Lab VIEW安装目录下的user. lib文件夹中新建一个名为Lab SQL的文件夹,将Lab SQL - 1. 1a. rar解压到Lab SQL文件夹中即可。
数据库访问步骤: 第一步在Microsoft SQL server→企业管理器→控制台根目录→SQL server组→数据库,在此目录下建立自己的数据库( My DB) 。第二步打开控制面板→管理工具→数据源ODBC,在其中添加驱动并创建数据源名( DSN) 。第三步在数据库里面建立表,有两种方式,手动建立和通过Lab VIEW应用程序自动建立。在此采用手动建立的方式,在自命名数据库里设置表格的列名( 即表头) 数据类型、数据长度及该数据是否可以为空数据。
根据要存储的数据,在数据库中设计相应的表,如图5所示。在Lab VIEW环境下通过SQL语言对数据库中的各个表进行操作,利用Lab VIEW的报表与报表工具包,可以生成Word或者Excel文档,便于后续的数据统计和分析。
4运行结果
本发射机远程监控系统的工作和运行过程描述如下: 首先,从数据库中读取相关参数并显示; 其次,通过通信接口从本地监控系统中读取发射机运行数据并在监控主界面上显示发射机工作状态,结果如图6所示。发射机正常工作时,图标圆点为绿色并显示正常运行,当发射机出现故障时图标为红色并显示故障,当发射机停播时图标为黄色。通过监控主界面上的功能按钮,实现所对应的显示、参数调整和控制功能。
5小结
本文提出了一种基于三层C/S架构的发射机远程监控系统体系结构,并详细阐述了通过以太网实现远程监控系统与本地监控系统之间的通信,建立数据库保存并管理运行数据和日志数据,利用Lab VIEW实现远程监控系统软件的开发过程。在这种架构下,远程监控系统软件具有开放性好、可伸缩性强、灵活性高等特点,方便维护和后续业务功能增加和扩展。通过发射机远程监控系统,工作人员可以方便地进行数据查询、统计和分析,为维护提供可靠的依据。可使值班人员从以前繁重的巡机、抄表工作中解脱出来,减少设备对人员的依赖,可以实现发射台“无人值守、有人留守”,能减轻值班人员的工作强度,提高了工作效率。该远程监控系统具有实用性和灵活性强等优点,具有推广应用价值。
摘要:为了实现对发射机运行状态远程监控,提出了一种基于三层C/S架构的发射机远程监控系统体系结构,并给出了系统的总体设计方案。与传统的两层结构相比,将客户端的数据处理功能分离出来,作为中间层即系统业务逻辑层单独实现。系统采用LabVIEW进行软件开发,通过基于TCP/IP协议的以太网组网来实现与本地监控系统的通信,利用SQL Server数据库保存并管理运行数据和日志数据。通过测试表明,该系统具备良好的灵活性和可扩展性,具有较高的应用价值和推广价值。
三层C/S模型 篇4
传统的2层C/S结构数据库应用中,系统的业务规则几乎都要在客户端进行,随着系统规模的不断扩大,企业逻辑日趋复杂,客户端将不堪重负。为了解决2层C/S结构存在的问题,多层结构应用体系应运而生。多层结构的典型是三层结构,其基本思想是把用户界面和企业逻辑分离,在传统的2层C/S结构中放入应用服务器。整体结构如图1。
2 Delphi开发三层C/S数据库应用程序方法
Delphi是一种可视化开发工具,支持面向对象开发方法,它提供数据库引挚BDE、丰富的数据库访问和操作控件以及数据库报表工具,大大提高开发数据库应用系统的效率。使用Delphi开发一般可以分成3个步骤:1)在数据库服务器上建立需要的数据库;2)建立应用服务器;3)建立客户端应用程序。
数据库服务器主要由专门的数据库管理系统实现,使用数据库引擎BDE来建立应用服务器与数据库服务器的关系。客户端和应用服务器端的连接通过DataSnap技术来实现。DataSnap提供了很多种客户端和应用服务器的连接方法,如Scokect,DCOM,Corba等,分别通过SocketConnection、DCOMConnection、WebConnection三个组件来实现TCP/IP、DCOM、HTTP三种传输协议。
3 基于DCOM协议的三层C/S数据库应用程序开发
建立三层结构应用程序,必须先建立应用程序服务器,并运行注册之,再建立客户端。下面通过在客户端建立一个浏览“学生.MDB”数据库中的“学生信息表”的应用程序来说明建立一个基于DCOM协议的三层结构数据库应用程序的开发方法(假设在应用服务器上已经设置好BDE连接,并连接到数据库服务器)。
3.1 建立应用程序服务器
1)新建一个应用程序,在Form1窗体上放置Table1,DataSource1和DataGrid1三个组件,并按照表1设置组件属性,Form1的设计界面如图2。保存窗体和应用程序,窗体单元取名为“ServerUnit”,项目文件取名为“DcomAppServer.dpr”。
2)增加一个远程数据模块,设置它的CoClassName为XSGL,保存取名为“XsglUnit”。并在XsglUnit单元的implementation部分中添加语句:uses ServerUnit;
3)在XSGL模块中加入一个TDataSetProvider组件,设置它的DataSet属性值为Form1.Table1。此时XSGL远程数据模块的设计界面如图3。
4)在Form1的OnCreate事件中编写如下程序:
5)保存并运行,运行界面如图4。系统自动将该应用服务器进行注册,当客户程序运行时,系统自动启用应用服务器。
3.2 建立客户端程序
1)新建一个应用程序,设置Form1的Caption属性为“学生信息表-客户端”。
2)建立数据模块,并添加TDCOMConnection,TClientDataSet,TDataSource和TDBGrid组件,它们的名称分别为DCOMConnection1,ClientDataSet1,DataSource1和DBGrid1。程序设计界面如图5。
3)设置DCOMConnection1,ClientDataSet1,DataSource1和DBGrid1的属性,其属性设置见表2。
4)在Form1的OnCreate事件中添加如下代码:
5)保存并运行,程序运行界面如图6。
4 结束语
在Delphi中可以通过基于DCOM协议、基于TCP/IP协议和基于HTTP协议3中方法来开发三层结构数据库应用程序,分别通过DCOM-Connection、SocketConnection、WebConnection三个组件来实现。其中DCOMConnection组件提供的功能最为完善,配置比较简单,而且执行效率较高,安全性也比较好。
摘要:讨论分析了Delphi中实现三层C/S数据库应用程序的方法,并举例进一步介绍基于DCOM协议来建立三层结构中的应用服务器和客户端应用程序的步骤。
关键词:Delphi,三层C/S数据库,DCOM协议
参考文献
[1]王春红Delphi7程序设计[M].北京:清华大学出版社,2004.
[2]侯太平,童爱红.Delphi数据库编程[M].北京:清华大学出版社,2004.
[3]吴小林,蒋先刚,高艳锦.基于Delphi的多层数据库应用系统连接技术的研究[J].华东交通大学学报,2005,1(22):66-70.