软件架构入门PPT.ppt

上传人:牧羊曲112 文档编号:5846224 上传时间:2023-08-27 格式:PPT 页数:56 大小:3.81MB
返回 下载 相关 举报
软件架构入门PPT.ppt_第1页
第1页 / 共56页
软件架构入门PPT.ppt_第2页
第2页 / 共56页
软件架构入门PPT.ppt_第3页
第3页 / 共56页
软件架构入门PPT.ppt_第4页
第4页 / 共56页
软件架构入门PPT.ppt_第5页
第5页 / 共56页
点击查看更多>>
资源描述

《软件架构入门PPT.ppt》由会员分享,可在线阅读,更多相关《软件架构入门PPT.ppt(56页珍藏版)》请在三一办公上搜索。

1、软件架构入门,A Methodology of Software Architecture Design,认识软件架构,架构就是代码的组织方式,一句话说明架构是什么,说说这三个架构各自的优缺点,但架构只著眼于大处,函数,类,详细设计,框架,架构设计,模块,语句,算法,代码粒度,函数库,类库,库粒度,设计粒度,应用,许多人常将架构与设计模式和框架混为一谈,这是错的,主要,主要,架构性框架,架构粒度=f(项目,阶段,层),设计师角色,【架构师】关注大格局的设计需求,【系统设计师】关注小的局部设计需求,【算法工程师】关注具体问题的代码解决方式,效率为主,详细设计,架构设计,算法,什么是大格局的需求?

2、,运营阶段可用性,运营阶段安全性,运营阶段高性能,未来变化伸缩性,未来变化扩展性,长期运营降低成本,开发阶段开发测试,运营阶段可用性,运营阶段安全性,运营阶段高性能,未来变化伸缩性,未来变化扩展性,长期运营降低成本,开发阶段开发测试,相比于企业级系统,互联网系统的差异,并发量大,流量大,数据量大,运营阶段可用性,运营阶段安全性,运营阶段高性能,未来变化伸缩性,未来变化扩展性,长期运营降低成本,开发阶段开发测试,相比于企业级系统,互联网系统的差异,暴险危机高,运营阶段可用性,运营阶段安全性,运营阶段高性能,未来变化伸缩性,未来变化扩展性,长期运营降低成本,开发阶段开发测试,相比于企业级系统,互联

3、网系统的差异,地理分布广,网络条件差异大,运营阶段可用性,运营阶段安全性,运营阶段高性能,未来变化伸缩性,未来变化扩展性,长期运营降低成本,开发阶段开发测试,相比于企业级系统,互联网系统的差异,需求变化快,迭代式开发,运营阶段可用性,运营阶段安全性,运营阶段高性能,未来变化伸缩性,未来变化扩展性,长期运营降低成本,开发阶段开发测试,一个软件系统怎么可能如此完美?,答案是:整体的目标与局部的目标分開,【问题】要如何规划设计模块,并组织这些模块,使其成为好的架构,满足大格局的目标?【答案】第一步是切割出足够细粒度的模块,用正确的方法连结起来。,架构的 4D 座标系统,业务维度(Y1.Yn):每个业

4、务系统,前后端维度(X1.X7):界面(红)、应用(橙)、框架(黄)、服务(绿)、核心(蓝)、代理(靛)、数据(紫),系统维度(Z1.Zn):软件、容器、运行时、操作系统、虚拟机、到硬件。跟行业无关,架构的四维座标系统,时间维度(T1.Tn):初始架构到成熟架构,Y,X,Z,T,X6代理,X5核心,X4服务,X1界面,X7数据,X3框架,用户,外部,外部,业务,领域,七层架构,X2应用,X 座标,注意:每一层内由多个模块构成,层只是一种逻辑概念,层在架构中不具备实体黄色箭头是跨系统的调用,白箭头是系统内调用,有状态,无状态,实用,伸缩、高性能、可用、安全,API,SPI,防攻击、伸缩,交互,有

5、状态,资源,有状态,1,2,3,4,5,有状态,X6代理,X5核心,X4服务,X1界面,X7数据,X3框架,用户,外部,外部,业务,领域,七层架构,X2应用,X 座标,有状态,无状态,实用,伸缩、高性能、可用、安全,API,SPI,防攻击、伸缩,交互,有状态,资源,有状态,1,2,3,4,5,有状态,Y 座标,界面,框架,应用,电商系统,代理,核心,服务,数据,商品系统,代理,核心,服务,数据,订单系统,代理,核心,服务,数据,用户系统,界面,框架,应用,商品管理系统,界面,框架,应用,订单管理系统,界面,框架,应用,用户管理系统,前端系统,后端系统,Z 座标,逻辑层,通用层,网络与数据层,缓

