户数据。
[0054]优选地,所述用户数据模块包括:
[0055]依赖注入模块,用于通过依赖注入的方式来创建所需的所述对象。
[0056]优选地,所述系统还包括:
[0057]分布式缓存服务器,用于分布式地实现所述缓存和/或队列。
[0058]优选地,所述结果返回模块包括:
[0059]分层处理模块,用于按照逻辑层次架构自下而上对所述结果数据进行封装后逐层返回,最后由所述数据接口将所述结果数据提供到各个用户界面中。
[0060]优选地,上述基于松散架构的Web服务系统可以是处理设备,比如集群、服务器或处理终端等;也可以是相对独立的功能单元,通过处理设备加载后实现对数据库集群的数据操作。在实际应用中,上述系统中的各模块均可由位于系统设备中的中央处理器(Central Processing Unit,CPU)、微处理器(Micro Processor Unit,MPU)、数字信号处理器(Digital Signal Processor, DSP)、或现场可编程门阵列(Field Programmable GateArray,FPGA)等实现,带有数据存储记录功能的模块(包括但不限于队列、缓存、主库、从库等)可由各种存储介质构成的存储器或存储设备等实现。
[0061]进一步如图3所示,在本发明优选实施例的一个典型应用中,所述基于松散架构的Web服务系统在逻辑上包含表现层、业务层和数据访问层。但与现有技术的三层架构不同的是,本发明优选实施例中在表现层和业务层之间通过服务层进行松耦合的对象创建,在图3中服务层表现为业务层中的IBLL业务层逻辑接口和表现层的WebAPI/HTTP接口,通过服务层的松耦合可快速实现非严格依赖的实例化,从而提高系统开发、测试和维护的效率。下面进一步给出一个通过中间接口层实现依赖注入的实例化的优选实施例:假设在录入数据时开发了两种以上录入策略,要进行录入模式的切换,现有技术只能停止系统并重启后实现,该方式效率低下、代价极大;而通过本发明技术方案的系统,可实现在不停系统的情况下动态切换各种录入策略,因而可使用户更好地体验每种录入的优缺点,最终确定适合自己的录入模式。具体地,比如系统在实现母猪管理模块中分娩记录的录入时,首先在业务逻辑层抽象出一个录入数据的接口,将两种不同录入策略的具体实现类都继承自此接口,在表现层调用接口。这样当用户切换录入模式时,实际是在网站配置文件中动态地切换配置,进而系统就可以动态地根据配置来变换不同的录入策略。上述方式的整个过程都不需要重新编译,也无需修改任何后台代码,因而可以大大增加系统的稳定性和灵活性。
[0062]此外,在业务层和数据访问层中通过数据会话层进一步封装数据操作,在图3中数据访问层表现为数据访问层中的Dbsess1n数据会话层和数据会话层接口 IDAL,用于从缓存Redis、队列RabbitMQ或从业务模块中获取并处理数据操作请求。这里同样以母猪管理模块中分娩记录的录入为例说明,如果使用现有技术的对象关系映射(ORM,ObjectRelat1nal Mapping)框架,在用户录入数据后点击保存时,若数据量较大,比如数据批量提交上来的时候,对提交上来的多条数据需要逐条分别去保存;而采用本发明技术方案的系统,在抽象出数据会话层的数据操作接口后,如遇到数据批量提交的情况,可以直接给每条数据都先设置要保存的标记,然后通过一次提交来完成数据的保存。因而本发明的技术方案可实现数据以单元方式提交,可大幅提高保存效率,同时提高用户的体验。
[0063]本发明优选实施例在三层架构的基础上,在各层之间加入了接口层来解耦各层之间的耦合。进一步地,为了适应分布式部署的状况,搭建了分布式缓存服务器,解决已经登陆的用户请求被分发到别的服务器的情况。分布式缓存的另一个重要作用,分担数据库的压力,把大量的用户请求拦截到缓存层,而不是大量的请求都是去访问数据库服务器。
[0064]图3的架构中还包括通用的辅助业务处理的模块,如定时任务作业Quartz, net、日志Log4、检索Lucene.net等,以及数据访问的底层实现,如AD0.NET/DAPPER等,这些通用模块均是现有技术中较为成熟的工具,在此不再赘述。本发明优选实施例中,数据源优选采用一主库多从库的方式设置,数据源中同时包括非关系型数据库NoSql,数据源的具体设置和操作并非本发明优选实施例的关键特征,在此也不再赘述。
[0065]采用本发明实施例的技术方案,可实现对多种用户访问方式无差别的支持,降低了统一 Web服务的实现难度,从而快捷安全地让各类用户在任意时间地点使用任意终端和软件工具进行交流或事务处理,以充分利用互联网和移动互联网带来的便利。比如,可以使猪场管理者更轻松地对猪场生日数据进行管理,通过电脑、手机将日常生产数据录入保存至服务器存储,可随时登录网站快速查看、修改数据,更方便快捷,数据保存至服务器,更安全,减少用户对表格、电脑的依赖,避免生产记录在日常管理中损坏、遗失,无法追溯。通过互联网技术,系统可对历史数据进行灵活组合,分类汇总、分析及查看,大大提高数据易用性,降低产品服务成本。更进一步地,比如对母猪管理,可异地实时录入分娩数据,录入母猪产子相关记录等,如:分娩日期、健仔数、弱仔数、畸形数、死胎数、木乃伊数、有效产仔数、窝重(公斤)、产仔难易、窝号、仔猪批号等,数据保存至服务器端,可根据实际情况灵活对历史数据进行修改、更新。系统根据记录的母猪分娩记录,可对数据进行分类汇总、分析,如:母猪生产性能指标、母猪繁殖指数、分娩统计、胎次产仔结构、窝均产仔分析、存栏情况分析等。又或者对于全国各地的生猪、种猪存栏信息或交易信息、市场价格等,通过全国多地部署服务器,可屏蔽各地网络提供商的差异,再加上PC端和移动端,保证用户拿起任何可以上网的终端,可以随时随地的进行数据录入、更新和查询,保证信息的及时性和准确性,同时保证用户能随时了解周边和全国最新的猪场及市场信息。
[0066]本发明实施例提供了一种基于松散架构的Web服务方法及系统,通过在各层之间加入了接口层来解耦各层之间的耦合,以松耦合方式实现了对不同访问模式的统一支持,有效增加了系统的灵活性,降低了系统实现难度,同时可显著减少工作量,提高系统整体效率并减少错误,提升了用户体验。
[0067]应当理解的是,本发明的上述【具体实施方式】仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。
【主权项】
1.一种基于松散架构的Web服务方法,其特征在于,所述方法包括步骤: 通过数据接口接收用户数据,根据所述用户数据创建所需的对象; 根据各个所述对象创建并执行业务逻辑,产生数据操作请求并相应存入缓存和/或队列; 通过数据操作接口接收所述缓存和/或队列中的所述数据操作请求,进一步封装后完成对数据源的访问; 将所述访问的结果数据返回给用户。2.根据权利要求1所述的方法,其特征在于,所述方法中,所述通过数据接口接收用户数据包括: 通过WebAPI和/或HTTP接口接收包括来自桌面客户端、移动App和浏览器访问的所述用户数据。3.根据权利要求1所述的方法,其特征在于,所述方法中,所述创建所需的对象包括: 通过依赖注入的方式来创建所需的所述对象。4.根据权利要求1所述的方法,其特征在于,所述方法还包括步骤: 搭建分布式缓存服务器实现所述缓存和/或队列。5.根据权利要求1所述的方法,其特征在于,所述方法中,所述将所述访问的结果数据返回给用户包括: 按照逻辑层次架构自下而上对所述结果数据进行封装后逐层返回,最后由所述数据接口将所述结果数据提供到各个用户界面中。6.一种基于松散架构的Web服务系统,其特征在于,所述系统包括: 用户数据模块,用于通过数据接口接收用户数据,根据所述用户数据创建所需的对象; 业务模块,用于根据各个所述对象创建并执行业务逻辑,产生数据操作请求并相应存入缓存和/或队列; 数据访问模块,用于通过数据操作接口接收所述缓存和/或队列中的所述数据操作请求,进一步封装后完成对数据源的访问; 结果返回模块,用于将所述访问的结果数据返回给用户。7.根据权利要求6所述的系统,其特征在于,所述用户数据模块包括: 统一接口模块,用于通过WebAPI和/或HTTP接口接收包括来自桌面客户端、移动App和浏览器访问的所述用户数据。8.根据权利要求6所述的系统,其特征在于,所述用户数据模块包括: 依赖注入模块,用于通过依赖注入的方式来创建所需的所述对象。9.根据权利要求6所述的系统,其特征在于,所述系统还包括: 分布式缓存服务器,用于分布式地实现所述缓存和/或队列。10.根据权利要求6所述的系统,其特征在于,所述结果返回模块包括: 分层处理模块,用于按照逻辑层次架构自下而上对所述结果数据进行封装后逐层返回,最后由所述数据接口将所述结果数据提供到各个用户界面中。
【专利摘要】本发明涉及互联网应用技术领域,公开了一种基于松散架构的Web服务方法及系统。所述方法包括步骤:通过数据接口接收用户数据,根据所述用户数据创建所需的对象;根据各个所述对象创建并执行业务逻辑,产生数据操作请求并相应存入缓存和/或队列;通过数据操作接口接收所述缓存和/或队列中的所述数据操作请求,进一步封装后完成对数据源的访问;将所述访问的结果数据返回给用户。本发明的技术方案通过在各层之间加入了接口层来解耦各层之间的耦合,以松耦合方式实现了对不同访问模式的统一支持。
【IPC分类】H04L29/06
【公开号】CN105187455
【申请号】CN201510697636
【发明人】张震, 叶波, 张传民, 王柯, 夏阿林, 刘殿振
【申请人】北京农信互联科技有限公司
【公开日】2015年12月23日
【申请日】2015年10月23日