【软考系统架构设计师】2021年下系统架构师论文写作历年真题

2021系统架构设计师论文一(面向方面)

论面向方面的编程技术及其应用(AOP)
面向过程编程是一种自顶向下的编程方法,其实质是对软件进行功能性分解。它适用于小型软件系统,例如某一算法的实现。在大型应用系统中,自顶向下逐步求精的方法无论在系统体系结构的确立,系统的进化和维护,以及软件重用性方面都存在其不足之处。
请围绕“论面向方面的编程技术及其应用(AOP)”论题,依次从以下三个方面进行论述。
1、概要叙述你所参与管理或开发的软件项目,以及你在其中所承担的主要工作。
2、叙述在项目实践过程使用AOP技术开发的具体步骤。
3、结合项目,论述使用AOP的原因,开发过程中存在的问题及所使用技术带来的实际应用效果。

【标准答案】
AOP (Aspect-Oriented Programming,面向方面编程),可以说是OOP(Object-Oriented Programming,面向对象编程)的补充和完善。OOP引入封装、继承和多态性等概念来建立一种对象层次结构,用以模拟公共行为的一个集合。当我们要为分散的对象引入公共行为的时候,OOP往往会显得无能为力。也就是说面向对象往往合适定义从上到下的关系,但在定义从左到右的关系的时候,就会变得不合适了。
例如日志功能的代码就往往分布在所有的对象层次中,而与它所散步到的对象的核心功能毫无关系。对于其他类型的代码,如安全性,异常处理和透明的持续性也是如此。这种散步在各处的无关的代码被称为(cross-cutting)代码,在OOP设计中,它导致了大量代码的重复,而不利于各个模块的重用。
而AOP技术则恰恰相反,它利用一种称为横切的技术,破解开封装的对象内部,并那些影响了多个类的公共行为封装到一个可重用的模块,并将其命名为"Aspect",即方面。
所谓方面就是将那些与业务无关的,却为业务模块所共同调用的逻辑或责任都封装起来,以减少系统的重复代码,降低模块间的耦合度,并有利于未来的可操作性和可维护性。AOP代表的是一个横向的关系,如果说对象是一个空心的圆柱体,其中封装的是对象的属性和行为;那么面向方面的编程就是一把利刃,将这些空心圆柱体剖开,以获得其内部的消息。而剖开的切面就是所谓的方面了。然后它又以巧夺天工的妙手将这些剖开的切面复原,不留痕迹。
使用“横切”技术,AOP把软件系统分为两个部分:核心关注点和横切关注点。业务处理的主要流程是核心关注点,与之关系不大的部分是横切关注点。横切关注点的一个特点是,他们经常发生在核心关注点的多处,而各处都基本相似,比如权限认证、日志、事务处理。AOP的作用在于分离系统中的各种关注点,将核心关注点和横切关注点分离开来。
AOP 应用程序包括以下三个主要的开发步骤:
1、区分横切关注点
将系统需求进行功能性分解,区分出普通关注点以及横切关注点,确定哪些功能是组件语言必须实现的,哪些功能可以以 aspect 的形式动态加入到系统组件中。
2、构造出系统的切面
单独完成每一个关注点的编码和实现,构造系统组件和系统 aspect。这里的系统组件,是实现该系统的基本模块,对 OOP 语言,这些组件可以是类,对于过程化程序设计语言,这些组件可是各种函数和 API。系统 aspect 是指用 AOP语言实现的将横切关注点封装成的独立的模块单元。
3、组件代码与切面代码结合形成系统
用联接器指定的重组规则,将组件代码和 aspect 代码进行组合,形成最终系统。为达到此目的,应用程序需要利用或创造一种专门指定规则的语言,用它来组合不同应用程序片断。这种用来指定联结规则的语言可以是一种已有编程语言的扩展,也可以是一种完全不同的全新语言。

2021系统架构设计师论文二(安全)

论系统安全架构设计及其应用
信息安全的特征是为了保证信息的机密性、完整性、可用性、可控性和不可抵赖性。信息系统的安全保障是以风险和策略为基础,在信息系统的整个生命周期中提供包括技术、管理、人员和工程过程的整体安全,在信息系统中保障信息的这些安全特征,并实现组织机构的使命。许多信息系统的用户需要提供一种方法和内容对信息系统的技术框架、工程过程能力和管理能力提出安全性要求,并进行可比性的评估、设计和实施。
请围绕“论系统安全架构设计及其应用”论题,依次从以下三个方面进行论述。
1、概要叙述你所参与管理或开发的软件项目,以及你在其中所承担的主要工作。
2、详细论述安全架构设计中鉴别框架和访问控制框架设计的内容,并论述鉴别和访问控制所面临的主要威胁,并说明其危害。
3、阐述你在软件开发的过程中都遇到了哪些实际问题及解决方法。

【标准答案】
鉴别(Authentication)的基本目的就是防止其他实体占用和独立操作被鉴别实体的身份。鉴别提供了实体声称其身份的保证。鉴别的两种重要的关系背景:一是实体由申请者来代表,申请者与验证者之间存在着特定的通信关系(如实体鉴别);二是实体为验证者提供数据项来源。
鉴别的方式主要有以下的几种:
1.已知的,如一个秘密的口令
2.拥有的,如IC卡,令牌等
3.不改变的特征,如生物特征
4.相信可靠的第三方建立的鉴别(递推)
5.环境(如主机地址等)。
访问控制(Access Control)决定开放系统环境中允许使用哪些资源,在什么地方适合阻止未授权的访问的过程。在访问控制实例中,访问可以是对一个系统(即对一个系统通信部分的一个实体)或对一个系统内部进行的。

2021系统架构设计师论文三(企业应用集成)

