完全特性集,都可实现网络服务。网络服务可在任何平台被用任何语言所实现的应用 程序使用。只要用于解释服务容量、报文序列和所期望协议的契约得到认同,那么所实 现的网络服务及网络服务用户就可相互不同,而不会影响会话另一端的应用程序 网络服务模板对最小体系架构的要求很低,以确保网络服务在使用任何技术和编程 语言的平台上实现和访问。对网络服务互用性的解决可只依靠网络标准。然而,为了使 应用程序更容易使用网络服务,简单地同意通过标准网络协议就可以访问网络服务是不 够的。当网络服务和网络服使用者依靠标准的方式表示数据和命令、表示网络服务契 约、算出网络服务所提供的容量时,网络服务才容易使用 XML是定义一个标准的、可扩展的用于提供命令和典型数据的语言明显的一种选 择。虽然为表示命令和典型数据可以定义使用其它技巧(比如编码为一种查询字符串) 的规则,但ⅹML被专门设计为描述数据的标准元语言。简单对象存取协议(SOAP) 是以一种可扩展的方式使用XML表示数据和命令的工业标准。网络服务可选择用 SOAP决定报文的格式 XML是网络服务契约的一种使能技术。服务契约语言(SCL是记录网络服务契约 的XML语法。由于SCL是基于XML的,所以对开发者和开发工具来说,容易生成 解释契约。关于SCL细则的草案很快会出台(注意:现在的 SOAP Toolkit for Visual studio 60支持称为SDL的SCL的早期版本)。 Disco规范为服务提供者发布网络服务契约和相应的机制描述了一个标准方式, 这将使开发者或开发工具可找到契约文献。当你读到这里时,Dsco规范的草案应出 台了。 象SOAP,SCL和 Disco这样的标准有助于开发者,因为它们不需要明白和实现 所使用的每一个网络服务的访问方式。支持这些标准的更好的、已充分测试的、高性能 的体系架构将由开发平台提供,这会大大简化整个开发过程 MicroSoft. net framework MicroSoft Net框架的目的是使你更容易建立网络应用程序和网络服务。图2显 示了 Microsoft net框架的体系。建立在操作系统最上层的服务,是管理运行时代码 需求的 common language runtime,这些代码可以用任何现代编程语言所写。 Runtime提 供了许多服务,这些服务有助于简化代码开发和应用程序的开发同时也将提高应用程序 的可靠性。 NET Framework包括一套可被开发者用于任何编程语言的类库。在此之上 是许多应用程序模板,这些模板特定地为开发网络站点和网络服务提供高级组件和服 务 Common Language runtime 运行语言( runtime)调入并运行用任何运行感知编程语言所写的代码。以运行为目标 的代码被称为受控( managed)代码,受控代码代码只是意味着在内部可执行代码与 运行自身间存在已定义好的合作契约。对于象生成对象、调用方法等这样的任务,被委 托给了运行语言,这使得在运行语言能为可执行代码增加额外的服务。 运行语言以交叉语言集成、自描述组件、简单配制和版本化及集成安全服务为特点。 运行语言使用一种新的能表达大部分现代编程语言语义的通用类型系统,通用类型 系统定义了一套标准类型及生成新标准的规则。运行语言知道怎样生成、执行这些类型 编译器和解释器使用运行语言服务定义类型、管理对象、进行方法调用,而不是使用工
完全特性集,都可实现网络服务。网络 服务可在任何平台被用任何语言所实现的应用 程序使用。只要用于解释服务容量、报文序列和所期望协议的契约得到认同,那么所实 现的网络服务及网络服务用户就可相互不同,而不会影响会话另一端的应用程序。 网络服务模板对最小体系架构的要求很低,以确保网络服务在使用任何技术和编程 语言的平台上实现和访问。对网络服务互用性的解决可只依靠网络标准。然而,为了使 应用程序更容易使用网络服务,简单地同意通过标准网络协议就可以访问网络服务是不 够的。当网络服务和网络服使用者依靠标准的方式表示数据和命令、表示网络服务契 约 、算出网络服务所提供的容量时,网络服务才容易使用。 XML 是定义一个标准的、可扩展的用于提供命令和典型数据的语言明显的一种选 择。虽然为表示命令和典型数据可以定义使用其它技巧(比如编码为一种查询字符串) 的规则,但 XML 被专门设计为描述数据的标准元语言。简单对象存取协议(SOAP) 是以一种可扩展的方式使用 XML 表示数据和命令的工业标准。网络服务可选择用 SOAP 决定报文的格式。 XML 是网络服务契约的一种使能技术。服务契约语言 (SCL)是记录网络服务契约 的 XML 语法。由于 SCL 是基于 XML 的,所以对开发者和开发工具来说,容易生成、 解释契约。关于SCL细则的草案很快会出台(注意:现在的SOAP Toolkit for Visual Studio 6.0 支持称为 SDL 的 SCL 的早期版本)。 Disco 规范为服务提供者发布网络 服务契约和相应的机制描述了一个标准方式, 这将使开发者或开发工具可找到契约文献。当你读到这里时, Disco 规范的草案应出 台了。 象 SOAP, SCL 和 Disco 这样的标准有助于开发者,因为它们不需要明白和实现 所使用的每一个网络服务的访问方式。支持这些标准的更好的、已充分测试的、高性能 的体系架构将由开发平台提供,这会大大简化整个开发过程。 ◆ MicroSoft .NET Framework MicroSoft .NET 框架的目的是使你更容易建立网络应用程序和网络服务。图 2 显 示了 MicroSoft .NET 框架的体系。建立在操作系统最上层的服务,是管理运行时代码 需求的 common language runtime,这些代码可以用任何现代编程语言所写。Runtime 提 供了许多服务,这些服务有助于简化代码开发和应用程序的开发同时也将提高应用程序 的可靠性。.NET Framework 包括一套可被开发者用于任何编程语言的类库。在此之上 是许多应用程序模板,这些模板特定地为开发网络站点和网络服务提供高级组件和服 务。 ◆ Common Language Runtime 运行语言(runtime)调入并运行用任何运行感知编程语言所写的代码。以运行为目标 的代码被称为受控(managed )代码,受控代码代码只是意味着在内部可执行代码与 运行自身间存在已定义好的合作契约。对于象生成对象、调用方法等这样的任务,被委 托给了运行语言,这使得在运行语言能为可执行代码增加额外的服务。 运行语言以交叉语言集成、自描述组件、简单配制和版本化及集成安全服务为特点。 运行语言使用一种新的能表达大部分现代编程语言语义的通用类型系统,通用类型 系统定义了一套标准类型及生成新标准的规则。运行语言知道怎样生成、执行这些类型。 编译器和解释器使用运行语言服务定义类型、管理对象、进行方法调用,而不是使用工
具或特定于语言的方法 类型系统的主要设计目的是使多种语言能深度集成。用一种语言所写的代码能继承 用另一种语言所写的类的实现,用一种语言所写的代码抛出的异常能被用另一种语言写 的代码捕获,象调试和剖析之类的操作会在完全封闭下工作,而不用考虑代码所用的语 言。这就意味着编写可重用类库的开发者,不再需要为每一种编程语言或编译器生成 个版本,并且使用类库的开发者不再受到为他们使用的编程语言开发的库的限制。 自描述组件一一现在 MicroSoft net框架上已成为可能一一简化了开发和配制, 并提高了系统的可靠性。许多由运行语言提供的服务是由元数据及用于补充可执行代码 的信息所驱动。因为所有的信息都储存在一起,只有可执行的(代码)才被称为自描述 组件 自描述组件的一个主要优点是,使用它们并不需要其它文件。类的定义不需要单独 的头文件;通过检查元数据对类的定义可以从组件自身获得。跨语言或过程边界访问组 件并不需要各自的IDL文件、类型文件或 proxy/subs:所必需的信息已存在于元数据 之中。为识别开发者请示的服务属性,并不需要展开各自的配制信息。最主要的是, 由于元数据是在编译过程中由源代码生成,并与可执行代码储存在一起,它将永远和可 执行部分同步 除了改善对单个组件的配制, Microsft NET框架定义了一个应用程序配制模板 以解决定置应用程序安装和DL版本化(通常被称为“ DLL Hel')这一复杂过程的问 题,运行语言提供了支持这个模板的服务。 Microsoft.NET框架引入了组合体的概念。一个组合体是一组资源和类型,并包括 有关这些资源和类型的元数据,也就是被作为一个单元配制的。元数据被称为组合体的 名单,它包含象类型和资源表之类能被组合体外看得见的信息,这个名单也包括有关从 属关系之类的信息,例如组合体建立时的版本号。开发人员可以指定版本策略,以指示 运行语言是否装入系统上已安装的依赖于组合体的最新版本,装入一指定版本,或在编 译时使用的版本 某软件组件的多个拷贝总可以存在于同样的操作系统上,然而,通常说来,只有其 中的一个拷贝能被操作系统注册、调入内存、执行。对系统来说,定位和调入内存的策 略是全局性。 NeT Framework Common Language runtime增加了所必须的体系架构以 支持管理组件定位和调入的每个应用程序策略,这通常被称为并行配制。 组合体可以被一个应用程序私有,或被多个应用程序共享。一个组合体的多个版本 可以同时配制在同一台机器上。应用程序配制信息定义了到何处去查找组合体,这样 runtime就能为同时运行的两个不同的应用程序装入同一组合体的不同版本。这就消除 了由组件版本的不兼容性引起的问题,提高了系统整体的稳定性。如果必要,如果必要, 管理员可以为配制时刻的组合体増加配制信息,例如一个不同的版本策略,但是编译时 提供的原始信息永远不会丢失 因为组合体是自描述的,所以并不需要在系统上进行显式注册。应用程序的配制简 单到只需将文件拷贝到目录中既可(如果为了使应用程序能够运行,必须安装未经组织 过的组件的话,情况会稍微复杂一点)。配制信息保存在可被任何文本编辑器编辑的 XML文件中 最后,运行语言也提供完整的、普遍深入的安全服务,以确保未经授权的用户不能 访问机器上的资源,并且代码不会执行未经允许的动作。这就提高了系统整体的安全性 可靠性。由于运行语言用于装入代码、生成对象、执行方法调用,所以当受控代码装 入内存、执行时,运行语言能进行安全检查,强化安全策略 Microsft NET框架不仅规定代码访问安全,还规定基于角色的安全。通过代码访
具或特定于语言的方法。 类型系统的主要设计目的是使多种语言能深度集成。用一种语言所写的代码能继承 用另一种语言所写的类的实现,用一种语言所写的代码抛出的异常能被用另一种语言写 的代码捕获,象调试和剖析之类的操作会在完全封闭下工作,而不用考虑代码所用的语 言。这就意味着编写可重用类库的开发者,不再需要为每一种编程语言或编译器生成一 个版本,并且使用类库的开发者不再受到为他们使用的编程语言开发的库的限制。 自描述组件――现在 MicroSoft .NET 框架上已成为可能――简化了开发和配制, 并提高了系统的可靠性。许多由运行语言提供的服务是由元数据及用于补充可执行代码 的信息所驱动。因为所有的信息都储存在一起,只有可执行的(代码)才被称为自描述 组件。 自描述组件的一个主要优点是,使用它们并不需要其它文件。类的定义不需要单独 的头文件;通过检查元数据对类的定义可以从组件自身获得。跨语言或过程边界访问组 件并不需要各自的 IDL 文件、类型文件或 proxy/stubs;所必需的信息已存在于元数据 之中。为识别开发者请示的服务属性,并不需要展开各自的配制信息。 最主要的是, 由于元数据是在编译过程中由源代码生成,并与可执行代码储存在一起,它将永远和可 执行部分同步。 除了改善对单个组件的配制,Microsft .NET 框架定义了一个应用程序配制模板, 以解决定置应用程序安装和 DLL 版本化(通常被称为“DLL Hell”)这一复杂过程的问 题,运行语言提供了支持这个模板的服务。 Microsft .NET 框架 引入了组合体的概念。一个组合体是一组资源和类型,并包括 有关这些资源和类型的元数据,也就是被作为一个单元配制的。元数据被称为组合体的 名单,它包含象类型和资源表之类能被组合体外看得见的信息,这个名单也包括有关从 属关系之类的信息,例如组合体建立时的版本号。开发人员可以指定版本策略,以指示 运行语言是否装入系统上已安装的依赖于组合体的最新版本,装入一指定版本,或在编 译时使用的版本。 某软件组件的多个拷贝总可以存在于同样的操作系统上,然而,通常说来,只有其 中的一个拷贝能被操作系统注册、调入内存、执行。对系统来说,定位和调入内存的策 略是全局性。.NET Framework Common Language Runtime 增加了所必须的体系架构以 支持管理组件定位和调入的每个应用程序策略,这通常被称为并行配制。 组合体可以被一个应用程序私有,或被多个应用程序共享。一个组合体的多个版本 可以同时配制在同一台机器上。应用程序配制信息定义了到何处去查找组合体,这样 runtime 就能为同时运行的两个不同的应用程序装入同一组合体的不同版本。这就消除 了由组件版本的不兼容性引起的问题,提高了系统整体的稳定性。如果必要,如果必要, 管理员可以为配制时刻的组合体增加配制信息,例如一个不同的版本策略,但是编译时 提供的原始信息永远不会丢失。 因为组合体是自描述的,所以并不需要在系统上进行显式注册。应用程序的配制简 单到只需将文件拷贝到目录中既可(如果为了使应用程序能够运行,必须安装未经组织 过的组件的话,情况会稍微复杂一点)。配制信息保存在可被任何文本编辑器编辑的 XML 文件中。 最后,运行语言也提供完整的、普遍深入的安全服务,以确保未经授权的用户不能 访问机器上的资源,并且代码不会执行未经允许的动作。这就提高了系统整体的安全性 可靠性。 由于运行语言用于装入代码、生成对象、执行方法调用,所以当受控代码装 入内存、执行时,运行语言能进行安全检查,强化安全策略。 Microsft .NET 框架不仅规定代码访问安全,还规定基于角色的安全。通过代码访