面向服务的业务环境
面向服务是一种创建分布式系统的方法。在它最抽象的层面,面向服务作为一个服务提供程序,包含了一切——从大型机应用程序到打印机到码头工作人员到隔夜交货公司。服务提供程序通过接口公开了功能。面向服务的体系结构与这些功能和接口进行了映射,这样它们就可以编制到流程里。这种服务模型是“不规则的”:新形成的流程本身就是一个服务,它公开了一种全新的聚合功能。
这种服务模型的基础是接口与实现之间的分离。服务的调用者只需要(只应该)了解接口;实现过程可以随着时间而发展,而不会干扰到此服务的客户。有趣的是,许多实现工具都可以提供相同的接口;面向服务的几个关键利益来源于从如何提供功能的角度对功能进行抽象化。
对,这就是面向服务。那么面向服务都对谁有帮助呢?
看到一个鸡蛋,农民可能会想到一只小鸡;厨师可能会想到一盘煎蛋卷;小孩可能会想到一个五光十色的复活节装饰品。面向服务就是一个鸡蛋。
对于开发人员和解决方案架构师而言,面向服务是一种创建动态的协作应用程序的方法。通过支持运行时选择的功能提供程序,面向服务允许应用程序对特定业务流程的内容和环境具有敏感性,并随着时间的推移适度地合并新的功能提供程序。
对于IT经理而言,面向服务是一种有效的集成现代企业数据中心的各种典型系统的方法。面向服务提供了一个模型,可将多个系统的信息和业务逻辑聚合到一个单独的接口中,这样就可以通过通用的、一致的接口集处理各种冗余的系统。
对于首席信息官而言,面向服务是一种在不禁止部署新功能的情况下保护现有IT投资的方法。通过在基于功能的接口之后封装业务应用程序,该服务模型允许对关键任务应用程序进行控制性访问,同时它还创造了在此接口之后持续改善实现过程的机会。面向服务使投资避免了纷繁的变化。
对于业务分析师而言,面向服务是一种使信息技术投资更符合业务策略的方法。通过将员工、外部功能提供程序和自动化系统映射到一个单独的模型中,分析师可以更好地理解与人、系统和来源的投资相关的成本权衡。
对于Microsoft Corporation而言,面向服务是创建互联系统的一个重要前提。互联系统属于应用程序,它们可利用网络来链接推动业务流程的执行者和系统。你可以在一种特殊的应用程序模型上构建互联系统,这种模型超越了任何设备,适度地跨越了边界,并抑制了同步性的限制。通过将一系列服务和设备集中到了一起,互联系统可以比过去的分离的应用程序更有效地应对业务挑战。
企业的IT部门需要获得更深入的业务活动洞察,在此需求的带动下,它们正在寻找有效、简便的方法来集成它们的应用程序组合。其目标是透明性和一致性:
•对于我们的客户和业务关系,我们是否具有一致的观点(它能够让我们以最佳的方式服务于它们的需求和呈现我们的产品)?
•我们所有的业务流程是否都符合组织要求和政府规定?
•我们的系统是否能够针对我们的业务目标有效地提供价值?
•我们的技术投资能够实现一般任务的自动化,并对我们的员工的工作进行配合,从而克服复杂的挑战,这能否使我们最大限度地提高生产力?
为了实现透明性和一致性,组织必须创建各种连接机制。它们必须连接系统,以创建一致的信息管理程序。它们必须连接人和技术功能,以创建一致的业务流程。它们必须连接工作人员,以创建协作的工作团队。它们必须连接组织,以创建有效的价值链。
通用的功能调用模型是面向服务的重点,而面向服务是有效的互联系统策略的核心。
服务和互联系统
在计算机组件模型的环境下,服务是一种通过交换消息进行通信的程序。换句话说,服务是一组应用逻辑,它接收和发送的消息完整地定义了它的接口。
通过以可扩展标记语言(XML)为基础开发消息标准,面向服务正迅速成为构建互联系统的主流方法。
在连接各种不同的系统的过程中,其固有的挑战是特定平台的信息和过程模型的转换。在理想的世界里,我们将拥有:
•标准语法,在此可以明确地表达来自所有系统的信息。
•标准语义模型,各组织可以通过一种一致的语言表达它们的业务实践方法。
•标准协议,可以跨越操作环境和组织之间的边界传递信息。
•标准方法,用来绑定行为和业务文档。
在理想的世界里,我们的所有系统都将说这种“世界语”(除了它们自身的语言之外),这样它们就可以在它们的本地环境之外进行通信。
XML、XSD、WSDL、UDDI以及WS-*规范,比如WS-Security和WS-Policy,是这种不断发展的通用语言的第一批模型。
以广泛支持的标准为基础的虚拟平台提供了互操作性,如果没有这种互操作性,面向服务就将是一门需要大量的协议设计专业知识的晦涩难懂的学科,同时它也将是一种不可靠的投资回报。如果没有Web服务跨越各种异类平台连接你的企业功能,面向服务对你和你的组织的价值就将大幅度减少。
客户端是互联系统的一个非常重要但是却经常受到忽略的元素。服务只有在受到调用时才会引起注意。不同的交互要求需要支持各种不同的客户端模式。Web服务的客户端包括:
•具有丰富用户体验的智能应用程序—它们是具有以下特性的解决方案:与一个或许多服务进行交互;对它们检索的信息进行智能缓存;既提供了良好的交互性,又对离线信息处理提供了支持。
•智能设备—它们是包括以下范围的解决方案:从自助式电话亭到手持式库存跟踪技术到智能电话联系人管理。
•Web用户界面(UI)—它们属于企业门户解决方案,这些解决方案对业务与员工和组与组之间的交互进行了统一和协调。
•自动化系统—它们属于客户端,这些客户端一般不呈现UI,除非需要引发异常。
•流程编制服务——它们是调用其它服务来提供聚合的功能的服务。
不断发展的Web服务标准和实现它们的平台必须支持客户端驱动的概念,例如缓存杂注、资源约束设备的页响应以及长期运行的交互过程的对话环境管理。
即使面向服务的热情支持者对于该模型的范围也无法达成一致。争论主要集中在以下问题上:“面向服务的基础还有什么?”(“你想用这些鸡蛋做什么?”)下面让我们探讨与此争论相关的几个服务友好的概念:
•企业