具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供的服务编排数据的共享系统,包括以下模块:
数据共享服务模块11、服务网关功能模块12、数据生产服务模块13与数据消费服务模块14;
数据共享服务模块11用于实现对服务编排数据的存储及共享管理;
服务网关功能模块12用于实现服务编排数据的控制信息的交互与管理;
数据生产服务模块13用于实现对服务编排数据的更新操作;
数据消费服务模块14用于实现对服务编排数据的共享操作。
其中,服务编排是指可以通过一个请求来依次调用多个微服务,并对每个服务的返回结果做数据处理,最终整合成一个大的结果返回给前端。
需要说明的是,数据生产服务模块13与数据消费服务模块14根据业务需求在系统中存在多个。根据业务需求,存在多个数据共享服务模块11,每个数据共享服务模块11可为需要进行数据共享的服务提供支持,具体的,在本实施例中,有多个需要进行数据共享的服务,此处对进行数据共享的服务的数量不作具体限定。
作为本实施例的一种可选方式,数据共享服务模块11中包括如下单元。
数据共享服务单元111,数据共享服务单元用于与实现数据共享的服务交互。
其中,数据共享服务单元111包括用于与其他服务交互的服务接口,并实现与数据共享相关的操作,例如对数据进行定义以及初始化等。
数据共享存储单元112,数据共享存储单元用于基于数据的特性,将数据进行存储。
其中,数据的特性具体是指数据的类型,数据的初始值和数据的存放形式等。
数据共享存储单元112主要用于实现共享数据的存储,具体实现数据的临时存储和永久存储,并基于数据类型提供各种形式的存储方式,例如内存、文件系统或分布式存储以及数据库存储等。
为了方便存储管理,使用位置索引码对数据的存储进行管理。其中位置索引码主要包含三部分:2位的类型码、3位的装置码与不定长的位置码。位置码是根据不同的存储方式定义的,一般与存储类型密切相关。例如,以03001micro.share.101中,03为关系型数据库,001为服务器的MySQL服务,micro.share.id_101为位置码,表示micro库下的share表中的id为101的数据。
根据数据的类型生成位置索引码后,则根据位置索引码访问存储的数据,并基于存取请求,对数据进行对应的存储或者读取操作。
进一步的,根据不同的存储方式,为其构建相应的数据更新操作。其中数据更新操作具体指对数据进行增删改查等操作。
数据共享处理单元113,数据共享处理单元用于根据服务请求对存储的数据进行处理。
其中,数据共享处理单元113对用户请求以及请求参数进行解析,以获取该用户请求所对应的对象。
进一步的,在数据共享处理单元113中还包括数据更新触发器。数据更新触发器用于获取用户的数据更新请求,并调用数据订阅接口实现数据更新的通知。
进一步的,作为一种可选方式,在数据共享服务模块11中,还包括状态监控单元114和状态记录单元115。
其中,状态监控单元114用于记录数据共享服务模块11中存储的数据的订阅状态,并设置有数据更新触发器,当获取到数据更新的请求,则调用数据更新触发器发出数据更新的通知。
其中,状态记录单元115用于向服务网关注册数据共享服务,并汇报数据共享服务当前的状态,具体的是指服务运行的时长,当前有效的session数、存储空间占用情况等。
作为本实施例的一种可选方式,服务网关功能模块12中还包括如下单元。
服务管理单元121,基于服务请求对服务请求进行验证。
其中,在接收到服务请求时,服务管理单元121从服务请求中获取数据的共享定义,并对该共享定义进行解析和验证;获取服务请求中的共享数据表达式,并对该共享数据表达式进行解析和验证。
进一步的,在接收在服务请求时,对服务请求进行权限认证,即根据共享数据表达式中判断该表达式对应的数据是否存在,并判断发起该服务请求的用户是否有更新或者读取数据的权限。
进一步的,在本实施例中,在服务管理单元121中还包括数据共享目录控制器,在该数据共享目录控制器中以Session ID为索引,将数据共享服务模块11的信息为内容进行存储。
其中,当客户端或者用户请求第一次Session(会话)对象时,服务端会为客户端创建一个Session,并通过一定的算法得到Session ID,用来作为该Session的标识。该Session ID作为该Session的标识,服务端使用该Session ID访问其所对应的Session 存储的会话数据。
其中,Session对象用于存储特定用户会话所需的属性及配置信息。
在计算机专业术语中,Session是指一个终端用户与交互系统进行通信的时间间隔,通常指从注册进入系统到注销退出系统之间经过的时间。
Session用于存储某一终端用户在会话过程中保持连接状态的信息。服务端为终端发出的请求会话创建Session用以存储请求会话的数据信息。
服务端与终端依靠一个全局唯一的标识来访问该请求回话的数据信息,其中,全局唯一的标识指的是Session ID,服务端通过Session ID访问请求会话中的数据。
服务端通过Cookie(储存在本地终端上的数据)将Session ID发送给终端,终端此后的每一次请求都会带上这个Session ID。服务端根据这个Session ID访问与该SessionID对应的数据信息。
在服务网关功能模块12中,通过数据共享目录控制中以Seesion ID为键,将数据共享服务模块11中的信息进行存储。而数据共享服务模块11中存储了该Session对象中请求的数据。通过服务网关功能模块12将客户端的服务请求与其存储的数据进行链接,从而更利于管理服务请求与服务对象即数据,有利于提高根据客户端的服务请求对其请求对象进行处理的效率;在需要进行数据共享时,可以提高数据共享的效率。
服务状态管理单元122,服务状态管理单元用于控制服务请求的状态。
其中,服务状态管理单元122用于向服务网关注册并定时反馈数据共享服务的当前状态,例如数据共享服务的服务运行时长,当前有效Session数、已用的存储空间以及CPU(Central processing Unit,中央处理器)占用时间等。
若在当前服务状态管理单元122中存在超时的数据共享服务,则将该数据共享服务记录为不可用;并定时检查数据共享服务的状态等。
作为本实施例的一种可选方式,数据生产服务模块13中包括如下单元:
数据定义单元131,数据定义单元用于根据服务请求对数据进行定义以及初始化操作;
数据更新单元132,数据更新单元用于根据服务请求对数据进行数据更新操作;
数据注销单元133,数据注销单元用于根据服务请求对数据进行注销删除操作。
其中,数据生产模块13用于对数据进行定义、初始化、更新以及注销等。
作为本实施例的一种可选方式,数据消费服务模块14包括如下单元:
数据读取单元141,数据读取单元用于根据服务请求对存储的数据进行读取;
数据订阅单元142,数据订阅单元用于获取数据的变化情况,并根据变化情况进行数据更新通知。
数据的变化情况指的是,根据客户端发起的服务请求,例如对数据进行增删改等数据更新操作,得到的结果。
在本实施例中,数据消费服务模块14用于对数据进行读取、订阅的操作。
在本实施例中,在客户端发起的服务请求通过服务编排数据的共享系统中的服务网关功能模块12进行流转,数据通过数据共享服务11与数据生产服务模块13与数据消费服务模块14进行传输,数据不需经过服务网关进行传输,避免因为网关性能瓶颈造成数据不能传输,减少了在微服务架构下,分布式管理的管理复杂性。同时,通过服务网关功能模块12将数据的存储信息与对应的服务请求会话进行连接,有利于对服务请求对应的服务状态进行管理。
本发明实施例提供的服务编排数据的共享方法,可应用在如图2的应用环境中。其中,数据生产服务模块将数据传输给数据共享服务模块,数据共享服务模块将数据传输给数据消费服务模块。控制信息通过服务网关功能模块在系统中进行传输。需要说明的是,图2只起到对本发明实施例提供的服务编排数据的共享方法的示意说明,图中各个模块的数量不应该作为本发明实施例的限定。根据业务需要,数据共享服务模块、数据消费服务模块与数据生产服务模块的数量可以有多个,此处不作具体限定。
需要说明的是,本发明实施例所提供的服务编排数据的共享方法由服务器执行,相应地,服务编排数据的共享系统设置于服务器中。
服务器可以是提供各种服务的服务器,例如对终端设备上显示的页面提供支持的后台服务器。
用户可以使用终端设备通过网络与服务器交互,以接收或发送消息等。
终端设备可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、电子书阅读器、MP3播放器( Moving Picture E perts Group AudioLayer III,动态影像专家压缩标准音频层面3 )、MP4( Moving Picture Eperts GroupAudio Layer IV,动态影像专家压缩标准音频层面4 )播放器、膝上型便携计算机和台式计算机等等。
需要说明的是,本发明实施例提供的服务编排数据的共享方法应用于本发明实施例中的服务编排数据的共享系统中。
在一实施例中,如图3所示,提供一种服务编排数据的共享方法,以该方法应用在图2中的各个模块为例进行说明,包括如下步骤S301至步骤S306。
S301,当接收到用户发送的共享数据初始化请求时,通过数据生产服务模块构建数据的共享定义。
其中,数据的共享定义具体可以指的是,数据名称、数据类型、数据描述、数据初始值、数据值域、数据的获取权限以及数据是否加密等等。
其中,需要判断定义的数据是否加密,如果数据加密,数据的初始值以密文形式存放;如果数据不加密,数据的初始值以明文形式存放。
进一步的,数据的共享定义以Json格式序列化,使数据的共享定义简单快捷,有利于提高数据存储和传输的效率。
S302,通过服务网关功能模块对初始化请求进行权限验证,若验证通过则对共享定义进行解析,得到用户的服务请求会话。
其中,对初始化请求进行权限验证,即判断发起该初始化请求的用户是否具有发起初始化请求的权限。
若验证通过,则调用服务网关功能模块12对该共享定义进行解析,并生成对应的服务请求会话存储在服务网关功能模块12中,并从所述服务请求会话中获得对应的Session ID。
如果权限验证不通过,服务网关功能模块12则向数据生产服务模块13返回权限受限的错误信息。
其中,当客户端或者用户请求第一次Session对象时,服务端会为客户端创建一个Session,并通过一定的算法得到Session ID,用来作为该Session的标识。
在本实施例中,客户端发起的请求通过服务网关功能模块进行管理,通过SessionID与服务网关功能模块中创建的服务请求会话进行关联。
S303,采用服务网关功能模块将共享定义与服务请求会话发送至数据共享服务模块,以供数据共享服务模块对数据进行存储处理。
其中,以共享定义与对应的Session ID为参数,调用数据共享服务模块11,将共享定义与对应的Session ID发送至数据共享服务模块11。
S304,基于共享定义,通过数据共享服务模块生成数据的位置索引码,并基于位置索引码,将数据存储至相应位置。
其中,位置索引码主要包含三部分:2个字符长度的类型码、3个字符长度的装置码与不定长的位置码。位置码是根据不同的存储方式定义的,一般与存储类型密切相关。例如,以03001micro.share.101中,03为关系型数据库,001为服务器的MySQL服务,micro.share.id_101为位置码,表示micro库下的share表中的id为101的数据。
基于该位置索引码,将该数据写入对应的存储位置中,若写入成功,则返回成功信息;若写入异常,则返回异常信息。
S305,当接收到数据的更新请求时,基于服务会话请求,通过数据生产服务模块、服务网关功能模块对存储的数据进行更新。
其中,数据的更新请求具体是指对数据进行更新。可选地,当接收到更新请求并对数据进行更新后,通过数据订阅单元向数据消费服务模块发送数据更新的通知。
S306,当接收到数据的共享请求时,基于服务会话请求,通过数据消费服务模块、服务网关功能模块对存储的数据进行读取。
其中,数据的共享请求具体指对数据进行读取或者数据的订阅获取等请求。
进一步的,数据消费服务模块14根据数据的共享请求,调用服务网关功能模块12,服务网关功能模块12根据服务请求会话获取数据的共享定义。
服务网关功能模块12对该共享请求进行权限验证以及路径验证,即判断发起该共享请求的用户或者客户端是否具有读取数据的权限以及该共享请求对应的数据是否存储在数据共享服务模块11中。
若验证通过,则基于共享请求与该服务请求会话对数据进行读取。
本发明实施例提供的服务编排数据的共享方法应用于服务编排数据的共享系统中。当接收到用户的初始化请求时,从初始化请求中获取所要进行存储的数据,并对该数据构建共享定义,基于该共享定义创建服务会话请求,并基于该共享定义构建位置索引码,该位置索引码链接至该数据的存储位置,并通过该服务请求会话将该请求的发起方与该数据进行连接,利于对共享数据的管理。当接收到共享请求时,从该共享请求中获取服务请求会话,并从该服务请求会话中,获取数据的共享定义,基于该共享定义与该服务请求会话,对存储的数据进行读取,有利于提高服务编排时数据共享的效率。
作为本实施例的一种可选方式,步骤S305,当接收到数据的更新请求时,基于服务会话请求,通过数据生产服务模块、服务网关功能模块对存储的数据进行更新,包括如下步骤。
S3051,当接收到对存储的数据的更新请求时,调用数据生产服务模块基于更新请求构建存储的数据的更新描述。
其中,数据的更新描述是指数据的更新处理信息,例如对数据进行增加、删除以及修改等操作,以及对具有数据更新请求的服务信息等。
S3052,调用服务网关功能模块根据服务请求会话获取共享定义,并对更新请求进行权限验证。
其中,服务网关功能模块12根据更新请求获取其中的Session ID,并根据SessionID获得到服务请求会话,根据该服务请求会话获取对应的共享定义以及数据对应的存储位置。
服务网关功能模块12对更新请求进行权限验证。进一步的,对更新请求中对应的数据验证其路径是否存在,即该数据是否存储在数据共享服务模块11中。
S3053,若权限验证的结果为验证通过,则将数据更新服务信息与安全令牌发送至数据生产服务模块。
其中,权限验证通过后,将数据更新服务信息与安全令牌发送至数据生产服务模块13。
如果权限验证不通过,服务网关功能模块12则向数据生产服务模块13返回权限受限的错误信息。
其中,数据更新服务信息具体指的是数据的存储位置、以及需要使用数据更新功能的服务信息等。
S3054,基于数据更新服务信息,数据生产服务模块将更新描述、安全令牌发送至对应的数据共享服务模块。
其中,数据生产服务模块13在接收到数据更新服务信息和安全令牌后,根据该数据更新服务信息调用对应的数据共享服务模块11,将对应的Session ID、更新描述以及安全令牌发送至对应的数据共享服务模块11。
数据共享服务模块11将安全令牌发送至服务网关功能模块12进行有效性验证。
S3055,通过数据共享服务模块对更新描述进行解析,得到更新表达式,并基于更新表达式对存储的数据进行更新。
若服务网关功能模块12验证该安全令牌有效,数据共享服务模块11则对该更新描述进行解析,根据Session ID确认该数据的存储位置,基于该更新描述对存储的数据进行更新。
可选地,当基于更新描述对存储的数据进行更新后,数据订阅单元将数据更新的通知发送给数据消费模块。
在本实施例中,在接收到数据的更新请求时,通过从更新请求中构建更新描述,并从更新请求中获取对应的Session ID与数据的共享定义,基于该Session ID与对应的数据的共享定义,从而对存储的该数据进行访问,并基于更新描述对数据进行更新。通过数据的共享定义与对应的Session ID,实现动态进行数据更新,提高了对数据进行更新的效率。
作为本实施例的一种可选方式,步骤S306,当接收到数据的共享请求时,基于服务会话请求,通过数据消费服务模块、服务网关功能模块对存储的数据进行读取包括如下步骤。
S3061,调用数据消费服务模块基于共享请求生成数据的共享描述。
其中,共享描述具体可包括获取共享数据的服务信息,以及实际应用中,所需获取的与共享数据相关的信息等,具体可以根据实际需求进行设定,此处不作限制。
S3062,调用服务网关功能模块根据服务请求会话获取共享定义,并对共享请求进行权限验证,若验证通过则将数据共享服务信息与安全令牌发送至数据消费服务模块。
其中,服务网关功能模块12根据共享请求获取其中的Session ID,并根据SessionID获得到服务请求会话请求,根据该服务请求会话获取对应的共享定义以及数据对应的存储位置。
服务网关功能模块12对共享请求进行权限验证,进一步的,对共享请求中对应的数据验证其该数据存储的路径是否存在,即该数据是否存储在数据共享服务模块11中。权限验证通过后,将数据共享服务信息与安全令牌发送至数据消费服务模块14。
其中,数据共享服务信息具体指的是数据的存储位置、以及需要使用数据共享功能的服务信息等。
如果权限验证不通过,服务网关功能模块12则向数据消费服务模块14返回权限受限的错误信息。
S3063,基于数据共享服务信息,将共享描述、安全令牌发送至对应的数据共享服务模块。
其中,数据消费服务模块14在接收到数据共享服务信息和安全令牌后,根据该数据共享服务信息调用对应的数据共享服务模块11,将对应的Session ID、共享描述以及安全令牌发送至对应的数据共享服务模块11。
数据共享服务模块11将安全令牌发送至服务网关功能模块12进行有效性验证。
S3064,通过数据共享服务模块对共享描述进行解析,得到共享表达式,并基于共享表达式对存储的数据进行读取。
若服务网关功能模块12验证该安全令牌有效,数据共享服务模块则对该共享描述进行解析,根据Session ID确认该数据的存储位置,基于该共享描述对存储的数据进行读取。
在本实施例中,将共享定义与服务请求会话进行连接,当需要进行数据共享请求时,根据共享定义与服务请求会话的联系,提高进行数据共享的效率,通过服务请求会话的创建,能够实现动态进行数据共享的功能,进一步地提高了服务编排时数据共享的效率。
作为本实施例的一种可选方式,步骤S306还包括如下步骤:
在接收到数据的共享请求时,调用数据消费服务模块基于所述共享请求生成数据的共享描述;
根据所述共享请求向服务网关功能模块发送订阅请求,从该订阅请求中获取对应的Session ID,并获取数据的共享定义;
将对应的Session ID与共享描述调用数据共享服务模块中的数据订阅单元,记录数据当前的订阅情况。
作为本实施例的一种可选方式,服务编排数据的共享方法还包括如下步骤:
当接收到数据的注销请求时,数据生产服务模块从所述注销请求中获取对应的Session ID,并将Session ID发送至服务网关功能模块;
服务网关功能模块根据该Session ID获取对应的数据共享服务及数据的存储位置,并删除存储的服务请求会话;
调用对应的数据共享服务,基于数据的存储位置,将存储的数据删除。
在本实施例中,通过服务请求会话将存储的数据进行删除,而不需要重新发布服务,对业务系系统影响较小。并且有利于缓解数据共享服务模块中的存储压力。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
其中上述模块/单元中的“第一”和“第二”的意义仅在于将不同的模块/单元加以区分,并不用于限定哪个模块/单元的优先级更高或者其它的限定意义。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或模块的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或模块,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或模块,本申请中所出现的模块的划分,仅仅是一种逻辑上的划分,实际应用中实现时可以有另外的划分方式。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图4所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储服务编排数据的共享方法中涉及到的数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种服务编排数据的共享方法。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述实施例中服务编排数据的共享方法的步骤,例如图3所示的步骤S301至步骤S306及该方法的其它扩展和相关步骤的延伸。或者,处理器执行计算机程序时实现上述实施例中服务编排数据的共享系统的各模块/单元的功能,例如图1所示数据共享服务模块11、服务网关功能模块12、数据生产服务模块13、数据消费服务模块14的功能。为避免重复,这里不再赘述。
所述处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器 (Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列 (Field-Programmable Gate Array,FPGA) 或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述计算机装置的控制中心,利用各种接口和线路连接整个计算机装置的各个部分。
所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述计算机装置的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、视频数据等)等。
所述存储器可以集成在所述处理器中,也可以与所述处理器分开设置。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述实施例中服务编排数据的共享方法的步骤,例如图3所示的步骤S301至步骤S306及该方法的其它扩展和相关步骤的延伸。或者,计算机程序被处理器执行时实现上述实施例中服务编排数据的共享系统的各模块/单元的功能,例如图1所示数据共享服务模块11、服务网关功能模块12、数据生产服务模块13、数据消费服务模块14的功能。为避免重复,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink) DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。