您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > 系统架构师培训之应用架构设计
系统架构师培训-应用架构设计-应用架构设计2课程内容••第一章:第一章:企业应用架构基础企业应用架构基础33••第二章:第二章:表现层设计表现层设计3030••第三章:第三章:业务层设计业务层设计5555••第四章:第四章:数据访问层设计数据访问层设计107107••第五章:第五章:通用服务设计通用服务设计137137••第六章:第六章:企业应用集成(企业应用集成(EAIEAI))182182••第七章:第七章:面向服务架构(面向服务架构(SOASOA)设计)设计195195••第八章:第八章:应用框架的设计与实现应用框架的设计与实现224224第一章第一章企业应用架构基础企业应用架构基础4架构的概念••架构师的角色架构师的角色–系统的规模–系统的分布••架构满足风险管理的需要架构满足风险管理的需要–高层规划的目标:•部分失效时系统的强健性•处理请求负载•并发使用的扩展能力5••架构的功能架构的功能–技术职责•标识对架构重要的用例•指导架构原型的开发–管理职责•成本管理–技术和风险转移的方法•沟通管理–与项目干系人和团队成员的有效合作的沟通技巧6架构功能和设计功能架构架构设计设计抽象级别抽象级别高层的、广泛的高层的、广泛的,,很很少关注细节少关注细节底层的、特定的,底层的、特定的,关注更多的细节关注更多的细节提交物提交物系统和子系统规系统和子系统规划,架构原型划,架构原型组件设计、代码规组件设计、代码规范范关注点关注点非功能性需求、风非功能性需求、风险管理险管理功能性需求功能性需求7••面向对象的分析和设计职责面向对象的分析和设计职责–基于组件设计的关键:•抽象•封装•内聚•耦合8••系统架构师系统架构师–可视化硬件和服务器软件的设计与实现–有数据库设计、容量规划、服务器集群、负载平衡及容错策略等方面的经验–提供支持RAS的部署环境–通常称为系统架构师或基础平台架构师9••应用架构师应用架构师–可视化应用软件和组件集成的设计和实现–有典型的业务应用、集成应用和OO方法方面的经验–提供实现端到端功能并支持非功能性需求的应用结构10架构的关键点••架构的关键点架构的关键点–架构过程–实现技术–风险管理–模式使用–原型开发11••创建满足创建满足QoSQoS需求的蓝图需求的蓝图–典型的架构文档•愿景文档•需求规范•风险识别和转移计划•应用的域模型•上下文环境描述•项目计划•假设列表12••评估实现技术评估实现技术–考虑技术决策点–确保团队正确地使用了所选技术13••识别及控制风险识别及控制风险–非功能性需求•业务规则•约束•系统质量–风险评估–成本分析14••使用适当的模式使用适当的模式–设计模式•支持功能性需求–架构模式•支持非功能性需求15••开发原型开发原型–架构原型描述系统并按照经验确定计划是否得到满足–包括:•域模型•交互图16系统架构设计指南••识别关键的风险因素识别关键的风险因素–系统的灵活性–网络通信和布局–事务模型–成本管理17••面向对象设计的本质面向对象设计的本质–使用抽象定义边界–限制接口的粒度18••网络通讯的指南网络通讯的指南–有效使用带宽:•按大块发送数据,需要更少的来回往复–最小化请求的频度:•小心设计UI•小心设计远程API19••有效使用事务控制共享资源有效使用事务控制共享资源–何时事务是必须的–何时事务不是必须的•尽可能避免事务–事务模型的获得•影响性能和吞吐量•死锁情况20••利用复用控制成本利用复用控制成本–选择相关的模式21架构模式••LayerLayer模式模式–确保抽象边界的定义和使用––各种特定的应用系统各种特定的应用系统––通用组件通用组件,,如如GUIGUI创建器、与创建器、与DBMSDBMS的接口、操作系统服的接口、操作系统服务、务、ORB,OLEORB,OLE组件等组件等––操作系统、操作系统、DBMSDBMS、、OLEOLE、、基础类库等基础类库等22••LayerLayer模式在模式在J2EEJ2EE中的应用:中的应用:–应用程序•提供满足功能需求的具体组件的实现–虚拟平台•提供应用程序组件实现的API–上层平台•提供应用程序层次组件的基础架构设施–下层平台•提供支持以上层次的操作系统–硬件平台•提供支持以上层次所需的硬件23••TierTier模式模式–解决方案•客户/服务器•表现层/业务层/数据层•……24J2EE中各Tier技术25MVC模式26••使用可靠的框架使用可靠的框架–通过装配模式构建框架–框架成为装配系统的模式–框架应用到特定的问题域27SunTone3-D架构框架28.Net架构29MS应用参考架构第二章第二章表现层设计表现层设计31Web应用的基本知识••浏览器浏览器–不同版本的浏览器对于HTML/DHTML的支持程度–用户的系统安装了哪些组件–应用是否需要访问用户的本地资源–HTML、DHTML、脚本语言(Java、JavaScript或VBScript)、CSS等••浏览器和浏览器和WebServerWebServer32MVC模式33••WebWeb控制器职责控制器职责–接收用户请求–获取请求参数–验证–根据用户的不同请求,调用对应的模型组件来执行相应的业务逻辑–获取业务逻辑执行结果–根据当前的状态数据及业务逻辑的处理结果,选择适合的视图组件返回给客户34Web层设计••拦截过滤器拦截过滤器–问题:•表现层的请求可能需要不同的处理•某些请求可能需要预处理,而某些请求可能需要后续处理35–解决方案•创建可插入的过滤器以标准的方式处理通用服务,而不需要改变核心的请求处理代码•过滤器拦截输入的请求和输出的响应,以进行预处理或后续处理36–示例ClientInterceptingFilter1InterceptingFilter2WebResource1WebResource237••前端控制器前端控制器–问题:•系统缺少一个集中处理请求的机制,会导致对每个请求都要完成的活动被随意地放在多个组件中•通用的系统服务(如安全和审计)不应当在每个视图组中都重复38–解决方案•提供一个集中处理请求的点–调用安全服务,如认证和授权–代理业务处理–管理相应的视图选择–处理错误–管理内容的创建策略39–示例TiningFilterdoFilter()FilterMateReservationexecute()SerchReservationexecute()CancelReservationexecute()ErrorPageJSPPageReservationConfirmationJSPPageReservationSearchResultsJSPPageClientDebuggingFilterdoFilter()FilterforwardRequestCountertObjectFactoryAuthenticationBeanFrontcontrollerdoPost()ServletApplicationControllerCommandinterfaceforwardforwardforwardforwardrequest40••应用程序控制器:应用程序控制器:–动作管理•控制器决定要调用哪个动作•该动作接下来会调用业务处理过程–视图管理•控制器决定将请求转发到哪个视图41–示例一:ReservationConfirmationJSPPageReservationSearchResultsJSPPageErrorPageJSPPageCommandinterfaceFrontcontrollerdoPost()ServletApplicationControllerforwardforwardforwardMapperusesMapsearchesSerchReservationexecute()CancelReservationexecute()MateReservationexecute()ReservationBusinessDelegate42–示例二:•Struts43Struts框架44••StrutsStruts控制器控制器–Struts框架重要的组件•ActionServlet•RequestProcessor•ActionMapping•ActionForward–Struts-config.xml•配置信息–Action类•负责调用模型的方法,更新模型的状态,并帮助控制器应用程序的流程45工作流程46••StrutsStrutsActionFormActionFormpublicclasspublicclassUserActionFormUserActionForm......privateStringpassword;privateStringpassword;privateStringprivateStringuserNameuserName;;publicStringpublicStringgetPasswordgetPassword(){(){returnpassword;returnpassword;}}publicvoidpublicvoidsetPassword(StringsetPassword(Stringpassword){password){this.passwordthis.password=password;=password;}}...public...publicActionErrorsvalidate(ActionMappingActionErrorsvalidate(ActionMappingactionMappingactionMapping,,HttpServletRequestHttpServletRequesthttpServletRequesthttpServletRequest){){returnnull;returnnull;}publicvoid}publicvoidreset(ActionMappingreset(ActionMappingactionMappingactionMapping,,HttpServletRequestHttpServletRequestservletRequestservletRequest){){}}......47••StrutsActionStrutsActionpublicclasspublicclassLoginActionLoginActionextendsAction{extendsAction{publicpublicActionForwardActionForwardexecute(ActionMappingexecute(ActionMappingactionMappingactionMapping,,ActionFormActionFormactionFormactionForm,,HttpServletRequestHttpServletRequestservletRequestservletRequest,,HttpServletResponseHttpServletResponseservletResponseservletResponse){){UserActionFormUserActionFormuserActionFormuserActionForm=(=(UserActionFormUserActionForm))actionFormactionForm;;Stringusername=Stringusername=userActionForm.getUserNameuserActionForm.getUserName();();Stringpassword=Stringpassword=userActionForm.getPassworduserActionForm.getPassword();();
本文标题:系统架构师培训之应用架构设计
链接地址:https://www.777doc.com/doc-984971 .html