多层技术架构JAVA.docx
- 文档编号:2371690
- 上传时间:2022-10-29
- 格式:DOCX
- 页数:20
- 大小:108.47KB
多层技术架构JAVA.docx
《多层技术架构JAVA.docx》由会员分享,可在线阅读,更多相关《多层技术架构JAVA.docx(20页珍藏版)》请在冰豆网上搜索。
多层技术架构JAVA
多层技术架构
本系统构建于J2EE平台,采用分层提供服务支持的设计思想,将系统划分为数据库层、中间件层、EMAL基础服务
层、业务表现层和系统接口层。
系统对每一层定义明确的功能接口,同时在层次内实现组件化的接口实现。
层次化、模块组件化的实现,使系统具备了最大程度的灵活度,从而能对业务需求的变化作出快速的反应,使系统具有很好的扩展性。
首先我们来看一个系统技术架构图:
33如£PIfTHL.HKFT
星^SOA和中直鉴的幕嶷揍口展
商品苣理'
■♦V
吕誉邂彗
Rd-管理
母存乐
理坍件
-4-
JCioQUb
JSF
A.S.S
IIP
W费匚
叶5
上图可以清晰的了解到整个系统的层次划分,系统从最底部的数据库层开始,一层一层的向上提供接口服务,最
终实现用户按业务要求的可见操作界面和其他系统接口。
各层次专著于自身功能的接口实现,整个层次保持相对的稳定。
系统通过不改变接口,各个层次、各个组件进行优化的策略,能在不影响整个业务的前提下,不断的完善和改进。
一、数据库层
对于平台中的所有应用,都存在着各种各样的配置信息、业务数据、系统运行状态等信息。
数据库层对这些数据信
息本身进行归档,提供快速查询的底层接口,并保证数据的完整性、可靠性。
在数据库方面,我们采用Oracle或者是MySQL这两种数据库分别有不同的适用环境。
1、Oracle
♦适合大型的电子商务应用。
♦能使用所有的网客通平台功能。
如访问量排行榜、降价排行榜、销售排行榜、访问量统计等等,就以往的经验
来看,这些功能每天要处理的数据都会超过一千万。
这种数据量如果使用传统的统计方法,统计一次的时间就可能会以
天来计算了。
如果使用Oracle,再配合我们专门对Oracle进行优化的高效率的统计程序,那么只需十数秒便可完成。
♦此外,如果只用一台数据库无法应付日益增长的服务器访问量,可以使用OracleRAC(真正应用集群),通过
增加数据库服务器进行集群。
2、MySQL
♦适合中小型的电子商务应用。
♦无法使用网客通平台一些高级应用,如排行榜、统计分析、MIS系统对接等。
这是由于MySQ设计上强调访问速
度,牺牲了一些数据库的高级功能,虽然用程序也可以实现这些功能,但是在性能上无法满足需求。
♦不支持数据库集群。
.专业.专注
二、中间件层
中间件层主要是网客通平台使用的J2EE中间件,包括平台使用到的应用服务器和中间件技术。
一、应用服务器
应用服务器为网客通提供的整个J2EE平台实现,EMAL基础服务层和应用层、业务层都是建立在应用服务器之上。
网客通设计上遵循SUN公司提出的J2EE规范,这样能够尽可能的保证在不同的J2EE应用服务器中进行移植。
经过测试、网客通平台支持Tomcat、WebLogic、JBoss这几种J2EE应用服务器。
二、中间件技术
本着重用的设计原则,网客通在一些功能中采用了已有的成熟技术,这些都是经过实践考验的中间件。
主要以java
标准包和开源项目为主,大部分都针对系统作了相应调整,以便适合系统的需要。
1.Apachecommons:
著名的开源组织Apache的一个java工具包,提供很多实用的功能。
1)commons-beanutils:
提供对Java反射和自省API的包装。
在平台中用于通用的接口设计。
2)commons-codec:
包含一些通用的编码解码算法。
Hex,Base64,以及URLencoder。
平台中主要用来做消息摘要,实现数据加密等功能。
3)commons-collections:
提供一个类包来扩展和增加标准的JavaCollection框架。
提供了比j2sdk更全面的数据结构,平台中继承并实现
了一些特殊的数据结构。
4)commons-pool:
提供了通用对象池接口,一个用于创建模块化对象池的工具包,以及通常的对象池。
我们在原有的基础上进行了优化,在性能和使用性方面有所提高。
5)commons-dbcp:
这是一个基于apache的对象池(apachecommonspool)实现的数据库连接池。
我们在原有的基础上进行了优化,对数据库连接进行了特别的处理,防止数据库连接泄漏的问题,并提供了监控的功能。
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是一个易用的、开源的库,用于XMLXPath和XSLT它应用于Java平台,采用了Java集合框架并完全支持DOMSAX和JAXP
主要用来处理XML数据。
XML在网客通有广泛的应用,主要是作为配置文件使用。
由于XML严格的格式要求和层次结构,也有用来作为参数
在HTMI表单中传递。
如组合商品功能,因为组合商品中的商品是由管理员挑选的,参数数量并不确定,如果每从组合商品中添加/删除一个商品都直接更新到数据库话,会对系统造成负荷。
所以,在组合商品的管理中,将操作的数据类转换成XML传递,就可以一次进行修改。
4.Hibernate:
Hibernate是一个开放源代码的对象关系映射框架,它对JDBGf行了非常轻量级的对象封装,使得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:
JavaServerFaces(JSF)是一种用于构建Web应用程序的新标准Java框架。
它提供了一种以组件为中心来开发
JavaWeb用户界面的方法,从而简化了开发。
JSF的主要优势之一就是它既是JavaWeb用户界面标准又是严格遵循模型-视图-控制器(MVC)设计模式的框
架。
用户界面代码(视图)与应用程序数据和逻辑(模型)的清晰分离使JSF应用程序更易于管理。
为了准备提供页
面对应用程序数据访问的JSF上下文和防止对页面未授权或不正确的访问,所有与应用程序的用户交互均由一个前端
“Faces"servlet(控制器)来处理。
MyFaces是JavaServerFaces(JSF)Web框架(JSR127)的一个实现。
提供了很多常用控件。
我们平台中采用一些基于JSF框架的MyFa
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 多层 技术 架构 JAVA
![提示](https://static.bdocx.com/images/bang_tan.gif)