以下是宣传员给大家分享的7篇soap协议,希望能够让您对于soap的写作有一定的思路。
soap协议 篇一
论文摘要:随着计算机网络的迅猛发展.现代企业和政府部门要求网络信息系统能够是松散耦合的、有良好的跨平台性,并且设计简单。soap正是基于此类需要而产生的协议。但是soap的特点使得基于其上的应用在效率的表现上较为低下。通过分析soap的请求响应机制.对这一过程中的某些方面优化的可能进行了一些探讨。
0引言
soap协议往往生成冗长的请求与应答, http并不是有效率的通信协议,除此以外,基于文档的开放的无状态的协议处理客户端请求必须做更多的工作,其中包括必须对请求和结果进行语法分析,传输的内容的要进行序列化,xml需要文件解析等等,所有这些都需要耗费大量时间。因此,soap调用的等待时间往往高于corba调用的等待时间,基于soap的网络信息系统也显得效率低下。因此,必须找出不足的原因。并找出提高效率的对策。
1 soap服务分析
soap是一个在分散化的分布式环境中用来交换信息的轻便协议。一个典型的soap服务通常包含以下组件:soap客户机、soap服务器、实际服务(如图1)。
2讨论和优化
作为简单性和可伸缩性的代价,soap的调用过程耗费了大量的时间在序列化(对象到xml)、解析(xml到对象)、将用户的请求传输给后端服务器以及网络传输上,以下针对这些方面进行进一步讨论和优化处理。
2.1硬件扩充
从硬件的角度来看,可以从“内缩放”和“外缩放”来改进等待时间。内部缩放,即可以通过为服务器使用更多的或更好的硬件来改进软件的性能,例如采用更多的cpu、内存以及更高的网络带宽、增加传输的高速缓存器等。外部缩放,即通过把负载分布到多台服务器上来改进系统的性能。这时要求分布式网络系统要么是无状态的,要么在多台计算机之后共享状态。
2.2解析的考虑
有两种处理xml数据的模型:使用语法分析器产生的语法事件序列,直接输人到用户的处理中;或者首先把嵌套的节点、xml源结构构造成一个表示该程序的树中,然后通过与这些树形的数据类型相关的api来操作xml数据。这两种模型导致了两个不同的xml解析标准:
(1)基于事件的解析器sax(simple api for xml)
(2)基于树型的解析器dom (document object model )
(3)选择和改进
采用sax或者dom实际上是各有利弊的。
如果在soap body中包含了大量的数据,可以在具体应用中进行合适的分段解析(见图2),在body中将这些数据分成适当大小的数据块,然后发送出去。而soap消息的接受端的处理程序将会把每个块元素视为一个原子,利用sax进行解析。处理中,将视每个块元素被成功处理与否,而将相应的确认加入到soap响应中去。当soap请求消息被处理完毕之后,soap响应消息的生成处理也同时被完成。因此,消息的处理和响应的生成是交错进行的,这样做可以有效地提高了处理的时间。
当然,也可以适当对dom分析器做一些改进氏在文档很庞大的情况下,采用一种基于“拉”的技术的dom,也就是说,可以仅创建出要访问的那部分xml文档的基于dom的内存结构。具体操作是,在解析中,只有遇到感兴趣的那部分的节点,才将该节点相关的部分读人成为完整的dom树结构,即将其整个拉人内存中,然后可以调用常规的dom方法进行处理。这种做法将有助于克服dom的低效性,同时利用了dom能允许代码直接读和修改xml文档各部分的特性。
2.3利用高速援存技术
使用高速缓存技术的好处在于它改进了应用系统的响应时间,避免重复执行相同的计算操作,或是避免当结果集在一段时间内持续有效的前提下,重复执行后台复杂的数据库访问,因为一系列针对相同信息的请求可以使用被高速缓存的版本来响应,而无需重复地处理并占用系统开销。高速缓存机制的另一个好处则是针对数据的传输,应用了高速缓存机制之后,数据的副本可以存于叶节点服务器以方便本地的服务,而无需重复地访间中央信息库。这样,不仅加快了对信息的访间,同时缩减了对网络带宽的占用,减轻了中央服务器的负载。此外,高速缓存技术改进了soap服务中的瓶颈,降低了序列化对象到xml文档上所花费的时间。
2.4网络传抢
soap消息的传输是通过绑定相应的传输协议来实现的。尽管soap可以采用其他传输协议,但它通常都是通过http协议来完成网络传输工作的。
在使用http进行soap消息的传输时,必须在消息头指定消息体的长度。在http1.0中,这个值要在序列化后才能决定下来,然后填人消息头等待发送。所以在传输soap消息之前,系统中要有两个以供发送的缓冲器来分别存放消息头和消息体。并且要序列化完整的soap消息后以后才能完成消息头,再开始传输。这样做会增加系统调用,在消息很大时耗费大量的内存,并且在完成整个消息后才发送也延长了传输时间。
解决的办法是采用分块传送机制。可以将soap的消息体被分成适当大小的块以流的形式被传输。这时候不再需要计算整个消息体的大小。因为块大小是确定的,soap的接收者在处理消息时就能根据块的大小决定每块消息体在哪里结束。去掉消息体的长度意味着soap的发送者不用将整个soap消息放人缓冲区等待发送,而是将整个消息分块分批进行处理和传送,这样就允许网络传输和序列化能重叠进行,减少系统开销。同时,采用永久连接的方式,这将减少为每一个消息产生新连接的开销。
soap协议 篇二
关键词:.net框架;Web服务;Web服务协议栈;SOAP
中图分类号:G712 文献标识码:B 文章编号:1002-7661(2013)33-036-01
第一代WEB应用只是静态网页,人们和网络无法进行交互。CGI、ASP的出现,把人们带到第二代WEB。使人们不仅可以浏览网上丰富的网页资源,还可以在网上自己的信息,比如电子公告牌。
Microsoft公司2000年宣布的。Net的伟大计划,把人们带入了第三代WEB。它的目标是要实现跨平台无缝衔接,实现这个目标的关键技术就是Web服务。WEB服务给WEB注入了新的活力,它完全屏蔽了不同平台之间的差异,人们可以跨平台来进行电子商务了。
一、Net技术概述
2000年6月,MICROSOFT公司宣布。NET战略,将WEB带入一个全新的时代。具体地说就是将软件作为服务。.NET将现有的相互隔绝的网络应用程序编织成一张真正的下一代互联网,让人们随时利用任何设备获取信息成为可能。
二 .Net框架
在。NET框架中,所有程序都是运行在通用运行语言CRL之上。CRL是。NET的的运行环境,它为运行在。NET框架上的一切程序提供一个统一的运行环境。
在CRL中运行的程序都转化成中间语言CIL,使用什么语言来编写程序已经不重要了,.NET支持25种编程语言,它完全屏蔽了语言差异,可以说它支持那么多种编程语言完全是为了程序员的编程习惯。
三、Web服务技术
1、Web服务技术的基石――可扩展标记语言XML
作为WEB服务的基础的XML语言一开始并不是为WEB服务来设计的,其开始设计的主要目的是为了弥补HTML作为网络标准语言的不足。HTML有着超凡的界面表现能力,但是并不能用来表示数据,而XML正好弥补了这一不足,迅速成为处理网络数据的通用方法。XML的主要特点有:自描述性、可扩展性、分层结构 、内容与形式分离。
2、Web服务的概念
WEB服务就是部署在Internet/Intranet上的组件。人们传统编程模式都是调用本地的组件来完成应用程序的开发,例如WINDOWS环境下的COM控件APIDLL等,当程序员需要用哪个组件的时候本地必须有这个组件。而到了WEB服务时代,人们可以调用Internet上的组件---WEB服务,而且有很多公司已经在internet上提供了一些WEB服务。
比如,汽车维修的过程是,司机通知维修公司汽车故障的信息,包括故障地点,故障原因,然后维修公司根据司机提供的信息来计算维修费用和应该更换零件费用,计算出费用后,汽车公司又通知司机通过银行付款,等付款后,维修公司买零件并到汽车地点进行维修。
用传统的电子商务手段非常麻烦,但如果用WEB服务问题就可以调用美国一家公司的精确全球定位WEB服务得到自己精确的地点,然后把故障信息和精确地点通过汽车维修公司的WEB服务传递给维修公司,维修公司WEB服务终端通过WEB服务得到的汽车故障信息,然后通过零配件公司提供的WEB服务得到零件价格,并返回给司机终端,司机通过银行的WEB服务来支付维修费用,维修公司通过银行的WEB服务得到付款通知后派维修人员到故障地点维修。整个过程都是通过WEB服务来进行,只要各方都有支持WEB服务终端,相信不久所有终端都会支持WEB服务的。
3、Web服务协议栈
WEB服务技术体系主要技术规范有:简单对象访问协议SOAP;WEB服务描述语言WSDL;WEB服务统一注册,描述发现和组合UDDI;WEB服务工作流描述语言WSFL。
(1)简单对象访问协议SOAP
SOAP是WEB服务栈MESSAGING层的标准,SOAP为在一个松散,分布的环境中使用XML对等的交换结构化和类型化的信息提供了一个简单而且轻量级的机制。
SOAP设计的主要目标是简明性和可扩展性,一个SOAP消息主要定义在一个SOAP信封中。SOAP消息是用XML来编码,在WEB服务的调用过程中在网络上传输的就是SOAP数据。
(2)Web服务描述语言WSDL
WSDL是使用XML来描述WEB服务,是以一种结构化的方式来对WEB服务调用和通信加以描述,他定义了一套基于XML的语法。
(3)统一注册、描述与集成UDDI
跟网页资源一样,需要使用某一个WEB服务也必须知道该WEB服务在网络上的位置。WEB服务注册中心就担任这个责任,它向外界提供一个注册接口,所有的WEB服务提供商都可以免费将符合标准的WEB服务注册到该注册中心,并且WEB服务注册中心会按照一定的方式来组织注册过的WEB服务。
在WEB服务注册中心注册的WEB服务主要包含:白页、黄页、绿页用户通过这些信息就可以调用WEB服务了,当然这些信息可能并不完善,但是UDDI是一个发展中的协议,它对WEB服务的描述会越来越完善。
soap协议 篇三
关键词:PKI,身份认证,WebServices,安全
0 引 言
随着互联网的不断壮大,越来越多的企业将自身的应用搬上网络,它们为企业争取了更多的客户,把握了更多的商机,获取了更多的利润。然而由于现有的应用系统开发模式及结构存在很大差异,这就使得企业与企业之间,企业内部部门之间的交互和协作变得越来越复杂。随着Web Services[1]技术的发展和广泛应用,其高效集成性、松散松散耦合性和实现简单等特点使得互操作和集成问题从层次上被简化。
Web Services是一套标准协议,它规定了应用程序如何在Web上实现互操作性,你可以使用任何一种编程语言,在任何一种平台上编写 Web Services。现在普遍应用的是通过HTTP请求发送SOAP[2] 消息,然后接收HTTP应答中包含的消息。由于SOAP消息是通过HTTP方式进行,所以其可以穿越大多数的防火墙,进行数据交换。
对于SOAP消息的机密性和完整性,普遍的做法是使用加密和签名,采用非对称秘钥理论,通过加密来保障消息的机密性,通过签名来保障消息的完整性;对于完善的用户身份认证机制,PKI[3]系统提供了有力的保障,它能够为用户颁发公私钥证书,通过公钥来明确用户的身份,用户在发送了签名过的SOAP消息时,己经表明了自己的身份,也无法抵赖,而且PKI系统与非对称秘钥理论完美的结合,通过私钥来对消息进行加密,通过公钥来对消息进行签名。有效地保障Web Services的安全。
1 WebServices的体系结构
Web Services体系结构是面向对象分析与设计的一种合理发展,同时也是电子商务解决方案中,面向体系结构、设计、实现与部署而采用的组件化的合理选择。这两种方式在复杂的大型系统中经受住了考验。和面向对象系统一样,封装、消息传递、动态绑定、服务描述和查询也是Web Services中的基本概念,而且, Web Services另外一个基本概念就是:所有东西都是服务,这些服务一个API供网络中的其他服务使用,并且封装了实现细节。
Web Services的体系结构是基于Web Services服务提供者、Web Services服务请求者、Web Services服务注册的不同操作来建立的。具体的Web Services体系结构模型如图1-1所示。
(1) Web服务提供者:Web服务的拥有者,它为其它服务和用户提供服务功能,服务提供者在实现服务之后可以服务,并且响应对于服务的调用请求;
(2) Web服务请求者:Web服务的使用者,它可以利用服务注册查找服务;
(3) Web服务注册:它的作用是将服务请求者与合适的服务提供者绑定在一起;
这三种不同的角色通过(publish )、查找(find )、绑定( bind )三种操作提供完整的Web Services功能。论文参考。Web Services是由服务描述所表达的接口,其接口的实现即为服务。服务和服务描述是支持Web服务的基本工件。服务在本质上是软件模块,它由服务提供者提供,部署在网络可访问的平台上。[4]
图1-1 Web Services体系结构示意图
2基于PKI的Web Services安全模型设计
2.1 整体框架图
Web Services在异构的分布式的环境下,对客户的身份认证就比较困难,当你去调用一个企业的Web Services时,这个企业Web Services可能又会去调用另一个企业Web Services如何在这种跨域的环境下实现Web Services的身份认证,
PKI公钥基础设施能够使计算机用户在无需事先协商的情况下,互相验证对方的身份[5],这对于Web Services下的身份认证提供了解决方法。我们的Web Services身份认证模型就是基于PKI完成的,如图2-1所示。客户端和服务器端都通过PKI系统来获取对方的公钥证书,通过PKI系统来检验公钥证书的有效性,并通过公钥证书来验证对方的身份。
图2-1基于PKI的Web Services身份认证模型
2.2系统设计
下面我们来具体介绍一下基于PKI的Web Services身份认证模型的运行流程。首先,我们做一些假设:
符号C表示Web Services的客户端;符号S表示Web Services的服务器端;符号M表示明文的SOAP消息;符号Dx(M)表示使用用户x的私钥对SOAP消息进行签名后的结果;符号Ex(M)表示使用用户x的公钥对SOAP消息进行加密后的结果。我们的Web Services身份认证流程是这样的:首先,我们的Web Services身份认证模型捕获客户端的SOAP请求消息M;接着,我们从PKI系统中获取服务器端的公钥Es,并用服务器端的公钥对SOAP消息进行加密,得到加密后的SOAP消息,Es(M);然后,我们使用客户端的私钥Dc,对SOAP消息进行签名,得到签名后的SOAP消息,Dc(Es(M));最后,我们将加密和签名的SOAP消息发送到Internet上。如图2-2所示。
图2-2发送SOAP请求消息
而在服务器端,我们的Web Services身份认证模型接收到客户短发送过来的加密、签名过的SOAP消息。首先,我们去PKI系统获取客户端的公钥Ec,并用客户端的公钥对SOAP消息进行签名验证,确认这个SOAP消息确实是这个客户发送过来的,并得到SOAP消息Ec(Dc(Es(M))) =Es(M);接着,我们使用服务器端的私钥Ds,对SOAP消息进行解密,得到明文SOAP消息Ds(Es(M))=M,最后,我们把这个明文SOAP消息发送给Web Services服务器,由Web Services服务器进行处理。如图2-3所示。同样地,如果需要的话,我们可以对Web Services处理过的SOAP应答消息做同样地安全处理。论文参考。
图2-3接收SOAP请求消息
3 结束语
随着Web Services的广泛使用,其明文传输消息的缺点制约了Web Services在企业级应用中的发展。论文参考。作为企业应用,必须保证的安全性有:消息的机密性,完整性,身份认证和权限控制,企业级的Web Services应用也必须要满足以上四点安全保障。而PKI是目前公认的解决大规模、分布式开放网络环境下信息安全问题最可行、有效的方法, 利用PKI技术可以方便地建立和维护一个可信的网络计算环境,保证Web Services有效、安全地进行。
参考文献:
[1] 胡方霞,曾一,高旻。Web Services 技术应用与探讨[J].计算机科学,2007,43(3):75-77.
[2] Pullen M J, Bruntlon R.Using Web services to integrate heterogeneous simulations in a gridenvironment[J]. Future Generation Computer Systems, 2004(9):98一99.
[3] Stefanos GritzalisPublic key infrastructure research and applications[ J].International Journal of Information Security Archive, 2006,5(1):1-2
[4] Bret Hartman,Donald J.Filnn.杨硕译。全面掌握Web服务安全性。清华大学出版社。2004
[5J Zhang Mu, ZhangShunyi On the optin almulti-rate throughput formulticast withnetwork coding[J]. Journal of Electronics, 2006,23( 4): 584-589
soap协议 篇四
论文关键词:异构数据库,XML,WebService
0前言
随着Internet应用的不断普及,Internet上连接着各种类型的数据库系统,形成了大量的信息资源库。由于种种原因,这些信息资源库采用的是不同数据模型的数据库,导致数据共享比较困难,造成了资源很大的浪费。为了共享分布在不同数据库中的信息资源,Internet的异构分布式信息系统正在迅速发展,最终实现不同数据库之间的数据信息资源、硬件设备资源和人力资源的合并和共享,实现数据的共享和透明访问[1][2][6][7]。
1异构数据库和XML的优势
1.1异构数据库
异构数据库系统是相关的多个数据库系统的集合,可以实现数据的共享和透明访问,每个数据库系统在加入异构数据库系统之前本身就已经存在,拥有自己的DMBS。异构数据库的各个组成部分具有自身的自治性,在实现数据共享的同时,每个数据库系统仍保有自己的应用特性、完整性控制和安全性控制。异构数据库系统的异构性主要体现在以下几个方面:
(1)计算机体系结构的异构,(2)各个参与的数据库可以分别运行在大型机、小型机、工作站、PC或嵌入式系统中,(3)基础操作系统的异构,各个数据库系统的基础操作系统可以是Unix、WindowsNT、 Linux等,(4)DMBS本身的异构。所以异构数据库可以是同为关系型数据库系统的Oracle、 SQL Server等,也可以是不同数据模型的数据库,如关系、模式、层次、网络、面向对象,函数型数据库等共同组成一个异构数据库系统[6][7]。
1.2 XML技术优势
XML是世界互联网协会(World Wide WebConsortium,WSC)于1998年2月颁布。由于XML源自标准通用标记语言SGML,XML作为一种可扩展的标记语言,目前已成为信息描述的事实标准。XML与其他语言相比,具有明显的优势,表现在以下四个方面:①XML可以从HTML中分离数据,通过XML,可以在HTML文件之外存储数据。②XML用于交换数据,通过XML,我们可以在不兼容的系统之间交换数据,将大大减少交换数据时的复杂性,并且还可以使得这些数据能被不同的程序读取。③XML可以用于共享数据,通过XML,纯文本文件可以用来共享数据。XML也可以用于存储数据,利用XML纯文本文件可以用来存储数据。大量的数据可以存储到XML文件中或者数据库中。应用程序可以读写和存储数据。④XML可以充分利用数据,XML是与软件、硬件和应用程序无关的,所以可以使你的数据可以被更多的用户、更多的设备所利用[2][3][4]。
基于XML的优势,下一代的XML数据库目前是研究的前沿,但由于很多标准还在制定中,而且XML读取效率较低,所以目前没有大规模应用。
1.3WebService优势
WebService主要是为了使原来各孤立的站点之间的信息能够相互通信、共享而提出的一种接口。 Web Service所使用的是Internet上统一、开放的标准,如HTTP、XML、SOAP(简单对象访问协议)、WSDL等,所以Web Service可以在任何支持这些标准的环境(Windows、Linux)中使用。SOAP协议(Simple Object Access Protocal简单对象访问协议),它是一个用于分散和分布式环境下网络信息交换的基于XML的通讯协议。在SOAP议下,软件组件或应用程序能够通过标准的HTTP协议进行通讯。它的设计目标就是简单性和扩展性,这有助于大量异构程序和平台之间的互操作性,从而使存在的应用程序能够被广泛的用户访问[3]。所以Web Service一旦部署以后,其他Web Service应用程序可以发现并调用它部署的服务。
2实现过程
2.1原理和开发环境
基于上述XML和WebService的技术优势,可以把不同结构的数据库中的数据,转换成XML结构的数据,通过HTTP协议在网络中传输,接收方可以把收到的XML数据进行转换,转换成其他方式的数据。这样,在异构数据系统中实现了数据的透明访问,用户就可以将异构分布式数据库系统看成普通的分布式数据库系统,用自己熟悉的数据处理语言去访问数据库,如同访问一个数据库系统一样。
软件开发环境,设置了两台服务器,一台安装Linux和Oracle10g,另一台安装Windows2003和SQL 2005,在Oracle和SQL 2005数据库中分别建立一张表DishMenu,两张表具有相同的结构,其中Oracle10g上的有数据,SQL2005上的是空表。另外还设置了一台编程工作站,使用vs 2008为编程工具。
2.2 WebService编程
2.2.1 访问Linux和Oracle平台
打开VS2008,建立一个WebService项目DishOrder,并在文件中配置连接字符串为“Data Source=Linux-Oracle; Initial Catalog=DishDB; IntegratedSecurity=True”,表明Linux主机名为Linux-Oracle,建立的Oracle数据库为DishDB。建立一个WebService服务接口,代码如下:
[WebMethod]
publicDataTable GetDataView(string sql)
{
SqlCommand sqlcomm = new SqlCommand(sql, conn);
conn.Open();//打开数据库连接
SqlDataReader dr = sqlcomm.ExecuteReader();//执行SQL语句
DataTable table = new DataTable();
table.Load(dr);
return table; //返回结果类型为Table
}
程序运行过程中,输入要执行的SQL语句:SELECT* FROM DishMenu where price = 12,作为GetDataView的参数,如图1所示:
相应的SOAP协议表现为:
SOAP 1.2
soap协议 篇五
关键词:Web Service;soap;xml
中图分类号:TP393文献标识码:A文章编号:1009-3044(2007)04-10950-02
1 Web Service及相关技术
1.1 Web Service概述
Web Service作为当前在计算机网络应用领域最热门的技术,已经有了许多成功的应用。但到底是什么是Web Service呢?从表面上看,Web Service就是一个应用程序,他向外界暴露出一个能够通过Web进行调用的API,这就是说,你能够用编程的方法同过Web调用来实现某个功能的应用程序。从深层次看,Web Service是一种新的Web应用程序分支,它们是自包含,自描述,模块化的应用,可以在网络(通常为Web)中被描述,,查找以及通过Web来调用。
Web Service是基于网络的,分布式的模块化组件,它执行特定的任务,遵守具体的技术规范,这么规范使得Web Service能与其他兼容的组件进行互操作,它可以使用标准的互联网协议,像HTTP和XML,将功能体现在互联网和企业内部网上,Web Service平台是一套标准,它定义了应用程序如何在Web上实现互操作性,你可以用你喜欢的任何语言,在你喜欢的任何平台上写Web Service.
1.2 Web Service的技术支持
Web Service平台需要一套协议来实现分布式应用程序的创建。任何平台都有它的数据
表示方法和类型系统。要实现互操作性,Web Service平台必须提供一套标准的类型系统,用于沟通不同平台,编程语言和组件模型中的不同类型系统。目前这些协议有:
(1)XMl
可扩展标记语言XML(extensible Markup Language)是一门新兴的面向Internet应用的
标记语言,它是WWW联合会(W3C)于1998年2月制定的一种通用语言规范。作为一种可用来制定具体应用语言的元语言,XML既具有强大的表述能力,又具有适合网络应用的简洁性;作为对SGML语言标准的一种改良,XML具有适于异构应用间数据共享,可以进行数据检索和提供多种语种支持等优点。
(2)SOAP
Soap(Simple Object Access Protocal)是在分散或分布式环境中交换信息的简单协议,它基于XML协议,soap以xml形式提供了一个简单且轻量的用于在分散或分布环境交换结构化和类型信息的机制,其本身并没有定义任何应用程序语义,如编程模型或特定语义的实现,而是通过提供一个有标准组件的包模型和在模块中编码数据的机制定义了一个简单的表示应用程序语义的机制,使其能够用于从信息传递到RPC的各种系统。
(3)UDDI
统一表述,发现和集成协议,是一套基于Web的,分布式的。为Web Service 提供信息
注册中心的实现标准,同时包含一组使企业能将自身提供的Web service注册使得别的企业能够发现的访问协议。
(4)WSDL
Web Service描述语言,是一套基于XML的语法,用于将Web Service描述为能够进行
消息交换的Services访问点的集合。
Web Service面向服务的架构(SOA)如图
Web Service系统结构是基于Services Provider(服务提供者),Services Requestor(服务请求者),Services Registry(服务注册中心)3个角色和Public(),Find(发现),Bind(绑定)3个动作构建的,服务提供者利用WSDL描述自己的Web Service,并将服务到UDDI;服务请求者利用SOAP消息向服务提供着发送使用服务的请求;服务注册中心的作用是通过在UDDI中查找满足服务请求者要求的服务。
2 Web Service安全机制
2.1 Web Service中存在的安全问题
Web Service的基础是soap(简单对象访问协议),soap协议的2个主要设计目标是简单性和可扩展性,因此,soap协议在制定时并没有过多考虑安全性,而是尽可能地利用现有的标准和协议来实现相应的安全功能,利用现有的SSl和HTTPS协议,就可以很容易的获得连接过程中的安全。然而这种安全实现方法有两个方面的不足,一是它只能保证数据传输的安全,而不是数据本身的安全,数据一旦到达某地,那么就可以被任何人查看。而在Web Service中,一份数据可能到达很多地方,而这份数据却不该被所有的接收者查看。二是它提供的是要么全有要么全无的保护,你不能选择哪部分数据要保护,而这种选择也是在Web Service中所常要用到的。所以单一的传输解决方案或者普通的防火墙是无法确保服务安全的,一个完整的Web Service安全解决方案应该通过利用Web Service模型核心组件的可扩展性,建立一整套的安全规范,这些规范建立在一些基础技术如soap,wsdl,xml数字签名(xml Digital Signature),xml加密(xml Encryption)和SSL/TCL的基础之上。
所以,WebService仍然要解决以下的安全问题:
(1)数据的机密性。如何保证传送信息不被未经许可的第三方看到;
(2)数据的完整性。如何保证收到的信息没有被篡改过;
(3)身份认证。如何鉴别通信双方的身份;
(4)授权和访问控制。如何保证用户的操作没有超越它的权限。
2.2 解决方案
WebService的基础是soap,而soap的基础是xml,W3C在XML-Signature Syntax and Processing 和 XML Encryption Syntax and Processing中分别定义了数字签名,加密等如何在XML中表示。
2.2.1 XMl加密
XML加密不同于其他传统方法,它可以根据不同要求对电子文档的不同部分进行加密,而传统方法只能加密文件的全部内容。XML加密有三种方法:加密整个XMl文件;加密XML文件中的元素;加密XML文件中元素的内容。
XMl加密分为对称加密和非对称加密。所谓对称加密是一种使用相同的密钥来进行加密和解密的加密算法。对称密码包括分组密码和流密码。分组密码加密固定分组长度的明文,分组长度与具体的对称密码以及密钥长度有关。流密码利用密钥推导函数来产生一个密钥流,然后在明文的每一字节和密钥流的每一字节之间进行异或操作来生成密文。
3DES通常被称为3DES EDE,意思是加密、解密、在加密,即执行DES算法三次。3DES算法的密钥空间大小为2168基本可以认为这种密码是安全的。明文分组输入到密码算法中,使用DES算法对明文进行加密,密钥为,92比特3DES密钥的前64比特(开头的8字节)。然后使用,92比特的3DES密钥的中间64比特密钥对密文进行解密。最后,使用,92比特的3DES密钥的最后64比特对分组进行加密,整个加密过程结束。
所谓非对称加密,它使用不同的密钥进行加密和解密操作。这与对称密钥密码形成对比,后者使用相同的密钥进行加密和解密操作。非对称密码中,一个密钥用于加密,但该密钥对于解密是完全无用的。同样,仅仅有一个密钥可用于解密,并且该密钥对于加密也是无用的。最常用的非对称密钥加密算是RSA算法,它是由Rivest,Shamir和Adleman提出的。尽管还有其他一些非对称加密方案,但是RSA算法是当前XML安全标准中规定的唯一一种这样的加密方案。
RSA的工作原理:首先随机生成一个公钥和私钥对,然后使用生成的公钥通过RSA算法加密数据;最后用生成的私钥解密被加密的数据。
2.2.2 XML签名
XML签名的语法和处理规范是由W3C和IETF联合制定的。自2002年2月以来,他一直是正式的W3C推荐规范,并得到了广泛的应用。XML数字签名可以提供完整性,并可用于进行发证人验证,一个数字签名的消息包含验证消息来源和消息内容的信息,因而数字签名能够非常有效地用于SOAP消息认证。
SOAP消息有一个由SOAP标题和SOAP体最后组成的信封。当用于一个RPC调用时,消息中的真实信息就存在于SOAP体内。数字签名特别利用了存在于SOAP标题内的SOAP消息扩展;发送方通过获得密钥对来做准备;被签名的内容储存在SOAP体之内;发送方的私有密钥被用来签名SOAP体;最后,签名被放在SOAP标题中。当处理SOAP消息时,发送方处理SOAP标题并在兑现SOAP请求之前验证签名。
数字签名可以对我们制定的内容提供完整性检查。如果原始内容的某个字节已经被修改,那么签名验证将失败。下面是它的工作原理:
数字签名的工作方式
验证数字签名的过程
3 结论
随着WebService的应用日益广泛,应用程序拓扑发展到支持防火墙,负载平衡和消息传递中心之类的中介并且人们对服务的安全理解更加深刻,对WebService 增加安全性规范的需要就变得更加明显了,本文对目前WebService安全方面存在的问题进行了分析,通过扩展和利用现有的安全性技术和规范提出了安全模型,使用户更加快速地开发安全的,客户操作的WebService.。
参考文献:
[1]马忠贵,叶斌,曾广平,涂序彦。基于SOAP的软件人通信模型研究[J].计算机工程,2006年第9期。
[2]金丽娜,将兴浩,李建华。基于属性证书的Web Services访问控制模型[J].计算机工程,2006年第9期。
[3]陈荦祺,陈克菲。高性能可信的Web Service 研究[J].计算机工程,2006年第10期。
[4]朱一群,张全海,李建华。基于XML安全的电子公文系统研究与设计[J].计算机工程,2006年第9期。
soap协议 篇六
关键词: Android; Web Service; 智能家居; 嵌入式网关; 视频监控
中图分类号:TP311 文献标志码:A 文章编号:1006-8228(2017)03-44-04
Abstract: For the smart home system controlled by PC has disadvantages in price, mobility and operation, a new design and implantation scheme of smart home system based Web Service is proposed. The embedded Web Service server and ONVIF video monitoring server are built by transplanting gSOAP, the client end is realized by using KSOAP2 development kit. Users can control and monitor the remote smart home devices via Android phone and tablet. The system has advantage of simple, low cost, portable and practical, and it is worth to be promoted.
Key words: Android; Web Service; smart home; embedded gateway; video monitor
0 引言
智能家居(smart home)系统通过将家居设备进行组网,将计算机技术和自动化技术进行整合,实现居家环境监测、视频监控、家电控制,以及危险预警系统等诸多服务,提高了人们的生活水平,现在正在慢慢走进人们的生活[1]。目前,大多数的智能家居系统采用PC机进行控制,这种控制系统造价高,不能移动,不方便操作。采用手机或者平板电脑远程连接家庭网络,可以方便快捷的实施监控[2-5]。但是,目前采用这种手机或平板控制的智能家居系统比较少,而且大部分的功能比较单一,界面设计简单,无法提供良好的用户体验。
本文提出了一种采用Web Service技术的智能家居系统实现方案。用户可以通过运行Android系统的智能手机或者平板,连接家庭网关,对家用电器进行远程控制,对居家环境进行远程视频监控。
1 系统硬件平台
智能家居网络总体框架如图1所示。家庭中各个网传感节点和Zigbee协调器组成星型通信网络。各个传感器节点和家居设备以Zigbee方式和协调器通信,协调器通过串口连接网关。本系统的网关采用基于ARM1176JZF-S内核,主频533MHz的高性能嵌入式芯片S3C6410。网关上组建嵌入式Web服务器和视频服务器,提供Web Service服务。运行在手机或平板上的智能家居控制系统客户端通过调用Web Service服务实现以下功能。
⑴ 通过获取温度传感器、湿度传感器、光照度传感器、红外传感器的数据,实现对居室环境数据进行持续的采集。
⑵ 对智能家电、智能窗帘和智能灯具等设备的控制。
⑶ 调用摄像机实现远程视频监控。
2 软件框架
2.1 程序架构
本系统采用目前流行的Web Service技术,实现安卓客户端和网关服务器之间的通信。Web Service是一种跨平台的分布式Web应用程序。Web Service服务由服务器提供,客户端可以在网络上的任何一个位置调用此服务。Web Service三个重要的组成部分是SOAP、WSDL(Web Services Description Language)和UDDI(Universal Description Discovery and Integration) [6]。SOAP是一个基于XML的轻量型分布式计算协议,定义了调用Web Service服务的标准方法;WSDL用于描述访问具体的接口的方式;UDDI用来管理、分发和查询Web Service。
软件框架如图2所示。客户端和服务器之间通过HTTP协议进行SOAP消息的传递。网关服务器运行Linux操作系统,提供基于SOCKET的HTTP协议通信协议。然后再移植开源Web Service工具gSOAP来提供Web Service服务所需要的XML解析器和SOAP处理器。
2.2 服掌鞫顺绦蛏杓
服务器端程序设计步骤:首先生成C/C++头文件;然后使用SOAP编译器编译后生成RPC服务框架和序列化的数据类型代码;最后将这些代码链接到服务应用程序中,就成为可供客户端调用的Web Service。gSOAP编译器同时会生成一个WSDL文档用于描述这些服务。
在本设计中,客户端的请求分为POST和GET两种方法。GET方法用来处理静态网页,进而为描述接口的WSDL文件提供支持。POST方法用来实现SOAP消息的传输,将接收到的HTTP数据包保存在内存缓冲区,然后再进行进一步的处理。网关服务器对SOAP消息的处理过程如图3所示。服务器在接受到客户端的HTTP请求以后,调用相关模块解析SOAP消息,然后根据解析结果提供相应的服务。最后将执行结果封装成SOAP响应信息返回给客户端。
2.3 视频服务器程序设计
采用建立在Web Service的SOAP通信框架基础之上的ONVIF通信标准,进行视频服务器设计。ONVIF通过定义网络视频设备之间信息交换的通用标准,以实现不同厂家的视频产品之间的互通性。ONVIF也是使用WSDL定义服务,使用XML语言描述数据,采用SOAP通信协议传输信息。ONVIF标准包括设备发现和设备管理两大功能模块,前者通过基于IP组播技术实现,后者通过传递SOAP消息进行通信。SOAP通信框架按照以下步骤生成[7]。
⑴ 登录ONVIF网下载WSDL文件,该文件描述了与媒体服务相关的Web服务消息格式、操作、数据类型、协议绑定和服务地址。
⑵ 从网上下载gSOAP 2.8.21工具,解压后得到的wsdl2h和soapcpp2文件。
⑶ 使用wsdl2h工具将WSDL文件转换成C/C++风格的头文件。
⑷ 使用soapcpp2工具将上一步产生的头文件生成服务器端提供SOAP服务的框架(Skeleton)代码。
3 安卓客户端程序设计
3.1 客户端与服务器之间的通信
在Android客户端平台上,调用服务器端的Web Service必须使用开发包KSOAP2,以实现SOAP协议的处理。KSOAP2是一个用于资源受限制的Java环境如Applets或J2ME应用程序的第三方类库。
安卓客户端通过调用服务器端的Web Service服务,通过对远程数据库的查询、控制和管理操作,从而实现对家居设备进行控制和监视。本设计采用的KSOAP2软件工具可以封装用户请求,以SOAP格式来调用Web Service,然后将返回的SOAP格式的数据信息解析为SOAP Objecet对象。KSOAP2调用Web Service步骤如下。
⑴ 下载Ksoap2-Android工具,并导入工程。
⑵ 指定Web Service的命名空间和调用Web Service方法的名称。
⑶ 借助Soap Object对象传递参数。
⑷ 生成调用Web Service方法的SOAP请求信息,并指定SOAP的版本。
⑸ 调用Web Service,根据返回的数据,解析出结果。
3.2 客户端设计
客户端连接服务器的第一步是登录,进行身份验证,其流程如图4所示。首先输入服务器的用户名和密码。如果服务器验证通过,就可以建立客户端与服务器之间的交互通道,在主界面中接收服务器响应数据帧,同时更新所有家居设备的状态信息。用户登录成功后,可以执行如下相应的动作。
⑴ 如果要控制设备或者查询设备状态信息,则通过Get方法发送控制帧或者查询帧。
⑵ 如果要执行视频监控则通过POST方法发送视频控制命令。
⑶ 如果用户需要更改密码,就要输入旧、新两种密码,如果密码匹配,则服务器返回响应码“201”,表示密码更改成功;否则可以向服务器发送控制或者查询请求,服务器收到后,先返回一个响应,然后执行相应的动作。
3.3 视频监控客户端设计
3.3.1 设备发现和管理
设备发现的主要目的就是获取ONVIF设备的服务功能和服务地址,为后面的视频数据接收和播放提供基础。ONVIF协议的设备发现模块可以让客户端发现服务器的RPC的入口,本设计采用WS-Discovery发现协议实现该功能。WS-Discovery [8]协议采用SOAP和UDP组播协议,客户端使用239.255.255.250:3702地址发送组播消息自动搜索ONVIF设备。服务器端的ONVIF设备收到组播消息后进行响应,客户端根据收到响应数据包来获取相应的设备信息,统计搜索到的设备个数。
3.3.2 流媒体数据接收及分片打包
网关服务器摄像头自带视频采集、视频压缩编码功能,输H.264格式编码的标准数据流。客户端通过RTSP会话接收服务器端的流媒体数据,一次完整的会话过程如下。
⑴ 连接服务器,同时发送一个RTSP DESCRIBE命令。服务器返回一个描述媒体类型、流数量等信息SDP。
⑵ 分析收到的SDP,为会话中的流发送一个SETUP命令建立RTSP。客户端通过此命令将自己的端口号告诉服务器。
⑶ 流媒体连接过程建立成功以后,客户端发送PLAY命令和TERADOWN来开始和结束视频的播放,还可以发送快进、快进和暂停命令。在播放过程中,服务器使用UDP发送流媒体RTP包给客户端。
本系统需要多个ONVIF IPC设备通信,为了提高数据传输速率和数据处理的效率,课题组采用Select网络模型完成标准的RTSP会话过程。
3.3.3 流媒体解码及显示
为了能显示视频,客户端需要首先移植FFMPGE。使用FFMPGE对接收到的RTSP流媒体文件进行解码,再将解码后的信息转换成为YUNV420P格式,然后再转换为RGB24格式。最后再转换成可在安卓设备上播放的ARGB_8888格式。转换完毕之后,就可以将每一帧显示在屏幕上。
4 结论
本文结合嵌入式系统和安卓平台优势, 采用目前流行的Web Service技术,设计和实现了智能家居系统的服务器端和安卓客户端程序。服务器端通过移植gSOAP和ONVIF协议来组建嵌入式Web服务器,提供Web Service服务。安卓客户端程序给予KSOAP2开发包进行设计,实现了服务器端的Web Service服务的调用。系统主要采用JAVA语言进行开发,具有结构简单,开发难度低的优点。系统操作简单、成本低、使用方便,可以实现家居设备的远程控制和居家环境的远程视频监视,给人们生活带来极大的便利,具有较高的使用价值和推广价值。
参考文献(References):
[1] Lin H T. Implementing smart homes with open sourcesolutions[J]. International Journal of Smart Home,2013.7.
[2] 周恩,李文军,郑永军等。Android平台的智能家居控制系统设计[J].中国计量学院学报,2013.24(3):261-265
[3] Z阳静,邹念育,雷冬鸣等。基于Android和WIFI通信的智能家居系统设计[J].大连工业大学学报,2016.1:67-71
[4] 黄成云,卢选民,李戈。基于Android的智能家居控制软件设计与实现[J].计算机与现代化,2014.11:102-105
[5] Kumar S. Ubiquitous Smart Home System Using AndroidApplication[J]. Computer Science,2014.6(1).
[6] 龚瑞琴,毕利。基于Web Service的Android技术应用研究[J].电子技术应用,2014.40(1):134-136
soap协议 篇七
关键词:WSDL;XML;SOAP;Web Service;HTTP
中图分类号:TP393文献标识码:A文章编号:1009-3044(2007)17-31257-02
Study Of Web Service Technology
SHENG Hong-yan
(Institute of Physics & Electronic Engineering,Ludong University,Yantai 264025,China)
Abstract:This paper discusses relative technologies and standards of Web Service, and enters into the system framework, applied fields and further development of Web Service.
Key words:WSDL;XML;SOAP;Web Service;HTTP
1 引言
Web Service 使用标准技术,通过它,应用程序资源在各网络上均可用。因为 Web Service 基于标准接口,所以各应用程序即使是以不同的语言编写并且在不同的操作系统上运行,它们也可以进行通信[1]。因此,Web Service 是生成适用于网络上不同系统的分布式应用程序的极好方法。
2 标准技术
Web Service 使用的标准技术包括:公开描述其自身功能的WSDL 文件;与其他应用程序进行通信的XML消息(通常使用 SOAP 格式);标准网络协议HTTP。
2.1WSDL 文件
Web Service 描述语言 (Web Service Description Language,简称 WSDL) 使用标准 XML 格式描述 Web Service的接口信息。通过描述,客户端可以了解Web Service 的功能,而无需知道 Web Service 的实现细节。如果某个 Web Service 将英语句子翻译成中文,则其 WSDL 文件将说明应该如何将英语句子发送到此 Web Service,以及中文译文将以那种数据类型以及如何返回到请求的客户端。
WSDL 文件包含了客户端调用 Web Service方法所必需的所有信息:
(1)方法参数和返回值的数据类型
(2)单个的方法名和签名(WSDL 将方法称为“操作”)
(3)每个方法可以使用的协议和消息格式
(4)用来访问 Web Service 的 URL
另外,通过公共和专用的 UDDI(Universal Description, Discovery and Integration通用描述,发现和集成)注册表可以找到 WSDL 文件[2]。
2.2 XML和SOAP
2.2.1 XML概述
可扩展标记语言(Extensible Markup Language,简称 XML)提供了一种公共语言,通过它,不同的应用程序可以在网络上彼此进行交互。大多数 Web Service 通过 XML 进行通信。客户端将包含请求的 XML 消息发送到 Web Service提供商那里,然后 Web Service提供商使用包含操作结果的 XML 消息进行响应。大多数情况下,这些 XML 消息将根据 SOAP 语法设置格式。
2.2.2 SOAP概述
Simple Object Access Protocol (SOAP) 指定了一种标准格式,使应用程序可以调用彼此的方法,在彼此之间传递数据。请注意,Web Service 可以使用非 SOAP 格式的 XML 消息进行通信。特定的 Web Service 支持的消息类型在其 WSDL 文件中进行描述。
2.3网络协议
Web Service 利用广泛使用的协议,如超文本传输协议(HyperText Transfer Protocol,简称 HTTP)和 Java 消息服务(Java Message Service,简称 JMS),接收请求并发送响应。Web Service 可以支持多个协议,它的不同方法可以支持不同的协议[3]。Web Service 支持的协议在 WSDL 文件中进行。
3 Web Service 体系结构
图1显示了 Web Service、其客户端软件应用程序及其使用的资源(包括数据库、其他 Web Service 等)之间的关系。Web Service 通过使用标准协议(如 HTTP)交换 XML 消息来与客户端和各种资源进行通信。
图1 Web Service体系结构
4 Web Service的应用
4.1在电子商务中的应用
Web Service已经得到了广泛的认同,可视为是电子商务发展的下一个阶段。它把一切都看作服务,这种服务可以在网络上动态地被发现和组织。利用Web Service的动态特性,企业可以通过自己的 Web Service来动态地出售它们的服务或者调整其应用和业务流程,在市场上抢得先机。
动态电子商务是一种新的企业对企业(B2B)的交易模式。而推动动态电子商务发展的关键是Web Service。目前一些大的平台提供商已经实现了全方位支持动态电子商务所需要的开放标准,从而使企业可以创建、、安全地部署、拥有和管理Web Service。
4.2其他方面的应用
除了Web Service的直接使用以外,在对等 (P2P) 计算领域中,它还有许多精彩的应用。例如,一个 eBay 的 P2P 版本。消费者将一个简单的拍卖 Web Service安装到他们的家庭计算机或智能电话上,一旦告诉了拍卖服务您的买卖意向后,它就与世界范围内的其它拍卖服务联系,帮您找到适当的买家和卖家。交易在消费者的设备之间直接发生,不需要任何服务器。
一个更大胆的想法是 P2P电话蜂窝网络,它使用其它中间消费者的电话,而不是基站,进行通信。当您拨打电话时,通话沿着相邻的蜂窝电话进行路由,到达它的最终目的地。使用这种体系结构,从理论上说,将1万个蜂窝电话投放到某一区域中,就可以立即在不使用基站或其它传统电话网络基础设施的情况下拨打电话!
5 Web Service的未来发展
5.1完善标准
Web Service所依托的关键技术XML,提供了用于定义Web文档标记(即描述文档不同部分的要素)和标记之间关系的专用词汇。数据交换各方的开发人员可以在使用通用标记集合上达成一致。因此,XML具有无与伦比的灵活性和通用性。但它还不是一种很好标准化的技术,由于每次XML传送包括大量的说明信息,文件长度会迅速膨胀。目前像W3C等业内企业正致力于对XML数据发展标准的定义。
5.2安全和可靠性
Web Service安全方面的标准仍然还在完善的过程中。它缺乏事务完整性、安全、数据队列、多数据格式支持等基础部件,不能支持Web的可扩展性以及处理混和的XML语句等[4]。这些问题都急需解决。
6 结束语
Web Service是一种非常有效的工具,它使我们能够通过互联网为我们的合作伙伴和客户提供非专有的、开放的服务和数据访问。它在现有企业网络站点和Internet基础上,通过对原有网络通信协议(HTTP/SMTP)及XML的封装,提供集成的分布式网络模式,为新型的电子商务发展提供了依托。 Web Service的应用无论对Internet还是对电子商务都将带来革命性的变化。
参考文献:
[1]Ethan Cerami(美).Web Services Essentials.O'Reilly,2003,5.
熟读唐诗三百首,不会做诗也会吟。以上就是宣传员给大家分享的7篇soap协议,希望能够让您对于soap的写作更加的得心应手。