昨天用了web service, 虽然用了 但是还是不太了解其原理和机制(比较模糊)而且知识学的太杂,混乱了,所以找些非常基础的资料,翻译下,翻着翻着,自己也就明白了。翻译过程中才发现,原来这些我都看过。。。不过从新刷新下这些基础知识很有用。相信大家都有知识混乱冲突的时候,好多东西看半天才发现只不过换了个名字而已。。。
于是乎在网上找了个web service 的介绍,不能复制,虽然可以看源码,但还不够麻烦的。不如翻译了,翻译下自己也理解深刻点。以后希望能保持下这个作风。多翻译些资料,也攒些资本和添加自己的一项爱好。
原网址是http://www.w3schools.com/webservices/ws_intro.asp 十分愤怒国内无法看wiki,但没办法,事以至此,只能凑活了
第一章 Web services 简介(以后用WS)
WS可以让你的应用程序变成网络应用程序
WS通过互联网公布,建立和被使用。
必备前提
你应该稍微懂点HTML和XML的知识
不懂就去找找资料 :)
WS是什么
1. 应用程序组件
2. 通过开放的协议联络
3. 自我封装,自我描述
4. 通过UDDI开发(UDDI估计是我下一个文章)
5. 可被其他应用程序使用
6. WS的基础是XML.(XML也被我算计了)
WS如何工作
基本的WS平台是 XML+HTTP
HTTP 协议是最普遍广泛的
XML语言具有跨平台的特点,而且是一种编程语言, 另外通过XML复杂的信息和功能可被传输。
WS的组成成分。
SOAP(Simple Object Access Protocol 简单的对象连接协议)
UDDI(universal Description, Discovery and Integration 通用描述,开发和连接)
WSDL (web services description language 网络服务描述语言)
我们以后慢慢讲这些。
WS的未来
别期待太多,太快。
WS平台是个简单的,通用的,信息构建框架。 其缺点是缺乏一些重要特征比如安全性和路游性。不过, 随着SOAP的发展这些都会完备。
希望WS能使应用程序更加便利的沟通。
第二章 为啥用WS (从这章起我要扯点淡,这样大家都开心)
N年前WS的速度是一个非常致命弱点 然而今天俺们都用宽带咧,速度不再是问题。
通用性是个非常重要的特性 所以挂通用的都是大企业 通用汽车 通用电气
不同的操作平台都能上网,psp都能上网。不同的平台需要互动,为了让这些平台互动,网络服务应人民需要而生。网络服务是在网络上运行的应用程序,可在各种平台的各种浏览器使用。
网络服务将网络应用程序升级
使用网络服务你的应用程序可以发布其功能或者信息去往世界的尽头
网络服务用XML把你的数据打包然后用SOAP通过起开放协议将其传输
通过网络服务你的会计部门win2000上的账单系统可以连到你IT支持商的UNIX服务器上
WS有两种功能
可重复使用的网络应用程序组件
好多应用程序会被频繁使用 何必重复去制作
网络服务可以提供一些类似货币转换天气预报以及语言翻译之类的服务程序组件‘
理想状态下,一种应用程序类型可被多人随意使用,但不被重复被创建(这部分很有道理)
连接当前软件
不同的平台可通过网络服务通讯
使用网络服务你可以用不同的软件进行通讯(有道理阿)
第三章 网络服务平台成分
网络服务有3种不同的平台成分 分别是 SOAP,WSDL和UDDI
SOAP:
基本的XML+HTTP的形式
SOAP是-
1. Simple Object Access Protocol
2. 通讯协议
3. 不同应用程序间的通讯协议
4. 信息发送格式
5. 设计为通过网络连信
6. 独立于平台的
7. 独立于语言的
8. 建立在XML基础上的
9. 简单且可扩展
10. 允许你越过防火墙
11. 在W 3C 标准下开发的
WSDL
WSDL是一种XML标准之上的语言用来描述WS以及如何连接他们
WSDL是-
1. Web Services Description Language
2. 用XML写的
3. XML文档
4. 用来描述WS
5. 用来定位WS
6. 暂不属于W 3C 标准
UDDI
UDDI是一种文件夹服务用来服务商务客户去注册和搜索WS
UDDI Universal Description, Discovery and Integration
UDDI是-
1. 文件夹用来存放WS的信息
2. 存放用来描述WS接口的WSDL
3. 通过SOAPtongxin
4. 属于MS.NET平台的内置部分
第四章 WS的实例
所有的应用程序都可以拥有一个WS组件
WS的创建独立于编程语言
一个ASP.NET网络服务的实例
<%@ WebService Language="VBScript" Class="TempConvert" %>
Imports System
Imports System.Web.Services
Public Class TempConvert :Inherits WebService
<WebMethod()> Public Function FahrenheitToCelsius
(ByVal Fahrenheit As String) As String
dim fahr
fahr=trim(replace(Fahrenheit,",","."))
if fahr="" or IsNumeric(fahr)=false then return "Error"
return ((((fahr) - 32) / 9) * 5)
end function
<WebMethod()> Public Function CelsiusToFahrenheit
(ByVal Celsius As String) As String
dim cel
cel=trim(replace(Celsius,",","."))
if cel="" or IsNumeric(cel)=false then return "Error"
return ((((cel) * 9) / 5) + 32)
end function
end class
此文件是个.asmx文件,这个是个ASP.net的扩展XML文件
运行这个实例你需要一个.NET服务期
<%@ WebService Language="VBScript" Class="TempConvert" %>
这句话是表明这个是个WS,用VBScript写的, 类名叫作TempConvert
Imports System
Imports System.Web.Services
这两句从.net框架 导入 namespace
Public Class TempConvert :Inherits WebService
这句注明TempConvert是个Webservice的类
后边就是基本的VB编程。 这个应用程序有俩功能。 1个是把温度格式从Fahrenheit华氏度到Celsisus摄氏度 ,另一个是相反的转换。
这个和其他服务的区别是其被定义为WebMethod.
使用WebMethod来标注你需要在WS中使用的方法
<WebMethod()> Public Function FahrenheitToCelsius
(ByVal Fahrenheit As String) As String
dim fahr
fahr=trim(replace(Fahrenheit,",","."))
if fahr="" or IsNumeric(fahr)=false then return "Error"
return ((((fahr) - 32) / 9) * 5)
end function
<WebMethod()> Public Function CelsiusToFahrenheit
(ByVal Celsius As String) As String
dim cel
cel=trim(replace(Celsius,",","."))
if cel="" or IsNumeric(cel)=false then return "Error"
return ((((cel) * 9) / 5) + 32)
end function
最后是把这个类结束
end class
如果你把这个文件存为.asmx文件并把它发布到一个.net服务期上, 你就得到你第一个WS.
ASP.NET把过程自动化
用ASP.NET你不用自己写WSDL和SOAP
因为你会发现ASP.NET自动建立了WSDL和SOAP的请求.
第五章 WS应用
使用你的ASP.NET例子
摄氏变化氏 FahrenheitToCelsius.
这些功能会给你一个XML的反馈
这个测试使用的是HTTP的发送模式然后回发回一个XML的反馈如下
<?xml version="1.0" encoding="utf-8" ?>
<string xmlns="http://tempuri.org/">38</string>
你也可以把这些WS放入你的网页(DreamWeaver有最简单的实现方法,直接拖进就行了)
下边是把WS加入网页的代码
<form target="_blank" action='http://www.example.com
/webservices/tempconvert.asmx/FahrenheitToCelsius'
method="POST">
<table>
<tr>
<td>Fahrenheit to Celsius:</td>
<td><input class="frmInput" type="text"
size="30" name="Fahrenheit"></td>
</tr>
<tr>
<td></td>
<td align="right"> <input type="submit"
value="Submit" class="button"></td>
</tr>
</table>
</form>
<form target="_blank" action='http://www.example.com
/webservices/tempconvert.asmx/CelsiusToFahrenheit'
method="POST">
<table>
<tr>
<td>Celsius to Fahrenheit:</td>
<td><input class="frmInput" type="text"
size="30" name="Celsius"></td>
</tr>
<tr>
<td></td>
<td align="right"> <input type="submit"
value="Submit" class="button"></td>
</tr>
</table>
</form>
总结
WS就是这些了,这个教程教你如何转换你的应用程序到网络应用程序。 你也学了如何用XML去在应用程序间通信。你也学了如何发布一个应用程序。
下一步 咱们该学WSDL和SOAP咧
告一段落