Web Service目前可是目前计算机界一个非常流行的技术了,以至于有些人把Web Service列入目前最热门的十大技术之一。的确随着互联网的广泛应用和发展,尤其是电子商务的发展,出于互联网上各种复杂的应用系统和对更高安全性的要求,Web Service的横空出世的确满足了当前这些的要求和需要,其中的原因在下文中有详细的介绍。本文的主要内容是简要介绍一下Web Service的相关知识,以及使用Visual Basic .Net实现Web Services的具体方法和典型步骤。

  一.Web Service为何物,我们为什么需要它:

  Web Service的主要功能就是可以实现实现跨平台的功能调用。同时由于Web Service中使用XML来进行数据交换,所以在使用Web Service时不用担心防火墙的影响。由于Web Service集成了各种功能,并提供了一个友好的界面。所以在Web Service能够实现软件的重用。
另外Web Service的调用非常简单,简而言之调用互联网上的Web Service 就如同调用本地的组件一样简单,就是通过HTTP协议来调用互联网上的组件。至于具体的调用方法,请参阅本文第五节第七段的内容。所以Web Service就是互联网上的组件调用。

  二.和Web Service相关的标准、协议:

  Web Service是通过一系列标准和协议来保证和程序之间的动态连接和实现其安全调用的。其中主要的标准和协议是:XML、WSDL、SOAP、HTTP、UDDI。下面就简要介绍这些标准和协议。

  1. XML:Web Service之间和Web Service和应用程序之间都是采用XML进行数据交换的。Web Service由于基于了XML,,这样Web Service在具备XML带来的优势的同时,也拥有了由于XML所带来的缺点。其中XML所带来的最重要缺点就是Web Service将大量的占有CPU的资源,因为XML数据要经过多步处理才能被系统使用。所以,即使调用一个功能较小的Web Service,也会感觉速度很慢,所以网络中对运行Web Service的主机要求是很高的。

  2. HTTP:应用程序是提供HTTP协议来调用Web Service的。所以HTTP在Web Service调用过程中,起着通道的作用。

  3. WSDL::是Web Service描述语言的简写。它是XML格式,其作用是描述Web Service,指示应用程序和与Web Servie交互的方法。当实现了某种Web Service服务时,为了让别的程序调用,就必须告诉此Web Service的接口。如:服务名称,服务所在的机器名称,监听端口号,传递参数的类型等等。WSDL就是规定了有关Web Services描述的标准。

  4. UDDI:是Universal Description, Discovery, and Integration的缩写。简单说,UDDI用于集中存放和查找WSDL描述文件,起着目录服务器的作用。

  5. SOAP:是"Simple Object Access Protocol"的缩写,即:简单对象访问协议。SOAP是一种消息传递的协议,它规定了Web Services之间传递信息的方式。

  三.本文章的程序设计、调试和运行的环境:

  (1).微软公司2008

  (2).Visual Studio .Net 2003企业构建版,.Net FrameWork SDK 1.1版本号4322。

  (3).IIS服务启动。

  四.Visual Basic .Net实现Web Service:

  .Net 的大的推动了Web Service的发展,而Visual Studio .Net的出现又极大的推动了Web Service的的广泛应用。在Visual Studio .Net推出之前,编写一个Web Service是一项非常复杂的工作,同样调用这个Web Service也十分麻烦。由于Visual Studio .Net对Web Service提供了较强的支持,很多细致、烦杂的工作都由Visual Studio .Net自动完成了。这样就使得上述工作变得非常简单。甚至不了解Web Service和其相关的标准、协议,也可以使用Visual Studio .Net编写Web Service,并使用这个Web Service。下面就来用Visual Basic .Net实现一个Web Service,此Web Service和数据库相关,数据库类型选用的是Sql Server。此Web Service提供了二个函数功能调用,其一名称为Binding,用以实现数据绑定,其二名称为Update,用以更新数据库中的数据。

  以下就是Visual Basic .Net实现此Web Service的具体步骤:

  1. 启动Visual Studio .Net。

  2. 选择菜单【文件】|【新建】|【项目】后,弹出【新建项目】对话框。

  3. 将【项目类型】设置为【Visual Basic项目】。

  4. 将【模板】设置为【ASP.NET Web 服务】。

  5. 在【位置】的文本框中输入"http://localhost/UpdateDataWebService"后,单击【确定】按钮,这样在Visual Studio .Net就会计算机Internet信息服务的默认目录中创建一个名称为"UpdateDataWebService"文件夹,里面存放的是此项目的文件。具体如图01所示:

