系统架构
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
Tyrone(http://blog.csdn.net/sdhustyh)
提纲
1 系统架构设计导论
2 架构设计的一些常识
软件系统架构生命周期
3
初步构建
阶段
逐渐优化
阶段 成熟阶段 老化阶段 消亡阶段
架构和设计恢复
架构与设计重构
系统代码重构
反向工程
正向工程
软件架构设计师的定位
4
面向客户的
流程
快递问题件怎么处理流程河南自建厂房流程下载关于规范招聘需求审批流程制作流程表下载邮件下载流程设计
产品规划流程(方针决策和计划)
产品线开发流程
产品开发流程
人员与技术管理流程
客户 充当配角,提供产品技术支
撑,参与流程活动,积累流
程经验,了解产品需求
帮助界定中长期产品发展方
向,帮助制定roadmap
(portfolio架构师)
总结产品共性、分析产品个
性,抽取共性,剥离个性
(product line架构师)
工程师技术
培训
焊锡培训资料ppt免费下载焊接培训教程 ppt 下载特设培训下载班长管理培训下载培训时间表下载
、详细设计
指导、新技术研究和探索
架构师的能力模型
5
单一的技术经验 广泛的技术经验
商业经验
流程经验
社会经验
技
术
专
家
多项技术
专家
某方面架构师
软件系统架构师
技术广度
技术深度
架构师的能力模型
6
架
构
师
沟通协作(15%) 沟通、协作、多任务等能力
技术经验(20%) 单项/多项技术专家
推理分析(15%) 概念抽象能力,面向实际的能力,创造能力
执行技能(20%) 动手能力,平衡能力,驱动能力
流程技能(10%) 洞悉各种流程,驱动流程改进能力
项目管理(10%) 计划、规划,项目评估与决策能力
商业技能(5%) 领域经验,产品价值评估与卖点分析
人员管理(5%) 人员指导、选拔与评估能力
架构设计定义
7
(WHY)
业务层面
(WHAT)
系统层面(黑盒)
(HOW)
系统层面(灰盒)
系统功能 系统
层
子系统
模块
组织 业务实体
业务域
业务流程
业务功能由..实现
软件支持
映射
分解
架构设计核心工作
8
•蓝图
•业务功能、流程
•功能
业务分析
•业务战略支撑
•业务能力、系统簇
•支撑关系
解决
方案
气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载
设计
•功能列表
•功能层次
•支撑关系
系统功能设计
•IT支撑表达
•层次化关系
•非功能性设计
系统架构设计
•技术路线、部署
•接口、数据存储
•实现抽象
技术体系设计
提纲
1 系统架构设计导论
2 架构设计的一些常识
架构设计目标
1.不要试图设计完美的系统
2.不要让文档充斥高可靠、高性能、高度抽象、高安全、高
可扩展、高度封装。
结论:在软件设计之初,架构目标是极其重要的(排序)。
10
业务目标 架构目标
银行交易系统?
网站?
PAAS?
系统总体架构-ASSF
ASSF(access-service(biz)-standard-fundation)模式
访问-服务(业务功能)-标准-基础
11
访问层
功能层
标准层
基础层
浏览器 移动端 Pc…
功能1 功能1 功能….
J2EE .….
操作系统 中间件 .….
系统总体架构-Location
• Location模式
12
应用系统A
应用系统A
应用 应用
总部
分、子公司
地、市
、县
外部应用系统
地区应用系统
推送
同步
应用 应用
示例
功能…. 功能….
功能…. 功能….
系统总体架构-3 management-level
• 3 management-level模式
13
决策层
管理层
操作层
系统总体架构
14
(WHY)
业务层面
(WHAT)
系统层面(黑盒)
(HOW)
系统层面(灰盒)
3ML
ASSF
Location
推荐主架构
ASSF ︐ 结合三者共同使用
︐
支撑不同应用表达
接口设计
15
酒店接口 银行接口
实现或者子系统决定接口是错误的!!!!!
协作决定接口!! 子系统接口?
类接口?
接口设计一般步骤
16
•实现xxxx交互
•实现xxx同步等
1.明确目标接口
•实时性、可管理性
•数据一致性、性能
等
2.特点分析
•步骤图
•明确接口交互关系
3.接口序列图
•放入正确情况验证
•放入错误情况验证
4.场景验证
TCP
协议
离婚协议模板下载合伙人协议 下载渠道分销协议免费下载敬业协议下载授课协议下载
设计!
HTTP协议设计!
数据分布设计-独立Schema
• 当一个大系统由相关的多个小系统组成,且不同小系统具有互不相同
的数据库Schema定义
17
a b c x y
App1 App2
APP不同,Schema不同,例如:配网GIS系统,配网生产系统
数据分布设计-集中(Centralized)
• 一个大系统必须支持来自不同地方的访问,或者该系统由多个不同的
小系统组成,而数据进行集中化,统一格式存储
18
a b c
数据
集中存储,分布访问,例如:主网生产系统
Application1 Application3
Application2 Application….
数据分布设计-分区(Partitioned)
• 分为水平分析与垂直分区,当系统为“地域分布广泛的用
户”提供“相同服务”时,常常使用水平分区策略。垂直
分区为字段分隔,一般较使用。
19
a b c
1 1 1
2 2 2
a b c
3 3 3
4 4 4
应用实例2应用实例1
相同应用程序,不同应用程序实例部署,相同数据模型,不同数据值
例如:企业信息门户 新闻内容存储
数据分布设计-复制(Replicated)
• 在整个分布式系统中,保存多个副本、并且以某种机制保
持多个数据副本之间的数据一致性。
20
a b c
1 1 1
2 2 2
a b c
1 1 1
2 2 2
数据节点2数据节点1
实时更新与快照
示例:数据容灾中心
数据分布设计-子集(Subset)
• “子集”是“复制”的特殊方式,就是某节点因功能或非
功能考虑而保持全体数据的一个相对固定的子集
21
a b c
1 1 1
2 2 2
a b c
1 1 1
数据节点2数据节点1
实时更新与快照
与“复制”相比,减少数据重复,减少传输开销
数据分布设计-重组(Reorganized)
• 不同数据节点因要支持的功能不同,而以不同的schema
保持数据---但本质上数据时同源的。重组以“重新组织”
的格式进行传递和保持。
22
a b c
1 1 1
2 2 2
业务系统
a m sum
BI或高级分析系统
x y z
1 1 1
2 2 2
重组
示例:BI整合
数据分布设计
23
集中
(可管理性、数据一致性)
分区
(可伸缩性)
独立模式
(可管理性、通信开销)
子集
复制
(可靠性)
重组
非复制方式
复制方式
Schema相同 Schema不同
数据分布应用原则
24
优化原则
合适原则 综合原则
把握系统特点
确定分布策略
不同分布策略
可综合运用
“对吗?”“好吗?”
两方面评估
数据集成设计-数据物理集中&逻辑集中
25
•将全部数据放在一起,由一个统一的数据库服务器管理,实现数据统一访问,访问
效率高、适合大数据量查询的决策分析应用
•缺点:实时性较差、风险大、时间长
数据物理集中
•适用于业务系统分布在多个地方,由统一的整合平台实现各物理分布数据之间的数
据共享,可实时访问分布在各处的数据,实施速度快
•缺点:受网络传输影响,不适合长事物。
逻辑集中
•结合逻辑集中与物理集中的优势,在实施初期采用逻辑集中,快速实现统一访问与
数据共享,对访问量大、实时性要求不高的数据逐步实现物理集中,从而提高访问
效率。
逻辑集中于数据物理集中相结合
数据集成设计-数据联邦模式(Data Federation)
26
数据A 数据B
虚拟数据库
将分布的数据逻辑集中应用A 应用B
应用通过访问整合平台的虚拟数据库进行数据访问,数据在不同数据库实例
中,此时,数据整合平台做为数据访问通道
数据集成设计-数据复制模式(Data Replication)
27
数据A 数据B
应用A 应用B
数据一致性服务
采用数据复制模式
︐通过数据一致性服务
实现多个数据源的数据一致性
部分或者全部数据复制存储,各数据库均保留共享数据备份!
数据集成设计-基于接口的数据集成模式(Interface Level)
28
数据A 数据B
应用A 应用B
适配器
网
络
接口模式适合分区及独立模式的数据集成
系统间通过接口适配器方式共享数据,比较适合实时性较
高且数据量较小应用。
应用集成设计
29
2.协调器模式:使用传统EAI做为协
调器实现交互。 4.总线模式:SOA交互策略
1.直接交互模式:在交互系统中使
用硬编码方式实现互相调用 3.桥模式:MOM交互策略。
集成代码分离
集成混在代码中
紧耦合 松耦合
面向对象设计的反面模式
• 反面模式(anti-pattern)是指在实践中经常出现,会
导致效率低下的有待优化的设计模式。
30
1.基类(BaseBean):继承一个工具类,而不是代理它
2.不羁的对象(Objectorgy):没有成功封装对象,外部可以不受限制地访问
它的内部
3.调用父类(Callsuper):需要子类调用父类中被子类重载的方法
4.顺序耦合(Sequentialcoupling):指这样一些对象,它们的方法必须要按
某种特定顺序调用
更多反面模式,参见
http://zh.wikipedia.org/wiki/%E5%8F%8D%E9%9D%A2%E6%A8%A1%E5
%BC%8F#.E7.BC.96.E7.A8.8B.E4.B8.8A.E7.9A.84.E5.8F.8D.E6.A8.A1.E5.BC.8F
回顾
31
•蓝图
•业务功能、流程
•功能
业务分析
•业务战略支撑
•系统簇
•支撑关系
解决方案设计
•功能列表
•功能层次
•支撑关系
系统功能设计
• IT支撑表达
•层次化关系
•核心元素
系统架构设计
•技术路线、部署
•接口、数据存储
•实现抽象
技术体系设计
试着做一下
• 为某集团化公司(多分、子公司)开发知识管理系统,管
理该单位各类结构化与非结构化知识,使用户可以通过自
定义知识别名浏览相关联的知识内容。假设该单位目前有
1000万注册用户,结构化化知识内容超过1000万,非结
构化知识内容超过5T。用户可以添加、修改、删除分类,
修改分类的名称,系统支持相同分类名称下的知识自动合
并,普通用户可以上传分享结构化与非结构化知识。用户
可以主动查看知识,系统亦可以通过用户相关信息主动推
送知识给用户,用户浏览知识需要支持PC端及移动端。
32