迷途书童

敏感、勤学、多思
随笔 - 77, 文章 - 4, 评论 - 86, 引用 - 0
数据加载中……

构建SOA风格的应用

当下,SOA这个词已经深入人心,几乎没有人不说自己设计的应用是遵从SOA的。

很多人对SOA的理解就是分层、模块化、面向对象。。。这种理解对不对后面再说。先看一些问题:

我今天看了一个开发团队的开发工程包结构,部分类的命名及组织产生了如下印象:

  • 每个usecase是一根根烟囱
  • 烟囱与烟囱之间连模型都没有共享。其实业务模型是有设计的,主要是实现模型没有保持业务模型的结构特征,全部成了“值对象”,开发人员天天把这些值对象叫做领域对象。
  • 有三层,是Struts帮忙定义的,三层分别根据usecase分包

这也是我们宣称的SOA系统!!!!连最基本的模型设计、模块设计、分层设计都没做好,难怪年年重构、年年完成不可能完成的任务!!!我确信这种重构、这种不可能完成的任务还会年年持续下去!!!

究竟什么是符合SOA风格的系统?先看看SOA宗师IBM的一篇文章:

http://www.ibm.com/developerworks/cn/architecture/ar-soastyle/

我来总结一下。

SOA能达到什么目的:

1.实现业务与IT的一致性;

2. 创建更灵活的反应更敏捷的IT基础设施;

3. 简化集成实现;

SOA要怎么做?

  1. 从应用程序到流程和服务。消除应用程序,将软件系统创建为一组由业务流程进行协调的交互服务。每个服务实现企业上下文中定义的特定业务目标或功能,业务流程表示必须实现的业务解决方案。这个讲的比较抽象,我的解读就是服务表示一个最细粒度的业务目标或功能,由业务流程来编排这些服务,实现更大粒度的业务目标或功能,业务流程也是服务。注意,这里隐式的定义了服务的概念,服务是自治的,可替换的,可被多个流程编排的,不耦合流程上下文的,是直接面向业务目标或功能的,不是一个公共函数库,服务不是封装了数据和方法的类。
  2. SOA的服务基于业务资源(对象)定义,不支持操作者的执行上下文,而是支持业务资源(对象)。这里的业务资源是指业务实体。业务实体也是来自业务的。所以,SOA能保证IT与业务的一致性。

 

别再说你的应用程序或烟囱遵循SOA的架构风格!

posted on 2012-07-18 21:19 迷途书童 阅读(815) 评论(0)  编辑  收藏 所属分类: 随感系统设计BPMSOA业务建模


只有注册用户登录后才能发表评论。


网站导航: