1 / 23

ASP 企业级应用开发

ASP.net 企业级应用开发. 信息工程系:罗明刚. 第十四章 使用 Web 服务. 回顾 2-1. Web 服务是一种自包含、自解释、模块化的应用程序,它能够在 Web 上发布、定位和调用 Web 服务结构主要由以下层组成: 数据存储 数据访问 Web 服务逻辑 Web 服务外观 侦听器层 [WebMethod] 标签通知 ASP.NET 编译器, 接下来的方法是一个 Web 方法,它将导出到 Web. 回顾 2-2. 服务提供者与服务注册器、服务代理和服务请求者一起组成了 Web 服务中的重要参与者

kris
Download Presentation

ASP 企业级应用开发

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ASP.net 企业级应用开发 信息工程系:罗明刚

  2. 第十四章 使用 Web 服务

  3. 回顾 2-1 • Web 服务是一种自包含、自解释、模块化的应用程序,它能够在 Web 上发布、定位和调用 • Web 服务结构主要由以下层组成: • 数据存储 • 数据访问 • Web 服务逻辑 • Web 服务外观 • 侦听器层 • [WebMethod] 标签通知 ASP.NET 编译器,接下来的方法是一个Web 方法,它将导出到 Web

  4. 回顾 2-2 • 服务提供者与服务注册器、服务代理和服务请求者一起组成了 Web 服务中的重要参与者 • Web 服务的优点如下: • 交叉业务集成 • 提高效率 • 拉近客户关系 • 便于及时集成 • 创建 Web 服务项目时,VS.NET 会生成以下文件 • AssemblyInfo.cs • <WebService> .asmx 和 <WebService> .cs • Global.asax 和 Global.asax.cs • <WebService> .disco • Web.config

  5. 目标 • 理解部署WebService • 了解注册和发布 • 掌握在ASP.NET和WinForm中使用WebService

  6. 部署WebService

  7. Web 服务用户 采用Disco 采用WSDL 代理 使用Web服务过程 UDDI (1) (2) Web 服务 Disco Disco Disco WSDL

  8. 注册和使用 Web 服务 • 要解决这些问题,此规范分为三个类别: • 发现 • 说明 • 协议 • Web 服务存在的共同问题: • 紧密耦合 • 发布服务 • 描述服务 • 网络 • 开发框架和工具 UDDI DISCO 服务 WSDL SOAP

  9. UDDI 2-1 因此UDDI 可用于查找以下内容 : • 有关业务伙伴提供的 Web 服务的信息 • 特定Web 服务的提供者列表 • 特定 Web 服务如何公开的详细技术信息 • 特定业务类别下,提供特定 Web 服务的公司等 UDDI 帮助注册服务提供者提供的服务,以便可以共享。 还有助于服务使用者或 Web 用户查找 Web 服务

  10. UDDI 2-2 UDDI 业务注册表的目的是整合电子商务站点 工业 Internet UDDI 市场与 搜索引擎 业务注册 表(UBR) UDDI 商业 商业实体设置的业务注册规范和UDDI 架构组合在一起, 方便了要编程的 Web 服务的发现 注册/搜索 UDDI 业务注册表

  11. UDDI的工作原理 Business Entity 注册过程中提供的信息可以大致分为三类: Business Service Publisher Assertion 白页 数据 包括地址、联系方式和已知标识符 包括基于标准分类法划分的行业类别信息 黄页 Binding Templates tModel 包含有关公司提供的服务的技术信息和 对各种其他规范的引用 绿页 这些页面中的数据可以划分为五类:

  12. UDDI 业务注册表 Microsoft 节点运营商 每日复制 节点 IBM 直接注册 注册处 通过注册处 进行注册

  13. 注册过程

  14. 用 UDDI 查找 Web 服务 • 发现Web 服务所需要的第一个步骤。可以通过在页面 http://www.uddi.org上单击链接“Find”来打开此页面 • 接下来在提供的列表中选择 UDDI 业务注册表 • 要查看列出的各种服务,则必须单击服务链接 • 单击其中一个服务,就会生成有关服务/业务/服务类型的说明,如图所示 UDDI 业务注册表 服务详细信息 搜索结果

  15. 用发现文档查找 Web 服务 2-1 • Web 服务发现机制使客户端应用程序能够查找或发现描述 Web 服务的文档 • .disco 文件或发现文档包含到描述 Web 服务的其他资源的链接,并使客户端发现 Web 服务 • 以下代码演示了发现文档的内容 <? Xml version=”1.0” encoding = “tuf-8”?> <discovery xmlns:xsd=”http://www.w3.org/2001/XMLSchema” xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xmlns= “http://schemas.xmlsoap.org/disco/”> <discoveryRef ref= “/Folder/Default.disco”/> <contractRef ref =”http://Nancyd/mywebservice/Service1.asmx?wsdl” docRef=http://Nancyd/mywebservice/Service1.asmx xmlns=http://schemas.xmlsoap.org/disco/scl/ /> <soap address=”http://Nancyd/mywebservice/Service1.asmx” xmlns:q1=http://tempuri.org/ binding=q1:Service1Soap” xmlns=http://schemas.xmlsoap.org/disco/scl/ /> </discovery> 在发现文档中指定服务说明引用

  16. 用发现文档查找 Web 服务 2-2 • 创建一个 XML 文档,并在第一行中插入 <?xml version=”1.0”?> 标签 • 添加一个< discovery> 元素,如: <discovery xmlns=http://schemas.xmlsoap.org/disco/> • 如所示,在<discovery> 元素中添加对服务说明、XSD 架构和其他发现文档的引用,: • 在 Web 服务器上部署发现文档 <?Xml version=”1.0”?> <discovery xmlns=http://schemas.xmlsoap.org/disco/> <discoveryRef ref=/Folder/Default.disco”/> <contractRef ref=”http:/NancyD/MyWebService.asmx?WSDL” docRef =”Service.htm” xmlns=http://schemas.xmlsoap.org/disco/scl/”/> <schemaRef ref=”Schemas.xmlsoap.org/disco/schema/”/> </discovery>

  17. 使用 Wsdl.Exe创建代理类 • 要为创建的 Web 服务创建代理文件,请在 DOS 提示符入键入以下命令: • WSDL.exe 实用程序用 /l:language 命令行参数指定语言 • 代理源文件需要被编译为一个 DLL WSDL http://localhost/aspex/CH13/Factorial.asmx WSDL http://localhost/aspex/CH13/Factorial.asmx/l:vb csc /out:MyWS.dll /t:library /r:System.Web.Services.dll Factorial.cs

  18. 在 ASP.NET 中使用 Web 服务 3-1 • 创建一个名为 CH14-Web 的 Web 应用程序 • 在“解决方案资源管理器”窗口中右键单击“引用”节点并选择“添加 Web 引用”,如图 所示 • 此时出现“添加 Web 引用”对话框,如图所示 • 在“添加 Web 引用”对话框的 URL 栏中,指定要使用的 XML Web 服务的路径 • 单击方法 CalFactorial(),便显示 VS.NET 自动生成的页面,以测试 Web 服务公开的方法

  19. 在 ASP.NET 中使用 Web 服务 3-2 • 为该方法输入相应的参数,并单击“调用”。测试的结果显示在“Internet Explorer”窗口中,如图所示 • 通过替换“Web 引用名称”栏中的默认名称 localhost,将 Web 服务名称重命名为 MyWebService,如图所示。最后单击“添加引用”按钮,添加对 Web 应用程序的引用 • 单击“添加引用”按钮后,Visual Studio .NET 在“解决方案资源管理器”窗口中包括Web 引用MyWebService,并将相应的.wsdl、.disco 和 .map 文件添加到“Web 引用”文件夹下的客户端应用程序

  20. 在 ASP.NET 中使用 Web 服务 3-3 • 设计如图所示的 Web 应用程序界面,并将 Web 窗体重命名为 TestFactorial.aspx • 对 Web 界面中控件的命名,如表所示 • 将以下代码添加至 CalculateFactorial 的 Click 事件 • 构建并执行此应用程序,以验证其工作情况 private void btnCal_Click(object sender, System.EventArgs e) { MyWebService.Factorial objMyWebService = new CH14 Web.MyWebService.Factorial); lblVal.Text =objMyWebService.CalFactorial(Int32.Parse (txtVal.Text)) .ToString(); } TestFactorial.aspx TestFactorial.aspx中的控件

  21. 在 WinForms 中使用 Web 服务 2-1 • 在 VS.NET 中创建一个名为 CH14Win 的 Windows 应用程序。将该窗体重命名为 frmTestWebService,窗体标题为“测试 Web 服务” • 在“解决方案资源管理器”窗口中右键单击“引用”节点,并选择“添加 Web 引用” • 输入 Web 服务Factorial.asmx 的路径,并将 Web 引用的名称替换为 WebService2。接下来单击“添加引用”按钮将 Web 服务添加到该项目中 • 设计如图所示的 Windows 应用程序界面,对窗体控件的命名,如表所示 frmTestWebService

  22. 在 Winforms中使用 Web 服务 2-2 • 将以下代码添加到 btnCal 的 Click 事件 • 构建并执行此应用程序,以验证其工作情况 private void btnCal_Click(object sender, System.EventArgs e) { MyWebService2.Factorial objMyWebService2 = new MyWebService2.Factorial); lblVal.Text = objMyWebService2.CalFactorial(Int32.Parse (txtVal.Text)).ToString(); }

  23. 总结 • UDDI 帮助注册服务提供者提供的服务,以便可以共享 • UDDI 业务注册表的目的是整合电子商务站点 • Web 服务发现机制使客户端应用程序能够查找或发现描述 Web 服务的文档 • 发现文档包含有关其他 Web 服务的信息,此 Web 服务位于同一或另外的 Web 服务器上 • WSDL(Web 服务描述语言)是 Microsoft、Ariba 和 IBM 共同努力的结果,是一种描述或描绘 Web 服务的语言 • VS.NET 2003 提供了在Windows 和Web 应用程序中使用Web 服务的简单方法

More Related