《宠物商店需求设计说明书(共29页).docx》由会员分享,可在线阅读,更多相关《宠物商店需求设计说明书(共29页).docx(29页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上文档编号密级文档版本Total 29 pages 共 29 页V1.0宠物商店软件需求设计说明书Prepared by拟制人Prepared Date拟制日期Reviewed by评审人Reviewed Date评审日期Approved by批准人Approved Date批准日期Revision Record 修订记录Date日期Version版本Change Description修改描述Author作者Table of Contents 目录专心-专注-专业1. 简介1.1. 介绍该项目是宠物公司的网站系统,用于实现宠物买卖的相关功能。主要实现以下功能:前台:注
2、册/登陆/修改个人信息、查询宠物、购物车管理、查询宠物分类、提交订单、填写收货人并支付金额后台:增加/删除/修改宠物信息、管理用户及其相应订单信息、查询订单1.2. 目的本文的目标是给出宠物商店的需求设计规格描述,预期的读者是宠物商店项目的相关利益人。1.3. 术语和缩略语缩略语清单:Abbreviations缩略语Full spelling 英文全名Chinese explanation 中文解释1.4. 范围1.4.1. 软件名称:宠物商店系统商标:无版本:V1.01.4.2. 软件功能1.4.2.1. 集成系统模块功能行业门户用户注册,登陆管理员注册,登陆宠物信息分类浏览宠物查询宠物添加
3、(即购买订单)修改订单查询订单处理订单 结算留言每日最新讯息查询每日最新讯息浏览用户帮助客户管理查询客户个人信息审核客户注册信息用户信息备份宠物管理添加、修改、删除宠物类别信息添加、修改、删除宠物信息添加、修改、删除宠物图片信息新闻管理添加、删除、修改新闻类别消息添加、删除、修改新闻消息每日最新消息推送权限管理操作权限项定义业务操作权限项导入数据权限项定义角色定义角色操作默认角色身份认证操作权限鉴权实体角色映射销售管理处理用户的订单查询订单查看销售情况留言管理对宠物的留言进行回复查看网站留言数据中心共享数据管理定义共享数据源配置共享数据集修改和删除共享数据集内容查询1.4.3. 软件应用NA2
4、. 第0层设计描述2.1. 软件系统上下文定义图1 系统结构图宠物商店项目XXXXX。1、 Web 门户:a) XXXXXXXX。3. 第一层设计描述3.1. 系统结构3.1.1. 系统架构图图2 系统架构图3.1.2. 业务结构图图3 业务结构图3.2. 业务流程说明3.2.1. 用户自由注册及审核流程1. 用户(通常是户主)到社区物业处备案,物业管理人员在物业管理系统中开户。2. 物业管理系统将业主信息同步到运营支撑系统中。3. 物业人员在运营支撑系统中为用户(通常是户主)订购业务,运营支撑系统自动为该家庭生成家庭账户,并将该用户绑定家庭账户,同时将订购的业务与家庭账户关联。此时,户主即可
5、享受订购的业务服务。4. 家庭其他成员或租住户可通过智能终端自由注册用户信息。该用户信息通过家庭门牌号自动关联户主,此时该用户信息需要户主审核。5. 户主通过智能终端查看同一家庭的其他用户信息,并审核,审核通过后,将通知运营支撑系统更新该用户状态为“户主审核通过”。6. 物业人员可通过运营支撑系统审核用户信息。正常流程为,用户信息通过户主审核后,才能被物业人员审核。但特殊情况下,物业人员可不经过户主审核即直接审核用户信息。物业审核通过后,该用户状态更新为“物业审核通过”。7. 物业审核通过的用户将自动关联家庭账户,此时,该用户将可以享受家庭账户所关联的业务服务。3.3. 子系统业务分解描述3.
6、3.1. 集成系统3.3.1.1. 权限管理1. 操作权限:与操作相关的权限,如菜单、按钮权限,操作权限包括平台操作权限和业务操作权限。2. 角色:一组权限项的集合,包括操作权限集和数据权限集;平台同时维护集成平台和物业管理系统的角色映射关系。3. 用户:能登录行业门户,一个用户可以具备一个或多个角色。4. 组织机构:和用户相关,描述用户的组织架构。图4 角色新增示例图图5 人员信息示例图图6 帐号信息示例图3.3.1.2. 业务管理图7 子系统集成展示门户业务注册由业务提供方(可以是第三方或者运营方)启动,提供以下功能:提供业务注册功能,注册时需要附带业务代码、业务名称、业务服务地址、业务描
7、述等信息。1. 业务部署:业务注册后进行业务部署,由客户启动,业务部署需要提供以下业务包:1)业务安装包2)业务终端插件3)业务权限项2. 业务管理:提供业务基本信息的维护、业务流程管理等功能。3. 业务版本管理:提供业务版本、业务插件版本、业务流程版本的管理功能。图8 子系统接入示例图4. 第二层设计描述4.1. 子系统详细描述4.1.1. 集成系统4.1.1.1. 简介系统定位为智慧社区业务集成的管理平台:(1)提供社区信息化业务共用基础数据管理功能,提供系统日志等公共服务,为用户提供日程、通讯录等功能,提供健全的、可扩展的权限管理能力。(2)在Portal、执行、配置三个层次提供开放性的
8、业务集成框架。(3)为业务提供信息共享、信息存取等能力。4.1.1.2. 功能列表模块子模块功能功能描述行业门户门户菜单配置门户菜单配置l 展现门户框架所有菜单信息,包括菜单名称、菜单URL、菜单位置。l 支持对菜单名称、菜单URL地址进行维护。l 支持新增非叶子节点菜单(无URL地址),可以将已有菜单放置到该菜单下。l 支持菜单位置调整功能,系统显示菜单的位置(层次),可以通过上移、下移的方式调整菜单的位置。l 支持对非叶子节点菜单(无URL地址)的删除功能。门户框架门户框架分类功能l 门户框架分为四个区,分别为标题栏、菜单栏、工作区和消息区。l 标题栏主要放置行业门户框架的标题信息。l 菜
9、单栏主要是各类菜单信息,包括平台菜单和业务菜单,分别集成自平台各子系统和业务系统。l 工作区即用户的工作任务区。l 消息区主要实时显示系统向用户发送的消息,包括:站内消息和日程提醒。动态菜单加载用户角色获取l 行业门户根据SSOID到SSO模块获取SSO信息,得到用户角色代码。动态菜单加载根据角色代码,从数据库中查询该角色对应的菜单列表,根据菜单结构组织菜单树。本地化资源文件选择从SSO信息中获取用户的本地化信息,并选择相应的资源文件,本地化资源主要包括:标签、日期格式、数字格式、货币、图片、CSS、提示文字等。SSO登录功能l 提供登录界面,用户输入信息包括登录名、密码、验证码,其中登录名可
10、以是用户账号、手机号码和邮箱号码,登录名输入框中给予用户提示信息。l 调用权限子系统接口对用户输入信息进行身份认证。l 登录成功则将页面转到行业门户。l 提供登录失败统一页面,包括: 登录名、密码或验证码错误时(包括密码连续出错),直接在登录界面提示错误原因。 用户密码即将过期,弹出页面提示用户并且提供修改密码页面,修改密码时需要用户输入原密码。 用户密码已经过期,弹出页面提示用户并且提供修改密码页面,修改密码时需要用户输入原密码。生成SSO信息l 用户登录成功后,平台生成用户的SSO信息,通过唯一的SSOID标识,SSO包含的属性: 用户基本信息 用户所属组织机构 用户角色 业务列表,用户能
11、访问的业务列表 SSOID创建时间 SSOID失效时间l 用户SSO信息保存在内存中。接口单点登录l 用户点击业务系统菜单后,业务系统需要通过接口到SSO模块进行鉴权。l SSO模块根据业务系统传入的SSOID判断该SSOID是否存在,同时根据SSOID中的信息判断该用户是否具备访问该业务的权限,成功则允许用户访问。l 具体可参考单点登录流程图。SSO生命周期维护l 提供SSO生命周期管理机制,后台定时扫描所有SSOID,判断SSOID失效时间是否已经超过当前时间,如果超出则销毁。l 门户各子系统和业务系统定时向SSO模块发送心跳,SSO模块接收到心跳指令后自动刷新SSOID的失效时间,即在原
12、有失效时间基础上累加一个失效周期。SSO失效周期可配置,默认为15分钟。门户消息门户消息展现方式门户消息展现方式包括消息区和滚动条两种方式:l 消息区展现: 消息区放置在门户首页醒目位置,展现用户待处理任务、站内消息、日程提醒,三类消息按类型区分。 待处理任务和日程提醒仅显示未读消息内容,用户点击后消失。 站内消息将已读和未读消息通过不同颜色区分。 消息列表默认按时间倒序方式排序。l 滚动条展现: 滚动条展现站内消息、日程提醒消息,仅显示未读消息,用户点击后则消失。 按时间倒序方式由右向左滚动。消息来源l 提供标准的接口给各子系统获取消息。说明:站内消息和日程提醒来自公共服务子系统。l 存储消
13、息内容。l 消息管理以先进先出为原则向外推送消息。消息内容加载l 用户登录成功后,需要到库中查询用户消息列表,加载到消息区和滚动条中。l 获取到各子系统发送的消息内容后,实时加载到消息区和滚动条中。公司管理公司信息维护公司定义提供树形结构公司定义的增/删/改/查、以及导入/导出。公司树形结构层次由用户自行定义,至少支持4层。说明:l 不允许删除非末级公司。l 公司下面如果绑定小区,就不可以删除公司。l 只有公司末节点可以绑定小区。l 公司被某部门、人员引用时不允许删除。接口公司数据接口l 提供功能接口。l 提供以下公司数据访问接口(带权限控制)。 查询全部公司定义数据。 查询指定ID的公司详细
14、信息。 查询顶层公司定义列表。 查询指定公司的下一级公司列表。 查询指定公司的所有下级公司列表。 查询指定公司的上级公司信息。说明:要求返回的公司列表中至少包含以下关键数据ID、名称、层级、是否末级。公司选择界面接口公司选择页面提供一个窗口,供用户选择公司(带权限控制)。入参:用户帐号、公司ID(浏览该ID的下级公司)。出参:选择公司的帐号 、 名称。部门管理部门维护部门定义提供树形结构部门定义的增/删/改/查、以及导入/导出。部门树形结构层次由用户自行定义,至少支持6层。支持按部门名称、公司、负责人姓名、联系电话等条件的组合查询。支持树形和列表两种部门查询浏览视图。关键数据元素:ID、编码、
15、名称、描述、负责人、联系电话、公司、地址。说明:不允许删除非末级部门。部门被某人员引用时不允许删除。可见和可操作的部门范围为操作员所属的部门归属的下级部门。部门数据接口部门数据接口l 提供功能接口l 提供以下部门数据访问接口(带权限控制) 查询全部部门定义数据。 查询指定公司ID下的所有部门列表。 查询指定ID的部门详细信息。 查询顶层部门定义列表。 查询指定部门的下一级部门列表。 查询指定部门的所有下级部门列表。 查询指定部门的上级部门信息。说明:要求返回的公司列表中至少包含以下关键数据ID、名称、层级、是否末级。部门选择界面接口部门选择页面提供一个窗口,供用户选择部门(带权限控制)。入参:
16、用户帐号、查询类型(上级部门查询/公司查询)、公司ID(浏览该公司的部门)/ 部门ID(浏览该ID的下级部门)。出参:选择部门的帐号、名称。人员管理人员管理人员信息增加总体描述:人员管理分为人员信息管理和帐号信息管理,帐号信息和人员信息分表存储,一个帐号可对应多个人员,帐号和人员信息通过“ID”关联。人员信息包括ID(系统自动分配)、部门*、姓名*、工号、性别*、手机*、固话、Email、职务、照片、帐号、帐号状态等字段。帐号信息包括、帐号*、密码*(密文)、手机号码*、姓名*、允许PC登录*、允许手机登录*、帐号状态*等7个字段。总体约束条件:1. 可见和可操作的部门范围为操作员所属的部门归
17、属的下级部门和人员。(下同)2. 以部门树为基础,在指定部门下提供增加人员信息的功能,用户输入姓名*、工号、性别*、手机*、固话、Email、职务、照片等信息,帐号、帐号状态等字段为空。说明:1、 人员以系统自动分配的ID为唯一标识。2、 同一个部门中的人员,工号不允许重复。3、 提供照片的预览功能。批量人员信息导入提供人员信息的文件(txt、csv)导入功能,支持动态导入导出的字段范围和顺序,支持为系统定义的非空字段指定默认值。人员查询/浏览入口:1. 支持按部门树方式进行人员信息的浏览。2. 支持按部门*、姓名*、工号、性别*、手机*、手机串号、固话、Email、职务、登录帐号等条件的组合
18、查询。输出:1. 在上述两种浏览/查询的结果列表中包括人员的所有信息字段,并提供对每个人员的“人员信息删除”“人员信息修改”“分配帐号”“帐号状态管理”“密码重置”的功能入口。2. 输出结果支持分页显示,提供翻页功能。3. 提供浏览/查询的全量结果导出到文件(txt、csv)功能。说明:1、 在查询结果列表中提供照片预览。2、 浏览/查询的结果列表中“帐号状态管理”“登录方式调整”“密码重置”等三个功能入口,只针对帐号非空的人员有效。帐号分配1. 在人员列表中勾选可以登录系统的人员,并自动分配帐号,帐号默认为手机号码,用户可以手动修改,并设置帐号的密码,帐号初始状态为“正常”。2. 在帐号信息
19、保存的同时,根据号码匹配,更新人员信息中号码相同的人员信息(可能有多个)的“登录帐号”字段。3. 记录帐号变更日志。注意:帐号支持“正常”、“锁定”、“暂停”三种状态。密码强度要求密码包括两种强度,普通密码和强密码。人员信息修改用户输入修改后的姓名*、工号、性别*、手机*、固话、Email、职务、照片等信息,保存更新信息。注意:当用户修改“手机”字段时,以下操作须同用户信息更新在一个事务中完成:1、 在该人员信息中帐号不为空时(即已分配帐号),判断其帐号是否为其原手机号,如是则提示“系统将同步修改其对应的帐号为新输入的手机号、密码不变”,在管理员确认后,同步更新帐号信息中的帐号、手机字段。2、
20、 如原手机号在用户信息表中存在多条记录,则同步更新。3、 记录帐号变更日志。人员信息删除删除指定ID的人员信息记录。注意:当该人员的ID在人员信息表中只存在唯一的一条,且已经分配了帐号时,需提示“删除人员将同时注销该人员的登录帐号”,操作员确认后,同步删除该手机号码对应的帐号记录,并记录帐号变更日志。帐号状态管理1. 提供帐号的暂停(针对正常态)和恢复(针对暂停态)功能。2. 提供帐号的锁定(针对正常态)和解锁(针对锁定态)功能。3. 提供帐号注销功能,删除帐号记录,同步更新用户信息中和该帐号手机号匹配的记录,将帐号、帐号状态等字段置为null,记录帐号变更日志。帐号密码重置系统自动生成随机密
21、码,并将相应的密文更新到帐户信息表。帐号角色分配从权限管理CI读取系统角色列表,供用户勾选(可多选),保存帐号和角色的对应关系数据。权限管理操作权限操作权限项定义l 操作权限项即最小的功能原子,比如“添加员工”、“修改员工”等,包括平台操作权限项和业务操作权限项。l 操作权限项包括页面权限项和按钮权限项,页面权限项对应到具体的菜单(用户具备菜单访问权限则默认具备该菜单对应的页面权限)。l 说明:页面权限项由行业门户子系统在用户登录时动态加载,按钮权限项由该功能所属的子系统在后台判断。l 操作权限项的基本属性包括:权限项代码、权限项名称、业务代码(如果是平台操作权限项则为空)。l 在界面以树形方
22、式展现。l 所有操作权限项都是通过脚本直接导入,界面不能进行增、删、改操作。业务操作权限项导入l 提供业务系统权限项的导入模板,导入模板中包括的内容:业务代码、菜单编号、父菜单编号、菜单名称、菜单URL、权限项代码、权限项名称属性。业务操作权限项导入模板如下:l 平台解析文件,将文件中的信息插入到菜单和操作权限项表中,为保证菜单编号和权限项代码的唯一性,在权限项代码前增加前缀“业务代码_”。数据权限数据权限项定义l 数据权限项即限定用户能访问的数据类型和数据范围,数据权限项由角色和区域代码组合控制。角色角色定义l 角色是一组操作权限和数据权限的集合,角色具备的基本属性:角色代码、角色名称、描述
23、、角色操作权限。l 操作权限限制用户的操作功能。l 数据权限限制用户能访问的数据范围。角色操作l 界面提供对角色的增删改查、角色权限设置功能。l 修改角色代码时,如果该角色已被用户引用,则无法修改并给予提示。l 删除角色时,如果该角色已被用户引用,则无法删除并给予提示。默认角色l 系统提供默认的超级管理员角色,具备所有权限。l 系统提供一级区域管理员角色,每一个区域对应一个角色,能够进行操作权限的分配。身份认证身份认证l 提供用户身份认证接口,根据用户输入的手机号码/邮箱地址/用户账号、密码,对用户身份进行认证。说明:根据手机号码、邮箱地址、用户账号查询到用户ID,通过用户ID和密码进行身份认
24、证。l 对用户登录次数、密码有效期、是否锁定等进行限制,限制内容包括但不限于以下: 连续登录失败5次(次数可配)则锁定该用户的账号禁止再次登录(锁定功能通过调用用户账号管理CI项提供的接口实现),提示2个小时(可配)后可以继续登录。 密码设置有效期(时间可配),密码有效期达到前1周(可配)提示用户密码即将过期,过期后的密码用户无法登录且提示用户修改密码;密码达到有效期后无法登录,并提示用户修改密码。 密码强度包括普通强度密码和加强密码(可配),加强密码必须要求数字、大小写和特殊字符的组合。统一鉴权操作权限鉴权l 提供接口,根据角色ID、操作权限ID,对角色是否具备该操作权限进行鉴权。实体角色映
25、射l 界面提供工作流角色和实体角色映射功能,在工作流角色导入后,界面列出导入后的工作流角色列表,选择一个具体角色后,可以设置对应到平台的具体某一个实体角色,不同的工作流角色可以映射平台同一个实体角色。l 界面提供角色映射关系的修改功能。l 平台进行实体角色代码修改和删除时,判断该角色是否存在和工作流角色之间的映射关系,如果存在,则禁止修改和删除。业务管理业务注册业务注册l 提供平台业务注册功能,业务注册信息包括:业务代码、业务名称、业务服务代码、业务服务地址、业务优先级、业务描述。其中业务服务地址主要用于用户访问业务菜单时的页面重定向。l 业务代码系统内唯一。业务部署业务部署业务部署包括以下内
26、容:l 业务安装包部署,包括数据库执行脚本(独立部署,与系统无关)。l 业务流程包部署。l 业务权限项部署。l 业务终端插件部署。业务流程包部署l 界面提供业务流程包加载功能,通过业务流程引擎提供的流程包加载接口实现业务流程包的部署,业务流程包包括: 业务流程项。 流程表单项。l 支持对业务流程包的导出功能。业务权限项部署操作权限项:l 提供操作权限项导入模板下载。l 提供操作权限项导入功能,通过调用权限模块接口实现。数据权限项:l 提供数据权限项导入模板下载。l 提供数据权限项导入功能,通过调用权限模块接口实现。业务终端插件部署l 提供终端插件加载功能,通过调用业务版本管理模块的接口实现,在
27、终端插件加载时,记录该终端插件的版本信息。l 同一业务支持多个版本的终端插件加载与管理。l 提供终端插件下载功能。l 提供终端插件卸载功能。业务版本管理业务版本管理对业务安装包版本维护,包括增删改查功能,其基本属性如下:l 业务代码。l 版本号,业务内唯一。l 版本描述,支持附件的上传下载。l 版本创建人、创建时间。l 最后修改人、修改时间。l 是否在用。业务终端插件版本管理对业务终端插件版本维护,包括增删改查功能,其基本属性如下:l 业务代码。l 业务终端插件版本号,业务内唯一。l 版本描述,支持附件的上传下载。l 版本创建人、创建时间。l 最后修改人、修改时间。l 是否在用。l 包含底座版
28、本升级管理。业务管理业务查询l 提供业务列表查询功能,查询条件包括:业务代码、业务名称,业务上线时间段,点击详情能够查询业务详情信息。业务管理l 业务基本信息维护。l 业务下线时需要关联删除该业务对应的权限项、菜单项、流程项等。l 业务删除采用逻辑删除,非物理删除。日志管理日志管理用户日志查询组合查询条件:时间范围、帐号、姓名。查询用户在系统内的操作,包括登录/登录方式、注销、点击菜单、功能项操作。日期清除清除指定时间范围内的所有操作日志。数据中心共享数据管理共享数据管理定义l 共享数据管理是指平台、业务或能力系统将需要共享的数据开放数据库视图,由平台在权限控制后通过SQL脚本查询数据并以标准
29、的Webservice接口提供给其它业务系统访问。l 共享数据源是指提供共享数据的业务或能力系统数据源,其基本属性包括数据库IP地址/端口、数据库类型、数据库实例名、用户名、密码、业务代码/能力代码。l 共享数据集是指一个共享数据对象,其基本属性包括共享数据集代码、共享数据集名称、描述、访问权限、属性(可以多个)、访问的SQL脚本。l 共享数据集属性是指共享数据集中的一个具体字段,其属性包括I属性代码、属性名称、描述。说明:共享数据集代码和共享数据集属性代码主要用于接口访问时的唯一标识,系统内唯一。共享数据集举例:l 共享数据集代码:userl 共享数据集名称:用户l 共享数据集属性:属性代码
30、:name;属性名称:姓名属性代码:sex;属性名称:性别属性代码:email;属性名称:邮箱共享数据源配置l 界面提供共享数据源配置,包括数据库IP地址/端口、数据库实例名、用户名、密码的配置。l 支持的共享数据源包括Oracle、SQL Server、DB2数据库。l 支持多种数据源,即不同的共享数据源可以由不同的业务/能力系统提供。l 提供数据源连通测试功能。共享数据集修改和删除l 提供对共享数据集的修改,包括共享数据集名称、属性名称、描述、SQL脚本、访问权限。l 删除方式为逻辑删除。共享数据集内容查询l 以同一个WebService接口封装共享数据源访问接口,提供给第三方业务系统访问
31、。l 业务系统对共享数据集仅具备访问权限。5. 部署方案5.1. 标准部署方案采用双机热备份的方式对应用服务器、数据库服务器以及文件服务器进行部署。通过双机部署保障系统高可用性,消除单点故障。对文件服务器及存储进行定期增量备份,保证数据可靠性。5.2. 网络环境应用服务器与客户端之间,每个客户端与应用服务器之间通讯的带宽占用约128kbit/s;总部出口带宽=外网最大并发数/3128Kb/s。5.2.1. 局域网在大数据量情况下,建议数据库服务器、应用服务器之间采用千兆连接,需要配置千兆交换机和服务器千兆网卡。5.2.2. 带宽要求类型带宽要求线路质量要求局域网客户端到服务器:10M以上服务器
32、之间:100M以上丢包率小于0.1%并且延迟小于10ms。广域网客户端到服务器:128Kbps以上服务器之间:100M以上丢包率小于2%并且延迟小于50ms。6. 软硬环境6.1. 设计性能指标设计最大用户数1000万设计最大并发用户数200万设计最大用户数:系统设计最大数1000万。社区影院6.2. 系统高并发演进大型网站,比如门户网站。在面对大量用户访问、高并发请求方面,基本的解决方案集中在这样几个环节:使用高性能的服务器、高性能的数据库、高效率的编程语言、还有高性能的Web容器。但是除了这几个方面,还没法根本解决大型网站面临的高负载和高并发问题。上面提供的几个解决思路在一定程度上也意味着
33、硬件的投入,并且这样的解决思路在超过1000万用户的时候是有瓶颈的,还需要在软件发面进行改造。1、 HTML静态化效率最高、消耗最小的就是纯静态化的html页面,所以我们尽可能使我们的网站上的页面采用静态页面来实现,这个最简单的方法其实也是最有效的方法。但是对于大量内容并且频繁更新的网站,我们无法全部手手动去挨个实现,于是出现了我们常见的信息发布系统CMS,像我们常访问的各个门户站点的新闻频道,甚至他们的其他频道,都是通过信息发布系统来管理和实现的,信息发布系统可以实现最简单的信息录入自动生成静态页面,还能具备频道管理、权限管理、自动抓取等功能,对于一个大型网站来说,拥有一套高效、可管理的CM
34、S是必不可少的。除了门户和信息发布类型的网站,对于交互性要求很高的社区类型网站来说,尽可能的静态化也是提高性能的必要手段,将社区内的帖子、文章进行实时的静态化,有更新的时候再重新静态化也是大量使用的策略,网易社区等也是如此。同时,html静态化也是某些缓存策略使用的手段,对于系统中频繁使用数据库查询但是内容更新很小的应用,可以考虑使用html静态化来实现,比如论坛中论坛的公用设置信息,这些信息目前的主流论坛都可以进行后台管理并且存储再数据库中,这些信息其实大量被前台程序调用,但是更新频率很小,可以考虑将这部分内容进行后台更新的时候进行静态化,这样避免了大量的数据库访问请求。如果手机终端访问,可
35、以将返回的XML消息静态化,和HTML页面静态化是相同的道理。2、 图片服务器分离。对于Web 服务器来说,不管是Apache、IIS还是其他容器,图片是最消耗资源的,于是我们有必要将图片与页面进行分离,这是基本上大型站都会采用的策略,他们都有独立的图片服务器,甚至很多台图片服务器。这样的架构可以降低提供页面访问请求的服务器系统压力,并且可以保证系统不会因为图片问题而崩溃,在应用服务器和图片服务器上,可以进行不同的配置优化,比如apache在配置ContentType的时候可以尽量少支持,尽可能少的LoadModule,保证更高的系统消耗和执行效率。3、 数据库集群和库表散列。大型网站都有复杂
36、的应用,这些应用必须使用数据库,那么在面对大量访问的时候,数据库的瓶颈很快就能显现出来,这时一台数据库将很快无法满足应用,于是我们需要使用数据库集群或者库表散列。在数据库集群方面,很多数据库都有自己的解决方案,OracleSybase等都有很好的方案。 上面提到的数据库集群由于在架构、成本、扩张性方面都会受到所采用DB类型的限制,于是我们需要从应用程序的角度来考虑改善系统架构,库表散列是常用并且最有效的解决方案。我们在应用程序中安装业务和应用或者功能模块将数据库进行分离,不同的模块对应不同的数据库或者表,再按照一定的策略对某个页面或者功能进行更小的数据库散列,比如用户表,按照用户ID进行表散列
37、,这样就能够低成本的提升系统的性能并且有很好的扩展性。sohu的论坛就是采用了这样的架构,将论坛的用户、设置、帖子等信息进行数据库分离,然后对帖子、用户按照板块和ID进行散列数据库和表,最终可以在配置文件中进行简单的配置便能让系统随时增加一台低成本的数据库进来补充系统性能。4、 缓存缓存,很多地方用到缓存。网站架构和网站开发中的缓存也是非常重要。以下最基本的两种缓存。架构方面的缓存,对Apache比较熟悉的人都能知道Apache提供了自己的缓存模块,也可以使用外加的Squid模块进行缓存,这两种方式均可以有效的提高Apache的访问响应能力。网站程序开发方面的缓存,Linux上提供的Memor
38、y Cache是常用的缓存接口,可以在web开发中使用,比如用Java开发的时候就可以调用MemoryCache对一些数据进行缓存和通讯共享,一些大 型社区使用了这样的架构。另外,在使用web语言开发的时候,各种语言基本都有自己的缓存模块和方法,PHP有Pear的Cache模块,Java就更多。5、 镜像镜像是大型网站常采用的提高性能和数据安全性的方式,镜像的技术可 以解决不同网络接入商和地域带来的用户访问速度差异,比如ChinaNet和EduNet之间的差异就促使了很多网站在教育网内搭建镜像站点,数据进行定 时更新或者实时更新。在镜像的细节技术方面,有很多专业的现成的解决架构和产品可选。也有
39、廉价的通过软件实现的思路,比如Linux上的 rsync等工具。6、 负载均衡负载均衡将是大型网站解决高负荷访问和大量并发请求采用的终极解决办法。负载均衡技术发展了多年,有很多专业的服务提供商和产品可以选择。7、 硬件四层交换第四层交换使用第三层和第四层信息包的报头信息,根据应用区间识别业务流,将整个区间段的业务流分配到合适的应用服务器进行处理。第四层交换功能就象 是虚IP,指向物理服务器。它传输的业务服从的协议多种多样,有HTTP、FTP、NFS、Telnet或其他协议。这些业务在物理服务器基础上,需要复 杂的载量平衡算法。在IP世界,业务类型由终端TCP或UDP端口地址来决定,在第四层交换中的应用区间则由源端和终端IP地址、TCP和UDP端口共同 决定。8、 软件四层交换如果硬件四层交换机的原理后,基于OSI模型来实现的软件四层交换也就应运而生,这样的解决方案实现的原理一致,不过性能稍差。软件四层交换我们可以使用Linux上常用的LVS来解决,LVS就是Linux Virtual Server,他提供了基于心跳线heartbeat的实时灾难应对解决方案,提高系统的鲁棒性,同时可供了灵活的虚拟VIP配置和管理功能,可以同时满 足多种应用需求,这对于分布式的系统来说必不可少。