远程处理和XMLWebServ.ppt_第1页
远程处理和XMLWebServ.ppt_第2页
远程处理和XMLWebServ.ppt_第3页
远程处理和XMLWebServ.ppt_第4页
远程处理和XMLWebServ.ppt_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于C#的 .NET Framework程序设计 n第1章 Microsoft .NET Framework概述 n第2章 托管执行环境的介绍 n第3章 使用组件 n第4章 部署与版本控制 n第5章 通用类型系统 n第6章 类型的使用 n第7章 字符串、数组和集合 n第8章 委托和事件 n第9章 内存和资源管理 n第10章 数据流和文件 n第11章 Internet访问 n第12章 序列化 n第13章 远程处理和XML Web Service n第14章 线程和异步编程 n第15章 托管代码与非托管代码 之间的互操作 n第16章 使用Microsoft ADO.NET 访问数据 n第17章 属性 第13章 远程处理和 XML Web Service n远程处理 n远程处理配置文件 nXML Web Service 远程处理 n远程处理概述 n信道和格式化程序 n激活和代理 n基于租约的生存期 n对象封送处理 n服务器端 n客户端 n客户端编译技术 13.1 远程处理 远程处理概述 客户端应用程序域 客户端 对象 信道 格式化程序 格式化程序 信道 服务器 端对象 远程处理边界 服务器端应用程序域 服务器 端代理 13.1.1 远程处理概述 信道和格式化程序 n信道用来在客户端和远程对象之间传输消息 n客户端选择已经在服务器上注册的信道 l在调用远程对象前,客户端以每个应用程序域为基础注 册信道 l一个计算机上不能有多个信道监听同一个端口 n.NET 提供了 HTTP 和 TCP 信道 lHTTP 信道默认使用SOAP 协议来传输 XML 消息 lTCP 信道默认使用TCP 协议来传输二进制消息比SOAP快 ,但不具备开放性 n举例:编程实现在8085端口上注册 TCP 信道 13.1.2 信道和格式化程序 using System.Runtime.Remoting.Channels; using System.Runtime.Remoting.Channels.Tcp; TcpChannel chan = new TcpChannel(8085); ChannelServices.RegisterChannel(chan); 信道和格式化程序(续) n选择信道时要注意的安全性问题 l推荐使用HTTP信道,用IIS作为远程对象的宿主 lIIS提供了网络级的安全保护,如SSL,NTLM等 lTCP信道没有像HTTP信道那样提供强壮的安全认证 l不推荐在Internet或不安全局域网内使用TCP信道 l可以使用 System.Security.Cryptography 命名空间下的类对 传输的数据进行加密 13.1.2 信道和格式化程序 激活和代理 n在调用远程对象前,客户端必须先激活它 l通过调用 New、Activator.CreateInstance和 Activator.GetObject 来激活远程对象 n激活返回被客户端用来访问远程对象的委托 l在客户端用委托来代表远程对象 l委托封送客户端的调用,并返回调用结果和异常 n服务器端激活 服务器自动初始化 lSingle Call 对象只处理单一请求 (无状态) lSingleton 对象可服务多个客户端和请求 (有状态) n客户端激活 由客户端显式调用激活 l为特定客户端维护方法调用间的状态 13.1.3 激活和代理 基于租约的生存期 n租约机制控制客户端激活的远程对象的生存期 n一个对象租约期可以延长的 n当对象租约期到零时 l该对象将与远程处理结构断开连接 l当 AppDomain 内对该对象的所有引用都释放后,该对象 将由垃圾回收器回收 l使用租约管理远程对象的生存期是引用计数的一种替代 方法 13.1.4 基于租约的生存期 对象封送处理 n远程实例化的对象通过引用返回并被客户端通过 委托访问 n远程处理中的参数、返回值和字段可以分为如下 三类 l值封送对象 - 对象的拷贝在应用程序域之间封送 - 值类型必须是可序列化的 l引用封送对象 - 在应用程序域之间封送对象的引用 - 类必须是 System.MarshalByRefObject 的派生类 l不封送对象 - 只适合在本地使用 - 既不可以由值封送也不可以由引用封送的对象 13.1.5 对象封送处理 服务器端 n注册信道 n用下列方式注册信道 l调用 RegisterWellKnownServiceType 方法 l或者使用配置文件 13.1.6 服务器端 RemotingConfiguration.RegisterWellKnownServiceType( typeof(HelloServer), “SayHello“, WellKnownObjectMode.Single Call); RemotingConfiguration.Configure(“MyHello.exe.config“); 客户端 n注册信道 n使用下列方法激活远程对象 lActivator.GetObject l或者用 New 和配置文件 13.1.7 客户端 HelloServer obj = (HelloServer)Activator.GetObject( typeof(RemotingSamples.HelloServer), “tcp:/localhost:8085/SayHello“); RemotingConfiguration.Configure(“MyHello.exe.config“); HelloServer obj = new HelloServer(); ChannelServices.RegisterChannel(new TcpChannel(); 客户端编译技术 n当客户端被编译时,编译器需要服务器端类的信息 n服务器端类的信息可通过下列方式取得 l提供类所在程序集的引用 l把远程对象分为实现类和接口类型 l用 Wsdl.exe工具直接从终结点取得需要的元数据 13.1.8 客户端编译技术 第13章 远程处理和 XML Web Service n远程处理 n远程处理配置文件 nXML Web Service 远程处理配置文件 n使用 RemotingConfiguration类上的configure方法 n应用程序配置文件是一个XML 文档 l配置文件是区分大小写的 l可在计算机和应用程序级别上指定配置文件 应用程序级别上的配置比计算机级别上配置优先级高 l更多信息请查看.NET FrameworkSDK文档中的 “远程处理配 置文件格式” RemotingConfiguration.Configure(“MyApp.exe.config“); 13.2 远程处理配置文件 实验A 使用远程服务器创建一个订单处理程 序 练习1创建一个身份验证XML Web Service 练习2创建订单处理服务器 练习3创建测试客户端 第13章 远程处理和 XML Web Service n远程处理 n远程处理配置文件 nXML Web Service XML Web Service nASP.NET XML Web Service概述 nASP.NET 特性 n访问 XML Web Service nXML Web Service 发现 13.3 XML Web Service ASP.NET XML Web Service概述 n以 .asmx 为扩展名的ASP.NET文件是 XML Web services nHelloWorld .asmx 文件中的例子 n如果该文件被放在Foo 服务器上的 Bar 虚拟目录中 l通过如下方式访问服务 l用如下方法访问服务的WSDL 13.3.1 ASP.NET XML Web Service概述 using System; using System.Web.Services; public class HelloWorld : WebService WebMethod public String SayHelloWorld() return “Hello World“; http:/Foo/Bar/HelloWorld.asmx?wsdl http:/Foo/Bar/HelloWorld.asmx ASP.NET 特性 nASP.NET 可以对外提供定义在.NET类中的 XML Web services l该类继承自 WebService,方法带有 WebMethod属性 l类的资源文件被编译成 DLL库并放在 Bin目录中 l类的命名在.asmx文件中只用一行来描述 nASP.NET高级特性包括 lData sets、 Global.asax、 Session 和 Application 对象,文本模式 匹配 13.3.2 ASP.NET 特性 namespace MyNameSpace public class HelloWorld : WebService WebMethod public String SayHelloWorld() return “Hello World“; csc /out:binhelloworld.dll /t:library helloworld.cs 访问 XML Web Service n使用 Wsdl.exe来创建XML Web service的代理类 l标识对象或服务的URI l用 /language (/:)选项,以服务的URI为参数运行Wsdl.exe l编写客户端代码调用远程对象 l编译客户端和代理代码 13.3.3 访问 XML Web Service http:/localhost/MathService/Service1.asmx wsdl http:/localhost/MathService/Service1.asmx?wsdl csc salestaxclient.cs service1.cs Service1 salesTaxService = new Service1(); float totalAmount = salesTaxService.SalesTax( amount,taxRate); XML Web Service发现 nXML Web Service 发现是查找并查询 XML Web Service 说明的过程 lXML Web Service 发现目前正在不断发展 nDisco 是 Microsoft的 XML web services 发现工具 lDisco 文件包含指向描述该 XML Web Services 的其他资源的 链接 lDisco 目前由Visual Studio .NET创建和使用 n统一描述、发现和集成项目提供了 l一个开放框架,用于描述Web服务、发现业务以及集成使 用Internet的业务服务 l跨行业支持和平台独立 l更多信息,访问 ht

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论