




免费预览已结束,剩余9页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
多层技术架构本系统构建于J2EE平台,采用分层提供服务支持的设计思想,将系统划分为数据库层、中间件层、EMALL基础服务层、业务表现层和系统接口层。系统对每一层定义明确的功能接口,同时在层次内实现组件化的接口实现。层次化、模块组件化的实现,使系统具备了最大程度的灵活度,从而能对业务需求的变化作出快速的反应,使系统具有很好的扩展性。 首先我们来看一个系统技术架构图: 上图可以清晰的了解到整个系统的层次划分,系统从最底部的数据库层开始,一层一层的向上提供接口服务,最终实现用户按业务要求的可见操作界面和其他系统接口。各层次专著于自身功能的接口实现,整个层次保持相对的稳定。系统通过不改变接口,各个层次、各个组件进行优化的策略,能在不影响整个业务的前提下,不断的完善和改进。一、数据库层对于平台中的所有应用,都存在着各种各样的配置信息、业务数据、系统运行状态等信息。数据库层对这些数据信息本身进行归档,提供快速查询的底层接口,并保证数据的完整性、可靠性。 在数据库方面,我们采用Oracle或者是MySQL。这两种数据库分别有不同的适用环境。 1、Oracle 适合大型的电子商务应用。 能使用所有的网客通平台功能。如访问量排行榜、降价排行榜、销售排行榜、访问量统计等等,就以往的经验来看,这些功能每天要处理的数据都会超过一千万。这种数据量如果使用传统的统计方法,统计一次的时间就可能会以天来计算了。如果使用Oracle,再配合我们专门对Oracle进行优化的高效率的统计程序,那么只需十数秒便可完成。 此外,如果只用一台数据库无法应付日益增长的服务器访问量,可以使用Oracle RAC(真正应用集群),通过增加数据库服务器进行集群。 2、MySQL 适合中小型的电子商务应用。 无法使用网客通平台一些高级应用,如排行榜、统计分析、MIS系统对接等。这是由于MySQL设计上强调访问速度,牺牲了一些数据库的高级功能,虽然用程序也可以实现这些功能,但是在性能上无法满足需求。 不支持数据库集群。二、中间件层 中间件层主要是网客通平台使用的J2EE中间件,包括平台使用到的应用服务器和中间件技术。一、应用服务器 应用服务器为网客通提供的整个J2EE平台实现,EMALL基础服务层和应用层、业务层都是建立在应用服务器之上。 网客通设计上遵循SUN公司提出的J2EE规范,这样能够尽可能的保证在不同的J2EE应用服务器中进行移植。 经过测试、网客通平台支持Tomcat、WebLogic、JBoss这几种J2EE应用服务器。二、中间件技术 本着重用的设计原则,网客通在一些功能中采用了已有的成熟技术,这些都是经过实践考验的中间件。主要以java标准包和开源项目为主,大部分都针对系统作了相应调整,以便适合系统的需要。1. Apache commons:著名的开源组织Apache的一个java工具包,提供很多实用的功能。 1) commons-beanutils: 提供对Java反射和自省API的包装。 在平台中用于通用的接口设计。 2) commons-codec: 包含一些通用的编码解码算法。Hex,Base64, 以及URL encoder。 平台中主要用来做消息摘要,实现数据加密等功能。 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. Cewolf / JFreeChart: Cewolf 是一个用于生成各种图表的标签库。它支持在JSP中嵌入图表图片。运行servlet 容器的任意的Web应用程序服务器都可以使用它。因为Cewolf 是一个功能完整的标签库,所以不需要使用Javascript。 JFreeChart是开放源代码站点SourceF上的一个JAVA项目,它主要用来各种各样的图表,这些图表包括:饼图、柱状图(普通柱状图以及堆栈柱状图)、线图、区域图、分布图、混合图、甘特图以及一些仪表盘等等。这些不同式样的图表基本上可以满足目前的要求。主要用于生成统计图表。 这两个技术一起提供了网客通平台的统计分析图表,JFreeChart主要用于输出图表,Cewolf对其进行了封装。3. Dom4j: Dom4j是一个易用的、开源的库,用于XML,XPath和XSLT。它应用于Java平台,采用了Java集合框架并完全支持DOM,SAX和JAXP。 主要用来处理XML数据。 XML在网客通有广泛的应用,主要是作为配置文件使用。由于XML严格的格式要求和层次结构,也有用来作为参数在HTML表单中传递。如组合商品功能,因为组合商品中的商品是由管理员挑选的,参数数量并不确定,如果每从组合商品中添加/删除一个商品都直接更新到数据库话,会对系统造成负荷。所以,在组合商品的管理中,将操作的数据类转换成XML传递,就可以一次进行修改。4. Hibernate: Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序实用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。 在平台中,我们采用Hibernate进行数据库操作,只有在一些对数据库性能有特别要求的模块,才直接使用jdbc进行连接。5. Ehcache: Ehcache出自Hibernate,在Hibernate中使用它作为数据缓存的解决方案。这是Hibernate必须的包。6. JCrontab: 它是由Java语言编写的日程处理程序,它目的是提供强大的定时处理功能,让我们的应用程序可以按照提供的时间表来执行不同的应用。 我们主要用Jcrontab管理以下一些定时任务: 1) 年排行榜后台更新进程:自动计算年排行榜。 2) 月排行榜后台更新进程:自动计算月排行榜。 3) 周排行榜后台更新进程:自动计算周排行榜。 4) 日排行榜后台更新进程:自动计算日排行榜。 5) 更新对象缓存:实现对象缓存的更新,处理那些长期没被再一次访问的对象缓存。 6) 清页面缓存:当管理员使用的手工刷新页面缓存的功能时,系统会将这些需要刷新的缓存加到一个队列中,由本进程负责刷新。 7) 相关产品自动实现间隔:相关产品的计算对系统消耗比较大,所以系统不会对所有几十万个商品进行计算,只有在用户查看单个商品时算出这个商品的相关产品并进行缓存。那么当用户下一次访问这个商品的相关产品时就直接从缓存中读取出来。而这个进程就是为了定时更新这个缓存。 8) 自动推荐后台更新进程:进程根据商品推荐规则进行自动推荐。 9) 新闻推荐后台更新进程:进程根据新闻推荐规则进行自动推荐。 10) 关键字后台进程:当用户在前台搜索栏中输入一个查询值时,系统并不马上将其统计到关键字,而是放到内存中,由此进程定时统计。 11) 保存访问量信息进程:用户每访问一次系统,系统并不马上统计,而是放到内存中,由此进程定时保存到数据库,供统计进程进行统计。 12) 年访问量排行计算:计算年访问量排行榜。 13) 月访问量排行计算:计算月访问量排行榜。 14) 周访问量排行计算:计算周访问量排行榜。 15) 日访问量排行计算:计算日访问量排行榜。 16) 年降价排行计算:计算年降价排行榜。 17) 月降价排行计算:计算月降价排行榜。 18) 周降价排行计算:计算周降价排行榜。 19) 日降价排行计算:计算日降价排行榜。 20) 统计计算:每天对访问量进行统计。 21) 生成订阅邮件列表进程:根据用户的订阅设置,生成需要发送的邮件队列。 22) 发送订阅邮件进程:根据要发送的邮件队列发送邮件。 23) 拍卖自动出价进程:实现拍卖模块中的自动出价功能。7. JCS: JCS是Jakarta的项目Turbine的子项目。它是一个复合式的缓冲工具。可以将对象缓冲到内存、硬盘。具有缓冲对象时间过期设定。还可以通过JCS构建具有缓冲的分布式构架,以实现高性能的应用。 对于一些需要频繁访问而每访问一次都非常消耗资源的对象,可以临时存放在缓冲区中,这样可以提高服务的性能。而JCS正是一个很好的缓冲工具。缓冲工具对于读操作远远多于写操作的应用性能提高非常显著。 网客通平台中使用jCS提供缓存功能,主要是页面缓存和对象缓存,通过JCS,系统将用户访问过的页面和对象缓存到内存中,对于访问量巨大,内存缓存已经不能负荷的情况下,我们还可以将缓存设置到硬盘中保存。 使用缓存的话,能将系统可负载和性能大幅度的提升。当没有使用集群环境的情况下,缓存是一种必不可少的技术。8. JSF / MyFaces: JavaServer Faces (JSF) 是一种用于构建 Web 应用程序的新标准 Java 框架。它提供了一种以组件为中心来开发 Java Web 用户界面的方法,从而简化了开发。 JSF 的主要优势之一就是它既是 Java Web 用户界面标准又是严格遵循模型视图控制器 (MVC) 设计模式的框架。用户界面代码(视图)与应用程序数据和逻辑(模型)的清晰分离使 JSF 应用程序更易于管理。为了准备提供页面对应用程序数据访问的 JSF 上下文和防止对页面未授权或不正确的访问,所有与应用程序的用户交互均由一个前端“Faces”servlet(控制器)来处理。 MyFaces是JavaServer Faces(JSF) Web框架 (JSR 127)的一个实现。提供了很多常用控件。 我们平台中采用一些基于JSF框架的MyFaces控件。这样使程序结构十分清晰。9. Log4j: Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。 这是一个可选包,如果不使用Log4j的话,commons-logging会自动使用SUN J2SDK的日志包,不过我们还是推荐使用Log4j,它的功能非常强大。10. Lucene: Lucene是一个开放源程序的搜寻器引擎,利用它可以轻易地为Java软件加入全文搜寻功能。Lucene的最主要工作是替文件的每一个字作索引,索引让搜寻的效率比传统的逐字比较大大提高,Lucen提供一组解读,过滤,分析文件,编排和使用索引的API,它的强大之处除了高效和简单外,是最重要的是使使用者可以随时应自已需要自订其功能。 我们使用Lucene建立索引,并在这基础上实现了全文搜索功能。11. Ant: Ant是一个基于Java的自动化脚本引擎,脚本格式为XML。 我们除了用Ant做Java编译相关任务外,还通过插件实现很多应用的调用。包括程序编译、打包、Hibernate配置文件自动生成、部署、以及单元测试等操作。 当一个代码项目大了以后,每次重新编译,打包,测试等都会变得非常复杂而且重复,因此c语言中有make脚本来帮助这些工作的批量完成。在Java中应用是平台无关性的,当然不会用平台相关的make脚本来完成这些批处理任务了,Ant本身就是这样一个流程脚本引擎,用于自动化调用程序完成项目的编译,打包,测试等。除了基于JAVA是平台无关的外,脚本的格式是基于XML的,比make脚本来说还要好维护一些。12. Axis: Axis是一个SOAP引擎,提供创建服务器端、客户端和网关SOAP操作的基本框架。SOAP是被广泛作为新一代跨平台、跨语言分布计算Web Services的重要部分。 网客通平台使用Axis提供WebService支持,广泛应用于通用数据接口,对外系统提供服务等功能。 如: 1) 商品查询服务:提供接口让外接系统可以查到平台中的商品信息。 2) 新闻发布服务:提供接口让外接系统可以取到各类新闻。 3) 订单服务:提供接口让外接系统可以在平台中生成订单,并获取各种订单信息。 注:上述服务都有严格的权限控制。13. JavaMail: JavaMail是Sun发布的用来处理email的API。它可以方便地执行一些常用的邮件传输。 我们使用JavaMail实现了平台中邮件发送、群发等相关功能,供业务系统使用。14. XDoclet: XDoclet是一个开源项目,可以通过在java源代码中的一些特殊的注释信息,自动生成配置文件、源代码等等。例如web、ejb的部署描述文件等。 我们用XDoclet来生成Hibernate的hbm配置文件。15. JSTL: JSP 标准标记库(JSP Standard Tag Library,JSTL)是一个实现 Web 应用程序中常见的通用功能的定制标记库集,这些功能包括迭代和条件判断、数据管理格式化、XML 操作以及数据库访问。 我们使用JSTL封装各种业务逻辑。16. Jakarta ORO: Jakarta ORO Java 类是一套文本处理Java类,提供了与Perl5 兼容的规则表达式,类AWK规则表达式,glob 表达式,以及用于执行替换、分割、过滤文件名等的工具。这个包是OROMatcher, AwkTools, PerlTools, and TextTools libraries originally from ORO, Inc的后续产品。 网客通平台使用ORO处理正则表达式,广泛应用于各种文本处理中。17. SwarmCache / JGroups: SwarmCache是一个简单且有效的分布式缓存,它使用IP multicast与同一个局域网的其他主机进行通讯,是特别为集群和数据驱动web应用程序而设计的。SwarmCache能够让典型的读操作大大超过写操作的这类应用提供更好的性能支持。SwarmCache使用JavaGroups来管理从属关系和分布式缓存的通讯。 JGroups是一个开源的纯java编写的可靠的群组通讯工具。其工作模式基于IP多播,但可以在可靠性和群组成员管理上进行扩展。其结构上设计灵活,提供了一种灵活兼容多种协议的协议栈,对于每个产品都有不同的可靠性需求。这种协议栈可以让用户定义的自己可靠性指标和性能指标。 当使用集群环境时,系统存在着缓存同步的问题,需要对集群中每一台服务器的缓存进行同步,这样就必须要有一个缓存同步的机制,SwarmCache和JGroups就是为了解决这个问题而被加到网客通中。18. JUnit: JUnit是由 Erich Gamma 和 Kent Beck 编写的一个回归测试框架(regression testing framework)。Junit测试是程序员测试,即所谓白盒测试,因为程序员知道被测试的软件如何(How)完成功能和完成什么样(What)的功能。 我们主要用JUnit来进行单元测试。三、基础服务层 基础服务层构建于J2EE平台之上,借助于中间件的接口服务,提供电子商务平台系统所需要的通用服务接口组件。系统将提供以下主要的服务接口支撑不同业务需求的实现。 栏目管理模块: 栏目是一个抽象资源对象,是一种特殊的内容类型。栏目可以表示产品、新闻信息类别、资源节点、导航栏的项、菜单中的项等等。栏目是一种组织管理型的资源。 系统设计上支持多级子栏目,采用虚拟文件系统(Virtual File System)技术以支持直观的树型导航风格,一个栏目节点相当于一个虚拟的文件目录。 对于大型电子商务系统,栏目的节点是个非常大的数字,这对系统栏目树展示的速度和性能有极高要求。考虑到以上原因系统采取了栏目对象缓存策略,同时对于页面节点的呈现通过动态JavaScript输出的技术,从而使系统能很好的支持上万个栏目数据节点操作管理。能平滑、高效的展示树型风格的栏目结构。 用户权限管理模块: 大型电子商务应用系统有用户多,模块多,权限多的特点,因此必须采用分组的用户管理系统,并设置一个具有最高权限的管理员,负责对整个系统用户设置,为每个用户角色、用户指定不同的权限,依照不同的权限在系统中可以使用不同的功能。 系统设置了Administrator用户组,并设置了root这个具有最高权限、不可删除的用户。您可以根据您的需要使用root这一个管理员用户。管理员可以创建、编辑和删除用户组,您可以根据您的需要给每个用户组合理的权限划分,并给每个用户组添加、编辑和删除用户。用户登录系统后,系统会根据该用户的权限提供相应的功能,并对用户的每个操作检查用户的使用权限。 系统采用Window用户权限的思想,将用户、用户组的权限通过各个栏目节点进行绑定,在各个栏目节点上实现继承与非继承的设置管理,从而使管理员可以进行灵活的配置。 属性管理模块: 在现实情况中,不同的事物对象存在其特殊的信息描述;比如一个手机,存在 “网络类型GSM”、“外观样式翻盖”等等;同时这些特殊的信息描述在同类别的数据对象下经常存在共性;比如TCL和 联想 生产的手机,应该都存在以上两种属性的描述。 针对以上的情况,系统进行了一个数据抽象,定义了一套属性管理组件,可以方便、有效的描述相关的需求情况,同时对于存在共性描述的对象采用继承模式来描述,从而很好的表现一个事物对象的特征。 继承性管理模块: 继承是面向对象接口特性之一。考虑到抽象事物的通用性,系统通过一个通用的对象继承模型接口,对所有需要实现继承的功能提供基础的支持。从而提高系统的重用性和降低系统的偶合度。 日志服务管理模块: 日志是一个成熟的电子商务应用系统所必备的功能。日志可以用于数据统计,为系统其他功能提供初始数据;用于查看一个对象的修改历史记录,用于方便追踪对象的修改状态和明确事务责任。 通过对系统各种操作数据的分析,根据各操作功能,系统将日志进行类别的划分: 1、系统日志:记录系统各种操作的信息数据。(比如:用户某个时间登陆了系统) 2、商品日志:记录系统商品数据发生改变的信息。(比如:商品价格发生变化) 3、信息日志:记录系统信息数据发生改变的信息。(比如:某管理员增加了一个新的促销公告) 4、订单日志:记录系统订单数据发生改变的信息。(比如:某个订单已经进行了送货处理) 系统通过抽象出一个Log日志接口,采用Abstract Factory 模式,通过不同的构造参数来获取不同分类的Log日志实现。系统将各中类别下的日志,又区分不同的操作。日志组件将通过抽象和封装后,给各功能模块提供统一接口服务,方便系统各模块的日志功能的开发和维护。 缓存服务管理模块: 页面访问的时候,生成动态 Web 页会耗用各种各样的系统资源。当 Web 服务器收到页面请求时,它通常必须从数据库或其他存储系统中实时的检索所请求的信息。对这些资源的访问通常需要通过有限的资源池(如数据库连接、套接字或文件描述符)进行。因为 Web 服务器通常需要处理很多并发请求,所以对这些共享资源的争夺可能会延迟页面请求,直到资源变为可用。在将请求发送后,仍然必须将结果转换为 HTML 代码以便进行显示。 使系统速度更快的一种显而易见的方法是购买更多、配置更好的硬件。此方法可能很吸引人,因为硬件便宜,而且不必更改程序,但更多的硬件只能在未达到其物理限制之前才会对性能有所帮助。系统中实施缓存管理,是一个有效的解决方案。 系统中存在两中缓存对象: 1、 Java对象缓存:对于一些经常被使用的Java对象保存于规定的内存空间,通过配置的更新规则,同步更新数据库内容。 2、 前台页面缓存:对于前台的html页面按不同的块来区分,然后通过一个key对象,通过开源JCS技术存储于内存或磁盘空间。 (请求中的页面对象不在缓存对象中) (请求中的页面对象存在于缓存对象中) 从上边两幅图可以很清晰的看到,对于并发访问的页面请求,通过页面的缓存可以极大的减少对紧缺资源(数据库连接)的调用,减少访问响应的时间,从而提高系统的访问速度和整体性能。 集群模块: 集群目标: 1、 支持更大的访问量,并且可以随着访问量的增加可以通过增加服务器的方式很容易的增加处理能力,而不增加用户的访问时延。 2、 提高系统稳定性,提供几乎永不停机的服务质量。即使某一台服务器软件或者硬件崩溃系统仍然能对客户提供服务。 网客通平台集群实现了以下功能: 1、Session复制 使用应用服务器自带的Session复制功能。 如开源的Tomcat,Tomcat5.5带有Session复制功能。Tomcat5.5的Session复制功能有如下的特点: 1)需要保证Session中的所有的对象都是可序列化的。 只有调用session的SetAttribute、removeAttribute方法时才会触发session的复制。例如有一个user类型的对象u保存在Session之中,如果u.setName(“aaa”)是不会触发Session复制的,只有u.setAttribute(“user”,u)才会触发Session的复制。 2)Session的复制是一个all-all的复制,也就是说Session的每次复制都复制给集群中的每一台服务器。 由于Session的复制是All-All的,因此当服务器中的集群数量过多时,有可能发生集群之间的Session复制流量过大,本身成为了性能的瓶颈。针对这个情况一方面要尽量的减少复制的数据量,这就要求将保留在session中的对象尽量变得更小,例如应该尽可能的拆分开对象。因为一个大对象只要一个小的属性发生了变化则整个对象都要被复制,如果将对象拆分开则只要复制一个小对象就可以了,尽量将保存在session中的对象变小。 另一方面,当集群中的服务器数目真的变得很大时,单靠缩小session中的对象已经是没用了,这样的话我们还有两种技术方案: 1)将集群分域,即将大的集群分成几个小的集群,Session复制只在小集群内部发生。 2)主从session复制,即将所有session 保留在中心的一台或几台服务器中,并不向集群中的所有服务器复制。 2. Cache复制和更新 网客通平台的Cache分成两类,页面Cache和对象Cache。页面Cache我们现在采用jcs包。Jcs包中带有Cluster功能,能够将Cache内容复制到整个集群的服务器中。该功能需要满足以下条件: 1)需要保证Cache中的所有的对象都是可序列化的。 2)只有调用Cache的setObject、removeObject方法时才会触发session的复制。 事务型的cache 在实际的使用中,Cache起到了巨大的作用,但是也存在有问题。Cache是非事务化的,即如果在使用过程中,在没有关闭Cache的情况下突然关闭服务器,或者服务器突然Down了,则缓存有可能被破坏。在集群环境下,则缓存会在服务器重起的时候从其他服务器中复制过来。 在正常使用时 Cache能达到上 G的数量级,如果集群中某台服务器崩溃后损坏了Cache则在服务器重起的时候将有几G的数据需要复制过来,这样有可能造成网络诸塞,成为整个系统的性能瓶颈,因此我们采用事务型的 Cache,保证系统崩溃后,重起的时候只有少部分的数据需要从其他服务器上复制过来。 对于cache的事务管理,我们采用Berkeley DB,Berkeley DB是历史悠久的嵌入式数据库系统,主要应用在UNIX/LINUX操作系统上,其设计思想是简单、小巧、可靠、高性能。当数据类型较少(特别注意:这并不是说需要管理的数据量小),数据管理本身不复杂,且对数据操作要求高效率时,使用Berkeley DB是一个很好的选择。Berkeley DB是一个具有工业强度的嵌入式数据库系统,数据处理的效率很高。Berkeley DB功能的稳定性历经时间的考验,在大量应用程序中使用便是明证。可以想见,在同等代码质量的条件下,软件的BUG数和代码的长度是成正比的,相对几十兆、几百兆大型数据库软件,Berkeley DB的只有不到500K的大小,但可以管理大至256T的数据量。从这些特性看来,cache非常适合使用Berkeley DB进行管理。 3. 上传文件的共享 我们采用共性文件形式的文件共享,主要使用磁盘阵列技术,简称RAID(Redundant Arrays of Inexpensive Disks)。磁盘阵列是由一个硬盘控制器来控制多个硬盘的相互连接,使多个硬盘的读写同步,减少错误,增加效率和可靠度的技术。 磁盘阵列有以下优点: 1)传输速率快; 2)储存容量可提升; 3)提升I/O每秒的数量; 4)增加数据安全性及稳定性; 5)大量数据快速及简易管理; 6)增加可用运时间,减少维护; 7)通过磁盘阵列,可以将不同服务器上传的文件统一管理。 如图所示:各台服务器共享磁盘阵列,这样所有的上传的文档都放到磁盘阵列之中。 4. Cookie的共享 采用负载均衡器使得多台服务器对外有相同的IP这样就能使所与的服务器都能共享Cookie。同时采用这个方案还能保证系统的高可用性。具体可参照下一点。 5. 高可用性 我们建议采用负载平衡器,负载均衡器可以根据实际的响应时间制定优先级交付决策,从而实现高性能、智能化流量管理,达到最佳的服务器群性能。采用第七层应用控制还可以减少通信高峰期的错误讯息,因为差错控制和流量管理技术可以侦测到一些错误信息,并透明地将会话重定向到另一个服务器,使用户顺利地进行使用。例如,服务器A不可用或者数据库出现错误,错误信息将会返回到负载均衡器上,然后会将客户的访问指向服务器B或者将消息重放到其他数据库中去,整个过程对用户是透明的。 将内部的多个私有的服务器,对外映射成一个相同的IP。而且当其中某台服务器Down掉的时候,负载均衡器将不会将这个服务器映射出去。 6. 数据库集群 如果数据库是用Oracle的话,数据库集群可以采用Oracle RAC。基于RAC的电子商务应用的用户或者中间层应用服务器客户,可以通过虚拟数据库服务名连接到数据库上。Oracle在集群中多个节点之间自动平衡用户负载。不同节点上的Real Application Clusters数据库实例预订所有数据库服务或者部分子集数据库服务。这使得DBA高度灵活地选定,连接到特定数据库服务的特定应用程序客户是否可以连接到某些或者全部的数据库节点。RAC在工作期间,每个节点可以单独的被使用并且被应用程序负载均衡。如果发生意外,如一个节点的失败,可以实现节点的失败切换,保证数据库24*7的高可用性。 虽然每一个节点有一个不同的物理IP地址时,应用客户仍可以在一个逻辑数据库服务名的水平上进行连接。因此客户端对于不相关的事情如多服务器的多个地址可以毫不关心。 任务调度模块: 对于电子大型的成熟的电子商务平台系统,每天都有很多特定的数据需要进行分析或处理(比如:每天都有大量的邮件需要发送)。对于大数据量、高数据运算的处理功能,往往不希望在系统繁忙的时间进行处理。 针对这种状况,系统采用Jcrontab提供的基础服务,通过Jcrontab接口的扩展,实现对系统自动执行的任务灵活的、人性化的配置。管理员可以根据系统的实际情况,配置相应的系统任务来执行。四、应用层 应用层提供各种业务实体的操作,使用EMALL基础服务进行搭建。 应用层的基本设计都是建立在EMALL基础服务层之上。就是栏目属性/权限业务实体。所有业务都可以在栏目中统一管理,从而使用统一的权限配置,使用分层的动态属性这些基础功能。 这样做的好处是,当业务实体发生改变或者是有新的业务时,系统的基础架构都不需要做出任何调整,直接就可以使用原有的功能。比如说订单系统,订单系统可以处理的就是一个业务实体,如果平台现在要加上网上购买服务的功能,那么只需要新加一个订单类型,就可以好像处理一般的商品订单那样处理这种购买服务的订单。 一、 商品管理 二、 拍卖管理 三、 网上团购 四、 广告管理 五、 信息发布 六、 排行榜管理 七、 问卷调查 八、 订单管理 九、 管理员管理 十、 用户管理 十一、支付方式 十二、配送方式 十三、热门关键字 十四、订阅管理 十五、BBS五、业务表现层和系统接口层 业务表现层 业务表现层就是网客通最终对客户的接口,平台以网页的方式提供各种业务供客户使用。相当于View(视图),与应用层(Model)、Servlet(Controller)组成Model / View / Controller(MVC)结构。主要是用JSF架构实现。 系统接口层 系统接口层是网客通对外部系统的接口。提供各种数据导入导出,数据查询等功能。 网客通平台主要使用WebService提供系统接口。 实际上,Web Service的主要目标是跨平台的可互操作性。为了达到这一目标,Web Service 完全基于XML(可扩展标记语言)、XSD(XML Schema)等独立于平台、独立于软件供应商的标准,是创建可互操作的、分布式应用程序的新平台。使用Web Service有以下优点: 1. 跨防火墙的通信 出于安全性考虑,服务器通常只对公网开放80(HTTP)端口,WebService使用Http协议进行传输,正好能自由穿越防火墙。 2. 应用程序集成 在企业中会有其他的应用程序,比如说MIS、CRM等,这些应用可能是建立在不同的平台之上,比如说.Net。那么网客通和这些平台集成的话就会存在很大的问题,因为我们采用的是J2EE。解决这应用程序集成的最佳方案就是WebService了。通过Web Service,应用程序可以用标准的方法把功能和数据“暴露”出来,供其它应用程序使用。 3. B2B的集成 同样的,将上面的一个问题扩充到企业和企业之间,跨公司的商务交易集成通常叫做B2B集成。不同企业所采用的平台就更加五花八门了。 Web Service是B2B集成成功的关键。通过Web Service,公司可以把关键的商务应用“暴露”给指定的供应商和客户。 用Web Service来实现B2B集成的最大好处在于可
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 通信行业全新合同签订与通信服务质量管理制度
- 犯罪预防策略优化-洞察及研究
- 中储粮专业考试题及答案
- 电商专业面试题及答案
- 2025-2030钻井行业市场发展分析及趋势前景与投资战略研究报告
- 冠心病病人家庭的护理
- 2025至2030中国车载卸料器行业运营态势与投资前景调查研究报告
- 光伏材料制备技术
- 专题03 中国现代史·选择题(安徽专用)5年(2021-2025)中考1年模拟《历史》真题分类汇编
- 金融服务机构客户隐私保护与业务合作保密合同
- 专利权属协议年
- 人才战略合作协议书
- 解放战争完整版本
- 塑造五种心态培训课件4
- 《印刷工艺》课件 4 印后加工
- 乳腺健康培训课件
- EPC工程总承包项目部人员岗位职责
- 物业6S目视化管理
- 2024年中国创新方法大赛考试题库(含答案)
- 产能提升改善报告
- 形成性评价指导性规范:SOAP病例汇报评价
评论
0/150
提交评论