一种优化的Java Web三层架构及优化方法技术

技术编号:19902925 阅读:24 留言:0更新日期:2018-12-26 02:46
本发明专利技术公开了一种优化的Java Web三层架构及优化方法,该优化的Java Web三层架构,包括表示层、业务层和持久层,所述表示层用于和用户进行Web端的交互,所述业务层用于实现业务逻辑,所述持久层用于封装数据库交互,还包括内存数据池、改动数据缓存池和持久处理层,所述内存数据池用于存储数据库中被频繁访问和操作的数据;所述改动数据缓存池用于存储被所述业务层改动后的数据;所述持久处理层用于从改动数据缓存池中获取数据同步到数据库。本发明专利技术为三层架构引入内存数据池及持久处理层的概念,达到提高架构运行效率、增强系统扩展性的目的。

【技术实现步骤摘要】
一种优化的JavaWeb三层架构及优化方法
本专利技术涉及电子
,尤其涉及一种优化的JavaWeb三层架构及优化方法。
技术介绍
JavaWeb三层架构是当前流行的一种基于模块化程序设计的思想,也是当前Web应用程序的一种标准模块划分方法。架构中的三层分别是表示层、业务层和持久层。其中表示层用于和用户进行Web端的交互,业务层用于实现业务逻辑,持久层用于封装数据库交互。三层架构图如图1所示。这种三层架构在面对高并发量的Web应用时,由于高并发量的Web应用意味着大量的对于持久层数据的访问,持久层数据通常存放在数据库中,一方面对于数据库频繁地访问必将影响系统的运行效率,从而影响到用户的访问体验;另一方面为了避免数据库产生脏数据,往往在数据库的读写操作中会使用读写锁,而频繁访问数据库势必会加剧对于读写锁的竞争,进一步降低了数据访问的速率,从而降低了系统的性能。同时,业务层增加或修改对于数据的获取需求,需要相应的在持久层代码中进行修改,这种级联式的修改降低了系统的可扩展性,导致系统维护性变差。
技术实现思路
本专利技术所要解决的技术问题是:针对现有技术中存在的不足,本专利技术提出了一种优化的JavaWeb三层架构及优化方法,为三层架构引入内存数据池及持久处理层的概念,达到提高架构运行效率、增强系统扩展性的目的。本专利技术提供的一种优化的JavaWeb三层架构,包括表示层、业务层和持久层,所述表示层用于和用户进行Web端的交互,所述业务层用于实现业务逻辑,所述持久层用于封装数据库交互,还包括内存数据池、改动数据缓存池和持久处理层,所述内存数据池用于存储数据库中被频繁访问和操作的数据;所述改动数据缓存池用于存储被所述业务层改动后的数据;所述持久处理层用于从改动数据缓存池中获取数据同步到数据库。进一步,所述持久处理层由专门操作持久层元数据的线程组成,不同类别的数据交由不同的线程处理,由线程负责数据到数据库之间的读写及修改。本专利技术另一方面提供的一种基于如上所述的JavaWeb三层架构的优化方法,该优化方法包括初始化过程、运行过程和结束过程,所述初始化过程包括:业务层调用持久层接口加载数据构建内存数据池;持久处理层启动线程,从改动数据缓存池中获取数据,当改动数据缓存池中没有数据时,线程阻塞;所述运行过程包括:表示层发送业务请求,业务层接收请求,从内存数据池中直接获取数据进行相关运算操作,将运算结果返回给表示层;同时,如果在运算过程中数据有了改动,则将改动后的数据放入改动数据缓存池中;持久处理层从改动数据缓存池中获取到数据,解除线程阻塞,调用持久层接口将数据同步到数据库中;所述结束过程包括:业务层清空内存数据池,然后结束自身线程;持久处理层判断改动数据缓存池中是否仍有数据,如果还有就继续处理;直到所有改动数据全部同步到数据库中,再结束线程。本专利技术另一方面提供的一种基于如上所述的JavaWeb三层架构的外卖系统,所述业务层包括:启动类,用于服务器启动时的环境加载;控制器类,用于接收并转发表示层请求;套餐服务类,用于处理跟套餐数据相关的业务操作;订单服务类,用于处理订单相关操作;所述持久层包括套餐对象关系映射类、订单对象关系映射类用户对象关系映射类和配餐员对象关系映射类;所述数据库包括套餐类、订单类、用户类和配餐员类。本专利技术另一方面提供的一种基于如上所述的外卖系统的点餐方法,包括:业务层的控制器类对象接收查询套餐信息请求,将请求发送给业务层的套餐服务类对象,套餐服务类对象调用内存数据池的数据池类对象直接从内存中查询套餐信息;业务层的控制器类对象接收订单请求:将请求发送给业务层的套餐服务类对象,套餐服务类对象调用内存数据池的数据池类对象减少套餐剩余数量,然后将修改后的套餐类对象放入改动数据缓存池,给控制器类对象返回套餐类对象;控制器类对象将请求连同套餐类对象发送给订单服务类对象,订单服务类对象在内存数据池中查询用户类对象和配餐员类对象,然后综合套餐类对象、用户类对象和配餐员类对象生成订单类对象,将订单类对象同时放入内存数据池和改动数据缓存池并返回给控制器类对象;持久处理层中的套餐线程获取到套餐类对象,解除阻塞,调用持久层的套餐对象关系映射类对象更新套餐信息;订单线程获取到订单类对象,解除阻塞,调用持久层的订单对象关系映射类对象新增订单信息。本专利技术另一方面提供的一种基于如上所述的外卖系统的配餐完成方法,包括:业务层的控制器类对象接受配送完成请求,将请求发送给业务层的订单服务类对象,订单服务类对象调用内存数据池的数据池类对象删除对于该订单的存储并获取该订单类对象,修改订单类对象的结束标识,然后将修改后的订单类对象放入改动数据缓存池;持久处理层获取到订单类对象,调用持久层的订单对象关系映射类对象同步订单信息。与现有技术相比,本专利技术通过一次加载反复使用的方式,大大提升了业务层访问数据的速度;同时数据的存储和计算都在内存中进行,进一步增加了数据处理速度,提升了系统性能。且本专利技术将业务层和持久层分离,避免了持久层为应对业务层的需求而频繁变更和增加接口,增加了系统的可扩展性。此外,本专利技术新增的持久处理层中针对每类数据启用了独立的线程对其进行操作,避免了数据的读写竞争和相应的锁操作,大大降低了系统的调试难度,提升了系统的可维护性。附图说明本专利技术将通过例子并参照附图的方式说明,其中:图1为现有技术的三层架构示意图;图2为本专利技术实施例的优化三层架构示意图;图3为本专利技术实施例的三层架构优化方法示意图;图4为本专利技术具体实施例的外卖系统用例图;图5为本专利技术具体实施例的数据库设计示意图;图6为本专利技术具体实施例的外卖系统架构示意图;图7为本专利技术具体实施例的初始化时序图;图8为本专利技术具体实施例的点餐时序图;图9为本专利技术具体实施例的配餐完成时序图。具体实施方式本说明书中公开的所有特征,或公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合。本说明书中公开的任一特征,除非特别叙述,均可被其他等效或具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。本专利技术为基于JavaWeb三层架构的优化,在JavaWeb三层架构之上提出一种新的优化架构,架构图如图2所示。它包含4个部分的内容:1.JavaWeb三层架构:表示层用于和用户进行Web端的交互,业务层用于实现业务逻辑,持久层用于封装数据库交互;2.内存数据池。内存数据池用于存放数据库中被频繁访问和操作的数据。应用程序在启动时通过持久层将这些数据加载到内存中,在应用程序运行的过程中,业务层将直接在内存数据池中操作相关数据;3.持久处理层。持久处理层用于从改动数据缓存池中获取数据同步到数据库。持久处理层由若干专门操作持久层元数据的线程组成,不同类别的数据交由不同的线程处理,由线程负责数据到数据库之间的读写及修改;4.改动数据缓存池。业务层在对内存数据池中的数据进行改动后,将改动的数据放入改动数据缓存池中;持久处理层中的线程从改动数据缓存池中获取数据,将其同步到数据库中。相应的优化方法示意图如图3所示,包括初始化过程、运行过程和结束过程。1.初始化过程:业务层调用持久层接口加载数据构建内存数据池;持久处理层启动线程,从改动数据缓存池中获取数据本文档来自技高网...

