SOA代表着一种面向服务的软件架构理念。基于SOA的软件系统的搭建以及解决方案的实施,现有的以中间件为核心的基础设施,除了提供基础公共服务和基础构件框架之外,还需要提供一些必要的关键支撑机制,同时在SOA相关工具的支持下才能得以有效实现。
基础设施
如图 1所示,基于SOA的软件系统的逻辑架构模型通常可以按功能分解为互动服务、流程服务、信息服务、伙伴服务、业务应用服务以及访问服务,它们分别代表了一些对支撑SOA架构中间件基础设施的要求。
交互服务:交互服务与业务设计的表现逻辑有关,它是负责应用程序和最终用户之间交互的构件,当然,有时与外部世界的交互并不只限于与人的交互。交互服务通常至少包括企业门户和Web UI,前者是业务应用的客户端,后者则是访问企业门户的基础。
流程服务:为了提高跨企业、部门的业务处理的效率和增强业务间的协同能力,SOA基础设施通常通过业务流程管理和流程引擎来对不同业务系统的服务进行编排、执行与监控。业务流程管理的核心目的是为了业务优化;SOA旨在提高业务敏捷性,对业务流程管理最大的改变就是可以显著降低业务基础服务的部署成本、提高业务基础服务的灵活性和可复用性。
信息服务:信息服务包括了企业业务设计中的数据逻辑。一方面,需要对企业自身的业务数据的持久化进行有效的管理;另一方面,必须实现不同数据来源的异构数据之间的统一视图和整合管理,从而为需要信息的服务提供一个更简单的存取模式。该服务对基础设施的相关要求通常包括主数据管理、内容管理、信息集成、数据持久化等方面的内容。
业务应用服务:业务应用服务实现企业的核心业务逻辑,它们是作为业务模型中的服务而专门建立的服务构件,代表着业务模型中不可分解的基础服务,但可以组成更高层次的服务。业务应用服务提供了统一的业务构件标准,规定了业务构件的用户访问行为、数据组织方式、功能封装方式、业务处理逻辑的标准“语法”。中间件基础设施必须为其实现提供服务构件容器,支持基础服务的封装、复合业务服务构件的组装等相关内容。
接入服务:接入服务旨在将遗留应用程序集成进SOA。通常包括对其功能的简单包装,使它们作为服务,或者在较为复杂的情况下修改和增加现有功能的逻辑,以更好地满足业务设计的需求。接入服务要求基础设施提供相应的应用适配器服务,进行协议、数据等内容的有效转换。
伙伴服务:以服务为中心的企业集成通过伙伴服务提供与企业外部的B2B的集成能力。因为业务伙伴系统的异构性,伙伴服务的实现需要基础设施提供多种传输协议和数据格式的支持,其处理方式和接入服务类似。
为了将分解之后的各种业务服务和基础服务进行有效地整合,SOA架构解决方案的基础设施平台针对性地提供了基于企业服务总线(ESB)方式的服务整合体系。ESB是所有类型服务的注册、储存、查找、调用的中介机构,为达成良粒度、松耦合并基于标准化的服务整合提供了消息引擎、通用事件框架和智能路由等必要机制。ESB是SOA解决方案得以顺利实施的核心基础设施。
图 1 SOA基础设施和工具示意图
工具
基于SOA的解决方案的完整生命周期管理需要服务开发工具和管理工具的有效支持。服务开发工具提供从覆盖应用设计、服务建模,服务构件开发、服务编排与流程建模的完整服务实现的开发环境。服务管理工具则实现了服务解决方案的定义、部署、安全、监控及管理的SOA运营管理体系。服务开发和管理工具一起,提供了对基于SOA的解决方案的建模、装配、部署、管理的全生命周期一体化支持能力。
SOA实践
需要指出的是,SOA并非放之四海而皆准的真理,和其他软件技术一样,SOA也有其适用的场景,并非一切集成问题都适合用SOA来解决。一般地,遵循松耦合、良粒度以及标准化的SOA架构解决方案,其适用场景通常包括:
易变的组织和业务架构
开放互操作的技术体系
各种异构性广泛存在的应用集成架构
非性能关键的应用系统构建和集成
实施SOA,首重决策,除了适用性的考虑以外,还需要充分考虑到其中各种技术和非技术的困难,例如,投入大、周期长,投资回报率难估算;人的观念、积习难改;成功案例难觅;真正掌握SOA理念且具备实施SOA能力的人才难觅等等。
在实际的基于SOA的开发活动中,最适用的开发方法是综合自顶向下和自底向上这两种方法的优点,寻求两者之间的结合点,采取中间相遇的方法来进行,如图 5所示。业务人员和开发者都各自循序渐进地做自己擅长的事,在过程中不断沟通,这样就能够使得业务的改变得到最快响应,并且不会影响开发效率,最终两者能够在某一点相遇,从而搭建起符合需求的系统。这样既可以充分利用业务驱动的自顶向下方法所带来的业务敏捷性,同时自底向上方法也确保了企业已有IT资产能得到有效地封装和再利用。
图 2 SOA开发方法
基础设施
如图 1所示,基于SOA的软件系统的逻辑架构模型通常可以按功能分解为互动服务、流程服务、信息服务、伙伴服务、业务应用服务以及访问服务,它们分别代表了一些对支撑SOA架构中间件基础设施的要求。
交互服务:交互服务与业务设计的表现逻辑有关,它是负责应用程序和最终用户之间交互的构件,当然,有时与外部世界的交互并不只限于与人的交互。交互服务通常至少包括企业门户和Web UI,前者是业务应用的客户端,后者则是访问企业门户的基础。
流程服务:为了提高跨企业、部门的业务处理的效率和增强业务间的协同能力,SOA基础设施通常通过业务流程管理和流程引擎来对不同业务系统的服务进行编排、执行与监控。业务流程管理的核心目的是为了业务优化;SOA旨在提高业务敏捷性,对业务流程管理最大的改变就是可以显著降低业务基础服务的部署成本、提高业务基础服务的灵活性和可复用性。
信息服务:信息服务包括了企业业务设计中的数据逻辑。一方面,需要对企业自身的业务数据的持久化进行有效的管理;另一方面,必须实现不同数据来源的异构数据之间的统一视图和整合管理,从而为需要信息的服务提供一个更简单的存取模式。该服务对基础设施的相关要求通常包括主数据管理、内容管理、信息集成、数据持久化等方面的内容。
业务应用服务:业务应用服务实现企业的核心业务逻辑,它们是作为业务模型中的服务而专门建立的服务构件,代表着业务模型中不可分解的基础服务,但可以组成更高层次的服务。业务应用服务提供了统一的业务构件标准,规定了业务构件的用户访问行为、数据组织方式、功能封装方式、业务处理逻辑的标准“语法”。中间件基础设施必须为其实现提供服务构件容器,支持基础服务的封装、复合业务服务构件的组装等相关内容。
接入服务:接入服务旨在将遗留应用程序集成进SOA。通常包括对其功能的简单包装,使它们作为服务,或者在较为复杂的情况下修改和增加现有功能的逻辑,以更好地满足业务设计的需求。接入服务要求基础设施提供相应的应用适配器服务,进行协议、数据等内容的有效转换。
伙伴服务:以服务为中心的企业集成通过伙伴服务提供与企业外部的B2B的集成能力。因为业务伙伴系统的异构性,伙伴服务的实现需要基础设施提供多种传输协议和数据格式的支持,其处理方式和接入服务类似。
为了将分解之后的各种业务服务和基础服务进行有效地整合,SOA架构解决方案的基础设施平台针对性地提供了基于企业服务总线(ESB)方式的服务整合体系。ESB是所有类型服务的注册、储存、查找、调用的中介机构,为达成良粒度、松耦合并基于标准化的服务整合提供了消息引擎、通用事件框架和智能路由等必要机制。ESB是SOA解决方案得以顺利实施的核心基础设施。
图 1 SOA基础设施和工具示意图
工具
基于SOA的解决方案的完整生命周期管理需要服务开发工具和管理工具的有效支持。服务开发工具提供从覆盖应用设计、服务建模,服务构件开发、服务编排与流程建模的完整服务实现的开发环境。服务管理工具则实现了服务解决方案的定义、部署、安全、监控及管理的SOA运营管理体系。服务开发和管理工具一起,提供了对基于SOA的解决方案的建模、装配、部署、管理的全生命周期一体化支持能力。
SOA实践
需要指出的是,SOA并非放之四海而皆准的真理,和其他软件技术一样,SOA也有其适用的场景,并非一切集成问题都适合用SOA来解决。一般地,遵循松耦合、良粒度以及标准化的SOA架构解决方案,其适用场景通常包括:
易变的组织和业务架构
开放互操作的技术体系
各种异构性广泛存在的应用集成架构
非性能关键的应用系统构建和集成
实施SOA,首重决策,除了适用性的考虑以外,还需要充分考虑到其中各种技术和非技术的困难,例如,投入大、周期长,投资回报率难估算;人的观念、积习难改;成功案例难觅;真正掌握SOA理念且具备实施SOA能力的人才难觅等等。
在实际的基于SOA的开发活动中,最适用的开发方法是综合自顶向下和自底向上这两种方法的优点,寻求两者之间的结合点,采取中间相遇的方法来进行,如图 5所示。业务人员和开发者都各自循序渐进地做自己擅长的事,在过程中不断沟通,这样就能够使得业务的改变得到最快响应,并且不会影响开发效率,最终两者能够在某一点相遇,从而搭建起符合需求的系统。这样既可以充分利用业务驱动的自顶向下方法所带来的业务敏捷性,同时自底向上方法也确保了企业已有IT资产能得到有效地封装和再利用。
图 2 SOA开发方法