Sun ONE 白皮书


(来源:http://www.sun.com.cn)

SunTM开放式网络环境

(SunTM Open Net Environment)

(即Sun ONE)白皮书

SunTM开放式网络环境(Sun ONE)软件体系结构

1、介绍

互联网对用户的期望产生深远的影响。不久前,计算机用户是高度训练有素的个体,即公司把用户培训成了若干个特定应用领域的行家。但Web用户却完全不同,公司承受不了培训Web用户的负担。因此,Web应用必须凭直觉。更准确地讲,Web应用须是看不见的。Web用户只使用Web收发电子邮件、查找目录、支付帐单、审批支出请求等等,但不需要查看这些应用是如何执行的。用户只使用可从Web获得的服务。他们需要通过台式系统、PDA、移动电话和车载计算机等多种客户机设备,取得这些服务。更有甚者,用户希望这些服务能够理解各种背景情况,并对此作出不同的反应。譬如,我是身份是什么?我在什么地方?现在是什么时间?我是以一个雇员还是一个个体的身份给予反应?等等。

用户的上述新期望,促使公司改变了创建应用系统的方式。他们不再创建那种大而全的应用系统,转而着手采用面向服务的应用设计创建应用程序。应用软件被分割成规模较小、数量较多的模块化应用部件或服务,它们是应用软件的有机组成部分。这些应用服务使用的基础设施软件,也被分解成了独立的系统服务。所有这些独立的系统服务,都可以跨越连接互联网的任何数量的物理机器实现部署。此种模块化服务模式,在系统设计上为公司提供了巨大的灵活性。通过把少量的服务重新汇编成一种新配置,公司就可以创建新的商务服务。

2、服务

一种应用服务代表了某种类型的用户或商务活动,例如阅读电子邮件,接收股市报价、授权赊购业务和购物等。而系统服务代表系统基础设施和管理功能、例如存储、安全、交易、信息传递、故障克服等。

服务具有下列特点:

  • 服务提供了一个可通过另一程序调用的接口。

  • 服务可通过服务注册器进行注册和定位。

    面向服务的系统并非是个新概念。面向服务的流行系统包括ONC RPC、DCE、COM、CORBA、RMI和Jini?技术。尽管所有这些系统都有许多可圈可点的优势,但它们均需要专用协议实现通信。COM客户机须使用COM协议,与COM服务执行通信,而Jini客户机须使用Jini协议与Jini服务实现交互。令人遗憾的是,这些专用协议在Web上不流行,而且防火墙往往又为通信设置了障碍。正是在这种背景条件下,一种面向服务的新型系统应运而生:即Web服务。

    3、Web服务

    一种Web服务代表商务、应用或系统功能的统一,可以通过Web接入。Web服务适用于任何类型的Web环境,无论是互联网、内联网还是外联网,重点是企业对消费者、企业对企业、部门对部门或同事对同事的通信。Web服务消费者可以是通过台式或无线浏览器接入服务的个人,也可以是应用程序,还可以是另一个Web服务。

    Web服务具有下列特点:

  • Web服务可以通过Web接入;

  • Web服务提供一个XML接口;

  • Web服务通过Web服务注册器进行注册和定位;

  • Web服务使用XML信息,通过标准Web协议实现通信;

  • Web服务支持系统间的松散耦合连接。

  • 恐怕Web服务最令人感兴趣的是,不管使用哪种技术创建它们都无关紧要。因为Web服务使用XML接口和XML信息,通过标准Web协议执行通信,而且所有的Web服务环境都具有互操作特性,至少在理论上是如此。

    4、商家需求

    自从1994年Web问世以来,商家就一直采用互联网密切他们与股东、员工、客户以及伙伴间的关系。他们使用互联网实现供应链自动化,改善商务过程的效益。电子商务再也不是未来的发展方向,而是成为了一种规范。如今,商家感兴趣的是Web服务的互联网计算模式,它预期可以实现更优异的跨行业集成,改进效率,密切客户关系。

    但为使Web服务模式适合用户的胃口,商家必须能够利用现有应用资源,并把它们用于Web服务。商家需要工具和技术,以便减少转向此种新模式的成本、风险和复杂性。

    5、Web服务技术

    当前,已开始出现了一系列支持Web服务的技术,处于领先地位的技术包括UDDI、WSDL、SOAP和ebXML。虽然这些技术马上以支持产品的形式出现,但它们会很快日臻成熟的。

  • UDDI(Universal Description Discovery and Interoperability:通用描述发现与互操作)是一个由Accenture、Ariba、Commerce One、康柏、Edifecs、富士、惠普、I2、IBM、英特尔、微软、Oracle、SAP、Sun和VeriSign等公司为首而成立的业界联盟组织,现在已有130多家公司加入。该组织旨在为UDDI Business Registry通用Web商务目录,制定相关技术规范。截止发稿为止,UDDI V1技术规范已经出台,UDDI Business Registry也正在执行beta测试。Ariba、IBM和微软联合运行UDDI Business Registry。IBM已通过其developerWorks Open Source Zone,发布了适用于Java?技术开发工具箱的开放型源UDDI技术。

  • WSDL(Web Services Description Language:Web服务描述语言)是由Ariba、IBM和微软开发的技术,其宗旨是为描述Web服务制定的通用XML框架。迄今为止,IBM已通过其alphaWorks发布了 面向Java技术开发工具箱的WSDL技术。

  • SOAP(Simple Object Access Protocol:简单对象访问协议)是由DevelopMentor、IBM、Lotus、微软和Userland等公司开发的技术。SOAP提供了一种可扩展XML信息传递协议,并支持RPC编程模式。许多SOAP的执行方案已经面世,最受青睐的两个方案是Apache软件基金会的开放式源Java技术执行方案和微软在.NET SDK的执行方案。尽管两个方案之间的互操作问题依然困挠着开发人员,但其性能还是相当稳定的。

  • 惠普和微软已开发了SOAP的扩展型技术,名为SOAP Messages with Attachments。微软的BizTalk Server 2000采用了SOAP Messages with Attachments,因此该项技术包含在一个支持性产品中。最近,W3C(World Wide Web联盟)成立了一个XML协议工作组,目的是开发标准的的XML信息传递协议(XP)。SOAP开发人员已向W3C递交了SOAP技术规范,他们把该规范用作XP项目的一个起点。SOAP Messages with Attachments也递交给了W3C。但W3C尚未向外界透露其工作进展的细节。

  • ebXML(电子商务XML)是由ebXML Initiative开发的一种B2B XML框架。ebXML Initiative是UN/CEFACT(联合国贸易促进与电子商务组织)和OASIS(结构化信息标准促进组织)执行的联合项目。ebXML成员包括来自2000多个公司、政府部门、科研团体、标准组织的代表和来自全球各地的个人。

  • ebXML是一种全面的B2B框架,通过共享基于Web的商务服务,实现企业协作。该框架支持B2B商务过程的定义与执行,B2B商务过程以商务服务交换的设计顺序来表示。该框架包括信息服务、协作伙伴协议、核心部件、商务过程方法、注册器与仓库等技术规范。2000年10月,执行了一个互操作方案的验证演示,参加的成员包括Ajuba Solutions、Cisco、Extol、Fujitsu、IBM、IPNet、Netfish、NTT、Savvion、Sterling Commerce、Sun、TIE、Viquity、WebMethods、XML Global和XML Solutions。ebXML技术规范预计2001年5月发表。

    6、开发者面临的困境

    尽管这些技术在迅速成熟,但新生的Web服务开发人员却在大量地使用他们自己的设备创建Web服务,缺乏有助于整合所有这些技术和标准的指导原则。开发人员可以使用对用户信息很敏感的XML编辑器,以人工方式定义Web服务接口,或者使用SOAP或WSDL工具箱生成一个接口。但是,开发人员将如何使新的Web服务接口与现行应用或服务相关联呢?他们将如何把大量的独立Web服务汇编成一种整合商务服务?看来,实现各厂商间的互操作仍然是一个挑战。分布式或异构Web服务要实现无缝汇编和集成,还是一个遥远的梦想。

    7、共享用户信息

    一个很重要的问题是需要共享用户信息。所谓的用户信息是指Web服务需要了解有关服务消费者的情况,以便提供定制化和个性化的服务。用户信息指消费者身份、地址,以及与消费者信息相关的隐私权限制。如要把许多服务汇编成一个整合型商务服务,这些服务就需要共享用户的这些信息。

    以共享用户身份为例。提供拥有个性化特点的Web服务,将维护每个用户身份的信息。当个人使用服务时,他要向服务自报身份。有时,Web服务将根据个人系统中保存的一个cookie自动确定他的身份。有时,用户必须输入用户ID和口令。试想,在访问的所有网站中,你不得不记住多少个用户ID和口令,你在你的系统中保存了多少个cookie?有多少家公司需要维护各自的有关你个人信息的数据库。

    在对广泛的分布式异构Web服务有透彻的了解和实现动态的互动之前,首先必须解决共享用户信息的问题,但靠一家供应商是无力解决这个问题的。不过,解决方案不能是专用的,而必须是开放的和可以互操作的,必须与任何Web服务执行协作。解决方案必须保护个人信息的安全与隐私权。

    8、开发者需求

    面对上述问题,开发者应该何去何从?显然,他们不应坐等新标准出现。他们需要现在就着手创建Web服务。但是,他们需要帮助,需要了解如何使各类不同的Web服务技术实现协同工作。他们还需要有利于保障Web服务实现互操作的指导原则,并需要能够创建"智能化"Web服务。

    9、智能化Web服务

    智能化Web服务是指能够分析具体的用户信息,并能够与其它服务共享用户信息的Web服务。它能够根据"谁"、"什么"、"何时"、"何地"和"为什么"诸要素,生成动态结果。智能化Web服务可以识别大量的用户信息,例如:

  • 服务的消费者的身份,是个人还是公司,甚或是另一个Web服务;

  • 消费者在调用服务时使用的职务;

  • 消费者可能为某种服务定义的优先选择;

  • 与消费者相关的安全方针;

  • 与消费者相关的隐私权方针;

  • 与消费者相关的商务方针;

  • 消费者的具体的地理位置;

  • 调用服务时使用的客户机设备类型;

  • 与本服务或相关服务消费者相关的以往的历史情况;

  • 消费者与本服务供应商之间存在的任何服务级别协议。

    比如,你要调用智能化饭店查找服务,让他帮你选一家饭店。该项智能服务需要根据你住在何处,你喜欢什么,你最近去了哪家饭店,你要和谁一块进餐等情况,提出一个建议。你是和自己的孩子还是陪一位重要的客户共同进餐,情况可大不一样。因此,智能化饭店查找服务需要考虑你的身份、爱好、历史和职务等。

    又比如,设想加州地区出现了能源危急,电力公司向所有用电消费者宣布进入三级供电短缺紧急状态。如果可行,该项通知将在所有的客户站点启动能源保护服务。在企业设施内,能源保护服务将按照时间与日期等诸如此类的参数和据此预定的方针,调节恒温器的温度或关闭照明灯,自动减少用电量。有的预定方针会被当时具体的情况参数所取代,例如在特定的生产运营期间生效的临时服务级别协议。在家庭,能源保护服务可以调节恒温器,关闭照明灯,控制青少年立体声系统的音量。不过,智能Web服务还将考虑谁呆在家里。例如,智能化服务知道婴儿在楼上睡觉,因此不会改变楼上供暖区的恒温器的供电情况。

    最后,让我们举出订单执行过程为例。设想一个客户订购了六种不同的产品。客户下订单时,你承诺在两日内发货。但是,当采购服务部门向合同供货机构下订单时,却发现有一种产品供货受限,使你无法按预先的承诺向客户发送订购的所有产品。在诸如此类的情况下,你的标准政策是发运部分产品,但这样做将使利润受损。最令人不快的是,即使执行了多次发货,但产品却往往完全是同日到货,尽管客户或许不介意是今日还是明日到货。因此,你需求一种既节省成本,又能使客户满意的两全其美的方案。

    智能Web服务不会自动执行多次发运,而是首先考虑客户概情况和过去历史,权衡赶制缺货部件与调整工厂生产计划所产生的利润影响,然后再据此确定一系列行动。智能Web服务还可能考虑库存成本、空间成本、预计运费和预计交付时间等其它参数。它可能采用电子邮件、SMS信息、自动语音应答信息、回复传真或客户概况中给出的其它某种交付渠道,向客户发送如下的查询-请求客户作出决定:

    1.鉴于给你带来的不便,请接受我们提供的这项优惠券。一旦订单执行完毕,我们将即刻发货,目前估计发送需要5天时间。

    2. 你订购的产品一旦有货,将分批发送。

    10、提升Web服务智能化水平

    任何人都能够创建与用户信息相关的Web服务。当然了,现在就有许多Web网站,根据你是谁和你访问网站的过去历史,提供高度定制化的服务。但符合用户的具体情况还只是问题的一半。智能化服务还必须能够和其它服务共享用户信息。令人遗憾的是,目前缺少代表这些用户信息的标准和规范。提供个性化服务的每个网站,都采用专用格式保存用户身份和历史情况等信息。

    人们需要的是代表用户信息的一套新标准和一种XML框架,另外还需要一种开放式体系结构,以便定义智能化服务如何使用用户信息,保障服务的操作性能。

    11、旨在实现互操作的智能化Web服务的开放式体系结构

    Sun为支持互操作智能Web服务,定义了一种开放式软件构架。SunTM Open Net Environment(开放式网络环境,即Sun ONE)软件体系结构,旨在解决诸如隐私、安全和身份等重要问题,定义支持诸如客户机设备类型和用户位置等用户情况的惯例和常规。它支持可以跨越许多网络系统,其中包括传统Web、无线Web和家庭网络。该体系结构的宗旨是要保证使用任何工具,开发智能Web服务,使之运行于任何平台,可以无缝地实现互操作。

    Sun ONE体系结构基于一系列深受青睐的开放和流行标准、技术及协议。在定义该体系结构期间,Sun为满足完善该体系结构的需求,确定了一些新标准。Sun将与其它公司携手,通过相关标准组织,以及W3C、OASIS、IETF、UDDI、ebXML、Java Community ProcessTM Program等诸如此类的行业技术,支持开发新标准。特别是,Sun将通过协作,推动开发支持共享用户信息的新标准。

    12、核心标准与技术

    从本质上讲,Sun ONE软件构架基于XML、Java技术和LDAP。Sun的技术原则是采用通用和流行技术,也就是说使用现行可用的技术,而不是要重新发明。Sun ONE构架使用的核心标准如下:

  • XML标准与技术,其中包括核心W3C XML建议 (XML、DOM、XML Namespaces、XSLT、XPath、XLink和XPointer);开发团体的XML分析器、SAX;表现格式(XHTML、WML和VoiceXML);XML模式系统(DTD、XML模式、RELAX和正在出现的TREX技术规范);XML信息传递系统(新出现的W3C XML协议、SOAP和ebXML信息服务);XML注册器与仓库(UDDI Business Registry、ebXML注册器与仓库以及OASIS xml.org);XML服务描述语言(WSDL);XML管理信息交换框架(DMTF CIM与WBTM);B2B XML框架(ebXML协作伙伴协议、ebXML商务过程方法和ebXML核心组件);XML安全系统(XML签名、XML加密以及新出现的OASIS安全服务项目);

  • Java技术,其中包括Java 2平台企业版(J2EETM)、Java 2平台标准版(J2SETM)、Java 2平台Micro版(J2METM)、MID(Mobile Information Device)规定、Java CardTM API、Java Servcet与JavaServer PagesTM (JSPTM)软件、适用于数据库访问的Java API (JDBC)、适用于XML的Java API (适用于XML处理的Java API、适用于XML数据联编的Java API、适用于XML注册的Java API、适用于XML信息传递的Java API);

  • 基础设施标准,例如HTTP、SLL和LDAP。

    13、Sun ONE软件体系结构

    Sun ONE软件体系结构是一种生机勃勃的系统体系,随着有利于增强该软件环境的新技术的不断出现,它将继续扩展。图1概括显示了Web服务体系结构主要部件的高级功能。

    图1顶部是服务创建与汇编框。这一部分显示根据Web服务模式开发系统而使用的工具。通常,Web服务由一系列分离式服务部件组成,这些部件采用实例描述各种内容、商务逻辑和应用。因此,服务开发过程涉及两个不同阶段。

    第一阶段涉及创建分离式服务,Sun ONE软件体系结构称之为微观服务。第二阶段是把微观服务汇编成整合服务,或宏观服务。开发人员使用集成开发环境、代码生成器、XML编辑器和创作工具,构建微观服务。(本文将在下面提供关于微观服务开发模式的详细信息)。服务汇编人员使用商用过程模式工具、工作流工具和其它类型的粘贴工具,汇编宏观服务。汇编人员还使用方针工具定义商务规则、安全方针,以及运行时可以动态方式改变宏观服务的与用户信息相关的方针。服务测试完毕后,就可以随时安装于部署平台,方针和规则可以部署于一个开放式目录。管理工具提供部署和管理服务环境的功能。

    位于图1服务创建与汇编框的下部的是已部署服务框,它由商务服务(宏观服务)与服务部件(微观服务)组成。微观服务可以汇编、配置或再配置成任何数量的宏观服务。

    图1的其余部分显示Sun ONE软件部署体系结构。图形从右至左显示服务消费者与服务接口的交互情况。服务接口提供连接、位置、发现和通信等基本功能。体系结构的这一部分包括各类用户和允许Web用户、无线用户、语音用户以及外部商务系统调用服务的各类商务门户。服务接口把每个请求,定向于相关的Web服务。

    微观服务和宏观服务在某种类型的服务容器内执行。服务容器为服务提供运行时的环境,并为服务提供持续和状态管理。服务容器运行于服务平台,提供对数据库、目录和信息传递服务的访问。服务平台驻留于操作系统或虚拟机,提供对硬件、存储器和网络的访问。值得注意的是,Web服务可以部署于任何类型的平台或智能化设备。

    过程管理工具与服务容器进行协同工作,管理服务工作流和事件处理。服务集成工具使用基础服务平台,访问其它Web服务与资源,例如数据库、文件、记录和传统应用。
  • 为系统增加智能

    附加功能。智能化方针的功能是,根据由用户身份、相关信息和职务等有关方针来协调各种相应的活动。智能化交付工具可根据用户信息,集合服务结构,并实现服务结果的定制化与个性化。智能化过程是根据用户信息,去更改商务服务工作流的过程。智能化管理将根据用户信息所确定的具体情况,保障用户的隐私权、安全性和访问权力。

    15、Web服务处理模式

    准备服务

    准备服务

    智能管理工具旨在管理、监控和维护Web服务,其功能如下:

  • 保证通过一个或多个服务注册器,正确地注册和定位服务;

  • 保证签署和正确地执行相关使用收费或订购协议;

  • 协调服务提供,并保证按服务级别协议规定的最低服务质量或其它标准,执行服务。

  • 从智能化方针工具确定管理和运行时方针。

    智能化方针工具旨在管理和连接各种目录和仓库,其中包含的方针和商务规则将会影响服务的处理过程。

    处理服务请求

    服务请求可以通过任何类型的交付渠道提交。智能化交付工具根据用户地理位置、职务和要求服务的时间等信息,确定用户觉得信息,并将用户请求传递给服务去执行。

    服务工作流

    智能化过程工具旨在管理宏观服务的动作设计。它根据用户信息和为服务定义的方针与商务规则,保证按正确的顺序调用相关微观服务或外部服务。服务使用集成和资源访问引擎调用其它服务,并访问数据库、文件、传统的应用和其它资源。

    交付服务应答

    处理完毕后,智能化交付工具使用个性化与用户敏感性引擎,为消费者量体定制应答。最终的应答通过相关交付渠道,交付给用户。

    16、标准背板

    图4显示Web服务体系结构及其许多标准与技术。这些标准和技术为Sun ONE软件体系结构奠定了基础。并非每一种情况均需要所有这些标准,它们是作为实现互操作的指导原则和辅助手段而提供的。

    智能化交付

    智能化交付支持各种各样使用一系列设备专用表示格式的客户机,其中包括HTML、XHTML、WML和VoiceXML。

  • 超文本标记语言(HTML)是向用户交付电子信息最常用的技术。

  • XHTML是与XML兼容的变体HTML。HTML和XHTML是W3C实现的技术。

  • 无线标记语言(WML:Wireless Markup Language)是用于众多WAP兼容无线设备的表示格式,例如移动电话。WML是WAP论坛开发的技术,当前已采用XHTML的一个子集用作WML的后续产品。VoiceXML允许创建声频对话,声频对话拥有合成语音、数字化声频、语音和HTMF键盘输入识别以及语音输入、电话与混合型技术会话、纪录等特性。其主要目标是把基于Web的开发与内容交付优势,融合于交互式语音应答应用。VoiceXML是VoiceXML论坛与W3C的联合项目。

    智能化交付工具还管理内容转换,通常使用XML和XSLT技术。可扩展标记语言(XML)是一种平台中立和语音中立数据表示格式,为以Web服务与电子商务为重心的每个重要项目,打造了一个基础。应用使用DOM或SAX操作XML。文档对象模式(MOD:Document Object Model)是一种平台中立和语言中立应用编程接口,它允许程序以动态方式,访问和更新XML与HTML文档的内容、结构及格式。DOM为XML数据提供存储器树形结构访问,这样整个文档结构都可以执行读和写访问。Simple API for XML (SAX)提供基于事件的串行XML分析程序。Extensible Stylesheet Language Transformations (XSLT) 是把XML文档转换成XHTML、WML、VoiceXML、其它XML文档或其它数据格式的编程语言。XML、DOM和XSLT是W3C的工作项目。SAX是XML-DEV讨论组成员的一个协作项目。

    Web服务显示一个XML接口,它是使用XML信息传递协议予以实现的,例如SOAP、ebXML信息服务(ebXML MS)或新出现的W3C XP。诸如文档式样定义(DTD)、XML Schema和RELAX等XML模式语言,或新出现的TREX技术规范,旨在描述XML信息的格式。信息模式在一个模式注册器里执行注册,例如xml.org。Web服务可使用WSDL等Web服务描述语言执行描述,在UDDI Business Registry和/或ebXML Registry与Repository执行注册。

    服务容器

    服务容器为Web服务提供运行时的环境。使用的服务容器类型,取决于托管服务所使用的平台类型。Sun ONE软件体系结构为相关服务器和其它设备都提出了很好的建议。

    基于服务器的被建议的服务容器,是J2EE应用服务器。基于J2EE技术的服务,可以作为服务器小程序、JSP页面或Enterprise JavaBeans? (EJB?)部件予以实现。当前,J2EE应用服务器以透明方式,管理与Web服务相关的大量复杂部署与执行。当Web应请求提供较多的用户信息以及有关服务的可用信息时,J2EE容器将发挥极其重要的作用,即以透明方式利用这些信息配置和定制Web服务。J2EE容器将扩展其现行说明方式,以使智能服务实现自动化开发与部署,不需要开发人员执行复杂的编程任务。这种说明方式现已应用于资源管理、交易管理、状态管理和安全等领域。J2EE说明编程技术大大减少了Web服务开发的复杂性。

    基于设备的被建议的服务容器是J2ME技术,它为基于无线电话、PDA、电视、汽车信息系统和其它多种消费者设备与嵌入式设备的Web服务,提供一个部署平台。J2ME设备在一个启动文件里执行定义,其中包括Java虚拟机和一系列API,它们提供访问基础设备的能力。启动文件提供必要的抽象过程,允许跨越极其广泛、种类繁多的网络和设备,以透明方式部署服务与内容。当前可用的技术包括适用于无线电话和PDA的移动信息设备启动文件(MIDP)与适用于广播电视、机顶盒和个人录相机的Java TV API。这些平台提供的应用模式,使服务可以访问设备的许多特性,包括存储器、用户界面和个性化服务等。

    智能化管理

    传统以来,系统与网络管理一直是使用大型分布式应用予以实现的。在这种情况下,系统管理软件供应商的专用代理软件,安装于被管理的每种资源,相同供应商生产的中央服务器要连接每个代理,以管理资源。尽管大多数管理代理遵循简单网络管理协议(SNMP)标准,但大部分管理系统鼓励采用同构的管理基础设施,以实现最大的收益。这种方式导致采用广泛部署的大型系统管理框架,从而把客户的整体管理束缚于一家供应商。

    当前,系统管理正转向基于工业标准的Web服务,从而允许采用新一代模块化、互操作系统管理解决方案。在这种新型模式中,专用代理被为使用XML和HTTP等开放标准而设计的代理取而代之,中央服务器被使用这些标准与代理执行交互的Web服务取而代之。

    在此种模式中,系统与网络设备将为他们的设备提供管理代理,许多公司将竞相提供以特定管理领域为目标的模块化Web服务。因此,客户再也不会被束缚于一家供应商,他们将能够为每个管理层面寻求最佳的供应商。

    此种模式的标准被称为公用信息模式(CIM:Common Information Model),是由坚持以分布式管理为重点的标准组织,即分布式管理特别工作组(DMTF)定义的。CIM为系统管理发挥的作用,跟ebXML为B2B交易发挥的作用相同。CIM旨在为设计Web 服务,定义相关模式和协议标准。而且,这些Web服务能够独立工作,跟它们交互的其它服务和代理的基本设计无关。例如,CIM为通过网络访问服务器基本信息,定义标准的XML对象,其中的许多对象已经在大量服务器操作平台予以实现,例如Solaris?操作环境和Windows 2000。

    此种模式在开放式智能Web服务领域产生了重要影响,表现在下列两个方面。

    1. Web服务将由此种模式执行管理。开发人员可以使用Java管理扩展(JMX?) API改编Web服务,为管理Web服务的部署、健康和性能构建标准接口。CIM标准允许开发人员执行这项工作,他们是实现这些特性的最佳人选。当部署Web服务时,基于Web的管理服务将能够使用相同的标准查找这些服务,并通过其代理管理它们。

    2. 作为定义明确的服务,公司将能够把系统和网络管理外包给第三方管理服务提供商(MSP),他们可通过网络执行这些任务。鉴于这些服务是模块化服务,客户可以逐项确定哪些管理任务需留给内部执行,哪些需实行外包。 p>

    智能过程

    智能过程工具允许实现与用户信息相关的服务的动作设计。基于用户信息的智能化处理技术,根据请求的用户信息,譬如所在地理位置、管辖范围或商务关系成熟与否等,以动态方式改变微观Web服务调用的设计顺序,进而改变宏观Web服务的结果。

    在ebXML环境中,B2B商务过程表示为商务服务交换的设计顺序。每个基本服务交换都被称为商务交易。一般而言,商务服务是高级服务,例如订购服务或帐单支付服务。但在幕后,一种商务服务通过循环方式,由许多低级服务组成,例如产品查找服务、报价服务、货币兑换服务等。

    交易中心标记语言(XAML)为设计商务服务提供了一种可选的方法。XAML计划是Bowstreet、惠普、IBM、Oracle和Sun联合发起的,宗旨是定义一系列XML信息格式与交互模式,以便协调和处理互联网上涉及多方的商务级交易。

    智能化方针

    Web服务可以使用方针引擎,根据考虑用户身份、授权等级和其它背景信息的规则,以动态方式适应处理和/或结果。面向用户信息的标准仍有待定义,但许多与安全相关的标准和协议已经存在。用户和方针信息维护在一个采用LDAP协议可以访问的开放的目录中。Kerberos与公钥基础构架(PKI)技术委员会的工作目标,就是为交换认证和授权信息定义一个XML框架。这样,就可以使用开放技术,以更加安全可靠的方式执行跨企业交易。该框架将为访问认证和授权服务,提供请求/应答协议,用XML形式编写请求和确认身份与权利的代码,为各种传送与通信协议提供安全信息联编。OASIS委员会把建议的两种安全技术规范,即安全服务标记语言(S2ML:Security Services Markup Language)与AuthXML,合二为一。其中,S2ML技术规范由Bowstreet、Commerce One,Jamcracker、Netegrity、Sun、Verisign和Web Methots等公司编写而成,AuthXML技术规范由以Outlook科技公司为首的一个业界联盟编写。

    17、Web服务开发模式

    尽管可以使用任何编程语言开发Web服务,但Sun ONE软件构架基于Java平台。Java平台包括XML本机支持。Java API for XML Processing (JAXP)为连接DOM、SAX和XSLT,提供一个Java接口。面向XML的其它Java API,通过Java Community Process Program,正处于不同的发展阶段。Java API for XML Data Binding (JAXB)把XML数据和Java代码相连接。开发人员使用JAXB把XML模式信息编译成Java对象。在运行时,JAXB自动把XML文档数据变换成Java对象,反之亦然。Java API for XML Messaging (JAXM)为连接ebXML MS、W3C XP和SOAP等XML信息传递系统,提供一 个本机Java接口。Java API for XML Registries (JAXP)为连接XML注册器和仓库提供一个接口,例如ebXML注册器/仓库与UDDI商务注册器。一种新的Java技术规范请求已经提交JCP,以便定义Java API for XML RPC (TAX/RPC),后者将为适用于XML信息传递系统的RPC编程常规,提供直接支持,例如SOAP和即将出台的W3C XP。

    Web服务构成

    图5从开发人员角度显示微观Web服务。Web服务由Web服务接口和一至两个服务部件组成。其中,Web服务接口负责管理和操作XML信息。服务部件包括实现服务的商务逻辑,并经常通过一系列集成服务,跟外部资源与服务执行交互。

    Web服务接口

    Web服务通过标准Web协议,例如HTTP,传送XML文档,由此实现通信。Web服务接口实现生成并消费XML信息的代码。Sun ONE软件体系结构建议采用3类XML信息传递系统:即SOAP、ebXML MS和将来的W3C XP。

  • SOAP是一种轻型可扩展XML信息传递协议。尽管SOAP是通用XML信息传递服务,但特别适合于RPC类服务调用。SOAP信息是一种XML文档,由标题与正文组成。信息数据用XML详细说明,并封装于SOAP正文中。SOAP支持RPC编程常规,后者将自动把输入输出参数和SOAP信息正文里的XML元素相连接。由于XML文档不能包含另一个XML文档,故SOAP信息不能包含一个完整的XML文档,例如采购订单。SOAP协议还不支持多媒体文件的附件或其它非XML数据。SOAP不提供服务质量(QoS)框架。可以通过Apache软件基金会,获取实现SOAP接口的Java工具。基础SOAP环境可以扩展,以支持QoS框架,但现在还不能实现。

  • ebXML MS是一种XML信息传递服务,是为了支持B2B商务需求而设计的。EbXML信息是一种多方/MIME封装信息,可以传输任何数量的XML文档和非XML附件。ebXML不支持RPC编程常规,但支持QoS框架以保障可靠地交付信息。QoS框架可以扩展,以支持安全与交易语义。ebXML技术规范于2000年5月出台。

  • W3C XP技术规范处于开发之中。关于W3C的工作进展细节未向外界透露。 Web服务接口是作为运行于Web服务器内的JSP页面或服务器小程序予以实现的。JSP页面/服务器小程序接收XML信息,并析取XML文档。当前,该过程以人工方式执行。将来,开发人员可以使用JAX或JAX/RPC,以更有效的方式处理XML信息。然后,JSP页面/服务器小程序接收XML文档,把文档数据变换成Java对象数据。今天,开发人员可以使用JAXP处理XML文档,将来可使用JAXB自动把文档和Java对象相连接。

    捕捉背景信息

    Web服务接口还尽可能地捕捉许多背景信息。通过检索客户机系统的cookie目录,就可以捕捉用户身份,或者要求用户提供用户ID与口令。一旦服务接口确定了身份,服务就可以查询专用用户历史文件,以检索附加背景信息。当前,Sun与伙伴携手推进一个标准项目,为处理身份和用户信息定义标准框架。用户背景信息框架的细节尚未定义,但预计将有标准的API推出。届时,JSP页面/服务器小程序可以使用这些API,获取用户的背景信息。

    商务逻辑

    一旦JSP页面/服务器小程序把XML数据变换成Java数据,并捕捉了用户背景信息,然后便执行通常的会话管理服务,并调用商务逻辑,由商务逻辑执行实际服务。商务逻辑是作为EJB部件或适用于轻型应用的服务器小程序予以实现的。商务逻辑部件将与管理整合商务交易的工作流引擎相连接,并与根据用户身份和身份背景,实施相关商务规则的方针引擎相连接。目前,该过程的标准尚未定义。但无疑,ebXML、XAML和OASIS安全服务将在该过程中发挥作用。

    集成服务

    商务逻辑部件将需要连接各种资源。JDBC? API提供数据库访问,J2EE连接器与Java信息服务(JMS)提供其它应用系统访问,XML信息用于连接其它Web服务。当前,开发人员需要使用JAXP,以人工方式构建XML信息。将来,开发人员可以使用JAXM或JAX/RPC,以更便捷的方式操作XML信息。

    回送结果

    当商务逻辑部件完成工作后,将向JSP页面/服务器小程序接口部件回送Java结果对象。接口使用JAXP,把结果从Java对象变换成输出XML文档,将来可以使用JAXB。然后,JSP服务器小程序可以使用背景信息,进一步应答文档。定制完成后,应答将回送给请求者。

    总结

    Sun ONE软件构架旨在帮助开发人员成功地创建Web服务。当前可用的Web服务技术,仍然处于初期发展阶段。但这并未阻止开发人员向这个令人惊奇的新领域拓展。Web服务代表了下一代软件。而Sun ONE软件构架为帮助开发人员整合各种XML标准、技术和计划,提供了一种指导原则。Sun ONE的开发模式为执行开发项目打造了一个基础,它表明哪些技术和API应该用于Web服务的各个层面。Sun将继续提供工具、技术、规范和建议,推动Web服务计算模式向前发展。