微软应用软件架构设计指南2MicrosoftapplicationsoftwarearchitecturedesignguideApplicationArchitecture

上传人:桔**** 文档编号:567632743 上传时间:2024-07-21 格式:PPT 页数:55 大小:525.50KB
返回 下载 相关 举报
微软应用软件架构设计指南2MicrosoftapplicationsoftwarearchitecturedesignguideApplicationArchitecture_第1页
第1页 / 共55页
微软应用软件架构设计指南2MicrosoftapplicationsoftwarearchitecturedesignguideApplicationArchitecture_第2页
第2页 / 共55页
微软应用软件架构设计指南2MicrosoftapplicationsoftwarearchitecturedesignguideApplicationArchitecture_第3页
第3页 / 共55页
微软应用软件架构设计指南2MicrosoftapplicationsoftwarearchitecturedesignguideApplicationArchitecture_第4页
第4页 / 共55页
微软应用软件架构设计指南2MicrosoftapplicationsoftwarearchitecturedesignguideApplicationArchitecture_第5页
第5页 / 共55页
点击查看更多>>
资源描述

《微软应用软件架构设计指南2MicrosoftapplicationsoftwarearchitecturedesignguideApplicationArchitecture》由会员分享,可在线阅读,更多相关《微软应用软件架构设计指南2MicrosoftapplicationsoftwarearchitecturedesignguideApplicationArchitecture(55页珍藏版)》请在金锄头文库上搜索。

1、微软应用软件架构设计指南2MicrosoftapplicationsoftwarearchitecturedesignguideApplicationArchitectureStillwatersrundeep.流静水深流静水深,人静心深人静心深Wherethereislife,thereishope。有生命必有希望。有生命必有希望应用软件架构设计指南2.0日程指南导读应用软件架构设计基础微软.NET平台概述Rich-Client Visual Studio 演示网络应用软件的架构设计移动应用软件的架构设计案例:微软语音产品设计过程微软应用软件架构设计指南2.0背景概述2002版的“基于.NE

2、T的应用软件架构设计:设计应用软件和服务”(Application Architecture for .NET: Designing Application and Services)基于原理的指南,整合最新实践和技术微软内部的经验为主,外部专家和用户的积极参与本人的参与:语音API(SAPI)架构转型W3C, ECMA, ISO 代表微软应用软件架构设计指南2.0目的主要对象:解决方案架构师和开发组长更加有效地研发.NET平台上的应用软件对其它平台上的软件开发也很有参考价值提供设计层面的指南注重最常见的应用类别有助于架构师选择正确的架构设计方案,选择正确的技术,做出更有效的设计决策,遵循正确

