Sun ONE白皮书
目录
|
Forte for Java Enterprise Editio和Systinet Web服务定序—iPlanet Integration Server |
本文对在北美的一家最大能源公司TransCanada PipeLines Limited的原型Web服务实现做了高层次的技术回顾。TransCanada的信息系统部门正在致力于提供一个标准的基础设施以支持有效和高效的业务交付系统以满足业务的需要。
第一步的工作是描绘出他们的要求,包括避免厂商依赖性并能够在不重新调整规划他们的IT系统的条件下进行增量升级的一种基础设施。TransCanada决定将工作建立在Java™技术和XML数据格式的基础上以实现这一目标。
这一项目是由Sun™专家服务和TransCanada IS共同开发的,并且与Sun的集成伙伴ThoughtWorks和Sun的软件开发伙伴OpenView有密切的合作。这个项目起名为SPINE(网络环境中的服务提供基础设施 Service Provisioning Infrastructure for Network Environment),目标为制定一种全功能的Web服务设计,并根据Sun开放网络环境(Sun Open Net Environment Sun ONE)体系结构创建一个参考实现。SPINE设计是由Sun Proffesional Services使用SunTone™ Architecture Methodology开发的[链接: http://www.sun.com/service/sunps/jdc/suntonearchmethod.html],这是根据多年针对跨行业范围和Internet业务模型的Java 2平台企业版(J2EE™)体系结构经验开发的结构方法建立的灵活的实践和样式。TransCanada的SPINE项目的原型实现后来移植到iForce Center demo。本文中许多体系结构描述指的是后者的安装。TransCanada设计小组描绘了这个项目的一些业务结果,包括减少总拥有成本(TCO)及减少投放市场的时间(TTM)。SPINE利用了Sun ONE体系结构和Web服务技术以满足这些结果:
最初的设计是相对直观的货币兑换功能。虽然这种能力看起来很简单,但是其背后是强壮的设计,包括身份验证、授权、服务查询、监视、计量等等。SPINE原型展示了Sun ONE环境的Web服务能力——在这种高度模块化的框架内,可以迅速创建、部署和管理组件。
本文提供了在创建SPINE原型时使用的技术和设计准则的回顾,并对在这个项目中使用的操作、产品和技术进行了技术讨论。
基于Internet技术快速开发和可靠部署可扩展的、高度可用的业务系统的能力是IT行业最关注的事情。要想取得成功,这些系统必须与传统应用程序和数据集成、并且对不同组织的众多团体——雇员、伙伴、客户——和各种设备具有可用性。
今天,Web已经成为交付高价值解决方案的万能平台。实际上可以用任何设备,包括手机、PDA和台式机访问服务。已开发的技术和协议可以集成现有的业务过程与资源并让它们在Web上可用。
企业使用不同的分布式系统来运行它们的操作。
按需服务是企业使用他们的IT环境进行事务和报告业务操作、并与其他人——任何地方、任何时间、在任何设备上——通信的方式。按需服务概念是模块化、灵活、可集成性和从实际上任何地方自动访问数字资产——包括计算资源的基础。
按需服务构想是完整的框架,涵盖了传统的基于NET的服务,如安全性、身份验证和目录,并包括了更先进的功能,包括虚拟储存和复合服务(由组合的单独服务所创建的服务)。
按需服务代表了进化而不是革命——它们不取代其他的网络和开发方式。为了使按需服务模型具有吸引力,企业必须能够利用现有的应用资产并将它们作为服务公开。
按需服务并不是连接到现有资源,而是可以利用并扩展它们。厂商现在提供可以减少转换到这种新模型的成本、风险和复杂性的工具。Sun提供的按需服务的体系结构就是Sun ONE体系结构。此外,按需服务结构可以容易地与现有其他厂商的产品集成。
Sun One平台是今天基于扩展性、可靠性、开放标准的Web应用程序和明天的按需服务的基础。这个结构包含了(从下到上):
Sun ONE体系结构提供了按需服务的技术、产品和标准,以及跨平台的优秀集成并定义了与传统系统和非Sun提供的软件的互操作性。Sun ONE体系结构提供了下列能力:
Sun ONE体系结构表示可集成的堆栈,它基于API和协议的开放标准。Sun ONE积极采用标准Web接口并且将它作为其互操作性策略的基础。正如本文后面所展示的,可以将最好的产品集成到一个整体Web服务解决方案中。
除了成熟的Web协议——HTTP、HTML和SSL,正在涌现其他支持新Web服务模型的技术。虽然不是所有的技术都被完全定义为标准,但是它们在广泛的业界支持下迅速成熟。关键的技术如下:
SOAP包括三部分:
术语“Web服务”现在有了由业界厂商和评论家所赋予的特定意义。Web服务是自描述的组件,它可以在Internet上发现和使用其他Web服务以完成复杂的任务。与固化的应用程序——如桌面或者客户端服务器应用程序——不同,Web服务是松散偶合的,可以动态定位Internet上的其他组件并与之互动以提供服务。
Web服务通常传递XML消息。这可以用远程过程调用方式同步地、或者以可靠消息传递方式异步地完成。RPC的主要标准是SOAP。可靠消息方式可以是通过message bus,如Java消息服务(Java Messaging Service JMS),或者使用新出现的ebXML互操作消息服务。
在这个关系图中,开发工具访问UDDI注册表以发现有哪些服务可用。注册表可以是公开的,也可以是企业私有注册表。工具通过用SOAP协议发送XML消息浏览注册表。在注册表中有可用服务的描述,其中WSDL格式的项描述了服务和接口。这个模型称为静态查询,因为服务发现是在开发时进行的。
TransCanada是北美主要能源公司。它的主要业务是是天然气传输和动力服务。公司有大约38 000公里的传输管道网络,将加拿大西部大部分天然气产量传输到加拿大和美国快速增长的市场。TransCanada拥有、控制或者正在建设总量大约2250兆瓦的动力——可以满足2百多万一般家庭的需要。公司的股票以代码TRP在多伦多和纽约股票市场交易。
在最近几年,TransXanada采用了更流线化的、成本效率更高的方式提供服务和开展业务。这个“更好、更快、更便宜”的方式是由公司的IS部门采用的。这使他们可以集成可以增值的部门并让他们可以在特定的业务领域对变化做出快速反映,甚至更换整个系统以减少对其它系统的影响和依赖性。
为了满足业务要求,IS部门着手一个试验项目以构建下一代应用程序。目标是创建一个软件开发环境,在这个环境中他们不必从头开始创建每一个应用程序。这个目标可以通过开发一组公共服务组件实现,这些组件可以在未来的应用程序开发中使用。通过提供这些服务,TransCanada开发人员可以依靠它们的存在并在需要时调用它们。
理想情况下,在提供了服务后,它们就被“黑箱化”了,它可以通过定义良好的API提供特定的能力。这可以使开发人员注重于如何可以使用它们而不是底层的代码。他们的项目的一个最主要的要求是避免厂商依赖性或者专有技术。Java™技术和XML数据格式这两种技术将是他们大多数工作的基础。
在分析了目标和可能的不同结构后,IS人员决定他们的下一代基础设施需要公共服务基础。
Sun、TransCanada和其他新出现的Web技术消费者团体和厂商加入到TransCanada的IS小组,参与SPINE项目。他们的目标是根据这一具体企业业务案例设计、构建和实现在Sun ONE体系结构中实现了按需服务的参考体系结构。虽然原形展示了简单的过程——用户请求和接收货币兑换率,但是其底层Web服务基础结构可以使用在不同的服务中。
与所有业务关键的项目一样,定义了一些原则和要求。
由Sun和TransCanada共同确立的关键业务需求决定了SPINE结构。它们是:
在原型阶段开发了简单服务。这个服务是货币转换器,用于支持交易柜台。尽管在概念上很直观,但是原型是一个综合的工作,涉及:
他们决定将工作重点放在创建提供在需要时可以发现和使用的测量、安全性和报告功能的服务。项目小组预计实际上所有Web服务都会需要这些能力。
下面是一些不同的部署方案,包括内联网(内部)、外联网(行业伙伴VPN)和Internet(提供的公开可用的服务)。服务水平需求根据部署方案可能有很大的不同。Web服务就像其他分布系统方案一样,必须明确服务水平要求——TransCanada将它作为要解决的第一个问题。在原型阶段,TransCanada选择主要关注可管理性和安全服务水平要求。服务水平要求包括:
对于SPINE原型,实现了增强的简单名字/密码身份验证的框架,并有角色身份和用户策略验证能力。
SPINE结构的设计应用的结构原理包括:
N-层:N-层结构是一种软件设计,将软件的功能逻辑地分为分布式网络中的3个或者更多组件。
基于开放标准:基于开放标准的结构最大程度地使用了由多家厂商通过参与开放标准工作组以协调的方式开发、维护和支持的技术。
松散耦合:松散耦合结构定义了不同层组件之间的接口,通过使用广泛接受的、基于开放标准的技术,使得开发人员不用关心从每一个组件内部技术的细节。真正的松散耦合结构使得一个层中主要组件的更换对于到另一层中的组件的连接只有很少或者没有影响(例如,重新设计)。
设计、开发、部署和维护Web服务可能需要许多不同的工具和技术。在本章后面描述TransCanada展示阶段的主要组件,如Forte™ for Java™ Enterprise Edition IDE、iPlanet™ Directory Server Access Management Edition、 iPlanet Application Server、OpenView Operations、OpenView Trend Performance、iPlanet Integration Server和Systinet WASP。为理解这些工作是如何结合到一起的,下面做一个简要的操作回顾。
下面是对在iForce Ready Center 中实现的TransCanada货币兑换Web服务原型实现的高层次描述。参见下图。
1.使用Forte for Java IDE和Systinet WASP Web服务插件程序完成几乎所有Web服务的创建和部署。
2.在IDE中,应用程序是作为iPlanet Aplication Server的一个会话EJB组件创建和部署的。然后创建一个Web服务包装器并部署到SOAP服务器上作为EJB服务的facade。
3.在IDE中生成Web服务WSDL
4.用UDDI注册表发布WSDL,使其可以被浏览
5.在GUI客户端,调用Web服务的get exchange rate方法
6.从SOAP请求头中提取用户凭据并用来透明地进行身份验证,并授权用户访问Web服务。对于身份验证和授权都有Web服务hook(SOAP头处理器)。这样就可以使用实际上所有安全产品或者架构以管理访问和策略。
7.处理了SOAP请求头后,它还触发对Web服务的测量和监视。当货币兑换服务完成并返回给GUI客户端时,向同一个系统发出关闭信号。这使OpenView子系统可以测量持续时间,并在出现不正常的迟延时给出报告。
8.原型阶段目的是成为更复杂的解决方案的一部分。这个Web服务的大多数功能可以通过集成服务器或者排序引擎启用和扩充。使用图形界面,Web服务开发人员可以重复使用现有的基础设施来创建新的Web服务。为此可以使用iPlanet集成引擎。
Web服务的创建和部署是用Forte for Java IDE及Systinet’s WASP Web服务模块完成的。这种组合使开发人员可以迅速和容易地利用现有的类——或者在UDDI中查找这些类——并在IDE中直接将它变成Web服务。在IDE中使用Systinet WASP工具,开发人员可以在IDE中直接生成SOAP客户代理和WSDL文件。Forte for Java Enterprise Edition还使开发人员可以:
在IDE中,开发人员可以使用现有的Java技术类作为Web服务façade加入到部署的EJB应用程序中,并使用Systinet’s WASP模块生成、包装和部署Web服务。WASP工具将自动生成描述Web如何、怎样和何处的WSDL接口定义。
对于SPINE原型,Forte for Java IDE用于:
用IDE创建简单的、无状态的EJB组件以表示货币转换服务。需要一个业务方法以得到一个示例兑换率,其签名如下:
‘public float getRate(java.lang.String countryOne, java.lang.String
countryTwo) throws RemoteException;’
这就是货币转换Web服务所调用的EJB业务方法。服务在WASP SOAP服务器上运行,它在应用程序服务器上使用RMI/IIOP调用它。
IDE的GUI驱动的开发环境有助于简化EJB组件的创建和属性调整。例如,通过以下属性菜单可以启用对ExchangeRate bean的IIOP可访问性:
注意属性“Allow IIOP Client Access”标记为“true”。
然后将EJB应用程序部署到应用服务器上。可以利用Forte for Java Enterprise Edition IDE与iPlanet Application Server软件之间的具有的紧密集成简化在应用服务器上对EJB应用程序的部署。
在IDE中,如下选择要部署的默认应用程序服务器,然后选择Create New EJB Module:
然后,用这个窗口命名这个服务:
可以在IDE runtime选项卡中确认部署,如下所示:
Web服务的创建和部署是用Forte for Java IDE的WASP Web服务插件程序完成的。这个插件程序使开发人员可以迅速和容易地使用现有的类——或者在UDDI中查找它——并在IDE中直接将它转变为Web服务。
在IDE中,作为Web服务façade的现有的Java类被部署到J2EE应用服务器上。WASP工具会自动生成完全描述了Web服务的WSDL接口定义。WSDL还在运行时用于为客户生成动态客户代理类,这样它就可以与基于SOAP-RPC的Web服务互动。
注意这段代码与EJB组件有相同的getRate方法签名。这是WASP在收到SOAP请求后调用的方法。它在iPlanet Application Server上进行EJB组件JNDI查询,然后用IIOP创建它。这个façade使WASP服务器成为iPlanet Application Server中的IIOP富客户端。
可以用IDE中的一个向导创建façade和新的Web服务——下图显示了其做法:
这一步使开发人员可以选择ExchangeRateService façade类。
这一步用于让getRate方法作为服务公开。
这一步用于设置WSDL属性。
这个工具生成服务,如下所示:
为了部署Web服务和WSDL,创建了一个新的服务包。这个包包含以下内容:
在IDE中,包是通过一个向导界面创建的。IDE的源代码编辑器内容:
注意Web服务使用输入和输出可链接的头处理程序进行身份验证、授权、监视和计量。代码还提供了Web服务和WSDL的绑定。
IDE还打包JAR库。这个库包含了头处理程序的支持类。这也是用GUI菜单进行的。
完成了包以后,就将这个包部署到应用服务器上。
Systinet WASP工具提供了UDDI浏览器和发布功能。可以用Netscape Web浏览器查看UDDI项。WASP UDDI注册表使用Oracle 8作为其数据库。
SPINE UDDI浏览器为服务管理员和消费者提供了以下能力:
原型使用了在IDE中直接创建的简单Swing GUI客户端。原型也可以使用其他技术,如applet、JSP页、servlet或者专用的门户渠道实现同样的目标。之所以选择GUI方式是为了表现在IDE中可以直接开发、部署和测试几乎所有内容。
代码量很小——不需要低层SOAP或者XML编码。
这段代码
目录服务对用户身份和授权凭证进行验证。接收来自服务组件的XML格式请求,并对其检查以确定其权限和策略允许对特定服务的访问。
使用iPlanet Directory Server,Access Management Edition提供目录服务以及对身份证验证和访问策略的管理和增强。这个软件包配合基于角色的身份验证提供了基于策略的授权。这使开发人员可以创建特定用户根据他们在组织中的角色确定对应用程序和服务的访问的环境。尽管原型展示的是一个服务,当SPINE能力扩大时,基于角色的服务将在整个基础设施中起重要作用。
监视(截获和展现问题事件的任务)和计量(测量和报告响应时间和流量的任务)是每一个将投入生产的软件系统所必需的。服务提供者通常需要负责可用性和可接受的性能,以及根据用户和组提供记账。
可管理性存在于Web服务部署框架内,所以EJB和Web服务开发人员不必担心可管理性,它更应该是部署时的任务。每一个新部署的Web服务都可以利用现有计量和监视能力。
Openview管理解决方案为SPINE原型提供了监视和计量服务。底层基础设施,包括Solaris OE、UDDI数据库、iPlanet Directory Server或者iPlanet Application Server,也是管理域的一部分。这使TransCanada可以事先检测基础设施中可能影响Web服务可用性的问题。
HP OpenView软件为SPINE原型提供了监视和测量服务。SPINE原型的关键OpenView组件是:
OpenView产品名 |
功能 |
OV Operations for the Solaris OE |
事件管理、基础设施和系统监视 |
OV Service Navigator |
服务影响计算和最终原因分析 |
OV TREND Performance Manager |
Web服务性能报告 |
OV Performance |
系统资源计量和可视化 |
OV Smart Plug-Ins |
监视和测量应用程序的插件程序,包括iPlanet、Oracle和其他。 |
SPINE Web服务体系结构的事件管理实现基于管理基础设施的开放的、基于标准的实现,基于Solaris产品的OpenView操作作为企业级的后端事件管理解决方案。OpenView操作建立在三层结构上:•
由Web服务引擎生成的问题事件被基于JMX的管理基础设施用SOAP引擎的“错误处理器”功能所截获。对每一个由SOAP引擎生成的错误都调用这个错误处理器。SPINE中的错误处理器为错误指定一个严重级别并转送给JMX基础设施中的相应的MBean。错误监听器组件会收取这个错误并通过SOAP/XML将它发送给远程管理Web服务。
管理服务器上的Web服务SOAP引擎收取请求,并触发相应的方法,它通过Web服务事件的OpenView特定的适配器将事件提供给OpenView事件管理基础设施。OpenView适配器可以进行高级的筛选,它用特定的指令和预定义的行动丰富了原始的事件,这样就极大地提高了操作的效率。
服务模型定义了IT基础设施的低层组件和由环境提供的高层业务服务——Web服务——之间的关系。这种方法可以对IT基础设施中问题对业务服务的影响进行评估。相关性在性质上可能很复杂,所以使用可以定义真实模型的强大建模语言很重要。OpenView使用基于 XML的服务建模语言,它提供了所需要的表达能力,并可以根据发现脚本用于自动生成服务模型。
对于SPINE原型,货币兑换Web服务的服务模型是用OpenView服务浏览器开发的。这个服务模型定义了货币兑换Web服务是如何取决于其他软件组件的,包括iPlanet Application Server软件、Systinet WASP SOAP服务器、iPlanet Directory Server软件以及Solaris操作环境。下面的屏幕显示了OpenView Java控制台的服务可视化组件。
所有进入OpenView事件基础设施的问题事件都赋予了低层服务图标(通过监视属于对应OV操作消息的一部分的服务ID)。根据事件严重性,更新服务图标问题状态,再通过服务树传播新问题状态。操作员只需要监视高层业务服务图标。一旦在IT基础设施中发生问题,最终原因分析(root cause analysis)功能就可以使它们从高级业务服务深入到低层IT组件找出问题的原因。
SPINE Web服务结构的计量解决方案给出了客户对Web服务性能的体验的内涵。测量每一位用户的响应时间和服务调用的次数,这样可以将测量数据提供给付账系统。
SPINE原型使用OpenView Trand Performance产品收集、积累并可视化性能统计。OV Trend Performance使用基于Web的用户界面进行报告。OpenView产品还用于测量底层系统平台的性能。
计量解决方案是用与监视解决方案类似的结构实现的。在每一次对Web服务调用之前和之后,实现了调用应用程序响应时间测量(Application Response Time Measurement ARM)标准的start()和stop()API函数特定的头处理程序。得到的响应时间数据点(其中包括用户信息)再储存到JMX基础设施中的MBean中。Web服务性能数据通过SOAP/XML发送给远程管理Web服务。为了控制通过网络的数据数量,在MBean进行初级的聚集。
在远程管理服务器上,SOAP引擎收取性能数据并触发一个OpenView特定的适配器,它将数据提供给Trend Performance基础设施。
iPlanet Integration Server是由设计时和运行时组件和工具组成,在Forte Unified Development Server(UDS)开发和运行时环境中创建。它是为了在企业EAI解决方案中使用,这个方案可能包括工作流、应用程序集成、组件和Web服务定序、以及通过使用预打包的CRM/ERP类系统应用程序连接器提供的各种可能性。iPlanet Integration Server的核心是强大的、高性能处理引擎,它可以管理远超过上百万运行时业务进程的进程执行和状态。
iPlanet Integration Server业务进程是在Process Definition Workshop中以图形方式构建的,这描述了进程应该如何对构成Web服务定序的不同的业务步骤或者活动。进程以调用First的行动开始,以调用Last结束,它作为库部署在运行时引擎,使它可以“热部署”新的或者现有的进程定义而无需重新启动服务器引擎。例如,如果SPINE进程最初定序两个Web服务,现在需要第三个,可以简单地修改进程定义并重新部署。新进程请求会自动取用新的定义。
SPINE原型使用的进程定义称为SpineTransferProc,如下所示:
上图显示了简单的序列,它扩展了这个服务使之超出现了SPINE原型中的货币兑换:
参与活动的行称为router。彩色代码帮助开发人员理解哪些活动成功完成了,哪些没有成功完成。
不成功的活动可以向进程starter提供即时通知。还包括一个计时器保护可能的系统或者Web服务挂起。计时器超时可以用于为管理员提供早期警告信号。
SPINE项目展示了IT部门正在采用按需服务的概念——发送和管理Web服务的能力,Sun的按需发送服务体系结构是Sun ONE。对于TransCanada来说,Sun ONE的吸引力是很大的——在可以采用和护现有IT资源的、可集成的和可管理的框架上用开放技术构建的Web服务。Sun ONE既是可集成的、也是已集成的——Sun和iPlanet提供了完整的软件报价,它可以提供任何的所有所需要的组件。TransCanada使用Sun ONE体系结构以用它们自己的“更好、更快、更便宜”版本发展。Sun有交付按需服务的vision、结构、产品和经验。用市场领先的工具创建、组装、集成、部署和测试,Sun为Sun ONE提供了一个完整的环境。在这个项目中展示了Sun对开放API的承诺:集成器、第三方产品和行业标准技术,所有这些都为其成功做出了贡献。TransCanada正在接近实现其基于非专有产品的设计的IT环境的目标——可以比以前更快和更容易地几乎无缝地改进、维护、管理和更新它。
SPINE原型表明使用Sun解决方案和Sun合作伙伴,机构可以更快和以更低的成本构建和管理按需服务。