Download PDF version of this article PDF

开放 Web 服务架构

网络服务的核心在于 Web 服务。

Stans Kleijnen 和 Srikanth Raju,Sun Microsystems

网络服务的核心在于 Web 服务——精密的网络软件,旨在通过我们选择的任何设备,在我们需要的任何时候为我们提供所需的服务。我们正逐渐接近这个理想,因为近年来,客户端/服务器模型已经演变为基于 Web 的计算,而现在正进一步演变为 Web 服务模型(见图 1)。在本文中,我将讨论 Sun Microsystems 对 Web 服务的理解,特别是 Sun ONE:一个开放的、基于标准的 Web 服务框架。我将与您分享 Sun 在 Web 服务方面的决策依据,并讨论我们正在前进的方向。

开发人员在开始编写 Web 服务时,最基本的问题之一是——使用哪种语言?虽然可以使用包括 Perl、Fortran 等任何语言编写 Web 服务,但我们坚信 Java™ 编程语言是最合适的,因为它能够从最小的 JavaCards 扩展到强大的企业版。[稍后将讨论 Java 平台与其他平台的更多比较]。借助 Java 平台,程序员可以轻松定义操作,并将该逻辑放置在几乎任何计算机系统上,而无需考虑底层硬件架构或操作系统——这在多样化的 Web 服务世界中是一个明显的优势。

一个复杂的基于 Java 的分布式企业应用程序通常会使用 Java 2 企业版 (J2EE),所有数据都安全地保存在目录服务器中,业务逻辑在应用服务器中实现,而表示逻辑则在 Web 服务器中实现和公开(见图 2)。在客户端,基于桌面的 Java 客户端将使用 Java 2 标准版 (J2SE),而无线客户端将使用 Java 2 微型版 (J2ME)。

全球范围内,复杂的系统已经建立在 Java 2 平台之上。巴西国家医疗保健系统已经部署了一个基于 Java 的解决方案,服务于 20,000 家诊所,覆盖超过 1200 万患者。这些应用程序运行在 E10K 服务器上,使用了精密的基于 Java 的安全实现。信息通过医院、诊所和药房的区域服务器层级进行传输。每一次患者与临床医生的互动都会记录在系统中,包括 X 射线、心电图、内窥镜视频检查和处方信息。一些数据是手动输入的,但大部分是直接从仪器流式传输的。这个经济高效的系统已经多次收回成本。由于医生可以通过患者医疗 ID 卡访问所有患者信息,药物欺诈几乎被消除。现有基础设施正在升级,以使用 JavaCards 替换此 ID 卡。另一项当前的举措是用支持 J2ME 的手机和无线 PDA 替换非桌面材料。由于该应用程序从一开始就使用 Java 平台进行架构设计,因此它非常适合使用 Web 服务进行改进,以及使用 J2ME 和基于 JavaCard 的 API 进行许多其他客户端技术改进。

一项重要的新功能是应用程序验证工具包,它可以验证使用 J2EE 标准的应用程序是否会因专有扩展而受阻,从而无法实现平台可移植性。任何人都可以下载 Java 平台的应用程序编程接口和源代码;迄今为止,感兴趣的公司和开发人员已下载近五百万次。这种开放性促进了创新和生产力的提高,因为开发人员可以从内到外地学习 Java 平台。图 3 说明了容器中的 J2EE 如何支持 Web 服务开发。如图所示,J2EE 平台现在标配了交付和集成层的接口。图中所示的标准被命名为“Java API for XML <something>”。以下是比图中更完整的列表


JAX-RPC 使用 SOAP 的 RPC 编程
JAXM 使用 JMS 的面向消息的中间件
JAXB 将 XML 消息的内容绑定到 Java Bean 的方法
JAXP 使用 SAX 或 DOM 处理 XML 消息的底层内容
JAXR 访问 UDDI 或 ebXML 注册中心以发布或发现服务。
JMS Java 消息服务。
JDBC Java 数据库访问 API