论企业集成平台的理解与应用
企业信息集成是解决“孤岛”问题的需要,技术发展的同时也推动了集成架构等相关的研究。企业集成平台的核心是企业集成架构,包括信息、过程、应用集成的架构。
请围绕“论企业集成平台的理解与应用”论题,依次从以下三个方面进行论述。
1、概要叙述你所参与管理或开发的软件项目,以及你在其中所承担的主要工作。
2、给出至少4种企业集成平台应具有的基本功能,并对这4种功能内涵进行简述。
3、阐述你在软件开发的过程中都遇到了哪些实际问题及解决方法。

【标准答案】
集成平台是支持企业集成的支撑环境,包括硬件软件,软件工具和系统,通过集成各种企业应用软件的多样性,企业信息系统的功能和环境都非常复杂,因此为了能够较好地满足企业的应用需求,作为企业应用集成支持环境的集成平台,应该具有以下的基本功能。
1)通信服务
它提供分布环境下透明的同步异步通信服务功能,使用户和应用程序无需关心具体的操作系统和应用程序所处的网络物理位置,而以透明的函数调用或对象服务方式完成它们所需的通信服务要求。
2)信息集成服务
它为应用提供透明的信息访问服务,通过实现异种数据库系统之间的数据的交换,互操作,分布数据管理和共享信息模型定义(或共享信息数据库的建立),使集成平台上运行的应用,服务或用户端能够以一致的语义和接口实现对数据(数据库,数据文件,应用交互信息)的访问与控制。
3)应用集成服务
它通过高层应用编程接口来实现对相应应用程序的访问,这些高层应用编程接口包含在不同的应用程序。这些接口以函数或对象服务的方式向平台的组件模型提供信息,使用户在无需对原有系统进行修改的情况下,只要在原有系统上加上访问的接口就可以将现有的,用不同的技术实现的系统互联起来,通过为应用系统提供数据交换和访问操作,使各种不同的系统能够相互协作。
4)二次开发工具
二次开发工具是集成平台提供的一组帮助用户开发特定应用程序(如实现数据转换的适配器或应用封装服务等)的支持工具,其目的是简化用户在企业集成平台实施过程中(特定应用程序接口)的开发工作。
5)平台运行管理工具
它是企业集成平台的运行管理和控制模块,负责企业集成平台系统的静态和动态配置,集成平台应用运行管理和维护,事件管理和出错管理等,通过命名服务,目录服务,平台的动态和静态配置,以及其中的关键数据的定期备份等功能来维护整个服务平台的系统配置及稳定运行。

2021系统架构设计师论文四(微服务)

论微服务架构及其应用
微服务提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值。每个服务运行在其独立的进程中,服务与服务间采用轻量级的通信机制互相沟通。在微服务架构中,每个服务都是一个相对独立的个体,每个服务都可以选择适合于自身的技术来实现。每个服务的部署都是独立的,这样就可以更快地对特定部分的代码进行部署。
请围绕“论微服务架构及其应用”论题,依次从以下三个方面进行论述。
1、概要叙述你所参与管理或开发的软件项目,以及你在其中所承担的主要工作。
2、简要描述微服务优点。
3、具体阐述如何基于微服务架构进行软件设计实现的。

【标准答案】
微服务之所以能够盛行,必然是有它的独特的优势的,下面我们来分析微服务的优势。
1)技术异构性
在微服务架构中,每个服务都是一个相对独立的个体,每个服务都可以选择合适于自身的技术来实现。如要开发一个社交平台,此时我们可能使用文档型数据库来存储帖子的内容,使用图数据来存储朋友圈的这些关系,可以将每一块的性能都充分发挥出来。
同时在应用新技术时,微服务架构也提供了更好的平台。因为对于单块的系统而言,采用一个新的语言,数据库或者框架都会对整个系统产生非常巨大的影响,这样就导致我们在尝试新技术的时候望而却步。但是微服务不同,我们完全可以只在一个微服务中采用新技术,然后等成熟之后再推广到其他的服务当中。
2)弹性
系统中的一部分如果出现了故障会引起多大问题。在单块系统中一个部分出现问题,可能导致整个系统的问题。而微服务架构中,每个服务可以内置可用性的解决方案与功能降级方案,所以比单块系统强大。
3)扩展
在单块的系统中我们如果要对系统进行扩展的话,必须是整体的进行扩展,而使用微服务的架构中,可以针对单个服务进行扩展。
4)简化部署
对于大型单块的系统,哪怕是修改了一行代码,都要对其进行重新的整体的部署。这种部署影响很大,风险高因此不敢轻易重新部署。而在微服务中,每个服务都是独立部署的,而且还可以实现自动化的部署,这样就可以更快的对特定部分的代码进行部署。
5)与组织结构相匹配
对于传统的单块系统来说,系统越大代码库越大,则越难管理,而且还会出现一系列管理方面的问题。体会团队是分布式(虚拟团队)的时候,那么管理的复杂度将会更高。而微服务的出现就很好的解决了这个问题。微服务架构可以将架构与组织结构相匹配,避免的了出现过大的代码库,从而获得理想团队大小和生产力。服务的所有权也可以在团队之间迁移,从而避免异地团队的出现。
6)可组合性
在微服务架构中,系统会开放很多的接口供外部使用。当情况发生改变时,可以使用不同的方式构建应用,而整体化应用程序只能提供一个非常粗粒度的接口供外部使用。
7)对可替代性的优化
在单块系统中如果删除系统中的上百行代码,也许不知道会发生什么,引起什么样的问题,因为单块系统中关联性很强。但在微服务架构中,我们可以在需要时轻易的重写服务,或者删除不再使用的服务

Logo

开源、云原生的融合云平台

更多推荐