SOA 年代划分

  • Mark Little
  • 胡键

2008 年 4 月 7 日

话题:SOA架构

第一代服务 —— 用第三代语言(如 C、C++、C# 或 Java)编写的简单服务,它们不使用如 WS-* 或 REST 这样的现代 SOA 标准。这些服务倾向于将消费者和底层资源紧密耦合。老的分布式计算技术,如 CORBA 和 DCOM,也属于这一类。

第二代服务 —— 以标准为基础的服务,而且相当简单。如实现一个检索、修改、创建或删除一个数据库中数据集的操作。这些服务常常可由其他途径(如从 Java 或 C# 类、一个 EJB、或一个数据库查询)自动产生。这些服务倾向于反映一个对象上的一个方法,或暴露一个底层实现策略(如关系表)。它们很容易创建,但因为它们是以技术为中心而非以业务为中心,难以在一个业务过程中使用。相反,它们需要和其他服务与逻辑结合,为编制提供合适的粒度级别。

第三代服务 —— 真正的“面向服务”,这些服务在向业务过程靠齐方面前进了一步。松耦合可以通过显式的定义服务请求和响应主体的数据格式来获得,这些格式由了解手边业务过程的分析师驱动,而非试图最优化执行时间和存储需求的技术。为了获得一个适合编制的粗粒度服务,常常需要缝合和转换第一代和第二代服务,同时这样也能获得松耦合。

第四代服务 —— 制度化的第三代服务,这些制度用来管理、保护、治理和重用服务。第四代 SOA 涉及一个感知 SOA 的技术和过程的生态系统,它允许构造和管理业务过程和更高级别服务。一旦达到第四代服务,一个公司将最大化 SOA 的好处,使他们能迅速地创建和修改过程来满足业务需求的变化。

SOA架构