您好,欢迎访问三七文档
第4章:物理设计阶段摘要:本章讨论了和商务参考体系结构应用程序ConsolidatedRetail.com有关的Microsoft解决方案框架(MSF)物理设计阶段。在逻辑设计阶段,项目开发小组将实际的物理设计约束应用到在逻辑设计阶段创建的逻辑设计。这项活动的目标是标识一组组件,然后确定哪些组件已经存在以及哪些组件必须创建。在该阶段的末尾,将结果记录在明确定义的技术规范中,该规范将成为构建应用程序的蓝图。简介物理设计阶段是将实际的物理设计约束应用到逻辑设计的过渡阶段。标识了逻辑组件之后,下一个任务就是分析哪些组件已经存在,哪些组件可以重复使用或进行修改,而哪些组件必须创建。正如前文所述,物理设计过程是从开发人员的角度考虑的。该阶段的成果是一个完整实现方案的设计或蓝图,同时编写出了技术规范文档,开发小组将使用该文档来构建应用程序。物理阶段可以分为三个更小的任务阶段,如下所示:研究:在此阶段,开发小组将确定物理基础结构约束和解决方案需求,并处理这两者之间的冲突。此外,开发小组还将确定预期的实现技术。分析/合理化:开发小组将选择要使用的实现技术,并确定如何满足定义的业务需求。实现:开发小组将选择编程模型、指定组件接口并选择开发语言。本章的其余部分将详细讨论这三个任务,并在适当的地方给出示例。研究工作物理阶段涉及的第一个任务是研究和收集有关以下主题的信息:物理解决方案需求物理约束可供选择的现有技术客户需求暗含在需求文档中,在逻辑阶段进一步加以定义;不过开发小组可能需要研究并确定实际的约束和现有的技术。确定物理解决方案需求物理解决方案需求是专用于指导基础结构设计的需求。在第1章中,我们定义了以下系统需求:全球化性能/可靠性可扩展性可用性可管理性安全性可访问性以下章节将对每个主题进行详细说明。全球化(国际化)全球化(或国际化)是开发程序核心内容需要经过的一个过程,在这个过程中,不再是基于单种语言或区域进行功能设计和代码设计,同时,编写的源代码更便于创建程序的不同语言版本。全球化使您能将应用程序移植到不同的文化环境。在早期的编程中,这仅仅意味着支持多种语言(例如,支持Unicode),但是现在进行全球化时,还要考虑选择什么样的界面,例如确定颜色、导航布局以及页结构等。进行全球化时,需要仔细审查应用程序或网页中涉及的一些众所周知的地理和文化问题。全球化的步骤包括:研究语言和文化问题,请语言专家校验一些众所周知的问题,如果可能的话,请特定销售区域的公司代表校验一些众所周知的问题。要支持这些文化差异,可以定义以下物理需求:在数据库中使用nVarChar而不使用VarChar提供自定义界面的能力性能性能一般用“系统总吞吐量”和“响应时间”来衡量。系统总吞吐量系统总吞吐量使用“每秒事务数(TPS)”来衡量,反映了系统在执行服务请求的特定集合(称为事务)方面的能力。对于电子商务应用程序,事务可能由以下依次执行直到结束的事件组成:用户来到站点。用户浏览目录,找到想要的产品。用户将产品添加到购物车。用户注册。用户结帐。TPS是系统每秒可以处理这些事务的最大数量。正如在业务需求中所述的,当使用以下开发配置时,将商务参考体系结构应用程序设计为每小时至少处理4800个这样的事务:[(4)PIII500mhz,1GBRAM,服务器运行IIS和CommerceServer][(1)PIII500mhz,1GBRAM,服务器运行SQLServer]响应时间响应时间是用户请求和系统响应之间间隔的时间量,是用户最关心的性能指标。响应时间通常用一个百分比和响应秒数来表示。例如,“所有请求中的90%应在5秒之内响应”意味着在用户认为应用程序的运行出现问题之前,其所发请求中的90%必须在5秒之内得到服务器的响应。商务参考体系结构应用程序要求在5秒内响应全部请求中的95%。可扩展性可扩展性是指添加资源时站点容量增加的能力。从用户角度来看,这意味着当大量用户同时访问站点时,站点仍能提供可接受的响应时间。我们在以前的章节中已经提过,提高可扩展性有两个方法:“向上扩展”和“向外扩展”。向上扩展“向上扩展”就是通过采用更好和/或更快的CPU、更大的RAM、更快的磁盘等等来增强服务器的处理能力。这种方法非常有效,尤其是在数据层上,该层上的一些大型数据库需要相对较强的处理能力。不过,由于硬件成本随处理能力的加强而按指数增长,因此,服务器越接近顶端,这种方法就愈加不合算。向外扩展“向外扩展”则是指利用群集(也称为“Web领域”)中的多个服务器来分担处理工作量。Web领域在硬件方面的花费更为合算,而且提供了更为灵活、可扩展的解决方案。当站点上的负载增加时,可以很轻松地将服务器添加到Web领域中。要启用向外扩展,您必须避免使用服务器特定的会话内存(例如ASP中的Session对象)保留信息。其原因如下:用户会话将依附于特定服务器(会话相关性),这会破坏动态地将请求分配给服务器的网络负载平衡策略。此外,还会破坏服务器领域的可靠性,因为当原服务器发生故障(并丢失了其内存中的会话状态信息)时,就无法将用户会话转移到其他服务器。内存资源被前端服务器耗费在存放用户会话状态的细节上,从而减少了可用于处理请求和高速缓存内容的内存。如果一个受欢迎的站点能够在短时间内吸引大量的用户,则状态维护方面的内存需求可能非常大。为了部分解决内存需求问题,CommerceServer大量使用了高速缓存。对配置文件架构、折扣和商业活动都将进行高速缓存。可用性可用性是指在任意时候客户机能及时连接和使用资源的能力。理解高可用性的一种方法是将其与“容错”相对比。这些术语描述了测量可用性的两个不同的基准。“容错”被定义为在100%时间内的100%可用性(无论处于何种环境)。容错系统的设计目的是“确保”资源的可用性。高可用性的资源对于客户机来说几乎总是处于运作状态并且是可访问的。因此,它不能出现单点故障。服务器群集和网络负载平衡是使系统资源保持可用的两种方法。部署站点之前,应将以下方法组合使用,防止服务器出现故障:地理位置分散的数据中心。不间断的双重电源。数据备份。群集形式的服务器,多个计算机所起的作用相当于单个服务器的作用。数据复制。网络负载平衡,即由多个相同的服务器分担负载以确保可用性、可扩展性和完全一致的用户体验。可管理性可管理性是指执行站点管理任务的能力。对于电子商务应用程序来说,它包括对产品目录、特价促销、装运费用、税率、用户帐户进行配置,以及为站点使用情况、趋势提供报告机制等等。如果具有全面的管理基础结构,业务经理就能对站点进行配置,以根据市场趋势和竞争对手的活动采取相应的对策。安全性如果能确保最基本的窗体的安全性,也就确保了数据或设备受到保护,防止未经授权的人访问或使用它们。在电子商务应用程序的环境中,应该保护以下信息:敏感的用户信息信用卡号未公开的产品数据应用程序安全性的设计主要包括三个方面的内容:“身份验证”、“授权”和“加密”。身份验证有两种主要的方法可用于分布式解决方案(例如电子商务站点)中的用户身份验证。一般是用“假冒/委托”模型和“受托服务器”模型来描述。这两种模型都假定使用了n层应用程序。在本示例中,用户连接到中间层(具体是指Web领域),Web领域依次访问后端层(具体是指SQLServer数据库)的数据或服务。这两种方法的不同之处在于用来访问后端数据的安全帐户不同。“假冒/委托”模型在“假冒/委托”模型中,用户向中间层应用程序提供安全凭据,然后,中间层应用程序使用用户的安全凭据访问后端数据库。中间层应用程序实质上在“假冒”用户,代表用户检索数据。图4-1说明了“假冒/委托”模型:图4-1:“假冒/委托”模型“受托服务器”模型在“受托服务器”模型中,中间层应用程序对用户进行身份验证,通常是校验用户名和口令的组合。中间层应用程序认为用户的身份正确无误后,它使用“自己的安全帐户”访问后端数据库。除了通过中间层应用程序之外,用户无权访问后端数据。在这种方法中,实际上有两种身份验证操作。首先,Web应用程序对用户进行身份验证,然后数据库服务器对Web应用程序进行身份验证。图4-2说明了“受托服务器”模型:图4-2:“受托服务器”模型授权授权是指对特定用户或服务授予访问资源的权限。用户通过了身份验证后,应能从应用程序请求特定的功能。可以向用户分配权限或“授权”,以便执行某些任务而不能执行其他任务。在安全环境中,将访问级别限制为授权的用户是非常重要的。安全专家经常谈论“最小权限原理”。这是一个经验法则,规定用户应该具有足够的权限来执行所需执行的任务,“但不应该具有更多的权限”。加密加密是确保安全的另一种方法,通过对数据进行编码以防止未经授权的访问。根据加密的位置不同,加密可以在许多级别上进行。通常,加密可以在服务器上、传输时或客户机上进行。服务器加密服务器上的加密是指对在服务器基础结构中存储和传输的数据进行加密的过程。对服务器基础结构中的数据进行加密后,就能确保在出现违反安全性的事件时,访问到的敏感数据由于被加密而毫无使用价值。用户的信用卡数据就是应对数据加密的一个示例。当业务层在数据层中存储用户的信用卡信息时,对该数据进行加密是非常重要的。如果某个黑客侵入了系统,并获得了对保存加密的信用卡信息的表的访问权,那么该信息对于黑客没有任何用处。如果信用卡信息未加密,则加重了应用程序对数据安全所负的责任。传输加密传输加密专门用于处理在服务器和客户机之间传送的数据。例如,用户向服务器提交HTML窗体时,用户输入到窗体中的数据使用超文本传输协议(HypertextTransferProtocol,HTTP)通过连接(例如Internet)进行传输,然后由服务器接收。在传输过程中,数据可能会被偷窃和篡改,这可以通过在传输时对数据加密来解决。在Internet上传输的数据可以通过以下方式加密:在Web服务器上安装安全证书,为站点配置安全套接字层(SecureSocketsLayer,SSL)端口,使用HTTP的加密形式HTTPS作为传输协议。服务器证书可以从(英文)所列的认证机构之一处购买。您可以使用MicrosoftCertificateServices发布独立的证书,这将允许您在单个服务器上测试SSL安全性。请使用WebServerCertificateWizard安装证书,该向导可以通过InternetServicesManager中的站点属性来访问。构建实现SSL的站点时,应该意识到:将用户从未加密会话定向到加密会话的超级链接或重定向操作必须包含https://前缀。这指定了用户的浏览器将使用HTTPS与服务器进行通信。客户机加密客户机加密专门用于处理驻留在客户机上的数据。例如,如果某个文件是公用的,但它被加密了,那么只有具有正确的解密密钥的用户可以使用该文件。对于一般的电子商务应用程序,客户机加密不如传输和服务器加密重要,但是某些情况下可能要求使用这种加密方式。可访问性可访问性是指从多种设备或浏览器访问站点的能力。Internet正在以难以置信的速度向前发展,而访问Internet的设备也变得五花八门。因此,使电子商务应用程序可被多种设备访问并且在这些设备上正常运行是一个非常艰巨的任务。支持多个客户机的关键是将表示形式从内容中分离出来。许多方法可以做到这一点,其中包括编写ASP页中的逻辑来根据客户机生成不同的响应,或将不同设备重定向到替代站点。不过,将表示逻辑从内容中分离出来的最佳方法之一就是使用XML。如果数据可以用XML来表示,那么可以使用XSL样式表为特定类型的客户机呈现数据。通过应用不同的样式表,可以为不同的客户机表示同一内容。图4-3说明了这个概念。图4-3:将表示形式从内容中分离出来确定可供选择的现有技术可供选择的技术是指解决方案中可以使用的技术、产品或服务。利用现有的技术来实现功能在经济上经常是很合算的,这样就不必另外构建这些功能了。例如,构建Web应用
本文标题:第4章物理设计阶段
链接地址:https://www.777doc.com/doc-2195057 .html