图 4 说明了如何在 Web 服务中使用这些技术。在此图中,开发人员工具正在访问 UDDI 注册中心,以查看有哪些服务可用。注册中心可以是公共的或私有的企业注册中心。该工具通过以 SOAP 协议发送 XML 消息来浏览注册中心。注册中心内是可用服务的描述,其中以 WSDL 编写的条目描述了服务和接口。Web 服务通常由组件构建,例如封装在 XML/SOAP 中的 Enterprise Java Bean (EJB) 组件,或者它可以是带有 XML/SOAP 封装器的遗留应用程序。在不久的将来,遗留案例可能会成为最流行的 Web 服务。

图 1

图 2

图 3

图 4

Sun ONE:一个开放的、基于标准的 Web 服务框架

为了满足安全、始终在线、任务关键型和特定任务的服务需求,即按需服务,服务必须提供比天气或交通信息等简单、特定功能更多的东西。当服务结合和重新结合以自发地满足用户需求时,真正的优势才会显现。按需服务代表了技术的连续统一体,如图 5 所示。今天,我们拥有用于基本 Web 服务的新兴基础设施,这些基础设施在应用程序之间提供松散耦合的集成。未来,我们将通过普遍存在的身份和上下文感知来增强 Web 服务,并引入额外的基于服务的技术,例如用于动态配置系统的 Jini 和用于对等和网格计算的 JXTA。

图 5

Sun ONE 是一个开放框架,它支持当今的 Web 服务,并为未来奠定基础。它提供了一个全面的、基于标准的、可集成的计算模型,使组织能够创建和部署按需服务。图 6 说明了 Sun ONE 架构。图的下半部分描述了操作系统、硬件、存储和网络平台,其中包括用于定义用户、订阅者、组织和策略的目录技术。上半部分描述了用于创建、组装、部署和测试服务的工具。中心是 Web 应用程序程序员熟悉的三个层:表示层、业务层和后端数据访问逻辑层。表示层是门户服务器关注的重点,它将服务交付到任何设备,聚合内容,并提供安全性、个性化和知识管理。我们还在服务交付框中包含了将 Java 应用程序交付到移动设备的能力,以及用于快速开发 Web 应用程序和服务的应用程序框架。

图 6

服务容器是 Web 服务运行的地方,通常是 J2EE 应用程序服务器。在服务容器内部,企业可以构建或购买预构建的 Web 服务,这些服务通常由现有的商业或通信应用程序托管。这些服务和服务容器共同处理业务逻辑。服务集成是关于与其他企业、遗留应用程序、数据库和面向消息的中间件集成。

通用服务堆栈映射到集成的、基于产品的堆栈或集成堆栈(见图 7),它完善了下一代按需服务的创建、部署和访问的整体框架。Sun ONE 平台由许多行业标准组成,如图 8 所示。请注意,以斜体显示的标准尚未完成。

图 7

图 8

20 多年来,Sun 一直是开放标准社区的领导者。许多流行的互联网标准,如 TCP/IP、Java、XML 和 LDAP,都是由 Sun 发明或共同发明的,或者我们是早期的采用者和传播者。20 年前,Sun 是第一家在出厂的每台机器中都包含集成 TCP/IP 堆栈的供应商。这在 1982 年是激进的,但现在看起来很明显。

使用 Sun ONE 构建 Web 服务

2002 年 10 月,Sun 推出了 Sun ONE 应用程序服务器 7.0 版本。作为 Sun ONE 平台的关键组成部分,它与新的 Sun ONE Studio for Java 2 企业版 4.1 Web 服务工具集紧密集成。Sun 还推出了一种新的商业模式,为所有领先平台上的企业和独立软件供应商 (ISV) 免费提供核心版本(平台版)。凭借其新的模块化架构,应用程序服务器增加了选项,以及在快速构建和部署 Sun ONE Java Web 服务方面的投资回报率 (ROI)。

