论基于构件的软件开发方法

问题: 各种构件技术的优点、缺点,展望构件技术的发展趋势。
回答: 构件技术是指通过组装一系列可复用的软件构件来构造软件系统的软件技术。通过运用软件技术,开发人员可以有效地进行软件复用,减少重复开发,缩短开发时间,降低软件的开发成本。主流的软件架构有三种:CORBA、EJB和COM。CORBA分为对象请示代理、公共对象服务和公共设施三个层次,优点是大而全,互操作性和开放性好,缺点是庞大而复杂,技术标准更新缓慢;EJB基于Java语言,支持跨平台,提供了远程访问、安全、持久化和生命周期等机制,支持分布式计算,缺点是服务治理能力差,逐渐被Spring Cloud等轻量级框架取代;COM基于Windows平台,功能强大、效率高,有一系列开发工具支持,缺点是跨平台性差。基于构件的软件开发过程主要分为模块划分、构件标识、构件获取、构件组装与测试、构件管理等步骤。

论微服务架构及其应用

问题: 与单体架构相比较,微服务框架有哪些特点?举例至少四个惊醒说明。
回答: 微服务是以拆分和服务化为基础,将海量用户产生的大规模的访问流量进行分解,采用分而治之的方法,达成用户需要的功能指标,并同时满足用户对高可用、高性能、可伸缩、可扩展和安全性的肺功能质量要求。微服务与单体架构相比具有以下几个特点:微服务把每个职责单一的功能放在一个独立的服务中;每个服务允许在一个独立的进程中;每个服务有自己的数据存储,实际上每个服务应该有自己独享的数据库、数据缓存;每个服务有多个实例在运行,每个实例可以运行在容器化平台内,达到平滑扩展伸缩的效果。

论面向服务架构设计以及应用

问题: 说明面向服务架构的主要技术和标准,详细阐述每种技术和标准的具体内容。
回答: 面向服务架构是一种应用程序架构,在这种架构中所有功能都可以定义为独立的服务,服务之间通过协调和交互完成业务的整体逻辑。面向服务架构包括服务提供者、服务注册中心以及服务调用者。面向服务架构涉及到的协议有UDDI、WSDL、SOAP三种协议,UDDI协议是一种基于Web服务的分布式目录服务,它提供了一种标准的方式来描述、发现和集成Web服务;WSDL是描述Web服务发布的XML格式;SOAP是一种基于XML的通信协议,用于在Web服务之间进行信息交换。SOA作为一种粗粒度,松耦合的架构,具有松散耦合、粗粒度服务、标准化的接口、位置和传输协议透明、服务的封装和重用、服务的互操作等几个特点。下面着重阐述服务提供者、服务消费者和服务注册中心三个方面在网上预约挂号系统实践过程中的具体情况。

论软件架构风格

问题: 分析软件系统开发中常用的软件系统架构风格有哪些?详细阐述每种风格的具体含义。

回答: 在架构工作开始阶段,我们便意识到架构风格是一组设计原则,是能够提供抽象框架模式,可以为我们的项目提供通用解决方案的,这种能够极大提高软件设计的重用的方法加快我们的建设进程,因此在我的建议下,我们使用了虚拟机风格、独立构件风格以及B/S架构风格这三种常用的风格。虚拟机风格中的解释器架构风格能够提供灵活的解析引擎,这类风格非常适用于复杂流程的处理。独立构件风格包括进程通讯风格与隐式调用风格,我们为了简化架构复杂度采用了隐式调用风格,通过消息订阅和发布控制系统间信息交互,不仅能减低系统耦合度,而且还提高架构的可修改性。B/S架构风格使基于浏览器和服务器的软件架构,它主要使用http协议进行通信和交互,简化客户端的工作,最终减低了系统推广和维护的难度。

论基于架构的软件设计方法(ABSD)及应用

问:
详细说明采用ABSD方法进行软件开发时,需要经历哪些开发阶段?每个阶段包括哪些主要活动?

