SOA 设计原理

最初的面向服务体系结构( Service-Oriented Architecture SOA )的实现项目的经验表明,诸如面向对象分析与设计( Object-Oriented Analysis and Design OOAD )、企业体系结构( Enterprise Architecture EA )框架和业务流程建模( Business Process Modeling BPM )这样的现有开发流程和表示法仅仅涵盖了支持目前出现在 SOA 中的体系结构模式所需的部分要求。
Info World 最近的访谈中, Grady Booch 宣称 像对问题的良好抽象和良好的分离这样的工程基础决不会过时 ,不过,他也指出:还是有现实的机会提升抽象的级别。过去的经验表明,必须将抽象的级别提升到公司处理的业务领域,从而将整个企业 IT 前景都纳入考虑的范畴。
正如 Mark Colan 在文章《面向服务体系结构扩展 Web 服务的前景》中介绍的, SOA 是一种新兴的企业结构形式,可以用于设计下一代企业应用程序。 SOA 方法在有力地加强已经制定的良好通用软件体系结构原则(如信息隐藏、模块化和问题分离)的同时,还增添了一些其他的主题,例如服务编排、服务库和服务总线中间件模式。
需要结构化方法或分析与设计方法来设计高质量的 SOA 。因为现有的方法中没有一种能够满足程序设计人员对最新的 SOA 项目的要求,所以他们建议将已经形成的良好实践(如 OOAD EA BPM )中的原理组合起来,并且使用根据需要创新的原理来对其加以补充。

引言
面向服务体系结构( SOA )和 Web 服务的基本观念将成为我们日常语言的一部分,并可看作是适于设计现代企业应用程序的体系结构形式。在这种背景下,什么构成好的服务这个基本问题就成为确保成功实现 SOA 的关键。
像面向对象的分析与设计( Object-Oriented Analysis and Design OOAD )、企业体系结构( Enterprise Architecture EA )框架和业务流程建模( Business Process Modeling BPM )这样的现有建模规则为我们提供了高质量的实践,可以长期帮助标识和定义体系结构内的适当抽象。然而经验表明,这些实践各自单独应用时达不到要求。
在本文中,我们将研究 OOAD EA BPM 中的适当原理。我们还将推动对混合方法的需求,这种方法把所有这些规则中的原理与许多独特的新原理组合起来。这样得到的交叉学科 OOAD 方法使成功地进行 SOA 开发更容易,我们称之为面向服务的分析与设计( Service-Oriented Analysis and Design SOAD ),它还有待正式定义。我们还只是刚刚跨入 SOAD 的殿堂。

面向服务的概念
在发现新的商机或威胁的预期下, SOA 体系结构形式旨在提供企业业务解决方案,这些业务解决方案可以按需扩展或改变。 SOA 解决方案由可重用的服务组成,带有定义良好且符合标准的已发布接口。 SOA 提供了一种机制,通过这种机制,可以集成现有的遗留应用程序,而不管它们的平台或语言。
从概念上讲, SOA 中有三个主要的抽象级别:
操作:代表单个逻辑工作单元( LUW )的事务。执行操作通常会导致读、写或修改一个或多个持久性数据。 SOA 操作可以直接与面向对象( OO )的方法相比。它们都有特定的结构化接口,并且返回结构化的响应。完全同方法一样,特定操作的执行可能涉及调用附加的操作。
服务:代表操作的逻辑分组。例如,如果我们将 CustomerProfiling 视为服务,则按照电话号码查找客户、按照名称和邮政编码列出顾客和保存新客户的数据就代表相关的操作。
业务流程:为实现特定业务目标而执行的一组长期运行的动作或活动。业务流程通常包括多个业务调用。业务流程的例子有:接纳新员工、出售产品或服务和完成订单。
SOA 术语中,业务流程包括依据一组业务规则按照有序序列执行的一系列操作。操作的排序、选择和执行称为服务或流程编排。典型的情况是调用已编排服务来响应业务事件。
从建模的观点来看,由此带来的挑战是如何描述设计良好的操作、服务和流程抽象的特征以及如何系统地构造它们。这些相关问题都是当前行业内和学术界最常讨论的问题。据我们所知,最近几乎所有的 SOA 项目或专题研讨会都将这样的服务建模方面作为重要的主题,并引起了许多的争论。因此,让我们更近地作一番审视。
为什么BPMEAOOAD还不够?
早期的 SOA 实现项目经验表明,诸如 OOAD EA BPM 这样的现有开发流程和表示法仅仅涵盖支持 SOA 范式所需的部分要求。 SOA 方法在加强已经制定的良好通用软件体系结构原则(如信息隐藏、模块化和问题分离)的同时,还增添了附加的主题,例如,服务编排、服务库和服务总线中间件模式,在建模时需要对它们给予特别的关注。
1 展示了现有的 EA BPM OOAD 建模方法的主要应用领域,也是我们随后讨论 SOAD 的出发点。图中的水平轴表示项目生命周期阶段;垂直轴表示不同抽象层或领域之间的区别,而建模活动通常就是在其上进行的。 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值