Solaris 9 平台增加了数百个功能,使其成为运行 Sun ONE 的最佳平台之一。Sun ONE 目录服务器已嵌入到 Solaris 9 中(目录在操作系统安装期间可选安装),并且应用程序服务器正在嵌入过程中。Solaris 现在可以利用 LDAP 服务,并最终将用户从 NIS 和 NIS+ 系统迁移出来。此外,第一个完全集成的 Sun ONE 平台,称为 Sun ONE 开发人员平台,现已推出技术预览版。它与 Sun ONE 应用程序服务器 7.0 捆绑在一起,还包括目录服务器、身份服务器、UDDI 注册中心产品以及 Portal Server 6.0 的新版本。Sun ONE 平台在 10 个步骤中设计和构建 Web 服务

1. Sun ONE Studio IDE 使用其 Web 服务插件和 Java Web Service Developer Pack (JWSDP) 创建和部署 Web 服务。IDE

2. 在 IDE 中,可以将应用程序创建并部署为会话 EJB 组件到 Sun ONE 应用程序服务器。然后,可以创建 Web 服务封装器并将其部署到 SOAP 服务器,该服务器可以充当 EJB 服务的外观模式。

3. Web 服务 WSDL 是从 IDE 中生成的。

4. WSDL 发布到 UDDI 注册中心,稍后可以浏览该注册中心。

5. 从 GUI 客户端,可以调用 Web 服务的访问方法。

6. 可以从 SOAP 标头中提取用户凭据,并用于透明地验证用户身份和授权用户。Web 服务挂钩(SOAP 标头处理器)可用于身份验证和授权。这使得可以使用几乎任何安全产品或方案来管理访问和策略。

7. 当 SOAP 请求标头被处理时,它会触发计量和监控 Web 服务。当服务调用完成时,会向客户端发送信号,该信号可用于统计测量,例如经过的时间。

8. 大部分 Web 服务功能可以通过 Sun ONE Integration Server 启用和扩展,该服务器由设计时和运行时组件和工具组成。使用图形界面,Web 服务开发人员可以重用现有基础设施来创建新的 Web 服务。Sun ONE Integration Server 的核心是一个强大的流程引擎,它可以管理超过一百万个运行时业务流程的流程执行和状态。

9. Sun ONE Directory Server, Access Management Edition 可用于提供目录服务,以验证用户身份验证和授权凭据以及访问策略。该软件提供基于策略的授权,结合基于角色的身份验证,并且可以与 Sun ONE Portal Server 结合使用以创建分段的用户社区。

10. 可以将即将发布的 Sun ONE Identity Server 版本与 Liberty Project 实现(在下一节中讨论)一起使用,以实现单点登录和联合身份及安全管理。

Web 服务采用的阶段

商业组织可能会采取分阶段的方法来采用 Web 服务,如表 1 所示。今天,在第一阶段,我们拥有 Web 和应用服务器,以及足够的 Web 服务标准来构建和部署基本 Web 服务。(请注意,Sun ONE Integration Server 早在“Web 服务”这个术语被创造出来之前就一直在使用 XML Web 服务。)

表 1

第一阶段
Web 应用程序和基本 XML 服务基础设施
第二阶段
用于企业内部集成的 Web 服务,包括 B2E 和企业管理的双边 B2B
第三阶段
从企业外部扩展的 Web 服务,用于动态 B2C 和 B2B

第二阶段的准备工作几乎完成,开始了 Web 服务在企业集成中的严肃应用。在此阶段,企业仍然施加严格的控制。用户(例如员工和业务合作伙伴)在企业目录中定义,而不是动态发现。企业连接到已建立的业务合作伙伴,这些合作伙伴就使用哪些 Web 服务以及期望的服务级别达成一致。在此阶段,我们开始在 Solaris 9 中启用一些中间件,将 Java 标准引入 Web 服务世界,并提供用于创建、组装和部署 Web 服务的新工具。我们还有一个基于 Sun ONE Directory Server 构建的 UDDI 注册中心产品,该产品也已启用 Liberty Alliance Project 的联合身份标准。

Liberty Alliance Project 由 Sun 和其他行业参与者发起,旨在为开放模型创建标准,在该模型中,多个身份提供商竞争存储部分用户身份信息。网络身份不仅包括用户名和密码,还包括政府颁发的 ID、视网膜扫描等生物识别信息以及上下文类型的信息,例如您业务日历中的空闲预约、偏好、教育历史和财务记录。Liberty 的联合方法允许多个身份方案互操作。例如,AOL 有自己的身份方案,内部称为魔毯。这 3500 万个魔毯条目可以与 Liberty 互操作。表 2 列出了一些支持身份验证的 Sun ONE 平台产品。