6. 选中【解决方案资源管理器】中的"Service1.asmx"文件,单击鼠标右键,在弹出的菜单中选择【查看代码】,则进入Service1.asmx.vb的编辑界面。

  7. 在Service1.asmx..vb的首部,在导入命名空间的代码区中添加下列代码,下列代码作用是导入命名空间System.Data.SqlClient:

Imports System.Data.SqlClient

  8. 在Service1.asmx..vb文件的"Public Class Service1 Inherits System.Web.Services.WebService"代码后,添加下列代码,下列代码是在Web Service中定义二个功能调用:

<WebMethod ( ) > Public Function Binding ( ) As DataSet
 
Dim con As New SqlConnection ( "Server = LENOVO-1D428ED4\SQL2005; user id= sa ; password=111111 ; database = northwind" )
 
Dim daCust As New SqlDataAdapter ( "Select * From Cust" , con )
 
Dim ds As New DataSet ( )
 daCust.Fill( ds , 
"Cust" )
 
Return ds
End Function

<WebMethod ( ) > Public Function Update ( ByVal ds As DataSet ) As DataSet
 
Dim con As New SqlConnection ( "Server = LENOVO-1D428ED4\SQL2005 ;user id= sa ; password=111111 ; database = northwind " )
 
Dim daCust As New SqlDataAdapter ( "Select * From Cust" , con )
 
Dim cbCust As New SqlCommandBuilder ( daCust )
 daCust.Update ( ds , 
"Cust" )
 
Return ds
End Function
 

9. 保存上述的修改,一个简单的操作Sql Server数据库的Web Service就完成了,此时单击快捷键F5,此Web Service就开始运行,并可以对外提供服务了。具体如图02所示:


下面就来介绍Visual Basic .Net中使用这个Web Service提供的服务来更新数据库的实现方法。
五.在Visual Basic .Net调用Web Service提供的服务:

  当Web Service已经处于对外提供服务状态,Visual Basic .Net就可以通过HTTP"调用"来使用这些服务了。当然前提是要了解Web Service对外提供服务所对应的URL,当了解到Web Service对应的URL后,Visual Basic .Net就像是使用本地的类库一样使用Web Service中提供的各种功能。所以有些人说,Web Service从实质上说,就是通过HTTP调用远程组件的一种方式。在Visual Basic .Net具体实现加入Web Service可参阅下面步骤中的第七步。

  在下面介绍的这个数据库应用程序是通过使用上面的Web Service中提供的"Binding"服务,对程序中DataGrid组件实现数据绑定,提供使用Web Service中提供的"Update"服务,通过程序中的DataGrid来修改数据库。下面就是Visual Basic .Net中使用Web Service提供服务来编写数据库应用程序的具体步骤,:

  1. 启动Visual Studio .Net。
 
  2. 选择菜单【文件】|【新建】|【项目】后,弹出【新建项目】对话框。

  3. 将【项目类型】设置为【Visual Basic项目】。

  4. 将【模板】设置为【Windows应用程序】。

  5. 在【名称】文本框中输入【TestWebService】。

  6. 在【位置】的文本框中输入【E:\VS.NET项目】,然后单击【确定】按钮,这样在"E:\VS.NET项目"中就产生了名称为"TestWebService"文件夹,里面存放的就是TestWebService项目的所有文件。

  7. 选择【解决方案资源管理器】|【引用】后,单击鼠标右键,在弹出的菜单中选择【添加Web 引用】,在弹出的【添加Web引用】对话框中的【地址】文本框中输入"http://localhost/ UpdateDataWebService /Service1.asmx "后,单击回车键后,可得图03所示界面。单击图03中【添加引用】按钮,则在【TestWebService】项目中加入了Web引用。请注意"http://localhost/ UpdateDataWebService /Service1.asmx "就是上面完成的Web Service对外提供服务的URL地址,具体可参阅图02所示:


