在Web服务器和组件设计中采用状态无关的设计,使我们不再把可靠性的要求押在一台特定的服务器上。想想在一个状态有关的设计中,如果客户A被定向到服务器1上而服务器1在处理两个请求之间崩溃了。对于第二个请求,客户A将得到一个错误信息。如果我们采用的是状态无关的均衡装载机制,在这种情况下,我们将服务器1从路由表中清除,并且把客户A重定向到另外一台服务器上。由于我们的系统是状态无关的,所以系统可以应付流量的增加(因为Web;农场;中别的机器必须处理原本由那台崩溃的机器完成的工作,所以单台服务器的流量增加了)。因此状态无关使我们拥有扩展的能力,高可用性以及简单、有效的容错能力。club.mypm.net
还有一种方法可以增强我们修复错误的能力,这就是使用MicrosoftClusterServer。我的建议是使用双节点容错方案来集群化数据库。这将使你能确保产品环境中持续的轻量输出。PgMp.mypm.net
现在我们已经解决了要面临的最关键的设计挑战。希望你对如何规划你的项目、规格的重要性、关键平台考虑、以及它们如何影响你的设计、如何处理与性能相关的问题等等都有了较好的认识。下一步,我将提供给你BausCoffee案例分析,这是本系列第二篇文章的结构基础。bbs.mypm.net
#BausCoffee:样本结构 BausCoffees是一个假想的公司名字,但是这个案例分析来源于一个实际的电子商务平台。这部分的目的是给你提供一个包括本文前面所讨论的那些信息的电子平台的概览。项目管理者联盟
逻辑结构(LogicalArchitecture)为了满足设计要素,我们决定采用一种基于下列逻辑层次的多层系统:
表现层(PresentationLayer):本层向用户提供系统的外在表现,该层分为两个部分:消费者界面和管理界面。消费者将能通过本层的消费者界面浏览目录、管理自己的成员资格、下定单。管理工具为Baus中的两个小组提供了一种以安全和结构化的方式访问系统的能力。这两个小组分别是市场营销和产品小组。市场营销小组拥有一系列图形化的工具来进行交互式销售规则的开发、管理广告活动、显示和创建定制的站点报告,以及其他功能。产品小组也有一系列图形化工具。这些工具使他们能维护目录、管理系统、能够预见带宽以及容量要求、以及其他功能。
商业层(BusinessLayer):商业层是这样一个逻辑层,它使公司能够把商业逻辑和规则从数据或者用户界面中分离出来。通过商业逻辑的分离,Baus能够更好的管理那些必须在系统级别实现的商业上的变化。进一步说,商业层可以用来提供多客户和多目的服务。例如,存在于此层中的商业逻辑不仅可以处理来自电子商务站点的定单,将来还能处理来自电话定货系统的定单。
数据层(DataLayer):数据层是用来捕获和提供系统所需要的数据的逻辑层。数据层与别的层是独立的,也不需要依赖其他层的存在。将来如果用来实现本层的技术有改变,不会使前面那些层有什么大的改动(如果有改动的话)。早些时候我们说过,这些层是从逻辑意义上考虑的。在实际操作的时候,我们可以把不同的层并入到同一个硬件之中。事实上,有一些层被合并在一起以提供更好的响应和可伸缩性。PgMp.mypm.net
物理结构(PhysicalArchitecture)我们设计BausCoffee的结构的目标是开发一个很容易扩展的系统。因此,我们决定采用如下的结构:表现服务器(PresentationServers)表现服务器将逻辑上的表现和商业两层集成到一个物理系统中。服务器运行WindowsNTServer4.0以及InternetInformationServer、SiteServer、MicrosoftTransactionServer/MicrosoftMessageQueueing和轻权目录协议成员目录(LightweightDirectoryAccessProtocol,LDAP)。该表现服务器将通过100-MB以太网同MicrosoftSQLServer6.5数据库相连。为了提供均衡装载,表现服务器还将和MicrosoftWindowsLoadBalancingServer相连。这使得在一个;农场;中可以有多台表现服务器。该;农场;由两个WLBS服务器以及多个表现服务器和两个热点交换服务器组成。系统的扩展可以通过增加表现服务器以及/或者增加网络带宽来实现。每一个表现服务器将包括商业组件(封装了来自商业层的逻辑)、目录、Web页面所需要的图片。数据服务器(DataServers)项目管理论坛
数据服务器将为电子商务站点提供数据并且捕获来自电子商务站点的数据。这些服务器将运行SQLServer6.5。数据服务器将使用MSCS集群。数据服务器不是Web;农场;的一部分。虽然数据服务器也连在同一个网络上,但该机器是一个独立的,大功率的机器。club.mypm.net
内容段服务器(ContentStagingServer) 这种服务器使得内容可以被分成几段并且QA可以在它发布之前进行检查。建议只有市场和那些必须更新、编辑以及创建Web目录的小组可以获得访问该服务器的权限。产品小组可以在任何时候把它拷贝到产品系统中去。这样,QA过程就可以被流程化,也就不会阻碍商业要求了。项目管理者联盟
热点交换服务器(HotSwapServers) 热点交换服务器是一台可以在有机器失败时代替该机器的服务器。我们推荐两种热点交换服务器--dbHotSwap和presHotSwap,dbHotSwap可以接替崩溃或者离线的数据服务器。DbHotSwap既可以是在线数据服务器的一个复制客户,也可以通过使用磁带恢复系统来生成。PresHotSwap是表现服务器的镜象。只要表现服务器发生了更新或者改变,presHotSwap也必须进行同样的改变。项目管理者联盟文章
管理控制台工作站(ManagementConsoleWorkstation) 管理控制台是一个WindowsNT工作站,在控制台上可以对电子商务站点的一部分进行管理以及与其相互作用。例如,可以用ManagementConsoleWorkstation(MCW)来获取表现服务器的性能统计或者使用SQLServer6.5企业管理(EnterpriseManager)来在数据服务器上运行DBCC。搜索服务器(SearchServer)项目管理者联盟文章
查询服务器将管理查询请求。 服务器将为目录和信息建立索引并且自动维护该索引。我们设想使用多个查询服务器来满足预计的站点要求。MembershipServer成员资格服务器成员资格服务器将会维持一个SQL-Server6.5数据库,该数据库充当所有成员信息的中心仓库。服务器将和其他服务器组成一个集群以提供较高的容错能力和冗余。www.mypm.net
系统基于运行在100MB以太网上的专门的WindowsNT域。网络结构的细节将通过计划会议加以明确,将遵循功能要求的管理方法。计划该站点是基于高速和高冗余的物理网络。数据服务器将采用集群技术。我们还要求每一台服务器都采用双网卡设计以提供容错能力,并且要采用RAID5SCSI驱动。我们强烈建议采用简单网络管理协议(SimpleNetworkManagementProtocol,SNMP)以有助于全面的网络管理,同时也有利于得到微软产品对SNMP的本地支持。Baus将承担一项完整的灾难恢复计划的调查和展开。这还包括一个地理上远离你的主要站点的安全场所,使你的站点不会受到自然灾害的影响。项目管理者联盟
可伸缩性和安全性 可伸缩性是通过在网络上增加服务器和增加带宽来实现的。设计的中心思想是使扩展整个系统的消耗最小。我们的方法是开发一个基于CD的定制安装程序,这使得操作小组在需要配置新的服务器时只需要运行CD上的安装程序就可以了。CD将会安装系统需要的全部组件。项目管理者联盟文章
例如,如果要在网络上增加另外一台表现服务器,产品小组可以运行;PS-Setup;CD,该CD将安装IIS、MTS、MSMQ、SiteServer和所有的电子商务组件以及应用程序。同时将从分段服务器上复制目录。以后开发的电子商务平台的版本将产生升级CD,将使升级站点的操作变得简单快捷。所有的事务都将通过安全的HTTP。如果需要的话,该结构在将来还可以支持安全电子转账(SET)。Baus还计划采用X.509认证,这就需要再增加一台认证服务器,商业对商业(business-to-business,B2B)的电子商务操作需要该服务器的支持。项目管理者联盟
主干(Legacy)集成该体系将使用COM组件和一台主干(Legacy)网关服务器来把数据复制到相关的后台服务器上。
商业到商业的支持 为了满足商业到商业的需要,例如电子数据交换(ElectronicData-Interchange,EDI),价值链initiatives(VCI),以及其他的传统的initiatives,系统将支持商业交换管道,这是SiteServer商业版的一个组成部分。如果需要支持EDI,Baus将采用第三方的组件。training.mypm.net
结论项目管理者联盟
我提供的行动方案将给你自己的行动方案提供一个起动。BausCoffee案例分析说明了如何处理一个大型电子商务站点的设计中的核心问题。检查你的资源,你可能会有不同的想法,毕竟每一个电子商务站点的设计计划都有其独特的需要,应该根据你同消费者之间做生意的方式来设计你的站点。休息一下,然后我们将转入系列的下一部分,这部分将集中讨论开发,优化和调整等问题。 training.mypm.net项目管理者联盟
|