Web Service入门
上一篇 / 下一篇 2007-09-30 17:49:29 / 个人分类:study
一、什么是Web Service?
d_u9T6q3FH7].|051Testing软件测试网5l|8Q$BF+h1N`.H~3`
Web Service是构建互联网分布式系统的基本部件。Web Services 正成为企业应用集成(Enterprise Application Integration)的有效平台。你可以使用互联网中提供的Web Service构建应用程序,而不必考虑这些Web Service是怎样运行的。51Testing软件测试网/y
t#jH
sA_
'XG+O!g
S'sB7e,[3{:B0二、Web Service 三个基本技术 51Testing软件测试网{Sm HO%qo.ca
51Testing软件测试网(S6X%w(rU(S k}n
Web Service通过标准通信协议,在互联网上发布有用的程序模块(以服务的方式),目前大部分是用SOAP来作通信协议。51Testing软件测试网~x1T_F8hZ
Web Service提供一份详细的接口说明书,来帮助用户构建应用程序,这个接口说明书叫作WSDL(Web Service Descrīption Language)。51Testing软件测试网 IxMf,P3{;w
通常已发布的Web Service要注册到管理服务器,这样便于使用者查询和使用。这个是通过UDDI(Universal Discovery Descrīption and Integration)来完成的。
`8b4_(^kS0三、为什么要用Web Service?
a-?\8S``0 Web Servcie最主要的优点是,使用不同程序和在不同系统平台上开发出来的程序,都可以相互通信。现在很多人在问:“不是CORBA和DCE也有那些优点吗?跟它们有什么不同呢?”。第一个不同点是,SOAP作为Web Service的基本通信协议,比它们简单地多,所以投入和使用的代价也是小的。现在不仅有很多大公司发布的Web Service,也有个人发布的。另一个不同点是,Web Service使用标准的互联网协议-XML、HTTP和TCP/IP。很多公司已经从实践当中对这些协议积累了丰富的经验,所以相比CORBA和DCE要交的学费要少地多。
(f4G5Lps4LQ0
3O?j*bi-T(yD
q0 如果把现有的应用程序以Web Service部件形式发布,可以帮助其他的公司(人)构件功能强大的应用程序。举个例子,你要开发一个采购系统,可以自动地获得供应商的报价,而且可以实时追踪送货过程。如果供应商已经发布了报价和送货这两个Web Service,那么你就可以直接使用它们,而不必自己开发这些功能了。51Testing软件测试网B
e%@lYsJ&X
W)g.GYrBfHP0 在未来,会出现更有趣的Web Service(现在做不到的),来帮助我们构建应用程序。
"gC7c/U
Y;{l[s051Testing软件测试网)N0AEralm
K
o6i
四、SOAP
T(G6X-z-lT,d5PC:L)]051Testing软件测试网:E-}zm:a3T*Un-l}5@
SOAP是Web Service的基本通信协议。因为SOAP与DCOM和CORBA在概念上有相同之处,所以很多人在问:“SOAP是怎样激活对象的?”或“SOAP在使用什么命名服务(Naming Service)?”。或许在执行SOAP的过程当中会用到这些,但这些并不在SOAP规范要考虑的范畴之内。SOAP只是定义SOAP消息的XML格式(XML Format),如果你用一对SOAP标记(SOAP Elements)把XML文档括起来,那么这个就是一个SOAP消息,这不是很简单吗? 51Testing软件测试网`6[b`1G:{9?/~
$S2k!kegV_0 SOAP规范还定义了怎样用XML来描述程序数据(Program Data),怎样执行RPC(Remote Procedure Call)。这些可选的规范是为了构建RPC-style的应用程序(客户端SOAP消息包含函数名和在函数中用到的参数,而服务器端SOAP消息包含执行函数之后的结果)。大多数SOAP解决方案都支持RPC-style应用程序,因为很多程序员已对DCOM或CORBA熟悉。SOAP还支持Document-style应用程序(SOAP消息只包含XML文本信息)。Document-style应用程序有很好的灵活性,所以很多用RPC很难构建的Web Service用这种方式构建。
!@,wS*M~Yf,_0
8s)B'F~
~ A$S0 最后SOAP规范还定义了HTTP消息是怎样传输SOAP消息的。这并不代表SOAP只能用HTTP来作为传输协议,MSMQ、SMTP、TCP/IP都可以做SOAP的传输协议。