8. 从【工具箱】中的【Windows窗体组件】选项卡中往Form1窗体中拖入下列组件,并执行相应的操作:

  一个DataGrid组件。

  二个Button组件,,分别是Button1至Button2,并在这二个Button组件拖入Form1的设计窗体后,分别双击它们,则系统会在Form1.vb文件分别产生这二个组件的Click事件对应的处理代码。

  9. 按照表01所示调整窗体中各组件属性的数值:

组件类型 组件名称 属性 设置结果
Form  Form1 Text  测试Web Service
Form1 MaximizeBox False
Form1 FormBorderStyle  FixedSingle
Button  Button1  Text  绑定
Button1 FlatStyle Flat
Button2 Text  修改
Button2 FlatStyle Flat

在调整完组件属性值后,再按照图04所示调整组件的位置和排列顺序:


10. 把Visual Studio .Net的当前窗口切换到Form1.vb的代码编辑窗口,并用下列代码替换Form1.vb中的Button1的Click事件对应的处理代码,下列代码功能是使用Web Service中提供的"Binding"服务对DataGrid组件实现数据绑定:

 

Private Sub Button1_Click ( ByVal sender As System.Object , ByVal e As System.EventArgs ) Handles Button1.Click
 
Dim MyService As New localhost.Service1 ( )
 DataGrid1.DataSource 
= MyService.Binding ( )
 DataGrid1.DataMember 
= "Cust"
End Sub


11. 用下列代码替换Form1.vb中的Button2的Click事件对应的处理代码,下列代码功能是使用Web Service中提供的"Update"服务实现通过DataGrid来修改数据库数据:

 

Private Sub Button2_Click ( ByVal sender As System.Object , ByVal e As System.EventArgs ) Handles Button2.Click
 
Dim MyService As New localhost.Service1 ( )
 
Dim ds As DataSet = DataGrid1.DataSource
 
Dim dsChanges As DataSet = ds.GetChanges ( )
 
If Not ( dsChanges Is Nothing ) Then
  ds.Merge ( MyService.Update ( dsChanges ) , 
True )
 
End If
End Sub

12. 至此, 【TestWebService】项目的全部工作就完成了,调用Web Service是不是很简单。此时单击快捷键F5运行程序后。单击程序中的【绑定】按钮就会对程序中的DataGrid组件实现数据绑定,单击程序中的【修改】按钮,则程序会根据DataGrid中的内容来更新数据库,图05就是【TestWebService】的运行界面:


五.总结:

  本文介绍了Web Service在目前大行其道的原因,并结合二个示例介绍Visual Basic .Net在Web Service的实现和调用上的强大功能,正如本文前面所说,Visual Studio .Net的出现使得web Service的这项原先繁杂的工作变得异常的简单,因为Visual Basic .Net已经替代我们作了这些描述性的、基础的底层工作,以至于你不需要了解为什么,只需要知道你要实现什么就可以编写、调用Web Service了。 在实现Web Service在数据库方面应用所显示

  Web Service虽然以其强大功能和其优越性正在受到越来越多人的青睐,但也不可以回避它的缺点,譬如其速度慢就使得我几乎无法忍受。等等这样的原因也决定了Web Service并不适用于所有的环境。如单机运行程序和局域网上的同构应用程序等就尽量不采用Web Service方式。本文只是展示了Visual Studio .Net在Web Service上的初步用途,至于更复杂的使用、调用方法只能在后续的文章中介绍了,感兴趣的朋友,我们下一文再见!

该文章转载自德仔工作室:http://www.dezai.cn/Article_Show.asp?ArticleID=18743&ArticlePage=2


数据库情况: