被忽视的高价值主张
三年来,我非常荣幸地参与了使用IBM WebSphere DataPower的多个概念验证项目,其中的客户主要是银行和保险公司。就像任何中间件产品一样,用户经常采用新的有意思的方式实现DataPower。不过,在80%的情况下,此产品都用于最常见的使用方式,包括:
协议桥接(如,HTTP到WebSphere MQ)。
消息转换。
身份验证和授权。
拒绝服务(Denial of Service,DoS)攻击保护。
我在这里要和您分享的这五项DataPower功能由于种种原因并没有得到广泛的应用,但的确应该对其多加利用。
XACML支持
可扩展访问控制标记语言(EXtensible Access Control Markup Language,XACML)是用于为资源定义授权的开放标准。XACML 是结构化信息发展组织(Organization for the Advancement of Structured Information Standards,OASIS)制定的基于XML的标准,在表达和计算受保护系统资源上的访问控制决策时非常有用。
支持XACML的系统由两个主要组件构成:策略执行点(Policy Enforcement Point,PEP)和策略决策点(Policy Decision Point,PDP)。PEP 负责从请求提取信息(如从SOAP请求的WS-Security Header提取信息),并生成XACML消息供PDP进行授权许可。PDP要么接受,要么拒绝对后端资源的访问。PDP使用XACML策略XML文件进行决策,此文件使用XACML 规范定义的基于规则的语言编写。
XACML 之所以强大,是因为所有内容都开放且符合标准,包括PEP和PDP间的通信以及XACML策略文件本身。这意味着,在更改 PDP 供应商(经常具有专用性)的情况下,可以不用更改PEP。另外,如果更换 PDP 实现,则可以重用为旧 PDP 编写的 XACML 策略。
图 1. 作为 DataPower 的 AAA 框架一部分的 XACML
DataPower在其标准AAA(身份验证、授权、审核,Authenticate, Authorize, Audit)框架中将XACML授权作为PEP加以支持;它既可以用于PEP,也可以用于PDP。对于PDP,不需要事先指定XACML策略文件的位置。例如,策略可以从HTTP URL获取。最近发布的IBM Tivoli® Security Policy Manager支持XACML策略,可以作为DataPower所使用的授权策略的理想集中存储库。对于 XACML,Tivoli Security Policy Manager是一个策略管理点(Policy Administration Point,PAP)。
DB2 V9 XQuery支持
IBM DB2® V9(代号 DB2 Viper)通过其 pureXML™ 技术提供了行业领先的XML储功能。DB2 V9 通过新XML类型支XML的本机存储。可以使用通过 XQuery 的查询或结合SQL/XPath的查询来检索存储在XML类型中的任意节点子集。同时还支持各种高级功能,如跨多个 XML 查询的联合,使用 XML 类型的视图和模式验证。最为重要的是,使用DB2 V9存储和查询XML非常高效,可以在 XML 节点集的任何级别设置索引,以优化XML查询。
图 2. 使用 Xquery 语句的 DataPower SQL 操作
DataPower 完全支持针对DB2 V9的 XQuery查询。XQuery是类似于SQL的语言,用于获取数据,但是其数据操作构造更为成熟。与 XSL 类似,XQuery 将 XPath作为语言的子集包括在内。如果您熟悉Xpath,使用DB2的XQuery查询就应该很容易。
DB2 V9和DataPower可以成为功能极为强大的组合。DB2可以作为XML元数据存储库供DataPower使用。例如,可以将路由元数据存储在 DB2 中,从而为特定消息选择目的地。不过,请记住,DB2 V9不是Web服务存储库;该产品并未设计用于存储WSDL和Web服务端点或版本控制信息。IBM WebSphere Service Registry and Repository更适合存储这种类型的 XML 元数据。
服务级别监视
DataPower经常置于高负载环境中使用,作为网关处理大量客户端请求,或作为企业服务总线(Enterprise Service Bus,ESB)处理众多异类系统的事务。DataPower提供服务级别监视(Service-Level Monitoring,SLM)功能,此功能可以在Web服务代理或多协议网关DataPower服务上实现。
SLM能够监视流量,并在流量模式满足某个条件时采取特定操作。例如,假定您有一个处理能力为处理300个事务/秒(Transactions Per Second,TPS)的大型机后端。可以使用SLM在接收到的入站事务超过300 TPS时采取特定操作。
又如,假定使用DataPower作为REST XML服务的网关,客户访问这些服务时将按事务进行收费;不过,每个客户都有TPS上限,例如限制每分钟最多100个事务。可以使用DataPower来确保不会超过此上限,或发送通知来确保恰当地收取超限事务量的费用。
在达到事务阈值时,DataPower SLM可以通过三种方式采取操作:
通知:DataPower可以通过设备所支持的任何协议向日志记录系统发送通知,包括电子邮件、WebSphere MQ和HTTP。例如,对于REST客户达到其上限的情况,DataPower可以向负责通知客户的业务流程发送通知。
定形 (Shape):DataPower可以延迟通信流量,以将事务保持在给定阈值。以后端仅能处理 300 TPS 的情况为例。这里,可以使用定形来对超过此速率的任意事务进行排队。
节流:DataPower可以拒绝超过给定阈值的事务。
图 3. 服务级别监视流量图
可以对相同事务类型使用不同的SLM策略操作。以希望特定Web服务处500 TPS的情况为例。可以设置SLM策略,使其在达到400 TPS时发送通知,在达到500 TPS时断言定形,在达到600 TPS时节流。
您可能会想,在负载平衡器涉及多个DataPower设备时是否可以使用 SLM。通过SLM对等组共享负载的多个设备支持使用SLM。对等组中的设备不断彼此进行通信,以确保在整个组共享SLM阈值。
IMS Connect
IMS™ Connect 是TCP/IP服务器,允许TCP/IP客户端与IMS Open Transaction Manager Access (OTMA)交换消息。此服务器提供TCP/IP客户端和IMS(数据存储)之间的通信链接。它支持多个TCP/IP客户端访问多个数据存储资源。IMS Connect在z/OS上运行。
图 4. DataPower IMS Connect配置
DataPower现在包含IMS Connect客户端,可替代WebSphere MQ与IMS COBOL应用程序通信。多协议网关提供IMS Connect作为后端URL选项。另外还增加了用于IMS Connect的新前端处理程序。因此,IMS现在是DataPower标准的ESB接入和接出点。
一个常见的用例是将IMS COBOL应用程序通过 DataPower 作为 Web 服务公开。这可以通过具有 HTTP 前端处理程序和IMS Connect后端URL的多协议网关实现。可以使用IBM WebSphere Transformation eXtender开发SOAP <-> COBOL非XML转换,以在网关的处理策略内执行消息映射。
计划规则
DataPower支持计划处理策略规则。计划规则是定期调用的标准处理策略。为了定义计划规则,请选择XML Manager,然后滚动到顶部的最后一个选项卡,如图5中所示。
图 5. 计划的处理策略规则
图中现实了名为Recurring_Rule的规则,调用间隔为120秒。例如,计划规则可用于定期从存储库(如WebSphere Service Registry and Repository)获取更新全局变量的XML属性文件。计划规则必须匹配所有传入URL的匹配操作,否则规则就不会执行。
总结
希望本文提供的信息能够帮助您了解使用WebSphere DataPower的一些新方式。这里讨论的很多技术(如XACML和DB2 pureXML)都相对比较新,因此随着以后越来越多的应用,您将会越来越多地接触到这些技术。
实际解决方案:开发团队应当协调设计模式的使用。共享设计模式的公共实现可在将来降低成本,但是更重要的是,它使开发人员之间互相兼容。如果需要,这种共享可以被限制到划归先前讨论的broad exposure设计模式内。重用实现在项目间也极有价值,尤其在未来将要集成的时候。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
相关推荐
-
总线技术究竟该不该用?
曾几何时企业服务总线(ESB)被视为企业IT的核心。今天,不仅ESB受到了比被废弃还要糟糕的攻击,若干开发趋势似乎对更简单的消息总线也发起了质疑。
-
从ESB到微服务:如何演变?
从web开发人员的角度看,大量的微服务部署到轻量级的Karaf 容器中,这就符合了ESB的定义。
-
SOA应用:企业为何使用SOA
面向服务架构使用的太多了,所以来自于产品公司的热心销售与组织内过分使用的SOA应用的结合给人们造成了一个错误的幻像,那就是SOA可以解决所有问题。
-
普元ESB6.3GA版发布 新增热点功能提高企业管控力
2013年6月,国内最大的软件平台厂商普元发布了企业服务总线Primeton ESB 6.3正式版。该版本是在原有广受好评ESB产品基础上,融入了SOA服务治理以及文件传输等热点功能。