《应用架构设计模板.ppt》由会员分享,可在线阅读,更多相关《应用架构设计模板.ppt(63页珍藏版)》请在三一办公上搜索。
1、应用架构设计实践,Author:谢峰,架构概念 应用架构介绍火龙果架构培养体系 应用架构案例,内容介绍,架构概念 应用架构介绍火龙果架构培养体系 应用架构案例,架构基本概念什么是架构,定义了系统的组织,组成系统的结构元素、接口以及这些元素在协作中的行为,关系的设计和管理原则。,架构基本概念什么是架构基线,构建基线架构基线:架构基线是一个“小的、皮包骨架的”系统,是系统整个生命周期的开发准则,适用于所有的迭代周期;系统实施系统实施基于架构基线,在架构基线的指导下,完成系统的构件、节点,使“基线”进化为性能完善的系统;,系统构件,架构基线,架构基本概念架构设计目标,理解系统架构使开发人员、管理人员
2、,客户以及其他项目相关人员理解系统;组织开发通过明确划分的子系统,以及接口,降低协调开发的成本;鼓励重用设计良好可重用的子系统加速系统的构建进程;进化系统应对变化环境,构建弹性系统避免变化对系统产生非期望的效果;,架构基本概念架构分类,业务架构(Business Architecture)技术架构(Technical Architecture)企业架构(Enterprise Architecture),架构分类业务架构,业务架构是对需求的描述,以及业务模型的定义,其中包括领域模型(Domain Object),业务流程模型(Business Process Model),系统参与者(Actor
3、)。,架构分类技术架构,技术架构是对系统使用的技术一个规范性的定义,它包含非功能性的可重用构件,系统结构的设计规范,开发规范,物理环境,测试环境,部署环境的定义,以及系统配置管理。,架构分类企业架构,企业架构指的是在对一个企业的业务战略和流程理解基础之上,进行信息化的顶层设计,对企业现有的业务架构和技术架构进行有效的整合,形成灵活健壮的IT结构,构建的和谐IT环境。,架构分类宏观架构(Macroscopical Architecture),架构概念 应用架构介绍火龙果架构培养体系 应用架构案例,应用架构介绍业务架构示例,应用架构介绍技术架构组成,Core Architecture,Subscr
4、iption,Data Analysis,BPM,Trace,Utilities,Toolkits,Schedule,Connector,Connector,Connector,Portal,PMI,Rule Engine,应用架构介绍系统协同,Application A,Application B,Connector(Middle DB),Connector(Web Service),Application A,Application B,Application A,Application B,Connector(JCA),应用架构介绍设计原则,分而自治(Boundary Of Respon
5、sibility)面向服务(Service Oriented)协同规划(Collaboration),应用架构介绍分而自治,分而自治(Boundary Of Responsibility)功能性与非功能性之分通用与定制之分,应用架构介绍面向服务,面向服务(Service Oriented)面向接口组件黑盒规范的服务描述,应用架构介绍协同规划,协同规划(Collaboration)泛化连接器松散耦合简单部署,应用架构介绍应用架构实现方法论,整体规划Vertical Solution(Use Case,Domain Model,Business Sequence,etc)Horizontal So
6、lution(Prototype,Components,Service Publication,Technical Decision)环境配置WorkspaceIDE编码实现Object OrientedDesign PatternTesting,应用架构介绍应用架构实现方法论(续),部署Deployment ScriptApplication Service EnvironmentTesting,架构概念 应用架构介绍火龙果架构培养体系 应用架构案例,架构概念 应用架构介绍火龙果架构培养体系 应用架构案例,应用架构案例案例背景,本案例是一个实际的企业级应用系统,主要作用是为企业的其他信息系统
7、提供相关的数据分析服务,包括报表,图表,和Dashboard。系统目标构建一个数据分析服务组件能够支持数据分析资源扩展提供标准的数据分析服务,被其他企业信息系统所使用系统环境支持分布式应用支持多种协议提供定时服务提供订阅服务运行高性能提供管理控制台设计约束需要支持热部署,应用架构案例架构设计路线图,应用架构案例系统整体需求描述,提供统一的数据分析服务提供定时服务,定时产生数据分析结果(月报,年报,周报)提供订阅服务,输出数据分析结果支持多交互协议支持多数据分析资源的扩展支持运行时的扩展性,热部署,应用架构案例确定架构范围,针对需求,确定设计点,作为架构设计的范围,应用架构案例子架构:分析、设计
8、、实现与验证集成系统总体架构,功能架构子系统划分,对于任何系统而言,系统的架构都需要从对系统的分解入手。划分子系统的主要目的在于:简化系统设计工作提高并行开发效率便于系统架构的扩展,功能架构子系统划分分析,功能性划分功能性组件数据分析组件:提供数据分析基本服务,产生数据分析结果(图片,文件)定时服务组件:提供定时机制,定时调用数据分析服务和订阅服务订阅服务组件:提供订阅服务基本服务,(Mail,FTP)管理控制台:系统服务配置设定(定时服务,订阅服务)非功能性划分非功能性组件部署管理组件:运行时装载数据分析的模版,计算组件,数据源;数据访问组件:提供访问数据源服务(数据库,文件)外部交互适配器
9、:提供支持多种交互协议的连接适配器(SOAP,RMI-IIOP)通用与定制之分定制性组件JasperReport:提供基于JasperReport的数据分析服务CrystalReport:提供基于水晶报表的数据分析服务,功能架构子系统划分设计,根据原则划分好的子系统,需要有明确的接口定义,来代表其子系统提供的功能,功能架构子系统划分实现与验证,在系统实施过程中,一般子系统会使用不同的工作目录来实现。每个工作目录会需要包含下列信息:源程序组件依赖配置部署脚本测试程序,逻辑架构系统分层,系统分层的主要目的在于:细化子系统,确定子系统组件之间的协作关系提高子系统的可重用性提高子系统的可测试性提高子系
10、统的可维护性提高子系统的可扩展性,逻辑架构系统分层分析,定义分层边界划分原则本系统按照服务消费者和服务提供者关系来划分层次定义消费者和服务提供者关系,逻辑架构系统分层设计,可扩展架构:支持资源扩展,数据分析资源包括各种数据分析实现技术。支持资源扩展的主要需求如下:支持数据分析资源的可替换支持数据分析资源的可升级实现统一的数据分析服务接口,可扩展架构:支持资源扩展分析,通用性和定制性划分特定数据分析资源需要定制统一的数据分析接口代表通用行为通用性和定制性结合行为抽象,抽象特定数据分析资源的通用行为实现独立,把特定数据分析资源的实现看成是行为抽象的一个特定实现,可扩展架构:支持的资源扩展设计,J2
11、EE Pattern:策略模式,现流行方式是采用Spring的ApplicationContext或者反射模式。,可扩展架构:支持的资源扩展实现,定义接口public interface ReportingServiceIFbyte loadReport(String reportId,Map context,int binaryType);定义Spring配置 通过制定BeanName来判断使用那个实现类ReportingServiceIF service=(ReportingServiceIF)ApplicationCtx.getBean(serviceName);byte reportB
12、inary=service.loadReport(reportId,context,binaryType);,外部接口架构:系统外部接口支持多种交互协议,系统的外部接口会被多种交互协议所调用,对于外部接口架构来说,主要需求如下:支持系统外部接口调用协议扩展重用数据分析服务组件简化外部接口调用的实现,外部接口架构:系统外部接口支持多种交互协议分析,职责划分协议适配器:适配器负责使用特定交互协议调用数据分析服务重用数据分析组件:数据分析组件不涉及具体的协议交互泛化连接器接口抽象交互行为,定义统一的交互接口封装特定协议交互细节,屏蔽交互复杂性,外部接口架构:系统外部接口支持多种交互协议设计,J2EE
13、 Pattern:Faade模式,通过coarse-grained的接口,屏蔽了低层次的实现细节,这也是faade模式的一种应用。,外部接口架构:系统外部接口支持多种交互协议设计,J2EE Pattern:策略模式,Delegate,Delegate模式,对于具体的调用实现类来说,它不负责具体的业务逻辑处理,而只是负责代理特定的业务实现对象,并且封装对这个对象的引用过程。常用的方式有ServiceLoacator,封装了SOAP,Remote Interface,Local Interface的调用。,外部接口架构:系统外部接口支持多种交互协议设计,外部接口架构:系统外部接口支持多种交互协议实
14、现,EJB Adapterpublic interface ReportingServiceEJBAdapter extends EJBObject byte loadReport(String serviceClassName,String reportId,Map context,int binaryType)throws RemoteException;EJB Delegatepublic class ReportingServiceEJBDelegate implements PCEReportingServiceDelegateIF public byte loadReport(St
15、ring serviceName,String reportId,Map context,int binaryType)byte binaryArray=null;.ReportingServiceEJBAdapterHome remoteHome=(ReportingServiceEJBAdapterHome)ServiceLocator.getInstance().getRemoteHome(ReportingServiceEJBAdapter,ReportingServiceEJBAdapterHome.class);ReportingServiceEJBAdapter remote=r
16、emoteHome.create();binaryArray=remote.loadReport(serviceName,reportId,context,binaryType);return binaryArray;,可靠性架构:异常处理机制,异常处理是系统可靠性的表现,异常分为三种:无法恢复异常,记录异常日志可恢复异常,通知使用者通过特定操作修复异常容错异常,系统根据发生的异常类型决定通过特定逻辑修复异常,可靠性架构:异常处理机制分析,架构统一使用稳定的架构控制异常,包括捕获,日志,跳转异常处理职责划分,判断异常处理范围,处理不了,就抛出异常包装,低层次异常需要被高层次异常包装(1*N),
17、可靠性架构:异常处理机制设计,可靠性架构:异常处理机制设计,可靠性架构:异常处理机制实现,对于不可恢复异常而言,典型的实现方式如下:try callService();catch(RuntimeException ex)/低层次的Exceptiontracer.logError(ex);throw new NewRuntimeException(e);/高层次的Exception不可恢复异常向上层抛出,它面对的不是许许多多低层次的Exception,而是它的直接下层组件的Exception。对于可恢复的异常而言,典型的实现方式就是直接在catch中,进行新的逻辑处理,而不是继续向上层抛出。,可
18、维护性架构:运行时的扩展性,运行时可扩展性要求服务能及时更新,其中包括:更新数据分析逻辑计算组件服务更新数据分析模版更新数据源装载组件服务更新数据分析结构,这也是常说的热部署!,可维护性架构:运行时的扩展性分析,资源的热部署,相关配置文件更新业务组件的热部署,可维护性架构:运行时的扩展性设计,可维护性架构:运行时的扩展性实现与验证,构建资源管理文件系统构造自定义ClassLoader扫描资源管理文件系统,栽入ClassPath更新服务,替换自定义ClassLoader,应用架构案例子架构:分析、设计、实现与验证集成系统总体架构,架构集成,为什么要进行架构集成把系统的不同问题的设计进行有效的结合
19、系统的整体架构不是简单的堆砌,需要各个部分的协调架构集成的时机在每个子架构设计过程中,不断地集成集成的策略持续的集成,集成会引起对架构的重新认识架构需要不断地在集成中重构,总体架构集成逻辑架构集成,总体架构集成逻辑架构集成,总体架构集成物理架构集成,总体架构集成架构集成策略,面向接口本系统子系统之间都通过接口进行交互;接口的实现组件都允许被替换;Mocker对于未完成的子系统,可以通过建立Mocker来模拟这个子系统Cruise Control+Ant+MavenCruise Control是持续集成的强力工具,通过定制好的Ant或者Maven脚本,Cruise Control可以持续调用这两种脚本完成实际情况的部署,以便尽早发现架构集成的问题。,总体架构集成架构集成测试与验证,集成测试功能性测试黑盒测试边界测试非功能性测试性能测试可操作性测试架构验证耦合性验证性能验证扩展性验证,谢谢!,-关心您的软件工程实践-,Thank you for your attendance!,
链接地址:https://www.31ppt.com/p-5723643.html