6、存模块,数据访问模块,访问权限模块,Session模块,参数配置模块,负载均衡模块,消息队列模块,日志模块,制作缩图,加密算法模块,搜索模块,传统架构关心重点,互连网架构关心重点,传统架构关心重点,互联网架构关心重点,分布式锁,分布式文件,压缩算法,通讯协议与格式,数据库,代理,核心,服务,应用,界面,用户,接出,应用优化,资源优化,接入,平台优化,前端优化,数据,框架,负载均衡服务器,软负载均衡,静态资源服务器,Session服务器,集群,MQ,集群,MQ,CDN,反向代理服务器,缓存服务器,云,读写分离,同步备份,异步备份,冷备份,缓存服务器,云,配置服务器,配置服务器,Z3 的考量,灾备

7、中心,代理,核心,服务,界面,数据,框架,应用,代理,核心,服务,数据,XY 座标,代理,核心,服务,数据,不同后台系统的调用,视为外部间接调用,但对于公共系统,可以直接调用,公共系统是指大家都可能需要的系统,包括短信发送、加密服务。公共系统不可以依赖任何非公共系统。公共系统接口简单不易改变。公共系统没有独立成为一家公司运作的可能。各个后台系统独立成为公司运营时,公共系统可以送给他们。业务系统不允许在没有代理隔离的情况下调用其他系统,是因为其他系统以后都可能会独立运作。,七层架构详解,代理,核心,服务,界面,数据,框架,用户,外部,外部,应用,业务,资源,领域,交互,跟外部有接触的,只有三个地

8、方。三个外部系统,包含一个人,一个接入系统,一个接出系统箭头指的是接口依赖,不是信息流向黃色箭頭是回调(Call-Back)。想一想,为什么这三层要允许回调?黄色箭头部分也可改用 Message Queue 的低耦合設計方式,代理,核心,服务,界面,数据,框架,用户,外部,外部,应用,业务,资源,领域,交互,核心层反映出领域模型核心层的接口基本就是对此领域模型进行操作为何要建立领域模型?帮助接口设计帮助数据存储设计,梳理出更具有弹性的存储方式,代理,核心,服务,界面,数据,框架,用户,外部,外部,应用,业务,资源,领域,交互,服务层针对领域对象进行操作,并提供弹性的调用接口服务层接口通常数目不

9、多,但每个接口通常参数相当多服务层没有状态,也不做缓存实现 API。如果公开,就是开放接口调用服务层的接口,通常需要授权,代理,核心,服务,界面,数据,框架,用户,外部,外部,应用,业务,资源,领域,交互,驱动作用:數據代理:代表外部系统或数据库Z3 缓存:为了效率或提高可用性(当外部系统掉线)Z3 数据模块,支持读写分离转接或转发转接到外部系统转发到日志系统,数据备份系统(通过事件钩子)热备系统接入SPI 作用:隔离:避免依赖特定的外部系统或数据库,代理,核心,服务,界面,数据,框架,用户,外部,外部,应用,业务,资源,领域,交互,数据是公司最重要的资产,数据层负责记录系统运作后的最终结果根

10、据数据的特性,数据库可以是:关系式数据库列数据库Associative DBKey-Value文件数据库日志,代理,核心,服务,界面,数据,框架,用户,外部,外部,应用,业务,资源,领域,交互,根据市场需求,开发各种应用,并以接口的方式展现。如果是 Web 应用,则这里的 Z3 包含 Web 服务器层,代理,核心,服务,界面,数据,框架,用户,外部,外部,应用,业务,资源,领域,交互,将常用的应用流程设计成框架,后续开发同类型应用时,只要通过参数或者 DSL,就可以轻易订制应用,减少开发应用的成本框架也可以用接口的方式开放让外部调用Z3 缓存与 Session,代理,核心,服务,界面,数据,框

11、架,用户,外部,外部,应用,业务,资源,领域,交互,界面更像是用户的延伸,而非应用的延伸。界面可被視為用戶代理(User Agent)根据用户喜好、语言、平台(手机、电脑、平板)进行开发各种用户界面的开发。一个应用可以有多个界面如果是 Web 应用,則这里的 Z3 包含 Web 浏览器,7+2层架构之系统素质,可用性(Usability),可用性(Usability),扩展性,安全(防攻击),可用性(Availability),安全,高效率,透明性,安全性,持久性,数据,代理,核心,服务,框架,应用,界面,通用层,网络层,通用性,稳定,可用(Availability),伸缩,效率,7+2层架构

12、之人员素质,了解用户,且具有审美观,了解市场与用户,具有产品设计能力,了解市场与用户,且擅长归纳总结,了解领域和公司的战略,有接口设计能力,有比较强的计算机知识与算法能力,了解领域与合作夥伴,了解领域与数据库,数据,代理,核心,服务,框架,应用,界面,通用层,网络层,了解语言、程序框架、各种开源项目,了解操作系统、网络、云计算,7+2层架构之技术,数据,代理,核心,服务,框架,应用,界面,通用层,网络层,HTML/CSS/JavaScript/HTML/Android/iOS/PHP,PHP/Python/Ruby/Java,Java/C,Java/C,NoSQL/MySQL,Security

