SOA = 5S

本文中的5S 是指麦肯锡企业管理的 7S 方法论中,除了 愿景和 战略之外的5 S ,包括(系统Systems 、组织 Structure 、能力 Skills 、人力 Staff 、文化 Style 可以参考资料: 麦肯锡7S 模型

很多人都在说SOA ,但是真正能够把 SOA 说清楚的没几个。要不就是太概念化,要不就是太意识化。我希望我这次能够把他说清楚。我们是一个给客户提供信息化的公司,不要我们自己都对 SOA 一知半解。

老卢曾经打过比方,SOA 就是搭积木。这个比方确实不错。但是不足以说明清楚 SOA 到底是什么。

SOA这个概念是在 Gartner 十多年前(1995 年)提出的, Gartner定义 SOA 是一种模块化的、发现的 ( 也就是不用查看实施代码就可以使用 ) 、分布式的、共享的、可交换的 ( 也就是不需要改变代码就可以交换的软件 ) 和适应于不同软件的 ( 也就是能够与其它应用程序连接的 ) 模式

事实上,当时提出的时候,由于没有很好的技术支持,所以发展比较缓慢,随着基于XML WebService 的迅速发展, SOA 的概念也越来越被重视,特别是以 IBM 为首的专注于提供完整企业信息化解决方案的公司。他们在原有的基础上,把 SOA 完善为完整的一个信息化架构体系。包括业务分析,建模,实现,部署等等。

我们现在应该明确一件事,就是SOA 是为企业整体信息化服务的。当我们在给企业提供一套完整解决方案的时候,企业会在担心你的方案如何适应它现在的应用,如何适应它以后的发展。这是很正常的,因为每一个企业都在发展,必然要用发展的眼光去看待这个问题。

那么抛开软件不谈,对于一个企业,自己要做好目前的业务,要让以后的业务很好的发展,自己应该如何设计自己呢?

所以我说,SOA 就是企业设计中的 5s 。其目的是为了支持企业当前和以后的战略发展,其依据是自身的业务,其路径是通过 5 个方面去体系化设计。

依据这点,我们完全可以大胆地从业务上去重新定义一下SOA SOA 是提供给组织领导者设计其自身业务的一种体系架构,它从系统、组织、能力、人力、文化五个方面,让组织领导者更加容易设计和建设自身队伍。

“系统”之SOA BPM 关系。这两个概念,经常被一起提及,有人说这两者本是同一个东西,但是角度不同而已。但在我看来, BPM 这是 SOA 的一个维度。这就是我们的系统。 BPM 的简单描述是工作流 Work Flow ,其实 Work Flow 只是一个技术描述,本质上和 BPM 是同一个感念。 BPM 是从业务角度看流程。

“组织”之SOA Portlet 的关系。很多人可能小看了有关组织的建模。因为组织向来是企业已经提供给我们的。但是,真正的企业的组织建模,可远远不止这些。实际上,由于流程和组织的紧密关系, BPM 中也提出了对组织建模的要求。包括组织、角色及各种约束关系等到。在实际建模的时候,还得考虑安全、授权等方面。而这些,都设计在系统中,最后以 Portlet 的方式呈现给用户。不同的人,有不同的界面和业务入口。

“能力”SOA ESB 的关系。 ESB 是企业服务总线的意思。 ESB 是提供注册发现某种服务能力的地方。事实上, ESB 只是一个载体。所有能力的集合,才显示出 ESB 的作用。它吧企业中的所有能力都进行了集中管理。方便各方面进行整合调用。

“人力”之SOA XML 的关系。在企业信息化过程中,并不能保证某个系统一定就能适合公司的业务应用。可能上一个系统是为了磨合业务,也可能是为了学习新的方式。不管怎么样,系统的升级换代是正常的。在这个过程中,不同系统之间的整合,新旧系统的整合,就必须依靠统一的描述语言来规范。这就是 XML 的作用,基于 XML WebService 是关键的实现技术。

“文化”之SOA SNS 的关系。 SNS 的背后就是那个著名的“ 六度分割 理论,简单地说:你和任何一个陌生人之间所间隔的人不会超过六个,也就是说,最多通过六个人你就能够认识任何一个陌生人。按照六度分割理论,每个个体的社交圈都不断放大,最后成为一个大型网络。后来有人根据这种理论,创立了面向社会性网络的互联网服务,通过 熟人的熟人 来进行网络社交拓展。虽然企业中,不光包括 熟人的熟人 的社区。企业中文化的建立和传播途径,其实正和SNS 有着密切的关系。现在很多个人门户的方式都是仿照这种社区网来建设的。

上门提到的有关SOA 几个方面的技术,并不是完完全全地对应,但却都是从这个角度去切入,去进行架构。下图简单总结了一下。

SOA的本质是组织设计的一个模式一个方法 _SOA

SOA的建模过程,其实也是一个 5S 的建模过程。说到这里,我们不得不学习一下 IBM 关于 SOA 方面的建模理论,这就是 SOMA Service-Oriented Modeling and Architecture )。 

IBM SOMA 是为面向服务的分析和设计提出的一种架构方法,它主要包括服务发现、服务规约、服务实现。

第一、服务发现

1)  业务领域和业务功能域分解

2)  遗留系统分析

3)  业务目标建模

第二、服务规约

1)  服务分类

2)  服务流规约

3)  业务对齐

4)  服务组装

5)  消息和事件规约

6)  子系统分析

7)  组件规约

第三、服务实现

1)  现有系统分析

2)  确定服务分配

3)  组件间的映射关系

4)  服务组装

5)  服务实现决策

6)  服务基础设施设计

目前SOMA 相关详细内容, IBM 内部是保密的,没有对外部客户进行宣讲和培训。实际上已经和用友和金蝶都讲解过。可以看出 IBM 的这个 SOMA 基本上也是在进行系统设计。事情是一样的,只是处理的方式不一样。

总结一下,SOA 不是一个技术,也不是一个软件,而是一种思维模式,系统架构。它包括组织分析、设计、建立的过程。如果简单点来说, SOA 就是 5S