基于松散架构的Web服务方法及系统的制作方法
【技术领域】
[0001]本发明涉及互联网应用技术领域,特别涉及一种基于松散架构的Web服务方法及系统。
【背景技术】
[0002]互联网、尤其是移动互联网的发展同时带动了计算机软件应用的飞速发展,借助于互联网,用户可以在任意时间地点使用处理终端进行交流或事务处理,但由于用户可选择的访问方式过多,也使得现有的软件架构难以提供统一的互联网服务。典型地,用户设备就至少存在通用计算设备和以智能终端为主的嵌入式计算设备等不同体系,对应操作系统也有Windows、Unix、Android、OS等不同系列,而用户访问服务器的软件工具也各不相同,这些差异需要分别采用不同的技术予以支持,这给互联网软件的实现带来了极大压力。
[0003]现有技术中为了对不同体系、不同操作系统的用户统一提供Web服务,通常采用B/S (Browser/Server,浏览器/服务器)架构提供支持,S卩服务器端构建基于HTTP (HyperText Transfer Protocol,超文本传输协议)的Web服务器,用户通过终端的浏览器工具进行访问;该方式可以用最小的代价提供通用的访问支持,并尽量减轻用户终端的压力,实现瘦客户端。但随着移动互联网的发展,由于B/S模式的表现形式有限、每次访问传输的数据量大且难以针对用户进行个性化设置,在移动终端中已经被移动App所取代。因此,如果要同时支持多种方式的服务提供和响应,现有技术中一个较为完备的网络服务就至少需要提供HTTP服务器、桌面客户端及对应服务器、移动App及对应服务器等,再考虑到不同操作系统的客户端或App实现技术不同,这给系统架构和服务器端的实现带来了极大压力。
【发明内容】
[0004]针对现有技术的缺陷,本发明的目的是提供一种基于松散架构的Web服务方法及系统,以高效快捷地提供通用Web服务。
[0005]根据本发明的一个方面,提供了一种基于松散架构的Web服务方法,包括步骤:
[0006]通过数据接口接收用户数据,根据所述用户数据创建所需的对象;
[0007]根据各个所述对象创建并执行业务逻辑,产生数据操作请求并相应存入缓存和/或队列;
[0008]通过数据操作接口接收所述缓存和/或队列中的所述数据操作请求,进一步封装后完成对数据源的访问;
[0009]将所述访问的结果数据返回给用户。
[0010]优选地,所述方法中,所述通过数据接口接收用户数据包括:
[0011]通过WebAPI和/或HTTP接口接收包括来自桌面客户端、移动App和浏览器访问的所述用户数据。
[0012]优选地,所述方法中,所述创建所需的对象包括:
[0013]通过依赖注入的方式来创建所需的所述对象。
[0014]优选地,所述方法还包括步骤:
[0015]搭建分布式缓存服务器实现所述缓存和/或队列。
[0016]优选地,所述方法中,所述将所述访问的结果数据返回给用户包括:
[0017]按照逻辑层次架构自下而上对所述结果数据进行封装后逐层返回,最后由所述数据接口将所述结果数据提供到各个用户界面中。
[0018]根据本发明的另一个方面,还同时提供了一种基于松散架构的Web服务系统,包括:
[0019]用户数据模块,用于通过数据接口接收用户数据,根据所述用户数据创建所需的对象;
[0020]业务模块,用于根据各个所述对象创建并执行业务逻辑,产生数据操作请求并相应存入缓存和/或队列;
[0021]数据访问模块,用于通过数据操作接口接收所述缓存和/或队列中的所述数据操作请求,进一步封装后完成对数据源的访问;
[0022]结果返回模块,用于将所述访问的结果数据返回给用户。
[0023]优选地,所述用户数据模块包括:
[0024]统一接口模块,用于通过WebAPI和/或HTTP接口接收包括来自桌面客户端、移动App和浏览器访问的所述用户数据。
[0025]优选地,所述用户数据模块包括:
[0026]依赖注入模块,用于通过依赖注入的方式来创建所需的所述对象。
[0027]优选地,所述系统还包括:
[0028]分布式缓存服务器,用于分布式地实现所述缓存和/或队列。
[0029]优选地,所述结果返回模块包括:
[0030]分层处理模块,用于按照逻辑层次架构自下而上对所述结果数据进行封装后逐层返回,最后由所述数据接口将所述结果数据提供到各个用户界面中。
[0031]本发明实施例提供了一种基于松散架构的Web服务方法及系统,通过在各层之间加入了接口层来解耦各层之间的耦合,以松耦合方式实现了对不同访问模式的统一支持,有效增加了系统的灵活性,降低了系统实现难度,同时可显著减少工作量,提高系统整体效率并减少错误,提升了用户体验。
【附图说明】
[0032]图1是本发明实施例中基于松散架构的Web服务方法的流程示意图;
[0033]图2是本发明实施例中基于松散架构的Web服务系统的模块示意图;
[0034]图3是本发明的一个优选实施例中系统的典型应用示意图。
【具体实施方式】
[0035]为使本发明的目的、技术方案和优点更加清楚明了,下面结合【具体实施方式】并参照附图,对本发明进一步详细说明。应该理解,这些描述只是示例性的,而并非要限制本发明的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本发明的概念。
[0036]现有技术中,典型的Web服务软件架构一般在逻辑上体现为包括表现层(UserInterface Layer,又称用户界面层、表示层等)、业务逻辑层(Business Logic Layer)和数据访问层(Data Access Layer)在内的三层架构,要提供比较完备的服务,一般表现层需分别提供Web页面、桌面客户端和移动App等界面支持,而业务逻辑层也需要针对不同界面及接入方式分别建立解析、处理和反馈的业务逻辑,这两层的实现难度、工作量、安全性和灵活性均承受了较大压力。此外,现有架构中表现层只负责显示和采集用户操作,不包含任何业务相关的逻辑处理;数据访问层只提供基本的数据访问,也不包含任何业务相关的逻辑处理;而业务逻辑层负责处理业务逻辑:通过获取表现层传来的用户指令,执行业务逻辑,在需要访问数据源的时候,直接交给数据访问层进行处理;处理完成后,返回必要数据给表现层。可见现有架构中全部业务压力均由业务逻辑层承担,在业务量大、业务类型多及业务逻辑复杂的情况下很难保证系统的效率和可靠性。
[0037]为此,本发明实施例提供了一种基于松散架构的Web服务方案,通过在表现层与业务层之间以及业务层与数据访问层加设统一的接口,实现了对不同访问方式的统一支持,同时有效降低了工作量,提高了系统效率。如图1所示,本发明实施例中的基于松散架构的Web服务方法包括步骤:
[0038]SI,通过数据接口接收用户数据,根据所述用户数据创建所需的对象;
[0039]S2,根据各个所述对象创建并执行业务逻辑,产生数据操作请求并相应存入缓存和/或队列;
[0040]S3,通过数据操作接口接收所述缓存和/或队列中的所述数据操作请求,进一步封装后完成对数据源的访问;
[0041 ] S4,将所述访问的结果数据返回给用户。
[0042]其中,步骤S4中,所述结果数据按照数据源、数据访问层、数据会话层、业务层、月艮务层的顺序自下而上按各层模式依次进行封装,最后由服务层将数据统一提供给表现层的各个用户界面。
[0043]在本发明优选实施例中,表现层通过统一的数据接口接收用户数据。具体地,表现层在以网站形式提供服务的同时,还对外提供相应的数据接口,数据接口供自身或合作机构的网站及各类客户端使用,可以满足PC和移动端的统一访问,为如1S、Android及各种掌上电脑等设备的服务需求提供支持。
[0044]此外,优选地,表现层所有的数据都由服务层来提供(包括但不限于接收用户数据和返回结果数据等)。服务层不与业务层直接耦合,而是通过依赖注入的方式来创建所需的对象,这样增加了系统的灵活性,当需求变化来临时,可以降低工作量,减少错误的发生。
[0045]业务层按照对象中传来的用户指令,创建并执行业务逻辑,在需要访问数据源的时候,产生相应的数据操作请求。数据操作请求通过队列保存和分发,以在提高并发度的同时保证操作的及时性和安全性。为了满足多地部署,进一步可通过缓存的方式去模拟实现Sess1n的效果,保障用户登录的有效性;为了尽可能的降低缓存穿透,优选通过预先制定的相对完善的缓存策略,比如缓存的订阅/发布机制、缓存的过期机制等,最终达到提尚网站的吞吐量。
[0046]在本发明优选实施例中,还在业务层和数据访问层的接口层之间抽象出了数据会话层,数据会话层是对数据访问层的再一次封装,提供统一的数据操作接口,降低复杂度的同时简化操作。数据访问层根据再次封装的数据操作请求完成对数据源的访问。
[0047]进一步如图2所示,与上述方法一一对应地,本发明实施例还同时提供了一种基于松散架构的Web服务系统1,包括:
[0048]用户数据模块101,用于通过数据接口接收用户数据,根据所述用户数据创建所需的对象;
[0049]业务模块102,用于根据各个所述对象创建并执行业务逻辑,产生数据操作请求并相应存入缓存和/或队列;
[0050]数据访问模块103,用于通过数据操作接口接收所述缓存和/或队列中的所述数据操作请求,进一步封装后完成对数据源的访问;
[0051]结果返回模块104,用于将所述访问的结果数据返回给用户。
[0052]优选地,所述用户数据模块包括:
[0053]统一接口模块,用于通过WebAPI和/或HTTP接口接收包括来自桌面客户端、移动App和浏览器访问的所述用