InfoQ

InfoQ

新闻

我的书签

登录注册 以永久保存书签。

该内容已经被标记书签!

标记书签错误,请重试!

Open Group的SOA资料卷

作者 Boris Lublinsky 译者 黄璜 发布于 2009年5月19日

领域
企业架构
主题
SOA ,
企业架构 ,
治理
标签
服务 ,
服务设计 ,
TOGAF

Open Group组织刚刚发布了SOA资料卷,这是Open Group在对SOA设计与实现标准化过程中的一个缩影。这卷书中涉及了许多方面,从基本的SOA定义到SOA架构以及其与企业架构的关系,到SOA治理等等。

该书将SOA定义为“一种支持面向服务的架构风格”。如这本书所定义的,服务的主要特征是:

  • 是对一个可重复的有着特定结果的业务活动的一个逻辑表示(例如,检查消费者帐户;提供天气数据,整合钻井报表)
  • 是自包含的
  • 可由其它的服务组成
  • 对服务的消费者而言是“黑盒”

而SOA架构风格最独具一格的特点是:

  • 它基于服务的设计-反映了现实世界的业务活动-来组成企业(或企业间)的业务流程。
  • 服务表示利用业务描述来提供内容(例如,业务流程,目标,规则,策略,服务接口以及服务组件)以及使用服务编配来实现服务。
  • I它对基础设施提出了独特的需求-它推荐使用开放标准来进行实现以保证互操作性与地理位置的透明。
  • 实现是环境特定的-它们由上下文所约束和支持,并且其描述必须在此范畴内。
  • 它对服务表示与实现提出了更高的治理要求。
  • 它还需要一个“石蕊试验”,以决定是否是“良好的服务”。

该书还定义了如下SOA的主要构建元件:

  • 服务
    ...一个可重复的有着特定结果的活动。一个服务有一个提供者,一个或多个消费者,并产生对消费者有价值的效果。
  • 业务流程
    ...是一个关系到企业业务使命的活动,并且以定义好的可重复的方式被执行。SOA的软件服务支持企业的业务流程。这种关系可以并且应当是相辅相存的。分析业务流程是认定软件服务的主要方式。另一方面,存在合适的软件服务,就能够支持开发新的业务流程,满足新的业务机遇。
  • 人工执行者
    人工执行者在当业务流程被建模的时候出现,同时在模型中也会展示系统的其它方面,比如管理与安全等。
  • 事件
    ... 事件在当业务流程被建模的时候出现,同时在模型中也会展示系统的其它方面,比如管理与安全等。
  • 服务描述,契约,和方针
    SOA当中的服务有一个重要的特性,它们的描述中清楚的陈述了它们会做什么以及如何与它们交互。一个服务契约可能是对于服务将会遵从于描述的一个隐式协议,或者一个更加正式的协议,可以被记录于签署的内部企业文档或者企业间执行的一个法定的合同。一个服务方针是服务提供者提供服务时计划遵循,或者服务消费者的应当遵循的一系列行为。服务描述,契约和方针构建元件在模型当中的出现展示了服务是如何被消费的。在SOA当中,这是系统实现和运营非常重要的一方面。
  • 服务组合
    服务组合是一个提供商的概念。它不是关于服务是做什么的,而是关于服务如何执行的。服务可由其它的服务来组成。业务流程可由服务和其它业务流程来组成。服务组合出现在展示服务是如何支持业务流程的模型中。
  • 信息项目,数据项目,以及数据存储
    数据可以被定义为“为适于通讯,理解或处理,对信息以正规化方式进行重新诠释的一种表示”...它们出现在展示服务如何被执行的模型中,展示服务如何相互集成以及与其它系统组件集成的模型中,展示架构化的系统如何处理数据在模型中,以及展示系统其它方面,比如性能,管理,安全和治理的模型中。

正如Richard Veryard在他的博文中所述:

SOA资料卷中的许多思想在SOA的圈子里流传已久。

它们可以在诸如CBDI面向服务架构实践门户或者应用 SOA:面向服务架构与设计策略书中被找到。然而,就像Antony Reynolds 总结的那样,这本书“...对于启发人们关于SOA的概念的思想来说是一个非常好的起点。值得一读。”

查看英文原文:The Open Group SOA Source Book

译者 黄璜 糊口靠的是Java Web,赶过SOA的潮,追过Cloud的风,真正欢喜的是Linux,向往的事情是研究网格计算。

深度内容

应用云平台的可用性——从新浪SAE看云平台设计

云计算平台的可用性,相比传统互联网服务而言,更加复杂和困难,也更具有挑战性。本文借助新浪SAE云平台为读者讲述了云平台可用性的定义、如何打造高可用的平台,以及对云计算的用户提出了建议。

JVM定制改进 @ 淘宝

淘宝高度重视Java平台的健康发展,组建了一个团队专注于Java平台的底层部分的性能、功能与稳定性改进;工作主要基于OpenJDK中的HotSpot VM开展,其中一些通用的功能随后也会逐渐反馈给OpenJDK社区。希望能与使用Java平台开发应用的大家交流经验。
本次演讲视频录制于QCon杭州2011

"伤得起"的云计算应用——对云端应用之架构的思考

2011年4月21日至22日是值得云计算从业者纪念的日子。Amazon的IaaS服务出现故障,导致许多商业网站的服务中断,影响非常严重。作为云计算用户,我们需要思考的是,如何保证即便在云服务不可用的情况,我们的应用架构仍然能够屹立不倒?本文正是站在云计算用户的角度试图探讨这一问题。

让交付的速度跟上思考的速度

12人的技术团队,4组刀片服务器,每月20亿的访问量,每日1次准时部署,99.9%的可用性。这可能吗?当然。想知道如何做的吗?百姓网将与您分享他们在DevOps实践过程中的经验和技巧。
本次演讲视频录制于QCon杭州2011

架构之路——穿行在产品和业务之间

篱笆作为一家起源于社区的电子商务公司,反映到技术层面就是同时要面对产品和业务,以及经营战略的变化调整。如何在产品和业务的夹缝之间完成技术架构的抽象与平衡,寻找更有效的价值定位,这当中有些经验教训和个人感悟愿与众人分享。
本次演讲视频录制于QCon杭州2011

特性注入:成功三部曲

本文将对特性注入以及相关方法做一个扫盲性的介绍。我们会解释这个框架的关键要素,并附上实例来证实它们。为了让文章保持相对较短,我们不会深入到某个工具或方法中,而是会给出一些参考资料,以便大家做进一步的研究。

解析JDK 7的动态类型语言支持

随着JDK 7的发布,字节码指令集终于迎来了第一位新成员——invokedynamic指令。这条新增加的指令是JDK 7实现“动态类型语言(Dynamically Typed Language)”支持而进行的改进之一,也是为JDK 8可以顺利实现Lambda表达式做技术准备。在这篇文章中,我们将去了解JDK 7这项新特性的出现前因后果和它的意义。

Java Remoting远程服务(下)

随着互联网应用的发展,Java分布式远程服务技术受到越来越多的关注,本文将对各种相关实现以示例的形式逐一介绍,并总结其中的优缺点,使读者能够在技术选型时有所准备。这是文章的下篇。