表 2

目录服务器

  • LDAP 目录
  • XML, DSML2, LDAPv3
  • 大规模、高性能、复制
  • 多平台支持
  • LDAP 代理(作为目录代理服务器的单独软件包)

身份服务器

  • Web SSO
  • 身份验证、授权、审计
  • 联合身份、隐私
  • 自助管理/注册、集中式

元目录

  • 跨数据库、应用程序和目录发布、同步、联接
  • 配置帐户
  • AD、Oracle、NT 域的连接器

证书服务器

  • 创建/发布/吊销 X.509v3 证书
  • PKCS 标准合规性
  • 注册/证书颁发机构
  • OCSP
  • FIPS 合规性

Liberty Alliance 拥有 80 多个成员,代表两种类型的组织:技术提供商,如 Sun、HP、Nokia 和 VeriSign;以及拥有大型用户数据库的公司,如 United 和 American Airlines、主要信用卡公司、大型金融机构以及许多大型无线电话服务提供商,如 Vodafone。这些公司共同拥有超过 20 亿个受信任的用户关系。

ebXML

在第三阶段,最终阶段,客户和业务合作伙伴将动态地查找和开展业务。要达到这个阶段,需要两项关键技术:联合身份服务(如 Liberty Alliance 提供的)和使用真实世界 B2B 标准(如 ebXML)设计的公共服务注册中心。在此阶段,预计将完成公共版本的 UDDI 注册中心服务器、联合服务的规范和可用性以及 ebXML 路线图。

ebXML 标准化工作的目标——由两个联合国组织推动:结构化信息标准促进组织 (OASIS) 和联合国贸易便利化和电子业务中心 (UN/CEFACT),以及超过 2,000 名成员——是构建一个开放的市场框架,任何规模的企业都可以参与全球电子市场。

有人问,当我们已经拥有 SOAP、WSDL 和 UDDI 时,为什么还需要更多的标准。但这些标准并没有提供临时电子业务交易所需的一切。从功能角度来看,最接近 ebXML 的是旧的电子数据接口 (EDI),但对于许多较小的商业组织来说,它太重了。ebXML 标准化了购买、订购、运输和付款等业务流程,因此它们可以由机器执行,而无需手动预配置。它还允许业务合作伙伴在其消息传递中选择服务质量。安全和高度可靠的消息传递在许多业务交易中至关重要,例如订购价值 5 亿美元的韩国商品,或执行 10,000 股 Sun Microsystems 股票的购买订单。基本的 SOAP 并未解决这些安全性和可靠性要求。Sun ONE 平台很快将推出面向小型企业的 ebXML 设备。图 9 说明了行业中 ebXML 标准的 B2B 用例场景,其中发生以下情况

1. 公司 A 检查 ebXML 注册中心,以查看定义了哪些类型的业务流程。

2. 一旦找到所需的业务流程(例如“采购订单”),它就会构建和部署自己的应用程序,该应用程序捕获该业务流程的语义。

3. 公司 A 向 ebXML 注册中心提交其业务概况,其中描述了其业务流程及其 ebXML 功能和约束。

4. 公司 B 在 ebXML 注册中心中发现公司 A 支持的业务流程。

5. 公司 B 表示有兴趣与公司 A 进行业务交易。

图 9

Web 服务的不同方法

似乎每家主要的科技公司都有 Web 服务架构。虽然在 XML、UDDI 和 SOAP 等标准方面存在一些共同点,但也存在重要的差异——最显著的是 Java 平台和 Microsoft .NET 之间的差异。一方面,我们有一个开放的、行业范围的社区,他们共同努力,通过兼容的、厂商中立的技术不断扩展网络的潜力。Java 平台的应用程序编程接口以及源代码可通过下载供任何人使用。迄今为止,感兴趣的公司和开发人员已下载了 Java 平台的所有 API 和源代码近 500 万次。这种开放性使开发人员可以从内部学习 Java 平台,并使他们能够更快地提高生产力。它还促进了创新,因为开发人员实际上可以看到决定软件工作原理的源代码。

