Web 服务全球化模型

Comments

针对的读者


由于本文陈述了 Web 服务体系结构的全球化需求,并介绍了建立在全球化体系结构上的相应高级体系结构,所以,对于那些有兴趣为 Web 服务体系结构的实现提供全球化解决方案的读者来说,本文是一个好的出发点。

全球化体系结构


全球化,作为一个全球化系统的设计和执行,不是某个功能。它是一种体系结构。为了在全球市场中取得成功,IBM 必须为支持全球电子商务定义所需的体系结构,并且集中精力使开发的技术能够提供全球化所需要的关键能力。

采用全球化体系结构可以带来许多好处,包括:

  • 一台服务器就能够支持以多种语言表示的应用程序,从而减少了在全球范围内开发、部署和提供应用程序所需的成本和时间。
  • 能以装入级别和装入资源,而不是语言支持需求为基础,设计服务器部署。
  • 同一版本和补丁级别的产品能在世界范围的服务器上使用,因而降低了支持、维护和培训的费用。
  • 每个产品都以一致的符合既定工业标准的方式处理数据(例如:整理,日期/时间格式),这样,建立在这些产品上的解决方案就能确保一致的处理方式。

IBM 电子商务全球化体系结构有五种相关基础需求,如 图 1所示。

IBM 全球化体系结构
IBM 全球化体系结构

单一可执行文件


拥有 单一可执行文件意味着一个支持所有语言、国家或地区的程序代码库。为此必须开发相应的软件程序,使单一可执行文件能够处理所要支持的所有国家或地区的文化需要。这样,与文化和语言无关的程序代码库在运行时调用与文化和语言有关的信息,从而大大减少了花费的成本和精力,同时简化了过程。

在五种需求中,单一可执行文件是最重要的一种。这是确保全球系统能被正确有效地设计、构建和维护的关键需求。

语言环境模型


由于单一可执行文件要求单个程序代码库支持所有的语言,所以程序代码库需要知道自己应该提供哪种语言。这方面的信息来自 语言环境(locale)概念。在英语中, locale一词指的是发生或发生过某些事件的场所。而在全球化中,一般来说,指的是一种语言和一个国家或地区。举例来说,en_US 代表美国的英语,ja_JP 代表日本的日语,fr_FR 代表法国的法语。有时候还会需要更明确的信息。例如,在德国,至少存在两种排序文本数据的方法 - 光有 de_DE 是不够的。要么使用一个语言环境变量(类似当前的 JDK 模型 de_DE_Traditional),要么使用一个语言环境关键字查询(比如 OpenI18N 语言环境命名约定,de_DE@collation=Traditional),这两种方法都常被用来完成该工作。

图 2说明在一个简单的典型方案中,语言环境模型和单一可执行文件怎样一起工作以提供一个全球化解决方案:

单一可执行文件和语言环境模型
单一可执行文件和语言环境模型
  • 有三个客户。他们分别来自美国、日本和法国,他们的首选语言分别是英语(美国)、日语(日本)和法语(法国)。
  • 应用程序建立在一个 单一可执行文件基础上,并且根据客户的文化首选项检索后端数据。
  • 后端数据系统建立在一个 语言环境模型的基础上 - 即一个根据“服务于全球化应用程序的语言环境信息”分类的数据系统。
  • 以下是典型的数据流:
    • 应用程序从客户处获取请求和 语言环境信息。
    • 单一可执行文件语言环境信息传递给后端数据系统。
    • 后端数据系统找到正确的数据,并将其发送回 单一可执行文件。
    • 单一可执行文件将数据返还给客户。

这样,就满足了客户的文化首选项。

多语种数据


由于单一可执行文件支持所有语言,它需要一个编码系统,能够为每个字符提供一个唯一的编号,不论是何种平台、程序或语言。(编码系统是一种将编号分配给个别的字符以使计算机能处理这些字符的方法。)因此发展了 Unicode(请参阅 参考资料)来定义这种编码系统。Unicode 通过提供一个的单一一致的“字符至数字”的映射模式,能够表示世界上每一个字符;Unicode 使应用程序能够提供多语种支持。

本地化包


因为拥有单一可执行文件意味着有且仅有一个用于多种语言环境的可执行文件,所以必须有一种标准化的方法(称为 本地化包),用来处理特定于语言环境的程序数据的不同集合。有两种本地化包: 与应用程序有关的- 如菜单、对话框和其它用户界面元素 - 和 与应用程序无关的- 如整理表、字译规则和日期时间元素名称。 本地化包管理器是管理定位、装入和访问本地化包资源的模块。 图 3说明了它们的关系。

本地化包和本地化包管理器
本地化包和本地化包管理器

一个非常简单的示例有助于说明这个概念。在一个应用程序中,一个键( msg1)同一个字符串值( Hello)相关联。因为需要很多种语言版本,所以可以创建相应的本地化包,如 图 4所示。

hello 消息的本地化包

多语种数据的输入和输出


全球化还需要使用键盘、鼠标等设备以不同语言输入文本,并通过屏幕或打印机正确显示那些语言文本的能力。通过使用语言服务,最终用户能够使用像语音输入这样更人性化的友好的界面。一般来说,这些功能将由操作系统支持。通常应用程序不需要直接处理这方面的问题。