3、的模式(pattern)微软应用软件架构设计指南2.0指南的组织机构:围绕六个方面典型的架构设计风格(arch styles)应用类别(app types)架构设计框架(arch frame)质量属性(quality attributes)原理,模式,实践(principles, patterns, practices)技术与相关功能(tech & capabilities)微软应用软件架构设计指南2.0主要特征(features)应用软件的架构设计框架(framework)模块化整体化专业知识充分验证(微软内部测试评价+外部反馈不断的局部演进:.Net Framework已到3.5版(4.0

4、版Beta)微软应用软件架构设计指南2.0应用架构设计基础(fundamentals)架构设计设计一个结构的解决方案的过程,以满足技术和运行需求,同时以最佳的方法达到质量指标要求涉及众多因素和相关人员涉及一系列的决策架构设计的定义没有统一的定义:是工程,是科学,也是艺术通常包含构件及其结构,构件之间的关系微软应用软件架构设计指南2.0三种常见的定义(一)“Software architecture encompasses the set of significant decisions about the organization of a software system including:

5、Selection of the structural elements and their interfaces by which the system is composed.Behavior as specified in collaboration among those elements.Composition of these structural and behavioral elements into larger subsystems.Architectural style that guides this organization.Software architecture

6、 also involves functionality, usability, resilience, performance, reuse, comprehensibility, economic and technology constraints, tradeoffs and aesthetic concerns.”微软应用软件架构设计指南2.0三种定义(二)The highest-level breakdown of a system into its parts.The decisions that are hard to change.There are multiple arc

7、hitectures in a system.What is architecturally significant can change over a systems lifetime.In the end, architecture boils down to whatever the important stuff is.微软应用软件架构设计指南2.0三种定义(三)“The software architecture of a program or computing system is the structure or structures of the system, which c

8、omprise software elements, the externally visible properties of those elements, and the relationships among them. Architecture is concerned with the public side of interfaces; private details of elementsdetails having to do solely with internal implementationare not architectural.”微软应用软件架构设计指南2.0架构设

9、计的作用提供一个坚实的“地基”(solid foundation)提供开发工程师一个统一的系统设计思路和策略重点在于构件和界面如何交互作用降低产品的风险考虑关键的使用“场景”(scenarios)避免常见问题考虑决定的长远影响微软应用软件架构设计指南2.0架构设计的目标通过对使用场景的深刻理解来建立业务需求和技术需求之间的“桥梁”寻求最佳技术方案来实现业务需求重点是识别对系统结构有重要影响的业务需求降低技术方案业务风险让系统具有足够的灵活性解决质量指标要求之间的平衡解决其他因素之间的冲突微软应用软件架构设计指南2.0好的架构设计:展现系统的结构但是隐藏实现的细节满足所有的使用需求能解决系统相关

10、人员(stakeholders)的各种顾虑很好地实现功能需求,同时也满足质量指标的要求微软应用软件架构设计指南2.0设计手段以设计底线为参考制定多个待选方案测试评估,改进几个要点:所用假设是否正确满足那些明显的和隐含的需求存在的关键风险对付风险的方案微软应用软件架构设计指南2.0架构设计底线方法应用类型架构设计风格功能元件的分析部署策略合适的技术质量指标要求全局因素微软应用软件架构设计指南2.0架构设计风格(styles)基于构件的架构 (component-based)信息通道架构(message-bus)层次架构(layered-based)3-tier/N-tier架构面向对象架构(ob

11、ject-oriented, OOA)名词取向 Noun centric面向服务架构(service-oriented, SOA)动词取向 Verb centric微软应用软件架构设计指南2.0质量属性要求可用性(availability)概念完整性(conceptual integrity)灵活性(flexibility)互通性(interoperability)可维护性 (maintainability)可管理性(manageability)性能(performance)微软应用软件架构设计指南2.0质量属性要求(续)可靠性(reliability)再用性(reusability)扩展性(

12、scalability)安全性(security)可支持性(supportability)可测试性(testability)易用性(usability)微软应用软件架构设计指南2.0架构设计的关键原则采用模型分析,降低风险 (UML)采用模型和视图(views)进行交流辨别什么决定影响核心工程适应变化的设计而不是“永存”的设计采用“递加渐进”的方法逐步完善设计重全局思考而不要过多地在乎细节不能忽视架构设计的有效评估微软应用软件架构设计指南2.0.NET平台概述由若干服务器应用,基础设施构件(infrastructure),实时服务,和.NET框架构成应用基础设施CLR.NET Framewor

13、k移动应用(mobile).NET Compact FrameworkASP.NET MobileSilverlight Mobile微软应用软件架构设计指南2.0.NET平台支援的应用类型Web应用ASP.NET“强势”网络应用(Rich Internet App (RIA))Silverlight“强势”客户端应用(Rich Client)Windows FormsWindows Presentation Foundation (WPF)数据库(Database)Microsoft SQL Server微软应用软件架构设计指南2.0.NET平台支援的应用类型(续)服务(services)A

14、SP.NET Web Services (ASMX)Windows Communication Foundation (WCF)协同/工作流(collaboration/workflow)Windows Workflow Foundation (WF)Office SharePoint (MOSS)BizTalk Server网络服务器(Web Server)Internet Information Services (IIS) Visual Studio演示 微软应用软件架构设计指南2.0例:.NET平台和层次式架构的应用微软应用软件架构设计指南2.0.NET层次架构设计API表现层(pre

15、sentation layer)UI 构件UI处理件System.Web.UISystem.Windows.Form微软应用软件架构设计指南2.0.NET层次架构设计API (续)业务层(business layer)应用表象(app faade):UI independent业务工作流(business workflows)业务构件业务实体(business entities)System.WorkflowSystem.TransactionsSystem.ServiceModels微软应用软件架构设计指南2.0.NET层次架构设计API(续)数据层数据存取辅助功能(help utiliti

16、es)服务代理(service agents)System.DataSystem.Data.Services微软应用软件架构设计指南2.0微软应用软件架构设计指南2.0.NET层次架构设计API(续): 综合因素(cross-cutting)安全性运行管理信息交流System.Security, System.Messaging, System.RuntimeSystem.Configuration, System.Deployment微软应用软件架构设计指南2.0设计的核心原则关注分离原则(separation of concerns)功能单一原则(single responsibility

17、)最少相知原则(least knowledge)不重复原则 (reusability)逐步叠加原则重合成,轻继承原则(composition over inheritance)微软应用软件架构设计指南2.0设计面对的关键问题认证和授权(authentication and authorization)在信任边界之间缺乏认证在信任边界之间缺乏授权过细或不当授权暂存(caching)暂存易变的数据暂存敏感数据暂存方法不当微软应用软件架构设计指南2.0设计面对的关键问题(续)信息交流(communication)传输协议选择不当不必要的传输对敏感数据保护不当合成(composition)太多的模块间

18、的依赖硬性依赖妨碍UI的动态布局硬性依赖妨碍模块的动态装载(dynamic loading)微软应用软件架构设计指南2.0设计面对的关键问题(续)并发和事务处理(concurrency and transactions)对静态数据的并发存取不作保护不当“锁定”导致“死锁”没有选择正确的数据并发模型运行时间长的事务处理“锁定”数据不必要地使用“排他锁定”微软应用软件架构设计指南2.0设计面对的关键问题(续)配置管理 (configuration management)缺乏配置信息对敏感配置信息保护不当对配置信息的存取不作必要的保护耦合和凝聚(coupling and cohesion)功能组合不

19、当关注分离不明确层次之间的紧密耦合微软应用软件架构设计指南2.0设计面对的关键问题(续)数据存取(data access)不必要的认证和授权细分过于频繁的数据库调用混淆业务逻辑与数据存取代码例外管理(exception management)“例外”发生时向用户透露敏感信息使用“例外”去控制程序的运行没有记录“例外”发生详细信息微软应用软件架构设计指南2.0设计面对的关键问题(续)分层(layering)构件误置不遵循分层和独立规则没有考虑层次的物理配置问题状态管理(state management)不正确的状态存储方式没有考虑序列化要求(serialization requirements)

20、在需要时不“硬存”状态(persisting)微软应用软件架构设计指南2.0设计面对的关键问题(续)结构(structure)与使用场景不吻合的结构过于复杂的结构没有考虑部署局面(deployment scenarios)用户体验(user experience)不遵循通用的惯例没有考虑“易接触”(accessibility)叠加不相关的功能,从而导致界面拥挤微软应用软件架构设计指南2.0设计面对的关键问题(续)验证(validation)越过信任边界时不进行验证不验证值域,类型,格式,和长度不使用现有的验证逻辑工作流(workflow)没有考虑管理需求选用不当的模式 (pattern)没有考

21、虑“例外”状态以及相应的对策微软应用软件架构设计指南2.0常见网络应用的部署设计模式(Design Patterns)微软应用软件架构设计指南2.0部署模式非分布式微软应用软件架构设计指南2.0部署模式分布式微软应用软件架构设计指南2.0典型的网络应用安全架构微软应用软件架构设计指南2.0部署模式:信任子系统微软应用软件架构设计指南2.0部署模式:多个信任服务模型微软应用软件架构设计指南2.0部署模式:Web Farm微软应用软件架构设计指南2.0部署模式:装载平衡集群微软应用软件架构设计指南2.0部署模式:Failover微软应用软件架构设计指南2.0移动应用的架构设计微软应用软件架构设计指

22、南2.0移动应用架构设计多层次应用用户体验(UI)层业务层数据层用户端类型强功能用户端业务层,数据层在终端上弱功能用户端业务层,数据层在服务器上微软应用软件架构设计指南2.0设计考量用户端类型终端特征(屏幕尺寸,分辨率,CPU,)连接特点,带宽恰当的UI层次结构的分布终端的资源限制(电池,内存,CPU功能)微软应用软件架构设计指南2.0技术考量.NET Compact Framework.NET框架类库子集只支持Visual Basic 和Visual C#老程序移植问题较多Windows Mobile注意版本之间的差异(专业/普通)采用不同的安全模型,程序不完全通用仅使用Windows Mo

23、bile API读存内存和文件微软应用软件架构设计指南2.0技术考量(续)Silverlight for Mobile还处于开发阶段支持多媒体和交互性移动终端与桌面应用的一致性尽量使用ASP.NET/HTML,避免ASP.NET for MobileWindows Embedded适用于机顶盒,POS机,ATM,支持GPS等终端设备不同的设备类兴许采用不同的版本采用共同程序基库时必须考虑版本间的不一致微软应用软件架构设计指南2.0核心问题认证和授权暂存(caching)通讯配置管理(configuration)数据存取终端设备特点意外事件管理(exception)微软应用软件架构设计指南2.0核心问题(续)信息记录(logging)移植(porting)同步(synchronization)电源UI性能测试部署(deployment)

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号