(来源:http://gceclub.sun.com.cn)
用 SUN ONE 开发 WEB 服务
Sun ONE白皮书
目录
本文对在北美的一家最大能源公司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服务技术以满足这些结果:
- 通过交付一个可扩展的、安全的、可管理的、可靠的、主要由一家厂商——Sun供货的基础设施减少TCO。
- 通过利用Web服务技术部署或者集成业务系统与使用可重复的web服务框架以及一组公用服务,不需要做很多工作并使开发人员可以将精力放到增值业务逻辑上,从而减少TTM。
- 通过开放标准体系结构为TransCanada提供根据需要与其他厂商组件集成的极大灵活性。
最初的设计是相对直观的货币兑换功能。虽然这种能力看起来很简单,但是其背后是强壮的设计,包括身份验证、授权、服务查询、监视、计量等等。SPINE原型展示了Sun
ONE环境的Web服务能力——在这种高度模块化的框架内,可以迅速创建、部署和管理组件。
本文提供了在创建SPINE原型时使用的技术和设计准则的回顾,并对在这个项目中使用的操作、产品和技术进行了技术讨论。
- 第二章提供了对在Web服务中使用的标准以及对Sun
ONE的技术回顾。
- 第三章描绘了TransCanada试图要解决的问题,以及项目的整体目标。
- 第四章提供了该原型的操作回顾,以及对所使用的产品和技术的回顾。
基于Internet技术快速开发和可靠部署可扩展的、高度可用的业务系统的能力是IT行业最关注的事情。要想取得成功,这些系统必须与传统应用程序和数据集成、并且对不同组织的众多团体——雇员、伙伴、客户——和各种设备具有可用性。
今天,Web已经成为交付高价值解决方案的万能平台。实际上可以用任何设备,包括手机、PDA和台式机访问服务。已开发的技术和协议可以集成现有的业务过程与资源并让它们在Web上可用。
企业使用不同的分布式系统来运行它们的操作。
- 本地应用程序:在特定PC上运行的应用程序,如office应用程序。其中也有一些应用程序是基于LAN的。
- 客户/服务器应用程序:由大型服务器承载的应用程序。一般来说这些应用程序是业务关键性的——财务、人力资源、制造——并且需要大型数据库后端。客户/服务器应用程序同时使用专有的和基于Web的前端。
- Web服务应用程序:运行在Web上的应用程序,如电子邮件和日程表。它们通常是专用的、单功能的应用程序,并且通常需要专门的客户端软件。Web应用程序可以在内部使用,也可以由应用服务提供商(ASP)提供,还可以是这两者的结合。
- Web服务:在Web上运行的服务,可以与其他服务结合以创建更有用或者更强大的解决方案。Web服务是模块化的、设计好的和封装的功能,用于在应用程序或者系统之间松散耦合集成。
- 操作环境服务:提供可扩展的和像群集、动态再配置和高可用性这样的可靠性。这些服务通常是由像Solaris™操作环境(Operating
Environment OE)这样的操作系统提供的。Sun使用术语“按需服务(Services
on Demand)”描述所有这些内容。
按需服务是企业使用他们的IT环境进行事务和报告业务操作、并与其他人——任何地方、任何时间、在任何设备上——通信的方式。按需服务概念是模块化、灵活、可集成性和从实际上任何地方自动访问数字资产——包括计算资源的基础。
按需服务构想是完整的框架,涵盖了传统的基于NET的服务,如安全性、身份验证和目录,并包括了更先进的功能,包括虚拟储存和复合服务(由组合的单独服务所创建的服务)。
按需服务代表了进化而不是革命——它们不取代其他的网络和开发方式。为了使按需服务模型具有吸引力,企业必须能够利用现有的应用资产并将它们作为服务公开。
按需服务并不是连接到现有资源,而是可以利用并扩展它们。厂商现在提供可以减少转换到这种新模型的成本、风险和复杂性的工具。Sun提供的按需服务的体系结构就是Sun
ONE体系结构。此外,按需服务结构可以容易地与现有其他厂商的产品集成。
Sun One平台是今天基于扩展性、可靠性、开放标准的Web应用程序和明天的按需服务的基础。这个结构包含了(从下到上):
- 操作系统、硬件、存储和网络平台,它包括了必要的目录技术以定义用户、订阅者、组织和策略。
- 表示、业务逻辑和数据访问
- 服务交付是表示层。在这个体系结构中,门户服务器向任何设备交付服务、聚集内容、提供安全性、个性化。
- 服务容器提供了业务逻辑——Web服务就在这个容器中运行——通常是一个J2EE应用服务器。服务容器包含企业要构建或者购买的“预构建的Web服务”,通常是由现有的商业或者通信应用程序所承载的。
- 服务集成是数据访问层。这一层集成了企业资产如B2B和EAI应用程序、传统应用程序和数据库存储。
- 创建、组装、部署和测试服务的工具。
Sun ONE体系结构提供了按需服务的技术、产品和标准,以及跨平台的优秀集成并定义了与传统系统和非Sun提供的软件的互操作性。Sun
ONE体系结构提供了下列能力:
- Web应用程序中间件,包括今天可以使用的标准消息和Web服务器能力
- Web服务器中间件,它为基本XML Web服务提供了新功能
- 标识和内容(有关用户偏好、意图和目标的知识)服务
- Web客户模型,它定义了如何向具有Java 2 Platform,
Micro Edition J (J2ME™)的便携设备和具有桌面Java标准的桌面设备提供富Java应用程序
- 当前作为产品接口提供的其他中间件接口和核心Web服务:目录服务、门户服务、安全和策略、电子商务服务和通信能力
- Java和Web开发工具,包括包装传统语言用于Web服务的能力
- Web应用程序和Web服务的系统和应用程序管理
- 与Web应用程序和Web服务容器相关的平台服务
Sun ONE体系结构表示可集成的堆栈,它基于API和协议的开放标准。Sun
ONE积极采用标准Web接口并且将它作为其互操作性策略的基础。正如本文后面所展示的,可以将最好的产品集成到一个整体Web服务解决方案中。
除了成熟的Web协议——HTTP、HTML和SSL,正在涌现其他支持新Web服务模型的技术。虽然不是所有的技术都被完全定义为标准,但是它们在广泛的业界支持下迅速成熟。关键的技术如下:
- XML:扩展标记语言(XML)描述了储存在计算机中称为XML文档的一类数据对象,它部分描述了处理这些对象的程序的行为。XML的目标是在Web上以像今天HTML的方式提供、接收和处理准化的数据
- SOAP: 简单对象访问协议(Simple Object Access
Protocol SOAP)提供了简单和轻型的机制用于在离散的、分布式环境中的个体之间交换结构化的和类型化的信息。SOAP本身没有定义任何像编程模型这样的应用程序语意或者实现特定的语意,相反,它通过提供模块化的包装模型和对模块中的数据进行编码的编码机制定义了表达应用程序语意的简单机制。这使SOAP可以用于多种不同的系统和软件应用程序环境中?/li>
SOAP包括三部分:
- SOAP envelope construct定义了表达消息内容的整体框架——谁应该处理它、它是可选的还是必需的。
- SOAP编码规则定义了一个可以用于交换应用程序定义的数据类型实例的序列化机制。
- SOAP RPC representation定义了可以用于表示远程过程调用和响应的规范。
- WSDL: Web服务描述语言(Web
Services Description Language WSDL)是一种XML格式,用于将网络服务描述为对包含文档导向的或者过程导向的信息的消息的一系列端点操作。操作和消息是抽象描述的,然后绑定到具体的网络协议和消息格式以定义一个端点。相关的具体端点结合到抽象端点(服务)。WSDL是可扩展的,以便在通信使用任何消息格式或者网络协议时,都可以描述端点及其消息。
- UDDI:通用描述、发现和集成(Universal
Description, Discovery, and Integration UDDI)是发布基于Web的Web服务信息注册表的规范。UDDI还是让企业注册有关在企业内部或者企业之间提供的Web服务的信息的可公开访问的一组规范实现。
- 白页,包括地址、合同和已知标识
- 黄页,包括基于标准分类的行业目录
- 绿页,有关由企业公开的服务的技术信息。绿页包括对Web服务规范的引用,以及不同文件的打印机支持和基于URL的目录机制。
- ebXML:.ebXML(电子商务XML Electronic Business XML)是世界范围的项目,用以标准化电子商务数据的交换。ebXML的基本目标是创建一个全球电子市场。这是通过开发一组国际认可的规范实现的。
ebXML是完整的B2B框架,它通过共享基于Web的业务服务使企业合作成为可能。框架支持定义和执行以精心设计的业务服务交换序列表示的企业内和企业间B2B业务过程。在企业间传送XML消息的传输可以是SOAP或者由ebXML提供的SOAP扩展。ebXML消息传输使消息可以安全和可靠地传输,不需要程序员处理这些细节
- J2EE: 开发和部署企业应用程序的一个环境。J2EE平台由一组提供开发多层、基于Web的应用程序的功能的服务、应用程序、API和协议组成。J2EE技术是一个通常用于大型企业的、框架范围计算的Java平台。Sun
Microsystems(与IMB这样的行业伙伴一起)设计了J2EE平台以简化在瘦客户环境中应用程序的开发。J2EE平台通过创建标准化的、可重用的模块组件并且通过使J2EE容器可以自动处理编程的许多方面简化了应用程序开发,并减少了对编程和程序员培训的需要。
术语“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数据格式这两种技术将是他们大多数工作的基础。
- Java技术提供了很多工具和能力。它的开放标准通过一个community
process得到支持,其技术由多家公司提供。
- XML作为在Internet上调用事务的方式出现,这种方式相对来说与设备和应用程序无关。HTTP上的XML是理想的协议——并且被普遍采用。
在分析了目标和可能的不同结构后,IS人员决定他们的下一代基础设施需要公共服务基础。
Sun、TransCanada和其他新出现的Web技术消费者团体和厂商加入到TransCanada的IS小组,参与SPINE项目。他们的目标是根据这一具体企业业务案例设计、构建和实现在Sun
ONE体系结构中实现了按需服务的参考体系结构。虽然原形展示了简单的过程——用户请求和接收货币兑换率,但是其底层Web服务基础结构可以使用在不同的服务中。
与所有业务关键的项目一样,定义了一些原则和要求。
由Sun和TransCanada共同确立的关键业务需求决定了SPINE结构。它们是:
- 减少技术开支:减少TransCanada对应用程序和软件基础结构的操作、维护和更新成本,该成本以TCO计算。
- 提高业务响应性:提高TransCanada IT项目中业务改变要求的响应性,由新业务服务的减少的TTM计算。
在原型阶段开发了简单服务。这个服务是货币转换器,用于支持交易柜台。尽管在概念上很直观,但是原型是一个综合的工作,涉及:
- 创建和部署J2EE应用程序
- 创建Web服务
- 部署Web服务
- Web服务UDDI注册和查询
- 消费Web服务
- Web服务身份验证
- Web服务授权
- Web服务计量
- Web服务性能计量捕获和报告
- Web服务排序
他们决定将工作重点放在创建提供在需要时可以发现和使用的测量、安全性和报告功能的服务。项目小组预计实际上所有Web服务都会需要这些能力。
下面是一些不同的部署方案,包括内联网(内部)、外联网(行业伙伴VPN)和Internet(提供的公开可用的服务)。服务水平需求根据部署方案可能有很大的不同。Web服务就像其他分布系统方案一样,必须明确服务水平要求——TransCanada将它作为要解决的第一个问题。在原型阶段,TransCanada选择主要关注可管理性和安全服务水平要求。服务水平要求包括:
- 可管理性:可管理性是系统设计和操作中一个完全独特的领域。可管理性可以用监视系统和测试与性能和故障相关的操作特性的难易程度、配置(和重新配置)系统的难易程度以及提供什么程度的控制信息来表示。
- 对于SPINE原型,实现了错误和事件监视、性能和占用测量服务以分别实现SAL管理和基于使用的付账。
- 安全性:安全性不只是机密性(如身份验证、访问控制、加密)和完全性(识别或者防止损坏)问题,而且包括与可能影响服务可用性的不可否认
(验证操作的客户标识)有关。
对于SPINE原型,实现了增强的简单名字/密码身份验证的框架,并有角色身份和用户策略验证能力。
- 性能:系统作为OoS组件的性能与特定性能计量(如响应性或者延迟性)和用户对于性能的体验相关。在SPINE原型中创建了性能监视的框架。
- 可靠性:作为OoS属性的可靠性与服务器底层单独的组件的可靠性密切相关。它由包括可靠消息、复制、故障转移等等技术增强。可靠消息是SPINE原型计划中的扩展。
- 可用性:可靠性对可用性起作用,但是通过使用冗余组件和可以降低平均修复时间的故障转移机制,当单独的组件失败时也可以实现可用性。在SPINE原型中提供了简单的Web服务重定向工具。
- 扩展性:扩展性与随着时间增加容量、因而增加用户的能力相关。扩展性通常需要额外的资源,但是扩展性不应该因为规模的扩大而需要改变结构、重新设计或者损失服务。
- 纵向扩大:纵向扩大是增加一个系统或者系统群组中的硬件资源(如增加CPU、内存磁盘、I/O等等以增加服务器的能力)。
- 横向扩大:横向扩大适用于有纵向扩大极限并且状态保留不是一个重要的要求的情况、或者通过一致性状态复制可以提供成本效率高的状态保留的情况。在这种情况下,可以横向增加或者平行配置服务器以扩大系统。
- 维护性:系统的维护性用两个一般区域表示:
- 系统可以修复和组件可以更换的区域
- 维护活动占用系统及系统服务停止或者重新启动的程度。
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服务的创建和部署。
- 创建货币兑换企业级JavaBean (EJB™)组件的代码
- 部署这个EJB组件到应用服务器中
- 创建简单的、请求货币兑换率的GUI客户端。
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还使开发人员可以:
- 用现有EJB组件创建Web服务
- 使用这个服务让使用HTTP上的XML进行通信的客户可以访问EJB组件。
- 使用JavaServer Pages™ (JSP™)框架让其他Web客户,如Web浏览器、手机和DPA可以访问Web服务。
- 利用IDE和iPlanet Application Enterprise Edition服务器的紧密集成在IDE中方便地开发、部署和测试Web服务。
在IDE中,开发人员可以使用现有的Java技术类作为Web服务façade加入到部署的EJB应用程序中,并使用Systinet’s
WASP模块生成、包装和部署Web服务。WASP工具将自动生成描述Web如何、怎样和何处的WSDL接口定义。
对于SPINE原型,Forte for Java IDE用于:
- 创建EJB组件
- 将这些组件部署到应用服务器上
- 创建使用EJB组件的Web服务facade
- 创建Web服务部署包
- 在包中添加头处理器(可链接的句柄)配置
- 部署Web服务
- 创建和部署GUI客户端
用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,创建了一个新的服务包。这个包包含以下内容:
- ExchangeRateService类——facade
- Exchange Rate EJB本地和远程接口
- 用于进行身份验证、授权、测量和监视的Web服务SOAP头处理器的支持类
- WASP配置XML文件,它提供了使用哪一个头处理程序的细节
在IDE中,包是通过一个向导界面创建的。IDE的源代码编辑器内容:
注意Web服务使用输入和输出可链接的头处理程序进行身份验证、授权、监视和计量。代码还提供了Web服务和WSDL的绑定。
IDE还打包JAR库。这个库包含了头处理程序的支持类。这也是用GUI菜单进行的。
完成了包以后,就将这个包部署到应用服务器上。
Systinet WASP工具提供了UDDI浏览器和发布功能。可以用Netscape
Web浏览器查看UDDI项。WASP UDDI注册表使用Oracle 8作为其数据库。
SPINE UDDI浏览器为服务管理员和消费者提供了以下能力:
- 支持将WAR、EJB JAR和/或EAR部署到应用服务器环境。
- 根据指定前/后处理链组件信息和服务的接口定义生成SOAP部署描述符。
- 将SOAP描述符部署到部署环境中。
- 将WSDL文件移植到部署环境中。
原型使用了在IDE中直接创建的简单Swing
GUI客户端。原型也可以使用其他技术,如applet、JSP页、servlet或者专用的门户渠道实现同样的目标。之所以选择GUI方式是为了表现在IDE中可以直接开发、部署和测试几乎所有内容。
代码量很小——不需要低层SOAP或者XML编码。
这段代码
- 执行ExchangeRateService的URL设置
- 建立WASP查询上下文
- 根据façade类文件执行对ExchangeRateService的查询
- 调用使用动态生成Web服务客户代理的getRate方法。在这里调用getRate使SOAP请求进行格式编排并发送给WASP服务器,并接收WASP
SOAP响应,对其进行解析(unmarshalled),并将响应值返回给原来的调用者。
- 这个客户的另一个重要的方面是它使用一个客户端头处理程序用于:
- 通过SOAP指定进行身份验证
- 将用户上下文(用户标识和密码)装载到SOAP头以便服务器
- 提取并用以进行身份验证,等
目录服务对用户身份和授权凭证进行验证。接收来自服务组件的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操作建立在三层结构上:•
- Autonomous 代理:这是一个小型的footprint 软件,在后台运行,根据特定的一组(模板形式的)策略监视本地系统和应用程序。代理可以创建事件、根据规则筛选和关联事件,将事件发送给管理服务器,并根据事件触发修正行动。即使到管理服务器的网络连接丢失,代理也会继续工作,并在网络连接恢复后自动重新连接并发送缓存的消息。
- 管理服务器:这是所有代理发送的事件和所有代理配置的联合层。所有数据,包括事件和配置数据,都储存在底层Oracle数据库中。代理软件和配置(以模板的形式)可以由服务器集中发布。可以在服务器上实现其他的筛选和关联。OpenView服务浏览器的服务引擎提取所有事件并计算服务影响。
- 用户界面:OpenView操作提供基于Java技术和X/Motif的用户界面,通过消息浏览器提供一组事件的内部信息,并提供一个控制台启动操作任务。对于操作人员和管理人员有不同的用户界面。
由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基础设施。
Web服务定序—iPlanet
Integration Server
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原型中的货币兑换:
- 进行货币兑换率查询活动
- 使用这个兑换率用电汇Web服务在两个账户之间电汇货币。
- 在成功完成电汇转移后,通知进程starter进程已经完成了。
参与活动的行称为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合作伙伴,机构可以更快和以更低的成本构建和管理按需服务。 |