系统架构师的心得文档格式.docx
- 文档编号:16840261
- 上传时间:2022-11-26
- 格式:DOCX
- 页数:54
- 大小:294.80KB
系统架构师的心得文档格式.docx
《系统架构师的心得文档格式.docx》由会员分享,可在线阅读,更多相关《系统架构师的心得文档格式.docx(54页珍藏版)》请在冰豆网上搜索。
5.偏差检测:
偏差检测的基本方法是寻找观测结果与参照值之间有意义的差别。
数据挖掘常用的技术:
1.决策树:
2.神经网络
3.遗传算法
4.关联规则挖掘算法
数据挖掘分析方法:
1.关联分析
2.序列分析
3.分类分析
4.聚类分析
5.预测
6.时间序列分析
数据挖掘的流程:
1.问题定义:
要想充分发挥数据挖掘的价值,必须对目标要有一个清晰明确的定义,即决定到底想干什么
2.建立数据挖掘库:
把要挖掘的数据都收集到一个数据库中,而不是采用原有的数据库或数据仓库。
因为大部分情况下需要修改要万巨额的数据,而且还会遇到采用外部数据的情况。
另外还需要对数据进行各种纷繁复杂的统计分析,而数据仓库可能不支持这些数据结构。
3.分析数据:
通常所进行的对数据深入调查的过程。
4.调整数据
5.模型化
6.评价与解释
数据库建模
使用数据模型比使用过程模型的优越性:
1.数据模型有助于分析员快速地确定业务词汇(比过程模型确定的更全面)
2.数据模型几乎总是比过程模型构造的快
3.一个完整的数据模型可以记录在一页纸上,而过程模型要十几页纸
4.过程模型经常使人容易陷入不必要的细节中
5.现有系统和建议系统的数据模型之间的相似性远比他们的过程模型的相似性高。
问题分析阶段的模型应该仅仅包括实体和关系,而不包括属性。
数据库建模过程:
1.获取实体
实体获取指南:
a.在与系统所有者和用户的面谈或JRP会议中,注意他们讨论的关键词
b.在面谈或JRP中,专门要求系统所有者和用户确定他们想收集、存储和生成信息的事物。
c.确定实体的另一个技术的研究现有表格、文件和报告
d.如果用例描述在需求分析阶段被记录下来,那么它们就可能成为数据属性和实体的来源
e.逆向工程中获取
注意:
实体的名称应该是简单的、有意义的、面向业务的、实例的数量应该是很多的。
2.构造上下文数据模型
3.基于键的数据模型
建立键的原则:
a.在每个实体实例的生命周期中,不会改变
b.键值不能为空
c.确保键值的有效性
d.在一定的情况下,使用智能键
e.对于对立的实体,使用代理键来替代大型复合键
4.泛化层次体系(建立超类与子类的体系)
5.具有完整属性的数据模型
a.组织内部认定的命名标准和认可的简写方式,由DBA维护
b.仔细选择每个属性的名称。
除非属性可以被泛化成一个超类,否则最好给每个变量一个唯一的名称。
并不使用简写
c.现有表格和文件中的物理属性名称经常被简写以节省空间。
d.对于BOOL的属性,最好以问题的形式命名
e.外间是对非冗余规则的一个例外
f.一个属性的域不应该是逻辑的
6.规范化
7.将数据需求映射到地点
在将数据需求映射到地点的技术中,可以根据以下的问题来划分:
a.在每个地点需要实体和属性的哪些子集来完成工作?
b.需要什么级别的访问?
c.该地点可以创建实体实例吗?
d.该地点可以读取实体实例吗?
e.该地点可以删除实体实例吗?
f.该地点可以修改实体实例吗?
解决此问题的技术主要是:
数据——地点——CRUD矩阵
数据库设计的目标:
1.提供对数据的有效存储、访问和修改
2.应该可靠——存储的数据具有高度的完整性、以促进用户信任数据
3.应该可适用和可扩展未预料到的新需求和新应用
4.支持信息系统的业务
数据库设计规则和指南:
1.每个基本实体、关联实体和弱实体都被实现成一个独立表
a.标识主键,并实现成为表中一个索引
b.每个次键实现成为表中一个索引
c.对于任何被确定为子集准则的非键属性,应该建立一个索引
d.如此实现每个外键
e.属性将用字段实现
●数据类型
●字段大小
●空或非空
●域
●默认值
2.超类/子类实体表示其他选项
●每个超类和子类可以用一个独立表实现
●如果子类具有类似大小和数据内容,则可以合并子类成为超类,以创建一个表,这对设置默认值和检查字段会有一些问题,但可以通过为表在存储过程中嵌入默认值和字段逻辑克服
●超类的属性可以复制到每个子类的表中
●可以使用以上选项的某些组合
3.数据完整性和访问完整性约束
●键完整性
●域完整性
●引用完整性
数据库设计阶段:
1.规划:
进行建立数据库的必要性和可行性分析。
确定DBS在组织中和信息系统中的地位,以及各个数据库之间的联系。
2.需求分析:
需求信息的收集、分析整理和评审,其目的在于对系统的对系统的应用情况做全面纤细的调查,确定企业的目标,收集支持系统总的设计目标的基础数据和对这些数据的要求,确定用户的需求,并把这些要求写成用户和数据设计者都能接受的文档。
3.概念设计:
目标是对需求说明书提供的所有数据和处理要求进行抽象与综合处理,按一定的方法构造反映用户环境的数据及其相互联系的概念模型。
概念模型的要求:
a.概念模型是对现实世界的抽象和概括,它应真实、充分地反映现实世界中事物和事物之间的联系,有丰富的语义表达能力,能表达用户的各种需求,包括描述现实世界中各种对象及其复杂联系、用户对数据对象的处理要求和手段。
b.概念模型应该简洁、明晰,独立于机器、容易理解、方便数据库设计人员与应用人员交换意见,是用户积极地参与数据库的设计工作中
c.概念模型应易于变动
d.概念模型应很容易向数据模型转换
4.逻辑设计:
包括初始模式的形成、子模式设计、引用程序设计梗概、模式评价和修正模式
5.物理设计,物理设计的步骤:
a.设计存储记录结构
b.确定数据存储安排
c.设计访问方法
d.进行完整性和安全性的分析、设计
e.程序设计
E-R图的集成步骤:
1.确定局部视图的范围
2.识别实体及其标识
3.确定实体间的联系
4.分配实体及联系的属性。
嵌入式系统
嵌入式系统的特征:
1.系统专用性强
2.软、硬件依赖性强
3.系统实时性强
4.处理器专用:
通常把许多在通用计算机上需要板卡完成的任务集成到芯片内部,从而增强系统的小型化与移动能力
5.多种技术紧密结合。
6.系统透明性
7.系统资源受限
EOS系统的主要特点:
1.微型化
2.代码质量高
3.专业化
4.实时性强
5.可裁减、可配置
网络
IEEE802系列规范都在链路层
POP3,FTP,HTTP,Telnet,SMTP都基于TCP
的链接
DHCP,TFTP,SNMP,DNS基于UDP的链接
IP,ICMP,IGMP,ARP,RARP都位于网际层
SMTP的端口号:
25
POP3的端口号:
110
DNS的端口号:
53
WWW的端口号:
80
FTP的端口号:
控制:
21,数据:
20
A类地址:
最前面为0,后7位为网络标识,24位为主机号
B类地址:
前两位为10,14位为网络标识,16位为主机号
C类地址:
前三位为110,21位为网络标识,8位为主机号
特殊地址:
主机号全为1表示广播,网络号全为0,则主机号表示本网地址
VLAN:
虚拟局域网
双绞线使用远程中继线时,最大距离为15km,使用集线器时,最大距离为100m
CATV:
有线电视网
代理服务器:
代理服务器的作用:
1.提高访问速度
2.可以起到防火墙的作用
3.通过代理服务器访问一些不能直接访问的网站
4.安全性得到提高
5.共享IP地址
常用的网络管理工具:
1.ping:
基于ICMP协议,用于把一个测试数据包发送到规定的地址。
如果正常则返回成功响应。
2.tracert:
检查到达目标IP地址的路径并记录结果。
3.Netstat:
一般用于检验本机各端口的网络连接情况
4.IPConfig:
一般用来检验人工配置的TCP/IP设置是否正确。
常见的网络设备:
网卡:
工作于数据链路层
HUB(集线器):
重发器(中继器或转发器):
工作于物理层
网桥(桥接器):
交换机:
相当于具有很多端口的网桥,工作于数据链路层
路由器:
工作于网络层
网关:
工作于不同网络系统的协议转换
调制调解器
网络接入技术:
1.异步传输模式
2.帧中继
3.综合业务数据网
4.同步光纤网络
5.Internet接入与接口层协议
6.FTTx和LAN接入
7.电话线路接入
8.同轴和光纤接入
9.无线接入
多媒体技术
声音的储存量计算公式:
文件的字节数=采样频率发*量化/采样位数*声道数/8;
WAVE:
采样率高,采样字节长,机器速度快,质量非常高,但文件太大
MOD:
存放乐谱和乐曲的音色样本
Layer-3(.mp3):
压缩率大
系统性能
计算机性能指标以系统响应时间、作业吞吐量为代表
响应时间:
指用户发送完整请求道系统完成任务给出响应的时间间隔
吞吐量:
只在给定的事件内,系统的吞入能力与吐出能力的多少
以下因素会影响系统的平均响应时间:
1.和业务相关,处理不同的业务会有不同的响应时间
2.和业务组合相关,业务之间可能会存在依赖关系或其他,也会相互影响
3.和用户数量有关,大并发量会严重影响响应时间
性能计算公式:
平均利用率ρ=,平均响应时间=
例如:
用户在1S内发出40个服务请求,系统平均服务时间为20ms,则系统的吞吐量为:
1000/20=50,系统的平均利用率为40/50=0.8,系统的平均响应时间为20/(1-0.8)=100ms
系统性能设计:
性能设计时系统设计过程中的一个必要环节,在进行系统架构设计时,性能设计也非常重要。
架构设计时一种平衡设计,需要设计师在各种功能性需求和非功能性需求上做妥协选择
一.系统性能调整:
系统性能调整时包括了收集、分析、配置和测试4个反复步骤的循环工作。
性能调整的准备工作,为正在进行的性能调整活动建立框架:
1.识别约束,约束在寻求更高的性能方面是不可改变的因素,因此,在寻求提高性能的方法时,必须集中在不受约束的因素上
2.指定负载。
确定系统的客户端需要哪些服务,以及对这些服务的需求程度。
用于指定负载最常用的度量标准时客户端数目、客户端思考时间以及负载分布状态。
客户端思考时间:
指客户端接收到答复到提交新请求之间的时间间隔。
负载分布状况:
包括稳定或波动负载、平均负载和峰值负载
3.设置性能目标。
性能目标必须明确,包括识别用于调整的度量标准及其对应的基准值。
总的系统吞吐量和响应时间是用于测量性能的两个常用的度量标准。
建立了性能调整的边界、约束和目标后,就可以开始进入调整循环了:
1.收集:
任何性能调整操作的起点。
只使用为系统特定部分选择的性能计数器集合来收集数据。
不论是调整系统的哪一部分,都需要根据基准测量来比较性能的改变。
2.分析:
收集了调整选定系统部分所需的性能数据后,需要对这些数据进行分析以确定瓶颈。
性能数字仅具有指示性,并不能代表实际的瓶颈,因为一个性能问题可能是由多个原因所致。
3.配置:
确定系统的哪部分最适合进行配置更改,然后实现此更改,实现更改的重要规则:
一次仅实现以个配置更改。
4.测试:
配置更改后,必须完成适当级别的测试,确定更改对调整系统所产生的影响。
如果达到预期,则可完成当次调整,否则,重新进入循环。
二.阿姆达尔解决方案
阿姆达尔定律定律:
系统中对某部件采用某种更快的执行方式,所获得的系统性能的改变程度,取决于这种方式被使用的频率,或所占总执行时间的比例。
三.负载均衡技术
负载均衡是由多台服务器以对称的方式组成的一个服务器集合,每台服务器都具有等价的地位,都可以单独对外提供服务而无须其他服务器的辅助。
通过某种负载分担技术,将外部发送来的请求均匀地分配到对称结构中的某一台服务器上,而接收到的请求的服务器独立地回应客户的请求。
常用的负载均衡技术:
1.基于DNS的负载均衡。
在DNS中为多个地址配置一个名字,因而查询这个名字的客户端将得到其中一个地址,从而使得不同的客户访问不同的服务器,达到负载均衡的目的。
2.代理服务器均衡。
使用代理服务器,可以将请求转发给内部的服务器,使用这种加速模式可以提升静态网页的访问速度。
3.地址转换网关负载均衡。
支持负载的地址转换网关,可以将一个外部IP地址映射为多个内部IP地址,对每次TCP连接请求动态使用其中一个内部地址,达到负载均衡的目的。
4.协议内部支持负载均衡。
5.Nat(NetworkAddressTranslation,网络地址转换)负载均衡
6.反向代理负载均衡。
7.混合型负载均衡
Amdahl定律:
信息系统
信息系统特征:
客观性
普遍性
无限性
动态性
依附性
变换型
传递性
层次性
系统性
面向对象的分析与建模
建模过程:
1.建模系统的功能性描述
2.构造分析用例模型
✓确定、定义并记录新的参与者
✓确定、定义并记录新的用例
✓确定任何复用的可能性
✓细化用例模型图(如果需要)
✓记录系统分析用例描述
✓记录抽象用例描述和扩展用例描述
3.建模用例活动(构造活动图)
✓从一个作为起点的初始节点开始
✓如果它们与你的分析有关就增加分割
✓为用例的每个主要步骤添加一个动作
✓从一个活动到另一个活动、决策点或者终点添加一条流。
为了含义的最大精确度,每个动作应该只有一个输入和一个输出流,所有的分支、联合、决策、合并例外
✓在流分解成不同的路线的地方添加决策,确保用一个合并将各个流重新合并
✓在并行执行活动的地方添加分支和联合
✓用一个单一的活动终止符号结束
4.构造系统顺序图
5.发现和确定业务对象
✓发现潜在对象
✓筛选建议的对象
●是否是另一个对象的同义词?
●是否是系统范围之外的名词?
●是否表示不具有独特行为的角色的名词,或者表示外部角色的名词?
●是否是需要进一步解释的不清楚的名词?
●是否是描述了另一个对象的行动或属性的名词?
6.组织对象并确定其关系
✓确定关联关系和多重性
✓确定泛化/特化关系
✓确定聚合关系
✓准备类图
面向对象的设计过程
面向对象设计包括以下活动:
1.对用例模型加以精炼以反映实现环境
对用例加以精炼,从而包括参与者如何实际地与系统接口以及系统如何响应刺激处理业务事件的细节。
用户访问系统的方式,都应该详细的进行描述,窗口、报告和查询的内容也也应该在用例中加以说明。
虽然这个过程很耗时与繁琐,但此过程不可或缺。
因为这些过程中产生的用例将是系统实现期间的开发用户手册和测试脚本的基础。
而且在系统实现期间,程序员将使用这些用例构造应用程序。
进行的步骤:
a.将分析用例转换成设计用例
在此用例中,应该全部或部分包含以下内容:
用例类型
窗口控制
窗口名称
导航指令
b.修改用例模型图和其他文档以反映新用例。
2.建模支持用例情境的对象交互、行为和状态
a.确定并分类用例设计类
b.确定类属性
c.确定类行为和职责
✓分析用例以确定所需的系统行为
检查用例描述,以确定所有的动词短语。
这些动词短语即为事件实现所需的行为。
并为需要计算机自动实现的行为指定对象类型
✓关联行为和责任到类
确定与一个类型关联的所有行为,并确定类之间的协作。
记录对象行为和协作的一种流行工具是类责任协作(CRC)卡
CRC卡可以由一个交互过程开发和细化,其中卡片在一组系统分析员或用户之间分配。
然后他们经过用例场景的步骤,使用海绵球扮演所需的协作。
有时,按照这种技术无法将所有的责任都全部找到并分配,需要根据经验和检查类图,将会找到一些隐含的行为,如增加、删除关系。
✓建模具有复杂行为的类
顺序图指南:
●指定顺序图的范围
●根据需要,指定参与者与控制类
●根据需要,指定持续类与系统类
●按照用例步骤,从左至右绘制
●绘制消息,并把每条消息知道将实现响应消息的责任的类上
●为清晰起见,添加所需的返回消息
●如果需要,为循环、可选步骤、替代步骤添加框架。
✓检查类模型附加行为
✓验证分类
d.建模对象状态
状态图指南:
✓确定初始状态和结束状态
✓确定其他状态
✓确定离开某个特定状态的触发器
✓确定状态转换路径
3.修改对象模型以反映实现环境
当设计了对象及其所需的交互,就可以对类图加以精练,以表示应用程序中的软件类,即将类图加工成设计类图。
设计类图包括了以下的内容:
1.类
2.关联关系、泛化/特化关系、聚合关系
3.属性和属性类型信息
4.带参数的方法
5.导航能力
6.依赖关系
将OOA中准备的类图转换成设计类图的步骤:
1.向图中添加对象,出于图大小和可读性的考虑,设计类图中只包含主要的接口对象
2.向对象中添加属性及属性类型
3.指定属性的可见性
4.向对象中添加方法
5.指定方法的可见性
6.添加类之间的关联关系导航能力
7.添加依赖关系
基于构件的开发
中间件
中间件是位于平台和应用之间的通用服务,这些服务具有标准的程序接口和协议。
针对不同的操作系统和硬件平台
中间件的特性:
1.中间件是一类软件,非一种软件
2.不仅仅实现互连,还要实现应用之间的互操作
3.基于分布式处理的软件,最突出的特点是网络通信功能。
中间件的功能
1.负责客户端和服务器间的连接和通信
2.提供客户端与应用层的高效率通信机制
3.提供应用层不同服务之间的互操作机制
4.提供应用层与数据库之间的连接和控制机制
5.提供一个多层结构应用开发和运行的平台
6.提供一个应用开发框架,支持模块话的应用开发
7.屏蔽硬件、操作系统、网络和数据库
8.提供交易管理机制,保证交易的一致性
9.提供应用的负载均衡和高可用性
10.提供应用的安全机制和管理功能
11.提供一组通用的服务区执行不同的功能,为的是避免重复的工作和使应用之间可以协作。
中间件的优越性:
缩短开发周期、节约开发成本、减少系统初期的建设成本、减低失败率、保护已有投资、简化应用集成、减少维护费用、提高开发质量、保证技术进步的连续性、增强应用的生命力。
中间件与电子商务:
1.电子商务应用服务器
✓提供服务器端分布式应用的部署,包括对象生命周期管理、线程管理、状态管理、安全管理等
✓数据源连接访问管理、交易管理等
✓大规模并发网络用户管理、均衡负载、容错
✓与现有系统无缝连接
2.通用业务网关和支付网关
3.通信平台
✓高效数据通道
✓降低网络负担
✓名字服务
✓支持动态配置
✓网络故障恢复
✓数据可靠传输
4.安全平台
应用服务器
应用服务器的优点:
1.可升级性
2.分布式处理
3.可重用的业务对象
4.业务规则
5.跨平台集成
具体应用中,可以解决:
1.集成遗留系统和数据库
2.为WEB站点提供支持
3.开发WEB集成系统
4.个人计算机的部署
5.电子商务
6.性能管理
软件架构
4+1视图模型:
1.逻辑视图:
最终用户,功能需求
2.开发视图:
编程人员,软件管理
3.进程视图:
系统集成人员,性能、可扩充性和吞吐量
4.物理视图:
系统工程人员,系统拓扑、安装和通信
5.场景
软件架构设计的核心问题是:
能否使用重复的架构模式,即能否达到架构级的软件重用。
经典的软件架构风格
1.管道/过滤器:
每个构件都有一组输入和输出,构件读入输入的数据流,经过内部处理,软后阐释输出的数据流。
这种风格特别重要的是过滤器必须独立的实体,不能与其他的过滤器共享数据,而且一个过滤器不知道它的上游和下游的标识。
优点:
a.使得构件具有良好的隐蔽性和高内聚、低耦合的特点
b.允许设计者将整个系统的I/O行为看成是多个过滤器行为的简单合成。
c.支持软件重用。
只要提供适合在两个过滤器之间传递的数据,任何两个过滤器都可被连接起来
d.系统维护简单,可扩展性好
e.允许对一些如吞吐量、死锁等属性的分析
f.支持并行执行。
每个过滤器是作为一个单独的任务完成,因此可与其他任务并行执行。
缺点:
a.通常导致进程成为批处理的结构。
b.不适合处理交互的应用
c.因为在数据传输上没有通用的标准,每个过滤器都增加了解析和合成数据的工作,这样就导致了系统性能下降,并增加了编写过滤器的复杂性。
2.面向对象风格
a.因为对象对其他对象隐藏它的表示,所以可以改变一个对象的表示,而不影响其他的对象
b.设计者可以将一些数据存取操作的问题分解成一些交互的代理程序的集合
a.为了使一个对象和另一个对象通过过程调用等进行交互,必须知道对象的标识。
只要一个对象的标识改变了,就必须修改所有其他明确调用它的对象
b.必须修改所有显式调用它的其他对象,并消除由此带来的一些副作用。
3.基于事件的隐式调用:
构件不直接调用一个过程,而是触发或广播一个或多个事件
a.为软件重用提供了强大的支持。
当需要将一个构件加入到现存系统中时,只需要将它注册到系统的事件中。
b.为改进系统带来方便。
a.构件放弃了对系统计算的控
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 系统 架构 心得