版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、架构设计-Workshop 议程议程 n认识架构设计认识架构设计 n案例分析案例分析1 n案例分析案例分析2 认识架构设计认识架构设计 - 什么是架构设计?什么是架构设计? n从具体到抽象从具体到抽象 认识架构设计认识架构设计 - 架构设计的目的架构设计的目的 认识架构设计认识架构设计 我们已经做的我们已经做的 Workshop-议程议程 n分析两个具体的业务系统并展开讨论分析两个具体的业务系统并展开讨论 企业货物申报和审核系统企业货物申报和审核系统 机构人员和授权系统机构人员和授权系统 n讨论的方面讨论的方面 需求的清晰化需求的清晰化 如何划分系统的各个层次如何划分系统的各个层次 各层次的实
2、现方法各层次的实现方法 Workshop-案例分析案例分析1 n企业货物申报和审核系统企业货物申报和审核系统 某政府职能机构面向各企业的核心业务某政府职能机构面向各企业的核心业务 企业向政府申报其待审批的货物,缴纳相应的税费企业向政府申报其待审批的货物,缴纳相应的税费 n该政府职能机构规模简介该政府职能机构规模简介 总部设在北京总部设在北京 全国下设几十个二级机构、数千个业务现场。二级机构全国下设几十个二级机构、数千个业务现场。二级机构 的规模不等,沿海地区规模较大的规模不等,沿海地区规模较大 共有业务人员共有业务人员45万人万人 Workshop-案例分析案例分析1 n业务介绍业务介绍 企业
3、必须将货物向政府部门申报并且缴纳税费企业必须将货物向政府部门申报并且缴纳税费 政府部门会对企业下发某些货物许可证或减免税条例。政府部门会对企业下发某些货物许可证或减免税条例。 有些优惠政策同时也对货物的数量或金额进行了限制有些优惠政策同时也对货物的数量或金额进行了限制 有些政策是地方性的,而有些是全国性的有些政策是地方性的,而有些是全国性的 很多企业也是全国性的,因此企业信息也是全国一致的。很多企业也是全国性的,因此企业信息也是全国一致的。 同一企业,可能在同一时间段内申报货物同一企业,可能在同一时间段内申报货物 Workshop-案例分析案例分析1 n业务流程业务流程 企业的代表在业务现场提
4、供货物的纸面单据企业的代表在业务现场提供货物的纸面单据 政府机构的外聘的录入员将其录入到系统中政府机构的外聘的录入员将其录入到系统中 业务系统根据货物的类别将其分派到不同的工作人员进业务系统根据货物的类别将其分派到不同的工作人员进 行审核行审核 业务系统根据货物种类、数量和有关政策计算出税费金业务系统根据货物种类、数量和有关政策计算出税费金 额额 审核和计税通过后,企业缴费后领取回执,业务办结审核和计税通过后,企业缴费后领取回执,业务办结 Workshop-案例分析案例分析1 n业务规模业务规模 每个工作日,全国共产生每个工作日,全国共产生5万票货物申请单万票货物申请单(每年一千多每年一千多
5、万票万票) 业务量还在增长,估计业务量还在增长,估计35年内增长到每年二千多万票年内增长到每年二千多万票 每天上午和下午各有两个多小时是业务高峰,平均每秒每天上午和下午各有两个多小时是业务高峰,平均每秒 需要有需要有3票货物申请单入库票货物申请单入库 每票申请单关联了十几个代码表。审核时,相关的业务每票申请单关联了十几个代码表。审核时,相关的业务 数据表也有十几个数据表也有十几个 总部和二级机构的网络带宽从总部和二级机构的网络带宽从512K到到2M不等不等 二级机构和下属机构(现场)为高速局域网二级机构和下属机构(现场)为高速局域网 Workshop-案例分析案例分析1 n客户要求客户要求 核
6、心业务数据存放在总部核心业务数据存放在总部 n申报单、全国性的政策数据、企业信息、各种许可证等审核相申报单、全国性的政策数据、企业信息、各种许可证等审核相 关的单证关的单证 项目是由总部集中开发和维护的项目是由总部集中开发和维护的 各分支机构以及各业务现场的硬件和软件可以统一购买,各分支机构以及各业务现场的硬件和软件可以统一购买, 可以安装同样的操作系统和应用软件可以安装同样的操作系统和应用软件 Workshop-案例分析案例分析1 n讨论讨论 数据如何分布和集中数据如何分布和集中 n系统中涉及到的数据有哪几种?系统中涉及到的数据有哪几种? 本系统划分的逻辑层次本系统划分的逻辑层次 n请画出系
7、统的逻辑架构图请画出系统的逻辑架构图 n是什么类型的客户端应用?是什么类型的客户端应用? n不同的逻辑层,在物理上如何部署?不同的逻辑层,在物理上如何部署? n列出一些主要的业务逻辑组件列出一些主要的业务逻辑组件 如何保证事务完整性如何保证事务完整性 n许可证数据、申请单数据、企业数据可能部署在不同的数据库中许可证数据、申请单数据、企业数据可能部署在不同的数据库中 用户如何得到及时的响应用户如何得到及时的响应 n针对于审核过程数据检查针对于审核过程数据检查 系统如何部署和更新系统如何部署和更新 讨论讨论 Workshop-实现案例实现案例1 n数据如何分布和集中数据如何分布和集中 系统中涉及到
8、的数据系统中涉及到的数据 n审核时用到的各种参数数据(很少改变)审核时用到的各种参数数据(很少改变) 全国一致的参数数据全国一致的参数数据 各二级机构的参数数据各二级机构的参数数据 n全国一致的许可证数据(审核时可以改变)全国一致的许可证数据(审核时可以改变) n全国一致的企业数据(审核时只读,但是各地方可能修改)全国一致的企业数据(审核时只读,但是各地方可能修改) n企业的申报单数据(实时改变)企业的申报单数据(实时改变) n审核时的流转数据和日志数据(实时改变)审核时的流转数据和日志数据(实时改变) Workshop-实现案例实现案例1 n本系统划分的逻辑层次本系统划分的逻辑层次 逻辑层次
9、的划分可以参照分布式层次划分逻辑层次的划分可以参照分布式层次划分 物理上可以根据网络带宽,分层次部署数据库、应用服物理上可以根据网络带宽,分层次部署数据库、应用服 务器务器 从需求上看,该应用对用户界面的响应和数据的快速录从需求上看,该应用对用户界面的响应和数据的快速录 入有比较高的要求,可以考虑智能客户端入有比较高的要求,可以考虑智能客户端 Workshop-实现案例实现案例1 n如何保证事务的完整性如何保证事务的完整性 某些数据访问不应该加入事务某些数据访问不应该加入事务 数据必须批量提交,保证事务尽可能短数据必须批量提交,保证事务尽可能短 跨数据库的事务,可以考虑跨数据库的事务,可以考虑
10、JTA二阶段提交二阶段提交 Workshop-实现案例实现案例1 n用户如何得到及时的响应用户如何得到及时的响应 避免避免UI的初始化出现延迟的初始化出现延迟 仅提交必要的数据仅提交必要的数据 限制在业务高峰时,各种查询的复杂度和返回的记录数限制在业务高峰时,各种查询的复杂度和返回的记录数 复杂的数据提交和事务可以考虑异步模式复杂的数据提交和事务可以考虑异步模式 客户端充分运用各种缓存技术客户端充分运用各种缓存技术 能在客户端进行的校验,尽可能在客户端完成能在客户端进行的校验,尽可能在客户端完成 Workshop-实现案例实现案例1 n系统如何部署和更新系统如何部署和更新 数据更新,可以直接使
11、用数据库的数据分布功能数据更新,可以直接使用数据库的数据分布功能 应用服务器的更新,由总部统一发放更新包应用服务器的更新,由总部统一发放更新包 客户端更新,总部发放到二级机构。在二级机构上设置客户端更新,总部发放到二级机构。在二级机构上设置 分发服务器分发服务器 n各更新模块批量打包更新,避免在高峰期占用大量带宽各更新模块批量打包更新,避免在高峰期占用大量带宽 Workshop-案例分析案例分析2 n为其它办公应用设计一个机构人员管理系统和授为其它办公应用设计一个机构人员管理系统和授 权管理系统权管理系统 n两个系统都对外提供服务两个系统都对外提供服务 n两个系统都提供两个系统都提供UI可以进
12、行编辑可以进行编辑 都提供基于浏览器的管理界面都提供基于浏览器的管理界面 由于在企业内部使用,可以统一浏览器的版本由于在企业内部使用,可以统一浏览器的版本 n用户数目大约有用户数目大约有6000人,部门有人,部门有2000个左右,每个左右,每 个部门内最多有几十个人,部门的级别深度不超个部门内最多有几十个人,部门的级别深度不超 过过5级级 Workshop-案例分析案例分析2 n机构人员机构人员 基本要求基本要求 n能够体现出机构和人员的树型结构能够体现出机构和人员的树型结构 n能够体现人员的兼职情况能够体现人员的兼职情况 扩展要求扩展要求 n实现人员组功能实现人员组功能 n保存人员的认证数据
13、保存人员的认证数据 n数据输出服务,将机构人员数据导出到其他系统数据输出服务,将机构人员数据导出到其他系统 n数据变更通知服务数据变更通知服务 UI要求要求 n可以对机构、人员和组进行批量移动和删除可以对机构、人员和组进行批量移动和删除 n可以在将一个机构内的子对象进行排序可以在将一个机构内的子对象进行排序 n删除对象时,提供回收站功能删除对象时,提供回收站功能 n为其它应用提供人员选择查询的为其它应用提供人员选择查询的UI Workshop-案例分析案例分析2 n授权系统授权系统 基本要求基本要求 n可以设置应用、角色和功能可以设置应用、角色和功能 n可以将人员配置在角色中可以将人员配置在角
14、色中 n对象封装和访问接口对象封装和访问接口 扩展要求扩展要求 n可以将机构或组配置在角色中,形成动态角色。在动态角色中,角色可以将机构或组配置在角色中,形成动态角色。在动态角色中,角色 中包含哪些人是根据用户信息和外界环境决定的中包含哪些人是根据用户信息和外界环境决定的 n功能可以分层功能可以分层 n数据变更通知服务数据变更通知服务 n UI要求要求 n用户可以通过用户可以通过Copy/Paste编辑角色中的人员、机构和组编辑角色中的人员、机构和组 Workshop-案例分析案例分析2 n角色、功能和被授权对象角色、功能和被授权对象 用户1 管理员 科长 操作员 阅读绝密文件 阅读机密文件
15、阅读秘密文件 修改绝密文件 修改机密文件 用户2 用户3 用户组1 部门1 用户组2 部门2 Workshop-案例分析案例分析2 n认证要求认证要求 认证与应用的业务处理逻辑分开认证与应用的业务处理逻辑分开 如何尽可能地实现单点登录如何尽可能地实现单点登录 如何设计一个具有扩展性的认证架构如何设计一个具有扩展性的认证架构 认证的协议可能有要求认证的协议可能有要求 认证信息的存储可能变化认证信息的存储可能变化 认证方式可能有变化(用户名认证方式可能有变化(用户名/口令和口令和IC卡)卡) Workshop-案例分析案例分析2 n机构人员系统的对外服务机构人员系统的对外服务 需要提供的接口方法需
16、要提供的接口方法 n获取对象(人员、组或机构)获取对象(人员、组或机构) n获取子对象集合、获取组成员获取子对象集合、获取组成员 n任何其他条件的用户和机构查询任何其他条件的用户和机构查询 n对象的增加、修改、删除和移动对象的增加、修改、删除和移动 UI n提供机构人员的选择界面提供机构人员的选择界面 Workshop-授权系统的对外服务授权系统的对外服务 n需要提供的接口方法需要提供的接口方法 得到应用、角色和功能的基本信息得到应用、角色和功能的基本信息 得到角色中的人员得到角色中的人员 得到某个人所有角色得到某个人所有角色 得到某个人的所有功能得到某个人的所有功能 得到在某个角色中,属于某
17、个部门的所有人(包括兼职)得到在某个角色中,属于某个部门的所有人(包括兼职) Workshop-讨论讨论 n需求方面需求方面 机构人员机构人员 n机构包含人员、包含组机构包含人员、包含组 n组包含人员,能否包含其它组和机构组包含人员,能否包含其它组和机构? n机构人员管理的授权要求是什么?机构人员管理的授权要求是什么? 授权系统授权系统 n授权系统自身的授权逻辑是什么?授权系统自身的授权逻辑是什么? Workshop-讨论讨论 n各逻辑层的划分各逻辑层的划分 机构人员和授权系统之间相互依赖机构人员和授权系统之间相互依赖 n机构人员的管理本身需要授权机构人员的管理本身需要授权 n授权系统自身也需
18、要授权授权系统自身也需要授权 n授权系统的角色中包含人员、机构和组授权系统的角色中包含人员、机构和组 n授权系统的授权系统的UI中存在着人员选择的中存在着人员选择的UI n n业务逻辑层业务逻辑层 业务组件的相互使用情况业务组件的相互使用情况 业务实体的封装业务实体的封装 业务实体的保存、加载和缓存业务实体的保存、加载和缓存 一些典型的设计实现一些典型的设计实现 n角色中包含的人员或者人员属于那些角色角色中包含的人员或者人员属于那些角色 Workshop-讨论讨论 n数据存储数据存储 使用哪一种数据存储方式使用哪一种数据存储方式 如果使用关系数据库如果使用关系数据库 n如何保存树型结构的机构人
19、员数据如何保存树型结构的机构人员数据 n具有继承关系的对象如何保存在关系数据库中具有继承关系的对象如何保存在关系数据库中 n服务接口服务接口 机构人员、授权系统之间的调用机构人员、授权系统之间的调用 其它系统和这两个系统之间的调用其它系统和这两个系统之间的调用 以何种形式提供服务接口?以何种形式提供服务接口? nWeb Service、Java RMI、Socket Workshop-讨论讨论 n服务代理服务代理 主要作用是什么主要作用是什么? n缓存缓存 机构人员和授权系统所使用的缓存机构人员和授权系统所使用的缓存 n在哪些地方会使用缓存在哪些地方会使用缓存 n如何使缓存失效如何使缓存失效
20、n消息通知消息通知 如何设计一个消息总线如何设计一个消息总线 机构人员和授权信息的变更如何通知到其它系统机构人员和授权信息的变更如何通知到其它系统 如何进行订阅如何进行订阅 Workshop-讨论讨论 n用户界面用户界面 如何为其它如何为其它Web应用提供一个机构人员选择界面应用提供一个机构人员选择界面 n日志审计日志审计 划分哪些日志类型划分哪些日志类型 日志的保存和查询日志的保存和查询 日志中需要保存哪些信息日志中需要保存哪些信息 n测试测试 存在着哪几种类型的测试存在着哪几种类型的测试 测试数据的准备和参数化测试数据的准备和参数化 n部署和可用性部署和可用性 讨论讨论 Workshop-
21、实现案例实现案例2 n关于需求关于需求 机构人员机构人员 n机构包含组,组不包含机构,防止嵌套机构包含组,组不包含机构,防止嵌套 n组不再包含组,也是为了简化处理。在组不再包含组,也是为了简化处理。在LDAP中,组可以包含组中,组可以包含组 n在我们的应用中,通常需要象在我们的应用中,通常需要象LDAP一样,权限控制在每个对象一样,权限控制在每个对象 上,权限可继承。通常用户将部门分为几级,不同级别的管理上,权限可继承。通常用户将部门分为几级,不同级别的管理 员管不同部门。员管不同部门。 Workshop-实现案例实现案例2 n授权系统授权系统 授权系统自身的管理,也存在权限判断。授权系统自身
22、的管理,也存在权限判断。 n一旦创建一个新的应用,那么就会产生一组新的功能和角色,一旦创建一个新的应用,那么就会产生一组新的功能和角色, 专门用于对此应用的授权操作专门用于对此应用的授权操作 n实际上,应用内的角色和功能分成两类,自授权和应用授权实际上,应用内的角色和功能分成两类,自授权和应用授权 n通过这种自授权机制,可以实现分级授权通过这种自授权机制,可以实现分级授权 n系统初始阶段,任何人都可以操作系统初始阶段,任何人都可以操作 Workshop-实现案例实现案例2 n各逻辑层的划分各逻辑层的划分 Workshop-实现案例实现案例2 n业务实体的封装业务实体的封装 基于接口的设计,定义
23、各个对象的基本属性基于接口的设计,定义各个对象的基本属性 通过工厂模式创建对象通过工厂模式创建对象 接口和实现都要体现出对象之间继承关系接口和实现都要体现出对象之间继承关系 最好能够序列化为最好能够序列化为xml,可以供客户端脚本处理,可以供客户端脚本处理 Workshop-实现案例实现案例2 n业务实体与业务实体与O-R Mapping 定义业务实体和数据库表的对应定义业务实体和数据库表的对应 定义业务实体属性和表字段的对应定义业务实体属性和表字段的对应 根据对应关系,生成根据对应关系,生成CRUD的的SQL语句语句 n采用采用Lazy Loading加载子对象加载子对象 n通过通过Unit
24、ofWork来反映对象属性的变化来反映对象属性的变化 Workshop-实现案例实现案例2 n业务实体和缓存业务实体和缓存 在授权系统中,为了提高判断效率,所有用到的机构人在授权系统中,为了提高判断效率,所有用到的机构人 员对象,都会被保存到缓存中员对象,都会被保存到缓存中 运行一段时间后,缓存中将包含大多数机构人员对象运行一段时间后,缓存中将包含大多数机构人员对象 缓存中对象的实效,依赖于机构人员数据变更的消息通缓存中对象的实效,依赖于机构人员数据变更的消息通 知知 Workshop-实现案例实现案例2 n数据存储数据存储 LDAP和关系数据库的比较和关系数据库的比较 关系数据库中保存树型结
25、构关系数据库中保存树型结构 n在机构人员中,每一个对象包含一个在机构人员中,每一个对象包含一个Path,使用,使用Path来判断父来判断父 子关系,子关系,Path可以用来表示深度有限的树可以用来表示深度有限的树 总公司总公司办公室办公室秘书科秘书科张三张三 Workshop-实现案例实现案例2 n服务接口服务接口 服务接口也包含认证,但是仅仅对服务帐号进行认证,服务接口也包含认证,但是仅仅对服务帐号进行认证, 而不是应用帐号而不是应用帐号 以何种形式提供服务接口?以何种形式提供服务接口? n必须在服务接口的调用前后能够插入扩展功能必须在服务接口的调用前后能够插入扩展功能 日志、缓存日志、缓存
26、 nSocket 和和Web Service具有一定的扩展性具有一定的扩展性 Workshop-实现案例实现案例2 n服务代理服务代理 服务代理不一定封装服务接口暴露出来的所有方法服务代理不一定封装服务接口暴露出来的所有方法 服务代理的入口参数类型、返回参数的类型、调用方式服务代理的入口参数类型、返回参数的类型、调用方式 都是为了方便调用者都是为了方便调用者 服务代理这一层可以设置缓存,缓存和调用者可以在一服务代理这一层可以设置缓存,缓存和调用者可以在一 个个AppDomain中中 授权系统在判断权限时所用到机构人员对象,都是通过授权系统在判断权限时所用到机构人员对象,都是通过 服务代理得到的
27、并且进行缓存的服务代理得到的并且进行缓存的 Workshop-实现案例实现案例2 n缓存的使用缓存的使用 服务接口中的缓存服务接口中的缓存 n缓存失效可能跟时间有关(有效期)缓存失效可能跟时间有关(有效期) 服务代理中的缓存服务代理中的缓存 n缓存的失效可能和时间有关,也可以和外界的消息通知有关缓存的失效可能和时间有关,也可以和外界的消息通知有关 管理界面中用户认证信息的缓存管理界面中用户认证信息的缓存 n缓存的失效可能和缓存的失效可能和Cookie有关。有关。 Workshop-实现案例实现案例2 n认证认证 我们参照我们参照Passport机制编写了统一的机制编写了统一的Web认证服务认证服务 n认证方式可以动态地配置(认证方式可以动态地配置(LDAP、数据库)、数据库
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 光大银行金融市场部总经理面试题库含答案
- 京东物流调度员面试技巧与答案
- 电商公司客服文员面试技巧与答案
- 电商物流经理面试常见问题及答案
- 程序员项目架构师面试题含答案
- 2025年智能城市建设项目可行性研究报告
- 2025年城市水资源综合利用项目可行性研究报告
- 2025年自动化仓储系统开发与运营项目可行性研究报告
- 2025年乡村振兴战略产业园区发展项目可行性研究报告
- 2025年园区智慧能源管理项目可行性研究报告
- 纪委谈话笔录模板经典
- 消防安全制度和操作规程
- 叉车安全技术交底
- 单人徒手心肺复苏操作评分表(医院考核标准版)
- 国家预算实验报告
- 工业园区综合能源智能管理平台建设方案合集
- 附件1:中国联通动环监控系统B接口技术规范(V3.0)
- 正弦函数、余弦函数的图象 说课课件
- 闭合性颅脑损伤病人护理查房
- 《你看起来好像很好吃》绘本课件
- 囊袋皱缩综合征课件
评论
0/150
提交评论