顶级:架构设计与软件开发培训

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1架构设计与软件开发2主题•架构设计–架构设计基础–常用模式及中间件–表示层设计方法–业务层设计方法–数据访问层设计方法–面向方面编程(AOP)–通用架构服务设计–创建软件架构•软件开发–JavaEE5新特性–JavaEE主流应用服务器–JavaEE应用调优2第一部分:架构设计软件架构基础35软件架构设计•处于软件系统建设的上游•需要全面考虑多方面的因素•对于同一个问题,可以有多种设计结果•是在各种制约条件下取得的较好折衷方案•科学+经验+艺术•“系统架构”往往被滥用需求分析架构设计系统设计系统开发测试上线6架构的概念•架构师的角色:–系统的规模–系统的分布•架构满足风险管理的需要–高层规划的目标:•部分失效时系统的强健性•处理请求负载•并发使用的扩展能力47•架构的功能–技术职责•标识对架构重要的用例•指导架构原型的开发–管理职责•成本管理–技术和风险转移的方法•沟通管理–与项目干系人和团队成员的有效合作的沟通技巧8•架构功能和设计功能功能性需求非功能性需求,风险管理关注点组件设计,代码规范系统和子系统规划,架构原型提交物底层的、特定的,关注更多的细节高层的、广泛的,很少关注细节抽象级别设计架构59•面向对象的分析和设计职责–基于组件设计的关键:•抽象•封装•内聚•耦合10•系统架构–可视化硬件和服务器软件的设计与实现–有数据库设计、容量规划、服务器集群、负载平衡及容错策略等方面的经验–提供支持RAS的部署环境–通常称为系统架构师或基础平台架构师611•应用架构师–可视化应用软件和组件集成的设计和实现–有典型的业务应用、集成应用和OO方法方面的经验–提供实现端到端功能并支持非功能性需求的应用结构12架构的关键点•架构的关键点–架构过程–J2EE技术–风险管理–模式使用–原型开发713•创建满足QoS需求的蓝图–典型的架构文档•愿景文档•需求规范•风险识别和转移计划•应用的域模型•上下文环境描述•项目计划•假设列表14•评估J2EE技术–考虑技术决策点–确保团队正确地使用了所选技术815•识别及控制风险–非功能性需求•业务规则•约束•系统质量–风险评估–成本分析16•使用适当的模式–设计模式•支持功能性需求–架构模式•支持非功能性需求917•开发原型–架构原型描述系统并按照经验确定计划是否得到满足–包括:•域模型•交互图18架构模式•Layer模式–确保抽象边界的定义和使用通用组件,如GUI创建器、与DBMS的接口、操作系统服务、ORB,OLE组件等不同应用系统操作系统、DBMS、OLE、基础类库等各种特定的应用系统SystemsoftwareplatformNon-domainspecificcomponentsystemsDomainspecificcomponentsystemsApplicationsystems1019–使用Layer模式•将大型任务划分为若干子任务组件,每个子任务是一个特定的抽象层–系统功能的变化不会引起整个系统的波动–组件之间的接口稳定–调换系统的各部分不会影响其它系统组件–系统的各部分可以复用–每一层都只与其下层进行通讯20•MVC模式–将视图与控制器从模型中分离出来1121•Tier模式–解决方案•客户/服务器•表现层/业务层/数据层•……22–J2EE中各Tier技术:1223–.Net架构Non-WebClientsDataTierWebTierIIS-01SQL-01MiddleTierWebWebBrowserBrowserWebServiceWebService.NetComponents.NetComponentsTransactionTransactionMessageQueueMessageQueueADO.NetADO.NetScalabilityScalabilityMonitoringMonitoringSecuritySecurityWebClientsWinFormWinFormASP.NetASP.NetTransactionTransactionMessageQueueMessageQueueADO.NetADO.NetScalabilityScalabilityMonitoringMonitoringSecuritySecurity24•使用可靠的框架–框架“是将要实现的整体软件系统的一部分,定义了同类系统内的架构并提供基本的积木组件块创建系统。”•通过装配适当的模式构建框架•框架成为装配系统的模式•框架适用于特定的问题域–典型框架如:Struts、EJB等1325•使用基于服务(Service-Based)的架构–特点•客户与实现松散耦合•易于复用,提供扩展能力和可管理性26–服务类型•垂直服务–基于系统的内容•水平服务–基于系统基础设施平台1427–开发基于服务架构指南•服务是类似于C/S架构中服务器的软件•服务用来管理并发用户访问资源–用户=》服务=》资源28•SunTone架构框架1529中间件•中间件的特点–满足大量应用的需要–运行于多种硬件和OS平台–支持分布计算,提供跨网络、硬件和OS平台的透明性的应用或服务的交互–支持标准的协议-保证互操作性–支持标准的接口-保证可移植性30•典型中间件–消息中间件(MOM)–对象请求代理(ORB)–事务处理监控器(TPM)–其它中间件•安全中间件•数据库中间件•远程方法调用(RPC)1631应用服务器•应用服务器(ApplicationServer)–企业级应用在Internet上迅速发展的条件下,出现的一种中间件技术–可以处理客户和数据层之间的交互操作,并提供一组前面提到的中间件服务,包括事务管理、ORB、MOM、系统安全、负载均衡及资源管理等–应用服务器还提供了一个称为容器的管理环境,可以对应用中的组件进行配置和管理–通过应用服务器的采用可以将一个企业级应用安全、有效地部署到Internet上,实现电子商务–采用应用服务器技术可以大大缩短开发周期、减小风险、降低成本32•应用服务器三层架构17表现层设计34MVC模式•MVC模式1835•Web控制器职责–接收用户请求–获取请求参数–验证–根据用户的不同请求,调用对应的模型组件来执行相应的业务逻辑–获取业务逻辑执行结果–根据当前的状态数据及业务逻辑的处理结果,选择适合的视图组件返回给客户36Web层设计•拦截过滤器–问题:•表现层的请求可能需要不同的处理•某些请求可能需要预处理,而某些请求可能需要后续处理1937–解决方案•创建可插入的过滤器以标准的方式处理通用服务,而不需要改变核心的请求处理代码•过滤器拦截输入的请求和输出的响应,以进行预处理或后续处理38–示例:2039•前端控制器–问题:•系统缺少一个集中处理请求的机制,会导致对每个请求都要完成的活动被随意地放在多个组件中•通用的系统服务(如安全和审计)不应当在每个视图组件中都重复40–解决方案•提供一个集中处理请求的点–调用安全服务,如认证和授权–代理业务处理–管理相应的视图选择–处理错误–管理内容的创建策略2141–示例:42•应用程序控制器:–动作管理•控制器决定要调用哪个动作•该动作接下来会调用业务处理过程–视图管理•控制器决定将请求转发到哪个视图2243–示例一:44–示例二:•Struts2345Struts框架浏览器Web服务器ActionServletFormBean(模型)JavaBeanEJBStruts-config.xml数据库MessageResouseJSPActionAction(视图)(控制器)Servlet/JSP容器46表现层的其它考虑•页面Cache–页面的Cache依赖于Http1.1协议•需要客户端支持–Cache保存的位置•客户端、服务器、代理服务器–Cache的有效条件•过期时间–页面的Cache的版本•可以根据Request中的请求参数或HttpHeader的不同保存不同版本的Cache–页面Cache也可以通过程序实现2447•状态保存–需要保存的状态是客户端、还是服务器端–如果在服务器端,状态全局的,还是局部的–状态是否有效期–关闭浏览器以后,状态是否还需要保存–状态数据有没有可能在网络上传输,传输过程中是否需要加密、是否防篡改48•用户界面(UI)组件–类型:•Console、Web、Plug-in–搭建UI的框架•自定义标签•AJAX•……2549–动态页面生成:•XML•模板技术screenname=mainparameterkey=bannervalue=/banner.jsp/parameterkey=sidebarvalue=/sidebar.jsp/parameterkey=bodyvalue=/main.jsp/parameterkey=footervalue=/footer.jsp//screen50•UI流程(UIP)组件:–作用:•隔离了UI与业务逻辑层•对流程中的UI进行了管理•提供了状态保存和传递的机制–定制导航流程•在配置文件中定制的流程26业务层设计52业务服务•实现业务规则及执行业务工作的组件–实现业务功能,是对特定业务逻辑和内部业务流程的封装–负责发起事务,是根事务发起者,支持事务与补偿交易–通过封装已存在的业务能够获得更高等级的操作和业务逻辑2753•业务服务与事务–为了保证业务处理的完整性,业务服务必须提供事务的支持•是事务的发起者,必须参与事务的投票•能发起或参与异构系统的分布式事务,设置组件事务属性•为业务处理提供补偿交易处理54–实现事务方式•数据库事务与应用事务•手工事务与自动事务2855•设计要点–对于大型的系统,在保证性能的前提下,保证组件结构的可扩展性–尽量保持组件之间的松耦合,允许并行、渐进及独立的开发与测试–尽可能采用基于消息的通讯–确定透过服务接口所暴露的处理流程是能处理多次重复信息的情况。–选择事务边界要仔细,设置合适的事务隔离度–选择和保持用一致的数据格式作为输入和返回参数56«interface»功能组件接口+Foo()+Bar()功能组件核心+Foo()+Bar()功能组件扩展1+Foo()+Bar()功能组件扩展2+Foo()+Bar()功能组件扩展N+Foo()+Bar()功能组件客户组件111功能组件客户组件功能组件核心+Foo()+Bar()«use»•基于接口的可扩展性设计2957业务流程•业务流程(BusinessWorkflow)–具有各种不同功能的活动相连的一组有相互关系的任务–有起点和终点,而且都是可重复的,由多个业务过程(BusinessProcess)组成–业务过程包含多个业务步骤,且具有一定顺序–定义及协调长期执行业务过程,支持长事务58•业务流程的实现–流程引擎•实现业务流程同时管理活动的启用和终止或商业功能–资源管理器•资源管理器使实现商业功能或活动所必须的资源具有可用性–调度程序–审计管理器–安全管理器3059服务接口•服务接口是为服务提供的进入点:–是一个软件实体,将其实现为处理映射和转换服务的外观(Façade)组件–与服务进行通讯,并强制执行通讯的处理流程及原则–服务接口暴露方法,这些方法可被个别调用或以特定的顺序被调用60•服务接口的设计:–将服务接口视为应用程序的边界–同一功能发布多种服务接口,不同的服务接口可以执行不同的SLA,以及不同事务处理能力–实现外观组件,帮助隔离业务的变化–事务性传输或非事务性传输–尽可能提高与其它平台和服务的交互操作性3161•服务接口的实现–交换信息,负责实现通信时的所有细节:•网络协议•数据格式•安全性•服务级别协议62•服务接口设计模式–外观(Façade)模式•目标:–子系统提供单一接口给用户端•问题:–子系统内的类分别提供部分功能,用户端必须调用每个类,导致两层间联系复杂,不易维护,违反封装原则•效果:–简化设计,易于维护3263–示例:64•实现服务接口的方式–XMLWeb服务•使用SOAP和HTTP–消息队列方式•一般采用系统服务中的队列组件3365业务代理•问题

1 / 100
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功