2017-03-19 17:50
“面向服务”这个词现在非常时髦,几乎所有的企业信息化杂志上都有它的倩影。这与20年前“面向对象”横扫IT行业的光景颇有些相似。那时候涌现了一系列的面向对象的语言、面向对象的分析、面向对象的编程、面向对象的数据库……逼得企业不得不“面向对象”。而现在,企业也不得不“面向服务”了:
· 面向服务的架构
· 面向服务的集成
· 面向服务的流程
· 面向服务的管理
· ……
所有这些如雨后春笋般涌现的概念和产品都在逼着企业乖乖就范。
在本文中,我们将重点介绍面向服务的企业(Service Oriented Enterprise,SOE),以及这种企业模式的关键助推器——业务流程管理(BPM)的作用。SOE是指那些运用面向服务的概念,来整合内部系统以及外部合作伙伴交互的组织。面向服务的思想贯穿于SOE的整个企业架构中,它帮助企业按照统一的范例实现服务的生产与消费。
什么是面向服务?
面向服务能够实现应用、交易伙伴和组织之间的松散连接,并通过服务呼叫来调用它们。这种连接一般是通过发现完成的。进一步说,独立的服务可以相互连接,组成流程,它们提供的价值将比单个服务的总和还大。面向服务中的分布式应用既可以是内部的,也可以来自外部的交易伙伴。双方要遵循达成的协议,在整个流程的执行过程中扮演好自己的角色。
下面让我们讨论一下与概念有关的几个关键术语。首先是“松散连接”,意思是你可以使用服务,并将它整合入你的应用,但同时你无需知道该服务的语言、平台、位置或状态。Web services提供了到网站或应用的程序接口。你可能会有几个操作,每个操作都有自己的输入和输出信息。这些操作组合起来就构成了服务的程序接口。具体的实施细节、平台和语言都被隐藏起来了。只要我们在调用时遵循HTTP协议,返回时遵循SOAP协议,那么我们就能在Web service的世界中得心应手。
第二个关键术语是“发现”。图1中著名的三角形结构说明了面向服务中的注册“发现”交互循环,目标是要实现对服务的动态发现。
图1 注册“发现”交互循环
第三个关键术语是“流程”。流程提供了服务之间的信息顺序和控制顺序。流程包括简单的或复杂的决策制定,通过选择和循环结构来实现。业务规则负责对流程进行指导和控制。
第四个关键术语是“达成的”,是关于交易伙伴之间的协议。为了保证服务的质量(绩效、可靠性、安全性、政策遵循等),企业需要通过服务水平协议(SLA)规定交易伙伴之间交互的响应时间等要求。要使SLA有效,流程引擎需要使用规则引擎来处理交易伙伴之间的复杂关系。
上述关键术语说明了面向服务能够提高“扩展企业”的生产率和敏捷性。
SOE的智能化
要了解智能化的意义,首先让我们来看网络在这方面的情况。网络提供内容,对于“未经加工的”网络,自动化agent无法从链接中得到有用的东西。而HTML和XML提供符合语法的内容。但这种语法在语义上并不丰富。它们无法描述术语或概念之间的丰富关系。它们缺乏元数据。因此“机器”(agent或基于规则的系统)很难从网络中推断知识。
当进入语义网的世界,网络资源通过元数据描述概念或术语之间的复杂的本体关系。这种元数据对于自动化是十分关键的,它是帮助程序从网络资源之间的关系进行知识推断的另一个维度(其他维度有网页和链接)。语义网的重点是实现信息的智能化。
Web services与网络的发展情况类似,它需要实现应用在服务交互方面的智能化。网页或XML页面代表了内容,而Web services代表了方法或操作。Web services像包装纸一样用于企业内部、顾客和交易伙伴之间的整合交互。目前,Web services的核心标准已经相对成熟,应用服务器和供应商都有符合标准的产品面市。
服务质量方面的一些主要标准也有了很大进展,比如安全性标准(如WS-Security)和可靠性标准(如WS-ReliableMessaging)。其他标准还有BPM标准(如BPEL)、交易标准(如WS-Transaction/WS-Coordination)、Web services管理(如WSDM)以及Web services门户标准(WSRP)。
(待续)
相关链接: