Tier指代码运行的位置,多个Layer可以运行在同一个Tier上的,不同的Layer也可以运行在不同的Tier上,当然,前提是应用程序本身支持这种架构。以J2EE和.NET平台为例,大多数时候,不同的Layer之间都是直接通过DLL或者JAR包引用来完成调用的(例如:业务逻辑层需要引用数据访问层),这样部署的时候,也只能将多个Layer同时部署在一台服务器上。相反,不同的Layer之间如果是通过RPC的方式来实现通信调用的,部署的时候,便可以将不同的Layer部署在不同的服务器上面,这也是很常见的解耦设计。
一个良好的物理架构可以带来:
A、性能的提升
B、可伸缩性
C、容错性
D、安全性
2.2.3、通用性分层 采取通用性分层模式,原则是通用性越多,所处层次越靠下并且各层的调用关系是自上而下的,越往下通用性越高。
基于系统中的重大功能来塑造概念架构的高层框架,过程中需要通过质量及约束等非功能性需求不断质疑初步的概念架构,逐步让这个概念架构完善,能够满足及支撑各类质量及约束的要求。具体的操作方法我们可以采取之前篇幅《HRMS(人力资源管理系统)-从单机应用到SaaS应用-架构分析(功能性、非功能性、关键约束)-上篇》中介绍的 “目标-场景-决策表” 来实现。
Ø通过“目标-场景-决策表”分析非功能需求:
通过分析关键的质量及约束内容,给出具体的场景及应对策略,梳理出清晰的决策表,在概念架构阶段融合决策表中给出的方案,最终给出初步的概念架构设计。
结合前面讲的需求梳理的要点内容,我们结合HRMS系统来进行应用实践,逐步形成概要架构设计。
A、基于RelationRose 来画出鲁棒图、确定系统的边界及关键内容
1)、分析系统中的参与者及应用功能边界:
基于上面我们能够发现我们的核心功能点:
组织管理:主要实现对公司组织结构及其变更的管理;对职位信息及职位间工作关系的管理,根据职位的空缺进行人员配备;按照组织结构进行人力规划、并对人事成本进行计算和管理,支持生成机构编制表、组织结构图等
人事档案:主要实现对员工从试用、转正直至解聘或退休整个过程中各类信息的管理,人员信息的变动管理,提供多种形式、多种角度的查询、统计分析手段
劳动合同:提供对员工劳动合同的签订、变更、解除、续订、劳动争议、经济补偿的管理。可根据需要设定试用期、合同到期的自动提示
招聘管理:实现从计划招聘岗位、发布招聘信息、采集应聘者简历,按岗位任职资格遴选人员,管理面试结果到通知试用的全过程管理
薪酬福利:工资管理系统适用于各类企业、行政、事业及科研单位,直接集成考勤、绩效考核等数据,主要提供工资核算、工资发放、经费计提、统计分析等功能。支持工资的多次或分次发放;支持代扣税或代缴税;工资发放支持银行代发,提供代发数据的输出功能,同时也支持现金发放,提供分钱清单功能。经费计提的内容和计提的比率可以进行设置;福利管理系统提供员工的各项福利基金的提取和管理功能。主要包括定义基金类型、设置基金提取的条件,进行基金的日常管理,并提供相应的统计分析,基金的日常管理包括基金定期提取、基金的补缴、转入转出等。此外,提供向相关管理机关报送相关报表的功能
行政管理:主要提供对员工出勤情况的管理,帮助企业完善作业制度。主要包括各种假期的设置、班别的设置、相关考勤项目的设置,以及调班、加班、公出、请假的管理、迟到早退的统计、出勤情况的统计等。提供与各类考勤机系统的接口,并为薪资管理系统提供相关数据。支持通知公告分发,支持会议室/车辆等资源预定并同步日历,支持调研和投票问卷,支持活动管理的报名/签到/统计等,支持人员的奖惩管理并与人事档案关联,支持活动的抽奖管理等