soap 与 dcom 的局限性与区别
.net remoting 的目的之一是提供丰富的分布式环境,使开发人员能够在此环境中对序列化协议(格式化程序)与网络协议(频道)进行组合与匹配..net 框架 1.0 版本中的 com+ web 服务仅支持一种格式化程序 (soap) 与一种频道 (http).这并不是说其他频道与格式化程序不能使用 servicedcomponents 或 com+,而是说没有自动配置为这些备用频道与格式化程序提供客户端与服务器端点. 目前已经有用各种语言编写的大量 com+ 组件.如果可以使用 com+ web 服务将所有这些组件启用为 web 服务,那就太好了.但正如使用 .net 框架 1.0 版本一样,并非所有现有的 com 组件都可以使用 com+ web 服务.虽然多数具备类型库的现有组件可以正常工作,但是此版本不支持某些组件,例如 windows 脚本组件 (wsc) 组件.某些复杂的类型库(其接口具有多重继承级别,或依赖于多个类型库)可能无法正常工作.此外,由于类型库转换的局限性,只有类型库中默认的接口才可以作为 web 服务. com+ web 服务并不是适用于所有现有非托管 com+ 组件的完整解决方案.现有非托管 com+ 组件中有一大部分是使用多种编程语言编写而成的,由于不可能测试所有可能的类型库(由支持 com+ 的各种编译器生成),因此某些非托管 com+ 组件不能使用 com+ web 服务正确发布.com+ web 服务的目的之一就是最大程度减少做出这种评估所需的时间与精力.只需将非托管 com+ 组件发布为 com+ web 服务,开发人员就可以迅速判断是否可以将其用作 web 服务.如果遇到问题,则可以通过若干替代方法来处理现有的非托管组件.这些替代方法包括编写托管或非托管的包装程序,这些包装程序提供的兼容接口可以发布为 web 服务.多数情况下,编写这样的包装程序的工作量比重新编写整个组件要少得多.这就尽可能减少了将现有的应用程序应用为 xml web services 所需的开发与测试工作. 使用非托管(visual basic 6.0 或 visual c++)服务器时,通常越早绑定托管客户端应用程序与 soap,越能更好地工作.在某些情况下,如果将生成的元数据用作后期绑定的跨计算机远程代理程序,它可能无法正常工作. 在通过 http 使用 soap 格式化程序的情况下,仍然可以使用许多选项(取决于目标部署环境).com+ web 服务为服务器与 cao 客户端配置生成基于 xml 的远程配置文件.(wko 激活的 url 引用已嵌入生成的客户端代理,因此不需要配置文件.)com+ web 服务生成直观的功能性配置文件,可由用户自定义以满足任何通过 http 的直接 soap 通信所不能满足的需求.... 下一页