软件服务设计中流程建模的作用与实践
1. 引言
构建大型、关键任务的企业系统一直是一项具有挑战性的工作。随着时间的推移,这些软件系统变得紧密耦合,难以与不断变化的业务保持同步。面向服务的架构(SOA)为解决这一问题提供了希望,它通过将大型软件系统分解为较小的组件(软件服务),使得软件能够随着业务流程的改变而轻松重组。然而,如何定义软件服务成为了实施 SOA 的关键。
2. 当前软件服务设计方法
目前,软件服务设计方法主要分为两类:原则驱动的方法和分层方法。
2.1 原则驱动的方法
提供支持 SOA 设计原则的最佳实践,如抽象、标准化合同、自治、无状态、可发现性等。这些建议通常被打包成模式,由用户自行实现和组合。
2.2 分层方法
规定从某个抽象级别到一组软件服务的步骤。可以分为自上而下、自下而上和混合方法:
- 自上而下的方法 :从业务层面的抽象信息开始,逐步到服务实现的技术层面。常见的起点包括业务目标、功能业务领域或业务流程。这种方法的共同思路是将业务信息严格分解为具体且通常粒度较细的功能,这些功能构成服务候选。
- 自下而上的方法 :通过包装现有应用系统来实现面向服务。使用逆向工程技术,如聚类,识别内聚组件,这些组件提供的功能构成服务候选。
- 混合方法 :结合了自上而下和自下而上的策略。
无论采用哪种方法,初始的服务候选通常需要进行细化,包括分组、验证和验证,以确保符合 SOA 设计原则和利益相关者的需求。最终的服务规范步