Web 服务平台(四)

日期: 2007-12-19 来源:TechTarget中国

  Microsoft 平台使用说明

  Microsoft Windows 2000 提供了实现 Web 应用程序和 Web 服务所需要的基础结构。Windows 2000 Internet 信息服务 (IIS) 和组件服务 (a.k.a. COM+) 提供的宿主环境可以满足上文所列的大多数要求。Windows 2000 还提供了可帮助实现 Web 服务的所有层的 API:

  用于实现业务外观、业务逻辑和数据访问层的 COM
  实现对各类数据存储区进行数据访问的 ADO、OLE DB 和 ODBC
  在 Web 服务侦听器中,帮助构造和使用 XML 消息的 MSXML
  实现 Web 服务侦听器的 Active Server Pages (ASP) 或 ISAPI

  为了提高 Web 服务的可用性和可伸缩性,可以使用 Windows 2000 Advanced Server 和 Datacenter Server 的网络负载平衡 (NLB) 和群集服务。可以使用 IPSec、HTTP 基本身份验证、简要身份认证、Kerberos 5 身份验证、NTLM 身份验证或者自定义方案对 Web 服务的访问进行限制。可以使用 IPSec、SSL 和 Windows 密码系统服务来确保数据保密性。

  .NET 企业服务器

  为实现和部署 Web 服务,Microsoft 还提供了几个您可能觉得有用的服务器产品。这些产品的最新版本总称“.NET 企业服务器”,已经得到增强以便支持 Web 和 XML。.NET 企业服务器包括:

  Application Center 2000,用于部署和管理 Web 应用程序和 Web 服务。

  BizTalk™ Server 2000,用于业务进程编排和文档交换。BizTalk Server 包含对 XML 和基于 SOAP的消息的广泛支持,这些消息通过各种协议进行传输,包括 HTTP、SSL 和 SMTP。开发人员如果对向其业务伙伴展示业务进程感兴趣,将乐于生成基于 BizTalk Server 的解决方案,该解决方案最终将对应于 Web 服务的定义,而不是显式地着手实现 Web 服务。

  Commerce Server 2000,用于生成电子商务 Web 应用程序的应用程序平台。

  Exchange Server 2000,用于消息收发和协作。Exchange 2000 包括提供异类文档分层数据存储功能的 Microsoft Web 存储系统。XML 是 Web 存储系统中许多类文档的本机数据格式。  Exchange 与 IIS 紧密集成在一起,以便支持 SMTP、POP 和通过 HTTP 直接访问数据。

  Exchange 提供了一个完整的应用程序平台,可以生成在 Web 上工作的协作工作流应用程序。与 BizTalk Server 相似,对生成工作流应用程序最感兴趣的开发人员,将乐于生成基于 Exchange 或者 Microsoft® SharePoint™ Portal Server 的解决方案,该解决方案最终将对应于 Web 服务的定义,而不是显式地着手实现 Web 服务。

  Host Integration Server 2000,用于访问大型机应用程序和数据存储。Host Integration Server 是由 Microsoft SNA Server 演变而来的。
 
  Internet Security and Acceleration Server 2000,提供防火墙和 Web 缓存服务。

  Mobile Information Server 2001,用于对企业数据的无线访问。

  SQL Server™ 2000,用于关系数据存储。SQL Server 2000 包括对 XML 的广泛支持。关系数据可以以 XML 形式被查询和修改,这就不需要在应用程序中手工改动格式化逻辑。在使用 SQL Server XML 服务时,还可以通过 HTTP 提供到 SQL Server 数据存储区和 OLAP 多维数据集的直接访问。如果 Web 服务只是处理没有很多业务逻辑的数据查询,而且不需要提供基于 SOAP 的接口的话,那么就可以考虑直接将 SQL Server XML 用作 Web 服务侦听器。

  当今的 SOAP 工具

  注意,除 BizTalk Server 2000 之外,这些技术和产品不支持 SOAP、WSDL、Disco 和 UDDI。利用当今技术创建基于 SOAP的 Web 服务的开发人员拥有三种基本选择:

  使用 MSXML、ASP 或者 ISAPI 等自行设计。此选择的不利方面当然就是:需要自己来完成和测试所有设计,并找出符合相关规范的方法。

  使用 Visual Studio 6.0 的 SOAP 工具包来生成一个 Web 服务侦听器,该侦听器连接到使用 COM 实现的业务外观。(如果业务外观未被作为一个 COM 组件实现,可以使用 SOAP 工具包。但是,无法利用可以很容易地生成侦听器的向导。)请注意 SOAP 工具包是 MSDN 提供的示例。工具包理解 HTTP 和 SSL 上的 SOAP,但是却不能帮助创建 Disco 文档或者 UDDI 注册。它支持一种较老的协定语言 SDL 而不是 WSDL。

  使用 Microsoft Soap 工具包第二版生成 Web 服务侦听器,该侦听器连接到使用 COM 实现的业务外观。Microsoft Soap 工具包第二版计划于 2001 年第一季度在 MSDN Online 上发布。第二版支持 HTTP 上的 SOAP,并且可以用于创建描述服务的 WSDL 文件。仍将需要手动创建 Disco 文档和 UDDI 注册。

  SOAP 工具包的两个版本都提供了一系列工具,以帮助开发人员像使用 COM 组件一样使用 Web 服务。SOAP 工具包提供了一个叫做远程对象代理引擎 (ROPE) 的 COM 组件,该组件可以由客户端应用程序所使用。ROPE 使用 SDL 文件动态地创建可以对代理对象调用的自动化方法。如果想要使用不提供 SDL 文件的 Web 服务,那么需要自行创建一个 SDL 文件。SOAP 工具包第二版提供了类似的基于 WSDL 文件的功能。

  与 .NET 一道前进

  .NET 框架是 Microsoft 用以生成 Web 应用程序和 Web 服务的下一代平台。它完全是为了满足 Web 服务开发人员和使用者的需求而生成的,提供对 XML 和 SOAP 等 Web 标准的普遍支持。Web 服务开发人员的 .NET 框架的一些关键功能包括:

  公共语言运行库,管理以任何编程语言编写的运行代码的需求,并消除对实现 IUnknown 和 IDispatch 等特殊接口的需求。开发人员只需用其选定的编程语言实现类。类是完全自描述的,因此独立的类型库或者 IDL 文件是不必要的。

  与现有 COM 组件的互操作。对于托管应用程序来说,现有 COM 组件看起来像托管类;而对于非托管应用程序来说,托管类看起来像 COM 组件。

  经过改进的应用程序部署模型,让您可以准确地指定要使用的依赖 DLL 版本。应用程序配置信息可以在文本文件中指定,这就简化了应用程序的管理。通过简单地将文件复制到目标计算机,就可以部署许多应用程序(有时叫做“Xcopy 部署”)。

  集成而深入的安全服务,确保未授权用户不能访问代码或者执行未授权操作。

  ADO.NET,提供类以访问 XML 文档和关系数据存储区。顾名思义,ADO.NET 是从 Microsoft ActiveX® 数据对象 (ADO) 演变而来的。

  轻量应用程序隔离,基于应用程序域。应用程序域代表一个隔离边界。隔离应用程序可以独立地停止和调试,无法访问其他应用程序的代码或者资源,出现错误时不会导致其他应用程序失败,并且有一套基准的身份验证检查,可以在启动应用程序前执行。多个应用程序域可以在同一个进程内运行。

  可靠的 HTTP 运行库,用于处理 HTTP 请求,从访问冲突、内存泄漏、死锁等情况中自动恢复到尽可能好的状态。Web 应用程序和 Web 服务在应用程序域中运行,因此一个应用程序域中的故障不会导致其他应用程序域或者宿主环境产生故障。应用程序域按需启动;如果故障使一个应用程序域停止,那么下一个传入的请求只要启动一个新应用程序域即可。运行库还支持应用程序的先行循环以便在面临泄漏资源的应用程序时可以提高系统的整体稳定性。应用程序 DLL 从不锁定,因此可以在无需关闭应用程序或 Web 服务器的情况下部署新版本。当侦测到新 DLL 时,将启动一个新应用程序域来处理新请求,而且当现有应用程序域没有未处理的请求时将被关闭。
 
  ASP.NET,提供了一个相当于 ISAPI 的低级别编程模型(但是更容易实现),同时还提供了高级别编程模型用于生成 Web 应用程序(称作 Web 窗体)和 Web 服务。对于使用私有帐户数据库来验证用户身份的应用程序来说,ASP.NET 支持基本、简要和 NTLM 身份验证,以及 Microsoft Passport 身份验证和基于 Cookie 的自定义身份验证。

  .NET 远程处理,用于激活对象并跨上下文、应用程序域、进程或者计算机边界进行方法调用。对于跨计算机调用,.NET 远程处理同时支持 TCP/IP 上的类似 DCOM 的二进制网络协议和 HTTP 或者 SMTP 上的 SOAP 连网协议。此结构是可以扩展的,因此可以支持其他的连网协议和传送方式。

  ASP.NET Web 服务是实现基于 .NET 框架的 Web 服务的首选技术。ASP.NET Web 服务支持使用 HTTP 上的 SOAP 以及 HTTP GET 或者 POST 的服务请求。ASP.NET Web 服务自动为您的 Web 服务生成 WSDL 和 Disco 文件。可以使用 ASP.NET Web 服务来实现 Web 服务侦听器,该侦听器访问被作为 COM 组件或托管类实现的业务外观。.NET 框架 SDK 还提供生成代理类的工具,客户端应用程序可以使用代理类访问 Web 服务。

  请注意,与我们已经讨论过的其他工具相同,ASP.NET Web 服务并不把服务器端类型向客户端应用程序公开。实现过程完全隐藏在 Web 服务内部。所讨论过的所有工具同样采用了一种无状态编程模型,即,每个传入请求都进行单独处理。请求之间唯一保持的状态就是数据存储中所持续的状态。

  如果您想要客户端和服务器端之间更紧密结合的、基于对象的编程模型,那么可以使用 .NET 远程处理。.NET 远程处理提供对具有完全类型高保真的服务器端对象的远程访问。客户端可以获得对服务器端对象的引用并控制这些对象的生存期。如果使用这些对象生存期服务,客户端应用程序还是需要使用 .NET 远程处理来实现。

  除了 .NET 框架所提供的功能之外,Microsoft Visual Studio .NET 还提供了其他的工具帮助生成、部署和使用 Web 服务。例如,IDE 支持定位 Web 服务的 UDDI 和 Disco,并且知道从 WSDL 文件生成客户端代理的方法。Visual Studio .NET 还包括 ATL Server,使用 ATL 的 C++ 开发人员可以使用它来构造 Web 服务侦听器,该侦听器连接到作为 C++ 类实现的业务外观。ATL Server 支持 HTTP 上的 SOAP 并将为 web 服务自动生成 WSDL 文件。还提供生成 C++ 代理类的工具,客户端应用程序可以利用它来访问 Web 服务。

  如您所知,Microsoft 提供了许多工具和技术帮助您生成、部署和使用 Web 服务。“MSDN 新闻”2001 年 1 月/2 月期的跨页版面(单击此处可查看)提供了便利的使用说明,可以帮助查询本文讨论的选项,并告诉您到哪里查找有关每个产品的更多信息。请注意该跨页版面并没有尽力列出实现 Web 服务所用到的所有选项,而是针对已知目前 Microsoft 产品的功能,为不同的开发方案推荐比较好的选项。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

相关推荐