下表(表 3)总结了使用 Java 平台构建 Web 服务与使用 .NET 平台构建 Web 服务之间的差异。

表 3

功能
J2EE
.NET
技术类型
标准
产品
中间件供应商
30+
Microsoft
解释器
JRE
CLR
动态网页
JSP™
ASP.NET
中间层组件
EJB
.NET 托管组件
数据库访问
JDBC, SQL/J
ADO.NET
SOAP, WSDL, UDDI

隐式中间件(负载均衡等)

无线 Web 服务

除了 J2EE 上述所有优势之外,未来最重要的市场之一是无线市场,在这个市场中,来自诺基亚、爱立信、摩托罗拉、夏普等手机制造商的支持 Java 技术的设备正在被 Nextel、NTT Docomo 和 LG Telecom 等主要运营商部署。更多部署和手机型号将在不久后公布。这个市场非常庞大,在未来 2 或 3 年内将有大约 10 亿部支持 Java 的手机上市,这些设备——手机、寻呼机、PDA、汽车系统都在加入传统的客户端、个人电脑,进入互联网。它们代表着新的平台——始终在线,始终伴随您——为网络应用程序和服务开辟了激动人心的新机遇。

随着个人电脑以外的广泛选择,个人将使用当时最方便的设备——这意味着开发人员需要设计他们的服务,以便以各种形式交付。Java 技术促进了这种新的使用模式,因为它提供了唯一的开放、跨平台和跨设备的应用程序和服务平台。

最后,这里的关键是互操作性——没有互操作性,Web 服务将无法工作。借助 Java——实际上,借助整个 Sun ONE,这要归功于开放的、可集成的设计——用户可以自由选择最适合其需求的产品。

STANS KLEIJNEN 是 Sun Microsystems, Inc. 的市场开发工程副总裁。

SRIKANTH RAJU 是 Sun/Microsystems 的高级工程师/技术传播者。

acmqueue

最初发表于 Queue vol. 1, no. 1
数字图书馆 中评论本文





更多相关文章

Niklas Blum, Serge Lachapelle, Harald Alvestrand - WebRTC - 面向开放 Web 平台的实时通信
在当前的疫情时期,世界比以往任何时候都更依赖于基于互联网的 RTC(实时通信)。过去十年中,RTC 产品的数量呈爆炸式增长,这很大程度上是由于更便宜的高速网络接入和更强大的设备,但也归功于一个名为 WebRTC 的开放、免版税平台。WebRTC 正在从实现有用的体验发展到成为至关重要的工具,使数十亿人能够继续工作和学习,并在疫情期间保持重要的人际交往。WebRTC 未来的机遇和影响确实令人着迷。


Benjamin Treynor Sloss, Shylaja Nukala, Vivek Rau - 重要的指标
衡量您的站点可靠性指标,设定正确的目标,并努力准确地衡量这些指标。然后,您会发现您的服务运行得更好,中断次数更少,用户采用率也更高。


Silvia Esparrachiari, Tanya Reilly, Ashleigh Rentz - 跟踪和控制微服务依赖关系
如果您曾将钥匙锁在家中或车内,您就会熟悉依赖循环。您无法在没有钥匙的情况下打开锁,但您无法在不打开锁的情况下拿到钥匙。有些循环是显而易见的,但更复杂的依赖循环可能很难在它们导致中断之前找到。跟踪和控制依赖关系的策略对于维护可靠的系统是必要的。


Diptanu Gon Choudhury, Timothy Perrett - 为互联网规模的服务设计集群调度器
希望构建调度系统的工程师应考虑他们使用的底层基础设施的所有故障模式,并考虑调度系统的运营商如何在排除故障期间配置补救策略,同时帮助租户系统尽可能保持稳定,这由租户系统的所有者负责。





© 保留所有权利。

© . All rights reserved.