软考系统架构师笔记-案例分析重点(二)
系统架构设计非功能需求主要有4类:操作性需求、性能需求、安全性需求、文化需求;
性能需求:响应时间、吞吐量、准确性、有效性、资源利用率、系统完成任务效率等。可靠性、可用性等指标也能归此类。
安全性需求:系统向合法用户提供服务并阻止非授权用户使用服务方面的系统需求。
操作性需求:与用户操作使用相关的需求。
文化需求:带有文化背景因素的需求需求。
DFD(Data Flow Diagram)数据流图。
ERD(Entity Relationship Diagram)实体关系图简称ER图。
信息工程方法中的“实体”和面向对象的类(class)的不同:实体为数据建模,类为面向对象建模。实体只有属性,类有属性及操作。
Essential Use Cases和Real Use Cases不同:Essential Use Cases为抽象建模,Real Use Cases为基础建模,区别为:基础用例是用户需求对应关系的用例,是从用户需求中得到的,抽象用例是从基础用例中抽取的公共用例,避免重复工作,优化结构而提出的用例。
分布式数据库缓存技术在内存中管理数据并提供数据的一致性保障,采用数据复制技术实现高可用性,具有较优的扩展性与性能组合。这种数据存储机制,实现了更短的响应时间,同时极大的降低数据库的事务处理负载,极好的解决了大量流情况下数据库服务器和Web服务器之间的瓶颈。
MemCache:支持简单的key/value结构,有持久性,不支持分布式存储,支持多线程,有内存管理,不支持事物。
Redis:支持Key/value,list,set,hash,sorted等类型,无持久性,分布式存储方式有多种如主从、Sentinel、Cluster等,不支持内存,无内存管理,支持事务。
MemCache工具存在的问题:
1. MemCache不支持数据持久化操作,掉电会丢失,复发恢复,可靠性存在问题;
2. 不支持事务操作,操作过程中可能出现数据不一致问题。
Redis与原有关系数据库的数据同步方案:读取时先读取Redis中的数据,如果没有,就从原数据库中读取,并同步更新Redis数据库。写回时先写回原数据库再写到Redis中。
Redis分布式存储的2种常见方案:主从方案、Cluster方案
Redis集群切片的几种常见方式:
1. 客户端分片:在客户端通过key的hash值对应到不同的服务器。
2. 对数据key散列到不同的slot上,不同slot对应不同的服务器。
SOA(面向服务的架构):是一个组建模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口采用中立的方式进行定义,他应该独立与实现服务的硬平台、操作系统和编程语言。这使得构建在各种各样的系统中的服务以一种统一和通用的方式进行交互。
ESB(企业服务总线)在SOA的作用和特点:
1. 支持SOA的关键是其消息传递架构-企业服务器总线(ESB)。ESB用于实现企业应用不同消息和信息的准确、高效、安全传递。
2. 面向服务的元数据管理:必须了解被他中介的两端,技术服务的请求以及请求者对服务的要求,以及服务的提供者和他所掌握的服务描述。
3. 通信:服务的发布/订阅、响应/请求、同步/异步消息、路由和寻址等。
4. 服务交互:服务接口定义,服务实现的置换,服务消息模型,服务目录和发现等。
5. 服务安全:认证和授权、不可否认和机密性、安全标准的支持等。
3中可实现信息系统安全保障的措施:
1. 釆用请求/应答的认证机制,防止重放攻击。
2. 釆用加密技术保证信息在网络传输过程的安全。
3. 釆用数字签名技术保证信息传输过程的完整性和不可否认。
MVC为:model、view、controller
视图(View):视图是用户看到并与之交互的界面。视图向用户显示相关的数据,并能接收用户的输入数据,但是它并不进行任何实际的业务处理。
控制器(Controller):控制器接受用户的输入并调用模型和视图去完成用户的需求。该部分是用户界面与Model的接口。一方面它解释来自于视图的输入,将其解释成为系统能够理解的对象,同时它也识别用户动作,并将其解释为对模型特定方法的调用;另一方面,它处理来自于模型的事件和模型逻辑执行的结果,调用适当的视图为用户提供反馈。
模型(Model):模型是应用程序的主体部分。模型表示业务数据和业务逻辑。一个模型能为多个视图提供数据。
与浏览器紧邻的是JSP、Servlet;通过Servlet再与后台交互;Service与DAO交互;DAO在与数据库紧邻。
EJB中的Bean分为三类消息:Session Bean(会话Bean)、Entity Bean(实体Bean)和Message-Driven Bean(消息驱动Bean)。
Session Bean:维持一个短暂的会话;
Entity Bean:维护一行持久稳固的数据;
Message-Driven Bean:异步接受消息。
数据库程序在线访问方式:把SQL语言写到程序中访问数据库。
ORM(Object-Relational Mapping):在关系型数据库和对象之间存在一个映射,不用和复杂的SQL语句打交道,只要操作对象即可。
数据库程序在线访问的优势:
1. 性能比ORM好。
2. 可以处理复杂的查询语句。
数据库程序在线访问缺点:
1. 程序员对SQL语句有要求;
2. 修改与维护困难。
ORM优点:
1. 使用ORM可以降低学习开发成本;
2. 不需要写SQL来对数据库进行操作;
3. 减少了程序代码量;
4. 降低SQL代码质量带来的影响;
ORM缺点:
1. 不容易处理复杂的语句;
2. 性能比直接用SQL差。
抽象工厂:提供一个接口创建一系列相关或相互依赖的对象,无需指定它们具体的类。优点是方便创建一系列对象。
响应式web设计:根据用户的行为和不同设备环境做出相应的响应来调整页面的布局,提供用户可感知、流畅的阅读和体验。
实现方式:
1. 流式布局(flex);
2. 弹性布局加媒体查询(@media screen an (min-width:768px){});
PHP对比Java的不足:
1. PHP是简单的分布式二层或三层架构,Java可以实现多层网络架构。数据库层(持久化层)、应用(业务)逻辑层、表示逻辑层分开,且java在不同的层,都有成熟的框架支持。
2. PHP面向过程,Java面向对象,PHP只注重业务流程的变化,可修改性,复用性不好。
3. PHP可靠性比J2EE平台差。
4. PHP对于不同的数据库要采用不同的接口,Java通过JDBC通过调用不同的驱动完成对数据库的操作,接口统一。
5. PHP适合小项目;
6. PHP维护性比Java差;
7. PHP扩展性比Java差;
8. PHP安全性比Java差。
应用服务器:通过各种协议把商业逻辑曝光给客户端程序;
如何保证系统在大负荷和长时间运行下的稳定及可扩展性:
1. 负荷大,可以部署多态服务,多台应用服务器分担任务。
2. 通过灵活的增加服务器完成扩展。
3. 当一台服务器出故障时,将当前运行的事务转移到正常的应用服务器上执行,从而提高稳定性和可靠性。
软考系统架构师笔记-案例分析重点(二)相关推荐
- 软考系统架构师笔记-案例分析重点(一)
质量属性效应包括:性能.安全性.可用性.可修改性: 系统架构风险:架构设计中潜在的.存在问题的架构决策带来的隐患: 系统架构敏感点:为了实现某种特定的质量属性,一个或多个构件所具有的特性: 系统架构权 ...
- 软考系统架构师笔记-综合知识重点(三)
最大吞吐率:完成一条指令的倒数:一般是最长的那条指令的倒数: 加速比=没有使用流水线时间:使用了流水线的时间. 1.查询控制方式:CPU通过程序主动读取状态寄存器以了解接口情况,并完成相应的数据操作. ...
- 软考系统架构师笔记-综合知识重点(四)
系统读写磁盘,先要确定是哪个柱面的,再确定是哪个磁头,最后确定扇区(扇区号越小,越优先) 数据库如何查询效率:先过滤.再连接(等值连接,笛卡尔集) 数据仓库的特点: 面向主题:按主题组织: 集成的:消 ...
- 软考系统架构师笔记-综合知识重点(一)
pv操作.信号量的题中: 信号量S实现互斥访问值为1,信号量S实现同步访问值为0,信号量S表示资源值为资源的个数. 加锁申请信号量P(s),申请后一定要释放是V(s). 分布式数据库中包括:分片透明. ...
- 软考系统架构师笔记-综合知识重点(二)
PCI:外部部件互联标准,个人电脑中使用最为广泛的接口,声卡,网卡,板卡等: GUI:图像用户接口: 注意一点,目前的IT行业,不管是什么样的微处理器,只要有微字,就不适用于运算量较大的智能系统. 候 ...
- 软考系统架构师笔记-最后知识点总结(三)
ATAM中文名:体系结构权衡分析方法,他最后的目标是生成关键的质量属性效用树. 在软考中,体系结构=架构 体系结构权衡方法(ATAM)包含4个主要的领域活动:场景和需求收集.体系结构视图和场景实现.属 ...
- 软考系统架构师笔记-最后知识点总结(二)
系统架构的风险点:在系统架构设计中潜在的,有问题的架构决策所带来的隐患: 系统架构的敏感点:为了实现某种特定的质量属性,一个或多个构件所具有的特征: 系统架构的权衡点:影响多个质量属性的特性,是多个质 ...
- 软考系统架构师笔记-最后知识点总结(四)
正在上传-重新上传取消 嵌入式系统初始化过程中,自底向上依次为:片级初始化->板级初始化->系统级初始化 在段页式存储中,段长是可变的. 管道过-滤器风格 和 数据存储为中心风格 作对比: ...
- 软考系统架构师笔记-最后知识点总结(一)
RUP(Rational Unified Process):统一软件开发过程 包含4个阶段:初始阶段.细化阶段.交付阶段(注意,题目里面可能是移交,意思一样就可以了!).构建阶段: 用例驱动以架构为中 ...
最新文章
- 将Button等控件嵌入到repeater中
- 安装配置JDK和Eclipse的步骤
- 【题解】luogu P1941 飞扬的小鸟
- Django(part20)--数据库和模型
- 创建型模式——单例模式
- opencv:卷积涉及的基础概念,Sobel边缘检测代码实现及卷积填充模式
- iOS中锁定屏幕的方法
- linux启用shell脚本,linux下开机启动shell脚本
- cad在线转换低版本_别再傻瓜式操作了,工作效率上不去?这6个小技巧带你玩转CAD...
- Adobe Audition 基本使用
- 写个爬虫,爬图片,mzitu
- AgileEAS.NET SOA 中间件/敏捷软件开发平台
- 产品经理们如何看待NPDP认证?
- 科层制的精髓是不可言说,敏捷的精髓是透明
- Web前端基础知识总结
- 非著名不专业Teambition网盘评测
- 你被优衣库遭到******与英特尔漏洞刷屏了吗?
- 详解go中的混合锁 - mutex
- Association, Aggregation, Composition, Abstraction, Generalization, Realization, Dependency
- 正则表达式 - Python 正则表达式 学习笔记 最全整理