(计算机软件与理论专业论文)卫星电视监测系统中控制服务器的研究与实现.pdf_第1页
(计算机软件与理论专业论文)卫星电视监测系统中控制服务器的研究与实现.pdf_第2页
(计算机软件与理论专业论文)卫星电视监测系统中控制服务器的研究与实现.pdf_第3页
(计算机软件与理论专业论文)卫星电视监测系统中控制服务器的研究与实现.pdf_第4页
(计算机软件与理论专业论文)卫星电视监测系统中控制服务器的研究与实现.pdf_第5页
已阅读5页,还剩46页未读 继续免费阅读

(计算机软件与理论专业论文)卫星电视监测系统中控制服务器的研究与实现.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

卫星电视监测系统中控制服务器的研究与实现 卫星电视监测系统中控制服务器的研究与实现 摘要 随着电视的普及和卫星电视节目的丰富,卫星电视成为人们日 常生活中重要的一喑b 分,及时掌握我卫星电视的播出情况成为非常 迫切的任务。本文介绍了一个卫星电视信号综合监测系统的功能和 整体结构,并重点阐述了系统中控制服务器的设计方法和具体实现。 作者根据目前对卫星电视频道监测的需求,着重从系统构架、 技术的选择、软件的可重用性等方面进行了深入的探讨,并根据系 统的需要设计了专用的通信协议,提出了通信服务器内部消息处理 的算法,并结合先进的s o a p 技术设计系统中控制服务器部分,并予 以实现。 本文首先对卫星电视频道监测系统进行总体的描述,对相关的 协议进行了系统的介绍。然后从系统功能、系统体系结构和系统的 各部分的角色等方面详细的描述了系统的设计思想。最后系统的阐 述了控制服务器的总体结构,设计模式以及各个功能模块具体设计 和实现的技术细节。 关键词 电视监测s o a p 协议数据库通信 卫犀电视监测系统中控制服务器的研究与实现 r e s e a r c ha n di m p l e m e n t a t i o n o nc o n t r o ls e r v e ri nm o n i t o rs y s t e m 0 ft vp r o g r a m sb ys a t a l l i t et r a n s m i s s l 0 n a b s t r a c t w i t ht h ep o p u l a r i z a t i o no ft va n dn l o r et v p r o g r a m sb y s a t e l l i t et r a n s m i s s i o n , t v p r o g r a m sb y s a t e l l i t et r a n s m i s s i o na r eb e c o m i n g i m p o r t a n tp a r ti np e o p l e sd a i l y l i f e ,s oi ti sa nu r g e n tt a s kt ot a k ec o n t r o lo ft h ep r o g r a m sb ys a t e l l i t et r a n s m i s s i o n t h i se s s a yi n t r o d u c e st h ef u n c t i o na n ds t r u c t u r eo f t h em o n i t o r s y s t e m o nt v s i g n a l s t r a n s m i t t e db ys a t e l l i t e ,a n dp u t si m p o r t a n c eo nt h ed e s i g nm a di m p l e m e n t a t i o no f c o n t r o ls e r v e ro ft h i ss y s t e m t h ea u t h o rd i s c u s s e dt h es y s t e mf r a m e w o r k ,t h es e l e c t i o no ft e c h n o l o g ya n dt h e r e u s eo fs o f t w a r ec o m p o n e n t so nt h eb a s i so f p r e s e n tr e q u i r e m e n to n t h em o n i t o ro f t v p r o g r a m sb ys a t e l l i t et r a n s m i s s i o n ,d e s i g n e das p e c i a lc o m m u n i c a t i o np r o t o c o l b a s e do nt h i s s y s t e mr e q u i r e m e n t ,p u t t e df o r w a r dt h ea r i t h m e t i co nt h em e s s a g e p r o c e s si nc o m m u n i c a t i o ns e r v e r , a n di m p l e m e n t e d t h ec o n t r o ls e r v e rw i t ht h es o a p t e c h n i q u e t h i se s s a yw i l lf i r s td e s c r i b et h eo u t l i n eo ft h es y s t e m ,a n di n t r o d u c es o m e p r o t o c o l sr e l a t e dt o t h es y s t e m t h e ni tw i l ld e s c r i b et h ei d e ao fd e s i g nb yt h e s y s t e mf u n c t i o n s ,s y s t e mf r a m e w o r k f i n a l l y , i t w i l ld e s c r i b et h ef r a m e w o r k ,d e s i g n m e t h o d sa n dt h et e c h n i c a ld e t a i l so f e a c hm o d u l eo f c o n t r 0 1s e r v e r k e vw o r d s t vm o n i t o rs o a p d a t a b a s ec o m m u n i c a t i o n 卫埋电视监测系统中控制服务器的研究与实现 第一章概述 随着电视机的普及,电视节日也日渐丰富,卫星逐渐成为了传播电视节目 的重要载体,卫星数字电视已经成为广播电视传输覆盖网的重要组成部分。加 强卫星电视监测,督促检查中央及地方卫星电视安全播出,为有关领导和有关 主管部门提供监测数据和音视频信号,及时掌握我卫星电 ! ! l 的播出情况,加强 刘卫星电视播出工作的管理成为目前非常重要的任务。本系统就是为了满足这 种需要,应用于国家卫星监测中心的一个卫星电视信号综合监测系统。该系统 应用了业内先进的卫星信号接收技术、多媒体采集编码技术、网络多媒体点播 广播技术、网络传输技术、交换技术、数据库技术和大容量存储技术,能够对 8 0 多路卫星电视节目的播出质量和播出内容进行实时监测。该系统具体包括了 电视节目信号播出质量自动监测、异态自动报警、电视节e l 采集存储、视频节 目档案查询点播、异态内容切割分离、电视信号通过i p 网络实时广播、视频监 测大屏幕输出软件切换等功能。 卫星电视监测系统中控制服务器的研究与实现 2 1 x m l 理论及技术 第二章相关的技术 x m l ( 可扩展标识语言) 是网络卜的一种通用语言,是具有国际标准的数据 描述性语言。与h t m l 相似,x m l 也是由s g m l ( s t a n d a r dg e n e r a lm a r k u p l a n g u a g e ,标准通用标记语言) 发展而来。s g m l 是用来定义和使用电子文件 结构和内容的国际标准( i s o 一8 8 7 9 ) ,由于s g m l 过于详细和复杂,传输和处 理效率很低,所以一直没有被广泛地采用。 x m l 与s g m l 相比较起来,要简单、灵活、好用得多。它把很多在s g m l 底层非常复杂的语法结构隐藏起来,使整个结构非常灵活又容易扩充,开发应 用程序来处理x m l 格式文件是件非常容易的事,因此x m l 可以使软件系统涮 达到流畅的互通。另外x m l 继承了h t m l 的所有w e b 功能,这使得x m l 特 别适合在网上传输和处理。 x m l 比起h t m l 的单一固定语法,它具有一个更具弹性、更容易添加新功 能,而又不失统一标准的语言格式。x m l 是在人们逐渐感觉到h t m l 已不能 充分表达自然界复杂的信息时发展起来的。h t m l 用来形容展示页面的方法, 而x m l 却是用来形容页面的内容。 可以说x m l 是将强大的s g m l 运用于具有活力和应用前景的w e b ,同时 将h t m l 加以规范,把数据内容从表现中分离出来。x m l 语言可以让信息提 供者根据需要,自行定义标记及属性名,结构化地描述信息内容。 x m l 的一个主要思想是:数据制作者不需考虑数据具体的用途,只是尽量 全面地考虑今后可能会被用到的信息,并将其完整、规范地制作成x m l 文件, 用户则根据自己的喜好来处理数据。简要地说就是数据内容与表现分离的原则。 x m l 使开发人员可以在开始时按自己喜欢的方式来组织数据,以最好的实 现业务目标;同时,丌发人员仍然可以用无数种方式来应用这些数据。x m l 具 有良好的数据存储格式、可扩展性、高度结构化,便于网络传输、可与不同数 据库交互的特点。 x m l 可实现l 、人机之间交换数据,如从w e b 服务器至用户的浏览器。2 、 不同的应用之间交换数据。3 、机器之间交换数据。并且x m l 将处理数据的主动 权交给了客户,可使处理工作从服务器端分布于客户端,也可以使同一数据以 不同的面貌展现给不同的用户。 卫星电视监测系统中控制服务器的研究与实现 2 1f x i w l 应用范围与设计目标 严格来说,x m l 本身不是一个单一的标记语言,它是一种元语言 ( m e t a - l a n g u a g e ) ,可以被用来针对特定应用定义任何一种新的标记语言。这一 特征使x m l 可以为不同系统、厂商提供各具特色的独立解决方案。x m l 的应 用总的来说可以分为四大类: 1 ) 应用于客户需要与不同的数据源进行交互时。 由于x m l 的自定义性及可扩展性,它足以表达各种类型的数据, 客户收到数据后可以进行处理,也可以在不同数据库间进行传递。x m l 解决了数据的统一接口问题。但是,与其它的数据传递标准不同的是, x m l 并没有定义数据文件中数据出现的具体规范,而是在数据中附加 t a g 来表达数据的逻辑结构和含义。使x m l 成为一种程序能自动理解 的规范。 2 ) 应用于将大量运算负荷分布在客户端,即客户可根据自己的需求选择和 制作不同的应用程序以处理数据,而服务器只需发出同个x m l 文件。 应用x m l 将处理数据的主动权交给了客户,服务器所作的只是尽可能 完善、准确地将数据封装进x m l 文件中。x m l 的自解释性使客户端 在收到数据的同时也理解数据的逻辑结构与含义,从而使广泛、通用 的分布式计算成为可能。 3 1 应用于将同一数据以不同的面貌展现给不同的用户。 这一应用将会为网络用户界面个性化、风格化的发展铺平道路。 4 、应用于网络代理对所取得的信息进行编辑、增减以适应个人用户的需 要。 有些客户取得数据并不是为了直接使用而是为了根据需要组织自 己的数据库。这样可以通过几个小程序,将同一个x m l 文件变成多个 文件传送到不同的用户手中。 x m l 设计目标有以下1 0 点: 1 ) x m l 要适合在i n t e m e t 上直接使用 2 1x m l 要支持多种应用 3 1x m l 要与s g m l 兼容 4 1 要易于编写处理x m l 文档的程序 5 1x m l 特点的任意性应尽可能小,理想情况下应为零 6 1x m l 文档的可读性要强而且相当清晰 7 、x m l 应易于设计 卫星电视监测系统中控制服务器的研究与实现 8 ) x m l 设计鹰形式化而且简洁 9 ) x m l 文档应易于创建 1 0 ) x m l 标记的简洁性 2 22x m l 语法 x m l1 0 标准规定了x m l 文档的结构和定义,提供对存储布局和逻辑结 构加以限制的机制。所有x m l 文档都必须符合x m l 的语法限制,要求格式良 好,必须满足以下几条规则: 1 ) 有一致的、良好定义的结构 2 ) 所有属性被引用 3 ) 空白区域不能忽略 4 ) 所有的起始标记必须对应结束标记 5 ) 仅有一个根元素包含其它所有的节点 6 ) 元素不能交叉重叠但可能包含 7 ) 大小写敏感 8 ) 关键词如”d o c t y p e ”、”e l e m e n t ”、a t t r i b u t e ”和”e n t i t y ”大写 9 ) 空元素必须闭合 l o ) 字符 和只能用于起始标记和实体引用 1 1 ) 预定义的实体引用 在特定的应用中,数据本身具有含义上、数据类型上和数据关联上的限制, 也就是语义限制,即要求文档是有效的。如果一个) ( m i 文档有规定其文档类型 和数据结构的定义( d t d 或s c h e m a ) 与之相关联,那么这个文档就是有效的。如 果没有d t d ( d o c u m e n tt y p ed e f i n i t i o n ,文档类型定义) 或者s c h e m a ,文档可 以包含任何类型的标记。 x m l 文档必须是格式良好的,但不一定是要有语义规定即满足有效性。但 如果要对x m l 文档的具体结构进行规范,就必须采用有效性的约束。约束的途 径有两种:d t d 或x m ls c h e m a 。d t d 和s c h e m a 规定了在x m l 文档中可以包含的 标记种类和有效布置,只有其结构、数据类型和数据关联等均满足d t d 要求的 k m l 文档,才能称为有效的】( m l 文档。 每个x m l 文档有一个逻辑结构和物理结构。从物理角度来看,文档由实体 单元组成,一一个实体也可以在其它文档的实体中被引用。一个文档以一个根元 素或文档实体来开始。逻辑上看,文档由声明、元素、注释、字符引用和处理 指令组成。这些组成部分在文档的标记中必须明确规定。物理结构和逻辑结构 卫星电视监测系统中控制服务器的研究与实现 也必须满足格式良好的特点。 一个x m l 文档由三个部分顺序组成:文档的“序言”一一p r o l o g 、文档的 核心一元素e l e m e n t 及杂项一一m i s c 。 元素 每个x m l 文档都包括一个或多个元素。元素由开始标记和结束标记来定 界,在开始标记和结束标记之间是元素的,如果元素为空,可以由特殊的空元 素标记来表示。 起始标记和结束标记将数据进行结构化组织,确定了元素的范围和相互关 系( “父子”或“兄弟”) 。起始标记中包括元素名称及元素的属性项,结束标记 中不包含元素的属性项。起始标记和结束标记之间就是元素的内容,元素的内 容主要有一个或多个子元素、字符数据、引用、c d a t a 段、处理指令和注释。 字符数据:x m l 文档中除去标记的部分。 引用:分为实体引用和字符引用两种类型。实体实际上是数据的抽象,所 以定义了一个实体后,可在其它地方进行引用。字符引用是指用十六进制代码 代表i s o i e c l 0 6 4 6 字符集中的一个特定字符。 c d a t a 段:字符数据段凌架于解析器之上,其中的内容不被解析。可包含 一段h t m l 代码,也可包含编程语言的代码。字符数据段为进行x m l 的后续 处理提供了编程的接口。 处理指令( p i ) :x m l 文档为应用准备的指令。处理指令不是文档中的字符 数据,它的作用是为解析器和其它应用程序提供信息。 注释:使x m l 文档的结构和内容更清晰易懂。可以在标记之外的任何地方 增加。 序言( p r o i o g ) 序言的核心部分为x m l 声明( x m l d e c l ) 和文档类型声明( d t d ) 。 x m l 声明:一般用来表明x m l 文档的版本信息、内码编码方式等通用信息。 如果存在于x m l 文档,则一定是文档的最开头。 文档类型声明( d t d ) :规定元素的结构和属性列表以及元素间的逻辑关系 以对文档进行有效性检查。 杂项( m is c ) 杂项由处理指令、注释和空白符组成。 卫星电视监测系统中控制服务器的研究与实现 2 2 3 x m l 编程 文件对象模式( d o c u m e n to b j e c tm o d e l ,d o m ) 在内存中将x m l 文件以树状 结构方式呈现,并且提供程序设计师易于使用的环境。d o m 提供可存取的对象, 所以可以像处理和操作现代化语占的对象一样使用d o m 提供的对象。d o m 定义了 一组标准的对象集合和可以操作x m i 、存取文件、元素和属性的接口。d o m 可以 将x m l 文件视为一个对象,藉由使用格式正确的应用程序接v 1 和属性及方法,可 以像存取系统对象一样的存取该对象。 m i c r o s o f t 建置d o m 的方式,其建置方式有最完整的文件及最佳的支持。 m i c r o s o f td o m 是m ic r o s o f tx m l 剖析器对象的一部份,m i c r o s o f tt n t e r n e t e x p l o r e r5 、m i c r o s o f t0 f f i c e2 0 0 0 和m i c r o s o f tw i n d o w s2 0 0 0 中都包含 了m i c r o s o f tx m ld o m 对象,x m i d o m 对象也是可以封装在应用程序中重新部 署的对象。d o m 的文件名称为m s x m l 2 d l l ,其注册c o m 组件的名称为 m s x m 2 c o m d o c u m e n t 。因为d o m 是c o m 组件,您可以在任何启用c o m 的应用 程序中呼叫它,同样也可以使用a c t i v e x 控件的方式存取它。 s a x ( s i m p l e a p i f o rx m l ,简化x m l a p i ) 虽然不是w 3 c 推荐的标准, 但由于性能好,速度快,内存要求比较低,它己成为任何一种x m l 处理a p i 所要支持的接口。与d o m 对象的处理方法不同,s a x 不需要在内存中为x m l 数据源建立树型的结构映象,而是一种基于流式的操作方式,所以无论从速度 上、资源要求上比较,都优于d o m 操作方法。 j d o m 结合了d o m 和s a x 的优点,在内存资源的要求更少。同时,j d o m 提供了一种可供随机访问的全文档视图,但却无需在内存中创建x m l 文档的 映射。 j d o m 是种面向j a v a 的读、写和操作x m l 文档的a p i 。j d o m 与现行的 s a p 和d o m ( d o c u m e n to b j e c tm o d e l ,文档对象模型) 标准兼容,为j a v a 程 序员通过一个简单、轻量的x m l 文档操作方法。需要指出的是,j d o m 是专 门为j a v a 程序员开发的,所以采用许多j a v a 语言的优秀特性,比如方法重载, 集合( c o l l e c t i o n s ,这是在j a v a 2 中出现的数据操作类型) 和类映射( r e f l e c t i o n ) 。 j d o m 是一种使用x m l 的独特j a v a 工具包,用于快速开发x m l 应用程 序。它能够替换o r g w 3 c d o m 软件包来有计划地操作x m l 文档。 j d o m 的初始设计目的就是用传统方法的2 0 甚至更少的代码完成8 0 的 工作。但这并不意味着j d o m 和x m l 规范只有8 0 的兼容,j d o m 就是要完 全兼容x m l l 0 的规范标准。 j d o m 的另外一个设计目标就是快速和轻量。与其他操作x m l 文档数据源 卫星电视监测系统中控制服务器的研究与实现 的a p i 相比,j d o m 在执行速度,效率和对内存的要求方面都与众不同。 j d o m 具有以下优点: j a v a 平台专用。只要有可能,a p i 都使用j a v a 语言的内建s t r i n g 支持, 因此文本值也适用于s t r i n g 。它还利用j a v a2 平台的类集,如l i s t 和i t e r a t o r , 给程序员提供了一个丰富的并且和j a v a 语言类似的环境。 没有层次性。在j d o m 中,x m l 元素就是e l e m e n t 的实例,x m l 属性 就是a t t r i b u t e 的实例,x m l 文档本身就是d o c u m e n t 的实例。由于在x m l 中所有这些都代表了不同的概念,因此它们总是作为自己的类型被引用,而不 是作为一个含糊的“结点”。 类驱动。因为j d o m 对象就是像d o c u m e n t 、e l e m e n t 和a t t r i b u t e 这些类 的直接实例,因此创建一个新j d o m 对象就如在j a v a 语言中使用n e w 操作 符一样容易。它还意味着不需要进行工厂化接口配置j d o m 的使用是直截 了当的。 使用标准的j a v a 编码模式。只要有可能,它使用j a v a n e w 操作符而不用 复杂的工j r 一化模式,使对象操作即便对于初学用户也很方便。 j d o m 文档由1 0 个基本的类组成,它们是:d o c u m e n t 类、e l e m e n t 类、 a t t r i b u t e 类、t e x t 类、c d a t a 类、p r o c e s s i n g l n s t r u c t i o n 类、c o m m e n t 类、n a m e s p a e e 类、d o c t y p e 类和e n t i t y r e f 类。这些类分别代表x m l 文档中不同类型的节点。 j d o m 文档通常包含一系列的c o m m e n t 对象、p r o c e s s i n g i n s t r u c t i o n 对象和 唯一个作为根元素的e l e m e n t 对象。每个e l e m e n t 对象又可包含一系列它自 己的内容、属性和命名空间。 e x t e n s i b l es t y l e s h e e tl a n g u a g e ,或称之为x s l ,是一种用于转换和格式 化x m l 文件的语言。转换意指变更x m l 文件为其它的文件;格式化意指可视化或 呈现x m l 文件。可以使用x s l 样式表转换x m l 文件为h t m l 格式来呈现数据,或是 将x m l 结构转换至其它结构。如果公司使用内部的文件架构,而供货商使用另一 种不同的架构,此时转换就十分有用了。可以利用x s l 转换一种架构的x m l 文件 至另一种架构的x m l 文件,每一份文件中的资料仍然维持原样,并且也可以使用 指令码达成转换目的。 w 3 cx s l 有两个主要的目的:格式化对象和转换x m l 文件。要格式化文件,x s l 会读取x m l 文件并套用一系列的转换程序以建立另一个x m i 。文件,称为结果树 ( r e s u i tt r e e ) 。结果树取决于格式化对象的名称空间,其中包含数百个描述 p 星电视监测系统中控制服务器的研究与实现 x m l 文件呈现方式的元素和属性。结果树会被读入格式化对象解译器,解译器 会解译格式化对象元素和属性,并且为每一种特定目的输出其排列文档版式的 程序代码。x s l 呈现方式的处理程序提供了一种强大的模式,因为它允许组织 司以从相同的x m l 输入和样式表获得任何输出方式。当然,该模式只有在所需 要的输出方式支持格式化对象解译器才会取得其益处。 2 2 s o a p 协议 s o a p ( s i m p l eo b j e c ta c c e s sp r o t o c o l ,简单对象访问协议) 是一个用来 在分散分布式的环境中交换信息的简单协议,它是一个基于x m 。的协议。由于 s o a p 消息的格式是标准的,并且是基于x m l 标准的,因此s o a p 可以用来在不 同的计算机体系结构、不同的语言和不同的操作系统之间进行通信。 2 。2 1s o a p 协议概述 s o a p 本身是一个无状态的、单向的消息交换机制,但是应用程序可以在此 基础上,通过结合单向交换与底层传输协议的特性或应用程序信息来创建更加 复杂的交互模型,例如请求响应和请求多重响应等。 s o a p 协议中没有包含应用于s o a p 消息路由、可靠数据传输和穿越防火墙等 方面的应用程序数据传送语义,但是它提供了一个机制,通过这个机制,特定 于应用程序的信息能够以一种可靠的方式传送。同时,s o a p 还描述了s o a p 处 理器如何对所接收s o a p 消息进行操作。 s o a p 协议包括4 个部分: s o a p 信封( e n v e l o p e ) :它构造定义了一个整体的s o a p 消息表示框架, 可用于表示消息中的内容是什么,是谁发送的,谁应当接受并处理它,以及这 些处理操作是可选的还是必须的等。 s o a p 编码规则( e n c o d i n gr u l e s ) :它定义了一个数据的编码机制( 即如 何把语言类型映射到s o a p 消息的x m l 上) ,通过这样一个编码机制来定义应用 程序中需要使用的数据类型。并可用于交换由这些应用程序定义的数据类型所 衍生的实例。例如可能应订单服务的需要,使用s o a p 编码规则定义了订单的数 据类型,并可以在订单生成的客户端与订单服务之间交换订单实例。 s o a pr p c 表示( r p cr e p r e s e n t a t i o n ) :它定义了如何使用s o a p 进行远 程过程调用和响应。例如如何使用t f f t p 或s m t p 协议与s o a p 绑定,如何传输过 程调用,在具体传输协议的哪个部分传输过程响应,如我们可以在h t t p 的响应 卫星电视监测系统中控制服务器的研究与实现 的时候传递过程响应。 。s o a p 绑定( b i n d i n g ) :描述如何使用底层协议交换信息。s o a p 协议中包 含一个默认的l t t p 绑定,它定义了如何通过h t t p 交换s o a p 消息。 s o a p 协议的常用术语有: s o a p 结点:s o a p 结点根据s o a p 定义的整套规范来处理s o a p 消息。s o a p 结点有责任遵守s o a p 消息交换的规则以及提供通过依赖底层协议的s o a p 绑定 来访问的服务。任何不符合s o a p 约定的情况都将导致s o a p 结点产生一个s o a p 错误。 s o a p 条目:s o a p 条目是一个句法上的结构,它用于包含一个逻辑上的单 一元素,这一元素是需要被s o a p 结点处理的。一个s o a p 条目是由该条目最外 层元素的完整修饰名所标识的,这个完整修饰名是由一个局部名和一个命名空 间u r i 组成的。封装在s o a ph e a d e r 中的s o a p 条目成为t t e a d e r 条目,而封装 在s o a pb o d y 中的s o a p 条目为b o d y 条目。 s o a ph e a d e r :能够被s 0 a p 消息路径中任意的s o a p 接受者处理的一组s o a p 条同( o 个或多个) 。 s o a pb o d y :能够被s o a p 消息路径中的最终s o a p 接受者处理的一组s o a p 条目( 0 个或多个) 。 s o a pf a u l t :s o a p 结点产生的用于包含错误信息的特殊的s o a p 条目。 s o a p 消息路径:为传送一个简单的s o a p 消息而要经过的一组s o a p 发送 者和s o a p 接受者。其中包含了初始s o a p 发送者、零个或多个s o a p 中介以及最 终s o a p 接受者。 初始s o a p 发送者:s o a p 消息的最初产生者,同时也是s o a p 消息路径的 第一个结点。 s o a p 中介:s o a p 中介即是s o a p 接收者也是s o a p 发送者,是s o a p 消息 可到达的某一个应用程序。当s o a p 消息沿着s o a p 消息路径传输时,s o a p 中介 将处理一组确定的s o a p 条目,然后它将消息转发给消息路径的下一个s o a p 结 点,直至传送到最终s o a p 接收者。 最终s o a p 接收者:由初始s o a p 发送者指定的通过s o a p 消息路径传送 s o a p 消息的最终s o a p 接收者。如果在s o a p 消息路径中有s o a p 结点产生了s o a p 错误,那么s o a p 消息将不会到达最终接收者。 s o a p 数据模型:一组抽象的构造约定,用于描述通用数据类型和数据中 的链接关系。 s o a p 数据编码:在s o a p 消息中使用个或多个s o a p 条目,按照s o a p 数据模型完成句法上的数据表示。 卫星电视监测系统中控制服务器的研究与实现 2 2 2 s o a p 消息 s o a p 消息( m e s s a g e ) 是在对等s o a p 结点( s o a pn o d e s ) 问通讯的基本单位, 它是由一个强制的s o a pe n v e l o p e 、一个可选的s o a ph e a d e r 和个强制的s o a p b o d y 组成的x m l 文档。下面分别介绍各部分: 信封( e n v e l o p e ) :信封是表示s o a p 消息的x m l 文档的项级元素。e n v e l o p e 元素包含两个子元素h e a d e r 和b o d y ,这两个元素中的内容是由应用程序定义 的并且不属于s o a p 规范。 该x m l 元素的语法规则如下: 1 、元素名为e n v e l o p e 2 、该元素必须在s o a p 消息中出现,一般是根元素 3 、该元素可以包台命名空间申明和额外的属性。如果出现额外属性( 并非 是s o a p 规范预定义的属性) ,则必须使用命名空间修饰。类似的,该元素可以 包含额外的子元素,这些子元素如果出现,必须有命名空间修饰并且必须跟在 s o a pb o d y 元素之后,也就是说e n v e l o p e 的直接子元素h e a d e r 和b o d y 必须排 列在最前面。 报头( t t e a d e r ) :报头是一种用来以分散方式向s o a p 消息上添加额外特 性的通用机制。通过这种机制,添加额外特性时不需要得到通信双方的事先同 意。正是通过这种机制,应用程序才能以特定的方式对s o a p 消息进行扩充。报 头的直接子元素称为报头条目,它表示一些逻辑数据分组,可被传输路径中的 s o a p 节点进行处理。s o a p 定义了一些属性来指出谁应该处理某个特性以及这个 特性是可选的还是必须要处理的。 该x m l 元素的语法规则如下: 1 、元素名为h e a d e r 2 、该元素可以在s o a p 消息中出现,但并不是必须出现( 也就是说可以仅使 用b o d y 元素完成一次s o a p 消息的信息描述) 。如果出现,该元素必须是s o a p e n v e l o p e 元素的第一个直接子元素。 3 、该元素可以包含一系列的h e a d e r 条目,这些条目都应当是h e a d e r 元素 的直接子元素。h e a d e r 的所有直接子元素必须有命名空间修饰。 4 、h e a d e r 条目自身可以包含下级子元素,但这些元素不是h e a d e r 条目, 而是h e a d e r 条目的内容。 报体( b o d y ) :报体是一个包含发送给最终目标节点的必需信息的容器。 s o a p 消息的最终接收者必须要正确处理b o d y 元素。最终s o a p 接收者使用b o d y 元素的子元素的局部名和命名空间名来确定所要执行的处理。s o a p 还为报体定 甲星电视监测系统中控制服务器的研究与实现 义了一个f a u l t 元素,它用来报告错误。 该x m l 元素的语法规则如下: 1 、元素名为b o d y 2 、该元素必须在s o a p 消息中出现,同时必须是s o a pe n v e l o p e 元素的一 个直接子元素。若该消息中包含h e a d e r 元素,则b o d y 元素必须直接跟随h e a d e r , 为h e a d e r 元素的相邻兄弟元素。若 1 e a d e r 不出现,则其必须是e n v e l o p e 的第 一个直接子元素。 3 、该元素可以包含一系列的b o d y 条目,这些条目都应当是b o d y 元素的直 接子元素。b o d y 的所有直接子元素必须有命名空间修饰。s o a p 定义了s o a pf a u l t 元素,它用来指示调用错误的信息。 4 、b o d y 条目自身可以包含下级子元素,但这些元素不是b o d y 条目,而是 b o d y 条目的内容。 s o a p 消息的结构如下图所示: 2 2 3 s o a p 消息交换模型 图2 4 :s o a p 消息的结构 从根本上来说,s o a p 消息是一个从发送方到接收方的单向传送,但是,s o a p 消息一般会和实现模式结合,经常以请求响应的方式实现。 s o a p 结点可以是初始s o a p 发送者,可以是最终s o a p 接收者,也可以是同 时作为s o a p 发送者和接收者的s o a p 中介。由于s o a p 不提供路由机制,因此 s o a p 需要识别s o a p 消息从初始发送者到最终接收者的途中需要经过的零个或 多个s o a p 中介。接收到s o a p 消息的s o a p 结点必须能够根据下面所描述的处理 模型执行处理、产生必要的s o a p 错误和s o a p 响应,如果需要的话还应当根据 卫星电视监测系统中控制服务器的研究与实现 本规范的后续描述生成额外的s o a p 消息。 s o a p 处理模型描述了一个节点上的s o a p 处理器在接收到一条s o a p 消息时 所采取的动作。一个s o a p 节点必须按照以下的顺序来处理s o a p 消息: 1 、确定节点的角色,这可以使用s o a p 信封( 包括报头条目和报体) 中的 内容来确定。 2 、识别所有定向到该节点的强制报头条目。 3 、如果上一步中识别的一个或多个报头条目不被该节点所理解,则产生 个s o a pm u s t u n d e r s t a n d 错误,并取消所有后续的处理。与报体相关的错误不 能在这一步中产生。 4 、处理所有定向到该节点的报头条目,并且如果该节点是最终接收者,则 还要处理报体。s o a p 节点必须处理所有定向到它的报头条目,但可以选择忽略 那些定向到它的非强制报头条目的处理。 5 、在中间节点的情况下,删除所有定向到该节点的报头条目( 不管报头条 目是被处理还是被忽略,都必须删除) ,并可以插入新的报头条目。 如果处理过程失败,节点只能产生一条错误信息。与报头相关的错误( 不 包括m u s t u n d e r s t a n d 错误) 必须是s o a ps e n d e r 或d a t a e n c o d i n g u n k n 。w n 错误, 并且必须符合对应报头条目的局部名和命名空间名所确定的规范。与报体相关 的错误必须是s o a ps e n d e r 或d a t a e n c o d i n g u n k n o w n 错误。 在处理个条目时,s o a p 节点可以引用s o a p 信封中的任何信息,例如,如 果需要的话,缓冲功能可以缓冲整个s o a p 消息。 特定报头条目的处理可以控制或决定其他报头条目s n 或报体的处理顺序。 例如,可以创建一个报头条目来强制其他的报头条目按照字典顺序进行处理。 如果没有这样的控制条目,报头和报体的处理顺序由s o a p 节点自己确定,报头 可以采用优先级顺序、任意顺序、交叉顺序或在报体之后处理。例如,“b e g i n t r a n s a c t i o n ”报头条目通常会优先处理,“c o m m i tt r a n s a c t i o n ”则随后处理, 而“l o g g i n g ”则与报体并行处理。 如果s o a p 节点是一个中间节点,则s o a p 消息的模式和处理结果( 没有错 误产生) 可能需要s o a p 消息沿着消息路径继续向前发送。这种中继的s o a p 消 息必须包含初始s o a p 消息中的所有报头条目( 除去那些被中间节点删除的条 目) 和报体,并且具有与初始s o a p 消息相同的顺序,另外,中间节点也可能插 入一些新的报头条目。 请求n l ;j 应方式的消息交换可以具有两种风格:文档( d o c u m e n t ) 风格和r p c 风格。大部分的请求响应消息交换都是文档风格,在这种情况下,交换的信息 直接编码成b o d y 的子元素,并且这些元素符合应用程序定义的架构。 r p c 风格的消息交换使用s o a p 规范定义的标准表示把r p c 调用和响应以结 卫旱电视监测系统中控制服务器的研究与实现 构的形式编码在b o d y 元素中,并且这个结构的名称与过程的名称相同,其中包 含剥应于过程参数和返回值的予元素。 2 24 s o a p 协议绑定框架 s o a p 消息可以使用多种不同的底层协议进行交换。定义s o a p 消息如何使用 一个底层协议从一个s o a p 处理器传送到另一个处理器的规范称作传输层绑定。 s o a p 提供了一个具有核心功能的简单消息处理框架,可扩充性是它主要关 心的问题。这个框架描述了应用程序如何选择使用特定协议提供的特性来实现 特定的应用程序语义。s o a p 本身没有提供任何用于修正不同底层协议提供的特 性差异的机制,因此,如果在选择的底层基础结构中没有提供一个特定应用程 序所需要的特性,则这些特性必须通过s o a p 扩充的形式提供,即通过s o a p 报 头条目提供。 s o a p 节点对s o a p 消息的发送和接收是通过绑定到一个底层协议上来完成 的。s o a p 底层协议绑定在s o a p 消息路径中的相邻节点之帕j 进行操作。绑定并 没有提供一个单独的处理模型,它是一个s o a p 节点的主要构成部分。另外,s o a p 消息路径中的所有节点之间没有必要都使用相同的底层协议。 虽然s o a p 没有限制消息交换所具有的特性,比如可靠性、安全性、相关性 和路由,但是,作为s o a p 节点间通信的一部分,有必要引入这样的特性。另外, 通信也可能需要的不仅仅是s o a p 所提供的单向m e p ( m e s s a g ee x c h a n g e p a t t e r n ,消息交换模式) ,这也可以看作是一种特性。 在一些情况下,底层协议直接或通过扩充来使用一些机制以提供某些特性。 特性是一些模块化的组件,正是这些组件构成了s o a p 节点之间进行通信所遵守 的约定以及它们所支持的绑定。s o a p 绑定框架描述了这些特性以及它们如何关 联到s o a p 节点上。s o a p 绑定规范声明了绑定提供的特性并描述了如何使用底 层协议服务来实施这些特性。另外,绑定规范还定义了建立指定绑定实现所需 的要求。 s o a p 扩充模型和s o a p 绑定框架可以结合在一起提供灵活的方法来表示特定 特性,比如可以完全在s o a p 封装中表示这些特性,也可以在封装外部表示,或 者结合使用这两种方式表示。绑定框架的目标是: 描述对所有绑定规范都通用的需求和概念。 方便对支持通用特性的绑定的描述。多个绑定可以提供某个指定的可选 特性,比如消息的可靠分发,这可以直接依赖于底层协议的特性来实现,也可 以通过在绑定中提供响应的程序逻辑来实现。这种特性可以以一种一致的方式 卫犀电视监测系统中控制服务器的研究与实现 呈现给应用程序,而不管使用哪一个绑定。 s o a p 消息交换模型描述了对所有s o a p 节点都通用的处理过程,绑定规范的 目的足扩充这些核心规则,主要是通过添加特定于绑定和底层协议通信方式的 处理过程来实现。 因此,管理指定s o a p 消息传送的分布式状态机由每一个节点巴的核心s o a p 处理过程与连接每一个节点对的绑定规范所组成。 正如上面所说,s o a p 可以使用可选的特性进行扩充,比如可靠的消息分发、 请求响应消息交换模型和多点消息交换模型等。指定这些特性的规范必须包括 以下内容: 在每一个节点上实现特性所需要的信息( 状态) 。 在每一个节点上实现特性所需要的程序过程。 在节点间传送的消息,以及在复杂m e p 的情况下产生额外消息( 比如请 求响应m e p 中的响应消息) 所需要的条件。 每一个绑定规范必须支持单向消息的传送和处理。绑定规范可以指出它支 持的额外特性,在这种情况下,这个绑定规范必须以一致的方式来维护状念、 执行处理和传送信息。在一个绑定规范支持多种特性的情况下,这个规范必须 提供结合使用这些特性所需的任何必要消息。 每一个s o a p 消息都包含一个e n v e l o p e

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论