系统架构设计说明书(完整版).docx
软件研发部文档编号版本Al密级商密A项目名称Xx系统项目来源XX系统架构设计说明书(内部资料请勿外传)编检审批写:日期:查:日期:核:日期:准:日期:XXXX科技有限公司版权所有不得复制文档变更记录序号变更(+/-)说明作者版本号日期批准121、引言51.1 背景51.2 术语和缩略语513参考资料52、总体设计52.1 需求规定52.2 架构设计目标和约束52.2.1 运行环境52.2.2 开发环境62.3 设计思想62.4 架构体系62.5 重要业务流程72.5.1 流程 172.5.2 流程 272.5.3 流程 372.6 模块划分72.6.1 模块一72.6.2 模块二83、接口设计83.1 系统外部接口93.1.1 数据库接口93.1.2 第三方接口103.1.3 通信接口103.2 系统内部接口103.2.1 系统数据流错误!未定义书签。3.2.2 系统状态机错误!未定义书签。3.2.3 系统部署图错误!未定义书签。4、运行设计114.1 进程/任务的设计114.1.1 前台RCP客户端H4.1.2 后台系统114.2 数据存储U4.2.1 数据库模型114.2.2 文件114.2.3 系统参数114.2.4 其它数据124.3 出错处理125、特性设计124.4 性能121.1.1 规模分析与实现121.1.2 性能分析与实现121.1.3 内存占用121.1.4 响应速度要求125.2 可靠性125.3 安全性125.4 可维护性126、部署136.1 部署模式136.1.1 部署方式一136.1.2 部署方式二136.2 许可协议137、附录131、引言描述本文的参考依据、资料以及大概内容。1.1 背景项目产生或者开发背景,必要性等。1.2 术语和缩略语缩略语、系统主用名词、术语等解释1.3 参考资料编写本文和阅读本文是需要查阅的资料有关文档.注明出处、作者和版本。(架构设计重点在于将系统分层并产生层次内的模块、阐明模块之间的关系)2、范围2.1 软件名称英文名称:ToPEng-CSP中文名称:客户服务平台2.2 软件功能请参考XXX子系统软件需求规格说明书.doc2.3 软件应用请参考系统软件需求规格说明书.doc2.4 需求边界明确范围边界,做什么,不做什么。3、总体设计3.1架构设计目标和约束架构设计总体目标和一些有关架构方面的约束,比如技术约束或者设计上约束。3. 1. 1运行环境序号项目详细信息后台软件环境Linux, JRE 1.6 以上 Tomcat5.5 容器,mysq4.0/以上前台软件环境Windows XPJ Windows 2000f WindOWS vista数据库3.L 2开发环境序号项目详细信息1操作系统开发编译系统:JDKIS操作系统: windows系列2编程语言JAVAs JavaJavascript. HTML、CSS3编程工具Eclipse 3.44网络平台IOOM Ethernet3.2 设计思想阐明进行架构设计的思想,可参考一些架构设计的模式,需结合当前系统的实际情况而 定。3.3 架构体系根据架构分析和设计思想产生系统的架构图,并对架构图进行描述,说明分层的原因、 层次的职责,并根据架构图绘制系统的物理部署图,描述系统的部署体系。34重要业务流程(有多少个就写多少个流程图)流程图类型不做严格要求 只要图和描述表达设计思想即可;重要业务流程数据流向等。3. 4. 1流程13. 4. 2流程23. 4. 3流程33.5模块划分根据架构图进行模块的划分并阐明模块划分的理由,绘制模块物理图以及模块依赖图。 有多少模块就写多少个模块3. 5.1模块一3. 5.1.1模块一描述根据模块物理图描述各模块的职责,并声明其对其他模块的接口要求。这是本系统中的上层应用,包括提供各种功能的插件以及用户界面,主要为用户提 供输入条件和输出结果,也就是查询条件的输入和数据展示,也包括基本数据的录入和 管理功能,由如下的插件应用构成,子模块描述实时监控插件负责提供实时监控功能3. 5.1. 2模块一业务流程说明图 +文字描述。样例;系统用户去ActionServiceDomain1:选择操作类型XI.2:显示操作页面I3业务请求 I4:调用业务逻辑.5:业多逻辑处理W6:数据访问二Q 7:返回结果集8:结产集处理 U 9:返回处理结果10:返回结果页面""" MHM3. 5.L 3模块一接口设计对模块接口进行设计,并提供一定的伪代码Q3. 5. 2模块二4. 5. 2.1模块二描述根据模块物理图描述各模块的职责,并声明其对其他模块的接口要求。这是本系统中的上层应用,包括提供各种功能的插件以及用户界面,主要为用户提 供输入条件和输出结果,也就是查询条件的输入和数据展示,也包括基本数据的录入和 管理功能,由如下的插件应用构成,子模块描述实时监控插件负责提供实时监控功能5. 5. 2. 2模块二业务流程说明图 +文字描述。样例;3.52.3模块二接口设计对模块接口进行设计,并提供一定的伪代码4、接口设计对场景以及问题域进行分析,构成系统的架构级设计,阐明对于系统的分层思想。4.1系统外部接口4. Ll数据库接口本系统未使用数据库连接池技术,但软件中存在APaCheDbCP数据库连接池JAR包 后台服务采用JDBC连接MYSQL数据库,由于本系统存在多个数据库,每活动线程最多拥有一个数据库连接,外部请求在使用完成后不需要显式关闭。6. L 2第三方接口7. 1.3通信接口4.2系统内部接口 应用子系统这是本系统中的上层应用,包括提供各种功能的插件以及用户界面,主要为用户提 供输入条件和输出结果,也就是查询条件的输入和数据展示,也包括基本数据的录入和 管理功能,由如下的插件应用构成,模块描述实时监控插件负责提供实时监控功能虚拟身份插件负责提供真实/虚拟身份的查询,轨迹查询的功能案件管理插件负责提供对案件的管理和报警等功能线索分析插件负责提供同时上下机查询,碰撞分析和CCIC库管理等功能情报分析插件负责提供对内容的查询和QQ好友分析等功能实名登记插件负责提供对实名登记查询和违规卡的管理功能场所管理插件负责提供对上网场所的管理和运行状态综合统计信息等功能系统管理插件负责完成整个系统的管理,包括用户密码,和基本数据的管理功能 后台子系统相对与应用插件,后台数据子系统的主要功能是接受来自插件应用的请求并为请 求提供实际操作功能。模块描述实时监控后台负责提供实时监控虚拟身份后台负责提供真实/虚拟身份的查询,轨迹查询的功能案件管理后台负责提供对案件的管理和报警等功能线索分析后台负责提供同时上下机查询,碰撞分析和CCTe库管理等功能实名登记后台负责提供对实名登记查询和违规卡的管理功能场所管理后台负责提供对上网场所的管理和运行状态综合统计信息等功能系统管理后台负责完成整个系统的管理,包括用户密码,和基本数据的管理功能文本分析子系统负责对协议文本文件的索引,包括/M聊天记录文件,POST内容记录文件等的索引和查询功能模块描述文本索引模块负责提供对文本文件的索引,采用LUCENCE技术索引查询模块负责提供对内容的查询和QQ好友分析等功能 配置中心子系统配置中心子系统负责为后台服务和客户端配置文件的配置提供GU/的配置途径5、运行设计本系统在设计时为了保证客户端的响应动态响应前台的请求而动态生成任务外同时启 动多个后台服务。5.1 进程/任务的设计5.1.1 前台RCP客户端取客户端配置放内存(经配置可以使用JAR包X虬配置文件而省略这一步)删除5.1 . 2后台系统对于多表查询,使用任务方式委托JDK线程池对不同表进行查询。整个后台服务初始完成以后,将生成以下任务(或线程),此任务为单一线程,并未做 线程池并发处理,任务线程串行处理任务5.2 数据存储5. 2.1数据库模型重要数据模型5. 2. 2文件系统用文件系统结果、接口等。5. 2. 3系统参数配置参数、环境参数等数据源列表报警的服务器列表serverlist.configdatasource, configsystem-id自识别的城市ID5. 2. 4其它数据内存等5.3出错处理本章节应列出出错原因及提示信息6、特性设计特性设计可以根据产品用途、行业标准等实际情况对章节进行调整。6.1 性能描述系统常态下系统要求,重要有代表业务性能指标。以及在架构设计中保证性能,方 案和设计要求6.1.1 规模分析与实现6.1.2 2性能分析与实现6.1.3 内存占用6.1 . 4响应速度要求6.2 可靠性标准是72小时无故障。例如为保证72小时,在故障处理设计实现方式、要求等。还有 异常处理6.3 安全性用户和权限管理、数据范围权限的控制、通讯是否加密,加密方式强度和要求,防止数 据篡改、攻击等6.4 可维护性实施、系统升级等,包括可移植性、可修改性、可扩充性7、部署7.1 部署模式7.1.1 部署方式一部署硬件、网络等详细要求,提供部署图。内容服务器7.1 . 2部署方式二7.2 许可协议许可协议方式和版权加密控制方式。8、附录附件二十九:产品方案技术白皮书一、背景概述151、研发背景152、产品定位15二、产品方案功能介绍151、设计理念152、系统拓扑图153、系统构架描述164、系统功能介绍165、产品方案规格16四、产品方案应用介绍161、应用模式162、应用流程163、应用环境16五、产品方案特性介绍171、技术特性172、应用特性173、系统特性17六、产品方案技术介绍171、相关技术172、技术指标17七、产品方案测评数据18八、实施运维方式说明18九、售后服务方式说明18错误味指定书签。一、背景概述8.1 1、研发背景介绍用户需求背景、该产品所在行业信息化建设背景、产品所涉及的相关政策简述等,以说 明该产品的研发背景,以及满足的客户需求。8.2 2、产品定位为了满足客户以上需求,该产品具有什么功能,能够解决什么问题。二、产品方案功能介绍8.3 1、设计理念该产品方案的设计思路。8.4 2、系统拓扑图使用统一的图标,制作系统拓扑图Q8.5 3.系统构架描述按照系统的构成,分类对系统进行描述。8.6 4、系统功能介绍详细阐述系统的主要功能。8.7 5、产品方案规格产品方案不同的规格介绍,或者对产品方案技术规格的介绍。四'产品方案应用介绍8.8 1、应用模式该产品方案包括的应用模式类型,或者针对不同类型客户的解决方案。8.9 2、应用流程该产品方案的应用流程。8.103、 应用环境描述该产品所运行的应用环境。五、产品方案特性介绍8.11 1、技术特性主要是性能先进性、功能齐全性、系统兼容性、技术稳定性等。8.12 2、应用特性主要是部署灵活性、可扩展性、管理方便性、易用性等。8.13 3、系统特性对系统的主要特性进行描述,根据产品不同和竞争优势的不同而不同。六'产品方案技术介绍8.14 1、相关技术主要应用技术的介绍,以及该技术的优势。8.15 2、技术指标针对技术参数进行描述。七、产品方案测评数据产品方案主要测评数据,可以是内部测评数据,也可以是第三方的测评数据。八'实施运维方式说明该产品方案的实施运营方式,以及实施运营需要注意问题的说明。九、售后服务方式说明该产品方案的售后服务方式、服务标准、服务内容说明,以及不同服务方式的报价。电子商务平台技术架构说明书目 录技术性需求分析4一致的逻辑数据4优秀的网络环境适应性4系统的兼容性4优异的系统性能4开放的界面和接口 4完备的操作日志管理策略4高度的安全性4技术性设计思想和原则5最小成本原则5安全性、可靠性、先进性原则5安全性与可靠性原则5先进性原则:5实用性、易用性、可扩展性原则5实用性原则5统一及一致性原则6业务引导及易用性原则6友好及方便性原则6扩展性和适应性原则6数据共享原则7系统技术架构的设计7技术架构的特点7系统的架构图7技术架构图7系统请求数据处理流程图9体系结构图10系统核心功能分布图11架构层次的说明11数据库层11中间件层12基础服务层16应用层20业务表现层和系统接口层21系统部署环境22商城平台部署环境22运行平台22操作系统22应用服务器23Web服务器23数据库服务器23缓存服务器23图片文件服务器23系统部署拓扑图23系统部署结构图24内部使用 第21页共51页错误味指定书签。技术性需求分析8.16 一致的逻辑数据一般来说,平台所有的服务接点都是这个数据库的客户端访问;因此从逻辑上,任意 服务网络接入点的数据应该是一致的。8.17 优秀的网络环境适应性从系统的实现角度考虑,要满足各种复杂的网络环境。8.18 系统的兼容性由于服务结点的数量巨大,其使用的平台和语言各不相同,需要能够容纳所有类型的 服务结点;8.19 优异的系统性能从系统架构设计上需要考虑巨大量数据的处理引擎,从系统本身进行性能上的优化, 而不是仅仅凭借于硬件服务器的性能。8.20 开放的界面和接口不仅个人用户能够方便地通过Web应用查询信息,同时也需要能够预留非GUI的交 互界面的接口,以便使其它应用系统也能使用数据管理系统提供的信息服务,同时还 需要为第三方软件预留标准的集成接口,使系统具有高度的可扩展性;8.21 完备的操作日志管理策略需要有完备的操作日志管理引擎,记录系统交互过程中的日志数据。8.22 高度的安全性利用JAVA所特有的安全性,更多的从系统角度去维护数据的安全,同时需要从数据库 和服务器的角度提出安全维护的有效建议。技术性设计思想和原则8.23 最小成本原则 系统建设充分考虑目前已实施的业务系统的实际情况,充分利用原系统资源,在实现 新系统建设同时保护原有系统的资源。任何一个系统的建设,如果不能合理和有效地利用现有的资源和之前的系统的资源, 这样的系统应该算不了绝对的成功。因此,在进行系统重建时,充分考虑如何利用以 前的信息系统、网络和其他设备,并对以前实施的应用系统进行整合,一方面保证原 有的设备可以重新利用,另一方面保证以前的应用重获新生。在真正意义上做到既完 成了新系统的建设又保护了原有设备和系统的资源。8.24 安全性、可靠性、先进性原则安全性与可靠性原则:考虑到电子商务系统工程建设项目安全性、可靠性的需求,在系统设计中,应充分注 意系统的安全性和可靠性,采用多种安全防范技术和措施,保障系统的信息安全,保 障系统长期稳定可靠运行,同时在系统设计要充分考虑系统运行性能,达到“简便、 实用、快捷、安全、准确”的目的。先进性原则:由于IT技术发展的速度惊人。因此,在电子商务项目进行系统总体规划时,我们选择 业界到目前为止先进和成熟的技术作为整个系统的技术架构,以保证系统有不断发展 和扩充的余地。系统总体设计的先进性原则主要体现在以下几方面:1)系统结构选择当前先进的SSH架构进行逻辑和业务和展示分层的架构进行系统开发;2)软件的设计中利用先进的面向对象技术、设计模式、接口技术和组件技术来提高软件的通用 性和复用性。实用性、易用性、可扩展性原则实用性原则衡量一个电子商务系统的好坏决不是看它投入了多少、如何的先进,而是看它是否真正满足运营 业务需求,是否真的符合真正的运营情况。因此,在进行系统的建设时,我们始终不忘实用性原 则,努力保证投资花在实处,保证建设出来的系统切切实实是所需要的,而不是一个富丽堂皇的 空架子,光有一个外表而没有实际的内容。实用性是每个信息系统在建设过程中所必须考虑的,从实际应用的角度来看,这个性能更加重 要。为了提高系统的实用性,本系统考虑如下几个方面:设计上充分考虑当前各业务层次、各环节管理中数据处理的便利和可行,把满足用户业务管 理作为第一要素进行考虑;采取总体设计、分步实施的技术方案I在总体设计的前提下,系统实施时先进行业务处理层 及低层管理,稳步向中高层管理及全面自动化过渡。这样做可以使系统始终与业务实际需求紧密 连在一起,不但增加了系统的实用性,而且可使系统建设保持很好的连贯性;全部人机操作设计均充分考虑不同使用者的实际需要;用户接口及界面设计充分考虑人体结构特征及视觉特征进行优化设计,界面尽可能美观大方, 操作简便实用。统一及一致性原则在统一的用户界面风格前提下,实现各GUl中各类按钮、图标、文字(字体、大小)、热键 (快捷键)的统一和一致,达到便于使用、便于学习、交互友好的目的。人机工程及标准化原则在保证界面风格统一、一致的基础上,按照人机工程原理,遵循IBM和MiCrOSoft 的界面设计标准,将界面的布局(包括按钮、菜单、显示框等)设计成符合操作者习惯的形式, 并在界面颜色的搭配上满足操作者长时间工作要求,提供一个人性化的人机操作环境,以保证用 户使用的舒适性。业务引导及易用性原则充分考虑业务的管理需求,在界面的菜单及功能的组合设计中,将界面的操作顺序按业务归类, 以便操作的有效引导,保证软件的易用性。同时,在各功能名称的用词、信息提示文字等方面, 使用政府审批业务的规范化、习惯化用词,以保证软件使用者的习惯性,符合现有政府审批管理 模式,有利于操作者在较快的时间熟练用好软件。友好及方便性原则鼠标、键盘的灵活输入方式;热键的使用,以保证各种业务数据信息的录入界面,更新维护界 面和记录增删界面及部门内部信息查询界面和信息统计报表界面等使用的方便性、友好性I确保 各种业务信息数据都能通过用户界面方便地、快速录入。扩展性和适应性原则扩展性和适应性是系统升级前要考虑的首要元素,为了进一步让客户能够降低成本来完成未来可 预见的系统升级开发,系统在设计时就充分考虑到实际系统在今后工作发展而产生的升级需求, 尽量保证在原有代码基础上容易适应、容易修改和升级的目标。数据共享原则对所有的数据采用合理的数据结构,把它们有效地组织好,进行统一维护管理,避免数据重复, 减少冗余,提高准确性和可靠性,保证数据的统一性和完整性。系统技术架构的设计技术架构的特点我们的技术架构有以下特点:采用目前安全性能高,扩展性好,框架技术最为完善JAVA语言作为系统开发的语言。 采用SSH框架技术I使系统能够分层开发,各层之间逻辑分明I层与层之间提供接口方式来 实现业务和数据的沟通。让系统具有极强的扩展性。基于组件技术,力求将变化封装在组件内部。对应组件可以对外提供API。适应能力强,同步、异步都能处理,既能满足快速反映的业务的需求,又能满足 大数据量、复杂的、异步的业务的需求。与OS、中间件平台、数据库系统无关。具有很好的可扩展性。模块化使得系统很容易在纵向和水平两个方向拓展:一方面可以将系 统升级为更大、更有力的平台,同时也可以适当增加规模来增强系统的网络应用。在扩充或修改 功能时,基本不会破坏原有结构的稳定性°强而可靠的数据库搜索引擎实用且安全的SEO搜索引擎设计支持分布式部署的缓存引擎系统的架构图技术架构图内部使用 第25页共51页错误!未指定书签。应用服务11曲品敏R它业务内?;余统I O捌道票统全网基础应用系统(订单人员权限商品物流财务报表等)全网电子商务服务平台应用集成话首商接H岷件接1FRPO翻海口呼叫中心按Il短信技U【数据认证按X其它数据掖X开发社区全网电子商务平台APlI 全网运营支撑平台基础框架.,l 1,界对因中间件”网搜杷窄 旧冲拿 MOJIV 北” kjfifl./:口*J/” m5aJt*.,!3*一:.:' Yf::,:;:,八1.J .2 一 .,: ,:,;“:,.:<.:,.:;7、,:,.,. 二”,.一 一 ., ;::三;多种计发诏行GsMcMap 隼fCOMPSS 门定4的洛径 多分布大的 实用可*的腮*? 决沱数小沟velocity, j : RSSiIIJ 的搜索弓坪 足纲律Memalm端人SEOftft1JiV 混; 无就对接MMIMHH 0BBMMBaaMMaa F - <>MBHMaiaaafaHBaaaMaaHBBMBHBMaMaBri . «» V B BaaMaWBMMaB fBaaMMVBBBHMBMaMH . 0BMHMb W* WaM*MaaBVaaMaHVaaMMVHBBM*Wa J , «* t2 f BB. F T f f JJi.Fa . . , . I . aF c . . < » . » ? a > / F / ?. Jaa. . *I1J IJ1 J » . ,.1F1 2 . I . . . JFl?. . V ? . Bll B J *.1 J J / F F全网电子商务平台服务架构(SSHSpring2,5 + Struts + HibernateXO)1高可用性高扩展性高可靠性高安全性高性能J.:::6.,二二二_二叩.1,.:. Yrr. ,. .W /=¥. ; ,,、.,. .i二, Xrvr.:T . ;,Y 2.:1 :/ $:业务库数据服务数据库整合WMHB¾HMW¾EWMM ElHEBMsEP系统技术架构图系统请求数据处理流程图内部使用 第26页共51页错误味指定书签。内部使用 第52页共51页体系结构图体系结构图JSp, taglib javabean9 cachef helper4htmlController视图层fbrmBean继承 PUbACliOn继承 PUbFOrm处卉,业务慧数/PubspringUtiIImpI业务逻辑层数I r-接 口 层ORACLE MYSQL MSSQL 体系结构图 系统核心功能分布图访泊个人会员/企业会员倘家公员/客服人员/总平台管理人员施区管理人员Imem式接入谱音接入其他接入商城接入层总平分门户、)地Mn户企业会员门户 商家会员门户客服门户运行后介门户MMMEVBMMMMMMHHM4MiAMIB*WtM4MMKnnMiMM tMMWWW4ii MtMMflHl商城核心业务层总平台门户、地区门户企业会员门户、两家会员门户 客服门户、运营后门户、地区运营后台门户商品浏览商品搜索I商品购买会员注册商品排序会员自管理:订单管理积分管理商品咨询商品评论浏览历史留言板优感券管理会员投诉业务定制商品促植支付管理物流管理PWfWP商户申请商户自管理I商M管理虚拟商品管理缺货管理咨询管理I促箭管理对凝纳算管理退货管理退款管理I信息管理订单管理投诉詈理统计报表账号权限管理内容管理:支付管理物流管理I会员管理I商户管理权限管理客服销售W单管理代金卷管理商品管理客服角色管理排行榜管理商品推荐管理支付方式 管理客服查询促销管理时账结制管理评论管理客服受理记录tiii 管理调查向卷管理-Ttiiiuuuttr - 广告管理客服报裳系统统计分折日志查询搜索及静态员 生成郡助管理运昔监核流中约计网站联盟管理 系统网站联盟甘理 系统:地区管理商机管理"WVWM*W*v .支付管理物流管理商城基础服务层接口服务层商品管理服务订单管理股务* C :,:.:、,: .:*:. * - tJ会员管理服务,:/0> , ? .,; .系统管理服务客服管理服务促销管理服务系统配置服务系统安全服务内容管理服务日志管理服务缓存管理服务权限管理服务商城核心数据层中文外贸平台接口支付系统接口物流系统接口邮件接口短信接口身份验证接口IM接口诚信认证等接口会员/商户隔品/订电喑销/统计/监控/对账/结算/内容/促精等库J2 Securitv/PKlORACLEIoG架构层次的说明数据库层对于平台中的所有应用,都存在着各种各样的配置信息、业务数据、系统运行状态等信息。数据 库层对这些数据信息本身进行归档,提供快速查询的底层接口,并保证数据的完整性、可靠性。在数据库方面,我们的程序是可以无缝对接主流数据库的包括Oracle, Mysql,和 MSSql,但建议采用Orade或者是MySQL因为他们和程序一样具备跨平台的特性,但这两 种数据库分别有不同的适用环境。Oracle 适合大型的电子商务应用。 能使用所有的商城平台功能。如访问量排行榜、降价排行榜、销售排行榜、访问 量统计等等,就以往的经验来看,这些功能每天要处理的数据都会超过一千万。这种 数据量如果使用传统的统计方法,统计一次的时间就可能会以天来计算了。如果使用 Oracle,再配合我们专门对OraCIe进行优化的高效率的统计程序,那么只需十数秒便可完成。 此外,如果只用一台数据库无法应付日益增长的服务器访问量,可以使用Oracle RAC (真正应用集群),通过增加数据库服务器进行集群。MySQL 适合中小型的电子商务应用。 无法使用商城平台一些高级应用,如排行榜、统计分析、MIS系统对接等。这是 由于MySQL设计上强调访问速度,牺牲了一些数据库的高级功能,虽然用程序也可以实现这些 功能,但是在性能上无法满足需求。 比较难实现数据库集群。中间件层中间件层主要是购通平台使用的J2EE中间件,包括平台使用到的应用服务器和中间件技术。 一、应用服务器应用服务器为购通提供的整个J2EE平台实现,商城系统基础服务层和应用层、业务层 都是建立在应用服务器之上。购通设计上遵循SUN公司提出的J2EE规范,这样能够尽可能的保证在不同的J2EE 应用服务器中进行移植。经过测试购通平台支持Tomcat. WebLogics JBoss, WebShare这几种J2EE应用服务器°二、中间件技术本着重用的设计原则,购通在一些功能中采用了已有的成熟技术,这些都是经过实 践考验的中间件。主要以java标准包和开源项目为主,大部分都针对系统作了相应调整,以 便适合系统的需要。1. Apache commons :著名的开源组织APaChe的一个java工具包,提供很多实用的功能。1) commons-beanutils:提供对JaVa反射和自省APl的包装。在平台中用于通用的接口设计。2) commons-codec :包含一些通用的编码解码算法。Hex, Base64,以及URLenCoder。平台中主要用来做消息摘要,实现数据加密等功能。3) commons-collections :提供一个类包来扩展和增加标准的Java Collection框架。提供了比j2sdk更全面的数 据结构,平台中继承并实现了一些特殊的数据结构。4) commons-pool :提供了通用对象池接口,一个用于创建模块化对象池的工具包,以及通常的对象池。我们在原有的基础上进行了优化,在性能和使用性方面有所提高。5) commons-dbcp :这是一个基于apache的对象池(apache commons pool)实现的数据库连接池。我们在原有的基础上进行了优化,对数据库连接进行了特别的处理,防止数据库连接泄漏的问 题,并提供了监控的功能。6) commons-discovery :供工具来定位资源(包括类),通过使用各种模式来映射服务/引用名称和资源名称。7) commons-el :提供在JSP2.0规范中定义的EL表达式的解释器。对平台中的JSP提供EL表达式支持。8) commons-fileupload :强大和高性能的文件上传功能。平台中被用于上传各种图片、Flash.文档等资源,我们在原有的基础上进行了优化。9) commons-logging :提供通用的日志操作接口。主要用于程序调试和服务器日常的日志输出。10) commons-validator:提供了一个简单的,可扩展的框架来在一个XML文件中定义校验器(校验方法)和校验 规则。支持校验规则的和错误消息的国际化。平台中用来校验各种Xml数据。2. Dom4j :Dom4j是一个易用的、开源的库I用于XML XPath和XSLTQ它应用于JaVa平台, 采用了 JaVa集合框架并完全支持DoM, SAX和JAXP。主要用来处理XML数据。XML在商城有广泛的应用,主要是作为配置文件使用。由于XML严格的格式要求 和层次结构,也有用来作为参数在HTML表单中传递。如组合商品功能,因为组合商 品中的商品是由管理员挑选的,参数数量并不确定,如果每从组合商品中添加/删除 一个商品都直接更新到数据库话,会对系统造成负荷。所以,在组合商品的管理中, 将操作的数据类转换成XML传递,就可以一次进行修改°3. Hibernate :Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的 对象封装,使得JaVa程序员可以随心所欲的使用对象编程思维来操纵数据库Q Hibemate可以应用在任何使用JDBC的场合,既可以在JaVa的客户端程序实用,也可 以在SerVlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB 的J2EE架构中取代CMP,完成数据持久化的重任。在平台中,我们采用Hibernate进行数据库操作,只有在一些对数据库性能有特别要 求的模块,才直接使用jdbc进行连接。4. Memcache :Memcache是一个支持分布式部署的动态缓存引擎。5.Spring定时器:我们主要用Spring定时器管理以下一些定时任务:1)年排行榜后台更新进程:自动计算年排行榜。2)月排行榜后台更新进程:自动计算月排行榜。3)周排行榜后台更新进程:自动计算周排行榜。4)日排行榜后台更新进程:自动计算日排行榜。5)更新对象缓存;实现对象缓存的更新,处理那些长期没被再一次访问的对象缓存。6)清页面缓存:当管理员使用的手工刷新页面缓存的功能时,系统会将这些需要刷新的缓存 加到一个队列中,由本进程负责刷新。7)相关产品自动实现间隔:相关产品的计算对系统消耗比较大,所以系统不会对所有几十万 个商品进行计算,只有在用户查看单个商品时算出这个商品的相关产品并进行缓存。那么当用户 下一次访问这个商品的相关产品时就直接从缓存中读取出来,而这个进程就是为了定时更新这个 缓存。8)自动推荐后台更新进程:进程根据商品推荐规则进行自动推荐。9)新闻推荐后台更新进程:进程根据新闻推荐规则进行自动推荐。10)关键字后台进程:当用户在前台搜索栏中输入一个查询值时,系统并不马上将其统计到关 键字,而是放到内存中I由此进程定