软考-系统分析师-案例总结-系统架构设计
2024-12-23 10:43:12 0 举报
AI智能生成
软考-系统分析师-案例总结-系统架构设计
作者其他创作
大纲/内容
ZACHMAN架构框架
子主题
面向服务的架构SOA
SOA是一种在计算环境中设计、开发、部署和管理离散逻辑单元(服务)模型的方法。
关于服务,一些常见的设计原则有
明确定义的接口
自包含和模块化
粗粒度
松耦合
互操作性
SOA紧密相关的技术
UDD1
统一描述、发现和集成,
提供了一种服务发布、查找和定位的方法,
WSDL
Web服务描述语言
是对服务进行描述的语言。
SOAP
简单对象访问协议
定义了服务请求者和服务提供者之间的消息传输规范。
SOAP用XML来格式化消息,用HTTP来承载消息。通过SOAP,应用程序可以在网络中进行数据交换和远程过程调用RPC。
REST
表述性状态转移
是一种只使用HTTP和XML进行基于Web通信的技术
可以降低开发的复杂性,提高系统的可伸缩性。
REST提出了如下一些设计概念和准则
(1)网络上的所有事物都被抽象为资源。
(2)每个资源对应一个唯一的资源标识。
(3)通过通用的连接件接口对资源进行操作
(4)对资源的各种操作不会改变资源标识。
(5)所有的操作都是无状态的。
SOA有两种实现方式
服务注册表模式
子主题
企业服务总线模式(ESB)
企业服务总线(Enterprise Service Bus,ESB)架构模式在于整合,
业务方只跟业务总线交互,将请求提交给业务总线,
ESB的作用
是SOA的一种实现方式,ESB在面向服务的架构中起到的是总线作用,将各种服务进行连接与整合;
描述服务的元数据和服务注册管理;
在服务请求者和提供者之间传递数据,以及对这些数据进行转换的能力,并支持由实践中总结出来的一些模式如同步模式、异步模式等;
发现、路由、匹配和选择的能力,以支持服务之间的动态交互,解耦服务请求者和服务提供者。高级一些的能力,包括对安全的支持、服务质量保证、可管理性和负载平衡等。
微服务
微服务是一种架构风格,将单体应用划分成一组小的服务,服务之间相互协作,实现业务功能每个服务运行在独立的进程中,服务间采用轻量级的通信机制协作(通常是HTTP/JSON),每个服务围绕业务能力进行构建,并且能够通过自动化机制独立地部署。
微服务有以下优势
(1)通过分解巨大单体式应用为多个服务方法解决了复杂性问题。它把庞大的单一模块应用分解为一系列的服务,同时保持总体功能不变。
(2)让每个服务能够独立开发,开发者能够自由选择可行的技术,提供API服务。
(3)微服务架构模式是每个微服务独立的部署。开发者不再需要协调其他服务部署对本服务的影响。这种改变可以加快部署速度。
(4)微服务使得每个服务独立扩展。你可以根据每个服务的规模来部署满足需求的规模。甚至可以使用更适合于服务资源需求的硬件。
微服务架构带来的挑战
(1)并非所有的系统都能转成微服务。
在互联网项目上用得更多
(2)部署较以往架构更加复杂:系统由众多微服务搭建,每个微服务需要单独部署,从而增加部署的复杂度,容器技术能够解决这一问题。
(3)性能问题:由于微服务注重独立性,互相通信时只能通过标准接口,可能产生延迟或调用出错。
(4)数据一致性问题:作为分布式部署的微服务,在保持数据一致性方面需要比传统架构更加困难。
多层架构
两层架构
以C/S为主
二层 C/S 结构为单一服务器且以局域网为中心,所以难以扩展至大型企业广域网或Internet;软、硬件的组合及集成能力有限;
缺点
(1)服务器的负荷太重,难以管理大量的客户机,系统的性能容易变坏。
(2)数据安全性不好。因为客户端程序可以直接访问数据库服务器,那么,在客户端计算机上的其他程序也可想办法访问数据库服务器,从而使数据库的安全性受到威胁。
三层C/S架构
与二层C/S架构相比,在三层C/S架构中,增加了一个应用服务器。
可以将整个应用逻辑驻留在应用服务器上,而只有表示层存在于客户机上。这种客户机称为瘦客户机。
三层
表示层
用户接口,检查用户输入的数据,显示输出数据。
功能层
业务逻辑层,是将具体的业务处理逻辑编入程序中。
数据层
对DBMS进行管理和控制。
三层C/S架构具有以下优点
(1)允许合理地划分三层的功能,使之在逻辑上保持相对独立性,从而使整个系统的逻辑结构更为清晰,能提高系统的可维护性和可扩展性。
(2)允许更灵活、有效地选用相应的平台和硬件系统,使之在处理负荷能力上与处理特性上分别适应于结构清晰的三层,并且这些平台和各个组成部分可以具有良好的可升级性和开放性。
(3)系统的各层可以并行开发,各层也可以选择各自最适合的开发语言,使之能并行且高效地进行开发,达到较高的性能价格比。对每一层的处理逻辑的开发和维护也会更容易些。
(4)利用功能层可以有效地隔离表示层与数据层,未授权的用户难以绕过功能层而利用数据库工具或黑客手段去非法地访问数据层,这就为严格的安全管理奠定了坚实的基础。
B/S架构
BS浏览器/服务器(Browser/Server,B/S)架构是三层C/S架构的一种实现方式,其具体结构为“浏览器/Web服务器/数据库服务器”。
B/S架构利用WWW浏览器技术,结合浏览器的多种脚本语言,用通用浏览器就实现了原来需要复杂的专用软件才能实现的强大功能,并节约了开发成本。
轻量级架构
子主题
持久层设计的优点
(1)屏蔽数据库平台的变化对业务逻辑层的影响。当数据库变化时,只需修改持久层操作数据库的代码,而持久层提供给业务逻辑的对象模型没有变化,从而避免了业务逻辑的修改。
(2)通过持久层的封装处理,可以在持久层实现支持多种数据库平台,而对业务逻辑层提供统一的接口。
(3)代码可重用性高,能够完成所有的数据库访问操作。
轻量级架构类型
SSH
指的是Struts2(做前端控制器),Spring(管理各层的组件),Hibernate(负责持久化层)
SSM
指的是SpringMVC(做前端控制器),Spring(管理各层的组件),Mybatis(负责持久化层)
子主题
Hibernate与Mybatis区别:
①开发方面:Hibernate开发中,sql语句已经被封装,直接可以使用;Mybatis 属于半自动化,sql需要手工完成。
②sql优化方面:对复杂查询的sql语句进行人工调优的时候,Mybatis更方便。
③可移植性方面:Hibernate使用时自动生成相应的sql语句,因此具备良好的数据库移植性,而 Mybatis 中手动编写的sql语句需要针对不同厂商的数据库进行修改。
MVC
MVC
M:模型
执行业务流程(不包括输入输出),存储业务数据。模型不依赖于视图和控制器,提高了架构的灵活性。
V:视图
展示模型中的数据,用户的同一份数据可以通过不同的视图以不同的方式展示。视图必须了解模型中的数据结构,对模型有很强的依赖性,但是模型对于视图则没有依赖性。
C:控制器
把模型接收的事件和用户输入的数据转化为对模型方法的调用。
控制器对用户的行为作出解释,并决定调用模型的哪个方法。
使用MVC模式来设计表现层,可以有以下的优点
(1)允许多种用户界面的扩展。
(2)易于维护。
(3)功能强大的用户界面。
MVP
MVP 的优点包括
(1)低耦合。模型与视图完全分离,可以修改视图而不影响模型。
(2)可以更高效地使用模型,因为所有的交互都发生在一个地方一Presenter内部。
(3)复用性好。可以将一个 Presenter用于多个视图,而不需要改变Presenter的逻辑。这个特性非常的有用,因为视图的变化总是比模型的变化频繁。
(4)可测试性好。如果把逻辑放在 Presenter 中,就可以脱离用户接口来测试这些逻辑(单元测试)。
子主题
MVVM
MVVM是由MVP进化而来,MVVM模式基本上与MVP相同,只是把MVP中的P变成了VM,即ViewModel
MVVM中的数据可以实现双向绑定,当Model变化时,View-Model会自动更新,View也会自动变化。
很好做到数据的一致性,不用担心,在模块的这一块数据是这个值,在另一块就是另一个值了。所以 MVVM模式有些时候又被称作:model-view-binder模式。因此MVVM框架比较适合逻辑复杂的前端项目,比如一些管理系统等。
子主题
MDA模型驱动架构
MDA(Model Driven Architecture)是模型驱动架构,它是由OMG定义的一个软件开发框架。它是一种基于UML以及其他工业标准的框架,支持软件设计和模型的可视化、存储和交换。
基于 MDA 的软件开发方法的主要过程是抽象出与实现技术无关、完整描述业务功能的核心平台无关模型(PlatformIndependentModel,PIM),然后针对不同实现技术制定多个转换规则,通过这些转换规则及辅助工具将PIM转换成与具体实现技术相关的平台相关模型(Platform Specific Model,PSM),最后将经过充实的PSM转换成代码。
MDA的优点
(1)MDA方法可移植性比较好:使用平台无关的建模语言来搭建平台无关的模型PIM,然后根据特定平台和实现语言的映射规则,将PIM 转换以生成平台相关的模型PSM,最终生成应用程序代码和测试框架。
(2)MDA方法中提供了模型转换标准,以及对象约束语言,工具厂商可以开发自动化的工具,开发人员只需关注于业务建模,开发PIM。从PIM到最后面向具体技术平台的可执行的应用程序,都由自动化的MDA工具来解决,很好地实现了平台互操作性。
(3)在MDA中代码是由模型生成的,可以保证文档和代码的一致性。
0 条评论
下一页