答:
基于架构的软件设计方法将软件开发过程划分为架构需求、架构设计、架构文档化、架构复审、架构实现、架构演化6个子过程,很好地支持了软件重用。架构需求阶段,需要从需求库中提取需求并标识出系统所需构件,形成架构需求进行评审;架构设计阶段,根据架构需求对构件进行映射与关联关系分析,形成架构设计方案并评审;架构文档化阶段,主要输出架构规格说明书以及质量属性测试手册;架构复审需要组织技术专家对架构设计进行再一次审核;架构实现阶段通过构件的开发形成构件库,以进一步实现架构方案;系统上线后,基于业务需求的变更以及构件的不断更新迭代,对架构设计方案进一步演化迭代升级。下面着重阐述架构需求、架构设计、架构实现三个阶段在统一收单平台项目实践过程中的具体情况。

论SOA在企业集成架构设计中的应用

问:
具体论述SOA架构的内容、特点,以及你熟悉的工具和环境对SOA的支持,在应用中重点解决了哪些问题。

答:
SOA是一种应用程序架构,在这种架构中,所有功能都定义为独立的服务,服务之间通过交互和协调完成业务的整体逻辑。SOA指定了一组实体,包括服务提供者、服务消费者、服务注册表、服务条款、服务代理和服务契约,这些实体详细说明了如何提供和消费服务。服务提供者提供符合契约的服务,并将他们发布到服务代理。这些服务是自我包含的、无状态的实体,可以由多个组件组成。服务代理者作为存储库、目录库或票据交换所,产生由服务提供者发布的事先定义的标准化接口,使得服务可以提供给在任何异构平台和任何用户接口使用。这种松散耦合和跨技术实现,使各服务在交互过程中无需考虑双方的内部实现细节、实现技术、以及部署在什么平台上,服务消费者只需要提出服务请求,就可以发现并调用其他的软件服务得到答案。SOA作为一种粗粒度、松耦合的架构,具有松散耦合、粗粒度服务、标准化的接口、位置和传输协议透明、服务的封装和重用、服务的互操作等几个特点。

论软件系统架构风格

问:
分析软件系统开发中常用的软件系统架构风格有哪些?详细阐述每种风格的具体含义。

答:
在架构工作开始阶段,我们便意识到,架构风格是一组设计原则,是能够提供抽象框架模式,可以为我们的项目提供通用解决方案的,这种能够极大提高软件设计的重用的方法加快我们的建设进程,因此在我司总工程师的建议下,我们使用了虚拟机风格、独立构件风格以及B/S架构风格这三种较常用风格。虚拟机风格中的解释器架构风格能够提供灵活的解析引擎,这类风格非常适用于复杂流程的处理。独立构件风格包括进程通讯风格与隐式调用风格,我们为了简化架构复杂度采用了隐式调用风格,通过消息订阅和发布控制系统间信息交互,不仅能减低系统耦合度,而且还提高架构的可修改性。B/S架构风格是基于浏览器和服务器的软件架构,它主要使用http协议进行通信和交互,简化客户端的工作,最终减低了系统推广和维护的难度,以下正文将重点描述架构风格的实施过程和效果。

论数据访问层设计技术及其应用

问:
详细论述常见的数据访问层设计技术及其所包含的主要内容。

答:
数据访问层技术也称持久层技术,主要负责将系统数据通过调用数据库的SQL语句对数据进行读取和存储。java语言的JDK中自带一种数据访问层技术——JDBC。市面上主流的数据库均实现了JDBC中所定义的对数据库访问的各类接口,因此JDBC能够较为高效的完成对各类数据库的数据存取操作。但是,单纯的使用JDBC进行开发,效率低下的同时会增加人力成本的支出。基于这种情况,Hibernate和Mybatis技术应运而生。Hibernate是一个对JDBC进行轻量级封装的全自动框架,能够实现数据库道POJO的完整映射,开发人员无需编写复杂的SQL,仅需对POJO进行操作便可同步处理数据库中的数据。而Mybatis相对Hibernate而言则是一个半自动的框架,可以支持自定义的SQL语句的操作,相对于复杂的数据查询操作支持性更佳。

论软件系统架构评估


分析软件系统架构评估中所普遍关注的质量属性有哪些?详细阐述每种质量属性的具体含义。


对于大型的系统来说,良好的系统架构至关重要,将直接关系到系统的质量。在软件架构评估中,人们普遍关注的质量属性包括性能、可用性、可修改性、安全性等。性能是指系统的响应能力,即要经过多长时间才能对某个事物做出响应,或者在某段时间内系统所能处理的事件个数。可用性,即系统能够正常运行的时间比例,经常用两次故障之间的时间长度或在故障出现时系统能够恢复正常的速度来表示。安全性,是指系统在向合法用户提供服务的同时能够阻止非授权用户使用的企图或拒绝服务的能力。可修改性,是指能够快速以较高的性价比对系统进行变更的能力。