【技术保护点】
1.一种优化的Java Web三层架构,包括表示层、业务层和持久层,所述表示层用于和用户进行Web端的交互,所述业务层用于实现业务逻辑,所述持久层用于封装数据库交互,其特征在于,还包括内存数据池、改动数据缓存池和持久处理层,所述内存数据池用于存储数据库中被频繁访问和操作的数据;所述改动数据缓存池用于存储被所述业务层改动后的数据;所述持久处理层用于从改动数据缓存池中获取数据同步到数据库。

【技术特征摘要】
1.一种优化的JavaWeb三层架构,包括表示层、业务层和持久层,所述表示层用于和用户进行Web端的交互,所述业务层用于实现业务逻辑,所述持久层用于封装数据库交互,其特征在于,还包括内存数据池、改动数据缓存池和持久处理层,所述内存数据池用于存储数据库中被频繁访问和操作的数据;所述改动数据缓存池用于存储被所述业务层改动后的数据;所述持久处理层用于从改动数据缓存池中获取数据同步到数据库。2.根据权利要求1所述的一种优化的JavaWeb三层架构,其特征在于,所述持久处理层由专门操作持久层元数据的线程组成,不同类别的数据交由不同的线程处理,由线程负责数据到数据库之间的读写及修改。3.一种基于如权利要求2所述的JavaWeb三层架构的优化方法,其特征在于,该优化方法包括初始化过程、运行过程和结束过程,所述初始化过程包括:业务层调用持久层接口加载数据构建内存数据池;持久处理层启动线程,从改动数据缓存池中获取数据,当改动数据缓存池中没有数据时,线程阻塞;所述运行过程包括:表示层发送业务请求,业务层接收请求,从内存数据池中直接获取数据进行相关运算操作,将运算结果返回给表示层;同时,如果在运算过程中数据有了改动,则将改动后的数据放入改动数据缓存池中;持久处理层从改动数据缓存池中获取到数据,解除线程阻塞,调用持久层接口将数据同步到数据库中;所述结束过程包括:业务层清空内存数据池,然后结束自身线程;持久处理层判断改动数据缓存池中是否仍有数据,如果还有就继续处理;直到所有改动数据全部同步到数据库中,再结束线程。4.一种基于如权利要求2所述的JavaWeb三层架构的外卖系统,其特征在于,所述业务层包括:启动类,用于服务器启动时的环境加载;控制器类,用于接收...

【专利技术属性】
技术研发人员:乔小斐韩梅徐胜杰
申请(专利权)人:中国电子科技集团公司第二十九研究所
类型:发明
国别省市:四川,51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1