Web 服务全球化模型


Web 服务是使动态电子商务成为可能的开放标准,就好像 TCP/IP 对于因特网(Internet),HTTP 对于万维网(World Wide Web)一样。使用 Web 服务的动态电子商务应用程序将在开放网络上运行并能到达世界各地。Web 服务需要能够支持全球动态电子商务。为了满足这种需要,必须将前面所介绍的全球化体系结构的基础元素应用于 Web 服务中。

Web 服务变化很快 - 不仅其标准,其技术也是这样。这一节只对其基础体系结构做一个简要的介绍。

Web 服务中的全球化如 图 5 所示。统一描述、发现和集成(UDDI)作为描述和启用 Web 服务发现的基于标准的规范,通过 xml: lang= .... 属性提供了一个多语种业务描述。Web 服务描述语言(WSDL)作为描述服务接口的语言,由于其仅为服务提供者和服务请求者处理物理绑定,所以是与全球化无关的。SOAP 协议被用于在 Web 服务系统中发送和接收数据,并使用 XML “承载”数据,而这些 XML 都是用 Unicode 表示的。(由 W3C 定义,SOAP 是一个旨在在分散的分布式环境中交换结构化信息的轻量型协议。请参阅 参考资料以获取更多信息。)要在 Web 服务系统中运行全球化业务,服务提供者和服务请求者都需要如 图 1所示,采用 IBM 基础全球化体系结构启用全球化。

全球化 Web 服务体系结构
全球化 Web 服务体系结构

全球化 Web 服务系统的基础元素同全球化应用程序的基础元素是相同的。

单一可执行文件


一个 Web 服务系统包含了运行在许多机器上的许多程序。要部署一个全球化 Web 服务,系统中的每一个程序,包含服务本身的实现,都需要严格遵守“单一可执行文件”策略。正如单一可执行文件是全球化应用程序的基础,它也是全球化 Web 服务系统的基础。

语言环境模型


在全球化 Web 服务体系结构中,这是最需要注意的需求。要确保用于 Web 服务系统的语言环境模型有效,传送最终用户语言环境信息的方法必须是一致而且标准化的,这样信息才能正确地通过一系列服务提供者。(语言环境的定义采用 RFC 1766,这是一个为语言标识定义标记的因特网标准。在国家或地区代码方面,它采用 ISO 3166;在语言代码方面,它采用 ISO 639。目前 IBM 已开始着手于将最终用户语言环境定义放在 SOAP 头中的工作。)这里有一个可能出现的情形:一个旅行社服务从最终用户处获取一个请求,然后为这个最终用户联系航班服务。航班服务必须根据最终用户的文化首选项(如日期和时间表示、货币表示以及度量表示等)返回订票信息。

有几种不同的实现方法可用于实现全球化环境中的 Web 服务。 然而,其基本工作模式都是类似的:

  • 使用 UDDI 发布一个多语种业务:
    • 定义一个多语种业务。
    • 发布一个多语种业务:
    • 查找一个多语种业务。
  • 使用 SOAP 实现多语种业务:
    • 准备多语种环境。
    • 实现多语种 Web 服务:
      • 服务提供者必须提供一个带有语言环境信息的接口以支持多语种业务操作。(目前在 SOAP 中还没有标准可用于交流语言环境/语言的信息。一旦出现这样的标准您马上就可以转而使用该标准。)
      • 服务请求者通常:
        • 确定用户的首选语言。
        • 调用支持多语种的服务提供者并传递用户的语言首选项。
        • 向用户返回以这种指定的语言表示的结果。

多语种数据


SOAP 使用 XML 来“承载”数据,因此与平台和编程语言无关。所以,在 Web 服务中交换的数据都是用 XML 表示的,而 XML 则全部用 Unicode(而 Unicode 又是多语种数据的关键)表示。这意味着该标准可以保证对多语种的支持。

XML 也有一些标记,如 lang ,用于标示某些字段,以表明语言上有意义的信息(如描述)的语言设置。因此,Web 服务实际上重新加强了全球化的数据表示。 图 6展示了一个示例:

多语种业务描述
多语种业务描述


正如单一可执行文件需求一样,本地化包需求也适用于构成 Web 服务体系结构的所有程序。该元素对 Web 服务来说,和在普通应用程序中的作用是相同的。请参阅 图 7:一家准备在 Web 服务系统中提供多语种服务的航空公司。

服务提供者的本地化包
服务提供者的本地化包

多语种数据的输入和输出


在一个 Web 服务系统中对于输入和输出没有什么特殊的需求,因为通常该元素是由操作系统或别的程序处理的,且不直接向用户表示。

结束语


全球化体系结构的基本需求有:单一可执行文件、语言环境模型、多语种数据、本地化包和多语种数据的输入和输出,这些需求在考虑 Web 服务体系结构中的全球化解决方案时都可以得到应用。Web 服务变化很快且有着广泛的应用领域。本文仅说明了 Web 服务中全球化的基础。


相关主题


评论

添加或订阅评论,请先登录注册

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=SOA and web services
ArticleID=22149
ArticleTitle=Web 服务全球化模型
publish-date=07012003