论基于构件的软件开发


分析并讨论各种构件技术的优点、缺点,并展望构件技术的发展趋势。


构件技术是指通过组装一系列可复用的软件构件来构造软件系统的软件技术。通过运用构件技术,开发人员可以有效地进行软件复用,减少重复开发,缩短开发时间,降低软件的开发成本。主流的构件技术有三种:CORBA、EJB和COM。CORBA分为对象请示代理、公共对象服务和公共设施三个层次,优点是大而全,互操作性和开放性好,缺点是庞大且复杂,技术标准更新缓慢;EJB基于Java语言,支持跨平台,提供了远程访问、安全、持久化和生命周期等机制,支持分布式计算,缺点是服务治理能力差,逐渐被Spring Cloud等轻量级框架取代;COM基于Windows平台,功能强大、效率高,有一系列开发工具支持,缺点是跨平台性差。基于构件的软件开发过程主要分为模块划分、构件标识、构件获取、构件组装与测试、构件管理等步骤。

高可靠性系统中软件容错技术的应用


具体论述你在设计软件时,如何考虑容错问题,采用了哪几种容错技术和方法。


系统可靠性包括硬件可靠性和软件可靠性,两个方面都需要我们考虑到,软件的复杂度比硬件高,所以软件系统发生故障的概率也会高于硬件系统。硬件在使用时间过长的情况下,物理退化的现象加重,故障发生概率就会变高,通常我们会采用主动冗余、监控检错配合报警的方案来解决。软件系统包含各种的业务逻辑,复杂度较高,故障概率高,通常我们采用防卫式程序设计、N版本程序设计、降低复杂度设计等方案来提高单个服务的自身可靠性;单个服务的可靠性不可能达到百分百,总归避免不了特殊场景下导致服务崩溃无法提供服务支持的情况,针对这一问题通常采用集群部署配合监控报警的方案来解决,即使一台服务崩溃,还有其他服务提供者进行业务支持。合理的采用容错技术方案,可以大大提高服务的可靠性。
在收单交易系统中,我们采用了多种容错技术来提高系统的可靠性,下文着重讨论应用系统集群部署、数据库主备部署和程序设计方面在该项目中容错方面具体的应用和效果。

论系统安全架构设计及其应用


详细论述安全架构设计中鉴别框架和访问控制框架设计的内容,并论述鉴别和访问控制所面临的主要威胁,并说明其危害。


系统的安全架构设计主要有鉴别服务、访问控制、数据完整性校验、数据保密性和抗抵赖等5个方面,鉴于该运营商的业务特点,我们着重考虑了鉴别服务的能力和访问控制能力。鉴别技术主要有用户名+口令模式、数字证书和生物特征识别等技术。鉴别技术面临的主要目的是验明用户或者信息的正身,面临的威胁主要有用户名、口令被盗;生物特征被窃取、数字证书重放冒用等。访问控制主要有自主访问控制、访问列表控制、强制访问控制、基于角色的访问控制和基于任务的访问控制等技术。访问控制监控哪些资源可以被访问和使用,以及在某种情况下最大限度的降低未经授权行为的风险。无论是终端用户因疏忽而导致的敏感信息泄漏,还是因公共web服务器软件漏洞而导致的敏感信息泄漏,都可能造成灾难性后果。

论软件设计模式及应用


说明常用的软件设计模式有哪几类?阐述每种类型特点及其所包含的设计模式。


设计模式代表了最佳的实践,是开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案经过相当长的一段时间的试验和错误总结出来的。在面向对象的软件设计过程中,为了使系统体系架构更加精巧灵活,针对特定问题采用的简洁而易于理解的解决方案。经典的软件设计模式按目的不同可以分为三大类:创建型模式、结构型模式和行为型模式。第一类创建型模式,包含工厂方法、抽象工厂、构建器、原型和单例五种模式,提供在创建对象的同时隐藏创建逻辑的方式。第二类结构型模式包含适配器、桥接、组合、装饰、外观、享元和代理七种模式。解决类和对象的组合,从而获得更大的结构。第三类行为型模式是包含解释器、模板方法、职责链、命令、迭代器、中介者、备忘录、观察者、状态、策略和访问者十一个模式,解决对象之间的通信职责分配。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