13、/MemCached/Redis/MySQL,Spring/Load Balance/F5/Cloud,7+2层架构之代码迭代进度,数据,代理,核心,服务,框架,应用,界面,通用层,网络层,每周,每月,每季,每年,不一定,不一定,每季,每半年,架构流程,层,架构推导过程,接口,模块,对象,参数,数据,对内高内聚力对外低耦合,泛用化,泛用化,详细设计,详细设计,详细设计,业务设计X2 X4,模块设计X1.X6/Z2,数据存储设计X1 X3 X6 X7,网络布署规划X1.X7/Z3,人员机器规划X/Y/Z,领域建模X4.X6/Y,交互设计X1 X2,X6,X5,X4,X1,X7,X3,用户,外部,

14、外部,X2,系统重构T1.Tn,业务,资源,领域,交互,业务拆分X2 X4/Y1.Yn,角色名称,系统名称,用例描述,人?,根据业务拆分系统,X6,X5,X4,X1,X7,X3,用户,外部,外部,X2,业务,资源,领域,交互,业务设计(找出接口与参数),层,层,层,研究数据字典,研究外部接口,找出领域对象,设计领域模型,设计 SPI,数据库设计,数据迁移计划,代理层代码设计,领域访谈,设计 API,研究,设计,实施,领域层代码设计,服务层代码设计,对 X4 的业务需求,3.访问频率,4.读写比,1.重要性,2.保密性(密码),8.数据笔数,9.数据体积(图),5.一致性,6.热点现象(新闻,商

15、品),10.索引方式,7.地域现象(用户登录),红色对于领域模型的设计有帮助,医院,科室,医师,班表,病症,预约,地点,用户,家属,包含,初步版本的挂号领域模型,供大家参考。可以在此模型之下进行 API/SPI 的设计,ID,名称,ID,座标,名称,目的,负责人,依赖,接口与参数,详编模块定义,数据特性分析,数据库选型,备份策略,缓存策略,十大指标,数据库特徵表,云计算与大数据,Z 座标和云平台的关系,逻辑层,通用层,逻辑层,逻辑层,网络层,IaaS,PaaS,XZ 座标和云平台的关系,代理,核心,服务,数据,用户,外部,外部,业务,资源,领域,交互,核心云核心大数据,应用云应用大数据,界面,

16、框架,应用,Web:SaaS,Open API,所有业务系统的服务层以下都要收归集团统一管理。优点:只有内部(服务以下就是内部)可以依赖数据方便管理方便管理与外部系统的关系可以逐渐形成统一平台,数据,代理,核心,服务,框架,应用,界面,多数人提到大数据时,都是指来自这里(数据库)的数据。而系统运行过程中的许多有价值的数据,都被丢弃忽略了。,比方说:当多数用户到了某页面后,就不往下进行,可能页面设计有问题,只要改善页面用户体验,业绩就会大幅提升。但只通过数据库,无法分析出这点,数据,代理,核心,服务,框架,应用,界面,七层架构与五个事件钩子,事件钩子,事件钩子,事件钩子,事件钩子,事件钩子,业务

17、系统的层与层之间,都可设置事件钩子,避免系统改造。事件钩子可以将事件原地处理,也可将事件送到其他服务器处理事件钩子同时具备日志的效果,关键事件可以送到统一日志中心,注意:代理层的事件钩子是设置在代理层出口,而不是入口,外部,外部,通过 Z3 层的配置,可以直接得到事件,事件信息流向与数据分析系统,商业智能系统,业务活动监控系统,用户体验分析系统,网络攻击分析系统,商业风险控制系统,数据备份系统,事件钩子,事件钩子,事件钩子,事件钩子,事件钩子,数据,大数据分析,平台化战略,产品创新需要技术支撑,技术,创新产品,企业竞争力,促进,支撑,唯有持续推出创新的产品,才能维持企业竞争力,滞后的技术与架构,无法支撑产品的创新,但,产品重构,内部接口,开放平台,创新孵化,平台化促进合作与创新,进而巩固平台实力,集团云平台,企业合作,平台强化,大数据平台,XY,Z,Z,公共云平台,首席架构师的架构设计能力与公司的执行力,依靠的是,想要做到,产品重构,内部接口,开放平台,创新孵化,集团云平台,企业合作,平台强化,大数据平台,公共云平台,Y,K,N,T,O,A,H,U,软件架构入门 Copyright 2014 Jerry Tsai蔡学镛 email:JerryTsai1218G,知识回顾Knowledge Review,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号