440 likes | 594 Views
软件体系结构 (Software Architecture). 讲义 11 :面向业务单元的软件体系结构 Business-Oriented Architecture (BOA). 内容. 背景 面向业务单元的体系结构 集成机制 基于 BOA 的应用运行支撑平台 基于 BOA 的应用开发支撑平台 基于 BOA 的应用开发方法. 背景. 企业级应用 那些为商业组织、大型企业实现其价值目标而创建并部署的解决方案及应用程序,可以促进企业资源的优化配置,内部信息和商业知识的发掘利用 企业级应用的特点
E N D
软件体系结构(Software Architecture) 讲义11:面向业务单元的软件体系结构 Business-Oriented Architecture (BOA)
内容 • 背景 • 面向业务单元的体系结构 • 集成机制 • 基于BOA的应用运行支撑平台 • 基于BOA的应用开发支撑平台 • 基于BOA的应用开发方法
背景 • 企业级应用 • 那些为商业组织、大型企业实现其价值目标而创建并部署的解决方案及应用程序,可以促进企业资源的优化配置,内部信息和商业知识的发掘利用 • 企业级应用的特点 • 向网络分布式结构过渡,同时许多企业希望应用程序具有更好的伸缩性和可重复使用性,并且能不断地向企业外部扩展 • 这些大型企业级应用的结构复杂,涉及的外部资源众多、事务密集、数据量大、用户数多,有较强的安全性考虑 • 在企业中,一般都会部署多个彼此连接的、相互通过不同集成层次进行交互的企业级应用,同时这些应用又都有可能与其它企业的相关应用连接,从而构成一个结构复杂的、跨越Intranet和Internet的分布式企业应用群集 • 作为企业级应用,其不但要有强大的功能,还要能够满足未来业务需求的变化,易于升级和维护。
背景 • 企业应用对开发提出的要求 • 开发模式 • 要求更好地实现对业务的表达 • 要求更好地响应不断调整的业务流程 • 交付模式 • 套装软件:能够适应一定领域的市场需求,但很难满足不同用户的个性化需求 • 代码定制软件:很难全面考虑软件的扩展性、稳定性等架构因素,产品因此而不能快速适应客户的需求变化,同时也很难提高开发的效率
背景 层次 “独石” 业务单元BU 展现GUI 展现逻辑层 业务逻辑层 结构化 数据访问层 数据层 功能 日志 层次 结构 功能1 功能2 功能3 功能4 功能5 事务 安全 数据集成 过程集成 公共服务 BOA • 企业应用体系结构的演化
内容 • 背景 • 面向业务单元的体系结构 • 集成机制 • 基于BOA的应用运行支撑平台 • 基于BOA的应用开发支撑平台 • 基于BOA的应用开发方法
面向业务单元的软件体系结构 • BOA概述 • BOA是符合SOA、面向业务的体系结构,以面向特定领域的业务需求为目标,以MDA、AOP及中间件技术为基础,以最大限度地解决应用系统的共性问题为原则,提供针对业务特点分层实现的技术架构和实现策略
应用系统构件-业务单元 • BU模型 • BU是符合特定规范的业务构件,是最小的应用组装和操作权限分配单元,完成一定的业务功能或者提供一定服务 BU = 内部实现 + 外部接口 + 在线帮助 内部实现 = DO + Ops + View + Action 外部接口 = 表示集成接口 + 数据集成接口 + 过程集成接口
业务单元 • BU运行环境 • BU容器是BU的实际运行环境。应用系统支撑平台为BU容器提供所需要的各种服务,包括数据集成服务、过程集成服务、表示集成服务
业务单元 数据集成接口 DataConfig.xml 操作 PersonDAO.cs 过程集成接口 FlowConfig.xml BU的外在表现 ViewPerson.htm 数据对象 Person.cs 表示集成接口 WebConfig.xml BU的Action ViewPersonAction.cs 操作代理对象 (内存对象) • 业务单元实现实例
集成机制与业务单元的关系 • BU容器提供了对依赖注入和面向Aspect的支持 • 通过BU容器,使得应用基础平台可以将提供的数据集成、过程集成、表示集成服务以Aspect的形式注入到BU之中
应用系统构件-数据对象 • 数据对象的提出是为了屏蔽关系型数据库和面向对象的编程语言之间的差异,以及满足不同应用之间数据交换的需要 • 数据对象的分类 • 应用系统中的数据一般包括业务数据、管理数据、元数据等 • 数据对象与数据库表之间的关系 • 一对一映射 • 一对多映射
内容 • 背景 • 面向业务单元的体系结构 • 集成机制 • 数据集成机制-数据交换和共享平台 • 过程集成机制-工作流管理系统 • 表示集成机制-门户集成框架 • 基于BOA的应用运行支撑平台 • 基于BOA的应用开发支撑平台 • 基于BOA的应用开发方法
数据共享与交换平台 • 数据共享与交换平台提供一整套规范的、高效的、安全的数据交换机制,解决数据采集、更新、汇总、分发、一致性等数据交换问题 • 企业应用系统使用共享与交换平台进行数据交换,实现了纵向和横向的数据整合
数据交换服务器 • DXS是信息交换的中心,它与其它DXS相互协作共同完成数据交换与共享的任务 • 每个DXS控制若干数量的适配器,通过预先定义好的发布订阅规则,与它们进行异步、安全、可靠、实时的消息传递 DIS
适配器 配置工具 • 配置工具包括对适配器运行所进行的必要的配置 • 配置工具提供可视化的用户界面,最后生成为配置文件 • 在完成适配器的配置后,适配器根据配置文件的不同对不同的系统完成不同的动作(如数据对象转换),将不同的应用系统与整个DXS集成在一起 代理运行 • 把应用产生的数据对象转换成事先定义好的格式,并根据发布订阅规则放入发送队列,最后由发送线程把消息发送到DXS上 • 接收来自DXS的消息,把其中包含的数据对象转换成应用可识别的格式,最后传递给应用。
管理器 • 管理器管理着业务群中的所有DXS、适配器,同时还负责与其它业务群建立连接 • 管理器是一个具有可视化界面的应用程序,管理员可以通过简单的界面操作完成对业务群内节点和DXS的创建、维护、监控、管理
两种数据传递模式 请求2 请求1 事件 订阅2 订阅1 注册 提供 应答1 应答2 事件 请求/应答模式 发布/订阅模式 应用系统2 应用系统2 应用系统1 应用系统1 适配器2 适配器2 适配器1 适配器1 DXS DXS 适配器3 适配器3 应用系统3 应用系统3
信息集成机制与业务单元的交互 • Advice Wrapper中定义了一系列AbstractAdvice的子类,这些子类分别包装了适配器的具体功能,比如发送消息到队列等 • 关注点定义了数据集成服务从何处注入BU里的OPS中去。这种定义是通过配置完成的,由BU容器来解释,然后容器将数据集成服务注入到客户端应用中去 • 业务单元仅关心业务逻辑的处理,多个应用程序之间的数据共享和同步由容器根据切面关注点配置来完成,数据同步与业务代码相分离
过程集成机制-工作流管理系统 过 程 建 模 过 程 分 析 执 行 监控 验 证 性 能 过程模型 输出 正确性 模型优化 参 考 工作流 组织模型 仿 真 评 价 数据模型 模 型 实 例 分 析 环 境 功能模型 模型 建 模 环 境 执 行 环 境 逻辑层 : 语义层 : 执行层 : e ( x ) state n n … … guard m m … … y := e ( x ) 引入C_NET来描述过程语义 用“同步距离”来定义过程逻辑 通过对偶网规约引擎的执行 基于P/T系统层次化的工作流模型----”过程网”
过程集成机制机制与业务单元的交互 • Advice Wrapper中定义了一系列AbstractAdvice的子类,这些子类分别包装了具体引擎接口功能,比如建立连接、新建流程、完成工作项等 • 关注点定义了工作流引擎的切面从何处注入到业务单元的OPS中去。这种定义是通过配置完成的,由BU容器来解释,然后容器将引擎的服务注入到客户端应用中去 • 客户端代码仅关心业务逻辑的处理,过程流转的控制与客户端代码相分离。这种面向aspect的工作流引擎服务,使得业务逻辑和过程流转之间的耦合更加松散,从而引擎能够更加灵活地支持过程变动和适应客户端应用的变化性
表示集成框架 • 处理请求和产生动态内容的可插拔的用户界面控件 • 皮肤是使用模板将内容以及表现层从应用程序逻辑中分离出来的一种管理机制 • 通过皮肤,用户可以方便的定制页面的布局和外观,而不需要编写代码 • 支持用户与模块进行交互 • 增强门户的外观而不用改变皮肤的设计 • 容器的目的就是通过某些设计元素的包围,使用户更关心模块的内容
内容 • 背景 • 面向业务单元的体系结构 • 集成机制 • 基于BOA的应用运行支撑平台 • 基于BOA的应用开发支撑平台 • 基于BOA的应用开发方法 • 实例研究
基于BOA的应用运行支撑平台 • 基于运行支撑平台的应用架构
BU和支撑平台的交互过程 • 最终用户访问查看用户信息页面 • 支撑平台得到页面地址信息和参数,并根据表示集成接口查找到相应的BU • 支撑平台根据BU的表示集成得到相应的Action • 支撑平台调用Action • Action根据参数信息调用操作DO的Ops,完成加载相关人员的信息 • Action被BU容器捕获,并调用相应集成接口; • 6.1 BU容器会捕捉到Action调用DO的操作; • 6.2 BU容器查看BU的过程集成接口 • 6.3 BU容器查看BU的数据集成接口 • 6.4 Action返回给支撑平台操作参数 • 支撑平台根据Action返回参数和表示集成接口选择View(8.1),展现给用户最终的界面(8.2)。
基于BOA的应用运行支撑平台 • 应用运行平台的技术架构
数据访问层 • 数据对象指面向对象概念里面的类,定义了对象的属性和属性的访问方法,以及判断对象是否相同的比较方法 • 数据访问对象包含了直接操纵数据对象的方法,如通用的增加、删除、修改、查找、分页、缓存操作 • 数据对象与数据库映射定义了数据对象和数据库表的对应关系 • 代码表支持,在数据访问层中我们提供对这些代码表的缓存机制和按需加载机制,提高应用系统得运行效率。
evWeb框架 • 前端控制器相应用户的请求,读取配置文件,把请求交给相应得用户请求处理器处理 • 配置加载完成解析配置文件并构造对象结构,在需要时重新加载部分或者全部配置文件 • 数据绑定完成web页面的表单到数据对象的绑定功能、或者web页面的表单到hashtable的绑定过程。 • 校验功能分别在服务器端和客户端按照配置文件对数据进行必要的校验 • 用户请求处理器完成对用户请求的解析,调用数据绑定、调用扩展的Action,现实最终页面
evWin框架 • evWin是一个用于构建windows桌面应用系统的可扩展的平台 • 提供了控制不同的桌面应用共同工作的一套核心服务 • 开发人员把应用包装成符合evWin插件协议的可插拔构件,提供到evWin平台 • 在运行时提供扩展点的插件,在其扩展点会使用平台提供的插件管理服务的得到扩展其扩展点的插件回调类,通过调用回调类使用其它插件
内容 • 背景 • 面向业务单元的体系结构 • 集成机制 • 基于BOA的应用运行支撑平台 • 基于BOA的应用开发支撑平台 • 基于BOA的应用开发方法 • 实例研究
DO定制工具 • 提供业务数据建模功能 • 工具以MDA技术为核心,通过可视化、图形化的、面向对象的操作方式,创建业务数据模型,并自动生成持久化类、映射文件和物理数据库建库、建表和建字段的DDL脚本 • 可以实现模型与平台的分离,我们只需要构造独立于平台的数据模型,而不用考虑与平台相关的各种技术细节
BU组装工具 • 实现BU的创建、编辑、删除以及对BU库查询的功能,以可视化和向导的方式进行BU的组装和配置 • 遵照MVC的思想
基于BU的集成机制 • 负责将各种基于BU的应用集成起来,集成的工作包括对各种集成机制的建模以及建立各集成模型中的元素和BU间的连接 • 关联模型元素和BU的工作是通过AOP的方式实现的 • 采用AOP的方式可以避免修改已有的BU,提高集成的敏捷性和可靠性 • 在用户界面上,这些工作都是以可视化的图形界面或向导的方式展现的,具有直观、易操作的特点
Web框架配置工具 • 实现WEB框架的定制功能 • 提供丰富的、可扩展的模板,通过图形化的、拖拽的操作方式,支持企业网站的快速开发和维护 • 其主要功能包括导航定制、页面样式定制、主题定制等
构件管理工具 • 实现对应用基础平台中的BU和基础构件的管理 • 提供对构件和BU的发布、分类、检索、存储、定位、提取等功能, • 提供验证、反馈、库管理等辅助功能 • 构件管理工具也是在开发环境的基础上,通过扩展获得的,与其它开发工具具有一致的风格
内容 • 背景 • 面向业务单元的体系结构 • 集成机制 • 基于BOA的应用运行支撑平台 • 基于BOA的应用开发支撑平台 • 基于BOA的应用开发方法
练习题 • 就自己的理解良好的软件体系结构设计对软件项目有什么好处? • 给下面的系统设计一个合理的体系结构风格,并说明为什么采用该体系结构风格 • 火车站自动售票系统 • 三维几何造型系统 • 网上银行系统
谢谢大家! Questions or comments?